<?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>21257</bug_id>
          
          <creation_ts>2008-09-30 15:49:24 -0700</creation_ts>
          <short_desc>JS bindings should throw when too few arguments are passed</short_desc>
          <delta_ts>2023-03-27 08:45:15 -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>WebCore JavaScript</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>CONFIGURATION CHANGED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>62750</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Aaron Boodman">aa</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>annevk</cc>
    
    <cc>ap</cc>
    
    <cc>arv</cc>
    
    <cc>benjamin</cc>
    
    <cc>darin</cc>
    
    <cc>kling</cc>
    
    <cc>mike</cc>
    
    <cc>mjs</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>93445</commentid>
    <comment_count>0</comment_count>
    <who name="Aaron Boodman">aa</who>
    <bug_when>2008-09-30 15:49:24 -0700</bug_when>
    <thetext>The JS bindings in WebKit generally do not throw when too few arguments are passed. For example &quot;document.createElement()&quot; throws in IE and Firefox because it is spec&apos;d to take one argument, but not in WebKit.

Throwing for invalid function calls is important to developers because it allows them to catch problems in their code as early as possible. In the case of document.createElement(), it means that they will clearly see the error &apos;createElement expects 1 argument&apos;, instead of some confusing error later in their code where they tried to use the undefined return value of createElement.

We can easily make this change all at once for all generated bindings. However, a concern with this is that there may be special cases where other browsers do not follow the spec and allow fewer arguments. This would be a problem for compat. We can probably generate code to find these cases using the IDL.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>93486</commentid>
    <comment_count>1</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2008-09-30 19:01:09 -0700</bug_when>
    <thetext>I am not against this change in principle (matching other browsers makes sense), but I am curious if there are any known sites where our behavior breaks things.  The behavior we have matches that of how functions defined in the ECMAScript act, and how we perceive most JS developers think about JS functions (most don&apos;t check that arguments.length is the correct value).  If we do make a change, we should discuss standardizing the behavior in the WebIDL specification, if that has not already been done. </thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>93616</commentid>
    <comment_count>2</comment_count>
    <who name="Aaron Boodman">aa</who>
    <bug_when>2008-10-01 15:38:47 -0700</bug_when>
    <thetext>Sam and I talked at length about this at lunch today, but I wanted to repeat here for the record...

(In reply to comment #1)
&gt; I am not against this change in principle (matching other browsers makes
&gt; sense), but I am curious if there are any known sites where our behavior breaks
&gt; things.

It seems unlikely that there will be many sites broken by WebKit&apos;s current behavior because:

a) It&apos;s rare and inadvisable to *rely* on exceptions being thrown
b) Other browsers throw exceptions in these cases, so in common code paths, WebKit would get the correct argument counts

&gt; The behavior we have matches that of how functions defined in the
&gt; ECMAScript act, and how we perceive most JS developers think about JS functions
&gt; (most don&apos;t check that arguments.length is the correct value). 

It&apos;s difficult to speak to how most JS developers expect things to work, I can only talk about my experience with the code I&apos;ve worked on. From what I&apos;ve seen, it&apos;s common for even moderately complex JS applications to carefully check incoming arguments at component boundaries.

It&apos;s true that ECMAScript specs the built-in objects to not throw in the case of obviously wrong arguments. This is really unfortunate and leads to really strange behavior (setFullYear() will set the instance&apos;s date field to NaN if passed zero arguments!).We can&apos;t do anything about ECMAScript built-ins because that is how they are spec&apos;d, and that is how Firefox works today (IE, otoh, throws in these cases).

But in the case of all the other host-provided APIs, I think we should attempt to be as strict as possible without breaking compatibility seriously. Luckily the other major browsers are already strict in this way, so hopefully the amount of breakage is small.

At the very least, I hope that we can make all *new* APIs strict.

&gt; If we do make a
&gt; change, we should discuss standardizing the behavior in the WebIDL
&gt; specification, if that has not already been done. 

This seems like a very good idea.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>143653</commentid>
    <comment_count>3</comment_count>
    <who name="Mike Hearn">mike</who>
    <bug_when>2009-08-31 08:32:09 -0700</bug_when>
    <thetext>I presume this is related to the fact that in Chrome some_function.length always returns zero instead of the number of arguments it expects?

That&apos;s sort of unfortunate. I am building a DOM diffing tool and the fact that WebKit is so lax about such things is currently making it less useful than it otherwise could be.

Are the changes required complex? I have zero experience of being a WebKit hacker, and the fact that Chrome and Safari use different JavaScript engines is discouraging as well - presumably this bug would need to be fixed twice?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>143676</commentid>
    <comment_count>4</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-08-31 10:51:08 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; I presume this is related to the fact that in Chrome some_function.length
&gt; always returns zero instead of the number of arguments it expects?

If you are getting the wrong value for the length property on a function, you should file a separate bug about it. It&apos;s not the same issue.

I&apos;m guessing this is a problem specific to the DOM bindings for the V8 JavaScript engine. I believe the length property works fine for DOM bindings with WebKit’s own JavaScript engine.

&gt; That&apos;s sort of unfortunate. I am building a DOM diffing tool and the fact that
&gt; WebKit is so lax about such things is currently making it less useful than it
&gt; otherwise could be.

I think &quot;so lax about such things&quot; is a misleading way to put it.

Extra arguments are ignored to match the JavaScript language. The language and its built-in functions all work this way. For example, you can pass extra arguments to something like the substr() function on a string and they are ignored, and no exception is raised.

But it seems that the traditional behavior for the DOM functions in other browsers is not the same as the behavior of the JavaScript function that are part of the language specification it self. And I this bug is open because we think it’s worth considering changing to match the other browsers.

&gt; Are the changes required complex? I have zero experience of being a WebKit
&gt; hacker, and the fact that Chrome and Safari use different JavaScript engines is
&gt; discouraging as well - presumably this bug would need to be fixed twice?

The fix should be relatively straightforward. It will just be adding code that checks numbers of parameters and throws exceptions, both to individual function bindings and to the automatically-generated function bindings created by the perl script that reads our DOM IDL files.

A more challenging part is the necessary step writing thorough test cases.

And yes, I think this will need to be fixed twice.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>143891</commentid>
    <comment_count>5</comment_count>
    <who name="Mike Hearn">mike</who>
    <bug_when>2009-09-01 07:58:12 -0700</bug_when>
    <thetext>Sorry Darin, you&apos;re totally right. I tested this on Safari as well as Chrome - it&apos;s only Chrome that always returns zero, so I will go file a V8 bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>143930</commentid>
    <comment_count>6</comment_count>
    <who name="Aaron Boodman">aa</who>
    <bug_when>2009-09-01 10:26:39 -0700</bug_when>
    <thetext>FWIW, we should try and find ways over time to share more of the bindings code between v8 and jsc. There are lots of bugs and complexity lurking in there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>143952</commentid>
    <comment_count>7</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-09-01 11:27:29 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; FWIW, we should try and find ways over time to share more of the bindings code
&gt; between v8 and jsc. There are lots of bugs and complexity lurking in there.

*political land mine explodes*

FWIW, I agree.  :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>233323</commentid>
    <comment_count>8</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-06-02 10:38:12 -0700</bug_when>
    <thetext>*** Bug 39962 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>233326</commentid>
    <comment_count>9</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-06-02 10:38:54 -0700</bug_when>
    <thetext>*** Bug 40057 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>233352</commentid>
    <comment_count>10</comment_count>
      <attachid>57671</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2010-06-02 11:21:37 -0700</bug_when>
    <thetext>Created attachment 57671
Proposed patch

(Reposting patch from bug 40057)
This has since been standardized in the Web IDL specification and
WebKit is the only major engine that doesn&apos;t implement the behavior.
Spec: http://www.w3.org/TR/WebIDL/#es-operations
On a side note, fixing this brings us to a nice 100% on John Resig&apos;s Selectors API test ;-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>233487</commentid>
    <comment_count>11</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-06-02 16:20:47 -0700</bug_when>
    <thetext>Wow, that patch is kind of awesome, if huge.  Can you do the V8 bindings generator too?

I know AP and Sam have string opinions here.  Maybe we should find some time to chat on IRC to make sure we&apos;re all on board with this change?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>233512</commentid>
    <comment_count>12</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-06-02 17:11:18 -0700</bug_when>
    <thetext>My opinion is that the engine should help developer by detecting mistakes, as far as possible while preserving Web and other content compatibility. So, I like the idea, but I&apos;m also concerned about compatibility, especially with Dashboard widgets. It&apos;s almost certain that we&apos;ll need to leave a quirk for those.

Others probably have stronger opinions on this matter.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>233528</commentid>
    <comment_count>13</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-06-02 17:41:44 -0700</bug_when>
    <thetext>Personally, I was a fan of consistency between the DOM and the functions built in to the JavaScript language. But if no other browsers are doing it that way, and this is even specified in a future standard, it seems that was wrong.

Like other such sweeping changes, it’s highly likely there is some content unwittingly depends on our old behavior. All a programmer has to do is forget one argument to a function, and the program gets an exception whereas before it would keep running. If it’s code or a code path that was never tested with engines other than WebKit then this could easily be overlooked.

Thus this change is almost certain to break  “Safari-only” code paths or even “WebKit-only” ones on at least some websites, Dashboard widgets, Mac OS X applications, iPhone applications, and iTunes Store content. Other than that, I’m all for it!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>233559</commentid>
    <comment_count>14</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-06-02 18:55:08 -0700</bug_when>
    <thetext>&gt; Other than that, I’m all for it!

:)

It seems like we have a couple of things queued up that might be in the same camp (e.g., the HTML5 parser).  Maybe it makes some sense to coordinate these in some way to cause less pain?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>233698</commentid>
    <comment_count>15</comment_count>
      <attachid>57752</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2010-06-03 04:34:20 -0700</bug_when>
    <thetext>Created attachment 57752
Proposed patch v2

Updated with support for V8 bindings as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>233940</commentid>
    <comment_count>16</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2010-06-03 15:00:20 -0700</bug_when>
    <thetext>I really like the idea of enforcing that you pass the right number of arguments.

However, I also like that I can leave out the frequently unnecessary arguments. Can we make many of these optional via the IDL? That would maintain some of the benefits of not enforcing number of arguments and it would minimize the chance of introducing regressions in webkit-only codepaths.

For example, being able to leave out the third boolean parameter in addEventListener is great. We should maintain that.

Taking a quick look at the patch, the following all have arguments that should be optional: getComputedStyle, addEventListener, removeEventListener, setPosition, contiansNode, createDocumentType, collapse, extend, setProperty, setTimeout, setInterval, createDocument, createHTMLDocument, cloneNode, importNode, createTextNode, setCustomValidity, profile, profileEnd, evaluate, createNodeIterator, execCommand.

The tricky part is that the default value will need to be different for some of them, e.g. 
- &quot;&quot; for createHTMLDocument and createTextnode. 
- false for addEventListener and containsNode
- 0 for setTimeout, setInterval, setPosition, etc.
- null for getComputedStyle and evaluate

There are cases in this patch that I think are improvements and should not be optional, e.g., arc, createElement, alert, confirm, prompt, parseInt.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>234192</commentid>
    <comment_count>17</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2010-06-04 06:36:56 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; For example, being able to leave out the third boolean parameter in addEventListener is great. We should maintain that.

While I appreciate the implications of making previously working code fail, I don&apos;t agree that we should maintain this.

Imagine a web developer using a WebKit-based browser as his main development platform. When he switches to another browser for compatibility testing and his code throws exceptions in &quot;random&quot; places, WebKit starts to look a bit too permissive.

I like what AP said about the engine helping the developer detect mistakes. So if we do take the route of making these arguments optional, I think we should at least emit some kind of &quot;developer-only&quot; warning when leaving them out.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>234248</commentid>
    <comment_count>18</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-06-04 09:35:44 -0700</bug_when>
    <thetext>&gt; However, I also like that I can leave out the frequently unnecessary arguments. Can we make many of these optional via the IDL?

The path for doing that would be via standards bodies.  We should strive for interoperability between browsers rather than adding random WebKit quirks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>234281</commentid>
    <comment_count>19</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-06-04 10:44:07 -0700</bug_when>
    <thetext>It is not always a mistake to omit the third argument in addEventListener() - for example, it&apos;s not useful with XMLHttpRequest objects. So, it makes sense to have it optional, especially if we can get other engines to support this behavior eventually.

Of course, I agree that this should go via standards bodies. Perhaps an experiment can be run in the meanwhile to determine what breaks due to the change to raise more exceptions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>234288</commentid>
    <comment_count>20</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2010-06-04 10:57:33 -0700</bug_when>
    <thetext>(In reply to comment #18)
&gt; &gt; However, I also like that I can leave out the frequently unnecessary arguments. Can we make many of these optional via the IDL?
&gt; 
&gt; The path for doing that would be via standards bodies.  We should strive for interoperability between browsers rather than adding random WebKit quirks.

If we were to a) make the default being to throw when too few arguments are passed in and b) make the relevant arguments optional, that would be an incremental step in the direction of interoperability with other browsers while still minimizing the risk of causing regressions.

I agree that we should push for these changes in standards bodies. Making previously required arguments optional should be extremely safe. We can move forward with this patch (including making arguments optional) and we could email the appropriate standards bodies. I don&apos;t care which order we do that in or we could do so in parallel.

It would be a real shame to just make all these arguments required though. FWIW, I have personally written sites that would break if we did. I can&apos;t imagine I&apos;m the only one. And really, it&apos;s one of the nicer things about coding just for WebKit that you can use a more concise coding style by leaving out these arguments.

(In reply to comment #17)
&gt; (In reply to comment #16)
&gt; &gt; For example, being able to leave out the third boolean parameter in addEventListener is great. We should maintain that.
&gt; 
&gt; While I appreciate the implications of making previously working code fail, I don&apos;t agree that we should maintain this.
&gt; 
&gt; Imagine a web developer using a WebKit-based browser as his main development platform. When he switches to another browser for compatibility testing and his code throws exceptions in &quot;random&quot; places, WebKit starts to look a bit too permissive.

Previously working code failing is only one of my concerns. I&apos;m also worried that we&apos;re making the web platform worse. These specific cases are arguments that *should* have been optional from the start. In either case, the fix to your concern about WebKit being too permissive is to bring other browser vendors in agreement to make these arguments optional.

&gt; I like what AP said about the engine helping the developer detect mistakes. So if we do take the route of making these arguments optional, I think we should at least emit some kind of &quot;developer-only&quot; warning when leaving them out.

In general, I do think we should throw when you give too few arguments. I also think that many of the arguments in question should be optional in all browsers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>234306</commentid>
    <comment_count>21</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-06-04 11:33:57 -0700</bug_when>
    <thetext>I think incrementally approaching the standards is a good idea.  Maybe the first iteration of this patch should just log to UMA in the V8 bindings so we can see how big the compat issues are?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>234335</commentid>
    <comment_count>22</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-06-04 12:30:28 -0700</bug_when>
    <thetext>(In reply to comment #21)
&gt; I think incrementally approaching the standards is a good idea.  Maybe the first iteration of this patch should just log to UMA in the V8 bindings so we can see how big the compat issues are?

This won&apos;t show all the failures that will come up in things like dashboard widgets or mobile WebKit sites, that were designed to work for only for WebKit.

For the record, I don&apos;t think the benefit of making this change is worth the cost.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>234417</commentid>
    <comment_count>23</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-06-04 16:17:46 -0700</bug_when>
    <thetext>&gt; For the record, I don&apos;t think the benefit of making this change is worth the cost.

You&apos;ve come a long way from offering to write the patch yourself.  :)

&gt; This won&apos;t show all the failures that will come up in things like dashboard widgets or mobile WebKit sites, that were designed to work for only for WebKit.

That&apos;s true.  Engine-specific code is sadness.

Maybe that&apos;s a point worth bringing up to the WebIDL standards committee?  IMHO, it&apos;s a lot easier to change to not throwing exceptions than it is to change to throwing exceptions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>234431</commentid>
    <comment_count>24</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-06-04 17:13:53 -0700</bug_when>
    <thetext>(In reply to comment #23)
&gt; &gt; For the record, I don&apos;t think the benefit of making this change is worth the cost.
&gt; 
&gt; You&apos;ve come a long way from offering to write the patch yourself.  :)

A lot changes in ~2 years :) .  That said, I think adding the plumbing to at least warn in the console is not something I oppose (in fact I support it).

&gt; 
&gt; &gt; This won&apos;t show all the failures that will come up in things like dashboard widgets or mobile WebKit sites, that were designed to work for only for WebKit.
&gt; 
&gt; That&apos;s true.  Engine-specific code is sadness.
&gt; 
&gt; Maybe that&apos;s a point worth bringing up to the WebIDL standards committee?  IMHO, it&apos;s a lot easier to change to not throwing exceptions than it is to change to throwing exceptions.

I am considering making this change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>234432</commentid>
    <comment_count>25</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-06-04 17:16:36 -0700</bug_when>
    <thetext>&gt; That said, I think adding the plumbing to at least warn in the console is not something I oppose (in fact I support it).

Yeah, logging a warning seems like a win unless it produces too much console spam.

&gt; &gt; Maybe that&apos;s a point worth bringing up to the WebIDL standards committee?  IMHO, it&apos;s a lot easier to change to not throwing exceptions than it is to change to throwing exceptions.
&gt; 
&gt; I am considering making this change.

My perspective is that we should aim for convergence with other browsers.  If we decide there&apos;s too much WebKit-specific code out there that would break with this change, then we should try to convince other browsers to be more lenient so we can eventually interoperate.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>244863</commentid>
    <comment_count>26</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2010-06-30 11:35:06 -0700</bug_when>
    <thetext>(In reply to comment #25)
&gt; &gt; That said, I think adding the plumbing to at least warn in the console is not something I oppose (in fact I support it).
&gt; 
&gt; Yeah, logging a warning seems like a win unless it produces too much console spam.
&gt; 
&gt; &gt; &gt; Maybe that&apos;s a point worth bringing up to the WebIDL standards committee?  IMHO, it&apos;s a lot easier to change to not throwing exceptions than it is to change to throwing exceptions.
&gt; &gt; 
&gt; &gt; I am considering making this change.
&gt; 
&gt; My perspective is that we should aim for convergence with other browsers.  If we decide there&apos;s too much WebKit-specific code out there that would break with this change, then we should try to convince other browsers to be more lenient so we can eventually interoperate.

I think that if we made all the cases where arguments should be optional as I suggested above, we&apos;d find that there is very little webkit-specific code that relies on too few arguments generally not throwing an exception. That&apos;s just my intuition of course. Whatever we do with this bug, we should try to convince other browsers to make the obvious cases optional (e.g. addEventListener).

I still think we should make the cases I listed optional and try this patch and see what breaks. It incrementally approaches the behavior of other browsers and is the only way we&apos;ll get the data we need to evaluate whether throwing on too few arguments is remotely possible.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>244876</commentid>
    <comment_count>27</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2010-06-30 12:08:47 -0700</bug_when>
    <thetext>(In reply to comment #26)
&gt; I still think we should make the cases I listed optional and try this patch and see what breaks. It incrementally approaches the behavior of other browsers and is the only way we&apos;ll get the data we need to evaluate whether throwing on too few arguments is remotely possible.

I like this approach. Updated patch coming in a bit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>244877</commentid>
    <comment_count>28</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-06-30 12:10:24 -0700</bug_when>
    <thetext>(In reply to comment #27)
&gt; (In reply to comment #26)
&gt; &gt; I still think we should make the cases I listed optional and try this patch and see what breaks. It incrementally approaches the behavior of other browsers and is the only way we&apos;ll get the data we need to evaluate whether throwing on too few arguments is remotely possible.
&gt; 
&gt; I like this approach. Updated patch coming in a bit.

The part I’m unclear on here is how we will “try” this. Is someone planning some testing?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>244963</commentid>
    <comment_count>29</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2010-06-30 15:11:57 -0700</bug_when>
    <thetext>(In reply to comment #28)
&gt; The part I’m unclear on here is how we will “try” this. Is someone planning some testing?

Actually, I&apos;m gonna wait for this question to be answered before continuing work on this mountain of a patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>395865</commentid>
    <comment_count>30</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2011-05-01 00:12:09 -0700</bug_when>
    <thetext>(In reply to comment #29)
&gt; (In reply to comment #28)
&gt; &gt; The part I’m unclear on here is how we will “try” this. Is someone planning some testing?
&gt; 
&gt; Actually, I&apos;m gonna wait for this question to be answered before continuing work on this mountain of a patch.

How about doing a version of this with an ENABLE flag? Then vendors can try enabling it in experimental builds whenever it is a good time to test this type of change.

I also suggest that, for the arguments we are leaving optional, that we advocate to the standards bodies to formally make them optional in the relevant specs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1944252</commentid>
    <comment_count>31</comment_count>
    <who name="Anne van Kesteren">annevk</who>
    <bug_when>2023-03-27 08:45:15 -0700</bug_when>
    <thetext>This appears to work as expected.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>57671</attachid>
            <date>2010-06-02 11:21:37 -0700</date>
            <delta_ts>2010-06-03 04:34:20 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>bug-21257.diff</filename>
            <type>text/plain</type>
            <size>229580</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjMzkxNDU5Li5mOGFhZWE4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcxIEBACisyMDEwLTA2
LTAyICBBbmRyZWFzIEtsaW5nICA8YW5kcmVhcy5rbGluZ0Bub2tpYS5jb20+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSURMIGJpbmRpbmdzIHNob3Vs
ZCB0aHJvdyBUeXBlRXJyb3Igd2hlbiBjYWxsZWQgd2l0aCB0b28gZmV3IGFyZ3VtZW50cworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEyNTcKKworICAg
ICAgICBGaXhlZCBhIG15cmlhZCBvZiBicm9rZW4gdGVzdHMgKG1pc3NpbmcgZnVuY3Rpb24gYXJn
dW1lbnRzLCBtb3N0bHkuKQorICAgICAgICBVcGRhdGVkIGJhc2VsaW5lcyBhY2NvcmRpbmdseS4K
KworICAgICAgICBTcGVjIGxpbms6CisgICAgICAgIGh0dHA6Ly93d3cudzMub3JnL1RSL1dlYklE
TC8jZXMtb3BlcmF0aW9ucworCisgICAgICAgICogYW5pbWF0aW9ucy9hbmltYXRpb24tc2hvcnRo
YW5kLXJlbW92ZWQuaHRtbDoKKyAgICAgICAgKiBhbmltYXRpb25zL2FuaW1hdGlvbi1zaG9ydGhh
bmQuaHRtbDoKKyAgICAgICAgKiBhbmltYXRpb25zL2FuaW1hdGlvbi10ZXN0LWhlbHBlcnMuanM6
CisgICAgICAgIChjaGVja0V4cGVjdGVkVmFsdWUpOgorICAgICAgICAqIGFuaW1hdGlvbnMvY2hh
bmdlLW9uZS1hbmltLmh0bWw6CisgICAgICAgICogYW5pbWF0aW9ucy9jb21iby10cmFuc2Zvcm0t
dHJhbnNsYXRlK3NjYWxlLmh0bWw6CisgICAgICAgICogYW5pbWF0aW9ucy9jb21wdXRlZC1zdHls
ZS5odG1sOgorICAgICAgICAqIGFuaW1hdGlvbnMvZmlsbC1tb2RlLXJlbW92ZWQuaHRtbDoKKyAg
ICAgICAgKiBhbmltYXRpb25zL2ZpbGwtbW9kZS10cmFuc2Zvcm0uaHRtbDoKKyAgICAgICAgKiBh
bmltYXRpb25zL2ZpbGwtbW9kZS5odG1sOgorICAgICAgICAqIGFuaW1hdGlvbnMvZmlsbC11bnNl
dC1wcm9wZXJ0aWVzLmh0bWw6CisgICAgICAgICogYW5pbWF0aW9ucy9mb250LXNpemUtdXNpbmct
ZW1zLmh0bWwtZGlzYWJsZWQ6CisgICAgICAgICogY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5wYXRo
LmFyYy5ub25maW5pdGUuaHRtbDoKKyAgICAgICAgKiBjc3MxL3VuaXRzL3plcm8tZHVyYXRpb24t
d2l0aG91dC11bml0cy5odG1sOgorICAgICAgICAqIGVkaXRpbmcvZGVsZXRpbmcvNTE1NjgwMS5o
dG1sOgorICAgICAgICAqIGVkaXRpbmcvZXhlY0NvbW1hbmQvNTEyMDU5MS5odG1sOgorICAgICAg
ICAqIGVkaXRpbmcvcGFzdGVib2FyZC80MjQyMjkzLmh0bWw6CisgICAgICAgICogZWRpdGluZy9w
YXN0ZWJvYXJkL3N0eWxlZC1lbGVtZW50LW1hcmt1cC5odG1sOgorICAgICAgICAqIGVkaXRpbmcv
c2VsZWN0aW9uL0RPTVNlbGVjdGlvbi1Eb2N1bWVudFR5cGUtZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIGVkaXRpbmcvc2VsZWN0aW9uL2V4dGVuZC1leHBlY3RlZC50eHQ6CisgICAgICAgICogZWRp
dGluZy9zZWxlY3Rpb24vc2NyaXB0LXRlc3RzL0RPTVNlbGVjdGlvbi1Eb2N1bWVudFR5cGUuanM6
CisgICAgICAgICogZmFzdC9ib3JkZXJzL2JvcmRlci1yYWRpdXMtcGFyc2luZy5odG1sOgorICAg
ICAgICAqIGZhc3QvY3NzL2JhY2tncm91bmQtY3VycmVudGNvbG9yLmh0bWw6CisgICAgICAgICog
ZmFzdC9jc3MvYmFja2dyb3VuZC1wb3NpdGlvbi1pbmhlcml0Lmh0bWw6CisgICAgICAgICogZmFz
dC9jc3MvY2hpbGQtc2VsZWN0b3ItaW1wbGljaXQtdGJvZHkuaHRtbDoKKyAgICAgICAgKiBmYXN0
L2Nzcy9keW5hbWljLXBzZXVkby1jbGFzcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9j
c3MvZHluYW1pYy1wc2V1ZG8tY2xhc3MuaHRtbDoKKyAgICAgICAgKiBmYXN0L2Nzcy9mb250LWZh
bWlseS1idWlsdGlucy5odG1sOgorICAgICAgICAqIGZhc3QvY3NzL2dldENvbXB1dGVkU3R5bGUv
Y29tcHV0ZWQtc3R5bGUtcGFnZS1icmVhay1pbnNpZGUtZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IGZhc3QvY3NzL2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10cmFuc2Zvcm0uaHRt
bDoKKyAgICAgICAgKiBmYXN0L2Nzcy9nZXRDb21wdXRlZFN0eWxlL3BlbmRpbmctc3R5bGVzaGVl
dC5odG1sOgorICAgICAgICAqIGZhc3QvY3NzL2dldENvbXB1dGVkU3R5bGUvc2NyaXB0LXRlc3Rz
L2NvbXB1dGVkLXN0eWxlLXBhZ2UtYnJlYWstaW5zaWRlLmpzOgorICAgICAgICAqIGZhc3QvY3Nz
L2hvdmVyLWFmZmVjdHMtY2hpbGQuaHRtbDoKKyAgICAgICAgKiBmYXN0L2Nzcy9tYXgtaGVpZ2h0
LWFuZC1tYXgtd2lkdGguaHRtbDoKKyAgICAgICAgKiBmYXN0L2Nzcy9udGgtY2hpbGQtZHluYW1p
Yy5odG1sOgorICAgICAgICAqIGZhc3QvY3NzL3Jlc2l6ZS1zaW5nbGUtYXhpcy5odG1sOgorICAg
ICAgICAqIGZhc3QvY3NzL3Jlc2l6ZS12YWx1ZS1jb21wYXJlZC5odG1sOgorICAgICAgICAqIGZh
c3QvY3NzL3pvb20taW4tbGVuZ3RoLXJvdW5kLXRyaXAuaHRtbDoKKyAgICAgICAgKiBmYXN0L2Rv
bS9ET01JbXBsZW1lbnRhdGlvbi9jcmVhdGVEb2N1bWVudC1uYW1lc3BhY2UtZXJyLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiBmYXN0L2RvbS9ET01JbXBsZW1lbnRhdGlvbi9jcmVhdGVEb2N1bWVu
dFR5cGUtZXJyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2RvbS9ET01JbXBsZW1lbnRh
dGlvbi9zY3JpcHQtdGVzdHMvY3JlYXRlRG9jdW1lbnQtbmFtZXNwYWNlLWVyci5qczoKKyAgICAg
ICAgKiBmYXN0L2RvbS9ET01JbXBsZW1lbnRhdGlvbi9zY3JpcHQtdGVzdHMvY3JlYXRlRG9jdW1l
bnRUeXBlLWVyci5qczoKKyAgICAgICAgKiBmYXN0L2RvbS9Eb2N1bWVudC9jcmVhdGVBdHRyaWJ1
dGVOUy1uYW1lc3BhY2UtZXJyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2RvbS9Eb2N1
bWVudC9jcmVhdGVFbGVtZW50TlMtbmFtZXNwYWNlLWVyci1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogZmFzdC9kb20vRG9jdW1lbnQvc2NyaXB0LXRlc3RzL2NyZWF0ZUF0dHJpYnV0ZU5TLW5hbWVz
cGFjZS1lcnIuanM6CisgICAgICAgICogZmFzdC9kb20vRG9jdW1lbnQvc2NyaXB0LXRlc3RzL2Ny
ZWF0ZUVsZW1lbnROUy1uYW1lc3BhY2UtZXJyLmpzOgorICAgICAgICAqIGZhc3QvZG9tL0hUTUxG
b3JtRWxlbWVudC9hZG9wdC1hc3NlcnRpb24uaHRtbDoKKyAgICAgICAgKiBmYXN0L2RvbS9TZWxl
Y3RvckFQSS9yZXNpZy1TZWxlY3RvcnNBUEktdGVzdC1leHBlY3RlZC50eHQ6CisgICAgICAgICog
ZmFzdC9kb20vU2VsZWN0b3JBUEkvc2NyaXB0LXRlc3RzL3ZpZXdsZXNzLWRvY3VtZW50LmpzOgor
ICAgICAgICAqIGZhc3QvZG9tL1N0eWxlU2hlZXQvb3duZXJOb2RlLWxpZmV0aW1lLTIuaHRtbDoK
KyAgICAgICAgKiBmYXN0L2RvbS9TdHlsZVNoZWV0L293bmVyTm9kZS1saWZldGltZS5odG1sOgor
ICAgICAgICAqIGZhc3QvZG9tL1dpbmRvdy9hbGVydC11bmRlZmluZWQtZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIGZhc3QvZG9tL1dpbmRvdy9hbGVydC11bmRlZmluZWQuaHRtbDoKKyAgICAgICAg
KiBmYXN0L2RvbS9XaW5kb3cvYXRvYi1idG9hLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0
L2RvbS9XaW5kb3cvYXRvYi1idG9hLmh0bWw6CisgICAgICAgICogZmFzdC9kb20vV2luZG93L3dp
bmRvdy1yZXNpemUtYW5kLW1vdmUtYXJndW1lbnRzLmh0bWw6CisgICAgICAgICogZmFzdC9kb20v
V2luZG93L3dpbmRvdy1zY3JvbGwtYXJndW1lbnRzLmh0bWw6CisgICAgICAgICogZmFzdC9kb20v
YXR0cmlidXRlLWRvd25jYXN0LXJpZ2h0Lmh0bWw6CisgICAgICAgICogZmFzdC9kb20vY29tcHV0
ZWQtc3R5bGUtc2V0LXByb3BlcnR5Lmh0bWw6CisgICAgICAgICogZmFzdC9kb20vZ2V0RWxlbWVu
dHNCeUNsYXNzTmFtZS9kdW1wTm9kZUxpc3QtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3Qv
ZG9tL2dldEVsZW1lbnRzQnlDbGFzc05hbWUvZHVtcE5vZGVMaXN0Lmh0bWw6CisgICAgICAgICog
ZmFzdC9kb20vaW1wb3J0Tm9kZS1udWxsLmh0bWw6CisgICAgICAgICogZmFzdC9kb20vbmF2aWdh
dG9yLWRldGFjaGVkLW5vLWNyYXNoLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2RvbS9u
b24tbnVtZXJpYy12YWx1ZXMtbnVtZXJpYy1wYXJhbWV0ZXJzLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiBmYXN0L2RvbS9udWxsLWNoYXJkYXRhLWNyYXNoLmh0bWw6CisgICAgICAgICogZmFzdC9k
b20vc2NyaXB0LXRlc3RzL2RvbUxpc3RFbnVtZXJhdGlvbi5qczoKKyAgICAgICAgKiBmYXN0L2Rv
bS9zY3JpcHQtdGVzdHMvbm9uLW51bWVyaWMtdmFsdWVzLW51bWVyaWMtcGFyYW1ldGVycy5qczoK
KyAgICAgICAgKiBmYXN0L2RvbS9zY3JpcHQtdGVzdHMvc2V0UHJpbWl0aXZlVmFsdWUtZXhjZXB0
aW9ucy5qczoKKyAgICAgICAgKiBmYXN0L2RvbS9zZXRQcmltaXRpdmVWYWx1ZS1leGNlcHRpb25z
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2RvbS9zdHlsZS1zaGVldC1jYW5kaWRhdGUt
cmVtb3ZlLXVucmVuZGVyZWQtZG9jdW1lbnQuaHRtbDoKKyAgICAgICAgKiBmYXN0L2R5bmFtaWMv
aG92ZXJlZC1kZXRhY2guaHRtbDoKKyAgICAgICAgKiBmYXN0L2R5bmFtaWMvcG9zaXRpb24tYWJz
b2x1dGUtdG8tZml4ZWQtY3Jhc2guaHRtbDoKKyAgICAgICAgKiBmYXN0L2V2ZW50cy9ldmVudC1s
aXN0ZW5lci1tYXAtcmVoYXNoLWNyYXNoLmh0bWw6CisgICAgICAgICogZmFzdC9ldmVudHMvaW5p
dC1ldmVudHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZXZlbnRzL21lc3NhZ2UtcG9y
dC5odG1sOgorICAgICAgICAqIGZhc3QvZXZlbnRzL3Jlc291cmNlcy9kcmFnLW91dHNpZGUtd2lu
ZG93LWZyYW1lLmh0bWw6CisgICAgICAgICogZmFzdC9ldmVudHMvcmVzb3VyY2VzL3RhYmluZGV4
LWZvY3VzLWJsdXItYWxsLmpzOgorICAgICAgICAodGVzdFByb2dyYW1tYXRpY0ZvY3VzKToKKyAg
ICAgICAgKiBmYXN0L2V2ZW50cy9zY3JpcHQtdGVzdHMvaW5pdC1ldmVudHMuanM6CisgICAgICAg
ICogZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLWN1c3RvbUVycm9yLTAwNC5odG1sOgorICAgICAg
ICAqIGZhc3QvZm9ybXMvbGVnZW5kLWRpc3BsYXktbm9uZS5odG1sOgorICAgICAgICAqIGZhc3Qv
Zm9ybXMvc2NyaXB0LXRlc3RzL2NoZWNrVmFsaWRpdHktaGFuZGxlci11cGRhdGVzLWRvbS5qczoK
KyAgICAgICAgKiBmYXN0L2hhcm5lc3Mvb3ZlcnJpZGUtcHJlZmVyZW5jZXMtMi5odG1sOgorICAg
ICAgICAqIGZhc3QvaHRtbC9uYXYtZWxlbWVudC5odG1sOgorICAgICAgICAqIGZhc3QvaHRtbC9z
Y3JpcHQtdGVzdHMvYXJ0aWNsZS1lbGVtZW50LmpzOgorICAgICAgICAqIGZhc3QvaHRtbC9zY3Jp
cHQtdGVzdHMvYXNpZGUtZWxlbWVudC5qczoKKyAgICAgICAgKiBmYXN0L2h0bWwvc2NyaXB0LXRl
c3RzL2Zvb3Rlci1lbGVtZW50LmpzOgorICAgICAgICAqIGZhc3QvaHRtbC9zY3JpcHQtdGVzdHMv
aGVhZGVyLWVsZW1lbnQuanM6CisgICAgICAgICogZmFzdC9odG1sL3NjcmlwdC10ZXN0cy9oZ3Jv
dXAtZWxlbWVudC5qczoKKyAgICAgICAgKiBmYXN0L2h0bWwvc2NyaXB0LXRlc3RzL3NlY3Rpb24t
ZWxlbWVudC5qczoKKyAgICAgICAgKiBmYXN0L2lubGluZS9yZWxhdGl2ZS1wb3NpdGlvbmVkLW92
ZXJmbG93Lmh0bWw6CisgICAgICAgICogZmFzdC9pbnNwZWN0b3Itc3VwcG9ydC91bmNhdWdodC1k
b20xLWV4Y2VwdGlvbi5odG1sOgorICAgICAgICAqIGZhc3QvaW5zcGVjdG9yLXN1cHBvcnQvdW5j
YXVnaHQtZG9tMy1leGNlcHRpb24uaHRtbDoKKyAgICAgICAgKiBmYXN0L2xvYWRlci9sb2NhbC1K
YXZhU2NyaXB0LWZyb20tbG9jYWwuaHRtbDoKKyAgICAgICAgKiBmYXN0L2xvYWRlci9sb2NhbC1j
c3MtYWxsb3dlZC1pbi1zdHJpY3QtbW9kZS5odG1sOgorICAgICAgICAqIGZhc3QvbXVsdGljb2wv
Z2FwLW5vbi1uZWdhdGl2ZS5odG1sOgorICAgICAgICAqIGZhc3QvcGFyc2VyL3NjcmlwdC10ZXN0
cy9ibG9jay1uZXN0aW5nLWNhcC10YWJsZS5qczoKKyAgICAgICAgKiBmYXN0L3BhcnNlci9zY3Jp
cHQtdGVzdHMvYmxvY2stbmVzdGluZy1jYXAuanM6CisgICAgICAgICogZmFzdC9wYXJzZXIvc2Ny
aXB0LXRlc3RzL2VsZW1lbnQtbmVzdGluZy1jYXAuanM6CisgICAgICAgICogZmFzdC9wcm9maWxl
ci9wcm9maWxlLXdpdGgtbm8tdGl0bGUuaHRtbDoKKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL3Jl
c291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qczoKKyAgICAgICAgKGVuZFRlc3Qp
OgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvc2ltcGxlLW5vLWxldmVsLWNoYW5nZS5odG1sOgor
ICAgICAgICAqIGZhc3QvcHJvZmlsZXIvdHdvLWV4ZWN1dGlvbi1jb250ZXh0cy5odG1sOgorICAg
ICAgICAqIGZhc3QvcmVwYWludC9tb3Zpbmctc2hhZG93LW9uLWNvbnRhaW5lci5odG1sOgorICAg
ICAgICAqIGZhc3QvcmVwYWludC9tb3Zpbmctc2hhZG93LW9uLXBhdGguaHRtbDoKKyAgICAgICAg
KiBmYXN0L3RhYmxlL2NvbC13aWR0aC1zcGFuLWV4cGFuZC1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogZmFzdC90YWJsZS9jb2wtd2lkdGgtc3Bhbi1leHBhbmQuaHRtbDoKKyAgICAgICAgKiBmYXN0
L3RhYmxlL3RkLWRpc3BsYXktbm93cmFwLmh0bWw6CisgICAgICAgICogZmFzdC90ZXh0L3Njcmlw
dC10ZXN0cy9maW5kLWJhY2t3YXJkcy5qczoKKyAgICAgICAgKiBmYXN0L3Rva2VuaXplci9hbXBl
cnNhbmQtaW4tc3BlY2lhbC10YWcuaHRtbDoKKyAgICAgICAgKiBmYXN0L3hwYXRoL3hwYXRoLWVt
cHR5LXN0cmluZy5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvbWlzYy9jc3MtYWNjZXB0LWFu
eS10eXBlLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9taXNjL2Nzcy1yZWplY3QtYW55LXR5
cGUtaW4tc3RyaWN0LW1vZGUuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2xv
Y2FsLUphdmFTY3JpcHQtZnJvbS1yZW1vdGUuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3Nl
Y3VyaXR5L2xvY2FsLXZpZGVvLXNyYy1mcm9tLXJlbW90ZS5odG1sOgorICAgICAgICAqIGh0dHAv
dGVzdHMveG1saHR0cHJlcXVlc3QvZXhjZXB0aW9ucy1leHBlY3RlZC50eHQ6CisgICAgICAgICog
bWVkaWEvdmlkZW8tY2FuLXBsYXktdHlwZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogbWVkaWEv
dmlkZW8tY2FuLXBsYXktdHlwZS5odG1sOgorICAgICAgICAqIHN2Zy9jc3MvZ2x5cGgtb3JpZW50
YXRpb24tcm91bmRpbmctdGVzdC54aHRtbDoKKyAgICAgICAgKiBzdmcvY3VzdG9tL2xvYWRldmVu
dHMtY2FwdHVyaW5nLnN2ZzoKKyAgICAgICAgKiBzdmcvY3VzdG9tL3JlbGF0aXZlLXNpemVkLWNv
bnRlbnQueGh0bWw6CisgICAgICAgICogc3ZnL2N1c3RvbS9yZWxhdGl2ZS1zaXplZC1kZWVwLXNo
YWRvdy10cmVlLWNvbnRlbnQueGh0bWw6CisgICAgICAgICogc3ZnL2N1c3RvbS9yZWxhdGl2ZS1z
aXplZC1zaGFkb3ctdHJlZS1jb250ZW50LXdpdGgtc3ltYm9sLnhodG1sOgorICAgICAgICAqIHN2
Zy9jdXN0b20vcmVsYXRpdmUtc2l6ZWQtc2hhZG93LXRyZWUtY29udGVudC54aHRtbDoKKyAgICAg
ICAgKiBzdmcvY3VzdG9tL3JlbGF0aXZlLXNpemVkLXVzZS1vbi1zeW1ib2wueGh0bWw6CisgICAg
ICAgICogc3ZnL2RvbS9mcmFtZS1yZWxhdGVkLWFwaS1kdXJpbmctbG9hZC5odG1sOgorICAgICAg
ICAqIHRyYW5zZm9ybXMvMmQvY29tcHV0ZWQtc3R5bGUtb3JpZ2luLmh0bWw6CisgICAgICAgICog
dHJhbnNmb3Jtcy8yZC9yZXNvdXJjZXMvdHJhbnNmb3JtLXRlc3QtdXRpbHMuanM6CisgICAgICAg
ICh0ZXN0VHJhbnNmb3Jtcyk6CisgICAgICAgICogdHJhbnNmb3Jtcy9jc3NtYXRyaXgtMmQtaW50
ZXJmYWNlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB0cmFuc2Zvcm1zL2Nzc21hdHJpeC0yZC1p
bnRlcmZhY2UueGh0bWw6CisgICAgICAgICogdHJhbnNpdGlvbnMvY2FuY2VsLXRyYW5zaXRpb24u
aHRtbDoKKyAgICAgICAgKiB0cmFuc2l0aW9ucy9jaGFuZ2UtdmFsdWVzLWR1cmluZy10cmFuc2l0
aW9uLmh0bWw6CisgICAgICAgICogdHJhbnNpdGlvbnMvZXh0cmEtdHJhbnNpdGlvbi5odG1sOgor
ICAgICAgICAqIHRyYW5zaXRpb25zL2luaGVyaXQtb3RoZXItcHJvcHMuaHRtbDoKKyAgICAgICAg
KiB0cmFuc2l0aW9ucy9pbmhlcml0Lmh0bWw6CisgICAgICAgICogdHJhbnNpdGlvbnMvaW50ZXJy
dXB0LXRyYW5zZm9ybS10cmFuc2l0aW9uLmh0bWw6CisgICAgICAgICogdHJhbnNpdGlvbnMvaW50
ZXJydXB0LXplcm8tZHVyYXRpb24uaHRtbDoKKyAgICAgICAgKiB0cmFuc2l0aW9ucy9pbnRlcnJ1
cHRlZC1hbGwtdHJhbnNpdGlvbi5odG1sOgorICAgICAgICAqIHRyYW5zaXRpb25zL21hdGNoZWQt
dHJhbnNmb3JtLWZ1bmN0aW9ucy5odG1sOgorICAgICAgICAqIHRyYW5zaXRpb25zL3JlcGVhdGVk
LWZpcmluZy1iYWNrZ3JvdW5kLWNvbG9yLmh0bWw6CisgICAgICAgICogdHJhbnNpdGlvbnMvcmV0
YXJnZXR0ZWQtdHJhbnNpdGlvbi5odG1sOgorICAgICAgICAqIHRyYW5zaXRpb25zL3N0YXJ0LXRy
YW5zZm9ybS10cmFuc2l0aW9uLmh0bWw6CisgICAgICAgICogdHJhbnNpdGlvbnMvdHJhbnNpdGlv
bi1kcnQtYXBpLWRlbGF5Lmh0bWw6CisgICAgICAgICogdHJhbnNpdGlvbnMvdHJhbnNpdGlvbi1k
dXJhdGlvbi1jbGVhcmVkLWluLXRyYW5zaXRpb25lbmQtY3Jhc2guaHRtbDoKKyAgICAgICAgKiB0
cmFuc2l0aW9ucy90cmFuc2l0aW9uLXNob3J0aGFuZC1kZWxheS5odG1sOgorICAgICAgICAqIHRy
YW5zaXRpb25zL3RyYW5zaXRpb24tdGVzdC1oZWxwZXJzLmpzOgorICAgICAgICAoZXhwZWN0ZWQp
OgorICAgICAgICAqIHRyYW5zaXRpb25zL3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uLmh0bWw6
CisgICAgICAgICogdHJhbnNpdGlvbnMvemVyby1kdXJhdGlvbi13aXRoLW5vbi16ZXJvLWRlbGF5
LXN0YXJ0Lmh0bWw6CisgICAgICAgICogdHJhbnNpdGlvbnMvemVyby1kdXJhdGlvbi13aXRob3V0
LXVuaXRzLmh0bWw6CisgICAgICAgICogdHJhdmVyc2FsL25vZGUtaXRlcmF0b3ItMDA5Lmh0bWw6
CisgICAgICAgICogd2Vic29ja2V0L3Rlc3RzL3NjcmlwdC10ZXN0cy93ZWJzb2NrZXQtZXZlbnQt
dGFyZ2V0LmpzOgorCiAyMDEwLTA2LTAyICBTZXJnaW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBp
Z2FsaWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFhhbiBMb3Blei4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLXNob3J0aGFuZC1yZW1vdmVkLmh0bWwg
Yi9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1zaG9ydGhhbmQtcmVtb3ZlZC5odG1s
CmluZGV4IDE1YmY5NjguLjgwNTljZTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2FuaW1hdGlv
bnMvYW5pbWF0aW9uLXNob3J0aGFuZC1yZW1vdmVkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvYW5p
bWF0aW9ucy9hbmltYXRpb24tc2hvcnRoYW5kLXJlbW92ZWQuaHRtbApAQCAtNzUsNyArNzUsNyBA
QAogICAgICAgdmFyIHJlc3VsdHNTdHJpbmcgPSAiIjsKICAgICAgIGtFbGVtZW50cy5mb3JFYWNo
KGZ1bmN0aW9uKGN1ckVsKSB7CiAgICAgICAgIHZhciBlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKGN1ckVsLmlkKTsKLSAgICAgICAgdmFyIGVsU3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRT
dHlsZShlbCk7CisgICAgICAgIHZhciBlbFN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUo
ZWwsIG51bGwpOwogCiAgICAgICAgIGZvciAodmFyIGk9MDsgaSA8IGtQcm9wZXJ0aWVzLmxlbmd0
aDsgaSsrKSB7CiAgICAgICAgICAgdmFyIGNvbXB1dGVkVmFsdWUgPSBlbFN0eWxlW2tQcm9wZXJ0
aWVzW2ldXTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLXNo
b3J0aGFuZC5odG1sIGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmltYXRpb24tc2hvcnRoYW5k
Lmh0bWwKaW5kZXggYWRmMzcxOS4uOTk1YmY0YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvYW5p
bWF0aW9ucy9hbmltYXRpb24tc2hvcnRoYW5kLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvYW5pbWF0
aW9ucy9hbmltYXRpb24tc2hvcnRoYW5kLmh0bWwKQEAgLTcxLDcgKzcxLDcgQEAKICAgICAgIHZh
ciByZXN1bHRzU3RyaW5nID0gIiI7CiAgICAgICBrRXhwZWN0ZWRSZXN1bHRzLmZvckVhY2goZnVu
Y3Rpb24oY3VySXRlbSkgewogICAgICAgICB2YXIgZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZChjdXJJdGVtLmlkKTsKLSAgICAgICAgdmFyIGVsU3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRT
dHlsZShlbCk7CisgICAgICAgIHZhciBlbFN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUo
ZWwsIG51bGwpOwogICAgICAgICAKICAgICAgICAgZm9yICh2YXIgaT0wOyBpIDwga1Byb3BlcnRp
ZXMubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICB2YXIgY29tcHV0ZWRWYWx1ZSA9IGVsU3R5bGVb
a1Byb3BlcnRpZXNbaV1dOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmlt
YXRpb24tdGVzdC1oZWxwZXJzLmpzIGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmltYXRpb24t
dGVzdC1oZWxwZXJzLmpzCmluZGV4IGFiNjA2YWEuLmVlN2YzNTUgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLXRlc3QtaGVscGVycy5qcworKysgYi9MYXlvdXRU
ZXN0cy9hbmltYXRpb25zL2FuaW1hdGlvbi10ZXN0LWhlbHBlcnMuanMKQEAgLTc3LDkgKzc3LDkg
QEAgZnVuY3Rpb24gY2hlY2tFeHBlY3RlZFZhbHVlKGV4cGVjdGVkLCBpbmRleCkKICAgICB2YXIg
Y29tcHV0ZWRWYWx1ZSwgY29tcHV0ZWRWYWx1ZTI7CiAgICAgdmFyIHBhc3MgPSB0cnVlOwogICAg
IGlmICghcHJvcGVydHkuaW5kZXhPZigid2Via2l0VHJhbnNmb3JtIikpIHsKLSAgICAgICAgY29t
cHV0ZWRWYWx1ZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKGVsZW1lbnRJZCkpLndlYmtpdFRyYW5zZm9ybTsKKyAgICAgICAgY29tcHV0ZWRWYWx1ZSA9
IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJ
ZCksIG51bGwpLndlYmtpdFRyYW5zZm9ybTsKICAgICAgICAgaWYgKGNvbXBhcmVFbGVtZW50cykg
ewotICAgICAgICAgICAgY29tcHV0ZWRWYWx1ZTIgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShk
b2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVtZW50SWQyKSkud2Via2l0VHJhbnNmb3JtOworICAg
ICAgICAgICAgY29tcHV0ZWRWYWx1ZTIgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZChlbGVtZW50SWQyKSwgbnVsbCkud2Via2l0VHJhbnNmb3JtOwogICAg
ICAgICAgICAgdmFyIG0xID0gbWF0cml4U3RyaW5nVG9BcnJheShjb21wdXRlZFZhbHVlKTsKICAg
ICAgICAgICAgIHZhciBtMiA9IG1hdHJpeFN0cmluZ1RvQXJyYXkoY29tcHV0ZWRWYWx1ZTIpOwog
ICAgICAgICAgICAgCkBAIC0xMDYsMTggKzEwNiwxOCBAQCBmdW5jdGlvbiBjaGVja0V4cGVjdGVk
VmFsdWUoZXhwZWN0ZWQsIGluZGV4KQogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfSBl
bHNlIGlmIChwcm9wZXJ0eSA9PSAibGluZUhlaWdodCIpIHsKLSAgICAgICAgY29tcHV0ZWRWYWx1
ZSA9IHBhcnNlSW50KHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKGVsZW1lbnRJZCkpLmxpbmVIZWlnaHQpOworICAgICAgICBjb21wdXRlZFZhbHVlID0gcGFy
c2VJbnQod2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxl
bWVudElkKSwgbnVsbCkubGluZUhlaWdodCk7CiAgICAgICAgIGlmIChjb21wYXJlRWxlbWVudHMp
IHsKLSAgICAgICAgICAgIGNvbXB1dGVkVmFsdWUyID0gcGFyc2VJbnQod2luZG93LmdldENvbXB1
dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElkMikpLmxpbmVIZWlnaHQp
OworICAgICAgICAgICAgY29tcHV0ZWRWYWx1ZTIgPSBwYXJzZUludCh3aW5kb3cuZ2V0Q29tcHV0
ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVtZW50SWQyKSwgbnVsbCkubGluZUhl
aWdodCk7CiAgICAgICAgICAgICBwYXNzID0gaXNDbG9zZUVub3VnaChjb21wdXRlZFZhbHVlLCBj
b21wdXRlZFZhbHVlMiwgdG9sZXJhbmNlKTsKICAgICAgICAgfQogICAgICAgICBlbHNlCiAgICAg
ICAgICAgICBwYXNzID0gaXNDbG9zZUVub3VnaChjb21wdXRlZFZhbHVlLCBleHBlY3RlZFZhbHVl
LCB0b2xlcmFuY2UpOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIHZhciBjb21wdXRlZFN0eWxlID0g
d2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElk
KSkuZ2V0UHJvcGVydHlDU1NWYWx1ZShwcm9wZXJ0eSk7CisgICAgICAgIHZhciBjb21wdXRlZFN0
eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxl
bWVudElkKSwgbnVsbCkuZ2V0UHJvcGVydHlDU1NWYWx1ZShwcm9wZXJ0eSk7CiAgICAgICAgIGNv
bXB1dGVkVmFsdWUgPSBjb21wdXRlZFN0eWxlLmdldEZsb2F0VmFsdWUoQ1NTUHJpbWl0aXZlVmFs
dWUuQ1NTX05VTUJFUik7CiAgICAgICAgIGlmIChjb21wYXJlRWxlbWVudHMpIHsKLSAgICAgICAg
ICAgIHZhciBjb21wdXRlZFN0eWxlMiA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJZDIpKS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKHByb3BlcnR5
KTsKKyAgICAgICAgICAgIHZhciBjb21wdXRlZFN0eWxlMiA9IHdpbmRvdy5nZXRDb21wdXRlZFN0
eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJZDIpLCBudWxsKS5nZXRQcm9wZXJ0
eUNTU1ZhbHVlKHByb3BlcnR5KTsKICAgICAgICAgICAgIGNvbXB1dGVkVmFsdWUyID0gY29tcHV0
ZWRTdHlsZTIuZ2V0RmxvYXRWYWx1ZShDU1NQcmltaXRpdmVWYWx1ZS5DU1NfTlVNQkVSKTsKICAg
ICAgICAgICAgIHBhc3MgPSBpc0Nsb3NlRW5vdWdoKGNvbXB1dGVkVmFsdWUsIGNvbXB1dGVkVmFs
dWUyLCB0b2xlcmFuY2UpOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hbmlt
YXRpb25zL2NoYW5nZS1vbmUtYW5pbS5odG1sIGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9jaGFu
Z2Utb25lLWFuaW0uaHRtbAppbmRleCBiNThiYjE3Li40NWEwODg1IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9hbmltYXRpb25zL2NoYW5nZS1vbmUtYW5pbS5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2FuaW1hdGlvbnMvY2hhbmdlLW9uZS1hbmltLmh0bWwKQEAgLTM5LDcgKzM5LDcgQEAKICAgICAg
ICAgZnVuY3Rpb24gcmVtb3ZlQW5pbSgpCiAgICAgICAgIHsKICAgICAgICAgICAgIHZhciB0YXJn
ZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYm94Iik7Ci0gICAgICAgICAgICB2YXIgbGVm
dCA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRhcmdldCkubGVmdDsKKyAgICAgICAgICAgIHZh
ciBsZWZ0ID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUodGFyZ2V0LCBudWxsKS5sZWZ0OwogICAg
ICAgICAgICAgdGFyZ2V0LnN0eWxlLndlYmtpdEFuaW1hdGlvbk5hbWUgPSAidmVydCI7CiAgICAg
ICAgICAgICB0YXJnZXQuc3R5bGUubGVmdCA9IGxlZnQ7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2FuaW1hdGlvbnMvY29tYm8tdHJhbnNmb3JtLXRyYW5zbGF0ZStzY2FsZS5o
dG1sIGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9jb21iby10cmFuc2Zvcm0tdHJhbnNsYXRlK3Nj
YWxlLmh0bWwKaW5kZXggNmE3OGEzMS4uYzQ5NzU1MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
YW5pbWF0aW9ucy9jb21iby10cmFuc2Zvcm0tdHJhbnNsYXRlK3NjYWxlLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvYW5pbWF0aW9ucy9jb21iby10cmFuc2Zvcm0tdHJhbnNsYXRlK3NjYWxlLmh0bWwK
QEAgLTQyLDcgKzQyLDcgQEAKICAgICAKICAgICBmdW5jdGlvbiBzbmFwc2hvdCh3aGljaCkKICAg
ICB7Ci0gICAgICAgIHZhciB0ID0gbmV3IFdlYktpdENTU01hdHJpeCh3aW5kb3cuZ2V0Q29tcHV0
ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYm94JykpLndlYmtpdFRyYW5zZm9ybSk7
CisgICAgICAgIHZhciB0ID0gbmV3IFdlYktpdENTU01hdHJpeCh3aW5kb3cuZ2V0Q29tcHV0ZWRT
dHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYm94JyksIG51bGwpLndlYmtpdFRyYW5zZm9y
bSk7CiAgICAgICAgIGZvciAoaSA9IDA7IGkgPCA2OyArK2kpIHsKICAgICAgICAgICAgIGlmICgh
aXNFcXVhbCh0W3Byb3BbaV1dLCBleHBlY3RlZFt3aGljaF1baV0sIHRvbGVyYW5jZVtpXSkpCiAg
ICAgICAgICAgICAgICAgcmVzdWx0ICs9ICJGQUlMKCciK3Byb3BbaV0rIicgd2FzOiIrdFtwcm9w
W2ldXSsiLCBleHBlY3RlZDoiK2V4cGVjdGVkW3doaWNoXVtpXSsiKSI7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9hbmltYXRpb25zL2NvbXB1dGVkLXN0eWxlLmh0bWwgYi9MYXlvdXRUZXN0cy9h
bmltYXRpb25zL2NvbXB1dGVkLXN0eWxlLmh0bWwKaW5kZXggODljOGVlZC4uNGU4MjA1NyAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9jb21wdXRlZC1zdHlsZS5odG1sCisrKyBi
L0xheW91dFRlc3RzL2FuaW1hdGlvbnMvY29tcHV0ZWQtc3R5bGUuaHRtbApAQCAtNTMsOCArNTMs
OCBAQCBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyBjb21wdXRlZCBzdHlsZSB2YWx1ZXMgZnJvbSBh
bmltYXRpb24gcHJvcGVydGllcy4iKTsKIHZhciB0ZXN0MSA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJ0ZXN0MSIpOwogdmFyIHRlc3QyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3Qy
Iik7CiAKLXZhciB0ZXN0MVN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUodGVzdDEpOwot
dmFyIHRlc3QyU3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0ZXN0Mik7Cit2YXIgdGVz
dDFTdHlsZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRlc3QxLCBudWxsKTsKK3ZhciB0ZXN0
MlN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUodGVzdDIsIG51bGwpOwogCiBzaG91bGRC
ZSgidGVzdDFTdHlsZS53ZWJraXRBbmltYXRpb25OYW1lIiwgIidhbmltMSciKTsKIHNob3VsZEJl
KCJ0ZXN0MlN0eWxlLndlYmtpdEFuaW1hdGlvbk5hbWUiLCAiJ2FuaW0yLCBhbmltMyciKTsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvZmlsbC1tb2RlLXJlbW92ZWQuaHRtbCBi
L0xheW91dFRlc3RzL2FuaW1hdGlvbnMvZmlsbC1tb2RlLXJlbW92ZWQuaHRtbAppbmRleCA2NjM1
NDY0Li5jN2I1N2NjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2ZpbGwtbW9k
ZS1yZW1vdmVkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9maWxsLW1vZGUtcmVt
b3ZlZC5odG1sCkBAIC02Nyw3ICs2Nyw3IEBACiAgICAgICAgIGZvciAodmFyIGk9MDsgaSA8IGV4
cGVjdGVkRW5kVmFsdWVzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgICB2YXIgZWwgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZChleHBlY3RlZEVuZFZhbHVlc1tpXS5pZCk7CiAgICAgICAgICAg
ICB2YXIgZXhwZWN0ZWRWYWx1ZSA9IGV4cGVjdGVkRW5kVmFsdWVzW2ldLnZhbHVlOwotICAgICAg
ICAgICAgdmFyIHJlYWxWYWx1ZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsKS5nZXRQcm9w
ZXJ0eUNTU1ZhbHVlKCJsZWZ0IikuZ2V0RmxvYXRWYWx1ZShDU1NQcmltaXRpdmVWYWx1ZS5DU1Nf
TlVNQkVSKTsKKyAgICAgICAgICAgIHZhciByZWFsVmFsdWUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRT
dHlsZShlbCwgbnVsbCkuZ2V0UHJvcGVydHlDU1NWYWx1ZSgibGVmdCIpLmdldEZsb2F0VmFsdWUo
Q1NTUHJpbWl0aXZlVmFsdWUuQ1NTX05VTUJFUik7CiAgICAgICAgICAgICBpZiAoTWF0aC5hYnMo
ZXhwZWN0ZWRWYWx1ZSAtIHJlYWxWYWx1ZSkgPCA1KSB7CiAgICAgICAgICAgICAgIHJlc3VsdCAr
PSAiUEFTUyI7CiAgICAgICAgICAgICB9IGVsc2UgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
YW5pbWF0aW9ucy9maWxsLW1vZGUtdHJhbnNmb3JtLmh0bWwgYi9MYXlvdXRUZXN0cy9hbmltYXRp
b25zL2ZpbGwtbW9kZS10cmFuc2Zvcm0uaHRtbAppbmRleCAxYWY4MWUwLi4wN2NjNWE5IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2ZpbGwtbW9kZS10cmFuc2Zvcm0uaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2ZpbGwtbW9kZS10cmFuc2Zvcm0uaHRtbApAQCAt
NzUsNyArNzUsNyBAQAogICAgICAgICBmb3IgKHZhciBpPTA7IGkgPCBleHBlY3RlZFZhbHVlcy5s
ZW5ndGg7IGkrKykgewogICAgICAgICAgICAgdmFyIGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoZXhwZWN0ZWRWYWx1ZXNbaV0uaWQpOwogICAgICAgICAgICAgdmFyIGV4cGVjdGVkVmFsdWUg
PSBleHBlY3RlZFZhbHVlc1tpXS5lbmQ7Ci0gICAgICAgICAgICB2YXIgY29tcHV0ZWRWYWx1ZSA9
IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsKS53ZWJraXRUcmFuc2Zvcm07CisgICAgICAgICAg
ICB2YXIgY29tcHV0ZWRWYWx1ZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsLCBudWxsKS53
ZWJraXRUcmFuc2Zvcm07CiAgICAgICAgICAgICB2YXIgcmVhbFZhbHVlID0gcGFyc2VGbG9hdChj
b21wdXRlZFZhbHVlLnNwbGl0KCIoIilbMV0uc3BsaXQoIiwiKVs0XSk7CiAgICAgICAgICAgICBp
ZiAoTWF0aC5hYnMoZXhwZWN0ZWRWYWx1ZSAtIHJlYWxWYWx1ZSkgPCBhbGxvd2FuY2UpIHsKICAg
ICAgICAgICAgICAgcmVzdWx0ICs9ICJQQVNTIjsKQEAgLTk0LDcgKzk0LDcgQEAKICAgICAgIGZv
ciAodmFyIGk9MDsgaSA8IGV4cGVjdGVkVmFsdWVzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAg
dmFyIGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZXhwZWN0ZWRWYWx1ZXNbaV0uaWQpOwog
ICAgICAgICAgIHZhciBleHBlY3RlZFZhbHVlID0gZXhwZWN0ZWRWYWx1ZXNbaV0uc3RhcnQ7Ci0g
ICAgICAgICAgdmFyIGNvbXB1dGVkVmFsdWUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbCku
d2Via2l0VHJhbnNmb3JtOworICAgICAgICAgIHZhciBjb21wdXRlZFZhbHVlID0gd2luZG93Lmdl
dENvbXB1dGVkU3R5bGUoZWwsIG51bGwpLndlYmtpdFRyYW5zZm9ybTsKICAgICAgICAgICB2YXIg
cmVhbFZhbHVlID0gcGFyc2VGbG9hdChjb21wdXRlZFZhbHVlLnNwbGl0KCIoIilbMV0uc3BsaXQo
IiwiKVs0XSk7CiAgICAgICAgICAgaWYgKE1hdGguYWJzKGV4cGVjdGVkVmFsdWUgLSByZWFsVmFs
dWUpIDwgYWxsb3dhbmNlKSB7CiAgICAgICAgICAgICByZXN1bHQgKz0gIlBBU1MiOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9maWxsLW1vZGUuaHRtbCBiL0xheW91dFRlc3Rz
L2FuaW1hdGlvbnMvZmlsbC1tb2RlLmh0bWwKaW5kZXggNmM3NDFhNS4uZDJlNGIyOSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9maWxsLW1vZGUuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9hbmltYXRpb25zL2ZpbGwtbW9kZS5odG1sCkBAIC03NCw3ICs3NCw3IEBACiAgICAgICAg
IGZvciAodmFyIGk9MDsgaSA8IGV4cGVjdGVkVmFsdWVzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAg
ICAgICB2YXIgZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChleHBlY3RlZFZhbHVlc1tpXS5p
ZCk7CiAgICAgICAgICAgICB2YXIgZXhwZWN0ZWRWYWx1ZSA9IGV4cGVjdGVkVmFsdWVzW2ldLmVu
ZDsKLSAgICAgICAgICAgIHZhciByZWFsVmFsdWUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShl
bCkuZ2V0UHJvcGVydHlDU1NWYWx1ZSgibGVmdCIpLmdldEZsb2F0VmFsdWUoQ1NTUHJpbWl0aXZl
VmFsdWUuQ1NTX05VTUJFUik7CisgICAgICAgICAgICB2YXIgcmVhbFZhbHVlID0gd2luZG93Lmdl
dENvbXB1dGVkU3R5bGUoZWwsIG51bGwpLmdldFByb3BlcnR5Q1NTVmFsdWUoImxlZnQiKS5nZXRG
bG9hdFZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlLkNTU19OVU1CRVIpOwogICAgICAgICAgICAgaWYg
KE1hdGguYWJzKGV4cGVjdGVkVmFsdWUgLSByZWFsVmFsdWUpIDwgYWxsb3dhbmNlKSB7CiAgICAg
ICAgICAgICAgIHJlc3VsdCArPSAiUEFTUyI7CiAgICAgICAgICAgICB9IGVsc2UgewpAQCAtOTIs
NyArOTIsNyBAQAogICAgICAgICBmb3IgKHZhciBpPTA7IGkgPCBleHBlY3RlZFZhbHVlcy5sZW5n
dGg7IGkrKykgewogICAgICAgICAgICAgdmFyIGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ZXhwZWN0ZWRWYWx1ZXNbaV0uaWQpOwogICAgICAgICAgICAgdmFyIGV4cGVjdGVkVmFsdWUgPSBl
eHBlY3RlZFZhbHVlc1tpXS5zdGFydDsKLSAgICAgICAgICAgIHZhciByZWFsVmFsdWUgPSB3aW5k
b3cuZ2V0Q29tcHV0ZWRTdHlsZShlbCkuZ2V0UHJvcGVydHlDU1NWYWx1ZSgibGVmdCIpLmdldEZs
b2F0VmFsdWUoQ1NTUHJpbWl0aXZlVmFsdWUuQ1NTX05VTUJFUik7CisgICAgICAgICAgICB2YXIg
cmVhbFZhbHVlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWwsIG51bGwpLmdldFByb3BlcnR5
Q1NTVmFsdWUoImxlZnQiKS5nZXRGbG9hdFZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlLkNTU19OVU1C
RVIpOwogICAgICAgICAgICAgaWYgKE1hdGguYWJzKGV4cGVjdGVkVmFsdWUgLSByZWFsVmFsdWUp
IDwgYWxsb3dhbmNlKSB7CiAgICAgICAgICAgICAgIHJlc3VsdCArPSAiUEFTUyI7CiAgICAgICAg
ICAgICB9IGVsc2UgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9maWxsLXVu
c2V0LXByb3BlcnRpZXMuaHRtbCBiL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvZmlsbC11bnNldC1w
cm9wZXJ0aWVzLmh0bWwKaW5kZXggYTQ5ZGVjYS4uOTk4MzdmZiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvYW5pbWF0aW9ucy9maWxsLXVuc2V0LXByb3BlcnRpZXMuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9hbmltYXRpb25zL2ZpbGwtdW5zZXQtcHJvcGVydGllcy5odG1sCkBAIC00MCw3ICs0MCw3
IEBACiAgICAgewogICAgICAgICB2YXIgYm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Jv
eCcpOwogICAgICAgICB2YXIgcmVzdWx0c1N0cmluZyA9ICIiOwotICAgICAgICB2YXIgYm94U3R5
bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShib3gpOworICAgICAgICB2YXIgYm94U3R5bGUg
PSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShib3gsIG51bGwpOwogICAgICAgICAKICAgICAgICAg
a0V4cGVjdGVkUmVzdWx0cy5mb3JFYWNoKGZ1bmN0aW9uKGN1ckl0ZW0pIHsKICAgICAgICAgICB2
YXIgY29tcHV0ZWRWYWx1ZSA9IGJveFN0eWxlW2N1ckl0ZW0ucHJvcGVydHldOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9mb250LXNpemUtdXNpbmctZW1zLmh0bWwtZGlzYWJs
ZWQgYi9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2ZvbnQtc2l6ZS11c2luZy1lbXMuaHRtbC1kaXNh
YmxlZAppbmRleCAzNThlMmEzLi5iZjIwNzJiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9hbmlt
YXRpb25zL2ZvbnQtc2l6ZS11c2luZy1lbXMuaHRtbC1kaXNhYmxlZAorKysgYi9MYXlvdXRUZXN0
cy9hbmltYXRpb25zL2ZvbnQtc2l6ZS11c2luZy1lbXMuaHRtbC1kaXNhYmxlZApAQCAtNDksNyAr
NDksNyBAQAogICAgICAgICBpZiAocmVzdWx0ICE9ICJQQVNTIikKICAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgICAgIAotICAgICAgICB2YXIgZm9udFNpemUgPSBwYXJzZUludCh3aW5kb3cu
Z2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYm94JykpLmZvbnRTaXpl
KTsKKyAgICAgICAgdmFyIGZvbnRTaXplID0gcGFyc2VJbnQod2luZG93LmdldENvbXB1dGVkU3R5
bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JveCcpLCBudWxsKS5mb250U2l6ZSk7CiAgICAg
ICAgIGlmICghaXNFcXVhbChmb250U2l6ZSwgZXhwZWN0ZWQpKSB7CiAgICAgICAgICAgICByZXN1
bHQgPSAiRkFJTCh3YXM6Iitmb250U2l6ZSsiLCBleHBlY3RlZDoiK2V4cGVjdGVkKyIpIjsKICAg
ICAgICAgfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5w
YXRoLmFyYy5ub25maW5pdGUuaHRtbCBiL0xheW91dFRlc3RzL2NhbnZhcy9waGlsaXAvdGVzdHMv
MmQucGF0aC5hcmMubm9uZmluaXRlLmh0bWwKaW5kZXggNDU3ZmUxYi4uMzY0NmIwMyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5wYXRoLmFyYy5ub25maW5p
dGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnBhdGguYXJj
Lm5vbmZpbml0ZS5odG1sCkBAIC0yOSwyOSArMjksMjkgQEAgY3R4LmZpbGxTdHlsZSA9ICcjZjAw
JzsKIGN0eC5maWxsUmVjdCgwLCAwLCAxMDAsIDUwKTsKIGN0eC5tb3ZlVG8oMCwgMCk7CiBjdHgu
bGluZVRvKDEwMCwgMCk7Ci1jdHguYXJjKEluZmluaXR5LCA1MCwgMCwgMipNYXRoLlBJLCB0cnVl
KTsKLWN0eC5hcmMoLUluZmluaXR5LCA1MCwgMCwgMipNYXRoLlBJLCB0cnVlKTsKLWN0eC5hcmMo
TmFOLCA1MCwgMCwgMipNYXRoLlBJLCB0cnVlKTsKLWN0eC5hcmMoMCwgSW5maW5pdHksIDAsIDIq
TWF0aC5QSSwgdHJ1ZSk7Ci1jdHguYXJjKDAsIC1JbmZpbml0eSwgMCwgMipNYXRoLlBJLCB0cnVl
KTsKLWN0eC5hcmMoMCwgTmFOLCAwLCAyKk1hdGguUEksIHRydWUpOwotY3R4LmFyYygwLCA1MCwg
SW5maW5pdHksIDIqTWF0aC5QSSwgdHJ1ZSk7Ci1jdHguYXJjKDAsIDUwLCAtSW5maW5pdHksIDIq
TWF0aC5QSSwgdHJ1ZSk7Ci1jdHguYXJjKDAsIDUwLCBOYU4sIDIqTWF0aC5QSSwgdHJ1ZSk7Ci1j
dHguYXJjKDAsIDUwLCAwLCBJbmZpbml0eSwgdHJ1ZSk7Ci1jdHguYXJjKDAsIDUwLCAwLCAtSW5m
aW5pdHksIHRydWUpOwotY3R4LmFyYygwLCA1MCwgMCwgTmFOLCB0cnVlKTsKLWN0eC5hcmMoSW5m
aW5pdHksIEluZmluaXR5LCAwLCAyKk1hdGguUEksIHRydWUpOwotY3R4LmFyYyhJbmZpbml0eSwg
SW5maW5pdHksIEluZmluaXR5LCAyKk1hdGguUEksIHRydWUpOwotY3R4LmFyYyhJbmZpbml0eSwg
SW5maW5pdHksIEluZmluaXR5LCBJbmZpbml0eSwgdHJ1ZSk7Ci1jdHguYXJjKEluZmluaXR5LCBJ
bmZpbml0eSwgMCwgSW5maW5pdHksIHRydWUpOwotY3R4LmFyYyhJbmZpbml0eSwgNTAsIEluZmlu
aXR5LCAyKk1hdGguUEksIHRydWUpOwotY3R4LmFyYyhJbmZpbml0eSwgNTAsIEluZmluaXR5LCBJ
bmZpbml0eSwgdHJ1ZSk7Ci1jdHguYXJjKEluZmluaXR5LCA1MCwgMCwgSW5maW5pdHksIHRydWUp
OwotY3R4LmFyYygwLCBJbmZpbml0eSwgSW5maW5pdHksIDIqTWF0aC5QSSwgdHJ1ZSk7Ci1jdHgu
YXJjKDAsIEluZmluaXR5LCBJbmZpbml0eSwgSW5maW5pdHksIHRydWUpOwotY3R4LmFyYygwLCBJ
bmZpbml0eSwgMCwgSW5maW5pdHksIHRydWUpOwotY3R4LmFyYygwLCA1MCwgSW5maW5pdHksIElu
ZmluaXR5LCB0cnVlKTsKK2N0eC5hcmMoSW5maW5pdHksIDUwLCAxMCwgMCwgMipNYXRoLlBJLCB0
cnVlKTsKK2N0eC5hcmMoLUluZmluaXR5LCA1MCwgMTAsIDAsIDIqTWF0aC5QSSwgdHJ1ZSk7Citj
dHguYXJjKE5hTiwgNTAsIDEwLCAwLCAyKk1hdGguUEksIHRydWUpOworY3R4LmFyYygwLCBJbmZp
bml0eSwgMTAsIDAsIDIqTWF0aC5QSSwgdHJ1ZSk7CitjdHguYXJjKDAsIC1JbmZpbml0eSwgMTAs
IDAsIDIqTWF0aC5QSSwgdHJ1ZSk7CitjdHguYXJjKDAsIE5hTiwgMCwgMTAsIDIqTWF0aC5QSSwg
dHJ1ZSk7CitjdHguYXJjKDAsIDUwLCAxMCwgSW5maW5pdHksIDIqTWF0aC5QSSwgdHJ1ZSk7Citj
dHguYXJjKDAsIDUwLCAxMCwgLUluZmluaXR5LCAyKk1hdGguUEksIHRydWUpOworY3R4LmFyYygw
LCA1MCwgMTAsIE5hTiwgMipNYXRoLlBJLCB0cnVlKTsKK2N0eC5hcmMoMCwgNTAsIDEwLCAwLCBJ
bmZpbml0eSwgdHJ1ZSk7CitjdHguYXJjKDAsIDUwLCAxMCwgMCwgLUluZmluaXR5LCB0cnVlKTsK
K2N0eC5hcmMoMCwgNTAsIDEwLCAwLCBOYU4sIHRydWUpOworY3R4LmFyYyhJbmZpbml0eSwgSW5m
aW5pdHksIDEwLCAwLCAyKk1hdGguUEksIHRydWUpOworY3R4LmFyYyhJbmZpbml0eSwgSW5maW5p
dHksIDEwLCBJbmZpbml0eSwgMipNYXRoLlBJLCB0cnVlKTsKK2N0eC5hcmMoSW5maW5pdHksIElu
ZmluaXR5LCAxMCwgSW5maW5pdHksIEluZmluaXR5LCB0cnVlKTsKK2N0eC5hcmMoSW5maW5pdHks
IEluZmluaXR5LCAxMCwgMCwgSW5maW5pdHksIHRydWUpOworY3R4LmFyYyhJbmZpbml0eSwgNTAs
IDEwLCBJbmZpbml0eSwgMipNYXRoLlBJLCB0cnVlKTsKK2N0eC5hcmMoSW5maW5pdHksIDUwLCAx
MCwgSW5maW5pdHksIEluZmluaXR5LCB0cnVlKTsKK2N0eC5hcmMoSW5maW5pdHksIDUwLCAxMCwg
MCwgSW5maW5pdHksIHRydWUpOworY3R4LmFyYygwLCBJbmZpbml0eSwgMTAsIEluZmluaXR5LCAy
Kk1hdGguUEksIHRydWUpOworY3R4LmFyYygwLCBJbmZpbml0eSwgMTAsIEluZmluaXR5LCBJbmZp
bml0eSwgdHJ1ZSk7CitjdHguYXJjKDAsIEluZmluaXR5LCAxMCwgMCwgSW5maW5pdHksIHRydWUp
OworY3R4LmFyYygwLCA1MCwgMTAsIEluZmluaXR5LCBJbmZpbml0eSwgdHJ1ZSk7CiBjdHgubGlu
ZVRvKDEwMCwgNTApOwogY3R4LmxpbmVUbygwLCA1MCk7CiBjdHguZmlsbFN0eWxlID0gJyMwZjAn
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMS91bml0cy96ZXJvLWR1cmF0aW9uLXdpdGhv
dXQtdW5pdHMuaHRtbCBiL0xheW91dFRlc3RzL2NzczEvdW5pdHMvemVyby1kdXJhdGlvbi13aXRo
b3V0LXVuaXRzLmh0bWwKaW5kZXggOTczYzVkOC4uZGQzZmYzOCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvY3NzMS91bml0cy96ZXJvLWR1cmF0aW9uLXdpdGhvdXQtdW5pdHMuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9jc3MxL3VuaXRzL3plcm8tZHVyYXRpb24td2l0aG91dC11bml0cy5odG1sCkBA
IC0yNSw3ICsyNSw3IEBACiAgICAgZnVuY3Rpb24gdGVzdCgpCiAgICAgewogICAgICAgICB2YXIg
Ym94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JveCcpOwotICAgICAgICB2YXIgZHVyID0g
cGFyc2VJbnQod2luZG93LmdldENvbXB1dGVkU3R5bGUoYm94KS53ZWJraXRUcmFuc2l0aW9uRHVy
YXRpb24pOworICAgICAgICB2YXIgZHVyID0gcGFyc2VJbnQod2luZG93LmdldENvbXB1dGVkU3R5
bGUoYm94LCBudWxsKS53ZWJraXRUcmFuc2l0aW9uRHVyYXRpb24pOwogICAgICAgICBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgncmVzdWx0JykuaW5uZXJIVE1MID0gKGR1ciA9PSAwKSA/ICJQQVNT
IiA6ICJGQUlMIjsKICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKICAg
ICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2VkaXRpbmcvZGVsZXRpbmcvNTE1NjgwMS5odG1sIGIvTGF5b3V0VGVzdHMv
ZWRpdGluZy9kZWxldGluZy81MTU2ODAxLmh0bWwKaW5kZXggMTEzOTQzNS4uZjAxOGRkYyAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9kZWxldGluZy81MTU2ODAxLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvZWRpdGluZy9kZWxldGluZy81MTU2ODAxLmh0bWwKQEAgLTE4LDcgKzE4LDcg
QEAgZnVuY3Rpb24gcmVtb3ZlSGFuZGxlcigpIHsKICAgICByZW1vdmVtZS5wYXJlbnROb2RlLnJl
bW92ZUNoaWxkKHJlbW92ZW1lKTsKIH0KIAotZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZvbyIp
LmFkZEV2ZW50TGlzdGVuZXIoIkRPTU5vZGVSZW1vdmVkIiwgcmVtb3ZlSGFuZGxlcik7Citkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgiZm9vIikuYWRkRXZlbnRMaXN0ZW5lcigiRE9NTm9kZVJlbW92
ZWQiLCByZW1vdmVIYW5kbGVyLCBmYWxzZSk7CiB2YXIgc2VsID0gd2luZG93LmdldFNlbGVjdGlv
bigpOwogc2VsLnNldEJhc2VBbmRFeHRlbnQoIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmb28n
KSwgMCwgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZvbycpLCAxICk7CiBkb2N1bWVudC5leGVj
Q29tbWFuZCgiRGVsZXRlIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWND
b21tYW5kLzUxMjA1OTEuaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvNTEy
MDU5MS5odG1sCmluZGV4IGEyOTZmY2MuLjE0YWY5YTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2VkaXRpbmcvZXhlY0NvbW1hbmQvNTEyMDU5MS5odG1sCisrKyBiL0xheW91dFRlc3RzL2VkaXRp
bmcvZXhlY0NvbW1hbmQvNTEyMDU5MS5odG1sCkBAIC03LDcgKzcsNyBAQCBpZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKQogICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQo
KTsKIAogdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkaXYiKTsKLWRpdi5hZGRF
dmVudExpc3RlbmVyKCdET01TdWJ0cmVlTW9kaWZpZWQnLCBmdW5jdGlvbiAoKSB7O30pOworZGl2
LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTVN1YnRyZWVNb2RpZmllZCcsIGZ1bmN0aW9uICgpIHs7fSwg
ZmFsc2UpOwogZGl2LmZvY3VzKCk7CiBkb2N1bWVudC5leGVjQ29tbWFuZCgiU2VsZWN0QWxsIik7
CiBkb2N1bWVudC5leGVjQ29tbWFuZCgiQ3JlYXRlTGluayIsIGZhbHNlLCAiIyIpOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkLzQyNDIyOTMuaHRtbCBiL0xheW91
dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC80MjQyMjkzLmh0bWwKaW5kZXggZDBkZWZhNC4uNzE5
NDk2OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkLzQyNDIyOTMu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvNDI0MjI5My5odG1sCkBA
IC05LDkgKzksOSBAQCBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQogPGRpdiBpZD0i
cGFzdGUiIGNvbnRlbnRlZGl0YWJsZT0idHJ1ZSI+PC9kaXY+CiAKIDxzY3JpcHQ+Ci13aW5kb3cu
Z2V0U2VsZWN0aW9uKCkuc2V0UG9zaXRpb24oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvcHki
KSk7Cit3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuc2V0UG9zaXRpb24oZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoImNvcHkiKSwgMCk7CiBkb2N1bWVudC5leGVjQ29tbWFuZCgiU2VsZWN0QWxsIik7CiBk
b2N1bWVudC5leGVjQ29tbWFuZCgiQ29weSIpOwotd2luZG93LmdldFNlbGVjdGlvbigpLnNldFBv
c2l0aW9uKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwYXN0ZSIpKTsKK3dpbmRvdy5nZXRTZWxl
Y3Rpb24oKS5zZXRQb3NpdGlvbihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGFzdGUiKSwgMCk7
CiBkb2N1bWVudC5leGVjQ29tbWFuZCgiUGFzdGUiKTsKLTwvc2NyaXB0PgpcIE5vIG5ld2xpbmUg
YXQgZW5kIG9mIGZpbGUKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGlu
Zy9wYXN0ZWJvYXJkL3N0eWxlZC1lbGVtZW50LW1hcmt1cC5odG1sIGIvTGF5b3V0VGVzdHMvZWRp
dGluZy9wYXN0ZWJvYXJkL3N0eWxlZC1lbGVtZW50LW1hcmt1cC5odG1sCmluZGV4IGY4NjZmNDYu
LjI2ODBhMzEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9zdHls
ZWQtZWxlbWVudC1tYXJrdXAuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9h
cmQvc3R5bGVkLWVsZW1lbnQtbWFya3VwLmh0bWwKQEAgLTgsOSArOCw5IEBAIGlmICh3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIpCiA8ZGl2IGNvbnRlbnRlZGl0YWJsZT0idHJ1ZSIgaWQ9InBh
c3RlIj48L2Rpdj4KIAogPHNjcmlwdD47Ci13aW5kb3cuZ2V0U2VsZWN0aW9uKCkuc2V0UG9zaXRp
b24oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvcHkiKSk7Cit3aW5kb3cuZ2V0U2VsZWN0aW9u
KCkuc2V0UG9zaXRpb24oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvcHkiKSwgMCk7CiBkb2N1
bWVudC5leGVjQ29tbWFuZCgiU2VsZWN0QWxsIik7CiBkb2N1bWVudC5leGVjQ29tbWFuZCgiQ29w
eSIpOwotd2luZG93LmdldFNlbGVjdGlvbigpLnNldFBvc2l0aW9uKGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJwYXN0ZSIpKTsKK3dpbmRvdy5nZXRTZWxlY3Rpb24oKS5zZXRQb3NpdGlvbihkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgicGFzdGUiKSwgMCk7CiBkb2N1bWVudC5leGVjQ29tbWFuZCgi
UGFzdGUiKTsKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxl
Y3Rpb24vRE9NU2VsZWN0aW9uLURvY3VtZW50VHlwZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9lZGl0aW5nL3NlbGVjdGlvbi9ET01TZWxlY3Rpb24tRG9jdW1lbnRUeXBlLWV4cGVjdGVkLnR4
dAppbmRleCAyZTk4NjIzLi4zYzFhZDM0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5n
L3NlbGVjdGlvbi9ET01TZWxlY3Rpb24tRG9jdW1lbnRUeXBlLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9ET01TZWxlY3Rpb24tRG9jdW1lbnRUeXBlLWV4
cGVjdGVkLnR4dApAQCAtMywxMyArMywxNCBAQCBUZXN0IHRvIGNoZWNrIGlmIHNldEJhc2VBbmRF
eHRlbnQgZ3VhcmQgbm9kZSB3aXRoIG51bGwgb3duZXIgZG9jdW1lbnQgKEJ1ZyAzMTY4MAogT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCiAKK1BBU1Mgc2VsLnNldEJhc2VBbmRFeHRlbnQoZG9j
VHlwZSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMuCiBQ
QVNTIHNlbC5hbmNob3JOb2RlIGlzIG51bGwKIFBBU1Mgc2VsLmFuY2hvck5vZGUgaXMgbnVsbAog
UEFTUyBzZWwuYW5jaG9yTm9kZSBpcyBudWxsCiBQQVNTIHNlbC5hbmNob3JOb2RlIGlzIG51bGwK
IFBBU1Mgc2VsLmFuY2hvck5vZGUgaXMgbnVsbAogUEFTUyBzZWwuYW5jaG9yTm9kZSBpcyBudWxs
Ci1QQVNTIHNlbC5jb250YWluc05vZGUoZG9jVHlwZSkgaXMgZmFsc2UKK1BBU1Mgc2VsLmNvbnRh
aW5zTm9kZShkb2NUeXBlLCBmYWxzZSkgaXMgZmFsc2UKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGlu
Zy9zZWxlY3Rpb24vZXh0ZW5kLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2VkaXRpbmcvc2Vs
ZWN0aW9uL2V4dGVuZC1leHBlY3RlZC50eHQKaW5kZXggMGE0NWNmZS4uYTI5ZjkzNSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZXh0ZW5kLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9leHRlbmQtZXhwZWN0ZWQudHh0CkBA
IC00LDUgKzQsNSBAQCBTdWNjZXNzOiBzLmV4dGVuZChzcGFuMi5maXJzdENoaWxkLCA0KSByYWlz
ZWQgRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aQogU3VjY2Vzczogcy5leHRlbmQo
c3BhbjIuZmlyc3RDaGlsZCwgLTEpIHJhaXNlZCBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBF
eGNlcHRpb24gMS4KIFN1Y2Nlc3M6IHdpbmRvdy5nZXRTZWxlY3Rpb24oKSBpcyBiLgogU3VjY2Vz
czogd2luZG93LmdldFNlbGVjdGlvbigpIGlzIGFyYmF6LgotU3VjY2Vzczogcy5leHRlbmQoKSBy
YWlzZWQgRXJyb3I6IFRZUEVfTUlTTUFUQ0hfRVJSOiBET00gRXhjZXB0aW9uIDE3LgorU3VjY2Vz
czogcy5leHRlbmQoKSByYWlzZWQgVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KIFN1
Y2Nlc3M6IHMuZXh0ZW5kKG51bGwsIDApIHJhaXNlZCBFcnJvcjogVFlQRV9NSVNNQVRDSF9FUlI6
IERPTSBFeGNlcHRpb24gMTcuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVj
dGlvbi9zY3JpcHQtdGVzdHMvRE9NU2VsZWN0aW9uLURvY3VtZW50VHlwZS5qcyBiL0xheW91dFRl
c3RzL2VkaXRpbmcvc2VsZWN0aW9uL3NjcmlwdC10ZXN0cy9ET01TZWxlY3Rpb24tRG9jdW1lbnRU
eXBlLmpzCmluZGV4IDc5NTQ1ZGQuLjRiZTFlZGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Vk
aXRpbmcvc2VsZWN0aW9uL3NjcmlwdC10ZXN0cy9ET01TZWxlY3Rpb24tRG9jdW1lbnRUeXBlLmpz
CisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3NjcmlwdC10ZXN0cy9ET01TZWxl
Y3Rpb24tRG9jdW1lbnRUeXBlLmpzCkBAIC0xLDE1ICsxLDE1IEBACiBkZXNjcmlwdGlvbigiVGVz
dCB0byBjaGVjayBpZiBzZXRCYXNlQW5kRXh0ZW50IGd1YXJkIG5vZGUgd2l0aCBudWxsIG93bmVy
IGRvY3VtZW50IChCdWcgMzE2ODApIik7CiAKIHZhciBzZWwgPSB3aW5kb3cuZ2V0U2VsZWN0aW9u
KCk7Ci12YXIgZG9jVHlwZSA9IGRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZURvY3VtZW50
VHlwZSgnYycpOwordmFyIGRvY1R5cGUgPSBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVE
b2N1bWVudFR5cGUoJ2MnLCBudWxsLCBudWxsKTsKIAotc2VsLnNldEJhc2VBbmRFeHRlbnQoZG9j
VHlwZSk7CitzaG91bGRUaHJvdygic2VsLnNldEJhc2VBbmRFeHRlbnQoZG9jVHlwZSkiKTsKIHNo
b3VsZEJlTnVsbCgic2VsLmFuY2hvck5vZGUiKTsKIAogc2VsLnNldEJhc2VBbmRFeHRlbnQobnVs
bCwgMCwgZG9jVHlwZSwgMCk7CiBzaG91bGRCZU51bGwoInNlbC5hbmNob3JOb2RlIik7CiAKLXNl
bC5jb2xsYXBzZShkb2NUeXBlKTsKK3NlbC5jb2xsYXBzZShkb2NUeXBlLCAwKTsKIHNob3VsZEJl
TnVsbCgic2VsLmFuY2hvck5vZGUiKTsKIAogc2VsLnNlbGVjdEFsbENoaWxkcmVuKGRvY1R5cGUp
OwpAQCAtMTgsOSArMTgsOSBAQCBzaG91bGRCZU51bGwoInNlbC5hbmNob3JOb2RlIik7CiBzZWwu
ZXh0ZW5kKGRvY1R5cGUsIDApOwogc2hvdWxkQmVOdWxsKCJzZWwuYW5jaG9yTm9kZSIpOwogCi1z
ZWwuY29udGFpbnNOb2RlKGRvY1R5cGUpOworc2VsLmNvbnRhaW5zTm9kZShkb2NUeXBlLCBmYWxz
ZSk7CiBzaG91bGRCZU51bGwoInNlbC5hbmNob3JOb2RlIik7CiAKLXNob3VsZEJlRmFsc2UoInNl
bC5jb250YWluc05vZGUoZG9jVHlwZSkiKTsKK3Nob3VsZEJlRmFsc2UoInNlbC5jb250YWluc05v
ZGUoZG9jVHlwZSwgZmFsc2UpIik7CiAKIHZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ib3JkZXJzL2JvcmRlci1yYWRpdXMtcGFyc2lu
Zy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ib3JkZXJzL2JvcmRlci1yYWRpdXMtcGFyc2luZy5o
dG1sCmluZGV4IDk4NzQ1OTAuLjI5YzkxN2MgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qv
Ym9yZGVycy9ib3JkZXItcmFkaXVzLXBhcnNpbmcuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2JvcmRlcnMvYm9yZGVyLXJhZGl1cy1wYXJzaW5nLmh0bWwKQEAgLTExLDggKzExLDggQEAKIAog
ICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogICAg
ICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsZW1lbnQpOwotICAgICAgICBlbGVtZW50
LnN0eWxlLnNldFByb3BlcnR5KHByb3BlcnR5LCB2YWx1ZSk7Ci0gICAgICAgIHZhciBjb21wdXRl
ZFN0eWxlID0gZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KTsKKyAgICAgICAgZWxlbWVudC5zdHls
ZS5zZXRQcm9wZXJ0eShwcm9wZXJ0eSwgdmFsdWUsIG51bGwpOworICAgICAgICB2YXIgY29tcHV0
ZWRTdHlsZSA9IGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwgbnVsbCk7CiAgICAgICAgIHZhciBw
cm9wZXJ0aWVzID0gWyJib3JkZXItdG9wLWxlZnQtcmFkaXVzIiwgImJvcmRlci10b3AtcmlnaHQt
cmFkaXVzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgImJvcmRlci1ib3R0b20tcmlnaHQt
cmFkaXVzIiwgImJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXMiXTsKICAgICAgICAgdmFyIGZhaWxl
ZCA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvYmFja2dyb3VuZC1j
dXJyZW50Y29sb3IuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2JhY2tncm91bmQtY3VycmVu
dGNvbG9yLmh0bWwKaW5kZXggNTVkOGU1Ny4uYWFjNjUwNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9jc3MvYmFja2dyb3VuZC1jdXJyZW50Y29sb3IuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2Nzcy9iYWNrZ3JvdW5kLWN1cnJlbnRjb2xvci5odG1sCkBAIC0xNiwxMiArMTYsMTIg
QEAKICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwogICAgICAgdmFy
IGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0d28iKTsKICAgICAgIGRpdi5zdHlsZS5j
b2xvciA9ICJncmVlbiI7Ci0gICAgICBpZiAod2luZG93LmdldENvbXB1dGVkU3R5bGUoZGl2KS5i
YWNrZ3JvdW5kQ29sb3IgIT0gInJnYigwLCAxMjgsIDApIikgeworICAgICAgaWYgKHdpbmRvdy5n
ZXRDb21wdXRlZFN0eWxlKGRpdiwgbnVsbCkuYmFja2dyb3VuZENvbG9yICE9ICJyZ2IoMCwgMTI4
LCAwKSIpIHsKICAgICAgICAgICBsb2coIkZBSUxFRCIpOwogICAgICAgICAgIHJldHVybjsKICAg
ICAgIH0KICAgICAgIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0aHJlZSIpOwotICAg
ICAgaWYgKHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRpdikuY29sb3IgIT0gInJnYigwLCAxMjgs
IDApIikgeworICAgICAgaWYgKHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRpdiwgbnVsbCkuY29s
b3IgIT0gInJnYigwLCAxMjgsIDApIikgewogICAgICAgICAgIGxvZygiRkFJTEVEIik7CiAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3Mv
YmFja2dyb3VuZC1wb3NpdGlvbi1pbmhlcml0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9i
YWNrZ3JvdW5kLXBvc2l0aW9uLWluaGVyaXQuaHRtbAppbmRleCBhYzU5N2MxLi43OGVmYTg4IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9iYWNrZ3JvdW5kLXBvc2l0aW9uLWluaGVy
aXQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9iYWNrZ3JvdW5kLXBvc2l0aW9uLWlu
aGVyaXQuaHRtbApAQCAtMTAsNyArMTAsNyBAQAogICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpCiAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKIAot
ICAgIHZhciB0YXJnZXRCYWNrZ3JvdW5kUG9zaXRpb24gPSBnZXRDb21wdXRlZFN0eWxlKGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuYmFja2dyb3VuZFBvc2l0aW9uLGNzc1RleHQ7
CisgICAgdmFyIHRhcmdldEJhY2tncm91bmRQb3NpdGlvbiA9IGdldENvbXB1dGVkU3R5bGUoZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpLCBudWxsKS5iYWNrZ3JvdW5kUG9zaXRpb24s
Y3NzVGV4dDsKIAogICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQiKS5pbm5lclRl
eHQgPSB0YXJnZXRCYWNrZ3JvdW5kUG9zaXRpb24gPT0gIjI1JSA3NSUiID8gIlBBU1MiIDogIkZB
SUw6IFRoZSBpbmhlcml0ZWQgdmFsdWUgd2FzICIgKyB0YXJnZXRCYWNrZ3JvdW5kUG9zaXRpb247
CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2NoaWxkLXNlbGVj
dG9yLWltcGxpY2l0LXRib2R5Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jaGlsZC1zZWxl
Y3Rvci1pbXBsaWNpdC10Ym9keS5odG1sCmluZGV4IDJjZmU1ZjQuLjFlMjU4NDkgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2NoaWxkLXNlbGVjdG9yLWltcGxpY2l0LXRib2R5Lmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY2hpbGQtc2VsZWN0b3ItaW1wbGljaXQtdGJv
ZHkuaHRtbApAQCAtNiw4ICs2LDggQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikKICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFz
VGV4dCgpOwogICAgIHJlc3VsdCA9ICJURVNUIEZBSUxFRCI7Ci0gICAgaWYgKGdldENvbXB1dGVk
U3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNlbGwxIikpLmZvbnRXZWlnaHQgPT0gIm5v
cm1hbCIpCi0gICAgICAgIGlmIChnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJjZWxsMiIpKS5mb250V2VpZ2h0ID09ICJib2xkIikKKyAgICBpZiAoZ2V0Q29tcHV0ZWRT
dHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2VsbDEiKSwgbnVsbCkuZm9udFdlaWdodCA9
PSAibm9ybWFsIikKKyAgICAgICAgaWYgKGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoImNlbGwyIiksIG51bGwpLmZvbnRXZWlnaHQgPT0gImJvbGQiKQogICAgICAgICAg
ICAgcmVzdWx0ID0gIlRFU1QgUEFTU0VEOiBDaGlsZCBydWxlIGRpZCBub3QgYWZmZWN0IHRoZSB0
YWJsZS4iOwogICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQiKS5maXJzdENoaWxk
LmRhdGEgPSByZXN1bHQ7CiB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9keW5h
bWljLXBzZXVkby1jbGFzcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9keW5h
bWljLXBzZXVkby1jbGFzcy1leHBlY3RlZC50eHQKaW5kZXggYWMwNTJlMy4uMmQzMGQzZCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZHluYW1pYy1wc2V1ZG8tY2xhc3MtZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2R5bmFtaWMtcHNldWRvLWNsYXNzLWV4
cGVjdGVkLnR4dApAQCAtMyw3ICszLDcgQEAgVGhpcyB0ZXN0cyBlbGVtZW50cyBhZmZlY3RlZCBi
eSBDU1MgcHNldWRvIGNsYXNzIHNlbGVjdG9ycyBhcmUgdXBkYXRlZCBhZnRlciBhIGQKIE9uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCi1QQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoIm9yaWciKSlbImNvbG9yIl0gaXMgInJnYigyNTUsIDAsIDApIgotUEFT
UyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvcmlnIikpWyJjb2xv
ciJdIGlzICJyZ2IoMCwgMCwgMCkiCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoIm9yaWciKSwgbnVsbClbImNvbG9yIl0gaXMgInJnYigyNTUsIDAsIDApIgor
UEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvcmlnIiksIG51
bGwpWyJjb2xvciJdIGlzICJyZ2IoMCwgMCwgMCkiCiBHZW5lcmF0ZWQgY29udGVudC4KIE9yaWdp
bmFsLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZHluYW1pYy1wc2V1ZG8tY2xh
c3MuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2R5bmFtaWMtcHNldWRvLWNsYXNzLmh0bWwK
aW5kZXggYjgwYWQ2NC4uYmEwYzRhNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jc3Mv
ZHluYW1pYy1wc2V1ZG8tY2xhc3MuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9keW5h
bWljLXBzZXVkby1jbGFzcy5odG1sCkBAIC0yMCw5ICsyMCw5IEBAIGZ1bmN0aW9uIG1ha2VEeW5h
bWljQ2hhbmdlcygpIHsKICAgICB1bC5pbnNlcnRCZWZvcmUoeCwgdWwuZmlyc3RDaGlsZCk7CiB9
CiAKLXNob3VsZEJlKCdnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJv
cmlnIikpWyJjb2xvciJdJywgJyJyZ2IoMjU1LCAwLCAwKSInKTsKK3Nob3VsZEJlKCdnZXRDb21w
dXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvcmlnIiksIG51bGwpWyJjb2xvciJd
JywgJyJyZ2IoMjU1LCAwLCAwKSInKTsKIG1ha2VEeW5hbWljQ2hhbmdlcygpOwotc2hvdWxkQmUo
J2dldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm9yaWciKSlbImNvbG9y
Il0nLCAnInJnYigwLCAwLCAwKSInKTsKK3Nob3VsZEJlKCdnZXRDb21wdXRlZFN0eWxlKGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJvcmlnIiksIG51bGwpWyJjb2xvciJdJywgJyJyZ2IoMCwgMCwg
MCkiJyk7CiB2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKIDwvc2NyaXB0PgogPC9ib2R5
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZm9udC1mYW1pbHktYnVpbHRpbnMu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2ZvbnQtZmFtaWx5LWJ1aWx0aW5zLmh0bWwKaW5k
ZXggODQ0NTI3NC4uM2FiODg2YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZm9u
dC1mYW1pbHktYnVpbHRpbnMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9mb250LWZh
bWlseS1idWlsdGlucy5odG1sCkBAIC0yNiw3ICsyNiw3IEBACiAgICAgICAgICAgICBkaXYuc2V0
QXR0cmlidXRlKCJzdHlsZSIsICJmb250LWZhbWlseTogIiArIGZhbWlseSk7CiAgICAgICAgICAg
ICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRpdik7CiAKLSAgICAgICAgICAgIHZhciByZXR1
cm5lZEZhbWlseSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRpdikuZm9udEZhbWlseQorICAg
ICAgICAgICAgdmFyIHJldHVybmVkRmFtaWx5ID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZGl2
LCBudWxsKS5mb250RmFtaWx5CiAgICAgICAgICAgICBpZiAoZmFtaWx5ID09IHJldHVybmVkRmFt
aWx5KQogICAgICAgICAgICAgICAgIGxvZygiUEFTUzogVGhlIGNvbXB1dGVkIHN0eWxlIGZvciBh
IHNwZWNpZmllZCBmb250LWZhbWlseSBvZiAnIiArIGZhbWlseSArICInIG1hdGNoZWQuIik7CiAg
ICAgICAgICAgICBlbHNlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9nZXRDb21w
dXRlZFN0eWxlL2NvbXB1dGVkLXN0eWxlLXBhZ2UtYnJlYWstaW5zaWRlLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2Zhc3QvY3NzL2dldENvbXB1dGVkU3R5bGUvY29tcHV0ZWQtc3R5bGUtcGFn
ZS1icmVhay1pbnNpZGUtZXhwZWN0ZWQudHh0CmluZGV4IGY0NmRkNGEuLjNiN2VkZmUgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2dldENvbXB1dGVkU3R5bGUvY29tcHV0ZWQtc3R5
bGUtcGFnZS1icmVhay1pbnNpZGUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
Y3NzL2dldENvbXB1dGVkU3R5bGUvY29tcHV0ZWQtc3R5bGUtcGFnZS1icmVhay1pbnNpZGUtZXhw
ZWN0ZWQudHh0CkBAIC0zLDggKzMsOCBAQCBUZXN0IHRoYXQgcGFnZS1icmVhay1pbnNpZGUgcHJv
cGVydHkgaXMgbm90IGluaGVyaXRlZAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCiAKLVBB
U1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUocGFyZW50KS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKCdw
YWdlLWJyZWFrLWluc2lkZScpLmdldFN0cmluZ1ZhbHVlKCkgaXMgImF2b2lkIgotUEFTUyB3aW5k
b3cuZ2V0Q29tcHV0ZWRTdHlsZShjaGlsZCkuZ2V0UHJvcGVydHlDU1NWYWx1ZSgncGFnZS1icmVh
ay1pbnNpZGUnKS5nZXRTdHJpbmdWYWx1ZSgpIGlzICJhdXRvIgorUEFTUyB3aW5kb3cuZ2V0Q29t
cHV0ZWRTdHlsZShwYXJlbnQsIG51bGwpLmdldFByb3BlcnR5Q1NTVmFsdWUoJ3BhZ2UtYnJlYWst
aW5zaWRlJykuZ2V0U3RyaW5nVmFsdWUoKSBpcyAiYXZvaWQiCitQQVNTIHdpbmRvdy5nZXRDb21w
dXRlZFN0eWxlKGNoaWxkLCBudWxsKS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKCdwYWdlLWJyZWFrLWlu
c2lkZScpLmdldFN0cmluZ1ZhbHVlKCkgaXMgImF1dG8iCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
Y3NzL2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10cmFuc2Zvcm0uaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvY3NzL2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10cmFu
c2Zvcm0uaHRtbAppbmRleCA0NWU2ODY3Li4xOGI4MjcxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L2Nzcy9nZXRDb21wdXRlZFN0eWxlL2dldENvbXB1dGVkU3R5bGUtdHJhbnNmb3JtLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9nZXRDb21wdXRl
ZFN0eWxlLXRyYW5zZm9ybS5odG1sCkBAIC00NCwxMSArNDQsMTEgQEAKICAgICAgICAgLy8gc2V0
IG9uZSBvZiBvdXIgdGVzdCB0cmFuc2Zvcm1zCiAgICAgICAgIHRlc3RCb3guc3R5bGUud2Via2l0
VHJhbnNmb3JtID0gY3VyVGVzdC50cmFuc2Zvcm07CiAgICAgICAgIC8vIHJlYWQgYmFjayBjb21w
dXRlZCBzdHlsZQotICAgICAgICB2YXIgb2xkVHJhbnNmb3JtID0gd2luZG93LmdldENvbXB1dGVk
U3R5bGUodGVzdEJveCkud2Via2l0VHJhbnNmb3JtOworICAgICAgICB2YXIgb2xkVHJhbnNmb3Jt
ID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUodGVzdEJveCwgbnVsbCkud2Via2l0VHJhbnNmb3Jt
OwogICAgICAgICAvLyBzZXQgdGhhdCBtYXRyaXgoKSBiYWNrIG9uIHRoZSBlbGVtZW50CiAgICAg
ICAgIHRlc3RCb3guc3R5bGUud2Via2l0VHJhbnNmb3JtID0gb2xkVHJhbnNmb3JtOwogICAgICAg
ICAvLyByZWFkIGJhY2sgY29tcHV0ZWQgc3R5bGUKLSAgICAgICAgdmFyIGNvbXB1dGVkVHJhbnNm
b3JtID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUodGVzdEJveCkud2Via2l0VHJhbnNmb3JtOwor
ICAgICAgICB2YXIgY29tcHV0ZWRUcmFuc2Zvcm0gPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0
ZXN0Qm94LCBudWxsKS53ZWJraXRUcmFuc2Zvcm07CiAgICAgICAgIAogICAgICAgICB2YXIgc3Vj
Y2VzcyA9IChvbGRUcmFuc2Zvcm0gPT0gY29tcHV0ZWRUcmFuc2Zvcm0pOwogICAgICAgICB2YXIg
cmVzdWx0OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHls
ZS9wZW5kaW5nLXN0eWxlc2hlZXQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2dldENvbXB1
dGVkU3R5bGUvcGVuZGluZy1zdHlsZXNoZWV0Lmh0bWwKaW5kZXggZjA3MWY2NS4uMDY5ODAwYSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9wZW5kaW5n
LXN0eWxlc2hlZXQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9nZXRDb21wdXRlZFN0
eWxlL3BlbmRpbmctc3R5bGVzaGVldC5odG1sCkBAIC05LDYgKzksNiBAQAogICAgIGlmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1
bXBBc1RleHQoKTsKIAotICAgIHZhciBjb21wdXRlZFdpZHRoID0gZ2V0Q29tcHV0ZWRTdHlsZShk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0IikpLndpZHRoOworICAgIHZhciBjb21wdXRl
ZFdpZHRoID0gZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0
IiksIG51bGwpLndpZHRoOwogICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQiKS5p
bm5lclRleHQgPSBjb21wdXRlZFdpZHRoID09PSAiMTAwcHgiID8gIlBBU1MiIDogIkZBSUwiCiA8
L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2dldENvbXB1dGVkU3R5
bGUvc2NyaXB0LXRlc3RzL2NvbXB1dGVkLXN0eWxlLXBhZ2UtYnJlYWstaW5zaWRlLmpzIGIvTGF5
b3V0VGVzdHMvZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9zY3JpcHQtdGVzdHMvY29tcHV0ZWQt
c3R5bGUtcGFnZS1icmVhay1pbnNpZGUuanMKaW5kZXggNDUyZmY0Ni4uMjY0OWI2YSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9zY3JpcHQtdGVzdHMv
Y29tcHV0ZWQtc3R5bGUtcGFnZS1icmVhay1pbnNpZGUuanMKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9zY3JpcHQtdGVzdHMvY29tcHV0ZWQtc3R5bGUtcGFnZS1i
cmVhay1pbnNpZGUuanMKQEAgLTcsOCArNyw4IEBAIHZhciBjaGlsZCA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoImRpdiIpOwogcGFyZW50LmFwcGVuZENoaWxkKGNoaWxkKTsKIGRvY3VtZW50LmJv
ZHkuYXBwZW5kQ2hpbGQocGFyZW50KTsKIAotc2hvdWxkQmUoIndpbmRvdy5nZXRDb21wdXRlZFN0
eWxlKHBhcmVudCkuZ2V0UHJvcGVydHlDU1NWYWx1ZSgncGFnZS1icmVhay1pbnNpZGUnKS5nZXRT
dHJpbmdWYWx1ZSgpIiwgJyJhdm9pZCInKTsKLXNob3VsZEJlKCJ3aW5kb3cuZ2V0Q29tcHV0ZWRT
dHlsZShjaGlsZCkuZ2V0UHJvcGVydHlDU1NWYWx1ZSgncGFnZS1icmVhay1pbnNpZGUnKS5nZXRT
dHJpbmdWYWx1ZSgpIiwgJyJhdXRvIicpOworc2hvdWxkQmUoIndpbmRvdy5nZXRDb21wdXRlZFN0
eWxlKHBhcmVudCwgbnVsbCkuZ2V0UHJvcGVydHlDU1NWYWx1ZSgncGFnZS1icmVhay1pbnNpZGUn
KS5nZXRTdHJpbmdWYWx1ZSgpIiwgJyJhdm9pZCInKTsKK3Nob3VsZEJlKCJ3aW5kb3cuZ2V0Q29t
cHV0ZWRTdHlsZShjaGlsZCwgbnVsbCkuZ2V0UHJvcGVydHlDU1NWYWx1ZSgncGFnZS1icmVhay1p
bnNpZGUnKS5nZXRTdHJpbmdWYWx1ZSgpIiwgJyJhdXRvIicpOwogCiBkb2N1bWVudC5ib2R5LnJl
bW92ZUNoaWxkKHBhcmVudCk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2hv
dmVyLWFmZmVjdHMtY2hpbGQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2hvdmVyLWFmZmVj
dHMtY2hpbGQuaHRtbAppbmRleCBjZWVhOGE2Li5iMDY1ZWFiIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L2Nzcy9ob3Zlci1hZmZlY3RzLWNoaWxkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9jc3MvaG92ZXItYWZmZWN0cy1jaGlsZC5odG1sCkBAIC0zMCw3ICszMCw3IEBACiAgICAg
ICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgICB0ZXN0ZWRIb3ZlclN0YXRl
ID0gdHJ1ZTsKICAgICAgICAgICAgICAgICB2YXIgaW5uZXJFbGVtID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ2lubmVyRWxlbScpOwotICAgICAgICAgICAgICAgIHZhciBjYWxjdWxhdGVkU3R5
bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShpbm5lckVsZW0pOworICAgICAgICAgICAgICAg
IHZhciBjYWxjdWxhdGVkU3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShpbm5lckVsZW0s
IG51bGwpOwogICAgIAogICAgICAgICAgICAgICAgIGlmIChjYWxjdWxhdGVkU3R5bGUuZ2V0UHJv
cGVydHlWYWx1ZSgnbGVmdCcpID09ICJhdXRvIikKICAgICAgICAgICAgICAgICAgICAgbG9nKCJQ
QVNTRUQ6IENhbGN1bGF0ZWQgc3R5bGUgb2YgaW5uZXIgZWxlbWVudCBpcyBjb3JyZWN0Iik7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9tYXgtaGVpZ2h0LWFuZC1tYXgtd2lkdGgu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL21heC1oZWlnaHQtYW5kLW1heC13aWR0aC5odG1s
CmluZGV4IDg5MWJlZWEuLjg2YjRjOGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY3Nz
L21heC1oZWlnaHQtYW5kLW1heC13aWR0aC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3Nz
L21heC1oZWlnaHQtYW5kLW1heC13aWR0aC5odG1sCkBAIC0xOCw3ICsxOCw3IEBAIGZ1bmN0aW9u
IGRvVGVzdCgpCiAKICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYm9keSIpLmFwcGVuZENo
aWxkKGJveCk7ICAgIAogCi0gICAgdmFyIHN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUo
Ym94KTsKKyAgICB2YXIgc3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShib3gsIG51bGwp
OwogICAgIGlmKHN0eWxlLmdldFByb3BlcnR5VmFsdWUoIm1heC1oZWlnaHQiKSA9PSBzdHlsZS5n
ZXRQcm9wZXJ0eVZhbHVlKCJtYXgtd2lkdGgiKSkKICAgICAgICAgdGVzdEZhaWxlZCgibWF4LXdp
ZHRoIGlzIE5PVCBpbmRlcGVuZGVudCBvZiBtYXgtaGVpZ2h0LiIpOwogICAgIGVsc2UKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL250aC1jaGlsZC1keW5hbWljLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2Nzcy9udGgtY2hpbGQtZHluYW1pYy5odG1sCmluZGV4IDE1YjA5OGMuLjQw
ZWRlYzUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL250aC1jaGlsZC1keW5hbWlj
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvbnRoLWNoaWxkLWR5bmFtaWMuaHRtbApA
QCAtNjcsNyArNjcsNyBAQAogICAgICAgICBuICs9IDE7CiAgICAgICB9CiAgICAgICBpZiAodGVz
dENvbG9ycykgewotICAgICAgICB2YXIgY29tcHV0ZWRDb2xvciA9IHdpbmRvdy5nZXRDb21wdXRl
ZFN0eWxlKHRlc3RFbHNbaV0pLmNvbG9yOworICAgICAgICB2YXIgY29tcHV0ZWRDb2xvciA9IHdp
bmRvdy5nZXRDb21wdXRlZFN0eWxlKHRlc3RFbHNbaV0sIG51bGwpLmNvbG9yOwogICAgICAgICB2
YXIgbWVzc2FnZTsKICAgICAgICAgaWYgKGNvbXB1dGVkQ29sb3IgIT0gZXhwZWN0ZWRDb2xvcikK
ICAgICAgICAgICBtZXNzYWdlID0gJ0ZBSUw6IGZvdW5kIGNvbG9yICcgKyBjb21wdXRlZENvbG9y
ICsgJywgZXhwZWN0ZWQgJyArIGV4cGVjdGVkQ29sb3I7CkBAIC04OSw3ICs4OSw3IEBACiAgICAg
ICAgIHZhciBleHBlY3RlZENvbG9yID0gJ3JnYigxNTMsIDE1MywgMjU1KSc7CiAKICAgICAgICAg
aWYgKHRlc3RDb2xvcnMpIHsKLSAgICAgICAgICB2YXIgY29tcHV0ZWRDb2xvciA9IHdpbmRvdy5n
ZXRDb21wdXRlZFN0eWxlKGJsdWVzW2ldKS5iYWNrZ3JvdW5kQ29sb3I7CisgICAgICAgICAgdmFy
IGNvbXB1dGVkQ29sb3IgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShibHVlc1tpXSwgbnVsbCku
YmFja2dyb3VuZENvbG9yOwogICAgICAgICAgIHZhciBtZXNzYWdlOwogICAgICAgICAgIGlmIChj
b21wdXRlZENvbG9yICE9IGV4cGVjdGVkQ29sb3IpCiAgICAgICAgICAgICBtZXNzYWdlID0gJ0ZB
SUw6IGZvdW5kIGNvbG9yICcgKyBjb21wdXRlZENvbG9yICsgJywgZXhwZWN0ZWQgJyArIGV4cGVj
dGVkQ29sb3I7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9yZXNpemUtc2luZ2xl
LWF4aXMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL3Jlc2l6ZS1zaW5nbGUtYXhpcy5odG1s
CmluZGV4IGMyYWVkMmMuLmRiY2E2ZTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY3Nz
L3Jlc2l6ZS1zaW5nbGUtYXhpcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL3Jlc2l6
ZS1zaW5nbGUtYXhpcy5odG1sCkBAIC00NCw3ICs0NCw3IEBACiAKICAgICBmdW5jdGlvbiBhc3Nl
cnRTaXplKHRhcmdldCwgd2lkdGgsIGhlaWdodCkKICAgICB7Ci0gICAgICAgIHZhciBjb21wdXRl
ZFN0eWxlID0gZ2V0Q29tcHV0ZWRTdHlsZSh0YXJnZXQpOworICAgICAgICB2YXIgY29tcHV0ZWRT
dHlsZSA9IGdldENvbXB1dGVkU3R5bGUodGFyZ2V0LCBudWxsKTsKICAgICAgICAgdmFyIGFjdHVh
bFdpZHRoID0gY29tcHV0ZWRTdHlsZS53aWR0aDsKICAgICAgICAgdmFyIGFjdHVhbEhlaWdodCA9
IGNvbXB1dGVkU3R5bGUuaGVpZ2h0OwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nz
cy9yZXNpemUtdmFsdWUtY29tcGFyZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL3Jlc2l6
ZS12YWx1ZS1jb21wYXJlZC5odG1sCmluZGV4IDhjNmNhOGYuLmNhODJjOTcgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2Zhc3QvY3NzL3Jlc2l6ZS12YWx1ZS1jb21wYXJlZC5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvY3NzL3Jlc2l6ZS12YWx1ZS1jb21wYXJlZC5odG1sCkBAIC0xOCw2ICsx
OCw2IEBACiAKICAgICB0YXJnZXQuc3R5bGUucmVzaXplID0gImJvdGgiOwogICAgIHZhciB0YXJn
ZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0Iik7Ci0gICAgdmFyIGNvbXB1dGVk
U3R5bGUgPSBnZXRDb21wdXRlZFN0eWxlKHRhcmdldCk7CisgICAgdmFyIGNvbXB1dGVkU3R5bGUg
PSBnZXRDb21wdXRlZFN0eWxlKHRhcmdldCwgbnVsbCk7CiAgICAgbG9nKGNvbXB1dGVkU3R5bGUu
cmVzaXplID09PSAiYm90aCIgPyAiUEFTUyIgOiAiRkFJTCIpOwogPC9zY3JpcHQ+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy96b29tLWluLWxlbmd0aC1yb3VuZC10cmlwLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy96b29tLWluLWxlbmd0aC1yb3VuZC10cmlwLmh0bWwKaW5k
ZXggMDI2NzlkOC4uNWM5NTIyZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jc3Mvem9v
bS1pbi1sZW5ndGgtcm91bmQtdHJpcC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL3pv
b20taW4tbGVuZ3RoLXJvdW5kLXRyaXAuaHRtbApAQCAtMjQsNyArMjQsNyBAQAogICAgIHZhciBm
YWlsZWQgPSBmYWxzZTsKICAgICAKICAgICBmb3IgKHpvb20gPSAxMDA7IHpvb20gPD0gMjAwOyB6
b29tICs9IDEpIHsKLSAgICAgICAgY29udGFpbmVyU3R5bGUuc2V0UHJvcGVydHkoInpvb20iLCB6
b29tIC8gMTAwKTsKKyAgICAgICAgY29udGFpbmVyU3R5bGUuc2V0UHJvcGVydHkoInpvb20iLCB6
b29tIC8gMTAwLCBudWxsKTsKICAgICAgICAgdmFyIHdpZHRoID0gdGFyZ2V0Lm9mZnNldFdpZHRo
OwogICAgICAgICB2YXIgaGVpZ2h0ID0gdGFyZ2V0Lm9mZnNldEhlaWdodDsKICAgICAgICAgaWYg
KHdpZHRoICE9PSAxIHx8IGhlaWdodCAhPT0gMTApIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL0RPTUltcGxlbWVudGF0aW9uL2NyZWF0ZURvY3VtZW50LW5hbWVzcGFjZS1lcnIt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vRE9NSW1wbGVtZW50YXRpb24vY3Jl
YXRlRG9jdW1lbnQtbmFtZXNwYWNlLWVyci1leHBlY3RlZC50eHQKaW5kZXggMDlkNGJkYy4uZDJh
ODhjYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vRE9NSW1wbGVtZW50YXRpb24v
Y3JlYXRlRG9jdW1lbnQtbmFtZXNwYWNlLWVyci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9kb20vRE9NSW1wbGVtZW50YXRpb24vY3JlYXRlRG9jdW1lbnQtbmFtZXNwYWNlLWVy
ci1leHBlY3RlZC50eHQKQEAgLTMsOCArMyw4IEBAIGNyZWF0ZURvY3VtZW50IHRlc3RzIG1vZGVs
ZWQgYWZ0ZXIgY3JlYXRlRWxlbWVudE5TIHRlc3RzIGZyb20gbW96aWxsYSB3aGljaCB3ZXJlCiBP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAotUEFTUyBkb2N1bWVudC5pbXBsZW1lbnRhdGlv
bi5jcmVhdGVEb2N1bWVudCgpLnRvU3RyaW5nKCkgaXMgIltvYmplY3QgRG9jdW1lbnRdIgotUEFT
UyBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVEb2N1bWVudCgiaHR0cDovL3d3dy5leGFt
cGxlLmNvbSIpLnRvU3RyaW5nKCkgaXMgIltvYmplY3QgRG9jdW1lbnRdIgorUEFTUyBkb2N1bWVu
dC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVEb2N1bWVudCgpLnRvU3RyaW5nKCkgdGhyZXcgZXhjZXB0
aW9uIFR5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMuCitQQVNTIGRvY3VtZW50LmltcGxl
bWVudGF0aW9uLmNyZWF0ZURvY3VtZW50KCJodHRwOi8vd3d3LmV4YW1wbGUuY29tIikudG9TdHJp
bmcoKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KIFBB
U1MgY3JlYXRlRG9jdW1lbnQoLCAsIG51bGwpCiBQQVNTIGNyZWF0ZURvY3VtZW50KG51bGwsICwg
bnVsbCkKIEZBSUwgY3JlYXRlRG9jdW1lbnQoLCBudWxsLCBudWxsKQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9kb20vRE9NSW1wbGVtZW50YXRpb24vY3JlYXRlRG9jdW1lbnRUeXBlLWVy
ci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9ET01JbXBsZW1lbnRhdGlvbi9j
cmVhdGVEb2N1bWVudFR5cGUtZXJyLWV4cGVjdGVkLnR4dAppbmRleCBhMzk4ODcwLi4xMmY5ODQ3
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9ET01JbXBsZW1lbnRhdGlvbi9jcmVh
dGVEb2N1bWVudFR5cGUtZXJyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9ET01JbXBsZW1lbnRhdGlvbi9jcmVhdGVEb2N1bWVudFR5cGUtZXJyLWV4cGVjdGVkLnR4dApA
QCAtMywxNyArMywxNyBAQCBjcmVhdGVEb2N1bWVudCB0ZXN0cyBtb2RlbGVkIGFmdGVyIG1vemls
bGEncyB0ZXN0aW5nCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAotUEFTUyBkb2N1bWVu
dC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVEb2N1bWVudFR5cGUoJ2ZvbycpLnRvU3RyaW5nKCkgaXMg
IltvYmplY3QgRG9jdW1lbnRUeXBlXSIKLVBBU1MgZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3Jl
YXRlRG9jdW1lbnRUeXBlKCdmb28nLCBudWxsKS50b1N0cmluZygpIGlzICJbb2JqZWN0IERvY3Vt
ZW50VHlwZV0iCi1QQVNTIGNyZWF0ZURvY3VtZW50VHlwZSgsICk7IHRocmV3IElOVkFMSURfQ0hB
UkFDVEVSX0VSUgotUEFTUyBjcmVhdGVEb2N1bWVudFR5cGUobnVsbCwgKTsgdGhyZXcgSU5WQUxJ
RF9DSEFSQUNURVJfRVJSCi1QQVNTIGNyZWF0ZURvY3VtZW50VHlwZSgsIG51bGwpOyB0aHJldyBJ
TlZBTElEX0NIQVJBQ1RFUl9FUlIKK1BBU1MgZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRl
RG9jdW1lbnRUeXBlKCdmb28nKS50b1N0cmluZygpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6
IE5vdCBlbm91Z2ggYXJndW1lbnRzLgorUEFTUyBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVh
dGVEb2N1bWVudFR5cGUoJ2ZvbycsIG51bGwpLnRvU3RyaW5nKCkgdGhyZXcgZXhjZXB0aW9uIFR5
cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMuCitGQUlMIGNyZWF0ZURvY3VtZW50VHlwZSgs
ICk7IGV4cGVjdGVkIElOVkFMSURfQ0hBUkFDVEVSX0VSUiwgdGhyZXcgdW5kZWZpbmVkCitGQUlM
IGNyZWF0ZURvY3VtZW50VHlwZShudWxsLCApOyBleHBlY3RlZCBJTlZBTElEX0NIQVJBQ1RFUl9F
UlIsIHRocmV3IHVuZGVmaW5lZAorRkFJTCBjcmVhdGVEb2N1bWVudFR5cGUoLCBudWxsKTsgZXhw
ZWN0ZWQgSU5WQUxJRF9DSEFSQUNURVJfRVJSLCB0aHJldyB1bmRlZmluZWQKIFBBU1MgY3JlYXRl
RG9jdW1lbnRUeXBlKCwgLCBudWxsKTsgdGhyZXcgSU5WQUxJRF9DSEFSQUNURVJfRVJSCi1QQVNT
IGNyZWF0ZURvY3VtZW50VHlwZShudWxsLCBudWxsKTsgdGhyZXcgSU5WQUxJRF9DSEFSQUNURVJf
RVJSCitGQUlMIGNyZWF0ZURvY3VtZW50VHlwZShudWxsLCBudWxsKTsgZXhwZWN0ZWQgSU5WQUxJ
RF9DSEFSQUNURVJfRVJSLCB0aHJldyB1bmRlZmluZWQKIFBBU1MgY3JlYXRlRG9jdW1lbnRUeXBl
KG51bGwsIG51bGwsIG51bGwpOyB0aHJldyBJTlZBTElEX0NIQVJBQ1RFUl9FUlIKLVBBU1MgY3Jl
YXRlRG9jdW1lbnRUeXBlKG51bGwsICIiKTsgdGhyZXcgSU5WQUxJRF9DSEFSQUNURVJfRVJSCi1Q
QVNTIGNyZWF0ZURvY3VtZW50VHlwZSgiIiwgbnVsbCk7IHRocmV3IElOVkFMSURfQ0hBUkFDVEVS
X0VSUgotUEFTUyBjcmVhdGVEb2N1bWVudFR5cGUoIiIsICIiKTsgdGhyZXcgSU5WQUxJRF9DSEFS
QUNURVJfRVJSCitGQUlMIGNyZWF0ZURvY3VtZW50VHlwZShudWxsLCAiIik7IGV4cGVjdGVkIElO
VkFMSURfQ0hBUkFDVEVSX0VSUiwgdGhyZXcgdW5kZWZpbmVkCitGQUlMIGNyZWF0ZURvY3VtZW50
VHlwZSgiIiwgbnVsbCk7IGV4cGVjdGVkIElOVkFMSURfQ0hBUkFDVEVSX0VSUiwgdGhyZXcgdW5k
ZWZpbmVkCitGQUlMIGNyZWF0ZURvY3VtZW50VHlwZSgiIiwgIiIpOyBleHBlY3RlZCBJTlZBTElE
X0NIQVJBQ1RFUl9FUlIsIHRocmV3IHVuZGVmaW5lZAogUEFTUyBjcmVhdGVEb2N1bWVudFR5cGUo
ImE6IiwgbnVsbCwgbnVsbCk7IHRocmV3IE5BTUVTUEFDRV9FUlIKIFBBU1MgY3JlYXRlRG9jdW1l
bnRUeXBlKCI6Zm9vIiwgbnVsbCwgbnVsbCk7IHRocmV3IE5BTUVTUEFDRV9FUlIKIFBBU1MgY3Jl
YXRlRG9jdW1lbnRUeXBlKCI6IiwgbnVsbCwgbnVsbCk7IHRocmV3IE5BTUVTUEFDRV9FUlIKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0RPTUltcGxlbWVudGF0aW9uL3NjcmlwdC10
ZXN0cy9jcmVhdGVEb2N1bWVudC1uYW1lc3BhY2UtZXJyLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9k
b20vRE9NSW1wbGVtZW50YXRpb24vc2NyaXB0LXRlc3RzL2NyZWF0ZURvY3VtZW50LW5hbWVzcGFj
ZS1lcnIuanMKaW5kZXggNjY4M2Y4Yi4uZDQyYzhhNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vRE9NSW1wbGVtZW50YXRpb24vc2NyaXB0LXRlc3RzL2NyZWF0ZURvY3VtZW50LW5h
bWVzcGFjZS1lcnIuanMKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vRE9NSW1wbGVtZW50YXRp
b24vc2NyaXB0LXRlc3RzL2NyZWF0ZURvY3VtZW50LW5hbWVzcGFjZS1lcnIuanMKQEAgLTEzNyw5
ICsxMzcsOCBAQCBmdW5jdGlvbiBydW5OU1Rlc3RzKHRlc3RzLCBkb2MsIGNyZWF0ZUZ1bmN0aW9u
TmFtZSkKICAgICB9CiB9CiAKLS8vIE1veiB0aHJvd3MgYSAiTm90IGVub3VnaCBhcmd1bWVudHMi
IGV4Y2VwdGlvbiBpbiB0aGVzZSwgd2UgZG9uJ3Q6Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmcoImRv
Y3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZURvY3VtZW50KCkudG9TdHJpbmcoKSIsICJbb2Jq
ZWN0IERvY3VtZW50XSIpOwotc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJkb2N1bWVudC5pbXBsZW1l
bnRhdGlvbi5jcmVhdGVEb2N1bWVudChcImh0dHA6Ly93d3cuZXhhbXBsZS5jb21cIikudG9TdHJp
bmcoKSIsICJbb2JqZWN0IERvY3VtZW50XSIpOworc2hvdWxkVGhyb3coImRvY3VtZW50LmltcGxl
bWVudGF0aW9uLmNyZWF0ZURvY3VtZW50KCkudG9TdHJpbmcoKSIpOworc2hvdWxkVGhyb3coImRv
Y3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZURvY3VtZW50KFwiaHR0cDovL3d3dy5leGFtcGxl
LmNvbVwiKS50b1N0cmluZygpIik7CiAKIHJ1bk5TVGVzdHMoYWxsTlNUZXN0cywgZG9jdW1lbnQu
aW1wbGVtZW50YXRpb24sICJjcmVhdGVEb2N1bWVudCIpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9ET01JbXBsZW1lbnRhdGlvbi9zY3JpcHQtdGVzdHMvY3JlYXRlRG9jdW1l
bnRUeXBlLWVyci5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0RPTUltcGxlbWVudGF0aW9uL3Nj
cmlwdC10ZXN0cy9jcmVhdGVEb2N1bWVudFR5cGUtZXJyLmpzCmluZGV4IDllZjdlN2MuLjFmYzdk
MTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0RPTUltcGxlbWVudGF0aW9uL3Nj
cmlwdC10ZXN0cy9jcmVhdGVEb2N1bWVudFR5cGUtZXJyLmpzCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZG9tL0RPTUltcGxlbWVudGF0aW9uL3NjcmlwdC10ZXN0cy9jcmVhdGVEb2N1bWVudFR5cGUt
ZXJyLmpzCkBAIC05Miw5ICs5Miw4IEBAIGZ1bmN0aW9uIHJ1blRlc3RzKHRlc3RzLCBjcmVhdGVG
dW5jdGlvbk5hbWUpCiAgICAgfQogfQogCi0vLyBNb3ogdGhyb3dzIGEgIk5vdCBlbm91Z2ggYXJn
dW1lbnRzIiBleGNlcHRpb24gaW4gdGhlc2UsIHdlIGRvbid0Ogotc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCJkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVEb2N1bWVudFR5cGUoJ2ZvbycpLnRv
U3RyaW5nKCkiLCAiW29iamVjdCBEb2N1bWVudFR5cGVdIik7Ci1zaG91bGRCZUVxdWFsVG9TdHJp
bmcoImRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZURvY3VtZW50VHlwZSgnZm9vJywgbnVs
bCkudG9TdHJpbmcoKSIsICJbb2JqZWN0IERvY3VtZW50VHlwZV0iKTsKK3Nob3VsZFRocm93KCJk
b2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVEb2N1bWVudFR5cGUoJ2ZvbycpLnRvU3RyaW5n
KCkiKTsKK3Nob3VsZFRocm93KCJkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVEb2N1bWVu
dFR5cGUoJ2ZvbycsIG51bGwpLnRvU3RyaW5nKCkiKTsKIHJ1blRlc3RzKGFsbFRlc3RzLCAiY3Jl
YXRlRG9jdW1lbnRUeXBlIik7CiAKIHZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vRG9jdW1lbnQvY3JlYXRlQXR0cmlidXRlTlMt
bmFtZXNwYWNlLWVyci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Eb2N1bWVu
dC9jcmVhdGVBdHRyaWJ1dGVOUy1uYW1lc3BhY2UtZXJyLWV4cGVjdGVkLnR4dAppbmRleCBmMDJj
YTU1Li5hYjgwZTQ3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Eb2N1bWVudC9j
cmVhdGVBdHRyaWJ1dGVOUy1uYW1lc3BhY2UtZXJyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9Eb2N1bWVudC9jcmVhdGVBdHRyaWJ1dGVOUy1uYW1lc3BhY2UtZXJyLWV4
cGVjdGVkLnR4dApAQCAtMyw4ICszLDggQEAgY3JlYXRlQXR0aXJidXRlTlMgdGVzdHMgYWRhcHRl
ZCBmcm9tIGNyZWF0ZUVsZW1lbnROUyB0ZXN0cyBhdHRhY2hlZCB0byB3ZWJraXQgYnUKIE9uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCi1QQVNTIGRvY3VtZW50LmNyZWF0ZUF0dHJpYnV0ZU5T
KCkudG9TdHJpbmcoKSBpcyAiW29iamVjdCBBdHRyXSIKLVBBU1MgZG9jdW1lbnQuY3JlYXRlQXR0
cmlidXRlTlMoImh0dHA6Ly93d3cuZXhhbXBsZS5jb20iKS50b1N0cmluZygpIGlzICJbb2JqZWN0
IEF0dHJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVBdHRyaWJ1dGVOUygpLnRvU3RyaW5nKCkgdGhy
ZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMuCitQQVNTIGRvY3Vt
ZW50LmNyZWF0ZUF0dHJpYnV0ZU5TKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tIikudG9TdHJpbmco
KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KIFBBU1Mg
Y3JlYXRlQXR0cmlidXRlTlModW5kZWZpbmVkLCB1bmRlZmluZWQpCiBQQVNTIGNyZWF0ZUF0dHJp
YnV0ZU5TKG51bGwsIHVuZGVmaW5lZCkKIFBBU1MgY3JlYXRlQXR0cmlidXRlTlModW5kZWZpbmVk
LCBudWxsKTsgdGhyZXcgSU5WQUxJRF9DSEFSQUNURVJfRVJSCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9Eb2N1bWVudC9jcmVhdGVFbGVtZW50TlMtbmFtZXNwYWNlLWVyci1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Eb2N1bWVudC9jcmVhdGVFbGVtZW50TlMt
bmFtZXNwYWNlLWVyci1leHBlY3RlZC50eHQKaW5kZXggZjdlZGE4Yi4uYzFjYzg2ZSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vRG9jdW1lbnQvY3JlYXRlRWxlbWVudE5TLW5hbWVz
cGFjZS1lcnItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0RvY3VtZW50
L2NyZWF0ZUVsZW1lbnROUy1uYW1lc3BhY2UtZXJyLWV4cGVjdGVkLnR4dApAQCAtMyw4ICszLDgg
QEAgY3JlYXRlRWxlbWVudE5TIHRlc3RzIGZyb20gbW96aWxsYSwgYXR0YWNoZWQgdG8gd2Via2l0
IGJ1ZyAxNjgzMwogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCiAKLVBBU1MgZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudE5TKCkudG9TdHJpbmcoKSBpcyAiW29iamVjdCBFbGVtZW50XSIKLVBBU1Mg
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tIikudG9TdHJp
bmcoKSBpcyAiW29iamVjdCBFbGVtZW50XSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5T
KCkudG9TdHJpbmcoKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3Vt
ZW50cy4KK1BBU1MgZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LmV4YW1wbGUu
Y29tIikudG9TdHJpbmcoKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFy
Z3VtZW50cy4KIEhUTUwgdGVzdHM6CiBQQVNTIGNyZWF0ZUVsZW1lbnROUygsICkKIFBBU1MgY3Jl
YXRlRWxlbWVudE5TKG51bGwsICkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0Rv
Y3VtZW50L3NjcmlwdC10ZXN0cy9jcmVhdGVBdHRyaWJ1dGVOUy1uYW1lc3BhY2UtZXJyLmpzIGIv
TGF5b3V0VGVzdHMvZmFzdC9kb20vRG9jdW1lbnQvc2NyaXB0LXRlc3RzL2NyZWF0ZUF0dHJpYnV0
ZU5TLW5hbWVzcGFjZS1lcnIuanMKaW5kZXggODU0YTE3NS4uOWEwMzE4YyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9kb20vRG9jdW1lbnQvc2NyaXB0LXRlc3RzL2NyZWF0ZUF0dHJpYnV0
ZU5TLW5hbWVzcGFjZS1lcnIuanMKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vRG9jdW1lbnQv
c2NyaXB0LXRlc3RzL2NyZWF0ZUF0dHJpYnV0ZU5TLW5hbWVzcGFjZS1lcnIuanMKQEAgLTEyMiw5
ICsxMjIsOCBAQCBmdW5jdGlvbiBydW5OU1Rlc3RzKCkKICAgICB9CiB9CiAKLS8vIE1veiB0aHJv
d3MgYSAiTm90IGVub3VnaCBhcmd1bWVudHMiIGV4Y2VwdGlvbiBpbiB0aGVzZSwgd2UgZG9uJ3Q6
Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmcoImRvY3VtZW50LmNyZWF0ZUF0dHJpYnV0ZU5TKCkudG9T
dHJpbmcoKSIsICJbb2JqZWN0IEF0dHJdIik7Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmcoImRvY3Vt
ZW50LmNyZWF0ZUF0dHJpYnV0ZU5TKFwiaHR0cDovL3d3dy5leGFtcGxlLmNvbVwiKS50b1N0cmlu
ZygpIiwgIltvYmplY3QgQXR0cl0iKTsKK3Nob3VsZFRocm93KCJkb2N1bWVudC5jcmVhdGVBdHRy
aWJ1dGVOUygpLnRvU3RyaW5nKCkiKTsKK3Nob3VsZFRocm93KCJkb2N1bWVudC5jcmVhdGVBdHRy
aWJ1dGVOUyhcImh0dHA6Ly93d3cuZXhhbXBsZS5jb21cIikudG9TdHJpbmcoKSIpOwogCiBydW5O
U1Rlc3RzKCk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0RvY3VtZW50L3Nj
cmlwdC10ZXN0cy9jcmVhdGVFbGVtZW50TlMtbmFtZXNwYWNlLWVyci5qcyBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL0RvY3VtZW50L3NjcmlwdC10ZXN0cy9jcmVhdGVFbGVtZW50TlMtbmFtZXNwYWNl
LWVyci5qcwppbmRleCA5MDA0NjcwLi4yNzFjZTA1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9Eb2N1bWVudC9zY3JpcHQtdGVzdHMvY3JlYXRlRWxlbWVudE5TLW5hbWVzcGFjZS1l
cnIuanMKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vRG9jdW1lbnQvc2NyaXB0LXRlc3RzL2Ny
ZWF0ZUVsZW1lbnROUy1uYW1lc3BhY2UtZXJyLmpzCkBAIC0xNTcsOSArMTU3LDggQEAgZnVuY3Rp
b24gcnVuTlNUZXN0cyh0ZXN0cywgZG9jLCBjcmVhdGVGdW5jdGlvbk5hbWUpCiAgICAgfQogfQog
Ci0vLyBNb3ogdGhyb3dzIGEgIk5vdCBlbm91Z2ggYXJndW1lbnRzIiBleGNlcHRpb24gaW4gdGhl
c2UsIHdlIGRvbid0Ogotc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJkb2N1bWVudC5jcmVhdGVFbGVt
ZW50TlMoKS50b1N0cmluZygpIiwgIltvYmplY3QgRWxlbWVudF0iKTsKLXNob3VsZEJlRXF1YWxU
b1N0cmluZygiZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKFwiaHR0cDovL3d3dy5leGFtcGxlLmNv
bVwiKS50b1N0cmluZygpIiwgIltvYmplY3QgRWxlbWVudF0iKTsKK3Nob3VsZFRocm93KCJkb2N1
bWVudC5jcmVhdGVFbGVtZW50TlMoKS50b1N0cmluZygpIik7CitzaG91bGRUaHJvdygiZG9jdW1l
bnQuY3JlYXRlRWxlbWVudE5TKFwiaHR0cDovL3d3dy5leGFtcGxlLmNvbVwiKS50b1N0cmluZygp
Iik7CiAKIGRlYnVnKCJIVE1MIHRlc3RzOiIpCiBydW5OU1Rlc3RzKGFsbE5TVGVzdHMsIGRvY3Vt
ZW50LCAiY3JlYXRlRWxlbWVudE5TIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9IVE1MRm9ybUVsZW1lbnQvYWRvcHQtYXNzZXJ0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9IVE1MRm9ybUVsZW1lbnQvYWRvcHQtYXNzZXJ0aW9uLmh0bWwKaW5kZXggODBhOTlkNS4u
ODk1YzI2YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTEZvcm1FbGVtZW50
L2Fkb3B0LWFzc2VydGlvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxGb3Jt
RWxlbWVudC9hZG9wdC1hc3NlcnRpb24uaHRtbApAQCAtMTEsNiArMTEsNiBAQAogICAgIGlmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVy
LmR1bXBBc1RleHQoKTsKIAotICAgIHZhciBvdGhlckRvY3VtZW50ID0gZG9jdW1lbnQuaW1wbGVt
ZW50YXRpb24uY3JlYXRlSFRNTERvY3VtZW50KCk7CisgICAgdmFyIG90aGVyRG9jdW1lbnQgPSBk
b2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQoIiIpOwogICAgIG90aGVy
RG9jdW1lbnQuYWRvcHROb2RlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSk7CiA8
L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1NlbGVjdG9yQVBJL3Jl
c2lnLVNlbGVjdG9yc0FQSS10ZXN0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9t
L1NlbGVjdG9yQVBJL3Jlc2lnLVNlbGVjdG9yc0FQSS10ZXN0LWV4cGVjdGVkLnR4dAppbmRleCA2
NWVjYzMzLi41OGUwNThlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9TZWxlY3Rv
ckFQSS9yZXNpZy1TZWxlY3RvcnNBUEktdGVzdC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9kb20vU2VsZWN0b3JBUEkvcmVzaWctU2VsZWN0b3JzQVBJLXRlc3QtZXhwZWN0ZWQu
dHh0CkBAIC00LDE3ICs0LDE3IEBAIFRlc3RydW5uZXIgYnkgSm9obiBSZXNpZywgdGVzdHMgYnkg
Sm9obiBSZXNpZywgRGlzcnVwdGl2ZSBJbm5vdmF0aW9ucywgVzNDIENTUyBXCiAKICBTaG93IG9u
bHkgZmFpbGluZyB0ZXN0cy4KIAotOTkuMiU6IDIxNDcgcGFzc2VkLCAxNyBmYWlsZWQKKzEwMC4w
JTogMjE2MyBwYXNzZWQsIDEgZmFpbGVkCiBQQVNTIEVsZW1lbnQgc3VwcG9ydHMgcXVlcnlTZWxl
Y3RvcgogUEFTUyBFbGVtZW50IHN1cHBvcnRzIHF1ZXJ5U2VsZWN0b3JBbGwKIFBBU1MgRWxlbWVu
dC5xdWVyeVNlbGVjdG9yQWxsIEVtcHR5IFN0cmluZwogUEFTUyBFbGVtZW50LnF1ZXJ5U2VsZWN0
b3JBbGwgbnVsbAogUEFTUyBFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwgdW5kZWZpbmVkCi1GQUlM
IEVsZW1lbnQucXVlcnlTZWxlY3RvckFsbCBubyB2YWx1ZQorUEFTUyBFbGVtZW50LnF1ZXJ5U2Vs
ZWN0b3JBbGwgbm8gdmFsdWUKIFBBU1MgRWxlbWVudC5xdWVyeVNlbGVjdG9yIEVtcHR5IFN0cmlu
ZwogUEFTUyBFbGVtZW50LnF1ZXJ5U2VsZWN0b3IgbnVsbAogUEFTUyBFbGVtZW50LnF1ZXJ5U2Vs
ZWN0b3IgdW5kZWZpbmVkCi1GQUlMIEVsZW1lbnQucXVlcnlTZWxlY3RvciBubyB2YWx1ZQorUEFT
UyBFbGVtZW50LnF1ZXJ5U2VsZWN0b3Igbm8gdmFsdWUKIFBBU1MgRWxlbWVudC5xdWVyeVNlbGVj
dG9yQWxsOiAudGFyZ2V0IDp0YXJnZXQKIFBBU1MgRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsIFdo
aXRlc3BhY2UgVHJpbTogLnRhcmdldCA6dGFyZ2V0CiBQQVNTIEVsZW1lbnQucXVlcnlTZWxlY3Rv
cjogLnRhcmdldCA6dGFyZ2V0CkBAIC01NTAsMTEgKzU1MCwxMSBAQCBQQVNTIE91dHNpZGUgRWxl
bWVudDogKyBjb21iaW5hdG9yCiBQQVNTIFN5bnRheCBFcnJvcjogRWxlbWVudC5xdWVyeVNlbGVj
dG9yQWxsIEVtcHR5IFN0cmluZwogUEFTUyBTeW50YXggRXJyb3I6IEVsZW1lbnQucXVlcnlTZWxl
Y3RvckFsbCBudWxsCiBQQVNTIFN5bnRheCBFcnJvcjogRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxs
IHVuZGVmaW5lZAotRkFJTCBTeW50YXggRXJyb3I6IEVsZW1lbnQucXVlcnlTZWxlY3RvckFsbCBu
byB2YWx1ZQorUEFTUyBTeW50YXggRXJyb3I6IEVsZW1lbnQucXVlcnlTZWxlY3RvckFsbCBubyB2
YWx1ZQogUEFTUyBTeW50YXggRXJyb3I6IEVsZW1lbnQucXVlcnlTZWxlY3RvciBFbXB0eSBTdHJp
bmcKIFBBU1MgU3ludGF4IEVycm9yOiBFbGVtZW50LnF1ZXJ5U2VsZWN0b3IgbnVsbAogUEFTUyBT
eW50YXggRXJyb3I6IEVsZW1lbnQucXVlcnlTZWxlY3RvciB1bmRlZmluZWQKLUZBSUwgU3ludGF4
IEVycm9yOiBFbGVtZW50LnF1ZXJ5U2VsZWN0b3Igbm8gdmFsdWUKK1BBU1MgU3ludGF4IEVycm9y
OiBFbGVtZW50LnF1ZXJ5U2VsZWN0b3Igbm8gdmFsdWUKIFBBU1MgU3ludGF4IEVycm9yOiBFbGVt
ZW50LnF1ZXJ5U2VsZWN0b3JBbGw6IC5ibG94MTY6bm90KC5ibG94MTVbZm9vPSJibG94MTQiXSkK
IFBBU1MgU3ludGF4IEVycm9yOiBFbGVtZW50LnF1ZXJ5U2VsZWN0b3I6IC5ibG94MTY6bm90KC5i
bG94MTVbZm9vPSJibG94MTQiXSkKIFBBU1MgU3ludGF4IEVycm9yOiBFbGVtZW50LnF1ZXJ5U2Vs
ZWN0b3JBbGw6IGRpdjpub3QoOm5vdChkaXYpKQpAQCAtNzI2LDExICs3MjYsMTEgQEAgUEFTUyBE
aXNjb25uZWN0ZWQgRWxlbWVudCBzdXBwb3J0cyBxdWVyeVNlbGVjdG9yQWxsCiBQQVNTIERpc2Nv
bm5lY3RlZCBFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwgRW1wdHkgU3RyaW5nCiBQQVNTIERpc2Nv
bm5lY3RlZCBFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwgbnVsbAogUEFTUyBEaXNjb25uZWN0ZWQg
RWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsIHVuZGVmaW5lZAotRkFJTCBEaXNjb25uZWN0ZWQgRWxl
bWVudC5xdWVyeVNlbGVjdG9yQWxsIG5vIHZhbHVlCitQQVNTIERpc2Nvbm5lY3RlZCBFbGVtZW50
LnF1ZXJ5U2VsZWN0b3JBbGwgbm8gdmFsdWUKIFBBU1MgRGlzY29ubmVjdGVkIEVsZW1lbnQucXVl
cnlTZWxlY3RvciBFbXB0eSBTdHJpbmcKIFBBU1MgRGlzY29ubmVjdGVkIEVsZW1lbnQucXVlcnlT
ZWxlY3RvciBudWxsCiBQQVNTIERpc2Nvbm5lY3RlZCBFbGVtZW50LnF1ZXJ5U2VsZWN0b3IgdW5k
ZWZpbmVkCi1GQUlMIERpc2Nvbm5lY3RlZCBFbGVtZW50LnF1ZXJ5U2VsZWN0b3Igbm8gdmFsdWUK
K1BBU1MgRGlzY29ubmVjdGVkIEVsZW1lbnQucXVlcnlTZWxlY3RvciBubyB2YWx1ZQogUEFTUyBE
aXNjb25uZWN0ZWQgRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsOiAudGFyZ2V0IDp0YXJnZXQKIFBB
U1MgRGlzY29ubmVjdGVkIEVsZW1lbnQucXVlcnlTZWxlY3RvckFsbCBXaGl0ZXNwYWNlIFRyaW06
IC50YXJnZXQgOnRhcmdldAogUEFTUyBEaXNjb25uZWN0ZWQgRWxlbWVudC5xdWVyeVNlbGVjdG9y
OiAudGFyZ2V0IDp0YXJnZXQKQEAgLTExNDgsMTEgKzExNDgsMTEgQEAgUEFTUyBEaXNjb25uZWN0
ZWQgRWxlbWVudDogU3RhdGljTm9kZUxpc3QKIFBBU1MgU3ludGF4IEVycm9yOiBEaXNjb25uZWN0
ZWQgRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsIEVtcHR5IFN0cmluZwogUEFTUyBTeW50YXggRXJy
b3I6IERpc2Nvbm5lY3RlZCBFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwgbnVsbAogUEFTUyBTeW50
YXggRXJyb3I6IERpc2Nvbm5lY3RlZCBFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwgdW5kZWZpbmVk
Ci1GQUlMIFN5bnRheCBFcnJvcjogRGlzY29ubmVjdGVkIEVsZW1lbnQucXVlcnlTZWxlY3RvckFs
bCBubyB2YWx1ZQorUEFTUyBTeW50YXggRXJyb3I6IERpc2Nvbm5lY3RlZCBFbGVtZW50LnF1ZXJ5
U2VsZWN0b3JBbGwgbm8gdmFsdWUKIFBBU1MgU3ludGF4IEVycm9yOiBEaXNjb25uZWN0ZWQgRWxl
bWVudC5xdWVyeVNlbGVjdG9yIEVtcHR5IFN0cmluZwogUEFTUyBTeW50YXggRXJyb3I6IERpc2Nv
bm5lY3RlZCBFbGVtZW50LnF1ZXJ5U2VsZWN0b3IgbnVsbAogUEFTUyBTeW50YXggRXJyb3I6IERp
c2Nvbm5lY3RlZCBFbGVtZW50LnF1ZXJ5U2VsZWN0b3IgdW5kZWZpbmVkCi1GQUlMIFN5bnRheCBF
cnJvcjogRGlzY29ubmVjdGVkIEVsZW1lbnQucXVlcnlTZWxlY3RvciBubyB2YWx1ZQorUEFTUyBT
eW50YXggRXJyb3I6IERpc2Nvbm5lY3RlZCBFbGVtZW50LnF1ZXJ5U2VsZWN0b3Igbm8gdmFsdWUK
IFBBU1MgU3ludGF4IEVycm9yOiBEaXNjb25uZWN0ZWQgRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxs
OiAuYmxveDE2Om5vdCguYmxveDE1W2Zvbz0iYmxveDE0Il0pCiBQQVNTIFN5bnRheCBFcnJvcjog
RGlzY29ubmVjdGVkIEVsZW1lbnQucXVlcnlTZWxlY3RvcjogLmJsb3gxNjpub3QoLmJsb3gxNVtm
b289ImJsb3gxNCJdKQogUEFTUyBTeW50YXggRXJyb3I6IERpc2Nvbm5lY3RlZCBFbGVtZW50LnF1
ZXJ5U2VsZWN0b3JBbGw6IGRpdjpub3QoOm5vdChkaXYpKQpAQCAtMTMyNCwxMSArMTMyNCwxMSBA
QCBQQVNTIEZyYWdtZW50IHN1cHBvcnRzIHF1ZXJ5U2VsZWN0b3JBbGwKIFBBU1MgRnJhZ21lbnQu
cXVlcnlTZWxlY3RvckFsbCBFbXB0eSBTdHJpbmcKIFBBU1MgRnJhZ21lbnQucXVlcnlTZWxlY3Rv
ckFsbCBudWxsCiBQQVNTIEZyYWdtZW50LnF1ZXJ5U2VsZWN0b3JBbGwgdW5kZWZpbmVkCi1GQUlM
IEZyYWdtZW50LnF1ZXJ5U2VsZWN0b3JBbGwgbm8gdmFsdWUKK1BBU1MgRnJhZ21lbnQucXVlcnlT
ZWxlY3RvckFsbCBubyB2YWx1ZQogUEFTUyBGcmFnbWVudC5xdWVyeVNlbGVjdG9yIEVtcHR5IFN0
cmluZwogUEFTUyBGcmFnbWVudC5xdWVyeVNlbGVjdG9yIG51bGwKIFBBU1MgRnJhZ21lbnQucXVl
cnlTZWxlY3RvciB1bmRlZmluZWQKLUZBSUwgRnJhZ21lbnQucXVlcnlTZWxlY3RvciBubyB2YWx1
ZQorUEFTUyBGcmFnbWVudC5xdWVyeVNlbGVjdG9yIG5vIHZhbHVlCiBQQVNTIEZyYWdtZW50LnF1
ZXJ5U2VsZWN0b3JBbGw6IC50YXJnZXQgOnRhcmdldAogUEFTUyBGcmFnbWVudC5xdWVyeVNlbGVj
dG9yQWxsIFdoaXRlc3BhY2UgVHJpbTogLnRhcmdldCA6dGFyZ2V0CiBQQVNTIEZyYWdtZW50LnF1
ZXJ5U2VsZWN0b3I6IC50YXJnZXQgOnRhcmdldApAQCAtMTYyOSwxMSArMTYyOSwxMSBAQCBQQVNT
IEZyYWdtZW50LnF1ZXJ5U2VsZWN0b3I6IC5wbHVzIC50MTpob3ZlciArIC51bml0VGVzdCArIC51
bml0VGVzdAogUEFTUyBTeW50YXggRXJyb3I6IEZyYWdtZW50LnF1ZXJ5U2VsZWN0b3JBbGwgRW1w
dHkgU3RyaW5nCiBQQVNTIFN5bnRheCBFcnJvcjogRnJhZ21lbnQucXVlcnlTZWxlY3RvckFsbCBu
dWxsCiBQQVNTIFN5bnRheCBFcnJvcjogRnJhZ21lbnQucXVlcnlTZWxlY3RvckFsbCB1bmRlZmlu
ZWQKLUZBSUwgU3ludGF4IEVycm9yOiBGcmFnbWVudC5xdWVyeVNlbGVjdG9yQWxsIG5vIHZhbHVl
CitQQVNTIFN5bnRheCBFcnJvcjogRnJhZ21lbnQucXVlcnlTZWxlY3RvckFsbCBubyB2YWx1ZQog
UEFTUyBTeW50YXggRXJyb3I6IEZyYWdtZW50LnF1ZXJ5U2VsZWN0b3IgRW1wdHkgU3RyaW5nCiBQ
QVNTIFN5bnRheCBFcnJvcjogRnJhZ21lbnQucXVlcnlTZWxlY3RvciBudWxsCiBQQVNTIFN5bnRh
eCBFcnJvcjogRnJhZ21lbnQucXVlcnlTZWxlY3RvciB1bmRlZmluZWQKLUZBSUwgU3ludGF4IEVy
cm9yOiBGcmFnbWVudC5xdWVyeVNlbGVjdG9yIG5vIHZhbHVlCitQQVNTIFN5bnRheCBFcnJvcjog
RnJhZ21lbnQucXVlcnlTZWxlY3RvciBubyB2YWx1ZQogUEFTUyBTeW50YXggRXJyb3I6IEZyYWdt
ZW50LnF1ZXJ5U2VsZWN0b3JBbGw6IC5ibG94MTY6bm90KC5ibG94MTVbZm9vPSJibG94MTQiXSkK
IFBBU1MgU3ludGF4IEVycm9yOiBGcmFnbWVudC5xdWVyeVNlbGVjdG9yOiAuYmxveDE2Om5vdCgu
YmxveDE1W2Zvbz0iYmxveDE0Il0pCiBQQVNTIFN5bnRheCBFcnJvcjogRnJhZ21lbnQucXVlcnlT
ZWxlY3RvckFsbDogZGl2Om5vdCg6bm90KGRpdikpCkBAIC0xNjg3LDExICsxNjg3LDExIEBAIFBB
U1MgRG9jdW1lbnQgc3VwcG9ydHMgcXVlcnlTZWxlY3RvckFsbAogUEFTUyBEb2N1bWVudC5xdWVy
eVNlbGVjdG9yQWxsIEVtcHR5IFN0cmluZwogUEFTUyBEb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxs
IG51bGwKIFBBU1MgRG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCB1bmRlZmluZWQKLUZBSUwgRG9j
dW1lbnQucXVlcnlTZWxlY3RvckFsbCBubyB2YWx1ZQorUEFTUyBEb2N1bWVudC5xdWVyeVNlbGVj
dG9yQWxsIG5vIHZhbHVlCiBQQVNTIERvY3VtZW50LnF1ZXJ5U2VsZWN0b3IgRW1wdHkgU3RyaW5n
CiBQQVNTIERvY3VtZW50LnF1ZXJ5U2VsZWN0b3IgbnVsbAogUEFTUyBEb2N1bWVudC5xdWVyeVNl
bGVjdG9yIHVuZGVmaW5lZAotRkFJTCBEb2N1bWVudC5xdWVyeVNlbGVjdG9yIG5vIHZhbHVlCitQ
QVNTIERvY3VtZW50LnF1ZXJ5U2VsZWN0b3Igbm8gdmFsdWUKIFBBU1MgRG9jdW1lbnQucXVlcnlT
ZWxlY3RvckFsbDogLnRhcmdldCA6dGFyZ2V0CiBQQVNTIERvY3VtZW50LnF1ZXJ5U2VsZWN0b3JB
bGwgV2hpdGVzcGFjZSBUcmltOiAudGFyZ2V0IDp0YXJnZXQKIFBBU1MgRG9jdW1lbnQucXVlcnlT
ZWxlY3RvcjogLnRhcmdldCA6dGFyZ2V0CkBAIC0xOTkyLDExICsxOTkyLDExIEBAIFBBU1MgRG9j
dW1lbnQucXVlcnlTZWxlY3RvcjogLnBsdXMgLnQxOmhvdmVyICsgLnVuaXRUZXN0ICsgLnVuaXRU
ZXN0CiBQQVNTIFN5bnRheCBFcnJvcjogRG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCBFbXB0eSBT
dHJpbmcKIFBBU1MgU3ludGF4IEVycm9yOiBEb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsIG51bGwK
IFBBU1MgU3ludGF4IEVycm9yOiBEb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsIHVuZGVmaW5lZAot
RkFJTCBTeW50YXggRXJyb3I6IERvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwgbm8gdmFsdWUKK1BB
U1MgU3ludGF4IEVycm9yOiBEb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsIG5vIHZhbHVlCiBQQVNT
IFN5bnRheCBFcnJvcjogRG9jdW1lbnQucXVlcnlTZWxlY3RvciBFbXB0eSBTdHJpbmcKIFBBU1Mg
U3ludGF4IEVycm9yOiBEb2N1bWVudC5xdWVyeVNlbGVjdG9yIG51bGwKIFBBU1MgU3ludGF4IEVy
cm9yOiBEb2N1bWVudC5xdWVyeVNlbGVjdG9yIHVuZGVmaW5lZAotRkFJTCBTeW50YXggRXJyb3I6
IERvY3VtZW50LnF1ZXJ5U2VsZWN0b3Igbm8gdmFsdWUKK1BBU1MgU3ludGF4IEVycm9yOiBEb2N1
bWVudC5xdWVyeVNlbGVjdG9yIG5vIHZhbHVlCiBQQVNTIFN5bnRheCBFcnJvcjogRG9jdW1lbnQu
cXVlcnlTZWxlY3RvckFsbDogLmJsb3gxNjpub3QoLmJsb3gxNVtmb289ImJsb3gxNCJdKQogUEFT
UyBTeW50YXggRXJyb3I6IERvY3VtZW50LnF1ZXJ5U2VsZWN0b3I6IC5ibG94MTY6bm90KC5ibG94
MTVbZm9vPSJibG94MTQiXSkKIFBBU1MgU3ludGF4IEVycm9yOiBEb2N1bWVudC5xdWVyeVNlbGVj
dG9yQWxsOiBkaXY6bm90KDpub3QoZGl2KSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL1NlbGVjdG9yQVBJL3NjcmlwdC10ZXN0cy92aWV3bGVzcy1kb2N1bWVudC5qcyBiL0xheW91
dFRlc3RzL2Zhc3QvZG9tL1NlbGVjdG9yQVBJL3NjcmlwdC10ZXN0cy92aWV3bGVzcy1kb2N1bWVu
dC5qcwppbmRleCA2NDA2MWIyLi5mZDQxNThlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9TZWxlY3RvckFQSS9zY3JpcHQtdGVzdHMvdmlld2xlc3MtZG9jdW1lbnQuanMKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9kb20vU2VsZWN0b3JBUEkvc2NyaXB0LXRlc3RzL3ZpZXdsZXNzLWRv
Y3VtZW50LmpzCkBAIC0yLDcgKzIsNyBAQCBkZXNjcmlwdGlvbigKICJUaGlzIHRlc3RzIHRoYXQg
cXVlcnlTZWxlY3RvciwgcXVlcnlTZWxlY3RvckFsbCBhbmQgbWF0Y2hlc1NlbGVjdG9yICh3ZWJr
aXRNYXRjaGVzU2VsZWN0b3IpIGRvbid0IGNyYXNoIHdoZW4gdXNlZCBpbiBhIHZpZXdsZXNzIGRv
Y3VtZW50LiIKICk7CiAKLXZhciB0ZXN0RG9jID0gZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3Jl
YXRlRG9jdW1lbnQoImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiLCAiaHRtbCIpOwordmFy
IHRlc3REb2MgPSBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVEb2N1bWVudCgiaHR0cDov
L3d3dy53My5vcmcvMTk5OS94aHRtbCIsICJodG1sIiwgbnVsbCk7CiB0ZXN0RG9jLmRvY3VtZW50
RWxlbWVudC5hcHBlbmRDaGlsZCh0ZXN0RG9jLmNyZWF0ZUVsZW1lbnQoImJvZHkiKSk7CiB0ZXN0
RG9jLmJvZHkuYXBwZW5kQ2hpbGQodGVzdERvYy5jcmVhdGVFbGVtZW50KCJwIikpLmlkID0gInAx
IjsKIHRlc3REb2MuZ2V0RWxlbWVudEJ5SWQoInAxIikuYXBwZW5kQ2hpbGQodGVzdERvYy5jcmVh
dGVFbGVtZW50KCJzcGFuIikpLmlkID0gInMxIjsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZG9tL1N0eWxlU2hlZXQvb3duZXJOb2RlLWxpZmV0aW1lLTIuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL1N0eWxlU2hlZXQvb3duZXJOb2RlLWxpZmV0aW1lLTIuaHRtbAppbmRleCBjYTZm
YTE2Li5jYjVlYjE4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9TdHlsZVNoZWV0
L293bmVyTm9kZS1saWZldGltZS0yLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vU3R5
bGVTaGVldC9vd25lck5vZGUtbGlmZXRpbWUtMi5odG1sCkBAIC0yMSw3ICsyMSw3IEBAIGZ1bmN0
aW9uIHJ1blRlc3QoKSB7CiAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgaSsrKQ0KICAg
ICAgIG5ldyBPYmplY3QoKTsNCiAgIH0gDQotICBzdHlsZVNoZWV0Lm93bmVyTm9kZS5jbG9uZU5v
ZGUoKTsNCisgIHN0eWxlU2hlZXQub3duZXJOb2RlLmNsb25lTm9kZSh0cnVlKTsNCiANCiAgIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQiKS5pbm5lckhUTUwgPSAiVGVzdCBwYXNzZWQu
IjsNCiB9DQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vU3R5bGVTaGVldC9vd25l
ck5vZGUtbGlmZXRpbWUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1N0eWxlU2hlZXQvb3du
ZXJOb2RlLWxpZmV0aW1lLmh0bWwKaW5kZXggNTRiMWFjNC4uNGYxODY2MiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9kb20vU3R5bGVTaGVldC9vd25lck5vZGUtbGlmZXRpbWUuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9TdHlsZVNoZWV0L293bmVyTm9kZS1saWZldGltZS5o
dG1sCkBAIC0xNyw3ICsxNyw3IEBAIGZ1bmN0aW9uIHJ1blRlc3QoKQogICAgICAgICBzID0gcyAr
ICIgIjsKICAgICB9CiAKLSAgICBzdHlsZVNoZWV0Lm93bmVyTm9kZS5jbG9uZU5vZGUoKTsKKyAg
ICBzdHlsZVNoZWV0Lm93bmVyTm9kZS5jbG9uZU5vZGUodHJ1ZSk7CiAKICAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgicmVzdWx0IikuaW5uZXJIVE1MID0gIlRlc3QgcGFzc2VkLiI7CiB9CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvYWxlcnQtdW5kZWZpbmVkLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9hbGVydC11bmRlZmluZWQt
ZXhwZWN0ZWQudHh0CmluZGV4IDM0YmVjNWYuLjgyN2U5MTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvZG9tL1dpbmRvdy9hbGVydC11bmRlZmluZWQtZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9hbGVydC11bmRlZmluZWQtZXhwZWN0ZWQudHh0CkBA
IC00LDcgKzQsNCBAQCBDT05GSVJNOiB1bmRlZmluZWQKIENPTkZJUk06IG51bGwKIFBST01QVDog
dW5kZWZpbmVkLCBkZWZhdWx0IHRleHQ6IAogUFJPTVBUOiBudWxsLCBkZWZhdWx0IHRleHQ6IAot
QUxFUlQ6IHVuZGVmaW5lZAotQ09ORklSTTogdW5kZWZpbmVkCi1QUk9NUFQ6IHVuZGVmaW5lZCwg
ZGVmYXVsdCB0ZXh0OiAKIFRoZSBhbGVydHMgdGhhdCBzaG93IHVwIChvciBpZiB0aGlzIGlzIHJ1
bm5pbmcgdW5kZXIgRFJULCB0aGF0IGlzIGR1bXBlZCkgc2hvdWxkIGNvbnRhaW4gdGV4dDsgbm9u
ZSBzaG91bGQgYmUgZW1wdHkuIFRoaXMgaXNuJ3QgZW50aXJlbHkgY29uc2lzdGVudCB3aXRoIG90
aGVyIGJyb3dzZXJzIGluIGV2ZXJ5IGNhc2UsIGJ1dCBzaW5jZSB0aGVyZSdzIG5vIHJlYWwgdXNl
IGNhc2UgZm9yIHRoaXMsIGl0J3MgYmVzdCB0byBiZSBleHBsaWNpdCByYXRoZXIgdGhhbiBzdWJ0
bGUgYW5kIGVtcHR5LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L2Fs
ZXJ0LXVuZGVmaW5lZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L2FsZXJ0LXVu
ZGVmaW5lZC5odG1sCmluZGV4IDM5NDYyMjYuLjJhNGIyNDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvZG9tL1dpbmRvdy9hbGVydC11bmRlZmluZWQuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9XaW5kb3cvYWxlcnQtdW5kZWZpbmVkLmh0bWwKQEAgLTEzLDEwICsxMyw2IEBA
CiAgICAgICAgICAgICBjb25maXJtKG51bGwpOwogICAgICAgICAgICAgcHJvbXB0KHVuZGVmaW5l
ZCk7CiAgICAgICAgICAgICBwcm9tcHQobnVsbCk7Ci0KLSAgICAgICAgICAgIGFsZXJ0KCk7Ci0g
ICAgICAgICAgICBjb25maXJtKCk7Ci0gICAgICAgICAgICBwcm9tcHQoKTsKICAgICAgICAgfQog
ICAgIDwvc2NyaXB0PgogPC9oZWFkPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20v
V2luZG93L2F0b2ItYnRvYS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5k
b3cvYXRvYi1idG9hLWV4cGVjdGVkLnR4dAppbmRleCBjZWY3NmE3Li5iYmVlZGQzIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvYXRvYi1idG9hLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvYXRvYi1idG9hLWV4cGVjdGVkLnR4dApA
QCAtMTEsNyArMTEsNyBAQCBQQVNTIHdpbmRvdy5idG9hKCJhYmNkIikgaXMgIllXSmpaQT09Igog
UEFTUyB3aW5kb3cuYnRvYSgiYWJjZGUiKSBpcyAiWVdKalpHVT0iCiBQQVNTIHdpbmRvdy5idG9h
KCJhYmNkZWYiKSBpcyAiWVdKalpHVm0iCiBQQVNTIHR5cGVvZiB3aW5kb3cuYnRvYSBpcyAiZnVu
Y3Rpb24iCi1QQVNTIHdpbmRvdy5idG9hKCkgaXMgImRXNWtaV1pwYm1WayIKK1BBU1Mgd2luZG93
LmJ0b2EoKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4K
IFBBU1Mgd2luZG93LmJ0b2EoIiIpIGlzICIiCiBQQVNTIHdpbmRvdy5idG9hKG51bGwpIGlzICIi
CiBQQVNTIHdpbmRvdy5idG9hKHVuZGVmaW5lZCkgaXMgImRXNWtaV1pwYm1WayIKQEAgLTIyLDcg
KzIyLDcgQEAgUEFTUyB3aW5kb3cuYnRvYSgi0YLQtdGB0YIiKSB0aHJldyBleGNlcHRpb24gRXJy
b3I6IElOVkFMSURfQ0hBUkFDVEVSX0VSUjogRE9NIEUKIFBBU1Mgd2luZG93LmJ0b2EgaXMgMAog
UEFTUyB0eXBlb2Ygd2luZG93LmJ0b2EgaXMgIm51bWJlciIKIFBBU1MgdHlwZW9mIHdpbmRvdy5h
dG9iIGlzICJmdW5jdGlvbiIKLVBBU1Mgd2luZG93LmF0b2IoKSB0aHJldyBleGNlcHRpb24gRXJy
b3I6IElOVkFMSURfQ0hBUkFDVEVSX0VSUjogRE9NIEV4Y2VwdGlvbiA1LgorUEFTUyB3aW5kb3cu
YXRvYigpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgog
UEFTUyB3aW5kb3cuYXRvYigiIikgaXMgIiIKIFBBU1Mgd2luZG93LmF0b2IobnVsbCkgaXMgIiIK
IFBBU1Mgd2luZG93LmF0b2IodW5kZWZpbmVkKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOVkFM
SURfQ0hBUkFDVEVSX0VSUjogRE9NIEV4Y2VwdGlvbiA1LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9kb20vV2luZG93L2F0b2ItYnRvYS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20v
V2luZG93L2F0b2ItYnRvYS5odG1sCmluZGV4IGY2YWJiOTguLjNiYzk2OWYgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9hdG9iLWJ0b2EuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9XaW5kb3cvYXRvYi1idG9hLmh0bWwKQEAgLTIyLDcgKzIyLDcgQEAgc2hv
dWxkQmUoJ3dpbmRvdy5idG9hKCJhYmNkZSIpJywgJyJZV0pqWkdVPSInKTsKIHNob3VsZEJlKCd3
aW5kb3cuYnRvYSgiYWJjZGVmIiknLCAnIllXSmpaR1ZtIicpOwogCiBzaG91bGRCZSgndHlwZW9m
IHdpbmRvdy5idG9hJywgJyJmdW5jdGlvbiInKTsKLXNob3VsZEJlKCd3aW5kb3cuYnRvYSgpJywg
JyJkVzVrWldacGJtVmsiJyk7CitzaG91bGRUaHJvdygnd2luZG93LmJ0b2EoKScpOwogc2hvdWxk
QmUoJ3dpbmRvdy5idG9hKCIiKScsICciIicpOwogc2hvdWxkQmUoJ3dpbmRvdy5idG9hKG51bGwp
JywgJyIiJyk7CiBzaG91bGRCZSgnd2luZG93LmJ0b2EodW5kZWZpbmVkKScsICciZFc1a1pXWnBi
bVZrIicpOwpAQCAtMzUsNyArMzUsNyBAQCBzaG91bGRCZSgnd2luZG93LmJ0b2EnLCAnMCcpOwog
c2hvdWxkQmUoJ3R5cGVvZiB3aW5kb3cuYnRvYScsICcibnVtYmVyIicpOwogCiBzaG91bGRCZSgn
dHlwZW9mIHdpbmRvdy5hdG9iJywgJyJmdW5jdGlvbiInKTsKLXNob3VsZFRocm93KCd3aW5kb3cu
YXRvYigpJyk7IC8vICd1bmRlZmluZWQnIAorc2hvdWxkVGhyb3coJ3dpbmRvdy5hdG9iKCknKTsK
IHNob3VsZEJlKCd3aW5kb3cuYXRvYigiIiknLCAnIiInKTsKIHNob3VsZEJlKCd3aW5kb3cuYXRv
YihudWxsKScsICciIicpOwogc2hvdWxkVGhyb3coJ3dpbmRvdy5hdG9iKHVuZGVmaW5lZCknKTsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcmVzaXplLWFu
ZC1tb3ZlLWFyZ3VtZW50cy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRv
dy1yZXNpemUtYW5kLW1vdmUtYXJndW1lbnRzLmh0bWwKaW5kZXggOWNhZTFkMi4uOTdlNjFiNiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1yZXNpemUtYW5k
LW1vdmUtYXJndW1lbnRzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dp
bmRvdy1yZXNpemUtYW5kLW1vdmUtYXJndW1lbnRzLmh0bWwKQEAgLTQyLDEzICs0MiwxOSBAQAog
ICAgIGRlYnVnKCcnKTsKIAogICAgIGRlYnVnKCJUZXN0aW5nIC0gcmVzaXplVG8gd2l0aCAwIGFy
Z3VtZW50cyIpOwotICAgIHdpbmRvdy5yZXNpemVUbygpOworICAgIHRyeSB7CisgICAgICAgIHdp
bmRvdy5yZXNpemVUbygpOworICAgIH0gY2F0Y2ggKGV4KSB7CisgICAgfQogICAgIHNob3VsZEJl
KCd3aW5kb3cub3V0ZXJXaWR0aCcsICdyZXNldFdpZHRoJyk7CiAgICAgc2hvdWxkQmUoJ3dpbmRv
dy5vdXRlckhlaWdodCcsICdyZXNldEhlaWdodCcpOwogICAgIHJlc2V0KCk7CiAKICAgICBkZWJ1
ZygiVGVzdGluZyAtIHJlc2l6ZVRvIHdpdGggMSBhcmd1bWVudCIpOwotICAgIHdpbmRvdy5yZXNp
emVUbyh4KTsKKyAgICB0cnkgeworICAgICAgICB3aW5kb3cucmVzaXplVG8oeCk7CisgICAgfSBj
YXRjaCAoZXgpIHsKKyAgICB9CiAgICAgc2hvdWxkQmUoJ3dpbmRvdy5vdXRlcldpZHRoJywgJ3Jl
c2V0V2lkdGgnKTsKICAgICBzaG91bGRCZSgnd2luZG93Lm91dGVySGVpZ2h0JywgJ3Jlc2V0SGVp
Z2h0Jyk7CiAgICAgcmVzZXQoKTsKQEAgLTY1LDEzICs3MSwxOSBAQAogICAgIGRlYnVnKCcnKTsK
IAogICAgIGRlYnVnKCJUZXN0aW5nIC0gcmVzaXplQnkgd2l0aCAwIGFyZ3VtZW50cyIpOwotICAg
IHdpbmRvdy5yZXNpemVCeSgpOworICAgIHRyeSB7CisgICAgICAgIHdpbmRvdy5yZXNpemVCeSgp
OworICAgIH0gY2F0Y2ggKGV4KSB7CisgICAgfQogICAgIHNob3VsZEJlKCd3aW5kb3cub3V0ZXJX
aWR0aCcsICdyZXNldFdpZHRoJyk7CiAgICAgc2hvdWxkQmUoJ3dpbmRvdy5vdXRlckhlaWdodCcs
ICdyZXNldEhlaWdodCcpOwogICAgIHJlc2V0KCk7CiAKICAgICBkZWJ1ZygiVGVzdGluZyAtIHJl
c2l6ZUJ5IHdpdGggMSBhcmd1bWVudCIpOwotICAgIHdpbmRvdy5yZXNpemVCeSh4KTsKKyAgICB0
cnkgeworICAgICAgICB3aW5kb3cucmVzaXplQnkoeCk7CisgICAgfSBjYXRjaCAoZXgpIHsKKyAg
ICB9CiAgICAgc2hvdWxkQmUoJ3dpbmRvdy5vdXRlcldpZHRoJywgJ3Jlc2V0V2lkdGgnKTsKICAg
ICBzaG91bGRCZSgnd2luZG93Lm91dGVySGVpZ2h0JywgJ3Jlc2V0SGVpZ2h0Jyk7CiAgICAgcmVz
ZXQoKTsKQEAgLTg5LDEzICsxMDEsMTkgQEAKICAgICBkZWJ1ZygnJyk7CiAKICAgICBkZWJ1Zygi
VGVzdGluZyAtIG1vdmVUbyB3aXRoIDAgYXJndW1lbnRzIik7Ci0gICAgd2luZG93Lm1vdmVUbygp
OworICAgIHRyeSB7CisgICAgICAgIHdpbmRvdy5tb3ZlVG8oKTsKKyAgICB9IGNhdGNoIChleCkg
eworICAgIH0KICAgICBzaG91bGRCZSgnd2luZG93LnNjcmVlblgnLCAncmVzZXRYJyk7CiAgICAg
c2hvdWxkQmUoJ3dpbmRvdy5zY3JlZW5ZJywgJ3Jlc2V0WScpOwogICAgIHJlc2V0KCk7CiAKICAg
ICBkZWJ1ZygiVGVzdGluZyAtIG1vdmVUbyB3aXRoIDEgYXJndW1lbnQiKTsKLSAgICB3aW5kb3cu
bW92ZVRvKHgpOworICAgIHRyeSB7CisgICAgICAgIHdpbmRvdy5tb3ZlVG8oeCk7CisgICAgfSBj
YXRjaCAoZXgpIHsKKyAgICB9CiAgICAgc2hvdWxkQmUoJ3dpbmRvdy5zY3JlZW5YJywgJ3Jlc2V0
WCcpOwogICAgIHNob3VsZEJlKCd3aW5kb3cuc2NyZWVuWScsICdyZXNldFknKTsKICAgICByZXNl
dCgpOwpAQCAtMTE0LDEzICsxMzIsMTkgQEAKICAgICBkZWJ1ZygnJyk7CiAKICAgICBkZWJ1Zygi
VGVzdGluZyAtIG1vdmVCeSB3aXRoIDAgYXJndW1lbnRzIik7Ci0gICAgd2luZG93Lm1vdmVCeSgp
OworICAgIHRyeSB7CisgICAgICAgIHdpbmRvdy5tb3ZlQnkoKTsKKyAgICB9IGNhdGNoIChleCkg
eworICAgIH0KICAgICBzaG91bGRCZSgnd2luZG93LnNjcmVlblgnLCAncmVzZXRYJyk7CiAgICAg
c2hvdWxkQmUoJ3dpbmRvdy5zY3JlZW5ZJywgJ3Jlc2V0WScpOwogICAgIHJlc2V0KCk7CiAKICAg
ICBkZWJ1ZygiVGVzdGluZyAtIG1vdmVCeSB3aXRoIDEgYXJndW1lbnQiKTsKLSAgICB3aW5kb3cu
bW92ZUJ5KHgpOworICAgIHRyeSB7CisgICAgICAgIHdpbmRvdy5tb3ZlQnkoeCk7CisgICAgfSBj
YXRjaCAoZXgpIHsKKyAgICB9CiAgICAgc2hvdWxkQmUoJ3dpbmRvdy5zY3JlZW5YJywgJ3Jlc2V0
WCcpOwogICAgIHNob3VsZEJlKCd3aW5kb3cuc2NyZWVuWScsICdyZXNldFknKTsKICAgICByZXNl
dCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1zY3Jv
bGwtYXJndW1lbnRzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXNj
cm9sbC1hcmd1bWVudHMuaHRtbAppbmRleCBhMzFmYzBmLi44ODNiOTFiIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXNjcm9sbC1hcmd1bWVudHMuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXNjcm9sbC1hcmd1bWVudHMu
aHRtbApAQCAtMzYsMTMgKzM2LDE5IEBACiAgICAgZGVidWcoJycpOwogCiAgICAgZGVidWcoIlRl
c3RpbmcgLSBzY3JvbGxUbyB3aXRoIDAgYXJndW1lbnRzIik7Ci0gICAgd2luZG93LnNjcm9sbFRv
KCk7CisgICAgdHJ5IHsKKyAgICAgICAgd2luZG93LnNjcm9sbFRvKCk7CisgICAgfSBjYXRjaCAo
ZXgpIHsKKyAgICB9CiAgICAgc2hvdWxkQmUoJ3dpbmRvdy5zY3JvbGxYJywgJ3Jlc2V0WCcpOwog
ICAgIHNob3VsZEJlKCd3aW5kb3cuc2Nyb2xsWScsICdyZXNldFknKTsKICAgICByZXNldCgpOwog
CiAgICAgZGVidWcoIlRlc3RpbmcgLSBzY3JvbGxUbyB3aXRoIDEgYXJndW1lbnQiKTsKLSAgICB3
aW5kb3cuc2Nyb2xsVG8oeCk7CisgICAgdHJ5IHsKKyAgICAgICAgd2luZG93LnNjcm9sbFRvKHgp
OworICAgIH0gY2F0Y2ggKGV4KSB7CisgICAgfQogICAgIHNob3VsZEJlKCd3aW5kb3cuc2Nyb2xs
WCcsICdyZXNldFgnKTsKICAgICBzaG91bGRCZSgnd2luZG93LnNjcm9sbFknLCAncmVzZXRZJyk7
CiAgICAgcmVzZXQoKTsKQEAgLTU5LDEzICs2NSwxOSBAQAogICAgIGRlYnVnKCcnKTsKIAogICAg
IGRlYnVnKCJUZXN0aW5nIC0gc2Nyb2xsIHdpdGggMCBhcmd1bWVudHMiKTsKLSAgICB3aW5kb3cu
c2Nyb2xsKCk7CisgICAgdHJ5IHsKKyAgICAgICAgd2luZG93LnNjcm9sbCgpOworICAgIH0gY2F0
Y2ggKGV4KSB7CisgICAgfQogICAgIHNob3VsZEJlKCd3aW5kb3cuc2Nyb2xsWCcsICdyZXNldFgn
KTsKICAgICBzaG91bGRCZSgnd2luZG93LnNjcm9sbFknLCAncmVzZXRZJyk7CiAgICAgcmVzZXQo
KTsKIAogICAgIGRlYnVnKCJUZXN0aW5nIC0gc2Nyb2xsIHdpdGggMSBhcmd1bWVudCIpOwotICAg
IHdpbmRvdy5zY3JvbGwoeCk7CisgICAgdHJ5IHsKKyAgICAgICAgd2luZG93LnNjcm9sbCh4KTsK
KyAgICB9IGNhdGNoIChleCkgeworICAgIH0KICAgICBzaG91bGRCZSgnd2luZG93LnNjcm9sbFgn
LCAncmVzZXRYJyk7CiAgICAgc2hvdWxkQmUoJ3dpbmRvdy5zY3JvbGxZJywgJ3Jlc2V0WScpOwog
ICAgIHJlc2V0KCk7CkBAIC04MiwxMyArOTQsMTkgQEAKICAgICBkZWJ1ZygnJyk7CiAKICAgICBk
ZWJ1ZygiVGVzdGluZyAtIHNjcm9sbEJ5IHdpdGggMCBhcmd1bWVudHMiKTsKLSAgICB3aW5kb3cu
c2Nyb2xsQnkoKTsKKyAgICB0cnkgeworICAgICAgICB3aW5kb3cuc2Nyb2xsQnkoKTsKKyAgICB9
IGNhdGNoIChleCkgeworICAgIH0KICAgICBzaG91bGRCZSgnd2luZG93LnNjcm9sbFgnLCAncmVz
ZXRYJyk7CiAgICAgc2hvdWxkQmUoJ3dpbmRvdy5zY3JvbGxZJywgJ3Jlc2V0WScpOwogICAgIHJl
c2V0KCk7CiAKICAgICBkZWJ1ZygiVGVzdGluZyAtIHNjcm9sbEJ5IHdpdGggMSBhcmd1bWVudCIp
OwotICAgIHdpbmRvdy5zY3JvbGxCeSh4KTsKKyAgICB0cnkgeworICAgICAgICB3aW5kb3cuc2Ny
b2xsQnkoeCk7CisgICAgfSBjYXRjaCAoZXgpIHsKKyAgICB9CiAgICAgc2hvdWxkQmUoJ3dpbmRv
dy5zY3JvbGxYJywgJ3Jlc2V0WCcpOwogICAgIHNob3VsZEJlKCd3aW5kb3cuc2Nyb2xsWScsICdy
ZXNldFknKTsKICAgICByZXNldCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20v
YXR0cmlidXRlLWRvd25jYXN0LXJpZ2h0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9hdHRy
aWJ1dGUtZG93bmNhc3QtcmlnaHQuaHRtbAppbmRleCAwYmM2NDFkLi43NmM1YjFkIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9hdHRyaWJ1dGUtZG93bmNhc3QtcmlnaHQuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9hdHRyaWJ1dGUtZG93bmNhc3QtcmlnaHQuaHRtbApA
QCAtMywxMCArMywxMCBAQCBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQogICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKIAogdmFyIG9FbGVtZW50ID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgicyIpCi12YXIgb0VsZW1lbnROUyA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnROUygpOwotb0VsZW1lbnROUy5zZXRBdHRyaWJ1dGVOUygpOwotdmFyIG9BdHRyaWJ1dGVO
UyA9IG9FbGVtZW50TlMuZ2V0QXR0cmlidXRlTm9kZU5TKCk7Ci12YXIgb0F0dHJpYnV0ZU5TQ2xv
bmUgPSBvQXR0cmlidXRlTlMuY2xvbmVOb2RlKCk7Cit2YXIgb0VsZW1lbnROUyA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIsImh0bWw6cyIp
Oworb0VsZW1lbnROUy5zZXRBdHRyaWJ1dGVOUygiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRt
bCIsInRpdGxlIiwgImZvbyIpOwordmFyIG9BdHRyaWJ1dGVOUyA9IG9FbGVtZW50TlMuZ2V0QXR0
cmlidXRlTm9kZU5TKCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiwidGl0bGUiKTsKK3Zh
ciBvQXR0cmlidXRlTlNDbG9uZSA9IG9BdHRyaWJ1dGVOUy5jbG9uZU5vZGUodHJ1ZSk7CiBvRWxl
bWVudC5zZXRBdHRyaWJ1dGVOb2RlKG9BdHRyaWJ1dGVOU0Nsb25lKTsKIDwvU0NSSVBUPgogPEJP
RFk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9jb21wdXRlZC1zdHlsZS1zZXQt
cHJvcGVydHkuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL2NvbXB1dGVkLXN0eWxlLXNldC1w
cm9wZXJ0eS5odG1sCmluZGV4IDE3NWE2YmUuLmE1N2Q0MjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvZG9tL2NvbXB1dGVkLXN0eWxlLXNldC1wcm9wZXJ0eS5odG1sCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvZG9tL2NvbXB1dGVkLXN0eWxlLXNldC1wcm9wZXJ0eS5odG1sCkBAIC0xNCw3
ICsxNCw3IEBAIHRyeSB7CiB9CiAKIHRyeSB7Ci0gIGRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENv
bXB1dGVkU3R5bGUoZG9jdW1lbnQuYm9keSwgbnVsbCkuc2V0UHJvcGVydHkoImNvbG9yIiwgImJs
dWUiKTsKKyAgZG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5i
b2R5LCBudWxsKS5zZXRQcm9wZXJ0eSgiY29sb3IiLCAiYmx1ZSIsIG51bGwpOwogICBkb2N1bWVu
dC53cml0ZSgiPHA+RkFJTDogZGlkIG5vdCBnZXQgYW4gZXhjZXB0aW9uIHdoZW4gdHJ5aW5nIHRv
IGNoYW5nZSBhIGNvbXB1dGVkIHN0eWxlIGRlY2xhcmF0aW9uIHZpYSBzZXRQcm9wZXJ0eS4iKTsK
IH0gY2F0Y2ggKGV4KSB7CiAgIGRvY3VtZW50LndyaXRlKCI8cD5QQVNTOiBnb3QgYW4gZXhjZXB0
aW9uIHdoZW4gdHJ5aW5nIHRvIGNoYW5nZSBhIGNvbXB1dGVkIHN0eWxlIGRlY2xhcmF0aW9uIHZp
YSBzZXRQcm9wZXJ0eSwgIiArIGV4KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9t
L2dldEVsZW1lbnRzQnlDbGFzc05hbWUvZHVtcE5vZGVMaXN0LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2Zhc3QvZG9tL2dldEVsZW1lbnRzQnlDbGFzc05hbWUvZHVtcE5vZGVMaXN0LWV4cGVj
dGVkLnR4dAppbmRleCAzNzNmZmJjLi5mMGYwOTZhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9nZXRFbGVtZW50c0J5Q2xhc3NOYW1lL2R1bXBOb2RlTGlzdC1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vZ2V0RWxlbWVudHNCeUNsYXNzTmFtZS9kdW1wTm9k
ZUxpc3QtZXhwZWN0ZWQudHh0CkBAIC0xMyw3ICsxMyw2IEBAIGxlbmd0aDogMAogbGVuZ3RoOiAw
CiBsZW5ndGg6IDAKIGxlbmd0aDogMAotbGVuZ3RoOiAwCiBbb2JqZWN0IEhUTUxEaXZFbGVtZW50
XSwgbGVuZ3RoOiAxCiBbb2JqZWN0IEhUTUxEaXZFbGVtZW50XSwgW29iamVjdCBIVE1MUGFyYWdy
YXBoRWxlbWVudF0sIGxlbmd0aDogMgogW29iamVjdCBIVE1MRGl2RWxlbWVudF0sIGxlbmd0aDog
MQpAQCAtMjIsNSArMjEsNCBAQCBsZW5ndGg6IDAKIGxlbmd0aDogMAogbGVuZ3RoOiAwCiBsZW5n
dGg6IDAKLWxlbmd0aDogMAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9nZXRF
bGVtZW50c0J5Q2xhc3NOYW1lL2R1bXBOb2RlTGlzdC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9k
b20vZ2V0RWxlbWVudHNCeUNsYXNzTmFtZS9kdW1wTm9kZUxpc3QuaHRtbAppbmRleCA4NmJkNDJl
Li5jZmZmMTI3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9nZXRFbGVtZW50c0J5
Q2xhc3NOYW1lL2R1bXBOb2RlTGlzdC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL2dl
dEVsZW1lbnRzQnlDbGFzc05hbWUvZHVtcE5vZGVMaXN0Lmh0bWwKQEAgLTMzLDcgKzMzLDYgQEAK
ICAgICAgICAgbG9nKGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoIm9uZVx0XHRcbiBc
ZnR3byIpLmR1bXAoKSk7CiAgICAgICAgIGxvZyhkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NO
YW1lKCIiKS5kdW1wKCkpOwogICAgICAgICBsb2coZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNz
TmFtZSgib25ldHdvIikuZHVtcCgpKTsKLSAgICAgICAgbG9nKGRvY3VtZW50LmdldEVsZW1lbnRz
QnlDbGFzc05hbWUoKS5kdW1wKCkpOwogICAgICAgICBsb2coZG9jdW1lbnQuZ2V0RWxlbWVudHNC
eUNsYXNzTmFtZShudWxsKS5kdW1wKCkpOwogICAgICAgICBsb2coZG9jdW1lbnQuZ2V0RWxlbWVu
dHNCeUNsYXNzTmFtZSh1bmRlZmluZWQpLmR1bXAoKSk7CiAKQEAgLTQzLDcgKzQyLDYgQEAKICAg
ICAgICAgbG9nKGVsbS5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJvbmVcdFx0XG4gXGZ0d28iKS5k
dW1wKCkpOwogICAgICAgICBsb2coZWxtLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoIiIpLmR1bXAo
KSk7CiAgICAgICAgIGxvZyhlbG0uZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgib25ldHdvIikuZHVt
cCgpKTsKLSAgICAgICAgbG9nKGVsbS5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCkuZHVtcCgpKTsK
ICAgICAgICAgbG9nKGVsbS5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKG51bGwpLmR1bXAoKSk7CiAg
ICAgICAgIGxvZyhlbG0uZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSh1bmRlZmluZWQpLmR1bXAoKSk7
CiAgICAgfSBjYXRjaCAoZXgpIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL2lt
cG9ydE5vZGUtbnVsbC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vaW1wb3J0Tm9kZS1udWxs
Lmh0bWwKaW5kZXggOGIyZWRjMC4uMTkxODczNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9kb20vaW1wb3J0Tm9kZS1udWxsLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vaW1w
b3J0Tm9kZS1udWxsLmh0bWwKQEAgLTE3LDcgKzE3LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAg
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKICAgICAgICAgCiAgICAgdHJ5
IHsKLSAgICAgICAgZG9jdW1lbnQuaW1wb3J0Tm9kZShudWxsKTsKKyAgICAgICAgZG9jdW1lbnQu
aW1wb3J0Tm9kZShudWxsLCB0cnVlKTsKICAgICB9IGNhdGNoKGUpIHsKICAgICAgICAgcHJpbnQo
ImNhdWdodCBleGNlcHRpb246ICIgKyBlKTsKICAgICB9IGZpbmFsbHkgewpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9kb20vbmF2aWdhdG9yLWRldGFjaGVkLW5vLWNyYXNoLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL25hdmlnYXRvci1kZXRhY2hlZC1uby1jcmFzaC1l
eHBlY3RlZC50eHQKaW5kZXggODg1YzgzMS4uNDgyN2JlOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9kb20vbmF2aWdhdG9yLWRldGFjaGVkLW5vLWNyYXNoLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9uYXZpZ2F0b3ItZGV0YWNoZWQtbm8tY3Jhc2gtZXhwZWN0
ZWQudHh0CkBAIC0xMyw4ICsxMyw4IEBAIG5hdmlnYXRvci5wbGF0Zm9ybSBpcyBPSwogbmF2aWdh
dG9yLnBsdWdpbnMgaXMgT0sKIG5hdmlnYXRvci5wcm9kdWN0IGlzIE9LCiBuYXZpZ2F0b3IucHJv
ZHVjdFN1YiBpcyBPSwotbmF2aWdhdG9yLnJlZ2lzdGVyQ29udGVudEhhbmRsZXIoKSB0aHJldyBl
cnIgRXJyb3I6IFNZTlRBWF9FUlI6IERPTSBFeGNlcHRpb24gMTIKLW5hdmlnYXRvci5yZWdpc3Rl
clByb3RvY29sSGFuZGxlcigpIHRocmV3IGVyciBFcnJvcjogU1lOVEFYX0VSUjogRE9NIEV4Y2Vw
dGlvbiAxMgorbmF2aWdhdG9yLnJlZ2lzdGVyQ29udGVudEhhbmRsZXIoKSB0aHJldyBlcnIgVHlw
ZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cworbmF2aWdhdG9yLnJlZ2lzdGVyUHJvdG9jb2xI
YW5kbGVyKCkgdGhyZXcgZXJyIFR5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMKIG5hdmln
YXRvci51c2VyQWdlbnQgaXMgT0sKIG5hdmlnYXRvci52ZW5kb3IgaXMgT0sKIG5hdmlnYXRvci52
ZW5kb3JTdWIgaXMgT0sKQEAgLTMxLDggKzMxLDggQEAgbmF2aWdhdG9yLnBsYXRmb3JtIGlzIE9L
CiBuYXZpZ2F0b3IucGx1Z2lucyBpcyBPSwogbmF2aWdhdG9yLnByb2R1Y3QgaXMgT0sKIG5hdmln
YXRvci5wcm9kdWN0U3ViIGlzIE9LCi1uYXZpZ2F0b3IucmVnaXN0ZXJDb250ZW50SGFuZGxlcigp
IGlzIE9LCi1uYXZpZ2F0b3IucmVnaXN0ZXJQcm90b2NvbEhhbmRsZXIoKSBpcyBPSworbmF2aWdh
dG9yLnJlZ2lzdGVyQ29udGVudEhhbmRsZXIoKSB0aHJldyBlcnIgVHlwZUVycm9yOiBOb3QgZW5v
dWdoIGFyZ3VtZW50cworbmF2aWdhdG9yLnJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyKCkgdGhyZXcg
ZXJyIFR5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMKIG5hdmlnYXRvci51c2VyQWdlbnQg
aXMgT0sKIG5hdmlnYXRvci52ZW5kb3IgaXMgT0sKIG5hdmlnYXRvci52ZW5kb3JTdWIgaXMgT0sK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL25vbi1udW1lcmljLXZhbHVlcy1udW1l
cmljLXBhcmFtZXRlcnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vbm9uLW51
bWVyaWMtdmFsdWVzLW51bWVyaWMtcGFyYW1ldGVycy1leHBlY3RlZC50eHQKaW5kZXggNjhiNWI2
Ny4uYWQyMDY3MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vbm9uLW51bWVyaWMt
dmFsdWVzLW51bWVyaWMtcGFyYW1ldGVycy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vbm9uLW51bWVyaWMtdmFsdWVzLW51bWVyaWMtcGFyYW1ldGVycy1leHBlY3RlZC50
eHQKQEAgLTQsMjUgKzQsMjUgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIAogCiBQQVNTIG5v
bk51bWVyaWNQb2xpY3koJ2RvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJhIikuc3Vic3RyaW5nRGF0
YSh4LCAwKScpIGlzICdhbnkgdHlwZSBhbGxvd2VkJwotUEFTUyBub25OdW1lcmljUG9saWN5KCdk
b2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiYSIpLnN1YnN0cmluZ0RhdGEoMCwgeCknKSBpcyAnYW55
IHR5cGUgYWxsb3dlZCcKK1BBU1Mgbm9uTnVtZXJpY1BvbGljeSgnZG9jdW1lbnQuY3JlYXRlVGV4
dE5vZGUoImEiKS5zdWJzdHJpbmdEYXRhKDAsIHgpJykgaXMgJ2FueSB0eXBlIGFsbG93ZWQgKGJ1
dCBub3Qgb21pdHRlZCknCiBQQVNTIG5vbk51bWVyaWNQb2xpY3koJ2RvY3VtZW50LmNyZWF0ZVRl
eHROb2RlKCJhIikuaW5zZXJ0RGF0YSh4LCAiYiIpJykgaXMgJ2FueSB0eXBlIGFsbG93ZWQnCiBQ
QVNTIG5vbk51bWVyaWNQb2xpY3koJ2RvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJhIikuZGVsZXRl
RGF0YSh4LCAwKScpIGlzICdhbnkgdHlwZSBhbGxvd2VkJwotUEFTUyBub25OdW1lcmljUG9saWN5
KCdkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiYSIpLmRlbGV0ZURhdGEoMCwgeCknKSBpcyAnYW55
IHR5cGUgYWxsb3dlZCcKK1BBU1Mgbm9uTnVtZXJpY1BvbGljeSgnZG9jdW1lbnQuY3JlYXRlVGV4
dE5vZGUoImEiKS5kZWxldGVEYXRhKDAsIHgpJykgaXMgJ2FueSB0eXBlIGFsbG93ZWQgKGJ1dCBu
b3Qgb21pdHRlZCknCiBQQVNTIG5vbk51bWVyaWNQb2xpY3koJ2RvY3VtZW50LmNyZWF0ZVRleHRO
b2RlKCJhIikucmVwbGFjZURhdGEoeCwgMCwgImIiKScpIGlzICdhbnkgdHlwZSBhbGxvd2VkJwog
UEFTUyBub25OdW1lcmljUG9saWN5KCdkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiYSIpLnJlcGxh
Y2VEYXRhKDAsIHgsICJiIiknKSBpcyAnYW55IHR5cGUgYWxsb3dlZCcKLVBBU1Mgbm9uTnVtZXJp
Y1BvbGljeSgnY3JlYXRlQ1NTTWVkaWFSdWxlKCkuaW5zZXJ0UnVsZShydWxlVGV4dCwgeCknKSBp
cyAnYW55IHR5cGUgYWxsb3dlZCcKLVBBU1Mgbm9uTnVtZXJpY1BvbGljeSgnY3JlYXRlQ1NTTWVk
aWFSdWxlKCkuZGVsZXRlUnVsZSh4KScpIGlzICdhbnkgdHlwZSBhbGxvd2VkJwotUEFTUyBub25O
dW1lcmljUG9saWN5KCdjcmVhdGVDU1NSdWxlTGlzdCgpLml0ZW0oeCknKSBpcyAnYW55IHR5cGUg
YWxsb3dlZCcKLVBBU1Mgbm9uTnVtZXJpY1BvbGljeSgnY3JlYXRlQ1NTU3R5bGVEZWNsYXJhdGlv
bigpLml0ZW0oeCknKSBpcyAnYW55IHR5cGUgYWxsb3dlZCcKLVBBU1Mgbm9uTnVtZXJpY1BvbGlj
eSgnY3JlYXRlQ1NTU3R5bGVTaGVldCgpLmluc2VydFJ1bGUocnVsZVRleHQsIHgpJykgaXMgJ2Fu
eSB0eXBlIGFsbG93ZWQnCi1QQVNTIG5vbk51bWVyaWNQb2xpY3koJ2NyZWF0ZUNTU1N0eWxlU2hl
ZXQoKS5kZWxldGVSdWxlKHgpJykgaXMgJ2FueSB0eXBlIGFsbG93ZWQnCitQQVNTIG5vbk51bWVy
aWNQb2xpY3koJ2NyZWF0ZUNTU01lZGlhUnVsZSgpLmluc2VydFJ1bGUocnVsZVRleHQsIHgpJykg
aXMgJ2FueSB0eXBlIGFsbG93ZWQgKGJ1dCBub3Qgb21pdHRlZCknCitQQVNTIG5vbk51bWVyaWNQ
b2xpY3koJ2NyZWF0ZUNTU01lZGlhUnVsZSgpLmRlbGV0ZVJ1bGUoeCknKSBpcyAnYW55IHR5cGUg
YWxsb3dlZCAoYnV0IG5vdCBvbWl0dGVkKScKK1BBU1Mgbm9uTnVtZXJpY1BvbGljeSgnY3JlYXRl
Q1NTUnVsZUxpc3QoKS5pdGVtKHgpJykgaXMgJ2FueSB0eXBlIGFsbG93ZWQgKGJ1dCBub3Qgb21p
dHRlZCknCitQQVNTIG5vbk51bWVyaWNQb2xpY3koJ2NyZWF0ZUNTU1N0eWxlRGVjbGFyYXRpb24o
KS5pdGVtKHgpJykgaXMgJ2FueSB0eXBlIGFsbG93ZWQgKGJ1dCBub3Qgb21pdHRlZCknCitQQVNT
IG5vbk51bWVyaWNQb2xpY3koJ2NyZWF0ZUNTU1N0eWxlU2hlZXQoKS5pbnNlcnRSdWxlKHJ1bGVU
ZXh0LCB4KScpIGlzICdhbnkgdHlwZSBhbGxvd2VkIChidXQgbm90IG9taXR0ZWQpJworUEFTUyBu
b25OdW1lcmljUG9saWN5KCdjcmVhdGVDU1NTdHlsZVNoZWV0KCkuZGVsZXRlUnVsZSh4KScpIGlz
ICdhbnkgdHlwZSBhbGxvd2VkIChidXQgbm90IG9taXR0ZWQpJwogUEFTUyBub25OdW1lcmljUG9s
aWN5KCdjcmVhdGVDU1NTdHlsZVNoZWV0KCkuYWRkUnVsZShzZWxlY3Rvciwgc3R5bGVUZXh0LCB4
KScpIGlzICdhbnkgdHlwZSBhbGxvd2VkJwotUEFTUyBub25OdW1lcmljUG9saWN5KCdjcmVhdGVD
U1NTdHlsZVNoZWV0KCkucmVtb3ZlUnVsZSh4KScpIGlzICdhbnkgdHlwZSBhbGxvd2VkJwotUEFT
UyBub25OdW1lcmljUG9saWN5KCdjcmVhdGVDU1NWYWx1ZUxpc3QoKS5pdGVtKHgpJykgaXMgJ2Fu
eSB0eXBlIGFsbG93ZWQnCitQQVNTIG5vbk51bWVyaWNQb2xpY3koJ2NyZWF0ZUNTU1N0eWxlU2hl
ZXQoKS5yZW1vdmVSdWxlKHgpJykgaXMgJ2FueSB0eXBlIGFsbG93ZWQgKGJ1dCBub3Qgb21pdHRl
ZCknCitQQVNTIG5vbk51bWVyaWNQb2xpY3koJ2NyZWF0ZUNTU1ZhbHVlTGlzdCgpLml0ZW0oeCkn
KSBpcyAnYW55IHR5cGUgYWxsb3dlZCAoYnV0IG5vdCBvbWl0dGVkKScKIFBBU1Mgbm9uTnVtZXJp
Y1BvbGljeSgnZG9jdW1lbnQuZWxlbWVudEZyb21Qb2ludCh4LCAwKScpIGlzICdhbnkgdHlwZSBh
bGxvd2VkJwotUEFTUyBub25OdW1lcmljUG9saWN5KCdkb2N1bWVudC5lbGVtZW50RnJvbVBvaW50
KDAsIHgpJykgaXMgJ2FueSB0eXBlIGFsbG93ZWQnCi1QQVNTIG5vbk51bWVyaWNQb2xpY3koJ2Rv
Y3VtZW50LmJvZHkuc2Nyb2xsQnlMaW5lcyh4KScpIGlzICdhbnkgdHlwZSBhbGxvd2VkJwotUEFT
UyBub25OdW1lcmljUG9saWN5KCdkb2N1bWVudC5ib2R5LnNjcm9sbEJ5UGFnZXMoeCknKSBpcyAn
YW55IHR5cGUgYWxsb3dlZCcKK1BBU1Mgbm9uTnVtZXJpY1BvbGljeSgnZG9jdW1lbnQuZWxlbWVu
dEZyb21Qb2ludCgwLCB4KScpIGlzICdhbnkgdHlwZSBhbGxvd2VkIChidXQgbm90IG9taXR0ZWQp
JworUEFTUyBub25OdW1lcmljUG9saWN5KCdkb2N1bWVudC5ib2R5LnNjcm9sbEJ5TGluZXMoeCkn
KSBpcyAnYW55IHR5cGUgYWxsb3dlZCAoYnV0IG5vdCBvbWl0dGVkKScKK1BBU1Mgbm9uTnVtZXJp
Y1BvbGljeSgnZG9jdW1lbnQuYm9keS5zY3JvbGxCeVBhZ2VzKHgpJykgaXMgJ2FueSB0eXBlIGFs
bG93ZWQgKGJ1dCBub3Qgb21pdHRlZCknCiBQQVNTIG5vbk51bWVyaWNQb2xpY3koJ2RvY3VtZW50
LmJvZHkuc2Nyb2xsTGVmdCA9IHgnKSBpcyAnYW55IHR5cGUgYWxsb3dlZCcKIFBBU1Mgbm9uTnVt
ZXJpY1BvbGljeSgnZG9jdW1lbnQuYm9keS5zY3JvbGxUb3AgPSB4JykgaXMgJ2FueSB0eXBlIGFs
bG93ZWQnCiBQQVNTIG5vbk51bWVyaWNQb2xpY3koJ2RvY3VtZW50LmltYWdlcy5pdGVtKHgpJykg
aXMgJ2FueSB0eXBlIGFsbG93ZWQnCkBAIC0zMCw1NyArMzAsNTcgQEAgUEFTUyBub25OdW1lcmlj
UG9saWN5KCdkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpLnNldFNlbGVjdGlvblJhbmdl
KHgsIDApJykKIFBBU1Mgbm9uTnVtZXJpY1BvbGljeSgnZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
aW5wdXQiKS5zZXRTZWxlY3Rpb25SYW5nZSgwLCB4KScpIGlzICdhbnkgdHlwZSBhbGxvd2VkJwog
UEFTUyBub25OdW1lcmljUG9saWN5KCdjcmVhdGVIVE1MT3B0aW9uc0NvbGxlY3Rpb24oKS5hZGQo
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgib3B0aW9uIiksIHgpJykgaXMgJ251bWJlciBvciBudWxs
IGFsbG93ZWQgKG9yIG9taXR0ZWQsIGJ1dCBub3QgaW5maW5pdGUpJwogUEFTUyBub25OdW1lcmlj
UG9saWN5KCdjcmVhdGVIVE1MT3B0aW9uc0NvbGxlY3Rpb24oKS5yZW1vdmUoeCknKSBpcyAnYW55
IHR5cGUgYWxsb3dlZCcKLVBBU1Mgbm9uTnVtZXJpY1BvbGljeSgnY3JlYXRlSFRNTFNlbGVjdEVs
ZW1lbnQoKS5yZW1vdmUoeCknKSBpcyAnYW55IHR5cGUgYWxsb3dlZCcKLVBBU1Mgbm9uTnVtZXJp
Y1BvbGljeSgnY3JlYXRlSFRNTFNlbGVjdEVsZW1lbnQoKS5pdGVtKHgpJykgaXMgJ2FueSB0eXBl
IGFsbG93ZWQnCi1QQVNTIG5vbk51bWVyaWNQb2xpY3koJ2NyZWF0ZUhUTUxUYWJsZUVsZW1lbnQo
KS5pbnNlcnRSb3coeCknKSBpcyAnYW55IHR5cGUgYWxsb3dlZCcKLVBBU1Mgbm9uTnVtZXJpY1Bv
bGljeSgnY3JlYXRlSFRNTFRhYmxlRWxlbWVudCgpLmRlbGV0ZVJvdyh4KScpIGlzICdhbnkgdHlw
ZSBhbGxvd2VkJwotUEFTUyBub25OdW1lcmljUG9saWN5KCdjcmVhdGVIVE1MVGFibGVSb3dFbGVt
ZW50KCkuaW5zZXJ0Q2VsbCh4KScpIGlzICdhbnkgdHlwZSBhbGxvd2VkJwotUEFTUyBub25OdW1l
cmljUG9saWN5KCdjcmVhdGVIVE1MVGFibGVSb3dFbGVtZW50KCkuZGVsZXRlQ2VsbCh4KScpIGlz
ICdhbnkgdHlwZSBhbGxvd2VkJwotUEFTUyBub25OdW1lcmljUG9saWN5KCdjcmVhdGVIVE1MVGFi
bGVTZWN0aW9uRWxlbWVudCgpLmluc2VydFJvdyh4KScpIGlzICdhbnkgdHlwZSBhbGxvd2VkJwot
UEFTUyBub25OdW1lcmljUG9saWN5KCdjcmVhdGVIVE1MVGFibGVTZWN0aW9uRWxlbWVudCgpLmRl
bGV0ZVJvdyh4KScpIGlzICdhbnkgdHlwZSBhbGxvd2VkJworRkFJTCBub25OdW1lcmljUG9saWN5
KCdjcmVhdGVIVE1MU2VsZWN0RWxlbWVudCgpLnJlbW92ZSh4KScpIHNob3VsZCBiZSBhbnkgdHlw
ZSBhbGxvd2VkIChidXQgbm90IG9taXR0ZWQpLiBXYXMgYW55IHR5cGUgYWxsb3dlZC4KK1BBU1Mg
bm9uTnVtZXJpY1BvbGljeSgnY3JlYXRlSFRNTFNlbGVjdEVsZW1lbnQoKS5pdGVtKHgpJykgaXMg
J2FueSB0eXBlIGFsbG93ZWQgKGJ1dCBub3Qgb21pdHRlZCknCitQQVNTIG5vbk51bWVyaWNQb2xp
Y3koJ2NyZWF0ZUhUTUxUYWJsZUVsZW1lbnQoKS5pbnNlcnRSb3coeCknKSBpcyAnYW55IHR5cGUg
YWxsb3dlZCAoYnV0IG5vdCBvbWl0dGVkKScKK1BBU1Mgbm9uTnVtZXJpY1BvbGljeSgnY3JlYXRl
SFRNTFRhYmxlRWxlbWVudCgpLmRlbGV0ZVJvdyh4KScpIGlzICdhbnkgdHlwZSBhbGxvd2VkIChi
dXQgbm90IG9taXR0ZWQpJworUEFTUyBub25OdW1lcmljUG9saWN5KCdjcmVhdGVIVE1MVGFibGVS
b3dFbGVtZW50KCkuaW5zZXJ0Q2VsbCh4KScpIGlzICdhbnkgdHlwZSBhbGxvd2VkIChidXQgbm90
IG9taXR0ZWQpJworUEFTUyBub25OdW1lcmljUG9saWN5KCdjcmVhdGVIVE1MVGFibGVSb3dFbGVt
ZW50KCkuZGVsZXRlQ2VsbCh4KScpIGlzICdhbnkgdHlwZSBhbGxvd2VkIChidXQgbm90IG9taXR0
ZWQpJworUEFTUyBub25OdW1lcmljUG9saWN5KCdjcmVhdGVIVE1MVGFibGVTZWN0aW9uRWxlbWVu
dCgpLmluc2VydFJvdyh4KScpIGlzICdhbnkgdHlwZSBhbGxvd2VkIChidXQgbm90IG9taXR0ZWQp
JworUEFTUyBub25OdW1lcmljUG9saWN5KCdjcmVhdGVIVE1MVGFibGVTZWN0aW9uRWxlbWVudCgp
LmRlbGV0ZVJvdyh4KScpIGlzICdhbnkgdHlwZSBhbGxvd2VkIChidXQgbm90IG9taXR0ZWQpJwog
UEFTUyBub25OdW1lcmljUG9saWN5KCdkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ZXh0YXJlYSIp
LnNldFNlbGVjdGlvblJhbmdlKHgsIDApJykgaXMgJ2FueSB0eXBlIGFsbG93ZWQnCi1QQVNTIG5v
bk51bWVyaWNQb2xpY3koJ2RvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRleHRhcmVhIikuc2V0U2Vs
ZWN0aW9uUmFuZ2UoMCwgeCknKSBpcyAnYW55IHR5cGUgYWxsb3dlZCcKK1BBU1Mgbm9uTnVtZXJp
Y1BvbGljeSgnZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGV4dGFyZWEiKS5zZXRTZWxlY3Rpb25S
YW5nZSgwLCB4KScpIGlzICdhbnkgdHlwZSBhbGxvd2VkIChidXQgbm90IG9taXR0ZWQpJwogUEFT
UyBub25OdW1lcmljUG9saWN5KCdkb2N1bWVudC5jcmVhdGVFdmVudCgiS2V5Ym9hcmRFdmVudCIp
LmluaXRLZXlib2FyZEV2ZW50KCJhIiwgZmFsc2UsIGZhbHNlLCBudWxsLCAiYiIsIHgsIGZhbHNl
LCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSknKSBpcyAnYW55IHR5cGUgYWxsb3dlZCcKLVBB
U1Mgbm9uTnVtZXJpY1BvbGljeSgnY3JlYXRlTWVkaWFMaXN0KCkuaXRlbSh4KScpIGlzICdhbnkg
dHlwZSBhbGxvd2VkJworUEFTUyBub25OdW1lcmljUG9saWN5KCdjcmVhdGVNZWRpYUxpc3QoKS5p
dGVtKHgpJykgaXMgJ2FueSB0eXBlIGFsbG93ZWQgKGJ1dCBub3Qgb21pdHRlZCknCiBQQVNTIG5v
bk51bWVyaWNQb2xpY3koJ2RvY3VtZW50LmNyZWF0ZUV2ZW50KCJNb3VzZUV2ZW50IikuaW5pdE1v
dXNlRXZlbnQoImEiLCBmYWxzZSwgZmFsc2UsIG51bGwsIHgsIDAsIDAsIDAsIDAsIGZhbHNlLCBm
YWxzZSwgZmFsc2UsIGZhbHNlLCAwLCBudWxsKScpIGlzICdhbnkgdHlwZSBhbGxvd2VkJwogUEFT
UyBub25OdW1lcmljUG9saWN5KCdkb2N1bWVudC5jcmVhdGVFdmVudCgiTW91c2VFdmVudCIpLmlu
aXRNb3VzZUV2ZW50KCJhIiwgZmFsc2UsIGZhbHNlLCBudWxsLCAwLCB4LCAwLCAwLCAwLCBmYWxz
ZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgMCwgbnVsbCknKSBpcyAnYW55IHR5cGUgYWxsb3dlZCcK
IFBBU1Mgbm9uTnVtZXJpY1BvbGljeSgnZG9jdW1lbnQuY3JlYXRlRXZlbnQoIk1vdXNlRXZlbnQi
KS5pbml0TW91c2VFdmVudCgiYSIsIGZhbHNlLCBmYWxzZSwgbnVsbCwgMCwgMCwgeCwgMCwgMCwg
ZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIDAsIG51bGwpJykgaXMgJ2FueSB0eXBlIGFsbG93
ZWQnCiBQQVNTIG5vbk51bWVyaWNQb2xpY3koJ2RvY3VtZW50LmNyZWF0ZUV2ZW50KCJNb3VzZUV2
ZW50IikuaW5pdE1vdXNlRXZlbnQoImEiLCBmYWxzZSwgZmFsc2UsIG51bGwsIDAsIDAsIDAsIHgs
IDAsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCAwLCBudWxsKScpIGlzICdhbnkgdHlwZSBh
bGxvd2VkJwogUEFTUyBub25OdW1lcmljUG9saWN5KCdkb2N1bWVudC5jcmVhdGVFdmVudCgiTW91
c2VFdmVudCIpLmluaXRNb3VzZUV2ZW50KCJhIiwgZmFsc2UsIGZhbHNlLCBudWxsLCAwLCAwLCAw
LCAwLCB4LCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgMCwgbnVsbCknKSBpcyAnYW55IHR5
cGUgYWxsb3dlZCcKIFBBU1Mgbm9uTnVtZXJpY1BvbGljeSgnZG9jdW1lbnQuY3JlYXRlRXZlbnQo
Ik1vdXNlRXZlbnQiKS5pbml0TW91c2VFdmVudCgiYSIsIGZhbHNlLCBmYWxzZSwgbnVsbCwgMCwg
MCwgMCwgMCwgMCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIHgsIG51bGwpJykgaXMgJ2Fu
eSB0eXBlIGFsbG93ZWQnCi1QQVNTIG5vbk51bWVyaWNQb2xpY3koJ2RvY3VtZW50LmJvZHkuYXR0
cmlidXRlcy5pdGVtKHgpJykgaXMgJ2FueSB0eXBlIGFsbG93ZWQnCitQQVNTIG5vbk51bWVyaWNQ
b2xpY3koJ2RvY3VtZW50LmJvZHkuYXR0cmlidXRlcy5pdGVtKHgpJykgaXMgJ2FueSB0eXBlIGFs
bG93ZWQgKGJ1dCBub3Qgb21pdHRlZCknCiBQQVNTIG5vbk51bWVyaWNQb2xpY3koJ2RvY3VtZW50
LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N1bWVudCwgeCwgbnVsbCwgZmFsc2UpJykgaXMgJ2FueSB0
eXBlIGFsbG93ZWQnCi1QQVNTIG5vbk51bWVyaWNQb2xpY3koJ2RvY3VtZW50LmdldEVsZW1lbnRz
QnlUYWdOYW1lKCJkaXYiKS5pdGVtKHgpJykgaXMgJ2FueSB0eXBlIGFsbG93ZWQnCitQQVNTIG5v
bk51bWVyaWNQb2xpY3koJ2RvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJkaXYiKS5pdGVt
KHgpJykgaXMgJ2FueSB0eXBlIGFsbG93ZWQgKGJ1dCBub3Qgb21pdHRlZCknCiBQQVNTIG5vbk51
bWVyaWNQb2xpY3koJ2RvY3VtZW50LmNyZWF0ZUV2ZW50KCJQcm9ncmVzc0V2ZW50IikuaW5pdFBy
b2dyZXNzRXZlbnQoImEiLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCB4LCAwKScpIGlzICdhbnkgdHlw
ZSBhbGxvd2VkJwotUEFTUyBub25OdW1lcmljUG9saWN5KCdkb2N1bWVudC5jcmVhdGVFdmVudCgi
UHJvZ3Jlc3NFdmVudCIpLmluaXRQcm9ncmVzc0V2ZW50KCJhIiwgZmFsc2UsIGZhbHNlLCBmYWxz
ZSwgMCwgeCknKSBpcyAnYW55IHR5cGUgYWxsb3dlZCcKLVBBU1Mgbm9uTnVtZXJpY1BvbGljeSgn
ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKS5zZXRTdGFydChkb2N1bWVudCwgeCknKSBpcyAnYW55IHR5
cGUgYWxsb3dlZCcKLVBBU1Mgbm9uTnVtZXJpY1BvbGljeSgnZG9jdW1lbnQuY3JlYXRlUmFuZ2Uo
KS5zZXRFbmQoZG9jdW1lbnQsIHgpJykgaXMgJ2FueSB0eXBlIGFsbG93ZWQnCi1QQVNTIG5vbk51
bWVyaWNQb2xpY3koJ2RvY3VtZW50LmNyZWF0ZVJhbmdlKCkuY29tcGFyZVBvaW50KGRvY3VtZW50
LCB4KScpIGlzICdhbnkgdHlwZSBhbGxvd2VkJwotUEFTUyBub25OdW1lcmljUG9saWN5KCdkb2N1
bWVudC5jcmVhdGVSYW5nZSgpLmlzUG9pbnRJblJhbmdlKGRvY3VtZW50LCB4KScpIGlzICdhbnkg
dHlwZSBhbGxvd2VkJwotUEFTUyBub25OdW1lcmljUG9saWN5KCdnZXRTZWxlY3Rpb24oKS5jb2xs
YXBzZShkb2N1bWVudCwgeCknKSBpcyAnYW55IHR5cGUgYWxsb3dlZCcKK1BBU1Mgbm9uTnVtZXJp
Y1BvbGljeSgnZG9jdW1lbnQuY3JlYXRlRXZlbnQoIlByb2dyZXNzRXZlbnQiKS5pbml0UHJvZ3Jl
c3NFdmVudCgiYSIsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIDAsIHgpJykgaXMgJ2FueSB0eXBlIGFs
bG93ZWQgKGJ1dCBub3Qgb21pdHRlZCknCitQQVNTIG5vbk51bWVyaWNQb2xpY3koJ2RvY3VtZW50
LmNyZWF0ZVJhbmdlKCkuc2V0U3RhcnQoZG9jdW1lbnQsIHgpJykgaXMgJ2FueSB0eXBlIGFsbG93
ZWQgKGJ1dCBub3Qgb21pdHRlZCknCitQQVNTIG5vbk51bWVyaWNQb2xpY3koJ2RvY3VtZW50LmNy
ZWF0ZVJhbmdlKCkuc2V0RW5kKGRvY3VtZW50LCB4KScpIGlzICdhbnkgdHlwZSBhbGxvd2VkIChi
dXQgbm90IG9taXR0ZWQpJworUEFTUyBub25OdW1lcmljUG9saWN5KCdkb2N1bWVudC5jcmVhdGVS
YW5nZSgpLmNvbXBhcmVQb2ludChkb2N1bWVudCwgeCknKSBpcyAnYW55IHR5cGUgYWxsb3dlZCAo
YnV0IG5vdCBvbWl0dGVkKScKK1BBU1Mgbm9uTnVtZXJpY1BvbGljeSgnZG9jdW1lbnQuY3JlYXRl
UmFuZ2UoKS5pc1BvaW50SW5SYW5nZShkb2N1bWVudCwgeCknKSBpcyAnYW55IHR5cGUgYWxsb3dl
ZCAoYnV0IG5vdCBvbWl0dGVkKScKK1BBU1Mgbm9uTnVtZXJpY1BvbGljeSgnZ2V0U2VsZWN0aW9u
KCkuY29sbGFwc2UoZG9jdW1lbnQsIHgpJykgaXMgJ2FueSB0eXBlIGFsbG93ZWQgKGJ1dCBub3Qg
b21pdHRlZCknCiBQQVNTIG5vbk51bWVyaWNQb2xpY3koJ2dldFNlbGVjdGlvbigpLnNldEJhc2VB
bmRFeHRlbnQoZG9jdW1lbnQsIHgsIGRvY3VtZW50LCAwKScpIGlzICdhbnkgdHlwZSBhbGxvd2Vk
JwotUEFTUyBub25OdW1lcmljUG9saWN5KCdnZXRTZWxlY3Rpb24oKS5zZXRCYXNlQW5kRXh0ZW50
KGRvY3VtZW50LCAwLCBkb2N1bWVudCwgeCknKSBpcyAnYW55IHR5cGUgYWxsb3dlZCcKLVBBU1Mg
bm9uTnVtZXJpY1BvbGljeSgnZ2V0U2VsZWN0aW9uKCkuc2V0UG9zaXRpb24oZG9jdW1lbnQsIHgp
JykgaXMgJ2FueSB0eXBlIGFsbG93ZWQnCi1QQVNTIG5vbk51bWVyaWNQb2xpY3koJ2dldFNlbGVj
dGlvbigpLmV4dGVuZChkb2N1bWVudCwgeCknKSBpcyAnYW55IHR5cGUgYWxsb3dlZCcKLVBBU1Mg
bm9uTnVtZXJpY1BvbGljeSgnZ2V0U2VsZWN0aW9uKCkuZ2V0UmFuZ2VBdCh4KScpIGlzICdhbnkg
dHlwZSBhbGxvd2VkJwotUEFTUyBub25OdW1lcmljUG9saWN5KCdkb2N1bWVudC5zdHlsZVNoZWV0
cy5pdGVtKHgpJykgaXMgJ2FueSB0eXBlIGFsbG93ZWQnCi1QQVNTIG5vbk51bWVyaWNQb2xpY3ko
J2RvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJhIikuc3BsaXRUZXh0KHgpJykgaXMgJ2FueSB0eXBl
IGFsbG93ZWQnCitQQVNTIG5vbk51bWVyaWNQb2xpY3koJ2dldFNlbGVjdGlvbigpLnNldEJhc2VB
bmRFeHRlbnQoZG9jdW1lbnQsIDAsIGRvY3VtZW50LCB4KScpIGlzICdhbnkgdHlwZSBhbGxvd2Vk
IChidXQgbm90IG9taXR0ZWQpJworUEFTUyBub25OdW1lcmljUG9saWN5KCdnZXRTZWxlY3Rpb24o
KS5zZXRQb3NpdGlvbihkb2N1bWVudCwgeCknKSBpcyAnYW55IHR5cGUgYWxsb3dlZCAoYnV0IG5v
dCBvbWl0dGVkKScKK1BBU1Mgbm9uTnVtZXJpY1BvbGljeSgnZ2V0U2VsZWN0aW9uKCkuZXh0ZW5k
KGRvY3VtZW50LCB4KScpIGlzICdhbnkgdHlwZSBhbGxvd2VkIChidXQgbm90IG9taXR0ZWQpJwor
UEFTUyBub25OdW1lcmljUG9saWN5KCdnZXRTZWxlY3Rpb24oKS5nZXRSYW5nZUF0KHgpJykgaXMg
J2FueSB0eXBlIGFsbG93ZWQgKGJ1dCBub3Qgb21pdHRlZCknCitQQVNTIG5vbk51bWVyaWNQb2xp
Y3koJ2RvY3VtZW50LnN0eWxlU2hlZXRzLml0ZW0oeCknKSBpcyAnYW55IHR5cGUgYWxsb3dlZCAo
YnV0IG5vdCBvbWl0dGVkKScKK1BBU1Mgbm9uTnVtZXJpY1BvbGljeSgnZG9jdW1lbnQuY3JlYXRl
VGV4dE5vZGUoImEiKS5zcGxpdFRleHQoeCknKSBpcyAnYW55IHR5cGUgYWxsb3dlZCAoYnV0IG5v
dCBvbWl0dGVkKScKIFBBU1Mgbm9uTnVtZXJpY1BvbGljeSgnZG9jdW1lbnQuY3JlYXRlVHJlZVdh
bGtlcihkb2N1bWVudCwgeCwgbnVsbCwgZmFsc2UpJykgaXMgJ2FueSB0eXBlIGFsbG93ZWQnCi1Q
QVNTIG5vbk51bWVyaWNQb2xpY3koJ2RvY3VtZW50LmNyZWF0ZUV2ZW50KCJVSUV2ZW50IikuaW5p
dFVJRXZlbnQoImEiLCBmYWxzZSwgZmFsc2UsIG51bGwsIHgpJykgaXMgJ2FueSB0eXBlIGFsbG93
ZWQnCitQQVNTIG5vbk51bWVyaWNQb2xpY3koJ2RvY3VtZW50LmNyZWF0ZUV2ZW50KCJVSUV2ZW50
IikuaW5pdFVJRXZlbnQoImEiLCBmYWxzZSwgZmFsc2UsIG51bGwsIHgpJykgaXMgJ2FueSB0eXBl
IGFsbG93ZWQgKGJ1dCBub3Qgb21pdHRlZCknCiBQQVNTIG5vbk51bWVyaWNQb2xpY3koJ3dpbmRv
dy5zY3JvbGxCeSh4LCAwKScpIGlzICdhbnkgdHlwZSBhbGxvd2VkJwotUEFTUyBub25OdW1lcmlj
UG9saWN5KCd3aW5kb3cuc2Nyb2xsQnkoMCwgeCknKSBpcyAnYW55IHR5cGUgYWxsb3dlZCcKK1BB
U1Mgbm9uTnVtZXJpY1BvbGljeSgnd2luZG93LnNjcm9sbEJ5KDAsIHgpJykgaXMgJ2FueSB0eXBl
IGFsbG93ZWQgKGJ1dCBub3Qgb21pdHRlZCknCiBQQVNTIG5vbk51bWVyaWNQb2xpY3koJ3dpbmRv
dy5zY3JvbGxUbyh4LCAwKScpIGlzICdhbnkgdHlwZSBhbGxvd2VkJwotUEFTUyBub25OdW1lcmlj
UG9saWN5KCd3aW5kb3cuc2Nyb2xsVG8oMCwgeCknKSBpcyAnYW55IHR5cGUgYWxsb3dlZCcKK1BB
U1Mgbm9uTnVtZXJpY1BvbGljeSgnd2luZG93LnNjcm9sbFRvKDAsIHgpJykgaXMgJ2FueSB0eXBl
IGFsbG93ZWQgKGJ1dCBub3Qgb21pdHRlZCknCiBQQVNTIG5vbk51bWVyaWNQb2xpY3koJ3dpbmRv
dy5zY3JvbGwoeCwgMCknKSBpcyAnYW55IHR5cGUgYWxsb3dlZCcKLVBBU1Mgbm9uTnVtZXJpY1Bv
bGljeSgnd2luZG93LnNjcm9sbCgwLCB4KScpIGlzICdhbnkgdHlwZSBhbGxvd2VkJworUEFTUyBu
b25OdW1lcmljUG9saWN5KCd3aW5kb3cuc2Nyb2xsKDAsIHgpJykgaXMgJ2FueSB0eXBlIGFsbG93
ZWQgKGJ1dCBub3Qgb21pdHRlZCknCiBQQVNTIG5vbk51bWVyaWNQb2xpY3koJ3dpbmRvdy5tb3Zl
QnkoeCwgMCknKSBpcyAnYW55IHR5cGUgYWxsb3dlZCcKLVBBU1Mgbm9uTnVtZXJpY1BvbGljeSgn
d2luZG93Lm1vdmVCeSgwLCB4KScpIGlzICdhbnkgdHlwZSBhbGxvd2VkJworUEFTUyBub25OdW1l
cmljUG9saWN5KCd3aW5kb3cubW92ZUJ5KDAsIHgpJykgaXMgJ2FueSB0eXBlIGFsbG93ZWQgKGJ1
dCBub3Qgb21pdHRlZCknCiBQQVNTIG5vbk51bWVyaWNQb2xpY3koJ3dpbmRvdy5tb3ZlVG8oeCwg
MCknKSBpcyAnYW55IHR5cGUgYWxsb3dlZCcKLVBBU1Mgbm9uTnVtZXJpY1BvbGljeSgnd2luZG93
Lm1vdmVUbygwLCB4KScpIGlzICdhbnkgdHlwZSBhbGxvd2VkJworUEFTUyBub25OdW1lcmljUG9s
aWN5KCd3aW5kb3cubW92ZVRvKDAsIHgpJykgaXMgJ2FueSB0eXBlIGFsbG93ZWQgKGJ1dCBub3Qg
b21pdHRlZCknCiBQQVNTIG5vbk51bWVyaWNQb2xpY3koJ3dpbmRvdy5yZXNpemVCeSh4LCAwKScp
IGlzICdhbnkgdHlwZSBhbGxvd2VkJwotUEFTUyBub25OdW1lcmljUG9saWN5KCd3aW5kb3cucmVz
aXplQnkoMCwgeCknKSBpcyAnYW55IHR5cGUgYWxsb3dlZCcKK1BBU1Mgbm9uTnVtZXJpY1BvbGlj
eSgnd2luZG93LnJlc2l6ZUJ5KDAsIHgpJykgaXMgJ2FueSB0eXBlIGFsbG93ZWQgKGJ1dCBub3Qg
b21pdHRlZCknCiBQQVNTIG5vbk51bWVyaWNQb2xpY3koJ3dpbmRvdy5yZXNpemVUbyh4LCAwKScp
IGlzICdhbnkgdHlwZSBhbGxvd2VkJwotUEFTUyBub25OdW1lcmljUG9saWN5KCd3aW5kb3cucmVz
aXplVG8oMCwgeCknKSBpcyAnYW55IHR5cGUgYWxsb3dlZCcKK1BBU1Mgbm9uTnVtZXJpY1BvbGlj
eSgnd2luZG93LnJlc2l6ZVRvKDAsIHgpJykgaXMgJ2FueSB0eXBlIGFsbG93ZWQgKGJ1dCBub3Qg
b21pdHRlZCknCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExF
VEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL251bGwtY2hhcmRhdGEtY3Jhc2gu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL251bGwtY2hhcmRhdGEtY3Jhc2guaHRtbAppbmRl
eCBiMDg4NTdmLi43MDQ5ZGUzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9udWxs
LWNoYXJkYXRhLWNyYXNoLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vbnVsbC1jaGFy
ZGF0YS1jcmFzaC5odG1sCkBAIC01LDcgKzUsNyBAQAogICAgIGlmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpCiAgICAgICB3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4
dCgpOwogCi0gICAgdmFyIG8gPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgpOworICAgIHZhciBv
ID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobnVsbCk7CiAgICAgdHJ5IHsKICAgICAgIG8uZGF0
YSA9IG51bGw7CiAgICAgICBvLnNwbGl0VGV4dCgxKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL3NjcmlwdC10ZXN0cy9kb21MaXN0RW51bWVyYXRpb24uanMgYi9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9zY3JpcHQtdGVzdHMvZG9tTGlzdEVudW1lcmF0aW9uLmpzCmluZGV4IGQzYTA0
NDkuLmM0ZjMzODMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NjcmlwdC10ZXN0
cy9kb21MaXN0RW51bWVyYXRpb24uanMKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2NyaXB0
LXRlc3RzL2RvbUxpc3RFbnVtZXJhdGlvbi5qcwpAQCAtMTg0LDcgKzE4NCw3IEBAIHNob3VsZEJl
KCJyZXN1bHRBcnJheVsyXS5pIiwgIicyJyIpOwogc2hvdWxkQmUoInJlc3VsdEFycmF5WzJdLml0
ZW0iLCAiY3NzU3R5bGVEZWNsYXJhdGlvbi5pdGVtKDIpIik7CiAKIC8vIENTU1ZhbHVlTGlzdAot
dmFyIGNzc1ZhbHVlTGlzdCA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVs
ZW1lbnRzQnlUYWdOYW1lKCdvbCcpWzBdKS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKCdib3JkZXItc3Bh
Y2luZycpOwordmFyIGNzc1ZhbHVlTGlzdCA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3Vt
ZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdvbCcpWzBdLCBudWxsKS5nZXRQcm9wZXJ0eUNTU1Zh
bHVlKCdib3JkZXItc3BhY2luZycpOwogcmVzdWx0QXJyYXkgPSBpdGVyYXRlTGlzdChjc3NWYWx1
ZUxpc3QpOwogc2hvdWxkQmUoInJlc3VsdEFycmF5Lmxlbmd0aCIsICIxMCIpOwogc2hvdWxkQmUo
InJlc3VsdEFycmF5WzBdLmkiLCAiJzAnIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9zY3JpcHQtdGVzdHMvbm9uLW51bWVyaWMtdmFsdWVzLW51bWVyaWMtcGFyYW1ldGVycy5q
cyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NjcmlwdC10ZXN0cy9ub24tbnVtZXJpYy12YWx1ZXMt
bnVtZXJpYy1wYXJhbWV0ZXJzLmpzCmluZGV4IDYwZWM3OWUuLmIxZWI1ZGUgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2Zhc3QvZG9tL3NjcmlwdC10ZXN0cy9ub24tbnVtZXJpYy12YWx1ZXMtbnVt
ZXJpYy1wYXJhbWV0ZXJzLmpzCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NjcmlwdC10ZXN0
cy9ub24tbnVtZXJpYy12YWx1ZXMtbnVtZXJpYy1wYXJhbWV0ZXJzLmpzCkBAIC0xODYsNDYgKzE4
Niw0NiBAQCBmdW5jdGlvbiBjcmVhdGVIVE1MVGFibGVSb3dFbGVtZW50KCkKIC8vIENoYXJhY3Rl
ckRhdGEKIAogc2hvdWxkQmUoIm5vbk51bWVyaWNQb2xpY3koJ2RvY3VtZW50LmNyZWF0ZVRleHRO
b2RlKFwiYVwiKS5zdWJzdHJpbmdEYXRhKHgsIDApJykiLCAiJ2FueSB0eXBlIGFsbG93ZWQnIik7
Ci1zaG91bGRCZSgibm9uTnVtZXJpY1BvbGljeSgnZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoXCJh
XCIpLnN1YnN0cmluZ0RhdGEoMCwgeCknKSIsICInYW55IHR5cGUgYWxsb3dlZCciKTsKK3Nob3Vs
ZEJlKCJub25OdW1lcmljUG9saWN5KCdkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShcImFcIikuc3Vi
c3RyaW5nRGF0YSgwLCB4KScpIiwgIidhbnkgdHlwZSBhbGxvd2VkIChidXQgbm90IG9taXR0ZWQp
JyIpOwogc2hvdWxkQmUoIm5vbk51bWVyaWNQb2xpY3koJ2RvY3VtZW50LmNyZWF0ZVRleHROb2Rl
KFwiYVwiKS5pbnNlcnREYXRhKHgsIFwiYlwiKScpIiwgIidhbnkgdHlwZSBhbGxvd2VkJyIpOwog
c2hvdWxkQmUoIm5vbk51bWVyaWNQb2xpY3koJ2RvY3VtZW50LmNyZWF0ZVRleHROb2RlKFwiYVwi
KS5kZWxldGVEYXRhKHgsIDApJykiLCAiJ2FueSB0eXBlIGFsbG93ZWQnIik7Ci1zaG91bGRCZSgi
bm9uTnVtZXJpY1BvbGljeSgnZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoXCJhXCIpLmRlbGV0ZURh
dGEoMCwgeCknKSIsICInYW55IHR5cGUgYWxsb3dlZCciKTsKK3Nob3VsZEJlKCJub25OdW1lcmlj
UG9saWN5KCdkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShcImFcIikuZGVsZXRlRGF0YSgwLCB4KScp
IiwgIidhbnkgdHlwZSBhbGxvd2VkIChidXQgbm90IG9taXR0ZWQpJyIpOwogc2hvdWxkQmUoIm5v
bk51bWVyaWNQb2xpY3koJ2RvY3VtZW50LmNyZWF0ZVRleHROb2RlKFwiYVwiKS5yZXBsYWNlRGF0
YSh4LCAwLCBcImJcIiknKSIsICInYW55IHR5cGUgYWxsb3dlZCciKTsKIHNob3VsZEJlKCJub25O
dW1lcmljUG9saWN5KCdkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShcImFcIikucmVwbGFjZURhdGEo
MCwgeCwgXCJiXCIpJykiLCAiJ2FueSB0eXBlIGFsbG93ZWQnIik7CiAKIC8vIENTU01lZGlhUnVs
ZQogCi1zaG91bGRCZSgibm9uTnVtZXJpY1BvbGljeSgnY3JlYXRlQ1NTTWVkaWFSdWxlKCkuaW5z
ZXJ0UnVsZShydWxlVGV4dCwgeCknKSIsICInYW55IHR5cGUgYWxsb3dlZCciKTsKLXNob3VsZEJl
KCJub25OdW1lcmljUG9saWN5KCdjcmVhdGVDU1NNZWRpYVJ1bGUoKS5kZWxldGVSdWxlKHgpJyki
LCAiJ2FueSB0eXBlIGFsbG93ZWQnIik7CitzaG91bGRCZSgibm9uTnVtZXJpY1BvbGljeSgnY3Jl
YXRlQ1NTTWVkaWFSdWxlKCkuaW5zZXJ0UnVsZShydWxlVGV4dCwgeCknKSIsICInYW55IHR5cGUg
YWxsb3dlZCAoYnV0IG5vdCBvbWl0dGVkKSciKTsKK3Nob3VsZEJlKCJub25OdW1lcmljUG9saWN5
KCdjcmVhdGVDU1NNZWRpYVJ1bGUoKS5kZWxldGVSdWxlKHgpJykiLCAiJ2FueSB0eXBlIGFsbG93
ZWQgKGJ1dCBub3Qgb21pdHRlZCknIik7CiAKIC8vIENTU1J1bGVMaXN0CiAKLXNob3VsZEJlKCJu
b25OdW1lcmljUG9saWN5KCdjcmVhdGVDU1NSdWxlTGlzdCgpLml0ZW0oeCknKSIsICInYW55IHR5
cGUgYWxsb3dlZCciKTsKK3Nob3VsZEJlKCJub25OdW1lcmljUG9saWN5KCdjcmVhdGVDU1NSdWxl
TGlzdCgpLml0ZW0oeCknKSIsICInYW55IHR5cGUgYWxsb3dlZCAoYnV0IG5vdCBvbWl0dGVkKSci
KTsKIAogLy8gQ1NTU3R5bGVEZWNsYXJhdGlvbgogCi1zaG91bGRCZSgibm9uTnVtZXJpY1BvbGlj
eSgnY3JlYXRlQ1NTU3R5bGVEZWNsYXJhdGlvbigpLml0ZW0oeCknKSIsICInYW55IHR5cGUgYWxs
b3dlZCciKTsKK3Nob3VsZEJlKCJub25OdW1lcmljUG9saWN5KCdjcmVhdGVDU1NTdHlsZURlY2xh
cmF0aW9uKCkuaXRlbSh4KScpIiwgIidhbnkgdHlwZSBhbGxvd2VkIChidXQgbm90IG9taXR0ZWQp
JyIpOwogCiAvLyBDU1NTdHlsZVNoZWV0CiAKLXNob3VsZEJlKCJub25OdW1lcmljUG9saWN5KCdj
cmVhdGVDU1NTdHlsZVNoZWV0KCkuaW5zZXJ0UnVsZShydWxlVGV4dCwgeCknKSIsICInYW55IHR5
cGUgYWxsb3dlZCciKTsKLXNob3VsZEJlKCJub25OdW1lcmljUG9saWN5KCdjcmVhdGVDU1NTdHls
ZVNoZWV0KCkuZGVsZXRlUnVsZSh4KScpIiwgIidhbnkgdHlwZSBhbGxvd2VkJyIpOworc2hvdWxk
QmUoIm5vbk51bWVyaWNQb2xpY3koJ2NyZWF0ZUNTU1N0eWxlU2hlZXQoKS5pbnNlcnRSdWxlKHJ1
bGVUZXh0LCB4KScpIiwgIidhbnkgdHlwZSBhbGxvd2VkIChidXQgbm90IG9taXR0ZWQpJyIpOwor
c2hvdWxkQmUoIm5vbk51bWVyaWNQb2xpY3koJ2NyZWF0ZUNTU1N0eWxlU2hlZXQoKS5kZWxldGVS
dWxlKHgpJykiLCAiJ2FueSB0eXBlIGFsbG93ZWQgKGJ1dCBub3Qgb21pdHRlZCknIik7CiBzaG91
bGRCZSgibm9uTnVtZXJpY1BvbGljeSgnY3JlYXRlQ1NTU3R5bGVTaGVldCgpLmFkZFJ1bGUoc2Vs
ZWN0b3IsIHN0eWxlVGV4dCwgeCknKSIsICInYW55IHR5cGUgYWxsb3dlZCciKTsKLXNob3VsZEJl
KCJub25OdW1lcmljUG9saWN5KCdjcmVhdGVDU1NTdHlsZVNoZWV0KCkucmVtb3ZlUnVsZSh4KScp
IiwgIidhbnkgdHlwZSBhbGxvd2VkJyIpOworc2hvdWxkQmUoIm5vbk51bWVyaWNQb2xpY3koJ2Ny
ZWF0ZUNTU1N0eWxlU2hlZXQoKS5yZW1vdmVSdWxlKHgpJykiLCAiJ2FueSB0eXBlIGFsbG93ZWQg
KGJ1dCBub3Qgb21pdHRlZCknIik7CiAKIC8vIENTU1ZhbHVlTGlzdAogCi1zaG91bGRCZSgibm9u
TnVtZXJpY1BvbGljeSgnY3JlYXRlQ1NTVmFsdWVMaXN0KCkuaXRlbSh4KScpIiwgIidhbnkgdHlw
ZSBhbGxvd2VkJyIpOworc2hvdWxkQmUoIm5vbk51bWVyaWNQb2xpY3koJ2NyZWF0ZUNTU1ZhbHVl
TGlzdCgpLml0ZW0oeCknKSIsICInYW55IHR5cGUgYWxsb3dlZCAoYnV0IG5vdCBvbWl0dGVkKSci
KTsKIAogLy8gRG9jdW1lbnQKIAogc2hvdWxkQmUoIm5vbk51bWVyaWNQb2xpY3koJ2RvY3VtZW50
LmVsZW1lbnRGcm9tUG9pbnQoeCwgMCknKSIsICInYW55IHR5cGUgYWxsb3dlZCciKTsKLXNob3Vs
ZEJlKCJub25OdW1lcmljUG9saWN5KCdkb2N1bWVudC5lbGVtZW50RnJvbVBvaW50KDAsIHgpJyki
LCAiJ2FueSB0eXBlIGFsbG93ZWQnIik7CitzaG91bGRCZSgibm9uTnVtZXJpY1BvbGljeSgnZG9j
dW1lbnQuZWxlbWVudEZyb21Qb2ludCgwLCB4KScpIiwgIidhbnkgdHlwZSBhbGxvd2VkIChidXQg
bm90IG9taXR0ZWQpJyIpOwogCiAvLyBFbGVtZW50CiAKLXNob3VsZEJlKCJub25OdW1lcmljUG9s
aWN5KCdkb2N1bWVudC5ib2R5LnNjcm9sbEJ5TGluZXMoeCknKSIsICInYW55IHR5cGUgYWxsb3dl
ZCciKTsKLXNob3VsZEJlKCJub25OdW1lcmljUG9saWN5KCdkb2N1bWVudC5ib2R5LnNjcm9sbEJ5
UGFnZXMoeCknKSIsICInYW55IHR5cGUgYWxsb3dlZCciKTsKK3Nob3VsZEJlKCJub25OdW1lcmlj
UG9saWN5KCdkb2N1bWVudC5ib2R5LnNjcm9sbEJ5TGluZXMoeCknKSIsICInYW55IHR5cGUgYWxs
b3dlZCAoYnV0IG5vdCBvbWl0dGVkKSciKTsKK3Nob3VsZEJlKCJub25OdW1lcmljUG9saWN5KCdk
b2N1bWVudC5ib2R5LnNjcm9sbEJ5UGFnZXMoeCknKSIsICInYW55IHR5cGUgYWxsb3dlZCAoYnV0
IG5vdCBvbWl0dGVkKSciKTsKIHNob3VsZEJlKCJub25OdW1lcmljUG9saWN5KCdkb2N1bWVudC5i
b2R5LnNjcm9sbExlZnQgPSB4JykiLCAiJ2FueSB0eXBlIGFsbG93ZWQnIik7CiBzaG91bGRCZSgi
bm9uTnVtZXJpY1BvbGljeSgnZG9jdW1lbnQuYm9keS5zY3JvbGxUb3AgPSB4JykiLCAiJ2FueSB0
eXBlIGFsbG93ZWQnIik7CiAKQEAgLTI0OSwyOCArMjQ5LDI4IEBAIHNob3VsZEJlKCJub25OdW1l
cmljUG9saWN5KCdjcmVhdGVIVE1MT3B0aW9uc0NvbGxlY3Rpb24oKS5yZW1vdmUoeCknKSIsICIn
YW55IHR5CiAKIC8vIEhUTUxTZWxlY3RFbGVtZW50CiAKLXNob3VsZEJlKCJub25OdW1lcmljUG9s
aWN5KCdjcmVhdGVIVE1MU2VsZWN0RWxlbWVudCgpLnJlbW92ZSh4KScpIiwgIidhbnkgdHlwZSBh
bGxvd2VkJyIpOwotc2hvdWxkQmUoIm5vbk51bWVyaWNQb2xpY3koJ2NyZWF0ZUhUTUxTZWxlY3RF
bGVtZW50KCkuaXRlbSh4KScpIiwgIidhbnkgdHlwZSBhbGxvd2VkJyIpOworc2hvdWxkQmUoIm5v
bk51bWVyaWNQb2xpY3koJ2NyZWF0ZUhUTUxTZWxlY3RFbGVtZW50KCkucmVtb3ZlKHgpJykiLCAi
J2FueSB0eXBlIGFsbG93ZWQgKGJ1dCBub3Qgb21pdHRlZCknIik7CitzaG91bGRCZSgibm9uTnVt
ZXJpY1BvbGljeSgnY3JlYXRlSFRNTFNlbGVjdEVsZW1lbnQoKS5pdGVtKHgpJykiLCAiJ2FueSB0
eXBlIGFsbG93ZWQgKGJ1dCBub3Qgb21pdHRlZCknIik7CiAKIC8vIEhUTUxUYWJsZUVsZW1lbnQK
IAotc2hvdWxkQmUoIm5vbk51bWVyaWNQb2xpY3koJ2NyZWF0ZUhUTUxUYWJsZUVsZW1lbnQoKS5p
bnNlcnRSb3coeCknKSIsICInYW55IHR5cGUgYWxsb3dlZCciKTsKLXNob3VsZEJlKCJub25OdW1l
cmljUG9saWN5KCdjcmVhdGVIVE1MVGFibGVFbGVtZW50KCkuZGVsZXRlUm93KHgpJykiLCAiJ2Fu
eSB0eXBlIGFsbG93ZWQnIik7CitzaG91bGRCZSgibm9uTnVtZXJpY1BvbGljeSgnY3JlYXRlSFRN
TFRhYmxlRWxlbWVudCgpLmluc2VydFJvdyh4KScpIiwgIidhbnkgdHlwZSBhbGxvd2VkIChidXQg
bm90IG9taXR0ZWQpJyIpOworc2hvdWxkQmUoIm5vbk51bWVyaWNQb2xpY3koJ2NyZWF0ZUhUTUxU
YWJsZUVsZW1lbnQoKS5kZWxldGVSb3coeCknKSIsICInYW55IHR5cGUgYWxsb3dlZCAoYnV0IG5v
dCBvbWl0dGVkKSciKTsKIAogLy8gSFRNTFRhYmxlUm93RWxlbWVudAogCi1zaG91bGRCZSgibm9u
TnVtZXJpY1BvbGljeSgnY3JlYXRlSFRNTFRhYmxlUm93RWxlbWVudCgpLmluc2VydENlbGwoeCkn
KSIsICInYW55IHR5cGUgYWxsb3dlZCciKTsKLXNob3VsZEJlKCJub25OdW1lcmljUG9saWN5KCdj
cmVhdGVIVE1MVGFibGVSb3dFbGVtZW50KCkuZGVsZXRlQ2VsbCh4KScpIiwgIidhbnkgdHlwZSBh
bGxvd2VkJyIpOworc2hvdWxkQmUoIm5vbk51bWVyaWNQb2xpY3koJ2NyZWF0ZUhUTUxUYWJsZVJv
d0VsZW1lbnQoKS5pbnNlcnRDZWxsKHgpJykiLCAiJ2FueSB0eXBlIGFsbG93ZWQgKGJ1dCBub3Qg
b21pdHRlZCknIik7CitzaG91bGRCZSgibm9uTnVtZXJpY1BvbGljeSgnY3JlYXRlSFRNTFRhYmxl
Um93RWxlbWVudCgpLmRlbGV0ZUNlbGwoeCknKSIsICInYW55IHR5cGUgYWxsb3dlZCAoYnV0IG5v
dCBvbWl0dGVkKSciKTsKIAogLy8gSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQKIAotc2hvdWxkQmUo
Im5vbk51bWVyaWNQb2xpY3koJ2NyZWF0ZUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50KCkuaW5zZXJ0
Um93KHgpJykiLCAiJ2FueSB0eXBlIGFsbG93ZWQnIik7Ci1zaG91bGRCZSgibm9uTnVtZXJpY1Bv
bGljeSgnY3JlYXRlSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQoKS5kZWxldGVSb3coeCknKSIsICIn
YW55IHR5cGUgYWxsb3dlZCciKTsKK3Nob3VsZEJlKCJub25OdW1lcmljUG9saWN5KCdjcmVhdGVI
VE1MVGFibGVTZWN0aW9uRWxlbWVudCgpLmluc2VydFJvdyh4KScpIiwgIidhbnkgdHlwZSBhbGxv
d2VkIChidXQgbm90IG9taXR0ZWQpJyIpOworc2hvdWxkQmUoIm5vbk51bWVyaWNQb2xpY3koJ2Ny
ZWF0ZUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50KCkuZGVsZXRlUm93KHgpJykiLCAiJ2FueSB0eXBl
IGFsbG93ZWQgKGJ1dCBub3Qgb21pdHRlZCknIik7CiAKIC8vIEhUTUxJbnB1dEVsZW1lbnQKIAog
c2hvdWxkQmUoIm5vbk51bWVyaWNQb2xpY3koJ2RvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJ0ZXh0
YXJlYVwiKS5zZXRTZWxlY3Rpb25SYW5nZSh4LCAwKScpIiwgIidhbnkgdHlwZSBhbGxvd2VkJyIp
Owotc2hvdWxkQmUoIm5vbk51bWVyaWNQb2xpY3koJ2RvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJ0
ZXh0YXJlYVwiKS5zZXRTZWxlY3Rpb25SYW5nZSgwLCB4KScpIiwgIidhbnkgdHlwZSBhbGxvd2Vk
JyIpOworc2hvdWxkQmUoIm5vbk51bWVyaWNQb2xpY3koJ2RvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
XCJ0ZXh0YXJlYVwiKS5zZXRTZWxlY3Rpb25SYW5nZSgwLCB4KScpIiwgIidhbnkgdHlwZSBhbGxv
d2VkIChidXQgbm90IG9taXR0ZWQpJyIpOwogCiAvLyBLZXlib2FyZEV2ZW50CiAKQEAgLTI3OCw3
ICsyNzgsNyBAQCBzaG91bGRCZSgibm9uTnVtZXJpY1BvbGljeSgnZG9jdW1lbnQuY3JlYXRlRXZl
bnQoXCJLZXlib2FyZEV2ZW50XCIpLmluaXRLZXlib2FyZAogCiAvLyBNZWRpYUxpc3QKIAotc2hv
dWxkQmUoIm5vbk51bWVyaWNQb2xpY3koJ2NyZWF0ZU1lZGlhTGlzdCgpLml0ZW0oeCknKSIsICIn
YW55IHR5cGUgYWxsb3dlZCciKTsKK3Nob3VsZEJlKCJub25OdW1lcmljUG9saWN5KCdjcmVhdGVN
ZWRpYUxpc3QoKS5pdGVtKHgpJykiLCAiJ2FueSB0eXBlIGFsbG93ZWQgKGJ1dCBub3Qgb21pdHRl
ZCknIik7CiAKIC8vIE1vdXNlRXZlbnQKIApAQCAtMjkxLDcgKzI5MSw3IEBAIHNob3VsZEJlKCJu
b25OdW1lcmljUG9saWN5KCdkb2N1bWVudC5jcmVhdGVFdmVudChcIk1vdXNlRXZlbnRcIikuaW5p
dE1vdXNlRXZlbnQoCiAKIC8vIE5hbWVkTm9kZU1hcAogCi1zaG91bGRCZSgibm9uTnVtZXJpY1Bv
bGljeSgnZG9jdW1lbnQuYm9keS5hdHRyaWJ1dGVzLml0ZW0oeCknKSIsICInYW55IHR5cGUgYWxs
b3dlZCciKTsKK3Nob3VsZEJlKCJub25OdW1lcmljUG9saWN5KCdkb2N1bWVudC5ib2R5LmF0dHJp
YnV0ZXMuaXRlbSh4KScpIiwgIidhbnkgdHlwZSBhbGxvd2VkIChidXQgbm90IG9taXR0ZWQpJyIp
OwogCiAvLyBOb2RlSXRlcmF0b3IKIApAQCAtMjk5LDI4ICsyOTksMjggQEAgc2hvdWxkQmUoIm5v
bk51bWVyaWNQb2xpY3koJ2RvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N1bWVudCwgeCwg
bnVsbCwgZmFsc2UKIAogLy8gTm9kZUxpc3QKIAotc2hvdWxkQmUoIm5vbk51bWVyaWNQb2xpY3ko
J2RvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKFwiZGl2XCIpLml0ZW0oeCknKSIsICInYW55
IHR5cGUgYWxsb3dlZCciKTsKK3Nob3VsZEJlKCJub25OdW1lcmljUG9saWN5KCdkb2N1bWVudC5n
ZXRFbGVtZW50c0J5VGFnTmFtZShcImRpdlwiKS5pdGVtKHgpJykiLCAiJ2FueSB0eXBlIGFsbG93
ZWQgKGJ1dCBub3Qgb21pdHRlZCknIik7CiAKIC8vIFByb2dyZXNzRXZlbnQKIAogc2hvdWxkQmUo
Im5vbk51bWVyaWNQb2xpY3koJ2RvY3VtZW50LmNyZWF0ZUV2ZW50KFwiUHJvZ3Jlc3NFdmVudFwi
KS5pbml0UHJvZ3Jlc3NFdmVudChcImFcIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgeCwgMCknKSIs
ICInYW55IHR5cGUgYWxsb3dlZCciKTsKLXNob3VsZEJlKCJub25OdW1lcmljUG9saWN5KCdkb2N1
bWVudC5jcmVhdGVFdmVudChcIlByb2dyZXNzRXZlbnRcIikuaW5pdFByb2dyZXNzRXZlbnQoXCJh
XCIsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIDAsIHgpJykiLCAiJ2FueSB0eXBlIGFsbG93ZWQnIik7
CitzaG91bGRCZSgibm9uTnVtZXJpY1BvbGljeSgnZG9jdW1lbnQuY3JlYXRlRXZlbnQoXCJQcm9n
cmVzc0V2ZW50XCIpLmluaXRQcm9ncmVzc0V2ZW50KFwiYVwiLCBmYWxzZSwgZmFsc2UsIGZhbHNl
LCAwLCB4KScpIiwgIidhbnkgdHlwZSBhbGxvd2VkIChidXQgbm90IG9taXR0ZWQpJyIpOwogCiAv
LyBSYW5nZQogCi1zaG91bGRCZSgibm9uTnVtZXJpY1BvbGljeSgnZG9jdW1lbnQuY3JlYXRlUmFu
Z2UoKS5zZXRTdGFydChkb2N1bWVudCwgeCknKSIsICInYW55IHR5cGUgYWxsb3dlZCciKTsKLXNo
b3VsZEJlKCJub25OdW1lcmljUG9saWN5KCdkb2N1bWVudC5jcmVhdGVSYW5nZSgpLnNldEVuZChk
b2N1bWVudCwgeCknKSIsICInYW55IHR5cGUgYWxsb3dlZCciKTsKLXNob3VsZEJlKCJub25OdW1l
cmljUG9saWN5KCdkb2N1bWVudC5jcmVhdGVSYW5nZSgpLmNvbXBhcmVQb2ludChkb2N1bWVudCwg
eCknKSIsICInYW55IHR5cGUgYWxsb3dlZCciKTsKLXNob3VsZEJlKCJub25OdW1lcmljUG9saWN5
KCdkb2N1bWVudC5jcmVhdGVSYW5nZSgpLmlzUG9pbnRJblJhbmdlKGRvY3VtZW50LCB4KScpIiwg
IidhbnkgdHlwZSBhbGxvd2VkJyIpOworc2hvdWxkQmUoIm5vbk51bWVyaWNQb2xpY3koJ2RvY3Vt
ZW50LmNyZWF0ZVJhbmdlKCkuc2V0U3RhcnQoZG9jdW1lbnQsIHgpJykiLCAiJ2FueSB0eXBlIGFs
bG93ZWQgKGJ1dCBub3Qgb21pdHRlZCknIik7CitzaG91bGRCZSgibm9uTnVtZXJpY1BvbGljeSgn
ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKS5zZXRFbmQoZG9jdW1lbnQsIHgpJykiLCAiJ2FueSB0eXBl
IGFsbG93ZWQgKGJ1dCBub3Qgb21pdHRlZCknIik7CitzaG91bGRCZSgibm9uTnVtZXJpY1BvbGlj
eSgnZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKS5jb21wYXJlUG9pbnQoZG9jdW1lbnQsIHgpJykiLCAi
J2FueSB0eXBlIGFsbG93ZWQgKGJ1dCBub3Qgb21pdHRlZCknIik7CitzaG91bGRCZSgibm9uTnVt
ZXJpY1BvbGljeSgnZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKS5pc1BvaW50SW5SYW5nZShkb2N1bWVu
dCwgeCknKSIsICInYW55IHR5cGUgYWxsb3dlZCAoYnV0IG5vdCBvbWl0dGVkKSciKTsKIAogLy8g
U2VsZWN0aW9uCiAKLXNob3VsZEJlKCJub25OdW1lcmljUG9saWN5KCdnZXRTZWxlY3Rpb24oKS5j
b2xsYXBzZShkb2N1bWVudCwgeCknKSIsICInYW55IHR5cGUgYWxsb3dlZCciKTsKK3Nob3VsZEJl
KCJub25OdW1lcmljUG9saWN5KCdnZXRTZWxlY3Rpb24oKS5jb2xsYXBzZShkb2N1bWVudCwgeCkn
KSIsICInYW55IHR5cGUgYWxsb3dlZCAoYnV0IG5vdCBvbWl0dGVkKSciKTsKIHNob3VsZEJlKCJu
b25OdW1lcmljUG9saWN5KCdnZXRTZWxlY3Rpb24oKS5zZXRCYXNlQW5kRXh0ZW50KGRvY3VtZW50
LCB4LCBkb2N1bWVudCwgMCknKSIsICInYW55IHR5cGUgYWxsb3dlZCciKTsKLXNob3VsZEJlKCJu
b25OdW1lcmljUG9saWN5KCdnZXRTZWxlY3Rpb24oKS5zZXRCYXNlQW5kRXh0ZW50KGRvY3VtZW50
LCAwLCBkb2N1bWVudCwgeCknKSIsICInYW55IHR5cGUgYWxsb3dlZCciKTsKLXNob3VsZEJlKCJu
b25OdW1lcmljUG9saWN5KCdnZXRTZWxlY3Rpb24oKS5zZXRQb3NpdGlvbihkb2N1bWVudCwgeCkn
KSIsICInYW55IHR5cGUgYWxsb3dlZCciKTsKLXNob3VsZEJlKCJub25OdW1lcmljUG9saWN5KCdn
ZXRTZWxlY3Rpb24oKS5leHRlbmQoZG9jdW1lbnQsIHgpJykiLCAiJ2FueSB0eXBlIGFsbG93ZWQn
Iik7Ci1zaG91bGRCZSgibm9uTnVtZXJpY1BvbGljeSgnZ2V0U2VsZWN0aW9uKCkuZ2V0UmFuZ2VB
dCh4KScpIiwgIidhbnkgdHlwZSBhbGxvd2VkJyIpOworc2hvdWxkQmUoIm5vbk51bWVyaWNQb2xp
Y3koJ2dldFNlbGVjdGlvbigpLnNldEJhc2VBbmRFeHRlbnQoZG9jdW1lbnQsIDAsIGRvY3VtZW50
LCB4KScpIiwgIidhbnkgdHlwZSBhbGxvd2VkIChidXQgbm90IG9taXR0ZWQpJyIpOworc2hvdWxk
QmUoIm5vbk51bWVyaWNQb2xpY3koJ2dldFNlbGVjdGlvbigpLnNldFBvc2l0aW9uKGRvY3VtZW50
LCB4KScpIiwgIidhbnkgdHlwZSBhbGxvd2VkIChidXQgbm90IG9taXR0ZWQpJyIpOworc2hvdWxk
QmUoIm5vbk51bWVyaWNQb2xpY3koJ2dldFNlbGVjdGlvbigpLmV4dGVuZChkb2N1bWVudCwgeCkn
KSIsICInYW55IHR5cGUgYWxsb3dlZCAoYnV0IG5vdCBvbWl0dGVkKSciKTsKK3Nob3VsZEJlKCJu
b25OdW1lcmljUG9saWN5KCdnZXRTZWxlY3Rpb24oKS5nZXRSYW5nZUF0KHgpJykiLCAiJ2FueSB0
eXBlIGFsbG93ZWQgKGJ1dCBub3Qgb21pdHRlZCknIik7CiAKIC8vIFNRTFJlc3VsdFNldFJvd0xp
c3QKIApAQCAtMzI4LDExICszMjgsMTEgQEAgc2hvdWxkQmUoIm5vbk51bWVyaWNQb2xpY3koJ2dl
dFNlbGVjdGlvbigpLmdldFJhbmdlQXQoeCknKSIsICInYW55IHR5cGUgYWxsb3dlZCcKIAogLy8g
U3R5bGVTaGVldExpc3QKIAotc2hvdWxkQmUoIm5vbk51bWVyaWNQb2xpY3koJ2RvY3VtZW50LnN0
eWxlU2hlZXRzLml0ZW0oeCknKSIsICInYW55IHR5cGUgYWxsb3dlZCciKTsKK3Nob3VsZEJlKCJu
b25OdW1lcmljUG9saWN5KCdkb2N1bWVudC5zdHlsZVNoZWV0cy5pdGVtKHgpJykiLCAiJ2FueSB0
eXBlIGFsbG93ZWQgKGJ1dCBub3Qgb21pdHRlZCknIik7CiAKIC8vIFRleHQKIAotc2hvdWxkQmUo
Im5vbk51bWVyaWNQb2xpY3koJ2RvY3VtZW50LmNyZWF0ZVRleHROb2RlKFwiYVwiKS5zcGxpdFRl
eHQoeCknKSIsICInYW55IHR5cGUgYWxsb3dlZCciKTsKK3Nob3VsZEJlKCJub25OdW1lcmljUG9s
aWN5KCdkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShcImFcIikuc3BsaXRUZXh0KHgpJykiLCAiJ2Fu
eSB0eXBlIGFsbG93ZWQgKGJ1dCBub3Qgb21pdHRlZCknIik7CiAKIC8vIFRpbWVSYW5nZXMKIApA
QCAtMzQ0LDI0ICszNDQsMjQgQEAgc2hvdWxkQmUoIm5vbk51bWVyaWNQb2xpY3koJ2RvY3VtZW50
LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQsIHgsIG51bGwsIGZhbHNlKScKIAogLy8gVUlFdmVu
dAogCi1zaG91bGRCZSgibm9uTnVtZXJpY1BvbGljeSgnZG9jdW1lbnQuY3JlYXRlRXZlbnQoXCJV
SUV2ZW50XCIpLmluaXRVSUV2ZW50KFwiYVwiLCBmYWxzZSwgZmFsc2UsIG51bGwsIHgpJykiLCAi
J2FueSB0eXBlIGFsbG93ZWQnIik7CitzaG91bGRCZSgibm9uTnVtZXJpY1BvbGljeSgnZG9jdW1l
bnQuY3JlYXRlRXZlbnQoXCJVSUV2ZW50XCIpLmluaXRVSUV2ZW50KFwiYVwiLCBmYWxzZSwgZmFs
c2UsIG51bGwsIHgpJykiLCAiJ2FueSB0eXBlIGFsbG93ZWQgKGJ1dCBub3Qgb21pdHRlZCknIik7
CiAKIC8vIFdpbmRvdwogCiBzaG91bGRCZSgibm9uTnVtZXJpY1BvbGljeSgnd2luZG93LnNjcm9s
bEJ5KHgsIDApJykiLCAiJ2FueSB0eXBlIGFsbG93ZWQnIik7Ci1zaG91bGRCZSgibm9uTnVtZXJp
Y1BvbGljeSgnd2luZG93LnNjcm9sbEJ5KDAsIHgpJykiLCAiJ2FueSB0eXBlIGFsbG93ZWQnIik7
CitzaG91bGRCZSgibm9uTnVtZXJpY1BvbGljeSgnd2luZG93LnNjcm9sbEJ5KDAsIHgpJykiLCAi
J2FueSB0eXBlIGFsbG93ZWQgKGJ1dCBub3Qgb21pdHRlZCknIik7CiBzaG91bGRCZSgibm9uTnVt
ZXJpY1BvbGljeSgnd2luZG93LnNjcm9sbFRvKHgsIDApJykiLCAiJ2FueSB0eXBlIGFsbG93ZWQn
Iik7Ci1zaG91bGRCZSgibm9uTnVtZXJpY1BvbGljeSgnd2luZG93LnNjcm9sbFRvKDAsIHgpJyki
LCAiJ2FueSB0eXBlIGFsbG93ZWQnIik7CitzaG91bGRCZSgibm9uTnVtZXJpY1BvbGljeSgnd2lu
ZG93LnNjcm9sbFRvKDAsIHgpJykiLCAiJ2FueSB0eXBlIGFsbG93ZWQgKGJ1dCBub3Qgb21pdHRl
ZCknIik7CiBzaG91bGRCZSgibm9uTnVtZXJpY1BvbGljeSgnd2luZG93LnNjcm9sbCh4LCAwKScp
IiwgIidhbnkgdHlwZSBhbGxvd2VkJyIpOwotc2hvdWxkQmUoIm5vbk51bWVyaWNQb2xpY3koJ3dp
bmRvdy5zY3JvbGwoMCwgeCknKSIsICInYW55IHR5cGUgYWxsb3dlZCciKTsKK3Nob3VsZEJlKCJu
b25OdW1lcmljUG9saWN5KCd3aW5kb3cuc2Nyb2xsKDAsIHgpJykiLCAiJ2FueSB0eXBlIGFsbG93
ZWQgKGJ1dCBub3Qgb21pdHRlZCknIik7CiBzaG91bGRCZSgibm9uTnVtZXJpY1BvbGljeSgnd2lu
ZG93Lm1vdmVCeSh4LCAwKScpIiwgIidhbnkgdHlwZSBhbGxvd2VkJyIpOwotc2hvdWxkQmUoIm5v
bk51bWVyaWNQb2xpY3koJ3dpbmRvdy5tb3ZlQnkoMCwgeCknKSIsICInYW55IHR5cGUgYWxsb3dl
ZCciKTsKK3Nob3VsZEJlKCJub25OdW1lcmljUG9saWN5KCd3aW5kb3cubW92ZUJ5KDAsIHgpJyki
LCAiJ2FueSB0eXBlIGFsbG93ZWQgKGJ1dCBub3Qgb21pdHRlZCknIik7CiBzaG91bGRCZSgibm9u
TnVtZXJpY1BvbGljeSgnd2luZG93Lm1vdmVUbyh4LCAwKScpIiwgIidhbnkgdHlwZSBhbGxvd2Vk
JyIpOwotc2hvdWxkQmUoIm5vbk51bWVyaWNQb2xpY3koJ3dpbmRvdy5tb3ZlVG8oMCwgeCknKSIs
ICInYW55IHR5cGUgYWxsb3dlZCciKTsKK3Nob3VsZEJlKCJub25OdW1lcmljUG9saWN5KCd3aW5k
b3cubW92ZVRvKDAsIHgpJykiLCAiJ2FueSB0eXBlIGFsbG93ZWQgKGJ1dCBub3Qgb21pdHRlZCkn
Iik7CiBzaG91bGRCZSgibm9uTnVtZXJpY1BvbGljeSgnd2luZG93LnJlc2l6ZUJ5KHgsIDApJyki
LCAiJ2FueSB0eXBlIGFsbG93ZWQnIik7Ci1zaG91bGRCZSgibm9uTnVtZXJpY1BvbGljeSgnd2lu
ZG93LnJlc2l6ZUJ5KDAsIHgpJykiLCAiJ2FueSB0eXBlIGFsbG93ZWQnIik7CitzaG91bGRCZSgi
bm9uTnVtZXJpY1BvbGljeSgnd2luZG93LnJlc2l6ZUJ5KDAsIHgpJykiLCAiJ2FueSB0eXBlIGFs
bG93ZWQgKGJ1dCBub3Qgb21pdHRlZCknIik7CiBzaG91bGRCZSgibm9uTnVtZXJpY1BvbGljeSgn
d2luZG93LnJlc2l6ZVRvKHgsIDApJykiLCAiJ2FueSB0eXBlIGFsbG93ZWQnIik7Ci1zaG91bGRC
ZSgibm9uTnVtZXJpY1BvbGljeSgnd2luZG93LnJlc2l6ZVRvKDAsIHgpJykiLCAiJ2FueSB0eXBl
IGFsbG93ZWQnIik7CitzaG91bGRCZSgibm9uTnVtZXJpY1BvbGljeSgnd2luZG93LnJlc2l6ZVRv
KDAsIHgpJykiLCAiJ2FueSB0eXBlIGFsbG93ZWQgKGJ1dCBub3Qgb21pdHRlZCknIik7CiAvLyBO
b3QgdGVzdGVkOiBvcGVuRGF0YWJhc2UuCiAKIHdpbmRvdy5yZXNpemVUbygxMDAwMCwgMTAwMDAp
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2NyaXB0LXRlc3RzL3NldFByaW1p
dGl2ZVZhbHVlLWV4Y2VwdGlvbnMuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zY3JpcHQtdGVz
dHMvc2V0UHJpbWl0aXZlVmFsdWUtZXhjZXB0aW9ucy5qcwppbmRleCBmOTNhYTllLi5hNzc3MGZj
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zY3JpcHQtdGVzdHMvc2V0UHJpbWl0
aXZlVmFsdWUtZXhjZXB0aW9ucy5qcworKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zY3JpcHQt
dGVzdHMvc2V0UHJpbWl0aXZlVmFsdWUtZXhjZXB0aW9ucy5qcwpAQCAtNDQsNyArNDQsNyBAQCBz
aG91bGRUaHJvdygiZm9udEZhbWlseS5zZXRTdHJpbmdWYWx1ZShDU1NQcmltaXRpdmVWYWx1ZS5D
U1NfVU5LTk9XTiwgJ0hpIHRoZXJlIQogc2hvdWxkVGhyb3coImZvbnRGYW1pbHkuc2V0U3RyaW5n
VmFsdWUoQ1NTUHJpbWl0aXZlVmFsdWUuQ1NTX0RJTUVOU0lPTiwgXCJHJ2RheSFcIikiKTsKIHNo
b3VsZFRocm93KCJmb250RmFtaWx5LnNldFN0cmluZ1ZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlLkNT
U19DT1VOVEVSLCAnSGVsbG8sIHdvcmxkIScpIik7CiAKLXNob3VsZFRocm93KCJmb250RmFtaWx5
LmdldEZsb2F0VmFsdWUoKSIpOworc2hvdWxkVGhyb3coImZvbnRGYW1pbHkuZ2V0RmxvYXRWYWx1
ZShDU1NQcmltaXRpdmVWYWx1ZS5DU1NfUFgpIik7CiBzaG91bGRUaHJvdygiZm9udEZhbWlseS5n
ZXRDb3VudGVyVmFsdWUoKSIpOwogc2hvdWxkVGhyb3coImZvbnRGYW1pbHkuZ2V0UmVjdFZhbHVl
KCkiKTsKIHNob3VsZFRocm93KCJmb250RmFtaWx5LmdldFJHQkNvbG9yVmFsdWUoKSIpOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2V0UHJpbWl0aXZlVmFsdWUtZXhjZXB0aW9u
cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zZXRQcmltaXRpdmVWYWx1ZS1l
eGNlcHRpb25zLWV4cGVjdGVkLnR4dAppbmRleCA0NDZmMmU4Li45NzAwODczIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zZXRQcmltaXRpdmVWYWx1ZS1leGNlcHRpb25zLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zZXRQcmltaXRpdmVWYWx1ZS1leGNl
cHRpb25zLWV4cGVjdGVkLnR4dApAQCAtMTgsNyArMTgsNyBAQCBQQVNTIGZvbnRGYW1pbHkuZ2V0
U3RyaW5nVmFsdWUoKSBpcyAiRydkYXkhIgogUEFTUyBmb250RmFtaWx5LnNldFN0cmluZ1ZhbHVl
KENTU1ByaW1pdGl2ZVZhbHVlLkNTU19VTktOT1dOLCAnSGkgdGhlcmUhJykgdGhyZXcgZXhjZXB0
aW9uIEVycm9yOiBJTlZBTElEX0FDQ0VTU19FUlI6IERPTSBFeGNlcHRpb24gMTUuCiBQQVNTIGZv
bnRGYW1pbHkuc2V0U3RyaW5nVmFsdWUoQ1NTUHJpbWl0aXZlVmFsdWUuQ1NTX0RJTUVOU0lPTiwg
IkcnZGF5ISIpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJRF9BQ0NFU1NfRVJSOiBET00g
RXhjZXB0aW9uIDE1LgogUEFTUyBmb250RmFtaWx5LnNldFN0cmluZ1ZhbHVlKENTU1ByaW1pdGl2
ZVZhbHVlLkNTU19DT1VOVEVSLCAnSGVsbG8sIHdvcmxkIScpIHRocmV3IGV4Y2VwdGlvbiBFcnJv
cjogSU5WQUxJRF9BQ0NFU1NfRVJSOiBET00gRXhjZXB0aW9uIDE1LgotUEFTUyBmb250RmFtaWx5
LmdldEZsb2F0VmFsdWUoKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOVkFMSURfQUNDRVNTX0VS
UjogRE9NIEV4Y2VwdGlvbiAxNS4KK1BBU1MgZm9udEZhbWlseS5nZXRGbG9hdFZhbHVlKENTU1By
aW1pdGl2ZVZhbHVlLkNTU19QWCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTlZBTElEX0FDQ0VT
U19FUlI6IERPTSBFeGNlcHRpb24gMTUuCiBQQVNTIGZvbnRGYW1pbHkuZ2V0Q291bnRlclZhbHVl
KCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTlZBTElEX0FDQ0VTU19FUlI6IERPTSBFeGNlcHRp
b24gMTUuCiBQQVNTIGZvbnRGYW1pbHkuZ2V0UmVjdFZhbHVlKCkgdGhyZXcgZXhjZXB0aW9uIEVy
cm9yOiBJTlZBTElEX0FDQ0VTU19FUlI6IERPTSBFeGNlcHRpb24gMTUuCiBQQVNTIGZvbnRGYW1p
bHkuZ2V0UkdCQ29sb3JWYWx1ZSgpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJRF9BQ0NF
U1NfRVJSOiBET00gRXhjZXB0aW9uIDE1LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9k
b20vc3R5bGUtc2hlZXQtY2FuZGlkYXRlLXJlbW92ZS11bnJlbmRlcmVkLWRvY3VtZW50Lmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zdHlsZS1zaGVldC1jYW5kaWRhdGUtcmVtb3ZlLXVucmVu
ZGVyZWQtZG9jdW1lbnQuaHRtbAppbmRleCBhYzU3YWFhLi4wYjc2ZTA2IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9zdHlsZS1zaGVldC1jYW5kaWRhdGUtcmVtb3ZlLXVucmVuZGVy
ZWQtZG9jdW1lbnQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zdHlsZS1zaGVldC1j
YW5kaWRhdGUtcmVtb3ZlLXVucmVuZGVyZWQtZG9jdW1lbnQuaHRtbApAQCAtMTEsNyArMTEsNyBA
QAogICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAgICAgIGxheW91dFRl
c3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKIAotICAgIHZhciBvdGhlckRvY3VtZW50ID0gZG9j
dW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlSFRNTERvY3VtZW50KCk7CisgICAgdmFyIG90aGVy
RG9jdW1lbnQgPSBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQoIiIp
OwogICAgIG90aGVyRG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmlubmVySFRNTCA9ICI8bGluaz4i
OwogICAgIG90aGVyRG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmlubmVySFRNTCA9ICIiOwogICAg
IG90aGVyRG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmFwcGVuZENoaWxkKG90aGVyRG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgiaGVhZCIpKS5hcHBlbmRDaGlsZChvdGhlckRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoInN0eWxlIikpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9keW5hbWljL2hv
dmVyZWQtZGV0YWNoLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2R5bmFtaWMvaG92ZXJlZC1kZXRh
Y2guaHRtbAppbmRleCBkNDk4MWQyLi5kZTI2NDNjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L2R5bmFtaWMvaG92ZXJlZC1kZXRhY2guaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2R5
bmFtaWMvaG92ZXJlZC1kZXRhY2guaHRtbApAQCAtMTgsNyArMTgsNyBAQCBmdW5jdGlvbiB0ZXN0
KCkKICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKICAgICBhLnN0eWxlLmRpc3BsYXkgPSAn
aW5saW5lJzsKICAgICB2YXIgciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHQnKTsK
LSAgICB2YXIgY29sID0gZG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZShhKS5j
b2xvcjsKKyAgICB2YXIgY29sID0gZG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHls
ZShhLCBudWxsKS5jb2xvcjsKICAgICByLmlubmVyVGV4dCA9IGNvbCA9PSAicmdiKDAsIDAsIDAp
IiA/ICJQQVNTIiA6ICJGQUlMOiAiK2NvbDsKIH0KIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9keW5hbWljL3Bvc2l0aW9uLWFic29sdXRlLXRvLWZpeGVkLWNyYXNoLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2R5bmFtaWMvcG9zaXRpb24tYWJzb2x1dGUtdG8tZml4ZWQt
Y3Jhc2guaHRtbAppbmRleCAwYjQ2MDI4Li4yZGZjZDYzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L2R5bmFtaWMvcG9zaXRpb24tYWJzb2x1dGUtdG8tZml4ZWQtY3Jhc2guaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2R5bmFtaWMvcG9zaXRpb24tYWJzb2x1dGUtdG8tZml4ZWQtY3Jh
c2guaHRtbApAQCAtNywxMyArNywxMyBAQAogICAgICAgICB7CiAgICAgICAgICAgICBkb2N1bWVu
dC5ib2R5Lm9mZnNldFRvcDsKICAgICAgICAgICAgIHZhciBzID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoInRhcmdldCIpLnN0eWxlOwotICAgICAgICAgICAgcy5zZXRQcm9wZXJ0eSgicG9zaXRp
b24iLCAiZml4ZWQiKTsKKyAgICAgICAgICAgIHMuc2V0UHJvcGVydHkoInBvc2l0aW9uIiwgImZp
eGVkIiwgbnVsbCk7CiAgICAgICAgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKLSAgICAg
ICAgICAgIHMuc2V0UHJvcGVydHkoIm92ZXJmbG93IiwgImhpZGRlbiIpOwotICAgICAgICAgICAg
cy5zZXRQcm9wZXJ0eSgiaGVpZ2h0IiwgIjAiKTsKLSAgICAgICAgICAgIHMuc2V0UHJvcGVydHko
IndpZHRoIiwgIjAiKTsKKyAgICAgICAgICAgIHMuc2V0UHJvcGVydHkoIm92ZXJmbG93IiwgImhp
ZGRlbiIsIG51bGwpOworICAgICAgICAgICAgcy5zZXRQcm9wZXJ0eSgiaGVpZ2h0IiwgIjAiLCBu
dWxsKTsKKyAgICAgICAgICAgIHMuc2V0UHJvcGVydHkoIndpZHRoIiwgIjAiLCBudWxsKTsKICAg
ICAgICAgICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOwotICAgICAgICAgICAgcy5zZXRQcm9w
ZXJ0eSgiZGlzcGxheSIsICJub25lIik7CisgICAgICAgICAgICBzLnNldFByb3BlcnR5KCJkaXNw
bGF5IiwgIm5vbmUiLCBudWxsKTsKICAgICAgICAgfQogICAgIDwvc2NyaXB0PgogPC9oZWFkPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvZXZlbnQtbGlzdGVuZXItbWFwLXJl
aGFzaC1jcmFzaC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvZXZlbnQtbGlzdGVuZXIt
bWFwLXJlaGFzaC1jcmFzaC5odG1sCmluZGV4IDRlODFlMTQuLjE5ZmY1MmEgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2V2ZW50LWxpc3RlbmVyLW1hcC1yZWhhc2gtY3Jhc2gu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9ldmVudC1saXN0ZW5lci1tYXAtcmVo
YXNoLWNyYXNoLmh0bWwKQEAgLTExLDcgKzExLDcgQEAKICAgICAgICAgICAgIGRvY3VtZW50LmFk
ZEV2ZW50TGlzdGVuZXIoImJvb20iICsgaSwgc3R1YiwgZmFsc2UpOwogICAgIH0sIGZhbHNlKTsK
IAotICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLCBzdHVi
KTsKKyAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIiwgc3R1
YiwgZmFsc2UpOwogCiAgICAgdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CiA8L3Njcmlw
dD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2luaXQtZXZlbnRzLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2luaXQtZXZlbnRzLWV4cGVjdGVkLnR4
dAppbmRleCA4MmUyYmE5Li42MjVmYzZlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy9pbml0LWV2ZW50cy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvaW5pdC1ldmVudHMtZXhwZWN0ZWQudHh0CkBAIC0xMjYsMjAgKzEyNiwyMCBAQCBQQVNTIHRl
c3RJbml0RXZlbnQoJ1Byb2dyZXNzJywgJyJhIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgMTAwMSwg
MTAwMicpLmxlbmd0aENvbQogUEFTUyB0ZXN0SW5pdEV2ZW50KCdQcm9ncmVzcycsICciYSIsIGZh
bHNlLCBmYWxzZSwgdHJ1ZSwgMTAwMSwgMTAwMicpLmxlbmd0aENvbXB1dGFibGUgaXMgdHJ1ZQog
UEFTUyB0ZXN0SW5pdEV2ZW50KCdQcm9ncmVzcycsICciYSIsIGZhbHNlLCBmYWxzZSwgZmFsc2Us
IDEwMDEsIDEwMDInKS5sb2FkZWQgaXMgMTAwMQogUEFTUyB0ZXN0SW5pdEV2ZW50KCdQcm9ncmVz
cycsICciYSIsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIDEwMDEsIDEwMDInKS50b3RhbCBpcyAxMDAy
Ci1QQVNTIHRlc3RJbml0RXZlbnQoJ1N0b3JhZ2UnLCAnImEiLCBmYWxzZSwgZmFsc2UsICJiIiwg
ImMiLCAiZCIsICJlIicpLnR5cGUgaXMgJ2EnCi1QQVNTIHRlc3RJbml0RXZlbnQoJ1N0b3JhZ2Un
LCAnbnVsbCwgZmFsc2UsIGZhbHNlLCAiYiIsICJjIiwgImQiLCAiZSInKS50eXBlIGlzICdudWxs
JwotUEFTUyB0ZXN0SW5pdEV2ZW50KCdTdG9yYWdlJywgJyJhIiwgZmFsc2UsIGZhbHNlLCAiYiIs
ICJjIiwgImQiLCAiZSInKS5idWJibGVzIGlzIGZhbHNlCi1QQVNTIHRlc3RJbml0RXZlbnQoJ1N0
b3JhZ2UnLCAnImEiLCB0cnVlLCBmYWxzZSwgImIiLCAiYyIsICJkIiwgImUiJykuYnViYmxlcyBp
cyB0cnVlCi1QQVNTIHRlc3RJbml0RXZlbnQoJ1N0b3JhZ2UnLCAnImEiLCBmYWxzZSwgZmFsc2Us
ICJiIiwgImMiLCAiZCIsICJlIicpLmNhbmNlbGFibGUgaXMgZmFsc2UKLVBBU1MgdGVzdEluaXRF
dmVudCgnU3RvcmFnZScsICciYSIsIGZhbHNlLCB0cnVlLCAiYiIsICJjIiwgImQiLCAiZSInKS5j
YW5jZWxhYmxlIGlzIHRydWUKLVBBU1MgdGVzdEluaXRFdmVudCgnU3RvcmFnZScsICciYSIsIGZh
bHNlLCBmYWxzZSwgImIiLCAiYyIsICJkIiwgImUiJykua2V5IGlzICdiJwotUEFTUyB0ZXN0SW5p
dEV2ZW50KCdTdG9yYWdlJywgJyJhIiwgZmFsc2UsIGZhbHNlLCBudWxsLCAiYyIsICJkIiwgImUi
Jykua2V5IGlzICdudWxsJwotUEFTUyB0ZXN0SW5pdEV2ZW50KCdTdG9yYWdlJywgJyJhIiwgZmFs
c2UsIGZhbHNlLCAiYiIsICJjIiwgImQiLCAiZSInKS5vbGRWYWx1ZSBpcyAnYycKLVBBU1MgdGVz
dEluaXRFdmVudCgnU3RvcmFnZScsICciYSIsIGZhbHNlLCBmYWxzZSwgImIiLCBudWxsLCAiZCIs
ICJlIicpLm9sZFZhbHVlIGlzIG51bGwKLVBBU1MgdGVzdEluaXRFdmVudCgnU3RvcmFnZScsICci
YSIsIGZhbHNlLCBmYWxzZSwgImIiLCAiYyIsICJkIiwgImUiJykubmV3VmFsdWUgaXMgJ2QnCi1Q
QVNTIHRlc3RJbml0RXZlbnQoJ1N0b3JhZ2UnLCAnImEiLCBmYWxzZSwgZmFsc2UsICJiIiwgImMi
LCBudWxsLCAiZSInKS5uZXdWYWx1ZSBpcyBudWxsCi1QQVNTIHRlc3RJbml0RXZlbnQoJ1N0b3Jh
Z2UnLCAnImEiLCBmYWxzZSwgZmFsc2UsICJiIiwgImMiLCAiZCIsICJlIicpLnVybCBpcyAnZScK
LVBBU1MgdGVzdEluaXRFdmVudCgnU3RvcmFnZScsICciYSIsIGZhbHNlLCBmYWxzZSwgImIiLCAi
YyIsICJkIiwgbnVsbCcpLnVybCBpcyAnbnVsbCcKK1BBU1MgdGVzdEluaXRFdmVudCgnU3RvcmFn
ZScsICciYSIsIGZhbHNlLCBmYWxzZSwgImIiLCAiYyIsICJkIiwgImUiLCBudWxsJykudHlwZSBp
cyAnYScKK1BBU1MgdGVzdEluaXRFdmVudCgnU3RvcmFnZScsICdudWxsLCBmYWxzZSwgZmFsc2Us
ICJiIiwgImMiLCAiZCIsICJlIiwgbnVsbCcpLnR5cGUgaXMgJ251bGwnCitQQVNTIHRlc3RJbml0
RXZlbnQoJ1N0b3JhZ2UnLCAnImEiLCBmYWxzZSwgZmFsc2UsICJiIiwgImMiLCAiZCIsICJlIiwg
bnVsbCcpLmJ1YmJsZXMgaXMgZmFsc2UKK1BBU1MgdGVzdEluaXRFdmVudCgnU3RvcmFnZScsICci
YSIsIHRydWUsIGZhbHNlLCAiYiIsICJjIiwgImQiLCAiZSIsIG51bGwnKS5idWJibGVzIGlzIHRy
dWUKK1BBU1MgdGVzdEluaXRFdmVudCgnU3RvcmFnZScsICciYSIsIGZhbHNlLCBmYWxzZSwgImIi
LCAiYyIsICJkIiwgImUiLCBudWxsJykuY2FuY2VsYWJsZSBpcyBmYWxzZQorUEFTUyB0ZXN0SW5p
dEV2ZW50KCdTdG9yYWdlJywgJyJhIiwgZmFsc2UsIHRydWUsICJiIiwgImMiLCAiZCIsICJlIiwg
bnVsbCcpLmNhbmNlbGFibGUgaXMgdHJ1ZQorUEFTUyB0ZXN0SW5pdEV2ZW50KCdTdG9yYWdlJywg
JyJhIiwgZmFsc2UsIGZhbHNlLCAiYiIsICJjIiwgImQiLCAiZSIsIG51bGwnKS5rZXkgaXMgJ2In
CitQQVNTIHRlc3RJbml0RXZlbnQoJ1N0b3JhZ2UnLCAnImEiLCBmYWxzZSwgZmFsc2UsIG51bGws
ICJjIiwgImQiLCAiZSIsIG51bGwnKS5rZXkgaXMgJ251bGwnCitQQVNTIHRlc3RJbml0RXZlbnQo
J1N0b3JhZ2UnLCAnImEiLCBmYWxzZSwgZmFsc2UsICJiIiwgImMiLCAiZCIsICJlIiwgbnVsbCcp
Lm9sZFZhbHVlIGlzICdjJworUEFTUyB0ZXN0SW5pdEV2ZW50KCdTdG9yYWdlJywgJyJhIiwgZmFs
c2UsIGZhbHNlLCAiYiIsIG51bGwsICJkIiwgImUiLCBudWxsJykub2xkVmFsdWUgaXMgbnVsbAor
UEFTUyB0ZXN0SW5pdEV2ZW50KCdTdG9yYWdlJywgJyJhIiwgZmFsc2UsIGZhbHNlLCAiYiIsICJj
IiwgImQiLCAiZSIsIG51bGwnKS5uZXdWYWx1ZSBpcyAnZCcKK1BBU1MgdGVzdEluaXRFdmVudCgn
U3RvcmFnZScsICciYSIsIGZhbHNlLCBmYWxzZSwgImIiLCAiYyIsIG51bGwsICJlIiwgbnVsbCcp
Lm5ld1ZhbHVlIGlzIG51bGwKK1BBU1MgdGVzdEluaXRFdmVudCgnU3RvcmFnZScsICciYSIsIGZh
bHNlLCBmYWxzZSwgImIiLCAiYyIsICJkIiwgImUiLCBudWxsJykudXJsIGlzICdlJworUEFTUyB0
ZXN0SW5pdEV2ZW50KCdTdG9yYWdlJywgJyJhIiwgZmFsc2UsIGZhbHNlLCAiYiIsICJjIiwgImQi
LCBudWxsLCBudWxsJykudXJsIGlzICdudWxsJwogUEFTUyB0ZXN0SW5pdEV2ZW50KCdUZXh0Jywg
JyJhIiwgZmFsc2UsIGZhbHNlLCB3aW5kb3csICJiIicpLnR5cGUgaXMgJ2EnCiBQQVNTIHRlc3RJ
bml0RXZlbnQoJ1RleHQnLCAnbnVsbCwgZmFsc2UsIGZhbHNlLCB3aW5kb3csICJiIicpLnR5cGUg
aXMgJ251bGwnCiBQQVNTIHRlc3RJbml0RXZlbnQoJ1RleHQnLCAnImEiLCBmYWxzZSwgZmFsc2Us
IHdpbmRvdywgImIiJykuYnViYmxlcyBpcyBmYWxzZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvbWVzc2FnZS1wb3J0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9t
ZXNzYWdlLXBvcnQuaHRtbAppbmRleCBlYjgwMTgzLi5jMDVmZjk1IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy9tZXNzYWdlLXBvcnQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy9tZXNzYWdlLXBvcnQuaHRtbApAQCAtNTQsNyArNTQsNyBAQCBmdW5jdGlvbiB0
ZXN0MygpCiAgICAgICAgICAgICB0ZXN0NCgpOwogICAgICAgICB9IGVsc2UKICAgICAgICAgICAg
IGxvZygiRXZlbnQgTGlzdGVuZXI6IEZBSUwuIEV2ZW50IGxpc3RlbmVyIGNhbGxlZCBiZWZvcmUg
c3RhcnQoKSIpOwotICAgfSk7CisgICB9LCBmYWxzZSk7CiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9u
KCkgewogICAgICAgY2hhbm5lbC5wb3J0Mi5zdGFydCgpOwogICAgICAgc3RhcnRlZCA9IHRydWU7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9yZXNvdXJjZXMvZHJhZy1vdXRz
aWRlLXdpbmRvdy1mcmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcmVzb3VyY2Vz
L2RyYWctb3V0c2lkZS13aW5kb3ctZnJhbWUuaHRtbAppbmRleCA0N2ZlMmFlLi41MTI2YmI3IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9yZXNvdXJjZXMvZHJhZy1vdXRzaWRl
LXdpbmRvdy1mcmFtZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Jlc291cmNl
cy9kcmFnLW91dHNpZGUtd2luZG93LWZyYW1lLmh0bWwKQEAgLTEsNiArMSw2IEBACiA8Ym9keSBv
bmxvYWQ9InRlc3QoKSI+CiA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci1kb2N1bWVu
dC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLCBtb3VzZW1vdmVkKTsKK2RvY3VtZW50LmFk
ZEV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsIG1vdXNlbW92ZWQsIGZhbHNlKTsKIAogdmFyIHJl
c3VsdCA9ICJGQUlMIjsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcmVz
b3VyY2VzL3RhYmluZGV4LWZvY3VzLWJsdXItYWxsLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvcmVzb3VyY2VzL3RhYmluZGV4LWZvY3VzLWJsdXItYWxsLmpzCmluZGV4IDMzNTU2MzAuLjM5
NTU3Y2YgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Jlc291cmNlcy90YWJp
bmRleC1mb2N1cy1ibHVyLWFsbC5qcworKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9yZXNv
dXJjZXMvdGFiaW5kZXgtZm9jdXMtYmx1ci1hbGwuanMKQEAgLTEwNyw3ICsxMDcsNyBAQCBmdW5j
dGlvbiB0ZXN0UHJvZ3JhbW1hdGljRm9jdXMoZWxlbSkKICAgICAgICAgZWxlbVRoYXRTaG91bGRG
b2N1cyA9IGVsZW07CiAKICAgICAvLyBIaWRkZW4gZWxlbWVudHMgc2hvdWxkIG5vdCBiZSBmb2N1
c2FibGUuIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzA5OQotICAg
IGlmIChkb2N1bWVudC5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKGVsZW0pLmRpc3BsYXkg
PT0gIm5vbmUiICYmICFub0Rpc3BsYXlUYWdOYW1lc1dpdGhGb2N1cy5maW5kKGVsZW0udGFnTmFt
ZSkpCisgICAgaWYgKGRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUoZWxlbSwg
bnVsbCkuZGlzcGxheSA9PSAibm9uZSIgJiYgIW5vRGlzcGxheVRhZ05hbWVzV2l0aEZvY3VzLmZp
bmQoZWxlbS50YWdOYW1lKSkKICAgICAgICAgZWxlbVRoYXRTaG91bGRGb2N1cyA9IG51bGw7CiAK
ICAgICBpZiAodGFnTmFtZXNUcmFuc2ZlckZvY3VzZWQuZmluZChlbGVtLnRhZ05hbWUpKSB7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zY3JpcHQtdGVzdHMvaW5pdC1ldmVu
dHMuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zY3JpcHQtdGVzdHMvaW5pdC1ldmVudHMu
anMKaW5kZXggMGEzMjQwNy4uMjg4ZTk2MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvc2NyaXB0LXRlc3RzL2luaXQtZXZlbnRzLmpzCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL3NjcmlwdC10ZXN0cy9pbml0LWV2ZW50cy5qcwpAQCAtMTQ1LDIwICsxNDUsMjAgQEAg
c2hvdWxkQmUoInRlc3RJbml0RXZlbnQoJ1Byb2dyZXNzJywgJ1wiYVwiLCBmYWxzZSwgZmFsc2Us
IHRydWUsIDEwMDEsIDEwMDInKS5sZW4KIHNob3VsZEJlKCJ0ZXN0SW5pdEV2ZW50KCdQcm9ncmVz
cycsICdcImFcIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgMTAwMSwgMTAwMicpLmxvYWRlZCIsICIx
MDAxIik7CiBzaG91bGRCZSgidGVzdEluaXRFdmVudCgnUHJvZ3Jlc3MnLCAnXCJhXCIsIGZhbHNl
LCBmYWxzZSwgZmFsc2UsIDEwMDEsIDEwMDInKS50b3RhbCIsICIxMDAyIik7CiAKLXNob3VsZEJl
KCJ0ZXN0SW5pdEV2ZW50KCdTdG9yYWdlJywgJ1wiYVwiLCBmYWxzZSwgZmFsc2UsIFwiYlwiLCBc
ImNcIiwgXCJkXCIsIFwiZVwiJykudHlwZSIsICInYSciKTsKLXNob3VsZEJlKCJ0ZXN0SW5pdEV2
ZW50KCdTdG9yYWdlJywgJ251bGwsIGZhbHNlLCBmYWxzZSwgXCJiXCIsIFwiY1wiLCBcImRcIiwg
XCJlXCInKS50eXBlIiwgIidudWxsJyIpOwotc2hvdWxkQmUoInRlc3RJbml0RXZlbnQoJ1N0b3Jh
Z2UnLCAnXCJhXCIsIGZhbHNlLCBmYWxzZSwgXCJiXCIsIFwiY1wiLCBcImRcIiwgXCJlXCInKS5i
dWJibGVzIiwgImZhbHNlIik7Ci1zaG91bGRCZSgidGVzdEluaXRFdmVudCgnU3RvcmFnZScsICdc
ImFcIiwgdHJ1ZSwgZmFsc2UsIFwiYlwiLCBcImNcIiwgXCJkXCIsIFwiZVwiJykuYnViYmxlcyIs
ICJ0cnVlIik7Ci1zaG91bGRCZSgidGVzdEluaXRFdmVudCgnU3RvcmFnZScsICdcImFcIiwgZmFs
c2UsIGZhbHNlLCBcImJcIiwgXCJjXCIsIFwiZFwiLCBcImVcIicpLmNhbmNlbGFibGUiLCAiZmFs
c2UiKTsKLXNob3VsZEJlKCJ0ZXN0SW5pdEV2ZW50KCdTdG9yYWdlJywgJ1wiYVwiLCBmYWxzZSwg
dHJ1ZSwgXCJiXCIsIFwiY1wiLCBcImRcIiwgXCJlXCInKS5jYW5jZWxhYmxlIiwgInRydWUiKTsK
LXNob3VsZEJlKCJ0ZXN0SW5pdEV2ZW50KCdTdG9yYWdlJywgJ1wiYVwiLCBmYWxzZSwgZmFsc2Us
IFwiYlwiLCBcImNcIiwgXCJkXCIsIFwiZVwiJykua2V5IiwgIidiJyIpOwotc2hvdWxkQmUoInRl
c3RJbml0RXZlbnQoJ1N0b3JhZ2UnLCAnXCJhXCIsIGZhbHNlLCBmYWxzZSwgbnVsbCwgXCJjXCIs
IFwiZFwiLCBcImVcIicpLmtleSIsICInbnVsbCciKTsKLXNob3VsZEJlKCJ0ZXN0SW5pdEV2ZW50
KCdTdG9yYWdlJywgJ1wiYVwiLCBmYWxzZSwgZmFsc2UsIFwiYlwiLCBcImNcIiwgXCJkXCIsIFwi
ZVwiJykub2xkVmFsdWUiLCAiJ2MnIik7Ci1zaG91bGRCZSgidGVzdEluaXRFdmVudCgnU3RvcmFn
ZScsICdcImFcIiwgZmFsc2UsIGZhbHNlLCBcImJcIiwgbnVsbCwgXCJkXCIsIFwiZVwiJykub2xk
VmFsdWUiLCAibnVsbCIpOwotc2hvdWxkQmUoInRlc3RJbml0RXZlbnQoJ1N0b3JhZ2UnLCAnXCJh
XCIsIGZhbHNlLCBmYWxzZSwgXCJiXCIsIFwiY1wiLCBcImRcIiwgXCJlXCInKS5uZXdWYWx1ZSIs
ICInZCciKTsKLXNob3VsZEJlKCJ0ZXN0SW5pdEV2ZW50KCdTdG9yYWdlJywgJ1wiYVwiLCBmYWxz
ZSwgZmFsc2UsIFwiYlwiLCBcImNcIiwgbnVsbCwgXCJlXCInKS5uZXdWYWx1ZSIsICJudWxsIik7
Ci1zaG91bGRCZSgidGVzdEluaXRFdmVudCgnU3RvcmFnZScsICdcImFcIiwgZmFsc2UsIGZhbHNl
LCBcImJcIiwgXCJjXCIsIFwiZFwiLCBcImVcIicpLnVybCIsICInZSciKTsKLXNob3VsZEJlKCJ0
ZXN0SW5pdEV2ZW50KCdTdG9yYWdlJywgJ1wiYVwiLCBmYWxzZSwgZmFsc2UsIFwiYlwiLCBcImNc
IiwgXCJkXCIsIG51bGwnKS51cmwiLCAiJ251bGwnIik7CitzaG91bGRCZSgidGVzdEluaXRFdmVu
dCgnU3RvcmFnZScsICdcImFcIiwgZmFsc2UsIGZhbHNlLCBcImJcIiwgXCJjXCIsIFwiZFwiLCBc
ImVcIiwgbnVsbCcpLnR5cGUiLCAiJ2EnIik7CitzaG91bGRCZSgidGVzdEluaXRFdmVudCgnU3Rv
cmFnZScsICdudWxsLCBmYWxzZSwgZmFsc2UsIFwiYlwiLCBcImNcIiwgXCJkXCIsIFwiZVwiLCBu
dWxsJykudHlwZSIsICInbnVsbCciKTsKK3Nob3VsZEJlKCJ0ZXN0SW5pdEV2ZW50KCdTdG9yYWdl
JywgJ1wiYVwiLCBmYWxzZSwgZmFsc2UsIFwiYlwiLCBcImNcIiwgXCJkXCIsIFwiZVwiLCBudWxs
JykuYnViYmxlcyIsICJmYWxzZSIpOworc2hvdWxkQmUoInRlc3RJbml0RXZlbnQoJ1N0b3JhZ2Un
LCAnXCJhXCIsIHRydWUsIGZhbHNlLCBcImJcIiwgXCJjXCIsIFwiZFwiLCBcImVcIiwgbnVsbCcp
LmJ1YmJsZXMiLCAidHJ1ZSIpOworc2hvdWxkQmUoInRlc3RJbml0RXZlbnQoJ1N0b3JhZ2UnLCAn
XCJhXCIsIGZhbHNlLCBmYWxzZSwgXCJiXCIsIFwiY1wiLCBcImRcIiwgXCJlXCIsIG51bGwnKS5j
YW5jZWxhYmxlIiwgImZhbHNlIik7CitzaG91bGRCZSgidGVzdEluaXRFdmVudCgnU3RvcmFnZScs
ICdcImFcIiwgZmFsc2UsIHRydWUsIFwiYlwiLCBcImNcIiwgXCJkXCIsIFwiZVwiLCBudWxsJyku
Y2FuY2VsYWJsZSIsICJ0cnVlIik7CitzaG91bGRCZSgidGVzdEluaXRFdmVudCgnU3RvcmFnZScs
ICdcImFcIiwgZmFsc2UsIGZhbHNlLCBcImJcIiwgXCJjXCIsIFwiZFwiLCBcImVcIiwgbnVsbCcp
LmtleSIsICInYiciKTsKK3Nob3VsZEJlKCJ0ZXN0SW5pdEV2ZW50KCdTdG9yYWdlJywgJ1wiYVwi
LCBmYWxzZSwgZmFsc2UsIG51bGwsIFwiY1wiLCBcImRcIiwgXCJlXCIsIG51bGwnKS5rZXkiLCAi
J251bGwnIik7CitzaG91bGRCZSgidGVzdEluaXRFdmVudCgnU3RvcmFnZScsICdcImFcIiwgZmFs
c2UsIGZhbHNlLCBcImJcIiwgXCJjXCIsIFwiZFwiLCBcImVcIiwgbnVsbCcpLm9sZFZhbHVlIiwg
IidjJyIpOworc2hvdWxkQmUoInRlc3RJbml0RXZlbnQoJ1N0b3JhZ2UnLCAnXCJhXCIsIGZhbHNl
LCBmYWxzZSwgXCJiXCIsIG51bGwsIFwiZFwiLCBcImVcIiwgbnVsbCcpLm9sZFZhbHVlIiwgIm51
bGwiKTsKK3Nob3VsZEJlKCJ0ZXN0SW5pdEV2ZW50KCdTdG9yYWdlJywgJ1wiYVwiLCBmYWxzZSwg
ZmFsc2UsIFwiYlwiLCBcImNcIiwgXCJkXCIsIFwiZVwiLCBudWxsJykubmV3VmFsdWUiLCAiJ2Qn
Iik7CitzaG91bGRCZSgidGVzdEluaXRFdmVudCgnU3RvcmFnZScsICdcImFcIiwgZmFsc2UsIGZh
bHNlLCBcImJcIiwgXCJjXCIsIG51bGwsIFwiZVwiLCBudWxsJykubmV3VmFsdWUiLCAibnVsbCIp
Oworc2hvdWxkQmUoInRlc3RJbml0RXZlbnQoJ1N0b3JhZ2UnLCAnXCJhXCIsIGZhbHNlLCBmYWxz
ZSwgXCJiXCIsIFwiY1wiLCBcImRcIiwgXCJlXCIsIG51bGwnKS51cmwiLCAiJ2UnIik7CitzaG91
bGRCZSgidGVzdEluaXRFdmVudCgnU3RvcmFnZScsICdcImFcIiwgZmFsc2UsIGZhbHNlLCBcImJc
IiwgXCJjXCIsIFwiZFwiLCBudWxsLCBudWxsJykudXJsIiwgIidudWxsJyIpOwogCiBzaG91bGRC
ZSgidGVzdEluaXRFdmVudCgnVGV4dCcsICdcImFcIiwgZmFsc2UsIGZhbHNlLCB3aW5kb3csIFwi
YlwiJykudHlwZSIsICInYSciKTsKIHNob3VsZEJlKCJ0ZXN0SW5pdEV2ZW50KCdUZXh0JywgJ251
bGwsIGZhbHNlLCBmYWxzZSwgd2luZG93LCBcImJcIicpLnR5cGUiLCAiJ251bGwnIik7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtY3VzdG9tRXJyb3It
MDA0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtY3VzdG9tRXJy
b3ItMDA0Lmh0bWwKaW5kZXggZGZhYThmYi4uZGJkM2JjNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLWN1c3RvbUVycm9yLTAwNC5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1jdXN0b21FcnJvci0wMDQuaHRtbApA
QCAtMTUsNyArMTUsNyBAQAogICAgICAgICAvLyBCbGFuawogICAgICAgICBmb3IgKGkgPSAwOyBp
IDwgdi5sZW5ndGg7IGkrKykgewogICAgICAgICAgICAgdltpXS5zZXRDdXN0b21WYWxpZGl0eSgi
Q3VzdG9tIHN0cmluZyIpOwotICAgICAgICAgICAgdltpXS5zZXRDdXN0b21WYWxpZGl0eSgpOwor
ICAgICAgICAgICAgdltpXS5zZXRDdXN0b21WYWxpZGl0eShudWxsKTsKICAgICAgICAgICAgIGxv
ZyghdltpXS52YWxpZGl0eS5jdXN0b21FcnJvciA/ICJTVUNDRVNTIiA6ICJGQUlMVVJFIik7CiAg
ICAgICAgICAgICB2W2ldLnNldEN1c3RvbVZhbGlkaXR5KCJvbmUiLCAidHdvIiwgInRocmVlIik7
CiAgICAgICAgICAgICBsb2codltpXS52YWxpZGl0eS5jdXN0b21FcnJvciA/ICJTVUNDRVNTIiA6
ICJGQUlMVVJFIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2xlZ2VuZC1k
aXNwbGF5LW5vbmUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvbGVnZW5kLWRpc3BsYXkt
bm9uZS5odG1sCmluZGV4IDI3OGFhZjYuLmQzMWViNzUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvZm9ybXMvbGVnZW5kLWRpc3BsYXktbm9uZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZm9ybXMvbGVnZW5kLWRpc3BsYXktbm9uZS5odG1sCkBAIC0xMSw2ICsxMSw2IEBACiAgICAg
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKIAogICAgIGRvY3VtZW50LmJv
ZHkub2Zmc2V0VG9wOwotICAgIGRpc3BsYXkgPSBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuZGlzcGxheTsKKyAgICBkaXNwbGF5ID0gZ2V0Q29tcHV0
ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0IiksIG51bGwpLmRpc3BsYXk7
CiAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc3VsdCIpLmlubmVyVGV4dCA9IGRpc3Bs
YXkgPT09ICJub25lIiA/ICJQQVNTIiA6ICgiRkFJTDogZGlzcGxheSB3YXMgJyIgKyBkaXNwbGF5
ICsgIicuIik7CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMv
c2NyaXB0LXRlc3RzL2NoZWNrVmFsaWRpdHktaGFuZGxlci11cGRhdGVzLWRvbS5qcyBiL0xheW91
dFRlc3RzL2Zhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL2NoZWNrVmFsaWRpdHktaGFuZGxlci11cGRh
dGVzLWRvbS5qcwppbmRleCBiNGNiZmI0Li5hY2VkYjA4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L2Zvcm1zL3NjcmlwdC10ZXN0cy9jaGVja1ZhbGlkaXR5LWhhbmRsZXItdXBkYXRlcy1k
b20uanMKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvY2hlY2tWYWxp
ZGl0eS1oYW5kbGVyLXVwZGF0ZXMtZG9tLmpzCkBAIC03NCw3ICs3NCw3IEBAIHNob3VsZEJlRmFs
c2UoJ2hhbmRsZXIyQ2FsbGVkJyk7CiBkZWJ1ZygnJyk7CiBkZWJ1ZygnQSBjb250cm9sIGlzIG1v
dmVkIHRvIGFub3RoZXIgZG9jdW1lbnQuJyk7CiBwYXJlbnQuaW5uZXJIVE1MID0gJzxmb3JtIGlk
PWYxPjxpbnB1dCBuYW1lPWkxIGlkPWkxIHJlcXVpcmVkPjwvZm9ybT4nOwotdmFyIGRvYzIgPSBk
b2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQoKTsKK3ZhciBkb2MyID0g
ZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlSFRNTERvY3VtZW50KCIiKTsKIGhhbmRsZXIx
ID0gZnVuY3Rpb24oZXZlbnQpIHsKICAgICBkb2MyLmJvZHkuYXBwZW5kQ2hpbGQoZG9jMi5hZG9w
dE5vZGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2kxJykpKTsKIH07CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2hhcm5lc3Mvb3ZlcnJpZGUtcHJlZmVyZW5jZXMtMi5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9oYXJuZXNzL292ZXJyaWRlLXByZWZlcmVuY2VzLTIuaHRtbAppbmRleCBi
ZGI3MTY0Li5kMDllZmQxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2hhcm5lc3Mvb3Zl
cnJpZGUtcHJlZmVyZW5jZXMtMi5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaGFybmVzcy9v
dmVycmlkZS1wcmVmZXJlbmNlcy0yLmh0bWwKQEAgLTExLDcgKzExLDcgQEAKICAgICBZb3Ugc2hv
dWxkIHNlZSAiUEFTUyIgYmVsb3cuPC9wPgogICAgIDxzY3JpcHQ+CiAgICAgICAgIHZhciBwID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInAiKVswXTsKLSAgICAgICAgaWYgKCF3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIgfHwgd2luZG93LmdldENvbXB1dGVkU3R5bGUocCkuZm9u
dFNpemUgPT0gIjI0cHgiKQorICAgICAgICBpZiAoIXdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
ciB8fCB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShwLCBudWxsKS5mb250U2l6ZSA9PSAiMjRweCIp
CiAgICAgICAgICAgICBkb2N1bWVudC53cml0ZSgiUEFTUyIpOwogICAgIDwvc2NyaXB0PgogPC9i
b2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9odG1sL25hdi1lbGVtZW50Lmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2h0bWwvbmF2LWVsZW1lbnQuaHRtbAppbmRleCA1NzNlNDE2Li5h
MWU4ZjUyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2h0bWwvbmF2LWVsZW1lbnQuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2h0bWwvbmF2LWVsZW1lbnQuaHRtbApAQCAtNTAsNyAr
NTAsNyBAQCB2YXIgZWQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZWRpdGFibGUiKTsKIHZh
ciBzZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7CiBzZWxlY3Rpb24uc2VsZWN0QWxs
Q2hpbGRyZW4oZWQpOwogZG9jdW1lbnQuZXhlY0NvbW1hbmQoIkZvcm1hdEJsb2NrIiwgZmFsc2Us
ICJuYXYiKTsKLXNlbGVjdGlvbi5jb2xsYXBzZSgpOworc2VsZWN0aW9uLmNvbGxhcHNlKG51bGws
IDApOwogZWQuYmx1cigpOwogCiB2YXIgdGVzdHMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
dGVzdEFyZWEiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaHRtbC9zY3JpcHQtdGVz
dHMvYXJ0aWNsZS1lbGVtZW50LmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9odG1sL3NjcmlwdC10ZXN0
cy9hcnRpY2xlLWVsZW1lbnQuanMKaW5kZXggODZkNDQ5OS4uZTVhYWE4ZSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9odG1sL3NjcmlwdC10ZXN0cy9hcnRpY2xlLWVsZW1lbnQuanMKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9odG1sL3NjcmlwdC10ZXN0cy9hcnRpY2xlLWVsZW1lbnQuanMK
QEAgLTM1LDcgKzM1LDcgQEAgZWRpdGFibGUuY29udGVudEVkaXRhYmxlID0gdHJ1ZTsKIHZhciBz
ZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7CiBzZWxlY3Rpb24uc2VsZWN0QWxsQ2hp
bGRyZW4oZWRpdGFibGUpOwogZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ0Zvcm1hdEJsb2NrJywgZmFs
c2UsICdhcnRpY2xlJyk7Ci1zZWxlY3Rpb24uY29sbGFwc2UoKTsKK3NlbGVjdGlvbi5jb2xsYXBz
ZShudWxsLCAwKTsKIHNob3VsZEJlKCdkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3BhbjIiKS5w
YXJlbnROb2RlLm5vZGVOYW1lJywgJyJBUlRJQ0xFIicpOwogZG9jdW1lbnQuYm9keS5yZW1vdmVD
aGlsZChlZGl0YWJsZSk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaHRtbC9zY3Jp
cHQtdGVzdHMvYXNpZGUtZWxlbWVudC5qcyBiL0xheW91dFRlc3RzL2Zhc3QvaHRtbC9zY3JpcHQt
dGVzdHMvYXNpZGUtZWxlbWVudC5qcwppbmRleCBmOGMwMTNkLi41OGNjZDY1IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L2h0bWwvc2NyaXB0LXRlc3RzL2FzaWRlLWVsZW1lbnQuanMKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9odG1sL3NjcmlwdC10ZXN0cy9hc2lkZS1lbGVtZW50LmpzCkBA
IC0zNSw3ICszNSw3IEBAIGVkaXRhYmxlLmNvbnRlbnRFZGl0YWJsZSA9IHRydWU7CiB2YXIgc2Vs
ZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpOwogc2VsZWN0aW9uLnNlbGVjdEFsbENoaWxk
cmVuKGVkaXRhYmxlKTsKIGRvY3VtZW50LmV4ZWNDb21tYW5kKCdGb3JtYXRCbG9jaycsIGZhbHNl
LCAnYXNpZGUnKTsKLXNlbGVjdGlvbi5jb2xsYXBzZSgpOworc2VsZWN0aW9uLmNvbGxhcHNlKG51
bGwsIDApOwogc2hvdWxkQmUoJ2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzcGFuMiIpLnBhcmVu
dE5vZGUubm9kZU5hbWUnLCAnIkFTSURFIicpOwogZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChl
ZGl0YWJsZSk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaHRtbC9zY3JpcHQtdGVz
dHMvZm9vdGVyLWVsZW1lbnQuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2h0bWwvc2NyaXB0LXRlc3Rz
L2Zvb3Rlci1lbGVtZW50LmpzCmluZGV4IDYxYjdmYTIuLjI2NTY4MGYgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvaHRtbC9zY3JpcHQtdGVzdHMvZm9vdGVyLWVsZW1lbnQuanMKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9odG1sL3NjcmlwdC10ZXN0cy9mb290ZXItZWxlbWVudC5qcwpAQCAt
MzgsNyArMzgsNyBAQCBlZGl0YWJsZS5jb250ZW50RWRpdGFibGUgPSB0cnVlOwogdmFyIHNlbGVj
dGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTsKIHNlbGVjdGlvbi5zZWxlY3RBbGxDaGlsZHJl
bihlZGl0YWJsZSk7CiBkb2N1bWVudC5leGVjQ29tbWFuZCgnRm9ybWF0QmxvY2snLCBmYWxzZSwg
J2Zvb3RlcicpOwotc2VsZWN0aW9uLmNvbGxhcHNlKCk7CitzZWxlY3Rpb24uY29sbGFwc2UobnVs
bCwgMCk7CiBzaG91bGRCZSgnZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNwYW4yIikucGFyZW50
Tm9kZS5ub2RlTmFtZScsICciRk9PVEVSIicpOwogZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChl
ZGl0YWJsZSk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaHRtbC9zY3JpcHQtdGVz
dHMvaGVhZGVyLWVsZW1lbnQuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2h0bWwvc2NyaXB0LXRlc3Rz
L2hlYWRlci1lbGVtZW50LmpzCmluZGV4IDRlODkwMjEuLmNlMTdhNTAgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvaHRtbC9zY3JpcHQtdGVzdHMvaGVhZGVyLWVsZW1lbnQuanMKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9odG1sL3NjcmlwdC10ZXN0cy9oZWFkZXItZWxlbWVudC5qcwpAQCAt
MzgsNyArMzgsNyBAQCBlZGl0YWJsZS5jb250ZW50RWRpdGFibGUgPSB0cnVlOwogdmFyIHNlbGVj
dGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTsKIHNlbGVjdGlvbi5zZWxlY3RBbGxDaGlsZHJl
bihlZGl0YWJsZSk7CiBkb2N1bWVudC5leGVjQ29tbWFuZCgnRm9ybWF0QmxvY2snLCBmYWxzZSwg
J2hlYWRlcicpOwotc2VsZWN0aW9uLmNvbGxhcHNlKCk7CitzZWxlY3Rpb24uY29sbGFwc2UobnVs
bCwgMCk7CiBzaG91bGRCZSgnZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNwYW4yIikucGFyZW50
Tm9kZS5ub2RlTmFtZScsICciSEVBREVSIicpOwogZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChl
ZGl0YWJsZSk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaHRtbC9zY3JpcHQtdGVz
dHMvaGdyb3VwLWVsZW1lbnQuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2h0bWwvc2NyaXB0LXRlc3Rz
L2hncm91cC1lbGVtZW50LmpzCmluZGV4IGQ3ZjMwMDQuLjI3NjNhNjkgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvaHRtbC9zY3JpcHQtdGVzdHMvaGdyb3VwLWVsZW1lbnQuanMKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9odG1sL3NjcmlwdC10ZXN0cy9oZ3JvdXAtZWxlbWVudC5qcwpAQCAt
MzYsNyArMzYsNyBAQCBlZGl0YWJsZS5jb250ZW50RWRpdGFibGUgPSB0cnVlOwogdmFyIHNlbGVj
dGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTsKIHNlbGVjdGlvbi5zZWxlY3RBbGxDaGlsZHJl
bihlZGl0YWJsZSk7CiBkb2N1bWVudC5leGVjQ29tbWFuZCgnRm9ybWF0QmxvY2snLCBmYWxzZSwg
J2hncm91cCcpOwotc2VsZWN0aW9uLmNvbGxhcHNlKCk7CitzZWxlY3Rpb24uY29sbGFwc2UobnVs
bCwgMCk7CiBzaG91bGRCZSgnZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNwYW4yIikucGFyZW50
Tm9kZS5ub2RlTmFtZScsICciSEdST1VQIicpOwogZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChl
ZGl0YWJsZSk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaHRtbC9zY3JpcHQtdGVz
dHMvc2VjdGlvbi1lbGVtZW50LmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9odG1sL3NjcmlwdC10ZXN0
cy9zZWN0aW9uLWVsZW1lbnQuanMKaW5kZXggMTc2MzIyNS4uYTE3MDBlYiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9odG1sL3NjcmlwdC10ZXN0cy9zZWN0aW9uLWVsZW1lbnQuanMKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9odG1sL3NjcmlwdC10ZXN0cy9zZWN0aW9uLWVsZW1lbnQuanMK
QEAgLTM1LDcgKzM1LDcgQEAgZWRpdGFibGUuY29udGVudEVkaXRhYmxlID0gdHJ1ZTsKIHZhciBz
ZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7CiBzZWxlY3Rpb24uc2VsZWN0QWxsQ2hp
bGRyZW4oZWRpdGFibGUpOwogZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ0Zvcm1hdEJsb2NrJywgZmFs
c2UsICdzZWN0aW9uJyk7Ci1zZWxlY3Rpb24uY29sbGFwc2UoKTsKK3NlbGVjdGlvbi5jb2xsYXBz
ZShudWxsLCAwKTsKIHNob3VsZEJlKCdkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3BhbjIiKS5w
YXJlbnROb2RlLm5vZGVOYW1lJywgJyJTRUNUSU9OIicpOwogZG9jdW1lbnQuYm9keS5yZW1vdmVD
aGlsZChlZGl0YWJsZSk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW5saW5lL3Jl
bGF0aXZlLXBvc2l0aW9uZWQtb3ZlcmZsb3cuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW5saW5l
L3JlbGF0aXZlLXBvc2l0aW9uZWQtb3ZlcmZsb3cuaHRtbAppbmRleCBkNzlkMzg0Li4yZGMyOWQ1
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2lubGluZS9yZWxhdGl2ZS1wb3NpdGlvbmVk
LW92ZXJmbG93Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbmxpbmUvcmVsYXRpdmUtcG9z
aXRpb25lZC1vdmVyZmxvdy5odG1sCkBAIC0zLDcgKzMsNyBAQAogICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJ0YXJnZXQiKS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGZ1bmN0aW9uKGV2
ZW50KSB7CiAgICAgICAgIGV2ZW50LnRhcmdldC5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSAiZ3Jl
ZW4iOwogICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRl
eHROb2RlKCJQQVNTIikpOwotICAgIH0pOworICAgIH0sIGZhbHNlKTsKIAogICAgIGRvY3VtZW50
LmJvZHkub2Zmc2V0VG9wOwogICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW5zcGVjdG9yLXN1cHBvcnQvdW5jYXVnaHQt
ZG9tMS1leGNlcHRpb24uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW5zcGVjdG9yLXN1cHBvcnQv
dW5jYXVnaHQtZG9tMS1leGNlcHRpb24uaHRtbAppbmRleCAwNWU4YzliLi42ZDBlNTQzIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2luc3BlY3Rvci1zdXBwb3J0L3VuY2F1Z2h0LWRvbTEt
ZXhjZXB0aW9uLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbnNwZWN0b3Itc3VwcG9ydC91
bmNhdWdodC1kb20xLWV4Y2VwdGlvbi5odG1sCkBAIC04LDcgKzgsNyBAQCBmdW5jdGlvbiBvbmxv
YWQoKQogICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CiAKICAgICAv
LyBGb2xsb3dpbmcgY29kZSBnZW5lcmF0ZXMgYW4gZXhjZXB0aW9uLgotICAgIHZhciBwID0gZG9j
dW1lbnQuY3JlYXRlVGV4dE5vZGUoKTsKKyAgICB2YXIgcCA9IGRvY3VtZW50LmNyZWF0ZVRleHRO
b2RlKG51bGwpOwogICAgIHAudGV4dENvbnRlbnQgPSAiZm9vIjsKICAgICBwLnNwbGl0VGV4dCgx
MDAwMCk7CiB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2luc3BlY3Rvci1zdXBwb3J0
L3VuY2F1Z2h0LWRvbTMtZXhjZXB0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2luc3BlY3Rv
ci1zdXBwb3J0L3VuY2F1Z2h0LWRvbTMtZXhjZXB0aW9uLmh0bWwKaW5kZXggYWQ0NDUxYS4uZTAz
N2JmZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9pbnNwZWN0b3Itc3VwcG9ydC91bmNh
dWdodC1kb20zLWV4Y2VwdGlvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaW5zcGVjdG9y
LXN1cHBvcnQvdW5jYXVnaHQtZG9tMy1leGNlcHRpb24uaHRtbApAQCAtNiw3ICs2LDcgQEAgZnVu
Y3Rpb24gb25sb2FkKCkKIHsKICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQog
ICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgZG9jdW1lbnQu
YXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgpKTsKKyAgICBkb2N1bWVudC5hcHBl
bmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdwJykpOwogfQogCiA8L3NjcmlwdD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbG9hZGVyL2xvY2FsLUphdmFTY3JpcHQtZnJvbS1s
b2NhbC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvbG9jYWwtSmF2YVNjcmlwdC1mcm9t
LWxvY2FsLmh0bWwKaW5kZXggNGU3MGRkNS4uMGY0OTFkOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9sb2FkZXIvbG9jYWwtSmF2YVNjcmlwdC1mcm9tLWxvY2FsLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9sb2FkZXIvbG9jYWwtSmF2YVNjcmlwdC1mcm9tLWxvY2FsLmh0bWwKQEAg
LTI0LDE0ICsyNCwxNCBAQAogCiAgICAgICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKQogICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUo
KTsKLSAgICAgICAgfSk7CisgICAgICAgIH0sIGZhbHNlKTsKICAgICAgICAgbG9jYWxTY3JpcHRF
bGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIiwgZnVuY3Rpb24oKSB7CiAgICAgICAgICAg
ICB2YXIgdGFnID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc3VsdCIpOwogICAgICAgICAg
ICAgdGFnLmlubmVySFRNTCA9ICJUZXN0IEZhaWxlZDogTG9jYWwgc2NyaXB0IG5vdCBsb2FkZWQu
IjsKIAogICAgICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKICAgICAg
ICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Ci0gICAgICAgIH0p
OworICAgICAgICB9LCBmYWxzZSk7CiAKICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGls
ZChsb2NhbFNjcmlwdEVsZW1lbnQpCiAgICAgfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9sb2FkZXIvbG9jYWwtY3NzLWFsbG93ZWQtaW4tc3RyaWN0LW1vZGUuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvbG9hZGVyL2xvY2FsLWNzcy1hbGxvd2VkLWluLXN0cmljdC1tb2RlLmh0bWwKaW5k
ZXggYzIyNmNmMi4uNGY0NzBmYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIv
bG9jYWwtY3NzLWFsbG93ZWQtaW4tc3RyaWN0LW1vZGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2xvYWRlci9sb2NhbC1jc3MtYWxsb3dlZC1pbi1zdHJpY3QtbW9kZS5odG1sCkBAIC0xMCw3
ICsxMCw3IEBACiAgICAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4
dCgpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICB2YXIgdGFyZ2V0ID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoInRhcmdldCIpOwotICAgICAgICAgICAgdmFyIHN0eWxlID0gZ2V0Q29tcHV0
ZWRTdHlsZSh0YXJnZXQpOworICAgICAgICAgICAgdmFyIHN0eWxlID0gZ2V0Q29tcHV0ZWRTdHls
ZSh0YXJnZXQsIG51bGwpOwogICAgICAgICAgICAgdGFyZ2V0LmlubmVyVGV4dCA9IHN0eWxlLnBv
c2l0aW9uID09ICJyZWxhdGl2ZSIgPyAiU1VDQ0VTUyIgOiAiRkFJTCI7CiAgICAgICAgIH0KICAg
ICA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbXVsdGljb2wvZ2FwLW5v
bi1uZWdhdGl2ZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tdWx0aWNvbC9nYXAtbm9uLW5lZ2F0
aXZlLmh0bWwKaW5kZXggMzkxMmFlNS4uZTc2MDE5MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9tdWx0aWNvbC9nYXAtbm9uLW5lZ2F0aXZlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9tdWx0aWNvbC9nYXAtbm9uLW5lZ2F0aXZlLmh0bWwKQEAgLTEwLDcgKzEwLDcgQEAKICAgICBp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQogICAgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5kdW1wQXNUZXh0KCk7CiAKLSAgICB2YXIgc3R5bGUgPSBnZXRDb21wdXRlZFN0eWxlKGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSk7CisgICAgdmFyIHN0eWxlID0gZ2V0Q29t
cHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0IiksIG51bGwpOwogICAg
IHZhciBjb2x1bW5HYXAgPSBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCItd2Via2l0LWNvbHVtbi1n
YXAiKTsKICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0IikuaW5uZXJUZXh0ID0g
KGNvbHVtbkdhcCA9PSAiMCIgfHwgY29sdW1uR2FwID09ICJub3JtYWwiKSA/ICJQQVNTIiA6ICJG
QUlMOiBjb2x1bW4tZ2FwIGlzICIgKyBjb2x1bW5HYXA7CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvcGFyc2VyL3NjcmlwdC10ZXN0cy9ibG9jay1uZXN0aW5nLWNhcC10
YWJsZS5qcyBiL0xheW91dFRlc3RzL2Zhc3QvcGFyc2VyL3NjcmlwdC10ZXN0cy9ibG9jay1uZXN0
aW5nLWNhcC10YWJsZS5qcwppbmRleCBhMzUzYjU4Li44NjAxZTAwIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L3BhcnNlci9zY3JpcHQtdGVzdHMvYmxvY2stbmVzdGluZy1jYXAtdGFibGUu
anMKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9wYXJzZXIvc2NyaXB0LXRlc3RzL2Jsb2NrLW5lc3Rp
bmctY2FwLXRhYmxlLmpzCkBAIC01LDcgKzUsNyBAQCB2YXIgbWFya3VwID0gIiI7CiB2YXIgaTsK
IGZvciAoaSA9IDA7IGkgPCBkZXB0aDsgKytpKQogICAgIG1hcmt1cCArPSAiPHRhYmxlIGlkPSd0
IiArIGkgKyAiJz48dGJvZHk+PHRyPjx0ZCBpZD0ndGQiICsgaSArICInPiI7Ci12YXIgZG9jID0g
ZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlSFRNTERvY3VtZW50KCk7Cit2YXIgZG9jID0g
ZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlSFRNTERvY3VtZW50KCIiKTsKIGRvYy5ib2R5
LmlubmVySFRNTCA9IG1hcmt1cDsKIAogdmFyIHQxMDIzID0gZG9jLmdldEVsZW1lbnRCeUlkKCJ0
MTAyMyIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wYXJzZXIvc2NyaXB0LXRlc3Rz
L2Jsb2NrLW5lc3RpbmctY2FwLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9wYXJzZXIvc2NyaXB0LXRl
c3RzL2Jsb2NrLW5lc3RpbmctY2FwLmpzCmluZGV4IGYwN2Y1ODAuLmFkYWIwYzggMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvcGFyc2VyL3NjcmlwdC10ZXN0cy9ibG9jay1uZXN0aW5nLWNh
cC5qcworKysgYi9MYXlvdXRUZXN0cy9mYXN0L3BhcnNlci9zY3JpcHQtdGVzdHMvYmxvY2stbmVz
dGluZy1jYXAuanMKQEAgLTUsNyArNSw3IEBAIHZhciBtYXJrdXAgPSAiIjsKIHZhciBpOwogZm9y
IChpID0gMDsgaSA8IGRlcHRoOyArK2kpCiAgICAgbWFya3VwICs9ICI8ZGl2IGlkPSdkIiArIGkg
KyAiJz4iOwotdmFyIGRvYyA9IGRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZUhUTUxEb2N1
bWVudCgpOwordmFyIGRvYyA9IGRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZUhUTUxEb2N1
bWVudCgiIik7CiBkb2MuYm9keS5pbm5lckhUTUwgPSBtYXJrdXA7CiAKIHZhciBkNDA5NCA9IGRv
Yy5nZXRFbGVtZW50QnlJZCgiZDQwOTQiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
cGFyc2VyL3NjcmlwdC10ZXN0cy9lbGVtZW50LW5lc3RpbmctY2FwLmpzIGIvTGF5b3V0VGVzdHMv
ZmFzdC9wYXJzZXIvc2NyaXB0LXRlc3RzL2VsZW1lbnQtbmVzdGluZy1jYXAuanMKaW5kZXggYjYy
ODlmYi4uZTljODhmNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wYXJzZXIvc2NyaXB0
LXRlc3RzL2VsZW1lbnQtbmVzdGluZy1jYXAuanMKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9wYXJz
ZXIvc2NyaXB0LXRlc3RzL2VsZW1lbnQtbmVzdGluZy1jYXAuanMKQEAgLTQsNyArNCw3IEBAIHZh
ciBkZXB0aCA9IDUxMDA7CiB2YXIgbWFya3VwID0gIiI7CiBmb3IgKHZhciBpID0gMzsgaSA8IGRl
cHRoOyArK2kpCiAgICAgbWFya3VwICs9ICI8c3BhbiBpZD0ncyIgKyBpICsgIic+IjsKLXZhciBk
b2MgPSBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQoKTsKK3ZhciBk
b2MgPSBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQoIiIpOwogZG9j
LmJvZHkuaW5uZXJIVE1MID0gbWFya3VwOwogCiB2YXIgczEgPSBkb2MuZ2V0RWxlbWVudEJ5SWQo
InM1MDAxIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3Byb2ZpbGUt
d2l0aC1uby10aXRsZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9wcm9maWxlLXdp
dGgtbm8tdGl0bGUuaHRtbAppbmRleCBiMDRkMjdiLi4zNWE4ZGU1IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3Byb2ZpbGUtd2l0aC1uby10aXRsZS5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvcHJvZmlsZS13aXRoLW5vLXRpdGxlLmh0bWwKQEAgLTks
NyArOSw3IEBAIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKIAogZnVuY3Rpb24g
c3RhcnRUZXN0KCkKIHsKLSAgICBjb25zb2xlLnByb2ZpbGUoKTsKKyAgICBjb25zb2xlLnByb2Zp
bGUobnVsbCk7CiAgICAgZW5kVGVzdCgpOwogfQogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3Jlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNl
cy5qcyBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvcmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3Qt
SlMtcmVzb3VyY2VzLmpzCmluZGV4IDI3MDFjMzMuLjMyNTk3OWMgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvcHJvZmlsZXIvcmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2Vz
LmpzCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvcmVzb3VyY2VzL3Byb2ZpbGVyLXRl
c3QtSlMtcmVzb3VyY2VzLmpzCkBAIC0xLDUgKzEsNSBAQAogZnVuY3Rpb24gZW5kVGVzdCgpIHsK
LSAgICBjb25zb2xlLnByb2ZpbGVFbmQoKTsKKyAgICBjb25zb2xlLnByb2ZpbGVFbmQobnVsbCk7
CiAgICAgcHJpbnRQcm9maWxlc0RhdGFXaXRob3V0VGltZSgpOwogCiAgICAgaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmls
ZXIvc2ltcGxlLW5vLWxldmVsLWNoYW5nZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxl
ci9zaW1wbGUtbm8tbGV2ZWwtY2hhbmdlLmh0bWwKaW5kZXggMDkyYWVkZS4uZTRhOTVkYiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zaW1wbGUtbm8tbGV2ZWwtY2hhbmdl
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zaW1wbGUtbm8tbGV2ZWwtY2hh
bmdlLmh0bWwKQEAgLTIxLDcgKzIxLDcgQEAgZnVuY3Rpb24gZnVuY3Rpb25XaWNoU3RhcnRzQW5k
U3RvcHNUaGVQcm9maWxlcigpCiAKICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0
Iik7CiAKLSAgICBjb25zb2xlLnByb2ZpbGVFbmQoKTsKKyAgICBjb25zb2xlLnByb2ZpbGVFbmQo
bnVsbCk7CiAgICAgcHJpbnRQcm9maWxlc0RhdGFXaXRob3V0VGltZSgpOwogfQogPC9zY3JpcHQ+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3R3by1leGVjdXRpb24tY29u
dGV4dHMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvdHdvLWV4ZWN1dGlvbi1jb250
ZXh0cy5odG1sCmluZGV4IGMzZTkxYjUuLjkyYmUwODUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvcHJvZmlsZXIvdHdvLWV4ZWN1dGlvbi1jb250ZXh0cy5odG1sCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvcHJvZmlsZXIvdHdvLWV4ZWN1dGlvbi1jb250ZXh0cy5odG1sCkBAIC0zMSw3ICsz
MSw3IEBAIHRoZSBwcm9maWxlLiAgSW4gdGhlIHByb2ZpbGUgdGhlcmUgc2hvdWxkIGJlIHR3byAo
cHJvZ3JhbSkgZWxlbWVudHMuCiA8L2JvZHk+CiA8c2NyaXB0PgogZnVuY3Rpb24gdGVzdEVuZCgp
IHsKLSAgICBjb25zb2xlLnByb2ZpbGVFbmQoKTsKKyAgICBjb25zb2xlLnByb2ZpbGVFbmQobnVs
bCk7CiAgICAgcHJpbnRQcm9maWxlc0RhdGFXaXRob3V0VGltZSgpOwogfQogPC9zY3JpcHQ+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvbW92aW5nLXNoYWRvdy1vbi1jb250
YWluZXIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9tb3Zpbmctc2hhZG93LW9uLWNv
bnRhaW5lci5odG1sCmluZGV4IDBhMGIxNzUuLjUzZjc4YWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvcmVwYWludC9tb3Zpbmctc2hhZG93LW9uLWNvbnRhaW5lci5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvcmVwYWludC9tb3Zpbmctc2hhZG93LW9uLWNvbnRhaW5lci5odG1sCkBA
IC03MSwxOCArNzEsMTggQEAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBmdW5jdGlv
biAoKSB7CiAgICAgICAgIG5vZGUuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgZnVuY3Rp
b24gKGV2KSB7CiAgICAgICAgICAgICB2YXIgZSA9IGV2IHx8IGV2ZW50OwogICAgICAgICAgICAg
YXJtZWQgPSB7IG5vZGU6IGUudGFyZ2V0IHx8IGUuc3JjRWxlbWVudCB9OwotICAgICAgICB9KTsK
KyAgICAgICAgfSwgZmFsc2UpOwogICAgICAgICBub2RlLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNl
dXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhcm1lZCA9IG51bGw7Ci0gICAgICAgIH0p
OworICAgICAgICB9LCBmYWxzZSk7CiAgICAgfQogICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVy
KCdtb3VzZW1vdmUnLCBmdW5jdGlvbiAoZXYpIHsKICAgICAgICAgaWYgKGFybWVkKSB7CiAgICAg
ICAgICAgICB2YXIgZSA9IGV2IHx8IGV2ZW50OwogICAgICAgICAgICAgc2V0Q2VudGVyUG9zaXRp
b24oYXJtZWQubm9kZSwgZS5jbGllbnRYLCBlLmNsaWVudFkpOwogICAgICAgICB9Ci0gICAgfSk7
Ci19KTsKKyAgICB9LCBmYWxzZSk7Cit9LCBmYWxzZSk7CiAKIC8vLS0+CiA8L3NjcmlwdD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9tb3Zpbmctc2hhZG93LW9uLXBhdGgu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9tb3Zpbmctc2hhZG93LW9uLXBhdGguaHRt
bAppbmRleCA3N2M1NjNlLi4xNzI3YjcxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Jl
cGFpbnQvbW92aW5nLXNoYWRvdy1vbi1wYXRoLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9y
ZXBhaW50L21vdmluZy1zaGFkb3ctb24tcGF0aC5odG1sCkBAIC03MSwxOCArNzEsMTggQEAgd2lu
ZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIG5vZGUu
YWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgZnVuY3Rpb24gKGV2KSB7CiAgICAgICAgICAg
ICB2YXIgZSA9IGV2IHx8IGV2ZW50OwogICAgICAgICAgICAgYXJtZWQgPSB7IG5vZGU6IGUudGFy
Z2V0IHx8IGUuc3JjRWxlbWVudCB9OwotICAgICAgICB9KTsKKyAgICAgICAgfSwgZmFsc2UpOwog
ICAgICAgICBub2RlLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCBmdW5jdGlvbiAoKSB7CiAg
ICAgICAgICAgICBhcm1lZCA9IG51bGw7Ci0gICAgICAgIH0pOworICAgICAgICB9LCBmYWxzZSk7
CiAgICAgfQogICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCBmdW5jdGlv
biAoZXYpIHsKICAgICAgICAgaWYgKGFybWVkKSB7CiAgICAgICAgICAgICB2YXIgZSA9IGV2IHx8
IGV2ZW50OwogICAgICAgICAgICAgc2V0Q2VudGVyUG9zaXRpb24oYXJtZWQubm9kZSwgZS5jbGll
bnRYLCBlLmNsaWVudFkpOwogICAgICAgICB9Ci0gICAgfSk7Ci19KTsKKyAgICB9LCBmYWxzZSk7
Cit9LCBmYWxzZSk7CiAKIC8vLS0+CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvdGFibGUvY29sLXdpZHRoLXNwYW4tZXhwYW5kLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2Zhc3QvdGFibGUvY29sLXdpZHRoLXNwYW4tZXhwYW5kLWV4cGVjdGVkLnR4dAppbmRleCAx
NWViMWZjLi4yMWVmMWZmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3RhYmxlL2NvbC13
aWR0aC1zcGFuLWV4cGFuZC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC90YWJs
ZS9jb2wtd2lkdGgtc3Bhbi1leHBhbmQtZXhwZWN0ZWQudHh0CkBAIC01LDggKzUsOCBAQCBUaGlz
IHRlc3RzIEJ1ZyAxNDg1ODogPGNvbD4gd2lkdGggaWdub3JlZCB3aGVuIG5vdCB0aWVkIHRvIGEg
c2luZ2xlIGNlbGwuCiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAotUEFTUyB3aW5kb3cu
Z2V0Q29tcHV0ZWRTdHlsZSh0ZXN0Q2VsbCkud2lkdGggaXMgJzI1MHB4JwotUEFTUyB3aW5kb3cu
Z2V0Q29tcHV0ZWRTdHlsZSh0ZXN0VGFibGUpLndpZHRoIGlzICc1MDBweCcKK1BBU1Mgd2luZG93
LmdldENvbXB1dGVkU3R5bGUodGVzdENlbGwsIG51bGwpLndpZHRoIGlzICcyNTBweCcKK1BBU1Mg
d2luZG93LmdldENvbXB1dGVkU3R5bGUodGVzdFRhYmxlLCBudWxsKS53aWR0aCBpcyAnNTAwcHgn
CiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvdGFibGUvY29sLXdpZHRoLXNwYW4tZXhwYW5kLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L3RhYmxlL2NvbC13aWR0aC1zcGFuLWV4cGFuZC5odG1sCmluZGV4
IDQxYWZmZjYuLmEyYjY3OGMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvdGFibGUvY29s
LXdpZHRoLXNwYW4tZXhwYW5kLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC90YWJsZS9jb2wt
d2lkdGgtc3Bhbi1leHBhbmQuaHRtbApAQCAtMTUsOCArMTUsOCBAQCBmdW5jdGlvbiBydW5UZXN0
KCkKICAgICB2YXIgdGVzdENlbGwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdENlbGwn
KTsKICAgICB2YXIgdGVzdFRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3RUYWJs
ZScpOwogICAgIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIDxhIGhyZWY9J2h0dHA6Ly93ZWJraXQu
b3JnL2IvMTQ4NTgnPkJ1ZyAxNDg1ODogJmx0O2NvbCZndDsgd2lkdGggaWdub3JlZCB3aGVuIG5v
dCB0aWVkIHRvIGEgc2luZ2xlIGNlbGw8L2E+LiIpOwotICAgIHNob3VsZEJlKCJ3aW5kb3cuZ2V0
Q29tcHV0ZWRTdHlsZSh0ZXN0Q2VsbCkud2lkdGgiLCAiJzI1MHB4JyIpOwotICAgIHNob3VsZEJl
KCJ3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0ZXN0VGFibGUpLndpZHRoIiwgIic1MDBweCciKTsK
KyAgICBzaG91bGRCZSgid2luZG93LmdldENvbXB1dGVkU3R5bGUodGVzdENlbGwsIG51bGwpLndp
ZHRoIiwgIicyNTBweCciKTsKKyAgICBzaG91bGRCZSgid2luZG93LmdldENvbXB1dGVkU3R5bGUo
dGVzdFRhYmxlLCBudWxsKS53aWR0aCIsICInNTAwcHgnIik7CiAgICAgc3VjY2Vzc2Z1bGx5UGFy
c2VkID0gdHJ1ZTsKICAgICBpc1N1Y2Nlc3NmdWxseVBhcnNlZCgpOwogfQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC90YWJsZS90ZC1kaXNwbGF5LW5vd3JhcC5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC90YWJsZS90ZC1kaXNwbGF5LW5vd3JhcC5odG1sCmluZGV4IDkyNTgwODkuLjFiYzUz
ZDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvdGFibGUvdGQtZGlzcGxheS1ub3dyYXAu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3RhYmxlL3RkLWRpc3BsYXktbm93cmFwLmh0bWwK
QEAgLTEwLDggKzEwLDggQEAKICAgICAgIHZhciB0ZXN0RGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ3Rlc3REaXYnKTsKICAgICAgIAogICAgICAgdmFyIHJlc3VsdCA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdyZXN1bHQnKTsKLSAgICAgIHJlc3VsdC5pbm5lckhUTUwgPSAnQ29tcHV0
ZWQgd2hpdGUtc3BhY2Ugc3R5bGUgb2YgJmx0O3RoJmd0OzogJyArIHdpbmRvdy5nZXRDb21wdXRl
ZFN0eWxlKHRlc3RIZWFkZXIpLndoaXRlU3BhY2UgKyAnPGJyPic7Ci0gICAgICByZXN1bHQuaW5u
ZXJIVE1MICs9ICdDb21wdXRlZCB3aGl0ZS1zcGFjZSBzdHlsZSBvZiAmbHQ7ZGl2Jmd0OzogJyAr
IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRlc3REaXYpLndoaXRlU3BhY2UgKyAnPGJyPic7Cisg
ICAgICByZXN1bHQuaW5uZXJIVE1MID0gJ0NvbXB1dGVkIHdoaXRlLXNwYWNlIHN0eWxlIG9mICZs
dDt0aCZndDs6ICcgKyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0ZXN0SGVhZGVyLCBudWxsKS53
aGl0ZVNwYWNlICsgJzxicj4nOworICAgICAgcmVzdWx0LmlubmVySFRNTCArPSAnQ29tcHV0ZWQg
d2hpdGUtc3BhY2Ugc3R5bGUgb2YgJmx0O2RpdiZndDs6ICcgKyB3aW5kb3cuZ2V0Q29tcHV0ZWRT
dHlsZSh0ZXN0RGl2LCBudWxsKS53aGl0ZVNwYWNlICsgJzxicj4nOwogICAgIH0KICAgPC9zY3Jp
cHQ+CiA8L2hlYWQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQvc2NyaXB0LXRl
c3RzL2ZpbmQtYmFja3dhcmRzLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L3NjcmlwdC10ZXN0
cy9maW5kLWJhY2t3YXJkcy5qcwppbmRleCA1NDk2M2MwLi4wY2QyM2JmIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L3RleHQvc2NyaXB0LXRlc3RzL2ZpbmQtYmFja3dhcmRzLmpzCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvdGV4dC9zY3JpcHQtdGVzdHMvZmluZC1iYWNrd2FyZHMuanMKQEAg
LTQyLDYgKzQyLDcgQEAgZm9yIChpID0gMDsgaSA8IDEwOyArK2kpCiAgICAgbWFueUNoYXJhY3Rl
cnMgKz0gbWFueUNoYXJhY3RlcnM7CiB2YXIgdGVuVGhvdXNhbmRDaGFyYWN0ZXJzID0gbWFueUNo
YXJhY3RlcnMuc3Vic3RyaW5nKDAsIDEwMDAwKTsKIAordGVzdEZpbmQoJ2FiYycsICdhJywgZm9y
d2FyZCk7CiBzaG91bGRCZSgidGVzdEZpbmQoJ2FiYycsICdhJywgZm9yd2FyZCkiLCAiJzAsIDEn
Iik7CiBzaG91bGRCZSgidGVzdEZpbmQoJ2FiYycsICdiJywgZm9yd2FyZCkiLCAiJzEsIDInIik7
CiBzaG91bGRCZSgidGVzdEZpbmQoJ2FiYycsICdjJywgZm9yd2FyZCkiLCAiJzIsIDMnIik7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Rva2VuaXplci9hbXBlcnNhbmQtaW4tc3BlY2lh
bC10YWcuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvdG9rZW5pemVyL2FtcGVyc2FuZC1pbi1zcGVj
aWFsLXRhZy5odG1sCmluZGV4IDdlNjFmN2YuLjUwOTJjYjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvdG9rZW5pemVyL2FtcGVyc2FuZC1pbi1zcGVjaWFsLXRhZy5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvdG9rZW5pemVyL2FtcGVyc2FuZC1pbi1zcGVjaWFsLXRhZy5odG1sCkBA
IC0xNCw3ICsxNCw3IEBACiAKICAgICBmdW5jdGlvbiB0ZXN0VGl0bGUodGV4dCwgZXhwZWN0ZWQp
CiAgICAgewotICAgICAgICB2YXIgZG9jID0gZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRl
SFRNTERvY3VtZW50KCk7CisgICAgICAgIHZhciBkb2MgPSBkb2N1bWVudC5pbXBsZW1lbnRhdGlv
bi5jcmVhdGVIVE1MRG9jdW1lbnQoIiIpOwogICAgICAgICBkb2Mub3BlbigpOwogICAgICAgICBk
b2Mud3JpdGUoIjx0aXRsZT4iICsgdGV4dCArICI8L3RpdGxlPnRleHQ8L3RpdGxlPiIpOwogCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3hwYXRoL3hwYXRoLWVtcHR5LXN0cmluZy5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC94cGF0aC94cGF0aC1lbXB0eS1zdHJpbmcuaHRtbAppbmRleCAw
NmE2NTE5Li5lZjk0ZWE0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3hwYXRoL3hwYXRo
LWVtcHR5LXN0cmluZy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QveHBhdGgveHBhdGgtZW1w
dHktc3RyaW5nLmh0bWwKQEAgLTUsNyArNSw3IEBACiAgICAgICAgICAgICBpZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKQogICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVy
LmR1bXBBc1RleHQoKTsKICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgIGRvY3VtZW50LmV2
YWx1YXRlKCIvL2FbQGlkPScnXSIsZG9jdW1lbnQpCisgICAgICAgICAgICBkb2N1bWVudC5ldmFs
dWF0ZSgiLy9hW0BpZD0nJ10iLCBkb2N1bWVudCwgbnVsbCwgbnVsbCwgbnVsbCkKICAgICAgICAg
fQogICAgIDwvc2NyaXB0PgogPC9oZWFkPgpAQCAtMTQsNCArMTQsNCBAQAogICAgIFNVQ0NFU1M6
IERpZG4ndCBjcmFzaCEKICAgICAKIDwvYm9keT4KLTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVu
ZCBvZiBmaWxlCis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21p
c2MvY3NzLWFjY2VwdC1hbnktdHlwZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNj
L2Nzcy1hY2NlcHQtYW55LXR5cGUuaHRtbAppbmRleCBkNmI5NzY2Li40ODFhYjZlIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvY3NzLWFjY2VwdC1hbnktdHlwZS5odG1s
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9jc3MtYWNjZXB0LWFueS10eXBlLmh0
bWwKQEAgLTksNyArOSw3IEBACiAgICAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
ZHVtcEFzVGV4dCgpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICB2YXIgdGFyZ2V0ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpOwotICAgICAgICAgICAgdmFyIHN0eWxlID0g
Z2V0Q29tcHV0ZWRTdHlsZSh0YXJnZXQpOworICAgICAgICAgICAgdmFyIHN0eWxlID0gZ2V0Q29t
cHV0ZWRTdHlsZSh0YXJnZXQsIG51bGwpOwogICAgICAgICAgICAgdGFyZ2V0LmlubmVyVGV4dCA9
IHN0eWxlLnBvc2l0aW9uID09ICJyZWxhdGl2ZSIgPyAiU1VDQ0VTUyIgOiAiRkFJTCI7CiAgICAg
ICAgIH0KICAgICA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
bWlzYy9jc3MtcmVqZWN0LWFueS10eXBlLWluLXN0cmljdC1tb2RlLmh0bWwgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL21pc2MvY3NzLXJlamVjdC1hbnktdHlwZS1pbi1zdHJpY3QtbW9kZS5odG1s
CmluZGV4IDMxNTIzMDQuLjg4NzU3OTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvbWlzYy9jc3MtcmVqZWN0LWFueS10eXBlLWluLXN0cmljdC1tb2RlLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL2Nzcy1yZWplY3QtYW55LXR5cGUtaW4tc3RyaWN0LW1v
ZGUuaHRtbApAQCAtMTAsNyArMTAsNyBAQAogICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLmR1bXBBc1RleHQoKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgdmFyIHRhcmdl
dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKTsKLSAgICAgICAgICAgIHZhciBz
dHlsZSA9IGdldENvbXB1dGVkU3R5bGUodGFyZ2V0KTsKKyAgICAgICAgICAgIHZhciBzdHlsZSA9
IGdldENvbXB1dGVkU3R5bGUodGFyZ2V0LCBudWxsKTsKICAgICAgICAgICAgIHRhcmdldC5pbm5l
clRleHQgPSBzdHlsZS5wb3NpdGlvbiA9PSAic3RhdGljIiA/ICJTVUNDRVNTIiA6ICJGQUlMIjsK
ICAgICAgICAgfQogICAgIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zZWN1cml0eS9sb2NhbC1KYXZhU2NyaXB0LWZyb20tcmVtb3RlLmh0bWwgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2xvY2FsLUphdmFTY3JpcHQtZnJvbS1yZW1vdGUuaHRt
bAppbmRleCAyMzEyNThlLi4wODJhODc5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L2xvY2FsLUphdmFTY3JpcHQtZnJvbS1yZW1vdGUuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2xvY2FsLUphdmFTY3JpcHQtZnJvbS1yZW1vdGUu
aHRtbApAQCAtMTksMTIgKzE5LDEyIEBACiAgICAgICAgICAgICAgICAgICAgIHRhZy5pbm5lckhU
TUwgPSAiVGVzdCBGYWlsZWQuIExvY2FsIHNjcmlwdCBsb2FkZWQgYW5kIHJ1bi4iOwogICAgICAg
ICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgdGFnLmlubmVySFRNTCA9ICJUZXN0
IEZhaWxlZC4gTG9jYWwgc2NyaXB0IGxvYWRlZCwgYnV0IG5vdCBzdWNjZXNzZnVsbHkgcnVuLiI7
Ci0gICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0sIGZhbHNlKTsKIAogICAgICAgICAgICAg
bG9jYWxTY3JpcHRFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIiwgZnVuY3Rpb24oKSB7
CiAgICAgICAgICAgICAgICAgdmFyIHRhZyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1
bHQiKTsKICAgICAgICAgICAgICAgICB0YWcuaW5uZXJIVE1MID0gIlRlc3QgUGFzc2VkOiBMb2Nh
bCBzY3JpcHQgbm90IGxvYWRlZC4iOwotICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9LCBm
YWxzZSk7CiAKICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobG9jYWxTY3Jp
cHRFbGVtZW50KQogICAgICAgICB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3NlY3VyaXR5L2xvY2FsLXZpZGVvLXNyYy1mcm9tLXJlbW90ZS5odG1sIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zZWN1cml0eS9sb2NhbC12aWRlby1zcmMtZnJvbS1yZW1vdGUuaHRtbAppbmRl
eCA2OGI1YTUxLi44YjllODQ5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Nl
Y3VyaXR5L2xvY2FsLXZpZGVvLXNyYy1mcm9tLXJlbW90ZS5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvc2VjdXJpdHkvbG9jYWwtdmlkZW8tc3JjLWZyb20tcmVtb3RlLmh0bWwKQEAg
LTcyLDkgKzcyLDkgQEAKIAogICAgICAgICAgICAgICAgIHZpZGVvID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoInZpZCIpOwogCi0gICAgICAgICAgICAgICAgdmlkZW8uYWRkRXZlbnRMaXN0ZW5l
cigiZXJyb3IiLCBlcnJvcik7CisgICAgICAgICAgICAgICAgdmlkZW8uYWRkRXZlbnRMaXN0ZW5l
cigiZXJyb3IiLCBlcnJvciwgZmFsc2UpOwogCi0gICAgICAgICAgICAgICAgdmlkZW8uYWRkRXZl
bnRMaXN0ZW5lcignbG9hZGVkbWV0YWRhdGEnLCBsb2FkZWRtZXRhZGF0YSk7CisgICAgICAgICAg
ICAgICAgdmlkZW8uYWRkRXZlbnRMaXN0ZW5lcignbG9hZGVkbWV0YWRhdGEnLCBsb2FkZWRtZXRh
ZGF0YSwgZmFsc2UpOwogCiAgICAgICAgICAgICAgICAgdmlkZW8uc3JjPWxvY2FsTW92aWU7CiAg
ICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHBy
ZXF1ZXN0L2V4Y2VwdGlvbnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94
bWxodHRwcmVxdWVzdC9leGNlcHRpb25zLWV4cGVjdGVkLnR4dAppbmRleCA4Nzk5MjM2Li5mYjM0
NjE0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2V4
Y2VwdGlvbnMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0
cHJlcXVlc3QvZXhjZXB0aW9ucy1leHBlY3RlZC50eHQKQEAgLTQsMTEgKzQsMTEgQEAgbmV3IFhN
TEh0dHBSZXF1ZXN0KCkKIFBBU1M6IHJlcS5zZXRSZXF1ZXN0SGVhZGVyKCJGb28iLCAiYmFyIikg
dGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAx
MS4KIFBBU1M6IHJlcS5zZW5kKG51bGwpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJRF9T
VEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEuCiBvcGVuKCkKLVBBU1M6IHJlcS5zZXRSZXF1ZXN0
SGVhZGVyKCkgdGhyZXcgZXhjZXB0aW9uIFN5bnRheEVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50
cy4KLVBBU1M6IHJlcS5zZXRSZXF1ZXN0SGVhZGVyKCJGb28iKSB0aHJldyBleGNlcHRpb24gU3lu
dGF4RXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgorUEFTUzogcmVxLnNldFJlcXVlc3RIZWFk
ZXIoKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KK1BB
U1M6IHJlcS5zZXRSZXF1ZXN0SGVhZGVyKCJGb28iKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9y
OiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KIFBBU1M6IHJlcS5zdGF0dXMoKSB0aHJldyBleGNlcHRp
b24gRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDExLgogUEFTUzogcmVx
LnN0YXR1c1RleHQoKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBE
T00gRXhjZXB0aW9uIDExLgogc2VuZCgpCiBQQVNTOiByZXEuc2VuZChudWxsKSB0aHJldyBleGNl
cHRpb24gRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDExLgogUEFTUzog
cmVxLnNldFJlcXVlc3RIZWFkZXIoIkZvbyIsICJiYXIiKSB0aHJldyBleGNlcHRpb24gRXJyb3I6
IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDExLgotUEFTUzogcmVxLmdldFJlc3Bv
bnNlSGVhZGVyKCkgdGhyZXcgZXhjZXB0aW9uIFN5bnRheEVycm9yOiBOb3QgZW5vdWdoIGFyZ3Vt
ZW50cy4KK1BBU1M6IHJlcS5nZXRSZXNwb25zZUhlYWRlcigpIHRocmV3IGV4Y2VwdGlvbiBUeXBl
RXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVk
aWEvdmlkZW8tY2FuLXBsYXktdHlwZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS92
aWRlby1jYW4tcGxheS10eXBlLWV4cGVjdGVkLnR4dAppbmRleCAxNjZiMjhiLi41MmU5NDYzIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby1jYW4tcGxheS10eXBlLWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby1jYW4tcGxheS10eXBlLWV4cGVjdGVk
LnR4dApAQCAtMSw2ICsxLDUgQEAKIFRlc3QgSFRNTE1lZGlhRWxlbWVudCBjYW5QbGF5VHlwZSgp
IG1ldGhvZC4KIAotRVhQRUNURUQgKHZpZGVvLmNhblBsYXlUeXBlKCkgPT0gJycpIE9LCiBFWFBF
Q1RFRCAodmlkZW8uY2FuUGxheVR5cGUoJ3ZpZGVvLycpID09ICcnKSBPSwogRVhQRUNURUQgKHZp
ZGVvLmNhblBsYXlUeXBlKCd2aWRlby9ibGFoYmxhaCcpID09ICcnKSBPSwogRVhQRUNURUQgKHZp
ZGVvLmNhblBsYXlUeXBlKCd2aWRlby9tcGVnOyBjb2RlY3M9ImF2YzEuNEQ0MDBDIicpID09ICdw
cm9iYWJseScpIE9LCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby1jYW4tcGxh
eS10eXBlLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby1jYW4tcGxheS10eXBlLmh0bWwK
aW5kZXggMmJmOGE3NS4uMWI4MGMxZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvdmlk
ZW8tY2FuLXBsYXktdHlwZS5odG1sCisrKyBiL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLWNhbi1w
bGF5LXR5cGUuaHRtbApAQCAtMTUsNyArMTUsNiBAQAogICAgICAgICAKICAgICAgICAgICAgIHZp
ZGVvID0gbWVkaWFFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3ZpZGVv
JylbMF07CiAKLSAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgidmlkZW8uY2FuUGxheVR5cGUoKSIs
ICIiKTsKICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgidmlkZW8uY2FuUGxheVR5cGUoJ3ZpZGVv
LycpIiwgIiIpOwogICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJ2aWRlby5jYW5QbGF5VHlwZSgn
dmlkZW8vYmxhaGJsYWgnKSIsICIiKTsKICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgidmlkZW8u
Y2FuUGxheVR5cGUoJ3ZpZGVvL21wZWc7IGNvZGVjcz0mcXVvdDthdmMxLjRENDAwQyZxdW90Oycp
IiwgInByb2JhYmx5Iik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdmcvY3NzL2dseXBoLW9y
aWVudGF0aW9uLXJvdW5kaW5nLXRlc3QueGh0bWwgYi9MYXlvdXRUZXN0cy9zdmcvY3NzL2dseXBo
LW9yaWVudGF0aW9uLXJvdW5kaW5nLXRlc3QueGh0bWwKaW5kZXggNmZjNWY5Mi4uNjZhZmU0NSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3ZnL2Nzcy9nbHlwaC1vcmllbnRhdGlvbi1yb3VuZGlu
Zy10ZXN0LnhodG1sCisrKyBiL0xheW91dFRlc3RzL3N2Zy9jc3MvZ2x5cGgtb3JpZW50YXRpb24t
cm91bmRpbmctdGVzdC54aHRtbApAQCAtMTQsNyArMTQsNyBAQCB2YXIgY29tcHV0ZWRTdHlsZTsK
IGZ1bmN0aW9uIHBhcnNlR2x5cGhPcmllbnRhdGlvbkhlbHBlcihwcm9wZXJ0eSwgYW5nbGVWYWx1
ZSwgZXhwZWN0ZWRWYWx1ZSkKIHsKICAgICB0ZXh0RWxlbWVudC5zZXRBdHRyaWJ1dGVOUyhudWxs
LCBwcm9wZXJ0eSwgYW5nbGVWYWx1ZSk7Ci0gICAgY29tcHV0ZWRTdHlsZSA9IHRleHRFbGVtZW50
Lm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZSh0ZXh0RWxlbWVudCk7
CisgICAgY29tcHV0ZWRTdHlsZSA9IHRleHRFbGVtZW50Lm93bmVyRG9jdW1lbnQuZGVmYXVsdFZp
ZXcuZ2V0Q29tcHV0ZWRTdHlsZSh0ZXh0RWxlbWVudCwgbnVsbCk7CiAKICAgICBkZWJ1ZygiVGVz
dCBhbmdsZVZhbHVlOiAnIiArIGFuZ2xlVmFsdWUgKyAiJyIpOwogCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9zdmcvY3VzdG9tL2xvYWRldmVudHMtY2FwdHVyaW5nLnN2ZyBiL0xheW91dFRlc3Rz
L3N2Zy9jdXN0b20vbG9hZGV2ZW50cy1jYXB0dXJpbmcuc3ZnCmluZGV4IDY4MWY4N2UuLjI2MzMy
ZTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vbG9hZGV2ZW50cy1jYXB0dXJp
bmcuc3ZnCisrKyBiL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vbG9hZGV2ZW50cy1jYXB0dXJpbmcu
c3ZnCkBAIC0yMyw3ICsyMyw3IEBACiAgICAgICAgIH0KICAgICAgICAgY29uc29sZS5hcHBlbmRD
aGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiUGFzc2VkIikpOwogICAgICAgfQotICAgICAg
ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCByZXBvcnRS
ZXN1bHRzKTsKKyAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5hZGRFdmVudExpc3RlbmVy
KCdsb2FkJywgcmVwb3J0UmVzdWx0cywgZmFsc2UpOwogICAgIF1dPgogICA8L3NjcmlwdD4KICAg
PGc+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3JlbGF0aXZlLXNpemVkLWNv
bnRlbnQueGh0bWwgYi9MYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3JlbGF0aXZlLXNpemVkLWNvbnRl
bnQueGh0bWwKaW5kZXggZjQ4MzBkOC4uNTY2OTU2YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
c3ZnL2N1c3RvbS9yZWxhdGl2ZS1zaXplZC1jb250ZW50LnhodG1sCisrKyBiL0xheW91dFRlc3Rz
L3N2Zy9jdXN0b20vcmVsYXRpdmUtc2l6ZWQtY29udGVudC54aHRtbApAQCAtMTEsNyArMTEsNyBA
QAogICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwogCiAg
ICAgICAgIGZ1bmN0aW9uIHJlc2l6ZUJveCgpIHsKLSAgICAgICAgICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJjb250ZW50Qm94Iikuc3R5bGUuc2V0UHJvcGVydHkoIndpZHRoIiwgIjQwMHB4
Iik7CisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudEJveCIpLnN0
eWxlLnNldFByb3BlcnR5KCJ3aWR0aCIsICI0MDBweCIsIG51bGwpOwogICAgICAgICAgICAgaWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKICAgICAgICAgICAgICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3N2Zy9jdXN0b20vcmVsYXRpdmUtc2l6ZWQtZGVlcC1zaGFkb3ctdHJlZS1jb250ZW50Lnho
dG1sIGIvTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9yZWxhdGl2ZS1zaXplZC1kZWVwLXNoYWRvdy10
cmVlLWNvbnRlbnQueGh0bWwKaW5kZXggN2VlYjgwYy4uZGQxODQzOSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvc3ZnL2N1c3RvbS9yZWxhdGl2ZS1zaXplZC1kZWVwLXNoYWRvdy10cmVlLWNvbnRl
bnQueGh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9yZWxhdGl2ZS1zaXplZC1kZWVw
LXNoYWRvdy10cmVlLWNvbnRlbnQueGh0bWwKQEAgLTE1LDcgKzE1LDcgQEAKICAgICAgICAgICAg
IGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKIAogICAgICAgICBmdW5jdGlv
biByZXNpemVCb3goKSB7Ci0gICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29u
dGVudEJveCIpLnN0eWxlLnNldFByb3BlcnR5KCJ3aWR0aCIsICI0MDBweCIpOworICAgICAgICAg
ICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRCb3giKS5zdHlsZS5zZXRQcm9wZXJ0
eSgid2lkdGgiLCAiNDAwcHgiLCBudWxsKTsKICAgICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpCiAgICAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90
aWZ5RG9uZSgpOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdmcvY3VzdG9t
L3JlbGF0aXZlLXNpemVkLXNoYWRvdy10cmVlLWNvbnRlbnQtd2l0aC1zeW1ib2wueGh0bWwgYi9M
YXlvdXRUZXN0cy9zdmcvY3VzdG9tL3JlbGF0aXZlLXNpemVkLXNoYWRvdy10cmVlLWNvbnRlbnQt
d2l0aC1zeW1ib2wueGh0bWwKaW5kZXggMTA4MWIyNi4uMzMyYjM5NSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvc3ZnL2N1c3RvbS9yZWxhdGl2ZS1zaXplZC1zaGFkb3ctdHJlZS1jb250ZW50LXdp
dGgtc3ltYm9sLnhodG1sCisrKyBiL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vcmVsYXRpdmUtc2l6
ZWQtc2hhZG93LXRyZWUtY29udGVudC13aXRoLXN5bWJvbC54aHRtbApAQCAtMTcsNyArMTcsNyBA
QAogICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwogCiAg
ICAgICAgIGZ1bmN0aW9uIHJlc2l6ZUJveCgpIHsKLSAgICAgICAgICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJjb250ZW50Qm94Iikuc3R5bGUuc2V0UHJvcGVydHkoIndpZHRoIiwgIjQwMHB4
Iik7CisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudEJveCIpLnN0
eWxlLnNldFByb3BlcnR5KCJ3aWR0aCIsICI0MDBweCIsIG51bGwpOwogICAgICAgICAgICAgaWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKICAgICAgICAgICAgICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3N2Zy9jdXN0b20vcmVsYXRpdmUtc2l6ZWQtc2hhZG93LXRyZWUtY29udGVudC54aHRtbCBi
L0xheW91dFRlc3RzL3N2Zy9jdXN0b20vcmVsYXRpdmUtc2l6ZWQtc2hhZG93LXRyZWUtY29udGVu
dC54aHRtbAppbmRleCAxZTk4Mjg4Li4yODgzNzczIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9z
dmcvY3VzdG9tL3JlbGF0aXZlLXNpemVkLXNoYWRvdy10cmVlLWNvbnRlbnQueGh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9yZWxhdGl2ZS1zaXplZC1zaGFkb3ctdHJlZS1jb250ZW50
LnhodG1sCkBAIC0xNyw3ICsxNyw3IEBACiAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci53YWl0VW50aWxEb25lKCk7CiAKICAgICAgICAgZnVuY3Rpb24gcmVzaXplQm94KCkgewotICAg
ICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRCb3giKS5zdHlsZS5zZXRQ
cm9wZXJ0eSgid2lkdGgiLCAiNDAwcHgiKTsKKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJjb250ZW50Qm94Iikuc3R5bGUuc2V0UHJvcGVydHkoIndpZHRoIiwgIjQwMHB4Iiwg
bnVsbCk7CiAgICAgICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQogICAg
ICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKICAgICAgICAg
fQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9yZWxhdGl2ZS1zaXplZC11c2Ut
b24tc3ltYm9sLnhodG1sIGIvTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9yZWxhdGl2ZS1zaXplZC11
c2Utb24tc3ltYm9sLnhodG1sCmluZGV4IGY1OGJlMjUuLjdhMWY1YWQgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3N2Zy9jdXN0b20vcmVsYXRpdmUtc2l6ZWQtdXNlLW9uLXN5bWJvbC54aHRtbAor
KysgYi9MYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3JlbGF0aXZlLXNpemVkLXVzZS1vbi1zeW1ib2wu
eGh0bWwKQEAgLTE2LDcgKzE2LDcgQEAKICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVy
LndhaXRVbnRpbERvbmUoKTsKIAogICAgICAgICBmdW5jdGlvbiByZXNpemVCb3goKSB7Ci0gICAg
ICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudEJveCIpLnN0eWxlLnNldFBy
b3BlcnR5KCJ3aWR0aCIsICI0MDBweCIpOworICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoImNvbnRlbnRCb3giKS5zdHlsZS5zZXRQcm9wZXJ0eSgid2lkdGgiLCAiNDAwcHgiLCBu
dWxsKTsKICAgICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAg
ICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOwogICAgICAgICB9
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdmcvZG9tL2ZyYW1lLXJlbGF0ZWQtYXBpLWR1cmlu
Zy1sb2FkLmh0bWwgYi9MYXlvdXRUZXN0cy9zdmcvZG9tL2ZyYW1lLXJlbGF0ZWQtYXBpLWR1cmlu
Zy1sb2FkLmh0bWwKaW5kZXggYzM0YjE0Ni4uMjQ1ZDI2MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvc3ZnL2RvbS9mcmFtZS1yZWxhdGVkLWFwaS1kdXJpbmctbG9hZC5odG1sCisrKyBiL0xheW91
dFRlc3RzL3N2Zy9kb20vZnJhbWUtcmVsYXRlZC1hcGktZHVyaW5nLWxvYWQuaHRtbApAQCAtNiw3
ICs2LDcgQEAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKIAogZnVuY3Rpb24gdGVz
dCgpCiB7Ci0gICAgaHRtbERvY3VtZW50ID0gZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRl
SFRNTERvY3VtZW50KCk7CisgICAgaHRtbERvY3VtZW50ID0gZG9jdW1lbnQuaW1wbGVtZW50YXRp
b24uY3JlYXRlSFRNTERvY3VtZW50KCIiKTsKICAgICBzdmdFbGVtZW50ID0gaHRtbERvY3VtZW50
LmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLCJzdmciKTsKICAg
ICAvLyBJbXBsZW1lbnRhdGlvbnMgb2YgZm9sbG93aW5nIEFQSXMgYWNjZXNzIEZyYW1lIG9iamVj
dCwgd2hpY2ggY2FuIGJlIE5VTEwuCiAgICAgc3ZnRWxlbWVudC5kZXNlbGVjdEFsbCgpOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvdHJhbnNmb3Jtcy8yZC9jb21wdXRlZC1zdHlsZS1vcmlnaW4u
aHRtbCBiL0xheW91dFRlc3RzL3RyYW5zZm9ybXMvMmQvY29tcHV0ZWQtc3R5bGUtb3JpZ2luLmh0
bWwKaW5kZXggNzM3MDM1NC4uYThkN2NiYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvdHJhbnNm
b3Jtcy8yZC9jb21wdXRlZC1zdHlsZS1vcmlnaW4uaHRtbAorKysgYi9MYXlvdXRUZXN0cy90cmFu
c2Zvcm1zLzJkL2NvbXB1dGVkLXN0eWxlLW9yaWdpbi5odG1sCkBAIC01MywxMCArNTMsMTAgQEAg
dmFyIHRlc3QyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3QyIik7CiB2YXIgdGVzdDMg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdDMiKTsKIHZhciB0ZXN0NCA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJ0ZXN0NCIpOwogCi12YXIgdGVzdDFTdHlsZSA9IHdpbmRvdy5nZXRD
b21wdXRlZFN0eWxlKHRlc3QxKTsKLXZhciB0ZXN0MlN0eWxlID0gd2luZG93LmdldENvbXB1dGVk
U3R5bGUodGVzdDIpOwotdmFyIHRlc3QzU3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0
ZXN0Myk7Ci12YXIgdGVzdDRTdHlsZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRlc3Q0KTsK
K3ZhciB0ZXN0MVN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUodGVzdDEsIG51bGwpOwor
dmFyIHRlc3QyU3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0ZXN0MiwgbnVsbCk7Cit2
YXIgdGVzdDNTdHlsZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRlc3QzLCBudWxsKTsKK3Zh
ciB0ZXN0NFN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUodGVzdDQsIG51bGwpOwogCiBz
aG91bGRCZSgidGVzdDFTdHlsZS53ZWJraXRUcmFuc2Zvcm1PcmlnaW4iLCAiJzEwcHggMTBweCci
KTsKIHNob3VsZEJlKCJ0ZXN0MlN0eWxlLndlYmtpdFRyYW5zZm9ybU9yaWdpbiIsICInMTBweCAx
MHB4JyIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvdHJhbnNmb3Jtcy8yZC9yZXNvdXJjZXMv
dHJhbnNmb3JtLXRlc3QtdXRpbHMuanMgYi9MYXlvdXRUZXN0cy90cmFuc2Zvcm1zLzJkL3Jlc291
cmNlcy90cmFuc2Zvcm0tdGVzdC11dGlscy5qcwppbmRleCBhZTA3YjBlLi5hNTFiYjY3IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy90cmFuc2Zvcm1zLzJkL3Jlc291cmNlcy90cmFuc2Zvcm0tdGVz
dC11dGlscy5qcworKysgYi9MYXlvdXRUZXN0cy90cmFuc2Zvcm1zLzJkL3Jlc291cmNlcy90cmFu
c2Zvcm0tdGVzdC11dGlscy5qcwpAQCAtNDQsNyArNDQsNyBAQCBmdW5jdGlvbiB0ZXN0VHJhbnNm
b3JtcygpCiAgIGdUZXN0cy5mb3JFYWNoKGZ1bmN0aW9uKGN1clRlc3QpIHsKICAgICB0ZXN0Qm94
LnN0eWxlLndlYmtpdFRyYW5zZm9ybSA9ICdub25lJzsgLy8gcmVzZXQgdGhlIHRyYW5zZm9ybSBq
dXN0IGluIGNhc2UgdGhlIG5leHQgc3RlcCBmYWlscwogICAgIHRlc3RCb3guc3R5bGUud2Via2l0
VHJhbnNmb3JtID0gY3VyVGVzdC50cmFuc2Zvcm07Ci0gICAgdmFyIGNvbXB1dGVkVHJhbnNmb3Jt
ID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUodGVzdEJveCkud2Via2l0VHJhbnNmb3JtOworICAg
IHZhciBjb21wdXRlZFRyYW5zZm9ybSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRlc3RCb3gs
IG51bGwpLndlYmtpdFRyYW5zZm9ybTsKIAogICAgIHZhciBzdWNjZXNzID0gY29tcGFyZU1hdHJp
Y2VzKGNvbXB1dGVkVHJhbnNmb3JtLCBjdXJUZXN0LnJlc3VsdCk7CiAgICAgdmFyIHJlc3VsdDsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3RyYW5zZm9ybXMvY3NzbWF0cml4LTJkLWludGVyZmFj
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy90cmFuc2Zvcm1zL2Nzc21hdHJpeC0yZC1pbnRl
cmZhY2UtZXhwZWN0ZWQudHh0CmluZGV4IDU5YTQ4NTYuLmNlNzAwNDQgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3RyYW5zZm9ybXMvY3NzbWF0cml4LTJkLWludGVyZmFjZS1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvdHJhbnNmb3Jtcy9jc3NtYXRyaXgtMmQtaW50ZXJmYWNlLWV4cGVj
dGVkLnR4dApAQCAtMTUyLDkgKzE1Miw2IEBAIFBBU1Mgc3guZCBpcyAxCiBQQVNTIHN4LmUgaXMg
MAogUEFTUyBzeC5mIGlzIDAKIAotVGVzdCBtdWx0aXBseSB3aXRoIG1pc3NpbmcgYXJndW1lbnQK
LVBBU1MgbTIgaXMgbnVsbAotCiBUZXN0IGludmVyc2UKIFBBU1MgcGFyc2VGbG9hdChtMi5hKSBp
cyAwLjUKIFBBU1MgcGFyc2VGbG9hdChtMi5iKSBpcyAwCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy90cmFuc2Zvcm1zL2Nzc21hdHJpeC0yZC1pbnRlcmZhY2UueGh0bWwgYi9MYXlvdXRUZXN0cy90
cmFuc2Zvcm1zL2Nzc21hdHJpeC0yZC1pbnRlcmZhY2UueGh0bWwKaW5kZXggODc4OGMzYy4uZjM3
ZWE2OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvdHJhbnNmb3Jtcy9jc3NtYXRyaXgtMmQtaW50
ZXJmYWNlLnhodG1sCisrKyBiL0xheW91dFRlc3RzL3RyYW5zZm9ybXMvY3NzbWF0cml4LTJkLWlu
dGVyZmFjZS54aHRtbApAQCAtMjIyLDEyICsyMjIsNiBAQCBzaG91bGRCZSgnc3guZScsICcwJyk7
CiBzaG91bGRCZSgnc3guZicsICcwJyk7CiAKIGRlYnVnKCIiKTsKLWRlYnVnKCJUZXN0IG11bHRp
cGx5IHdpdGggbWlzc2luZyBhcmd1bWVudCIpOwotbSA9IG5ldyBXZWJLaXRDU1NNYXRyaXgoIm1h
dHJpeCgxLCAyLCAzLCA0LCA1LCA2KSIpOwotbTIgPSBtLm11bHRpcGx5KCk7Ci1zaG91bGRCZSgn
bTInLCAnbnVsbCcpOwotCi1kZWJ1ZygiIik7CiBkZWJ1ZygiVGVzdCBpbnZlcnNlIik7CiBtID0g
bmV3IFdlYktpdENTU01hdHJpeCgibWF0cml4KDIsIDAsIDAsIDIsIDEwLCAyMCkiKTsKIG0yID0g
bS5pbnZlcnNlKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy9jYW5jZWwt
dHJhbnNpdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvY2FuY2VsLXRyYW5zaXRp
b24uaHRtbAppbmRleCBlYWViZjFjLi4wOWY0YmIyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy90
cmFuc2l0aW9ucy9jYW5jZWwtdHJhbnNpdGlvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL3RyYW5z
aXRpb25zL2NhbmNlbC10cmFuc2l0aW9uLmh0bWwKQEAgLTY4LDcgKzY4LDcgQEAKIAogICAgICAg
ICBmdW5jdGlvbiBjaGVjaygpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHZhciBsZWZ0ID0gcGFy
c2VGbG9hdCh3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
YScpKS5sZWZ0KTsKKyAgICAgICAgICAgIHZhciBsZWZ0ID0gcGFyc2VGbG9hdCh3aW5kb3cuZ2V0
Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYScpLCBudWxsKS5sZWZ0KTsK
ICAgICAgICAgICAgIHJlc3VsdCA9ICJsZWZ0OiI7CiAgICAgICAgICAgICBpZiAoIWlzRXF1YWwo
bGVmdCwgMjUwLCA1MCkpCiAgICAgICAgICAgICAgICAgcmVzdWx0ICs9ICI8c3BhbiBzdHlsZT0n
Y29sb3I6cmVkJz5GQUlMKHdhczoiICsgbGVmdCArICIsIHMvYjoxNTApPC9zcGFuPiI7CkBAIC03
Nyw3ICs3Nyw3IEBACiAgICAgICAgICAgICAKICAgICAgICAgICAgIHJlc3VsdCArPSAiLCB3ZWJr
aXRUcmFuc2Zvcm06IjsKICAgICAgICAgICAgIAotICAgICAgICAgICAgdmFyIHRyYW5zZm9ybSA9
IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiJykpLndl
YmtpdFRyYW5zZm9ybTsKKyAgICAgICAgICAgIHZhciB0cmFuc2Zvcm0gPSB3aW5kb3cuZ2V0Q29t
cHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYicpLCBudWxsKS53ZWJraXRUcmFu
c2Zvcm07CiAgICAgICAgICAgICB0cmFuc2Zvcm0gPSB0cmFuc2Zvcm0uc3BsaXQoIigiKTsKICAg
ICAgICAgICAgIHRyYW5zZm9ybSA9IHRyYW5zZm9ybVsxXS5zcGxpdCgiLCIpOwogICAgICAgICAg
ICAgaWYgKCFpc0VxdWFsKHRyYW5zZm9ybVs0XSwgMjAwLCA1MCkpCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy90cmFuc2l0aW9ucy9jaGFuZ2UtdmFsdWVzLWR1cmluZy10cmFuc2l0aW9uLmh0bWwg
Yi9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy9jaGFuZ2UtdmFsdWVzLWR1cmluZy10cmFuc2l0aW9u
Lmh0bWwKaW5kZXggZGYwMDM4Zi4uYzNlMGIzZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvdHJh
bnNpdGlvbnMvY2hhbmdlLXZhbHVlcy1kdXJpbmctdHJhbnNpdGlvbi5odG1sCisrKyBiL0xheW91
dFRlc3RzL3RyYW5zaXRpb25zL2NoYW5nZS12YWx1ZXMtZHVyaW5nLXRyYW5zaXRpb24uaHRtbApA
QCAtMzgsNyArMzgsNyBAQAogICAgIAogICAgIGZ1bmN0aW9uIGdldFhQb3NpdGlvbigpCiAgICAg
ewotICAgICAgICB2YXIgdCA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdib3gnKSkud2Via2l0VHJhbnNmb3JtOworICAgICAgICB2YXIgdCA9IHdpbmRv
dy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdib3gnKSwgbnVsbCku
d2Via2l0VHJhbnNmb3JtOwogICAgICAgICB0ID0gdC5zcGxpdCgiKCIpOwogICAgICAgICB0ID0g
dFsxXS5zcGxpdCgiLCIpOwogICAgICAgICByZXR1cm4gdFs0XTsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3RyYW5zaXRpb25zL2V4dHJhLXRyYW5zaXRpb24uaHRtbCBiL0xheW91dFRlc3RzL3Ry
YW5zaXRpb25zL2V4dHJhLXRyYW5zaXRpb24uaHRtbAppbmRleCBhOWQ3ZTFiLi5jOGE5YWRkIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy9leHRyYS10cmFuc2l0aW9uLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvZXh0cmEtdHJhbnNpdGlvbi5odG1sCkBAIC03
OCw3ICs3OCw3IEBACiAKICAgZnVuY3Rpb24gY2hlY2soKQogICB7Ci0gICAgICB2YXIgdHJhbnNm
b3JtID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Rl
c2NyaXB0aW9uJykpLndlYmtpdFRyYW5zZm9ybTsKKyAgICAgIHZhciB0cmFuc2Zvcm0gPSB3aW5k
b3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGVzY3JpcHRpb24n
KSwgbnVsbCkud2Via2l0VHJhbnNmb3JtOwogICAgICAgaWYgKHRyYW5zZm9ybSA9PSAibWF0cml4
KDEsIDAsIDAsIDEsIDEwMCwgMCkiKQogICAgICAgICAgIGxvZygndHJhbnNmb3JtPSInK3RyYW5z
Zm9ybSsnIiBhcyBleHBlY3RlZDogUEFTUycpOwogICAgICAgICBlbHNlCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy90cmFuc2l0aW9ucy9pbmhlcml0LW90aGVyLXByb3BzLmh0bWwgYi9MYXlvdXRU
ZXN0cy90cmFuc2l0aW9ucy9pbmhlcml0LW90aGVyLXByb3BzLmh0bWwKaW5kZXggYTc1YTViOC4u
NzI5YTQyMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvaW5oZXJpdC1vdGhl
ci1wcm9wcy5odG1sCisrKyBiL0xheW91dFRlc3RzL3RyYW5zaXRpb25zL2luaGVyaXQtb3RoZXIt
cHJvcHMuaHRtbApAQCAtNzAsOSArNzAsOSBAQAogICAgICAgdmFyIGJveGVzID0gZG9jdW1lbnQu
Ym9keS5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdib3gnKTsKICAgICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgYm94ZXMubGVuZ3RoOyArK2kpIHsKICAgICAgICAgdmFyIGN1ckJveCA9IGJveGVzW2ld
OwotICAgICAgICB0ZXN0VmFsdWUoaSsxLCAicHJvcGVydHkiLCB3aW5kb3cuZ2V0Q29tcHV0ZWRT
dHlsZShjdXJCb3gpLndlYmtpdFRyYW5zaXRpb25Qcm9wZXJ0eSwga0V4cGVjdGVkUHJvcFtpXSk7
Ci0gICAgICAgIHRlc3RWYWx1ZShpKzEsICJkdXJhdGlvbiIsIHdpbmRvdy5nZXRDb21wdXRlZFN0
eWxlKGN1ckJveCkud2Via2l0VHJhbnNpdGlvbkR1cmF0aW9uLCBrRXhwZWN0ZWREdXJhdGlvbltp
XSk7Ci0gICAgICAgIHRlc3RWYWx1ZShpKzEsICJ0aW1pbmcgZnVuY3Rpb24iLCB3aW5kb3cuZ2V0
Q29tcHV0ZWRTdHlsZShjdXJCb3gpLndlYmtpdFRyYW5zaXRpb25UaW1pbmdGdW5jdGlvbiwga0V4
cGVjdGVkVGltaW5nRnVuY3Rpb25baV0pOworICAgICAgICB0ZXN0VmFsdWUoaSsxLCAicHJvcGVy
dHkiLCB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShjdXJCb3gsIG51bGwpLndlYmtpdFRyYW5zaXRp
b25Qcm9wZXJ0eSwga0V4cGVjdGVkUHJvcFtpXSk7CisgICAgICAgIHRlc3RWYWx1ZShpKzEsICJk
dXJhdGlvbiIsIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGN1ckJveCwgbnVsbCkud2Via2l0VHJh
bnNpdGlvbkR1cmF0aW9uLCBrRXhwZWN0ZWREdXJhdGlvbltpXSk7CisgICAgICAgIHRlc3RWYWx1
ZShpKzEsICJ0aW1pbmcgZnVuY3Rpb24iLCB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShjdXJCb3gs
IG51bGwpLndlYmtpdFRyYW5zaXRpb25UaW1pbmdGdW5jdGlvbiwga0V4cGVjdGVkVGltaW5nRnVu
Y3Rpb25baV0pOwogICAgICAgfQogCiAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb250YWluZXInKSk7CkBAIC0xMDEsNCArMTAxLDQgQEAK
IDxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+CiAKIDwvYm9keT4KLTwvaHRtbD4KXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy90cmFuc2l0
aW9ucy9pbmhlcml0Lmh0bWwgYi9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy9pbmhlcml0Lmh0bWwK
aW5kZXggNDYzM2IzYy4uZjAyODNiNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvdHJhbnNpdGlv
bnMvaW5oZXJpdC5odG1sCisrKyBiL0xheW91dFRlc3RzL3RyYW5zaXRpb25zL2luaGVyaXQuaHRt
bApAQCAtNDAsNyArNDAsNyBAQAogICAgICAgdmFyIGJveGVzID0gZG9jdW1lbnQuYm9keS5nZXRF
bGVtZW50c0J5Q2xhc3NOYW1lKCdib3gnKTsKICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYm94
ZXMubGVuZ3RoOyArK2kpIHsKICAgICAgICAgdmFyIGN1ckJveCA9IGJveGVzW2ldOwotICAgICAg
ICB2YXIgY3VyUHJvcCA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGN1ckJveCkud2Via2l0VHJh
bnNpdGlvblByb3BlcnR5OworICAgICAgICB2YXIgY3VyUHJvcCA9IHdpbmRvdy5nZXRDb21wdXRl
ZFN0eWxlKGN1ckJveCwgbnVsbCkud2Via2l0VHJhbnNpdGlvblByb3BlcnR5OwogICAgICAgICBp
ZiAoY3VyUHJvcCA9PSBrRXhwZWN0ZWRzW2ldKQogICAgICAgICAgIHJlc3VsdCArPSAiUEFTUyAt
LSAiOwogICAgICAgICBlbHNlCkBAIC03NCw0ICs3NCw0IEBACiA8ZGl2IGlkPSJyZXN1bHQiPjwv
ZGl2PgogCiA8L2JvZHk+Ci08L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvaW50ZXJydXB0LXRyYW5z
Zm9ybS10cmFuc2l0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy9pbnRlcnJ1cHQt
dHJhbnNmb3JtLXRyYW5zaXRpb24uaHRtbAppbmRleCA4MWVhMTY5Li5mYTUzY2M2IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy9pbnRlcnJ1cHQtdHJhbnNmb3JtLXRyYW5zaXRp
b24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy9pbnRlcnJ1cHQtdHJhbnNmb3Jt
LXRyYW5zaXRpb24uaHRtbApAQCAtMjIsNyArMjIsNyBAQAogCiAgICAgZnVuY3Rpb24gdGVzdCgp
CiAgICAgewotICAgICAgdmFyIHQgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnYm94JykpLndlYmtpdFRyYW5zZm9ybTsKKyAgICAgIHZhciB0ID0gd2lu
ZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JveCcpLCBudWxs
KS53ZWJraXRUcmFuc2Zvcm07CiAgICAgICAvLyBncmFiIHRoZSB4IHZhbHVlIGZyb20gdGhlIG1h
dHJpeCgpCiAgICAgICB2YXIgbGFzdFZhbHVlUkUgPSAvKFtcLlxkXSspLFteLF0rXCkkLzsKICAg
ICAgIHZhciB4VHJhbnNsYXRlID0gbGFzdFZhbHVlUkUuZXhlYyh0KVsxXTsKQEAgLTUzLDQgKzUz
LDQgQEAKICAgPGRpdiBpZD0icmVzdWx0Ij4KICAgPC9kaXY+CiA8L2JvZHk+Ci08L2h0bWw+Clwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvdHJhbnNpdGlvbnMvaW50ZXJydXB0LXplcm8tZHVyYXRpb24uaHRtbCBiL0xheW91dFRlc3Rz
L3RyYW5zaXRpb25zL2ludGVycnVwdC16ZXJvLWR1cmF0aW9uLmh0bWwKaW5kZXggNWZiODMyNy4u
ZTQ1NWZhYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvaW50ZXJydXB0LXpl
cm8tZHVyYXRpb24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy9pbnRlcnJ1cHQt
emVyby1kdXJhdGlvbi5odG1sCkBAIC0zNSw3ICszNSw3IEBACiAgICAgICAgIGlmIChyZXN1bHQg
IT0gIlBBU1MiKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgCi0gICAgICAgIHZh
ciBsZWZ0ID0gcGFyc2VJbnQod2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ2JveCcpKS5sZWZ0KTsKKyAgICAgICAgdmFyIGxlZnQgPSBwYXJzZUludCh3aW5k
b3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYm94JyksIG51bGwp
LmxlZnQpOwogICAgICAgICBpZiAoIWlzRXF1YWwobGVmdCwgZXhwZWN0ZWQsIHRvbGVyYW5jZSkp
CiAgICAgICAgICAgICByZXN1bHQgPSAiRkFJTCh3YXM6IitsZWZ0KyIsIGV4cGVjdGVkOiIrZXhw
ZWN0ZWQrIikiOwogICAgIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3RyYW5zaXRpb25zL2lu
dGVycnVwdGVkLWFsbC10cmFuc2l0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy9p
bnRlcnJ1cHRlZC1hbGwtdHJhbnNpdGlvbi5odG1sCmluZGV4IGMyZGFkNjQuLmFkZTAzOWQgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3RyYW5zaXRpb25zL2ludGVycnVwdGVkLWFsbC10cmFuc2l0
aW9uLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvaW50ZXJydXB0ZWQtYWxsLXRy
YW5zaXRpb24uaHRtbApAQCAtMzYsNyArMzYsNyBAQAogICAgICAgICBib3guc3R5bGUubGVmdCA9
ICcwcHgnOwogICAgICAgICAKICAgICAgICAgd2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKSB7
Ci0gICAgICAgICAgdmFyIGJveFBvcyA9IHBhcnNlSW50KHdpbmRvdy5nZXRDb21wdXRlZFN0eWxl
KGJveCkubGVmdCk7CisgICAgICAgICAgdmFyIGJveFBvcyA9IHBhcnNlSW50KHdpbmRvdy5nZXRD
b21wdXRlZFN0eWxlKGJveCwgbnVsbCkubGVmdCk7CiAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ3Jlc3VsdCcpLmlubmVySFRNTCA9IChib3hQb3MgPCAyMDApID8gIlBBU1MiIDog
IkZBSUwiOwogICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAg
ICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3RyYW5zaXRpb25zL21hdGNoZWQtdHJhbnNmb3JtLWZ1bmN0aW9ucy5odG1s
IGIvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvbWF0Y2hlZC10cmFuc2Zvcm0tZnVuY3Rpb25zLmh0
bWwKaW5kZXggYjQxOThmMC4uYzRlYzQyYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvdHJhbnNp
dGlvbnMvbWF0Y2hlZC10cmFuc2Zvcm0tZnVuY3Rpb25zLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
dHJhbnNpdGlvbnMvbWF0Y2hlZC10cmFuc2Zvcm0tZnVuY3Rpb25zLmh0bWwKQEAgLTI0LDcgKzI0
LDcgQEAKIAogICAgIGZ1bmN0aW9uIHRlc3QoKQogICAgIHsKLSAgICAgIHZhciB0ID0gd2luZG93
LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JveCcpKS53ZWJraXRU
cmFuc2Zvcm07CisgICAgICB2YXIgdCA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdib3gnKSwgbnVsbCkud2Via2l0VHJhbnNmb3JtOwogICAgICAgLy8g
Z3JhYiB0aGUgbGFzdCB2YWx1ZSBmcm9tIHRoZSBtYXRyaXgoKQogICAgICAgdmFyIGxhc3RWYWx1
ZVJFID0gLyhcZCspXCkkLzsKICAgICAgIHZhciB5VHJhbnNsYXRlID0gcGFyc2VJbnQobGFzdFZh
bHVlUkUuZXhlYyh0KSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy9yZXBl
YXRlZC1maXJpbmctYmFja2dyb3VuZC1jb2xvci5odG1sIGIvTGF5b3V0VGVzdHMvdHJhbnNpdGlv
bnMvcmVwZWF0ZWQtZmlyaW5nLWJhY2tncm91bmQtY29sb3IuaHRtbAppbmRleCAwOTU3NTcwLi4y
ZWEyODlhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy9yZXBlYXRlZC1maXJp
bmctYmFja2dyb3VuZC1jb2xvci5odG1sCisrKyBiL0xheW91dFRlc3RzL3RyYW5zaXRpb25zL3Jl
cGVhdGVkLWZpcmluZy1iYWNrZ3JvdW5kLWNvbG9yLmh0bWwKQEAgLTM0LDcgKzM0LDcgQEAKIAog
ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmb28nKS5hZGRFdmVudExpc3RlbmVyKCd3ZWJr
aXRUcmFuc2l0aW9uRW5kJywgZnVuY3Rpb24oKSB7CiAgICAgICAgIGNoZWNrUnVubmluZygpCi0g
ICAgfSk7CisgICAgfSwgZmFsc2UpOwogCiAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZv
byIpLmNsYXNzTmFtZT0idHJhbnMiOwogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy90cmFuc2l0aW9ucy9yZXRhcmdldHRlZC10cmFuc2l0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy90
cmFuc2l0aW9ucy9yZXRhcmdldHRlZC10cmFuc2l0aW9uLmh0bWwKaW5kZXggNmUzMGNiNy4uN2Jh
ZDg0ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvcmV0YXJnZXR0ZWQtdHJh
bnNpdGlvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL3RyYW5zaXRpb25zL3JldGFyZ2V0dGVkLXRy
YW5zaXRpb24uaHRtbApAQCAtMjMsNyArMjMsNyBAQAogCiAgICAgZnVuY3Rpb24gdGVzdCgpCiAg
ICAgewotICAgICAgdmFyIHQgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnYm94JykpLndlYmtpdFRyYW5zZm9ybTsKKyAgICAgIHZhciB0ID0gd2luZG93
LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JveCcpLCBudWxsKS53
ZWJraXRUcmFuc2Zvcm07CiAgICAgICAvLyBncmFiIHRoZSBsYXN0IHZhbHVlIGZyb20gdGhlIG1h
dHJpeCgpCiAgICAgICB2YXIgbGFzdFZhbHVlUkUgPSAvKFxkKylcKSQvOwogICAgICAgdmFyIHlU
cmFuc2xhdGUgPSBwYXJzZUludChsYXN0VmFsdWVSRS5leGVjKHQpKTsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3RyYW5zaXRpb25zL3N0YXJ0LXRyYW5zZm9ybS10cmFuc2l0aW9uLmh0bWwgYi9M
YXlvdXRUZXN0cy90cmFuc2l0aW9ucy9zdGFydC10cmFuc2Zvcm0tdHJhbnNpdGlvbi5odG1sCmlu
ZGV4IDg4MTMzYTYuLjZlNzI2ZTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3RyYW5zaXRpb25z
L3N0YXJ0LXRyYW5zZm9ybS10cmFuc2l0aW9uLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvdHJhbnNp
dGlvbnMvc3RhcnQtdHJhbnNmb3JtLXRyYW5zaXRpb24uaHRtbApAQCAtMjQsNyArMjQsNyBAQAog
CiAgICAgZnVuY3Rpb24gdGVzdCgpCiAgICAgewotICAgICAgdmFyIHQgPSB3aW5kb3cuZ2V0Q29t
cHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYm94JykpLndlYmtpdFRyYW5zZm9y
bTsKKyAgICAgIHZhciB0ID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ2JveCcpLCBudWxsKS53ZWJraXRUcmFuc2Zvcm07CiAgICAgICAvLyBncmFiIHRo
ZSB4IHZhbHVlIGZyb20gdGhlIG1hdHJpeCgpCiAgICAgICB2YXIgbGFzdFZhbHVlUkUgPSAvKFtc
LlxkXSspLFteLF0rXCkkLzsKICAgICAgIHZhciB4VHJhbnNsYXRlID0gbGFzdFZhbHVlUkUuZXhl
Yyh0KVsxXTsKQEAgLTUzLDQgKzUzLDQgQEAKICAgPGRpdiBpZD0icmVzdWx0Ij4KICAgPC9kaXY+
CiA8L2JvZHk+Ci08L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvdHJhbnNpdGlvbi1kcnQtYXBpLWRl
bGF5Lmh0bWwgYi9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy90cmFuc2l0aW9uLWRydC1hcGktZGVs
YXkuaHRtbAppbmRleCA1ODlmNTk5Li5iZWUyMmYzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy90
cmFuc2l0aW9ucy90cmFuc2l0aW9uLWRydC1hcGktZGVsYXkuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy90cmFuc2l0aW9ucy90cmFuc2l0aW9uLWRydC1hcGktZGVsYXkuaHRtbApAQCAtMjYsNyArMjYs
NyBAQAogICAgIGZ1bmN0aW9uIGVuZFRlc3QoKSB7CiAgICAgICBpZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKSB7CiAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnBhdXNlVHJhbnNp
dGlvbkF0VGltZU9uRWxlbWVudFdpdGhJZCgibGVmdCIsIDIuMCwgInRhcmdldCIpOwotICAgICAg
ICB2YXIgbGVmdCA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCd0YXJnZXQnKSkubGVmdDsKKyAgICAgICAgdmFyIGxlZnQgPSB3aW5kb3cuZ2V0Q29tcHV0
ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGFyZ2V0JyksIG51bGwpLmxlZnQ7CiAg
ICAgICAgIHZhciByZXN1bHQgPSAiUEFTUyI7CiAgICAgICAgIGlmIChsZWZ0ICE9ICIxMjVweCIp
IHsKICAgICAgICAgICByZXN1bHQgPSAiRkFJTCAtIGV4cGVjdGVkIDEyNXB4IGdvdCAiICsgbGVm
dDsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3RyYW5zaXRpb25zL3RyYW5zaXRpb24tZHVyYXRp
b24tY2xlYXJlZC1pbi10cmFuc2l0aW9uZW5kLWNyYXNoLmh0bWwgYi9MYXlvdXRUZXN0cy90cmFu
c2l0aW9ucy90cmFuc2l0aW9uLWR1cmF0aW9uLWNsZWFyZWQtaW4tdHJhbnNpdGlvbmVuZC1jcmFz
aC5odG1sCmluZGV4IGM0MzA2NjIuLjgxZjMxZjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Ry
YW5zaXRpb25zL3RyYW5zaXRpb24tZHVyYXRpb24tY2xlYXJlZC1pbi10cmFuc2l0aW9uZW5kLWNy
YXNoLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvdHJhbnNpdGlvbi1kdXJhdGlv
bi1jbGVhcmVkLWluLXRyYW5zaXRpb25lbmQtY3Jhc2guaHRtbApAQCAtMTUsNyArMTUsNyBAQAog
ICAgICAgICAgICAgICAgIGVsLnN0eWxlLndlYmtpdFRyYW5zaXRpb25EdXJhdGlvbiA9ICcnOwog
ICAgICAgICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAgICAg
ICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKLSAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgfSwgZmFsc2UpOwogICAgICAgICAgICAgZWwuc3R5bGUuY3Nz
VGV4dCArPSAnOy13ZWJraXQtdHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIDAuMnM7YmFja2dy
b3VuZC1jb2xvcjojZmZmJwogICAgICAgICA8L3NjcmlwdD4KICAgICA8L2JvZHk+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy90cmFuc2l0aW9uLXNob3J0aGFuZC1kZWxheS5o
dG1sIGIvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvdHJhbnNpdGlvbi1zaG9ydGhhbmQtZGVsYXku
aHRtbAppbmRleCA1OGQ1Y2I4Li41MjlmODkyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy90cmFu
c2l0aW9ucy90cmFuc2l0aW9uLXNob3J0aGFuZC1kZWxheS5odG1sCisrKyBiL0xheW91dFRlc3Rz
L3RyYW5zaXRpb25zL3RyYW5zaXRpb24tc2hvcnRoYW5kLWRlbGF5Lmh0bWwKQEAgLTI3LDcgKzI3
LDcgQEAKICAgICBmdW5jdGlvbiBlbmRUZXN0KCkgewogICAgICAgaWYgKHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlcikgewogICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5wYXVzZVRyYW5z
aXRpb25BdFRpbWVPbkVsZW1lbnRXaXRoSWQoImxlZnQiLCAyLjAsICJ0YXJnZXQiKTsKLSAgICAg
ICAgdmFyIGxlZnQgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgndGFyZ2V0JykpLmxlZnQ7CisgICAgICAgIHZhciBsZWZ0ID0gd2luZG93LmdldENvbXB1
dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RhcmdldCcpLCBudWxsKS5sZWZ0Owog
ICAgICAgICB2YXIgcmVzdWx0ID0gIlBBU1MiOwogICAgICAgICBpZiAobGVmdCAhPSAiMTI1cHgi
KSB7CiAgICAgICAgICAgcmVzdWx0ID0gIkZBSUwgLSBleHBlY3RlZCAxMjVweCBnb3QgIiArIGxl
ZnQ7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy90cmFuc2l0aW9uLXRlc3Qt
aGVscGVycy5qcyBiL0xheW91dFRlc3RzL3RyYW5zaXRpb25zL3RyYW5zaXRpb24tdGVzdC1oZWxw
ZXJzLmpzCmluZGV4IDZjNDBhYjguLmZjNjI0ODAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Ry
YW5zaXRpb25zL3RyYW5zaXRpb24tdGVzdC1oZWxwZXJzLmpzCisrKyBiL0xheW91dFRlc3RzL3Ry
YW5zaXRpb25zL3RyYW5zaXRpb24tdGVzdC1oZWxwZXJzLmpzCkBAIC02MCw3ICs2MCw3IEBAIGZ1
bmN0aW9uIGNoZWNrRXhwZWN0ZWRWYWx1ZShleHBlY3RlZCwgaW5kZXgpCiAgICAgdmFyIHBhc3Mg
PSBmYWxzZTsKICAgICB2YXIgdHJhbnNmb3JtUmVnRXhwID0gL14td2Via2l0LXRyYW5zZm9ybShc
LlxkKyk/JC87CiAgICAgaWYgKHRyYW5zZm9ybVJlZ0V4cC50ZXN0KHByb3BlcnR5KSkgewotICAg
ICAgICBjb21wdXRlZFZhbHVlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoZWxlbWVudElkKSkud2Via2l0VHJhbnNmb3JtOworICAgICAgICBjb21wdXRl
ZFZhbHVlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ZWxlbWVudElkKSwgbnVsbCkud2Via2l0VHJhbnNmb3JtOwogICAgICAgICBpZiAodHlwZW9mIGV4
cGVjdGVkVmFsdWUgPT0gInN0cmluZyIpCiAgICAgICAgICAgICBwYXNzID0gKGNvbXB1dGVkVmFs
dWUgPT0gZXhwZWN0ZWRWYWx1ZSk7CiAgICAgICAgIGVsc2UgaWYgKHR5cGVvZiBleHBlY3RlZFZh
bHVlID09ICJudW1iZXIiKSB7CkBAIC03NywxMCArNzcsMTAgQEAgZnVuY3Rpb24gY2hlY2tFeHBl
Y3RlZFZhbHVlKGV4cGVjdGVkLCBpbmRleCkKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAg
IH0gZWxzZSBpZiAocHJvcGVydHkgPT0gImxpbmVIZWlnaHQiKSB7Ci0gICAgICAgIGNvbXB1dGVk
VmFsdWUgPSBwYXJzZUludCh3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZChlbGVtZW50SWQpKS5saW5lSGVpZ2h0KTsKKyAgICAgICAgY29tcHV0ZWRWYWx1ZSA9
IHBhcnNlSW50KHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KGVsZW1lbnRJZCksIG51bGwpLmxpbmVIZWlnaHQpOwogICAgICAgICBwYXNzID0gaXNDbG9zZUVu
b3VnaChjb21wdXRlZFZhbHVlLCBleHBlY3RlZFZhbHVlLCB0b2xlcmFuY2UpOwogICAgIH0gZWxz
ZSB7Ci0gICAgICAgIHZhciBjb21wdXRlZFN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUo
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElkKSkuZ2V0UHJvcGVydHlDU1NWYWx1ZShw
cm9wZXJ0eSk7CisgICAgICAgIHZhciBjb21wdXRlZFN0eWxlID0gd2luZG93LmdldENvbXB1dGVk
U3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElkKSwgbnVsbCkuZ2V0UHJvcGVy
dHlDU1NWYWx1ZShwcm9wZXJ0eSk7CiAgICAgICAgIGlmIChjb21wdXRlZFN0eWxlLmNzc1ZhbHVl
VHlwZSA9PSBDU1NWYWx1ZS5DU1NfVkFMVUVfTElTVCkgewogICAgICAgICAgICAgdmFyIHZhbHVl
cyA9IFtdOwogICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjb21wdXRlZFN0eWxlLmxl
bmd0aDsgKytpKSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy90cmFuc2l0
aW9uLXRpbWluZy1mdW5jdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvdHJhbnNp
dGlvbi10aW1pbmctZnVuY3Rpb24uaHRtbAppbmRleCAzZDNiMDY4Li42Y2IwOWQ2IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy90cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbi5o
dG1sCisrKyBiL0xheW91dFRlc3RzL3RyYW5zaXRpb25zL3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0
aW9uLmh0bWwKQEAgLTM1LDcgKzM1LDcgQEAKICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYm94
ZXMubGVuZ3RoOyArK2kpCiAgICAgICB7CiAgICAgICAgIHZhciBjdXJCb3ggPSBib3hlc1tpXTsK
LSAgICAgICAgdmFyIGN1ckxlZnQgPSBwYXJzZUludCh3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShj
dXJCb3gpLmxlZnQpOworICAgICAgICB2YXIgY3VyTGVmdCA9IHBhcnNlSW50KHdpbmRvdy5nZXRD
b21wdXRlZFN0eWxlKGN1ckJveCwgbnVsbCkubGVmdCk7CiAgICAgICAgIAogICAgICAgICB2YXIg
ZXhwZWN0ZWQgPSBrRXhwZWN0ZWRzW2N1ckJveC5pZF07CiAgICAgICAgIHZhciBwYXNzZWQgPSAo
TWF0aC5hYnMoY3VyTGVmdCAtIGV4cGVjdGVkKSAvIGV4cGVjdGVkKSA8IDAuMDU7CkBAIC04MCw0
ICs4MCw0IEBACiA8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgogCiA8L2JvZHk+Ci08L2h0bWw+Clwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvdHJhbnNpdGlvbnMvemVyby1kdXJhdGlvbi13aXRoLW5vbi16ZXJvLWRlbGF5LXN0YXJ0Lmh0
bWwgYi9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy96ZXJvLWR1cmF0aW9uLXdpdGgtbm9uLXplcm8t
ZGVsYXktc3RhcnQuaHRtbAppbmRleCA0YTU5NzI1Li43ODc3MWI4IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy90cmFuc2l0aW9ucy96ZXJvLWR1cmF0aW9uLXdpdGgtbm9uLXplcm8tZGVsYXktc3Rh
cnQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy96ZXJvLWR1cmF0aW9uLXdpdGgt
bm9uLXplcm8tZGVsYXktc3RhcnQuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogICAgCiAgICAgZnVu
Y3Rpb24gZmluaXNoVGVzdCgpIHsKICAgICAgIHZhciBleHBlY3RlZCA9IDIwMDsKLSAgICAgIHZh
ciBjdXJyZW50ID0gcGFyc2VJbnQod2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ3RhcmdldCcpKS5sZWZ0KTsKKyAgICAgIHZhciBjdXJyZW50ID0gcGFyc2VJ
bnQod2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rhcmdl
dCcpLCBudWxsKS5sZWZ0KTsKICAgICAgIGlmIChjdXJyZW50ID09IGV4cGVjdGVkKQogICAgICAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0JykuaW5uZXJIVE1MID0gIlBBU1MgLSBs
ZWZ0IHByb3BlcnR5IGlzICIgKyBjdXJyZW50ICsgInB4IGFzIGV4cGVjdGVkIjsKICAgICAgIGVs
c2UKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3RyYW5zaXRpb25zL3plcm8tZHVyYXRpb24td2l0
aG91dC11bml0cy5odG1sIGIvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvemVyby1kdXJhdGlvbi13
aXRob3V0LXVuaXRzLmh0bWwKaW5kZXggZWY4Mzc0Mi4uYTk5ZmM3MyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvdHJhbnNpdGlvbnMvemVyby1kdXJhdGlvbi13aXRob3V0LXVuaXRzLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvemVyby1kdXJhdGlvbi13aXRob3V0LXVuaXRzLmh0
bWwKQEAgLTIyLDcgKzIyLDcgQEAKICAgICBmdW5jdGlvbiB0ZXN0KCkKICAgICB7CiAgICAgICAg
IHZhciBib3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYm94Jyk7Ci0gICAgICAgIHZhciBk
dXIgPSBwYXJzZUludCh3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShib3gpLndlYmtpdFRyYW5zaXRp
b25EdXJhdGlvbik7CisgICAgICAgIHZhciBkdXIgPSBwYXJzZUludCh3aW5kb3cuZ2V0Q29tcHV0
ZWRTdHlsZShib3gsIG51bGwpLndlYmtpdFRyYW5zaXRpb25EdXJhdGlvbik7CiAgICAgICAgIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHQnKS5pbm5lckhUTUwgPSAiRHVyYXRpb24gd2Fz
ICIgKyBkdXIgKyAiIChzaG91bGQgYmUgMCk6ICIgKyAoZHVyID09IDAgPyAiUEFTUyIgOiAiRkFJ
TCIpOwogICAgIH0KICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIHRlc3QsIGZh
bHNlKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvdHJhdmVyc2FsL25vZGUtaXRlcmF0b3ItMDA5
Lmh0bWwgYi9MYXlvdXRUZXN0cy90cmF2ZXJzYWwvbm9kZS1pdGVyYXRvci0wMDkuaHRtbAppbmRl
eCA5NTQxZjkyLi5kNGJlZGI5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy90cmF2ZXJzYWwvbm9k
ZS1pdGVyYXRvci0wMDkuaHRtbAorKysgYi9MYXlvdXRUZXN0cy90cmF2ZXJzYWwvbm9kZS1pdGVy
YXRvci0wMDkuaHRtbApAQCAtMzQsNyArMzQsNyBAQAogCiAgICAgICBmdW5jdGlvbiB3YWxrWE1M
KHhtbERvYykKICAgICAgIHsKLSAgICAgICAgdmFyIGl0ZXIgPSBkb2N1bWVudC5jcmVhdGVOb2Rl
SXRlcmF0b3IoeG1sRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgdGVzdE5vZGVGaXRlcik7
CisgICAgICAgIHZhciBpdGVyID0gZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHhtbERvYywg
Tm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIHRlc3ROb2RlRml0ZXIsIGZhbHNlKTsKICAgICAgICAg
dmFyIGN1ck5vZGU7CiAgICAgICAgIHdoaWxlIChjdXJOb2RlID0gaXRlci5uZXh0Tm9kZSgpKSB7
CiAgICAgICAgICAgZG9jdW1lbnQud3JpdGUoJzxoMz4nICsgY3VyTm9kZS50YWdOYW1lICsgJzwv
aDM+PHA+JyArIGN1ck5vZGUudGV4dENvbnRlbnQgKyAnPC9wPicpOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvd2Vic29ja2V0L3Rlc3RzL3NjcmlwdC10ZXN0cy93ZWJzb2NrZXQtZXZlbnQtdGFy
Z2V0LmpzIGIvTGF5b3V0VGVzdHMvd2Vic29ja2V0L3Rlc3RzL3NjcmlwdC10ZXN0cy93ZWJzb2Nr
ZXQtZXZlbnQtdGFyZ2V0LmpzCmluZGV4IDY0NjhjNGMuLjY3ZDgwNzkgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3dlYnNvY2tldC90ZXN0cy9zY3JpcHQtdGVzdHMvd2Vic29ja2V0LWV2ZW50LXRh
cmdldC5qcworKysgYi9MYXlvdXRUZXN0cy93ZWJzb2NrZXQvdGVzdHMvc2NyaXB0LXRlc3RzL3dl
YnNvY2tldC1ldmVudC10YXJnZXQuanMKQEAgLTI4LDcgKzI4LDcgQEAgd3MuZGlzcGF0Y2hFdmVu
dChldnQpOwogc2hvdWxkQmUoIm9wZW5fZXZlbnRfaGFuZGxlZCIsICJ0cnVlIik7CiAKIG9wZW5f
ZXZlbnRfaGFuZGxlZCA9IGZhbHNlOwotd3MucmVtb3ZlRXZlbnRMaXN0ZW5lcignb3BlbicsIG9w
ZW5MaXN0ZW5lcik7Cit3cy5yZW1vdmVFdmVudExpc3RlbmVyKCdvcGVuJywgb3Blbkxpc3RlbmVy
LCBmYWxzZSk7CiB3cy5kaXNwYXRjaEV2ZW50KGV2dCk7CiBzaG91bGRCZSgib3Blbl9ldmVudF9o
YW5kbGVkIiwgImZhbHNlIik7CiAKQEAgLTM4LDcgKzM4LDcgQEAgd3MuZGlzcGF0Y2hFdmVudChl
dnQpOwogc2hvdWxkQmUoIm1lc3NhZ2VfZXZlbnRfaGFuZGxlZCIsICJ0cnVlIik7CiAKIG1lc3Nh
Z2VfZXZlbnRfaGFuZGxlZCA9IGZhbHNlOwotd3MucmVtb3ZlRXZlbnRMaXN0ZW5lcignbWVzc2Fn
ZScsIG1lc3NhZ2VMaXN0ZW5lcik7Cit3cy5yZW1vdmVFdmVudExpc3RlbmVyKCdtZXNzYWdlJywg
bWVzc2FnZUxpc3RlbmVyLCBmYWxzZSk7CiB3cy5kaXNwYXRjaEV2ZW50KGV2dCk7CiBzaG91bGRC
ZSgibWVzc2FnZV9ldmVudF9oYW5kbGVkIiwgImZhbHNlIik7CiAKQEAgLTQ4LDcgKzQ4LDcgQEAg
d3MuZGlzcGF0Y2hFdmVudChldnQpOwogc2hvdWxkQmUoImNsb3NlX2V2ZW50X2hhbmRsZWQiLCAi
dHJ1ZSIpOwogCiBjbG9zZV9ldmVudF9oYW5kbGVkID0gZmFsc2U7Ci13cy5yZW1vdmVFdmVudExp
c3RlbmVyKCdjbG9zZScsIGNsb3NlTGlzdGVuZXIpOword3MucmVtb3ZlRXZlbnRMaXN0ZW5lcign
Y2xvc2UnLCBjbG9zZUxpc3RlbmVyLCBmYWxzZSk7CiB3cy5kaXNwYXRjaEV2ZW50KGV2dCk7CiBz
aG91bGRCZSgiY2xvc2VfZXZlbnRfaGFuZGxlZCIsICJmYWxzZSIpOwogCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDkzZjYyZmIuLmFlNjg4
YjEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsODAgQEAKKzIwMTAtMDYtMDIgIEFuZHJlYXMgS2xpbmcgIDxhbmRyZWFzLmts
aW5nQG5va2lhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBJREwgYmluZGluZ3Mgc2hvdWxkIHRocm93IFR5cGVFcnJvciB3aGVuIGNhbGxlZCB3
aXRoIHRvbyBmZXcgYXJndW1lbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMTI1NworCisgICAgICAgIEFsbCBJREwgb3BlcmF0aW9ucyBhcmUgbm93
IHdoYXQgd2FzIHByZXZpb3VzbHkgY2FsbGVkICJSZXF1aXJlc0FsbEFyZ3VtZW50PVJhaXNlIgor
ICAgICAgICBTb21lIGludGVyZmFjZXMgaGF2ZSBiZWVuIHVwZGF0ZWQgdG8gcHJlc2VydmUgYmVo
YXZpb3Igd2hlcmUgYSBtaXNzaW5nIGFyZ3VtZW50CisgICAgICAgIHdvdWxkIHByZXZpb3VzbHkg
aW1wbHkgbnVsbC9mYWxzZS9OYU4vZXRjLgorCisgICAgICAgIFNwZWMgbGluazoKKyAgICAgICAg
aHR0cDovL3d3dy53My5vcmcvVFIvV2ViSURMLyNlcy1vcGVyYXRpb25zCisKKyAgICAgICAgKiBi
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKiBiaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmNwcDoKKyAgICAgICAgKiBiaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmg6CisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjopOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Wb2lkTWV0
aG9kV2l0aEFyZ3MpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25JbnRNZXRob2RXaXRoQXJncyk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbk9iak1ldGhvZFdpdGhBcmdzKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uU2VyaWFsaXplZFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6Ompz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ3VzdG9tQXJnc0FuZEV4Y2VwdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkFkZEV2ZW50TGlzdGVuZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25SZW1vdmVFdmVudExp
c3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0
aER5bmFtaWNGcmFtZUFuZEFyZyk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbldpdGhEeW5hbWljRnJhbWVBbmRPcHRpb25hbEFyZyk6CisgICAgICAgIChXZWJD
b3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhEeW5hbWljRnJhbWVBbmRVc2VyR2Vz
dHVyZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhE
eW5hbWljRnJhbWVBbmRVc2VyR2VzdHVyZUFTQUQpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoTm9uT3B0aW9uYWxBcmdBbmRPcHRpb25hbEFy
Zyk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdp
dGhOb25PcHRpb25hbEFyZ0FuZFR3b09wdGlvbmFsQXJncyk6CisgICAgICAgIChXZWJDb3JlOjpq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2QxKToKKyAgICAgICAgKFdl
YkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZDIpOgorICAg
ICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9k
Myk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2Fk
ZWRNZXRob2Q0KToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2Jq
Lmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5oOgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmoubW06CisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsOgorICAgICAgICAqIGJpbmRp
bmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29u
ZmlndXJlVjhUZXN0T2JqVGVtcGxhdGUpOgorICAgICAgICAqIGNzcy9XZWJLaXRDU1NNYXRyaXgu
aDoKKyAgICAgICAgKiBjc3MvV2ViS2l0Q1NTTWF0cml4LmlkbDoKKyAgICAgICAgKiBkb20vQ2xp
cGJvYXJkLmlkbDoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaWRsOgorICAgICAgICAqIGh0bWwv
SFRNTFNlbGVjdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNlbGVjdEVsZW1l
bnQ6OmFkZCk6CisgICAgICAgICogaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5oOgorICAgICAgICAq
IGh0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaWRsOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1l
bmQvRGF0YUdyaWQuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGF0YUdyaWROb2RlLnByb3Rv
dHlwZS5jcmVhdGVDZWxsKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EYXRhR3JpZE5vZGUucHJv
dG90eXBlLmlzRXZlbnRXaXRoaW5EaXNjbG9zdXJlVHJpYW5nbGUpOgorICAgICAgICAqIGluc3Bl
Y3Rvci9mcm9udC1lbmQvRHJhd2VyLmpzOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQv
RWxlbWVudHNQYW5lbC5qczoKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0luamVjdGVk
U2NyaXB0LmpzOgorICAgICAgICAoaW5qZWN0ZWRTY3JpcHRDb25zdHJ1Y3Rvci4pOgorICAgICAg
ICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VzUGFuZWwuanM6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuUmVzb3VyY2VHcmFwaC5wcm90b3R5cGUucmVmcmVzaExhYmVsUG9zaXRpb25zKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZUdyYXBoLnByb3RvdHlwZS5yZWZyZXNoKToK
KyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1N0eWxlc1NpZGViYXJQYW5lLmpzOgorICAg
ICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVPdmVydmlld1BhbmUuanM6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVPdmVydmlld1BhbmUucHJvdG90eXBlLl9jcmVhdGVU
aW1lbGluZUNhdGVnb3J5U3RhdHVzQmFyQ2hlY2tib3gpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlRpbWVsaW5lQ2F0ZWdvcnlHcmFwaC5wcm90b3R5cGUuYWRkQ2h1bmspOgorICAgICAgICAqIGlu
c3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5UaW1lbGluZVJlY29yZEdyYXBoUm93KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5k
L2luc3BlY3Rvci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5hZGRQYW5lbFRvb2xiYXJJY29u
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5hbmltYXRlU3R5bGUpOgorICAgICAgICAqIGluc3Bl
Y3Rvci9mcm9udC1lbmQvdXRpbGl0aWVzLmpzOgorICAgICAgICAoRWxlbWVudC5wcm90b3R5cGUu
cXVlcnkpOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93Lmg6CisgICAgICAgICogcGFnZS9ET01X
aW5kb3cuaWRsOgorICAgICAgICAqIHBsdWdpbnMvUGx1Z2luQXJyYXkuaDoKKyAgICAgICAgKiBw
bHVnaW5zL1BsdWdpbkFycmF5LmlkbDoKKyAgICAgICAgKiB4bWwvWE1MSHR0cFJlcXVlc3QuaWRs
OgorCiAyMDEwLTA2LTAyICBKb2NlbHluIFR1cmNvdHRlICA8am9jZWx5bi50dXJjb3R0ZUBub2tp
YS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gSGF1c21hbm4uCmRpZmYgLS1naXQg
YS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtIGIvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQppbmRleCA1NzE5NWZjLi4xYjM5NTJj
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBt
CisrKyBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KQEAgLTE4
NDIsMTYgKzE4NDIsMjcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAkaW1wbFR5cGUqIGltcCA9IHN0YXRpY19jYXN0
PCRpbXBsVHlwZSo+KGNhc3RlZFRoaXMtPmltcGwoKSk7XG4iKTsKICAgICAgICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiAgICAkcG9kVHlwZSBwb2RJbXAoKmltcCk7XG4iKSBpZiAkcG9k
VHlwZTsKIAorICAgICAgICAgICAgICAgIG15ICRoYXNPcHRpb25hbEFyZ3VtZW50cyA9IDA7Cisg
ICAgICAgICAgICAgICAgbXkgJGZpcnN0T3B0aW9uYWxBcmd1bWVudCA9IDA7CisgICAgICAgICAg
ICAgICAgbXkgJGkgPSAwOworICAgICAgICAgICAgICAgIGZvcmVhY2ggbXkgJHBhcmFtZXRlciAo
QHskZnVuY3Rpb24tPnBhcmFtZXRlcnN9KSB7CisgICAgICAgICAgICAgICAgICAgIGlmICgkcGFy
YW1ldGVyLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiT3B0aW9uYWwifSkgeworICAgICAgICAgICAg
ICAgICAgICAgICAgJGhhc09wdGlvbmFsQXJndW1lbnRzID0gMTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICRmaXJzdE9wdGlvbmFsQXJndW1lbnQgPSAkaTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGxhc3Q7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgKysk
aTsKKyAgICAgICAgICAgICAgICB9CisKICAgICAgICAgICAgICAgICBteSAkbnVtUGFyYW1ldGVy
cyA9IEB7JGZ1bmN0aW9uLT5wYXJhbWV0ZXJzfTsKIAotICAgICAgICAgICAgICAgIG15ICRyZXF1
aXJlc0FsbEFyZ3VtZW50cyA9ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0
ZXMtPnsiUmVxdWlyZXNBbGxBcmd1bWVudHMifTsKLSAgICAgICAgICAgICAgICBpZiAoJHJlcXVp
cmVzQWxsQXJndW1lbnRzKSB7CisgICAgICAgICAgICAgICAgaWYgKCRudW1QYXJhbWV0ZXJzID4g
MCAmJiAoISRoYXNPcHRpb25hbEFyZ3VtZW50cyB8fCAoJGhhc09wdGlvbmFsQXJndW1lbnRzICYm
ICRmaXJzdE9wdGlvbmFsQXJndW1lbnQgPiAwKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYg
KCRoYXNPcHRpb25hbEFyZ3VtZW50cykgeworICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICIgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8ICRmaXJzdE9wdGlv
bmFsQXJndW1lbnQpXG4iKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAg
ICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmIChleGVjLT5hcmd1bWVu
dENvdW50KCkgPCAkbnVtUGFyYW1ldGVycylcbiIpOwotICAgICAgICAgICAgICAgICAgICAgICAg
aWYgKCRyZXF1aXJlc0FsbEFyZ3VtZW50cyBlcSAiUmFpc2UiKSB7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHJldHVybiB0aHJvd0Vycm9y
KGV4ZWMsIFN5bnRheEVycm9yLCBcIk5vdCBlbm91Z2ggYXJndW1lbnRzXCIpO1xuIik7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTtcbiIpOwot
ICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICByZXR1cm4gdGhyb3dFcnJv
cihleGVjLCBUeXBlRXJyb3IsIFwiTm90IGVub3VnaCBhcmd1bWVudHNcIik7XG4iKTsKICAgICAg
ICAgICAgICAgICB9CiAKICAgICAgICAgICAgICAgICBpZiAoQHskZnVuY3Rpb24tPnJhaXNlc0V4
Y2VwdGlvbnN9KSB7CkBAIC0xODcyLDggKzE4ODMsNiBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRh
dGlvbgogICAgICAgICAgICAgICAgICAgICBteSAkcGFyYW1JbmRleCA9IDA7CiAgICAgICAgICAg
ICAgICAgICAgIG15ICRmdW5jdGlvblN0cmluZyA9ICgkcG9kVHlwZSA/ICJwb2RJbXAuIiA6ICJp
bXAtPiIpIC4gJGZ1bmN0aW9uSW1wbGVtZW50YXRpb25OYW1lIC4gIigiOwogCi0gICAgICAgICAg
ICAgICAgICAgIG15ICRoYXNPcHRpb25hbEFyZ3VtZW50cyA9IDA7Ci0KICAgICAgICAgICAgICAg
ICAgICAgaWYgKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3Vz
dG9tQXJndW1lbnRIYW5kbGluZyJ9KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIiAgICBTY3JpcHRDYWxsU3RhY2sgY2FsbFN0YWNrKGV4ZWMsICRudW1QYXJh
bWV0ZXJzKTtcbiIpOwogICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxJbmNsdWRlc3siU2Ny
aXB0Q2FsbFN0YWNrLmgifSA9IDE7CkBAIC0xODk1LDEzICsxOTA0LDEzIEBAIHN1YiBHZW5lcmF0
ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICAgICAgICAgICAgICAkcGFyYW1JbmRleCsrOwog
ICAgICAgICAgICAgICAgICAgICB9CiAKKyAgICAgICAgICAgICAgICAgICAgaWYgKCRoYXNPcHRp
b25hbEFyZ3VtZW50cykgeworICAgICAgICAgICAgICAgICAgICAgICAgIyBHZW5lcmF0ZSBlYXJs
eSBjYWxsIGlmIHRoZXJlIGFyZSBlbm91Z2ggcGFyYW1ldGVycy4KKyAgICAgICAgICAgICAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiXG4gICAgaW50IGFyZ3NDb3VudCA9IGV4ZWMtPmFy
Z3VtZW50Q291bnQoKTtcbiIpOworICAgICAgICAgICAgICAgICAgICB9CisKICAgICAgICAgICAg
ICAgICAgICAgZm9yZWFjaCBteSAkcGFyYW1ldGVyIChAeyRmdW5jdGlvbi0+cGFyYW1ldGVyc30p
IHsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkcGFyYW1ldGVyLT5leHRlbmRlZEF0dHJp
YnV0ZXMtPnsiT3B0aW9uYWwifSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgR2Vu
ZXJhdGUgZWFybHkgY2FsbCBpZiB0aGVyZSBhcmUgZW5vdWdoIHBhcmFtZXRlcnMuCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgKCEkaGFzT3B0aW9uYWxBcmd1bWVudHMpIHsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJcbiAgICBpbnQg
YXJnc0NvdW50ID0gZXhlYy0+YXJndW1lbnRDb3VudCgpO1xuIik7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICRoYXNPcHRpb25hbEFyZ3VtZW50cyA9IDE7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAiICAgIGlmIChhcmdzQ291bnQgPCAiIC4gKCRwYXJhbUluZGV4ICsgMSkgLiAiKSB7
XG4iKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHZW5lcmF0ZUltcGxlbWVudGF0aW9u
RnVuY3Rpb25DYWxsKCRmdW5jdGlvbiwgJGZ1bmN0aW9uU3RyaW5nLCAkcGFyYW1JbmRleCwgIiAg
ICAiIHggMiwgJHBvZFR5cGUsICRpbXBsQ2xhc3NOYW1lKTsKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICB9XG5cbiIpOwpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmNwcCBi
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE9iai5j
cHAKaW5kZXggMTY1MGU4YS4uMDAxODI5NiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmNwcAorKysgYi9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmouY3BwCkBAIC0xMTcs
NDIgKzExNyw2IEBAIHdlYmtpdF9kb21fdGVzdF9vYmpfb2JqX21ldGhvZF93aXRoX2FyZ3MoV2Vi
S2l0RE9NVGVzdE9iaiogc2VsZiwgZ2xvbmcgaW50X2FyZywKICAgICByZXR1cm4gcmVzOwogfQog
Ci1XZWJLaXRET01UZXN0T2JqKiAKLXdlYmtpdF9kb21fdGVzdF9vYmpfbWV0aG9kX3RoYXRfcmVx
dWlyZXNfYWxsX2FyZ3MoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgZ2NoYXIqICBzdHJfYXJnLCBX
ZWJLaXRET01UZXN0T2JqKiAgb2JqX2FyZykKLXsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbCAo
c2VsZiwgMCk7Ci0gICAgV2ViQ29yZTo6VGVzdE9iaiAqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2Vs
Zik7Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwgKHN0cl9hcmcsIDApOwotICAgIGdfcmV0dXJu
X3ZhbF9pZl9mYWlsIChvYmpfYXJnLCAwKTsKLSAgICBXZWJDb3JlOjpTdHJpbmcgX2dfc3RyX2Fy
ZyA9IFdlYkNvcmU6OlN0cmluZzo6ZnJvbVVURjgoc3RyX2FyZyk7Ci0gICAgV2ViQ29yZTo6VGVz
dE9iaiAqIF9nX29ial9hcmcgPSBXZWJLaXQ6OmNvcmUob2JqX2FyZyk7Ci0gICAgZ19yZXR1cm5f
dmFsX2lmX2ZhaWwgKF9nX29ial9hcmcsIDApOwotICAgIFBhc3NSZWZQdHI8V2ViQ29yZTo6VGVz
dE9iaj4gZ19yZXMgPSBXVEY6OmdldFB0cihpdGVtLT5tZXRob2RUaGF0UmVxdWlyZXNBbGxBcmdz
KF9nX3N0cl9hcmcsIF9nX29ial9hcmcpKTsKLSAgICBXZWJLaXRET01UZXN0T2JqKiAgcmVzID0g
c3RhdGljX2Nhc3Q8V2ViS2l0RE9NVGVzdE9iaiogPihXZWJLaXQ6OmtpdChnX3Jlcy5nZXQoKSkp
OwotICAgIHJldHVybiByZXM7Ci19Ci0KLVdlYktpdERPTVRlc3RPYmoqIAotd2Via2l0X2RvbV90
ZXN0X29ial9tZXRob2RfdGhhdF9yZXF1aXJlc19hbGxfYXJnc19hbmRfdGhyb3dzKFdlYktpdERP
TVRlc3RPYmoqIHNlbGYsIGdjaGFyKiAgc3RyX2FyZywgV2ViS2l0RE9NVGVzdE9iaiogIG9ial9h
cmcsIEdFcnJvciAqKmVycm9yKQotewotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChzZWxmLCAw
KTsKLSAgICBXZWJDb3JlOjpUZXN0T2JqICogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKLSAg
ICBnX3JldHVybl92YWxfaWZfZmFpbCAoc3RyX2FyZywgMCk7Ci0gICAgZ19yZXR1cm5fdmFsX2lm
X2ZhaWwgKG9ial9hcmcsIDApOwotICAgIFdlYkNvcmU6OlN0cmluZyBfZ19zdHJfYXJnID0gV2Vi
Q29yZTo6U3RyaW5nOjpmcm9tVVRGOChzdHJfYXJnKTsKLSAgICBXZWJDb3JlOjpUZXN0T2JqICog
X2dfb2JqX2FyZyA9IFdlYktpdDo6Y29yZShvYmpfYXJnKTsKLSAgICBnX3JldHVybl92YWxfaWZf
ZmFpbCAoX2dfb2JqX2FyZywgMCk7Ci0gICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7
Ci0gICAgUGFzc1JlZlB0cjxXZWJDb3JlOjpUZXN0T2JqPiBnX3JlcyA9IFdURjo6Z2V0UHRyKGl0
ZW0tPm1ldGhvZFRoYXRSZXF1aXJlc0FsbEFyZ3NBbmRUaHJvd3MoX2dfc3RyX2FyZywgX2dfb2Jq
X2FyZywgZWMpKTsKLSAgICBpZiAoZWMpIHsKLSAgICAgICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29k
ZURlc2NyaXB0aW9uIGVjZGVzYzsKLSAgICAgICAgV2ViQ29yZTo6Z2V0RXhjZXB0aW9uQ29kZURl
c2NyaXB0aW9uKGVjLCBlY2Rlc2MpOwotICAgICAgICBnX3NldF9lcnJvcl9saXRlcmFsKGVycm9y
LCBnX3F1YXJrX2Zyb21fc3RyaW5nKCJXRUJLSVRfRE9NIiksIGVjZGVzYy5jb2RlLCBlY2Rlc2Mu
bmFtZSk7Ci0gICAgfQotICAgIFdlYktpdERPTVRlc3RPYmoqICByZXMgPSBzdGF0aWNfY2FzdDxX
ZWJLaXRET01UZXN0T2JqKiA+KFdlYktpdDo6a2l0KGdfcmVzLmdldCgpKSk7Ci0gICAgcmV0dXJu
IHJlczsKLX0KLQogdm9pZAogd2Via2l0X2RvbV90ZXN0X29ial9zZXJpYWxpemVkX3ZhbHVlKFdl
YktpdERPTVRlc3RPYmoqIHNlbGYsIFdlYktpdERPTVNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSogIHNl
cmlhbGl6ZWRfYXJnKQogewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmggYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmouaAppbmRleCA3MTVmZDIyLi44OWM0Yjg0IDEw
MDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERP
TVRlc3RPYmouaAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dl
YktpdERPTVRlc3RPYmouaApAQCAtNjQsMTIgKzY0LDYgQEAgd2Via2l0X2RvbV90ZXN0X29ial9v
YmpfbWV0aG9kKFdlYktpdERPTVRlc3RPYmoqIHNlbGYpOwogV0VCS0lUX0FQSSBXZWJLaXRET01U
ZXN0T2JqKiAKIHdlYmtpdF9kb21fdGVzdF9vYmpfb2JqX21ldGhvZF93aXRoX2FyZ3MoV2ViS2l0
RE9NVGVzdE9iaiogc2VsZiwgZ2xvbmcgaW50X2FyZywgZ2NoYXIqICBzdHJfYXJnLCBXZWJLaXRE
T01UZXN0T2JqKiAgb2JqX2FyZyk7CiAKLVdFQktJVF9BUEkgV2ViS2l0RE9NVGVzdE9iaiogCi13
ZWJraXRfZG9tX3Rlc3Rfb2JqX21ldGhvZF90aGF0X3JlcXVpcmVzX2FsbF9hcmdzKFdlYktpdERP
TVRlc3RPYmoqIHNlbGYsIGdjaGFyKiAgc3RyX2FyZywgV2ViS2l0RE9NVGVzdE9iaiogIG9ial9h
cmcpOwotCi1XRUJLSVRfQVBJIFdlYktpdERPTVRlc3RPYmoqIAotd2Via2l0X2RvbV90ZXN0X29i
al9tZXRob2RfdGhhdF9yZXF1aXJlc19hbGxfYXJnc19hbmRfdGhyb3dzKFdlYktpdERPTVRlc3RP
YmoqIHNlbGYsIGdjaGFyKiAgc3RyX2FyZywgV2ViS2l0RE9NVGVzdE9iaiogIG9ial9hcmcsIEdF
cnJvciAqKmVycm9yKTsKLQogV0VCS0lUX0FQSSB2b2lkCiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX3Nl
cmlhbGl6ZWRfdmFsdWUoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgV2ViS2l0RE9NU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlKiAgc2VyaWFsaXplZF9hcmcpOwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAppbmRleCA4MTkxYzFiLi40OTdhMDY3IDEwMDY0
NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCisr
KyBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKQEAgLTEy
MSw3ICsxMjEsNyBAQCBib29sIEpTVGVzdE9iakNvbnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudAogI2RlZmluZSBUSFVOS19HRU5F
UkFUT1IoZ2VuZXJhdG9yKQogI2VuZGlmCiAKLXN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBK
U1Rlc3RPYmpQcm90b3R5cGVUYWJsZVZhbHVlc1syOV0gPQorc3RhdGljIGNvbnN0IEhhc2hUYWJs
ZVZhbHVlIEpTVGVzdE9ialByb3RvdHlwZVRhYmxlVmFsdWVzWzI3XSA9CiB7CiAgICAgeyAidm9p
ZE1ldGhvZCIsIERvbnREZWxldGUgfCBGdW5jdGlvbiwgKGludHB0cl90KXN0YXRpY19jYXN0PE5h
dGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblZvaWRNZXRob2QpLCAoaW50
cHRyX3QpMCBUSFVOS19HRU5FUkFUT1IoMCkgfSwKICAgICB7ICJ2b2lkTWV0aG9kV2l0aEFyZ3Mi
LCBEb250RGVsZXRlIHwgRnVuY3Rpb24sIChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5j
dGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Wb2lkTWV0aG9kV2l0aEFyZ3MpLCAoaW50
cHRyX3QpMyBUSFVOS19HRU5FUkFUT1IoMCkgfSwKQEAgLTEyOSw4ICsxMjksNiBAQCBzdGF0aWMg
Y29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0T2JqUHJvdG90eXBlVGFibGVWYWx1ZXNbMjldID0K
ICAgICB7ICJpbnRNZXRob2RXaXRoQXJncyIsIERvbnREZWxldGUgfCBGdW5jdGlvbiwgKGludHB0
cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bkludE1ldGhvZFdpdGhBcmdzKSwgKGludHB0cl90KTMgVEhVTktfR0VORVJBVE9SKDApIH0sCiAg
ICAgeyAib2JqTWV0aG9kIiwgRG9udERlbGV0ZSB8IEZ1bmN0aW9uLCAoaW50cHRyX3Qpc3RhdGlj
X2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT2JqTWV0aG9k
KSwgKGludHB0cl90KTAgVEhVTktfR0VORVJBVE9SKDApIH0sCiAgICAgeyAib2JqTWV0aG9kV2l0
aEFyZ3MiLCBEb250RGVsZXRlIHwgRnVuY3Rpb24sIChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRp
dmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PYmpNZXRob2RXaXRoQXJncyks
IChpbnRwdHJfdCkzIFRIVU5LX0dFTkVSQVRPUigwKSB9LAotICAgIHsgIm1ldGhvZFRoYXRSZXF1
aXJlc0FsbEFyZ3MiLCBEb250RGVsZXRlIHwgRnVuY3Rpb24sIChpbnRwdHJfdClzdGF0aWNfY2Fz
dDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RUaGF0UmVx
dWlyZXNBbGxBcmdzKSwgKGludHB0cl90KTIgVEhVTktfR0VORVJBVE9SKDApIH0sCi0gICAgeyAi
bWV0aG9kVGhhdFJlcXVpcmVzQWxsQXJnc0FuZFRocm93cyIsIERvbnREZWxldGUgfCBGdW5jdGlv
biwgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbk1ldGhvZFRoYXRSZXF1aXJlc0FsbEFyZ3NBbmRUaHJvd3MpLCAoaW50cHRyX3Qp
MiBUSFVOS19HRU5FUkFUT1IoMCkgfSwKICAgICB7ICJzZXJpYWxpemVkVmFsdWUiLCBEb250RGVs
ZXRlIHwgRnVuY3Rpb24sIChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25TZXJpYWxpemVkVmFsdWUpLCAoaW50cHRyX3QpMSBUSFVO
S19HRU5FUkFUT1IoMCkgfSwKICAgICB7ICJtZXRob2RXaXRoRXhjZXB0aW9uIiwgRG9udERlbGV0
ZSB8IEZ1bmN0aW9uLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aEV4Y2VwdGlvbiksIChpbnRwdHJfdCkwIFRI
VU5LX0dFTkVSQVRPUigwKSB9LAogICAgIHsgImN1c3RvbU1ldGhvZCIsIERvbnREZWxldGUgfCBG
dW5jdGlvbiwgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbkN1c3RvbU1ldGhvZCksIChpbnRwdHJfdCkwIFRIVU5LX0dFTkVSQVRP
UigwKSB9LApAQCAtMTU1LDcgKzE1Myw3IEBAIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBK
U1Rlc3RPYmpQcm90b3R5cGVUYWJsZVZhbHVlc1syOV0gPQogfTsKIAogI3VuZGVmIFRIVU5LX0dF
TkVSQVRPUgotc3RhdGljIEpTQ19DT05TVF9IQVNIVEFCTEUgSGFzaFRhYmxlIEpTVGVzdE9ialBy
b3RvdHlwZVRhYmxlID0geyA2OSwgNjMsIEpTVGVzdE9ialByb3RvdHlwZVRhYmxlVmFsdWVzLCAw
IH07CitzdGF0aWMgSlNDX0NPTlNUX0hBU0hUQUJMRSBIYXNoVGFibGUgSlNUZXN0T2JqUHJvdG90
eXBlVGFibGUgPSB7IDY3LCA2MywgSlNUZXN0T2JqUHJvdG90eXBlVGFibGVWYWx1ZXMsIDAgfTsK
IGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RPYmpQcm90b3R5cGU6OnNfaW5mbyA9IHsgIlRlc3RPYmpQ
cm90b3R5cGUiLCAwLCAmSlNUZXN0T2JqUHJvdG90eXBlVGFibGUsIDAgfTsKIAogSlNPYmplY3Qq
IEpTVGVzdE9ialByb3RvdHlwZTo6c2VsZihFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QpCkBAIC00MTUsNiArNDEzLDggQEAgSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVm9pZE1ldGhvZFdpdGhBcmdzKEV4ZWNTdGF0ZSog
ZXgKICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXhlYywgVHlwZUVycm9yKTsKICAgICBKU1Rl
c3RPYmoqIGNhc3RlZFRoaXMgPSBzdGF0aWNfY2FzdDxKU1Rlc3RPYmoqPihhc09iamVjdCh0aGlz
VmFsdWUpKTsKICAgICBUZXN0T2JqKiBpbXAgPSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVk
VGhpcy0+aW1wbCgpKTsKKyAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMykKKyAgICAg
ICAgcmV0dXJuIHRocm93RXJyb3IoZXhlYywgVHlwZUVycm9yLCAiTm90IGVub3VnaCBhcmd1bWVu
dHMiKTsKICAgICBpbnQgaW50QXJnID0gZXhlYy0+YXJndW1lbnQoMCkudG9JbnQzMihleGVjKTsK
ICAgICBjb25zdCBTdHJpbmcmIHN0ckFyZyA9IHVzdHJpbmdUb1N0cmluZyhleGVjLT5hcmd1bWVu
dCgxKS50b1N0cmluZyhleGVjKSk7CiAgICAgVGVzdE9iaiogb2JqQXJnID0gdG9UZXN0T2JqKGV4
ZWMtPmFyZ3VtZW50KDIpKTsKQEAgLTQ0Myw2ICs0NDMsOCBAQCBKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25JbnRNZXRob2RXaXRoQXJncyhFeGVjU3RhdGUq
IGV4ZQogICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihleGVjLCBUeXBlRXJyb3IpOwogICAgIEpT
VGVzdE9iaiogY2FzdGVkVGhpcyA9IHN0YXRpY19jYXN0PEpTVGVzdE9iaio+KGFzT2JqZWN0KHRo
aXNWYWx1ZSkpOwogICAgIFRlc3RPYmoqIGltcCA9IHN0YXRpY19jYXN0PFRlc3RPYmoqPihjYXN0
ZWRUaGlzLT5pbXBsKCkpOworICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAzKQorICAg
ICAgICByZXR1cm4gdGhyb3dFcnJvcihleGVjLCBUeXBlRXJyb3IsICJOb3QgZW5vdWdoIGFyZ3Vt
ZW50cyIpOwogICAgIGludCBpbnRBcmcgPSBleGVjLT5hcmd1bWVudCgwKS50b0ludDMyKGV4ZWMp
OwogICAgIGNvbnN0IFN0cmluZyYgc3RyQXJnID0gdXN0cmluZ1RvU3RyaW5nKGV4ZWMtPmFyZ3Vt
ZW50KDEpLnRvU3RyaW5nKGV4ZWMpKTsKICAgICBUZXN0T2JqKiBvYmpBcmcgPSB0b1Rlc3RPYmoo
ZXhlYy0+YXJndW1lbnQoMikpOwpAQCAtNDcyLDYgKzQ3NCw4IEBAIEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk9iak1ldGhvZFdpdGhBcmdzKEV4ZWNTdGF0
ZSogZXhlCiAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGV4ZWMsIFR5cGVFcnJvcik7CiAgICAg
SlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0gc3RhdGljX2Nhc3Q8SlNUZXN0T2JqKj4oYXNPYmplY3Qo
dGhpc1ZhbHVlKSk7CiAgICAgVGVzdE9iaiogaW1wID0gc3RhdGljX2Nhc3Q8VGVzdE9iaio+KGNh
c3RlZFRoaXMtPmltcGwoKSk7CisgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDMpCisg
ICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGV4ZWMsIFR5cGVFcnJvciwgIk5vdCBlbm91Z2ggYXJn
dW1lbnRzIik7CiAgICAgaW50IGludEFyZyA9IGV4ZWMtPmFyZ3VtZW50KDApLnRvSW50MzIoZXhl
Yyk7CiAgICAgY29uc3QgU3RyaW5nJiBzdHJBcmcgPSB1c3RyaW5nVG9TdHJpbmcoZXhlYy0+YXJn
dW1lbnQoMSkudG9TdHJpbmcoZXhlYykpOwogICAgIFRlc3RPYmoqIG9iakFyZyA9IHRvVGVzdE9i
aihleGVjLT5hcmd1bWVudCgyKSk7CkBAIC00ODEsNDIgKzQ4NSw2IEBAIEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk9iak1ldGhvZFdpdGhBcmdzKEV4ZWNT
dGF0ZSogZXhlCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kVGhhdFJlcXVpcmVzQWxsQXJncyhFeGVj
U3RhdGUqIGV4ZWMpCi17Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1Zh
bHVlKCk7Ci0gICAgaWYgKCF0aGlzVmFsdWUuaW5oZXJpdHMoJkpTVGVzdE9iajo6c19pbmZvKSkK
LSAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXhlYywgVHlwZUVycm9yKTsKLSAgICBKU1Rlc3RP
YmoqIGNhc3RlZFRoaXMgPSBzdGF0aWNfY2FzdDxKU1Rlc3RPYmoqPihhc09iamVjdCh0aGlzVmFs
dWUpKTsKLSAgICBUZXN0T2JqKiBpbXAgPSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhp
cy0+aW1wbCgpKTsKLSAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMikKLSAgICAgICAg
cmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0gICAgY29uc3QgU3RyaW5nJiBzdHJBcmcgPSB1c3RyaW5n
VG9TdHJpbmcoZXhlYy0+YXJndW1lbnQoMCkudG9TdHJpbmcoZXhlYykpOwotICAgIFRlc3RPYmoq
IG9iakFyZyA9IHRvVGVzdE9iaihleGVjLT5hcmd1bWVudCgxKSk7Ci0KLQotICAgIEpTQzo6SlNW
YWx1ZSByZXN1bHQgPSB0b0pTKGV4ZWMsIGNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpLCBXVEY6
OmdldFB0cihpbXAtPm1ldGhvZFRoYXRSZXF1aXJlc0FsbEFyZ3Moc3RyQXJnLCBvYmpBcmcpKSk7
Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kVGhhdFJlcXVpcmVzQWxsQXJnc0FuZFRocm93cyhFeGVj
U3RhdGUqIGV4ZWMpCi17Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1Zh
bHVlKCk7Ci0gICAgaWYgKCF0aGlzVmFsdWUuaW5oZXJpdHMoJkpTVGVzdE9iajo6c19pbmZvKSkK
LSAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXhlYywgVHlwZUVycm9yKTsKLSAgICBKU1Rlc3RP
YmoqIGNhc3RlZFRoaXMgPSBzdGF0aWNfY2FzdDxKU1Rlc3RPYmoqPihhc09iamVjdCh0aGlzVmFs
dWUpKTsKLSAgICBUZXN0T2JqKiBpbXAgPSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhp
cy0+aW1wbCgpKTsKLSAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMikKLSAgICAgICAg
cmV0dXJuIHRocm93RXJyb3IoZXhlYywgU3ludGF4RXJyb3IsICJOb3QgZW5vdWdoIGFyZ3VtZW50
cyIpOwotICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIGNvbnN0IFN0cmluZyYgc3RyQXJn
ID0gdXN0cmluZ1RvU3RyaW5nKGV4ZWMtPmFyZ3VtZW50KDApLnRvU3RyaW5nKGV4ZWMpKTsKLSAg
ICBUZXN0T2JqKiBvYmpBcmcgPSB0b1Rlc3RPYmooZXhlYy0+YXJndW1lbnQoMSkpOwotCi0KLSAg
ICBKU0M6OkpTVmFsdWUgcmVzdWx0ID0gdG9KUyhleGVjLCBjYXN0ZWRUaGlzLT5nbG9iYWxPYmpl
Y3QoKSwgV1RGOjpnZXRQdHIoaW1wLT5tZXRob2RUaGF0UmVxdWlyZXNBbGxBcmdzQW5kVGhyb3dz
KHN0ckFyZywgb2JqQXJnLCBlYykpKTsKLSAgICBzZXRET01FeGNlcHRpb24oZXhlYywgZWMpOwot
ICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KIEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvblNlcmlhbGl6ZWRWYWx1ZShFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAg
SlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CkBAIC01MjQsNiArNDky
LDggQEAgSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uU2Vy
aWFsaXplZFZhbHVlKEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgcmV0dXJuIHRocm93RXJyb3Io
ZXhlYywgVHlwZUVycm9yKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBzdGF0aWNfY2Fz
dDxKU1Rlc3RPYmoqPihhc09iamVjdCh0aGlzVmFsdWUpKTsKICAgICBUZXN0T2JqKiBpbXAgPSBz
dGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKKyAgICBpZiAoZXhlYy0+
YXJndW1lbnRDb3VudCgpIDwgMSkKKyAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXhlYywgVHlw
ZUVycm9yLCAiTm90IGVub3VnaCBhcmd1bWVudHMiKTsKICAgICBSZWZQdHI8U2VyaWFsaXplZFNj
cmlwdFZhbHVlPiBzZXJpYWxpemVkQXJnID0gU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpjcmVhdGUo
ZXhlYywgZXhlYy0+YXJndW1lbnQoMCkpOwogCiAgICAgaW1wLT5zZXJpYWxpemVkVmFsdWUoc2Vy
aWFsaXplZEFyZyk7CkBAIC01NjksNiArNTM5LDggQEAgSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ3VzdG9tQXJnc0FuZEV4Y2VwdGlvbihFeGVjU3RhdGUK
ICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXhlYywgVHlwZUVycm9yKTsKICAgICBKU1Rlc3RP
YmoqIGNhc3RlZFRoaXMgPSBzdGF0aWNfY2FzdDxKU1Rlc3RPYmoqPihhc09iamVjdCh0aGlzVmFs
dWUpKTsKICAgICBUZXN0T2JqKiBpbXAgPSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhp
cy0+aW1wbCgpKTsKKyAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMSkKKyAgICAgICAg
cmV0dXJuIHRocm93RXJyb3IoZXhlYywgVHlwZUVycm9yLCAiTm90IGVub3VnaCBhcmd1bWVudHMi
KTsKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKICAgICBTY3JpcHRDYWxsU3RhY2sgY2FsbFN0
YWNrKGV4ZWMsIDEpOwogICAgIGxvZyogaW50QXJnID0gdG9sb2coZXhlYy0+YXJndW1lbnQoMCkp
OwpAQCAtNTg1LDYgKzU1Nyw4IEBAIEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbkFkZEV2ZW50TGlzdGVuZXIoRXhlY1N0YXRlKiBleGVjCiAgICAgICAgIHJl
dHVybiB0aHJvd0Vycm9yKGV4ZWMsIFR5cGVFcnJvcik7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRU
aGlzID0gc3RhdGljX2Nhc3Q8SlNUZXN0T2JqKj4oYXNPYmplY3QodGhpc1ZhbHVlKSk7CiAgICAg
VGVzdE9iaiogaW1wID0gc3RhdGljX2Nhc3Q8VGVzdE9iaio+KGNhc3RlZFRoaXMtPmltcGwoKSk7
CisgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDMpCisgICAgICAgIHJldHVybiB0aHJv
d0Vycm9yKGV4ZWMsIFR5cGVFcnJvciwgIk5vdCBlbm91Z2ggYXJndW1lbnRzIik7CiAgICAgSlNW
YWx1ZSBsaXN0ZW5lciA9IGV4ZWMtPmFyZ3VtZW50KDEpOwogICAgIGlmICghbGlzdGVuZXIuaXNP
YmplY3QoKSkKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CkBAIC01OTksNiArNTczLDgg
QEAgSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uUmVtb3Zl
RXZlbnRMaXN0ZW5lcihFeGVjU3RhdGUqIGUKICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXhl
YywgVHlwZUVycm9yKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBzdGF0aWNfY2FzdDxK
U1Rlc3RPYmoqPihhc09iamVjdCh0aGlzVmFsdWUpKTsKICAgICBUZXN0T2JqKiBpbXAgPSBzdGF0
aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKKyAgICBpZiAoZXhlYy0+YXJn
dW1lbnRDb3VudCgpIDwgMykKKyAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXhlYywgVHlwZUVy
cm9yLCAiTm90IGVub3VnaCBhcmd1bWVudHMiKTsKICAgICBKU1ZhbHVlIGxpc3RlbmVyID0gZXhl
Yy0+YXJndW1lbnQoMSk7CiAgICAgaWYgKCFsaXN0ZW5lci5pc09iamVjdCgpKQogICAgICAgICBy
ZXR1cm4ganNVbmRlZmluZWQoKTsKQEAgLTYyOCw2ICs2MDQsOCBAQCBKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoRHluYW1pY0ZyYW1lQW5kQXJnKEV4
ZWNTdGF0ZQogICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihleGVjLCBUeXBlRXJyb3IpOwogICAg
IEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IHN0YXRpY19jYXN0PEpTVGVzdE9iaio+KGFzT2JqZWN0
KHRoaXNWYWx1ZSkpOwogICAgIFRlc3RPYmoqIGltcCA9IHN0YXRpY19jYXN0PFRlc3RPYmoqPihj
YXN0ZWRUaGlzLT5pbXBsKCkpOworICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAxKQor
ICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihleGVjLCBUeXBlRXJyb3IsICJOb3QgZW5vdWdoIGFy
Z3VtZW50cyIpOwogICAgIEZyYW1lKiBkeW5hbWljRnJhbWUgPSB0b0R5bmFtaWNGcmFtZShleGVj
KTsKICAgICBpZiAoIWR5bmFtaWNGcmFtZSkKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7
CkBAIC02NDQsMTIgKzYyMiwxNCBAQCBKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25XaXRoRHluYW1pY0ZyYW1lQW5kT3B0aW9uYWxBcmcoRQogICAgICAgICBy
ZXR1cm4gdGhyb3dFcnJvcihleGVjLCBUeXBlRXJyb3IpOwogICAgIEpTVGVzdE9iaiogY2FzdGVk
VGhpcyA9IHN0YXRpY19jYXN0PEpTVGVzdE9iaio+KGFzT2JqZWN0KHRoaXNWYWx1ZSkpOwogICAg
IFRlc3RPYmoqIGltcCA9IHN0YXRpY19jYXN0PFRlc3RPYmoqPihjYXN0ZWRUaGlzLT5pbXBsKCkp
OworICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAxKQorICAgICAgICByZXR1cm4gdGhy
b3dFcnJvcihleGVjLCBUeXBlRXJyb3IsICJOb3QgZW5vdWdoIGFyZ3VtZW50cyIpOwogICAgIEZy
YW1lKiBkeW5hbWljRnJhbWUgPSB0b0R5bmFtaWNGcmFtZShleGVjKTsKICAgICBpZiAoIWR5bmFt
aWNGcmFtZSkKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0gICAgaW50IGludEFyZyA9
IGV4ZWMtPmFyZ3VtZW50KDEpLnRvSW50MzIoZXhlYyk7CiAKICAgICBpbnQgYXJnc0NvdW50ID0g
ZXhlYy0+YXJndW1lbnRDb3VudCgpOworICAgIGludCBpbnRBcmcgPSBleGVjLT5hcmd1bWVudCgx
KS50b0ludDMyKGV4ZWMpOwogICAgIGlmIChhcmdzQ291bnQgPCAzKSB7CiAgICAgICAgIGltcC0+
d2l0aER5bmFtaWNGcmFtZUFuZE9wdGlvbmFsQXJnKGR5bmFtaWNGcmFtZSwgaW50QXJnKTsKICAg
ICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CkBAIC02NjgsNiArNjQ4LDggQEAgSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aER5bmFtaWNGcmFtZUFu
ZFVzZXJHZXN0dXJlKEUKICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXhlYywgVHlwZUVycm9y
KTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBzdGF0aWNfY2FzdDxKU1Rlc3RPYmoqPihh
c09iamVjdCh0aGlzVmFsdWUpKTsKICAgICBUZXN0T2JqKiBpbXAgPSBzdGF0aWNfY2FzdDxUZXN0
T2JqKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKKyAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgp
IDwgMSkKKyAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXhlYywgVHlwZUVycm9yLCAiTm90IGVu
b3VnaCBhcmd1bWVudHMiKTsKICAgICBGcmFtZSogZHluYW1pY0ZyYW1lID0gdG9EeW5hbWljRnJh
bWUoZXhlYyk7CiAgICAgaWYgKCFkeW5hbWljRnJhbWUpCiAgICAgICAgIHJldHVybiBqc1VuZGVm
aW5lZCgpOwpAQCAtNjg0LDEyICs2NjYsMTQgQEAgSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aER5bmFtaWNGcmFtZUFuZFVzZXJHZXN0dXJlQVMKICAg
ICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXhlYywgVHlwZUVycm9yKTsKICAgICBKU1Rlc3RPYmoq
IGNhc3RlZFRoaXMgPSBzdGF0aWNfY2FzdDxKU1Rlc3RPYmoqPihhc09iamVjdCh0aGlzVmFsdWUp
KTsKICAgICBUZXN0T2JqKiBpbXAgPSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhpcy0+
aW1wbCgpKTsKKyAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMSkKKyAgICAgICAgcmV0
dXJuIHRocm93RXJyb3IoZXhlYywgVHlwZUVycm9yLCAiTm90IGVub3VnaCBhcmd1bWVudHMiKTsK
ICAgICBGcmFtZSogZHluYW1pY0ZyYW1lID0gdG9EeW5hbWljRnJhbWUoZXhlYyk7CiAgICAgaWYg
KCFkeW5hbWljRnJhbWUpCiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotICAgIGludCBp
bnRBcmcgPSBleGVjLT5hcmd1bWVudCgxKS50b0ludDMyKGV4ZWMpOwogCiAgICAgaW50IGFyZ3ND
b3VudCA9IGV4ZWMtPmFyZ3VtZW50Q291bnQoKTsKKyAgICBpbnQgaW50QXJnID0gZXhlYy0+YXJn
dW1lbnQoMSkudG9JbnQzMihleGVjKTsKICAgICBpZiAoYXJnc0NvdW50IDwgMykgewogICAgICAg
ICBpbXAtPndpdGhEeW5hbWljRnJhbWVBbmRVc2VyR2VzdHVyZUFTQUQoZHluYW1pY0ZyYW1lLCBp
bnRBcmcpOwogICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKQEAgLTc4Niw5ICs3NzAsMTEg
QEAgSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9k
V2l0aE5vbk9wdGlvbmFsQXJnQW5kT3B0aW8KICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXhl
YywgVHlwZUVycm9yKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBzdGF0aWNfY2FzdDxK
U1Rlc3RPYmoqPihhc09iamVjdCh0aGlzVmFsdWUpKTsKICAgICBUZXN0T2JqKiBpbXAgPSBzdGF0
aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKLSAgICBpbnQgbm9uT3B0ID0g
ZXhlYy0+YXJndW1lbnQoMCkudG9JbnQzMihleGVjKTsKKyAgICBpZiAoZXhlYy0+YXJndW1lbnRD
b3VudCgpIDwgMSkKKyAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXhlYywgVHlwZUVycm9yLCAi
Tm90IGVub3VnaCBhcmd1bWVudHMiKTsKIAogICAgIGludCBhcmdzQ291bnQgPSBleGVjLT5hcmd1
bWVudENvdW50KCk7CisgICAgaW50IG5vbk9wdCA9IGV4ZWMtPmFyZ3VtZW50KDApLnRvSW50MzIo
ZXhlYyk7CiAgICAgaWYgKGFyZ3NDb3VudCA8IDIpIHsKICAgICAgICAgaW1wLT5tZXRob2RXaXRo
Tm9uT3B0aW9uYWxBcmdBbmRPcHRpb25hbEFyZyhub25PcHQpOwogICAgICAgICByZXR1cm4ganNV
bmRlZmluZWQoKTsKQEAgLTgwNyw5ICs3OTMsMTEgQEAgSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE5vbk9wdGlvbmFsQXJnQW5kVHdvT3AK
ICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXhlYywgVHlwZUVycm9yKTsKICAgICBKU1Rlc3RP
YmoqIGNhc3RlZFRoaXMgPSBzdGF0aWNfY2FzdDxKU1Rlc3RPYmoqPihhc09iamVjdCh0aGlzVmFs
dWUpKTsKICAgICBUZXN0T2JqKiBpbXAgPSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhp
cy0+aW1wbCgpKTsKLSAgICBpbnQgbm9uT3B0ID0gZXhlYy0+YXJndW1lbnQoMCkudG9JbnQzMihl
eGVjKTsKKyAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMSkKKyAgICAgICAgcmV0dXJu
IHRocm93RXJyb3IoZXhlYywgVHlwZUVycm9yLCAiTm90IGVub3VnaCBhcmd1bWVudHMiKTsKIAog
ICAgIGludCBhcmdzQ291bnQgPSBleGVjLT5hcmd1bWVudENvdW50KCk7CisgICAgaW50IG5vbk9w
dCA9IGV4ZWMtPmFyZ3VtZW50KDApLnRvSW50MzIoZXhlYyk7CiAgICAgaWYgKGFyZ3NDb3VudCA8
IDIpIHsKICAgICAgICAgaW1wLT5tZXRob2RXaXRoTm9uT3B0aW9uYWxBcmdBbmRUd29PcHRpb25h
bEFyZ3Mobm9uT3B0KTsKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CkBAIC04MjksNiAr
ODE3LDggQEAgSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
T3ZlcmxvYWRlZE1ldGhvZDEoRXhlY1N0YXRlKiBleGUKICAgICAgICAgcmV0dXJuIHRocm93RXJy
b3IoZXhlYywgVHlwZUVycm9yKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBzdGF0aWNf
Y2FzdDxKU1Rlc3RPYmoqPihhc09iamVjdCh0aGlzVmFsdWUpKTsKICAgICBUZXN0T2JqKiBpbXAg
PSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKKyAgICBpZiAoZXhl
Yy0+YXJndW1lbnRDb3VudCgpIDwgMikKKyAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXhlYywg
VHlwZUVycm9yLCAiTm90IGVub3VnaCBhcmd1bWVudHMiKTsKICAgICBUZXN0T2JqKiBvYmpBcmcg
PSB0b1Rlc3RPYmooZXhlYy0+YXJndW1lbnQoMCkpOwogICAgIGNvbnN0IFN0cmluZyYgc3RyQXJn
ID0gdXN0cmluZ1RvU3RyaW5nKGV4ZWMtPmFyZ3VtZW50KDEpLnRvU3RyaW5nKGV4ZWMpKTsKIApA
QCAtODQzLDkgKzgzMywxMSBAQCBKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kMihFeGVjU3RhdGUqIGV4ZQogICAgICAgICByZXR1
cm4gdGhyb3dFcnJvcihleGVjLCBUeXBlRXJyb3IpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhp
cyA9IHN0YXRpY19jYXN0PEpTVGVzdE9iaio+KGFzT2JqZWN0KHRoaXNWYWx1ZSkpOwogICAgIFRl
c3RPYmoqIGltcCA9IHN0YXRpY19jYXN0PFRlc3RPYmoqPihjYXN0ZWRUaGlzLT5pbXBsKCkpOwot
ICAgIFRlc3RPYmoqIG9iakFyZyA9IHRvVGVzdE9iaihleGVjLT5hcmd1bWVudCgwKSk7CisgICAg
aWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDEpCisgICAgICAgIHJldHVybiB0aHJvd0Vycm9y
KGV4ZWMsIFR5cGVFcnJvciwgIk5vdCBlbm91Z2ggYXJndW1lbnRzIik7CiAKICAgICBpbnQgYXJn
c0NvdW50ID0gZXhlYy0+YXJndW1lbnRDb3VudCgpOworICAgIFRlc3RPYmoqIG9iakFyZyA9IHRv
VGVzdE9iaihleGVjLT5hcmd1bWVudCgwKSk7CiAgICAgaWYgKGFyZ3NDb3VudCA8IDIpIHsKICAg
ICAgICAgaW1wLT5vdmVybG9hZGVkTWV0aG9kKG9iakFyZyk7CiAgICAgICAgIHJldHVybiBqc1Vu
ZGVmaW5lZCgpOwpAQCAtODY0LDYgKzg1Niw4IEBAIEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2QzKEV4ZWNTdGF0ZSogZXhlCiAg
ICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGV4ZWMsIFR5cGVFcnJvcik7CiAgICAgSlNUZXN0T2Jq
KiBjYXN0ZWRUaGlzID0gc3RhdGljX2Nhc3Q8SlNUZXN0T2JqKj4oYXNPYmplY3QodGhpc1ZhbHVl
KSk7CiAgICAgVGVzdE9iaiogaW1wID0gc3RhdGljX2Nhc3Q8VGVzdE9iaio+KGNhc3RlZFRoaXMt
PmltcGwoKSk7CisgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDEpCisgICAgICAgIHJl
dHVybiB0aHJvd0Vycm9yKGV4ZWMsIFR5cGVFcnJvciwgIk5vdCBlbm91Z2ggYXJndW1lbnRzIik7
CiAgICAgY29uc3QgU3RyaW5nJiBzdHJBcmcgPSB1c3RyaW5nVG9TdHJpbmcoZXhlYy0+YXJndW1l
bnQoMCkudG9TdHJpbmcoZXhlYykpOwogCiAgICAgaW1wLT5vdmVybG9hZGVkTWV0aG9kKHN0ckFy
Zyk7CkBAIC04NzcsNiArODcxLDggQEAgSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZDQoRXhlY1N0YXRlKiBleGUKICAgICAgICAg
cmV0dXJuIHRocm93RXJyb3IoZXhlYywgVHlwZUVycm9yKTsKICAgICBKU1Rlc3RPYmoqIGNhc3Rl
ZFRoaXMgPSBzdGF0aWNfY2FzdDxKU1Rlc3RPYmoqPihhc09iamVjdCh0aGlzVmFsdWUpKTsKICAg
ICBUZXN0T2JqKiBpbXAgPSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhpcy0+aW1wbCgp
KTsKKyAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMSkKKyAgICAgICAgcmV0dXJuIHRo
cm93RXJyb3IoZXhlYywgVHlwZUVycm9yLCAiTm90IGVub3VnaCBhcmd1bWVudHMiKTsKICAgICBp
bnQgaW50QXJnID0gZXhlYy0+YXJndW1lbnQoMCkudG9JbnQzMihleGVjKTsKIAogICAgIGltcC0+
b3ZlcmxvYWRlZE1ldGhvZChpbnRBcmcpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmggYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RPYmouaAppbmRleCAzOGNmOGMyLi4yOGJmMGNlIDEwMDY0NAotLS0gYS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaAorKysgYi9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaApAQCAtOTIsOCArOTIsNiBAQCBKU0M6
OkpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkludE1ldGhv
ZChKU0M6OkV4ZWNTdGF0ZSopOwogSlNDOjpKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25JbnRNZXRob2RXaXRoQXJncyhKU0M6OkV4ZWNTdGF0ZSopOwogSlND
OjpKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PYmpNZXRo
b2QoSlNDOjpFeGVjU3RhdGUqKTsKIEpTQzo6SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uT2JqTWV0aG9kV2l0aEFyZ3MoSlNDOjpFeGVjU3RhdGUqKTsKLUpT
Qzo6SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9k
VGhhdFJlcXVpcmVzQWxsQXJncyhKU0M6OkV4ZWNTdGF0ZSopOwotSlNDOjpKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RUaGF0UmVxdWlyZXNBbGxB
cmdzQW5kVGhyb3dzKEpTQzo6RXhlY1N0YXRlKik7CiBKU0M6OkpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblNlcmlhbGl6ZWRWYWx1ZShKU0M6OkV4ZWNTdGF0
ZSopOwogSlNDOjpKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25NZXRob2RXaXRoRXhjZXB0aW9uKEpTQzo6RXhlY1N0YXRlKik7CiBKU0M6OkpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkN1c3RvbU1ldGhvZChKU0M6OkV4
ZWNTdGF0ZSopOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2Jq
Qy9ET01UZXN0T2JqLmggYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRl
c3RPYmouaAppbmRleCAyNDdmNGEzLi5kZDlkMmVlIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmouaAorKysgYi9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmouaApAQCAtNjIsOCArNjIsNiBAQAogLSAoaW50
KWludE1ldGhvZFdpdGhBcmdzOihpbnQpaW50QXJnIHN0ckFyZzooTlNTdHJpbmcgKilzdHJBcmcg
b2JqQXJnOihET01UZXN0T2JqICopb2JqQXJnOwogLSAoRE9NVGVzdE9iaiAqKW9iak1ldGhvZDsK
IC0gKERPTVRlc3RPYmogKilvYmpNZXRob2RXaXRoQXJnczooaW50KWludEFyZyBzdHJBcmc6KE5T
U3RyaW5nICopc3RyQXJnIG9iakFyZzooRE9NVGVzdE9iaiAqKW9iakFyZzsKLS0gKERPTVRlc3RP
YmogKiltZXRob2RUaGF0UmVxdWlyZXNBbGxBcmdzOihOU1N0cmluZyAqKXN0ckFyZyBvYmpBcmc6
KERPTVRlc3RPYmogKilvYmpBcmc7Ci0tIChET01UZXN0T2JqICopbWV0aG9kVGhhdFJlcXVpcmVz
QWxsQXJnc0FuZFRocm93czooTlNTdHJpbmcgKilzdHJBcmcgb2JqQXJnOihET01UZXN0T2JqICop
b2JqQXJnOwogLSAodm9pZClzZXJpYWxpemVkVmFsdWU6KE5TU3RyaW5nICopc2VyaWFsaXplZEFy
ZzsKIC0gKHZvaWQpbWV0aG9kV2l0aEV4Y2VwdGlvbjsKIC0gKHZvaWQpY3VzdG9tTWV0aG9kOwpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2Jq
Lm1tIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLm1tCmlu
ZGV4IDBmM2ZiNjYuLjRjMjM4ZjQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L09iakMvRE9NVGVzdE9iai5tbQorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9PYmpDL0RPTVRlc3RPYmoubW0KQEAgLTI0OCwyMSArMjQ4LDYgQEAKICAgICByZXR1cm4g
a2l0KFdURjo6Z2V0UHRyKElNUEwtPm9iak1ldGhvZFdpdGhBcmdzKGludEFyZywgc3RyQXJnLCBj
b3JlKG9iakFyZykpKSk7CiB9CiAKLS0gKERPTVRlc3RPYmogKiltZXRob2RUaGF0UmVxdWlyZXNB
bGxBcmdzOihOU1N0cmluZyAqKXN0ckFyZyBvYmpBcmc6KERPTVRlc3RPYmogKilvYmpBcmcKLXsK
LSAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgcmV0dXJuIGtp
dChXVEY6OmdldFB0cihJTVBMLT5tZXRob2RUaGF0UmVxdWlyZXNBbGxBcmdzKHN0ckFyZywgY29y
ZShvYmpBcmcpKSkpOwotfQotCi0tIChET01UZXN0T2JqICopbWV0aG9kVGhhdFJlcXVpcmVzQWxs
QXJnc0FuZFRocm93czooTlNTdHJpbmcgKilzdHJBcmcgb2JqQXJnOihET01UZXN0T2JqICopb2Jq
QXJnCi17Ci0gICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIFdl
YkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIERPTVRlc3RPYmogKnJlc3VsdCA9IGtp
dChXVEY6OmdldFB0cihJTVBMLT5tZXRob2RUaGF0UmVxdWlyZXNBbGxBcmdzQW5kVGhyb3dzKHN0
ckFyZywgY29yZShvYmpBcmcpLCBlYykpKTsKLSAgICBXZWJDb3JlOjpyYWlzZU9uRE9NRXJyb3Io
ZWMpOwotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KIC0gKHZvaWQpc2VyaWFsaXplZFZhbHVlOihO
U1N0cmluZyAqKXNlcmlhbGl6ZWRBcmcKIHsKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxs
U3RhdGUgc3RhdGU7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9U
ZXN0T2JqLmlkbCBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsCmlu
ZGV4IGJkYTI1ODYuLjU2MzVlMDQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L1Rlc3RPYmouaWRsCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rl
c3RPYmouaWRsCkBAIC00OCwxMCArNDgsNiBAQCBtb2R1bGUgdGVzdCB7CiAgICAgICAgIFRlc3RP
Ymogb2JqTWV0aG9kKCk7CiAgICAgICAgIFRlc3RPYmogb2JqTWV0aG9kV2l0aEFyZ3MoaW4gbG9u
ZyBpbnRBcmcsIGluIERPTVN0cmluZyBzdHJBcmcsIGluIFRlc3RPYmogb2JqQXJnKTsKIAotICAg
ICAgICBbUmVxdWlyZXNBbGxBcmd1bWVudHNdIFRlc3RPYmogbWV0aG9kVGhhdFJlcXVpcmVzQWxs
QXJncyhpbiBET01TdHJpbmcgc3RyQXJnLCBpbiBUZXN0T2JqIG9iakFyZyk7Ci0gICAgICAgIFtS
ZXF1aXJlc0FsbEFyZ3VtZW50cz1SYWlzZV0gVGVzdE9iaiBtZXRob2RUaGF0UmVxdWlyZXNBbGxB
cmdzQW5kVGhyb3dzKGluIERPTVN0cmluZyBzdHJBcmcsIGluIFRlc3RPYmogb2JqQXJnKQotICAg
ICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0KICAgICAgICAgdm9pZCBzZXJpYWxpemVk
VmFsdWUoaW4gU2VyaWFsaXplZFNjcmlwdFZhbHVlIHNlcmlhbGl6ZWRBcmcpOwogCiAgICAgICAg
IC8vIEV4Y2VwdGlvbnMKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L1Y4L1Y4VGVzdE9iai5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRl
c3RPYmouY3BwCmluZGV4IDQ0OWUwODYuLjNlOGQyNmMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmNwcApAQCAtMjcxLDM3ICsyNzEsNiBAQCBzdGF0
aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IG9iak1ldGhvZFdpdGhBcmdzQ2FsbGJhY2soY29uc3Qg
djg6OkFyZ3VtZW50cyYgYXJncwogICAgIHJldHVybiB0b1Y4KGltcC0+b2JqTWV0aG9kV2l0aEFy
Z3MoaW50QXJnLCBzdHJBcmcsIG9iakFyZykpOwogfQogCi1zdGF0aWMgdjg6OkhhbmRsZTx2ODo6
VmFsdWU+IG1ldGhvZFRoYXRSZXF1aXJlc0FsbEFyZ3NDYWxsYmFjayhjb25zdCB2ODo6QXJndW1l
bnRzJiBhcmdzKQotewotICAgIElOQ19TVEFUUygiRE9NLlRlc3RPYmoubWV0aG9kVGhhdFJlcXVp
cmVzQWxsQXJncyIpOwotICAgIGlmIChhcmdzLkxlbmd0aCgpIDwgMikKLSAgICAgICAgcmV0dXJu
IHY4OjpIYW5kbGU8djg6OlZhbHVlPigpOwotICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6
dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7Ci0gICAgVjhQYXJhbWV0ZXI8PiBzdHJBcmcgPSBhcmdz
WzBdOwotICAgIFRlc3RPYmoqIG9iakFyZyA9IFY4VGVzdE9iajo6SGFzSW5zdGFuY2UoYXJnc1sx
XSkgPyBWOFRlc3RPYmo6OnRvTmF0aXZlKHY4OjpIYW5kbGU8djg6Ok9iamVjdD46OkNhc3QoYXJn
c1sxXSkpIDogMDsKLSAgICByZXR1cm4gdG9WOChpbXAtPm1ldGhvZFRoYXRSZXF1aXJlc0FsbEFy
Z3Moc3RyQXJnLCBvYmpBcmcpKTsKLX0KLQotc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBt
ZXRob2RUaGF0UmVxdWlyZXNBbGxBcmdzQW5kVGhyb3dzQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3Vt
ZW50cyYgYXJncykKLXsKLSAgICBJTkNfU1RBVFMoIkRPTS5UZXN0T2JqLm1ldGhvZFRoYXRSZXF1
aXJlc0FsbEFyZ3NBbmRUaHJvd3MiKTsKLSAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDIpCi0gICAg
ICAgIHJldHVybiB0aHJvd0Vycm9yKCJOb3QgZW5vdWdoIGFyZ3VtZW50cyIsIFY4UHJveHk6OlN5
bnRheEVycm9yKTsKLSAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGFyZ3Mu
SG9sZGVyKCkpOwotICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIHsKLSAgICBWOFBhcmFt
ZXRlcjw+IHN0ckFyZyA9IGFyZ3NbMF07Ci0gICAgVGVzdE9iaiogb2JqQXJnID0gVjhUZXN0T2Jq
OjpIYXNJbnN0YW5jZShhcmdzWzFdKSA/IFY4VGVzdE9iajo6dG9OYXRpdmUodjg6OkhhbmRsZTx2
ODo6T2JqZWN0Pjo6Q2FzdChhcmdzWzFdKSkgOiAwOwotICAgIFJlZlB0cjxUZXN0T2JqPiByZXN1
bHQgPSBpbXAtPm1ldGhvZFRoYXRSZXF1aXJlc0FsbEFyZ3NBbmRUaHJvd3Moc3RyQXJnLCBvYmpB
cmcsIGVjKTsKLSAgICBpZiAoVU5MSUtFTFkoZWMpKQotICAgICAgICBnb3RvIGZhaWw7Ci0gICAg
cmV0dXJuIHRvVjgocmVzdWx0LnJlbGVhc2UoKSk7Ci0gICAgfQotICAgIGZhaWw6Ci0gICAgVjhQ
cm94eTo6c2V0RE9NRXhjZXB0aW9uKGVjKTsKLSAgICByZXR1cm4gdjg6OkhhbmRsZTx2ODo6VmFs
dWU+KCk7Ci19Ci0KIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gc2VyaWFsaXplZFZhbHVl
Q2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKIHsKICAgICBJTkNfU1RBVFMoIkRP
TS5UZXN0T2JqLnNlcmlhbGl6ZWRWYWx1ZSIpOwpAQCAtNjg3LDE4ICs2NTYsNiBAQCBzdGF0aWMg
djg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+IENvbmZpZ3VyZVY4VGVzdE9ialRl
bXBsYXRlKHY4OjpQZXJzaQogICAgIHY4OjpIYW5kbGU8djg6OlNpZ25hdHVyZT4gb2JqTWV0aG9k
V2l0aEFyZ3NTaWduYXR1cmUgPSB2ODo6U2lnbmF0dXJlOjpOZXcoZGVzYywgb2JqTWV0aG9kV2l0
aEFyZ3NBcmdjLCBvYmpNZXRob2RXaXRoQXJnc0FyZ3YpOwogICAgIHByb3RvLT5TZXQodjg6OlN0
cmluZzo6TmV3KCJvYmpNZXRob2RXaXRoQXJncyIpLCB2ODo6RnVuY3Rpb25UZW1wbGF0ZTo6TmV3
KFRlc3RPYmpJbnRlcm5hbDo6b2JqTWV0aG9kV2l0aEFyZ3NDYWxsYmFjaywgdjg6OkhhbmRsZTx2
ODo6VmFsdWU+KCksIG9iak1ldGhvZFdpdGhBcmdzU2lnbmF0dXJlKSk7CiAKLSAgICAvLyBDdXN0
b20gU2lnbmF0dXJlICdtZXRob2RUaGF0UmVxdWlyZXNBbGxBcmdzJwotICAgIGNvbnN0IGludCBt
ZXRob2RUaGF0UmVxdWlyZXNBbGxBcmdzQXJnYyA9IDI7Ci0gICAgdjg6OkhhbmRsZTx2ODo6RnVu
Y3Rpb25UZW1wbGF0ZT4gbWV0aG9kVGhhdFJlcXVpcmVzQWxsQXJnc0FyZ3ZbbWV0aG9kVGhhdFJl
cXVpcmVzQWxsQXJnc0FyZ2NdID0geyB2ODo6SGFuZGxlPHY4OjpGdW5jdGlvblRlbXBsYXRlPigp
LCBWOFRlc3RPYmo6OkdldFJhd1RlbXBsYXRlKCkgfTsKLSAgICB2ODo6SGFuZGxlPHY4OjpTaWdu
YXR1cmU+IG1ldGhvZFRoYXRSZXF1aXJlc0FsbEFyZ3NTaWduYXR1cmUgPSB2ODo6U2lnbmF0dXJl
OjpOZXcoZGVzYywgbWV0aG9kVGhhdFJlcXVpcmVzQWxsQXJnc0FyZ2MsIG1ldGhvZFRoYXRSZXF1
aXJlc0FsbEFyZ3NBcmd2KTsKLSAgICBwcm90by0+U2V0KHY4OjpTdHJpbmc6Ok5ldygibWV0aG9k
VGhhdFJlcXVpcmVzQWxsQXJncyIpLCB2ODo6RnVuY3Rpb25UZW1wbGF0ZTo6TmV3KFRlc3RPYmpJ
bnRlcm5hbDo6bWV0aG9kVGhhdFJlcXVpcmVzQWxsQXJnc0NhbGxiYWNrLCB2ODo6SGFuZGxlPHY4
OjpWYWx1ZT4oKSwgbWV0aG9kVGhhdFJlcXVpcmVzQWxsQXJnc1NpZ25hdHVyZSkpOwotCi0gICAg
Ly8gQ3VzdG9tIFNpZ25hdHVyZSAnbWV0aG9kVGhhdFJlcXVpcmVzQWxsQXJnc0FuZFRocm93cycK
LSAgICBjb25zdCBpbnQgbWV0aG9kVGhhdFJlcXVpcmVzQWxsQXJnc0FuZFRocm93c0FyZ2MgPSAy
OwotICAgIHY4OjpIYW5kbGU8djg6OkZ1bmN0aW9uVGVtcGxhdGU+IG1ldGhvZFRoYXRSZXF1aXJl
c0FsbEFyZ3NBbmRUaHJvd3NBcmd2W21ldGhvZFRoYXRSZXF1aXJlc0FsbEFyZ3NBbmRUaHJvd3NB
cmdjXSA9IHsgdjg6OkhhbmRsZTx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4oKSwgVjhUZXN0T2JqOjpH
ZXRSYXdUZW1wbGF0ZSgpIH07Ci0gICAgdjg6OkhhbmRsZTx2ODo6U2lnbmF0dXJlPiBtZXRob2RU
aGF0UmVxdWlyZXNBbGxBcmdzQW5kVGhyb3dzU2lnbmF0dXJlID0gdjg6OlNpZ25hdHVyZTo6TmV3
KGRlc2MsIG1ldGhvZFRoYXRSZXF1aXJlc0FsbEFyZ3NBbmRUaHJvd3NBcmdjLCBtZXRob2RUaGF0
UmVxdWlyZXNBbGxBcmdzQW5kVGhyb3dzQXJndik7Ci0gICAgcHJvdG8tPlNldCh2ODo6U3RyaW5n
OjpOZXcoIm1ldGhvZFRoYXRSZXF1aXJlc0FsbEFyZ3NBbmRUaHJvd3MiKSwgdjg6OkZ1bmN0aW9u
VGVtcGxhdGU6Ok5ldyhUZXN0T2JqSW50ZXJuYWw6Om1ldGhvZFRoYXRSZXF1aXJlc0FsbEFyZ3NB
bmRUaHJvd3NDYWxsYmFjaywgdjg6OkhhbmRsZTx2ODo6VmFsdWU+KCksIG1ldGhvZFRoYXRSZXF1
aXJlc0FsbEFyZ3NBbmRUaHJvd3NTaWduYXR1cmUpKTsKLQogICAgIC8vIEN1c3RvbSBTaWduYXR1
cmUgJ2N1c3RvbUFyZ3NBbmRFeGNlcHRpb24nCiAgICAgY29uc3QgaW50IGN1c3RvbUFyZ3NBbmRF
eGNlcHRpb25BcmdjID0gMTsKICAgICB2ODo6SGFuZGxlPHY4OjpGdW5jdGlvblRlbXBsYXRlPiBj
dXN0b21BcmdzQW5kRXhjZXB0aW9uQXJndltjdXN0b21BcmdzQW5kRXhjZXB0aW9uQXJnY10gPSB7
IFY4bG9nOjpHZXRSYXdUZW1wbGF0ZSgpIH07CmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9XZWJL
aXRDU1NNYXRyaXguaCBiL1dlYkNvcmUvY3NzL1dlYktpdENTU01hdHJpeC5oCmluZGV4IDU2YmY3
NmIuLjcyYTk1ZWYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL1dlYktpdENTU01hdHJpeC5oCisr
KyBiL1dlYkNvcmUvY3NzL1dlYktpdENTU01hdHJpeC5oCkBAIC0xMTksMjEgKzExOSwyMSBAQCBw
dWJsaWM6CiAgICAgLy8gUGFzc2luZyBhIE5hTiB3aWxsIHVzZSBhIHZhbHVlIG9mIDAuIFRoaXMg
YWxsb3dzIHRoZSAzRCBmb3JtIHRvIHVzZWQgZm9yIDJEIG9wZXJhdGlvbnMKICAgICAvLyBPcGVy
YXRpb24gaXMgcGVyZm9ybWVkIGFzIHRob3VnaCB0aGUgdGhpcyBtYXRyaXggaXMgbXVsdGlwbGll
ZCBieSBhIG1hdHJpeCB3aXRoCiAgICAgLy8gdGhlIHRyYW5zbGF0aW9uIHZhbHVlcyBvbiB0aGUg
bGVmdCAocmVzdWx0ID0gdHJhbnNsYXRpb24oeCx5LHopICogdGhpcykKLSAgICBQYXNzUmVmUHRy
PFdlYktpdENTU01hdHJpeD4gdHJhbnNsYXRlKGRvdWJsZSB4LCBkb3VibGUgeSwgZG91YmxlIHop
IGNvbnN0OworICAgIFBhc3NSZWZQdHI8V2ViS2l0Q1NTTWF0cml4PiB0cmFuc2xhdGUoZG91Ymxl
IHgsIGRvdWJsZSB5LCBkb3VibGUgeiA9IE5BTikgY29uc3Q7CiAgICAgCiAgICAgLy8gUmV0dXJu
cyB0aGlzIG1hdHJpeCBzY2FsZWQgYnkgdGhlIHBhc3NlZCB2YWx1ZXMuCiAgICAgLy8gUGFzc2lu
ZyBzY2FsZVggb3Igc2NhbGVaIGFzIE5hTiB1c2VzIGEgdmFsdWUgb2YgMSwgYnV0IHBhc3Npbmcg
c2NhbGVZIG9mIE5hTiAKICAgICAvLyBtYWtlcyBpdCB0aGUgc2FtZSBhcyBzY2FsZVguIFRoaXMg
YWxsb3dzIHRoZSAzRCBmb3JtIHRvIHVzZWQgZm9yIDJEIG9wZXJhdGlvbnMKICAgICAvLyBPcGVy
YXRpb24gaXMgcGVyZm9ybWVkIGFzIHRob3VnaCB0aGUgdGhpcyBtYXRyaXggaXMgbXVsdGlwbGll
ZCBieSBhIG1hdHJpeCB3aXRoCiAgICAgLy8gdGhlIHNjYWxlIHZhbHVlcyBvbiB0aGUgbGVmdCAo
cmVzdWx0ID0gc2NhbGUoeCx5LHopICogdGhpcykKLSAgICBQYXNzUmVmUHRyPFdlYktpdENTU01h
dHJpeD4gc2NhbGUoZG91YmxlIHNjYWxlWCwgZG91YmxlIHNjYWxlWSwgZG91YmxlIHNjYWxlWikg
Y29uc3Q7CisgICAgUGFzc1JlZlB0cjxXZWJLaXRDU1NNYXRyaXg+IHNjYWxlKGRvdWJsZSBzY2Fs
ZVgsIGRvdWJsZSBzY2FsZVkgPSBOQU4sIGRvdWJsZSBzY2FsZVogPSBOQU4pIGNvbnN0OwogCiAg
ICAgLy8gUmV0dXJucyB0aGlzIG1hdHJpeCByb3RhdGVkIGJ5IHRoZSBwYXNzZWQgdmFsdWVzLgog
ICAgIC8vIElmIHJvdFkgYW5kIHJvdFogYXJlIE5hTiwgcm90YXRlIGFib3V0IFogKHJvdFg9MCwg
cm90YXRlWT0wLCByb3RhdGVaPXJvdFgpLgogICAgIC8vIE90aGVyd2lzZSB1c2UgYSByb3RhdGlv
biB2YWx1ZSBvZiAwIGZvciBhbnkgcGFzc2VkIE5hTi4gICAgCiAgICAgLy8gT3BlcmF0aW9uIGlz
IHBlcmZvcm1lZCBhcyB0aG91Z2ggdGhlIHRoaXMgbWF0cml4IGlzIG11bHRpcGxpZWQgYnkgYSBt
YXRyaXggd2l0aAogICAgIC8vIHRoZSByb3RhdGlvbiB2YWx1ZXMgb24gdGhlIGxlZnQgKHJlc3Vs
dCA9IHJvdGF0aW9uKHgseSx6KSAqIHRoaXMpCi0gICAgUGFzc1JlZlB0cjxXZWJLaXRDU1NNYXRy
aXg+IHJvdGF0ZShkb3VibGUgcm90WCwgZG91YmxlIHJvdFksIGRvdWJsZSByb3RaKSBjb25zdDsK
KyAgICBQYXNzUmVmUHRyPFdlYktpdENTU01hdHJpeD4gcm90YXRlKGRvdWJsZSByb3RYLCBkb3Vi
bGUgcm90WSA9IE5BTiwgZG91YmxlIHJvdFogPSBOQU4pIGNvbnN0OwogICAgIAogICAgIC8vIFJl
dHVybnMgdGhpcyBtYXRyaXggcm90YXRlZCBhYm91dCB0aGUgcGFzc2VkIGF4aXMgYnkgdGhlIHBh
c3NlZCBhbmdsZS4KICAgICAvLyBQYXNzaW5nIGEgTmFOIHdpbGwgdXNlIGEgdmFsdWUgb2YgMC4g
SWYgdGhlIGF4aXMgaXMgKDAsMCwwKSB1c2UgYSB2YWx1ZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9j
c3MvV2ViS2l0Q1NTTWF0cml4LmlkbCBiL1dlYkNvcmUvY3NzL1dlYktpdENTU01hdHJpeC5pZGwK
aW5kZXggOWQ2Yzg5Ny4uYTExZmIyMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9jc3MvV2ViS2l0Q1NT
TWF0cml4LmlkbAorKysgYi9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NNYXRyaXguaWRsCkBAIC02Mywx
NyArNjMsMTcgQEAgbW9kdWxlIGNzcyB7CiAgICAgICAgIAogICAgICAgICAvLyBSZXR1cm4gdGhp
cyBtYXRyaXggdHJhbnNsYXRlZCBieSB0aGUgcGFzc2VkIHZhbHVlcy4KICAgICAgICAgLy8gUGFz
c2luZyBhIE5hTiB3aWxsIHVzZSBhIHZhbHVlIG9mIDAuIFRoaXMgYWxsb3dzIHRoZSAzRCBmb3Jt
IHRvIHVzZWQgZm9yIDJEIG9wZXJhdGlvbnMgICAgCi0gICAgICAgIFtJbW11dGFibGVdIFdlYktp
dENTU01hdHJpeCB0cmFuc2xhdGUoaW4gZG91YmxlIHgsIGluIGRvdWJsZSB5LCBpbiBkb3VibGUg
eik7CisgICAgICAgIFtJbW11dGFibGVdIFdlYktpdENTU01hdHJpeCB0cmFuc2xhdGUoaW4gZG91
YmxlIHgsIGluIGRvdWJsZSB5LCBpbiBbT3B0aW9uYWxdIGRvdWJsZSB6KTsKICAgICAgICAgCiAg
ICAgICAgIC8vIFJldHVybnMgdGhpcyBtYXRyaXggc2NhbGVkIGJ5IHRoZSBwYXNzZWQgdmFsdWVz
LgogICAgICAgICAvLyBQYXNzaW5nIHNjYWxlWCBvciBzY2FsZVogYXMgTmFOIHVzZXMgYSB2YWx1
ZSBvZiAxLCBidXQgcGFzc2luZyBzY2FsZVkgb2YgTmFOIAogICAgICAgICAvLyBtYWtlcyBpdCB0
aGUgc2FtZSBhcyBzY2FsZVguIFRoaXMgYWxsb3dzIHRoZSAzRCBmb3JtIHRvIHVzZWQgZm9yIDJE
IG9wZXJhdGlvbnMKLSAgICAgICAgW0ltbXV0YWJsZV0gV2ViS2l0Q1NTTWF0cml4IHNjYWxlKGlu
IGRvdWJsZSBzY2FsZVgsIGluIGRvdWJsZSBzY2FsZVksIGluIGRvdWJsZSBzY2FsZVopOworICAg
ICAgICBbSW1tdXRhYmxlXSBXZWJLaXRDU1NNYXRyaXggc2NhbGUoaW4gZG91YmxlIHNjYWxlWCwg
aW4gW09wdGlvbmFsXSBkb3VibGUgc2NhbGVZLCBpbiBbT3B0aW9uYWxdIGRvdWJsZSBzY2FsZVop
OwogICAgICAgICAKICAgICAgICAgLy8gUmV0dXJucyB0aGlzIG1hdHJpeCByb3RhdGVkIGJ5IHRo
ZSBwYXNzZWQgdmFsdWVzLgogICAgICAgICAvLyBJZiByb3RZIGFuZCByb3RaIGFyZSBOYU4sIHJv
dGF0ZSBhYm91dCBaIChyb3RYPTAsIHJvdGF0ZVk9MCwgcm90YXRlWj1yb3RYKS4KICAgICAgICAg
Ly8gT3RoZXJ3aXNlIHVzZSBhIHJvdGF0aW9uIHZhbHVlIG9mIDAgZm9yIGFueSBwYXNzZWQgTmFO
LiAgICAKLSAgICAgICAgW0ltbXV0YWJsZV0gV2ViS2l0Q1NTTWF0cml4IHJvdGF0ZShpbiBkb3Vi
bGUgcm90WCwgaW4gZG91YmxlIHJvdFksIGluIGRvdWJsZSByb3RaKTsKKyAgICAgICAgW0ltbXV0
YWJsZV0gV2ViS2l0Q1NTTWF0cml4IHJvdGF0ZShpbiBkb3VibGUgcm90WCwgaW4gW09wdGlvbmFs
XSBkb3VibGUgcm90WSwgaW4gW09wdGlvbmFsXSBkb3VibGUgcm90Wik7CiAgICAgICAgIAogICAg
ICAgICAvLyBSZXR1cm5zIHRoaXMgbWF0cml4IHJvdGF0ZWQgYWJvdXQgdGhlIHBhc3NlZCBheGlz
IGJ5IHRoZSBwYXNzZWQgYW5nbGUuCiAgICAgICAgIC8vIFBhc3NpbmcgYSBOYU4gd2lsbCB1c2Ug
YSB2YWx1ZSBvZiAwLiBJZiB0aGUgYXhpcyBpcyAoMCwwLDApIHVzZSBhIHZhbHVlCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2RvbS9DbGlwYm9hcmQuaWRsIGIvV2ViQ29yZS9kb20vQ2xpcGJvYXJkLmlk
bAppbmRleCAxMDI0YTM2Li5lYjY4YTNmIDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9DbGlwYm9h
cmQuaWRsCisrKyBiL1dlYkNvcmUvZG9tL0NsaXBib2FyZC5pZGwKQEAgLTM4LDggKzM4LDcgQEAg
bW9kdWxlIGNvcmUgewogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAg
IFtDdXN0b21dIHZvaWQgZ2V0RGF0YShpbiBET01TdHJpbmcgdHlwZSkKICAgICAgICAgICAgIHJh
aXNlcyhET01FeGNlcHRpb24pOwotICAgICAgICAvLyBGSVhNRTogUmVxdWlyZXNBbGxBcmd1bWVu
dHMgaXMgcHJvYmFibHkgYm9ndXMgaGVyZS4KLSAgICAgICAgW1JlcXVpcmVzQWxsQXJndW1lbnRz
XSBib29sZWFuIHNldERhdGEoaW4gRE9NU3RyaW5nIHR5cGUsIGluIERPTVN0cmluZyBkYXRhKTsK
KyAgICAgICAgYm9vbGVhbiBzZXREYXRhKGluIERPTVN0cmluZyB0eXBlLCBpbiBET01TdHJpbmcg
ZGF0YSk7CiAgICAgICAgIFtDdXN0b21dIHZvaWQgc2V0RHJhZ0ltYWdlKGluIEhUTUxJbWFnZUVs
ZW1lbnQgaW1hZ2UsIGluIGxvbmcgeCwgaW4gbG9uZyB5KQogICAgICAgICAgICAgcmFpc2VzKERP
TUV4Y2VwdGlvbik7CiAgICAgfTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0RvY3VtZW50Lmlk
bCBiL1dlYkNvcmUvZG9tL0RvY3VtZW50LmlkbAppbmRleCBjZDg3N2IzLi4zNjlmODM3IDEwMDY0
NAotLS0gYS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwKKysrIGIvV2ViQ29yZS9kb20vRG9jdW1l
bnQuaWRsCkBAIC0xMjgsMTUgKzEyOCwxOCBAQCBtb2R1bGUgY29yZSB7CiAKICAgICAgICAgLy8g
Q29tbW9uIGV4dGVuc2lvbnMKIAorI2lmIGRlZmluZWQoTEFOR1VBR0VfT0JKRUNUSVZFX0MpICYm
IExBTkdVQUdFX09CSkVDVElWRV9DCiAgICAgICAgIGJvb2xlYW4gICAgICAgICAgICBleGVjQ29t
bWFuZChpbiBET01TdHJpbmcgY29tbWFuZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGluIGJvb2xlYW4gdXNlckludGVyZmFjZSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGluIFtDb252ZXJ0VW5kZWZpbmVkT3JOdWxsVG9OdWxsU3RyaW5n
XSBET01TdHJpbmcgdmFsdWUpOwotCi0jaWYgZGVmaW5lZChMQU5HVUFHRV9PQkpFQ1RJVkVfQykg
JiYgTEFOR1VBR0VfT0JKRUNUSVZFX0MKICAgICAgICAgLy8gRklYTUU6IHJlbW92ZSB0aGUgdGhl
c2UgdHdvIHZlcnNpb25zIG9uY2UgW09wdGlvbmFsXSBpcyBpbXBsZW1lbnRlZCBmb3IgT2JqZWN0
aXZlLUMuCiAgICAgICAgIGJvb2xlYW4gICAgICAgICAgICBleGVjQ29tbWFuZChpbiBET01TdHJp
bmcgY29tbWFuZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIGJv
b2xlYW4gdXNlckludGVyZmFjZSk7CiAgICAgICAgIGJvb2xlYW4gICAgICAgICAgICBleGVjQ29t
bWFuZChpbiBET01TdHJpbmcgY29tbWFuZCk7CisjZWxzZQorICAgICAgICBib29sZWFuICAgICAg
ICAgICAgZXhlY0NvbW1hbmQoaW4gRE9NU3RyaW5nIGNvbW1hbmQsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWxdIGJvb2xlYW4gdXNlckludGVyZmFj
ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbCwg
Q29udmVydFVuZGVmaW5lZE9yTnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIHZhbHVlKTsKICNl
bmRpZgogCiAgICAgICAgIGJvb2xlYW4gICAgICAgICAgICBxdWVyeUNvbW1hbmRFbmFibGVkKGlu
IERPTVN0cmluZyBjb21tYW5kKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0
RWxlbWVudC5jcHAgYi9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwCmluZGV4IDRj
MTI0ZTAuLmU3Y2ZkNGYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVu
dC5jcHAKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcApAQCAtMTQ0LDYg
KzE0NCwxMSBAQCB2b2lkIEhUTUxTZWxlY3RFbGVtZW50OjphZGQoSFRNTEVsZW1lbnQgKmVsZW1l
bnQsIEhUTUxFbGVtZW50ICpiZWZvcmUsIEV4Y2VwdGlvbgogICAgIGluc2VydEJlZm9yZShlbGVt
ZW50LCBiZWZvcmUsIGVjKTsKIH0KIAordm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6YWRkKEhUTUxF
bGVtZW50ICplbGVtZW50LCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBhZGQoZWxlbWVudCwg
MCwgZWMpOworfQorCiB2b2lkIEhUTUxTZWxlY3RFbGVtZW50OjpyZW1vdmUoaW50IGluZGV4KQog
ewogICAgIGludCBsaXN0SW5kZXggPSBvcHRpb25Ub0xpc3RJbmRleChpbmRleCk7CmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaCBiL1dlYkNvcmUvaHRtbC9IVE1M
U2VsZWN0RWxlbWVudC5oCmluZGV4IDU5Yzk0M2EuLjc1ZWRlMzcgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5oCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0
RWxlbWVudC5oCkBAIC00OSw2ICs0OSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgbXVs
dGlwbGUoKSBjb25zdCB7IHJldHVybiBtX2RhdGEubXVsdGlwbGUoKTsgfQogCiAgICAgdm9pZCBh
ZGQoSFRNTEVsZW1lbnQqIGVsZW1lbnQsIEhUTUxFbGVtZW50KiBiZWZvcmUsIEV4Y2VwdGlvbkNv
ZGUmKTsKKyAgICB2b2lkIGFkZChIVE1MRWxlbWVudCogZWxlbWVudCwgRXhjZXB0aW9uQ29kZSYp
OwogICAgIHZvaWQgcmVtb3ZlKGludCBpbmRleCk7CiAKICAgICBTdHJpbmcgdmFsdWUoKTsKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5pZGwgYi9XZWJDb3JlL2h0
bWwvSFRNTFNlbGVjdEVsZW1lbnQuaWRsCmluZGV4IDMzMDMyNzIuLmY5MmRiZGEgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5pZGwKKysrIGIvV2ViQ29yZS9odG1s
L0hUTUxTZWxlY3RFbGVtZW50LmlkbApAQCAtNTQsNyArNTQsNyBAQCBtb2R1bGUgaHRtbCB7CiAg
ICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBsb25nICAgICAgICAgICAgc2l6ZTsKICAgICAgICAg
CiAgICAgICAgIFtPbGRTdHlsZU9iakNdIHZvaWQgYWRkKGluIEhUTUxFbGVtZW50IGVsZW1lbnQs
IAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIEhUTUxFbGVtZW50IGJlZm9yZSkK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWxdIEhUTUxFbGVtZW50
IGJlZm9yZSkKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwogCiAjaWYgZGVmaW5l
ZChMQU5HVUFHRV9KQVZBU0NSSVBUKSAmJiBMQU5HVUFHRV9KQVZBU0NSSVBUCmRpZmYgLS1naXQg
YS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGF0YUdyaWQuanMgYi9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvRGF0YUdyaWQuanMKaW5kZXggMWVjYzRmMi4uYmQyZGI4NiAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RhdGFHcmlkLmpzCisrKyBiL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EYXRhR3JpZC5qcwpAQCAtOTg3LDcgKzk4Nyw3IEBAIFdl
Ykluc3BlY3Rvci5EYXRhR3JpZE5vZGUucHJvdG90eXBlID0gewogICAgICAgICBpZiAoY29sdW1u
SWRlbnRpZmllciA9PT0gdGhpcy5kYXRhR3JpZC5kaXNjbG9zdXJlQ29sdW1uSWRlbnRpZmllcikg
ewogICAgICAgICAgICAgY2VsbC5hZGRTdHlsZUNsYXNzKCJkaXNjbG9zdXJlIik7CiAgICAgICAg
ICAgICBpZiAodGhpcy5kZXB0aCkKLSAgICAgICAgICAgICAgICBjZWxsLnN0eWxlLnNldFByb3Bl
cnR5KCJwYWRkaW5nLWxlZnQiLCAodGhpcy5kZXB0aCAqIHRoaXMuZGF0YUdyaWQuaW5kZW50V2lk
dGgpICsgInB4Iik7CisgICAgICAgICAgICAgICAgY2VsbC5zdHlsZS5zZXRQcm9wZXJ0eSgicGFk
ZGluZy1sZWZ0IiwgKHRoaXMuZGVwdGggKiB0aGlzLmRhdGFHcmlkLmluZGVudFdpZHRoKSArICJw
eCIsIG51bGwpOwogICAgICAgICB9CiAKICAgICAgICAgcmV0dXJuIGNlbGw7CkBAIC0xMTk5LDcg
KzExOTksNyBAQCBXZWJJbnNwZWN0b3IuRGF0YUdyaWROb2RlLnByb3RvdHlwZSA9IHsKICAgICAg
ICAgdmFyIGNlbGwgPSBldmVudC50YXJnZXQuZW5jbG9zaW5nTm9kZU9yU2VsZldpdGhOb2RlTmFt
ZSgidGQiKTsKICAgICAgICAgaWYgKCFjZWxsLmhhc1N0eWxlQ2xhc3MoImRpc2Nsb3N1cmUiKSkK
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgdmFyIGNvbXB1dGVkTGVmdFBhZGRp
bmcgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShjZWxsKS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKCJw
YWRkaW5nLWxlZnQiKS5nZXRGbG9hdFZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlLkNTU19QWCk7Cisg
ICAgICAgIHZhciBjb21wdXRlZExlZnRQYWRkaW5nID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUo
Y2VsbCwgbnVsbCkuZ2V0UHJvcGVydHlDU1NWYWx1ZSgicGFkZGluZy1sZWZ0IikuZ2V0RmxvYXRW
YWx1ZShDU1NQcmltaXRpdmVWYWx1ZS5DU1NfUFgpOwogICAgICAgICB2YXIgbGVmdCA9IGNlbGwu
dG90YWxPZmZzZXRMZWZ0ICsgY29tcHV0ZWRMZWZ0UGFkZGluZzsKICAgICAgICAgcmV0dXJuIGV2
ZW50LnBhZ2VYID49IGxlZnQgJiYgZXZlbnQucGFnZVggPD0gbGVmdCArIHRoaXMuZGlzY2xvc3Vy
ZVRvZ2dsZVdpZHRoOwogICAgIH0sCmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvRHJhd2VyLmpzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RyYXdlci5qcwpp
bmRleCAzZjgyN2ZiLi41NzFjMGZmIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvRHJhd2VyLmpzCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EcmF3ZXIu
anMKQEAgLTE1OSw3ICsxNTksNyBAQCBXZWJJbnNwZWN0b3IuRHJhd2VyLnByb3RvdHlwZSA9IHsK
IAogICAgICAgICAvLyBUZW1wb3JhcmlseSBzZXQgcHJvcGVydGllcyBhbmQgY2xhc3NlcyB0byBt
aW1pYyB0aGUgcG9zdC1hbmltYXRpb24gdmFsdWVzIHNvIHBhbmVscwogICAgICAgICAvLyBsaWtl
IEVsZW1lbnRzIGluIHRoZWlyIHVwZGF0ZVN0YXR1c0Jhckl0ZW1zIGNhbGwgd2lsbCBzaXplIHRo
aW5ncyB0byBmaXQgdGhlIGZpbmFsIGxvY2F0aW9uLgotICAgICAgICB0aGlzLm1haW5TdGF0dXNC
YXIuc3R5bGUuc2V0UHJvcGVydHkoInBhZGRpbmctbGVmdCIsIChhbmNob3JlZEl0ZW1zLm9mZnNl
dFdpZHRoIC0gMSkgKyAicHgiKTsKKyAgICAgICAgdGhpcy5tYWluU3RhdHVzQmFyLnN0eWxlLnNl
dFByb3BlcnR5KCJwYWRkaW5nLWxlZnQiLCAoYW5jaG9yZWRJdGVtcy5vZmZzZXRXaWR0aCAtIDEp
ICsgInB4IiwgbnVsbCk7CiAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlU3R5bGVDbGFzcygi
ZHJhd2VyLXZpc2libGUiKTsKICAgICAgICAgaWYgKCJ1cGRhdGVTdGF0dXNCYXJJdGVtcyIgaW4g
V2ViSW5zcGVjdG9yLmN1cnJlbnRQYW5lbCkKICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5jdXJy
ZW50UGFuZWwudXBkYXRlU3RhdHVzQmFySXRlbXMoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1BhbmVsLmpzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL0VsZW1lbnRzUGFuZWwuanMKaW5kZXggYzg1MzQ0MC4uOWQ0M2I0NiAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzUGFuZWwuanMKKysrIGIvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzUGFuZWwuanMKQEAgLTE5MSw5ICsxOTEs
OSBAQCBXZWJJbnNwZWN0b3IuRWxlbWVudHNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIGlm
ICghaW5zcGVjdGVkUm9vdERvY3VtZW50KQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAg
IGluc3BlY3RlZFJvb3REb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJET01Ob2RlSW5zZXJ0ZWQi
LCB0aGlzLl9ub2RlSW5zZXJ0ZWQuYmluZCh0aGlzKSk7Ci0gICAgICAgIGluc3BlY3RlZFJvb3RE
b2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJET01Ob2RlUmVtb3ZlZCIsIHRoaXMuX25vZGVSZW1v
dmVkLmJpbmQodGhpcykpOwotICAgICAgICBpbnNwZWN0ZWRSb290RG9jdW1lbnQuYWRkRXZlbnRM
aXN0ZW5lcigiRE9NQXR0ck1vZGlmaWVkIiwgdGhpcy5fYXR0cmlidXRlc1VwZGF0ZWQuYmluZCh0
aGlzKSk7CisgICAgICAgIGluc3BlY3RlZFJvb3REb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJE
T01Ob2RlSW5zZXJ0ZWQiLCB0aGlzLl9ub2RlSW5zZXJ0ZWQuYmluZCh0aGlzKSwgZmFsc2UpOwor
ICAgICAgICBpbnNwZWN0ZWRSb290RG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiRE9NTm9kZVJl
bW92ZWQiLCB0aGlzLl9ub2RlUmVtb3ZlZC5iaW5kKHRoaXMpLCBmYWxzZSk7CisgICAgICAgIGlu
c3BlY3RlZFJvb3REb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJET01BdHRyTW9kaWZpZWQiLCB0
aGlzLl9hdHRyaWJ1dGVzVXBkYXRlZC5iaW5kKHRoaXMpLCBmYWxzZSk7CiAKICAgICAgICAgdGhp
cy50cmVlT3V0bGluZS5zdXBwcmVzc1NlbGVjdEhpZ2hsaWdodCA9IHRydWU7CiAgICAgICAgIHRo
aXMucm9vdERPTU5vZGUgPSBpbnNwZWN0ZWRSb290RG9jdW1lbnQ7CmRpZmYgLS1naXQgYS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSW5qZWN0ZWRTY3JpcHQuanMgYi9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvSW5qZWN0ZWRTY3JpcHQuanMKaW5kZXggZTNiZTZhMy4uOGI0Yjc0OSAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0luamVjdGVkU2NyaXB0Lmpz
CisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9JbmplY3RlZFNjcmlwdC5qcwpAQCAt
NDUwLDcgKzQ1MCw3IEBAIEluamVjdGVkU2NyaXB0LnBlcmZvcm1TZWFyY2ggPSBmdW5jdGlvbih3
aGl0ZXNwYWNlVHJpbW1lZFF1ZXJ5LCBydW5TeW5jaHJvbm91c2x5CiAgICAgewogICAgICAgICBp
ZiAoIXRhZ05hbWVRdWVyeSkKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgY29uc3QgcmVz
dWx0ID0gZG9jLl9fcHJvdG9fXy5ldmFsdWF0ZS5jYWxsKGRvYywgIi8vKltjb250YWlucyhuYW1l
KCksICciICsgZXNjYXBlZFRhZ05hbWVRdWVyeSArICInKV0iLCBkb2MsIG51bGwsIFhQYXRoUmVz
dWx0Lk9SREVSRURfTk9ERV9TTkFQU0hPVF9UWVBFKTsKKyAgICAgICAgY29uc3QgcmVzdWx0ID0g
ZG9jLl9fcHJvdG9fXy5ldmFsdWF0ZS5jYWxsKGRvYywgIi8vKltjb250YWlucyhuYW1lKCksICci
ICsgZXNjYXBlZFRhZ05hbWVRdWVyeSArICInKV0iLCBkb2MsIG51bGwsIFhQYXRoUmVzdWx0Lk9S
REVSRURfTk9ERV9TTkFQU0hPVF9UWVBFLCBudWxsKTsKICAgICAgICAgYWRkTm9kZXNUb1Jlc3Vs
dHMuY2FsbCh0aGlzLCByZXN1bHQsIHJlc3VsdC5zbmFwc2hvdExlbmd0aCwgcmVzdWx0LnNuYXBz
aG90SXRlbSk7CiAgICAgfQogCkBAIC00NTgsNyArNDU4LDcgQEAgSW5qZWN0ZWRTY3JpcHQucGVy
Zm9ybVNlYXJjaCA9IGZ1bmN0aW9uKHdoaXRlc3BhY2VUcmltbWVkUXVlcnksIHJ1blN5bmNocm9u
b3VzbHkKICAgICB7CiAgICAgICAgIGlmICghdGFnTmFtZVF1ZXJ5KQogICAgICAgICAgICAgcmV0
dXJuOwotICAgICAgICBjb25zdCByZXN1bHQgPSBkb2MuX19wcm90b19fLmV2YWx1YXRlLmNhbGwo
ZG9jLCAiLy8qW3N0YXJ0cy13aXRoKG5hbWUoKSwgJyIgKyBlc2NhcGVkVGFnTmFtZVF1ZXJ5ICsg
IicpXSIsIGRvYywgbnVsbCwgWFBhdGhSZXN1bHQuT1JERVJFRF9OT0RFX1NOQVBTSE9UX1RZUEUp
OworICAgICAgICBjb25zdCByZXN1bHQgPSBkb2MuX19wcm90b19fLmV2YWx1YXRlLmNhbGwoZG9j
LCAiLy8qW3N0YXJ0cy13aXRoKG5hbWUoKSwgJyIgKyBlc2NhcGVkVGFnTmFtZVF1ZXJ5ICsgIicp
XSIsIGRvYywgbnVsbCwgWFBhdGhSZXN1bHQuT1JERVJFRF9OT0RFX1NOQVBTSE9UX1RZUEUsIG51
bGwpOwogICAgICAgICBhZGROb2Rlc1RvUmVzdWx0cy5jYWxsKHRoaXMsIHJlc3VsdCwgcmVzdWx0
LnNuYXBzaG90TGVuZ3RoLCByZXN1bHQuc25hcHNob3RJdGVtKTsKICAgICB9CiAKQEAgLTQ2OSwx
MyArNDY5LDEzIEBAIEluamVjdGVkU2NyaXB0LnBlcmZvcm1TZWFyY2ggPSBmdW5jdGlvbih3aGl0
ZXNwYWNlVHJpbW1lZFF1ZXJ5LCBydW5TeW5jaHJvbm91c2x5CiAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIH0KIAotICAgICAgICBjb25zdCByZXN1bHQgPSBkb2MuX19wcm90b19fLmV2YWx1
YXRlLmNhbGwoZG9jLCAiLy8qW2NvbnRhaW5zKG5hbWUoKSwgJyIgKyBlc2NhcGVkVGFnTmFtZVF1
ZXJ5ICsgIicpIG9yIGNvbnRhaW5zKEAqLCAnIiArIGVzY2FwZWRRdWVyeSArICInKV0iLCBkb2Ms
IG51bGwsIFhQYXRoUmVzdWx0Lk9SREVSRURfTk9ERV9TTkFQU0hPVF9UWVBFKTsKKyAgICAgICAg
Y29uc3QgcmVzdWx0ID0gZG9jLl9fcHJvdG9fXy5ldmFsdWF0ZS5jYWxsKGRvYywgIi8vKltjb250
YWlucyhuYW1lKCksICciICsgZXNjYXBlZFRhZ05hbWVRdWVyeSArICInKSBvciBjb250YWlucyhA
KiwgJyIgKyBlc2NhcGVkUXVlcnkgKyAiJyldIiwgZG9jLCBudWxsLCBYUGF0aFJlc3VsdC5PUkRF
UkVEX05PREVfU05BUFNIT1RfVFlQRSwgbnVsbCk7CiAgICAgICAgIGFkZE5vZGVzVG9SZXN1bHRz
LmNhbGwodGhpcywgcmVzdWx0LCByZXN1bHQuc25hcHNob3RMZW5ndGgsIHJlc3VsdC5zbmFwc2hv
dEl0ZW0pOwogICAgIH0KIAogICAgIGZ1bmN0aW9uIG1hdGNoUGFydGlhbEF0dHJpYnV0ZVZhbHVl
cyhkb2MpCiAgICAgewotICAgICAgICBjb25zdCByZXN1bHQgPSBkb2MuX19wcm90b19fLmV2YWx1
YXRlLmNhbGwoZG9jLCAiLy8qW2NvbnRhaW5zKEAqLCAnIiArIGVzY2FwZWRRdWVyeSArICInKV0i
LCBkb2MsIG51bGwsIFhQYXRoUmVzdWx0Lk9SREVSRURfTk9ERV9TTkFQU0hPVF9UWVBFKTsKKyAg
ICAgICAgY29uc3QgcmVzdWx0ID0gZG9jLl9fcHJvdG9fXy5ldmFsdWF0ZS5jYWxsKGRvYywgIi8v
Kltjb250YWlucyhAKiwgJyIgKyBlc2NhcGVkUXVlcnkgKyAiJyldIiwgZG9jLCBudWxsLCBYUGF0
aFJlc3VsdC5PUkRFUkVEX05PREVfU05BUFNIT1RfVFlQRSwgbnVsbCk7CiAgICAgICAgIGFkZE5v
ZGVzVG9SZXN1bHRzLmNhbGwodGhpcywgcmVzdWx0LCByZXN1bHQuc25hcHNob3RMZW5ndGgsIHJl
c3VsdC5zbmFwc2hvdEl0ZW0pOwogICAgIH0KIApAQCAtNDg3LDEzICs0ODcsMTMgQEAgSW5qZWN0
ZWRTY3JpcHQucGVyZm9ybVNlYXJjaCA9IGZ1bmN0aW9uKHdoaXRlc3BhY2VUcmltbWVkUXVlcnks
IHJ1blN5bmNocm9ub3VzbHkKIAogICAgIGZ1bmN0aW9uIG1hdGNoUGxhaW5UZXh0KGRvYykKICAg
ICB7Ci0gICAgICAgIGNvbnN0IHJlc3VsdCA9IGRvYy5fX3Byb3RvX18uZXZhbHVhdGUuY2FsbChk
b2MsICIvL3RleHQoKVtjb250YWlucyguLCAnIiArIGVzY2FwZWRRdWVyeSArICInKV0gfCAvL2Nv
bW1lbnQoKVtjb250YWlucyguLCAnIiArIGVzY2FwZWRRdWVyeSArICInKV0iLCBkb2MsIG51bGws
IFhQYXRoUmVzdWx0Lk9SREVSRURfTk9ERV9TTkFQU0hPVF9UWVBFKTsKKyAgICAgICAgY29uc3Qg
cmVzdWx0ID0gZG9jLl9fcHJvdG9fXy5ldmFsdWF0ZS5jYWxsKGRvYywgIi8vdGV4dCgpW2NvbnRh
aW5zKC4sICciICsgZXNjYXBlZFF1ZXJ5ICsgIicpXSB8IC8vY29tbWVudCgpW2NvbnRhaW5zKC4s
ICciICsgZXNjYXBlZFF1ZXJ5ICsgIicpXSIsIGRvYywgbnVsbCwgWFBhdGhSZXN1bHQuT1JERVJF
RF9OT0RFX1NOQVBTSE9UX1RZUEUsIG51bGwpOwogICAgICAgICBhZGROb2Rlc1RvUmVzdWx0cy5j
YWxsKHRoaXMsIHJlc3VsdCwgcmVzdWx0LnNuYXBzaG90TGVuZ3RoLCByZXN1bHQuc25hcHNob3RJ
dGVtKTsKICAgICB9CiAKICAgICBmdW5jdGlvbiBtYXRjaFhQYXRoUXVlcnkoZG9jKQogICAgIHsK
LSAgICAgICAgY29uc3QgcmVzdWx0ID0gZG9jLl9fcHJvdG9fXy5ldmFsdWF0ZS5jYWxsKGRvYywg
d2hpdGVzcGFjZVRyaW1tZWRRdWVyeSwgZG9jLCBudWxsLCBYUGF0aFJlc3VsdC5PUkRFUkVEX05P
REVfU05BUFNIT1RfVFlQRSk7CisgICAgICAgIGNvbnN0IHJlc3VsdCA9IGRvYy5fX3Byb3RvX18u
ZXZhbHVhdGUuY2FsbChkb2MsIHdoaXRlc3BhY2VUcmltbWVkUXVlcnksIGRvYywgbnVsbCwgWFBh
dGhSZXN1bHQuT1JERVJFRF9OT0RFX1NOQVBTSE9UX1RZUEUsIG51bGwpOwogICAgICAgICBhZGRO
b2Rlc1RvUmVzdWx0cy5jYWxsKHRoaXMsIHJlc3VsdCwgcmVzdWx0LnNuYXBzaG90TGVuZ3RoLCBy
ZXN1bHQuc25hcHNob3RJdGVtKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9SZXNvdXJjZXNQYW5lbC5qcyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9SZXNvdXJjZXNQYW5lbC5qcwppbmRleCBiMmRmYTE1Li5mMzZhZDRhIDEwMDY0NAotLS0g
YS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VzUGFuZWwuanMKKysrIGIvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlc1BhbmVsLmpzCkBAIC0xMjgzLDIxICsx
MjgzLDIxIEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZUdyYXBoLnByb3RvdHlwZSA9IHsKICAgICAg
ICAgaWYgKGxhYmVsQmVmb3JlKSB7CiAgICAgICAgICAgICBpZiAobGVmdEhpZGRlbikKICAgICAg
ICAgICAgICAgICB0aGlzLl9sYWJlbExlZnRFbGVtZW50LmFkZFN0eWxlQ2xhc3MoImhpZGRlbiIp
OwotICAgICAgICAgICAgdGhpcy5fbGFiZWxMZWZ0RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgi
cmlnaHQiLCAoMTAwIC0gdGhpcy5fcGVyY2VudGFnZXMuc3RhcnQpICsgIiUiKTsKKyAgICAgICAg
ICAgIHRoaXMuX2xhYmVsTGVmdEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoInJpZ2h0IiwgKDEw
MCAtIHRoaXMuX3BlcmNlbnRhZ2VzLnN0YXJ0KSArICIlIiwgbnVsbCk7CiAgICAgICAgICAgICB0
aGlzLl9sYWJlbExlZnRFbGVtZW50LmFkZFN0eWxlQ2xhc3MoImJlZm9yZSIpOwogICAgICAgICB9
IGVsc2UgewotICAgICAgICAgICAgdGhpcy5fbGFiZWxMZWZ0RWxlbWVudC5zdHlsZS5zZXRQcm9w
ZXJ0eSgibGVmdCIsIHRoaXMuX3BlcmNlbnRhZ2VzLnN0YXJ0ICsgIiUiKTsKLSAgICAgICAgICAg
IHRoaXMuX2xhYmVsTGVmdEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoInJpZ2h0IiwgKDEwMCAt
IHRoaXMuX3BlcmNlbnRhZ2VzLm1pZGRsZSkgKyAiJSIpOworICAgICAgICAgICAgdGhpcy5fbGFi
ZWxMZWZ0RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgibGVmdCIsIHRoaXMuX3BlcmNlbnRhZ2Vz
LnN0YXJ0ICsgIiUiLCBudWxsKTsKKyAgICAgICAgICAgIHRoaXMuX2xhYmVsTGVmdEVsZW1lbnQu
c3R5bGUuc2V0UHJvcGVydHkoInJpZ2h0IiwgKDEwMCAtIHRoaXMuX3BlcmNlbnRhZ2VzLm1pZGRs
ZSkgKyAiJSIsIG51bGwpOwogICAgICAgICB9CiAKICAgICAgICAgaWYgKGxhYmVsQWZ0ZXIpIHsK
ICAgICAgICAgICAgIGlmIChyaWdodEhpZGRlbikKICAgICAgICAgICAgICAgICB0aGlzLl9sYWJl
bFJpZ2h0RWxlbWVudC5hZGRTdHlsZUNsYXNzKCJoaWRkZW4iKTsKLSAgICAgICAgICAgIHRoaXMu
X2xhYmVsUmlnaHRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCJsZWZ0IiwgdGhpcy5fcGVyY2Vu
dGFnZXMuZW5kICsgIiUiKTsKKyAgICAgICAgICAgIHRoaXMuX2xhYmVsUmlnaHRFbGVtZW50LnN0
eWxlLnNldFByb3BlcnR5KCJsZWZ0IiwgdGhpcy5fcGVyY2VudGFnZXMuZW5kICsgIiUiLCBudWxs
KTsKICAgICAgICAgICAgIHRoaXMuX2xhYmVsUmlnaHRFbGVtZW50LmFkZFN0eWxlQ2xhc3MoImFm
dGVyIik7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICB0aGlzLl9sYWJlbFJpZ2h0RWxl
bWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgibGVmdCIsIHRoaXMuX3BlcmNlbnRhZ2VzLm1pZGRsZSAr
ICIlIik7Ci0gICAgICAgICAgICB0aGlzLl9sYWJlbFJpZ2h0RWxlbWVudC5zdHlsZS5zZXRQcm9w
ZXJ0eSgicmlnaHQiLCAoMTAwIC0gdGhpcy5fcGVyY2VudGFnZXMuZW5kKSArICIlIik7CisgICAg
ICAgICAgICB0aGlzLl9sYWJlbFJpZ2h0RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgibGVmdCIs
IHRoaXMuX3BlcmNlbnRhZ2VzLm1pZGRsZSArICIlIiwgbnVsbCk7CisgICAgICAgICAgICB0aGlz
Ll9sYWJlbFJpZ2h0RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgicmlnaHQiLCAoMTAwIC0gdGhp
cy5fcGVyY2VudGFnZXMuZW5kKSArICIlIiwgbnVsbCk7CiAgICAgICAgIH0KICAgICB9LAogCkBA
IC0xMzE1LDEyICsxMzE1LDEyIEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZUdyYXBoLnByb3RvdHlw
ZSA9IHsKICAgICAgICAgICAgIHRoaXMuX2dyYXBoRWxlbWVudC5hZGRTdHlsZUNsYXNzKCJyZXNv
dXJjZXMtY2F0ZWdvcnktIiArIHRoaXMucmVzb3VyY2UuY2F0ZWdvcnkubmFtZSk7CiAgICAgICAg
IH0KIAotICAgICAgICB0aGlzLl9iYXJMZWZ0RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgibGVm
dCIsIHBlcmNlbnRhZ2VzLnN0YXJ0ICsgIiUiKTsKLSAgICAgICAgdGhpcy5fYmFyUmlnaHRFbGVt
ZW50LnN0eWxlLnNldFByb3BlcnR5KCJyaWdodCIsICgxMDAgLSBwZXJjZW50YWdlcy5lbmQpICsg
IiUiKTsKKyAgICAgICAgdGhpcy5fYmFyTGVmdEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoImxl
ZnQiLCBwZXJjZW50YWdlcy5zdGFydCArICIlIiwgbnVsbCk7CisgICAgICAgIHRoaXMuX2JhclJp
Z2h0RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgicmlnaHQiLCAoMTAwIC0gcGVyY2VudGFnZXMu
ZW5kKSArICIlIiwgbnVsbCk7CiAKICAgICAgICAgaWYgKCFpc0Jhck9wYXF1ZUF0TGVmdCkgewot
ICAgICAgICAgICAgdGhpcy5fYmFyTGVmdEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoInJpZ2h0
IiwgKDEwMCAtIHBlcmNlbnRhZ2VzLmVuZCkgKyAiJSIpOwotICAgICAgICAgICAgdGhpcy5fYmFy
UmlnaHRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCJsZWZ0IiwgcGVyY2VudGFnZXMubWlkZGxl
ICsgIiUiKTsKKyAgICAgICAgICAgIHRoaXMuX2JhckxlZnRFbGVtZW50LnN0eWxlLnNldFByb3Bl
cnR5KCJyaWdodCIsICgxMDAgLSBwZXJjZW50YWdlcy5lbmQpICsgIiUiLCBudWxsKTsKKyAgICAg
ICAgICAgIHRoaXMuX2JhclJpZ2h0RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgibGVmdCIsIHBl
cmNlbnRhZ2VzLm1pZGRsZSArICIlIiwgbnVsbCk7CiAKICAgICAgICAgICAgIGlmICh0aGlzLl9p
c0Jhck9wYXF1ZUF0TGVmdCAhPSBpc0Jhck9wYXF1ZUF0TGVmdCkgewogICAgICAgICAgICAgICAg
IHRoaXMuX2JhckxlZnRFbGVtZW50LmFkZFN0eWxlQ2xhc3MoIndhaXRpbmciKTsKQEAgLTEzMjks
OCArMTMyOSw4IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZUdyYXBoLnByb3RvdHlwZSA9IHsKICAg
ICAgICAgICAgICAgICB0aGlzLl9sYWJlbFJpZ2h0RWxlbWVudC5yZW1vdmVTdHlsZUNsYXNzKCJ3
YWl0aW5nLXJpZ2h0Iik7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAg
ICAgICB0aGlzLl9iYXJMZWZ0RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgicmlnaHQiLCAoMTAw
IC0gcGVyY2VudGFnZXMubWlkZGxlKSArICIlIik7Ci0gICAgICAgICAgICB0aGlzLl9iYXJSaWdo
dEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoImxlZnQiLCBwZXJjZW50YWdlcy5zdGFydCArICIl
Iik7CisgICAgICAgICAgICB0aGlzLl9iYXJMZWZ0RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgi
cmlnaHQiLCAoMTAwIC0gcGVyY2VudGFnZXMubWlkZGxlKSArICIlIiwgbnVsbCk7CisgICAgICAg
ICAgICB0aGlzLl9iYXJSaWdodEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoImxlZnQiLCBwZXJj
ZW50YWdlcy5zdGFydCArICIlIiwgbnVsbCk7CiAKICAgICAgICAgICAgIGlmICh0aGlzLl9pc0Jh
ck9wYXF1ZUF0TGVmdCAhPSBpc0Jhck9wYXF1ZUF0TGVmdCkgewogICAgICAgICAgICAgICAgIHRo
aXMuX2JhckxlZnRFbGVtZW50LnJlbW92ZVN0eWxlQ2xhc3MoIndhaXRpbmciKTsKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TdHlsZXNTaWRlYmFyUGFuZS5qcyBiL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TdHlsZXNTaWRlYmFyUGFuZS5qcwppbmRleCAzNWQy
NWQ0Li5lYjA2MjBkIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU3R5
bGVzU2lkZWJhclBhbmUuanMKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1N0eWxl
c1NpZGViYXJQYW5lLmpzCkBAIC01ODcsNyArNTg3LDcgQEAgV2ViSW5zcGVjdG9yLkNvbXB1dGVk
U3R5bGVTaWRlYmFyUGFuZSA9IGZ1bmN0aW9uKCkKICAgICAgICAgfQogICAgIH0KIAotICAgIFdl
Ykluc3BlY3Rvci5zZXR0aW5ncy5hZGRFdmVudExpc3RlbmVyKCJsb2FkZWQiLCBzZXR0aW5nc0xv
YWRlZC5iaW5kKHRoaXMpKTsKKyAgICBXZWJJbnNwZWN0b3Iuc2V0dGluZ3MuYWRkRXZlbnRMaXN0
ZW5lcigibG9hZGVkIiwgc2V0dGluZ3NMb2FkZWQuYmluZCh0aGlzKSwgZmFsc2UpOwogCiAgICAg
ZnVuY3Rpb24gc2hvd0luaGVyaXRlZFRvZ2dsZUZ1bmN0aW9uKGV2ZW50KQogICAgIHsKQEAgLTEx
MjksNyArMTEyOSw3IEBAIFdlYkluc3BlY3Rvci5TdHlsZVByb3BlcnR5VHJlZUVsZW1lbnQucHJv
dG90eXBlID0gewogICAgICAgICAgICAgICAgIHZhciBzd2F0Y2hFbGVtZW50ID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgic3BhbiIpOwogICAgICAgICAgICAgICAgIHN3YXRjaEVsZW1lbnQudGl0
bGUgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkNsaWNrIHRvIGNoYW5nZSBjb2xvciBmb3JtYXQi
KTsKICAgICAgICAgICAgICAgICBzd2F0Y2hFbGVtZW50LmNsYXNzTmFtZSA9ICJzd2F0Y2giOwot
ICAgICAgICAgICAgICAgIHN3YXRjaEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoImJhY2tncm91
bmQtY29sb3IiLCB0ZXh0KTsKKyAgICAgICAgICAgICAgICBzd2F0Y2hFbGVtZW50LnN0eWxlLnNl
dFByb3BlcnR5KCJiYWNrZ3JvdW5kLWNvbG9yIiwgdGV4dCwgbnVsbCk7CiAKICAgICAgICAgICAg
ICAgICBzd2F0Y2hFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgY2hhbmdlQ29sb3JE
aXNwbGF5LCBmYWxzZSk7CiAgICAgICAgICAgICAgICAgc3dhdGNoRWxlbWVudC5hZGRFdmVudExp
c3RlbmVyKCJkYmxjbGljayIsIGZ1bmN0aW9uKGV2ZW50KSB7IGV2ZW50LnN0b3BQcm9wYWdhdGlv
bigpIH0sIGZhbHNlKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9U
aW1lbGluZU92ZXJ2aWV3UGFuZS5qcyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1l
bGluZU92ZXJ2aWV3UGFuZS5qcwppbmRleCAzZTgzZjYyLi5hMzc0ZGQ1IDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVPdmVydmlld1BhbmUuanMKKysrIGIv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lT3ZlcnZpZXdQYW5lLmpzCkBAIC0z
NDMsNyArMzQzLDcgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lT3ZlcnZpZXdQYW5lLnByb3RvdHlw
ZSA9IHsKICAgICAgICAgY2hlY2tFbGVtZW50LnR5cGUgPSAiY2hlY2tib3giOwogICAgICAgICBj
aGVja0VsZW1lbnQuY2xhc3NOYW1lID0gInRpbWVsaW5lLWNhdGVnb3J5LWNoZWNrYm94IjsKICAg
ICAgICAgY2hlY2tFbGVtZW50LmNoZWNrZWQgPSB0cnVlOwotICAgICAgICBjaGVja0VsZW1lbnQu
YWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBvbkNoZWNrYm94Q2xpY2tlZCk7CisgICAgICAgIGNo
ZWNrRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIG9uQ2hlY2tib3hDbGlja2VkLCBm
YWxzZSk7CiAgICAgICAgIGxhYmVsLmFwcGVuZENoaWxkKGNoZWNrRWxlbWVudCk7CiAKICAgICAg
ICAgdmFyIHR5cGVFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOwpAQCAt
NDI2LDggKzQyNiw4IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZUNhdGVnb3J5R3JhcGgucHJvdG90
eXBlID0gewogICAgICAgICB2YXIgY2h1bmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYi
KTsKICAgICAgICAgY2h1bmsuY2xhc3NOYW1lID0gInRpbWVsaW5lLWdyYXBoLWJhciI7CiAgICAg
ICAgIHRoaXMuX2JhckFyZWFFbGVtZW50LmFwcGVuZENoaWxkKGNodW5rKTsKLSAgICAgICAgY2h1
bmsuc3R5bGUuc2V0UHJvcGVydHkoImxlZnQiLCBzdGFydCArICIlIik7Ci0gICAgICAgIGNodW5r
LnN0eWxlLnNldFByb3BlcnR5KCJ3aWR0aCIsIChlbmQgLSBzdGFydCkgKyAiJSIpOworICAgICAg
ICBjaHVuay5zdHlsZS5zZXRQcm9wZXJ0eSgibGVmdCIsIHN0YXJ0ICsgIiUiLCBudWxsKTsKKyAg
ICAgICAgY2h1bmsuc3R5bGUuc2V0UHJvcGVydHkoIndpZHRoIiwgKGVuZCAtIHN0YXJ0KSArICIl
IiwgbnVsbCk7CiAgICAgfSwKIAogICAgIGNsZWFyQ2h1bmtzOiBmdW5jdGlvbigpCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQYW5lbC5qcyBiL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVBhbmVsLmpzCmluZGV4IDI5ZWZkNzkuLmQ1
ZWFjMmMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVBh
bmVsLmpzCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVBhbmVsLmpz
CkBAIC03OTQsNyArNzk0LDcgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUmVjb3JkR3JhcGhSb3cg
PSBmdW5jdGlvbihncmFwaENvbnRhaW5lciwgc2NoZWR1bGVSZWZyZXNoKQogICAgIHRoaXMuX2Jh
ckFyZWFFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX2JhckVsZW1lbnQpOwogCiAgICAgdGhpcy5f
ZXhwYW5kRWxlbWVudCA9IG5ldyBXZWJJbnNwZWN0b3IuVGltZWxpbmVFeHBhbmRhYmxlRWxlbWVu
dChncmFwaENvbnRhaW5lcik7Ci0gICAgdGhpcy5fZXhwYW5kRWxlbWVudC5fZWxlbWVudC5hZGRF
dmVudExpc3RlbmVyKCJjbGljayIsIHRoaXMuX29uQ2xpY2suYmluZCh0aGlzKSk7CisgICAgdGhp
cy5fZXhwYW5kRWxlbWVudC5fZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIHRoaXMu
X29uQ2xpY2suYmluZCh0aGlzKSwgZmFsc2UpOwogCiAgICAgdGhpcy5fc2NoZWR1bGVSZWZyZXNo
ID0gc2NoZWR1bGVSZWZyZXNoOwogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL2luc3BlY3Rvci5qcyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0
b3IuanMKaW5kZXggOGMyNWJlNS4uMTljOGYxZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcworKysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvaW5zcGVjdG9yLmpzCkBAIC01MzAsNyArNTMwLDcgQEAgV2ViSW5zcGVjdG9yLmFkZFBhbmVs
VG9vbGJhckljb24gPSBmdW5jdGlvbih0b29sYmFyRWxlbWVudCwgcGFuZWwsIHByZXZpb3VzVG9v
bGIKIHsKICAgICB2YXIgcGFuZWxUb29sYmFySXRlbSA9IHBhbmVsLnRvb2xiYXJJdGVtOwogICAg
IHRoaXMucGFuZWxPcmRlci5wdXNoKHBhbmVsKTsKLSAgICBwYW5lbFRvb2xiYXJJdGVtLmFkZEV2
ZW50TGlzdGVuZXIoImNsaWNrIiwgdGhpcy5fdG9vbGJhckl0ZW1DbGlja2VkLmJpbmQodGhpcykp
OworICAgIHBhbmVsVG9vbGJhckl0ZW0uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCB0aGlzLl90
b29sYmFySXRlbUNsaWNrZWQuYmluZCh0aGlzKSwgZmFsc2UpOwogICAgIGlmIChwcmV2aW91c1Rv
b2xiYXJJdGVtKQogICAgICAgICB0b29sYmFyRWxlbWVudC5pbnNlcnRCZWZvcmUocGFuZWxUb29s
YmFySXRlbSwgcHJldmlvdXNUb29sYmFySXRlbS5uZXh0U2libGluZyk7CiAgICAgZWxzZQpAQCAt
ODk3LDE0ICs4OTcsMTQgQEAgV2ViSW5zcGVjdG9yLmFuaW1hdGVTdHlsZSA9IGZ1bmN0aW9uKGFu
aW1hdGlvbnMsIGR1cmF0aW9uLCBjYWxsYmFjaykKICAgICAgICAgICAgIGNvbnRpbnVlOwogCiAg
ICAgICAgIGlmICghc3RhcnQpIHsKLSAgICAgICAgICAgIHZhciBjb21wdXRlZFN0eWxlID0gZWxl
bWVudC5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUoZWxlbWVudCk7
CisgICAgICAgICAgICB2YXIgY29tcHV0ZWRTdHlsZSA9IGVsZW1lbnQub3duZXJEb2N1bWVudC5k
ZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsIG51bGwpOwogICAgICAgICAgICAg
c3RhcnQgPSB7fTsKICAgICAgICAgICAgIGZvciAoa2V5IGluIGVuZCkKICAgICAgICAgICAgICAg
ICBzdGFydFtrZXldID0gcGFyc2VJbnQoY29tcHV0ZWRTdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKGtl
eSkpOwogICAgICAgICAgICAgYW5pbWF0aW9uLnN0YXJ0ID0gc3RhcnQ7CiAgICAgICAgIH0gZWxz
ZQogICAgICAgICAgICAgZm9yIChrZXkgaW4gc3RhcnQpCi0gICAgICAgICAgICAgICAgZWxlbWVu
dC5zdHlsZS5zZXRQcm9wZXJ0eShrZXksIHN0YXJ0W2tleV0gKyAoa2V5IGluIHByb3BlcnR5VW5p
dCA/IHByb3BlcnR5VW5pdFtrZXldIDogZGVmYXVsdFVuaXQpKTsKKyAgICAgICAgICAgICAgICBl
bGVtZW50LnN0eWxlLnNldFByb3BlcnR5KGtleSwgc3RhcnRba2V5XSArIChrZXkgaW4gcHJvcGVy
dHlVbml0ID8gcHJvcGVydHlVbml0W2tleV0gOiBkZWZhdWx0VW5pdCksIG51bGwpOwogICAgIH0K
IAogICAgIGZ1bmN0aW9uIGFuaW1hdGVMb29wKCkKQEAgLTkyOCw5ICs5MjgsOSBAQCBXZWJJbnNw
ZWN0b3IuYW5pbWF0ZVN0eWxlID0gZnVuY3Rpb24oYW5pbWF0aW9ucywgZHVyYXRpb24sIGNhbGxi
YWNrKQogICAgICAgICAgICAgICAgIGlmIChuZXh0IDwgZHVyYXRpb24pIHsKICAgICAgICAgICAg
ICAgICAgICAgdmFyIHN0YXJ0VmFsdWUgPSBzdGFydFtrZXldOwogICAgICAgICAgICAgICAgICAg
ICB2YXIgbmV3VmFsdWUgPSBjdWJpY0luT3V0KGNvbXBsZXRlLCBzdGFydFZhbHVlLCBlbmRWYWx1
ZSAtIHN0YXJ0VmFsdWUsIGR1cmF0aW9uKTsKLSAgICAgICAgICAgICAgICAgICAgc3R5bGUuc2V0
UHJvcGVydHkoa2V5LCBuZXdWYWx1ZSArIChrZXkgaW4gcHJvcGVydHlVbml0ID8gcHJvcGVydHlV
bml0W2tleV0gOiBkZWZhdWx0VW5pdCkpOworICAgICAgICAgICAgICAgICAgICBzdHlsZS5zZXRQ
cm9wZXJ0eShrZXksIG5ld1ZhbHVlICsgKGtleSBpbiBwcm9wZXJ0eVVuaXQgPyBwcm9wZXJ0eVVu
aXRba2V5XSA6IGRlZmF1bHRVbml0KSwgbnVsbCk7CiAgICAgICAgICAgICAgICAgfSBlbHNlCi0g
ICAgICAgICAgICAgICAgICAgIHN0eWxlLnNldFByb3BlcnR5KGtleSwgZW5kVmFsdWUgKyAoa2V5
IGluIHByb3BlcnR5VW5pdCA/IHByb3BlcnR5VW5pdFtrZXldIDogZGVmYXVsdFVuaXQpKTsKKyAg
ICAgICAgICAgICAgICAgICAgc3R5bGUuc2V0UHJvcGVydHkoa2V5LCBlbmRWYWx1ZSArIChrZXkg
aW4gcHJvcGVydHlVbml0ID8gcHJvcGVydHlVbml0W2tleV0gOiBkZWZhdWx0VW5pdCksIG51bGwp
OwogICAgICAgICAgICAgfQogICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9E
T01XaW5kb3cuaCBiL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAppbmRleCBhMWY0MGE4Li5jMzNi
NTA0IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKKysrIGIvV2ViQ29yZS9w
YWdlL0RPTVdpbmRvdy5oCkBAIC0xMzksMTEgKzEzOSwxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKICAgICAgICAgdm9pZCBhbGVydChjb25zdCBTdHJpbmcmIG1lc3NhZ2UpOwogICAgICAgICBi
b29sIGNvbmZpcm0oY29uc3QgU3RyaW5nJiBtZXNzYWdlKTsKLSAgICAgICAgU3RyaW5nIHByb21w
dChjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVmYXVsdFZhbHVlKTsKKyAg
ICAgICAgU3RyaW5nIHByb21wdChjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYg
ZGVmYXVsdFZhbHVlID0gU3RyaW5nKCkpOwogICAgICAgICBTdHJpbmcgYnRvYShjb25zdCBTdHJp
bmcmIHN0cmluZ1RvRW5jb2RlLCBFeGNlcHRpb25Db2RlJik7CiAgICAgICAgIFN0cmluZyBhdG9i
KGNvbnN0IFN0cmluZyYgZW5jb2RlZFN0cmluZywgRXhjZXB0aW9uQ29kZSYpOwogCi0gICAgICAg
IGJvb2wgZmluZChjb25zdCBTdHJpbmcmLCBib29sIGNhc2VTZW5zaXRpdmUsIGJvb2wgYmFja3dh
cmRzLCBib29sIHdyYXAsIGJvb2wgd2hvbGVXb3JkLCBib29sIHNlYXJjaEluRnJhbWVzLCBib29s
IHNob3dEaWFsb2cpIGNvbnN0OworICAgICAgICBib29sIGZpbmQoY29uc3QgU3RyaW5nJiwgYm9v
bCBjYXNlU2Vuc2l0aXZlID0gZmFsc2UsIGJvb2wgYmFja3dhcmRzID0gZmFsc2UsIGJvb2wgd3Jh
cCA9IGZhbHNlLCBib29sIHdob2xlV29yZCA9IGZhbHNlLCBib29sIHNlYXJjaEluRnJhbWVzID0g
ZmFsc2UsIGJvb2wgc2hvd0RpYWxvZyA9IGZhbHNlKSBjb25zdDsKIAogICAgICAgICBib29sIG9m
ZnNjcmVlbkJ1ZmZlcmluZygpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvRE9N
V2luZG93LmlkbCBiL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCmluZGV4IGI0NzY1MTQuLmQ2
YmEwNmIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCisrKyBiL1dlYkNv
cmUvcGFnZS9ET01XaW5kb3cuaWRsCkBAIC04MiwxNSArODIsMTUgQEAgbW9kdWxlIHdpbmRvdyB7
CiAgICAgICAgIHZvaWQgYWxlcnQoaW4gRE9NU3RyaW5nIG1lc3NhZ2UpOwogICAgICAgICBib29s
ZWFuIGNvbmZpcm0oaW4gRE9NU3RyaW5nIG1lc3NhZ2UpOwogICAgICAgICBbQ29udmVydE51bGxT
dHJpbmdUbz1OdWxsXSBET01TdHJpbmcgcHJvbXB0KGluIERPTVN0cmluZyBtZXNzYWdlLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtDb252
ZXJ0VW5kZWZpbmVkT3JOdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgZGVmYXVsdFZhbHVlKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBb
T3B0aW9uYWxdIERPTVN0cmluZyBkZWZhdWx0VmFsdWUpOwogCiAgICAgICAgIGJvb2xlYW4gZmlu
ZChpbiBET01TdHJpbmcgc3RyaW5nLAotICAgICAgICAgICAgICAgICAgICAgaW4gYm9vbGVhbiBj
YXNlU2Vuc2l0aXZlLAotICAgICAgICAgICAgICAgICAgICAgaW4gYm9vbGVhbiBiYWNrd2FyZHMs
Ci0gICAgICAgICAgICAgICAgICAgICBpbiBib29sZWFuIHdyYXAsCi0gICAgICAgICAgICAgICAg
ICAgICBpbiBib29sZWFuIHdob2xlV29yZCwKLSAgICAgICAgICAgICAgICAgICAgIGluIGJvb2xl
YW4gc2VhcmNoSW5GcmFtZXMsCi0gICAgICAgICAgICAgICAgICAgICBpbiBib29sZWFuIHNob3dE
aWFsb2cpOworICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsXSBib29sZWFuIGNhc2VT
ZW5zaXRpdmUsCisgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWxdIGJvb2xlYW4gYmFj
a3dhcmRzLAorICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsXSBib29sZWFuIHdyYXAs
CisgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWxdIGJvb2xlYW4gd2hvbGVXb3JkLAor
ICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsXSBib29sZWFuIHNlYXJjaEluRnJhbWVz
LAorICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsXSBib29sZWFuIHNob3dEaWFsb2cp
OwogCiAgICAgICAgIGF0dHJpYnV0ZSBbUmVwbGFjZWFibGVdIGJvb2xlYW4gb2Zmc2NyZWVuQnVm
ZmVyaW5nOwogCkBAIC0xMDcsMTMgKzEwNywxMyBAQCBtb2R1bGUgd2luZG93IHsKICAgICAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgcGFnZVhPZmZzZXQ7CiAgICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBsb25nIHBhZ2VZT2Zmc2V0OwogCi0gICAgICAgIFtSZXF1aXJlc0FsbEFyZ3VtZW50
c10gdm9pZCBzY3JvbGxCeShpbiBsb25nIHgsIGluIGxvbmcgeSk7Ci0gICAgICAgIFtSZXF1aXJl
c0FsbEFyZ3VtZW50c10gdm9pZCBzY3JvbGxUbyhpbiBsb25nIHgsIGluIGxvbmcgeSk7Ci0gICAg
ICAgIFtSZXF1aXJlc0FsbEFyZ3VtZW50c10gdm9pZCBzY3JvbGwoaW4gbG9uZyB4LCBpbiBsb25n
IHkpOwotICAgICAgICBbUmVxdWlyZXNBbGxBcmd1bWVudHNdIHZvaWQgbW92ZUJ5KGluIGZsb2F0
IHgsIGluIGZsb2F0IHkpOyAvLyBGSVhNRTogdGhpcyBzaG91bGQgdGFrZSBsb25ncyBub3QgZmxv
YXRzLgotICAgICAgICBbUmVxdWlyZXNBbGxBcmd1bWVudHNdIHZvaWQgbW92ZVRvKGluIGZsb2F0
IHgsIGluIGZsb2F0IHkpOyAvLyBGSVhNRTogdGhpcyBzaG91bGQgdGFrZSBsb25ncyBub3QgZmxv
YXRzLgotICAgICAgICBbUmVxdWlyZXNBbGxBcmd1bWVudHNdIHZvaWQgcmVzaXplQnkoaW4gZmxv
YXQgeCwgaW4gZmxvYXQgeSk7IC8vIEZJWE1FOiB0aGlzIHNob3VsZCB0YWtlIGxvbmdzIG5vdCBm
bG9hdHMuCi0gICAgICAgIFtSZXF1aXJlc0FsbEFyZ3VtZW50c10gdm9pZCByZXNpemVUbyhpbiBm
bG9hdCB3aWR0aCwgaW4gZmxvYXQgaGVpZ2h0KTsgLy8gRklYTUU6IHRoaXMgc2hvdWxkIHRha2Ug
bG9uZ3Mgbm90IGZsb2F0cy4KKyAgICAgICAgdm9pZCBzY3JvbGxCeShpbiBsb25nIHgsIGluIGxv
bmcgeSk7CisgICAgICAgIHZvaWQgc2Nyb2xsVG8oaW4gbG9uZyB4LCBpbiBsb25nIHkpOworICAg
ICAgICB2b2lkIHNjcm9sbChpbiBsb25nIHgsIGluIGxvbmcgeSk7CisgICAgICAgIHZvaWQgbW92
ZUJ5KGluIGZsb2F0IHgsIGluIGZsb2F0IHkpOyAvLyBGSVhNRTogdGhpcyBzaG91bGQgdGFrZSBs
b25ncyBub3QgZmxvYXRzLgorICAgICAgICB2b2lkIG1vdmVUbyhpbiBmbG9hdCB4LCBpbiBmbG9h
dCB5KTsgLy8gRklYTUU6IHRoaXMgc2hvdWxkIHRha2UgbG9uZ3Mgbm90IGZsb2F0cy4KKyAgICAg
ICAgdm9pZCByZXNpemVCeShpbiBmbG9hdCB4LCBpbiBmbG9hdCB5KTsgLy8gRklYTUU6IHRoaXMg
c2hvdWxkIHRha2UgbG9uZ3Mgbm90IGZsb2F0cy4KKyAgICAgICAgdm9pZCByZXNpemVUbyhpbiBm
bG9hdCB3aWR0aCwgaW4gZmxvYXQgaGVpZ2h0KTsgLy8gRklYTUU6IHRoaXMgc2hvdWxkIHRha2Ug
bG9uZ3Mgbm90IGZsb2F0cy4KIAogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0RvTm90Q2hl
Y2tEb21haW5TZWN1cml0eV0gYm9vbGVhbiBjbG9zZWQ7CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
cGx1Z2lucy9QbHVnaW5BcnJheS5oIGIvV2ViQ29yZS9wbHVnaW5zL1BsdWdpbkFycmF5LmgKaW5k
ZXggNDM1ZGI1MC4uMTcxYjliMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbHVnaW5zL1BsdWdpbkFy
cmF5LmgKKysrIGIvV2ViQ29yZS9wbHVnaW5zL1BsdWdpbkFycmF5LmgKQEAgLTQ0LDcgKzQ0LDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBib29sIGNhbkdldEl0ZW1zRm9yTmFtZShj
b25zdCBBdG9taWNTdHJpbmcmIHByb3BlcnR5TmFtZSk7CiAgICAgICAgIFBhc3NSZWZQdHI8UGx1
Z2luPiBuYW1lZEl0ZW0oY29uc3QgQXRvbWljU3RyaW5nJiBwcm9wZXJ0eU5hbWUpOwogCi0gICAg
ICAgIHZvaWQgcmVmcmVzaChib29sIHJlbG9hZCk7CisgICAgICAgIHZvaWQgcmVmcmVzaChib29s
IHJlbG9hZCA9IGZhbHNlKTsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIFBsdWdpbkFycmF5KEZy
YW1lKik7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luQXJyYXkuaWRsIGIvV2Vi
Q29yZS9wbHVnaW5zL1BsdWdpbkFycmF5LmlkbAppbmRleCBkNGMxMGFjLi5lZmVlNzc1IDEwMDY0
NAotLS0gYS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luQXJyYXkuaWRsCisrKyBiL1dlYkNvcmUvcGx1
Z2lucy9QbHVnaW5BcnJheS5pZGwKQEAgLTI3LDcgKzI3LDcgQEAgbW9kdWxlIHdpbmRvdyB7CiAg
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxlbmd0aDsKICAgICAgICAg
UGx1Z2luIGl0ZW0oaW4gdW5zaWduZWQgbG9uZyBpbmRleCk7CiAgICAgICAgIFBsdWdpbiBuYW1l
ZEl0ZW0oaW4gRE9NU3RyaW5nIG5hbWUpOwotICAgICAgICB2b2lkIHJlZnJlc2goaW4gYm9vbGVh
biByZWxvYWQpOworICAgICAgICB2b2lkIHJlZnJlc2goaW4gW09wdGlvbmFsXSBib29sZWFuIHJl
bG9hZCk7CiAgICAgfTsKIAogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVl
c3QuaWRsIGIvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaWRsCmluZGV4IDM1NzQ3NjYuLjc1
ZmQ0ZTYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmlkbAorKysgYi9X
ZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5pZGwKQEAgLTYzLDcgKzYzLDcgQEAgbW9kdWxlIHht
bCB7CiAgICAgICAgIFtDdXN0b21dIHZvaWQgb3BlbihpbiBET01TdHJpbmcgbWV0aG9kLCBpbiBE
T01TdHJpbmcgdXJsLCBpbiBib29sZWFuIGFzeW5jLCBpbiBET01TdHJpbmcgdXNlciwgaW4gRE9N
U3RyaW5nIHBhc3N3b3JkKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKLSAg
ICAgICAgW1JlcXVpcmVzQWxsQXJndW1lbnRzPVJhaXNlXSB2b2lkIHNldFJlcXVlc3RIZWFkZXIo
aW4gRE9NU3RyaW5nIGhlYWRlciwgaW4gRE9NU3RyaW5nIHZhbHVlKQorICAgICAgICB2b2lkIHNl
dFJlcXVlc3RIZWFkZXIoaW4gRE9NU3RyaW5nIGhlYWRlciwgaW4gRE9NU3RyaW5nIHZhbHVlKQog
ICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKICAgICAgICAgLy8gdm9pZCBzZW5k
KCk7CkBAIC03OCw3ICs3OCw3IEBAIG1vZHVsZSB4bWwgewogICAgICAgICAvLyByZXNwb25zZQog
ICAgICAgICBbQ29udmVydE51bGxTdHJpbmdUbz1VbmRlZmluZWRdIERPTVN0cmluZyBnZXRBbGxS
ZXNwb25zZUhlYWRlcnMoKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAg
ICAgIFtSZXF1aXJlc0FsbEFyZ3VtZW50cz1SYWlzZSwgQ29udmVydE51bGxTdHJpbmdUbz1OdWxs
XSBET01TdHJpbmcgZ2V0UmVzcG9uc2VIZWFkZXIoaW4gRE9NU3RyaW5nIGhlYWRlcikKKyAgICAg
ICAgW0NvbnZlcnROdWxsU3RyaW5nVG89TnVsbF0gRE9NU3RyaW5nIGdldFJlc3BvbnNlSGVhZGVy
KGluIERPTVN0cmluZyBoZWFkZXIpCiAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsK
ICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtDdXN0b21HZXR0ZXJdIERPTVN0cmluZyByZXNw
b25zZVRleHQ7IC8vIFRoZSBjdXN0b20gZ2V0dGVyIGltcGxlbWVudHMgQ29udmVydE51bGxTdHJp
bmdUbz1OdWxsCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBEb2N1bWVudCByZXNwb25zZVhN
TDsKQEAgLTg4LDcgKzg4LDcgQEAgbW9kdWxlIHhtbCB7CiAgICAgICAgICAgICBnZXR0ZXIgcmFp
c2VzKERPTUV4Y2VwdGlvbik7CiAKICAgICAgICAgLy8gRXh0ZW5zaW9uCi0gICAgICAgIFtSZXF1
aXJlc0FsbEFyZ3VtZW50cz1SYWlzZV0gdm9pZCBvdmVycmlkZU1pbWVUeXBlKGluIERPTVN0cmlu
ZyBvdmVycmlkZSk7CisgICAgICAgIHZvaWQgb3ZlcnJpZGVNaW1lVHlwZShpbiBET01TdHJpbmcg
b3ZlcnJpZGUpOwogCiAgICAgICAgIC8vIEV2ZW50VGFyZ2V0IGludGVyZmFjZQogICAgICAgICB2
b2lkIGFkZEV2ZW50TGlzdGVuZXIoaW4gRE9NU3RyaW5nIHR5cGUsIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>57752</attachid>
            <date>2010-06-03 04:34:20 -0700</date>
            <delta_ts>2010-06-11 14:54:19 -0700</delta_ts>
            <desc>Proposed patch v2</desc>
            <filename>bug-21257-v2.diff</filename>
            <type>text/plain</type>
            <size>239527</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBkN2ZkNDQ2Li5mYjAxMGRiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcxIEBACisyMDEwLTA2
LTAzICBBbmRyZWFzIEtsaW5nICA8YW5kcmVhcy5rbGluZ0Bub2tpYS5jb20+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSURMIGJpbmRpbmdzIHNob3Vs
ZCB0aHJvdyBUeXBlRXJyb3Igd2hlbiBjYWxsZWQgd2l0aCB0b28gZmV3IGFyZ3VtZW50cworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEyNTcKKworICAg
ICAgICBGaXhlZCBhIG15cmlhZCBvZiBicm9rZW4gdGVzdHMgKG1pc3NpbmcgZnVuY3Rpb24gYXJn
dW1lbnRzLCBtb3N0bHkuKQorICAgICAgICBVcGRhdGVkIGJhc2VsaW5lcyBhY2NvcmRpbmdseS4K
KworICAgICAgICBTcGVjIGxpbms6CisgICAgICAgIGh0dHA6Ly93d3cudzMub3JnL1RSL1dlYklE
TC8jZXMtb3BlcmF0aW9ucworCisgICAgICAgICogYW5pbWF0aW9ucy9hbmltYXRpb24tc2hvcnRo
YW5kLXJlbW92ZWQuaHRtbDoKKyAgICAgICAgKiBhbmltYXRpb25zL2FuaW1hdGlvbi1zaG9ydGhh
bmQuaHRtbDoKKyAgICAgICAgKiBhbmltYXRpb25zL2FuaW1hdGlvbi10ZXN0LWhlbHBlcnMuanM6
CisgICAgICAgIChjaGVja0V4cGVjdGVkVmFsdWUpOgorICAgICAgICAqIGFuaW1hdGlvbnMvY2hh
bmdlLW9uZS1hbmltLmh0bWw6CisgICAgICAgICogYW5pbWF0aW9ucy9jb21iby10cmFuc2Zvcm0t
dHJhbnNsYXRlK3NjYWxlLmh0bWw6CisgICAgICAgICogYW5pbWF0aW9ucy9jb21wdXRlZC1zdHls
ZS5odG1sOgorICAgICAgICAqIGFuaW1hdGlvbnMvZmlsbC1tb2RlLXJlbW92ZWQuaHRtbDoKKyAg
ICAgICAgKiBhbmltYXRpb25zL2ZpbGwtbW9kZS10cmFuc2Zvcm0uaHRtbDoKKyAgICAgICAgKiBh
bmltYXRpb25zL2ZpbGwtbW9kZS5odG1sOgorICAgICAgICAqIGFuaW1hdGlvbnMvZmlsbC11bnNl
dC1wcm9wZXJ0aWVzLmh0bWw6CisgICAgICAgICogYW5pbWF0aW9ucy9mb250LXNpemUtdXNpbmct
ZW1zLmh0bWwtZGlzYWJsZWQ6CisgICAgICAgICogY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5wYXRo
LmFyYy5ub25maW5pdGUuaHRtbDoKKyAgICAgICAgKiBjc3MxL3VuaXRzL3plcm8tZHVyYXRpb24t
d2l0aG91dC11bml0cy5odG1sOgorICAgICAgICAqIGVkaXRpbmcvZGVsZXRpbmcvNTE1NjgwMS5o
dG1sOgorICAgICAgICAqIGVkaXRpbmcvZXhlY0NvbW1hbmQvNTEyMDU5MS5odG1sOgorICAgICAg
ICAqIGVkaXRpbmcvcGFzdGVib2FyZC80MjQyMjkzLmh0bWw6CisgICAgICAgICogZWRpdGluZy9w
YXN0ZWJvYXJkL3N0eWxlZC1lbGVtZW50LW1hcmt1cC5odG1sOgorICAgICAgICAqIGVkaXRpbmcv
c2VsZWN0aW9uL0RPTVNlbGVjdGlvbi1Eb2N1bWVudFR5cGUtZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIGVkaXRpbmcvc2VsZWN0aW9uL2V4dGVuZC1leHBlY3RlZC50eHQ6CisgICAgICAgICogZWRp
dGluZy9zZWxlY3Rpb24vc2NyaXB0LXRlc3RzL0RPTVNlbGVjdGlvbi1Eb2N1bWVudFR5cGUuanM6
CisgICAgICAgICogZmFzdC9ib3JkZXJzL2JvcmRlci1yYWRpdXMtcGFyc2luZy5odG1sOgorICAg
ICAgICAqIGZhc3QvY3NzL2JhY2tncm91bmQtY3VycmVudGNvbG9yLmh0bWw6CisgICAgICAgICog
ZmFzdC9jc3MvYmFja2dyb3VuZC1wb3NpdGlvbi1pbmhlcml0Lmh0bWw6CisgICAgICAgICogZmFz
dC9jc3MvY2hpbGQtc2VsZWN0b3ItaW1wbGljaXQtdGJvZHkuaHRtbDoKKyAgICAgICAgKiBmYXN0
L2Nzcy9keW5hbWljLXBzZXVkby1jbGFzcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9j
c3MvZHluYW1pYy1wc2V1ZG8tY2xhc3MuaHRtbDoKKyAgICAgICAgKiBmYXN0L2Nzcy9mb250LWZh
bWlseS1idWlsdGlucy5odG1sOgorICAgICAgICAqIGZhc3QvY3NzL2dldENvbXB1dGVkU3R5bGUv
Y29tcHV0ZWQtc3R5bGUtcGFnZS1icmVhay1pbnNpZGUtZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IGZhc3QvY3NzL2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10cmFuc2Zvcm0uaHRt
bDoKKyAgICAgICAgKiBmYXN0L2Nzcy9nZXRDb21wdXRlZFN0eWxlL3BlbmRpbmctc3R5bGVzaGVl
dC5odG1sOgorICAgICAgICAqIGZhc3QvY3NzL2dldENvbXB1dGVkU3R5bGUvc2NyaXB0LXRlc3Rz
L2NvbXB1dGVkLXN0eWxlLXBhZ2UtYnJlYWstaW5zaWRlLmpzOgorICAgICAgICAqIGZhc3QvY3Nz
L2hvdmVyLWFmZmVjdHMtY2hpbGQuaHRtbDoKKyAgICAgICAgKiBmYXN0L2Nzcy9tYXgtaGVpZ2h0
LWFuZC1tYXgtd2lkdGguaHRtbDoKKyAgICAgICAgKiBmYXN0L2Nzcy9udGgtY2hpbGQtZHluYW1p
Yy5odG1sOgorICAgICAgICAqIGZhc3QvY3NzL3Jlc2l6ZS1zaW5nbGUtYXhpcy5odG1sOgorICAg
ICAgICAqIGZhc3QvY3NzL3Jlc2l6ZS12YWx1ZS1jb21wYXJlZC5odG1sOgorICAgICAgICAqIGZh
c3QvY3NzL3pvb20taW4tbGVuZ3RoLXJvdW5kLXRyaXAuaHRtbDoKKyAgICAgICAgKiBmYXN0L2Rv
bS9ET01JbXBsZW1lbnRhdGlvbi9jcmVhdGVEb2N1bWVudC1uYW1lc3BhY2UtZXJyLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiBmYXN0L2RvbS9ET01JbXBsZW1lbnRhdGlvbi9jcmVhdGVEb2N1bWVu
dFR5cGUtZXJyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2RvbS9ET01JbXBsZW1lbnRh
dGlvbi9zY3JpcHQtdGVzdHMvY3JlYXRlRG9jdW1lbnQtbmFtZXNwYWNlLWVyci5qczoKKyAgICAg
ICAgKiBmYXN0L2RvbS9ET01JbXBsZW1lbnRhdGlvbi9zY3JpcHQtdGVzdHMvY3JlYXRlRG9jdW1l
bnRUeXBlLWVyci5qczoKKyAgICAgICAgKiBmYXN0L2RvbS9Eb2N1bWVudC9jcmVhdGVBdHRyaWJ1
dGVOUy1uYW1lc3BhY2UtZXJyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2RvbS9Eb2N1
bWVudC9jcmVhdGVFbGVtZW50TlMtbmFtZXNwYWNlLWVyci1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogZmFzdC9kb20vRG9jdW1lbnQvc2NyaXB0LXRlc3RzL2NyZWF0ZUF0dHJpYnV0ZU5TLW5hbWVz
cGFjZS1lcnIuanM6CisgICAgICAgICogZmFzdC9kb20vRG9jdW1lbnQvc2NyaXB0LXRlc3RzL2Ny
ZWF0ZUVsZW1lbnROUy1uYW1lc3BhY2UtZXJyLmpzOgorICAgICAgICAqIGZhc3QvZG9tL0hUTUxG
b3JtRWxlbWVudC9hZG9wdC1hc3NlcnRpb24uaHRtbDoKKyAgICAgICAgKiBmYXN0L2RvbS9TZWxl
Y3RvckFQSS9yZXNpZy1TZWxlY3RvcnNBUEktdGVzdC1leHBlY3RlZC50eHQ6CisgICAgICAgICog
ZmFzdC9kb20vU2VsZWN0b3JBUEkvc2NyaXB0LXRlc3RzL3ZpZXdsZXNzLWRvY3VtZW50LmpzOgor
ICAgICAgICAqIGZhc3QvZG9tL1N0eWxlU2hlZXQvb3duZXJOb2RlLWxpZmV0aW1lLTIuaHRtbDoK
KyAgICAgICAgKiBmYXN0L2RvbS9TdHlsZVNoZWV0L293bmVyTm9kZS1saWZldGltZS5odG1sOgor
ICAgICAgICAqIGZhc3QvZG9tL1dpbmRvdy9hbGVydC11bmRlZmluZWQtZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIGZhc3QvZG9tL1dpbmRvdy9hbGVydC11bmRlZmluZWQuaHRtbDoKKyAgICAgICAg
KiBmYXN0L2RvbS9XaW5kb3cvYXRvYi1idG9hLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0
L2RvbS9XaW5kb3cvYXRvYi1idG9hLmh0bWw6CisgICAgICAgICogZmFzdC9kb20vV2luZG93L3dp
bmRvdy1yZXNpemUtYW5kLW1vdmUtYXJndW1lbnRzLmh0bWw6CisgICAgICAgICogZmFzdC9kb20v
V2luZG93L3dpbmRvdy1zY3JvbGwtYXJndW1lbnRzLmh0bWw6CisgICAgICAgICogZmFzdC9kb20v
YXR0cmlidXRlLWRvd25jYXN0LXJpZ2h0Lmh0bWw6CisgICAgICAgICogZmFzdC9kb20vY29tcHV0
ZWQtc3R5bGUtc2V0LXByb3BlcnR5Lmh0bWw6CisgICAgICAgICogZmFzdC9kb20vZ2V0RWxlbWVu
dHNCeUNsYXNzTmFtZS9kdW1wTm9kZUxpc3QtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3Qv
ZG9tL2dldEVsZW1lbnRzQnlDbGFzc05hbWUvZHVtcE5vZGVMaXN0Lmh0bWw6CisgICAgICAgICog
ZmFzdC9kb20vaW1wb3J0Tm9kZS1udWxsLmh0bWw6CisgICAgICAgICogZmFzdC9kb20vbmF2aWdh
dG9yLWRldGFjaGVkLW5vLWNyYXNoLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2RvbS9u
b24tbnVtZXJpYy12YWx1ZXMtbnVtZXJpYy1wYXJhbWV0ZXJzLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiBmYXN0L2RvbS9udWxsLWNoYXJkYXRhLWNyYXNoLmh0bWw6CisgICAgICAgICogZmFzdC9k
b20vc2NyaXB0LXRlc3RzL2RvbUxpc3RFbnVtZXJhdGlvbi5qczoKKyAgICAgICAgKiBmYXN0L2Rv
bS9zY3JpcHQtdGVzdHMvbm9uLW51bWVyaWMtdmFsdWVzLW51bWVyaWMtcGFyYW1ldGVycy5qczoK
KyAgICAgICAgKiBmYXN0L2RvbS9zY3JpcHQtdGVzdHMvc2V0UHJpbWl0aXZlVmFsdWUtZXhjZXB0
aW9ucy5qczoKKyAgICAgICAgKiBmYXN0L2RvbS9zZXRQcmltaXRpdmVWYWx1ZS1leGNlcHRpb25z
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2RvbS9zdHlsZS1zaGVldC1jYW5kaWRhdGUt
cmVtb3ZlLXVucmVuZGVyZWQtZG9jdW1lbnQuaHRtbDoKKyAgICAgICAgKiBmYXN0L2R5bmFtaWMv
aG92ZXJlZC1kZXRhY2guaHRtbDoKKyAgICAgICAgKiBmYXN0L2R5bmFtaWMvcG9zaXRpb24tYWJz
b2x1dGUtdG8tZml4ZWQtY3Jhc2guaHRtbDoKKyAgICAgICAgKiBmYXN0L2V2ZW50cy9ldmVudC1s
aXN0ZW5lci1tYXAtcmVoYXNoLWNyYXNoLmh0bWw6CisgICAgICAgICogZmFzdC9ldmVudHMvaW5p
dC1ldmVudHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZXZlbnRzL21lc3NhZ2UtcG9y
dC5odG1sOgorICAgICAgICAqIGZhc3QvZXZlbnRzL3Jlc291cmNlcy9kcmFnLW91dHNpZGUtd2lu
ZG93LWZyYW1lLmh0bWw6CisgICAgICAgICogZmFzdC9ldmVudHMvcmVzb3VyY2VzL3RhYmluZGV4
LWZvY3VzLWJsdXItYWxsLmpzOgorICAgICAgICAodGVzdFByb2dyYW1tYXRpY0ZvY3VzKToKKyAg
ICAgICAgKiBmYXN0L2V2ZW50cy9zY3JpcHQtdGVzdHMvaW5pdC1ldmVudHMuanM6CisgICAgICAg
ICogZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLWN1c3RvbUVycm9yLTAwNC5odG1sOgorICAgICAg
ICAqIGZhc3QvZm9ybXMvbGVnZW5kLWRpc3BsYXktbm9uZS5odG1sOgorICAgICAgICAqIGZhc3Qv
Zm9ybXMvc2NyaXB0LXRlc3RzL2NoZWNrVmFsaWRpdHktaGFuZGxlci11cGRhdGVzLWRvbS5qczoK
KyAgICAgICAgKiBmYXN0L2hhcm5lc3Mvb3ZlcnJpZGUtcHJlZmVyZW5jZXMtMi5odG1sOgorICAg
ICAgICAqIGZhc3QvaHRtbC9uYXYtZWxlbWVudC5odG1sOgorICAgICAgICAqIGZhc3QvaHRtbC9z
Y3JpcHQtdGVzdHMvYXJ0aWNsZS1lbGVtZW50LmpzOgorICAgICAgICAqIGZhc3QvaHRtbC9zY3Jp
cHQtdGVzdHMvYXNpZGUtZWxlbWVudC5qczoKKyAgICAgICAgKiBmYXN0L2h0bWwvc2NyaXB0LXRl
c3RzL2Zvb3Rlci1lbGVtZW50LmpzOgorICAgICAgICAqIGZhc3QvaHRtbC9zY3JpcHQtdGVzdHMv
aGVhZGVyLWVsZW1lbnQuanM6CisgICAgICAgICogZmFzdC9odG1sL3NjcmlwdC10ZXN0cy9oZ3Jv
dXAtZWxlbWVudC5qczoKKyAgICAgICAgKiBmYXN0L2h0bWwvc2NyaXB0LXRlc3RzL3NlY3Rpb24t
ZWxlbWVudC5qczoKKyAgICAgICAgKiBmYXN0L2lubGluZS9yZWxhdGl2ZS1wb3NpdGlvbmVkLW92
ZXJmbG93Lmh0bWw6CisgICAgICAgICogZmFzdC9pbnNwZWN0b3Itc3VwcG9ydC91bmNhdWdodC1k
b20xLWV4Y2VwdGlvbi5odG1sOgorICAgICAgICAqIGZhc3QvaW5zcGVjdG9yLXN1cHBvcnQvdW5j
YXVnaHQtZG9tMy1leGNlcHRpb24uaHRtbDoKKyAgICAgICAgKiBmYXN0L2xvYWRlci9sb2NhbC1K
YXZhU2NyaXB0LWZyb20tbG9jYWwuaHRtbDoKKyAgICAgICAgKiBmYXN0L2xvYWRlci9sb2NhbC1j
c3MtYWxsb3dlZC1pbi1zdHJpY3QtbW9kZS5odG1sOgorICAgICAgICAqIGZhc3QvbXVsdGljb2wv
Z2FwLW5vbi1uZWdhdGl2ZS5odG1sOgorICAgICAgICAqIGZhc3QvcGFyc2VyL3NjcmlwdC10ZXN0
cy9ibG9jay1uZXN0aW5nLWNhcC10YWJsZS5qczoKKyAgICAgICAgKiBmYXN0L3BhcnNlci9zY3Jp
cHQtdGVzdHMvYmxvY2stbmVzdGluZy1jYXAuanM6CisgICAgICAgICogZmFzdC9wYXJzZXIvc2Ny
aXB0LXRlc3RzL2VsZW1lbnQtbmVzdGluZy1jYXAuanM6CisgICAgICAgICogZmFzdC9wcm9maWxl
ci9wcm9maWxlLXdpdGgtbm8tdGl0bGUuaHRtbDoKKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL3Jl
c291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qczoKKyAgICAgICAgKGVuZFRlc3Qp
OgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvc2ltcGxlLW5vLWxldmVsLWNoYW5nZS5odG1sOgor
ICAgICAgICAqIGZhc3QvcHJvZmlsZXIvdHdvLWV4ZWN1dGlvbi1jb250ZXh0cy5odG1sOgorICAg
ICAgICAqIGZhc3QvcmVwYWludC9tb3Zpbmctc2hhZG93LW9uLWNvbnRhaW5lci5odG1sOgorICAg
ICAgICAqIGZhc3QvcmVwYWludC9tb3Zpbmctc2hhZG93LW9uLXBhdGguaHRtbDoKKyAgICAgICAg
KiBmYXN0L3RhYmxlL2NvbC13aWR0aC1zcGFuLWV4cGFuZC1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogZmFzdC90YWJsZS9jb2wtd2lkdGgtc3Bhbi1leHBhbmQuaHRtbDoKKyAgICAgICAgKiBmYXN0
L3RhYmxlL3RkLWRpc3BsYXktbm93cmFwLmh0bWw6CisgICAgICAgICogZmFzdC90ZXh0L3Njcmlw
dC10ZXN0cy9maW5kLWJhY2t3YXJkcy5qczoKKyAgICAgICAgKiBmYXN0L3Rva2VuaXplci9hbXBl
cnNhbmQtaW4tc3BlY2lhbC10YWcuaHRtbDoKKyAgICAgICAgKiBmYXN0L3hwYXRoL3hwYXRoLWVt
cHR5LXN0cmluZy5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvbWlzYy9jc3MtYWNjZXB0LWFu
eS10eXBlLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9taXNjL2Nzcy1yZWplY3QtYW55LXR5
cGUtaW4tc3RyaWN0LW1vZGUuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2xv
Y2FsLUphdmFTY3JpcHQtZnJvbS1yZW1vdGUuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3Nl
Y3VyaXR5L2xvY2FsLXZpZGVvLXNyYy1mcm9tLXJlbW90ZS5odG1sOgorICAgICAgICAqIGh0dHAv
dGVzdHMveG1saHR0cHJlcXVlc3QvZXhjZXB0aW9ucy1leHBlY3RlZC50eHQ6CisgICAgICAgICog
bWVkaWEvdmlkZW8tY2FuLXBsYXktdHlwZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogbWVkaWEv
dmlkZW8tY2FuLXBsYXktdHlwZS5odG1sOgorICAgICAgICAqIHN2Zy9jc3MvZ2x5cGgtb3JpZW50
YXRpb24tcm91bmRpbmctdGVzdC54aHRtbDoKKyAgICAgICAgKiBzdmcvY3VzdG9tL2xvYWRldmVu
dHMtY2FwdHVyaW5nLnN2ZzoKKyAgICAgICAgKiBzdmcvY3VzdG9tL3JlbGF0aXZlLXNpemVkLWNv
bnRlbnQueGh0bWw6CisgICAgICAgICogc3ZnL2N1c3RvbS9yZWxhdGl2ZS1zaXplZC1kZWVwLXNo
YWRvdy10cmVlLWNvbnRlbnQueGh0bWw6CisgICAgICAgICogc3ZnL2N1c3RvbS9yZWxhdGl2ZS1z
aXplZC1zaGFkb3ctdHJlZS1jb250ZW50LXdpdGgtc3ltYm9sLnhodG1sOgorICAgICAgICAqIHN2
Zy9jdXN0b20vcmVsYXRpdmUtc2l6ZWQtc2hhZG93LXRyZWUtY29udGVudC54aHRtbDoKKyAgICAg
ICAgKiBzdmcvY3VzdG9tL3JlbGF0aXZlLXNpemVkLXVzZS1vbi1zeW1ib2wueGh0bWw6CisgICAg
ICAgICogc3ZnL2RvbS9mcmFtZS1yZWxhdGVkLWFwaS1kdXJpbmctbG9hZC5odG1sOgorICAgICAg
ICAqIHRyYW5zZm9ybXMvMmQvY29tcHV0ZWQtc3R5bGUtb3JpZ2luLmh0bWw6CisgICAgICAgICog
dHJhbnNmb3Jtcy8yZC9yZXNvdXJjZXMvdHJhbnNmb3JtLXRlc3QtdXRpbHMuanM6CisgICAgICAg
ICh0ZXN0VHJhbnNmb3Jtcyk6CisgICAgICAgICogdHJhbnNmb3Jtcy9jc3NtYXRyaXgtMmQtaW50
ZXJmYWNlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB0cmFuc2Zvcm1zL2Nzc21hdHJpeC0yZC1p
bnRlcmZhY2UueGh0bWw6CisgICAgICAgICogdHJhbnNpdGlvbnMvY2FuY2VsLXRyYW5zaXRpb24u
aHRtbDoKKyAgICAgICAgKiB0cmFuc2l0aW9ucy9jaGFuZ2UtdmFsdWVzLWR1cmluZy10cmFuc2l0
aW9uLmh0bWw6CisgICAgICAgICogdHJhbnNpdGlvbnMvZXh0cmEtdHJhbnNpdGlvbi5odG1sOgor
ICAgICAgICAqIHRyYW5zaXRpb25zL2luaGVyaXQtb3RoZXItcHJvcHMuaHRtbDoKKyAgICAgICAg
KiB0cmFuc2l0aW9ucy9pbmhlcml0Lmh0bWw6CisgICAgICAgICogdHJhbnNpdGlvbnMvaW50ZXJy
dXB0LXRyYW5zZm9ybS10cmFuc2l0aW9uLmh0bWw6CisgICAgICAgICogdHJhbnNpdGlvbnMvaW50
ZXJydXB0LXplcm8tZHVyYXRpb24uaHRtbDoKKyAgICAgICAgKiB0cmFuc2l0aW9ucy9pbnRlcnJ1
cHRlZC1hbGwtdHJhbnNpdGlvbi5odG1sOgorICAgICAgICAqIHRyYW5zaXRpb25zL21hdGNoZWQt
dHJhbnNmb3JtLWZ1bmN0aW9ucy5odG1sOgorICAgICAgICAqIHRyYW5zaXRpb25zL3JlcGVhdGVk
LWZpcmluZy1iYWNrZ3JvdW5kLWNvbG9yLmh0bWw6CisgICAgICAgICogdHJhbnNpdGlvbnMvcmV0
YXJnZXR0ZWQtdHJhbnNpdGlvbi5odG1sOgorICAgICAgICAqIHRyYW5zaXRpb25zL3N0YXJ0LXRy
YW5zZm9ybS10cmFuc2l0aW9uLmh0bWw6CisgICAgICAgICogdHJhbnNpdGlvbnMvdHJhbnNpdGlv
bi1kcnQtYXBpLWRlbGF5Lmh0bWw6CisgICAgICAgICogdHJhbnNpdGlvbnMvdHJhbnNpdGlvbi1k
dXJhdGlvbi1jbGVhcmVkLWluLXRyYW5zaXRpb25lbmQtY3Jhc2guaHRtbDoKKyAgICAgICAgKiB0
cmFuc2l0aW9ucy90cmFuc2l0aW9uLXNob3J0aGFuZC1kZWxheS5odG1sOgorICAgICAgICAqIHRy
YW5zaXRpb25zL3RyYW5zaXRpb24tdGVzdC1oZWxwZXJzLmpzOgorICAgICAgICAoZXhwZWN0ZWQp
OgorICAgICAgICAqIHRyYW5zaXRpb25zL3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uLmh0bWw6
CisgICAgICAgICogdHJhbnNpdGlvbnMvemVyby1kdXJhdGlvbi13aXRoLW5vbi16ZXJvLWRlbGF5
LXN0YXJ0Lmh0bWw6CisgICAgICAgICogdHJhbnNpdGlvbnMvemVyby1kdXJhdGlvbi13aXRob3V0
LXVuaXRzLmh0bWw6CisgICAgICAgICogdHJhdmVyc2FsL25vZGUtaXRlcmF0b3ItMDA5Lmh0bWw6
CisgICAgICAgICogd2Vic29ja2V0L3Rlc3RzL3NjcmlwdC10ZXN0cy93ZWJzb2NrZXQtZXZlbnQt
dGFyZ2V0LmpzOgorCiAyMDEwLTA2LTAzICBLZW50IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBVbnJldmlld2VkLiBUZXN0IGV4cGVjdGF0aW9uIHVwZGF0ZS4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLXNob3J0aGFuZC1yZW1vdmVk
Lmh0bWwgYi9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1zaG9ydGhhbmQtcmVtb3Zl
ZC5odG1sCmluZGV4IDE1YmY5NjguLjgwNTljZTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Fu
aW1hdGlvbnMvYW5pbWF0aW9uLXNob3J0aGFuZC1yZW1vdmVkLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvYW5pbWF0aW9ucy9hbmltYXRpb24tc2hvcnRoYW5kLXJlbW92ZWQuaHRtbApAQCAtNzUsNyAr
NzUsNyBAQAogICAgICAgdmFyIHJlc3VsdHNTdHJpbmcgPSAiIjsKICAgICAgIGtFbGVtZW50cy5m
b3JFYWNoKGZ1bmN0aW9uKGN1ckVsKSB7CiAgICAgICAgIHZhciBlbCA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKGN1ckVsLmlkKTsKLSAgICAgICAgdmFyIGVsU3R5bGUgPSB3aW5kb3cuZ2V0Q29t
cHV0ZWRTdHlsZShlbCk7CisgICAgICAgIHZhciBlbFN0eWxlID0gd2luZG93LmdldENvbXB1dGVk
U3R5bGUoZWwsIG51bGwpOwogCiAgICAgICAgIGZvciAodmFyIGk9MDsgaSA8IGtQcm9wZXJ0aWVz
Lmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgdmFyIGNvbXB1dGVkVmFsdWUgPSBlbFN0eWxlW2tQ
cm9wZXJ0aWVzW2ldXTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0
aW9uLXNob3J0aGFuZC5odG1sIGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmltYXRpb24tc2hv
cnRoYW5kLmh0bWwKaW5kZXggYWRmMzcxOS4uOTk1YmY0YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvYW5pbWF0aW9ucy9hbmltYXRpb24tc2hvcnRoYW5kLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
YW5pbWF0aW9ucy9hbmltYXRpb24tc2hvcnRoYW5kLmh0bWwKQEAgLTcxLDcgKzcxLDcgQEAKICAg
ICAgIHZhciByZXN1bHRzU3RyaW5nID0gIiI7CiAgICAgICBrRXhwZWN0ZWRSZXN1bHRzLmZvckVh
Y2goZnVuY3Rpb24oY3VySXRlbSkgewogICAgICAgICB2YXIgZWwgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZChjdXJJdGVtLmlkKTsKLSAgICAgICAgdmFyIGVsU3R5bGUgPSB3aW5kb3cuZ2V0Q29t
cHV0ZWRTdHlsZShlbCk7CisgICAgICAgIHZhciBlbFN0eWxlID0gd2luZG93LmdldENvbXB1dGVk
U3R5bGUoZWwsIG51bGwpOwogICAgICAgICAKICAgICAgICAgZm9yICh2YXIgaT0wOyBpIDwga1By
b3BlcnRpZXMubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICB2YXIgY29tcHV0ZWRWYWx1ZSA9IGVs
U3R5bGVba1Byb3BlcnRpZXNbaV1dOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYW5pbWF0aW9u
cy9hbmltYXRpb24tdGVzdC1oZWxwZXJzLmpzIGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmlt
YXRpb24tdGVzdC1oZWxwZXJzLmpzCmluZGV4IGFiNjA2YWEuLmVlN2YzNTUgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLXRlc3QtaGVscGVycy5qcworKysgYi9M
YXlvdXRUZXN0cy9hbmltYXRpb25zL2FuaW1hdGlvbi10ZXN0LWhlbHBlcnMuanMKQEAgLTc3LDkg
Kzc3LDkgQEAgZnVuY3Rpb24gY2hlY2tFeHBlY3RlZFZhbHVlKGV4cGVjdGVkLCBpbmRleCkKICAg
ICB2YXIgY29tcHV0ZWRWYWx1ZSwgY29tcHV0ZWRWYWx1ZTI7CiAgICAgdmFyIHBhc3MgPSB0cnVl
OwogICAgIGlmICghcHJvcGVydHkuaW5kZXhPZigid2Via2l0VHJhbnNmb3JtIikpIHsKLSAgICAg
ICAgY29tcHV0ZWRWYWx1ZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKGVsZW1lbnRJZCkpLndlYmtpdFRyYW5zZm9ybTsKKyAgICAgICAgY29tcHV0ZWRW
YWx1ZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVs
ZW1lbnRJZCksIG51bGwpLndlYmtpdFRyYW5zZm9ybTsKICAgICAgICAgaWYgKGNvbXBhcmVFbGVt
ZW50cykgewotICAgICAgICAgICAgY29tcHV0ZWRWYWx1ZTIgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRT
dHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVtZW50SWQyKSkud2Via2l0VHJhbnNmb3Jt
OworICAgICAgICAgICAgY29tcHV0ZWRWYWx1ZTIgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShk
b2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVtZW50SWQyKSwgbnVsbCkud2Via2l0VHJhbnNmb3Jt
OwogICAgICAgICAgICAgdmFyIG0xID0gbWF0cml4U3RyaW5nVG9BcnJheShjb21wdXRlZFZhbHVl
KTsKICAgICAgICAgICAgIHZhciBtMiA9IG1hdHJpeFN0cmluZ1RvQXJyYXkoY29tcHV0ZWRWYWx1
ZTIpOwogICAgICAgICAgICAgCkBAIC0xMDYsMTggKzEwNiwxOCBAQCBmdW5jdGlvbiBjaGVja0V4
cGVjdGVkVmFsdWUoZXhwZWN0ZWQsIGluZGV4KQogICAgICAgICAgICAgfQogICAgICAgICB9CiAg
ICAgfSBlbHNlIGlmIChwcm9wZXJ0eSA9PSAibGluZUhlaWdodCIpIHsKLSAgICAgICAgY29tcHV0
ZWRWYWx1ZSA9IHBhcnNlSW50KHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKGVsZW1lbnRJZCkpLmxpbmVIZWlnaHQpOworICAgICAgICBjb21wdXRlZFZhbHVl
ID0gcGFyc2VJbnQod2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoZWxlbWVudElkKSwgbnVsbCkubGluZUhlaWdodCk7CiAgICAgICAgIGlmIChjb21wYXJlRWxl
bWVudHMpIHsKLSAgICAgICAgICAgIGNvbXB1dGVkVmFsdWUyID0gcGFyc2VJbnQod2luZG93Lmdl
dENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElkMikpLmxpbmVI
ZWlnaHQpOworICAgICAgICAgICAgY29tcHV0ZWRWYWx1ZTIgPSBwYXJzZUludCh3aW5kb3cuZ2V0
Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVtZW50SWQyKSwgbnVsbCku
bGluZUhlaWdodCk7CiAgICAgICAgICAgICBwYXNzID0gaXNDbG9zZUVub3VnaChjb21wdXRlZFZh
bHVlLCBjb21wdXRlZFZhbHVlMiwgdG9sZXJhbmNlKTsKICAgICAgICAgfQogICAgICAgICBlbHNl
CiAgICAgICAgICAgICBwYXNzID0gaXNDbG9zZUVub3VnaChjb21wdXRlZFZhbHVlLCBleHBlY3Rl
ZFZhbHVlLCB0b2xlcmFuY2UpOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIHZhciBjb21wdXRlZFN0
eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxl
bWVudElkKSkuZ2V0UHJvcGVydHlDU1NWYWx1ZShwcm9wZXJ0eSk7CisgICAgICAgIHZhciBjb21w
dXRlZFN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoZWxlbWVudElkKSwgbnVsbCkuZ2V0UHJvcGVydHlDU1NWYWx1ZShwcm9wZXJ0eSk7CiAgICAg
ICAgIGNvbXB1dGVkVmFsdWUgPSBjb21wdXRlZFN0eWxlLmdldEZsb2F0VmFsdWUoQ1NTUHJpbWl0
aXZlVmFsdWUuQ1NTX05VTUJFUik7CiAgICAgICAgIGlmIChjb21wYXJlRWxlbWVudHMpIHsKLSAg
ICAgICAgICAgIHZhciBjb21wdXRlZFN0eWxlMiA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJZDIpKS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKHBy
b3BlcnR5KTsKKyAgICAgICAgICAgIHZhciBjb21wdXRlZFN0eWxlMiA9IHdpbmRvdy5nZXRDb21w
dXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJZDIpLCBudWxsKS5nZXRQ
cm9wZXJ0eUNTU1ZhbHVlKHByb3BlcnR5KTsKICAgICAgICAgICAgIGNvbXB1dGVkVmFsdWUyID0g
Y29tcHV0ZWRTdHlsZTIuZ2V0RmxvYXRWYWx1ZShDU1NQcmltaXRpdmVWYWx1ZS5DU1NfTlVNQkVS
KTsKICAgICAgICAgICAgIHBhc3MgPSBpc0Nsb3NlRW5vdWdoKGNvbXB1dGVkVmFsdWUsIGNvbXB1
dGVkVmFsdWUyLCB0b2xlcmFuY2UpOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9hbmltYXRpb25zL2NoYW5nZS1vbmUtYW5pbS5odG1sIGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9u
cy9jaGFuZ2Utb25lLWFuaW0uaHRtbAppbmRleCBiNThiYjE3Li40NWEwODg1IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2NoYW5nZS1vbmUtYW5pbS5odG1sCisrKyBiL0xheW91
dFRlc3RzL2FuaW1hdGlvbnMvY2hhbmdlLW9uZS1hbmltLmh0bWwKQEAgLTM5LDcgKzM5LDcgQEAK
ICAgICAgICAgZnVuY3Rpb24gcmVtb3ZlQW5pbSgpCiAgICAgICAgIHsKICAgICAgICAgICAgIHZh
ciB0YXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYm94Iik7Ci0gICAgICAgICAgICB2
YXIgbGVmdCA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRhcmdldCkubGVmdDsKKyAgICAgICAg
ICAgIHZhciBsZWZ0ID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUodGFyZ2V0LCBudWxsKS5sZWZ0
OwogICAgICAgICAgICAgdGFyZ2V0LnN0eWxlLndlYmtpdEFuaW1hdGlvbk5hbWUgPSAidmVydCI7
CiAgICAgICAgICAgICB0YXJnZXQuc3R5bGUubGVmdCA9IGxlZnQ7CiAgICAgICAgIH0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvY29tYm8tdHJhbnNmb3JtLXRyYW5zbGF0ZStz
Y2FsZS5odG1sIGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9jb21iby10cmFuc2Zvcm0tdHJhbnNs
YXRlK3NjYWxlLmh0bWwKaW5kZXggNmE3OGEzMS4uYzQ5NzU1MiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvYW5pbWF0aW9ucy9jb21iby10cmFuc2Zvcm0tdHJhbnNsYXRlK3NjYWxlLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9jb21iby10cmFuc2Zvcm0tdHJhbnNsYXRlK3NjYWxl
Lmh0bWwKQEAgLTQyLDcgKzQyLDcgQEAKICAgICAKICAgICBmdW5jdGlvbiBzbmFwc2hvdCh3aGlj
aCkKICAgICB7Ci0gICAgICAgIHZhciB0ID0gbmV3IFdlYktpdENTU01hdHJpeCh3aW5kb3cuZ2V0
Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYm94JykpLndlYmtpdFRyYW5z
Zm9ybSk7CisgICAgICAgIHZhciB0ID0gbmV3IFdlYktpdENTU01hdHJpeCh3aW5kb3cuZ2V0Q29t
cHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYm94JyksIG51bGwpLndlYmtpdFRy
YW5zZm9ybSk7CiAgICAgICAgIGZvciAoaSA9IDA7IGkgPCA2OyArK2kpIHsKICAgICAgICAgICAg
IGlmICghaXNFcXVhbCh0W3Byb3BbaV1dLCBleHBlY3RlZFt3aGljaF1baV0sIHRvbGVyYW5jZVtp
XSkpCiAgICAgICAgICAgICAgICAgcmVzdWx0ICs9ICJGQUlMKCciK3Byb3BbaV0rIicgd2FzOiIr
dFtwcm9wW2ldXSsiLCBleHBlY3RlZDoiK2V4cGVjdGVkW3doaWNoXVtpXSsiKSI7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2NvbXB1dGVkLXN0eWxlLmh0bWwgYi9MYXlvdXRU
ZXN0cy9hbmltYXRpb25zL2NvbXB1dGVkLXN0eWxlLmh0bWwKaW5kZXggODljOGVlZC4uNGU4MjA1
NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9jb21wdXRlZC1zdHlsZS5odG1s
CisrKyBiL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvY29tcHV0ZWQtc3R5bGUuaHRtbApAQCAtNTMs
OCArNTMsOCBAQCBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyBjb21wdXRlZCBzdHlsZSB2YWx1ZXMg
ZnJvbSBhbmltYXRpb24gcHJvcGVydGllcy4iKTsKIHZhciB0ZXN0MSA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJ0ZXN0MSIpOwogdmFyIHRlc3QyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
InRlc3QyIik7CiAKLXZhciB0ZXN0MVN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUodGVz
dDEpOwotdmFyIHRlc3QyU3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0ZXN0Mik7Cit2
YXIgdGVzdDFTdHlsZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRlc3QxLCBudWxsKTsKK3Zh
ciB0ZXN0MlN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUodGVzdDIsIG51bGwpOwogCiBz
aG91bGRCZSgidGVzdDFTdHlsZS53ZWJraXRBbmltYXRpb25OYW1lIiwgIidhbmltMSciKTsKIHNo
b3VsZEJlKCJ0ZXN0MlN0eWxlLndlYmtpdEFuaW1hdGlvbk5hbWUiLCAiJ2FuaW0yLCBhbmltMyci
KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvZmlsbC1tb2RlLXJlbW92ZWQu
aHRtbCBiL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvZmlsbC1tb2RlLXJlbW92ZWQuaHRtbAppbmRl
eCA2NjM1NDY0Li5jN2I1N2NjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2Zp
bGwtbW9kZS1yZW1vdmVkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9maWxsLW1v
ZGUtcmVtb3ZlZC5odG1sCkBAIC02Nyw3ICs2Nyw3IEBACiAgICAgICAgIGZvciAodmFyIGk9MDsg
aSA8IGV4cGVjdGVkRW5kVmFsdWVzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgICB2YXIgZWwg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChleHBlY3RlZEVuZFZhbHVlc1tpXS5pZCk7CiAgICAg
ICAgICAgICB2YXIgZXhwZWN0ZWRWYWx1ZSA9IGV4cGVjdGVkRW5kVmFsdWVzW2ldLnZhbHVlOwot
ICAgICAgICAgICAgdmFyIHJlYWxWYWx1ZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsKS5n
ZXRQcm9wZXJ0eUNTU1ZhbHVlKCJsZWZ0IikuZ2V0RmxvYXRWYWx1ZShDU1NQcmltaXRpdmVWYWx1
ZS5DU1NfTlVNQkVSKTsKKyAgICAgICAgICAgIHZhciByZWFsVmFsdWUgPSB3aW5kb3cuZ2V0Q29t
cHV0ZWRTdHlsZShlbCwgbnVsbCkuZ2V0UHJvcGVydHlDU1NWYWx1ZSgibGVmdCIpLmdldEZsb2F0
VmFsdWUoQ1NTUHJpbWl0aXZlVmFsdWUuQ1NTX05VTUJFUik7CiAgICAgICAgICAgICBpZiAoTWF0
aC5hYnMoZXhwZWN0ZWRWYWx1ZSAtIHJlYWxWYWx1ZSkgPCA1KSB7CiAgICAgICAgICAgICAgIHJl
c3VsdCArPSAiUEFTUyI7CiAgICAgICAgICAgICB9IGVsc2UgewpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvYW5pbWF0aW9ucy9maWxsLW1vZGUtdHJhbnNmb3JtLmh0bWwgYi9MYXlvdXRUZXN0cy9h
bmltYXRpb25zL2ZpbGwtbW9kZS10cmFuc2Zvcm0uaHRtbAppbmRleCAxYWY4MWUwLi4wN2NjNWE5
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2ZpbGwtbW9kZS10cmFuc2Zvcm0u
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2ZpbGwtbW9kZS10cmFuc2Zvcm0uaHRt
bApAQCAtNzUsNyArNzUsNyBAQAogICAgICAgICBmb3IgKHZhciBpPTA7IGkgPCBleHBlY3RlZFZh
bHVlcy5sZW5ndGg7IGkrKykgewogICAgICAgICAgICAgdmFyIGVsID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoZXhwZWN0ZWRWYWx1ZXNbaV0uaWQpOwogICAgICAgICAgICAgdmFyIGV4cGVjdGVk
VmFsdWUgPSBleHBlY3RlZFZhbHVlc1tpXS5lbmQ7Ci0gICAgICAgICAgICB2YXIgY29tcHV0ZWRW
YWx1ZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsKS53ZWJraXRUcmFuc2Zvcm07CisgICAg
ICAgICAgICB2YXIgY29tcHV0ZWRWYWx1ZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsLCBu
dWxsKS53ZWJraXRUcmFuc2Zvcm07CiAgICAgICAgICAgICB2YXIgcmVhbFZhbHVlID0gcGFyc2VG
bG9hdChjb21wdXRlZFZhbHVlLnNwbGl0KCIoIilbMV0uc3BsaXQoIiwiKVs0XSk7CiAgICAgICAg
ICAgICBpZiAoTWF0aC5hYnMoZXhwZWN0ZWRWYWx1ZSAtIHJlYWxWYWx1ZSkgPCBhbGxvd2FuY2Up
IHsKICAgICAgICAgICAgICAgcmVzdWx0ICs9ICJQQVNTIjsKQEAgLTk0LDcgKzk0LDcgQEAKICAg
ICAgIGZvciAodmFyIGk9MDsgaSA8IGV4cGVjdGVkVmFsdWVzLmxlbmd0aDsgaSsrKSB7CiAgICAg
ICAgICAgdmFyIGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZXhwZWN0ZWRWYWx1ZXNbaV0u
aWQpOwogICAgICAgICAgIHZhciBleHBlY3RlZFZhbHVlID0gZXhwZWN0ZWRWYWx1ZXNbaV0uc3Rh
cnQ7Ci0gICAgICAgICAgdmFyIGNvbXB1dGVkVmFsdWUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHls
ZShlbCkud2Via2l0VHJhbnNmb3JtOworICAgICAgICAgIHZhciBjb21wdXRlZFZhbHVlID0gd2lu
ZG93LmdldENvbXB1dGVkU3R5bGUoZWwsIG51bGwpLndlYmtpdFRyYW5zZm9ybTsKICAgICAgICAg
ICB2YXIgcmVhbFZhbHVlID0gcGFyc2VGbG9hdChjb21wdXRlZFZhbHVlLnNwbGl0KCIoIilbMV0u
c3BsaXQoIiwiKVs0XSk7CiAgICAgICAgICAgaWYgKE1hdGguYWJzKGV4cGVjdGVkVmFsdWUgLSBy
ZWFsVmFsdWUpIDwgYWxsb3dhbmNlKSB7CiAgICAgICAgICAgICByZXN1bHQgKz0gIlBBU1MiOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9maWxsLW1vZGUuaHRtbCBiL0xheW91
dFRlc3RzL2FuaW1hdGlvbnMvZmlsbC1tb2RlLmh0bWwKaW5kZXggNmM3NDFhNS4uZDJlNGIyOSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9maWxsLW1vZGUuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9hbmltYXRpb25zL2ZpbGwtbW9kZS5odG1sCkBAIC03NCw3ICs3NCw3IEBACiAg
ICAgICAgIGZvciAodmFyIGk9MDsgaSA8IGV4cGVjdGVkVmFsdWVzLmxlbmd0aDsgaSsrKSB7CiAg
ICAgICAgICAgICB2YXIgZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChleHBlY3RlZFZhbHVl
c1tpXS5pZCk7CiAgICAgICAgICAgICB2YXIgZXhwZWN0ZWRWYWx1ZSA9IGV4cGVjdGVkVmFsdWVz
W2ldLmVuZDsKLSAgICAgICAgICAgIHZhciByZWFsVmFsdWUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRT
dHlsZShlbCkuZ2V0UHJvcGVydHlDU1NWYWx1ZSgibGVmdCIpLmdldEZsb2F0VmFsdWUoQ1NTUHJp
bWl0aXZlVmFsdWUuQ1NTX05VTUJFUik7CisgICAgICAgICAgICB2YXIgcmVhbFZhbHVlID0gd2lu
ZG93LmdldENvbXB1dGVkU3R5bGUoZWwsIG51bGwpLmdldFByb3BlcnR5Q1NTVmFsdWUoImxlZnQi
KS5nZXRGbG9hdFZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlLkNTU19OVU1CRVIpOwogICAgICAgICAg
ICAgaWYgKE1hdGguYWJzKGV4cGVjdGVkVmFsdWUgLSByZWFsVmFsdWUpIDwgYWxsb3dhbmNlKSB7
CiAgICAgICAgICAgICAgIHJlc3VsdCArPSAiUEFTUyI7CiAgICAgICAgICAgICB9IGVsc2UgewpA
QCAtOTIsNyArOTIsNyBAQAogICAgICAgICBmb3IgKHZhciBpPTA7IGkgPCBleHBlY3RlZFZhbHVl
cy5sZW5ndGg7IGkrKykgewogICAgICAgICAgICAgdmFyIGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoZXhwZWN0ZWRWYWx1ZXNbaV0uaWQpOwogICAgICAgICAgICAgdmFyIGV4cGVjdGVkVmFs
dWUgPSBleHBlY3RlZFZhbHVlc1tpXS5zdGFydDsKLSAgICAgICAgICAgIHZhciByZWFsVmFsdWUg
PSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbCkuZ2V0UHJvcGVydHlDU1NWYWx1ZSgibGVmdCIp
LmdldEZsb2F0VmFsdWUoQ1NTUHJpbWl0aXZlVmFsdWUuQ1NTX05VTUJFUik7CisgICAgICAgICAg
ICB2YXIgcmVhbFZhbHVlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWwsIG51bGwpLmdldFBy
b3BlcnR5Q1NTVmFsdWUoImxlZnQiKS5nZXRGbG9hdFZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlLkNT
U19OVU1CRVIpOwogICAgICAgICAgICAgaWYgKE1hdGguYWJzKGV4cGVjdGVkVmFsdWUgLSByZWFs
VmFsdWUpIDwgYWxsb3dhbmNlKSB7CiAgICAgICAgICAgICAgIHJlc3VsdCArPSAiUEFTUyI7CiAg
ICAgICAgICAgICB9IGVsc2UgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9m
aWxsLXVuc2V0LXByb3BlcnRpZXMuaHRtbCBiL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvZmlsbC11
bnNldC1wcm9wZXJ0aWVzLmh0bWwKaW5kZXggYTQ5ZGVjYS4uOTk4MzdmZiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9maWxsLXVuc2V0LXByb3BlcnRpZXMuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9hbmltYXRpb25zL2ZpbGwtdW5zZXQtcHJvcGVydGllcy5odG1sCkBAIC00MCw3
ICs0MCw3IEBACiAgICAgewogICAgICAgICB2YXIgYm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ2JveCcpOwogICAgICAgICB2YXIgcmVzdWx0c1N0cmluZyA9ICIiOwotICAgICAgICB2YXIg
Ym94U3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShib3gpOworICAgICAgICB2YXIgYm94
U3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShib3gsIG51bGwpOwogICAgICAgICAKICAg
ICAgICAga0V4cGVjdGVkUmVzdWx0cy5mb3JFYWNoKGZ1bmN0aW9uKGN1ckl0ZW0pIHsKICAgICAg
ICAgICB2YXIgY29tcHV0ZWRWYWx1ZSA9IGJveFN0eWxlW2N1ckl0ZW0ucHJvcGVydHldOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9mb250LXNpemUtdXNpbmctZW1zLmh0bWwt
ZGlzYWJsZWQgYi9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2ZvbnQtc2l6ZS11c2luZy1lbXMuaHRt
bC1kaXNhYmxlZAppbmRleCAzNThlMmEzLi5iZjIwNzJiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9hbmltYXRpb25zL2ZvbnQtc2l6ZS11c2luZy1lbXMuaHRtbC1kaXNhYmxlZAorKysgYi9MYXlv
dXRUZXN0cy9hbmltYXRpb25zL2ZvbnQtc2l6ZS11c2luZy1lbXMuaHRtbC1kaXNhYmxlZApAQCAt
NDksNyArNDksNyBAQAogICAgICAgICBpZiAocmVzdWx0ICE9ICJQQVNTIikKICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgICAgIAotICAgICAgICB2YXIgZm9udFNpemUgPSBwYXJzZUludCh3
aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYm94JykpLmZv
bnRTaXplKTsKKyAgICAgICAgdmFyIGZvbnRTaXplID0gcGFyc2VJbnQod2luZG93LmdldENvbXB1
dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JveCcpLCBudWxsKS5mb250U2l6ZSk7
CiAgICAgICAgIGlmICghaXNFcXVhbChmb250U2l6ZSwgZXhwZWN0ZWQpKSB7CiAgICAgICAgICAg
ICByZXN1bHQgPSAiRkFJTCh3YXM6Iitmb250U2l6ZSsiLCBleHBlY3RlZDoiK2V4cGVjdGVkKyIp
IjsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY2FudmFzL3BoaWxpcC90ZXN0
cy8yZC5wYXRoLmFyYy5ub25maW5pdGUuaHRtbCBiL0xheW91dFRlc3RzL2NhbnZhcy9waGlsaXAv
dGVzdHMvMmQucGF0aC5hcmMubm9uZmluaXRlLmh0bWwKaW5kZXggNDU3ZmUxYi4uMzY0NmIwMyAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5wYXRoLmFyYy5u
b25maW5pdGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnBh
dGguYXJjLm5vbmZpbml0ZS5odG1sCkBAIC0yOSwyOSArMjksMjkgQEAgY3R4LmZpbGxTdHlsZSA9
ICcjZjAwJzsKIGN0eC5maWxsUmVjdCgwLCAwLCAxMDAsIDUwKTsKIGN0eC5tb3ZlVG8oMCwgMCk7
CiBjdHgubGluZVRvKDEwMCwgMCk7Ci1jdHguYXJjKEluZmluaXR5LCA1MCwgMCwgMipNYXRoLlBJ
LCB0cnVlKTsKLWN0eC5hcmMoLUluZmluaXR5LCA1MCwgMCwgMipNYXRoLlBJLCB0cnVlKTsKLWN0
eC5hcmMoTmFOLCA1MCwgMCwgMipNYXRoLlBJLCB0cnVlKTsKLWN0eC5hcmMoMCwgSW5maW5pdHks
IDAsIDIqTWF0aC5QSSwgdHJ1ZSk7Ci1jdHguYXJjKDAsIC1JbmZpbml0eSwgMCwgMipNYXRoLlBJ
LCB0cnVlKTsKLWN0eC5hcmMoMCwgTmFOLCAwLCAyKk1hdGguUEksIHRydWUpOwotY3R4LmFyYygw
LCA1MCwgSW5maW5pdHksIDIqTWF0aC5QSSwgdHJ1ZSk7Ci1jdHguYXJjKDAsIDUwLCAtSW5maW5p
dHksIDIqTWF0aC5QSSwgdHJ1ZSk7Ci1jdHguYXJjKDAsIDUwLCBOYU4sIDIqTWF0aC5QSSwgdHJ1
ZSk7Ci1jdHguYXJjKDAsIDUwLCAwLCBJbmZpbml0eSwgdHJ1ZSk7Ci1jdHguYXJjKDAsIDUwLCAw
LCAtSW5maW5pdHksIHRydWUpOwotY3R4LmFyYygwLCA1MCwgMCwgTmFOLCB0cnVlKTsKLWN0eC5h
cmMoSW5maW5pdHksIEluZmluaXR5LCAwLCAyKk1hdGguUEksIHRydWUpOwotY3R4LmFyYyhJbmZp
bml0eSwgSW5maW5pdHksIEluZmluaXR5LCAyKk1hdGguUEksIHRydWUpOwotY3R4LmFyYyhJbmZp
bml0eSwgSW5maW5pdHksIEluZmluaXR5LCBJbmZpbml0eSwgdHJ1ZSk7Ci1jdHguYXJjKEluZmlu
aXR5LCBJbmZpbml0eSwgMCwgSW5maW5pdHksIHRydWUpOwotY3R4LmFyYyhJbmZpbml0eSwgNTAs
IEluZmluaXR5LCAyKk1hdGguUEksIHRydWUpOwotY3R4LmFyYyhJbmZpbml0eSwgNTAsIEluZmlu
aXR5LCBJbmZpbml0eSwgdHJ1ZSk7Ci1jdHguYXJjKEluZmluaXR5LCA1MCwgMCwgSW5maW5pdHks
IHRydWUpOwotY3R4LmFyYygwLCBJbmZpbml0eSwgSW5maW5pdHksIDIqTWF0aC5QSSwgdHJ1ZSk7
Ci1jdHguYXJjKDAsIEluZmluaXR5LCBJbmZpbml0eSwgSW5maW5pdHksIHRydWUpOwotY3R4LmFy
YygwLCBJbmZpbml0eSwgMCwgSW5maW5pdHksIHRydWUpOwotY3R4LmFyYygwLCA1MCwgSW5maW5p
dHksIEluZmluaXR5LCB0cnVlKTsKK2N0eC5hcmMoSW5maW5pdHksIDUwLCAxMCwgMCwgMipNYXRo
LlBJLCB0cnVlKTsKK2N0eC5hcmMoLUluZmluaXR5LCA1MCwgMTAsIDAsIDIqTWF0aC5QSSwgdHJ1
ZSk7CitjdHguYXJjKE5hTiwgNTAsIDEwLCAwLCAyKk1hdGguUEksIHRydWUpOworY3R4LmFyYygw
LCBJbmZpbml0eSwgMTAsIDAsIDIqTWF0aC5QSSwgdHJ1ZSk7CitjdHguYXJjKDAsIC1JbmZpbml0
eSwgMTAsIDAsIDIqTWF0aC5QSSwgdHJ1ZSk7CitjdHguYXJjKDAsIE5hTiwgMCwgMTAsIDIqTWF0
aC5QSSwgdHJ1ZSk7CitjdHguYXJjKDAsIDUwLCAxMCwgSW5maW5pdHksIDIqTWF0aC5QSSwgdHJ1
ZSk7CitjdHguYXJjKDAsIDUwLCAxMCwgLUluZmluaXR5LCAyKk1hdGguUEksIHRydWUpOworY3R4
LmFyYygwLCA1MCwgMTAsIE5hTiwgMipNYXRoLlBJLCB0cnVlKTsKK2N0eC5hcmMoMCwgNTAsIDEw
LCAwLCBJbmZpbml0eSwgdHJ1ZSk7CitjdHguYXJjKDAsIDUwLCAxMCwgMCwgLUluZmluaXR5LCB0
cnVlKTsKK2N0eC5hcmMoMCwgNTAsIDEwLCAwLCBOYU4sIHRydWUpOworY3R4LmFyYyhJbmZpbml0
eSwgSW5maW5pdHksIDEwLCAwLCAyKk1hdGguUEksIHRydWUpOworY3R4LmFyYyhJbmZpbml0eSwg
SW5maW5pdHksIDEwLCBJbmZpbml0eSwgMipNYXRoLlBJLCB0cnVlKTsKK2N0eC5hcmMoSW5maW5p
dHksIEluZmluaXR5LCAxMCwgSW5maW5pdHksIEluZmluaXR5LCB0cnVlKTsKK2N0eC5hcmMoSW5m
aW5pdHksIEluZmluaXR5LCAxMCwgMCwgSW5maW5pdHksIHRydWUpOworY3R4LmFyYyhJbmZpbml0
eSwgNTAsIDEwLCBJbmZpbml0eSwgMipNYXRoLlBJLCB0cnVlKTsKK2N0eC5hcmMoSW5maW5pdHks
IDUwLCAxMCwgSW5maW5pdHksIEluZmluaXR5LCB0cnVlKTsKK2N0eC5hcmMoSW5maW5pdHksIDUw
LCAxMCwgMCwgSW5maW5pdHksIHRydWUpOworY3R4LmFyYygwLCBJbmZpbml0eSwgMTAsIEluZmlu
aXR5LCAyKk1hdGguUEksIHRydWUpOworY3R4LmFyYygwLCBJbmZpbml0eSwgMTAsIEluZmluaXR5
LCBJbmZpbml0eSwgdHJ1ZSk7CitjdHguYXJjKDAsIEluZmluaXR5LCAxMCwgMCwgSW5maW5pdHks
IHRydWUpOworY3R4LmFyYygwLCA1MCwgMTAsIEluZmluaXR5LCBJbmZpbml0eSwgdHJ1ZSk7CiBj
dHgubGluZVRvKDEwMCwgNTApOwogY3R4LmxpbmVUbygwLCA1MCk7CiBjdHguZmlsbFN0eWxlID0g
JyMwZjAnOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMS91bml0cy96ZXJvLWR1cmF0aW9u
LXdpdGhvdXQtdW5pdHMuaHRtbCBiL0xheW91dFRlc3RzL2NzczEvdW5pdHMvemVyby1kdXJhdGlv
bi13aXRob3V0LXVuaXRzLmh0bWwKaW5kZXggOTczYzVkOC4uZGQzZmYzOCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvY3NzMS91bml0cy96ZXJvLWR1cmF0aW9uLXdpdGhvdXQtdW5pdHMuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9jc3MxL3VuaXRzL3plcm8tZHVyYXRpb24td2l0aG91dC11bml0cy5o
dG1sCkBAIC0yNSw3ICsyNSw3IEBACiAgICAgZnVuY3Rpb24gdGVzdCgpCiAgICAgewogICAgICAg
ICB2YXIgYm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JveCcpOwotICAgICAgICB2YXIg
ZHVyID0gcGFyc2VJbnQod2luZG93LmdldENvbXB1dGVkU3R5bGUoYm94KS53ZWJraXRUcmFuc2l0
aW9uRHVyYXRpb24pOworICAgICAgICB2YXIgZHVyID0gcGFyc2VJbnQod2luZG93LmdldENvbXB1
dGVkU3R5bGUoYm94LCBudWxsKS53ZWJraXRUcmFuc2l0aW9uRHVyYXRpb24pOwogICAgICAgICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0JykuaW5uZXJIVE1MID0gKGR1ciA9PSAwKSA/
ICJQQVNTIiA6ICJGQUlMIjsKICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikKICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvZGVsZXRpbmcvNTE1NjgwMS5odG1sIGIvTGF5b3V0
VGVzdHMvZWRpdGluZy9kZWxldGluZy81MTU2ODAxLmh0bWwKaW5kZXggMTEzOTQzNS4uZjAxOGRk
YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9kZWxldGluZy81MTU2ODAxLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9kZWxldGluZy81MTU2ODAxLmh0bWwKQEAgLTE4LDcg
KzE4LDcgQEAgZnVuY3Rpb24gcmVtb3ZlSGFuZGxlcigpIHsKICAgICByZW1vdmVtZS5wYXJlbnRO
b2RlLnJlbW92ZUNoaWxkKHJlbW92ZW1lKTsKIH0KIAotZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ImZvbyIpLmFkZEV2ZW50TGlzdGVuZXIoIkRPTU5vZGVSZW1vdmVkIiwgcmVtb3ZlSGFuZGxlcik7
Citkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZm9vIikuYWRkRXZlbnRMaXN0ZW5lcigiRE9NTm9k
ZVJlbW92ZWQiLCByZW1vdmVIYW5kbGVyLCBmYWxzZSk7CiB2YXIgc2VsID0gd2luZG93LmdldFNl
bGVjdGlvbigpOwogc2VsLnNldEJhc2VBbmRFeHRlbnQoIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdmb28nKSwgMCwgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZvbycpLCAxICk7CiBkb2N1bWVu
dC5leGVjQ29tbWFuZCgiRGVsZXRlIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5n
L2V4ZWNDb21tYW5kLzUxMjA1OTEuaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1h
bmQvNTEyMDU5MS5odG1sCmluZGV4IGEyOTZmY2MuLjE0YWY5YTcgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvNTEyMDU5MS5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2VkaXRpbmcvZXhlY0NvbW1hbmQvNTEyMDU5MS5odG1sCkBAIC03LDcgKzcsNyBAQCBpZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKQogICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBB
c1RleHQoKTsKIAogdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkaXYiKTsKLWRp
di5hZGRFdmVudExpc3RlbmVyKCdET01TdWJ0cmVlTW9kaWZpZWQnLCBmdW5jdGlvbiAoKSB7O30p
OworZGl2LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTVN1YnRyZWVNb2RpZmllZCcsIGZ1bmN0aW9uICgp
IHs7fSwgZmFsc2UpOwogZGl2LmZvY3VzKCk7CiBkb2N1bWVudC5leGVjQ29tbWFuZCgiU2VsZWN0
QWxsIik7CiBkb2N1bWVudC5leGVjQ29tbWFuZCgiQ3JlYXRlTGluayIsIGZhbHNlLCAiIyIpOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkLzQyNDIyOTMuaHRtbCBi
L0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC80MjQyMjkzLmh0bWwKaW5kZXggZDBkZWZh
NC4uNzE5NDk2OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkLzQy
NDIyOTMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvNDI0MjI5My5o
dG1sCkBAIC05LDkgKzksOSBAQCBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQogPGRp
diBpZD0icGFzdGUiIGNvbnRlbnRlZGl0YWJsZT0idHJ1ZSI+PC9kaXY+CiAKIDxzY3JpcHQ+Ci13
aW5kb3cuZ2V0U2VsZWN0aW9uKCkuc2V0UG9zaXRpb24oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ImNvcHkiKSk7Cit3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuc2V0UG9zaXRpb24oZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoImNvcHkiKSwgMCk7CiBkb2N1bWVudC5leGVjQ29tbWFuZCgiU2VsZWN0QWxs
Iik7CiBkb2N1bWVudC5leGVjQ29tbWFuZCgiQ29weSIpOwotd2luZG93LmdldFNlbGVjdGlvbigp
LnNldFBvc2l0aW9uKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwYXN0ZSIpKTsKK3dpbmRvdy5n
ZXRTZWxlY3Rpb24oKS5zZXRQb3NpdGlvbihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGFzdGUi
KSwgMCk7CiBkb2N1bWVudC5leGVjQ29tbWFuZCgiUGFzdGUiKTsKLTwvc2NyaXB0PgpcIE5vIG5l
d2xpbmUgYXQgZW5kIG9mIGZpbGUKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZWRpdGluZy9wYXN0ZWJvYXJkL3N0eWxlZC1lbGVtZW50LW1hcmt1cC5odG1sIGIvTGF5b3V0VGVz
dHMvZWRpdGluZy9wYXN0ZWJvYXJkL3N0eWxlZC1lbGVtZW50LW1hcmt1cC5odG1sCmluZGV4IGY4
NjZmNDYuLjI2ODBhMzEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2Fy
ZC9zdHlsZWQtZWxlbWVudC1tYXJrdXAuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bh
c3RlYm9hcmQvc3R5bGVkLWVsZW1lbnQtbWFya3VwLmh0bWwKQEAgLTgsOSArOCw5IEBAIGlmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiA8ZGl2IGNvbnRlbnRlZGl0YWJsZT0idHJ1ZSIg
aWQ9InBhc3RlIj48L2Rpdj4KIAogPHNjcmlwdD47Ci13aW5kb3cuZ2V0U2VsZWN0aW9uKCkuc2V0
UG9zaXRpb24oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvcHkiKSk7Cit3aW5kb3cuZ2V0U2Vs
ZWN0aW9uKCkuc2V0UG9zaXRpb24oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvcHkiKSwgMCk7
CiBkb2N1bWVudC5leGVjQ29tbWFuZCgiU2VsZWN0QWxsIik7CiBkb2N1bWVudC5leGVjQ29tbWFu
ZCgiQ29weSIpOwotd2luZG93LmdldFNlbGVjdGlvbigpLnNldFBvc2l0aW9uKGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJwYXN0ZSIpKTsKK3dpbmRvdy5nZXRTZWxlY3Rpb24oKS5zZXRQb3NpdGlv
bihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGFzdGUiKSwgMCk7CiBkb2N1bWVudC5leGVjQ29t
bWFuZCgiUGFzdGUiKTsKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGlu
Zy9zZWxlY3Rpb24vRE9NU2VsZWN0aW9uLURvY3VtZW50VHlwZS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9ET01TZWxlY3Rpb24tRG9jdW1lbnRUeXBlLWV4cGVj
dGVkLnR4dAppbmRleCAyZTk4NjIzLi4zYzFhZDM0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9l
ZGl0aW5nL3NlbGVjdGlvbi9ET01TZWxlY3Rpb24tRG9jdW1lbnRUeXBlLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9ET01TZWxlY3Rpb24tRG9jdW1lbnRU
eXBlLWV4cGVjdGVkLnR4dApAQCAtMywxMyArMywxNCBAQCBUZXN0IHRvIGNoZWNrIGlmIHNldEJh
c2VBbmRFeHRlbnQgZ3VhcmQgbm9kZSB3aXRoIG51bGwgb3duZXIgZG9jdW1lbnQgKEJ1ZyAzMTY4
MAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCiAKK1BBU1Mgc2VsLnNldEJhc2VBbmRFeHRl
bnQoZG9jVHlwZSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVu
dHMuCiBQQVNTIHNlbC5hbmNob3JOb2RlIGlzIG51bGwKIFBBU1Mgc2VsLmFuY2hvck5vZGUgaXMg
bnVsbAogUEFTUyBzZWwuYW5jaG9yTm9kZSBpcyBudWxsCiBQQVNTIHNlbC5hbmNob3JOb2RlIGlz
IG51bGwKIFBBU1Mgc2VsLmFuY2hvck5vZGUgaXMgbnVsbAogUEFTUyBzZWwuYW5jaG9yTm9kZSBp
cyBudWxsCi1QQVNTIHNlbC5jb250YWluc05vZGUoZG9jVHlwZSkgaXMgZmFsc2UKK1BBU1Mgc2Vs
LmNvbnRhaW5zTm9kZShkb2NUeXBlLCBmYWxzZSkgaXMgZmFsc2UKIFBBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZWRpdGluZy9zZWxlY3Rpb24vZXh0ZW5kLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2VkaXRp
bmcvc2VsZWN0aW9uL2V4dGVuZC1leHBlY3RlZC50eHQKaW5kZXggMGE0NWNmZS4uYTI5ZjkzNSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZXh0ZW5kLWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9leHRlbmQtZXhwZWN0ZWQu
dHh0CkBAIC00LDUgKzQsNSBAQCBTdWNjZXNzOiBzLmV4dGVuZChzcGFuMi5maXJzdENoaWxkLCA0
KSByYWlzZWQgRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aQogU3VjY2Vzczogcy5l
eHRlbmQoc3BhbjIuZmlyc3RDaGlsZCwgLTEpIHJhaXNlZCBFcnJvcjogSU5ERVhfU0laRV9FUlI6
IERPTSBFeGNlcHRpb24gMS4KIFN1Y2Nlc3M6IHdpbmRvdy5nZXRTZWxlY3Rpb24oKSBpcyBiLgog
U3VjY2Vzczogd2luZG93LmdldFNlbGVjdGlvbigpIGlzIGFyYmF6LgotU3VjY2Vzczogcy5leHRl
bmQoKSByYWlzZWQgRXJyb3I6IFRZUEVfTUlTTUFUQ0hfRVJSOiBET00gRXhjZXB0aW9uIDE3Lgor
U3VjY2Vzczogcy5leHRlbmQoKSByYWlzZWQgVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50
cy4KIFN1Y2Nlc3M6IHMuZXh0ZW5kKG51bGwsIDApIHJhaXNlZCBFcnJvcjogVFlQRV9NSVNNQVRD
SF9FUlI6IERPTSBFeGNlcHRpb24gMTcuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5n
L3NlbGVjdGlvbi9zY3JpcHQtdGVzdHMvRE9NU2VsZWN0aW9uLURvY3VtZW50VHlwZS5qcyBiL0xh
eW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3NjcmlwdC10ZXN0cy9ET01TZWxlY3Rpb24tRG9j
dW1lbnRUeXBlLmpzCmluZGV4IDc5NTQ1ZGQuLjRiZTFlZGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2VkaXRpbmcvc2VsZWN0aW9uL3NjcmlwdC10ZXN0cy9ET01TZWxlY3Rpb24tRG9jdW1lbnRU
eXBlLmpzCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3NjcmlwdC10ZXN0cy9E
T01TZWxlY3Rpb24tRG9jdW1lbnRUeXBlLmpzCkBAIC0xLDE1ICsxLDE1IEBACiBkZXNjcmlwdGlv
bigiVGVzdCB0byBjaGVjayBpZiBzZXRCYXNlQW5kRXh0ZW50IGd1YXJkIG5vZGUgd2l0aCBudWxs
IG93bmVyIGRvY3VtZW50IChCdWcgMzE2ODApIik7CiAKIHZhciBzZWwgPSB3aW5kb3cuZ2V0U2Vs
ZWN0aW9uKCk7Ci12YXIgZG9jVHlwZSA9IGRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZURv
Y3VtZW50VHlwZSgnYycpOwordmFyIGRvY1R5cGUgPSBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5j
cmVhdGVEb2N1bWVudFR5cGUoJ2MnLCBudWxsLCBudWxsKTsKIAotc2VsLnNldEJhc2VBbmRFeHRl
bnQoZG9jVHlwZSk7CitzaG91bGRUaHJvdygic2VsLnNldEJhc2VBbmRFeHRlbnQoZG9jVHlwZSki
KTsKIHNob3VsZEJlTnVsbCgic2VsLmFuY2hvck5vZGUiKTsKIAogc2VsLnNldEJhc2VBbmRFeHRl
bnQobnVsbCwgMCwgZG9jVHlwZSwgMCk7CiBzaG91bGRCZU51bGwoInNlbC5hbmNob3JOb2RlIik7
CiAKLXNlbC5jb2xsYXBzZShkb2NUeXBlKTsKK3NlbC5jb2xsYXBzZShkb2NUeXBlLCAwKTsKIHNo
b3VsZEJlTnVsbCgic2VsLmFuY2hvck5vZGUiKTsKIAogc2VsLnNlbGVjdEFsbENoaWxkcmVuKGRv
Y1R5cGUpOwpAQCAtMTgsOSArMTgsOSBAQCBzaG91bGRCZU51bGwoInNlbC5hbmNob3JOb2RlIik7
CiBzZWwuZXh0ZW5kKGRvY1R5cGUsIDApOwogc2hvdWxkQmVOdWxsKCJzZWwuYW5jaG9yTm9kZSIp
OwogCi1zZWwuY29udGFpbnNOb2RlKGRvY1R5cGUpOworc2VsLmNvbnRhaW5zTm9kZShkb2NUeXBl
LCBmYWxzZSk7CiBzaG91bGRCZU51bGwoInNlbC5hbmNob3JOb2RlIik7CiAKLXNob3VsZEJlRmFs
c2UoInNlbC5jb250YWluc05vZGUoZG9jVHlwZSkiKTsKK3Nob3VsZEJlRmFsc2UoInNlbC5jb250
YWluc05vZGUoZG9jVHlwZSwgZmFsc2UpIik7CiAKIHZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0
cnVlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ib3JkZXJzL2JvcmRlci1yYWRpdXMt
cGFyc2luZy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ib3JkZXJzL2JvcmRlci1yYWRpdXMtcGFy
c2luZy5odG1sCmluZGV4IDk4NzQ1OTAuLjI5YzkxN2MgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvYm9yZGVycy9ib3JkZXItcmFkaXVzLXBhcnNpbmcuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2JvcmRlcnMvYm9yZGVyLXJhZGl1cy1wYXJzaW5nLmh0bWwKQEAgLTExLDggKzExLDgg
QEAKIAogICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIp
OwogICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsZW1lbnQpOwotICAgICAgICBl
bGVtZW50LnN0eWxlLnNldFByb3BlcnR5KHByb3BlcnR5LCB2YWx1ZSk7Ci0gICAgICAgIHZhciBj
b21wdXRlZFN0eWxlID0gZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KTsKKyAgICAgICAgZWxlbWVu
dC5zdHlsZS5zZXRQcm9wZXJ0eShwcm9wZXJ0eSwgdmFsdWUsIG51bGwpOworICAgICAgICB2YXIg
Y29tcHV0ZWRTdHlsZSA9IGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwgbnVsbCk7CiAgICAgICAg
IHZhciBwcm9wZXJ0aWVzID0gWyJib3JkZXItdG9wLWxlZnQtcmFkaXVzIiwgImJvcmRlci10b3At
cmlnaHQtcmFkaXVzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgImJvcmRlci1ib3R0b20t
cmlnaHQtcmFkaXVzIiwgImJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXMiXTsKICAgICAgICAgdmFy
IGZhaWxlZCA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvYmFja2dy
b3VuZC1jdXJyZW50Y29sb3IuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2JhY2tncm91bmQt
Y3VycmVudGNvbG9yLmh0bWwKaW5kZXggNTVkOGU1Ny4uYWFjNjUwNCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9jc3MvYmFja2dyb3VuZC1jdXJyZW50Y29sb3IuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2Nzcy9iYWNrZ3JvdW5kLWN1cnJlbnRjb2xvci5odG1sCkBAIC0xNiwxMiAr
MTYsMTIgQEAKICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwogICAg
ICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0d28iKTsKICAgICAgIGRpdi5z
dHlsZS5jb2xvciA9ICJncmVlbiI7Ci0gICAgICBpZiAod2luZG93LmdldENvbXB1dGVkU3R5bGUo
ZGl2KS5iYWNrZ3JvdW5kQ29sb3IgIT0gInJnYigwLCAxMjgsIDApIikgeworICAgICAgaWYgKHdp
bmRvdy5nZXRDb21wdXRlZFN0eWxlKGRpdiwgbnVsbCkuYmFja2dyb3VuZENvbG9yICE9ICJyZ2Io
MCwgMTI4LCAwKSIpIHsKICAgICAgICAgICBsb2coIkZBSUxFRCIpOwogICAgICAgICAgIHJldHVy
bjsKICAgICAgIH0KICAgICAgIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0aHJlZSIp
OwotICAgICAgaWYgKHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRpdikuY29sb3IgIT0gInJnYigw
LCAxMjgsIDApIikgeworICAgICAgaWYgKHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRpdiwgbnVs
bCkuY29sb3IgIT0gInJnYigwLCAxMjgsIDApIikgewogICAgICAgICAgIGxvZygiRkFJTEVEIik7
CiAgICAgICAgICAgcmV0dXJuOwogICAgICAgfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9jc3MvYmFja2dyb3VuZC1wb3NpdGlvbi1pbmhlcml0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L2Nzcy9iYWNrZ3JvdW5kLXBvc2l0aW9uLWluaGVyaXQuaHRtbAppbmRleCBhYzU5N2MxLi43OGVm
YTg4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9iYWNrZ3JvdW5kLXBvc2l0aW9u
LWluaGVyaXQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9iYWNrZ3JvdW5kLXBvc2l0
aW9uLWluaGVyaXQuaHRtbApAQCAtMTAsNyArMTAsNyBAQAogICAgIGlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpCiAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQo
KTsKIAotICAgIHZhciB0YXJnZXRCYWNrZ3JvdW5kUG9zaXRpb24gPSBnZXRDb21wdXRlZFN0eWxl
KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuYmFja2dyb3VuZFBvc2l0aW9uLGNz
c1RleHQ7CisgICAgdmFyIHRhcmdldEJhY2tncm91bmRQb3NpdGlvbiA9IGdldENvbXB1dGVkU3R5
bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpLCBudWxsKS5iYWNrZ3JvdW5kUG9z
aXRpb24sY3NzVGV4dDsKIAogICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQiKS5p
bm5lclRleHQgPSB0YXJnZXRCYWNrZ3JvdW5kUG9zaXRpb24gPT0gIjI1JSA3NSUiID8gIlBBU1Mi
IDogIkZBSUw6IFRoZSBpbmhlcml0ZWQgdmFsdWUgd2FzICIgKyB0YXJnZXRCYWNrZ3JvdW5kUG9z
aXRpb247CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2NoaWxk
LXNlbGVjdG9yLWltcGxpY2l0LXRib2R5Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jaGls
ZC1zZWxlY3Rvci1pbXBsaWNpdC10Ym9keS5odG1sCmluZGV4IDJjZmU1ZjQuLjFlMjU4NDkgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2NoaWxkLXNlbGVjdG9yLWltcGxpY2l0LXRi
b2R5Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY2hpbGQtc2VsZWN0b3ItaW1wbGlj
aXQtdGJvZHkuaHRtbApAQCAtNiw4ICs2LDggQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
ZHVtcEFzVGV4dCgpOwogICAgIHJlc3VsdCA9ICJURVNUIEZBSUxFRCI7Ci0gICAgaWYgKGdldENv
bXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNlbGwxIikpLmZvbnRXZWlnaHQg
PT0gIm5vcm1hbCIpCi0gICAgICAgIGlmIChnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJjZWxsMiIpKS5mb250V2VpZ2h0ID09ICJib2xkIikKKyAgICBpZiAoZ2V0Q29t
cHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2VsbDEiKSwgbnVsbCkuZm9udFdl
aWdodCA9PSAibm9ybWFsIikKKyAgICAgICAgaWYgKGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImNlbGwyIiksIG51bGwpLmZvbnRXZWlnaHQgPT0gImJvbGQiKQogICAg
ICAgICAgICAgcmVzdWx0ID0gIlRFU1QgUEFTU0VEOiBDaGlsZCBydWxlIGRpZCBub3QgYWZmZWN0
IHRoZSB0YWJsZS4iOwogICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQiKS5maXJz
dENoaWxkLmRhdGEgPSByZXN1bHQ7CiB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nz
cy9keW5hbWljLXBzZXVkby1jbGFzcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Nz
cy9keW5hbWljLXBzZXVkby1jbGFzcy1leHBlY3RlZC50eHQKaW5kZXggYWMwNTJlMy4uMmQzMGQz
ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZHluYW1pYy1wc2V1ZG8tY2xhc3Mt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2R5bmFtaWMtcHNldWRvLWNs
YXNzLWV4cGVjdGVkLnR4dApAQCAtMyw3ICszLDcgQEAgVGhpcyB0ZXN0cyBlbGVtZW50cyBhZmZl
Y3RlZCBieSBDU1MgcHNldWRvIGNsYXNzIHNlbGVjdG9ycyBhcmUgdXBkYXRlZCBhZnRlciBhIGQK
IE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCi1QQVNTIGdldENvbXB1dGVkU3R5bGUoZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm9yaWciKSlbImNvbG9yIl0gaXMgInJnYigyNTUsIDAsIDAp
IgotUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvcmlnIikp
WyJjb2xvciJdIGlzICJyZ2IoMCwgMCwgMCkiCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoIm9yaWciKSwgbnVsbClbImNvbG9yIl0gaXMgInJnYigyNTUsIDAs
IDApIgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvcmln
IiksIG51bGwpWyJjb2xvciJdIGlzICJyZ2IoMCwgMCwgMCkiCiBHZW5lcmF0ZWQgY29udGVudC4K
IE9yaWdpbmFsLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZHluYW1pYy1wc2V1
ZG8tY2xhc3MuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2R5bmFtaWMtcHNldWRvLWNsYXNz
Lmh0bWwKaW5kZXggYjgwYWQ2NC4uYmEwYzRhNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9jc3MvZHluYW1pYy1wc2V1ZG8tY2xhc3MuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nz
cy9keW5hbWljLXBzZXVkby1jbGFzcy5odG1sCkBAIC0yMCw5ICsyMCw5IEBAIGZ1bmN0aW9uIG1h
a2VEeW5hbWljQ2hhbmdlcygpIHsKICAgICB1bC5pbnNlcnRCZWZvcmUoeCwgdWwuZmlyc3RDaGls
ZCk7CiB9CiAKLXNob3VsZEJlKCdnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJvcmlnIikpWyJjb2xvciJdJywgJyJyZ2IoMjU1LCAwLCAwKSInKTsKK3Nob3VsZEJlKCdn
ZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvcmlnIiksIG51bGwpWyJj
b2xvciJdJywgJyJyZ2IoMjU1LCAwLCAwKSInKTsKIG1ha2VEeW5hbWljQ2hhbmdlcygpOwotc2hv
dWxkQmUoJ2dldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm9yaWciKSlb
ImNvbG9yIl0nLCAnInJnYigwLCAwLCAwKSInKTsKK3Nob3VsZEJlKCdnZXRDb21wdXRlZFN0eWxl
KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvcmlnIiksIG51bGwpWyJjb2xvciJdJywgJyJyZ2Io
MCwgMCwgMCkiJyk7CiB2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKIDwvc2NyaXB0Pgog
PC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZm9udC1mYW1pbHktYnVp
bHRpbnMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2ZvbnQtZmFtaWx5LWJ1aWx0aW5zLmh0
bWwKaW5kZXggODQ0NTI3NC4uM2FiODg2YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9j
c3MvZm9udC1mYW1pbHktYnVpbHRpbnMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9m
b250LWZhbWlseS1idWlsdGlucy5odG1sCkBAIC0yNiw3ICsyNiw3IEBACiAgICAgICAgICAgICBk
aXYuc2V0QXR0cmlidXRlKCJzdHlsZSIsICJmb250LWZhbWlseTogIiArIGZhbWlseSk7CiAgICAg
ICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRpdik7CiAKLSAgICAgICAgICAgIHZh
ciByZXR1cm5lZEZhbWlseSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRpdikuZm9udEZhbWls
eQorICAgICAgICAgICAgdmFyIHJldHVybmVkRmFtaWx5ID0gd2luZG93LmdldENvbXB1dGVkU3R5
bGUoZGl2LCBudWxsKS5mb250RmFtaWx5CiAgICAgICAgICAgICBpZiAoZmFtaWx5ID09IHJldHVy
bmVkRmFtaWx5KQogICAgICAgICAgICAgICAgIGxvZygiUEFTUzogVGhlIGNvbXB1dGVkIHN0eWxl
IGZvciBhIHNwZWNpZmllZCBmb250LWZhbWlseSBvZiAnIiArIGZhbWlseSArICInIG1hdGNoZWQu
Iik7CiAgICAgICAgICAgICBlbHNlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9n
ZXRDb21wdXRlZFN0eWxlL2NvbXB1dGVkLXN0eWxlLXBhZ2UtYnJlYWstaW5zaWRlLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2dldENvbXB1dGVkU3R5bGUvY29tcHV0ZWQtc3R5
bGUtcGFnZS1icmVhay1pbnNpZGUtZXhwZWN0ZWQudHh0CmluZGV4IGY0NmRkNGEuLjNiN2VkZmUg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2dldENvbXB1dGVkU3R5bGUvY29tcHV0
ZWQtc3R5bGUtcGFnZS1icmVhay1pbnNpZGUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvY3NzL2dldENvbXB1dGVkU3R5bGUvY29tcHV0ZWQtc3R5bGUtcGFnZS1icmVhay1pbnNp
ZGUtZXhwZWN0ZWQudHh0CkBAIC0zLDggKzMsOCBAQCBUZXN0IHRoYXQgcGFnZS1icmVhay1pbnNp
ZGUgcHJvcGVydHkgaXMgbm90IGluaGVyaXRlZAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgog
CiAKLVBBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUocGFyZW50KS5nZXRQcm9wZXJ0eUNTU1Zh
bHVlKCdwYWdlLWJyZWFrLWluc2lkZScpLmdldFN0cmluZ1ZhbHVlKCkgaXMgImF2b2lkIgotUEFT
UyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShjaGlsZCkuZ2V0UHJvcGVydHlDU1NWYWx1ZSgncGFn
ZS1icmVhay1pbnNpZGUnKS5nZXRTdHJpbmdWYWx1ZSgpIGlzICJhdXRvIgorUEFTUyB3aW5kb3cu
Z2V0Q29tcHV0ZWRTdHlsZShwYXJlbnQsIG51bGwpLmdldFByb3BlcnR5Q1NTVmFsdWUoJ3BhZ2Ut
YnJlYWstaW5zaWRlJykuZ2V0U3RyaW5nVmFsdWUoKSBpcyAiYXZvaWQiCitQQVNTIHdpbmRvdy5n
ZXRDb21wdXRlZFN0eWxlKGNoaWxkLCBudWxsKS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKCdwYWdlLWJy
ZWFrLWluc2lkZScpLmdldFN0cmluZ1ZhbHVlKCkgaXMgImF1dG8iCiBQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvY3NzL2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10cmFuc2Zvcm0uaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHls
ZS10cmFuc2Zvcm0uaHRtbAppbmRleCA0NWU2ODY3Li4xOGI4MjcxIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L2Nzcy9nZXRDb21wdXRlZFN0eWxlL2dldENvbXB1dGVkU3R5bGUtdHJhbnNm
b3JtLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9nZXRD
b21wdXRlZFN0eWxlLXRyYW5zZm9ybS5odG1sCkBAIC00NCwxMSArNDQsMTEgQEAKICAgICAgICAg
Ly8gc2V0IG9uZSBvZiBvdXIgdGVzdCB0cmFuc2Zvcm1zCiAgICAgICAgIHRlc3RCb3guc3R5bGUu
d2Via2l0VHJhbnNmb3JtID0gY3VyVGVzdC50cmFuc2Zvcm07CiAgICAgICAgIC8vIHJlYWQgYmFj
ayBjb21wdXRlZCBzdHlsZQotICAgICAgICB2YXIgb2xkVHJhbnNmb3JtID0gd2luZG93LmdldENv
bXB1dGVkU3R5bGUodGVzdEJveCkud2Via2l0VHJhbnNmb3JtOworICAgICAgICB2YXIgb2xkVHJh
bnNmb3JtID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUodGVzdEJveCwgbnVsbCkud2Via2l0VHJh
bnNmb3JtOwogICAgICAgICAvLyBzZXQgdGhhdCBtYXRyaXgoKSBiYWNrIG9uIHRoZSBlbGVtZW50
CiAgICAgICAgIHRlc3RCb3guc3R5bGUud2Via2l0VHJhbnNmb3JtID0gb2xkVHJhbnNmb3JtOwog
ICAgICAgICAvLyByZWFkIGJhY2sgY29tcHV0ZWQgc3R5bGUKLSAgICAgICAgdmFyIGNvbXB1dGVk
VHJhbnNmb3JtID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUodGVzdEJveCkud2Via2l0VHJhbnNm
b3JtOworICAgICAgICB2YXIgY29tcHV0ZWRUcmFuc2Zvcm0gPSB3aW5kb3cuZ2V0Q29tcHV0ZWRT
dHlsZSh0ZXN0Qm94LCBudWxsKS53ZWJraXRUcmFuc2Zvcm07CiAgICAgICAgIAogICAgICAgICB2
YXIgc3VjY2VzcyA9IChvbGRUcmFuc2Zvcm0gPT0gY29tcHV0ZWRUcmFuc2Zvcm0pOwogICAgICAg
ICB2YXIgcmVzdWx0OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZ2V0Q29tcHV0
ZWRTdHlsZS9wZW5kaW5nLXN0eWxlc2hlZXQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2dl
dENvbXB1dGVkU3R5bGUvcGVuZGluZy1zdHlsZXNoZWV0Lmh0bWwKaW5kZXggZjA3MWY2NS4uMDY5
ODAwYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9w
ZW5kaW5nLXN0eWxlc2hlZXQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9nZXRDb21w
dXRlZFN0eWxlL3BlbmRpbmctc3R5bGVzaGVldC5odG1sCkBAIC05LDYgKzksNiBAQAogICAgIGlm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAgICAgIGxheW91dFRlc3RDb250cm9s
bGVyLmR1bXBBc1RleHQoKTsKIAotICAgIHZhciBjb21wdXRlZFdpZHRoID0gZ2V0Q29tcHV0ZWRT
dHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0IikpLndpZHRoOworICAgIHZhciBj
b21wdXRlZFdpZHRoID0gZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
dGFyZ2V0IiksIG51bGwpLndpZHRoOwogICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1
bHQiKS5pbm5lclRleHQgPSBjb21wdXRlZFdpZHRoID09PSAiMTAwcHgiID8gIlBBU1MiIDogIkZB
SUwiCiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2dldENvbXB1
dGVkU3R5bGUvc2NyaXB0LXRlc3RzL2NvbXB1dGVkLXN0eWxlLXBhZ2UtYnJlYWstaW5zaWRlLmpz
IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9zY3JpcHQtdGVzdHMvY29t
cHV0ZWQtc3R5bGUtcGFnZS1icmVhay1pbnNpZGUuanMKaW5kZXggNDUyZmY0Ni4uMjY0OWI2YSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9zY3JpcHQt
dGVzdHMvY29tcHV0ZWQtc3R5bGUtcGFnZS1icmVhay1pbnNpZGUuanMKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9zY3JpcHQtdGVzdHMvY29tcHV0ZWQtc3R5bGUt
cGFnZS1icmVhay1pbnNpZGUuanMKQEAgLTcsOCArNyw4IEBAIHZhciBjaGlsZCA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogcGFyZW50LmFwcGVuZENoaWxkKGNoaWxkKTsKIGRvY3Vt
ZW50LmJvZHkuYXBwZW5kQ2hpbGQocGFyZW50KTsKIAotc2hvdWxkQmUoIndpbmRvdy5nZXRDb21w
dXRlZFN0eWxlKHBhcmVudCkuZ2V0UHJvcGVydHlDU1NWYWx1ZSgncGFnZS1icmVhay1pbnNpZGUn
KS5nZXRTdHJpbmdWYWx1ZSgpIiwgJyJhdm9pZCInKTsKLXNob3VsZEJlKCJ3aW5kb3cuZ2V0Q29t
cHV0ZWRTdHlsZShjaGlsZCkuZ2V0UHJvcGVydHlDU1NWYWx1ZSgncGFnZS1icmVhay1pbnNpZGUn
KS5nZXRTdHJpbmdWYWx1ZSgpIiwgJyJhdXRvIicpOworc2hvdWxkQmUoIndpbmRvdy5nZXRDb21w
dXRlZFN0eWxlKHBhcmVudCwgbnVsbCkuZ2V0UHJvcGVydHlDU1NWYWx1ZSgncGFnZS1icmVhay1p
bnNpZGUnKS5nZXRTdHJpbmdWYWx1ZSgpIiwgJyJhdm9pZCInKTsKK3Nob3VsZEJlKCJ3aW5kb3cu
Z2V0Q29tcHV0ZWRTdHlsZShjaGlsZCwgbnVsbCkuZ2V0UHJvcGVydHlDU1NWYWx1ZSgncGFnZS1i
cmVhay1pbnNpZGUnKS5nZXRTdHJpbmdWYWx1ZSgpIiwgJyJhdXRvIicpOwogCiBkb2N1bWVudC5i
b2R5LnJlbW92ZUNoaWxkKHBhcmVudCk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
Y3NzL2hvdmVyLWFmZmVjdHMtY2hpbGQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2hvdmVy
LWFmZmVjdHMtY2hpbGQuaHRtbAppbmRleCBjZWVhOGE2Li5iMDY1ZWFiIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L2Nzcy9ob3Zlci1hZmZlY3RzLWNoaWxkLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9jc3MvaG92ZXItYWZmZWN0cy1jaGlsZC5odG1sCkBAIC0zMCw3ICszMCw3IEBA
CiAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgICB0ZXN0ZWRIb3Zl
clN0YXRlID0gdHJ1ZTsKICAgICAgICAgICAgICAgICB2YXIgaW5uZXJFbGVtID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ2lubmVyRWxlbScpOwotICAgICAgICAgICAgICAgIHZhciBjYWxjdWxh
dGVkU3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShpbm5lckVsZW0pOworICAgICAgICAg
ICAgICAgIHZhciBjYWxjdWxhdGVkU3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShpbm5l
ckVsZW0sIG51bGwpOwogICAgIAogICAgICAgICAgICAgICAgIGlmIChjYWxjdWxhdGVkU3R5bGUu
Z2V0UHJvcGVydHlWYWx1ZSgnbGVmdCcpID09ICJhdXRvIikKICAgICAgICAgICAgICAgICAgICAg
bG9nKCJQQVNTRUQ6IENhbGN1bGF0ZWQgc3R5bGUgb2YgaW5uZXIgZWxlbWVudCBpcyBjb3JyZWN0
Iik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9tYXgtaGVpZ2h0LWFuZC1tYXgt
d2lkdGguaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL21heC1oZWlnaHQtYW5kLW1heC13aWR0
aC5odG1sCmluZGV4IDg5MWJlZWEuLjg2YjRjOGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvY3NzL21heC1oZWlnaHQtYW5kLW1heC13aWR0aC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvY3NzL21heC1oZWlnaHQtYW5kLW1heC13aWR0aC5odG1sCkBAIC0xOCw3ICsxOCw3IEBAIGZ1
bmN0aW9uIGRvVGVzdCgpCiAKICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYm9keSIpLmFw
cGVuZENoaWxkKGJveCk7ICAgIAogCi0gICAgdmFyIHN0eWxlID0gd2luZG93LmdldENvbXB1dGVk
U3R5bGUoYm94KTsKKyAgICB2YXIgc3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShib3gs
IG51bGwpOwogICAgIGlmKHN0eWxlLmdldFByb3BlcnR5VmFsdWUoIm1heC1oZWlnaHQiKSA9PSBz
dHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCJtYXgtd2lkdGgiKSkKICAgICAgICAgdGVzdEZhaWxlZCgi
bWF4LXdpZHRoIGlzIE5PVCBpbmRlcGVuZGVudCBvZiBtYXgtaGVpZ2h0LiIpOwogICAgIGVsc2UK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL250aC1jaGlsZC1keW5hbWljLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9udGgtY2hpbGQtZHluYW1pYy5odG1sCmluZGV4IDE1YjA5
OGMuLjQwZWRlYzUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL250aC1jaGlsZC1k
eW5hbWljLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvbnRoLWNoaWxkLWR5bmFtaWMu
aHRtbApAQCAtNjcsNyArNjcsNyBAQAogICAgICAgICBuICs9IDE7CiAgICAgICB9CiAgICAgICBp
ZiAodGVzdENvbG9ycykgewotICAgICAgICB2YXIgY29tcHV0ZWRDb2xvciA9IHdpbmRvdy5nZXRD
b21wdXRlZFN0eWxlKHRlc3RFbHNbaV0pLmNvbG9yOworICAgICAgICB2YXIgY29tcHV0ZWRDb2xv
ciA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRlc3RFbHNbaV0sIG51bGwpLmNvbG9yOwogICAg
ICAgICB2YXIgbWVzc2FnZTsKICAgICAgICAgaWYgKGNvbXB1dGVkQ29sb3IgIT0gZXhwZWN0ZWRD
b2xvcikKICAgICAgICAgICBtZXNzYWdlID0gJ0ZBSUw6IGZvdW5kIGNvbG9yICcgKyBjb21wdXRl
ZENvbG9yICsgJywgZXhwZWN0ZWQgJyArIGV4cGVjdGVkQ29sb3I7CkBAIC04OSw3ICs4OSw3IEBA
CiAgICAgICAgIHZhciBleHBlY3RlZENvbG9yID0gJ3JnYigxNTMsIDE1MywgMjU1KSc7CiAKICAg
ICAgICAgaWYgKHRlc3RDb2xvcnMpIHsKLSAgICAgICAgICB2YXIgY29tcHV0ZWRDb2xvciA9IHdp
bmRvdy5nZXRDb21wdXRlZFN0eWxlKGJsdWVzW2ldKS5iYWNrZ3JvdW5kQ29sb3I7CisgICAgICAg
ICAgdmFyIGNvbXB1dGVkQ29sb3IgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShibHVlc1tpXSwg
bnVsbCkuYmFja2dyb3VuZENvbG9yOwogICAgICAgICAgIHZhciBtZXNzYWdlOwogICAgICAgICAg
IGlmIChjb21wdXRlZENvbG9yICE9IGV4cGVjdGVkQ29sb3IpCiAgICAgICAgICAgICBtZXNzYWdl
ID0gJ0ZBSUw6IGZvdW5kIGNvbG9yICcgKyBjb21wdXRlZENvbG9yICsgJywgZXhwZWN0ZWQgJyAr
IGV4cGVjdGVkQ29sb3I7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9yZXNpemUt
c2luZ2xlLWF4aXMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL3Jlc2l6ZS1zaW5nbGUtYXhp
cy5odG1sCmluZGV4IGMyYWVkMmMuLmRiY2E2ZTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvY3NzL3Jlc2l6ZS1zaW5nbGUtYXhpcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3Nz
L3Jlc2l6ZS1zaW5nbGUtYXhpcy5odG1sCkBAIC00NCw3ICs0NCw3IEBACiAKICAgICBmdW5jdGlv
biBhc3NlcnRTaXplKHRhcmdldCwgd2lkdGgsIGhlaWdodCkKICAgICB7Ci0gICAgICAgIHZhciBj
b21wdXRlZFN0eWxlID0gZ2V0Q29tcHV0ZWRTdHlsZSh0YXJnZXQpOworICAgICAgICB2YXIgY29t
cHV0ZWRTdHlsZSA9IGdldENvbXB1dGVkU3R5bGUodGFyZ2V0LCBudWxsKTsKICAgICAgICAgdmFy
IGFjdHVhbFdpZHRoID0gY29tcHV0ZWRTdHlsZS53aWR0aDsKICAgICAgICAgdmFyIGFjdHVhbEhl
aWdodCA9IGNvbXB1dGVkU3R5bGUuaGVpZ2h0OwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2Nzcy9yZXNpemUtdmFsdWUtY29tcGFyZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3Nz
L3Jlc2l6ZS12YWx1ZS1jb21wYXJlZC5odG1sCmluZGV4IDhjNmNhOGYuLmNhODJjOTcgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL3Jlc2l6ZS12YWx1ZS1jb21wYXJlZC5odG1sCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL3Jlc2l6ZS12YWx1ZS1jb21wYXJlZC5odG1sCkBAIC0x
OCw2ICsxOCw2IEBACiAKICAgICB0YXJnZXQuc3R5bGUucmVzaXplID0gImJvdGgiOwogICAgIHZh
ciB0YXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0Iik7Ci0gICAgdmFyIGNv
bXB1dGVkU3R5bGUgPSBnZXRDb21wdXRlZFN0eWxlKHRhcmdldCk7CisgICAgdmFyIGNvbXB1dGVk
U3R5bGUgPSBnZXRDb21wdXRlZFN0eWxlKHRhcmdldCwgbnVsbCk7CiAgICAgbG9nKGNvbXB1dGVk
U3R5bGUucmVzaXplID09PSAiYm90aCIgPyAiUEFTUyIgOiAiRkFJTCIpOwogPC9zY3JpcHQ+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy96b29tLWluLWxlbmd0aC1yb3VuZC10cmlw
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy96b29tLWluLWxlbmd0aC1yb3VuZC10cmlwLmh0
bWwKaW5kZXggMDI2NzlkOC4uNWM5NTIyZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9j
c3Mvem9vbS1pbi1sZW5ndGgtcm91bmQtdHJpcC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
Y3NzL3pvb20taW4tbGVuZ3RoLXJvdW5kLXRyaXAuaHRtbApAQCAtMjQsNyArMjQsNyBAQAogICAg
IHZhciBmYWlsZWQgPSBmYWxzZTsKICAgICAKICAgICBmb3IgKHpvb20gPSAxMDA7IHpvb20gPD0g
MjAwOyB6b29tICs9IDEpIHsKLSAgICAgICAgY29udGFpbmVyU3R5bGUuc2V0UHJvcGVydHkoInpv
b20iLCB6b29tIC8gMTAwKTsKKyAgICAgICAgY29udGFpbmVyU3R5bGUuc2V0UHJvcGVydHkoInpv
b20iLCB6b29tIC8gMTAwLCBudWxsKTsKICAgICAgICAgdmFyIHdpZHRoID0gdGFyZ2V0Lm9mZnNl
dFdpZHRoOwogICAgICAgICB2YXIgaGVpZ2h0ID0gdGFyZ2V0Lm9mZnNldEhlaWdodDsKICAgICAg
ICAgaWYgKHdpZHRoICE9PSAxIHx8IGhlaWdodCAhPT0gMTApIHsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZG9tL0RPTUltcGxlbWVudGF0aW9uL2NyZWF0ZURvY3VtZW50LW5hbWVzcGFj
ZS1lcnItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vRE9NSW1wbGVtZW50YXRp
b24vY3JlYXRlRG9jdW1lbnQtbmFtZXNwYWNlLWVyci1leHBlY3RlZC50eHQKaW5kZXggMDlkNGJk
Yy4uZDJhODhjYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vRE9NSW1wbGVtZW50
YXRpb24vY3JlYXRlRG9jdW1lbnQtbmFtZXNwYWNlLWVyci1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9kb20vRE9NSW1wbGVtZW50YXRpb24vY3JlYXRlRG9jdW1lbnQtbmFtZXNw
YWNlLWVyci1leHBlY3RlZC50eHQKQEAgLTMsOCArMyw4IEBAIGNyZWF0ZURvY3VtZW50IHRlc3Rz
IG1vZGVsZWQgYWZ0ZXIgY3JlYXRlRWxlbWVudE5TIHRlc3RzIGZyb20gbW96aWxsYSB3aGljaCB3
ZXJlCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAotUEFTUyBkb2N1bWVudC5pbXBsZW1l
bnRhdGlvbi5jcmVhdGVEb2N1bWVudCgpLnRvU3RyaW5nKCkgaXMgIltvYmplY3QgRG9jdW1lbnRd
IgotUEFTUyBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVEb2N1bWVudCgiaHR0cDovL3d3
dy5leGFtcGxlLmNvbSIpLnRvU3RyaW5nKCkgaXMgIltvYmplY3QgRG9jdW1lbnRdIgorUEFTUyBk
b2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVEb2N1bWVudCgpLnRvU3RyaW5nKCkgdGhyZXcg
ZXhjZXB0aW9uIFR5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMuCitQQVNTIGRvY3VtZW50
LmltcGxlbWVudGF0aW9uLmNyZWF0ZURvY3VtZW50KCJodHRwOi8vd3d3LmV4YW1wbGUuY29tIiku
dG9TdHJpbmcoKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50
cy4KIFBBU1MgY3JlYXRlRG9jdW1lbnQoLCAsIG51bGwpCiBQQVNTIGNyZWF0ZURvY3VtZW50KG51
bGwsICwgbnVsbCkKIEZBSUwgY3JlYXRlRG9jdW1lbnQoLCBudWxsLCBudWxsKQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vRE9NSW1wbGVtZW50YXRpb24vY3JlYXRlRG9jdW1lbnRU
eXBlLWVyci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9ET01JbXBsZW1lbnRh
dGlvbi9jcmVhdGVEb2N1bWVudFR5cGUtZXJyLWV4cGVjdGVkLnR4dAppbmRleCBhMzk4ODcwLi4x
MmY5ODQ3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9ET01JbXBsZW1lbnRhdGlv
bi9jcmVhdGVEb2N1bWVudFR5cGUtZXJyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9ET01JbXBsZW1lbnRhdGlvbi9jcmVhdGVEb2N1bWVudFR5cGUtZXJyLWV4cGVjdGVk
LnR4dApAQCAtMywxNyArMywxNyBAQCBjcmVhdGVEb2N1bWVudCB0ZXN0cyBtb2RlbGVkIGFmdGVy
IG1vemlsbGEncyB0ZXN0aW5nCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAotUEFTUyBk
b2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVEb2N1bWVudFR5cGUoJ2ZvbycpLnRvU3RyaW5n
KCkgaXMgIltvYmplY3QgRG9jdW1lbnRUeXBlXSIKLVBBU1MgZG9jdW1lbnQuaW1wbGVtZW50YXRp
b24uY3JlYXRlRG9jdW1lbnRUeXBlKCdmb28nLCBudWxsKS50b1N0cmluZygpIGlzICJbb2JqZWN0
IERvY3VtZW50VHlwZV0iCi1QQVNTIGNyZWF0ZURvY3VtZW50VHlwZSgsICk7IHRocmV3IElOVkFM
SURfQ0hBUkFDVEVSX0VSUgotUEFTUyBjcmVhdGVEb2N1bWVudFR5cGUobnVsbCwgKTsgdGhyZXcg
SU5WQUxJRF9DSEFSQUNURVJfRVJSCi1QQVNTIGNyZWF0ZURvY3VtZW50VHlwZSgsIG51bGwpOyB0
aHJldyBJTlZBTElEX0NIQVJBQ1RFUl9FUlIKK1BBU1MgZG9jdW1lbnQuaW1wbGVtZW50YXRpb24u
Y3JlYXRlRG9jdW1lbnRUeXBlKCdmb28nKS50b1N0cmluZygpIHRocmV3IGV4Y2VwdGlvbiBUeXBl
RXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgorUEFTUyBkb2N1bWVudC5pbXBsZW1lbnRhdGlv
bi5jcmVhdGVEb2N1bWVudFR5cGUoJ2ZvbycsIG51bGwpLnRvU3RyaW5nKCkgdGhyZXcgZXhjZXB0
aW9uIFR5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMuCitGQUlMIGNyZWF0ZURvY3VtZW50
VHlwZSgsICk7IGV4cGVjdGVkIElOVkFMSURfQ0hBUkFDVEVSX0VSUiwgdGhyZXcgdW5kZWZpbmVk
CitGQUlMIGNyZWF0ZURvY3VtZW50VHlwZShudWxsLCApOyBleHBlY3RlZCBJTlZBTElEX0NIQVJB
Q1RFUl9FUlIsIHRocmV3IHVuZGVmaW5lZAorRkFJTCBjcmVhdGVEb2N1bWVudFR5cGUoLCBudWxs
KTsgZXhwZWN0ZWQgSU5WQUxJRF9DSEFSQUNURVJfRVJSLCB0aHJldyB1bmRlZmluZWQKIFBBU1Mg
Y3JlYXRlRG9jdW1lbnRUeXBlKCwgLCBudWxsKTsgdGhyZXcgSU5WQUxJRF9DSEFSQUNURVJfRVJS
Ci1QQVNTIGNyZWF0ZURvY3VtZW50VHlwZShudWxsLCBudWxsKTsgdGhyZXcgSU5WQUxJRF9DSEFS
QUNURVJfRVJSCitGQUlMIGNyZWF0ZURvY3VtZW50VHlwZShudWxsLCBudWxsKTsgZXhwZWN0ZWQg
SU5WQUxJRF9DSEFSQUNURVJfRVJSLCB0aHJldyB1bmRlZmluZWQKIFBBU1MgY3JlYXRlRG9jdW1l
bnRUeXBlKG51bGwsIG51bGwsIG51bGwpOyB0aHJldyBJTlZBTElEX0NIQVJBQ1RFUl9FUlIKLVBB
U1MgY3JlYXRlRG9jdW1lbnRUeXBlKG51bGwsICIiKTsgdGhyZXcgSU5WQUxJRF9DSEFSQUNURVJf
RVJSCi1QQVNTIGNyZWF0ZURvY3VtZW50VHlwZSgiIiwgbnVsbCk7IHRocmV3IElOVkFMSURfQ0hB
UkFDVEVSX0VSUgotUEFTUyBjcmVhdGVEb2N1bWVudFR5cGUoIiIsICIiKTsgdGhyZXcgSU5WQUxJ
RF9DSEFSQUNURVJfRVJSCitGQUlMIGNyZWF0ZURvY3VtZW50VHlwZShudWxsLCAiIik7IGV4cGVj
dGVkIElOVkFMSURfQ0hBUkFDVEVSX0VSUiwgdGhyZXcgdW5kZWZpbmVkCitGQUlMIGNyZWF0ZURv
Y3VtZW50VHlwZSgiIiwgbnVsbCk7IGV4cGVjdGVkIElOVkFMSURfQ0hBUkFDVEVSX0VSUiwgdGhy
ZXcgdW5kZWZpbmVkCitGQUlMIGNyZWF0ZURvY3VtZW50VHlwZSgiIiwgIiIpOyBleHBlY3RlZCBJ
TlZBTElEX0NIQVJBQ1RFUl9FUlIsIHRocmV3IHVuZGVmaW5lZAogUEFTUyBjcmVhdGVEb2N1bWVu
dFR5cGUoImE6IiwgbnVsbCwgbnVsbCk7IHRocmV3IE5BTUVTUEFDRV9FUlIKIFBBU1MgY3JlYXRl
RG9jdW1lbnRUeXBlKCI6Zm9vIiwgbnVsbCwgbnVsbCk7IHRocmV3IE5BTUVTUEFDRV9FUlIKIFBB
U1MgY3JlYXRlRG9jdW1lbnRUeXBlKCI6IiwgbnVsbCwgbnVsbCk7IHRocmV3IE5BTUVTUEFDRV9F
UlIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0RPTUltcGxlbWVudGF0aW9uL3Nj
cmlwdC10ZXN0cy9jcmVhdGVEb2N1bWVudC1uYW1lc3BhY2UtZXJyLmpzIGIvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vRE9NSW1wbGVtZW50YXRpb24vc2NyaXB0LXRlc3RzL2NyZWF0ZURvY3VtZW50LW5h
bWVzcGFjZS1lcnIuanMKaW5kZXggNjY4M2Y4Yi4uZDQyYzhhNiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9kb20vRE9NSW1wbGVtZW50YXRpb24vc2NyaXB0LXRlc3RzL2NyZWF0ZURvY3Vt
ZW50LW5hbWVzcGFjZS1lcnIuanMKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vRE9NSW1wbGVt
ZW50YXRpb24vc2NyaXB0LXRlc3RzL2NyZWF0ZURvY3VtZW50LW5hbWVzcGFjZS1lcnIuanMKQEAg
LTEzNyw5ICsxMzcsOCBAQCBmdW5jdGlvbiBydW5OU1Rlc3RzKHRlc3RzLCBkb2MsIGNyZWF0ZUZ1
bmN0aW9uTmFtZSkKICAgICB9CiB9CiAKLS8vIE1veiB0aHJvd3MgYSAiTm90IGVub3VnaCBhcmd1
bWVudHMiIGV4Y2VwdGlvbiBpbiB0aGVzZSwgd2UgZG9uJ3Q6Ci1zaG91bGRCZUVxdWFsVG9TdHJp
bmcoImRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZURvY3VtZW50KCkudG9TdHJpbmcoKSIs
ICJbb2JqZWN0IERvY3VtZW50XSIpOwotc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJkb2N1bWVudC5p
bXBsZW1lbnRhdGlvbi5jcmVhdGVEb2N1bWVudChcImh0dHA6Ly93d3cuZXhhbXBsZS5jb21cIiku
dG9TdHJpbmcoKSIsICJbb2JqZWN0IERvY3VtZW50XSIpOworc2hvdWxkVGhyb3coImRvY3VtZW50
LmltcGxlbWVudGF0aW9uLmNyZWF0ZURvY3VtZW50KCkudG9TdHJpbmcoKSIpOworc2hvdWxkVGhy
b3coImRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZURvY3VtZW50KFwiaHR0cDovL3d3dy5l
eGFtcGxlLmNvbVwiKS50b1N0cmluZygpIik7CiAKIHJ1bk5TVGVzdHMoYWxsTlNUZXN0cywgZG9j
dW1lbnQuaW1wbGVtZW50YXRpb24sICJjcmVhdGVEb2N1bWVudCIpOwogCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9ET01JbXBsZW1lbnRhdGlvbi9zY3JpcHQtdGVzdHMvY3JlYXRl
RG9jdW1lbnRUeXBlLWVyci5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0RPTUltcGxlbWVudGF0
aW9uL3NjcmlwdC10ZXN0cy9jcmVhdGVEb2N1bWVudFR5cGUtZXJyLmpzCmluZGV4IDllZjdlN2Mu
LjFmYzdkMTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0RPTUltcGxlbWVudGF0
aW9uL3NjcmlwdC10ZXN0cy9jcmVhdGVEb2N1bWVudFR5cGUtZXJyLmpzCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZG9tL0RPTUltcGxlbWVudGF0aW9uL3NjcmlwdC10ZXN0cy9jcmVhdGVEb2N1bWVu
dFR5cGUtZXJyLmpzCkBAIC05Miw5ICs5Miw4IEBAIGZ1bmN0aW9uIHJ1blRlc3RzKHRlc3RzLCBj
cmVhdGVGdW5jdGlvbk5hbWUpCiAgICAgfQogfQogCi0vLyBNb3ogdGhyb3dzIGEgIk5vdCBlbm91
Z2ggYXJndW1lbnRzIiBleGNlcHRpb24gaW4gdGhlc2UsIHdlIGRvbid0Ogotc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCJkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVEb2N1bWVudFR5cGUoJ2Zv
bycpLnRvU3RyaW5nKCkiLCAiW29iamVjdCBEb2N1bWVudFR5cGVdIik7Ci1zaG91bGRCZUVxdWFs
VG9TdHJpbmcoImRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZURvY3VtZW50VHlwZSgnZm9v
JywgbnVsbCkudG9TdHJpbmcoKSIsICJbb2JqZWN0IERvY3VtZW50VHlwZV0iKTsKK3Nob3VsZFRo
cm93KCJkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVEb2N1bWVudFR5cGUoJ2ZvbycpLnRv
U3RyaW5nKCkiKTsKK3Nob3VsZFRocm93KCJkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVE
b2N1bWVudFR5cGUoJ2ZvbycsIG51bGwpLnRvU3RyaW5nKCkiKTsKIHJ1blRlc3RzKGFsbFRlc3Rz
LCAiY3JlYXRlRG9jdW1lbnRUeXBlIik7CiAKIHZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVl
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vRG9jdW1lbnQvY3JlYXRlQXR0cmli
dXRlTlMtbmFtZXNwYWNlLWVyci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9E
b2N1bWVudC9jcmVhdGVBdHRyaWJ1dGVOUy1uYW1lc3BhY2UtZXJyLWV4cGVjdGVkLnR4dAppbmRl
eCBmMDJjYTU1Li5hYjgwZTQ3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Eb2N1
bWVudC9jcmVhdGVBdHRyaWJ1dGVOUy1uYW1lc3BhY2UtZXJyLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9Eb2N1bWVudC9jcmVhdGVBdHRyaWJ1dGVOUy1uYW1lc3BhY2Ut
ZXJyLWV4cGVjdGVkLnR4dApAQCAtMyw4ICszLDggQEAgY3JlYXRlQXR0aXJidXRlTlMgdGVzdHMg
YWRhcHRlZCBmcm9tIGNyZWF0ZUVsZW1lbnROUyB0ZXN0cyBhdHRhY2hlZCB0byB3ZWJraXQgYnUK
IE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCi1QQVNTIGRvY3VtZW50LmNyZWF0ZUF0dHJp
YnV0ZU5TKCkudG9TdHJpbmcoKSBpcyAiW29iamVjdCBBdHRyXSIKLVBBU1MgZG9jdW1lbnQuY3Jl
YXRlQXR0cmlidXRlTlMoImh0dHA6Ly93d3cuZXhhbXBsZS5jb20iKS50b1N0cmluZygpIGlzICJb
b2JqZWN0IEF0dHJdIgorUEFTUyBkb2N1bWVudC5jcmVhdGVBdHRyaWJ1dGVOUygpLnRvU3RyaW5n
KCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMuCitQQVNT
IGRvY3VtZW50LmNyZWF0ZUF0dHJpYnV0ZU5TKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tIikudG9T
dHJpbmcoKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4K
IFBBU1MgY3JlYXRlQXR0cmlidXRlTlModW5kZWZpbmVkLCB1bmRlZmluZWQpCiBQQVNTIGNyZWF0
ZUF0dHJpYnV0ZU5TKG51bGwsIHVuZGVmaW5lZCkKIFBBU1MgY3JlYXRlQXR0cmlidXRlTlModW5k
ZWZpbmVkLCBudWxsKTsgdGhyZXcgSU5WQUxJRF9DSEFSQUNURVJfRVJSCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9Eb2N1bWVudC9jcmVhdGVFbGVtZW50TlMtbmFtZXNwYWNlLWVy
ci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Eb2N1bWVudC9jcmVhdGVFbGVt
ZW50TlMtbmFtZXNwYWNlLWVyci1leHBlY3RlZC50eHQKaW5kZXggZjdlZGE4Yi4uYzFjYzg2ZSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vRG9jdW1lbnQvY3JlYXRlRWxlbWVudE5T
LW5hbWVzcGFjZS1lcnItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0Rv
Y3VtZW50L2NyZWF0ZUVsZW1lbnROUy1uYW1lc3BhY2UtZXJyLWV4cGVjdGVkLnR4dApAQCAtMyw4
ICszLDggQEAgY3JlYXRlRWxlbWVudE5TIHRlc3RzIGZyb20gbW96aWxsYSwgYXR0YWNoZWQgdG8g
d2Via2l0IGJ1ZyAxNjgzMwogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCiAKLVBBU1MgZG9j
dW1lbnQuY3JlYXRlRWxlbWVudE5TKCkudG9TdHJpbmcoKSBpcyAiW29iamVjdCBFbGVtZW50XSIK
LVBBU1MgZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tIiku
dG9TdHJpbmcoKSBpcyAiW29iamVjdCBFbGVtZW50XSIKK1BBU1MgZG9jdW1lbnQuY3JlYXRlRWxl
bWVudE5TKCkudG9TdHJpbmcoKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdo
IGFyZ3VtZW50cy4KK1BBU1MgZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LmV4
YW1wbGUuY29tIikudG9TdHJpbmcoKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5v
dWdoIGFyZ3VtZW50cy4KIEhUTUwgdGVzdHM6CiBQQVNTIGNyZWF0ZUVsZW1lbnROUygsICkKIFBB
U1MgY3JlYXRlRWxlbWVudE5TKG51bGwsICkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL0RvY3VtZW50L3NjcmlwdC10ZXN0cy9jcmVhdGVBdHRyaWJ1dGVOUy1uYW1lc3BhY2UtZXJy
LmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vRG9jdW1lbnQvc2NyaXB0LXRlc3RzL2NyZWF0ZUF0
dHJpYnV0ZU5TLW5hbWVzcGFjZS1lcnIuanMKaW5kZXggODU0YTE3NS4uOWEwMzE4YyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vRG9jdW1lbnQvc2NyaXB0LXRlc3RzL2NyZWF0ZUF0
dHJpYnV0ZU5TLW5hbWVzcGFjZS1lcnIuanMKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vRG9j
dW1lbnQvc2NyaXB0LXRlc3RzL2NyZWF0ZUF0dHJpYnV0ZU5TLW5hbWVzcGFjZS1lcnIuanMKQEAg
LTEyMiw5ICsxMjIsOCBAQCBmdW5jdGlvbiBydW5OU1Rlc3RzKCkKICAgICB9CiB9CiAKLS8vIE1v
eiB0aHJvd3MgYSAiTm90IGVub3VnaCBhcmd1bWVudHMiIGV4Y2VwdGlvbiBpbiB0aGVzZSwgd2Ug
ZG9uJ3Q6Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmcoImRvY3VtZW50LmNyZWF0ZUF0dHJpYnV0ZU5T
KCkudG9TdHJpbmcoKSIsICJbb2JqZWN0IEF0dHJdIik7Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmco
ImRvY3VtZW50LmNyZWF0ZUF0dHJpYnV0ZU5TKFwiaHR0cDovL3d3dy5leGFtcGxlLmNvbVwiKS50
b1N0cmluZygpIiwgIltvYmplY3QgQXR0cl0iKTsKK3Nob3VsZFRocm93KCJkb2N1bWVudC5jcmVh
dGVBdHRyaWJ1dGVOUygpLnRvU3RyaW5nKCkiKTsKK3Nob3VsZFRocm93KCJkb2N1bWVudC5jcmVh
dGVBdHRyaWJ1dGVOUyhcImh0dHA6Ly93d3cuZXhhbXBsZS5jb21cIikudG9TdHJpbmcoKSIpOwog
CiBydW5OU1Rlc3RzKCk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0RvY3Vt
ZW50L3NjcmlwdC10ZXN0cy9jcmVhdGVFbGVtZW50TlMtbmFtZXNwYWNlLWVyci5qcyBiL0xheW91
dFRlc3RzL2Zhc3QvZG9tL0RvY3VtZW50L3NjcmlwdC10ZXN0cy9jcmVhdGVFbGVtZW50TlMtbmFt
ZXNwYWNlLWVyci5qcwppbmRleCA5MDA0NjcwLi4yNzFjZTA1IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9Eb2N1bWVudC9zY3JpcHQtdGVzdHMvY3JlYXRlRWxlbWVudE5TLW5hbWVz
cGFjZS1lcnIuanMKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vRG9jdW1lbnQvc2NyaXB0LXRl
c3RzL2NyZWF0ZUVsZW1lbnROUy1uYW1lc3BhY2UtZXJyLmpzCkBAIC0xNTcsOSArMTU3LDggQEAg
ZnVuY3Rpb24gcnVuTlNUZXN0cyh0ZXN0cywgZG9jLCBjcmVhdGVGdW5jdGlvbk5hbWUpCiAgICAg
fQogfQogCi0vLyBNb3ogdGhyb3dzIGEgIk5vdCBlbm91Z2ggYXJndW1lbnRzIiBleGNlcHRpb24g
aW4gdGhlc2UsIHdlIGRvbid0Ogotc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJkb2N1bWVudC5jcmVh
dGVFbGVtZW50TlMoKS50b1N0cmluZygpIiwgIltvYmplY3QgRWxlbWVudF0iKTsKLXNob3VsZEJl
RXF1YWxUb1N0cmluZygiZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKFwiaHR0cDovL3d3dy5leGFt
cGxlLmNvbVwiKS50b1N0cmluZygpIiwgIltvYmplY3QgRWxlbWVudF0iKTsKK3Nob3VsZFRocm93
KCJkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoKS50b1N0cmluZygpIik7CitzaG91bGRUaHJvdygi
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKFwiaHR0cDovL3d3dy5leGFtcGxlLmNvbVwiKS50b1N0
cmluZygpIik7CiAKIGRlYnVnKCJIVE1MIHRlc3RzOiIpCiBydW5OU1Rlc3RzKGFsbE5TVGVzdHMs
IGRvY3VtZW50LCAiY3JlYXRlRWxlbWVudE5TIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9IVE1MRm9ybUVsZW1lbnQvYWRvcHQtYXNzZXJ0aW9uLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9IVE1MRm9ybUVsZW1lbnQvYWRvcHQtYXNzZXJ0aW9uLmh0bWwKaW5kZXggODBh
OTlkNS4uODk1YzI2YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTEZvcm1F
bGVtZW50L2Fkb3B0LWFzc2VydGlvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hU
TUxGb3JtRWxlbWVudC9hZG9wdC1hc3NlcnRpb24uaHRtbApAQCAtMTEsNiArMTEsNiBAQAogICAg
IGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLmR1bXBBc1RleHQoKTsKIAotICAgIHZhciBvdGhlckRvY3VtZW50ID0gZG9jdW1lbnQu
aW1wbGVtZW50YXRpb24uY3JlYXRlSFRNTERvY3VtZW50KCk7CisgICAgdmFyIG90aGVyRG9jdW1l
bnQgPSBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQoIiIpOwogICAg
IG90aGVyRG9jdW1lbnQuYWRvcHROb2RlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQi
KSk7CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1NlbGVjdG9y
QVBJL3Jlc2lnLVNlbGVjdG9yc0FQSS10ZXN0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zh
c3QvZG9tL1NlbGVjdG9yQVBJL3Jlc2lnLVNlbGVjdG9yc0FQSS10ZXN0LWV4cGVjdGVkLnR4dApp
bmRleCA2NWVjYzMzLi41OGUwNThlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9T
ZWxlY3RvckFQSS9yZXNpZy1TZWxlY3RvcnNBUEktdGVzdC1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9kb20vU2VsZWN0b3JBUEkvcmVzaWctU2VsZWN0b3JzQVBJLXRlc3QtZXhw
ZWN0ZWQudHh0CkBAIC00LDE3ICs0LDE3IEBAIFRlc3RydW5uZXIgYnkgSm9obiBSZXNpZywgdGVz
dHMgYnkgSm9obiBSZXNpZywgRGlzcnVwdGl2ZSBJbm5vdmF0aW9ucywgVzNDIENTUyBXCiAKICBT
aG93IG9ubHkgZmFpbGluZyB0ZXN0cy4KIAotOTkuMiU6IDIxNDcgcGFzc2VkLCAxNyBmYWlsZWQK
KzEwMC4wJTogMjE2MyBwYXNzZWQsIDEgZmFpbGVkCiBQQVNTIEVsZW1lbnQgc3VwcG9ydHMgcXVl
cnlTZWxlY3RvcgogUEFTUyBFbGVtZW50IHN1cHBvcnRzIHF1ZXJ5U2VsZWN0b3JBbGwKIFBBU1Mg
RWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsIEVtcHR5IFN0cmluZwogUEFTUyBFbGVtZW50LnF1ZXJ5
U2VsZWN0b3JBbGwgbnVsbAogUEFTUyBFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwgdW5kZWZpbmVk
Ci1GQUlMIEVsZW1lbnQucXVlcnlTZWxlY3RvckFsbCBubyB2YWx1ZQorUEFTUyBFbGVtZW50LnF1
ZXJ5U2VsZWN0b3JBbGwgbm8gdmFsdWUKIFBBU1MgRWxlbWVudC5xdWVyeVNlbGVjdG9yIEVtcHR5
IFN0cmluZwogUEFTUyBFbGVtZW50LnF1ZXJ5U2VsZWN0b3IgbnVsbAogUEFTUyBFbGVtZW50LnF1
ZXJ5U2VsZWN0b3IgdW5kZWZpbmVkCi1GQUlMIEVsZW1lbnQucXVlcnlTZWxlY3RvciBubyB2YWx1
ZQorUEFTUyBFbGVtZW50LnF1ZXJ5U2VsZWN0b3Igbm8gdmFsdWUKIFBBU1MgRWxlbWVudC5xdWVy
eVNlbGVjdG9yQWxsOiAudGFyZ2V0IDp0YXJnZXQKIFBBU1MgRWxlbWVudC5xdWVyeVNlbGVjdG9y
QWxsIFdoaXRlc3BhY2UgVHJpbTogLnRhcmdldCA6dGFyZ2V0CiBQQVNTIEVsZW1lbnQucXVlcnlT
ZWxlY3RvcjogLnRhcmdldCA6dGFyZ2V0CkBAIC01NTAsMTEgKzU1MCwxMSBAQCBQQVNTIE91dHNp
ZGUgRWxlbWVudDogKyBjb21iaW5hdG9yCiBQQVNTIFN5bnRheCBFcnJvcjogRWxlbWVudC5xdWVy
eVNlbGVjdG9yQWxsIEVtcHR5IFN0cmluZwogUEFTUyBTeW50YXggRXJyb3I6IEVsZW1lbnQucXVl
cnlTZWxlY3RvckFsbCBudWxsCiBQQVNTIFN5bnRheCBFcnJvcjogRWxlbWVudC5xdWVyeVNlbGVj
dG9yQWxsIHVuZGVmaW5lZAotRkFJTCBTeW50YXggRXJyb3I6IEVsZW1lbnQucXVlcnlTZWxlY3Rv
ckFsbCBubyB2YWx1ZQorUEFTUyBTeW50YXggRXJyb3I6IEVsZW1lbnQucXVlcnlTZWxlY3RvckFs
bCBubyB2YWx1ZQogUEFTUyBTeW50YXggRXJyb3I6IEVsZW1lbnQucXVlcnlTZWxlY3RvciBFbXB0
eSBTdHJpbmcKIFBBU1MgU3ludGF4IEVycm9yOiBFbGVtZW50LnF1ZXJ5U2VsZWN0b3IgbnVsbAog
UEFTUyBTeW50YXggRXJyb3I6IEVsZW1lbnQucXVlcnlTZWxlY3RvciB1bmRlZmluZWQKLUZBSUwg
U3ludGF4IEVycm9yOiBFbGVtZW50LnF1ZXJ5U2VsZWN0b3Igbm8gdmFsdWUKK1BBU1MgU3ludGF4
IEVycm9yOiBFbGVtZW50LnF1ZXJ5U2VsZWN0b3Igbm8gdmFsdWUKIFBBU1MgU3ludGF4IEVycm9y
OiBFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGw6IC5ibG94MTY6bm90KC5ibG94MTVbZm9vPSJibG94
MTQiXSkKIFBBU1MgU3ludGF4IEVycm9yOiBFbGVtZW50LnF1ZXJ5U2VsZWN0b3I6IC5ibG94MTY6
bm90KC5ibG94MTVbZm9vPSJibG94MTQiXSkKIFBBU1MgU3ludGF4IEVycm9yOiBFbGVtZW50LnF1
ZXJ5U2VsZWN0b3JBbGw6IGRpdjpub3QoOm5vdChkaXYpKQpAQCAtNzI2LDExICs3MjYsMTEgQEAg
UEFTUyBEaXNjb25uZWN0ZWQgRWxlbWVudCBzdXBwb3J0cyBxdWVyeVNlbGVjdG9yQWxsCiBQQVNT
IERpc2Nvbm5lY3RlZCBFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwgRW1wdHkgU3RyaW5nCiBQQVNT
IERpc2Nvbm5lY3RlZCBFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwgbnVsbAogUEFTUyBEaXNjb25u
ZWN0ZWQgRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsIHVuZGVmaW5lZAotRkFJTCBEaXNjb25uZWN0
ZWQgRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsIG5vIHZhbHVlCitQQVNTIERpc2Nvbm5lY3RlZCBF
bGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwgbm8gdmFsdWUKIFBBU1MgRGlzY29ubmVjdGVkIEVsZW1l
bnQucXVlcnlTZWxlY3RvciBFbXB0eSBTdHJpbmcKIFBBU1MgRGlzY29ubmVjdGVkIEVsZW1lbnQu
cXVlcnlTZWxlY3RvciBudWxsCiBQQVNTIERpc2Nvbm5lY3RlZCBFbGVtZW50LnF1ZXJ5U2VsZWN0
b3IgdW5kZWZpbmVkCi1GQUlMIERpc2Nvbm5lY3RlZCBFbGVtZW50LnF1ZXJ5U2VsZWN0b3Igbm8g
dmFsdWUKK1BBU1MgRGlzY29ubmVjdGVkIEVsZW1lbnQucXVlcnlTZWxlY3RvciBubyB2YWx1ZQog
UEFTUyBEaXNjb25uZWN0ZWQgRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsOiAudGFyZ2V0IDp0YXJn
ZXQKIFBBU1MgRGlzY29ubmVjdGVkIEVsZW1lbnQucXVlcnlTZWxlY3RvckFsbCBXaGl0ZXNwYWNl
IFRyaW06IC50YXJnZXQgOnRhcmdldAogUEFTUyBEaXNjb25uZWN0ZWQgRWxlbWVudC5xdWVyeVNl
bGVjdG9yOiAudGFyZ2V0IDp0YXJnZXQKQEAgLTExNDgsMTEgKzExNDgsMTEgQEAgUEFTUyBEaXNj
b25uZWN0ZWQgRWxlbWVudDogU3RhdGljTm9kZUxpc3QKIFBBU1MgU3ludGF4IEVycm9yOiBEaXNj
b25uZWN0ZWQgRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsIEVtcHR5IFN0cmluZwogUEFTUyBTeW50
YXggRXJyb3I6IERpc2Nvbm5lY3RlZCBFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwgbnVsbAogUEFT
UyBTeW50YXggRXJyb3I6IERpc2Nvbm5lY3RlZCBFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwgdW5k
ZWZpbmVkCi1GQUlMIFN5bnRheCBFcnJvcjogRGlzY29ubmVjdGVkIEVsZW1lbnQucXVlcnlTZWxl
Y3RvckFsbCBubyB2YWx1ZQorUEFTUyBTeW50YXggRXJyb3I6IERpc2Nvbm5lY3RlZCBFbGVtZW50
LnF1ZXJ5U2VsZWN0b3JBbGwgbm8gdmFsdWUKIFBBU1MgU3ludGF4IEVycm9yOiBEaXNjb25uZWN0
ZWQgRWxlbWVudC5xdWVyeVNlbGVjdG9yIEVtcHR5IFN0cmluZwogUEFTUyBTeW50YXggRXJyb3I6
IERpc2Nvbm5lY3RlZCBFbGVtZW50LnF1ZXJ5U2VsZWN0b3IgbnVsbAogUEFTUyBTeW50YXggRXJy
b3I6IERpc2Nvbm5lY3RlZCBFbGVtZW50LnF1ZXJ5U2VsZWN0b3IgdW5kZWZpbmVkCi1GQUlMIFN5
bnRheCBFcnJvcjogRGlzY29ubmVjdGVkIEVsZW1lbnQucXVlcnlTZWxlY3RvciBubyB2YWx1ZQor
UEFTUyBTeW50YXggRXJyb3I6IERpc2Nvbm5lY3RlZCBFbGVtZW50LnF1ZXJ5U2VsZWN0b3Igbm8g
dmFsdWUKIFBBU1MgU3ludGF4IEVycm9yOiBEaXNjb25uZWN0ZWQgRWxlbWVudC5xdWVyeVNlbGVj
dG9yQWxsOiAuYmxveDE2Om5vdCguYmxveDE1W2Zvbz0iYmxveDE0Il0pCiBQQVNTIFN5bnRheCBF
cnJvcjogRGlzY29ubmVjdGVkIEVsZW1lbnQucXVlcnlTZWxlY3RvcjogLmJsb3gxNjpub3QoLmJs
b3gxNVtmb289ImJsb3gxNCJdKQogUEFTUyBTeW50YXggRXJyb3I6IERpc2Nvbm5lY3RlZCBFbGVt
ZW50LnF1ZXJ5U2VsZWN0b3JBbGw6IGRpdjpub3QoOm5vdChkaXYpKQpAQCAtMTMyNCwxMSArMTMy
NCwxMSBAQCBQQVNTIEZyYWdtZW50IHN1cHBvcnRzIHF1ZXJ5U2VsZWN0b3JBbGwKIFBBU1MgRnJh
Z21lbnQucXVlcnlTZWxlY3RvckFsbCBFbXB0eSBTdHJpbmcKIFBBU1MgRnJhZ21lbnQucXVlcnlT
ZWxlY3RvckFsbCBudWxsCiBQQVNTIEZyYWdtZW50LnF1ZXJ5U2VsZWN0b3JBbGwgdW5kZWZpbmVk
Ci1GQUlMIEZyYWdtZW50LnF1ZXJ5U2VsZWN0b3JBbGwgbm8gdmFsdWUKK1BBU1MgRnJhZ21lbnQu
cXVlcnlTZWxlY3RvckFsbCBubyB2YWx1ZQogUEFTUyBGcmFnbWVudC5xdWVyeVNlbGVjdG9yIEVt
cHR5IFN0cmluZwogUEFTUyBGcmFnbWVudC5xdWVyeVNlbGVjdG9yIG51bGwKIFBBU1MgRnJhZ21l
bnQucXVlcnlTZWxlY3RvciB1bmRlZmluZWQKLUZBSUwgRnJhZ21lbnQucXVlcnlTZWxlY3RvciBu
byB2YWx1ZQorUEFTUyBGcmFnbWVudC5xdWVyeVNlbGVjdG9yIG5vIHZhbHVlCiBQQVNTIEZyYWdt
ZW50LnF1ZXJ5U2VsZWN0b3JBbGw6IC50YXJnZXQgOnRhcmdldAogUEFTUyBGcmFnbWVudC5xdWVy
eVNlbGVjdG9yQWxsIFdoaXRlc3BhY2UgVHJpbTogLnRhcmdldCA6dGFyZ2V0CiBQQVNTIEZyYWdt
ZW50LnF1ZXJ5U2VsZWN0b3I6IC50YXJnZXQgOnRhcmdldApAQCAtMTYyOSwxMSArMTYyOSwxMSBA
QCBQQVNTIEZyYWdtZW50LnF1ZXJ5U2VsZWN0b3I6IC5wbHVzIC50MTpob3ZlciArIC51bml0VGVz
dCArIC51bml0VGVzdAogUEFTUyBTeW50YXggRXJyb3I6IEZyYWdtZW50LnF1ZXJ5U2VsZWN0b3JB
bGwgRW1wdHkgU3RyaW5nCiBQQVNTIFN5bnRheCBFcnJvcjogRnJhZ21lbnQucXVlcnlTZWxlY3Rv
ckFsbCBudWxsCiBQQVNTIFN5bnRheCBFcnJvcjogRnJhZ21lbnQucXVlcnlTZWxlY3RvckFsbCB1
bmRlZmluZWQKLUZBSUwgU3ludGF4IEVycm9yOiBGcmFnbWVudC5xdWVyeVNlbGVjdG9yQWxsIG5v
IHZhbHVlCitQQVNTIFN5bnRheCBFcnJvcjogRnJhZ21lbnQucXVlcnlTZWxlY3RvckFsbCBubyB2
YWx1ZQogUEFTUyBTeW50YXggRXJyb3I6IEZyYWdtZW50LnF1ZXJ5U2VsZWN0b3IgRW1wdHkgU3Ry
aW5nCiBQQVNTIFN5bnRheCBFcnJvcjogRnJhZ21lbnQucXVlcnlTZWxlY3RvciBudWxsCiBQQVNT
IFN5bnRheCBFcnJvcjogRnJhZ21lbnQucXVlcnlTZWxlY3RvciB1bmRlZmluZWQKLUZBSUwgU3lu
dGF4IEVycm9yOiBGcmFnbWVudC5xdWVyeVNlbGVjdG9yIG5vIHZhbHVlCitQQVNTIFN5bnRheCBF
cnJvcjogRnJhZ21lbnQucXVlcnlTZWxlY3RvciBubyB2YWx1ZQogUEFTUyBTeW50YXggRXJyb3I6
IEZyYWdtZW50LnF1ZXJ5U2VsZWN0b3JBbGw6IC5ibG94MTY6bm90KC5ibG94MTVbZm9vPSJibG94
MTQiXSkKIFBBU1MgU3ludGF4IEVycm9yOiBGcmFnbWVudC5xdWVyeVNlbGVjdG9yOiAuYmxveDE2
Om5vdCguYmxveDE1W2Zvbz0iYmxveDE0Il0pCiBQQVNTIFN5bnRheCBFcnJvcjogRnJhZ21lbnQu
cXVlcnlTZWxlY3RvckFsbDogZGl2Om5vdCg6bm90KGRpdikpCkBAIC0xNjg3LDExICsxNjg3LDEx
IEBAIFBBU1MgRG9jdW1lbnQgc3VwcG9ydHMgcXVlcnlTZWxlY3RvckFsbAogUEFTUyBEb2N1bWVu
dC5xdWVyeVNlbGVjdG9yQWxsIEVtcHR5IFN0cmluZwogUEFTUyBEb2N1bWVudC5xdWVyeVNlbGVj
dG9yQWxsIG51bGwKIFBBU1MgRG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCB1bmRlZmluZWQKLUZB
SUwgRG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCBubyB2YWx1ZQorUEFTUyBEb2N1bWVudC5xdWVy
eVNlbGVjdG9yQWxsIG5vIHZhbHVlCiBQQVNTIERvY3VtZW50LnF1ZXJ5U2VsZWN0b3IgRW1wdHkg
U3RyaW5nCiBQQVNTIERvY3VtZW50LnF1ZXJ5U2VsZWN0b3IgbnVsbAogUEFTUyBEb2N1bWVudC5x
dWVyeVNlbGVjdG9yIHVuZGVmaW5lZAotRkFJTCBEb2N1bWVudC5xdWVyeVNlbGVjdG9yIG5vIHZh
bHVlCitQQVNTIERvY3VtZW50LnF1ZXJ5U2VsZWN0b3Igbm8gdmFsdWUKIFBBU1MgRG9jdW1lbnQu
cXVlcnlTZWxlY3RvckFsbDogLnRhcmdldCA6dGFyZ2V0CiBQQVNTIERvY3VtZW50LnF1ZXJ5U2Vs
ZWN0b3JBbGwgV2hpdGVzcGFjZSBUcmltOiAudGFyZ2V0IDp0YXJnZXQKIFBBU1MgRG9jdW1lbnQu
cXVlcnlTZWxlY3RvcjogLnRhcmdldCA6dGFyZ2V0CkBAIC0xOTkyLDExICsxOTkyLDExIEBAIFBB
U1MgRG9jdW1lbnQucXVlcnlTZWxlY3RvcjogLnBsdXMgLnQxOmhvdmVyICsgLnVuaXRUZXN0ICsg
LnVuaXRUZXN0CiBQQVNTIFN5bnRheCBFcnJvcjogRG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCBF
bXB0eSBTdHJpbmcKIFBBU1MgU3ludGF4IEVycm9yOiBEb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxs
IG51bGwKIFBBU1MgU3ludGF4IEVycm9yOiBEb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsIHVuZGVm
aW5lZAotRkFJTCBTeW50YXggRXJyb3I6IERvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwgbm8gdmFs
dWUKK1BBU1MgU3ludGF4IEVycm9yOiBEb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsIG5vIHZhbHVl
CiBQQVNTIFN5bnRheCBFcnJvcjogRG9jdW1lbnQucXVlcnlTZWxlY3RvciBFbXB0eSBTdHJpbmcK
IFBBU1MgU3ludGF4IEVycm9yOiBEb2N1bWVudC5xdWVyeVNlbGVjdG9yIG51bGwKIFBBU1MgU3lu
dGF4IEVycm9yOiBEb2N1bWVudC5xdWVyeVNlbGVjdG9yIHVuZGVmaW5lZAotRkFJTCBTeW50YXgg
RXJyb3I6IERvY3VtZW50LnF1ZXJ5U2VsZWN0b3Igbm8gdmFsdWUKK1BBU1MgU3ludGF4IEVycm9y
OiBEb2N1bWVudC5xdWVyeVNlbGVjdG9yIG5vIHZhbHVlCiBQQVNTIFN5bnRheCBFcnJvcjogRG9j
dW1lbnQucXVlcnlTZWxlY3RvckFsbDogLmJsb3gxNjpub3QoLmJsb3gxNVtmb289ImJsb3gxNCJd
KQogUEFTUyBTeW50YXggRXJyb3I6IERvY3VtZW50LnF1ZXJ5U2VsZWN0b3I6IC5ibG94MTY6bm90
KC5ibG94MTVbZm9vPSJibG94MTQiXSkKIFBBU1MgU3ludGF4IEVycm9yOiBEb2N1bWVudC5xdWVy
eVNlbGVjdG9yQWxsOiBkaXY6bm90KDpub3QoZGl2KSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL1NlbGVjdG9yQVBJL3NjcmlwdC10ZXN0cy92aWV3bGVzcy1kb2N1bWVudC5qcyBi
L0xheW91dFRlc3RzL2Zhc3QvZG9tL1NlbGVjdG9yQVBJL3NjcmlwdC10ZXN0cy92aWV3bGVzcy1k
b2N1bWVudC5qcwppbmRleCA2NDA2MWIyLi5mZDQxNThlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9TZWxlY3RvckFQSS9zY3JpcHQtdGVzdHMvdmlld2xlc3MtZG9jdW1lbnQuanMK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vU2VsZWN0b3JBUEkvc2NyaXB0LXRlc3RzL3ZpZXds
ZXNzLWRvY3VtZW50LmpzCkBAIC0yLDcgKzIsNyBAQCBkZXNjcmlwdGlvbigKICJUaGlzIHRlc3Rz
IHRoYXQgcXVlcnlTZWxlY3RvciwgcXVlcnlTZWxlY3RvckFsbCBhbmQgbWF0Y2hlc1NlbGVjdG9y
ICh3ZWJraXRNYXRjaGVzU2VsZWN0b3IpIGRvbid0IGNyYXNoIHdoZW4gdXNlZCBpbiBhIHZpZXds
ZXNzIGRvY3VtZW50LiIKICk7CiAKLXZhciB0ZXN0RG9jID0gZG9jdW1lbnQuaW1wbGVtZW50YXRp
b24uY3JlYXRlRG9jdW1lbnQoImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiLCAiaHRtbCIp
OwordmFyIHRlc3REb2MgPSBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVEb2N1bWVudCgi
aHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIsICJodG1sIiwgbnVsbCk7CiB0ZXN0RG9jLmRv
Y3VtZW50RWxlbWVudC5hcHBlbmRDaGlsZCh0ZXN0RG9jLmNyZWF0ZUVsZW1lbnQoImJvZHkiKSk7
CiB0ZXN0RG9jLmJvZHkuYXBwZW5kQ2hpbGQodGVzdERvYy5jcmVhdGVFbGVtZW50KCJwIikpLmlk
ID0gInAxIjsKIHRlc3REb2MuZ2V0RWxlbWVudEJ5SWQoInAxIikuYXBwZW5kQ2hpbGQodGVzdERv
Yy5jcmVhdGVFbGVtZW50KCJzcGFuIikpLmlkID0gInMxIjsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZG9tL1N0eWxlU2hlZXQvb3duZXJOb2RlLWxpZmV0aW1lLTIuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvZG9tL1N0eWxlU2hlZXQvb3duZXJOb2RlLWxpZmV0aW1lLTIuaHRtbAppbmRl
eCBjYTZmYTE2Li5jYjVlYjE4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9TdHls
ZVNoZWV0L293bmVyTm9kZS1saWZldGltZS0yLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9k
b20vU3R5bGVTaGVldC9vd25lck5vZGUtbGlmZXRpbWUtMi5odG1sCkBAIC0yMSw3ICsyMSw3IEBA
IGZ1bmN0aW9uIHJ1blRlc3QoKSB7CiAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgaSsr
KQ0KICAgICAgIG5ldyBPYmplY3QoKTsNCiAgIH0gDQotICBzdHlsZVNoZWV0Lm93bmVyTm9kZS5j
bG9uZU5vZGUoKTsNCisgIHN0eWxlU2hlZXQub3duZXJOb2RlLmNsb25lTm9kZSh0cnVlKTsNCiAN
CiAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQiKS5pbm5lckhUTUwgPSAiVGVzdCBw
YXNzZWQuIjsNCiB9DQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vU3R5bGVTaGVl
dC9vd25lck5vZGUtbGlmZXRpbWUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1N0eWxlU2hl
ZXQvb3duZXJOb2RlLWxpZmV0aW1lLmh0bWwKaW5kZXggNTRiMWFjNC4uNGYxODY2MiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vU3R5bGVTaGVldC9vd25lck5vZGUtbGlmZXRpbWUu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9TdHlsZVNoZWV0L293bmVyTm9kZS1saWZl
dGltZS5odG1sCkBAIC0xNyw3ICsxNyw3IEBAIGZ1bmN0aW9uIHJ1blRlc3QoKQogICAgICAgICBz
ID0gcyArICIgIjsKICAgICB9CiAKLSAgICBzdHlsZVNoZWV0Lm93bmVyTm9kZS5jbG9uZU5vZGUo
KTsKKyAgICBzdHlsZVNoZWV0Lm93bmVyTm9kZS5jbG9uZU5vZGUodHJ1ZSk7CiAKICAgICBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0IikuaW5uZXJIVE1MID0gIlRlc3QgcGFzc2VkLiI7
CiB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvYWxlcnQtdW5kZWZp
bmVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9hbGVydC11bmRl
ZmluZWQtZXhwZWN0ZWQudHh0CmluZGV4IDM0YmVjNWYuLjgyN2U5MTkgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9hbGVydC11bmRlZmluZWQtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9hbGVydC11bmRlZmluZWQtZXhwZWN0ZWQu
dHh0CkBAIC00LDcgKzQsNCBAQCBDT05GSVJNOiB1bmRlZmluZWQKIENPTkZJUk06IG51bGwKIFBS
T01QVDogdW5kZWZpbmVkLCBkZWZhdWx0IHRleHQ6IAogUFJPTVBUOiBudWxsLCBkZWZhdWx0IHRl
eHQ6IAotQUxFUlQ6IHVuZGVmaW5lZAotQ09ORklSTTogdW5kZWZpbmVkCi1QUk9NUFQ6IHVuZGVm
aW5lZCwgZGVmYXVsdCB0ZXh0OiAKIFRoZSBhbGVydHMgdGhhdCBzaG93IHVwIChvciBpZiB0aGlz
IGlzIHJ1bm5pbmcgdW5kZXIgRFJULCB0aGF0IGlzIGR1bXBlZCkgc2hvdWxkIGNvbnRhaW4gdGV4
dDsgbm9uZSBzaG91bGQgYmUgZW1wdHkuIFRoaXMgaXNuJ3QgZW50aXJlbHkgY29uc2lzdGVudCB3
aXRoIG90aGVyIGJyb3dzZXJzIGluIGV2ZXJ5IGNhc2UsIGJ1dCBzaW5jZSB0aGVyZSdzIG5vIHJl
YWwgdXNlIGNhc2UgZm9yIHRoaXMsIGl0J3MgYmVzdCB0byBiZSBleHBsaWNpdCByYXRoZXIgdGhh
biBzdWJ0bGUgYW5kIGVtcHR5LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2lu
ZG93L2FsZXJ0LXVuZGVmaW5lZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L2Fs
ZXJ0LXVuZGVmaW5lZC5odG1sCmluZGV4IDM5NDYyMjYuLjJhNGIyNDMgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9hbGVydC11bmRlZmluZWQuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvYWxlcnQtdW5kZWZpbmVkLmh0bWwKQEAgLTEzLDEwICsx
Myw2IEBACiAgICAgICAgICAgICBjb25maXJtKG51bGwpOwogICAgICAgICAgICAgcHJvbXB0KHVu
ZGVmaW5lZCk7CiAgICAgICAgICAgICBwcm9tcHQobnVsbCk7Ci0KLSAgICAgICAgICAgIGFsZXJ0
KCk7Ci0gICAgICAgICAgICBjb25maXJtKCk7Ci0gICAgICAgICAgICBwcm9tcHQoKTsKICAgICAg
ICAgfQogICAgIDwvc2NyaXB0PgogPC9oZWFkPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9kb20vV2luZG93L2F0b2ItYnRvYS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9XaW5kb3cvYXRvYi1idG9hLWV4cGVjdGVkLnR4dAppbmRleCBjZWY3NmE3Li5iYmVlZGQzIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvYXRvYi1idG9hLWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvYXRvYi1idG9hLWV4cGVjdGVk
LnR4dApAQCAtMTEsNyArMTEsNyBAQCBQQVNTIHdpbmRvdy5idG9hKCJhYmNkIikgaXMgIllXSmpa
QT09IgogUEFTUyB3aW5kb3cuYnRvYSgiYWJjZGUiKSBpcyAiWVdKalpHVT0iCiBQQVNTIHdpbmRv
dy5idG9hKCJhYmNkZWYiKSBpcyAiWVdKalpHVm0iCiBQQVNTIHR5cGVvZiB3aW5kb3cuYnRvYSBp
cyAiZnVuY3Rpb24iCi1QQVNTIHdpbmRvdy5idG9hKCkgaXMgImRXNWtaV1pwYm1WayIKK1BBU1Mg
d2luZG93LmJ0b2EoKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3Vt
ZW50cy4KIFBBU1Mgd2luZG93LmJ0b2EoIiIpIGlzICIiCiBQQVNTIHdpbmRvdy5idG9hKG51bGwp
IGlzICIiCiBQQVNTIHdpbmRvdy5idG9hKHVuZGVmaW5lZCkgaXMgImRXNWtaV1pwYm1WayIKQEAg
LTIyLDcgKzIyLDcgQEAgUEFTUyB3aW5kb3cuYnRvYSgi0YLQtdGB0YIiKSB0aHJldyBleGNlcHRp
b24gRXJyb3I6IElOVkFMSURfQ0hBUkFDVEVSX0VSUjogRE9NIEUKIFBBU1Mgd2luZG93LmJ0b2Eg
aXMgMAogUEFTUyB0eXBlb2Ygd2luZG93LmJ0b2EgaXMgIm51bWJlciIKIFBBU1MgdHlwZW9mIHdp
bmRvdy5hdG9iIGlzICJmdW5jdGlvbiIKLVBBU1Mgd2luZG93LmF0b2IoKSB0aHJldyBleGNlcHRp
b24gRXJyb3I6IElOVkFMSURfQ0hBUkFDVEVSX0VSUjogRE9NIEV4Y2VwdGlvbiA1LgorUEFTUyB3
aW5kb3cuYXRvYigpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1l
bnRzLgogUEFTUyB3aW5kb3cuYXRvYigiIikgaXMgIiIKIFBBU1Mgd2luZG93LmF0b2IobnVsbCkg
aXMgIiIKIFBBU1Mgd2luZG93LmF0b2IodW5kZWZpbmVkKSB0aHJldyBleGNlcHRpb24gRXJyb3I6
IElOVkFMSURfQ0hBUkFDVEVSX0VSUjogRE9NIEV4Y2VwdGlvbiA1LgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L2F0b2ItYnRvYS5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9kb20vV2luZG93L2F0b2ItYnRvYS5odG1sCmluZGV4IGY2YWJiOTguLjNiYzk2OWYgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9hdG9iLWJ0b2EuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvYXRvYi1idG9hLmh0bWwKQEAgLTIyLDcgKzIyLDcg
QEAgc2hvdWxkQmUoJ3dpbmRvdy5idG9hKCJhYmNkZSIpJywgJyJZV0pqWkdVPSInKTsKIHNob3Vs
ZEJlKCd3aW5kb3cuYnRvYSgiYWJjZGVmIiknLCAnIllXSmpaR1ZtIicpOwogCiBzaG91bGRCZSgn
dHlwZW9mIHdpbmRvdy5idG9hJywgJyJmdW5jdGlvbiInKTsKLXNob3VsZEJlKCd3aW5kb3cuYnRv
YSgpJywgJyJkVzVrWldacGJtVmsiJyk7CitzaG91bGRUaHJvdygnd2luZG93LmJ0b2EoKScpOwog
c2hvdWxkQmUoJ3dpbmRvdy5idG9hKCIiKScsICciIicpOwogc2hvdWxkQmUoJ3dpbmRvdy5idG9h
KG51bGwpJywgJyIiJyk7CiBzaG91bGRCZSgnd2luZG93LmJ0b2EodW5kZWZpbmVkKScsICciZFc1
a1pXWnBibVZrIicpOwpAQCAtMzUsNyArMzUsNyBAQCBzaG91bGRCZSgnd2luZG93LmJ0b2EnLCAn
MCcpOwogc2hvdWxkQmUoJ3R5cGVvZiB3aW5kb3cuYnRvYScsICcibnVtYmVyIicpOwogCiBzaG91
bGRCZSgndHlwZW9mIHdpbmRvdy5hdG9iJywgJyJmdW5jdGlvbiInKTsKLXNob3VsZFRocm93KCd3
aW5kb3cuYXRvYigpJyk7IC8vICd1bmRlZmluZWQnIAorc2hvdWxkVGhyb3coJ3dpbmRvdy5hdG9i
KCknKTsKIHNob3VsZEJlKCd3aW5kb3cuYXRvYigiIiknLCAnIiInKTsKIHNob3VsZEJlKCd3aW5k
b3cuYXRvYihudWxsKScsICciIicpOwogc2hvdWxkVGhyb3coJ3dpbmRvdy5hdG9iKHVuZGVmaW5l
ZCknKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcmVz
aXplLWFuZC1tb3ZlLWFyZ3VtZW50cy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93
L3dpbmRvdy1yZXNpemUtYW5kLW1vdmUtYXJndW1lbnRzLmh0bWwKaW5kZXggOWNhZTFkMi4uOTdl
NjFiNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1yZXNp
emUtYW5kLW1vdmUtYXJndW1lbnRzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2lu
ZG93L3dpbmRvdy1yZXNpemUtYW5kLW1vdmUtYXJndW1lbnRzLmh0bWwKQEAgLTQyLDEzICs0Miwx
OSBAQAogICAgIGRlYnVnKCcnKTsKIAogICAgIGRlYnVnKCJUZXN0aW5nIC0gcmVzaXplVG8gd2l0
aCAwIGFyZ3VtZW50cyIpOwotICAgIHdpbmRvdy5yZXNpemVUbygpOworICAgIHRyeSB7CisgICAg
ICAgIHdpbmRvdy5yZXNpemVUbygpOworICAgIH0gY2F0Y2ggKGV4KSB7CisgICAgfQogICAgIHNo
b3VsZEJlKCd3aW5kb3cub3V0ZXJXaWR0aCcsICdyZXNldFdpZHRoJyk7CiAgICAgc2hvdWxkQmUo
J3dpbmRvdy5vdXRlckhlaWdodCcsICdyZXNldEhlaWdodCcpOwogICAgIHJlc2V0KCk7CiAKICAg
ICBkZWJ1ZygiVGVzdGluZyAtIHJlc2l6ZVRvIHdpdGggMSBhcmd1bWVudCIpOwotICAgIHdpbmRv
dy5yZXNpemVUbyh4KTsKKyAgICB0cnkgeworICAgICAgICB3aW5kb3cucmVzaXplVG8oeCk7Cisg
ICAgfSBjYXRjaCAoZXgpIHsKKyAgICB9CiAgICAgc2hvdWxkQmUoJ3dpbmRvdy5vdXRlcldpZHRo
JywgJ3Jlc2V0V2lkdGgnKTsKICAgICBzaG91bGRCZSgnd2luZG93Lm91dGVySGVpZ2h0JywgJ3Jl
c2V0SGVpZ2h0Jyk7CiAgICAgcmVzZXQoKTsKQEAgLTY1LDEzICs3MSwxOSBAQAogICAgIGRlYnVn
KCcnKTsKIAogICAgIGRlYnVnKCJUZXN0aW5nIC0gcmVzaXplQnkgd2l0aCAwIGFyZ3VtZW50cyIp
OwotICAgIHdpbmRvdy5yZXNpemVCeSgpOworICAgIHRyeSB7CisgICAgICAgIHdpbmRvdy5yZXNp
emVCeSgpOworICAgIH0gY2F0Y2ggKGV4KSB7CisgICAgfQogICAgIHNob3VsZEJlKCd3aW5kb3cu
b3V0ZXJXaWR0aCcsICdyZXNldFdpZHRoJyk7CiAgICAgc2hvdWxkQmUoJ3dpbmRvdy5vdXRlckhl
aWdodCcsICdyZXNldEhlaWdodCcpOwogICAgIHJlc2V0KCk7CiAKICAgICBkZWJ1ZygiVGVzdGlu
ZyAtIHJlc2l6ZUJ5IHdpdGggMSBhcmd1bWVudCIpOwotICAgIHdpbmRvdy5yZXNpemVCeSh4KTsK
KyAgICB0cnkgeworICAgICAgICB3aW5kb3cucmVzaXplQnkoeCk7CisgICAgfSBjYXRjaCAoZXgp
IHsKKyAgICB9CiAgICAgc2hvdWxkQmUoJ3dpbmRvdy5vdXRlcldpZHRoJywgJ3Jlc2V0V2lkdGgn
KTsKICAgICBzaG91bGRCZSgnd2luZG93Lm91dGVySGVpZ2h0JywgJ3Jlc2V0SGVpZ2h0Jyk7CiAg
ICAgcmVzZXQoKTsKQEAgLTg5LDEzICsxMDEsMTkgQEAKICAgICBkZWJ1ZygnJyk7CiAKICAgICBk
ZWJ1ZygiVGVzdGluZyAtIG1vdmVUbyB3aXRoIDAgYXJndW1lbnRzIik7Ci0gICAgd2luZG93Lm1v
dmVUbygpOworICAgIHRyeSB7CisgICAgICAgIHdpbmRvdy5tb3ZlVG8oKTsKKyAgICB9IGNhdGNo
IChleCkgeworICAgIH0KICAgICBzaG91bGRCZSgnd2luZG93LnNjcmVlblgnLCAncmVzZXRYJyk7
CiAgICAgc2hvdWxkQmUoJ3dpbmRvdy5zY3JlZW5ZJywgJ3Jlc2V0WScpOwogICAgIHJlc2V0KCk7
CiAKICAgICBkZWJ1ZygiVGVzdGluZyAtIG1vdmVUbyB3aXRoIDEgYXJndW1lbnQiKTsKLSAgICB3
aW5kb3cubW92ZVRvKHgpOworICAgIHRyeSB7CisgICAgICAgIHdpbmRvdy5tb3ZlVG8oeCk7Cisg
ICAgfSBjYXRjaCAoZXgpIHsKKyAgICB9CiAgICAgc2hvdWxkQmUoJ3dpbmRvdy5zY3JlZW5YJywg
J3Jlc2V0WCcpOwogICAgIHNob3VsZEJlKCd3aW5kb3cuc2NyZWVuWScsICdyZXNldFknKTsKICAg
ICByZXNldCgpOwpAQCAtMTE0LDEzICsxMzIsMTkgQEAKICAgICBkZWJ1ZygnJyk7CiAKICAgICBk
ZWJ1ZygiVGVzdGluZyAtIG1vdmVCeSB3aXRoIDAgYXJndW1lbnRzIik7Ci0gICAgd2luZG93Lm1v
dmVCeSgpOworICAgIHRyeSB7CisgICAgICAgIHdpbmRvdy5tb3ZlQnkoKTsKKyAgICB9IGNhdGNo
IChleCkgeworICAgIH0KICAgICBzaG91bGRCZSgnd2luZG93LnNjcmVlblgnLCAncmVzZXRYJyk7
CiAgICAgc2hvdWxkQmUoJ3dpbmRvdy5zY3JlZW5ZJywgJ3Jlc2V0WScpOwogICAgIHJlc2V0KCk7
CiAKICAgICBkZWJ1ZygiVGVzdGluZyAtIG1vdmVCeSB3aXRoIDEgYXJndW1lbnQiKTsKLSAgICB3
aW5kb3cubW92ZUJ5KHgpOworICAgIHRyeSB7CisgICAgICAgIHdpbmRvdy5tb3ZlQnkoeCk7Cisg
ICAgfSBjYXRjaCAoZXgpIHsKKyAgICB9CiAgICAgc2hvdWxkQmUoJ3dpbmRvdy5zY3JlZW5YJywg
J3Jlc2V0WCcpOwogICAgIHNob3VsZEJlKCd3aW5kb3cuc2NyZWVuWScsICdyZXNldFknKTsKICAg
ICByZXNldCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRv
dy1zY3JvbGwtYXJndW1lbnRzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2lu
ZG93LXNjcm9sbC1hcmd1bWVudHMuaHRtbAppbmRleCBhMzFmYzBmLi44ODNiOTFiIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXNjcm9sbC1hcmd1bWVudHMu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXNjcm9sbC1hcmd1
bWVudHMuaHRtbApAQCAtMzYsMTMgKzM2LDE5IEBACiAgICAgZGVidWcoJycpOwogCiAgICAgZGVi
dWcoIlRlc3RpbmcgLSBzY3JvbGxUbyB3aXRoIDAgYXJndW1lbnRzIik7Ci0gICAgd2luZG93LnNj
cm9sbFRvKCk7CisgICAgdHJ5IHsKKyAgICAgICAgd2luZG93LnNjcm9sbFRvKCk7CisgICAgfSBj
YXRjaCAoZXgpIHsKKyAgICB9CiAgICAgc2hvdWxkQmUoJ3dpbmRvdy5zY3JvbGxYJywgJ3Jlc2V0
WCcpOwogICAgIHNob3VsZEJlKCd3aW5kb3cuc2Nyb2xsWScsICdyZXNldFknKTsKICAgICByZXNl
dCgpOwogCiAgICAgZGVidWcoIlRlc3RpbmcgLSBzY3JvbGxUbyB3aXRoIDEgYXJndW1lbnQiKTsK
LSAgICB3aW5kb3cuc2Nyb2xsVG8oeCk7CisgICAgdHJ5IHsKKyAgICAgICAgd2luZG93LnNjcm9s
bFRvKHgpOworICAgIH0gY2F0Y2ggKGV4KSB7CisgICAgfQogICAgIHNob3VsZEJlKCd3aW5kb3cu
c2Nyb2xsWCcsICdyZXNldFgnKTsKICAgICBzaG91bGRCZSgnd2luZG93LnNjcm9sbFknLCAncmVz
ZXRZJyk7CiAgICAgcmVzZXQoKTsKQEAgLTU5LDEzICs2NSwxOSBAQAogICAgIGRlYnVnKCcnKTsK
IAogICAgIGRlYnVnKCJUZXN0aW5nIC0gc2Nyb2xsIHdpdGggMCBhcmd1bWVudHMiKTsKLSAgICB3
aW5kb3cuc2Nyb2xsKCk7CisgICAgdHJ5IHsKKyAgICAgICAgd2luZG93LnNjcm9sbCgpOworICAg
IH0gY2F0Y2ggKGV4KSB7CisgICAgfQogICAgIHNob3VsZEJlKCd3aW5kb3cuc2Nyb2xsWCcsICdy
ZXNldFgnKTsKICAgICBzaG91bGRCZSgnd2luZG93LnNjcm9sbFknLCAncmVzZXRZJyk7CiAgICAg
cmVzZXQoKTsKIAogICAgIGRlYnVnKCJUZXN0aW5nIC0gc2Nyb2xsIHdpdGggMSBhcmd1bWVudCIp
OwotICAgIHdpbmRvdy5zY3JvbGwoeCk7CisgICAgdHJ5IHsKKyAgICAgICAgd2luZG93LnNjcm9s
bCh4KTsKKyAgICB9IGNhdGNoIChleCkgeworICAgIH0KICAgICBzaG91bGRCZSgnd2luZG93LnNj
cm9sbFgnLCAncmVzZXRYJyk7CiAgICAgc2hvdWxkQmUoJ3dpbmRvdy5zY3JvbGxZJywgJ3Jlc2V0
WScpOwogICAgIHJlc2V0KCk7CkBAIC04MiwxMyArOTQsMTkgQEAKICAgICBkZWJ1ZygnJyk7CiAK
ICAgICBkZWJ1ZygiVGVzdGluZyAtIHNjcm9sbEJ5IHdpdGggMCBhcmd1bWVudHMiKTsKLSAgICB3
aW5kb3cuc2Nyb2xsQnkoKTsKKyAgICB0cnkgeworICAgICAgICB3aW5kb3cuc2Nyb2xsQnkoKTsK
KyAgICB9IGNhdGNoIChleCkgeworICAgIH0KICAgICBzaG91bGRCZSgnd2luZG93LnNjcm9sbFgn
LCAncmVzZXRYJyk7CiAgICAgc2hvdWxkQmUoJ3dpbmRvdy5zY3JvbGxZJywgJ3Jlc2V0WScpOwog
ICAgIHJlc2V0KCk7CiAKICAgICBkZWJ1ZygiVGVzdGluZyAtIHNjcm9sbEJ5IHdpdGggMSBhcmd1
bWVudCIpOwotICAgIHdpbmRvdy5zY3JvbGxCeSh4KTsKKyAgICB0cnkgeworICAgICAgICB3aW5k
b3cuc2Nyb2xsQnkoeCk7CisgICAgfSBjYXRjaCAoZXgpIHsKKyAgICB9CiAgICAgc2hvdWxkQmUo
J3dpbmRvdy5zY3JvbGxYJywgJ3Jlc2V0WCcpOwogICAgIHNob3VsZEJlKCd3aW5kb3cuc2Nyb2xs
WScsICdyZXNldFknKTsKICAgICByZXNldCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9kb20vYXR0cmlidXRlLWRvd25jYXN0LXJpZ2h0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9hdHRyaWJ1dGUtZG93bmNhc3QtcmlnaHQuaHRtbAppbmRleCAwYmM2NDFkLi43NmM1YjFkIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9hdHRyaWJ1dGUtZG93bmNhc3QtcmlnaHQu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9hdHRyaWJ1dGUtZG93bmNhc3QtcmlnaHQu
aHRtbApAQCAtMywxMCArMywxMCBAQCBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQog
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKIAogdmFyIG9FbGVtZW50ID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgicyIpCi12YXIgb0VsZW1lbnROUyA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnROUygpOwotb0VsZW1lbnROUy5zZXRBdHRyaWJ1dGVOUygpOwotdmFyIG9BdHRy
aWJ1dGVOUyA9IG9FbGVtZW50TlMuZ2V0QXR0cmlidXRlTm9kZU5TKCk7Ci12YXIgb0F0dHJpYnV0
ZU5TQ2xvbmUgPSBvQXR0cmlidXRlTlMuY2xvbmVOb2RlKCk7Cit2YXIgb0VsZW1lbnROUyA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIsImh0
bWw6cyIpOworb0VsZW1lbnROUy5zZXRBdHRyaWJ1dGVOUygiaHR0cDovL3d3dy53My5vcmcvMTk5
OS94aHRtbCIsInRpdGxlIiwgImZvbyIpOwordmFyIG9BdHRyaWJ1dGVOUyA9IG9FbGVtZW50TlMu
Z2V0QXR0cmlidXRlTm9kZU5TKCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiwidGl0bGUi
KTsKK3ZhciBvQXR0cmlidXRlTlNDbG9uZSA9IG9BdHRyaWJ1dGVOUy5jbG9uZU5vZGUodHJ1ZSk7
CiBvRWxlbWVudC5zZXRBdHRyaWJ1dGVOb2RlKG9BdHRyaWJ1dGVOU0Nsb25lKTsKIDwvU0NSSVBU
PgogPEJPRFk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9jb21wdXRlZC1zdHls
ZS1zZXQtcHJvcGVydHkuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL2NvbXB1dGVkLXN0eWxl
LXNldC1wcm9wZXJ0eS5odG1sCmluZGV4IDE3NWE2YmUuLmE1N2Q0MjMgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL2NvbXB1dGVkLXN0eWxlLXNldC1wcm9wZXJ0eS5odG1sCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZG9tL2NvbXB1dGVkLXN0eWxlLXNldC1wcm9wZXJ0eS5odG1sCkBA
IC0xNCw3ICsxNCw3IEBAIHRyeSB7CiB9CiAKIHRyeSB7Ci0gIGRvY3VtZW50LmRlZmF1bHRWaWV3
LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuYm9keSwgbnVsbCkuc2V0UHJvcGVydHkoImNvbG9y
IiwgImJsdWUiKTsKKyAgZG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1
bWVudC5ib2R5LCBudWxsKS5zZXRQcm9wZXJ0eSgiY29sb3IiLCAiYmx1ZSIsIG51bGwpOwogICBk
b2N1bWVudC53cml0ZSgiPHA+RkFJTDogZGlkIG5vdCBnZXQgYW4gZXhjZXB0aW9uIHdoZW4gdHJ5
aW5nIHRvIGNoYW5nZSBhIGNvbXB1dGVkIHN0eWxlIGRlY2xhcmF0aW9uIHZpYSBzZXRQcm9wZXJ0
eS4iKTsKIH0gY2F0Y2ggKGV4KSB7CiAgIGRvY3VtZW50LndyaXRlKCI8cD5QQVNTOiBnb3QgYW4g
ZXhjZXB0aW9uIHdoZW4gdHJ5aW5nIHRvIGNoYW5nZSBhIGNvbXB1dGVkIHN0eWxlIGRlY2xhcmF0
aW9uIHZpYSBzZXRQcm9wZXJ0eSwgIiArIGV4KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZG9tL2dldEVsZW1lbnRzQnlDbGFzc05hbWUvZHVtcE5vZGVMaXN0LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2Zhc3QvZG9tL2dldEVsZW1lbnRzQnlDbGFzc05hbWUvZHVtcE5vZGVMaXN0
LWV4cGVjdGVkLnR4dAppbmRleCAzNzNmZmJjLi5mMGYwOTZhIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9nZXRFbGVtZW50c0J5Q2xhc3NOYW1lL2R1bXBOb2RlTGlzdC1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vZ2V0RWxlbWVudHNCeUNsYXNzTmFtZS9k
dW1wTm9kZUxpc3QtZXhwZWN0ZWQudHh0CkBAIC0xMyw3ICsxMyw2IEBAIGxlbmd0aDogMAogbGVu
Z3RoOiAwCiBsZW5ndGg6IDAKIGxlbmd0aDogMAotbGVuZ3RoOiAwCiBbb2JqZWN0IEhUTUxEaXZF
bGVtZW50XSwgbGVuZ3RoOiAxCiBbb2JqZWN0IEhUTUxEaXZFbGVtZW50XSwgW29iamVjdCBIVE1M
UGFyYWdyYXBoRWxlbWVudF0sIGxlbmd0aDogMgogW29iamVjdCBIVE1MRGl2RWxlbWVudF0sIGxl
bmd0aDogMQpAQCAtMjIsNSArMjEsNCBAQCBsZW5ndGg6IDAKIGxlbmd0aDogMAogbGVuZ3RoOiAw
CiBsZW5ndGg6IDAKLWxlbmd0aDogMAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9nZXRFbGVtZW50c0J5Q2xhc3NOYW1lL2R1bXBOb2RlTGlzdC5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vZ2V0RWxlbWVudHNCeUNsYXNzTmFtZS9kdW1wTm9kZUxpc3QuaHRtbAppbmRleCA4
NmJkNDJlLi5jZmZmMTI3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9nZXRFbGVt
ZW50c0J5Q2xhc3NOYW1lL2R1bXBOb2RlTGlzdC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL2dldEVsZW1lbnRzQnlDbGFzc05hbWUvZHVtcE5vZGVMaXN0Lmh0bWwKQEAgLTMzLDcgKzMz
LDYgQEAKICAgICAgICAgbG9nKGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoIm9uZVx0
XHRcbiBcZnR3byIpLmR1bXAoKSk7CiAgICAgICAgIGxvZyhkb2N1bWVudC5nZXRFbGVtZW50c0J5
Q2xhc3NOYW1lKCIiKS5kdW1wKCkpOwogICAgICAgICBsb2coZG9jdW1lbnQuZ2V0RWxlbWVudHNC
eUNsYXNzTmFtZSgib25ldHdvIikuZHVtcCgpKTsKLSAgICAgICAgbG9nKGRvY3VtZW50LmdldEVs
ZW1lbnRzQnlDbGFzc05hbWUoKS5kdW1wKCkpOwogICAgICAgICBsb2coZG9jdW1lbnQuZ2V0RWxl
bWVudHNCeUNsYXNzTmFtZShudWxsKS5kdW1wKCkpOwogICAgICAgICBsb2coZG9jdW1lbnQuZ2V0
RWxlbWVudHNCeUNsYXNzTmFtZSh1bmRlZmluZWQpLmR1bXAoKSk7CiAKQEAgLTQzLDcgKzQyLDYg
QEAKICAgICAgICAgbG9nKGVsbS5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJvbmVcdFx0XG4gXGZ0
d28iKS5kdW1wKCkpOwogICAgICAgICBsb2coZWxtLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoIiIp
LmR1bXAoKSk7CiAgICAgICAgIGxvZyhlbG0uZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgib25ldHdv
IikuZHVtcCgpKTsKLSAgICAgICAgbG9nKGVsbS5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCkuZHVt
cCgpKTsKICAgICAgICAgbG9nKGVsbS5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKG51bGwpLmR1bXAo
KSk7CiAgICAgICAgIGxvZyhlbG0uZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSh1bmRlZmluZWQpLmR1
bXAoKSk7CiAgICAgfSBjYXRjaCAoZXgpIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL2ltcG9ydE5vZGUtbnVsbC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vaW1wb3J0Tm9k
ZS1udWxsLmh0bWwKaW5kZXggOGIyZWRjMC4uMTkxODczNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9kb20vaW1wb3J0Tm9kZS1udWxsLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9k
b20vaW1wb3J0Tm9kZS1udWxsLmh0bWwKQEAgLTE3LDcgKzE3LDcgQEAgZnVuY3Rpb24gdGVzdCgp
CiAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKICAgICAgICAgCiAg
ICAgdHJ5IHsKLSAgICAgICAgZG9jdW1lbnQuaW1wb3J0Tm9kZShudWxsKTsKKyAgICAgICAgZG9j
dW1lbnQuaW1wb3J0Tm9kZShudWxsLCB0cnVlKTsKICAgICB9IGNhdGNoKGUpIHsKICAgICAgICAg
cHJpbnQoImNhdWdodCBleGNlcHRpb246ICIgKyBlKTsKICAgICB9IGZpbmFsbHkgewpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vbmF2aWdhdG9yLWRldGFjaGVkLW5vLWNyYXNoLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL25hdmlnYXRvci1kZXRhY2hlZC1uby1j
cmFzaC1leHBlY3RlZC50eHQKaW5kZXggODg1YzgzMS4uNDgyN2JlOSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9kb20vbmF2aWdhdG9yLWRldGFjaGVkLW5vLWNyYXNoLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9uYXZpZ2F0b3ItZGV0YWNoZWQtbm8tY3Jhc2gt
ZXhwZWN0ZWQudHh0CkBAIC0xMyw4ICsxMyw4IEBAIG5hdmlnYXRvci5wbGF0Zm9ybSBpcyBPSwog
bmF2aWdhdG9yLnBsdWdpbnMgaXMgT0sKIG5hdmlnYXRvci5wcm9kdWN0IGlzIE9LCiBuYXZpZ2F0
b3IucHJvZHVjdFN1YiBpcyBPSwotbmF2aWdhdG9yLnJlZ2lzdGVyQ29udGVudEhhbmRsZXIoKSB0
aHJldyBlcnIgRXJyb3I6IFNZTlRBWF9FUlI6IERPTSBFeGNlcHRpb24gMTIKLW5hdmlnYXRvci5y
ZWdpc3RlclByb3RvY29sSGFuZGxlcigpIHRocmV3IGVyciBFcnJvcjogU1lOVEFYX0VSUjogRE9N
IEV4Y2VwdGlvbiAxMgorbmF2aWdhdG9yLnJlZ2lzdGVyQ29udGVudEhhbmRsZXIoKSB0aHJldyBl
cnIgVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cworbmF2aWdhdG9yLnJlZ2lzdGVyUHJv
dG9jb2xIYW5kbGVyKCkgdGhyZXcgZXJyIFR5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMK
IG5hdmlnYXRvci51c2VyQWdlbnQgaXMgT0sKIG5hdmlnYXRvci52ZW5kb3IgaXMgT0sKIG5hdmln
YXRvci52ZW5kb3JTdWIgaXMgT0sKQEAgLTMxLDggKzMxLDggQEAgbmF2aWdhdG9yLnBsYXRmb3Jt
IGlzIE9LCiBuYXZpZ2F0b3IucGx1Z2lucyBpcyBPSwogbmF2aWdhdG9yLnByb2R1Y3QgaXMgT0sK
IG5hdmlnYXRvci5wcm9kdWN0U3ViIGlzIE9LCi1uYXZpZ2F0b3IucmVnaXN0ZXJDb250ZW50SGFu
ZGxlcigpIGlzIE9LCi1uYXZpZ2F0b3IucmVnaXN0ZXJQcm90b2NvbEhhbmRsZXIoKSBpcyBPSwor
bmF2aWdhdG9yLnJlZ2lzdGVyQ29udGVudEhhbmRsZXIoKSB0aHJldyBlcnIgVHlwZUVycm9yOiBO
b3QgZW5vdWdoIGFyZ3VtZW50cworbmF2aWdhdG9yLnJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyKCkg
dGhyZXcgZXJyIFR5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMKIG5hdmlnYXRvci51c2Vy
QWdlbnQgaXMgT0sKIG5hdmlnYXRvci52ZW5kb3IgaXMgT0sKIG5hdmlnYXRvci52ZW5kb3JTdWIg
aXMgT0sKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL25vbi1udW1lcmljLXZhbHVl
cy1udW1lcmljLXBhcmFtZXRlcnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20v
bm9uLW51bWVyaWMtdmFsdWVzLW51bWVyaWMtcGFyYW1ldGVycy1leHBlY3RlZC50eHQKaW5kZXgg
NjhiNWI2Ny4uYWQyMDY3MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vbm9uLW51
bWVyaWMtdmFsdWVzLW51bWVyaWMtcGFyYW1ldGVycy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9kb20vbm9uLW51bWVyaWMtdmFsdWVzLW51bWVyaWMtcGFyYW1ldGVycy1leHBl
Y3RlZC50eHQKQEAgLTQsMjUgKzQsMjUgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIAogCiBQ
QVNTIG5vbk51bWVyaWNQb2xpY3koJ2RvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJhIikuc3Vic3Ry
aW5nRGF0YSh4LCAwKScpIGlzICdhbnkgdHlwZSBhbGxvd2VkJwotUEFTUyBub25OdW1lcmljUG9s
aWN5KCdkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiYSIpLnN1YnN0cmluZ0RhdGEoMCwgeCknKSBp
cyAnYW55IHR5cGUgYWxsb3dlZCcKK1BBU1Mgbm9uTnVtZXJpY1BvbGljeSgnZG9jdW1lbnQuY3Jl
YXRlVGV4dE5vZGUoImEiKS5zdWJzdHJpbmdEYXRhKDAsIHgpJykgaXMgJ2FueSB0eXBlIGFsbG93
ZWQgKGJ1dCBub3Qgb21pdHRlZCknCiBQQVNTIG5vbk51bWVyaWNQb2xpY3koJ2RvY3VtZW50LmNy
ZWF0ZVRleHROb2RlKCJhIikuaW5zZXJ0RGF0YSh4LCAiYiIpJykgaXMgJ2FueSB0eXBlIGFsbG93
ZWQnCiBQQVNTIG5vbk51bWVyaWNQb2xpY3koJ2RvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJhIiku
ZGVsZXRlRGF0YSh4LCAwKScpIGlzICdhbnkgdHlwZSBhbGxvd2VkJwotUEFTUyBub25OdW1lcmlj
UG9saWN5KCdkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiYSIpLmRlbGV0ZURhdGEoMCwgeCknKSBp
cyAnYW55IHR5cGUgYWxsb3dlZCcKK1BBU1Mgbm9uTnVtZXJpY1BvbGljeSgnZG9jdW1lbnQuY3Jl
YXRlVGV4dE5vZGUoImEiKS5kZWxldGVEYXRhKDAsIHgpJykgaXMgJ2FueSB0eXBlIGFsbG93ZWQg
KGJ1dCBub3Qgb21pdHRlZCknCiBQQVNTIG5vbk51bWVyaWNQb2xpY3koJ2RvY3VtZW50LmNyZWF0
ZVRleHROb2RlKCJhIikucmVwbGFjZURhdGEoeCwgMCwgImIiKScpIGlzICdhbnkgdHlwZSBhbGxv
d2VkJwogUEFTUyBub25OdW1lcmljUG9saWN5KCdkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiYSIp
LnJlcGxhY2VEYXRhKDAsIHgsICJiIiknKSBpcyAnYW55IHR5cGUgYWxsb3dlZCcKLVBBU1Mgbm9u
TnVtZXJpY1BvbGljeSgnY3JlYXRlQ1NTTWVkaWFSdWxlKCkuaW5zZXJ0UnVsZShydWxlVGV4dCwg
eCknKSBpcyAnYW55IHR5cGUgYWxsb3dlZCcKLVBBU1Mgbm9uTnVtZXJpY1BvbGljeSgnY3JlYXRl
Q1NTTWVkaWFSdWxlKCkuZGVsZXRlUnVsZSh4KScpIGlzICdhbnkgdHlwZSBhbGxvd2VkJwotUEFT
UyBub25OdW1lcmljUG9saWN5KCdjcmVhdGVDU1NSdWxlTGlzdCgpLml0ZW0oeCknKSBpcyAnYW55
IHR5cGUgYWxsb3dlZCcKLVBBU1Mgbm9uTnVtZXJpY1BvbGljeSgnY3JlYXRlQ1NTU3R5bGVEZWNs
YXJhdGlvbigpLml0ZW0oeCknKSBpcyAnYW55IHR5cGUgYWxsb3dlZCcKLVBBU1Mgbm9uTnVtZXJp
Y1BvbGljeSgnY3JlYXRlQ1NTU3R5bGVTaGVldCgpLmluc2VydFJ1bGUocnVsZVRleHQsIHgpJykg
aXMgJ2FueSB0eXBlIGFsbG93ZWQnCi1QQVNTIG5vbk51bWVyaWNQb2xpY3koJ2NyZWF0ZUNTU1N0
eWxlU2hlZXQoKS5kZWxldGVSdWxlKHgpJykgaXMgJ2FueSB0eXBlIGFsbG93ZWQnCitQQVNTIG5v
bk51bWVyaWNQb2xpY3koJ2NyZWF0ZUNTU01lZGlhUnVsZSgpLmluc2VydFJ1bGUocnVsZVRleHQs
IHgpJykgaXMgJ2FueSB0eXBlIGFsbG93ZWQgKGJ1dCBub3Qgb21pdHRlZCknCitQQVNTIG5vbk51
bWVyaWNQb2xpY3koJ2NyZWF0ZUNTU01lZGlhUnVsZSgpLmRlbGV0ZVJ1bGUoeCknKSBpcyAnYW55
IHR5cGUgYWxsb3dlZCAoYnV0IG5vdCBvbWl0dGVkKScKK1BBU1Mgbm9uTnVtZXJpY1BvbGljeSgn
Y3JlYXRlQ1NTUnVsZUxpc3QoKS5pdGVtKHgpJykgaXMgJ2FueSB0eXBlIGFsbG93ZWQgKGJ1dCBu
b3Qgb21pdHRlZCknCitQQVNTIG5vbk51bWVyaWNQb2xpY3koJ2NyZWF0ZUNTU1N0eWxlRGVjbGFy
YXRpb24oKS5pdGVtKHgpJykgaXMgJ2FueSB0eXBlIGFsbG93ZWQgKGJ1dCBub3Qgb21pdHRlZCkn
CitQQVNTIG5vbk51bWVyaWNQb2xpY3koJ2NyZWF0ZUNTU1N0eWxlU2hlZXQoKS5pbnNlcnRSdWxl
KHJ1bGVUZXh0LCB4KScpIGlzICdhbnkgdHlwZSBhbGxvd2VkIChidXQgbm90IG9taXR0ZWQpJwor
UEFTUyBub25OdW1lcmljUG9saWN5KCdjcmVhdGVDU1NTdHlsZVNoZWV0KCkuZGVsZXRlUnVsZSh4
KScpIGlzICdhbnkgdHlwZSBhbGxvd2VkIChidXQgbm90IG9taXR0ZWQpJwogUEFTUyBub25OdW1l
cmljUG9saWN5KCdjcmVhdGVDU1NTdHlsZVNoZWV0KCkuYWRkUnVsZShzZWxlY3Rvciwgc3R5bGVU
ZXh0LCB4KScpIGlzICdhbnkgdHlwZSBhbGxvd2VkJwotUEFTUyBub25OdW1lcmljUG9saWN5KCdj
cmVhdGVDU1NTdHlsZVNoZWV0KCkucmVtb3ZlUnVsZSh4KScpIGlzICdhbnkgdHlwZSBhbGxvd2Vk
JwotUEFTUyBub25OdW1lcmljUG9saWN5KCdjcmVhdGVDU1NWYWx1ZUxpc3QoKS5pdGVtKHgpJykg
aXMgJ2FueSB0eXBlIGFsbG93ZWQnCitQQVNTIG5vbk51bWVyaWNQb2xpY3koJ2NyZWF0ZUNTU1N0
eWxlU2hlZXQoKS5yZW1vdmVSdWxlKHgpJykgaXMgJ2FueSB0eXBlIGFsbG93ZWQgKGJ1dCBub3Qg
b21pdHRlZCknCitQQVNTIG5vbk51bWVyaWNQb2xpY3koJ2NyZWF0ZUNTU1ZhbHVlTGlzdCgpLml0
ZW0oeCknKSBpcyAnYW55IHR5cGUgYWxsb3dlZCAoYnV0IG5vdCBvbWl0dGVkKScKIFBBU1Mgbm9u
TnVtZXJpY1BvbGljeSgnZG9jdW1lbnQuZWxlbWVudEZyb21Qb2ludCh4LCAwKScpIGlzICdhbnkg
dHlwZSBhbGxvd2VkJwotUEFTUyBub25OdW1lcmljUG9saWN5KCdkb2N1bWVudC5lbGVtZW50RnJv
bVBvaW50KDAsIHgpJykgaXMgJ2FueSB0eXBlIGFsbG93ZWQnCi1QQVNTIG5vbk51bWVyaWNQb2xp
Y3koJ2RvY3VtZW50LmJvZHkuc2Nyb2xsQnlMaW5lcyh4KScpIGlzICdhbnkgdHlwZSBhbGxvd2Vk
JwotUEFTUyBub25OdW1lcmljUG9saWN5KCdkb2N1bWVudC5ib2R5LnNjcm9sbEJ5UGFnZXMoeCkn
KSBpcyAnYW55IHR5cGUgYWxsb3dlZCcKK1BBU1Mgbm9uTnVtZXJpY1BvbGljeSgnZG9jdW1lbnQu
ZWxlbWVudEZyb21Qb2ludCgwLCB4KScpIGlzICdhbnkgdHlwZSBhbGxvd2VkIChidXQgbm90IG9t
aXR0ZWQpJworUEFTUyBub25OdW1lcmljUG9saWN5KCdkb2N1bWVudC5ib2R5LnNjcm9sbEJ5TGlu
ZXMoeCknKSBpcyAnYW55IHR5cGUgYWxsb3dlZCAoYnV0IG5vdCBvbWl0dGVkKScKK1BBU1Mgbm9u
TnVtZXJpY1BvbGljeSgnZG9jdW1lbnQuYm9keS5zY3JvbGxCeVBhZ2VzKHgpJykgaXMgJ2FueSB0
eXBlIGFsbG93ZWQgKGJ1dCBub3Qgb21pdHRlZCknCiBQQVNTIG5vbk51bWVyaWNQb2xpY3koJ2Rv
Y3VtZW50LmJvZHkuc2Nyb2xsTGVmdCA9IHgnKSBpcyAnYW55IHR5cGUgYWxsb3dlZCcKIFBBU1Mg
bm9uTnVtZXJpY1BvbGljeSgnZG9jdW1lbnQuYm9keS5zY3JvbGxUb3AgPSB4JykgaXMgJ2FueSB0
eXBlIGFsbG93ZWQnCiBQQVNTIG5vbk51bWVyaWNQb2xpY3koJ2RvY3VtZW50LmltYWdlcy5pdGVt
KHgpJykgaXMgJ2FueSB0eXBlIGFsbG93ZWQnCkBAIC0zMCw1NyArMzAsNTcgQEAgUEFTUyBub25O
dW1lcmljUG9saWN5KCdkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpLnNldFNlbGVjdGlv
blJhbmdlKHgsIDApJykKIFBBU1Mgbm9uTnVtZXJpY1BvbGljeSgnZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgiaW5wdXQiKS5zZXRTZWxlY3Rpb25SYW5nZSgwLCB4KScpIGlzICdhbnkgdHlwZSBhbGxv
d2VkJwogUEFTUyBub25OdW1lcmljUG9saWN5KCdjcmVhdGVIVE1MT3B0aW9uc0NvbGxlY3Rpb24o
KS5hZGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgib3B0aW9uIiksIHgpJykgaXMgJ251bWJlciBv
ciBudWxsIGFsbG93ZWQgKG9yIG9taXR0ZWQsIGJ1dCBub3QgaW5maW5pdGUpJwogUEFTUyBub25O
dW1lcmljUG9saWN5KCdjcmVhdGVIVE1MT3B0aW9uc0NvbGxlY3Rpb24oKS5yZW1vdmUoeCknKSBp
cyAnYW55IHR5cGUgYWxsb3dlZCcKLVBBU1Mgbm9uTnVtZXJpY1BvbGljeSgnY3JlYXRlSFRNTFNl
bGVjdEVsZW1lbnQoKS5yZW1vdmUoeCknKSBpcyAnYW55IHR5cGUgYWxsb3dlZCcKLVBBU1Mgbm9u
TnVtZXJpY1BvbGljeSgnY3JlYXRlSFRNTFNlbGVjdEVsZW1lbnQoKS5pdGVtKHgpJykgaXMgJ2Fu
eSB0eXBlIGFsbG93ZWQnCi1QQVNTIG5vbk51bWVyaWNQb2xpY3koJ2NyZWF0ZUhUTUxUYWJsZUVs
ZW1lbnQoKS5pbnNlcnRSb3coeCknKSBpcyAnYW55IHR5cGUgYWxsb3dlZCcKLVBBU1Mgbm9uTnVt
ZXJpY1BvbGljeSgnY3JlYXRlSFRNTFRhYmxlRWxlbWVudCgpLmRlbGV0ZVJvdyh4KScpIGlzICdh
bnkgdHlwZSBhbGxvd2VkJwotUEFTUyBub25OdW1lcmljUG9saWN5KCdjcmVhdGVIVE1MVGFibGVS
b3dFbGVtZW50KCkuaW5zZXJ0Q2VsbCh4KScpIGlzICdhbnkgdHlwZSBhbGxvd2VkJwotUEFTUyBu
b25OdW1lcmljUG9saWN5KCdjcmVhdGVIVE1MVGFibGVSb3dFbGVtZW50KCkuZGVsZXRlQ2VsbCh4
KScpIGlzICdhbnkgdHlwZSBhbGxvd2VkJwotUEFTUyBub25OdW1lcmljUG9saWN5KCdjcmVhdGVI
VE1MVGFibGVTZWN0aW9uRWxlbWVudCgpLmluc2VydFJvdyh4KScpIGlzICdhbnkgdHlwZSBhbGxv
d2VkJwotUEFTUyBub25OdW1lcmljUG9saWN5KCdjcmVhdGVIVE1MVGFibGVTZWN0aW9uRWxlbWVu
dCgpLmRlbGV0ZVJvdyh4KScpIGlzICdhbnkgdHlwZSBhbGxvd2VkJworRkFJTCBub25OdW1lcmlj
UG9saWN5KCdjcmVhdGVIVE1MU2VsZWN0RWxlbWVudCgpLnJlbW92ZSh4KScpIHNob3VsZCBiZSBh
bnkgdHlwZSBhbGxvd2VkIChidXQgbm90IG9taXR0ZWQpLiBXYXMgYW55IHR5cGUgYWxsb3dlZC4K
K1BBU1Mgbm9uTnVtZXJpY1BvbGljeSgnY3JlYXRlSFRNTFNlbGVjdEVsZW1lbnQoKS5pdGVtKHgp
JykgaXMgJ2FueSB0eXBlIGFsbG93ZWQgKGJ1dCBub3Qgb21pdHRlZCknCitQQVNTIG5vbk51bWVy
aWNQb2xpY3koJ2NyZWF0ZUhUTUxUYWJsZUVsZW1lbnQoKS5pbnNlcnRSb3coeCknKSBpcyAnYW55
IHR5cGUgYWxsb3dlZCAoYnV0IG5vdCBvbWl0dGVkKScKK1BBU1Mgbm9uTnVtZXJpY1BvbGljeSgn
Y3JlYXRlSFRNTFRhYmxlRWxlbWVudCgpLmRlbGV0ZVJvdyh4KScpIGlzICdhbnkgdHlwZSBhbGxv
d2VkIChidXQgbm90IG9taXR0ZWQpJworUEFTUyBub25OdW1lcmljUG9saWN5KCdjcmVhdGVIVE1M
VGFibGVSb3dFbGVtZW50KCkuaW5zZXJ0Q2VsbCh4KScpIGlzICdhbnkgdHlwZSBhbGxvd2VkIChi
dXQgbm90IG9taXR0ZWQpJworUEFTUyBub25OdW1lcmljUG9saWN5KCdjcmVhdGVIVE1MVGFibGVS
b3dFbGVtZW50KCkuZGVsZXRlQ2VsbCh4KScpIGlzICdhbnkgdHlwZSBhbGxvd2VkIChidXQgbm90
IG9taXR0ZWQpJworUEFTUyBub25OdW1lcmljUG9saWN5KCdjcmVhdGVIVE1MVGFibGVTZWN0aW9u
RWxlbWVudCgpLmluc2VydFJvdyh4KScpIGlzICdhbnkgdHlwZSBhbGxvd2VkIChidXQgbm90IG9t
aXR0ZWQpJworUEFTUyBub25OdW1lcmljUG9saWN5KCdjcmVhdGVIVE1MVGFibGVTZWN0aW9uRWxl
bWVudCgpLmRlbGV0ZVJvdyh4KScpIGlzICdhbnkgdHlwZSBhbGxvd2VkIChidXQgbm90IG9taXR0
ZWQpJwogUEFTUyBub25OdW1lcmljUG9saWN5KCdkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ZXh0
YXJlYSIpLnNldFNlbGVjdGlvblJhbmdlKHgsIDApJykgaXMgJ2FueSB0eXBlIGFsbG93ZWQnCi1Q
QVNTIG5vbk51bWVyaWNQb2xpY3koJ2RvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRleHRhcmVhIiku
c2V0U2VsZWN0aW9uUmFuZ2UoMCwgeCknKSBpcyAnYW55IHR5cGUgYWxsb3dlZCcKK1BBU1Mgbm9u
TnVtZXJpY1BvbGljeSgnZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGV4dGFyZWEiKS5zZXRTZWxl
Y3Rpb25SYW5nZSgwLCB4KScpIGlzICdhbnkgdHlwZSBhbGxvd2VkIChidXQgbm90IG9taXR0ZWQp
JwogUEFTUyBub25OdW1lcmljUG9saWN5KCdkb2N1bWVudC5jcmVhdGVFdmVudCgiS2V5Ym9hcmRF
dmVudCIpLmluaXRLZXlib2FyZEV2ZW50KCJhIiwgZmFsc2UsIGZhbHNlLCBudWxsLCAiYiIsIHgs
IGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSknKSBpcyAnYW55IHR5cGUgYWxsb3dl
ZCcKLVBBU1Mgbm9uTnVtZXJpY1BvbGljeSgnY3JlYXRlTWVkaWFMaXN0KCkuaXRlbSh4KScpIGlz
ICdhbnkgdHlwZSBhbGxvd2VkJworUEFTUyBub25OdW1lcmljUG9saWN5KCdjcmVhdGVNZWRpYUxp
c3QoKS5pdGVtKHgpJykgaXMgJ2FueSB0eXBlIGFsbG93ZWQgKGJ1dCBub3Qgb21pdHRlZCknCiBQ
QVNTIG5vbk51bWVyaWNQb2xpY3koJ2RvY3VtZW50LmNyZWF0ZUV2ZW50KCJNb3VzZUV2ZW50Iiku
aW5pdE1vdXNlRXZlbnQoImEiLCBmYWxzZSwgZmFsc2UsIG51bGwsIHgsIDAsIDAsIDAsIDAsIGZh
bHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCAwLCBudWxsKScpIGlzICdhbnkgdHlwZSBhbGxvd2Vk
JwogUEFTUyBub25OdW1lcmljUG9saWN5KCdkb2N1bWVudC5jcmVhdGVFdmVudCgiTW91c2VFdmVu
dCIpLmluaXRNb3VzZUV2ZW50KCJhIiwgZmFsc2UsIGZhbHNlLCBudWxsLCAwLCB4LCAwLCAwLCAw
LCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgMCwgbnVsbCknKSBpcyAnYW55IHR5cGUgYWxs
b3dlZCcKIFBBU1Mgbm9uTnVtZXJpY1BvbGljeSgnZG9jdW1lbnQuY3JlYXRlRXZlbnQoIk1vdXNl
RXZlbnQiKS5pbml0TW91c2VFdmVudCgiYSIsIGZhbHNlLCBmYWxzZSwgbnVsbCwgMCwgMCwgeCwg
MCwgMCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIDAsIG51bGwpJykgaXMgJ2FueSB0eXBl
IGFsbG93ZWQnCiBQQVNTIG5vbk51bWVyaWNQb2xpY3koJ2RvY3VtZW50LmNyZWF0ZUV2ZW50KCJN
b3VzZUV2ZW50IikuaW5pdE1vdXNlRXZlbnQoImEiLCBmYWxzZSwgZmFsc2UsIG51bGwsIDAsIDAs
IDAsIHgsIDAsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCAwLCBudWxsKScpIGlzICdhbnkg
dHlwZSBhbGxvd2VkJwogUEFTUyBub25OdW1lcmljUG9saWN5KCdkb2N1bWVudC5jcmVhdGVFdmVu
dCgiTW91c2VFdmVudCIpLmluaXRNb3VzZUV2ZW50KCJhIiwgZmFsc2UsIGZhbHNlLCBudWxsLCAw
LCAwLCAwLCAwLCB4LCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgMCwgbnVsbCknKSBpcyAn
YW55IHR5cGUgYWxsb3dlZCcKIFBBU1Mgbm9uTnVtZXJpY1BvbGljeSgnZG9jdW1lbnQuY3JlYXRl
RXZlbnQoIk1vdXNlRXZlbnQiKS5pbml0TW91c2VFdmVudCgiYSIsIGZhbHNlLCBmYWxzZSwgbnVs
bCwgMCwgMCwgMCwgMCwgMCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIHgsIG51bGwpJykg
aXMgJ2FueSB0eXBlIGFsbG93ZWQnCi1QQVNTIG5vbk51bWVyaWNQb2xpY3koJ2RvY3VtZW50LmJv
ZHkuYXR0cmlidXRlcy5pdGVtKHgpJykgaXMgJ2FueSB0eXBlIGFsbG93ZWQnCitQQVNTIG5vbk51
bWVyaWNQb2xpY3koJ2RvY3VtZW50LmJvZHkuYXR0cmlidXRlcy5pdGVtKHgpJykgaXMgJ2FueSB0
eXBlIGFsbG93ZWQgKGJ1dCBub3Qgb21pdHRlZCknCiBQQVNTIG5vbk51bWVyaWNQb2xpY3koJ2Rv
Y3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N1bWVudCwgeCwgbnVsbCwgZmFsc2UpJykgaXMg
J2FueSB0eXBlIGFsbG93ZWQnCi1QQVNTIG5vbk51bWVyaWNQb2xpY3koJ2RvY3VtZW50LmdldEVs
ZW1lbnRzQnlUYWdOYW1lKCJkaXYiKS5pdGVtKHgpJykgaXMgJ2FueSB0eXBlIGFsbG93ZWQnCitQ
QVNTIG5vbk51bWVyaWNQb2xpY3koJ2RvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJkaXYi
KS5pdGVtKHgpJykgaXMgJ2FueSB0eXBlIGFsbG93ZWQgKGJ1dCBub3Qgb21pdHRlZCknCiBQQVNT
IG5vbk51bWVyaWNQb2xpY3koJ2RvY3VtZW50LmNyZWF0ZUV2ZW50KCJQcm9ncmVzc0V2ZW50Iiku
aW5pdFByb2dyZXNzRXZlbnQoImEiLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCB4LCAwKScpIGlzICdh
bnkgdHlwZSBhbGxvd2VkJwotUEFTUyBub25OdW1lcmljUG9saWN5KCdkb2N1bWVudC5jcmVhdGVF
dmVudCgiUHJvZ3Jlc3NFdmVudCIpLmluaXRQcm9ncmVzc0V2ZW50KCJhIiwgZmFsc2UsIGZhbHNl
LCBmYWxzZSwgMCwgeCknKSBpcyAnYW55IHR5cGUgYWxsb3dlZCcKLVBBU1Mgbm9uTnVtZXJpY1Bv
bGljeSgnZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKS5zZXRTdGFydChkb2N1bWVudCwgeCknKSBpcyAn
YW55IHR5cGUgYWxsb3dlZCcKLVBBU1Mgbm9uTnVtZXJpY1BvbGljeSgnZG9jdW1lbnQuY3JlYXRl
UmFuZ2UoKS5zZXRFbmQoZG9jdW1lbnQsIHgpJykgaXMgJ2FueSB0eXBlIGFsbG93ZWQnCi1QQVNT
IG5vbk51bWVyaWNQb2xpY3koJ2RvY3VtZW50LmNyZWF0ZVJhbmdlKCkuY29tcGFyZVBvaW50KGRv
Y3VtZW50LCB4KScpIGlzICdhbnkgdHlwZSBhbGxvd2VkJwotUEFTUyBub25OdW1lcmljUG9saWN5
KCdkb2N1bWVudC5jcmVhdGVSYW5nZSgpLmlzUG9pbnRJblJhbmdlKGRvY3VtZW50LCB4KScpIGlz
ICdhbnkgdHlwZSBhbGxvd2VkJwotUEFTUyBub25OdW1lcmljUG9saWN5KCdnZXRTZWxlY3Rpb24o
KS5jb2xsYXBzZShkb2N1bWVudCwgeCknKSBpcyAnYW55IHR5cGUgYWxsb3dlZCcKK1BBU1Mgbm9u
TnVtZXJpY1BvbGljeSgnZG9jdW1lbnQuY3JlYXRlRXZlbnQoIlByb2dyZXNzRXZlbnQiKS5pbml0
UHJvZ3Jlc3NFdmVudCgiYSIsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIDAsIHgpJykgaXMgJ2FueSB0
eXBlIGFsbG93ZWQgKGJ1dCBub3Qgb21pdHRlZCknCitQQVNTIG5vbk51bWVyaWNQb2xpY3koJ2Rv
Y3VtZW50LmNyZWF0ZVJhbmdlKCkuc2V0U3RhcnQoZG9jdW1lbnQsIHgpJykgaXMgJ2FueSB0eXBl
IGFsbG93ZWQgKGJ1dCBub3Qgb21pdHRlZCknCitQQVNTIG5vbk51bWVyaWNQb2xpY3koJ2RvY3Vt
ZW50LmNyZWF0ZVJhbmdlKCkuc2V0RW5kKGRvY3VtZW50LCB4KScpIGlzICdhbnkgdHlwZSBhbGxv
d2VkIChidXQgbm90IG9taXR0ZWQpJworUEFTUyBub25OdW1lcmljUG9saWN5KCdkb2N1bWVudC5j
cmVhdGVSYW5nZSgpLmNvbXBhcmVQb2ludChkb2N1bWVudCwgeCknKSBpcyAnYW55IHR5cGUgYWxs
b3dlZCAoYnV0IG5vdCBvbWl0dGVkKScKK1BBU1Mgbm9uTnVtZXJpY1BvbGljeSgnZG9jdW1lbnQu
Y3JlYXRlUmFuZ2UoKS5pc1BvaW50SW5SYW5nZShkb2N1bWVudCwgeCknKSBpcyAnYW55IHR5cGUg
YWxsb3dlZCAoYnV0IG5vdCBvbWl0dGVkKScKK1BBU1Mgbm9uTnVtZXJpY1BvbGljeSgnZ2V0U2Vs
ZWN0aW9uKCkuY29sbGFwc2UoZG9jdW1lbnQsIHgpJykgaXMgJ2FueSB0eXBlIGFsbG93ZWQgKGJ1
dCBub3Qgb21pdHRlZCknCiBQQVNTIG5vbk51bWVyaWNQb2xpY3koJ2dldFNlbGVjdGlvbigpLnNl
dEJhc2VBbmRFeHRlbnQoZG9jdW1lbnQsIHgsIGRvY3VtZW50LCAwKScpIGlzICdhbnkgdHlwZSBh
bGxvd2VkJwotUEFTUyBub25OdW1lcmljUG9saWN5KCdnZXRTZWxlY3Rpb24oKS5zZXRCYXNlQW5k
RXh0ZW50KGRvY3VtZW50LCAwLCBkb2N1bWVudCwgeCknKSBpcyAnYW55IHR5cGUgYWxsb3dlZCcK
LVBBU1Mgbm9uTnVtZXJpY1BvbGljeSgnZ2V0U2VsZWN0aW9uKCkuc2V0UG9zaXRpb24oZG9jdW1l
bnQsIHgpJykgaXMgJ2FueSB0eXBlIGFsbG93ZWQnCi1QQVNTIG5vbk51bWVyaWNQb2xpY3koJ2dl
dFNlbGVjdGlvbigpLmV4dGVuZChkb2N1bWVudCwgeCknKSBpcyAnYW55IHR5cGUgYWxsb3dlZCcK
LVBBU1Mgbm9uTnVtZXJpY1BvbGljeSgnZ2V0U2VsZWN0aW9uKCkuZ2V0UmFuZ2VBdCh4KScpIGlz
ICdhbnkgdHlwZSBhbGxvd2VkJwotUEFTUyBub25OdW1lcmljUG9saWN5KCdkb2N1bWVudC5zdHls
ZVNoZWV0cy5pdGVtKHgpJykgaXMgJ2FueSB0eXBlIGFsbG93ZWQnCi1QQVNTIG5vbk51bWVyaWNQ
b2xpY3koJ2RvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJhIikuc3BsaXRUZXh0KHgpJykgaXMgJ2Fu
eSB0eXBlIGFsbG93ZWQnCitQQVNTIG5vbk51bWVyaWNQb2xpY3koJ2dldFNlbGVjdGlvbigpLnNl
dEJhc2VBbmRFeHRlbnQoZG9jdW1lbnQsIDAsIGRvY3VtZW50LCB4KScpIGlzICdhbnkgdHlwZSBh
bGxvd2VkIChidXQgbm90IG9taXR0ZWQpJworUEFTUyBub25OdW1lcmljUG9saWN5KCdnZXRTZWxl
Y3Rpb24oKS5zZXRQb3NpdGlvbihkb2N1bWVudCwgeCknKSBpcyAnYW55IHR5cGUgYWxsb3dlZCAo
YnV0IG5vdCBvbWl0dGVkKScKK1BBU1Mgbm9uTnVtZXJpY1BvbGljeSgnZ2V0U2VsZWN0aW9uKCku
ZXh0ZW5kKGRvY3VtZW50LCB4KScpIGlzICdhbnkgdHlwZSBhbGxvd2VkIChidXQgbm90IG9taXR0
ZWQpJworUEFTUyBub25OdW1lcmljUG9saWN5KCdnZXRTZWxlY3Rpb24oKS5nZXRSYW5nZUF0KHgp
JykgaXMgJ2FueSB0eXBlIGFsbG93ZWQgKGJ1dCBub3Qgb21pdHRlZCknCitQQVNTIG5vbk51bWVy
aWNQb2xpY3koJ2RvY3VtZW50LnN0eWxlU2hlZXRzLml0ZW0oeCknKSBpcyAnYW55IHR5cGUgYWxs
b3dlZCAoYnV0IG5vdCBvbWl0dGVkKScKK1BBU1Mgbm9uTnVtZXJpY1BvbGljeSgnZG9jdW1lbnQu
Y3JlYXRlVGV4dE5vZGUoImEiKS5zcGxpdFRleHQoeCknKSBpcyAnYW55IHR5cGUgYWxsb3dlZCAo
YnV0IG5vdCBvbWl0dGVkKScKIFBBU1Mgbm9uTnVtZXJpY1BvbGljeSgnZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkb2N1bWVudCwgeCwgbnVsbCwgZmFsc2UpJykgaXMgJ2FueSB0eXBlIGFsbG93
ZWQnCi1QQVNTIG5vbk51bWVyaWNQb2xpY3koJ2RvY3VtZW50LmNyZWF0ZUV2ZW50KCJVSUV2ZW50
IikuaW5pdFVJRXZlbnQoImEiLCBmYWxzZSwgZmFsc2UsIG51bGwsIHgpJykgaXMgJ2FueSB0eXBl
IGFsbG93ZWQnCitQQVNTIG5vbk51bWVyaWNQb2xpY3koJ2RvY3VtZW50LmNyZWF0ZUV2ZW50KCJV
SUV2ZW50IikuaW5pdFVJRXZlbnQoImEiLCBmYWxzZSwgZmFsc2UsIG51bGwsIHgpJykgaXMgJ2Fu
eSB0eXBlIGFsbG93ZWQgKGJ1dCBub3Qgb21pdHRlZCknCiBQQVNTIG5vbk51bWVyaWNQb2xpY3ko
J3dpbmRvdy5zY3JvbGxCeSh4LCAwKScpIGlzICdhbnkgdHlwZSBhbGxvd2VkJwotUEFTUyBub25O
dW1lcmljUG9saWN5KCd3aW5kb3cuc2Nyb2xsQnkoMCwgeCknKSBpcyAnYW55IHR5cGUgYWxsb3dl
ZCcKK1BBU1Mgbm9uTnVtZXJpY1BvbGljeSgnd2luZG93LnNjcm9sbEJ5KDAsIHgpJykgaXMgJ2Fu
eSB0eXBlIGFsbG93ZWQgKGJ1dCBub3Qgb21pdHRlZCknCiBQQVNTIG5vbk51bWVyaWNQb2xpY3ko
J3dpbmRvdy5zY3JvbGxUbyh4LCAwKScpIGlzICdhbnkgdHlwZSBhbGxvd2VkJwotUEFTUyBub25O
dW1lcmljUG9saWN5KCd3aW5kb3cuc2Nyb2xsVG8oMCwgeCknKSBpcyAnYW55IHR5cGUgYWxsb3dl
ZCcKK1BBU1Mgbm9uTnVtZXJpY1BvbGljeSgnd2luZG93LnNjcm9sbFRvKDAsIHgpJykgaXMgJ2Fu
eSB0eXBlIGFsbG93ZWQgKGJ1dCBub3Qgb21pdHRlZCknCiBQQVNTIG5vbk51bWVyaWNQb2xpY3ko
J3dpbmRvdy5zY3JvbGwoeCwgMCknKSBpcyAnYW55IHR5cGUgYWxsb3dlZCcKLVBBU1Mgbm9uTnVt
ZXJpY1BvbGljeSgnd2luZG93LnNjcm9sbCgwLCB4KScpIGlzICdhbnkgdHlwZSBhbGxvd2VkJwor
UEFTUyBub25OdW1lcmljUG9saWN5KCd3aW5kb3cuc2Nyb2xsKDAsIHgpJykgaXMgJ2FueSB0eXBl
IGFsbG93ZWQgKGJ1dCBub3Qgb21pdHRlZCknCiBQQVNTIG5vbk51bWVyaWNQb2xpY3koJ3dpbmRv
dy5tb3ZlQnkoeCwgMCknKSBpcyAnYW55IHR5cGUgYWxsb3dlZCcKLVBBU1Mgbm9uTnVtZXJpY1Bv
bGljeSgnd2luZG93Lm1vdmVCeSgwLCB4KScpIGlzICdhbnkgdHlwZSBhbGxvd2VkJworUEFTUyBu
b25OdW1lcmljUG9saWN5KCd3aW5kb3cubW92ZUJ5KDAsIHgpJykgaXMgJ2FueSB0eXBlIGFsbG93
ZWQgKGJ1dCBub3Qgb21pdHRlZCknCiBQQVNTIG5vbk51bWVyaWNQb2xpY3koJ3dpbmRvdy5tb3Zl
VG8oeCwgMCknKSBpcyAnYW55IHR5cGUgYWxsb3dlZCcKLVBBU1Mgbm9uTnVtZXJpY1BvbGljeSgn
d2luZG93Lm1vdmVUbygwLCB4KScpIGlzICdhbnkgdHlwZSBhbGxvd2VkJworUEFTUyBub25OdW1l
cmljUG9saWN5KCd3aW5kb3cubW92ZVRvKDAsIHgpJykgaXMgJ2FueSB0eXBlIGFsbG93ZWQgKGJ1
dCBub3Qgb21pdHRlZCknCiBQQVNTIG5vbk51bWVyaWNQb2xpY3koJ3dpbmRvdy5yZXNpemVCeSh4
LCAwKScpIGlzICdhbnkgdHlwZSBhbGxvd2VkJwotUEFTUyBub25OdW1lcmljUG9saWN5KCd3aW5k
b3cucmVzaXplQnkoMCwgeCknKSBpcyAnYW55IHR5cGUgYWxsb3dlZCcKK1BBU1Mgbm9uTnVtZXJp
Y1BvbGljeSgnd2luZG93LnJlc2l6ZUJ5KDAsIHgpJykgaXMgJ2FueSB0eXBlIGFsbG93ZWQgKGJ1
dCBub3Qgb21pdHRlZCknCiBQQVNTIG5vbk51bWVyaWNQb2xpY3koJ3dpbmRvdy5yZXNpemVUbyh4
LCAwKScpIGlzICdhbnkgdHlwZSBhbGxvd2VkJwotUEFTUyBub25OdW1lcmljUG9saWN5KCd3aW5k
b3cucmVzaXplVG8oMCwgeCknKSBpcyAnYW55IHR5cGUgYWxsb3dlZCcKK1BBU1Mgbm9uTnVtZXJp
Y1BvbGljeSgnd2luZG93LnJlc2l6ZVRvKDAsIHgpJykgaXMgJ2FueSB0eXBlIGFsbG93ZWQgKGJ1
dCBub3Qgb21pdHRlZCknCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1Qg
Q09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL251bGwtY2hhcmRhdGEt
Y3Jhc2guaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL251bGwtY2hhcmRhdGEtY3Jhc2guaHRt
bAppbmRleCBiMDg4NTdmLi43MDQ5ZGUzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9udWxsLWNoYXJkYXRhLWNyYXNoLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vbnVs
bC1jaGFyZGF0YS1jcmFzaC5odG1sCkBAIC01LDcgKzUsNyBAQAogICAgIGlmICh3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIpCiAgICAgICB3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIuZHVt
cEFzVGV4dCgpOwogCi0gICAgdmFyIG8gPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgpOworICAg
IHZhciBvID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobnVsbCk7CiAgICAgdHJ5IHsKICAgICAg
IG8uZGF0YSA9IG51bGw7CiAgICAgICBvLnNwbGl0VGV4dCgxKTsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZG9tL3NjcmlwdC10ZXN0cy9kb21MaXN0RW51bWVyYXRpb24uanMgYi9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9zY3JpcHQtdGVzdHMvZG9tTGlzdEVudW1lcmF0aW9uLmpzCmluZGV4
IGQzYTA0NDkuLmM0ZjMzODMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3Njcmlw
dC10ZXN0cy9kb21MaXN0RW51bWVyYXRpb24uanMKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20v
c2NyaXB0LXRlc3RzL2RvbUxpc3RFbnVtZXJhdGlvbi5qcwpAQCAtMTg0LDcgKzE4NCw3IEBAIHNo
b3VsZEJlKCJyZXN1bHRBcnJheVsyXS5pIiwgIicyJyIpOwogc2hvdWxkQmUoInJlc3VsdEFycmF5
WzJdLml0ZW0iLCAiY3NzU3R5bGVEZWNsYXJhdGlvbi5pdGVtKDIpIik7CiAKIC8vIENTU1ZhbHVl
TGlzdAotdmFyIGNzc1ZhbHVlTGlzdCA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50
LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdvbCcpWzBdKS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKCdib3Jk
ZXItc3BhY2luZycpOwordmFyIGNzc1ZhbHVlTGlzdCA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxl
KGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdvbCcpWzBdLCBudWxsKS5nZXRQcm9wZXJ0
eUNTU1ZhbHVlKCdib3JkZXItc3BhY2luZycpOwogcmVzdWx0QXJyYXkgPSBpdGVyYXRlTGlzdChj
c3NWYWx1ZUxpc3QpOwogc2hvdWxkQmUoInJlc3VsdEFycmF5Lmxlbmd0aCIsICIxMCIpOwogc2hv
dWxkQmUoInJlc3VsdEFycmF5WzBdLmkiLCAiJzAnIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9zY3JpcHQtdGVzdHMvbm9uLW51bWVyaWMtdmFsdWVzLW51bWVyaWMtcGFyYW1l
dGVycy5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NjcmlwdC10ZXN0cy9ub24tbnVtZXJpYy12
YWx1ZXMtbnVtZXJpYy1wYXJhbWV0ZXJzLmpzCmluZGV4IDYwZWM3OWUuLmIxZWI1ZGUgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NjcmlwdC10ZXN0cy9ub24tbnVtZXJpYy12YWx1
ZXMtbnVtZXJpYy1wYXJhbWV0ZXJzLmpzCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3Njcmlw
dC10ZXN0cy9ub24tbnVtZXJpYy12YWx1ZXMtbnVtZXJpYy1wYXJhbWV0ZXJzLmpzCkBAIC0xODYs
NDYgKzE4Niw0NiBAQCBmdW5jdGlvbiBjcmVhdGVIVE1MVGFibGVSb3dFbGVtZW50KCkKIC8vIENo
YXJhY3RlckRhdGEKIAogc2hvdWxkQmUoIm5vbk51bWVyaWNQb2xpY3koJ2RvY3VtZW50LmNyZWF0
ZVRleHROb2RlKFwiYVwiKS5zdWJzdHJpbmdEYXRhKHgsIDApJykiLCAiJ2FueSB0eXBlIGFsbG93
ZWQnIik7Ci1zaG91bGRCZSgibm9uTnVtZXJpY1BvbGljeSgnZG9jdW1lbnQuY3JlYXRlVGV4dE5v
ZGUoXCJhXCIpLnN1YnN0cmluZ0RhdGEoMCwgeCknKSIsICInYW55IHR5cGUgYWxsb3dlZCciKTsK
K3Nob3VsZEJlKCJub25OdW1lcmljUG9saWN5KCdkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShcImFc
Iikuc3Vic3RyaW5nRGF0YSgwLCB4KScpIiwgIidhbnkgdHlwZSBhbGxvd2VkIChidXQgbm90IG9t
aXR0ZWQpJyIpOwogc2hvdWxkQmUoIm5vbk51bWVyaWNQb2xpY3koJ2RvY3VtZW50LmNyZWF0ZVRl
eHROb2RlKFwiYVwiKS5pbnNlcnREYXRhKHgsIFwiYlwiKScpIiwgIidhbnkgdHlwZSBhbGxvd2Vk
JyIpOwogc2hvdWxkQmUoIm5vbk51bWVyaWNQb2xpY3koJ2RvY3VtZW50LmNyZWF0ZVRleHROb2Rl
KFwiYVwiKS5kZWxldGVEYXRhKHgsIDApJykiLCAiJ2FueSB0eXBlIGFsbG93ZWQnIik7Ci1zaG91
bGRCZSgibm9uTnVtZXJpY1BvbGljeSgnZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoXCJhXCIpLmRl
bGV0ZURhdGEoMCwgeCknKSIsICInYW55IHR5cGUgYWxsb3dlZCciKTsKK3Nob3VsZEJlKCJub25O
dW1lcmljUG9saWN5KCdkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShcImFcIikuZGVsZXRlRGF0YSgw
LCB4KScpIiwgIidhbnkgdHlwZSBhbGxvd2VkIChidXQgbm90IG9taXR0ZWQpJyIpOwogc2hvdWxk
QmUoIm5vbk51bWVyaWNQb2xpY3koJ2RvY3VtZW50LmNyZWF0ZVRleHROb2RlKFwiYVwiKS5yZXBs
YWNlRGF0YSh4LCAwLCBcImJcIiknKSIsICInYW55IHR5cGUgYWxsb3dlZCciKTsKIHNob3VsZEJl
KCJub25OdW1lcmljUG9saWN5KCdkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShcImFcIikucmVwbGFj
ZURhdGEoMCwgeCwgXCJiXCIpJykiLCAiJ2FueSB0eXBlIGFsbG93ZWQnIik7CiAKIC8vIENTU01l
ZGlhUnVsZQogCi1zaG91bGRCZSgibm9uTnVtZXJpY1BvbGljeSgnY3JlYXRlQ1NTTWVkaWFSdWxl
KCkuaW5zZXJ0UnVsZShydWxlVGV4dCwgeCknKSIsICInYW55IHR5cGUgYWxsb3dlZCciKTsKLXNo
b3VsZEJlKCJub25OdW1lcmljUG9saWN5KCdjcmVhdGVDU1NNZWRpYVJ1bGUoKS5kZWxldGVSdWxl
KHgpJykiLCAiJ2FueSB0eXBlIGFsbG93ZWQnIik7CitzaG91bGRCZSgibm9uTnVtZXJpY1BvbGlj
eSgnY3JlYXRlQ1NTTWVkaWFSdWxlKCkuaW5zZXJ0UnVsZShydWxlVGV4dCwgeCknKSIsICInYW55
IHR5cGUgYWxsb3dlZCAoYnV0IG5vdCBvbWl0dGVkKSciKTsKK3Nob3VsZEJlKCJub25OdW1lcmlj
UG9saWN5KCdjcmVhdGVDU1NNZWRpYVJ1bGUoKS5kZWxldGVSdWxlKHgpJykiLCAiJ2FueSB0eXBl
IGFsbG93ZWQgKGJ1dCBub3Qgb21pdHRlZCknIik7CiAKIC8vIENTU1J1bGVMaXN0CiAKLXNob3Vs
ZEJlKCJub25OdW1lcmljUG9saWN5KCdjcmVhdGVDU1NSdWxlTGlzdCgpLml0ZW0oeCknKSIsICIn
YW55IHR5cGUgYWxsb3dlZCciKTsKK3Nob3VsZEJlKCJub25OdW1lcmljUG9saWN5KCdjcmVhdGVD
U1NSdWxlTGlzdCgpLml0ZW0oeCknKSIsICInYW55IHR5cGUgYWxsb3dlZCAoYnV0IG5vdCBvbWl0
dGVkKSciKTsKIAogLy8gQ1NTU3R5bGVEZWNsYXJhdGlvbgogCi1zaG91bGRCZSgibm9uTnVtZXJp
Y1BvbGljeSgnY3JlYXRlQ1NTU3R5bGVEZWNsYXJhdGlvbigpLml0ZW0oeCknKSIsICInYW55IHR5
cGUgYWxsb3dlZCciKTsKK3Nob3VsZEJlKCJub25OdW1lcmljUG9saWN5KCdjcmVhdGVDU1NTdHls
ZURlY2xhcmF0aW9uKCkuaXRlbSh4KScpIiwgIidhbnkgdHlwZSBhbGxvd2VkIChidXQgbm90IG9t
aXR0ZWQpJyIpOwogCiAvLyBDU1NTdHlsZVNoZWV0CiAKLXNob3VsZEJlKCJub25OdW1lcmljUG9s
aWN5KCdjcmVhdGVDU1NTdHlsZVNoZWV0KCkuaW5zZXJ0UnVsZShydWxlVGV4dCwgeCknKSIsICIn
YW55IHR5cGUgYWxsb3dlZCciKTsKLXNob3VsZEJlKCJub25OdW1lcmljUG9saWN5KCdjcmVhdGVD
U1NTdHlsZVNoZWV0KCkuZGVsZXRlUnVsZSh4KScpIiwgIidhbnkgdHlwZSBhbGxvd2VkJyIpOwor
c2hvdWxkQmUoIm5vbk51bWVyaWNQb2xpY3koJ2NyZWF0ZUNTU1N0eWxlU2hlZXQoKS5pbnNlcnRS
dWxlKHJ1bGVUZXh0LCB4KScpIiwgIidhbnkgdHlwZSBhbGxvd2VkIChidXQgbm90IG9taXR0ZWQp
JyIpOworc2hvdWxkQmUoIm5vbk51bWVyaWNQb2xpY3koJ2NyZWF0ZUNTU1N0eWxlU2hlZXQoKS5k
ZWxldGVSdWxlKHgpJykiLCAiJ2FueSB0eXBlIGFsbG93ZWQgKGJ1dCBub3Qgb21pdHRlZCknIik7
CiBzaG91bGRCZSgibm9uTnVtZXJpY1BvbGljeSgnY3JlYXRlQ1NTU3R5bGVTaGVldCgpLmFkZFJ1
bGUoc2VsZWN0b3IsIHN0eWxlVGV4dCwgeCknKSIsICInYW55IHR5cGUgYWxsb3dlZCciKTsKLXNo
b3VsZEJlKCJub25OdW1lcmljUG9saWN5KCdjcmVhdGVDU1NTdHlsZVNoZWV0KCkucmVtb3ZlUnVs
ZSh4KScpIiwgIidhbnkgdHlwZSBhbGxvd2VkJyIpOworc2hvdWxkQmUoIm5vbk51bWVyaWNQb2xp
Y3koJ2NyZWF0ZUNTU1N0eWxlU2hlZXQoKS5yZW1vdmVSdWxlKHgpJykiLCAiJ2FueSB0eXBlIGFs
bG93ZWQgKGJ1dCBub3Qgb21pdHRlZCknIik7CiAKIC8vIENTU1ZhbHVlTGlzdAogCi1zaG91bGRC
ZSgibm9uTnVtZXJpY1BvbGljeSgnY3JlYXRlQ1NTVmFsdWVMaXN0KCkuaXRlbSh4KScpIiwgIidh
bnkgdHlwZSBhbGxvd2VkJyIpOworc2hvdWxkQmUoIm5vbk51bWVyaWNQb2xpY3koJ2NyZWF0ZUNT
U1ZhbHVlTGlzdCgpLml0ZW0oeCknKSIsICInYW55IHR5cGUgYWxsb3dlZCAoYnV0IG5vdCBvbWl0
dGVkKSciKTsKIAogLy8gRG9jdW1lbnQKIAogc2hvdWxkQmUoIm5vbk51bWVyaWNQb2xpY3koJ2Rv
Y3VtZW50LmVsZW1lbnRGcm9tUG9pbnQoeCwgMCknKSIsICInYW55IHR5cGUgYWxsb3dlZCciKTsK
LXNob3VsZEJlKCJub25OdW1lcmljUG9saWN5KCdkb2N1bWVudC5lbGVtZW50RnJvbVBvaW50KDAs
IHgpJykiLCAiJ2FueSB0eXBlIGFsbG93ZWQnIik7CitzaG91bGRCZSgibm9uTnVtZXJpY1BvbGlj
eSgnZG9jdW1lbnQuZWxlbWVudEZyb21Qb2ludCgwLCB4KScpIiwgIidhbnkgdHlwZSBhbGxvd2Vk
IChidXQgbm90IG9taXR0ZWQpJyIpOwogCiAvLyBFbGVtZW50CiAKLXNob3VsZEJlKCJub25OdW1l
cmljUG9saWN5KCdkb2N1bWVudC5ib2R5LnNjcm9sbEJ5TGluZXMoeCknKSIsICInYW55IHR5cGUg
YWxsb3dlZCciKTsKLXNob3VsZEJlKCJub25OdW1lcmljUG9saWN5KCdkb2N1bWVudC5ib2R5LnNj
cm9sbEJ5UGFnZXMoeCknKSIsICInYW55IHR5cGUgYWxsb3dlZCciKTsKK3Nob3VsZEJlKCJub25O
dW1lcmljUG9saWN5KCdkb2N1bWVudC5ib2R5LnNjcm9sbEJ5TGluZXMoeCknKSIsICInYW55IHR5
cGUgYWxsb3dlZCAoYnV0IG5vdCBvbWl0dGVkKSciKTsKK3Nob3VsZEJlKCJub25OdW1lcmljUG9s
aWN5KCdkb2N1bWVudC5ib2R5LnNjcm9sbEJ5UGFnZXMoeCknKSIsICInYW55IHR5cGUgYWxsb3dl
ZCAoYnV0IG5vdCBvbWl0dGVkKSciKTsKIHNob3VsZEJlKCJub25OdW1lcmljUG9saWN5KCdkb2N1
bWVudC5ib2R5LnNjcm9sbExlZnQgPSB4JykiLCAiJ2FueSB0eXBlIGFsbG93ZWQnIik7CiBzaG91
bGRCZSgibm9uTnVtZXJpY1BvbGljeSgnZG9jdW1lbnQuYm9keS5zY3JvbGxUb3AgPSB4JykiLCAi
J2FueSB0eXBlIGFsbG93ZWQnIik7CiAKQEAgLTI0OSwyOCArMjQ5LDI4IEBAIHNob3VsZEJlKCJu
b25OdW1lcmljUG9saWN5KCdjcmVhdGVIVE1MT3B0aW9uc0NvbGxlY3Rpb24oKS5yZW1vdmUoeCkn
KSIsICInYW55IHR5CiAKIC8vIEhUTUxTZWxlY3RFbGVtZW50CiAKLXNob3VsZEJlKCJub25OdW1l
cmljUG9saWN5KCdjcmVhdGVIVE1MU2VsZWN0RWxlbWVudCgpLnJlbW92ZSh4KScpIiwgIidhbnkg
dHlwZSBhbGxvd2VkJyIpOwotc2hvdWxkQmUoIm5vbk51bWVyaWNQb2xpY3koJ2NyZWF0ZUhUTUxT
ZWxlY3RFbGVtZW50KCkuaXRlbSh4KScpIiwgIidhbnkgdHlwZSBhbGxvd2VkJyIpOworc2hvdWxk
QmUoIm5vbk51bWVyaWNQb2xpY3koJ2NyZWF0ZUhUTUxTZWxlY3RFbGVtZW50KCkucmVtb3ZlKHgp
JykiLCAiJ2FueSB0eXBlIGFsbG93ZWQgKGJ1dCBub3Qgb21pdHRlZCknIik7CitzaG91bGRCZSgi
bm9uTnVtZXJpY1BvbGljeSgnY3JlYXRlSFRNTFNlbGVjdEVsZW1lbnQoKS5pdGVtKHgpJykiLCAi
J2FueSB0eXBlIGFsbG93ZWQgKGJ1dCBub3Qgb21pdHRlZCknIik7CiAKIC8vIEhUTUxUYWJsZUVs
ZW1lbnQKIAotc2hvdWxkQmUoIm5vbk51bWVyaWNQb2xpY3koJ2NyZWF0ZUhUTUxUYWJsZUVsZW1l
bnQoKS5pbnNlcnRSb3coeCknKSIsICInYW55IHR5cGUgYWxsb3dlZCciKTsKLXNob3VsZEJlKCJu
b25OdW1lcmljUG9saWN5KCdjcmVhdGVIVE1MVGFibGVFbGVtZW50KCkuZGVsZXRlUm93KHgpJyki
LCAiJ2FueSB0eXBlIGFsbG93ZWQnIik7CitzaG91bGRCZSgibm9uTnVtZXJpY1BvbGljeSgnY3Jl
YXRlSFRNTFRhYmxlRWxlbWVudCgpLmluc2VydFJvdyh4KScpIiwgIidhbnkgdHlwZSBhbGxvd2Vk
IChidXQgbm90IG9taXR0ZWQpJyIpOworc2hvdWxkQmUoIm5vbk51bWVyaWNQb2xpY3koJ2NyZWF0
ZUhUTUxUYWJsZUVsZW1lbnQoKS5kZWxldGVSb3coeCknKSIsICInYW55IHR5cGUgYWxsb3dlZCAo
YnV0IG5vdCBvbWl0dGVkKSciKTsKIAogLy8gSFRNTFRhYmxlUm93RWxlbWVudAogCi1zaG91bGRC
ZSgibm9uTnVtZXJpY1BvbGljeSgnY3JlYXRlSFRNTFRhYmxlUm93RWxlbWVudCgpLmluc2VydENl
bGwoeCknKSIsICInYW55IHR5cGUgYWxsb3dlZCciKTsKLXNob3VsZEJlKCJub25OdW1lcmljUG9s
aWN5KCdjcmVhdGVIVE1MVGFibGVSb3dFbGVtZW50KCkuZGVsZXRlQ2VsbCh4KScpIiwgIidhbnkg
dHlwZSBhbGxvd2VkJyIpOworc2hvdWxkQmUoIm5vbk51bWVyaWNQb2xpY3koJ2NyZWF0ZUhUTUxU
YWJsZVJvd0VsZW1lbnQoKS5pbnNlcnRDZWxsKHgpJykiLCAiJ2FueSB0eXBlIGFsbG93ZWQgKGJ1
dCBub3Qgb21pdHRlZCknIik7CitzaG91bGRCZSgibm9uTnVtZXJpY1BvbGljeSgnY3JlYXRlSFRN
TFRhYmxlUm93RWxlbWVudCgpLmRlbGV0ZUNlbGwoeCknKSIsICInYW55IHR5cGUgYWxsb3dlZCAo
YnV0IG5vdCBvbWl0dGVkKSciKTsKIAogLy8gSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQKIAotc2hv
dWxkQmUoIm5vbk51bWVyaWNQb2xpY3koJ2NyZWF0ZUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50KCku
aW5zZXJ0Um93KHgpJykiLCAiJ2FueSB0eXBlIGFsbG93ZWQnIik7Ci1zaG91bGRCZSgibm9uTnVt
ZXJpY1BvbGljeSgnY3JlYXRlSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQoKS5kZWxldGVSb3coeCkn
KSIsICInYW55IHR5cGUgYWxsb3dlZCciKTsKK3Nob3VsZEJlKCJub25OdW1lcmljUG9saWN5KCdj
cmVhdGVIVE1MVGFibGVTZWN0aW9uRWxlbWVudCgpLmluc2VydFJvdyh4KScpIiwgIidhbnkgdHlw
ZSBhbGxvd2VkIChidXQgbm90IG9taXR0ZWQpJyIpOworc2hvdWxkQmUoIm5vbk51bWVyaWNQb2xp
Y3koJ2NyZWF0ZUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50KCkuZGVsZXRlUm93KHgpJykiLCAiJ2Fu
eSB0eXBlIGFsbG93ZWQgKGJ1dCBub3Qgb21pdHRlZCknIik7CiAKIC8vIEhUTUxJbnB1dEVsZW1l
bnQKIAogc2hvdWxkQmUoIm5vbk51bWVyaWNQb2xpY3koJ2RvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
XCJ0ZXh0YXJlYVwiKS5zZXRTZWxlY3Rpb25SYW5nZSh4LCAwKScpIiwgIidhbnkgdHlwZSBhbGxv
d2VkJyIpOwotc2hvdWxkQmUoIm5vbk51bWVyaWNQb2xpY3koJ2RvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoXCJ0ZXh0YXJlYVwiKS5zZXRTZWxlY3Rpb25SYW5nZSgwLCB4KScpIiwgIidhbnkgdHlwZSBh
bGxvd2VkJyIpOworc2hvdWxkQmUoIm5vbk51bWVyaWNQb2xpY3koJ2RvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoXCJ0ZXh0YXJlYVwiKS5zZXRTZWxlY3Rpb25SYW5nZSgwLCB4KScpIiwgIidhbnkgdHlw
ZSBhbGxvd2VkIChidXQgbm90IG9taXR0ZWQpJyIpOwogCiAvLyBLZXlib2FyZEV2ZW50CiAKQEAg
LTI3OCw3ICsyNzgsNyBAQCBzaG91bGRCZSgibm9uTnVtZXJpY1BvbGljeSgnZG9jdW1lbnQuY3Jl
YXRlRXZlbnQoXCJLZXlib2FyZEV2ZW50XCIpLmluaXRLZXlib2FyZAogCiAvLyBNZWRpYUxpc3QK
IAotc2hvdWxkQmUoIm5vbk51bWVyaWNQb2xpY3koJ2NyZWF0ZU1lZGlhTGlzdCgpLml0ZW0oeCkn
KSIsICInYW55IHR5cGUgYWxsb3dlZCciKTsKK3Nob3VsZEJlKCJub25OdW1lcmljUG9saWN5KCdj
cmVhdGVNZWRpYUxpc3QoKS5pdGVtKHgpJykiLCAiJ2FueSB0eXBlIGFsbG93ZWQgKGJ1dCBub3Qg
b21pdHRlZCknIik7CiAKIC8vIE1vdXNlRXZlbnQKIApAQCAtMjkxLDcgKzI5MSw3IEBAIHNob3Vs
ZEJlKCJub25OdW1lcmljUG9saWN5KCdkb2N1bWVudC5jcmVhdGVFdmVudChcIk1vdXNlRXZlbnRc
IikuaW5pdE1vdXNlRXZlbnQoCiAKIC8vIE5hbWVkTm9kZU1hcAogCi1zaG91bGRCZSgibm9uTnVt
ZXJpY1BvbGljeSgnZG9jdW1lbnQuYm9keS5hdHRyaWJ1dGVzLml0ZW0oeCknKSIsICInYW55IHR5
cGUgYWxsb3dlZCciKTsKK3Nob3VsZEJlKCJub25OdW1lcmljUG9saWN5KCdkb2N1bWVudC5ib2R5
LmF0dHJpYnV0ZXMuaXRlbSh4KScpIiwgIidhbnkgdHlwZSBhbGxvd2VkIChidXQgbm90IG9taXR0
ZWQpJyIpOwogCiAvLyBOb2RlSXRlcmF0b3IKIApAQCAtMjk5LDI4ICsyOTksMjggQEAgc2hvdWxk
QmUoIm5vbk51bWVyaWNQb2xpY3koJ2RvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N1bWVu
dCwgeCwgbnVsbCwgZmFsc2UKIAogLy8gTm9kZUxpc3QKIAotc2hvdWxkQmUoIm5vbk51bWVyaWNQ
b2xpY3koJ2RvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKFwiZGl2XCIpLml0ZW0oeCknKSIs
ICInYW55IHR5cGUgYWxsb3dlZCciKTsKK3Nob3VsZEJlKCJub25OdW1lcmljUG9saWN5KCdkb2N1
bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZShcImRpdlwiKS5pdGVtKHgpJykiLCAiJ2FueSB0eXBl
IGFsbG93ZWQgKGJ1dCBub3Qgb21pdHRlZCknIik7CiAKIC8vIFByb2dyZXNzRXZlbnQKIAogc2hv
dWxkQmUoIm5vbk51bWVyaWNQb2xpY3koJ2RvY3VtZW50LmNyZWF0ZUV2ZW50KFwiUHJvZ3Jlc3NF
dmVudFwiKS5pbml0UHJvZ3Jlc3NFdmVudChcImFcIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgeCwg
MCknKSIsICInYW55IHR5cGUgYWxsb3dlZCciKTsKLXNob3VsZEJlKCJub25OdW1lcmljUG9saWN5
KCdkb2N1bWVudC5jcmVhdGVFdmVudChcIlByb2dyZXNzRXZlbnRcIikuaW5pdFByb2dyZXNzRXZl
bnQoXCJhXCIsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIDAsIHgpJykiLCAiJ2FueSB0eXBlIGFsbG93
ZWQnIik7CitzaG91bGRCZSgibm9uTnVtZXJpY1BvbGljeSgnZG9jdW1lbnQuY3JlYXRlRXZlbnQo
XCJQcm9ncmVzc0V2ZW50XCIpLmluaXRQcm9ncmVzc0V2ZW50KFwiYVwiLCBmYWxzZSwgZmFsc2Us
IGZhbHNlLCAwLCB4KScpIiwgIidhbnkgdHlwZSBhbGxvd2VkIChidXQgbm90IG9taXR0ZWQpJyIp
OwogCiAvLyBSYW5nZQogCi1zaG91bGRCZSgibm9uTnVtZXJpY1BvbGljeSgnZG9jdW1lbnQuY3Jl
YXRlUmFuZ2UoKS5zZXRTdGFydChkb2N1bWVudCwgeCknKSIsICInYW55IHR5cGUgYWxsb3dlZCci
KTsKLXNob3VsZEJlKCJub25OdW1lcmljUG9saWN5KCdkb2N1bWVudC5jcmVhdGVSYW5nZSgpLnNl
dEVuZChkb2N1bWVudCwgeCknKSIsICInYW55IHR5cGUgYWxsb3dlZCciKTsKLXNob3VsZEJlKCJu
b25OdW1lcmljUG9saWN5KCdkb2N1bWVudC5jcmVhdGVSYW5nZSgpLmNvbXBhcmVQb2ludChkb2N1
bWVudCwgeCknKSIsICInYW55IHR5cGUgYWxsb3dlZCciKTsKLXNob3VsZEJlKCJub25OdW1lcmlj
UG9saWN5KCdkb2N1bWVudC5jcmVhdGVSYW5nZSgpLmlzUG9pbnRJblJhbmdlKGRvY3VtZW50LCB4
KScpIiwgIidhbnkgdHlwZSBhbGxvd2VkJyIpOworc2hvdWxkQmUoIm5vbk51bWVyaWNQb2xpY3ko
J2RvY3VtZW50LmNyZWF0ZVJhbmdlKCkuc2V0U3RhcnQoZG9jdW1lbnQsIHgpJykiLCAiJ2FueSB0
eXBlIGFsbG93ZWQgKGJ1dCBub3Qgb21pdHRlZCknIik7CitzaG91bGRCZSgibm9uTnVtZXJpY1Bv
bGljeSgnZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKS5zZXRFbmQoZG9jdW1lbnQsIHgpJykiLCAiJ2Fu
eSB0eXBlIGFsbG93ZWQgKGJ1dCBub3Qgb21pdHRlZCknIik7CitzaG91bGRCZSgibm9uTnVtZXJp
Y1BvbGljeSgnZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKS5jb21wYXJlUG9pbnQoZG9jdW1lbnQsIHgp
JykiLCAiJ2FueSB0eXBlIGFsbG93ZWQgKGJ1dCBub3Qgb21pdHRlZCknIik7CitzaG91bGRCZSgi
bm9uTnVtZXJpY1BvbGljeSgnZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKS5pc1BvaW50SW5SYW5nZShk
b2N1bWVudCwgeCknKSIsICInYW55IHR5cGUgYWxsb3dlZCAoYnV0IG5vdCBvbWl0dGVkKSciKTsK
IAogLy8gU2VsZWN0aW9uCiAKLXNob3VsZEJlKCJub25OdW1lcmljUG9saWN5KCdnZXRTZWxlY3Rp
b24oKS5jb2xsYXBzZShkb2N1bWVudCwgeCknKSIsICInYW55IHR5cGUgYWxsb3dlZCciKTsKK3No
b3VsZEJlKCJub25OdW1lcmljUG9saWN5KCdnZXRTZWxlY3Rpb24oKS5jb2xsYXBzZShkb2N1bWVu
dCwgeCknKSIsICInYW55IHR5cGUgYWxsb3dlZCAoYnV0IG5vdCBvbWl0dGVkKSciKTsKIHNob3Vs
ZEJlKCJub25OdW1lcmljUG9saWN5KCdnZXRTZWxlY3Rpb24oKS5zZXRCYXNlQW5kRXh0ZW50KGRv
Y3VtZW50LCB4LCBkb2N1bWVudCwgMCknKSIsICInYW55IHR5cGUgYWxsb3dlZCciKTsKLXNob3Vs
ZEJlKCJub25OdW1lcmljUG9saWN5KCdnZXRTZWxlY3Rpb24oKS5zZXRCYXNlQW5kRXh0ZW50KGRv
Y3VtZW50LCAwLCBkb2N1bWVudCwgeCknKSIsICInYW55IHR5cGUgYWxsb3dlZCciKTsKLXNob3Vs
ZEJlKCJub25OdW1lcmljUG9saWN5KCdnZXRTZWxlY3Rpb24oKS5zZXRQb3NpdGlvbihkb2N1bWVu
dCwgeCknKSIsICInYW55IHR5cGUgYWxsb3dlZCciKTsKLXNob3VsZEJlKCJub25OdW1lcmljUG9s
aWN5KCdnZXRTZWxlY3Rpb24oKS5leHRlbmQoZG9jdW1lbnQsIHgpJykiLCAiJ2FueSB0eXBlIGFs
bG93ZWQnIik7Ci1zaG91bGRCZSgibm9uTnVtZXJpY1BvbGljeSgnZ2V0U2VsZWN0aW9uKCkuZ2V0
UmFuZ2VBdCh4KScpIiwgIidhbnkgdHlwZSBhbGxvd2VkJyIpOworc2hvdWxkQmUoIm5vbk51bWVy
aWNQb2xpY3koJ2dldFNlbGVjdGlvbigpLnNldEJhc2VBbmRFeHRlbnQoZG9jdW1lbnQsIDAsIGRv
Y3VtZW50LCB4KScpIiwgIidhbnkgdHlwZSBhbGxvd2VkIChidXQgbm90IG9taXR0ZWQpJyIpOwor
c2hvdWxkQmUoIm5vbk51bWVyaWNQb2xpY3koJ2dldFNlbGVjdGlvbigpLnNldFBvc2l0aW9uKGRv
Y3VtZW50LCB4KScpIiwgIidhbnkgdHlwZSBhbGxvd2VkIChidXQgbm90IG9taXR0ZWQpJyIpOwor
c2hvdWxkQmUoIm5vbk51bWVyaWNQb2xpY3koJ2dldFNlbGVjdGlvbigpLmV4dGVuZChkb2N1bWVu
dCwgeCknKSIsICInYW55IHR5cGUgYWxsb3dlZCAoYnV0IG5vdCBvbWl0dGVkKSciKTsKK3Nob3Vs
ZEJlKCJub25OdW1lcmljUG9saWN5KCdnZXRTZWxlY3Rpb24oKS5nZXRSYW5nZUF0KHgpJykiLCAi
J2FueSB0eXBlIGFsbG93ZWQgKGJ1dCBub3Qgb21pdHRlZCknIik7CiAKIC8vIFNRTFJlc3VsdFNl
dFJvd0xpc3QKIApAQCAtMzI4LDExICszMjgsMTEgQEAgc2hvdWxkQmUoIm5vbk51bWVyaWNQb2xp
Y3koJ2dldFNlbGVjdGlvbigpLmdldFJhbmdlQXQoeCknKSIsICInYW55IHR5cGUgYWxsb3dlZCcK
IAogLy8gU3R5bGVTaGVldExpc3QKIAotc2hvdWxkQmUoIm5vbk51bWVyaWNQb2xpY3koJ2RvY3Vt
ZW50LnN0eWxlU2hlZXRzLml0ZW0oeCknKSIsICInYW55IHR5cGUgYWxsb3dlZCciKTsKK3Nob3Vs
ZEJlKCJub25OdW1lcmljUG9saWN5KCdkb2N1bWVudC5zdHlsZVNoZWV0cy5pdGVtKHgpJykiLCAi
J2FueSB0eXBlIGFsbG93ZWQgKGJ1dCBub3Qgb21pdHRlZCknIik7CiAKIC8vIFRleHQKIAotc2hv
dWxkQmUoIm5vbk51bWVyaWNQb2xpY3koJ2RvY3VtZW50LmNyZWF0ZVRleHROb2RlKFwiYVwiKS5z
cGxpdFRleHQoeCknKSIsICInYW55IHR5cGUgYWxsb3dlZCciKTsKK3Nob3VsZEJlKCJub25OdW1l
cmljUG9saWN5KCdkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShcImFcIikuc3BsaXRUZXh0KHgpJyki
LCAiJ2FueSB0eXBlIGFsbG93ZWQgKGJ1dCBub3Qgb21pdHRlZCknIik7CiAKIC8vIFRpbWVSYW5n
ZXMKIApAQCAtMzQ0LDI0ICszNDQsMjQgQEAgc2hvdWxkQmUoIm5vbk51bWVyaWNQb2xpY3koJ2Rv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQsIHgsIG51bGwsIGZhbHNlKScKIAogLy8g
VUlFdmVudAogCi1zaG91bGRCZSgibm9uTnVtZXJpY1BvbGljeSgnZG9jdW1lbnQuY3JlYXRlRXZl
bnQoXCJVSUV2ZW50XCIpLmluaXRVSUV2ZW50KFwiYVwiLCBmYWxzZSwgZmFsc2UsIG51bGwsIHgp
JykiLCAiJ2FueSB0eXBlIGFsbG93ZWQnIik7CitzaG91bGRCZSgibm9uTnVtZXJpY1BvbGljeSgn
ZG9jdW1lbnQuY3JlYXRlRXZlbnQoXCJVSUV2ZW50XCIpLmluaXRVSUV2ZW50KFwiYVwiLCBmYWxz
ZSwgZmFsc2UsIG51bGwsIHgpJykiLCAiJ2FueSB0eXBlIGFsbG93ZWQgKGJ1dCBub3Qgb21pdHRl
ZCknIik7CiAKIC8vIFdpbmRvdwogCiBzaG91bGRCZSgibm9uTnVtZXJpY1BvbGljeSgnd2luZG93
LnNjcm9sbEJ5KHgsIDApJykiLCAiJ2FueSB0eXBlIGFsbG93ZWQnIik7Ci1zaG91bGRCZSgibm9u
TnVtZXJpY1BvbGljeSgnd2luZG93LnNjcm9sbEJ5KDAsIHgpJykiLCAiJ2FueSB0eXBlIGFsbG93
ZWQnIik7CitzaG91bGRCZSgibm9uTnVtZXJpY1BvbGljeSgnd2luZG93LnNjcm9sbEJ5KDAsIHgp
JykiLCAiJ2FueSB0eXBlIGFsbG93ZWQgKGJ1dCBub3Qgb21pdHRlZCknIik7CiBzaG91bGRCZSgi
bm9uTnVtZXJpY1BvbGljeSgnd2luZG93LnNjcm9sbFRvKHgsIDApJykiLCAiJ2FueSB0eXBlIGFs
bG93ZWQnIik7Ci1zaG91bGRCZSgibm9uTnVtZXJpY1BvbGljeSgnd2luZG93LnNjcm9sbFRvKDAs
IHgpJykiLCAiJ2FueSB0eXBlIGFsbG93ZWQnIik7CitzaG91bGRCZSgibm9uTnVtZXJpY1BvbGlj
eSgnd2luZG93LnNjcm9sbFRvKDAsIHgpJykiLCAiJ2FueSB0eXBlIGFsbG93ZWQgKGJ1dCBub3Qg
b21pdHRlZCknIik7CiBzaG91bGRCZSgibm9uTnVtZXJpY1BvbGljeSgnd2luZG93LnNjcm9sbCh4
LCAwKScpIiwgIidhbnkgdHlwZSBhbGxvd2VkJyIpOwotc2hvdWxkQmUoIm5vbk51bWVyaWNQb2xp
Y3koJ3dpbmRvdy5zY3JvbGwoMCwgeCknKSIsICInYW55IHR5cGUgYWxsb3dlZCciKTsKK3Nob3Vs
ZEJlKCJub25OdW1lcmljUG9saWN5KCd3aW5kb3cuc2Nyb2xsKDAsIHgpJykiLCAiJ2FueSB0eXBl
IGFsbG93ZWQgKGJ1dCBub3Qgb21pdHRlZCknIik7CiBzaG91bGRCZSgibm9uTnVtZXJpY1BvbGlj
eSgnd2luZG93Lm1vdmVCeSh4LCAwKScpIiwgIidhbnkgdHlwZSBhbGxvd2VkJyIpOwotc2hvdWxk
QmUoIm5vbk51bWVyaWNQb2xpY3koJ3dpbmRvdy5tb3ZlQnkoMCwgeCknKSIsICInYW55IHR5cGUg
YWxsb3dlZCciKTsKK3Nob3VsZEJlKCJub25OdW1lcmljUG9saWN5KCd3aW5kb3cubW92ZUJ5KDAs
IHgpJykiLCAiJ2FueSB0eXBlIGFsbG93ZWQgKGJ1dCBub3Qgb21pdHRlZCknIik7CiBzaG91bGRC
ZSgibm9uTnVtZXJpY1BvbGljeSgnd2luZG93Lm1vdmVUbyh4LCAwKScpIiwgIidhbnkgdHlwZSBh
bGxvd2VkJyIpOwotc2hvdWxkQmUoIm5vbk51bWVyaWNQb2xpY3koJ3dpbmRvdy5tb3ZlVG8oMCwg
eCknKSIsICInYW55IHR5cGUgYWxsb3dlZCciKTsKK3Nob3VsZEJlKCJub25OdW1lcmljUG9saWN5
KCd3aW5kb3cubW92ZVRvKDAsIHgpJykiLCAiJ2FueSB0eXBlIGFsbG93ZWQgKGJ1dCBub3Qgb21p
dHRlZCknIik7CiBzaG91bGRCZSgibm9uTnVtZXJpY1BvbGljeSgnd2luZG93LnJlc2l6ZUJ5KHgs
IDApJykiLCAiJ2FueSB0eXBlIGFsbG93ZWQnIik7Ci1zaG91bGRCZSgibm9uTnVtZXJpY1BvbGlj
eSgnd2luZG93LnJlc2l6ZUJ5KDAsIHgpJykiLCAiJ2FueSB0eXBlIGFsbG93ZWQnIik7CitzaG91
bGRCZSgibm9uTnVtZXJpY1BvbGljeSgnd2luZG93LnJlc2l6ZUJ5KDAsIHgpJykiLCAiJ2FueSB0
eXBlIGFsbG93ZWQgKGJ1dCBub3Qgb21pdHRlZCknIik7CiBzaG91bGRCZSgibm9uTnVtZXJpY1Bv
bGljeSgnd2luZG93LnJlc2l6ZVRvKHgsIDApJykiLCAiJ2FueSB0eXBlIGFsbG93ZWQnIik7Ci1z
aG91bGRCZSgibm9uTnVtZXJpY1BvbGljeSgnd2luZG93LnJlc2l6ZVRvKDAsIHgpJykiLCAiJ2Fu
eSB0eXBlIGFsbG93ZWQnIik7CitzaG91bGRCZSgibm9uTnVtZXJpY1BvbGljeSgnd2luZG93LnJl
c2l6ZVRvKDAsIHgpJykiLCAiJ2FueSB0eXBlIGFsbG93ZWQgKGJ1dCBub3Qgb21pdHRlZCknIik7
CiAvLyBOb3QgdGVzdGVkOiBvcGVuRGF0YWJhc2UuCiAKIHdpbmRvdy5yZXNpemVUbygxMDAwMCwg
MTAwMDApOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2NyaXB0LXRlc3RzL3Nl
dFByaW1pdGl2ZVZhbHVlLWV4Y2VwdGlvbnMuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zY3Jp
cHQtdGVzdHMvc2V0UHJpbWl0aXZlVmFsdWUtZXhjZXB0aW9ucy5qcwppbmRleCBmOTNhYTllLi5h
Nzc3MGZjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zY3JpcHQtdGVzdHMvc2V0
UHJpbWl0aXZlVmFsdWUtZXhjZXB0aW9ucy5qcworKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9z
Y3JpcHQtdGVzdHMvc2V0UHJpbWl0aXZlVmFsdWUtZXhjZXB0aW9ucy5qcwpAQCAtNDQsNyArNDQs
NyBAQCBzaG91bGRUaHJvdygiZm9udEZhbWlseS5zZXRTdHJpbmdWYWx1ZShDU1NQcmltaXRpdmVW
YWx1ZS5DU1NfVU5LTk9XTiwgJ0hpIHRoZXJlIQogc2hvdWxkVGhyb3coImZvbnRGYW1pbHkuc2V0
U3RyaW5nVmFsdWUoQ1NTUHJpbWl0aXZlVmFsdWUuQ1NTX0RJTUVOU0lPTiwgXCJHJ2RheSFcIiki
KTsKIHNob3VsZFRocm93KCJmb250RmFtaWx5LnNldFN0cmluZ1ZhbHVlKENTU1ByaW1pdGl2ZVZh
bHVlLkNTU19DT1VOVEVSLCAnSGVsbG8sIHdvcmxkIScpIik7CiAKLXNob3VsZFRocm93KCJmb250
RmFtaWx5LmdldEZsb2F0VmFsdWUoKSIpOworc2hvdWxkVGhyb3coImZvbnRGYW1pbHkuZ2V0Rmxv
YXRWYWx1ZShDU1NQcmltaXRpdmVWYWx1ZS5DU1NfUFgpIik7CiBzaG91bGRUaHJvdygiZm9udEZh
bWlseS5nZXRDb3VudGVyVmFsdWUoKSIpOwogc2hvdWxkVGhyb3coImZvbnRGYW1pbHkuZ2V0UmVj
dFZhbHVlKCkiKTsKIHNob3VsZFRocm93KCJmb250RmFtaWx5LmdldFJHQkNvbG9yVmFsdWUoKSIp
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2V0UHJpbWl0aXZlVmFsdWUtZXhj
ZXB0aW9ucy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zZXRQcmltaXRpdmVW
YWx1ZS1leGNlcHRpb25zLWV4cGVjdGVkLnR4dAppbmRleCA0NDZmMmU4Li45NzAwODczIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zZXRQcmltaXRpdmVWYWx1ZS1leGNlcHRpb25z
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zZXRQcmltaXRpdmVWYWx1
ZS1leGNlcHRpb25zLWV4cGVjdGVkLnR4dApAQCAtMTgsNyArMTgsNyBAQCBQQVNTIGZvbnRGYW1p
bHkuZ2V0U3RyaW5nVmFsdWUoKSBpcyAiRydkYXkhIgogUEFTUyBmb250RmFtaWx5LnNldFN0cmlu
Z1ZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlLkNTU19VTktOT1dOLCAnSGkgdGhlcmUhJykgdGhyZXcg
ZXhjZXB0aW9uIEVycm9yOiBJTlZBTElEX0FDQ0VTU19FUlI6IERPTSBFeGNlcHRpb24gMTUuCiBQ
QVNTIGZvbnRGYW1pbHkuc2V0U3RyaW5nVmFsdWUoQ1NTUHJpbWl0aXZlVmFsdWUuQ1NTX0RJTUVO
U0lPTiwgIkcnZGF5ISIpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJRF9BQ0NFU1NfRVJS
OiBET00gRXhjZXB0aW9uIDE1LgogUEFTUyBmb250RmFtaWx5LnNldFN0cmluZ1ZhbHVlKENTU1By
aW1pdGl2ZVZhbHVlLkNTU19DT1VOVEVSLCAnSGVsbG8sIHdvcmxkIScpIHRocmV3IGV4Y2VwdGlv
biBFcnJvcjogSU5WQUxJRF9BQ0NFU1NfRVJSOiBET00gRXhjZXB0aW9uIDE1LgotUEFTUyBmb250
RmFtaWx5LmdldEZsb2F0VmFsdWUoKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOVkFMSURfQUND
RVNTX0VSUjogRE9NIEV4Y2VwdGlvbiAxNS4KK1BBU1MgZm9udEZhbWlseS5nZXRGbG9hdFZhbHVl
KENTU1ByaW1pdGl2ZVZhbHVlLkNTU19QWCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTlZBTElE
X0FDQ0VTU19FUlI6IERPTSBFeGNlcHRpb24gMTUuCiBQQVNTIGZvbnRGYW1pbHkuZ2V0Q291bnRl
clZhbHVlKCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTlZBTElEX0FDQ0VTU19FUlI6IERPTSBF
eGNlcHRpb24gMTUuCiBQQVNTIGZvbnRGYW1pbHkuZ2V0UmVjdFZhbHVlKCkgdGhyZXcgZXhjZXB0
aW9uIEVycm9yOiBJTlZBTElEX0FDQ0VTU19FUlI6IERPTSBFeGNlcHRpb24gMTUuCiBQQVNTIGZv
bnRGYW1pbHkuZ2V0UkdCQ29sb3JWYWx1ZSgpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJ
RF9BQ0NFU1NfRVJSOiBET00gRXhjZXB0aW9uIDE1LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vc3R5bGUtc2hlZXQtY2FuZGlkYXRlLXJlbW92ZS11bnJlbmRlcmVkLWRvY3VtZW50
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zdHlsZS1zaGVldC1jYW5kaWRhdGUtcmVtb3Zl
LXVucmVuZGVyZWQtZG9jdW1lbnQuaHRtbAppbmRleCBhYzU3YWFhLi4wYjc2ZTA2IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zdHlsZS1zaGVldC1jYW5kaWRhdGUtcmVtb3ZlLXVu
cmVuZGVyZWQtZG9jdW1lbnQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zdHlsZS1z
aGVldC1jYW5kaWRhdGUtcmVtb3ZlLXVucmVuZGVyZWQtZG9jdW1lbnQuaHRtbApAQCAtMTEsNyAr
MTEsNyBAQAogICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAgICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKIAotICAgIHZhciBvdGhlckRvY3VtZW50
ID0gZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlSFRNTERvY3VtZW50KCk7CisgICAgdmFy
IG90aGVyRG9jdW1lbnQgPSBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1l
bnQoIiIpOwogICAgIG90aGVyRG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmlubmVySFRNTCA9ICI8
bGluaz4iOwogICAgIG90aGVyRG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmlubmVySFRNTCA9ICIi
OwogICAgIG90aGVyRG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmFwcGVuZENoaWxkKG90aGVyRG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgiaGVhZCIpKS5hcHBlbmRDaGlsZChvdGhlckRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoInN0eWxlIikpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9keW5h
bWljL2hvdmVyZWQtZGV0YWNoLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2R5bmFtaWMvaG92ZXJl
ZC1kZXRhY2guaHRtbAppbmRleCBkNDk4MWQyLi5kZTI2NDNjIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L2R5bmFtaWMvaG92ZXJlZC1kZXRhY2guaHRtbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2R5bmFtaWMvaG92ZXJlZC1kZXRhY2guaHRtbApAQCAtMTgsNyArMTgsNyBAQCBmdW5jdGlv
biB0ZXN0KCkKICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKICAgICBhLnN0eWxlLmRpc3Bs
YXkgPSAnaW5saW5lJzsKICAgICB2YXIgciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1
bHQnKTsKLSAgICB2YXIgY29sID0gZG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHls
ZShhKS5jb2xvcjsKKyAgICB2YXIgY29sID0gZG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0
ZWRTdHlsZShhLCBudWxsKS5jb2xvcjsKICAgICByLmlubmVyVGV4dCA9IGNvbCA9PSAicmdiKDAs
IDAsIDApIiA/ICJQQVNTIiA6ICJGQUlMOiAiK2NvbDsKIH0KIDwvc2NyaXB0PgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9keW5hbWljL3Bvc2l0aW9uLWFic29sdXRlLXRvLWZpeGVkLWNy
YXNoLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2R5bmFtaWMvcG9zaXRpb24tYWJzb2x1dGUtdG8t
Zml4ZWQtY3Jhc2guaHRtbAppbmRleCAwYjQ2MDI4Li4yZGZjZDYzIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L2R5bmFtaWMvcG9zaXRpb24tYWJzb2x1dGUtdG8tZml4ZWQtY3Jhc2guaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2R5bmFtaWMvcG9zaXRpb24tYWJzb2x1dGUtdG8tZml4
ZWQtY3Jhc2guaHRtbApAQCAtNywxMyArNywxMyBAQAogICAgICAgICB7CiAgICAgICAgICAgICBk
b2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKICAgICAgICAgICAgIHZhciBzID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoInRhcmdldCIpLnN0eWxlOwotICAgICAgICAgICAgcy5zZXRQcm9wZXJ0eSgi
cG9zaXRpb24iLCAiZml4ZWQiKTsKKyAgICAgICAgICAgIHMuc2V0UHJvcGVydHkoInBvc2l0aW9u
IiwgImZpeGVkIiwgbnVsbCk7CiAgICAgICAgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsK
LSAgICAgICAgICAgIHMuc2V0UHJvcGVydHkoIm92ZXJmbG93IiwgImhpZGRlbiIpOwotICAgICAg
ICAgICAgcy5zZXRQcm9wZXJ0eSgiaGVpZ2h0IiwgIjAiKTsKLSAgICAgICAgICAgIHMuc2V0UHJv
cGVydHkoIndpZHRoIiwgIjAiKTsKKyAgICAgICAgICAgIHMuc2V0UHJvcGVydHkoIm92ZXJmbG93
IiwgImhpZGRlbiIsIG51bGwpOworICAgICAgICAgICAgcy5zZXRQcm9wZXJ0eSgiaGVpZ2h0Iiwg
IjAiLCBudWxsKTsKKyAgICAgICAgICAgIHMuc2V0UHJvcGVydHkoIndpZHRoIiwgIjAiLCBudWxs
KTsKICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOwotICAgICAgICAgICAgcy5z
ZXRQcm9wZXJ0eSgiZGlzcGxheSIsICJub25lIik7CisgICAgICAgICAgICBzLnNldFByb3BlcnR5
KCJkaXNwbGF5IiwgIm5vbmUiLCBudWxsKTsKICAgICAgICAgfQogICAgIDwvc2NyaXB0PgogPC9o
ZWFkPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvZXZlbnQtbGlzdGVuZXIt
bWFwLXJlaGFzaC1jcmFzaC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvZXZlbnQtbGlz
dGVuZXItbWFwLXJlaGFzaC1jcmFzaC5odG1sCmluZGV4IDRlODFlMTQuLjE5ZmY1MmEgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2V2ZW50LWxpc3RlbmVyLW1hcC1yZWhhc2gt
Y3Jhc2guaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9ldmVudC1saXN0ZW5lci1t
YXAtcmVoYXNoLWNyYXNoLmh0bWwKQEAgLTExLDcgKzExLDcgQEAKICAgICAgICAgICAgIGRvY3Vt
ZW50LmFkZEV2ZW50TGlzdGVuZXIoImJvb20iICsgaSwgc3R1YiwgZmFsc2UpOwogICAgIH0sIGZh
bHNlKTsKIAotICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQi
LCBzdHViKTsKKyAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVk
Iiwgc3R1YiwgZmFsc2UpOwogCiAgICAgdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CiA8
L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2luaXQtZXZlbnRz
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2luaXQtZXZlbnRzLWV4cGVj
dGVkLnR4dAppbmRleCA4MmUyYmE5Li42MjVmYzZlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy9pbml0LWV2ZW50cy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvaW5pdC1ldmVudHMtZXhwZWN0ZWQudHh0CkBAIC0xMjYsMjAgKzEyNiwyMCBAQCBQ
QVNTIHRlc3RJbml0RXZlbnQoJ1Byb2dyZXNzJywgJyJhIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSwg
MTAwMSwgMTAwMicpLmxlbmd0aENvbQogUEFTUyB0ZXN0SW5pdEV2ZW50KCdQcm9ncmVzcycsICci
YSIsIGZhbHNlLCBmYWxzZSwgdHJ1ZSwgMTAwMSwgMTAwMicpLmxlbmd0aENvbXB1dGFibGUgaXMg
dHJ1ZQogUEFTUyB0ZXN0SW5pdEV2ZW50KCdQcm9ncmVzcycsICciYSIsIGZhbHNlLCBmYWxzZSwg
ZmFsc2UsIDEwMDEsIDEwMDInKS5sb2FkZWQgaXMgMTAwMQogUEFTUyB0ZXN0SW5pdEV2ZW50KCdQ
cm9ncmVzcycsICciYSIsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIDEwMDEsIDEwMDInKS50b3RhbCBp
cyAxMDAyCi1QQVNTIHRlc3RJbml0RXZlbnQoJ1N0b3JhZ2UnLCAnImEiLCBmYWxzZSwgZmFsc2Us
ICJiIiwgImMiLCAiZCIsICJlIicpLnR5cGUgaXMgJ2EnCi1QQVNTIHRlc3RJbml0RXZlbnQoJ1N0
b3JhZ2UnLCAnbnVsbCwgZmFsc2UsIGZhbHNlLCAiYiIsICJjIiwgImQiLCAiZSInKS50eXBlIGlz
ICdudWxsJwotUEFTUyB0ZXN0SW5pdEV2ZW50KCdTdG9yYWdlJywgJyJhIiwgZmFsc2UsIGZhbHNl
LCAiYiIsICJjIiwgImQiLCAiZSInKS5idWJibGVzIGlzIGZhbHNlCi1QQVNTIHRlc3RJbml0RXZl
bnQoJ1N0b3JhZ2UnLCAnImEiLCB0cnVlLCBmYWxzZSwgImIiLCAiYyIsICJkIiwgImUiJykuYnVi
YmxlcyBpcyB0cnVlCi1QQVNTIHRlc3RJbml0RXZlbnQoJ1N0b3JhZ2UnLCAnImEiLCBmYWxzZSwg
ZmFsc2UsICJiIiwgImMiLCAiZCIsICJlIicpLmNhbmNlbGFibGUgaXMgZmFsc2UKLVBBU1MgdGVz
dEluaXRFdmVudCgnU3RvcmFnZScsICciYSIsIGZhbHNlLCB0cnVlLCAiYiIsICJjIiwgImQiLCAi
ZSInKS5jYW5jZWxhYmxlIGlzIHRydWUKLVBBU1MgdGVzdEluaXRFdmVudCgnU3RvcmFnZScsICci
YSIsIGZhbHNlLCBmYWxzZSwgImIiLCAiYyIsICJkIiwgImUiJykua2V5IGlzICdiJwotUEFTUyB0
ZXN0SW5pdEV2ZW50KCdTdG9yYWdlJywgJyJhIiwgZmFsc2UsIGZhbHNlLCBudWxsLCAiYyIsICJk
IiwgImUiJykua2V5IGlzICdudWxsJwotUEFTUyB0ZXN0SW5pdEV2ZW50KCdTdG9yYWdlJywgJyJh
IiwgZmFsc2UsIGZhbHNlLCAiYiIsICJjIiwgImQiLCAiZSInKS5vbGRWYWx1ZSBpcyAnYycKLVBB
U1MgdGVzdEluaXRFdmVudCgnU3RvcmFnZScsICciYSIsIGZhbHNlLCBmYWxzZSwgImIiLCBudWxs
LCAiZCIsICJlIicpLm9sZFZhbHVlIGlzIG51bGwKLVBBU1MgdGVzdEluaXRFdmVudCgnU3RvcmFn
ZScsICciYSIsIGZhbHNlLCBmYWxzZSwgImIiLCAiYyIsICJkIiwgImUiJykubmV3VmFsdWUgaXMg
J2QnCi1QQVNTIHRlc3RJbml0RXZlbnQoJ1N0b3JhZ2UnLCAnImEiLCBmYWxzZSwgZmFsc2UsICJi
IiwgImMiLCBudWxsLCAiZSInKS5uZXdWYWx1ZSBpcyBudWxsCi1QQVNTIHRlc3RJbml0RXZlbnQo
J1N0b3JhZ2UnLCAnImEiLCBmYWxzZSwgZmFsc2UsICJiIiwgImMiLCAiZCIsICJlIicpLnVybCBp
cyAnZScKLVBBU1MgdGVzdEluaXRFdmVudCgnU3RvcmFnZScsICciYSIsIGZhbHNlLCBmYWxzZSwg
ImIiLCAiYyIsICJkIiwgbnVsbCcpLnVybCBpcyAnbnVsbCcKK1BBU1MgdGVzdEluaXRFdmVudCgn
U3RvcmFnZScsICciYSIsIGZhbHNlLCBmYWxzZSwgImIiLCAiYyIsICJkIiwgImUiLCBudWxsJyku
dHlwZSBpcyAnYScKK1BBU1MgdGVzdEluaXRFdmVudCgnU3RvcmFnZScsICdudWxsLCBmYWxzZSwg
ZmFsc2UsICJiIiwgImMiLCAiZCIsICJlIiwgbnVsbCcpLnR5cGUgaXMgJ251bGwnCitQQVNTIHRl
c3RJbml0RXZlbnQoJ1N0b3JhZ2UnLCAnImEiLCBmYWxzZSwgZmFsc2UsICJiIiwgImMiLCAiZCIs
ICJlIiwgbnVsbCcpLmJ1YmJsZXMgaXMgZmFsc2UKK1BBU1MgdGVzdEluaXRFdmVudCgnU3RvcmFn
ZScsICciYSIsIHRydWUsIGZhbHNlLCAiYiIsICJjIiwgImQiLCAiZSIsIG51bGwnKS5idWJibGVz
IGlzIHRydWUKK1BBU1MgdGVzdEluaXRFdmVudCgnU3RvcmFnZScsICciYSIsIGZhbHNlLCBmYWxz
ZSwgImIiLCAiYyIsICJkIiwgImUiLCBudWxsJykuY2FuY2VsYWJsZSBpcyBmYWxzZQorUEFTUyB0
ZXN0SW5pdEV2ZW50KCdTdG9yYWdlJywgJyJhIiwgZmFsc2UsIHRydWUsICJiIiwgImMiLCAiZCIs
ICJlIiwgbnVsbCcpLmNhbmNlbGFibGUgaXMgdHJ1ZQorUEFTUyB0ZXN0SW5pdEV2ZW50KCdTdG9y
YWdlJywgJyJhIiwgZmFsc2UsIGZhbHNlLCAiYiIsICJjIiwgImQiLCAiZSIsIG51bGwnKS5rZXkg
aXMgJ2InCitQQVNTIHRlc3RJbml0RXZlbnQoJ1N0b3JhZ2UnLCAnImEiLCBmYWxzZSwgZmFsc2Us
IG51bGwsICJjIiwgImQiLCAiZSIsIG51bGwnKS5rZXkgaXMgJ251bGwnCitQQVNTIHRlc3RJbml0
RXZlbnQoJ1N0b3JhZ2UnLCAnImEiLCBmYWxzZSwgZmFsc2UsICJiIiwgImMiLCAiZCIsICJlIiwg
bnVsbCcpLm9sZFZhbHVlIGlzICdjJworUEFTUyB0ZXN0SW5pdEV2ZW50KCdTdG9yYWdlJywgJyJh
IiwgZmFsc2UsIGZhbHNlLCAiYiIsIG51bGwsICJkIiwgImUiLCBudWxsJykub2xkVmFsdWUgaXMg
bnVsbAorUEFTUyB0ZXN0SW5pdEV2ZW50KCdTdG9yYWdlJywgJyJhIiwgZmFsc2UsIGZhbHNlLCAi
YiIsICJjIiwgImQiLCAiZSIsIG51bGwnKS5uZXdWYWx1ZSBpcyAnZCcKK1BBU1MgdGVzdEluaXRF
dmVudCgnU3RvcmFnZScsICciYSIsIGZhbHNlLCBmYWxzZSwgImIiLCAiYyIsIG51bGwsICJlIiwg
bnVsbCcpLm5ld1ZhbHVlIGlzIG51bGwKK1BBU1MgdGVzdEluaXRFdmVudCgnU3RvcmFnZScsICci
YSIsIGZhbHNlLCBmYWxzZSwgImIiLCAiYyIsICJkIiwgImUiLCBudWxsJykudXJsIGlzICdlJwor
UEFTUyB0ZXN0SW5pdEV2ZW50KCdTdG9yYWdlJywgJyJhIiwgZmFsc2UsIGZhbHNlLCAiYiIsICJj
IiwgImQiLCBudWxsLCBudWxsJykudXJsIGlzICdudWxsJwogUEFTUyB0ZXN0SW5pdEV2ZW50KCdU
ZXh0JywgJyJhIiwgZmFsc2UsIGZhbHNlLCB3aW5kb3csICJiIicpLnR5cGUgaXMgJ2EnCiBQQVNT
IHRlc3RJbml0RXZlbnQoJ1RleHQnLCAnbnVsbCwgZmFsc2UsIGZhbHNlLCB3aW5kb3csICJiIicp
LnR5cGUgaXMgJ251bGwnCiBQQVNTIHRlc3RJbml0RXZlbnQoJ1RleHQnLCAnImEiLCBmYWxzZSwg
ZmFsc2UsIHdpbmRvdywgImIiJykuYnViYmxlcyBpcyBmYWxzZQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9ldmVudHMvbWVzc2FnZS1wb3J0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy9tZXNzYWdlLXBvcnQuaHRtbAppbmRleCBlYjgwMTgzLi5jMDVmZjk1IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9tZXNzYWdlLXBvcnQuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy9tZXNzYWdlLXBvcnQuaHRtbApAQCAtNTQsNyArNTQsNyBAQCBmdW5j
dGlvbiB0ZXN0MygpCiAgICAgICAgICAgICB0ZXN0NCgpOwogICAgICAgICB9IGVsc2UKICAgICAg
ICAgICAgIGxvZygiRXZlbnQgTGlzdGVuZXI6IEZBSUwuIEV2ZW50IGxpc3RlbmVyIGNhbGxlZCBi
ZWZvcmUgc3RhcnQoKSIpOwotICAgfSk7CisgICB9LCBmYWxzZSk7CiAgICBzZXRUaW1lb3V0KGZ1
bmN0aW9uKCkgewogICAgICAgY2hhbm5lbC5wb3J0Mi5zdGFydCgpOwogICAgICAgc3RhcnRlZCA9
IHRydWU7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9yZXNvdXJjZXMvZHJh
Zy1vdXRzaWRlLXdpbmRvdy1mcmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcmVz
b3VyY2VzL2RyYWctb3V0c2lkZS13aW5kb3ctZnJhbWUuaHRtbAppbmRleCA0N2ZlMmFlLi41MTI2
YmI3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9yZXNvdXJjZXMvZHJhZy1v
dXRzaWRlLXdpbmRvdy1mcmFtZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Jl
c291cmNlcy9kcmFnLW91dHNpZGUtd2luZG93LWZyYW1lLmh0bWwKQEAgLTEsNiArMSw2IEBACiA8
Ym9keSBvbmxvYWQ9InRlc3QoKSI+CiA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci1k
b2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLCBtb3VzZW1vdmVkKTsKK2RvY3Vt
ZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsIG1vdXNlbW92ZWQsIGZhbHNlKTsKIAog
dmFyIHJlc3VsdCA9ICJGQUlMIjsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvcmVzb3VyY2VzL3RhYmluZGV4LWZvY3VzLWJsdXItYWxsLmpzIGIvTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvcmVzb3VyY2VzL3RhYmluZGV4LWZvY3VzLWJsdXItYWxsLmpzCmluZGV4IDMzNTU2
MzAuLjM5NTU3Y2YgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Jlc291cmNl
cy90YWJpbmRleC1mb2N1cy1ibHVyLWFsbC5qcworKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50
cy9yZXNvdXJjZXMvdGFiaW5kZXgtZm9jdXMtYmx1ci1hbGwuanMKQEAgLTEwNyw3ICsxMDcsNyBA
QCBmdW5jdGlvbiB0ZXN0UHJvZ3JhbW1hdGljRm9jdXMoZWxlbSkKICAgICAgICAgZWxlbVRoYXRT
aG91bGRGb2N1cyA9IGVsZW07CiAKICAgICAvLyBIaWRkZW4gZWxlbWVudHMgc2hvdWxkIG5vdCBi
ZSBmb2N1c2FibGUuIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzA5
OQotICAgIGlmIChkb2N1bWVudC5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKGVsZW0pLmRp
c3BsYXkgPT0gIm5vbmUiICYmICFub0Rpc3BsYXlUYWdOYW1lc1dpdGhGb2N1cy5maW5kKGVsZW0u
dGFnTmFtZSkpCisgICAgaWYgKGRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUo
ZWxlbSwgbnVsbCkuZGlzcGxheSA9PSAibm9uZSIgJiYgIW5vRGlzcGxheVRhZ05hbWVzV2l0aEZv
Y3VzLmZpbmQoZWxlbS50YWdOYW1lKSkKICAgICAgICAgZWxlbVRoYXRTaG91bGRGb2N1cyA9IG51
bGw7CiAKICAgICBpZiAodGFnTmFtZXNUcmFuc2ZlckZvY3VzZWQuZmluZChlbGVtLnRhZ05hbWUp
KSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zY3JpcHQtdGVzdHMvaW5p
dC1ldmVudHMuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zY3JpcHQtdGVzdHMvaW5pdC1l
dmVudHMuanMKaW5kZXggMGEzMjQwNy4uMjg4ZTk2MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvc2NyaXB0LXRlc3RzL2luaXQtZXZlbnRzLmpzCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZXZlbnRzL3NjcmlwdC10ZXN0cy9pbml0LWV2ZW50cy5qcwpAQCAtMTQ1LDIwICsxNDUs
MjAgQEAgc2hvdWxkQmUoInRlc3RJbml0RXZlbnQoJ1Byb2dyZXNzJywgJ1wiYVwiLCBmYWxzZSwg
ZmFsc2UsIHRydWUsIDEwMDEsIDEwMDInKS5sZW4KIHNob3VsZEJlKCJ0ZXN0SW5pdEV2ZW50KCdQ
cm9ncmVzcycsICdcImFcIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgMTAwMSwgMTAwMicpLmxvYWRl
ZCIsICIxMDAxIik7CiBzaG91bGRCZSgidGVzdEluaXRFdmVudCgnUHJvZ3Jlc3MnLCAnXCJhXCIs
IGZhbHNlLCBmYWxzZSwgZmFsc2UsIDEwMDEsIDEwMDInKS50b3RhbCIsICIxMDAyIik7CiAKLXNo
b3VsZEJlKCJ0ZXN0SW5pdEV2ZW50KCdTdG9yYWdlJywgJ1wiYVwiLCBmYWxzZSwgZmFsc2UsIFwi
YlwiLCBcImNcIiwgXCJkXCIsIFwiZVwiJykudHlwZSIsICInYSciKTsKLXNob3VsZEJlKCJ0ZXN0
SW5pdEV2ZW50KCdTdG9yYWdlJywgJ251bGwsIGZhbHNlLCBmYWxzZSwgXCJiXCIsIFwiY1wiLCBc
ImRcIiwgXCJlXCInKS50eXBlIiwgIidudWxsJyIpOwotc2hvdWxkQmUoInRlc3RJbml0RXZlbnQo
J1N0b3JhZ2UnLCAnXCJhXCIsIGZhbHNlLCBmYWxzZSwgXCJiXCIsIFwiY1wiLCBcImRcIiwgXCJl
XCInKS5idWJibGVzIiwgImZhbHNlIik7Ci1zaG91bGRCZSgidGVzdEluaXRFdmVudCgnU3RvcmFn
ZScsICdcImFcIiwgdHJ1ZSwgZmFsc2UsIFwiYlwiLCBcImNcIiwgXCJkXCIsIFwiZVwiJykuYnVi
YmxlcyIsICJ0cnVlIik7Ci1zaG91bGRCZSgidGVzdEluaXRFdmVudCgnU3RvcmFnZScsICdcImFc
IiwgZmFsc2UsIGZhbHNlLCBcImJcIiwgXCJjXCIsIFwiZFwiLCBcImVcIicpLmNhbmNlbGFibGUi
LCAiZmFsc2UiKTsKLXNob3VsZEJlKCJ0ZXN0SW5pdEV2ZW50KCdTdG9yYWdlJywgJ1wiYVwiLCBm
YWxzZSwgdHJ1ZSwgXCJiXCIsIFwiY1wiLCBcImRcIiwgXCJlXCInKS5jYW5jZWxhYmxlIiwgInRy
dWUiKTsKLXNob3VsZEJlKCJ0ZXN0SW5pdEV2ZW50KCdTdG9yYWdlJywgJ1wiYVwiLCBmYWxzZSwg
ZmFsc2UsIFwiYlwiLCBcImNcIiwgXCJkXCIsIFwiZVwiJykua2V5IiwgIidiJyIpOwotc2hvdWxk
QmUoInRlc3RJbml0RXZlbnQoJ1N0b3JhZ2UnLCAnXCJhXCIsIGZhbHNlLCBmYWxzZSwgbnVsbCwg
XCJjXCIsIFwiZFwiLCBcImVcIicpLmtleSIsICInbnVsbCciKTsKLXNob3VsZEJlKCJ0ZXN0SW5p
dEV2ZW50KCdTdG9yYWdlJywgJ1wiYVwiLCBmYWxzZSwgZmFsc2UsIFwiYlwiLCBcImNcIiwgXCJk
XCIsIFwiZVwiJykub2xkVmFsdWUiLCAiJ2MnIik7Ci1zaG91bGRCZSgidGVzdEluaXRFdmVudCgn
U3RvcmFnZScsICdcImFcIiwgZmFsc2UsIGZhbHNlLCBcImJcIiwgbnVsbCwgXCJkXCIsIFwiZVwi
Jykub2xkVmFsdWUiLCAibnVsbCIpOwotc2hvdWxkQmUoInRlc3RJbml0RXZlbnQoJ1N0b3JhZ2Un
LCAnXCJhXCIsIGZhbHNlLCBmYWxzZSwgXCJiXCIsIFwiY1wiLCBcImRcIiwgXCJlXCInKS5uZXdW
YWx1ZSIsICInZCciKTsKLXNob3VsZEJlKCJ0ZXN0SW5pdEV2ZW50KCdTdG9yYWdlJywgJ1wiYVwi
LCBmYWxzZSwgZmFsc2UsIFwiYlwiLCBcImNcIiwgbnVsbCwgXCJlXCInKS5uZXdWYWx1ZSIsICJu
dWxsIik7Ci1zaG91bGRCZSgidGVzdEluaXRFdmVudCgnU3RvcmFnZScsICdcImFcIiwgZmFsc2Us
IGZhbHNlLCBcImJcIiwgXCJjXCIsIFwiZFwiLCBcImVcIicpLnVybCIsICInZSciKTsKLXNob3Vs
ZEJlKCJ0ZXN0SW5pdEV2ZW50KCdTdG9yYWdlJywgJ1wiYVwiLCBmYWxzZSwgZmFsc2UsIFwiYlwi
LCBcImNcIiwgXCJkXCIsIG51bGwnKS51cmwiLCAiJ251bGwnIik7CitzaG91bGRCZSgidGVzdElu
aXRFdmVudCgnU3RvcmFnZScsICdcImFcIiwgZmFsc2UsIGZhbHNlLCBcImJcIiwgXCJjXCIsIFwi
ZFwiLCBcImVcIiwgbnVsbCcpLnR5cGUiLCAiJ2EnIik7CitzaG91bGRCZSgidGVzdEluaXRFdmVu
dCgnU3RvcmFnZScsICdudWxsLCBmYWxzZSwgZmFsc2UsIFwiYlwiLCBcImNcIiwgXCJkXCIsIFwi
ZVwiLCBudWxsJykudHlwZSIsICInbnVsbCciKTsKK3Nob3VsZEJlKCJ0ZXN0SW5pdEV2ZW50KCdT
dG9yYWdlJywgJ1wiYVwiLCBmYWxzZSwgZmFsc2UsIFwiYlwiLCBcImNcIiwgXCJkXCIsIFwiZVwi
LCBudWxsJykuYnViYmxlcyIsICJmYWxzZSIpOworc2hvdWxkQmUoInRlc3RJbml0RXZlbnQoJ1N0
b3JhZ2UnLCAnXCJhXCIsIHRydWUsIGZhbHNlLCBcImJcIiwgXCJjXCIsIFwiZFwiLCBcImVcIiwg
bnVsbCcpLmJ1YmJsZXMiLCAidHJ1ZSIpOworc2hvdWxkQmUoInRlc3RJbml0RXZlbnQoJ1N0b3Jh
Z2UnLCAnXCJhXCIsIGZhbHNlLCBmYWxzZSwgXCJiXCIsIFwiY1wiLCBcImRcIiwgXCJlXCIsIG51
bGwnKS5jYW5jZWxhYmxlIiwgImZhbHNlIik7CitzaG91bGRCZSgidGVzdEluaXRFdmVudCgnU3Rv
cmFnZScsICdcImFcIiwgZmFsc2UsIHRydWUsIFwiYlwiLCBcImNcIiwgXCJkXCIsIFwiZVwiLCBu
dWxsJykuY2FuY2VsYWJsZSIsICJ0cnVlIik7CitzaG91bGRCZSgidGVzdEluaXRFdmVudCgnU3Rv
cmFnZScsICdcImFcIiwgZmFsc2UsIGZhbHNlLCBcImJcIiwgXCJjXCIsIFwiZFwiLCBcImVcIiwg
bnVsbCcpLmtleSIsICInYiciKTsKK3Nob3VsZEJlKCJ0ZXN0SW5pdEV2ZW50KCdTdG9yYWdlJywg
J1wiYVwiLCBmYWxzZSwgZmFsc2UsIG51bGwsIFwiY1wiLCBcImRcIiwgXCJlXCIsIG51bGwnKS5r
ZXkiLCAiJ251bGwnIik7CitzaG91bGRCZSgidGVzdEluaXRFdmVudCgnU3RvcmFnZScsICdcImFc
IiwgZmFsc2UsIGZhbHNlLCBcImJcIiwgXCJjXCIsIFwiZFwiLCBcImVcIiwgbnVsbCcpLm9sZFZh
bHVlIiwgIidjJyIpOworc2hvdWxkQmUoInRlc3RJbml0RXZlbnQoJ1N0b3JhZ2UnLCAnXCJhXCIs
IGZhbHNlLCBmYWxzZSwgXCJiXCIsIG51bGwsIFwiZFwiLCBcImVcIiwgbnVsbCcpLm9sZFZhbHVl
IiwgIm51bGwiKTsKK3Nob3VsZEJlKCJ0ZXN0SW5pdEV2ZW50KCdTdG9yYWdlJywgJ1wiYVwiLCBm
YWxzZSwgZmFsc2UsIFwiYlwiLCBcImNcIiwgXCJkXCIsIFwiZVwiLCBudWxsJykubmV3VmFsdWUi
LCAiJ2QnIik7CitzaG91bGRCZSgidGVzdEluaXRFdmVudCgnU3RvcmFnZScsICdcImFcIiwgZmFs
c2UsIGZhbHNlLCBcImJcIiwgXCJjXCIsIG51bGwsIFwiZVwiLCBudWxsJykubmV3VmFsdWUiLCAi
bnVsbCIpOworc2hvdWxkQmUoInRlc3RJbml0RXZlbnQoJ1N0b3JhZ2UnLCAnXCJhXCIsIGZhbHNl
LCBmYWxzZSwgXCJiXCIsIFwiY1wiLCBcImRcIiwgXCJlXCIsIG51bGwnKS51cmwiLCAiJ2UnIik7
CitzaG91bGRCZSgidGVzdEluaXRFdmVudCgnU3RvcmFnZScsICdcImFcIiwgZmFsc2UsIGZhbHNl
LCBcImJcIiwgXCJjXCIsIFwiZFwiLCBudWxsLCBudWxsJykudXJsIiwgIidudWxsJyIpOwogCiBz
aG91bGRCZSgidGVzdEluaXRFdmVudCgnVGV4dCcsICdcImFcIiwgZmFsc2UsIGZhbHNlLCB3aW5k
b3csIFwiYlwiJykudHlwZSIsICInYSciKTsKIHNob3VsZEJlKCJ0ZXN0SW5pdEV2ZW50KCdUZXh0
JywgJ251bGwsIGZhbHNlLCBmYWxzZSwgd2luZG93LCBcImJcIicpLnR5cGUiLCAiJ251bGwnIik7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtY3VzdG9t
RXJyb3ItMDA0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtY3Vz
dG9tRXJyb3ItMDA0Lmh0bWwKaW5kZXggZGZhYThmYi4uZGJkM2JjNiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLWN1c3RvbUVycm9yLTAwNC5odG1sCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1jdXN0b21FcnJvci0wMDQu
aHRtbApAQCAtMTUsNyArMTUsNyBAQAogICAgICAgICAvLyBCbGFuawogICAgICAgICBmb3IgKGkg
PSAwOyBpIDwgdi5sZW5ndGg7IGkrKykgewogICAgICAgICAgICAgdltpXS5zZXRDdXN0b21WYWxp
ZGl0eSgiQ3VzdG9tIHN0cmluZyIpOwotICAgICAgICAgICAgdltpXS5zZXRDdXN0b21WYWxpZGl0
eSgpOworICAgICAgICAgICAgdltpXS5zZXRDdXN0b21WYWxpZGl0eShudWxsKTsKICAgICAgICAg
ICAgIGxvZyghdltpXS52YWxpZGl0eS5jdXN0b21FcnJvciA/ICJTVUNDRVNTIiA6ICJGQUlMVVJF
Iik7CiAgICAgICAgICAgICB2W2ldLnNldEN1c3RvbVZhbGlkaXR5KCJvbmUiLCAidHdvIiwgInRo
cmVlIik7CiAgICAgICAgICAgICBsb2codltpXS52YWxpZGl0eS5jdXN0b21FcnJvciA/ICJTVUND
RVNTIiA6ICJGQUlMVVJFIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2xl
Z2VuZC1kaXNwbGF5LW5vbmUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvbGVnZW5kLWRp
c3BsYXktbm9uZS5odG1sCmluZGV4IDI3OGFhZjYuLmQzMWViNzUgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvZm9ybXMvbGVnZW5kLWRpc3BsYXktbm9uZS5odG1sCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvbGVnZW5kLWRpc3BsYXktbm9uZS5odG1sCkBAIC0xMSw2ICsxMSw2IEBA
CiAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKIAogICAgIGRvY3Vt
ZW50LmJvZHkub2Zmc2V0VG9wOwotICAgIGRpc3BsYXkgPSBnZXRDb21wdXRlZFN0eWxlKGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSkuZGlzcGxheTsKKyAgICBkaXNwbGF5ID0gZ2V0
Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0IiksIG51bGwpLmRp
c3BsYXk7CiAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc3VsdCIpLmlubmVyVGV4dCA9
IGRpc3BsYXkgPT09ICJub25lIiA/ICJQQVNTIiA6ICgiRkFJTDogZGlzcGxheSB3YXMgJyIgKyBk
aXNwbGF5ICsgIicuIik7CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
Zm9ybXMvc2NyaXB0LXRlc3RzL2NoZWNrVmFsaWRpdHktaGFuZGxlci11cGRhdGVzLWRvbS5qcyBi
L0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL2NoZWNrVmFsaWRpdHktaGFuZGxl
ci11cGRhdGVzLWRvbS5qcwppbmRleCBiNGNiZmI0Li5hY2VkYjA4IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L2Zvcm1zL3NjcmlwdC10ZXN0cy9jaGVja1ZhbGlkaXR5LWhhbmRsZXItdXBk
YXRlcy1kb20uanMKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvY2hl
Y2tWYWxpZGl0eS1oYW5kbGVyLXVwZGF0ZXMtZG9tLmpzCkBAIC03NCw3ICs3NCw3IEBAIHNob3Vs
ZEJlRmFsc2UoJ2hhbmRsZXIyQ2FsbGVkJyk7CiBkZWJ1ZygnJyk7CiBkZWJ1ZygnQSBjb250cm9s
IGlzIG1vdmVkIHRvIGFub3RoZXIgZG9jdW1lbnQuJyk7CiBwYXJlbnQuaW5uZXJIVE1MID0gJzxm
b3JtIGlkPWYxPjxpbnB1dCBuYW1lPWkxIGlkPWkxIHJlcXVpcmVkPjwvZm9ybT4nOwotdmFyIGRv
YzIgPSBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQoKTsKK3ZhciBk
b2MyID0gZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlSFRNTERvY3VtZW50KCIiKTsKIGhh
bmRsZXIxID0gZnVuY3Rpb24oZXZlbnQpIHsKICAgICBkb2MyLmJvZHkuYXBwZW5kQ2hpbGQoZG9j
Mi5hZG9wdE5vZGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2kxJykpKTsKIH07CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2hhcm5lc3Mvb3ZlcnJpZGUtcHJlZmVyZW5jZXMtMi5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9oYXJuZXNzL292ZXJyaWRlLXByZWZlcmVuY2VzLTIuaHRtbApp
bmRleCBiZGI3MTY0Li5kMDllZmQxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2hhcm5l
c3Mvb3ZlcnJpZGUtcHJlZmVyZW5jZXMtMi5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaGFy
bmVzcy9vdmVycmlkZS1wcmVmZXJlbmNlcy0yLmh0bWwKQEAgLTExLDcgKzExLDcgQEAKICAgICBZ
b3Ugc2hvdWxkIHNlZSAiUEFTUyIgYmVsb3cuPC9wPgogICAgIDxzY3JpcHQ+CiAgICAgICAgIHZh
ciBwID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInAiKVswXTsKLSAgICAgICAgaWYg
KCF3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIgfHwgd2luZG93LmdldENvbXB1dGVkU3R5bGUo
cCkuZm9udFNpemUgPT0gIjI0cHgiKQorICAgICAgICBpZiAoIXdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlciB8fCB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShwLCBudWxsKS5mb250U2l6ZSA9PSAi
MjRweCIpCiAgICAgICAgICAgICBkb2N1bWVudC53cml0ZSgiUEFTUyIpOwogICAgIDwvc2NyaXB0
PgogPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9odG1sL25hdi1lbGVtZW50
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2h0bWwvbmF2LWVsZW1lbnQuaHRtbAppbmRleCA1NzNl
NDE2Li5hMWU4ZjUyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2h0bWwvbmF2LWVsZW1l
bnQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2h0bWwvbmF2LWVsZW1lbnQuaHRtbApAQCAt
NTAsNyArNTAsNyBAQCB2YXIgZWQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZWRpdGFibGUi
KTsKIHZhciBzZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7CiBzZWxlY3Rpb24uc2Vs
ZWN0QWxsQ2hpbGRyZW4oZWQpOwogZG9jdW1lbnQuZXhlY0NvbW1hbmQoIkZvcm1hdEJsb2NrIiwg
ZmFsc2UsICJuYXYiKTsKLXNlbGVjdGlvbi5jb2xsYXBzZSgpOworc2VsZWN0aW9uLmNvbGxhcHNl
KG51bGwsIDApOwogZWQuYmx1cigpOwogCiB2YXIgdGVzdHMgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgidGVzdEFyZWEiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaHRtbC9zY3Jp
cHQtdGVzdHMvYXJ0aWNsZS1lbGVtZW50LmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9odG1sL3Njcmlw
dC10ZXN0cy9hcnRpY2xlLWVsZW1lbnQuanMKaW5kZXggODZkNDQ5OS4uZTVhYWE4ZSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9odG1sL3NjcmlwdC10ZXN0cy9hcnRpY2xlLWVsZW1lbnQu
anMKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9odG1sL3NjcmlwdC10ZXN0cy9hcnRpY2xlLWVsZW1l
bnQuanMKQEAgLTM1LDcgKzM1LDcgQEAgZWRpdGFibGUuY29udGVudEVkaXRhYmxlID0gdHJ1ZTsK
IHZhciBzZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7CiBzZWxlY3Rpb24uc2VsZWN0
QWxsQ2hpbGRyZW4oZWRpdGFibGUpOwogZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ0Zvcm1hdEJsb2Nr
JywgZmFsc2UsICdhcnRpY2xlJyk7Ci1zZWxlY3Rpb24uY29sbGFwc2UoKTsKK3NlbGVjdGlvbi5j
b2xsYXBzZShudWxsLCAwKTsKIHNob3VsZEJlKCdkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3Bh
bjIiKS5wYXJlbnROb2RlLm5vZGVOYW1lJywgJyJBUlRJQ0xFIicpOwogZG9jdW1lbnQuYm9keS5y
ZW1vdmVDaGlsZChlZGl0YWJsZSk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaHRt
bC9zY3JpcHQtdGVzdHMvYXNpZGUtZWxlbWVudC5qcyBiL0xheW91dFRlc3RzL2Zhc3QvaHRtbC9z
Y3JpcHQtdGVzdHMvYXNpZGUtZWxlbWVudC5qcwppbmRleCBmOGMwMTNkLi41OGNjZDY1IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2h0bWwvc2NyaXB0LXRlc3RzL2FzaWRlLWVsZW1lbnQu
anMKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9odG1sL3NjcmlwdC10ZXN0cy9hc2lkZS1lbGVtZW50
LmpzCkBAIC0zNSw3ICszNSw3IEBAIGVkaXRhYmxlLmNvbnRlbnRFZGl0YWJsZSA9IHRydWU7CiB2
YXIgc2VsZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpOwogc2VsZWN0aW9uLnNlbGVjdEFs
bENoaWxkcmVuKGVkaXRhYmxlKTsKIGRvY3VtZW50LmV4ZWNDb21tYW5kKCdGb3JtYXRCbG9jaycs
IGZhbHNlLCAnYXNpZGUnKTsKLXNlbGVjdGlvbi5jb2xsYXBzZSgpOworc2VsZWN0aW9uLmNvbGxh
cHNlKG51bGwsIDApOwogc2hvdWxkQmUoJ2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzcGFuMiIp
LnBhcmVudE5vZGUubm9kZU5hbWUnLCAnIkFTSURFIicpOwogZG9jdW1lbnQuYm9keS5yZW1vdmVD
aGlsZChlZGl0YWJsZSk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaHRtbC9zY3Jp
cHQtdGVzdHMvZm9vdGVyLWVsZW1lbnQuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2h0bWwvc2NyaXB0
LXRlc3RzL2Zvb3Rlci1lbGVtZW50LmpzCmluZGV4IDYxYjdmYTIuLjI2NTY4MGYgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvaHRtbC9zY3JpcHQtdGVzdHMvZm9vdGVyLWVsZW1lbnQuanMK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9odG1sL3NjcmlwdC10ZXN0cy9mb290ZXItZWxlbWVudC5q
cwpAQCAtMzgsNyArMzgsNyBAQCBlZGl0YWJsZS5jb250ZW50RWRpdGFibGUgPSB0cnVlOwogdmFy
IHNlbGVjdGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTsKIHNlbGVjdGlvbi5zZWxlY3RBbGxD
aGlsZHJlbihlZGl0YWJsZSk7CiBkb2N1bWVudC5leGVjQ29tbWFuZCgnRm9ybWF0QmxvY2snLCBm
YWxzZSwgJ2Zvb3RlcicpOwotc2VsZWN0aW9uLmNvbGxhcHNlKCk7CitzZWxlY3Rpb24uY29sbGFw
c2UobnVsbCwgMCk7CiBzaG91bGRCZSgnZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNwYW4yIiku
cGFyZW50Tm9kZS5ub2RlTmFtZScsICciRk9PVEVSIicpOwogZG9jdW1lbnQuYm9keS5yZW1vdmVD
aGlsZChlZGl0YWJsZSk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaHRtbC9zY3Jp
cHQtdGVzdHMvaGVhZGVyLWVsZW1lbnQuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2h0bWwvc2NyaXB0
LXRlc3RzL2hlYWRlci1lbGVtZW50LmpzCmluZGV4IDRlODkwMjEuLmNlMTdhNTAgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvaHRtbC9zY3JpcHQtdGVzdHMvaGVhZGVyLWVsZW1lbnQuanMK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9odG1sL3NjcmlwdC10ZXN0cy9oZWFkZXItZWxlbWVudC5q
cwpAQCAtMzgsNyArMzgsNyBAQCBlZGl0YWJsZS5jb250ZW50RWRpdGFibGUgPSB0cnVlOwogdmFy
IHNlbGVjdGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTsKIHNlbGVjdGlvbi5zZWxlY3RBbGxD
aGlsZHJlbihlZGl0YWJsZSk7CiBkb2N1bWVudC5leGVjQ29tbWFuZCgnRm9ybWF0QmxvY2snLCBm
YWxzZSwgJ2hlYWRlcicpOwotc2VsZWN0aW9uLmNvbGxhcHNlKCk7CitzZWxlY3Rpb24uY29sbGFw
c2UobnVsbCwgMCk7CiBzaG91bGRCZSgnZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNwYW4yIiku
cGFyZW50Tm9kZS5ub2RlTmFtZScsICciSEVBREVSIicpOwogZG9jdW1lbnQuYm9keS5yZW1vdmVD
aGlsZChlZGl0YWJsZSk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaHRtbC9zY3Jp
cHQtdGVzdHMvaGdyb3VwLWVsZW1lbnQuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2h0bWwvc2NyaXB0
LXRlc3RzL2hncm91cC1lbGVtZW50LmpzCmluZGV4IGQ3ZjMwMDQuLjI3NjNhNjkgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvaHRtbC9zY3JpcHQtdGVzdHMvaGdyb3VwLWVsZW1lbnQuanMK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9odG1sL3NjcmlwdC10ZXN0cy9oZ3JvdXAtZWxlbWVudC5q
cwpAQCAtMzYsNyArMzYsNyBAQCBlZGl0YWJsZS5jb250ZW50RWRpdGFibGUgPSB0cnVlOwogdmFy
IHNlbGVjdGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTsKIHNlbGVjdGlvbi5zZWxlY3RBbGxD
aGlsZHJlbihlZGl0YWJsZSk7CiBkb2N1bWVudC5leGVjQ29tbWFuZCgnRm9ybWF0QmxvY2snLCBm
YWxzZSwgJ2hncm91cCcpOwotc2VsZWN0aW9uLmNvbGxhcHNlKCk7CitzZWxlY3Rpb24uY29sbGFw
c2UobnVsbCwgMCk7CiBzaG91bGRCZSgnZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNwYW4yIiku
cGFyZW50Tm9kZS5ub2RlTmFtZScsICciSEdST1VQIicpOwogZG9jdW1lbnQuYm9keS5yZW1vdmVD
aGlsZChlZGl0YWJsZSk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaHRtbC9zY3Jp
cHQtdGVzdHMvc2VjdGlvbi1lbGVtZW50LmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9odG1sL3Njcmlw
dC10ZXN0cy9zZWN0aW9uLWVsZW1lbnQuanMKaW5kZXggMTc2MzIyNS4uYTE3MDBlYiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9odG1sL3NjcmlwdC10ZXN0cy9zZWN0aW9uLWVsZW1lbnQu
anMKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9odG1sL3NjcmlwdC10ZXN0cy9zZWN0aW9uLWVsZW1l
bnQuanMKQEAgLTM1LDcgKzM1LDcgQEAgZWRpdGFibGUuY29udGVudEVkaXRhYmxlID0gdHJ1ZTsK
IHZhciBzZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7CiBzZWxlY3Rpb24uc2VsZWN0
QWxsQ2hpbGRyZW4oZWRpdGFibGUpOwogZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ0Zvcm1hdEJsb2Nr
JywgZmFsc2UsICdzZWN0aW9uJyk7Ci1zZWxlY3Rpb24uY29sbGFwc2UoKTsKK3NlbGVjdGlvbi5j
b2xsYXBzZShudWxsLCAwKTsKIHNob3VsZEJlKCdkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3Bh
bjIiKS5wYXJlbnROb2RlLm5vZGVOYW1lJywgJyJTRUNUSU9OIicpOwogZG9jdW1lbnQuYm9keS5y
ZW1vdmVDaGlsZChlZGl0YWJsZSk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW5s
aW5lL3JlbGF0aXZlLXBvc2l0aW9uZWQtb3ZlcmZsb3cuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
aW5saW5lL3JlbGF0aXZlLXBvc2l0aW9uZWQtb3ZlcmZsb3cuaHRtbAppbmRleCBkNzlkMzg0Li4y
ZGMyOWQ1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2lubGluZS9yZWxhdGl2ZS1wb3Np
dGlvbmVkLW92ZXJmbG93Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbmxpbmUvcmVsYXRp
dmUtcG9zaXRpb25lZC1vdmVyZmxvdy5odG1sCkBAIC0zLDcgKzMsNyBAQAogICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGZ1bmN0
aW9uKGV2ZW50KSB7CiAgICAgICAgIGV2ZW50LnRhcmdldC5zdHlsZS5iYWNrZ3JvdW5kQ29sb3Ig
PSAiZ3JlZW4iOwogICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvY3VtZW50LmNy
ZWF0ZVRleHROb2RlKCJQQVNTIikpOwotICAgIH0pOworICAgIH0sIGZhbHNlKTsKIAogICAgIGRv
Y3VtZW50LmJvZHkub2Zmc2V0VG9wOwogICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW5zcGVjdG9yLXN1cHBvcnQvdW5j
YXVnaHQtZG9tMS1leGNlcHRpb24uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW5zcGVjdG9yLXN1
cHBvcnQvdW5jYXVnaHQtZG9tMS1leGNlcHRpb24uaHRtbAppbmRleCAwNWU4YzliLi42ZDBlNTQz
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2luc3BlY3Rvci1zdXBwb3J0L3VuY2F1Z2h0
LWRvbTEtZXhjZXB0aW9uLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbnNwZWN0b3Itc3Vw
cG9ydC91bmNhdWdodC1kb20xLWV4Y2VwdGlvbi5odG1sCkBAIC04LDcgKzgsNyBAQCBmdW5jdGlv
biBvbmxvYWQoKQogICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CiAK
ICAgICAvLyBGb2xsb3dpbmcgY29kZSBnZW5lcmF0ZXMgYW4gZXhjZXB0aW9uLgotICAgIHZhciBw
ID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoKTsKKyAgICB2YXIgcCA9IGRvY3VtZW50LmNyZWF0
ZVRleHROb2RlKG51bGwpOwogICAgIHAudGV4dENvbnRlbnQgPSAiZm9vIjsKICAgICBwLnNwbGl0
VGV4dCgxMDAwMCk7CiB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2luc3BlY3Rvci1z
dXBwb3J0L3VuY2F1Z2h0LWRvbTMtZXhjZXB0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2lu
c3BlY3Rvci1zdXBwb3J0L3VuY2F1Z2h0LWRvbTMtZXhjZXB0aW9uLmh0bWwKaW5kZXggYWQ0NDUx
YS4uZTAzN2JmZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9pbnNwZWN0b3Itc3VwcG9y
dC91bmNhdWdodC1kb20zLWV4Y2VwdGlvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaW5z
cGVjdG9yLXN1cHBvcnQvdW5jYXVnaHQtZG9tMy1leGNlcHRpb24uaHRtbApAQCAtNiw3ICs2LDcg
QEAgZnVuY3Rpb24gb25sb2FkKCkKIHsKICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKQogICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgZG9j
dW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgpKTsKKyAgICBkb2N1bWVu
dC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdwJykpOwogfQogCiA8L3Njcmlw
dD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbG9hZGVyL2xvY2FsLUphdmFTY3JpcHQt
ZnJvbS1sb2NhbC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvbG9jYWwtSmF2YVNjcmlw
dC1mcm9tLWxvY2FsLmh0bWwKaW5kZXggNGU3MGRkNS4uMGY0OTFkOCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9sb2FkZXIvbG9jYWwtSmF2YVNjcmlwdC1mcm9tLWxvY2FsLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvbG9jYWwtSmF2YVNjcmlwdC1mcm9tLWxvY2FsLmh0
bWwKQEAgLTI0LDE0ICsyNCwxNCBAQAogCiAgICAgICAgICAgICBpZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKQogICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlm
eURvbmUoKTsKLSAgICAgICAgfSk7CisgICAgICAgIH0sIGZhbHNlKTsKICAgICAgICAgbG9jYWxT
Y3JpcHRFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIiwgZnVuY3Rpb24oKSB7CiAgICAg
ICAgICAgICB2YXIgdGFnID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc3VsdCIpOwogICAg
ICAgICAgICAgdGFnLmlubmVySFRNTCA9ICJUZXN0IEZhaWxlZDogTG9jYWwgc2NyaXB0IG5vdCBs
b2FkZWQuIjsKIAogICAgICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikK
ICAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Ci0gICAg
ICAgIH0pOworICAgICAgICB9LCBmYWxzZSk7CiAKICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBl
bmRDaGlsZChsb2NhbFNjcmlwdEVsZW1lbnQpCiAgICAgfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9sb2FkZXIvbG9jYWwtY3NzLWFsbG93ZWQtaW4tc3RyaWN0LW1vZGUuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvbG9hZGVyL2xvY2FsLWNzcy1hbGxvd2VkLWluLXN0cmljdC1tb2RlLmh0
bWwKaW5kZXggYzIyNmNmMi4uNGY0NzBmYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9s
b2FkZXIvbG9jYWwtY3NzLWFsbG93ZWQtaW4tc3RyaWN0LW1vZGUuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2xvYWRlci9sb2NhbC1jc3MtYWxsb3dlZC1pbi1zdHJpY3QtbW9kZS5odG1sCkBA
IC0xMCw3ICsxMCw3IEBACiAgICAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVt
cEFzVGV4dCgpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICB2YXIgdGFyZ2V0ID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpOwotICAgICAgICAgICAgdmFyIHN0eWxlID0gZ2V0
Q29tcHV0ZWRTdHlsZSh0YXJnZXQpOworICAgICAgICAgICAgdmFyIHN0eWxlID0gZ2V0Q29tcHV0
ZWRTdHlsZSh0YXJnZXQsIG51bGwpOwogICAgICAgICAgICAgdGFyZ2V0LmlubmVyVGV4dCA9IHN0
eWxlLnBvc2l0aW9uID09ICJyZWxhdGl2ZSIgPyAiU1VDQ0VTUyIgOiAiRkFJTCI7CiAgICAgICAg
IH0KICAgICA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbXVsdGljb2wv
Z2FwLW5vbi1uZWdhdGl2ZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tdWx0aWNvbC9nYXAtbm9u
LW5lZ2F0aXZlLmh0bWwKaW5kZXggMzkxMmFlNS4uZTc2MDE5MyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9tdWx0aWNvbC9nYXAtbm9uLW5lZ2F0aXZlLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9tdWx0aWNvbC9nYXAtbm9uLW5lZ2F0aXZlLmh0bWwKQEAgLTEwLDcgKzEwLDcgQEAK
ICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQogICAgICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CiAKLSAgICB2YXIgc3R5bGUgPSBnZXRDb21wdXRlZFN0
eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSk7CisgICAgdmFyIHN0eWxlID0g
Z2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0IiksIG51bGwp
OwogICAgIHZhciBjb2x1bW5HYXAgPSBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCItd2Via2l0LWNv
bHVtbi1nYXAiKTsKICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0IikuaW5uZXJU
ZXh0ID0gKGNvbHVtbkdhcCA9PSAiMCIgfHwgY29sdW1uR2FwID09ICJub3JtYWwiKSA/ICJQQVNT
IiA6ICJGQUlMOiBjb2x1bW4tZ2FwIGlzICIgKyBjb2x1bW5HYXA7CiA8L3NjcmlwdD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcGFyc2VyL3NjcmlwdC10ZXN0cy9ibG9jay1uZXN0aW5n
LWNhcC10YWJsZS5qcyBiL0xheW91dFRlc3RzL2Zhc3QvcGFyc2VyL3NjcmlwdC10ZXN0cy9ibG9j
ay1uZXN0aW5nLWNhcC10YWJsZS5qcwppbmRleCBhMzUzYjU4Li44NjAxZTAwIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L3BhcnNlci9zY3JpcHQtdGVzdHMvYmxvY2stbmVzdGluZy1jYXAt
dGFibGUuanMKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9wYXJzZXIvc2NyaXB0LXRlc3RzL2Jsb2Nr
LW5lc3RpbmctY2FwLXRhYmxlLmpzCkBAIC01LDcgKzUsNyBAQCB2YXIgbWFya3VwID0gIiI7CiB2
YXIgaTsKIGZvciAoaSA9IDA7IGkgPCBkZXB0aDsgKytpKQogICAgIG1hcmt1cCArPSAiPHRhYmxl
IGlkPSd0IiArIGkgKyAiJz48dGJvZHk+PHRyPjx0ZCBpZD0ndGQiICsgaSArICInPiI7Ci12YXIg
ZG9jID0gZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlSFRNTERvY3VtZW50KCk7Cit2YXIg
ZG9jID0gZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlSFRNTERvY3VtZW50KCIiKTsKIGRv
Yy5ib2R5LmlubmVySFRNTCA9IG1hcmt1cDsKIAogdmFyIHQxMDIzID0gZG9jLmdldEVsZW1lbnRC
eUlkKCJ0MTAyMyIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wYXJzZXIvc2NyaXB0
LXRlc3RzL2Jsb2NrLW5lc3RpbmctY2FwLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9wYXJzZXIvc2Ny
aXB0LXRlc3RzL2Jsb2NrLW5lc3RpbmctY2FwLmpzCmluZGV4IGYwN2Y1ODAuLmFkYWIwYzggMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcGFyc2VyL3NjcmlwdC10ZXN0cy9ibG9jay1uZXN0
aW5nLWNhcC5qcworKysgYi9MYXlvdXRUZXN0cy9mYXN0L3BhcnNlci9zY3JpcHQtdGVzdHMvYmxv
Y2stbmVzdGluZy1jYXAuanMKQEAgLTUsNyArNSw3IEBAIHZhciBtYXJrdXAgPSAiIjsKIHZhciBp
OwogZm9yIChpID0gMDsgaSA8IGRlcHRoOyArK2kpCiAgICAgbWFya3VwICs9ICI8ZGl2IGlkPSdk
IiArIGkgKyAiJz4iOwotdmFyIGRvYyA9IGRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZUhU
TUxEb2N1bWVudCgpOwordmFyIGRvYyA9IGRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZUhU
TUxEb2N1bWVudCgiIik7CiBkb2MuYm9keS5pbm5lckhUTUwgPSBtYXJrdXA7CiAKIHZhciBkNDA5
NCA9IGRvYy5nZXRFbGVtZW50QnlJZCgiZDQwOTQiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvcGFyc2VyL3NjcmlwdC10ZXN0cy9lbGVtZW50LW5lc3RpbmctY2FwLmpzIGIvTGF5b3V0
VGVzdHMvZmFzdC9wYXJzZXIvc2NyaXB0LXRlc3RzL2VsZW1lbnQtbmVzdGluZy1jYXAuanMKaW5k
ZXggYjYyODlmYi4uZTljODhmNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wYXJzZXIv
c2NyaXB0LXRlc3RzL2VsZW1lbnQtbmVzdGluZy1jYXAuanMKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9wYXJzZXIvc2NyaXB0LXRlc3RzL2VsZW1lbnQtbmVzdGluZy1jYXAuanMKQEAgLTQsNyArNCw3
IEBAIHZhciBkZXB0aCA9IDUxMDA7CiB2YXIgbWFya3VwID0gIiI7CiBmb3IgKHZhciBpID0gMzsg
aSA8IGRlcHRoOyArK2kpCiAgICAgbWFya3VwICs9ICI8c3BhbiBpZD0ncyIgKyBpICsgIic+IjsK
LXZhciBkb2MgPSBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQoKTsK
K3ZhciBkb2MgPSBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQoIiIp
OwogZG9jLmJvZHkuaW5uZXJIVE1MID0gbWFya3VwOwogCiB2YXIgczEgPSBkb2MuZ2V0RWxlbWVu
dEJ5SWQoInM1MDAxIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3By
b2ZpbGUtd2l0aC1uby10aXRsZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9wcm9m
aWxlLXdpdGgtbm8tdGl0bGUuaHRtbAppbmRleCBiMDRkMjdiLi4zNWE4ZGU1IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3Byb2ZpbGUtd2l0aC1uby10aXRsZS5odG1sCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvcHJvZmlsZS13aXRoLW5vLXRpdGxlLmh0bWwK
QEAgLTksNyArOSw3IEBAIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKIAogZnVu
Y3Rpb24gc3RhcnRUZXN0KCkKIHsKLSAgICBjb25zb2xlLnByb2ZpbGUoKTsKKyAgICBjb25zb2xl
LnByb2ZpbGUobnVsbCk7CiAgICAgZW5kVGVzdCgpOwogfQogPC9zY3JpcHQ+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3Jlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJl
c291cmNlcy5qcyBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvcmVzb3VyY2VzL3Byb2ZpbGVy
LXRlc3QtSlMtcmVzb3VyY2VzLmpzCmluZGV4IDI3MDFjMzMuLjMyNTk3OWMgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvcmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVz
b3VyY2VzLmpzCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvcmVzb3VyY2VzL3Byb2Zp
bGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzCkBAIC0xLDUgKzEsNSBAQAogZnVuY3Rpb24gZW5kVGVz
dCgpIHsKLSAgICBjb25zb2xlLnByb2ZpbGVFbmQoKTsKKyAgICBjb25zb2xlLnByb2ZpbGVFbmQo
bnVsbCk7CiAgICAgcHJpbnRQcm9maWxlc0RhdGFXaXRob3V0VGltZSgpOwogCiAgICAgaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
cHJvZmlsZXIvc2ltcGxlLW5vLWxldmVsLWNoYW5nZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9w
cm9maWxlci9zaW1wbGUtbm8tbGV2ZWwtY2hhbmdlLmh0bWwKaW5kZXggMDkyYWVkZS4uZTRhOTVk
YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zaW1wbGUtbm8tbGV2ZWwt
Y2hhbmdlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zaW1wbGUtbm8tbGV2
ZWwtY2hhbmdlLmh0bWwKQEAgLTIxLDcgKzIxLDcgQEAgZnVuY3Rpb24gZnVuY3Rpb25XaWNoU3Rh
cnRzQW5kU3RvcHNUaGVQcm9maWxlcigpCiAKICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
b3V0cHV0Iik7CiAKLSAgICBjb25zb2xlLnByb2ZpbGVFbmQoKTsKKyAgICBjb25zb2xlLnByb2Zp
bGVFbmQobnVsbCk7CiAgICAgcHJpbnRQcm9maWxlc0RhdGFXaXRob3V0VGltZSgpOwogfQogPC9z
Y3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3R3by1leGVjdXRp
b24tY29udGV4dHMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvdHdvLWV4ZWN1dGlv
bi1jb250ZXh0cy5odG1sCmluZGV4IGMzZTkxYjUuLjkyYmUwODUgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvcHJvZmlsZXIvdHdvLWV4ZWN1dGlvbi1jb250ZXh0cy5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvdHdvLWV4ZWN1dGlvbi1jb250ZXh0cy5odG1sCkBAIC0z
MSw3ICszMSw3IEBAIHRoZSBwcm9maWxlLiAgSW4gdGhlIHByb2ZpbGUgdGhlcmUgc2hvdWxkIGJl
IHR3byAocHJvZ3JhbSkgZWxlbWVudHMuCiA8L2JvZHk+CiA8c2NyaXB0PgogZnVuY3Rpb24gdGVz
dEVuZCgpIHsKLSAgICBjb25zb2xlLnByb2ZpbGVFbmQoKTsKKyAgICBjb25zb2xlLnByb2ZpbGVF
bmQobnVsbCk7CiAgICAgcHJpbnRQcm9maWxlc0RhdGFXaXRob3V0VGltZSgpOwogfQogPC9zY3Jp
cHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvbW92aW5nLXNoYWRvdy1v
bi1jb250YWluZXIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9tb3Zpbmctc2hhZG93
LW9uLWNvbnRhaW5lci5odG1sCmluZGV4IDBhMGIxNzUuLjUzZjc4YWYgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvcmVwYWludC9tb3Zpbmctc2hhZG93LW9uLWNvbnRhaW5lci5odG1sCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9tb3Zpbmctc2hhZG93LW9uLWNvbnRhaW5lci5o
dG1sCkBAIC03MSwxOCArNzEsMTggQEAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgIG5vZGUuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywg
ZnVuY3Rpb24gKGV2KSB7CiAgICAgICAgICAgICB2YXIgZSA9IGV2IHx8IGV2ZW50OwogICAgICAg
ICAgICAgYXJtZWQgPSB7IG5vZGU6IGUudGFyZ2V0IHx8IGUuc3JjRWxlbWVudCB9OwotICAgICAg
ICB9KTsKKyAgICAgICAgfSwgZmFsc2UpOwogICAgICAgICBub2RlLmFkZEV2ZW50TGlzdGVuZXIo
J21vdXNldXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhcm1lZCA9IG51bGw7Ci0gICAg
ICAgIH0pOworICAgICAgICB9LCBmYWxzZSk7CiAgICAgfQogICAgIHdpbmRvdy5hZGRFdmVudExp
c3RlbmVyKCdtb3VzZW1vdmUnLCBmdW5jdGlvbiAoZXYpIHsKICAgICAgICAgaWYgKGFybWVkKSB7
CiAgICAgICAgICAgICB2YXIgZSA9IGV2IHx8IGV2ZW50OwogICAgICAgICAgICAgc2V0Q2VudGVy
UG9zaXRpb24oYXJtZWQubm9kZSwgZS5jbGllbnRYLCBlLmNsaWVudFkpOwogICAgICAgICB9Ci0g
ICAgfSk7Ci19KTsKKyAgICB9LCBmYWxzZSk7Cit9LCBmYWxzZSk7CiAKIC8vLS0+CiA8L3Njcmlw
dD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9tb3Zpbmctc2hhZG93LW9u
LXBhdGguaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9tb3Zpbmctc2hhZG93LW9uLXBh
dGguaHRtbAppbmRleCA3N2M1NjNlLi4xNzI3YjcxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L3JlcGFpbnQvbW92aW5nLXNoYWRvdy1vbi1wYXRoLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9yZXBhaW50L21vdmluZy1zaGFkb3ctb24tcGF0aC5odG1sCkBAIC03MSwxOCArNzEsMTgg
QEAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAg
IG5vZGUuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgZnVuY3Rpb24gKGV2KSB7CiAgICAg
ICAgICAgICB2YXIgZSA9IGV2IHx8IGV2ZW50OwogICAgICAgICAgICAgYXJtZWQgPSB7IG5vZGU6
IGUudGFyZ2V0IHx8IGUuc3JjRWxlbWVudCB9OwotICAgICAgICB9KTsKKyAgICAgICAgfSwgZmFs
c2UpOwogICAgICAgICBub2RlLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCBmdW5jdGlvbiAo
KSB7CiAgICAgICAgICAgICBhcm1lZCA9IG51bGw7Ci0gICAgICAgIH0pOworICAgICAgICB9LCBm
YWxzZSk7CiAgICAgfQogICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCBm
dW5jdGlvbiAoZXYpIHsKICAgICAgICAgaWYgKGFybWVkKSB7CiAgICAgICAgICAgICB2YXIgZSA9
IGV2IHx8IGV2ZW50OwogICAgICAgICAgICAgc2V0Q2VudGVyUG9zaXRpb24oYXJtZWQubm9kZSwg
ZS5jbGllbnRYLCBlLmNsaWVudFkpOwogICAgICAgICB9Ci0gICAgfSk7Ci19KTsKKyAgICB9LCBm
YWxzZSk7Cit9LCBmYWxzZSk7CiAKIC8vLS0+CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvdGFibGUvY29sLXdpZHRoLXNwYW4tZXhwYW5kLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3QvdGFibGUvY29sLXdpZHRoLXNwYW4tZXhwYW5kLWV4cGVjdGVkLnR4dApp
bmRleCAxNWViMWZjLi4yMWVmMWZmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3RhYmxl
L2NvbC13aWR0aC1zcGFuLWV4cGFuZC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC90YWJsZS9jb2wtd2lkdGgtc3Bhbi1leHBhbmQtZXhwZWN0ZWQudHh0CkBAIC01LDggKzUsOCBA
QCBUaGlzIHRlc3RzIEJ1ZyAxNDg1ODogPGNvbD4gd2lkdGggaWdub3JlZCB3aGVuIG5vdCB0aWVk
IHRvIGEgc2luZ2xlIGNlbGwuCiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAotUEFTUyB3
aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0ZXN0Q2VsbCkud2lkdGggaXMgJzI1MHB4JwotUEFTUyB3
aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0ZXN0VGFibGUpLndpZHRoIGlzICc1MDBweCcKK1BBU1Mg
d2luZG93LmdldENvbXB1dGVkU3R5bGUodGVzdENlbGwsIG51bGwpLndpZHRoIGlzICcyNTBweCcK
K1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUodGVzdFRhYmxlLCBudWxsKS53aWR0aCBpcyAn
NTAwcHgnCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvdGFibGUvY29sLXdpZHRoLXNwYW4tZXhwYW5k
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3RhYmxlL2NvbC13aWR0aC1zcGFuLWV4cGFuZC5odG1s
CmluZGV4IDQxYWZmZjYuLmEyYjY3OGMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvdGFi
bGUvY29sLXdpZHRoLXNwYW4tZXhwYW5kLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC90YWJs
ZS9jb2wtd2lkdGgtc3Bhbi1leHBhbmQuaHRtbApAQCAtMTUsOCArMTUsOCBAQCBmdW5jdGlvbiBy
dW5UZXN0KCkKICAgICB2YXIgdGVzdENlbGwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVz
dENlbGwnKTsKICAgICB2YXIgdGVzdFRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rl
c3RUYWJsZScpOwogICAgIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIDxhIGhyZWY9J2h0dHA6Ly93
ZWJraXQub3JnL2IvMTQ4NTgnPkJ1ZyAxNDg1ODogJmx0O2NvbCZndDsgd2lkdGggaWdub3JlZCB3
aGVuIG5vdCB0aWVkIHRvIGEgc2luZ2xlIGNlbGw8L2E+LiIpOwotICAgIHNob3VsZEJlKCJ3aW5k
b3cuZ2V0Q29tcHV0ZWRTdHlsZSh0ZXN0Q2VsbCkud2lkdGgiLCAiJzI1MHB4JyIpOwotICAgIHNo
b3VsZEJlKCJ3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0ZXN0VGFibGUpLndpZHRoIiwgIic1MDBw
eCciKTsKKyAgICBzaG91bGRCZSgid2luZG93LmdldENvbXB1dGVkU3R5bGUodGVzdENlbGwsIG51
bGwpLndpZHRoIiwgIicyNTBweCciKTsKKyAgICBzaG91bGRCZSgid2luZG93LmdldENvbXB1dGVk
U3R5bGUodGVzdFRhYmxlLCBudWxsKS53aWR0aCIsICInNTAwcHgnIik7CiAgICAgc3VjY2Vzc2Z1
bGx5UGFyc2VkID0gdHJ1ZTsKICAgICBpc1N1Y2Nlc3NmdWxseVBhcnNlZCgpOwogfQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC90YWJsZS90ZC1kaXNwbGF5LW5vd3JhcC5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC90YWJsZS90ZC1kaXNwbGF5LW5vd3JhcC5odG1sCmluZGV4IDkyNTgwODku
LjFiYzUzZDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvdGFibGUvdGQtZGlzcGxheS1u
b3dyYXAuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3RhYmxlL3RkLWRpc3BsYXktbm93cmFw
Lmh0bWwKQEAgLTEwLDggKzEwLDggQEAKICAgICAgIHZhciB0ZXN0RGl2ID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ3Rlc3REaXYnKTsKICAgICAgIAogICAgICAgdmFyIHJlc3VsdCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHQnKTsKLSAgICAgIHJlc3VsdC5pbm5lckhUTUwgPSAn
Q29tcHV0ZWQgd2hpdGUtc3BhY2Ugc3R5bGUgb2YgJmx0O3RoJmd0OzogJyArIHdpbmRvdy5nZXRD
b21wdXRlZFN0eWxlKHRlc3RIZWFkZXIpLndoaXRlU3BhY2UgKyAnPGJyPic7Ci0gICAgICByZXN1
bHQuaW5uZXJIVE1MICs9ICdDb21wdXRlZCB3aGl0ZS1zcGFjZSBzdHlsZSBvZiAmbHQ7ZGl2Jmd0
OzogJyArIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRlc3REaXYpLndoaXRlU3BhY2UgKyAnPGJy
Pic7CisgICAgICByZXN1bHQuaW5uZXJIVE1MID0gJ0NvbXB1dGVkIHdoaXRlLXNwYWNlIHN0eWxl
IG9mICZsdDt0aCZndDs6ICcgKyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0ZXN0SGVhZGVyLCBu
dWxsKS53aGl0ZVNwYWNlICsgJzxicj4nOworICAgICAgcmVzdWx0LmlubmVySFRNTCArPSAnQ29t
cHV0ZWQgd2hpdGUtc3BhY2Ugc3R5bGUgb2YgJmx0O2RpdiZndDs6ICcgKyB3aW5kb3cuZ2V0Q29t
cHV0ZWRTdHlsZSh0ZXN0RGl2LCBudWxsKS53aGl0ZVNwYWNlICsgJzxicj4nOwogICAgIH0KICAg
PC9zY3JpcHQ+CiA8L2hlYWQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQvc2Ny
aXB0LXRlc3RzL2ZpbmQtYmFja3dhcmRzLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L3Njcmlw
dC10ZXN0cy9maW5kLWJhY2t3YXJkcy5qcwppbmRleCA1NDk2M2MwLi4wY2QyM2JmIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQvc2NyaXB0LXRlc3RzL2ZpbmQtYmFja3dhcmRzLmpz
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9zY3JpcHQtdGVzdHMvZmluZC1iYWNrd2FyZHMu
anMKQEAgLTQyLDYgKzQyLDcgQEAgZm9yIChpID0gMDsgaSA8IDEwOyArK2kpCiAgICAgbWFueUNo
YXJhY3RlcnMgKz0gbWFueUNoYXJhY3RlcnM7CiB2YXIgdGVuVGhvdXNhbmRDaGFyYWN0ZXJzID0g
bWFueUNoYXJhY3RlcnMuc3Vic3RyaW5nKDAsIDEwMDAwKTsKIAordGVzdEZpbmQoJ2FiYycsICdh
JywgZm9yd2FyZCk7CiBzaG91bGRCZSgidGVzdEZpbmQoJ2FiYycsICdhJywgZm9yd2FyZCkiLCAi
JzAsIDEnIik7CiBzaG91bGRCZSgidGVzdEZpbmQoJ2FiYycsICdiJywgZm9yd2FyZCkiLCAiJzEs
IDInIik7CiBzaG91bGRCZSgidGVzdEZpbmQoJ2FiYycsICdjJywgZm9yd2FyZCkiLCAiJzIsIDMn
Iik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Rva2VuaXplci9hbXBlcnNhbmQtaW4t
c3BlY2lhbC10YWcuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvdG9rZW5pemVyL2FtcGVyc2FuZC1p
bi1zcGVjaWFsLXRhZy5odG1sCmluZGV4IDdlNjFmN2YuLjUwOTJjYjAgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvdG9rZW5pemVyL2FtcGVyc2FuZC1pbi1zcGVjaWFsLXRhZy5odG1sCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvdG9rZW5pemVyL2FtcGVyc2FuZC1pbi1zcGVjaWFsLXRhZy5o
dG1sCkBAIC0xNCw3ICsxNCw3IEBACiAKICAgICBmdW5jdGlvbiB0ZXN0VGl0bGUodGV4dCwgZXhw
ZWN0ZWQpCiAgICAgewotICAgICAgICB2YXIgZG9jID0gZG9jdW1lbnQuaW1wbGVtZW50YXRpb24u
Y3JlYXRlSFRNTERvY3VtZW50KCk7CisgICAgICAgIHZhciBkb2MgPSBkb2N1bWVudC5pbXBsZW1l
bnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQoIiIpOwogICAgICAgICBkb2Mub3BlbigpOwogICAg
ICAgICBkb2Mud3JpdGUoIjx0aXRsZT4iICsgdGV4dCArICI8L3RpdGxlPnRleHQ8L3RpdGxlPiIp
OwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3hwYXRoL3hwYXRoLWVtcHR5LXN0cmlu
Zy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC94cGF0aC94cGF0aC1lbXB0eS1zdHJpbmcuaHRtbApp
bmRleCAwNmE2NTE5Li5lZjk0ZWE0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3hwYXRo
L3hwYXRoLWVtcHR5LXN0cmluZy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QveHBhdGgveHBh
dGgtZW1wdHktc3RyaW5nLmh0bWwKQEAgLTUsNyArNSw3IEBACiAgICAgICAgICAgICBpZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKQogICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLmR1bXBBc1RleHQoKTsKICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgIGRvY3Vt
ZW50LmV2YWx1YXRlKCIvL2FbQGlkPScnXSIsZG9jdW1lbnQpCisgICAgICAgICAgICBkb2N1bWVu
dC5ldmFsdWF0ZSgiLy9hW0BpZD0nJ10iLCBkb2N1bWVudCwgbnVsbCwgbnVsbCwgbnVsbCkKICAg
ICAgICAgfQogICAgIDwvc2NyaXB0PgogPC9oZWFkPgpAQCAtMTQsNCArMTQsNCBAQAogICAgIFNV
Q0NFU1M6IERpZG4ndCBjcmFzaCEKICAgICAKIDwvYm9keT4KLTwvaHRtbD4KXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL21pc2MvY3NzLWFjY2VwdC1hbnktdHlwZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9taXNjL2Nzcy1hY2NlcHQtYW55LXR5cGUuaHRtbAppbmRleCBkNmI5NzY2Li40ODFhYjZlIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvY3NzLWFjY2VwdC1hbnktdHlw
ZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9jc3MtYWNjZXB0LWFueS10
eXBlLmh0bWwKQEAgLTksNyArOSw3IEBACiAgICAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIuZHVtcEFzVGV4dCgpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICB2YXIgdGFyZ2V0
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpOwotICAgICAgICAgICAgdmFyIHN0
eWxlID0gZ2V0Q29tcHV0ZWRTdHlsZSh0YXJnZXQpOworICAgICAgICAgICAgdmFyIHN0eWxlID0g
Z2V0Q29tcHV0ZWRTdHlsZSh0YXJnZXQsIG51bGwpOwogICAgICAgICAgICAgdGFyZ2V0LmlubmVy
VGV4dCA9IHN0eWxlLnBvc2l0aW9uID09ICJyZWxhdGl2ZSIgPyAiU1VDQ0VTUyIgOiAiRkFJTCI7
CiAgICAgICAgIH0KICAgICA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvbWlzYy9jc3MtcmVqZWN0LWFueS10eXBlLWluLXN0cmljdC1tb2RlLmh0bWwgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvY3NzLXJlamVjdC1hbnktdHlwZS1pbi1zdHJpY3QtbW9k
ZS5odG1sCmluZGV4IDMxNTIzMDQuLjg4NzU3OTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvbWlzYy9jc3MtcmVqZWN0LWFueS10eXBlLWluLXN0cmljdC1tb2RlLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL2Nzcy1yZWplY3QtYW55LXR5cGUtaW4tc3Ry
aWN0LW1vZGUuaHRtbApAQCAtMTAsNyArMTAsNyBAQAogICAgICAgICAgICAgICAgIGxheW91dFRl
c3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgdmFy
IHRhcmdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKTsKLSAgICAgICAgICAg
IHZhciBzdHlsZSA9IGdldENvbXB1dGVkU3R5bGUodGFyZ2V0KTsKKyAgICAgICAgICAgIHZhciBz
dHlsZSA9IGdldENvbXB1dGVkU3R5bGUodGFyZ2V0LCBudWxsKTsKICAgICAgICAgICAgIHRhcmdl
dC5pbm5lclRleHQgPSBzdHlsZS5wb3NpdGlvbiA9PSAic3RhdGljIiA/ICJTVUNDRVNTIiA6ICJG
QUlMIjsKICAgICAgICAgfQogICAgIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zZWN1cml0eS9sb2NhbC1KYXZhU2NyaXB0LWZyb20tcmVtb3RlLmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2xvY2FsLUphdmFTY3JpcHQtZnJvbS1yZW1v
dGUuaHRtbAppbmRleCAyMzEyNThlLi4wODJhODc5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3NlY3VyaXR5L2xvY2FsLUphdmFTY3JpcHQtZnJvbS1yZW1vdGUuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2xvY2FsLUphdmFTY3JpcHQtZnJvbS1y
ZW1vdGUuaHRtbApAQCAtMTksMTIgKzE5LDEyIEBACiAgICAgICAgICAgICAgICAgICAgIHRhZy5p
bm5lckhUTUwgPSAiVGVzdCBGYWlsZWQuIExvY2FsIHNjcmlwdCBsb2FkZWQgYW5kIHJ1bi4iOwog
ICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgdGFnLmlubmVySFRNTCA9
ICJUZXN0IEZhaWxlZC4gTG9jYWwgc2NyaXB0IGxvYWRlZCwgYnV0IG5vdCBzdWNjZXNzZnVsbHkg
cnVuLiI7Ci0gICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0sIGZhbHNlKTsKIAogICAgICAg
ICAgICAgbG9jYWxTY3JpcHRFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIiwgZnVuY3Rp
b24oKSB7CiAgICAgICAgICAgICAgICAgdmFyIHRhZyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJyZXN1bHQiKTsKICAgICAgICAgICAgICAgICB0YWcuaW5uZXJIVE1MID0gIlRlc3QgUGFzc2Vk
OiBMb2NhbCBzY3JpcHQgbm90IGxvYWRlZC4iOwotICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICB9LCBmYWxzZSk7CiAKICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobG9j
YWxTY3JpcHRFbGVtZW50KQogICAgICAgICB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3NlY3VyaXR5L2xvY2FsLXZpZGVvLXNyYy1mcm9tLXJlbW90ZS5odG1sIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9sb2NhbC12aWRlby1zcmMtZnJvbS1yZW1vdGUuaHRt
bAppbmRleCA2OGI1YTUxLi44YjllODQ5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L2xvY2FsLXZpZGVvLXNyYy1mcm9tLXJlbW90ZS5odG1sCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvbG9jYWwtdmlkZW8tc3JjLWZyb20tcmVtb3RlLmh0
bWwKQEAgLTcyLDkgKzcyLDkgQEAKIAogICAgICAgICAgICAgICAgIHZpZGVvID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoInZpZCIpOwogCi0gICAgICAgICAgICAgICAgdmlkZW8uYWRkRXZlbnRM
aXN0ZW5lcigiZXJyb3IiLCBlcnJvcik7CisgICAgICAgICAgICAgICAgdmlkZW8uYWRkRXZlbnRM
aXN0ZW5lcigiZXJyb3IiLCBlcnJvciwgZmFsc2UpOwogCi0gICAgICAgICAgICAgICAgdmlkZW8u
YWRkRXZlbnRMaXN0ZW5lcignbG9hZGVkbWV0YWRhdGEnLCBsb2FkZWRtZXRhZGF0YSk7CisgICAg
ICAgICAgICAgICAgdmlkZW8uYWRkRXZlbnRMaXN0ZW5lcignbG9hZGVkbWV0YWRhdGEnLCBsb2Fk
ZWRtZXRhZGF0YSwgZmFsc2UpOwogCiAgICAgICAgICAgICAgICAgdmlkZW8uc3JjPWxvY2FsTW92
aWU7CiAgICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ht
bGh0dHByZXF1ZXN0L2V4Y2VwdGlvbnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy94bWxodHRwcmVxdWVzdC9leGNlcHRpb25zLWV4cGVjdGVkLnR4dAppbmRleCA4Nzk5MjM2
Li5mYjM0NjE0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1
ZXN0L2V4Y2VwdGlvbnMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
eG1saHR0cHJlcXVlc3QvZXhjZXB0aW9ucy1leHBlY3RlZC50eHQKQEAgLTQsMTEgKzQsMTEgQEAg
bmV3IFhNTEh0dHBSZXF1ZXN0KCkKIFBBU1M6IHJlcS5zZXRSZXF1ZXN0SGVhZGVyKCJGb28iLCAi
YmFyIikgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2Vw
dGlvbiAxMS4KIFBBU1M6IHJlcS5zZW5kKG51bGwpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5W
QUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEuCiBvcGVuKCkKLVBBU1M6IHJlcS5zZXRS
ZXF1ZXN0SGVhZGVyKCkgdGhyZXcgZXhjZXB0aW9uIFN5bnRheEVycm9yOiBOb3QgZW5vdWdoIGFy
Z3VtZW50cy4KLVBBU1M6IHJlcS5zZXRSZXF1ZXN0SGVhZGVyKCJGb28iKSB0aHJldyBleGNlcHRp
b24gU3ludGF4RXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgorUEFTUzogcmVxLnNldFJlcXVl
c3RIZWFkZXIoKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50
cy4KK1BBU1M6IHJlcS5zZXRSZXF1ZXN0SGVhZGVyKCJGb28iKSB0aHJldyBleGNlcHRpb24gVHlw
ZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KIFBBU1M6IHJlcS5zdGF0dXMoKSB0aHJldyBl
eGNlcHRpb24gRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDExLgogUEFT
UzogcmVxLnN0YXR1c1RleHQoKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOVkFMSURfU1RBVEVf
RVJSOiBET00gRXhjZXB0aW9uIDExLgogc2VuZCgpCiBQQVNTOiByZXEuc2VuZChudWxsKSB0aHJl
dyBleGNlcHRpb24gRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDExLgog
UEFTUzogcmVxLnNldFJlcXVlc3RIZWFkZXIoIkZvbyIsICJiYXIiKSB0aHJldyBleGNlcHRpb24g
RXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDExLgotUEFTUzogcmVxLmdl
dFJlc3BvbnNlSGVhZGVyKCkgdGhyZXcgZXhjZXB0aW9uIFN5bnRheEVycm9yOiBOb3QgZW5vdWdo
IGFyZ3VtZW50cy4KK1BBU1M6IHJlcS5nZXRSZXNwb25zZUhlYWRlcigpIHRocmV3IGV4Y2VwdGlv
biBUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvbWVkaWEvdmlkZW8tY2FuLXBsYXktdHlwZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9t
ZWRpYS92aWRlby1jYW4tcGxheS10eXBlLWV4cGVjdGVkLnR4dAppbmRleCAxNjZiMjhiLi41MmU5
NDYzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby1jYW4tcGxheS10eXBlLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby1jYW4tcGxheS10eXBlLWV4
cGVjdGVkLnR4dApAQCAtMSw2ICsxLDUgQEAKIFRlc3QgSFRNTE1lZGlhRWxlbWVudCBjYW5QbGF5
VHlwZSgpIG1ldGhvZC4KIAotRVhQRUNURUQgKHZpZGVvLmNhblBsYXlUeXBlKCkgPT0gJycpIE9L
CiBFWFBFQ1RFRCAodmlkZW8uY2FuUGxheVR5cGUoJ3ZpZGVvLycpID09ICcnKSBPSwogRVhQRUNU
RUQgKHZpZGVvLmNhblBsYXlUeXBlKCd2aWRlby9ibGFoYmxhaCcpID09ICcnKSBPSwogRVhQRUNU
RUQgKHZpZGVvLmNhblBsYXlUeXBlKCd2aWRlby9tcGVnOyBjb2RlY3M9ImF2YzEuNEQ0MDBDIicp
ID09ICdwcm9iYWJseScpIE9LCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby1j
YW4tcGxheS10eXBlLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby1jYW4tcGxheS10eXBl
Lmh0bWwKaW5kZXggMmJmOGE3NS4uMWI4MGMxZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvbWVk
aWEvdmlkZW8tY2FuLXBsYXktdHlwZS5odG1sCisrKyBiL0xheW91dFRlc3RzL21lZGlhL3ZpZGVv
LWNhbi1wbGF5LXR5cGUuaHRtbApAQCAtMTUsNyArMTUsNiBAQAogICAgICAgICAKICAgICAgICAg
ICAgIHZpZGVvID0gbWVkaWFFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUo
J3ZpZGVvJylbMF07CiAKLSAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgidmlkZW8uY2FuUGxheVR5
cGUoKSIsICIiKTsKICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgidmlkZW8uY2FuUGxheVR5cGUo
J3ZpZGVvLycpIiwgIiIpOwogICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJ2aWRlby5jYW5QbGF5
VHlwZSgndmlkZW8vYmxhaGJsYWgnKSIsICIiKTsKICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgi
dmlkZW8uY2FuUGxheVR5cGUoJ3ZpZGVvL21wZWc7IGNvZGVjcz0mcXVvdDthdmMxLjRENDAwQyZx
dW90OycpIiwgInByb2JhYmx5Iik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdmcvY3NzL2ds
eXBoLW9yaWVudGF0aW9uLXJvdW5kaW5nLXRlc3QueGh0bWwgYi9MYXlvdXRUZXN0cy9zdmcvY3Nz
L2dseXBoLW9yaWVudGF0aW9uLXJvdW5kaW5nLXRlc3QueGh0bWwKaW5kZXggNmZjNWY5Mi4uNjZh
ZmU0NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3ZnL2Nzcy9nbHlwaC1vcmllbnRhdGlvbi1y
b3VuZGluZy10ZXN0LnhodG1sCisrKyBiL0xheW91dFRlc3RzL3N2Zy9jc3MvZ2x5cGgtb3JpZW50
YXRpb24tcm91bmRpbmctdGVzdC54aHRtbApAQCAtMTQsNyArMTQsNyBAQCB2YXIgY29tcHV0ZWRT
dHlsZTsKIGZ1bmN0aW9uIHBhcnNlR2x5cGhPcmllbnRhdGlvbkhlbHBlcihwcm9wZXJ0eSwgYW5n
bGVWYWx1ZSwgZXhwZWN0ZWRWYWx1ZSkKIHsKICAgICB0ZXh0RWxlbWVudC5zZXRBdHRyaWJ1dGVO
UyhudWxsLCBwcm9wZXJ0eSwgYW5nbGVWYWx1ZSk7Ci0gICAgY29tcHV0ZWRTdHlsZSA9IHRleHRF
bGVtZW50Lm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZSh0ZXh0RWxl
bWVudCk7CisgICAgY29tcHV0ZWRTdHlsZSA9IHRleHRFbGVtZW50Lm93bmVyRG9jdW1lbnQuZGVm
YXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZSh0ZXh0RWxlbWVudCwgbnVsbCk7CiAKICAgICBkZWJ1
ZygiVGVzdCBhbmdsZVZhbHVlOiAnIiArIGFuZ2xlVmFsdWUgKyAiJyIpOwogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9zdmcvY3VzdG9tL2xvYWRldmVudHMtY2FwdHVyaW5nLnN2ZyBiL0xheW91
dFRlc3RzL3N2Zy9jdXN0b20vbG9hZGV2ZW50cy1jYXB0dXJpbmcuc3ZnCmluZGV4IDY4MWY4N2Uu
LjI2MzMyZTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vbG9hZGV2ZW50cy1j
YXB0dXJpbmcuc3ZnCisrKyBiL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vbG9hZGV2ZW50cy1jYXB0
dXJpbmcuc3ZnCkBAIC0yMyw3ICsyMyw3IEBACiAgICAgICAgIH0KICAgICAgICAgY29uc29sZS5h
cHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiUGFzc2VkIikpOwogICAgICAgfQot
ICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBy
ZXBvcnRSZXN1bHRzKTsKKyAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5hZGRFdmVudExp
c3RlbmVyKCdsb2FkJywgcmVwb3J0UmVzdWx0cywgZmFsc2UpOwogICAgIF1dPgogICA8L3Njcmlw
dD4KICAgPGc+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3JlbGF0aXZlLXNp
emVkLWNvbnRlbnQueGh0bWwgYi9MYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3JlbGF0aXZlLXNpemVk
LWNvbnRlbnQueGh0bWwKaW5kZXggZjQ4MzBkOC4uNTY2OTU2YiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvc3ZnL2N1c3RvbS9yZWxhdGl2ZS1zaXplZC1jb250ZW50LnhodG1sCisrKyBiL0xheW91
dFRlc3RzL3N2Zy9jdXN0b20vcmVsYXRpdmUtc2l6ZWQtY29udGVudC54aHRtbApAQCAtMTEsNyAr
MTEsNyBAQAogICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgp
OwogCiAgICAgICAgIGZ1bmN0aW9uIHJlc2l6ZUJveCgpIHsKLSAgICAgICAgICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJjb250ZW50Qm94Iikuc3R5bGUuc2V0UHJvcGVydHkoIndpZHRoIiwg
IjQwMHB4Iik7CisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudEJv
eCIpLnN0eWxlLnNldFByb3BlcnR5KCJ3aWR0aCIsICI0MDBweCIsIG51bGwpOwogICAgICAgICAg
ICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKICAgICAgICAgICAgICAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3N2Zy9jdXN0b20vcmVsYXRpdmUtc2l6ZWQtZGVlcC1zaGFkb3ctdHJlZS1jb250
ZW50LnhodG1sIGIvTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9yZWxhdGl2ZS1zaXplZC1kZWVwLXNo
YWRvdy10cmVlLWNvbnRlbnQueGh0bWwKaW5kZXggN2VlYjgwYy4uZGQxODQzOSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9yZWxhdGl2ZS1zaXplZC1kZWVwLXNoYWRvdy10cmVl
LWNvbnRlbnQueGh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9yZWxhdGl2ZS1zaXpl
ZC1kZWVwLXNoYWRvdy10cmVlLWNvbnRlbnQueGh0bWwKQEAgLTE1LDcgKzE1LDcgQEAKICAgICAg
ICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKIAogICAgICAgICBm
dW5jdGlvbiByZXNpemVCb3goKSB7Ci0gICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgiY29udGVudEJveCIpLnN0eWxlLnNldFByb3BlcnR5KCJ3aWR0aCIsICI0MDBweCIpOworICAg
ICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRCb3giKS5zdHlsZS5zZXRQ
cm9wZXJ0eSgid2lkdGgiLCAiNDAwcHgiLCBudWxsKTsKICAgICAgICAgICAgIGlmICh3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIubm90aWZ5RG9uZSgpOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdmcv
Y3VzdG9tL3JlbGF0aXZlLXNpemVkLXNoYWRvdy10cmVlLWNvbnRlbnQtd2l0aC1zeW1ib2wueGh0
bWwgYi9MYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3JlbGF0aXZlLXNpemVkLXNoYWRvdy10cmVlLWNv
bnRlbnQtd2l0aC1zeW1ib2wueGh0bWwKaW5kZXggMTA4MWIyNi4uMzMyYjM5NSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9yZWxhdGl2ZS1zaXplZC1zaGFkb3ctdHJlZS1jb250
ZW50LXdpdGgtc3ltYm9sLnhodG1sCisrKyBiL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vcmVsYXRp
dmUtc2l6ZWQtc2hhZG93LXRyZWUtY29udGVudC13aXRoLXN5bWJvbC54aHRtbApAQCAtMTcsNyAr
MTcsNyBAQAogICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgp
OwogCiAgICAgICAgIGZ1bmN0aW9uIHJlc2l6ZUJveCgpIHsKLSAgICAgICAgICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJjb250ZW50Qm94Iikuc3R5bGUuc2V0UHJvcGVydHkoIndpZHRoIiwg
IjQwMHB4Iik7CisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudEJv
eCIpLnN0eWxlLnNldFByb3BlcnR5KCJ3aWR0aCIsICI0MDBweCIsIG51bGwpOwogICAgICAgICAg
ICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKICAgICAgICAgICAgICAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3N2Zy9jdXN0b20vcmVsYXRpdmUtc2l6ZWQtc2hhZG93LXRyZWUtY29udGVudC54
aHRtbCBiL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vcmVsYXRpdmUtc2l6ZWQtc2hhZG93LXRyZWUt
Y29udGVudC54aHRtbAppbmRleCAxZTk4Mjg4Li4yODgzNzczIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9zdmcvY3VzdG9tL3JlbGF0aXZlLXNpemVkLXNoYWRvdy10cmVlLWNvbnRlbnQueGh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9yZWxhdGl2ZS1zaXplZC1zaGFkb3ctdHJlZS1j
b250ZW50LnhodG1sCkBAIC0xNyw3ICsxNyw3IEBACiAgICAgICAgICAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci53YWl0VW50aWxEb25lKCk7CiAKICAgICAgICAgZnVuY3Rpb24gcmVzaXplQm94KCkg
ewotICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRCb3giKS5zdHls
ZS5zZXRQcm9wZXJ0eSgid2lkdGgiLCAiNDAwcHgiKTsKKyAgICAgICAgICAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJjb250ZW50Qm94Iikuc3R5bGUuc2V0UHJvcGVydHkoIndpZHRoIiwgIjQw
MHB4IiwgbnVsbCk7CiAgICAgICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KQogICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKICAg
ICAgICAgfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9yZWxhdGl2ZS1zaXpl
ZC11c2Utb24tc3ltYm9sLnhodG1sIGIvTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9yZWxhdGl2ZS1z
aXplZC11c2Utb24tc3ltYm9sLnhodG1sCmluZGV4IGY1OGJlMjUuLjdhMWY1YWQgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vcmVsYXRpdmUtc2l6ZWQtdXNlLW9uLXN5bWJvbC54
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3JlbGF0aXZlLXNpemVkLXVzZS1vbi1z
eW1ib2wueGh0bWwKQEAgLTE2LDcgKzE2LDcgQEAKICAgICAgICAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKIAogICAgICAgICBmdW5jdGlvbiByZXNpemVCb3goKSB7
Ci0gICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudEJveCIpLnN0eWxl
LnNldFByb3BlcnR5KCJ3aWR0aCIsICI0MDBweCIpOworICAgICAgICAgICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoImNvbnRlbnRCb3giKS5zdHlsZS5zZXRQcm9wZXJ0eSgid2lkdGgiLCAiNDAw
cHgiLCBudWxsKTsKICAgICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
CiAgICAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOwogICAg
ICAgICB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdmcvZG9tL2ZyYW1lLXJlbGF0ZWQtYXBp
LWR1cmluZy1sb2FkLmh0bWwgYi9MYXlvdXRUZXN0cy9zdmcvZG9tL2ZyYW1lLXJlbGF0ZWQtYXBp
LWR1cmluZy1sb2FkLmh0bWwKaW5kZXggYzM0YjE0Ni4uMjQ1ZDI2MiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvc3ZnL2RvbS9mcmFtZS1yZWxhdGVkLWFwaS1kdXJpbmctbG9hZC5odG1sCisrKyBi
L0xheW91dFRlc3RzL3N2Zy9kb20vZnJhbWUtcmVsYXRlZC1hcGktZHVyaW5nLWxvYWQuaHRtbApA
QCAtNiw3ICs2LDcgQEAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKIAogZnVuY3Rp
b24gdGVzdCgpCiB7Ci0gICAgaHRtbERvY3VtZW50ID0gZG9jdW1lbnQuaW1wbGVtZW50YXRpb24u
Y3JlYXRlSFRNTERvY3VtZW50KCk7CisgICAgaHRtbERvY3VtZW50ID0gZG9jdW1lbnQuaW1wbGVt
ZW50YXRpb24uY3JlYXRlSFRNTERvY3VtZW50KCIiKTsKICAgICBzdmdFbGVtZW50ID0gaHRtbERv
Y3VtZW50LmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLCJzdmci
KTsKICAgICAvLyBJbXBsZW1lbnRhdGlvbnMgb2YgZm9sbG93aW5nIEFQSXMgYWNjZXNzIEZyYW1l
IG9iamVjdCwgd2hpY2ggY2FuIGJlIE5VTEwuCiAgICAgc3ZnRWxlbWVudC5kZXNlbGVjdEFsbCgp
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvdHJhbnNmb3Jtcy8yZC9jb21wdXRlZC1zdHlsZS1v
cmlnaW4uaHRtbCBiL0xheW91dFRlc3RzL3RyYW5zZm9ybXMvMmQvY29tcHV0ZWQtc3R5bGUtb3Jp
Z2luLmh0bWwKaW5kZXggNzM3MDM1NC4uYThkN2NiYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
dHJhbnNmb3Jtcy8yZC9jb21wdXRlZC1zdHlsZS1vcmlnaW4uaHRtbAorKysgYi9MYXlvdXRUZXN0
cy90cmFuc2Zvcm1zLzJkL2NvbXB1dGVkLXN0eWxlLW9yaWdpbi5odG1sCkBAIC01MywxMCArNTMs
MTAgQEAgdmFyIHRlc3QyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3QyIik7CiB2YXIg
dGVzdDMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdDMiKTsKIHZhciB0ZXN0NCA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0NCIpOwogCi12YXIgdGVzdDFTdHlsZSA9IHdpbmRv
dy5nZXRDb21wdXRlZFN0eWxlKHRlc3QxKTsKLXZhciB0ZXN0MlN0eWxlID0gd2luZG93LmdldENv
bXB1dGVkU3R5bGUodGVzdDIpOwotdmFyIHRlc3QzU3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRT
dHlsZSh0ZXN0Myk7Ci12YXIgdGVzdDRTdHlsZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRl
c3Q0KTsKK3ZhciB0ZXN0MVN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUodGVzdDEsIG51
bGwpOwordmFyIHRlc3QyU3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0ZXN0MiwgbnVs
bCk7Cit2YXIgdGVzdDNTdHlsZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRlc3QzLCBudWxs
KTsKK3ZhciB0ZXN0NFN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUodGVzdDQsIG51bGwp
OwogCiBzaG91bGRCZSgidGVzdDFTdHlsZS53ZWJraXRUcmFuc2Zvcm1PcmlnaW4iLCAiJzEwcHgg
MTBweCciKTsKIHNob3VsZEJlKCJ0ZXN0MlN0eWxlLndlYmtpdFRyYW5zZm9ybU9yaWdpbiIsICIn
MTBweCAxMHB4JyIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvdHJhbnNmb3Jtcy8yZC9yZXNv
dXJjZXMvdHJhbnNmb3JtLXRlc3QtdXRpbHMuanMgYi9MYXlvdXRUZXN0cy90cmFuc2Zvcm1zLzJk
L3Jlc291cmNlcy90cmFuc2Zvcm0tdGVzdC11dGlscy5qcwppbmRleCBhZTA3YjBlLi5hNTFiYjY3
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy90cmFuc2Zvcm1zLzJkL3Jlc291cmNlcy90cmFuc2Zv
cm0tdGVzdC11dGlscy5qcworKysgYi9MYXlvdXRUZXN0cy90cmFuc2Zvcm1zLzJkL3Jlc291cmNl
cy90cmFuc2Zvcm0tdGVzdC11dGlscy5qcwpAQCAtNDQsNyArNDQsNyBAQCBmdW5jdGlvbiB0ZXN0
VHJhbnNmb3JtcygpCiAgIGdUZXN0cy5mb3JFYWNoKGZ1bmN0aW9uKGN1clRlc3QpIHsKICAgICB0
ZXN0Qm94LnN0eWxlLndlYmtpdFRyYW5zZm9ybSA9ICdub25lJzsgLy8gcmVzZXQgdGhlIHRyYW5z
Zm9ybSBqdXN0IGluIGNhc2UgdGhlIG5leHQgc3RlcCBmYWlscwogICAgIHRlc3RCb3guc3R5bGUu
d2Via2l0VHJhbnNmb3JtID0gY3VyVGVzdC50cmFuc2Zvcm07Ci0gICAgdmFyIGNvbXB1dGVkVHJh
bnNmb3JtID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUodGVzdEJveCkud2Via2l0VHJhbnNmb3Jt
OworICAgIHZhciBjb21wdXRlZFRyYW5zZm9ybSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRl
c3RCb3gsIG51bGwpLndlYmtpdFRyYW5zZm9ybTsKIAogICAgIHZhciBzdWNjZXNzID0gY29tcGFy
ZU1hdHJpY2VzKGNvbXB1dGVkVHJhbnNmb3JtLCBjdXJUZXN0LnJlc3VsdCk7CiAgICAgdmFyIHJl
c3VsdDsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3RyYW5zZm9ybXMvY3NzbWF0cml4LTJkLWlu
dGVyZmFjZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy90cmFuc2Zvcm1zL2Nzc21hdHJpeC0y
ZC1pbnRlcmZhY2UtZXhwZWN0ZWQudHh0CmluZGV4IDU5YTQ4NTYuLmNlNzAwNDQgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3RyYW5zZm9ybXMvY3NzbWF0cml4LTJkLWludGVyZmFjZS1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvdHJhbnNmb3Jtcy9jc3NtYXRyaXgtMmQtaW50ZXJmYWNl
LWV4cGVjdGVkLnR4dApAQCAtMTUyLDkgKzE1Miw2IEBAIFBBU1Mgc3guZCBpcyAxCiBQQVNTIHN4
LmUgaXMgMAogUEFTUyBzeC5mIGlzIDAKIAotVGVzdCBtdWx0aXBseSB3aXRoIG1pc3NpbmcgYXJn
dW1lbnQKLVBBU1MgbTIgaXMgbnVsbAotCiBUZXN0IGludmVyc2UKIFBBU1MgcGFyc2VGbG9hdCht
Mi5hKSBpcyAwLjUKIFBBU1MgcGFyc2VGbG9hdChtMi5iKSBpcyAwCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy90cmFuc2Zvcm1zL2Nzc21hdHJpeC0yZC1pbnRlcmZhY2UueGh0bWwgYi9MYXlvdXRU
ZXN0cy90cmFuc2Zvcm1zL2Nzc21hdHJpeC0yZC1pbnRlcmZhY2UueGh0bWwKaW5kZXggODc4OGMz
Yy4uZjM3ZWE2OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvdHJhbnNmb3Jtcy9jc3NtYXRyaXgt
MmQtaW50ZXJmYWNlLnhodG1sCisrKyBiL0xheW91dFRlc3RzL3RyYW5zZm9ybXMvY3NzbWF0cml4
LTJkLWludGVyZmFjZS54aHRtbApAQCAtMjIyLDEyICsyMjIsNiBAQCBzaG91bGRCZSgnc3guZScs
ICcwJyk7CiBzaG91bGRCZSgnc3guZicsICcwJyk7CiAKIGRlYnVnKCIiKTsKLWRlYnVnKCJUZXN0
IG11bHRpcGx5IHdpdGggbWlzc2luZyBhcmd1bWVudCIpOwotbSA9IG5ldyBXZWJLaXRDU1NNYXRy
aXgoIm1hdHJpeCgxLCAyLCAzLCA0LCA1LCA2KSIpOwotbTIgPSBtLm11bHRpcGx5KCk7Ci1zaG91
bGRCZSgnbTInLCAnbnVsbCcpOwotCi1kZWJ1ZygiIik7CiBkZWJ1ZygiVGVzdCBpbnZlcnNlIik7
CiBtID0gbmV3IFdlYktpdENTU01hdHJpeCgibWF0cml4KDIsIDAsIDAsIDIsIDEwLCAyMCkiKTsK
IG0yID0gbS5pbnZlcnNlKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy9j
YW5jZWwtdHJhbnNpdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvY2FuY2VsLXRy
YW5zaXRpb24uaHRtbAppbmRleCBlYWViZjFjLi4wOWY0YmIyIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy90cmFuc2l0aW9ucy9jYW5jZWwtdHJhbnNpdGlvbi5odG1sCisrKyBiL0xheW91dFRlc3Rz
L3RyYW5zaXRpb25zL2NhbmNlbC10cmFuc2l0aW9uLmh0bWwKQEAgLTY4LDcgKzY4LDcgQEAKIAog
ICAgICAgICBmdW5jdGlvbiBjaGVjaygpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHZhciBsZWZ0
ID0gcGFyc2VGbG9hdCh3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnYScpKS5sZWZ0KTsKKyAgICAgICAgICAgIHZhciBsZWZ0ID0gcGFyc2VGbG9hdCh3aW5k
b3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYScpLCBudWxsKS5s
ZWZ0KTsKICAgICAgICAgICAgIHJlc3VsdCA9ICJsZWZ0OiI7CiAgICAgICAgICAgICBpZiAoIWlz
RXF1YWwobGVmdCwgMjUwLCA1MCkpCiAgICAgICAgICAgICAgICAgcmVzdWx0ICs9ICI8c3BhbiBz
dHlsZT0nY29sb3I6cmVkJz5GQUlMKHdhczoiICsgbGVmdCArICIsIHMvYjoxNTApPC9zcGFuPiI7
CkBAIC03Nyw3ICs3Nyw3IEBACiAgICAgICAgICAgICAKICAgICAgICAgICAgIHJlc3VsdCArPSAi
LCB3ZWJraXRUcmFuc2Zvcm06IjsKICAgICAgICAgICAgIAotICAgICAgICAgICAgdmFyIHRyYW5z
Zm9ybSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdi
JykpLndlYmtpdFRyYW5zZm9ybTsKKyAgICAgICAgICAgIHZhciB0cmFuc2Zvcm0gPSB3aW5kb3cu
Z2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYicpLCBudWxsKS53ZWJr
aXRUcmFuc2Zvcm07CiAgICAgICAgICAgICB0cmFuc2Zvcm0gPSB0cmFuc2Zvcm0uc3BsaXQoIigi
KTsKICAgICAgICAgICAgIHRyYW5zZm9ybSA9IHRyYW5zZm9ybVsxXS5zcGxpdCgiLCIpOwogICAg
ICAgICAgICAgaWYgKCFpc0VxdWFsKHRyYW5zZm9ybVs0XSwgMjAwLCA1MCkpCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy9jaGFuZ2UtdmFsdWVzLWR1cmluZy10cmFuc2l0aW9u
Lmh0bWwgYi9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy9jaGFuZ2UtdmFsdWVzLWR1cmluZy10cmFu
c2l0aW9uLmh0bWwKaW5kZXggZGYwMDM4Zi4uYzNlMGIzZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvdHJhbnNpdGlvbnMvY2hhbmdlLXZhbHVlcy1kdXJpbmctdHJhbnNpdGlvbi5odG1sCisrKyBi
L0xheW91dFRlc3RzL3RyYW5zaXRpb25zL2NoYW5nZS12YWx1ZXMtZHVyaW5nLXRyYW5zaXRpb24u
aHRtbApAQCAtMzgsNyArMzgsNyBAQAogICAgIAogICAgIGZ1bmN0aW9uIGdldFhQb3NpdGlvbigp
CiAgICAgewotICAgICAgICB2YXIgdCA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdib3gnKSkud2Via2l0VHJhbnNmb3JtOworICAgICAgICB2YXIgdCA9
IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdib3gnKSwg
bnVsbCkud2Via2l0VHJhbnNmb3JtOwogICAgICAgICB0ID0gdC5zcGxpdCgiKCIpOwogICAgICAg
ICB0ID0gdFsxXS5zcGxpdCgiLCIpOwogICAgICAgICByZXR1cm4gdFs0XTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3RyYW5zaXRpb25zL2V4dHJhLXRyYW5zaXRpb24uaHRtbCBiL0xheW91dFRl
c3RzL3RyYW5zaXRpb25zL2V4dHJhLXRyYW5zaXRpb24uaHRtbAppbmRleCBhOWQ3ZTFiLi5jOGE5
YWRkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy9leHRyYS10cmFuc2l0aW9u
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvZXh0cmEtdHJhbnNpdGlvbi5odG1s
CkBAIC03OCw3ICs3OCw3IEBACiAKICAgZnVuY3Rpb24gY2hlY2soKQogICB7Ci0gICAgICB2YXIg
dHJhbnNmb3JtID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ2Rlc2NyaXB0aW9uJykpLndlYmtpdFRyYW5zZm9ybTsKKyAgICAgIHZhciB0cmFuc2Zvcm0g
PSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGVzY3Jp
cHRpb24nKSwgbnVsbCkud2Via2l0VHJhbnNmb3JtOwogICAgICAgaWYgKHRyYW5zZm9ybSA9PSAi
bWF0cml4KDEsIDAsIDAsIDEsIDEwMCwgMCkiKQogICAgICAgICAgIGxvZygndHJhbnNmb3JtPSIn
K3RyYW5zZm9ybSsnIiBhcyBleHBlY3RlZDogUEFTUycpOwogICAgICAgICBlbHNlCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy9pbmhlcml0LW90aGVyLXByb3BzLmh0bWwgYi9M
YXlvdXRUZXN0cy90cmFuc2l0aW9ucy9pbmhlcml0LW90aGVyLXByb3BzLmh0bWwKaW5kZXggYTc1
YTViOC4uNzI5YTQyMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvaW5oZXJp
dC1vdGhlci1wcm9wcy5odG1sCisrKyBiL0xheW91dFRlc3RzL3RyYW5zaXRpb25zL2luaGVyaXQt
b3RoZXItcHJvcHMuaHRtbApAQCAtNzAsOSArNzAsOSBAQAogICAgICAgdmFyIGJveGVzID0gZG9j
dW1lbnQuYm9keS5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdib3gnKTsKICAgICAgIGZvciAodmFy
IGkgPSAwOyBpIDwgYm94ZXMubGVuZ3RoOyArK2kpIHsKICAgICAgICAgdmFyIGN1ckJveCA9IGJv
eGVzW2ldOwotICAgICAgICB0ZXN0VmFsdWUoaSsxLCAicHJvcGVydHkiLCB3aW5kb3cuZ2V0Q29t
cHV0ZWRTdHlsZShjdXJCb3gpLndlYmtpdFRyYW5zaXRpb25Qcm9wZXJ0eSwga0V4cGVjdGVkUHJv
cFtpXSk7Ci0gICAgICAgIHRlc3RWYWx1ZShpKzEsICJkdXJhdGlvbiIsIHdpbmRvdy5nZXRDb21w
dXRlZFN0eWxlKGN1ckJveCkud2Via2l0VHJhbnNpdGlvbkR1cmF0aW9uLCBrRXhwZWN0ZWREdXJh
dGlvbltpXSk7Ci0gICAgICAgIHRlc3RWYWx1ZShpKzEsICJ0aW1pbmcgZnVuY3Rpb24iLCB3aW5k
b3cuZ2V0Q29tcHV0ZWRTdHlsZShjdXJCb3gpLndlYmtpdFRyYW5zaXRpb25UaW1pbmdGdW5jdGlv
biwga0V4cGVjdGVkVGltaW5nRnVuY3Rpb25baV0pOworICAgICAgICB0ZXN0VmFsdWUoaSsxLCAi
cHJvcGVydHkiLCB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShjdXJCb3gsIG51bGwpLndlYmtpdFRy
YW5zaXRpb25Qcm9wZXJ0eSwga0V4cGVjdGVkUHJvcFtpXSk7CisgICAgICAgIHRlc3RWYWx1ZShp
KzEsICJkdXJhdGlvbiIsIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGN1ckJveCwgbnVsbCkud2Vi
a2l0VHJhbnNpdGlvbkR1cmF0aW9uLCBrRXhwZWN0ZWREdXJhdGlvbltpXSk7CisgICAgICAgIHRl
c3RWYWx1ZShpKzEsICJ0aW1pbmcgZnVuY3Rpb24iLCB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShj
dXJCb3gsIG51bGwpLndlYmtpdFRyYW5zaXRpb25UaW1pbmdGdW5jdGlvbiwga0V4cGVjdGVkVGlt
aW5nRnVuY3Rpb25baV0pOwogICAgICAgfQogCiAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNo
aWxkKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb250YWluZXInKSk7CkBAIC0xMDEsNCArMTAx
LDQgQEAKIDxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+CiAKIDwvYm9keT4KLTwvaHRtbD4KXCBObyBu
ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy90
cmFuc2l0aW9ucy9pbmhlcml0Lmh0bWwgYi9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy9pbmhlcml0
Lmh0bWwKaW5kZXggNDYzM2IzYy4uZjAyODNiNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvdHJh
bnNpdGlvbnMvaW5oZXJpdC5odG1sCisrKyBiL0xheW91dFRlc3RzL3RyYW5zaXRpb25zL2luaGVy
aXQuaHRtbApAQCAtNDAsNyArNDAsNyBAQAogICAgICAgdmFyIGJveGVzID0gZG9jdW1lbnQuYm9k
eS5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdib3gnKTsKICAgICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgYm94ZXMubGVuZ3RoOyArK2kpIHsKICAgICAgICAgdmFyIGN1ckJveCA9IGJveGVzW2ldOwot
ICAgICAgICB2YXIgY3VyUHJvcCA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGN1ckJveCkud2Vi
a2l0VHJhbnNpdGlvblByb3BlcnR5OworICAgICAgICB2YXIgY3VyUHJvcCA9IHdpbmRvdy5nZXRD
b21wdXRlZFN0eWxlKGN1ckJveCwgbnVsbCkud2Via2l0VHJhbnNpdGlvblByb3BlcnR5OwogICAg
ICAgICBpZiAoY3VyUHJvcCA9PSBrRXhwZWN0ZWRzW2ldKQogICAgICAgICAgIHJlc3VsdCArPSAi
UEFTUyAtLSAiOwogICAgICAgICBlbHNlCkBAIC03NCw0ICs3NCw0IEBACiA8ZGl2IGlkPSJyZXN1
bHQiPjwvZGl2PgogCiA8L2JvZHk+Ci08L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls
ZQorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvaW50ZXJydXB0
LXRyYW5zZm9ybS10cmFuc2l0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy9pbnRl
cnJ1cHQtdHJhbnNmb3JtLXRyYW5zaXRpb24uaHRtbAppbmRleCA4MWVhMTY5Li5mYTUzY2M2IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy9pbnRlcnJ1cHQtdHJhbnNmb3JtLXRy
YW5zaXRpb24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy9pbnRlcnJ1cHQtdHJh
bnNmb3JtLXRyYW5zaXRpb24uaHRtbApAQCAtMjIsNyArMjIsNyBAQAogCiAgICAgZnVuY3Rpb24g
dGVzdCgpCiAgICAgewotICAgICAgdmFyIHQgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnYm94JykpLndlYmtpdFRyYW5zZm9ybTsKKyAgICAgIHZhciB0
ID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JveCcp
LCBudWxsKS53ZWJraXRUcmFuc2Zvcm07CiAgICAgICAvLyBncmFiIHRoZSB4IHZhbHVlIGZyb20g
dGhlIG1hdHJpeCgpCiAgICAgICB2YXIgbGFzdFZhbHVlUkUgPSAvKFtcLlxkXSspLFteLF0rXCkk
LzsKICAgICAgIHZhciB4VHJhbnNsYXRlID0gbGFzdFZhbHVlUkUuZXhlYyh0KVsxXTsKQEAgLTUz
LDQgKzUzLDQgQEAKICAgPGRpdiBpZD0icmVzdWx0Ij4KICAgPC9kaXY+CiA8L2JvZHk+Ci08L2h0
bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvdHJhbnNpdGlvbnMvaW50ZXJydXB0LXplcm8tZHVyYXRpb24uaHRtbCBiL0xheW91
dFRlc3RzL3RyYW5zaXRpb25zL2ludGVycnVwdC16ZXJvLWR1cmF0aW9uLmh0bWwKaW5kZXggNWZi
ODMyNy4uZTQ1NWZhYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvaW50ZXJy
dXB0LXplcm8tZHVyYXRpb24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy9pbnRl
cnJ1cHQtemVyby1kdXJhdGlvbi5odG1sCkBAIC0zNSw3ICszNSw3IEBACiAgICAgICAgIGlmIChy
ZXN1bHQgIT0gIlBBU1MiKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgCi0gICAg
ICAgIHZhciBsZWZ0ID0gcGFyc2VJbnQod2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ2JveCcpKS5sZWZ0KTsKKyAgICAgICAgdmFyIGxlZnQgPSBwYXJzZUlu
dCh3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYm94Jyks
IG51bGwpLmxlZnQpOwogICAgICAgICBpZiAoIWlzRXF1YWwobGVmdCwgZXhwZWN0ZWQsIHRvbGVy
YW5jZSkpCiAgICAgICAgICAgICByZXN1bHQgPSAiRkFJTCh3YXM6IitsZWZ0KyIsIGV4cGVjdGVk
OiIrZXhwZWN0ZWQrIikiOwogICAgIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3RyYW5zaXRp
b25zL2ludGVycnVwdGVkLWFsbC10cmFuc2l0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy90cmFuc2l0
aW9ucy9pbnRlcnJ1cHRlZC1hbGwtdHJhbnNpdGlvbi5odG1sCmluZGV4IGMyZGFkNjQuLmFkZTAz
OWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3RyYW5zaXRpb25zL2ludGVycnVwdGVkLWFsbC10
cmFuc2l0aW9uLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvaW50ZXJydXB0ZWQt
YWxsLXRyYW5zaXRpb24uaHRtbApAQCAtMzYsNyArMzYsNyBAQAogICAgICAgICBib3guc3R5bGUu
bGVmdCA9ICcwcHgnOwogICAgICAgICAKICAgICAgICAgd2luZG93LnNldFRpbWVvdXQoZnVuY3Rp
b24oKSB7Ci0gICAgICAgICAgdmFyIGJveFBvcyA9IHBhcnNlSW50KHdpbmRvdy5nZXRDb21wdXRl
ZFN0eWxlKGJveCkubGVmdCk7CisgICAgICAgICAgdmFyIGJveFBvcyA9IHBhcnNlSW50KHdpbmRv
dy5nZXRDb21wdXRlZFN0eWxlKGJveCwgbnVsbCkubGVmdCk7CiAgICAgICAgICAgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdCcpLmlubmVySFRNTCA9IChib3hQb3MgPCAyMDApID8gIlBB
U1MiIDogIkZBSUwiOwogICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
CiAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3RyYW5zaXRpb25zL21hdGNoZWQtdHJhbnNmb3JtLWZ1bmN0aW9u
cy5odG1sIGIvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvbWF0Y2hlZC10cmFuc2Zvcm0tZnVuY3Rp
b25zLmh0bWwKaW5kZXggYjQxOThmMC4uYzRlYzQyYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
dHJhbnNpdGlvbnMvbWF0Y2hlZC10cmFuc2Zvcm0tZnVuY3Rpb25zLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvdHJhbnNpdGlvbnMvbWF0Y2hlZC10cmFuc2Zvcm0tZnVuY3Rpb25zLmh0bWwKQEAgLTI0
LDcgKzI0LDcgQEAKIAogICAgIGZ1bmN0aW9uIHRlc3QoKQogICAgIHsKLSAgICAgIHZhciB0ID0g
d2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JveCcpKS53
ZWJraXRUcmFuc2Zvcm07CisgICAgICB2YXIgdCA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdib3gnKSwgbnVsbCkud2Via2l0VHJhbnNmb3JtOwogICAg
ICAgLy8gZ3JhYiB0aGUgbGFzdCB2YWx1ZSBmcm9tIHRoZSBtYXRyaXgoKQogICAgICAgdmFyIGxh
c3RWYWx1ZVJFID0gLyhcZCspXCkkLzsKICAgICAgIHZhciB5VHJhbnNsYXRlID0gcGFyc2VJbnQo
bGFzdFZhbHVlUkUuZXhlYyh0KSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy90cmFuc2l0aW9u
cy9yZXBlYXRlZC1maXJpbmctYmFja2dyb3VuZC1jb2xvci5odG1sIGIvTGF5b3V0VGVzdHMvdHJh
bnNpdGlvbnMvcmVwZWF0ZWQtZmlyaW5nLWJhY2tncm91bmQtY29sb3IuaHRtbAppbmRleCAwOTU3
NTcwLi4yZWEyODlhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy9yZXBlYXRl
ZC1maXJpbmctYmFja2dyb3VuZC1jb2xvci5odG1sCisrKyBiL0xheW91dFRlc3RzL3RyYW5zaXRp
b25zL3JlcGVhdGVkLWZpcmluZy1iYWNrZ3JvdW5kLWNvbG9yLmh0bWwKQEAgLTM0LDcgKzM0LDcg
QEAKIAogICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmb28nKS5hZGRFdmVudExpc3RlbmVy
KCd3ZWJraXRUcmFuc2l0aW9uRW5kJywgZnVuY3Rpb24oKSB7CiAgICAgICAgIGNoZWNrUnVubmlu
ZygpCi0gICAgfSk7CisgICAgfSwgZmFsc2UpOwogCiAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoImZvbyIpLmNsYXNzTmFtZT0idHJhbnMiOwogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy90cmFuc2l0aW9ucy9yZXRhcmdldHRlZC10cmFuc2l0aW9uLmh0bWwgYi9MYXlvdXRU
ZXN0cy90cmFuc2l0aW9ucy9yZXRhcmdldHRlZC10cmFuc2l0aW9uLmh0bWwKaW5kZXggNmUzMGNi
Ny4uN2JhZDg0ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvcmV0YXJnZXR0
ZWQtdHJhbnNpdGlvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL3RyYW5zaXRpb25zL3JldGFyZ2V0
dGVkLXRyYW5zaXRpb24uaHRtbApAQCAtMjMsNyArMjMsNyBAQAogCiAgICAgZnVuY3Rpb24gdGVz
dCgpCiAgICAgewotICAgICAgdmFyIHQgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnYm94JykpLndlYmtpdFRyYW5zZm9ybTsKKyAgICAgIHZhciB0ID0g
d2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JveCcpLCBu
dWxsKS53ZWJraXRUcmFuc2Zvcm07CiAgICAgICAvLyBncmFiIHRoZSBsYXN0IHZhbHVlIGZyb20g
dGhlIG1hdHJpeCgpCiAgICAgICB2YXIgbGFzdFZhbHVlUkUgPSAvKFxkKylcKSQvOwogICAgICAg
dmFyIHlUcmFuc2xhdGUgPSBwYXJzZUludChsYXN0VmFsdWVSRS5leGVjKHQpKTsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3RyYW5zaXRpb25zL3N0YXJ0LXRyYW5zZm9ybS10cmFuc2l0aW9uLmh0
bWwgYi9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy9zdGFydC10cmFuc2Zvcm0tdHJhbnNpdGlvbi5o
dG1sCmluZGV4IDg4MTMzYTYuLjZlNzI2ZTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3RyYW5z
aXRpb25zL3N0YXJ0LXRyYW5zZm9ybS10cmFuc2l0aW9uLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
dHJhbnNpdGlvbnMvc3RhcnQtdHJhbnNmb3JtLXRyYW5zaXRpb24uaHRtbApAQCAtMjQsNyArMjQs
NyBAQAogCiAgICAgZnVuY3Rpb24gdGVzdCgpCiAgICAgewotICAgICAgdmFyIHQgPSB3aW5kb3cu
Z2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYm94JykpLndlYmtpdFRy
YW5zZm9ybTsKKyAgICAgIHZhciB0ID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ2JveCcpLCBudWxsKS53ZWJraXRUcmFuc2Zvcm07CiAgICAgICAvLyBn
cmFiIHRoZSB4IHZhbHVlIGZyb20gdGhlIG1hdHJpeCgpCiAgICAgICB2YXIgbGFzdFZhbHVlUkUg
PSAvKFtcLlxkXSspLFteLF0rXCkkLzsKICAgICAgIHZhciB4VHJhbnNsYXRlID0gbGFzdFZhbHVl
UkUuZXhlYyh0KVsxXTsKQEAgLTUzLDQgKzUzLDQgQEAKICAgPGRpdiBpZD0icmVzdWx0Ij4KICAg
PC9kaXY+CiA8L2JvZHk+Ci08L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvdHJhbnNpdGlvbi1kcnQt
YXBpLWRlbGF5Lmh0bWwgYi9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy90cmFuc2l0aW9uLWRydC1h
cGktZGVsYXkuaHRtbAppbmRleCA1ODlmNTk5Li5iZWUyMmYzIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy90cmFuc2l0aW9ucy90cmFuc2l0aW9uLWRydC1hcGktZGVsYXkuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy90cmFuc2l0aW9ucy90cmFuc2l0aW9uLWRydC1hcGktZGVsYXkuaHRtbApAQCAtMjYs
NyArMjYsNyBAQAogICAgIGZ1bmN0aW9uIGVuZFRlc3QoKSB7CiAgICAgICBpZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKSB7CiAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnBhdXNl
VHJhbnNpdGlvbkF0VGltZU9uRWxlbWVudFdpdGhJZCgibGVmdCIsIDIuMCwgInRhcmdldCIpOwot
ICAgICAgICB2YXIgbGVmdCA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCd0YXJnZXQnKSkubGVmdDsKKyAgICAgICAgdmFyIGxlZnQgPSB3aW5kb3cuZ2V0
Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGFyZ2V0JyksIG51bGwpLmxl
ZnQ7CiAgICAgICAgIHZhciByZXN1bHQgPSAiUEFTUyI7CiAgICAgICAgIGlmIChsZWZ0ICE9ICIx
MjVweCIpIHsKICAgICAgICAgICByZXN1bHQgPSAiRkFJTCAtIGV4cGVjdGVkIDEyNXB4IGdvdCAi
ICsgbGVmdDsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3RyYW5zaXRpb25zL3RyYW5zaXRpb24t
ZHVyYXRpb24tY2xlYXJlZC1pbi10cmFuc2l0aW9uZW5kLWNyYXNoLmh0bWwgYi9MYXlvdXRUZXN0
cy90cmFuc2l0aW9ucy90cmFuc2l0aW9uLWR1cmF0aW9uLWNsZWFyZWQtaW4tdHJhbnNpdGlvbmVu
ZC1jcmFzaC5odG1sCmluZGV4IGM0MzA2NjIuLjgxZjMxZjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3RyYW5zaXRpb25zL3RyYW5zaXRpb24tZHVyYXRpb24tY2xlYXJlZC1pbi10cmFuc2l0aW9u
ZW5kLWNyYXNoLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvdHJhbnNpdGlvbi1k
dXJhdGlvbi1jbGVhcmVkLWluLXRyYW5zaXRpb25lbmQtY3Jhc2guaHRtbApAQCAtMTUsNyArMTUs
NyBAQAogICAgICAgICAgICAgICAgIGVsLnN0eWxlLndlYmtpdFRyYW5zaXRpb25EdXJhdGlvbiA9
ICcnOwogICAgICAgICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAg
ICAgICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKLSAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgfSwgZmFsc2UpOwogICAgICAgICAgICAgZWwuc3R5
bGUuY3NzVGV4dCArPSAnOy13ZWJraXQtdHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIDAuMnM7
YmFja2dyb3VuZC1jb2xvcjojZmZmJwogICAgICAgICA8L3NjcmlwdD4KICAgICA8L2JvZHk+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy90cmFuc2l0aW9uLXNob3J0aGFuZC1k
ZWxheS5odG1sIGIvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvdHJhbnNpdGlvbi1zaG9ydGhhbmQt
ZGVsYXkuaHRtbAppbmRleCA1OGQ1Y2I4Li41MjlmODkyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy90cmFuc2l0aW9ucy90cmFuc2l0aW9uLXNob3J0aGFuZC1kZWxheS5odG1sCisrKyBiL0xheW91
dFRlc3RzL3RyYW5zaXRpb25zL3RyYW5zaXRpb24tc2hvcnRoYW5kLWRlbGF5Lmh0bWwKQEAgLTI3
LDcgKzI3LDcgQEAKICAgICBmdW5jdGlvbiBlbmRUZXN0KCkgewogICAgICAgaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikgewogICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5wYXVz
ZVRyYW5zaXRpb25BdFRpbWVPbkVsZW1lbnRXaXRoSWQoImxlZnQiLCAyLjAsICJ0YXJnZXQiKTsK
LSAgICAgICAgdmFyIGxlZnQgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgndGFyZ2V0JykpLmxlZnQ7CisgICAgICAgIHZhciBsZWZ0ID0gd2luZG93Lmdl
dENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RhcmdldCcpLCBudWxsKS5s
ZWZ0OwogICAgICAgICB2YXIgcmVzdWx0ID0gIlBBU1MiOwogICAgICAgICBpZiAobGVmdCAhPSAi
MTI1cHgiKSB7CiAgICAgICAgICAgcmVzdWx0ID0gIkZBSUwgLSBleHBlY3RlZCAxMjVweCBnb3Qg
IiArIGxlZnQ7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy90cmFuc2l0aW9u
LXRlc3QtaGVscGVycy5qcyBiL0xheW91dFRlc3RzL3RyYW5zaXRpb25zL3RyYW5zaXRpb24tdGVz
dC1oZWxwZXJzLmpzCmluZGV4IDZjNDBhYjguLmZjNjI0ODAgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3RyYW5zaXRpb25zL3RyYW5zaXRpb24tdGVzdC1oZWxwZXJzLmpzCisrKyBiL0xheW91dFRl
c3RzL3RyYW5zaXRpb25zL3RyYW5zaXRpb24tdGVzdC1oZWxwZXJzLmpzCkBAIC02MCw3ICs2MCw3
IEBAIGZ1bmN0aW9uIGNoZWNrRXhwZWN0ZWRWYWx1ZShleHBlY3RlZCwgaW5kZXgpCiAgICAgdmFy
IHBhc3MgPSBmYWxzZTsKICAgICB2YXIgdHJhbnNmb3JtUmVnRXhwID0gL14td2Via2l0LXRyYW5z
Zm9ybShcLlxkKyk/JC87CiAgICAgaWYgKHRyYW5zZm9ybVJlZ0V4cC50ZXN0KHByb3BlcnR5KSkg
ewotICAgICAgICBjb21wdXRlZFZhbHVlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElkKSkud2Via2l0VHJhbnNmb3JtOworICAgICAgICBj
b21wdXRlZFZhbHVlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoZWxlbWVudElkKSwgbnVsbCkud2Via2l0VHJhbnNmb3JtOwogICAgICAgICBpZiAodHlw
ZW9mIGV4cGVjdGVkVmFsdWUgPT0gInN0cmluZyIpCiAgICAgICAgICAgICBwYXNzID0gKGNvbXB1
dGVkVmFsdWUgPT0gZXhwZWN0ZWRWYWx1ZSk7CiAgICAgICAgIGVsc2UgaWYgKHR5cGVvZiBleHBl
Y3RlZFZhbHVlID09ICJudW1iZXIiKSB7CkBAIC03NywxMCArNzcsMTAgQEAgZnVuY3Rpb24gY2hl
Y2tFeHBlY3RlZFZhbHVlKGV4cGVjdGVkLCBpbmRleCkKICAgICAgICAgICAgIH0KICAgICAgICAg
fQogICAgIH0gZWxzZSBpZiAocHJvcGVydHkgPT0gImxpbmVIZWlnaHQiKSB7Ci0gICAgICAgIGNv
bXB1dGVkVmFsdWUgPSBwYXJzZUludCh3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZChlbGVtZW50SWQpKS5saW5lSGVpZ2h0KTsKKyAgICAgICAgY29tcHV0ZWRW
YWx1ZSA9IHBhcnNlSW50KHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKGVsZW1lbnRJZCksIG51bGwpLmxpbmVIZWlnaHQpOwogICAgICAgICBwYXNzID0gaXND
bG9zZUVub3VnaChjb21wdXRlZFZhbHVlLCBleHBlY3RlZFZhbHVlLCB0b2xlcmFuY2UpOwogICAg
IH0gZWxzZSB7Ci0gICAgICAgIHZhciBjb21wdXRlZFN0eWxlID0gd2luZG93LmdldENvbXB1dGVk
U3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElkKSkuZ2V0UHJvcGVydHlDU1NW
YWx1ZShwcm9wZXJ0eSk7CisgICAgICAgIHZhciBjb21wdXRlZFN0eWxlID0gd2luZG93LmdldENv
bXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElkKSwgbnVsbCkuZ2V0
UHJvcGVydHlDU1NWYWx1ZShwcm9wZXJ0eSk7CiAgICAgICAgIGlmIChjb21wdXRlZFN0eWxlLmNz
c1ZhbHVlVHlwZSA9PSBDU1NWYWx1ZS5DU1NfVkFMVUVfTElTVCkgewogICAgICAgICAgICAgdmFy
IHZhbHVlcyA9IFtdOwogICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjb21wdXRlZFN0
eWxlLmxlbmd0aDsgKytpKSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy90
cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMv
dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24uaHRtbAppbmRleCAzZDNiMDY4Li42Y2IwOWQ2IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy90cmFuc2l0aW9uLXRpbWluZy1mdW5j
dGlvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL3RyYW5zaXRpb25zL3RyYW5zaXRpb24tdGltaW5n
LWZ1bmN0aW9uLmh0bWwKQEAgLTM1LDcgKzM1LDcgQEAKICAgICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgYm94ZXMubGVuZ3RoOyArK2kpCiAgICAgICB7CiAgICAgICAgIHZhciBjdXJCb3ggPSBib3hl
c1tpXTsKLSAgICAgICAgdmFyIGN1ckxlZnQgPSBwYXJzZUludCh3aW5kb3cuZ2V0Q29tcHV0ZWRT
dHlsZShjdXJCb3gpLmxlZnQpOworICAgICAgICB2YXIgY3VyTGVmdCA9IHBhcnNlSW50KHdpbmRv
dy5nZXRDb21wdXRlZFN0eWxlKGN1ckJveCwgbnVsbCkubGVmdCk7CiAgICAgICAgIAogICAgICAg
ICB2YXIgZXhwZWN0ZWQgPSBrRXhwZWN0ZWRzW2N1ckJveC5pZF07CiAgICAgICAgIHZhciBwYXNz
ZWQgPSAoTWF0aC5hYnMoY3VyTGVmdCAtIGV4cGVjdGVkKSAvIGV4cGVjdGVkKSA8IDAuMDU7CkBA
IC04MCw0ICs4MCw0IEBACiA8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgogCiA8L2JvZHk+Ci08L2h0
bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvdHJhbnNpdGlvbnMvemVyby1kdXJhdGlvbi13aXRoLW5vbi16ZXJvLWRlbGF5LXN0
YXJ0Lmh0bWwgYi9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy96ZXJvLWR1cmF0aW9uLXdpdGgtbm9u
LXplcm8tZGVsYXktc3RhcnQuaHRtbAppbmRleCA0YTU5NzI1Li43ODc3MWI4IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy96ZXJvLWR1cmF0aW9uLXdpdGgtbm9uLXplcm8tZGVs
YXktc3RhcnQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy96ZXJvLWR1cmF0aW9u
LXdpdGgtbm9uLXplcm8tZGVsYXktc3RhcnQuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogICAgCiAg
ICAgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKICAgICAgIHZhciBleHBlY3RlZCA9IDIwMDsKLSAg
ICAgIHZhciBjdXJyZW50ID0gcGFyc2VJbnQod2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ3RhcmdldCcpKS5sZWZ0KTsKKyAgICAgIHZhciBjdXJyZW50ID0g
cGFyc2VJbnQod2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J3RhcmdldCcpLCBudWxsKS5sZWZ0KTsKICAgICAgIGlmIChjdXJyZW50ID09IGV4cGVjdGVkKQog
ICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0JykuaW5uZXJIVE1MID0gIlBB
U1MgLSBsZWZ0IHByb3BlcnR5IGlzICIgKyBjdXJyZW50ICsgInB4IGFzIGV4cGVjdGVkIjsKICAg
ICAgIGVsc2UKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3RyYW5zaXRpb25zL3plcm8tZHVyYXRp
b24td2l0aG91dC11bml0cy5odG1sIGIvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvemVyby1kdXJh
dGlvbi13aXRob3V0LXVuaXRzLmh0bWwKaW5kZXggZWY4Mzc0Mi4uYTk5ZmM3MyAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvemVyby1kdXJhdGlvbi13aXRob3V0LXVuaXRzLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvemVyby1kdXJhdGlvbi13aXRob3V0LXVu
aXRzLmh0bWwKQEAgLTIyLDcgKzIyLDcgQEAKICAgICBmdW5jdGlvbiB0ZXN0KCkKICAgICB7CiAg
ICAgICAgIHZhciBib3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYm94Jyk7Ci0gICAgICAg
IHZhciBkdXIgPSBwYXJzZUludCh3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShib3gpLndlYmtpdFRy
YW5zaXRpb25EdXJhdGlvbik7CisgICAgICAgIHZhciBkdXIgPSBwYXJzZUludCh3aW5kb3cuZ2V0
Q29tcHV0ZWRTdHlsZShib3gsIG51bGwpLndlYmtpdFRyYW5zaXRpb25EdXJhdGlvbik7CiAgICAg
ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHQnKS5pbm5lckhUTUwgPSAiRHVyYXRp
b24gd2FzICIgKyBkdXIgKyAiIChzaG91bGQgYmUgMCk6ICIgKyAoZHVyID09IDAgPyAiUEFTUyIg
OiAiRkFJTCIpOwogICAgIH0KICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIHRl
c3QsIGZhbHNlKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvdHJhdmVyc2FsL25vZGUtaXRlcmF0
b3ItMDA5Lmh0bWwgYi9MYXlvdXRUZXN0cy90cmF2ZXJzYWwvbm9kZS1pdGVyYXRvci0wMDkuaHRt
bAppbmRleCA5NTQxZjkyLi5kNGJlZGI5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy90cmF2ZXJz
YWwvbm9kZS1pdGVyYXRvci0wMDkuaHRtbAorKysgYi9MYXlvdXRUZXN0cy90cmF2ZXJzYWwvbm9k
ZS1pdGVyYXRvci0wMDkuaHRtbApAQCAtMzQsNyArMzQsNyBAQAogCiAgICAgICBmdW5jdGlvbiB3
YWxrWE1MKHhtbERvYykKICAgICAgIHsKLSAgICAgICAgdmFyIGl0ZXIgPSBkb2N1bWVudC5jcmVh
dGVOb2RlSXRlcmF0b3IoeG1sRG9jLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwgdGVzdE5vZGVG
aXRlcik7CisgICAgICAgIHZhciBpdGVyID0gZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKHht
bERvYywgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIHRlc3ROb2RlRml0ZXIsIGZhbHNlKTsKICAg
ICAgICAgdmFyIGN1ck5vZGU7CiAgICAgICAgIHdoaWxlIChjdXJOb2RlID0gaXRlci5uZXh0Tm9k
ZSgpKSB7CiAgICAgICAgICAgZG9jdW1lbnQud3JpdGUoJzxoMz4nICsgY3VyTm9kZS50YWdOYW1l
ICsgJzwvaDM+PHA+JyArIGN1ck5vZGUudGV4dENvbnRlbnQgKyAnPC9wPicpOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvd2Vic29ja2V0L3Rlc3RzL3NjcmlwdC10ZXN0cy93ZWJzb2NrZXQtZXZl
bnQtdGFyZ2V0LmpzIGIvTGF5b3V0VGVzdHMvd2Vic29ja2V0L3Rlc3RzL3NjcmlwdC10ZXN0cy93
ZWJzb2NrZXQtZXZlbnQtdGFyZ2V0LmpzCmluZGV4IDY0NjhjNGMuLjY3ZDgwNzkgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3dlYnNvY2tldC90ZXN0cy9zY3JpcHQtdGVzdHMvd2Vic29ja2V0LWV2
ZW50LXRhcmdldC5qcworKysgYi9MYXlvdXRUZXN0cy93ZWJzb2NrZXQvdGVzdHMvc2NyaXB0LXRl
c3RzL3dlYnNvY2tldC1ldmVudC10YXJnZXQuanMKQEAgLTI4LDcgKzI4LDcgQEAgd3MuZGlzcGF0
Y2hFdmVudChldnQpOwogc2hvdWxkQmUoIm9wZW5fZXZlbnRfaGFuZGxlZCIsICJ0cnVlIik7CiAK
IG9wZW5fZXZlbnRfaGFuZGxlZCA9IGZhbHNlOwotd3MucmVtb3ZlRXZlbnRMaXN0ZW5lcignb3Bl
bicsIG9wZW5MaXN0ZW5lcik7Cit3cy5yZW1vdmVFdmVudExpc3RlbmVyKCdvcGVuJywgb3Blbkxp
c3RlbmVyLCBmYWxzZSk7CiB3cy5kaXNwYXRjaEV2ZW50KGV2dCk7CiBzaG91bGRCZSgib3Blbl9l
dmVudF9oYW5kbGVkIiwgImZhbHNlIik7CiAKQEAgLTM4LDcgKzM4LDcgQEAgd3MuZGlzcGF0Y2hF
dmVudChldnQpOwogc2hvdWxkQmUoIm1lc3NhZ2VfZXZlbnRfaGFuZGxlZCIsICJ0cnVlIik7CiAK
IG1lc3NhZ2VfZXZlbnRfaGFuZGxlZCA9IGZhbHNlOwotd3MucmVtb3ZlRXZlbnRMaXN0ZW5lcign
bWVzc2FnZScsIG1lc3NhZ2VMaXN0ZW5lcik7Cit3cy5yZW1vdmVFdmVudExpc3RlbmVyKCdtZXNz
YWdlJywgbWVzc2FnZUxpc3RlbmVyLCBmYWxzZSk7CiB3cy5kaXNwYXRjaEV2ZW50KGV2dCk7CiBz
aG91bGRCZSgibWVzc2FnZV9ldmVudF9oYW5kbGVkIiwgImZhbHNlIik7CiAKQEAgLTQ4LDcgKzQ4
LDcgQEAgd3MuZGlzcGF0Y2hFdmVudChldnQpOwogc2hvdWxkQmUoImNsb3NlX2V2ZW50X2hhbmRs
ZWQiLCAidHJ1ZSIpOwogCiBjbG9zZV9ldmVudF9oYW5kbGVkID0gZmFsc2U7Ci13cy5yZW1vdmVF
dmVudExpc3RlbmVyKCdjbG9zZScsIGNsb3NlTGlzdGVuZXIpOword3MucmVtb3ZlRXZlbnRMaXN0
ZW5lcignY2xvc2UnLCBjbG9zZUxpc3RlbmVyLCBmYWxzZSk7CiB3cy5kaXNwYXRjaEV2ZW50KGV2
dCk7CiBzaG91bGRCZSgiY2xvc2VfZXZlbnRfaGFuZGxlZCIsICJmYWxzZSIpOwogCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDEwNTc3YmUu
LjdjMTVhNzUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsOTQgQEAKKzIwMTAtMDYtMDMgIEFuZHJlYXMgS2xpbmcgIDxhbmRy
ZWFzLmtsaW5nQG5va2lhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBJREwgYmluZGluZ3Mgc2hvdWxkIHRocm93IFR5cGVFcnJvciB3aGVuIGNh
bGxlZCB3aXRoIHRvbyBmZXcgYXJndW1lbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMTI1NworCisgICAgICAgIEFsbCBJREwgb3BlcmF0aW9ucyBh
cmUgbm93IHdoYXQgd2FzIHByZXZpb3VzbHkgY2FsbGVkICJSZXF1aXJlc0FsbEFyZ3VtZW50PVJh
aXNlIgorICAgICAgICBTb21lIGludGVyZmFjZXMgaGF2ZSBiZWVuIHVwZGF0ZWQgdG8gcHJlc2Vy
dmUgYmVoYXZpb3Igd2hlcmUgYSBtaXNzaW5nIGFyZ3VtZW50CisgICAgICAgIHdvdWxkIHByZXZp
b3VzbHkgaW1wbHkgbnVsbC9mYWxzZS9OYU4vZXRjLgorCisgICAgICAgIFNwZWMgbGluazoKKyAg
ICAgICAgaHR0cDovL3d3dy53My5vcmcvVFIvV2ViSURMLyNlcy1vcGVyYXRpb25zCisKKyAgICAg
ICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKiBiaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmNwcDoKKyAgICAgICAgKiBiaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmg6CisgICAgICAgICogYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHA6CisgICAgICAgIChXZWJDb3JlOjop
OgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Wb2lkTWV0aG9k
V2l0aEFyZ3MpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25J
bnRNZXRob2RXaXRoQXJncyk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbk9iak1ldGhvZFdpdGhBcmdzKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uU2VyaWFsaXplZFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uQ3VzdG9tQXJnc0FuZEV4Y2VwdGlvbik6CisgICAgICAgIChX
ZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkFkZEV2ZW50TGlzdGVuZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25SZW1vdmVFdmVudExpc3Rl
bmVyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aER5
bmFtaWNGcmFtZUFuZEFyZyk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbldpdGhEeW5hbWljRnJhbWVBbmRPcHRpb25hbEFyZyk6CisgICAgICAgIChXZWJDb3Jl
Ojpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhEeW5hbWljRnJhbWVBbmRVc2VyR2VzdHVy
ZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhEeW5h
bWljRnJhbWVBbmRVc2VyR2VzdHVyZUFTQUQpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoTm9uT3B0aW9uYWxBcmdBbmRPcHRpb25hbEFyZyk6
CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhO
b25PcHRpb25hbEFyZ0FuZFR3b09wdGlvbmFsQXJncyk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2QxKToKKyAgICAgICAgKFdlYkNv
cmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZDIpOgorICAgICAg
ICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kMyk6
CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRN
ZXRob2Q0KToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmg6
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5oOgorICAg
ICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmoubW06CisgICAgICAg
ICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsOgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9i
akludGVybmFsOjp2b2lkTWV0aG9kV2l0aEFyZ3NDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3Jl
OjpUZXN0T2JqSW50ZXJuYWw6OmludE1ldGhvZFdpdGhBcmdzQ2FsbGJhY2spOgorICAgICAgICAo
V2ViQ29yZTo6VGVzdE9iakludGVybmFsOjpvYmpNZXRob2RXaXRoQXJnc0NhbGxiYWNrKToKKyAg
ICAgICAgKFdlYkNvcmU6OlRlc3RPYmpJbnRlcm5hbDo6c2VyaWFsaXplZFZhbHVlQ2FsbGJhY2sp
OgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9iakludGVybmFsOjpjdXN0b21BcmdzQW5kRXhjZXB0
aW9uQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9iakludGVybmFsOjp3aXRoRHlu
YW1pY0ZyYW1lQW5kQXJnQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9iakludGVy
bmFsOjp3aXRoRHluYW1pY0ZyYW1lQW5kT3B0aW9uYWxBcmdDYWxsYmFjayk6CisgICAgICAgIChX
ZWJDb3JlOjpUZXN0T2JqSW50ZXJuYWw6OndpdGhEeW5hbWljRnJhbWVBbmRVc2VyR2VzdHVyZUNh
bGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpJbnRlcm5hbDo6d2l0aER5bmFtaWNG
cmFtZUFuZFVzZXJHZXN0dXJlQVNBRENhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RP
YmpJbnRlcm5hbDo6bWV0aG9kV2l0aE5vbk9wdGlvbmFsQXJnQW5kT3B0aW9uYWxBcmdDYWxsYmFj
ayk6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqSW50ZXJuYWw6Om1ldGhvZFdpdGhOb25PcHRp
b25hbEFyZ0FuZFR3b09wdGlvbmFsQXJnc0NhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlRl
c3RPYmpJbnRlcm5hbDo6b3ZlcmxvYWRlZE1ldGhvZDFDYWxsYmFjayk6CisgICAgICAgIChXZWJD
b3JlOjpUZXN0T2JqSW50ZXJuYWw6Om92ZXJsb2FkZWRNZXRob2QyQ2FsbGJhY2spOgorICAgICAg
ICAoV2ViQ29yZTo6VGVzdE9iakludGVybmFsOjpvdmVybG9hZGVkTWV0aG9kM0NhbGxiYWNrKToK
KyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpJbnRlcm5hbDo6b3ZlcmxvYWRlZE1ldGhvZDRDYWxs
YmFjayk6CisgICAgICAgIChXZWJDb3JlOjpDb25maWd1cmVWOFRlc3RPYmpUZW1wbGF0ZSk6Cisg
ICAgICAgICogY3NzL1dlYktpdENTU01hdHJpeC5oOgorICAgICAgICAqIGNzcy9XZWJLaXRDU1NN
YXRyaXguaWRsOgorICAgICAgICAqIGRvbS9DbGlwYm9hcmQuaWRsOgorICAgICAgICAqIGRvbS9E
b2N1bWVudC5pZGw6CisgICAgICAgICogaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MU2VsZWN0RWxlbWVudDo6YWRkKToKKyAgICAgICAgKiBodG1sL0hU
TUxTZWxlY3RFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5pZGw6
CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9EYXRhR3JpZC5qczoKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5EYXRhR3JpZE5vZGUucHJvdG90eXBlLmNyZWF0ZUNlbGwpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLkRhdGFHcmlkTm9kZS5wcm90b3R5cGUuaXNFdmVudFdpdGhpbkRpc2Nsb3N1
cmVUcmlhbmdsZSk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9EcmF3ZXIuanM6Cisg
ICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1BhbmVsLmpzOgorICAgICAgICAq
IGluc3BlY3Rvci9mcm9udC1lbmQvSW5qZWN0ZWRTY3JpcHQuanM6CisgICAgICAgIChpbmplY3Rl
ZFNjcmlwdENvbnN0cnVjdG9yLik6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNv
dXJjZXNQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZUdyYXBoLnByb3Rv
dHlwZS5yZWZyZXNoTGFiZWxQb3NpdGlvbnMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291
cmNlR3JhcGgucHJvdG90eXBlLnJlZnJlc2gpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1l
bmQvU3R5bGVzU2lkZWJhclBhbmUuanM6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9U
aW1lbGluZU92ZXJ2aWV3UGFuZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZU92
ZXJ2aWV3UGFuZS5wcm90b3R5cGUuX2NyZWF0ZVRpbWVsaW5lQ2F0ZWdvcnlTdGF0dXNCYXJDaGVj
a2JveCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVDYXRlZ29yeUdyYXBoLnByb3Rv
dHlwZS5hZGRDaHVuayk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVBh
bmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lUmVjb3JkR3JhcGhSb3cpOgor
ICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLmFkZFBhbmVsVG9vbGJhckljb24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLmFu
aW1hdGVTdHlsZSk6CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuaDoKKyAgICAgICAgKiBwYWdl
L0RPTVdpbmRvdy5pZGw6CisgICAgICAgICogcGx1Z2lucy9QbHVnaW5BcnJheS5oOgorICAgICAg
ICAqIHBsdWdpbnMvUGx1Z2luQXJyYXkuaWRsOgorICAgICAgICAqIHhtbC9YTUxIdHRwUmVxdWVz
dC5pZGw6CisKIDIwMTAtMDYtMDMgIEtpbSBHcsO2bmhvbG0gIDxraW0uMS5ncm9uaG9sbUBub2tp
YS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gSGF1c21hbm4uCmRpZmYgLS1naXQg
YS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtIGIvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQppbmRleCA1NzE5NWZjLi4xYjM5NTJj
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBt
CisrKyBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KQEAgLTE4
NDIsMTYgKzE4NDIsMjcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAkaW1wbFR5cGUqIGltcCA9IHN0YXRpY19jYXN0
PCRpbXBsVHlwZSo+KGNhc3RlZFRoaXMtPmltcGwoKSk7XG4iKTsKICAgICAgICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiAgICAkcG9kVHlwZSBwb2RJbXAoKmltcCk7XG4iKSBpZiAkcG9k
VHlwZTsKIAorICAgICAgICAgICAgICAgIG15ICRoYXNPcHRpb25hbEFyZ3VtZW50cyA9IDA7Cisg
ICAgICAgICAgICAgICAgbXkgJGZpcnN0T3B0aW9uYWxBcmd1bWVudCA9IDA7CisgICAgICAgICAg
ICAgICAgbXkgJGkgPSAwOworICAgICAgICAgICAgICAgIGZvcmVhY2ggbXkgJHBhcmFtZXRlciAo
QHskZnVuY3Rpb24tPnBhcmFtZXRlcnN9KSB7CisgICAgICAgICAgICAgICAgICAgIGlmICgkcGFy
YW1ldGVyLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiT3B0aW9uYWwifSkgeworICAgICAgICAgICAg
ICAgICAgICAgICAgJGhhc09wdGlvbmFsQXJndW1lbnRzID0gMTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICRmaXJzdE9wdGlvbmFsQXJndW1lbnQgPSAkaTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGxhc3Q7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgKysk
aTsKKyAgICAgICAgICAgICAgICB9CisKICAgICAgICAgICAgICAgICBteSAkbnVtUGFyYW1ldGVy
cyA9IEB7JGZ1bmN0aW9uLT5wYXJhbWV0ZXJzfTsKIAotICAgICAgICAgICAgICAgIG15ICRyZXF1
aXJlc0FsbEFyZ3VtZW50cyA9ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0
ZXMtPnsiUmVxdWlyZXNBbGxBcmd1bWVudHMifTsKLSAgICAgICAgICAgICAgICBpZiAoJHJlcXVp
cmVzQWxsQXJndW1lbnRzKSB7CisgICAgICAgICAgICAgICAgaWYgKCRudW1QYXJhbWV0ZXJzID4g
MCAmJiAoISRoYXNPcHRpb25hbEFyZ3VtZW50cyB8fCAoJGhhc09wdGlvbmFsQXJndW1lbnRzICYm
ICRmaXJzdE9wdGlvbmFsQXJndW1lbnQgPiAwKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYg
KCRoYXNPcHRpb25hbEFyZ3VtZW50cykgeworICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICIgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8ICRmaXJzdE9wdGlv
bmFsQXJndW1lbnQpXG4iKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAg
ICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmIChleGVjLT5hcmd1bWVu
dENvdW50KCkgPCAkbnVtUGFyYW1ldGVycylcbiIpOwotICAgICAgICAgICAgICAgICAgICAgICAg
aWYgKCRyZXF1aXJlc0FsbEFyZ3VtZW50cyBlcSAiUmFpc2UiKSB7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHJldHVybiB0aHJvd0Vycm9y
KGV4ZWMsIFN5bnRheEVycm9yLCBcIk5vdCBlbm91Z2ggYXJndW1lbnRzXCIpO1xuIik7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTtcbiIpOwot
ICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICByZXR1cm4gdGhyb3dFcnJv
cihleGVjLCBUeXBlRXJyb3IsIFwiTm90IGVub3VnaCBhcmd1bWVudHNcIik7XG4iKTsKICAgICAg
ICAgICAgICAgICB9CiAKICAgICAgICAgICAgICAgICBpZiAoQHskZnVuY3Rpb24tPnJhaXNlc0V4
Y2VwdGlvbnN9KSB7CkBAIC0xODcyLDggKzE4ODMsNiBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRh
dGlvbgogICAgICAgICAgICAgICAgICAgICBteSAkcGFyYW1JbmRleCA9IDA7CiAgICAgICAgICAg
ICAgICAgICAgIG15ICRmdW5jdGlvblN0cmluZyA9ICgkcG9kVHlwZSA/ICJwb2RJbXAuIiA6ICJp
bXAtPiIpIC4gJGZ1bmN0aW9uSW1wbGVtZW50YXRpb25OYW1lIC4gIigiOwogCi0gICAgICAgICAg
ICAgICAgICAgIG15ICRoYXNPcHRpb25hbEFyZ3VtZW50cyA9IDA7Ci0KICAgICAgICAgICAgICAg
ICAgICAgaWYgKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3Vz
dG9tQXJndW1lbnRIYW5kbGluZyJ9KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIiAgICBTY3JpcHRDYWxsU3RhY2sgY2FsbFN0YWNrKGV4ZWMsICRudW1QYXJh
bWV0ZXJzKTtcbiIpOwogICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxJbmNsdWRlc3siU2Ny
aXB0Q2FsbFN0YWNrLmgifSA9IDE7CkBAIC0xODk1LDEzICsxOTA0LDEzIEBAIHN1YiBHZW5lcmF0
ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICAgICAgICAgICAgICAkcGFyYW1JbmRleCsrOwog
ICAgICAgICAgICAgICAgICAgICB9CiAKKyAgICAgICAgICAgICAgICAgICAgaWYgKCRoYXNPcHRp
b25hbEFyZ3VtZW50cykgeworICAgICAgICAgICAgICAgICAgICAgICAgIyBHZW5lcmF0ZSBlYXJs
eSBjYWxsIGlmIHRoZXJlIGFyZSBlbm91Z2ggcGFyYW1ldGVycy4KKyAgICAgICAgICAgICAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiXG4gICAgaW50IGFyZ3NDb3VudCA9IGV4ZWMtPmFy
Z3VtZW50Q291bnQoKTtcbiIpOworICAgICAgICAgICAgICAgICAgICB9CisKICAgICAgICAgICAg
ICAgICAgICAgZm9yZWFjaCBteSAkcGFyYW1ldGVyIChAeyRmdW5jdGlvbi0+cGFyYW1ldGVyc30p
IHsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkcGFyYW1ldGVyLT5leHRlbmRlZEF0dHJp
YnV0ZXMtPnsiT3B0aW9uYWwifSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgR2Vu
ZXJhdGUgZWFybHkgY2FsbCBpZiB0aGVyZSBhcmUgZW5vdWdoIHBhcmFtZXRlcnMuCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgKCEkaGFzT3B0aW9uYWxBcmd1bWVudHMpIHsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJcbiAgICBpbnQg
YXJnc0NvdW50ID0gZXhlYy0+YXJndW1lbnRDb3VudCgpO1xuIik7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICRoYXNPcHRpb25hbEFyZ3VtZW50cyA9IDE7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAiICAgIGlmIChhcmdzQ291bnQgPCAiIC4gKCRwYXJhbUluZGV4ICsgMSkgLiAiKSB7
XG4iKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHZW5lcmF0ZUltcGxlbWVudGF0aW9u
RnVuY3Rpb25DYWxsKCRmdW5jdGlvbiwgJGZ1bmN0aW9uU3RyaW5nLCAkcGFyYW1JbmRleCwgIiAg
ICAiIHggMiwgJHBvZFR5cGUsICRpbXBsQ2xhc3NOYW1lKTsKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICB9XG5cbiIpOwpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbSBiL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KaW5kZXggNWU0ZTQ5ZS4uOGY4NzljMCAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQorKysg
Yi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCkBAIC0xMTM0LDE2
ICsxMTM0LDI3IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gJHtuYW1lfUNhbGxiYWNr
KGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiAgICAgSU5DX1NUQVRTKFwiRE9NLiRpbXBsQ2xh
c3NOYW1lLiRuYW1lXCIpOwogRU5ECiAKKyAgICBteSAkaGFzT3B0aW9uYWxBcmd1bWVudHMgPSAw
OworICAgIG15ICRmaXJzdE9wdGlvbmFsQXJndW1lbnQgPSAwOworICAgIG15ICRpID0gMDsKKyAg
ICBmb3JlYWNoIG15ICRwYXJhbWV0ZXIgKEB7JGZ1bmN0aW9uLT5wYXJhbWV0ZXJzfSkgeworICAg
ICAgICBpZiAoJHBhcmFtZXRlci0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik9wdGlvbmFsIn0pIHsK
KyAgICAgICAgICAgICRoYXNPcHRpb25hbEFyZ3VtZW50cyA9IDE7CisgICAgICAgICAgICAkZmly
c3RPcHRpb25hbEFyZ3VtZW50ID0gJGk7CisgICAgICAgICAgICBsYXN0OworICAgICAgICB9Cisg
ICAgICAgICsrJGk7CisgICAgfQorCiAgICAgbXkgJG51bVBhcmFtZXRlcnMgPSBAeyRmdW5jdGlv
bi0+cGFyYW1ldGVyc307CiAKLSAgICBteSAkcmVxdWlyZXNBbGxBcmd1bWVudHMgPSAkZnVuY3Rp
b24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlJlcXVpcmVzQWxsQXJndW1lbnRz
In07Ci0gICAgaWYgKCRyZXF1aXJlc0FsbEFyZ3VtZW50cykgewotICAgICAgICBwdXNoKEBpbXBs
Q29udGVudERlY2xzLCAiICAgIGlmIChhcmdzLkxlbmd0aCgpIDwgJG51bVBhcmFtZXRlcnMpXG4i
KTsKLSAgICAgICAgaWYgKCRyZXF1aXJlc0FsbEFyZ3VtZW50cyBlcSAiUmFpc2UiKSB7Ci0gICAg
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgICAgICByZXR1cm4gdGhyb3dFcnJv
cihcIk5vdCBlbm91Z2ggYXJndW1lbnRzXCIsIFY4UHJveHk6OlN5bnRheEVycm9yKTtcbiIpOwor
ICAgIGlmICgkbnVtUGFyYW1ldGVycyA+IDAgJiYgKCEkaGFzT3B0aW9uYWxBcmd1bWVudHMgfHwg
KCRoYXNPcHRpb25hbEFyZ3VtZW50cyAmJiAkZmlyc3RPcHRpb25hbEFyZ3VtZW50ID4gMCkpKSB7
CisgICAgICAgIGlmICgkaGFzT3B0aW9uYWxBcmd1bWVudHMpIHsKKyAgICAgICAgICAgIHB1c2go
QGltcGxDb250ZW50RGVjbHMsICIgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAkZmlyc3RPcHRpb25h
bEFyZ3VtZW50KVxuIik7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudERlY2xzLCAiICAgICAgICByZXR1cm4gdjg6OkhhbmRsZTx2ODo6VmFsdWU+KCk7XG4i
KTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICIgICAgaWYgKGFyZ3MuTGVu
Z3RoKCkgPCAkbnVtUGFyYW1ldGVycylcbiIpOwogICAgICAgICB9CisgICAgICAgIHB1c2goQGlt
cGxDb250ZW50RGVjbHMsICIgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKFwiTm90IGVub3VnaCBh
cmd1bWVudHNcIiwgVjhQcm94eTo6VHlwZUVycm9yKTtcbiIpOwogICAgIH0KIAogICAgIGlmIChJ
c1BvZFR5cGUoJGltcGxDbGFzc05hbWUpKSB7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmouY3BwIGIvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmNwcAppbmRleCAxNjUw
ZThhLi4wMDE4Mjk2IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9H
T2JqZWN0L1dlYktpdERPTVRlc3RPYmouY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE9iai5jcHAKQEAgLTExNyw0MiArMTE3LDYgQEAg
d2Via2l0X2RvbV90ZXN0X29ial9vYmpfbWV0aG9kX3dpdGhfYXJncyhXZWJLaXRET01UZXN0T2Jq
KiBzZWxmLCBnbG9uZyBpbnRfYXJnLAogICAgIHJldHVybiByZXM7CiB9CiAKLVdlYktpdERPTVRl
c3RPYmoqIAotd2Via2l0X2RvbV90ZXN0X29ial9tZXRob2RfdGhhdF9yZXF1aXJlc19hbGxfYXJn
cyhXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBnY2hhciogIHN0cl9hcmcsIFdlYktpdERPTVRlc3RP
YmoqICBvYmpfYXJnKQotewotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChzZWxmLCAwKTsKLSAg
ICBXZWJDb3JlOjpUZXN0T2JqICogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKLSAgICBnX3Jl
dHVybl92YWxfaWZfZmFpbCAoc3RyX2FyZywgMCk7Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwg
KG9ial9hcmcsIDApOwotICAgIFdlYkNvcmU6OlN0cmluZyBfZ19zdHJfYXJnID0gV2ViQ29yZTo6
U3RyaW5nOjpmcm9tVVRGOChzdHJfYXJnKTsKLSAgICBXZWJDb3JlOjpUZXN0T2JqICogX2dfb2Jq
X2FyZyA9IFdlYktpdDo6Y29yZShvYmpfYXJnKTsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbCAo
X2dfb2JqX2FyZywgMCk7Ci0gICAgUGFzc1JlZlB0cjxXZWJDb3JlOjpUZXN0T2JqPiBnX3JlcyA9
IFdURjo6Z2V0UHRyKGl0ZW0tPm1ldGhvZFRoYXRSZXF1aXJlc0FsbEFyZ3MoX2dfc3RyX2FyZywg
X2dfb2JqX2FyZykpOwotICAgIFdlYktpdERPTVRlc3RPYmoqICByZXMgPSBzdGF0aWNfY2FzdDxX
ZWJLaXRET01UZXN0T2JqKiA+KFdlYktpdDo6a2l0KGdfcmVzLmdldCgpKSk7Ci0gICAgcmV0dXJu
IHJlczsKLX0KLQotV2ViS2l0RE9NVGVzdE9iaiogCi13ZWJraXRfZG9tX3Rlc3Rfb2JqX21ldGhv
ZF90aGF0X3JlcXVpcmVzX2FsbF9hcmdzX2FuZF90aHJvd3MoV2ViS2l0RE9NVGVzdE9iaiogc2Vs
ZiwgZ2NoYXIqICBzdHJfYXJnLCBXZWJLaXRET01UZXN0T2JqKiAgb2JqX2FyZywgR0Vycm9yICoq
ZXJyb3IpCi17Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwgKHNlbGYsIDApOwotICAgIFdlYkNv
cmU6OlRlc3RPYmogKiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwotICAgIGdfcmV0dXJuX3Zh
bF9pZl9mYWlsIChzdHJfYXJnLCAwKTsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbCAob2JqX2Fy
ZywgMCk7Ci0gICAgV2ViQ29yZTo6U3RyaW5nIF9nX3N0cl9hcmcgPSBXZWJDb3JlOjpTdHJpbmc6
OmZyb21VVEY4KHN0cl9hcmcpOwotICAgIFdlYkNvcmU6OlRlc3RPYmogKiBfZ19vYmpfYXJnID0g
V2ViS2l0Ojpjb3JlKG9ial9hcmcpOwotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChfZ19vYmpf
YXJnLCAwKTsKLSAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBQYXNzUmVm
UHRyPFdlYkNvcmU6OlRlc3RPYmo+IGdfcmVzID0gV1RGOjpnZXRQdHIoaXRlbS0+bWV0aG9kVGhh
dFJlcXVpcmVzQWxsQXJnc0FuZFRocm93cyhfZ19zdHJfYXJnLCBfZ19vYmpfYXJnLCBlYykpOwot
ICAgIGlmIChlYykgewotICAgICAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlRGVzY3JpcHRpb24g
ZWNkZXNjOwotICAgICAgICBXZWJDb3JlOjpnZXRFeGNlcHRpb25Db2RlRGVzY3JpcHRpb24oZWMs
IGVjZGVzYyk7Ci0gICAgICAgIGdfc2V0X2Vycm9yX2xpdGVyYWwoZXJyb3IsIGdfcXVhcmtfZnJv
bV9zdHJpbmcoIldFQktJVF9ET00iKSwgZWNkZXNjLmNvZGUsIGVjZGVzYy5uYW1lKTsKLSAgICB9
Ci0gICAgV2ViS2l0RE9NVGVzdE9iaiogIHJlcyA9IHN0YXRpY19jYXN0PFdlYktpdERPTVRlc3RP
YmoqID4oV2ViS2l0OjpraXQoZ19yZXMuZ2V0KCkpKTsKLSAgICByZXR1cm4gcmVzOwotfQotCiB2
b2lkCiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NlcmlhbGl6ZWRfdmFsdWUoV2ViS2l0RE9NVGVzdE9i
aiogc2VsZiwgV2ViS2l0RE9NU2VyaWFsaXplZFNjcmlwdFZhbHVlKiAgc2VyaWFsaXplZF9hcmcp
CiB7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dl
YktpdERPTVRlc3RPYmouaCBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3Qv
V2ViS2l0RE9NVGVzdE9iai5oCmluZGV4IDcxNWZkMjIuLjg5YzRiODQgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE9iai5oCisr
KyBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE9i
ai5oCkBAIC02NCwxMiArNjQsNiBAQCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX29ial9tZXRob2QoV2Vi
S2l0RE9NVGVzdE9iaiogc2VsZik7CiBXRUJLSVRfQVBJIFdlYktpdERPTVRlc3RPYmoqIAogd2Vi
a2l0X2RvbV90ZXN0X29ial9vYmpfbWV0aG9kX3dpdGhfYXJncyhXZWJLaXRET01UZXN0T2JqKiBz
ZWxmLCBnbG9uZyBpbnRfYXJnLCBnY2hhciogIHN0cl9hcmcsIFdlYktpdERPTVRlc3RPYmoqICBv
YmpfYXJnKTsKIAotV0VCS0lUX0FQSSBXZWJLaXRET01UZXN0T2JqKiAKLXdlYmtpdF9kb21fdGVz
dF9vYmpfbWV0aG9kX3RoYXRfcmVxdWlyZXNfYWxsX2FyZ3MoV2ViS2l0RE9NVGVzdE9iaiogc2Vs
ZiwgZ2NoYXIqICBzdHJfYXJnLCBXZWJLaXRET01UZXN0T2JqKiAgb2JqX2FyZyk7Ci0KLVdFQktJ
VF9BUEkgV2ViS2l0RE9NVGVzdE9iaiogCi13ZWJraXRfZG9tX3Rlc3Rfb2JqX21ldGhvZF90aGF0
X3JlcXVpcmVzX2FsbF9hcmdzX2FuZF90aHJvd3MoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgZ2No
YXIqICBzdHJfYXJnLCBXZWJLaXRET01UZXN0T2JqKiAgb2JqX2FyZywgR0Vycm9yICoqZXJyb3Ip
OwotCiBXRUJLSVRfQVBJIHZvaWQKIHdlYmtpdF9kb21fdGVzdF9vYmpfc2VyaWFsaXplZF92YWx1
ZShXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBXZWJLaXRET01TZXJpYWxpemVkU2NyaXB0VmFsdWUq
ICBzZXJpYWxpemVkX2FyZyk7CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RPYmouY3BwCmluZGV4IDgxOTFjMWIuLjQ5N2EwNjcgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKKysrIGIvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcApAQCAtMTIxLDcgKzEyMSw3IEBA
IGJvb2wgSlNUZXN0T2JqQ29uc3RydWN0b3I6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50CiAjZGVmaW5lIFRIVU5LX0dFTkVSQVRPUihnZW5lcmF0
b3IpCiAjZW5kaWYKIAotc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdE9ialByb3Rv
dHlwZVRhYmxlVmFsdWVzWzI5XSA9CitzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0
T2JqUHJvdG90eXBlVGFibGVWYWx1ZXNbMjddID0KIHsKICAgICB7ICJ2b2lkTWV0aG9kIiwgRG9u
dERlbGV0ZSB8IEZ1bmN0aW9uLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+
KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVm9pZE1ldGhvZCksIChpbnRwdHJfdCkwIFRIVU5L
X0dFTkVSQVRPUigwKSB9LAogICAgIHsgInZvaWRNZXRob2RXaXRoQXJncyIsIERvbnREZWxldGUg
fCBGdW5jdGlvbiwgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvblZvaWRNZXRob2RXaXRoQXJncyksIChpbnRwdHJfdCkzIFRIVU5L
X0dFTkVSQVRPUigwKSB9LApAQCAtMTI5LDggKzEyOSw2IEBAIHN0YXRpYyBjb25zdCBIYXNoVGFi
bGVWYWx1ZSBKU1Rlc3RPYmpQcm90b3R5cGVUYWJsZVZhbHVlc1syOV0gPQogICAgIHsgImludE1l
dGhvZFdpdGhBcmdzIiwgRG9udERlbGV0ZSB8IEZ1bmN0aW9uLCAoaW50cHRyX3Qpc3RhdGljX2Nh
c3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uSW50TWV0aG9kV2l0
aEFyZ3MpLCAoaW50cHRyX3QpMyBUSFVOS19HRU5FUkFUT1IoMCkgfSwKICAgICB7ICJvYmpNZXRo
b2QiLCBEb250RGVsZXRlIHwgRnVuY3Rpb24sIChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVG
dW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PYmpNZXRob2QpLCAoaW50cHRyX3Qp
MCBUSFVOS19HRU5FUkFUT1IoMCkgfSwKICAgICB7ICJvYmpNZXRob2RXaXRoQXJncyIsIERvbnRE
ZWxldGUgfCBGdW5jdGlvbiwgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk9iak1ldGhvZFdpdGhBcmdzKSwgKGludHB0cl90KTMg
VEhVTktfR0VORVJBVE9SKDApIH0sCi0gICAgeyAibWV0aG9kVGhhdFJlcXVpcmVzQWxsQXJncyIs
IERvbnREZWxldGUgfCBGdW5jdGlvbiwgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0
aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFRoYXRSZXF1aXJlc0FsbEFyZ3Mp
LCAoaW50cHRyX3QpMiBUSFVOS19HRU5FUkFUT1IoMCkgfSwKLSAgICB7ICJtZXRob2RUaGF0UmVx
dWlyZXNBbGxBcmdzQW5kVGhyb3dzIiwgRG9udERlbGV0ZSB8IEZ1bmN0aW9uLCAoaW50cHRyX3Qp
c3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0
aG9kVGhhdFJlcXVpcmVzQWxsQXJnc0FuZFRocm93cyksIChpbnRwdHJfdCkyIFRIVU5LX0dFTkVS
QVRPUigwKSB9LAogICAgIHsgInNlcmlhbGl6ZWRWYWx1ZSIsIERvbnREZWxldGUgfCBGdW5jdGlv
biwgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvblNlcmlhbGl6ZWRWYWx1ZSksIChpbnRwdHJfdCkxIFRIVU5LX0dFTkVSQVRPUigw
KSB9LAogICAgIHsgIm1ldGhvZFdpdGhFeGNlcHRpb24iLCBEb250RGVsZXRlIHwgRnVuY3Rpb24s
IChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25NZXRob2RXaXRoRXhjZXB0aW9uKSwgKGludHB0cl90KTAgVEhVTktfR0VORVJBVE9S
KDApIH0sCiAgICAgeyAiY3VzdG9tTWV0aG9kIiwgRG9udERlbGV0ZSB8IEZ1bmN0aW9uLCAoaW50
cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uQ3VzdG9tTWV0aG9kKSwgKGludHB0cl90KTAgVEhVTktfR0VORVJBVE9SKDApIH0sCkBAIC0x
NTUsNyArMTUzLDcgQEAgc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdE9ialByb3Rv
dHlwZVRhYmxlVmFsdWVzWzI5XSA9CiB9OwogCiAjdW5kZWYgVEhVTktfR0VORVJBVE9SCi1zdGF0
aWMgSlNDX0NPTlNUX0hBU0hUQUJMRSBIYXNoVGFibGUgSlNUZXN0T2JqUHJvdG90eXBlVGFibGUg
PSB7IDY5LCA2MywgSlNUZXN0T2JqUHJvdG90eXBlVGFibGVWYWx1ZXMsIDAgfTsKK3N0YXRpYyBK
U0NfQ09OU1RfSEFTSFRBQkxFIEhhc2hUYWJsZSBKU1Rlc3RPYmpQcm90b3R5cGVUYWJsZSA9IHsg
NjcsIDYzLCBKU1Rlc3RPYmpQcm90b3R5cGVUYWJsZVZhbHVlcywgMCB9OwogY29uc3QgQ2xhc3NJ
bmZvIEpTVGVzdE9ialByb3RvdHlwZTo6c19pbmZvID0geyAiVGVzdE9ialByb3RvdHlwZSIsIDAs
ICZKU1Rlc3RPYmpQcm90b3R5cGVUYWJsZSwgMCB9OwogCiBKU09iamVjdCogSlNUZXN0T2JqUHJv
dG90eXBlOjpzZWxmKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCkKQEAgLTQxNSw2ICs0MTMsOCBAQCBKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25Wb2lkTWV0aG9kV2l0aEFyZ3MoRXhlY1N0YXRlKiBleAogICAgICAgICBy
ZXR1cm4gdGhyb3dFcnJvcihleGVjLCBUeXBlRXJyb3IpOwogICAgIEpTVGVzdE9iaiogY2FzdGVk
VGhpcyA9IHN0YXRpY19jYXN0PEpTVGVzdE9iaio+KGFzT2JqZWN0KHRoaXNWYWx1ZSkpOwogICAg
IFRlc3RPYmoqIGltcCA9IHN0YXRpY19jYXN0PFRlc3RPYmoqPihjYXN0ZWRUaGlzLT5pbXBsKCkp
OworICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAzKQorICAgICAgICByZXR1cm4gdGhy
b3dFcnJvcihleGVjLCBUeXBlRXJyb3IsICJOb3QgZW5vdWdoIGFyZ3VtZW50cyIpOwogICAgIGlu
dCBpbnRBcmcgPSBleGVjLT5hcmd1bWVudCgwKS50b0ludDMyKGV4ZWMpOwogICAgIGNvbnN0IFN0
cmluZyYgc3RyQXJnID0gdXN0cmluZ1RvU3RyaW5nKGV4ZWMtPmFyZ3VtZW50KDEpLnRvU3RyaW5n
KGV4ZWMpKTsKICAgICBUZXN0T2JqKiBvYmpBcmcgPSB0b1Rlc3RPYmooZXhlYy0+YXJndW1lbnQo
MikpOwpAQCAtNDQzLDYgKzQ0Myw4IEBAIEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbkludE1ldGhvZFdpdGhBcmdzKEV4ZWNTdGF0ZSogZXhlCiAgICAgICAg
IHJldHVybiB0aHJvd0Vycm9yKGV4ZWMsIFR5cGVFcnJvcik7CiAgICAgSlNUZXN0T2JqKiBjYXN0
ZWRUaGlzID0gc3RhdGljX2Nhc3Q8SlNUZXN0T2JqKj4oYXNPYmplY3QodGhpc1ZhbHVlKSk7CiAg
ICAgVGVzdE9iaiogaW1wID0gc3RhdGljX2Nhc3Q8VGVzdE9iaio+KGNhc3RlZFRoaXMtPmltcGwo
KSk7CisgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDMpCisgICAgICAgIHJldHVybiB0
aHJvd0Vycm9yKGV4ZWMsIFR5cGVFcnJvciwgIk5vdCBlbm91Z2ggYXJndW1lbnRzIik7CiAgICAg
aW50IGludEFyZyA9IGV4ZWMtPmFyZ3VtZW50KDApLnRvSW50MzIoZXhlYyk7CiAgICAgY29uc3Qg
U3RyaW5nJiBzdHJBcmcgPSB1c3RyaW5nVG9TdHJpbmcoZXhlYy0+YXJndW1lbnQoMSkudG9TdHJp
bmcoZXhlYykpOwogICAgIFRlc3RPYmoqIG9iakFyZyA9IHRvVGVzdE9iaihleGVjLT5hcmd1bWVu
dCgyKSk7CkBAIC00NzIsNiArNDc0LDggQEAgSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uT2JqTWV0aG9kV2l0aEFyZ3MoRXhlY1N0YXRlKiBleGUKICAgICAg
ICAgcmV0dXJuIHRocm93RXJyb3IoZXhlYywgVHlwZUVycm9yKTsKICAgICBKU1Rlc3RPYmoqIGNh
c3RlZFRoaXMgPSBzdGF0aWNfY2FzdDxKU1Rlc3RPYmoqPihhc09iamVjdCh0aGlzVmFsdWUpKTsK
ICAgICBUZXN0T2JqKiBpbXAgPSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhpcy0+aW1w
bCgpKTsKKyAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMykKKyAgICAgICAgcmV0dXJu
IHRocm93RXJyb3IoZXhlYywgVHlwZUVycm9yLCAiTm90IGVub3VnaCBhcmd1bWVudHMiKTsKICAg
ICBpbnQgaW50QXJnID0gZXhlYy0+YXJndW1lbnQoMCkudG9JbnQzMihleGVjKTsKICAgICBjb25z
dCBTdHJpbmcmIHN0ckFyZyA9IHVzdHJpbmdUb1N0cmluZyhleGVjLT5hcmd1bWVudCgxKS50b1N0
cmluZyhleGVjKSk7CiAgICAgVGVzdE9iaiogb2JqQXJnID0gdG9UZXN0T2JqKGV4ZWMtPmFyZ3Vt
ZW50KDIpKTsKQEAgLTQ4MSw0MiArNDg1LDYgQEAgSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uT2JqTWV0aG9kV2l0aEFyZ3MoRXhlY1N0YXRlKiBleGUKICAg
ICByZXR1cm4gcmVzdWx0OwogfQogCi1KU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25NZXRob2RUaGF0UmVxdWlyZXNBbGxBcmdzKEV4ZWNTdGF0ZSogZXhlYykK
LXsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKLSAgICBp
ZiAoIXRoaXNWYWx1ZS5pbmhlcml0cygmSlNUZXN0T2JqOjpzX2luZm8pKQotICAgICAgICByZXR1
cm4gdGhyb3dFcnJvcihleGVjLCBUeXBlRXJyb3IpOwotICAgIEpTVGVzdE9iaiogY2FzdGVkVGhp
cyA9IHN0YXRpY19jYXN0PEpTVGVzdE9iaio+KGFzT2JqZWN0KHRoaXNWYWx1ZSkpOwotICAgIFRl
c3RPYmoqIGltcCA9IHN0YXRpY19jYXN0PFRlc3RPYmoqPihjYXN0ZWRUaGlzLT5pbXBsKCkpOwot
ICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAyKQotICAgICAgICByZXR1cm4ganNVbmRl
ZmluZWQoKTsKLSAgICBjb25zdCBTdHJpbmcmIHN0ckFyZyA9IHVzdHJpbmdUb1N0cmluZyhleGVj
LT5hcmd1bWVudCgwKS50b1N0cmluZyhleGVjKSk7Ci0gICAgVGVzdE9iaiogb2JqQXJnID0gdG9U
ZXN0T2JqKGV4ZWMtPmFyZ3VtZW50KDEpKTsKLQotCi0gICAgSlNDOjpKU1ZhbHVlIHJlc3VsdCA9
IHRvSlMoZXhlYywgY2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCksIFdURjo6Z2V0UHRyKGltcC0+
bWV0aG9kVGhhdFJlcXVpcmVzQWxsQXJncyhzdHJBcmcsIG9iakFyZykpKTsKLSAgICByZXR1cm4g
cmVzdWx0OwotfQotCi1KU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25NZXRob2RUaGF0UmVxdWlyZXNBbGxBcmdzQW5kVGhyb3dzKEV4ZWNTdGF0ZSogZXhlYykK
LXsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKLSAgICBp
ZiAoIXRoaXNWYWx1ZS5pbmhlcml0cygmSlNUZXN0T2JqOjpzX2luZm8pKQotICAgICAgICByZXR1
cm4gdGhyb3dFcnJvcihleGVjLCBUeXBlRXJyb3IpOwotICAgIEpTVGVzdE9iaiogY2FzdGVkVGhp
cyA9IHN0YXRpY19jYXN0PEpTVGVzdE9iaio+KGFzT2JqZWN0KHRoaXNWYWx1ZSkpOwotICAgIFRl
c3RPYmoqIGltcCA9IHN0YXRpY19jYXN0PFRlc3RPYmoqPihjYXN0ZWRUaGlzLT5pbXBsKCkpOwot
ICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAyKQotICAgICAgICByZXR1cm4gdGhyb3dF
cnJvcihleGVjLCBTeW50YXhFcnJvciwgIk5vdCBlbm91Z2ggYXJndW1lbnRzIik7Ci0gICAgRXhj
ZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgY29uc3QgU3RyaW5nJiBzdHJBcmcgPSB1c3RyaW5nVG9T
dHJpbmcoZXhlYy0+YXJndW1lbnQoMCkudG9TdHJpbmcoZXhlYykpOwotICAgIFRlc3RPYmoqIG9i
akFyZyA9IHRvVGVzdE9iaihleGVjLT5hcmd1bWVudCgxKSk7Ci0KLQotICAgIEpTQzo6SlNWYWx1
ZSByZXN1bHQgPSB0b0pTKGV4ZWMsIGNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpLCBXVEY6Omdl
dFB0cihpbXAtPm1ldGhvZFRoYXRSZXF1aXJlc0FsbEFyZ3NBbmRUaHJvd3Moc3RyQXJnLCBvYmpB
cmcsIGVjKSkpOwotICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBlYyk7Ci0gICAgcmV0dXJuIHJl
c3VsdDsKLX0KLQogSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uU2VyaWFsaXplZFZhbHVlKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBKU1ZhbHVlIHRoaXNW
YWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKQEAgLTUyNCw2ICs0OTIsOCBAQCBKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25TZXJpYWxpemVkVmFsdWUo
RXhlY1N0YXRlKiBleGVjKQogICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihleGVjLCBUeXBlRXJy
b3IpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IHN0YXRpY19jYXN0PEpTVGVzdE9iaio+
KGFzT2JqZWN0KHRoaXNWYWx1ZSkpOwogICAgIFRlc3RPYmoqIGltcCA9IHN0YXRpY19jYXN0PFRl
c3RPYmoqPihjYXN0ZWRUaGlzLT5pbXBsKCkpOworICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50
KCkgPCAxKQorICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihleGVjLCBUeXBlRXJyb3IsICJOb3Qg
ZW5vdWdoIGFyZ3VtZW50cyIpOwogICAgIFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IHNl
cmlhbGl6ZWRBcmcgPSBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmNyZWF0ZShleGVjLCBleGVjLT5h
cmd1bWVudCgwKSk7CiAKICAgICBpbXAtPnNlcmlhbGl6ZWRWYWx1ZShzZXJpYWxpemVkQXJnKTsK
QEAgLTU2OSw2ICs1MzksOCBAQCBKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25DdXN0b21BcmdzQW5kRXhjZXB0aW9uKEV4ZWNTdGF0ZQogICAgICAgICByZXR1
cm4gdGhyb3dFcnJvcihleGVjLCBUeXBlRXJyb3IpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhp
cyA9IHN0YXRpY19jYXN0PEpTVGVzdE9iaio+KGFzT2JqZWN0KHRoaXNWYWx1ZSkpOwogICAgIFRl
c3RPYmoqIGltcCA9IHN0YXRpY19jYXN0PFRlc3RPYmoqPihjYXN0ZWRUaGlzLT5pbXBsKCkpOwor
ICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAxKQorICAgICAgICByZXR1cm4gdGhyb3dF
cnJvcihleGVjLCBUeXBlRXJyb3IsICJOb3QgZW5vdWdoIGFyZ3VtZW50cyIpOwogICAgIEV4Y2Vw
dGlvbkNvZGUgZWMgPSAwOwogICAgIFNjcmlwdENhbGxTdGFjayBjYWxsU3RhY2soZXhlYywgMSk7
CiAgICAgbG9nKiBpbnRBcmcgPSB0b2xvZyhleGVjLT5hcmd1bWVudCgwKSk7CkBAIC01ODUsNiAr
NTU3LDggQEAgSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
QWRkRXZlbnRMaXN0ZW5lcihFeGVjU3RhdGUqIGV4ZWMKICAgICAgICAgcmV0dXJuIHRocm93RXJy
b3IoZXhlYywgVHlwZUVycm9yKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBzdGF0aWNf
Y2FzdDxKU1Rlc3RPYmoqPihhc09iamVjdCh0aGlzVmFsdWUpKTsKICAgICBUZXN0T2JqKiBpbXAg
PSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKKyAgICBpZiAoZXhl
Yy0+YXJndW1lbnRDb3VudCgpIDwgMykKKyAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXhlYywg
VHlwZUVycm9yLCAiTm90IGVub3VnaCBhcmd1bWVudHMiKTsKICAgICBKU1ZhbHVlIGxpc3RlbmVy
ID0gZXhlYy0+YXJndW1lbnQoMSk7CiAgICAgaWYgKCFsaXN0ZW5lci5pc09iamVjdCgpKQogICAg
ICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKQEAgLTU5OSw2ICs1NzMsOCBAQCBKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25SZW1vdmVFdmVudExpc3RlbmVy
KEV4ZWNTdGF0ZSogZQogICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihleGVjLCBUeXBlRXJyb3Ip
OwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IHN0YXRpY19jYXN0PEpTVGVzdE9iaio+KGFz
T2JqZWN0KHRoaXNWYWx1ZSkpOwogICAgIFRlc3RPYmoqIGltcCA9IHN0YXRpY19jYXN0PFRlc3RP
YmoqPihjYXN0ZWRUaGlzLT5pbXBsKCkpOworICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkg
PCAzKQorICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihleGVjLCBUeXBlRXJyb3IsICJOb3QgZW5v
dWdoIGFyZ3VtZW50cyIpOwogICAgIEpTVmFsdWUgbGlzdGVuZXIgPSBleGVjLT5hcmd1bWVudCgx
KTsKICAgICBpZiAoIWxpc3RlbmVyLmlzT2JqZWN0KCkpCiAgICAgICAgIHJldHVybiBqc1VuZGVm
aW5lZCgpOwpAQCAtNjI4LDYgKzYwNCw4IEBAIEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbldpdGhEeW5hbWljRnJhbWVBbmRBcmcoRXhlY1N0YXRlCiAgICAg
ICAgIHJldHVybiB0aHJvd0Vycm9yKGV4ZWMsIFR5cGVFcnJvcik7CiAgICAgSlNUZXN0T2JqKiBj
YXN0ZWRUaGlzID0gc3RhdGljX2Nhc3Q8SlNUZXN0T2JqKj4oYXNPYmplY3QodGhpc1ZhbHVlKSk7
CiAgICAgVGVzdE9iaiogaW1wID0gc3RhdGljX2Nhc3Q8VGVzdE9iaio+KGNhc3RlZFRoaXMtPmlt
cGwoKSk7CisgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDEpCisgICAgICAgIHJldHVy
biB0aHJvd0Vycm9yKGV4ZWMsIFR5cGVFcnJvciwgIk5vdCBlbm91Z2ggYXJndW1lbnRzIik7CiAg
ICAgRnJhbWUqIGR5bmFtaWNGcmFtZSA9IHRvRHluYW1pY0ZyYW1lKGV4ZWMpOwogICAgIGlmICgh
ZHluYW1pY0ZyYW1lKQogICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKQEAgLTY0NCwxMiAr
NjIyLDE0IEBAIEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bldpdGhEeW5hbWljRnJhbWVBbmRPcHRpb25hbEFyZyhFCiAgICAgICAgIHJldHVybiB0aHJvd0Vy
cm9yKGV4ZWMsIFR5cGVFcnJvcik7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0gc3RhdGlj
X2Nhc3Q8SlNUZXN0T2JqKj4oYXNPYmplY3QodGhpc1ZhbHVlKSk7CiAgICAgVGVzdE9iaiogaW1w
ID0gc3RhdGljX2Nhc3Q8VGVzdE9iaio+KGNhc3RlZFRoaXMtPmltcGwoKSk7CisgICAgaWYgKGV4
ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDEpCisgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGV4ZWMs
IFR5cGVFcnJvciwgIk5vdCBlbm91Z2ggYXJndW1lbnRzIik7CiAgICAgRnJhbWUqIGR5bmFtaWNG
cmFtZSA9IHRvRHluYW1pY0ZyYW1lKGV4ZWMpOwogICAgIGlmICghZHluYW1pY0ZyYW1lKQogICAg
ICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKLSAgICBpbnQgaW50QXJnID0gZXhlYy0+YXJndW1l
bnQoMSkudG9JbnQzMihleGVjKTsKIAogICAgIGludCBhcmdzQ291bnQgPSBleGVjLT5hcmd1bWVu
dENvdW50KCk7CisgICAgaW50IGludEFyZyA9IGV4ZWMtPmFyZ3VtZW50KDEpLnRvSW50MzIoZXhl
Yyk7CiAgICAgaWYgKGFyZ3NDb3VudCA8IDMpIHsKICAgICAgICAgaW1wLT53aXRoRHluYW1pY0Zy
YW1lQW5kT3B0aW9uYWxBcmcoZHluYW1pY0ZyYW1lLCBpbnRBcmcpOwogICAgICAgICByZXR1cm4g
anNVbmRlZmluZWQoKTsKQEAgLTY2OCw2ICs2NDgsOCBAQCBKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoRHluYW1pY0ZyYW1lQW5kVXNlckdlc3R1cmUo
RQogICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihleGVjLCBUeXBlRXJyb3IpOwogICAgIEpTVGVz
dE9iaiogY2FzdGVkVGhpcyA9IHN0YXRpY19jYXN0PEpTVGVzdE9iaio+KGFzT2JqZWN0KHRoaXNW
YWx1ZSkpOwogICAgIFRlc3RPYmoqIGltcCA9IHN0YXRpY19jYXN0PFRlc3RPYmoqPihjYXN0ZWRU
aGlzLT5pbXBsKCkpOworICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAxKQorICAgICAg
ICByZXR1cm4gdGhyb3dFcnJvcihleGVjLCBUeXBlRXJyb3IsICJOb3QgZW5vdWdoIGFyZ3VtZW50
cyIpOwogICAgIEZyYW1lKiBkeW5hbWljRnJhbWUgPSB0b0R5bmFtaWNGcmFtZShleGVjKTsKICAg
ICBpZiAoIWR5bmFtaWNGcmFtZSkKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CkBAIC02
ODQsMTIgKzY2NiwxNCBAQCBKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25XaXRoRHluYW1pY0ZyYW1lQW5kVXNlckdlc3R1cmVBUwogICAgICAgICByZXR1cm4g
dGhyb3dFcnJvcihleGVjLCBUeXBlRXJyb3IpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9
IHN0YXRpY19jYXN0PEpTVGVzdE9iaio+KGFzT2JqZWN0KHRoaXNWYWx1ZSkpOwogICAgIFRlc3RP
YmoqIGltcCA9IHN0YXRpY19jYXN0PFRlc3RPYmoqPihjYXN0ZWRUaGlzLT5pbXBsKCkpOworICAg
IGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAxKQorICAgICAgICByZXR1cm4gdGhyb3dFcnJv
cihleGVjLCBUeXBlRXJyb3IsICJOb3QgZW5vdWdoIGFyZ3VtZW50cyIpOwogICAgIEZyYW1lKiBk
eW5hbWljRnJhbWUgPSB0b0R5bmFtaWNGcmFtZShleGVjKTsKICAgICBpZiAoIWR5bmFtaWNGcmFt
ZSkKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0gICAgaW50IGludEFyZyA9IGV4ZWMt
PmFyZ3VtZW50KDEpLnRvSW50MzIoZXhlYyk7CiAKICAgICBpbnQgYXJnc0NvdW50ID0gZXhlYy0+
YXJndW1lbnRDb3VudCgpOworICAgIGludCBpbnRBcmcgPSBleGVjLT5hcmd1bWVudCgxKS50b0lu
dDMyKGV4ZWMpOwogICAgIGlmIChhcmdzQ291bnQgPCAzKSB7CiAgICAgICAgIGltcC0+d2l0aER5
bmFtaWNGcmFtZUFuZFVzZXJHZXN0dXJlQVNBRChkeW5hbWljRnJhbWUsIGludEFyZyk7CiAgICAg
ICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwpAQCAtNzg2LDkgKzc3MCwxMSBAQCBKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoTm9uT3B0aW9u
YWxBcmdBbmRPcHRpbwogICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihleGVjLCBUeXBlRXJyb3Ip
OwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IHN0YXRpY19jYXN0PEpTVGVzdE9iaio+KGFz
T2JqZWN0KHRoaXNWYWx1ZSkpOwogICAgIFRlc3RPYmoqIGltcCA9IHN0YXRpY19jYXN0PFRlc3RP
YmoqPihjYXN0ZWRUaGlzLT5pbXBsKCkpOwotICAgIGludCBub25PcHQgPSBleGVjLT5hcmd1bWVu
dCgwKS50b0ludDMyKGV4ZWMpOworICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAxKQor
ICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihleGVjLCBUeXBlRXJyb3IsICJOb3QgZW5vdWdoIGFy
Z3VtZW50cyIpOwogCiAgICAgaW50IGFyZ3NDb3VudCA9IGV4ZWMtPmFyZ3VtZW50Q291bnQoKTsK
KyAgICBpbnQgbm9uT3B0ID0gZXhlYy0+YXJndW1lbnQoMCkudG9JbnQzMihleGVjKTsKICAgICBp
ZiAoYXJnc0NvdW50IDwgMikgewogICAgICAgICBpbXAtPm1ldGhvZFdpdGhOb25PcHRpb25hbEFy
Z0FuZE9wdGlvbmFsQXJnKG5vbk9wdCk7CiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwpA
QCAtODA3LDkgKzc5MywxMSBAQCBKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25NZXRob2RXaXRoTm9uT3B0aW9uYWxBcmdBbmRUd29PcAogICAgICAgICByZXR1
cm4gdGhyb3dFcnJvcihleGVjLCBUeXBlRXJyb3IpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhp
cyA9IHN0YXRpY19jYXN0PEpTVGVzdE9iaio+KGFzT2JqZWN0KHRoaXNWYWx1ZSkpOwogICAgIFRl
c3RPYmoqIGltcCA9IHN0YXRpY19jYXN0PFRlc3RPYmoqPihjYXN0ZWRUaGlzLT5pbXBsKCkpOwot
ICAgIGludCBub25PcHQgPSBleGVjLT5hcmd1bWVudCgwKS50b0ludDMyKGV4ZWMpOworICAgIGlm
IChleGVjLT5hcmd1bWVudENvdW50KCkgPCAxKQorICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihl
eGVjLCBUeXBlRXJyb3IsICJOb3QgZW5vdWdoIGFyZ3VtZW50cyIpOwogCiAgICAgaW50IGFyZ3ND
b3VudCA9IGV4ZWMtPmFyZ3VtZW50Q291bnQoKTsKKyAgICBpbnQgbm9uT3B0ID0gZXhlYy0+YXJn
dW1lbnQoMCkudG9JbnQzMihleGVjKTsKICAgICBpZiAoYXJnc0NvdW50IDwgMikgewogICAgICAg
ICBpbXAtPm1ldGhvZFdpdGhOb25PcHRpb25hbEFyZ0FuZFR3b09wdGlvbmFsQXJncyhub25PcHQp
OwogICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKQEAgLTgyOSw2ICs4MTcsOCBAQCBKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0
aG9kMShFeGVjU3RhdGUqIGV4ZQogICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihleGVjLCBUeXBl
RXJyb3IpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IHN0YXRpY19jYXN0PEpTVGVzdE9i
aio+KGFzT2JqZWN0KHRoaXNWYWx1ZSkpOwogICAgIFRlc3RPYmoqIGltcCA9IHN0YXRpY19jYXN0
PFRlc3RPYmoqPihjYXN0ZWRUaGlzLT5pbXBsKCkpOworICAgIGlmIChleGVjLT5hcmd1bWVudENv
dW50KCkgPCAyKQorICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihleGVjLCBUeXBlRXJyb3IsICJO
b3QgZW5vdWdoIGFyZ3VtZW50cyIpOwogICAgIFRlc3RPYmoqIG9iakFyZyA9IHRvVGVzdE9iaihl
eGVjLT5hcmd1bWVudCgwKSk7CiAgICAgY29uc3QgU3RyaW5nJiBzdHJBcmcgPSB1c3RyaW5nVG9T
dHJpbmcoZXhlYy0+YXJndW1lbnQoMSkudG9TdHJpbmcoZXhlYykpOwogCkBAIC04NDMsOSArODMz
LDExIEBAIEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92
ZXJsb2FkZWRNZXRob2QyKEV4ZWNTdGF0ZSogZXhlCiAgICAgICAgIHJldHVybiB0aHJvd0Vycm9y
KGV4ZWMsIFR5cGVFcnJvcik7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0gc3RhdGljX2Nh
c3Q8SlNUZXN0T2JqKj4oYXNPYmplY3QodGhpc1ZhbHVlKSk7CiAgICAgVGVzdE9iaiogaW1wID0g
c3RhdGljX2Nhc3Q8VGVzdE9iaio+KGNhc3RlZFRoaXMtPmltcGwoKSk7Ci0gICAgVGVzdE9iaiog
b2JqQXJnID0gdG9UZXN0T2JqKGV4ZWMtPmFyZ3VtZW50KDApKTsKKyAgICBpZiAoZXhlYy0+YXJn
dW1lbnRDb3VudCgpIDwgMSkKKyAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXhlYywgVHlwZUVy
cm9yLCAiTm90IGVub3VnaCBhcmd1bWVudHMiKTsKIAogICAgIGludCBhcmdzQ291bnQgPSBleGVj
LT5hcmd1bWVudENvdW50KCk7CisgICAgVGVzdE9iaiogb2JqQXJnID0gdG9UZXN0T2JqKGV4ZWMt
PmFyZ3VtZW50KDApKTsKICAgICBpZiAoYXJnc0NvdW50IDwgMikgewogICAgICAgICBpbXAtPm92
ZXJsb2FkZWRNZXRob2Qob2JqQXJnKTsKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CkBA
IC04NjQsNiArODU2LDggQEAgSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZDMoRXhlY1N0YXRlKiBleGUKICAgICAgICAgcmV0dXJu
IHRocm93RXJyb3IoZXhlYywgVHlwZUVycm9yKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMg
PSBzdGF0aWNfY2FzdDxKU1Rlc3RPYmoqPihhc09iamVjdCh0aGlzVmFsdWUpKTsKICAgICBUZXN0
T2JqKiBpbXAgPSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKKyAg
ICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMSkKKyAgICAgICAgcmV0dXJuIHRocm93RXJy
b3IoZXhlYywgVHlwZUVycm9yLCAiTm90IGVub3VnaCBhcmd1bWVudHMiKTsKICAgICBjb25zdCBT
dHJpbmcmIHN0ckFyZyA9IHVzdHJpbmdUb1N0cmluZyhleGVjLT5hcmd1bWVudCgwKS50b1N0cmlu
ZyhleGVjKSk7CiAKICAgICBpbXAtPm92ZXJsb2FkZWRNZXRob2Qoc3RyQXJnKTsKQEAgLTg3Nyw2
ICs4NzEsOCBAQCBKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25PdmVybG9hZGVkTWV0aG9kNChFeGVjU3RhdGUqIGV4ZQogICAgICAgICByZXR1cm4gdGhyb3dF
cnJvcihleGVjLCBUeXBlRXJyb3IpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IHN0YXRp
Y19jYXN0PEpTVGVzdE9iaio+KGFzT2JqZWN0KHRoaXNWYWx1ZSkpOwogICAgIFRlc3RPYmoqIGlt
cCA9IHN0YXRpY19jYXN0PFRlc3RPYmoqPihjYXN0ZWRUaGlzLT5pbXBsKCkpOworICAgIGlmIChl
eGVjLT5hcmd1bWVudENvdW50KCkgPCAxKQorICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihleGVj
LCBUeXBlRXJyb3IsICJOb3QgZW5vdWdoIGFyZ3VtZW50cyIpOwogICAgIGludCBpbnRBcmcgPSBl
eGVjLT5hcmd1bWVudCgwKS50b0ludDMyKGV4ZWMpOwogCiAgICAgaW1wLT5vdmVybG9hZGVkTWV0
aG9kKGludEFyZyk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RPYmouaCBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9i
ai5oCmluZGV4IDM4Y2Y4YzIuLjI4YmYwY2UgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE9iai5oCkBAIC05Miw4ICs5Miw2IEBAIEpTQzo6SlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uSW50TWV0aG9kKEpTQzo6RXhlY1N0
YXRlKik7CiBKU0M6OkpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbkludE1ldGhvZFdpdGhBcmdzKEpTQzo6RXhlY1N0YXRlKik7CiBKU0M6OkpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk9iak1ldGhvZChKU0M6OkV4ZWNT
dGF0ZSopOwogSlNDOjpKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25PYmpNZXRob2RXaXRoQXJncyhKU0M6OkV4ZWNTdGF0ZSopOwotSlNDOjpKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RUaGF0UmVxdWlyZXNB
bGxBcmdzKEpTQzo6RXhlY1N0YXRlKik7Ci1KU0M6OkpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFRoYXRSZXF1aXJlc0FsbEFyZ3NBbmRUaHJvd3Mo
SlNDOjpFeGVjU3RhdGUqKTsKIEpTQzo6SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uU2VyaWFsaXplZFZhbHVlKEpTQzo6RXhlY1N0YXRlKik7CiBKU0M6OkpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhF
eGNlcHRpb24oSlNDOjpFeGVjU3RhdGUqKTsKIEpTQzo6SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ3VzdG9tTWV0aG9kKEpTQzo6RXhlY1N0YXRlKik7CmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmou
aCBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5oCmluZGV4
IDI0N2Y0YTMuLmRkOWQyZWUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L09iakMvRE9NVGVzdE9iai5oCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L09iakMvRE9NVGVzdE9iai5oCkBAIC02Miw4ICs2Miw2IEBACiAtIChpbnQpaW50TWV0aG9kV2l0
aEFyZ3M6KGludClpbnRBcmcgc3RyQXJnOihOU1N0cmluZyAqKXN0ckFyZyBvYmpBcmc6KERPTVRl
c3RPYmogKilvYmpBcmc7CiAtIChET01UZXN0T2JqICopb2JqTWV0aG9kOwogLSAoRE9NVGVzdE9i
aiAqKW9iak1ldGhvZFdpdGhBcmdzOihpbnQpaW50QXJnIHN0ckFyZzooTlNTdHJpbmcgKilzdHJB
cmcgb2JqQXJnOihET01UZXN0T2JqICopb2JqQXJnOwotLSAoRE9NVGVzdE9iaiAqKW1ldGhvZFRo
YXRSZXF1aXJlc0FsbEFyZ3M6KE5TU3RyaW5nICopc3RyQXJnIG9iakFyZzooRE9NVGVzdE9iaiAq
KW9iakFyZzsKLS0gKERPTVRlc3RPYmogKiltZXRob2RUaGF0UmVxdWlyZXNBbGxBcmdzQW5kVGhy
b3dzOihOU1N0cmluZyAqKXN0ckFyZyBvYmpBcmc6KERPTVRlc3RPYmogKilvYmpBcmc7CiAtICh2
b2lkKXNlcmlhbGl6ZWRWYWx1ZTooTlNTdHJpbmcgKilzZXJpYWxpemVkQXJnOwogLSAodm9pZClt
ZXRob2RXaXRoRXhjZXB0aW9uOwogLSAodm9pZCljdXN0b21NZXRob2Q7CmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmoubW0gYi9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmoubW0KaW5kZXggMGYzZmI2Ni4u
NGMyMzhmNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9E
T01UZXN0T2JqLm1tCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9N
VGVzdE9iai5tbQpAQCAtMjQ4LDIxICsyNDgsNiBAQAogICAgIHJldHVybiBraXQoV1RGOjpnZXRQ
dHIoSU1QTC0+b2JqTWV0aG9kV2l0aEFyZ3MoaW50QXJnLCBzdHJBcmcsIGNvcmUob2JqQXJnKSkp
KTsKIH0KIAotLSAoRE9NVGVzdE9iaiAqKW1ldGhvZFRoYXRSZXF1aXJlc0FsbEFyZ3M6KE5TU3Ry
aW5nICopc3RyQXJnIG9iakFyZzooRE9NVGVzdE9iaiAqKW9iakFyZwotewotICAgIFdlYkNvcmU6
OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICByZXR1cm4ga2l0KFdURjo6Z2V0UHRy
KElNUEwtPm1ldGhvZFRoYXRSZXF1aXJlc0FsbEFyZ3Moc3RyQXJnLCBjb3JlKG9iakFyZykpKSk7
Ci19Ci0KLS0gKERPTVRlc3RPYmogKiltZXRob2RUaGF0UmVxdWlyZXNBbGxBcmdzQW5kVGhyb3dz
OihOU1N0cmluZyAqKXN0ckFyZyBvYmpBcmc6KERPTVRlc3RPYmogKilvYmpBcmcKLXsKLSAgICBX
ZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgV2ViQ29yZTo6RXhjZXB0
aW9uQ29kZSBlYyA9IDA7Ci0gICAgRE9NVGVzdE9iaiAqcmVzdWx0ID0ga2l0KFdURjo6Z2V0UHRy
KElNUEwtPm1ldGhvZFRoYXRSZXF1aXJlc0FsbEFyZ3NBbmRUaHJvd3Moc3RyQXJnLCBjb3JlKG9i
akFyZyksIGVjKSkpOwotICAgIFdlYkNvcmU6OnJhaXNlT25ET01FcnJvcihlYyk7Ci0gICAgcmV0
dXJuIHJlc3VsdDsKLX0KLQogLSAodm9pZClzZXJpYWxpemVkVmFsdWU6KE5TU3RyaW5nICopc2Vy
aWFsaXplZEFyZwogewogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsIGIv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwKaW5kZXggYmRhMjU4Ni4u
NTYzNWUwNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9i
ai5pZGwKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwKQEAg
LTQ4LDEwICs0OCw2IEBAIG1vZHVsZSB0ZXN0IHsKICAgICAgICAgVGVzdE9iaiBvYmpNZXRob2Qo
KTsKICAgICAgICAgVGVzdE9iaiBvYmpNZXRob2RXaXRoQXJncyhpbiBsb25nIGludEFyZywgaW4g
RE9NU3RyaW5nIHN0ckFyZywgaW4gVGVzdE9iaiBvYmpBcmcpOwogCi0gICAgICAgIFtSZXF1aXJl
c0FsbEFyZ3VtZW50c10gVGVzdE9iaiBtZXRob2RUaGF0UmVxdWlyZXNBbGxBcmdzKGluIERPTVN0
cmluZyBzdHJBcmcsIGluIFRlc3RPYmogb2JqQXJnKTsKLSAgICAgICAgW1JlcXVpcmVzQWxsQXJn
dW1lbnRzPVJhaXNlXSBUZXN0T2JqIG1ldGhvZFRoYXRSZXF1aXJlc0FsbEFyZ3NBbmRUaHJvd3Mo
aW4gRE9NU3RyaW5nIHN0ckFyZywgaW4gVGVzdE9iaiBvYmpBcmcpCi0gICAgICAgICAgICByYWlz
ZXMoRE9NRXhjZXB0aW9uKTsKLQogICAgICAgICB2b2lkIHNlcmlhbGl6ZWRWYWx1ZShpbiBTZXJp
YWxpemVkU2NyaXB0VmFsdWUgc2VyaWFsaXplZEFyZyk7CiAKICAgICAgICAgLy8gRXhjZXB0aW9u
cwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2Jq
LmNwcCBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5jcHAKaW5k
ZXggNDQ5ZTA4Ni4uYWY1MGE1MSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvVjgvVjhUZXN0T2JqLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9WOC9WOFRlc3RPYmouY3BwCkBAIC0yMjksNiArMjI5LDggQEAgc3RhdGljIHY4OjpIYW5kbGU8
djg6OlZhbHVlPiB2b2lkTWV0aG9kQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykK
IHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdm9pZE1ldGhvZFdpdGhBcmdzQ2FsbGJhY2so
Y29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKIHsKICAgICBJTkNfU1RBVFMoIkRPTS5UZXN0T2Jq
LnZvaWRNZXRob2RXaXRoQXJncyIpOworICAgIGlmIChhcmdzLkxlbmd0aCgpIDwgMykKKyAgICAg
ICAgcmV0dXJuIHRocm93RXJyb3IoIk5vdCBlbm91Z2ggYXJndW1lbnRzIiwgVjhQcm94eTo6VHlw
ZUVycm9yKTsKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGFyZ3MuSG9s
ZGVyKCkpOwogICAgIGludCBpbnRBcmcgPSB0b0ludDMyKGFyZ3NbMF0pOwogICAgIFY4UGFyYW1l
dGVyPD4gc3RyQXJnID0gYXJnc1sxXTsKQEAgLTI0Nyw2ICsyNDksOCBAQCBzdGF0aWMgdjg6Okhh
bmRsZTx2ODo6VmFsdWU+IGludE1ldGhvZENhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFy
Z3MpCiBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGludE1ldGhvZFdpdGhBcmdzQ2FsbGJh
Y2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKIHsKICAgICBJTkNfU1RBVFMoIkRPTS5UZXN0
T2JqLmludE1ldGhvZFdpdGhBcmdzIik7CisgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAzKQorICAg
ICAgICByZXR1cm4gdGhyb3dFcnJvcigiTm90IGVub3VnaCBhcmd1bWVudHMiLCBWOFByb3h5OjpU
eXBlRXJyb3IpOwogICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoYXJncy5I
b2xkZXIoKSk7CiAgICAgaW50IGludEFyZyA9IHRvSW50MzIoYXJnc1swXSk7CiAgICAgVjhQYXJh
bWV0ZXI8PiBzdHJBcmcgPSBhcmdzWzFdOwpAQCAtMjY0LDYgKzI2OCw4IEBAIHN0YXRpYyB2ODo6
SGFuZGxlPHY4OjpWYWx1ZT4gb2JqTWV0aG9kQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYg
YXJncykKIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gb2JqTWV0aG9kV2l0aEFyZ3NDYWxs
YmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogewogICAgIElOQ19TVEFUUygiRE9NLlRl
c3RPYmoub2JqTWV0aG9kV2l0aEFyZ3MiKTsKKyAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDMpCisg
ICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCJOb3QgZW5vdWdoIGFyZ3VtZW50cyIsIFY4UHJveHk6
OlR5cGVFcnJvcik7CiAgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShhcmdz
LkhvbGRlcigpKTsKICAgICBpbnQgaW50QXJnID0gdG9JbnQzMihhcmdzWzBdKTsKICAgICBWOFBh
cmFtZXRlcjw+IHN0ckFyZyA9IGFyZ3NbMV07CkBAIC0yNzEsNDAgKzI3NywxMSBAQCBzdGF0aWMg
djg6OkhhbmRsZTx2ODo6VmFsdWU+IG9iak1ldGhvZFdpdGhBcmdzQ2FsbGJhY2soY29uc3Qgdjg6
OkFyZ3VtZW50cyYgYXJncwogICAgIHJldHVybiB0b1Y4KGltcC0+b2JqTWV0aG9kV2l0aEFyZ3Mo
aW50QXJnLCBzdHJBcmcsIG9iakFyZykpOwogfQogCi1zdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFs
dWU+IG1ldGhvZFRoYXRSZXF1aXJlc0FsbEFyZ3NDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRz
JiBhcmdzKQotewotICAgIElOQ19TVEFUUygiRE9NLlRlc3RPYmoubWV0aG9kVGhhdFJlcXVpcmVz
QWxsQXJncyIpOwotICAgIGlmIChhcmdzLkxlbmd0aCgpIDwgMikKLSAgICAgICAgcmV0dXJuIHY4
OjpIYW5kbGU8djg6OlZhbHVlPigpOwotICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9O
YXRpdmUoYXJncy5Ib2xkZXIoKSk7Ci0gICAgVjhQYXJhbWV0ZXI8PiBzdHJBcmcgPSBhcmdzWzBd
OwotICAgIFRlc3RPYmoqIG9iakFyZyA9IFY4VGVzdE9iajo6SGFzSW5zdGFuY2UoYXJnc1sxXSkg
PyBWOFRlc3RPYmo6OnRvTmF0aXZlKHY4OjpIYW5kbGU8djg6Ok9iamVjdD46OkNhc3QoYXJnc1sx
XSkpIDogMDsKLSAgICByZXR1cm4gdG9WOChpbXAtPm1ldGhvZFRoYXRSZXF1aXJlc0FsbEFyZ3Mo
c3RyQXJnLCBvYmpBcmcpKTsKLX0KLQotc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBtZXRo
b2RUaGF0UmVxdWlyZXNBbGxBcmdzQW5kVGhyb3dzQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50
cyYgYXJncykKLXsKLSAgICBJTkNfU1RBVFMoIkRPTS5UZXN0T2JqLm1ldGhvZFRoYXRSZXF1aXJl
c0FsbEFyZ3NBbmRUaHJvd3MiKTsKLSAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDIpCi0gICAgICAg
IHJldHVybiB0aHJvd0Vycm9yKCJOb3QgZW5vdWdoIGFyZ3VtZW50cyIsIFY4UHJveHk6OlN5bnRh
eEVycm9yKTsKLSAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGFyZ3MuSG9s
ZGVyKCkpOwotICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIHsKLSAgICBWOFBhcmFtZXRl
cjw+IHN0ckFyZyA9IGFyZ3NbMF07Ci0gICAgVGVzdE9iaiogb2JqQXJnID0gVjhUZXN0T2JqOjpI
YXNJbnN0YW5jZShhcmdzWzFdKSA/IFY4VGVzdE9iajo6dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6
T2JqZWN0Pjo6Q2FzdChhcmdzWzFdKSkgOiAwOwotICAgIFJlZlB0cjxUZXN0T2JqPiByZXN1bHQg
PSBpbXAtPm1ldGhvZFRoYXRSZXF1aXJlc0FsbEFyZ3NBbmRUaHJvd3Moc3RyQXJnLCBvYmpBcmcs
IGVjKTsKLSAgICBpZiAoVU5MSUtFTFkoZWMpKQotICAgICAgICBnb3RvIGZhaWw7Ci0gICAgcmV0
dXJuIHRvVjgocmVzdWx0LnJlbGVhc2UoKSk7Ci0gICAgfQotICAgIGZhaWw6Ci0gICAgVjhQcm94
eTo6c2V0RE9NRXhjZXB0aW9uKGVjKTsKLSAgICByZXR1cm4gdjg6OkhhbmRsZTx2ODo6VmFsdWU+
KCk7Ci19Ci0KIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gc2VyaWFsaXplZFZhbHVlQ2Fs
bGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKIHsKICAgICBJTkNfU1RBVFMoIkRPTS5U
ZXN0T2JqLnNlcmlhbGl6ZWRWYWx1ZSIpOworICAgIGlmIChhcmdzLkxlbmd0aCgpIDwgMSkKKyAg
ICAgICAgcmV0dXJuIHRocm93RXJyb3IoIk5vdCBlbm91Z2ggYXJndW1lbnRzIiwgVjhQcm94eTo6
VHlwZUVycm9yKTsKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGFyZ3Mu
SG9sZGVyKCkpOwogICAgIGJvb2wgc2VyaWFsaXplZEFyZ0RpZFRocm93ID0gZmFsc2U7CiAgICAg
UmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gc2VyaWFsaXplZEFyZyA9IFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZTo6Y3JlYXRlKGFyZ3NbMF0sIHNlcmlhbGl6ZWRBcmdEaWRUaHJvdyk7CkBAIC0z
MzMsNiArMzEwLDggQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBtZXRob2RXaXRoRXhj
ZXB0aW9uQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXIKIHN0YXRpYyB2ODo6SGFuZGxl
PHY4OjpWYWx1ZT4gY3VzdG9tQXJnc0FuZEV4Y2VwdGlvbkNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1
bWVudHMmIGFyZ3MpCiB7CiAgICAgSU5DX1NUQVRTKCJET00uVGVzdE9iai5jdXN0b21BcmdzQW5k
RXhjZXB0aW9uIik7CisgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAxKQorICAgICAgICByZXR1cm4g
dGhyb3dFcnJvcigiTm90IGVub3VnaCBhcmd1bWVudHMiLCBWOFByb3h5OjpUeXBlRXJyb3IpOwog
ICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7CiAg
ICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgewpAQCAtMzg2LDYgKzM2NSw4IEBAIHN0YXRp
YyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gd2l0aER5bmFtaWNGcmFtZUNhbGxiYWNrKGNvbnN0IHY4
OjpBcmd1bWVudHMmIGFyZ3MpCiBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHdpdGhEeW5h
bWljRnJhbWVBbmRBcmdDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogewogICAg
IElOQ19TVEFUUygiRE9NLlRlc3RPYmoud2l0aER5bmFtaWNGcmFtZUFuZEFyZyIpOworICAgIGlm
IChhcmdzLkxlbmd0aCgpIDwgMSkKKyAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoIk5vdCBlbm91
Z2ggYXJndW1lbnRzIiwgVjhQcm94eTo6VHlwZUVycm9yKTsKICAgICBUZXN0T2JqKiBpbXAgPSBW
OFRlc3RPYmo6OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwogICAgIGludCBpbnRBcmcgPSB0b0lu
dDMyKGFyZ3NbMF0pOwogICAgIEZyYW1lKiBlbnRlcmVkRnJhbWUgPSBWOFByb3h5OjpyZXRyaWV2
ZUZyYW1lRm9yRW50ZXJlZENvbnRleHQoKTsKQEAgLTM5OCw2ICszNzksOCBAQCBzdGF0aWMgdjg6
OkhhbmRsZTx2ODo6VmFsdWU+IHdpdGhEeW5hbWljRnJhbWVBbmRBcmdDYWxsYmFjayhjb25zdCB2
ODo6QXJndW1lbnRzJgogc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB3aXRoRHluYW1pY0Zy
YW1lQW5kT3B0aW9uYWxBcmdDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogewog
ICAgIElOQ19TVEFUUygiRE9NLlRlc3RPYmoud2l0aER5bmFtaWNGcmFtZUFuZE9wdGlvbmFsQXJn
Iik7CisgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAxKQorICAgICAgICByZXR1cm4gdGhyb3dFcnJv
cigiTm90IGVub3VnaCBhcmd1bWVudHMiLCBWOFByb3h5OjpUeXBlRXJyb3IpOwogICAgIFRlc3RP
YmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7CiAgICAgaW50IGlu
dEFyZyA9IHRvSW50MzIoYXJnc1swXSk7CiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPD0gMSkgewpA
QCAtNDE4LDYgKzQwMSw4IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gd2l0aER5bmFt
aWNGcmFtZUFuZE9wdGlvbmFsQXJnQ2FsbGJhY2soY29uc3Qgdjg6OkFyCiBzdGF0aWMgdjg6Okhh
bmRsZTx2ODo6VmFsdWU+IHdpdGhEeW5hbWljRnJhbWVBbmRVc2VyR2VzdHVyZUNhbGxiYWNrKGNv
bnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiB7CiAgICAgSU5DX1NUQVRTKCJET00uVGVzdE9iai53
aXRoRHluYW1pY0ZyYW1lQW5kVXNlckdlc3R1cmUiKTsKKyAgICBpZiAoYXJncy5MZW5ndGgoKSA8
IDEpCisgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCJOb3QgZW5vdWdoIGFyZ3VtZW50cyIsIFY4
UHJveHk6OlR5cGVFcnJvcik7CiAgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2
ZShhcmdzLkhvbGRlcigpKTsKICAgICBpbnQgaW50QXJnID0gdG9JbnQzMihhcmdzWzBdKTsKICAg
ICBGcmFtZSogZW50ZXJlZEZyYW1lID0gVjhQcm94eTo6cmV0cmlldmVGcmFtZUZvckVudGVyZWRD
b250ZXh0KCk7CkBAIC00MzAsNiArNDE1LDggQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVl
PiB3aXRoRHluYW1pY0ZyYW1lQW5kVXNlckdlc3R1cmVDYWxsYmFjayhjb25zdCB2ODo6QXIKIHN0
YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gd2l0aER5bmFtaWNGcmFtZUFuZFVzZXJHZXN0dXJl
QVNBRENhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiB7CiAgICAgSU5DX1NUQVRT
KCJET00uVGVzdE9iai53aXRoRHluYW1pY0ZyYW1lQW5kVXNlckdlc3R1cmVBU0FEIik7CisgICAg
aWYgKGFyZ3MuTGVuZ3RoKCkgPCAxKQorICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigiTm90IGVu
b3VnaCBhcmd1bWVudHMiLCBWOFByb3h5OjpUeXBlRXJyb3IpOwogICAgIFRlc3RPYmoqIGltcCA9
IFY4VGVzdE9iajo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7CiAgICAgaW50IGludEFyZyA9IHRv
SW50MzIoYXJnc1swXSk7CiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPD0gMSkgewpAQCAtNTIzLDYg
KzUxMCw4IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gbWV0aG9kV2l0aE9wdGlvbmFs
QXJnQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYKIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpW
YWx1ZT4gbWV0aG9kV2l0aE5vbk9wdGlvbmFsQXJnQW5kT3B0aW9uYWxBcmdDYWxsYmFjayhjb25z
dCB2ODo6QXJndW1lbnRzJiBhcmdzKQogewogICAgIElOQ19TVEFUUygiRE9NLlRlc3RPYmoubWV0
aG9kV2l0aE5vbk9wdGlvbmFsQXJnQW5kT3B0aW9uYWxBcmciKTsKKyAgICBpZiAoYXJncy5MZW5n
dGgoKSA8IDEpCisgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCJOb3QgZW5vdWdoIGFyZ3VtZW50
cyIsIFY4UHJveHk6OlR5cGVFcnJvcik7CiAgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0
b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKICAgICBpbnQgbm9uT3B0ID0gdG9JbnQzMihhcmdzWzBd
KTsKICAgICBpZiAoYXJncy5MZW5ndGgoKSA8PSAxKSB7CkBAIC01MzcsNiArNTI2LDggQEAgc3Rh
dGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBtZXRob2RXaXRoTm9uT3B0aW9uYWxBcmdBbmRPcHRp
b25hbEFyZ0NhbGxiYWNrKGNvbnMKIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gbWV0aG9k
V2l0aE5vbk9wdGlvbmFsQXJnQW5kVHdvT3B0aW9uYWxBcmdzQ2FsbGJhY2soY29uc3Qgdjg6OkFy
Z3VtZW50cyYgYXJncykKIHsKICAgICBJTkNfU1RBVFMoIkRPTS5UZXN0T2JqLm1ldGhvZFdpdGhO
b25PcHRpb25hbEFyZ0FuZFR3b09wdGlvbmFsQXJncyIpOworICAgIGlmIChhcmdzLkxlbmd0aCgp
IDwgMSkKKyAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoIk5vdCBlbm91Z2ggYXJndW1lbnRzIiwg
VjhQcm94eTo6VHlwZUVycm9yKTsKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0
aXZlKGFyZ3MuSG9sZGVyKCkpOwogICAgIGludCBub25PcHQgPSB0b0ludDMyKGFyZ3NbMF0pOwog
ICAgIGlmIChhcmdzLkxlbmd0aCgpIDw9IDEpIHsKQEAgLTU1Miw2ICs1NDMsOCBAQCBzdGF0aWMg
djg6OkhhbmRsZTx2ODo6VmFsdWU+IG1ldGhvZFdpdGhOb25PcHRpb25hbEFyZ0FuZFR3b09wdGlv
bmFsQXJnc0NhbGxiYWNrKAogc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBvdmVybG9hZGVk
TWV0aG9kMUNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiB7CiAgICAgSU5DX1NU
QVRTKCJET00uVGVzdE9iai5vdmVybG9hZGVkTWV0aG9kMSIpOworICAgIGlmIChhcmdzLkxlbmd0
aCgpIDwgMikKKyAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoIk5vdCBlbm91Z2ggYXJndW1lbnRz
IiwgVjhQcm94eTo6VHlwZUVycm9yKTsKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRv
TmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwogICAgIFRlc3RPYmoqIG9iakFyZyA9IFY4VGVzdE9iajo6
SGFzSW5zdGFuY2UoYXJnc1swXSkgPyBWOFRlc3RPYmo6OnRvTmF0aXZlKHY4OjpIYW5kbGU8djg6
Ok9iamVjdD46OkNhc3QoYXJnc1swXSkpIDogMDsKICAgICBWOFBhcmFtZXRlcjw+IHN0ckFyZyA9
IGFyZ3NbMV07CkBAIC01NjIsNiArNTU1LDggQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVl
PiBvdmVybG9hZGVkTWV0aG9kMUNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MKIHN0
YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gb3ZlcmxvYWRlZE1ldGhvZDJDYWxsYmFjayhjb25z
dCB2ODo6QXJndW1lbnRzJiBhcmdzKQogewogICAgIElOQ19TVEFUUygiRE9NLlRlc3RPYmoub3Zl
cmxvYWRlZE1ldGhvZDIiKTsKKyAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDEpCisgICAgICAgIHJl
dHVybiB0aHJvd0Vycm9yKCJOb3QgZW5vdWdoIGFyZ3VtZW50cyIsIFY4UHJveHk6OlR5cGVFcnJv
cik7CiAgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShhcmdzLkhvbGRlcigp
KTsKICAgICBUZXN0T2JqKiBvYmpBcmcgPSBWOFRlc3RPYmo6Okhhc0luc3RhbmNlKGFyZ3NbMF0p
ID8gVjhUZXN0T2JqOjp0b05hdGl2ZSh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0KGFyZ3Nb
MF0pKSA6IDA7CiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPD0gMSkgewpAQCAtNTc2LDYgKzU3MSw4
IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gb3ZlcmxvYWRlZE1ldGhvZDJDYWxsYmFj
ayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzCiBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+
IG92ZXJsb2FkZWRNZXRob2QzQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKIHsK
ICAgICBJTkNfU1RBVFMoIkRPTS5UZXN0T2JqLm92ZXJsb2FkZWRNZXRob2QzIik7CisgICAgaWYg
KGFyZ3MuTGVuZ3RoKCkgPCAxKQorICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigiTm90IGVub3Vn
aCBhcmd1bWVudHMiLCBWOFByb3h5OjpUeXBlRXJyb3IpOwogICAgIFRlc3RPYmoqIGltcCA9IFY4
VGVzdE9iajo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7CiAgICAgVjhQYXJhbWV0ZXI8PiBzdHJB
cmcgPSBhcmdzWzBdOwogICAgIGltcC0+b3ZlcmxvYWRlZE1ldGhvZChzdHJBcmcpOwpAQCAtNTg1
LDYgKzU4Miw4IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gb3ZlcmxvYWRlZE1ldGhv
ZDNDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzCiBzdGF0aWMgdjg6OkhhbmRsZTx2
ODo6VmFsdWU+IG92ZXJsb2FkZWRNZXRob2Q0Q2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYg
YXJncykKIHsKICAgICBJTkNfU1RBVFMoIkRPTS5UZXN0T2JqLm92ZXJsb2FkZWRNZXRob2Q0Iik7
CisgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAxKQorICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigi
Tm90IGVub3VnaCBhcmd1bWVudHMiLCBWOFByb3h5OjpUeXBlRXJyb3IpOwogICAgIFRlc3RPYmoq
IGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7CiAgICAgaW50IGludEFy
ZyA9IHRvSW50MzIoYXJnc1swXSk7CiAgICAgaW1wLT5vdmVybG9hZGVkTWV0aG9kKGludEFyZyk7
CkBAIC02ODcsMTggKzY4Niw2IEBAIHN0YXRpYyB2ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25U
ZW1wbGF0ZT4gQ29uZmlndXJlVjhUZXN0T2JqVGVtcGxhdGUodjg6OlBlcnNpCiAgICAgdjg6Okhh
bmRsZTx2ODo6U2lnbmF0dXJlPiBvYmpNZXRob2RXaXRoQXJnc1NpZ25hdHVyZSA9IHY4OjpTaWdu
YXR1cmU6Ok5ldyhkZXNjLCBvYmpNZXRob2RXaXRoQXJnc0FyZ2MsIG9iak1ldGhvZFdpdGhBcmdz
QXJndik7CiAgICAgcHJvdG8tPlNldCh2ODo6U3RyaW5nOjpOZXcoIm9iak1ldGhvZFdpdGhBcmdz
IiksIHY4OjpGdW5jdGlvblRlbXBsYXRlOjpOZXcoVGVzdE9iakludGVybmFsOjpvYmpNZXRob2RX
aXRoQXJnc0NhbGxiYWNrLCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4oKSwgb2JqTWV0aG9kV2l0aEFy
Z3NTaWduYXR1cmUpKTsKIAotICAgIC8vIEN1c3RvbSBTaWduYXR1cmUgJ21ldGhvZFRoYXRSZXF1
aXJlc0FsbEFyZ3MnCi0gICAgY29uc3QgaW50IG1ldGhvZFRoYXRSZXF1aXJlc0FsbEFyZ3NBcmdj
ID0gMjsKLSAgICB2ODo6SGFuZGxlPHY4OjpGdW5jdGlvblRlbXBsYXRlPiBtZXRob2RUaGF0UmVx
dWlyZXNBbGxBcmdzQXJndlttZXRob2RUaGF0UmVxdWlyZXNBbGxBcmdzQXJnY10gPSB7IHY4OjpI
YW5kbGU8djg6OkZ1bmN0aW9uVGVtcGxhdGU+KCksIFY4VGVzdE9iajo6R2V0UmF3VGVtcGxhdGUo
KSB9OwotICAgIHY4OjpIYW5kbGU8djg6OlNpZ25hdHVyZT4gbWV0aG9kVGhhdFJlcXVpcmVzQWxs
QXJnc1NpZ25hdHVyZSA9IHY4OjpTaWduYXR1cmU6Ok5ldyhkZXNjLCBtZXRob2RUaGF0UmVxdWly
ZXNBbGxBcmdzQXJnYywgbWV0aG9kVGhhdFJlcXVpcmVzQWxsQXJnc0FyZ3YpOwotICAgIHByb3Rv
LT5TZXQodjg6OlN0cmluZzo6TmV3KCJtZXRob2RUaGF0UmVxdWlyZXNBbGxBcmdzIiksIHY4OjpG
dW5jdGlvblRlbXBsYXRlOjpOZXcoVGVzdE9iakludGVybmFsOjptZXRob2RUaGF0UmVxdWlyZXNB
bGxBcmdzQ2FsbGJhY2ssIHY4OjpIYW5kbGU8djg6OlZhbHVlPigpLCBtZXRob2RUaGF0UmVxdWly
ZXNBbGxBcmdzU2lnbmF0dXJlKSk7Ci0KLSAgICAvLyBDdXN0b20gU2lnbmF0dXJlICdtZXRob2RU
aGF0UmVxdWlyZXNBbGxBcmdzQW5kVGhyb3dzJwotICAgIGNvbnN0IGludCBtZXRob2RUaGF0UmVx
dWlyZXNBbGxBcmdzQW5kVGhyb3dzQXJnYyA9IDI7Ci0gICAgdjg6OkhhbmRsZTx2ODo6RnVuY3Rp
b25UZW1wbGF0ZT4gbWV0aG9kVGhhdFJlcXVpcmVzQWxsQXJnc0FuZFRocm93c0FyZ3ZbbWV0aG9k
VGhhdFJlcXVpcmVzQWxsQXJnc0FuZFRocm93c0FyZ2NdID0geyB2ODo6SGFuZGxlPHY4OjpGdW5j
dGlvblRlbXBsYXRlPigpLCBWOFRlc3RPYmo6OkdldFJhd1RlbXBsYXRlKCkgfTsKLSAgICB2ODo6
SGFuZGxlPHY4OjpTaWduYXR1cmU+IG1ldGhvZFRoYXRSZXF1aXJlc0FsbEFyZ3NBbmRUaHJvd3NT
aWduYXR1cmUgPSB2ODo6U2lnbmF0dXJlOjpOZXcoZGVzYywgbWV0aG9kVGhhdFJlcXVpcmVzQWxs
QXJnc0FuZFRocm93c0FyZ2MsIG1ldGhvZFRoYXRSZXF1aXJlc0FsbEFyZ3NBbmRUaHJvd3NBcmd2
KTsKLSAgICBwcm90by0+U2V0KHY4OjpTdHJpbmc6Ok5ldygibWV0aG9kVGhhdFJlcXVpcmVzQWxs
QXJnc0FuZFRocm93cyIpLCB2ODo6RnVuY3Rpb25UZW1wbGF0ZTo6TmV3KFRlc3RPYmpJbnRlcm5h
bDo6bWV0aG9kVGhhdFJlcXVpcmVzQWxsQXJnc0FuZFRocm93c0NhbGxiYWNrLCB2ODo6SGFuZGxl
PHY4OjpWYWx1ZT4oKSwgbWV0aG9kVGhhdFJlcXVpcmVzQWxsQXJnc0FuZFRocm93c1NpZ25hdHVy
ZSkpOwotCiAgICAgLy8gQ3VzdG9tIFNpZ25hdHVyZSAnY3VzdG9tQXJnc0FuZEV4Y2VwdGlvbicK
ICAgICBjb25zdCBpbnQgY3VzdG9tQXJnc0FuZEV4Y2VwdGlvbkFyZ2MgPSAxOwogICAgIHY4OjpI
YW5kbGU8djg6OkZ1bmN0aW9uVGVtcGxhdGU+IGN1c3RvbUFyZ3NBbmRFeGNlcHRpb25Bcmd2W2N1
c3RvbUFyZ3NBbmRFeGNlcHRpb25BcmdjXSA9IHsgVjhsb2c6OkdldFJhd1RlbXBsYXRlKCkgfTsK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL1dlYktpdENTU01hdHJpeC5oIGIvV2ViQ29yZS9jc3Mv
V2ViS2l0Q1NTTWF0cml4LmgKaW5kZXggNTZiZjc2Yi4uNzJhOTVlZiAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9jc3MvV2ViS2l0Q1NTTWF0cml4LmgKKysrIGIvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTTWF0
cml4LmgKQEAgLTExOSwyMSArMTE5LDIxIEBAIHB1YmxpYzoKICAgICAvLyBQYXNzaW5nIGEgTmFO
IHdpbGwgdXNlIGEgdmFsdWUgb2YgMC4gVGhpcyBhbGxvd3MgdGhlIDNEIGZvcm0gdG8gdXNlZCBm
b3IgMkQgb3BlcmF0aW9ucwogICAgIC8vIE9wZXJhdGlvbiBpcyBwZXJmb3JtZWQgYXMgdGhvdWdo
IHRoZSB0aGlzIG1hdHJpeCBpcyBtdWx0aXBsaWVkIGJ5IGEgbWF0cml4IHdpdGgKICAgICAvLyB0
aGUgdHJhbnNsYXRpb24gdmFsdWVzIG9uIHRoZSBsZWZ0IChyZXN1bHQgPSB0cmFuc2xhdGlvbih4
LHkseikgKiB0aGlzKQotICAgIFBhc3NSZWZQdHI8V2ViS2l0Q1NTTWF0cml4PiB0cmFuc2xhdGUo
ZG91YmxlIHgsIGRvdWJsZSB5LCBkb3VibGUgeikgY29uc3Q7CisgICAgUGFzc1JlZlB0cjxXZWJL
aXRDU1NNYXRyaXg+IHRyYW5zbGF0ZShkb3VibGUgeCwgZG91YmxlIHksIGRvdWJsZSB6ID0gTkFO
KSBjb25zdDsKICAgICAKICAgICAvLyBSZXR1cm5zIHRoaXMgbWF0cml4IHNjYWxlZCBieSB0aGUg
cGFzc2VkIHZhbHVlcy4KICAgICAvLyBQYXNzaW5nIHNjYWxlWCBvciBzY2FsZVogYXMgTmFOIHVz
ZXMgYSB2YWx1ZSBvZiAxLCBidXQgcGFzc2luZyBzY2FsZVkgb2YgTmFOIAogICAgIC8vIG1ha2Vz
IGl0IHRoZSBzYW1lIGFzIHNjYWxlWC4gVGhpcyBhbGxvd3MgdGhlIDNEIGZvcm0gdG8gdXNlZCBm
b3IgMkQgb3BlcmF0aW9ucwogICAgIC8vIE9wZXJhdGlvbiBpcyBwZXJmb3JtZWQgYXMgdGhvdWdo
IHRoZSB0aGlzIG1hdHJpeCBpcyBtdWx0aXBsaWVkIGJ5IGEgbWF0cml4IHdpdGgKICAgICAvLyB0
aGUgc2NhbGUgdmFsdWVzIG9uIHRoZSBsZWZ0IChyZXN1bHQgPSBzY2FsZSh4LHkseikgKiB0aGlz
KQotICAgIFBhc3NSZWZQdHI8V2ViS2l0Q1NTTWF0cml4PiBzY2FsZShkb3VibGUgc2NhbGVYLCBk
b3VibGUgc2NhbGVZLCBkb3VibGUgc2NhbGVaKSBjb25zdDsKKyAgICBQYXNzUmVmUHRyPFdlYktp
dENTU01hdHJpeD4gc2NhbGUoZG91YmxlIHNjYWxlWCwgZG91YmxlIHNjYWxlWSA9IE5BTiwgZG91
YmxlIHNjYWxlWiA9IE5BTikgY29uc3Q7CiAKICAgICAvLyBSZXR1cm5zIHRoaXMgbWF0cml4IHJv
dGF0ZWQgYnkgdGhlIHBhc3NlZCB2YWx1ZXMuCiAgICAgLy8gSWYgcm90WSBhbmQgcm90WiBhcmUg
TmFOLCByb3RhdGUgYWJvdXQgWiAocm90WD0wLCByb3RhdGVZPTAsIHJvdGF0ZVo9cm90WCkuCiAg
ICAgLy8gT3RoZXJ3aXNlIHVzZSBhIHJvdGF0aW9uIHZhbHVlIG9mIDAgZm9yIGFueSBwYXNzZWQg
TmFOLiAgICAKICAgICAvLyBPcGVyYXRpb24gaXMgcGVyZm9ybWVkIGFzIHRob3VnaCB0aGUgdGhp
cyBtYXRyaXggaXMgbXVsdGlwbGllZCBieSBhIG1hdHJpeCB3aXRoCiAgICAgLy8gdGhlIHJvdGF0
aW9uIHZhbHVlcyBvbiB0aGUgbGVmdCAocmVzdWx0ID0gcm90YXRpb24oeCx5LHopICogdGhpcykK
LSAgICBQYXNzUmVmUHRyPFdlYktpdENTU01hdHJpeD4gcm90YXRlKGRvdWJsZSByb3RYLCBkb3Vi
bGUgcm90WSwgZG91YmxlIHJvdFopIGNvbnN0OworICAgIFBhc3NSZWZQdHI8V2ViS2l0Q1NTTWF0
cml4PiByb3RhdGUoZG91YmxlIHJvdFgsIGRvdWJsZSByb3RZID0gTkFOLCBkb3VibGUgcm90WiA9
IE5BTikgY29uc3Q7CiAgICAgCiAgICAgLy8gUmV0dXJucyB0aGlzIG1hdHJpeCByb3RhdGVkIGFi
b3V0IHRoZSBwYXNzZWQgYXhpcyBieSB0aGUgcGFzc2VkIGFuZ2xlLgogICAgIC8vIFBhc3Npbmcg
YSBOYU4gd2lsbCB1c2UgYSB2YWx1ZSBvZiAwLiBJZiB0aGUgYXhpcyBpcyAoMCwwLDApIHVzZSBh
IHZhbHVlCmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NNYXRyaXguaWRsIGIvV2Vi
Q29yZS9jc3MvV2ViS2l0Q1NTTWF0cml4LmlkbAppbmRleCA5ZDZjODk3Li5hMTFmYjIzIDEwMDY0
NAotLS0gYS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NNYXRyaXguaWRsCisrKyBiL1dlYkNvcmUvY3Nz
L1dlYktpdENTU01hdHJpeC5pZGwKQEAgLTYzLDE3ICs2MywxNyBAQCBtb2R1bGUgY3NzIHsKICAg
ICAgICAgCiAgICAgICAgIC8vIFJldHVybiB0aGlzIG1hdHJpeCB0cmFuc2xhdGVkIGJ5IHRoZSBw
YXNzZWQgdmFsdWVzLgogICAgICAgICAvLyBQYXNzaW5nIGEgTmFOIHdpbGwgdXNlIGEgdmFsdWUg
b2YgMC4gVGhpcyBhbGxvd3MgdGhlIDNEIGZvcm0gdG8gdXNlZCBmb3IgMkQgb3BlcmF0aW9ucyAg
ICAKLSAgICAgICAgW0ltbXV0YWJsZV0gV2ViS2l0Q1NTTWF0cml4IHRyYW5zbGF0ZShpbiBkb3Vi
bGUgeCwgaW4gZG91YmxlIHksIGluIGRvdWJsZSB6KTsKKyAgICAgICAgW0ltbXV0YWJsZV0gV2Vi
S2l0Q1NTTWF0cml4IHRyYW5zbGF0ZShpbiBkb3VibGUgeCwgaW4gZG91YmxlIHksIGluIFtPcHRp
b25hbF0gZG91YmxlIHopOwogICAgICAgICAKICAgICAgICAgLy8gUmV0dXJucyB0aGlzIG1hdHJp
eCBzY2FsZWQgYnkgdGhlIHBhc3NlZCB2YWx1ZXMuCiAgICAgICAgIC8vIFBhc3Npbmcgc2NhbGVY
IG9yIHNjYWxlWiBhcyBOYU4gdXNlcyBhIHZhbHVlIG9mIDEsIGJ1dCBwYXNzaW5nIHNjYWxlWSBv
ZiBOYU4gCiAgICAgICAgIC8vIG1ha2VzIGl0IHRoZSBzYW1lIGFzIHNjYWxlWC4gVGhpcyBhbGxv
d3MgdGhlIDNEIGZvcm0gdG8gdXNlZCBmb3IgMkQgb3BlcmF0aW9ucwotICAgICAgICBbSW1tdXRh
YmxlXSBXZWJLaXRDU1NNYXRyaXggc2NhbGUoaW4gZG91YmxlIHNjYWxlWCwgaW4gZG91YmxlIHNj
YWxlWSwgaW4gZG91YmxlIHNjYWxlWik7CisgICAgICAgIFtJbW11dGFibGVdIFdlYktpdENTU01h
dHJpeCBzY2FsZShpbiBkb3VibGUgc2NhbGVYLCBpbiBbT3B0aW9uYWxdIGRvdWJsZSBzY2FsZVks
IGluIFtPcHRpb25hbF0gZG91YmxlIHNjYWxlWik7CiAgICAgICAgIAogICAgICAgICAvLyBSZXR1
cm5zIHRoaXMgbWF0cml4IHJvdGF0ZWQgYnkgdGhlIHBhc3NlZCB2YWx1ZXMuCiAgICAgICAgIC8v
IElmIHJvdFkgYW5kIHJvdFogYXJlIE5hTiwgcm90YXRlIGFib3V0IFogKHJvdFg9MCwgcm90YXRl
WT0wLCByb3RhdGVaPXJvdFgpLgogICAgICAgICAvLyBPdGhlcndpc2UgdXNlIGEgcm90YXRpb24g
dmFsdWUgb2YgMCBmb3IgYW55IHBhc3NlZCBOYU4uICAgIAotICAgICAgICBbSW1tdXRhYmxlXSBX
ZWJLaXRDU1NNYXRyaXggcm90YXRlKGluIGRvdWJsZSByb3RYLCBpbiBkb3VibGUgcm90WSwgaW4g
ZG91YmxlIHJvdFopOworICAgICAgICBbSW1tdXRhYmxlXSBXZWJLaXRDU1NNYXRyaXggcm90YXRl
KGluIGRvdWJsZSByb3RYLCBpbiBbT3B0aW9uYWxdIGRvdWJsZSByb3RZLCBpbiBbT3B0aW9uYWxd
IGRvdWJsZSByb3RaKTsKICAgICAgICAgCiAgICAgICAgIC8vIFJldHVybnMgdGhpcyBtYXRyaXgg
cm90YXRlZCBhYm91dCB0aGUgcGFzc2VkIGF4aXMgYnkgdGhlIHBhc3NlZCBhbmdsZS4KICAgICAg
ICAgLy8gUGFzc2luZyBhIE5hTiB3aWxsIHVzZSBhIHZhbHVlIG9mIDAuIElmIHRoZSBheGlzIGlz
ICgwLDAsMCkgdXNlIGEgdmFsdWUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0NsaXBib2FyZC5p
ZGwgYi9XZWJDb3JlL2RvbS9DbGlwYm9hcmQuaWRsCmluZGV4IDEwMjRhMzYuLmViNjhhM2YgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL0NsaXBib2FyZC5pZGwKKysrIGIvV2ViQ29yZS9kb20vQ2xp
cGJvYXJkLmlkbApAQCAtMzgsOCArMzgsNyBAQCBtb2R1bGUgY29yZSB7CiAgICAgICAgICAgICBy
YWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgW0N1c3RvbV0gdm9pZCBnZXREYXRhKGluIERP
TVN0cmluZyB0eXBlKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgICAg
IC8vIEZJWE1FOiBSZXF1aXJlc0FsbEFyZ3VtZW50cyBpcyBwcm9iYWJseSBib2d1cyBoZXJlLgot
ICAgICAgICBbUmVxdWlyZXNBbGxBcmd1bWVudHNdIGJvb2xlYW4gc2V0RGF0YShpbiBET01TdHJp
bmcgdHlwZSwgaW4gRE9NU3RyaW5nIGRhdGEpOworICAgICAgICBib29sZWFuIHNldERhdGEoaW4g
RE9NU3RyaW5nIHR5cGUsIGluIERPTVN0cmluZyBkYXRhKTsKICAgICAgICAgW0N1c3RvbV0gdm9p
ZCBzZXREcmFnSW1hZ2UoaW4gSFRNTEltYWdlRWxlbWVudCBpbWFnZSwgaW4gbG9uZyB4LCBpbiBs
b25nIHkpCiAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICB9OwpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9kb20vRG9jdW1lbnQuaWRsIGIvV2ViQ29yZS9kb20vRG9jdW1lbnQuaWRs
CmluZGV4IDkzMTliYzIuLjhiNDdjMzEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmlkbAorKysgYi9XZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwKQEAgLTEyOCwxNSArMTI4LDE4IEBA
IG1vZHVsZSBjb3JlIHsKIAogICAgICAgICAvLyBDb21tb24gZXh0ZW5zaW9ucwogCisjaWYgZGVm
aW5lZChMQU5HVUFHRV9PQkpFQ1RJVkVfQykgJiYgTEFOR1VBR0VfT0JKRUNUSVZFX0MKICAgICAg
ICAgYm9vbGVhbiAgICAgICAgICAgIGV4ZWNDb21tYW5kKGluIERPTVN0cmluZyBjb21tYW5kLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gYm9vbGVhbiB1c2VySW50
ZXJmYWNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW0NvbnZl
cnRVbmRlZmluZWRPck51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyB2YWx1ZSk7Ci0KLSNpZiBk
ZWZpbmVkKExBTkdVQUdFX09CSkVDVElWRV9DKSAmJiBMQU5HVUFHRV9PQkpFQ1RJVkVfQwogICAg
ICAgICAvLyBGSVhNRTogcmVtb3ZlIHRoZSB0aGVzZSB0d28gdmVyc2lvbnMgb25jZSBbT3B0aW9u
YWxdIGlzIGltcGxlbWVudGVkIGZvciBPYmplY3RpdmUtQy4KICAgICAgICAgYm9vbGVhbiAgICAg
ICAgICAgIGV4ZWNDb21tYW5kKGluIERPTVN0cmluZyBjb21tYW5kLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaW4gYm9vbGVhbiB1c2VySW50ZXJmYWNlKTsKICAgICAg
ICAgYm9vbGVhbiAgICAgICAgICAgIGV4ZWNDb21tYW5kKGluIERPTVN0cmluZyBjb21tYW5kKTsK
KyNlbHNlCisgICAgICAgIGJvb2xlYW4gICAgICAgICAgICBleGVjQ29tbWFuZChpbiBET01TdHJp
bmcgY29tbWFuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtP
cHRpb25hbF0gYm9vbGVhbiB1c2VySW50ZXJmYWNlLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsLCBDb252ZXJ0VW5kZWZpbmVkT3JOdWxsVG9OdWxs
U3RyaW5nXSBET01TdHJpbmcgdmFsdWUpOwogI2VuZGlmCiAKICAgICAgICAgYm9vbGVhbiAgICAg
ICAgICAgIHF1ZXJ5Q29tbWFuZEVuYWJsZWQoaW4gRE9NU3RyaW5nIGNvbW1hbmQpOwpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcCBiL1dlYkNvcmUvaHRtbC9I
VE1MU2VsZWN0RWxlbWVudC5jcHAKaW5kZXggNGMxMjRlMC4uZTdjZmQ0ZiAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcAorKysgYi9XZWJDb3JlL2h0bWwvSFRN
TFNlbGVjdEVsZW1lbnQuY3BwCkBAIC0xNDQsNiArMTQ0LDExIEBAIHZvaWQgSFRNTFNlbGVjdEVs
ZW1lbnQ6OmFkZChIVE1MRWxlbWVudCAqZWxlbWVudCwgSFRNTEVsZW1lbnQgKmJlZm9yZSwgRXhj
ZXB0aW9uCiAgICAgaW5zZXJ0QmVmb3JlKGVsZW1lbnQsIGJlZm9yZSwgZWMpOwogfQogCit2b2lk
IEhUTUxTZWxlY3RFbGVtZW50OjphZGQoSFRNTEVsZW1lbnQgKmVsZW1lbnQsIEV4Y2VwdGlvbkNv
ZGUmIGVjKQoreworICAgIGFkZChlbGVtZW50LCAwLCBlYyk7Cit9CisKIHZvaWQgSFRNTFNlbGVj
dEVsZW1lbnQ6OnJlbW92ZShpbnQgaW5kZXgpCiB7CiAgICAgaW50IGxpc3RJbmRleCA9IG9wdGlv
blRvTGlzdEluZGV4KGluZGV4KTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0
RWxlbWVudC5oIGIvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmgKaW5kZXggNTljOTQz
YS4uNzVlZGUzNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmgK
KysrIGIvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmgKQEAgLTQ5LDYgKzQ5LDcgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBtdWx0aXBsZSgpIGNvbnN0IHsgcmV0dXJuIG1fZGF0
YS5tdWx0aXBsZSgpOyB9CiAKICAgICB2b2lkIGFkZChIVE1MRWxlbWVudCogZWxlbWVudCwgSFRN
TEVsZW1lbnQqIGJlZm9yZSwgRXhjZXB0aW9uQ29kZSYpOworICAgIHZvaWQgYWRkKEhUTUxFbGVt
ZW50KiBlbGVtZW50LCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCByZW1vdmUoaW50IGluZGV4
KTsKIAogICAgIFN0cmluZyB2YWx1ZSgpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxT
ZWxlY3RFbGVtZW50LmlkbCBiL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5pZGwKaW5k
ZXggMzMwMzI3Mi4uZjkyZGJkYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RF
bGVtZW50LmlkbAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaWRsCkBAIC01
NCw3ICs1NCw3IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIGxv
bmcgICAgICAgICAgICBzaXplOwogICAgICAgICAKICAgICAgICAgW09sZFN0eWxlT2JqQ10gdm9p
ZCBhZGQoaW4gSFRNTEVsZW1lbnQgZWxlbWVudCwgCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaW4gSFRNTEVsZW1lbnQgYmVmb3JlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGluIFtPcHRpb25hbF0gSFRNTEVsZW1lbnQgYmVmb3JlKQogICAgICAgICAgICAgcmFpc2Vz
KERPTUV4Y2VwdGlvbik7CiAKICNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpICYmIExB
TkdVQUdFX0pBVkFTQ1JJUFQKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9EYXRhR3JpZC5qcyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EYXRhR3JpZC5qcwpp
bmRleCAxZWNjNGYyLi5iZDJkYjg2IDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvRGF0YUdyaWQuanMKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RhdGFH
cmlkLmpzCkBAIC05ODcsNyArOTg3LDcgQEAgV2ViSW5zcGVjdG9yLkRhdGFHcmlkTm9kZS5wcm90
b3R5cGUgPSB7CiAgICAgICAgIGlmIChjb2x1bW5JZGVudGlmaWVyID09PSB0aGlzLmRhdGFHcmlk
LmRpc2Nsb3N1cmVDb2x1bW5JZGVudGlmaWVyKSB7CiAgICAgICAgICAgICBjZWxsLmFkZFN0eWxl
Q2xhc3MoImRpc2Nsb3N1cmUiKTsKICAgICAgICAgICAgIGlmICh0aGlzLmRlcHRoKQotICAgICAg
ICAgICAgICAgIGNlbGwuc3R5bGUuc2V0UHJvcGVydHkoInBhZGRpbmctbGVmdCIsICh0aGlzLmRl
cHRoICogdGhpcy5kYXRhR3JpZC5pbmRlbnRXaWR0aCkgKyAicHgiKTsKKyAgICAgICAgICAgICAg
ICBjZWxsLnN0eWxlLnNldFByb3BlcnR5KCJwYWRkaW5nLWxlZnQiLCAodGhpcy5kZXB0aCAqIHRo
aXMuZGF0YUdyaWQuaW5kZW50V2lkdGgpICsgInB4IiwgbnVsbCk7CiAgICAgICAgIH0KIAogICAg
ICAgICByZXR1cm4gY2VsbDsKQEAgLTExOTksNyArMTE5OSw3IEBAIFdlYkluc3BlY3Rvci5EYXRh
R3JpZE5vZGUucHJvdG90eXBlID0gewogICAgICAgICB2YXIgY2VsbCA9IGV2ZW50LnRhcmdldC5l
bmNsb3NpbmdOb2RlT3JTZWxmV2l0aE5vZGVOYW1lKCJ0ZCIpOwogICAgICAgICBpZiAoIWNlbGwu
aGFzU3R5bGVDbGFzcygiZGlzY2xvc3VyZSIpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgICAgICB2YXIgY29tcHV0ZWRMZWZ0UGFkZGluZyA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxl
KGNlbGwpLmdldFByb3BlcnR5Q1NTVmFsdWUoInBhZGRpbmctbGVmdCIpLmdldEZsb2F0VmFsdWUo
Q1NTUHJpbWl0aXZlVmFsdWUuQ1NTX1BYKTsKKyAgICAgICAgdmFyIGNvbXB1dGVkTGVmdFBhZGRp
bmcgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShjZWxsLCBudWxsKS5nZXRQcm9wZXJ0eUNTU1Zh
bHVlKCJwYWRkaW5nLWxlZnQiKS5nZXRGbG9hdFZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlLkNTU19Q
WCk7CiAgICAgICAgIHZhciBsZWZ0ID0gY2VsbC50b3RhbE9mZnNldExlZnQgKyBjb21wdXRlZExl
ZnRQYWRkaW5nOwogICAgICAgICByZXR1cm4gZXZlbnQucGFnZVggPj0gbGVmdCAmJiBldmVudC5w
YWdlWCA8PSBsZWZ0ICsgdGhpcy5kaXNjbG9zdXJlVG9nZ2xlV2lkdGg7CiAgICAgfSwKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EcmF3ZXIuanMgYi9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvRHJhd2VyLmpzCmluZGV4IDNmODI3ZmIuLjU3MWMwZmYgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EcmF3ZXIuanMKKysrIGIvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RyYXdlci5qcwpAQCAtMTU5LDcgKzE1OSw3IEBAIFdlYklu
c3BlY3Rvci5EcmF3ZXIucHJvdG90eXBlID0gewogCiAgICAgICAgIC8vIFRlbXBvcmFyaWx5IHNl
dCBwcm9wZXJ0aWVzIGFuZCBjbGFzc2VzIHRvIG1pbWljIHRoZSBwb3N0LWFuaW1hdGlvbiB2YWx1
ZXMgc28gcGFuZWxzCiAgICAgICAgIC8vIGxpa2UgRWxlbWVudHMgaW4gdGhlaXIgdXBkYXRlU3Rh
dHVzQmFySXRlbXMgY2FsbCB3aWxsIHNpemUgdGhpbmdzIHRvIGZpdCB0aGUgZmluYWwgbG9jYXRp
b24uCi0gICAgICAgIHRoaXMubWFpblN0YXR1c0Jhci5zdHlsZS5zZXRQcm9wZXJ0eSgicGFkZGlu
Zy1sZWZ0IiwgKGFuY2hvcmVkSXRlbXMub2Zmc2V0V2lkdGggLSAxKSArICJweCIpOworICAgICAg
ICB0aGlzLm1haW5TdGF0dXNCYXIuc3R5bGUuc2V0UHJvcGVydHkoInBhZGRpbmctbGVmdCIsIChh
bmNob3JlZEl0ZW1zLm9mZnNldFdpZHRoIC0gMSkgKyAicHgiLCBudWxsKTsKICAgICAgICAgZG9j
dW1lbnQuYm9keS5yZW1vdmVTdHlsZUNsYXNzKCJkcmF3ZXItdmlzaWJsZSIpOwogICAgICAgICBp
ZiAoInVwZGF0ZVN0YXR1c0Jhckl0ZW1zIiBpbiBXZWJJbnNwZWN0b3IuY3VycmVudFBhbmVsKQog
ICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmN1cnJlbnRQYW5lbC51cGRhdGVTdGF0dXNCYXJJdGVt
cygpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzUGFu
ZWwuanMgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRWxlbWVudHNQYW5lbC5qcwppbmRl
eCBjODUzNDQwLi45ZDQzYjQ2IDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvRWxlbWVudHNQYW5lbC5qcworKysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRWxl
bWVudHNQYW5lbC5qcwpAQCAtMTkxLDkgKzE5MSw5IEBAIFdlYkluc3BlY3Rvci5FbGVtZW50c1Bh
bmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgaWYgKCFpbnNwZWN0ZWRSb290RG9jdW1lbnQpCiAg
ICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgaW5zcGVjdGVkUm9vdERvY3VtZW50LmFkZEV2
ZW50TGlzdGVuZXIoIkRPTU5vZGVJbnNlcnRlZCIsIHRoaXMuX25vZGVJbnNlcnRlZC5iaW5kKHRo
aXMpKTsKLSAgICAgICAgaW5zcGVjdGVkUm9vdERvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIkRP
TU5vZGVSZW1vdmVkIiwgdGhpcy5fbm9kZVJlbW92ZWQuYmluZCh0aGlzKSk7Ci0gICAgICAgIGlu
c3BlY3RlZFJvb3REb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJET01BdHRyTW9kaWZpZWQiLCB0
aGlzLl9hdHRyaWJ1dGVzVXBkYXRlZC5iaW5kKHRoaXMpKTsKKyAgICAgICAgaW5zcGVjdGVkUm9v
dERvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIkRPTU5vZGVJbnNlcnRlZCIsIHRoaXMuX25vZGVJ
bnNlcnRlZC5iaW5kKHRoaXMpLCBmYWxzZSk7CisgICAgICAgIGluc3BlY3RlZFJvb3REb2N1bWVu
dC5hZGRFdmVudExpc3RlbmVyKCJET01Ob2RlUmVtb3ZlZCIsIHRoaXMuX25vZGVSZW1vdmVkLmJp
bmQodGhpcyksIGZhbHNlKTsKKyAgICAgICAgaW5zcGVjdGVkUm9vdERvY3VtZW50LmFkZEV2ZW50
TGlzdGVuZXIoIkRPTUF0dHJNb2RpZmllZCIsIHRoaXMuX2F0dHJpYnV0ZXNVcGRhdGVkLmJpbmQo
dGhpcyksIGZhbHNlKTsKIAogICAgICAgICB0aGlzLnRyZWVPdXRsaW5lLnN1cHByZXNzU2VsZWN0
SGlnaGxpZ2h0ID0gdHJ1ZTsKICAgICAgICAgdGhpcy5yb290RE9NTm9kZSA9IGluc3BlY3RlZFJv
b3REb2N1bWVudDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Jbmpl
Y3RlZFNjcmlwdC5qcyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9JbmplY3RlZFNjcmlw
dC5qcwppbmRleCBlM2JlNmEzLi44YjRiNzQ5IDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvSW5qZWN0ZWRTY3JpcHQuanMKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL0luamVjdGVkU2NyaXB0LmpzCkBAIC00NTAsNyArNDUwLDcgQEAgSW5qZWN0ZWRTY3Jp
cHQucGVyZm9ybVNlYXJjaCA9IGZ1bmN0aW9uKHdoaXRlc3BhY2VUcmltbWVkUXVlcnksIHJ1blN5
bmNocm9ub3VzbHkKICAgICB7CiAgICAgICAgIGlmICghdGFnTmFtZVF1ZXJ5KQogICAgICAgICAg
ICAgcmV0dXJuOwotICAgICAgICBjb25zdCByZXN1bHQgPSBkb2MuX19wcm90b19fLmV2YWx1YXRl
LmNhbGwoZG9jLCAiLy8qW2NvbnRhaW5zKG5hbWUoKSwgJyIgKyBlc2NhcGVkVGFnTmFtZVF1ZXJ5
ICsgIicpXSIsIGRvYywgbnVsbCwgWFBhdGhSZXN1bHQuT1JERVJFRF9OT0RFX1NOQVBTSE9UX1RZ
UEUpOworICAgICAgICBjb25zdCByZXN1bHQgPSBkb2MuX19wcm90b19fLmV2YWx1YXRlLmNhbGwo
ZG9jLCAiLy8qW2NvbnRhaW5zKG5hbWUoKSwgJyIgKyBlc2NhcGVkVGFnTmFtZVF1ZXJ5ICsgIicp
XSIsIGRvYywgbnVsbCwgWFBhdGhSZXN1bHQuT1JERVJFRF9OT0RFX1NOQVBTSE9UX1RZUEUsIG51
bGwpOwogICAgICAgICBhZGROb2Rlc1RvUmVzdWx0cy5jYWxsKHRoaXMsIHJlc3VsdCwgcmVzdWx0
LnNuYXBzaG90TGVuZ3RoLCByZXN1bHQuc25hcHNob3RJdGVtKTsKICAgICB9CiAKQEAgLTQ1OCw3
ICs0NTgsNyBAQCBJbmplY3RlZFNjcmlwdC5wZXJmb3JtU2VhcmNoID0gZnVuY3Rpb24od2hpdGVz
cGFjZVRyaW1tZWRRdWVyeSwgcnVuU3luY2hyb25vdXNseQogICAgIHsKICAgICAgICAgaWYgKCF0
YWdOYW1lUXVlcnkpCiAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIGNvbnN0IHJlc3VsdCA9
IGRvYy5fX3Byb3RvX18uZXZhbHVhdGUuY2FsbChkb2MsICIvLypbc3RhcnRzLXdpdGgobmFtZSgp
LCAnIiArIGVzY2FwZWRUYWdOYW1lUXVlcnkgKyAiJyldIiwgZG9jLCBudWxsLCBYUGF0aFJlc3Vs
dC5PUkRFUkVEX05PREVfU05BUFNIT1RfVFlQRSk7CisgICAgICAgIGNvbnN0IHJlc3VsdCA9IGRv
Yy5fX3Byb3RvX18uZXZhbHVhdGUuY2FsbChkb2MsICIvLypbc3RhcnRzLXdpdGgobmFtZSgpLCAn
IiArIGVzY2FwZWRUYWdOYW1lUXVlcnkgKyAiJyldIiwgZG9jLCBudWxsLCBYUGF0aFJlc3VsdC5P
UkRFUkVEX05PREVfU05BUFNIT1RfVFlQRSwgbnVsbCk7CiAgICAgICAgIGFkZE5vZGVzVG9SZXN1
bHRzLmNhbGwodGhpcywgcmVzdWx0LCByZXN1bHQuc25hcHNob3RMZW5ndGgsIHJlc3VsdC5zbmFw
c2hvdEl0ZW0pOwogICAgIH0KIApAQCAtNDY5LDEzICs0NjksMTMgQEAgSW5qZWN0ZWRTY3JpcHQu
cGVyZm9ybVNlYXJjaCA9IGZ1bmN0aW9uKHdoaXRlc3BhY2VUcmltbWVkUXVlcnksIHJ1blN5bmNo
cm9ub3VzbHkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIGNvbnN0
IHJlc3VsdCA9IGRvYy5fX3Byb3RvX18uZXZhbHVhdGUuY2FsbChkb2MsICIvLypbY29udGFpbnMo
bmFtZSgpLCAnIiArIGVzY2FwZWRUYWdOYW1lUXVlcnkgKyAiJykgb3IgY29udGFpbnMoQCosICci
ICsgZXNjYXBlZFF1ZXJ5ICsgIicpXSIsIGRvYywgbnVsbCwgWFBhdGhSZXN1bHQuT1JERVJFRF9O
T0RFX1NOQVBTSE9UX1RZUEUpOworICAgICAgICBjb25zdCByZXN1bHQgPSBkb2MuX19wcm90b19f
LmV2YWx1YXRlLmNhbGwoZG9jLCAiLy8qW2NvbnRhaW5zKG5hbWUoKSwgJyIgKyBlc2NhcGVkVGFn
TmFtZVF1ZXJ5ICsgIicpIG9yIGNvbnRhaW5zKEAqLCAnIiArIGVzY2FwZWRRdWVyeSArICInKV0i
LCBkb2MsIG51bGwsIFhQYXRoUmVzdWx0Lk9SREVSRURfTk9ERV9TTkFQU0hPVF9UWVBFLCBudWxs
KTsKICAgICAgICAgYWRkTm9kZXNUb1Jlc3VsdHMuY2FsbCh0aGlzLCByZXN1bHQsIHJlc3VsdC5z
bmFwc2hvdExlbmd0aCwgcmVzdWx0LnNuYXBzaG90SXRlbSk7CiAgICAgfQogCiAgICAgZnVuY3Rp
b24gbWF0Y2hQYXJ0aWFsQXR0cmlidXRlVmFsdWVzKGRvYykKICAgICB7Ci0gICAgICAgIGNvbnN0
IHJlc3VsdCA9IGRvYy5fX3Byb3RvX18uZXZhbHVhdGUuY2FsbChkb2MsICIvLypbY29udGFpbnMo
QCosICciICsgZXNjYXBlZFF1ZXJ5ICsgIicpXSIsIGRvYywgbnVsbCwgWFBhdGhSZXN1bHQuT1JE
RVJFRF9OT0RFX1NOQVBTSE9UX1RZUEUpOworICAgICAgICBjb25zdCByZXN1bHQgPSBkb2MuX19w
cm90b19fLmV2YWx1YXRlLmNhbGwoZG9jLCAiLy8qW2NvbnRhaW5zKEAqLCAnIiArIGVzY2FwZWRR
dWVyeSArICInKV0iLCBkb2MsIG51bGwsIFhQYXRoUmVzdWx0Lk9SREVSRURfTk9ERV9TTkFQU0hP
VF9UWVBFLCBudWxsKTsKICAgICAgICAgYWRkTm9kZXNUb1Jlc3VsdHMuY2FsbCh0aGlzLCByZXN1
bHQsIHJlc3VsdC5zbmFwc2hvdExlbmd0aCwgcmVzdWx0LnNuYXBzaG90SXRlbSk7CiAgICAgfQog
CkBAIC00ODcsMTMgKzQ4NywxMyBAQCBJbmplY3RlZFNjcmlwdC5wZXJmb3JtU2VhcmNoID0gZnVu
Y3Rpb24od2hpdGVzcGFjZVRyaW1tZWRRdWVyeSwgcnVuU3luY2hyb25vdXNseQogCiAgICAgZnVu
Y3Rpb24gbWF0Y2hQbGFpblRleHQoZG9jKQogICAgIHsKLSAgICAgICAgY29uc3QgcmVzdWx0ID0g
ZG9jLl9fcHJvdG9fXy5ldmFsdWF0ZS5jYWxsKGRvYywgIi8vdGV4dCgpW2NvbnRhaW5zKC4sICci
ICsgZXNjYXBlZFF1ZXJ5ICsgIicpXSB8IC8vY29tbWVudCgpW2NvbnRhaW5zKC4sICciICsgZXNj
YXBlZFF1ZXJ5ICsgIicpXSIsIGRvYywgbnVsbCwgWFBhdGhSZXN1bHQuT1JERVJFRF9OT0RFX1NO
QVBTSE9UX1RZUEUpOworICAgICAgICBjb25zdCByZXN1bHQgPSBkb2MuX19wcm90b19fLmV2YWx1
YXRlLmNhbGwoZG9jLCAiLy90ZXh0KClbY29udGFpbnMoLiwgJyIgKyBlc2NhcGVkUXVlcnkgKyAi
JyldIHwgLy9jb21tZW50KClbY29udGFpbnMoLiwgJyIgKyBlc2NhcGVkUXVlcnkgKyAiJyldIiwg
ZG9jLCBudWxsLCBYUGF0aFJlc3VsdC5PUkRFUkVEX05PREVfU05BUFNIT1RfVFlQRSwgbnVsbCk7
CiAgICAgICAgIGFkZE5vZGVzVG9SZXN1bHRzLmNhbGwodGhpcywgcmVzdWx0LCByZXN1bHQuc25h
cHNob3RMZW5ndGgsIHJlc3VsdC5zbmFwc2hvdEl0ZW0pOwogICAgIH0KIAogICAgIGZ1bmN0aW9u
IG1hdGNoWFBhdGhRdWVyeShkb2MpCiAgICAgewotICAgICAgICBjb25zdCByZXN1bHQgPSBkb2Mu
X19wcm90b19fLmV2YWx1YXRlLmNhbGwoZG9jLCB3aGl0ZXNwYWNlVHJpbW1lZFF1ZXJ5LCBkb2Ms
IG51bGwsIFhQYXRoUmVzdWx0Lk9SREVSRURfTk9ERV9TTkFQU0hPVF9UWVBFKTsKKyAgICAgICAg
Y29uc3QgcmVzdWx0ID0gZG9jLl9fcHJvdG9fXy5ldmFsdWF0ZS5jYWxsKGRvYywgd2hpdGVzcGFj
ZVRyaW1tZWRRdWVyeSwgZG9jLCBudWxsLCBYUGF0aFJlc3VsdC5PUkRFUkVEX05PREVfU05BUFNI
T1RfVFlQRSwgbnVsbCk7CiAgICAgICAgIGFkZE5vZGVzVG9SZXN1bHRzLmNhbGwodGhpcywgcmVz
dWx0LCByZXN1bHQuc25hcHNob3RMZW5ndGgsIHJlc3VsdC5zbmFwc2hvdEl0ZW0pOwogICAgIH0K
IApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlc1BhbmVs
LmpzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlc1BhbmVsLmpzCmluZGV4
IGIyZGZhMTUuLmYzNmFkNGEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9SZXNvdXJjZXNQYW5lbC5qcworKysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVz
b3VyY2VzUGFuZWwuanMKQEAgLTEyODMsMjEgKzEyODMsMjEgQEAgV2ViSW5zcGVjdG9yLlJlc291
cmNlR3JhcGgucHJvdG90eXBlID0gewogICAgICAgICBpZiAobGFiZWxCZWZvcmUpIHsKICAgICAg
ICAgICAgIGlmIChsZWZ0SGlkZGVuKQogICAgICAgICAgICAgICAgIHRoaXMuX2xhYmVsTGVmdEVs
ZW1lbnQuYWRkU3R5bGVDbGFzcygiaGlkZGVuIik7Ci0gICAgICAgICAgICB0aGlzLl9sYWJlbExl
ZnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCJyaWdodCIsICgxMDAgLSB0aGlzLl9wZXJjZW50
YWdlcy5zdGFydCkgKyAiJSIpOworICAgICAgICAgICAgdGhpcy5fbGFiZWxMZWZ0RWxlbWVudC5z
dHlsZS5zZXRQcm9wZXJ0eSgicmlnaHQiLCAoMTAwIC0gdGhpcy5fcGVyY2VudGFnZXMuc3RhcnQp
ICsgIiUiLCBudWxsKTsKICAgICAgICAgICAgIHRoaXMuX2xhYmVsTGVmdEVsZW1lbnQuYWRkU3R5
bGVDbGFzcygiYmVmb3JlIik7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICB0aGlzLl9s
YWJlbExlZnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCJsZWZ0IiwgdGhpcy5fcGVyY2VudGFn
ZXMuc3RhcnQgKyAiJSIpOwotICAgICAgICAgICAgdGhpcy5fbGFiZWxMZWZ0RWxlbWVudC5zdHls
ZS5zZXRQcm9wZXJ0eSgicmlnaHQiLCAoMTAwIC0gdGhpcy5fcGVyY2VudGFnZXMubWlkZGxlKSAr
ICIlIik7CisgICAgICAgICAgICB0aGlzLl9sYWJlbExlZnRFbGVtZW50LnN0eWxlLnNldFByb3Bl
cnR5KCJsZWZ0IiwgdGhpcy5fcGVyY2VudGFnZXMuc3RhcnQgKyAiJSIsIG51bGwpOworICAgICAg
ICAgICAgdGhpcy5fbGFiZWxMZWZ0RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgicmlnaHQiLCAo
MTAwIC0gdGhpcy5fcGVyY2VudGFnZXMubWlkZGxlKSArICIlIiwgbnVsbCk7CiAgICAgICAgIH0K
IAogICAgICAgICBpZiAobGFiZWxBZnRlcikgewogICAgICAgICAgICAgaWYgKHJpZ2h0SGlkZGVu
KQogICAgICAgICAgICAgICAgIHRoaXMuX2xhYmVsUmlnaHRFbGVtZW50LmFkZFN0eWxlQ2xhc3Mo
ImhpZGRlbiIpOwotICAgICAgICAgICAgdGhpcy5fbGFiZWxSaWdodEVsZW1lbnQuc3R5bGUuc2V0
UHJvcGVydHkoImxlZnQiLCB0aGlzLl9wZXJjZW50YWdlcy5lbmQgKyAiJSIpOworICAgICAgICAg
ICAgdGhpcy5fbGFiZWxSaWdodEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoImxlZnQiLCB0aGlz
Ll9wZXJjZW50YWdlcy5lbmQgKyAiJSIsIG51bGwpOwogICAgICAgICAgICAgdGhpcy5fbGFiZWxS
aWdodEVsZW1lbnQuYWRkU3R5bGVDbGFzcygiYWZ0ZXIiKTsKICAgICAgICAgfSBlbHNlIHsKLSAg
ICAgICAgICAgIHRoaXMuX2xhYmVsUmlnaHRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCJsZWZ0
IiwgdGhpcy5fcGVyY2VudGFnZXMubWlkZGxlICsgIiUiKTsKLSAgICAgICAgICAgIHRoaXMuX2xh
YmVsUmlnaHRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCJyaWdodCIsICgxMDAgLSB0aGlzLl9w
ZXJjZW50YWdlcy5lbmQpICsgIiUiKTsKKyAgICAgICAgICAgIHRoaXMuX2xhYmVsUmlnaHRFbGVt
ZW50LnN0eWxlLnNldFByb3BlcnR5KCJsZWZ0IiwgdGhpcy5fcGVyY2VudGFnZXMubWlkZGxlICsg
IiUiLCBudWxsKTsKKyAgICAgICAgICAgIHRoaXMuX2xhYmVsUmlnaHRFbGVtZW50LnN0eWxlLnNl
dFByb3BlcnR5KCJyaWdodCIsICgxMDAgLSB0aGlzLl9wZXJjZW50YWdlcy5lbmQpICsgIiUiLCBu
dWxsKTsKICAgICAgICAgfQogICAgIH0sCiAKQEAgLTEzMTUsMTIgKzEzMTUsMTIgQEAgV2ViSW5z
cGVjdG9yLlJlc291cmNlR3JhcGgucHJvdG90eXBlID0gewogICAgICAgICAgICAgdGhpcy5fZ3Jh
cGhFbGVtZW50LmFkZFN0eWxlQ2xhc3MoInJlc291cmNlcy1jYXRlZ29yeS0iICsgdGhpcy5yZXNv
dXJjZS5jYXRlZ29yeS5uYW1lKTsKICAgICAgICAgfQogCi0gICAgICAgIHRoaXMuX2JhckxlZnRF
bGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCJsZWZ0IiwgcGVyY2VudGFnZXMuc3RhcnQgKyAiJSIp
OwotICAgICAgICB0aGlzLl9iYXJSaWdodEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoInJpZ2h0
IiwgKDEwMCAtIHBlcmNlbnRhZ2VzLmVuZCkgKyAiJSIpOworICAgICAgICB0aGlzLl9iYXJMZWZ0
RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgibGVmdCIsIHBlcmNlbnRhZ2VzLnN0YXJ0ICsgIiUi
LCBudWxsKTsKKyAgICAgICAgdGhpcy5fYmFyUmlnaHRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5
KCJyaWdodCIsICgxMDAgLSBwZXJjZW50YWdlcy5lbmQpICsgIiUiLCBudWxsKTsKIAogICAgICAg
ICBpZiAoIWlzQmFyT3BhcXVlQXRMZWZ0KSB7Ci0gICAgICAgICAgICB0aGlzLl9iYXJMZWZ0RWxl
bWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgicmlnaHQiLCAoMTAwIC0gcGVyY2VudGFnZXMuZW5kKSAr
ICIlIik7Ci0gICAgICAgICAgICB0aGlzLl9iYXJSaWdodEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVy
dHkoImxlZnQiLCBwZXJjZW50YWdlcy5taWRkbGUgKyAiJSIpOworICAgICAgICAgICAgdGhpcy5f
YmFyTGVmdEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoInJpZ2h0IiwgKDEwMCAtIHBlcmNlbnRh
Z2VzLmVuZCkgKyAiJSIsIG51bGwpOworICAgICAgICAgICAgdGhpcy5fYmFyUmlnaHRFbGVtZW50
LnN0eWxlLnNldFByb3BlcnR5KCJsZWZ0IiwgcGVyY2VudGFnZXMubWlkZGxlICsgIiUiLCBudWxs
KTsKIAogICAgICAgICAgICAgaWYgKHRoaXMuX2lzQmFyT3BhcXVlQXRMZWZ0ICE9IGlzQmFyT3Bh
cXVlQXRMZWZ0KSB7CiAgICAgICAgICAgICAgICAgdGhpcy5fYmFyTGVmdEVsZW1lbnQuYWRkU3R5
bGVDbGFzcygid2FpdGluZyIpOwpAQCAtMTMyOSw4ICsxMzI5LDggQEAgV2ViSW5zcGVjdG9yLlJl
c291cmNlR3JhcGgucHJvdG90eXBlID0gewogICAgICAgICAgICAgICAgIHRoaXMuX2xhYmVsUmln
aHRFbGVtZW50LnJlbW92ZVN0eWxlQ2xhc3MoIndhaXRpbmctcmlnaHQiKTsKICAgICAgICAgICAg
IH0KICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHRoaXMuX2JhckxlZnRFbGVtZW50LnN0
eWxlLnNldFByb3BlcnR5KCJyaWdodCIsICgxMDAgLSBwZXJjZW50YWdlcy5taWRkbGUpICsgIiUi
KTsKLSAgICAgICAgICAgIHRoaXMuX2JhclJpZ2h0RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgi
bGVmdCIsIHBlcmNlbnRhZ2VzLnN0YXJ0ICsgIiUiKTsKKyAgICAgICAgICAgIHRoaXMuX2Jhckxl
ZnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCJyaWdodCIsICgxMDAgLSBwZXJjZW50YWdlcy5t
aWRkbGUpICsgIiUiLCBudWxsKTsKKyAgICAgICAgICAgIHRoaXMuX2JhclJpZ2h0RWxlbWVudC5z
dHlsZS5zZXRQcm9wZXJ0eSgibGVmdCIsIHBlcmNlbnRhZ2VzLnN0YXJ0ICsgIiUiLCBudWxsKTsK
IAogICAgICAgICAgICAgaWYgKHRoaXMuX2lzQmFyT3BhcXVlQXRMZWZ0ICE9IGlzQmFyT3BhcXVl
QXRMZWZ0KSB7CiAgICAgICAgICAgICAgICAgdGhpcy5fYmFyTGVmdEVsZW1lbnQucmVtb3ZlU3R5
bGVDbGFzcygid2FpdGluZyIpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL1N0eWxlc1NpZGViYXJQYW5lLmpzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1N0
eWxlc1NpZGViYXJQYW5lLmpzCmluZGV4IDM1ZDI1ZDQuLmViMDYyMGQgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TdHlsZXNTaWRlYmFyUGFuZS5qcworKysgYi9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU3R5bGVzU2lkZWJhclBhbmUuanMKQEAgLTU4Nyw3ICs1
ODcsNyBAQCBXZWJJbnNwZWN0b3IuQ29tcHV0ZWRTdHlsZVNpZGViYXJQYW5lID0gZnVuY3Rpb24o
KQogICAgICAgICB9CiAgICAgfQogCi0gICAgV2ViSW5zcGVjdG9yLnNldHRpbmdzLmFkZEV2ZW50
TGlzdGVuZXIoImxvYWRlZCIsIHNldHRpbmdzTG9hZGVkLmJpbmQodGhpcykpOworICAgIFdlYklu
c3BlY3Rvci5zZXR0aW5ncy5hZGRFdmVudExpc3RlbmVyKCJsb2FkZWQiLCBzZXR0aW5nc0xvYWRl
ZC5iaW5kKHRoaXMpLCBmYWxzZSk7CiAKICAgICBmdW5jdGlvbiBzaG93SW5oZXJpdGVkVG9nZ2xl
RnVuY3Rpb24oZXZlbnQpCiAgICAgewpAQCAtMTEyOSw3ICsxMTI5LDcgQEAgV2ViSW5zcGVjdG9y
LlN0eWxlUHJvcGVydHlUcmVlRWxlbWVudC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAg
dmFyIHN3YXRjaEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7CiAgICAg
ICAgICAgICAgICAgc3dhdGNoRWxlbWVudC50aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygi
Q2xpY2sgdG8gY2hhbmdlIGNvbG9yIGZvcm1hdCIpOwogICAgICAgICAgICAgICAgIHN3YXRjaEVs
ZW1lbnQuY2xhc3NOYW1lID0gInN3YXRjaCI7Ci0gICAgICAgICAgICAgICAgc3dhdGNoRWxlbWVu
dC5zdHlsZS5zZXRQcm9wZXJ0eSgiYmFja2dyb3VuZC1jb2xvciIsIHRleHQpOworICAgICAgICAg
ICAgICAgIHN3YXRjaEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoImJhY2tncm91bmQtY29sb3Ii
LCB0ZXh0LCBudWxsKTsKIAogICAgICAgICAgICAgICAgIHN3YXRjaEVsZW1lbnQuYWRkRXZlbnRM
aXN0ZW5lcigiY2xpY2siLCBjaGFuZ2VDb2xvckRpc3BsYXksIGZhbHNlKTsKICAgICAgICAgICAg
ICAgICBzd2F0Y2hFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImRibGNsaWNrIiwgZnVuY3Rpb24o
ZXZlbnQpIHsgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgfSwgZmFsc2UpOwpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lT3ZlcnZpZXdQYW5lLmpzIGIvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lT3ZlcnZpZXdQYW5lLmpzCmluZGV4IDNl
ODNmNjIuLmEzNzRkZDUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9U
aW1lbGluZU92ZXJ2aWV3UGFuZS5qcworKysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
VGltZWxpbmVPdmVydmlld1BhbmUuanMKQEAgLTM0Myw3ICszNDMsNyBAQCBXZWJJbnNwZWN0b3Iu
VGltZWxpbmVPdmVydmlld1BhbmUucHJvdG90eXBlID0gewogICAgICAgICBjaGVja0VsZW1lbnQu
dHlwZSA9ICJjaGVja2JveCI7CiAgICAgICAgIGNoZWNrRWxlbWVudC5jbGFzc05hbWUgPSAidGlt
ZWxpbmUtY2F0ZWdvcnktY2hlY2tib3giOwogICAgICAgICBjaGVja0VsZW1lbnQuY2hlY2tlZCA9
IHRydWU7Ci0gICAgICAgIGNoZWNrRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIG9u
Q2hlY2tib3hDbGlja2VkKTsKKyAgICAgICAgY2hlY2tFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIo
ImNsaWNrIiwgb25DaGVja2JveENsaWNrZWQsIGZhbHNlKTsKICAgICAgICAgbGFiZWwuYXBwZW5k
Q2hpbGQoY2hlY2tFbGVtZW50KTsKIAogICAgICAgICB2YXIgdHlwZUVsZW1lbnQgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJzcGFuIik7CkBAIC00MjYsOCArNDI2LDggQEAgV2ViSW5zcGVjdG9y
LlRpbWVsaW5lQ2F0ZWdvcnlHcmFwaC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHZhciBjaHVuayA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogICAgICAgICBjaHVuay5jbGFzc05hbWUg
PSAidGltZWxpbmUtZ3JhcGgtYmFyIjsKICAgICAgICAgdGhpcy5fYmFyQXJlYUVsZW1lbnQuYXBw
ZW5kQ2hpbGQoY2h1bmspOwotICAgICAgICBjaHVuay5zdHlsZS5zZXRQcm9wZXJ0eSgibGVmdCIs
IHN0YXJ0ICsgIiUiKTsKLSAgICAgICAgY2h1bmsuc3R5bGUuc2V0UHJvcGVydHkoIndpZHRoIiwg
KGVuZCAtIHN0YXJ0KSArICIlIik7CisgICAgICAgIGNodW5rLnN0eWxlLnNldFByb3BlcnR5KCJs
ZWZ0Iiwgc3RhcnQgKyAiJSIsIG51bGwpOworICAgICAgICBjaHVuay5zdHlsZS5zZXRQcm9wZXJ0
eSgid2lkdGgiLCAoZW5kIC0gc3RhcnQpICsgIiUiLCBudWxsKTsKICAgICB9LAogCiAgICAgY2xl
YXJDaHVua3M6IGZ1bmN0aW9uKCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9UaW1lbGluZVBhbmVsLmpzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVs
aW5lUGFuZWwuanMKaW5kZXggMjllZmQ3OS4uZDVlYWMyYyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanMKKysrIGIvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanMKQEAgLTc5NCw3ICs3OTQsNyBAQCBXZWJJbnNw
ZWN0b3IuVGltZWxpbmVSZWNvcmRHcmFwaFJvdyA9IGZ1bmN0aW9uKGdyYXBoQ29udGFpbmVyLCBz
Y2hlZHVsZVJlZnJlc2gpCiAgICAgdGhpcy5fYmFyQXJlYUVsZW1lbnQuYXBwZW5kQ2hpbGQodGhp
cy5fYmFyRWxlbWVudCk7CiAKICAgICB0aGlzLl9leHBhbmRFbGVtZW50ID0gbmV3IFdlYkluc3Bl
Y3Rvci5UaW1lbGluZUV4cGFuZGFibGVFbGVtZW50KGdyYXBoQ29udGFpbmVyKTsKLSAgICB0aGlz
Ll9leHBhbmRFbGVtZW50Ll9lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgdGhpcy5f
b25DbGljay5iaW5kKHRoaXMpKTsKKyAgICB0aGlzLl9leHBhbmRFbGVtZW50Ll9lbGVtZW50LmFk
ZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgdGhpcy5fb25DbGljay5iaW5kKHRoaXMpLCBmYWxzZSk7
CiAKICAgICB0aGlzLl9zY2hlZHVsZVJlZnJlc2ggPSBzY2hlZHVsZVJlZnJlc2g7CiB9CmRpZmYg
LS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzIGIvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcwppbmRleCA2YjVkYmQxLi4xYjUzNGY0
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzCisr
KyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMKQEAgLTUzMCw3ICs1
MzAsNyBAQCBXZWJJbnNwZWN0b3IuYWRkUGFuZWxUb29sYmFySWNvbiA9IGZ1bmN0aW9uKHRvb2xi
YXJFbGVtZW50LCBwYW5lbCwgcHJldmlvdXNUb29sYgogewogICAgIHZhciBwYW5lbFRvb2xiYXJJ
dGVtID0gcGFuZWwudG9vbGJhckl0ZW07CiAgICAgdGhpcy5wYW5lbE9yZGVyLnB1c2gocGFuZWwp
OwotICAgIHBhbmVsVG9vbGJhckl0ZW0uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCB0aGlzLl90
b29sYmFySXRlbUNsaWNrZWQuYmluZCh0aGlzKSk7CisgICAgcGFuZWxUb29sYmFySXRlbS5hZGRF
dmVudExpc3RlbmVyKCJjbGljayIsIHRoaXMuX3Rvb2xiYXJJdGVtQ2xpY2tlZC5iaW5kKHRoaXMp
LCBmYWxzZSk7CiAgICAgaWYgKHByZXZpb3VzVG9vbGJhckl0ZW0pCiAgICAgICAgIHRvb2xiYXJF
bGVtZW50Lmluc2VydEJlZm9yZShwYW5lbFRvb2xiYXJJdGVtLCBwcmV2aW91c1Rvb2xiYXJJdGVt
Lm5leHRTaWJsaW5nKTsKICAgICBlbHNlCkBAIC04OTcsMTQgKzg5NywxNCBAQCBXZWJJbnNwZWN0
b3IuYW5pbWF0ZVN0eWxlID0gZnVuY3Rpb24oYW5pbWF0aW9ucywgZHVyYXRpb24sIGNhbGxiYWNr
KQogICAgICAgICAgICAgY29udGludWU7CiAKICAgICAgICAgaWYgKCFzdGFydCkgewotICAgICAg
ICAgICAgdmFyIGNvbXB1dGVkU3R5bGUgPSBlbGVtZW50Lm93bmVyRG9jdW1lbnQuZGVmYXVsdFZp
ZXcuZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KTsKKyAgICAgICAgICAgIHZhciBjb21wdXRlZFN0
eWxlID0gZWxlbWVudC5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUo
ZWxlbWVudCwgbnVsbCk7CiAgICAgICAgICAgICBzdGFydCA9IHt9OwogICAgICAgICAgICAgZm9y
IChrZXkgaW4gZW5kKQogICAgICAgICAgICAgICAgIHN0YXJ0W2tleV0gPSBwYXJzZUludChjb21w
dXRlZFN0eWxlLmdldFByb3BlcnR5VmFsdWUoa2V5KSk7CiAgICAgICAgICAgICBhbmltYXRpb24u
c3RhcnQgPSBzdGFydDsKICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICBmb3IgKGtleSBpbiBz
dGFydCkKLSAgICAgICAgICAgICAgICBlbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KGtleSwgc3Rh
cnRba2V5XSArIChrZXkgaW4gcHJvcGVydHlVbml0ID8gcHJvcGVydHlVbml0W2tleV0gOiBkZWZh
dWx0VW5pdCkpOworICAgICAgICAgICAgICAgIGVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoa2V5
LCBzdGFydFtrZXldICsgKGtleSBpbiBwcm9wZXJ0eVVuaXQgPyBwcm9wZXJ0eVVuaXRba2V5XSA6
IGRlZmF1bHRVbml0KSwgbnVsbCk7CiAgICAgfQogCiAgICAgZnVuY3Rpb24gYW5pbWF0ZUxvb3Ao
KQpAQCAtOTI4LDkgKzkyOCw5IEBAIFdlYkluc3BlY3Rvci5hbmltYXRlU3R5bGUgPSBmdW5jdGlv
bihhbmltYXRpb25zLCBkdXJhdGlvbiwgY2FsbGJhY2spCiAgICAgICAgICAgICAgICAgaWYgKG5l
eHQgPCBkdXJhdGlvbikgewogICAgICAgICAgICAgICAgICAgICB2YXIgc3RhcnRWYWx1ZSA9IHN0
YXJ0W2tleV07CiAgICAgICAgICAgICAgICAgICAgIHZhciBuZXdWYWx1ZSA9IGN1YmljSW5PdXQo
Y29tcGxldGUsIHN0YXJ0VmFsdWUsIGVuZFZhbHVlIC0gc3RhcnRWYWx1ZSwgZHVyYXRpb24pOwot
ICAgICAgICAgICAgICAgICAgICBzdHlsZS5zZXRQcm9wZXJ0eShrZXksIG5ld1ZhbHVlICsgKGtl
eSBpbiBwcm9wZXJ0eVVuaXQgPyBwcm9wZXJ0eVVuaXRba2V5XSA6IGRlZmF1bHRVbml0KSk7Cisg
ICAgICAgICAgICAgICAgICAgIHN0eWxlLnNldFByb3BlcnR5KGtleSwgbmV3VmFsdWUgKyAoa2V5
IGluIHByb3BlcnR5VW5pdCA/IHByb3BlcnR5VW5pdFtrZXldIDogZGVmYXVsdFVuaXQpLCBudWxs
KTsKICAgICAgICAgICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgICAgICAgICAgc3R5bGUuc2V0
UHJvcGVydHkoa2V5LCBlbmRWYWx1ZSArIChrZXkgaW4gcHJvcGVydHlVbml0ID8gcHJvcGVydHlV
bml0W2tleV0gOiBkZWZhdWx0VW5pdCkpOworICAgICAgICAgICAgICAgICAgICBzdHlsZS5zZXRQ
cm9wZXJ0eShrZXksIGVuZFZhbHVlICsgKGtleSBpbiBwcm9wZXJ0eVVuaXQgPyBwcm9wZXJ0eVVu
aXRba2V5XSA6IGRlZmF1bHRVbml0KSwgbnVsbCk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0K
IApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oIGIvV2ViQ29yZS9wYWdlL0RP
TVdpbmRvdy5oCmluZGV4IGRiOGM0NWYuLmE4N2FhMGEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFn
ZS9ET01XaW5kb3cuaAorKysgYi9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKQEAgLTEzOSwxMSAr
MTM5LDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICB2b2lkIGFsZXJ0KGNvbnN0
IFN0cmluZyYgbWVzc2FnZSk7CiAgICAgICAgIGJvb2wgY29uZmlybShjb25zdCBTdHJpbmcmIG1l
c3NhZ2UpOwotICAgICAgICBTdHJpbmcgcHJvbXB0KGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29u
c3QgU3RyaW5nJiBkZWZhdWx0VmFsdWUpOworICAgICAgICBTdHJpbmcgcHJvbXB0KGNvbnN0IFN0
cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZWZhdWx0VmFsdWUgPSBTdHJpbmcoKSk7CiAg
ICAgICAgIFN0cmluZyBidG9hKGNvbnN0IFN0cmluZyYgc3RyaW5nVG9FbmNvZGUsIEV4Y2VwdGlv
bkNvZGUmKTsKICAgICAgICAgU3RyaW5nIGF0b2IoY29uc3QgU3RyaW5nJiBlbmNvZGVkU3RyaW5n
LCBFeGNlcHRpb25Db2RlJik7CiAKLSAgICAgICAgYm9vbCBmaW5kKGNvbnN0IFN0cmluZyYsIGJv
b2wgY2FzZVNlbnNpdGl2ZSwgYm9vbCBiYWNrd2FyZHMsIGJvb2wgd3JhcCwgYm9vbCB3aG9sZVdv
cmQsIGJvb2wgc2VhcmNoSW5GcmFtZXMsIGJvb2wgc2hvd0RpYWxvZykgY29uc3Q7CisgICAgICAg
IGJvb2wgZmluZChjb25zdCBTdHJpbmcmLCBib29sIGNhc2VTZW5zaXRpdmUgPSBmYWxzZSwgYm9v
bCBiYWNrd2FyZHMgPSBmYWxzZSwgYm9vbCB3cmFwID0gZmFsc2UsIGJvb2wgd2hvbGVXb3JkID0g
ZmFsc2UsIGJvb2wgc2VhcmNoSW5GcmFtZXMgPSBmYWxzZSwgYm9vbCBzaG93RGlhbG9nID0gZmFs
c2UpIGNvbnN0OwogCiAgICAgICAgIGJvb2wgb2Zmc2NyZWVuQnVmZmVyaW5nKCkgY29uc3Q7CiAK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsIGIvV2ViQ29yZS9wYWdlL0RP
TVdpbmRvdy5pZGwKaW5kZXggODhmZTlmOS4uZjBhOTNlOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9w
YWdlL0RPTVdpbmRvdy5pZGwKKysrIGIvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKQEAgLTgy
LDE1ICs4MiwxNSBAQCBtb2R1bGUgd2luZG93IHsKICAgICAgICAgdm9pZCBhbGVydChpbiBET01T
dHJpbmcgbWVzc2FnZSk7CiAgICAgICAgIGJvb2xlYW4gY29uZmlybShpbiBET01TdHJpbmcgbWVz
c2FnZSk7CiAgICAgICAgIFtDb252ZXJ0TnVsbFN0cmluZ1RvPU51bGxdIERPTVN0cmluZyBwcm9t
cHQoaW4gRE9NU3RyaW5nIG1lc3NhZ2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaW4gW0NvbnZlcnRVbmRlZmluZWRPck51bGxUb051bGxTdHJp
bmddIERPTVN0cmluZyBkZWZhdWx0VmFsdWUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbF0gRE9NU3RyaW5nIGRlZmF1bHRW
YWx1ZSk7CiAKICAgICAgICAgYm9vbGVhbiBmaW5kKGluIERPTVN0cmluZyBzdHJpbmcsCi0gICAg
ICAgICAgICAgICAgICAgICBpbiBib29sZWFuIGNhc2VTZW5zaXRpdmUsCi0gICAgICAgICAgICAg
ICAgICAgICBpbiBib29sZWFuIGJhY2t3YXJkcywKLSAgICAgICAgICAgICAgICAgICAgIGluIGJv
b2xlYW4gd3JhcCwKLSAgICAgICAgICAgICAgICAgICAgIGluIGJvb2xlYW4gd2hvbGVXb3JkLAot
ICAgICAgICAgICAgICAgICAgICAgaW4gYm9vbGVhbiBzZWFyY2hJbkZyYW1lcywKLSAgICAgICAg
ICAgICAgICAgICAgIGluIGJvb2xlYW4gc2hvd0RpYWxvZyk7CisgICAgICAgICAgICAgICAgICAg
ICBpbiBbT3B0aW9uYWxdIGJvb2xlYW4gY2FzZVNlbnNpdGl2ZSwKKyAgICAgICAgICAgICAgICAg
ICAgIGluIFtPcHRpb25hbF0gYm9vbGVhbiBiYWNrd2FyZHMsCisgICAgICAgICAgICAgICAgICAg
ICBpbiBbT3B0aW9uYWxdIGJvb2xlYW4gd3JhcCwKKyAgICAgICAgICAgICAgICAgICAgIGluIFtP
cHRpb25hbF0gYm9vbGVhbiB3aG9sZVdvcmQsCisgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0
aW9uYWxdIGJvb2xlYW4gc2VhcmNoSW5GcmFtZXMsCisgICAgICAgICAgICAgICAgICAgICBpbiBb
T3B0aW9uYWxdIGJvb2xlYW4gc2hvd0RpYWxvZyk7CiAKICAgICAgICAgYXR0cmlidXRlIFtSZXBs
YWNlYWJsZV0gYm9vbGVhbiBvZmZzY3JlZW5CdWZmZXJpbmc7CiAKQEAgLTEwNywxMyArMTA3LDEz
IEBAIG1vZHVsZSB3aW5kb3cgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyBwYWdl
WE9mZnNldDsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgcGFnZVlPZmZzZXQ7CiAK
LSAgICAgICAgW1JlcXVpcmVzQWxsQXJndW1lbnRzXSB2b2lkIHNjcm9sbEJ5KGluIGxvbmcgeCwg
aW4gbG9uZyB5KTsKLSAgICAgICAgW1JlcXVpcmVzQWxsQXJndW1lbnRzXSB2b2lkIHNjcm9sbFRv
KGluIGxvbmcgeCwgaW4gbG9uZyB5KTsKLSAgICAgICAgW1JlcXVpcmVzQWxsQXJndW1lbnRzXSB2
b2lkIHNjcm9sbChpbiBsb25nIHgsIGluIGxvbmcgeSk7Ci0gICAgICAgIFtSZXF1aXJlc0FsbEFy
Z3VtZW50c10gdm9pZCBtb3ZlQnkoaW4gZmxvYXQgeCwgaW4gZmxvYXQgeSk7IC8vIEZJWE1FOiB0
aGlzIHNob3VsZCB0YWtlIGxvbmdzIG5vdCBmbG9hdHMuCi0gICAgICAgIFtSZXF1aXJlc0FsbEFy
Z3VtZW50c10gdm9pZCBtb3ZlVG8oaW4gZmxvYXQgeCwgaW4gZmxvYXQgeSk7IC8vIEZJWE1FOiB0
aGlzIHNob3VsZCB0YWtlIGxvbmdzIG5vdCBmbG9hdHMuCi0gICAgICAgIFtSZXF1aXJlc0FsbEFy
Z3VtZW50c10gdm9pZCByZXNpemVCeShpbiBmbG9hdCB4LCBpbiBmbG9hdCB5KTsgLy8gRklYTUU6
IHRoaXMgc2hvdWxkIHRha2UgbG9uZ3Mgbm90IGZsb2F0cy4KLSAgICAgICAgW1JlcXVpcmVzQWxs
QXJndW1lbnRzXSB2b2lkIHJlc2l6ZVRvKGluIGZsb2F0IHdpZHRoLCBpbiBmbG9hdCBoZWlnaHQp
OyAvLyBGSVhNRTogdGhpcyBzaG91bGQgdGFrZSBsb25ncyBub3QgZmxvYXRzLgorICAgICAgICB2
b2lkIHNjcm9sbEJ5KGluIGxvbmcgeCwgaW4gbG9uZyB5KTsKKyAgICAgICAgdm9pZCBzY3JvbGxU
byhpbiBsb25nIHgsIGluIGxvbmcgeSk7CisgICAgICAgIHZvaWQgc2Nyb2xsKGluIGxvbmcgeCwg
aW4gbG9uZyB5KTsKKyAgICAgICAgdm9pZCBtb3ZlQnkoaW4gZmxvYXQgeCwgaW4gZmxvYXQgeSk7
IC8vIEZJWE1FOiB0aGlzIHNob3VsZCB0YWtlIGxvbmdzIG5vdCBmbG9hdHMuCisgICAgICAgIHZv
aWQgbW92ZVRvKGluIGZsb2F0IHgsIGluIGZsb2F0IHkpOyAvLyBGSVhNRTogdGhpcyBzaG91bGQg
dGFrZSBsb25ncyBub3QgZmxvYXRzLgorICAgICAgICB2b2lkIHJlc2l6ZUJ5KGluIGZsb2F0IHgs
IGluIGZsb2F0IHkpOyAvLyBGSVhNRTogdGhpcyBzaG91bGQgdGFrZSBsb25ncyBub3QgZmxvYXRz
LgorICAgICAgICB2b2lkIHJlc2l6ZVRvKGluIGZsb2F0IHdpZHRoLCBpbiBmbG9hdCBoZWlnaHQp
OyAvLyBGSVhNRTogdGhpcyBzaG91bGQgdGFrZSBsb25ncyBub3QgZmxvYXRzLgogCiAgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBbRG9Ob3RDaGVja0RvbWFpblNlY3VyaXR5XSBib29sZWFuIGNs
b3NlZDsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbHVnaW5zL1BsdWdpbkFycmF5LmggYi9XZWJD
b3JlL3BsdWdpbnMvUGx1Z2luQXJyYXkuaAppbmRleCA0MzVkYjUwLi4xNzFiOWIyIDEwMDY0NAot
LS0gYS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luQXJyYXkuaAorKysgYi9XZWJDb3JlL3BsdWdpbnMv
UGx1Z2luQXJyYXkuaApAQCAtNDQsNyArNDQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
ICAgIGJvb2wgY2FuR2V0SXRlbXNGb3JOYW1lKGNvbnN0IEF0b21pY1N0cmluZyYgcHJvcGVydHlO
YW1lKTsKICAgICAgICAgUGFzc1JlZlB0cjxQbHVnaW4+IG5hbWVkSXRlbShjb25zdCBBdG9taWNT
dHJpbmcmIHByb3BlcnR5TmFtZSk7CiAKLSAgICAgICAgdm9pZCByZWZyZXNoKGJvb2wgcmVsb2Fk
KTsKKyAgICAgICAgdm9pZCByZWZyZXNoKGJvb2wgcmVsb2FkID0gZmFsc2UpOwogCiAgICAgcHJp
dmF0ZToKICAgICAgICAgUGx1Z2luQXJyYXkoRnJhbWUqKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
cGx1Z2lucy9QbHVnaW5BcnJheS5pZGwgYi9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luQXJyYXkuaWRs
CmluZGV4IGQ0YzEwYWMuLmVmZWU3NzUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGx1Z2lucy9QbHVn
aW5BcnJheS5pZGwKKysrIGIvV2ViQ29yZS9wbHVnaW5zL1BsdWdpbkFycmF5LmlkbApAQCAtMjcs
NyArMjcsNyBAQCBtb2R1bGUgd2luZG93IHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVu
c2lnbmVkIGxvbmcgbGVuZ3RoOwogICAgICAgICBQbHVnaW4gaXRlbShpbiB1bnNpZ25lZCBsb25n
IGluZGV4KTsKICAgICAgICAgUGx1Z2luIG5hbWVkSXRlbShpbiBET01TdHJpbmcgbmFtZSk7Ci0g
ICAgICAgIHZvaWQgcmVmcmVzaChpbiBib29sZWFuIHJlbG9hZCk7CisgICAgICAgIHZvaWQgcmVm
cmVzaChpbiBbT3B0aW9uYWxdIGJvb2xlYW4gcmVsb2FkKTsKICAgICB9OwogCiB9CmRpZmYgLS1n
aXQgYS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5pZGwgYi9XZWJDb3JlL3htbC9YTUxIdHRw
UmVxdWVzdC5pZGwKaW5kZXggMzU3NDc2Ni4uNzVmZDRlNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS94
bWwvWE1MSHR0cFJlcXVlc3QuaWRsCisrKyBiL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0Lmlk
bApAQCAtNjMsNyArNjMsNyBAQCBtb2R1bGUgeG1sIHsKICAgICAgICAgW0N1c3RvbV0gdm9pZCBv
cGVuKGluIERPTVN0cmluZyBtZXRob2QsIGluIERPTVN0cmluZyB1cmwsIGluIGJvb2xlYW4gYXN5
bmMsIGluIERPTVN0cmluZyB1c2VyLCBpbiBET01TdHJpbmcgcGFzc3dvcmQpCiAgICAgICAgICAg
ICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKIAotICAgICAgICBbUmVxdWlyZXNBbGxBcmd1bWVudHM9
UmFpc2VdIHZvaWQgc2V0UmVxdWVzdEhlYWRlcihpbiBET01TdHJpbmcgaGVhZGVyLCBpbiBET01T
dHJpbmcgdmFsdWUpCisgICAgICAgIHZvaWQgc2V0UmVxdWVzdEhlYWRlcihpbiBET01TdHJpbmcg
aGVhZGVyLCBpbiBET01TdHJpbmcgdmFsdWUpCiAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0
aW9uKTsKIAogICAgICAgICAvLyB2b2lkIHNlbmQoKTsKQEAgLTc4LDcgKzc4LDcgQEAgbW9kdWxl
IHhtbCB7CiAgICAgICAgIC8vIHJlc3BvbnNlCiAgICAgICAgIFtDb252ZXJ0TnVsbFN0cmluZ1Rv
PVVuZGVmaW5lZF0gRE9NU3RyaW5nIGdldEFsbFJlc3BvbnNlSGVhZGVycygpCiAgICAgICAgICAg
ICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgW1JlcXVpcmVzQWxsQXJndW1lbnRzPVJh
aXNlLCBDb252ZXJ0TnVsbFN0cmluZ1RvPU51bGxdIERPTVN0cmluZyBnZXRSZXNwb25zZUhlYWRl
cihpbiBET01TdHJpbmcgaGVhZGVyKQorICAgICAgICBbQ29udmVydE51bGxTdHJpbmdUbz1OdWxs
XSBET01TdHJpbmcgZ2V0UmVzcG9uc2VIZWFkZXIoaW4gRE9NU3RyaW5nIGhlYWRlcikKICAgICAg
ICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUg
W0N1c3RvbUdldHRlcl0gRE9NU3RyaW5nIHJlc3BvbnNlVGV4dDsgLy8gVGhlIGN1c3RvbSBnZXR0
ZXIgaW1wbGVtZW50cyBDb252ZXJ0TnVsbFN0cmluZ1RvPU51bGwKICAgICAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIERvY3VtZW50IHJlc3BvbnNlWE1MOwpAQCAtODgsNyArODgsNyBAQCBtb2R1bGUg
eG1sIHsKICAgICAgICAgICAgIGdldHRlciByYWlzZXMoRE9NRXhjZXB0aW9uKTsKIAogICAgICAg
ICAvLyBFeHRlbnNpb24KLSAgICAgICAgW1JlcXVpcmVzQWxsQXJndW1lbnRzPVJhaXNlXSB2b2lk
IG92ZXJyaWRlTWltZVR5cGUoaW4gRE9NU3RyaW5nIG92ZXJyaWRlKTsKKyAgICAgICAgdm9pZCBv
dmVycmlkZU1pbWVUeXBlKGluIERPTVN0cmluZyBvdmVycmlkZSk7CiAKICAgICAgICAgLy8gRXZl
bnRUYXJnZXQgaW50ZXJmYWNlCiAgICAgICAgIHZvaWQgYWRkRXZlbnRMaXN0ZW5lcihpbiBET01T
dHJpbmcgdHlwZSwgCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>