<?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>63481</bug_id>
          
          <creation_ts>2011-06-27 14:08:28 -0700</creation_ts>
          <short_desc>Bring V8&apos;s SerializedScriptValue implementation up to date</short_desc>
          <delta_ts>2011-07-19 14:10:12 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>64629</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Luke Zarko">lukezarko+bugzilla</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>dimich</cc>
    
    <cc>dominicc</cc>
    
    <cc>dslomov</cc>
    
    <cc>levin</cc>
    
    <cc>me</cc>
    
    <cc>vitalyr</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>428273</commentid>
    <comment_count>0</comment_count>
      <attachid>98781</attachid>
    <who name="Luke Zarko">lukezarko+bugzilla</who>
    <bug_when>2011-06-27 14:08:28 -0700</bug_when>
    <thetext>Created attachment 98781
Patch and tests.

The HTML5 Structured Clone algorithm (http://www.whatwg.org/specs/web-apps/current-work/multipage/urls.html#safe-passing-of-structured-data) has been updated since the V8 version of SerializedScriptValue was first implemented. This patch aims to bring this implementation up to date. It:

- Introduces the new HTML5 DOM error codes for TIMEOUT_ERR, INVALID_NODE_TYPE_ERR, DATA_CLONE_ERR
- Handles cyclic structures and equality of reference preservation for cloned values
- Allows DataViews to be constructed on the native side using the existing wrapper techniques
- Amends tests and introduces new ones to check for correctness (the bulk of the patch)

The patch permits the cloning of JavaScript typed arrays. This functionality is in active use already and was supported (somewhat inefficiently) by the existing code through an artifact of implementation.

I have included two implementations of the &apos;memory&apos; object from the standard. The first (which is enabled by default) is more efficient; the second is less efficient but should be more resistant to changes in V8&apos;s implementation of handles.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>428348</commentid>
    <comment_count>1</comment_count>
      <attachid>98781</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-06-27 15:03:02 -0700</bug_when>
    <thetext>Comment on attachment 98781
Patch and tests.

Looks cool.  Did you mean to nominate this patch for review?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>428381</commentid>
    <comment_count>2</comment_count>
      <attachid>98802</attachid>
    <who name="Luke Zarko">lukezarko+bugzilla</who>
    <bug_when>2011-06-27 15:31:10 -0700</bug_when>
    <thetext>Created attachment 98802
Patch and tests (and ChangeLog update).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>428404</commentid>
    <comment_count>3</comment_count>
      <attachid>98802</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-27 15:54:28 -0700</bug_when>
    <thetext>Comment on attachment 98802
Patch and tests (and ChangeLog update).

Attachment 98802 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/8949425</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>428438</commentid>
    <comment_count>4</comment_count>
      <attachid>98813</attachid>
    <who name="Luke Zarko">lukezarko+bugzilla</who>
    <bug_when>2011-06-27 16:36:49 -0700</bug_when>
    <thetext>Created attachment 98813
Fix release build (local variable appeared only in an assert.)

Before I make (any?) changes to the jsc version, I want to make sure that there&apos;s some consensus about what the results of the tests should be.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>429029</commentid>
    <comment_count>5</comment_count>
    <who name="Dmitry Titov">dimich</who>
    <bug_when>2011-06-28 11:30:20 -0700</bug_when>
    <thetext>Looked quickly through the patch, offline with Luke...

Here are some quick takeaways:

- lets look at what Mozilla does here for test results, especially where spec is not 100% prescriptive.

- lets remove &apos;experimental&apos; implementation of hash table (currently under #ifdef) since it is using a peek into internals of JS objects via reinterpret casts. It is essentially a proposal for new V8 API, so it can be discussed separately from this patch with V8 team. The &apos;safe&apos; variant is landable, although it may be not the fastest implementation. As long as it does not slow down existing benchmarks (do we have any?) it&apos;s fine.

- The test which is using &quot;script test&apos; infrastructure but is not a script test can be converted to script test.

- it would be nice to get a class comment on the object table to explain what does it solve and how.

I&apos;m going to r- the current patch, but it&apos;s a very nice one!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>429993</commentid>
    <comment_count>6</comment_count>
      <attachid>99184</attachid>
    <who name="Luke Zarko">lukezarko+bugzilla</who>
    <bug_when>2011-06-29 16:54:22 -0700</bug_when>
    <thetext>Created attachment 99184
Address comments; handle old wire format.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>430863</commentid>
    <comment_count>7</comment_count>
    <who name="Dmitry Lomov">dslomov</who>
    <bug_when>2011-06-30 17:04:47 -0700</bug_when>
    <thetext>View in context: https://bugs.webkit.org/attachment.cgi?id=99184&amp;action=review

Nice patch!
First round of comments - I went through the code but haven&apos;t looked at tests very closely yet.

&gt; Source/WebCore/bindings/v8/SerializedScriptValue.cpp:89
&gt; +// address returned by a Handle&apos;s operator* is related to the handle, not to the object it holds.

I think these comments are written under the influence of another implementation of the same concept :)
I suggest talking less about the implementation details and more about how the type should be used. 

How about this rewording:
V8ObjectMap implements a map from v8 objects to arbitrary values.
V8 objects cannot be used as keys in ordinary wtf::HashMap - use this class instead.
The type argument for GcObject template parameter should be a v8::Object or its inheritor.
Suggested usage: 
   V8ObjectMap&lt;v8::Object, int&gt; map;
   v8::Handle&lt;v8::Object&gt; obj = ...; 
   map.set(obj, 42);

&gt; Source/WebCore/bindings/v8/SerializedScriptValue.cpp:96
&gt; +// considers a v8::String to be a v8::Primitive).

I think the implementation comments should go inside the class definition braces.

&gt; Source/WebCore/bindings/v8/SerializedScriptValue.cpp:99
&gt; +// faster native-side maps with JavaScript objects as keys.

I do not think it is the sole purpose of this wrapper. We can add a separate comment describing possible alternate implementation. It should go inside the class definition as well.

&gt; Source/WebCore/bindings/v8/SerializedScriptValue.cpp:102
&gt; +class V8GcHandleMap {

I do not like this name: this is not a map from handles, the keys of this maps are v8 objects. Let&apos;s call it V8ObjectMap?

&gt; Source/WebCore/bindings/v8/SerializedScriptValue.cpp:115
&gt; +        static const bool safeToCompareToEmptyOrDeleted = false;

Unused?

&gt; Source/WebCore/bindings/v8/SerializedScriptValue.cpp:127
&gt; +    bool tryGet(const v8::Handle&lt;GcObject&gt;&amp; handle, T&amp; valueOut)

Do not use non-const reference parameters. Use T* for valueOut type.

&gt; Source/WebCore/bindings/v8/SerializedScriptValue.cpp:130
&gt; +            valueOut = m_map.get(*handle);

Use HashMap::find to avoid double lookup:
HandleToT::iterator result = m_map.find(*handle);
if (result != m_map.end()) {
    *valueOut = result-&gt;second();
    return true;
}
return false;

&gt; Source/WebCore/bindings/v8/SerializedScriptValue.cpp:168
&gt;      ObjectTag = &apos;{&apos;,

The wire format is becoming much more complex: a comment describing it in more detail than (tag, optional data) will be very useful.

&gt; Source/WebCore/bindings/v8/SerializedScriptValue.cpp:340
&gt; +#endif

nit: move #endif beyond the ASSERT - makes the purpose of this local variable clearer

&gt; Source/WebCore/bindings/v8/SerializedScriptValue.cpp:974
&gt; +        ++m_nextObjectId;

Current implementation does not &quot;deduplicate&quot; strings and any implementation of deduplication will bump up wire format version. Let&apos;s get rid of this objectID allocation

&gt; Source/WebCore/bindings/v8/SerializedScriptValue.cpp:1006
&gt; +                || jsObject-&gt;IsCallable())

The condition in this if statement represents V8 bindings understanding of what is a &quot;host object&quot; as defined per spec. I think this should be extracted into a separate IsHostObject function in V8Bindings.h.

&gt; Source/WebCore/bindings/v8/SerializedScriptValue.cpp:1021
&gt; +    virtual bool consumeTopOfStack(v8::Handle&lt;v8::Value&gt;&amp;) = 0;

use pointers instead of references for out arguments.

&gt; Source/WebCore/bindings/v8/SerializedScriptValue.cpp:1025
&gt; +    virtual bool prepareEmptyArray(uint32_t length) = 0;

nit: maybe call these startArray and startObject, to match finishArray and finishObject?

&gt; Source/WebCore/bindings/v8/SerializedScriptValue.cpp:1342
&gt; +        RefPtr&lt;ArrayBuffer&gt; arrayBuffer = ArrayBuffer::create(const_cast&lt;void*&gt;(bufferStart), byteLength);

yuck - const casts! Any reason why ArrayBuffer::create doesn&apos;t take const void *?

&gt; Source/WebCore/bindings/v8/SerializedScriptValue.cpp:1715
&gt; +    bool closeComposite(v8::Handle&lt;v8::Value&gt;&amp; obj)

Use pointers instead of references for out arguments

&gt; Source/WebCore/dom/ExceptionCode.h:-67
&gt; -#endif

Why the above removed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>431003</commentid>
    <comment_count>8</comment_count>
    <who name="Dmitry Lomov">dslomov</who>
    <bug_when>2011-06-30 23:29:45 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; Created an attachment (id=99184) [details]
&gt; Address comments; handle old wire format.

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

Few more comments, focusing on tests. I&apos;ll do another pass on tests later - the coverage looks solid, but I want to think of it a bit more.
What is the story for modified layout tests and their expectations on non-V8 bindings?

&gt; LayoutTests/ChangeLog:7
&gt; +        - Introduces the new HTML5 DOM error codes for TIMEOUT_ERR, INVALID_NODE_TYPE_ERR, DATA_CLONE_ERR

Hmm I do not see INVALID_NODE_TYPE_ERR in http://www.whatwg.org/specs/web-apps/current-work/multipage/urls.html#exceptions. Only introduce what you use in this patch
(i.e. just add DATA_CLONE_ERR with its proper code)

&gt; LayoutTests/fast/canvas/webgl/script-tests/array-message-passing.js:25
&gt; +    testFailed(tname + &quot;: expected &quot; + s.byteLength + &quot; bytes, got &quot; + g.byteLength);

Add description to assert message to differentiate between other similar asserts (&quot;: expected byteLength &quot; .....)

&gt; LayoutTests/fast/canvas/webgl/script-tests/array-message-passing.js:70
&gt; +    testFailed(tname + &quot;: expected &quot; + s.BYTES_PER_ELEMENT + &quot;, saw &quot; + g.BYTES_PER_ELEMENT);

Add description to the assert: &quot;expected BYTES_PER_ELEMENT&quot; (to differentiate with similar asserts)

&gt; LayoutTests/fast/dom/Window/script-tests/postmessage-test.js:118
&gt; +        if (message == &quot;evalThunk&quot;) {

Why this is an if in default: case and not a separate case?

&gt; LayoutTests/fast/dom/Window/script-tests/postmessage-test.js:145
&gt; +window.tryPostMessage = function(message, shouldThrow, expected, expectedException) {

Rename expectedException into expectedExceptionOrEvalThunk. 
Then in the beginning of the function add:
  if (expected == &quot;evalThunk&quot;) {
     var evalThunk = expectedExceptionOrEvalThunk; 
  }
  else {
     var expectedException = expectedExceptionOrEvalThunk
  }

Use these variables henceforth.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>433041</commentid>
    <comment_count>9</comment_count>
      <attachid>99884</attachid>
    <who name="Luke Zarko">lukezarko+bugzilla</who>
    <bug_when>2011-07-06 14:37:41 -0700</bug_when>
    <thetext>Created attachment 99884
Rebase and address comments.

Thanks for your comments!

Bigger deltas since last patch:
  - Strings are no longer allocated object IDs.
  - isHostObject added to V8Binding.h/cpp and used in SerializedScriptValue.cpp
  - Non-v8::Objects that are not special-cased now throw DATA_CLONE_ERR
  - WebKit vs. Chromium expectations addressed

Concerning the changes to DOMException: I&apos;m looking at http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#exception-domexception which includes these missing enumeration values. Leaving the other two out in particular would leave weird holes in ExceptionCode.cpp. The constants in ExceptionCode.h were removed after I consulted with Jian Li (they were getting in the way of constants I needed to define).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>435218</commentid>
    <comment_count>10</comment_count>
    <who name="Dmitry Lomov">dslomov</who>
    <bug_when>2011-07-11 15:02:19 -0700</bug_when>
    <thetext>(In reply to comment #9)

&gt; Concerning the changes to DOMException: I&apos;m looking at http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#exception-domexception which includes these missing enumeration values. Leaving the other two out in particular would leave weird holes in ExceptionCode.cpp. The constants in ExceptionCode.h were removed after I consulted with Jian Li (they were getting in the way of constants I needed to define).

It is not a big deal, but here is what I think - this set of exception codes is still an unapproved draft. If you add an exception code that you are not using and which is unrelated to cloning patch, and that exception code later changes, and somebody will be working on those changes, there will be some puzzlement and investigation - why this exception code is added? who uses it?  So I am arguing for just adding what you use. At the very least, add a comment saying that exception codes are unused and you are just adding them for completeness.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>435244</commentid>
    <comment_count>11</comment_count>
      <attachid>99884</attachid>
    <who name="Dmitry Lomov">dslomov</who>
    <bug_when>2011-07-11 15:43:29 -0700</bug_when>
    <thetext>Comment on attachment 99884
Rebase and address comments.

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

Code changes look good to me, with a minor comment on comment.

&gt; Source/WebCore/bindings/v8/SerializedScriptValue.cpp:159
&gt; +// externally.

I think it should be mentioned that it is ok to persist SerializedScriptValue as a binary blob, but this code should always be used to interpret the blob.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>435245</commentid>
    <comment_count>12</comment_count>
    <who name="Dmitry Lomov">dslomov</who>
    <bug_when>2011-07-11 15:43:54 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; (From update of attachment 99884 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=99884&amp;action=review
&gt; 
&gt; Code changes look good to me, with a minor comment on comment.
&gt; 
&gt; &gt; Source/WebCore/bindings/v8/SerializedScriptValue.cpp:159
&gt; &gt; +// externally.
&gt; 
&gt; I think it should be mentioned that it is ok to persist SerializedScriptValue as a binary blob, but this code should always be used to interpret the blob.

(I&apos;ll have another good look at the tests soon)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>435270</commentid>
    <comment_count>13</comment_count>
      <attachid>99884</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2011-07-11 16:10:31 -0700</bug_when>
    <thetext>Comment on attachment 99884
Rebase and address comments.

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

Some initial (minor) comments. I need to stare at the code a bit more tonight.

&gt; LayoutTests/ChangeLog:11
&gt; +        

Usually there is only the bug title here (or a very short description).

&gt; LayoutTests/ChangeLog:15
&gt; +

This is where you would put more details relevant to this part of the chnage.

I think the majority of these comments apply to the changes done in WebCore, so I&apos;d recommend factoring your comments appropriately.

&gt; Source/WebCore/ChangeLog:8
&gt; +        - Amends tests and introduces new ones to check for correctness (the bulk of the patch)

This patch is really three or four different things.

It would have been nice to structure the patches that way to reduce the size and make the reviewing potentially faster.

For example,  adding the error codes could be one patch. Adding versioning another patch.  Etc.

&gt; Source/WebCore/bindings/v8/SerializedScriptValue.cpp:124
&gt; +public:

public nearly always is the first thing in classes and private, the second.

&gt; Source/WebCore/bindings/v8/SerializedScriptValue.cpp:164
&gt; +// There is a ref table that maps uint32_ts to v8::Values.

uint32_t&apos;s?

&gt; Source/WebCore/bindings/v8/SerializedScriptValue.cpp:1400
&gt; +            if (shortLength * sizeof(int16_t) != byteLength)

Should be sizeof(uint16_t)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>435278</commentid>
    <comment_count>14</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2011-07-11 16:25:49 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; (From update of attachment 99884 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=99884&amp;action=review
&gt; &gt; Source/WebCore/ChangeLog:8
&gt; &gt; +        - Amends tests and introduces new ones to check for correctness (the bulk of the patch)
&gt; 
&gt; This patch is really three or four different things.
&gt; 
&gt; It would have been nice to structure the patches that way to reduce the size and make the reviewing potentially faster.
&gt; 
&gt; For example,  adding the error codes could be one patch. Adding versioning another patch.  Etc.

I wasn&apos;t trying to get you to split it up at this point. I was just giving warning in advance of any future patches (for other bugs) in WebKit. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>435841</commentid>
    <comment_count>15</comment_count>
      <attachid>99884</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2011-07-12 11:58:13 -0700</bug_when>
    <thetext>Comment on attachment 99884
Rebase and address comments.

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

A few comments some where giving an overview would be nice.  This would give context on why there needs to be things like GenerateFreshObjectTag, so one can read the code and get a better feel for how things are suppose to flow.

&gt; Source/WebCore/bindings/v8/SerializedScriptValue.cpp:185
&gt; +    ArrayTag = &apos;[&apos;, // length:uint32_t -&gt; pops the last array from the open stack;

I wonder if it is good to have the implementation details here instead of at the serialization code (when it would help explain the code and hopefully get change more readily if the impl changes).

&gt; Source/WebCore/bindings/v8/SerializedScriptValue.cpp:222
&gt; +// Increment this for each change to the wire format.

For each incompatible change?

&gt; Source/WebCore/bindings/v8/SerializedScriptValue.cpp:949
&gt; +        return objectId;

Return value never used. Consider removing.

What is the meaning of &quot;greyObject&quot;? I&apos;m sure it is something familiar to folks who work on GC/VM but not to me.

&gt; Source/WebCore/bindings/v8/SerializedScriptValue.cpp:1181
&gt; +            // ArrayBuffers are always written before dependant ArrayBufferViews.

dependent (since we use color instead of colour :) ).

&gt; Source/WebCore/bindings/v8/SerializedScriptValue.cpp:1232
&gt; +            --m_position;

This seems yucky to embed the knowledge of how many bytes were read during readTag.

Perhaps there should be a peekTag instead?

&gt; Source/WebCore/bindings/v8/SerializedScriptValue.cpp:1586
&gt; +    virtual bool consumeTopOfStack(v8::Handle&lt;v8::Value&gt;* obj)

Use object (avoid abbreviations in WebKit code).

&gt; Source/WebCore/bindings/v8/SerializedScriptValue.cpp:1595
&gt; +    virtual bool finishArray(uint32_t length, v8::Handle&lt;v8::Value&gt;* value)

Calling this finishArray makes it sound like it is matched with a startArray but it isn&apos;t always.  When the version is 0, only finishArray will be called.

Ditto for finishObject and finishSparseArray.

This issue naming makes it harder to understand the code (and more likely for future mistake when folks naturally assume that these calls will be paired).

&gt; Source/WebCore/bindings/v8/SerializedScriptValue.cpp:1656
&gt; +    virtual const v8::Handle&lt;v8::Value&gt;&amp; pushObjectReference(const v8::Handle&lt;v8::Value&gt;&amp; obj)

s/obj/object/

&gt; Source/WebCore/bindings/v8/SerializedScriptValue.cpp:1659
&gt; +        return obj;

No one uses the return value. Why have it? (I understand the composability in theory but best to add it if/when needed).

&gt; Source/WebCore/bindings/v8/SerializedScriptValue.cpp:1662
&gt; +    virtual bool getObjectReference(uint32_t ref, v8::Handle&lt;v8::Value&gt;* obj)

s/ref/reference/
s/obj/object/

This gets an object from a reference, right?


Right now the function sounds like it returns a object reference. Also, it doesn&apos;t return the object at all but a bool.

convertReferenceToObject?

&gt; Source/WebCore/bindings/v8/SerializedScriptValue.cpp:1717
&gt; +    uint32_t openNewComposite(const v8::Local&lt;v8::Value&gt;&amp; obj)

s/obj/object/

Why openNewComposite as opposed to just openComposite? (The new seems implied. Also, I look for symmetry in the open and close calls and &quot;new&quot; throws this off.)

&gt; Source/WebCore/bindings/v8/SerializedScriptValue.cpp:1719
&gt; +        uint32_t newid = m_objectPool.size();

newId

&gt; Source/WebCore/bindings/v8/SerializedScriptValue.cpp:1722
&gt; +        return newid;

The return value is never used. Why have it?

&gt; Source/WebCore/bindings/v8/SerializedScriptValue.cpp:1725
&gt; +    bool closeComposite(v8::Handle&lt;v8::Value&gt;* obj)

s/obj/object/

&gt; Source/WebCore/bindings/v8/SerializedScriptValue.cpp:1729
&gt; +        uint32_t oldid = m_objrefStack[m_objrefStack.size() - 1];

oldId (capital I).

&gt; Source/WebCore/bindings/v8/SerializedScriptValue.cpp:1740
&gt; +    Vector&lt;uint32_t&gt; m_objrefStack;

objectReferenceStack?

&gt; Source/WebCore/bindings/v8/SerializedScriptValue.cpp:1848
&gt; +    if (status == Serializer::DataCloneError) {

Why not change this to be a &quot;switch (status)&quot; and collapse the Serializer::InputError and Serializer::DataCloneError cases?

Actually I&apos;d suggest a quick separate patch to make this a switch (status).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>436575</commentid>
    <comment_count>16</comment_count>
      <attachid>100699</attachid>
    <who name="Luke Zarko">lukezarko+bugzilla</who>
    <bug_when>2011-07-13 11:49:43 -0700</bug_when>
    <thetext>Created attachment 100699
Rebase and address comments.

Thanks again for your comments! I&apos;ve attached a new version of the patch that should address them.

&gt; What is the meaning of &quot;greyObject&quot;? I&apos;m sure it is something familiar to folks who work on GC/VM but not to me.

I&apos;ve added an explanatory comment; in defense of the name, commonly in tree or graph traversal algorithms nodes that you haven&apos;t yet visited are white; nodes that you are in the process of visiting are grey; nodes that you have finished visiting are black.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>436699</commentid>
    <comment_count>17</comment_count>
      <attachid>100699</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2011-07-13 15:22:41 -0700</bug_when>
    <thetext>Comment on attachment 100699
Rebase and address comments.

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

&gt; Source/WebCore/bindings/v8/SerializedScriptValue.cpp:93
&gt; +template&lt;typename GcObject, typename T&gt;

GCObject

&gt; Source/WebCore/bindings/v8/SerializedScriptValue.cpp:126
&gt; +    // v8::Objects, this V8GcHandleMap cannot be used to map v8::Strings to T (because the public V8 API

V8GcHandleMap undefined reference.

&gt; Source/WebCore/bindings/v8/SerializedScriptValue.cpp:754
&gt;                      return newState;

Why isn&apos;t m_serializingAccessor reset before this return?  (You explained but it would be nice to add a comment because it looks wrong.)

&gt; Source/WebCore/bindings/v8/SerializedScriptValue.cpp:911
&gt; +            return false;

return 0? (false doesn&apos;t go with StateBase*)

&gt; Source/WebCore/bindings/v8/SerializedScriptValue.cpp:923
&gt; +        greyObject(object);

Why can&apos;t the greyObject call be done as the 1st thing in this method?

&gt; Source/WebCore/bindings/v8/SerializedScriptValue.cpp:948
&gt; +    // Marks object as having been visited by the serializer and assigns it a unique object ID.

Why do you call it a &quot;unique object ID&quot; here but call it am objectPoolOffset on line 976?

&gt; Source/WebCore/bindings/v8/SerializedScriptValue.cpp:975
&gt; +    if ((value-&gt;IsObject() || value-&gt;IsDate() || value-&gt;IsRegExp())

Why are we putting things other than object, date, and regexp into m_objectPool but not writing out object offsets for them?

&gt; Source/WebCore/bindings/v8/SerializedScriptValue.cpp:984
&gt; +        writeNull();

Why did this become a method?

&gt; Source/WebCore/bindings/v8/SerializedScriptValue.cpp:1076
&gt; +            if (refTableSize != creator.objectReferenceCount())

It would be nice to add a comment here about what likely went wrong to cause this.

A missing call to creator.pushObjectReference in the deserialization (or an extra one)  that causes a mismatch between the serialization and deserialization.

&gt; Source/WebCore/bindings/v8/SerializedScriptValue.cpp:1111
&gt; +            if (m_version &gt; 0)

I think all of these checks for m_version &gt; 0 in this case:

if (m_version &gt; 0)
    creator.pushObjectReference(*value);

are simply optimizations for when we read version 0 formats. Since that will be a rare case and these checks clutter the code, why not remove them and simply have

creator.pushObjectReference(*value);

instead?

&gt; Source/WebCore/bindings/v8/SerializedScriptValue.cpp:1186
&gt; +            // ArrayBuffers are always written before dependent ArrayBufferViews.

// ArrayBufferView serialization writes the ArrayBuffer before the ArrayBufferView.
?

Why is it importnat to know that here?

&gt; Source/WebCore/bindings/v8/SerializedScriptValue.cpp:1264
&gt; +    bool readSubTag(ArrayBufferViewSubTag* tag)

&quot;readSubTag&quot; sounds too generic for what it does. (It only reads ArrayBufferView sub tags).

&gt; Source/WebCore/bindings/v8/SerializedScriptValue.cpp:1857
&gt; +    case Serializer::DataCloneError:

Why not just have:

case Serializer::InputError:
case Serializer::InputError:
 ...(same code for both)
  return;

&gt; Source/WebCore/bindings/v8/SerializedScriptValue.cpp:1867
&gt; +    default:

case Serializer::Success:

&gt; Source/WebCore/bindings/v8/SerializedScriptValue.cpp:1869
&gt; +        m_data = String(StringImpl::adopt(writer.data())).crossThreadString();

return;

case Serializer::JSException;
    // We should never get here because it was handled above. 
    break;
}

(By removing the default, you&apos;ll get the compiler warnings for unhandled enum values which is nice.)


ASSERT_NOT_REACHED();</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>436759</commentid>
    <comment_count>18</comment_count>
      <attachid>100699</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2011-07-13 16:33:44 -0700</bug_when>
    <thetext>Comment on attachment 100699
Rebase and address comments.

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

ok comments on the tests now.

&gt; LayoutTests/fast/dom/Window/script-tests/postmessage-clone-deep-array.js:1
&gt; +document.getElementById(&quot;description&quot;).innerHTML = &quot;Tests that we abort cloning deep(ish) arrays.&quot;;

Why does this get a different error than really deep array?

&gt; LayoutTests/fast/dom/Window/script-tests/postmessage-clone.js:98
&gt; +        doPassFail(v[2] === undefined, &quot;ix 2 undefined&quot;); // undefined

ix = index, right? (pls xpnd)

&gt; LayoutTests/platform/chromium/fast/canvas/webgl/script-tests/array-message-passing.js:1
&gt; +window.jsTestIsAsync = true;

Why is this a chromium test?

If any port implementing webgl and array message passing should pass this, then it shouldn&apos;t be in a chromium directory.

&gt; LayoutTests/platform/chromium/fast/canvas/webgl/script-tests/array-message-passing.js:2
&gt; +window.cheat = false;

When is cheat == true? I think this is debugging code that should be removed (along with the if below).

&gt; LayoutTests/platform/chromium/fast/canvas/webgl/script-tests/array-message-passing.js:7
&gt; +function classCompare(tname, g, s) {

s/tname/testName/

What do g and s stand for?

&gt; LayoutTests/platform/chromium/fast/canvas/webgl/script-tests/array-message-passing.js:8
&gt; +  var classStr = Object.prototype.toString;

avoid abbreviations: classString

Also ideally you&apos;d stick with stand WebKit 4 space indents.

&gt; LayoutTests/platform/chromium/fast/canvas/webgl/script-tests/array-message-passing.js:9
&gt; +  var gclass = classStr.call(g);

gClass (but hopefully with a better substitue for &quot;g&quot;).

&gt; LayoutTests/platform/chromium/fast/canvas/webgl/script-tests/array-message-passing.js:98
&gt; +function createTypedArrayOverBuffer(tatype, taeltsize, length, substart, sublength) {

s/tatype/typedArrayType/
s/taeltsize/typedArray??Size/

&gt; LayoutTests/platform/chromium/fast/canvas/webgl/script-tests/array-message-passing.js:140
&gt; +  {return [t[0] + &quot;_0b&quot;, createTypedArrayOverBuffer(t[1], t[2], 0), typedArrayCompare];}));

I wish the &quot;b&quot; of 0b was expanded so I didn&apos;t have to try to figure out what it means.

&gt; LayoutTests/platform/chromium/fast/dom/Window/script-tests/postmessage-clone-ex.js:1
&gt; +document.getElementById(&quot;description&quot;).innerHTML = &quot;Tests that we clone object hierarchies&quot;;

Why is this chromium only and why does it appear to copy so much from the other similar test?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>436786</commentid>
    <comment_count>19</comment_count>
    <who name="Luke Zarko">lukezarko+bugzilla</who>
    <bug_when>2011-07-13 17:41:51 -0700</bug_when>
    <thetext>(In reply to comment #18)
&gt; (From update of attachment 100699 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=100699&amp;action=review
&gt; 
&gt; ok comments on the tests now.
&gt; 
&gt; &gt; LayoutTests/fast/dom/Window/script-tests/postmessage-clone-deep-array.js:1
&gt; &gt; +document.getElementById(&quot;description&quot;).innerHTML = &quot;Tests that we abort cloning deep(ish) arrays.&quot;;
&gt; 
&gt; Why does this get a different error than really deep array?

The description was incorrect. deep-array passes, but there&apos;s a weird exception that happens when the harness tries to print the value to say that it passed (because the array is too deep for the default printer). JSC and V8 differ by a period in the error text, hence the different expectations. really-deep-array is intended to trigger the overflow behavior and is correctly described.

JSC doesn&apos;t currently use DATA_CLONE_ERR (code 25), hence the difference in expectation text for really-deep-array.

&gt; 
&gt; &gt; LayoutTests/fast/dom/Window/script-tests/postmessage-clone.js:98
&gt; &gt; +        doPassFail(v[2] === undefined, &quot;ix 2 undefined&quot;); // undefined
&gt; 
&gt; ix = index, right? (pls xpnd)

Done.

&gt; 
&gt; &gt; LayoutTests/platform/chromium/fast/canvas/webgl/script-tests/array-message-passing.js:1
&gt; &gt; +window.jsTestIsAsync = true;
&gt; 
&gt; Why is this a chromium test?

This behavior is not currently in the standard but is there to reflect inadvertent behavior from the previous version of the code that users have come to expect. That being said, I fully expect that this test will apply to the standard once it&apos;s completed; at that point we can promote it to a WebKit-global test.

&gt; 
&gt; If any port implementing webgl and array message passing should pass this, then it shouldn&apos;t be in a chromium directory.
&gt; 
&gt; &gt; LayoutTests/platform/chromium/fast/canvas/webgl/script-tests/array-message-passing.js:2
&gt; &gt; +window.cheat = false;
&gt; 
&gt; When is cheat == true? I think this is debugging code that should be removed (along with the if below).

Correct; done.

&gt; 
&gt; &gt; LayoutTests/platform/chromium/fast/canvas/webgl/script-tests/array-message-passing.js:7
&gt; &gt; +function classCompare(tname, g, s) {
&gt; 
&gt; s/tname/testName/
&gt; 
&gt; What do g and s stand for?

Done (got/sent).

&gt; 
&gt; &gt; LayoutTests/platform/chromium/fast/canvas/webgl/script-tests/array-message-passing.js:8
&gt; &gt; +  var classStr = Object.prototype.toString;
&gt; 
&gt; avoid abbreviations: classString
&gt; 
&gt; Also ideally you&apos;d stick with stand WebKit 4 space indents.

Done.

&gt; 
&gt; &gt; LayoutTests/platform/chromium/fast/canvas/webgl/script-tests/array-message-passing.js:9
&gt; &gt; +  var gclass = classStr.call(g);
&gt; 
&gt; gClass (but hopefully with a better substitue for &quot;g&quot;).

Done (gotClass).

&gt; 
&gt; &gt; LayoutTests/platform/chromium/fast/canvas/webgl/script-tests/array-message-passing.js:98
&gt; &gt; +function createTypedArrayOverBuffer(tatype, taeltsize, length, substart, sublength) {
&gt; 
&gt; s/tatype/typedArrayType/
&gt; s/taeltsize/typedArray??Size/

Done (Element).

&gt; 
&gt; &gt; LayoutTests/platform/chromium/fast/canvas/webgl/script-tests/array-message-passing.js:140
&gt; &gt; +  {return [t[0] + &quot;_0b&quot;, createTypedArrayOverBuffer(t[1], t[2], 0), typedArrayCompare];}));
&gt; 
&gt; I wish the &quot;b&quot; of 0b was expanded so I didn&apos;t have to try to figure out what it means.

Done (_buffer); others expanded too.

&gt; 
&gt; &gt; LayoutTests/platform/chromium/fast/dom/Window/script-tests/postmessage-clone-ex.js:1
&gt; &gt; +document.getElementById(&quot;description&quot;).innerHTML = &quot;Tests that we clone object hierarchies&quot;;
&gt; 
&gt; Why is this chromium only and why does it appear to copy so much from the other similar test?

My bad. It was a leftover from when I was figuring out how to write platform tests. Nothing referenced it and it has been garbage collected.

(In reply to comment #18)
&gt; (From update of attachment 100699 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=100699&amp;action=review
&gt; 
&gt; ok comments on the tests now.
&gt; 
&gt; &gt; LayoutTests/fast/dom/Window/script-tests/postmessage-clone-deep-array.js:1
&gt; &gt; +document.getElementById(&quot;description&quot;).innerHTML = &quot;Tests that we abort cloning deep(ish) arrays.&quot;;
&gt; 
&gt; Why does this get a different error than really deep array?
&gt; 
&gt; &gt; LayoutTests/fast/dom/Window/script-tests/postmessage-clone.js:98
&gt; &gt; +        doPassFail(v[2] === undefined, &quot;ix 2 undefined&quot;); // undefined
&gt; 
&gt; ix = index, right? (pls xpnd)
&gt; 
&gt; &gt; LayoutTests/platform/chromium/fast/canvas/webgl/script-tests/array-message-passing.js:1
&gt; &gt; +window.jsTestIsAsync = true;
&gt; 
&gt; Why is this a chromium test?
&gt; 
&gt; If any port implementing webgl and array message passing should pass this, then it shouldn&apos;t be in a chromium directory.
&gt; 
&gt; &gt; LayoutTests/platform/chromium/fast/canvas/webgl/script-tests/array-message-passing.js:2
&gt; &gt; +window.cheat = false;
&gt; 
&gt; When is cheat == true? I think this is debugging code that should be removed (along with the if below).
&gt; 
&gt; &gt; LayoutTests/platform/chromium/fast/canvas/webgl/script-tests/array-message-passing.js:7
&gt; &gt; +function classCompare(tname, g, s) {
&gt; 
&gt; s/tname/testName/
&gt; 
&gt; What do g and s stand for?
&gt; 
&gt; &gt; LayoutTests/platform/chromium/fast/canvas/webgl/script-tests/array-message-passing.js:8
&gt; &gt; +  var classStr = Object.prototype.toString;
&gt; 
&gt; avoid abbreviations: classString
&gt; 
&gt; Also ideally you&apos;d stick with stand WebKit 4 space indents.
&gt; 
&gt; &gt; LayoutTests/platform/chromium/fast/canvas/webgl/script-tests/array-message-passing.js:9
&gt; &gt; +  var gclass = classStr.call(g);
&gt; 
&gt; gClass (but hopefully with a better substitue for &quot;g&quot;).
&gt; 
&gt; &gt; LayoutTests/platform/chromium/fast/canvas/webgl/script-tests/array-message-passing.js:98
&gt; &gt; +function createTypedArrayOverBuffer(tatype, taeltsize, length, substart, sublength) {
&gt; 
&gt; s/tatype/typedArrayType/
&gt; s/taeltsize/typedArray??Size/
&gt; 
&gt; &gt; LayoutTests/platform/chromium/fast/canvas/webgl/script-tests/array-message-passing.js:140
&gt; &gt; +  {return [t[0] + &quot;_0b&quot;, createTypedArrayOverBuffer(t[1], t[2], 0), typedArrayCompare];}));
&gt; 
&gt; I wish the &quot;b&quot; of 0b was expanded so I didn&apos;t have to try to figure out what it means.
&gt; 
&gt; &gt; LayoutTests/platform/chromium/fast/dom/Window/script-tests/postmessage-clone-ex.js:1
&gt; &gt; +document.getElementById(&quot;description&quot;).innerHTML = &quot;Tests that we clone object hierarchies&quot;;
&gt; 
&gt; Why is this chromium only and why does it appear to copy so much from the other similar test?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>436789</commentid>
    <comment_count>20</comment_count>
      <attachid>100737</attachid>
    <who name="Luke Zarko">lukezarko+bugzilla</who>
    <bug_when>2011-07-13 17:44:14 -0700</bug_when>
    <thetext>Created attachment 100737
Address comments (re: code and tests both).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>436790</commentid>
    <comment_count>21</comment_count>
      <attachid>100737</attachid>
    <who name="Luke Zarko">lukezarko+bugzilla</who>
    <bug_when>2011-07-13 17:45:07 -0700</bug_when>
    <thetext>Comment on attachment 100737
Address comments (re: code and tests both).

(sent with wrong MIME type somehow?)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>436791</commentid>
    <comment_count>22</comment_count>
      <attachid>100738</attachid>
    <who name="Luke Zarko">lukezarko+bugzilla</who>
    <bug_when>2011-07-13 17:46:15 -0700</bug_when>
    <thetext>Created attachment 100738
Address comments (re: code and tests both); attempt to send as text/plain.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>436798</commentid>
    <comment_count>23</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2011-07-13 17:50:32 -0700</bug_when>
    <thetext>(In reply to comment #19)
&gt; (In reply to comment #18)
&gt; &gt; (From update of attachment 100699 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=100699&amp;action=review
&gt; &gt; 
&gt; &gt; ok comments on the tests now.
&gt; &gt; 
&gt; &gt; &gt; LayoutTests/fast/dom/Window/script-tests/postmessage-clone-deep-array.js:1
&gt; &gt; &gt; +document.getElementById(&quot;description&quot;).innerHTML = &quot;Tests that we abort cloning deep(ish) arrays.&quot;;
&gt; &gt; 
&gt; &gt; Why does this get a different error than really deep array?
&gt; 
&gt; The description was incorrect. deep-array passes, but there&apos;s a weird exception that happens when the harness tries to print the value to say that it passed (because the array is too deep for the default printer). JSC and V8 differ by a period in the error text, hence the different expectations. really-deep-array is intended to trigger the overflow behavior and is correctly described.

(Super low priority but) Want to patch one of them to make the error text the same? (Different results are painful.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>436846</commentid>
    <comment_count>24</comment_count>
      <attachid>100738</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2011-07-13 18:49:03 -0700</bug_when>
    <thetext>Comment on attachment 100738
Address comments (re: code and tests both); attempt to send as text/plain.

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

&gt; Source/WebCore/bindings/v8/SerializedScriptValue.cpp:413
&gt; +    void writeObjectOffset(uint32_t offset)

objectReference seems like the most commonly used term.
s/writeObjectOffset/writeObjectReference/

&gt; Source/WebCore/bindings/v8/SerializedScriptValue.cpp:438
&gt; +    void writeCheckRef(uint32_t numberOfRefs)

avoid abbreviations:s/Ref/Reference/ (for both instances).

&gt; Source/WebCore/bindings/v8/SerializedScriptValue.cpp:440
&gt; +        append(CheckRefTag);

Perhaps s/CheckRef/ReferenceCount/

&gt; Source/WebCore/bindings/v8/SerializedScriptValue.cpp:560
&gt; +        , m_nextObjectId(0)

objectReference seems like the most commonly used term, so

s/ObjectId/ObjectReference/

&gt; Source/WebCore/bindings/v8/SerializedScriptValue.cpp:755
&gt; +                // and is checked upon entry in Serializer::doSerialize.

I would get rid of the 2nd sentence (because it could easily get out of date).

I would consider making the 1st sentence a comment above where the member variable is declared.

// Used along with execDepth() to determine the number of
// accessors under which the serializer is currently serializing.
bool m_isSerializingAccessor;

(I changed the name here on purpose so that it clear that it is a bool and what question it answers.)

&gt; Source/WebCore/bindings/v8/SerializedScriptValue.cpp:764
&gt; +                // This m_serializingAccessor reset is necessary for those times when we are serializing

I don&apos;t think you need a comment for this case. (It is expected -- The odd thing is not reseting during a return. That is a typical buggy pattern so that comment is useful.)

&gt; Source/WebCore/bindings/v8/SerializedScriptValue.cpp:964
&gt; +        uint32_t objectId = m_nextObjectId++;

objectReference seems like the most commonly used term, so

s/objectId/objectReference/

&gt; Source/WebCore/bindings/v8/SerializedScriptValue.cpp:1738
&gt; +        uint32_t newId = m_objectPool.size();

objectReference seems like the most commonly used term, so

s/newId/newObjectReference/

(I&apos;m not sure that we need &quot;new&quot; in this name. Up to you.)

&gt; Source/WebCore/bindings/v8/SerializedScriptValue.cpp:1747
&gt; +        uint32_t oldId = m_objectReferenceStack[m_objectReferenceStack.size() - 1];

objectReference seems like the most commonly used term, so

s/old/oldObjectReference/

(I&apos;m not sure that we need &quot;old&quot; in this name. Up to you.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>437225</commentid>
    <comment_count>25</comment_count>
      <attachid>100738</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2011-07-14 11:42:13 -0700</bug_when>
    <thetext>Comment on attachment 100738
Address comments (re: code and tests both); attempt to send as text/plain.

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

Ok only a few more comments to address and this should be good to go. Thanks!

&gt; LayoutTests/platform/chromium/fast/canvas/webgl/array-message-passing.html:1
&gt; +&lt;!DOCTYPE HTML PUBLIC &quot;-//IETF//DTD HTML//EN&quot;&gt;

&quot;This behavior is not currently in the standard but is there to reflect inadvertent behavior from the previous version of the code that users have come to expect. That being said, I fully expect that this test will apply to the standard once it&apos;s completed; at that point we can promote it to a WebKit-global test.&quot;

I&apos;ve been thinking about this more and even if we don&apos;t follow the standard here. One of our goals in WebKit is to have consistency among ports using WebKit, so I don&apos;t think this should be a chromium only test. Frankly this behavior only makes sense and we&apos;ve seen some sites using it. (For example, this site was one example: http://juliamap.googlelabs.com/#c=0,0$z=0$p=ffffff,ffffff,ffffff,ffffff,ff0000,ffff00,ffff00,ff00,ff$f=mandelbrot).

&gt; LayoutTests/platform/chromium/fast/canvas/webgl/script-tests/array-message-passing.js:124
&gt; +    [&apos;DataView1_ofs_end&apos;, new DataView(createBuffer(1), 1, 0), dataViewCompare],

ofs (Please make it more readable).

&gt; Source/WebCore/bindings/v8/SerializedScriptValue.cpp:385
&gt; +            append(DataViewTag);

else
  ASSERT_NOT_REACHED();

In addition, to code that can&apos;t have errors detected by the compile, awkward if else structures, this also leads to unnecessary vtables bloat.

Do you think the ArrayBufferView::is* should change to an enum value (in a future patch)?

&gt; Source/WebCore/bindings/v8/SerializedScriptValue.cpp:1624
&gt; +            array = composite.As&lt;v8::Array&gt;();

What happens if the length given here doesn&apos;t agree with the length given when doing &quot;newArray&quot;?

&gt; Source/WebCore/bindings/v8/SerializedScriptValue.cpp:1629
&gt;          const int depth = stackDepth() - length;

This algorithm in general seems very paranoid (about possible corrupted data), but in this case depth could go negative if given a bad length but it appears ok with that. Should it check?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>437230</commentid>
    <comment_count>26</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2011-07-14 11:47:11 -0700</bug_when>
    <thetext>(In reply to comment #25)
&gt; (From update of attachment 100738 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=100738&amp;action=review
&gt; 
&gt; Ok only a few more comments to address and this should be good to go. Thanks!
&gt; 
&gt; &gt; LayoutTests/platform/chromium/fast/canvas/webgl/array-message-passing.html:1
&gt; &gt; +&lt;!DOCTYPE HTML PUBLIC &quot;-//IETF//DTD HTML//EN&quot;&gt;
&gt;  I don&apos;t think this should be a chromium only test.

When I said this, I don&apos;t mean that these tests should be combined into the general test for this. It should be a separate test, just not in platform/chromium alone.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>437380</commentid>
    <comment_count>27</comment_count>
      <attachid>100881</attachid>
    <who name="Luke Zarko">lukezarko+bugzilla</who>
    <bug_when>2011-07-14 15:56:05 -0700</bug_when>
    <thetext>Created attachment 100881
Promote array buffer passing test and address comments.

&gt; (array-message-passing)

I&apos;ve moved this into the common tests directory and configured expectations appropriately.

&gt; (Super low priority but) Want to patch one of them to make the error text the same? (Different results are painful.)

I will look into this; I hope it won&apos;t require too many changes to expectations.

&gt; Do you think the ArrayBufferView::is* should change to an enum value (in a future patch)?

Yes, to permit exactly this kind of typecasing.

&gt; What happens if the length given here doesn&apos;t agree with the length given when doing &quot;newArray&quot;?
&gt; This algorithm in general seems very paranoid (about possible corrupted data), but in this case depth could go negative if given a bad length but it appears ok with that. Should it check?

length &lt;= stackDepth() (otherwise we would have returned). Hence:
  length &gt;= 0 (length is uint32_t), stackDepth() &gt;= 0 (invariant)
  const int depth = stackDepth() - length;  // depth &gt;= 0; depth + length = stackDepth()
  for (unsigned int i = 0; i &lt; length; ++i) // i = [0..length - 1]
      array-&gt;Set(i, element(depth + i));    // depth + i = [depth .. depth + length - 1]
                                            // depth + i = [depth .. stackDepth() - 1]

so we&apos;ll never try to grab a bad element().

length may &lt;&gt; the length given to newArray if the object is corrupted or if the array was mutated during serialization (and we didn&apos;t decide how many elements
we were going to write before we started). Our behavior then depends on v8::Object::Set(uint32_t, v8::Handle&lt;Value&gt;), and we&apos;re worried about the index &gt;= length
case (because otherwise we get the default initialized value). If we assume that the array is still a dense array internally, we&apos;ll eventually get down to 
JSObject::SetElementWithoutInterceptor and JSObject::SetFastElement (v8/src/objects.cc:8263), the effect of which appears to be to rearrange the array&apos;s storage to
fit the new element (and not to throw an exception or do something even less pleasant). (Thanks to vegorov@ for confirming that this API sticks to JS semantics.)

For this patch the above is kind of moot, though, because it does not address the FIXME in newArrayState() from the old code-- so arrays are serialized as sparse arrays and that code doesn&apos;t get hit. Another future patch in the making!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>437385</commentid>
    <comment_count>28</comment_count>
      <attachid>100881</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2011-07-14 16:04:04 -0700</bug_when>
    <thetext>Comment on attachment 100881
Promote array buffer passing test and address comments.

cq- will land manually since this has a fair chance of causing some port issues (and I need to do a chromium try job as well).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>439437</commentid>
    <comment_count>29</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2011-07-19 14:10:12 -0700</bug_when>
    <thetext>Committed as http://trac.webkit.org/changeset/91300</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>98781</attachid>
            <date>2011-06-27 14:08:28 -0700</date>
            <delta_ts>2011-06-27 15:31:10 -0700</delta_ts>
            <desc>Patch and tests.</desc>
            <filename>mon118.patch</filename>
            <type>text/plain</type>
            <size>103399</size>
            <attacher name="Luke Zarko">lukezarko+bugzilla</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2FycmF5LW1lc3NhZ2Ut
cGFzc2luZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9hcnJh
eS1tZXNzYWdlLXBhc3NpbmctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjUyMDg1MGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nh
bnZhcy93ZWJnbC9hcnJheS1tZXNzYWdlLXBhc3NpbmctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
NTk5IEBACitUZXN0IHBhc3NpbmcgQXJyYXlCdWZmZXJzIGFuZCBBcnJheUJ1ZmZlclZpZXdzIGlu
IG1lc3NhZ2VzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKK1BBU1MgQXJyYXlCdWZm
ZXIwOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBBcnJheUJ1ZmZlcjA6
IGJ1ZmZlciBsZW5ndGhzIGFyZSAwCitQQVNTIEFycmF5QnVmZmVyMDogYnVmZmVycyBoYXZlIHRo
ZSBzYW1lIGNvbnRlbnRzCitQQVNTIEFycmF5QnVmZmVyMTogY2xhc3NlcyBhcmUgW29iamVjdCBB
cnJheUJ1ZmZlcl0KK1BBU1MgQXJyYXlCdWZmZXIxOiBidWZmZXIgbGVuZ3RocyBhcmUgMQorUEFT
UyBBcnJheUJ1ZmZlcjE6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBBcnJh
eUJ1ZmZlcjEyODogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgQXJyYXlC
dWZmZXIxMjg6IGJ1ZmZlciBsZW5ndGhzIGFyZSAxMjgKK1BBU1MgQXJyYXlCdWZmZXIxMjg6IGJ1
ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBEYXRhVmlldzA6IGNsYXNzZXMgYXJl
IFtvYmplY3QgRGF0YVZpZXddCitQQVNTIERhdGFWaWV3MDogY2xhc3NlcyBhcmUgW29iamVjdCBB
cnJheUJ1ZmZlcl0KK1BBU1MgRGF0YVZpZXcwOiBidWZmZXIgbGVuZ3RocyBhcmUgMAorUEFTUyBE
YXRhVmlldzA6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBEYXRhVmlldzA6
IG9mZnNldCBpcyAwCitQQVNTIERhdGFWaWV3MDogbGVuZ3RoIGlzIDAKK1BBU1MgRGF0YVZpZXcx
OiBjbGFzc2VzIGFyZSBbb2JqZWN0IERhdGFWaWV3XQorUEFTUyBEYXRhVmlldzE6IGNsYXNzZXMg
YXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIERhdGFWaWV3MTogYnVmZmVyIGxlbmd0aHMg
YXJlIDEKK1BBU1MgRGF0YVZpZXcxOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BB
U1MgRGF0YVZpZXcxOiBvZmZzZXQgaXMgMAorUEFTUyBEYXRhVmlldzE6IGxlbmd0aCBpcyAxCitQ
QVNTIERhdGFWaWV3MTI4OiBjbGFzc2VzIGFyZSBbb2JqZWN0IERhdGFWaWV3XQorUEFTUyBEYXRh
VmlldzEyODogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgRGF0YVZpZXcx
Mjg6IGJ1ZmZlciBsZW5ndGhzIGFyZSAxMjgKK1BBU1MgRGF0YVZpZXcxMjg6IGJ1ZmZlcnMgaGF2
ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBEYXRhVmlldzEyODogb2Zmc2V0IGlzIDAKK1BBU1Mg
RGF0YVZpZXcxMjg6IGxlbmd0aCBpcyAxMjgKK1BBU1MgRGF0YVZpZXcxX29mc19lbmQ6IGNsYXNz
ZXMgYXJlIFtvYmplY3QgRGF0YVZpZXddCitQQVNTIERhdGFWaWV3MV9vZnNfZW5kOiBjbGFzc2Vz
IGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBEYXRhVmlldzFfb2ZzX2VuZDogYnVmZmVy
IGxlbmd0aHMgYXJlIDEKK1BBU1MgRGF0YVZpZXcxX29mc19lbmQ6IGJ1ZmZlcnMgaGF2ZSB0aGUg
c2FtZSBjb250ZW50cworUEFTUyBEYXRhVmlldzFfb2ZzX2VuZDogb2Zmc2V0IGlzIDEKK1BBU1Mg
RGF0YVZpZXcxX29mc19lbmQ6IGxlbmd0aCBpcyAwCitQQVNTIERhdGFWaWV3MTI4X29mc19lbmQ6
IGNsYXNzZXMgYXJlIFtvYmplY3QgRGF0YVZpZXddCitQQVNTIERhdGFWaWV3MTI4X29mc19lbmQ6
IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIERhdGFWaWV3MTI4X29mc19l
bmQ6IGJ1ZmZlciBsZW5ndGhzIGFyZSAxMjgKK1BBU1MgRGF0YVZpZXcxMjhfb2ZzX2VuZDogYnVm
ZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIERhdGFWaWV3MTI4X29mc19lbmQ6IG9m
ZnNldCBpcyAxMjgKK1BBU1MgRGF0YVZpZXcxMjhfb2ZzX2VuZDogbGVuZ3RoIGlzIDAKK1BBU1Mg
RGF0YVZpZXcxMjhfb2ZzX3NsaWNlMDogY2xhc3NlcyBhcmUgW29iamVjdCBEYXRhVmlld10KK1BB
U1MgRGF0YVZpZXcxMjhfb2ZzX3NsaWNlMDogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZl
cl0KK1BBU1MgRGF0YVZpZXcxMjhfb2ZzX3NsaWNlMDogYnVmZmVyIGxlbmd0aHMgYXJlIDEyOAor
UEFTUyBEYXRhVmlldzEyOF9vZnNfc2xpY2UwOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVu
dHMKK1BBU1MgRGF0YVZpZXcxMjhfb2ZzX3NsaWNlMDogb2Zmc2V0IGlzIDY0CitQQVNTIERhdGFW
aWV3MTI4X29mc19zbGljZTA6IGxlbmd0aCBpcyAwCitQQVNTIERhdGFWaWV3MTI4X29mc19zbGlj
ZTE6IGNsYXNzZXMgYXJlIFtvYmplY3QgRGF0YVZpZXddCitQQVNTIERhdGFWaWV3MTI4X29mc19z
bGljZTE6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIERhdGFWaWV3MTI4
X29mc19zbGljZTE6IGJ1ZmZlciBsZW5ndGhzIGFyZSAxMjgKK1BBU1MgRGF0YVZpZXcxMjhfb2Zz
X3NsaWNlMTogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIERhdGFWaWV3MTI4
X29mc19zbGljZTE6IG9mZnNldCBpcyA2NAorUEFTUyBEYXRhVmlldzEyOF9vZnNfc2xpY2UxOiBs
ZW5ndGggaXMgMQorUEFTUyBEYXRhVmlldzEyOF9vZnNfc2xpY2UxNjogY2xhc3NlcyBhcmUgW29i
amVjdCBEYXRhVmlld10KK1BBU1MgRGF0YVZpZXcxMjhfb2ZzX3NsaWNlMTY6IGNsYXNzZXMgYXJl
IFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIERhdGFWaWV3MTI4X29mc19zbGljZTE2OiBidWZm
ZXIgbGVuZ3RocyBhcmUgMTI4CitQQVNTIERhdGFWaWV3MTI4X29mc19zbGljZTE2OiBidWZmZXJz
IGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgRGF0YVZpZXcxMjhfb2ZzX3NsaWNlMTY6IG9m
ZnNldCBpcyA2NAorUEFTUyBEYXRhVmlldzEyOF9vZnNfc2xpY2UxNjogbGVuZ3RoIGlzIDE2CitQ
QVNTIERhdGFWaWV3MTI4X29mc19zbGljZV91bmFsaWduZWQ6IGNsYXNzZXMgYXJlIFtvYmplY3Qg
RGF0YVZpZXddCitQQVNTIERhdGFWaWV3MTI4X29mc19zbGljZV91bmFsaWduZWQ6IGNsYXNzZXMg
YXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIERhdGFWaWV3MTI4X29mc19zbGljZV91bmFs
aWduZWQ6IGJ1ZmZlciBsZW5ndGhzIGFyZSAxMjgKK1BBU1MgRGF0YVZpZXcxMjhfb2ZzX3NsaWNl
X3VuYWxpZ25lZDogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIERhdGFWaWV3
MTI4X29mc19zbGljZV91bmFsaWduZWQ6IG9mZnNldCBpcyA2MworUEFTUyBEYXRhVmlldzEyOF9v
ZnNfc2xpY2VfdW5hbGlnbmVkOiBsZW5ndGggaXMgMTUKK1BBU1MgSW50MzJfMDogY2xhc3NlcyBh
cmUgW29iamVjdCBJbnQzMkFycmF5XQorUEFTUyBJbnQzMl8wOiBjbGFzc2VzIGFyZSBbb2JqZWN0
IEFycmF5QnVmZmVyXQorUEFTUyBJbnQzMl8wOiBidWZmZXIgbGVuZ3RocyBhcmUgMAorUEFTUyBJ
bnQzMl8wOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgSW50MzJfMDogb2Zm
c2V0IGlzIDAKK1BBU1MgSW50MzJfMDogbGVuZ3RoIGlzIDAKK1BBU1MgVWludDMyXzA6IGNsYXNz
ZXMgYXJlIFtvYmplY3QgVWludDMyQXJyYXldCitQQVNTIFVpbnQzMl8wOiBjbGFzc2VzIGFyZSBb
b2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBVaW50MzJfMDogYnVmZmVyIGxlbmd0aHMgYXJlIDAK
K1BBU1MgVWludDMyXzA6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBVaW50
MzJfMDogb2Zmc2V0IGlzIDAKK1BBU1MgVWludDMyXzA6IGxlbmd0aCBpcyAwCitQQVNTIEludDhf
MDogY2xhc3NlcyBhcmUgW29iamVjdCBJbnQ4QXJyYXldCitQQVNTIEludDhfMDogY2xhc3NlcyBh
cmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgSW50OF8wOiBidWZmZXIgbGVuZ3RocyBhcmUg
MAorUEFTUyBJbnQ4XzA6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBJbnQ4
XzA6IG9mZnNldCBpcyAwCitQQVNTIEludDhfMDogbGVuZ3RoIGlzIDAKK1BBU1MgVWludDhfMDog
Y2xhc3NlcyBhcmUgW29iamVjdCBVaW50OEFycmF5XQorUEFTUyBVaW50OF8wOiBjbGFzc2VzIGFy
ZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBVaW50OF8wOiBidWZmZXIgbGVuZ3RocyBhcmUg
MAorUEFTUyBVaW50OF8wOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgVWlu
dDhfMDogb2Zmc2V0IGlzIDAKK1BBU1MgVWludDhfMDogbGVuZ3RoIGlzIDAKK1BBU1MgSW50MTZf
MDogY2xhc3NlcyBhcmUgW29iamVjdCBJbnQxNkFycmF5XQorUEFTUyBJbnQxNl8wOiBjbGFzc2Vz
IGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBJbnQxNl8wOiBidWZmZXIgbGVuZ3RocyBh
cmUgMAorUEFTUyBJbnQxNl8wOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1Mg
SW50MTZfMDogb2Zmc2V0IGlzIDAKK1BBU1MgSW50MTZfMDogbGVuZ3RoIGlzIDAKK1BBU1MgVWlu
dDE2XzA6IGNsYXNzZXMgYXJlIFtvYmplY3QgVWludDE2QXJyYXldCitQQVNTIFVpbnQxNl8wOiBj
bGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBVaW50MTZfMDogYnVmZmVyIGxl
bmd0aHMgYXJlIDAKK1BBU1MgVWludDE2XzA6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50
cworUEFTUyBVaW50MTZfMDogb2Zmc2V0IGlzIDAKK1BBU1MgVWludDE2XzA6IGxlbmd0aCBpcyAw
CitQQVNTIEZsb2F0MzJfMDogY2xhc3NlcyBhcmUgW29iamVjdCBGbG9hdDMyQXJyYXldCitQQVNT
IEZsb2F0MzJfMDogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgRmxvYXQz
Ml8wOiBidWZmZXIgbGVuZ3RocyBhcmUgMAorUEFTUyBGbG9hdDMyXzA6IGJ1ZmZlcnMgaGF2ZSB0
aGUgc2FtZSBjb250ZW50cworUEFTUyBGbG9hdDMyXzA6IG9mZnNldCBpcyAwCitQQVNTIEZsb2F0
MzJfMDogbGVuZ3RoIGlzIDAKK1BBU1MgRmxvYXQ2NF8wOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEZs
b2F0NjRBcnJheV0KK1BBU1MgRmxvYXQ2NF8wOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVm
ZmVyXQorUEFTUyBGbG9hdDY0XzA6IGJ1ZmZlciBsZW5ndGhzIGFyZSAwCitQQVNTIEZsb2F0NjRf
MDogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIEZsb2F0NjRfMDogb2Zmc2V0
IGlzIDAKK1BBU1MgRmxvYXQ2NF8wOiBsZW5ndGggaXMgMAorUEFTUyBJbnQzMl8xOiBjbGFzc2Vz
IGFyZSBbb2JqZWN0IEludDMyQXJyYXldCitQQVNTIEludDMyXzE6IGNsYXNzZXMgYXJlIFtvYmpl
Y3QgQXJyYXlCdWZmZXJdCitQQVNTIEludDMyXzE6IGJ1ZmZlciBsZW5ndGhzIGFyZSA0CitQQVNT
IEludDMyXzE6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBJbnQzMl8xOiBv
ZmZzZXQgaXMgMAorUEFTUyBJbnQzMl8xOiBsZW5ndGggaXMgNAorUEFTUyBVaW50MzJfMTogY2xh
c3NlcyBhcmUgW29iamVjdCBVaW50MzJBcnJheV0KK1BBU1MgVWludDMyXzE6IGNsYXNzZXMgYXJl
IFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIFVpbnQzMl8xOiBidWZmZXIgbGVuZ3RocyBhcmUg
NAorUEFTUyBVaW50MzJfMTogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIFVp
bnQzMl8xOiBvZmZzZXQgaXMgMAorUEFTUyBVaW50MzJfMTogbGVuZ3RoIGlzIDQKK1BBU1MgSW50
OF8xOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEludDhBcnJheV0KK1BBU1MgSW50OF8xOiBjbGFzc2Vz
IGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBJbnQ4XzE6IGJ1ZmZlciBsZW5ndGhzIGFy
ZSAxCitQQVNTIEludDhfMTogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIElu
dDhfMTogb2Zmc2V0IGlzIDAKK1BBU1MgSW50OF8xOiBsZW5ndGggaXMgMQorUEFTUyBVaW50OF8x
OiBjbGFzc2VzIGFyZSBbb2JqZWN0IFVpbnQ4QXJyYXldCitQQVNTIFVpbnQ4XzE6IGNsYXNzZXMg
YXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIFVpbnQ4XzE6IGJ1ZmZlciBsZW5ndGhzIGFy
ZSAxCitQQVNTIFVpbnQ4XzE6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBV
aW50OF8xOiBvZmZzZXQgaXMgMAorUEFTUyBVaW50OF8xOiBsZW5ndGggaXMgMQorUEFTUyBJbnQx
Nl8xOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEludDE2QXJyYXldCitQQVNTIEludDE2XzE6IGNsYXNz
ZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIEludDE2XzE6IGJ1ZmZlciBsZW5ndGhz
IGFyZSAyCitQQVNTIEludDE2XzE6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFT
UyBJbnQxNl8xOiBvZmZzZXQgaXMgMAorUEFTUyBJbnQxNl8xOiBsZW5ndGggaXMgMgorUEFTUyBV
aW50MTZfMTogY2xhc3NlcyBhcmUgW29iamVjdCBVaW50MTZBcnJheV0KK1BBU1MgVWludDE2XzE6
IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIFVpbnQxNl8xOiBidWZmZXIg
bGVuZ3RocyBhcmUgMgorUEFTUyBVaW50MTZfMTogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRl
bnRzCitQQVNTIFVpbnQxNl8xOiBvZmZzZXQgaXMgMAorUEFTUyBVaW50MTZfMTogbGVuZ3RoIGlz
IDIKK1BBU1MgRmxvYXQzMl8xOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEZsb2F0MzJBcnJheV0KK1BB
U1MgRmxvYXQzMl8xOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBGbG9h
dDMyXzE6IGJ1ZmZlciBsZW5ndGhzIGFyZSA0CitQQVNTIEZsb2F0MzJfMTogYnVmZmVycyBoYXZl
IHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIEZsb2F0MzJfMTogb2Zmc2V0IGlzIDAKK1BBU1MgRmxv
YXQzMl8xOiBsZW5ndGggaXMgNAorUEFTUyBGbG9hdDY0XzE6IGNsYXNzZXMgYXJlIFtvYmplY3Qg
RmxvYXQ2NEFycmF5XQorUEFTUyBGbG9hdDY0XzE6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlC
dWZmZXJdCitQQVNTIEZsb2F0NjRfMTogYnVmZmVyIGxlbmd0aHMgYXJlIDgKK1BBU1MgRmxvYXQ2
NF8xOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgRmxvYXQ2NF8xOiBvZmZz
ZXQgaXMgMAorUEFTUyBGbG9hdDY0XzE6IGxlbmd0aCBpcyA4CitQQVNTIEludDMyXzEyODogY2xh
c3NlcyBhcmUgW29iamVjdCBJbnQzMkFycmF5XQorUEFTUyBJbnQzMl8xMjg6IGNsYXNzZXMgYXJl
IFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIEludDMyXzEyODogYnVmZmVyIGxlbmd0aHMgYXJl
IDUxMgorUEFTUyBJbnQzMl8xMjg6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFT
UyBJbnQzMl8xMjg6IG9mZnNldCBpcyAwCitQQVNTIEludDMyXzEyODogbGVuZ3RoIGlzIDUxMgor
UEFTUyBVaW50MzJfMTI4OiBjbGFzc2VzIGFyZSBbb2JqZWN0IFVpbnQzMkFycmF5XQorUEFTUyBV
aW50MzJfMTI4OiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBVaW50MzJf
MTI4OiBidWZmZXIgbGVuZ3RocyBhcmUgNTEyCitQQVNTIFVpbnQzMl8xMjg6IGJ1ZmZlcnMgaGF2
ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBVaW50MzJfMTI4OiBvZmZzZXQgaXMgMAorUEFTUyBV
aW50MzJfMTI4OiBsZW5ndGggaXMgNTEyCitQQVNTIEludDhfMTI4OiBjbGFzc2VzIGFyZSBbb2Jq
ZWN0IEludDhBcnJheV0KK1BBU1MgSW50OF8xMjg6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlC
dWZmZXJdCitQQVNTIEludDhfMTI4OiBidWZmZXIgbGVuZ3RocyBhcmUgMTI4CitQQVNTIEludDhf
MTI4OiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgSW50OF8xMjg6IG9mZnNl
dCBpcyAwCitQQVNTIEludDhfMTI4OiBsZW5ndGggaXMgMTI4CitQQVNTIFVpbnQ4XzEyODogY2xh
c3NlcyBhcmUgW29iamVjdCBVaW50OEFycmF5XQorUEFTUyBVaW50OF8xMjg6IGNsYXNzZXMgYXJl
IFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIFVpbnQ4XzEyODogYnVmZmVyIGxlbmd0aHMgYXJl
IDEyOAorUEFTUyBVaW50OF8xMjg6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFT
UyBVaW50OF8xMjg6IG9mZnNldCBpcyAwCitQQVNTIFVpbnQ4XzEyODogbGVuZ3RoIGlzIDEyOAor
UEFTUyBJbnQxNl8xMjg6IGNsYXNzZXMgYXJlIFtvYmplY3QgSW50MTZBcnJheV0KK1BBU1MgSW50
MTZfMTI4OiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBJbnQxNl8xMjg6
IGJ1ZmZlciBsZW5ndGhzIGFyZSAyNTYKK1BBU1MgSW50MTZfMTI4OiBidWZmZXJzIGhhdmUgdGhl
IHNhbWUgY29udGVudHMKK1BBU1MgSW50MTZfMTI4OiBvZmZzZXQgaXMgMAorUEFTUyBJbnQxNl8x
Mjg6IGxlbmd0aCBpcyAyNTYKK1BBU1MgVWludDE2XzEyODogY2xhc3NlcyBhcmUgW29iamVjdCBV
aW50MTZBcnJheV0KK1BBU1MgVWludDE2XzEyODogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1
ZmZlcl0KK1BBU1MgVWludDE2XzEyODogYnVmZmVyIGxlbmd0aHMgYXJlIDI1NgorUEFTUyBVaW50
MTZfMTI4OiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgVWludDE2XzEyODog
b2Zmc2V0IGlzIDAKK1BBU1MgVWludDE2XzEyODogbGVuZ3RoIGlzIDI1NgorUEFTUyBGbG9hdDMy
XzEyODogY2xhc3NlcyBhcmUgW29iamVjdCBGbG9hdDMyQXJyYXldCitQQVNTIEZsb2F0MzJfMTI4
OiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBGbG9hdDMyXzEyODogYnVm
ZmVyIGxlbmd0aHMgYXJlIDUxMgorUEFTUyBGbG9hdDMyXzEyODogYnVmZmVycyBoYXZlIHRoZSBz
YW1lIGNvbnRlbnRzCitQQVNTIEZsb2F0MzJfMTI4OiBvZmZzZXQgaXMgMAorUEFTUyBGbG9hdDMy
XzEyODogbGVuZ3RoIGlzIDUxMgorUEFTUyBGbG9hdDY0XzEyODogY2xhc3NlcyBhcmUgW29iamVj
dCBGbG9hdDY0QXJyYXldCitQQVNTIEZsb2F0NjRfMTI4OiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFy
cmF5QnVmZmVyXQorUEFTUyBGbG9hdDY0XzEyODogYnVmZmVyIGxlbmd0aHMgYXJlIDEwMjQKK1BB
U1MgRmxvYXQ2NF8xMjg6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBGbG9h
dDY0XzEyODogb2Zmc2V0IGlzIDAKK1BBU1MgRmxvYXQ2NF8xMjg6IGxlbmd0aCBpcyAxMDI0CitQ
QVNTIEludDMyXzBiOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEludDMyQXJyYXldCitQQVNTIEludDMy
XzBiOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBJbnQzMl8wYjogYnVm
ZmVyIGxlbmd0aHMgYXJlIDAKK1BBU1MgSW50MzJfMGI6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBj
b250ZW50cworUEFTUyBJbnQzMl8wYjogb2Zmc2V0IGlzIDAKK1BBU1MgSW50MzJfMGI6IGxlbmd0
aCBpcyAwCitQQVNTIFVpbnQzMl8wYjogY2xhc3NlcyBhcmUgW29iamVjdCBVaW50MzJBcnJheV0K
K1BBU1MgVWludDMyXzBiOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBV
aW50MzJfMGI6IGJ1ZmZlciBsZW5ndGhzIGFyZSAwCitQQVNTIFVpbnQzMl8wYjogYnVmZmVycyBo
YXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIFVpbnQzMl8wYjogb2Zmc2V0IGlzIDAKK1BBU1Mg
VWludDMyXzBiOiBsZW5ndGggaXMgMAorUEFTUyBJbnQ4XzBiOiBjbGFzc2VzIGFyZSBbb2JqZWN0
IEludDhBcnJheV0KK1BBU1MgSW50OF8wYjogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZl
cl0KK1BBU1MgSW50OF8wYjogYnVmZmVyIGxlbmd0aHMgYXJlIDAKK1BBU1MgSW50OF8wYjogYnVm
ZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIEludDhfMGI6IG9mZnNldCBpcyAwCitQ
QVNTIEludDhfMGI6IGxlbmd0aCBpcyAwCitQQVNTIFVpbnQ4XzBiOiBjbGFzc2VzIGFyZSBbb2Jq
ZWN0IFVpbnQ4QXJyYXldCitQQVNTIFVpbnQ4XzBiOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5
QnVmZmVyXQorUEFTUyBVaW50OF8wYjogYnVmZmVyIGxlbmd0aHMgYXJlIDAKK1BBU1MgVWludDhf
MGI6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBVaW50OF8wYjogb2Zmc2V0
IGlzIDAKK1BBU1MgVWludDhfMGI6IGxlbmd0aCBpcyAwCitQQVNTIEludDE2XzBiOiBjbGFzc2Vz
IGFyZSBbb2JqZWN0IEludDE2QXJyYXldCitQQVNTIEludDE2XzBiOiBjbGFzc2VzIGFyZSBbb2Jq
ZWN0IEFycmF5QnVmZmVyXQorUEFTUyBJbnQxNl8wYjogYnVmZmVyIGxlbmd0aHMgYXJlIDAKK1BB
U1MgSW50MTZfMGI6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBJbnQxNl8w
Yjogb2Zmc2V0IGlzIDAKK1BBU1MgSW50MTZfMGI6IGxlbmd0aCBpcyAwCitQQVNTIFVpbnQxNl8w
YjogY2xhc3NlcyBhcmUgW29iamVjdCBVaW50MTZBcnJheV0KK1BBU1MgVWludDE2XzBiOiBjbGFz
c2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBVaW50MTZfMGI6IGJ1ZmZlciBsZW5n
dGhzIGFyZSAwCitQQVNTIFVpbnQxNl8wYjogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRz
CitQQVNTIFVpbnQxNl8wYjogb2Zmc2V0IGlzIDAKK1BBU1MgVWludDE2XzBiOiBsZW5ndGggaXMg
MAorUEFTUyBGbG9hdDMyXzBiOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEZsb2F0MzJBcnJheV0KK1BB
U1MgRmxvYXQzMl8wYjogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgRmxv
YXQzMl8wYjogYnVmZmVyIGxlbmd0aHMgYXJlIDAKK1BBU1MgRmxvYXQzMl8wYjogYnVmZmVycyBo
YXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIEZsb2F0MzJfMGI6IG9mZnNldCBpcyAwCitQQVNT
IEZsb2F0MzJfMGI6IGxlbmd0aCBpcyAwCitQQVNTIEZsb2F0NjRfMGI6IGNsYXNzZXMgYXJlIFtv
YmplY3QgRmxvYXQ2NEFycmF5XQorUEFTUyBGbG9hdDY0XzBiOiBjbGFzc2VzIGFyZSBbb2JqZWN0
IEFycmF5QnVmZmVyXQorUEFTUyBGbG9hdDY0XzBiOiBidWZmZXIgbGVuZ3RocyBhcmUgMAorUEFT
UyBGbG9hdDY0XzBiOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgRmxvYXQ2
NF8wYjogb2Zmc2V0IGlzIDAKK1BBU1MgRmxvYXQ2NF8wYjogbGVuZ3RoIGlzIDAKK1BBU1MgSW50
MzJfMWI6IGNsYXNzZXMgYXJlIFtvYmplY3QgSW50MzJBcnJheV0KK1BBU1MgSW50MzJfMWI6IGNs
YXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIEludDMyXzFiOiBidWZmZXIgbGVu
Z3RocyBhcmUgNAorUEFTUyBJbnQzMl8xYjogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRz
CitQQVNTIEludDMyXzFiOiBvZmZzZXQgaXMgMAorUEFTUyBJbnQzMl8xYjogbGVuZ3RoIGlzIDQK
K1BBU1MgVWludDMyXzFiOiBjbGFzc2VzIGFyZSBbb2JqZWN0IFVpbnQzMkFycmF5XQorUEFTUyBV
aW50MzJfMWI6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIFVpbnQzMl8x
YjogYnVmZmVyIGxlbmd0aHMgYXJlIDQKK1BBU1MgVWludDMyXzFiOiBidWZmZXJzIGhhdmUgdGhl
IHNhbWUgY29udGVudHMKK1BBU1MgVWludDMyXzFiOiBvZmZzZXQgaXMgMAorUEFTUyBVaW50MzJf
MWI6IGxlbmd0aCBpcyA0CitQQVNTIEludDhfMWI6IGNsYXNzZXMgYXJlIFtvYmplY3QgSW50OEFy
cmF5XQorUEFTUyBJbnQ4XzFiOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFT
UyBJbnQ4XzFiOiBidWZmZXIgbGVuZ3RocyBhcmUgMQorUEFTUyBJbnQ4XzFiOiBidWZmZXJzIGhh
dmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgSW50OF8xYjogb2Zmc2V0IGlzIDAKK1BBU1MgSW50
OF8xYjogbGVuZ3RoIGlzIDEKK1BBU1MgVWludDhfMWI6IGNsYXNzZXMgYXJlIFtvYmplY3QgVWlu
dDhBcnJheV0KK1BBU1MgVWludDhfMWI6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJd
CitQQVNTIFVpbnQ4XzFiOiBidWZmZXIgbGVuZ3RocyBhcmUgMQorUEFTUyBVaW50OF8xYjogYnVm
ZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIFVpbnQ4XzFiOiBvZmZzZXQgaXMgMAor
UEFTUyBVaW50OF8xYjogbGVuZ3RoIGlzIDEKK1BBU1MgSW50MTZfMWI6IGNsYXNzZXMgYXJlIFtv
YmplY3QgSW50MTZBcnJheV0KK1BBU1MgSW50MTZfMWI6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJy
YXlCdWZmZXJdCitQQVNTIEludDE2XzFiOiBidWZmZXIgbGVuZ3RocyBhcmUgMgorUEFTUyBJbnQx
Nl8xYjogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIEludDE2XzFiOiBvZmZz
ZXQgaXMgMAorUEFTUyBJbnQxNl8xYjogbGVuZ3RoIGlzIDIKK1BBU1MgVWludDE2XzFiOiBjbGFz
c2VzIGFyZSBbb2JqZWN0IFVpbnQxNkFycmF5XQorUEFTUyBVaW50MTZfMWI6IGNsYXNzZXMgYXJl
IFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIFVpbnQxNl8xYjogYnVmZmVyIGxlbmd0aHMgYXJl
IDIKK1BBU1MgVWludDE2XzFiOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1Mg
VWludDE2XzFiOiBvZmZzZXQgaXMgMAorUEFTUyBVaW50MTZfMWI6IGxlbmd0aCBpcyAyCitQQVNT
IEZsb2F0MzJfMWI6IGNsYXNzZXMgYXJlIFtvYmplY3QgRmxvYXQzMkFycmF5XQorUEFTUyBGbG9h
dDMyXzFiOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBGbG9hdDMyXzFi
OiBidWZmZXIgbGVuZ3RocyBhcmUgNAorUEFTUyBGbG9hdDMyXzFiOiBidWZmZXJzIGhhdmUgdGhl
IHNhbWUgY29udGVudHMKK1BBU1MgRmxvYXQzMl8xYjogb2Zmc2V0IGlzIDAKK1BBU1MgRmxvYXQz
Ml8xYjogbGVuZ3RoIGlzIDQKK1BBU1MgRmxvYXQ2NF8xYjogY2xhc3NlcyBhcmUgW29iamVjdCBG
bG9hdDY0QXJyYXldCitQQVNTIEZsb2F0NjRfMWI6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlC
dWZmZXJdCitQQVNTIEZsb2F0NjRfMWI6IGJ1ZmZlciBsZW5ndGhzIGFyZSA4CitQQVNTIEZsb2F0
NjRfMWI6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBGbG9hdDY0XzFiOiBv
ZmZzZXQgaXMgMAorUEFTUyBGbG9hdDY0XzFiOiBsZW5ndGggaXMgOAorUEFTUyBJbnQzMl8xMjhi
OiBjbGFzc2VzIGFyZSBbb2JqZWN0IEludDMyQXJyYXldCitQQVNTIEludDMyXzEyOGI6IGNsYXNz
ZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIEludDMyXzEyOGI6IGJ1ZmZlciBsZW5n
dGhzIGFyZSA1MTIKK1BBU1MgSW50MzJfMTI4YjogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRl
bnRzCitQQVNTIEludDMyXzEyOGI6IG9mZnNldCBpcyAwCitQQVNTIEludDMyXzEyOGI6IGxlbmd0
aCBpcyA1MTIKK1BBU1MgVWludDMyXzEyOGI6IGNsYXNzZXMgYXJlIFtvYmplY3QgVWludDMyQXJy
YXldCitQQVNTIFVpbnQzMl8xMjhiOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQor
UEFTUyBVaW50MzJfMTI4YjogYnVmZmVyIGxlbmd0aHMgYXJlIDUxMgorUEFTUyBVaW50MzJfMTI4
YjogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIFVpbnQzMl8xMjhiOiBvZmZz
ZXQgaXMgMAorUEFTUyBVaW50MzJfMTI4YjogbGVuZ3RoIGlzIDUxMgorUEFTUyBJbnQ4XzEyOGI6
IGNsYXNzZXMgYXJlIFtvYmplY3QgSW50OEFycmF5XQorUEFTUyBJbnQ4XzEyOGI6IGNsYXNzZXMg
YXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIEludDhfMTI4YjogYnVmZmVyIGxlbmd0aHMg
YXJlIDEyOAorUEFTUyBJbnQ4XzEyOGI6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cwor
UEFTUyBJbnQ4XzEyOGI6IG9mZnNldCBpcyAwCitQQVNTIEludDhfMTI4YjogbGVuZ3RoIGlzIDEy
OAorUEFTUyBVaW50OF8xMjhiOiBjbGFzc2VzIGFyZSBbb2JqZWN0IFVpbnQ4QXJyYXldCitQQVNT
IFVpbnQ4XzEyOGI6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIFVpbnQ4
XzEyOGI6IGJ1ZmZlciBsZW5ndGhzIGFyZSAxMjgKK1BBU1MgVWludDhfMTI4YjogYnVmZmVycyBo
YXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIFVpbnQ4XzEyOGI6IG9mZnNldCBpcyAwCitQQVNT
IFVpbnQ4XzEyOGI6IGxlbmd0aCBpcyAxMjgKK1BBU1MgSW50MTZfMTI4YjogY2xhc3NlcyBhcmUg
W29iamVjdCBJbnQxNkFycmF5XQorUEFTUyBJbnQxNl8xMjhiOiBjbGFzc2VzIGFyZSBbb2JqZWN0
IEFycmF5QnVmZmVyXQorUEFTUyBJbnQxNl8xMjhiOiBidWZmZXIgbGVuZ3RocyBhcmUgMjU2CitQ
QVNTIEludDE2XzEyOGI6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBJbnQx
Nl8xMjhiOiBvZmZzZXQgaXMgMAorUEFTUyBJbnQxNl8xMjhiOiBsZW5ndGggaXMgMjU2CitQQVNT
IFVpbnQxNl8xMjhiOiBjbGFzc2VzIGFyZSBbb2JqZWN0IFVpbnQxNkFycmF5XQorUEFTUyBVaW50
MTZfMTI4YjogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgVWludDE2XzEy
OGI6IGJ1ZmZlciBsZW5ndGhzIGFyZSAyNTYKK1BBU1MgVWludDE2XzEyOGI6IGJ1ZmZlcnMgaGF2
ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBVaW50MTZfMTI4Yjogb2Zmc2V0IGlzIDAKK1BBU1Mg
VWludDE2XzEyOGI6IGxlbmd0aCBpcyAyNTYKK1BBU1MgRmxvYXQzMl8xMjhiOiBjbGFzc2VzIGFy
ZSBbb2JqZWN0IEZsb2F0MzJBcnJheV0KK1BBU1MgRmxvYXQzMl8xMjhiOiBjbGFzc2VzIGFyZSBb
b2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBGbG9hdDMyXzEyOGI6IGJ1ZmZlciBsZW5ndGhzIGFy
ZSA1MTIKK1BBU1MgRmxvYXQzMl8xMjhiOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMK
K1BBU1MgRmxvYXQzMl8xMjhiOiBvZmZzZXQgaXMgMAorUEFTUyBGbG9hdDMyXzEyOGI6IGxlbmd0
aCBpcyA1MTIKK1BBU1MgRmxvYXQ2NF8xMjhiOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEZsb2F0NjRB
cnJheV0KK1BBU1MgRmxvYXQ2NF8xMjhiOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVy
XQorUEFTUyBGbG9hdDY0XzEyOGI6IGJ1ZmZlciBsZW5ndGhzIGFyZSAxMDI0CitQQVNTIEZsb2F0
NjRfMTI4YjogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIEZsb2F0NjRfMTI4
Yjogb2Zmc2V0IGlzIDAKK1BBU1MgRmxvYXQ2NF8xMjhiOiBsZW5ndGggaXMgMTAyNAorUEFTUyBJ
bnQzMl8xYl9vZnNfZW5kOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEludDMyQXJyYXldCitQQVNTIElu
dDMyXzFiX29mc19lbmQ6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIElu
dDMyXzFiX29mc19lbmQ6IGJ1ZmZlciBsZW5ndGhzIGFyZSA0CitQQVNTIEludDMyXzFiX29mc19l
bmQ6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBJbnQzMl8xYl9vZnNfZW5k
OiBvZmZzZXQgaXMgNAorUEFTUyBJbnQzMl8xYl9vZnNfZW5kOiBsZW5ndGggaXMgMAorUEFTUyBV
aW50MzJfMWJfb2ZzX2VuZDogY2xhc3NlcyBhcmUgW29iamVjdCBVaW50MzJBcnJheV0KK1BBU1Mg
VWludDMyXzFiX29mc19lbmQ6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNT
IFVpbnQzMl8xYl9vZnNfZW5kOiBidWZmZXIgbGVuZ3RocyBhcmUgNAorUEFTUyBVaW50MzJfMWJf
b2ZzX2VuZDogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIFVpbnQzMl8xYl9v
ZnNfZW5kOiBvZmZzZXQgaXMgNAorUEFTUyBVaW50MzJfMWJfb2ZzX2VuZDogbGVuZ3RoIGlzIDAK
K1BBU1MgSW50OF8xYl9vZnNfZW5kOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEludDhBcnJheV0KK1BB
U1MgSW50OF8xYl9vZnNfZW5kOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFT
UyBJbnQ4XzFiX29mc19lbmQ6IGJ1ZmZlciBsZW5ndGhzIGFyZSAxCitQQVNTIEludDhfMWJfb2Zz
X2VuZDogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIEludDhfMWJfb2ZzX2Vu
ZDogb2Zmc2V0IGlzIDEKK1BBU1MgSW50OF8xYl9vZnNfZW5kOiBsZW5ndGggaXMgMAorUEFTUyBV
aW50OF8xYl9vZnNfZW5kOiBjbGFzc2VzIGFyZSBbb2JqZWN0IFVpbnQ4QXJyYXldCitQQVNTIFVp
bnQ4XzFiX29mc19lbmQ6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIFVp
bnQ4XzFiX29mc19lbmQ6IGJ1ZmZlciBsZW5ndGhzIGFyZSAxCitQQVNTIFVpbnQ4XzFiX29mc19l
bmQ6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBVaW50OF8xYl9vZnNfZW5k
OiBvZmZzZXQgaXMgMQorUEFTUyBVaW50OF8xYl9vZnNfZW5kOiBsZW5ndGggaXMgMAorUEFTUyBJ
bnQxNl8xYl9vZnNfZW5kOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEludDE2QXJyYXldCitQQVNTIElu
dDE2XzFiX29mc19lbmQ6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIElu
dDE2XzFiX29mc19lbmQ6IGJ1ZmZlciBsZW5ndGhzIGFyZSAyCitQQVNTIEludDE2XzFiX29mc19l
bmQ6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBJbnQxNl8xYl9vZnNfZW5k
OiBvZmZzZXQgaXMgMgorUEFTUyBJbnQxNl8xYl9vZnNfZW5kOiBsZW5ndGggaXMgMAorUEFTUyBV
aW50MTZfMWJfb2ZzX2VuZDogY2xhc3NlcyBhcmUgW29iamVjdCBVaW50MTZBcnJheV0KK1BBU1Mg
VWludDE2XzFiX29mc19lbmQ6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNT
IFVpbnQxNl8xYl9vZnNfZW5kOiBidWZmZXIgbGVuZ3RocyBhcmUgMgorUEFTUyBVaW50MTZfMWJf
b2ZzX2VuZDogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIFVpbnQxNl8xYl9v
ZnNfZW5kOiBvZmZzZXQgaXMgMgorUEFTUyBVaW50MTZfMWJfb2ZzX2VuZDogbGVuZ3RoIGlzIDAK
K1BBU1MgRmxvYXQzMl8xYl9vZnNfZW5kOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEZsb2F0MzJBcnJh
eV0KK1BBU1MgRmxvYXQzMl8xYl9vZnNfZW5kOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVm
ZmVyXQorUEFTUyBGbG9hdDMyXzFiX29mc19lbmQ6IGJ1ZmZlciBsZW5ndGhzIGFyZSA0CitQQVNT
IEZsb2F0MzJfMWJfb2ZzX2VuZDogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNT
IEZsb2F0MzJfMWJfb2ZzX2VuZDogb2Zmc2V0IGlzIDQKK1BBU1MgRmxvYXQzMl8xYl9vZnNfZW5k
OiBsZW5ndGggaXMgMAorUEFTUyBGbG9hdDY0XzFiX29mc19lbmQ6IGNsYXNzZXMgYXJlIFtvYmpl
Y3QgRmxvYXQ2NEFycmF5XQorUEFTUyBGbG9hdDY0XzFiX29mc19lbmQ6IGNsYXNzZXMgYXJlIFtv
YmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIEZsb2F0NjRfMWJfb2ZzX2VuZDogYnVmZmVyIGxlbmd0
aHMgYXJlIDgKK1BBU1MgRmxvYXQ2NF8xYl9vZnNfZW5kOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUg
Y29udGVudHMKK1BBU1MgRmxvYXQ2NF8xYl9vZnNfZW5kOiBvZmZzZXQgaXMgOAorUEFTUyBGbG9h
dDY0XzFiX29mc19lbmQ6IGxlbmd0aCBpcyAwCitQQVNTIEludDMyXzEyOGJfb2ZzX2VuZDogY2xh
c3NlcyBhcmUgW29iamVjdCBJbnQzMkFycmF5XQorUEFTUyBJbnQzMl8xMjhiX29mc19lbmQ6IGNs
YXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIEludDMyXzEyOGJfb2ZzX2VuZDog
YnVmZmVyIGxlbmd0aHMgYXJlIDUxMgorUEFTUyBJbnQzMl8xMjhiX29mc19lbmQ6IGJ1ZmZlcnMg
aGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBJbnQzMl8xMjhiX29mc19lbmQ6IG9mZnNldCBp
cyA1MTIKK1BBU1MgSW50MzJfMTI4Yl9vZnNfZW5kOiBsZW5ndGggaXMgMAorUEFTUyBVaW50MzJf
MTI4Yl9vZnNfZW5kOiBjbGFzc2VzIGFyZSBbb2JqZWN0IFVpbnQzMkFycmF5XQorUEFTUyBVaW50
MzJfMTI4Yl9vZnNfZW5kOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBV
aW50MzJfMTI4Yl9vZnNfZW5kOiBidWZmZXIgbGVuZ3RocyBhcmUgNTEyCitQQVNTIFVpbnQzMl8x
MjhiX29mc19lbmQ6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBVaW50MzJf
MTI4Yl9vZnNfZW5kOiBvZmZzZXQgaXMgNTEyCitQQVNTIFVpbnQzMl8xMjhiX29mc19lbmQ6IGxl
bmd0aCBpcyAwCitQQVNTIEludDhfMTI4Yl9vZnNfZW5kOiBjbGFzc2VzIGFyZSBbb2JqZWN0IElu
dDhBcnJheV0KK1BBU1MgSW50OF8xMjhiX29mc19lbmQ6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJy
YXlCdWZmZXJdCitQQVNTIEludDhfMTI4Yl9vZnNfZW5kOiBidWZmZXIgbGVuZ3RocyBhcmUgMTI4
CitQQVNTIEludDhfMTI4Yl9vZnNfZW5kOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMK
K1BBU1MgSW50OF8xMjhiX29mc19lbmQ6IG9mZnNldCBpcyAxMjgKK1BBU1MgSW50OF8xMjhiX29m
c19lbmQ6IGxlbmd0aCBpcyAwCitQQVNTIFVpbnQ4XzEyOGJfb2ZzX2VuZDogY2xhc3NlcyBhcmUg
W29iamVjdCBVaW50OEFycmF5XQorUEFTUyBVaW50OF8xMjhiX29mc19lbmQ6IGNsYXNzZXMgYXJl
IFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIFVpbnQ4XzEyOGJfb2ZzX2VuZDogYnVmZmVyIGxl
bmd0aHMgYXJlIDEyOAorUEFTUyBVaW50OF8xMjhiX29mc19lbmQ6IGJ1ZmZlcnMgaGF2ZSB0aGUg
c2FtZSBjb250ZW50cworUEFTUyBVaW50OF8xMjhiX29mc19lbmQ6IG9mZnNldCBpcyAxMjgKK1BB
U1MgVWludDhfMTI4Yl9vZnNfZW5kOiBsZW5ndGggaXMgMAorUEFTUyBJbnQxNl8xMjhiX29mc19l
bmQ6IGNsYXNzZXMgYXJlIFtvYmplY3QgSW50MTZBcnJheV0KK1BBU1MgSW50MTZfMTI4Yl9vZnNf
ZW5kOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBJbnQxNl8xMjhiX29m
c19lbmQ6IGJ1ZmZlciBsZW5ndGhzIGFyZSAyNTYKK1BBU1MgSW50MTZfMTI4Yl9vZnNfZW5kOiBi
dWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgSW50MTZfMTI4Yl9vZnNfZW5kOiBv
ZmZzZXQgaXMgMjU2CitQQVNTIEludDE2XzEyOGJfb2ZzX2VuZDogbGVuZ3RoIGlzIDAKK1BBU1Mg
VWludDE2XzEyOGJfb2ZzX2VuZDogY2xhc3NlcyBhcmUgW29iamVjdCBVaW50MTZBcnJheV0KK1BB
U1MgVWludDE2XzEyOGJfb2ZzX2VuZDogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0K
K1BBU1MgVWludDE2XzEyOGJfb2ZzX2VuZDogYnVmZmVyIGxlbmd0aHMgYXJlIDI1NgorUEFTUyBV
aW50MTZfMTI4Yl9vZnNfZW5kOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1Mg
VWludDE2XzEyOGJfb2ZzX2VuZDogb2Zmc2V0IGlzIDI1NgorUEFTUyBVaW50MTZfMTI4Yl9vZnNf
ZW5kOiBsZW5ndGggaXMgMAorUEFTUyBGbG9hdDMyXzEyOGJfb2ZzX2VuZDogY2xhc3NlcyBhcmUg
W29iamVjdCBGbG9hdDMyQXJyYXldCitQQVNTIEZsb2F0MzJfMTI4Yl9vZnNfZW5kOiBjbGFzc2Vz
IGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBGbG9hdDMyXzEyOGJfb2ZzX2VuZDogYnVm
ZmVyIGxlbmd0aHMgYXJlIDUxMgorUEFTUyBGbG9hdDMyXzEyOGJfb2ZzX2VuZDogYnVmZmVycyBo
YXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIEZsb2F0MzJfMTI4Yl9vZnNfZW5kOiBvZmZzZXQg
aXMgNTEyCitQQVNTIEZsb2F0MzJfMTI4Yl9vZnNfZW5kOiBsZW5ndGggaXMgMAorUEFTUyBGbG9h
dDY0XzEyOGJfb2ZzX2VuZDogY2xhc3NlcyBhcmUgW29iamVjdCBGbG9hdDY0QXJyYXldCitQQVNT
IEZsb2F0NjRfMTI4Yl9vZnNfZW5kOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQor
UEFTUyBGbG9hdDY0XzEyOGJfb2ZzX2VuZDogYnVmZmVyIGxlbmd0aHMgYXJlIDEwMjQKK1BBU1Mg
RmxvYXQ2NF8xMjhiX29mc19lbmQ6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFT
UyBGbG9hdDY0XzEyOGJfb2ZzX2VuZDogb2Zmc2V0IGlzIDEwMjQKK1BBU1MgRmxvYXQ2NF8xMjhi
X29mc19lbmQ6IGxlbmd0aCBpcyAwCitQQVNTIEludDMyXzEyOGJfb2ZzX3NsaWNlMDogY2xhc3Nl
cyBhcmUgW29iamVjdCBJbnQzMkFycmF5XQorUEFTUyBJbnQzMl8xMjhiX29mc19zbGljZTA6IGNs
YXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIEludDMyXzEyOGJfb2ZzX3NsaWNl
MDogYnVmZmVyIGxlbmd0aHMgYXJlIDUxMgorUEFTUyBJbnQzMl8xMjhiX29mc19zbGljZTA6IGJ1
ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBJbnQzMl8xMjhiX29mc19zbGljZTA6
IG9mZnNldCBpcyAyNTYKK1BBU1MgSW50MzJfMTI4Yl9vZnNfc2xpY2UwOiBsZW5ndGggaXMgMAor
UEFTUyBVaW50MzJfMTI4Yl9vZnNfc2xpY2UwOiBjbGFzc2VzIGFyZSBbb2JqZWN0IFVpbnQzMkFy
cmF5XQorUEFTUyBVaW50MzJfMTI4Yl9vZnNfc2xpY2UwOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFy
cmF5QnVmZmVyXQorUEFTUyBVaW50MzJfMTI4Yl9vZnNfc2xpY2UwOiBidWZmZXIgbGVuZ3RocyBh
cmUgNTEyCitQQVNTIFVpbnQzMl8xMjhiX29mc19zbGljZTA6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2Ft
ZSBjb250ZW50cworUEFTUyBVaW50MzJfMTI4Yl9vZnNfc2xpY2UwOiBvZmZzZXQgaXMgMjU2CitQ
QVNTIFVpbnQzMl8xMjhiX29mc19zbGljZTA6IGxlbmd0aCBpcyAwCitQQVNTIEludDhfMTI4Yl9v
ZnNfc2xpY2UwOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEludDhBcnJheV0KK1BBU1MgSW50OF8xMjhi
X29mc19zbGljZTA6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIEludDhf
MTI4Yl9vZnNfc2xpY2UwOiBidWZmZXIgbGVuZ3RocyBhcmUgMTI4CitQQVNTIEludDhfMTI4Yl9v
ZnNfc2xpY2UwOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgSW50OF8xMjhi
X29mc19zbGljZTA6IG9mZnNldCBpcyA2NAorUEFTUyBJbnQ4XzEyOGJfb2ZzX3NsaWNlMDogbGVu
Z3RoIGlzIDAKK1BBU1MgVWludDhfMTI4Yl9vZnNfc2xpY2UwOiBjbGFzc2VzIGFyZSBbb2JqZWN0
IFVpbnQ4QXJyYXldCitQQVNTIFVpbnQ4XzEyOGJfb2ZzX3NsaWNlMDogY2xhc3NlcyBhcmUgW29i
amVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgVWludDhfMTI4Yl9vZnNfc2xpY2UwOiBidWZmZXIgbGVu
Z3RocyBhcmUgMTI4CitQQVNTIFVpbnQ4XzEyOGJfb2ZzX3NsaWNlMDogYnVmZmVycyBoYXZlIHRo
ZSBzYW1lIGNvbnRlbnRzCitQQVNTIFVpbnQ4XzEyOGJfb2ZzX3NsaWNlMDogb2Zmc2V0IGlzIDY0
CitQQVNTIFVpbnQ4XzEyOGJfb2ZzX3NsaWNlMDogbGVuZ3RoIGlzIDAKK1BBU1MgSW50MTZfMTI4
Yl9vZnNfc2xpY2UwOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEludDE2QXJyYXldCitQQVNTIEludDE2
XzEyOGJfb2ZzX3NsaWNlMDogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1Mg
SW50MTZfMTI4Yl9vZnNfc2xpY2UwOiBidWZmZXIgbGVuZ3RocyBhcmUgMjU2CitQQVNTIEludDE2
XzEyOGJfb2ZzX3NsaWNlMDogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIElu
dDE2XzEyOGJfb2ZzX3NsaWNlMDogb2Zmc2V0IGlzIDEyOAorUEFTUyBJbnQxNl8xMjhiX29mc19z
bGljZTA6IGxlbmd0aCBpcyAwCitQQVNTIFVpbnQxNl8xMjhiX29mc19zbGljZTA6IGNsYXNzZXMg
YXJlIFtvYmplY3QgVWludDE2QXJyYXldCitQQVNTIFVpbnQxNl8xMjhiX29mc19zbGljZTA6IGNs
YXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIFVpbnQxNl8xMjhiX29mc19zbGlj
ZTA6IGJ1ZmZlciBsZW5ndGhzIGFyZSAyNTYKK1BBU1MgVWludDE2XzEyOGJfb2ZzX3NsaWNlMDog
YnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIFVpbnQxNl8xMjhiX29mc19zbGlj
ZTA6IG9mZnNldCBpcyAxMjgKK1BBU1MgVWludDE2XzEyOGJfb2ZzX3NsaWNlMDogbGVuZ3RoIGlz
IDAKK1BBU1MgRmxvYXQzMl8xMjhiX29mc19zbGljZTA6IGNsYXNzZXMgYXJlIFtvYmplY3QgRmxv
YXQzMkFycmF5XQorUEFTUyBGbG9hdDMyXzEyOGJfb2ZzX3NsaWNlMDogY2xhc3NlcyBhcmUgW29i
amVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgRmxvYXQzMl8xMjhiX29mc19zbGljZTA6IGJ1ZmZlciBs
ZW5ndGhzIGFyZSA1MTIKK1BBU1MgRmxvYXQzMl8xMjhiX29mc19zbGljZTA6IGJ1ZmZlcnMgaGF2
ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBGbG9hdDMyXzEyOGJfb2ZzX3NsaWNlMDogb2Zmc2V0
IGlzIDI1NgorUEFTUyBGbG9hdDMyXzEyOGJfb2ZzX3NsaWNlMDogbGVuZ3RoIGlzIDAKK1BBU1Mg
RmxvYXQ2NF8xMjhiX29mc19zbGljZTA6IGNsYXNzZXMgYXJlIFtvYmplY3QgRmxvYXQ2NEFycmF5
XQorUEFTUyBGbG9hdDY0XzEyOGJfb2ZzX3NsaWNlMDogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJh
eUJ1ZmZlcl0KK1BBU1MgRmxvYXQ2NF8xMjhiX29mc19zbGljZTA6IGJ1ZmZlciBsZW5ndGhzIGFy
ZSAxMDI0CitQQVNTIEZsb2F0NjRfMTI4Yl9vZnNfc2xpY2UwOiBidWZmZXJzIGhhdmUgdGhlIHNh
bWUgY29udGVudHMKK1BBU1MgRmxvYXQ2NF8xMjhiX29mc19zbGljZTA6IG9mZnNldCBpcyA1MTIK
K1BBU1MgRmxvYXQ2NF8xMjhiX29mc19zbGljZTA6IGxlbmd0aCBpcyAwCitQQVNTIEludDMyXzEy
OGJfb2ZzX3NsaWNlMTogY2xhc3NlcyBhcmUgW29iamVjdCBJbnQzMkFycmF5XQorUEFTUyBJbnQz
Ml8xMjhiX29mc19zbGljZTE6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNT
IEludDMyXzEyOGJfb2ZzX3NsaWNlMTogYnVmZmVyIGxlbmd0aHMgYXJlIDUxMgorUEFTUyBJbnQz
Ml8xMjhiX29mc19zbGljZTE6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBJ
bnQzMl8xMjhiX29mc19zbGljZTE6IG9mZnNldCBpcyAyNTYKK1BBU1MgSW50MzJfMTI4Yl9vZnNf
c2xpY2UxOiBsZW5ndGggaXMgNAorUEFTUyBVaW50MzJfMTI4Yl9vZnNfc2xpY2UxOiBjbGFzc2Vz
IGFyZSBbb2JqZWN0IFVpbnQzMkFycmF5XQorUEFTUyBVaW50MzJfMTI4Yl9vZnNfc2xpY2UxOiBj
bGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBVaW50MzJfMTI4Yl9vZnNfc2xp
Y2UxOiBidWZmZXIgbGVuZ3RocyBhcmUgNTEyCitQQVNTIFVpbnQzMl8xMjhiX29mc19zbGljZTE6
IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBVaW50MzJfMTI4Yl9vZnNfc2xp
Y2UxOiBvZmZzZXQgaXMgMjU2CitQQVNTIFVpbnQzMl8xMjhiX29mc19zbGljZTE6IGxlbmd0aCBp
cyA0CitQQVNTIEludDhfMTI4Yl9vZnNfc2xpY2UxOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEludDhB
cnJheV0KK1BBU1MgSW50OF8xMjhiX29mc19zbGljZTE6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJy
YXlCdWZmZXJdCitQQVNTIEludDhfMTI4Yl9vZnNfc2xpY2UxOiBidWZmZXIgbGVuZ3RocyBhcmUg
MTI4CitQQVNTIEludDhfMTI4Yl9vZnNfc2xpY2UxOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29u
dGVudHMKK1BBU1MgSW50OF8xMjhiX29mc19zbGljZTE6IG9mZnNldCBpcyA2NAorUEFTUyBJbnQ4
XzEyOGJfb2ZzX3NsaWNlMTogbGVuZ3RoIGlzIDEKK1BBU1MgVWludDhfMTI4Yl9vZnNfc2xpY2Ux
OiBjbGFzc2VzIGFyZSBbb2JqZWN0IFVpbnQ4QXJyYXldCitQQVNTIFVpbnQ4XzEyOGJfb2ZzX3Ns
aWNlMTogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgVWludDhfMTI4Yl9v
ZnNfc2xpY2UxOiBidWZmZXIgbGVuZ3RocyBhcmUgMTI4CitQQVNTIFVpbnQ4XzEyOGJfb2ZzX3Ns
aWNlMTogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIFVpbnQ4XzEyOGJfb2Zz
X3NsaWNlMTogb2Zmc2V0IGlzIDY0CitQQVNTIFVpbnQ4XzEyOGJfb2ZzX3NsaWNlMTogbGVuZ3Ro
IGlzIDEKK1BBU1MgSW50MTZfMTI4Yl9vZnNfc2xpY2UxOiBjbGFzc2VzIGFyZSBbb2JqZWN0IElu
dDE2QXJyYXldCitQQVNTIEludDE2XzEyOGJfb2ZzX3NsaWNlMTogY2xhc3NlcyBhcmUgW29iamVj
dCBBcnJheUJ1ZmZlcl0KK1BBU1MgSW50MTZfMTI4Yl9vZnNfc2xpY2UxOiBidWZmZXIgbGVuZ3Ro
cyBhcmUgMjU2CitQQVNTIEludDE2XzEyOGJfb2ZzX3NsaWNlMTogYnVmZmVycyBoYXZlIHRoZSBz
YW1lIGNvbnRlbnRzCitQQVNTIEludDE2XzEyOGJfb2ZzX3NsaWNlMTogb2Zmc2V0IGlzIDEyOAor
UEFTUyBJbnQxNl8xMjhiX29mc19zbGljZTE6IGxlbmd0aCBpcyAyCitQQVNTIFVpbnQxNl8xMjhi
X29mc19zbGljZTE6IGNsYXNzZXMgYXJlIFtvYmplY3QgVWludDE2QXJyYXldCitQQVNTIFVpbnQx
Nl8xMjhiX29mc19zbGljZTE6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNT
IFVpbnQxNl8xMjhiX29mc19zbGljZTE6IGJ1ZmZlciBsZW5ndGhzIGFyZSAyNTYKK1BBU1MgVWlu
dDE2XzEyOGJfb2ZzX3NsaWNlMTogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNT
IFVpbnQxNl8xMjhiX29mc19zbGljZTE6IG9mZnNldCBpcyAxMjgKK1BBU1MgVWludDE2XzEyOGJf
b2ZzX3NsaWNlMTogbGVuZ3RoIGlzIDIKK1BBU1MgRmxvYXQzMl8xMjhiX29mc19zbGljZTE6IGNs
YXNzZXMgYXJlIFtvYmplY3QgRmxvYXQzMkFycmF5XQorUEFTUyBGbG9hdDMyXzEyOGJfb2ZzX3Ns
aWNlMTogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgRmxvYXQzMl8xMjhi
X29mc19zbGljZTE6IGJ1ZmZlciBsZW5ndGhzIGFyZSA1MTIKK1BBU1MgRmxvYXQzMl8xMjhiX29m
c19zbGljZTE6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBGbG9hdDMyXzEy
OGJfb2ZzX3NsaWNlMTogb2Zmc2V0IGlzIDI1NgorUEFTUyBGbG9hdDMyXzEyOGJfb2ZzX3NsaWNl
MTogbGVuZ3RoIGlzIDQKK1BBU1MgRmxvYXQ2NF8xMjhiX29mc19zbGljZTE6IGNsYXNzZXMgYXJl
IFtvYmplY3QgRmxvYXQ2NEFycmF5XQorUEFTUyBGbG9hdDY0XzEyOGJfb2ZzX3NsaWNlMTogY2xh
c3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgRmxvYXQ2NF8xMjhiX29mc19zbGlj
ZTE6IGJ1ZmZlciBsZW5ndGhzIGFyZSAxMDI0CitQQVNTIEZsb2F0NjRfMTI4Yl9vZnNfc2xpY2Ux
OiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgRmxvYXQ2NF8xMjhiX29mc19z
bGljZTE6IG9mZnNldCBpcyA1MTIKK1BBU1MgRmxvYXQ2NF8xMjhiX29mc19zbGljZTE6IGxlbmd0
aCBpcyA4CitQQVNTIEludDMyXzEyOGJfb2ZzX3NsaWNlMTY6IGNsYXNzZXMgYXJlIFtvYmplY3Qg
SW50MzJBcnJheV0KK1BBU1MgSW50MzJfMTI4Yl9vZnNfc2xpY2UxNjogY2xhc3NlcyBhcmUgW29i
amVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgSW50MzJfMTI4Yl9vZnNfc2xpY2UxNjogYnVmZmVyIGxl
bmd0aHMgYXJlIDUxMgorUEFTUyBJbnQzMl8xMjhiX29mc19zbGljZTE2OiBidWZmZXJzIGhhdmUg
dGhlIHNhbWUgY29udGVudHMKK1BBU1MgSW50MzJfMTI4Yl9vZnNfc2xpY2UxNjogb2Zmc2V0IGlz
IDI1NgorUEFTUyBJbnQzMl8xMjhiX29mc19zbGljZTE2OiBsZW5ndGggaXMgNjQKK1BBU1MgVWlu
dDMyXzEyOGJfb2ZzX3NsaWNlMTY6IGNsYXNzZXMgYXJlIFtvYmplY3QgVWludDMyQXJyYXldCitQ
QVNTIFVpbnQzMl8xMjhiX29mc19zbGljZTE2OiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVm
ZmVyXQorUEFTUyBVaW50MzJfMTI4Yl9vZnNfc2xpY2UxNjogYnVmZmVyIGxlbmd0aHMgYXJlIDUx
MgorUEFTUyBVaW50MzJfMTI4Yl9vZnNfc2xpY2UxNjogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNv
bnRlbnRzCitQQVNTIFVpbnQzMl8xMjhiX29mc19zbGljZTE2OiBvZmZzZXQgaXMgMjU2CitQQVNT
IFVpbnQzMl8xMjhiX29mc19zbGljZTE2OiBsZW5ndGggaXMgNjQKK1BBU1MgSW50OF8xMjhiX29m
c19zbGljZTE2OiBjbGFzc2VzIGFyZSBbb2JqZWN0IEludDhBcnJheV0KK1BBU1MgSW50OF8xMjhi
X29mc19zbGljZTE2OiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBJbnQ4
XzEyOGJfb2ZzX3NsaWNlMTY6IGJ1ZmZlciBsZW5ndGhzIGFyZSAxMjgKK1BBU1MgSW50OF8xMjhi
X29mc19zbGljZTE2OiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgSW50OF8x
MjhiX29mc19zbGljZTE2OiBvZmZzZXQgaXMgNjQKK1BBU1MgSW50OF8xMjhiX29mc19zbGljZTE2
OiBsZW5ndGggaXMgMTYKK1BBU1MgVWludDhfMTI4Yl9vZnNfc2xpY2UxNjogY2xhc3NlcyBhcmUg
W29iamVjdCBVaW50OEFycmF5XQorUEFTUyBVaW50OF8xMjhiX29mc19zbGljZTE2OiBjbGFzc2Vz
IGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBVaW50OF8xMjhiX29mc19zbGljZTE2OiBi
dWZmZXIgbGVuZ3RocyBhcmUgMTI4CitQQVNTIFVpbnQ4XzEyOGJfb2ZzX3NsaWNlMTY6IGJ1ZmZl
cnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBVaW50OF8xMjhiX29mc19zbGljZTE2OiBv
ZmZzZXQgaXMgNjQKK1BBU1MgVWludDhfMTI4Yl9vZnNfc2xpY2UxNjogbGVuZ3RoIGlzIDE2CitQ
QVNTIEludDE2XzEyOGJfb2ZzX3NsaWNlMTY6IGNsYXNzZXMgYXJlIFtvYmplY3QgSW50MTZBcnJh
eV0KK1BBU1MgSW50MTZfMTI4Yl9vZnNfc2xpY2UxNjogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJh
eUJ1ZmZlcl0KK1BBU1MgSW50MTZfMTI4Yl9vZnNfc2xpY2UxNjogYnVmZmVyIGxlbmd0aHMgYXJl
IDI1NgorUEFTUyBJbnQxNl8xMjhiX29mc19zbGljZTE2OiBidWZmZXJzIGhhdmUgdGhlIHNhbWUg
Y29udGVudHMKK1BBU1MgSW50MTZfMTI4Yl9vZnNfc2xpY2UxNjogb2Zmc2V0IGlzIDEyOAorUEFT
UyBJbnQxNl8xMjhiX29mc19zbGljZTE2OiBsZW5ndGggaXMgMzIKK1BBU1MgVWludDE2XzEyOGJf
b2ZzX3NsaWNlMTY6IGNsYXNzZXMgYXJlIFtvYmplY3QgVWludDE2QXJyYXldCitQQVNTIFVpbnQx
Nl8xMjhiX29mc19zbGljZTE2OiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFT
UyBVaW50MTZfMTI4Yl9vZnNfc2xpY2UxNjogYnVmZmVyIGxlbmd0aHMgYXJlIDI1NgorUEFTUyBV
aW50MTZfMTI4Yl9vZnNfc2xpY2UxNjogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQ
QVNTIFVpbnQxNl8xMjhiX29mc19zbGljZTE2OiBvZmZzZXQgaXMgMTI4CitQQVNTIFVpbnQxNl8x
MjhiX29mc19zbGljZTE2OiBsZW5ndGggaXMgMzIKK1BBU1MgRmxvYXQzMl8xMjhiX29mc19zbGlj
ZTE2OiBjbGFzc2VzIGFyZSBbb2JqZWN0IEZsb2F0MzJBcnJheV0KK1BBU1MgRmxvYXQzMl8xMjhi
X29mc19zbGljZTE2OiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBGbG9h
dDMyXzEyOGJfb2ZzX3NsaWNlMTY6IGJ1ZmZlciBsZW5ndGhzIGFyZSA1MTIKK1BBU1MgRmxvYXQz
Ml8xMjhiX29mc19zbGljZTE2OiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1Mg
RmxvYXQzMl8xMjhiX29mc19zbGljZTE2OiBvZmZzZXQgaXMgMjU2CitQQVNTIEZsb2F0MzJfMTI4
Yl9vZnNfc2xpY2UxNjogbGVuZ3RoIGlzIDY0CitQQVNTIEZsb2F0NjRfMTI4Yl9vZnNfc2xpY2Ux
NjogY2xhc3NlcyBhcmUgW29iamVjdCBGbG9hdDY0QXJyYXldCitQQVNTIEZsb2F0NjRfMTI4Yl9v
ZnNfc2xpY2UxNjogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgRmxvYXQ2
NF8xMjhiX29mc19zbGljZTE2OiBidWZmZXIgbGVuZ3RocyBhcmUgMTAyNAorUEFTUyBGbG9hdDY0
XzEyOGJfb2ZzX3NsaWNlMTY6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBG
bG9hdDY0XzEyOGJfb2ZzX3NsaWNlMTY6IG9mZnNldCBpcyA1MTIKK1BBU1MgRmxvYXQ2NF8xMjhi
X29mc19zbGljZTE2OiBsZW5ndGggaXMgMTI4CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52
YXMvd2ViZ2wvYXJyYXktbWVzc2FnZS1wYXNzaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nh
bnZhcy93ZWJnbC9hcnJheS1tZXNzYWdlLXBhc3NpbmcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi41MTBkYWIyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9jYW52YXMvd2ViZ2wvYXJyYXktbWVzc2FnZS1wYXNzaW5nLmh0bWwKQEAgLTAsMCArMSwy
MDQgQEAKKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4u
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIvPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pz
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL3dlYmdsLXRlc3QuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJk
ZXNjcmlwdGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKworPHNjcmlwdD4K
K3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK3dpbmRvdy5jaGVhdCA9IGZhbHNlOworCitk
ZXNjcmlwdGlvbignVGVzdCBwYXNzaW5nIEFycmF5QnVmZmVycyBhbmQgQXJyYXlCdWZmZXJWaWV3
cyBpbiBtZXNzYWdlcy4nKTsKK3dpbmRvdy50ZXN0c0NvbXBsZXRlID0gMDsKKworZnVuY3Rpb24g
Y2xhc3NDb21wYXJlKHRuYW1lLCBnLCBzKSB7CisgIHZhciBjbGFzc1N0ciA9IE9iamVjdC5wcm90
b3R5cGUudG9TdHJpbmc7CisgIHZhciBnY2xhc3MgPSBjbGFzc1N0ci5jYWxsKGcpOworICB2YXIg
c2NsYXNzID0gY2xhc3NTdHIuY2FsbChzKTsKKyAgaWYgKGdjbGFzcyAhPT0gc2NsYXNzKSB7Cisg
ICAgdGVzdEZhaWxlZCh0bmFtZSArICI6IGNsYXNzICIgKyBzY2xhc3MgKyAiIGJlY2FtZSAiICsg
Z2NsYXNzKTsKKyAgICByZXR1cm4gZmFsc2U7CisgIH0gZWxzZSB7CisgICAgdGVzdFBhc3NlZCh0
bmFtZSArICI6IGNsYXNzZXMgYXJlICIgKyBzY2xhc3MpOworICAgIHJldHVybiB0cnVlOworICB9
Cit9CisKK2Z1bmN0aW9uIGJ1ZmZlckNvbXBhcmUodG5hbWUsIGcsIHMpIHsKKyAgaWYgKCFjbGFz
c0NvbXBhcmUodG5hbWUsIGcsIHMpKSB7CisgICAgcmV0dXJuIGZhbHNlOworICB9CisgIGlmIChn
LmJ5dGVMZW5ndGggIT09IHMuYnl0ZUxlbmd0aCkgeworICAgIHRlc3RGYWlsZWQodG5hbWUgKyAi
OiBleHBlY3RlZCAiICsgcy5ieXRlTGVuZ3RoICsgIiBieXRlcywgZ290ICIgKyBnLmJ5dGVMZW5n
dGgpOworICAgIHJldHVybiBmYWxzZTsKKyAgfSBlbHNlIHsKKyAgICB0ZXN0UGFzc2VkKHRuYW1l
ICsgIjogYnVmZmVyIGxlbmd0aHMgYXJlICIgKyBzLmJ5dGVMZW5ndGgpOworICB9CisgIHZhciBn
cmVhZGVyID0gbmV3IFVpbnQ4QXJyYXkoZyk7CisgIHZhciBzcmVhZGVyID0gbmV3IFVpbnQ4QXJy
YXkocyk7CisgIGZvciAodmFyIGkgPSAwOyBpIDwgcy5ieXRlTGVuZ3RoOyArK2kpIHsKKyAgICBp
ZiAoZ3JlYWRlcltpXSAhPT0gc3JlYWRlcltpXSkgeworICAgICAgdGVzdEZhaWxlZCh0bmFtZSAr
ICI6IGJ1ZmZlcnMgZGlmZmVyIHN0YXJ0aW5nIGF0IGJ5dGUgIiArIGkpOworICAgICAgcmV0dXJu
IGZhbHNlOworICAgIH0KKyAgfQorICB0ZXN0UGFzc2VkKHRuYW1lICsgIjogYnVmZmVycyBoYXZl
IHRoZSBzYW1lIGNvbnRlbnRzIik7CisgIHJldHVybiB0cnVlOworfQorCitmdW5jdGlvbiB2aWV3
Q29tcGFyZSh0bmFtZSwgZywgcykgeworICBpZiAoIWNsYXNzQ29tcGFyZSh0bmFtZSwgZywgcykp
IHsKKyAgICByZXR1cm4gZmFsc2U7CisgIH0KKyAgaWYgKCFidWZmZXJDb21wYXJlKHRuYW1lLCBn
LmJ1ZmZlciwgcy5idWZmZXIpKSB7CisgICAgcmV0dXJuIGZhbHNlOworICB9CisgIGlmIChnLmJ5
dGVPZmZzZXQgIT09IHMuYnl0ZU9mZnNldCkgeworICAgIHRlc3RGYWlsZWQodG5hbWUgKyAiOiBv
ZmZzZXQgIiArIHMuYnl0ZU9mZnNldCArICIgYmVjYW1lICIgKyBnLmJ5dGVPZmZzZXQpOworICAg
IHJldHVybiBmYWxzZTsKKyAgfSBlbHNlIHsKKyAgICB0ZXN0UGFzc2VkKHRuYW1lICsgIjogb2Zm
c2V0IGlzICIgKyBzLmJ5dGVPZmZzZXQpOworICB9CisgIGlmIChnLmJ5dGVMZW5ndGggIT09IHMu
Ynl0ZUxlbmd0aCkgeworICAgIHRlc3RGYWlsZWQodG5hbWUgKyAiOiBsZW5ndGggIiArIHMuYnl0
ZUxlbmd0aCArICIgYmVjYW1lICIgKyBnLmJ5dGVMZW5ndGgpOworICAgIHJldHVybiBmYWxzZTsK
KyAgfSBlbHNlIHsKKyAgICB0ZXN0UGFzc2VkKHRuYW1lICsgIjogbGVuZ3RoIGlzICIgKyBzLmJ5
dGVMZW5ndGgpOworICB9CisgIHJldHVybiB0cnVlOworfQorCitmdW5jdGlvbiB0eXBlZEFycmF5
Q29tcGFyZSh0bmFtZSwgZywgcykgeworICBpZiAoIXZpZXdDb21wYXJlKHRuYW1lLCBnLCBzKSkg
eworICAgIHJldHVybiBmYWxzZTsKKyAgfQorICBpZiAoZy5CWVRFU19QRVJfRUxFTUVOVCAhPT0g
cy5CWVRFU19QRVJfRUxFTUVOVCkgeworICAgIC8vIFNhbml0eSBjaGVja2luZy4KKyAgICB0ZXN0
RmFpbGVkKHRuYW1lICsgIjogZXhwZWN0ZWQgIiArIHMuQllURVNfUEVSX0VMRU1FTlQgKyAiLCBz
YXcgIiArIGcuQllURVNfUEVSX0VMRU1FTlQpOworICAgIHJldHVybiBmYWxzZTsKKyAgfQorfQor
CitmdW5jdGlvbiBkYXRhVmlld0NvbXBhcmUodG5hbWUsIGcsIHMpIHsKKyAgaWYgKCF2aWV3Q29t
cGFyZSh0bmFtZSwgZywgcykpIHsKKyAgICByZXR1cm4gZmFsc2U7CisgIH0KK30KKworZnVuY3Rp
b24gY3JlYXRlQnVmZmVyKGxlbmd0aCkgeworICB2YXIgYnVmZmVyID0gbmV3IEFycmF5QnVmZmVy
KGxlbmd0aCk7CisgIHZhciB2aWV3ID0gbmV3IFVpbnQ4QXJyYXkoYnVmZmVyKTsKKyAgZm9yICh2
YXIgaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkgeworICAgIHZpZXdbaV0gPSBpICsgMTsKKyAgfQor
ICByZXR1cm4gYnVmZmVyOworfQorCitmdW5jdGlvbiBjcmVhdGVUeXBlZEFycmF5KHRhdHlwZSwg
bGVuZ3RoKSB7CisgIHZhciB2aWV3ID0gbmV3IHRhdHlwZShsZW5ndGgpOworICBmb3IgKHZhciBp
ID0gMDsgaSA8IGxlbmd0aDsgKytpKSB7CisgICAgdmlld1tpXSA9IGkgKyAxOworICB9CisgIHJl
dHVybiB2aWV3OworfQorCitmdW5jdGlvbiBjcmVhdGVUeXBlZEFycmF5T3ZlckJ1ZmZlcih0YXR5
cGUsIHRhZWx0c2l6ZSwgbGVuZ3RoLCBzdWJzdGFydCwgc3VibGVuZ3RoKSB7CisgIHZhciBidWZm
ZXIgPSBuZXcgQXJyYXlCdWZmZXIobGVuZ3RoICogdGFlbHRzaXplKTsKKyAgaWYgKHN1YnN0YXJ0
ID09PSB1bmRlZmluZWQpIHsKKyAgICBzdWJzdGFydCA9IDA7CisgICAgc3VibGVuZ3RoID0gbGVu
Z3RoOworICB9CisgIHJldHVybiBuZXcgdGF0eXBlKGJ1ZmZlciwgc3Vic3RhcnQgKiB0YWVsdHNp
emUsIHN1Ymxlbmd0aCk7Cit9CisKK3ZhciBiYXNpY0J1ZmZlclR5cGVzID0gWworICBbIkludDMy
IiwgSW50MzJBcnJheSwgNF0sCisgIFsiVWludDMyIiwgVWludDMyQXJyYXksIDRdLAorICBbIklu
dDgiLCBJbnQ4QXJyYXksIDFdLAorICBbIlVpbnQ4IiwgVWludDhBcnJheSwgMV0sCisgIFsiSW50
MTYiLCBJbnQxNkFycmF5LCAyXSwKKyAgWyJVaW50MTYiLCBVaW50MTZBcnJheSwgMl0sCisgIFsi
RmxvYXQzMiIsIEZsb2F0MzJBcnJheSwgNF0sCisgIFsiRmxvYXQ2NCIsIEZsb2F0NjRBcnJheSwg
OF0KK107CisKK3ZhciB0ZXN0TGlzdCA9IFsKKyAgWydBcnJheUJ1ZmZlcjAnLCBuZXcgQXJyYXlC
dWZmZXIoMCksIGJ1ZmZlckNvbXBhcmVdLAorICBbJ0FycmF5QnVmZmVyMScsIGNyZWF0ZUJ1ZmZl
cigxKSwgYnVmZmVyQ29tcGFyZV0sCisgIFsnQXJyYXlCdWZmZXIxMjgnLCBjcmVhdGVCdWZmZXIo
MTI4KSwgYnVmZmVyQ29tcGFyZV0sCisgIFsnRGF0YVZpZXcwJywgbmV3IERhdGFWaWV3KG5ldyBB
cnJheUJ1ZmZlcigwKSksIGRhdGFWaWV3Q29tcGFyZV0sCisgIFsnRGF0YVZpZXcxJywgbmV3IERh
dGFWaWV3KGNyZWF0ZUJ1ZmZlcigxKSksIGRhdGFWaWV3Q29tcGFyZV0sCisgIFsnRGF0YVZpZXcx
MjgnLCBuZXcgRGF0YVZpZXcoY3JlYXRlQnVmZmVyKDEyOCkpLCBkYXRhVmlld0NvbXBhcmVdLAor
ICBbJ0RhdGFWaWV3MV9vZnNfZW5kJywgbmV3IERhdGFWaWV3KGNyZWF0ZUJ1ZmZlcigxKSwgMSwg
MCksIGRhdGFWaWV3Q29tcGFyZV0sCisgIFsnRGF0YVZpZXcxMjhfb2ZzX2VuZCcsIG5ldyBEYXRh
VmlldyhjcmVhdGVCdWZmZXIoMTI4KSwgMTI4LCAwKSwgZGF0YVZpZXdDb21wYXJlXSwKKyAgWydE
YXRhVmlldzEyOF9vZnNfc2xpY2UwJywgbmV3IERhdGFWaWV3KGNyZWF0ZUJ1ZmZlcigxMjgpLCA2
NCwgMCksIGRhdGFWaWV3Q29tcGFyZV0sCisgIFsnRGF0YVZpZXcxMjhfb2ZzX3NsaWNlMScsIG5l
dyBEYXRhVmlldyhjcmVhdGVCdWZmZXIoMTI4KSwgNjQsIDEpLCBkYXRhVmlld0NvbXBhcmVdLAor
ICBbJ0RhdGFWaWV3MTI4X29mc19zbGljZTE2JywgbmV3IERhdGFWaWV3KGNyZWF0ZUJ1ZmZlcigx
MjgpLCA2NCwgMTYpLCBkYXRhVmlld0NvbXBhcmVdLAorICBbJ0RhdGFWaWV3MTI4X29mc19zbGlj
ZV91bmFsaWduZWQnLCBuZXcgRGF0YVZpZXcoY3JlYXRlQnVmZmVyKDEyOCksIDYzLCAxNSksIGRh
dGFWaWV3Q29tcGFyZV0KK107CisKK3Rlc3RMaXN0ID0gdGVzdExpc3QuY29uY2F0KGJhc2ljQnVm
ZmVyVHlwZXMubWFwKGZ1bmN0aW9uKHQpCisgIHtyZXR1cm4gW3RbMF0gKyAiXzAiLCBjcmVhdGVU
eXBlZEFycmF5KHRbMV0sIDApLCB0eXBlZEFycmF5Q29tcGFyZV07fSkpOwordGVzdExpc3QgPSB0
ZXN0TGlzdC5jb25jYXQoYmFzaWNCdWZmZXJUeXBlcy5tYXAoZnVuY3Rpb24odCkKKyAge3JldHVy
biBbdFswXSArICJfMSIsIGNyZWF0ZVR5cGVkQXJyYXkodFsxXSwgMSksIHR5cGVkQXJyYXlDb21w
YXJlXTt9KSk7Cit0ZXN0TGlzdCA9IHRlc3RMaXN0LmNvbmNhdChiYXNpY0J1ZmZlclR5cGVzLm1h
cChmdW5jdGlvbih0KQorICB7cmV0dXJuIFt0WzBdICsgIl8xMjgiLCBjcmVhdGVUeXBlZEFycmF5
KHRbMV0sIDEyOCksIHR5cGVkQXJyYXlDb21wYXJlXTt9KSk7Cit0ZXN0TGlzdCA9IHRlc3RMaXN0
LmNvbmNhdChiYXNpY0J1ZmZlclR5cGVzLm1hcChmdW5jdGlvbih0KQorICB7cmV0dXJuIFt0WzBd
ICsgIl8wYiIsIGNyZWF0ZVR5cGVkQXJyYXlPdmVyQnVmZmVyKHRbMV0sIHRbMl0sIDApLCB0eXBl
ZEFycmF5Q29tcGFyZV07fSkpOwordGVzdExpc3QgPSB0ZXN0TGlzdC5jb25jYXQoYmFzaWNCdWZm
ZXJUeXBlcy5tYXAoZnVuY3Rpb24odCkKKyAge3JldHVybiBbdFswXSArICJfMWIiLCBjcmVhdGVU
eXBlZEFycmF5T3ZlckJ1ZmZlcih0WzFdLCB0WzJdLCAxKSwgdHlwZWRBcnJheUNvbXBhcmVdO30p
KTsKK3Rlc3RMaXN0ID0gdGVzdExpc3QuY29uY2F0KGJhc2ljQnVmZmVyVHlwZXMubWFwKGZ1bmN0
aW9uKHQpCisgIHtyZXR1cm4gW3RbMF0gKyAiXzEyOGIiLCBjcmVhdGVUeXBlZEFycmF5T3ZlckJ1
ZmZlcih0WzFdLCB0WzJdLCAxMjgpLCB0eXBlZEFycmF5Q29tcGFyZV07fSkpOwordGVzdExpc3Qg
PSB0ZXN0TGlzdC5jb25jYXQoYmFzaWNCdWZmZXJUeXBlcy5tYXAoZnVuY3Rpb24odCkKKyAge3Jl
dHVybiBbdFswXSArICJfMWJfb2ZzX2VuZCIsIGNyZWF0ZVR5cGVkQXJyYXlPdmVyQnVmZmVyKHRb
MV0sIHRbMl0sIDEsIDEsIDApLCB0eXBlZEFycmF5Q29tcGFyZV07fSkpOwordGVzdExpc3QgPSB0
ZXN0TGlzdC5jb25jYXQoYmFzaWNCdWZmZXJUeXBlcy5tYXAoZnVuY3Rpb24odCkKKyAge3JldHVy
biBbdFswXSArICJfMTI4Yl9vZnNfZW5kIiwgY3JlYXRlVHlwZWRBcnJheU92ZXJCdWZmZXIodFsx
XSwgdFsyXSwgMTI4LCAxMjgsIDApLCB0eXBlZEFycmF5Q29tcGFyZV07fSkpOwordGVzdExpc3Qg
PSB0ZXN0TGlzdC5jb25jYXQoYmFzaWNCdWZmZXJUeXBlcy5tYXAoZnVuY3Rpb24odCkKKyAge3Jl
dHVybiBbdFswXSArICJfMTI4Yl9vZnNfc2xpY2UwIiwgY3JlYXRlVHlwZWRBcnJheU92ZXJCdWZm
ZXIodFsxXSwgdFsyXSwgMTI4LCA2NCwgMCksIHR5cGVkQXJyYXlDb21wYXJlXTt9KSk7Cit0ZXN0
TGlzdCA9IHRlc3RMaXN0LmNvbmNhdChiYXNpY0J1ZmZlclR5cGVzLm1hcChmdW5jdGlvbih0KQor
ICB7cmV0dXJuIFt0WzBdICsgIl8xMjhiX29mc19zbGljZTEiLCBjcmVhdGVUeXBlZEFycmF5T3Zl
ckJ1ZmZlcih0WzFdLCB0WzJdLCAxMjgsIDY0LCAxKSwgdHlwZWRBcnJheUNvbXBhcmVdO30pKTsK
K3Rlc3RMaXN0ID0gdGVzdExpc3QuY29uY2F0KGJhc2ljQnVmZmVyVHlwZXMubWFwKGZ1bmN0aW9u
KHQpCisgIHtyZXR1cm4gW3RbMF0gKyAiXzEyOGJfb2ZzX3NsaWNlMTYiLCBjcmVhdGVUeXBlZEFy
cmF5T3ZlckJ1ZmZlcih0WzFdLCB0WzJdLCAxMjgsIDY0LCAxNiksIHR5cGVkQXJyYXlDb21wYXJl
XTt9KSk7CisKK2Z1bmN0aW9uIGRvbmVUZXN0KCkgeworICBpZiAoKyt3aW5kb3cudGVzdHNDb21w
bGV0ZSA9PSB0ZXN0TGlzdC5sZW5ndGgpIHsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgfQorfQor
CitmdW5jdGlvbiB3aW5kb3dIYW5kbGVNZXNzYWdlKGUpIHsKKyAgdmFyIGN1cnJlbnRUZXN0ID0g
dGVzdExpc3RbZS5kYXRhLnRlc3ROdW1dOworICB2YXIgZXhwZWN0ZWRSZXN1bHQgPSBjdXJyZW50
VGVzdFsxXTsKKyAgdHJ5IHsKKyAgICBjdXJyZW50VGVzdFsyXShjdXJyZW50VGVzdFswXSwgZS5k
YXRhLnRlc3REYXRhLCBleHBlY3RlZFJlc3VsdCk7CisgIH0gY2F0Y2goZSkgeworICAgIHRlc3RG
YWlsZWQoY3VycmVudFRlc3RbMF0gKyAiOiB1bmV4cGVjdGVkIGV4Y2VwdGlvbiAiICsgZSk7Cisg
IH0KKyAgZG9uZVRlc3QoKTsKK30KK3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywg
d2luZG93SGFuZGxlTWVzc2FnZSk7CisKK2ZvciAodmFyIHQgPSAwOyB0IDwgdGVzdExpc3QubGVu
Z3RoOyArK3QpIHsKKyAgdmFyIGN1cnJlbnRUZXN0ID0gdGVzdExpc3RbdF07CisgIHZhciBtZXNz
YWdlID0ge3Rlc3ROdW06IHQsIHRlc3REYXRhOiBjdXJyZW50VGVzdFsxXX07CisgIGlmICh3aW5k
b3cuY2hlYXQpIHsKKyAgICB3aW5kb3dIYW5kbGVNZXNzYWdlKHtkYXRhOiBtZXNzYWdlfSk7Cisg
IH0gZWxzZSB7CisgICAgd2luZG93LnBvc3RNZXNzYWdlKG1lc3NhZ2UsICcqJyk7CisgIH0KK30K
Kworc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorCis8c2NyaXB0IHNyYz0i
Li4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+
Cis8L3NjcmlwdD4KKworPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vV2luZG93L3dpbmRvdy1wb3N0bWVzc2FnZS1jbG9uZS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXBvc3RtZXNzYWdlLWNsb25lLWV4cGVj
dGVkLnR4dAppbmRleCBkMmYwMTQ5Li5hMDRhZTViIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9XaW5kb3cvd2luZG93LXBvc3RtZXNzYWdlLWNsb25lLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXBvc3RtZXNzYWdlLWNsb25lLWV4
cGVjdGVkLnR4dApAQCAtMSw4ICsxLDE1IEBACiBUZXN0cyB0aGF0IHdlIGNsb25lIG9iamVjdCBo
aWVyYXJjaGllcwogCi1QQVNTOiAncG9zdE1lc3NhZ2UocmVhbGx5RGVlcEFycmF5KScgdGhyZXcg
UmFuZ2VFcnJvcjogTWF4aW11bSBjYWxsIHN0YWNrIHNpemUgZXhjZWVkZWQuCi1QQVNTOiAncG9z
dE1lc3NhZ2Uod2luZG93KScgdGhyZXcgVHlwZUVycm9yOiBUeXBlIGVycm9yCitQQVNTOiAncG9z
dE1lc3NhZ2UoKGZ1bmN0aW9uKCl7fSkpJyB0aHJldyBFcnJvcjogREFUQV9DTE9ORV9FUlI6IERP
TSBFeGNlcHRpb24gMjUKK1BBU1M6ICdwb3N0TWVzc2FnZShyZWFsbHlEZWVwQXJyYXkpJyB0aHJl
dyBFcnJvcjogREFUQV9DTE9ORV9FUlI6IERPTSBFeGNlcHRpb24gMjUKK1BBU1M6ICdwb3N0TWVz
c2FnZSh3aW5kb3cpJyB0aHJldyBFcnJvcjogREFUQV9DTE9ORV9FUlI6IERPTSBFeGNlcHRpb24g
MjUKIFBBU1M6ICdwb3N0TWVzc2FnZSgoe2dldCBhKCkgeyB0aHJvdyAieCIgfX0pKScgdGhyZXcg
eAorUEFTUzogJ3Bvc3RNZXNzYWdlKGltYWdlRGF0YS5kYXRhKScgdGhyZXcgRXJyb3I6IERBVEFf
Q0xPTkVfRVJSOiBET00gRXhjZXB0aW9uIDI1CitQQVNTOiAncG9zdE1lc3NhZ2UobXV0YXRlZElt
YWdlRGF0YS5kYXRhKScgdGhyZXcgRXJyb3I6IERBVEFfQ0xPTkVfRVJSOiBET00gRXhjZXB0aW9u
IDI1CitQQVNTOiAncG9zdE1lc3NhZ2UoKGZ1bmN0aW9uKCkge3JldHVybiB7Z2V0IGEoKSB7IHRo
cm93ICJhY2Nlc3Nvci1leG4iOyB9fTt9KSgpKScgdGhyZXcgYWNjZXNzb3ItZXhuCitQQVNTOiAn
cG9zdE1lc3NhZ2UoKGZ1bmN0aW9uKCkge3ZhciBvYmphID0ge2dldCBwKCkgeyB0aHJvdyAiYWNj
ZXNzb3ItZXhuIjsgfX07IHJldHVybiB7Z2V0IGEoKSB7IHJldHVybiBvYmphOyB9fTt9KSgpKScg
dGhyZXcgYWNjZXNzb3ItZXhuCitQQVNTOiBsYXN0SW5kZXggaW5pdGlhbGx5IGNvcnJlY3Q6IHdh
cyAzCitQQVNTOiBzYW5pdHkgb24gZmlsZSByZWZlcmVuY2UgZXF1YWxpdHkKIFBBU1M6IGV2ZW50
RGF0YSBpcyBudWxsIG9mIHR5cGUgb2JqZWN0CiBQQVNTOiBldmVudERhdGEgaXMgdW5kZWZpbmVk
IG9mIHR5cGUgdW5kZWZpbmVkCiBQQVNTOiBldmVudERhdGEgaXMgMSBvZiB0eXBlIG51bWJlcgpA
QCAtMjIsMTcgKzI5LDg4IEBAIFBBU1M6IGV2ZW50RGF0YSBpcyBhLGEsYixhLGIgb2YgdHlwZSBv
YmplY3QKIFBBU1M6IGV2ZW50RGF0YSBpcyBhLGEsYixbb2JqZWN0IE9iamVjdF0gb2YgdHlwZSBv
YmplY3QKIFBBU1M6IGV2ZW50RGF0YSBpcyAxLDIsMyBvZiB0eXBlIG9iamVjdAogUEFTUzogZXZl
bnREYXRhIGlzICwsMSBvZiB0eXBlIG9iamVjdAotUEFTUzogZXZlbnREYXRhIGlzIG51bGwgb2Yg
dHlwZSBvYmplY3QKIFBBU1M6IGV2ZW50RGF0YSBpcyAyMDA5LTAyLTEzVDIzOjMxOjMwLjAwMFog
b2YgdHlwZSBvYmplY3QKIFBBU1M6IGV2ZW50RGF0YSBpcyBbb2JqZWN0IE9iamVjdF0gb2YgdHlw
ZSBvYmplY3QKIFBBU1M6IGV2ZW50RGF0YSBpcyA9PT0gdG8gZXZlbnREYXRhLnNlbGYKIFBBU1M6
IGV2ZW50RGF0YSBpcyA9PT0gdG8gZXZlbnREYXRhWzBdCiBQQVNTOiBldmVudERhdGEuZ3JhcGgx
IGlzID09PSB0byBldmVudERhdGEuZ3JhcGgyCiBQQVNTOiBldmVudERhdGFbMF0gaXMgPT09IHRv
IGV2ZW50RGF0YVsxXQotUEFTUzogZXZlbnREYXRhIGlzIFtvYmplY3QgQXJyYXldKGRlZmF1bHQg
dG9TdHJpbmcgdGhyZXcgUmFuZ2VFcnJvcjogTWF4aW11bSBjYWxsIHN0YWNrIHNpemUgZXhjZWVk
ZWQuKSBvZiB0eXBlIG9iamVjdAotUEFTUzogZXZlbnREYXRhIGlzIFtvYmplY3QgRmlsZV0gb2Yg
dHlwZSBvYmplY3QKLVBBU1M6IGV2ZW50RGF0YSBpcyBbb2JqZWN0IEZpbGVMaXN0XSBvZiB0eXBl
IG9iamVjdAorUEFTUzogZXZlbnREYXRhIGlzIFtvYmplY3QgQXJyYXldKGRlZmF1bHQgdG9TdHJp
bmcgdGhyZXcgUmFuZ2VFcnJvcjogTWF4aW11bSBjYWxsIHN0YWNrIHNpemUgZXhjZWVkZWQpIG9m
IHR5cGUgb2JqZWN0CiBQQVNTOiBldmVudERhdGEgaXMgW29iamVjdCBJbWFnZURhdGFdIG9mIHR5
cGUgb2JqZWN0CiBQQVNTOiBldmVudERhdGEgaXMgW29iamVjdCBJbWFnZURhdGFdIG9mIHR5cGUg
b2JqZWN0CitQQVNTOiBldmVudERhdGEgaXMgNDIgb2YgdHlwZSBudW1iZXIKK1BBU1M6IGV2ZW50
RGF0YSBpcyA0MiBvZiB0eXBlIG51bWJlcgorUEFTUzogZXZhbFRodW5rIE9LCitQQVNTOiBldmVu
dERhdGEgaXMgW29iamVjdCBPYmplY3RdIG9mIHR5cGUgb2JqZWN0CitQQVNTOiBsZW5ndGggY29y
cmVjdAorUEFTUzogZXZhbHVhdGlvbiBvcmRlciBPSworUEFTUzogZXZhbHVhdGlvbiBvcmRlciBP
Sy9hY2Nlc3NvciByZWFjaGVkCitQQVNTOiBldmFsdWF0aW9uIG9yZGVyIE9LCitQQVNTOiBsZW5n
dGggY29ycmVjdAorUEFTUzogaXggMCBPSworUEFTUzogYWNjZXNzb3IgcmVhY2hlZAorUEFTUzog
aXggMiB1bmRlZmluZWQKK1BBU1M6IGxlbmd0aCBjb3JyZWN0CitQQVNTOiBpeCAwIE9LCitQQVNT
OiBpeCAxIE9LCitQQVNTOiBpeCAyIE9LCitQQVNTOiBiYXNpYyBwcm9wZXJ0aWVzIE9LCitQQVNT
OiBvbmUgYWNjZXNzb3Igd2FzIHJ1bgorUEFTUzogcHJvcGVydHkgd2FzIHJlbW92ZWQKK1BBU1M6
IHByb3BlcnR5IHdhcyByZW1vdmVkCitQQVNTOiBhY2Nlc3NvciB3YXMgcnVuCitQQVNTOiBkeW5h
bWljIHByb3BlcnR5IG5vdCBzZW50CitQQVNTOiByZWZlcmVuY2UgZXF1YWxpdHkgcHJlc2VydmVk
CitQQVNTOiBhY2Nlc3NvcnMgdXNlZAorUEFTUzogcmVmZXJlbmNlIGVxdWFsaXR5IHByZXNlcnZl
ZCAob3Bwb3NpdGUgb3JkZXIpCitQQVNTOiBhY2Nlc3NvcnMgdXNlZCAob3Bwb3NpdGUgb3JkZXIp
CitQQVNTOiBhY2Nlc3NvciB2YWx1ZSB3YXMgbnVsbGlmaWVkCitQQVNTOiBub24tYWNjZXNzb3Ig
dmFsdWUgd2FzIG5vdCBudWxsaWZpZWQKK1BBU1M6IGFjY2Vzc29yIHZhbHVlIHdhcyBudWxsaWZp
ZWQKK1BBU1M6IG5vbi1hY2Nlc3NvciB2YWx1ZSB3YXMgbm90IG51bGxpZmllZAorUEFTUzogbm9u
LWFjY2Vzc29yIHZhbHVlIHdhcyBub3QgbnVsbGlmaWVkCitQQVNTOiBhY2Nlc3NvciB2YWx1ZSB3
YXMgbnVsbGlmaWVkCitQQVNTOiBub24tYWNjZXNzb3IgdmFsdWUgd2FzIG5vdCBudWxsaWZpZWQK
K1BBU1M6IGFjY2Vzc29yIHZhbHVlIHdhcyBub3QgbnVsbGlmaWVkCitQQVNTOiBhY2Nlc3NvciB2
YWx1ZSB3YXMgbm90IG51bGxpZmllZAorUEFTUzogYWNjZXNzb3IgdmFsdWUgd2FzIG51bGxpZmll
ZAorUEFTUzogbm9uLWFjY2Vzc29yIHZhbHVlIHdhcyBub3QgbnVsbGlmaWVkCitQQVNTOiBub24t
YWNjZXNzb3IgdmFsdWUgd2FzIG5vdCBudWxsaWZpZWQKK1BBU1M6IG5vbi1hY2Nlc3NvciB2YWx1
ZSBpcyBkZWZpbmVkCitQQVNTOiBub24tYWNjZXNzb3IgdmFsdWUgd2FzIG5vdCBudWxsaWZpZWQK
K1BBU1M6IG5vbi1hY2Nlc3NvciB2YWx1ZSBpcyBkZWZpbmVkCitQQVNTOiBhY2Nlc3NvciB2YWx1
ZSB3YXMgbnVsbGlmaWVkCitQQVNTOiBub24tYWNjZXNzb3IgdmFsdWUgd2FzIG5vdCBudWxsaWZp
ZWQKK1BBU1M6IGFjY2Vzc29yIHZhbHVlIHdhcyBudWxsaWZpZWQKK1BBU1M6IHdpbmRvdy5wY2Fs
bGVkID09PSB0cnVlCitQQVNTOiB3aW5kb3cuYWNhbGxlZCA9PT0gdHJ1ZQorUEFTUzogd2luZG93
LmJjYWxsZWQgPT09IHVuZGVmaW5lZAorUEFTUzogRGF0ZSB2YWx1ZXMgY29ycmVjdCAoMCkKK1BB
U1M6IERhdGUgdmFsdWVzIGNvcnJlY3QgKDEpCitQQVNTOiBSZWZlcmVuY2VzIHRvIGRhdGVzIGNv
cnJlY3QgKDApCitQQVNTOiBSZWZlcmVuY2VzIHRvIGRhdGVzIGNvcnJlY3QgKDEpCitQQVNTOiBS
ZWdleHAgdmFsdWUgY29ycmVjdCAoMCkKK1BBU1M6IFJlZmVyZW5jZXMgdG8gcmVnZXhwcyBjb3Jy
ZWN0ICgwKQorUEFTUzogUmVmZXJlbmNlcyB0byByZWdleHBzIGNvcnJlY3QgKDEpCitQQVNTOiBn
bG9iYWwgc2V0ICgwKQorUEFTUzogZ2xvYmFsIHNldCAoMSkKK1BBU1M6IGlnbm9yZUNhc2Ugc2V0
ICgwKQorUEFTUzogaWdub3JlQ2FzZSBzZXQgKDEpCitQQVNTOiBtdWx0aWxpbmUgc2V0ICgwKQor
UEFTUzogbXVsdGlsaW5lIHNldCAoMSkKK1BBU1M6IGxhc3RJbmRleCBjb3JyZWN0ICgwKQorUEFT
UzogbGFzdEluZGV4IGNvcnJlY3QgKDEpCitQQVNTOiBldmVudERhdGEgaXMgMiBvZiB0eXBlIG51
bWJlcgorUEFTUzogZmlsZSByZWZlcmVuY2VzIHRyYW5zZmVyCitQQVNTOiBGaWxlTGlzdCBzaG91
bGQgbm90IHJlc3BlY3QgcmVmZXJlbmNlIGVxdWFsaXR5CitQQVNTOiBGaWxlTGlzdCBzaG91bGQg
bm90IHJlc3BlY3QgcmVmZXJlbmNlIGVxdWFsaXR5CitQQVNTOiBGaWxlTGlzdCByZXNwZWN0cyBz
ZWxmLXJlZmVyZW5jZSBlcXVhbGl0eQorUEFTUzogRmlsZUxpc3QgbGVuZ3RoIHNlbnQgY29ycmVj
dGx5CitQQVNTOiBGaWxlTGlzdCBzaG91bGQgbm90IHJlc3BlY3QgcmVmZXJlbmNlIGVxdWFsaXR5
ICgwKQorUEFTUzogRmlsZUxpc3Qgc2hvdWxkIG5vdCByZXNwZWN0IHJlZmVyZW5jZSBlcXVhbGl0
eSAoMSkKK1BBU1M6IEZpbGVMaXN0IHByZXNlcnZlcyBvcmRlciBhbmQgZGF0YSAobmFtZTApCitQ
QVNTOiBGaWxlTGlzdCBwcmVzZXJ2ZXMgb3JkZXIgYW5kIGRhdGEgKG5hbWUxKQorUEFTUzogRmls
ZUxpc3QgcHJlc2VydmVzIG9yZGVyIGFuZCBkYXRhIChkYXRlMCkKK1BBU1M6IEZpbGVMaXN0IHBy
ZXNlcnZlcyBvcmRlciBhbmQgZGF0YSAoZGF0ZTEpCiBQQVNTOiBldmVudERhdGEgaXMgZG9uZSBv
ZiB0eXBlIHN0cmluZwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cv
d2luZG93LXBvc3RtZXNzYWdlLWNsb25lLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5k
b3cvd2luZG93LXBvc3RtZXNzYWdlLWNsb25lLmh0bWwKaW5kZXggZjI4MzUxYy4uNThmZmYwYSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wb3N0bWVzc2Fn
ZS1jbG9uZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcG9z
dG1lc3NhZ2UtY2xvbmUuaHRtbApAQCAtMiw3ICsyLDcgQEAKIDxoZWFkPjwvaGVhZD4KIDxib2R5
PgogPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgotPGlucHV0IHR5cGU9ImZpbGUiIGlkPSJm
aWxlSW5wdXQiPjwvaW5wdXQ+Cis8aW5wdXQgdHlwZT0iZmlsZSIgaWQ9ImZpbGVJbnB1dCIgbXVs
dGlwbGU+PC9pbnB1dD4KIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgogPHNjcmlwdD4KIGlmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKQEAgLTEzLDYgKzEzLDcgQEAgaWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewogdmFyIGNvbnNvbGUgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgiY29uc29sZSIpOwogCiB2YXIgbWVzc2FnZXMgPSBbXTsKK3ZhciBldmFsVGh1bmtz
ID0gW107CiAKIGZ1bmN0aW9uIGVxdWFsKGFjdHVhbCwgZXhwZWN0ZWQpCiB7CkBAIC05MCw2ICs5
MSwxOCBAQCBmdW5jdGlvbiBzaG91bGRCZUlkZW50aWNhbChhY3R1YWwsIGV4cGVjdGVkKQogICAg
ICAgICBjb25zb2xlLmlubmVySFRNTCArPSAiRkFJTDogIiArIGFjdHVhbCArICIgaXMgbm90ID09
PSB0byAiICsgZXhwZWN0ZWQgKyAiPGJyPiI7CiB9CiAKK2Z1bmN0aW9uIGRvUGFzcyhtc2cpIHsK
KwkgIGNvbnNvbGUuaW5uZXJIVE1MICs9ICJQQVNTOiAiICsgbXNnICsgIjxicj4iOworfQorCitm
dW5jdGlvbiBkb0ZhaWwobXNnKSB7CisJICBjb25zb2xlLmlubmVySFRNTCArPSAiRkFJTDogIiAr
IG1zZyArICI8YnI+IjsJCit9CisKK2Z1bmN0aW9uIGRvUGFzc0ZhaWwocmVzdWx0LCBtc2cpIHsK
KyAgICBjb25zb2xlLmlubmVySFRNTCArPSAocmVzdWx0ID8gIlBBU1M6ICIgOiAiRkFJTDogIikg
KyBtc2cgKyAiPGJyPiI7Cit9CisKIGZ1bmN0aW9uIG9ubWVzc2FnZShldnQpIHsKICAgICBldmVu
dERhdGEgPSBldnQuZGF0YTsKICAgICBpZiAoZXZ0LmRhdGEgIT09IGV2dC5kYXRhKQpAQCAtMTA5
LDcgKzEyMiwxNyBAQCBmdW5jdGlvbiBvbm1lc3NhZ2UoZXZ0KSB7CiAgICAgICAgIHNob3VsZEJl
SWRlbnRpY2FsKCJldmVudERhdGFbMF0iLCAiZXZlbnREYXRhWzFdIik7CiAgICAgICAgIGJyZWFr
OwogICAgIGRlZmF1bHQ6Ci0gICAgICAgIHNob3VsZEJlKCJldmVudERhdGEiLCBtZXNzYWdlKTsK
KwkJaWYgKG1lc3NhZ2UgPT0gImV2YWxUaHVuayIpIHsKKwkJCXZhciB0aHVuayA9IGV2YWxUaHVu
a3Muc2hpZnQoKTsKKwkJCXRyeSB7CisJCQkgICAgdGh1bmsoZXZlbnREYXRhKTsKKwkJCX0gY2F0
Y2goZSkgeworCQkJICAgIGRvRmFpbCgidGhyZXcgZXhjZXB0aW9uOiAiICsgZSk7CisJCQkgICAg
dGhyb3cgZTsKKwkJCX0KKwkJfSBlbHNlIHsKKyAgICAgICAgCXNob3VsZEJlKCJldmVudERhdGEi
LCBtZXNzYWdlKTsKKwkJfQogICAgIH0KIAogICAgIGlmIChzYWZlVG9TdHJpbmcoZXZ0LmRhdGEp
ID09ICdkb25lJyAmJiB3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCkBAIC0xMjYsMTcgKzE0
OSwyNCBAQCBDb25zdHJ1Y3RvcldpdGhQcm90b3R5cGUucHJvdG90eXBlID0gewogICAgIHByb3Rv
UHJvcGVydHk6IDIwMTAKIH07CiAKLWZ1bmN0aW9uIHRyeVBvc3RNZXNzYWdlKG1lc3NhZ2UsIHNo
b3VsZFRocm93LCBleHBlY3RlZCkgeworZnVuY3Rpb24gdHJ5UG9zdE1lc3NhZ2UobWVzc2FnZSwg
c2hvdWxkVGhyb3csIGV4cGVjdGVkLCBleHBlY3RlZEV4Y2VwdGlvbikgewogICAgIHRyeSB7CiAg
ICAgICAgIHZhciB2YWx1ZSA9IGV2YWwobWVzc2FnZSk7CiAgICAgICAgIHBvc3RNZXNzYWdlKHZh
bHVlLCAiKiIpOwogICAgICAgICBpZiAoc2hvdWxkVGhyb3cpCiAgICAgICAgICAgICBjb25zb2xl
LmlubmVySFRNTCArPSAiRkFJTDogJ3Bvc3RNZXNzYWdlKCIrbWVzc2FnZSsiKScgc2hvdWxkIHRo
cm93IGJ1dCBkaWRuJ3Q8YnI+IjsKICAgICAgICAgbWVzc2FnZXMucHVzaChleHBlY3RlZCB8fCBt
ZXNzYWdlKTsKKwkJaWYgKGV4cGVjdGVkID09ICJldmFsVGh1bmsiKSB7CisJCQlldmFsVGh1bmtz
LnB1c2goZXhwZWN0ZWRFeGNlcHRpb24pOworCQl9CiAgICAgfSBjYXRjaChlKSB7Ci0gICAgICAg
IGlmIChzaG91bGRUaHJvdykKLSAgICAgICAgICAgIGNvbnNvbGUuaW5uZXJIVE1MICs9ICJQQVNT
OiAncG9zdE1lc3NhZ2UoIittZXNzYWdlKyIpJyB0aHJldyAiICsgZSArICI8YnI+IjsKLSAgICAg
ICAgZWxzZQorICAgICAgICBpZiAoc2hvdWxkVGhyb3cpIHsKKyAgICAgICAgICAgIGlmIChleHBl
Y3RlZEV4Y2VwdGlvbiA9PT0gdW5kZWZpbmVkIHx8IGV4cGVjdGVkRXhjZXB0aW9uID09IGUuY29k
ZSB8fCBleHBlY3RlZEV4Y2VwdGlvbiA9PSBlKSB7CisgICAgICAgICAgICAgICAgY29uc29sZS5p
bm5lckhUTUwgKz0gIlBBU1M6ICdwb3N0TWVzc2FnZSgiK21lc3NhZ2UrIiknIHRocmV3ICIgKyBl
ICsgIjxicj4iOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBjb25zb2xl
LmlubmVySFRNTCArPSAiRkFJTDogJ3Bvc3RNZXNzYWdlKCIrbWVzc2FnZSsiKScgdGhyZXcgIiAr
IGUgKyAiLCB3YXMgZXhwZWN0aW5nICIgKyBleHBlY3RlZEV4Y2VwdGlvbiArICI8YnI+IjsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICBjb25zb2xlLmlubmVySFRN
TCArPSAiRkFJTDogJ3Bvc3RNZXNzYWdlKCIrbWVzc2FnZSsiKScgc2hvdWxkIG5vdCB0aHJvdyBi
dXQgdGhyZXcgIiArIGUgKyAiPGJyPiI7CiAgICAgfQogfQpAQCAtMTYyLDcgKzE5Miw3IEBAIHRy
eVBvc3RNZXNzYWdlKCdbImEiLCAiYSIsICJiIiwgImEiLCAiYiJdJyk7CiB0cnlQb3N0TWVzc2Fn
ZSgnWyJhIiwgImEiLCAiYiIsIHthOiJiIiwgYjoiYSJ9XScpOwogdHJ5UG9zdE1lc3NhZ2UoJ1sx
LDIsM10nKTsKIHRyeVBvc3RNZXNzYWdlKCdbLCwxXScpOwotdHJ5UG9zdE1lc3NhZ2UoJyhmdW5j
dGlvbigpe30pJywgZmFsc2UsICdudWxsJyk7Cit0cnlQb3N0TWVzc2FnZSgnKGZ1bmN0aW9uKCl7
fSknLCB0cnVlLCBudWxsLCBET01FeGNlcHRpb24uREFUQV9DTE9ORV9FUlIpOwogdHJ5UG9zdE1l
c3NhZ2UoJ25ldyBEYXRlKDEyMzQ1Njc4OTAwMDApJyk7CiB0cnlQb3N0TWVzc2FnZSgnbmV3IENv
bnN0cnVjdG9yV2l0aFByb3RvdHlwZSgiZm9vIiknLCBmYWxzZSwgJyh7ZmllbGQ6ImZvbyJ9KScp
OwogY3ljbGljT2JqZWN0PXt9OwpAQCAtMTg1LDcgKzIxNSw3IEBAIHRyeVBvc3RNZXNzYWdlKCdk
ZWVwQXJyYXknKTsKIHJlYWxseURlZXBBcnJheT1bXTsKIGZvciAodmFyIGkgPSAwOyBpIDwgMTAw
MDAwOyBpKyspCiAgICAgcmVhbGx5RGVlcEFycmF5PVtyZWFsbHlEZWVwQXJyYXldOwotdHJ5UG9z
dE1lc3NhZ2UoJ3JlYWxseURlZXBBcnJheScsIHRydWUpOwordHJ5UG9zdE1lc3NhZ2UoJ3JlYWxs
eURlZXBBcnJheScsIHRydWUsIG51bGwsIERPTUV4Y2VwdGlvbi5EQVRBX0NMT05FX0VSUik7CiB0
cnlQb3N0TWVzc2FnZSgnd2luZG93JywgdHJ1ZSk7CiB0cnlQb3N0TWVzc2FnZSgnKHtnZXQgYSgp
IHsgdGhyb3cgIngiIH19KScsIHRydWUpOwogCkBAIC0xOTQsMTEgKzIyNCw5IEBAIGlmICh3aW5k
b3cuZXZlbnRTZW5kZXIpIHsKICAgICB2YXIgZmlsZVJlY3QgPSBmaWxlSW5wdXQuZ2V0Q2xpZW50
UmVjdHMoKVswXTsKICAgICB2YXIgdGFyZ2V0WCA9IGZpbGVSZWN0LmxlZnQgKyBmaWxlUmVjdC53
aWR0aCAvIDI7CiAgICAgdmFyIHRhcmdldFkgPSBmaWxlUmVjdC50b3AgKyBmaWxlUmVjdC5oZWln
aHQgLyAyOwotICAgIGV2ZW50U2VuZGVyLmJlZ2luRHJhZ1dpdGhGaWxlcyhbJ2dldC1maWxlLXVw
bG9hZC5odG1sJ10pOworICAgIGV2ZW50U2VuZGVyLmJlZ2luRHJhZ1dpdGhGaWxlcyhbJ2dvdC1m
aWxlLXVwbG9hZC5odG1sJywgJ2dvdC1maWxlLXVwbG9hZC0yLmh0bWwnXSk7CiAgICAgZXZlbnRT
ZW5kZXIubW91c2VNb3ZlVG8odGFyZ2V0WCwgdGFyZ2V0WSk7CiAgICAgZXZlbnRTZW5kZXIubW91
c2VVcCgpOwotICAgIHRyeVBvc3RNZXNzYWdlKCdmaWxlSW5wdXQuZmlsZXNbMF0nLCBmYWxzZSwg
ZmlsZUlucHV0LmZpbGVzWzBdKTsKLSAgICB0cnlQb3N0TWVzc2FnZSgnZmlsZUlucHV0LmZpbGVz
JywgZmFsc2UsIGZpbGVJbnB1dC5maWxlcyk7CiB9CiB2YXIgaW1hZ2VEYXRhID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgiY2FudmFzIikuZ2V0Q29udGV4dCgiMmQiKS5jcmVhdGVJbWFnZURhdGEo
MTAsMTApOwogZm9yICh2YXIgaSA9IDA7IGkgPCBpbWFnZURhdGEuZGF0YS5sZW5ndGggKiA0OyBp
KyspCkBAIC0yMDcsMTAgKzIzNSwyMjMgQEAgdmFyIG11dGF0ZWRJbWFnZURhdGEgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKS5nZXRDb250ZXh0KCIyZCIpLmNyZWF0ZUkKIGZvciAo
dmFyIGkgPSAwOyBpIDwgaW1hZ2VEYXRhLmRhdGEubGVuZ3RoICogNDsgaSsrKQogICAgIG11dGF0
ZWRJbWFnZURhdGEuZGF0YVtpXSA9IGkgJSAyNTY7CiB0cnlQb3N0TWVzc2FnZSgnaW1hZ2VEYXRh
JywgZmFsc2UsIGltYWdlRGF0YSk7Cit0cnlQb3N0TWVzc2FnZSgnaW1hZ2VEYXRhLmRhdGEnLCB0
cnVlLCBudWxsLCBET01FeGNlcHRpb24uREFUQV9DTE9ORV9FUlIpCiB0cnlQb3N0TWVzc2FnZSgn
bXV0YXRlZEltYWdlRGF0YScsIGZhbHNlLCBpbWFnZURhdGEpOwordHJ5UG9zdE1lc3NhZ2UoJ211
dGF0ZWRJbWFnZURhdGEuZGF0YScsIHRydWUsIG51bGwsIERPTUV4Y2VwdGlvbi5EQVRBX0NMT05F
X0VSUikKIGZvciAodmFyIGkgPSAwOyBpIDwgaW1hZ2VEYXRhLmRhdGEubGVuZ3RoICogNDsgaSsr
KQogICAgIG11dGF0ZWRJbWFnZURhdGEuZGF0YVtpXSA9IDA7CiAKK2Z1bmN0aW9uIHRodW5rKHMp
IHsKKwkgIHJldHVybiAiKGZ1bmN0aW9uKCkgeyIgKyBzICsgIn0pKCkiOworfQordHJ5UG9zdE1l
c3NhZ2UodGh1bmsoJ3JldHVybiA0MjsnKSwgZmFsc2UsICc0MicpOwordHJ5UG9zdE1lc3NhZ2Uo
dGh1bmsoJ3JldHVybiA0MjsnKSwgZmFsc2UsIHRodW5rKCdyZXR1cm4gNDAgKyAyOycpKTsKK3Ry
eVBvc3RNZXNzYWdlKHRodW5rKCdyZXR1cm4gNDI7JyksIGZhbHNlLCAiZXZhbFRodW5rIiwKKyAg
ICAgICAgICAgICAgIGZ1bmN0aW9uKHYpIHsgZG9QYXNzRmFpbCh2ID09IDQyLCAiZXZhbFRodW5r
IE9LIik7IH0pCisKKy8vIE9ubHkgZW51bWVyYWJsZSBwcm9wZXJ0aWVzIHNob3VsZCBiZSBzZXJp
YWxpemVkLgordHJ5UG9zdE1lc3NhZ2UodGh1bmsoJ3ZhciBvID0ge3g6ImhlbGxvIn07IE9iamVj
dC5kZWZpbmVQcm9wZXJ0eShvLCAieSIsIHt2YWx1ZToiZ29vZGJ5ZSJ9KTsgcmV0dXJuIG87Jyks
IGZhbHNlLCAnKHt4OiJoZWxsbyJ9KScpOworCisvLyBJdCdzIHVuY2xlYXIgd2hhdCB3ZSBzaG91
bGQgZG8gaWYgYW4gYWNjZXNzb3IgbW9kaWZpZXMgYW4gb2JqZWN0IG91dCBmcm9tIHVuZGVyIHVz
CisvLyB3aGlsZSB3ZSdyZSBzZXJpYWxpemluZyBpdDsgdGhlIHN0YW5kYXJkIGRvZXMgbWFuZGF0
ZSBjZXJ0YWluIGFzcGVjdHMgYWJvdXQgZXZhbHVhdGlvbgorLy8gb3JkZXIsIHRob3VnaCwgaW5j
bHVkaW5nIHRoYXQgcHJvcGVydGllcyBtdXN0IGJlIHByb2Nlc3NlZCBpbiB0aGVpciBlbnVtZXJh
dGlvbiBvcmRlci4KK3RyeVBvc3RNZXNzYWdlKHRodW5rKAorICAgICAgICAndmFyIGEgPSBbMCwg
MSwgMl07ICcgKworICAgICAgICAndmFyIGIgPSB7IGdldCB4KCkgeyBhWzBdID0gNDA7IGFbMl0g
PSA0MjsgYS5wdXNoKDQzKTsgcmV0dXJuIDQxOyB9fTsgJyArCisgICAgICAgICdhWzFdID0gYjsg
JyArCisgICAgICAgICdyZXR1cm4gYTsnCisgICAgKSwgZmFsc2UsICJldmFsVGh1bmsiLCBmdW5j
dGlvbih2KSB7CisgICAgICAgIGRvUGFzc0ZhaWwodi5sZW5ndGggPT09IDMsICJsZW5ndGggY29y
cmVjdCIpOyAvLyB1bmRlZmluZWQKKyAgICAgICAgZG9QYXNzRmFpbCh2WzBdID09PSAwLCAiZXZh
bHVhdGlvbiBvcmRlciBPSyIpOyAvLyBtYW5kYXRvcnkKKyAgICAgICAgZG9QYXNzRmFpbCh2WzFd
LnggPT09IDQxLCAiZXZhbHVhdGlvbiBvcmRlciBPSy9hY2Nlc3NvciByZWFjaGVkIik7IC8vIG1h
bmRhdG9yeQorICAgICAgICBkb1Bhc3NGYWlsKHZbMl0gPT09IDQyLCAiZXZhbHVhdGlvbiBvcmRl
ciBPSyIpOyAvLyBtYW5kYXRvcnkKKyAgICB9KTsKKwordHJ5UG9zdE1lc3NhZ2UodGh1bmsoCisg
ICAgICAgICd2YXIgYSA9IFswLCAxLCAyXTsgJyArCisgICAgICAgICd2YXIgYiA9IHsgZ2V0IHgo
KSB7IGEucG9wKCk7IHJldHVybiA0MTsgfSB9OyAnICsKKyAgICAgICAgJ2FbMV0gPSBiOyAnICsK
KyAgICAgICAgJ3JldHVybiBhOycKKyAgICApLCBmYWxzZSwgImV2YWxUaHVuayIsIGZ1bmN0aW9u
KHYpIHsKKyAgICAgICAgZG9QYXNzRmFpbCh2Lmxlbmd0aCA9PT0gMywgImxlbmd0aCBjb3JyZWN0
Iik7IC8vIHVuZGVmaW5lZAorICAgICAgICBkb1Bhc3NGYWlsKHZbMF0gPT09IDAsICJpeCAwIE9L
Iik7IC8vIG1hbmRhdG9yeQorICAgICAgICBkb1Bhc3NGYWlsKHZbMV0ueCA9PT0gNDEsICJhY2Nl
c3NvciByZWFjaGVkIik7IC8vIG1hbmRhdG9yeQorICAgICAgICBkb1Bhc3NGYWlsKHZbMl0gPT09
IHVuZGVmaW5lZCwgIml4IDIgdW5kZWZpbmVkIik7IC8vIHVuZGVmaW5lZAorICAgIH0pOworCit0
cnlQb3N0TWVzc2FnZSh0aHVuaygKKyAgICAgICAgJ3ZhciBhID0gWzAsIDEsIDJdOyAnICsKKyAg
ICAgICAgJ3ZhciBiID0geyBnZXQgeCgpIHsgYS5wb3AoKTsgcmV0dXJuIDQxOyB9IH07ICcgKwor
ICAgICAgICAnYVsyXSA9IGI7ICcgKworICAgICAgICAncmV0dXJuIGE7JworICAgICksIGZhbHNl
LCAiZXZhbFRodW5rIiwgZnVuY3Rpb24odikgeworICAgICAgICBkb1Bhc3NGYWlsKHYubGVuZ3Ro
ID09PSAzLCAibGVuZ3RoIGNvcnJlY3QiKTsgLy8gdW5kZWZpbmVkCisgICAgICAgIGRvUGFzc0Zh
aWwodlswXSA9PT0gMCwgIml4IDAgT0siKTsgLy8gbWFuZGF0b3J5CisgICAgICAgIGRvUGFzc0Zh
aWwodlsxXSA9PT0gMSwgIml4IDEgT0siKTsgLy8gbWFuZGF0b3J5CisgICAgICAgIGRvUGFzc0Zh
aWwodlsyXS54ID09PSA0MSwgIml4IDIgT0siKTsgLy8gdW5kZWZpbmVkCisgICAgfSk7CisKKy8v
IE5vdyB3aXRoIG9iamVjdHMhIFRoaXMgaXMgYSBsaXR0bGUgbW9yZSB0cmlja3kgYmVjYXVzZSB0
aGUgc3RhbmRhcmQgZG9lcyBub3QKKy8vIGRlZmluZSBhbiBlbnVtZXJhdGlvbiBvcmRlci4KK3Ry
eVBvc3RNZXNzYWdlKHRodW5rKAorICAgICAgICAndmFyIGEgPSB7cDA6IDAsIHAxOiAxfTsgJyAr
CisgICAgICAgICdPYmplY3QuZGVmaW5lUHJvcGVydHkoYSwgInAyIiwge2dldDpmdW5jdGlvbigp
IHtkZWxldGUgYS5wMzsgcmV0dXJuIDQyOyB9LCBlbnVtZXJhYmxlOiB0cnVlLCBjb25maWd1cmFi
bGU6IHRydWV9KTsgJyArCisgICAgICAgICdPYmplY3QuZGVmaW5lUHJvcGVydHkoYSwgInAzIiwg
e2dldDpmdW5jdGlvbigpIHtkZWxldGUgYS5wMjsgcmV0dXJuIDQzOyB9LCBlbnVtZXJhYmxlOiB0
cnVlLCBjb25maWd1cmFibGU6IHRydWV9KTsgJyArCisgICAgICAgICdPYmplY3QuZGVmaW5lUHJv
cGVydHkoYSwgInA0Iiwge2dldDpmdW5jdGlvbigpIHsgYS5wNSA9IDQ1OyByZXR1cm4gNDQ7IH0s
IGVudW1lcmFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZX0pOyAnICsKKyAgICAgICAgJ3Jl
dHVybiBhOycKKyAgICApLCBmYWxzZSwgImV2YWxUaHVuayIsIGZ1bmN0aW9uKHYpIHsKKyAgICAg
ICAgZG9QYXNzRmFpbCh2LnAwID09PSAwICYmIHYucDEgPT09IDEsICJiYXNpYyBwcm9wZXJ0aWVz
IE9LIik7IC8vIG1hbmRhdG9yeQorICAgICAgICBkb1Bhc3NGYWlsKHYucDIgPT09IHVuZGVmaW5l
ZCAmJiB2LnAzICE9PSB1bmRlZmluZWQgfHwKKyAgICAgICAgICAgICAgICAgICB2LnAyICE9PSB1
bmRlZmluZWQgJiYgdi5wMyA9PT0gdW5kZWZpbmVkLCAib25lIGFjY2Vzc29yIHdhcyBydW4iKTsg
Ly8gbWFuZGF0b3J5CisgICAgICAgIGRvUGFzc0ZhaWwodi5wMiAhPT0gdW5kZWZpbmVkIHx8IE9i
amVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodiwgInAyIikgPT09IHVuZGVmaW5lZCwgInBy
b3BlcnR5IHdhcyByZW1vdmVkIik7IC8vIHVuZGVmaW5lZAorICAgICAgICBkb1Bhc3NGYWlsKHYu
cDMgIT09IHVuZGVmaW5lZCB8fCBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHYsICJw
MyIpID09PSB1bmRlZmluZWQsICJwcm9wZXJ0eSB3YXMgcmVtb3ZlZCIpOyAvLyB1bmRlZmluZWQK
KyAgICAgICAgZG9QYXNzRmFpbCh2LnA0ID09PSA0NCwgImFjY2Vzc29yIHdhcyBydW4iKTsgLy8g
bWFuZGF0b3J5CisgICAgICAgIGRvUGFzc0ZhaWwoT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3Jp
cHRvcih2LCAicDUiKSA9PT0gdW5kZWZpbmVkLCAiZHluYW1pYyBwcm9wZXJ0eSBub3Qgc2VudCIp
OyAvLyB1bmRlZmluZWQKKyAgICB9KTsKKworLy8gT2JqZWN0cyByZXR1cm5lZCBmcm9tIGFjY2Vz
c29ycyBzaG91bGQgc3RpbGwgYmUgY29hbGVzY2VkLgordHJ5UG9zdE1lc3NhZ2UodGh1bmsoCisg
ICAgICAgICd2YXIgb2JqYSA9IHtnZXQgcCgpIHsgcmV0dXJuIDQyOyB9fTsgJyArCisgICAgICAg
ICd2YXIgbXNnID0ge2dldCBhKCkgeyByZXR1cm4gb2JqYTsgfSwgYjogb2JqYX07ICcgKworICAg
ICAgICAncmV0dXJuIG1zZzsnCisgICAgKSwgZmFsc2UsICJldmFsVGh1bmsiLCBmdW5jdGlvbih2
KSB7CisgIAkgICAgLy8gSW50ZXJlc3RpbmdseSwgdGhlIHN0YW5kYXJkIGFkbWl0cyB0d28gYW5z
d2VycyBoZXJlIQorICAJICAgIGRvUGFzc0ZhaWwodi5hID09PSB2LmIsICJyZWZlcmVuY2UgZXF1
YWxpdHkgcHJlc2VydmVkIik7CisgIAkgICAgZG9QYXNzRmFpbCgodi5iLnAgPT09IDQyICYmIHYu
YS5wID09PSA0MikgfHwKKyAgCSAgICAgICAgICAgICAgICh2LmIucCA9PT0gbnVsbCAmJiB2LmEu
cCA9PT0gbnVsbCksICJhY2Nlc3NvcnMgdXNlZCIpOworICAgIH0pOwordHJ5UG9zdE1lc3NhZ2Uo
dGh1bmsoCisgICAgICAgICd2YXIgb2JqYSA9IHtnZXQgcCgpIHsgcmV0dXJuIDQyOyB9fTsgJyAr
CisgICAgICAgICd2YXIgbXNnID0ge2E6IG9iamEsIGdldCBiKCkgeyByZXR1cm4gb2JqYTsgfX07
ICcgKworICAgICAgICAncmV0dXJuIG1zZzsnCisgICAgKSwgZmFsc2UsICJldmFsVGh1bmsiLCBm
dW5jdGlvbih2KSB7CisgICAgICAgIC8vIEludGVyZXN0aW5nbHksIHRoZSBzdGFuZGFyZCBhZG1p
dHMgdHdvIGFuc3dlcnMgaGVyZSEKKyAgICAgICAgZG9QYXNzRmFpbCh2LmEgPT09IHYuYiwgInJl
ZmVyZW5jZSBlcXVhbGl0eSBwcmVzZXJ2ZWQgKG9wcG9zaXRlIG9yZGVyKSIpOworICAgICAgICBk
b1Bhc3NGYWlsKCh2LmIucCA9PT0gNDIgJiYgdi5hLnAgPT09IDQyKSB8fAorICAgICAgICAgICAg
ICAgICAgICh2LmIucCA9PT0gbnVsbCAmJiB2LmEucCA9PT0gbnVsbCksICJhY2Nlc3NvcnMgdXNl
ZCAob3Bwb3NpdGUgb3JkZXIpIik7CisgICAgfSk7CisvLyBXZSBzaG91bGQgbnVsbGlmeSB0aGUg
cmVzdWx0cyBmcm9tIGFjY2Vzc29ycyBtb3JlIHRoYW4gb25lIGxldmVsIGRlZXAsCisvLyBidXQg
bGVhdmUgb3RoZXIgZmllbGRzIHVudG91Y2hlZC4KK3RyeVBvc3RNZXNzYWdlKHRodW5rKAorICAg
ICAgICAndmFyIG9iamEgPSB7Z2V0IHAoKSB7IHJldHVybiA0MjsgfSwgcTogNDN9OyAnICsKKyAg
ICAgICAgJ3JldHVybiB7Z2V0IGEoKSB7IHJldHVybiBvYmphOyB9fTsnCisgICAgKSwgZmFsc2Us
ICJldmFsVGh1bmsiLCBmdW5jdGlvbih2KSB7CisgICAgICAgIGRvUGFzc0ZhaWwodi5hLnAgPT09
IG51bGwsICJhY2Nlc3NvciB2YWx1ZSB3YXMgbnVsbGlmaWVkIik7CisgICAgICAgIGRvUGFzc0Zh
aWwodi5hLnEgPT09IDQzLCAibm9uLWFjY2Vzc29yIHZhbHVlIHdhcyBub3QgbnVsbGlmaWVkIik7
CisgICAgfSk7Cit0cnlQb3N0TWVzc2FnZSh0aHVuaygKKyAgICAgICAgJ3ZhciBvYmpiID0ge2dl
dCByKCkgeyByZXR1cm4gNDQ7IH0sIHQ6IDQ1fTsgJyArCisgICAgICAgICd2YXIgb2JqYSA9IHtn
ZXQgcCgpIHsgcmV0dXJuIDQyOyB9LCBxOiA0Mywgczogb2JqYn07ICcgKworICAgICAgICAncmV0
dXJuIHtnZXQgYSgpIHsgcmV0dXJuIG9iamE7IH19OycKKyAgICApLCBmYWxzZSwgImV2YWxUaHVu
ayIsIGZ1bmN0aW9uKHYpIHsKKyAgICAgICAgZG9QYXNzRmFpbCh2LmEucCA9PT0gbnVsbCwgImFj
Y2Vzc29yIHZhbHVlIHdhcyBudWxsaWZpZWQiKTsKKyAgICAgICAgZG9QYXNzRmFpbCh2LmEucSA9
PT0gNDMsICJub24tYWNjZXNzb3IgdmFsdWUgd2FzIG5vdCBudWxsaWZpZWQiKTsKKyAgICAgICAg
ZG9QYXNzRmFpbCh2LnMgIT09IG51bGwsICJub24tYWNjZXNzb3IgdmFsdWUgd2FzIG5vdCBudWxs
aWZpZWQiKTsKKyAgICAgICAgZG9QYXNzRmFpbCh2LmEucy5yID09PSBudWxsLCAiYWNjZXNzb3Ig
dmFsdWUgd2FzIG51bGxpZmllZCIpOworICAgICAgICBkb1Bhc3NGYWlsKHYuYS5zLnQgPT09IDQ1
LCAibm9uLWFjY2Vzc29yIHZhbHVlIHdhcyBub3QgbnVsbGlmaWVkIik7CisgICAgfSk7Cit0cnlQ
b3N0TWVzc2FnZSh0aHVuaygKKyAgICAgICAgJ3ZhciBvYmpiID0ge2dldCByKCkgeyByZXR1cm4g
NDQ7IH0sIHQ6IDQ1fTsgJyArCisgICAgICAgICd2YXIgb2JqYSA9IHtnZXQgcCgpIHsgcmV0dXJu
IDQyOyB9LCBxOiA0MywgczogW29iamJdfTsgJyArCisgICAgICAgICdyZXR1cm4ge2dldCBjKCkg
eyByZXR1cm4gNDc7IH0sIGdldCBhKCkgeyByZXR1cm4gb2JqYTsgfSwgZ2V0IGIoKSB7IHJldHVy
biA0NjsgfSB9OycKKyAgICApLCBmYWxzZSwgImV2YWxUaHVuayIsIGZ1bmN0aW9uKHYpIHsKKyAg
ICAgICAgZG9QYXNzRmFpbCh2LmIgPT09IDQ2LCAiYWNjZXNzb3IgdmFsdWUgd2FzIG5vdCBudWxs
aWZpZWQiKTsKKyAgICAgICAgZG9QYXNzRmFpbCh2LmMgPT09IDQ3LCAiYWNjZXNzb3IgdmFsdWUg
d2FzIG5vdCBudWxsaWZpZWQiKTsKKyAgICAgICAgZG9QYXNzRmFpbCh2LmEucCA9PT0gbnVsbCwg
ImFjY2Vzc29yIHZhbHVlIHdhcyBudWxsaWZpZWQiKTsKKyAgICAgICAgZG9QYXNzRmFpbCh2LmEu
cSA9PT0gNDMsICJub24tYWNjZXNzb3IgdmFsdWUgd2FzIG5vdCBudWxsaWZpZWQiKTsKKyAgICAg
ICAgZG9QYXNzRmFpbCh2LmEucyAhPT0gbnVsbCwgIm5vbi1hY2Nlc3NvciB2YWx1ZSB3YXMgbm90
IG51bGxpZmllZCIpOworICAgICAgICBkb1Bhc3NGYWlsKHYuYS5zICE9PSB1bmRlZmluZWQsICJu
b24tYWNjZXNzb3IgdmFsdWUgaXMgZGVmaW5lZCIpOworICAgICAgICBkb1Bhc3NGYWlsKHYuYS5z
WzBdICE9PSBudWxsLCAibm9uLWFjY2Vzc29yIHZhbHVlIHdhcyBub3QgbnVsbGlmaWVkIik7Cisg
ICAgICAgIGRvUGFzc0ZhaWwodi5hLnNbMF0gIT09IHVuZGVmaW5lZCwgIm5vbi1hY2Nlc3NvciB2
YWx1ZSBpcyBkZWZpbmVkIik7CisgICAgICAgIGRvUGFzc0ZhaWwodi5hLnNbMF0uciA9PT0gbnVs
bCwgImFjY2Vzc29yIHZhbHVlIHdhcyBudWxsaWZpZWQiKTsKKyAgICAgICAgZG9QYXNzRmFpbCh2
LmEuc1swXS50ID09PSA0NSwgIm5vbi1hY2Nlc3NvciB2YWx1ZSB3YXMgbm90IG51bGxpZmllZCIp
OworICAgIH0pOworCisvLyBXZSBuZWVkIHRvIHBhc3Mgb3V0IHRoZSBleGNlcHRpb24gcmFpc2Vk
IGZyb20gaW50ZXJuYWwgYWNjZXNzb3JzLgordHJ5UG9zdE1lc3NhZ2UodGh1bmsoCisgICAgICAg
ICdyZXR1cm4ge2dldCBhKCkgeyB0aHJvdyAiYWNjZXNzb3ItZXhuIjsgfX07JworICAgICksIHRy
dWUsIG51bGwsICdhY2Nlc3Nvci1leG4nKTsKKy8vIFdlIHNob3VsZCBzdGlsbCByZXR1cm4gdGhl
IGV4Y2VwdGlvbiByYWlzZWQgZnJvbSBudWxsZWQtb3V0IGFjY2Vzc29ycy4KK3RyeVBvc3RNZXNz
YWdlKHRodW5rKAorICAgICAgICAndmFyIG9iamEgPSB7Z2V0IHAoKSB7IHRocm93ICJhY2Nlc3Nv
ci1leG4iOyB9fTsgJyArCisgICAgICAgICdyZXR1cm4ge2dldCBhKCkgeyByZXR1cm4gb2JqYTsg
fX07JworICAgICksIHRydWUsIG51bGwsICdhY2Nlc3Nvci1leG4nKTsKKy8vIFdlIHNob3VsZCBy
dW4gdGhlIGZpcnN0IG51bGxpZmllZCBhY2Nlc3NvciwgYnV0IG5vIG1vcmUuCit0cnlQb3N0TWVz
c2FnZSh0aHVuaygKKyAgICAgICAgJ3dpbmRvdy5iY2FsbGVkID0gdW5kZWZpbmVkOyAnICsKKyAg
ICAgICAgJ3dpbmRvdy5hY2FsbGVkID0gdW5kZWZpbmVkOyAnICsKKyAgICAgICAgJ3dpbmRvdy5w
Y2FsbGVkID0gdW5kZWZpbmVkOyAnICsKKyAgICAgICAgJ3ZhciBvYmpiID0ge2dldCBiKCkgeyB3
aW5kb3cuYmNhbGxlZCA9IHRydWU7IHJldHVybiA0MjsgfX07ICcgKworICAgICAgICAndmFyIG9i
amEgPSB7Z2V0IGEoKSB7IHdpbmRvdy5hY2FsbGVkID0gdHJ1ZTsgcmV0dXJuIG9iamI7IH19OyAn
ICsKKyAgICAgICAgJ3JldHVybiB7IGdldCBwKCkgeyB3aW5kb3cucGNhbGxlZCA9IHRydWU7IHJl
dHVybiBvYmphOyB9fTsnCisgICAgKSwgZmFsc2UsICJldmFsVGh1bmsiLCBmdW5jdGlvbih2KSB7
CisgICAgICAgIGRvUGFzc0ZhaWwodi5wLmEgPT09IG51bGwsICJhY2Nlc3NvciB2YWx1ZSB3YXMg
bnVsbGlmaWVkIik7CisgICAgICAgIGRvUGFzc0ZhaWwod2luZG93LnBjYWxsZWQgPT09IHRydWUs
ICJ3aW5kb3cucGNhbGxlZCA9PT0gdHJ1ZSIpOworICAgICAgICBkb1Bhc3NGYWlsKHdpbmRvdy5h
Y2FsbGVkID09PSB0cnVlLCAid2luZG93LmFjYWxsZWQgPT09IHRydWUiKTsKKyAgICAgICAgZG9Q
YXNzRmFpbCh3aW5kb3cuYmNhbGxlZCA9PT0gdW5kZWZpbmVkLCAid2luZG93LmJjYWxsZWQgPT09
IHVuZGVmaW5lZCIpOworICAgIH0pOworCisvLyBSZWZlcmVuY2UgZXF1YWxpdHkgYmV0d2VlbiBk
YXRlcyBtdXN0IGJlIG1haW50YWluZWQuCit0cnlQb3N0TWVzc2FnZSh0aHVuaygKKyAgICAgICAg
J3ZhciBkMSA9IG5ldyBEYXRlKDEsMiwzKTsgJyArCisgICAgICAgICd2YXIgZDIgPSBuZXcgRGF0
ZSgxLDIsMyk7ICcgKworICAgICAgICAncmV0dXJuIFtkMSxkMSxkMl07JworICAgICksIGZhbHNl
LCAiZXZhbFRodW5rIiwgZnVuY3Rpb24odikgeworICAgICAgICBkb1Bhc3NGYWlsKGVxdWFsKHZb
MF0sIG5ldyBEYXRlKDEsMiwzKSksICJEYXRlIHZhbHVlcyBjb3JyZWN0ICgwKSIpOworICAgICAg
ICBkb1Bhc3NGYWlsKGVxdWFsKHZbMF0sIHZbMl0pLCAiRGF0ZSB2YWx1ZXMgY29ycmVjdCAoMSki
KTsKKyAgICAgICAgZG9QYXNzRmFpbCh2WzBdID09PSB2WzFdLCAiUmVmZXJlbmNlcyB0byBkYXRl
cyBjb3JyZWN0ICgwKSIpOworICAgICAgICBkb1Bhc3NGYWlsKHZbMF0gIT09IHZbMl0sICJSZWZl
cmVuY2VzIHRvIGRhdGVzIGNvcnJlY3QgKDEpIik7CisgICAgfSk7CisKKy8vIFJlZmVyZW5jZSBl
cXVhbGl0eSBiZXR3ZWVuIHJlZ2V4cHMgbXVzdCBiZSBwcmVzZXJ2ZWQuCit0cnlQb3N0TWVzc2Fn
ZSh0aHVuaygKKyAgICAgICAgJ3ZhciByeDEgPSBuZXcgUmVnRXhwKCJmb28iKTsgJyArCisgICAg
ICAgICd2YXIgcngyID0gbmV3IFJlZ0V4cCgiZm9vIik7ICcgKworICAgICAgICAndmFyIHJ4MyA9
IG5ldyBSZWdFeHAoImZvbyIsICJnaW0iKTsgJyArCisgICAgICAgICdyeDMuZXhlYygiZm9vZm9v
Zm9vIik7ICcgKworICAgICAgICAnZG9QYXNzRmFpbChyeDMubGFzdEluZGV4ID09PSAzLCAibGFz
dEluZGV4IGluaXRpYWxseSBjb3JyZWN0OiB3YXMgIiArIHJ4My5sYXN0SW5kZXgpOyAnICsKKyAg
ICAgICAgJ3JldHVybiBbcngxLHJ4MSxyeDIscngzXTsnCisgICAgKSwgZmFsc2UsICJldmFsVGh1
bmsiLCBmdW5jdGlvbih2KSB7CisgICAgICAgIGRvUGFzc0ZhaWwodlswXS5zb3VyY2UgPT09ICJm
b28iLCAiUmVnZXhwIHZhbHVlIGNvcnJlY3QgKDApIik7CisgICAgICAgIGRvUGFzc0ZhaWwodlsw
XSA9PT0gdlsxXSwgIlJlZmVyZW5jZXMgdG8gcmVnZXhwcyBjb3JyZWN0ICgwKSIpOworICAgICAg
ICBkb1Bhc3NGYWlsKHZbMF0gIT09IHZbMl0sICJSZWZlcmVuY2VzIHRvIHJlZ2V4cHMgY29ycmVj
dCAoMSkiKTsKKyAgICAgICAgZG9QYXNzRmFpbCh2WzBdLmdsb2JhbCA9PT0gZmFsc2UsICJnbG9i
YWwgc2V0ICgwKSIpOworICAgICAgICBkb1Bhc3NGYWlsKHZbM10uZ2xvYmFsID09PSB0cnVlLCAi
Z2xvYmFsIHNldCAoMSkiKTsKKyAgICAgICAgZG9QYXNzRmFpbCh2WzBdLmlnbm9yZUNhc2UgPT09
IGZhbHNlLCAiaWdub3JlQ2FzZSBzZXQgKDApIik7CisgICAgICAgIGRvUGFzc0ZhaWwodlszXS5p
Z25vcmVDYXNlID09PSB0cnVlLCAiaWdub3JlQ2FzZSBzZXQgKDEpIik7CisgICAgICAgIGRvUGFz
c0ZhaWwodlswXS5tdWx0aWxpbmUgPT09IGZhbHNlLCAibXVsdGlsaW5lIHNldCAoMCkiKTsKKyAg
ICAgICAgZG9QYXNzRmFpbCh2WzNdLm11bHRpbGluZSA9PT0gdHJ1ZSwgIm11bHRpbGluZSBzZXQg
KDEpIik7CisgICAgICAgIGRvUGFzc0ZhaWwodlswXS5sYXN0SW5kZXggPT09IDAsICJsYXN0SW5k
ZXggY29ycmVjdCAoMCkiKTsKKyAgICAgICAgZG9QYXNzRmFpbCh2WzNdLmxhc3RJbmRleCA9PT0g
MCwgImxhc3RJbmRleCBjb3JyZWN0ICgxKSIpOworICAgIH0pOworCitpZiAod2luZG93LmV2ZW50
U2VuZGVyKSB7CisgICAgdHJ5UG9zdE1lc3NhZ2UodGh1bmsoCisgICAgICAgICd3aW5kb3cuZmls
ZUxpc3QgPSBmaWxlSW5wdXQuZmlsZXM7ICcgKworICAgICAgICAnd2luZG93LmZpbGUwID0gZmls
ZUxpc3RbMF07ICcgKworICAgICAgICAnd2luZG93LmZpbGUxID0gZmlsZUxpc3RbMV07ICcgKwor
ICAgICAgICAncmV0dXJuIHdpbmRvdy5maWxlTGlzdC5sZW5ndGgnKSwgZmFsc2UsIDIpOworICAg
IGRvUGFzc0ZhaWwod2luZG93LmZpbGVMaXN0WzBdID09PSB3aW5kb3cuZmlsZTAsICJzYW5pdHkg
b24gZmlsZSByZWZlcmVuY2UgZXF1YWxpdHkiKQorICAgIC8vIFRoZSBzdGFuZGFyZCBtYW5kYXRl
cyB0aGF0IHdlIGRvIF9ub3RfIG1haW50YWluIHJlZmVyZW5jZSBlcXVhbGl0eSBmb3IgZmlsZXMg
aW4gYSB0cmFuc2ZlcnJlZCBGaWxlTGlzdC4KKyAgICB0cnlQb3N0TWVzc2FnZSh0aHVuaygncmV0
dXJuIFt3aW5kb3cuZmlsZTAsIHdpbmRvdy5maWxlMF07JworICAgICAgICApLCBmYWxzZSwgImV2
YWxUaHVuayIsIGZ1bmN0aW9uKHYpIHsgZG9QYXNzRmFpbCh2WzBdID09PSB2WzFdLCAiZmlsZSBy
ZWZlcmVuY2VzIHRyYW5zZmVyIil9KTsKKyAgICB0cnlQb3N0TWVzc2FnZSh0aHVuaygncmV0dXJu
IFt3aW5kb3cuZmlsZUxpc3QsIHdpbmRvdy5maWxlMF07JworICAgICAgICApLCBmYWxzZSwgImV2
YWxUaHVuayIsIGZ1bmN0aW9uKHYpIHsgZG9QYXNzRmFpbCh2WzBdWzBdICE9PSB2WzFdLCAiRmls
ZUxpc3Qgc2hvdWxkIG5vdCByZXNwZWN0IHJlZmVyZW5jZSBlcXVhbGl0eSIpfSk7CisgICAgdHJ5
UG9zdE1lc3NhZ2UodGh1bmsoJ3JldHVybiBbd2luZG93LmZpbGUwLCB3aW5kb3cuZmlsZUxpc3Rd
OycKKyAgICAgICAgKSwgZmFsc2UsICJldmFsVGh1bmsiLCBmdW5jdGlvbih2KSB7IGRvUGFzc0Zh
aWwodlsxXVswXSAhPT0gdlswXSwgIkZpbGVMaXN0IHNob3VsZCBub3QgcmVzcGVjdCByZWZlcmVu
Y2UgZXF1YWxpdHkiKX0pOworICAgIHRyeVBvc3RNZXNzYWdlKHRodW5rKCdyZXR1cm4gW3dpbmRv
dy5maWxlTGlzdCwgd2luZG93LmZpbGVMaXN0XTsnCisgICAgICAgICksIGZhbHNlLCAiZXZhbFRo
dW5rIiwgZnVuY3Rpb24odikgeyBkb1Bhc3NGYWlsKHZbMF0gPT09IHZbMV0sICJGaWxlTGlzdCBy
ZXNwZWN0cyBzZWxmLXJlZmVyZW5jZSBlcXVhbGl0eSIpfSk7CisgICAgdHJ5UG9zdE1lc3NhZ2Uo
dGh1bmsoJ3JldHVybiBbd2luZG93LmZpbGVMaXN0LCB3aW5kb3cuZmlsZTAsIHdpbmRvdy5maWxl
MV0nCisgICAgICAgICksIGZhbHNlLCAiZXZhbFRodW5rIiwgZnVuY3Rpb24odikgeworICAgICAg
ICAgICAgZG9QYXNzRmFpbCh2WzBdLmxlbmd0aCA9PT0gd2luZG93LmZpbGVMaXN0Lmxlbmd0aCwg
IkZpbGVMaXN0IGxlbmd0aCBzZW50IGNvcnJlY3RseSIpOworICAgICAgICAgICAgZG9QYXNzRmFp
bCh2WzBdWzBdICE9PSB2WzFdLCAiRmlsZUxpc3Qgc2hvdWxkIG5vdCByZXNwZWN0IHJlZmVyZW5j
ZSBlcXVhbGl0eSAoMCkiKTsKKyAgICAgICAgICAgIGRvUGFzc0ZhaWwodlswXVsxXSAhPT0gdlsy
XSwgIkZpbGVMaXN0IHNob3VsZCBub3QgcmVzcGVjdCByZWZlcmVuY2UgZXF1YWxpdHkgKDEpIik7
CisgICAgICAgICAgICBkb1Bhc3NGYWlsKHZbMF1bMF0ubmFtZSA9PSB3aW5kb3cuZmlsZTAubmFt
ZSwgIkZpbGVMaXN0IHByZXNlcnZlcyBvcmRlciBhbmQgZGF0YSAobmFtZTApIik7CisgICAgICAg
ICAgICBkb1Bhc3NGYWlsKHZbMF1bMV0ubmFtZSA9PSB3aW5kb3cuZmlsZTEubmFtZSwgIkZpbGVM
aXN0IHByZXNlcnZlcyBvcmRlciBhbmQgZGF0YSAobmFtZTEpIik7CisgICAgICAgICAgICBkb1Bh
c3NGYWlsKGVxdWFsKHZbMF1bMF0ubGFzdE1vZGlmaWVkRGF0ZSwgd2luZG93LmZpbGUwLmxhc3RN
b2RpZmllZERhdGUpLCAiRmlsZUxpc3QgcHJlc2VydmVzIG9yZGVyIGFuZCBkYXRhIChkYXRlMCki
KTsKKyAgICAgICAgICAgIGRvUGFzc0ZhaWwoZXF1YWwodlswXVsxXS5sYXN0TW9kaWZpZWREYXRl
LCB3aW5kb3cuZmlsZTEubGFzdE1vZGlmaWVkRGF0ZSksICJGaWxlTGlzdCBwcmVzZXJ2ZXMgb3Jk
ZXIgYW5kIGRhdGEgKGRhdGUxKSIpOworICAgICAgICB9KTsKK30KIHRyeVBvc3RNZXNzYWdlKCci
ZG9uZSInKTsKIDwvc2NyaXB0PgogPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQKaW5kZXggNDQz
NTRmOS4uM2UwNDQ2YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dp
bmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9X
aW5kb3cvd2luZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0CkBAIC01MzAsNiArNTMwLDkgQEAg
d2luZG93LkRPTUV4Y2VwdGlvbi5TRUNVUklUWV9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNl
cHRpb24uU1lOVEFYX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5UWVBFX01JU01B
VENIX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5VUkxfTUlTTUFUQ0hfRVJSIFtu
dW1iZXJdCit3aW5kb3cuRE9NRXhjZXB0aW9uLlRJTUVPVVRfRVJSIFtudW1iZXJdCit3aW5kb3cu
RE9NRXhjZXB0aW9uLklOVkFMSURfTk9ERV9UWVBFX0VSUiBbbnVtYmVyXQord2luZG93LkRPTUV4
Y2VwdGlvbi5EQVRBX0NMT05FX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5WQUxJ
REFUSU9OX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5XUk9OR19ET0NVTUVOVF9F
UlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlIFtvYmplY3QgRE9NRXhj
ZXB0aW9uUHJvdG90eXBlXQpAQCAtNTUzLDYgKzU1Niw5IEBAIHdpbmRvdy5ET01FeGNlcHRpb24u
cHJvdG90eXBlLlNFQ1VSSVRZX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5wcm90
b3R5cGUuU1lOVEFYX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUu
VFlQRV9NSVNNQVRDSF9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBl
LlVSTF9NSVNNQVRDSF9FUlIgW251bWJlcl0KK3dpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBl
LlRJTUVPVVRfRVJSIFtudW1iZXJdCit3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5JTlZB
TElEX05PREVfVFlQRV9FUlIgW251bWJlcl0KK3dpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBl
LkRBVEFfQ0xPTkVfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5W
QUxJREFUSU9OX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuV1JP
TkdfRE9DVU1FTlRfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS50
b1N0cmluZyBbZnVuY3Rpb25dCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQKaW5kZXggNzE4YTdmNi4uYjYyMGFjNSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0Cisr
KyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dApA
QCAtMTY2MSw5ICsxNjYxLDYgQEAgQlVHQ1IyNDEyNiA6IGZhc3QvZG9tL0hUTUxJbnB1dEVsZW1l
bnQvc2l6ZS1hdHRyaWJ1dGUuaHRtbCA9IEZBSUwKIC8vIEZsYWt5IHRpbWVvdXRzIGZpcnN0IGFw
cGVhcmluZyBhdCByMjc3NjQgKHdlYmtpdCA0ODk0NykKIEJVR0NSOTc5OCBXSU4gOiBodHRwL3Rl
c3RzL2Nvb2tpZXMvbXVsdGlwbGUtY29va2llcy5odG1sID0gVElNRU9VVCBQQVNTCiAKLS8vIFdl
YktpdCB1cGRhdGU6IDQ5MjEzOjQ5MjIxCi1CVUdDUjI0MDYzIDogZmFzdC9kb20vV2luZG93L3dp
bmRvdy1wb3N0bWVzc2FnZS1jbG9uZS5odG1sID0gRkFJTAotCiAvLyBHb3Qgc2xvdyB3aXRoIFY4
IHVwZGF0ZSB0byAxLjMuMTUuIERlYnVnIGxvZ2dpbmcgcGVyaGFwcz8KIEJVR0NSMjQxODIgREVC
VUcgU0xPVyA6IGZhc3QvZm9ybXMvaW5wdXQtaW1wbGljaXQtbGVuZ3RoLWxpbWl0Lmh0bWwgPSBQ
QVNTCiBCVUdDUjI0MTgyIERFQlVHIFNMT1cgOiBmYXN0L2Zvcm1zL2lucHV0LW1heGxlbmd0aC5o
dG1sID0gUEFTUwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQtd2syL2Zhc3Qv
ZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9xdC13azIvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVk
LnR4dAppbmRleCBjODVjZjE5Li5kYjBhMDQyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9xdC13azIvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC13azIvZmFzdC9kb20vV2luZG93L3dpbmRv
dy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dApAQCAtNTI4LDYgKzUyOCw5IEBAIHdpbmRvdy5ET01F
eGNlcHRpb24uU0VDVVJJVFlfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLlNZTlRB
WF9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24uVFlQRV9NSVNNQVRDSF9FUlIgW251
bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24uVVJMX01JU01BVENIX0VSUiBbbnVtYmVyXQord2lu
ZG93LkRPTUV4Y2VwdGlvbi5USU1FT1VUX0VSUiBbbnVtYmVyXQord2luZG93LkRPTUV4Y2VwdGlv
bi5JTlZBTElEX05PREVfVFlQRV9FUlIgW251bWJlcl0KK3dpbmRvdy5ET01FeGNlcHRpb24uREFU
QV9DTE9ORV9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24uVkFMSURBVElPTl9FUlIg
W251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24uV1JPTkdfRE9DVU1FTlRfRVJSIFtudW1iZXJd
CiB3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZSBbb2JqZWN0IERPTUV4Y2VwdGlvblByb3Rv
dHlwZV0KQEAgLTU1MSw2ICs1NTQsOSBAQCB3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5T
RUNVUklUWV9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlLlNZTlRB
WF9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlLlRZUEVfTUlTTUFU
Q0hfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5VUkxfTUlTTUFU
Q0hfRVJSIFtudW1iZXJdCit3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5USU1FT1VUX0VS
UiBbbnVtYmVyXQord2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuSU5WQUxJRF9OT0RFX1RZ
UEVfRVJSIFtudW1iZXJdCit3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5EQVRBX0NMT05F
X0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuVkFMSURBVElPTl9F
UlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlLldST05HX0RPQ1VNRU5U
X0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUudG9TdHJpbmcgW2Z1
bmN0aW9uXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvZmFzdC9kb20vV2lu
ZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L3F0L2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQKaW5kZXgg
NTRjMTA3OS4uY2NmZDI0NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvZmFz
dC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9xdC9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMtZXhwZWN0
ZWQudHh0CkBAIC01MjgsNiArNTI4LDkgQEAgd2luZG93LkRPTUV4Y2VwdGlvbi5TRUNVUklUWV9F
UlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24uU1lOVEFYX0VSUiBbbnVtYmVyXQogd2lu
ZG93LkRPTUV4Y2VwdGlvbi5UWVBFX01JU01BVENIX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4
Y2VwdGlvbi5VUkxfTUlTTUFUQ0hfRVJSIFtudW1iZXJdCit3aW5kb3cuRE9NRXhjZXB0aW9uLlRJ
TUVPVVRfRVJSIFtudW1iZXJdCit3aW5kb3cuRE9NRXhjZXB0aW9uLklOVkFMSURfTk9ERV9UWVBF
X0VSUiBbbnVtYmVyXQord2luZG93LkRPTUV4Y2VwdGlvbi5EQVRBX0NMT05FX0VSUiBbbnVtYmVy
XQogd2luZG93LkRPTUV4Y2VwdGlvbi5WQUxJREFUSU9OX0VSUiBbbnVtYmVyXQogd2luZG93LkRP
TUV4Y2VwdGlvbi5XUk9OR19ET0NVTUVOVF9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRp
b24ucHJvdG90eXBlIFtvYmplY3QgRE9NRXhjZXB0aW9uUHJvdG90eXBlXQpAQCAtNTUxLDYgKzU1
NCw5IEBAIHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlLlNFQ1VSSVRZX0VSUiBbbnVtYmVy
XQogd2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuU1lOVEFYX0VSUiBbbnVtYmVyXQogd2lu
ZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuVFlQRV9NSVNNQVRDSF9FUlIgW251bWJlcl0KIHdp
bmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlLlVSTF9NSVNNQVRDSF9FUlIgW251bWJlcl0KK3dp
bmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlLlRJTUVPVVRfRVJSIFtudW1iZXJdCit3aW5kb3cu
RE9NRXhjZXB0aW9uLnByb3RvdHlwZS5JTlZBTElEX05PREVfVFlQRV9FUlIgW251bWJlcl0KK3dp
bmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlLkRBVEFfQ0xPTkVfRVJSIFtudW1iZXJdCiB3aW5k
b3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5WQUxJREFUSU9OX0VSUiBbbnVtYmVyXQogd2luZG93
LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuV1JPTkdfRE9DVU1FTlRfRVJSIFtudW1iZXJdCiB3aW5k
b3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS50b1N0cmluZyBbZnVuY3Rpb25dCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9vYmplY3RzdG9yZS1iYXNpY3MtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0c3RvcmUtYmFzaWNz
LWV4cGVjdGVkLnR4dAppbmRleCAyMzk0NzQwLi43YTM0YTFiIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9vYmplY3RzdG9yZS1iYXNpY3MtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0b3JlLWJhc2ljcy1leHBl
Y3RlZC50eHQKQEAgLTU2LDcgKzU2LDcgQEAgc3RvcmUuYWRkKHt4OiAnZm9vJ30sIHRlc3REYXRl
KQogVHJ5IHRvIGluc2VydCBhIHZhbHVlIG5vdCBoYW5kbGVkIGJ5IHN0cnVjdHVyZWQgY2xvbmU6
CiBzdG9yZS5hZGQoe3g6ICdiYXInLCB5OiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29s
ZScpfSwgJ2JhcicpCiBQQVNTIEV4Y2VwdGlvbiB0aHJvd24KLVBBU1MgY29kZSBpcyBET01FeGNl
cHRpb24uTk9UX1NVUFBPUlRFRF9FUlIKK1BBU1MgY29kZSBpcyBET01FeGNlcHRpb24uREFUQV9D
TE9ORV9FUlIKIFRyeSB0byBpbnNlcnQgZGF0YSB3aGVyZSBrZXkgcGF0aCB5aWVsZHMgYSBEYXRl
IGtleToKIHN0b3JlLmFkZCh7eDogdGVzdERhdGVCLCB5OiAndmFsdWUnfSwgJ2tleScpCiBhZGRT
dWNjZXNzKCk6CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9vYmpl
Y3RzdG9yZS1iYXNpY3MuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29iamVj
dHN0b3JlLWJhc2ljcy5odG1sCmluZGV4IGIyZTczZWUuLmI3Njk1ODUgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0b3JlLWJhc2ljcy5odG1sCisrKyBi
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0b3JlLWJhc2ljcy5odG1sCkBA
IC0xNTQsNyArMTU0LDcgQEAgZnVuY3Rpb24gYWRkRGF0ZVN1Y2Nlc3MoKQogICAgIH0gY2F0Y2gg
KGVycikgewogICAgICAgICB0ZXN0UGFzc2VkKCJFeGNlcHRpb24gdGhyb3duIik7CiAgICAgICAg
IGNvZGUgPSBlcnIuY29kZTsKLSAgICAgICAgc2hvdWxkQmUoImNvZGUiLCAiRE9NRXhjZXB0aW9u
Lk5PVF9TVVBQT1JURURfRVJSIik7CisgICAgICAgIHNob3VsZEJlKCJjb2RlIiwgIkRPTUV4Y2Vw
dGlvbi5EQVRBX0NMT05FX0VSUiIpOwogICAgIH0KIAogICAgIGRlYnVnKCJUcnkgdG8gaW5zZXJ0
IGRhdGEgd2hlcmUga2V5IHBhdGggeWllbGRzIGEgRGF0ZSBrZXk6Iik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcAppbmRleCBj
YjQ0ZjAyLi5kY2QzZjZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9T
ZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4
L1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKQEAgLTMxLDMyICszMSwyMTcgQEAKICNpbmNsdWRl
ICJjb25maWcuaCIKICNpbmNsdWRlICJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKIAorI2luY2x1
ZGUgIkFycmF5QnVmZmVyLmgiCisjaW5jbHVkZSAiQXJyYXlCdWZmZXJWaWV3LmgiCiAjaW5jbHVk
ZSAiQmxvYi5oIgogI2luY2x1ZGUgIkJ5dGVBcnJheS5oIgogI2luY2x1ZGUgIkNhbnZhc1BpeGVs
QXJyYXkuaCIKKyNpbmNsdWRlICJEYXRhVmlldy5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUu
aCIKICNpbmNsdWRlICJGaWxlLmgiCiAjaW5jbHVkZSAiRmlsZUxpc3QuaCIKKyNpbmNsdWRlICJG
bG9hdDMyQXJyYXkuaCIKKyNpbmNsdWRlICJGbG9hdDY0QXJyYXkuaCIKICNpbmNsdWRlICJJbWFn
ZURhdGEuaCIKKyNpbmNsdWRlICJJbnQxNkFycmF5LmgiCisjaW5jbHVkZSAiSW50MzJBcnJheS5o
IgorI2luY2x1ZGUgIkludDhBcnJheS5oIgogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgorI2lu
Y2x1ZGUgIlVpbnQxNkFycmF5LmgiCisjaW5jbHVkZSAiVWludDMyQXJyYXkuaCIKKyNpbmNsdWRl
ICJVaW50OEFycmF5LmgiCisjaW5jbHVkZSAiVjhBcnJheUJ1ZmZlci5oIgorI2luY2x1ZGUgIlY4
QXJyYXlCdWZmZXJWaWV3LmgiCiAjaW5jbHVkZSAiVjhCaW5kaW5nLmgiCiAjaW5jbHVkZSAiVjhC
bG9iLmgiCisjaW5jbHVkZSAiVjhEYXRhVmlldy5oIgogI2luY2x1ZGUgIlY4RmlsZS5oIgogI2lu
Y2x1ZGUgIlY4RmlsZUxpc3QuaCIKKyNpbmNsdWRlICJWOEZsb2F0MzJBcnJheS5oIgorI2luY2x1
ZGUgIlY4RmxvYXQ2NEFycmF5LmgiCiAjaW5jbHVkZSAiVjhJbWFnZURhdGEuaCIKKyNpbmNsdWRl
ICJWOEludDE2QXJyYXkuaCIKKyNpbmNsdWRlICJWOEludDMyQXJyYXkuaCIKKyNpbmNsdWRlICJW
OEludDhBcnJheS5oIgogI2luY2x1ZGUgIlY4UHJveHkuaCIKKyNpbmNsdWRlICJWOFVpbnQxNkFy
cmF5LmgiCisjaW5jbHVkZSAiVjhVaW50MzJBcnJheS5oIgorI2luY2x1ZGUgIlY4VWludDhBcnJh
eS5oIgogI2luY2x1ZGUgIlY4VXRpbGl0aWVzLmgiCiAKICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9u
cy5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5o
PgogCisvLyAjZGVmaW5lIFNTVl9ERUJVRworLy8gI2RlZmluZSBTU1ZfVEVTVF9HQworI2RlZmlu
ZSBTU1ZfRElSRUNUX01BUAorLy8gI2RlZmluZSBTU1ZfSU5ESVJFQ1RfTUFQCisKIC8vIEZJWE1F
OiBjb25zaWRlciBjcmFzaGluZyBpbiBkZWJ1ZyBtb2RlIG9uIGRlc2VyaWFsaXphdGlvbiBlcnJv
cnMKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBuYW1lc3BhY2UgewogCisjaWZkZWYgU1NWX0RJ
UkVDVF9NQVAKKy8vIEZJWE1FOiBmb3IgaXNvbGF0ZXMuCitzdGF0aWMgdWludDMyX3QgbGFzdEdj
Q3ljbGVOdW1iZXIgPSAwOworc3RhdGljIGJvb2wgcmVnaXN0ZXJlZEdjQ3ljbGVDb3VudGVyID0g
ZmFsc2U7CitzdGF0aWMgdm9pZCBnY0N5Y2xlQ291bnRlcih2ODo6R0NUeXBlIHR5cGUsIHY4OjpH
Q0NhbGxiYWNrRmxhZ3MgZmxhZ3MpCit7CisgICAgKytsYXN0R2NDeWNsZU51bWJlcjsKK30KK3N0
YXRpYyB2b2lkIGVuc3VyZUdjQ3ljbGVDb3VudGVyUmVnaXN0ZXJlZCgpCit7CisgICAgaWYgKCFy
ZWdpc3RlcmVkR2NDeWNsZUNvdW50ZXIpIHsKKyAgICAgICAgdjg6OlY4OjpBZGRHQ0VwaWxvZ3Vl
Q2FsbGJhY2soZ2NDeWNsZUNvdW50ZXIpOworICAgICAgICByZWdpc3RlcmVkR2NDeWNsZUNvdW50
ZXIgPSB0cnVlOworICAgIH0KK30KK3N0YXRpYyB1aW50MzJfdCBnZXRDdXJyZW50R2NDeWNsZU51
bWJlcigpCit7CisgICAgcmV0dXJuIGxhc3RHY0N5Y2xlTnVtYmVyOworfQorCit0ZW1wbGF0ZTx0
eXBlbmFtZSBHY09iamVjdCwgdHlwZW5hbWUgVD4KK2NsYXNzIFY4R2NIYW5kbGVNYXAgeworcHJp
dmF0ZToKKyAgICB0eXBlZGVmIFdURjo6SGFzaE1hcDxHY09iamVjdCosIFQ+IFJhd1RvVDsKKyAg
ICB0eXBlZGVmIFdURjo6VmVjdG9yPHY4OjpIYW5kbGU8R2NPYmplY3Q+ID4gSGFuZGxlczsKKyAg
ICB0eXBlZGVmIFdURjo6VmVjdG9yPEdjT2JqZWN0Kj4gUmF3UG9pbnRlcnM7CisgICAgUmF3VG9U
IG1fbWFwOworICAgIEhhbmRsZXMgbV9oYW5kbGVzOworICAgIFJhd1BvaW50ZXJzIG1fcmF3UG9p
bnRlcnM7CisgICAgdWludDMyX3QgbV9sYXN0R2NDeWNsZVNlZW47CisKKyAgICB2b2lkIHJlaGFz
aCgpCisgICAgeworI2lmZGVmIFNTVl9URVNUX0dDCisgICAgICAgIC8vIEFsd2F5cyByZWhhc2gu
CisgICAgICAgIHY4OjpWODo6TG93TWVtb3J5Tm90aWZpY2F0aW9uKCk7CisjZW5kaWYKKyAgICAg
ICAgaWYgKG1fbGFzdEdjQ3ljbGVTZWVuID09IGdldEN1cnJlbnRHY0N5Y2xlTnVtYmVyKCkpCisg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgIEFTU0VSVChtX2hhbmRsZXMuc2l6ZSgpID09IG1f
cmF3UG9pbnRlcnMuc2l6ZSgpKTsKKyAgICAgICAgV1RGOjpIYXNoTWFwPEdjT2JqZWN0KiwgVD4g
bmV3TWFwOworICAgICAgICBSYXdQb2ludGVycyBuZXdSYXdQb2ludGVyczsKKyAgICAgICAgbmV3
UmF3UG9pbnRlcnMucmVzaXplKG1fcmF3UG9pbnRlcnMuc2l6ZSgpKTsKKyAgICAgICAgZm9yIChz
aXplX3QgaSA9IDA7IGkgPCBtX2hhbmRsZXMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAgIEdj
T2JqZWN0KiBvbGRPYmplY3QgPSBtX3Jhd1BvaW50ZXJzW2ldOworICAgICAgICAgICAgR2NPYmpl
Y3QqIG5ld09iamVjdCA9IHVud3JhcChtX2hhbmRsZXNbaV0pOworICAgICAgICAgICAgbmV3TWFw
LmFkZChuZXdPYmplY3QsIG1fbWFwLmdldChvbGRPYmplY3QpKTsKKyAgICAgICAgICAgIG5ld1Jh
d1BvaW50ZXJzW2ldID0gbmV3T2JqZWN0OworI2lmZGVmIFNTVl9ERUJVRworICAgICAgICAgICAg
cHJpbnRmKCJSRUhBU0g6ICVwIGhhcyBiZWNvbWUgJXBcbiIsIG9sZE9iamVjdCwgbmV3T2JqZWN0
KTsKKyNlbmRpZgorICAgICAgICB9CisgICAgICAgIG1fbWFwLnN3YXAobmV3TWFwKTsKKyAgICAg
ICAgbV9yYXdQb2ludGVycy5zd2FwKG5ld1Jhd1BvaW50ZXJzKTsKKyAgICAgICAgbV9sYXN0R2ND
eWNsZVNlZW4gPSBnZXRDdXJyZW50R2NDeWNsZU51bWJlcigpOworICAgIH0KKworICAgIEdjT2Jq
ZWN0KiB1bndyYXAoY29uc3Qgdjg6OkhhbmRsZTxHY09iamVjdD4mIGhhbmRsZSkKKyAgICB7Cisg
ICAgICAgIHJldHVybiAqcmVpbnRlcnByZXRfY2FzdDxHY09iamVjdCoqPihjb25zdF9jYXN0PEdj
T2JqZWN0Kj4oKmhhbmRsZSkpOworICAgIH0KKworcHVibGljOgorICAgIFY4R2NIYW5kbGVNYXAo
KQorICAgIHsKKyAgICAgICAgZW5zdXJlR2NDeWNsZUNvdW50ZXJSZWdpc3RlcmVkKCk7CisgICAg
ICAgIG1fbGFzdEdjQ3ljbGVTZWVuID0gZ2V0Q3VycmVudEdjQ3ljbGVOdW1iZXIoKTsKKyAgICB9
CisKKyAgICBib29sIGNvbnRhaW5zKGNvbnN0IHY4OjpIYW5kbGU8R2NPYmplY3Q+JiBoYW5kbGUp
CisgICAgeworICAgICAgICByZWhhc2goKTsKKyAgICAgICAgcmV0dXJuIG1fbWFwLmNvbnRhaW5z
KHVud3JhcChoYW5kbGUpKTsKKyAgICB9CisKKyAgICBib29sIHRyeUdldChjb25zdCB2ODo6SGFu
ZGxlPEdjT2JqZWN0PiYgaGFuZGxlLCBUJiB2YWx1ZU91dCkKKyAgICB7CisgICAgICAgIHJlaGFz
aCgpOworICAgICAgICBpZiAobV9tYXAuY29udGFpbnModW53cmFwKGhhbmRsZSkpKSB7CisgICAg
ICAgICAgICB2YWx1ZU91dCA9IG1fbWFwLmdldCh1bndyYXAoaGFuZGxlKSk7CisjaWZkZWYgU1NW
X0RFQlVHCisgICAgICAgICAgICBwcmludGYoIm1hcHBlZCAlcCB0byAlZFxuIiwgdW53cmFwKGhh
bmRsZSksIHZhbHVlT3V0KTsKKyNlbmRpZgorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAg
ICAgIH0KKyNpZmRlZiBTU1ZfREVCVUcKKyAgICAgICAgcHJpbnRmKCJubyBtYXBwaW5nIGZvciAl
cFxuIiwgdW53cmFwKGhhbmRsZSkpOworI2VuZGlmCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICB9CisKKyAgICB2b2lkIHNldChjb25zdCB2ODo6SGFuZGxlPEdjT2JqZWN0PiYgaGFuZGxlLCBj
b25zdCBUJiB2YWx1ZSkKKyAgICB7CisgICAgICAgIHJlaGFzaCgpOworI2lmZGVmIFNTVl9ERUJV
RworICAgICAgICBwcmludGYoIm1hcHBpbmcgJXAgdG8gJWRcbiIsIHVud3JhcChoYW5kbGUpLCB2
YWx1ZSk7CisjZW5kaWYKKyAgICAgICAgbV9tYXAuc2V0KHVud3JhcChoYW5kbGUpLCB2YWx1ZSk7
CisgICAgICAgIG1faGFuZGxlcy5hcHBlbmQoaGFuZGxlKTsKKyAgICAgICAgbV9yYXdQb2ludGVy
cy5hcHBlbmQodW53cmFwKGhhbmRsZSkpOworICAgIH0KKworICAgIHVpbnQzMl90IHNpemUoKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIG1fbWFwLnNpemUoKTsKKyAgICB9Cit9OworI2VuZGlmIC8v
IGRlZmluZWQoU1NWX0RJUkVDVF9NQVApCisKKyNpZmRlZiBTU1ZfSU5ESVJFQ1RfTUFQCisvLyB2
ODo6SGFuZGxlJ3Mgb3BlcmF0b3IqIHJldHVybnMgYSBwdHIgdG8gdGhlIHVuZGVybHlpbmcgaGFu
ZGxlLCBub3QgdGhlIHVuZGVybHlpbmcgb2JqZWN0LgordGVtcGxhdGU8dHlwZW5hbWUgR2NPYmpl
Y3QsIHR5cGVuYW1lIFQ+CitjbGFzcyBWOEdjSGFuZGxlTWFwIHsKK3ByaXZhdGU6CisgICAgdGVt
cGxhdGU8dHlwZW5hbWUgRz4KKyAgICBzdHJ1Y3QgVjhIYW5kbGVQdHJIYXNoIHsKKyAgICAgICAg
c3RhdGljIHVuc2lnbmVkIGhhc2goY29uc3QgRyoga2V5KQorICAgICAgICB7CisgICAgICAgICAg
ICB2ODo6SGFuZGxlPEc+IG9iakhhbmRsZShjb25zdF9jYXN0PEcqPihrZXkpKTsKKyAgICAgICAg
ICAgIHJldHVybiBzdGF0aWNfY2FzdDx1bnNpZ25lZD4ob2JqSGFuZGxlLT5HZXRJZGVudGl0eUhh
c2goKSk7CisgICAgICAgIH0KKyAgICAgICAgc3RhdGljIGJvb2wgZXF1YWwoY29uc3QgRyogYSwg
Y29uc3QgRyogYikKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIHY4OjpIYW5kbGU8Rz4o
Y29uc3RfY2FzdDxHKj4oYSkpID09IHY4OjpIYW5kbGU8Rz4oY29uc3RfY2FzdDxHKj4oYikpOwor
ICAgICAgICB9CisgICAgICAgIHN0YXRpYyBjb25zdCBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5
T3JEZWxldGVkID0gZmFsc2U7CisgICAgfTsKKworICAgIHR5cGVkZWYgV1RGOjpIYXNoTWFwPEdj
T2JqZWN0KiwgVCwgVjhIYW5kbGVQdHJIYXNoPEdjT2JqZWN0PiA+IEhhbmRsZVRvVDsKKyAgICBI
YW5kbGVUb1QgbV9tYXA7CisKK3B1YmxpYzoKKyAgICBib29sIGNvbnRhaW5zKGNvbnN0IHY4OjpI
YW5kbGU8R2NPYmplY3Q+JiBoYW5kbGUpCisgICAgeworICAgICAgICByZXR1cm4gbV9tYXAuY29u
dGFpbnMoKmhhbmRsZSk7CisgICAgfQorCisgICAgYm9vbCB0cnlHZXQoY29uc3Qgdjg6OkhhbmRs
ZTxHY09iamVjdD4mIGhhbmRsZSwgVCYgdmFsdWVPdXQpCisgICAgeworICAgICAgICBpZiAobV9t
YXAuY29udGFpbnMoKmhhbmRsZSkpIHsKKyAgICAgICAgICAgIHZhbHVlT3V0ID0gbV9tYXAuZ2V0
KCpoYW5kbGUpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHZvaWQgc2V0KGNvbnN0IHY4OjpIYW5kbGU8R2NP
YmplY3Q+JiBoYW5kbGUsIGNvbnN0IFQmIHZhbHVlKQorICAgIHsKKyAgICAgICAgbV9tYXAuc2V0
KCpoYW5kbGUsIHZhbHVlKTsKKyAgICB9CisKKyAgICB1aW50MzJfdCBzaXplKCkKKyAgICB7Cisg
ICAgICAgIHJldHVybiBtX21hcC5zaXplKCk7CisgICAgfQorfTsKKyNlbmRpZiAvLyBkZWZpbmVk
KFNTVl9JTkRJUkVDVF9NQVApCisKIHR5cGVkZWYgVUNoYXIgQnVmZmVyVmFsdWVUeXBlOwogCiAv
LyBTZXJpYWxpemF0aW9uIGZvcm1hdCBpcyBhIHNlcXVlbmNlIG9mICh0YWcsIG9wdGlvbmFsIGRh
dGEpCkBAIC04MSw2ICsyNjYsMjQgQEAgZW51bSBTZXJpYWxpemF0aW9uVGFnIHsKICAgICBPYmpl
Y3RUYWcgPSAneycsCiAgICAgU3BhcnNlQXJyYXlUYWcgPSAnQCcsCiAgICAgUmVnRXhwVGFnID0g
J1InLAorICAgIEFycmF5QnVmZmVyVGFnID0gJ0InLAorICAgIEFycmF5QnVmZmVyVmlld1RhZyA9
ICdWJywKKyAgICBPYmplY3RSZWZlcmVuY2VUYWcgPSAnXicsCisgICAgR2VuZXJhdGVGcmVzaE9i
amVjdFRhZyA9ICdvJywKKyAgICBHZW5lcmF0ZUZyZXNoQXJyYXlUYWcgPSAnYScsCisgICAgQ2hl
Y2tSZWZUYWcgPSAnPycKK307CisKK2VudW0gQXJyYXlCdWZmZXJWaWV3U3ViVGFnIHsKKyAgICBC
eXRlQXJyYXlUYWcgPSAnYicsCisgICAgVW5zaWduZWRCeXRlQXJyYXlUYWcgPSAnQicsCisgICAg
U2hvcnRBcnJheVRhZyA9ICd3JywKKyAgICBVbnNpZ25lZFNob3J0QXJyYXlUYWcgPSAnVycsCisg
ICAgSW50QXJyYXlUYWcgPSAnZCcsCisgICAgVW5zaWduZWRJbnRBcnJheVRhZyA9ICdEJywKKyAg
ICBGbG9hdEFycmF5VGFnID0gJ2YnLAorICAgIERvdWJsZUFycmF5VGFnID0gJ0YnLAorICAgIERh
dGFWaWV3VGFnID0gJz8nCiB9OwogCiBzdGF0aWMgYm9vbCBzaG91bGRDaGVja0ZvckN5Y2xlcyhp
bnQgZGVwdGgpCkBAIC0yMTEsNiArNDE0LDQwIEBAIHB1YmxpYzoKICAgICAgICAgfQogICAgIH0K
IAorICAgIHZvaWQgd3JpdGVBcnJheUJ1ZmZlcihjb25zdCBBcnJheUJ1ZmZlciYgYXJyYXlCdWZm
ZXIpCisgICAgeworICAgICAgICBhcHBlbmQoQXJyYXlCdWZmZXJUYWcpOworICAgICAgICBkb1dy
aXRlQXJyYXlCdWZmZXIoYXJyYXlCdWZmZXIpOworICAgIH0KKworICAgIHZvaWQgd3JpdGVBcnJh
eUJ1ZmZlclZpZXcoY29uc3QgQXJyYXlCdWZmZXJWaWV3JiBhcnJheUJ1ZmZlclZpZXcpCisgICAg
eworICAgICAgICBhcHBlbmQoQXJyYXlCdWZmZXJWaWV3VGFnKTsKKyAgICAgICAgY29uc3QgQXJy
YXlCdWZmZXImIGFycmF5QnVmZmVyID0gKmFycmF5QnVmZmVyVmlldy5idWZmZXIoKTsKKyAgICAg
ICAgQVNTRVJUKHN0YXRpY19jYXN0PGNvbnN0IHVpbnQ4X3QqPihhcnJheUJ1ZmZlci5kYXRhKCkp
ICsgYXJyYXlCdWZmZXJWaWV3LmJ5dGVPZmZzZXQoKSA9PQorICAgICAgICAgICAgICAgc3RhdGlj
X2Nhc3Q8Y29uc3QgdWludDhfdCo+KGFycmF5QnVmZmVyVmlldy5iYXNlQWRkcmVzcygpKSk7Cisg
ICAgICAgIGlmIChhcnJheUJ1ZmZlclZpZXcuaXNCeXRlQXJyYXkoKSkKKyAgICAgICAgICAgIGFw
cGVuZChCeXRlQXJyYXlUYWcpOworICAgICAgICBlbHNlIGlmIChhcnJheUJ1ZmZlclZpZXcuaXNV
bnNpZ25lZEJ5dGVBcnJheSgpKQorICAgICAgICAgICAgYXBwZW5kKFVuc2lnbmVkQnl0ZUFycmF5
VGFnKTsKKyAgICAgICAgZWxzZSBpZiAoYXJyYXlCdWZmZXJWaWV3LmlzU2hvcnRBcnJheSgpKQor
ICAgICAgICAgICAgYXBwZW5kKFNob3J0QXJyYXlUYWcpOworICAgICAgICBlbHNlIGlmIChhcnJh
eUJ1ZmZlclZpZXcuaXNVbnNpZ25lZFNob3J0QXJyYXkoKSkKKyAgICAgICAgICAgIGFwcGVuZChV
bnNpZ25lZFNob3J0QXJyYXlUYWcpOworICAgICAgICBlbHNlIGlmIChhcnJheUJ1ZmZlclZpZXcu
aXNJbnRBcnJheSgpKQorICAgICAgICAgICAgYXBwZW5kKEludEFycmF5VGFnKTsKKyAgICAgICAg
ZWxzZSBpZiAoYXJyYXlCdWZmZXJWaWV3LmlzVW5zaWduZWRJbnRBcnJheSgpKQorICAgICAgICAg
ICAgYXBwZW5kKFVuc2lnbmVkSW50QXJyYXlUYWcpOworICAgICAgICBlbHNlIGlmIChhcnJheUJ1
ZmZlclZpZXcuaXNGbG9hdEFycmF5KCkpCisgICAgICAgICAgICBhcHBlbmQoRmxvYXRBcnJheVRh
Zyk7CisgICAgICAgIGVsc2UgaWYgKGFycmF5QnVmZmVyVmlldy5pc0RvdWJsZUFycmF5KCkpCisg
ICAgICAgICAgICBhcHBlbmQoRG91YmxlQXJyYXlUYWcpOworICAgICAgICBlbHNlIGlmIChhcnJh
eUJ1ZmZlclZpZXcuaXNEYXRhVmlldygpKQorICAgICAgICAgICAgYXBwZW5kKERhdGFWaWV3VGFn
KTsKKyAgICAgICAgZG9Xcml0ZVVpbnQzMihhcnJheUJ1ZmZlclZpZXcuYnl0ZU9mZnNldCgpKTsK
KyAgICAgICAgZG9Xcml0ZVVpbnQzMihhcnJheUJ1ZmZlclZpZXcuYnl0ZUxlbmd0aCgpKTsKKyAg
ICB9CisKICAgICB2b2lkIHdyaXRlSW1hZ2VEYXRhKHVpbnQzMl90IHdpZHRoLCB1aW50MzJfdCBo
ZWlnaHQsIGNvbnN0IHVpbnQ4X3QqIHBpeGVsRGF0YSwgdWludDMyX3QgcGl4ZWxEYXRhTGVuZ3Ro
KQogICAgIHsKICAgICAgICAgYXBwZW5kKEltYWdlRGF0YVRhZyk7CkBAIC0yMzQsNiArNDcxLDEy
IEBAIHB1YmxpYzoKICAgICAgICAgZG9Xcml0ZVVpbnQzMihsZW5ndGgpOwogICAgIH0KIAorICAg
IHZvaWQgd3JpdGVPYmplY3RPZmZzZXQodWludDMyX3Qgb2Zmc2V0KQorICAgIHsKKyAgICAgICAg
YXBwZW5kKE9iamVjdFJlZmVyZW5jZVRhZyk7CisgICAgICAgIGRvV3JpdGVVaW50MzIob2Zmc2V0
KTsKKyAgICB9CisKICAgICB2b2lkIHdyaXRlT2JqZWN0KHVpbnQzMl90IG51bVByb3BlcnRpZXMp
CiAgICAgewogICAgICAgICBhcHBlbmQoT2JqZWN0VGFnKTsKQEAgLTI1Myw3ICs0OTYsMzEgQEAg
cHVibGljOgogICAgICAgICByZXR1cm4gbV9idWZmZXI7CiAgICAgfQogCisgICAgdm9pZCB3cml0
ZUNoZWNrUmVmKHVpbnQzMl90IG51bWJlck9mUmVmcykKKyAgICB7CisgICAgICAgIGFwcGVuZChD
aGVja1JlZlRhZyk7CisgICAgICAgIGRvV3JpdGVVaW50MzIobnVtYmVyT2ZSZWZzKTsKKyAgICB9
CisKKyAgICB2b2lkIHdyaXRlR2VuZXJhdGVGcmVzaE9iamVjdCgpCisgICAgeworICAgICAgICBh
cHBlbmQoR2VuZXJhdGVGcmVzaE9iamVjdFRhZyk7CisgICAgfQorCisgICAgdm9pZCB3cml0ZUdl
bmVyYXRlRnJlc2hBcnJheSh1aW50MzJfdCBsZW5ndGgpCisgICAgeworICAgICAgICBhcHBlbmQo
R2VuZXJhdGVGcmVzaEFycmF5VGFnKTsKKyAgICAgICAgZG9Xcml0ZVVpbnQzMihsZW5ndGgpOwor
ICAgIH0KKwogcHJpdmF0ZToKKyAgICB2b2lkIGRvV3JpdGVBcnJheUJ1ZmZlcihjb25zdCBBcnJh
eUJ1ZmZlciYgYXJyYXlCdWZmZXIpCisgICAgeworICAgICAgICB1aW50MzJfdCBieXRlTGVuZ3Ro
ID0gYXJyYXlCdWZmZXIuYnl0ZUxlbmd0aCgpOworICAgICAgICBkb1dyaXRlVWludDMyKGJ5dGVM
ZW5ndGgpOworICAgICAgICBhcHBlbmQoc3RhdGljX2Nhc3Q8Y29uc3QgdWludDhfdCo+KGFycmF5
QnVmZmVyLmRhdGEoKSksIGJ5dGVMZW5ndGgpOworICAgIH0KKwogICAgIHZvaWQgZG9Xcml0ZVN0
cmluZyhjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3RoKQogICAgIHsKICAgICAgICAgZG9Xcml0
ZVVpbnQzMihzdGF0aWNfY2FzdDx1aW50MzJfdD4obGVuZ3RoKSk7CkBAIC0zNDAsNiArNjA3LDcg
QEAgcHVibGljOgogICAgIGVudW0gU3RhdHVzIHsKICAgICAgICAgU3VjY2VzcywKICAgICAgICAg
SW5wdXRFcnJvciwKKyAgICAgICAgRGF0YUNsb25lRXJyb3IsCiAgICAgICAgIEpTRXhjZXB0aW9u
LAogICAgICAgICBKU0ZhaWx1cmUKICAgICB9OwpAQCAtMzQ4LDcgKzYxNiw5IEBAIHB1YmxpYzoK
ICAgICAgICAgOiBtX3dyaXRlcih3cml0ZXIpCiAgICAgICAgICwgbV90cnlDYXRjaCh0cnlDYXRj
aCkKICAgICAgICAgLCBtX2RlcHRoKDApCisgICAgICAgICwgbV9leGVjRGVwdGgoMCkKICAgICAg
ICAgLCBtX3N0YXR1cyhTdWNjZXNzKQorICAgICAgICAsIG1fbmV4dE9iamVjdElkKDApCiAgICAg
ewogICAgICAgICBBU1NFUlQoIXRyeUNhdGNoLkhhc0NhdWdodCgpKTsKICAgICB9CkBAIC0zNjMs
NyArNjMzLDYgQEAgcHVibGljOgogICAgIH0KIAogICAgIC8vIEZ1bmN0aW9ucyB1c2VkIGJ5IHNl
cmlhbGl6YXRpb24gc3RhdGVzLgotCiAgICAgU3RhdGVCYXNlKiBkb1NlcmlhbGl6ZSh2ODo6SGFu
ZGxlPHY4OjpWYWx1ZT4gdmFsdWUsIFN0YXRlQmFzZSogbmV4dCk7CiAKICAgICBTdGF0ZUJhc2Uq
IGNoZWNrRXhjZXB0aW9uKFN0YXRlQmFzZSogc3RhdGUpCkBAIC00MTEsNiArNjgwLDEwIEBAIHBy
aXZhdGU6CiAgICAgICAgIC8vIHN0YXRlLgogICAgICAgICB2aXJ0dWFsIFN0YXRlQmFzZSogYWR2
YW5jZShTZXJpYWxpemVyJikgPSAwOwogCisgICAgICAgIC8vIFJldHVybnMgMSBpZiB0aGlzIHN0
YXRlIGlzIGN1cnJlbnRseSBzZXJpYWxpemluZyBhIHByb3BlcnR5CisgICAgICAgIC8vIHZpYSBh
biBhY2Nlc3NvciBhbmQgMCBvdGhlcndpc2UuCisgICAgICAgIHZpcnR1YWwgdWludDMyX3QgZXhl
Y0RlcHRoKCkgY29uc3QgeyByZXR1cm4gMDsgfQorCiAgICAgcHJvdGVjdGVkOgogICAgICAgICBT
dGF0ZUJhc2Uodjg6OkhhbmRsZTx2ODo6VmFsdWU+IGNvbXBvc2l0ZSwgU3RhdGVCYXNlKiBuZXh0
KQogICAgICAgICAgICAgOiBtX2NvbXBvc2l0ZShjb21wb3NpdGUpCkBAIC00ODUsMTEgKzc1OCwx
MyBAQCBwcml2YXRlOgogICAgICAgICAgICAgLCBtX2luZGV4KDApCiAgICAgICAgICAgICAsIG1f
bnVtU2VyaWFsaXplZFByb3BlcnRpZXMoMCkKICAgICAgICAgICAgICwgbV9uYW1lRG9uZShmYWxz
ZSkKKyAgICAgICAgICAgICwgbV9zZXJpYWxpemluZ0FjY2Vzc29yKGZhbHNlKQogICAgICAgICB7
CiAgICAgICAgIH0KIAogICAgICAgICB2aXJ0dWFsIFN0YXRlQmFzZSogYWR2YW5jZShTZXJpYWxp
emVyJiBzZXJpYWxpemVyKQogICAgICAgICB7CisgICAgICAgICAgICBtX3NlcmlhbGl6aW5nQWNj
ZXNzb3IgPSBmYWxzZTsKICAgICAgICAgICAgIGlmICghbV9pbmRleCkgewogICAgICAgICAgICAg
ICAgIG1fcHJvcGVydHlOYW1lcyA9IGNvbXBvc2l0ZSgpLT5HZXRQcm9wZXJ0eU5hbWVzKCk7CiAg
ICAgICAgICAgICAgICAgaWYgKFN0YXRlQmFzZSogbmV3U3RhdGUgPSBzZXJpYWxpemVyLmNoZWNr
RXhjZXB0aW9uKHRoaXMpKQpAQCAtNDk4LDYgKzc3Myw3IEBAIHByaXZhdGU6CiAgICAgICAgICAg
ICAgICAgICAgIHJldHVybiBzZXJpYWxpemVyLnJlcG9ydEZhaWx1cmUodGhpcyk7CiAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICB3aGlsZSAobV9pbmRleCA8IG1fcHJvcGVydHlOYW1lcy0+TGVu
Z3RoKCkpIHsKKyAgICAgICAgICAgICAgICBib29sIGlzQWNjZXNzb3IgPSBmYWxzZTsKICAgICAg
ICAgICAgICAgICBpZiAoIW1fbmFtZURvbmUpIHsKICAgICAgICAgICAgICAgICAgICAgdjg6Okxv
Y2FsPHY4OjpWYWx1ZT4gcHJvcGVydHlOYW1lID0gbV9wcm9wZXJ0eU5hbWVzLT5HZXQobV9pbmRl
eCk7CiAgICAgICAgICAgICAgICAgICAgIGlmIChTdGF0ZUJhc2UqIG5ld1N0YXRlID0gc2VyaWFs
aXplci5jaGVja0V4Y2VwdGlvbih0aGlzKSkKQEAgLTUxMCw2ICs3ODYsOSBAQCBwcml2YXRlOgog
ICAgICAgICAgICAgICAgICAgICBib29sIGhhc0luZGV4ZWRQcm9wZXJ0eSA9ICFoYXNTdHJpbmdQ
cm9wZXJ0eSAmJiBwcm9wZXJ0eU5hbWUtPklzVWludDMyKCkgJiYgY29tcG9zaXRlKCktPkhhc1Jl
YWxJbmRleGVkUHJvcGVydHkocHJvcGVydHlOYW1lLT5VaW50MzJWYWx1ZSgpKTsKICAgICAgICAg
ICAgICAgICAgICAgaWYgKFN0YXRlQmFzZSogbmV3U3RhdGUgPSBzZXJpYWxpemVyLmNoZWNrRXhj
ZXB0aW9uKHRoaXMpKQogICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ld1N0YXRlOwor
ICAgICAgICAgICAgICAgICAgICBpc0FjY2Vzc29yID0gaGFzU3RyaW5nUHJvcGVydHkgJiYgY29t
cG9zaXRlKCktPkhhc1JlYWxOYW1lZENhbGxiYWNrUHJvcGVydHkocHJvcGVydHlOYW1lLkFzPHY4
OjpTdHJpbmc+KCkpOyAKKyAgICAgICAgICAgICAgICAgICAgaWYgKFN0YXRlQmFzZSogbmV3U3Rh
dGUgPSBzZXJpYWxpemVyLmNoZWNrRXhjZXB0aW9uKHRoaXMpKQorICAgICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIG5ld1N0YXRlOwogICAgICAgICAgICAgICAgICAgICBpZiAoaGFzU3RyaW5n
UHJvcGVydHkgfHwgaGFzSW5kZXhlZFByb3BlcnR5KQogICAgICAgICAgICAgICAgICAgICAgICAg
bV9wcm9wZXJ0eU5hbWUgPSBwcm9wZXJ0eU5hbWU7CiAgICAgICAgICAgICAgICAgICAgIGVsc2Ug
ewpAQCAtNTMwLDEyICs4MDksMTYgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICBtX3Byb3Bl
cnR5TmFtZS5DbGVhcigpOwogICAgICAgICAgICAgICAgICsrbV9pbmRleDsKICAgICAgICAgICAg
ICAgICArK21fbnVtU2VyaWFsaXplZFByb3BlcnRpZXM7CisgICAgICAgICAgICAgICAgbV9zZXJp
YWxpemluZ0FjY2Vzc29yID0gaXNBY2Nlc3NvcjsKICAgICAgICAgICAgICAgICBpZiAoU3RhdGVC
YXNlKiBuZXdTdGF0ZSA9IHNlcmlhbGl6ZXIuZG9TZXJpYWxpemUodmFsdWUsIHRoaXMpKQogICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gbmV3U3RhdGU7CisgICAgICAgICAgICAgICAgbV9zZXJp
YWxpemluZ0FjY2Vzc29yID0gZmFsc2U7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICByZXR1
cm4gb2JqZWN0RG9uZShtX251bVNlcmlhbGl6ZWRQcm9wZXJ0aWVzLCBzZXJpYWxpemVyKTsKICAg
ICAgICAgfQogCisgICAgICAgIHZpcnR1YWwgdWludDMyX3QgZXhlY0RlcHRoKCkgY29uc3QgeyBy
ZXR1cm4gbV9zZXJpYWxpemluZ0FjY2Vzc29yID8gMSA6IDA7IH0KKwogICAgIHByb3RlY3RlZDoK
ICAgICAgICAgdmlydHVhbCBTdGF0ZUJhc2UqIG9iamVjdERvbmUodW5zaWduZWQgbnVtUHJvcGVy
dGllcywgU2VyaWFsaXplciYpID0gMDsKIApAQCAtNTQ1LDYgKzgyOCw3IEBAIHByaXZhdGU6CiAg
ICAgICAgIHVuc2lnbmVkIG1faW5kZXg7CiAgICAgICAgIHVuc2lnbmVkIG1fbnVtU2VyaWFsaXpl
ZFByb3BlcnRpZXM7CiAgICAgICAgIGJvb2wgbV9uYW1lRG9uZTsKKyAgICAgICAgYm9vbCBtX3Nl
cmlhbGl6aW5nQWNjZXNzb3I7CiAgICAgfTsKIAogICAgIGNsYXNzIE9iamVjdFN0YXRlIDogcHVi
bGljIEFic3RyYWN0T2JqZWN0U3RhdGUgewpAQCAtNTc1LDkgKzg1OSwxNiBAQCBwcml2YXRlOgog
ICAgICAgICB9CiAgICAgfTsKIAorICAgIHVpbnQzMl90IGV4ZWNEZXB0aCgpIGNvbnN0CisgICAg
eworICAgICAgICByZXR1cm4gbV9leGVjRGVwdGg7CisgICAgfQorCiAgICAgU3RhdGVCYXNlKiBw
dXNoKFN0YXRlQmFzZSogc3RhdGUpCiAgICAgewogICAgICAgICBBU1NFUlQoc3RhdGUpOworICAg
ICAgICBpZiAoc3RhdGUtPm5leHRTdGF0ZSgpKQorICAgICAgICAgICAgbV9leGVjRGVwdGggKz0g
c3RhdGUtPm5leHRTdGF0ZSgpLT5leGVjRGVwdGgoKTsKICAgICAgICAgKyttX2RlcHRoOwogICAg
ICAgICByZXR1cm4gY2hlY2tDb21wb3NpdGUoc3RhdGUpID8gc3RhdGUgOiBoYW5kbGVFcnJvcihJ
bnB1dEVycm9yLCBzdGF0ZSk7CiAgICAgfQpAQCAtNTg3LDYgKzg3OCw4IEBAIHByaXZhdGU6CiAg
ICAgICAgIEFTU0VSVChzdGF0ZSk7CiAgICAgICAgIC0tbV9kZXB0aDsKICAgICAgICAgU3RhdGVC
YXNlKiBuZXh0ID0gc3RhdGUtPm5leHRTdGF0ZSgpOworICAgICAgICBpZiAobmV4dCkKKyAgICAg
ICAgICAgIG1fZXhlY0RlcHRoIC09IG5leHQtPmV4ZWNEZXB0aCgpOwogICAgICAgICBkZWxldGUg
c3RhdGU7CiAgICAgICAgIHJldHVybiBuZXh0OwogICAgIH0KQEAgLTU5OSw2ICs4OTIsOCBAQCBw
cml2YXRlOgogICAgICAgICAgICAgU3RhdGVCYXNlKiB0bXAgPSBzdGF0ZS0+bmV4dFN0YXRlKCk7
CiAgICAgICAgICAgICBkZWxldGUgc3RhdGU7CiAgICAgICAgICAgICBzdGF0ZSA9IHRtcDsKKyAg
ICAgICAgICAgIGlmIChzdGF0ZSkKKyAgICAgICAgICAgICAgICBtX2V4ZWNEZXB0aCAtPSBzdGF0
ZS0+ZXhlY0RlcHRoKCk7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIG5ldyBFcnJvclN0YXRl
OwogICAgIH0KQEAgLTYxOCw2ICs5MTMsMTEgQEAgcHJpdmF0ZToKICAgICAgICAgcmV0dXJuIHRy
dWU7CiAgICAgfQogCisgICAgdm9pZCB3cml0ZU51bGwoKQorICAgIHsKKyAgICAgICAgbV93cml0
ZXIud3JpdGVOdWxsKCk7CisgICAgfQorCiAgICAgdm9pZCB3cml0ZVN0cmluZyh2ODo6SGFuZGxl
PHY4OjpWYWx1ZT4gdmFsdWUpCiAgICAgewogICAgICAgICB2ODo6U3RyaW5nOjpVdGY4VmFsdWUg
c3RyaW5nVmFsdWUodmFsdWUpOwpAQCAtNjYzLDYgKzk2MywzNSBAQCBwcml2YXRlOgogICAgICAg
ICBtX3dyaXRlci53cml0ZVJlZ0V4cChyZWdFeHAtPkdldFNvdXJjZSgpLCByZWdFeHAtPkdldEZs
YWdzKCkpOwogICAgIH0KIAorICAgIFN0YXRlQmFzZSogd3JpdGVBbmRHcmV5QXJyYXlCdWZmZXJW
aWV3KHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gb2JqZWN0LCBTdGF0ZUJhc2UqIG5leHQpCisgICAg
eworICAgICAgICBBU1NFUlQoIW9iamVjdC5Jc0VtcHR5KCkpOworICAgICAgICBBcnJheUJ1ZmZl
clZpZXcqIGFycmF5QnVmZmVyVmlldyA9IFY4QXJyYXlCdWZmZXJWaWV3Ojp0b05hdGl2ZShvYmpl
Y3QpOworICAgICAgICBpZiAoIWFycmF5QnVmZmVyVmlldykKKyAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICAgICAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHVuZGVybHlpbmdCdWZmZXIgPSB0
b1Y4KGFycmF5QnVmZmVyVmlldy0+YnVmZmVyKCkpOworICAgICAgICBpZiAodW5kZXJseWluZ0J1
ZmZlci5Jc0VtcHR5KCkpCisgICAgICAgICAgICByZXR1cm4gaGFuZGxlRXJyb3IoRGF0YUNsb25l
RXJyb3IsIG5leHQpOworICAgICAgICBTdGF0ZUJhc2UqIHN0YXRlT3V0ID0gZG9TZXJpYWxpemUo
dW5kZXJseWluZ0J1ZmZlciwgMCk7CisgICAgICAgIGlmIChzdGF0ZU91dCkKKyAgICAgICAgICAg
IHJldHVybiBoYW5kbGVFcnJvcihEYXRhQ2xvbmVFcnJvciwgbmV4dCk7CisgICAgICAgIG1fd3Jp
dGVyLndyaXRlQXJyYXlCdWZmZXJWaWV3KCphcnJheUJ1ZmZlclZpZXcpOworICAgICAgICAvLyBU
aGlzIHNob3VsZCBiZSBzYWZlOiB3ZSBzZXJpYWxpemUgc29tZXRoaW5nIHRoYXQgd2Uga25vdyB0
byBiZSBhIHdyYXBwZXIgKHNlZQorICAgICAgICAvLyB0aGUgdG9WOCBjYWxsIGFib3ZlKSwgc28g
dGhlIGNhbGwgdG8gZG9TZXJpYWxpemUgYWJvdmUgc2hvdWxkIG5laXRoZXIgY2F1c2UKKyAgICAg
ICAgLy8gdGhlIHN0YWNrIHRvIG92ZXJmbG93IG5vciBzaG91bGQgaXQgaGF2ZSB0aGUgcG90ZW50
aWFsIHRvIHJlYWNoIHRoaXMKKyAgICAgICAgLy8gQXJyYXlCdWZmZXJWaWV3IGFnYWluLgorICAg
ICAgICBncmV5T2JqZWN0KG9iamVjdCk7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAg
IHZvaWQgd3JpdGVBcnJheUJ1ZmZlcih2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdmFsdWUpCisgICAg
eworICAgICAgICBBcnJheUJ1ZmZlciogYXJyYXlCdWZmZXIgPSBWOEFycmF5QnVmZmVyOjp0b05h
dGl2ZSh2YWx1ZS5Bczx2ODo6T2JqZWN0PigpKTsKKyAgICAgICAgaWYgKCFhcnJheUJ1ZmZlcikK
KyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgbV93cml0ZXIud3JpdGVBcnJheUJ1ZmZlcigq
YXJyYXlCdWZmZXIpOworICAgIH0KKwogICAgIHN0YXRpYyBTdGF0ZUJhc2UqIG5ld0FycmF5U3Rh
dGUodjg6OkhhbmRsZTx2ODo6QXJyYXk+IGFycmF5LCBTdGF0ZUJhc2UqIG5leHQpCiAgICAgewog
ICAgICAgICAvLyBGSVhNRTogdXNlIHBsYWluIEFycmF5IHN0YXRlIHdoZW4gd2UgY2FuIHF1aWNr
bHkgY2hlY2sgdGhhdApAQCAtNjc2LDIwICsxMDA1LDUxIEBAIHByaXZhdGU6CiAgICAgICAgIHJl
dHVybiBuZXcgT2JqZWN0U3RhdGUob2JqZWN0LCBuZXh0KTsKICAgICB9CiAKKyAgICB1aW50MzJf
dCBncmV5T2JqZWN0KGNvbnN0IHY4OjpIYW5kbGU8djg6Ok9iamVjdD4mIG9iamVjdCkKKyAgICB7
CisgICAgICAgIEFTU0VSVCghbV9vYmplY3RQb29sLmNvbnRhaW5zKG9iamVjdCkpOworICAgICAg
ICB1aW50MzJfdCBvYmplY3RJZCA9IG1fbmV4dE9iamVjdElkKys7CisgICAgICAgIG1fb2JqZWN0
UG9vbC5zZXQob2JqZWN0LCBvYmplY3RJZCk7CisgICAgICAgIHJldHVybiBvYmplY3RJZDsKKyAg
ICB9CisKICAgICBXcml0ZXImIG1fd3JpdGVyOwogICAgIHY4OjpUcnlDYXRjaCYgbV90cnlDYXRj
aDsKICAgICBpbnQgbV9kZXB0aDsKKyAgICBpbnQgbV9leGVjRGVwdGg7CiAgICAgU3RhdHVzIG1f
c3RhdHVzOworICAgIHR5cGVkZWYgVjhHY0hhbmRsZU1hcDx2ODo6T2JqZWN0LCB1aW50MzJfdD4g
T2JqZWN0UG9vbDsKKyAgICBPYmplY3RQb29sIG1fb2JqZWN0UG9vbDsKKyAgICB1aW50MzJfdCBt
X25leHRPYmplY3RJZDsKIH07CiAKIFNlcmlhbGl6ZXI6OlN0YXRlQmFzZSogU2VyaWFsaXplcjo6
ZG9TZXJpYWxpemUodjg6OkhhbmRsZTx2ODo6VmFsdWU+IHZhbHVlLCBTdGF0ZUJhc2UqIG5leHQp
CiB7Ci0gICAgaWYgKHZhbHVlLklzRW1wdHkoKSkKKyNpZmRlZiBTU1ZfREVCVUcKKyAgICBwcmlu
dGYoIlxuXG5kb1NlcmlhbGl6ZSAoZXhlYyBkZXB0aCAlZCwgbmV4dCBleGVjIGRlcHRoOiAlZCk6
ICIsIG1fZXhlY0RlcHRoLCAobmV4dCA/IG5leHQtPmV4ZWNEZXB0aCgpIDogMCkpOworI2VuZGlm
CisgICAgaWYgKG1fZXhlY0RlcHRoICsgKG5leHQgPyBuZXh0LT5leGVjRGVwdGgoKSA6IDApID4g
MSkgeworI2lmZGVmIFNTVl9ERUJVRworICAgICAgICBwcmludGYoIihudWxsaW5nKVxuIik7Cisj
ZW5kaWYKKyAgICAgICAgbV93cml0ZXIud3JpdGVOdWxsKCk7CisgICAgICAgIHJldHVybiAwOwor
ICAgIH0KKyNpZmRlZiBTU1ZfREVCVUcKKyAgICBwcmludGYoIlxuIik7CisjZW5kaWYKKyAgICBt
X3dyaXRlci53cml0ZUNoZWNrUmVmKG1fbmV4dE9iamVjdElkKTsKKyAgICB1aW50MzJfdCBvYmpl
Y3RQb29sT2Zmc2V0OworICAgIGlmICgodmFsdWUtPklzT2JqZWN0KCkgfHwgdmFsdWUtPklzRGF0
ZSgpIHx8IHZhbHVlLT5Jc1JlZ0V4cCgpKQorICAgICAgICAmJiBtX29iamVjdFBvb2wudHJ5R2V0
KHZhbHVlLkFzPHY4OjpPYmplY3Q+KCksIG9iamVjdFBvb2xPZmZzZXQpKSB7CisgICAgICAgIEFT
U0VSVCghdmFsdWUtPklzU3RyaW5nKCkpOworICAgICAgICBtX3dyaXRlci53cml0ZU9iamVjdE9m
ZnNldChvYmplY3RQb29sT2Zmc2V0KTsKKyAgICB9IGVsc2UgaWYgKHZhbHVlLklzRW1wdHkoKSkK
ICAgICAgICAgcmV0dXJuIHJlcG9ydEZhaWx1cmUobmV4dCk7Ci0gICAgaWYgKHZhbHVlLT5Jc1Vu
ZGVmaW5lZCgpKQorICAgIGVsc2UgaWYgKHZhbHVlLT5Jc1VuZGVmaW5lZCgpKQogICAgICAgICBt
X3dyaXRlci53cml0ZVVuZGVmaW5lZCgpOwogICAgIGVsc2UgaWYgKHZhbHVlLT5Jc051bGwoKSkK
LSAgICAgICAgbV93cml0ZXIud3JpdGVOdWxsKCk7CisgICAgICAgIHdyaXRlTnVsbCgpOwogICAg
IGVsc2UgaWYgKHZhbHVlLT5Jc1RydWUoKSkKICAgICAgICAgbV93cml0ZXIud3JpdGVUcnVlKCk7
CiAgICAgZWxzZSBpZiAodmFsdWUtPklzRmFsc2UoKSkKQEAgLTY5OCwyNiArMTA1OCw1MiBAQCBT
ZXJpYWxpemVyOjpTdGF0ZUJhc2UqIFNlcmlhbGl6ZXI6OmRvU2VyaWFsaXplKHY4OjpIYW5kbGU8
djg6OlZhbHVlPiB2YWx1ZSwgU3RhdAogICAgICAgICBtX3dyaXRlci53cml0ZUludDMyKHZhbHVl
LT5JbnQzMlZhbHVlKCkpOwogICAgIGVsc2UgaWYgKHZhbHVlLT5Jc1VpbnQzMigpKQogICAgICAg
ICBtX3dyaXRlci53cml0ZVVpbnQzMih2YWx1ZS0+VWludDMyVmFsdWUoKSk7Ci0gICAgZWxzZSBp
ZiAodmFsdWUtPklzRGF0ZSgpKQotICAgICAgICBtX3dyaXRlci53cml0ZURhdGUodmFsdWUtPk51
bWJlclZhbHVlKCkpOwogICAgIGVsc2UgaWYgKHZhbHVlLT5Jc051bWJlcigpKQogICAgICAgICBt
X3dyaXRlci53cml0ZU51bWJlcih2YWx1ZS5Bczx2ODo6TnVtYmVyPigpLT5WYWx1ZSgpKTsKLSAg
ICBlbHNlIGlmICh2YWx1ZS0+SXNTdHJpbmcoKSkKKyAgICBlbHNlIGlmIChWOEFycmF5QnVmZmVy
Vmlldzo6SGFzSW5zdGFuY2UodmFsdWUpKSAKKyAgICAgICAgcmV0dXJuIHdyaXRlQW5kR3JleUFy
cmF5QnVmZmVyVmlldyh2YWx1ZS5Bczx2ODo6T2JqZWN0PigpLCBuZXh0KTsKKyAgICBlbHNlIGlm
ICh2YWx1ZS0+SXNTdHJpbmcoKSkgeworICAgICAgICAvLyBUaGUgdjggQVBJIGNhbGxzIHN0cmlu
Z3MgcHJpbWl0aXZlcywgbm90IG9iamVjdHMuIFdlJ2xsIGxhdGVyIGRlc2VyaWFsaXplIHRoZW0g
dG8gdGhlCisgICAgICAgIC8vIG9iamVjdCBwb29sLCB0aG91Z2gsIHNvIHdlIGNhbiBkZWR1cGxp
Y2F0ZSBpbiB0aGUgZnV0dXJlLgorICAgICAgICArK21fbmV4dE9iamVjdElkOwogICAgICAgICB3
cml0ZVN0cmluZyh2YWx1ZSk7Ci0gICAgZWxzZSBpZiAodmFsdWUtPklzQXJyYXkoKSkKLSAgICAg
ICAgcmV0dXJuIHB1c2gobmV3QXJyYXlTdGF0ZSh2YWx1ZS5Bczx2ODo6QXJyYXk+KCksIG5leHQp
KTsKLSAgICBlbHNlIGlmIChWOEZpbGU6Okhhc0luc3RhbmNlKHZhbHVlKSkKLSAgICAgICAgd3Jp
dGVGaWxlKHZhbHVlKTsKLSAgICBlbHNlIGlmIChWOEJsb2I6Okhhc0luc3RhbmNlKHZhbHVlKSkK
LSAgICAgICAgd3JpdGVCbG9iKHZhbHVlKTsKLSAgICBlbHNlIGlmIChWOEZpbGVMaXN0OjpIYXNJ
bnN0YW5jZSh2YWx1ZSkpCi0gICAgICAgIHdyaXRlRmlsZUxpc3QodmFsdWUpOwotICAgIGVsc2Ug
aWYgKFY4SW1hZ2VEYXRhOjpIYXNJbnN0YW5jZSh2YWx1ZSkpCi0gICAgICAgIHdyaXRlSW1hZ2VE
YXRhKHZhbHVlKTsKLSAgICBlbHNlIGlmICh2YWx1ZS0+SXNSZWdFeHAoKSkKLSAgICAgICAgd3Jp
dGVSZWdFeHAodmFsdWUpOwotICAgIGVsc2UgaWYgKHZhbHVlLT5Jc09iamVjdCgpKQotICAgICAg
ICByZXR1cm4gcHVzaChuZXdPYmplY3RTdGF0ZSh2YWx1ZS5Bczx2ODo6T2JqZWN0PigpLCBuZXh0
KSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBqc09iamVj
dCA9IHZhbHVlLkFzPHY4OjpPYmplY3Q+KCk7CisgICAgICAgIEFTU0VSVCghanNPYmplY3QuSXNF
bXB0eSgpKTsKKyAgICAgICAgZ3JleU9iamVjdChqc09iamVjdCk7CisgICAgICAgIGlmICh2YWx1
ZS0+SXNEYXRlKCkpCisgICAgICAgICAgICBtX3dyaXRlci53cml0ZURhdGUodmFsdWUtPk51bWJl
clZhbHVlKCkpOworICAgICAgICBlbHNlIGlmICh2YWx1ZS0+SXNBcnJheSgpKSB7CisgICAgICAg
ICAgICBtX3dyaXRlci53cml0ZUdlbmVyYXRlRnJlc2hBcnJheSh2YWx1ZS5Bczx2ODo6QXJyYXk+
KCktPkxlbmd0aCgpKTsKKyAgICAgICAgICAgIHJldHVybiBwdXNoKG5ld0FycmF5U3RhdGUodmFs
dWUuQXM8djg6OkFycmF5PigpLCBuZXh0KSk7CisgICAgICAgIH0gZWxzZSBpZiAoVjhGaWxlOjpI
YXNJbnN0YW5jZSh2YWx1ZSkpCisgICAgICAgICAgICB3cml0ZUZpbGUodmFsdWUpOworICAgICAg
ICBlbHNlIGlmIChWOEJsb2I6Okhhc0luc3RhbmNlKHZhbHVlKSkKKyAgICAgICAgICAgIHdyaXRl
QmxvYih2YWx1ZSk7CisgICAgICAgIGVsc2UgaWYgKFY4RmlsZUxpc3Q6Okhhc0luc3RhbmNlKHZh
bHVlKSkKKyAgICAgICAgICAgIHdyaXRlRmlsZUxpc3QodmFsdWUpOworICAgICAgICBlbHNlIGlm
IChWOEltYWdlRGF0YTo6SGFzSW5zdGFuY2UodmFsdWUpKQorICAgICAgICAgICAgd3JpdGVJbWFn
ZURhdGEodmFsdWUpOworICAgICAgICBlbHNlIGlmICh2YWx1ZS0+SXNSZWdFeHAoKSkKKyAgICAg
ICAgICAgIHdyaXRlUmVnRXhwKHZhbHVlKTsKKyAgICAgICAgZWxzZSBpZiAoVjhBcnJheUJ1ZmZl
cjo6SGFzSW5zdGFuY2UodmFsdWUpKQorICAgICAgICAgICAgd3JpdGVBcnJheUJ1ZmZlcih2YWx1
ZSk7CisgICAgICAgIGVsc2UgaWYgKHZhbHVlLT5Jc09iamVjdCgpKSB7CisgICAgICAgICAgICAv
LyBJZiB0aGUgb2JqZWN0IGhhcyBhbnkgaW50ZXJuYWwgZmllbGRzLCB0aGVuIHdlIHdvbid0IGJl
IGFibGUgdG8gc2VyaWFsaXplIG9yIGRlc2VyaWFsaXplCisgICAgICAgICAgICAvLyB0aGVtOyBj
b252ZW5pZW50bHksIHRoaXMgaXMgYWxzbyBhIHF1aWNrIHdheSB0byBkZXRlY3QgRE9NIHdyYXBw
ZXIgb2JqZWN0cywgYmVjYXVzZQorICAgICAgICAgICAgLy8gdGhlIG1lY2hhbmlzbSBmb3IgdGhl
c2UgcmVsaWVzIG9uIGRhdGEgc3RvcmVkIGluIHRoZXNlIGZpZWxkcy4gRnVydGhlcm1vcmUsIHdl
IHNob3VsZAorICAgICAgICAgICAgLy8gY2F0Y2ggZXh0ZXJuYWwgYXJyYXkgZGF0YSBhbmQgZXh0
ZXJuYWwgcGl4ZWwgZGF0YSBhYm92ZSAobm90aW5nIHRoYXQgQ2FudmFzUGl4ZWxBcnJheXMKKyAg
ICAgICAgICAgIC8vIGNhbid0IGJlIHNlcmlhbGl6ZWQgd2l0aG91dCBiZWluZyB3cmFwcGVkIGJ5
IEltYWdlRGF0YSBhY2NvcmRpbmcgdG8gdGhlIHN0YW5kYXJkKS4KKyAgICAgICAgICAgIGlmIChq
c09iamVjdC0+SW50ZXJuYWxGaWVsZENvdW50KCkKKyAgICAgICAgICAgICAgICB8fCBqc09iamVj
dC0+SGFzSW5kZXhlZFByb3BlcnRpZXNJblBpeGVsRGF0YSgpCisgICAgICAgICAgICAgICAgfHwg
anNPYmplY3QtPkhhc0luZGV4ZWRQcm9wZXJ0aWVzSW5FeHRlcm5hbEFycmF5RGF0YSgpCisgICAg
ICAgICAgICAgICAgfHwganNPYmplY3QtPklzQ2FsbGFibGUoKSkKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gaGFuZGxlRXJyb3IoRGF0YUNsb25lRXJyb3IsIG5leHQpOworICAgICAgICAgICAgbV93
cml0ZXIud3JpdGVHZW5lcmF0ZUZyZXNoT2JqZWN0KCk7CisgICAgICAgICAgICByZXR1cm4gcHVz
aChuZXdPYmplY3RTdGF0ZShqc09iamVjdCwgbmV4dCkpOworICAgICAgICB9IGVsc2UKKyAgICAg
ICAgICAgIHJldHVybiBoYW5kbGVFcnJvcihEYXRhQ2xvbmVFcnJvciwgbmV4dCk7CisgICAgfQog
ICAgIHJldHVybiAwOwogfQogCkBAIC03MjYsOSArMTExMiwxNSBAQCBjbGFzcyBDb21wb3NpdGVD
cmVhdG9yIHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5Db21wb3NpdGVDcmVhdG9yKCkgeyB9CiAK
LSAgICB2aXJ0dWFsIGJvb2wgY3JlYXRlQXJyYXkodWludDMyX3QgbGVuZ3RoLCB2ODo6SGFuZGxl
PHY4OjpWYWx1ZT4qIHZhbHVlKSA9IDA7Ci0gICAgdmlydHVhbCBib29sIGNyZWF0ZU9iamVjdCh1
aW50MzJfdCBudW1Qcm9wZXJ0aWVzLCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4qIHZhbHVlKSA9IDA7
Ci0gICAgdmlydHVhbCBib29sIGNyZWF0ZVNwYXJzZUFycmF5KHVpbnQzMl90IG51bVByb3BlcnRp
ZXMsIHVpbnQzMl90IGxlbmd0aCwgdjg6OkhhbmRsZTx2ODo6VmFsdWU+KiB2YWx1ZSkgPSAwOwor
ICAgIHZpcnR1YWwgYm9vbCBjb25zdW1lVG9wT2ZTdGFjayh2ODo6SGFuZGxlPHY4OjpWYWx1ZT4m
KSA9IDA7CisgICAgdmlydHVhbCB1aW50MzJfdCBvYmplY3RSZWZlcmVuY2VDb3VudCgpID0gMDsK
KyAgICB2aXJ0dWFsIGNvbnN0IHY4OjpIYW5kbGU8djg6OlZhbHVlPiYgcHVzaE9iamVjdFJlZmVy
ZW5jZShjb25zdCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4mKSA9IDA7CisgICAgdmlydHVhbCBib29s
IGdldE9iamVjdFJlZmVyZW5jZSh1aW50MzJfdCByZWYsIHY4OjpIYW5kbGU8djg6OlZhbHVlPiop
ID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgcHJlcGFyZUVtcHR5QXJyYXkodWludDMyX3QgbGVuZ3Ro
KSA9IDA7CisgICAgdmlydHVhbCBib29sIHByZXBhcmVFbXB0eU9iamVjdCgpID0gMDsKKyAgICB2
aXJ0dWFsIGJvb2wgZmluaXNoQXJyYXkodWludDMyX3QgbGVuZ3RoLCB2ODo6SGFuZGxlPHY4OjpW
YWx1ZT4qKSA9IDA7CisgICAgdmlydHVhbCBib29sIGZpbmlzaE9iamVjdCh1aW50MzJfdCBudW1Q
cm9wZXJ0aWVzLCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4qKSA9IDA7CisgICAgdmlydHVhbCBib29s
IGZpbmlzaFNwYXJzZUFycmF5KHVpbnQzMl90IG51bVByb3BlcnRpZXMsIHVpbnQzMl90IGxlbmd0
aCwgdjg6OkhhbmRsZTx2ODo6VmFsdWU+KikgPSAwOwogfTsKIAogLy8gUmVhZGVyIGlzIHJlc3Bv
bnNpYmxlIGZvciBkZXNlcmlhbGl6aW5nIHByaW1pdGl2ZSB0eXBlcyBhbmQKQEAgLTc1MSw2ICsx
MTQzLDE0IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKCFyZWFkVGFnKCZ0YWcpKQogICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgICAgICBzd2l0Y2ggKHRhZykgeworICAgICAgICBjYXNlIENo
ZWNrUmVmVGFnOiB7CisgICAgICAgICAgICB1aW50MzJfdCByZWZUYWJsZVNpemU7CisgICAgICAg
ICAgICBpZiAoIWRvUmVhZFVpbnQzMigmcmVmVGFibGVTaXplKSkKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBpZiAocmVmVGFibGVTaXplICE9IGNyZWF0b3Iub2Jq
ZWN0UmVmZXJlbmNlQ291bnQoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfSAgIAogICAgICAgICBjYXNlIEludmFsaWRU
YWc6CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIGNhc2UgUGFkZGluZ1RhZzoK
QEAgLTc3MCw2ICsxMTcwLDcgQEAgcHVibGljOgogICAgICAgICBjYXNlIFN0cmluZ1RhZzoKICAg
ICAgICAgICAgIGlmICghcmVhZFN0cmluZyh2YWx1ZSkpCiAgICAgICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgICAgICAgICAgY3JlYXRvci5wdXNoT2JqZWN0UmVmZXJlbmNlKCp2YWx1ZSk7
CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBJbnQzMlRhZzoKICAgICAgICAgICAg
IGlmICghcmVhZEludDMyKHZhbHVlKSkKQEAgLTc4Miw2ICsxMTgzLDcgQEAgcHVibGljOgogICAg
ICAgICBjYXNlIERhdGVUYWc6CiAgICAgICAgICAgICBpZiAoIXJlYWREYXRlKHZhbHVlKSkKICAg
ICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBjcmVhdG9yLnB1c2hPYmpl
Y3RSZWZlcmVuY2UoKnZhbHVlKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIE51
bWJlclRhZzoKICAgICAgICAgICAgIGlmICghcmVhZE51bWJlcih2YWx1ZSkpCkBAIC03OTAsMzYg
KzExOTIsNDEgQEAgcHVibGljOgogICAgICAgICBjYXNlIEJsb2JUYWc6CiAgICAgICAgICAgICBp
ZiAoIXJlYWRCbG9iKHZhbHVlKSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
ICAgICAgICBjcmVhdG9yLnB1c2hPYmplY3RSZWZlcmVuY2UoKnZhbHVlKTsKICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICBjYXNlIEZpbGVUYWc6CiAgICAgICAgICAgICBpZiAoIXJlYWRGaWxl
KHZhbHVlKSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBjcmVh
dG9yLnB1c2hPYmplY3RSZWZlcmVuY2UoKnZhbHVlKTsKICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICBjYXNlIEZpbGVMaXN0VGFnOgogICAgICAgICAgICAgaWYgKCFyZWFkRmlsZUxpc3QodmFs
dWUpKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIGNyZWF0b3Iu
cHVzaE9iamVjdFJlZmVyZW5jZSgqdmFsdWUpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IGNhc2UgSW1hZ2VEYXRhVGFnOgogICAgICAgICAgICAgaWYgKCFyZWFkSW1hZ2VEYXRhKHZhbHVl
KSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBjcmVhdG9yLnB1
c2hPYmplY3RSZWZlcmVuY2UoKnZhbHVlKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBj
YXNlIEFycmF5VGFnOiB7CiAgICAgICAgICAgICB1aW50MzJfdCBsZW5ndGg7CiAgICAgICAgICAg
ICBpZiAoIWRvUmVhZFVpbnQzMigmbGVuZ3RoKSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7Ci0gICAgICAgICAgICBpZiAoIWNyZWF0b3IuY3JlYXRlQXJyYXkobGVuZ3RoLCB2YWx1ZSkp
CisgICAgICAgICAgICBpZiAoIWNyZWF0b3IuZmluaXNoQXJyYXkobGVuZ3RoLCB2YWx1ZSkpCiAg
ICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IH0KICAgICAgICAgY2FzZSBSZWdFeHBUYWc6CiAgICAgICAgICAgICBpZiAoIXJlYWRSZWdFeHAo
dmFsdWUpKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIGNyZWF0
b3IucHVzaE9iamVjdFJlZmVyZW5jZSgqdmFsdWUpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIGNhc2UgT2JqZWN0VGFnOiB7CiAgICAgICAgICAgICB1aW50MzJfdCBudW1Qcm9wZXJ0aWVz
OwogICAgICAgICAgICAgaWYgKCFkb1JlYWRVaW50MzIoJm51bVByb3BlcnRpZXMpKQogICAgICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAgIGlmICghY3JlYXRvci5jcmVhdGVP
YmplY3QobnVtUHJvcGVydGllcywgdmFsdWUpKQorICAgICAgICAgICAgaWYgKCFjcmVhdG9yLmZp
bmlzaE9iamVjdChudW1Qcm9wZXJ0aWVzLCB2YWx1ZSkpCiAgICAgICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KQEAgLTgzMCw3ICsxMjM3LDQx
IEBAIHB1YmxpYzoKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICBp
ZiAoIWRvUmVhZFVpbnQzMigmbGVuZ3RoKSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
Ci0gICAgICAgICAgICBpZiAoIWNyZWF0b3IuY3JlYXRlU3BhcnNlQXJyYXkobnVtUHJvcGVydGll
cywgbGVuZ3RoLCB2YWx1ZSkpCisgICAgICAgICAgICBpZiAoIWNyZWF0b3IuZmluaXNoU3BhcnNl
QXJyYXkobnVtUHJvcGVydGllcywgbGVuZ3RoLCB2YWx1ZSkpCisgICAgICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgY2FzZSBB
cnJheUJ1ZmZlclZpZXdUYWc6IHsKKyAgICAgICAgICAgIGlmICghcmVhZEFycmF5QnVmZmVyVmll
dyh2YWx1ZSwgY3JlYXRvcikpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAg
ICAgICAgY3JlYXRvci5wdXNoT2JqZWN0UmVmZXJlbmNlKCp2YWx1ZSk7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgfQorICAgICAgICBjYXNlIEFycmF5QnVmZmVyVGFnOiB7CisgICAgICAg
ICAgICAvLyBBcnJheUJ1ZmZlcnMgYXJlIGFsd2F5cyB3cml0dGVuIGJlZm9yZSBkZXBlbmRhbnQg
QXJyYXlCdWZmZXJWaWV3cy4KKyAgICAgICAgICAgIGlmICghcmVhZEFycmF5QnVmZmVyKHZhbHVl
KSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBjcmVhdG9yLnB1
c2hPYmplY3RSZWZlcmVuY2UoKnZhbHVlKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9
CisgICAgICAgIGNhc2UgR2VuZXJhdGVGcmVzaE9iamVjdFRhZzogeworICAgICAgICAgICAgaWYg
KCFjcmVhdG9yLnByZXBhcmVFbXB0eU9iamVjdCgpKQorICAgICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIGNhc2Ug
R2VuZXJhdGVGcmVzaEFycmF5VGFnOiB7CisgICAgICAgICAgICB1aW50MzJfdCBsZW5ndGg7Cisg
ICAgICAgICAgICBpZiAoIWRvUmVhZFVpbnQzMigmbGVuZ3RoKSkKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBpZiAoIWNyZWF0b3IucHJlcGFyZUVtcHR5QXJyYXko
bGVuZ3RoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBjYXNlIE9iamVjdFJlZmVyZW5jZVRhZzogewor
ICAgICAgICAgICAgdWludDMyX3QgcmVmOworICAgICAgICAgICAgaWYgKCFkb1JlYWRVaW50MzIo
JnJlZikpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgaWYgKCFj
cmVhdG9yLmdldE9iamVjdFJlZmVyZW5jZShyZWYsIHZhbHVlKSkKICAgICAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQpAQCAtODQ5LDYgKzEy
OTAsMTQgQEAgcHJpdmF0ZToKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCisgICAgYm9v
bCByZWFkU3ViVGFnKEFycmF5QnVmZmVyVmlld1N1YlRhZyogdGFnKQorICAgIHsKKyAgICAgICAg
aWYgKG1fcG9zaXRpb24gPj0gbV9sZW5ndGgpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgICAgICp0YWcgPSBzdGF0aWNfY2FzdDxBcnJheUJ1ZmZlclZpZXdTdWJUYWc+KG1fYnVmZmVy
W21fcG9zaXRpb24rK10pOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKICAgICBib29s
IHJlYWRTdHJpbmcodjg6OkhhbmRsZTx2ODo6VmFsdWU+KiB2YWx1ZSkKICAgICB7CiAgICAgICAg
IHVpbnQzMl90IGxlbmd0aDsKQEAgLTkzMiw2ICsxMzgxLDEwNyBAQCBwcml2YXRlOgogICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKKyAgICBQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBkb1Jl
YWRBcnJheUJ1ZmZlcigpCisgICAgeworICAgICAgICB1aW50MzJfdCBieXRlTGVuZ3RoOworICAg
ICAgICBpZiAoIWRvUmVhZFVpbnQzMigmYnl0ZUxlbmd0aCkpCisgICAgICAgICAgICByZXR1cm4g
MDsKKyAgICAgICAgaWYgKG1fcG9zaXRpb24gKyBieXRlTGVuZ3RoID4gbV9sZW5ndGgpCisgICAg
ICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgY29uc3Qgdm9pZCogYnVmZmVyU3RhcnQgPSBtX2J1
ZmZlciArIG1fcG9zaXRpb247CisgICAgICAgIFJlZlB0cjxBcnJheUJ1ZmZlcj4gYXJyYXlCdWZm
ZXIgPSBBcnJheUJ1ZmZlcjo6Y3JlYXRlKGNvbnN0X2Nhc3Q8dm9pZCo+KGJ1ZmZlclN0YXJ0KSwg
Ynl0ZUxlbmd0aCk7CisgICAgICAgIG1fcG9zaXRpb24gKz0gYnl0ZUxlbmd0aDsKKyAgICAgICAg
cmV0dXJuIGFycmF5QnVmZmVyLnJlbGVhc2UoKTsKKyAgICB9CisKKyAgICBib29sIHJlYWRBcnJh
eUJ1ZmZlcih2ODo6SGFuZGxlPHY4OjpWYWx1ZT4qIHZhbHVlKQorICAgIHsKKyAgICAgICAgUmVm
UHRyPEFycmF5QnVmZmVyPiBhcnJheUJ1ZmZlciA9IGRvUmVhZEFycmF5QnVmZmVyKCk7CisgICAg
ICAgIGlmICghYXJyYXlCdWZmZXIpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAg
ICp2YWx1ZSA9IHRvVjgoYXJyYXlCdWZmZXIucmVsZWFzZSgpKTsKKyAgICAgICAgcmV0dXJuIHRy
dWU7CisgICAgfQorCisgICAgYm9vbCByZWFkQXJyYXlCdWZmZXJWaWV3KHY4OjpIYW5kbGU8djg6
OlZhbHVlPiogdmFsdWUsIENvbXBvc2l0ZUNyZWF0b3ImIGNyZWF0b3IpCisgICAgeworICAgICAg
ICBBcnJheUJ1ZmZlclZpZXdTdWJUYWcgc3ViVGFnOworICAgICAgICB1aW50MzJfdCBieXRlT2Zm
c2V0OworICAgICAgICB1aW50MzJfdCBieXRlTGVuZ3RoOworICAgICAgICBSZWZQdHI8QXJyYXlC
dWZmZXI+IGFycmF5QnVmZmVyOworICAgICAgICB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gYXJyYXlC
dWZmZXJWOFZhbHVlOworICAgICAgICBpZiAoIXJlYWRTdWJUYWcoJnN1YlRhZykpCisgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGlmICghZG9SZWFkVWludDMyKCZieXRlT2Zmc2V0
KSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYgKCFkb1JlYWRVaW50MzIo
JmJ5dGVMZW5ndGgpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBpZiAoIWNy
ZWF0b3IuY29uc3VtZVRvcE9mU3RhY2soYXJyYXlCdWZmZXJWOFZhbHVlKSkKKyAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICAgICAgYXJyYXlCdWZmZXIgPSBWOEFycmF5QnVmZmVyOjp0b05h
dGl2ZShhcnJheUJ1ZmZlclY4VmFsdWUuQXM8djg6Ok9iamVjdD4oKSk7CisgICAgICAgIGlmICgh
YXJyYXlCdWZmZXIpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHN3aXRjaCAo
c3ViVGFnKSB7CisgICAgICAgIGNhc2UgQnl0ZUFycmF5VGFnOgorICAgICAgICAgICAgKnZhbHVl
ID0gdG9WOChJbnQ4QXJyYXk6OmNyZWF0ZShhcnJheUJ1ZmZlci5yZWxlYXNlKCksIGJ5dGVPZmZz
ZXQsIGJ5dGVMZW5ndGgpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFVuc2ln
bmVkQnl0ZUFycmF5VGFnOgorICAgICAgICAgICAgKnZhbHVlID0gdG9WOChVaW50OEFycmF5Ojpj
cmVhdGUoYXJyYXlCdWZmZXIucmVsZWFzZSgpLCBieXRlT2Zmc2V0LCBieXRlTGVuZ3RoKSk7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBTaG9ydEFycmF5VGFnOiB7CisgICAgICAg
ICAgICB1aW50MzJfdCBzaG9ydExlbmd0aCA9IGJ5dGVMZW5ndGggLyBzaXplb2YoaW50MTZfdCk7
CisgICAgICAgICAgICBpZiAoc2hvcnRMZW5ndGggKiBzaXplb2YoaW50MTZfdCkgIT0gYnl0ZUxl
bmd0aCkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAqdmFsdWUg
PSB0b1Y4KEludDE2QXJyYXk6OmNyZWF0ZShhcnJheUJ1ZmZlci5yZWxlYXNlKCksIGJ5dGVPZmZz
ZXQsIHNob3J0TGVuZ3RoKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAg
ICBjYXNlIFVuc2lnbmVkU2hvcnRBcnJheVRhZzogeworICAgICAgICAgICAgdWludDMyX3Qgc2hv
cnRMZW5ndGggPSBieXRlTGVuZ3RoIC8gc2l6ZW9mKHVpbnQxNl90KTsKKyAgICAgICAgICAgIGlm
IChzaG9ydExlbmd0aCAqIHNpemVvZihpbnQxNl90KSAhPSBieXRlTGVuZ3RoKQorICAgICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICp2YWx1ZSA9IHRvVjgoVWludDE2QXJy
YXk6OmNyZWF0ZShhcnJheUJ1ZmZlci5yZWxlYXNlKCksIGJ5dGVPZmZzZXQsIHNob3J0TGVuZ3Ro
KSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBjYXNlIEludEFycmF5
VGFnOiB7CisgICAgICAgICAgICB1aW50MzJfdCBpbnRMZW5ndGggPSBieXRlTGVuZ3RoIC8gc2l6
ZW9mKGludDMyX3QpOworICAgICAgICAgICAgaWYgKGludExlbmd0aCAqIHNpemVvZihpbnQzMl90
KSAhPSBieXRlTGVuZ3RoKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAg
ICAgICp2YWx1ZSA9IHRvVjgoSW50MzJBcnJheTo6Y3JlYXRlKGFycmF5QnVmZmVyLnJlbGVhc2Uo
KSwgYnl0ZU9mZnNldCwgaW50TGVuZ3RoKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
fQorICAgICAgICBjYXNlIFVuc2lnbmVkSW50QXJyYXlUYWc6IHsKKyAgICAgICAgICAgIHVpbnQz
Ml90IGludExlbmd0aCA9IGJ5dGVMZW5ndGggLyBzaXplb2YodWludDMyX3QpOworICAgICAgICAg
ICAgaWYgKGludExlbmd0aCAqIHNpemVvZih1aW50MzJfdCkgIT0gYnl0ZUxlbmd0aCkKKyAgICAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAqdmFsdWUgPSB0b1Y4KFVpbnQz
MkFycmF5OjpjcmVhdGUoYXJyYXlCdWZmZXIucmVsZWFzZSgpLCBieXRlT2Zmc2V0LCBpbnRMZW5n
dGgpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGNhc2UgRmxvYXRB
cnJheVRhZzogeworICAgICAgICAgICAgdWludDMyX3QgZmxvYXRMZW5ndGggPSBieXRlTGVuZ3Ro
IC8gc2l6ZW9mKGZsb2F0KTsKKyAgICAgICAgICAgIGlmIChmbG9hdExlbmd0aCAqIHNpemVvZihm
bG9hdCkgIT0gYnl0ZUxlbmd0aCkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
ICAgICAgICAqdmFsdWUgPSB0b1Y4KEZsb2F0MzJBcnJheTo6Y3JlYXRlKGFycmF5QnVmZmVyLnJl
bGVhc2UoKSwgYnl0ZU9mZnNldCwgZmxvYXRMZW5ndGgpKTsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICB9CisgICAgICAgIGNhc2UgRG91YmxlQXJyYXlUYWc6IHsKKyAgICAgICAgICAgIHVp
bnQzMl90IGZsb2F0TGVuZ3RoID0gYnl0ZUxlbmd0aCAvIHNpemVvZihkb3VibGUpOworICAgICAg
ICAgICAgaWYgKGZsb2F0TGVuZ3RoICogc2l6ZW9mKGRvdWJsZSkgIT0gYnl0ZUxlbmd0aCkKKyAg
ICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAqdmFsdWUgPSB0b1Y4KEZs
b2F0NjRBcnJheTo6Y3JlYXRlKGFycmF5QnVmZmVyLnJlbGVhc2UoKSwgYnl0ZU9mZnNldCwgZmxv
YXRMZW5ndGgpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGNhc2Ug
RGF0YVZpZXdUYWc6CisgICAgICAgICAgICAqdmFsdWUgPSB0b1Y4KERhdGFWaWV3OjpjcmVhdGUo
YXJyYXlCdWZmZXIucmVsZWFzZSgpLCBieXRlT2Zmc2V0LCBieXRlTGVuZ3RoKSk7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICAgICAgfQorICAgICAgICAvLyBUaGUgdmFyaW91cyAqQXJyYXk6OmNyZWF0ZSgpIG1ldGhv
ZHMgd2lsbCByZXR1cm4gbnVsbCBpZiB0aGUgcmFuZ2UgdGhlIHZpZXcgZXhwZWN0cyBpcworICAg
ICAgICAvLyBtaXNtYXRjaGVkIHdpdGggdGhlIHJhbmdlIHRoZSBidWZmZXIgY2FuIHByb3ZpZGUg
b3IgaWYgdGhlIGJ5dGUgb2Zmc2V0IGlzIG5vdCBhbGlnbmVkCisgICAgICAgIC8vIHRvIHRoZSBz
aXplIG9mIHRoZSBlbGVtZW50IHR5cGUuCisgICAgICAgIHJldHVybiAhdmFsdWUtPklzRW1wdHko
KTsKKyAgICB9CisKICAgICBib29sIHJlYWRSZWdFeHAodjg6OkhhbmRsZTx2ODo6VmFsdWU+KiB2
YWx1ZSkKICAgICB7CiAgICAgICAgIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBwYXR0ZXJuOwpAQCAt
MTA1MywxNiArMTYwMywzOCBAQCBwdWJsaWM6CiAgICAgICAgICAgICBpZiAoIWRvRGVzZXJpYWxp
emUoKSkKICAgICAgICAgICAgICAgICByZXR1cm4gdjg6Ok51bGwoKTsKICAgICAgICAgfQotICAg
ICAgICBpZiAoc3RhY2tEZXB0aCgpICE9IDEpCisgICAgICAgIGlmIChzdGFja0RlcHRoKCkgIT0g
MSB8fCBtX29ianJlZlN0YWNrLnNpemUoKSkKICAgICAgICAgICAgIHJldHVybiB2ODo6TnVsbCgp
OwotICAgICAgICByZXR1cm4gc2NvcGUuQ2xvc2UoZWxlbWVudCgwKSk7CisgICAgICAgIHY4OjpI
YW5kbGU8djg6OlZhbHVlPiByZXN1bHQgPSBzY29wZS5DbG9zZShlbGVtZW50KDApKTsKKyAgICAg
ICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAKLSAgICB2aXJ0dWFsIGJvb2wgY3JlYXRlQXJyYXko
dWludDMyX3QgbGVuZ3RoLCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4qIHZhbHVlKQorICAgIHZpcnR1
YWwgYm9vbCBwcmVwYXJlRW1wdHlBcnJheSh1aW50MzJfdCBsZW5ndGgpCisgICAgeworICAgICAg
ICB2ODo6TG9jYWw8djg6OkFycmF5PiBhcnJheSA9IHY4OjpBcnJheTo6TmV3KGxlbmd0aCk7Cisg
ICAgICAgIGlmIChhcnJheS5Jc0VtcHR5KCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgICAgIG9wZW5OZXdDb21wb3NpdGUoYXJyYXkpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg
ICB9CisKKyAgICB2aXJ0dWFsIGJvb2wgY29uc3VtZVRvcE9mU3RhY2sodjg6OkhhbmRsZTx2ODo6
VmFsdWU+JiBvYmopCisgICAgeworICAgICAgICBpZiAoc3RhY2tEZXB0aCgpIDwgMSkKKyAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgb2JqID0gZWxlbWVudChzdGFja0RlcHRoKCkg
LSAxKTsKKyAgICAgICAgcG9wKDEpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAg
ICB2aXJ0dWFsIGJvb2wgZmluaXNoQXJyYXkodWludDMyX3QgbGVuZ3RoLCB2ODo6SGFuZGxlPHY4
OjpWYWx1ZT4qIHZhbHVlKQogICAgIHsKICAgICAgICAgaWYgKGxlbmd0aCA+IHN0YWNrRGVwdGgo
KSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgdjg6OkxvY2FsPHY4OjpBcnJh
eT4gYXJyYXkgPSB2ODo6QXJyYXk6Ok5ldyhsZW5ndGgpOworICAgICAgICB2ODo6TG9jYWw8djg6
OlZhbHVlPiBjb21wb3NpdGU7CisgICAgICAgIGlmICghY2xvc2VDb21wb3NpdGUoY29tcG9zaXRl
KSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgdjg6OkxvY2FsPHY4OjpBcnJh
eT4gYXJyYXkgPSBjb21wb3NpdGUuQXM8djg6OkFycmF5PigpOwogICAgICAgICBpZiAoYXJyYXku
SXNFbXB0eSgpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICBjb25zdCBpbnQg
ZGVwdGggPSBzdGFja0RlcHRoKCkgLSBsZW5ndGg7CkBAIC0xMDczLDIyICsxNjQ1LDU2IEBAIHB1
YmxpYzoKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCi0gICAgdmlydHVhbCBib29sIGNy
ZWF0ZU9iamVjdCh1aW50MzJfdCBudW1Qcm9wZXJ0aWVzLCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4q
IHZhbHVlKQorICAgIHZpcnR1YWwgYm9vbCBwcmVwYXJlRW1wdHlPYmplY3QoKQogICAgIHsKICAg
ICAgICAgdjg6OkxvY2FsPHY4OjpPYmplY3Q+IG9iamVjdCA9IHY4OjpPYmplY3Q6Ok5ldygpOwog
ICAgICAgICBpZiAob2JqZWN0LklzRW1wdHkoKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICAgICAgb3Blbk5ld0NvbXBvc2l0ZShvYmplY3QpOworICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICB9CisKKyAgICB2aXJ0dWFsIGJvb2wgZmluaXNoT2JqZWN0KHVpbnQzMl90IG51bVByb3Bl
cnRpZXMsIHY4OjpIYW5kbGU8djg6OlZhbHVlPiogdmFsdWUpCisgICAgeworICAgICAgICB2ODo6
TG9jYWw8djg6OlZhbHVlPiBjb21wb3NpdGU7CisgICAgICAgIGlmICghY2xvc2VDb21wb3NpdGUo
Y29tcG9zaXRlKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgdjg6OkxvY2Fs
PHY4OjpPYmplY3Q+IG9iamVjdCA9IGNvbXBvc2l0ZS5Bczx2ODo6T2JqZWN0PigpOworICAgICAg
ICBpZiAob2JqZWN0LklzRW1wdHkoKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAg
ICAgcmV0dXJuIGluaXRpYWxpemVPYmplY3Qob2JqZWN0LCBudW1Qcm9wZXJ0aWVzLCB2YWx1ZSk7
CiAgICAgfQogCi0gICAgdmlydHVhbCBib29sIGNyZWF0ZVNwYXJzZUFycmF5KHVpbnQzMl90IG51
bVByb3BlcnRpZXMsIHVpbnQzMl90IGxlbmd0aCwgdjg6OkhhbmRsZTx2ODo6VmFsdWU+KiB2YWx1
ZSkKKyAgICB2aXJ0dWFsIGJvb2wgZmluaXNoU3BhcnNlQXJyYXkodWludDMyX3QgbnVtUHJvcGVy
dGllcywgdWludDMyX3QgbGVuZ3RoLCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4qIHZhbHVlKQogICAg
IHsKLSAgICAgICAgdjg6OkxvY2FsPHY4OjpBcnJheT4gYXJyYXkgPSB2ODo6QXJyYXk6Ok5ldyhs
ZW5ndGgpOworICAgICAgICB2ODo6TG9jYWw8djg6OlZhbHVlPiBjb21wb3NpdGU7CisgICAgICAg
IGlmICghY2xvc2VDb21wb3NpdGUoY29tcG9zaXRlKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICAgICAgdjg6OkxvY2FsPHY4OjpBcnJheT4gYXJyYXkgPSBjb21wb3NpdGUuQXM8djg6
OkFycmF5PigpOwogICAgICAgICBpZiAoYXJyYXkuSXNFbXB0eSgpKQogICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgICAgICByZXR1cm4gaW5pdGlhbGl6ZU9iamVjdChhcnJheSwgbnVtUHJv
cGVydGllcywgdmFsdWUpOwogICAgIH0KIAorICAgIHZpcnR1YWwgY29uc3Qgdjg6OkhhbmRsZTx2
ODo6VmFsdWU+JiBwdXNoT2JqZWN0UmVmZXJlbmNlKGNvbnN0IHY4OjpIYW5kbGU8djg6OlZhbHVl
PiYgb2JqKQorICAgIHsKKyAgICAgICAgbV9vYmplY3RQb29sLmFwcGVuZChvYmopOworICAgICAg
ICByZXR1cm4gb2JqOworICAgIH0KKworICAgIHZpcnR1YWwgYm9vbCBnZXRPYmplY3RSZWZlcmVu
Y2UodWludDMyX3QgcmVmLCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4qIG9iaikKKyAgICB7CisgICAg
ICAgIGlmIChyZWYgPj0gbV9vYmplY3RQb29sLnNpemUoKSkKKyAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICAgICAgKm9iaiA9IG1fb2JqZWN0UG9vbFtyZWZdOworICAgICAgICByZXR1cm4g
b2JqOworICAgIH0KKworICAgIHZpcnR1YWwgdWludDMyX3Qgb2JqZWN0UmVmZXJlbmNlQ291bnQo
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fb2JqZWN0UG9vbC5zaXplKCk7CisgICAgfQorCiBw
cml2YXRlOgogICAgIGJvb2wgaW5pdGlhbGl6ZU9iamVjdCh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+
IG9iamVjdCwgdWludDMyX3QgbnVtUHJvcGVydGllcywgdjg6OkhhbmRsZTx2ODo6VmFsdWU+KiB2
YWx1ZSkKICAgICB7CkBAIC0xMTMxLDggKzE3MzcsMzAgQEAgcHJpdmF0ZToKICAgICAgICAgcmV0
dXJuIG1fc3RhY2tbaW5kZXhdOwogICAgIH0KIAorICAgIHVpbnQzMl90IG9wZW5OZXdDb21wb3Np
dGUoY29uc3Qgdjg6OkxvY2FsPHY4OjpWYWx1ZT4mIG9iaikKKyAgICB7CisgICAgICAgIHVpbnQz
Ml90IG5ld2lkID0gbV9vYmplY3RQb29sLnNpemUoKTsKKyAgICAgICAgbV9vYmpyZWZTdGFjay5h
cHBlbmQobmV3aWQpOworICAgICAgICBtX29iamVjdFBvb2wuYXBwZW5kKG9iaik7CisgICAgICAg
IHJldHVybiBuZXdpZDsKKyAgICB9CisKKyAgICBib29sIGNsb3NlQ29tcG9zaXRlKHY4OjpIYW5k
bGU8djg6OlZhbHVlPiYgb2JqKQorICAgIHsKKyAgICAgICAgaWYgKCFtX29ianJlZlN0YWNrLnNp
emUoKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgdWludDMyX3Qgb2xkaWQg
PSBtX29ianJlZlN0YWNrW21fb2JqcmVmU3RhY2suc2l6ZSgpIC0gMV07CisgICAgICAgIG1fb2Jq
cmVmU3RhY2suc2hyaW5rKG1fb2JqcmVmU3RhY2suc2l6ZSgpIC0gMSk7CisgICAgICAgIGlmIChv
bGRpZCA+PSBtX29iamVjdFBvb2wuc2l6ZSgpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgICAgICBvYmogPSBtX29iamVjdFBvb2xbb2xkaWRdOworICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICB9CisKICAgICBSZWFkZXImIG1fcmVhZGVyOwogICAgIFZlY3Rvcjx2ODo6TG9jYWw8djg6
OlZhbHVlPiA+IG1fc3RhY2s7CisgICAgVmVjdG9yPHY4OjpIYW5kbGU8djg6OlZhbHVlPiA+IG1f
b2JqZWN0UG9vbDsKKyAgICBWZWN0b3I8dWludDMyX3Q+IG1fb2JqcmVmU3RhY2s7CiB9OwogCiB9
IC8vIG5hbWVzcGFjZQpAQCAtMTIzNiw3ICsxODY0LDEyIEBAIFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlKHY4OjpIYW5kbGU8djg6OlZhbHVlPiB2YWx1ZSwgYm9v
bCYKICAgICAgICAgLy8gSWYgdGhlcmUgd2FzIGFuIGlucHV0IGVycm9yLCB0aHJvdyBhIG5ldyBl
eGNlcHRpb24gb3V0c2lkZQogICAgICAgICAvLyBvZiB0aGUgVHJ5Q2F0Y2ggc2NvcGUuCiAgICAg
ICAgIGRpZFRocm93ID0gdHJ1ZTsKLSAgICAgICAgdGhyb3dFcnJvcihOT1RfU1VQUE9SVEVEX0VS
Uik7CisgICAgICAgIHRocm93RXJyb3IoREFUQV9DTE9ORV9FUlIpOworICAgICAgICByZXR1cm47
CisgICAgfQorICAgIGlmIChzdGF0dXMgPT0gU2VyaWFsaXplcjo6RGF0YUNsb25lRXJyb3IpIHsK
KyAgICAgICAgZGlkVGhyb3cgPSB0cnVlOworICAgICAgICB0aHJvd0Vycm9yKERBVEFfQ0xPTkVf
RVJSKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBpZiAoc3RhdHVzID09IFNlcmlhbGl6
ZXI6OkpTRmFpbHVyZSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvdjgv
Y3VzdG9tL1Y4RGF0YVZpZXdDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvdjgv
Y3VzdG9tL1Y4RGF0YVZpZXdDdXN0b20uY3BwCmluZGV4IGYyNjBjZmYuLjEwYjJkMjggMTAwNzU1
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERhdGFWaWV3Q3VzdG9t
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhEYXRhVmlld0N1
c3RvbS5jcHAKQEAgLTQxLDYgKzQxLDEzIEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOERhdGFW
aWV3Ojpjb25zdHJ1Y3RvckNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiAgICAg
aWYgKCFhcmdzLklzQ29uc3RydWN0Q2FsbCgpKQogICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigi
RE9NIG9iamVjdCBjb25zdHJ1Y3RvciBjYW5ub3QgYmUgY2FsbGVkIGFzIGEgZnVuY3Rpb24iLCBW
OFByb3h5OjpTeW50YXhFcnJvcik7CiAKKyAgICBpZiAoIWFyZ3MuTGVuZ3RoKCkpIHsKKyAgICAg
ICAgLy8gc2VlIGNvbnN0cnVjdFdlYkdMQXJyYXkgLS0gd2UgZG9uJ3Qgc2VlbSB0byBiZSBhYmxl
IHRvIGRpc3Rpbmdpc2ggYmV0d2VlbgorICAgICAgICAvLyAnbmV3IERhdGFWaWV3KCknIGFuZCB0
aGUgY2FsbCB1c2VkIHRvIGNvbnN0cnVjdCB0aGUgY2FjaGVkIERhdGFWaWV3IG9iamVjdC4KKyAg
ICAgICAgUmVmUHRyPERhdGFWaWV3PiBkYXRhVmlldyA9IERhdGFWaWV3OjpjcmVhdGUoMCk7Cisg
ICAgICAgIFY4RE9NV3JhcHBlcjo6c2V0RE9NV3JhcHBlcihhcmdzLkhvbGRlcigpLCAmaW5mbywg
ZGF0YVZpZXcuZ2V0KCkpOworICAgICAgICByZXR1cm4gdG9WOChkYXRhVmlldy5yZWxlYXNlKCks
IGFyZ3MuSG9sZGVyKCkpOworICAgIH0KICAgICBpZiAoYXJnc1swXS0+SXNOdWxsKCkgfHwgIVY4
QXJyYXlCdWZmZXI6Okhhc0luc3RhbmNlKGFyZ3NbMF0pKQogICAgICAgICByZXR1cm4gVjhQcm94
eTo6dGhyb3dUeXBlRXJyb3IoKTsKICAgICByZXR1cm4gY29uc3RydWN0V2ViR0xBcnJheVdpdGhB
cnJheUJ1ZmZlckFyZ3VtZW50PERhdGFWaWV3LCBjaGFyPihhcmdzLCAmaW5mbywgdjg6OmtFeHRl
cm5hbEJ5dGVBcnJheSwgZmFsc2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RP
TUNvcmVFeGNlcHRpb24uaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTUNvcmVFeGNlcHRpb24u
aWRsCmluZGV4IDk0NTcxMmQuLjZjOTFjYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9ET01Db3JlRXhjZXB0aW9uLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NQ29yZUV4
Y2VwdGlvbi5pZGwKQEAgLTc0LDYgKzc0LDkgQEAgbW9kdWxlIGNvcmUgewogICAgICAgICBjb25z
dCB1bnNpZ25lZCBzaG9ydCAgICAgIEFCT1JUX0VSUiAgICAgICAgICAgICAgICAgICAgICA9IDIw
OwogICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCAgICAgIFVSTF9NSVNNQVRDSF9FUlIgICAg
ICAgICAgICAgICA9IDIxOwogICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCAgICAgIFFVT1RB
X0VYQ0VFREVEX0VSUiAgICAgICAgICAgICA9IDIyOworICAgICAgICBjb25zdCB1bnNpZ25lZCBz
aG9ydCAgICAgIFRJTUVPVVRfRVJSICAgICAgICAgICAgICAgICAgICA9IDIzOworICAgICAgICBj
b25zdCB1bnNpZ25lZCBzaG9ydCAgICAgIElOVkFMSURfTk9ERV9UWVBFX0VSUiAgICAgICAgICA9
IDI0OworICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCAgICAgIERBVEFfQ0xPTkVfRVJSICAg
ICAgICAgICAgICAgICA9IDI1OwogICAgIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9FeGNlcHRpb25Db2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FeGNlcHRpb25D
b2RlLmNwcAppbmRleCBjYWVhNTU5Li44YjgyZjViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRXhjZXB0aW9uQ29kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V4Y2VwdGlv
bkNvZGUuY3BwCkBAIC03Miw3ICs3MiwxMCBAQCBzdGF0aWMgY29uc3QgY2hhciogY29uc3QgZXhj
ZXB0aW9uTmFtZXNbXSA9IHsKICAgICAiTkVUV09SS19FUlIiLAogICAgICJBQk9SVF9FUlIiLAog
ICAgICJVUkxfTUlTTUFUQ0hfRVJSIiwKLSAgICAiUVVPVEFfRVhDRUVERURfRVJSIgorICAgICJR
VU9UQV9FWENFRURFRF9FUlIiLAorICAgICJUSU1FT1VUX0VSUiIsCisgICAgIklOVkFMSURfTk9E
RV9UWVBFX0VSUiIsCisgICAgIkRBVEFfQ0xPTkVfRVJSIgogfTsKIAogc3RhdGljIGNvbnN0IGNo
YXIqIGNvbnN0IGV4Y2VwdGlvbkRlc2NyaXB0aW9uc1tdID0gewpAQCAtOTgsNyArMTAxLDEwIEBA
IHN0YXRpYyBjb25zdCBjaGFyKiBjb25zdCBleGNlcHRpb25EZXNjcmlwdGlvbnNbXSA9IHsKICAg
ICAiQSBuZXR3b3JrIGVycm9yIG9jY3VyZWQuIiwKICAgICAiVGhlIHVzZXIgYWJvcnRlZCBhIHJl
cXVlc3QuIiwKICAgICAiQSB3b3JrZXIgZ2xvYmFsIHNjb3BlIHJlcHJlc2VudGVkIGFuIGFic29s
dXRlIFVSTCB0aGF0IGlzIG5vdCBlcXVhbCB0byB0aGUgcmVzdWx0aW5nIGFic29sdXRlIFVSTC4i
LAotICAgICJBbiBhdHRlbXB0IHdhcyBtYWRlIHRvIGFkZCBzb21ldGhpbmcgdG8gc3RvcmFnZSB0
aGF0IGV4Y2VlZGVkIHRoZSBxdW90YS4iCisgICAgIkFuIGF0dGVtcHQgd2FzIG1hZGUgdG8gYWRk
IHNvbWV0aGluZyB0byBzdG9yYWdlIHRoYXQgZXhjZWVkZWQgdGhlIHF1b3RhLiIsCisgICAgIkEg
dGltZW91dCBvY2N1cnJlZC4iLAorICAgICJUaGUgc3VwcGxpZWQgbm9kZSBpcyBpbnZhbGlkIG9y
IGhhcyBhbiBpbnZhbGlkIGFuY2VzdG9yIGZvciB0aGlzIG9wZXJhdGlvbi4iLAorICAgICJBbiBv
YmplY3QgY291bGQgbm90IGJlIGNsb25lZC4iCiB9OwogCiBzdGF0aWMgY29uc3QgY2hhciogY29u
c3QgcmFuZ2VFeGNlcHRpb25OYW1lc1tdID0gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0V4Y2VwdGlvbkNvZGUuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FeGNlcHRpb25Db2RlLmgK
aW5kZXggOWNlZTY2Yi4uY2VhNmY2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V4
Y2VwdGlvbkNvZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXhjZXB0aW9uQ29kZS5oCkBA
IC01NywxNCArNTcsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBORVRXT1JLX0VS
UiA9IDE5LAogICAgICAgICBBQk9SVF9FUlIgPSAyMCwKICAgICAgICAgVVJMX01JU01BVENIX0VS
UiA9IDIxLAotICAgICAgICBRVU9UQV9FWENFRURFRF9FUlIgPSAyMgotCi0gICAgICAgIC8vIElu
dHJvZHVjZWQgaW4gRmlsZSBBUEk6Ci0gICAgICAgIC8vIGh0dHA6Ly93d3cudzMub3JnL1RSL2Zp
bGUtdXBsb2FkLyNkZm4tZmlsZWVycm9yCi0jaWYgRU5BQkxFKEJMT0IpIHx8IEVOQUJMRShGSUxF
X1NZU1RFTSkKLSAgICAgICAgLCBOT1RfUkVBREFCTEVfRVJSID0gMjQKLSAgICAgICAgLCBFTkNP
RElOR19FUlIgPSAyNgotI2VuZGlmCisgICAgICAgIFFVT1RBX0VYQ0VFREVEX0VSUiA9IDIyLAor
ICAgICAgICBUSU1FT1VUX0VSUiA9IDIzLAorICAgICAgICBJTlZBTElEX05PREVfVFlQRV9FUlIg
PSAyNCwKKyAgICAgICAgREFUQV9DTE9ORV9FUlIgPSAyNQogICAgIH07CiAKICAgICBlbnVtIEV4
Y2VwdGlvblR5cGUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvRGF0
YVZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvRGF0YVZpZXcuY3BwCmluZGV4
IGUwMDQ0M2QuLjNkYjA2ZDYgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L0RhdGFWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9EYXRhVmlldy5j
cHAKQEAgLTQwLDYgKzQwLDE0IEBAIHVuaW9uIFZhbHVlIHsKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCitQYXNzUmVmUHRyPERhdGFWaWV3PiBEYXRhVmlldzo6Y3JlYXRlKHVuc2lnbmVkIGxlbmd0
aCkKK3sKKyAgICBSZWZQdHI8QXJyYXlCdWZmZXI+IGJ1ZmZlciA9IEFycmF5QnVmZmVyOjpjcmVh
dGUobGVuZ3RoLCBzaXplb2YodWludDhfdCkpOworICAgIGlmICghYnVmZmVyLmdldCgpKQorICAg
ICAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gY3JlYXRlKGJ1ZmZlciwgMCwgbGVuZ3RoKTsKK30K
KwogUGFzc1JlZlB0cjxEYXRhVmlldz4gRGF0YVZpZXc6OmNyZWF0ZShQYXNzUmVmUHRyPEFycmF5
QnVmZmVyPiBidWZmZXIsIHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHVuc2lnbmVkIGJ5dGVMZW5ndGgp
CiB7CiAgICAgaWYgKGJ5dGVPZmZzZXQgPiBidWZmZXItPmJ5dGVMZW5ndGgoKSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0RhdGFWaWV3LmggYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9EYXRhVmlldy5oCmluZGV4IGE4YWJhNWMuLjVlODBmOGMgMTAwNzU1Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0RhdGFWaWV3LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvRGF0YVZpZXcuaApAQCAtMzQsNiArMzQsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIGNsYXNzIERhdGFWaWV3IDogcHVibGljIEFycmF5QnVmZmVyVmlldyB7CiBw
dWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8RGF0YVZpZXc+IGNyZWF0ZSh1bnNpZ25lZCBs
ZW5ndGgpOwogICAgIHN0YXRpYyBQYXNzUmVmUHRyPERhdGFWaWV3PiBjcmVhdGUoUGFzc1JlZlB0
cjxBcnJheUJ1ZmZlcj4sIHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHVuc2lnbmVkIGJ5dGVMZW5ndGgp
OwogCiAgICAgdmlydHVhbCBib29sIGlzRGF0YVZpZXcoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>98802</attachid>
            <date>2011-06-27 15:31:10 -0700</date>
            <delta_ts>2011-06-27 16:36:49 -0700</delta_ts>
            <desc>Patch and tests (and ChangeLog update).</desc>
            <filename>patchII.patch</filename>
            <type>text/plain</type>
            <size>110585</size>
            <attacher name="Luke Zarko">lukezarko+bugzilla</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3OWJjOTI3Li5lNjRiYTk0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTEtMDYt
MjcgIEx1a2UgWmFya28gIDxsdWtlemFya29AZ21haWwuY29tPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBIVE1MNSBTdHJ1Y3R1cmVkIENsb25l
IGFsZ29yaXRobSAoaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQt
d29yay9tdWx0aXBhZ2UvdXJscy5odG1sI3NhZmUtcGFzc2luZy1vZi1zdHJ1Y3R1cmVkLWRhdGEp
IGhhcyBiZWVuIHVwZGF0ZWQgc2luY2UgdGhlIFY4IHZlcnNpb24gb2YgU2VyaWFsaXplZFNjcmlw
dFZhbHVlIHdhcyBmaXJzdCBpbXBsZW1lbnRlZC4gVGhpcyBwYXRjaCBhaW1zIHRvIGJyaW5nIHRo
aXMgaW1wbGVtZW50YXRpb24gdXAgdG8gZGF0ZS4gSXQ6CisKKyAgICAgICAgLSBJbnRyb2R1Y2Vz
IHRoZSBuZXcgSFRNTDUgRE9NIGVycm9yIGNvZGVzIGZvciBUSU1FT1VUX0VSUiwgSU5WQUxJRF9O
T0RFX1RZUEVfRVJSLCBEQVRBX0NMT05FX0VSUgorICAgICAgICAtIEhhbmRsZXMgY3ljbGljIHN0
cnVjdHVyZXMgYW5kIGVxdWFsaXR5IG9mIHJlZmVyZW5jZSBwcmVzZXJ2YXRpb24gZm9yIGNsb25l
ZCB2YWx1ZXMKKyAgICAgICAgLSBBbGxvd3MgRGF0YVZpZXdzIHRvIGJlIGNvbnN0cnVjdGVkIG9u
IHRoZSBuYXRpdmUgc2lkZSB1c2luZyB0aGUgZXhpc3Rpbmcgd3JhcHBlciB0ZWNobmlxdWVzCisg
ICAgICAgIC0gQW1lbmRzIHRlc3RzIGFuZCBpbnRyb2R1Y2VzIG5ldyBvbmVzIHRvIGNoZWNrIGZv
ciBjb3JyZWN0bmVzcyAodGhlIGJ1bGsgb2YgdGhlIHBhdGNoKQorCisgICAgICAgIFRoZSBwYXRj
aCBwZXJtaXRzIHRoZSBjbG9uaW5nIG9mIEphdmFTY3JpcHQgdHlwZWQgYXJyYXlzLiBUaGlzIGZ1
bmN0aW9uYWxpdHkgaXMgaW4gYWN0aXZlIHVzZSBhbHJlYWR5IGFuZCB3YXMgc3VwcG9ydGVkIChz
b21ld2hhdCBpbmVmZmljaWVudGx5KSBieSB0aGUgZXhpc3RpbmcgY29kZSB0aHJvdWdoIGFuIGFy
dGlmYWN0IG9mIGltcGxlbWVudGF0aW9uLgorCisgICAgICAgIEkgaGF2ZSBpbmNsdWRlZCB0d28g
aW1wbGVtZW50YXRpb25zIG9mIHRoZSAnbWVtb3J5JyBvYmplY3QgZnJvbSB0aGUgc3RhbmRhcmQu
IFRoZSBmaXJzdCAod2hpY2ggaXMgZW5hYmxlZCBieSBkZWZhdWx0KSBpcyBtb3JlIGVmZmljaWVu
dDsgdGhlIHNlY29uZCBpcyBsZXNzIGVmZmljaWVudCBidXQgc2hvdWxkIGJlIG1vcmUgcmVzaXN0
YW50IHRvIGNoYW5nZXMgaW4gVjgncyBpbXBsZW1lbnRhdGlvbiBvZiBoYW5kbGVzLgorCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MzQ4MQorCisgICAg
ICAgICogZmFzdC9jYW52YXMvd2ViZ2wvYXJyYXktbWVzc2FnZS1wYXNzaW5nLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogZmFzdC9jYW52YXMvd2ViZ2wvYXJyYXktbWVzc2FnZS1wYXNz
aW5nLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL1dpbmRvdy93aW5kb3ctcG9zdG1l
c3NhZ2UtY2xvbmUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZG9tL1dpbmRvdy93aW5k
b3ctcG9zdG1lc3NhZ2UtY2xvbmUuaHRtbDoKKyAgICAgICAgKiBmYXN0L2RvbS9XaW5kb3cvd2lu
ZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVt
L3Rlc3RfZXhwZWN0YXRpb25zLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC13azIvZmFzdC9k
b20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9xdC9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0b3JlLWJhc2ljcy1leHBlY3RlZC50
eHQ6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0c3RvcmUtYmFzaWNzLmh0bWw6
CisKIDIwMTEtMDYtMjcgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29t
PgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHI4OTgyMi4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2FycmF5LW1lc3NhZ2UtcGFzc2luZy1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9hcnJheS1tZXNzYWdlLXBh
c3NpbmctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUy
MDg1MGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9h
cnJheS1tZXNzYWdlLXBhc3NpbmctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNTk5IEBACitUZXN0
IHBhc3NpbmcgQXJyYXlCdWZmZXJzIGFuZCBBcnJheUJ1ZmZlclZpZXdzIGluIG1lc3NhZ2VzLgor
CitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKK1BBU1MgQXJyYXlCdWZmZXIwOiBjbGFzc2Vz
IGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBBcnJheUJ1ZmZlcjA6IGJ1ZmZlciBsZW5n
dGhzIGFyZSAwCitQQVNTIEFycmF5QnVmZmVyMDogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRl
bnRzCitQQVNTIEFycmF5QnVmZmVyMTogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0K
K1BBU1MgQXJyYXlCdWZmZXIxOiBidWZmZXIgbGVuZ3RocyBhcmUgMQorUEFTUyBBcnJheUJ1ZmZl
cjE6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBBcnJheUJ1ZmZlcjEyODog
Y2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgQXJyYXlCdWZmZXIxMjg6IGJ1
ZmZlciBsZW5ndGhzIGFyZSAxMjgKK1BBU1MgQXJyYXlCdWZmZXIxMjg6IGJ1ZmZlcnMgaGF2ZSB0
aGUgc2FtZSBjb250ZW50cworUEFTUyBEYXRhVmlldzA6IGNsYXNzZXMgYXJlIFtvYmplY3QgRGF0
YVZpZXddCitQQVNTIERhdGFWaWV3MDogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0K
K1BBU1MgRGF0YVZpZXcwOiBidWZmZXIgbGVuZ3RocyBhcmUgMAorUEFTUyBEYXRhVmlldzA6IGJ1
ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBEYXRhVmlldzA6IG9mZnNldCBpcyAw
CitQQVNTIERhdGFWaWV3MDogbGVuZ3RoIGlzIDAKK1BBU1MgRGF0YVZpZXcxOiBjbGFzc2VzIGFy
ZSBbb2JqZWN0IERhdGFWaWV3XQorUEFTUyBEYXRhVmlldzE6IGNsYXNzZXMgYXJlIFtvYmplY3Qg
QXJyYXlCdWZmZXJdCitQQVNTIERhdGFWaWV3MTogYnVmZmVyIGxlbmd0aHMgYXJlIDEKK1BBU1Mg
RGF0YVZpZXcxOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgRGF0YVZpZXcx
OiBvZmZzZXQgaXMgMAorUEFTUyBEYXRhVmlldzE6IGxlbmd0aCBpcyAxCitQQVNTIERhdGFWaWV3
MTI4OiBjbGFzc2VzIGFyZSBbb2JqZWN0IERhdGFWaWV3XQorUEFTUyBEYXRhVmlldzEyODogY2xh
c3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgRGF0YVZpZXcxMjg6IGJ1ZmZlciBs
ZW5ndGhzIGFyZSAxMjgKK1BBU1MgRGF0YVZpZXcxMjg6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBj
b250ZW50cworUEFTUyBEYXRhVmlldzEyODogb2Zmc2V0IGlzIDAKK1BBU1MgRGF0YVZpZXcxMjg6
IGxlbmd0aCBpcyAxMjgKK1BBU1MgRGF0YVZpZXcxX29mc19lbmQ6IGNsYXNzZXMgYXJlIFtvYmpl
Y3QgRGF0YVZpZXddCitQQVNTIERhdGFWaWV3MV9vZnNfZW5kOiBjbGFzc2VzIGFyZSBbb2JqZWN0
IEFycmF5QnVmZmVyXQorUEFTUyBEYXRhVmlldzFfb2ZzX2VuZDogYnVmZmVyIGxlbmd0aHMgYXJl
IDEKK1BBU1MgRGF0YVZpZXcxX29mc19lbmQ6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50
cworUEFTUyBEYXRhVmlldzFfb2ZzX2VuZDogb2Zmc2V0IGlzIDEKK1BBU1MgRGF0YVZpZXcxX29m
c19lbmQ6IGxlbmd0aCBpcyAwCitQQVNTIERhdGFWaWV3MTI4X29mc19lbmQ6IGNsYXNzZXMgYXJl
IFtvYmplY3QgRGF0YVZpZXddCitQQVNTIERhdGFWaWV3MTI4X29mc19lbmQ6IGNsYXNzZXMgYXJl
IFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIERhdGFWaWV3MTI4X29mc19lbmQ6IGJ1ZmZlciBs
ZW5ndGhzIGFyZSAxMjgKK1BBU1MgRGF0YVZpZXcxMjhfb2ZzX2VuZDogYnVmZmVycyBoYXZlIHRo
ZSBzYW1lIGNvbnRlbnRzCitQQVNTIERhdGFWaWV3MTI4X29mc19lbmQ6IG9mZnNldCBpcyAxMjgK
K1BBU1MgRGF0YVZpZXcxMjhfb2ZzX2VuZDogbGVuZ3RoIGlzIDAKK1BBU1MgRGF0YVZpZXcxMjhf
b2ZzX3NsaWNlMDogY2xhc3NlcyBhcmUgW29iamVjdCBEYXRhVmlld10KK1BBU1MgRGF0YVZpZXcx
Mjhfb2ZzX3NsaWNlMDogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgRGF0
YVZpZXcxMjhfb2ZzX3NsaWNlMDogYnVmZmVyIGxlbmd0aHMgYXJlIDEyOAorUEFTUyBEYXRhVmll
dzEyOF9vZnNfc2xpY2UwOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgRGF0
YVZpZXcxMjhfb2ZzX3NsaWNlMDogb2Zmc2V0IGlzIDY0CitQQVNTIERhdGFWaWV3MTI4X29mc19z
bGljZTA6IGxlbmd0aCBpcyAwCitQQVNTIERhdGFWaWV3MTI4X29mc19zbGljZTE6IGNsYXNzZXMg
YXJlIFtvYmplY3QgRGF0YVZpZXddCitQQVNTIERhdGFWaWV3MTI4X29mc19zbGljZTE6IGNsYXNz
ZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIERhdGFWaWV3MTI4X29mc19zbGljZTE6
IGJ1ZmZlciBsZW5ndGhzIGFyZSAxMjgKK1BBU1MgRGF0YVZpZXcxMjhfb2ZzX3NsaWNlMTogYnVm
ZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIERhdGFWaWV3MTI4X29mc19zbGljZTE6
IG9mZnNldCBpcyA2NAorUEFTUyBEYXRhVmlldzEyOF9vZnNfc2xpY2UxOiBsZW5ndGggaXMgMQor
UEFTUyBEYXRhVmlldzEyOF9vZnNfc2xpY2UxNjogY2xhc3NlcyBhcmUgW29iamVjdCBEYXRhVmll
d10KK1BBU1MgRGF0YVZpZXcxMjhfb2ZzX3NsaWNlMTY6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJy
YXlCdWZmZXJdCitQQVNTIERhdGFWaWV3MTI4X29mc19zbGljZTE2OiBidWZmZXIgbGVuZ3RocyBh
cmUgMTI4CitQQVNTIERhdGFWaWV3MTI4X29mc19zbGljZTE2OiBidWZmZXJzIGhhdmUgdGhlIHNh
bWUgY29udGVudHMKK1BBU1MgRGF0YVZpZXcxMjhfb2ZzX3NsaWNlMTY6IG9mZnNldCBpcyA2NAor
UEFTUyBEYXRhVmlldzEyOF9vZnNfc2xpY2UxNjogbGVuZ3RoIGlzIDE2CitQQVNTIERhdGFWaWV3
MTI4X29mc19zbGljZV91bmFsaWduZWQ6IGNsYXNzZXMgYXJlIFtvYmplY3QgRGF0YVZpZXddCitQ
QVNTIERhdGFWaWV3MTI4X29mc19zbGljZV91bmFsaWduZWQ6IGNsYXNzZXMgYXJlIFtvYmplY3Qg
QXJyYXlCdWZmZXJdCitQQVNTIERhdGFWaWV3MTI4X29mc19zbGljZV91bmFsaWduZWQ6IGJ1ZmZl
ciBsZW5ndGhzIGFyZSAxMjgKK1BBU1MgRGF0YVZpZXcxMjhfb2ZzX3NsaWNlX3VuYWxpZ25lZDog
YnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIERhdGFWaWV3MTI4X29mc19zbGlj
ZV91bmFsaWduZWQ6IG9mZnNldCBpcyA2MworUEFTUyBEYXRhVmlldzEyOF9vZnNfc2xpY2VfdW5h
bGlnbmVkOiBsZW5ndGggaXMgMTUKK1BBU1MgSW50MzJfMDogY2xhc3NlcyBhcmUgW29iamVjdCBJ
bnQzMkFycmF5XQorUEFTUyBJbnQzMl8wOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVy
XQorUEFTUyBJbnQzMl8wOiBidWZmZXIgbGVuZ3RocyBhcmUgMAorUEFTUyBJbnQzMl8wOiBidWZm
ZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgSW50MzJfMDogb2Zmc2V0IGlzIDAKK1BB
U1MgSW50MzJfMDogbGVuZ3RoIGlzIDAKK1BBU1MgVWludDMyXzA6IGNsYXNzZXMgYXJlIFtvYmpl
Y3QgVWludDMyQXJyYXldCitQQVNTIFVpbnQzMl8wOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5
QnVmZmVyXQorUEFTUyBVaW50MzJfMDogYnVmZmVyIGxlbmd0aHMgYXJlIDAKK1BBU1MgVWludDMy
XzA6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBVaW50MzJfMDogb2Zmc2V0
IGlzIDAKK1BBU1MgVWludDMyXzA6IGxlbmd0aCBpcyAwCitQQVNTIEludDhfMDogY2xhc3NlcyBh
cmUgW29iamVjdCBJbnQ4QXJyYXldCitQQVNTIEludDhfMDogY2xhc3NlcyBhcmUgW29iamVjdCBB
cnJheUJ1ZmZlcl0KK1BBU1MgSW50OF8wOiBidWZmZXIgbGVuZ3RocyBhcmUgMAorUEFTUyBJbnQ4
XzA6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBJbnQ4XzA6IG9mZnNldCBp
cyAwCitQQVNTIEludDhfMDogbGVuZ3RoIGlzIDAKK1BBU1MgVWludDhfMDogY2xhc3NlcyBhcmUg
W29iamVjdCBVaW50OEFycmF5XQorUEFTUyBVaW50OF8wOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFy
cmF5QnVmZmVyXQorUEFTUyBVaW50OF8wOiBidWZmZXIgbGVuZ3RocyBhcmUgMAorUEFTUyBVaW50
OF8wOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgVWludDhfMDogb2Zmc2V0
IGlzIDAKK1BBU1MgVWludDhfMDogbGVuZ3RoIGlzIDAKK1BBU1MgSW50MTZfMDogY2xhc3NlcyBh
cmUgW29iamVjdCBJbnQxNkFycmF5XQorUEFTUyBJbnQxNl8wOiBjbGFzc2VzIGFyZSBbb2JqZWN0
IEFycmF5QnVmZmVyXQorUEFTUyBJbnQxNl8wOiBidWZmZXIgbGVuZ3RocyBhcmUgMAorUEFTUyBJ
bnQxNl8wOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgSW50MTZfMDogb2Zm
c2V0IGlzIDAKK1BBU1MgSW50MTZfMDogbGVuZ3RoIGlzIDAKK1BBU1MgVWludDE2XzA6IGNsYXNz
ZXMgYXJlIFtvYmplY3QgVWludDE2QXJyYXldCitQQVNTIFVpbnQxNl8wOiBjbGFzc2VzIGFyZSBb
b2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBVaW50MTZfMDogYnVmZmVyIGxlbmd0aHMgYXJlIDAK
K1BBU1MgVWludDE2XzA6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBVaW50
MTZfMDogb2Zmc2V0IGlzIDAKK1BBU1MgVWludDE2XzA6IGxlbmd0aCBpcyAwCitQQVNTIEZsb2F0
MzJfMDogY2xhc3NlcyBhcmUgW29iamVjdCBGbG9hdDMyQXJyYXldCitQQVNTIEZsb2F0MzJfMDog
Y2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgRmxvYXQzMl8wOiBidWZmZXIg
bGVuZ3RocyBhcmUgMAorUEFTUyBGbG9hdDMyXzA6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250
ZW50cworUEFTUyBGbG9hdDMyXzA6IG9mZnNldCBpcyAwCitQQVNTIEZsb2F0MzJfMDogbGVuZ3Ro
IGlzIDAKK1BBU1MgRmxvYXQ2NF8wOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEZsb2F0NjRBcnJheV0K
K1BBU1MgRmxvYXQ2NF8wOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBG
bG9hdDY0XzA6IGJ1ZmZlciBsZW5ndGhzIGFyZSAwCitQQVNTIEZsb2F0NjRfMDogYnVmZmVycyBo
YXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIEZsb2F0NjRfMDogb2Zmc2V0IGlzIDAKK1BBU1Mg
RmxvYXQ2NF8wOiBsZW5ndGggaXMgMAorUEFTUyBJbnQzMl8xOiBjbGFzc2VzIGFyZSBbb2JqZWN0
IEludDMyQXJyYXldCitQQVNTIEludDMyXzE6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZm
ZXJdCitQQVNTIEludDMyXzE6IGJ1ZmZlciBsZW5ndGhzIGFyZSA0CitQQVNTIEludDMyXzE6IGJ1
ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBJbnQzMl8xOiBvZmZzZXQgaXMgMAor
UEFTUyBJbnQzMl8xOiBsZW5ndGggaXMgNAorUEFTUyBVaW50MzJfMTogY2xhc3NlcyBhcmUgW29i
amVjdCBVaW50MzJBcnJheV0KK1BBU1MgVWludDMyXzE6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJy
YXlCdWZmZXJdCitQQVNTIFVpbnQzMl8xOiBidWZmZXIgbGVuZ3RocyBhcmUgNAorUEFTUyBVaW50
MzJfMTogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIFVpbnQzMl8xOiBvZmZz
ZXQgaXMgMAorUEFTUyBVaW50MzJfMTogbGVuZ3RoIGlzIDQKK1BBU1MgSW50OF8xOiBjbGFzc2Vz
IGFyZSBbb2JqZWN0IEludDhBcnJheV0KK1BBU1MgSW50OF8xOiBjbGFzc2VzIGFyZSBbb2JqZWN0
IEFycmF5QnVmZmVyXQorUEFTUyBJbnQ4XzE6IGJ1ZmZlciBsZW5ndGhzIGFyZSAxCitQQVNTIElu
dDhfMTogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIEludDhfMTogb2Zmc2V0
IGlzIDAKK1BBU1MgSW50OF8xOiBsZW5ndGggaXMgMQorUEFTUyBVaW50OF8xOiBjbGFzc2VzIGFy
ZSBbb2JqZWN0IFVpbnQ4QXJyYXldCitQQVNTIFVpbnQ4XzE6IGNsYXNzZXMgYXJlIFtvYmplY3Qg
QXJyYXlCdWZmZXJdCitQQVNTIFVpbnQ4XzE6IGJ1ZmZlciBsZW5ndGhzIGFyZSAxCitQQVNTIFVp
bnQ4XzE6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBVaW50OF8xOiBvZmZz
ZXQgaXMgMAorUEFTUyBVaW50OF8xOiBsZW5ndGggaXMgMQorUEFTUyBJbnQxNl8xOiBjbGFzc2Vz
IGFyZSBbb2JqZWN0IEludDE2QXJyYXldCitQQVNTIEludDE2XzE6IGNsYXNzZXMgYXJlIFtvYmpl
Y3QgQXJyYXlCdWZmZXJdCitQQVNTIEludDE2XzE6IGJ1ZmZlciBsZW5ndGhzIGFyZSAyCitQQVNT
IEludDE2XzE6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBJbnQxNl8xOiBv
ZmZzZXQgaXMgMAorUEFTUyBJbnQxNl8xOiBsZW5ndGggaXMgMgorUEFTUyBVaW50MTZfMTogY2xh
c3NlcyBhcmUgW29iamVjdCBVaW50MTZBcnJheV0KK1BBU1MgVWludDE2XzE6IGNsYXNzZXMgYXJl
IFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIFVpbnQxNl8xOiBidWZmZXIgbGVuZ3RocyBhcmUg
MgorUEFTUyBVaW50MTZfMTogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIFVp
bnQxNl8xOiBvZmZzZXQgaXMgMAorUEFTUyBVaW50MTZfMTogbGVuZ3RoIGlzIDIKK1BBU1MgRmxv
YXQzMl8xOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEZsb2F0MzJBcnJheV0KK1BBU1MgRmxvYXQzMl8x
OiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBGbG9hdDMyXzE6IGJ1ZmZl
ciBsZW5ndGhzIGFyZSA0CitQQVNTIEZsb2F0MzJfMTogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNv
bnRlbnRzCitQQVNTIEZsb2F0MzJfMTogb2Zmc2V0IGlzIDAKK1BBU1MgRmxvYXQzMl8xOiBsZW5n
dGggaXMgNAorUEFTUyBGbG9hdDY0XzE6IGNsYXNzZXMgYXJlIFtvYmplY3QgRmxvYXQ2NEFycmF5
XQorUEFTUyBGbG9hdDY0XzE6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNT
IEZsb2F0NjRfMTogYnVmZmVyIGxlbmd0aHMgYXJlIDgKK1BBU1MgRmxvYXQ2NF8xOiBidWZmZXJz
IGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgRmxvYXQ2NF8xOiBvZmZzZXQgaXMgMAorUEFT
UyBGbG9hdDY0XzE6IGxlbmd0aCBpcyA4CitQQVNTIEludDMyXzEyODogY2xhc3NlcyBhcmUgW29i
amVjdCBJbnQzMkFycmF5XQorUEFTUyBJbnQzMl8xMjg6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJy
YXlCdWZmZXJdCitQQVNTIEludDMyXzEyODogYnVmZmVyIGxlbmd0aHMgYXJlIDUxMgorUEFTUyBJ
bnQzMl8xMjg6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBJbnQzMl8xMjg6
IG9mZnNldCBpcyAwCitQQVNTIEludDMyXzEyODogbGVuZ3RoIGlzIDUxMgorUEFTUyBVaW50MzJf
MTI4OiBjbGFzc2VzIGFyZSBbb2JqZWN0IFVpbnQzMkFycmF5XQorUEFTUyBVaW50MzJfMTI4OiBj
bGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBVaW50MzJfMTI4OiBidWZmZXIg
bGVuZ3RocyBhcmUgNTEyCitQQVNTIFVpbnQzMl8xMjg6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBj
b250ZW50cworUEFTUyBVaW50MzJfMTI4OiBvZmZzZXQgaXMgMAorUEFTUyBVaW50MzJfMTI4OiBs
ZW5ndGggaXMgNTEyCitQQVNTIEludDhfMTI4OiBjbGFzc2VzIGFyZSBbb2JqZWN0IEludDhBcnJh
eV0KK1BBU1MgSW50OF8xMjg6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNT
IEludDhfMTI4OiBidWZmZXIgbGVuZ3RocyBhcmUgMTI4CitQQVNTIEludDhfMTI4OiBidWZmZXJz
IGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgSW50OF8xMjg6IG9mZnNldCBpcyAwCitQQVNT
IEludDhfMTI4OiBsZW5ndGggaXMgMTI4CitQQVNTIFVpbnQ4XzEyODogY2xhc3NlcyBhcmUgW29i
amVjdCBVaW50OEFycmF5XQorUEFTUyBVaW50OF8xMjg6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJy
YXlCdWZmZXJdCitQQVNTIFVpbnQ4XzEyODogYnVmZmVyIGxlbmd0aHMgYXJlIDEyOAorUEFTUyBV
aW50OF8xMjg6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBVaW50OF8xMjg6
IG9mZnNldCBpcyAwCitQQVNTIFVpbnQ4XzEyODogbGVuZ3RoIGlzIDEyOAorUEFTUyBJbnQxNl8x
Mjg6IGNsYXNzZXMgYXJlIFtvYmplY3QgSW50MTZBcnJheV0KK1BBU1MgSW50MTZfMTI4OiBjbGFz
c2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBJbnQxNl8xMjg6IGJ1ZmZlciBsZW5n
dGhzIGFyZSAyNTYKK1BBU1MgSW50MTZfMTI4OiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVu
dHMKK1BBU1MgSW50MTZfMTI4OiBvZmZzZXQgaXMgMAorUEFTUyBJbnQxNl8xMjg6IGxlbmd0aCBp
cyAyNTYKK1BBU1MgVWludDE2XzEyODogY2xhc3NlcyBhcmUgW29iamVjdCBVaW50MTZBcnJheV0K
K1BBU1MgVWludDE2XzEyODogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1Mg
VWludDE2XzEyODogYnVmZmVyIGxlbmd0aHMgYXJlIDI1NgorUEFTUyBVaW50MTZfMTI4OiBidWZm
ZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgVWludDE2XzEyODogb2Zmc2V0IGlzIDAK
K1BBU1MgVWludDE2XzEyODogbGVuZ3RoIGlzIDI1NgorUEFTUyBGbG9hdDMyXzEyODogY2xhc3Nl
cyBhcmUgW29iamVjdCBGbG9hdDMyQXJyYXldCitQQVNTIEZsb2F0MzJfMTI4OiBjbGFzc2VzIGFy
ZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBGbG9hdDMyXzEyODogYnVmZmVyIGxlbmd0aHMg
YXJlIDUxMgorUEFTUyBGbG9hdDMyXzEyODogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRz
CitQQVNTIEZsb2F0MzJfMTI4OiBvZmZzZXQgaXMgMAorUEFTUyBGbG9hdDMyXzEyODogbGVuZ3Ro
IGlzIDUxMgorUEFTUyBGbG9hdDY0XzEyODogY2xhc3NlcyBhcmUgW29iamVjdCBGbG9hdDY0QXJy
YXldCitQQVNTIEZsb2F0NjRfMTI4OiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQor
UEFTUyBGbG9hdDY0XzEyODogYnVmZmVyIGxlbmd0aHMgYXJlIDEwMjQKK1BBU1MgRmxvYXQ2NF8x
Mjg6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBGbG9hdDY0XzEyODogb2Zm
c2V0IGlzIDAKK1BBU1MgRmxvYXQ2NF8xMjg6IGxlbmd0aCBpcyAxMDI0CitQQVNTIEludDMyXzBi
OiBjbGFzc2VzIGFyZSBbb2JqZWN0IEludDMyQXJyYXldCitQQVNTIEludDMyXzBiOiBjbGFzc2Vz
IGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBJbnQzMl8wYjogYnVmZmVyIGxlbmd0aHMg
YXJlIDAKK1BBU1MgSW50MzJfMGI6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFT
UyBJbnQzMl8wYjogb2Zmc2V0IGlzIDAKK1BBU1MgSW50MzJfMGI6IGxlbmd0aCBpcyAwCitQQVNT
IFVpbnQzMl8wYjogY2xhc3NlcyBhcmUgW29iamVjdCBVaW50MzJBcnJheV0KK1BBU1MgVWludDMy
XzBiOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBVaW50MzJfMGI6IGJ1
ZmZlciBsZW5ndGhzIGFyZSAwCitQQVNTIFVpbnQzMl8wYjogYnVmZmVycyBoYXZlIHRoZSBzYW1l
IGNvbnRlbnRzCitQQVNTIFVpbnQzMl8wYjogb2Zmc2V0IGlzIDAKK1BBU1MgVWludDMyXzBiOiBs
ZW5ndGggaXMgMAorUEFTUyBJbnQ4XzBiOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEludDhBcnJheV0K
K1BBU1MgSW50OF8wYjogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgSW50
OF8wYjogYnVmZmVyIGxlbmd0aHMgYXJlIDAKK1BBU1MgSW50OF8wYjogYnVmZmVycyBoYXZlIHRo
ZSBzYW1lIGNvbnRlbnRzCitQQVNTIEludDhfMGI6IG9mZnNldCBpcyAwCitQQVNTIEludDhfMGI6
IGxlbmd0aCBpcyAwCitQQVNTIFVpbnQ4XzBiOiBjbGFzc2VzIGFyZSBbb2JqZWN0IFVpbnQ4QXJy
YXldCitQQVNTIFVpbnQ4XzBiOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFT
UyBVaW50OF8wYjogYnVmZmVyIGxlbmd0aHMgYXJlIDAKK1BBU1MgVWludDhfMGI6IGJ1ZmZlcnMg
aGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBVaW50OF8wYjogb2Zmc2V0IGlzIDAKK1BBU1Mg
VWludDhfMGI6IGxlbmd0aCBpcyAwCitQQVNTIEludDE2XzBiOiBjbGFzc2VzIGFyZSBbb2JqZWN0
IEludDE2QXJyYXldCitQQVNTIEludDE2XzBiOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVm
ZmVyXQorUEFTUyBJbnQxNl8wYjogYnVmZmVyIGxlbmd0aHMgYXJlIDAKK1BBU1MgSW50MTZfMGI6
IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBJbnQxNl8wYjogb2Zmc2V0IGlz
IDAKK1BBU1MgSW50MTZfMGI6IGxlbmd0aCBpcyAwCitQQVNTIFVpbnQxNl8wYjogY2xhc3NlcyBh
cmUgW29iamVjdCBVaW50MTZBcnJheV0KK1BBU1MgVWludDE2XzBiOiBjbGFzc2VzIGFyZSBbb2Jq
ZWN0IEFycmF5QnVmZmVyXQorUEFTUyBVaW50MTZfMGI6IGJ1ZmZlciBsZW5ndGhzIGFyZSAwCitQ
QVNTIFVpbnQxNl8wYjogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIFVpbnQx
Nl8wYjogb2Zmc2V0IGlzIDAKK1BBU1MgVWludDE2XzBiOiBsZW5ndGggaXMgMAorUEFTUyBGbG9h
dDMyXzBiOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEZsb2F0MzJBcnJheV0KK1BBU1MgRmxvYXQzMl8w
YjogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgRmxvYXQzMl8wYjogYnVm
ZmVyIGxlbmd0aHMgYXJlIDAKK1BBU1MgRmxvYXQzMl8wYjogYnVmZmVycyBoYXZlIHRoZSBzYW1l
IGNvbnRlbnRzCitQQVNTIEZsb2F0MzJfMGI6IG9mZnNldCBpcyAwCitQQVNTIEZsb2F0MzJfMGI6
IGxlbmd0aCBpcyAwCitQQVNTIEZsb2F0NjRfMGI6IGNsYXNzZXMgYXJlIFtvYmplY3QgRmxvYXQ2
NEFycmF5XQorUEFTUyBGbG9hdDY0XzBiOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVy
XQorUEFTUyBGbG9hdDY0XzBiOiBidWZmZXIgbGVuZ3RocyBhcmUgMAorUEFTUyBGbG9hdDY0XzBi
OiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgRmxvYXQ2NF8wYjogb2Zmc2V0
IGlzIDAKK1BBU1MgRmxvYXQ2NF8wYjogbGVuZ3RoIGlzIDAKK1BBU1MgSW50MzJfMWI6IGNsYXNz
ZXMgYXJlIFtvYmplY3QgSW50MzJBcnJheV0KK1BBU1MgSW50MzJfMWI6IGNsYXNzZXMgYXJlIFtv
YmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIEludDMyXzFiOiBidWZmZXIgbGVuZ3RocyBhcmUgNAor
UEFTUyBJbnQzMl8xYjogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIEludDMy
XzFiOiBvZmZzZXQgaXMgMAorUEFTUyBJbnQzMl8xYjogbGVuZ3RoIGlzIDQKK1BBU1MgVWludDMy
XzFiOiBjbGFzc2VzIGFyZSBbb2JqZWN0IFVpbnQzMkFycmF5XQorUEFTUyBVaW50MzJfMWI6IGNs
YXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIFVpbnQzMl8xYjogYnVmZmVyIGxl
bmd0aHMgYXJlIDQKK1BBU1MgVWludDMyXzFiOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVu
dHMKK1BBU1MgVWludDMyXzFiOiBvZmZzZXQgaXMgMAorUEFTUyBVaW50MzJfMWI6IGxlbmd0aCBp
cyA0CitQQVNTIEludDhfMWI6IGNsYXNzZXMgYXJlIFtvYmplY3QgSW50OEFycmF5XQorUEFTUyBJ
bnQ4XzFiOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBJbnQ4XzFiOiBi
dWZmZXIgbGVuZ3RocyBhcmUgMQorUEFTUyBJbnQ4XzFiOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUg
Y29udGVudHMKK1BBU1MgSW50OF8xYjogb2Zmc2V0IGlzIDAKK1BBU1MgSW50OF8xYjogbGVuZ3Ro
IGlzIDEKK1BBU1MgVWludDhfMWI6IGNsYXNzZXMgYXJlIFtvYmplY3QgVWludDhBcnJheV0KK1BB
U1MgVWludDhfMWI6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIFVpbnQ4
XzFiOiBidWZmZXIgbGVuZ3RocyBhcmUgMQorUEFTUyBVaW50OF8xYjogYnVmZmVycyBoYXZlIHRo
ZSBzYW1lIGNvbnRlbnRzCitQQVNTIFVpbnQ4XzFiOiBvZmZzZXQgaXMgMAorUEFTUyBVaW50OF8x
YjogbGVuZ3RoIGlzIDEKK1BBU1MgSW50MTZfMWI6IGNsYXNzZXMgYXJlIFtvYmplY3QgSW50MTZB
cnJheV0KK1BBU1MgSW50MTZfMWI6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQ
QVNTIEludDE2XzFiOiBidWZmZXIgbGVuZ3RocyBhcmUgMgorUEFTUyBJbnQxNl8xYjogYnVmZmVy
cyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIEludDE2XzFiOiBvZmZzZXQgaXMgMAorUEFT
UyBJbnQxNl8xYjogbGVuZ3RoIGlzIDIKK1BBU1MgVWludDE2XzFiOiBjbGFzc2VzIGFyZSBbb2Jq
ZWN0IFVpbnQxNkFycmF5XQorUEFTUyBVaW50MTZfMWI6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJy
YXlCdWZmZXJdCitQQVNTIFVpbnQxNl8xYjogYnVmZmVyIGxlbmd0aHMgYXJlIDIKK1BBU1MgVWlu
dDE2XzFiOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgVWludDE2XzFiOiBv
ZmZzZXQgaXMgMAorUEFTUyBVaW50MTZfMWI6IGxlbmd0aCBpcyAyCitQQVNTIEZsb2F0MzJfMWI6
IGNsYXNzZXMgYXJlIFtvYmplY3QgRmxvYXQzMkFycmF5XQorUEFTUyBGbG9hdDMyXzFiOiBjbGFz
c2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBGbG9hdDMyXzFiOiBidWZmZXIgbGVu
Z3RocyBhcmUgNAorUEFTUyBGbG9hdDMyXzFiOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVu
dHMKK1BBU1MgRmxvYXQzMl8xYjogb2Zmc2V0IGlzIDAKK1BBU1MgRmxvYXQzMl8xYjogbGVuZ3Ro
IGlzIDQKK1BBU1MgRmxvYXQ2NF8xYjogY2xhc3NlcyBhcmUgW29iamVjdCBGbG9hdDY0QXJyYXld
CitQQVNTIEZsb2F0NjRfMWI6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNT
IEZsb2F0NjRfMWI6IGJ1ZmZlciBsZW5ndGhzIGFyZSA4CitQQVNTIEZsb2F0NjRfMWI6IGJ1ZmZl
cnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBGbG9hdDY0XzFiOiBvZmZzZXQgaXMgMAor
UEFTUyBGbG9hdDY0XzFiOiBsZW5ndGggaXMgOAorUEFTUyBJbnQzMl8xMjhiOiBjbGFzc2VzIGFy
ZSBbb2JqZWN0IEludDMyQXJyYXldCitQQVNTIEludDMyXzEyOGI6IGNsYXNzZXMgYXJlIFtvYmpl
Y3QgQXJyYXlCdWZmZXJdCitQQVNTIEludDMyXzEyOGI6IGJ1ZmZlciBsZW5ndGhzIGFyZSA1MTIK
K1BBU1MgSW50MzJfMTI4YjogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIElu
dDMyXzEyOGI6IG9mZnNldCBpcyAwCitQQVNTIEludDMyXzEyOGI6IGxlbmd0aCBpcyA1MTIKK1BB
U1MgVWludDMyXzEyOGI6IGNsYXNzZXMgYXJlIFtvYmplY3QgVWludDMyQXJyYXldCitQQVNTIFVp
bnQzMl8xMjhiOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBVaW50MzJf
MTI4YjogYnVmZmVyIGxlbmd0aHMgYXJlIDUxMgorUEFTUyBVaW50MzJfMTI4YjogYnVmZmVycyBo
YXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIFVpbnQzMl8xMjhiOiBvZmZzZXQgaXMgMAorUEFT
UyBVaW50MzJfMTI4YjogbGVuZ3RoIGlzIDUxMgorUEFTUyBJbnQ4XzEyOGI6IGNsYXNzZXMgYXJl
IFtvYmplY3QgSW50OEFycmF5XQorUEFTUyBJbnQ4XzEyOGI6IGNsYXNzZXMgYXJlIFtvYmplY3Qg
QXJyYXlCdWZmZXJdCitQQVNTIEludDhfMTI4YjogYnVmZmVyIGxlbmd0aHMgYXJlIDEyOAorUEFT
UyBJbnQ4XzEyOGI6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBJbnQ4XzEy
OGI6IG9mZnNldCBpcyAwCitQQVNTIEludDhfMTI4YjogbGVuZ3RoIGlzIDEyOAorUEFTUyBVaW50
OF8xMjhiOiBjbGFzc2VzIGFyZSBbb2JqZWN0IFVpbnQ4QXJyYXldCitQQVNTIFVpbnQ4XzEyOGI6
IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIFVpbnQ4XzEyOGI6IGJ1ZmZl
ciBsZW5ndGhzIGFyZSAxMjgKK1BBU1MgVWludDhfMTI4YjogYnVmZmVycyBoYXZlIHRoZSBzYW1l
IGNvbnRlbnRzCitQQVNTIFVpbnQ4XzEyOGI6IG9mZnNldCBpcyAwCitQQVNTIFVpbnQ4XzEyOGI6
IGxlbmd0aCBpcyAxMjgKK1BBU1MgSW50MTZfMTI4YjogY2xhc3NlcyBhcmUgW29iamVjdCBJbnQx
NkFycmF5XQorUEFTUyBJbnQxNl8xMjhiOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVy
XQorUEFTUyBJbnQxNl8xMjhiOiBidWZmZXIgbGVuZ3RocyBhcmUgMjU2CitQQVNTIEludDE2XzEy
OGI6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBJbnQxNl8xMjhiOiBvZmZz
ZXQgaXMgMAorUEFTUyBJbnQxNl8xMjhiOiBsZW5ndGggaXMgMjU2CitQQVNTIFVpbnQxNl8xMjhi
OiBjbGFzc2VzIGFyZSBbb2JqZWN0IFVpbnQxNkFycmF5XQorUEFTUyBVaW50MTZfMTI4YjogY2xh
c3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgVWludDE2XzEyOGI6IGJ1ZmZlciBs
ZW5ndGhzIGFyZSAyNTYKK1BBU1MgVWludDE2XzEyOGI6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBj
b250ZW50cworUEFTUyBVaW50MTZfMTI4Yjogb2Zmc2V0IGlzIDAKK1BBU1MgVWludDE2XzEyOGI6
IGxlbmd0aCBpcyAyNTYKK1BBU1MgRmxvYXQzMl8xMjhiOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEZs
b2F0MzJBcnJheV0KK1BBU1MgRmxvYXQzMl8xMjhiOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5
QnVmZmVyXQorUEFTUyBGbG9hdDMyXzEyOGI6IGJ1ZmZlciBsZW5ndGhzIGFyZSA1MTIKK1BBU1Mg
RmxvYXQzMl8xMjhiOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgRmxvYXQz
Ml8xMjhiOiBvZmZzZXQgaXMgMAorUEFTUyBGbG9hdDMyXzEyOGI6IGxlbmd0aCBpcyA1MTIKK1BB
U1MgRmxvYXQ2NF8xMjhiOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEZsb2F0NjRBcnJheV0KK1BBU1Mg
RmxvYXQ2NF8xMjhiOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBGbG9h
dDY0XzEyOGI6IGJ1ZmZlciBsZW5ndGhzIGFyZSAxMDI0CitQQVNTIEZsb2F0NjRfMTI4YjogYnVm
ZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIEZsb2F0NjRfMTI4Yjogb2Zmc2V0IGlz
IDAKK1BBU1MgRmxvYXQ2NF8xMjhiOiBsZW5ndGggaXMgMTAyNAorUEFTUyBJbnQzMl8xYl9vZnNf
ZW5kOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEludDMyQXJyYXldCitQQVNTIEludDMyXzFiX29mc19l
bmQ6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIEludDMyXzFiX29mc19l
bmQ6IGJ1ZmZlciBsZW5ndGhzIGFyZSA0CitQQVNTIEludDMyXzFiX29mc19lbmQ6IGJ1ZmZlcnMg
aGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBJbnQzMl8xYl9vZnNfZW5kOiBvZmZzZXQgaXMg
NAorUEFTUyBJbnQzMl8xYl9vZnNfZW5kOiBsZW5ndGggaXMgMAorUEFTUyBVaW50MzJfMWJfb2Zz
X2VuZDogY2xhc3NlcyBhcmUgW29iamVjdCBVaW50MzJBcnJheV0KK1BBU1MgVWludDMyXzFiX29m
c19lbmQ6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIFVpbnQzMl8xYl9v
ZnNfZW5kOiBidWZmZXIgbGVuZ3RocyBhcmUgNAorUEFTUyBVaW50MzJfMWJfb2ZzX2VuZDogYnVm
ZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIFVpbnQzMl8xYl9vZnNfZW5kOiBvZmZz
ZXQgaXMgNAorUEFTUyBVaW50MzJfMWJfb2ZzX2VuZDogbGVuZ3RoIGlzIDAKK1BBU1MgSW50OF8x
Yl9vZnNfZW5kOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEludDhBcnJheV0KK1BBU1MgSW50OF8xYl9v
ZnNfZW5kOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBJbnQ4XzFiX29m
c19lbmQ6IGJ1ZmZlciBsZW5ndGhzIGFyZSAxCitQQVNTIEludDhfMWJfb2ZzX2VuZDogYnVmZmVy
cyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIEludDhfMWJfb2ZzX2VuZDogb2Zmc2V0IGlz
IDEKK1BBU1MgSW50OF8xYl9vZnNfZW5kOiBsZW5ndGggaXMgMAorUEFTUyBVaW50OF8xYl9vZnNf
ZW5kOiBjbGFzc2VzIGFyZSBbb2JqZWN0IFVpbnQ4QXJyYXldCitQQVNTIFVpbnQ4XzFiX29mc19l
bmQ6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIFVpbnQ4XzFiX29mc19l
bmQ6IGJ1ZmZlciBsZW5ndGhzIGFyZSAxCitQQVNTIFVpbnQ4XzFiX29mc19lbmQ6IGJ1ZmZlcnMg
aGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBVaW50OF8xYl9vZnNfZW5kOiBvZmZzZXQgaXMg
MQorUEFTUyBVaW50OF8xYl9vZnNfZW5kOiBsZW5ndGggaXMgMAorUEFTUyBJbnQxNl8xYl9vZnNf
ZW5kOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEludDE2QXJyYXldCitQQVNTIEludDE2XzFiX29mc19l
bmQ6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIEludDE2XzFiX29mc19l
bmQ6IGJ1ZmZlciBsZW5ndGhzIGFyZSAyCitQQVNTIEludDE2XzFiX29mc19lbmQ6IGJ1ZmZlcnMg
aGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBJbnQxNl8xYl9vZnNfZW5kOiBvZmZzZXQgaXMg
MgorUEFTUyBJbnQxNl8xYl9vZnNfZW5kOiBsZW5ndGggaXMgMAorUEFTUyBVaW50MTZfMWJfb2Zz
X2VuZDogY2xhc3NlcyBhcmUgW29iamVjdCBVaW50MTZBcnJheV0KK1BBU1MgVWludDE2XzFiX29m
c19lbmQ6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIFVpbnQxNl8xYl9v
ZnNfZW5kOiBidWZmZXIgbGVuZ3RocyBhcmUgMgorUEFTUyBVaW50MTZfMWJfb2ZzX2VuZDogYnVm
ZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIFVpbnQxNl8xYl9vZnNfZW5kOiBvZmZz
ZXQgaXMgMgorUEFTUyBVaW50MTZfMWJfb2ZzX2VuZDogbGVuZ3RoIGlzIDAKK1BBU1MgRmxvYXQz
Ml8xYl9vZnNfZW5kOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEZsb2F0MzJBcnJheV0KK1BBU1MgRmxv
YXQzMl8xYl9vZnNfZW5kOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBG
bG9hdDMyXzFiX29mc19lbmQ6IGJ1ZmZlciBsZW5ndGhzIGFyZSA0CitQQVNTIEZsb2F0MzJfMWJf
b2ZzX2VuZDogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIEZsb2F0MzJfMWJf
b2ZzX2VuZDogb2Zmc2V0IGlzIDQKK1BBU1MgRmxvYXQzMl8xYl9vZnNfZW5kOiBsZW5ndGggaXMg
MAorUEFTUyBGbG9hdDY0XzFiX29mc19lbmQ6IGNsYXNzZXMgYXJlIFtvYmplY3QgRmxvYXQ2NEFy
cmF5XQorUEFTUyBGbG9hdDY0XzFiX29mc19lbmQ6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlC
dWZmZXJdCitQQVNTIEZsb2F0NjRfMWJfb2ZzX2VuZDogYnVmZmVyIGxlbmd0aHMgYXJlIDgKK1BB
U1MgRmxvYXQ2NF8xYl9vZnNfZW5kOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BB
U1MgRmxvYXQ2NF8xYl9vZnNfZW5kOiBvZmZzZXQgaXMgOAorUEFTUyBGbG9hdDY0XzFiX29mc19l
bmQ6IGxlbmd0aCBpcyAwCitQQVNTIEludDMyXzEyOGJfb2ZzX2VuZDogY2xhc3NlcyBhcmUgW29i
amVjdCBJbnQzMkFycmF5XQorUEFTUyBJbnQzMl8xMjhiX29mc19lbmQ6IGNsYXNzZXMgYXJlIFtv
YmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIEludDMyXzEyOGJfb2ZzX2VuZDogYnVmZmVyIGxlbmd0
aHMgYXJlIDUxMgorUEFTUyBJbnQzMl8xMjhiX29mc19lbmQ6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2Ft
ZSBjb250ZW50cworUEFTUyBJbnQzMl8xMjhiX29mc19lbmQ6IG9mZnNldCBpcyA1MTIKK1BBU1Mg
SW50MzJfMTI4Yl9vZnNfZW5kOiBsZW5ndGggaXMgMAorUEFTUyBVaW50MzJfMTI4Yl9vZnNfZW5k
OiBjbGFzc2VzIGFyZSBbb2JqZWN0IFVpbnQzMkFycmF5XQorUEFTUyBVaW50MzJfMTI4Yl9vZnNf
ZW5kOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBVaW50MzJfMTI4Yl9v
ZnNfZW5kOiBidWZmZXIgbGVuZ3RocyBhcmUgNTEyCitQQVNTIFVpbnQzMl8xMjhiX29mc19lbmQ6
IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBVaW50MzJfMTI4Yl9vZnNfZW5k
OiBvZmZzZXQgaXMgNTEyCitQQVNTIFVpbnQzMl8xMjhiX29mc19lbmQ6IGxlbmd0aCBpcyAwCitQ
QVNTIEludDhfMTI4Yl9vZnNfZW5kOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEludDhBcnJheV0KK1BB
U1MgSW50OF8xMjhiX29mc19lbmQ6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQ
QVNTIEludDhfMTI4Yl9vZnNfZW5kOiBidWZmZXIgbGVuZ3RocyBhcmUgMTI4CitQQVNTIEludDhf
MTI4Yl9vZnNfZW5kOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgSW50OF8x
MjhiX29mc19lbmQ6IG9mZnNldCBpcyAxMjgKK1BBU1MgSW50OF8xMjhiX29mc19lbmQ6IGxlbmd0
aCBpcyAwCitQQVNTIFVpbnQ4XzEyOGJfb2ZzX2VuZDogY2xhc3NlcyBhcmUgW29iamVjdCBVaW50
OEFycmF5XQorUEFTUyBVaW50OF8xMjhiX29mc19lbmQ6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJy
YXlCdWZmZXJdCitQQVNTIFVpbnQ4XzEyOGJfb2ZzX2VuZDogYnVmZmVyIGxlbmd0aHMgYXJlIDEy
OAorUEFTUyBVaW50OF8xMjhiX29mc19lbmQ6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50
cworUEFTUyBVaW50OF8xMjhiX29mc19lbmQ6IG9mZnNldCBpcyAxMjgKK1BBU1MgVWludDhfMTI4
Yl9vZnNfZW5kOiBsZW5ndGggaXMgMAorUEFTUyBJbnQxNl8xMjhiX29mc19lbmQ6IGNsYXNzZXMg
YXJlIFtvYmplY3QgSW50MTZBcnJheV0KK1BBU1MgSW50MTZfMTI4Yl9vZnNfZW5kOiBjbGFzc2Vz
IGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBJbnQxNl8xMjhiX29mc19lbmQ6IGJ1ZmZl
ciBsZW5ndGhzIGFyZSAyNTYKK1BBU1MgSW50MTZfMTI4Yl9vZnNfZW5kOiBidWZmZXJzIGhhdmUg
dGhlIHNhbWUgY29udGVudHMKK1BBU1MgSW50MTZfMTI4Yl9vZnNfZW5kOiBvZmZzZXQgaXMgMjU2
CitQQVNTIEludDE2XzEyOGJfb2ZzX2VuZDogbGVuZ3RoIGlzIDAKK1BBU1MgVWludDE2XzEyOGJf
b2ZzX2VuZDogY2xhc3NlcyBhcmUgW29iamVjdCBVaW50MTZBcnJheV0KK1BBU1MgVWludDE2XzEy
OGJfb2ZzX2VuZDogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgVWludDE2
XzEyOGJfb2ZzX2VuZDogYnVmZmVyIGxlbmd0aHMgYXJlIDI1NgorUEFTUyBVaW50MTZfMTI4Yl9v
ZnNfZW5kOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgVWludDE2XzEyOGJf
b2ZzX2VuZDogb2Zmc2V0IGlzIDI1NgorUEFTUyBVaW50MTZfMTI4Yl9vZnNfZW5kOiBsZW5ndGgg
aXMgMAorUEFTUyBGbG9hdDMyXzEyOGJfb2ZzX2VuZDogY2xhc3NlcyBhcmUgW29iamVjdCBGbG9h
dDMyQXJyYXldCitQQVNTIEZsb2F0MzJfMTI4Yl9vZnNfZW5kOiBjbGFzc2VzIGFyZSBbb2JqZWN0
IEFycmF5QnVmZmVyXQorUEFTUyBGbG9hdDMyXzEyOGJfb2ZzX2VuZDogYnVmZmVyIGxlbmd0aHMg
YXJlIDUxMgorUEFTUyBGbG9hdDMyXzEyOGJfb2ZzX2VuZDogYnVmZmVycyBoYXZlIHRoZSBzYW1l
IGNvbnRlbnRzCitQQVNTIEZsb2F0MzJfMTI4Yl9vZnNfZW5kOiBvZmZzZXQgaXMgNTEyCitQQVNT
IEZsb2F0MzJfMTI4Yl9vZnNfZW5kOiBsZW5ndGggaXMgMAorUEFTUyBGbG9hdDY0XzEyOGJfb2Zz
X2VuZDogY2xhc3NlcyBhcmUgW29iamVjdCBGbG9hdDY0QXJyYXldCitQQVNTIEZsb2F0NjRfMTI4
Yl9vZnNfZW5kOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBGbG9hdDY0
XzEyOGJfb2ZzX2VuZDogYnVmZmVyIGxlbmd0aHMgYXJlIDEwMjQKK1BBU1MgRmxvYXQ2NF8xMjhi
X29mc19lbmQ6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBGbG9hdDY0XzEy
OGJfb2ZzX2VuZDogb2Zmc2V0IGlzIDEwMjQKK1BBU1MgRmxvYXQ2NF8xMjhiX29mc19lbmQ6IGxl
bmd0aCBpcyAwCitQQVNTIEludDMyXzEyOGJfb2ZzX3NsaWNlMDogY2xhc3NlcyBhcmUgW29iamVj
dCBJbnQzMkFycmF5XQorUEFTUyBJbnQzMl8xMjhiX29mc19zbGljZTA6IGNsYXNzZXMgYXJlIFtv
YmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIEludDMyXzEyOGJfb2ZzX3NsaWNlMDogYnVmZmVyIGxl
bmd0aHMgYXJlIDUxMgorUEFTUyBJbnQzMl8xMjhiX29mc19zbGljZTA6IGJ1ZmZlcnMgaGF2ZSB0
aGUgc2FtZSBjb250ZW50cworUEFTUyBJbnQzMl8xMjhiX29mc19zbGljZTA6IG9mZnNldCBpcyAy
NTYKK1BBU1MgSW50MzJfMTI4Yl9vZnNfc2xpY2UwOiBsZW5ndGggaXMgMAorUEFTUyBVaW50MzJf
MTI4Yl9vZnNfc2xpY2UwOiBjbGFzc2VzIGFyZSBbb2JqZWN0IFVpbnQzMkFycmF5XQorUEFTUyBV
aW50MzJfMTI4Yl9vZnNfc2xpY2UwOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQor
UEFTUyBVaW50MzJfMTI4Yl9vZnNfc2xpY2UwOiBidWZmZXIgbGVuZ3RocyBhcmUgNTEyCitQQVNT
IFVpbnQzMl8xMjhiX29mc19zbGljZTA6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cwor
UEFTUyBVaW50MzJfMTI4Yl9vZnNfc2xpY2UwOiBvZmZzZXQgaXMgMjU2CitQQVNTIFVpbnQzMl8x
MjhiX29mc19zbGljZTA6IGxlbmd0aCBpcyAwCitQQVNTIEludDhfMTI4Yl9vZnNfc2xpY2UwOiBj
bGFzc2VzIGFyZSBbb2JqZWN0IEludDhBcnJheV0KK1BBU1MgSW50OF8xMjhiX29mc19zbGljZTA6
IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIEludDhfMTI4Yl9vZnNfc2xp
Y2UwOiBidWZmZXIgbGVuZ3RocyBhcmUgMTI4CitQQVNTIEludDhfMTI4Yl9vZnNfc2xpY2UwOiBi
dWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgSW50OF8xMjhiX29mc19zbGljZTA6
IG9mZnNldCBpcyA2NAorUEFTUyBJbnQ4XzEyOGJfb2ZzX3NsaWNlMDogbGVuZ3RoIGlzIDAKK1BB
U1MgVWludDhfMTI4Yl9vZnNfc2xpY2UwOiBjbGFzc2VzIGFyZSBbb2JqZWN0IFVpbnQ4QXJyYXld
CitQQVNTIFVpbnQ4XzEyOGJfb2ZzX3NsaWNlMDogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1
ZmZlcl0KK1BBU1MgVWludDhfMTI4Yl9vZnNfc2xpY2UwOiBidWZmZXIgbGVuZ3RocyBhcmUgMTI4
CitQQVNTIFVpbnQ4XzEyOGJfb2ZzX3NsaWNlMDogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRl
bnRzCitQQVNTIFVpbnQ4XzEyOGJfb2ZzX3NsaWNlMDogb2Zmc2V0IGlzIDY0CitQQVNTIFVpbnQ4
XzEyOGJfb2ZzX3NsaWNlMDogbGVuZ3RoIGlzIDAKK1BBU1MgSW50MTZfMTI4Yl9vZnNfc2xpY2Uw
OiBjbGFzc2VzIGFyZSBbb2JqZWN0IEludDE2QXJyYXldCitQQVNTIEludDE2XzEyOGJfb2ZzX3Ns
aWNlMDogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgSW50MTZfMTI4Yl9v
ZnNfc2xpY2UwOiBidWZmZXIgbGVuZ3RocyBhcmUgMjU2CitQQVNTIEludDE2XzEyOGJfb2ZzX3Ns
aWNlMDogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIEludDE2XzEyOGJfb2Zz
X3NsaWNlMDogb2Zmc2V0IGlzIDEyOAorUEFTUyBJbnQxNl8xMjhiX29mc19zbGljZTA6IGxlbmd0
aCBpcyAwCitQQVNTIFVpbnQxNl8xMjhiX29mc19zbGljZTA6IGNsYXNzZXMgYXJlIFtvYmplY3Qg
VWludDE2QXJyYXldCitQQVNTIFVpbnQxNl8xMjhiX29mc19zbGljZTA6IGNsYXNzZXMgYXJlIFtv
YmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIFVpbnQxNl8xMjhiX29mc19zbGljZTA6IGJ1ZmZlciBs
ZW5ndGhzIGFyZSAyNTYKK1BBU1MgVWludDE2XzEyOGJfb2ZzX3NsaWNlMDogYnVmZmVycyBoYXZl
IHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIFVpbnQxNl8xMjhiX29mc19zbGljZTA6IG9mZnNldCBp
cyAxMjgKK1BBU1MgVWludDE2XzEyOGJfb2ZzX3NsaWNlMDogbGVuZ3RoIGlzIDAKK1BBU1MgRmxv
YXQzMl8xMjhiX29mc19zbGljZTA6IGNsYXNzZXMgYXJlIFtvYmplY3QgRmxvYXQzMkFycmF5XQor
UEFTUyBGbG9hdDMyXzEyOGJfb2ZzX3NsaWNlMDogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1
ZmZlcl0KK1BBU1MgRmxvYXQzMl8xMjhiX29mc19zbGljZTA6IGJ1ZmZlciBsZW5ndGhzIGFyZSA1
MTIKK1BBU1MgRmxvYXQzMl8xMjhiX29mc19zbGljZTA6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBj
b250ZW50cworUEFTUyBGbG9hdDMyXzEyOGJfb2ZzX3NsaWNlMDogb2Zmc2V0IGlzIDI1NgorUEFT
UyBGbG9hdDMyXzEyOGJfb2ZzX3NsaWNlMDogbGVuZ3RoIGlzIDAKK1BBU1MgRmxvYXQ2NF8xMjhi
X29mc19zbGljZTA6IGNsYXNzZXMgYXJlIFtvYmplY3QgRmxvYXQ2NEFycmF5XQorUEFTUyBGbG9h
dDY0XzEyOGJfb2ZzX3NsaWNlMDogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BB
U1MgRmxvYXQ2NF8xMjhiX29mc19zbGljZTA6IGJ1ZmZlciBsZW5ndGhzIGFyZSAxMDI0CitQQVNT
IEZsb2F0NjRfMTI4Yl9vZnNfc2xpY2UwOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMK
K1BBU1MgRmxvYXQ2NF8xMjhiX29mc19zbGljZTA6IG9mZnNldCBpcyA1MTIKK1BBU1MgRmxvYXQ2
NF8xMjhiX29mc19zbGljZTA6IGxlbmd0aCBpcyAwCitQQVNTIEludDMyXzEyOGJfb2ZzX3NsaWNl
MTogY2xhc3NlcyBhcmUgW29iamVjdCBJbnQzMkFycmF5XQorUEFTUyBJbnQzMl8xMjhiX29mc19z
bGljZTE6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIEludDMyXzEyOGJf
b2ZzX3NsaWNlMTogYnVmZmVyIGxlbmd0aHMgYXJlIDUxMgorUEFTUyBJbnQzMl8xMjhiX29mc19z
bGljZTE6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBJbnQzMl8xMjhiX29m
c19zbGljZTE6IG9mZnNldCBpcyAyNTYKK1BBU1MgSW50MzJfMTI4Yl9vZnNfc2xpY2UxOiBsZW5n
dGggaXMgNAorUEFTUyBVaW50MzJfMTI4Yl9vZnNfc2xpY2UxOiBjbGFzc2VzIGFyZSBbb2JqZWN0
IFVpbnQzMkFycmF5XQorUEFTUyBVaW50MzJfMTI4Yl9vZnNfc2xpY2UxOiBjbGFzc2VzIGFyZSBb
b2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBVaW50MzJfMTI4Yl9vZnNfc2xpY2UxOiBidWZmZXIg
bGVuZ3RocyBhcmUgNTEyCitQQVNTIFVpbnQzMl8xMjhiX29mc19zbGljZTE6IGJ1ZmZlcnMgaGF2
ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBVaW50MzJfMTI4Yl9vZnNfc2xpY2UxOiBvZmZzZXQg
aXMgMjU2CitQQVNTIFVpbnQzMl8xMjhiX29mc19zbGljZTE6IGxlbmd0aCBpcyA0CitQQVNTIElu
dDhfMTI4Yl9vZnNfc2xpY2UxOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEludDhBcnJheV0KK1BBU1Mg
SW50OF8xMjhiX29mc19zbGljZTE6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQ
QVNTIEludDhfMTI4Yl9vZnNfc2xpY2UxOiBidWZmZXIgbGVuZ3RocyBhcmUgMTI4CitQQVNTIElu
dDhfMTI4Yl9vZnNfc2xpY2UxOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1Mg
SW50OF8xMjhiX29mc19zbGljZTE6IG9mZnNldCBpcyA2NAorUEFTUyBJbnQ4XzEyOGJfb2ZzX3Ns
aWNlMTogbGVuZ3RoIGlzIDEKK1BBU1MgVWludDhfMTI4Yl9vZnNfc2xpY2UxOiBjbGFzc2VzIGFy
ZSBbb2JqZWN0IFVpbnQ4QXJyYXldCitQQVNTIFVpbnQ4XzEyOGJfb2ZzX3NsaWNlMTogY2xhc3Nl
cyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgVWludDhfMTI4Yl9vZnNfc2xpY2UxOiBi
dWZmZXIgbGVuZ3RocyBhcmUgMTI4CitQQVNTIFVpbnQ4XzEyOGJfb2ZzX3NsaWNlMTogYnVmZmVy
cyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIFVpbnQ4XzEyOGJfb2ZzX3NsaWNlMTogb2Zm
c2V0IGlzIDY0CitQQVNTIFVpbnQ4XzEyOGJfb2ZzX3NsaWNlMTogbGVuZ3RoIGlzIDEKK1BBU1Mg
SW50MTZfMTI4Yl9vZnNfc2xpY2UxOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEludDE2QXJyYXldCitQ
QVNTIEludDE2XzEyOGJfb2ZzX3NsaWNlMTogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZl
cl0KK1BBU1MgSW50MTZfMTI4Yl9vZnNfc2xpY2UxOiBidWZmZXIgbGVuZ3RocyBhcmUgMjU2CitQ
QVNTIEludDE2XzEyOGJfb2ZzX3NsaWNlMTogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRz
CitQQVNTIEludDE2XzEyOGJfb2ZzX3NsaWNlMTogb2Zmc2V0IGlzIDEyOAorUEFTUyBJbnQxNl8x
MjhiX29mc19zbGljZTE6IGxlbmd0aCBpcyAyCitQQVNTIFVpbnQxNl8xMjhiX29mc19zbGljZTE6
IGNsYXNzZXMgYXJlIFtvYmplY3QgVWludDE2QXJyYXldCitQQVNTIFVpbnQxNl8xMjhiX29mc19z
bGljZTE6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIFVpbnQxNl8xMjhi
X29mc19zbGljZTE6IGJ1ZmZlciBsZW5ndGhzIGFyZSAyNTYKK1BBU1MgVWludDE2XzEyOGJfb2Zz
X3NsaWNlMTogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIFVpbnQxNl8xMjhi
X29mc19zbGljZTE6IG9mZnNldCBpcyAxMjgKK1BBU1MgVWludDE2XzEyOGJfb2ZzX3NsaWNlMTog
bGVuZ3RoIGlzIDIKK1BBU1MgRmxvYXQzMl8xMjhiX29mc19zbGljZTE6IGNsYXNzZXMgYXJlIFtv
YmplY3QgRmxvYXQzMkFycmF5XQorUEFTUyBGbG9hdDMyXzEyOGJfb2ZzX3NsaWNlMTogY2xhc3Nl
cyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgRmxvYXQzMl8xMjhiX29mc19zbGljZTE6
IGJ1ZmZlciBsZW5ndGhzIGFyZSA1MTIKK1BBU1MgRmxvYXQzMl8xMjhiX29mc19zbGljZTE6IGJ1
ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBGbG9hdDMyXzEyOGJfb2ZzX3NsaWNl
MTogb2Zmc2V0IGlzIDI1NgorUEFTUyBGbG9hdDMyXzEyOGJfb2ZzX3NsaWNlMTogbGVuZ3RoIGlz
IDQKK1BBU1MgRmxvYXQ2NF8xMjhiX29mc19zbGljZTE6IGNsYXNzZXMgYXJlIFtvYmplY3QgRmxv
YXQ2NEFycmF5XQorUEFTUyBGbG9hdDY0XzEyOGJfb2ZzX3NsaWNlMTogY2xhc3NlcyBhcmUgW29i
amVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgRmxvYXQ2NF8xMjhiX29mc19zbGljZTE6IGJ1ZmZlciBs
ZW5ndGhzIGFyZSAxMDI0CitQQVNTIEZsb2F0NjRfMTI4Yl9vZnNfc2xpY2UxOiBidWZmZXJzIGhh
dmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgRmxvYXQ2NF8xMjhiX29mc19zbGljZTE6IG9mZnNl
dCBpcyA1MTIKK1BBU1MgRmxvYXQ2NF8xMjhiX29mc19zbGljZTE6IGxlbmd0aCBpcyA4CitQQVNT
IEludDMyXzEyOGJfb2ZzX3NsaWNlMTY6IGNsYXNzZXMgYXJlIFtvYmplY3QgSW50MzJBcnJheV0K
K1BBU1MgSW50MzJfMTI4Yl9vZnNfc2xpY2UxNjogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1
ZmZlcl0KK1BBU1MgSW50MzJfMTI4Yl9vZnNfc2xpY2UxNjogYnVmZmVyIGxlbmd0aHMgYXJlIDUx
MgorUEFTUyBJbnQzMl8xMjhiX29mc19zbGljZTE2OiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29u
dGVudHMKK1BBU1MgSW50MzJfMTI4Yl9vZnNfc2xpY2UxNjogb2Zmc2V0IGlzIDI1NgorUEFTUyBJ
bnQzMl8xMjhiX29mc19zbGljZTE2OiBsZW5ndGggaXMgNjQKK1BBU1MgVWludDMyXzEyOGJfb2Zz
X3NsaWNlMTY6IGNsYXNzZXMgYXJlIFtvYmplY3QgVWludDMyQXJyYXldCitQQVNTIFVpbnQzMl8x
MjhiX29mc19zbGljZTE2OiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBV
aW50MzJfMTI4Yl9vZnNfc2xpY2UxNjogYnVmZmVyIGxlbmd0aHMgYXJlIDUxMgorUEFTUyBVaW50
MzJfMTI4Yl9vZnNfc2xpY2UxNjogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNT
IFVpbnQzMl8xMjhiX29mc19zbGljZTE2OiBvZmZzZXQgaXMgMjU2CitQQVNTIFVpbnQzMl8xMjhi
X29mc19zbGljZTE2OiBsZW5ndGggaXMgNjQKK1BBU1MgSW50OF8xMjhiX29mc19zbGljZTE2OiBj
bGFzc2VzIGFyZSBbb2JqZWN0IEludDhBcnJheV0KK1BBU1MgSW50OF8xMjhiX29mc19zbGljZTE2
OiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBJbnQ4XzEyOGJfb2ZzX3Ns
aWNlMTY6IGJ1ZmZlciBsZW5ndGhzIGFyZSAxMjgKK1BBU1MgSW50OF8xMjhiX29mc19zbGljZTE2
OiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgSW50OF8xMjhiX29mc19zbGlj
ZTE2OiBvZmZzZXQgaXMgNjQKK1BBU1MgSW50OF8xMjhiX29mc19zbGljZTE2OiBsZW5ndGggaXMg
MTYKK1BBU1MgVWludDhfMTI4Yl9vZnNfc2xpY2UxNjogY2xhc3NlcyBhcmUgW29iamVjdCBVaW50
OEFycmF5XQorUEFTUyBVaW50OF8xMjhiX29mc19zbGljZTE2OiBjbGFzc2VzIGFyZSBbb2JqZWN0
IEFycmF5QnVmZmVyXQorUEFTUyBVaW50OF8xMjhiX29mc19zbGljZTE2OiBidWZmZXIgbGVuZ3Ro
cyBhcmUgMTI4CitQQVNTIFVpbnQ4XzEyOGJfb2ZzX3NsaWNlMTY6IGJ1ZmZlcnMgaGF2ZSB0aGUg
c2FtZSBjb250ZW50cworUEFTUyBVaW50OF8xMjhiX29mc19zbGljZTE2OiBvZmZzZXQgaXMgNjQK
K1BBU1MgVWludDhfMTI4Yl9vZnNfc2xpY2UxNjogbGVuZ3RoIGlzIDE2CitQQVNTIEludDE2XzEy
OGJfb2ZzX3NsaWNlMTY6IGNsYXNzZXMgYXJlIFtvYmplY3QgSW50MTZBcnJheV0KK1BBU1MgSW50
MTZfMTI4Yl9vZnNfc2xpY2UxNjogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BB
U1MgSW50MTZfMTI4Yl9vZnNfc2xpY2UxNjogYnVmZmVyIGxlbmd0aHMgYXJlIDI1NgorUEFTUyBJ
bnQxNl8xMjhiX29mc19zbGljZTE2OiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BB
U1MgSW50MTZfMTI4Yl9vZnNfc2xpY2UxNjogb2Zmc2V0IGlzIDEyOAorUEFTUyBJbnQxNl8xMjhi
X29mc19zbGljZTE2OiBsZW5ndGggaXMgMzIKK1BBU1MgVWludDE2XzEyOGJfb2ZzX3NsaWNlMTY6
IGNsYXNzZXMgYXJlIFtvYmplY3QgVWludDE2QXJyYXldCitQQVNTIFVpbnQxNl8xMjhiX29mc19z
bGljZTE2OiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBVaW50MTZfMTI4
Yl9vZnNfc2xpY2UxNjogYnVmZmVyIGxlbmd0aHMgYXJlIDI1NgorUEFTUyBVaW50MTZfMTI4Yl9v
ZnNfc2xpY2UxNjogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIFVpbnQxNl8x
MjhiX29mc19zbGljZTE2OiBvZmZzZXQgaXMgMTI4CitQQVNTIFVpbnQxNl8xMjhiX29mc19zbGlj
ZTE2OiBsZW5ndGggaXMgMzIKK1BBU1MgRmxvYXQzMl8xMjhiX29mc19zbGljZTE2OiBjbGFzc2Vz
IGFyZSBbb2JqZWN0IEZsb2F0MzJBcnJheV0KK1BBU1MgRmxvYXQzMl8xMjhiX29mc19zbGljZTE2
OiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBGbG9hdDMyXzEyOGJfb2Zz
X3NsaWNlMTY6IGJ1ZmZlciBsZW5ndGhzIGFyZSA1MTIKK1BBU1MgRmxvYXQzMl8xMjhiX29mc19z
bGljZTE2OiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgRmxvYXQzMl8xMjhi
X29mc19zbGljZTE2OiBvZmZzZXQgaXMgMjU2CitQQVNTIEZsb2F0MzJfMTI4Yl9vZnNfc2xpY2Ux
NjogbGVuZ3RoIGlzIDY0CitQQVNTIEZsb2F0NjRfMTI4Yl9vZnNfc2xpY2UxNjogY2xhc3NlcyBh
cmUgW29iamVjdCBGbG9hdDY0QXJyYXldCitQQVNTIEZsb2F0NjRfMTI4Yl9vZnNfc2xpY2UxNjog
Y2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgRmxvYXQ2NF8xMjhiX29mc19z
bGljZTE2OiBidWZmZXIgbGVuZ3RocyBhcmUgMTAyNAorUEFTUyBGbG9hdDY0XzEyOGJfb2ZzX3Ns
aWNlMTY6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBGbG9hdDY0XzEyOGJf
b2ZzX3NsaWNlMTY6IG9mZnNldCBpcyA1MTIKK1BBU1MgRmxvYXQ2NF8xMjhiX29mc19zbGljZTE2
OiBsZW5ndGggaXMgMTI4CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvYXJy
YXktbWVzc2FnZS1wYXNzaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9h
cnJheS1tZXNzYWdlLXBhc3NpbmcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi41MTBkYWIyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMv
d2ViZ2wvYXJyYXktbWVzc2FnZS1wYXNzaW5nLmh0bWwKQEAgLTAsMCArMSwyMDQgQEAKKzxodG1s
PgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2pzL3Jlc291cmNl
cy9qcy10ZXN0LXN0eWxlLmNzcyIvPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3dlYmdsLXRl
c3QuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+
PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKworPHNjcmlwdD4KK3dpbmRvdy5qc1Rl
c3RJc0FzeW5jID0gdHJ1ZTsKK3dpbmRvdy5jaGVhdCA9IGZhbHNlOworCitkZXNjcmlwdGlvbign
VGVzdCBwYXNzaW5nIEFycmF5QnVmZmVycyBhbmQgQXJyYXlCdWZmZXJWaWV3cyBpbiBtZXNzYWdl
cy4nKTsKK3dpbmRvdy50ZXN0c0NvbXBsZXRlID0gMDsKKworZnVuY3Rpb24gY2xhc3NDb21wYXJl
KHRuYW1lLCBnLCBzKSB7CisgIHZhciBjbGFzc1N0ciA9IE9iamVjdC5wcm90b3R5cGUudG9TdHJp
bmc7CisgIHZhciBnY2xhc3MgPSBjbGFzc1N0ci5jYWxsKGcpOworICB2YXIgc2NsYXNzID0gY2xh
c3NTdHIuY2FsbChzKTsKKyAgaWYgKGdjbGFzcyAhPT0gc2NsYXNzKSB7CisgICAgdGVzdEZhaWxl
ZCh0bmFtZSArICI6IGNsYXNzICIgKyBzY2xhc3MgKyAiIGJlY2FtZSAiICsgZ2NsYXNzKTsKKyAg
ICByZXR1cm4gZmFsc2U7CisgIH0gZWxzZSB7CisgICAgdGVzdFBhc3NlZCh0bmFtZSArICI6IGNs
YXNzZXMgYXJlICIgKyBzY2xhc3MpOworICAgIHJldHVybiB0cnVlOworICB9Cit9CisKK2Z1bmN0
aW9uIGJ1ZmZlckNvbXBhcmUodG5hbWUsIGcsIHMpIHsKKyAgaWYgKCFjbGFzc0NvbXBhcmUodG5h
bWUsIGcsIHMpKSB7CisgICAgcmV0dXJuIGZhbHNlOworICB9CisgIGlmIChnLmJ5dGVMZW5ndGgg
IT09IHMuYnl0ZUxlbmd0aCkgeworICAgIHRlc3RGYWlsZWQodG5hbWUgKyAiOiBleHBlY3RlZCAi
ICsgcy5ieXRlTGVuZ3RoICsgIiBieXRlcywgZ290ICIgKyBnLmJ5dGVMZW5ndGgpOworICAgIHJl
dHVybiBmYWxzZTsKKyAgfSBlbHNlIHsKKyAgICB0ZXN0UGFzc2VkKHRuYW1lICsgIjogYnVmZmVy
IGxlbmd0aHMgYXJlICIgKyBzLmJ5dGVMZW5ndGgpOworICB9CisgIHZhciBncmVhZGVyID0gbmV3
IFVpbnQ4QXJyYXkoZyk7CisgIHZhciBzcmVhZGVyID0gbmV3IFVpbnQ4QXJyYXkocyk7CisgIGZv
ciAodmFyIGkgPSAwOyBpIDwgcy5ieXRlTGVuZ3RoOyArK2kpIHsKKyAgICBpZiAoZ3JlYWRlcltp
XSAhPT0gc3JlYWRlcltpXSkgeworICAgICAgdGVzdEZhaWxlZCh0bmFtZSArICI6IGJ1ZmZlcnMg
ZGlmZmVyIHN0YXJ0aW5nIGF0IGJ5dGUgIiArIGkpOworICAgICAgcmV0dXJuIGZhbHNlOworICAg
IH0KKyAgfQorICB0ZXN0UGFzc2VkKHRuYW1lICsgIjogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNv
bnRlbnRzIik7CisgIHJldHVybiB0cnVlOworfQorCitmdW5jdGlvbiB2aWV3Q29tcGFyZSh0bmFt
ZSwgZywgcykgeworICBpZiAoIWNsYXNzQ29tcGFyZSh0bmFtZSwgZywgcykpIHsKKyAgICByZXR1
cm4gZmFsc2U7CisgIH0KKyAgaWYgKCFidWZmZXJDb21wYXJlKHRuYW1lLCBnLmJ1ZmZlciwgcy5i
dWZmZXIpKSB7CisgICAgcmV0dXJuIGZhbHNlOworICB9CisgIGlmIChnLmJ5dGVPZmZzZXQgIT09
IHMuYnl0ZU9mZnNldCkgeworICAgIHRlc3RGYWlsZWQodG5hbWUgKyAiOiBvZmZzZXQgIiArIHMu
Ynl0ZU9mZnNldCArICIgYmVjYW1lICIgKyBnLmJ5dGVPZmZzZXQpOworICAgIHJldHVybiBmYWxz
ZTsKKyAgfSBlbHNlIHsKKyAgICB0ZXN0UGFzc2VkKHRuYW1lICsgIjogb2Zmc2V0IGlzICIgKyBz
LmJ5dGVPZmZzZXQpOworICB9CisgIGlmIChnLmJ5dGVMZW5ndGggIT09IHMuYnl0ZUxlbmd0aCkg
eworICAgIHRlc3RGYWlsZWQodG5hbWUgKyAiOiBsZW5ndGggIiArIHMuYnl0ZUxlbmd0aCArICIg
YmVjYW1lICIgKyBnLmJ5dGVMZW5ndGgpOworICAgIHJldHVybiBmYWxzZTsKKyAgfSBlbHNlIHsK
KyAgICB0ZXN0UGFzc2VkKHRuYW1lICsgIjogbGVuZ3RoIGlzICIgKyBzLmJ5dGVMZW5ndGgpOwor
ICB9CisgIHJldHVybiB0cnVlOworfQorCitmdW5jdGlvbiB0eXBlZEFycmF5Q29tcGFyZSh0bmFt
ZSwgZywgcykgeworICBpZiAoIXZpZXdDb21wYXJlKHRuYW1lLCBnLCBzKSkgeworICAgIHJldHVy
biBmYWxzZTsKKyAgfQorICBpZiAoZy5CWVRFU19QRVJfRUxFTUVOVCAhPT0gcy5CWVRFU19QRVJf
RUxFTUVOVCkgeworICAgIC8vIFNhbml0eSBjaGVja2luZy4KKyAgICB0ZXN0RmFpbGVkKHRuYW1l
ICsgIjogZXhwZWN0ZWQgIiArIHMuQllURVNfUEVSX0VMRU1FTlQgKyAiLCBzYXcgIiArIGcuQllU
RVNfUEVSX0VMRU1FTlQpOworICAgIHJldHVybiBmYWxzZTsKKyAgfQorfQorCitmdW5jdGlvbiBk
YXRhVmlld0NvbXBhcmUodG5hbWUsIGcsIHMpIHsKKyAgaWYgKCF2aWV3Q29tcGFyZSh0bmFtZSwg
ZywgcykpIHsKKyAgICByZXR1cm4gZmFsc2U7CisgIH0KK30KKworZnVuY3Rpb24gY3JlYXRlQnVm
ZmVyKGxlbmd0aCkgeworICB2YXIgYnVmZmVyID0gbmV3IEFycmF5QnVmZmVyKGxlbmd0aCk7Cisg
IHZhciB2aWV3ID0gbmV3IFVpbnQ4QXJyYXkoYnVmZmVyKTsKKyAgZm9yICh2YXIgaSA9IDA7IGkg
PCBsZW5ndGg7ICsraSkgeworICAgIHZpZXdbaV0gPSBpICsgMTsKKyAgfQorICByZXR1cm4gYnVm
ZmVyOworfQorCitmdW5jdGlvbiBjcmVhdGVUeXBlZEFycmF5KHRhdHlwZSwgbGVuZ3RoKSB7Cisg
IHZhciB2aWV3ID0gbmV3IHRhdHlwZShsZW5ndGgpOworICBmb3IgKHZhciBpID0gMDsgaSA8IGxl
bmd0aDsgKytpKSB7CisgICAgdmlld1tpXSA9IGkgKyAxOworICB9CisgIHJldHVybiB2aWV3Owor
fQorCitmdW5jdGlvbiBjcmVhdGVUeXBlZEFycmF5T3ZlckJ1ZmZlcih0YXR5cGUsIHRhZWx0c2l6
ZSwgbGVuZ3RoLCBzdWJzdGFydCwgc3VibGVuZ3RoKSB7CisgIHZhciBidWZmZXIgPSBuZXcgQXJy
YXlCdWZmZXIobGVuZ3RoICogdGFlbHRzaXplKTsKKyAgaWYgKHN1YnN0YXJ0ID09PSB1bmRlZmlu
ZWQpIHsKKyAgICBzdWJzdGFydCA9IDA7CisgICAgc3VibGVuZ3RoID0gbGVuZ3RoOworICB9Cisg
IHJldHVybiBuZXcgdGF0eXBlKGJ1ZmZlciwgc3Vic3RhcnQgKiB0YWVsdHNpemUsIHN1Ymxlbmd0
aCk7Cit9CisKK3ZhciBiYXNpY0J1ZmZlclR5cGVzID0gWworICBbIkludDMyIiwgSW50MzJBcnJh
eSwgNF0sCisgIFsiVWludDMyIiwgVWludDMyQXJyYXksIDRdLAorICBbIkludDgiLCBJbnQ4QXJy
YXksIDFdLAorICBbIlVpbnQ4IiwgVWludDhBcnJheSwgMV0sCisgIFsiSW50MTYiLCBJbnQxNkFy
cmF5LCAyXSwKKyAgWyJVaW50MTYiLCBVaW50MTZBcnJheSwgMl0sCisgIFsiRmxvYXQzMiIsIEZs
b2F0MzJBcnJheSwgNF0sCisgIFsiRmxvYXQ2NCIsIEZsb2F0NjRBcnJheSwgOF0KK107CisKK3Zh
ciB0ZXN0TGlzdCA9IFsKKyAgWydBcnJheUJ1ZmZlcjAnLCBuZXcgQXJyYXlCdWZmZXIoMCksIGJ1
ZmZlckNvbXBhcmVdLAorICBbJ0FycmF5QnVmZmVyMScsIGNyZWF0ZUJ1ZmZlcigxKSwgYnVmZmVy
Q29tcGFyZV0sCisgIFsnQXJyYXlCdWZmZXIxMjgnLCBjcmVhdGVCdWZmZXIoMTI4KSwgYnVmZmVy
Q29tcGFyZV0sCisgIFsnRGF0YVZpZXcwJywgbmV3IERhdGFWaWV3KG5ldyBBcnJheUJ1ZmZlcigw
KSksIGRhdGFWaWV3Q29tcGFyZV0sCisgIFsnRGF0YVZpZXcxJywgbmV3IERhdGFWaWV3KGNyZWF0
ZUJ1ZmZlcigxKSksIGRhdGFWaWV3Q29tcGFyZV0sCisgIFsnRGF0YVZpZXcxMjgnLCBuZXcgRGF0
YVZpZXcoY3JlYXRlQnVmZmVyKDEyOCkpLCBkYXRhVmlld0NvbXBhcmVdLAorICBbJ0RhdGFWaWV3
MV9vZnNfZW5kJywgbmV3IERhdGFWaWV3KGNyZWF0ZUJ1ZmZlcigxKSwgMSwgMCksIGRhdGFWaWV3
Q29tcGFyZV0sCisgIFsnRGF0YVZpZXcxMjhfb2ZzX2VuZCcsIG5ldyBEYXRhVmlldyhjcmVhdGVC
dWZmZXIoMTI4KSwgMTI4LCAwKSwgZGF0YVZpZXdDb21wYXJlXSwKKyAgWydEYXRhVmlldzEyOF9v
ZnNfc2xpY2UwJywgbmV3IERhdGFWaWV3KGNyZWF0ZUJ1ZmZlcigxMjgpLCA2NCwgMCksIGRhdGFW
aWV3Q29tcGFyZV0sCisgIFsnRGF0YVZpZXcxMjhfb2ZzX3NsaWNlMScsIG5ldyBEYXRhVmlldyhj
cmVhdGVCdWZmZXIoMTI4KSwgNjQsIDEpLCBkYXRhVmlld0NvbXBhcmVdLAorICBbJ0RhdGFWaWV3
MTI4X29mc19zbGljZTE2JywgbmV3IERhdGFWaWV3KGNyZWF0ZUJ1ZmZlcigxMjgpLCA2NCwgMTYp
LCBkYXRhVmlld0NvbXBhcmVdLAorICBbJ0RhdGFWaWV3MTI4X29mc19zbGljZV91bmFsaWduZWQn
LCBuZXcgRGF0YVZpZXcoY3JlYXRlQnVmZmVyKDEyOCksIDYzLCAxNSksIGRhdGFWaWV3Q29tcGFy
ZV0KK107CisKK3Rlc3RMaXN0ID0gdGVzdExpc3QuY29uY2F0KGJhc2ljQnVmZmVyVHlwZXMubWFw
KGZ1bmN0aW9uKHQpCisgIHtyZXR1cm4gW3RbMF0gKyAiXzAiLCBjcmVhdGVUeXBlZEFycmF5KHRb
MV0sIDApLCB0eXBlZEFycmF5Q29tcGFyZV07fSkpOwordGVzdExpc3QgPSB0ZXN0TGlzdC5jb25j
YXQoYmFzaWNCdWZmZXJUeXBlcy5tYXAoZnVuY3Rpb24odCkKKyAge3JldHVybiBbdFswXSArICJf
MSIsIGNyZWF0ZVR5cGVkQXJyYXkodFsxXSwgMSksIHR5cGVkQXJyYXlDb21wYXJlXTt9KSk7Cit0
ZXN0TGlzdCA9IHRlc3RMaXN0LmNvbmNhdChiYXNpY0J1ZmZlclR5cGVzLm1hcChmdW5jdGlvbih0
KQorICB7cmV0dXJuIFt0WzBdICsgIl8xMjgiLCBjcmVhdGVUeXBlZEFycmF5KHRbMV0sIDEyOCks
IHR5cGVkQXJyYXlDb21wYXJlXTt9KSk7Cit0ZXN0TGlzdCA9IHRlc3RMaXN0LmNvbmNhdChiYXNp
Y0J1ZmZlclR5cGVzLm1hcChmdW5jdGlvbih0KQorICB7cmV0dXJuIFt0WzBdICsgIl8wYiIsIGNy
ZWF0ZVR5cGVkQXJyYXlPdmVyQnVmZmVyKHRbMV0sIHRbMl0sIDApLCB0eXBlZEFycmF5Q29tcGFy
ZV07fSkpOwordGVzdExpc3QgPSB0ZXN0TGlzdC5jb25jYXQoYmFzaWNCdWZmZXJUeXBlcy5tYXAo
ZnVuY3Rpb24odCkKKyAge3JldHVybiBbdFswXSArICJfMWIiLCBjcmVhdGVUeXBlZEFycmF5T3Zl
ckJ1ZmZlcih0WzFdLCB0WzJdLCAxKSwgdHlwZWRBcnJheUNvbXBhcmVdO30pKTsKK3Rlc3RMaXN0
ID0gdGVzdExpc3QuY29uY2F0KGJhc2ljQnVmZmVyVHlwZXMubWFwKGZ1bmN0aW9uKHQpCisgIHty
ZXR1cm4gW3RbMF0gKyAiXzEyOGIiLCBjcmVhdGVUeXBlZEFycmF5T3ZlckJ1ZmZlcih0WzFdLCB0
WzJdLCAxMjgpLCB0eXBlZEFycmF5Q29tcGFyZV07fSkpOwordGVzdExpc3QgPSB0ZXN0TGlzdC5j
b25jYXQoYmFzaWNCdWZmZXJUeXBlcy5tYXAoZnVuY3Rpb24odCkKKyAge3JldHVybiBbdFswXSAr
ICJfMWJfb2ZzX2VuZCIsIGNyZWF0ZVR5cGVkQXJyYXlPdmVyQnVmZmVyKHRbMV0sIHRbMl0sIDEs
IDEsIDApLCB0eXBlZEFycmF5Q29tcGFyZV07fSkpOwordGVzdExpc3QgPSB0ZXN0TGlzdC5jb25j
YXQoYmFzaWNCdWZmZXJUeXBlcy5tYXAoZnVuY3Rpb24odCkKKyAge3JldHVybiBbdFswXSArICJf
MTI4Yl9vZnNfZW5kIiwgY3JlYXRlVHlwZWRBcnJheU92ZXJCdWZmZXIodFsxXSwgdFsyXSwgMTI4
LCAxMjgsIDApLCB0eXBlZEFycmF5Q29tcGFyZV07fSkpOwordGVzdExpc3QgPSB0ZXN0TGlzdC5j
b25jYXQoYmFzaWNCdWZmZXJUeXBlcy5tYXAoZnVuY3Rpb24odCkKKyAge3JldHVybiBbdFswXSAr
ICJfMTI4Yl9vZnNfc2xpY2UwIiwgY3JlYXRlVHlwZWRBcnJheU92ZXJCdWZmZXIodFsxXSwgdFsy
XSwgMTI4LCA2NCwgMCksIHR5cGVkQXJyYXlDb21wYXJlXTt9KSk7Cit0ZXN0TGlzdCA9IHRlc3RM
aXN0LmNvbmNhdChiYXNpY0J1ZmZlclR5cGVzLm1hcChmdW5jdGlvbih0KQorICB7cmV0dXJuIFt0
WzBdICsgIl8xMjhiX29mc19zbGljZTEiLCBjcmVhdGVUeXBlZEFycmF5T3ZlckJ1ZmZlcih0WzFd
LCB0WzJdLCAxMjgsIDY0LCAxKSwgdHlwZWRBcnJheUNvbXBhcmVdO30pKTsKK3Rlc3RMaXN0ID0g
dGVzdExpc3QuY29uY2F0KGJhc2ljQnVmZmVyVHlwZXMubWFwKGZ1bmN0aW9uKHQpCisgIHtyZXR1
cm4gW3RbMF0gKyAiXzEyOGJfb2ZzX3NsaWNlMTYiLCBjcmVhdGVUeXBlZEFycmF5T3ZlckJ1ZmZl
cih0WzFdLCB0WzJdLCAxMjgsIDY0LCAxNiksIHR5cGVkQXJyYXlDb21wYXJlXTt9KSk7CisKK2Z1
bmN0aW9uIGRvbmVUZXN0KCkgeworICBpZiAoKyt3aW5kb3cudGVzdHNDb21wbGV0ZSA9PSB0ZXN0
TGlzdC5sZW5ndGgpIHsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgfQorfQorCitmdW5jdGlvbiB3
aW5kb3dIYW5kbGVNZXNzYWdlKGUpIHsKKyAgdmFyIGN1cnJlbnRUZXN0ID0gdGVzdExpc3RbZS5k
YXRhLnRlc3ROdW1dOworICB2YXIgZXhwZWN0ZWRSZXN1bHQgPSBjdXJyZW50VGVzdFsxXTsKKyAg
dHJ5IHsKKyAgICBjdXJyZW50VGVzdFsyXShjdXJyZW50VGVzdFswXSwgZS5kYXRhLnRlc3REYXRh
LCBleHBlY3RlZFJlc3VsdCk7CisgIH0gY2F0Y2goZSkgeworICAgIHRlc3RGYWlsZWQoY3VycmVu
dFRlc3RbMF0gKyAiOiB1bmV4cGVjdGVkIGV4Y2VwdGlvbiAiICsgZSk7CisgIH0KKyAgZG9uZVRl
c3QoKTsKK30KK3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgd2luZG93SGFuZGxl
TWVzc2FnZSk7CisKK2ZvciAodmFyIHQgPSAwOyB0IDwgdGVzdExpc3QubGVuZ3RoOyArK3QpIHsK
KyAgdmFyIGN1cnJlbnRUZXN0ID0gdGVzdExpc3RbdF07CisgIHZhciBtZXNzYWdlID0ge3Rlc3RO
dW06IHQsIHRlc3REYXRhOiBjdXJyZW50VGVzdFsxXX07CisgIGlmICh3aW5kb3cuY2hlYXQpIHsK
KyAgICB3aW5kb3dIYW5kbGVNZXNzYWdlKHtkYXRhOiBtZXNzYWdlfSk7CisgIH0gZWxzZSB7Cisg
ICAgd2luZG93LnBvc3RNZXNzYWdlKG1lc3NhZ2UsICcqJyk7CisgIH0KK30KKworc3VjY2Vzc2Z1
bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorCis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+Cis8L3NjcmlwdD4K
KworPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2lu
ZG93L3dpbmRvdy1wb3N0bWVzc2FnZS1jbG9uZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9XaW5kb3cvd2luZG93LXBvc3RtZXNzYWdlLWNsb25lLWV4cGVjdGVkLnR4dAppbmRl
eCBkMmYwMTQ5Li5hMDRhZTViIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5k
b3cvd2luZG93LXBvc3RtZXNzYWdlLWNsb25lLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXBvc3RtZXNzYWdlLWNsb25lLWV4cGVjdGVkLnR4dApA
QCAtMSw4ICsxLDE1IEBACiBUZXN0cyB0aGF0IHdlIGNsb25lIG9iamVjdCBoaWVyYXJjaGllcwog
Ci1QQVNTOiAncG9zdE1lc3NhZ2UocmVhbGx5RGVlcEFycmF5KScgdGhyZXcgUmFuZ2VFcnJvcjog
TWF4aW11bSBjYWxsIHN0YWNrIHNpemUgZXhjZWVkZWQuCi1QQVNTOiAncG9zdE1lc3NhZ2Uod2lu
ZG93KScgdGhyZXcgVHlwZUVycm9yOiBUeXBlIGVycm9yCitQQVNTOiAncG9zdE1lc3NhZ2UoKGZ1
bmN0aW9uKCl7fSkpJyB0aHJldyBFcnJvcjogREFUQV9DTE9ORV9FUlI6IERPTSBFeGNlcHRpb24g
MjUKK1BBU1M6ICdwb3N0TWVzc2FnZShyZWFsbHlEZWVwQXJyYXkpJyB0aHJldyBFcnJvcjogREFU
QV9DTE9ORV9FUlI6IERPTSBFeGNlcHRpb24gMjUKK1BBU1M6ICdwb3N0TWVzc2FnZSh3aW5kb3cp
JyB0aHJldyBFcnJvcjogREFUQV9DTE9ORV9FUlI6IERPTSBFeGNlcHRpb24gMjUKIFBBU1M6ICdw
b3N0TWVzc2FnZSgoe2dldCBhKCkgeyB0aHJvdyAieCIgfX0pKScgdGhyZXcgeAorUEFTUzogJ3Bv
c3RNZXNzYWdlKGltYWdlRGF0YS5kYXRhKScgdGhyZXcgRXJyb3I6IERBVEFfQ0xPTkVfRVJSOiBE
T00gRXhjZXB0aW9uIDI1CitQQVNTOiAncG9zdE1lc3NhZ2UobXV0YXRlZEltYWdlRGF0YS5kYXRh
KScgdGhyZXcgRXJyb3I6IERBVEFfQ0xPTkVfRVJSOiBET00gRXhjZXB0aW9uIDI1CitQQVNTOiAn
cG9zdE1lc3NhZ2UoKGZ1bmN0aW9uKCkge3JldHVybiB7Z2V0IGEoKSB7IHRocm93ICJhY2Nlc3Nv
ci1leG4iOyB9fTt9KSgpKScgdGhyZXcgYWNjZXNzb3ItZXhuCitQQVNTOiAncG9zdE1lc3NhZ2Uo
KGZ1bmN0aW9uKCkge3ZhciBvYmphID0ge2dldCBwKCkgeyB0aHJvdyAiYWNjZXNzb3ItZXhuIjsg
fX07IHJldHVybiB7Z2V0IGEoKSB7IHJldHVybiBvYmphOyB9fTt9KSgpKScgdGhyZXcgYWNjZXNz
b3ItZXhuCitQQVNTOiBsYXN0SW5kZXggaW5pdGlhbGx5IGNvcnJlY3Q6IHdhcyAzCitQQVNTOiBz
YW5pdHkgb24gZmlsZSByZWZlcmVuY2UgZXF1YWxpdHkKIFBBU1M6IGV2ZW50RGF0YSBpcyBudWxs
IG9mIHR5cGUgb2JqZWN0CiBQQVNTOiBldmVudERhdGEgaXMgdW5kZWZpbmVkIG9mIHR5cGUgdW5k
ZWZpbmVkCiBQQVNTOiBldmVudERhdGEgaXMgMSBvZiB0eXBlIG51bWJlcgpAQCAtMjIsMTcgKzI5
LDg4IEBAIFBBU1M6IGV2ZW50RGF0YSBpcyBhLGEsYixhLGIgb2YgdHlwZSBvYmplY3QKIFBBU1M6
IGV2ZW50RGF0YSBpcyBhLGEsYixbb2JqZWN0IE9iamVjdF0gb2YgdHlwZSBvYmplY3QKIFBBU1M6
IGV2ZW50RGF0YSBpcyAxLDIsMyBvZiB0eXBlIG9iamVjdAogUEFTUzogZXZlbnREYXRhIGlzICws
MSBvZiB0eXBlIG9iamVjdAotUEFTUzogZXZlbnREYXRhIGlzIG51bGwgb2YgdHlwZSBvYmplY3QK
IFBBU1M6IGV2ZW50RGF0YSBpcyAyMDA5LTAyLTEzVDIzOjMxOjMwLjAwMFogb2YgdHlwZSBvYmpl
Y3QKIFBBU1M6IGV2ZW50RGF0YSBpcyBbb2JqZWN0IE9iamVjdF0gb2YgdHlwZSBvYmplY3QKIFBB
U1M6IGV2ZW50RGF0YSBpcyA9PT0gdG8gZXZlbnREYXRhLnNlbGYKIFBBU1M6IGV2ZW50RGF0YSBp
cyA9PT0gdG8gZXZlbnREYXRhWzBdCiBQQVNTOiBldmVudERhdGEuZ3JhcGgxIGlzID09PSB0byBl
dmVudERhdGEuZ3JhcGgyCiBQQVNTOiBldmVudERhdGFbMF0gaXMgPT09IHRvIGV2ZW50RGF0YVsx
XQotUEFTUzogZXZlbnREYXRhIGlzIFtvYmplY3QgQXJyYXldKGRlZmF1bHQgdG9TdHJpbmcgdGhy
ZXcgUmFuZ2VFcnJvcjogTWF4aW11bSBjYWxsIHN0YWNrIHNpemUgZXhjZWVkZWQuKSBvZiB0eXBl
IG9iamVjdAotUEFTUzogZXZlbnREYXRhIGlzIFtvYmplY3QgRmlsZV0gb2YgdHlwZSBvYmplY3QK
LVBBU1M6IGV2ZW50RGF0YSBpcyBbb2JqZWN0IEZpbGVMaXN0XSBvZiB0eXBlIG9iamVjdAorUEFT
UzogZXZlbnREYXRhIGlzIFtvYmplY3QgQXJyYXldKGRlZmF1bHQgdG9TdHJpbmcgdGhyZXcgUmFu
Z2VFcnJvcjogTWF4aW11bSBjYWxsIHN0YWNrIHNpemUgZXhjZWVkZWQpIG9mIHR5cGUgb2JqZWN0
CiBQQVNTOiBldmVudERhdGEgaXMgW29iamVjdCBJbWFnZURhdGFdIG9mIHR5cGUgb2JqZWN0CiBQ
QVNTOiBldmVudERhdGEgaXMgW29iamVjdCBJbWFnZURhdGFdIG9mIHR5cGUgb2JqZWN0CitQQVNT
OiBldmVudERhdGEgaXMgNDIgb2YgdHlwZSBudW1iZXIKK1BBU1M6IGV2ZW50RGF0YSBpcyA0MiBv
ZiB0eXBlIG51bWJlcgorUEFTUzogZXZhbFRodW5rIE9LCitQQVNTOiBldmVudERhdGEgaXMgW29i
amVjdCBPYmplY3RdIG9mIHR5cGUgb2JqZWN0CitQQVNTOiBsZW5ndGggY29ycmVjdAorUEFTUzog
ZXZhbHVhdGlvbiBvcmRlciBPSworUEFTUzogZXZhbHVhdGlvbiBvcmRlciBPSy9hY2Nlc3NvciBy
ZWFjaGVkCitQQVNTOiBldmFsdWF0aW9uIG9yZGVyIE9LCitQQVNTOiBsZW5ndGggY29ycmVjdAor
UEFTUzogaXggMCBPSworUEFTUzogYWNjZXNzb3IgcmVhY2hlZAorUEFTUzogaXggMiB1bmRlZmlu
ZWQKK1BBU1M6IGxlbmd0aCBjb3JyZWN0CitQQVNTOiBpeCAwIE9LCitQQVNTOiBpeCAxIE9LCitQ
QVNTOiBpeCAyIE9LCitQQVNTOiBiYXNpYyBwcm9wZXJ0aWVzIE9LCitQQVNTOiBvbmUgYWNjZXNz
b3Igd2FzIHJ1bgorUEFTUzogcHJvcGVydHkgd2FzIHJlbW92ZWQKK1BBU1M6IHByb3BlcnR5IHdh
cyByZW1vdmVkCitQQVNTOiBhY2Nlc3NvciB3YXMgcnVuCitQQVNTOiBkeW5hbWljIHByb3BlcnR5
IG5vdCBzZW50CitQQVNTOiByZWZlcmVuY2UgZXF1YWxpdHkgcHJlc2VydmVkCitQQVNTOiBhY2Nl
c3NvcnMgdXNlZAorUEFTUzogcmVmZXJlbmNlIGVxdWFsaXR5IHByZXNlcnZlZCAob3Bwb3NpdGUg
b3JkZXIpCitQQVNTOiBhY2Nlc3NvcnMgdXNlZCAob3Bwb3NpdGUgb3JkZXIpCitQQVNTOiBhY2Nl
c3NvciB2YWx1ZSB3YXMgbnVsbGlmaWVkCitQQVNTOiBub24tYWNjZXNzb3IgdmFsdWUgd2FzIG5v
dCBudWxsaWZpZWQKK1BBU1M6IGFjY2Vzc29yIHZhbHVlIHdhcyBudWxsaWZpZWQKK1BBU1M6IG5v
bi1hY2Nlc3NvciB2YWx1ZSB3YXMgbm90IG51bGxpZmllZAorUEFTUzogbm9uLWFjY2Vzc29yIHZh
bHVlIHdhcyBub3QgbnVsbGlmaWVkCitQQVNTOiBhY2Nlc3NvciB2YWx1ZSB3YXMgbnVsbGlmaWVk
CitQQVNTOiBub24tYWNjZXNzb3IgdmFsdWUgd2FzIG5vdCBudWxsaWZpZWQKK1BBU1M6IGFjY2Vz
c29yIHZhbHVlIHdhcyBub3QgbnVsbGlmaWVkCitQQVNTOiBhY2Nlc3NvciB2YWx1ZSB3YXMgbm90
IG51bGxpZmllZAorUEFTUzogYWNjZXNzb3IgdmFsdWUgd2FzIG51bGxpZmllZAorUEFTUzogbm9u
LWFjY2Vzc29yIHZhbHVlIHdhcyBub3QgbnVsbGlmaWVkCitQQVNTOiBub24tYWNjZXNzb3IgdmFs
dWUgd2FzIG5vdCBudWxsaWZpZWQKK1BBU1M6IG5vbi1hY2Nlc3NvciB2YWx1ZSBpcyBkZWZpbmVk
CitQQVNTOiBub24tYWNjZXNzb3IgdmFsdWUgd2FzIG5vdCBudWxsaWZpZWQKK1BBU1M6IG5vbi1h
Y2Nlc3NvciB2YWx1ZSBpcyBkZWZpbmVkCitQQVNTOiBhY2Nlc3NvciB2YWx1ZSB3YXMgbnVsbGlm
aWVkCitQQVNTOiBub24tYWNjZXNzb3IgdmFsdWUgd2FzIG5vdCBudWxsaWZpZWQKK1BBU1M6IGFj
Y2Vzc29yIHZhbHVlIHdhcyBudWxsaWZpZWQKK1BBU1M6IHdpbmRvdy5wY2FsbGVkID09PSB0cnVl
CitQQVNTOiB3aW5kb3cuYWNhbGxlZCA9PT0gdHJ1ZQorUEFTUzogd2luZG93LmJjYWxsZWQgPT09
IHVuZGVmaW5lZAorUEFTUzogRGF0ZSB2YWx1ZXMgY29ycmVjdCAoMCkKK1BBU1M6IERhdGUgdmFs
dWVzIGNvcnJlY3QgKDEpCitQQVNTOiBSZWZlcmVuY2VzIHRvIGRhdGVzIGNvcnJlY3QgKDApCitQ
QVNTOiBSZWZlcmVuY2VzIHRvIGRhdGVzIGNvcnJlY3QgKDEpCitQQVNTOiBSZWdleHAgdmFsdWUg
Y29ycmVjdCAoMCkKK1BBU1M6IFJlZmVyZW5jZXMgdG8gcmVnZXhwcyBjb3JyZWN0ICgwKQorUEFT
UzogUmVmZXJlbmNlcyB0byByZWdleHBzIGNvcnJlY3QgKDEpCitQQVNTOiBnbG9iYWwgc2V0ICgw
KQorUEFTUzogZ2xvYmFsIHNldCAoMSkKK1BBU1M6IGlnbm9yZUNhc2Ugc2V0ICgwKQorUEFTUzog
aWdub3JlQ2FzZSBzZXQgKDEpCitQQVNTOiBtdWx0aWxpbmUgc2V0ICgwKQorUEFTUzogbXVsdGls
aW5lIHNldCAoMSkKK1BBU1M6IGxhc3RJbmRleCBjb3JyZWN0ICgwKQorUEFTUzogbGFzdEluZGV4
IGNvcnJlY3QgKDEpCitQQVNTOiBldmVudERhdGEgaXMgMiBvZiB0eXBlIG51bWJlcgorUEFTUzog
ZmlsZSByZWZlcmVuY2VzIHRyYW5zZmVyCitQQVNTOiBGaWxlTGlzdCBzaG91bGQgbm90IHJlc3Bl
Y3QgcmVmZXJlbmNlIGVxdWFsaXR5CitQQVNTOiBGaWxlTGlzdCBzaG91bGQgbm90IHJlc3BlY3Qg
cmVmZXJlbmNlIGVxdWFsaXR5CitQQVNTOiBGaWxlTGlzdCByZXNwZWN0cyBzZWxmLXJlZmVyZW5j
ZSBlcXVhbGl0eQorUEFTUzogRmlsZUxpc3QgbGVuZ3RoIHNlbnQgY29ycmVjdGx5CitQQVNTOiBG
aWxlTGlzdCBzaG91bGQgbm90IHJlc3BlY3QgcmVmZXJlbmNlIGVxdWFsaXR5ICgwKQorUEFTUzog
RmlsZUxpc3Qgc2hvdWxkIG5vdCByZXNwZWN0IHJlZmVyZW5jZSBlcXVhbGl0eSAoMSkKK1BBU1M6
IEZpbGVMaXN0IHByZXNlcnZlcyBvcmRlciBhbmQgZGF0YSAobmFtZTApCitQQVNTOiBGaWxlTGlz
dCBwcmVzZXJ2ZXMgb3JkZXIgYW5kIGRhdGEgKG5hbWUxKQorUEFTUzogRmlsZUxpc3QgcHJlc2Vy
dmVzIG9yZGVyIGFuZCBkYXRhIChkYXRlMCkKK1BBU1M6IEZpbGVMaXN0IHByZXNlcnZlcyBvcmRl
ciBhbmQgZGF0YSAoZGF0ZTEpCiBQQVNTOiBldmVudERhdGEgaXMgZG9uZSBvZiB0eXBlIHN0cmlu
ZwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXBvc3Rt
ZXNzYWdlLWNsb25lLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXBv
c3RtZXNzYWdlLWNsb25lLmh0bWwKaW5kZXggZjI4MzUxYy4uNThmZmYwYSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wb3N0bWVzc2FnZS1jbG9uZS5odG1s
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcG9zdG1lc3NhZ2UtY2xv
bmUuaHRtbApAQCAtMiw3ICsyLDcgQEAKIDxoZWFkPjwvaGVhZD4KIDxib2R5PgogPGRpdiBpZD0i
ZGVzY3JpcHRpb24iPjwvZGl2PgotPGlucHV0IHR5cGU9ImZpbGUiIGlkPSJmaWxlSW5wdXQiPjwv
aW5wdXQ+Cis8aW5wdXQgdHlwZT0iZmlsZSIgaWQ9ImZpbGVJbnB1dCIgbXVsdGlwbGU+PC9pbnB1
dD4KIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgogPHNjcmlwdD4KIGlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpIHsKQEAgLTEzLDYgKzEzLDcgQEAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikgewogdmFyIGNvbnNvbGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29u
c29sZSIpOwogCiB2YXIgbWVzc2FnZXMgPSBbXTsKK3ZhciBldmFsVGh1bmtzID0gW107CiAKIGZ1
bmN0aW9uIGVxdWFsKGFjdHVhbCwgZXhwZWN0ZWQpCiB7CkBAIC05MCw2ICs5MSwxOCBAQCBmdW5j
dGlvbiBzaG91bGRCZUlkZW50aWNhbChhY3R1YWwsIGV4cGVjdGVkKQogICAgICAgICBjb25zb2xl
LmlubmVySFRNTCArPSAiRkFJTDogIiArIGFjdHVhbCArICIgaXMgbm90ID09PSB0byAiICsgZXhw
ZWN0ZWQgKyAiPGJyPiI7CiB9CiAKK2Z1bmN0aW9uIGRvUGFzcyhtc2cpIHsKKwkgIGNvbnNvbGUu
aW5uZXJIVE1MICs9ICJQQVNTOiAiICsgbXNnICsgIjxicj4iOworfQorCitmdW5jdGlvbiBkb0Zh
aWwobXNnKSB7CisJICBjb25zb2xlLmlubmVySFRNTCArPSAiRkFJTDogIiArIG1zZyArICI8YnI+
IjsJCit9CisKK2Z1bmN0aW9uIGRvUGFzc0ZhaWwocmVzdWx0LCBtc2cpIHsKKyAgICBjb25zb2xl
LmlubmVySFRNTCArPSAocmVzdWx0ID8gIlBBU1M6ICIgOiAiRkFJTDogIikgKyBtc2cgKyAiPGJy
PiI7Cit9CisKIGZ1bmN0aW9uIG9ubWVzc2FnZShldnQpIHsKICAgICBldmVudERhdGEgPSBldnQu
ZGF0YTsKICAgICBpZiAoZXZ0LmRhdGEgIT09IGV2dC5kYXRhKQpAQCAtMTA5LDcgKzEyMiwxNyBA
QCBmdW5jdGlvbiBvbm1lc3NhZ2UoZXZ0KSB7CiAgICAgICAgIHNob3VsZEJlSWRlbnRpY2FsKCJl
dmVudERhdGFbMF0iLCAiZXZlbnREYXRhWzFdIik7CiAgICAgICAgIGJyZWFrOwogICAgIGRlZmF1
bHQ6Ci0gICAgICAgIHNob3VsZEJlKCJldmVudERhdGEiLCBtZXNzYWdlKTsKKwkJaWYgKG1lc3Nh
Z2UgPT0gImV2YWxUaHVuayIpIHsKKwkJCXZhciB0aHVuayA9IGV2YWxUaHVua3Muc2hpZnQoKTsK
KwkJCXRyeSB7CisJCQkgICAgdGh1bmsoZXZlbnREYXRhKTsKKwkJCX0gY2F0Y2goZSkgeworCQkJ
ICAgIGRvRmFpbCgidGhyZXcgZXhjZXB0aW9uOiAiICsgZSk7CisJCQkgICAgdGhyb3cgZTsKKwkJ
CX0KKwkJfSBlbHNlIHsKKyAgICAgICAgCXNob3VsZEJlKCJldmVudERhdGEiLCBtZXNzYWdlKTsK
KwkJfQogICAgIH0KIAogICAgIGlmIChzYWZlVG9TdHJpbmcoZXZ0LmRhdGEpID09ICdkb25lJyAm
JiB3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCkBAIC0xMjYsMTcgKzE0OSwyNCBAQCBDb25z
dHJ1Y3RvcldpdGhQcm90b3R5cGUucHJvdG90eXBlID0gewogICAgIHByb3RvUHJvcGVydHk6IDIw
MTAKIH07CiAKLWZ1bmN0aW9uIHRyeVBvc3RNZXNzYWdlKG1lc3NhZ2UsIHNob3VsZFRocm93LCBl
eHBlY3RlZCkgeworZnVuY3Rpb24gdHJ5UG9zdE1lc3NhZ2UobWVzc2FnZSwgc2hvdWxkVGhyb3cs
IGV4cGVjdGVkLCBleHBlY3RlZEV4Y2VwdGlvbikgewogICAgIHRyeSB7CiAgICAgICAgIHZhciB2
YWx1ZSA9IGV2YWwobWVzc2FnZSk7CiAgICAgICAgIHBvc3RNZXNzYWdlKHZhbHVlLCAiKiIpOwog
ICAgICAgICBpZiAoc2hvdWxkVGhyb3cpCiAgICAgICAgICAgICBjb25zb2xlLmlubmVySFRNTCAr
PSAiRkFJTDogJ3Bvc3RNZXNzYWdlKCIrbWVzc2FnZSsiKScgc2hvdWxkIHRocm93IGJ1dCBkaWRu
J3Q8YnI+IjsKICAgICAgICAgbWVzc2FnZXMucHVzaChleHBlY3RlZCB8fCBtZXNzYWdlKTsKKwkJ
aWYgKGV4cGVjdGVkID09ICJldmFsVGh1bmsiKSB7CisJCQlldmFsVGh1bmtzLnB1c2goZXhwZWN0
ZWRFeGNlcHRpb24pOworCQl9CiAgICAgfSBjYXRjaChlKSB7Ci0gICAgICAgIGlmIChzaG91bGRU
aHJvdykKLSAgICAgICAgICAgIGNvbnNvbGUuaW5uZXJIVE1MICs9ICJQQVNTOiAncG9zdE1lc3Nh
Z2UoIittZXNzYWdlKyIpJyB0aHJldyAiICsgZSArICI8YnI+IjsKLSAgICAgICAgZWxzZQorICAg
ICAgICBpZiAoc2hvdWxkVGhyb3cpIHsKKyAgICAgICAgICAgIGlmIChleHBlY3RlZEV4Y2VwdGlv
biA9PT0gdW5kZWZpbmVkIHx8IGV4cGVjdGVkRXhjZXB0aW9uID09IGUuY29kZSB8fCBleHBlY3Rl
ZEV4Y2VwdGlvbiA9PSBlKSB7CisgICAgICAgICAgICAgICAgY29uc29sZS5pbm5lckhUTUwgKz0g
IlBBU1M6ICdwb3N0TWVzc2FnZSgiK21lc3NhZ2UrIiknIHRocmV3ICIgKyBlICsgIjxicj4iOwor
ICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBjb25zb2xlLmlubmVySFRNTCAr
PSAiRkFJTDogJ3Bvc3RNZXNzYWdlKCIrbWVzc2FnZSsiKScgdGhyZXcgIiArIGUgKyAiLCB3YXMg
ZXhwZWN0aW5nICIgKyBleHBlY3RlZEV4Y2VwdGlvbiArICI8YnI+IjsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICBjb25zb2xlLmlubmVySFRNTCArPSAiRkFJTDog
J3Bvc3RNZXNzYWdlKCIrbWVzc2FnZSsiKScgc2hvdWxkIG5vdCB0aHJvdyBidXQgdGhyZXcgIiAr
IGUgKyAiPGJyPiI7CiAgICAgfQogfQpAQCAtMTYyLDcgKzE5Miw3IEBAIHRyeVBvc3RNZXNzYWdl
KCdbImEiLCAiYSIsICJiIiwgImEiLCAiYiJdJyk7CiB0cnlQb3N0TWVzc2FnZSgnWyJhIiwgImEi
LCAiYiIsIHthOiJiIiwgYjoiYSJ9XScpOwogdHJ5UG9zdE1lc3NhZ2UoJ1sxLDIsM10nKTsKIHRy
eVBvc3RNZXNzYWdlKCdbLCwxXScpOwotdHJ5UG9zdE1lc3NhZ2UoJyhmdW5jdGlvbigpe30pJywg
ZmFsc2UsICdudWxsJyk7Cit0cnlQb3N0TWVzc2FnZSgnKGZ1bmN0aW9uKCl7fSknLCB0cnVlLCBu
dWxsLCBET01FeGNlcHRpb24uREFUQV9DTE9ORV9FUlIpOwogdHJ5UG9zdE1lc3NhZ2UoJ25ldyBE
YXRlKDEyMzQ1Njc4OTAwMDApJyk7CiB0cnlQb3N0TWVzc2FnZSgnbmV3IENvbnN0cnVjdG9yV2l0
aFByb3RvdHlwZSgiZm9vIiknLCBmYWxzZSwgJyh7ZmllbGQ6ImZvbyJ9KScpOwogY3ljbGljT2Jq
ZWN0PXt9OwpAQCAtMTg1LDcgKzIxNSw3IEBAIHRyeVBvc3RNZXNzYWdlKCdkZWVwQXJyYXknKTsK
IHJlYWxseURlZXBBcnJheT1bXTsKIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwOyBpKyspCiAg
ICAgcmVhbGx5RGVlcEFycmF5PVtyZWFsbHlEZWVwQXJyYXldOwotdHJ5UG9zdE1lc3NhZ2UoJ3Jl
YWxseURlZXBBcnJheScsIHRydWUpOwordHJ5UG9zdE1lc3NhZ2UoJ3JlYWxseURlZXBBcnJheScs
IHRydWUsIG51bGwsIERPTUV4Y2VwdGlvbi5EQVRBX0NMT05FX0VSUik7CiB0cnlQb3N0TWVzc2Fn
ZSgnd2luZG93JywgdHJ1ZSk7CiB0cnlQb3N0TWVzc2FnZSgnKHtnZXQgYSgpIHsgdGhyb3cgIngi
IH19KScsIHRydWUpOwogCkBAIC0xOTQsMTEgKzIyNCw5IEBAIGlmICh3aW5kb3cuZXZlbnRTZW5k
ZXIpIHsKICAgICB2YXIgZmlsZVJlY3QgPSBmaWxlSW5wdXQuZ2V0Q2xpZW50UmVjdHMoKVswXTsK
ICAgICB2YXIgdGFyZ2V0WCA9IGZpbGVSZWN0LmxlZnQgKyBmaWxlUmVjdC53aWR0aCAvIDI7CiAg
ICAgdmFyIHRhcmdldFkgPSBmaWxlUmVjdC50b3AgKyBmaWxlUmVjdC5oZWlnaHQgLyAyOwotICAg
IGV2ZW50U2VuZGVyLmJlZ2luRHJhZ1dpdGhGaWxlcyhbJ2dldC1maWxlLXVwbG9hZC5odG1sJ10p
OworICAgIGV2ZW50U2VuZGVyLmJlZ2luRHJhZ1dpdGhGaWxlcyhbJ2dvdC1maWxlLXVwbG9hZC5o
dG1sJywgJ2dvdC1maWxlLXVwbG9hZC0yLmh0bWwnXSk7CiAgICAgZXZlbnRTZW5kZXIubW91c2VN
b3ZlVG8odGFyZ2V0WCwgdGFyZ2V0WSk7CiAgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOwotICAg
IHRyeVBvc3RNZXNzYWdlKCdmaWxlSW5wdXQuZmlsZXNbMF0nLCBmYWxzZSwgZmlsZUlucHV0LmZp
bGVzWzBdKTsKLSAgICB0cnlQb3N0TWVzc2FnZSgnZmlsZUlucHV0LmZpbGVzJywgZmFsc2UsIGZp
bGVJbnB1dC5maWxlcyk7CiB9CiB2YXIgaW1hZ2VEYXRhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgiY2FudmFzIikuZ2V0Q29udGV4dCgiMmQiKS5jcmVhdGVJbWFnZURhdGEoMTAsMTApOwogZm9y
ICh2YXIgaSA9IDA7IGkgPCBpbWFnZURhdGEuZGF0YS5sZW5ndGggKiA0OyBpKyspCkBAIC0yMDcs
MTAgKzIzNSwyMjMgQEAgdmFyIG11dGF0ZWRJbWFnZURhdGEgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCJjYW52YXMiKS5nZXRDb250ZXh0KCIyZCIpLmNyZWF0ZUkKIGZvciAodmFyIGkgPSAwOyBp
IDwgaW1hZ2VEYXRhLmRhdGEubGVuZ3RoICogNDsgaSsrKQogICAgIG11dGF0ZWRJbWFnZURhdGEu
ZGF0YVtpXSA9IGkgJSAyNTY7CiB0cnlQb3N0TWVzc2FnZSgnaW1hZ2VEYXRhJywgZmFsc2UsIGlt
YWdlRGF0YSk7Cit0cnlQb3N0TWVzc2FnZSgnaW1hZ2VEYXRhLmRhdGEnLCB0cnVlLCBudWxsLCBE
T01FeGNlcHRpb24uREFUQV9DTE9ORV9FUlIpCiB0cnlQb3N0TWVzc2FnZSgnbXV0YXRlZEltYWdl
RGF0YScsIGZhbHNlLCBpbWFnZURhdGEpOwordHJ5UG9zdE1lc3NhZ2UoJ211dGF0ZWRJbWFnZURh
dGEuZGF0YScsIHRydWUsIG51bGwsIERPTUV4Y2VwdGlvbi5EQVRBX0NMT05FX0VSUikKIGZvciAo
dmFyIGkgPSAwOyBpIDwgaW1hZ2VEYXRhLmRhdGEubGVuZ3RoICogNDsgaSsrKQogICAgIG11dGF0
ZWRJbWFnZURhdGEuZGF0YVtpXSA9IDA7CiAKK2Z1bmN0aW9uIHRodW5rKHMpIHsKKwkgIHJldHVy
biAiKGZ1bmN0aW9uKCkgeyIgKyBzICsgIn0pKCkiOworfQordHJ5UG9zdE1lc3NhZ2UodGh1bmso
J3JldHVybiA0MjsnKSwgZmFsc2UsICc0MicpOwordHJ5UG9zdE1lc3NhZ2UodGh1bmsoJ3JldHVy
biA0MjsnKSwgZmFsc2UsIHRodW5rKCdyZXR1cm4gNDAgKyAyOycpKTsKK3RyeVBvc3RNZXNzYWdl
KHRodW5rKCdyZXR1cm4gNDI7JyksIGZhbHNlLCAiZXZhbFRodW5rIiwKKyAgICAgICAgICAgICAg
IGZ1bmN0aW9uKHYpIHsgZG9QYXNzRmFpbCh2ID09IDQyLCAiZXZhbFRodW5rIE9LIik7IH0pCisK
Ky8vIE9ubHkgZW51bWVyYWJsZSBwcm9wZXJ0aWVzIHNob3VsZCBiZSBzZXJpYWxpemVkLgordHJ5
UG9zdE1lc3NhZ2UodGh1bmsoJ3ZhciBvID0ge3g6ImhlbGxvIn07IE9iamVjdC5kZWZpbmVQcm9w
ZXJ0eShvLCAieSIsIHt2YWx1ZToiZ29vZGJ5ZSJ9KTsgcmV0dXJuIG87JyksIGZhbHNlLCAnKHt4
OiJoZWxsbyJ9KScpOworCisvLyBJdCdzIHVuY2xlYXIgd2hhdCB3ZSBzaG91bGQgZG8gaWYgYW4g
YWNjZXNzb3IgbW9kaWZpZXMgYW4gb2JqZWN0IG91dCBmcm9tIHVuZGVyIHVzCisvLyB3aGlsZSB3
ZSdyZSBzZXJpYWxpemluZyBpdDsgdGhlIHN0YW5kYXJkIGRvZXMgbWFuZGF0ZSBjZXJ0YWluIGFz
cGVjdHMgYWJvdXQgZXZhbHVhdGlvbgorLy8gb3JkZXIsIHRob3VnaCwgaW5jbHVkaW5nIHRoYXQg
cHJvcGVydGllcyBtdXN0IGJlIHByb2Nlc3NlZCBpbiB0aGVpciBlbnVtZXJhdGlvbiBvcmRlci4K
K3RyeVBvc3RNZXNzYWdlKHRodW5rKAorICAgICAgICAndmFyIGEgPSBbMCwgMSwgMl07ICcgKwor
ICAgICAgICAndmFyIGIgPSB7IGdldCB4KCkgeyBhWzBdID0gNDA7IGFbMl0gPSA0MjsgYS5wdXNo
KDQzKTsgcmV0dXJuIDQxOyB9fTsgJyArCisgICAgICAgICdhWzFdID0gYjsgJyArCisgICAgICAg
ICdyZXR1cm4gYTsnCisgICAgKSwgZmFsc2UsICJldmFsVGh1bmsiLCBmdW5jdGlvbih2KSB7Cisg
ICAgICAgIGRvUGFzc0ZhaWwodi5sZW5ndGggPT09IDMsICJsZW5ndGggY29ycmVjdCIpOyAvLyB1
bmRlZmluZWQKKyAgICAgICAgZG9QYXNzRmFpbCh2WzBdID09PSAwLCAiZXZhbHVhdGlvbiBvcmRl
ciBPSyIpOyAvLyBtYW5kYXRvcnkKKyAgICAgICAgZG9QYXNzRmFpbCh2WzFdLnggPT09IDQxLCAi
ZXZhbHVhdGlvbiBvcmRlciBPSy9hY2Nlc3NvciByZWFjaGVkIik7IC8vIG1hbmRhdG9yeQorICAg
ICAgICBkb1Bhc3NGYWlsKHZbMl0gPT09IDQyLCAiZXZhbHVhdGlvbiBvcmRlciBPSyIpOyAvLyBt
YW5kYXRvcnkKKyAgICB9KTsKKwordHJ5UG9zdE1lc3NhZ2UodGh1bmsoCisgICAgICAgICd2YXIg
YSA9IFswLCAxLCAyXTsgJyArCisgICAgICAgICd2YXIgYiA9IHsgZ2V0IHgoKSB7IGEucG9wKCk7
IHJldHVybiA0MTsgfSB9OyAnICsKKyAgICAgICAgJ2FbMV0gPSBiOyAnICsKKyAgICAgICAgJ3Jl
dHVybiBhOycKKyAgICApLCBmYWxzZSwgImV2YWxUaHVuayIsIGZ1bmN0aW9uKHYpIHsKKyAgICAg
ICAgZG9QYXNzRmFpbCh2Lmxlbmd0aCA9PT0gMywgImxlbmd0aCBjb3JyZWN0Iik7IC8vIHVuZGVm
aW5lZAorICAgICAgICBkb1Bhc3NGYWlsKHZbMF0gPT09IDAsICJpeCAwIE9LIik7IC8vIG1hbmRh
dG9yeQorICAgICAgICBkb1Bhc3NGYWlsKHZbMV0ueCA9PT0gNDEsICJhY2Nlc3NvciByZWFjaGVk
Iik7IC8vIG1hbmRhdG9yeQorICAgICAgICBkb1Bhc3NGYWlsKHZbMl0gPT09IHVuZGVmaW5lZCwg
Iml4IDIgdW5kZWZpbmVkIik7IC8vIHVuZGVmaW5lZAorICAgIH0pOworCit0cnlQb3N0TWVzc2Fn
ZSh0aHVuaygKKyAgICAgICAgJ3ZhciBhID0gWzAsIDEsIDJdOyAnICsKKyAgICAgICAgJ3ZhciBi
ID0geyBnZXQgeCgpIHsgYS5wb3AoKTsgcmV0dXJuIDQxOyB9IH07ICcgKworICAgICAgICAnYVsy
XSA9IGI7ICcgKworICAgICAgICAncmV0dXJuIGE7JworICAgICksIGZhbHNlLCAiZXZhbFRodW5r
IiwgZnVuY3Rpb24odikgeworICAgICAgICBkb1Bhc3NGYWlsKHYubGVuZ3RoID09PSAzLCAibGVu
Z3RoIGNvcnJlY3QiKTsgLy8gdW5kZWZpbmVkCisgICAgICAgIGRvUGFzc0ZhaWwodlswXSA9PT0g
MCwgIml4IDAgT0siKTsgLy8gbWFuZGF0b3J5CisgICAgICAgIGRvUGFzc0ZhaWwodlsxXSA9PT0g
MSwgIml4IDEgT0siKTsgLy8gbWFuZGF0b3J5CisgICAgICAgIGRvUGFzc0ZhaWwodlsyXS54ID09
PSA0MSwgIml4IDIgT0siKTsgLy8gdW5kZWZpbmVkCisgICAgfSk7CisKKy8vIE5vdyB3aXRoIG9i
amVjdHMhIFRoaXMgaXMgYSBsaXR0bGUgbW9yZSB0cmlja3kgYmVjYXVzZSB0aGUgc3RhbmRhcmQg
ZG9lcyBub3QKKy8vIGRlZmluZSBhbiBlbnVtZXJhdGlvbiBvcmRlci4KK3RyeVBvc3RNZXNzYWdl
KHRodW5rKAorICAgICAgICAndmFyIGEgPSB7cDA6IDAsIHAxOiAxfTsgJyArCisgICAgICAgICdP
YmplY3QuZGVmaW5lUHJvcGVydHkoYSwgInAyIiwge2dldDpmdW5jdGlvbigpIHtkZWxldGUgYS5w
MzsgcmV0dXJuIDQyOyB9LCBlbnVtZXJhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWV9KTsg
JyArCisgICAgICAgICdPYmplY3QuZGVmaW5lUHJvcGVydHkoYSwgInAzIiwge2dldDpmdW5jdGlv
bigpIHtkZWxldGUgYS5wMjsgcmV0dXJuIDQzOyB9LCBlbnVtZXJhYmxlOiB0cnVlLCBjb25maWd1
cmFibGU6IHRydWV9KTsgJyArCisgICAgICAgICdPYmplY3QuZGVmaW5lUHJvcGVydHkoYSwgInA0
Iiwge2dldDpmdW5jdGlvbigpIHsgYS5wNSA9IDQ1OyByZXR1cm4gNDQ7IH0sIGVudW1lcmFibGU6
IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZX0pOyAnICsKKyAgICAgICAgJ3JldHVybiBhOycKKyAg
ICApLCBmYWxzZSwgImV2YWxUaHVuayIsIGZ1bmN0aW9uKHYpIHsKKyAgICAgICAgZG9QYXNzRmFp
bCh2LnAwID09PSAwICYmIHYucDEgPT09IDEsICJiYXNpYyBwcm9wZXJ0aWVzIE9LIik7IC8vIG1h
bmRhdG9yeQorICAgICAgICBkb1Bhc3NGYWlsKHYucDIgPT09IHVuZGVmaW5lZCAmJiB2LnAzICE9
PSB1bmRlZmluZWQgfHwKKyAgICAgICAgICAgICAgICAgICB2LnAyICE9PSB1bmRlZmluZWQgJiYg
di5wMyA9PT0gdW5kZWZpbmVkLCAib25lIGFjY2Vzc29yIHdhcyBydW4iKTsgLy8gbWFuZGF0b3J5
CisgICAgICAgIGRvUGFzc0ZhaWwodi5wMiAhPT0gdW5kZWZpbmVkIHx8IE9iamVjdC5nZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3IodiwgInAyIikgPT09IHVuZGVmaW5lZCwgInByb3BlcnR5IHdhcyBy
ZW1vdmVkIik7IC8vIHVuZGVmaW5lZAorICAgICAgICBkb1Bhc3NGYWlsKHYucDMgIT09IHVuZGVm
aW5lZCB8fCBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHYsICJwMyIpID09PSB1bmRl
ZmluZWQsICJwcm9wZXJ0eSB3YXMgcmVtb3ZlZCIpOyAvLyB1bmRlZmluZWQKKyAgICAgICAgZG9Q
YXNzRmFpbCh2LnA0ID09PSA0NCwgImFjY2Vzc29yIHdhcyBydW4iKTsgLy8gbWFuZGF0b3J5Cisg
ICAgICAgIGRvUGFzc0ZhaWwoT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih2LCAicDUi
KSA9PT0gdW5kZWZpbmVkLCAiZHluYW1pYyBwcm9wZXJ0eSBub3Qgc2VudCIpOyAvLyB1bmRlZmlu
ZWQKKyAgICB9KTsKKworLy8gT2JqZWN0cyByZXR1cm5lZCBmcm9tIGFjY2Vzc29ycyBzaG91bGQg
c3RpbGwgYmUgY29hbGVzY2VkLgordHJ5UG9zdE1lc3NhZ2UodGh1bmsoCisgICAgICAgICd2YXIg
b2JqYSA9IHtnZXQgcCgpIHsgcmV0dXJuIDQyOyB9fTsgJyArCisgICAgICAgICd2YXIgbXNnID0g
e2dldCBhKCkgeyByZXR1cm4gb2JqYTsgfSwgYjogb2JqYX07ICcgKworICAgICAgICAncmV0dXJu
IG1zZzsnCisgICAgKSwgZmFsc2UsICJldmFsVGh1bmsiLCBmdW5jdGlvbih2KSB7CisgIAkgICAg
Ly8gSW50ZXJlc3RpbmdseSwgdGhlIHN0YW5kYXJkIGFkbWl0cyB0d28gYW5zd2VycyBoZXJlIQor
ICAJICAgIGRvUGFzc0ZhaWwodi5hID09PSB2LmIsICJyZWZlcmVuY2UgZXF1YWxpdHkgcHJlc2Vy
dmVkIik7CisgIAkgICAgZG9QYXNzRmFpbCgodi5iLnAgPT09IDQyICYmIHYuYS5wID09PSA0Mikg
fHwKKyAgCSAgICAgICAgICAgICAgICh2LmIucCA9PT0gbnVsbCAmJiB2LmEucCA9PT0gbnVsbCks
ICJhY2Nlc3NvcnMgdXNlZCIpOworICAgIH0pOwordHJ5UG9zdE1lc3NhZ2UodGh1bmsoCisgICAg
ICAgICd2YXIgb2JqYSA9IHtnZXQgcCgpIHsgcmV0dXJuIDQyOyB9fTsgJyArCisgICAgICAgICd2
YXIgbXNnID0ge2E6IG9iamEsIGdldCBiKCkgeyByZXR1cm4gb2JqYTsgfX07ICcgKworICAgICAg
ICAncmV0dXJuIG1zZzsnCisgICAgKSwgZmFsc2UsICJldmFsVGh1bmsiLCBmdW5jdGlvbih2KSB7
CisgICAgICAgIC8vIEludGVyZXN0aW5nbHksIHRoZSBzdGFuZGFyZCBhZG1pdHMgdHdvIGFuc3dl
cnMgaGVyZSEKKyAgICAgICAgZG9QYXNzRmFpbCh2LmEgPT09IHYuYiwgInJlZmVyZW5jZSBlcXVh
bGl0eSBwcmVzZXJ2ZWQgKG9wcG9zaXRlIG9yZGVyKSIpOworICAgICAgICBkb1Bhc3NGYWlsKCh2
LmIucCA9PT0gNDIgJiYgdi5hLnAgPT09IDQyKSB8fAorICAgICAgICAgICAgICAgICAgICh2LmIu
cCA9PT0gbnVsbCAmJiB2LmEucCA9PT0gbnVsbCksICJhY2Nlc3NvcnMgdXNlZCAob3Bwb3NpdGUg
b3JkZXIpIik7CisgICAgfSk7CisvLyBXZSBzaG91bGQgbnVsbGlmeSB0aGUgcmVzdWx0cyBmcm9t
IGFjY2Vzc29ycyBtb3JlIHRoYW4gb25lIGxldmVsIGRlZXAsCisvLyBidXQgbGVhdmUgb3RoZXIg
ZmllbGRzIHVudG91Y2hlZC4KK3RyeVBvc3RNZXNzYWdlKHRodW5rKAorICAgICAgICAndmFyIG9i
amEgPSB7Z2V0IHAoKSB7IHJldHVybiA0MjsgfSwgcTogNDN9OyAnICsKKyAgICAgICAgJ3JldHVy
biB7Z2V0IGEoKSB7IHJldHVybiBvYmphOyB9fTsnCisgICAgKSwgZmFsc2UsICJldmFsVGh1bmsi
LCBmdW5jdGlvbih2KSB7CisgICAgICAgIGRvUGFzc0ZhaWwodi5hLnAgPT09IG51bGwsICJhY2Nl
c3NvciB2YWx1ZSB3YXMgbnVsbGlmaWVkIik7CisgICAgICAgIGRvUGFzc0ZhaWwodi5hLnEgPT09
IDQzLCAibm9uLWFjY2Vzc29yIHZhbHVlIHdhcyBub3QgbnVsbGlmaWVkIik7CisgICAgfSk7Cit0
cnlQb3N0TWVzc2FnZSh0aHVuaygKKyAgICAgICAgJ3ZhciBvYmpiID0ge2dldCByKCkgeyByZXR1
cm4gNDQ7IH0sIHQ6IDQ1fTsgJyArCisgICAgICAgICd2YXIgb2JqYSA9IHtnZXQgcCgpIHsgcmV0
dXJuIDQyOyB9LCBxOiA0Mywgczogb2JqYn07ICcgKworICAgICAgICAncmV0dXJuIHtnZXQgYSgp
IHsgcmV0dXJuIG9iamE7IH19OycKKyAgICApLCBmYWxzZSwgImV2YWxUaHVuayIsIGZ1bmN0aW9u
KHYpIHsKKyAgICAgICAgZG9QYXNzRmFpbCh2LmEucCA9PT0gbnVsbCwgImFjY2Vzc29yIHZhbHVl
IHdhcyBudWxsaWZpZWQiKTsKKyAgICAgICAgZG9QYXNzRmFpbCh2LmEucSA9PT0gNDMsICJub24t
YWNjZXNzb3IgdmFsdWUgd2FzIG5vdCBudWxsaWZpZWQiKTsKKyAgICAgICAgZG9QYXNzRmFpbCh2
LnMgIT09IG51bGwsICJub24tYWNjZXNzb3IgdmFsdWUgd2FzIG5vdCBudWxsaWZpZWQiKTsKKyAg
ICAgICAgZG9QYXNzRmFpbCh2LmEucy5yID09PSBudWxsLCAiYWNjZXNzb3IgdmFsdWUgd2FzIG51
bGxpZmllZCIpOworICAgICAgICBkb1Bhc3NGYWlsKHYuYS5zLnQgPT09IDQ1LCAibm9uLWFjY2Vz
c29yIHZhbHVlIHdhcyBub3QgbnVsbGlmaWVkIik7CisgICAgfSk7Cit0cnlQb3N0TWVzc2FnZSh0
aHVuaygKKyAgICAgICAgJ3ZhciBvYmpiID0ge2dldCByKCkgeyByZXR1cm4gNDQ7IH0sIHQ6IDQ1
fTsgJyArCisgICAgICAgICd2YXIgb2JqYSA9IHtnZXQgcCgpIHsgcmV0dXJuIDQyOyB9LCBxOiA0
MywgczogW29iamJdfTsgJyArCisgICAgICAgICdyZXR1cm4ge2dldCBjKCkgeyByZXR1cm4gNDc7
IH0sIGdldCBhKCkgeyByZXR1cm4gb2JqYTsgfSwgZ2V0IGIoKSB7IHJldHVybiA0NjsgfSB9OycK
KyAgICApLCBmYWxzZSwgImV2YWxUaHVuayIsIGZ1bmN0aW9uKHYpIHsKKyAgICAgICAgZG9QYXNz
RmFpbCh2LmIgPT09IDQ2LCAiYWNjZXNzb3IgdmFsdWUgd2FzIG5vdCBudWxsaWZpZWQiKTsKKyAg
ICAgICAgZG9QYXNzRmFpbCh2LmMgPT09IDQ3LCAiYWNjZXNzb3IgdmFsdWUgd2FzIG5vdCBudWxs
aWZpZWQiKTsKKyAgICAgICAgZG9QYXNzRmFpbCh2LmEucCA9PT0gbnVsbCwgImFjY2Vzc29yIHZh
bHVlIHdhcyBudWxsaWZpZWQiKTsKKyAgICAgICAgZG9QYXNzRmFpbCh2LmEucSA9PT0gNDMsICJu
b24tYWNjZXNzb3IgdmFsdWUgd2FzIG5vdCBudWxsaWZpZWQiKTsKKyAgICAgICAgZG9QYXNzRmFp
bCh2LmEucyAhPT0gbnVsbCwgIm5vbi1hY2Nlc3NvciB2YWx1ZSB3YXMgbm90IG51bGxpZmllZCIp
OworICAgICAgICBkb1Bhc3NGYWlsKHYuYS5zICE9PSB1bmRlZmluZWQsICJub24tYWNjZXNzb3Ig
dmFsdWUgaXMgZGVmaW5lZCIpOworICAgICAgICBkb1Bhc3NGYWlsKHYuYS5zWzBdICE9PSBudWxs
LCAibm9uLWFjY2Vzc29yIHZhbHVlIHdhcyBub3QgbnVsbGlmaWVkIik7CisgICAgICAgIGRvUGFz
c0ZhaWwodi5hLnNbMF0gIT09IHVuZGVmaW5lZCwgIm5vbi1hY2Nlc3NvciB2YWx1ZSBpcyBkZWZp
bmVkIik7CisgICAgICAgIGRvUGFzc0ZhaWwodi5hLnNbMF0uciA9PT0gbnVsbCwgImFjY2Vzc29y
IHZhbHVlIHdhcyBudWxsaWZpZWQiKTsKKyAgICAgICAgZG9QYXNzRmFpbCh2LmEuc1swXS50ID09
PSA0NSwgIm5vbi1hY2Nlc3NvciB2YWx1ZSB3YXMgbm90IG51bGxpZmllZCIpOworICAgIH0pOwor
CisvLyBXZSBuZWVkIHRvIHBhc3Mgb3V0IHRoZSBleGNlcHRpb24gcmFpc2VkIGZyb20gaW50ZXJu
YWwgYWNjZXNzb3JzLgordHJ5UG9zdE1lc3NhZ2UodGh1bmsoCisgICAgICAgICdyZXR1cm4ge2dl
dCBhKCkgeyB0aHJvdyAiYWNjZXNzb3ItZXhuIjsgfX07JworICAgICksIHRydWUsIG51bGwsICdh
Y2Nlc3Nvci1leG4nKTsKKy8vIFdlIHNob3VsZCBzdGlsbCByZXR1cm4gdGhlIGV4Y2VwdGlvbiBy
YWlzZWQgZnJvbSBudWxsZWQtb3V0IGFjY2Vzc29ycy4KK3RyeVBvc3RNZXNzYWdlKHRodW5rKAor
ICAgICAgICAndmFyIG9iamEgPSB7Z2V0IHAoKSB7IHRocm93ICJhY2Nlc3Nvci1leG4iOyB9fTsg
JyArCisgICAgICAgICdyZXR1cm4ge2dldCBhKCkgeyByZXR1cm4gb2JqYTsgfX07JworICAgICks
IHRydWUsIG51bGwsICdhY2Nlc3Nvci1leG4nKTsKKy8vIFdlIHNob3VsZCBydW4gdGhlIGZpcnN0
IG51bGxpZmllZCBhY2Nlc3NvciwgYnV0IG5vIG1vcmUuCit0cnlQb3N0TWVzc2FnZSh0aHVuaygK
KyAgICAgICAgJ3dpbmRvdy5iY2FsbGVkID0gdW5kZWZpbmVkOyAnICsKKyAgICAgICAgJ3dpbmRv
dy5hY2FsbGVkID0gdW5kZWZpbmVkOyAnICsKKyAgICAgICAgJ3dpbmRvdy5wY2FsbGVkID0gdW5k
ZWZpbmVkOyAnICsKKyAgICAgICAgJ3ZhciBvYmpiID0ge2dldCBiKCkgeyB3aW5kb3cuYmNhbGxl
ZCA9IHRydWU7IHJldHVybiA0MjsgfX07ICcgKworICAgICAgICAndmFyIG9iamEgPSB7Z2V0IGEo
KSB7IHdpbmRvdy5hY2FsbGVkID0gdHJ1ZTsgcmV0dXJuIG9iamI7IH19OyAnICsKKyAgICAgICAg
J3JldHVybiB7IGdldCBwKCkgeyB3aW5kb3cucGNhbGxlZCA9IHRydWU7IHJldHVybiBvYmphOyB9
fTsnCisgICAgKSwgZmFsc2UsICJldmFsVGh1bmsiLCBmdW5jdGlvbih2KSB7CisgICAgICAgIGRv
UGFzc0ZhaWwodi5wLmEgPT09IG51bGwsICJhY2Nlc3NvciB2YWx1ZSB3YXMgbnVsbGlmaWVkIik7
CisgICAgICAgIGRvUGFzc0ZhaWwod2luZG93LnBjYWxsZWQgPT09IHRydWUsICJ3aW5kb3cucGNh
bGxlZCA9PT0gdHJ1ZSIpOworICAgICAgICBkb1Bhc3NGYWlsKHdpbmRvdy5hY2FsbGVkID09PSB0
cnVlLCAid2luZG93LmFjYWxsZWQgPT09IHRydWUiKTsKKyAgICAgICAgZG9QYXNzRmFpbCh3aW5k
b3cuYmNhbGxlZCA9PT0gdW5kZWZpbmVkLCAid2luZG93LmJjYWxsZWQgPT09IHVuZGVmaW5lZCIp
OworICAgIH0pOworCisvLyBSZWZlcmVuY2UgZXF1YWxpdHkgYmV0d2VlbiBkYXRlcyBtdXN0IGJl
IG1haW50YWluZWQuCit0cnlQb3N0TWVzc2FnZSh0aHVuaygKKyAgICAgICAgJ3ZhciBkMSA9IG5l
dyBEYXRlKDEsMiwzKTsgJyArCisgICAgICAgICd2YXIgZDIgPSBuZXcgRGF0ZSgxLDIsMyk7ICcg
KworICAgICAgICAncmV0dXJuIFtkMSxkMSxkMl07JworICAgICksIGZhbHNlLCAiZXZhbFRodW5r
IiwgZnVuY3Rpb24odikgeworICAgICAgICBkb1Bhc3NGYWlsKGVxdWFsKHZbMF0sIG5ldyBEYXRl
KDEsMiwzKSksICJEYXRlIHZhbHVlcyBjb3JyZWN0ICgwKSIpOworICAgICAgICBkb1Bhc3NGYWls
KGVxdWFsKHZbMF0sIHZbMl0pLCAiRGF0ZSB2YWx1ZXMgY29ycmVjdCAoMSkiKTsKKyAgICAgICAg
ZG9QYXNzRmFpbCh2WzBdID09PSB2WzFdLCAiUmVmZXJlbmNlcyB0byBkYXRlcyBjb3JyZWN0ICgw
KSIpOworICAgICAgICBkb1Bhc3NGYWlsKHZbMF0gIT09IHZbMl0sICJSZWZlcmVuY2VzIHRvIGRh
dGVzIGNvcnJlY3QgKDEpIik7CisgICAgfSk7CisKKy8vIFJlZmVyZW5jZSBlcXVhbGl0eSBiZXR3
ZWVuIHJlZ2V4cHMgbXVzdCBiZSBwcmVzZXJ2ZWQuCit0cnlQb3N0TWVzc2FnZSh0aHVuaygKKyAg
ICAgICAgJ3ZhciByeDEgPSBuZXcgUmVnRXhwKCJmb28iKTsgJyArCisgICAgICAgICd2YXIgcngy
ID0gbmV3IFJlZ0V4cCgiZm9vIik7ICcgKworICAgICAgICAndmFyIHJ4MyA9IG5ldyBSZWdFeHAo
ImZvbyIsICJnaW0iKTsgJyArCisgICAgICAgICdyeDMuZXhlYygiZm9vZm9vZm9vIik7ICcgKwor
ICAgICAgICAnZG9QYXNzRmFpbChyeDMubGFzdEluZGV4ID09PSAzLCAibGFzdEluZGV4IGluaXRp
YWxseSBjb3JyZWN0OiB3YXMgIiArIHJ4My5sYXN0SW5kZXgpOyAnICsKKyAgICAgICAgJ3JldHVy
biBbcngxLHJ4MSxyeDIscngzXTsnCisgICAgKSwgZmFsc2UsICJldmFsVGh1bmsiLCBmdW5jdGlv
bih2KSB7CisgICAgICAgIGRvUGFzc0ZhaWwodlswXS5zb3VyY2UgPT09ICJmb28iLCAiUmVnZXhw
IHZhbHVlIGNvcnJlY3QgKDApIik7CisgICAgICAgIGRvUGFzc0ZhaWwodlswXSA9PT0gdlsxXSwg
IlJlZmVyZW5jZXMgdG8gcmVnZXhwcyBjb3JyZWN0ICgwKSIpOworICAgICAgICBkb1Bhc3NGYWls
KHZbMF0gIT09IHZbMl0sICJSZWZlcmVuY2VzIHRvIHJlZ2V4cHMgY29ycmVjdCAoMSkiKTsKKyAg
ICAgICAgZG9QYXNzRmFpbCh2WzBdLmdsb2JhbCA9PT0gZmFsc2UsICJnbG9iYWwgc2V0ICgwKSIp
OworICAgICAgICBkb1Bhc3NGYWlsKHZbM10uZ2xvYmFsID09PSB0cnVlLCAiZ2xvYmFsIHNldCAo
MSkiKTsKKyAgICAgICAgZG9QYXNzRmFpbCh2WzBdLmlnbm9yZUNhc2UgPT09IGZhbHNlLCAiaWdu
b3JlQ2FzZSBzZXQgKDApIik7CisgICAgICAgIGRvUGFzc0ZhaWwodlszXS5pZ25vcmVDYXNlID09
PSB0cnVlLCAiaWdub3JlQ2FzZSBzZXQgKDEpIik7CisgICAgICAgIGRvUGFzc0ZhaWwodlswXS5t
dWx0aWxpbmUgPT09IGZhbHNlLCAibXVsdGlsaW5lIHNldCAoMCkiKTsKKyAgICAgICAgZG9QYXNz
RmFpbCh2WzNdLm11bHRpbGluZSA9PT0gdHJ1ZSwgIm11bHRpbGluZSBzZXQgKDEpIik7CisgICAg
ICAgIGRvUGFzc0ZhaWwodlswXS5sYXN0SW5kZXggPT09IDAsICJsYXN0SW5kZXggY29ycmVjdCAo
MCkiKTsKKyAgICAgICAgZG9QYXNzRmFpbCh2WzNdLmxhc3RJbmRleCA9PT0gMCwgImxhc3RJbmRl
eCBjb3JyZWN0ICgxKSIpOworICAgIH0pOworCitpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7Cisg
ICAgdHJ5UG9zdE1lc3NhZ2UodGh1bmsoCisgICAgICAgICd3aW5kb3cuZmlsZUxpc3QgPSBmaWxl
SW5wdXQuZmlsZXM7ICcgKworICAgICAgICAnd2luZG93LmZpbGUwID0gZmlsZUxpc3RbMF07ICcg
KworICAgICAgICAnd2luZG93LmZpbGUxID0gZmlsZUxpc3RbMV07ICcgKworICAgICAgICAncmV0
dXJuIHdpbmRvdy5maWxlTGlzdC5sZW5ndGgnKSwgZmFsc2UsIDIpOworICAgIGRvUGFzc0ZhaWwo
d2luZG93LmZpbGVMaXN0WzBdID09PSB3aW5kb3cuZmlsZTAsICJzYW5pdHkgb24gZmlsZSByZWZl
cmVuY2UgZXF1YWxpdHkiKQorICAgIC8vIFRoZSBzdGFuZGFyZCBtYW5kYXRlcyB0aGF0IHdlIGRv
IF9ub3RfIG1haW50YWluIHJlZmVyZW5jZSBlcXVhbGl0eSBmb3IgZmlsZXMgaW4gYSB0cmFuc2Zl
cnJlZCBGaWxlTGlzdC4KKyAgICB0cnlQb3N0TWVzc2FnZSh0aHVuaygncmV0dXJuIFt3aW5kb3cu
ZmlsZTAsIHdpbmRvdy5maWxlMF07JworICAgICAgICApLCBmYWxzZSwgImV2YWxUaHVuayIsIGZ1
bmN0aW9uKHYpIHsgZG9QYXNzRmFpbCh2WzBdID09PSB2WzFdLCAiZmlsZSByZWZlcmVuY2VzIHRy
YW5zZmVyIil9KTsKKyAgICB0cnlQb3N0TWVzc2FnZSh0aHVuaygncmV0dXJuIFt3aW5kb3cuZmls
ZUxpc3QsIHdpbmRvdy5maWxlMF07JworICAgICAgICApLCBmYWxzZSwgImV2YWxUaHVuayIsIGZ1
bmN0aW9uKHYpIHsgZG9QYXNzRmFpbCh2WzBdWzBdICE9PSB2WzFdLCAiRmlsZUxpc3Qgc2hvdWxk
IG5vdCByZXNwZWN0IHJlZmVyZW5jZSBlcXVhbGl0eSIpfSk7CisgICAgdHJ5UG9zdE1lc3NhZ2Uo
dGh1bmsoJ3JldHVybiBbd2luZG93LmZpbGUwLCB3aW5kb3cuZmlsZUxpc3RdOycKKyAgICAgICAg
KSwgZmFsc2UsICJldmFsVGh1bmsiLCBmdW5jdGlvbih2KSB7IGRvUGFzc0ZhaWwodlsxXVswXSAh
PT0gdlswXSwgIkZpbGVMaXN0IHNob3VsZCBub3QgcmVzcGVjdCByZWZlcmVuY2UgZXF1YWxpdHki
KX0pOworICAgIHRyeVBvc3RNZXNzYWdlKHRodW5rKCdyZXR1cm4gW3dpbmRvdy5maWxlTGlzdCwg
d2luZG93LmZpbGVMaXN0XTsnCisgICAgICAgICksIGZhbHNlLCAiZXZhbFRodW5rIiwgZnVuY3Rp
b24odikgeyBkb1Bhc3NGYWlsKHZbMF0gPT09IHZbMV0sICJGaWxlTGlzdCByZXNwZWN0cyBzZWxm
LXJlZmVyZW5jZSBlcXVhbGl0eSIpfSk7CisgICAgdHJ5UG9zdE1lc3NhZ2UodGh1bmsoJ3JldHVy
biBbd2luZG93LmZpbGVMaXN0LCB3aW5kb3cuZmlsZTAsIHdpbmRvdy5maWxlMV0nCisgICAgICAg
ICksIGZhbHNlLCAiZXZhbFRodW5rIiwgZnVuY3Rpb24odikgeworICAgICAgICAgICAgZG9QYXNz
RmFpbCh2WzBdLmxlbmd0aCA9PT0gd2luZG93LmZpbGVMaXN0Lmxlbmd0aCwgIkZpbGVMaXN0IGxl
bmd0aCBzZW50IGNvcnJlY3RseSIpOworICAgICAgICAgICAgZG9QYXNzRmFpbCh2WzBdWzBdICE9
PSB2WzFdLCAiRmlsZUxpc3Qgc2hvdWxkIG5vdCByZXNwZWN0IHJlZmVyZW5jZSBlcXVhbGl0eSAo
MCkiKTsKKyAgICAgICAgICAgIGRvUGFzc0ZhaWwodlswXVsxXSAhPT0gdlsyXSwgIkZpbGVMaXN0
IHNob3VsZCBub3QgcmVzcGVjdCByZWZlcmVuY2UgZXF1YWxpdHkgKDEpIik7CisgICAgICAgICAg
ICBkb1Bhc3NGYWlsKHZbMF1bMF0ubmFtZSA9PSB3aW5kb3cuZmlsZTAubmFtZSwgIkZpbGVMaXN0
IHByZXNlcnZlcyBvcmRlciBhbmQgZGF0YSAobmFtZTApIik7CisgICAgICAgICAgICBkb1Bhc3NG
YWlsKHZbMF1bMV0ubmFtZSA9PSB3aW5kb3cuZmlsZTEubmFtZSwgIkZpbGVMaXN0IHByZXNlcnZl
cyBvcmRlciBhbmQgZGF0YSAobmFtZTEpIik7CisgICAgICAgICAgICBkb1Bhc3NGYWlsKGVxdWFs
KHZbMF1bMF0ubGFzdE1vZGlmaWVkRGF0ZSwgd2luZG93LmZpbGUwLmxhc3RNb2RpZmllZERhdGUp
LCAiRmlsZUxpc3QgcHJlc2VydmVzIG9yZGVyIGFuZCBkYXRhIChkYXRlMCkiKTsKKyAgICAgICAg
ICAgIGRvUGFzc0ZhaWwoZXF1YWwodlswXVsxXS5sYXN0TW9kaWZpZWREYXRlLCB3aW5kb3cuZmls
ZTEubGFzdE1vZGlmaWVkRGF0ZSksICJGaWxlTGlzdCBwcmVzZXJ2ZXMgb3JkZXIgYW5kIGRhdGEg
KGRhdGUxKSIpOworICAgICAgICB9KTsKK30KIHRyeVBvc3RNZXNzYWdlKCciZG9uZSInKTsKIDwv
c2NyaXB0PgogPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93
L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dp
bmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQKaW5kZXggNDQzNTRmOS4uM2UwNDQ2
YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0
aWVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93
LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0CkBAIC01MzAsNiArNTMwLDkgQEAgd2luZG93LkRPTUV4
Y2VwdGlvbi5TRUNVUklUWV9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24uU1lOVEFY
X0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5UWVBFX01JU01BVENIX0VSUiBbbnVt
YmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5VUkxfTUlTTUFUQ0hfRVJSIFtudW1iZXJdCit3aW5k
b3cuRE9NRXhjZXB0aW9uLlRJTUVPVVRfRVJSIFtudW1iZXJdCit3aW5kb3cuRE9NRXhjZXB0aW9u
LklOVkFMSURfTk9ERV9UWVBFX0VSUiBbbnVtYmVyXQord2luZG93LkRPTUV4Y2VwdGlvbi5EQVRB
X0NMT05FX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5WQUxJREFUSU9OX0VSUiBb
bnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5XUk9OR19ET0NVTUVOVF9FUlIgW251bWJlcl0K
IHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlIFtvYmplY3QgRE9NRXhjZXB0aW9uUHJvdG90
eXBlXQpAQCAtNTUzLDYgKzU1Niw5IEBAIHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlLlNF
Q1VSSVRZX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuU1lOVEFY
X0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuVFlQRV9NSVNNQVRD
SF9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlLlVSTF9NSVNNQVRD
SF9FUlIgW251bWJlcl0KK3dpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlLlRJTUVPVVRfRVJS
IFtudW1iZXJdCit3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5JTlZBTElEX05PREVfVFlQ
RV9FUlIgW251bWJlcl0KK3dpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlLkRBVEFfQ0xPTkVf
RVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5WQUxJREFUSU9OX0VS
UiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuV1JPTkdfRE9DVU1FTlRf
RVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS50b1N0cmluZyBbZnVu
Y3Rpb25dCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4
cGVjdGF0aW9ucy50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVj
dGF0aW9ucy50eHQKaW5kZXggNzE4YTdmNi4uYjYyMGFjNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CisrKyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dApAQCAtMTY2MSw5ICsx
NjYxLDYgQEAgQlVHQ1IyNDEyNiA6IGZhc3QvZG9tL0hUTUxJbnB1dEVsZW1lbnQvc2l6ZS1hdHRy
aWJ1dGUuaHRtbCA9IEZBSUwKIC8vIEZsYWt5IHRpbWVvdXRzIGZpcnN0IGFwcGVhcmluZyBhdCBy
Mjc3NjQgKHdlYmtpdCA0ODk0NykKIEJVR0NSOTc5OCBXSU4gOiBodHRwL3Rlc3RzL2Nvb2tpZXMv
bXVsdGlwbGUtY29va2llcy5odG1sID0gVElNRU9VVCBQQVNTCiAKLS8vIFdlYktpdCB1cGRhdGU6
IDQ5MjEzOjQ5MjIxCi1CVUdDUjI0MDYzIDogZmFzdC9kb20vV2luZG93L3dpbmRvdy1wb3N0bWVz
c2FnZS1jbG9uZS5odG1sID0gRkFJTAotCiAvLyBHb3Qgc2xvdyB3aXRoIFY4IHVwZGF0ZSB0byAx
LjMuMTUuIERlYnVnIGxvZ2dpbmcgcGVyaGFwcz8KIEJVR0NSMjQxODIgREVCVUcgU0xPVyA6IGZh
c3QvZm9ybXMvaW5wdXQtaW1wbGljaXQtbGVuZ3RoLWxpbWl0Lmh0bWwgPSBQQVNTCiBCVUdDUjI0
MTgyIERFQlVHIFNMT1cgOiBmYXN0L2Zvcm1zL2lucHV0LW1heGxlbmd0aC5odG1sID0gUEFTUwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQtd2syL2Zhc3QvZG9tL1dpbmRvdy93
aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC13
azIvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dAppbmRleCBj
ODVjZjE5Li5kYjBhMDQyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC13azIv
ZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9xdC13azIvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVz
LWV4cGVjdGVkLnR4dApAQCAtNTI4LDYgKzUyOCw5IEBAIHdpbmRvdy5ET01FeGNlcHRpb24uU0VD
VVJJVFlfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLlNZTlRBWF9FUlIgW251bWJl
cl0KIHdpbmRvdy5ET01FeGNlcHRpb24uVFlQRV9NSVNNQVRDSF9FUlIgW251bWJlcl0KIHdpbmRv
dy5ET01FeGNlcHRpb24uVVJMX01JU01BVENIX0VSUiBbbnVtYmVyXQord2luZG93LkRPTUV4Y2Vw
dGlvbi5USU1FT1VUX0VSUiBbbnVtYmVyXQord2luZG93LkRPTUV4Y2VwdGlvbi5JTlZBTElEX05P
REVfVFlQRV9FUlIgW251bWJlcl0KK3dpbmRvdy5ET01FeGNlcHRpb24uREFUQV9DTE9ORV9FUlIg
W251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24uVkFMSURBVElPTl9FUlIgW251bWJlcl0KIHdp
bmRvdy5ET01FeGNlcHRpb24uV1JPTkdfRE9DVU1FTlRfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9N
RXhjZXB0aW9uLnByb3RvdHlwZSBbb2JqZWN0IERPTUV4Y2VwdGlvblByb3RvdHlwZV0KQEAgLTU1
MSw2ICs1NTQsOSBAQCB3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5TRUNVUklUWV9FUlIg
W251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlLlNZTlRBWF9FUlIgW251bWJl
cl0KIHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlLlRZUEVfTUlTTUFUQ0hfRVJSIFtudW1i
ZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5VUkxfTUlTTUFUQ0hfRVJSIFtudW1i
ZXJdCit3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5USU1FT1VUX0VSUiBbbnVtYmVyXQor
d2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuSU5WQUxJRF9OT0RFX1RZUEVfRVJSIFtudW1i
ZXJdCit3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5EQVRBX0NMT05FX0VSUiBbbnVtYmVy
XQogd2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuVkFMSURBVElPTl9FUlIgW251bWJlcl0K
IHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlLldST05HX0RPQ1VNRU5UX0VSUiBbbnVtYmVy
XQogd2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUudG9TdHJpbmcgW2Z1bmN0aW9uXQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvZmFzdC9kb20vV2luZG93L3dpbmRvdy1w
cm9wZXJ0aWVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L2Zhc3QvZG9t
L1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQKaW5kZXggNTRjMTA3OS4uY2Nm
ZDI0NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvZmFzdC9kb20vV2luZG93
L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9xdC9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0CkBAIC01
MjgsNiArNTI4LDkgQEAgd2luZG93LkRPTUV4Y2VwdGlvbi5TRUNVUklUWV9FUlIgW251bWJlcl0K
IHdpbmRvdy5ET01FeGNlcHRpb24uU1lOVEFYX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2Vw
dGlvbi5UWVBFX01JU01BVENIX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5VUkxf
TUlTTUFUQ0hfRVJSIFtudW1iZXJdCit3aW5kb3cuRE9NRXhjZXB0aW9uLlRJTUVPVVRfRVJSIFtu
dW1iZXJdCit3aW5kb3cuRE9NRXhjZXB0aW9uLklOVkFMSURfTk9ERV9UWVBFX0VSUiBbbnVtYmVy
XQord2luZG93LkRPTUV4Y2VwdGlvbi5EQVRBX0NMT05FX0VSUiBbbnVtYmVyXQogd2luZG93LkRP
TUV4Y2VwdGlvbi5WQUxJREFUSU9OX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5X
Uk9OR19ET0NVTUVOVF9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBl
IFtvYmplY3QgRE9NRXhjZXB0aW9uUHJvdG90eXBlXQpAQCAtNTUxLDYgKzU1NCw5IEBAIHdpbmRv
dy5ET01FeGNlcHRpb24ucHJvdG90eXBlLlNFQ1VSSVRZX0VSUiBbbnVtYmVyXQogd2luZG93LkRP
TUV4Y2VwdGlvbi5wcm90b3R5cGUuU1lOVEFYX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2Vw
dGlvbi5wcm90b3R5cGUuVFlQRV9NSVNNQVRDSF9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNl
cHRpb24ucHJvdG90eXBlLlVSTF9NSVNNQVRDSF9FUlIgW251bWJlcl0KK3dpbmRvdy5ET01FeGNl
cHRpb24ucHJvdG90eXBlLlRJTUVPVVRfRVJSIFtudW1iZXJdCit3aW5kb3cuRE9NRXhjZXB0aW9u
LnByb3RvdHlwZS5JTlZBTElEX05PREVfVFlQRV9FUlIgW251bWJlcl0KK3dpbmRvdy5ET01FeGNl
cHRpb24ucHJvdG90eXBlLkRBVEFfQ0xPTkVfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0
aW9uLnByb3RvdHlwZS5WQUxJREFUSU9OX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlv
bi5wcm90b3R5cGUuV1JPTkdfRE9DVU1FTlRfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0
aW9uLnByb3RvdHlwZS50b1N0cmluZyBbZnVuY3Rpb25dCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9vYmplY3RzdG9yZS1iYXNpY3MtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0c3RvcmUtYmFzaWNzLWV4cGVjdGVkLnR4
dAppbmRleCAyMzk0NzQwLi43YTM0YTFiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9vYmplY3RzdG9yZS1iYXNpY3MtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0b3JlLWJhc2ljcy1leHBlY3RlZC50eHQKQEAg
LTU2LDcgKzU2LDcgQEAgc3RvcmUuYWRkKHt4OiAnZm9vJ30sIHRlc3REYXRlKQogVHJ5IHRvIGlu
c2VydCBhIHZhbHVlIG5vdCBoYW5kbGVkIGJ5IHN0cnVjdHVyZWQgY2xvbmU6CiBzdG9yZS5hZGQo
e3g6ICdiYXInLCB5OiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpfSwgJ2Jhcicp
CiBQQVNTIEV4Y2VwdGlvbiB0aHJvd24KLVBBU1MgY29kZSBpcyBET01FeGNlcHRpb24uTk9UX1NV
UFBPUlRFRF9FUlIKK1BBU1MgY29kZSBpcyBET01FeGNlcHRpb24uREFUQV9DTE9ORV9FUlIKIFRy
eSB0byBpbnNlcnQgZGF0YSB3aGVyZSBrZXkgcGF0aCB5aWVsZHMgYSBEYXRlIGtleToKIHN0b3Jl
LmFkZCh7eDogdGVzdERhdGVCLCB5OiAndmFsdWUnfSwgJ2tleScpCiBhZGRTdWNjZXNzKCk6CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9vYmplY3RzdG9yZS1iYXNp
Y3MuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0b3JlLWJhc2lj
cy5odG1sCmluZGV4IGIyZTczZWUuLmI3Njk1ODUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0b3JlLWJhc2ljcy5odG1sCisrKyBiL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0b3JlLWJhc2ljcy5odG1sCkBAIC0xNTQsNyArMTU0
LDcgQEAgZnVuY3Rpb24gYWRkRGF0ZVN1Y2Nlc3MoKQogICAgIH0gY2F0Y2ggKGVycikgewogICAg
ICAgICB0ZXN0UGFzc2VkKCJFeGNlcHRpb24gdGhyb3duIik7CiAgICAgICAgIGNvZGUgPSBlcnIu
Y29kZTsKLSAgICAgICAgc2hvdWxkQmUoImNvZGUiLCAiRE9NRXhjZXB0aW9uLk5PVF9TVVBQT1JU
RURfRVJSIik7CisgICAgICAgIHNob3VsZEJlKCJjb2RlIiwgIkRPTUV4Y2VwdGlvbi5EQVRBX0NM
T05FX0VSUiIpOwogICAgIH0KIAogICAgIGRlYnVnKCJUcnkgdG8gaW5zZXJ0IGRhdGEgd2hlcmUg
a2V5IHBhdGggeWllbGRzIGEgRGF0ZSBrZXk6Iik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWU2YmUzMy4uNmQ4
NWRlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc4IEBACisyMDExLTA2LTI3ICBMdWtlIFphcmtv
ICA8bHVrZXphcmtvQGdtYWlsLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBUaGUgSFRNTDUgU3RydWN0dXJlZCBDbG9uZSBhbGdvcml0aG0gKGh0
dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvbXVsdGlwYWdl
L3VybHMuaHRtbCNzYWZlLXBhc3Npbmctb2Ytc3RydWN0dXJlZC1kYXRhKSBoYXMgYmVlbiB1cGRh
dGVkIHNpbmNlIHRoZSBWOCB2ZXJzaW9uIG9mIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSB3YXMgZmly
c3QgaW1wbGVtZW50ZWQuIFRoaXMgcGF0Y2ggYWltcyB0byBicmluZyB0aGlzIGltcGxlbWVudGF0
aW9uIHVwIHRvIGRhdGUuIEl0OgorCisgICAgICAgIC0gSW50cm9kdWNlcyB0aGUgbmV3IEhUTUw1
IERPTSBlcnJvciBjb2RlcyBmb3IgVElNRU9VVF9FUlIsIElOVkFMSURfTk9ERV9UWVBFX0VSUiwg
REFUQV9DTE9ORV9FUlIKKyAgICAgICAgLSBIYW5kbGVzIGN5Y2xpYyBzdHJ1Y3R1cmVzIGFuZCBl
cXVhbGl0eSBvZiByZWZlcmVuY2UgcHJlc2VydmF0aW9uIGZvciBjbG9uZWQgdmFsdWVzCisgICAg
ICAgIC0gQWxsb3dzIERhdGFWaWV3cyB0byBiZSBjb25zdHJ1Y3RlZCBvbiB0aGUgbmF0aXZlIHNp
ZGUgdXNpbmcgdGhlIGV4aXN0aW5nIHdyYXBwZXIgdGVjaG5pcXVlcworICAgICAgICAtIEFtZW5k
cyB0ZXN0cyBhbmQgaW50cm9kdWNlcyBuZXcgb25lcyB0byBjaGVjayBmb3IgY29ycmVjdG5lc3Mg
KHRoZSBidWxrIG9mIHRoZSBwYXRjaCkKKworICAgICAgICBUaGUgcGF0Y2ggcGVybWl0cyB0aGUg
Y2xvbmluZyBvZiBKYXZhU2NyaXB0IHR5cGVkIGFycmF5cy4gVGhpcyBmdW5jdGlvbmFsaXR5IGlz
IGluIGFjdGl2ZSB1c2UgYWxyZWFkeSBhbmQgd2FzIHN1cHBvcnRlZCAoc29tZXdoYXQgaW5lZmZp
Y2llbnRseSkgYnkgdGhlIGV4aXN0aW5nIGNvZGUgdGhyb3VnaCBhbiBhcnRpZmFjdCBvZiBpbXBs
ZW1lbnRhdGlvbi4KKworICAgICAgICBJIGhhdmUgaW5jbHVkZWQgdHdvIGltcGxlbWVudGF0aW9u
cyBvZiB0aGUgJ21lbW9yeScgb2JqZWN0IGZyb20gdGhlIHN0YW5kYXJkLiBUaGUgZmlyc3QgKHdo
aWNoIGlzIGVuYWJsZWQgYnkgZGVmYXVsdCkgaXMgbW9yZSBlZmZpY2llbnQ7IHRoZSBzZWNvbmQg
aXMgbGVzcyBlZmZpY2llbnQgYnV0IHNob3VsZCBiZSBtb3JlIHJlc2lzdGFudCB0byBjaGFuZ2Vz
IGluIFY4J3MgaW1wbGVtZW50YXRpb24gb2YgaGFuZGxlcy4KKworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM0ODEKKworICAgICAgICBUZXN0OiBmYXN0
L2NhbnZhcy93ZWJnbC9hcnJheS1tZXNzYWdlLXBhc3NpbmcuaHRtbAorICAgICAgICBUZXN0OiBm
YXN0L2RvbS9XaW5kb3cvd2luZG93LXBvc3RtZXNzYWdlLWNsb25lLmh0bWwKKworICAgICAgICAq
IGJpbmRpbmdzL3Y4L1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpWOEdjSGFuZGxlTWFwOjpWOEdjSGFuZGxlTWFwOjpWOEhhbmRsZVB0ckhhc2g6Omhhc2gpOgor
ICAgICAgICAoV2ViQ29yZTo6VjhHY0hhbmRsZU1hcDo6VjhHY0hhbmRsZU1hcDo6VjhIYW5kbGVQ
dHJIYXNoOjplcXVhbCk6CisgICAgICAgIChXZWJDb3JlOjpWOEdjSGFuZGxlTWFwOjpWOEdjSGFu
ZGxlTWFwOjpjb250YWlucyk6CisgICAgICAgIChXZWJDb3JlOjpWOEdjSGFuZGxlTWFwOjpWOEdj
SGFuZGxlTWFwOjp0cnlHZXQpOgorICAgICAgICAoV2ViQ29yZTo6VjhHY0hhbmRsZU1hcDo6VjhH
Y0hhbmRsZU1hcDo6c2V0KToKKyAgICAgICAgKFdlYkNvcmU6OlY4R2NIYW5kbGVNYXA6OlY4R2NI
YW5kbGVNYXA6OnNpemUpOgorICAgICAgICAoV2ViQ29yZTo6VjhHY0hhbmRsZU1hcDo6V3JpdGVy
Ojp3cml0ZUFycmF5QnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlY4R2NIYW5kbGVNYXA6Oldy
aXRlcjo6d3JpdGVBcnJheUJ1ZmZlclZpZXcpOgorICAgICAgICAoV2ViQ29yZTo6VjhHY0hhbmRs
ZU1hcDo6V3JpdGVyOjp3cml0ZU9iamVjdE9mZnNldCk6CisgICAgICAgIChXZWJDb3JlOjpWOEdj
SGFuZGxlTWFwOjpXcml0ZXI6OndyaXRlQ2hlY2tSZWYpOgorICAgICAgICAoV2ViQ29yZTo6VjhH
Y0hhbmRsZU1hcDo6V3JpdGVyOjp3cml0ZUdlbmVyYXRlRnJlc2hPYmplY3QpOgorICAgICAgICAo
V2ViQ29yZTo6VjhHY0hhbmRsZU1hcDo6V3JpdGVyOjp3cml0ZUdlbmVyYXRlRnJlc2hBcnJheSk6
CisgICAgICAgIChXZWJDb3JlOjpWOEdjSGFuZGxlTWFwOjpXcml0ZXI6OmRvV3JpdGVBcnJheUJ1
ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpWOEdjSGFuZGxlTWFwOjpTZXJpYWxpemVyOjpTZXJp
YWxpemVyKToKKyAgICAgICAgKFdlYkNvcmU6OlY4R2NIYW5kbGVNYXA6OlNlcmlhbGl6ZXI6OlN0
YXRlQmFzZTo6ZXhlY0RlcHRoKToKKyAgICAgICAgKFdlYkNvcmU6OlY4R2NIYW5kbGVNYXA6OlNl
cmlhbGl6ZXI6OkFic3RyYWN0T2JqZWN0U3RhdGU6OkFic3RyYWN0T2JqZWN0U3RhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6VjhHY0hhbmRsZU1hcDo6U2VyaWFsaXplcjo6QWJzdHJhY3RPYmplY3RT
dGF0ZTo6YWR2YW5jZSk6CisgICAgICAgIChXZWJDb3JlOjpWOEdjSGFuZGxlTWFwOjpTZXJpYWxp
emVyOjpBYnN0cmFjdE9iamVjdFN0YXRlOjpleGVjRGVwdGgpOgorICAgICAgICAoV2ViQ29yZTo6
VjhHY0hhbmRsZU1hcDo6U2VyaWFsaXplcjo6ZXhlY0RlcHRoKToKKyAgICAgICAgKFdlYkNvcmU6
OlY4R2NIYW5kbGVNYXA6OlNlcmlhbGl6ZXI6OnB1c2gpOgorICAgICAgICAoV2ViQ29yZTo6VjhH
Y0hhbmRsZU1hcDo6U2VyaWFsaXplcjo6cG9wKToKKyAgICAgICAgKFdlYkNvcmU6OlY4R2NIYW5k
bGVNYXA6OlNlcmlhbGl6ZXI6OmhhbmRsZUVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OlY4R2NI
YW5kbGVNYXA6OlNlcmlhbGl6ZXI6OndyaXRlTnVsbCk6CisgICAgICAgIChXZWJDb3JlOjpWOEdj
SGFuZGxlTWFwOjpTZXJpYWxpemVyOjp3cml0ZUFuZEdyZXlBcnJheUJ1ZmZlclZpZXcpOgorICAg
ICAgICAoV2ViQ29yZTo6VjhHY0hhbmRsZU1hcDo6U2VyaWFsaXplcjo6d3JpdGVBcnJheUJ1ZmZl
cik6CisgICAgICAgIChXZWJDb3JlOjpWOEdjSGFuZGxlTWFwOjpTZXJpYWxpemVyOjpncmV5T2Jq
ZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OlY4R2NIYW5kbGVNYXA6OlNlcmlhbGl6ZXI6OmRvU2Vy
aWFsaXplKToKKyAgICAgICAgKFdlYkNvcmU6OlY4R2NIYW5kbGVNYXA6OlJlYWRlcjo6cmVhZCk6
CisgICAgICAgIChXZWJDb3JlOjpWOEdjSGFuZGxlTWFwOjpSZWFkZXI6OnJlYWRTdWJUYWcpOgor
ICAgICAgICAoV2ViQ29yZTo6VjhHY0hhbmRsZU1hcDo6UmVhZGVyOjpkb1JlYWRBcnJheUJ1ZmZl
cik6CisgICAgICAgIChXZWJDb3JlOjpWOEdjSGFuZGxlTWFwOjpSZWFkZXI6OnJlYWRBcnJheUJ1
ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpWOEdjSGFuZGxlTWFwOjpSZWFkZXI6OnJlYWRBcnJh
eUJ1ZmZlclZpZXcpOgorICAgICAgICAoV2ViQ29yZTo6VjhHY0hhbmRsZU1hcDo6RGVzZXJpYWxp
emVyOjpkZXNlcmlhbGl6ZSk6CisgICAgICAgIChXZWJDb3JlOjpWOEdjSGFuZGxlTWFwOjpEZXNl
cmlhbGl6ZXI6OnByZXBhcmVFbXB0eUFycmF5KToKKyAgICAgICAgKFdlYkNvcmU6OlY4R2NIYW5k
bGVNYXA6OkRlc2VyaWFsaXplcjo6Y29uc3VtZVRvcE9mU3RhY2spOgorICAgICAgICAoV2ViQ29y
ZTo6VjhHY0hhbmRsZU1hcDo6RGVzZXJpYWxpemVyOjpmaW5pc2hBcnJheSk6CisgICAgICAgIChX
ZWJDb3JlOjpWOEdjSGFuZGxlTWFwOjpEZXNlcmlhbGl6ZXI6OnByZXBhcmVFbXB0eU9iamVjdCk6
CisgICAgICAgIChXZWJDb3JlOjpWOEdjSGFuZGxlTWFwOjpEZXNlcmlhbGl6ZXI6OmZpbmlzaE9i
amVjdCk6CisgICAgICAgIChXZWJDb3JlOjpWOEdjSGFuZGxlTWFwOjpEZXNlcmlhbGl6ZXI6OmZp
bmlzaFNwYXJzZUFycmF5KToKKyAgICAgICAgKFdlYkNvcmU6OlY4R2NIYW5kbGVNYXA6OkRlc2Vy
aWFsaXplcjo6cHVzaE9iamVjdFJlZmVyZW5jZSk6CisgICAgICAgIChXZWJDb3JlOjpWOEdjSGFu
ZGxlTWFwOjpEZXNlcmlhbGl6ZXI6OmdldE9iamVjdFJlZmVyZW5jZSk6CisgICAgICAgIChXZWJD
b3JlOjpWOEdjSGFuZGxlTWFwOjpEZXNlcmlhbGl6ZXI6Om9iamVjdFJlZmVyZW5jZUNvdW50KToK
KyAgICAgICAgKFdlYkNvcmU6OlY4R2NIYW5kbGVNYXA6OkRlc2VyaWFsaXplcjo6b3Blbk5ld0Nv
bXBvc2l0ZSk6CisgICAgICAgIChXZWJDb3JlOjpWOEdjSGFuZGxlTWFwOjpEZXNlcmlhbGl6ZXI6
OmNsb3NlQ29tcG9zaXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20v
VjhEYXRhVmlld0N1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOERhdGFWaWV3Ojpjb25z
dHJ1Y3RvckNhbGxiYWNrKToKKyAgICAgICAgKiBkb20vRE9NQ29yZUV4Y2VwdGlvbi5pZGw6Cisg
ICAgICAgICogZG9tL0V4Y2VwdGlvbkNvZGUuY3BwOgorICAgICAgICAqIGRvbS9FeGNlcHRpb25D
b2RlLmg6CisgICAgICAgICogaHRtbC9jYW52YXMvRGF0YVZpZXcuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RGF0YVZpZXc6OmNyZWF0ZSk6CisgICAgICAgICogaHRtbC9jYW52YXMvRGF0YVZpZXcu
aDoKKwogMjAxMS0wNi0yNyAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5j
b20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjg5ODIyLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKaW5k
ZXggY2I0NGYwMi4uZGNkM2Y2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
djgvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCkBAIC0zMSwzMiArMzEsMjE3IEBACiAjaW5j
bHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCiAKKyNp
bmNsdWRlICJBcnJheUJ1ZmZlci5oIgorI2luY2x1ZGUgIkFycmF5QnVmZmVyVmlldy5oIgogI2lu
Y2x1ZGUgIkJsb2IuaCIKICNpbmNsdWRlICJCeXRlQXJyYXkuaCIKICNpbmNsdWRlICJDYW52YXNQ
aXhlbEFycmF5LmgiCisjaW5jbHVkZSAiRGF0YVZpZXcuaCIKICNpbmNsdWRlICJFeGNlcHRpb25D
b2RlLmgiCiAjaW5jbHVkZSAiRmlsZS5oIgogI2luY2x1ZGUgIkZpbGVMaXN0LmgiCisjaW5jbHVk
ZSAiRmxvYXQzMkFycmF5LmgiCisjaW5jbHVkZSAiRmxvYXQ2NEFycmF5LmgiCiAjaW5jbHVkZSAi
SW1hZ2VEYXRhLmgiCisjaW5jbHVkZSAiSW50MTZBcnJheS5oIgorI2luY2x1ZGUgIkludDMyQXJy
YXkuaCIKKyNpbmNsdWRlICJJbnQ4QXJyYXkuaCIKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIK
KyNpbmNsdWRlICJVaW50MTZBcnJheS5oIgorI2luY2x1ZGUgIlVpbnQzMkFycmF5LmgiCisjaW5j
bHVkZSAiVWludDhBcnJheS5oIgorI2luY2x1ZGUgIlY4QXJyYXlCdWZmZXIuaCIKKyNpbmNsdWRl
ICJWOEFycmF5QnVmZmVyVmlldy5oIgogI2luY2x1ZGUgIlY4QmluZGluZy5oIgogI2luY2x1ZGUg
IlY4QmxvYi5oIgorI2luY2x1ZGUgIlY4RGF0YVZpZXcuaCIKICNpbmNsdWRlICJWOEZpbGUuaCIK
ICNpbmNsdWRlICJWOEZpbGVMaXN0LmgiCisjaW5jbHVkZSAiVjhGbG9hdDMyQXJyYXkuaCIKKyNp
bmNsdWRlICJWOEZsb2F0NjRBcnJheS5oIgogI2luY2x1ZGUgIlY4SW1hZ2VEYXRhLmgiCisjaW5j
bHVkZSAiVjhJbnQxNkFycmF5LmgiCisjaW5jbHVkZSAiVjhJbnQzMkFycmF5LmgiCisjaW5jbHVk
ZSAiVjhJbnQ4QXJyYXkuaCIKICNpbmNsdWRlICJWOFByb3h5LmgiCisjaW5jbHVkZSAiVjhVaW50
MTZBcnJheS5oIgorI2luY2x1ZGUgIlY4VWludDMyQXJyYXkuaCIKKyNpbmNsdWRlICJWOFVpbnQ4
QXJyYXkuaCIKICNpbmNsdWRlICJWOFV0aWxpdGllcy5oIgogCiAjaW5jbHVkZSA8d3RmL0Fzc2Vy
dGlvbnMuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0
b3IuaD4KIAorLy8gI2RlZmluZSBTU1ZfREVCVUcKKy8vICNkZWZpbmUgU1NWX1RFU1RfR0MKKyNk
ZWZpbmUgU1NWX0RJUkVDVF9NQVAKKy8vICNkZWZpbmUgU1NWX0lORElSRUNUX01BUAorCiAvLyBG
SVhNRTogY29uc2lkZXIgY3Jhc2hpbmcgaW4gZGVidWcgbW9kZSBvbiBkZXNlcmlhbGl6YXRpb24g
ZXJyb3JzCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogbmFtZXNwYWNlIHsKIAorI2lmZGVmIFNT
Vl9ESVJFQ1RfTUFQCisvLyBGSVhNRTogZm9yIGlzb2xhdGVzLgorc3RhdGljIHVpbnQzMl90IGxh
c3RHY0N5Y2xlTnVtYmVyID0gMDsKK3N0YXRpYyBib29sIHJlZ2lzdGVyZWRHY0N5Y2xlQ291bnRl
ciA9IGZhbHNlOworc3RhdGljIHZvaWQgZ2NDeWNsZUNvdW50ZXIodjg6OkdDVHlwZSB0eXBlLCB2
ODo6R0NDYWxsYmFja0ZsYWdzIGZsYWdzKQoreworICAgICsrbGFzdEdjQ3ljbGVOdW1iZXI7Cit9
CitzdGF0aWMgdm9pZCBlbnN1cmVHY0N5Y2xlQ291bnRlclJlZ2lzdGVyZWQoKQoreworICAgIGlm
ICghcmVnaXN0ZXJlZEdjQ3ljbGVDb3VudGVyKSB7CisgICAgICAgIHY4OjpWODo6QWRkR0NFcGls
b2d1ZUNhbGxiYWNrKGdjQ3ljbGVDb3VudGVyKTsKKyAgICAgICAgcmVnaXN0ZXJlZEdjQ3ljbGVD
b3VudGVyID0gdHJ1ZTsKKyAgICB9Cit9CitzdGF0aWMgdWludDMyX3QgZ2V0Q3VycmVudEdjQ3lj
bGVOdW1iZXIoKQoreworICAgIHJldHVybiBsYXN0R2NDeWNsZU51bWJlcjsKK30KKwordGVtcGxh
dGU8dHlwZW5hbWUgR2NPYmplY3QsIHR5cGVuYW1lIFQ+CitjbGFzcyBWOEdjSGFuZGxlTWFwIHsK
K3ByaXZhdGU6CisgICAgdHlwZWRlZiBXVEY6Okhhc2hNYXA8R2NPYmplY3QqLCBUPiBSYXdUb1Q7
CisgICAgdHlwZWRlZiBXVEY6OlZlY3Rvcjx2ODo6SGFuZGxlPEdjT2JqZWN0PiA+IEhhbmRsZXM7
CisgICAgdHlwZWRlZiBXVEY6OlZlY3RvcjxHY09iamVjdCo+IFJhd1BvaW50ZXJzOworICAgIFJh
d1RvVCBtX21hcDsKKyAgICBIYW5kbGVzIG1faGFuZGxlczsKKyAgICBSYXdQb2ludGVycyBtX3Jh
d1BvaW50ZXJzOworICAgIHVpbnQzMl90IG1fbGFzdEdjQ3ljbGVTZWVuOworCisgICAgdm9pZCBy
ZWhhc2goKQorICAgIHsKKyNpZmRlZiBTU1ZfVEVTVF9HQworICAgICAgICAvLyBBbHdheXMgcmVo
YXNoLgorICAgICAgICB2ODo6Vjg6Okxvd01lbW9yeU5vdGlmaWNhdGlvbigpOworI2VuZGlmCisg
ICAgICAgIGlmIChtX2xhc3RHY0N5Y2xlU2VlbiA9PSBnZXRDdXJyZW50R2NDeWNsZU51bWJlcigp
KQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBBU1NFUlQobV9oYW5kbGVzLnNpemUoKSA9
PSBtX3Jhd1BvaW50ZXJzLnNpemUoKSk7CisgICAgICAgIFdURjo6SGFzaE1hcDxHY09iamVjdCos
IFQ+IG5ld01hcDsKKyAgICAgICAgUmF3UG9pbnRlcnMgbmV3UmF3UG9pbnRlcnM7CisgICAgICAg
IG5ld1Jhd1BvaW50ZXJzLnJlc2l6ZShtX3Jhd1BvaW50ZXJzLnNpemUoKSk7CisgICAgICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9oYW5kbGVzLnNpemUoKTsgKytpKSB7CisgICAgICAgICAg
ICBHY09iamVjdCogb2xkT2JqZWN0ID0gbV9yYXdQb2ludGVyc1tpXTsKKyAgICAgICAgICAgIEdj
T2JqZWN0KiBuZXdPYmplY3QgPSB1bndyYXAobV9oYW5kbGVzW2ldKTsKKyAgICAgICAgICAgIG5l
d01hcC5hZGQobmV3T2JqZWN0LCBtX21hcC5nZXQob2xkT2JqZWN0KSk7CisgICAgICAgICAgICBu
ZXdSYXdQb2ludGVyc1tpXSA9IG5ld09iamVjdDsKKyNpZmRlZiBTU1ZfREVCVUcKKyAgICAgICAg
ICAgIHByaW50ZigiUkVIQVNIOiAlcCBoYXMgYmVjb21lICVwXG4iLCBvbGRPYmplY3QsIG5ld09i
amVjdCk7CisjZW5kaWYKKyAgICAgICAgfQorICAgICAgICBtX21hcC5zd2FwKG5ld01hcCk7Cisg
ICAgICAgIG1fcmF3UG9pbnRlcnMuc3dhcChuZXdSYXdQb2ludGVycyk7CisgICAgICAgIG1fbGFz
dEdjQ3ljbGVTZWVuID0gZ2V0Q3VycmVudEdjQ3ljbGVOdW1iZXIoKTsKKyAgICB9CisKKyAgICBH
Y09iamVjdCogdW53cmFwKGNvbnN0IHY4OjpIYW5kbGU8R2NPYmplY3Q+JiBoYW5kbGUpCisgICAg
eworICAgICAgICByZXR1cm4gKnJlaW50ZXJwcmV0X2Nhc3Q8R2NPYmplY3QqKj4oY29uc3RfY2Fz
dDxHY09iamVjdCo+KCpoYW5kbGUpKTsKKyAgICB9CisKK3B1YmxpYzoKKyAgICBWOEdjSGFuZGxl
TWFwKCkKKyAgICB7CisgICAgICAgIGVuc3VyZUdjQ3ljbGVDb3VudGVyUmVnaXN0ZXJlZCgpOwor
ICAgICAgICBtX2xhc3RHY0N5Y2xlU2VlbiA9IGdldEN1cnJlbnRHY0N5Y2xlTnVtYmVyKCk7Cisg
ICAgfQorCisgICAgYm9vbCBjb250YWlucyhjb25zdCB2ODo6SGFuZGxlPEdjT2JqZWN0PiYgaGFu
ZGxlKQorICAgIHsKKyAgICAgICAgcmVoYXNoKCk7CisgICAgICAgIHJldHVybiBtX21hcC5jb250
YWlucyh1bndyYXAoaGFuZGxlKSk7CisgICAgfQorCisgICAgYm9vbCB0cnlHZXQoY29uc3Qgdjg6
OkhhbmRsZTxHY09iamVjdD4mIGhhbmRsZSwgVCYgdmFsdWVPdXQpCisgICAgeworICAgICAgICBy
ZWhhc2goKTsKKyAgICAgICAgaWYgKG1fbWFwLmNvbnRhaW5zKHVud3JhcChoYW5kbGUpKSkgewor
ICAgICAgICAgICAgdmFsdWVPdXQgPSBtX21hcC5nZXQodW53cmFwKGhhbmRsZSkpOworI2lmZGVm
IFNTVl9ERUJVRworICAgICAgICAgICAgcHJpbnRmKCJtYXBwZWQgJXAgdG8gJWRcbiIsIHVud3Jh
cChoYW5kbGUpLCB2YWx1ZU91dCk7CisjZW5kaWYKKyAgICAgICAgICAgIHJldHVybiB0cnVlOwor
ICAgICAgICB9CisjaWZkZWYgU1NWX0RFQlVHCisgICAgICAgIHByaW50Zigibm8gbWFwcGluZyBm
b3IgJXBcbiIsIHVud3JhcChoYW5kbGUpKTsKKyNlbmRpZgorICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgfQorCisgICAgdm9pZCBzZXQoY29uc3Qgdjg6OkhhbmRsZTxHY09iamVjdD4mIGhhbmRs
ZSwgY29uc3QgVCYgdmFsdWUpCisgICAgeworICAgICAgICByZWhhc2goKTsKKyNpZmRlZiBTU1Zf
REVCVUcKKyAgICAgICAgcHJpbnRmKCJtYXBwaW5nICVwIHRvICVkXG4iLCB1bndyYXAoaGFuZGxl
KSwgdmFsdWUpOworI2VuZGlmCisgICAgICAgIG1fbWFwLnNldCh1bndyYXAoaGFuZGxlKSwgdmFs
dWUpOworICAgICAgICBtX2hhbmRsZXMuYXBwZW5kKGhhbmRsZSk7CisgICAgICAgIG1fcmF3UG9p
bnRlcnMuYXBwZW5kKHVud3JhcChoYW5kbGUpKTsKKyAgICB9CisKKyAgICB1aW50MzJfdCBzaXpl
KCkKKyAgICB7CisgICAgICAgIHJldHVybiBtX21hcC5zaXplKCk7CisgICAgfQorfTsKKyNlbmRp
ZiAvLyBkZWZpbmVkKFNTVl9ESVJFQ1RfTUFQKQorCisjaWZkZWYgU1NWX0lORElSRUNUX01BUAor
Ly8gdjg6OkhhbmRsZSdzIG9wZXJhdG9yKiByZXR1cm5zIGEgcHRyIHRvIHRoZSB1bmRlcmx5aW5n
IGhhbmRsZSwgbm90IHRoZSB1bmRlcmx5aW5nIG9iamVjdC4KK3RlbXBsYXRlPHR5cGVuYW1lIEdj
T2JqZWN0LCB0eXBlbmFtZSBUPgorY2xhc3MgVjhHY0hhbmRsZU1hcCB7Citwcml2YXRlOgorICAg
IHRlbXBsYXRlPHR5cGVuYW1lIEc+CisgICAgc3RydWN0IFY4SGFuZGxlUHRySGFzaCB7CisgICAg
ICAgIHN0YXRpYyB1bnNpZ25lZCBoYXNoKGNvbnN0IEcqIGtleSkKKyAgICAgICAgeworICAgICAg
ICAgICAgdjg6OkhhbmRsZTxHPiBvYmpIYW5kbGUoY29uc3RfY2FzdDxHKj4oa2V5KSk7CisgICAg
ICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KG9iakhhbmRsZS0+R2V0SWRlbnRp
dHlIYXNoKCkpOworICAgICAgICB9CisgICAgICAgIHN0YXRpYyBib29sIGVxdWFsKGNvbnN0IEcq
IGEsIGNvbnN0IEcqIGIpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiB2ODo6SGFuZGxl
PEc+KGNvbnN0X2Nhc3Q8Ryo+KGEpKSA9PSB2ODo6SGFuZGxlPEc+KGNvbnN0X2Nhc3Q8Ryo+KGIp
KTsKKyAgICAgICAgfQorICAgICAgICBzdGF0aWMgY29uc3QgYm9vbCBzYWZlVG9Db21wYXJlVG9F
bXB0eU9yRGVsZXRlZCA9IGZhbHNlOworICAgIH07CisKKyAgICB0eXBlZGVmIFdURjo6SGFzaE1h
cDxHY09iamVjdCosIFQsIFY4SGFuZGxlUHRySGFzaDxHY09iamVjdD4gPiBIYW5kbGVUb1Q7Cisg
ICAgSGFuZGxlVG9UIG1fbWFwOworCitwdWJsaWM6CisgICAgYm9vbCBjb250YWlucyhjb25zdCB2
ODo6SGFuZGxlPEdjT2JqZWN0PiYgaGFuZGxlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fbWFw
LmNvbnRhaW5zKCpoYW5kbGUpOworICAgIH0KKworICAgIGJvb2wgdHJ5R2V0KGNvbnN0IHY4OjpI
YW5kbGU8R2NPYmplY3Q+JiBoYW5kbGUsIFQmIHZhbHVlT3V0KQorICAgIHsKKyAgICAgICAgaWYg
KG1fbWFwLmNvbnRhaW5zKCpoYW5kbGUpKSB7CisgICAgICAgICAgICB2YWx1ZU91dCA9IG1fbWFw
LmdldCgqaGFuZGxlKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICB2b2lkIHNldChjb25zdCB2ODo6SGFuZGxl
PEdjT2JqZWN0PiYgaGFuZGxlLCBjb25zdCBUJiB2YWx1ZSkKKyAgICB7CisgICAgICAgIG1fbWFw
LnNldCgqaGFuZGxlLCB2YWx1ZSk7CisgICAgfQorCisgICAgdWludDMyX3Qgc2l6ZSgpCisgICAg
eworICAgICAgICByZXR1cm4gbV9tYXAuc2l6ZSgpOworICAgIH0KK307CisjZW5kaWYgLy8gZGVm
aW5lZChTU1ZfSU5ESVJFQ1RfTUFQKQorCiB0eXBlZGVmIFVDaGFyIEJ1ZmZlclZhbHVlVHlwZTsK
IAogLy8gU2VyaWFsaXphdGlvbiBmb3JtYXQgaXMgYSBzZXF1ZW5jZSBvZiAodGFnLCBvcHRpb25h
bCBkYXRhKQpAQCAtODEsNiArMjY2LDI0IEBAIGVudW0gU2VyaWFsaXphdGlvblRhZyB7CiAgICAg
T2JqZWN0VGFnID0gJ3snLAogICAgIFNwYXJzZUFycmF5VGFnID0gJ0AnLAogICAgIFJlZ0V4cFRh
ZyA9ICdSJywKKyAgICBBcnJheUJ1ZmZlclRhZyA9ICdCJywKKyAgICBBcnJheUJ1ZmZlclZpZXdU
YWcgPSAnVicsCisgICAgT2JqZWN0UmVmZXJlbmNlVGFnID0gJ14nLAorICAgIEdlbmVyYXRlRnJl
c2hPYmplY3RUYWcgPSAnbycsCisgICAgR2VuZXJhdGVGcmVzaEFycmF5VGFnID0gJ2EnLAorICAg
IENoZWNrUmVmVGFnID0gJz8nCit9OworCitlbnVtIEFycmF5QnVmZmVyVmlld1N1YlRhZyB7Cisg
ICAgQnl0ZUFycmF5VGFnID0gJ2InLAorICAgIFVuc2lnbmVkQnl0ZUFycmF5VGFnID0gJ0InLAor
ICAgIFNob3J0QXJyYXlUYWcgPSAndycsCisgICAgVW5zaWduZWRTaG9ydEFycmF5VGFnID0gJ1cn
LAorICAgIEludEFycmF5VGFnID0gJ2QnLAorICAgIFVuc2lnbmVkSW50QXJyYXlUYWcgPSAnRCcs
CisgICAgRmxvYXRBcnJheVRhZyA9ICdmJywKKyAgICBEb3VibGVBcnJheVRhZyA9ICdGJywKKyAg
ICBEYXRhVmlld1RhZyA9ICc/JwogfTsKIAogc3RhdGljIGJvb2wgc2hvdWxkQ2hlY2tGb3JDeWNs
ZXMoaW50IGRlcHRoKQpAQCAtMjExLDYgKzQxNCw0MCBAQCBwdWJsaWM6CiAgICAgICAgIH0KICAg
ICB9CiAKKyAgICB2b2lkIHdyaXRlQXJyYXlCdWZmZXIoY29uc3QgQXJyYXlCdWZmZXImIGFycmF5
QnVmZmVyKQorICAgIHsKKyAgICAgICAgYXBwZW5kKEFycmF5QnVmZmVyVGFnKTsKKyAgICAgICAg
ZG9Xcml0ZUFycmF5QnVmZmVyKGFycmF5QnVmZmVyKTsKKyAgICB9CisKKyAgICB2b2lkIHdyaXRl
QXJyYXlCdWZmZXJWaWV3KGNvbnN0IEFycmF5QnVmZmVyVmlldyYgYXJyYXlCdWZmZXJWaWV3KQor
ICAgIHsKKyAgICAgICAgYXBwZW5kKEFycmF5QnVmZmVyVmlld1RhZyk7CisgICAgICAgIGNvbnN0
IEFycmF5QnVmZmVyJiBhcnJheUJ1ZmZlciA9ICphcnJheUJ1ZmZlclZpZXcuYnVmZmVyKCk7Cisg
ICAgICAgIEFTU0VSVChzdGF0aWNfY2FzdDxjb25zdCB1aW50OF90Kj4oYXJyYXlCdWZmZXIuZGF0
YSgpKSArIGFycmF5QnVmZmVyVmlldy5ieXRlT2Zmc2V0KCkgPT0KKyAgICAgICAgICAgICAgIHN0
YXRpY19jYXN0PGNvbnN0IHVpbnQ4X3QqPihhcnJheUJ1ZmZlclZpZXcuYmFzZUFkZHJlc3MoKSkp
OworICAgICAgICBpZiAoYXJyYXlCdWZmZXJWaWV3LmlzQnl0ZUFycmF5KCkpCisgICAgICAgICAg
ICBhcHBlbmQoQnl0ZUFycmF5VGFnKTsKKyAgICAgICAgZWxzZSBpZiAoYXJyYXlCdWZmZXJWaWV3
LmlzVW5zaWduZWRCeXRlQXJyYXkoKSkKKyAgICAgICAgICAgIGFwcGVuZChVbnNpZ25lZEJ5dGVB
cnJheVRhZyk7CisgICAgICAgIGVsc2UgaWYgKGFycmF5QnVmZmVyVmlldy5pc1Nob3J0QXJyYXko
KSkKKyAgICAgICAgICAgIGFwcGVuZChTaG9ydEFycmF5VGFnKTsKKyAgICAgICAgZWxzZSBpZiAo
YXJyYXlCdWZmZXJWaWV3LmlzVW5zaWduZWRTaG9ydEFycmF5KCkpCisgICAgICAgICAgICBhcHBl
bmQoVW5zaWduZWRTaG9ydEFycmF5VGFnKTsKKyAgICAgICAgZWxzZSBpZiAoYXJyYXlCdWZmZXJW
aWV3LmlzSW50QXJyYXkoKSkKKyAgICAgICAgICAgIGFwcGVuZChJbnRBcnJheVRhZyk7CisgICAg
ICAgIGVsc2UgaWYgKGFycmF5QnVmZmVyVmlldy5pc1Vuc2lnbmVkSW50QXJyYXkoKSkKKyAgICAg
ICAgICAgIGFwcGVuZChVbnNpZ25lZEludEFycmF5VGFnKTsKKyAgICAgICAgZWxzZSBpZiAoYXJy
YXlCdWZmZXJWaWV3LmlzRmxvYXRBcnJheSgpKQorICAgICAgICAgICAgYXBwZW5kKEZsb2F0QXJy
YXlUYWcpOworICAgICAgICBlbHNlIGlmIChhcnJheUJ1ZmZlclZpZXcuaXNEb3VibGVBcnJheSgp
KQorICAgICAgICAgICAgYXBwZW5kKERvdWJsZUFycmF5VGFnKTsKKyAgICAgICAgZWxzZSBpZiAo
YXJyYXlCdWZmZXJWaWV3LmlzRGF0YVZpZXcoKSkKKyAgICAgICAgICAgIGFwcGVuZChEYXRhVmll
d1RhZyk7CisgICAgICAgIGRvV3JpdGVVaW50MzIoYXJyYXlCdWZmZXJWaWV3LmJ5dGVPZmZzZXQo
KSk7CisgICAgICAgIGRvV3JpdGVVaW50MzIoYXJyYXlCdWZmZXJWaWV3LmJ5dGVMZW5ndGgoKSk7
CisgICAgfQorCiAgICAgdm9pZCB3cml0ZUltYWdlRGF0YSh1aW50MzJfdCB3aWR0aCwgdWludDMy
X3QgaGVpZ2h0LCBjb25zdCB1aW50OF90KiBwaXhlbERhdGEsIHVpbnQzMl90IHBpeGVsRGF0YUxl
bmd0aCkKICAgICB7CiAgICAgICAgIGFwcGVuZChJbWFnZURhdGFUYWcpOwpAQCAtMjM0LDYgKzQ3
MSwxMiBAQCBwdWJsaWM6CiAgICAgICAgIGRvV3JpdGVVaW50MzIobGVuZ3RoKTsKICAgICB9CiAK
KyAgICB2b2lkIHdyaXRlT2JqZWN0T2Zmc2V0KHVpbnQzMl90IG9mZnNldCkKKyAgICB7CisgICAg
ICAgIGFwcGVuZChPYmplY3RSZWZlcmVuY2VUYWcpOworICAgICAgICBkb1dyaXRlVWludDMyKG9m
ZnNldCk7CisgICAgfQorCiAgICAgdm9pZCB3cml0ZU9iamVjdCh1aW50MzJfdCBudW1Qcm9wZXJ0
aWVzKQogICAgIHsKICAgICAgICAgYXBwZW5kKE9iamVjdFRhZyk7CkBAIC0yNTMsNyArNDk2LDMx
IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIG1fYnVmZmVyOwogICAgIH0KIAorICAgIHZvaWQg
d3JpdGVDaGVja1JlZih1aW50MzJfdCBudW1iZXJPZlJlZnMpCisgICAgeworICAgICAgICBhcHBl
bmQoQ2hlY2tSZWZUYWcpOworICAgICAgICBkb1dyaXRlVWludDMyKG51bWJlck9mUmVmcyk7Cisg
ICAgfQorCisgICAgdm9pZCB3cml0ZUdlbmVyYXRlRnJlc2hPYmplY3QoKQorICAgIHsKKyAgICAg
ICAgYXBwZW5kKEdlbmVyYXRlRnJlc2hPYmplY3RUYWcpOworICAgIH0KKworICAgIHZvaWQgd3Jp
dGVHZW5lcmF0ZUZyZXNoQXJyYXkodWludDMyX3QgbGVuZ3RoKQorICAgIHsKKyAgICAgICAgYXBw
ZW5kKEdlbmVyYXRlRnJlc2hBcnJheVRhZyk7CisgICAgICAgIGRvV3JpdGVVaW50MzIobGVuZ3Ro
KTsKKyAgICB9CisKIHByaXZhdGU6CisgICAgdm9pZCBkb1dyaXRlQXJyYXlCdWZmZXIoY29uc3Qg
QXJyYXlCdWZmZXImIGFycmF5QnVmZmVyKQorICAgIHsKKyAgICAgICAgdWludDMyX3QgYnl0ZUxl
bmd0aCA9IGFycmF5QnVmZmVyLmJ5dGVMZW5ndGgoKTsKKyAgICAgICAgZG9Xcml0ZVVpbnQzMihi
eXRlTGVuZ3RoKTsKKyAgICAgICAgYXBwZW5kKHN0YXRpY19jYXN0PGNvbnN0IHVpbnQ4X3QqPihh
cnJheUJ1ZmZlci5kYXRhKCkpLCBieXRlTGVuZ3RoKTsKKyAgICB9CisKICAgICB2b2lkIGRvV3Jp
dGVTdHJpbmcoY29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0aCkKICAgICB7CiAgICAgICAgIGRv
V3JpdGVVaW50MzIoc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGxlbmd0aCkpOwpAQCAtMzQwLDYgKzYw
Nyw3IEBAIHB1YmxpYzoKICAgICBlbnVtIFN0YXR1cyB7CiAgICAgICAgIFN1Y2Nlc3MsCiAgICAg
ICAgIElucHV0RXJyb3IsCisgICAgICAgIERhdGFDbG9uZUVycm9yLAogICAgICAgICBKU0V4Y2Vw
dGlvbiwKICAgICAgICAgSlNGYWlsdXJlCiAgICAgfTsKQEAgLTM0OCw3ICs2MTYsOSBAQCBwdWJs
aWM6CiAgICAgICAgIDogbV93cml0ZXIod3JpdGVyKQogICAgICAgICAsIG1fdHJ5Q2F0Y2godHJ5
Q2F0Y2gpCiAgICAgICAgICwgbV9kZXB0aCgwKQorICAgICAgICAsIG1fZXhlY0RlcHRoKDApCiAg
ICAgICAgICwgbV9zdGF0dXMoU3VjY2VzcykKKyAgICAgICAgLCBtX25leHRPYmplY3RJZCgwKQog
ICAgIHsKICAgICAgICAgQVNTRVJUKCF0cnlDYXRjaC5IYXNDYXVnaHQoKSk7CiAgICAgfQpAQCAt
MzYzLDcgKzYzMyw2IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICAvLyBGdW5jdGlvbnMgdXNlZCBi
eSBzZXJpYWxpemF0aW9uIHN0YXRlcy4KLQogICAgIFN0YXRlQmFzZSogZG9TZXJpYWxpemUodjg6
OkhhbmRsZTx2ODo6VmFsdWU+IHZhbHVlLCBTdGF0ZUJhc2UqIG5leHQpOwogCiAgICAgU3RhdGVC
YXNlKiBjaGVja0V4Y2VwdGlvbihTdGF0ZUJhc2UqIHN0YXRlKQpAQCAtNDExLDYgKzY4MCwxMCBA
QCBwcml2YXRlOgogICAgICAgICAvLyBzdGF0ZS4KICAgICAgICAgdmlydHVhbCBTdGF0ZUJhc2Uq
IGFkdmFuY2UoU2VyaWFsaXplciYpID0gMDsKIAorICAgICAgICAvLyBSZXR1cm5zIDEgaWYgdGhp
cyBzdGF0ZSBpcyBjdXJyZW50bHkgc2VyaWFsaXppbmcgYSBwcm9wZXJ0eQorICAgICAgICAvLyB2
aWEgYW4gYWNjZXNzb3IgYW5kIDAgb3RoZXJ3aXNlLgorICAgICAgICB2aXJ0dWFsIHVpbnQzMl90
IGV4ZWNEZXB0aCgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KKwogICAgIHByb3RlY3RlZDoKICAgICAg
ICAgU3RhdGVCYXNlKHY4OjpIYW5kbGU8djg6OlZhbHVlPiBjb21wb3NpdGUsIFN0YXRlQmFzZSog
bmV4dCkKICAgICAgICAgICAgIDogbV9jb21wb3NpdGUoY29tcG9zaXRlKQpAQCAtNDg1LDExICs3
NTgsMTMgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICwgbV9pbmRleCgwKQogICAgICAgICAgICAg
LCBtX251bVNlcmlhbGl6ZWRQcm9wZXJ0aWVzKDApCiAgICAgICAgICAgICAsIG1fbmFtZURvbmUo
ZmFsc2UpCisgICAgICAgICAgICAsIG1fc2VyaWFsaXppbmdBY2Nlc3NvcihmYWxzZSkKICAgICAg
ICAgewogICAgICAgICB9CiAKICAgICAgICAgdmlydHVhbCBTdGF0ZUJhc2UqIGFkdmFuY2UoU2Vy
aWFsaXplciYgc2VyaWFsaXplcikKICAgICAgICAgeworICAgICAgICAgICAgbV9zZXJpYWxpemlu
Z0FjY2Vzc29yID0gZmFsc2U7CiAgICAgICAgICAgICBpZiAoIW1faW5kZXgpIHsKICAgICAgICAg
ICAgICAgICBtX3Byb3BlcnR5TmFtZXMgPSBjb21wb3NpdGUoKS0+R2V0UHJvcGVydHlOYW1lcygp
OwogICAgICAgICAgICAgICAgIGlmIChTdGF0ZUJhc2UqIG5ld1N0YXRlID0gc2VyaWFsaXplci5j
aGVja0V4Y2VwdGlvbih0aGlzKSkKQEAgLTQ5OCw2ICs3NzMsNyBAQCBwcml2YXRlOgogICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gc2VyaWFsaXplci5yZXBvcnRGYWlsdXJlKHRoaXMpOwogICAg
ICAgICAgICAgfQogICAgICAgICAgICAgd2hpbGUgKG1faW5kZXggPCBtX3Byb3BlcnR5TmFtZXMt
Pkxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgYm9vbCBpc0FjY2Vzc29yID0gZmFsc2U7CiAg
ICAgICAgICAgICAgICAgaWYgKCFtX25hbWVEb25lKSB7CiAgICAgICAgICAgICAgICAgICAgIHY4
OjpMb2NhbDx2ODo6VmFsdWU+IHByb3BlcnR5TmFtZSA9IG1fcHJvcGVydHlOYW1lcy0+R2V0KG1f
aW5kZXgpOwogICAgICAgICAgICAgICAgICAgICBpZiAoU3RhdGVCYXNlKiBuZXdTdGF0ZSA9IHNl
cmlhbGl6ZXIuY2hlY2tFeGNlcHRpb24odGhpcykpCkBAIC01MTAsNiArNzg2LDkgQEAgcHJpdmF0
ZToKICAgICAgICAgICAgICAgICAgICAgYm9vbCBoYXNJbmRleGVkUHJvcGVydHkgPSAhaGFzU3Ry
aW5nUHJvcGVydHkgJiYgcHJvcGVydHlOYW1lLT5Jc1VpbnQzMigpICYmIGNvbXBvc2l0ZSgpLT5I
YXNSZWFsSW5kZXhlZFByb3BlcnR5KHByb3BlcnR5TmFtZS0+VWludDMyVmFsdWUoKSk7CiAgICAg
ICAgICAgICAgICAgICAgIGlmIChTdGF0ZUJhc2UqIG5ld1N0YXRlID0gc2VyaWFsaXplci5jaGVj
a0V4Y2VwdGlvbih0aGlzKSkKICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXdTdGF0
ZTsKKyAgICAgICAgICAgICAgICAgICAgaXNBY2Nlc3NvciA9IGhhc1N0cmluZ1Byb3BlcnR5ICYm
IGNvbXBvc2l0ZSgpLT5IYXNSZWFsTmFtZWRDYWxsYmFja1Byb3BlcnR5KHByb3BlcnR5TmFtZS5B
czx2ODo6U3RyaW5nPigpKTsgCisgICAgICAgICAgICAgICAgICAgIGlmIChTdGF0ZUJhc2UqIG5l
d1N0YXRlID0gc2VyaWFsaXplci5jaGVja0V4Y2VwdGlvbih0aGlzKSkKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHJldHVybiBuZXdTdGF0ZTsKICAgICAgICAgICAgICAgICAgICAgaWYgKGhhc1N0
cmluZ1Byb3BlcnR5IHx8IGhhc0luZGV4ZWRQcm9wZXJ0eSkKICAgICAgICAgICAgICAgICAgICAg
ICAgIG1fcHJvcGVydHlOYW1lID0gcHJvcGVydHlOYW1lOwogICAgICAgICAgICAgICAgICAgICBl
bHNlIHsKQEAgLTUzMCwxMiArODA5LDE2IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgbV9w
cm9wZXJ0eU5hbWUuQ2xlYXIoKTsKICAgICAgICAgICAgICAgICArK21faW5kZXg7CiAgICAgICAg
ICAgICAgICAgKyttX251bVNlcmlhbGl6ZWRQcm9wZXJ0aWVzOworICAgICAgICAgICAgICAgIG1f
c2VyaWFsaXppbmdBY2Nlc3NvciA9IGlzQWNjZXNzb3I7CiAgICAgICAgICAgICAgICAgaWYgKFN0
YXRlQmFzZSogbmV3U3RhdGUgPSBzZXJpYWxpemVyLmRvU2VyaWFsaXplKHZhbHVlLCB0aGlzKSkK
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ld1N0YXRlOworICAgICAgICAgICAgICAgIG1f
c2VyaWFsaXppbmdBY2Nlc3NvciA9IGZhbHNlOwogICAgICAgICAgICAgfQogICAgICAgICAgICAg
cmV0dXJuIG9iamVjdERvbmUobV9udW1TZXJpYWxpemVkUHJvcGVydGllcywgc2VyaWFsaXplcik7
CiAgICAgICAgIH0KIAorICAgICAgICB2aXJ0dWFsIHVpbnQzMl90IGV4ZWNEZXB0aCgpIGNvbnN0
IHsgcmV0dXJuIG1fc2VyaWFsaXppbmdBY2Nlc3NvciA/IDEgOiAwOyB9CisKICAgICBwcm90ZWN0
ZWQ6CiAgICAgICAgIHZpcnR1YWwgU3RhdGVCYXNlKiBvYmplY3REb25lKHVuc2lnbmVkIG51bVBy
b3BlcnRpZXMsIFNlcmlhbGl6ZXImKSA9IDA7CiAKQEAgLTU0NSw2ICs4MjgsNyBAQCBwcml2YXRl
OgogICAgICAgICB1bnNpZ25lZCBtX2luZGV4OwogICAgICAgICB1bnNpZ25lZCBtX251bVNlcmlh
bGl6ZWRQcm9wZXJ0aWVzOwogICAgICAgICBib29sIG1fbmFtZURvbmU7CisgICAgICAgIGJvb2wg
bV9zZXJpYWxpemluZ0FjY2Vzc29yOwogICAgIH07CiAKICAgICBjbGFzcyBPYmplY3RTdGF0ZSA6
IHB1YmxpYyBBYnN0cmFjdE9iamVjdFN0YXRlIHsKQEAgLTU3NSw5ICs4NTksMTYgQEAgcHJpdmF0
ZToKICAgICAgICAgfQogICAgIH07CiAKKyAgICB1aW50MzJfdCBleGVjRGVwdGgoKSBjb25zdAor
ICAgIHsKKyAgICAgICAgcmV0dXJuIG1fZXhlY0RlcHRoOworICAgIH0KKwogICAgIFN0YXRlQmFz
ZSogcHVzaChTdGF0ZUJhc2UqIHN0YXRlKQogICAgIHsKICAgICAgICAgQVNTRVJUKHN0YXRlKTsK
KyAgICAgICAgaWYgKHN0YXRlLT5uZXh0U3RhdGUoKSkKKyAgICAgICAgICAgIG1fZXhlY0RlcHRo
ICs9IHN0YXRlLT5uZXh0U3RhdGUoKS0+ZXhlY0RlcHRoKCk7CiAgICAgICAgICsrbV9kZXB0aDsK
ICAgICAgICAgcmV0dXJuIGNoZWNrQ29tcG9zaXRlKHN0YXRlKSA/IHN0YXRlIDogaGFuZGxlRXJy
b3IoSW5wdXRFcnJvciwgc3RhdGUpOwogICAgIH0KQEAgLTU4Nyw2ICs4NzgsOCBAQCBwcml2YXRl
OgogICAgICAgICBBU1NFUlQoc3RhdGUpOwogICAgICAgICAtLW1fZGVwdGg7CiAgICAgICAgIFN0
YXRlQmFzZSogbmV4dCA9IHN0YXRlLT5uZXh0U3RhdGUoKTsKKyAgICAgICAgaWYgKG5leHQpCisg
ICAgICAgICAgICBtX2V4ZWNEZXB0aCAtPSBuZXh0LT5leGVjRGVwdGgoKTsKICAgICAgICAgZGVs
ZXRlIHN0YXRlOwogICAgICAgICByZXR1cm4gbmV4dDsKICAgICB9CkBAIC01OTksNiArODkyLDgg
QEAgcHJpdmF0ZToKICAgICAgICAgICAgIFN0YXRlQmFzZSogdG1wID0gc3RhdGUtPm5leHRTdGF0
ZSgpOwogICAgICAgICAgICAgZGVsZXRlIHN0YXRlOwogICAgICAgICAgICAgc3RhdGUgPSB0bXA7
CisgICAgICAgICAgICBpZiAoc3RhdGUpCisgICAgICAgICAgICAgICAgbV9leGVjRGVwdGggLT0g
c3RhdGUtPmV4ZWNEZXB0aCgpOwogICAgICAgICB9CiAgICAgICAgIHJldHVybiBuZXcgRXJyb3JT
dGF0ZTsKICAgICB9CkBAIC02MTgsNiArOTEzLDExIEBAIHByaXZhdGU6CiAgICAgICAgIHJldHVy
biB0cnVlOwogICAgIH0KIAorICAgIHZvaWQgd3JpdGVOdWxsKCkKKyAgICB7CisgICAgICAgIG1f
d3JpdGVyLndyaXRlTnVsbCgpOworICAgIH0KKwogICAgIHZvaWQgd3JpdGVTdHJpbmcodjg6Okhh
bmRsZTx2ODo6VmFsdWU+IHZhbHVlKQogICAgIHsKICAgICAgICAgdjg6OlN0cmluZzo6VXRmOFZh
bHVlIHN0cmluZ1ZhbHVlKHZhbHVlKTsKQEAgLTY2Myw2ICs5NjMsMzUgQEAgcHJpdmF0ZToKICAg
ICAgICAgbV93cml0ZXIud3JpdGVSZWdFeHAocmVnRXhwLT5HZXRTb3VyY2UoKSwgcmVnRXhwLT5H
ZXRGbGFncygpKTsKICAgICB9CiAKKyAgICBTdGF0ZUJhc2UqIHdyaXRlQW5kR3JleUFycmF5QnVm
ZmVyVmlldyh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IG9iamVjdCwgU3RhdGVCYXNlKiBuZXh0KQor
ICAgIHsKKyAgICAgICAgQVNTRVJUKCFvYmplY3QuSXNFbXB0eSgpKTsKKyAgICAgICAgQXJyYXlC
dWZmZXJWaWV3KiBhcnJheUJ1ZmZlclZpZXcgPSBWOEFycmF5QnVmZmVyVmlldzo6dG9OYXRpdmUo
b2JqZWN0KTsKKyAgICAgICAgaWYgKCFhcnJheUJ1ZmZlclZpZXcpCisgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgICAgIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB1bmRlcmx5aW5nQnVmZmVy
ID0gdG9WOChhcnJheUJ1ZmZlclZpZXctPmJ1ZmZlcigpKTsKKyAgICAgICAgaWYgKHVuZGVybHlp
bmdCdWZmZXIuSXNFbXB0eSgpKQorICAgICAgICAgICAgcmV0dXJuIGhhbmRsZUVycm9yKERhdGFD
bG9uZUVycm9yLCBuZXh0KTsKKyAgICAgICAgU3RhdGVCYXNlKiBzdGF0ZU91dCA9IGRvU2VyaWFs
aXplKHVuZGVybHlpbmdCdWZmZXIsIDApOworICAgICAgICBpZiAoc3RhdGVPdXQpCisgICAgICAg
ICAgICByZXR1cm4gaGFuZGxlRXJyb3IoRGF0YUNsb25lRXJyb3IsIG5leHQpOworICAgICAgICBt
X3dyaXRlci53cml0ZUFycmF5QnVmZmVyVmlldygqYXJyYXlCdWZmZXJWaWV3KTsKKyAgICAgICAg
Ly8gVGhpcyBzaG91bGQgYmUgc2FmZTogd2Ugc2VyaWFsaXplIHNvbWV0aGluZyB0aGF0IHdlIGtu
b3cgdG8gYmUgYSB3cmFwcGVyIChzZWUKKyAgICAgICAgLy8gdGhlIHRvVjggY2FsbCBhYm92ZSks
IHNvIHRoZSBjYWxsIHRvIGRvU2VyaWFsaXplIGFib3ZlIHNob3VsZCBuZWl0aGVyIGNhdXNlCisg
ICAgICAgIC8vIHRoZSBzdGFjayB0byBvdmVyZmxvdyBub3Igc2hvdWxkIGl0IGhhdmUgdGhlIHBv
dGVudGlhbCB0byByZWFjaCB0aGlzCisgICAgICAgIC8vIEFycmF5QnVmZmVyVmlldyBhZ2Fpbi4K
KyAgICAgICAgZ3JleU9iamVjdChvYmplY3QpOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisK
KyAgICB2b2lkIHdyaXRlQXJyYXlCdWZmZXIodjg6OkhhbmRsZTx2ODo6VmFsdWU+IHZhbHVlKQor
ICAgIHsKKyAgICAgICAgQXJyYXlCdWZmZXIqIGFycmF5QnVmZmVyID0gVjhBcnJheUJ1ZmZlcjo6
dG9OYXRpdmUodmFsdWUuQXM8djg6Ok9iamVjdD4oKSk7CisgICAgICAgIGlmICghYXJyYXlCdWZm
ZXIpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIG1fd3JpdGVyLndyaXRlQXJyYXlCdWZm
ZXIoKmFycmF5QnVmZmVyKTsKKyAgICB9CisKICAgICBzdGF0aWMgU3RhdGVCYXNlKiBuZXdBcnJh
eVN0YXRlKHY4OjpIYW5kbGU8djg6OkFycmF5PiBhcnJheSwgU3RhdGVCYXNlKiBuZXh0KQogICAg
IHsKICAgICAgICAgLy8gRklYTUU6IHVzZSBwbGFpbiBBcnJheSBzdGF0ZSB3aGVuIHdlIGNhbiBx
dWlja2x5IGNoZWNrIHRoYXQKQEAgLTY3NiwyMCArMTAwNSw1MSBAQCBwcml2YXRlOgogICAgICAg
ICByZXR1cm4gbmV3IE9iamVjdFN0YXRlKG9iamVjdCwgbmV4dCk7CiAgICAgfQogCisgICAgdWlu
dDMyX3QgZ3JleU9iamVjdChjb25zdCB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+JiBvYmplY3QpCisg
ICAgeworICAgICAgICBBU1NFUlQoIW1fb2JqZWN0UG9vbC5jb250YWlucyhvYmplY3QpKTsKKyAg
ICAgICAgdWludDMyX3Qgb2JqZWN0SWQgPSBtX25leHRPYmplY3RJZCsrOworICAgICAgICBtX29i
amVjdFBvb2wuc2V0KG9iamVjdCwgb2JqZWN0SWQpOworICAgICAgICByZXR1cm4gb2JqZWN0SWQ7
CisgICAgfQorCiAgICAgV3JpdGVyJiBtX3dyaXRlcjsKICAgICB2ODo6VHJ5Q2F0Y2gmIG1fdHJ5
Q2F0Y2g7CiAgICAgaW50IG1fZGVwdGg7CisgICAgaW50IG1fZXhlY0RlcHRoOwogICAgIFN0YXR1
cyBtX3N0YXR1czsKKyAgICB0eXBlZGVmIFY4R2NIYW5kbGVNYXA8djg6Ok9iamVjdCwgdWludDMy
X3Q+IE9iamVjdFBvb2w7CisgICAgT2JqZWN0UG9vbCBtX29iamVjdFBvb2w7CisgICAgdWludDMy
X3QgbV9uZXh0T2JqZWN0SWQ7CiB9OwogCiBTZXJpYWxpemVyOjpTdGF0ZUJhc2UqIFNlcmlhbGl6
ZXI6OmRvU2VyaWFsaXplKHY4OjpIYW5kbGU8djg6OlZhbHVlPiB2YWx1ZSwgU3RhdGVCYXNlKiBu
ZXh0KQogewotICAgIGlmICh2YWx1ZS5Jc0VtcHR5KCkpCisjaWZkZWYgU1NWX0RFQlVHCisgICAg
cHJpbnRmKCJcblxuZG9TZXJpYWxpemUgKGV4ZWMgZGVwdGggJWQsIG5leHQgZXhlYyBkZXB0aDog
JWQpOiAiLCBtX2V4ZWNEZXB0aCwgKG5leHQgPyBuZXh0LT5leGVjRGVwdGgoKSA6IDApKTsKKyNl
bmRpZgorICAgIGlmIChtX2V4ZWNEZXB0aCArIChuZXh0ID8gbmV4dC0+ZXhlY0RlcHRoKCkgOiAw
KSA+IDEpIHsKKyNpZmRlZiBTU1ZfREVCVUcKKyAgICAgICAgcHJpbnRmKCIobnVsbGluZylcbiIp
OworI2VuZGlmCisgICAgICAgIG1fd3JpdGVyLndyaXRlTnVsbCgpOworICAgICAgICByZXR1cm4g
MDsKKyAgICB9CisjaWZkZWYgU1NWX0RFQlVHCisgICAgcHJpbnRmKCJcbiIpOworI2VuZGlmCisg
ICAgbV93cml0ZXIud3JpdGVDaGVja1JlZihtX25leHRPYmplY3RJZCk7CisgICAgdWludDMyX3Qg
b2JqZWN0UG9vbE9mZnNldDsKKyAgICBpZiAoKHZhbHVlLT5Jc09iamVjdCgpIHx8IHZhbHVlLT5J
c0RhdGUoKSB8fCB2YWx1ZS0+SXNSZWdFeHAoKSkKKyAgICAgICAgJiYgbV9vYmplY3RQb29sLnRy
eUdldCh2YWx1ZS5Bczx2ODo6T2JqZWN0PigpLCBvYmplY3RQb29sT2Zmc2V0KSkgeworICAgICAg
ICBBU1NFUlQoIXZhbHVlLT5Jc1N0cmluZygpKTsKKyAgICAgICAgbV93cml0ZXIud3JpdGVPYmpl
Y3RPZmZzZXQob2JqZWN0UG9vbE9mZnNldCk7CisgICAgfSBlbHNlIGlmICh2YWx1ZS5Jc0VtcHR5
KCkpCiAgICAgICAgIHJldHVybiByZXBvcnRGYWlsdXJlKG5leHQpOwotICAgIGlmICh2YWx1ZS0+
SXNVbmRlZmluZWQoKSkKKyAgICBlbHNlIGlmICh2YWx1ZS0+SXNVbmRlZmluZWQoKSkKICAgICAg
ICAgbV93cml0ZXIud3JpdGVVbmRlZmluZWQoKTsKICAgICBlbHNlIGlmICh2YWx1ZS0+SXNOdWxs
KCkpCi0gICAgICAgIG1fd3JpdGVyLndyaXRlTnVsbCgpOworICAgICAgICB3cml0ZU51bGwoKTsK
ICAgICBlbHNlIGlmICh2YWx1ZS0+SXNUcnVlKCkpCiAgICAgICAgIG1fd3JpdGVyLndyaXRlVHJ1
ZSgpOwogICAgIGVsc2UgaWYgKHZhbHVlLT5Jc0ZhbHNlKCkpCkBAIC02OTgsMjYgKzEwNTgsNTIg
QEAgU2VyaWFsaXplcjo6U3RhdGVCYXNlKiBTZXJpYWxpemVyOjpkb1NlcmlhbGl6ZSh2ODo6SGFu
ZGxlPHY4OjpWYWx1ZT4gdmFsdWUsIFN0YXQKICAgICAgICAgbV93cml0ZXIud3JpdGVJbnQzMih2
YWx1ZS0+SW50MzJWYWx1ZSgpKTsKICAgICBlbHNlIGlmICh2YWx1ZS0+SXNVaW50MzIoKSkKICAg
ICAgICAgbV93cml0ZXIud3JpdGVVaW50MzIodmFsdWUtPlVpbnQzMlZhbHVlKCkpOwotICAgIGVs
c2UgaWYgKHZhbHVlLT5Jc0RhdGUoKSkKLSAgICAgICAgbV93cml0ZXIud3JpdGVEYXRlKHZhbHVl
LT5OdW1iZXJWYWx1ZSgpKTsKICAgICBlbHNlIGlmICh2YWx1ZS0+SXNOdW1iZXIoKSkKICAgICAg
ICAgbV93cml0ZXIud3JpdGVOdW1iZXIodmFsdWUuQXM8djg6Ok51bWJlcj4oKS0+VmFsdWUoKSk7
Ci0gICAgZWxzZSBpZiAodmFsdWUtPklzU3RyaW5nKCkpCisgICAgZWxzZSBpZiAoVjhBcnJheUJ1
ZmZlclZpZXc6Okhhc0luc3RhbmNlKHZhbHVlKSkgCisgICAgICAgIHJldHVybiB3cml0ZUFuZEdy
ZXlBcnJheUJ1ZmZlclZpZXcodmFsdWUuQXM8djg6Ok9iamVjdD4oKSwgbmV4dCk7CisgICAgZWxz
ZSBpZiAodmFsdWUtPklzU3RyaW5nKCkpIHsKKyAgICAgICAgLy8gVGhlIHY4IEFQSSBjYWxscyBz
dHJpbmdzIHByaW1pdGl2ZXMsIG5vdCBvYmplY3RzLiBXZSdsbCBsYXRlciBkZXNlcmlhbGl6ZSB0
aGVtIHRvIHRoZQorICAgICAgICAvLyBvYmplY3QgcG9vbCwgdGhvdWdoLCBzbyB3ZSBjYW4gZGVk
dXBsaWNhdGUgaW4gdGhlIGZ1dHVyZS4KKyAgICAgICAgKyttX25leHRPYmplY3RJZDsKICAgICAg
ICAgd3JpdGVTdHJpbmcodmFsdWUpOwotICAgIGVsc2UgaWYgKHZhbHVlLT5Jc0FycmF5KCkpCi0g
ICAgICAgIHJldHVybiBwdXNoKG5ld0FycmF5U3RhdGUodmFsdWUuQXM8djg6OkFycmF5PigpLCBu
ZXh0KSk7Ci0gICAgZWxzZSBpZiAoVjhGaWxlOjpIYXNJbnN0YW5jZSh2YWx1ZSkpCi0gICAgICAg
IHdyaXRlRmlsZSh2YWx1ZSk7Ci0gICAgZWxzZSBpZiAoVjhCbG9iOjpIYXNJbnN0YW5jZSh2YWx1
ZSkpCi0gICAgICAgIHdyaXRlQmxvYih2YWx1ZSk7Ci0gICAgZWxzZSBpZiAoVjhGaWxlTGlzdDo6
SGFzSW5zdGFuY2UodmFsdWUpKQotICAgICAgICB3cml0ZUZpbGVMaXN0KHZhbHVlKTsKLSAgICBl
bHNlIGlmIChWOEltYWdlRGF0YTo6SGFzSW5zdGFuY2UodmFsdWUpKQotICAgICAgICB3cml0ZUlt
YWdlRGF0YSh2YWx1ZSk7Ci0gICAgZWxzZSBpZiAodmFsdWUtPklzUmVnRXhwKCkpCi0gICAgICAg
IHdyaXRlUmVnRXhwKHZhbHVlKTsKLSAgICBlbHNlIGlmICh2YWx1ZS0+SXNPYmplY3QoKSkKLSAg
ICAgICAgcmV0dXJuIHB1c2gobmV3T2JqZWN0U3RhdGUodmFsdWUuQXM8djg6Ok9iamVjdD4oKSwg
bmV4dCkpOworICAgIH0gZWxzZSB7CisgICAgICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4ganNP
YmplY3QgPSB2YWx1ZS5Bczx2ODo6T2JqZWN0PigpOworICAgICAgICBBU1NFUlQoIWpzT2JqZWN0
LklzRW1wdHkoKSk7CisgICAgICAgIGdyZXlPYmplY3QoanNPYmplY3QpOworICAgICAgICBpZiAo
dmFsdWUtPklzRGF0ZSgpKQorICAgICAgICAgICAgbV93cml0ZXIud3JpdGVEYXRlKHZhbHVlLT5O
dW1iZXJWYWx1ZSgpKTsKKyAgICAgICAgZWxzZSBpZiAodmFsdWUtPklzQXJyYXkoKSkgeworICAg
ICAgICAgICAgbV93cml0ZXIud3JpdGVHZW5lcmF0ZUZyZXNoQXJyYXkodmFsdWUuQXM8djg6OkFy
cmF5PigpLT5MZW5ndGgoKSk7CisgICAgICAgICAgICByZXR1cm4gcHVzaChuZXdBcnJheVN0YXRl
KHZhbHVlLkFzPHY4OjpBcnJheT4oKSwgbmV4dCkpOworICAgICAgICB9IGVsc2UgaWYgKFY4Rmls
ZTo6SGFzSW5zdGFuY2UodmFsdWUpKQorICAgICAgICAgICAgd3JpdGVGaWxlKHZhbHVlKTsKKyAg
ICAgICAgZWxzZSBpZiAoVjhCbG9iOjpIYXNJbnN0YW5jZSh2YWx1ZSkpCisgICAgICAgICAgICB3
cml0ZUJsb2IodmFsdWUpOworICAgICAgICBlbHNlIGlmIChWOEZpbGVMaXN0OjpIYXNJbnN0YW5j
ZSh2YWx1ZSkpCisgICAgICAgICAgICB3cml0ZUZpbGVMaXN0KHZhbHVlKTsKKyAgICAgICAgZWxz
ZSBpZiAoVjhJbWFnZURhdGE6Okhhc0luc3RhbmNlKHZhbHVlKSkKKyAgICAgICAgICAgIHdyaXRl
SW1hZ2VEYXRhKHZhbHVlKTsKKyAgICAgICAgZWxzZSBpZiAodmFsdWUtPklzUmVnRXhwKCkpCisg
ICAgICAgICAgICB3cml0ZVJlZ0V4cCh2YWx1ZSk7CisgICAgICAgIGVsc2UgaWYgKFY4QXJyYXlC
dWZmZXI6Okhhc0luc3RhbmNlKHZhbHVlKSkKKyAgICAgICAgICAgIHdyaXRlQXJyYXlCdWZmZXIo
dmFsdWUpOworICAgICAgICBlbHNlIGlmICh2YWx1ZS0+SXNPYmplY3QoKSkgeworICAgICAgICAg
ICAgLy8gSWYgdGhlIG9iamVjdCBoYXMgYW55IGludGVybmFsIGZpZWxkcywgdGhlbiB3ZSB3b24n
dCBiZSBhYmxlIHRvIHNlcmlhbGl6ZSBvciBkZXNlcmlhbGl6ZQorICAgICAgICAgICAgLy8gdGhl
bTsgY29udmVuaWVudGx5LCB0aGlzIGlzIGFsc28gYSBxdWljayB3YXkgdG8gZGV0ZWN0IERPTSB3
cmFwcGVyIG9iamVjdHMsIGJlY2F1c2UKKyAgICAgICAgICAgIC8vIHRoZSBtZWNoYW5pc20gZm9y
IHRoZXNlIHJlbGllcyBvbiBkYXRhIHN0b3JlZCBpbiB0aGVzZSBmaWVsZHMuIEZ1cnRoZXJtb3Jl
LCB3ZSBzaG91bGQKKyAgICAgICAgICAgIC8vIGNhdGNoIGV4dGVybmFsIGFycmF5IGRhdGEgYW5k
IGV4dGVybmFsIHBpeGVsIGRhdGEgYWJvdmUgKG5vdGluZyB0aGF0IENhbnZhc1BpeGVsQXJyYXlz
CisgICAgICAgICAgICAvLyBjYW4ndCBiZSBzZXJpYWxpemVkIHdpdGhvdXQgYmVpbmcgd3JhcHBl
ZCBieSBJbWFnZURhdGEgYWNjb3JkaW5nIHRvIHRoZSBzdGFuZGFyZCkuCisgICAgICAgICAgICBp
ZiAoanNPYmplY3QtPkludGVybmFsRmllbGRDb3VudCgpCisgICAgICAgICAgICAgICAgfHwganNP
YmplY3QtPkhhc0luZGV4ZWRQcm9wZXJ0aWVzSW5QaXhlbERhdGEoKQorICAgICAgICAgICAgICAg
IHx8IGpzT2JqZWN0LT5IYXNJbmRleGVkUHJvcGVydGllc0luRXh0ZXJuYWxBcnJheURhdGEoKQor
ICAgICAgICAgICAgICAgIHx8IGpzT2JqZWN0LT5Jc0NhbGxhYmxlKCkpCisgICAgICAgICAgICAg
ICAgcmV0dXJuIGhhbmRsZUVycm9yKERhdGFDbG9uZUVycm9yLCBuZXh0KTsKKyAgICAgICAgICAg
IG1fd3JpdGVyLndyaXRlR2VuZXJhdGVGcmVzaE9iamVjdCgpOworICAgICAgICAgICAgcmV0dXJu
IHB1c2gobmV3T2JqZWN0U3RhdGUoanNPYmplY3QsIG5leHQpKTsKKyAgICAgICAgfSBlbHNlCisg
ICAgICAgICAgICByZXR1cm4gaGFuZGxlRXJyb3IoRGF0YUNsb25lRXJyb3IsIG5leHQpOworICAg
IH0KICAgICByZXR1cm4gMDsKIH0KIApAQCAtNzI2LDkgKzExMTIsMTUgQEAgY2xhc3MgQ29tcG9z
aXRlQ3JlYXRvciB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+Q29tcG9zaXRlQ3JlYXRvcigpIHsg
fQogCi0gICAgdmlydHVhbCBib29sIGNyZWF0ZUFycmF5KHVpbnQzMl90IGxlbmd0aCwgdjg6Okhh
bmRsZTx2ODo6VmFsdWU+KiB2YWx1ZSkgPSAwOwotICAgIHZpcnR1YWwgYm9vbCBjcmVhdGVPYmpl
Y3QodWludDMyX3QgbnVtUHJvcGVydGllcywgdjg6OkhhbmRsZTx2ODo6VmFsdWU+KiB2YWx1ZSkg
PSAwOwotICAgIHZpcnR1YWwgYm9vbCBjcmVhdGVTcGFyc2VBcnJheSh1aW50MzJfdCBudW1Qcm9w
ZXJ0aWVzLCB1aW50MzJfdCBsZW5ndGgsIHY4OjpIYW5kbGU8djg6OlZhbHVlPiogdmFsdWUpID0g
MDsKKyAgICB2aXJ0dWFsIGJvb2wgY29uc3VtZVRvcE9mU3RhY2sodjg6OkhhbmRsZTx2ODo6VmFs
dWU+JikgPSAwOworICAgIHZpcnR1YWwgdWludDMyX3Qgb2JqZWN0UmVmZXJlbmNlQ291bnQoKSA9
IDA7CisgICAgdmlydHVhbCBjb25zdCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4mIHB1c2hPYmplY3RS
ZWZlcmVuY2UoY29uc3Qgdjg6OkhhbmRsZTx2ODo6VmFsdWU+JikgPSAwOworICAgIHZpcnR1YWwg
Ym9vbCBnZXRPYmplY3RSZWZlcmVuY2UodWludDMyX3QgcmVmLCB2ODo6SGFuZGxlPHY4OjpWYWx1
ZT4qKSA9IDA7CisgICAgdmlydHVhbCBib29sIHByZXBhcmVFbXB0eUFycmF5KHVpbnQzMl90IGxl
bmd0aCkgPSAwOworICAgIHZpcnR1YWwgYm9vbCBwcmVwYXJlRW1wdHlPYmplY3QoKSA9IDA7Cisg
ICAgdmlydHVhbCBib29sIGZpbmlzaEFycmF5KHVpbnQzMl90IGxlbmd0aCwgdjg6OkhhbmRsZTx2
ODo6VmFsdWU+KikgPSAwOworICAgIHZpcnR1YWwgYm9vbCBmaW5pc2hPYmplY3QodWludDMyX3Qg
bnVtUHJvcGVydGllcywgdjg6OkhhbmRsZTx2ODo6VmFsdWU+KikgPSAwOworICAgIHZpcnR1YWwg
Ym9vbCBmaW5pc2hTcGFyc2VBcnJheSh1aW50MzJfdCBudW1Qcm9wZXJ0aWVzLCB1aW50MzJfdCBs
ZW5ndGgsIHY4OjpIYW5kbGU8djg6OlZhbHVlPiopID0gMDsKIH07CiAKIC8vIFJlYWRlciBpcyBy
ZXNwb25zaWJsZSBmb3IgZGVzZXJpYWxpemluZyBwcmltaXRpdmUgdHlwZXMgYW5kCkBAIC03NTEs
NiArMTE0MywxNCBAQCBwdWJsaWM6CiAgICAgICAgIGlmICghcmVhZFRhZygmdGFnKSkKICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgc3dpdGNoICh0YWcpIHsKKyAgICAgICAgY2Fz
ZSBDaGVja1JlZlRhZzogeworICAgICAgICAgICAgdWludDMyX3QgcmVmVGFibGVTaXplOworICAg
ICAgICAgICAgaWYgKCFkb1JlYWRVaW50MzIoJnJlZlRhYmxlU2l6ZSkpCisgICAgICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgaWYgKHJlZlRhYmxlU2l6ZSAhPSBjcmVhdG9y
Lm9iamVjdFJlZmVyZW5jZUNvdW50KCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0gICAKICAgICAgICAgY2FzZSBJbnZh
bGlkVGFnOgogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICBjYXNlIFBhZGRpbmdU
YWc6CkBAIC03NzAsNiArMTE3MCw3IEBAIHB1YmxpYzoKICAgICAgICAgY2FzZSBTdHJpbmdUYWc6
CiAgICAgICAgICAgICBpZiAoIXJlYWRTdHJpbmcodmFsdWUpKQogICAgICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICAgICAgICAgIGNyZWF0b3IucHVzaE9iamVjdFJlZmVyZW5jZSgqdmFs
dWUpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgSW50MzJUYWc6CiAgICAgICAg
ICAgICBpZiAoIXJlYWRJbnQzMih2YWx1ZSkpCkBAIC03ODIsNiArMTE4Myw3IEBAIHB1YmxpYzoK
ICAgICAgICAgY2FzZSBEYXRlVGFnOgogICAgICAgICAgICAgaWYgKCFyZWFkRGF0ZSh2YWx1ZSkp
CiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgY3JlYXRvci5wdXNo
T2JqZWN0UmVmZXJlbmNlKCp2YWx1ZSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2Fz
ZSBOdW1iZXJUYWc6CiAgICAgICAgICAgICBpZiAoIXJlYWROdW1iZXIodmFsdWUpKQpAQCAtNzkw
LDM2ICsxMTkyLDQxIEBAIHB1YmxpYzoKICAgICAgICAgY2FzZSBCbG9iVGFnOgogICAgICAgICAg
ICAgaWYgKCFyZWFkQmxvYih2YWx1ZSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgICAgICAgICAgY3JlYXRvci5wdXNoT2JqZWN0UmVmZXJlbmNlKCp2YWx1ZSk7CiAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgY2FzZSBGaWxlVGFnOgogICAgICAgICAgICAgaWYgKCFyZWFk
RmlsZSh2YWx1ZSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAg
Y3JlYXRvci5wdXNoT2JqZWN0UmVmZXJlbmNlKCp2YWx1ZSk7CiAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgY2FzZSBGaWxlTGlzdFRhZzoKICAgICAgICAgICAgIGlmICghcmVhZEZpbGVMaXN0
KHZhbHVlKSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBjcmVh
dG9yLnB1c2hPYmplY3RSZWZlcmVuY2UoKnZhbHVlKTsKICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICBjYXNlIEltYWdlRGF0YVRhZzoKICAgICAgICAgICAgIGlmICghcmVhZEltYWdlRGF0YSh2
YWx1ZSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgY3JlYXRv
ci5wdXNoT2JqZWN0UmVmZXJlbmNlKCp2YWx1ZSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgY2FzZSBBcnJheVRhZzogewogICAgICAgICAgICAgdWludDMyX3QgbGVuZ3RoOwogICAgICAg
ICAgICAgaWYgKCFkb1JlYWRVaW50MzIoJmxlbmd0aCkpCiAgICAgICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOwotICAgICAgICAgICAgaWYgKCFjcmVhdG9yLmNyZWF0ZUFycmF5KGxlbmd0aCwgdmFs
dWUpKQorICAgICAgICAgICAgaWYgKCFjcmVhdG9yLmZpbmlzaEFycmF5KGxlbmd0aCwgdmFsdWUp
KQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICB9CiAgICAgICAgIGNhc2UgUmVnRXhwVGFnOgogICAgICAgICAgICAgaWYgKCFyZWFkUmVn
RXhwKHZhbHVlKSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBj
cmVhdG9yLnB1c2hPYmplY3RSZWZlcmVuY2UoKnZhbHVlKTsKICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICBjYXNlIE9iamVjdFRhZzogewogICAgICAgICAgICAgdWludDMyX3QgbnVtUHJvcGVy
dGllczsKICAgICAgICAgICAgIGlmICghZG9SZWFkVWludDMyKCZudW1Qcm9wZXJ0aWVzKSkKICAg
ICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICBpZiAoIWNyZWF0b3IuY3Jl
YXRlT2JqZWN0KG51bVByb3BlcnRpZXMsIHZhbHVlKSkKKyAgICAgICAgICAgIGlmICghY3JlYXRv
ci5maW5pc2hPYmplY3QobnVtUHJvcGVydGllcywgdmFsdWUpKQogICAgICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CkBAIC04MzAsNyArMTIz
Nyw0MSBAQCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAg
ICAgaWYgKCFkb1JlYWRVaW50MzIoJmxlbmd0aCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgICAgICAgICAgaWYgKCFjcmVhdG9yLmNyZWF0ZVNwYXJzZUFycmF5KG51bVByb3Bl
cnRpZXMsIGxlbmd0aCwgdmFsdWUpKQorICAgICAgICAgICAgaWYgKCFjcmVhdG9yLmZpbmlzaFNw
YXJzZUFycmF5KG51bVByb3BlcnRpZXMsIGxlbmd0aCwgdmFsdWUpKQorICAgICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGNh
c2UgQXJyYXlCdWZmZXJWaWV3VGFnOiB7CisgICAgICAgICAgICBpZiAoIXJlYWRBcnJheUJ1ZmZl
clZpZXcodmFsdWUsIGNyZWF0b3IpKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICAgICAgICAgIGNyZWF0b3IucHVzaE9iamVjdFJlZmVyZW5jZSgqdmFsdWUpOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgY2FzZSBBcnJheUJ1ZmZlclRhZzogeworICAg
ICAgICAgICAgLy8gQXJyYXlCdWZmZXJzIGFyZSBhbHdheXMgd3JpdHRlbiBiZWZvcmUgZGVwZW5k
YW50IEFycmF5QnVmZmVyVmlld3MuCisgICAgICAgICAgICBpZiAoIXJlYWRBcnJheUJ1ZmZlcih2
YWx1ZSkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgY3JlYXRv
ci5wdXNoT2JqZWN0UmVmZXJlbmNlKCp2YWx1ZSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgfQorICAgICAgICBjYXNlIEdlbmVyYXRlRnJlc2hPYmplY3RUYWc6IHsKKyAgICAgICAgICAg
IGlmICghY3JlYXRvci5wcmVwYXJlRW1wdHlPYmplY3QoKSkKKyAgICAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBj
YXNlIEdlbmVyYXRlRnJlc2hBcnJheVRhZzogeworICAgICAgICAgICAgdWludDMyX3QgbGVuZ3Ro
OworICAgICAgICAgICAgaWYgKCFkb1JlYWRVaW50MzIoJmxlbmd0aCkpCisgICAgICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgaWYgKCFjcmVhdG9yLnByZXBhcmVFbXB0eUFy
cmF5KGxlbmd0aCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAg
cmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgY2FzZSBPYmplY3RSZWZlcmVuY2VUYWc6
IHsKKyAgICAgICAgICAgIHVpbnQzMl90IHJlZjsKKyAgICAgICAgICAgIGlmICghZG9SZWFkVWlu
dDMyKCZyZWYpKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIGlm
ICghY3JlYXRvci5nZXRPYmplY3RSZWZlcmVuY2UocmVmLCB2YWx1ZSkpCiAgICAgICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KQEAgLTg0OSw2
ICsxMjkwLDE0IEBAIHByaXZhdGU6CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAorICAg
IGJvb2wgcmVhZFN1YlRhZyhBcnJheUJ1ZmZlclZpZXdTdWJUYWcqIHRhZykKKyAgICB7CisgICAg
ICAgIGlmIChtX3Bvc2l0aW9uID49IG1fbGVuZ3RoKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgICAgICAqdGFnID0gc3RhdGljX2Nhc3Q8QXJyYXlCdWZmZXJWaWV3U3ViVGFnPihtX2J1
ZmZlclttX3Bvc2l0aW9uKytdKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCiAgICAg
Ym9vbCByZWFkU3RyaW5nKHY4OjpIYW5kbGU8djg6OlZhbHVlPiogdmFsdWUpCiAgICAgewogICAg
ICAgICB1aW50MzJfdCBsZW5ndGg7CkBAIC05MzIsNiArMTM4MSwxMDcgQEAgcHJpdmF0ZToKICAg
ICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCisgICAgUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4g
ZG9SZWFkQXJyYXlCdWZmZXIoKQorICAgIHsKKyAgICAgICAgdWludDMyX3QgYnl0ZUxlbmd0aDsK
KyAgICAgICAgaWYgKCFkb1JlYWRVaW50MzIoJmJ5dGVMZW5ndGgpKQorICAgICAgICAgICAgcmV0
dXJuIDA7CisgICAgICAgIGlmIChtX3Bvc2l0aW9uICsgYnl0ZUxlbmd0aCA+IG1fbGVuZ3RoKQor
ICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIGNvbnN0IHZvaWQqIGJ1ZmZlclN0YXJ0ID0g
bV9idWZmZXIgKyBtX3Bvc2l0aW9uOworICAgICAgICBSZWZQdHI8QXJyYXlCdWZmZXI+IGFycmF5
QnVmZmVyID0gQXJyYXlCdWZmZXI6OmNyZWF0ZShjb25zdF9jYXN0PHZvaWQqPihidWZmZXJTdGFy
dCksIGJ5dGVMZW5ndGgpOworICAgICAgICBtX3Bvc2l0aW9uICs9IGJ5dGVMZW5ndGg7CisgICAg
ICAgIHJldHVybiBhcnJheUJ1ZmZlci5yZWxlYXNlKCk7CisgICAgfQorCisgICAgYm9vbCByZWFk
QXJyYXlCdWZmZXIodjg6OkhhbmRsZTx2ODo6VmFsdWU+KiB2YWx1ZSkKKyAgICB7CisgICAgICAg
IFJlZlB0cjxBcnJheUJ1ZmZlcj4gYXJyYXlCdWZmZXIgPSBkb1JlYWRBcnJheUJ1ZmZlcigpOwor
ICAgICAgICBpZiAoIWFycmF5QnVmZmVyKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
ICAgICAqdmFsdWUgPSB0b1Y4KGFycmF5QnVmZmVyLnJlbGVhc2UoKSk7CisgICAgICAgIHJldHVy
biB0cnVlOworICAgIH0KKworICAgIGJvb2wgcmVhZEFycmF5QnVmZmVyVmlldyh2ODo6SGFuZGxl
PHY4OjpWYWx1ZT4qIHZhbHVlLCBDb21wb3NpdGVDcmVhdG9yJiBjcmVhdG9yKQorICAgIHsKKyAg
ICAgICAgQXJyYXlCdWZmZXJWaWV3U3ViVGFnIHN1YlRhZzsKKyAgICAgICAgdWludDMyX3QgYnl0
ZU9mZnNldDsKKyAgICAgICAgdWludDMyX3QgYnl0ZUxlbmd0aDsKKyAgICAgICAgUmVmUHRyPEFy
cmF5QnVmZmVyPiBhcnJheUJ1ZmZlcjsKKyAgICAgICAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGFy
cmF5QnVmZmVyVjhWYWx1ZTsKKyAgICAgICAgaWYgKCFyZWFkU3ViVGFnKCZzdWJUYWcpKQorICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBpZiAoIWRvUmVhZFVpbnQzMigmYnl0ZU9m
ZnNldCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGlmICghZG9SZWFkVWlu
dDMyKCZieXRlTGVuZ3RoKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYg
KCFjcmVhdG9yLmNvbnN1bWVUb3BPZlN0YWNrKGFycmF5QnVmZmVyVjhWYWx1ZSkpCisgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGFycmF5QnVmZmVyID0gVjhBcnJheUJ1ZmZlcjo6
dG9OYXRpdmUoYXJyYXlCdWZmZXJWOFZhbHVlLkFzPHY4OjpPYmplY3Q+KCkpOworICAgICAgICBp
ZiAoIWFycmF5QnVmZmVyKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBzd2l0
Y2ggKHN1YlRhZykgeworICAgICAgICBjYXNlIEJ5dGVBcnJheVRhZzoKKyAgICAgICAgICAgICp2
YWx1ZSA9IHRvVjgoSW50OEFycmF5OjpjcmVhdGUoYXJyYXlCdWZmZXIucmVsZWFzZSgpLCBieXRl
T2Zmc2V0LCBieXRlTGVuZ3RoKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBV
bnNpZ25lZEJ5dGVBcnJheVRhZzoKKyAgICAgICAgICAgICp2YWx1ZSA9IHRvVjgoVWludDhBcnJh
eTo6Y3JlYXRlKGFycmF5QnVmZmVyLnJlbGVhc2UoKSwgYnl0ZU9mZnNldCwgYnl0ZUxlbmd0aCkp
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgU2hvcnRBcnJheVRhZzogeworICAg
ICAgICAgICAgdWludDMyX3Qgc2hvcnRMZW5ndGggPSBieXRlTGVuZ3RoIC8gc2l6ZW9mKGludDE2
X3QpOworICAgICAgICAgICAgaWYgKHNob3J0TGVuZ3RoICogc2l6ZW9mKGludDE2X3QpICE9IGJ5
dGVMZW5ndGgpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgKnZh
bHVlID0gdG9WOChJbnQxNkFycmF5OjpjcmVhdGUoYXJyYXlCdWZmZXIucmVsZWFzZSgpLCBieXRl
T2Zmc2V0LCBzaG9ydExlbmd0aCkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAg
ICAgICAgY2FzZSBVbnNpZ25lZFNob3J0QXJyYXlUYWc6IHsKKyAgICAgICAgICAgIHVpbnQzMl90
IHNob3J0TGVuZ3RoID0gYnl0ZUxlbmd0aCAvIHNpemVvZih1aW50MTZfdCk7CisgICAgICAgICAg
ICBpZiAoc2hvcnRMZW5ndGggKiBzaXplb2YoaW50MTZfdCkgIT0gYnl0ZUxlbmd0aCkKKyAgICAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAqdmFsdWUgPSB0b1Y4KFVpbnQx
NkFycmF5OjpjcmVhdGUoYXJyYXlCdWZmZXIucmVsZWFzZSgpLCBieXRlT2Zmc2V0LCBzaG9ydExl
bmd0aCkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgY2FzZSBJbnRB
cnJheVRhZzogeworICAgICAgICAgICAgdWludDMyX3QgaW50TGVuZ3RoID0gYnl0ZUxlbmd0aCAv
IHNpemVvZihpbnQzMl90KTsKKyAgICAgICAgICAgIGlmIChpbnRMZW5ndGggKiBzaXplb2YoaW50
MzJfdCkgIT0gYnl0ZUxlbmd0aCkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
ICAgICAgICAqdmFsdWUgPSB0b1Y4KEludDMyQXJyYXk6OmNyZWF0ZShhcnJheUJ1ZmZlci5yZWxl
YXNlKCksIGJ5dGVPZmZzZXQsIGludExlbmd0aCkpOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIH0KKyAgICAgICAgY2FzZSBVbnNpZ25lZEludEFycmF5VGFnOiB7CisgICAgICAgICAgICB1
aW50MzJfdCBpbnRMZW5ndGggPSBieXRlTGVuZ3RoIC8gc2l6ZW9mKHVpbnQzMl90KTsKKyAgICAg
ICAgICAgIGlmIChpbnRMZW5ndGggKiBzaXplb2YodWludDMyX3QpICE9IGJ5dGVMZW5ndGgpCisg
ICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgKnZhbHVlID0gdG9WOChV
aW50MzJBcnJheTo6Y3JlYXRlKGFycmF5QnVmZmVyLnJlbGVhc2UoKSwgYnl0ZU9mZnNldCwgaW50
TGVuZ3RoKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBjYXNlIEZs
b2F0QXJyYXlUYWc6IHsKKyAgICAgICAgICAgIHVpbnQzMl90IGZsb2F0TGVuZ3RoID0gYnl0ZUxl
bmd0aCAvIHNpemVvZihmbG9hdCk7CisgICAgICAgICAgICBpZiAoZmxvYXRMZW5ndGggKiBzaXpl
b2YoZmxvYXQpICE9IGJ5dGVMZW5ndGgpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgICAgICAgICAgKnZhbHVlID0gdG9WOChGbG9hdDMyQXJyYXk6OmNyZWF0ZShhcnJheUJ1ZmZl
ci5yZWxlYXNlKCksIGJ5dGVPZmZzZXQsIGZsb2F0TGVuZ3RoKSk7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgfQorICAgICAgICBjYXNlIERvdWJsZUFycmF5VGFnOiB7CisgICAgICAgICAg
ICB1aW50MzJfdCBmbG9hdExlbmd0aCA9IGJ5dGVMZW5ndGggLyBzaXplb2YoZG91YmxlKTsKKyAg
ICAgICAgICAgIGlmIChmbG9hdExlbmd0aCAqIHNpemVvZihkb3VibGUpICE9IGJ5dGVMZW5ndGgp
CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgKnZhbHVlID0gdG9W
OChGbG9hdDY0QXJyYXk6OmNyZWF0ZShhcnJheUJ1ZmZlci5yZWxlYXNlKCksIGJ5dGVPZmZzZXQs
IGZsb2F0TGVuZ3RoKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBj
YXNlIERhdGFWaWV3VGFnOgorICAgICAgICAgICAgKnZhbHVlID0gdG9WOChEYXRhVmlldzo6Y3Jl
YXRlKGFycmF5QnVmZmVyLnJlbGVhc2UoKSwgYnl0ZU9mZnNldCwgYnl0ZUxlbmd0aCkpOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgICAgIH0KKyAgICAgICAgLy8gVGhlIHZhcmlvdXMgKkFycmF5OjpjcmVhdGUoKSBt
ZXRob2RzIHdpbGwgcmV0dXJuIG51bGwgaWYgdGhlIHJhbmdlIHRoZSB2aWV3IGV4cGVjdHMgaXMK
KyAgICAgICAgLy8gbWlzbWF0Y2hlZCB3aXRoIHRoZSByYW5nZSB0aGUgYnVmZmVyIGNhbiBwcm92
aWRlIG9yIGlmIHRoZSBieXRlIG9mZnNldCBpcyBub3QgYWxpZ25lZAorICAgICAgICAvLyB0byB0
aGUgc2l6ZSBvZiB0aGUgZWxlbWVudCB0eXBlLgorICAgICAgICByZXR1cm4gIXZhbHVlLT5Jc0Vt
cHR5KCk7CisgICAgfQorCiAgICAgYm9vbCByZWFkUmVnRXhwKHY4OjpIYW5kbGU8djg6OlZhbHVl
PiogdmFsdWUpCiAgICAgewogICAgICAgICB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gcGF0dGVybjsK
QEAgLTEwNTMsMTYgKzE2MDMsMzggQEAgcHVibGljOgogICAgICAgICAgICAgaWYgKCFkb0Rlc2Vy
aWFsaXplKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHY4OjpOdWxsKCk7CiAgICAgICAgIH0K
LSAgICAgICAgaWYgKHN0YWNrRGVwdGgoKSAhPSAxKQorICAgICAgICBpZiAoc3RhY2tEZXB0aCgp
ICE9IDEgfHwgbV9vYmpyZWZTdGFjay5zaXplKCkpCiAgICAgICAgICAgICByZXR1cm4gdjg6Ok51
bGwoKTsKLSAgICAgICAgcmV0dXJuIHNjb3BlLkNsb3NlKGVsZW1lbnQoMCkpOworICAgICAgICB2
ODo6SGFuZGxlPHY4OjpWYWx1ZT4gcmVzdWx0ID0gc2NvcGUuQ2xvc2UoZWxlbWVudCgwKSk7Cisg
ICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQogCi0gICAgdmlydHVhbCBib29sIGNyZWF0ZUFy
cmF5KHVpbnQzMl90IGxlbmd0aCwgdjg6OkhhbmRsZTx2ODo6VmFsdWU+KiB2YWx1ZSkKKyAgICB2
aXJ0dWFsIGJvb2wgcHJlcGFyZUVtcHR5QXJyYXkodWludDMyX3QgbGVuZ3RoKQorICAgIHsKKyAg
ICAgICAgdjg6OkxvY2FsPHY4OjpBcnJheT4gYXJyYXkgPSB2ODo6QXJyYXk6Ok5ldyhsZW5ndGgp
OworICAgICAgICBpZiAoYXJyYXkuSXNFbXB0eSgpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgICAgICBvcGVuTmV3Q29tcG9zaXRlKGFycmF5KTsKKyAgICAgICAgcmV0dXJuIHRydWU7
CisgICAgfQorCisgICAgdmlydHVhbCBib29sIGNvbnN1bWVUb3BPZlN0YWNrKHY4OjpIYW5kbGU8
djg6OlZhbHVlPiYgb2JqKQorICAgIHsKKyAgICAgICAgaWYgKHN0YWNrRGVwdGgoKSA8IDEpCisg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIG9iaiA9IGVsZW1lbnQoc3RhY2tEZXB0
aCgpIC0gMSk7CisgICAgICAgIHBvcCgxKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQor
CisgICAgdmlydHVhbCBib29sIGZpbmlzaEFycmF5KHVpbnQzMl90IGxlbmd0aCwgdjg6OkhhbmRs
ZTx2ODo6VmFsdWU+KiB2YWx1ZSkKICAgICB7CiAgICAgICAgIGlmIChsZW5ndGggPiBzdGFja0Rl
cHRoKCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIHY4OjpMb2NhbDx2ODo6
QXJyYXk+IGFycmF5ID0gdjg6OkFycmF5OjpOZXcobGVuZ3RoKTsKKyAgICAgICAgdjg6OkxvY2Fs
PHY4OjpWYWx1ZT4gY29tcG9zaXRlOworICAgICAgICBpZiAoIWNsb3NlQ29tcG9zaXRlKGNvbXBv
c2l0ZSkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHY4OjpMb2NhbDx2ODo6
QXJyYXk+IGFycmF5ID0gY29tcG9zaXRlLkFzPHY4OjpBcnJheT4oKTsKICAgICAgICAgaWYgKGFy
cmF5LklzRW1wdHkoKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgY29uc3Qg
aW50IGRlcHRoID0gc3RhY2tEZXB0aCgpIC0gbGVuZ3RoOwpAQCAtMTA3MywyMiArMTY0NSw1NiBA
QCBwdWJsaWM6CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAotICAgIHZpcnR1YWwgYm9v
bCBjcmVhdGVPYmplY3QodWludDMyX3QgbnVtUHJvcGVydGllcywgdjg6OkhhbmRsZTx2ODo6VmFs
dWU+KiB2YWx1ZSkKKyAgICB2aXJ0dWFsIGJvb2wgcHJlcGFyZUVtcHR5T2JqZWN0KCkKICAgICB7
CiAgICAgICAgIHY4OjpMb2NhbDx2ODo6T2JqZWN0PiBvYmplY3QgPSB2ODo6T2JqZWN0OjpOZXco
KTsKICAgICAgICAgaWYgKG9iamVjdC5Jc0VtcHR5KCkpCiAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgICAgIG9wZW5OZXdDb21wb3NpdGUob2JqZWN0KTsKKyAgICAgICAgcmV0dXJuIHRy
dWU7CisgICAgfQorCisgICAgdmlydHVhbCBib29sIGZpbmlzaE9iamVjdCh1aW50MzJfdCBudW1Q
cm9wZXJ0aWVzLCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4qIHZhbHVlKQorICAgIHsKKyAgICAgICAg
djg6OkxvY2FsPHY4OjpWYWx1ZT4gY29tcG9zaXRlOworICAgICAgICBpZiAoIWNsb3NlQ29tcG9z
aXRlKGNvbXBvc2l0ZSkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHY4OjpM
b2NhbDx2ODo6T2JqZWN0PiBvYmplY3QgPSBjb21wb3NpdGUuQXM8djg6Ok9iamVjdD4oKTsKKyAg
ICAgICAgaWYgKG9iamVjdC5Jc0VtcHR5KCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgICAgIHJldHVybiBpbml0aWFsaXplT2JqZWN0KG9iamVjdCwgbnVtUHJvcGVydGllcywgdmFs
dWUpOwogICAgIH0KIAotICAgIHZpcnR1YWwgYm9vbCBjcmVhdGVTcGFyc2VBcnJheSh1aW50MzJf
dCBudW1Qcm9wZXJ0aWVzLCB1aW50MzJfdCBsZW5ndGgsIHY4OjpIYW5kbGU8djg6OlZhbHVlPiog
dmFsdWUpCisgICAgdmlydHVhbCBib29sIGZpbmlzaFNwYXJzZUFycmF5KHVpbnQzMl90IG51bVBy
b3BlcnRpZXMsIHVpbnQzMl90IGxlbmd0aCwgdjg6OkhhbmRsZTx2ODo6VmFsdWU+KiB2YWx1ZSkK
ICAgICB7Ci0gICAgICAgIHY4OjpMb2NhbDx2ODo6QXJyYXk+IGFycmF5ID0gdjg6OkFycmF5OjpO
ZXcobGVuZ3RoKTsKKyAgICAgICAgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gY29tcG9zaXRlOworICAg
ICAgICBpZiAoIWNsb3NlQ29tcG9zaXRlKGNvbXBvc2l0ZSkpCisgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgICAgIHY4OjpMb2NhbDx2ODo6QXJyYXk+IGFycmF5ID0gY29tcG9zaXRlLkFz
PHY4OjpBcnJheT4oKTsKICAgICAgICAgaWYgKGFycmF5LklzRW1wdHkoKSkKICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICAgICAgcmV0dXJuIGluaXRpYWxpemVPYmplY3QoYXJyYXksIG51
bVByb3BlcnRpZXMsIHZhbHVlKTsKICAgICB9CiAKKyAgICB2aXJ0dWFsIGNvbnN0IHY4OjpIYW5k
bGU8djg6OlZhbHVlPiYgcHVzaE9iamVjdFJlZmVyZW5jZShjb25zdCB2ODo6SGFuZGxlPHY4OjpW
YWx1ZT4mIG9iaikKKyAgICB7CisgICAgICAgIG1fb2JqZWN0UG9vbC5hcHBlbmQob2JqKTsKKyAg
ICAgICAgcmV0dXJuIG9iajsKKyAgICB9CisKKyAgICB2aXJ0dWFsIGJvb2wgZ2V0T2JqZWN0UmVm
ZXJlbmNlKHVpbnQzMl90IHJlZiwgdjg6OkhhbmRsZTx2ODo6VmFsdWU+KiBvYmopCisgICAgewor
ICAgICAgICBpZiAocmVmID49IG1fb2JqZWN0UG9vbC5zaXplKCkpCisgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgICAgICpvYmogPSBtX29iamVjdFBvb2xbcmVmXTsKKyAgICAgICAgcmV0
dXJuIG9iajsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHVpbnQzMl90IG9iamVjdFJlZmVyZW5jZUNv
dW50KCkKKyAgICB7CisgICAgICAgIHJldHVybiBtX29iamVjdFBvb2wuc2l6ZSgpOworICAgIH0K
KwogcHJpdmF0ZToKICAgICBib29sIGluaXRpYWxpemVPYmplY3Qodjg6OkhhbmRsZTx2ODo6T2Jq
ZWN0PiBvYmplY3QsIHVpbnQzMl90IG51bVByb3BlcnRpZXMsIHY4OjpIYW5kbGU8djg6OlZhbHVl
PiogdmFsdWUpCiAgICAgewpAQCAtMTEzMSw4ICsxNzM3LDMwIEBAIHByaXZhdGU6CiAgICAgICAg
IHJldHVybiBtX3N0YWNrW2luZGV4XTsKICAgICB9CiAKKyAgICB1aW50MzJfdCBvcGVuTmV3Q29t
cG9zaXRlKGNvbnN0IHY4OjpMb2NhbDx2ODo6VmFsdWU+JiBvYmopCisgICAgeworICAgICAgICB1
aW50MzJfdCBuZXdpZCA9IG1fb2JqZWN0UG9vbC5zaXplKCk7CisgICAgICAgIG1fb2JqcmVmU3Rh
Y2suYXBwZW5kKG5ld2lkKTsKKyAgICAgICAgbV9vYmplY3RQb29sLmFwcGVuZChvYmopOworICAg
ICAgICByZXR1cm4gbmV3aWQ7CisgICAgfQorCisgICAgYm9vbCBjbG9zZUNvbXBvc2l0ZSh2ODo6
SGFuZGxlPHY4OjpWYWx1ZT4mIG9iaikKKyAgICB7CisgICAgICAgIGlmICghbV9vYmpyZWZTdGFj
ay5zaXplKCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHVpbnQzMl90IG9s
ZGlkID0gbV9vYmpyZWZTdGFja1ttX29ianJlZlN0YWNrLnNpemUoKSAtIDFdOworICAgICAgICBt
X29ianJlZlN0YWNrLnNocmluayhtX29ianJlZlN0YWNrLnNpemUoKSAtIDEpOworICAgICAgICBp
ZiAob2xkaWQgPj0gbV9vYmplY3RQb29sLnNpemUoKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICAgICAgb2JqID0gbV9vYmplY3RQb29sW29sZGlkXTsKKyAgICAgICAgcmV0dXJuIHRy
dWU7CisgICAgfQorCiAgICAgUmVhZGVyJiBtX3JlYWRlcjsKICAgICBWZWN0b3I8djg6OkxvY2Fs
PHY4OjpWYWx1ZT4gPiBtX3N0YWNrOworICAgIFZlY3Rvcjx2ODo6SGFuZGxlPHY4OjpWYWx1ZT4g
PiBtX29iamVjdFBvb2w7CisgICAgVmVjdG9yPHVpbnQzMl90PiBtX29ianJlZlN0YWNrOwogfTsK
IAogfSAvLyBuYW1lc3BhY2UKQEAgLTEyMzYsNyArMTg2NCwxMiBAQCBTZXJpYWxpemVkU2NyaXB0
VmFsdWU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSh2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdmFsdWUs
IGJvb2wmCiAgICAgICAgIC8vIElmIHRoZXJlIHdhcyBhbiBpbnB1dCBlcnJvciwgdGhyb3cgYSBu
ZXcgZXhjZXB0aW9uIG91dHNpZGUKICAgICAgICAgLy8gb2YgdGhlIFRyeUNhdGNoIHNjb3BlLgog
ICAgICAgICBkaWRUaHJvdyA9IHRydWU7Ci0gICAgICAgIHRocm93RXJyb3IoTk9UX1NVUFBPUlRF
RF9FUlIpOworICAgICAgICB0aHJvd0Vycm9yKERBVEFfQ0xPTkVfRVJSKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKyAgICBpZiAoc3RhdHVzID09IFNlcmlhbGl6ZXI6OkRhdGFDbG9uZUVycm9y
KSB7CisgICAgICAgIGRpZFRocm93ID0gdHJ1ZTsKKyAgICAgICAgdGhyb3dFcnJvcihEQVRBX0NM
T05FX0VSUik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgaWYgKHN0YXR1cyA9PSBTZXJp
YWxpemVyOjpKU0ZhaWx1cmUpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L2N1c3RvbS9WOERhdGFWaWV3Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L2N1c3RvbS9WOERhdGFWaWV3Q3VzdG9tLmNwcAppbmRleCBmMjYwY2ZmLi4xMGIyZDI4IDEw
MDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhEYXRhVmlld0N1
c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RGF0YVZp
ZXdDdXN0b20uY3BwCkBAIC00MSw2ICs0MSwxMyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhE
YXRhVmlldzo6Y29uc3RydWN0b3JDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQog
ICAgIGlmICghYXJncy5Jc0NvbnN0cnVjdENhbGwoKSkKICAgICAgICAgcmV0dXJuIHRocm93RXJy
b3IoIkRPTSBvYmplY3QgY29uc3RydWN0b3IgY2Fubm90IGJlIGNhbGxlZCBhcyBhIGZ1bmN0aW9u
IiwgVjhQcm94eTo6U3ludGF4RXJyb3IpOwogCisgICAgaWYgKCFhcmdzLkxlbmd0aCgpKSB7Cisg
ICAgICAgIC8vIHNlZSBjb25zdHJ1Y3RXZWJHTEFycmF5IC0tIHdlIGRvbid0IHNlZW0gdG8gYmUg
YWJsZSB0byBkaXN0aW5naXNoIGJldHdlZW4KKyAgICAgICAgLy8gJ25ldyBEYXRhVmlldygpJyBh
bmQgdGhlIGNhbGwgdXNlZCB0byBjb25zdHJ1Y3QgdGhlIGNhY2hlZCBEYXRhVmlldyBvYmplY3Qu
CisgICAgICAgIFJlZlB0cjxEYXRhVmlldz4gZGF0YVZpZXcgPSBEYXRhVmlldzo6Y3JlYXRlKDAp
OworICAgICAgICBWOERPTVdyYXBwZXI6OnNldERPTVdyYXBwZXIoYXJncy5Ib2xkZXIoKSwgJmlu
Zm8sIGRhdGFWaWV3LmdldCgpKTsKKyAgICAgICAgcmV0dXJuIHRvVjgoZGF0YVZpZXcucmVsZWFz
ZSgpLCBhcmdzLkhvbGRlcigpKTsKKyAgICB9CiAgICAgaWYgKGFyZ3NbMF0tPklzTnVsbCgpIHx8
ICFWOEFycmF5QnVmZmVyOjpIYXNJbnN0YW5jZShhcmdzWzBdKSkKICAgICAgICAgcmV0dXJuIFY4
UHJveHk6OnRocm93VHlwZUVycm9yKCk7CiAgICAgcmV0dXJuIGNvbnN0cnVjdFdlYkdMQXJyYXlX
aXRoQXJyYXlCdWZmZXJBcmd1bWVudDxEYXRhVmlldywgY2hhcj4oYXJncywgJmluZm8sIHY4Ojpr
RXh0ZXJuYWxCeXRlQXJyYXksIGZhbHNlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9ET01Db3JlRXhjZXB0aW9uLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01Db3JlRXhjZXB0
aW9uLmlkbAppbmRleCA5NDU3MTJkLi42YzkxY2E2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRE9NQ29yZUV4Y2VwdGlvbi5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTUNv
cmVFeGNlcHRpb24uaWRsCkBAIC03NCw2ICs3NCw5IEBAIG1vZHVsZSBjb3JlIHsKICAgICAgICAg
Y29uc3QgdW5zaWduZWQgc2hvcnQgICAgICBBQk9SVF9FUlIgICAgICAgICAgICAgICAgICAgICAg
PSAyMDsKICAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgICAgICBVUkxfTUlTTUFUQ0hfRVJS
ICAgICAgICAgICAgICAgPSAyMTsKICAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgICAgICBR
VU9UQV9FWENFRURFRF9FUlIgICAgICAgICAgICAgPSAyMjsKKyAgICAgICAgY29uc3QgdW5zaWdu
ZWQgc2hvcnQgICAgICBUSU1FT1VUX0VSUiAgICAgICAgICAgICAgICAgICAgPSAyMzsKKyAgICAg
ICAgY29uc3QgdW5zaWduZWQgc2hvcnQgICAgICBJTlZBTElEX05PREVfVFlQRV9FUlIgICAgICAg
ICAgPSAyNDsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgICAgICBEQVRBX0NMT05FX0VS
UiAgICAgICAgICAgICAgICAgPSAyNTsKICAgICB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRXhjZXB0aW9uQ29kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXhjZXB0
aW9uQ29kZS5jcHAKaW5kZXggY2FlYTU1OS4uOGI4MmY1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0V4Y2VwdGlvbkNvZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FeGNl
cHRpb25Db2RlLmNwcApAQCAtNzIsNyArNzIsMTAgQEAgc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0
IGV4Y2VwdGlvbk5hbWVzW10gPSB7CiAgICAgIk5FVFdPUktfRVJSIiwKICAgICAiQUJPUlRfRVJS
IiwKICAgICAiVVJMX01JU01BVENIX0VSUiIsCi0gICAgIlFVT1RBX0VYQ0VFREVEX0VSUiIKKyAg
ICAiUVVPVEFfRVhDRUVERURfRVJSIiwKKyAgICAiVElNRU9VVF9FUlIiLAorICAgICJJTlZBTElE
X05PREVfVFlQRV9FUlIiLAorICAgICJEQVRBX0NMT05FX0VSUiIKIH07CiAKIHN0YXRpYyBjb25z
dCBjaGFyKiBjb25zdCBleGNlcHRpb25EZXNjcmlwdGlvbnNbXSA9IHsKQEAgLTk4LDcgKzEwMSwx
MCBAQCBzdGF0aWMgY29uc3QgY2hhciogY29uc3QgZXhjZXB0aW9uRGVzY3JpcHRpb25zW10gPSB7
CiAgICAgIkEgbmV0d29yayBlcnJvciBvY2N1cmVkLiIsCiAgICAgIlRoZSB1c2VyIGFib3J0ZWQg
YSByZXF1ZXN0LiIsCiAgICAgIkEgd29ya2VyIGdsb2JhbCBzY29wZSByZXByZXNlbnRlZCBhbiBh
YnNvbHV0ZSBVUkwgdGhhdCBpcyBub3QgZXF1YWwgdG8gdGhlIHJlc3VsdGluZyBhYnNvbHV0ZSBV
UkwuIiwKLSAgICAiQW4gYXR0ZW1wdCB3YXMgbWFkZSB0byBhZGQgc29tZXRoaW5nIHRvIHN0b3Jh
Z2UgdGhhdCBleGNlZWRlZCB0aGUgcXVvdGEuIgorICAgICJBbiBhdHRlbXB0IHdhcyBtYWRlIHRv
IGFkZCBzb21ldGhpbmcgdG8gc3RvcmFnZSB0aGF0IGV4Y2VlZGVkIHRoZSBxdW90YS4iLAorICAg
ICJBIHRpbWVvdXQgb2NjdXJyZWQuIiwKKyAgICAiVGhlIHN1cHBsaWVkIG5vZGUgaXMgaW52YWxp
ZCBvciBoYXMgYW4gaW52YWxpZCBhbmNlc3RvciBmb3IgdGhpcyBvcGVyYXRpb24uIiwKKyAgICAi
QW4gb2JqZWN0IGNvdWxkIG5vdCBiZSBjbG9uZWQuIgogfTsKIAogc3RhdGljIGNvbnN0IGNoYXIq
IGNvbnN0IHJhbmdlRXhjZXB0aW9uTmFtZXNbXSA9IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9FeGNlcHRpb25Db2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXhjZXB0aW9uQ29k
ZS5oCmluZGV4IDljZWU2NmIuLmNlYTZmNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FeGNlcHRpb25Db2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V4Y2VwdGlvbkNvZGUu
aApAQCAtNTcsMTQgKzU3LDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgTkVUV09S
S19FUlIgPSAxOSwKICAgICAgICAgQUJPUlRfRVJSID0gMjAsCiAgICAgICAgIFVSTF9NSVNNQVRD
SF9FUlIgPSAyMSwKLSAgICAgICAgUVVPVEFfRVhDRUVERURfRVJSID0gMjIKLQotICAgICAgICAv
LyBJbnRyb2R1Y2VkIGluIEZpbGUgQVBJOgotICAgICAgICAvLyBodHRwOi8vd3d3LnczLm9yZy9U
Ui9maWxlLXVwbG9hZC8jZGZuLWZpbGVlcnJvcgotI2lmIEVOQUJMRShCTE9CKSB8fCBFTkFCTEUo
RklMRV9TWVNURU0pCi0gICAgICAgICwgTk9UX1JFQURBQkxFX0VSUiA9IDI0Ci0gICAgICAgICwg
RU5DT0RJTkdfRVJSID0gMjYKLSNlbmRpZgorICAgICAgICBRVU9UQV9FWENFRURFRF9FUlIgPSAy
MiwKKyAgICAgICAgVElNRU9VVF9FUlIgPSAyMywKKyAgICAgICAgSU5WQUxJRF9OT0RFX1RZUEVf
RVJSID0gMjQsCisgICAgICAgIERBVEFfQ0xPTkVfRVJSID0gMjUKICAgICB9OwogCiAgICAgZW51
bSBFeGNlcHRpb25UeXBlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L0RhdGFWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0RhdGFWaWV3LmNwcApp
bmRleCBlMDA0NDNkLi4zZGIwNmQ2IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9EYXRhVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvRGF0YVZp
ZXcuY3BwCkBAIC00MCw2ICs0MCwxNCBAQCB1bmlvbiBWYWx1ZSB7CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAorUGFzc1JlZlB0cjxEYXRhVmlldz4gRGF0YVZpZXc6OmNyZWF0ZSh1bnNpZ25lZCBs
ZW5ndGgpCit7CisgICAgUmVmUHRyPEFycmF5QnVmZmVyPiBidWZmZXIgPSBBcnJheUJ1ZmZlcjo6
Y3JlYXRlKGxlbmd0aCwgc2l6ZW9mKHVpbnQ4X3QpKTsKKyAgICBpZiAoIWJ1ZmZlci5nZXQoKSkK
KyAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIGNyZWF0ZShidWZmZXIsIDAsIGxlbmd0aCk7
Cit9CisKIFBhc3NSZWZQdHI8RGF0YVZpZXc+IERhdGFWaWV3OjpjcmVhdGUoUGFzc1JlZlB0cjxB
cnJheUJ1ZmZlcj4gYnVmZmVyLCB1bnNpZ25lZCBieXRlT2Zmc2V0LCB1bnNpZ25lZCBieXRlTGVu
Z3RoKQogewogICAgIGlmIChieXRlT2Zmc2V0ID4gYnVmZmVyLT5ieXRlTGVuZ3RoKCkpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9EYXRhVmlldy5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvRGF0YVZpZXcuaAppbmRleCBhOGFiYTVjLi41ZTgwZjhjIDEwMDc1
NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9EYXRhVmlldy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL0RhdGFWaWV3LmgKQEAgLTM0LDYgKzM0LDcgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBjbGFzcyBEYXRhVmlldyA6IHB1YmxpYyBBcnJheUJ1ZmZlclZpZXcg
ewogcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPERhdGFWaWV3PiBjcmVhdGUodW5zaWdu
ZWQgbGVuZ3RoKTsKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxEYXRhVmlldz4gY3JlYXRlKFBhc3NS
ZWZQdHI8QXJyYXlCdWZmZXI+LCB1bnNpZ25lZCBieXRlT2Zmc2V0LCB1bnNpZ25lZCBieXRlTGVu
Z3RoKTsKIAogICAgIHZpcnR1YWwgYm9vbCBpc0RhdGFWaWV3KCkgY29uc3QgeyByZXR1cm4gdHJ1
ZTsgfQo=
</data>
<flag name="commit-queue"
          id="93122"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>98813</attachid>
            <date>2011-06-27 16:36:49 -0700</date>
            <delta_ts>2011-06-29 16:54:22 -0700</delta_ts>
            <desc>Fix release build (local variable appeared only in an assert.)</desc>
            <filename>patchIII.patch</filename>
            <type>text/plain</type>
            <size>110618</size>
            <attacher name="Luke Zarko">lukezarko+bugzilla</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3OWJjOTI3Li5lNjRiYTk0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTEtMDYt
MjcgIEx1a2UgWmFya28gIDxsdWtlemFya29AZ21haWwuY29tPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBIVE1MNSBTdHJ1Y3R1cmVkIENsb25l
IGFsZ29yaXRobSAoaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQt
d29yay9tdWx0aXBhZ2UvdXJscy5odG1sI3NhZmUtcGFzc2luZy1vZi1zdHJ1Y3R1cmVkLWRhdGEp
IGhhcyBiZWVuIHVwZGF0ZWQgc2luY2UgdGhlIFY4IHZlcnNpb24gb2YgU2VyaWFsaXplZFNjcmlw
dFZhbHVlIHdhcyBmaXJzdCBpbXBsZW1lbnRlZC4gVGhpcyBwYXRjaCBhaW1zIHRvIGJyaW5nIHRo
aXMgaW1wbGVtZW50YXRpb24gdXAgdG8gZGF0ZS4gSXQ6CisKKyAgICAgICAgLSBJbnRyb2R1Y2Vz
IHRoZSBuZXcgSFRNTDUgRE9NIGVycm9yIGNvZGVzIGZvciBUSU1FT1VUX0VSUiwgSU5WQUxJRF9O
T0RFX1RZUEVfRVJSLCBEQVRBX0NMT05FX0VSUgorICAgICAgICAtIEhhbmRsZXMgY3ljbGljIHN0
cnVjdHVyZXMgYW5kIGVxdWFsaXR5IG9mIHJlZmVyZW5jZSBwcmVzZXJ2YXRpb24gZm9yIGNsb25l
ZCB2YWx1ZXMKKyAgICAgICAgLSBBbGxvd3MgRGF0YVZpZXdzIHRvIGJlIGNvbnN0cnVjdGVkIG9u
IHRoZSBuYXRpdmUgc2lkZSB1c2luZyB0aGUgZXhpc3Rpbmcgd3JhcHBlciB0ZWNobmlxdWVzCisg
ICAgICAgIC0gQW1lbmRzIHRlc3RzIGFuZCBpbnRyb2R1Y2VzIG5ldyBvbmVzIHRvIGNoZWNrIGZv
ciBjb3JyZWN0bmVzcyAodGhlIGJ1bGsgb2YgdGhlIHBhdGNoKQorCisgICAgICAgIFRoZSBwYXRj
aCBwZXJtaXRzIHRoZSBjbG9uaW5nIG9mIEphdmFTY3JpcHQgdHlwZWQgYXJyYXlzLiBUaGlzIGZ1
bmN0aW9uYWxpdHkgaXMgaW4gYWN0aXZlIHVzZSBhbHJlYWR5IGFuZCB3YXMgc3VwcG9ydGVkIChz
b21ld2hhdCBpbmVmZmljaWVudGx5KSBieSB0aGUgZXhpc3RpbmcgY29kZSB0aHJvdWdoIGFuIGFy
dGlmYWN0IG9mIGltcGxlbWVudGF0aW9uLgorCisgICAgICAgIEkgaGF2ZSBpbmNsdWRlZCB0d28g
aW1wbGVtZW50YXRpb25zIG9mIHRoZSAnbWVtb3J5JyBvYmplY3QgZnJvbSB0aGUgc3RhbmRhcmQu
IFRoZSBmaXJzdCAod2hpY2ggaXMgZW5hYmxlZCBieSBkZWZhdWx0KSBpcyBtb3JlIGVmZmljaWVu
dDsgdGhlIHNlY29uZCBpcyBsZXNzIGVmZmljaWVudCBidXQgc2hvdWxkIGJlIG1vcmUgcmVzaXN0
YW50IHRvIGNoYW5nZXMgaW4gVjgncyBpbXBsZW1lbnRhdGlvbiBvZiBoYW5kbGVzLgorCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MzQ4MQorCisgICAg
ICAgICogZmFzdC9jYW52YXMvd2ViZ2wvYXJyYXktbWVzc2FnZS1wYXNzaW5nLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogZmFzdC9jYW52YXMvd2ViZ2wvYXJyYXktbWVzc2FnZS1wYXNz
aW5nLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL1dpbmRvdy93aW5kb3ctcG9zdG1l
c3NhZ2UtY2xvbmUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZG9tL1dpbmRvdy93aW5k
b3ctcG9zdG1lc3NhZ2UtY2xvbmUuaHRtbDoKKyAgICAgICAgKiBmYXN0L2RvbS9XaW5kb3cvd2lu
ZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVt
L3Rlc3RfZXhwZWN0YXRpb25zLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC13azIvZmFzdC9k
b20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9xdC9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0b3JlLWJhc2ljcy1leHBlY3RlZC50
eHQ6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0c3RvcmUtYmFzaWNzLmh0bWw6
CisKIDIwMTEtMDYtMjcgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29t
PgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHI4OTgyMi4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2FycmF5LW1lc3NhZ2UtcGFzc2luZy1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9hcnJheS1tZXNzYWdlLXBh
c3NpbmctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUy
MDg1MGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9h
cnJheS1tZXNzYWdlLXBhc3NpbmctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNTk5IEBACitUZXN0
IHBhc3NpbmcgQXJyYXlCdWZmZXJzIGFuZCBBcnJheUJ1ZmZlclZpZXdzIGluIG1lc3NhZ2VzLgor
CitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKK1BBU1MgQXJyYXlCdWZmZXIwOiBjbGFzc2Vz
IGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBBcnJheUJ1ZmZlcjA6IGJ1ZmZlciBsZW5n
dGhzIGFyZSAwCitQQVNTIEFycmF5QnVmZmVyMDogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRl
bnRzCitQQVNTIEFycmF5QnVmZmVyMTogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0K
K1BBU1MgQXJyYXlCdWZmZXIxOiBidWZmZXIgbGVuZ3RocyBhcmUgMQorUEFTUyBBcnJheUJ1ZmZl
cjE6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBBcnJheUJ1ZmZlcjEyODog
Y2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgQXJyYXlCdWZmZXIxMjg6IGJ1
ZmZlciBsZW5ndGhzIGFyZSAxMjgKK1BBU1MgQXJyYXlCdWZmZXIxMjg6IGJ1ZmZlcnMgaGF2ZSB0
aGUgc2FtZSBjb250ZW50cworUEFTUyBEYXRhVmlldzA6IGNsYXNzZXMgYXJlIFtvYmplY3QgRGF0
YVZpZXddCitQQVNTIERhdGFWaWV3MDogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0K
K1BBU1MgRGF0YVZpZXcwOiBidWZmZXIgbGVuZ3RocyBhcmUgMAorUEFTUyBEYXRhVmlldzA6IGJ1
ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBEYXRhVmlldzA6IG9mZnNldCBpcyAw
CitQQVNTIERhdGFWaWV3MDogbGVuZ3RoIGlzIDAKK1BBU1MgRGF0YVZpZXcxOiBjbGFzc2VzIGFy
ZSBbb2JqZWN0IERhdGFWaWV3XQorUEFTUyBEYXRhVmlldzE6IGNsYXNzZXMgYXJlIFtvYmplY3Qg
QXJyYXlCdWZmZXJdCitQQVNTIERhdGFWaWV3MTogYnVmZmVyIGxlbmd0aHMgYXJlIDEKK1BBU1Mg
RGF0YVZpZXcxOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgRGF0YVZpZXcx
OiBvZmZzZXQgaXMgMAorUEFTUyBEYXRhVmlldzE6IGxlbmd0aCBpcyAxCitQQVNTIERhdGFWaWV3
MTI4OiBjbGFzc2VzIGFyZSBbb2JqZWN0IERhdGFWaWV3XQorUEFTUyBEYXRhVmlldzEyODogY2xh
c3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgRGF0YVZpZXcxMjg6IGJ1ZmZlciBs
ZW5ndGhzIGFyZSAxMjgKK1BBU1MgRGF0YVZpZXcxMjg6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBj
b250ZW50cworUEFTUyBEYXRhVmlldzEyODogb2Zmc2V0IGlzIDAKK1BBU1MgRGF0YVZpZXcxMjg6
IGxlbmd0aCBpcyAxMjgKK1BBU1MgRGF0YVZpZXcxX29mc19lbmQ6IGNsYXNzZXMgYXJlIFtvYmpl
Y3QgRGF0YVZpZXddCitQQVNTIERhdGFWaWV3MV9vZnNfZW5kOiBjbGFzc2VzIGFyZSBbb2JqZWN0
IEFycmF5QnVmZmVyXQorUEFTUyBEYXRhVmlldzFfb2ZzX2VuZDogYnVmZmVyIGxlbmd0aHMgYXJl
IDEKK1BBU1MgRGF0YVZpZXcxX29mc19lbmQ6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50
cworUEFTUyBEYXRhVmlldzFfb2ZzX2VuZDogb2Zmc2V0IGlzIDEKK1BBU1MgRGF0YVZpZXcxX29m
c19lbmQ6IGxlbmd0aCBpcyAwCitQQVNTIERhdGFWaWV3MTI4X29mc19lbmQ6IGNsYXNzZXMgYXJl
IFtvYmplY3QgRGF0YVZpZXddCitQQVNTIERhdGFWaWV3MTI4X29mc19lbmQ6IGNsYXNzZXMgYXJl
IFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIERhdGFWaWV3MTI4X29mc19lbmQ6IGJ1ZmZlciBs
ZW5ndGhzIGFyZSAxMjgKK1BBU1MgRGF0YVZpZXcxMjhfb2ZzX2VuZDogYnVmZmVycyBoYXZlIHRo
ZSBzYW1lIGNvbnRlbnRzCitQQVNTIERhdGFWaWV3MTI4X29mc19lbmQ6IG9mZnNldCBpcyAxMjgK
K1BBU1MgRGF0YVZpZXcxMjhfb2ZzX2VuZDogbGVuZ3RoIGlzIDAKK1BBU1MgRGF0YVZpZXcxMjhf
b2ZzX3NsaWNlMDogY2xhc3NlcyBhcmUgW29iamVjdCBEYXRhVmlld10KK1BBU1MgRGF0YVZpZXcx
Mjhfb2ZzX3NsaWNlMDogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgRGF0
YVZpZXcxMjhfb2ZzX3NsaWNlMDogYnVmZmVyIGxlbmd0aHMgYXJlIDEyOAorUEFTUyBEYXRhVmll
dzEyOF9vZnNfc2xpY2UwOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgRGF0
YVZpZXcxMjhfb2ZzX3NsaWNlMDogb2Zmc2V0IGlzIDY0CitQQVNTIERhdGFWaWV3MTI4X29mc19z
bGljZTA6IGxlbmd0aCBpcyAwCitQQVNTIERhdGFWaWV3MTI4X29mc19zbGljZTE6IGNsYXNzZXMg
YXJlIFtvYmplY3QgRGF0YVZpZXddCitQQVNTIERhdGFWaWV3MTI4X29mc19zbGljZTE6IGNsYXNz
ZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIERhdGFWaWV3MTI4X29mc19zbGljZTE6
IGJ1ZmZlciBsZW5ndGhzIGFyZSAxMjgKK1BBU1MgRGF0YVZpZXcxMjhfb2ZzX3NsaWNlMTogYnVm
ZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIERhdGFWaWV3MTI4X29mc19zbGljZTE6
IG9mZnNldCBpcyA2NAorUEFTUyBEYXRhVmlldzEyOF9vZnNfc2xpY2UxOiBsZW5ndGggaXMgMQor
UEFTUyBEYXRhVmlldzEyOF9vZnNfc2xpY2UxNjogY2xhc3NlcyBhcmUgW29iamVjdCBEYXRhVmll
d10KK1BBU1MgRGF0YVZpZXcxMjhfb2ZzX3NsaWNlMTY6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJy
YXlCdWZmZXJdCitQQVNTIERhdGFWaWV3MTI4X29mc19zbGljZTE2OiBidWZmZXIgbGVuZ3RocyBh
cmUgMTI4CitQQVNTIERhdGFWaWV3MTI4X29mc19zbGljZTE2OiBidWZmZXJzIGhhdmUgdGhlIHNh
bWUgY29udGVudHMKK1BBU1MgRGF0YVZpZXcxMjhfb2ZzX3NsaWNlMTY6IG9mZnNldCBpcyA2NAor
UEFTUyBEYXRhVmlldzEyOF9vZnNfc2xpY2UxNjogbGVuZ3RoIGlzIDE2CitQQVNTIERhdGFWaWV3
MTI4X29mc19zbGljZV91bmFsaWduZWQ6IGNsYXNzZXMgYXJlIFtvYmplY3QgRGF0YVZpZXddCitQ
QVNTIERhdGFWaWV3MTI4X29mc19zbGljZV91bmFsaWduZWQ6IGNsYXNzZXMgYXJlIFtvYmplY3Qg
QXJyYXlCdWZmZXJdCitQQVNTIERhdGFWaWV3MTI4X29mc19zbGljZV91bmFsaWduZWQ6IGJ1ZmZl
ciBsZW5ndGhzIGFyZSAxMjgKK1BBU1MgRGF0YVZpZXcxMjhfb2ZzX3NsaWNlX3VuYWxpZ25lZDog
YnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIERhdGFWaWV3MTI4X29mc19zbGlj
ZV91bmFsaWduZWQ6IG9mZnNldCBpcyA2MworUEFTUyBEYXRhVmlldzEyOF9vZnNfc2xpY2VfdW5h
bGlnbmVkOiBsZW5ndGggaXMgMTUKK1BBU1MgSW50MzJfMDogY2xhc3NlcyBhcmUgW29iamVjdCBJ
bnQzMkFycmF5XQorUEFTUyBJbnQzMl8wOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVy
XQorUEFTUyBJbnQzMl8wOiBidWZmZXIgbGVuZ3RocyBhcmUgMAorUEFTUyBJbnQzMl8wOiBidWZm
ZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgSW50MzJfMDogb2Zmc2V0IGlzIDAKK1BB
U1MgSW50MzJfMDogbGVuZ3RoIGlzIDAKK1BBU1MgVWludDMyXzA6IGNsYXNzZXMgYXJlIFtvYmpl
Y3QgVWludDMyQXJyYXldCitQQVNTIFVpbnQzMl8wOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5
QnVmZmVyXQorUEFTUyBVaW50MzJfMDogYnVmZmVyIGxlbmd0aHMgYXJlIDAKK1BBU1MgVWludDMy
XzA6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBVaW50MzJfMDogb2Zmc2V0
IGlzIDAKK1BBU1MgVWludDMyXzA6IGxlbmd0aCBpcyAwCitQQVNTIEludDhfMDogY2xhc3NlcyBh
cmUgW29iamVjdCBJbnQ4QXJyYXldCitQQVNTIEludDhfMDogY2xhc3NlcyBhcmUgW29iamVjdCBB
cnJheUJ1ZmZlcl0KK1BBU1MgSW50OF8wOiBidWZmZXIgbGVuZ3RocyBhcmUgMAorUEFTUyBJbnQ4
XzA6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBJbnQ4XzA6IG9mZnNldCBp
cyAwCitQQVNTIEludDhfMDogbGVuZ3RoIGlzIDAKK1BBU1MgVWludDhfMDogY2xhc3NlcyBhcmUg
W29iamVjdCBVaW50OEFycmF5XQorUEFTUyBVaW50OF8wOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFy
cmF5QnVmZmVyXQorUEFTUyBVaW50OF8wOiBidWZmZXIgbGVuZ3RocyBhcmUgMAorUEFTUyBVaW50
OF8wOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgVWludDhfMDogb2Zmc2V0
IGlzIDAKK1BBU1MgVWludDhfMDogbGVuZ3RoIGlzIDAKK1BBU1MgSW50MTZfMDogY2xhc3NlcyBh
cmUgW29iamVjdCBJbnQxNkFycmF5XQorUEFTUyBJbnQxNl8wOiBjbGFzc2VzIGFyZSBbb2JqZWN0
IEFycmF5QnVmZmVyXQorUEFTUyBJbnQxNl8wOiBidWZmZXIgbGVuZ3RocyBhcmUgMAorUEFTUyBJ
bnQxNl8wOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgSW50MTZfMDogb2Zm
c2V0IGlzIDAKK1BBU1MgSW50MTZfMDogbGVuZ3RoIGlzIDAKK1BBU1MgVWludDE2XzA6IGNsYXNz
ZXMgYXJlIFtvYmplY3QgVWludDE2QXJyYXldCitQQVNTIFVpbnQxNl8wOiBjbGFzc2VzIGFyZSBb
b2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBVaW50MTZfMDogYnVmZmVyIGxlbmd0aHMgYXJlIDAK
K1BBU1MgVWludDE2XzA6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBVaW50
MTZfMDogb2Zmc2V0IGlzIDAKK1BBU1MgVWludDE2XzA6IGxlbmd0aCBpcyAwCitQQVNTIEZsb2F0
MzJfMDogY2xhc3NlcyBhcmUgW29iamVjdCBGbG9hdDMyQXJyYXldCitQQVNTIEZsb2F0MzJfMDog
Y2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgRmxvYXQzMl8wOiBidWZmZXIg
bGVuZ3RocyBhcmUgMAorUEFTUyBGbG9hdDMyXzA6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250
ZW50cworUEFTUyBGbG9hdDMyXzA6IG9mZnNldCBpcyAwCitQQVNTIEZsb2F0MzJfMDogbGVuZ3Ro
IGlzIDAKK1BBU1MgRmxvYXQ2NF8wOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEZsb2F0NjRBcnJheV0K
K1BBU1MgRmxvYXQ2NF8wOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBG
bG9hdDY0XzA6IGJ1ZmZlciBsZW5ndGhzIGFyZSAwCitQQVNTIEZsb2F0NjRfMDogYnVmZmVycyBo
YXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIEZsb2F0NjRfMDogb2Zmc2V0IGlzIDAKK1BBU1Mg
RmxvYXQ2NF8wOiBsZW5ndGggaXMgMAorUEFTUyBJbnQzMl8xOiBjbGFzc2VzIGFyZSBbb2JqZWN0
IEludDMyQXJyYXldCitQQVNTIEludDMyXzE6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZm
ZXJdCitQQVNTIEludDMyXzE6IGJ1ZmZlciBsZW5ndGhzIGFyZSA0CitQQVNTIEludDMyXzE6IGJ1
ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBJbnQzMl8xOiBvZmZzZXQgaXMgMAor
UEFTUyBJbnQzMl8xOiBsZW5ndGggaXMgNAorUEFTUyBVaW50MzJfMTogY2xhc3NlcyBhcmUgW29i
amVjdCBVaW50MzJBcnJheV0KK1BBU1MgVWludDMyXzE6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJy
YXlCdWZmZXJdCitQQVNTIFVpbnQzMl8xOiBidWZmZXIgbGVuZ3RocyBhcmUgNAorUEFTUyBVaW50
MzJfMTogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIFVpbnQzMl8xOiBvZmZz
ZXQgaXMgMAorUEFTUyBVaW50MzJfMTogbGVuZ3RoIGlzIDQKK1BBU1MgSW50OF8xOiBjbGFzc2Vz
IGFyZSBbb2JqZWN0IEludDhBcnJheV0KK1BBU1MgSW50OF8xOiBjbGFzc2VzIGFyZSBbb2JqZWN0
IEFycmF5QnVmZmVyXQorUEFTUyBJbnQ4XzE6IGJ1ZmZlciBsZW5ndGhzIGFyZSAxCitQQVNTIElu
dDhfMTogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIEludDhfMTogb2Zmc2V0
IGlzIDAKK1BBU1MgSW50OF8xOiBsZW5ndGggaXMgMQorUEFTUyBVaW50OF8xOiBjbGFzc2VzIGFy
ZSBbb2JqZWN0IFVpbnQ4QXJyYXldCitQQVNTIFVpbnQ4XzE6IGNsYXNzZXMgYXJlIFtvYmplY3Qg
QXJyYXlCdWZmZXJdCitQQVNTIFVpbnQ4XzE6IGJ1ZmZlciBsZW5ndGhzIGFyZSAxCitQQVNTIFVp
bnQ4XzE6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBVaW50OF8xOiBvZmZz
ZXQgaXMgMAorUEFTUyBVaW50OF8xOiBsZW5ndGggaXMgMQorUEFTUyBJbnQxNl8xOiBjbGFzc2Vz
IGFyZSBbb2JqZWN0IEludDE2QXJyYXldCitQQVNTIEludDE2XzE6IGNsYXNzZXMgYXJlIFtvYmpl
Y3QgQXJyYXlCdWZmZXJdCitQQVNTIEludDE2XzE6IGJ1ZmZlciBsZW5ndGhzIGFyZSAyCitQQVNT
IEludDE2XzE6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBJbnQxNl8xOiBv
ZmZzZXQgaXMgMAorUEFTUyBJbnQxNl8xOiBsZW5ndGggaXMgMgorUEFTUyBVaW50MTZfMTogY2xh
c3NlcyBhcmUgW29iamVjdCBVaW50MTZBcnJheV0KK1BBU1MgVWludDE2XzE6IGNsYXNzZXMgYXJl
IFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIFVpbnQxNl8xOiBidWZmZXIgbGVuZ3RocyBhcmUg
MgorUEFTUyBVaW50MTZfMTogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIFVp
bnQxNl8xOiBvZmZzZXQgaXMgMAorUEFTUyBVaW50MTZfMTogbGVuZ3RoIGlzIDIKK1BBU1MgRmxv
YXQzMl8xOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEZsb2F0MzJBcnJheV0KK1BBU1MgRmxvYXQzMl8x
OiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBGbG9hdDMyXzE6IGJ1ZmZl
ciBsZW5ndGhzIGFyZSA0CitQQVNTIEZsb2F0MzJfMTogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNv
bnRlbnRzCitQQVNTIEZsb2F0MzJfMTogb2Zmc2V0IGlzIDAKK1BBU1MgRmxvYXQzMl8xOiBsZW5n
dGggaXMgNAorUEFTUyBGbG9hdDY0XzE6IGNsYXNzZXMgYXJlIFtvYmplY3QgRmxvYXQ2NEFycmF5
XQorUEFTUyBGbG9hdDY0XzE6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNT
IEZsb2F0NjRfMTogYnVmZmVyIGxlbmd0aHMgYXJlIDgKK1BBU1MgRmxvYXQ2NF8xOiBidWZmZXJz
IGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgRmxvYXQ2NF8xOiBvZmZzZXQgaXMgMAorUEFT
UyBGbG9hdDY0XzE6IGxlbmd0aCBpcyA4CitQQVNTIEludDMyXzEyODogY2xhc3NlcyBhcmUgW29i
amVjdCBJbnQzMkFycmF5XQorUEFTUyBJbnQzMl8xMjg6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJy
YXlCdWZmZXJdCitQQVNTIEludDMyXzEyODogYnVmZmVyIGxlbmd0aHMgYXJlIDUxMgorUEFTUyBJ
bnQzMl8xMjg6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBJbnQzMl8xMjg6
IG9mZnNldCBpcyAwCitQQVNTIEludDMyXzEyODogbGVuZ3RoIGlzIDUxMgorUEFTUyBVaW50MzJf
MTI4OiBjbGFzc2VzIGFyZSBbb2JqZWN0IFVpbnQzMkFycmF5XQorUEFTUyBVaW50MzJfMTI4OiBj
bGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBVaW50MzJfMTI4OiBidWZmZXIg
bGVuZ3RocyBhcmUgNTEyCitQQVNTIFVpbnQzMl8xMjg6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBj
b250ZW50cworUEFTUyBVaW50MzJfMTI4OiBvZmZzZXQgaXMgMAorUEFTUyBVaW50MzJfMTI4OiBs
ZW5ndGggaXMgNTEyCitQQVNTIEludDhfMTI4OiBjbGFzc2VzIGFyZSBbb2JqZWN0IEludDhBcnJh
eV0KK1BBU1MgSW50OF8xMjg6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNT
IEludDhfMTI4OiBidWZmZXIgbGVuZ3RocyBhcmUgMTI4CitQQVNTIEludDhfMTI4OiBidWZmZXJz
IGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgSW50OF8xMjg6IG9mZnNldCBpcyAwCitQQVNT
IEludDhfMTI4OiBsZW5ndGggaXMgMTI4CitQQVNTIFVpbnQ4XzEyODogY2xhc3NlcyBhcmUgW29i
amVjdCBVaW50OEFycmF5XQorUEFTUyBVaW50OF8xMjg6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJy
YXlCdWZmZXJdCitQQVNTIFVpbnQ4XzEyODogYnVmZmVyIGxlbmd0aHMgYXJlIDEyOAorUEFTUyBV
aW50OF8xMjg6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBVaW50OF8xMjg6
IG9mZnNldCBpcyAwCitQQVNTIFVpbnQ4XzEyODogbGVuZ3RoIGlzIDEyOAorUEFTUyBJbnQxNl8x
Mjg6IGNsYXNzZXMgYXJlIFtvYmplY3QgSW50MTZBcnJheV0KK1BBU1MgSW50MTZfMTI4OiBjbGFz
c2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBJbnQxNl8xMjg6IGJ1ZmZlciBsZW5n
dGhzIGFyZSAyNTYKK1BBU1MgSW50MTZfMTI4OiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVu
dHMKK1BBU1MgSW50MTZfMTI4OiBvZmZzZXQgaXMgMAorUEFTUyBJbnQxNl8xMjg6IGxlbmd0aCBp
cyAyNTYKK1BBU1MgVWludDE2XzEyODogY2xhc3NlcyBhcmUgW29iamVjdCBVaW50MTZBcnJheV0K
K1BBU1MgVWludDE2XzEyODogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1Mg
VWludDE2XzEyODogYnVmZmVyIGxlbmd0aHMgYXJlIDI1NgorUEFTUyBVaW50MTZfMTI4OiBidWZm
ZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgVWludDE2XzEyODogb2Zmc2V0IGlzIDAK
K1BBU1MgVWludDE2XzEyODogbGVuZ3RoIGlzIDI1NgorUEFTUyBGbG9hdDMyXzEyODogY2xhc3Nl
cyBhcmUgW29iamVjdCBGbG9hdDMyQXJyYXldCitQQVNTIEZsb2F0MzJfMTI4OiBjbGFzc2VzIGFy
ZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBGbG9hdDMyXzEyODogYnVmZmVyIGxlbmd0aHMg
YXJlIDUxMgorUEFTUyBGbG9hdDMyXzEyODogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRz
CitQQVNTIEZsb2F0MzJfMTI4OiBvZmZzZXQgaXMgMAorUEFTUyBGbG9hdDMyXzEyODogbGVuZ3Ro
IGlzIDUxMgorUEFTUyBGbG9hdDY0XzEyODogY2xhc3NlcyBhcmUgW29iamVjdCBGbG9hdDY0QXJy
YXldCitQQVNTIEZsb2F0NjRfMTI4OiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQor
UEFTUyBGbG9hdDY0XzEyODogYnVmZmVyIGxlbmd0aHMgYXJlIDEwMjQKK1BBU1MgRmxvYXQ2NF8x
Mjg6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBGbG9hdDY0XzEyODogb2Zm
c2V0IGlzIDAKK1BBU1MgRmxvYXQ2NF8xMjg6IGxlbmd0aCBpcyAxMDI0CitQQVNTIEludDMyXzBi
OiBjbGFzc2VzIGFyZSBbb2JqZWN0IEludDMyQXJyYXldCitQQVNTIEludDMyXzBiOiBjbGFzc2Vz
IGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBJbnQzMl8wYjogYnVmZmVyIGxlbmd0aHMg
YXJlIDAKK1BBU1MgSW50MzJfMGI6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFT
UyBJbnQzMl8wYjogb2Zmc2V0IGlzIDAKK1BBU1MgSW50MzJfMGI6IGxlbmd0aCBpcyAwCitQQVNT
IFVpbnQzMl8wYjogY2xhc3NlcyBhcmUgW29iamVjdCBVaW50MzJBcnJheV0KK1BBU1MgVWludDMy
XzBiOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBVaW50MzJfMGI6IGJ1
ZmZlciBsZW5ndGhzIGFyZSAwCitQQVNTIFVpbnQzMl8wYjogYnVmZmVycyBoYXZlIHRoZSBzYW1l
IGNvbnRlbnRzCitQQVNTIFVpbnQzMl8wYjogb2Zmc2V0IGlzIDAKK1BBU1MgVWludDMyXzBiOiBs
ZW5ndGggaXMgMAorUEFTUyBJbnQ4XzBiOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEludDhBcnJheV0K
K1BBU1MgSW50OF8wYjogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgSW50
OF8wYjogYnVmZmVyIGxlbmd0aHMgYXJlIDAKK1BBU1MgSW50OF8wYjogYnVmZmVycyBoYXZlIHRo
ZSBzYW1lIGNvbnRlbnRzCitQQVNTIEludDhfMGI6IG9mZnNldCBpcyAwCitQQVNTIEludDhfMGI6
IGxlbmd0aCBpcyAwCitQQVNTIFVpbnQ4XzBiOiBjbGFzc2VzIGFyZSBbb2JqZWN0IFVpbnQ4QXJy
YXldCitQQVNTIFVpbnQ4XzBiOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFT
UyBVaW50OF8wYjogYnVmZmVyIGxlbmd0aHMgYXJlIDAKK1BBU1MgVWludDhfMGI6IGJ1ZmZlcnMg
aGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBVaW50OF8wYjogb2Zmc2V0IGlzIDAKK1BBU1Mg
VWludDhfMGI6IGxlbmd0aCBpcyAwCitQQVNTIEludDE2XzBiOiBjbGFzc2VzIGFyZSBbb2JqZWN0
IEludDE2QXJyYXldCitQQVNTIEludDE2XzBiOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVm
ZmVyXQorUEFTUyBJbnQxNl8wYjogYnVmZmVyIGxlbmd0aHMgYXJlIDAKK1BBU1MgSW50MTZfMGI6
IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBJbnQxNl8wYjogb2Zmc2V0IGlz
IDAKK1BBU1MgSW50MTZfMGI6IGxlbmd0aCBpcyAwCitQQVNTIFVpbnQxNl8wYjogY2xhc3NlcyBh
cmUgW29iamVjdCBVaW50MTZBcnJheV0KK1BBU1MgVWludDE2XzBiOiBjbGFzc2VzIGFyZSBbb2Jq
ZWN0IEFycmF5QnVmZmVyXQorUEFTUyBVaW50MTZfMGI6IGJ1ZmZlciBsZW5ndGhzIGFyZSAwCitQ
QVNTIFVpbnQxNl8wYjogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIFVpbnQx
Nl8wYjogb2Zmc2V0IGlzIDAKK1BBU1MgVWludDE2XzBiOiBsZW5ndGggaXMgMAorUEFTUyBGbG9h
dDMyXzBiOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEZsb2F0MzJBcnJheV0KK1BBU1MgRmxvYXQzMl8w
YjogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgRmxvYXQzMl8wYjogYnVm
ZmVyIGxlbmd0aHMgYXJlIDAKK1BBU1MgRmxvYXQzMl8wYjogYnVmZmVycyBoYXZlIHRoZSBzYW1l
IGNvbnRlbnRzCitQQVNTIEZsb2F0MzJfMGI6IG9mZnNldCBpcyAwCitQQVNTIEZsb2F0MzJfMGI6
IGxlbmd0aCBpcyAwCitQQVNTIEZsb2F0NjRfMGI6IGNsYXNzZXMgYXJlIFtvYmplY3QgRmxvYXQ2
NEFycmF5XQorUEFTUyBGbG9hdDY0XzBiOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVy
XQorUEFTUyBGbG9hdDY0XzBiOiBidWZmZXIgbGVuZ3RocyBhcmUgMAorUEFTUyBGbG9hdDY0XzBi
OiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgRmxvYXQ2NF8wYjogb2Zmc2V0
IGlzIDAKK1BBU1MgRmxvYXQ2NF8wYjogbGVuZ3RoIGlzIDAKK1BBU1MgSW50MzJfMWI6IGNsYXNz
ZXMgYXJlIFtvYmplY3QgSW50MzJBcnJheV0KK1BBU1MgSW50MzJfMWI6IGNsYXNzZXMgYXJlIFtv
YmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIEludDMyXzFiOiBidWZmZXIgbGVuZ3RocyBhcmUgNAor
UEFTUyBJbnQzMl8xYjogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIEludDMy
XzFiOiBvZmZzZXQgaXMgMAorUEFTUyBJbnQzMl8xYjogbGVuZ3RoIGlzIDQKK1BBU1MgVWludDMy
XzFiOiBjbGFzc2VzIGFyZSBbb2JqZWN0IFVpbnQzMkFycmF5XQorUEFTUyBVaW50MzJfMWI6IGNs
YXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIFVpbnQzMl8xYjogYnVmZmVyIGxl
bmd0aHMgYXJlIDQKK1BBU1MgVWludDMyXzFiOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVu
dHMKK1BBU1MgVWludDMyXzFiOiBvZmZzZXQgaXMgMAorUEFTUyBVaW50MzJfMWI6IGxlbmd0aCBp
cyA0CitQQVNTIEludDhfMWI6IGNsYXNzZXMgYXJlIFtvYmplY3QgSW50OEFycmF5XQorUEFTUyBJ
bnQ4XzFiOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBJbnQ4XzFiOiBi
dWZmZXIgbGVuZ3RocyBhcmUgMQorUEFTUyBJbnQ4XzFiOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUg
Y29udGVudHMKK1BBU1MgSW50OF8xYjogb2Zmc2V0IGlzIDAKK1BBU1MgSW50OF8xYjogbGVuZ3Ro
IGlzIDEKK1BBU1MgVWludDhfMWI6IGNsYXNzZXMgYXJlIFtvYmplY3QgVWludDhBcnJheV0KK1BB
U1MgVWludDhfMWI6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIFVpbnQ4
XzFiOiBidWZmZXIgbGVuZ3RocyBhcmUgMQorUEFTUyBVaW50OF8xYjogYnVmZmVycyBoYXZlIHRo
ZSBzYW1lIGNvbnRlbnRzCitQQVNTIFVpbnQ4XzFiOiBvZmZzZXQgaXMgMAorUEFTUyBVaW50OF8x
YjogbGVuZ3RoIGlzIDEKK1BBU1MgSW50MTZfMWI6IGNsYXNzZXMgYXJlIFtvYmplY3QgSW50MTZB
cnJheV0KK1BBU1MgSW50MTZfMWI6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQ
QVNTIEludDE2XzFiOiBidWZmZXIgbGVuZ3RocyBhcmUgMgorUEFTUyBJbnQxNl8xYjogYnVmZmVy
cyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIEludDE2XzFiOiBvZmZzZXQgaXMgMAorUEFT
UyBJbnQxNl8xYjogbGVuZ3RoIGlzIDIKK1BBU1MgVWludDE2XzFiOiBjbGFzc2VzIGFyZSBbb2Jq
ZWN0IFVpbnQxNkFycmF5XQorUEFTUyBVaW50MTZfMWI6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJy
YXlCdWZmZXJdCitQQVNTIFVpbnQxNl8xYjogYnVmZmVyIGxlbmd0aHMgYXJlIDIKK1BBU1MgVWlu
dDE2XzFiOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgVWludDE2XzFiOiBv
ZmZzZXQgaXMgMAorUEFTUyBVaW50MTZfMWI6IGxlbmd0aCBpcyAyCitQQVNTIEZsb2F0MzJfMWI6
IGNsYXNzZXMgYXJlIFtvYmplY3QgRmxvYXQzMkFycmF5XQorUEFTUyBGbG9hdDMyXzFiOiBjbGFz
c2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBGbG9hdDMyXzFiOiBidWZmZXIgbGVu
Z3RocyBhcmUgNAorUEFTUyBGbG9hdDMyXzFiOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVu
dHMKK1BBU1MgRmxvYXQzMl8xYjogb2Zmc2V0IGlzIDAKK1BBU1MgRmxvYXQzMl8xYjogbGVuZ3Ro
IGlzIDQKK1BBU1MgRmxvYXQ2NF8xYjogY2xhc3NlcyBhcmUgW29iamVjdCBGbG9hdDY0QXJyYXld
CitQQVNTIEZsb2F0NjRfMWI6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNT
IEZsb2F0NjRfMWI6IGJ1ZmZlciBsZW5ndGhzIGFyZSA4CitQQVNTIEZsb2F0NjRfMWI6IGJ1ZmZl
cnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBGbG9hdDY0XzFiOiBvZmZzZXQgaXMgMAor
UEFTUyBGbG9hdDY0XzFiOiBsZW5ndGggaXMgOAorUEFTUyBJbnQzMl8xMjhiOiBjbGFzc2VzIGFy
ZSBbb2JqZWN0IEludDMyQXJyYXldCitQQVNTIEludDMyXzEyOGI6IGNsYXNzZXMgYXJlIFtvYmpl
Y3QgQXJyYXlCdWZmZXJdCitQQVNTIEludDMyXzEyOGI6IGJ1ZmZlciBsZW5ndGhzIGFyZSA1MTIK
K1BBU1MgSW50MzJfMTI4YjogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIElu
dDMyXzEyOGI6IG9mZnNldCBpcyAwCitQQVNTIEludDMyXzEyOGI6IGxlbmd0aCBpcyA1MTIKK1BB
U1MgVWludDMyXzEyOGI6IGNsYXNzZXMgYXJlIFtvYmplY3QgVWludDMyQXJyYXldCitQQVNTIFVp
bnQzMl8xMjhiOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBVaW50MzJf
MTI4YjogYnVmZmVyIGxlbmd0aHMgYXJlIDUxMgorUEFTUyBVaW50MzJfMTI4YjogYnVmZmVycyBo
YXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIFVpbnQzMl8xMjhiOiBvZmZzZXQgaXMgMAorUEFT
UyBVaW50MzJfMTI4YjogbGVuZ3RoIGlzIDUxMgorUEFTUyBJbnQ4XzEyOGI6IGNsYXNzZXMgYXJl
IFtvYmplY3QgSW50OEFycmF5XQorUEFTUyBJbnQ4XzEyOGI6IGNsYXNzZXMgYXJlIFtvYmplY3Qg
QXJyYXlCdWZmZXJdCitQQVNTIEludDhfMTI4YjogYnVmZmVyIGxlbmd0aHMgYXJlIDEyOAorUEFT
UyBJbnQ4XzEyOGI6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBJbnQ4XzEy
OGI6IG9mZnNldCBpcyAwCitQQVNTIEludDhfMTI4YjogbGVuZ3RoIGlzIDEyOAorUEFTUyBVaW50
OF8xMjhiOiBjbGFzc2VzIGFyZSBbb2JqZWN0IFVpbnQ4QXJyYXldCitQQVNTIFVpbnQ4XzEyOGI6
IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIFVpbnQ4XzEyOGI6IGJ1ZmZl
ciBsZW5ndGhzIGFyZSAxMjgKK1BBU1MgVWludDhfMTI4YjogYnVmZmVycyBoYXZlIHRoZSBzYW1l
IGNvbnRlbnRzCitQQVNTIFVpbnQ4XzEyOGI6IG9mZnNldCBpcyAwCitQQVNTIFVpbnQ4XzEyOGI6
IGxlbmd0aCBpcyAxMjgKK1BBU1MgSW50MTZfMTI4YjogY2xhc3NlcyBhcmUgW29iamVjdCBJbnQx
NkFycmF5XQorUEFTUyBJbnQxNl8xMjhiOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVy
XQorUEFTUyBJbnQxNl8xMjhiOiBidWZmZXIgbGVuZ3RocyBhcmUgMjU2CitQQVNTIEludDE2XzEy
OGI6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBJbnQxNl8xMjhiOiBvZmZz
ZXQgaXMgMAorUEFTUyBJbnQxNl8xMjhiOiBsZW5ndGggaXMgMjU2CitQQVNTIFVpbnQxNl8xMjhi
OiBjbGFzc2VzIGFyZSBbb2JqZWN0IFVpbnQxNkFycmF5XQorUEFTUyBVaW50MTZfMTI4YjogY2xh
c3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgVWludDE2XzEyOGI6IGJ1ZmZlciBs
ZW5ndGhzIGFyZSAyNTYKK1BBU1MgVWludDE2XzEyOGI6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBj
b250ZW50cworUEFTUyBVaW50MTZfMTI4Yjogb2Zmc2V0IGlzIDAKK1BBU1MgVWludDE2XzEyOGI6
IGxlbmd0aCBpcyAyNTYKK1BBU1MgRmxvYXQzMl8xMjhiOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEZs
b2F0MzJBcnJheV0KK1BBU1MgRmxvYXQzMl8xMjhiOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5
QnVmZmVyXQorUEFTUyBGbG9hdDMyXzEyOGI6IGJ1ZmZlciBsZW5ndGhzIGFyZSA1MTIKK1BBU1Mg
RmxvYXQzMl8xMjhiOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgRmxvYXQz
Ml8xMjhiOiBvZmZzZXQgaXMgMAorUEFTUyBGbG9hdDMyXzEyOGI6IGxlbmd0aCBpcyA1MTIKK1BB
U1MgRmxvYXQ2NF8xMjhiOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEZsb2F0NjRBcnJheV0KK1BBU1Mg
RmxvYXQ2NF8xMjhiOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBGbG9h
dDY0XzEyOGI6IGJ1ZmZlciBsZW5ndGhzIGFyZSAxMDI0CitQQVNTIEZsb2F0NjRfMTI4YjogYnVm
ZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIEZsb2F0NjRfMTI4Yjogb2Zmc2V0IGlz
IDAKK1BBU1MgRmxvYXQ2NF8xMjhiOiBsZW5ndGggaXMgMTAyNAorUEFTUyBJbnQzMl8xYl9vZnNf
ZW5kOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEludDMyQXJyYXldCitQQVNTIEludDMyXzFiX29mc19l
bmQ6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIEludDMyXzFiX29mc19l
bmQ6IGJ1ZmZlciBsZW5ndGhzIGFyZSA0CitQQVNTIEludDMyXzFiX29mc19lbmQ6IGJ1ZmZlcnMg
aGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBJbnQzMl8xYl9vZnNfZW5kOiBvZmZzZXQgaXMg
NAorUEFTUyBJbnQzMl8xYl9vZnNfZW5kOiBsZW5ndGggaXMgMAorUEFTUyBVaW50MzJfMWJfb2Zz
X2VuZDogY2xhc3NlcyBhcmUgW29iamVjdCBVaW50MzJBcnJheV0KK1BBU1MgVWludDMyXzFiX29m
c19lbmQ6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIFVpbnQzMl8xYl9v
ZnNfZW5kOiBidWZmZXIgbGVuZ3RocyBhcmUgNAorUEFTUyBVaW50MzJfMWJfb2ZzX2VuZDogYnVm
ZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIFVpbnQzMl8xYl9vZnNfZW5kOiBvZmZz
ZXQgaXMgNAorUEFTUyBVaW50MzJfMWJfb2ZzX2VuZDogbGVuZ3RoIGlzIDAKK1BBU1MgSW50OF8x
Yl9vZnNfZW5kOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEludDhBcnJheV0KK1BBU1MgSW50OF8xYl9v
ZnNfZW5kOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBJbnQ4XzFiX29m
c19lbmQ6IGJ1ZmZlciBsZW5ndGhzIGFyZSAxCitQQVNTIEludDhfMWJfb2ZzX2VuZDogYnVmZmVy
cyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIEludDhfMWJfb2ZzX2VuZDogb2Zmc2V0IGlz
IDEKK1BBU1MgSW50OF8xYl9vZnNfZW5kOiBsZW5ndGggaXMgMAorUEFTUyBVaW50OF8xYl9vZnNf
ZW5kOiBjbGFzc2VzIGFyZSBbb2JqZWN0IFVpbnQ4QXJyYXldCitQQVNTIFVpbnQ4XzFiX29mc19l
bmQ6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIFVpbnQ4XzFiX29mc19l
bmQ6IGJ1ZmZlciBsZW5ndGhzIGFyZSAxCitQQVNTIFVpbnQ4XzFiX29mc19lbmQ6IGJ1ZmZlcnMg
aGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBVaW50OF8xYl9vZnNfZW5kOiBvZmZzZXQgaXMg
MQorUEFTUyBVaW50OF8xYl9vZnNfZW5kOiBsZW5ndGggaXMgMAorUEFTUyBJbnQxNl8xYl9vZnNf
ZW5kOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEludDE2QXJyYXldCitQQVNTIEludDE2XzFiX29mc19l
bmQ6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIEludDE2XzFiX29mc19l
bmQ6IGJ1ZmZlciBsZW5ndGhzIGFyZSAyCitQQVNTIEludDE2XzFiX29mc19lbmQ6IGJ1ZmZlcnMg
aGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBJbnQxNl8xYl9vZnNfZW5kOiBvZmZzZXQgaXMg
MgorUEFTUyBJbnQxNl8xYl9vZnNfZW5kOiBsZW5ndGggaXMgMAorUEFTUyBVaW50MTZfMWJfb2Zz
X2VuZDogY2xhc3NlcyBhcmUgW29iamVjdCBVaW50MTZBcnJheV0KK1BBU1MgVWludDE2XzFiX29m
c19lbmQ6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIFVpbnQxNl8xYl9v
ZnNfZW5kOiBidWZmZXIgbGVuZ3RocyBhcmUgMgorUEFTUyBVaW50MTZfMWJfb2ZzX2VuZDogYnVm
ZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIFVpbnQxNl8xYl9vZnNfZW5kOiBvZmZz
ZXQgaXMgMgorUEFTUyBVaW50MTZfMWJfb2ZzX2VuZDogbGVuZ3RoIGlzIDAKK1BBU1MgRmxvYXQz
Ml8xYl9vZnNfZW5kOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEZsb2F0MzJBcnJheV0KK1BBU1MgRmxv
YXQzMl8xYl9vZnNfZW5kOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBG
bG9hdDMyXzFiX29mc19lbmQ6IGJ1ZmZlciBsZW5ndGhzIGFyZSA0CitQQVNTIEZsb2F0MzJfMWJf
b2ZzX2VuZDogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIEZsb2F0MzJfMWJf
b2ZzX2VuZDogb2Zmc2V0IGlzIDQKK1BBU1MgRmxvYXQzMl8xYl9vZnNfZW5kOiBsZW5ndGggaXMg
MAorUEFTUyBGbG9hdDY0XzFiX29mc19lbmQ6IGNsYXNzZXMgYXJlIFtvYmplY3QgRmxvYXQ2NEFy
cmF5XQorUEFTUyBGbG9hdDY0XzFiX29mc19lbmQ6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlC
dWZmZXJdCitQQVNTIEZsb2F0NjRfMWJfb2ZzX2VuZDogYnVmZmVyIGxlbmd0aHMgYXJlIDgKK1BB
U1MgRmxvYXQ2NF8xYl9vZnNfZW5kOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BB
U1MgRmxvYXQ2NF8xYl9vZnNfZW5kOiBvZmZzZXQgaXMgOAorUEFTUyBGbG9hdDY0XzFiX29mc19l
bmQ6IGxlbmd0aCBpcyAwCitQQVNTIEludDMyXzEyOGJfb2ZzX2VuZDogY2xhc3NlcyBhcmUgW29i
amVjdCBJbnQzMkFycmF5XQorUEFTUyBJbnQzMl8xMjhiX29mc19lbmQ6IGNsYXNzZXMgYXJlIFtv
YmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIEludDMyXzEyOGJfb2ZzX2VuZDogYnVmZmVyIGxlbmd0
aHMgYXJlIDUxMgorUEFTUyBJbnQzMl8xMjhiX29mc19lbmQ6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2Ft
ZSBjb250ZW50cworUEFTUyBJbnQzMl8xMjhiX29mc19lbmQ6IG9mZnNldCBpcyA1MTIKK1BBU1Mg
SW50MzJfMTI4Yl9vZnNfZW5kOiBsZW5ndGggaXMgMAorUEFTUyBVaW50MzJfMTI4Yl9vZnNfZW5k
OiBjbGFzc2VzIGFyZSBbb2JqZWN0IFVpbnQzMkFycmF5XQorUEFTUyBVaW50MzJfMTI4Yl9vZnNf
ZW5kOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBVaW50MzJfMTI4Yl9v
ZnNfZW5kOiBidWZmZXIgbGVuZ3RocyBhcmUgNTEyCitQQVNTIFVpbnQzMl8xMjhiX29mc19lbmQ6
IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBVaW50MzJfMTI4Yl9vZnNfZW5k
OiBvZmZzZXQgaXMgNTEyCitQQVNTIFVpbnQzMl8xMjhiX29mc19lbmQ6IGxlbmd0aCBpcyAwCitQ
QVNTIEludDhfMTI4Yl9vZnNfZW5kOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEludDhBcnJheV0KK1BB
U1MgSW50OF8xMjhiX29mc19lbmQ6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQ
QVNTIEludDhfMTI4Yl9vZnNfZW5kOiBidWZmZXIgbGVuZ3RocyBhcmUgMTI4CitQQVNTIEludDhf
MTI4Yl9vZnNfZW5kOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgSW50OF8x
MjhiX29mc19lbmQ6IG9mZnNldCBpcyAxMjgKK1BBU1MgSW50OF8xMjhiX29mc19lbmQ6IGxlbmd0
aCBpcyAwCitQQVNTIFVpbnQ4XzEyOGJfb2ZzX2VuZDogY2xhc3NlcyBhcmUgW29iamVjdCBVaW50
OEFycmF5XQorUEFTUyBVaW50OF8xMjhiX29mc19lbmQ6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJy
YXlCdWZmZXJdCitQQVNTIFVpbnQ4XzEyOGJfb2ZzX2VuZDogYnVmZmVyIGxlbmd0aHMgYXJlIDEy
OAorUEFTUyBVaW50OF8xMjhiX29mc19lbmQ6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50
cworUEFTUyBVaW50OF8xMjhiX29mc19lbmQ6IG9mZnNldCBpcyAxMjgKK1BBU1MgVWludDhfMTI4
Yl9vZnNfZW5kOiBsZW5ndGggaXMgMAorUEFTUyBJbnQxNl8xMjhiX29mc19lbmQ6IGNsYXNzZXMg
YXJlIFtvYmplY3QgSW50MTZBcnJheV0KK1BBU1MgSW50MTZfMTI4Yl9vZnNfZW5kOiBjbGFzc2Vz
IGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBJbnQxNl8xMjhiX29mc19lbmQ6IGJ1ZmZl
ciBsZW5ndGhzIGFyZSAyNTYKK1BBU1MgSW50MTZfMTI4Yl9vZnNfZW5kOiBidWZmZXJzIGhhdmUg
dGhlIHNhbWUgY29udGVudHMKK1BBU1MgSW50MTZfMTI4Yl9vZnNfZW5kOiBvZmZzZXQgaXMgMjU2
CitQQVNTIEludDE2XzEyOGJfb2ZzX2VuZDogbGVuZ3RoIGlzIDAKK1BBU1MgVWludDE2XzEyOGJf
b2ZzX2VuZDogY2xhc3NlcyBhcmUgW29iamVjdCBVaW50MTZBcnJheV0KK1BBU1MgVWludDE2XzEy
OGJfb2ZzX2VuZDogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgVWludDE2
XzEyOGJfb2ZzX2VuZDogYnVmZmVyIGxlbmd0aHMgYXJlIDI1NgorUEFTUyBVaW50MTZfMTI4Yl9v
ZnNfZW5kOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgVWludDE2XzEyOGJf
b2ZzX2VuZDogb2Zmc2V0IGlzIDI1NgorUEFTUyBVaW50MTZfMTI4Yl9vZnNfZW5kOiBsZW5ndGgg
aXMgMAorUEFTUyBGbG9hdDMyXzEyOGJfb2ZzX2VuZDogY2xhc3NlcyBhcmUgW29iamVjdCBGbG9h
dDMyQXJyYXldCitQQVNTIEZsb2F0MzJfMTI4Yl9vZnNfZW5kOiBjbGFzc2VzIGFyZSBbb2JqZWN0
IEFycmF5QnVmZmVyXQorUEFTUyBGbG9hdDMyXzEyOGJfb2ZzX2VuZDogYnVmZmVyIGxlbmd0aHMg
YXJlIDUxMgorUEFTUyBGbG9hdDMyXzEyOGJfb2ZzX2VuZDogYnVmZmVycyBoYXZlIHRoZSBzYW1l
IGNvbnRlbnRzCitQQVNTIEZsb2F0MzJfMTI4Yl9vZnNfZW5kOiBvZmZzZXQgaXMgNTEyCitQQVNT
IEZsb2F0MzJfMTI4Yl9vZnNfZW5kOiBsZW5ndGggaXMgMAorUEFTUyBGbG9hdDY0XzEyOGJfb2Zz
X2VuZDogY2xhc3NlcyBhcmUgW29iamVjdCBGbG9hdDY0QXJyYXldCitQQVNTIEZsb2F0NjRfMTI4
Yl9vZnNfZW5kOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBGbG9hdDY0
XzEyOGJfb2ZzX2VuZDogYnVmZmVyIGxlbmd0aHMgYXJlIDEwMjQKK1BBU1MgRmxvYXQ2NF8xMjhi
X29mc19lbmQ6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBGbG9hdDY0XzEy
OGJfb2ZzX2VuZDogb2Zmc2V0IGlzIDEwMjQKK1BBU1MgRmxvYXQ2NF8xMjhiX29mc19lbmQ6IGxl
bmd0aCBpcyAwCitQQVNTIEludDMyXzEyOGJfb2ZzX3NsaWNlMDogY2xhc3NlcyBhcmUgW29iamVj
dCBJbnQzMkFycmF5XQorUEFTUyBJbnQzMl8xMjhiX29mc19zbGljZTA6IGNsYXNzZXMgYXJlIFtv
YmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIEludDMyXzEyOGJfb2ZzX3NsaWNlMDogYnVmZmVyIGxl
bmd0aHMgYXJlIDUxMgorUEFTUyBJbnQzMl8xMjhiX29mc19zbGljZTA6IGJ1ZmZlcnMgaGF2ZSB0
aGUgc2FtZSBjb250ZW50cworUEFTUyBJbnQzMl8xMjhiX29mc19zbGljZTA6IG9mZnNldCBpcyAy
NTYKK1BBU1MgSW50MzJfMTI4Yl9vZnNfc2xpY2UwOiBsZW5ndGggaXMgMAorUEFTUyBVaW50MzJf
MTI4Yl9vZnNfc2xpY2UwOiBjbGFzc2VzIGFyZSBbb2JqZWN0IFVpbnQzMkFycmF5XQorUEFTUyBV
aW50MzJfMTI4Yl9vZnNfc2xpY2UwOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQor
UEFTUyBVaW50MzJfMTI4Yl9vZnNfc2xpY2UwOiBidWZmZXIgbGVuZ3RocyBhcmUgNTEyCitQQVNT
IFVpbnQzMl8xMjhiX29mc19zbGljZTA6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cwor
UEFTUyBVaW50MzJfMTI4Yl9vZnNfc2xpY2UwOiBvZmZzZXQgaXMgMjU2CitQQVNTIFVpbnQzMl8x
MjhiX29mc19zbGljZTA6IGxlbmd0aCBpcyAwCitQQVNTIEludDhfMTI4Yl9vZnNfc2xpY2UwOiBj
bGFzc2VzIGFyZSBbb2JqZWN0IEludDhBcnJheV0KK1BBU1MgSW50OF8xMjhiX29mc19zbGljZTA6
IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIEludDhfMTI4Yl9vZnNfc2xp
Y2UwOiBidWZmZXIgbGVuZ3RocyBhcmUgMTI4CitQQVNTIEludDhfMTI4Yl9vZnNfc2xpY2UwOiBi
dWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgSW50OF8xMjhiX29mc19zbGljZTA6
IG9mZnNldCBpcyA2NAorUEFTUyBJbnQ4XzEyOGJfb2ZzX3NsaWNlMDogbGVuZ3RoIGlzIDAKK1BB
U1MgVWludDhfMTI4Yl9vZnNfc2xpY2UwOiBjbGFzc2VzIGFyZSBbb2JqZWN0IFVpbnQ4QXJyYXld
CitQQVNTIFVpbnQ4XzEyOGJfb2ZzX3NsaWNlMDogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1
ZmZlcl0KK1BBU1MgVWludDhfMTI4Yl9vZnNfc2xpY2UwOiBidWZmZXIgbGVuZ3RocyBhcmUgMTI4
CitQQVNTIFVpbnQ4XzEyOGJfb2ZzX3NsaWNlMDogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRl
bnRzCitQQVNTIFVpbnQ4XzEyOGJfb2ZzX3NsaWNlMDogb2Zmc2V0IGlzIDY0CitQQVNTIFVpbnQ4
XzEyOGJfb2ZzX3NsaWNlMDogbGVuZ3RoIGlzIDAKK1BBU1MgSW50MTZfMTI4Yl9vZnNfc2xpY2Uw
OiBjbGFzc2VzIGFyZSBbb2JqZWN0IEludDE2QXJyYXldCitQQVNTIEludDE2XzEyOGJfb2ZzX3Ns
aWNlMDogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgSW50MTZfMTI4Yl9v
ZnNfc2xpY2UwOiBidWZmZXIgbGVuZ3RocyBhcmUgMjU2CitQQVNTIEludDE2XzEyOGJfb2ZzX3Ns
aWNlMDogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIEludDE2XzEyOGJfb2Zz
X3NsaWNlMDogb2Zmc2V0IGlzIDEyOAorUEFTUyBJbnQxNl8xMjhiX29mc19zbGljZTA6IGxlbmd0
aCBpcyAwCitQQVNTIFVpbnQxNl8xMjhiX29mc19zbGljZTA6IGNsYXNzZXMgYXJlIFtvYmplY3Qg
VWludDE2QXJyYXldCitQQVNTIFVpbnQxNl8xMjhiX29mc19zbGljZTA6IGNsYXNzZXMgYXJlIFtv
YmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIFVpbnQxNl8xMjhiX29mc19zbGljZTA6IGJ1ZmZlciBs
ZW5ndGhzIGFyZSAyNTYKK1BBU1MgVWludDE2XzEyOGJfb2ZzX3NsaWNlMDogYnVmZmVycyBoYXZl
IHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIFVpbnQxNl8xMjhiX29mc19zbGljZTA6IG9mZnNldCBp
cyAxMjgKK1BBU1MgVWludDE2XzEyOGJfb2ZzX3NsaWNlMDogbGVuZ3RoIGlzIDAKK1BBU1MgRmxv
YXQzMl8xMjhiX29mc19zbGljZTA6IGNsYXNzZXMgYXJlIFtvYmplY3QgRmxvYXQzMkFycmF5XQor
UEFTUyBGbG9hdDMyXzEyOGJfb2ZzX3NsaWNlMDogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1
ZmZlcl0KK1BBU1MgRmxvYXQzMl8xMjhiX29mc19zbGljZTA6IGJ1ZmZlciBsZW5ndGhzIGFyZSA1
MTIKK1BBU1MgRmxvYXQzMl8xMjhiX29mc19zbGljZTA6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBj
b250ZW50cworUEFTUyBGbG9hdDMyXzEyOGJfb2ZzX3NsaWNlMDogb2Zmc2V0IGlzIDI1NgorUEFT
UyBGbG9hdDMyXzEyOGJfb2ZzX3NsaWNlMDogbGVuZ3RoIGlzIDAKK1BBU1MgRmxvYXQ2NF8xMjhi
X29mc19zbGljZTA6IGNsYXNzZXMgYXJlIFtvYmplY3QgRmxvYXQ2NEFycmF5XQorUEFTUyBGbG9h
dDY0XzEyOGJfb2ZzX3NsaWNlMDogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BB
U1MgRmxvYXQ2NF8xMjhiX29mc19zbGljZTA6IGJ1ZmZlciBsZW5ndGhzIGFyZSAxMDI0CitQQVNT
IEZsb2F0NjRfMTI4Yl9vZnNfc2xpY2UwOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMK
K1BBU1MgRmxvYXQ2NF8xMjhiX29mc19zbGljZTA6IG9mZnNldCBpcyA1MTIKK1BBU1MgRmxvYXQ2
NF8xMjhiX29mc19zbGljZTA6IGxlbmd0aCBpcyAwCitQQVNTIEludDMyXzEyOGJfb2ZzX3NsaWNl
MTogY2xhc3NlcyBhcmUgW29iamVjdCBJbnQzMkFycmF5XQorUEFTUyBJbnQzMl8xMjhiX29mc19z
bGljZTE6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIEludDMyXzEyOGJf
b2ZzX3NsaWNlMTogYnVmZmVyIGxlbmd0aHMgYXJlIDUxMgorUEFTUyBJbnQzMl8xMjhiX29mc19z
bGljZTE6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBJbnQzMl8xMjhiX29m
c19zbGljZTE6IG9mZnNldCBpcyAyNTYKK1BBU1MgSW50MzJfMTI4Yl9vZnNfc2xpY2UxOiBsZW5n
dGggaXMgNAorUEFTUyBVaW50MzJfMTI4Yl9vZnNfc2xpY2UxOiBjbGFzc2VzIGFyZSBbb2JqZWN0
IFVpbnQzMkFycmF5XQorUEFTUyBVaW50MzJfMTI4Yl9vZnNfc2xpY2UxOiBjbGFzc2VzIGFyZSBb
b2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBVaW50MzJfMTI4Yl9vZnNfc2xpY2UxOiBidWZmZXIg
bGVuZ3RocyBhcmUgNTEyCitQQVNTIFVpbnQzMl8xMjhiX29mc19zbGljZTE6IGJ1ZmZlcnMgaGF2
ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBVaW50MzJfMTI4Yl9vZnNfc2xpY2UxOiBvZmZzZXQg
aXMgMjU2CitQQVNTIFVpbnQzMl8xMjhiX29mc19zbGljZTE6IGxlbmd0aCBpcyA0CitQQVNTIElu
dDhfMTI4Yl9vZnNfc2xpY2UxOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEludDhBcnJheV0KK1BBU1Mg
SW50OF8xMjhiX29mc19zbGljZTE6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQ
QVNTIEludDhfMTI4Yl9vZnNfc2xpY2UxOiBidWZmZXIgbGVuZ3RocyBhcmUgMTI4CitQQVNTIElu
dDhfMTI4Yl9vZnNfc2xpY2UxOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1Mg
SW50OF8xMjhiX29mc19zbGljZTE6IG9mZnNldCBpcyA2NAorUEFTUyBJbnQ4XzEyOGJfb2ZzX3Ns
aWNlMTogbGVuZ3RoIGlzIDEKK1BBU1MgVWludDhfMTI4Yl9vZnNfc2xpY2UxOiBjbGFzc2VzIGFy
ZSBbb2JqZWN0IFVpbnQ4QXJyYXldCitQQVNTIFVpbnQ4XzEyOGJfb2ZzX3NsaWNlMTogY2xhc3Nl
cyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgVWludDhfMTI4Yl9vZnNfc2xpY2UxOiBi
dWZmZXIgbGVuZ3RocyBhcmUgMTI4CitQQVNTIFVpbnQ4XzEyOGJfb2ZzX3NsaWNlMTogYnVmZmVy
cyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIFVpbnQ4XzEyOGJfb2ZzX3NsaWNlMTogb2Zm
c2V0IGlzIDY0CitQQVNTIFVpbnQ4XzEyOGJfb2ZzX3NsaWNlMTogbGVuZ3RoIGlzIDEKK1BBU1Mg
SW50MTZfMTI4Yl9vZnNfc2xpY2UxOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEludDE2QXJyYXldCitQ
QVNTIEludDE2XzEyOGJfb2ZzX3NsaWNlMTogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZl
cl0KK1BBU1MgSW50MTZfMTI4Yl9vZnNfc2xpY2UxOiBidWZmZXIgbGVuZ3RocyBhcmUgMjU2CitQ
QVNTIEludDE2XzEyOGJfb2ZzX3NsaWNlMTogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRz
CitQQVNTIEludDE2XzEyOGJfb2ZzX3NsaWNlMTogb2Zmc2V0IGlzIDEyOAorUEFTUyBJbnQxNl8x
MjhiX29mc19zbGljZTE6IGxlbmd0aCBpcyAyCitQQVNTIFVpbnQxNl8xMjhiX29mc19zbGljZTE6
IGNsYXNzZXMgYXJlIFtvYmplY3QgVWludDE2QXJyYXldCitQQVNTIFVpbnQxNl8xMjhiX29mc19z
bGljZTE6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIFVpbnQxNl8xMjhi
X29mc19zbGljZTE6IGJ1ZmZlciBsZW5ndGhzIGFyZSAyNTYKK1BBU1MgVWludDE2XzEyOGJfb2Zz
X3NsaWNlMTogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIFVpbnQxNl8xMjhi
X29mc19zbGljZTE6IG9mZnNldCBpcyAxMjgKK1BBU1MgVWludDE2XzEyOGJfb2ZzX3NsaWNlMTog
bGVuZ3RoIGlzIDIKK1BBU1MgRmxvYXQzMl8xMjhiX29mc19zbGljZTE6IGNsYXNzZXMgYXJlIFtv
YmplY3QgRmxvYXQzMkFycmF5XQorUEFTUyBGbG9hdDMyXzEyOGJfb2ZzX3NsaWNlMTogY2xhc3Nl
cyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgRmxvYXQzMl8xMjhiX29mc19zbGljZTE6
IGJ1ZmZlciBsZW5ndGhzIGFyZSA1MTIKK1BBU1MgRmxvYXQzMl8xMjhiX29mc19zbGljZTE6IGJ1
ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBGbG9hdDMyXzEyOGJfb2ZzX3NsaWNl
MTogb2Zmc2V0IGlzIDI1NgorUEFTUyBGbG9hdDMyXzEyOGJfb2ZzX3NsaWNlMTogbGVuZ3RoIGlz
IDQKK1BBU1MgRmxvYXQ2NF8xMjhiX29mc19zbGljZTE6IGNsYXNzZXMgYXJlIFtvYmplY3QgRmxv
YXQ2NEFycmF5XQorUEFTUyBGbG9hdDY0XzEyOGJfb2ZzX3NsaWNlMTogY2xhc3NlcyBhcmUgW29i
amVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgRmxvYXQ2NF8xMjhiX29mc19zbGljZTE6IGJ1ZmZlciBs
ZW5ndGhzIGFyZSAxMDI0CitQQVNTIEZsb2F0NjRfMTI4Yl9vZnNfc2xpY2UxOiBidWZmZXJzIGhh
dmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgRmxvYXQ2NF8xMjhiX29mc19zbGljZTE6IG9mZnNl
dCBpcyA1MTIKK1BBU1MgRmxvYXQ2NF8xMjhiX29mc19zbGljZTE6IGxlbmd0aCBpcyA4CitQQVNT
IEludDMyXzEyOGJfb2ZzX3NsaWNlMTY6IGNsYXNzZXMgYXJlIFtvYmplY3QgSW50MzJBcnJheV0K
K1BBU1MgSW50MzJfMTI4Yl9vZnNfc2xpY2UxNjogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1
ZmZlcl0KK1BBU1MgSW50MzJfMTI4Yl9vZnNfc2xpY2UxNjogYnVmZmVyIGxlbmd0aHMgYXJlIDUx
MgorUEFTUyBJbnQzMl8xMjhiX29mc19zbGljZTE2OiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29u
dGVudHMKK1BBU1MgSW50MzJfMTI4Yl9vZnNfc2xpY2UxNjogb2Zmc2V0IGlzIDI1NgorUEFTUyBJ
bnQzMl8xMjhiX29mc19zbGljZTE2OiBsZW5ndGggaXMgNjQKK1BBU1MgVWludDMyXzEyOGJfb2Zz
X3NsaWNlMTY6IGNsYXNzZXMgYXJlIFtvYmplY3QgVWludDMyQXJyYXldCitQQVNTIFVpbnQzMl8x
MjhiX29mc19zbGljZTE2OiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBV
aW50MzJfMTI4Yl9vZnNfc2xpY2UxNjogYnVmZmVyIGxlbmd0aHMgYXJlIDUxMgorUEFTUyBVaW50
MzJfMTI4Yl9vZnNfc2xpY2UxNjogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNT
IFVpbnQzMl8xMjhiX29mc19zbGljZTE2OiBvZmZzZXQgaXMgMjU2CitQQVNTIFVpbnQzMl8xMjhi
X29mc19zbGljZTE2OiBsZW5ndGggaXMgNjQKK1BBU1MgSW50OF8xMjhiX29mc19zbGljZTE2OiBj
bGFzc2VzIGFyZSBbb2JqZWN0IEludDhBcnJheV0KK1BBU1MgSW50OF8xMjhiX29mc19zbGljZTE2
OiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBJbnQ4XzEyOGJfb2ZzX3Ns
aWNlMTY6IGJ1ZmZlciBsZW5ndGhzIGFyZSAxMjgKK1BBU1MgSW50OF8xMjhiX29mc19zbGljZTE2
OiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgSW50OF8xMjhiX29mc19zbGlj
ZTE2OiBvZmZzZXQgaXMgNjQKK1BBU1MgSW50OF8xMjhiX29mc19zbGljZTE2OiBsZW5ndGggaXMg
MTYKK1BBU1MgVWludDhfMTI4Yl9vZnNfc2xpY2UxNjogY2xhc3NlcyBhcmUgW29iamVjdCBVaW50
OEFycmF5XQorUEFTUyBVaW50OF8xMjhiX29mc19zbGljZTE2OiBjbGFzc2VzIGFyZSBbb2JqZWN0
IEFycmF5QnVmZmVyXQorUEFTUyBVaW50OF8xMjhiX29mc19zbGljZTE2OiBidWZmZXIgbGVuZ3Ro
cyBhcmUgMTI4CitQQVNTIFVpbnQ4XzEyOGJfb2ZzX3NsaWNlMTY6IGJ1ZmZlcnMgaGF2ZSB0aGUg
c2FtZSBjb250ZW50cworUEFTUyBVaW50OF8xMjhiX29mc19zbGljZTE2OiBvZmZzZXQgaXMgNjQK
K1BBU1MgVWludDhfMTI4Yl9vZnNfc2xpY2UxNjogbGVuZ3RoIGlzIDE2CitQQVNTIEludDE2XzEy
OGJfb2ZzX3NsaWNlMTY6IGNsYXNzZXMgYXJlIFtvYmplY3QgSW50MTZBcnJheV0KK1BBU1MgSW50
MTZfMTI4Yl9vZnNfc2xpY2UxNjogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BB
U1MgSW50MTZfMTI4Yl9vZnNfc2xpY2UxNjogYnVmZmVyIGxlbmd0aHMgYXJlIDI1NgorUEFTUyBJ
bnQxNl8xMjhiX29mc19zbGljZTE2OiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BB
U1MgSW50MTZfMTI4Yl9vZnNfc2xpY2UxNjogb2Zmc2V0IGlzIDEyOAorUEFTUyBJbnQxNl8xMjhi
X29mc19zbGljZTE2OiBsZW5ndGggaXMgMzIKK1BBU1MgVWludDE2XzEyOGJfb2ZzX3NsaWNlMTY6
IGNsYXNzZXMgYXJlIFtvYmplY3QgVWludDE2QXJyYXldCitQQVNTIFVpbnQxNl8xMjhiX29mc19z
bGljZTE2OiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBVaW50MTZfMTI4
Yl9vZnNfc2xpY2UxNjogYnVmZmVyIGxlbmd0aHMgYXJlIDI1NgorUEFTUyBVaW50MTZfMTI4Yl9v
ZnNfc2xpY2UxNjogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIFVpbnQxNl8x
MjhiX29mc19zbGljZTE2OiBvZmZzZXQgaXMgMTI4CitQQVNTIFVpbnQxNl8xMjhiX29mc19zbGlj
ZTE2OiBsZW5ndGggaXMgMzIKK1BBU1MgRmxvYXQzMl8xMjhiX29mc19zbGljZTE2OiBjbGFzc2Vz
IGFyZSBbb2JqZWN0IEZsb2F0MzJBcnJheV0KK1BBU1MgRmxvYXQzMl8xMjhiX29mc19zbGljZTE2
OiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBGbG9hdDMyXzEyOGJfb2Zz
X3NsaWNlMTY6IGJ1ZmZlciBsZW5ndGhzIGFyZSA1MTIKK1BBU1MgRmxvYXQzMl8xMjhiX29mc19z
bGljZTE2OiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgRmxvYXQzMl8xMjhi
X29mc19zbGljZTE2OiBvZmZzZXQgaXMgMjU2CitQQVNTIEZsb2F0MzJfMTI4Yl9vZnNfc2xpY2Ux
NjogbGVuZ3RoIGlzIDY0CitQQVNTIEZsb2F0NjRfMTI4Yl9vZnNfc2xpY2UxNjogY2xhc3NlcyBh
cmUgW29iamVjdCBGbG9hdDY0QXJyYXldCitQQVNTIEZsb2F0NjRfMTI4Yl9vZnNfc2xpY2UxNjog
Y2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgRmxvYXQ2NF8xMjhiX29mc19z
bGljZTE2OiBidWZmZXIgbGVuZ3RocyBhcmUgMTAyNAorUEFTUyBGbG9hdDY0XzEyOGJfb2ZzX3Ns
aWNlMTY6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBGbG9hdDY0XzEyOGJf
b2ZzX3NsaWNlMTY6IG9mZnNldCBpcyA1MTIKK1BBU1MgRmxvYXQ2NF8xMjhiX29mc19zbGljZTE2
OiBsZW5ndGggaXMgMTI4CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvYXJy
YXktbWVzc2FnZS1wYXNzaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9h
cnJheS1tZXNzYWdlLXBhc3NpbmcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi41MTBkYWIyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMv
d2ViZ2wvYXJyYXktbWVzc2FnZS1wYXNzaW5nLmh0bWwKQEAgLTAsMCArMSwyMDQgQEAKKzxodG1s
PgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2pzL3Jlc291cmNl
cy9qcy10ZXN0LXN0eWxlLmNzcyIvPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3dlYmdsLXRl
c3QuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+
PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKworPHNjcmlwdD4KK3dpbmRvdy5qc1Rl
c3RJc0FzeW5jID0gdHJ1ZTsKK3dpbmRvdy5jaGVhdCA9IGZhbHNlOworCitkZXNjcmlwdGlvbign
VGVzdCBwYXNzaW5nIEFycmF5QnVmZmVycyBhbmQgQXJyYXlCdWZmZXJWaWV3cyBpbiBtZXNzYWdl
cy4nKTsKK3dpbmRvdy50ZXN0c0NvbXBsZXRlID0gMDsKKworZnVuY3Rpb24gY2xhc3NDb21wYXJl
KHRuYW1lLCBnLCBzKSB7CisgIHZhciBjbGFzc1N0ciA9IE9iamVjdC5wcm90b3R5cGUudG9TdHJp
bmc7CisgIHZhciBnY2xhc3MgPSBjbGFzc1N0ci5jYWxsKGcpOworICB2YXIgc2NsYXNzID0gY2xh
c3NTdHIuY2FsbChzKTsKKyAgaWYgKGdjbGFzcyAhPT0gc2NsYXNzKSB7CisgICAgdGVzdEZhaWxl
ZCh0bmFtZSArICI6IGNsYXNzICIgKyBzY2xhc3MgKyAiIGJlY2FtZSAiICsgZ2NsYXNzKTsKKyAg
ICByZXR1cm4gZmFsc2U7CisgIH0gZWxzZSB7CisgICAgdGVzdFBhc3NlZCh0bmFtZSArICI6IGNs
YXNzZXMgYXJlICIgKyBzY2xhc3MpOworICAgIHJldHVybiB0cnVlOworICB9Cit9CisKK2Z1bmN0
aW9uIGJ1ZmZlckNvbXBhcmUodG5hbWUsIGcsIHMpIHsKKyAgaWYgKCFjbGFzc0NvbXBhcmUodG5h
bWUsIGcsIHMpKSB7CisgICAgcmV0dXJuIGZhbHNlOworICB9CisgIGlmIChnLmJ5dGVMZW5ndGgg
IT09IHMuYnl0ZUxlbmd0aCkgeworICAgIHRlc3RGYWlsZWQodG5hbWUgKyAiOiBleHBlY3RlZCAi
ICsgcy5ieXRlTGVuZ3RoICsgIiBieXRlcywgZ290ICIgKyBnLmJ5dGVMZW5ndGgpOworICAgIHJl
dHVybiBmYWxzZTsKKyAgfSBlbHNlIHsKKyAgICB0ZXN0UGFzc2VkKHRuYW1lICsgIjogYnVmZmVy
IGxlbmd0aHMgYXJlICIgKyBzLmJ5dGVMZW5ndGgpOworICB9CisgIHZhciBncmVhZGVyID0gbmV3
IFVpbnQ4QXJyYXkoZyk7CisgIHZhciBzcmVhZGVyID0gbmV3IFVpbnQ4QXJyYXkocyk7CisgIGZv
ciAodmFyIGkgPSAwOyBpIDwgcy5ieXRlTGVuZ3RoOyArK2kpIHsKKyAgICBpZiAoZ3JlYWRlcltp
XSAhPT0gc3JlYWRlcltpXSkgeworICAgICAgdGVzdEZhaWxlZCh0bmFtZSArICI6IGJ1ZmZlcnMg
ZGlmZmVyIHN0YXJ0aW5nIGF0IGJ5dGUgIiArIGkpOworICAgICAgcmV0dXJuIGZhbHNlOworICAg
IH0KKyAgfQorICB0ZXN0UGFzc2VkKHRuYW1lICsgIjogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNv
bnRlbnRzIik7CisgIHJldHVybiB0cnVlOworfQorCitmdW5jdGlvbiB2aWV3Q29tcGFyZSh0bmFt
ZSwgZywgcykgeworICBpZiAoIWNsYXNzQ29tcGFyZSh0bmFtZSwgZywgcykpIHsKKyAgICByZXR1
cm4gZmFsc2U7CisgIH0KKyAgaWYgKCFidWZmZXJDb21wYXJlKHRuYW1lLCBnLmJ1ZmZlciwgcy5i
dWZmZXIpKSB7CisgICAgcmV0dXJuIGZhbHNlOworICB9CisgIGlmIChnLmJ5dGVPZmZzZXQgIT09
IHMuYnl0ZU9mZnNldCkgeworICAgIHRlc3RGYWlsZWQodG5hbWUgKyAiOiBvZmZzZXQgIiArIHMu
Ynl0ZU9mZnNldCArICIgYmVjYW1lICIgKyBnLmJ5dGVPZmZzZXQpOworICAgIHJldHVybiBmYWxz
ZTsKKyAgfSBlbHNlIHsKKyAgICB0ZXN0UGFzc2VkKHRuYW1lICsgIjogb2Zmc2V0IGlzICIgKyBz
LmJ5dGVPZmZzZXQpOworICB9CisgIGlmIChnLmJ5dGVMZW5ndGggIT09IHMuYnl0ZUxlbmd0aCkg
eworICAgIHRlc3RGYWlsZWQodG5hbWUgKyAiOiBsZW5ndGggIiArIHMuYnl0ZUxlbmd0aCArICIg
YmVjYW1lICIgKyBnLmJ5dGVMZW5ndGgpOworICAgIHJldHVybiBmYWxzZTsKKyAgfSBlbHNlIHsK
KyAgICB0ZXN0UGFzc2VkKHRuYW1lICsgIjogbGVuZ3RoIGlzICIgKyBzLmJ5dGVMZW5ndGgpOwor
ICB9CisgIHJldHVybiB0cnVlOworfQorCitmdW5jdGlvbiB0eXBlZEFycmF5Q29tcGFyZSh0bmFt
ZSwgZywgcykgeworICBpZiAoIXZpZXdDb21wYXJlKHRuYW1lLCBnLCBzKSkgeworICAgIHJldHVy
biBmYWxzZTsKKyAgfQorICBpZiAoZy5CWVRFU19QRVJfRUxFTUVOVCAhPT0gcy5CWVRFU19QRVJf
RUxFTUVOVCkgeworICAgIC8vIFNhbml0eSBjaGVja2luZy4KKyAgICB0ZXN0RmFpbGVkKHRuYW1l
ICsgIjogZXhwZWN0ZWQgIiArIHMuQllURVNfUEVSX0VMRU1FTlQgKyAiLCBzYXcgIiArIGcuQllU
RVNfUEVSX0VMRU1FTlQpOworICAgIHJldHVybiBmYWxzZTsKKyAgfQorfQorCitmdW5jdGlvbiBk
YXRhVmlld0NvbXBhcmUodG5hbWUsIGcsIHMpIHsKKyAgaWYgKCF2aWV3Q29tcGFyZSh0bmFtZSwg
ZywgcykpIHsKKyAgICByZXR1cm4gZmFsc2U7CisgIH0KK30KKworZnVuY3Rpb24gY3JlYXRlQnVm
ZmVyKGxlbmd0aCkgeworICB2YXIgYnVmZmVyID0gbmV3IEFycmF5QnVmZmVyKGxlbmd0aCk7Cisg
IHZhciB2aWV3ID0gbmV3IFVpbnQ4QXJyYXkoYnVmZmVyKTsKKyAgZm9yICh2YXIgaSA9IDA7IGkg
PCBsZW5ndGg7ICsraSkgeworICAgIHZpZXdbaV0gPSBpICsgMTsKKyAgfQorICByZXR1cm4gYnVm
ZmVyOworfQorCitmdW5jdGlvbiBjcmVhdGVUeXBlZEFycmF5KHRhdHlwZSwgbGVuZ3RoKSB7Cisg
IHZhciB2aWV3ID0gbmV3IHRhdHlwZShsZW5ndGgpOworICBmb3IgKHZhciBpID0gMDsgaSA8IGxl
bmd0aDsgKytpKSB7CisgICAgdmlld1tpXSA9IGkgKyAxOworICB9CisgIHJldHVybiB2aWV3Owor
fQorCitmdW5jdGlvbiBjcmVhdGVUeXBlZEFycmF5T3ZlckJ1ZmZlcih0YXR5cGUsIHRhZWx0c2l6
ZSwgbGVuZ3RoLCBzdWJzdGFydCwgc3VibGVuZ3RoKSB7CisgIHZhciBidWZmZXIgPSBuZXcgQXJy
YXlCdWZmZXIobGVuZ3RoICogdGFlbHRzaXplKTsKKyAgaWYgKHN1YnN0YXJ0ID09PSB1bmRlZmlu
ZWQpIHsKKyAgICBzdWJzdGFydCA9IDA7CisgICAgc3VibGVuZ3RoID0gbGVuZ3RoOworICB9Cisg
IHJldHVybiBuZXcgdGF0eXBlKGJ1ZmZlciwgc3Vic3RhcnQgKiB0YWVsdHNpemUsIHN1Ymxlbmd0
aCk7Cit9CisKK3ZhciBiYXNpY0J1ZmZlclR5cGVzID0gWworICBbIkludDMyIiwgSW50MzJBcnJh
eSwgNF0sCisgIFsiVWludDMyIiwgVWludDMyQXJyYXksIDRdLAorICBbIkludDgiLCBJbnQ4QXJy
YXksIDFdLAorICBbIlVpbnQ4IiwgVWludDhBcnJheSwgMV0sCisgIFsiSW50MTYiLCBJbnQxNkFy
cmF5LCAyXSwKKyAgWyJVaW50MTYiLCBVaW50MTZBcnJheSwgMl0sCisgIFsiRmxvYXQzMiIsIEZs
b2F0MzJBcnJheSwgNF0sCisgIFsiRmxvYXQ2NCIsIEZsb2F0NjRBcnJheSwgOF0KK107CisKK3Zh
ciB0ZXN0TGlzdCA9IFsKKyAgWydBcnJheUJ1ZmZlcjAnLCBuZXcgQXJyYXlCdWZmZXIoMCksIGJ1
ZmZlckNvbXBhcmVdLAorICBbJ0FycmF5QnVmZmVyMScsIGNyZWF0ZUJ1ZmZlcigxKSwgYnVmZmVy
Q29tcGFyZV0sCisgIFsnQXJyYXlCdWZmZXIxMjgnLCBjcmVhdGVCdWZmZXIoMTI4KSwgYnVmZmVy
Q29tcGFyZV0sCisgIFsnRGF0YVZpZXcwJywgbmV3IERhdGFWaWV3KG5ldyBBcnJheUJ1ZmZlcigw
KSksIGRhdGFWaWV3Q29tcGFyZV0sCisgIFsnRGF0YVZpZXcxJywgbmV3IERhdGFWaWV3KGNyZWF0
ZUJ1ZmZlcigxKSksIGRhdGFWaWV3Q29tcGFyZV0sCisgIFsnRGF0YVZpZXcxMjgnLCBuZXcgRGF0
YVZpZXcoY3JlYXRlQnVmZmVyKDEyOCkpLCBkYXRhVmlld0NvbXBhcmVdLAorICBbJ0RhdGFWaWV3
MV9vZnNfZW5kJywgbmV3IERhdGFWaWV3KGNyZWF0ZUJ1ZmZlcigxKSwgMSwgMCksIGRhdGFWaWV3
Q29tcGFyZV0sCisgIFsnRGF0YVZpZXcxMjhfb2ZzX2VuZCcsIG5ldyBEYXRhVmlldyhjcmVhdGVC
dWZmZXIoMTI4KSwgMTI4LCAwKSwgZGF0YVZpZXdDb21wYXJlXSwKKyAgWydEYXRhVmlldzEyOF9v
ZnNfc2xpY2UwJywgbmV3IERhdGFWaWV3KGNyZWF0ZUJ1ZmZlcigxMjgpLCA2NCwgMCksIGRhdGFW
aWV3Q29tcGFyZV0sCisgIFsnRGF0YVZpZXcxMjhfb2ZzX3NsaWNlMScsIG5ldyBEYXRhVmlldyhj
cmVhdGVCdWZmZXIoMTI4KSwgNjQsIDEpLCBkYXRhVmlld0NvbXBhcmVdLAorICBbJ0RhdGFWaWV3
MTI4X29mc19zbGljZTE2JywgbmV3IERhdGFWaWV3KGNyZWF0ZUJ1ZmZlcigxMjgpLCA2NCwgMTYp
LCBkYXRhVmlld0NvbXBhcmVdLAorICBbJ0RhdGFWaWV3MTI4X29mc19zbGljZV91bmFsaWduZWQn
LCBuZXcgRGF0YVZpZXcoY3JlYXRlQnVmZmVyKDEyOCksIDYzLCAxNSksIGRhdGFWaWV3Q29tcGFy
ZV0KK107CisKK3Rlc3RMaXN0ID0gdGVzdExpc3QuY29uY2F0KGJhc2ljQnVmZmVyVHlwZXMubWFw
KGZ1bmN0aW9uKHQpCisgIHtyZXR1cm4gW3RbMF0gKyAiXzAiLCBjcmVhdGVUeXBlZEFycmF5KHRb
MV0sIDApLCB0eXBlZEFycmF5Q29tcGFyZV07fSkpOwordGVzdExpc3QgPSB0ZXN0TGlzdC5jb25j
YXQoYmFzaWNCdWZmZXJUeXBlcy5tYXAoZnVuY3Rpb24odCkKKyAge3JldHVybiBbdFswXSArICJf
MSIsIGNyZWF0ZVR5cGVkQXJyYXkodFsxXSwgMSksIHR5cGVkQXJyYXlDb21wYXJlXTt9KSk7Cit0
ZXN0TGlzdCA9IHRlc3RMaXN0LmNvbmNhdChiYXNpY0J1ZmZlclR5cGVzLm1hcChmdW5jdGlvbih0
KQorICB7cmV0dXJuIFt0WzBdICsgIl8xMjgiLCBjcmVhdGVUeXBlZEFycmF5KHRbMV0sIDEyOCks
IHR5cGVkQXJyYXlDb21wYXJlXTt9KSk7Cit0ZXN0TGlzdCA9IHRlc3RMaXN0LmNvbmNhdChiYXNp
Y0J1ZmZlclR5cGVzLm1hcChmdW5jdGlvbih0KQorICB7cmV0dXJuIFt0WzBdICsgIl8wYiIsIGNy
ZWF0ZVR5cGVkQXJyYXlPdmVyQnVmZmVyKHRbMV0sIHRbMl0sIDApLCB0eXBlZEFycmF5Q29tcGFy
ZV07fSkpOwordGVzdExpc3QgPSB0ZXN0TGlzdC5jb25jYXQoYmFzaWNCdWZmZXJUeXBlcy5tYXAo
ZnVuY3Rpb24odCkKKyAge3JldHVybiBbdFswXSArICJfMWIiLCBjcmVhdGVUeXBlZEFycmF5T3Zl
ckJ1ZmZlcih0WzFdLCB0WzJdLCAxKSwgdHlwZWRBcnJheUNvbXBhcmVdO30pKTsKK3Rlc3RMaXN0
ID0gdGVzdExpc3QuY29uY2F0KGJhc2ljQnVmZmVyVHlwZXMubWFwKGZ1bmN0aW9uKHQpCisgIHty
ZXR1cm4gW3RbMF0gKyAiXzEyOGIiLCBjcmVhdGVUeXBlZEFycmF5T3ZlckJ1ZmZlcih0WzFdLCB0
WzJdLCAxMjgpLCB0eXBlZEFycmF5Q29tcGFyZV07fSkpOwordGVzdExpc3QgPSB0ZXN0TGlzdC5j
b25jYXQoYmFzaWNCdWZmZXJUeXBlcy5tYXAoZnVuY3Rpb24odCkKKyAge3JldHVybiBbdFswXSAr
ICJfMWJfb2ZzX2VuZCIsIGNyZWF0ZVR5cGVkQXJyYXlPdmVyQnVmZmVyKHRbMV0sIHRbMl0sIDEs
IDEsIDApLCB0eXBlZEFycmF5Q29tcGFyZV07fSkpOwordGVzdExpc3QgPSB0ZXN0TGlzdC5jb25j
YXQoYmFzaWNCdWZmZXJUeXBlcy5tYXAoZnVuY3Rpb24odCkKKyAge3JldHVybiBbdFswXSArICJf
MTI4Yl9vZnNfZW5kIiwgY3JlYXRlVHlwZWRBcnJheU92ZXJCdWZmZXIodFsxXSwgdFsyXSwgMTI4
LCAxMjgsIDApLCB0eXBlZEFycmF5Q29tcGFyZV07fSkpOwordGVzdExpc3QgPSB0ZXN0TGlzdC5j
b25jYXQoYmFzaWNCdWZmZXJUeXBlcy5tYXAoZnVuY3Rpb24odCkKKyAge3JldHVybiBbdFswXSAr
ICJfMTI4Yl9vZnNfc2xpY2UwIiwgY3JlYXRlVHlwZWRBcnJheU92ZXJCdWZmZXIodFsxXSwgdFsy
XSwgMTI4LCA2NCwgMCksIHR5cGVkQXJyYXlDb21wYXJlXTt9KSk7Cit0ZXN0TGlzdCA9IHRlc3RM
aXN0LmNvbmNhdChiYXNpY0J1ZmZlclR5cGVzLm1hcChmdW5jdGlvbih0KQorICB7cmV0dXJuIFt0
WzBdICsgIl8xMjhiX29mc19zbGljZTEiLCBjcmVhdGVUeXBlZEFycmF5T3ZlckJ1ZmZlcih0WzFd
LCB0WzJdLCAxMjgsIDY0LCAxKSwgdHlwZWRBcnJheUNvbXBhcmVdO30pKTsKK3Rlc3RMaXN0ID0g
dGVzdExpc3QuY29uY2F0KGJhc2ljQnVmZmVyVHlwZXMubWFwKGZ1bmN0aW9uKHQpCisgIHtyZXR1
cm4gW3RbMF0gKyAiXzEyOGJfb2ZzX3NsaWNlMTYiLCBjcmVhdGVUeXBlZEFycmF5T3ZlckJ1ZmZl
cih0WzFdLCB0WzJdLCAxMjgsIDY0LCAxNiksIHR5cGVkQXJyYXlDb21wYXJlXTt9KSk7CisKK2Z1
bmN0aW9uIGRvbmVUZXN0KCkgeworICBpZiAoKyt3aW5kb3cudGVzdHNDb21wbGV0ZSA9PSB0ZXN0
TGlzdC5sZW5ndGgpIHsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgfQorfQorCitmdW5jdGlvbiB3
aW5kb3dIYW5kbGVNZXNzYWdlKGUpIHsKKyAgdmFyIGN1cnJlbnRUZXN0ID0gdGVzdExpc3RbZS5k
YXRhLnRlc3ROdW1dOworICB2YXIgZXhwZWN0ZWRSZXN1bHQgPSBjdXJyZW50VGVzdFsxXTsKKyAg
dHJ5IHsKKyAgICBjdXJyZW50VGVzdFsyXShjdXJyZW50VGVzdFswXSwgZS5kYXRhLnRlc3REYXRh
LCBleHBlY3RlZFJlc3VsdCk7CisgIH0gY2F0Y2goZSkgeworICAgIHRlc3RGYWlsZWQoY3VycmVu
dFRlc3RbMF0gKyAiOiB1bmV4cGVjdGVkIGV4Y2VwdGlvbiAiICsgZSk7CisgIH0KKyAgZG9uZVRl
c3QoKTsKK30KK3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgd2luZG93SGFuZGxl
TWVzc2FnZSk7CisKK2ZvciAodmFyIHQgPSAwOyB0IDwgdGVzdExpc3QubGVuZ3RoOyArK3QpIHsK
KyAgdmFyIGN1cnJlbnRUZXN0ID0gdGVzdExpc3RbdF07CisgIHZhciBtZXNzYWdlID0ge3Rlc3RO
dW06IHQsIHRlc3REYXRhOiBjdXJyZW50VGVzdFsxXX07CisgIGlmICh3aW5kb3cuY2hlYXQpIHsK
KyAgICB3aW5kb3dIYW5kbGVNZXNzYWdlKHtkYXRhOiBtZXNzYWdlfSk7CisgIH0gZWxzZSB7Cisg
ICAgd2luZG93LnBvc3RNZXNzYWdlKG1lc3NhZ2UsICcqJyk7CisgIH0KK30KKworc3VjY2Vzc2Z1
bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorCis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+Cis8L3NjcmlwdD4K
KworPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2lu
ZG93L3dpbmRvdy1wb3N0bWVzc2FnZS1jbG9uZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9XaW5kb3cvd2luZG93LXBvc3RtZXNzYWdlLWNsb25lLWV4cGVjdGVkLnR4dAppbmRl
eCBkMmYwMTQ5Li5hMDRhZTViIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5k
b3cvd2luZG93LXBvc3RtZXNzYWdlLWNsb25lLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXBvc3RtZXNzYWdlLWNsb25lLWV4cGVjdGVkLnR4dApA
QCAtMSw4ICsxLDE1IEBACiBUZXN0cyB0aGF0IHdlIGNsb25lIG9iamVjdCBoaWVyYXJjaGllcwog
Ci1QQVNTOiAncG9zdE1lc3NhZ2UocmVhbGx5RGVlcEFycmF5KScgdGhyZXcgUmFuZ2VFcnJvcjog
TWF4aW11bSBjYWxsIHN0YWNrIHNpemUgZXhjZWVkZWQuCi1QQVNTOiAncG9zdE1lc3NhZ2Uod2lu
ZG93KScgdGhyZXcgVHlwZUVycm9yOiBUeXBlIGVycm9yCitQQVNTOiAncG9zdE1lc3NhZ2UoKGZ1
bmN0aW9uKCl7fSkpJyB0aHJldyBFcnJvcjogREFUQV9DTE9ORV9FUlI6IERPTSBFeGNlcHRpb24g
MjUKK1BBU1M6ICdwb3N0TWVzc2FnZShyZWFsbHlEZWVwQXJyYXkpJyB0aHJldyBFcnJvcjogREFU
QV9DTE9ORV9FUlI6IERPTSBFeGNlcHRpb24gMjUKK1BBU1M6ICdwb3N0TWVzc2FnZSh3aW5kb3cp
JyB0aHJldyBFcnJvcjogREFUQV9DTE9ORV9FUlI6IERPTSBFeGNlcHRpb24gMjUKIFBBU1M6ICdw
b3N0TWVzc2FnZSgoe2dldCBhKCkgeyB0aHJvdyAieCIgfX0pKScgdGhyZXcgeAorUEFTUzogJ3Bv
c3RNZXNzYWdlKGltYWdlRGF0YS5kYXRhKScgdGhyZXcgRXJyb3I6IERBVEFfQ0xPTkVfRVJSOiBE
T00gRXhjZXB0aW9uIDI1CitQQVNTOiAncG9zdE1lc3NhZ2UobXV0YXRlZEltYWdlRGF0YS5kYXRh
KScgdGhyZXcgRXJyb3I6IERBVEFfQ0xPTkVfRVJSOiBET00gRXhjZXB0aW9uIDI1CitQQVNTOiAn
cG9zdE1lc3NhZ2UoKGZ1bmN0aW9uKCkge3JldHVybiB7Z2V0IGEoKSB7IHRocm93ICJhY2Nlc3Nv
ci1leG4iOyB9fTt9KSgpKScgdGhyZXcgYWNjZXNzb3ItZXhuCitQQVNTOiAncG9zdE1lc3NhZ2Uo
KGZ1bmN0aW9uKCkge3ZhciBvYmphID0ge2dldCBwKCkgeyB0aHJvdyAiYWNjZXNzb3ItZXhuIjsg
fX07IHJldHVybiB7Z2V0IGEoKSB7IHJldHVybiBvYmphOyB9fTt9KSgpKScgdGhyZXcgYWNjZXNz
b3ItZXhuCitQQVNTOiBsYXN0SW5kZXggaW5pdGlhbGx5IGNvcnJlY3Q6IHdhcyAzCitQQVNTOiBz
YW5pdHkgb24gZmlsZSByZWZlcmVuY2UgZXF1YWxpdHkKIFBBU1M6IGV2ZW50RGF0YSBpcyBudWxs
IG9mIHR5cGUgb2JqZWN0CiBQQVNTOiBldmVudERhdGEgaXMgdW5kZWZpbmVkIG9mIHR5cGUgdW5k
ZWZpbmVkCiBQQVNTOiBldmVudERhdGEgaXMgMSBvZiB0eXBlIG51bWJlcgpAQCAtMjIsMTcgKzI5
LDg4IEBAIFBBU1M6IGV2ZW50RGF0YSBpcyBhLGEsYixhLGIgb2YgdHlwZSBvYmplY3QKIFBBU1M6
IGV2ZW50RGF0YSBpcyBhLGEsYixbb2JqZWN0IE9iamVjdF0gb2YgdHlwZSBvYmplY3QKIFBBU1M6
IGV2ZW50RGF0YSBpcyAxLDIsMyBvZiB0eXBlIG9iamVjdAogUEFTUzogZXZlbnREYXRhIGlzICws
MSBvZiB0eXBlIG9iamVjdAotUEFTUzogZXZlbnREYXRhIGlzIG51bGwgb2YgdHlwZSBvYmplY3QK
IFBBU1M6IGV2ZW50RGF0YSBpcyAyMDA5LTAyLTEzVDIzOjMxOjMwLjAwMFogb2YgdHlwZSBvYmpl
Y3QKIFBBU1M6IGV2ZW50RGF0YSBpcyBbb2JqZWN0IE9iamVjdF0gb2YgdHlwZSBvYmplY3QKIFBB
U1M6IGV2ZW50RGF0YSBpcyA9PT0gdG8gZXZlbnREYXRhLnNlbGYKIFBBU1M6IGV2ZW50RGF0YSBp
cyA9PT0gdG8gZXZlbnREYXRhWzBdCiBQQVNTOiBldmVudERhdGEuZ3JhcGgxIGlzID09PSB0byBl
dmVudERhdGEuZ3JhcGgyCiBQQVNTOiBldmVudERhdGFbMF0gaXMgPT09IHRvIGV2ZW50RGF0YVsx
XQotUEFTUzogZXZlbnREYXRhIGlzIFtvYmplY3QgQXJyYXldKGRlZmF1bHQgdG9TdHJpbmcgdGhy
ZXcgUmFuZ2VFcnJvcjogTWF4aW11bSBjYWxsIHN0YWNrIHNpemUgZXhjZWVkZWQuKSBvZiB0eXBl
IG9iamVjdAotUEFTUzogZXZlbnREYXRhIGlzIFtvYmplY3QgRmlsZV0gb2YgdHlwZSBvYmplY3QK
LVBBU1M6IGV2ZW50RGF0YSBpcyBbb2JqZWN0IEZpbGVMaXN0XSBvZiB0eXBlIG9iamVjdAorUEFT
UzogZXZlbnREYXRhIGlzIFtvYmplY3QgQXJyYXldKGRlZmF1bHQgdG9TdHJpbmcgdGhyZXcgUmFu
Z2VFcnJvcjogTWF4aW11bSBjYWxsIHN0YWNrIHNpemUgZXhjZWVkZWQpIG9mIHR5cGUgb2JqZWN0
CiBQQVNTOiBldmVudERhdGEgaXMgW29iamVjdCBJbWFnZURhdGFdIG9mIHR5cGUgb2JqZWN0CiBQ
QVNTOiBldmVudERhdGEgaXMgW29iamVjdCBJbWFnZURhdGFdIG9mIHR5cGUgb2JqZWN0CitQQVNT
OiBldmVudERhdGEgaXMgNDIgb2YgdHlwZSBudW1iZXIKK1BBU1M6IGV2ZW50RGF0YSBpcyA0MiBv
ZiB0eXBlIG51bWJlcgorUEFTUzogZXZhbFRodW5rIE9LCitQQVNTOiBldmVudERhdGEgaXMgW29i
amVjdCBPYmplY3RdIG9mIHR5cGUgb2JqZWN0CitQQVNTOiBsZW5ndGggY29ycmVjdAorUEFTUzog
ZXZhbHVhdGlvbiBvcmRlciBPSworUEFTUzogZXZhbHVhdGlvbiBvcmRlciBPSy9hY2Nlc3NvciBy
ZWFjaGVkCitQQVNTOiBldmFsdWF0aW9uIG9yZGVyIE9LCitQQVNTOiBsZW5ndGggY29ycmVjdAor
UEFTUzogaXggMCBPSworUEFTUzogYWNjZXNzb3IgcmVhY2hlZAorUEFTUzogaXggMiB1bmRlZmlu
ZWQKK1BBU1M6IGxlbmd0aCBjb3JyZWN0CitQQVNTOiBpeCAwIE9LCitQQVNTOiBpeCAxIE9LCitQ
QVNTOiBpeCAyIE9LCitQQVNTOiBiYXNpYyBwcm9wZXJ0aWVzIE9LCitQQVNTOiBvbmUgYWNjZXNz
b3Igd2FzIHJ1bgorUEFTUzogcHJvcGVydHkgd2FzIHJlbW92ZWQKK1BBU1M6IHByb3BlcnR5IHdh
cyByZW1vdmVkCitQQVNTOiBhY2Nlc3NvciB3YXMgcnVuCitQQVNTOiBkeW5hbWljIHByb3BlcnR5
IG5vdCBzZW50CitQQVNTOiByZWZlcmVuY2UgZXF1YWxpdHkgcHJlc2VydmVkCitQQVNTOiBhY2Nl
c3NvcnMgdXNlZAorUEFTUzogcmVmZXJlbmNlIGVxdWFsaXR5IHByZXNlcnZlZCAob3Bwb3NpdGUg
b3JkZXIpCitQQVNTOiBhY2Nlc3NvcnMgdXNlZCAob3Bwb3NpdGUgb3JkZXIpCitQQVNTOiBhY2Nl
c3NvciB2YWx1ZSB3YXMgbnVsbGlmaWVkCitQQVNTOiBub24tYWNjZXNzb3IgdmFsdWUgd2FzIG5v
dCBudWxsaWZpZWQKK1BBU1M6IGFjY2Vzc29yIHZhbHVlIHdhcyBudWxsaWZpZWQKK1BBU1M6IG5v
bi1hY2Nlc3NvciB2YWx1ZSB3YXMgbm90IG51bGxpZmllZAorUEFTUzogbm9uLWFjY2Vzc29yIHZh
bHVlIHdhcyBub3QgbnVsbGlmaWVkCitQQVNTOiBhY2Nlc3NvciB2YWx1ZSB3YXMgbnVsbGlmaWVk
CitQQVNTOiBub24tYWNjZXNzb3IgdmFsdWUgd2FzIG5vdCBudWxsaWZpZWQKK1BBU1M6IGFjY2Vz
c29yIHZhbHVlIHdhcyBub3QgbnVsbGlmaWVkCitQQVNTOiBhY2Nlc3NvciB2YWx1ZSB3YXMgbm90
IG51bGxpZmllZAorUEFTUzogYWNjZXNzb3IgdmFsdWUgd2FzIG51bGxpZmllZAorUEFTUzogbm9u
LWFjY2Vzc29yIHZhbHVlIHdhcyBub3QgbnVsbGlmaWVkCitQQVNTOiBub24tYWNjZXNzb3IgdmFs
dWUgd2FzIG5vdCBudWxsaWZpZWQKK1BBU1M6IG5vbi1hY2Nlc3NvciB2YWx1ZSBpcyBkZWZpbmVk
CitQQVNTOiBub24tYWNjZXNzb3IgdmFsdWUgd2FzIG5vdCBudWxsaWZpZWQKK1BBU1M6IG5vbi1h
Y2Nlc3NvciB2YWx1ZSBpcyBkZWZpbmVkCitQQVNTOiBhY2Nlc3NvciB2YWx1ZSB3YXMgbnVsbGlm
aWVkCitQQVNTOiBub24tYWNjZXNzb3IgdmFsdWUgd2FzIG5vdCBudWxsaWZpZWQKK1BBU1M6IGFj
Y2Vzc29yIHZhbHVlIHdhcyBudWxsaWZpZWQKK1BBU1M6IHdpbmRvdy5wY2FsbGVkID09PSB0cnVl
CitQQVNTOiB3aW5kb3cuYWNhbGxlZCA9PT0gdHJ1ZQorUEFTUzogd2luZG93LmJjYWxsZWQgPT09
IHVuZGVmaW5lZAorUEFTUzogRGF0ZSB2YWx1ZXMgY29ycmVjdCAoMCkKK1BBU1M6IERhdGUgdmFs
dWVzIGNvcnJlY3QgKDEpCitQQVNTOiBSZWZlcmVuY2VzIHRvIGRhdGVzIGNvcnJlY3QgKDApCitQ
QVNTOiBSZWZlcmVuY2VzIHRvIGRhdGVzIGNvcnJlY3QgKDEpCitQQVNTOiBSZWdleHAgdmFsdWUg
Y29ycmVjdCAoMCkKK1BBU1M6IFJlZmVyZW5jZXMgdG8gcmVnZXhwcyBjb3JyZWN0ICgwKQorUEFT
UzogUmVmZXJlbmNlcyB0byByZWdleHBzIGNvcnJlY3QgKDEpCitQQVNTOiBnbG9iYWwgc2V0ICgw
KQorUEFTUzogZ2xvYmFsIHNldCAoMSkKK1BBU1M6IGlnbm9yZUNhc2Ugc2V0ICgwKQorUEFTUzog
aWdub3JlQ2FzZSBzZXQgKDEpCitQQVNTOiBtdWx0aWxpbmUgc2V0ICgwKQorUEFTUzogbXVsdGls
aW5lIHNldCAoMSkKK1BBU1M6IGxhc3RJbmRleCBjb3JyZWN0ICgwKQorUEFTUzogbGFzdEluZGV4
IGNvcnJlY3QgKDEpCitQQVNTOiBldmVudERhdGEgaXMgMiBvZiB0eXBlIG51bWJlcgorUEFTUzog
ZmlsZSByZWZlcmVuY2VzIHRyYW5zZmVyCitQQVNTOiBGaWxlTGlzdCBzaG91bGQgbm90IHJlc3Bl
Y3QgcmVmZXJlbmNlIGVxdWFsaXR5CitQQVNTOiBGaWxlTGlzdCBzaG91bGQgbm90IHJlc3BlY3Qg
cmVmZXJlbmNlIGVxdWFsaXR5CitQQVNTOiBGaWxlTGlzdCByZXNwZWN0cyBzZWxmLXJlZmVyZW5j
ZSBlcXVhbGl0eQorUEFTUzogRmlsZUxpc3QgbGVuZ3RoIHNlbnQgY29ycmVjdGx5CitQQVNTOiBG
aWxlTGlzdCBzaG91bGQgbm90IHJlc3BlY3QgcmVmZXJlbmNlIGVxdWFsaXR5ICgwKQorUEFTUzog
RmlsZUxpc3Qgc2hvdWxkIG5vdCByZXNwZWN0IHJlZmVyZW5jZSBlcXVhbGl0eSAoMSkKK1BBU1M6
IEZpbGVMaXN0IHByZXNlcnZlcyBvcmRlciBhbmQgZGF0YSAobmFtZTApCitQQVNTOiBGaWxlTGlz
dCBwcmVzZXJ2ZXMgb3JkZXIgYW5kIGRhdGEgKG5hbWUxKQorUEFTUzogRmlsZUxpc3QgcHJlc2Vy
dmVzIG9yZGVyIGFuZCBkYXRhIChkYXRlMCkKK1BBU1M6IEZpbGVMaXN0IHByZXNlcnZlcyBvcmRl
ciBhbmQgZGF0YSAoZGF0ZTEpCiBQQVNTOiBldmVudERhdGEgaXMgZG9uZSBvZiB0eXBlIHN0cmlu
ZwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXBvc3Rt
ZXNzYWdlLWNsb25lLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXBv
c3RtZXNzYWdlLWNsb25lLmh0bWwKaW5kZXggZjI4MzUxYy4uNThmZmYwYSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wb3N0bWVzc2FnZS1jbG9uZS5odG1s
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcG9zdG1lc3NhZ2UtY2xv
bmUuaHRtbApAQCAtMiw3ICsyLDcgQEAKIDxoZWFkPjwvaGVhZD4KIDxib2R5PgogPGRpdiBpZD0i
ZGVzY3JpcHRpb24iPjwvZGl2PgotPGlucHV0IHR5cGU9ImZpbGUiIGlkPSJmaWxlSW5wdXQiPjwv
aW5wdXQ+Cis8aW5wdXQgdHlwZT0iZmlsZSIgaWQ9ImZpbGVJbnB1dCIgbXVsdGlwbGU+PC9pbnB1
dD4KIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgogPHNjcmlwdD4KIGlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpIHsKQEAgLTEzLDYgKzEzLDcgQEAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikgewogdmFyIGNvbnNvbGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29u
c29sZSIpOwogCiB2YXIgbWVzc2FnZXMgPSBbXTsKK3ZhciBldmFsVGh1bmtzID0gW107CiAKIGZ1
bmN0aW9uIGVxdWFsKGFjdHVhbCwgZXhwZWN0ZWQpCiB7CkBAIC05MCw2ICs5MSwxOCBAQCBmdW5j
dGlvbiBzaG91bGRCZUlkZW50aWNhbChhY3R1YWwsIGV4cGVjdGVkKQogICAgICAgICBjb25zb2xl
LmlubmVySFRNTCArPSAiRkFJTDogIiArIGFjdHVhbCArICIgaXMgbm90ID09PSB0byAiICsgZXhw
ZWN0ZWQgKyAiPGJyPiI7CiB9CiAKK2Z1bmN0aW9uIGRvUGFzcyhtc2cpIHsKKwkgIGNvbnNvbGUu
aW5uZXJIVE1MICs9ICJQQVNTOiAiICsgbXNnICsgIjxicj4iOworfQorCitmdW5jdGlvbiBkb0Zh
aWwobXNnKSB7CisJICBjb25zb2xlLmlubmVySFRNTCArPSAiRkFJTDogIiArIG1zZyArICI8YnI+
IjsJCit9CisKK2Z1bmN0aW9uIGRvUGFzc0ZhaWwocmVzdWx0LCBtc2cpIHsKKyAgICBjb25zb2xl
LmlubmVySFRNTCArPSAocmVzdWx0ID8gIlBBU1M6ICIgOiAiRkFJTDogIikgKyBtc2cgKyAiPGJy
PiI7Cit9CisKIGZ1bmN0aW9uIG9ubWVzc2FnZShldnQpIHsKICAgICBldmVudERhdGEgPSBldnQu
ZGF0YTsKICAgICBpZiAoZXZ0LmRhdGEgIT09IGV2dC5kYXRhKQpAQCAtMTA5LDcgKzEyMiwxNyBA
QCBmdW5jdGlvbiBvbm1lc3NhZ2UoZXZ0KSB7CiAgICAgICAgIHNob3VsZEJlSWRlbnRpY2FsKCJl
dmVudERhdGFbMF0iLCAiZXZlbnREYXRhWzFdIik7CiAgICAgICAgIGJyZWFrOwogICAgIGRlZmF1
bHQ6Ci0gICAgICAgIHNob3VsZEJlKCJldmVudERhdGEiLCBtZXNzYWdlKTsKKwkJaWYgKG1lc3Nh
Z2UgPT0gImV2YWxUaHVuayIpIHsKKwkJCXZhciB0aHVuayA9IGV2YWxUaHVua3Muc2hpZnQoKTsK
KwkJCXRyeSB7CisJCQkgICAgdGh1bmsoZXZlbnREYXRhKTsKKwkJCX0gY2F0Y2goZSkgeworCQkJ
ICAgIGRvRmFpbCgidGhyZXcgZXhjZXB0aW9uOiAiICsgZSk7CisJCQkgICAgdGhyb3cgZTsKKwkJ
CX0KKwkJfSBlbHNlIHsKKyAgICAgICAgCXNob3VsZEJlKCJldmVudERhdGEiLCBtZXNzYWdlKTsK
KwkJfQogICAgIH0KIAogICAgIGlmIChzYWZlVG9TdHJpbmcoZXZ0LmRhdGEpID09ICdkb25lJyAm
JiB3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCkBAIC0xMjYsMTcgKzE0OSwyNCBAQCBDb25z
dHJ1Y3RvcldpdGhQcm90b3R5cGUucHJvdG90eXBlID0gewogICAgIHByb3RvUHJvcGVydHk6IDIw
MTAKIH07CiAKLWZ1bmN0aW9uIHRyeVBvc3RNZXNzYWdlKG1lc3NhZ2UsIHNob3VsZFRocm93LCBl
eHBlY3RlZCkgeworZnVuY3Rpb24gdHJ5UG9zdE1lc3NhZ2UobWVzc2FnZSwgc2hvdWxkVGhyb3cs
IGV4cGVjdGVkLCBleHBlY3RlZEV4Y2VwdGlvbikgewogICAgIHRyeSB7CiAgICAgICAgIHZhciB2
YWx1ZSA9IGV2YWwobWVzc2FnZSk7CiAgICAgICAgIHBvc3RNZXNzYWdlKHZhbHVlLCAiKiIpOwog
ICAgICAgICBpZiAoc2hvdWxkVGhyb3cpCiAgICAgICAgICAgICBjb25zb2xlLmlubmVySFRNTCAr
PSAiRkFJTDogJ3Bvc3RNZXNzYWdlKCIrbWVzc2FnZSsiKScgc2hvdWxkIHRocm93IGJ1dCBkaWRu
J3Q8YnI+IjsKICAgICAgICAgbWVzc2FnZXMucHVzaChleHBlY3RlZCB8fCBtZXNzYWdlKTsKKwkJ
aWYgKGV4cGVjdGVkID09ICJldmFsVGh1bmsiKSB7CisJCQlldmFsVGh1bmtzLnB1c2goZXhwZWN0
ZWRFeGNlcHRpb24pOworCQl9CiAgICAgfSBjYXRjaChlKSB7Ci0gICAgICAgIGlmIChzaG91bGRU
aHJvdykKLSAgICAgICAgICAgIGNvbnNvbGUuaW5uZXJIVE1MICs9ICJQQVNTOiAncG9zdE1lc3Nh
Z2UoIittZXNzYWdlKyIpJyB0aHJldyAiICsgZSArICI8YnI+IjsKLSAgICAgICAgZWxzZQorICAg
ICAgICBpZiAoc2hvdWxkVGhyb3cpIHsKKyAgICAgICAgICAgIGlmIChleHBlY3RlZEV4Y2VwdGlv
biA9PT0gdW5kZWZpbmVkIHx8IGV4cGVjdGVkRXhjZXB0aW9uID09IGUuY29kZSB8fCBleHBlY3Rl
ZEV4Y2VwdGlvbiA9PSBlKSB7CisgICAgICAgICAgICAgICAgY29uc29sZS5pbm5lckhUTUwgKz0g
IlBBU1M6ICdwb3N0TWVzc2FnZSgiK21lc3NhZ2UrIiknIHRocmV3ICIgKyBlICsgIjxicj4iOwor
ICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBjb25zb2xlLmlubmVySFRNTCAr
PSAiRkFJTDogJ3Bvc3RNZXNzYWdlKCIrbWVzc2FnZSsiKScgdGhyZXcgIiArIGUgKyAiLCB3YXMg
ZXhwZWN0aW5nICIgKyBleHBlY3RlZEV4Y2VwdGlvbiArICI8YnI+IjsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICBjb25zb2xlLmlubmVySFRNTCArPSAiRkFJTDog
J3Bvc3RNZXNzYWdlKCIrbWVzc2FnZSsiKScgc2hvdWxkIG5vdCB0aHJvdyBidXQgdGhyZXcgIiAr
IGUgKyAiPGJyPiI7CiAgICAgfQogfQpAQCAtMTYyLDcgKzE5Miw3IEBAIHRyeVBvc3RNZXNzYWdl
KCdbImEiLCAiYSIsICJiIiwgImEiLCAiYiJdJyk7CiB0cnlQb3N0TWVzc2FnZSgnWyJhIiwgImEi
LCAiYiIsIHthOiJiIiwgYjoiYSJ9XScpOwogdHJ5UG9zdE1lc3NhZ2UoJ1sxLDIsM10nKTsKIHRy
eVBvc3RNZXNzYWdlKCdbLCwxXScpOwotdHJ5UG9zdE1lc3NhZ2UoJyhmdW5jdGlvbigpe30pJywg
ZmFsc2UsICdudWxsJyk7Cit0cnlQb3N0TWVzc2FnZSgnKGZ1bmN0aW9uKCl7fSknLCB0cnVlLCBu
dWxsLCBET01FeGNlcHRpb24uREFUQV9DTE9ORV9FUlIpOwogdHJ5UG9zdE1lc3NhZ2UoJ25ldyBE
YXRlKDEyMzQ1Njc4OTAwMDApJyk7CiB0cnlQb3N0TWVzc2FnZSgnbmV3IENvbnN0cnVjdG9yV2l0
aFByb3RvdHlwZSgiZm9vIiknLCBmYWxzZSwgJyh7ZmllbGQ6ImZvbyJ9KScpOwogY3ljbGljT2Jq
ZWN0PXt9OwpAQCAtMTg1LDcgKzIxNSw3IEBAIHRyeVBvc3RNZXNzYWdlKCdkZWVwQXJyYXknKTsK
IHJlYWxseURlZXBBcnJheT1bXTsKIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwOyBpKyspCiAg
ICAgcmVhbGx5RGVlcEFycmF5PVtyZWFsbHlEZWVwQXJyYXldOwotdHJ5UG9zdE1lc3NhZ2UoJ3Jl
YWxseURlZXBBcnJheScsIHRydWUpOwordHJ5UG9zdE1lc3NhZ2UoJ3JlYWxseURlZXBBcnJheScs
IHRydWUsIG51bGwsIERPTUV4Y2VwdGlvbi5EQVRBX0NMT05FX0VSUik7CiB0cnlQb3N0TWVzc2Fn
ZSgnd2luZG93JywgdHJ1ZSk7CiB0cnlQb3N0TWVzc2FnZSgnKHtnZXQgYSgpIHsgdGhyb3cgIngi
IH19KScsIHRydWUpOwogCkBAIC0xOTQsMTEgKzIyNCw5IEBAIGlmICh3aW5kb3cuZXZlbnRTZW5k
ZXIpIHsKICAgICB2YXIgZmlsZVJlY3QgPSBmaWxlSW5wdXQuZ2V0Q2xpZW50UmVjdHMoKVswXTsK
ICAgICB2YXIgdGFyZ2V0WCA9IGZpbGVSZWN0LmxlZnQgKyBmaWxlUmVjdC53aWR0aCAvIDI7CiAg
ICAgdmFyIHRhcmdldFkgPSBmaWxlUmVjdC50b3AgKyBmaWxlUmVjdC5oZWlnaHQgLyAyOwotICAg
IGV2ZW50U2VuZGVyLmJlZ2luRHJhZ1dpdGhGaWxlcyhbJ2dldC1maWxlLXVwbG9hZC5odG1sJ10p
OworICAgIGV2ZW50U2VuZGVyLmJlZ2luRHJhZ1dpdGhGaWxlcyhbJ2dvdC1maWxlLXVwbG9hZC5o
dG1sJywgJ2dvdC1maWxlLXVwbG9hZC0yLmh0bWwnXSk7CiAgICAgZXZlbnRTZW5kZXIubW91c2VN
b3ZlVG8odGFyZ2V0WCwgdGFyZ2V0WSk7CiAgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOwotICAg
IHRyeVBvc3RNZXNzYWdlKCdmaWxlSW5wdXQuZmlsZXNbMF0nLCBmYWxzZSwgZmlsZUlucHV0LmZp
bGVzWzBdKTsKLSAgICB0cnlQb3N0TWVzc2FnZSgnZmlsZUlucHV0LmZpbGVzJywgZmFsc2UsIGZp
bGVJbnB1dC5maWxlcyk7CiB9CiB2YXIgaW1hZ2VEYXRhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgiY2FudmFzIikuZ2V0Q29udGV4dCgiMmQiKS5jcmVhdGVJbWFnZURhdGEoMTAsMTApOwogZm9y
ICh2YXIgaSA9IDA7IGkgPCBpbWFnZURhdGEuZGF0YS5sZW5ndGggKiA0OyBpKyspCkBAIC0yMDcs
MTAgKzIzNSwyMjMgQEAgdmFyIG11dGF0ZWRJbWFnZURhdGEgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCJjYW52YXMiKS5nZXRDb250ZXh0KCIyZCIpLmNyZWF0ZUkKIGZvciAodmFyIGkgPSAwOyBp
IDwgaW1hZ2VEYXRhLmRhdGEubGVuZ3RoICogNDsgaSsrKQogICAgIG11dGF0ZWRJbWFnZURhdGEu
ZGF0YVtpXSA9IGkgJSAyNTY7CiB0cnlQb3N0TWVzc2FnZSgnaW1hZ2VEYXRhJywgZmFsc2UsIGlt
YWdlRGF0YSk7Cit0cnlQb3N0TWVzc2FnZSgnaW1hZ2VEYXRhLmRhdGEnLCB0cnVlLCBudWxsLCBE
T01FeGNlcHRpb24uREFUQV9DTE9ORV9FUlIpCiB0cnlQb3N0TWVzc2FnZSgnbXV0YXRlZEltYWdl
RGF0YScsIGZhbHNlLCBpbWFnZURhdGEpOwordHJ5UG9zdE1lc3NhZ2UoJ211dGF0ZWRJbWFnZURh
dGEuZGF0YScsIHRydWUsIG51bGwsIERPTUV4Y2VwdGlvbi5EQVRBX0NMT05FX0VSUikKIGZvciAo
dmFyIGkgPSAwOyBpIDwgaW1hZ2VEYXRhLmRhdGEubGVuZ3RoICogNDsgaSsrKQogICAgIG11dGF0
ZWRJbWFnZURhdGEuZGF0YVtpXSA9IDA7CiAKK2Z1bmN0aW9uIHRodW5rKHMpIHsKKwkgIHJldHVy
biAiKGZ1bmN0aW9uKCkgeyIgKyBzICsgIn0pKCkiOworfQordHJ5UG9zdE1lc3NhZ2UodGh1bmso
J3JldHVybiA0MjsnKSwgZmFsc2UsICc0MicpOwordHJ5UG9zdE1lc3NhZ2UodGh1bmsoJ3JldHVy
biA0MjsnKSwgZmFsc2UsIHRodW5rKCdyZXR1cm4gNDAgKyAyOycpKTsKK3RyeVBvc3RNZXNzYWdl
KHRodW5rKCdyZXR1cm4gNDI7JyksIGZhbHNlLCAiZXZhbFRodW5rIiwKKyAgICAgICAgICAgICAg
IGZ1bmN0aW9uKHYpIHsgZG9QYXNzRmFpbCh2ID09IDQyLCAiZXZhbFRodW5rIE9LIik7IH0pCisK
Ky8vIE9ubHkgZW51bWVyYWJsZSBwcm9wZXJ0aWVzIHNob3VsZCBiZSBzZXJpYWxpemVkLgordHJ5
UG9zdE1lc3NhZ2UodGh1bmsoJ3ZhciBvID0ge3g6ImhlbGxvIn07IE9iamVjdC5kZWZpbmVQcm9w
ZXJ0eShvLCAieSIsIHt2YWx1ZToiZ29vZGJ5ZSJ9KTsgcmV0dXJuIG87JyksIGZhbHNlLCAnKHt4
OiJoZWxsbyJ9KScpOworCisvLyBJdCdzIHVuY2xlYXIgd2hhdCB3ZSBzaG91bGQgZG8gaWYgYW4g
YWNjZXNzb3IgbW9kaWZpZXMgYW4gb2JqZWN0IG91dCBmcm9tIHVuZGVyIHVzCisvLyB3aGlsZSB3
ZSdyZSBzZXJpYWxpemluZyBpdDsgdGhlIHN0YW5kYXJkIGRvZXMgbWFuZGF0ZSBjZXJ0YWluIGFz
cGVjdHMgYWJvdXQgZXZhbHVhdGlvbgorLy8gb3JkZXIsIHRob3VnaCwgaW5jbHVkaW5nIHRoYXQg
cHJvcGVydGllcyBtdXN0IGJlIHByb2Nlc3NlZCBpbiB0aGVpciBlbnVtZXJhdGlvbiBvcmRlci4K
K3RyeVBvc3RNZXNzYWdlKHRodW5rKAorICAgICAgICAndmFyIGEgPSBbMCwgMSwgMl07ICcgKwor
ICAgICAgICAndmFyIGIgPSB7IGdldCB4KCkgeyBhWzBdID0gNDA7IGFbMl0gPSA0MjsgYS5wdXNo
KDQzKTsgcmV0dXJuIDQxOyB9fTsgJyArCisgICAgICAgICdhWzFdID0gYjsgJyArCisgICAgICAg
ICdyZXR1cm4gYTsnCisgICAgKSwgZmFsc2UsICJldmFsVGh1bmsiLCBmdW5jdGlvbih2KSB7Cisg
ICAgICAgIGRvUGFzc0ZhaWwodi5sZW5ndGggPT09IDMsICJsZW5ndGggY29ycmVjdCIpOyAvLyB1
bmRlZmluZWQKKyAgICAgICAgZG9QYXNzRmFpbCh2WzBdID09PSAwLCAiZXZhbHVhdGlvbiBvcmRl
ciBPSyIpOyAvLyBtYW5kYXRvcnkKKyAgICAgICAgZG9QYXNzRmFpbCh2WzFdLnggPT09IDQxLCAi
ZXZhbHVhdGlvbiBvcmRlciBPSy9hY2Nlc3NvciByZWFjaGVkIik7IC8vIG1hbmRhdG9yeQorICAg
ICAgICBkb1Bhc3NGYWlsKHZbMl0gPT09IDQyLCAiZXZhbHVhdGlvbiBvcmRlciBPSyIpOyAvLyBt
YW5kYXRvcnkKKyAgICB9KTsKKwordHJ5UG9zdE1lc3NhZ2UodGh1bmsoCisgICAgICAgICd2YXIg
YSA9IFswLCAxLCAyXTsgJyArCisgICAgICAgICd2YXIgYiA9IHsgZ2V0IHgoKSB7IGEucG9wKCk7
IHJldHVybiA0MTsgfSB9OyAnICsKKyAgICAgICAgJ2FbMV0gPSBiOyAnICsKKyAgICAgICAgJ3Jl
dHVybiBhOycKKyAgICApLCBmYWxzZSwgImV2YWxUaHVuayIsIGZ1bmN0aW9uKHYpIHsKKyAgICAg
ICAgZG9QYXNzRmFpbCh2Lmxlbmd0aCA9PT0gMywgImxlbmd0aCBjb3JyZWN0Iik7IC8vIHVuZGVm
aW5lZAorICAgICAgICBkb1Bhc3NGYWlsKHZbMF0gPT09IDAsICJpeCAwIE9LIik7IC8vIG1hbmRh
dG9yeQorICAgICAgICBkb1Bhc3NGYWlsKHZbMV0ueCA9PT0gNDEsICJhY2Nlc3NvciByZWFjaGVk
Iik7IC8vIG1hbmRhdG9yeQorICAgICAgICBkb1Bhc3NGYWlsKHZbMl0gPT09IHVuZGVmaW5lZCwg
Iml4IDIgdW5kZWZpbmVkIik7IC8vIHVuZGVmaW5lZAorICAgIH0pOworCit0cnlQb3N0TWVzc2Fn
ZSh0aHVuaygKKyAgICAgICAgJ3ZhciBhID0gWzAsIDEsIDJdOyAnICsKKyAgICAgICAgJ3ZhciBi
ID0geyBnZXQgeCgpIHsgYS5wb3AoKTsgcmV0dXJuIDQxOyB9IH07ICcgKworICAgICAgICAnYVsy
XSA9IGI7ICcgKworICAgICAgICAncmV0dXJuIGE7JworICAgICksIGZhbHNlLCAiZXZhbFRodW5r
IiwgZnVuY3Rpb24odikgeworICAgICAgICBkb1Bhc3NGYWlsKHYubGVuZ3RoID09PSAzLCAibGVu
Z3RoIGNvcnJlY3QiKTsgLy8gdW5kZWZpbmVkCisgICAgICAgIGRvUGFzc0ZhaWwodlswXSA9PT0g
MCwgIml4IDAgT0siKTsgLy8gbWFuZGF0b3J5CisgICAgICAgIGRvUGFzc0ZhaWwodlsxXSA9PT0g
MSwgIml4IDEgT0siKTsgLy8gbWFuZGF0b3J5CisgICAgICAgIGRvUGFzc0ZhaWwodlsyXS54ID09
PSA0MSwgIml4IDIgT0siKTsgLy8gdW5kZWZpbmVkCisgICAgfSk7CisKKy8vIE5vdyB3aXRoIG9i
amVjdHMhIFRoaXMgaXMgYSBsaXR0bGUgbW9yZSB0cmlja3kgYmVjYXVzZSB0aGUgc3RhbmRhcmQg
ZG9lcyBub3QKKy8vIGRlZmluZSBhbiBlbnVtZXJhdGlvbiBvcmRlci4KK3RyeVBvc3RNZXNzYWdl
KHRodW5rKAorICAgICAgICAndmFyIGEgPSB7cDA6IDAsIHAxOiAxfTsgJyArCisgICAgICAgICdP
YmplY3QuZGVmaW5lUHJvcGVydHkoYSwgInAyIiwge2dldDpmdW5jdGlvbigpIHtkZWxldGUgYS5w
MzsgcmV0dXJuIDQyOyB9LCBlbnVtZXJhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWV9KTsg
JyArCisgICAgICAgICdPYmplY3QuZGVmaW5lUHJvcGVydHkoYSwgInAzIiwge2dldDpmdW5jdGlv
bigpIHtkZWxldGUgYS5wMjsgcmV0dXJuIDQzOyB9LCBlbnVtZXJhYmxlOiB0cnVlLCBjb25maWd1
cmFibGU6IHRydWV9KTsgJyArCisgICAgICAgICdPYmplY3QuZGVmaW5lUHJvcGVydHkoYSwgInA0
Iiwge2dldDpmdW5jdGlvbigpIHsgYS5wNSA9IDQ1OyByZXR1cm4gNDQ7IH0sIGVudW1lcmFibGU6
IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZX0pOyAnICsKKyAgICAgICAgJ3JldHVybiBhOycKKyAg
ICApLCBmYWxzZSwgImV2YWxUaHVuayIsIGZ1bmN0aW9uKHYpIHsKKyAgICAgICAgZG9QYXNzRmFp
bCh2LnAwID09PSAwICYmIHYucDEgPT09IDEsICJiYXNpYyBwcm9wZXJ0aWVzIE9LIik7IC8vIG1h
bmRhdG9yeQorICAgICAgICBkb1Bhc3NGYWlsKHYucDIgPT09IHVuZGVmaW5lZCAmJiB2LnAzICE9
PSB1bmRlZmluZWQgfHwKKyAgICAgICAgICAgICAgICAgICB2LnAyICE9PSB1bmRlZmluZWQgJiYg
di5wMyA9PT0gdW5kZWZpbmVkLCAib25lIGFjY2Vzc29yIHdhcyBydW4iKTsgLy8gbWFuZGF0b3J5
CisgICAgICAgIGRvUGFzc0ZhaWwodi5wMiAhPT0gdW5kZWZpbmVkIHx8IE9iamVjdC5nZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3IodiwgInAyIikgPT09IHVuZGVmaW5lZCwgInByb3BlcnR5IHdhcyBy
ZW1vdmVkIik7IC8vIHVuZGVmaW5lZAorICAgICAgICBkb1Bhc3NGYWlsKHYucDMgIT09IHVuZGVm
aW5lZCB8fCBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHYsICJwMyIpID09PSB1bmRl
ZmluZWQsICJwcm9wZXJ0eSB3YXMgcmVtb3ZlZCIpOyAvLyB1bmRlZmluZWQKKyAgICAgICAgZG9Q
YXNzRmFpbCh2LnA0ID09PSA0NCwgImFjY2Vzc29yIHdhcyBydW4iKTsgLy8gbWFuZGF0b3J5Cisg
ICAgICAgIGRvUGFzc0ZhaWwoT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih2LCAicDUi
KSA9PT0gdW5kZWZpbmVkLCAiZHluYW1pYyBwcm9wZXJ0eSBub3Qgc2VudCIpOyAvLyB1bmRlZmlu
ZWQKKyAgICB9KTsKKworLy8gT2JqZWN0cyByZXR1cm5lZCBmcm9tIGFjY2Vzc29ycyBzaG91bGQg
c3RpbGwgYmUgY29hbGVzY2VkLgordHJ5UG9zdE1lc3NhZ2UodGh1bmsoCisgICAgICAgICd2YXIg
b2JqYSA9IHtnZXQgcCgpIHsgcmV0dXJuIDQyOyB9fTsgJyArCisgICAgICAgICd2YXIgbXNnID0g
e2dldCBhKCkgeyByZXR1cm4gb2JqYTsgfSwgYjogb2JqYX07ICcgKworICAgICAgICAncmV0dXJu
IG1zZzsnCisgICAgKSwgZmFsc2UsICJldmFsVGh1bmsiLCBmdW5jdGlvbih2KSB7CisgIAkgICAg
Ly8gSW50ZXJlc3RpbmdseSwgdGhlIHN0YW5kYXJkIGFkbWl0cyB0d28gYW5zd2VycyBoZXJlIQor
ICAJICAgIGRvUGFzc0ZhaWwodi5hID09PSB2LmIsICJyZWZlcmVuY2UgZXF1YWxpdHkgcHJlc2Vy
dmVkIik7CisgIAkgICAgZG9QYXNzRmFpbCgodi5iLnAgPT09IDQyICYmIHYuYS5wID09PSA0Mikg
fHwKKyAgCSAgICAgICAgICAgICAgICh2LmIucCA9PT0gbnVsbCAmJiB2LmEucCA9PT0gbnVsbCks
ICJhY2Nlc3NvcnMgdXNlZCIpOworICAgIH0pOwordHJ5UG9zdE1lc3NhZ2UodGh1bmsoCisgICAg
ICAgICd2YXIgb2JqYSA9IHtnZXQgcCgpIHsgcmV0dXJuIDQyOyB9fTsgJyArCisgICAgICAgICd2
YXIgbXNnID0ge2E6IG9iamEsIGdldCBiKCkgeyByZXR1cm4gb2JqYTsgfX07ICcgKworICAgICAg
ICAncmV0dXJuIG1zZzsnCisgICAgKSwgZmFsc2UsICJldmFsVGh1bmsiLCBmdW5jdGlvbih2KSB7
CisgICAgICAgIC8vIEludGVyZXN0aW5nbHksIHRoZSBzdGFuZGFyZCBhZG1pdHMgdHdvIGFuc3dl
cnMgaGVyZSEKKyAgICAgICAgZG9QYXNzRmFpbCh2LmEgPT09IHYuYiwgInJlZmVyZW5jZSBlcXVh
bGl0eSBwcmVzZXJ2ZWQgKG9wcG9zaXRlIG9yZGVyKSIpOworICAgICAgICBkb1Bhc3NGYWlsKCh2
LmIucCA9PT0gNDIgJiYgdi5hLnAgPT09IDQyKSB8fAorICAgICAgICAgICAgICAgICAgICh2LmIu
cCA9PT0gbnVsbCAmJiB2LmEucCA9PT0gbnVsbCksICJhY2Nlc3NvcnMgdXNlZCAob3Bwb3NpdGUg
b3JkZXIpIik7CisgICAgfSk7CisvLyBXZSBzaG91bGQgbnVsbGlmeSB0aGUgcmVzdWx0cyBmcm9t
IGFjY2Vzc29ycyBtb3JlIHRoYW4gb25lIGxldmVsIGRlZXAsCisvLyBidXQgbGVhdmUgb3RoZXIg
ZmllbGRzIHVudG91Y2hlZC4KK3RyeVBvc3RNZXNzYWdlKHRodW5rKAorICAgICAgICAndmFyIG9i
amEgPSB7Z2V0IHAoKSB7IHJldHVybiA0MjsgfSwgcTogNDN9OyAnICsKKyAgICAgICAgJ3JldHVy
biB7Z2V0IGEoKSB7IHJldHVybiBvYmphOyB9fTsnCisgICAgKSwgZmFsc2UsICJldmFsVGh1bmsi
LCBmdW5jdGlvbih2KSB7CisgICAgICAgIGRvUGFzc0ZhaWwodi5hLnAgPT09IG51bGwsICJhY2Nl
c3NvciB2YWx1ZSB3YXMgbnVsbGlmaWVkIik7CisgICAgICAgIGRvUGFzc0ZhaWwodi5hLnEgPT09
IDQzLCAibm9uLWFjY2Vzc29yIHZhbHVlIHdhcyBub3QgbnVsbGlmaWVkIik7CisgICAgfSk7Cit0
cnlQb3N0TWVzc2FnZSh0aHVuaygKKyAgICAgICAgJ3ZhciBvYmpiID0ge2dldCByKCkgeyByZXR1
cm4gNDQ7IH0sIHQ6IDQ1fTsgJyArCisgICAgICAgICd2YXIgb2JqYSA9IHtnZXQgcCgpIHsgcmV0
dXJuIDQyOyB9LCBxOiA0Mywgczogb2JqYn07ICcgKworICAgICAgICAncmV0dXJuIHtnZXQgYSgp
IHsgcmV0dXJuIG9iamE7IH19OycKKyAgICApLCBmYWxzZSwgImV2YWxUaHVuayIsIGZ1bmN0aW9u
KHYpIHsKKyAgICAgICAgZG9QYXNzRmFpbCh2LmEucCA9PT0gbnVsbCwgImFjY2Vzc29yIHZhbHVl
IHdhcyBudWxsaWZpZWQiKTsKKyAgICAgICAgZG9QYXNzRmFpbCh2LmEucSA9PT0gNDMsICJub24t
YWNjZXNzb3IgdmFsdWUgd2FzIG5vdCBudWxsaWZpZWQiKTsKKyAgICAgICAgZG9QYXNzRmFpbCh2
LnMgIT09IG51bGwsICJub24tYWNjZXNzb3IgdmFsdWUgd2FzIG5vdCBudWxsaWZpZWQiKTsKKyAg
ICAgICAgZG9QYXNzRmFpbCh2LmEucy5yID09PSBudWxsLCAiYWNjZXNzb3IgdmFsdWUgd2FzIG51
bGxpZmllZCIpOworICAgICAgICBkb1Bhc3NGYWlsKHYuYS5zLnQgPT09IDQ1LCAibm9uLWFjY2Vz
c29yIHZhbHVlIHdhcyBub3QgbnVsbGlmaWVkIik7CisgICAgfSk7Cit0cnlQb3N0TWVzc2FnZSh0
aHVuaygKKyAgICAgICAgJ3ZhciBvYmpiID0ge2dldCByKCkgeyByZXR1cm4gNDQ7IH0sIHQ6IDQ1
fTsgJyArCisgICAgICAgICd2YXIgb2JqYSA9IHtnZXQgcCgpIHsgcmV0dXJuIDQyOyB9LCBxOiA0
MywgczogW29iamJdfTsgJyArCisgICAgICAgICdyZXR1cm4ge2dldCBjKCkgeyByZXR1cm4gNDc7
IH0sIGdldCBhKCkgeyByZXR1cm4gb2JqYTsgfSwgZ2V0IGIoKSB7IHJldHVybiA0NjsgfSB9OycK
KyAgICApLCBmYWxzZSwgImV2YWxUaHVuayIsIGZ1bmN0aW9uKHYpIHsKKyAgICAgICAgZG9QYXNz
RmFpbCh2LmIgPT09IDQ2LCAiYWNjZXNzb3IgdmFsdWUgd2FzIG5vdCBudWxsaWZpZWQiKTsKKyAg
ICAgICAgZG9QYXNzRmFpbCh2LmMgPT09IDQ3LCAiYWNjZXNzb3IgdmFsdWUgd2FzIG5vdCBudWxs
aWZpZWQiKTsKKyAgICAgICAgZG9QYXNzRmFpbCh2LmEucCA9PT0gbnVsbCwgImFjY2Vzc29yIHZh
bHVlIHdhcyBudWxsaWZpZWQiKTsKKyAgICAgICAgZG9QYXNzRmFpbCh2LmEucSA9PT0gNDMsICJu
b24tYWNjZXNzb3IgdmFsdWUgd2FzIG5vdCBudWxsaWZpZWQiKTsKKyAgICAgICAgZG9QYXNzRmFp
bCh2LmEucyAhPT0gbnVsbCwgIm5vbi1hY2Nlc3NvciB2YWx1ZSB3YXMgbm90IG51bGxpZmllZCIp
OworICAgICAgICBkb1Bhc3NGYWlsKHYuYS5zICE9PSB1bmRlZmluZWQsICJub24tYWNjZXNzb3Ig
dmFsdWUgaXMgZGVmaW5lZCIpOworICAgICAgICBkb1Bhc3NGYWlsKHYuYS5zWzBdICE9PSBudWxs
LCAibm9uLWFjY2Vzc29yIHZhbHVlIHdhcyBub3QgbnVsbGlmaWVkIik7CisgICAgICAgIGRvUGFz
c0ZhaWwodi5hLnNbMF0gIT09IHVuZGVmaW5lZCwgIm5vbi1hY2Nlc3NvciB2YWx1ZSBpcyBkZWZp
bmVkIik7CisgICAgICAgIGRvUGFzc0ZhaWwodi5hLnNbMF0uciA9PT0gbnVsbCwgImFjY2Vzc29y
IHZhbHVlIHdhcyBudWxsaWZpZWQiKTsKKyAgICAgICAgZG9QYXNzRmFpbCh2LmEuc1swXS50ID09
PSA0NSwgIm5vbi1hY2Nlc3NvciB2YWx1ZSB3YXMgbm90IG51bGxpZmllZCIpOworICAgIH0pOwor
CisvLyBXZSBuZWVkIHRvIHBhc3Mgb3V0IHRoZSBleGNlcHRpb24gcmFpc2VkIGZyb20gaW50ZXJu
YWwgYWNjZXNzb3JzLgordHJ5UG9zdE1lc3NhZ2UodGh1bmsoCisgICAgICAgICdyZXR1cm4ge2dl
dCBhKCkgeyB0aHJvdyAiYWNjZXNzb3ItZXhuIjsgfX07JworICAgICksIHRydWUsIG51bGwsICdh
Y2Nlc3Nvci1leG4nKTsKKy8vIFdlIHNob3VsZCBzdGlsbCByZXR1cm4gdGhlIGV4Y2VwdGlvbiBy
YWlzZWQgZnJvbSBudWxsZWQtb3V0IGFjY2Vzc29ycy4KK3RyeVBvc3RNZXNzYWdlKHRodW5rKAor
ICAgICAgICAndmFyIG9iamEgPSB7Z2V0IHAoKSB7IHRocm93ICJhY2Nlc3Nvci1leG4iOyB9fTsg
JyArCisgICAgICAgICdyZXR1cm4ge2dldCBhKCkgeyByZXR1cm4gb2JqYTsgfX07JworICAgICks
IHRydWUsIG51bGwsICdhY2Nlc3Nvci1leG4nKTsKKy8vIFdlIHNob3VsZCBydW4gdGhlIGZpcnN0
IG51bGxpZmllZCBhY2Nlc3NvciwgYnV0IG5vIG1vcmUuCit0cnlQb3N0TWVzc2FnZSh0aHVuaygK
KyAgICAgICAgJ3dpbmRvdy5iY2FsbGVkID0gdW5kZWZpbmVkOyAnICsKKyAgICAgICAgJ3dpbmRv
dy5hY2FsbGVkID0gdW5kZWZpbmVkOyAnICsKKyAgICAgICAgJ3dpbmRvdy5wY2FsbGVkID0gdW5k
ZWZpbmVkOyAnICsKKyAgICAgICAgJ3ZhciBvYmpiID0ge2dldCBiKCkgeyB3aW5kb3cuYmNhbGxl
ZCA9IHRydWU7IHJldHVybiA0MjsgfX07ICcgKworICAgICAgICAndmFyIG9iamEgPSB7Z2V0IGEo
KSB7IHdpbmRvdy5hY2FsbGVkID0gdHJ1ZTsgcmV0dXJuIG9iamI7IH19OyAnICsKKyAgICAgICAg
J3JldHVybiB7IGdldCBwKCkgeyB3aW5kb3cucGNhbGxlZCA9IHRydWU7IHJldHVybiBvYmphOyB9
fTsnCisgICAgKSwgZmFsc2UsICJldmFsVGh1bmsiLCBmdW5jdGlvbih2KSB7CisgICAgICAgIGRv
UGFzc0ZhaWwodi5wLmEgPT09IG51bGwsICJhY2Nlc3NvciB2YWx1ZSB3YXMgbnVsbGlmaWVkIik7
CisgICAgICAgIGRvUGFzc0ZhaWwod2luZG93LnBjYWxsZWQgPT09IHRydWUsICJ3aW5kb3cucGNh
bGxlZCA9PT0gdHJ1ZSIpOworICAgICAgICBkb1Bhc3NGYWlsKHdpbmRvdy5hY2FsbGVkID09PSB0
cnVlLCAid2luZG93LmFjYWxsZWQgPT09IHRydWUiKTsKKyAgICAgICAgZG9QYXNzRmFpbCh3aW5k
b3cuYmNhbGxlZCA9PT0gdW5kZWZpbmVkLCAid2luZG93LmJjYWxsZWQgPT09IHVuZGVmaW5lZCIp
OworICAgIH0pOworCisvLyBSZWZlcmVuY2UgZXF1YWxpdHkgYmV0d2VlbiBkYXRlcyBtdXN0IGJl
IG1haW50YWluZWQuCit0cnlQb3N0TWVzc2FnZSh0aHVuaygKKyAgICAgICAgJ3ZhciBkMSA9IG5l
dyBEYXRlKDEsMiwzKTsgJyArCisgICAgICAgICd2YXIgZDIgPSBuZXcgRGF0ZSgxLDIsMyk7ICcg
KworICAgICAgICAncmV0dXJuIFtkMSxkMSxkMl07JworICAgICksIGZhbHNlLCAiZXZhbFRodW5r
IiwgZnVuY3Rpb24odikgeworICAgICAgICBkb1Bhc3NGYWlsKGVxdWFsKHZbMF0sIG5ldyBEYXRl
KDEsMiwzKSksICJEYXRlIHZhbHVlcyBjb3JyZWN0ICgwKSIpOworICAgICAgICBkb1Bhc3NGYWls
KGVxdWFsKHZbMF0sIHZbMl0pLCAiRGF0ZSB2YWx1ZXMgY29ycmVjdCAoMSkiKTsKKyAgICAgICAg
ZG9QYXNzRmFpbCh2WzBdID09PSB2WzFdLCAiUmVmZXJlbmNlcyB0byBkYXRlcyBjb3JyZWN0ICgw
KSIpOworICAgICAgICBkb1Bhc3NGYWlsKHZbMF0gIT09IHZbMl0sICJSZWZlcmVuY2VzIHRvIGRh
dGVzIGNvcnJlY3QgKDEpIik7CisgICAgfSk7CisKKy8vIFJlZmVyZW5jZSBlcXVhbGl0eSBiZXR3
ZWVuIHJlZ2V4cHMgbXVzdCBiZSBwcmVzZXJ2ZWQuCit0cnlQb3N0TWVzc2FnZSh0aHVuaygKKyAg
ICAgICAgJ3ZhciByeDEgPSBuZXcgUmVnRXhwKCJmb28iKTsgJyArCisgICAgICAgICd2YXIgcngy
ID0gbmV3IFJlZ0V4cCgiZm9vIik7ICcgKworICAgICAgICAndmFyIHJ4MyA9IG5ldyBSZWdFeHAo
ImZvbyIsICJnaW0iKTsgJyArCisgICAgICAgICdyeDMuZXhlYygiZm9vZm9vZm9vIik7ICcgKwor
ICAgICAgICAnZG9QYXNzRmFpbChyeDMubGFzdEluZGV4ID09PSAzLCAibGFzdEluZGV4IGluaXRp
YWxseSBjb3JyZWN0OiB3YXMgIiArIHJ4My5sYXN0SW5kZXgpOyAnICsKKyAgICAgICAgJ3JldHVy
biBbcngxLHJ4MSxyeDIscngzXTsnCisgICAgKSwgZmFsc2UsICJldmFsVGh1bmsiLCBmdW5jdGlv
bih2KSB7CisgICAgICAgIGRvUGFzc0ZhaWwodlswXS5zb3VyY2UgPT09ICJmb28iLCAiUmVnZXhw
IHZhbHVlIGNvcnJlY3QgKDApIik7CisgICAgICAgIGRvUGFzc0ZhaWwodlswXSA9PT0gdlsxXSwg
IlJlZmVyZW5jZXMgdG8gcmVnZXhwcyBjb3JyZWN0ICgwKSIpOworICAgICAgICBkb1Bhc3NGYWls
KHZbMF0gIT09IHZbMl0sICJSZWZlcmVuY2VzIHRvIHJlZ2V4cHMgY29ycmVjdCAoMSkiKTsKKyAg
ICAgICAgZG9QYXNzRmFpbCh2WzBdLmdsb2JhbCA9PT0gZmFsc2UsICJnbG9iYWwgc2V0ICgwKSIp
OworICAgICAgICBkb1Bhc3NGYWlsKHZbM10uZ2xvYmFsID09PSB0cnVlLCAiZ2xvYmFsIHNldCAo
MSkiKTsKKyAgICAgICAgZG9QYXNzRmFpbCh2WzBdLmlnbm9yZUNhc2UgPT09IGZhbHNlLCAiaWdu
b3JlQ2FzZSBzZXQgKDApIik7CisgICAgICAgIGRvUGFzc0ZhaWwodlszXS5pZ25vcmVDYXNlID09
PSB0cnVlLCAiaWdub3JlQ2FzZSBzZXQgKDEpIik7CisgICAgICAgIGRvUGFzc0ZhaWwodlswXS5t
dWx0aWxpbmUgPT09IGZhbHNlLCAibXVsdGlsaW5lIHNldCAoMCkiKTsKKyAgICAgICAgZG9QYXNz
RmFpbCh2WzNdLm11bHRpbGluZSA9PT0gdHJ1ZSwgIm11bHRpbGluZSBzZXQgKDEpIik7CisgICAg
ICAgIGRvUGFzc0ZhaWwodlswXS5sYXN0SW5kZXggPT09IDAsICJsYXN0SW5kZXggY29ycmVjdCAo
MCkiKTsKKyAgICAgICAgZG9QYXNzRmFpbCh2WzNdLmxhc3RJbmRleCA9PT0gMCwgImxhc3RJbmRl
eCBjb3JyZWN0ICgxKSIpOworICAgIH0pOworCitpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7Cisg
ICAgdHJ5UG9zdE1lc3NhZ2UodGh1bmsoCisgICAgICAgICd3aW5kb3cuZmlsZUxpc3QgPSBmaWxl
SW5wdXQuZmlsZXM7ICcgKworICAgICAgICAnd2luZG93LmZpbGUwID0gZmlsZUxpc3RbMF07ICcg
KworICAgICAgICAnd2luZG93LmZpbGUxID0gZmlsZUxpc3RbMV07ICcgKworICAgICAgICAncmV0
dXJuIHdpbmRvdy5maWxlTGlzdC5sZW5ndGgnKSwgZmFsc2UsIDIpOworICAgIGRvUGFzc0ZhaWwo
d2luZG93LmZpbGVMaXN0WzBdID09PSB3aW5kb3cuZmlsZTAsICJzYW5pdHkgb24gZmlsZSByZWZl
cmVuY2UgZXF1YWxpdHkiKQorICAgIC8vIFRoZSBzdGFuZGFyZCBtYW5kYXRlcyB0aGF0IHdlIGRv
IF9ub3RfIG1haW50YWluIHJlZmVyZW5jZSBlcXVhbGl0eSBmb3IgZmlsZXMgaW4gYSB0cmFuc2Zl
cnJlZCBGaWxlTGlzdC4KKyAgICB0cnlQb3N0TWVzc2FnZSh0aHVuaygncmV0dXJuIFt3aW5kb3cu
ZmlsZTAsIHdpbmRvdy5maWxlMF07JworICAgICAgICApLCBmYWxzZSwgImV2YWxUaHVuayIsIGZ1
bmN0aW9uKHYpIHsgZG9QYXNzRmFpbCh2WzBdID09PSB2WzFdLCAiZmlsZSByZWZlcmVuY2VzIHRy
YW5zZmVyIil9KTsKKyAgICB0cnlQb3N0TWVzc2FnZSh0aHVuaygncmV0dXJuIFt3aW5kb3cuZmls
ZUxpc3QsIHdpbmRvdy5maWxlMF07JworICAgICAgICApLCBmYWxzZSwgImV2YWxUaHVuayIsIGZ1
bmN0aW9uKHYpIHsgZG9QYXNzRmFpbCh2WzBdWzBdICE9PSB2WzFdLCAiRmlsZUxpc3Qgc2hvdWxk
IG5vdCByZXNwZWN0IHJlZmVyZW5jZSBlcXVhbGl0eSIpfSk7CisgICAgdHJ5UG9zdE1lc3NhZ2Uo
dGh1bmsoJ3JldHVybiBbd2luZG93LmZpbGUwLCB3aW5kb3cuZmlsZUxpc3RdOycKKyAgICAgICAg
KSwgZmFsc2UsICJldmFsVGh1bmsiLCBmdW5jdGlvbih2KSB7IGRvUGFzc0ZhaWwodlsxXVswXSAh
PT0gdlswXSwgIkZpbGVMaXN0IHNob3VsZCBub3QgcmVzcGVjdCByZWZlcmVuY2UgZXF1YWxpdHki
KX0pOworICAgIHRyeVBvc3RNZXNzYWdlKHRodW5rKCdyZXR1cm4gW3dpbmRvdy5maWxlTGlzdCwg
d2luZG93LmZpbGVMaXN0XTsnCisgICAgICAgICksIGZhbHNlLCAiZXZhbFRodW5rIiwgZnVuY3Rp
b24odikgeyBkb1Bhc3NGYWlsKHZbMF0gPT09IHZbMV0sICJGaWxlTGlzdCByZXNwZWN0cyBzZWxm
LXJlZmVyZW5jZSBlcXVhbGl0eSIpfSk7CisgICAgdHJ5UG9zdE1lc3NhZ2UodGh1bmsoJ3JldHVy
biBbd2luZG93LmZpbGVMaXN0LCB3aW5kb3cuZmlsZTAsIHdpbmRvdy5maWxlMV0nCisgICAgICAg
ICksIGZhbHNlLCAiZXZhbFRodW5rIiwgZnVuY3Rpb24odikgeworICAgICAgICAgICAgZG9QYXNz
RmFpbCh2WzBdLmxlbmd0aCA9PT0gd2luZG93LmZpbGVMaXN0Lmxlbmd0aCwgIkZpbGVMaXN0IGxl
bmd0aCBzZW50IGNvcnJlY3RseSIpOworICAgICAgICAgICAgZG9QYXNzRmFpbCh2WzBdWzBdICE9
PSB2WzFdLCAiRmlsZUxpc3Qgc2hvdWxkIG5vdCByZXNwZWN0IHJlZmVyZW5jZSBlcXVhbGl0eSAo
MCkiKTsKKyAgICAgICAgICAgIGRvUGFzc0ZhaWwodlswXVsxXSAhPT0gdlsyXSwgIkZpbGVMaXN0
IHNob3VsZCBub3QgcmVzcGVjdCByZWZlcmVuY2UgZXF1YWxpdHkgKDEpIik7CisgICAgICAgICAg
ICBkb1Bhc3NGYWlsKHZbMF1bMF0ubmFtZSA9PSB3aW5kb3cuZmlsZTAubmFtZSwgIkZpbGVMaXN0
IHByZXNlcnZlcyBvcmRlciBhbmQgZGF0YSAobmFtZTApIik7CisgICAgICAgICAgICBkb1Bhc3NG
YWlsKHZbMF1bMV0ubmFtZSA9PSB3aW5kb3cuZmlsZTEubmFtZSwgIkZpbGVMaXN0IHByZXNlcnZl
cyBvcmRlciBhbmQgZGF0YSAobmFtZTEpIik7CisgICAgICAgICAgICBkb1Bhc3NGYWlsKGVxdWFs
KHZbMF1bMF0ubGFzdE1vZGlmaWVkRGF0ZSwgd2luZG93LmZpbGUwLmxhc3RNb2RpZmllZERhdGUp
LCAiRmlsZUxpc3QgcHJlc2VydmVzIG9yZGVyIGFuZCBkYXRhIChkYXRlMCkiKTsKKyAgICAgICAg
ICAgIGRvUGFzc0ZhaWwoZXF1YWwodlswXVsxXS5sYXN0TW9kaWZpZWREYXRlLCB3aW5kb3cuZmls
ZTEubGFzdE1vZGlmaWVkRGF0ZSksICJGaWxlTGlzdCBwcmVzZXJ2ZXMgb3JkZXIgYW5kIGRhdGEg
KGRhdGUxKSIpOworICAgICAgICB9KTsKK30KIHRyeVBvc3RNZXNzYWdlKCciZG9uZSInKTsKIDwv
c2NyaXB0PgogPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93
L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dp
bmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQKaW5kZXggNDQzNTRmOS4uM2UwNDQ2
YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0
aWVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93
LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0CkBAIC01MzAsNiArNTMwLDkgQEAgd2luZG93LkRPTUV4
Y2VwdGlvbi5TRUNVUklUWV9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24uU1lOVEFY
X0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5UWVBFX01JU01BVENIX0VSUiBbbnVt
YmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5VUkxfTUlTTUFUQ0hfRVJSIFtudW1iZXJdCit3aW5k
b3cuRE9NRXhjZXB0aW9uLlRJTUVPVVRfRVJSIFtudW1iZXJdCit3aW5kb3cuRE9NRXhjZXB0aW9u
LklOVkFMSURfTk9ERV9UWVBFX0VSUiBbbnVtYmVyXQord2luZG93LkRPTUV4Y2VwdGlvbi5EQVRB
X0NMT05FX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5WQUxJREFUSU9OX0VSUiBb
bnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5XUk9OR19ET0NVTUVOVF9FUlIgW251bWJlcl0K
IHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlIFtvYmplY3QgRE9NRXhjZXB0aW9uUHJvdG90
eXBlXQpAQCAtNTUzLDYgKzU1Niw5IEBAIHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlLlNF
Q1VSSVRZX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuU1lOVEFY
X0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuVFlQRV9NSVNNQVRD
SF9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlLlVSTF9NSVNNQVRD
SF9FUlIgW251bWJlcl0KK3dpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlLlRJTUVPVVRfRVJS
IFtudW1iZXJdCit3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5JTlZBTElEX05PREVfVFlQ
RV9FUlIgW251bWJlcl0KK3dpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlLkRBVEFfQ0xPTkVf
RVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5WQUxJREFUSU9OX0VS
UiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuV1JPTkdfRE9DVU1FTlRf
RVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS50b1N0cmluZyBbZnVu
Y3Rpb25dCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4
cGVjdGF0aW9ucy50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVj
dGF0aW9ucy50eHQKaW5kZXggNzE4YTdmNi4uYjYyMGFjNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CisrKyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dApAQCAtMTY2MSw5ICsx
NjYxLDYgQEAgQlVHQ1IyNDEyNiA6IGZhc3QvZG9tL0hUTUxJbnB1dEVsZW1lbnQvc2l6ZS1hdHRy
aWJ1dGUuaHRtbCA9IEZBSUwKIC8vIEZsYWt5IHRpbWVvdXRzIGZpcnN0IGFwcGVhcmluZyBhdCBy
Mjc3NjQgKHdlYmtpdCA0ODk0NykKIEJVR0NSOTc5OCBXSU4gOiBodHRwL3Rlc3RzL2Nvb2tpZXMv
bXVsdGlwbGUtY29va2llcy5odG1sID0gVElNRU9VVCBQQVNTCiAKLS8vIFdlYktpdCB1cGRhdGU6
IDQ5MjEzOjQ5MjIxCi1CVUdDUjI0MDYzIDogZmFzdC9kb20vV2luZG93L3dpbmRvdy1wb3N0bWVz
c2FnZS1jbG9uZS5odG1sID0gRkFJTAotCiAvLyBHb3Qgc2xvdyB3aXRoIFY4IHVwZGF0ZSB0byAx
LjMuMTUuIERlYnVnIGxvZ2dpbmcgcGVyaGFwcz8KIEJVR0NSMjQxODIgREVCVUcgU0xPVyA6IGZh
c3QvZm9ybXMvaW5wdXQtaW1wbGljaXQtbGVuZ3RoLWxpbWl0Lmh0bWwgPSBQQVNTCiBCVUdDUjI0
MTgyIERFQlVHIFNMT1cgOiBmYXN0L2Zvcm1zL2lucHV0LW1heGxlbmd0aC5odG1sID0gUEFTUwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQtd2syL2Zhc3QvZG9tL1dpbmRvdy93
aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC13
azIvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dAppbmRleCBj
ODVjZjE5Li5kYjBhMDQyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC13azIv
ZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9xdC13azIvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVz
LWV4cGVjdGVkLnR4dApAQCAtNTI4LDYgKzUyOCw5IEBAIHdpbmRvdy5ET01FeGNlcHRpb24uU0VD
VVJJVFlfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLlNZTlRBWF9FUlIgW251bWJl
cl0KIHdpbmRvdy5ET01FeGNlcHRpb24uVFlQRV9NSVNNQVRDSF9FUlIgW251bWJlcl0KIHdpbmRv
dy5ET01FeGNlcHRpb24uVVJMX01JU01BVENIX0VSUiBbbnVtYmVyXQord2luZG93LkRPTUV4Y2Vw
dGlvbi5USU1FT1VUX0VSUiBbbnVtYmVyXQord2luZG93LkRPTUV4Y2VwdGlvbi5JTlZBTElEX05P
REVfVFlQRV9FUlIgW251bWJlcl0KK3dpbmRvdy5ET01FeGNlcHRpb24uREFUQV9DTE9ORV9FUlIg
W251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24uVkFMSURBVElPTl9FUlIgW251bWJlcl0KIHdp
bmRvdy5ET01FeGNlcHRpb24uV1JPTkdfRE9DVU1FTlRfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9N
RXhjZXB0aW9uLnByb3RvdHlwZSBbb2JqZWN0IERPTUV4Y2VwdGlvblByb3RvdHlwZV0KQEAgLTU1
MSw2ICs1NTQsOSBAQCB3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5TRUNVUklUWV9FUlIg
W251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlLlNZTlRBWF9FUlIgW251bWJl
cl0KIHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlLlRZUEVfTUlTTUFUQ0hfRVJSIFtudW1i
ZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5VUkxfTUlTTUFUQ0hfRVJSIFtudW1i
ZXJdCit3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5USU1FT1VUX0VSUiBbbnVtYmVyXQor
d2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuSU5WQUxJRF9OT0RFX1RZUEVfRVJSIFtudW1i
ZXJdCit3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5EQVRBX0NMT05FX0VSUiBbbnVtYmVy
XQogd2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuVkFMSURBVElPTl9FUlIgW251bWJlcl0K
IHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlLldST05HX0RPQ1VNRU5UX0VSUiBbbnVtYmVy
XQogd2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUudG9TdHJpbmcgW2Z1bmN0aW9uXQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvZmFzdC9kb20vV2luZG93L3dpbmRvdy1w
cm9wZXJ0aWVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L2Zhc3QvZG9t
L1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQKaW5kZXggNTRjMTA3OS4uY2Nm
ZDI0NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvZmFzdC9kb20vV2luZG93
L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9xdC9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0CkBAIC01
MjgsNiArNTI4LDkgQEAgd2luZG93LkRPTUV4Y2VwdGlvbi5TRUNVUklUWV9FUlIgW251bWJlcl0K
IHdpbmRvdy5ET01FeGNlcHRpb24uU1lOVEFYX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2Vw
dGlvbi5UWVBFX01JU01BVENIX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5VUkxf
TUlTTUFUQ0hfRVJSIFtudW1iZXJdCit3aW5kb3cuRE9NRXhjZXB0aW9uLlRJTUVPVVRfRVJSIFtu
dW1iZXJdCit3aW5kb3cuRE9NRXhjZXB0aW9uLklOVkFMSURfTk9ERV9UWVBFX0VSUiBbbnVtYmVy
XQord2luZG93LkRPTUV4Y2VwdGlvbi5EQVRBX0NMT05FX0VSUiBbbnVtYmVyXQogd2luZG93LkRP
TUV4Y2VwdGlvbi5WQUxJREFUSU9OX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5X
Uk9OR19ET0NVTUVOVF9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBl
IFtvYmplY3QgRE9NRXhjZXB0aW9uUHJvdG90eXBlXQpAQCAtNTUxLDYgKzU1NCw5IEBAIHdpbmRv
dy5ET01FeGNlcHRpb24ucHJvdG90eXBlLlNFQ1VSSVRZX0VSUiBbbnVtYmVyXQogd2luZG93LkRP
TUV4Y2VwdGlvbi5wcm90b3R5cGUuU1lOVEFYX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2Vw
dGlvbi5wcm90b3R5cGUuVFlQRV9NSVNNQVRDSF9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNl
cHRpb24ucHJvdG90eXBlLlVSTF9NSVNNQVRDSF9FUlIgW251bWJlcl0KK3dpbmRvdy5ET01FeGNl
cHRpb24ucHJvdG90eXBlLlRJTUVPVVRfRVJSIFtudW1iZXJdCit3aW5kb3cuRE9NRXhjZXB0aW9u
LnByb3RvdHlwZS5JTlZBTElEX05PREVfVFlQRV9FUlIgW251bWJlcl0KK3dpbmRvdy5ET01FeGNl
cHRpb24ucHJvdG90eXBlLkRBVEFfQ0xPTkVfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0
aW9uLnByb3RvdHlwZS5WQUxJREFUSU9OX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlv
bi5wcm90b3R5cGUuV1JPTkdfRE9DVU1FTlRfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0
aW9uLnByb3RvdHlwZS50b1N0cmluZyBbZnVuY3Rpb25dCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9vYmplY3RzdG9yZS1iYXNpY3MtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0c3RvcmUtYmFzaWNzLWV4cGVjdGVkLnR4
dAppbmRleCAyMzk0NzQwLi43YTM0YTFiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9vYmplY3RzdG9yZS1iYXNpY3MtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0b3JlLWJhc2ljcy1leHBlY3RlZC50eHQKQEAg
LTU2LDcgKzU2LDcgQEAgc3RvcmUuYWRkKHt4OiAnZm9vJ30sIHRlc3REYXRlKQogVHJ5IHRvIGlu
c2VydCBhIHZhbHVlIG5vdCBoYW5kbGVkIGJ5IHN0cnVjdHVyZWQgY2xvbmU6CiBzdG9yZS5hZGQo
e3g6ICdiYXInLCB5OiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpfSwgJ2Jhcicp
CiBQQVNTIEV4Y2VwdGlvbiB0aHJvd24KLVBBU1MgY29kZSBpcyBET01FeGNlcHRpb24uTk9UX1NV
UFBPUlRFRF9FUlIKK1BBU1MgY29kZSBpcyBET01FeGNlcHRpb24uREFUQV9DTE9ORV9FUlIKIFRy
eSB0byBpbnNlcnQgZGF0YSB3aGVyZSBrZXkgcGF0aCB5aWVsZHMgYSBEYXRlIGtleToKIHN0b3Jl
LmFkZCh7eDogdGVzdERhdGVCLCB5OiAndmFsdWUnfSwgJ2tleScpCiBhZGRTdWNjZXNzKCk6CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9vYmplY3RzdG9yZS1iYXNp
Y3MuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0b3JlLWJhc2lj
cy5odG1sCmluZGV4IGIyZTczZWUuLmI3Njk1ODUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0b3JlLWJhc2ljcy5odG1sCisrKyBiL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0b3JlLWJhc2ljcy5odG1sCkBAIC0xNTQsNyArMTU0
LDcgQEAgZnVuY3Rpb24gYWRkRGF0ZVN1Y2Nlc3MoKQogICAgIH0gY2F0Y2ggKGVycikgewogICAg
ICAgICB0ZXN0UGFzc2VkKCJFeGNlcHRpb24gdGhyb3duIik7CiAgICAgICAgIGNvZGUgPSBlcnIu
Y29kZTsKLSAgICAgICAgc2hvdWxkQmUoImNvZGUiLCAiRE9NRXhjZXB0aW9uLk5PVF9TVVBQT1JU
RURfRVJSIik7CisgICAgICAgIHNob3VsZEJlKCJjb2RlIiwgIkRPTUV4Y2VwdGlvbi5EQVRBX0NM
T05FX0VSUiIpOwogICAgIH0KIAogICAgIGRlYnVnKCJUcnkgdG8gaW5zZXJ0IGRhdGEgd2hlcmUg
a2V5IHBhdGggeWllbGRzIGEgRGF0ZSBrZXk6Iik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWU2YmUzMy4uNmQ4
NWRlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc4IEBACisyMDExLTA2LTI3ICBMdWtlIFphcmtv
ICA8bHVrZXphcmtvQGdtYWlsLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBUaGUgSFRNTDUgU3RydWN0dXJlZCBDbG9uZSBhbGdvcml0aG0gKGh0
dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvbXVsdGlwYWdl
L3VybHMuaHRtbCNzYWZlLXBhc3Npbmctb2Ytc3RydWN0dXJlZC1kYXRhKSBoYXMgYmVlbiB1cGRh
dGVkIHNpbmNlIHRoZSBWOCB2ZXJzaW9uIG9mIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSB3YXMgZmly
c3QgaW1wbGVtZW50ZWQuIFRoaXMgcGF0Y2ggYWltcyB0byBicmluZyB0aGlzIGltcGxlbWVudGF0
aW9uIHVwIHRvIGRhdGUuIEl0OgorCisgICAgICAgIC0gSW50cm9kdWNlcyB0aGUgbmV3IEhUTUw1
IERPTSBlcnJvciBjb2RlcyBmb3IgVElNRU9VVF9FUlIsIElOVkFMSURfTk9ERV9UWVBFX0VSUiwg
REFUQV9DTE9ORV9FUlIKKyAgICAgICAgLSBIYW5kbGVzIGN5Y2xpYyBzdHJ1Y3R1cmVzIGFuZCBl
cXVhbGl0eSBvZiByZWZlcmVuY2UgcHJlc2VydmF0aW9uIGZvciBjbG9uZWQgdmFsdWVzCisgICAg
ICAgIC0gQWxsb3dzIERhdGFWaWV3cyB0byBiZSBjb25zdHJ1Y3RlZCBvbiB0aGUgbmF0aXZlIHNp
ZGUgdXNpbmcgdGhlIGV4aXN0aW5nIHdyYXBwZXIgdGVjaG5pcXVlcworICAgICAgICAtIEFtZW5k
cyB0ZXN0cyBhbmQgaW50cm9kdWNlcyBuZXcgb25lcyB0byBjaGVjayBmb3IgY29ycmVjdG5lc3Mg
KHRoZSBidWxrIG9mIHRoZSBwYXRjaCkKKworICAgICAgICBUaGUgcGF0Y2ggcGVybWl0cyB0aGUg
Y2xvbmluZyBvZiBKYXZhU2NyaXB0IHR5cGVkIGFycmF5cy4gVGhpcyBmdW5jdGlvbmFsaXR5IGlz
IGluIGFjdGl2ZSB1c2UgYWxyZWFkeSBhbmQgd2FzIHN1cHBvcnRlZCAoc29tZXdoYXQgaW5lZmZp
Y2llbnRseSkgYnkgdGhlIGV4aXN0aW5nIGNvZGUgdGhyb3VnaCBhbiBhcnRpZmFjdCBvZiBpbXBs
ZW1lbnRhdGlvbi4KKworICAgICAgICBJIGhhdmUgaW5jbHVkZWQgdHdvIGltcGxlbWVudGF0aW9u
cyBvZiB0aGUgJ21lbW9yeScgb2JqZWN0IGZyb20gdGhlIHN0YW5kYXJkLiBUaGUgZmlyc3QgKHdo
aWNoIGlzIGVuYWJsZWQgYnkgZGVmYXVsdCkgaXMgbW9yZSBlZmZpY2llbnQ7IHRoZSBzZWNvbmQg
aXMgbGVzcyBlZmZpY2llbnQgYnV0IHNob3VsZCBiZSBtb3JlIHJlc2lzdGFudCB0byBjaGFuZ2Vz
IGluIFY4J3MgaW1wbGVtZW50YXRpb24gb2YgaGFuZGxlcy4KKworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM0ODEKKworICAgICAgICBUZXN0OiBmYXN0
L2NhbnZhcy93ZWJnbC9hcnJheS1tZXNzYWdlLXBhc3NpbmcuaHRtbAorICAgICAgICBUZXN0OiBm
YXN0L2RvbS9XaW5kb3cvd2luZG93LXBvc3RtZXNzYWdlLWNsb25lLmh0bWwKKworICAgICAgICAq
IGJpbmRpbmdzL3Y4L1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpWOEdjSGFuZGxlTWFwOjpWOEdjSGFuZGxlTWFwOjpWOEhhbmRsZVB0ckhhc2g6Omhhc2gpOgor
ICAgICAgICAoV2ViQ29yZTo6VjhHY0hhbmRsZU1hcDo6VjhHY0hhbmRsZU1hcDo6VjhIYW5kbGVQ
dHJIYXNoOjplcXVhbCk6CisgICAgICAgIChXZWJDb3JlOjpWOEdjSGFuZGxlTWFwOjpWOEdjSGFu
ZGxlTWFwOjpjb250YWlucyk6CisgICAgICAgIChXZWJDb3JlOjpWOEdjSGFuZGxlTWFwOjpWOEdj
SGFuZGxlTWFwOjp0cnlHZXQpOgorICAgICAgICAoV2ViQ29yZTo6VjhHY0hhbmRsZU1hcDo6VjhH
Y0hhbmRsZU1hcDo6c2V0KToKKyAgICAgICAgKFdlYkNvcmU6OlY4R2NIYW5kbGVNYXA6OlY4R2NI
YW5kbGVNYXA6OnNpemUpOgorICAgICAgICAoV2ViQ29yZTo6VjhHY0hhbmRsZU1hcDo6V3JpdGVy
Ojp3cml0ZUFycmF5QnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlY4R2NIYW5kbGVNYXA6Oldy
aXRlcjo6d3JpdGVBcnJheUJ1ZmZlclZpZXcpOgorICAgICAgICAoV2ViQ29yZTo6VjhHY0hhbmRs
ZU1hcDo6V3JpdGVyOjp3cml0ZU9iamVjdE9mZnNldCk6CisgICAgICAgIChXZWJDb3JlOjpWOEdj
SGFuZGxlTWFwOjpXcml0ZXI6OndyaXRlQ2hlY2tSZWYpOgorICAgICAgICAoV2ViQ29yZTo6VjhH
Y0hhbmRsZU1hcDo6V3JpdGVyOjp3cml0ZUdlbmVyYXRlRnJlc2hPYmplY3QpOgorICAgICAgICAo
V2ViQ29yZTo6VjhHY0hhbmRsZU1hcDo6V3JpdGVyOjp3cml0ZUdlbmVyYXRlRnJlc2hBcnJheSk6
CisgICAgICAgIChXZWJDb3JlOjpWOEdjSGFuZGxlTWFwOjpXcml0ZXI6OmRvV3JpdGVBcnJheUJ1
ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpWOEdjSGFuZGxlTWFwOjpTZXJpYWxpemVyOjpTZXJp
YWxpemVyKToKKyAgICAgICAgKFdlYkNvcmU6OlY4R2NIYW5kbGVNYXA6OlNlcmlhbGl6ZXI6OlN0
YXRlQmFzZTo6ZXhlY0RlcHRoKToKKyAgICAgICAgKFdlYkNvcmU6OlY4R2NIYW5kbGVNYXA6OlNl
cmlhbGl6ZXI6OkFic3RyYWN0T2JqZWN0U3RhdGU6OkFic3RyYWN0T2JqZWN0U3RhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6VjhHY0hhbmRsZU1hcDo6U2VyaWFsaXplcjo6QWJzdHJhY3RPYmplY3RT
dGF0ZTo6YWR2YW5jZSk6CisgICAgICAgIChXZWJDb3JlOjpWOEdjSGFuZGxlTWFwOjpTZXJpYWxp
emVyOjpBYnN0cmFjdE9iamVjdFN0YXRlOjpleGVjRGVwdGgpOgorICAgICAgICAoV2ViQ29yZTo6
VjhHY0hhbmRsZU1hcDo6U2VyaWFsaXplcjo6ZXhlY0RlcHRoKToKKyAgICAgICAgKFdlYkNvcmU6
OlY4R2NIYW5kbGVNYXA6OlNlcmlhbGl6ZXI6OnB1c2gpOgorICAgICAgICAoV2ViQ29yZTo6VjhH
Y0hhbmRsZU1hcDo6U2VyaWFsaXplcjo6cG9wKToKKyAgICAgICAgKFdlYkNvcmU6OlY4R2NIYW5k
bGVNYXA6OlNlcmlhbGl6ZXI6OmhhbmRsZUVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OlY4R2NI
YW5kbGVNYXA6OlNlcmlhbGl6ZXI6OndyaXRlTnVsbCk6CisgICAgICAgIChXZWJDb3JlOjpWOEdj
SGFuZGxlTWFwOjpTZXJpYWxpemVyOjp3cml0ZUFuZEdyZXlBcnJheUJ1ZmZlclZpZXcpOgorICAg
ICAgICAoV2ViQ29yZTo6VjhHY0hhbmRsZU1hcDo6U2VyaWFsaXplcjo6d3JpdGVBcnJheUJ1ZmZl
cik6CisgICAgICAgIChXZWJDb3JlOjpWOEdjSGFuZGxlTWFwOjpTZXJpYWxpemVyOjpncmV5T2Jq
ZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OlY4R2NIYW5kbGVNYXA6OlNlcmlhbGl6ZXI6OmRvU2Vy
aWFsaXplKToKKyAgICAgICAgKFdlYkNvcmU6OlY4R2NIYW5kbGVNYXA6OlJlYWRlcjo6cmVhZCk6
CisgICAgICAgIChXZWJDb3JlOjpWOEdjSGFuZGxlTWFwOjpSZWFkZXI6OnJlYWRTdWJUYWcpOgor
ICAgICAgICAoV2ViQ29yZTo6VjhHY0hhbmRsZU1hcDo6UmVhZGVyOjpkb1JlYWRBcnJheUJ1ZmZl
cik6CisgICAgICAgIChXZWJDb3JlOjpWOEdjSGFuZGxlTWFwOjpSZWFkZXI6OnJlYWRBcnJheUJ1
ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpWOEdjSGFuZGxlTWFwOjpSZWFkZXI6OnJlYWRBcnJh
eUJ1ZmZlclZpZXcpOgorICAgICAgICAoV2ViQ29yZTo6VjhHY0hhbmRsZU1hcDo6RGVzZXJpYWxp
emVyOjpkZXNlcmlhbGl6ZSk6CisgICAgICAgIChXZWJDb3JlOjpWOEdjSGFuZGxlTWFwOjpEZXNl
cmlhbGl6ZXI6OnByZXBhcmVFbXB0eUFycmF5KToKKyAgICAgICAgKFdlYkNvcmU6OlY4R2NIYW5k
bGVNYXA6OkRlc2VyaWFsaXplcjo6Y29uc3VtZVRvcE9mU3RhY2spOgorICAgICAgICAoV2ViQ29y
ZTo6VjhHY0hhbmRsZU1hcDo6RGVzZXJpYWxpemVyOjpmaW5pc2hBcnJheSk6CisgICAgICAgIChX
ZWJDb3JlOjpWOEdjSGFuZGxlTWFwOjpEZXNlcmlhbGl6ZXI6OnByZXBhcmVFbXB0eU9iamVjdCk6
CisgICAgICAgIChXZWJDb3JlOjpWOEdjSGFuZGxlTWFwOjpEZXNlcmlhbGl6ZXI6OmZpbmlzaE9i
amVjdCk6CisgICAgICAgIChXZWJDb3JlOjpWOEdjSGFuZGxlTWFwOjpEZXNlcmlhbGl6ZXI6OmZp
bmlzaFNwYXJzZUFycmF5KToKKyAgICAgICAgKFdlYkNvcmU6OlY4R2NIYW5kbGVNYXA6OkRlc2Vy
aWFsaXplcjo6cHVzaE9iamVjdFJlZmVyZW5jZSk6CisgICAgICAgIChXZWJDb3JlOjpWOEdjSGFu
ZGxlTWFwOjpEZXNlcmlhbGl6ZXI6OmdldE9iamVjdFJlZmVyZW5jZSk6CisgICAgICAgIChXZWJD
b3JlOjpWOEdjSGFuZGxlTWFwOjpEZXNlcmlhbGl6ZXI6Om9iamVjdFJlZmVyZW5jZUNvdW50KToK
KyAgICAgICAgKFdlYkNvcmU6OlY4R2NIYW5kbGVNYXA6OkRlc2VyaWFsaXplcjo6b3Blbk5ld0Nv
bXBvc2l0ZSk6CisgICAgICAgIChXZWJDb3JlOjpWOEdjSGFuZGxlTWFwOjpEZXNlcmlhbGl6ZXI6
OmNsb3NlQ29tcG9zaXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20v
VjhEYXRhVmlld0N1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOERhdGFWaWV3Ojpjb25z
dHJ1Y3RvckNhbGxiYWNrKToKKyAgICAgICAgKiBkb20vRE9NQ29yZUV4Y2VwdGlvbi5pZGw6Cisg
ICAgICAgICogZG9tL0V4Y2VwdGlvbkNvZGUuY3BwOgorICAgICAgICAqIGRvbS9FeGNlcHRpb25D
b2RlLmg6CisgICAgICAgICogaHRtbC9jYW52YXMvRGF0YVZpZXcuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RGF0YVZpZXc6OmNyZWF0ZSk6CisgICAgICAgICogaHRtbC9jYW52YXMvRGF0YVZpZXcu
aDoKKwogMjAxMS0wNi0yNyAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5j
b20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjg5ODIyLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKaW5k
ZXggY2I0NGYwMi4uZDIwYWZhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
djgvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCkBAIC0zMSwzMiArMzEsMjE3IEBACiAjaW5j
bHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCiAKKyNp
bmNsdWRlICJBcnJheUJ1ZmZlci5oIgorI2luY2x1ZGUgIkFycmF5QnVmZmVyVmlldy5oIgogI2lu
Y2x1ZGUgIkJsb2IuaCIKICNpbmNsdWRlICJCeXRlQXJyYXkuaCIKICNpbmNsdWRlICJDYW52YXNQ
aXhlbEFycmF5LmgiCisjaW5jbHVkZSAiRGF0YVZpZXcuaCIKICNpbmNsdWRlICJFeGNlcHRpb25D
b2RlLmgiCiAjaW5jbHVkZSAiRmlsZS5oIgogI2luY2x1ZGUgIkZpbGVMaXN0LmgiCisjaW5jbHVk
ZSAiRmxvYXQzMkFycmF5LmgiCisjaW5jbHVkZSAiRmxvYXQ2NEFycmF5LmgiCiAjaW5jbHVkZSAi
SW1hZ2VEYXRhLmgiCisjaW5jbHVkZSAiSW50MTZBcnJheS5oIgorI2luY2x1ZGUgIkludDMyQXJy
YXkuaCIKKyNpbmNsdWRlICJJbnQ4QXJyYXkuaCIKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIK
KyNpbmNsdWRlICJVaW50MTZBcnJheS5oIgorI2luY2x1ZGUgIlVpbnQzMkFycmF5LmgiCisjaW5j
bHVkZSAiVWludDhBcnJheS5oIgorI2luY2x1ZGUgIlY4QXJyYXlCdWZmZXIuaCIKKyNpbmNsdWRl
ICJWOEFycmF5QnVmZmVyVmlldy5oIgogI2luY2x1ZGUgIlY4QmluZGluZy5oIgogI2luY2x1ZGUg
IlY4QmxvYi5oIgorI2luY2x1ZGUgIlY4RGF0YVZpZXcuaCIKICNpbmNsdWRlICJWOEZpbGUuaCIK
ICNpbmNsdWRlICJWOEZpbGVMaXN0LmgiCisjaW5jbHVkZSAiVjhGbG9hdDMyQXJyYXkuaCIKKyNp
bmNsdWRlICJWOEZsb2F0NjRBcnJheS5oIgogI2luY2x1ZGUgIlY4SW1hZ2VEYXRhLmgiCisjaW5j
bHVkZSAiVjhJbnQxNkFycmF5LmgiCisjaW5jbHVkZSAiVjhJbnQzMkFycmF5LmgiCisjaW5jbHVk
ZSAiVjhJbnQ4QXJyYXkuaCIKICNpbmNsdWRlICJWOFByb3h5LmgiCisjaW5jbHVkZSAiVjhVaW50
MTZBcnJheS5oIgorI2luY2x1ZGUgIlY4VWludDMyQXJyYXkuaCIKKyNpbmNsdWRlICJWOFVpbnQ4
QXJyYXkuaCIKICNpbmNsdWRlICJWOFV0aWxpdGllcy5oIgogCiAjaW5jbHVkZSA8d3RmL0Fzc2Vy
dGlvbnMuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0
b3IuaD4KIAorLy8gI2RlZmluZSBTU1ZfREVCVUcKKy8vICNkZWZpbmUgU1NWX1RFU1RfR0MKKyNk
ZWZpbmUgU1NWX0RJUkVDVF9NQVAKKy8vICNkZWZpbmUgU1NWX0lORElSRUNUX01BUAorCiAvLyBG
SVhNRTogY29uc2lkZXIgY3Jhc2hpbmcgaW4gZGVidWcgbW9kZSBvbiBkZXNlcmlhbGl6YXRpb24g
ZXJyb3JzCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogbmFtZXNwYWNlIHsKIAorI2lmZGVmIFNT
Vl9ESVJFQ1RfTUFQCisvLyBGSVhNRTogZm9yIGlzb2xhdGVzLgorc3RhdGljIHVpbnQzMl90IGxh
c3RHY0N5Y2xlTnVtYmVyID0gMDsKK3N0YXRpYyBib29sIHJlZ2lzdGVyZWRHY0N5Y2xlQ291bnRl
ciA9IGZhbHNlOworc3RhdGljIHZvaWQgZ2NDeWNsZUNvdW50ZXIodjg6OkdDVHlwZSB0eXBlLCB2
ODo6R0NDYWxsYmFja0ZsYWdzIGZsYWdzKQoreworICAgICsrbGFzdEdjQ3ljbGVOdW1iZXI7Cit9
CitzdGF0aWMgdm9pZCBlbnN1cmVHY0N5Y2xlQ291bnRlclJlZ2lzdGVyZWQoKQoreworICAgIGlm
ICghcmVnaXN0ZXJlZEdjQ3ljbGVDb3VudGVyKSB7CisgICAgICAgIHY4OjpWODo6QWRkR0NFcGls
b2d1ZUNhbGxiYWNrKGdjQ3ljbGVDb3VudGVyKTsKKyAgICAgICAgcmVnaXN0ZXJlZEdjQ3ljbGVD
b3VudGVyID0gdHJ1ZTsKKyAgICB9Cit9CitzdGF0aWMgdWludDMyX3QgZ2V0Q3VycmVudEdjQ3lj
bGVOdW1iZXIoKQoreworICAgIHJldHVybiBsYXN0R2NDeWNsZU51bWJlcjsKK30KKwordGVtcGxh
dGU8dHlwZW5hbWUgR2NPYmplY3QsIHR5cGVuYW1lIFQ+CitjbGFzcyBWOEdjSGFuZGxlTWFwIHsK
K3ByaXZhdGU6CisgICAgdHlwZWRlZiBXVEY6Okhhc2hNYXA8R2NPYmplY3QqLCBUPiBSYXdUb1Q7
CisgICAgdHlwZWRlZiBXVEY6OlZlY3Rvcjx2ODo6SGFuZGxlPEdjT2JqZWN0PiA+IEhhbmRsZXM7
CisgICAgdHlwZWRlZiBXVEY6OlZlY3RvcjxHY09iamVjdCo+IFJhd1BvaW50ZXJzOworICAgIFJh
d1RvVCBtX21hcDsKKyAgICBIYW5kbGVzIG1faGFuZGxlczsKKyAgICBSYXdQb2ludGVycyBtX3Jh
d1BvaW50ZXJzOworICAgIHVpbnQzMl90IG1fbGFzdEdjQ3ljbGVTZWVuOworCisgICAgdm9pZCBy
ZWhhc2goKQorICAgIHsKKyNpZmRlZiBTU1ZfVEVTVF9HQworICAgICAgICAvLyBBbHdheXMgcmVo
YXNoLgorICAgICAgICB2ODo6Vjg6Okxvd01lbW9yeU5vdGlmaWNhdGlvbigpOworI2VuZGlmCisg
ICAgICAgIGlmIChtX2xhc3RHY0N5Y2xlU2VlbiA9PSBnZXRDdXJyZW50R2NDeWNsZU51bWJlcigp
KQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBBU1NFUlQobV9oYW5kbGVzLnNpemUoKSA9
PSBtX3Jhd1BvaW50ZXJzLnNpemUoKSk7CisgICAgICAgIFdURjo6SGFzaE1hcDxHY09iamVjdCos
IFQ+IG5ld01hcDsKKyAgICAgICAgUmF3UG9pbnRlcnMgbmV3UmF3UG9pbnRlcnM7CisgICAgICAg
IG5ld1Jhd1BvaW50ZXJzLnJlc2l6ZShtX3Jhd1BvaW50ZXJzLnNpemUoKSk7CisgICAgICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9oYW5kbGVzLnNpemUoKTsgKytpKSB7CisgICAgICAgICAg
ICBHY09iamVjdCogb2xkT2JqZWN0ID0gbV9yYXdQb2ludGVyc1tpXTsKKyAgICAgICAgICAgIEdj
T2JqZWN0KiBuZXdPYmplY3QgPSB1bndyYXAobV9oYW5kbGVzW2ldKTsKKyAgICAgICAgICAgIG5l
d01hcC5hZGQobmV3T2JqZWN0LCBtX21hcC5nZXQob2xkT2JqZWN0KSk7CisgICAgICAgICAgICBu
ZXdSYXdQb2ludGVyc1tpXSA9IG5ld09iamVjdDsKKyNpZmRlZiBTU1ZfREVCVUcKKyAgICAgICAg
ICAgIHByaW50ZigiUkVIQVNIOiAlcCBoYXMgYmVjb21lICVwXG4iLCBvbGRPYmplY3QsIG5ld09i
amVjdCk7CisjZW5kaWYKKyAgICAgICAgfQorICAgICAgICBtX21hcC5zd2FwKG5ld01hcCk7Cisg
ICAgICAgIG1fcmF3UG9pbnRlcnMuc3dhcChuZXdSYXdQb2ludGVycyk7CisgICAgICAgIG1fbGFz
dEdjQ3ljbGVTZWVuID0gZ2V0Q3VycmVudEdjQ3ljbGVOdW1iZXIoKTsKKyAgICB9CisKKyAgICBH
Y09iamVjdCogdW53cmFwKGNvbnN0IHY4OjpIYW5kbGU8R2NPYmplY3Q+JiBoYW5kbGUpCisgICAg
eworICAgICAgICByZXR1cm4gKnJlaW50ZXJwcmV0X2Nhc3Q8R2NPYmplY3QqKj4oY29uc3RfY2Fz
dDxHY09iamVjdCo+KCpoYW5kbGUpKTsKKyAgICB9CisKK3B1YmxpYzoKKyAgICBWOEdjSGFuZGxl
TWFwKCkKKyAgICB7CisgICAgICAgIGVuc3VyZUdjQ3ljbGVDb3VudGVyUmVnaXN0ZXJlZCgpOwor
ICAgICAgICBtX2xhc3RHY0N5Y2xlU2VlbiA9IGdldEN1cnJlbnRHY0N5Y2xlTnVtYmVyKCk7Cisg
ICAgfQorCisgICAgYm9vbCBjb250YWlucyhjb25zdCB2ODo6SGFuZGxlPEdjT2JqZWN0PiYgaGFu
ZGxlKQorICAgIHsKKyAgICAgICAgcmVoYXNoKCk7CisgICAgICAgIHJldHVybiBtX21hcC5jb250
YWlucyh1bndyYXAoaGFuZGxlKSk7CisgICAgfQorCisgICAgYm9vbCB0cnlHZXQoY29uc3Qgdjg6
OkhhbmRsZTxHY09iamVjdD4mIGhhbmRsZSwgVCYgdmFsdWVPdXQpCisgICAgeworICAgICAgICBy
ZWhhc2goKTsKKyAgICAgICAgaWYgKG1fbWFwLmNvbnRhaW5zKHVud3JhcChoYW5kbGUpKSkgewor
ICAgICAgICAgICAgdmFsdWVPdXQgPSBtX21hcC5nZXQodW53cmFwKGhhbmRsZSkpOworI2lmZGVm
IFNTVl9ERUJVRworICAgICAgICAgICAgcHJpbnRmKCJtYXBwZWQgJXAgdG8gJWRcbiIsIHVud3Jh
cChoYW5kbGUpLCB2YWx1ZU91dCk7CisjZW5kaWYKKyAgICAgICAgICAgIHJldHVybiB0cnVlOwor
ICAgICAgICB9CisjaWZkZWYgU1NWX0RFQlVHCisgICAgICAgIHByaW50Zigibm8gbWFwcGluZyBm
b3IgJXBcbiIsIHVud3JhcChoYW5kbGUpKTsKKyNlbmRpZgorICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgfQorCisgICAgdm9pZCBzZXQoY29uc3Qgdjg6OkhhbmRsZTxHY09iamVjdD4mIGhhbmRs
ZSwgY29uc3QgVCYgdmFsdWUpCisgICAgeworICAgICAgICByZWhhc2goKTsKKyNpZmRlZiBTU1Zf
REVCVUcKKyAgICAgICAgcHJpbnRmKCJtYXBwaW5nICVwIHRvICVkXG4iLCB1bndyYXAoaGFuZGxl
KSwgdmFsdWUpOworI2VuZGlmCisgICAgICAgIG1fbWFwLnNldCh1bndyYXAoaGFuZGxlKSwgdmFs
dWUpOworICAgICAgICBtX2hhbmRsZXMuYXBwZW5kKGhhbmRsZSk7CisgICAgICAgIG1fcmF3UG9p
bnRlcnMuYXBwZW5kKHVud3JhcChoYW5kbGUpKTsKKyAgICB9CisKKyAgICB1aW50MzJfdCBzaXpl
KCkKKyAgICB7CisgICAgICAgIHJldHVybiBtX21hcC5zaXplKCk7CisgICAgfQorfTsKKyNlbmRp
ZiAvLyBkZWZpbmVkKFNTVl9ESVJFQ1RfTUFQKQorCisjaWZkZWYgU1NWX0lORElSRUNUX01BUAor
Ly8gdjg6OkhhbmRsZSdzIG9wZXJhdG9yKiByZXR1cm5zIGEgcHRyIHRvIHRoZSB1bmRlcmx5aW5n
IGhhbmRsZSwgbm90IHRoZSB1bmRlcmx5aW5nIG9iamVjdC4KK3RlbXBsYXRlPHR5cGVuYW1lIEdj
T2JqZWN0LCB0eXBlbmFtZSBUPgorY2xhc3MgVjhHY0hhbmRsZU1hcCB7Citwcml2YXRlOgorICAg
IHRlbXBsYXRlPHR5cGVuYW1lIEc+CisgICAgc3RydWN0IFY4SGFuZGxlUHRySGFzaCB7CisgICAg
ICAgIHN0YXRpYyB1bnNpZ25lZCBoYXNoKGNvbnN0IEcqIGtleSkKKyAgICAgICAgeworICAgICAg
ICAgICAgdjg6OkhhbmRsZTxHPiBvYmpIYW5kbGUoY29uc3RfY2FzdDxHKj4oa2V5KSk7CisgICAg
ICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KG9iakhhbmRsZS0+R2V0SWRlbnRp
dHlIYXNoKCkpOworICAgICAgICB9CisgICAgICAgIHN0YXRpYyBib29sIGVxdWFsKGNvbnN0IEcq
IGEsIGNvbnN0IEcqIGIpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiB2ODo6SGFuZGxl
PEc+KGNvbnN0X2Nhc3Q8Ryo+KGEpKSA9PSB2ODo6SGFuZGxlPEc+KGNvbnN0X2Nhc3Q8Ryo+KGIp
KTsKKyAgICAgICAgfQorICAgICAgICBzdGF0aWMgY29uc3QgYm9vbCBzYWZlVG9Db21wYXJlVG9F
bXB0eU9yRGVsZXRlZCA9IGZhbHNlOworICAgIH07CisKKyAgICB0eXBlZGVmIFdURjo6SGFzaE1h
cDxHY09iamVjdCosIFQsIFY4SGFuZGxlUHRySGFzaDxHY09iamVjdD4gPiBIYW5kbGVUb1Q7Cisg
ICAgSGFuZGxlVG9UIG1fbWFwOworCitwdWJsaWM6CisgICAgYm9vbCBjb250YWlucyhjb25zdCB2
ODo6SGFuZGxlPEdjT2JqZWN0PiYgaGFuZGxlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fbWFw
LmNvbnRhaW5zKCpoYW5kbGUpOworICAgIH0KKworICAgIGJvb2wgdHJ5R2V0KGNvbnN0IHY4OjpI
YW5kbGU8R2NPYmplY3Q+JiBoYW5kbGUsIFQmIHZhbHVlT3V0KQorICAgIHsKKyAgICAgICAgaWYg
KG1fbWFwLmNvbnRhaW5zKCpoYW5kbGUpKSB7CisgICAgICAgICAgICB2YWx1ZU91dCA9IG1fbWFw
LmdldCgqaGFuZGxlKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICB2b2lkIHNldChjb25zdCB2ODo6SGFuZGxl
PEdjT2JqZWN0PiYgaGFuZGxlLCBjb25zdCBUJiB2YWx1ZSkKKyAgICB7CisgICAgICAgIG1fbWFw
LnNldCgqaGFuZGxlLCB2YWx1ZSk7CisgICAgfQorCisgICAgdWludDMyX3Qgc2l6ZSgpCisgICAg
eworICAgICAgICByZXR1cm4gbV9tYXAuc2l6ZSgpOworICAgIH0KK307CisjZW5kaWYgLy8gZGVm
aW5lZChTU1ZfSU5ESVJFQ1RfTUFQKQorCiB0eXBlZGVmIFVDaGFyIEJ1ZmZlclZhbHVlVHlwZTsK
IAogLy8gU2VyaWFsaXphdGlvbiBmb3JtYXQgaXMgYSBzZXF1ZW5jZSBvZiAodGFnLCBvcHRpb25h
bCBkYXRhKQpAQCAtODEsNiArMjY2LDI0IEBAIGVudW0gU2VyaWFsaXphdGlvblRhZyB7CiAgICAg
T2JqZWN0VGFnID0gJ3snLAogICAgIFNwYXJzZUFycmF5VGFnID0gJ0AnLAogICAgIFJlZ0V4cFRh
ZyA9ICdSJywKKyAgICBBcnJheUJ1ZmZlclRhZyA9ICdCJywKKyAgICBBcnJheUJ1ZmZlclZpZXdU
YWcgPSAnVicsCisgICAgT2JqZWN0UmVmZXJlbmNlVGFnID0gJ14nLAorICAgIEdlbmVyYXRlRnJl
c2hPYmplY3RUYWcgPSAnbycsCisgICAgR2VuZXJhdGVGcmVzaEFycmF5VGFnID0gJ2EnLAorICAg
IENoZWNrUmVmVGFnID0gJz8nCit9OworCitlbnVtIEFycmF5QnVmZmVyVmlld1N1YlRhZyB7Cisg
ICAgQnl0ZUFycmF5VGFnID0gJ2InLAorICAgIFVuc2lnbmVkQnl0ZUFycmF5VGFnID0gJ0InLAor
ICAgIFNob3J0QXJyYXlUYWcgPSAndycsCisgICAgVW5zaWduZWRTaG9ydEFycmF5VGFnID0gJ1cn
LAorICAgIEludEFycmF5VGFnID0gJ2QnLAorICAgIFVuc2lnbmVkSW50QXJyYXlUYWcgPSAnRCcs
CisgICAgRmxvYXRBcnJheVRhZyA9ICdmJywKKyAgICBEb3VibGVBcnJheVRhZyA9ICdGJywKKyAg
ICBEYXRhVmlld1RhZyA9ICc/JwogfTsKIAogc3RhdGljIGJvb2wgc2hvdWxkQ2hlY2tGb3JDeWNs
ZXMoaW50IGRlcHRoKQpAQCAtMjExLDYgKzQxNCw0MiBAQCBwdWJsaWM6CiAgICAgICAgIH0KICAg
ICB9CiAKKyAgICB2b2lkIHdyaXRlQXJyYXlCdWZmZXIoY29uc3QgQXJyYXlCdWZmZXImIGFycmF5
QnVmZmVyKQorICAgIHsKKyAgICAgICAgYXBwZW5kKEFycmF5QnVmZmVyVGFnKTsKKyAgICAgICAg
ZG9Xcml0ZUFycmF5QnVmZmVyKGFycmF5QnVmZmVyKTsKKyAgICB9CisKKyAgICB2b2lkIHdyaXRl
QXJyYXlCdWZmZXJWaWV3KGNvbnN0IEFycmF5QnVmZmVyVmlldyYgYXJyYXlCdWZmZXJWaWV3KQor
ICAgIHsKKyAgICAgICAgYXBwZW5kKEFycmF5QnVmZmVyVmlld1RhZyk7CisjaWZuZGVmIEFTU0VS
VF9ESVNBQkxFRAorICAgICAgICBjb25zdCBBcnJheUJ1ZmZlciYgYXJyYXlCdWZmZXIgPSAqYXJy
YXlCdWZmZXJWaWV3LmJ1ZmZlcigpOworI2VuZGlmCisgICAgICAgIEFTU0VSVChzdGF0aWNfY2Fz
dDxjb25zdCB1aW50OF90Kj4oYXJyYXlCdWZmZXIuZGF0YSgpKSArIGFycmF5QnVmZmVyVmlldy5i
eXRlT2Zmc2V0KCkgPT0KKyAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PGNvbnN0IHVpbnQ4X3Qq
PihhcnJheUJ1ZmZlclZpZXcuYmFzZUFkZHJlc3MoKSkpOworICAgICAgICBpZiAoYXJyYXlCdWZm
ZXJWaWV3LmlzQnl0ZUFycmF5KCkpCisgICAgICAgICAgICBhcHBlbmQoQnl0ZUFycmF5VGFnKTsK
KyAgICAgICAgZWxzZSBpZiAoYXJyYXlCdWZmZXJWaWV3LmlzVW5zaWduZWRCeXRlQXJyYXkoKSkK
KyAgICAgICAgICAgIGFwcGVuZChVbnNpZ25lZEJ5dGVBcnJheVRhZyk7CisgICAgICAgIGVsc2Ug
aWYgKGFycmF5QnVmZmVyVmlldy5pc1Nob3J0QXJyYXkoKSkKKyAgICAgICAgICAgIGFwcGVuZChT
aG9ydEFycmF5VGFnKTsKKyAgICAgICAgZWxzZSBpZiAoYXJyYXlCdWZmZXJWaWV3LmlzVW5zaWdu
ZWRTaG9ydEFycmF5KCkpCisgICAgICAgICAgICBhcHBlbmQoVW5zaWduZWRTaG9ydEFycmF5VGFn
KTsKKyAgICAgICAgZWxzZSBpZiAoYXJyYXlCdWZmZXJWaWV3LmlzSW50QXJyYXkoKSkKKyAgICAg
ICAgICAgIGFwcGVuZChJbnRBcnJheVRhZyk7CisgICAgICAgIGVsc2UgaWYgKGFycmF5QnVmZmVy
Vmlldy5pc1Vuc2lnbmVkSW50QXJyYXkoKSkKKyAgICAgICAgICAgIGFwcGVuZChVbnNpZ25lZElu
dEFycmF5VGFnKTsKKyAgICAgICAgZWxzZSBpZiAoYXJyYXlCdWZmZXJWaWV3LmlzRmxvYXRBcnJh
eSgpKQorICAgICAgICAgICAgYXBwZW5kKEZsb2F0QXJyYXlUYWcpOworICAgICAgICBlbHNlIGlm
IChhcnJheUJ1ZmZlclZpZXcuaXNEb3VibGVBcnJheSgpKQorICAgICAgICAgICAgYXBwZW5kKERv
dWJsZUFycmF5VGFnKTsKKyAgICAgICAgZWxzZSBpZiAoYXJyYXlCdWZmZXJWaWV3LmlzRGF0YVZp
ZXcoKSkKKyAgICAgICAgICAgIGFwcGVuZChEYXRhVmlld1RhZyk7CisgICAgICAgIGRvV3JpdGVV
aW50MzIoYXJyYXlCdWZmZXJWaWV3LmJ5dGVPZmZzZXQoKSk7CisgICAgICAgIGRvV3JpdGVVaW50
MzIoYXJyYXlCdWZmZXJWaWV3LmJ5dGVMZW5ndGgoKSk7CisgICAgfQorCiAgICAgdm9pZCB3cml0
ZUltYWdlRGF0YSh1aW50MzJfdCB3aWR0aCwgdWludDMyX3QgaGVpZ2h0LCBjb25zdCB1aW50OF90
KiBwaXhlbERhdGEsIHVpbnQzMl90IHBpeGVsRGF0YUxlbmd0aCkKICAgICB7CiAgICAgICAgIGFw
cGVuZChJbWFnZURhdGFUYWcpOwpAQCAtMjM0LDYgKzQ3MywxMiBAQCBwdWJsaWM6CiAgICAgICAg
IGRvV3JpdGVVaW50MzIobGVuZ3RoKTsKICAgICB9CiAKKyAgICB2b2lkIHdyaXRlT2JqZWN0T2Zm
c2V0KHVpbnQzMl90IG9mZnNldCkKKyAgICB7CisgICAgICAgIGFwcGVuZChPYmplY3RSZWZlcmVu
Y2VUYWcpOworICAgICAgICBkb1dyaXRlVWludDMyKG9mZnNldCk7CisgICAgfQorCiAgICAgdm9p
ZCB3cml0ZU9iamVjdCh1aW50MzJfdCBudW1Qcm9wZXJ0aWVzKQogICAgIHsKICAgICAgICAgYXBw
ZW5kKE9iamVjdFRhZyk7CkBAIC0yNTMsNyArNDk4LDMxIEBAIHB1YmxpYzoKICAgICAgICAgcmV0
dXJuIG1fYnVmZmVyOwogICAgIH0KIAorICAgIHZvaWQgd3JpdGVDaGVja1JlZih1aW50MzJfdCBu
dW1iZXJPZlJlZnMpCisgICAgeworICAgICAgICBhcHBlbmQoQ2hlY2tSZWZUYWcpOworICAgICAg
ICBkb1dyaXRlVWludDMyKG51bWJlck9mUmVmcyk7CisgICAgfQorCisgICAgdm9pZCB3cml0ZUdl
bmVyYXRlRnJlc2hPYmplY3QoKQorICAgIHsKKyAgICAgICAgYXBwZW5kKEdlbmVyYXRlRnJlc2hP
YmplY3RUYWcpOworICAgIH0KKworICAgIHZvaWQgd3JpdGVHZW5lcmF0ZUZyZXNoQXJyYXkodWlu
dDMyX3QgbGVuZ3RoKQorICAgIHsKKyAgICAgICAgYXBwZW5kKEdlbmVyYXRlRnJlc2hBcnJheVRh
Zyk7CisgICAgICAgIGRvV3JpdGVVaW50MzIobGVuZ3RoKTsKKyAgICB9CisKIHByaXZhdGU6Cisg
ICAgdm9pZCBkb1dyaXRlQXJyYXlCdWZmZXIoY29uc3QgQXJyYXlCdWZmZXImIGFycmF5QnVmZmVy
KQorICAgIHsKKyAgICAgICAgdWludDMyX3QgYnl0ZUxlbmd0aCA9IGFycmF5QnVmZmVyLmJ5dGVM
ZW5ndGgoKTsKKyAgICAgICAgZG9Xcml0ZVVpbnQzMihieXRlTGVuZ3RoKTsKKyAgICAgICAgYXBw
ZW5kKHN0YXRpY19jYXN0PGNvbnN0IHVpbnQ4X3QqPihhcnJheUJ1ZmZlci5kYXRhKCkpLCBieXRl
TGVuZ3RoKTsKKyAgICB9CisKICAgICB2b2lkIGRvV3JpdGVTdHJpbmcoY29uc3QgY2hhciogZGF0
YSwgaW50IGxlbmd0aCkKICAgICB7CiAgICAgICAgIGRvV3JpdGVVaW50MzIoc3RhdGljX2Nhc3Q8
dWludDMyX3Q+KGxlbmd0aCkpOwpAQCAtMzQwLDYgKzYwOSw3IEBAIHB1YmxpYzoKICAgICBlbnVt
IFN0YXR1cyB7CiAgICAgICAgIFN1Y2Nlc3MsCiAgICAgICAgIElucHV0RXJyb3IsCisgICAgICAg
IERhdGFDbG9uZUVycm9yLAogICAgICAgICBKU0V4Y2VwdGlvbiwKICAgICAgICAgSlNGYWlsdXJl
CiAgICAgfTsKQEAgLTM0OCw3ICs2MTgsOSBAQCBwdWJsaWM6CiAgICAgICAgIDogbV93cml0ZXIo
d3JpdGVyKQogICAgICAgICAsIG1fdHJ5Q2F0Y2godHJ5Q2F0Y2gpCiAgICAgICAgICwgbV9kZXB0
aCgwKQorICAgICAgICAsIG1fZXhlY0RlcHRoKDApCiAgICAgICAgICwgbV9zdGF0dXMoU3VjY2Vz
cykKKyAgICAgICAgLCBtX25leHRPYmplY3RJZCgwKQogICAgIHsKICAgICAgICAgQVNTRVJUKCF0
cnlDYXRjaC5IYXNDYXVnaHQoKSk7CiAgICAgfQpAQCAtMzYzLDcgKzYzNSw2IEBAIHB1YmxpYzoK
ICAgICB9CiAKICAgICAvLyBGdW5jdGlvbnMgdXNlZCBieSBzZXJpYWxpemF0aW9uIHN0YXRlcy4K
LQogICAgIFN0YXRlQmFzZSogZG9TZXJpYWxpemUodjg6OkhhbmRsZTx2ODo6VmFsdWU+IHZhbHVl
LCBTdGF0ZUJhc2UqIG5leHQpOwogCiAgICAgU3RhdGVCYXNlKiBjaGVja0V4Y2VwdGlvbihTdGF0
ZUJhc2UqIHN0YXRlKQpAQCAtNDExLDYgKzY4MiwxMCBAQCBwcml2YXRlOgogICAgICAgICAvLyBz
dGF0ZS4KICAgICAgICAgdmlydHVhbCBTdGF0ZUJhc2UqIGFkdmFuY2UoU2VyaWFsaXplciYpID0g
MDsKIAorICAgICAgICAvLyBSZXR1cm5zIDEgaWYgdGhpcyBzdGF0ZSBpcyBjdXJyZW50bHkgc2Vy
aWFsaXppbmcgYSBwcm9wZXJ0eQorICAgICAgICAvLyB2aWEgYW4gYWNjZXNzb3IgYW5kIDAgb3Ro
ZXJ3aXNlLgorICAgICAgICB2aXJ0dWFsIHVpbnQzMl90IGV4ZWNEZXB0aCgpIGNvbnN0IHsgcmV0
dXJuIDA7IH0KKwogICAgIHByb3RlY3RlZDoKICAgICAgICAgU3RhdGVCYXNlKHY4OjpIYW5kbGU8
djg6OlZhbHVlPiBjb21wb3NpdGUsIFN0YXRlQmFzZSogbmV4dCkKICAgICAgICAgICAgIDogbV9j
b21wb3NpdGUoY29tcG9zaXRlKQpAQCAtNDg1LDExICs3NjAsMTMgQEAgcHJpdmF0ZToKICAgICAg
ICAgICAgICwgbV9pbmRleCgwKQogICAgICAgICAgICAgLCBtX251bVNlcmlhbGl6ZWRQcm9wZXJ0
aWVzKDApCiAgICAgICAgICAgICAsIG1fbmFtZURvbmUoZmFsc2UpCisgICAgICAgICAgICAsIG1f
c2VyaWFsaXppbmdBY2Nlc3NvcihmYWxzZSkKICAgICAgICAgewogICAgICAgICB9CiAKICAgICAg
ICAgdmlydHVhbCBTdGF0ZUJhc2UqIGFkdmFuY2UoU2VyaWFsaXplciYgc2VyaWFsaXplcikKICAg
ICAgICAgeworICAgICAgICAgICAgbV9zZXJpYWxpemluZ0FjY2Vzc29yID0gZmFsc2U7CiAgICAg
ICAgICAgICBpZiAoIW1faW5kZXgpIHsKICAgICAgICAgICAgICAgICBtX3Byb3BlcnR5TmFtZXMg
PSBjb21wb3NpdGUoKS0+R2V0UHJvcGVydHlOYW1lcygpOwogICAgICAgICAgICAgICAgIGlmIChT
dGF0ZUJhc2UqIG5ld1N0YXRlID0gc2VyaWFsaXplci5jaGVja0V4Y2VwdGlvbih0aGlzKSkKQEAg
LTQ5OCw2ICs3NzUsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgICAgICByZXR1cm4gc2Vy
aWFsaXplci5yZXBvcnRGYWlsdXJlKHRoaXMpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAg
d2hpbGUgKG1faW5kZXggPCBtX3Byb3BlcnR5TmFtZXMtPkxlbmd0aCgpKSB7CisgICAgICAgICAg
ICAgICAgYm9vbCBpc0FjY2Vzc29yID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgaWYgKCFtX25h
bWVEb25lKSB7CiAgICAgICAgICAgICAgICAgICAgIHY4OjpMb2NhbDx2ODo6VmFsdWU+IHByb3Bl
cnR5TmFtZSA9IG1fcHJvcGVydHlOYW1lcy0+R2V0KG1faW5kZXgpOwogICAgICAgICAgICAgICAg
ICAgICBpZiAoU3RhdGVCYXNlKiBuZXdTdGF0ZSA9IHNlcmlhbGl6ZXIuY2hlY2tFeGNlcHRpb24o
dGhpcykpCkBAIC01MTAsNiArNzg4LDkgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICAgICAg
Ym9vbCBoYXNJbmRleGVkUHJvcGVydHkgPSAhaGFzU3RyaW5nUHJvcGVydHkgJiYgcHJvcGVydHlO
YW1lLT5Jc1VpbnQzMigpICYmIGNvbXBvc2l0ZSgpLT5IYXNSZWFsSW5kZXhlZFByb3BlcnR5KHBy
b3BlcnR5TmFtZS0+VWludDMyVmFsdWUoKSk7CiAgICAgICAgICAgICAgICAgICAgIGlmIChTdGF0
ZUJhc2UqIG5ld1N0YXRlID0gc2VyaWFsaXplci5jaGVja0V4Y2VwdGlvbih0aGlzKSkKICAgICAg
ICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXdTdGF0ZTsKKyAgICAgICAgICAgICAgICAgICAg
aXNBY2Nlc3NvciA9IGhhc1N0cmluZ1Byb3BlcnR5ICYmIGNvbXBvc2l0ZSgpLT5IYXNSZWFsTmFt
ZWRDYWxsYmFja1Byb3BlcnR5KHByb3BlcnR5TmFtZS5Bczx2ODo6U3RyaW5nPigpKTsgCisgICAg
ICAgICAgICAgICAgICAgIGlmIChTdGF0ZUJhc2UqIG5ld1N0YXRlID0gc2VyaWFsaXplci5jaGVj
a0V4Y2VwdGlvbih0aGlzKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXdTdGF0
ZTsKICAgICAgICAgICAgICAgICAgICAgaWYgKGhhc1N0cmluZ1Byb3BlcnR5IHx8IGhhc0luZGV4
ZWRQcm9wZXJ0eSkKICAgICAgICAgICAgICAgICAgICAgICAgIG1fcHJvcGVydHlOYW1lID0gcHJv
cGVydHlOYW1lOwogICAgICAgICAgICAgICAgICAgICBlbHNlIHsKQEAgLTUzMCwxMiArODExLDE2
IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgbV9wcm9wZXJ0eU5hbWUuQ2xlYXIoKTsKICAg
ICAgICAgICAgICAgICArK21faW5kZXg7CiAgICAgICAgICAgICAgICAgKyttX251bVNlcmlhbGl6
ZWRQcm9wZXJ0aWVzOworICAgICAgICAgICAgICAgIG1fc2VyaWFsaXppbmdBY2Nlc3NvciA9IGlz
QWNjZXNzb3I7CiAgICAgICAgICAgICAgICAgaWYgKFN0YXRlQmFzZSogbmV3U3RhdGUgPSBzZXJp
YWxpemVyLmRvU2VyaWFsaXplKHZhbHVlLCB0aGlzKSkKICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIG5ld1N0YXRlOworICAgICAgICAgICAgICAgIG1fc2VyaWFsaXppbmdBY2Nlc3NvciA9IGZh
bHNlOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgcmV0dXJuIG9iamVjdERvbmUobV9udW1T
ZXJpYWxpemVkUHJvcGVydGllcywgc2VyaWFsaXplcik7CiAgICAgICAgIH0KIAorICAgICAgICB2
aXJ0dWFsIHVpbnQzMl90IGV4ZWNEZXB0aCgpIGNvbnN0IHsgcmV0dXJuIG1fc2VyaWFsaXppbmdB
Y2Nlc3NvciA/IDEgOiAwOyB9CisKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIHZpcnR1YWwgU3Rh
dGVCYXNlKiBvYmplY3REb25lKHVuc2lnbmVkIG51bVByb3BlcnRpZXMsIFNlcmlhbGl6ZXImKSA9
IDA7CiAKQEAgLTU0NSw2ICs4MzAsNyBAQCBwcml2YXRlOgogICAgICAgICB1bnNpZ25lZCBtX2lu
ZGV4OwogICAgICAgICB1bnNpZ25lZCBtX251bVNlcmlhbGl6ZWRQcm9wZXJ0aWVzOwogICAgICAg
ICBib29sIG1fbmFtZURvbmU7CisgICAgICAgIGJvb2wgbV9zZXJpYWxpemluZ0FjY2Vzc29yOwog
ICAgIH07CiAKICAgICBjbGFzcyBPYmplY3RTdGF0ZSA6IHB1YmxpYyBBYnN0cmFjdE9iamVjdFN0
YXRlIHsKQEAgLTU3NSw5ICs4NjEsMTYgQEAgcHJpdmF0ZToKICAgICAgICAgfQogICAgIH07CiAK
KyAgICB1aW50MzJfdCBleGVjRGVwdGgoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1f
ZXhlY0RlcHRoOworICAgIH0KKwogICAgIFN0YXRlQmFzZSogcHVzaChTdGF0ZUJhc2UqIHN0YXRl
KQogICAgIHsKICAgICAgICAgQVNTRVJUKHN0YXRlKTsKKyAgICAgICAgaWYgKHN0YXRlLT5uZXh0
U3RhdGUoKSkKKyAgICAgICAgICAgIG1fZXhlY0RlcHRoICs9IHN0YXRlLT5uZXh0U3RhdGUoKS0+
ZXhlY0RlcHRoKCk7CiAgICAgICAgICsrbV9kZXB0aDsKICAgICAgICAgcmV0dXJuIGNoZWNrQ29t
cG9zaXRlKHN0YXRlKSA/IHN0YXRlIDogaGFuZGxlRXJyb3IoSW5wdXRFcnJvciwgc3RhdGUpOwog
ICAgIH0KQEAgLTU4Nyw2ICs4ODAsOCBAQCBwcml2YXRlOgogICAgICAgICBBU1NFUlQoc3RhdGUp
OwogICAgICAgICAtLW1fZGVwdGg7CiAgICAgICAgIFN0YXRlQmFzZSogbmV4dCA9IHN0YXRlLT5u
ZXh0U3RhdGUoKTsKKyAgICAgICAgaWYgKG5leHQpCisgICAgICAgICAgICBtX2V4ZWNEZXB0aCAt
PSBuZXh0LT5leGVjRGVwdGgoKTsKICAgICAgICAgZGVsZXRlIHN0YXRlOwogICAgICAgICByZXR1
cm4gbmV4dDsKICAgICB9CkBAIC01OTksNiArODk0LDggQEAgcHJpdmF0ZToKICAgICAgICAgICAg
IFN0YXRlQmFzZSogdG1wID0gc3RhdGUtPm5leHRTdGF0ZSgpOwogICAgICAgICAgICAgZGVsZXRl
IHN0YXRlOwogICAgICAgICAgICAgc3RhdGUgPSB0bXA7CisgICAgICAgICAgICBpZiAoc3RhdGUp
CisgICAgICAgICAgICAgICAgbV9leGVjRGVwdGggLT0gc3RhdGUtPmV4ZWNEZXB0aCgpOwogICAg
ICAgICB9CiAgICAgICAgIHJldHVybiBuZXcgRXJyb3JTdGF0ZTsKICAgICB9CkBAIC02MTgsNiAr
OTE1LDExIEBAIHByaXZhdGU6CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAorICAgIHZv
aWQgd3JpdGVOdWxsKCkKKyAgICB7CisgICAgICAgIG1fd3JpdGVyLndyaXRlTnVsbCgpOworICAg
IH0KKwogICAgIHZvaWQgd3JpdGVTdHJpbmcodjg6OkhhbmRsZTx2ODo6VmFsdWU+IHZhbHVlKQog
ICAgIHsKICAgICAgICAgdjg6OlN0cmluZzo6VXRmOFZhbHVlIHN0cmluZ1ZhbHVlKHZhbHVlKTsK
QEAgLTY2Myw2ICs5NjUsMzUgQEAgcHJpdmF0ZToKICAgICAgICAgbV93cml0ZXIud3JpdGVSZWdF
eHAocmVnRXhwLT5HZXRTb3VyY2UoKSwgcmVnRXhwLT5HZXRGbGFncygpKTsKICAgICB9CiAKKyAg
ICBTdGF0ZUJhc2UqIHdyaXRlQW5kR3JleUFycmF5QnVmZmVyVmlldyh2ODo6SGFuZGxlPHY4OjpP
YmplY3Q+IG9iamVjdCwgU3RhdGVCYXNlKiBuZXh0KQorICAgIHsKKyAgICAgICAgQVNTRVJUKCFv
YmplY3QuSXNFbXB0eSgpKTsKKyAgICAgICAgQXJyYXlCdWZmZXJWaWV3KiBhcnJheUJ1ZmZlclZp
ZXcgPSBWOEFycmF5QnVmZmVyVmlldzo6dG9OYXRpdmUob2JqZWN0KTsKKyAgICAgICAgaWYgKCFh
cnJheUJ1ZmZlclZpZXcpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHY4OjpI
YW5kbGU8djg6OlZhbHVlPiB1bmRlcmx5aW5nQnVmZmVyID0gdG9WOChhcnJheUJ1ZmZlclZpZXct
PmJ1ZmZlcigpKTsKKyAgICAgICAgaWYgKHVuZGVybHlpbmdCdWZmZXIuSXNFbXB0eSgpKQorICAg
ICAgICAgICAgcmV0dXJuIGhhbmRsZUVycm9yKERhdGFDbG9uZUVycm9yLCBuZXh0KTsKKyAgICAg
ICAgU3RhdGVCYXNlKiBzdGF0ZU91dCA9IGRvU2VyaWFsaXplKHVuZGVybHlpbmdCdWZmZXIsIDAp
OworICAgICAgICBpZiAoc3RhdGVPdXQpCisgICAgICAgICAgICByZXR1cm4gaGFuZGxlRXJyb3Io
RGF0YUNsb25lRXJyb3IsIG5leHQpOworICAgICAgICBtX3dyaXRlci53cml0ZUFycmF5QnVmZmVy
VmlldygqYXJyYXlCdWZmZXJWaWV3KTsKKyAgICAgICAgLy8gVGhpcyBzaG91bGQgYmUgc2FmZTog
d2Ugc2VyaWFsaXplIHNvbWV0aGluZyB0aGF0IHdlIGtub3cgdG8gYmUgYSB3cmFwcGVyIChzZWUK
KyAgICAgICAgLy8gdGhlIHRvVjggY2FsbCBhYm92ZSksIHNvIHRoZSBjYWxsIHRvIGRvU2VyaWFs
aXplIGFib3ZlIHNob3VsZCBuZWl0aGVyIGNhdXNlCisgICAgICAgIC8vIHRoZSBzdGFjayB0byBv
dmVyZmxvdyBub3Igc2hvdWxkIGl0IGhhdmUgdGhlIHBvdGVudGlhbCB0byByZWFjaCB0aGlzCisg
ICAgICAgIC8vIEFycmF5QnVmZmVyVmlldyBhZ2Fpbi4KKyAgICAgICAgZ3JleU9iamVjdChvYmpl
Y3QpOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICB2b2lkIHdyaXRlQXJyYXlCdWZm
ZXIodjg6OkhhbmRsZTx2ODo6VmFsdWU+IHZhbHVlKQorICAgIHsKKyAgICAgICAgQXJyYXlCdWZm
ZXIqIGFycmF5QnVmZmVyID0gVjhBcnJheUJ1ZmZlcjo6dG9OYXRpdmUodmFsdWUuQXM8djg6Ok9i
amVjdD4oKSk7CisgICAgICAgIGlmICghYXJyYXlCdWZmZXIpCisgICAgICAgICAgICByZXR1cm47
CisgICAgICAgIG1fd3JpdGVyLndyaXRlQXJyYXlCdWZmZXIoKmFycmF5QnVmZmVyKTsKKyAgICB9
CisKICAgICBzdGF0aWMgU3RhdGVCYXNlKiBuZXdBcnJheVN0YXRlKHY4OjpIYW5kbGU8djg6OkFy
cmF5PiBhcnJheSwgU3RhdGVCYXNlKiBuZXh0KQogICAgIHsKICAgICAgICAgLy8gRklYTUU6IHVz
ZSBwbGFpbiBBcnJheSBzdGF0ZSB3aGVuIHdlIGNhbiBxdWlja2x5IGNoZWNrIHRoYXQKQEAgLTY3
NiwyMCArMTAwNyw1MSBAQCBwcml2YXRlOgogICAgICAgICByZXR1cm4gbmV3IE9iamVjdFN0YXRl
KG9iamVjdCwgbmV4dCk7CiAgICAgfQogCisgICAgdWludDMyX3QgZ3JleU9iamVjdChjb25zdCB2
ODo6SGFuZGxlPHY4OjpPYmplY3Q+JiBvYmplY3QpCisgICAgeworICAgICAgICBBU1NFUlQoIW1f
b2JqZWN0UG9vbC5jb250YWlucyhvYmplY3QpKTsKKyAgICAgICAgdWludDMyX3Qgb2JqZWN0SWQg
PSBtX25leHRPYmplY3RJZCsrOworICAgICAgICBtX29iamVjdFBvb2wuc2V0KG9iamVjdCwgb2Jq
ZWN0SWQpOworICAgICAgICByZXR1cm4gb2JqZWN0SWQ7CisgICAgfQorCiAgICAgV3JpdGVyJiBt
X3dyaXRlcjsKICAgICB2ODo6VHJ5Q2F0Y2gmIG1fdHJ5Q2F0Y2g7CiAgICAgaW50IG1fZGVwdGg7
CisgICAgaW50IG1fZXhlY0RlcHRoOwogICAgIFN0YXR1cyBtX3N0YXR1czsKKyAgICB0eXBlZGVm
IFY4R2NIYW5kbGVNYXA8djg6Ok9iamVjdCwgdWludDMyX3Q+IE9iamVjdFBvb2w7CisgICAgT2Jq
ZWN0UG9vbCBtX29iamVjdFBvb2w7CisgICAgdWludDMyX3QgbV9uZXh0T2JqZWN0SWQ7CiB9Owog
CiBTZXJpYWxpemVyOjpTdGF0ZUJhc2UqIFNlcmlhbGl6ZXI6OmRvU2VyaWFsaXplKHY4OjpIYW5k
bGU8djg6OlZhbHVlPiB2YWx1ZSwgU3RhdGVCYXNlKiBuZXh0KQogewotICAgIGlmICh2YWx1ZS5J
c0VtcHR5KCkpCisjaWZkZWYgU1NWX0RFQlVHCisgICAgcHJpbnRmKCJcblxuZG9TZXJpYWxpemUg
KGV4ZWMgZGVwdGggJWQsIG5leHQgZXhlYyBkZXB0aDogJWQpOiAiLCBtX2V4ZWNEZXB0aCwgKG5l
eHQgPyBuZXh0LT5leGVjRGVwdGgoKSA6IDApKTsKKyNlbmRpZgorICAgIGlmIChtX2V4ZWNEZXB0
aCArIChuZXh0ID8gbmV4dC0+ZXhlY0RlcHRoKCkgOiAwKSA+IDEpIHsKKyNpZmRlZiBTU1ZfREVC
VUcKKyAgICAgICAgcHJpbnRmKCIobnVsbGluZylcbiIpOworI2VuZGlmCisgICAgICAgIG1fd3Jp
dGVyLndyaXRlTnVsbCgpOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisjaWZkZWYgU1NWX0RF
QlVHCisgICAgcHJpbnRmKCJcbiIpOworI2VuZGlmCisgICAgbV93cml0ZXIud3JpdGVDaGVja1Jl
ZihtX25leHRPYmplY3RJZCk7CisgICAgdWludDMyX3Qgb2JqZWN0UG9vbE9mZnNldDsKKyAgICBp
ZiAoKHZhbHVlLT5Jc09iamVjdCgpIHx8IHZhbHVlLT5Jc0RhdGUoKSB8fCB2YWx1ZS0+SXNSZWdF
eHAoKSkKKyAgICAgICAgJiYgbV9vYmplY3RQb29sLnRyeUdldCh2YWx1ZS5Bczx2ODo6T2JqZWN0
PigpLCBvYmplY3RQb29sT2Zmc2V0KSkgeworICAgICAgICBBU1NFUlQoIXZhbHVlLT5Jc1N0cmlu
ZygpKTsKKyAgICAgICAgbV93cml0ZXIud3JpdGVPYmplY3RPZmZzZXQob2JqZWN0UG9vbE9mZnNl
dCk7CisgICAgfSBlbHNlIGlmICh2YWx1ZS5Jc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiByZXBv
cnRGYWlsdXJlKG5leHQpOwotICAgIGlmICh2YWx1ZS0+SXNVbmRlZmluZWQoKSkKKyAgICBlbHNl
IGlmICh2YWx1ZS0+SXNVbmRlZmluZWQoKSkKICAgICAgICAgbV93cml0ZXIud3JpdGVVbmRlZmlu
ZWQoKTsKICAgICBlbHNlIGlmICh2YWx1ZS0+SXNOdWxsKCkpCi0gICAgICAgIG1fd3JpdGVyLndy
aXRlTnVsbCgpOworICAgICAgICB3cml0ZU51bGwoKTsKICAgICBlbHNlIGlmICh2YWx1ZS0+SXNU
cnVlKCkpCiAgICAgICAgIG1fd3JpdGVyLndyaXRlVHJ1ZSgpOwogICAgIGVsc2UgaWYgKHZhbHVl
LT5Jc0ZhbHNlKCkpCkBAIC02OTgsMjYgKzEwNjAsNTIgQEAgU2VyaWFsaXplcjo6U3RhdGVCYXNl
KiBTZXJpYWxpemVyOjpkb1NlcmlhbGl6ZSh2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdmFsdWUsIFN0
YXQKICAgICAgICAgbV93cml0ZXIud3JpdGVJbnQzMih2YWx1ZS0+SW50MzJWYWx1ZSgpKTsKICAg
ICBlbHNlIGlmICh2YWx1ZS0+SXNVaW50MzIoKSkKICAgICAgICAgbV93cml0ZXIud3JpdGVVaW50
MzIodmFsdWUtPlVpbnQzMlZhbHVlKCkpOwotICAgIGVsc2UgaWYgKHZhbHVlLT5Jc0RhdGUoKSkK
LSAgICAgICAgbV93cml0ZXIud3JpdGVEYXRlKHZhbHVlLT5OdW1iZXJWYWx1ZSgpKTsKICAgICBl
bHNlIGlmICh2YWx1ZS0+SXNOdW1iZXIoKSkKICAgICAgICAgbV93cml0ZXIud3JpdGVOdW1iZXIo
dmFsdWUuQXM8djg6Ok51bWJlcj4oKS0+VmFsdWUoKSk7Ci0gICAgZWxzZSBpZiAodmFsdWUtPklz
U3RyaW5nKCkpCisgICAgZWxzZSBpZiAoVjhBcnJheUJ1ZmZlclZpZXc6Okhhc0luc3RhbmNlKHZh
bHVlKSkgCisgICAgICAgIHJldHVybiB3cml0ZUFuZEdyZXlBcnJheUJ1ZmZlclZpZXcodmFsdWUu
QXM8djg6Ok9iamVjdD4oKSwgbmV4dCk7CisgICAgZWxzZSBpZiAodmFsdWUtPklzU3RyaW5nKCkp
IHsKKyAgICAgICAgLy8gVGhlIHY4IEFQSSBjYWxscyBzdHJpbmdzIHByaW1pdGl2ZXMsIG5vdCBv
YmplY3RzLiBXZSdsbCBsYXRlciBkZXNlcmlhbGl6ZSB0aGVtIHRvIHRoZQorICAgICAgICAvLyBv
YmplY3QgcG9vbCwgdGhvdWdoLCBzbyB3ZSBjYW4gZGVkdXBsaWNhdGUgaW4gdGhlIGZ1dHVyZS4K
KyAgICAgICAgKyttX25leHRPYmplY3RJZDsKICAgICAgICAgd3JpdGVTdHJpbmcodmFsdWUpOwot
ICAgIGVsc2UgaWYgKHZhbHVlLT5Jc0FycmF5KCkpCi0gICAgICAgIHJldHVybiBwdXNoKG5ld0Fy
cmF5U3RhdGUodmFsdWUuQXM8djg6OkFycmF5PigpLCBuZXh0KSk7Ci0gICAgZWxzZSBpZiAoVjhG
aWxlOjpIYXNJbnN0YW5jZSh2YWx1ZSkpCi0gICAgICAgIHdyaXRlRmlsZSh2YWx1ZSk7Ci0gICAg
ZWxzZSBpZiAoVjhCbG9iOjpIYXNJbnN0YW5jZSh2YWx1ZSkpCi0gICAgICAgIHdyaXRlQmxvYih2
YWx1ZSk7Ci0gICAgZWxzZSBpZiAoVjhGaWxlTGlzdDo6SGFzSW5zdGFuY2UodmFsdWUpKQotICAg
ICAgICB3cml0ZUZpbGVMaXN0KHZhbHVlKTsKLSAgICBlbHNlIGlmIChWOEltYWdlRGF0YTo6SGFz
SW5zdGFuY2UodmFsdWUpKQotICAgICAgICB3cml0ZUltYWdlRGF0YSh2YWx1ZSk7Ci0gICAgZWxz
ZSBpZiAodmFsdWUtPklzUmVnRXhwKCkpCi0gICAgICAgIHdyaXRlUmVnRXhwKHZhbHVlKTsKLSAg
ICBlbHNlIGlmICh2YWx1ZS0+SXNPYmplY3QoKSkKLSAgICAgICAgcmV0dXJuIHB1c2gobmV3T2Jq
ZWN0U3RhdGUodmFsdWUuQXM8djg6Ok9iamVjdD4oKSwgbmV4dCkpOworICAgIH0gZWxzZSB7Cisg
ICAgICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4ganNPYmplY3QgPSB2YWx1ZS5Bczx2ODo6T2Jq
ZWN0PigpOworICAgICAgICBBU1NFUlQoIWpzT2JqZWN0LklzRW1wdHkoKSk7CisgICAgICAgIGdy
ZXlPYmplY3QoanNPYmplY3QpOworICAgICAgICBpZiAodmFsdWUtPklzRGF0ZSgpKQorICAgICAg
ICAgICAgbV93cml0ZXIud3JpdGVEYXRlKHZhbHVlLT5OdW1iZXJWYWx1ZSgpKTsKKyAgICAgICAg
ZWxzZSBpZiAodmFsdWUtPklzQXJyYXkoKSkgeworICAgICAgICAgICAgbV93cml0ZXIud3JpdGVH
ZW5lcmF0ZUZyZXNoQXJyYXkodmFsdWUuQXM8djg6OkFycmF5PigpLT5MZW5ndGgoKSk7CisgICAg
ICAgICAgICByZXR1cm4gcHVzaChuZXdBcnJheVN0YXRlKHZhbHVlLkFzPHY4OjpBcnJheT4oKSwg
bmV4dCkpOworICAgICAgICB9IGVsc2UgaWYgKFY4RmlsZTo6SGFzSW5zdGFuY2UodmFsdWUpKQor
ICAgICAgICAgICAgd3JpdGVGaWxlKHZhbHVlKTsKKyAgICAgICAgZWxzZSBpZiAoVjhCbG9iOjpI
YXNJbnN0YW5jZSh2YWx1ZSkpCisgICAgICAgICAgICB3cml0ZUJsb2IodmFsdWUpOworICAgICAg
ICBlbHNlIGlmIChWOEZpbGVMaXN0OjpIYXNJbnN0YW5jZSh2YWx1ZSkpCisgICAgICAgICAgICB3
cml0ZUZpbGVMaXN0KHZhbHVlKTsKKyAgICAgICAgZWxzZSBpZiAoVjhJbWFnZURhdGE6Okhhc0lu
c3RhbmNlKHZhbHVlKSkKKyAgICAgICAgICAgIHdyaXRlSW1hZ2VEYXRhKHZhbHVlKTsKKyAgICAg
ICAgZWxzZSBpZiAodmFsdWUtPklzUmVnRXhwKCkpCisgICAgICAgICAgICB3cml0ZVJlZ0V4cCh2
YWx1ZSk7CisgICAgICAgIGVsc2UgaWYgKFY4QXJyYXlCdWZmZXI6Okhhc0luc3RhbmNlKHZhbHVl
KSkKKyAgICAgICAgICAgIHdyaXRlQXJyYXlCdWZmZXIodmFsdWUpOworICAgICAgICBlbHNlIGlm
ICh2YWx1ZS0+SXNPYmplY3QoKSkgeworICAgICAgICAgICAgLy8gSWYgdGhlIG9iamVjdCBoYXMg
YW55IGludGVybmFsIGZpZWxkcywgdGhlbiB3ZSB3b24ndCBiZSBhYmxlIHRvIHNlcmlhbGl6ZSBv
ciBkZXNlcmlhbGl6ZQorICAgICAgICAgICAgLy8gdGhlbTsgY29udmVuaWVudGx5LCB0aGlzIGlz
IGFsc28gYSBxdWljayB3YXkgdG8gZGV0ZWN0IERPTSB3cmFwcGVyIG9iamVjdHMsIGJlY2F1c2UK
KyAgICAgICAgICAgIC8vIHRoZSBtZWNoYW5pc20gZm9yIHRoZXNlIHJlbGllcyBvbiBkYXRhIHN0
b3JlZCBpbiB0aGVzZSBmaWVsZHMuIEZ1cnRoZXJtb3JlLCB3ZSBzaG91bGQKKyAgICAgICAgICAg
IC8vIGNhdGNoIGV4dGVybmFsIGFycmF5IGRhdGEgYW5kIGV4dGVybmFsIHBpeGVsIGRhdGEgYWJv
dmUgKG5vdGluZyB0aGF0IENhbnZhc1BpeGVsQXJyYXlzCisgICAgICAgICAgICAvLyBjYW4ndCBi
ZSBzZXJpYWxpemVkIHdpdGhvdXQgYmVpbmcgd3JhcHBlZCBieSBJbWFnZURhdGEgYWNjb3JkaW5n
IHRvIHRoZSBzdGFuZGFyZCkuCisgICAgICAgICAgICBpZiAoanNPYmplY3QtPkludGVybmFsRmll
bGRDb3VudCgpCisgICAgICAgICAgICAgICAgfHwganNPYmplY3QtPkhhc0luZGV4ZWRQcm9wZXJ0
aWVzSW5QaXhlbERhdGEoKQorICAgICAgICAgICAgICAgIHx8IGpzT2JqZWN0LT5IYXNJbmRleGVk
UHJvcGVydGllc0luRXh0ZXJuYWxBcnJheURhdGEoKQorICAgICAgICAgICAgICAgIHx8IGpzT2Jq
ZWN0LT5Jc0NhbGxhYmxlKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGhhbmRsZUVycm9yKERh
dGFDbG9uZUVycm9yLCBuZXh0KTsKKyAgICAgICAgICAgIG1fd3JpdGVyLndyaXRlR2VuZXJhdGVG
cmVzaE9iamVjdCgpOworICAgICAgICAgICAgcmV0dXJuIHB1c2gobmV3T2JqZWN0U3RhdGUoanNP
YmplY3QsIG5leHQpKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICByZXR1cm4gaGFuZGxl
RXJyb3IoRGF0YUNsb25lRXJyb3IsIG5leHQpOworICAgIH0KICAgICByZXR1cm4gMDsKIH0KIApA
QCAtNzI2LDkgKzExMTQsMTUgQEAgY2xhc3MgQ29tcG9zaXRlQ3JlYXRvciB7CiBwdWJsaWM6CiAg
ICAgdmlydHVhbCB+Q29tcG9zaXRlQ3JlYXRvcigpIHsgfQogCi0gICAgdmlydHVhbCBib29sIGNy
ZWF0ZUFycmF5KHVpbnQzMl90IGxlbmd0aCwgdjg6OkhhbmRsZTx2ODo6VmFsdWU+KiB2YWx1ZSkg
PSAwOwotICAgIHZpcnR1YWwgYm9vbCBjcmVhdGVPYmplY3QodWludDMyX3QgbnVtUHJvcGVydGll
cywgdjg6OkhhbmRsZTx2ODo6VmFsdWU+KiB2YWx1ZSkgPSAwOwotICAgIHZpcnR1YWwgYm9vbCBj
cmVhdGVTcGFyc2VBcnJheSh1aW50MzJfdCBudW1Qcm9wZXJ0aWVzLCB1aW50MzJfdCBsZW5ndGgs
IHY4OjpIYW5kbGU8djg6OlZhbHVlPiogdmFsdWUpID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgY29u
c3VtZVRvcE9mU3RhY2sodjg6OkhhbmRsZTx2ODo6VmFsdWU+JikgPSAwOworICAgIHZpcnR1YWwg
dWludDMyX3Qgb2JqZWN0UmVmZXJlbmNlQ291bnQoKSA9IDA7CisgICAgdmlydHVhbCBjb25zdCB2
ODo6SGFuZGxlPHY4OjpWYWx1ZT4mIHB1c2hPYmplY3RSZWZlcmVuY2UoY29uc3Qgdjg6OkhhbmRs
ZTx2ODo6VmFsdWU+JikgPSAwOworICAgIHZpcnR1YWwgYm9vbCBnZXRPYmplY3RSZWZlcmVuY2Uo
dWludDMyX3QgcmVmLCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4qKSA9IDA7CisgICAgdmlydHVhbCBi
b29sIHByZXBhcmVFbXB0eUFycmF5KHVpbnQzMl90IGxlbmd0aCkgPSAwOworICAgIHZpcnR1YWwg
Ym9vbCBwcmVwYXJlRW1wdHlPYmplY3QoKSA9IDA7CisgICAgdmlydHVhbCBib29sIGZpbmlzaEFy
cmF5KHVpbnQzMl90IGxlbmd0aCwgdjg6OkhhbmRsZTx2ODo6VmFsdWU+KikgPSAwOworICAgIHZp
cnR1YWwgYm9vbCBmaW5pc2hPYmplY3QodWludDMyX3QgbnVtUHJvcGVydGllcywgdjg6OkhhbmRs
ZTx2ODo6VmFsdWU+KikgPSAwOworICAgIHZpcnR1YWwgYm9vbCBmaW5pc2hTcGFyc2VBcnJheSh1
aW50MzJfdCBudW1Qcm9wZXJ0aWVzLCB1aW50MzJfdCBsZW5ndGgsIHY4OjpIYW5kbGU8djg6OlZh
bHVlPiopID0gMDsKIH07CiAKIC8vIFJlYWRlciBpcyByZXNwb25zaWJsZSBmb3IgZGVzZXJpYWxp
emluZyBwcmltaXRpdmUgdHlwZXMgYW5kCkBAIC03NTEsNiArMTE0NSwxNCBAQCBwdWJsaWM6CiAg
ICAgICAgIGlmICghcmVhZFRhZygmdGFnKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICAgICAgc3dpdGNoICh0YWcpIHsKKyAgICAgICAgY2FzZSBDaGVja1JlZlRhZzogeworICAgICAg
ICAgICAgdWludDMyX3QgcmVmVGFibGVTaXplOworICAgICAgICAgICAgaWYgKCFkb1JlYWRVaW50
MzIoJnJlZlRhYmxlU2l6ZSkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAg
ICAgICAgaWYgKHJlZlRhYmxlU2l6ZSAhPSBjcmVhdG9yLm9iamVjdFJlZmVyZW5jZUNvdW50KCkp
CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgcmV0dXJuIHRydWU7
CisgICAgICAgIH0gICAKICAgICAgICAgY2FzZSBJbnZhbGlkVGFnOgogICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgICAgICBjYXNlIFBhZGRpbmdUYWc6CkBAIC03NzAsNiArMTE3Miw3IEBA
IHB1YmxpYzoKICAgICAgICAgY2FzZSBTdHJpbmdUYWc6CiAgICAgICAgICAgICBpZiAoIXJlYWRT
dHJpbmcodmFsdWUpKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAg
IGNyZWF0b3IucHVzaE9iamVjdFJlZmVyZW5jZSgqdmFsdWUpOwogICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIGNhc2UgSW50MzJUYWc6CiAgICAgICAgICAgICBpZiAoIXJlYWRJbnQzMih2YWx1
ZSkpCkBAIC03ODIsNiArMTE4NSw3IEBAIHB1YmxpYzoKICAgICAgICAgY2FzZSBEYXRlVGFnOgog
ICAgICAgICAgICAgaWYgKCFyZWFkRGF0ZSh2YWx1ZSkpCiAgICAgICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgICAgICAgICAgY3JlYXRvci5wdXNoT2JqZWN0UmVmZXJlbmNlKCp2YWx1ZSk7
CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBOdW1iZXJUYWc6CiAgICAgICAgICAg
ICBpZiAoIXJlYWROdW1iZXIodmFsdWUpKQpAQCAtNzkwLDM2ICsxMTk0LDQxIEBAIHB1YmxpYzoK
ICAgICAgICAgY2FzZSBCbG9iVGFnOgogICAgICAgICAgICAgaWYgKCFyZWFkQmxvYih2YWx1ZSkp
CiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgY3JlYXRvci5wdXNo
T2JqZWN0UmVmZXJlbmNlKCp2YWx1ZSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2Fz
ZSBGaWxlVGFnOgogICAgICAgICAgICAgaWYgKCFyZWFkRmlsZSh2YWx1ZSkpCiAgICAgICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgY3JlYXRvci5wdXNoT2JqZWN0UmVmZXJl
bmNlKCp2YWx1ZSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBGaWxlTGlzdFRh
ZzoKICAgICAgICAgICAgIGlmICghcmVhZEZpbGVMaXN0KHZhbHVlKSkKICAgICAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBjcmVhdG9yLnB1c2hPYmplY3RSZWZlcmVuY2Uo
KnZhbHVlKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEltYWdlRGF0YVRhZzoK
ICAgICAgICAgICAgIGlmICghcmVhZEltYWdlRGF0YSh2YWx1ZSkpCiAgICAgICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgICAgICAgICAgY3JlYXRvci5wdXNoT2JqZWN0UmVmZXJlbmNlKCp2
YWx1ZSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBBcnJheVRhZzogewogICAg
ICAgICAgICAgdWludDMyX3QgbGVuZ3RoOwogICAgICAgICAgICAgaWYgKCFkb1JlYWRVaW50MzIo
Jmxlbmd0aCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgaWYg
KCFjcmVhdG9yLmNyZWF0ZUFycmF5KGxlbmd0aCwgdmFsdWUpKQorICAgICAgICAgICAgaWYgKCFj
cmVhdG9yLmZpbmlzaEFycmF5KGxlbmd0aCwgdmFsdWUpKQogICAgICAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2UgUmVn
RXhwVGFnOgogICAgICAgICAgICAgaWYgKCFyZWFkUmVnRXhwKHZhbHVlKSkKICAgICAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBjcmVhdG9yLnB1c2hPYmplY3RSZWZlcmVu
Y2UoKnZhbHVlKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIE9iamVjdFRhZzog
ewogICAgICAgICAgICAgdWludDMyX3QgbnVtUHJvcGVydGllczsKICAgICAgICAgICAgIGlmICgh
ZG9SZWFkVWludDMyKCZudW1Qcm9wZXJ0aWVzKSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7Ci0gICAgICAgICAgICBpZiAoIWNyZWF0b3IuY3JlYXRlT2JqZWN0KG51bVByb3BlcnRpZXMs
IHZhbHVlKSkKKyAgICAgICAgICAgIGlmICghY3JlYXRvci5maW5pc2hPYmplY3QobnVtUHJvcGVy
dGllcywgdmFsdWUpKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICB9CkBAIC04MzAsNyArMTIzOSw0MSBAQCBwdWJsaWM6CiAgICAgICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgaWYgKCFkb1JlYWRVaW50MzIoJmxl
bmd0aCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgaWYgKCFj
cmVhdG9yLmNyZWF0ZVNwYXJzZUFycmF5KG51bVByb3BlcnRpZXMsIGxlbmd0aCwgdmFsdWUpKQor
ICAgICAgICAgICAgaWYgKCFjcmVhdG9yLmZpbmlzaFNwYXJzZUFycmF5KG51bVByb3BlcnRpZXMs
IGxlbmd0aCwgdmFsdWUpKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGNhc2UgQXJyYXlCdWZmZXJWaWV3VGFnOiB7
CisgICAgICAgICAgICBpZiAoIXJlYWRBcnJheUJ1ZmZlclZpZXcodmFsdWUsIGNyZWF0b3IpKQor
ICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIGNyZWF0b3IucHVzaE9i
amVjdFJlZmVyZW5jZSgqdmFsdWUpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAg
ICAgICAgY2FzZSBBcnJheUJ1ZmZlclRhZzogeworICAgICAgICAgICAgLy8gQXJyYXlCdWZmZXJz
IGFyZSBhbHdheXMgd3JpdHRlbiBiZWZvcmUgZGVwZW5kYW50IEFycmF5QnVmZmVyVmlld3MuCisg
ICAgICAgICAgICBpZiAoIXJlYWRBcnJheUJ1ZmZlcih2YWx1ZSkpCisgICAgICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgICAgICAgICAgY3JlYXRvci5wdXNoT2JqZWN0UmVmZXJlbmNlKCp2
YWx1ZSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBjYXNlIEdlbmVy
YXRlRnJlc2hPYmplY3RUYWc6IHsKKyAgICAgICAgICAgIGlmICghY3JlYXRvci5wcmVwYXJlRW1w
dHlPYmplY3QoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBjYXNlIEdlbmVyYXRlRnJlc2hBcnJheVRh
ZzogeworICAgICAgICAgICAgdWludDMyX3QgbGVuZ3RoOworICAgICAgICAgICAgaWYgKCFkb1Jl
YWRVaW50MzIoJmxlbmd0aCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAg
ICAgICAgaWYgKCFjcmVhdG9yLnByZXBhcmVFbXB0eUFycmF5KGxlbmd0aCkpCisgICAgICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0K
KyAgICAgICAgY2FzZSBPYmplY3RSZWZlcmVuY2VUYWc6IHsKKyAgICAgICAgICAgIHVpbnQzMl90
IHJlZjsKKyAgICAgICAgICAgIGlmICghZG9SZWFkVWludDMyKCZyZWYpKQorICAgICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIGlmICghY3JlYXRvci5nZXRPYmplY3RSZWZl
cmVuY2UocmVmLCB2YWx1ZSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIH0KQEAgLTg0OSw2ICsxMjkyLDE0IEBAIHByaXZhdGU6CiAg
ICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAorICAgIGJvb2wgcmVhZFN1YlRhZyhBcnJheUJ1
ZmZlclZpZXdTdWJUYWcqIHRhZykKKyAgICB7CisgICAgICAgIGlmIChtX3Bvc2l0aW9uID49IG1f
bGVuZ3RoKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAqdGFnID0gc3RhdGlj
X2Nhc3Q8QXJyYXlCdWZmZXJWaWV3U3ViVGFnPihtX2J1ZmZlclttX3Bvc2l0aW9uKytdKTsKKyAg
ICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCiAgICAgYm9vbCByZWFkU3RyaW5nKHY4OjpIYW5k
bGU8djg6OlZhbHVlPiogdmFsdWUpCiAgICAgewogICAgICAgICB1aW50MzJfdCBsZW5ndGg7CkBA
IC05MzIsNiArMTM4MywxMDcgQEAgcHJpdmF0ZToKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
fQogCisgICAgUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4gZG9SZWFkQXJyYXlCdWZmZXIoKQorICAg
IHsKKyAgICAgICAgdWludDMyX3QgYnl0ZUxlbmd0aDsKKyAgICAgICAgaWYgKCFkb1JlYWRVaW50
MzIoJmJ5dGVMZW5ndGgpKQorICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIGlmIChtX3Bv
c2l0aW9uICsgYnl0ZUxlbmd0aCA+IG1fbGVuZ3RoKQorICAgICAgICAgICAgcmV0dXJuIDA7Cisg
ICAgICAgIGNvbnN0IHZvaWQqIGJ1ZmZlclN0YXJ0ID0gbV9idWZmZXIgKyBtX3Bvc2l0aW9uOwor
ICAgICAgICBSZWZQdHI8QXJyYXlCdWZmZXI+IGFycmF5QnVmZmVyID0gQXJyYXlCdWZmZXI6OmNy
ZWF0ZShjb25zdF9jYXN0PHZvaWQqPihidWZmZXJTdGFydCksIGJ5dGVMZW5ndGgpOworICAgICAg
ICBtX3Bvc2l0aW9uICs9IGJ5dGVMZW5ndGg7CisgICAgICAgIHJldHVybiBhcnJheUJ1ZmZlci5y
ZWxlYXNlKCk7CisgICAgfQorCisgICAgYm9vbCByZWFkQXJyYXlCdWZmZXIodjg6OkhhbmRsZTx2
ODo6VmFsdWU+KiB2YWx1ZSkKKyAgICB7CisgICAgICAgIFJlZlB0cjxBcnJheUJ1ZmZlcj4gYXJy
YXlCdWZmZXIgPSBkb1JlYWRBcnJheUJ1ZmZlcigpOworICAgICAgICBpZiAoIWFycmF5QnVmZmVy
KQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAqdmFsdWUgPSB0b1Y4KGFycmF5
QnVmZmVyLnJlbGVhc2UoKSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIGJv
b2wgcmVhZEFycmF5QnVmZmVyVmlldyh2ODo6SGFuZGxlPHY4OjpWYWx1ZT4qIHZhbHVlLCBDb21w
b3NpdGVDcmVhdG9yJiBjcmVhdG9yKQorICAgIHsKKyAgICAgICAgQXJyYXlCdWZmZXJWaWV3U3Vi
VGFnIHN1YlRhZzsKKyAgICAgICAgdWludDMyX3QgYnl0ZU9mZnNldDsKKyAgICAgICAgdWludDMy
X3QgYnl0ZUxlbmd0aDsKKyAgICAgICAgUmVmUHRyPEFycmF5QnVmZmVyPiBhcnJheUJ1ZmZlcjsK
KyAgICAgICAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGFycmF5QnVmZmVyVjhWYWx1ZTsKKyAgICAg
ICAgaWYgKCFyZWFkU3ViVGFnKCZzdWJUYWcpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgICAgICBpZiAoIWRvUmVhZFVpbnQzMigmYnl0ZU9mZnNldCkpCisgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgICAgIGlmICghZG9SZWFkVWludDMyKCZieXRlTGVuZ3RoKSkKKyAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYgKCFjcmVhdG9yLmNvbnN1bWVUb3BPZlN0
YWNrKGFycmF5QnVmZmVyVjhWYWx1ZSkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
ICAgIGFycmF5QnVmZmVyID0gVjhBcnJheUJ1ZmZlcjo6dG9OYXRpdmUoYXJyYXlCdWZmZXJWOFZh
bHVlLkFzPHY4OjpPYmplY3Q+KCkpOworICAgICAgICBpZiAoIWFycmF5QnVmZmVyKQorICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBzd2l0Y2ggKHN1YlRhZykgeworICAgICAgICBj
YXNlIEJ5dGVBcnJheVRhZzoKKyAgICAgICAgICAgICp2YWx1ZSA9IHRvVjgoSW50OEFycmF5Ojpj
cmVhdGUoYXJyYXlCdWZmZXIucmVsZWFzZSgpLCBieXRlT2Zmc2V0LCBieXRlTGVuZ3RoKSk7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBVbnNpZ25lZEJ5dGVBcnJheVRhZzoKKyAg
ICAgICAgICAgICp2YWx1ZSA9IHRvVjgoVWludDhBcnJheTo6Y3JlYXRlKGFycmF5QnVmZmVyLnJl
bGVhc2UoKSwgYnl0ZU9mZnNldCwgYnl0ZUxlbmd0aCkpOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGNhc2UgU2hvcnRBcnJheVRhZzogeworICAgICAgICAgICAgdWludDMyX3Qgc2hvcnRM
ZW5ndGggPSBieXRlTGVuZ3RoIC8gc2l6ZW9mKGludDE2X3QpOworICAgICAgICAgICAgaWYgKHNo
b3J0TGVuZ3RoICogc2l6ZW9mKGludDE2X3QpICE9IGJ5dGVMZW5ndGgpCisgICAgICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgKnZhbHVlID0gdG9WOChJbnQxNkFycmF5Ojpj
cmVhdGUoYXJyYXlCdWZmZXIucmVsZWFzZSgpLCBieXRlT2Zmc2V0LCBzaG9ydExlbmd0aCkpOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgY2FzZSBVbnNpZ25lZFNob3J0
QXJyYXlUYWc6IHsKKyAgICAgICAgICAgIHVpbnQzMl90IHNob3J0TGVuZ3RoID0gYnl0ZUxlbmd0
aCAvIHNpemVvZih1aW50MTZfdCk7CisgICAgICAgICAgICBpZiAoc2hvcnRMZW5ndGggKiBzaXpl
b2YoaW50MTZfdCkgIT0gYnl0ZUxlbmd0aCkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgICAgICAgICAqdmFsdWUgPSB0b1Y4KFVpbnQxNkFycmF5OjpjcmVhdGUoYXJyYXlCdWZm
ZXIucmVsZWFzZSgpLCBieXRlT2Zmc2V0LCBzaG9ydExlbmd0aCkpOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIH0KKyAgICAgICAgY2FzZSBJbnRBcnJheVRhZzogeworICAgICAgICAgICAg
dWludDMyX3QgaW50TGVuZ3RoID0gYnl0ZUxlbmd0aCAvIHNpemVvZihpbnQzMl90KTsKKyAgICAg
ICAgICAgIGlmIChpbnRMZW5ndGggKiBzaXplb2YoaW50MzJfdCkgIT0gYnl0ZUxlbmd0aCkKKyAg
ICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAqdmFsdWUgPSB0b1Y4KElu
dDMyQXJyYXk6OmNyZWF0ZShhcnJheUJ1ZmZlci5yZWxlYXNlKCksIGJ5dGVPZmZzZXQsIGludExl
bmd0aCkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgY2FzZSBVbnNp
Z25lZEludEFycmF5VGFnOiB7CisgICAgICAgICAgICB1aW50MzJfdCBpbnRMZW5ndGggPSBieXRl
TGVuZ3RoIC8gc2l6ZW9mKHVpbnQzMl90KTsKKyAgICAgICAgICAgIGlmIChpbnRMZW5ndGggKiBz
aXplb2YodWludDMyX3QpICE9IGJ5dGVMZW5ndGgpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgICAgICAgICAgKnZhbHVlID0gdG9WOChVaW50MzJBcnJheTo6Y3JlYXRlKGFycmF5
QnVmZmVyLnJlbGVhc2UoKSwgYnl0ZU9mZnNldCwgaW50TGVuZ3RoKSk7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgfQorICAgICAgICBjYXNlIEZsb2F0QXJyYXlUYWc6IHsKKyAgICAgICAg
ICAgIHVpbnQzMl90IGZsb2F0TGVuZ3RoID0gYnl0ZUxlbmd0aCAvIHNpemVvZihmbG9hdCk7Cisg
ICAgICAgICAgICBpZiAoZmxvYXRMZW5ndGggKiBzaXplb2YoZmxvYXQpICE9IGJ5dGVMZW5ndGgp
CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgKnZhbHVlID0gdG9W
OChGbG9hdDMyQXJyYXk6OmNyZWF0ZShhcnJheUJ1ZmZlci5yZWxlYXNlKCksIGJ5dGVPZmZzZXQs
IGZsb2F0TGVuZ3RoKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBj
YXNlIERvdWJsZUFycmF5VGFnOiB7CisgICAgICAgICAgICB1aW50MzJfdCBmbG9hdExlbmd0aCA9
IGJ5dGVMZW5ndGggLyBzaXplb2YoZG91YmxlKTsKKyAgICAgICAgICAgIGlmIChmbG9hdExlbmd0
aCAqIHNpemVvZihkb3VibGUpICE9IGJ5dGVMZW5ndGgpCisgICAgICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgICAgICAgICAgKnZhbHVlID0gdG9WOChGbG9hdDY0QXJyYXk6OmNyZWF0ZShh
cnJheUJ1ZmZlci5yZWxlYXNlKCksIGJ5dGVPZmZzZXQsIGZsb2F0TGVuZ3RoKSk7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBjYXNlIERhdGFWaWV3VGFnOgorICAgICAg
ICAgICAgKnZhbHVlID0gdG9WOChEYXRhVmlldzo6Y3JlYXRlKGFycmF5QnVmZmVyLnJlbGVhc2Uo
KSwgYnl0ZU9mZnNldCwgYnl0ZUxlbmd0aCkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGRlZmF1bHQ6CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAg
Ly8gVGhlIHZhcmlvdXMgKkFycmF5OjpjcmVhdGUoKSBtZXRob2RzIHdpbGwgcmV0dXJuIG51bGwg
aWYgdGhlIHJhbmdlIHRoZSB2aWV3IGV4cGVjdHMgaXMKKyAgICAgICAgLy8gbWlzbWF0Y2hlZCB3
aXRoIHRoZSByYW5nZSB0aGUgYnVmZmVyIGNhbiBwcm92aWRlIG9yIGlmIHRoZSBieXRlIG9mZnNl
dCBpcyBub3QgYWxpZ25lZAorICAgICAgICAvLyB0byB0aGUgc2l6ZSBvZiB0aGUgZWxlbWVudCB0
eXBlLgorICAgICAgICByZXR1cm4gIXZhbHVlLT5Jc0VtcHR5KCk7CisgICAgfQorCiAgICAgYm9v
bCByZWFkUmVnRXhwKHY4OjpIYW5kbGU8djg6OlZhbHVlPiogdmFsdWUpCiAgICAgewogICAgICAg
ICB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gcGF0dGVybjsKQEAgLTEwNTMsMTYgKzE2MDUsMzggQEAg
cHVibGljOgogICAgICAgICAgICAgaWYgKCFkb0Rlc2VyaWFsaXplKCkpCiAgICAgICAgICAgICAg
ICAgcmV0dXJuIHY4OjpOdWxsKCk7CiAgICAgICAgIH0KLSAgICAgICAgaWYgKHN0YWNrRGVwdGgo
KSAhPSAxKQorICAgICAgICBpZiAoc3RhY2tEZXB0aCgpICE9IDEgfHwgbV9vYmpyZWZTdGFjay5z
aXplKCkpCiAgICAgICAgICAgICByZXR1cm4gdjg6Ok51bGwoKTsKLSAgICAgICAgcmV0dXJuIHNj
b3BlLkNsb3NlKGVsZW1lbnQoMCkpOworICAgICAgICB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gcmVz
dWx0ID0gc2NvcGUuQ2xvc2UoZWxlbWVudCgwKSk7CisgICAgICAgIHJldHVybiByZXN1bHQ7CiAg
ICAgfQogCi0gICAgdmlydHVhbCBib29sIGNyZWF0ZUFycmF5KHVpbnQzMl90IGxlbmd0aCwgdjg6
OkhhbmRsZTx2ODo6VmFsdWU+KiB2YWx1ZSkKKyAgICB2aXJ0dWFsIGJvb2wgcHJlcGFyZUVtcHR5
QXJyYXkodWludDMyX3QgbGVuZ3RoKQorICAgIHsKKyAgICAgICAgdjg6OkxvY2FsPHY4OjpBcnJh
eT4gYXJyYXkgPSB2ODo6QXJyYXk6Ok5ldyhsZW5ndGgpOworICAgICAgICBpZiAoYXJyYXkuSXNF
bXB0eSgpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBvcGVuTmV3Q29tcG9z
aXRlKGFycmF5KTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgdmlydHVhbCBi
b29sIGNvbnN1bWVUb3BPZlN0YWNrKHY4OjpIYW5kbGU8djg6OlZhbHVlPiYgb2JqKQorICAgIHsK
KyAgICAgICAgaWYgKHN0YWNrRGVwdGgoKSA8IDEpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgICAgIG9iaiA9IGVsZW1lbnQoc3RhY2tEZXB0aCgpIC0gMSk7CisgICAgICAgIHBvcCgx
KTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgdmlydHVhbCBib29sIGZpbmlz
aEFycmF5KHVpbnQzMl90IGxlbmd0aCwgdjg6OkhhbmRsZTx2ODo6VmFsdWU+KiB2YWx1ZSkKICAg
ICB7CiAgICAgICAgIGlmIChsZW5ndGggPiBzdGFja0RlcHRoKCkpCiAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7Ci0gICAgICAgIHY4OjpMb2NhbDx2ODo6QXJyYXk+IGFycmF5ID0gdjg6OkFycmF5
OjpOZXcobGVuZ3RoKTsKKyAgICAgICAgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gY29tcG9zaXRlOwor
ICAgICAgICBpZiAoIWNsb3NlQ29tcG9zaXRlKGNvbXBvc2l0ZSkpCisgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgICAgIHY4OjpMb2NhbDx2ODo6QXJyYXk+IGFycmF5ID0gY29tcG9zaXRl
LkFzPHY4OjpBcnJheT4oKTsKICAgICAgICAgaWYgKGFycmF5LklzRW1wdHkoKSkKICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgY29uc3QgaW50IGRlcHRoID0gc3RhY2tEZXB0aCgp
IC0gbGVuZ3RoOwpAQCAtMTA3MywyMiArMTY0Nyw1NiBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVy
biB0cnVlOwogICAgIH0KIAotICAgIHZpcnR1YWwgYm9vbCBjcmVhdGVPYmplY3QodWludDMyX3Qg
bnVtUHJvcGVydGllcywgdjg6OkhhbmRsZTx2ODo6VmFsdWU+KiB2YWx1ZSkKKyAgICB2aXJ0dWFs
IGJvb2wgcHJlcGFyZUVtcHR5T2JqZWN0KCkKICAgICB7CiAgICAgICAgIHY4OjpMb2NhbDx2ODo6
T2JqZWN0PiBvYmplY3QgPSB2ODo6T2JqZWN0OjpOZXcoKTsKICAgICAgICAgaWYgKG9iamVjdC5J
c0VtcHR5KCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIG9wZW5OZXdDb21w
b3NpdGUob2JqZWN0KTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgdmlydHVh
bCBib29sIGZpbmlzaE9iamVjdCh1aW50MzJfdCBudW1Qcm9wZXJ0aWVzLCB2ODo6SGFuZGxlPHY4
OjpWYWx1ZT4qIHZhbHVlKQorICAgIHsKKyAgICAgICAgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gY29t
cG9zaXRlOworICAgICAgICBpZiAoIWNsb3NlQ29tcG9zaXRlKGNvbXBvc2l0ZSkpCisgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHY4OjpMb2NhbDx2ODo6T2JqZWN0PiBvYmplY3Qg
PSBjb21wb3NpdGUuQXM8djg6Ok9iamVjdD4oKTsKKyAgICAgICAgaWYgKG9iamVjdC5Jc0VtcHR5
KCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIHJldHVybiBpbml0aWFsaXpl
T2JqZWN0KG9iamVjdCwgbnVtUHJvcGVydGllcywgdmFsdWUpOwogICAgIH0KIAotICAgIHZpcnR1
YWwgYm9vbCBjcmVhdGVTcGFyc2VBcnJheSh1aW50MzJfdCBudW1Qcm9wZXJ0aWVzLCB1aW50MzJf
dCBsZW5ndGgsIHY4OjpIYW5kbGU8djg6OlZhbHVlPiogdmFsdWUpCisgICAgdmlydHVhbCBib29s
IGZpbmlzaFNwYXJzZUFycmF5KHVpbnQzMl90IG51bVByb3BlcnRpZXMsIHVpbnQzMl90IGxlbmd0
aCwgdjg6OkhhbmRsZTx2ODo6VmFsdWU+KiB2YWx1ZSkKICAgICB7Ci0gICAgICAgIHY4OjpMb2Nh
bDx2ODo6QXJyYXk+IGFycmF5ID0gdjg6OkFycmF5OjpOZXcobGVuZ3RoKTsKKyAgICAgICAgdjg6
OkxvY2FsPHY4OjpWYWx1ZT4gY29tcG9zaXRlOworICAgICAgICBpZiAoIWNsb3NlQ29tcG9zaXRl
KGNvbXBvc2l0ZSkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHY4OjpMb2Nh
bDx2ODo6QXJyYXk+IGFycmF5ID0gY29tcG9zaXRlLkFzPHY4OjpBcnJheT4oKTsKICAgICAgICAg
aWYgKGFycmF5LklzRW1wdHkoKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAg
cmV0dXJuIGluaXRpYWxpemVPYmplY3QoYXJyYXksIG51bVByb3BlcnRpZXMsIHZhbHVlKTsKICAg
ICB9CiAKKyAgICB2aXJ0dWFsIGNvbnN0IHY4OjpIYW5kbGU8djg6OlZhbHVlPiYgcHVzaE9iamVj
dFJlZmVyZW5jZShjb25zdCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4mIG9iaikKKyAgICB7CisgICAg
ICAgIG1fb2JqZWN0UG9vbC5hcHBlbmQob2JqKTsKKyAgICAgICAgcmV0dXJuIG9iajsKKyAgICB9
CisKKyAgICB2aXJ0dWFsIGJvb2wgZ2V0T2JqZWN0UmVmZXJlbmNlKHVpbnQzMl90IHJlZiwgdjg6
OkhhbmRsZTx2ODo6VmFsdWU+KiBvYmopCisgICAgeworICAgICAgICBpZiAocmVmID49IG1fb2Jq
ZWN0UG9vbC5zaXplKCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICpvYmog
PSBtX29iamVjdFBvb2xbcmVmXTsKKyAgICAgICAgcmV0dXJuIG9iajsKKyAgICB9CisKKyAgICB2
aXJ0dWFsIHVpbnQzMl90IG9iamVjdFJlZmVyZW5jZUNvdW50KCkKKyAgICB7CisgICAgICAgIHJl
dHVybiBtX29iamVjdFBvb2wuc2l6ZSgpOworICAgIH0KKwogcHJpdmF0ZToKICAgICBib29sIGlu
aXRpYWxpemVPYmplY3Qodjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBvYmplY3QsIHVpbnQzMl90IG51
bVByb3BlcnRpZXMsIHY4OjpIYW5kbGU8djg6OlZhbHVlPiogdmFsdWUpCiAgICAgewpAQCAtMTEz
MSw4ICsxNzM5LDMwIEBAIHByaXZhdGU6CiAgICAgICAgIHJldHVybiBtX3N0YWNrW2luZGV4XTsK
ICAgICB9CiAKKyAgICB1aW50MzJfdCBvcGVuTmV3Q29tcG9zaXRlKGNvbnN0IHY4OjpMb2NhbDx2
ODo6VmFsdWU+JiBvYmopCisgICAgeworICAgICAgICB1aW50MzJfdCBuZXdpZCA9IG1fb2JqZWN0
UG9vbC5zaXplKCk7CisgICAgICAgIG1fb2JqcmVmU3RhY2suYXBwZW5kKG5ld2lkKTsKKyAgICAg
ICAgbV9vYmplY3RQb29sLmFwcGVuZChvYmopOworICAgICAgICByZXR1cm4gbmV3aWQ7CisgICAg
fQorCisgICAgYm9vbCBjbG9zZUNvbXBvc2l0ZSh2ODo6SGFuZGxlPHY4OjpWYWx1ZT4mIG9iaikK
KyAgICB7CisgICAgICAgIGlmICghbV9vYmpyZWZTdGFjay5zaXplKCkpCisgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgICAgIHVpbnQzMl90IG9sZGlkID0gbV9vYmpyZWZTdGFja1ttX29i
anJlZlN0YWNrLnNpemUoKSAtIDFdOworICAgICAgICBtX29ianJlZlN0YWNrLnNocmluayhtX29i
anJlZlN0YWNrLnNpemUoKSAtIDEpOworICAgICAgICBpZiAob2xkaWQgPj0gbV9vYmplY3RQb29s
LnNpemUoKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgb2JqID0gbV9vYmpl
Y3RQb29sW29sZGlkXTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCiAgICAgUmVhZGVy
JiBtX3JlYWRlcjsKICAgICBWZWN0b3I8djg6OkxvY2FsPHY4OjpWYWx1ZT4gPiBtX3N0YWNrOwor
ICAgIFZlY3Rvcjx2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gPiBtX29iamVjdFBvb2w7CisgICAgVmVj
dG9yPHVpbnQzMl90PiBtX29ianJlZlN0YWNrOwogfTsKIAogfSAvLyBuYW1lc3BhY2UKQEAgLTEy
MzYsNyArMTg2NiwxMiBAQCBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OlNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZSh2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdmFsdWUsIGJvb2wmCiAgICAgICAgIC8vIElmIHRo
ZXJlIHdhcyBhbiBpbnB1dCBlcnJvciwgdGhyb3cgYSBuZXcgZXhjZXB0aW9uIG91dHNpZGUKICAg
ICAgICAgLy8gb2YgdGhlIFRyeUNhdGNoIHNjb3BlLgogICAgICAgICBkaWRUaHJvdyA9IHRydWU7
Ci0gICAgICAgIHRocm93RXJyb3IoTk9UX1NVUFBPUlRFRF9FUlIpOworICAgICAgICB0aHJvd0Vy
cm9yKERBVEFfQ0xPTkVfRVJSKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAoc3Rh
dHVzID09IFNlcmlhbGl6ZXI6OkRhdGFDbG9uZUVycm9yKSB7CisgICAgICAgIGRpZFRocm93ID0g
dHJ1ZTsKKyAgICAgICAgdGhyb3dFcnJvcihEQVRBX0NMT05FX0VSUik7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAgICAgaWYgKHN0YXR1cyA9PSBTZXJpYWxpemVyOjpKU0ZhaWx1cmUpIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERhdGFWaWV3Q3Vz
dG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERhdGFWaWV3Q3Vz
dG9tLmNwcAppbmRleCBmMjYwY2ZmLi4xMGIyZDI4IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9jdXN0b20vVjhEYXRhVmlld0N1c3RvbS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RGF0YVZpZXdDdXN0b20uY3BwCkBAIC00MSw2ICs0
MSwxMyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhEYXRhVmlldzo6Y29uc3RydWN0b3JDYWxs
YmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogICAgIGlmICghYXJncy5Jc0NvbnN0cnVj
dENhbGwoKSkKICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoIkRPTSBvYmplY3QgY29uc3RydWN0
b3IgY2Fubm90IGJlIGNhbGxlZCBhcyBhIGZ1bmN0aW9uIiwgVjhQcm94eTo6U3ludGF4RXJyb3Ip
OwogCisgICAgaWYgKCFhcmdzLkxlbmd0aCgpKSB7CisgICAgICAgIC8vIHNlZSBjb25zdHJ1Y3RX
ZWJHTEFycmF5IC0tIHdlIGRvbid0IHNlZW0gdG8gYmUgYWJsZSB0byBkaXN0aW5naXNoIGJldHdl
ZW4KKyAgICAgICAgLy8gJ25ldyBEYXRhVmlldygpJyBhbmQgdGhlIGNhbGwgdXNlZCB0byBjb25z
dHJ1Y3QgdGhlIGNhY2hlZCBEYXRhVmlldyBvYmplY3QuCisgICAgICAgIFJlZlB0cjxEYXRhVmll
dz4gZGF0YVZpZXcgPSBEYXRhVmlldzo6Y3JlYXRlKDApOworICAgICAgICBWOERPTVdyYXBwZXI6
OnNldERPTVdyYXBwZXIoYXJncy5Ib2xkZXIoKSwgJmluZm8sIGRhdGFWaWV3LmdldCgpKTsKKyAg
ICAgICAgcmV0dXJuIHRvVjgoZGF0YVZpZXcucmVsZWFzZSgpLCBhcmdzLkhvbGRlcigpKTsKKyAg
ICB9CiAgICAgaWYgKGFyZ3NbMF0tPklzTnVsbCgpIHx8ICFWOEFycmF5QnVmZmVyOjpIYXNJbnN0
YW5jZShhcmdzWzBdKSkKICAgICAgICAgcmV0dXJuIFY4UHJveHk6OnRocm93VHlwZUVycm9yKCk7
CiAgICAgcmV0dXJuIGNvbnN0cnVjdFdlYkdMQXJyYXlXaXRoQXJyYXlCdWZmZXJBcmd1bWVudDxE
YXRhVmlldywgY2hhcj4oYXJncywgJmluZm8sIHY4OjprRXh0ZXJuYWxCeXRlQXJyYXksIGZhbHNl
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01Db3JlRXhjZXB0aW9uLmlkbCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9ET01Db3JlRXhjZXB0aW9uLmlkbAppbmRleCA5NDU3MTJkLi42
YzkxY2E2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NQ29yZUV4Y2VwdGlvbi5p
ZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTUNvcmVFeGNlcHRpb24uaWRsCkBAIC03NCw2
ICs3NCw5IEBAIG1vZHVsZSBjb3JlIHsKICAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgICAg
ICBBQk9SVF9FUlIgICAgICAgICAgICAgICAgICAgICAgPSAyMDsKICAgICAgICAgY29uc3QgdW5z
aWduZWQgc2hvcnQgICAgICBVUkxfTUlTTUFUQ0hfRVJSICAgICAgICAgICAgICAgPSAyMTsKICAg
ICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgICAgICBRVU9UQV9FWENFRURFRF9FUlIgICAgICAg
ICAgICAgPSAyMjsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgICAgICBUSU1FT1VUX0VS
UiAgICAgICAgICAgICAgICAgICAgPSAyMzsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQg
ICAgICBJTlZBTElEX05PREVfVFlQRV9FUlIgICAgICAgICAgPSAyNDsKKyAgICAgICAgY29uc3Qg
dW5zaWduZWQgc2hvcnQgICAgICBEQVRBX0NMT05FX0VSUiAgICAgICAgICAgICAgICAgPSAyNTsK
ICAgICB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXhjZXB0aW9uQ29k
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXhjZXB0aW9uQ29kZS5jcHAKaW5kZXggY2FlYTU1
OS4uOGI4MmY1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V4Y2VwdGlvbkNvZGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FeGNlcHRpb25Db2RlLmNwcApAQCAtNzIsNyAr
NzIsMTAgQEAgc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IGV4Y2VwdGlvbk5hbWVzW10gPSB7CiAg
ICAgIk5FVFdPUktfRVJSIiwKICAgICAiQUJPUlRfRVJSIiwKICAgICAiVVJMX01JU01BVENIX0VS
UiIsCi0gICAgIlFVT1RBX0VYQ0VFREVEX0VSUiIKKyAgICAiUVVPVEFfRVhDRUVERURfRVJSIiwK
KyAgICAiVElNRU9VVF9FUlIiLAorICAgICJJTlZBTElEX05PREVfVFlQRV9FUlIiLAorICAgICJE
QVRBX0NMT05FX0VSUiIKIH07CiAKIHN0YXRpYyBjb25zdCBjaGFyKiBjb25zdCBleGNlcHRpb25E
ZXNjcmlwdGlvbnNbXSA9IHsKQEAgLTk4LDcgKzEwMSwxMCBAQCBzdGF0aWMgY29uc3QgY2hhciog
Y29uc3QgZXhjZXB0aW9uRGVzY3JpcHRpb25zW10gPSB7CiAgICAgIkEgbmV0d29yayBlcnJvciBv
Y2N1cmVkLiIsCiAgICAgIlRoZSB1c2VyIGFib3J0ZWQgYSByZXF1ZXN0LiIsCiAgICAgIkEgd29y
a2VyIGdsb2JhbCBzY29wZSByZXByZXNlbnRlZCBhbiBhYnNvbHV0ZSBVUkwgdGhhdCBpcyBub3Qg
ZXF1YWwgdG8gdGhlIHJlc3VsdGluZyBhYnNvbHV0ZSBVUkwuIiwKLSAgICAiQW4gYXR0ZW1wdCB3
YXMgbWFkZSB0byBhZGQgc29tZXRoaW5nIHRvIHN0b3JhZ2UgdGhhdCBleGNlZWRlZCB0aGUgcXVv
dGEuIgorICAgICJBbiBhdHRlbXB0IHdhcyBtYWRlIHRvIGFkZCBzb21ldGhpbmcgdG8gc3RvcmFn
ZSB0aGF0IGV4Y2VlZGVkIHRoZSBxdW90YS4iLAorICAgICJBIHRpbWVvdXQgb2NjdXJyZWQuIiwK
KyAgICAiVGhlIHN1cHBsaWVkIG5vZGUgaXMgaW52YWxpZCBvciBoYXMgYW4gaW52YWxpZCBhbmNl
c3RvciBmb3IgdGhpcyBvcGVyYXRpb24uIiwKKyAgICAiQW4gb2JqZWN0IGNvdWxkIG5vdCBiZSBj
bG9uZWQuIgogfTsKIAogc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IHJhbmdlRXhjZXB0aW9uTmFt
ZXNbXSA9IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FeGNlcHRpb25Db2RlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRXhjZXB0aW9uQ29kZS5oCmluZGV4IDljZWU2NmIuLmNlYTZm
NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FeGNlcHRpb25Db2RlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0V4Y2VwdGlvbkNvZGUuaApAQCAtNTcsMTQgKzU3LDEwIEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgTkVUV09SS19FUlIgPSAxOSwKICAgICAgICAgQUJP
UlRfRVJSID0gMjAsCiAgICAgICAgIFVSTF9NSVNNQVRDSF9FUlIgPSAyMSwKLSAgICAgICAgUVVP
VEFfRVhDRUVERURfRVJSID0gMjIKLQotICAgICAgICAvLyBJbnRyb2R1Y2VkIGluIEZpbGUgQVBJ
OgotICAgICAgICAvLyBodHRwOi8vd3d3LnczLm9yZy9UUi9maWxlLXVwbG9hZC8jZGZuLWZpbGVl
cnJvcgotI2lmIEVOQUJMRShCTE9CKSB8fCBFTkFCTEUoRklMRV9TWVNURU0pCi0gICAgICAgICwg
Tk9UX1JFQURBQkxFX0VSUiA9IDI0Ci0gICAgICAgICwgRU5DT0RJTkdfRVJSID0gMjYKLSNlbmRp
ZgorICAgICAgICBRVU9UQV9FWENFRURFRF9FUlIgPSAyMiwKKyAgICAgICAgVElNRU9VVF9FUlIg
PSAyMywKKyAgICAgICAgSU5WQUxJRF9OT0RFX1RZUEVfRVJSID0gMjQsCisgICAgICAgIERBVEFf
Q0xPTkVfRVJSID0gMjUKICAgICB9OwogCiAgICAgZW51bSBFeGNlcHRpb25UeXBlIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0RhdGFWaWV3LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL0RhdGFWaWV3LmNwcAppbmRleCBlMDA0NDNkLi4zZGIwNmQ2IDEw
MDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9EYXRhVmlldy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvRGF0YVZpZXcuY3BwCkBAIC00MCw2ICs0MCwxNCBA
QCB1bmlvbiBWYWx1ZSB7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorUGFzc1JlZlB0cjxEYXRh
Vmlldz4gRGF0YVZpZXc6OmNyZWF0ZSh1bnNpZ25lZCBsZW5ndGgpCit7CisgICAgUmVmUHRyPEFy
cmF5QnVmZmVyPiBidWZmZXIgPSBBcnJheUJ1ZmZlcjo6Y3JlYXRlKGxlbmd0aCwgc2l6ZW9mKHVp
bnQ4X3QpKTsKKyAgICBpZiAoIWJ1ZmZlci5nZXQoKSkKKyAgICAgICAgcmV0dXJuIDA7CisgICAg
cmV0dXJuIGNyZWF0ZShidWZmZXIsIDAsIGxlbmd0aCk7Cit9CisKIFBhc3NSZWZQdHI8RGF0YVZp
ZXc+IERhdGFWaWV3OjpjcmVhdGUoUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4gYnVmZmVyLCB1bnNp
Z25lZCBieXRlT2Zmc2V0LCB1bnNpZ25lZCBieXRlTGVuZ3RoKQogewogICAgIGlmIChieXRlT2Zm
c2V0ID4gYnVmZmVyLT5ieXRlTGVuZ3RoKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9EYXRhVmlldy5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvRGF0YVZp
ZXcuaAppbmRleCBhOGFiYTVjLi41ZTgwZjhjIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9EYXRhVmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0Rh
dGFWaWV3LmgKQEAgLTM0LDYgKzM0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBE
YXRhVmlldyA6IHB1YmxpYyBBcnJheUJ1ZmZlclZpZXcgewogcHVibGljOgorICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPERhdGFWaWV3PiBjcmVhdGUodW5zaWduZWQgbGVuZ3RoKTsKICAgICBzdGF0aWMg
UGFzc1JlZlB0cjxEYXRhVmlldz4gY3JlYXRlKFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+LCB1bnNp
Z25lZCBieXRlT2Zmc2V0LCB1bnNpZ25lZCBieXRlTGVuZ3RoKTsKIAogICAgIHZpcnR1YWwgYm9v
bCBpc0RhdGFWaWV3KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQo=
</data>
<flag name="review"
          id="93131"
          type_id="1"
          status="-"
          setter="dimich"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>99184</attachid>
            <date>2011-06-29 16:54:22 -0700</date>
            <delta_ts>2011-07-06 14:37:41 -0700</delta_ts>
            <desc>Address comments; handle old wire format.</desc>
            <filename>SSV-with-layout-tests-6-29.patch</filename>
            <type>text/plain</type>
            <size>128781</size>
            <attacher name="Luke Zarko">lukezarko+bugzilla</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBlMjU5OWZjLi4yYzNjNTQ2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjAgQEAKKzIwMTEtMDYt
MjkgIEx1a2UgWmFya28gIDxsdWtlemFya29AZ21haWwuY29tPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBIVE1MNSBTdHJ1Y3R1cmVkIENsb25l
IGFsZ29yaXRobSAoaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQt
d29yay9tdWx0aXBhZ2UvdXJscy5odG1sI3NhZmUtcGFzc2luZy1vZi1zdHJ1Y3R1cmVkLWRhdGEp
IGhhcyBiZWVuIHVwZGF0ZWQgc2luY2UgdGhlIFY4IHZlcnNpb24gb2YgU2VyaWFsaXplZFNjcmlw
dFZhbHVlIHdhcyBmaXJzdCBpbXBsZW1lbnRlZC4gVGhpcyBwYXRjaCBhaW1zIHRvIGJyaW5nIHRo
aXMgaW1wbGVtZW50YXRpb24gdXAgdG8gZGF0ZS4gSXQ6CisKKyAgICAgICAgLSBJbnRyb2R1Y2Vz
IHRoZSBuZXcgSFRNTDUgRE9NIGVycm9yIGNvZGVzIGZvciBUSU1FT1VUX0VSUiwgSU5WQUxJRF9O
T0RFX1RZUEVfRVJSLCBEQVRBX0NMT05FX0VSUgorICAgICAgICAtIEhhbmRsZXMgY3ljbGljIHN0
cnVjdHVyZXMgYW5kIGVxdWFsaXR5IG9mIHJlZmVyZW5jZSBwcmVzZXJ2YXRpb24gZm9yIGNsb25l
ZCB2YWx1ZXMKKyAgICAgICAgLSBBbGxvd3MgRGF0YVZpZXdzIHRvIGJlIGNvbnN0cnVjdGVkIG9u
IHRoZSBuYXRpdmUgc2lkZSB1c2luZyB0aGUgZXhpc3Rpbmcgd3JhcHBlciB0ZWNobmlxdWVzCisg
ICAgICAgIC0gQW1lbmRzIHRlc3RzIGFuZCBpbnRyb2R1Y2VzIG5ldyBvbmVzIHRvIGNoZWNrIGZv
ciBjb3JyZWN0bmVzcyAodGhlIGJ1bGsgb2YgdGhlIHBhdGNoKQorCisgICAgICAgIFRoZSBwYXRj
aCBwZXJtaXRzIHRoZSBjbG9uaW5nIG9mIEphdmFTY3JpcHQgdHlwZWQgYXJyYXlzLiBUaGlzIGZ1
bmN0aW9uYWxpdHkgaXMgaW4gYWN0aXZlIHVzZSBhbHJlYWR5IGFuZCB3YXMgc3VwcG9ydGVkIChz
b21ld2hhdCBpbmVmZmljaWVudGx5KSBieSB0aGUgZXhpc3RpbmcgY29kZSB0aHJvdWdoIGFuIGFy
dGlmYWN0IG9mIGltcGxlbWVudGF0aW9uLgorICAgICAgICAKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYzNDgxCisKKyAgICAgICAgKiBmYXN0L2NhbnZh
cy93ZWJnbC9hcnJheS1tZXNzYWdlLXBhc3NpbmctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L2NhbnZhcy93ZWJnbC9hcnJheS1tZXNzYWdlLXBhc3NpbmcuaHRtbDogQWRkZWQu
CisgICAgICAgICogZmFzdC9jYW52YXMvd2ViZ2wvc2NyaXB0LXRlc3RzL2FycmF5LW1lc3NhZ2Ut
cGFzc2luZy5qczogQWRkZWQuCisgICAgICAgIChjbGFzc0NvbXBhcmUpOgorICAgICAgICAoYnVm
ZmVyQ29tcGFyZSk6CisgICAgICAgICh2aWV3Q29tcGFyZSk6CisgICAgICAgICh0eXBlZEFycmF5
Q29tcGFyZSk6CisgICAgICAgIChkYXRhVmlld0NvbXBhcmUpOgorICAgICAgICAoY3JlYXRlQnVm
ZmVyKToKKyAgICAgICAgKGNyZWF0ZVR5cGVkQXJyYXkpOgorICAgICAgICAoY3JlYXRlVHlwZWRB
cnJheU92ZXJCdWZmZXIpOgorICAgICAgICAodGVzdExpc3QpOgorICAgICAgICAoZG9uZVRlc3Qp
OgorICAgICAgICAod2luZG93SGFuZGxlTWVzc2FnZSk6CisgICAgICAgICogZmFzdC9kb20vV2lu
ZG93L3NjcmlwdC10ZXN0cy9wb3N0bWVzc2FnZS1jbG9uZS1kZWVwLWFycmF5LmpzOiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L2RvbS9XaW5kb3cvc2NyaXB0LXRlc3RzL3Bvc3RtZXNzYWdlLWNsb25l
LXJlYWxseS1kZWVwLWFycmF5LmpzOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9XaW5kb3cv
c2NyaXB0LXRlc3RzL3Bvc3RtZXNzYWdlLWNsb25lLmpzOiBBZGRlZC4KKyAgICAgICAgKHRodW5r
KToKKyAgICAgICAgKiBmYXN0L2RvbS9XaW5kb3cvc2NyaXB0LXRlc3RzL3Bvc3RtZXNzYWdlLXRl
c3QuanM6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcG9z
dG1lc3NhZ2UtY2xvbmUuaHRtbC4KKyAgICAgICAgKCk6CisgICAgICAgIChzYWZlVG9TdHJpbmcp
OgorICAgICAgICAoc2hvdWxkQmUpOgorICAgICAgICAoc2hvdWxkQmVJZGVudGljYWwpOgorICAg
ICAgICAoZG9QYXNzKToKKyAgICAgICAgKGRvRmFpbCk6CisgICAgICAgICh3aW5kb3cuZG9QYXNz
RmFpbCk6CisgICAgICAgIChvbm1lc3NhZ2UpOgorICAgICAgICAoQ29uc3RydWN0b3JXaXRoUHJv
dG90eXBlKToKKyAgICAgICAgKHdpbmRvdy50cnlQb3N0TWVzc2FnZSk6CisgICAgICAgICogZmFz
dC9kb20vV2luZG93L3dpbmRvdy1wb3N0bWVzc2FnZS1jbG9uZS1kZWVwLWFycmF5LWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vV2luZG93L3dpbmRvdy1wb3N0bWVzc2Fn
ZS1jbG9uZS1kZWVwLWFycmF5Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL1dpbmRv
dy93aW5kb3ctcG9zdG1lc3NhZ2UtY2xvbmUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3Qv
ZG9tL1dpbmRvdy93aW5kb3ctcG9zdG1lc3NhZ2UtY2xvbmUtcmVhbGx5LWRlZXAtYXJyYXktZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9XaW5kb3cvd2luZG93LXBvc3Rt
ZXNzYWdlLWNsb25lLXJlYWxseS1kZWVwLWFycmF5Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvZG9tL1dpbmRvdy93aW5kb3ctcG9zdG1lc3NhZ2UtY2xvbmUuaHRtbDoKKyAgICAgICAgKiBm
YXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IHBsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9xdC13azIvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRp
ZXMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0b3Jl
LWJhc2ljcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0
c3RvcmUtYmFzaWNzLmh0bWw6CisKIDIwMTEtMDYtMjkgIE5hdCBEdWNhICA8bmR1Y2FAY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gVW5yZXZpZXdlZCwgbWFyayBmYXN0L2NhbnZh
cy93ZWJnbC9jb250ZXh0LWxvc3QtcmVzdG9yZWQgZmFpbGluZwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvYXJyYXktbWVzc2FnZS1wYXNzaW5nLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2FycmF5LW1lc3NhZ2UtcGFzc2luZy1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTIwODUwZgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2FycmF5LW1l
c3NhZ2UtcGFzc2luZy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1OTkgQEAKK1Rlc3QgcGFzc2lu
ZyBBcnJheUJ1ZmZlcnMgYW5kIEFycmF5QnVmZmVyVmlld3MgaW4gbWVzc2FnZXMuCisKK09uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KKworUEFTUyBBcnJheUJ1ZmZlcjA6IGNsYXNzZXMgYXJlIFtv
YmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIEFycmF5QnVmZmVyMDogYnVmZmVyIGxlbmd0aHMgYXJl
IDAKK1BBU1MgQXJyYXlCdWZmZXIwOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BB
U1MgQXJyYXlCdWZmZXIxOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBB
cnJheUJ1ZmZlcjE6IGJ1ZmZlciBsZW5ndGhzIGFyZSAxCitQQVNTIEFycmF5QnVmZmVyMTogYnVm
ZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIEFycmF5QnVmZmVyMTI4OiBjbGFzc2Vz
IGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBBcnJheUJ1ZmZlcjEyODogYnVmZmVyIGxl
bmd0aHMgYXJlIDEyOAorUEFTUyBBcnJheUJ1ZmZlcjEyODogYnVmZmVycyBoYXZlIHRoZSBzYW1l
IGNvbnRlbnRzCitQQVNTIERhdGFWaWV3MDogY2xhc3NlcyBhcmUgW29iamVjdCBEYXRhVmlld10K
K1BBU1MgRGF0YVZpZXcwOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBE
YXRhVmlldzA6IGJ1ZmZlciBsZW5ndGhzIGFyZSAwCitQQVNTIERhdGFWaWV3MDogYnVmZmVycyBo
YXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIERhdGFWaWV3MDogb2Zmc2V0IGlzIDAKK1BBU1Mg
RGF0YVZpZXcwOiBsZW5ndGggaXMgMAorUEFTUyBEYXRhVmlldzE6IGNsYXNzZXMgYXJlIFtvYmpl
Y3QgRGF0YVZpZXddCitQQVNTIERhdGFWaWV3MTogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1
ZmZlcl0KK1BBU1MgRGF0YVZpZXcxOiBidWZmZXIgbGVuZ3RocyBhcmUgMQorUEFTUyBEYXRhVmll
dzE6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBEYXRhVmlldzE6IG9mZnNl
dCBpcyAwCitQQVNTIERhdGFWaWV3MTogbGVuZ3RoIGlzIDEKK1BBU1MgRGF0YVZpZXcxMjg6IGNs
YXNzZXMgYXJlIFtvYmplY3QgRGF0YVZpZXddCitQQVNTIERhdGFWaWV3MTI4OiBjbGFzc2VzIGFy
ZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBEYXRhVmlldzEyODogYnVmZmVyIGxlbmd0aHMg
YXJlIDEyOAorUEFTUyBEYXRhVmlldzEyODogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRz
CitQQVNTIERhdGFWaWV3MTI4OiBvZmZzZXQgaXMgMAorUEFTUyBEYXRhVmlldzEyODogbGVuZ3Ro
IGlzIDEyOAorUEFTUyBEYXRhVmlldzFfb2ZzX2VuZDogY2xhc3NlcyBhcmUgW29iamVjdCBEYXRh
Vmlld10KK1BBU1MgRGF0YVZpZXcxX29mc19lbmQ6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlC
dWZmZXJdCitQQVNTIERhdGFWaWV3MV9vZnNfZW5kOiBidWZmZXIgbGVuZ3RocyBhcmUgMQorUEFT
UyBEYXRhVmlldzFfb2ZzX2VuZDogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNT
IERhdGFWaWV3MV9vZnNfZW5kOiBvZmZzZXQgaXMgMQorUEFTUyBEYXRhVmlldzFfb2ZzX2VuZDog
bGVuZ3RoIGlzIDAKK1BBU1MgRGF0YVZpZXcxMjhfb2ZzX2VuZDogY2xhc3NlcyBhcmUgW29iamVj
dCBEYXRhVmlld10KK1BBU1MgRGF0YVZpZXcxMjhfb2ZzX2VuZDogY2xhc3NlcyBhcmUgW29iamVj
dCBBcnJheUJ1ZmZlcl0KK1BBU1MgRGF0YVZpZXcxMjhfb2ZzX2VuZDogYnVmZmVyIGxlbmd0aHMg
YXJlIDEyOAorUEFTUyBEYXRhVmlldzEyOF9vZnNfZW5kOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUg
Y29udGVudHMKK1BBU1MgRGF0YVZpZXcxMjhfb2ZzX2VuZDogb2Zmc2V0IGlzIDEyOAorUEFTUyBE
YXRhVmlldzEyOF9vZnNfZW5kOiBsZW5ndGggaXMgMAorUEFTUyBEYXRhVmlldzEyOF9vZnNfc2xp
Y2UwOiBjbGFzc2VzIGFyZSBbb2JqZWN0IERhdGFWaWV3XQorUEFTUyBEYXRhVmlldzEyOF9vZnNf
c2xpY2UwOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBEYXRhVmlldzEy
OF9vZnNfc2xpY2UwOiBidWZmZXIgbGVuZ3RocyBhcmUgMTI4CitQQVNTIERhdGFWaWV3MTI4X29m
c19zbGljZTA6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBEYXRhVmlldzEy
OF9vZnNfc2xpY2UwOiBvZmZzZXQgaXMgNjQKK1BBU1MgRGF0YVZpZXcxMjhfb2ZzX3NsaWNlMDog
bGVuZ3RoIGlzIDAKK1BBU1MgRGF0YVZpZXcxMjhfb2ZzX3NsaWNlMTogY2xhc3NlcyBhcmUgW29i
amVjdCBEYXRhVmlld10KK1BBU1MgRGF0YVZpZXcxMjhfb2ZzX3NsaWNlMTogY2xhc3NlcyBhcmUg
W29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgRGF0YVZpZXcxMjhfb2ZzX3NsaWNlMTogYnVmZmVy
IGxlbmd0aHMgYXJlIDEyOAorUEFTUyBEYXRhVmlldzEyOF9vZnNfc2xpY2UxOiBidWZmZXJzIGhh
dmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgRGF0YVZpZXcxMjhfb2ZzX3NsaWNlMTogb2Zmc2V0
IGlzIDY0CitQQVNTIERhdGFWaWV3MTI4X29mc19zbGljZTE6IGxlbmd0aCBpcyAxCitQQVNTIERh
dGFWaWV3MTI4X29mc19zbGljZTE2OiBjbGFzc2VzIGFyZSBbb2JqZWN0IERhdGFWaWV3XQorUEFT
UyBEYXRhVmlldzEyOF9vZnNfc2xpY2UxNjogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZl
cl0KK1BBU1MgRGF0YVZpZXcxMjhfb2ZzX3NsaWNlMTY6IGJ1ZmZlciBsZW5ndGhzIGFyZSAxMjgK
K1BBU1MgRGF0YVZpZXcxMjhfb2ZzX3NsaWNlMTY6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250
ZW50cworUEFTUyBEYXRhVmlldzEyOF9vZnNfc2xpY2UxNjogb2Zmc2V0IGlzIDY0CitQQVNTIERh
dGFWaWV3MTI4X29mc19zbGljZTE2OiBsZW5ndGggaXMgMTYKK1BBU1MgRGF0YVZpZXcxMjhfb2Zz
X3NsaWNlX3VuYWxpZ25lZDogY2xhc3NlcyBhcmUgW29iamVjdCBEYXRhVmlld10KK1BBU1MgRGF0
YVZpZXcxMjhfb2ZzX3NsaWNlX3VuYWxpZ25lZDogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1
ZmZlcl0KK1BBU1MgRGF0YVZpZXcxMjhfb2ZzX3NsaWNlX3VuYWxpZ25lZDogYnVmZmVyIGxlbmd0
aHMgYXJlIDEyOAorUEFTUyBEYXRhVmlldzEyOF9vZnNfc2xpY2VfdW5hbGlnbmVkOiBidWZmZXJz
IGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgRGF0YVZpZXcxMjhfb2ZzX3NsaWNlX3VuYWxp
Z25lZDogb2Zmc2V0IGlzIDYzCitQQVNTIERhdGFWaWV3MTI4X29mc19zbGljZV91bmFsaWduZWQ6
IGxlbmd0aCBpcyAxNQorUEFTUyBJbnQzMl8wOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEludDMyQXJy
YXldCitQQVNTIEludDMyXzA6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNT
IEludDMyXzA6IGJ1ZmZlciBsZW5ndGhzIGFyZSAwCitQQVNTIEludDMyXzA6IGJ1ZmZlcnMgaGF2
ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBJbnQzMl8wOiBvZmZzZXQgaXMgMAorUEFTUyBJbnQz
Ml8wOiBsZW5ndGggaXMgMAorUEFTUyBVaW50MzJfMDogY2xhc3NlcyBhcmUgW29iamVjdCBVaW50
MzJBcnJheV0KK1BBU1MgVWludDMyXzA6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJd
CitQQVNTIFVpbnQzMl8wOiBidWZmZXIgbGVuZ3RocyBhcmUgMAorUEFTUyBVaW50MzJfMDogYnVm
ZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIFVpbnQzMl8wOiBvZmZzZXQgaXMgMAor
UEFTUyBVaW50MzJfMDogbGVuZ3RoIGlzIDAKK1BBU1MgSW50OF8wOiBjbGFzc2VzIGFyZSBbb2Jq
ZWN0IEludDhBcnJheV0KK1BBU1MgSW50OF8wOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVm
ZmVyXQorUEFTUyBJbnQ4XzA6IGJ1ZmZlciBsZW5ndGhzIGFyZSAwCitQQVNTIEludDhfMDogYnVm
ZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIEludDhfMDogb2Zmc2V0IGlzIDAKK1BB
U1MgSW50OF8wOiBsZW5ndGggaXMgMAorUEFTUyBVaW50OF8wOiBjbGFzc2VzIGFyZSBbb2JqZWN0
IFVpbnQ4QXJyYXldCitQQVNTIFVpbnQ4XzA6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZm
ZXJdCitQQVNTIFVpbnQ4XzA6IGJ1ZmZlciBsZW5ndGhzIGFyZSAwCitQQVNTIFVpbnQ4XzA6IGJ1
ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBVaW50OF8wOiBvZmZzZXQgaXMgMAor
UEFTUyBVaW50OF8wOiBsZW5ndGggaXMgMAorUEFTUyBJbnQxNl8wOiBjbGFzc2VzIGFyZSBbb2Jq
ZWN0IEludDE2QXJyYXldCitQQVNTIEludDE2XzA6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlC
dWZmZXJdCitQQVNTIEludDE2XzA6IGJ1ZmZlciBsZW5ndGhzIGFyZSAwCitQQVNTIEludDE2XzA6
IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBJbnQxNl8wOiBvZmZzZXQgaXMg
MAorUEFTUyBJbnQxNl8wOiBsZW5ndGggaXMgMAorUEFTUyBVaW50MTZfMDogY2xhc3NlcyBhcmUg
W29iamVjdCBVaW50MTZBcnJheV0KK1BBU1MgVWludDE2XzA6IGNsYXNzZXMgYXJlIFtvYmplY3Qg
QXJyYXlCdWZmZXJdCitQQVNTIFVpbnQxNl8wOiBidWZmZXIgbGVuZ3RocyBhcmUgMAorUEFTUyBV
aW50MTZfMDogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIFVpbnQxNl8wOiBv
ZmZzZXQgaXMgMAorUEFTUyBVaW50MTZfMDogbGVuZ3RoIGlzIDAKK1BBU1MgRmxvYXQzMl8wOiBj
bGFzc2VzIGFyZSBbb2JqZWN0IEZsb2F0MzJBcnJheV0KK1BBU1MgRmxvYXQzMl8wOiBjbGFzc2Vz
IGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBGbG9hdDMyXzA6IGJ1ZmZlciBsZW5ndGhz
IGFyZSAwCitQQVNTIEZsb2F0MzJfMDogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQ
QVNTIEZsb2F0MzJfMDogb2Zmc2V0IGlzIDAKK1BBU1MgRmxvYXQzMl8wOiBsZW5ndGggaXMgMAor
UEFTUyBGbG9hdDY0XzA6IGNsYXNzZXMgYXJlIFtvYmplY3QgRmxvYXQ2NEFycmF5XQorUEFTUyBG
bG9hdDY0XzA6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIEZsb2F0NjRf
MDogYnVmZmVyIGxlbmd0aHMgYXJlIDAKK1BBU1MgRmxvYXQ2NF8wOiBidWZmZXJzIGhhdmUgdGhl
IHNhbWUgY29udGVudHMKK1BBU1MgRmxvYXQ2NF8wOiBvZmZzZXQgaXMgMAorUEFTUyBGbG9hdDY0
XzA6IGxlbmd0aCBpcyAwCitQQVNTIEludDMyXzE6IGNsYXNzZXMgYXJlIFtvYmplY3QgSW50MzJB
cnJheV0KK1BBU1MgSW50MzJfMTogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BB
U1MgSW50MzJfMTogYnVmZmVyIGxlbmd0aHMgYXJlIDQKK1BBU1MgSW50MzJfMTogYnVmZmVycyBo
YXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIEludDMyXzE6IG9mZnNldCBpcyAwCitQQVNTIElu
dDMyXzE6IGxlbmd0aCBpcyA0CitQQVNTIFVpbnQzMl8xOiBjbGFzc2VzIGFyZSBbb2JqZWN0IFVp
bnQzMkFycmF5XQorUEFTUyBVaW50MzJfMTogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZl
cl0KK1BBU1MgVWludDMyXzE6IGJ1ZmZlciBsZW5ndGhzIGFyZSA0CitQQVNTIFVpbnQzMl8xOiBi
dWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgVWludDMyXzE6IG9mZnNldCBpcyAw
CitQQVNTIFVpbnQzMl8xOiBsZW5ndGggaXMgNAorUEFTUyBJbnQ4XzE6IGNsYXNzZXMgYXJlIFtv
YmplY3QgSW50OEFycmF5XQorUEFTUyBJbnQ4XzE6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlC
dWZmZXJdCitQQVNTIEludDhfMTogYnVmZmVyIGxlbmd0aHMgYXJlIDEKK1BBU1MgSW50OF8xOiBi
dWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgSW50OF8xOiBvZmZzZXQgaXMgMAor
UEFTUyBJbnQ4XzE6IGxlbmd0aCBpcyAxCitQQVNTIFVpbnQ4XzE6IGNsYXNzZXMgYXJlIFtvYmpl
Y3QgVWludDhBcnJheV0KK1BBU1MgVWludDhfMTogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1
ZmZlcl0KK1BBU1MgVWludDhfMTogYnVmZmVyIGxlbmd0aHMgYXJlIDEKK1BBU1MgVWludDhfMTog
YnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIFVpbnQ4XzE6IG9mZnNldCBpcyAw
CitQQVNTIFVpbnQ4XzE6IGxlbmd0aCBpcyAxCitQQVNTIEludDE2XzE6IGNsYXNzZXMgYXJlIFtv
YmplY3QgSW50MTZBcnJheV0KK1BBU1MgSW50MTZfMTogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJh
eUJ1ZmZlcl0KK1BBU1MgSW50MTZfMTogYnVmZmVyIGxlbmd0aHMgYXJlIDIKK1BBU1MgSW50MTZf
MTogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIEludDE2XzE6IG9mZnNldCBp
cyAwCitQQVNTIEludDE2XzE6IGxlbmd0aCBpcyAyCitQQVNTIFVpbnQxNl8xOiBjbGFzc2VzIGFy
ZSBbb2JqZWN0IFVpbnQxNkFycmF5XQorUEFTUyBVaW50MTZfMTogY2xhc3NlcyBhcmUgW29iamVj
dCBBcnJheUJ1ZmZlcl0KK1BBU1MgVWludDE2XzE6IGJ1ZmZlciBsZW5ndGhzIGFyZSAyCitQQVNT
IFVpbnQxNl8xOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgVWludDE2XzE6
IG9mZnNldCBpcyAwCitQQVNTIFVpbnQxNl8xOiBsZW5ndGggaXMgMgorUEFTUyBGbG9hdDMyXzE6
IGNsYXNzZXMgYXJlIFtvYmplY3QgRmxvYXQzMkFycmF5XQorUEFTUyBGbG9hdDMyXzE6IGNsYXNz
ZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIEZsb2F0MzJfMTogYnVmZmVyIGxlbmd0
aHMgYXJlIDQKK1BBU1MgRmxvYXQzMl8xOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMK
K1BBU1MgRmxvYXQzMl8xOiBvZmZzZXQgaXMgMAorUEFTUyBGbG9hdDMyXzE6IGxlbmd0aCBpcyA0
CitQQVNTIEZsb2F0NjRfMTogY2xhc3NlcyBhcmUgW29iamVjdCBGbG9hdDY0QXJyYXldCitQQVNT
IEZsb2F0NjRfMTogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgRmxvYXQ2
NF8xOiBidWZmZXIgbGVuZ3RocyBhcmUgOAorUEFTUyBGbG9hdDY0XzE6IGJ1ZmZlcnMgaGF2ZSB0
aGUgc2FtZSBjb250ZW50cworUEFTUyBGbG9hdDY0XzE6IG9mZnNldCBpcyAwCitQQVNTIEZsb2F0
NjRfMTogbGVuZ3RoIGlzIDgKK1BBU1MgSW50MzJfMTI4OiBjbGFzc2VzIGFyZSBbb2JqZWN0IElu
dDMyQXJyYXldCitQQVNTIEludDMyXzEyODogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZl
cl0KK1BBU1MgSW50MzJfMTI4OiBidWZmZXIgbGVuZ3RocyBhcmUgNTEyCitQQVNTIEludDMyXzEy
ODogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIEludDMyXzEyODogb2Zmc2V0
IGlzIDAKK1BBU1MgSW50MzJfMTI4OiBsZW5ndGggaXMgNTEyCitQQVNTIFVpbnQzMl8xMjg6IGNs
YXNzZXMgYXJlIFtvYmplY3QgVWludDMyQXJyYXldCitQQVNTIFVpbnQzMl8xMjg6IGNsYXNzZXMg
YXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIFVpbnQzMl8xMjg6IGJ1ZmZlciBsZW5ndGhz
IGFyZSA1MTIKK1BBU1MgVWludDMyXzEyODogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRz
CitQQVNTIFVpbnQzMl8xMjg6IG9mZnNldCBpcyAwCitQQVNTIFVpbnQzMl8xMjg6IGxlbmd0aCBp
cyA1MTIKK1BBU1MgSW50OF8xMjg6IGNsYXNzZXMgYXJlIFtvYmplY3QgSW50OEFycmF5XQorUEFT
UyBJbnQ4XzEyODogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgSW50OF8x
Mjg6IGJ1ZmZlciBsZW5ndGhzIGFyZSAxMjgKK1BBU1MgSW50OF8xMjg6IGJ1ZmZlcnMgaGF2ZSB0
aGUgc2FtZSBjb250ZW50cworUEFTUyBJbnQ4XzEyODogb2Zmc2V0IGlzIDAKK1BBU1MgSW50OF8x
Mjg6IGxlbmd0aCBpcyAxMjgKK1BBU1MgVWludDhfMTI4OiBjbGFzc2VzIGFyZSBbb2JqZWN0IFVp
bnQ4QXJyYXldCitQQVNTIFVpbnQ4XzEyODogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZl
cl0KK1BBU1MgVWludDhfMTI4OiBidWZmZXIgbGVuZ3RocyBhcmUgMTI4CitQQVNTIFVpbnQ4XzEy
ODogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIFVpbnQ4XzEyODogb2Zmc2V0
IGlzIDAKK1BBU1MgVWludDhfMTI4OiBsZW5ndGggaXMgMTI4CitQQVNTIEludDE2XzEyODogY2xh
c3NlcyBhcmUgW29iamVjdCBJbnQxNkFycmF5XQorUEFTUyBJbnQxNl8xMjg6IGNsYXNzZXMgYXJl
IFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIEludDE2XzEyODogYnVmZmVyIGxlbmd0aHMgYXJl
IDI1NgorUEFTUyBJbnQxNl8xMjg6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFT
UyBJbnQxNl8xMjg6IG9mZnNldCBpcyAwCitQQVNTIEludDE2XzEyODogbGVuZ3RoIGlzIDI1Ngor
UEFTUyBVaW50MTZfMTI4OiBjbGFzc2VzIGFyZSBbb2JqZWN0IFVpbnQxNkFycmF5XQorUEFTUyBV
aW50MTZfMTI4OiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBVaW50MTZf
MTI4OiBidWZmZXIgbGVuZ3RocyBhcmUgMjU2CitQQVNTIFVpbnQxNl8xMjg6IGJ1ZmZlcnMgaGF2
ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBVaW50MTZfMTI4OiBvZmZzZXQgaXMgMAorUEFTUyBV
aW50MTZfMTI4OiBsZW5ndGggaXMgMjU2CitQQVNTIEZsb2F0MzJfMTI4OiBjbGFzc2VzIGFyZSBb
b2JqZWN0IEZsb2F0MzJBcnJheV0KK1BBU1MgRmxvYXQzMl8xMjg6IGNsYXNzZXMgYXJlIFtvYmpl
Y3QgQXJyYXlCdWZmZXJdCitQQVNTIEZsb2F0MzJfMTI4OiBidWZmZXIgbGVuZ3RocyBhcmUgNTEy
CitQQVNTIEZsb2F0MzJfMTI4OiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1Mg
RmxvYXQzMl8xMjg6IG9mZnNldCBpcyAwCitQQVNTIEZsb2F0MzJfMTI4OiBsZW5ndGggaXMgNTEy
CitQQVNTIEZsb2F0NjRfMTI4OiBjbGFzc2VzIGFyZSBbb2JqZWN0IEZsb2F0NjRBcnJheV0KK1BB
U1MgRmxvYXQ2NF8xMjg6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIEZs
b2F0NjRfMTI4OiBidWZmZXIgbGVuZ3RocyBhcmUgMTAyNAorUEFTUyBGbG9hdDY0XzEyODogYnVm
ZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIEZsb2F0NjRfMTI4OiBvZmZzZXQgaXMg
MAorUEFTUyBGbG9hdDY0XzEyODogbGVuZ3RoIGlzIDEwMjQKK1BBU1MgSW50MzJfMGI6IGNsYXNz
ZXMgYXJlIFtvYmplY3QgSW50MzJBcnJheV0KK1BBU1MgSW50MzJfMGI6IGNsYXNzZXMgYXJlIFtv
YmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIEludDMyXzBiOiBidWZmZXIgbGVuZ3RocyBhcmUgMAor
UEFTUyBJbnQzMl8wYjogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIEludDMy
XzBiOiBvZmZzZXQgaXMgMAorUEFTUyBJbnQzMl8wYjogbGVuZ3RoIGlzIDAKK1BBU1MgVWludDMy
XzBiOiBjbGFzc2VzIGFyZSBbb2JqZWN0IFVpbnQzMkFycmF5XQorUEFTUyBVaW50MzJfMGI6IGNs
YXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIFVpbnQzMl8wYjogYnVmZmVyIGxl
bmd0aHMgYXJlIDAKK1BBU1MgVWludDMyXzBiOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVu
dHMKK1BBU1MgVWludDMyXzBiOiBvZmZzZXQgaXMgMAorUEFTUyBVaW50MzJfMGI6IGxlbmd0aCBp
cyAwCitQQVNTIEludDhfMGI6IGNsYXNzZXMgYXJlIFtvYmplY3QgSW50OEFycmF5XQorUEFTUyBJ
bnQ4XzBiOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBJbnQ4XzBiOiBi
dWZmZXIgbGVuZ3RocyBhcmUgMAorUEFTUyBJbnQ4XzBiOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUg
Y29udGVudHMKK1BBU1MgSW50OF8wYjogb2Zmc2V0IGlzIDAKK1BBU1MgSW50OF8wYjogbGVuZ3Ro
IGlzIDAKK1BBU1MgVWludDhfMGI6IGNsYXNzZXMgYXJlIFtvYmplY3QgVWludDhBcnJheV0KK1BB
U1MgVWludDhfMGI6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIFVpbnQ4
XzBiOiBidWZmZXIgbGVuZ3RocyBhcmUgMAorUEFTUyBVaW50OF8wYjogYnVmZmVycyBoYXZlIHRo
ZSBzYW1lIGNvbnRlbnRzCitQQVNTIFVpbnQ4XzBiOiBvZmZzZXQgaXMgMAorUEFTUyBVaW50OF8w
YjogbGVuZ3RoIGlzIDAKK1BBU1MgSW50MTZfMGI6IGNsYXNzZXMgYXJlIFtvYmplY3QgSW50MTZB
cnJheV0KK1BBU1MgSW50MTZfMGI6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQ
QVNTIEludDE2XzBiOiBidWZmZXIgbGVuZ3RocyBhcmUgMAorUEFTUyBJbnQxNl8wYjogYnVmZmVy
cyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIEludDE2XzBiOiBvZmZzZXQgaXMgMAorUEFT
UyBJbnQxNl8wYjogbGVuZ3RoIGlzIDAKK1BBU1MgVWludDE2XzBiOiBjbGFzc2VzIGFyZSBbb2Jq
ZWN0IFVpbnQxNkFycmF5XQorUEFTUyBVaW50MTZfMGI6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJy
YXlCdWZmZXJdCitQQVNTIFVpbnQxNl8wYjogYnVmZmVyIGxlbmd0aHMgYXJlIDAKK1BBU1MgVWlu
dDE2XzBiOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgVWludDE2XzBiOiBv
ZmZzZXQgaXMgMAorUEFTUyBVaW50MTZfMGI6IGxlbmd0aCBpcyAwCitQQVNTIEZsb2F0MzJfMGI6
IGNsYXNzZXMgYXJlIFtvYmplY3QgRmxvYXQzMkFycmF5XQorUEFTUyBGbG9hdDMyXzBiOiBjbGFz
c2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBGbG9hdDMyXzBiOiBidWZmZXIgbGVu
Z3RocyBhcmUgMAorUEFTUyBGbG9hdDMyXzBiOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVu
dHMKK1BBU1MgRmxvYXQzMl8wYjogb2Zmc2V0IGlzIDAKK1BBU1MgRmxvYXQzMl8wYjogbGVuZ3Ro
IGlzIDAKK1BBU1MgRmxvYXQ2NF8wYjogY2xhc3NlcyBhcmUgW29iamVjdCBGbG9hdDY0QXJyYXld
CitQQVNTIEZsb2F0NjRfMGI6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNT
IEZsb2F0NjRfMGI6IGJ1ZmZlciBsZW5ndGhzIGFyZSAwCitQQVNTIEZsb2F0NjRfMGI6IGJ1ZmZl
cnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBGbG9hdDY0XzBiOiBvZmZzZXQgaXMgMAor
UEFTUyBGbG9hdDY0XzBiOiBsZW5ndGggaXMgMAorUEFTUyBJbnQzMl8xYjogY2xhc3NlcyBhcmUg
W29iamVjdCBJbnQzMkFycmF5XQorUEFTUyBJbnQzMl8xYjogY2xhc3NlcyBhcmUgW29iamVjdCBB
cnJheUJ1ZmZlcl0KK1BBU1MgSW50MzJfMWI6IGJ1ZmZlciBsZW5ndGhzIGFyZSA0CitQQVNTIElu
dDMyXzFiOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgSW50MzJfMWI6IG9m
ZnNldCBpcyAwCitQQVNTIEludDMyXzFiOiBsZW5ndGggaXMgNAorUEFTUyBVaW50MzJfMWI6IGNs
YXNzZXMgYXJlIFtvYmplY3QgVWludDMyQXJyYXldCitQQVNTIFVpbnQzMl8xYjogY2xhc3NlcyBh
cmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgVWludDMyXzFiOiBidWZmZXIgbGVuZ3RocyBh
cmUgNAorUEFTUyBVaW50MzJfMWI6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFT
UyBVaW50MzJfMWI6IG9mZnNldCBpcyAwCitQQVNTIFVpbnQzMl8xYjogbGVuZ3RoIGlzIDQKK1BB
U1MgSW50OF8xYjogY2xhc3NlcyBhcmUgW29iamVjdCBJbnQ4QXJyYXldCitQQVNTIEludDhfMWI6
IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIEludDhfMWI6IGJ1ZmZlciBs
ZW5ndGhzIGFyZSAxCitQQVNTIEludDhfMWI6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50
cworUEFTUyBJbnQ4XzFiOiBvZmZzZXQgaXMgMAorUEFTUyBJbnQ4XzFiOiBsZW5ndGggaXMgMQor
UEFTUyBVaW50OF8xYjogY2xhc3NlcyBhcmUgW29iamVjdCBVaW50OEFycmF5XQorUEFTUyBVaW50
OF8xYjogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgVWludDhfMWI6IGJ1
ZmZlciBsZW5ndGhzIGFyZSAxCitQQVNTIFVpbnQ4XzFiOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUg
Y29udGVudHMKK1BBU1MgVWludDhfMWI6IG9mZnNldCBpcyAwCitQQVNTIFVpbnQ4XzFiOiBsZW5n
dGggaXMgMQorUEFTUyBJbnQxNl8xYjogY2xhc3NlcyBhcmUgW29iamVjdCBJbnQxNkFycmF5XQor
UEFTUyBJbnQxNl8xYjogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgSW50
MTZfMWI6IGJ1ZmZlciBsZW5ndGhzIGFyZSAyCitQQVNTIEludDE2XzFiOiBidWZmZXJzIGhhdmUg
dGhlIHNhbWUgY29udGVudHMKK1BBU1MgSW50MTZfMWI6IG9mZnNldCBpcyAwCitQQVNTIEludDE2
XzFiOiBsZW5ndGggaXMgMgorUEFTUyBVaW50MTZfMWI6IGNsYXNzZXMgYXJlIFtvYmplY3QgVWlu
dDE2QXJyYXldCitQQVNTIFVpbnQxNl8xYjogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZl
cl0KK1BBU1MgVWludDE2XzFiOiBidWZmZXIgbGVuZ3RocyBhcmUgMgorUEFTUyBVaW50MTZfMWI6
IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBVaW50MTZfMWI6IG9mZnNldCBp
cyAwCitQQVNTIFVpbnQxNl8xYjogbGVuZ3RoIGlzIDIKK1BBU1MgRmxvYXQzMl8xYjogY2xhc3Nl
cyBhcmUgW29iamVjdCBGbG9hdDMyQXJyYXldCitQQVNTIEZsb2F0MzJfMWI6IGNsYXNzZXMgYXJl
IFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIEZsb2F0MzJfMWI6IGJ1ZmZlciBsZW5ndGhzIGFy
ZSA0CitQQVNTIEZsb2F0MzJfMWI6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFT
UyBGbG9hdDMyXzFiOiBvZmZzZXQgaXMgMAorUEFTUyBGbG9hdDMyXzFiOiBsZW5ndGggaXMgNAor
UEFTUyBGbG9hdDY0XzFiOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEZsb2F0NjRBcnJheV0KK1BBU1Mg
RmxvYXQ2NF8xYjogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgRmxvYXQ2
NF8xYjogYnVmZmVyIGxlbmd0aHMgYXJlIDgKK1BBU1MgRmxvYXQ2NF8xYjogYnVmZmVycyBoYXZl
IHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIEZsb2F0NjRfMWI6IG9mZnNldCBpcyAwCitQQVNTIEZs
b2F0NjRfMWI6IGxlbmd0aCBpcyA4CitQQVNTIEludDMyXzEyOGI6IGNsYXNzZXMgYXJlIFtvYmpl
Y3QgSW50MzJBcnJheV0KK1BBU1MgSW50MzJfMTI4YjogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJh
eUJ1ZmZlcl0KK1BBU1MgSW50MzJfMTI4YjogYnVmZmVyIGxlbmd0aHMgYXJlIDUxMgorUEFTUyBJ
bnQzMl8xMjhiOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgSW50MzJfMTI4
Yjogb2Zmc2V0IGlzIDAKK1BBU1MgSW50MzJfMTI4YjogbGVuZ3RoIGlzIDUxMgorUEFTUyBVaW50
MzJfMTI4YjogY2xhc3NlcyBhcmUgW29iamVjdCBVaW50MzJBcnJheV0KK1BBU1MgVWludDMyXzEy
OGI6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIFVpbnQzMl8xMjhiOiBi
dWZmZXIgbGVuZ3RocyBhcmUgNTEyCitQQVNTIFVpbnQzMl8xMjhiOiBidWZmZXJzIGhhdmUgdGhl
IHNhbWUgY29udGVudHMKK1BBU1MgVWludDMyXzEyOGI6IG9mZnNldCBpcyAwCitQQVNTIFVpbnQz
Ml8xMjhiOiBsZW5ndGggaXMgNTEyCitQQVNTIEludDhfMTI4YjogY2xhc3NlcyBhcmUgW29iamVj
dCBJbnQ4QXJyYXldCitQQVNTIEludDhfMTI4YjogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1
ZmZlcl0KK1BBU1MgSW50OF8xMjhiOiBidWZmZXIgbGVuZ3RocyBhcmUgMTI4CitQQVNTIEludDhf
MTI4YjogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIEludDhfMTI4Yjogb2Zm
c2V0IGlzIDAKK1BBU1MgSW50OF8xMjhiOiBsZW5ndGggaXMgMTI4CitQQVNTIFVpbnQ4XzEyOGI6
IGNsYXNzZXMgYXJlIFtvYmplY3QgVWludDhBcnJheV0KK1BBU1MgVWludDhfMTI4YjogY2xhc3Nl
cyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgVWludDhfMTI4YjogYnVmZmVyIGxlbmd0
aHMgYXJlIDEyOAorUEFTUyBVaW50OF8xMjhiOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVu
dHMKK1BBU1MgVWludDhfMTI4Yjogb2Zmc2V0IGlzIDAKK1BBU1MgVWludDhfMTI4YjogbGVuZ3Ro
IGlzIDEyOAorUEFTUyBJbnQxNl8xMjhiOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEludDE2QXJyYXld
CitQQVNTIEludDE2XzEyOGI6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNT
IEludDE2XzEyOGI6IGJ1ZmZlciBsZW5ndGhzIGFyZSAyNTYKK1BBU1MgSW50MTZfMTI4YjogYnVm
ZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIEludDE2XzEyOGI6IG9mZnNldCBpcyAw
CitQQVNTIEludDE2XzEyOGI6IGxlbmd0aCBpcyAyNTYKK1BBU1MgVWludDE2XzEyOGI6IGNsYXNz
ZXMgYXJlIFtvYmplY3QgVWludDE2QXJyYXldCitQQVNTIFVpbnQxNl8xMjhiOiBjbGFzc2VzIGFy
ZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBVaW50MTZfMTI4YjogYnVmZmVyIGxlbmd0aHMg
YXJlIDI1NgorUEFTUyBVaW50MTZfMTI4YjogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRz
CitQQVNTIFVpbnQxNl8xMjhiOiBvZmZzZXQgaXMgMAorUEFTUyBVaW50MTZfMTI4YjogbGVuZ3Ro
IGlzIDI1NgorUEFTUyBGbG9hdDMyXzEyOGI6IGNsYXNzZXMgYXJlIFtvYmplY3QgRmxvYXQzMkFy
cmF5XQorUEFTUyBGbG9hdDMyXzEyOGI6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJd
CitQQVNTIEZsb2F0MzJfMTI4YjogYnVmZmVyIGxlbmd0aHMgYXJlIDUxMgorUEFTUyBGbG9hdDMy
XzEyOGI6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBGbG9hdDMyXzEyOGI6
IG9mZnNldCBpcyAwCitQQVNTIEZsb2F0MzJfMTI4YjogbGVuZ3RoIGlzIDUxMgorUEFTUyBGbG9h
dDY0XzEyOGI6IGNsYXNzZXMgYXJlIFtvYmplY3QgRmxvYXQ2NEFycmF5XQorUEFTUyBGbG9hdDY0
XzEyOGI6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIEZsb2F0NjRfMTI4
YjogYnVmZmVyIGxlbmd0aHMgYXJlIDEwMjQKK1BBU1MgRmxvYXQ2NF8xMjhiOiBidWZmZXJzIGhh
dmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgRmxvYXQ2NF8xMjhiOiBvZmZzZXQgaXMgMAorUEFT
UyBGbG9hdDY0XzEyOGI6IGxlbmd0aCBpcyAxMDI0CitQQVNTIEludDMyXzFiX29mc19lbmQ6IGNs
YXNzZXMgYXJlIFtvYmplY3QgSW50MzJBcnJheV0KK1BBU1MgSW50MzJfMWJfb2ZzX2VuZDogY2xh
c3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgSW50MzJfMWJfb2ZzX2VuZDogYnVm
ZmVyIGxlbmd0aHMgYXJlIDQKK1BBU1MgSW50MzJfMWJfb2ZzX2VuZDogYnVmZmVycyBoYXZlIHRo
ZSBzYW1lIGNvbnRlbnRzCitQQVNTIEludDMyXzFiX29mc19lbmQ6IG9mZnNldCBpcyA0CitQQVNT
IEludDMyXzFiX29mc19lbmQ6IGxlbmd0aCBpcyAwCitQQVNTIFVpbnQzMl8xYl9vZnNfZW5kOiBj
bGFzc2VzIGFyZSBbb2JqZWN0IFVpbnQzMkFycmF5XQorUEFTUyBVaW50MzJfMWJfb2ZzX2VuZDog
Y2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgVWludDMyXzFiX29mc19lbmQ6
IGJ1ZmZlciBsZW5ndGhzIGFyZSA0CitQQVNTIFVpbnQzMl8xYl9vZnNfZW5kOiBidWZmZXJzIGhh
dmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgVWludDMyXzFiX29mc19lbmQ6IG9mZnNldCBpcyA0
CitQQVNTIFVpbnQzMl8xYl9vZnNfZW5kOiBsZW5ndGggaXMgMAorUEFTUyBJbnQ4XzFiX29mc19l
bmQ6IGNsYXNzZXMgYXJlIFtvYmplY3QgSW50OEFycmF5XQorUEFTUyBJbnQ4XzFiX29mc19lbmQ6
IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIEludDhfMWJfb2ZzX2VuZDog
YnVmZmVyIGxlbmd0aHMgYXJlIDEKK1BBU1MgSW50OF8xYl9vZnNfZW5kOiBidWZmZXJzIGhhdmUg
dGhlIHNhbWUgY29udGVudHMKK1BBU1MgSW50OF8xYl9vZnNfZW5kOiBvZmZzZXQgaXMgMQorUEFT
UyBJbnQ4XzFiX29mc19lbmQ6IGxlbmd0aCBpcyAwCitQQVNTIFVpbnQ4XzFiX29mc19lbmQ6IGNs
YXNzZXMgYXJlIFtvYmplY3QgVWludDhBcnJheV0KK1BBU1MgVWludDhfMWJfb2ZzX2VuZDogY2xh
c3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgVWludDhfMWJfb2ZzX2VuZDogYnVm
ZmVyIGxlbmd0aHMgYXJlIDEKK1BBU1MgVWludDhfMWJfb2ZzX2VuZDogYnVmZmVycyBoYXZlIHRo
ZSBzYW1lIGNvbnRlbnRzCitQQVNTIFVpbnQ4XzFiX29mc19lbmQ6IG9mZnNldCBpcyAxCitQQVNT
IFVpbnQ4XzFiX29mc19lbmQ6IGxlbmd0aCBpcyAwCitQQVNTIEludDE2XzFiX29mc19lbmQ6IGNs
YXNzZXMgYXJlIFtvYmplY3QgSW50MTZBcnJheV0KK1BBU1MgSW50MTZfMWJfb2ZzX2VuZDogY2xh
c3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgSW50MTZfMWJfb2ZzX2VuZDogYnVm
ZmVyIGxlbmd0aHMgYXJlIDIKK1BBU1MgSW50MTZfMWJfb2ZzX2VuZDogYnVmZmVycyBoYXZlIHRo
ZSBzYW1lIGNvbnRlbnRzCitQQVNTIEludDE2XzFiX29mc19lbmQ6IG9mZnNldCBpcyAyCitQQVNT
IEludDE2XzFiX29mc19lbmQ6IGxlbmd0aCBpcyAwCitQQVNTIFVpbnQxNl8xYl9vZnNfZW5kOiBj
bGFzc2VzIGFyZSBbb2JqZWN0IFVpbnQxNkFycmF5XQorUEFTUyBVaW50MTZfMWJfb2ZzX2VuZDog
Y2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgVWludDE2XzFiX29mc19lbmQ6
IGJ1ZmZlciBsZW5ndGhzIGFyZSAyCitQQVNTIFVpbnQxNl8xYl9vZnNfZW5kOiBidWZmZXJzIGhh
dmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgVWludDE2XzFiX29mc19lbmQ6IG9mZnNldCBpcyAy
CitQQVNTIFVpbnQxNl8xYl9vZnNfZW5kOiBsZW5ndGggaXMgMAorUEFTUyBGbG9hdDMyXzFiX29m
c19lbmQ6IGNsYXNzZXMgYXJlIFtvYmplY3QgRmxvYXQzMkFycmF5XQorUEFTUyBGbG9hdDMyXzFi
X29mc19lbmQ6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIEZsb2F0MzJf
MWJfb2ZzX2VuZDogYnVmZmVyIGxlbmd0aHMgYXJlIDQKK1BBU1MgRmxvYXQzMl8xYl9vZnNfZW5k
OiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgRmxvYXQzMl8xYl9vZnNfZW5k
OiBvZmZzZXQgaXMgNAorUEFTUyBGbG9hdDMyXzFiX29mc19lbmQ6IGxlbmd0aCBpcyAwCitQQVNT
IEZsb2F0NjRfMWJfb2ZzX2VuZDogY2xhc3NlcyBhcmUgW29iamVjdCBGbG9hdDY0QXJyYXldCitQ
QVNTIEZsb2F0NjRfMWJfb2ZzX2VuZDogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0K
K1BBU1MgRmxvYXQ2NF8xYl9vZnNfZW5kOiBidWZmZXIgbGVuZ3RocyBhcmUgOAorUEFTUyBGbG9h
dDY0XzFiX29mc19lbmQ6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBGbG9h
dDY0XzFiX29mc19lbmQ6IG9mZnNldCBpcyA4CitQQVNTIEZsb2F0NjRfMWJfb2ZzX2VuZDogbGVu
Z3RoIGlzIDAKK1BBU1MgSW50MzJfMTI4Yl9vZnNfZW5kOiBjbGFzc2VzIGFyZSBbb2JqZWN0IElu
dDMyQXJyYXldCitQQVNTIEludDMyXzEyOGJfb2ZzX2VuZDogY2xhc3NlcyBhcmUgW29iamVjdCBB
cnJheUJ1ZmZlcl0KK1BBU1MgSW50MzJfMTI4Yl9vZnNfZW5kOiBidWZmZXIgbGVuZ3RocyBhcmUg
NTEyCitQQVNTIEludDMyXzEyOGJfb2ZzX2VuZDogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRl
bnRzCitQQVNTIEludDMyXzEyOGJfb2ZzX2VuZDogb2Zmc2V0IGlzIDUxMgorUEFTUyBJbnQzMl8x
MjhiX29mc19lbmQ6IGxlbmd0aCBpcyAwCitQQVNTIFVpbnQzMl8xMjhiX29mc19lbmQ6IGNsYXNz
ZXMgYXJlIFtvYmplY3QgVWludDMyQXJyYXldCitQQVNTIFVpbnQzMl8xMjhiX29mc19lbmQ6IGNs
YXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIFVpbnQzMl8xMjhiX29mc19lbmQ6
IGJ1ZmZlciBsZW5ndGhzIGFyZSA1MTIKK1BBU1MgVWludDMyXzEyOGJfb2ZzX2VuZDogYnVmZmVy
cyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIFVpbnQzMl8xMjhiX29mc19lbmQ6IG9mZnNl
dCBpcyA1MTIKK1BBU1MgVWludDMyXzEyOGJfb2ZzX2VuZDogbGVuZ3RoIGlzIDAKK1BBU1MgSW50
OF8xMjhiX29mc19lbmQ6IGNsYXNzZXMgYXJlIFtvYmplY3QgSW50OEFycmF5XQorUEFTUyBJbnQ4
XzEyOGJfb2ZzX2VuZDogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgSW50
OF8xMjhiX29mc19lbmQ6IGJ1ZmZlciBsZW5ndGhzIGFyZSAxMjgKK1BBU1MgSW50OF8xMjhiX29m
c19lbmQ6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBJbnQ4XzEyOGJfb2Zz
X2VuZDogb2Zmc2V0IGlzIDEyOAorUEFTUyBJbnQ4XzEyOGJfb2ZzX2VuZDogbGVuZ3RoIGlzIDAK
K1BBU1MgVWludDhfMTI4Yl9vZnNfZW5kOiBjbGFzc2VzIGFyZSBbb2JqZWN0IFVpbnQ4QXJyYXld
CitQQVNTIFVpbnQ4XzEyOGJfb2ZzX2VuZDogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZl
cl0KK1BBU1MgVWludDhfMTI4Yl9vZnNfZW5kOiBidWZmZXIgbGVuZ3RocyBhcmUgMTI4CitQQVNT
IFVpbnQ4XzEyOGJfb2ZzX2VuZDogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNT
IFVpbnQ4XzEyOGJfb2ZzX2VuZDogb2Zmc2V0IGlzIDEyOAorUEFTUyBVaW50OF8xMjhiX29mc19l
bmQ6IGxlbmd0aCBpcyAwCitQQVNTIEludDE2XzEyOGJfb2ZzX2VuZDogY2xhc3NlcyBhcmUgW29i
amVjdCBJbnQxNkFycmF5XQorUEFTUyBJbnQxNl8xMjhiX29mc19lbmQ6IGNsYXNzZXMgYXJlIFtv
YmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIEludDE2XzEyOGJfb2ZzX2VuZDogYnVmZmVyIGxlbmd0
aHMgYXJlIDI1NgorUEFTUyBJbnQxNl8xMjhiX29mc19lbmQ6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2Ft
ZSBjb250ZW50cworUEFTUyBJbnQxNl8xMjhiX29mc19lbmQ6IG9mZnNldCBpcyAyNTYKK1BBU1Mg
SW50MTZfMTI4Yl9vZnNfZW5kOiBsZW5ndGggaXMgMAorUEFTUyBVaW50MTZfMTI4Yl9vZnNfZW5k
OiBjbGFzc2VzIGFyZSBbb2JqZWN0IFVpbnQxNkFycmF5XQorUEFTUyBVaW50MTZfMTI4Yl9vZnNf
ZW5kOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBVaW50MTZfMTI4Yl9v
ZnNfZW5kOiBidWZmZXIgbGVuZ3RocyBhcmUgMjU2CitQQVNTIFVpbnQxNl8xMjhiX29mc19lbmQ6
IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBVaW50MTZfMTI4Yl9vZnNfZW5k
OiBvZmZzZXQgaXMgMjU2CitQQVNTIFVpbnQxNl8xMjhiX29mc19lbmQ6IGxlbmd0aCBpcyAwCitQ
QVNTIEZsb2F0MzJfMTI4Yl9vZnNfZW5kOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEZsb2F0MzJBcnJh
eV0KK1BBU1MgRmxvYXQzMl8xMjhiX29mc19lbmQ6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlC
dWZmZXJdCitQQVNTIEZsb2F0MzJfMTI4Yl9vZnNfZW5kOiBidWZmZXIgbGVuZ3RocyBhcmUgNTEy
CitQQVNTIEZsb2F0MzJfMTI4Yl9vZnNfZW5kOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVu
dHMKK1BBU1MgRmxvYXQzMl8xMjhiX29mc19lbmQ6IG9mZnNldCBpcyA1MTIKK1BBU1MgRmxvYXQz
Ml8xMjhiX29mc19lbmQ6IGxlbmd0aCBpcyAwCitQQVNTIEZsb2F0NjRfMTI4Yl9vZnNfZW5kOiBj
bGFzc2VzIGFyZSBbb2JqZWN0IEZsb2F0NjRBcnJheV0KK1BBU1MgRmxvYXQ2NF8xMjhiX29mc19l
bmQ6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIEZsb2F0NjRfMTI4Yl9v
ZnNfZW5kOiBidWZmZXIgbGVuZ3RocyBhcmUgMTAyNAorUEFTUyBGbG9hdDY0XzEyOGJfb2ZzX2Vu
ZDogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIEZsb2F0NjRfMTI4Yl9vZnNf
ZW5kOiBvZmZzZXQgaXMgMTAyNAorUEFTUyBGbG9hdDY0XzEyOGJfb2ZzX2VuZDogbGVuZ3RoIGlz
IDAKK1BBU1MgSW50MzJfMTI4Yl9vZnNfc2xpY2UwOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEludDMy
QXJyYXldCitQQVNTIEludDMyXzEyOGJfb2ZzX3NsaWNlMDogY2xhc3NlcyBhcmUgW29iamVjdCBB
cnJheUJ1ZmZlcl0KK1BBU1MgSW50MzJfMTI4Yl9vZnNfc2xpY2UwOiBidWZmZXIgbGVuZ3RocyBh
cmUgNTEyCitQQVNTIEludDMyXzEyOGJfb2ZzX3NsaWNlMDogYnVmZmVycyBoYXZlIHRoZSBzYW1l
IGNvbnRlbnRzCitQQVNTIEludDMyXzEyOGJfb2ZzX3NsaWNlMDogb2Zmc2V0IGlzIDI1NgorUEFT
UyBJbnQzMl8xMjhiX29mc19zbGljZTA6IGxlbmd0aCBpcyAwCitQQVNTIFVpbnQzMl8xMjhiX29m
c19zbGljZTA6IGNsYXNzZXMgYXJlIFtvYmplY3QgVWludDMyQXJyYXldCitQQVNTIFVpbnQzMl8x
MjhiX29mc19zbGljZTA6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIFVp
bnQzMl8xMjhiX29mc19zbGljZTA6IGJ1ZmZlciBsZW5ndGhzIGFyZSA1MTIKK1BBU1MgVWludDMy
XzEyOGJfb2ZzX3NsaWNlMDogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIFVp
bnQzMl8xMjhiX29mc19zbGljZTA6IG9mZnNldCBpcyAyNTYKK1BBU1MgVWludDMyXzEyOGJfb2Zz
X3NsaWNlMDogbGVuZ3RoIGlzIDAKK1BBU1MgSW50OF8xMjhiX29mc19zbGljZTA6IGNsYXNzZXMg
YXJlIFtvYmplY3QgSW50OEFycmF5XQorUEFTUyBJbnQ4XzEyOGJfb2ZzX3NsaWNlMDogY2xhc3Nl
cyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgSW50OF8xMjhiX29mc19zbGljZTA6IGJ1
ZmZlciBsZW5ndGhzIGFyZSAxMjgKK1BBU1MgSW50OF8xMjhiX29mc19zbGljZTA6IGJ1ZmZlcnMg
aGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBJbnQ4XzEyOGJfb2ZzX3NsaWNlMDogb2Zmc2V0
IGlzIDY0CitQQVNTIEludDhfMTI4Yl9vZnNfc2xpY2UwOiBsZW5ndGggaXMgMAorUEFTUyBVaW50
OF8xMjhiX29mc19zbGljZTA6IGNsYXNzZXMgYXJlIFtvYmplY3QgVWludDhBcnJheV0KK1BBU1Mg
VWludDhfMTI4Yl9vZnNfc2xpY2UwOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQor
UEFTUyBVaW50OF8xMjhiX29mc19zbGljZTA6IGJ1ZmZlciBsZW5ndGhzIGFyZSAxMjgKK1BBU1Mg
VWludDhfMTI4Yl9vZnNfc2xpY2UwOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BB
U1MgVWludDhfMTI4Yl9vZnNfc2xpY2UwOiBvZmZzZXQgaXMgNjQKK1BBU1MgVWludDhfMTI4Yl9v
ZnNfc2xpY2UwOiBsZW5ndGggaXMgMAorUEFTUyBJbnQxNl8xMjhiX29mc19zbGljZTA6IGNsYXNz
ZXMgYXJlIFtvYmplY3QgSW50MTZBcnJheV0KK1BBU1MgSW50MTZfMTI4Yl9vZnNfc2xpY2UwOiBj
bGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBJbnQxNl8xMjhiX29mc19zbGlj
ZTA6IGJ1ZmZlciBsZW5ndGhzIGFyZSAyNTYKK1BBU1MgSW50MTZfMTI4Yl9vZnNfc2xpY2UwOiBi
dWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgSW50MTZfMTI4Yl9vZnNfc2xpY2Uw
OiBvZmZzZXQgaXMgMTI4CitQQVNTIEludDE2XzEyOGJfb2ZzX3NsaWNlMDogbGVuZ3RoIGlzIDAK
K1BBU1MgVWludDE2XzEyOGJfb2ZzX3NsaWNlMDogY2xhc3NlcyBhcmUgW29iamVjdCBVaW50MTZB
cnJheV0KK1BBU1MgVWludDE2XzEyOGJfb2ZzX3NsaWNlMDogY2xhc3NlcyBhcmUgW29iamVjdCBB
cnJheUJ1ZmZlcl0KK1BBU1MgVWludDE2XzEyOGJfb2ZzX3NsaWNlMDogYnVmZmVyIGxlbmd0aHMg
YXJlIDI1NgorUEFTUyBVaW50MTZfMTI4Yl9vZnNfc2xpY2UwOiBidWZmZXJzIGhhdmUgdGhlIHNh
bWUgY29udGVudHMKK1BBU1MgVWludDE2XzEyOGJfb2ZzX3NsaWNlMDogb2Zmc2V0IGlzIDEyOAor
UEFTUyBVaW50MTZfMTI4Yl9vZnNfc2xpY2UwOiBsZW5ndGggaXMgMAorUEFTUyBGbG9hdDMyXzEy
OGJfb2ZzX3NsaWNlMDogY2xhc3NlcyBhcmUgW29iamVjdCBGbG9hdDMyQXJyYXldCitQQVNTIEZs
b2F0MzJfMTI4Yl9vZnNfc2xpY2UwOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQor
UEFTUyBGbG9hdDMyXzEyOGJfb2ZzX3NsaWNlMDogYnVmZmVyIGxlbmd0aHMgYXJlIDUxMgorUEFT
UyBGbG9hdDMyXzEyOGJfb2ZzX3NsaWNlMDogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRz
CitQQVNTIEZsb2F0MzJfMTI4Yl9vZnNfc2xpY2UwOiBvZmZzZXQgaXMgMjU2CitQQVNTIEZsb2F0
MzJfMTI4Yl9vZnNfc2xpY2UwOiBsZW5ndGggaXMgMAorUEFTUyBGbG9hdDY0XzEyOGJfb2ZzX3Ns
aWNlMDogY2xhc3NlcyBhcmUgW29iamVjdCBGbG9hdDY0QXJyYXldCitQQVNTIEZsb2F0NjRfMTI4
Yl9vZnNfc2xpY2UwOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBGbG9h
dDY0XzEyOGJfb2ZzX3NsaWNlMDogYnVmZmVyIGxlbmd0aHMgYXJlIDEwMjQKK1BBU1MgRmxvYXQ2
NF8xMjhiX29mc19zbGljZTA6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBG
bG9hdDY0XzEyOGJfb2ZzX3NsaWNlMDogb2Zmc2V0IGlzIDUxMgorUEFTUyBGbG9hdDY0XzEyOGJf
b2ZzX3NsaWNlMDogbGVuZ3RoIGlzIDAKK1BBU1MgSW50MzJfMTI4Yl9vZnNfc2xpY2UxOiBjbGFz
c2VzIGFyZSBbb2JqZWN0IEludDMyQXJyYXldCitQQVNTIEludDMyXzEyOGJfb2ZzX3NsaWNlMTog
Y2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgSW50MzJfMTI4Yl9vZnNfc2xp
Y2UxOiBidWZmZXIgbGVuZ3RocyBhcmUgNTEyCitQQVNTIEludDMyXzEyOGJfb2ZzX3NsaWNlMTog
YnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIEludDMyXzEyOGJfb2ZzX3NsaWNl
MTogb2Zmc2V0IGlzIDI1NgorUEFTUyBJbnQzMl8xMjhiX29mc19zbGljZTE6IGxlbmd0aCBpcyA0
CitQQVNTIFVpbnQzMl8xMjhiX29mc19zbGljZTE6IGNsYXNzZXMgYXJlIFtvYmplY3QgVWludDMy
QXJyYXldCitQQVNTIFVpbnQzMl8xMjhiX29mc19zbGljZTE6IGNsYXNzZXMgYXJlIFtvYmplY3Qg
QXJyYXlCdWZmZXJdCitQQVNTIFVpbnQzMl8xMjhiX29mc19zbGljZTE6IGJ1ZmZlciBsZW5ndGhz
IGFyZSA1MTIKK1BBU1MgVWludDMyXzEyOGJfb2ZzX3NsaWNlMTogYnVmZmVycyBoYXZlIHRoZSBz
YW1lIGNvbnRlbnRzCitQQVNTIFVpbnQzMl8xMjhiX29mc19zbGljZTE6IG9mZnNldCBpcyAyNTYK
K1BBU1MgVWludDMyXzEyOGJfb2ZzX3NsaWNlMTogbGVuZ3RoIGlzIDQKK1BBU1MgSW50OF8xMjhi
X29mc19zbGljZTE6IGNsYXNzZXMgYXJlIFtvYmplY3QgSW50OEFycmF5XQorUEFTUyBJbnQ4XzEy
OGJfb2ZzX3NsaWNlMTogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgSW50
OF8xMjhiX29mc19zbGljZTE6IGJ1ZmZlciBsZW5ndGhzIGFyZSAxMjgKK1BBU1MgSW50OF8xMjhi
X29mc19zbGljZTE6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBJbnQ4XzEy
OGJfb2ZzX3NsaWNlMTogb2Zmc2V0IGlzIDY0CitQQVNTIEludDhfMTI4Yl9vZnNfc2xpY2UxOiBs
ZW5ndGggaXMgMQorUEFTUyBVaW50OF8xMjhiX29mc19zbGljZTE6IGNsYXNzZXMgYXJlIFtvYmpl
Y3QgVWludDhBcnJheV0KK1BBU1MgVWludDhfMTI4Yl9vZnNfc2xpY2UxOiBjbGFzc2VzIGFyZSBb
b2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBVaW50OF8xMjhiX29mc19zbGljZTE6IGJ1ZmZlciBs
ZW5ndGhzIGFyZSAxMjgKK1BBU1MgVWludDhfMTI4Yl9vZnNfc2xpY2UxOiBidWZmZXJzIGhhdmUg
dGhlIHNhbWUgY29udGVudHMKK1BBU1MgVWludDhfMTI4Yl9vZnNfc2xpY2UxOiBvZmZzZXQgaXMg
NjQKK1BBU1MgVWludDhfMTI4Yl9vZnNfc2xpY2UxOiBsZW5ndGggaXMgMQorUEFTUyBJbnQxNl8x
MjhiX29mc19zbGljZTE6IGNsYXNzZXMgYXJlIFtvYmplY3QgSW50MTZBcnJheV0KK1BBU1MgSW50
MTZfMTI4Yl9vZnNfc2xpY2UxOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFT
UyBJbnQxNl8xMjhiX29mc19zbGljZTE6IGJ1ZmZlciBsZW5ndGhzIGFyZSAyNTYKK1BBU1MgSW50
MTZfMTI4Yl9vZnNfc2xpY2UxOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1Mg
SW50MTZfMTI4Yl9vZnNfc2xpY2UxOiBvZmZzZXQgaXMgMTI4CitQQVNTIEludDE2XzEyOGJfb2Zz
X3NsaWNlMTogbGVuZ3RoIGlzIDIKK1BBU1MgVWludDE2XzEyOGJfb2ZzX3NsaWNlMTogY2xhc3Nl
cyBhcmUgW29iamVjdCBVaW50MTZBcnJheV0KK1BBU1MgVWludDE2XzEyOGJfb2ZzX3NsaWNlMTog
Y2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgVWludDE2XzEyOGJfb2ZzX3Ns
aWNlMTogYnVmZmVyIGxlbmd0aHMgYXJlIDI1NgorUEFTUyBVaW50MTZfMTI4Yl9vZnNfc2xpY2Ux
OiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgVWludDE2XzEyOGJfb2ZzX3Ns
aWNlMTogb2Zmc2V0IGlzIDEyOAorUEFTUyBVaW50MTZfMTI4Yl9vZnNfc2xpY2UxOiBsZW5ndGgg
aXMgMgorUEFTUyBGbG9hdDMyXzEyOGJfb2ZzX3NsaWNlMTogY2xhc3NlcyBhcmUgW29iamVjdCBG
bG9hdDMyQXJyYXldCitQQVNTIEZsb2F0MzJfMTI4Yl9vZnNfc2xpY2UxOiBjbGFzc2VzIGFyZSBb
b2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBGbG9hdDMyXzEyOGJfb2ZzX3NsaWNlMTogYnVmZmVy
IGxlbmd0aHMgYXJlIDUxMgorUEFTUyBGbG9hdDMyXzEyOGJfb2ZzX3NsaWNlMTogYnVmZmVycyBo
YXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIEZsb2F0MzJfMTI4Yl9vZnNfc2xpY2UxOiBvZmZz
ZXQgaXMgMjU2CitQQVNTIEZsb2F0MzJfMTI4Yl9vZnNfc2xpY2UxOiBsZW5ndGggaXMgNAorUEFT
UyBGbG9hdDY0XzEyOGJfb2ZzX3NsaWNlMTogY2xhc3NlcyBhcmUgW29iamVjdCBGbG9hdDY0QXJy
YXldCitQQVNTIEZsb2F0NjRfMTI4Yl9vZnNfc2xpY2UxOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFy
cmF5QnVmZmVyXQorUEFTUyBGbG9hdDY0XzEyOGJfb2ZzX3NsaWNlMTogYnVmZmVyIGxlbmd0aHMg
YXJlIDEwMjQKK1BBU1MgRmxvYXQ2NF8xMjhiX29mc19zbGljZTE6IGJ1ZmZlcnMgaGF2ZSB0aGUg
c2FtZSBjb250ZW50cworUEFTUyBGbG9hdDY0XzEyOGJfb2ZzX3NsaWNlMTogb2Zmc2V0IGlzIDUx
MgorUEFTUyBGbG9hdDY0XzEyOGJfb2ZzX3NsaWNlMTogbGVuZ3RoIGlzIDgKK1BBU1MgSW50MzJf
MTI4Yl9vZnNfc2xpY2UxNjogY2xhc3NlcyBhcmUgW29iamVjdCBJbnQzMkFycmF5XQorUEFTUyBJ
bnQzMl8xMjhiX29mc19zbGljZTE2OiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQor
UEFTUyBJbnQzMl8xMjhiX29mc19zbGljZTE2OiBidWZmZXIgbGVuZ3RocyBhcmUgNTEyCitQQVNT
IEludDMyXzEyOGJfb2ZzX3NsaWNlMTY6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cwor
UEFTUyBJbnQzMl8xMjhiX29mc19zbGljZTE2OiBvZmZzZXQgaXMgMjU2CitQQVNTIEludDMyXzEy
OGJfb2ZzX3NsaWNlMTY6IGxlbmd0aCBpcyA2NAorUEFTUyBVaW50MzJfMTI4Yl9vZnNfc2xpY2Ux
NjogY2xhc3NlcyBhcmUgW29iamVjdCBVaW50MzJBcnJheV0KK1BBU1MgVWludDMyXzEyOGJfb2Zz
X3NsaWNlMTY6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIFVpbnQzMl8x
MjhiX29mc19zbGljZTE2OiBidWZmZXIgbGVuZ3RocyBhcmUgNTEyCitQQVNTIFVpbnQzMl8xMjhi
X29mc19zbGljZTE2OiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgVWludDMy
XzEyOGJfb2ZzX3NsaWNlMTY6IG9mZnNldCBpcyAyNTYKK1BBU1MgVWludDMyXzEyOGJfb2ZzX3Ns
aWNlMTY6IGxlbmd0aCBpcyA2NAorUEFTUyBJbnQ4XzEyOGJfb2ZzX3NsaWNlMTY6IGNsYXNzZXMg
YXJlIFtvYmplY3QgSW50OEFycmF5XQorUEFTUyBJbnQ4XzEyOGJfb2ZzX3NsaWNlMTY6IGNsYXNz
ZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIEludDhfMTI4Yl9vZnNfc2xpY2UxNjog
YnVmZmVyIGxlbmd0aHMgYXJlIDEyOAorUEFTUyBJbnQ4XzEyOGJfb2ZzX3NsaWNlMTY6IGJ1ZmZl
cnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBJbnQ4XzEyOGJfb2ZzX3NsaWNlMTY6IG9m
ZnNldCBpcyA2NAorUEFTUyBJbnQ4XzEyOGJfb2ZzX3NsaWNlMTY6IGxlbmd0aCBpcyAxNgorUEFT
UyBVaW50OF8xMjhiX29mc19zbGljZTE2OiBjbGFzc2VzIGFyZSBbb2JqZWN0IFVpbnQ4QXJyYXld
CitQQVNTIFVpbnQ4XzEyOGJfb2ZzX3NsaWNlMTY6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlC
dWZmZXJdCitQQVNTIFVpbnQ4XzEyOGJfb2ZzX3NsaWNlMTY6IGJ1ZmZlciBsZW5ndGhzIGFyZSAx
MjgKK1BBU1MgVWludDhfMTI4Yl9vZnNfc2xpY2UxNjogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNv
bnRlbnRzCitQQVNTIFVpbnQ4XzEyOGJfb2ZzX3NsaWNlMTY6IG9mZnNldCBpcyA2NAorUEFTUyBV
aW50OF8xMjhiX29mc19zbGljZTE2OiBsZW5ndGggaXMgMTYKK1BBU1MgSW50MTZfMTI4Yl9vZnNf
c2xpY2UxNjogY2xhc3NlcyBhcmUgW29iamVjdCBJbnQxNkFycmF5XQorUEFTUyBJbnQxNl8xMjhi
X29mc19zbGljZTE2OiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBJbnQx
Nl8xMjhiX29mc19zbGljZTE2OiBidWZmZXIgbGVuZ3RocyBhcmUgMjU2CitQQVNTIEludDE2XzEy
OGJfb2ZzX3NsaWNlMTY6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBJbnQx
Nl8xMjhiX29mc19zbGljZTE2OiBvZmZzZXQgaXMgMTI4CitQQVNTIEludDE2XzEyOGJfb2ZzX3Ns
aWNlMTY6IGxlbmd0aCBpcyAzMgorUEFTUyBVaW50MTZfMTI4Yl9vZnNfc2xpY2UxNjogY2xhc3Nl
cyBhcmUgW29iamVjdCBVaW50MTZBcnJheV0KK1BBU1MgVWludDE2XzEyOGJfb2ZzX3NsaWNlMTY6
IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIFVpbnQxNl8xMjhiX29mc19z
bGljZTE2OiBidWZmZXIgbGVuZ3RocyBhcmUgMjU2CitQQVNTIFVpbnQxNl8xMjhiX29mc19zbGlj
ZTE2OiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgVWludDE2XzEyOGJfb2Zz
X3NsaWNlMTY6IG9mZnNldCBpcyAxMjgKK1BBU1MgVWludDE2XzEyOGJfb2ZzX3NsaWNlMTY6IGxl
bmd0aCBpcyAzMgorUEFTUyBGbG9hdDMyXzEyOGJfb2ZzX3NsaWNlMTY6IGNsYXNzZXMgYXJlIFtv
YmplY3QgRmxvYXQzMkFycmF5XQorUEFTUyBGbG9hdDMyXzEyOGJfb2ZzX3NsaWNlMTY6IGNsYXNz
ZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIEZsb2F0MzJfMTI4Yl9vZnNfc2xpY2Ux
NjogYnVmZmVyIGxlbmd0aHMgYXJlIDUxMgorUEFTUyBGbG9hdDMyXzEyOGJfb2ZzX3NsaWNlMTY6
IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBGbG9hdDMyXzEyOGJfb2ZzX3Ns
aWNlMTY6IG9mZnNldCBpcyAyNTYKK1BBU1MgRmxvYXQzMl8xMjhiX29mc19zbGljZTE2OiBsZW5n
dGggaXMgNjQKK1BBU1MgRmxvYXQ2NF8xMjhiX29mc19zbGljZTE2OiBjbGFzc2VzIGFyZSBbb2Jq
ZWN0IEZsb2F0NjRBcnJheV0KK1BBU1MgRmxvYXQ2NF8xMjhiX29mc19zbGljZTE2OiBjbGFzc2Vz
IGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBGbG9hdDY0XzEyOGJfb2ZzX3NsaWNlMTY6
IGJ1ZmZlciBsZW5ndGhzIGFyZSAxMDI0CitQQVNTIEZsb2F0NjRfMTI4Yl9vZnNfc2xpY2UxNjog
YnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIEZsb2F0NjRfMTI4Yl9vZnNfc2xp
Y2UxNjogb2Zmc2V0IGlzIDUxMgorUEFTUyBGbG9hdDY0XzEyOGJfb2ZzX3NsaWNlMTY6IGxlbmd0
aCBpcyAxMjgKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVU
RQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9hcnJheS1tZXNz
YWdlLXBhc3NpbmcuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2FycmF5LW1l
c3NhZ2UtcGFzc2luZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlh
NzBjM2YKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9h
cnJheS1tZXNzYWdlLXBhc3NpbmcuaHRtbApAQCAtMCwwICsxLDE0IEBACis8IURPQ1RZUEUgSFRN
TCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsg
cmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5j
c3MiLz4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy93ZWJnbC10ZXN0LmpzIj48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgorPGRpdiBpZD0i
Y29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2FycmF5LW1lc3NhZ2Ut
cGFzc2luZy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9zY3JpcHQtdGVzdHMvYXJyYXktbWVzc2FnZS1w
YXNzaW5nLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvc2NyaXB0LXRlc3RzL2Fy
cmF5LW1lc3NhZ2UtcGFzc2luZy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li5kN2ZmYTM2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2Vi
Z2wvc2NyaXB0LXRlc3RzL2FycmF5LW1lc3NhZ2UtcGFzc2luZy5qcwpAQCAtMCwwICsxLDE4NCBA
QAord2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOword2luZG93LmNoZWF0ID0gZmFsc2U7CisK
K2Rlc2NyaXB0aW9uKCdUZXN0IHBhc3NpbmcgQXJyYXlCdWZmZXJzIGFuZCBBcnJheUJ1ZmZlclZp
ZXdzIGluIG1lc3NhZ2VzLicpOword2luZG93LnRlc3RzQ29tcGxldGUgPSAwOworCitmdW5jdGlv
biBjbGFzc0NvbXBhcmUodG5hbWUsIGcsIHMpIHsKKyAgdmFyIGNsYXNzU3RyID0gT2JqZWN0LnBy
b3RvdHlwZS50b1N0cmluZzsKKyAgdmFyIGdjbGFzcyA9IGNsYXNzU3RyLmNhbGwoZyk7CisgIHZh
ciBzY2xhc3MgPSBjbGFzc1N0ci5jYWxsKHMpOworICBpZiAoZ2NsYXNzICE9PSBzY2xhc3MpIHsK
KyAgICB0ZXN0RmFpbGVkKHRuYW1lICsgIjogY2xhc3MgIiArIHNjbGFzcyArICIgYmVjYW1lICIg
KyBnY2xhc3MpOworICAgIHJldHVybiBmYWxzZTsKKyAgfSBlbHNlIHsKKyAgICB0ZXN0UGFzc2Vk
KHRuYW1lICsgIjogY2xhc3NlcyBhcmUgIiArIHNjbGFzcyk7CisgICAgcmV0dXJuIHRydWU7Cisg
IH0KK30KKworZnVuY3Rpb24gYnVmZmVyQ29tcGFyZSh0bmFtZSwgZywgcykgeworICBpZiAoIWNs
YXNzQ29tcGFyZSh0bmFtZSwgZywgcykpIHsKKyAgICByZXR1cm4gZmFsc2U7CisgIH0KKyAgaWYg
KGcuYnl0ZUxlbmd0aCAhPT0gcy5ieXRlTGVuZ3RoKSB7CisgICAgdGVzdEZhaWxlZCh0bmFtZSAr
ICI6IGV4cGVjdGVkICIgKyBzLmJ5dGVMZW5ndGggKyAiIGJ5dGVzLCBnb3QgIiArIGcuYnl0ZUxl
bmd0aCk7CisgICAgcmV0dXJuIGZhbHNlOworICB9IGVsc2UgeworICAgIHRlc3RQYXNzZWQodG5h
bWUgKyAiOiBidWZmZXIgbGVuZ3RocyBhcmUgIiArIHMuYnl0ZUxlbmd0aCk7CisgIH0KKyAgdmFy
IGdyZWFkZXIgPSBuZXcgVWludDhBcnJheShnKTsKKyAgdmFyIHNyZWFkZXIgPSBuZXcgVWludDhB
cnJheShzKTsKKyAgZm9yICh2YXIgaSA9IDA7IGkgPCBzLmJ5dGVMZW5ndGg7ICsraSkgeworICAg
IGlmIChncmVhZGVyW2ldICE9PSBzcmVhZGVyW2ldKSB7CisgICAgICB0ZXN0RmFpbGVkKHRuYW1l
ICsgIjogYnVmZmVycyBkaWZmZXIgc3RhcnRpbmcgYXQgYnl0ZSAiICsgaSk7CisgICAgICByZXR1
cm4gZmFsc2U7CisgICAgfQorICB9CisgIHRlc3RQYXNzZWQodG5hbWUgKyAiOiBidWZmZXJzIGhh
dmUgdGhlIHNhbWUgY29udGVudHMiKTsKKyAgcmV0dXJuIHRydWU7Cit9CisKK2Z1bmN0aW9uIHZp
ZXdDb21wYXJlKHRuYW1lLCBnLCBzKSB7CisgIGlmICghY2xhc3NDb21wYXJlKHRuYW1lLCBnLCBz
KSkgeworICAgIHJldHVybiBmYWxzZTsKKyAgfQorICBpZiAoIWJ1ZmZlckNvbXBhcmUodG5hbWUs
IGcuYnVmZmVyLCBzLmJ1ZmZlcikpIHsKKyAgICByZXR1cm4gZmFsc2U7CisgIH0KKyAgaWYgKGcu
Ynl0ZU9mZnNldCAhPT0gcy5ieXRlT2Zmc2V0KSB7CisgICAgdGVzdEZhaWxlZCh0bmFtZSArICI6
IG9mZnNldCAiICsgcy5ieXRlT2Zmc2V0ICsgIiBiZWNhbWUgIiArIGcuYnl0ZU9mZnNldCk7Cisg
ICAgcmV0dXJuIGZhbHNlOworICB9IGVsc2UgeworICAgIHRlc3RQYXNzZWQodG5hbWUgKyAiOiBv
ZmZzZXQgaXMgIiArIHMuYnl0ZU9mZnNldCk7CisgIH0KKyAgaWYgKGcuYnl0ZUxlbmd0aCAhPT0g
cy5ieXRlTGVuZ3RoKSB7CisgICAgdGVzdEZhaWxlZCh0bmFtZSArICI6IGxlbmd0aCAiICsgcy5i
eXRlTGVuZ3RoICsgIiBiZWNhbWUgIiArIGcuYnl0ZUxlbmd0aCk7CisgICAgcmV0dXJuIGZhbHNl
OworICB9IGVsc2UgeworICAgIHRlc3RQYXNzZWQodG5hbWUgKyAiOiBsZW5ndGggaXMgIiArIHMu
Ynl0ZUxlbmd0aCk7CisgIH0KKyAgcmV0dXJuIHRydWU7Cit9CisKK2Z1bmN0aW9uIHR5cGVkQXJy
YXlDb21wYXJlKHRuYW1lLCBnLCBzKSB7CisgIGlmICghdmlld0NvbXBhcmUodG5hbWUsIGcsIHMp
KSB7CisgICAgcmV0dXJuIGZhbHNlOworICB9CisgIGlmIChnLkJZVEVTX1BFUl9FTEVNRU5UICE9
PSBzLkJZVEVTX1BFUl9FTEVNRU5UKSB7CisgICAgLy8gU2FuaXR5IGNoZWNraW5nLgorICAgIHRl
c3RGYWlsZWQodG5hbWUgKyAiOiBleHBlY3RlZCAiICsgcy5CWVRFU19QRVJfRUxFTUVOVCArICIs
IHNhdyAiICsgZy5CWVRFU19QRVJfRUxFTUVOVCk7CisgICAgcmV0dXJuIGZhbHNlOworICB9Cit9
CisKK2Z1bmN0aW9uIGRhdGFWaWV3Q29tcGFyZSh0bmFtZSwgZywgcykgeworICBpZiAoIXZpZXdD
b21wYXJlKHRuYW1lLCBnLCBzKSkgeworICAgIHJldHVybiBmYWxzZTsKKyAgfQorfQorCitmdW5j
dGlvbiBjcmVhdGVCdWZmZXIobGVuZ3RoKSB7CisgIHZhciBidWZmZXIgPSBuZXcgQXJyYXlCdWZm
ZXIobGVuZ3RoKTsKKyAgdmFyIHZpZXcgPSBuZXcgVWludDhBcnJheShidWZmZXIpOworICBmb3Ig
KHZhciBpID0gMDsgaSA8IGxlbmd0aDsgKytpKSB7CisgICAgdmlld1tpXSA9IGkgKyAxOworICB9
CisgIHJldHVybiBidWZmZXI7Cit9CisKK2Z1bmN0aW9uIGNyZWF0ZVR5cGVkQXJyYXkodGF0eXBl
LCBsZW5ndGgpIHsKKyAgdmFyIHZpZXcgPSBuZXcgdGF0eXBlKGxlbmd0aCk7CisgIGZvciAodmFy
IGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpIHsKKyAgICB2aWV3W2ldID0gaSArIDE7CisgIH0KKyAg
cmV0dXJuIHZpZXc7Cit9CisKK2Z1bmN0aW9uIGNyZWF0ZVR5cGVkQXJyYXlPdmVyQnVmZmVyKHRh
dHlwZSwgdGFlbHRzaXplLCBsZW5ndGgsIHN1YnN0YXJ0LCBzdWJsZW5ndGgpIHsKKyAgdmFyIGJ1
ZmZlciA9IG5ldyBBcnJheUJ1ZmZlcihsZW5ndGggKiB0YWVsdHNpemUpOworICBpZiAoc3Vic3Rh
cnQgPT09IHVuZGVmaW5lZCkgeworICAgIHN1YnN0YXJ0ID0gMDsKKyAgICBzdWJsZW5ndGggPSBs
ZW5ndGg7CisgIH0KKyAgcmV0dXJuIG5ldyB0YXR5cGUoYnVmZmVyLCBzdWJzdGFydCAqIHRhZWx0
c2l6ZSwgc3VibGVuZ3RoKTsKK30KKwordmFyIGJhc2ljQnVmZmVyVHlwZXMgPSBbCisgIFsiSW50
MzIiLCBJbnQzMkFycmF5LCA0XSwKKyAgWyJVaW50MzIiLCBVaW50MzJBcnJheSwgNF0sCisgIFsi
SW50OCIsIEludDhBcnJheSwgMV0sCisgIFsiVWludDgiLCBVaW50OEFycmF5LCAxXSwKKyAgWyJJ
bnQxNiIsIEludDE2QXJyYXksIDJdLAorICBbIlVpbnQxNiIsIFVpbnQxNkFycmF5LCAyXSwKKyAg
WyJGbG9hdDMyIiwgRmxvYXQzMkFycmF5LCA0XSwKKyAgWyJGbG9hdDY0IiwgRmxvYXQ2NEFycmF5
LCA4XQorXTsKKwordmFyIHRlc3RMaXN0ID0gWworICBbJ0FycmF5QnVmZmVyMCcsIG5ldyBBcnJh
eUJ1ZmZlcigwKSwgYnVmZmVyQ29tcGFyZV0sCisgIFsnQXJyYXlCdWZmZXIxJywgY3JlYXRlQnVm
ZmVyKDEpLCBidWZmZXJDb21wYXJlXSwKKyAgWydBcnJheUJ1ZmZlcjEyOCcsIGNyZWF0ZUJ1ZmZl
cigxMjgpLCBidWZmZXJDb21wYXJlXSwKKyAgWydEYXRhVmlldzAnLCBuZXcgRGF0YVZpZXcobmV3
IEFycmF5QnVmZmVyKDApKSwgZGF0YVZpZXdDb21wYXJlXSwKKyAgWydEYXRhVmlldzEnLCBuZXcg
RGF0YVZpZXcoY3JlYXRlQnVmZmVyKDEpKSwgZGF0YVZpZXdDb21wYXJlXSwKKyAgWydEYXRhVmll
dzEyOCcsIG5ldyBEYXRhVmlldyhjcmVhdGVCdWZmZXIoMTI4KSksIGRhdGFWaWV3Q29tcGFyZV0s
CisgIFsnRGF0YVZpZXcxX29mc19lbmQnLCBuZXcgRGF0YVZpZXcoY3JlYXRlQnVmZmVyKDEpLCAx
LCAwKSwgZGF0YVZpZXdDb21wYXJlXSwKKyAgWydEYXRhVmlldzEyOF9vZnNfZW5kJywgbmV3IERh
dGFWaWV3KGNyZWF0ZUJ1ZmZlcigxMjgpLCAxMjgsIDApLCBkYXRhVmlld0NvbXBhcmVdLAorICBb
J0RhdGFWaWV3MTI4X29mc19zbGljZTAnLCBuZXcgRGF0YVZpZXcoY3JlYXRlQnVmZmVyKDEyOCks
IDY0LCAwKSwgZGF0YVZpZXdDb21wYXJlXSwKKyAgWydEYXRhVmlldzEyOF9vZnNfc2xpY2UxJywg
bmV3IERhdGFWaWV3KGNyZWF0ZUJ1ZmZlcigxMjgpLCA2NCwgMSksIGRhdGFWaWV3Q29tcGFyZV0s
CisgIFsnRGF0YVZpZXcxMjhfb2ZzX3NsaWNlMTYnLCBuZXcgRGF0YVZpZXcoY3JlYXRlQnVmZmVy
KDEyOCksIDY0LCAxNiksIGRhdGFWaWV3Q29tcGFyZV0sCisgIFsnRGF0YVZpZXcxMjhfb2ZzX3Ns
aWNlX3VuYWxpZ25lZCcsIG5ldyBEYXRhVmlldyhjcmVhdGVCdWZmZXIoMTI4KSwgNjMsIDE1KSwg
ZGF0YVZpZXdDb21wYXJlXQorXTsKKwordGVzdExpc3QgPSB0ZXN0TGlzdC5jb25jYXQoYmFzaWNC
dWZmZXJUeXBlcy5tYXAoZnVuY3Rpb24odCkKKyAge3JldHVybiBbdFswXSArICJfMCIsIGNyZWF0
ZVR5cGVkQXJyYXkodFsxXSwgMCksIHR5cGVkQXJyYXlDb21wYXJlXTt9KSk7Cit0ZXN0TGlzdCA9
IHRlc3RMaXN0LmNvbmNhdChiYXNpY0J1ZmZlclR5cGVzLm1hcChmdW5jdGlvbih0KQorICB7cmV0
dXJuIFt0WzBdICsgIl8xIiwgY3JlYXRlVHlwZWRBcnJheSh0WzFdLCAxKSwgdHlwZWRBcnJheUNv
bXBhcmVdO30pKTsKK3Rlc3RMaXN0ID0gdGVzdExpc3QuY29uY2F0KGJhc2ljQnVmZmVyVHlwZXMu
bWFwKGZ1bmN0aW9uKHQpCisgIHtyZXR1cm4gW3RbMF0gKyAiXzEyOCIsIGNyZWF0ZVR5cGVkQXJy
YXkodFsxXSwgMTI4KSwgdHlwZWRBcnJheUNvbXBhcmVdO30pKTsKK3Rlc3RMaXN0ID0gdGVzdExp
c3QuY29uY2F0KGJhc2ljQnVmZmVyVHlwZXMubWFwKGZ1bmN0aW9uKHQpCisgIHtyZXR1cm4gW3Rb
MF0gKyAiXzBiIiwgY3JlYXRlVHlwZWRBcnJheU92ZXJCdWZmZXIodFsxXSwgdFsyXSwgMCksIHR5
cGVkQXJyYXlDb21wYXJlXTt9KSk7Cit0ZXN0TGlzdCA9IHRlc3RMaXN0LmNvbmNhdChiYXNpY0J1
ZmZlclR5cGVzLm1hcChmdW5jdGlvbih0KQorICB7cmV0dXJuIFt0WzBdICsgIl8xYiIsIGNyZWF0
ZVR5cGVkQXJyYXlPdmVyQnVmZmVyKHRbMV0sIHRbMl0sIDEpLCB0eXBlZEFycmF5Q29tcGFyZV07
fSkpOwordGVzdExpc3QgPSB0ZXN0TGlzdC5jb25jYXQoYmFzaWNCdWZmZXJUeXBlcy5tYXAoZnVu
Y3Rpb24odCkKKyAge3JldHVybiBbdFswXSArICJfMTI4YiIsIGNyZWF0ZVR5cGVkQXJyYXlPdmVy
QnVmZmVyKHRbMV0sIHRbMl0sIDEyOCksIHR5cGVkQXJyYXlDb21wYXJlXTt9KSk7Cit0ZXN0TGlz
dCA9IHRlc3RMaXN0LmNvbmNhdChiYXNpY0J1ZmZlclR5cGVzLm1hcChmdW5jdGlvbih0KQorICB7
cmV0dXJuIFt0WzBdICsgIl8xYl9vZnNfZW5kIiwgY3JlYXRlVHlwZWRBcnJheU92ZXJCdWZmZXIo
dFsxXSwgdFsyXSwgMSwgMSwgMCksIHR5cGVkQXJyYXlDb21wYXJlXTt9KSk7Cit0ZXN0TGlzdCA9
IHRlc3RMaXN0LmNvbmNhdChiYXNpY0J1ZmZlclR5cGVzLm1hcChmdW5jdGlvbih0KQorICB7cmV0
dXJuIFt0WzBdICsgIl8xMjhiX29mc19lbmQiLCBjcmVhdGVUeXBlZEFycmF5T3ZlckJ1ZmZlcih0
WzFdLCB0WzJdLCAxMjgsIDEyOCwgMCksIHR5cGVkQXJyYXlDb21wYXJlXTt9KSk7Cit0ZXN0TGlz
dCA9IHRlc3RMaXN0LmNvbmNhdChiYXNpY0J1ZmZlclR5cGVzLm1hcChmdW5jdGlvbih0KQorICB7
cmV0dXJuIFt0WzBdICsgIl8xMjhiX29mc19zbGljZTAiLCBjcmVhdGVUeXBlZEFycmF5T3ZlckJ1
ZmZlcih0WzFdLCB0WzJdLCAxMjgsIDY0LCAwKSwgdHlwZWRBcnJheUNvbXBhcmVdO30pKTsKK3Rl
c3RMaXN0ID0gdGVzdExpc3QuY29uY2F0KGJhc2ljQnVmZmVyVHlwZXMubWFwKGZ1bmN0aW9uKHQp
CisgIHtyZXR1cm4gW3RbMF0gKyAiXzEyOGJfb2ZzX3NsaWNlMSIsIGNyZWF0ZVR5cGVkQXJyYXlP
dmVyQnVmZmVyKHRbMV0sIHRbMl0sIDEyOCwgNjQsIDEpLCB0eXBlZEFycmF5Q29tcGFyZV07fSkp
OwordGVzdExpc3QgPSB0ZXN0TGlzdC5jb25jYXQoYmFzaWNCdWZmZXJUeXBlcy5tYXAoZnVuY3Rp
b24odCkKKyAge3JldHVybiBbdFswXSArICJfMTI4Yl9vZnNfc2xpY2UxNiIsIGNyZWF0ZVR5cGVk
QXJyYXlPdmVyQnVmZmVyKHRbMV0sIHRbMl0sIDEyOCwgNjQsIDE2KSwgdHlwZWRBcnJheUNvbXBh
cmVdO30pKTsKKworZnVuY3Rpb24gZG9uZVRlc3QoKSB7CisgIGlmICgrK3dpbmRvdy50ZXN0c0Nv
bXBsZXRlID09IHRlc3RMaXN0Lmxlbmd0aCkgeworICAgIGZpbmlzaEpTVGVzdCgpOworICB9Cit9
CisKK2Z1bmN0aW9uIHdpbmRvd0hhbmRsZU1lc3NhZ2UoZSkgeworICB2YXIgY3VycmVudFRlc3Qg
PSB0ZXN0TGlzdFtlLmRhdGEudGVzdE51bV07CisgIHZhciBleHBlY3RlZFJlc3VsdCA9IGN1cnJl
bnRUZXN0WzFdOworICB0cnkgeworICAgIGN1cnJlbnRUZXN0WzJdKGN1cnJlbnRUZXN0WzBdLCBl
LmRhdGEudGVzdERhdGEsIGV4cGVjdGVkUmVzdWx0KTsKKyAgfSBjYXRjaChlKSB7CisgICAgdGVz
dEZhaWxlZChjdXJyZW50VGVzdFswXSArICI6IHVuZXhwZWN0ZWQgZXhjZXB0aW9uICIgKyBlKTsK
KyAgfQorICBkb25lVGVzdCgpOworfQord2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2Un
LCB3aW5kb3dIYW5kbGVNZXNzYWdlKTsKKworZm9yICh2YXIgdCA9IDA7IHQgPCB0ZXN0TGlzdC5s
ZW5ndGg7ICsrdCkgeworICB2YXIgY3VycmVudFRlc3QgPSB0ZXN0TGlzdFt0XTsKKyAgdmFyIG1l
c3NhZ2UgPSB7dGVzdE51bTogdCwgdGVzdERhdGE6IGN1cnJlbnRUZXN0WzFdfTsKKyAgaWYgKHdp
bmRvdy5jaGVhdCkgeworICAgIHdpbmRvd0hhbmRsZU1lc3NhZ2Uoe2RhdGE6IG1lc3NhZ2V9KTsK
KyAgfSBlbHNlIHsKKyAgICB3aW5kb3cucG9zdE1lc3NhZ2UobWVzc2FnZSwgJyonKTsKKyAgfQor
fQorCitzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vV2luZG93L3NjcmlwdC10ZXN0cy9wb3N0bWVzc2FnZS1jbG9uZS1kZWVwLWFycmF5
LmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3NjcmlwdC10ZXN0cy9wb3N0bWVzc2Fn
ZS1jbG9uZS1kZWVwLWFycmF5LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjAzOWM2NTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cv
c2NyaXB0LXRlc3RzL3Bvc3RtZXNzYWdlLWNsb25lLWRlZXAtYXJyYXkuanMKQEAgLTAsMCArMSw2
IEBACitkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGVzY3JpcHRpb24iKS5pbm5lckhUTUwgPSAi
VGVzdHMgdGhhdCB3ZSBhYm9ydCBjbG9uaW5nIGRlZXAoaXNoKSBhcnJheXMuIjsKK2RlZXBBcnJh
eT1bXTsKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7IGkrKykKKyAgICBkZWVwQXJyYXk9W2Rl
ZXBBcnJheV07Cit0cnlQb3N0TWVzc2FnZSgnZGVlcEFycmF5Jyk7Cit0cnlQb3N0TWVzc2FnZSgn
ImRvbmUiJyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvc2NyaXB0
LXRlc3RzL3Bvc3RtZXNzYWdlLWNsb25lLXJlYWxseS1kZWVwLWFycmF5LmpzIGIvTGF5b3V0VGVz
dHMvZmFzdC9kb20vV2luZG93L3NjcmlwdC10ZXN0cy9wb3N0bWVzc2FnZS1jbG9uZS1yZWFsbHkt
ZGVlcC1hcnJheS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZmI2MDk2
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3NjcmlwdC10
ZXN0cy9wb3N0bWVzc2FnZS1jbG9uZS1yZWFsbHktZGVlcC1hcnJheS5qcwpAQCAtMCwwICsxLDYg
QEAKK2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkZXNjcmlwdGlvbiIpLmlubmVySFRNTCA9ICJU
ZXN0cyB0aGF0IHdlIGFib3J0IGNsb25pbmcgb3ZlcmRlZXAgYXJyYXlzLiI7CityZWFsbHlEZWVw
QXJyYXk9W107Citmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsgaSsrKQorICAgIHJlYWxseURl
ZXBBcnJheT1bcmVhbGx5RGVlcEFycmF5XTsKK3RyeVBvc3RNZXNzYWdlKCdyZWFsbHlEZWVwQXJy
YXknLCB0cnVlLCBudWxsLCBET01FeGNlcHRpb24uREFUQV9DTE9ORV9FUlIpOwordHJ5UG9zdE1l
c3NhZ2UoJyJkb25lIicpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93
L3NjcmlwdC10ZXN0cy9wb3N0bWVzc2FnZS1jbG9uZS5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZG9t
L1dpbmRvdy9zY3JpcHQtdGVzdHMvcG9zdG1lc3NhZ2UtY2xvbmUuanMKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uZDAyYzgzMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZG9tL1dpbmRvdy9zY3JpcHQtdGVzdHMvcG9zdG1lc3NhZ2UtY2xvbmUuanMKQEAg
LTAsMCArMSwyNzQgQEAKK2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkZXNjcmlwdGlvbiIpLmlu
bmVySFRNTCA9ICJUZXN0cyB0aGF0IHdlIGNsb25lIG9iamVjdCBoaWVyYXJjaGllcyI7CisKK3Ry
eVBvc3RNZXNzYWdlKCdudWxsJyk7Cit0cnlQb3N0TWVzc2FnZSgndW5kZWZpbmVkJyk7Cit0cnlQ
b3N0TWVzc2FnZSgnMScpOwordHJ5UG9zdE1lc3NhZ2UoJ3RydWUnKTsKK3RyeVBvc3RNZXNzYWdl
KCciMSInKTsKK3RyeVBvc3RNZXNzYWdlKCcoe30pJyk7Cit0cnlQb3N0TWVzc2FnZSgnKHthOjF9
KScpOwordHJ5UG9zdE1lc3NhZ2UoJyh7YToiYSJ9KScpOwordHJ5UG9zdE1lc3NhZ2UoJyh7Yjoi
YSIsIGE6ImIifSknKTsKK3RyeVBvc3RNZXNzYWdlKCcoe3AwOiJzdHJpbmcwIiwgcDE6InN0cmlu
ZzEiLCBwMjoic3RyaW5nMiIsIHAzOiJzdHJpbmczIiwgcDQ6InN0cmluZzQiLCBwNToic3RyaW5n
NSIsIHA2OiJzdHJpbmc2IiwgcDc6InN0cmluZzciLCBwODoic3RyaW5nOCIsIHA5OiJzdHJpbmc5
IiwgcDEwOiJzdHJpbmcxMCIsIHAxMToic3RyaW5nMTEiLCBwMTI6InN0cmluZzEyIiwgcDEzOiJz
dHJpbmcxMyIsIHAxNDoic3RyaW5nMTQiLCBwMTU6InN0cmluZzE1IiwgcDE2OiJzdHJpbmcxNiIs
IHAxNzoic3RyaW5nMTciLCBwMTg6InN0cmluZzE4IiwgcDE5OiJzdHJpbmcxOSJ9KScpOwordHJ5
UG9zdE1lc3NhZ2UoJyh7cDA6InN0cmluZzEiLCBwMToic3RyaW5nMSIsIHAyOiJzdHJpbmcyIiwg
cDM6InN0cmluZzMiLCBwNDoic3RyaW5nNCIsIHA1OiJzdHJpbmc1IiwgcDY6InN0cmluZzYiLCBw
Nzoic3RyaW5nNyIsIHA4OiJzdHJpbmc4IiwgcDk6InN0cmluZzkiLCBwMTA6InN0cmluZzEwIiwg
cDExOiJzdHJpbmcxMSIsIHAxMjoic3RyaW5nMTIiLCBwMTM6InN0cmluZzEzIiwgcDE0OiJzdHJp
bmcxNCIsIHAxNToic3RyaW5nMTUiLCBwMTY6InN0cmluZzE2IiwgcDE3OiJzdHJpbmcxNyIsIHAx
ODoic3RyaW5nMTgiLCBwMTk6InN0cmluZzE5In0pJyk7Cit0cnlQb3N0TWVzc2FnZSgnKHthOiIi
fSknKTsKK3RyeVBvc3RNZXNzYWdlKCcoe2E6MH0pJyk7Cit0cnlQb3N0TWVzc2FnZSgnKHthOjF9
KScpOwordHJ5UG9zdE1lc3NhZ2UoJ1tdJyk7Cit0cnlQb3N0TWVzc2FnZSgnWyJhIiwgImEiLCAi
YiIsICJhIiwgImIiXScpOwordHJ5UG9zdE1lc3NhZ2UoJ1siYSIsICJhIiwgImIiLCB7YToiYiIs
IGI6ImEifV0nKTsKK3RyeVBvc3RNZXNzYWdlKCdbMSwyLDNdJyk7Cit0cnlQb3N0TWVzc2FnZSgn
WywsMV0nKTsKK3RyeVBvc3RNZXNzYWdlKCcoZnVuY3Rpb24oKXt9KScsIHRydWUsIG51bGwsIERP
TUV4Y2VwdGlvbi5EQVRBX0NMT05FX0VSUik7Cit0cnlQb3N0TWVzc2FnZSgnbmV3IERhdGUoMTIz
NDU2Nzg5MDAwMCknKTsKK3RyeVBvc3RNZXNzYWdlKCduZXcgQ29uc3RydWN0b3JXaXRoUHJvdG90
eXBlKCJmb28iKScsIGZhbHNlLCAnKHtmaWVsZDoiZm9vIn0pJyk7CitjeWNsaWNPYmplY3Q9e307
CitjeWNsaWNPYmplY3Quc2VsZiA9IGN5Y2xpY09iamVjdDsKK3RyeVBvc3RNZXNzYWdlKCdjeWNs
aWNPYmplY3QnLCBmYWxzZSwgImN5Y2xpY09iamVjdCIpOworY3ljbGljQXJyYXk9W107CitjeWNs
aWNBcnJheVswXSA9IGN5Y2xpY0FycmF5OwordHJ5UG9zdE1lc3NhZ2UoJ2N5Y2xpY0FycmF5Jywg
ZmFsc2UsICJjeWNsaWNBcnJheSIpOworb2JqZWN0R3JhcGggPSB7fTsKK29iamVjdCA9IHt9Owor
b2JqZWN0R3JhcGguZ3JhcGgxID0gb2JqZWN0Oworb2JqZWN0R3JhcGguZ3JhcGgyID0gb2JqZWN0
OwordHJ5UG9zdE1lc3NhZ2UoJ29iamVjdEdyYXBoJywgZmFsc2UsICJvYmplY3RHcmFwaCIpOwor
YXJyYXlHcmFwaCA9IFtvYmplY3QsIG9iamVjdF07Cit0cnlQb3N0TWVzc2FnZSgnYXJyYXlHcmFw
aCcsIGZhbHNlLCAiYXJyYXlHcmFwaCIpOwordHJ5UG9zdE1lc3NhZ2UoJ3dpbmRvdycsIHRydWUp
OwordHJ5UG9zdE1lc3NhZ2UoJyh7Z2V0IGEoKSB7IHRocm93ICJ4IiB9fSknLCB0cnVlKTsKKwor
aWYgKHdpbmRvdy5ldmVudFNlbmRlcikgeworICAgIHZhciBmaWxlSW5wdXQgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgiZmlsZUlucHV0Iik7CisgICAgdmFyIGZpbGVSZWN0ID0gZmlsZUlucHV0
LmdldENsaWVudFJlY3RzKClbMF07CisgICAgdmFyIHRhcmdldFggPSBmaWxlUmVjdC5sZWZ0ICsg
ZmlsZVJlY3Qud2lkdGggLyAyOworICAgIHZhciB0YXJnZXRZID0gZmlsZVJlY3QudG9wICsgZmls
ZVJlY3QuaGVpZ2h0IC8gMjsKKyAgICBldmVudFNlbmRlci5iZWdpbkRyYWdXaXRoRmlsZXMoWydn
b3QtZmlsZS11cGxvYWQuaHRtbCcsICdnb3QtZmlsZS11cGxvYWQtMi5odG1sJ10pOworICAgIGV2
ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHRhcmdldFgsIHRhcmdldFkpOworICAgIGV2ZW50U2VuZGVy
Lm1vdXNlVXAoKTsKK30KK3ZhciBpbWFnZURhdGEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJj
YW52YXMiKS5nZXRDb250ZXh0KCIyZCIpLmNyZWF0ZUltYWdlRGF0YSgxMCwxMCk7Citmb3IgKHZh
ciBpID0gMDsgaSA8IGltYWdlRGF0YS5kYXRhLmxlbmd0aCAqIDQ7IGkrKykKKyAgICBpbWFnZURh
dGEuZGF0YVtpXSA9IGkgJSAyNTY7Cit2YXIgbXV0YXRlZEltYWdlRGF0YSA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoImNhbnZhcyIpLmdldENvbnRleHQoIjJkIikuY3JlYXRlSW1hZ2VEYXRhKDEw
LDEwKTsKK2ZvciAodmFyIGkgPSAwOyBpIDwgaW1hZ2VEYXRhLmRhdGEubGVuZ3RoICogNDsgaSsr
KQorICAgIG11dGF0ZWRJbWFnZURhdGEuZGF0YVtpXSA9IGkgJSAyNTY7Cit0cnlQb3N0TWVzc2Fn
ZSgnaW1hZ2VEYXRhJywgZmFsc2UsIGltYWdlRGF0YSk7Cit0cnlQb3N0TWVzc2FnZSgnaW1hZ2VE
YXRhLmRhdGEnLCB0cnVlLCBudWxsLCBET01FeGNlcHRpb24uREFUQV9DTE9ORV9FUlIpCit0cnlQ
b3N0TWVzc2FnZSgnbXV0YXRlZEltYWdlRGF0YScsIGZhbHNlLCBpbWFnZURhdGEpOwordHJ5UG9z
dE1lc3NhZ2UoJ211dGF0ZWRJbWFnZURhdGEuZGF0YScsIHRydWUsIG51bGwsIERPTUV4Y2VwdGlv
bi5EQVRBX0NMT05FX0VSUikKK2ZvciAodmFyIGkgPSAwOyBpIDwgaW1hZ2VEYXRhLmRhdGEubGVu
Z3RoICogNDsgaSsrKQorICAgIG11dGF0ZWRJbWFnZURhdGEuZGF0YVtpXSA9IDA7CisKK2Z1bmN0
aW9uIHRodW5rKHMpIHsKKyAgICByZXR1cm4gIihmdW5jdGlvbigpIHsiICsgcyArICJ9KSgpIjsK
K30KK3RyeVBvc3RNZXNzYWdlKHRodW5rKCdyZXR1cm4gNDI7JyksIGZhbHNlLCAnNDInKTsKK3Ry
eVBvc3RNZXNzYWdlKHRodW5rKCdyZXR1cm4gNDI7JyksIGZhbHNlLCB0aHVuaygncmV0dXJuIDQw
ICsgMjsnKSk7Cit0cnlQb3N0TWVzc2FnZSh0aHVuaygncmV0dXJuIDQyOycpLCBmYWxzZSwgImV2
YWxUaHVuayIsCisgICAgICAgICAgICAgICBmdW5jdGlvbih2KSB7IGRvUGFzc0ZhaWwodiA9PSA0
MiwgImV2YWxUaHVuayBPSyIpOyB9KQorCisvLyBPbmx5IGVudW1lcmFibGUgcHJvcGVydGllcyBz
aG91bGQgYmUgc2VyaWFsaXplZC4KK3RyeVBvc3RNZXNzYWdlKHRodW5rKCd2YXIgbyA9IHt4OiJo
ZWxsbyJ9OyBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgInkiLCB7dmFsdWU6Imdvb2RieWUifSk7
IHJldHVybiBvOycpLCBmYWxzZSwgJyh7eDoiaGVsbG8ifSknKTsKKworLy8gSXQncyB1bmNsZWFy
IHdoYXQgd2Ugc2hvdWxkIGRvIGlmIGFuIGFjY2Vzc29yIG1vZGlmaWVzIGFuIG9iamVjdCBvdXQg
ZnJvbSB1bmRlciB1cworLy8gd2hpbGUgd2UncmUgc2VyaWFsaXppbmcgaXQ7IHRoZSBzdGFuZGFy
ZCBkb2VzIG1hbmRhdGUgY2VydGFpbiBhc3BlY3RzIGFib3V0IGV2YWx1YXRpb24KKy8vIG9yZGVy
LCB0aG91Z2gsIGluY2x1ZGluZyB0aGF0IHByb3BlcnRpZXMgbXVzdCBiZSBwcm9jZXNzZWQgaW4g
dGhlaXIgZW51bWVyYXRpb24gb3JkZXIuCit0cnlQb3N0TWVzc2FnZSh0aHVuaygKKyAgICAgICAg
J3ZhciBhID0gWzAsIDEsIDJdOyAnICsKKyAgICAgICAgJ3ZhciBiID0geyBnZXQgeCgpIHsgYVsw
XSA9IDQwOyBhWzJdID0gNDI7IGEucHVzaCg0Myk7IHJldHVybiA0MTsgfX07ICcgKworICAgICAg
ICAnYVsxXSA9IGI7ICcgKworICAgICAgICAncmV0dXJuIGE7JworICAgICksIGZhbHNlLCAiZXZh
bFRodW5rIiwgZnVuY3Rpb24odikgeworICAgICAgICBkb1Bhc3NGYWlsKHYubGVuZ3RoID09PSAz
LCAibGVuZ3RoIGNvcnJlY3QiKTsgLy8gdW5kZWZpbmVkCisgICAgICAgIGRvUGFzc0ZhaWwodlsw
XSA9PT0gMCwgImV2YWx1YXRpb24gb3JkZXIgT0siKTsgLy8gbWFuZGF0b3J5CisgICAgICAgIGRv
UGFzc0ZhaWwodlsxXS54ID09PSA0MSwgImV2YWx1YXRpb24gb3JkZXIgT0svYWNjZXNzb3IgcmVh
Y2hlZCIpOyAvLyBtYW5kYXRvcnkKKyAgICAgICAgZG9QYXNzRmFpbCh2WzJdID09PSA0MiwgImV2
YWx1YXRpb24gb3JkZXIgT0siKTsgLy8gbWFuZGF0b3J5CisgICAgfSk7CisKK3RyeVBvc3RNZXNz
YWdlKHRodW5rKAorICAgICAgICAndmFyIGEgPSBbMCwgMSwgMl07ICcgKworICAgICAgICAndmFy
IGIgPSB7IGdldCB4KCkgeyBhLnBvcCgpOyByZXR1cm4gNDE7IH0gfTsgJyArCisgICAgICAgICdh
WzFdID0gYjsgJyArCisgICAgICAgICdyZXR1cm4gYTsnCisgICAgKSwgZmFsc2UsICJldmFsVGh1
bmsiLCBmdW5jdGlvbih2KSB7CisgICAgICAgIGRvUGFzc0ZhaWwodi5sZW5ndGggPT09IDMsICJs
ZW5ndGggY29ycmVjdCIpOyAvLyB1bmRlZmluZWQKKyAgICAgICAgZG9QYXNzRmFpbCh2WzBdID09
PSAwLCAiaXggMCBPSyIpOyAvLyBtYW5kYXRvcnkKKyAgICAgICAgZG9QYXNzRmFpbCh2WzFdLngg
PT09IDQxLCAiYWNjZXNzb3IgcmVhY2hlZCIpOyAvLyBtYW5kYXRvcnkKKyAgICAgICAgZG9QYXNz
RmFpbCh2WzJdID09PSB1bmRlZmluZWQsICJpeCAyIHVuZGVmaW5lZCIpOyAvLyB1bmRlZmluZWQK
KyAgICB9KTsKKwordHJ5UG9zdE1lc3NhZ2UodGh1bmsoCisgICAgICAgICd2YXIgYSA9IFswLCAx
LCAyXTsgJyArCisgICAgICAgICd2YXIgYiA9IHsgZ2V0IHgoKSB7IGEucG9wKCk7IHJldHVybiA0
MTsgfSB9OyAnICsKKyAgICAgICAgJ2FbMl0gPSBiOyAnICsKKyAgICAgICAgJ3JldHVybiBhOycK
KyAgICApLCBmYWxzZSwgImV2YWxUaHVuayIsIGZ1bmN0aW9uKHYpIHsKKyAgICAgICAgZG9QYXNz
RmFpbCh2Lmxlbmd0aCA9PT0gMywgImxlbmd0aCBjb3JyZWN0Iik7IC8vIHVuZGVmaW5lZAorICAg
ICAgICBkb1Bhc3NGYWlsKHZbMF0gPT09IDAsICJpeCAwIE9LIik7IC8vIG1hbmRhdG9yeQorICAg
ICAgICBkb1Bhc3NGYWlsKHZbMV0gPT09IDEsICJpeCAxIE9LIik7IC8vIG1hbmRhdG9yeQorICAg
ICAgICBkb1Bhc3NGYWlsKHZbMl0ueCA9PT0gNDEsICJpeCAyIE9LIik7IC8vIHVuZGVmaW5lZAor
ICAgIH0pOworCisvLyBOb3cgd2l0aCBvYmplY3RzISBUaGlzIGlzIGEgbGl0dGxlIG1vcmUgdHJp
Y2t5IGJlY2F1c2UgdGhlIHN0YW5kYXJkIGRvZXMgbm90CisvLyBkZWZpbmUgYW4gZW51bWVyYXRp
b24gb3JkZXIuCit0cnlQb3N0TWVzc2FnZSh0aHVuaygKKyAgICAgICAgJ3ZhciBhID0ge3AwOiAw
LCBwMTogMX07ICcgKworICAgICAgICAnT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsICJwMiIsIHtn
ZXQ6ZnVuY3Rpb24oKSB7ZGVsZXRlIGEucDM7IHJldHVybiA0MjsgfSwgZW51bWVyYWJsZTogdHJ1
ZSwgY29uZmlndXJhYmxlOiB0cnVlfSk7ICcgKworICAgICAgICAnT2JqZWN0LmRlZmluZVByb3Bl
cnR5KGEsICJwMyIsIHtnZXQ6ZnVuY3Rpb24oKSB7ZGVsZXRlIGEucDI7IHJldHVybiA0MzsgfSwg
ZW51bWVyYWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlfSk7ICcgKworICAgICAgICAnT2Jq
ZWN0LmRlZmluZVByb3BlcnR5KGEsICJwNCIsIHtnZXQ6ZnVuY3Rpb24oKSB7IGEucDUgPSA0NTsg
cmV0dXJuIDQ0OyB9LCBlbnVtZXJhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWV9KTsgJyAr
CisgICAgICAgICdyZXR1cm4gYTsnCisgICAgKSwgZmFsc2UsICJldmFsVGh1bmsiLCBmdW5jdGlv
bih2KSB7CisgICAgICAgIGRvUGFzc0ZhaWwodi5wMCA9PT0gMCAmJiB2LnAxID09PSAxLCAiYmFz
aWMgcHJvcGVydGllcyBPSyIpOyAvLyBtYW5kYXRvcnkKKyAgICAgICAgZG9QYXNzRmFpbCh2LnAy
ID09PSB1bmRlZmluZWQgJiYgdi5wMyAhPT0gdW5kZWZpbmVkIHx8CisgICAgICAgICAgICAgICAg
ICAgdi5wMiAhPT0gdW5kZWZpbmVkICYmIHYucDMgPT09IHVuZGVmaW5lZCwgIm9uZSBhY2Nlc3Nv
ciB3YXMgcnVuIik7IC8vIG1hbmRhdG9yeQorICAgICAgICBkb1Bhc3NGYWlsKHYucDIgIT09IHVu
ZGVmaW5lZCB8fCBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHYsICJwMiIpID09PSB1
bmRlZmluZWQsICJwcm9wZXJ0eSB3YXMgcmVtb3ZlZCIpOyAvLyB1bmRlZmluZWQKKyAgICAgICAg
ZG9QYXNzRmFpbCh2LnAzICE9PSB1bmRlZmluZWQgfHwgT2JqZWN0LmdldE93blByb3BlcnR5RGVz
Y3JpcHRvcih2LCAicDMiKSA9PT0gdW5kZWZpbmVkLCAicHJvcGVydHkgd2FzIHJlbW92ZWQiKTsg
Ly8gdW5kZWZpbmVkCisgICAgICAgIGRvUGFzc0ZhaWwodi5wNCA9PT0gNDQsICJhY2Nlc3NvciB3
YXMgcnVuIik7IC8vIG1hbmRhdG9yeQorICAgICAgICBkb1Bhc3NGYWlsKE9iamVjdC5nZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3IodiwgInA1IikgPT09IHVuZGVmaW5lZCwgImR5bmFtaWMgcHJvcGVy
dHkgbm90IHNlbnQiKTsgLy8gdW5kZWZpbmVkCisgICAgfSk7CisKKy8vIE9iamVjdHMgcmV0dXJu
ZWQgZnJvbSBhY2Nlc3NvcnMgc2hvdWxkIHN0aWxsIGJlIGNvYWxlc2NlZC4KK3RyeVBvc3RNZXNz
YWdlKHRodW5rKAorICAgICAgICAndmFyIG9iamEgPSB7Z2V0IHAoKSB7IHJldHVybiA0MjsgfX07
ICcgKworICAgICAgICAndmFyIG1zZyA9IHtnZXQgYSgpIHsgcmV0dXJuIG9iamE7IH0sIGI6IG9i
amF9OyAnICsKKyAgICAgICAgJ3JldHVybiBtc2c7JworICAgICksIGZhbHNlLCAiZXZhbFRodW5r
IiwgZnVuY3Rpb24odikgeworICAgICAgICAvLyBJbnRlcmVzdGluZ2x5LCB0aGUgc3RhbmRhcmQg
YWRtaXRzIHR3byBhbnN3ZXJzIGhlcmUhCisgICAgICAgIGRvUGFzc0ZhaWwodi5hID09PSB2LmIs
ICJyZWZlcmVuY2UgZXF1YWxpdHkgcHJlc2VydmVkIik7CisgICAgICAgIGRvUGFzc0ZhaWwoKHYu
Yi5wID09PSA0MiAmJiB2LmEucCA9PT0gNDIpIHx8CisgICAgICAgICAgICAodi5iLnAgPT09IG51
bGwgJiYgdi5hLnAgPT09IG51bGwpLCAiYWNjZXNzb3JzIHVzZWQiKTsKKyAgICB9KTsKK3RyeVBv
c3RNZXNzYWdlKHRodW5rKAorICAgICAgICAndmFyIG9iamEgPSB7Z2V0IHAoKSB7IHJldHVybiA0
MjsgfX07ICcgKworICAgICAgICAndmFyIG1zZyA9IHthOiBvYmphLCBnZXQgYigpIHsgcmV0dXJu
IG9iamE7IH19OyAnICsKKyAgICAgICAgJ3JldHVybiBtc2c7JworICAgICksIGZhbHNlLCAiZXZh
bFRodW5rIiwgZnVuY3Rpb24odikgeworICAgICAgICAvLyBJbnRlcmVzdGluZ2x5LCB0aGUgc3Rh
bmRhcmQgYWRtaXRzIHR3byBhbnN3ZXJzIGhlcmUhCisgICAgICAgIGRvUGFzc0ZhaWwodi5hID09
PSB2LmIsICJyZWZlcmVuY2UgZXF1YWxpdHkgcHJlc2VydmVkIChvcHBvc2l0ZSBvcmRlcikiKTsK
KyAgICAgICAgZG9QYXNzRmFpbCgodi5iLnAgPT09IDQyICYmIHYuYS5wID09PSA0MikgfHwKKyAg
ICAgICAgICAgICAgICAgICAodi5iLnAgPT09IG51bGwgJiYgdi5hLnAgPT09IG51bGwpLCAiYWNj
ZXNzb3JzIHVzZWQgKG9wcG9zaXRlIG9yZGVyKSIpOworICAgIH0pOworLy8gV2Ugc2hvdWxkIG51
bGxpZnkgdGhlIHJlc3VsdHMgZnJvbSBhY2Nlc3NvcnMgbW9yZSB0aGFuIG9uZSBsZXZlbCBkZWVw
LAorLy8gYnV0IGxlYXZlIG90aGVyIGZpZWxkcyB1bnRvdWNoZWQuCit0cnlQb3N0TWVzc2FnZSh0
aHVuaygKKyAgICAgICAgJ3ZhciBvYmphID0ge2dldCBwKCkgeyByZXR1cm4gNDI7IH0sIHE6IDQz
fTsgJyArCisgICAgICAgICdyZXR1cm4ge2dldCBhKCkgeyByZXR1cm4gb2JqYTsgfX07JworICAg
ICksIGZhbHNlLCAiZXZhbFRodW5rIiwgZnVuY3Rpb24odikgeworICAgICAgICBkb1Bhc3NGYWls
KHYuYS5wID09PSBudWxsLCAiYWNjZXNzb3IgdmFsdWUgd2FzIG51bGxpZmllZCIpOworICAgICAg
ICBkb1Bhc3NGYWlsKHYuYS5xID09PSA0MywgIm5vbi1hY2Nlc3NvciB2YWx1ZSB3YXMgbm90IG51
bGxpZmllZCIpOworICAgIH0pOwordHJ5UG9zdE1lc3NhZ2UodGh1bmsoCisgICAgICAgICd2YXIg
b2JqYiA9IHtnZXQgcigpIHsgcmV0dXJuIDQ0OyB9LCB0OiA0NX07ICcgKworICAgICAgICAndmFy
IG9iamEgPSB7Z2V0IHAoKSB7IHJldHVybiA0MjsgfSwgcTogNDMsIHM6IG9iamJ9OyAnICsKKyAg
ICAgICAgJ3JldHVybiB7Z2V0IGEoKSB7IHJldHVybiBvYmphOyB9fTsnCisgICAgKSwgZmFsc2Us
ICJldmFsVGh1bmsiLCBmdW5jdGlvbih2KSB7CisgICAgICAgIGRvUGFzc0ZhaWwodi5hLnAgPT09
IG51bGwsICJhY2Nlc3NvciB2YWx1ZSB3YXMgbnVsbGlmaWVkIik7CisgICAgICAgIGRvUGFzc0Zh
aWwodi5hLnEgPT09IDQzLCAibm9uLWFjY2Vzc29yIHZhbHVlIHdhcyBub3QgbnVsbGlmaWVkIik7
CisgICAgICAgIGRvUGFzc0ZhaWwodi5zICE9PSBudWxsLCAibm9uLWFjY2Vzc29yIHZhbHVlIHdh
cyBub3QgbnVsbGlmaWVkIik7CisgICAgICAgIGRvUGFzc0ZhaWwodi5hLnMuciA9PT0gbnVsbCwg
ImFjY2Vzc29yIHZhbHVlIHdhcyBudWxsaWZpZWQiKTsKKyAgICAgICAgZG9QYXNzRmFpbCh2LmEu
cy50ID09PSA0NSwgIm5vbi1hY2Nlc3NvciB2YWx1ZSB3YXMgbm90IG51bGxpZmllZCIpOworICAg
IH0pOwordHJ5UG9zdE1lc3NhZ2UodGh1bmsoCisgICAgICAgICd2YXIgb2JqYiA9IHtnZXQgcigp
IHsgcmV0dXJuIDQ0OyB9LCB0OiA0NX07ICcgKworICAgICAgICAndmFyIG9iamEgPSB7Z2V0IHAo
KSB7IHJldHVybiA0MjsgfSwgcTogNDMsIHM6IFtvYmpiXX07ICcgKworICAgICAgICAncmV0dXJu
IHtnZXQgYygpIHsgcmV0dXJuIDQ3OyB9LCBnZXQgYSgpIHsgcmV0dXJuIG9iamE7IH0sIGdldCBi
KCkgeyByZXR1cm4gNDY7IH0gfTsnCisgICAgKSwgZmFsc2UsICJldmFsVGh1bmsiLCBmdW5jdGlv
bih2KSB7CisgICAgICAgIGRvUGFzc0ZhaWwodi5iID09PSA0NiwgImFjY2Vzc29yIHZhbHVlIHdh
cyBub3QgbnVsbGlmaWVkIik7CisgICAgICAgIGRvUGFzc0ZhaWwodi5jID09PSA0NywgImFjY2Vz
c29yIHZhbHVlIHdhcyBub3QgbnVsbGlmaWVkIik7CisgICAgICAgIGRvUGFzc0ZhaWwodi5hLnAg
PT09IG51bGwsICJhY2Nlc3NvciB2YWx1ZSB3YXMgbnVsbGlmaWVkIik7CisgICAgICAgIGRvUGFz
c0ZhaWwodi5hLnEgPT09IDQzLCAibm9uLWFjY2Vzc29yIHZhbHVlIHdhcyBub3QgbnVsbGlmaWVk
Iik7CisgICAgICAgIGRvUGFzc0ZhaWwodi5hLnMgIT09IG51bGwsICJub24tYWNjZXNzb3IgdmFs
dWUgd2FzIG5vdCBudWxsaWZpZWQiKTsKKyAgICAgICAgZG9QYXNzRmFpbCh2LmEucyAhPT0gdW5k
ZWZpbmVkLCAibm9uLWFjY2Vzc29yIHZhbHVlIGlzIGRlZmluZWQiKTsKKyAgICAgICAgZG9QYXNz
RmFpbCh2LmEuc1swXSAhPT0gbnVsbCwgIm5vbi1hY2Nlc3NvciB2YWx1ZSB3YXMgbm90IG51bGxp
ZmllZCIpOworICAgICAgICBkb1Bhc3NGYWlsKHYuYS5zWzBdICE9PSB1bmRlZmluZWQsICJub24t
YWNjZXNzb3IgdmFsdWUgaXMgZGVmaW5lZCIpOworICAgICAgICBkb1Bhc3NGYWlsKHYuYS5zWzBd
LnIgPT09IG51bGwsICJhY2Nlc3NvciB2YWx1ZSB3YXMgbnVsbGlmaWVkIik7CisgICAgICAgIGRv
UGFzc0ZhaWwodi5hLnNbMF0udCA9PT0gNDUsICJub24tYWNjZXNzb3IgdmFsdWUgd2FzIG5vdCBu
dWxsaWZpZWQiKTsKKyAgICB9KTsKKworLy8gV2UgbmVlZCB0byBwYXNzIG91dCB0aGUgZXhjZXB0
aW9uIHJhaXNlZCBmcm9tIGludGVybmFsIGFjY2Vzc29ycy4KK3RyeVBvc3RNZXNzYWdlKHRodW5r
KAorICAgICAgICAncmV0dXJuIHtnZXQgYSgpIHsgdGhyb3cgImFjY2Vzc29yLWV4biI7IH19OycK
KyAgICApLCB0cnVlLCBudWxsLCAnYWNjZXNzb3ItZXhuJyk7CisvLyBXZSBzaG91bGQgc3RpbGwg
cmV0dXJuIHRoZSBleGNlcHRpb24gcmFpc2VkIGZyb20gbnVsbGVkLW91dCBhY2Nlc3NvcnMuCit0
cnlQb3N0TWVzc2FnZSh0aHVuaygKKyAgICAgICAgJ3ZhciBvYmphID0ge2dldCBwKCkgeyB0aHJv
dyAiYWNjZXNzb3ItZXhuIjsgfX07ICcgKworICAgICAgICAncmV0dXJuIHtnZXQgYSgpIHsgcmV0
dXJuIG9iamE7IH19OycKKyAgICApLCB0cnVlLCBudWxsLCAnYWNjZXNzb3ItZXhuJyk7CisvLyBX
ZSBzaG91bGQgcnVuIHRoZSBmaXJzdCBudWxsaWZpZWQgYWNjZXNzb3IsIGJ1dCBubyBtb3JlLgor
dHJ5UG9zdE1lc3NhZ2UodGh1bmsoCisgICAgICAgICd3aW5kb3cuYmNhbGxlZCA9IHVuZGVmaW5l
ZDsgJyArCisgICAgICAgICd3aW5kb3cuYWNhbGxlZCA9IHVuZGVmaW5lZDsgJyArCisgICAgICAg
ICd3aW5kb3cucGNhbGxlZCA9IHVuZGVmaW5lZDsgJyArCisgICAgICAgICd2YXIgb2JqYiA9IHtn
ZXQgYigpIHsgd2luZG93LmJjYWxsZWQgPSB0cnVlOyByZXR1cm4gNDI7IH19OyAnICsKKyAgICAg
ICAgJ3ZhciBvYmphID0ge2dldCBhKCkgeyB3aW5kb3cuYWNhbGxlZCA9IHRydWU7IHJldHVybiBv
YmpiOyB9fTsgJyArCisgICAgICAgICdyZXR1cm4geyBnZXQgcCgpIHsgd2luZG93LnBjYWxsZWQg
PSB0cnVlOyByZXR1cm4gb2JqYTsgfX07JworICAgICksIGZhbHNlLCAiZXZhbFRodW5rIiwgZnVu
Y3Rpb24odikgeworICAgICAgICBkb1Bhc3NGYWlsKHYucC5hID09PSBudWxsLCAiYWNjZXNzb3Ig
dmFsdWUgd2FzIG51bGxpZmllZCIpOworICAgICAgICBkb1Bhc3NGYWlsKHdpbmRvdy5wY2FsbGVk
ID09PSB0cnVlLCAid2luZG93LnBjYWxsZWQgPT09IHRydWUiKTsKKyAgICAgICAgZG9QYXNzRmFp
bCh3aW5kb3cuYWNhbGxlZCA9PT0gdHJ1ZSwgIndpbmRvdy5hY2FsbGVkID09PSB0cnVlIik7Cisg
ICAgICAgIGRvUGFzc0ZhaWwod2luZG93LmJjYWxsZWQgPT09IHVuZGVmaW5lZCwgIndpbmRvdy5i
Y2FsbGVkID09PSB1bmRlZmluZWQiKTsKKyAgICB9KTsKKworLy8gUmVmZXJlbmNlIGVxdWFsaXR5
IGJldHdlZW4gZGF0ZXMgbXVzdCBiZSBtYWludGFpbmVkLgordHJ5UG9zdE1lc3NhZ2UodGh1bmso
CisgICAgICAgICd2YXIgZDEgPSBuZXcgRGF0ZSgxLDIsMyk7ICcgKworICAgICAgICAndmFyIGQy
ID0gbmV3IERhdGUoMSwyLDMpOyAnICsKKyAgICAgICAgJ3JldHVybiBbZDEsZDEsZDJdOycKKyAg
ICApLCBmYWxzZSwgImV2YWxUaHVuayIsIGZ1bmN0aW9uKHYpIHsKKyAgICAgICAgZG9QYXNzRmFp
bChlcXVhbCh2WzBdLCBuZXcgRGF0ZSgxLDIsMykpLCAiRGF0ZSB2YWx1ZXMgY29ycmVjdCAoMCki
KTsKKyAgICAgICAgZG9QYXNzRmFpbChlcXVhbCh2WzBdLCB2WzJdKSwgIkRhdGUgdmFsdWVzIGNv
cnJlY3QgKDEpIik7CisgICAgICAgIGRvUGFzc0ZhaWwodlswXSA9PT0gdlsxXSwgIlJlZmVyZW5j
ZXMgdG8gZGF0ZXMgY29ycmVjdCAoMCkiKTsKKyAgICAgICAgZG9QYXNzRmFpbCh2WzBdICE9PSB2
WzJdLCAiUmVmZXJlbmNlcyB0byBkYXRlcyBjb3JyZWN0ICgxKSIpOworICAgIH0pOworCisvLyBS
ZWZlcmVuY2UgZXF1YWxpdHkgYmV0d2VlbiByZWdleHBzIG11c3QgYmUgcHJlc2VydmVkLgordHJ5
UG9zdE1lc3NhZ2UodGh1bmsoCisgICAgICAgICd2YXIgcngxID0gbmV3IFJlZ0V4cCgiZm9vIik7
ICcgKworICAgICAgICAndmFyIHJ4MiA9IG5ldyBSZWdFeHAoImZvbyIpOyAnICsKKyAgICAgICAg
J3ZhciByeDMgPSBuZXcgUmVnRXhwKCJmb28iLCAiZ2ltIik7ICcgKworICAgICAgICAncngzLmV4
ZWMoImZvb2Zvb2ZvbyIpOyAnICsKKyAgICAgICAgJ2RvUGFzc0ZhaWwocngzLmxhc3RJbmRleCA9
PT0gMywgImxhc3RJbmRleCBpbml0aWFsbHkgY29ycmVjdDogd2FzICIgKyByeDMubGFzdEluZGV4
KTsgJyArCisgICAgICAgICdyZXR1cm4gW3J4MSxyeDEscngyLHJ4M107JworICAgICksIGZhbHNl
LCAiZXZhbFRodW5rIiwgZnVuY3Rpb24odikgeworICAgICAgICBkb1Bhc3NGYWlsKHZbMF0uc291
cmNlID09PSAiZm9vIiwgIlJlZ2V4cCB2YWx1ZSBjb3JyZWN0ICgwKSIpOworICAgICAgICBkb1Bh
c3NGYWlsKHZbMF0gPT09IHZbMV0sICJSZWZlcmVuY2VzIHRvIHJlZ2V4cHMgY29ycmVjdCAoMCki
KTsKKyAgICAgICAgZG9QYXNzRmFpbCh2WzBdICE9PSB2WzJdLCAiUmVmZXJlbmNlcyB0byByZWdl
eHBzIGNvcnJlY3QgKDEpIik7CisgICAgICAgIGRvUGFzc0ZhaWwodlswXS5nbG9iYWwgPT09IGZh
bHNlLCAiZ2xvYmFsIHNldCAoMCkiKTsKKyAgICAgICAgZG9QYXNzRmFpbCh2WzNdLmdsb2JhbCA9
PT0gdHJ1ZSwgImdsb2JhbCBzZXQgKDEpIik7CisgICAgICAgIGRvUGFzc0ZhaWwodlswXS5pZ25v
cmVDYXNlID09PSBmYWxzZSwgImlnbm9yZUNhc2Ugc2V0ICgwKSIpOworICAgICAgICBkb1Bhc3NG
YWlsKHZbM10uaWdub3JlQ2FzZSA9PT0gdHJ1ZSwgImlnbm9yZUNhc2Ugc2V0ICgxKSIpOworICAg
ICAgICBkb1Bhc3NGYWlsKHZbMF0ubXVsdGlsaW5lID09PSBmYWxzZSwgIm11bHRpbGluZSBzZXQg
KDApIik7CisgICAgICAgIGRvUGFzc0ZhaWwodlszXS5tdWx0aWxpbmUgPT09IHRydWUsICJtdWx0
aWxpbmUgc2V0ICgxKSIpOworICAgICAgICBkb1Bhc3NGYWlsKHZbMF0ubGFzdEluZGV4ID09PSAw
LCAibGFzdEluZGV4IGNvcnJlY3QgKDApIik7CisgICAgICAgIGRvUGFzc0ZhaWwodlszXS5sYXN0
SW5kZXggPT09IDAsICJsYXN0SW5kZXggY29ycmVjdCAoMSkiKTsKKyAgICB9KTsKKworaWYgKHdp
bmRvdy5ldmVudFNlbmRlcikgeworICAgIHRyeVBvc3RNZXNzYWdlKHRodW5rKAorICAgICAgICAn
d2luZG93LmZpbGVMaXN0ID0gZmlsZUlucHV0LmZpbGVzOyAnICsKKyAgICAgICAgJ3dpbmRvdy5m
aWxlMCA9IGZpbGVMaXN0WzBdOyAnICsKKyAgICAgICAgJ3dpbmRvdy5maWxlMSA9IGZpbGVMaXN0
WzFdOyAnICsKKyAgICAgICAgJ3JldHVybiB3aW5kb3cuZmlsZUxpc3QubGVuZ3RoJyksIGZhbHNl
LCAyKTsKKyAgICBkb1Bhc3NGYWlsKHdpbmRvdy5maWxlTGlzdFswXSA9PT0gd2luZG93LmZpbGUw
LCAic2FuaXR5IG9uIGZpbGUgcmVmZXJlbmNlIGVxdWFsaXR5IikKKyAgICAvLyBUaGUgc3RhbmRh
cmQgbWFuZGF0ZXMgdGhhdCB3ZSBkbyBfbm90XyBtYWludGFpbiByZWZlcmVuY2UgZXF1YWxpdHkg
Zm9yIGZpbGVzIGluIGEgdHJhbnNmZXJyZWQgRmlsZUxpc3QuCisgICAgdHJ5UG9zdE1lc3NhZ2Uo
dGh1bmsoJ3JldHVybiBbd2luZG93LmZpbGUwLCB3aW5kb3cuZmlsZTBdOycKKyAgICAgICAgKSwg
ZmFsc2UsICJldmFsVGh1bmsiLCBmdW5jdGlvbih2KSB7IGRvUGFzc0ZhaWwodlswXSA9PT0gdlsx
XSwgImZpbGUgcmVmZXJlbmNlcyB0cmFuc2ZlciIpfSk7CisgICAgdHJ5UG9zdE1lc3NhZ2UodGh1
bmsoJ3JldHVybiBbd2luZG93LmZpbGVMaXN0LCB3aW5kb3cuZmlsZTBdOycKKyAgICAgICAgKSwg
ZmFsc2UsICJldmFsVGh1bmsiLCBmdW5jdGlvbih2KSB7IGRvUGFzc0ZhaWwodlswXVswXSAhPT0g
dlsxXSwgIkZpbGVMaXN0IHNob3VsZCBub3QgcmVzcGVjdCByZWZlcmVuY2UgZXF1YWxpdHkiKX0p
OworICAgIHRyeVBvc3RNZXNzYWdlKHRodW5rKCdyZXR1cm4gW3dpbmRvdy5maWxlMCwgd2luZG93
LmZpbGVMaXN0XTsnCisgICAgICAgICksIGZhbHNlLCAiZXZhbFRodW5rIiwgZnVuY3Rpb24odikg
eyBkb1Bhc3NGYWlsKHZbMV1bMF0gIT09IHZbMF0sICJGaWxlTGlzdCBzaG91bGQgbm90IHJlc3Bl
Y3QgcmVmZXJlbmNlIGVxdWFsaXR5Iil9KTsKKyAgICB0cnlQb3N0TWVzc2FnZSh0aHVuaygncmV0
dXJuIFt3aW5kb3cuZmlsZUxpc3QsIHdpbmRvdy5maWxlTGlzdF07JworICAgICAgICApLCBmYWxz
ZSwgImV2YWxUaHVuayIsIGZ1bmN0aW9uKHYpIHsgZG9QYXNzRmFpbCh2WzBdID09PSB2WzFdLCAi
RmlsZUxpc3QgcmVzcGVjdHMgc2VsZi1yZWZlcmVuY2UgZXF1YWxpdHkiKX0pOworICAgIHRyeVBv
c3RNZXNzYWdlKHRodW5rKCdyZXR1cm4gW3dpbmRvdy5maWxlTGlzdCwgd2luZG93LmZpbGUwLCB3
aW5kb3cuZmlsZTFdJworICAgICAgICApLCBmYWxzZSwgImV2YWxUaHVuayIsIGZ1bmN0aW9uKHYp
IHsKKyAgICAgICAgICAgIGRvUGFzc0ZhaWwodlswXS5sZW5ndGggPT09IHdpbmRvdy5maWxlTGlz
dC5sZW5ndGgsICJGaWxlTGlzdCBsZW5ndGggc2VudCBjb3JyZWN0bHkiKTsKKyAgICAgICAgICAg
IGRvUGFzc0ZhaWwodlswXVswXSAhPT0gdlsxXSwgIkZpbGVMaXN0IHNob3VsZCBub3QgcmVzcGVj
dCByZWZlcmVuY2UgZXF1YWxpdHkgKDApIik7CisgICAgICAgICAgICBkb1Bhc3NGYWlsKHZbMF1b
MV0gIT09IHZbMl0sICJGaWxlTGlzdCBzaG91bGQgbm90IHJlc3BlY3QgcmVmZXJlbmNlIGVxdWFs
aXR5ICgxKSIpOworICAgICAgICAgICAgZG9QYXNzRmFpbCh2WzBdWzBdLm5hbWUgPT0gd2luZG93
LmZpbGUwLm5hbWUsICJGaWxlTGlzdCBwcmVzZXJ2ZXMgb3JkZXIgYW5kIGRhdGEgKG5hbWUwKSIp
OworICAgICAgICAgICAgZG9QYXNzRmFpbCh2WzBdWzFdLm5hbWUgPT0gd2luZG93LmZpbGUxLm5h
bWUsICJGaWxlTGlzdCBwcmVzZXJ2ZXMgb3JkZXIgYW5kIGRhdGEgKG5hbWUxKSIpOworICAgICAg
ICAgICAgZG9QYXNzRmFpbChlcXVhbCh2WzBdWzBdLmxhc3RNb2RpZmllZERhdGUsIHdpbmRvdy5m
aWxlMC5sYXN0TW9kaWZpZWREYXRlKSwgIkZpbGVMaXN0IHByZXNlcnZlcyBvcmRlciBhbmQgZGF0
YSAoZGF0ZTApIik7CisgICAgICAgICAgICBkb1Bhc3NGYWlsKGVxdWFsKHZbMF1bMV0ubGFzdE1v
ZGlmaWVkRGF0ZSwgd2luZG93LmZpbGUxLmxhc3RNb2RpZmllZERhdGUpLCAiRmlsZUxpc3QgcHJl
c2VydmVzIG9yZGVyIGFuZCBkYXRhIChkYXRlMSkiKTsKKyAgICAgICAgfSk7Cit9Cit0cnlQb3N0
TWVzc2FnZSgnImRvbmUiJyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5k
b3cvc2NyaXB0LXRlc3RzL3Bvc3RtZXNzYWdlLXRlc3QuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9XaW5kb3cvc2NyaXB0LXRlc3RzL3Bvc3RtZXNzYWdlLXRlc3QuanMKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uZWVjMTdmZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZG9tL1dpbmRvdy9zY3JpcHQtdGVzdHMvcG9zdG1lc3NhZ2UtdGVzdC5qcwpAQCAt
MCwwICsxLDE2NSBAQAoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci53YWl0VW50aWxEb25lKCk7Cit9CisKK3ZhciBjb25zb2xlID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoImNvbnNvbGUiKTsKKwordmFyIG1lc3NhZ2VzID0gW107Cit2YXIgZXZhbFRodW5rcyA9
IFtdOworCitmdW5jdGlvbiBlcXVhbChhY3R1YWwsIGV4cGVjdGVkKQoreworICAgIGlmIChhY3R1
YWwgPT09IGV4cGVjdGVkKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBpZiAodHlwZW9mIGFj
dHVhbCAhPT0gdHlwZW9mIGV4cGVjdGVkKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYg
KChhY3R1YWwgaW5zdGFuY2VvZiBEYXRlKSB8fCAoZXhwZWN0ZWQgaW5zdGFuY2VvZiBEYXRlKSkg
eworICAgICAgICBpZiAoKGFjdHVhbCBpbnN0YW5jZW9mIERhdGUpICYmIChleHBlY3RlZCBpbnN0
YW5jZW9mIERhdGUpKQorICAgICAgICAgICAgcmV0dXJuIChleHBlY3RlZCBpbnN0YW5jZW9mIERh
dGUpICYmIGFjdHVhbC5nZXRUaW1lKCkgPT0gZXhwZWN0ZWQuZ2V0VGltZSgpOworICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgfQorICAgIGlmIChBcnJheS5pc0FycmF5KGFjdHVhbCkgfHwgQXJy
YXkuaXNBcnJheShleHBlY3RlZCkpIHsKKyAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGFjdHVh
bCkgfHwgIUFycmF5LmlzQXJyYXkoZXhwZWN0ZWQpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgICAgICBpZiAoYWN0dWFsLmxlbmd0aCAhPSBleHBlY3RlZC5sZW5ndGgpCisgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYWN0dWFsLmxl
bmd0aDsgaSsrKSB7CisgICAgICAgICAgICBpZiAoKGkgaW4gYWN0dWFsKSBeIChpIGluIGV4cGVj
dGVkKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBpZiAoIWVx
dWFsKGFjdHVhbFtpXSwgZXhwZWN0ZWRbaV0pKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgaWYgKGFjdHVh
bC5jb25zdHJ1Y3RvciAhPT0gZXhwZWN0ZWQuY29uc3RydWN0b3IpCisgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICB0cnkgeworICAgICAgICB2YXIga2V5cyA9IE9iamVjdC5rZXlzKGFjdHVhbCk7
CisgICAgfSBjYXRjaChlKSB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgdHJ5
IHsKKyAgICBpZiAoIWVxdWFsKGtleXMsIE9iamVjdC5rZXlzKGV4cGVjdGVkKSkpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICB9IGNhdGNoKGUpIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIH0KKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IGtleXMubGVuZ3RoOyBpKyspIHsKKyAgICAg
ICAgaWYgKCFlcXVhbChhY3R1YWxba2V5c1tpXV0sIGV4cGVjdGVkW2tleXNbaV1dKSkKKyAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Z1bmN0
aW9uIHNhZmVUb1N0cmluZyhvKSB7CisgICAgaWYgKG8gaW5zdGFuY2VvZiBEYXRlKQorICAgICAg
ICByZXR1cm4gby50b0lTT1N0cmluZygpOworICAgIGlmICh0eXBlb2YgbyAhPT0gIm9iamVjdCIg
fHwgIW8pCisgICAgICAgIHJldHVybiBvOworICAgIHRyeSB7CisgICAgICAgIHJldHVybiBvLnRv
U3RyaW5nKCk7CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICByZXR1cm4gT2JqZWN0LnByb3Rv
dHlwZS50b1N0cmluZy5jYWxsKG8pICsgIihkZWZhdWx0IHRvU3RyaW5nIHRocmV3ICIrZSsiKSI7
CisgICAgfQorfQorCitmdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKQoreworICAg
IHZhciBhY3R1YWxWYWx1ZSA9IGV2YWwoYWN0dWFsKTsKKyAgICB2YXIgZXhwZWN0ZWRWYWx1ZSA9
IGV2YWwoZXhwZWN0ZWQpOworICAgIGlmIChlcXVhbChhY3R1YWxWYWx1ZSwgZXhwZWN0ZWRWYWx1
ZSkpCisgICAgICAgIGNvbnNvbGUuaW5uZXJIVE1MICs9ICJQQVNTOiAiICsgYWN0dWFsICsgIiBp
cyAiICsgc2FmZVRvU3RyaW5nKGV4cGVjdGVkVmFsdWUpICsgIiBvZiB0eXBlICIgKyB0eXBlb2Yg
YWN0dWFsVmFsdWUgKyAiPGJyPiI7CisgICAgZWxzZQorICAgICAgICBjb25zb2xlLmlubmVySFRN
TCArPSAiRkFJTDogIiArIGFjdHVhbCArICIgaXMgIiArIGFjdHVhbFZhbHVlICsgIiBzaG91bGQg
YmUgIiArIGV4cGVjdGVkVmFsdWUgKyAiIG9mIHR5cGUgIiArIHR5cGVvZiBleHBlY3RlZFZhbHVl
ICsgIjxicj4iOworfQorCitmdW5jdGlvbiBzaG91bGRCZUlkZW50aWNhbChhY3R1YWwsIGV4cGVj
dGVkKQoreworICAgIHZhciBhY3R1YWxWYWx1ZSA9IGV2YWwoYWN0dWFsKTsKKyAgICB2YXIgZXhw
ZWN0ZWRWYWx1ZSA9IGV2YWwoZXhwZWN0ZWQpOworICAgIGlmIChhY3R1YWxWYWx1ZSA9PT0gZXhw
ZWN0ZWRWYWx1ZSkKKyAgICAgICAgY29uc29sZS5pbm5lckhUTUwgKz0gIlBBU1M6ICIgKyBhY3R1
YWwgKyAiIGlzID09PSB0byAiICsgZXhwZWN0ZWQgKyAiPGJyPiI7CisgICAgZWxzZQorICAgICAg
ICBjb25zb2xlLmlubmVySFRNTCArPSAiRkFJTDogIiArIGFjdHVhbCArICIgaXMgbm90ID09PSB0
byAiICsgZXhwZWN0ZWQgKyAiPGJyPiI7Cit9CisKK2Z1bmN0aW9uIGRvUGFzcyhtc2cpIHsKKyAg
ICBjb25zb2xlLmlubmVySFRNTCArPSAiUEFTUzogIiArIG1zZyArICI8YnI+IjsKK30KKworZnVu
Y3Rpb24gZG9GYWlsKG1zZykgeworICAgIGNvbnNvbGUuaW5uZXJIVE1MICs9ICJGQUlMOiAiICsg
bXNnICsgIjxicj4iOworfQorCit3aW5kb3cuZG9QYXNzRmFpbCA9IGZ1bmN0aW9uKHJlc3VsdCwg
bXNnKSB7CisgICAgY29uc29sZS5pbm5lckhUTUwgKz0gKHJlc3VsdCA/ICJQQVNTOiAiIDogIkZB
SUw6ICIpICsgbXNnICsgIjxicj4iOworfQorCitmdW5jdGlvbiBvbm1lc3NhZ2UoZXZ0KSB7Cisg
ICAgZXZlbnREYXRhID0gZXZ0LmRhdGE7CisgICAgaWYgKGV2dC5kYXRhICE9PSBldnQuZGF0YSkK
KyAgICAgICAgY29uc29sZS5pbm5lckhUTUwgKz0gIk1lc3NhZ2VFdmVudC5kYXRhIGRvZXMgbm90
IHByb2R1Y2UgdGhlIHNhbWUgdmFsdWUgb24gbXVsdGlwbGUgcXVlcmllcy48YnI+IjsKKyAgICB2
YXIgbWVzc2FnZSA9IG1lc3NhZ2VzLnNoaWZ0KCk7CisgICAgc3dpdGNoIChtZXNzYWdlKSB7Cisg
ICAgY2FzZSAiY3ljbGljT2JqZWN0IjoKKyAgICAgICAgc2hvdWxkQmVJZGVudGljYWwoImV2ZW50
RGF0YSIsICJldmVudERhdGEuc2VsZiIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlICJjeWNs
aWNBcnJheSI6CisgICAgICAgIHNob3VsZEJlSWRlbnRpY2FsKCJldmVudERhdGEiLCAiZXZlbnRE
YXRhWzBdIik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgIm9iamVjdEdyYXBoIjoKKyAgICAg
ICAgc2hvdWxkQmVJZGVudGljYWwoImV2ZW50RGF0YS5ncmFwaDEiLCAiZXZlbnREYXRhLmdyYXBo
MiIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlICJhcnJheUdyYXBoIjoKKyAgICAgICAgc2hv
dWxkQmVJZGVudGljYWwoImV2ZW50RGF0YVswXSIsICJldmVudERhdGFbMV0iKTsKKyAgICAgICAg
YnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgaWYgKG1lc3NhZ2UgPT0gImV2YWxUaHVuayIp
IHsKKyAgICAgICAgICAgIHZhciB0aHVuayA9IGV2YWxUaHVua3Muc2hpZnQoKTsKKyAgICAgICAg
ICAgIHRyeSB7CisgICAgICAgICAgICAgICAgdGh1bmsoZXZlbnREYXRhKTsKKyAgICAgICAgICAg
IH0gY2F0Y2goZSkgeworICAgICAgICAgICAgICAgIGRvRmFpbCgidGhyZXcgZXhjZXB0aW9uOiAi
ICsgZSk7CisgICAgICAgICAgICB0aHJvdyBlOworICAgICAgICAgICAgfQorICAgICAgICB9IGVs
c2UgeworICAgICAgICAgICAgc2hvdWxkQmUoImV2ZW50RGF0YSIsIG1lc3NhZ2UpOworICAgICAg
ICB9CisgICAgfQorCisgICAgaWYgKHNhZmVUb1N0cmluZyhldnQuZGF0YSkgPT0gJ2RvbmUnICYm
IHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIubm90aWZ5RG9uZSgpOworfQorCit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScs
IG9ubWVzc2FnZSwgZmFsc2UpOworCitmdW5jdGlvbiBDb25zdHJ1Y3RvcldpdGhQcm90b3R5cGUo
cykgeworICAgIHRoaXMuZmllbGQgPSBzOworfQorCitDb25zdHJ1Y3RvcldpdGhQcm90b3R5cGUu
cHJvdG90eXBlID0geworICAgIHByb3RvUHJvcGVydHk6IDIwMTAKK307CisKK3dpbmRvdy50cnlQ
b3N0TWVzc2FnZSA9IGZ1bmN0aW9uKG1lc3NhZ2UsIHNob3VsZFRocm93LCBleHBlY3RlZCwgZXhw
ZWN0ZWRFeGNlcHRpb24pIHsKKyAgICB0cnkgeworICAgICAgICB2YXIgdmFsdWUgPSBldmFsKG1l
c3NhZ2UpOworICAgICAgICBwb3N0TWVzc2FnZSh2YWx1ZSwgIioiKTsKKyAgICAgICAgaWYgKHNo
b3VsZFRocm93KQorICAgICAgICAgICAgY29uc29sZS5pbm5lckhUTUwgKz0gIkZBSUw6ICdwb3N0
TWVzc2FnZSgiK21lc3NhZ2UrIiknIHNob3VsZCB0aHJvdyBidXQgZGlkbid0PGJyPiI7CisgICAg
ICAgIG1lc3NhZ2VzLnB1c2goZXhwZWN0ZWQgfHwgbWVzc2FnZSk7CisgICAgICAgIGlmIChleHBl
Y3RlZCA9PSAiZXZhbFRodW5rIikgeworICAgICAgICAgICAgZXZhbFRodW5rcy5wdXNoKGV4cGVj
dGVkRXhjZXB0aW9uKTsKKyAgICAgICAgfQorICAgIH0gY2F0Y2goZSkgeworICAgICAgICBpZiAo
c2hvdWxkVGhyb3cpIHsKKyAgICAgICAgICAgIGlmIChleHBlY3RlZEV4Y2VwdGlvbiA9PT0gdW5k
ZWZpbmVkIHx8IGV4cGVjdGVkRXhjZXB0aW9uID09IGUuY29kZSB8fCBleHBlY3RlZEV4Y2VwdGlv
biA9PSBlKSB7CisgICAgICAgICAgICAgICAgY29uc29sZS5pbm5lckhUTUwgKz0gIlBBU1M6ICdw
b3N0TWVzc2FnZSgiK21lc3NhZ2UrIiknIHRocmV3ICIgKyBlICsgIjxicj4iOworICAgICAgICAg
ICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBjb25zb2xlLmlubmVySFRNTCArPSAiRkFJTDog
J3Bvc3RNZXNzYWdlKCIrbWVzc2FnZSsiKScgdGhyZXcgIiArIGUgKyAiLCB3YXMgZXhwZWN0aW5n
ICIgKyBleHBlY3RlZEV4Y2VwdGlvbiArICI8YnI+IjsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
fSBlbHNlCisgICAgICAgICAgICBjb25zb2xlLmlubmVySFRNTCArPSAiRkFJTDogJ3Bvc3RNZXNz
YWdlKCIrbWVzc2FnZSsiKScgc2hvdWxkIG5vdCB0aHJvdyBidXQgdGhyZXcgIiArIGUgKyAiPGJy
PiI7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dp
bmRvdy1wb3N0bWVzc2FnZS1jbG9uZS1kZWVwLWFycmF5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcG9zdG1lc3NhZ2UtY2xvbmUtZGVlcC1hcnJheS1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDkwZDhkOQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcG9z
dG1lc3NhZ2UtY2xvbmUtZGVlcC1hcnJheS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitU
ZXN0cyB0aGF0IHdlIGFib3J0IGNsb25pbmcgZGVlcChpc2gpIGFycmF5cy4KKworUEFTUzogZXZl
bnREYXRhIGlzIFtvYmplY3QgQXJyYXldKGRlZmF1bHQgdG9TdHJpbmcgdGhyZXcgUmFuZ2VFcnJv
cjogTWF4aW11bSBjYWxsIHN0YWNrIHNpemUgZXhjZWVkZWQpIG9mIHR5cGUgb2JqZWN0CitQQVNT
OiBldmVudERhdGEgaXMgZG9uZSBvZiB0eXBlIHN0cmluZworCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXBvc3RtZXNzYWdlLWNsb25lLWRlZXAtYXJyYXku
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcG9zdG1lc3NhZ2UtY2xv
bmUtZGVlcC1hcnJheS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFj
M2QxYTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2lu
ZG93LXBvc3RtZXNzYWdlLWNsb25lLWRlZXAtYXJyYXkuaHRtbApAQCAtMCwwICsxLDEwIEBACis8
aHRtbD4KKzxoZWFkPjwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2
PgorPGlucHV0IHR5cGU9ImZpbGUiIGlkPSJmaWxlSW5wdXQiIG11bHRpcGxlPjwvaW5wdXQ+Cis8
ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvcG9zdG1l
c3NhZ2UtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3Bvc3Rt
ZXNzYWdlLWNsb25lLWRlZXAtYXJyYXkuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wb3N0bWVzc2Fn
ZS1jbG9uZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93
LXBvc3RtZXNzYWdlLWNsb25lLWV4cGVjdGVkLnR4dAppbmRleCBkMmYwMTQ5Li4yMzcxZmRkIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXBvc3RtZXNzYWdl
LWNsb25lLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2lu
ZG93LXBvc3RtZXNzYWdlLWNsb25lLWV4cGVjdGVkLnR4dApAQCAtMSw4ICsxLDE0IEBACiBUZXN0
cyB0aGF0IHdlIGNsb25lIG9iamVjdCBoaWVyYXJjaGllcwogCi1QQVNTOiAncG9zdE1lc3NhZ2Uo
cmVhbGx5RGVlcEFycmF5KScgdGhyZXcgUmFuZ2VFcnJvcjogTWF4aW11bSBjYWxsIHN0YWNrIHNp
emUgZXhjZWVkZWQuCi1QQVNTOiAncG9zdE1lc3NhZ2Uod2luZG93KScgdGhyZXcgVHlwZUVycm9y
OiBUeXBlIGVycm9yCitQQVNTOiAncG9zdE1lc3NhZ2UoKGZ1bmN0aW9uKCl7fSkpJyB0aHJldyBF
cnJvcjogREFUQV9DTE9ORV9FUlI6IERPTSBFeGNlcHRpb24gMjUKK1BBU1M6ICdwb3N0TWVzc2Fn
ZSh3aW5kb3cpJyB0aHJldyBFcnJvcjogREFUQV9DTE9ORV9FUlI6IERPTSBFeGNlcHRpb24gMjUK
IFBBU1M6ICdwb3N0TWVzc2FnZSgoe2dldCBhKCkgeyB0aHJvdyAieCIgfX0pKScgdGhyZXcgeAor
UEFTUzogJ3Bvc3RNZXNzYWdlKGltYWdlRGF0YS5kYXRhKScgdGhyZXcgRXJyb3I6IERBVEFfQ0xP
TkVfRVJSOiBET00gRXhjZXB0aW9uIDI1CitQQVNTOiAncG9zdE1lc3NhZ2UobXV0YXRlZEltYWdl
RGF0YS5kYXRhKScgdGhyZXcgRXJyb3I6IERBVEFfQ0xPTkVfRVJSOiBET00gRXhjZXB0aW9uIDI1
CitQQVNTOiAncG9zdE1lc3NhZ2UoKGZ1bmN0aW9uKCkge3JldHVybiB7Z2V0IGEoKSB7IHRocm93
ICJhY2Nlc3Nvci1leG4iOyB9fTt9KSgpKScgdGhyZXcgYWNjZXNzb3ItZXhuCitQQVNTOiAncG9z
dE1lc3NhZ2UoKGZ1bmN0aW9uKCkge3ZhciBvYmphID0ge2dldCBwKCkgeyB0aHJvdyAiYWNjZXNz
b3ItZXhuIjsgfX07IHJldHVybiB7Z2V0IGEoKSB7IHJldHVybiBvYmphOyB9fTt9KSgpKScgdGhy
ZXcgYWNjZXNzb3ItZXhuCitQQVNTOiBsYXN0SW5kZXggaW5pdGlhbGx5IGNvcnJlY3Q6IHdhcyAz
CitQQVNTOiBzYW5pdHkgb24gZmlsZSByZWZlcmVuY2UgZXF1YWxpdHkKIFBBU1M6IGV2ZW50RGF0
YSBpcyBudWxsIG9mIHR5cGUgb2JqZWN0CiBQQVNTOiBldmVudERhdGEgaXMgdW5kZWZpbmVkIG9m
IHR5cGUgdW5kZWZpbmVkCiBQQVNTOiBldmVudERhdGEgaXMgMSBvZiB0eXBlIG51bWJlcgpAQCAt
MjIsMTcgKzI4LDg3IEBAIFBBU1M6IGV2ZW50RGF0YSBpcyBhLGEsYixhLGIgb2YgdHlwZSBvYmpl
Y3QKIFBBU1M6IGV2ZW50RGF0YSBpcyBhLGEsYixbb2JqZWN0IE9iamVjdF0gb2YgdHlwZSBvYmpl
Y3QKIFBBU1M6IGV2ZW50RGF0YSBpcyAxLDIsMyBvZiB0eXBlIG9iamVjdAogUEFTUzogZXZlbnRE
YXRhIGlzICwsMSBvZiB0eXBlIG9iamVjdAotUEFTUzogZXZlbnREYXRhIGlzIG51bGwgb2YgdHlw
ZSBvYmplY3QKIFBBU1M6IGV2ZW50RGF0YSBpcyAyMDA5LTAyLTEzVDIzOjMxOjMwLjAwMFogb2Yg
dHlwZSBvYmplY3QKIFBBU1M6IGV2ZW50RGF0YSBpcyBbb2JqZWN0IE9iamVjdF0gb2YgdHlwZSBv
YmplY3QKIFBBU1M6IGV2ZW50RGF0YSBpcyA9PT0gdG8gZXZlbnREYXRhLnNlbGYKIFBBU1M6IGV2
ZW50RGF0YSBpcyA9PT0gdG8gZXZlbnREYXRhWzBdCiBQQVNTOiBldmVudERhdGEuZ3JhcGgxIGlz
ID09PSB0byBldmVudERhdGEuZ3JhcGgyCiBQQVNTOiBldmVudERhdGFbMF0gaXMgPT09IHRvIGV2
ZW50RGF0YVsxXQotUEFTUzogZXZlbnREYXRhIGlzIFtvYmplY3QgQXJyYXldKGRlZmF1bHQgdG9T
dHJpbmcgdGhyZXcgUmFuZ2VFcnJvcjogTWF4aW11bSBjYWxsIHN0YWNrIHNpemUgZXhjZWVkZWQu
KSBvZiB0eXBlIG9iamVjdAotUEFTUzogZXZlbnREYXRhIGlzIFtvYmplY3QgRmlsZV0gb2YgdHlw
ZSBvYmplY3QKLVBBU1M6IGV2ZW50RGF0YSBpcyBbb2JqZWN0IEZpbGVMaXN0XSBvZiB0eXBlIG9i
amVjdAogUEFTUzogZXZlbnREYXRhIGlzIFtvYmplY3QgSW1hZ2VEYXRhXSBvZiB0eXBlIG9iamVj
dAogUEFTUzogZXZlbnREYXRhIGlzIFtvYmplY3QgSW1hZ2VEYXRhXSBvZiB0eXBlIG9iamVjdAor
UEFTUzogZXZlbnREYXRhIGlzIDQyIG9mIHR5cGUgbnVtYmVyCitQQVNTOiBldmVudERhdGEgaXMg
NDIgb2YgdHlwZSBudW1iZXIKK1BBU1M6IGV2YWxUaHVuayBPSworUEFTUzogZXZlbnREYXRhIGlz
IFtvYmplY3QgT2JqZWN0XSBvZiB0eXBlIG9iamVjdAorUEFTUzogbGVuZ3RoIGNvcnJlY3QKK1BB
U1M6IGV2YWx1YXRpb24gb3JkZXIgT0sKK1BBU1M6IGV2YWx1YXRpb24gb3JkZXIgT0svYWNjZXNz
b3IgcmVhY2hlZAorUEFTUzogZXZhbHVhdGlvbiBvcmRlciBPSworUEFTUzogbGVuZ3RoIGNvcnJl
Y3QKK1BBU1M6IGl4IDAgT0sKK1BBU1M6IGFjY2Vzc29yIHJlYWNoZWQKK1BBU1M6IGl4IDIgdW5k
ZWZpbmVkCitQQVNTOiBsZW5ndGggY29ycmVjdAorUEFTUzogaXggMCBPSworUEFTUzogaXggMSBP
SworUEFTUzogaXggMiBPSworUEFTUzogYmFzaWMgcHJvcGVydGllcyBPSworUEFTUzogb25lIGFj
Y2Vzc29yIHdhcyBydW4KK1BBU1M6IHByb3BlcnR5IHdhcyByZW1vdmVkCitQQVNTOiBwcm9wZXJ0
eSB3YXMgcmVtb3ZlZAorUEFTUzogYWNjZXNzb3Igd2FzIHJ1bgorUEFTUzogZHluYW1pYyBwcm9w
ZXJ0eSBub3Qgc2VudAorUEFTUzogcmVmZXJlbmNlIGVxdWFsaXR5IHByZXNlcnZlZAorUEFTUzog
YWNjZXNzb3JzIHVzZWQKK1BBU1M6IHJlZmVyZW5jZSBlcXVhbGl0eSBwcmVzZXJ2ZWQgKG9wcG9z
aXRlIG9yZGVyKQorUEFTUzogYWNjZXNzb3JzIHVzZWQgKG9wcG9zaXRlIG9yZGVyKQorUEFTUzog
YWNjZXNzb3IgdmFsdWUgd2FzIG51bGxpZmllZAorUEFTUzogbm9uLWFjY2Vzc29yIHZhbHVlIHdh
cyBub3QgbnVsbGlmaWVkCitQQVNTOiBhY2Nlc3NvciB2YWx1ZSB3YXMgbnVsbGlmaWVkCitQQVNT
OiBub24tYWNjZXNzb3IgdmFsdWUgd2FzIG5vdCBudWxsaWZpZWQKK1BBU1M6IG5vbi1hY2Nlc3Nv
ciB2YWx1ZSB3YXMgbm90IG51bGxpZmllZAorUEFTUzogYWNjZXNzb3IgdmFsdWUgd2FzIG51bGxp
ZmllZAorUEFTUzogbm9uLWFjY2Vzc29yIHZhbHVlIHdhcyBub3QgbnVsbGlmaWVkCitQQVNTOiBh
Y2Nlc3NvciB2YWx1ZSB3YXMgbm90IG51bGxpZmllZAorUEFTUzogYWNjZXNzb3IgdmFsdWUgd2Fz
IG5vdCBudWxsaWZpZWQKK1BBU1M6IGFjY2Vzc29yIHZhbHVlIHdhcyBudWxsaWZpZWQKK1BBU1M6
IG5vbi1hY2Nlc3NvciB2YWx1ZSB3YXMgbm90IG51bGxpZmllZAorUEFTUzogbm9uLWFjY2Vzc29y
IHZhbHVlIHdhcyBub3QgbnVsbGlmaWVkCitQQVNTOiBub24tYWNjZXNzb3IgdmFsdWUgaXMgZGVm
aW5lZAorUEFTUzogbm9uLWFjY2Vzc29yIHZhbHVlIHdhcyBub3QgbnVsbGlmaWVkCitQQVNTOiBu
b24tYWNjZXNzb3IgdmFsdWUgaXMgZGVmaW5lZAorUEFTUzogYWNjZXNzb3IgdmFsdWUgd2FzIG51
bGxpZmllZAorUEFTUzogbm9uLWFjY2Vzc29yIHZhbHVlIHdhcyBub3QgbnVsbGlmaWVkCitQQVNT
OiBhY2Nlc3NvciB2YWx1ZSB3YXMgbnVsbGlmaWVkCitQQVNTOiB3aW5kb3cucGNhbGxlZCA9PT0g
dHJ1ZQorUEFTUzogd2luZG93LmFjYWxsZWQgPT09IHRydWUKK1BBU1M6IHdpbmRvdy5iY2FsbGVk
ID09PSB1bmRlZmluZWQKK1BBU1M6IERhdGUgdmFsdWVzIGNvcnJlY3QgKDApCitQQVNTOiBEYXRl
IHZhbHVlcyBjb3JyZWN0ICgxKQorUEFTUzogUmVmZXJlbmNlcyB0byBkYXRlcyBjb3JyZWN0ICgw
KQorUEFTUzogUmVmZXJlbmNlcyB0byBkYXRlcyBjb3JyZWN0ICgxKQorUEFTUzogUmVnZXhwIHZh
bHVlIGNvcnJlY3QgKDApCitQQVNTOiBSZWZlcmVuY2VzIHRvIHJlZ2V4cHMgY29ycmVjdCAoMCkK
K1BBU1M6IFJlZmVyZW5jZXMgdG8gcmVnZXhwcyBjb3JyZWN0ICgxKQorUEFTUzogZ2xvYmFsIHNl
dCAoMCkKK1BBU1M6IGdsb2JhbCBzZXQgKDEpCitQQVNTOiBpZ25vcmVDYXNlIHNldCAoMCkKK1BB
U1M6IGlnbm9yZUNhc2Ugc2V0ICgxKQorUEFTUzogbXVsdGlsaW5lIHNldCAoMCkKK1BBU1M6IG11
bHRpbGluZSBzZXQgKDEpCitQQVNTOiBsYXN0SW5kZXggY29ycmVjdCAoMCkKK1BBU1M6IGxhc3RJ
bmRleCBjb3JyZWN0ICgxKQorUEFTUzogZXZlbnREYXRhIGlzIDIgb2YgdHlwZSBudW1iZXIKK1BB
U1M6IGZpbGUgcmVmZXJlbmNlcyB0cmFuc2ZlcgorUEFTUzogRmlsZUxpc3Qgc2hvdWxkIG5vdCBy
ZXNwZWN0IHJlZmVyZW5jZSBlcXVhbGl0eQorUEFTUzogRmlsZUxpc3Qgc2hvdWxkIG5vdCByZXNw
ZWN0IHJlZmVyZW5jZSBlcXVhbGl0eQorUEFTUzogRmlsZUxpc3QgcmVzcGVjdHMgc2VsZi1yZWZl
cmVuY2UgZXF1YWxpdHkKK1BBU1M6IEZpbGVMaXN0IGxlbmd0aCBzZW50IGNvcnJlY3RseQorUEFT
UzogRmlsZUxpc3Qgc2hvdWxkIG5vdCByZXNwZWN0IHJlZmVyZW5jZSBlcXVhbGl0eSAoMCkKK1BB
U1M6IEZpbGVMaXN0IHNob3VsZCBub3QgcmVzcGVjdCByZWZlcmVuY2UgZXF1YWxpdHkgKDEpCitQ
QVNTOiBGaWxlTGlzdCBwcmVzZXJ2ZXMgb3JkZXIgYW5kIGRhdGEgKG5hbWUwKQorUEFTUzogRmls
ZUxpc3QgcHJlc2VydmVzIG9yZGVyIGFuZCBkYXRhIChuYW1lMSkKK1BBU1M6IEZpbGVMaXN0IHBy
ZXNlcnZlcyBvcmRlciBhbmQgZGF0YSAoZGF0ZTApCitQQVNTOiBGaWxlTGlzdCBwcmVzZXJ2ZXMg
b3JkZXIgYW5kIGRhdGEgKGRhdGUxKQogUEFTUzogZXZlbnREYXRhIGlzIGRvbmUgb2YgdHlwZSBz
dHJpbmcKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1w
b3N0bWVzc2FnZS1jbG9uZS1yZWFsbHktZGVlcC1hcnJheS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXBvc3RtZXNzYWdlLWNsb25lLXJlYWxseS1kZWVw
LWFycmF5LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40
Y2M1MTg1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dp
bmRvdy1wb3N0bWVzc2FnZS1jbG9uZS1yZWFsbHktZGVlcC1hcnJheS1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSw1IEBACitUZXN0cyB0aGF0IHdlIGFib3J0IGNsb25pbmcgb3ZlcmRlZXAgYXJyYXlz
LgorCitQQVNTOiAncG9zdE1lc3NhZ2UocmVhbGx5RGVlcEFycmF5KScgdGhyZXcgRXJyb3I6IERB
VEFfQ0xPTkVfRVJSOiBET00gRXhjZXB0aW9uIDI1CitQQVNTOiBldmVudERhdGEgaXMgZG9uZSBv
ZiB0eXBlIHN0cmluZworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cv
d2luZG93LXBvc3RtZXNzYWdlLWNsb25lLXJlYWxseS1kZWVwLWFycmF5Lmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXBvc3RtZXNzYWdlLWNsb25lLXJlYWxseS1kZWVw
LWFycmF5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWI2ZDY2Ygot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcG9z
dG1lc3NhZ2UtY2xvbmUtcmVhbGx5LWRlZXAtYXJyYXkuaHRtbApAQCAtMCwwICsxLDEwIEBACis8
aHRtbD4KKzxoZWFkPjwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2
PgorPGlucHV0IHR5cGU9ImZpbGUiIGlkPSJmaWxlSW5wdXQiIG11bHRpcGxlPjwvaW5wdXQ+Cis8
ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvcG9zdG1l
c3NhZ2UtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3Bvc3Rt
ZXNzYWdlLWNsb25lLXJlYWxseS1kZWVwLWFycmF5LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcG9z
dG1lc3NhZ2UtY2xvbmUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ct
cG9zdG1lc3NhZ2UtY2xvbmUuaHRtbAppbmRleCBmMjgzNTFjLi44ZDYwNjAzIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXBvc3RtZXNzYWdlLWNsb25lLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wb3N0bWVzc2FnZS1j
bG9uZS5odG1sCkBAIC0yLDIxNiArMiw5IEBACiA8aGVhZD48L2hlYWQ+CiA8Ym9keT4KIDxkaXYg
aWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KLTxpbnB1dCB0eXBlPSJmaWxlIiBpZD0iZmlsZUlucHV0
Ij48L2lucHV0PgorPGlucHV0IHR5cGU9ImZpbGUiIGlkPSJmaWxlSW5wdXQiIG11bHRpcGxlPjwv
aW5wdXQ+CiA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLTxzY3JpcHQ+Ci1pZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4
dCgpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKLX0KLQotdmFy
IGNvbnNvbGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpOwotCi12YXIgbWVz
c2FnZXMgPSBbXTsKLQotZnVuY3Rpb24gZXF1YWwoYWN0dWFsLCBleHBlY3RlZCkKLXsKLSAgICBp
ZiAoYWN0dWFsID09PSBleHBlY3RlZCkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgaWYgKHR5
cGVvZiBhY3R1YWwgIT09IHR5cGVvZiBleHBlY3RlZCkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgIGlmICgoYWN0dWFsIGluc3RhbmNlb2YgRGF0ZSkgfHwgKGV4cGVjdGVkIGluc3RhbmNlb2Yg
RGF0ZSkpIHsKLSAgICAgICAgaWYgKChhY3R1YWwgaW5zdGFuY2VvZiBEYXRlKSAmJiAoZXhwZWN0
ZWQgaW5zdGFuY2VvZiBEYXRlKSkKLSAgICAgICAgICAgIHJldHVybiAoZXhwZWN0ZWQgaW5zdGFu
Y2VvZiBEYXRlKSAmJiBhY3R1YWwuZ2V0VGltZSgpID09IGV4cGVjdGVkLmdldFRpbWUoKTsKLSAg
ICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLSAgICBpZiAoQXJyYXkuaXNBcnJheShhY3R1YWwp
IHx8IEFycmF5LmlzQXJyYXkoZXhwZWN0ZWQpKSB7Ci0gICAgICAgIGlmICghQXJyYXkuaXNBcnJh
eShhY3R1YWwpIHx8ICFBcnJheS5pc0FycmF5KGV4cGVjdGVkKSkKLSAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKLSAgICAgICAgaWYgKGFjdHVhbC5sZW5ndGggIT0gZXhwZWN0ZWQubGVuZ3RoKQot
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFj
dHVhbC5sZW5ndGg7IGkrKykgewotICAgICAgICAgICAgaWYgKChpIGluIGFjdHVhbCkgXiAoaSBp
biBleHBlY3RlZCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAg
aWYgKCFlcXVhbChhY3R1YWxbaV0sIGV4cGVjdGVkW2ldKSkKLSAgICAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotICAgIGlm
IChhY3R1YWwuY29uc3RydWN0b3IgIT09IGV4cGVjdGVkLmNvbnN0cnVjdG9yKQotICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0gICAgdHJ5IHsKLSAgICAgICAgdmFyIGtleXMgPSBPYmplY3Qua2V5cyhh
Y3R1YWwpOwotICAgIH0gY2F0Y2goZSkgewotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQot
ICAgIHRyeSB7Ci0gICAgaWYgKCFlcXVhbChrZXlzLCBPYmplY3Qua2V5cyhleHBlY3RlZCkpKQot
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfSBjYXRjaChlKSB7Ci0gICAgICAgIHJldHVybiBm
YWxzZTsKLSAgICB9Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7
Ci0gICAgICAgIGlmICghZXF1YWwoYWN0dWFsW2tleXNbaV1dLCBleHBlY3RlZFtrZXlzW2ldXSkp
Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotICAgIHJldHVybiB0cnVlOwotfQot
Ci1mdW5jdGlvbiBzYWZlVG9TdHJpbmcobykgewotICAgIGlmIChvIGluc3RhbmNlb2YgRGF0ZSkK
LSAgICAgICAgcmV0dXJuIG8udG9JU09TdHJpbmcoKTsKLSAgICBpZiAodHlwZW9mIG8gIT09ICJv
YmplY3QiIHx8ICFvKQotICAgICAgICByZXR1cm4gbzsKLSAgICB0cnkgewotICAgICAgICByZXR1
cm4gby50b1N0cmluZygpOwotICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgcmV0dXJuIE9iamVj
dC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChvKSArICIoZGVmYXVsdCB0b1N0cmluZyB0aHJldyAi
K2UrIikiOwotICAgIH0KLX0KLQotZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkK
LXsKLSAgICB2YXIgYWN0dWFsVmFsdWUgPSBldmFsKGFjdHVhbCk7Ci0gICAgdmFyIGV4cGVjdGVk
VmFsdWUgPSBldmFsKGV4cGVjdGVkKTsKLSAgICBpZiAoZXF1YWwoYWN0dWFsVmFsdWUsIGV4cGVj
dGVkVmFsdWUpKQotICAgICAgICBjb25zb2xlLmlubmVySFRNTCArPSAiUEFTUzogIiArIGFjdHVh
bCArICIgaXMgIiArIHNhZmVUb1N0cmluZyhleHBlY3RlZFZhbHVlKSArICIgb2YgdHlwZSAiICsg
dHlwZW9mIGFjdHVhbFZhbHVlICsgIjxicj4iOwotICAgIGVsc2UKLSAgICAgICAgY29uc29sZS5p
bm5lckhUTUwgKz0gIkZBSUw6ICIgKyBhY3R1YWwgKyAiIGlzICIgKyBhY3R1YWxWYWx1ZSArICIg
c2hvdWxkIGJlICIgKyBleHBlY3RlZFZhbHVlICsgIiBvZiB0eXBlICIgKyB0eXBlb2YgZXhwZWN0
ZWRWYWx1ZSArICI8YnI+IjsKLX0KLQotZnVuY3Rpb24gc2hvdWxkQmVJZGVudGljYWwoYWN0dWFs
LCBleHBlY3RlZCkKLXsKLSAgICB2YXIgYWN0dWFsVmFsdWUgPSBldmFsKGFjdHVhbCk7Ci0gICAg
dmFyIGV4cGVjdGVkVmFsdWUgPSBldmFsKGV4cGVjdGVkKTsKLSAgICBpZiAoYWN0dWFsVmFsdWUg
PT09IGV4cGVjdGVkVmFsdWUpCi0gICAgICAgIGNvbnNvbGUuaW5uZXJIVE1MICs9ICJQQVNTOiAi
ICsgYWN0dWFsICsgIiBpcyA9PT0gdG8gIiArIGV4cGVjdGVkICsgIjxicj4iOwotICAgIGVsc2UK
LSAgICAgICAgY29uc29sZS5pbm5lckhUTUwgKz0gIkZBSUw6ICIgKyBhY3R1YWwgKyAiIGlzIG5v
dCA9PT0gdG8gIiArIGV4cGVjdGVkICsgIjxicj4iOwotfQotCi1mdW5jdGlvbiBvbm1lc3NhZ2Uo
ZXZ0KSB7Ci0gICAgZXZlbnREYXRhID0gZXZ0LmRhdGE7Ci0gICAgaWYgKGV2dC5kYXRhICE9PSBl
dnQuZGF0YSkKLSAgICAgICAgY29uc29sZS5pbm5lckhUTUwgKz0gIk1lc3NhZ2VFdmVudC5kYXRh
IGRvZXMgbm90IHByb2R1Y2UgdGhlIHNhbWUgdmFsdWUgb24gbXVsdGlwbGUgcXVlcmllcy48YnI+
IjsKLSAgICB2YXIgbWVzc2FnZSA9IG1lc3NhZ2VzLnNoaWZ0KCk7Ci0gICAgc3dpdGNoIChtZXNz
YWdlKSB7Ci0gICAgY2FzZSAiY3ljbGljT2JqZWN0IjoKLSAgICAgICAgc2hvdWxkQmVJZGVudGlj
YWwoImV2ZW50RGF0YSIsICJldmVudERhdGEuc2VsZiIpOwotICAgICAgICBicmVhazsKLSAgICBj
YXNlICJjeWNsaWNBcnJheSI6Ci0gICAgICAgIHNob3VsZEJlSWRlbnRpY2FsKCJldmVudERhdGEi
LCAiZXZlbnREYXRhWzBdIik7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgIm9iamVjdEdyYXBo
IjoKLSAgICAgICAgc2hvdWxkQmVJZGVudGljYWwoImV2ZW50RGF0YS5ncmFwaDEiLCAiZXZlbnRE
YXRhLmdyYXBoMiIpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlICJhcnJheUdyYXBoIjoKLSAg
ICAgICAgc2hvdWxkQmVJZGVudGljYWwoImV2ZW50RGF0YVswXSIsICJldmVudERhdGFbMV0iKTsK
LSAgICAgICAgYnJlYWs7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgc2hvdWxkQmUoImV2ZW50RGF0
YSIsIG1lc3NhZ2UpOwotICAgIH0KLQotICAgIGlmIChzYWZlVG9TdHJpbmcoZXZ0LmRhdGEpID09
ICdkb25lJyAmJiB3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgIGxheW91dFRl
c3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKLX0KLQotd2luZG93LmFkZEV2ZW50TGlzdGVuZXIo
J21lc3NhZ2UnLCBvbm1lc3NhZ2UsIGZhbHNlKTsKLQotZnVuY3Rpb24gQ29uc3RydWN0b3JXaXRo
UHJvdG90eXBlKHMpIHsKLSAgICB0aGlzLmZpZWxkID0gczsKLX0KLQotQ29uc3RydWN0b3JXaXRo
UHJvdG90eXBlLnByb3RvdHlwZSA9IHsKLSAgICBwcm90b1Byb3BlcnR5OiAyMDEwCi19OwotCi1m
dW5jdGlvbiB0cnlQb3N0TWVzc2FnZShtZXNzYWdlLCBzaG91bGRUaHJvdywgZXhwZWN0ZWQpIHsK
LSAgICB0cnkgewotICAgICAgICB2YXIgdmFsdWUgPSBldmFsKG1lc3NhZ2UpOwotICAgICAgICBw
b3N0TWVzc2FnZSh2YWx1ZSwgIioiKTsKLSAgICAgICAgaWYgKHNob3VsZFRocm93KQotICAgICAg
ICAgICAgY29uc29sZS5pbm5lckhUTUwgKz0gIkZBSUw6ICdwb3N0TWVzc2FnZSgiK21lc3NhZ2Ur
IiknIHNob3VsZCB0aHJvdyBidXQgZGlkbid0PGJyPiI7Ci0gICAgICAgIG1lc3NhZ2VzLnB1c2go
ZXhwZWN0ZWQgfHwgbWVzc2FnZSk7Ci0gICAgfSBjYXRjaChlKSB7Ci0gICAgICAgIGlmIChzaG91
bGRUaHJvdykKLSAgICAgICAgICAgIGNvbnNvbGUuaW5uZXJIVE1MICs9ICJQQVNTOiAncG9zdE1l
c3NhZ2UoIittZXNzYWdlKyIpJyB0aHJldyAiICsgZSArICI8YnI+IjsKLSAgICAgICAgZWxzZQot
ICAgICAgICAgICAgY29uc29sZS5pbm5lckhUTUwgKz0gIkZBSUw6ICdwb3N0TWVzc2FnZSgiK21l
c3NhZ2UrIiknIHNob3VsZCBub3QgdGhyb3cgYnV0IHRocmV3ICIgKyBlICsgIjxicj4iOwotICAg
IH0KLX0KLQotZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRlc2NyaXB0aW9uIikuaW5uZXJIVE1M
ID0gIlRlc3RzIHRoYXQgd2UgY2xvbmUgb2JqZWN0IGhpZXJhcmNoaWVzIjsKLQotdHJ5UG9zdE1l
c3NhZ2UoJ251bGwnKTsKLXRyeVBvc3RNZXNzYWdlKCd1bmRlZmluZWQnKTsKLXRyeVBvc3RNZXNz
YWdlKCcxJyk7Ci10cnlQb3N0TWVzc2FnZSgndHJ1ZScpOwotdHJ5UG9zdE1lc3NhZ2UoJyIxIicp
OwotdHJ5UG9zdE1lc3NhZ2UoJyh7fSknKTsKLXRyeVBvc3RNZXNzYWdlKCcoe2E6MX0pJyk7Ci10
cnlQb3N0TWVzc2FnZSgnKHthOiJhIn0pJyk7Ci10cnlQb3N0TWVzc2FnZSgnKHtiOiJhIiwgYToi
YiJ9KScpOwotdHJ5UG9zdE1lc3NhZ2UoJyh7cDA6InN0cmluZzAiLCBwMToic3RyaW5nMSIsIHAy
OiJzdHJpbmcyIiwgcDM6InN0cmluZzMiLCBwNDoic3RyaW5nNCIsIHA1OiJzdHJpbmc1IiwgcDY6
InN0cmluZzYiLCBwNzoic3RyaW5nNyIsIHA4OiJzdHJpbmc4IiwgcDk6InN0cmluZzkiLCBwMTA6
InN0cmluZzEwIiwgcDExOiJzdHJpbmcxMSIsIHAxMjoic3RyaW5nMTIiLCBwMTM6InN0cmluZzEz
IiwgcDE0OiJzdHJpbmcxNCIsIHAxNToic3RyaW5nMTUiLCBwMTY6InN0cmluZzE2IiwgcDE3OiJz
dHJpbmcxNyIsIHAxODoic3RyaW5nMTgiLCBwMTk6InN0cmluZzE5In0pJyk7Ci10cnlQb3N0TWVz
c2FnZSgnKHtwMDoic3RyaW5nMSIsIHAxOiJzdHJpbmcxIiwgcDI6InN0cmluZzIiLCBwMzoic3Ry
aW5nMyIsIHA0OiJzdHJpbmc0IiwgcDU6InN0cmluZzUiLCBwNjoic3RyaW5nNiIsIHA3OiJzdHJp
bmc3IiwgcDg6InN0cmluZzgiLCBwOToic3RyaW5nOSIsIHAxMDoic3RyaW5nMTAiLCBwMTE6InN0
cmluZzExIiwgcDEyOiJzdHJpbmcxMiIsIHAxMzoic3RyaW5nMTMiLCBwMTQ6InN0cmluZzE0Iiwg
cDE1OiJzdHJpbmcxNSIsIHAxNjoic3RyaW5nMTYiLCBwMTc6InN0cmluZzE3IiwgcDE4OiJzdHJp
bmcxOCIsIHAxOToic3RyaW5nMTkifSknKTsKLXRyeVBvc3RNZXNzYWdlKCcoe2E6IiJ9KScpOwot
dHJ5UG9zdE1lc3NhZ2UoJyh7YTowfSknKTsKLXRyeVBvc3RNZXNzYWdlKCcoe2E6MX0pJyk7Ci10
cnlQb3N0TWVzc2FnZSgnW10nKTsKLXRyeVBvc3RNZXNzYWdlKCdbImEiLCAiYSIsICJiIiwgImEi
LCAiYiJdJyk7Ci10cnlQb3N0TWVzc2FnZSgnWyJhIiwgImEiLCAiYiIsIHthOiJiIiwgYjoiYSJ9
XScpOwotdHJ5UG9zdE1lc3NhZ2UoJ1sxLDIsM10nKTsKLXRyeVBvc3RNZXNzYWdlKCdbLCwxXScp
OwotdHJ5UG9zdE1lc3NhZ2UoJyhmdW5jdGlvbigpe30pJywgZmFsc2UsICdudWxsJyk7Ci10cnlQ
b3N0TWVzc2FnZSgnbmV3IERhdGUoMTIzNDU2Nzg5MDAwMCknKTsKLXRyeVBvc3RNZXNzYWdlKCdu
ZXcgQ29uc3RydWN0b3JXaXRoUHJvdG90eXBlKCJmb28iKScsIGZhbHNlLCAnKHtmaWVsZDoiZm9v
In0pJyk7Ci1jeWNsaWNPYmplY3Q9e307Ci1jeWNsaWNPYmplY3Quc2VsZiA9IGN5Y2xpY09iamVj
dDsKLXRyeVBvc3RNZXNzYWdlKCdjeWNsaWNPYmplY3QnLCBmYWxzZSwgImN5Y2xpY09iamVjdCIp
OwotY3ljbGljQXJyYXk9W107Ci1jeWNsaWNBcnJheVswXSA9IGN5Y2xpY0FycmF5OwotdHJ5UG9z
dE1lc3NhZ2UoJ2N5Y2xpY0FycmF5JywgZmFsc2UsICJjeWNsaWNBcnJheSIpOwotb2JqZWN0R3Jh
cGggPSB7fTsKLW9iamVjdCA9IHt9Owotb2JqZWN0R3JhcGguZ3JhcGgxID0gb2JqZWN0Owotb2Jq
ZWN0R3JhcGguZ3JhcGgyID0gb2JqZWN0OwotdHJ5UG9zdE1lc3NhZ2UoJ29iamVjdEdyYXBoJywg
ZmFsc2UsICJvYmplY3RHcmFwaCIpOwotYXJyYXlHcmFwaCA9IFtvYmplY3QsIG9iamVjdF07Ci10
cnlQb3N0TWVzc2FnZSgnYXJyYXlHcmFwaCcsIGZhbHNlLCAiYXJyYXlHcmFwaCIpOwotZGVlcEFy
cmF5PVtdOwotZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgaSsrKQotICAgIGRlZXBBcnJheT1b
ZGVlcEFycmF5XTsKLXRyeVBvc3RNZXNzYWdlKCdkZWVwQXJyYXknKTsKLXJlYWxseURlZXBBcnJh
eT1bXTsKLWZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwOyBpKyspCi0gICAgcmVhbGx5RGVlcEFy
cmF5PVtyZWFsbHlEZWVwQXJyYXldOwotdHJ5UG9zdE1lc3NhZ2UoJ3JlYWxseURlZXBBcnJheScs
IHRydWUpOwotdHJ5UG9zdE1lc3NhZ2UoJ3dpbmRvdycsIHRydWUpOwotdHJ5UG9zdE1lc3NhZ2Uo
Jyh7Z2V0IGEoKSB7IHRocm93ICJ4IiB9fSknLCB0cnVlKTsKLQotaWYgKHdpbmRvdy5ldmVudFNl
bmRlcikgewotICAgIHZhciBmaWxlSW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmls
ZUlucHV0Iik7Ci0gICAgdmFyIGZpbGVSZWN0ID0gZmlsZUlucHV0LmdldENsaWVudFJlY3RzKClb
MF07Ci0gICAgdmFyIHRhcmdldFggPSBmaWxlUmVjdC5sZWZ0ICsgZmlsZVJlY3Qud2lkdGggLyAy
OwotICAgIHZhciB0YXJnZXRZID0gZmlsZVJlY3QudG9wICsgZmlsZVJlY3QuaGVpZ2h0IC8gMjsK
LSAgICBldmVudFNlbmRlci5iZWdpbkRyYWdXaXRoRmlsZXMoWydnZXQtZmlsZS11cGxvYWQuaHRt
bCddKTsKLSAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyh0YXJnZXRYLCB0YXJnZXRZKTsKLSAg
ICBldmVudFNlbmRlci5tb3VzZVVwKCk7Ci0gICAgdHJ5UG9zdE1lc3NhZ2UoJ2ZpbGVJbnB1dC5m
aWxlc1swXScsIGZhbHNlLCBmaWxlSW5wdXQuZmlsZXNbMF0pOwotICAgIHRyeVBvc3RNZXNzYWdl
KCdmaWxlSW5wdXQuZmlsZXMnLCBmYWxzZSwgZmlsZUlucHV0LmZpbGVzKTsKLX0KLXZhciBpbWFn
ZURhdGEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKS5nZXRDb250ZXh0KCIyZCIp
LmNyZWF0ZUltYWdlRGF0YSgxMCwxMCk7Ci1mb3IgKHZhciBpID0gMDsgaSA8IGltYWdlRGF0YS5k
YXRhLmxlbmd0aCAqIDQ7IGkrKykKLSAgICBpbWFnZURhdGEuZGF0YVtpXSA9IGkgJSAyNTY7Ci12
YXIgbXV0YXRlZEltYWdlRGF0YSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpLmdl
dENvbnRleHQoIjJkIikuY3JlYXRlSW1hZ2VEYXRhKDEwLDEwKTsKLWZvciAodmFyIGkgPSAwOyBp
IDwgaW1hZ2VEYXRhLmRhdGEubGVuZ3RoICogNDsgaSsrKQotICAgIG11dGF0ZWRJbWFnZURhdGEu
ZGF0YVtpXSA9IGkgJSAyNTY7Ci10cnlQb3N0TWVzc2FnZSgnaW1hZ2VEYXRhJywgZmFsc2UsIGlt
YWdlRGF0YSk7Ci10cnlQb3N0TWVzc2FnZSgnbXV0YXRlZEltYWdlRGF0YScsIGZhbHNlLCBpbWFn
ZURhdGEpOwotZm9yICh2YXIgaSA9IDA7IGkgPCBpbWFnZURhdGEuZGF0YS5sZW5ndGggKiA0OyBp
KyspCi0gICAgbXV0YXRlZEltYWdlRGF0YS5kYXRhW2ldID0gMDsKLQotdHJ5UG9zdE1lc3NhZ2Uo
JyJkb25lIicpOwotPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3Bvc3RtZXNz
YWdlLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9wb3N0bWVz
c2FnZS1jbG9uZS5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVk
LnR4dAppbmRleCA0NDM1NGY5Li4zZTA0NDZhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQKQEAgLTUz
MCw2ICs1MzAsOSBAQCB3aW5kb3cuRE9NRXhjZXB0aW9uLlNFQ1VSSVRZX0VSUiBbbnVtYmVyXQog
d2luZG93LkRPTUV4Y2VwdGlvbi5TWU5UQVhfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0
aW9uLlRZUEVfTUlTTUFUQ0hfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLlVSTF9N
SVNNQVRDSF9FUlIgW251bWJlcl0KK3dpbmRvdy5ET01FeGNlcHRpb24uVElNRU9VVF9FUlIgW251
bWJlcl0KK3dpbmRvdy5ET01FeGNlcHRpb24uSU5WQUxJRF9OT0RFX1RZUEVfRVJSIFtudW1iZXJd
Cit3aW5kb3cuRE9NRXhjZXB0aW9uLkRBVEFfQ0xPTkVfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9N
RXhjZXB0aW9uLlZBTElEQVRJT05fRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLldS
T05HX0RPQ1VNRU5UX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUg
W29iamVjdCBET01FeGNlcHRpb25Qcm90b3R5cGVdCkBAIC01NTMsNiArNTU2LDkgQEAgd2luZG93
LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuU0VDVVJJVFlfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9N
RXhjZXB0aW9uLnByb3RvdHlwZS5TWU5UQVhfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0
aW9uLnByb3RvdHlwZS5UWVBFX01JU01BVENIX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2Vw
dGlvbi5wcm90b3R5cGUuVVJMX01JU01BVENIX0VSUiBbbnVtYmVyXQord2luZG93LkRPTUV4Y2Vw
dGlvbi5wcm90b3R5cGUuVElNRU9VVF9FUlIgW251bWJlcl0KK3dpbmRvdy5ET01FeGNlcHRpb24u
cHJvdG90eXBlLklOVkFMSURfTk9ERV9UWVBFX0VSUiBbbnVtYmVyXQord2luZG93LkRPTUV4Y2Vw
dGlvbi5wcm90b3R5cGUuREFUQV9DTE9ORV9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRp
b24ucHJvdG90eXBlLlZBTElEQVRJT05fRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9u
LnByb3RvdHlwZS5XUk9OR19ET0NVTUVOVF9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRp
b24ucHJvdG90eXBlLnRvU3RyaW5nIFtmdW5jdGlvbl0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dCBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dAppbmRleCAwMWZjM2M2Li4yNjA4
YzZhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVj
dGF0aW9ucy50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBl
Y3RhdGlvbnMudHh0CkBAIC0xNjYwLDkgKzE2NjAsNiBAQCBCVUdDUjI0MTI2IDogZmFzdC9kb20v
SFRNTElucHV0RWxlbWVudC9zaXplLWF0dHJpYnV0ZS5odG1sID0gRkFJTAogLy8gRmxha3kgdGlt
ZW91dHMgZmlyc3QgYXBwZWFyaW5nIGF0IHIyNzc2NCAod2Via2l0IDQ4OTQ3KQogQlVHQ1I5Nzk4
IFdJTiA6IGh0dHAvdGVzdHMvY29va2llcy9tdWx0aXBsZS1jb29raWVzLmh0bWwgPSBUSU1FT1VU
IFBBU1MKIAotLy8gV2ViS2l0IHVwZGF0ZTogNDkyMTM6NDkyMjEKLUJVR0NSMjQwNjMgOiBmYXN0
L2RvbS9XaW5kb3cvd2luZG93LXBvc3RtZXNzYWdlLWNsb25lLmh0bWwgPSBGQUlMCi0KIC8vIEdv
dCBzbG93IHdpdGggVjggdXBkYXRlIHRvIDEuMy4xNS4gRGVidWcgbG9nZ2luZyBwZXJoYXBzPwog
QlVHQ1IyNDE4MiBERUJVRyBTTE9XIDogZmFzdC9mb3Jtcy9pbnB1dC1pbXBsaWNpdC1sZW5ndGgt
bGltaXQuaHRtbCA9IFBBU1MKIEJVR0NSMjQxODIgREVCVUcgU0xPVyA6IGZhc3QvZm9ybXMvaW5w
dXQtbWF4bGVuZ3RoLmh0bWwgPSBQQVNTCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9xdC13azIvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL3F0LXdrMi9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3Bl
cnRpZXMtZXhwZWN0ZWQudHh0CmluZGV4IGM4NWNmMTkuLmRiMGEwNDIgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL3F0LXdrMi9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRp
ZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0LXdrMi9mYXN0L2Rv
bS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0CkBAIC01MjgsNiArNTI4LDkg
QEAgd2luZG93LkRPTUV4Y2VwdGlvbi5TRUNVUklUWV9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01F
eGNlcHRpb24uU1lOVEFYX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5UWVBFX01J
U01BVENIX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5VUkxfTUlTTUFUQ0hfRVJS
IFtudW1iZXJdCit3aW5kb3cuRE9NRXhjZXB0aW9uLlRJTUVPVVRfRVJSIFtudW1iZXJdCit3aW5k
b3cuRE9NRXhjZXB0aW9uLklOVkFMSURfTk9ERV9UWVBFX0VSUiBbbnVtYmVyXQord2luZG93LkRP
TUV4Y2VwdGlvbi5EQVRBX0NMT05FX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5W
QUxJREFUSU9OX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5XUk9OR19ET0NVTUVO
VF9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlIFtvYmplY3QgRE9N
RXhjZXB0aW9uUHJvdG90eXBlXQpAQCAtNTUxLDYgKzU1NCw5IEBAIHdpbmRvdy5ET01FeGNlcHRp
b24ucHJvdG90eXBlLlNFQ1VSSVRZX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5w
cm90b3R5cGUuU1lOVEFYX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5
cGUuVFlQRV9NSVNNQVRDSF9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90
eXBlLlVSTF9NSVNNQVRDSF9FUlIgW251bWJlcl0KK3dpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90
eXBlLlRJTUVPVVRfRVJSIFtudW1iZXJdCit3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5J
TlZBTElEX05PREVfVFlQRV9FUlIgW251bWJlcl0KK3dpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90
eXBlLkRBVEFfQ0xPTkVfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlw
ZS5WQUxJREFUSU9OX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUu
V1JPTkdfRE9DVU1FTlRfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlw
ZS50b1N0cmluZyBbZnVuY3Rpb25dCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9x
dC9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vcXQvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVj
dGVkLnR4dAppbmRleCA1NGMxMDc5Li5jY2ZkMjQ0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9xdC9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJv
cGVydGllcy1leHBlY3RlZC50eHQKQEAgLTUyOCw2ICs1MjgsOSBAQCB3aW5kb3cuRE9NRXhjZXB0
aW9uLlNFQ1VSSVRZX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5TWU5UQVhfRVJS
IFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLlRZUEVfTUlTTUFUQ0hfRVJSIFtudW1iZXJd
CiB3aW5kb3cuRE9NRXhjZXB0aW9uLlVSTF9NSVNNQVRDSF9FUlIgW251bWJlcl0KK3dpbmRvdy5E
T01FeGNlcHRpb24uVElNRU9VVF9FUlIgW251bWJlcl0KK3dpbmRvdy5ET01FeGNlcHRpb24uSU5W
QUxJRF9OT0RFX1RZUEVfRVJSIFtudW1iZXJdCit3aW5kb3cuRE9NRXhjZXB0aW9uLkRBVEFfQ0xP
TkVfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLlZBTElEQVRJT05fRVJSIFtudW1i
ZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLldST05HX0RPQ1VNRU5UX0VSUiBbbnVtYmVyXQogd2lu
ZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUgW29iamVjdCBET01FeGNlcHRpb25Qcm90b3R5cGVd
CkBAIC01NTEsNiArNTU0LDkgQEAgd2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuU0VDVVJJ
VFlfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5TWU5UQVhfRVJS
IFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5UWVBFX01JU01BVENIX0VS
UiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuVVJMX01JU01BVENIX0VS
UiBbbnVtYmVyXQord2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuVElNRU9VVF9FUlIgW251
bWJlcl0KK3dpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlLklOVkFMSURfTk9ERV9UWVBFX0VS
UiBbbnVtYmVyXQord2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuREFUQV9DTE9ORV9FUlIg
W251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlLlZBTElEQVRJT05fRVJSIFtu
dW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5XUk9OR19ET0NVTUVOVF9FUlIg
W251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlLnRvU3RyaW5nIFtmdW5jdGlv
bl0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0b3Jl
LWJhc2ljcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9vYmpl
Y3RzdG9yZS1iYXNpY3MtZXhwZWN0ZWQudHh0CmluZGV4IDIzOTQ3NDAuLjdhMzRhMWIgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0b3JlLWJhc2ljcy1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0c3Rv
cmUtYmFzaWNzLWV4cGVjdGVkLnR4dApAQCAtNTYsNyArNTYsNyBAQCBzdG9yZS5hZGQoe3g6ICdm
b28nfSwgdGVzdERhdGUpCiBUcnkgdG8gaW5zZXJ0IGEgdmFsdWUgbm90IGhhbmRsZWQgYnkgc3Ry
dWN0dXJlZCBjbG9uZToKIHN0b3JlLmFkZCh7eDogJ2JhcicsIHk6IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdjb25zb2xlJyl9LCAnYmFyJykKIFBBU1MgRXhjZXB0aW9uIHRocm93bgotUEFTUyBj
b2RlIGlzIERPTUV4Y2VwdGlvbi5OT1RfU1VQUE9SVEVEX0VSUgorUEFTUyBjb2RlIGlzIERPTUV4
Y2VwdGlvbi5EQVRBX0NMT05FX0VSUgogVHJ5IHRvIGluc2VydCBkYXRhIHdoZXJlIGtleSBwYXRo
IHlpZWxkcyBhIERhdGUga2V5Ogogc3RvcmUuYWRkKHt4OiB0ZXN0RGF0ZUIsIHk6ICd2YWx1ZSd9
LCAna2V5JykKIGFkZFN1Y2Nlc3MoKToKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL29iamVjdHN0b3JlLWJhc2ljcy5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvb2JqZWN0c3RvcmUtYmFzaWNzLmh0bWwKaW5kZXggYjJlNzNlZS4uYjc2OTU4NSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0c3RvcmUtYmFz
aWNzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0c3RvcmUt
YmFzaWNzLmh0bWwKQEAgLTE1NCw3ICsxNTQsNyBAQCBmdW5jdGlvbiBhZGREYXRlU3VjY2Vzcygp
CiAgICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgICAgIHRlc3RQYXNzZWQoIkV4Y2VwdGlvbiB0aHJv
d24iKTsKICAgICAgICAgY29kZSA9IGVyci5jb2RlOwotICAgICAgICBzaG91bGRCZSgiY29kZSIs
ICJET01FeGNlcHRpb24uTk9UX1NVUFBPUlRFRF9FUlIiKTsKKyAgICAgICAgc2hvdWxkQmUoImNv
ZGUiLCAiRE9NRXhjZXB0aW9uLkRBVEFfQ0xPTkVfRVJSIik7CiAgICAgfQogCiAgICAgZGVidWco
IlRyeSB0byBpbnNlcnQgZGF0YSB3aGVyZSBrZXkgcGF0aCB5aWVsZHMgYSBEYXRlIGtleToiKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAxMmY3OTdhLi4wNGU4OTEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODIg
QEAKKzIwMTEtMDYtMjkgIEx1a2UgWmFya28gIDxsdWtlemFya29AZ21haWwuY29tPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBIVE1MNSBTdHJ1
Y3R1cmVkIENsb25lIGFsZ29yaXRobSAoaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1h
cHBzL2N1cnJlbnQtd29yay9tdWx0aXBhZ2UvdXJscy5odG1sI3NhZmUtcGFzc2luZy1vZi1zdHJ1
Y3R1cmVkLWRhdGEpIGhhcyBiZWVuIHVwZGF0ZWQgc2luY2UgdGhlIFY4IHZlcnNpb24gb2YgU2Vy
aWFsaXplZFNjcmlwdFZhbHVlIHdhcyBmaXJzdCBpbXBsZW1lbnRlZC4gVGhpcyBwYXRjaCBhaW1z
IHRvIGJyaW5nIHRoaXMgaW1wbGVtZW50YXRpb24gdXAgdG8gZGF0ZS4gSXQ6CisKKyAgICAgICAg
LSBJbnRyb2R1Y2VzIHRoZSBuZXcgSFRNTDUgRE9NIGVycm9yIGNvZGVzIGZvciBUSU1FT1VUX0VS
UiwgSU5WQUxJRF9OT0RFX1RZUEVfRVJSLCBEQVRBX0NMT05FX0VSUgorICAgICAgICAtIEhhbmRs
ZXMgY3ljbGljIHN0cnVjdHVyZXMgYW5kIGVxdWFsaXR5IG9mIHJlZmVyZW5jZSBwcmVzZXJ2YXRp
b24gZm9yIGNsb25lZCB2YWx1ZXMKKyAgICAgICAgLSBBbGxvd3MgRGF0YVZpZXdzIHRvIGJlIGNv
bnN0cnVjdGVkIG9uIHRoZSBuYXRpdmUgc2lkZSB1c2luZyB0aGUgZXhpc3Rpbmcgd3JhcHBlciB0
ZWNobmlxdWVzCisgICAgICAgIC0gQW1lbmRzIHRlc3RzIGFuZCBpbnRyb2R1Y2VzIG5ldyBvbmVz
IHRvIGNoZWNrIGZvciBjb3JyZWN0bmVzcyAodGhlIGJ1bGsgb2YgdGhlIHBhdGNoKQorCisgICAg
ICAgIFRoZSBwYXRjaCBwZXJtaXRzIHRoZSBjbG9uaW5nIG9mIEphdmFTY3JpcHQgdHlwZWQgYXJy
YXlzLiBUaGlzIGZ1bmN0aW9uYWxpdHkgaXMgaW4gYWN0aXZlIHVzZSBhbHJlYWR5IGFuZCB3YXMg
c3VwcG9ydGVkIChzb21ld2hhdCBpbmVmZmljaWVudGx5KSBieSB0aGUgZXhpc3RpbmcgY29kZSB0
aHJvdWdoIGFuIGFydGlmYWN0IG9mIGltcGxlbWVudGF0aW9uLgorICAgICAgICAKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYzNDgxCisKKyAgICAgICAg
VGVzdHM6IGZhc3QvY2FudmFzL3dlYmdsL2FycmF5LW1lc3NhZ2UtcGFzc2luZy5odG1sCisgICAg
ICAgICAgICAgICBmYXN0L2RvbS9XaW5kb3cvd2luZG93LXBvc3RtZXNzYWdlLWNsb25lLmh0bWwK
KyAgICAgICAgICAgICAgIGZhc3QvZG9tL1dpbmRvdy93aW5kb3ctcG9zdG1lc3NhZ2UtY2xvbmUt
ZGVlcC1hcnJheS5odG1sCisgICAgICAgICAgICAgICBmYXN0L2RvbS9XaW5kb3cvd2luZG93LXBv
c3RtZXNzYWdlLWNsb25lLXJlYWxseS1kZWVwLWFycmF5Lmh0bWwKKworICAgICAgICAqIGJpbmRp
bmdzL3Y4L1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOEdj
SGFuZGxlTWFwOjpWOEhhbmRsZVB0ckhhc2g6OmNvbnRhaW5zKToKKyAgICAgICAgKFdlYkNvcmU6
OlY4R2NIYW5kbGVNYXA6OlY4SGFuZGxlUHRySGFzaDo6dHJ5R2V0KToKKyAgICAgICAgKFdlYkNv
cmU6OlY4R2NIYW5kbGVNYXA6OlY4SGFuZGxlUHRySGFzaDo6c2V0KToKKyAgICAgICAgKFdlYkNv
cmU6OlY4R2NIYW5kbGVNYXA6OlY4SGFuZGxlUHRySGFzaDo6c2l6ZSk6CisgICAgICAgIChXZWJD
b3JlOjpWOEdjSGFuZGxlTWFwOjpXcml0ZXI6OndyaXRlVmVyc2lvbik6CisgICAgICAgIChXZWJD
b3JlOjpWOEdjSGFuZGxlTWFwOjpXcml0ZXI6OndyaXRlQXJyYXlCdWZmZXIpOgorICAgICAgICAo
V2ViQ29yZTo6VjhHY0hhbmRsZU1hcDo6V3JpdGVyOjp3cml0ZUFycmF5QnVmZmVyVmlldyk6Cisg
ICAgICAgIChXZWJDb3JlOjpWOEdjSGFuZGxlTWFwOjpXcml0ZXI6OndyaXRlT2JqZWN0T2Zmc2V0
KToKKyAgICAgICAgKFdlYkNvcmU6OlY4R2NIYW5kbGVNYXA6OldyaXRlcjo6d3JpdGVDaGVja1Jl
Zik6CisgICAgICAgIChXZWJDb3JlOjpWOEdjSGFuZGxlTWFwOjpXcml0ZXI6OndyaXRlR2VuZXJh
dGVGcmVzaE9iamVjdCk6CisgICAgICAgIChXZWJDb3JlOjpWOEdjSGFuZGxlTWFwOjpXcml0ZXI6
OndyaXRlR2VuZXJhdGVGcmVzaEFycmF5KToKKyAgICAgICAgKFdlYkNvcmU6OlY4R2NIYW5kbGVN
YXA6OldyaXRlcjo6ZG9Xcml0ZUFycmF5QnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlY4R2NI
YW5kbGVNYXA6OlNlcmlhbGl6ZXI6OlNlcmlhbGl6ZXIpOgorICAgICAgICAoV2ViQ29yZTo6VjhH
Y0hhbmRsZU1hcDo6U2VyaWFsaXplcjo6c2VyaWFsaXplKToKKyAgICAgICAgKFdlYkNvcmU6OlY4
R2NIYW5kbGVNYXA6OlNlcmlhbGl6ZXI6OlN0YXRlQmFzZTo6ZXhlY0RlcHRoKToKKyAgICAgICAg
KFdlYkNvcmU6OlY4R2NIYW5kbGVNYXA6OlNlcmlhbGl6ZXI6OkFic3RyYWN0T2JqZWN0U3RhdGU6
OkFic3RyYWN0T2JqZWN0U3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6VjhHY0hhbmRsZU1hcDo6
U2VyaWFsaXplcjo6QWJzdHJhY3RPYmplY3RTdGF0ZTo6YWR2YW5jZSk6CisgICAgICAgIChXZWJD
b3JlOjpWOEdjSGFuZGxlTWFwOjpTZXJpYWxpemVyOjpBYnN0cmFjdE9iamVjdFN0YXRlOjpleGVj
RGVwdGgpOgorICAgICAgICAoV2ViQ29yZTo6VjhHY0hhbmRsZU1hcDo6U2VyaWFsaXplcjo6ZXhl
Y0RlcHRoKToKKyAgICAgICAgKFdlYkNvcmU6OlY4R2NIYW5kbGVNYXA6OlNlcmlhbGl6ZXI6OnB1
c2gpOgorICAgICAgICAoV2ViQ29yZTo6VjhHY0hhbmRsZU1hcDo6U2VyaWFsaXplcjo6cG9wKToK
KyAgICAgICAgKFdlYkNvcmU6OlY4R2NIYW5kbGVNYXA6OlNlcmlhbGl6ZXI6OmhhbmRsZUVycm9y
KToKKyAgICAgICAgKFdlYkNvcmU6OlY4R2NIYW5kbGVNYXA6OlNlcmlhbGl6ZXI6OndyaXRlTnVs
bCk6CisgICAgICAgIChXZWJDb3JlOjpWOEdjSGFuZGxlTWFwOjpTZXJpYWxpemVyOjp3cml0ZUFu
ZEdyZXlBcnJheUJ1ZmZlclZpZXcpOgorICAgICAgICAoV2ViQ29yZTo6VjhHY0hhbmRsZU1hcDo6
U2VyaWFsaXplcjo6d3JpdGVBcnJheUJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpWOEdjSGFu
ZGxlTWFwOjpTZXJpYWxpemVyOjpncmV5T2JqZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OlY4R2NI
YW5kbGVNYXA6OlNlcmlhbGl6ZXI6OmRvU2VyaWFsaXplKToKKyAgICAgICAgKFdlYkNvcmU6OlY4
R2NIYW5kbGVNYXA6OlJlYWRlcjo6UmVhZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlY4R2NIYW5k
bGVNYXA6OlJlYWRlcjo6cmVhZCk6CisgICAgICAgIChXZWJDb3JlOjpWOEdjSGFuZGxlTWFwOjpS
ZWFkZXI6OnJlYWRWZXJzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlY4R2NIYW5kbGVNYXA6OlJl
YWRlcjo6c2V0VmVyc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpWOEdjSGFuZGxlTWFwOjpSZWFk
ZXI6OnJlYWRTdWJUYWcpOgorICAgICAgICAoV2ViQ29yZTo6VjhHY0hhbmRsZU1hcDo6UmVhZGVy
Ojpkb1JlYWRBcnJheUJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpWOEdjSGFuZGxlTWFwOjpS
ZWFkZXI6OnJlYWRBcnJheUJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpWOEdjSGFuZGxlTWFw
OjpSZWFkZXI6OnJlYWRBcnJheUJ1ZmZlclZpZXcpOgorICAgICAgICAoV2ViQ29yZTo6VjhHY0hh
bmRsZU1hcDo6RGVzZXJpYWxpemVyOjpEZXNlcmlhbGl6ZXIpOgorICAgICAgICAoV2ViQ29yZTo6
VjhHY0hhbmRsZU1hcDo6RGVzZXJpYWxpemVyOjpkZXNlcmlhbGl6ZSk6CisgICAgICAgIChXZWJD
b3JlOjpWOEdjSGFuZGxlTWFwOjpEZXNlcmlhbGl6ZXI6OnByZXBhcmVFbXB0eUFycmF5KToKKyAg
ICAgICAgKFdlYkNvcmU6OlY4R2NIYW5kbGVNYXA6OkRlc2VyaWFsaXplcjo6Y29uc3VtZVRvcE9m
U3RhY2spOgorICAgICAgICAoV2ViQ29yZTo6VjhHY0hhbmRsZU1hcDo6RGVzZXJpYWxpemVyOjpm
aW5pc2hBcnJheSk6CisgICAgICAgIChXZWJDb3JlOjpWOEdjSGFuZGxlTWFwOjpEZXNlcmlhbGl6
ZXI6OnByZXBhcmVFbXB0eU9iamVjdCk6CisgICAgICAgIChXZWJDb3JlOjpWOEdjSGFuZGxlTWFw
OjpEZXNlcmlhbGl6ZXI6OmZpbmlzaE9iamVjdCk6CisgICAgICAgIChXZWJDb3JlOjpWOEdjSGFu
ZGxlTWFwOjpEZXNlcmlhbGl6ZXI6OmZpbmlzaFNwYXJzZUFycmF5KToKKyAgICAgICAgKFdlYkNv
cmU6OlY4R2NIYW5kbGVNYXA6OkRlc2VyaWFsaXplcjo6cHVzaE9iamVjdFJlZmVyZW5jZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpWOEdjSGFuZGxlTWFwOjpEZXNlcmlhbGl6ZXI6OmdldE9iamVjdFJl
ZmVyZW5jZSk6CisgICAgICAgIChXZWJDb3JlOjpWOEdjSGFuZGxlTWFwOjpEZXNlcmlhbGl6ZXI6
Om9iamVjdFJlZmVyZW5jZUNvdW50KToKKyAgICAgICAgKFdlYkNvcmU6OlY4R2NIYW5kbGVNYXA6
OkRlc2VyaWFsaXplcjo6b3Blbk5ld0NvbXBvc2l0ZSk6CisgICAgICAgIChXZWJDb3JlOjpWOEdj
SGFuZGxlTWFwOjpEZXNlcmlhbGl6ZXI6OmNsb3NlQ29tcG9zaXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlKToKKyAgICAg
ICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhEYXRhVmlld0N1c3RvbS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpWOERhdGFWaWV3Ojpjb25zdHJ1Y3RvckNhbGxiYWNrKToKKyAgICAgICAgKiBkb20v
RE9NQ29yZUV4Y2VwdGlvbi5pZGw6CisgICAgICAgICogZG9tL0V4Y2VwdGlvbkNvZGUuY3BwOgor
ICAgICAgICAqIGRvbS9FeGNlcHRpb25Db2RlLmg6CisgICAgICAgICogaHRtbC9jYW52YXMvRGF0
YVZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0YVZpZXc6OmNyZWF0ZSk6CisgICAgICAg
ICogaHRtbC9jYW52YXMvRGF0YVZpZXcuaDoKKwogMjAxMS0wNi0yOSAgRW1pbCBBIEVrbHVuZCAg
PGVhZUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TZXJpYWxpemVkU2NyaXB0VmFs
dWUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2VyaWFsaXplZFNjcmlwdFZhbHVl
LmNwcAppbmRleCBjYjQ0ZjAyLi42YjlmYzZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKQEAgLTMxLDIwICszMSw0MiBA
QAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5o
IgogCisjaW5jbHVkZSAiQXJyYXlCdWZmZXIuaCIKKyNpbmNsdWRlICJBcnJheUJ1ZmZlclZpZXcu
aCIKICNpbmNsdWRlICJCbG9iLmgiCiAjaW5jbHVkZSAiQnl0ZUFycmF5LmgiCiAjaW5jbHVkZSAi
Q2FudmFzUGl4ZWxBcnJheS5oIgorI2luY2x1ZGUgIkRhdGFWaWV3LmgiCiAjaW5jbHVkZSAiRXhj
ZXB0aW9uQ29kZS5oIgogI2luY2x1ZGUgIkZpbGUuaCIKICNpbmNsdWRlICJGaWxlTGlzdC5oIgor
I2luY2x1ZGUgIkZsb2F0MzJBcnJheS5oIgorI2luY2x1ZGUgIkZsb2F0NjRBcnJheS5oIgogI2lu
Y2x1ZGUgIkltYWdlRGF0YS5oIgorI2luY2x1ZGUgIkludDE2QXJyYXkuaCIKKyNpbmNsdWRlICJJ
bnQzMkFycmF5LmgiCisjaW5jbHVkZSAiSW50OEFycmF5LmgiCiAjaW5jbHVkZSAiU2hhcmVkQnVm
ZmVyLmgiCisjaW5jbHVkZSAiVWludDE2QXJyYXkuaCIKKyNpbmNsdWRlICJVaW50MzJBcnJheS5o
IgorI2luY2x1ZGUgIlVpbnQ4QXJyYXkuaCIKKyNpbmNsdWRlICJWOEFycmF5QnVmZmVyLmgiCisj
aW5jbHVkZSAiVjhBcnJheUJ1ZmZlclZpZXcuaCIKICNpbmNsdWRlICJWOEJpbmRpbmcuaCIKICNp
bmNsdWRlICJWOEJsb2IuaCIKKyNpbmNsdWRlICJWOERhdGFWaWV3LmgiCiAjaW5jbHVkZSAiVjhG
aWxlLmgiCiAjaW5jbHVkZSAiVjhGaWxlTGlzdC5oIgorI2luY2x1ZGUgIlY4RmxvYXQzMkFycmF5
LmgiCisjaW5jbHVkZSAiVjhGbG9hdDY0QXJyYXkuaCIKICNpbmNsdWRlICJWOEltYWdlRGF0YS5o
IgorI2luY2x1ZGUgIlY4SW50MTZBcnJheS5oIgorI2luY2x1ZGUgIlY4SW50MzJBcnJheS5oIgor
I2luY2x1ZGUgIlY4SW50OEFycmF5LmgiCiAjaW5jbHVkZSAiVjhQcm94eS5oIgorI2luY2x1ZGUg
IlY4VWludDE2QXJyYXkuaCIKKyNpbmNsdWRlICJWOFVpbnQzMkFycmF5LmgiCisjaW5jbHVkZSAi
VjhVaW50OEFycmF5LmgiCiAjaW5jbHVkZSAiVjhVdGlsaXRpZXMuaCIKIAogI2luY2x1ZGUgPHd0
Zi9Bc3NlcnRpb25zLmg+CkBAIC01MiwxMSArNzQsNzYgQEAKICNpbmNsdWRlIDx3dGYvVmVjdG9y
Lmg+CiAKIC8vIEZJWE1FOiBjb25zaWRlciBjcmFzaGluZyBpbiBkZWJ1ZyBtb2RlIG9uIGRlc2Vy
aWFsaXphdGlvbiBlcnJvcnMKKy8vIE5PVEU6IGJlIHN1cmUgdG8gY2hhbmdlIHdpcmVGb3JtYXRW
ZXJzaW9uIGFzIG5lY2Vzc2FyeSEKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBuYW1lc3BhY2Ug
ewogCisvLyBUaGlzIGNvZGUgaW1wbGVtZW50cyB0aGUgSFRNTDUgU3RydWN0dXJlZCBDbG9uZSBh
bGdvcml0aG06CisvLyBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVu
dC13b3JrL211bHRpcGFnZS91cmxzLmh0bWwjc2FmZS1wYXNzaW5nLW9mLXN0cnVjdHVyZWQtZGF0
YQorCisvLyBUaGUgaGFzaHRhYmxlIHdyYXBwZXIgYmVsb3cgaXMgdXNlZCB0byBpbXBsZW1lbnQg
dGhlICdtZW1vcnknIG9iamVjdCByZWZlcmVuY2VkIGluIHRoZSBzdGFuZGFyZC4KKy8vIFdlIGNh
bid0IHNpbXBseSBjcmVhdGUgYSB0YWJsZSBmcm9tIHY4OjpIYW5kbGVzIHRvIFQgYmVjYXVzZSB0
aGVyZSBpcyBub3QgYSBvbmUgdG8gb25lIGNvcnJlc3BvbmRlbmNlCisvLyBiZXR3ZWVuIGEgdjg6
OkhhbmRsZSBhbmQgdGhlIHVuZGVybHlpbmcgSmF2YVNjcmlwdCBvYmplY3QgaXQgaG9sZHMgKGlm
IGFueSkuIEZ1cnRoZXJtb3JlLCB0aGUKKy8vIGFkZHJlc3MgcmV0dXJuZWQgYnkgYSBIYW5kbGUn
cyBvcGVyYXRvciogaXMgcmVsYXRlZCB0byB0aGUgaGFuZGxlLCBub3QgdG8gdGhlIG9iamVjdCBp
dCBob2xkcy4KKworLy8gVGhpcyBpbXBsZW1lbnRhdGlvbiB1c2VzIEdldElkZW50aXR5SGFzaCgp
LCB3aGljaCBzZXRzIGEgaGlkZGVuIHByb3BlcnR5IG9uIHRoZSBvYmplY3QgY29udGFpbmluZwor
Ly8gYSByYW5kb20gaW50ZWdlciAob3IgcmV0dXJucyB0aGUgb25lIHRoYXQgaGFkIGJlZW4gcHJl
dmlvdXNseSBzZXQpLiBUaGlzIGVuc3VyZXMgdGhhdCB0aGUgdGFibGUKKy8vIG5ldmVyIG5lZWRz
IHRvIGJlIHJlYnVpbHQgYWNyb3NzIGdhcmJhZ2UgY29sbGVjdGlvbnMgYXQgdGhlIGV4cGVuc2Ug
b2YgZG9pbmcgYWRkaXRpb25hbCBhbGxvY2F0aW9uCisvLyBhbmQgbWFraW5nIG1vcmUgcm91bmQg
dHJpcHMgaW50byBWOC4gTm90ZSB0aGF0IHNpbmNlIEdldElkZW50aXR5SGFzaCgpIGlzIGRlZmlu
ZWQgb25seSBvbgorLy8gdjg6Ok9iamVjdHMsIHRoaXMgVjhHY0hhbmRsZU1hcCBjYW5ub3QgYmUg
dXNlZCB0byBtYXAgdjg6OlN0cmluZ3MgdG8gVCAoYmVjYXVzZSB0aGUgcHVibGljIFY4IEFQSQor
Ly8gY29uc2lkZXJzIGEgdjg6OlN0cmluZyB0byBiZSBhIHY4OjpQcmltaXRpdmUpLgorCisvLyBU
aGlzIHdyYXBwZXIgZXhpc3RzIHRvIG1ha2UgdGhlIGNvZGUgZWFzaWVyIHRvIHVwZGF0ZSBzaG91
bGQgdGhlIFY4IEFQSSBiZSBleHRlbmRlZCB0byBzdXBwb3J0CisvLyBmYXN0ZXIgbmF0aXZlLXNp
ZGUgbWFwcyB3aXRoIEphdmFTY3JpcHQgb2JqZWN0cyBhcyBrZXlzLgorCit0ZW1wbGF0ZTx0eXBl
bmFtZSBHY09iamVjdCwgdHlwZW5hbWUgVD4KK2NsYXNzIFY4R2NIYW5kbGVNYXAgeworcHJpdmF0
ZToKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBHPgorICAgIHN0cnVjdCBWOEhhbmRsZVB0ckhhc2gg
eworICAgICAgICBzdGF0aWMgdW5zaWduZWQgaGFzaChjb25zdCBHKiBrZXkpCisgICAgICAgIHsK
KyAgICAgICAgICAgIHY4OjpIYW5kbGU8Rz4gb2JqSGFuZGxlKGNvbnN0X2Nhc3Q8Ryo+KGtleSkp
OworICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVuc2lnbmVkPihvYmpIYW5kbGUtPkdl
dElkZW50aXR5SGFzaCgpKTsKKyAgICAgICAgfQorICAgICAgICBzdGF0aWMgYm9vbCBlcXVhbChj
b25zdCBHKiBhLCBjb25zdCBHKiBiKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gdjg6
OkhhbmRsZTxHPihjb25zdF9jYXN0PEcqPihhKSkgPT0gdjg6OkhhbmRsZTxHPihjb25zdF9jYXN0
PEcqPihiKSk7CisgICAgICAgIH0KKyAgICAgICAgc3RhdGljIGNvbnN0IGJvb2wgc2FmZVRvQ29t
cGFyZVRvRW1wdHlPckRlbGV0ZWQgPSBmYWxzZTsKKyAgICB9OworCisgICAgdHlwZWRlZiBXVEY6
Okhhc2hNYXA8R2NPYmplY3QqLCBULCBWOEhhbmRsZVB0ckhhc2g8R2NPYmplY3Q+ID4gSGFuZGxl
VG9UOworICAgIEhhbmRsZVRvVCBtX21hcDsKKworcHVibGljOgorICAgIGJvb2wgY29udGFpbnMo
Y29uc3Qgdjg6OkhhbmRsZTxHY09iamVjdD4mIGhhbmRsZSkKKyAgICB7CisgICAgICAgIHJldHVy
biBtX21hcC5jb250YWlucygqaGFuZGxlKTsKKyAgICB9CisKKyAgICBib29sIHRyeUdldChjb25z
dCB2ODo6SGFuZGxlPEdjT2JqZWN0PiYgaGFuZGxlLCBUJiB2YWx1ZU91dCkKKyAgICB7CisgICAg
ICAgIGlmIChtX21hcC5jb250YWlucygqaGFuZGxlKSkgeworICAgICAgICAgICAgdmFsdWVPdXQg
PSBtX21hcC5nZXQoKmhhbmRsZSk7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAg
fQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgdm9pZCBzZXQoY29uc3Qgdjg6
OkhhbmRsZTxHY09iamVjdD4mIGhhbmRsZSwgY29uc3QgVCYgdmFsdWUpCisgICAgeworICAgICAg
ICBtX21hcC5zZXQoKmhhbmRsZSwgdmFsdWUpOworICAgIH0KKworICAgIHVpbnQzMl90IHNpemUo
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fbWFwLnNpemUoKTsKKyAgICB9Cit9OworCiB0eXBl
ZGVmIFVDaGFyIEJ1ZmZlclZhbHVlVHlwZTsKIAogLy8gU2VyaWFsaXphdGlvbiBmb3JtYXQgaXMg
YSBzZXF1ZW5jZSBvZiAodGFnLCBvcHRpb25hbCBkYXRhKQpAQCAtODEsNiArMTY4LDI1IEBAIGVu
dW0gU2VyaWFsaXphdGlvblRhZyB7CiAgICAgT2JqZWN0VGFnID0gJ3snLAogICAgIFNwYXJzZUFy
cmF5VGFnID0gJ0AnLAogICAgIFJlZ0V4cFRhZyA9ICdSJywKKyAgICBBcnJheUJ1ZmZlclRhZyA9
ICdCJywKKyAgICBBcnJheUJ1ZmZlclZpZXdUYWcgPSAnVicsCisgICAgT2JqZWN0UmVmZXJlbmNl
VGFnID0gJ14nLAorICAgIEdlbmVyYXRlRnJlc2hPYmplY3RUYWcgPSAnbycsCisgICAgR2VuZXJh
dGVGcmVzaEFycmF5VGFnID0gJ2EnLAorICAgIENoZWNrUmVmVGFnID0gJz8nLAorICAgIFZlcnNp
b25UYWcgPSAweEZGCit9OworCitlbnVtIEFycmF5QnVmZmVyVmlld1N1YlRhZyB7CisgICAgQnl0
ZUFycmF5VGFnID0gJ2InLAorICAgIFVuc2lnbmVkQnl0ZUFycmF5VGFnID0gJ0InLAorICAgIFNo
b3J0QXJyYXlUYWcgPSAndycsCisgICAgVW5zaWduZWRTaG9ydEFycmF5VGFnID0gJ1cnLAorICAg
IEludEFycmF5VGFnID0gJ2QnLAorICAgIFVuc2lnbmVkSW50QXJyYXlUYWcgPSAnRCcsCisgICAg
RmxvYXRBcnJheVRhZyA9ICdmJywKKyAgICBEb3VibGVBcnJheVRhZyA9ICdGJywKKyAgICBEYXRh
Vmlld1RhZyA9ICc/JwogfTsKIAogc3RhdGljIGJvb2wgc2hvdWxkQ2hlY2tGb3JDeWNsZXMoaW50
IGRlcHRoKQpAQCAtOTIsNiArMTk4LDkgQEAgc3RhdGljIGJvb2wgc2hvdWxkQ2hlY2tGb3JDeWNs
ZXMoaW50IGRlcHRoKQogICAgIHJldHVybiAhKGRlcHRoICYgKGRlcHRoIC0gMSkpOwogfQogCisv
LyBJbmNyZW1lbnQgdGhpcyBmb3IgZWFjaCBjaGFuZ2UgdG8gdGhlIHdpcmUgZm9ybWF0Lgorc3Rh
dGljIGNvbnN0IHVpbnQzMl90IHdpcmVGb3JtYXRWZXJzaW9uID0gMTsKKwogc3RhdGljIGNvbnN0
IGludCBtYXhEZXB0aCA9IDIwMDAwOwogCiAvLyBWYXJJbnQgZW5jb2RpbmcgY29uc3RhbnRzLgpA
QCAtMTU5LDYgKzI2OCwxMiBAQCBwdWJsaWM6CiAgICAgICAgIGRvV3JpdGVXZWJDb3JlU3RyaW5n
KHN0cmluZyk7CiAgICAgfQogCisgICAgdm9pZCB3cml0ZVZlcnNpb24oKQorICAgIHsKKyAgICAg
ICAgYXBwZW5kKFZlcnNpb25UYWcpOworICAgICAgICBkb1dyaXRlVWludDMyKHdpcmVGb3JtYXRW
ZXJzaW9uKTsKKyAgICB9CisKICAgICB2b2lkIHdyaXRlSW50MzIoaW50MzJfdCB2YWx1ZSkKICAg
ICB7CiAgICAgICAgIGFwcGVuZChJbnQzMlRhZyk7CkBAIC0yMTEsNiArMzI2LDQyIEBAIHB1Ymxp
YzoKICAgICAgICAgfQogICAgIH0KIAorICAgIHZvaWQgd3JpdGVBcnJheUJ1ZmZlcihjb25zdCBB
cnJheUJ1ZmZlciYgYXJyYXlCdWZmZXIpCisgICAgeworICAgICAgICBhcHBlbmQoQXJyYXlCdWZm
ZXJUYWcpOworICAgICAgICBkb1dyaXRlQXJyYXlCdWZmZXIoYXJyYXlCdWZmZXIpOworICAgIH0K
KworICAgIHZvaWQgd3JpdGVBcnJheUJ1ZmZlclZpZXcoY29uc3QgQXJyYXlCdWZmZXJWaWV3JiBh
cnJheUJ1ZmZlclZpZXcpCisgICAgeworICAgICAgICBhcHBlbmQoQXJyYXlCdWZmZXJWaWV3VGFn
KTsKKyNpZm5kZWYgTkRFQlVHCisgICAgICAgIGNvbnN0IEFycmF5QnVmZmVyJiBhcnJheUJ1ZmZl
ciA9ICphcnJheUJ1ZmZlclZpZXcuYnVmZmVyKCk7CisjZW5kaWYKKyAgICAgICAgQVNTRVJUKHN0
YXRpY19jYXN0PGNvbnN0IHVpbnQ4X3QqPihhcnJheUJ1ZmZlci5kYXRhKCkpICsgYXJyYXlCdWZm
ZXJWaWV3LmJ5dGVPZmZzZXQoKSA9PQorICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8Y29uc3Qg
dWludDhfdCo+KGFycmF5QnVmZmVyVmlldy5iYXNlQWRkcmVzcygpKSk7CisgICAgICAgIGlmIChh
cnJheUJ1ZmZlclZpZXcuaXNCeXRlQXJyYXkoKSkKKyAgICAgICAgICAgIGFwcGVuZChCeXRlQXJy
YXlUYWcpOworICAgICAgICBlbHNlIGlmIChhcnJheUJ1ZmZlclZpZXcuaXNVbnNpZ25lZEJ5dGVB
cnJheSgpKQorICAgICAgICAgICAgYXBwZW5kKFVuc2lnbmVkQnl0ZUFycmF5VGFnKTsKKyAgICAg
ICAgZWxzZSBpZiAoYXJyYXlCdWZmZXJWaWV3LmlzU2hvcnRBcnJheSgpKQorICAgICAgICAgICAg
YXBwZW5kKFNob3J0QXJyYXlUYWcpOworICAgICAgICBlbHNlIGlmIChhcnJheUJ1ZmZlclZpZXcu
aXNVbnNpZ25lZFNob3J0QXJyYXkoKSkKKyAgICAgICAgICAgIGFwcGVuZChVbnNpZ25lZFNob3J0
QXJyYXlUYWcpOworICAgICAgICBlbHNlIGlmIChhcnJheUJ1ZmZlclZpZXcuaXNJbnRBcnJheSgp
KQorICAgICAgICAgICAgYXBwZW5kKEludEFycmF5VGFnKTsKKyAgICAgICAgZWxzZSBpZiAoYXJy
YXlCdWZmZXJWaWV3LmlzVW5zaWduZWRJbnRBcnJheSgpKQorICAgICAgICAgICAgYXBwZW5kKFVu
c2lnbmVkSW50QXJyYXlUYWcpOworICAgICAgICBlbHNlIGlmIChhcnJheUJ1ZmZlclZpZXcuaXNG
bG9hdEFycmF5KCkpCisgICAgICAgICAgICBhcHBlbmQoRmxvYXRBcnJheVRhZyk7CisgICAgICAg
IGVsc2UgaWYgKGFycmF5QnVmZmVyVmlldy5pc0RvdWJsZUFycmF5KCkpCisgICAgICAgICAgICBh
cHBlbmQoRG91YmxlQXJyYXlUYWcpOworICAgICAgICBlbHNlIGlmIChhcnJheUJ1ZmZlclZpZXcu
aXNEYXRhVmlldygpKQorICAgICAgICAgICAgYXBwZW5kKERhdGFWaWV3VGFnKTsKKyAgICAgICAg
ZG9Xcml0ZVVpbnQzMihhcnJheUJ1ZmZlclZpZXcuYnl0ZU9mZnNldCgpKTsKKyAgICAgICAgZG9X
cml0ZVVpbnQzMihhcnJheUJ1ZmZlclZpZXcuYnl0ZUxlbmd0aCgpKTsKKyAgICB9CisKICAgICB2
b2lkIHdyaXRlSW1hZ2VEYXRhKHVpbnQzMl90IHdpZHRoLCB1aW50MzJfdCBoZWlnaHQsIGNvbnN0
IHVpbnQ4X3QqIHBpeGVsRGF0YSwgdWludDMyX3QgcGl4ZWxEYXRhTGVuZ3RoKQogICAgIHsKICAg
ICAgICAgYXBwZW5kKEltYWdlRGF0YVRhZyk7CkBAIC0yMzQsNiArMzg1LDEyIEBAIHB1YmxpYzoK
ICAgICAgICAgZG9Xcml0ZVVpbnQzMihsZW5ndGgpOwogICAgIH0KIAorICAgIHZvaWQgd3JpdGVP
YmplY3RPZmZzZXQodWludDMyX3Qgb2Zmc2V0KQorICAgIHsKKyAgICAgICAgYXBwZW5kKE9iamVj
dFJlZmVyZW5jZVRhZyk7CisgICAgICAgIGRvV3JpdGVVaW50MzIob2Zmc2V0KTsKKyAgICB9CisK
ICAgICB2b2lkIHdyaXRlT2JqZWN0KHVpbnQzMl90IG51bVByb3BlcnRpZXMpCiAgICAgewogICAg
ICAgICBhcHBlbmQoT2JqZWN0VGFnKTsKQEAgLTI1Myw3ICs0MTAsMzEgQEAgcHVibGljOgogICAg
ICAgICByZXR1cm4gbV9idWZmZXI7CiAgICAgfQogCisgICAgdm9pZCB3cml0ZUNoZWNrUmVmKHVp
bnQzMl90IG51bWJlck9mUmVmcykKKyAgICB7CisgICAgICAgIGFwcGVuZChDaGVja1JlZlRhZyk7
CisgICAgICAgIGRvV3JpdGVVaW50MzIobnVtYmVyT2ZSZWZzKTsKKyAgICB9CisKKyAgICB2b2lk
IHdyaXRlR2VuZXJhdGVGcmVzaE9iamVjdCgpCisgICAgeworICAgICAgICBhcHBlbmQoR2VuZXJh
dGVGcmVzaE9iamVjdFRhZyk7CisgICAgfQorCisgICAgdm9pZCB3cml0ZUdlbmVyYXRlRnJlc2hB
cnJheSh1aW50MzJfdCBsZW5ndGgpCisgICAgeworICAgICAgICBhcHBlbmQoR2VuZXJhdGVGcmVz
aEFycmF5VGFnKTsKKyAgICAgICAgZG9Xcml0ZVVpbnQzMihsZW5ndGgpOworICAgIH0KKwogcHJp
dmF0ZToKKyAgICB2b2lkIGRvV3JpdGVBcnJheUJ1ZmZlcihjb25zdCBBcnJheUJ1ZmZlciYgYXJy
YXlCdWZmZXIpCisgICAgeworICAgICAgICB1aW50MzJfdCBieXRlTGVuZ3RoID0gYXJyYXlCdWZm
ZXIuYnl0ZUxlbmd0aCgpOworICAgICAgICBkb1dyaXRlVWludDMyKGJ5dGVMZW5ndGgpOworICAg
ICAgICBhcHBlbmQoc3RhdGljX2Nhc3Q8Y29uc3QgdWludDhfdCo+KGFycmF5QnVmZmVyLmRhdGEo
KSksIGJ5dGVMZW5ndGgpOworICAgIH0KKwogICAgIHZvaWQgZG9Xcml0ZVN0cmluZyhjb25zdCBj
aGFyKiBkYXRhLCBpbnQgbGVuZ3RoKQogICAgIHsKICAgICAgICAgZG9Xcml0ZVVpbnQzMihzdGF0
aWNfY2FzdDx1aW50MzJfdD4obGVuZ3RoKSk7CkBAIC0zNDAsNiArNTIxLDcgQEAgcHVibGljOgog
ICAgIGVudW0gU3RhdHVzIHsKICAgICAgICAgU3VjY2VzcywKICAgICAgICAgSW5wdXRFcnJvciwK
KyAgICAgICAgRGF0YUNsb25lRXJyb3IsCiAgICAgICAgIEpTRXhjZXB0aW9uLAogICAgICAgICBK
U0ZhaWx1cmUKICAgICB9OwpAQCAtMzQ4LDcgKzUzMCw5IEBAIHB1YmxpYzoKICAgICAgICAgOiBt
X3dyaXRlcih3cml0ZXIpCiAgICAgICAgICwgbV90cnlDYXRjaCh0cnlDYXRjaCkKICAgICAgICAg
LCBtX2RlcHRoKDApCisgICAgICAgICwgbV9leGVjRGVwdGgoMCkKICAgICAgICAgLCBtX3N0YXR1
cyhTdWNjZXNzKQorICAgICAgICAsIG1fbmV4dE9iamVjdElkKDApCiAgICAgewogICAgICAgICBB
U1NFUlQoIXRyeUNhdGNoLkhhc0NhdWdodCgpKTsKICAgICB9CkBAIC0zNTYsNiArNTQwLDcgQEAg
cHVibGljOgogICAgIFN0YXR1cyBzZXJpYWxpemUodjg6OkhhbmRsZTx2ODo6VmFsdWU+IHZhbHVl
KQogICAgIHsKICAgICAgICAgdjg6OkhhbmRsZVNjb3BlIHNjb3BlOworICAgICAgICBtX3dyaXRl
ci53cml0ZVZlcnNpb24oKTsKICAgICAgICAgU3RhdGVCYXNlKiBzdGF0ZSA9IGRvU2VyaWFsaXpl
KHZhbHVlLCAwKTsKICAgICAgICAgd2hpbGUgKHN0YXRlKQogICAgICAgICAgICAgc3RhdGUgPSBz
dGF0ZS0+YWR2YW5jZSgqdGhpcyk7CkBAIC0zNjMsNyArNTQ4LDYgQEAgcHVibGljOgogICAgIH0K
IAogICAgIC8vIEZ1bmN0aW9ucyB1c2VkIGJ5IHNlcmlhbGl6YXRpb24gc3RhdGVzLgotCiAgICAg
U3RhdGVCYXNlKiBkb1NlcmlhbGl6ZSh2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdmFsdWUsIFN0YXRl
QmFzZSogbmV4dCk7CiAKICAgICBTdGF0ZUJhc2UqIGNoZWNrRXhjZXB0aW9uKFN0YXRlQmFzZSog
c3RhdGUpCkBAIC00MTEsNiArNTk1LDEwIEBAIHByaXZhdGU6CiAgICAgICAgIC8vIHN0YXRlLgog
ICAgICAgICB2aXJ0dWFsIFN0YXRlQmFzZSogYWR2YW5jZShTZXJpYWxpemVyJikgPSAwOwogCisg
ICAgICAgIC8vIFJldHVybnMgMSBpZiB0aGlzIHN0YXRlIGlzIGN1cnJlbnRseSBzZXJpYWxpemlu
ZyBhIHByb3BlcnR5CisgICAgICAgIC8vIHZpYSBhbiBhY2Nlc3NvciBhbmQgMCBvdGhlcndpc2Uu
CisgICAgICAgIHZpcnR1YWwgdWludDMyX3QgZXhlY0RlcHRoKCkgY29uc3QgeyByZXR1cm4gMDsg
fQorCiAgICAgcHJvdGVjdGVkOgogICAgICAgICBTdGF0ZUJhc2Uodjg6OkhhbmRsZTx2ODo6VmFs
dWU+IGNvbXBvc2l0ZSwgU3RhdGVCYXNlKiBuZXh0KQogICAgICAgICAgICAgOiBtX2NvbXBvc2l0
ZShjb21wb3NpdGUpCkBAIC00ODUsMTEgKzY3MywxMyBAQCBwcml2YXRlOgogICAgICAgICAgICAg
LCBtX2luZGV4KDApCiAgICAgICAgICAgICAsIG1fbnVtU2VyaWFsaXplZFByb3BlcnRpZXMoMCkK
ICAgICAgICAgICAgICwgbV9uYW1lRG9uZShmYWxzZSkKKyAgICAgICAgICAgICwgbV9zZXJpYWxp
emluZ0FjY2Vzc29yKGZhbHNlKQogICAgICAgICB7CiAgICAgICAgIH0KIAogICAgICAgICB2aXJ0
dWFsIFN0YXRlQmFzZSogYWR2YW5jZShTZXJpYWxpemVyJiBzZXJpYWxpemVyKQogICAgICAgICB7
CisgICAgICAgICAgICBtX3NlcmlhbGl6aW5nQWNjZXNzb3IgPSBmYWxzZTsKICAgICAgICAgICAg
IGlmICghbV9pbmRleCkgewogICAgICAgICAgICAgICAgIG1fcHJvcGVydHlOYW1lcyA9IGNvbXBv
c2l0ZSgpLT5HZXRQcm9wZXJ0eU5hbWVzKCk7CiAgICAgICAgICAgICAgICAgaWYgKFN0YXRlQmFz
ZSogbmV3U3RhdGUgPSBzZXJpYWxpemVyLmNoZWNrRXhjZXB0aW9uKHRoaXMpKQpAQCAtNDk4LDYg
KzY4OCw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBzZXJpYWxpemVy
LnJlcG9ydEZhaWx1cmUodGhpcyk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICB3aGlsZSAo
bV9pbmRleCA8IG1fcHJvcGVydHlOYW1lcy0+TGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICBi
b29sIGlzQWNjZXNzb3IgPSBmYWxzZTsKICAgICAgICAgICAgICAgICBpZiAoIW1fbmFtZURvbmUp
IHsKICAgICAgICAgICAgICAgICAgICAgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gcHJvcGVydHlOYW1l
ID0gbV9wcm9wZXJ0eU5hbWVzLT5HZXQobV9pbmRleCk7CiAgICAgICAgICAgICAgICAgICAgIGlm
IChTdGF0ZUJhc2UqIG5ld1N0YXRlID0gc2VyaWFsaXplci5jaGVja0V4Y2VwdGlvbih0aGlzKSkK
QEAgLTUxMCw2ICs3MDEsOSBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgICAgICBib29sIGhh
c0luZGV4ZWRQcm9wZXJ0eSA9ICFoYXNTdHJpbmdQcm9wZXJ0eSAmJiBwcm9wZXJ0eU5hbWUtPklz
VWludDMyKCkgJiYgY29tcG9zaXRlKCktPkhhc1JlYWxJbmRleGVkUHJvcGVydHkocHJvcGVydHlO
YW1lLT5VaW50MzJWYWx1ZSgpKTsKICAgICAgICAgICAgICAgICAgICAgaWYgKFN0YXRlQmFzZSog
bmV3U3RhdGUgPSBzZXJpYWxpemVyLmNoZWNrRXhjZXB0aW9uKHRoaXMpKQogICAgICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIG5ld1N0YXRlOworICAgICAgICAgICAgICAgICAgICBpc0FjY2Vz
c29yID0gaGFzU3RyaW5nUHJvcGVydHkgJiYgY29tcG9zaXRlKCktPkhhc1JlYWxOYW1lZENhbGxi
YWNrUHJvcGVydHkocHJvcGVydHlOYW1lLkFzPHY4OjpTdHJpbmc+KCkpOworICAgICAgICAgICAg
ICAgICAgICBpZiAoU3RhdGVCYXNlKiBuZXdTdGF0ZSA9IHNlcmlhbGl6ZXIuY2hlY2tFeGNlcHRp
b24odGhpcykpCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3U3RhdGU7CiAgICAg
ICAgICAgICAgICAgICAgIGlmIChoYXNTdHJpbmdQcm9wZXJ0eSB8fCBoYXNJbmRleGVkUHJvcGVy
dHkpCiAgICAgICAgICAgICAgICAgICAgICAgICBtX3Byb3BlcnR5TmFtZSA9IHByb3BlcnR5TmFt
ZTsKICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CkBAIC01MzAsMTIgKzcyNCwxNiBAQCBwcml2
YXRlOgogICAgICAgICAgICAgICAgIG1fcHJvcGVydHlOYW1lLkNsZWFyKCk7CiAgICAgICAgICAg
ICAgICAgKyttX2luZGV4OwogICAgICAgICAgICAgICAgICsrbV9udW1TZXJpYWxpemVkUHJvcGVy
dGllczsKKyAgICAgICAgICAgICAgICBtX3NlcmlhbGl6aW5nQWNjZXNzb3IgPSBpc0FjY2Vzc29y
OwogICAgICAgICAgICAgICAgIGlmIChTdGF0ZUJhc2UqIG5ld1N0YXRlID0gc2VyaWFsaXplci5k
b1NlcmlhbGl6ZSh2YWx1ZSwgdGhpcykpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXdT
dGF0ZTsKKyAgICAgICAgICAgICAgICBtX3NlcmlhbGl6aW5nQWNjZXNzb3IgPSBmYWxzZTsKICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgIHJldHVybiBvYmplY3REb25lKG1fbnVtU2VyaWFsaXpl
ZFByb3BlcnRpZXMsIHNlcmlhbGl6ZXIpOwogICAgICAgICB9CiAKKyAgICAgICAgdmlydHVhbCB1
aW50MzJfdCBleGVjRGVwdGgoKSBjb25zdCB7IHJldHVybiBtX3NlcmlhbGl6aW5nQWNjZXNzb3Ig
PyAxIDogMDsgfQorCiAgICAgcHJvdGVjdGVkOgogICAgICAgICB2aXJ0dWFsIFN0YXRlQmFzZSog
b2JqZWN0RG9uZSh1bnNpZ25lZCBudW1Qcm9wZXJ0aWVzLCBTZXJpYWxpemVyJikgPSAwOwogCkBA
IC01NDUsNiArNzQzLDcgQEAgcHJpdmF0ZToKICAgICAgICAgdW5zaWduZWQgbV9pbmRleDsKICAg
ICAgICAgdW5zaWduZWQgbV9udW1TZXJpYWxpemVkUHJvcGVydGllczsKICAgICAgICAgYm9vbCBt
X25hbWVEb25lOworICAgICAgICBib29sIG1fc2VyaWFsaXppbmdBY2Nlc3NvcjsKICAgICB9Owog
CiAgICAgY2xhc3MgT2JqZWN0U3RhdGUgOiBwdWJsaWMgQWJzdHJhY3RPYmplY3RTdGF0ZSB7CkBA
IC01NzUsOSArNzc0LDE2IEBAIHByaXZhdGU6CiAgICAgICAgIH0KICAgICB9OwogCisgICAgdWlu
dDMyX3QgZXhlY0RlcHRoKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBtX2V4ZWNEZXB0
aDsKKyAgICB9CisKICAgICBTdGF0ZUJhc2UqIHB1c2goU3RhdGVCYXNlKiBzdGF0ZSkKICAgICB7
CiAgICAgICAgIEFTU0VSVChzdGF0ZSk7CisgICAgICAgIGlmIChzdGF0ZS0+bmV4dFN0YXRlKCkp
CisgICAgICAgICAgICBtX2V4ZWNEZXB0aCArPSBzdGF0ZS0+bmV4dFN0YXRlKCktPmV4ZWNEZXB0
aCgpOwogICAgICAgICArK21fZGVwdGg7CiAgICAgICAgIHJldHVybiBjaGVja0NvbXBvc2l0ZShz
dGF0ZSkgPyBzdGF0ZSA6IGhhbmRsZUVycm9yKElucHV0RXJyb3IsIHN0YXRlKTsKICAgICB9CkBA
IC01ODcsNiArNzkzLDggQEAgcHJpdmF0ZToKICAgICAgICAgQVNTRVJUKHN0YXRlKTsKICAgICAg
ICAgLS1tX2RlcHRoOwogICAgICAgICBTdGF0ZUJhc2UqIG5leHQgPSBzdGF0ZS0+bmV4dFN0YXRl
KCk7CisgICAgICAgIGlmIChuZXh0KQorICAgICAgICAgICAgbV9leGVjRGVwdGggLT0gbmV4dC0+
ZXhlY0RlcHRoKCk7CiAgICAgICAgIGRlbGV0ZSBzdGF0ZTsKICAgICAgICAgcmV0dXJuIG5leHQ7
CiAgICAgfQpAQCAtNTk5LDYgKzgwNyw4IEBAIHByaXZhdGU6CiAgICAgICAgICAgICBTdGF0ZUJh
c2UqIHRtcCA9IHN0YXRlLT5uZXh0U3RhdGUoKTsKICAgICAgICAgICAgIGRlbGV0ZSBzdGF0ZTsK
ICAgICAgICAgICAgIHN0YXRlID0gdG1wOworICAgICAgICAgICAgaWYgKHN0YXRlKQorICAgICAg
ICAgICAgICAgIG1fZXhlY0RlcHRoIC09IHN0YXRlLT5leGVjRGVwdGgoKTsKICAgICAgICAgfQog
ICAgICAgICByZXR1cm4gbmV3IEVycm9yU3RhdGU7CiAgICAgfQpAQCAtNjE4LDYgKzgyOCwxMSBA
QCBwcml2YXRlOgogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKKyAgICB2b2lkIHdyaXRl
TnVsbCgpCisgICAgeworICAgICAgICBtX3dyaXRlci53cml0ZU51bGwoKTsKKyAgICB9CisKICAg
ICB2b2lkIHdyaXRlU3RyaW5nKHY4OjpIYW5kbGU8djg6OlZhbHVlPiB2YWx1ZSkKICAgICB7CiAg
ICAgICAgIHY4OjpTdHJpbmc6OlV0ZjhWYWx1ZSBzdHJpbmdWYWx1ZSh2YWx1ZSk7CkBAIC02NjMs
NiArODc4LDM1IEBAIHByaXZhdGU6CiAgICAgICAgIG1fd3JpdGVyLndyaXRlUmVnRXhwKHJlZ0V4
cC0+R2V0U291cmNlKCksIHJlZ0V4cC0+R2V0RmxhZ3MoKSk7CiAgICAgfQogCisgICAgU3RhdGVC
YXNlKiB3cml0ZUFuZEdyZXlBcnJheUJ1ZmZlclZpZXcodjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBv
YmplY3QsIFN0YXRlQmFzZSogbmV4dCkKKyAgICB7CisgICAgICAgIEFTU0VSVCghb2JqZWN0Lklz
RW1wdHkoKSk7CisgICAgICAgIEFycmF5QnVmZmVyVmlldyogYXJyYXlCdWZmZXJWaWV3ID0gVjhB
cnJheUJ1ZmZlclZpZXc6OnRvTmF0aXZlKG9iamVjdCk7CisgICAgICAgIGlmICghYXJyYXlCdWZm
ZXJWaWV3KQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB2ODo6SGFuZGxlPHY4
OjpWYWx1ZT4gdW5kZXJseWluZ0J1ZmZlciA9IHRvVjgoYXJyYXlCdWZmZXJWaWV3LT5idWZmZXIo
KSk7CisgICAgICAgIGlmICh1bmRlcmx5aW5nQnVmZmVyLklzRW1wdHkoKSkKKyAgICAgICAgICAg
IHJldHVybiBoYW5kbGVFcnJvcihEYXRhQ2xvbmVFcnJvciwgbmV4dCk7CisgICAgICAgIFN0YXRl
QmFzZSogc3RhdGVPdXQgPSBkb1NlcmlhbGl6ZSh1bmRlcmx5aW5nQnVmZmVyLCAwKTsKKyAgICAg
ICAgaWYgKHN0YXRlT3V0KQorICAgICAgICAgICAgcmV0dXJuIGhhbmRsZUVycm9yKERhdGFDbG9u
ZUVycm9yLCBuZXh0KTsKKyAgICAgICAgbV93cml0ZXIud3JpdGVBcnJheUJ1ZmZlclZpZXcoKmFy
cmF5QnVmZmVyVmlldyk7CisgICAgICAgIC8vIFRoaXMgc2hvdWxkIGJlIHNhZmU6IHdlIHNlcmlh
bGl6ZSBzb21ldGhpbmcgdGhhdCB3ZSBrbm93IHRvIGJlIGEgd3JhcHBlciAoc2VlCisgICAgICAg
IC8vIHRoZSB0b1Y4IGNhbGwgYWJvdmUpLCBzbyB0aGUgY2FsbCB0byBkb1NlcmlhbGl6ZSBhYm92
ZSBzaG91bGQgbmVpdGhlciBjYXVzZQorICAgICAgICAvLyB0aGUgc3RhY2sgdG8gb3ZlcmZsb3cg
bm9yIHNob3VsZCBpdCBoYXZlIHRoZSBwb3RlbnRpYWwgdG8gcmVhY2ggdGhpcworICAgICAgICAv
LyBBcnJheUJ1ZmZlclZpZXcgYWdhaW4uCisgICAgICAgIGdyZXlPYmplY3Qob2JqZWN0KTsKKyAg
ICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgdm9pZCB3cml0ZUFycmF5QnVmZmVyKHY4OjpI
YW5kbGU8djg6OlZhbHVlPiB2YWx1ZSkKKyAgICB7CisgICAgICAgIEFycmF5QnVmZmVyKiBhcnJh
eUJ1ZmZlciA9IFY4QXJyYXlCdWZmZXI6OnRvTmF0aXZlKHZhbHVlLkFzPHY4OjpPYmplY3Q+KCkp
OworICAgICAgICBpZiAoIWFycmF5QnVmZmVyKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICBtX3dyaXRlci53cml0ZUFycmF5QnVmZmVyKCphcnJheUJ1ZmZlcik7CisgICAgfQorCiAgICAg
c3RhdGljIFN0YXRlQmFzZSogbmV3QXJyYXlTdGF0ZSh2ODo6SGFuZGxlPHY4OjpBcnJheT4gYXJy
YXksIFN0YXRlQmFzZSogbmV4dCkKICAgICB7CiAgICAgICAgIC8vIEZJWE1FOiB1c2UgcGxhaW4g
QXJyYXkgc3RhdGUgd2hlbiB3ZSBjYW4gcXVpY2tseSBjaGVjayB0aGF0CkBAIC02NzYsMjAgKzky
MCw0MiBAQCBwcml2YXRlOgogICAgICAgICByZXR1cm4gbmV3IE9iamVjdFN0YXRlKG9iamVjdCwg
bmV4dCk7CiAgICAgfQogCisgICAgdWludDMyX3QgZ3JleU9iamVjdChjb25zdCB2ODo6SGFuZGxl
PHY4OjpPYmplY3Q+JiBvYmplY3QpCisgICAgeworICAgICAgICBBU1NFUlQoIW1fb2JqZWN0UG9v
bC5jb250YWlucyhvYmplY3QpKTsKKyAgICAgICAgdWludDMyX3Qgb2JqZWN0SWQgPSBtX25leHRP
YmplY3RJZCsrOworICAgICAgICBtX29iamVjdFBvb2wuc2V0KG9iamVjdCwgb2JqZWN0SWQpOwor
ICAgICAgICByZXR1cm4gb2JqZWN0SWQ7CisgICAgfQorCiAgICAgV3JpdGVyJiBtX3dyaXRlcjsK
ICAgICB2ODo6VHJ5Q2F0Y2gmIG1fdHJ5Q2F0Y2g7CiAgICAgaW50IG1fZGVwdGg7CisgICAgaW50
IG1fZXhlY0RlcHRoOwogICAgIFN0YXR1cyBtX3N0YXR1czsKKyAgICB0eXBlZGVmIFY4R2NIYW5k
bGVNYXA8djg6Ok9iamVjdCwgdWludDMyX3Q+IE9iamVjdFBvb2w7CisgICAgT2JqZWN0UG9vbCBt
X29iamVjdFBvb2w7CisgICAgdWludDMyX3QgbV9uZXh0T2JqZWN0SWQ7CiB9OwogCiBTZXJpYWxp
emVyOjpTdGF0ZUJhc2UqIFNlcmlhbGl6ZXI6OmRvU2VyaWFsaXplKHY4OjpIYW5kbGU8djg6OlZh
bHVlPiB2YWx1ZSwgU3RhdGVCYXNlKiBuZXh0KQogewotICAgIGlmICh2YWx1ZS5Jc0VtcHR5KCkp
CisgICAgaWYgKG1fZXhlY0RlcHRoICsgKG5leHQgPyBuZXh0LT5leGVjRGVwdGgoKSA6IDApID4g
MSkgeworICAgICAgICBtX3dyaXRlci53cml0ZU51bGwoKTsKKyAgICAgICAgcmV0dXJuIDA7Cisg
ICAgfQorICAgIG1fd3JpdGVyLndyaXRlQ2hlY2tSZWYobV9uZXh0T2JqZWN0SWQpOworICAgIHVp
bnQzMl90IG9iamVjdFBvb2xPZmZzZXQ7CisgICAgaWYgKCh2YWx1ZS0+SXNPYmplY3QoKSB8fCB2
YWx1ZS0+SXNEYXRlKCkgfHwgdmFsdWUtPklzUmVnRXhwKCkpCisgICAgICAgICYmIG1fb2JqZWN0
UG9vbC50cnlHZXQodmFsdWUuQXM8djg6Ok9iamVjdD4oKSwgb2JqZWN0UG9vbE9mZnNldCkpIHsK
KyAgICAgICAgQVNTRVJUKCF2YWx1ZS0+SXNTdHJpbmcoKSk7CisgICAgICAgIG1fd3JpdGVyLndy
aXRlT2JqZWN0T2Zmc2V0KG9iamVjdFBvb2xPZmZzZXQpOworICAgIH0gZWxzZSBpZiAodmFsdWUu
SXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gcmVwb3J0RmFpbHVyZShuZXh0KTsKLSAgICBpZiAo
dmFsdWUtPklzVW5kZWZpbmVkKCkpCisgICAgZWxzZSBpZiAodmFsdWUtPklzVW5kZWZpbmVkKCkp
CiAgICAgICAgIG1fd3JpdGVyLndyaXRlVW5kZWZpbmVkKCk7CiAgICAgZWxzZSBpZiAodmFsdWUt
PklzTnVsbCgpKQotICAgICAgICBtX3dyaXRlci53cml0ZU51bGwoKTsKKyAgICAgICAgd3JpdGVO
dWxsKCk7CiAgICAgZWxzZSBpZiAodmFsdWUtPklzVHJ1ZSgpKQogICAgICAgICBtX3dyaXRlci53
cml0ZVRydWUoKTsKICAgICBlbHNlIGlmICh2YWx1ZS0+SXNGYWxzZSgpKQpAQCAtNjk4LDI2ICs5
NjQsNTIgQEAgU2VyaWFsaXplcjo6U3RhdGVCYXNlKiBTZXJpYWxpemVyOjpkb1NlcmlhbGl6ZSh2
ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdmFsdWUsIFN0YXQKICAgICAgICAgbV93cml0ZXIud3JpdGVJ
bnQzMih2YWx1ZS0+SW50MzJWYWx1ZSgpKTsKICAgICBlbHNlIGlmICh2YWx1ZS0+SXNVaW50MzIo
KSkKICAgICAgICAgbV93cml0ZXIud3JpdGVVaW50MzIodmFsdWUtPlVpbnQzMlZhbHVlKCkpOwot
ICAgIGVsc2UgaWYgKHZhbHVlLT5Jc0RhdGUoKSkKLSAgICAgICAgbV93cml0ZXIud3JpdGVEYXRl
KHZhbHVlLT5OdW1iZXJWYWx1ZSgpKTsKICAgICBlbHNlIGlmICh2YWx1ZS0+SXNOdW1iZXIoKSkK
ICAgICAgICAgbV93cml0ZXIud3JpdGVOdW1iZXIodmFsdWUuQXM8djg6Ok51bWJlcj4oKS0+VmFs
dWUoKSk7Ci0gICAgZWxzZSBpZiAodmFsdWUtPklzU3RyaW5nKCkpCisgICAgZWxzZSBpZiAoVjhB
cnJheUJ1ZmZlclZpZXc6Okhhc0luc3RhbmNlKHZhbHVlKSkKKyAgICAgICAgcmV0dXJuIHdyaXRl
QW5kR3JleUFycmF5QnVmZmVyVmlldyh2YWx1ZS5Bczx2ODo6T2JqZWN0PigpLCBuZXh0KTsKKyAg
ICBlbHNlIGlmICh2YWx1ZS0+SXNTdHJpbmcoKSkgeworICAgICAgICAvLyBUaGUgdjggQVBJIGNh
bGxzIHN0cmluZ3MgcHJpbWl0aXZlcywgbm90IG9iamVjdHMuIFdlJ2xsIGxhdGVyIGRlc2VyaWFs
aXplIHRoZW0gdG8gdGhlCisgICAgICAgIC8vIG9iamVjdCBwb29sLCB0aG91Z2gsIHNvIHdlIGNh
biBkZWR1cGxpY2F0ZSBpbiB0aGUgZnV0dXJlLgorICAgICAgICArK21fbmV4dE9iamVjdElkOwog
ICAgICAgICB3cml0ZVN0cmluZyh2YWx1ZSk7Ci0gICAgZWxzZSBpZiAodmFsdWUtPklzQXJyYXko
KSkKLSAgICAgICAgcmV0dXJuIHB1c2gobmV3QXJyYXlTdGF0ZSh2YWx1ZS5Bczx2ODo6QXJyYXk+
KCksIG5leHQpKTsKLSAgICBlbHNlIGlmIChWOEZpbGU6Okhhc0luc3RhbmNlKHZhbHVlKSkKLSAg
ICAgICAgd3JpdGVGaWxlKHZhbHVlKTsKLSAgICBlbHNlIGlmIChWOEJsb2I6Okhhc0luc3RhbmNl
KHZhbHVlKSkKLSAgICAgICAgd3JpdGVCbG9iKHZhbHVlKTsKLSAgICBlbHNlIGlmIChWOEZpbGVM
aXN0OjpIYXNJbnN0YW5jZSh2YWx1ZSkpCi0gICAgICAgIHdyaXRlRmlsZUxpc3QodmFsdWUpOwot
ICAgIGVsc2UgaWYgKFY4SW1hZ2VEYXRhOjpIYXNJbnN0YW5jZSh2YWx1ZSkpCi0gICAgICAgIHdy
aXRlSW1hZ2VEYXRhKHZhbHVlKTsKLSAgICBlbHNlIGlmICh2YWx1ZS0+SXNSZWdFeHAoKSkKLSAg
ICAgICAgd3JpdGVSZWdFeHAodmFsdWUpOwotICAgIGVsc2UgaWYgKHZhbHVlLT5Jc09iamVjdCgp
KQotICAgICAgICByZXR1cm4gcHVzaChuZXdPYmplY3RTdGF0ZSh2YWx1ZS5Bczx2ODo6T2JqZWN0
PigpLCBuZXh0KSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0
PiBqc09iamVjdCA9IHZhbHVlLkFzPHY4OjpPYmplY3Q+KCk7CisgICAgICAgIEFTU0VSVCghanNP
YmplY3QuSXNFbXB0eSgpKTsKKyAgICAgICAgZ3JleU9iamVjdChqc09iamVjdCk7CisgICAgICAg
IGlmICh2YWx1ZS0+SXNEYXRlKCkpCisgICAgICAgICAgICBtX3dyaXRlci53cml0ZURhdGUodmFs
dWUtPk51bWJlclZhbHVlKCkpOworICAgICAgICBlbHNlIGlmICh2YWx1ZS0+SXNBcnJheSgpKSB7
CisgICAgICAgICAgICBtX3dyaXRlci53cml0ZUdlbmVyYXRlRnJlc2hBcnJheSh2YWx1ZS5Bczx2
ODo6QXJyYXk+KCktPkxlbmd0aCgpKTsKKyAgICAgICAgICAgIHJldHVybiBwdXNoKG5ld0FycmF5
U3RhdGUodmFsdWUuQXM8djg6OkFycmF5PigpLCBuZXh0KSk7CisgICAgICAgIH0gZWxzZSBpZiAo
VjhGaWxlOjpIYXNJbnN0YW5jZSh2YWx1ZSkpCisgICAgICAgICAgICB3cml0ZUZpbGUodmFsdWUp
OworICAgICAgICBlbHNlIGlmIChWOEJsb2I6Okhhc0luc3RhbmNlKHZhbHVlKSkKKyAgICAgICAg
ICAgIHdyaXRlQmxvYih2YWx1ZSk7CisgICAgICAgIGVsc2UgaWYgKFY4RmlsZUxpc3Q6Okhhc0lu
c3RhbmNlKHZhbHVlKSkKKyAgICAgICAgICAgIHdyaXRlRmlsZUxpc3QodmFsdWUpOworICAgICAg
ICBlbHNlIGlmIChWOEltYWdlRGF0YTo6SGFzSW5zdGFuY2UodmFsdWUpKQorICAgICAgICAgICAg
d3JpdGVJbWFnZURhdGEodmFsdWUpOworICAgICAgICBlbHNlIGlmICh2YWx1ZS0+SXNSZWdFeHAo
KSkKKyAgICAgICAgICAgIHdyaXRlUmVnRXhwKHZhbHVlKTsKKyAgICAgICAgZWxzZSBpZiAoVjhB
cnJheUJ1ZmZlcjo6SGFzSW5zdGFuY2UodmFsdWUpKQorICAgICAgICAgICAgd3JpdGVBcnJheUJ1
ZmZlcih2YWx1ZSk7CisgICAgICAgIGVsc2UgaWYgKHZhbHVlLT5Jc09iamVjdCgpKSB7CisgICAg
ICAgICAgICAvLyBJZiB0aGUgb2JqZWN0IGhhcyBhbnkgaW50ZXJuYWwgZmllbGRzLCB0aGVuIHdl
IHdvbid0IGJlIGFibGUgdG8gc2VyaWFsaXplIG9yIGRlc2VyaWFsaXplCisgICAgICAgICAgICAv
LyB0aGVtOyBjb252ZW5pZW50bHksIHRoaXMgaXMgYWxzbyBhIHF1aWNrIHdheSB0byBkZXRlY3Qg
RE9NIHdyYXBwZXIgb2JqZWN0cywgYmVjYXVzZQorICAgICAgICAgICAgLy8gdGhlIG1lY2hhbmlz
bSBmb3IgdGhlc2UgcmVsaWVzIG9uIGRhdGEgc3RvcmVkIGluIHRoZXNlIGZpZWxkcy4gRnVydGhl
cm1vcmUsIHdlIHNob3VsZAorICAgICAgICAgICAgLy8gY2F0Y2ggZXh0ZXJuYWwgYXJyYXkgZGF0
YSBhbmQgZXh0ZXJuYWwgcGl4ZWwgZGF0YSBhYm92ZSAobm90aW5nIHRoYXQgQ2FudmFzUGl4ZWxB
cnJheXMKKyAgICAgICAgICAgIC8vIGNhbid0IGJlIHNlcmlhbGl6ZWQgd2l0aG91dCBiZWluZyB3
cmFwcGVkIGJ5IEltYWdlRGF0YSBhY2NvcmRpbmcgdG8gdGhlIHN0YW5kYXJkKS4KKyAgICAgICAg
ICAgIGlmIChqc09iamVjdC0+SW50ZXJuYWxGaWVsZENvdW50KCkKKyAgICAgICAgICAgICAgICB8
fCBqc09iamVjdC0+SGFzSW5kZXhlZFByb3BlcnRpZXNJblBpeGVsRGF0YSgpCisgICAgICAgICAg
ICAgICAgfHwganNPYmplY3QtPkhhc0luZGV4ZWRQcm9wZXJ0aWVzSW5FeHRlcm5hbEFycmF5RGF0
YSgpCisgICAgICAgICAgICAgICAgfHwganNPYmplY3QtPklzQ2FsbGFibGUoKSkKKyAgICAgICAg
ICAgICAgICByZXR1cm4gaGFuZGxlRXJyb3IoRGF0YUNsb25lRXJyb3IsIG5leHQpOworICAgICAg
ICAgICAgbV93cml0ZXIud3JpdGVHZW5lcmF0ZUZyZXNoT2JqZWN0KCk7CisgICAgICAgICAgICBy
ZXR1cm4gcHVzaChuZXdPYmplY3RTdGF0ZShqc09iamVjdCwgbmV4dCkpOworICAgICAgICB9IGVs
c2UKKyAgICAgICAgICAgIHJldHVybiBoYW5kbGVFcnJvcihEYXRhQ2xvbmVFcnJvciwgbmV4dCk7
CisgICAgfQogICAgIHJldHVybiAwOwogfQogCkBAIC03MjYsOSArMTAxOCwxNSBAQCBjbGFzcyBD
b21wb3NpdGVDcmVhdG9yIHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5Db21wb3NpdGVDcmVhdG9y
KCkgeyB9CiAKLSAgICB2aXJ0dWFsIGJvb2wgY3JlYXRlQXJyYXkodWludDMyX3QgbGVuZ3RoLCB2
ODo6SGFuZGxlPHY4OjpWYWx1ZT4qIHZhbHVlKSA9IDA7Ci0gICAgdmlydHVhbCBib29sIGNyZWF0
ZU9iamVjdCh1aW50MzJfdCBudW1Qcm9wZXJ0aWVzLCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4qIHZh
bHVlKSA9IDA7Ci0gICAgdmlydHVhbCBib29sIGNyZWF0ZVNwYXJzZUFycmF5KHVpbnQzMl90IG51
bVByb3BlcnRpZXMsIHVpbnQzMl90IGxlbmd0aCwgdjg6OkhhbmRsZTx2ODo6VmFsdWU+KiB2YWx1
ZSkgPSAwOworICAgIHZpcnR1YWwgYm9vbCBjb25zdW1lVG9wT2ZTdGFjayh2ODo6SGFuZGxlPHY4
OjpWYWx1ZT4mKSA9IDA7CisgICAgdmlydHVhbCB1aW50MzJfdCBvYmplY3RSZWZlcmVuY2VDb3Vu
dCgpID0gMDsKKyAgICB2aXJ0dWFsIGNvbnN0IHY4OjpIYW5kbGU8djg6OlZhbHVlPiYgcHVzaE9i
amVjdFJlZmVyZW5jZShjb25zdCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4mKSA9IDA7CisgICAgdmly
dHVhbCBib29sIGdldE9iamVjdFJlZmVyZW5jZSh1aW50MzJfdCByZWYsIHY4OjpIYW5kbGU8djg6
OlZhbHVlPiopID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgcHJlcGFyZUVtcHR5QXJyYXkodWludDMy
X3QgbGVuZ3RoKSA9IDA7CisgICAgdmlydHVhbCBib29sIHByZXBhcmVFbXB0eU9iamVjdCgpID0g
MDsKKyAgICB2aXJ0dWFsIGJvb2wgZmluaXNoQXJyYXkodWludDMyX3QgbGVuZ3RoLCB2ODo6SGFu
ZGxlPHY4OjpWYWx1ZT4qKSA9IDA7CisgICAgdmlydHVhbCBib29sIGZpbmlzaE9iamVjdCh1aW50
MzJfdCBudW1Qcm9wZXJ0aWVzLCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4qKSA9IDA7CisgICAgdmly
dHVhbCBib29sIGZpbmlzaFNwYXJzZUFycmF5KHVpbnQzMl90IG51bVByb3BlcnRpZXMsIHVpbnQz
Ml90IGxlbmd0aCwgdjg6OkhhbmRsZTx2ODo6VmFsdWU+KikgPSAwOwogfTsKIAogLy8gUmVhZGVy
IGlzIHJlc3BvbnNpYmxlIGZvciBkZXNlcmlhbGl6aW5nIHByaW1pdGl2ZSB0eXBlcyBhbmQKQEAg
LTczOSw2ICsxMDM3LDcgQEAgcHVibGljOgogICAgICAgICA6IG1fYnVmZmVyKGJ1ZmZlcikKICAg
ICAgICAgLCBtX2xlbmd0aChsZW5ndGgpCiAgICAgICAgICwgbV9wb3NpdGlvbigwKQorICAgICAg
ICAsIG1fdmVyc2lvbigwKQogICAgIHsKICAgICAgICAgQVNTRVJUKGxlbmd0aCA+PSAwKTsKICAg
ICB9CkBAIC03NTEsNiArMTA1MCwxNiBAQCBwdWJsaWM6CiAgICAgICAgIGlmICghcmVhZFRhZygm
dGFnKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgc3dpdGNoICh0YWcpIHsK
KyAgICAgICAgY2FzZSBDaGVja1JlZlRhZzogeworICAgICAgICAgICAgaWYgKG1fdmVyc2lvbiA8
PSAwKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIHVpbnQzMl90
IHJlZlRhYmxlU2l6ZTsKKyAgICAgICAgICAgIGlmICghZG9SZWFkVWludDMyKCZyZWZUYWJsZVNp
emUpKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIGlmIChyZWZU
YWJsZVNpemUgIT0gY3JlYXRvci5vYmplY3RSZWZlcmVuY2VDb3VudCgpKQorICAgICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CiAg
ICAgICAgIGNhc2UgSW52YWxpZFRhZzoKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAg
ICAgY2FzZSBQYWRkaW5nVGFnOgpAQCAtNzcwLDYgKzEwNzksOCBAQCBwdWJsaWM6CiAgICAgICAg
IGNhc2UgU3RyaW5nVGFnOgogICAgICAgICAgICAgaWYgKCFyZWFkU3RyaW5nKHZhbHVlKSkKICAg
ICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBpZiAobV92ZXJzaW9uID4g
MCkKKyAgICAgICAgICAgICAgICBjcmVhdG9yLnB1c2hPYmplY3RSZWZlcmVuY2UoKnZhbHVlKTsK
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEludDMyVGFnOgogICAgICAgICAgICAg
aWYgKCFyZWFkSW50MzIodmFsdWUpKQpAQCAtNzgyLDYgKzEwOTMsOCBAQCBwdWJsaWM6CiAgICAg
ICAgIGNhc2UgRGF0ZVRhZzoKICAgICAgICAgICAgIGlmICghcmVhZERhdGUodmFsdWUpKQogICAg
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIGlmIChtX3ZlcnNpb24gPiAw
KQorICAgICAgICAgICAgICAgIGNyZWF0b3IucHVzaE9iamVjdFJlZmVyZW5jZSgqdmFsdWUpOwog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgTnVtYmVyVGFnOgogICAgICAgICAgICAg
aWYgKCFyZWFkTnVtYmVyKHZhbHVlKSkKQEAgLTc5MCwzNiArMTEwMyw0NiBAQCBwdWJsaWM6CiAg
ICAgICAgIGNhc2UgQmxvYlRhZzoKICAgICAgICAgICAgIGlmICghcmVhZEJsb2IodmFsdWUpKQog
ICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIGlmIChtX3ZlcnNpb24g
PiAwKQorICAgICAgICAgICAgICAgIGNyZWF0b3IucHVzaE9iamVjdFJlZmVyZW5jZSgqdmFsdWUp
OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgRmlsZVRhZzoKICAgICAgICAgICAg
IGlmICghcmVhZEZpbGUodmFsdWUpKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICAgICAgICAgIGlmIChtX3ZlcnNpb24gPiAwKQorICAgICAgICAgICAgICAgIGNyZWF0b3IucHVz
aE9iamVjdFJlZmVyZW5jZSgqdmFsdWUpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNh
c2UgRmlsZUxpc3RUYWc6CiAgICAgICAgICAgICBpZiAoIXJlYWRGaWxlTGlzdCh2YWx1ZSkpCiAg
ICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgaWYgKG1fdmVyc2lvbiA+
IDApCisgICAgICAgICAgICAgICAgY3JlYXRvci5wdXNoT2JqZWN0UmVmZXJlbmNlKCp2YWx1ZSk7
CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBJbWFnZURhdGFUYWc6CiAgICAgICAg
ICAgICBpZiAoIXJlYWRJbWFnZURhdGEodmFsdWUpKQogICAgICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICAgICAgICAgIGlmIChtX3ZlcnNpb24gPiAwKQorICAgICAgICAgICAgICAgIGNy
ZWF0b3IucHVzaE9iamVjdFJlZmVyZW5jZSgqdmFsdWUpOwogICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIGNhc2UgQXJyYXlUYWc6IHsKICAgICAgICAgICAgIHVpbnQzMl90IGxlbmd0aDsKICAg
ICAgICAgICAgIGlmICghZG9SZWFkVWludDMyKCZsZW5ndGgpKQogICAgICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKLSAgICAgICAgICAgIGlmICghY3JlYXRvci5jcmVhdGVBcnJheShsZW5ndGgs
IHZhbHVlKSkKKyAgICAgICAgICAgIGlmICghY3JlYXRvci5maW5pc2hBcnJheShsZW5ndGgsIHZh
bHVlKSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgfQogICAgICAgICBjYXNlIFJlZ0V4cFRhZzoKICAgICAgICAgICAgIGlmICghcmVh
ZFJlZ0V4cCh2YWx1ZSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAg
ICAgaWYgKG1fdmVyc2lvbiA+IDApCisgICAgICAgICAgICAgICAgY3JlYXRvci5wdXNoT2JqZWN0
UmVmZXJlbmNlKCp2YWx1ZSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBPYmpl
Y3RUYWc6IHsKICAgICAgICAgICAgIHVpbnQzMl90IG51bVByb3BlcnRpZXM7CiAgICAgICAgICAg
ICBpZiAoIWRvUmVhZFVpbnQzMigmbnVtUHJvcGVydGllcykpCiAgICAgICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwotICAgICAgICAgICAgaWYgKCFjcmVhdG9yLmNyZWF0ZU9iamVjdChudW1Qcm9w
ZXJ0aWVzLCB2YWx1ZSkpCisgICAgICAgICAgICBpZiAoIWNyZWF0b3IuZmluaXNoT2JqZWN0KG51
bVByb3BlcnRpZXMsIHZhbHVlKSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgfQpAQCAtODMwLDcgKzExNTMsNTEgQEAgcHVibGljOgog
ICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgIGlmICghZG9SZWFkVWlu
dDMyKCZsZW5ndGgpKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAg
IGlmICghY3JlYXRvci5jcmVhdGVTcGFyc2VBcnJheShudW1Qcm9wZXJ0aWVzLCBsZW5ndGgsIHZh
bHVlKSkKKyAgICAgICAgICAgIGlmICghY3JlYXRvci5maW5pc2hTcGFyc2VBcnJheShudW1Qcm9w
ZXJ0aWVzLCBsZW5ndGgsIHZhbHVlKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBjYXNlIEFycmF5QnVmZmVyVmll
d1RhZzogeworICAgICAgICAgICAgaWYgKG1fdmVyc2lvbiA8PSAwKQorICAgICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIGlmICghcmVhZEFycmF5QnVmZmVyVmlldyh2YWx1
ZSwgY3JlYXRvcikpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAg
Y3JlYXRvci5wdXNoT2JqZWN0UmVmZXJlbmNlKCp2YWx1ZSk7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgfQorICAgICAgICBjYXNlIEFycmF5QnVmZmVyVGFnOiB7CisgICAgICAgICAgICBp
ZiAobV92ZXJzaW9uIDw9IDApCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAg
ICAgICAgLy8gQXJyYXlCdWZmZXJzIGFyZSBhbHdheXMgd3JpdHRlbiBiZWZvcmUgZGVwZW5kYW50
IEFycmF5QnVmZmVyVmlld3MuCisgICAgICAgICAgICBpZiAoIXJlYWRBcnJheUJ1ZmZlcih2YWx1
ZSkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgY3JlYXRvci5w
dXNoT2JqZWN0UmVmZXJlbmNlKCp2YWx1ZSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
fQorICAgICAgICBjYXNlIEdlbmVyYXRlRnJlc2hPYmplY3RUYWc6IHsKKyAgICAgICAgICAgIGlm
IChtX3ZlcnNpb24gPD0gMCkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAg
ICAgICBpZiAoIWNyZWF0b3IucHJlcGFyZUVtcHR5T2JqZWN0KCkpCisgICAgICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAg
ICAgY2FzZSBHZW5lcmF0ZUZyZXNoQXJyYXlUYWc6IHsKKyAgICAgICAgICAgIGlmIChtX3ZlcnNp
b24gPD0gMCkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB1aW50
MzJfdCBsZW5ndGg7CisgICAgICAgICAgICBpZiAoIWRvUmVhZFVpbnQzMigmbGVuZ3RoKSkKKyAg
ICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBpZiAoIWNyZWF0b3IucHJl
cGFyZUVtcHR5QXJyYXkobGVuZ3RoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBjYXNlIE9iamVjdFJl
ZmVyZW5jZVRhZzogeworICAgICAgICAgICAgaWYgKG1fdmVyc2lvbiA8PSAwKQorICAgICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIHVpbnQzMl90IHJlZjsKKyAgICAgICAg
ICAgIGlmICghZG9SZWFkVWludDMyKCZyZWYpKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICAgICAgICAgIGlmICghY3JlYXRvci5nZXRPYmplY3RSZWZlcmVuY2UocmVmLCB2YWx1
ZSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIH0KQEAgLTg0MCw2ICsxMjA3LDMwIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuICF2
YWx1ZS0+SXNFbXB0eSgpOwogICAgIH0KIAorICAgIGJvb2wgcmVhZFZlcnNpb24odWludDMyX3Qm
IHZlcnNpb24pCisgICAgeworICAgICAgICBTZXJpYWxpemF0aW9uVGFnIHRhZzsKKyAgICAgICAg
aWYgKCFyZWFkVGFnKCZ0YWcpKSB7CisgICAgICAgICAgICAvLyBUaGlzIGlzIGEgbnVsbGFyeSBi
dWZmZXIuIFdlJ3JlIHN0aWxsIHZlcnNpb24gMC4KKyAgICAgICAgICAgIHZlcnNpb24gPSAwOwor
ICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHRhZyAhPSBW
ZXJzaW9uVGFnKSB7CisgICAgICAgICAgICAvLyBWZXJzaW9ucyBvZiB0aGUgZm9ybWF0IHBhc3Qg
MCBzdGFydCB3aXRoIHRoZSB2ZXJzaW9uIHRhZy4KKyAgICAgICAgICAgIHZlcnNpb24gPSAwOwor
ICAgICAgICAgICAgLy8gUHV0IGJhY2sgdGhlIGJ5dGUuCisgICAgICAgICAgICAtLW1fcG9zaXRp
b247CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICAvLyBWZXJz
aW9uLWJlYXJpbmcgbWVzc2FnZXMgYXJlIG9ibGlnYXRlZCB0byBmaW5pc2ggdGhlIHZlcnNpb24g
dGFnLgorICAgICAgICByZXR1cm4gZG9SZWFkVWludDMyKCZ2ZXJzaW9uKTsKKyAgICB9CisKKyAg
ICB2b2lkIHNldFZlcnNpb24odWludDMyX3QgdmVyc2lvbikKKyAgICB7CisgICAgICAgIG1fdmVy
c2lvbiA9IHZlcnNpb247CisgICAgfQorCiBwcml2YXRlOgogICAgIGJvb2wgcmVhZFRhZyhTZXJp
YWxpemF0aW9uVGFnKiB0YWcpCiAgICAgewpAQCAtODQ5LDYgKzEyNDAsMTQgQEAgcHJpdmF0ZToK
ICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCisgICAgYm9vbCByZWFkU3ViVGFnKEFycmF5
QnVmZmVyVmlld1N1YlRhZyogdGFnKQorICAgIHsKKyAgICAgICAgaWYgKG1fcG9zaXRpb24gPj0g
bV9sZW5ndGgpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICp0YWcgPSBzdGF0
aWNfY2FzdDxBcnJheUJ1ZmZlclZpZXdTdWJUYWc+KG1fYnVmZmVyW21fcG9zaXRpb24rK10pOwor
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKICAgICBib29sIHJlYWRTdHJpbmcodjg6Okhh
bmRsZTx2ODo6VmFsdWU+KiB2YWx1ZSkKICAgICB7CiAgICAgICAgIHVpbnQzMl90IGxlbmd0aDsK
QEAgLTkzMiw2ICsxMzMxLDEwNyBAQCBwcml2YXRlOgogICAgICAgICByZXR1cm4gdHJ1ZTsKICAg
ICB9CiAKKyAgICBQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBkb1JlYWRBcnJheUJ1ZmZlcigpCisg
ICAgeworICAgICAgICB1aW50MzJfdCBieXRlTGVuZ3RoOworICAgICAgICBpZiAoIWRvUmVhZFVp
bnQzMigmYnl0ZUxlbmd0aCkpCisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgaWYgKG1f
cG9zaXRpb24gKyBieXRlTGVuZ3RoID4gbV9sZW5ndGgpCisgICAgICAgICAgICByZXR1cm4gMDsK
KyAgICAgICAgY29uc3Qgdm9pZCogYnVmZmVyU3RhcnQgPSBtX2J1ZmZlciArIG1fcG9zaXRpb247
CisgICAgICAgIFJlZlB0cjxBcnJheUJ1ZmZlcj4gYXJyYXlCdWZmZXIgPSBBcnJheUJ1ZmZlcjo6
Y3JlYXRlKGNvbnN0X2Nhc3Q8dm9pZCo+KGJ1ZmZlclN0YXJ0KSwgYnl0ZUxlbmd0aCk7CisgICAg
ICAgIG1fcG9zaXRpb24gKz0gYnl0ZUxlbmd0aDsKKyAgICAgICAgcmV0dXJuIGFycmF5QnVmZmVy
LnJlbGVhc2UoKTsKKyAgICB9CisKKyAgICBib29sIHJlYWRBcnJheUJ1ZmZlcih2ODo6SGFuZGxl
PHY4OjpWYWx1ZT4qIHZhbHVlKQorICAgIHsKKyAgICAgICAgUmVmUHRyPEFycmF5QnVmZmVyPiBh
cnJheUJ1ZmZlciA9IGRvUmVhZEFycmF5QnVmZmVyKCk7CisgICAgICAgIGlmICghYXJyYXlCdWZm
ZXIpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICp2YWx1ZSA9IHRvVjgoYXJy
YXlCdWZmZXIucmVsZWFzZSgpKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAg
Ym9vbCByZWFkQXJyYXlCdWZmZXJWaWV3KHY4OjpIYW5kbGU8djg6OlZhbHVlPiogdmFsdWUsIENv
bXBvc2l0ZUNyZWF0b3ImIGNyZWF0b3IpCisgICAgeworICAgICAgICBBcnJheUJ1ZmZlclZpZXdT
dWJUYWcgc3ViVGFnOworICAgICAgICB1aW50MzJfdCBieXRlT2Zmc2V0OworICAgICAgICB1aW50
MzJfdCBieXRlTGVuZ3RoOworICAgICAgICBSZWZQdHI8QXJyYXlCdWZmZXI+IGFycmF5QnVmZmVy
OworICAgICAgICB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gYXJyYXlCdWZmZXJWOFZhbHVlOworICAg
ICAgICBpZiAoIXJlYWRTdWJUYWcoJnN1YlRhZykpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgICAgIGlmICghZG9SZWFkVWludDMyKCZieXRlT2Zmc2V0KSkKKyAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICAgICAgaWYgKCFkb1JlYWRVaW50MzIoJmJ5dGVMZW5ndGgpKQorICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBpZiAoIWNyZWF0b3IuY29uc3VtZVRvcE9m
U3RhY2soYXJyYXlCdWZmZXJWOFZhbHVlKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICAgICAgYXJyYXlCdWZmZXIgPSBWOEFycmF5QnVmZmVyOjp0b05hdGl2ZShhcnJheUJ1ZmZlclY4
VmFsdWUuQXM8djg6Ok9iamVjdD4oKSk7CisgICAgICAgIGlmICghYXJyYXlCdWZmZXIpCisgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHN3aXRjaCAoc3ViVGFnKSB7CisgICAgICAg
IGNhc2UgQnl0ZUFycmF5VGFnOgorICAgICAgICAgICAgKnZhbHVlID0gdG9WOChJbnQ4QXJyYXk6
OmNyZWF0ZShhcnJheUJ1ZmZlci5yZWxlYXNlKCksIGJ5dGVPZmZzZXQsIGJ5dGVMZW5ndGgpKTsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFVuc2lnbmVkQnl0ZUFycmF5VGFnOgor
ICAgICAgICAgICAgKnZhbHVlID0gdG9WOChVaW50OEFycmF5OjpjcmVhdGUoYXJyYXlCdWZmZXIu
cmVsZWFzZSgpLCBieXRlT2Zmc2V0LCBieXRlTGVuZ3RoKSk7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSBTaG9ydEFycmF5VGFnOiB7CisgICAgICAgICAgICB1aW50MzJfdCBzaG9y
dExlbmd0aCA9IGJ5dGVMZW5ndGggLyBzaXplb2YoaW50MTZfdCk7CisgICAgICAgICAgICBpZiAo
c2hvcnRMZW5ndGggKiBzaXplb2YoaW50MTZfdCkgIT0gYnl0ZUxlbmd0aCkKKyAgICAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAqdmFsdWUgPSB0b1Y4KEludDE2QXJyYXk6
OmNyZWF0ZShhcnJheUJ1ZmZlci5yZWxlYXNlKCksIGJ5dGVPZmZzZXQsIHNob3J0TGVuZ3RoKSk7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBjYXNlIFVuc2lnbmVkU2hv
cnRBcnJheVRhZzogeworICAgICAgICAgICAgdWludDMyX3Qgc2hvcnRMZW5ndGggPSBieXRlTGVu
Z3RoIC8gc2l6ZW9mKHVpbnQxNl90KTsKKyAgICAgICAgICAgIGlmIChzaG9ydExlbmd0aCAqIHNp
emVvZihpbnQxNl90KSAhPSBieXRlTGVuZ3RoKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICAgICAgICAgICp2YWx1ZSA9IHRvVjgoVWludDE2QXJyYXk6OmNyZWF0ZShhcnJheUJ1
ZmZlci5yZWxlYXNlKCksIGJ5dGVPZmZzZXQsIHNob3J0TGVuZ3RoKSk7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgfQorICAgICAgICBjYXNlIEludEFycmF5VGFnOiB7CisgICAgICAgICAg
ICB1aW50MzJfdCBpbnRMZW5ndGggPSBieXRlTGVuZ3RoIC8gc2l6ZW9mKGludDMyX3QpOworICAg
ICAgICAgICAgaWYgKGludExlbmd0aCAqIHNpemVvZihpbnQzMl90KSAhPSBieXRlTGVuZ3RoKQor
ICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICp2YWx1ZSA9IHRvVjgo
SW50MzJBcnJheTo6Y3JlYXRlKGFycmF5QnVmZmVyLnJlbGVhc2UoKSwgYnl0ZU9mZnNldCwgaW50
TGVuZ3RoKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBjYXNlIFVu
c2lnbmVkSW50QXJyYXlUYWc6IHsKKyAgICAgICAgICAgIHVpbnQzMl90IGludExlbmd0aCA9IGJ5
dGVMZW5ndGggLyBzaXplb2YodWludDMyX3QpOworICAgICAgICAgICAgaWYgKGludExlbmd0aCAq
IHNpemVvZih1aW50MzJfdCkgIT0gYnl0ZUxlbmd0aCkKKyAgICAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgICAgICAgICAqdmFsdWUgPSB0b1Y4KFVpbnQzMkFycmF5OjpjcmVhdGUoYXJy
YXlCdWZmZXIucmVsZWFzZSgpLCBieXRlT2Zmc2V0LCBpbnRMZW5ndGgpKTsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICB9CisgICAgICAgIGNhc2UgRmxvYXRBcnJheVRhZzogeworICAgICAg
ICAgICAgdWludDMyX3QgZmxvYXRMZW5ndGggPSBieXRlTGVuZ3RoIC8gc2l6ZW9mKGZsb2F0KTsK
KyAgICAgICAgICAgIGlmIChmbG9hdExlbmd0aCAqIHNpemVvZihmbG9hdCkgIT0gYnl0ZUxlbmd0
aCkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAqdmFsdWUgPSB0
b1Y4KEZsb2F0MzJBcnJheTo6Y3JlYXRlKGFycmF5QnVmZmVyLnJlbGVhc2UoKSwgYnl0ZU9mZnNl
dCwgZmxvYXRMZW5ndGgpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAg
IGNhc2UgRG91YmxlQXJyYXlUYWc6IHsKKyAgICAgICAgICAgIHVpbnQzMl90IGZsb2F0TGVuZ3Ro
ID0gYnl0ZUxlbmd0aCAvIHNpemVvZihkb3VibGUpOworICAgICAgICAgICAgaWYgKGZsb2F0TGVu
Z3RoICogc2l6ZW9mKGRvdWJsZSkgIT0gYnl0ZUxlbmd0aCkKKyAgICAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgICAgICAgICAqdmFsdWUgPSB0b1Y4KEZsb2F0NjRBcnJheTo6Y3JlYXRl
KGFycmF5QnVmZmVyLnJlbGVhc2UoKSwgYnl0ZU9mZnNldCwgZmxvYXRMZW5ndGgpKTsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGNhc2UgRGF0YVZpZXdUYWc6CisgICAg
ICAgICAgICAqdmFsdWUgPSB0b1Y4KERhdGFWaWV3OjpjcmVhdGUoYXJyYXlCdWZmZXIucmVsZWFz
ZSgpLCBieXRlT2Zmc2V0LCBieXRlTGVuZ3RoKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAg
ICAvLyBUaGUgdmFyaW91cyAqQXJyYXk6OmNyZWF0ZSgpIG1ldGhvZHMgd2lsbCByZXR1cm4gbnVs
bCBpZiB0aGUgcmFuZ2UgdGhlIHZpZXcgZXhwZWN0cyBpcworICAgICAgICAvLyBtaXNtYXRjaGVk
IHdpdGggdGhlIHJhbmdlIHRoZSBidWZmZXIgY2FuIHByb3ZpZGUgb3IgaWYgdGhlIGJ5dGUgb2Zm
c2V0IGlzIG5vdCBhbGlnbmVkCisgICAgICAgIC8vIHRvIHRoZSBzaXplIG9mIHRoZSBlbGVtZW50
IHR5cGUuCisgICAgICAgIHJldHVybiAhdmFsdWUtPklzRW1wdHkoKTsKKyAgICB9CisKICAgICBi
b29sIHJlYWRSZWdFeHAodjg6OkhhbmRsZTx2ODo6VmFsdWU+KiB2YWx1ZSkKICAgICB7CiAgICAg
ICAgIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBwYXR0ZXJuOwpAQCAtMTAzNywzMiArMTUzNyw2MyBA
QCBwcml2YXRlOgogICAgIGNvbnN0IHVpbnQ4X3QqIG1fYnVmZmVyOwogICAgIGNvbnN0IHVuc2ln
bmVkIG1fbGVuZ3RoOwogICAgIHVuc2lnbmVkIG1fcG9zaXRpb247CisgICAgdWludDMyX3QgbV92
ZXJzaW9uOwogfTsKIAogY2xhc3MgRGVzZXJpYWxpemVyIDogcHVibGljIENvbXBvc2l0ZUNyZWF0
b3IgewogcHVibGljOgogICAgIGV4cGxpY2l0IERlc2VyaWFsaXplcihSZWFkZXImIHJlYWRlcikK
ICAgICAgICAgOiBtX3JlYWRlcihyZWFkZXIpCisgICAgICAgICwgbV92ZXJzaW9uKDApCiAgICAg
ewogICAgIH0KIAogICAgIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBkZXNlcmlhbGl6ZSgpCiAgICAg
eworICAgICAgICBpZiAoIW1fcmVhZGVyLnJlYWRWZXJzaW9uKG1fdmVyc2lvbikgfHwgbV92ZXJz
aW9uID4gd2lyZUZvcm1hdFZlcnNpb24pCisgICAgICAgICAgICByZXR1cm4gdjg6Ok51bGwoKTsK
KyAgICAgICAgbV9yZWFkZXIuc2V0VmVyc2lvbihtX3ZlcnNpb24pOwogICAgICAgICB2ODo6SGFu
ZGxlU2NvcGUgc2NvcGU7CiAgICAgICAgIHdoaWxlICghbV9yZWFkZXIuaXNFb2YoKSkgewogICAg
ICAgICAgICAgaWYgKCFkb0Rlc2VyaWFsaXplKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHY4
OjpOdWxsKCk7CiAgICAgICAgIH0KLSAgICAgICAgaWYgKHN0YWNrRGVwdGgoKSAhPSAxKQorICAg
ICAgICBpZiAoc3RhY2tEZXB0aCgpICE9IDEgfHwgbV9vYmpyZWZTdGFjay5zaXplKCkpCiAgICAg
ICAgICAgICByZXR1cm4gdjg6Ok51bGwoKTsKLSAgICAgICAgcmV0dXJuIHNjb3BlLkNsb3NlKGVs
ZW1lbnQoMCkpOworICAgICAgICB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gcmVzdWx0ID0gc2NvcGUu
Q2xvc2UoZWxlbWVudCgwKSk7CisgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQogCi0gICAg
dmlydHVhbCBib29sIGNyZWF0ZUFycmF5KHVpbnQzMl90IGxlbmd0aCwgdjg6OkhhbmRsZTx2ODo6
VmFsdWU+KiB2YWx1ZSkKKyAgICB2aXJ0dWFsIGJvb2wgcHJlcGFyZUVtcHR5QXJyYXkodWludDMy
X3QgbGVuZ3RoKQorICAgIHsKKyAgICAgICAgdjg6OkxvY2FsPHY4OjpBcnJheT4gYXJyYXkgPSB2
ODo6QXJyYXk6Ok5ldyhsZW5ndGgpOworICAgICAgICBpZiAoYXJyYXkuSXNFbXB0eSgpKQorICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBvcGVuTmV3Q29tcG9zaXRlKGFycmF5KTsK
KyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgdmlydHVhbCBib29sIGNvbnN1bWVU
b3BPZlN0YWNrKHY4OjpIYW5kbGU8djg6OlZhbHVlPiYgb2JqKQorICAgIHsKKyAgICAgICAgaWYg
KHN0YWNrRGVwdGgoKSA8IDEpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIG9i
aiA9IGVsZW1lbnQoc3RhY2tEZXB0aCgpIC0gMSk7CisgICAgICAgIHBvcCgxKTsKKyAgICAgICAg
cmV0dXJuIHRydWU7CisgICAgfQorCisgICAgdmlydHVhbCBib29sIGZpbmlzaEFycmF5KHVpbnQz
Ml90IGxlbmd0aCwgdjg6OkhhbmRsZTx2ODo6VmFsdWU+KiB2YWx1ZSkKICAgICB7CiAgICAgICAg
IGlmIChsZW5ndGggPiBzdGFja0RlcHRoKCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0g
ICAgICAgIHY4OjpMb2NhbDx2ODo6QXJyYXk+IGFycmF5ID0gdjg6OkFycmF5OjpOZXcobGVuZ3Ro
KTsKKyAgICAgICAgdjg6OkxvY2FsPHY4OjpBcnJheT4gYXJyYXk7CisgICAgICAgIGlmIChtX3Zl
cnNpb24gPiAwKSB7CisgICAgICAgICAgICB2ODo6TG9jYWw8djg6OlZhbHVlPiBjb21wb3NpdGU7
CisgICAgICAgICAgICBpZiAoIWNsb3NlQ29tcG9zaXRlKGNvbXBvc2l0ZSkpCisgICAgICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgYXJyYXkgPSBjb21wb3NpdGUuQXM8djg6
OkFycmF5PigpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIGFycmF5ID0gdjg6OkFycmF5
OjpOZXcobGVuZ3RoKTsKICAgICAgICAgaWYgKGFycmF5LklzRW1wdHkoKSkKICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICAgICAgY29uc3QgaW50IGRlcHRoID0gc3RhY2tEZXB0aCgpIC0g
bGVuZ3RoOwpAQCAtMTA3MywyMiArMTYwNCw2NCBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiB0
cnVlOwogICAgIH0KIAotICAgIHZpcnR1YWwgYm9vbCBjcmVhdGVPYmplY3QodWludDMyX3QgbnVt
UHJvcGVydGllcywgdjg6OkhhbmRsZTx2ODo6VmFsdWU+KiB2YWx1ZSkKKyAgICB2aXJ0dWFsIGJv
b2wgcHJlcGFyZUVtcHR5T2JqZWN0KCkKICAgICB7CiAgICAgICAgIHY4OjpMb2NhbDx2ODo6T2Jq
ZWN0PiBvYmplY3QgPSB2ODo6T2JqZWN0OjpOZXcoKTsKICAgICAgICAgaWYgKG9iamVjdC5Jc0Vt
cHR5KCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIG9wZW5OZXdDb21wb3Np
dGUob2JqZWN0KTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgdmlydHVhbCBi
b29sIGZpbmlzaE9iamVjdCh1aW50MzJfdCBudW1Qcm9wZXJ0aWVzLCB2ODo6SGFuZGxlPHY4OjpW
YWx1ZT4qIHZhbHVlKQorICAgIHsKKyAgICAgICAgdjg6OkxvY2FsPHY4OjpPYmplY3Q+IG9iamVj
dDsKKyAgICAgICAgaWYgKG1fdmVyc2lvbiA+IDApIHsKKyAgICAgICAgICAgIHY4OjpMb2NhbDx2
ODo6VmFsdWU+IGNvbXBvc2l0ZTsKKyAgICAgICAgICAgIGlmICghY2xvc2VDb21wb3NpdGUoY29t
cG9zaXRlKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBvYmpl
Y3QgPSBjb21wb3NpdGUuQXM8djg6Ok9iamVjdD4oKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAg
ICAgICBvYmplY3QgPSB2ODo6T2JqZWN0OjpOZXcoKTsKKyAgICAgICAgaWYgKG9iamVjdC5Jc0Vt
cHR5KCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIHJldHVybiBpbml0aWFs
aXplT2JqZWN0KG9iamVjdCwgbnVtUHJvcGVydGllcywgdmFsdWUpOwogICAgIH0KIAotICAgIHZp
cnR1YWwgYm9vbCBjcmVhdGVTcGFyc2VBcnJheSh1aW50MzJfdCBudW1Qcm9wZXJ0aWVzLCB1aW50
MzJfdCBsZW5ndGgsIHY4OjpIYW5kbGU8djg6OlZhbHVlPiogdmFsdWUpCisgICAgdmlydHVhbCBi
b29sIGZpbmlzaFNwYXJzZUFycmF5KHVpbnQzMl90IG51bVByb3BlcnRpZXMsIHVpbnQzMl90IGxl
bmd0aCwgdjg6OkhhbmRsZTx2ODo6VmFsdWU+KiB2YWx1ZSkKICAgICB7Ci0gICAgICAgIHY4OjpM
b2NhbDx2ODo6QXJyYXk+IGFycmF5ID0gdjg6OkFycmF5OjpOZXcobGVuZ3RoKTsKKyAgICAgICAg
djg6OkxvY2FsPHY4OjpBcnJheT4gYXJyYXk7CisgICAgICAgIGlmIChtX3ZlcnNpb24gPiAwKSB7
CisgICAgICAgICAgICB2ODo6TG9jYWw8djg6OlZhbHVlPiBjb21wb3NpdGU7CisgICAgICAgICAg
ICBpZiAoIWNsb3NlQ29tcG9zaXRlKGNvbXBvc2l0ZSkpCisgICAgICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgICAgICAgICAgYXJyYXkgPSBjb21wb3NpdGUuQXM8djg6OkFycmF5PigpOwor
ICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIGFycmF5ID0gdjg6OkFycmF5OjpOZXcobGVuZ3Ro
KTsKICAgICAgICAgaWYgKGFycmF5LklzRW1wdHkoKSkKICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICAgICAgcmV0dXJuIGluaXRpYWxpemVPYmplY3QoYXJyYXksIG51bVByb3BlcnRpZXMs
IHZhbHVlKTsKICAgICB9CiAKKyAgICB2aXJ0dWFsIGNvbnN0IHY4OjpIYW5kbGU8djg6OlZhbHVl
PiYgcHVzaE9iamVjdFJlZmVyZW5jZShjb25zdCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4mIG9iaikK
KyAgICB7CisgICAgICAgIG1fb2JqZWN0UG9vbC5hcHBlbmQob2JqKTsKKyAgICAgICAgcmV0dXJu
IG9iajsKKyAgICB9CisKKyAgICB2aXJ0dWFsIGJvb2wgZ2V0T2JqZWN0UmVmZXJlbmNlKHVpbnQz
Ml90IHJlZiwgdjg6OkhhbmRsZTx2ODo6VmFsdWU+KiBvYmopCisgICAgeworICAgICAgICBpZiAo
cmVmID49IG1fb2JqZWN0UG9vbC5zaXplKCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgICAgICpvYmogPSBtX29iamVjdFBvb2xbcmVmXTsKKyAgICAgICAgcmV0dXJuIG9iajsKKyAg
ICB9CisKKyAgICB2aXJ0dWFsIHVpbnQzMl90IG9iamVjdFJlZmVyZW5jZUNvdW50KCkKKyAgICB7
CisgICAgICAgIHJldHVybiBtX29iamVjdFBvb2wuc2l6ZSgpOworICAgIH0KKwogcHJpdmF0ZToK
ICAgICBib29sIGluaXRpYWxpemVPYmplY3Qodjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBvYmplY3Qs
IHVpbnQzMl90IG51bVByb3BlcnRpZXMsIHY4OjpIYW5kbGU8djg6OlZhbHVlPiogdmFsdWUpCiAg
ICAgewpAQCAtMTEzMSw4ICsxNzA0LDMxIEBAIHByaXZhdGU6CiAgICAgICAgIHJldHVybiBtX3N0
YWNrW2luZGV4XTsKICAgICB9CiAKKyAgICB1aW50MzJfdCBvcGVuTmV3Q29tcG9zaXRlKGNvbnN0
IHY4OjpMb2NhbDx2ODo6VmFsdWU+JiBvYmopCisgICAgeworICAgICAgICB1aW50MzJfdCBuZXdp
ZCA9IG1fb2JqZWN0UG9vbC5zaXplKCk7CisgICAgICAgIG1fb2JqcmVmU3RhY2suYXBwZW5kKG5l
d2lkKTsKKyAgICAgICAgbV9vYmplY3RQb29sLmFwcGVuZChvYmopOworICAgICAgICByZXR1cm4g
bmV3aWQ7CisgICAgfQorCisgICAgYm9vbCBjbG9zZUNvbXBvc2l0ZSh2ODo6SGFuZGxlPHY4OjpW
YWx1ZT4mIG9iaikKKyAgICB7CisgICAgICAgIGlmICghbV9vYmpyZWZTdGFjay5zaXplKCkpCisg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHVpbnQzMl90IG9sZGlkID0gbV9vYmpy
ZWZTdGFja1ttX29ianJlZlN0YWNrLnNpemUoKSAtIDFdOworICAgICAgICBtX29ianJlZlN0YWNr
LnNocmluayhtX29ianJlZlN0YWNrLnNpemUoKSAtIDEpOworICAgICAgICBpZiAob2xkaWQgPj0g
bV9vYmplY3RQb29sLnNpemUoKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAg
b2JqID0gbV9vYmplY3RQb29sW29sZGlkXTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQor
CiAgICAgUmVhZGVyJiBtX3JlYWRlcjsKICAgICBWZWN0b3I8djg6OkxvY2FsPHY4OjpWYWx1ZT4g
PiBtX3N0YWNrOworICAgIFZlY3Rvcjx2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gPiBtX29iamVjdFBv
b2w7CisgICAgVmVjdG9yPHVpbnQzMl90PiBtX29ianJlZlN0YWNrOworICAgIHVpbnQzMl90IG1f
dmVyc2lvbjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlCkBAIC0xMjM2LDcgKzE4MzIsMTIgQEAgU2Vy
aWFsaXplZFNjcmlwdFZhbHVlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWUodjg6OkhhbmRsZTx2ODo6
VmFsdWU+IHZhbHVlLCBib29sJgogICAgICAgICAvLyBJZiB0aGVyZSB3YXMgYW4gaW5wdXQgZXJy
b3IsIHRocm93IGEgbmV3IGV4Y2VwdGlvbiBvdXRzaWRlCiAgICAgICAgIC8vIG9mIHRoZSBUcnlD
YXRjaCBzY29wZS4KICAgICAgICAgZGlkVGhyb3cgPSB0cnVlOwotICAgICAgICB0aHJvd0Vycm9y
KE5PVF9TVVBQT1JURURfRVJSKTsKKyAgICAgICAgdGhyb3dFcnJvcihEQVRBX0NMT05FX0VSUik7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKHN0YXR1cyA9PSBTZXJpYWxpemVyOjpE
YXRhQ2xvbmVFcnJvcikgeworICAgICAgICBkaWRUaHJvdyA9IHRydWU7CisgICAgICAgIHRocm93
RXJyb3IoREFUQV9DTE9ORV9FUlIpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIGlmIChz
dGF0dXMgPT0gU2VyaWFsaXplcjo6SlNGYWlsdXJlKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhEYXRhVmlld0N1c3RvbS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhEYXRhVmlld0N1c3RvbS5jcHAKaW5kZXggZjI2MGNm
Zi4uMTBiMmQyOCAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9t
L1Y4RGF0YVZpZXdDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1
c3RvbS9WOERhdGFWaWV3Q3VzdG9tLmNwcApAQCAtNDEsNiArNDEsMTMgQEAgdjg6OkhhbmRsZTx2
ODo6VmFsdWU+IFY4RGF0YVZpZXc6OmNvbnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3Vt
ZW50cyYgYXJncykKICAgICBpZiAoIWFyZ3MuSXNDb25zdHJ1Y3RDYWxsKCkpCiAgICAgICAgIHJl
dHVybiB0aHJvd0Vycm9yKCJET00gb2JqZWN0IGNvbnN0cnVjdG9yIGNhbm5vdCBiZSBjYWxsZWQg
YXMgYSBmdW5jdGlvbiIsIFY4UHJveHk6OlN5bnRheEVycm9yKTsKIAorICAgIGlmICghYXJncy5M
ZW5ndGgoKSkgeworICAgICAgICAvLyBzZWUgY29uc3RydWN0V2ViR0xBcnJheSAtLSB3ZSBkb24n
dCBzZWVtIHRvIGJlIGFibGUgdG8gZGlzdGluZ2lzaCBiZXR3ZWVuCisgICAgICAgIC8vICduZXcg
RGF0YVZpZXcoKScgYW5kIHRoZSBjYWxsIHVzZWQgdG8gY29uc3RydWN0IHRoZSBjYWNoZWQgRGF0
YVZpZXcgb2JqZWN0LgorICAgICAgICBSZWZQdHI8RGF0YVZpZXc+IGRhdGFWaWV3ID0gRGF0YVZp
ZXc6OmNyZWF0ZSgwKTsKKyAgICAgICAgVjhET01XcmFwcGVyOjpzZXRET01XcmFwcGVyKGFyZ3Mu
SG9sZGVyKCksICZpbmZvLCBkYXRhVmlldy5nZXQoKSk7CisgICAgICAgIHJldHVybiB0b1Y4KGRh
dGFWaWV3LnJlbGVhc2UoKSwgYXJncy5Ib2xkZXIoKSk7CisgICAgfQogICAgIGlmIChhcmdzWzBd
LT5Jc051bGwoKSB8fCAhVjhBcnJheUJ1ZmZlcjo6SGFzSW5zdGFuY2UoYXJnc1swXSkpCiAgICAg
ICAgIHJldHVybiBWOFByb3h5Ojp0aHJvd1R5cGVFcnJvcigpOwogICAgIHJldHVybiBjb25zdHJ1
Y3RXZWJHTEFycmF5V2l0aEFycmF5QnVmZmVyQXJndW1lbnQ8RGF0YVZpZXcsIGNoYXI+KGFyZ3Ms
ICZpbmZvLCB2ODo6a0V4dGVybmFsQnl0ZUFycmF5LCBmYWxzZSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRE9NQ29yZUV4Y2VwdGlvbi5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RE9NQ29yZUV4Y2VwdGlvbi5pZGwKaW5kZXggOTQ1NzEyZC4uNmM5MWNhNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0RPTUNvcmVFeGNlcHRpb24uaWRsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9ET01Db3JlRXhjZXB0aW9uLmlkbApAQCAtNzQsNiArNzQsOSBAQCBtb2R1bGUgY29y
ZSB7CiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0ICAgICAgQUJPUlRfRVJSICAgICAgICAg
ICAgICAgICAgICAgID0gMjA7CiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0ICAgICAgVVJM
X01JU01BVENIX0VSUiAgICAgICAgICAgICAgID0gMjE7CiAgICAgICAgIGNvbnN0IHVuc2lnbmVk
IHNob3J0ICAgICAgUVVPVEFfRVhDRUVERURfRVJSICAgICAgICAgICAgID0gMjI7CisgICAgICAg
IGNvbnN0IHVuc2lnbmVkIHNob3J0ICAgICAgVElNRU9VVF9FUlIgICAgICAgICAgICAgICAgICAg
ID0gMjM7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0ICAgICAgSU5WQUxJRF9OT0RFX1RZ
UEVfRVJSICAgICAgICAgID0gMjQ7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0ICAgICAg
REFUQV9DTE9ORV9FUlIgICAgICAgICAgICAgICAgID0gMjU7CiAgICAgfTsKIAogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V4Y2VwdGlvbkNvZGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvZG9tL0V4Y2VwdGlvbkNvZGUuY3BwCmluZGV4IGNhZWE1NTkuLjhiODJmNWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FeGNlcHRpb25Db2RlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRXhjZXB0aW9uQ29kZS5jcHAKQEAgLTcyLDcgKzcyLDEwIEBAIHN0YXRpYyBjb25z
dCBjaGFyKiBjb25zdCBleGNlcHRpb25OYW1lc1tdID0gewogICAgICJORVRXT1JLX0VSUiIsCiAg
ICAgIkFCT1JUX0VSUiIsCiAgICAgIlVSTF9NSVNNQVRDSF9FUlIiLAotICAgICJRVU9UQV9FWENF
RURFRF9FUlIiCisgICAgIlFVT1RBX0VYQ0VFREVEX0VSUiIsCisgICAgIlRJTUVPVVRfRVJSIiwK
KyAgICAiSU5WQUxJRF9OT0RFX1RZUEVfRVJSIiwKKyAgICAiREFUQV9DTE9ORV9FUlIiCiB9Owog
CiBzdGF0aWMgY29uc3QgY2hhciogY29uc3QgZXhjZXB0aW9uRGVzY3JpcHRpb25zW10gPSB7CkBA
IC05OCw3ICsxMDEsMTAgQEAgc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IGV4Y2VwdGlvbkRlc2Ny
aXB0aW9uc1tdID0gewogICAgICJBIG5ldHdvcmsgZXJyb3Igb2NjdXJlZC4iLAogICAgICJUaGUg
dXNlciBhYm9ydGVkIGEgcmVxdWVzdC4iLAogICAgICJBIHdvcmtlciBnbG9iYWwgc2NvcGUgcmVw
cmVzZW50ZWQgYW4gYWJzb2x1dGUgVVJMIHRoYXQgaXMgbm90IGVxdWFsIHRvIHRoZSByZXN1bHRp
bmcgYWJzb2x1dGUgVVJMLiIsCi0gICAgIkFuIGF0dGVtcHQgd2FzIG1hZGUgdG8gYWRkIHNvbWV0
aGluZyB0byBzdG9yYWdlIHRoYXQgZXhjZWVkZWQgdGhlIHF1b3RhLiIKKyAgICAiQW4gYXR0ZW1w
dCB3YXMgbWFkZSB0byBhZGQgc29tZXRoaW5nIHRvIHN0b3JhZ2UgdGhhdCBleGNlZWRlZCB0aGUg
cXVvdGEuIiwKKyAgICAiQSB0aW1lb3V0IG9jY3VycmVkLiIsCisgICAgIlRoZSBzdXBwbGllZCBu
b2RlIGlzIGludmFsaWQgb3IgaGFzIGFuIGludmFsaWQgYW5jZXN0b3IgZm9yIHRoaXMgb3BlcmF0
aW9uLiIsCisgICAgIkFuIG9iamVjdCBjb3VsZCBub3QgYmUgY2xvbmVkLiIKIH07CiAKIHN0YXRp
YyBjb25zdCBjaGFyKiBjb25zdCByYW5nZUV4Y2VwdGlvbk5hbWVzW10gPSB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRXhjZXB0aW9uQ29kZS5oIGIvU291cmNlL1dlYkNvcmUvZG9t
L0V4Y2VwdGlvbkNvZGUuaAppbmRleCA5Y2VlNjZiLi5jZWE2ZjY3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRXhjZXB0aW9uQ29kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9F
eGNlcHRpb25Db2RlLmgKQEAgLTU3LDE0ICs1NywxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgICAgIE5FVFdPUktfRVJSID0gMTksCiAgICAgICAgIEFCT1JUX0VSUiA9IDIwLAogICAgICAg
ICBVUkxfTUlTTUFUQ0hfRVJSID0gMjEsCi0gICAgICAgIFFVT1RBX0VYQ0VFREVEX0VSUiA9IDIy
Ci0KLSAgICAgICAgLy8gSW50cm9kdWNlZCBpbiBGaWxlIEFQSToKLSAgICAgICAgLy8gaHR0cDov
L3d3dy53My5vcmcvVFIvZmlsZS11cGxvYWQvI2Rmbi1maWxlZXJyb3IKLSNpZiBFTkFCTEUoQkxP
QikgfHwgRU5BQkxFKEZJTEVfU1lTVEVNKQotICAgICAgICAsIE5PVF9SRUFEQUJMRV9FUlIgPSAy
NAotICAgICAgICAsIEVOQ09ESU5HX0VSUiA9IDI2Ci0jZW5kaWYKKyAgICAgICAgUVVPVEFfRVhD
RUVERURfRVJSID0gMjIsCisgICAgICAgIFRJTUVPVVRfRVJSID0gMjMsCisgICAgICAgIElOVkFM
SURfTk9ERV9UWVBFX0VSUiA9IDI0LAorICAgICAgICBEQVRBX0NMT05FX0VSUiA9IDI1CiAgICAg
fTsKIAogICAgIGVudW0gRXhjZXB0aW9uVHlwZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9EYXRhVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9E
YXRhVmlldy5jcHAKaW5kZXggZTAwNDQzZC4uM2RiMDZkNiAxMDA3NTUKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvRGF0YVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL0RhdGFWaWV3LmNwcApAQCAtNDAsNiArNDAsMTQgQEAgdW5pb24gVmFsdWUgewogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKK1Bhc3NSZWZQdHI8RGF0YVZpZXc+IERhdGFWaWV3OjpjcmVh
dGUodW5zaWduZWQgbGVuZ3RoKQoreworICAgIFJlZlB0cjxBcnJheUJ1ZmZlcj4gYnVmZmVyID0g
QXJyYXlCdWZmZXI6OmNyZWF0ZShsZW5ndGgsIHNpemVvZih1aW50OF90KSk7CisgICAgaWYgKCFi
dWZmZXIuZ2V0KCkpCisgICAgICAgIHJldHVybiAwOworICAgIHJldHVybiBjcmVhdGUoYnVmZmVy
LCAwLCBsZW5ndGgpOworfQorCiBQYXNzUmVmUHRyPERhdGFWaWV3PiBEYXRhVmlldzo6Y3JlYXRl
KFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IGJ1ZmZlciwgdW5zaWduZWQgYnl0ZU9mZnNldCwgdW5z
aWduZWQgYnl0ZUxlbmd0aCkKIHsKICAgICBpZiAoYnl0ZU9mZnNldCA+IGJ1ZmZlci0+Ynl0ZUxl
bmd0aCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvRGF0YVZpZXcu
aCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0RhdGFWaWV3LmgKaW5kZXggYThhYmE1Yy4u
NWU4MGY4YyAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvRGF0YVZpZXcu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9EYXRhVmlldy5oCkBAIC0zNCw2ICsz
NCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRGF0YVZpZXcgOiBwdWJsaWMgQXJy
YXlCdWZmZXJWaWV3IHsKIHB1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxEYXRhVmlldz4g
Y3JlYXRlKHVuc2lnbmVkIGxlbmd0aCk7CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8RGF0YVZpZXc+
IGNyZWF0ZShQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiwgdW5zaWduZWQgYnl0ZU9mZnNldCwgdW5z
aWduZWQgYnl0ZUxlbmd0aCk7CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNEYXRhVmlldygpIGNvbnN0
IHsgcmV0dXJuIHRydWU7IH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>99884</attachid>
            <date>2011-07-06 14:37:41 -0700</date>
            <delta_ts>2011-07-13 11:49:43 -0700</delta_ts>
            <desc>Rebase and address comments.</desc>
            <filename>Patch230.patch</filename>
            <type>text/plain</type>
            <size>164994</size>
            <attacher name="Luke Zarko">lukezarko+bugzilla</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAzODdiYzZhLi44YmFmYTIwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjYgQEAKKzIwMTEtMDct
MDYgIEx1a2UgWmFya28gIDxsdWtlemFya29AZ21haWwuY29tPgorCisgICAgICAgIFRoZSBIVE1M
NSBTdHJ1Y3R1cmVkIENsb25lIGFsZ29yaXRobSAoaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNz
L3dlYi1hcHBzL2N1cnJlbnQtd29yay9tdWx0aXBhZ2UvdXJscy5odG1sI3NhZmUtcGFzc2luZy1v
Zi1zdHJ1Y3R1cmVkLWRhdGEpIGhhcyBiZWVuIHVwZGF0ZWQgc2luY2UgdGhlIFY4IHZlcnNpb24g
b2YgU2VyaWFsaXplZFNjcmlwdFZhbHVlIHdhcyBmaXJzdCBpbXBsZW1lbnRlZC4gVGhpcyBwYXRj
aCBhaW1zIHRvIGJyaW5nIHRoaXMgaW1wbGVtZW50YXRpb24gdXAgdG8gZGF0ZS4gSXQ6CisKKyAg
ICAgICAgLSBJbnRyb2R1Y2VzIHRoZSBuZXcgSFRNTDUgRE9NIGVycm9yIGNvZGVzIGZvciBUSU1F
T1VUX0VSUiwgSU5WQUxJRF9OT0RFX1RZUEVfRVJSLCBEQVRBX0NMT05FX0VSUgorICAgICAgICAt
IEhhbmRsZXMgY3ljbGljIHN0cnVjdHVyZXMgYW5kIGVxdWFsaXR5IG9mIHJlZmVyZW5jZSBwcmVz
ZXJ2YXRpb24gZm9yIGNsb25lZCB2YWx1ZXMKKyAgICAgICAgLSBBbGxvd3MgRGF0YVZpZXdzIHRv
IGJlIGNvbnN0cnVjdGVkIG9uIHRoZSBuYXRpdmUgc2lkZSB1c2luZyB0aGUgZXhpc3Rpbmcgd3Jh
cHBlciB0ZWNobmlxdWVzCisgICAgICAgIC0gQW1lbmRzIHRlc3RzIGFuZCBpbnRyb2R1Y2VzIG5l
dyBvbmVzIHRvIGNoZWNrIGZvciBjb3JyZWN0bmVzcyAodGhlIGJ1bGsgb2YgdGhlIHBhdGNoKQor
CisgICAgICAgIFRoZSBwYXRjaCBwZXJtaXRzIHRoZSBjbG9uaW5nIG9mIEphdmFTY3JpcHQgdHlw
ZWQgYXJyYXlzLiBUaGlzIGZ1bmN0aW9uYWxpdHkgaXMgaW4gYWN0aXZlIHVzZSBhbHJlYWR5IGFu
ZCB3YXMgc3VwcG9ydGVkIChzb21ld2hhdCBpbmVmZmljaWVudGx5KSBieSB0aGUgZXhpc3Rpbmcg
Y29kZSB0aHJvdWdoIGFuIGFydGlmYWN0IG9mIGltcGxlbWVudGF0aW9uLgorICAgICAgICAKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYzNDgxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2RvbS9X
aW5kb3cvc2NyaXB0LXRlc3RzL3Bvc3RtZXNzYWdlLWNsb25lLWRlZXAtYXJyYXkuanM6IEFkZGVk
LgorICAgICAgICAqIGZhc3QvZG9tL1dpbmRvdy9zY3JpcHQtdGVzdHMvcG9zdG1lc3NhZ2UtY2xv
bmUtcmVhbGx5LWRlZXAtYXJyYXkuanM6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL1dpbmRv
dy9zY3JpcHQtdGVzdHMvcG9zdG1lc3NhZ2UtY2xvbmUuanM6IEFkZGVkLgorICAgICAgICAodGh1
bmspOgorICAgICAgICAqIGZhc3QvZG9tL1dpbmRvdy9zY3JpcHQtdGVzdHMvcG9zdG1lc3NhZ2Ut
dGVzdC5qczogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1w
b3N0bWVzc2FnZS1jbG9uZS5odG1sLgorICAgICAgICAoKToKKyAgICAgICAgKHNhZmVUb1N0cmlu
Zyk6CisgICAgICAgIChzaG91bGRCZSk6CisgICAgICAgIChzaG91bGRCZUlkZW50aWNhbCk6Cisg
ICAgICAgIChkb1Bhc3MpOgorICAgICAgICAoZG9GYWlsKToKKyAgICAgICAgKHdpbmRvdy5kb1Bh
c3NGYWlsKToKKyAgICAgICAgKG9ubWVzc2FnZSk6CisgICAgICAgIChDb25zdHJ1Y3RvcldpdGhQ
cm90b3R5cGUpOgorICAgICAgICAod2luZG93LnRyeVBvc3RNZXNzYWdlKToKKyAgICAgICAgKiBm
YXN0L2RvbS9XaW5kb3cvd2luZG93LXBvc3RtZXNzYWdlLWNsb25lLWRlZXAtYXJyYXktZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9XaW5kb3cvd2luZG93LXBvc3RtZXNz
YWdlLWNsb25lLWRlZXAtYXJyYXkuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vV2lu
ZG93L3dpbmRvdy1wb3N0bWVzc2FnZS1jbG9uZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFz
dC9kb20vV2luZG93L3dpbmRvdy1wb3N0bWVzc2FnZS1jbG9uZS1yZWFsbHktZGVlcC1hcnJheS1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL1dpbmRvdy93aW5kb3ctcG9z
dG1lc3NhZ2UtY2xvbmUtcmVhbGx5LWRlZXAtYXJyYXkuaHRtbDogQWRkZWQuCisgICAgICAgICog
ZmFzdC9kb20vV2luZG93L3dpbmRvdy1wb3N0bWVzc2FnZS1jbG9uZS5odG1sOgorICAgICAgICAq
IGZhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9jYW52YXMvd2ViZ2wvYXJyYXktbWVzc2FnZS1wYXNz
aW5nLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vZmFz
dC9jYW52YXMvd2ViZ2wvYXJyYXktbWVzc2FnZS1wYXNzaW5nLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL2Nocm9taXVtL2Zhc3QvY2FudmFzL3dlYmdsL3NjcmlwdC10ZXN0cy9hcnJh
eS1tZXNzYWdlLXBhc3NpbmcuanM6IEFkZGVkLgorICAgICAgICAoY2xhc3NDb21wYXJlKToKKyAg
ICAgICAgKGJ1ZmZlckNvbXBhcmUpOgorICAgICAgICAodmlld0NvbXBhcmUpOgorICAgICAgICAo
dHlwZWRBcnJheUNvbXBhcmUpOgorICAgICAgICAoZGF0YVZpZXdDb21wYXJlKToKKyAgICAgICAg
KGNyZWF0ZUJ1ZmZlcik6CisgICAgICAgIChjcmVhdGVUeXBlZEFycmF5KToKKyAgICAgICAgKGNy
ZWF0ZVR5cGVkQXJyYXlPdmVyQnVmZmVyKToKKyAgICAgICAgKHRlc3RMaXN0KToKKyAgICAgICAg
KGRvbmVUZXN0KToKKyAgICAgICAgKHdpbmRvd0hhbmRsZU1lc3NhZ2UpOgorICAgICAgICAqIHBs
YXRmb3JtL2Nocm9taXVtL2Zhc3QvZG9tL1dpbmRvdy9zY3JpcHQtdGVzdHMvcG9zdG1lc3NhZ2Ut
Y2xvbmUtZXguanM6IEFkZGVkLgorICAgICAgICAodGh1bmspOgorICAgICAgICAqIHBsYXRmb3Jt
L2Nocm9taXVtL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcG9zdG1lc3NhZ2UtY2xvbmUtZGVlcC1h
cnJheS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL2Zh
c3QvZG9tL1dpbmRvdy93aW5kb3ctcG9zdG1lc3NhZ2UtY2xvbmUtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXBv
c3RtZXNzYWdlLWNsb25lLXJlYWxseS1kZWVwLWFycmF5LWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0OgorICAgICAg
ICAqIHBsYXRmb3JtL2d0ay9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMtZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL3F0LXdrMi9mYXN0L2RvbS9XaW5kb3cvd2luZG93
LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL3F0L2Zhc3QvZG9t
L1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3RvcmFn
ZS9pbmRleGVkZGIvb2JqZWN0c3RvcmUtYmFzaWNzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBz
dG9yYWdlL2luZGV4ZWRkYi9vYmplY3RzdG9yZS1iYXNpY3MuaHRtbDoKKwogMjAxMS0wNy0wNiAg
TWloYWkgUGFycGFyaXRhICA8bWloYWlwQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZW1vdmUg
Q2hyb21pdW0gTWFjIGZhaWxpbmcgZXhwZWN0YXRpb24gZm9yIGZhc3QvdGV4dC9mb250LXNpemUt
emVyby5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvc2NyaXB0
LXRlc3RzL3Bvc3RtZXNzYWdlLWNsb25lLWRlZXAtYXJyYXkuanMgYi9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9XaW5kb3cvc2NyaXB0LXRlc3RzL3Bvc3RtZXNzYWdlLWNsb25lLWRlZXAtYXJyYXkuanMK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDM5YzY1NAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9zY3JpcHQtdGVzdHMvcG9zdG1lc3Nh
Z2UtY2xvbmUtZGVlcC1hcnJheS5qcwpAQCAtMCwwICsxLDYgQEAKK2RvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJkZXNjcmlwdGlvbiIpLmlubmVySFRNTCA9ICJUZXN0cyB0aGF0IHdlIGFib3J0IGNs
b25pbmcgZGVlcChpc2gpIGFycmF5cy4iOworZGVlcEFycmF5PVtdOworZm9yICh2YXIgaSA9IDA7
IGkgPCAxMDAwMDsgaSsrKQorICAgIGRlZXBBcnJheT1bZGVlcEFycmF5XTsKK3RyeVBvc3RNZXNz
YWdlKCdkZWVwQXJyYXknKTsKK3RyeVBvc3RNZXNzYWdlKCciZG9uZSInKTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9zY3JpcHQtdGVzdHMvcG9zdG1lc3NhZ2UtY2xv
bmUtcmVhbGx5LWRlZXAtYXJyYXkuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvc2Ny
aXB0LXRlc3RzL3Bvc3RtZXNzYWdlLWNsb25lLXJlYWxseS1kZWVwLWFycmF5LmpzCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhmYjYwOTYKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvc2NyaXB0LXRlc3RzL3Bvc3RtZXNzYWdlLWNsb25l
LXJlYWxseS1kZWVwLWFycmF5LmpzCkBAIC0wLDAgKzEsNiBAQAorZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoImRlc2NyaXB0aW9uIikuaW5uZXJIVE1MID0gIlRlc3RzIHRoYXQgd2UgYWJvcnQgY2xv
bmluZyBvdmVyZGVlcCBhcnJheXMuIjsKK3JlYWxseURlZXBBcnJheT1bXTsKK2ZvciAodmFyIGkg
PSAwOyBpIDwgMTAwMDAwOyBpKyspCisgICAgcmVhbGx5RGVlcEFycmF5PVtyZWFsbHlEZWVwQXJy
YXldOwordHJ5UG9zdE1lc3NhZ2UoJ3JlYWxseURlZXBBcnJheScsIHRydWUsIG51bGwsIERPTUV4
Y2VwdGlvbi5EQVRBX0NMT05FX0VSUik7Cit0cnlQb3N0TWVzc2FnZSgnImRvbmUiJyk7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvc2NyaXB0LXRlc3RzL3Bvc3RtZXNz
YWdlLWNsb25lLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3NjcmlwdC10ZXN0cy9w
b3N0bWVzc2FnZS1jbG9uZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5k
MDJjODMyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3Nj
cmlwdC10ZXN0cy9wb3N0bWVzc2FnZS1jbG9uZS5qcwpAQCAtMCwwICsxLDI3NCBAQAorZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoImRlc2NyaXB0aW9uIikuaW5uZXJIVE1MID0gIlRlc3RzIHRoYXQg
d2UgY2xvbmUgb2JqZWN0IGhpZXJhcmNoaWVzIjsKKwordHJ5UG9zdE1lc3NhZ2UoJ251bGwnKTsK
K3RyeVBvc3RNZXNzYWdlKCd1bmRlZmluZWQnKTsKK3RyeVBvc3RNZXNzYWdlKCcxJyk7Cit0cnlQ
b3N0TWVzc2FnZSgndHJ1ZScpOwordHJ5UG9zdE1lc3NhZ2UoJyIxIicpOwordHJ5UG9zdE1lc3Nh
Z2UoJyh7fSknKTsKK3RyeVBvc3RNZXNzYWdlKCcoe2E6MX0pJyk7Cit0cnlQb3N0TWVzc2FnZSgn
KHthOiJhIn0pJyk7Cit0cnlQb3N0TWVzc2FnZSgnKHtiOiJhIiwgYToiYiJ9KScpOwordHJ5UG9z
dE1lc3NhZ2UoJyh7cDA6InN0cmluZzAiLCBwMToic3RyaW5nMSIsIHAyOiJzdHJpbmcyIiwgcDM6
InN0cmluZzMiLCBwNDoic3RyaW5nNCIsIHA1OiJzdHJpbmc1IiwgcDY6InN0cmluZzYiLCBwNzoi
c3RyaW5nNyIsIHA4OiJzdHJpbmc4IiwgcDk6InN0cmluZzkiLCBwMTA6InN0cmluZzEwIiwgcDEx
OiJzdHJpbmcxMSIsIHAxMjoic3RyaW5nMTIiLCBwMTM6InN0cmluZzEzIiwgcDE0OiJzdHJpbmcx
NCIsIHAxNToic3RyaW5nMTUiLCBwMTY6InN0cmluZzE2IiwgcDE3OiJzdHJpbmcxNyIsIHAxODoi
c3RyaW5nMTgiLCBwMTk6InN0cmluZzE5In0pJyk7Cit0cnlQb3N0TWVzc2FnZSgnKHtwMDoic3Ry
aW5nMSIsIHAxOiJzdHJpbmcxIiwgcDI6InN0cmluZzIiLCBwMzoic3RyaW5nMyIsIHA0OiJzdHJp
bmc0IiwgcDU6InN0cmluZzUiLCBwNjoic3RyaW5nNiIsIHA3OiJzdHJpbmc3IiwgcDg6InN0cmlu
ZzgiLCBwOToic3RyaW5nOSIsIHAxMDoic3RyaW5nMTAiLCBwMTE6InN0cmluZzExIiwgcDEyOiJz
dHJpbmcxMiIsIHAxMzoic3RyaW5nMTMiLCBwMTQ6InN0cmluZzE0IiwgcDE1OiJzdHJpbmcxNSIs
IHAxNjoic3RyaW5nMTYiLCBwMTc6InN0cmluZzE3IiwgcDE4OiJzdHJpbmcxOCIsIHAxOToic3Ry
aW5nMTkifSknKTsKK3RyeVBvc3RNZXNzYWdlKCcoe2E6IiJ9KScpOwordHJ5UG9zdE1lc3NhZ2Uo
Jyh7YTowfSknKTsKK3RyeVBvc3RNZXNzYWdlKCcoe2E6MX0pJyk7Cit0cnlQb3N0TWVzc2FnZSgn
W10nKTsKK3RyeVBvc3RNZXNzYWdlKCdbImEiLCAiYSIsICJiIiwgImEiLCAiYiJdJyk7Cit0cnlQ
b3N0TWVzc2FnZSgnWyJhIiwgImEiLCAiYiIsIHthOiJiIiwgYjoiYSJ9XScpOwordHJ5UG9zdE1l
c3NhZ2UoJ1sxLDIsM10nKTsKK3RyeVBvc3RNZXNzYWdlKCdbLCwxXScpOwordHJ5UG9zdE1lc3Nh
Z2UoJyhmdW5jdGlvbigpe30pJywgdHJ1ZSwgbnVsbCwgRE9NRXhjZXB0aW9uLkRBVEFfQ0xPTkVf
RVJSKTsKK3RyeVBvc3RNZXNzYWdlKCduZXcgRGF0ZSgxMjM0NTY3ODkwMDAwKScpOwordHJ5UG9z
dE1lc3NhZ2UoJ25ldyBDb25zdHJ1Y3RvcldpdGhQcm90b3R5cGUoImZvbyIpJywgZmFsc2UsICco
e2ZpZWxkOiJmb28ifSknKTsKK2N5Y2xpY09iamVjdD17fTsKK2N5Y2xpY09iamVjdC5zZWxmID0g
Y3ljbGljT2JqZWN0OwordHJ5UG9zdE1lc3NhZ2UoJ2N5Y2xpY09iamVjdCcsIGZhbHNlLCAiY3lj
bGljT2JqZWN0Iik7CitjeWNsaWNBcnJheT1bXTsKK2N5Y2xpY0FycmF5WzBdID0gY3ljbGljQXJy
YXk7Cit0cnlQb3N0TWVzc2FnZSgnY3ljbGljQXJyYXknLCBmYWxzZSwgImN5Y2xpY0FycmF5Iik7
CitvYmplY3RHcmFwaCA9IHt9Oworb2JqZWN0ID0ge307CitvYmplY3RHcmFwaC5ncmFwaDEgPSBv
YmplY3Q7CitvYmplY3RHcmFwaC5ncmFwaDIgPSBvYmplY3Q7Cit0cnlQb3N0TWVzc2FnZSgnb2Jq
ZWN0R3JhcGgnLCBmYWxzZSwgIm9iamVjdEdyYXBoIik7CithcnJheUdyYXBoID0gW29iamVjdCwg
b2JqZWN0XTsKK3RyeVBvc3RNZXNzYWdlKCdhcnJheUdyYXBoJywgZmFsc2UsICJhcnJheUdyYXBo
Iik7Cit0cnlQb3N0TWVzc2FnZSgnd2luZG93JywgdHJ1ZSk7Cit0cnlQb3N0TWVzc2FnZSgnKHtn
ZXQgYSgpIHsgdGhyb3cgIngiIH19KScsIHRydWUpOworCitpZiAod2luZG93LmV2ZW50U2VuZGVy
KSB7CisgICAgdmFyIGZpbGVJbnB1dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlSW5w
dXQiKTsKKyAgICB2YXIgZmlsZVJlY3QgPSBmaWxlSW5wdXQuZ2V0Q2xpZW50UmVjdHMoKVswXTsK
KyAgICB2YXIgdGFyZ2V0WCA9IGZpbGVSZWN0LmxlZnQgKyBmaWxlUmVjdC53aWR0aCAvIDI7Cisg
ICAgdmFyIHRhcmdldFkgPSBmaWxlUmVjdC50b3AgKyBmaWxlUmVjdC5oZWlnaHQgLyAyOworICAg
IGV2ZW50U2VuZGVyLmJlZ2luRHJhZ1dpdGhGaWxlcyhbJ2dvdC1maWxlLXVwbG9hZC5odG1sJywg
J2dvdC1maWxlLXVwbG9hZC0yLmh0bWwnXSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8o
dGFyZ2V0WCwgdGFyZ2V0WSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOworfQordmFyIGlt
YWdlRGF0YSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpLmdldENvbnRleHQoIjJk
IikuY3JlYXRlSW1hZ2VEYXRhKDEwLDEwKTsKK2ZvciAodmFyIGkgPSAwOyBpIDwgaW1hZ2VEYXRh
LmRhdGEubGVuZ3RoICogNDsgaSsrKQorICAgIGltYWdlRGF0YS5kYXRhW2ldID0gaSAlIDI1NjsK
K3ZhciBtdXRhdGVkSW1hZ2VEYXRhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIiku
Z2V0Q29udGV4dCgiMmQiKS5jcmVhdGVJbWFnZURhdGEoMTAsMTApOworZm9yICh2YXIgaSA9IDA7
IGkgPCBpbWFnZURhdGEuZGF0YS5sZW5ndGggKiA0OyBpKyspCisgICAgbXV0YXRlZEltYWdlRGF0
YS5kYXRhW2ldID0gaSAlIDI1NjsKK3RyeVBvc3RNZXNzYWdlKCdpbWFnZURhdGEnLCBmYWxzZSwg
aW1hZ2VEYXRhKTsKK3RyeVBvc3RNZXNzYWdlKCdpbWFnZURhdGEuZGF0YScsIHRydWUsIG51bGws
IERPTUV4Y2VwdGlvbi5EQVRBX0NMT05FX0VSUikKK3RyeVBvc3RNZXNzYWdlKCdtdXRhdGVkSW1h
Z2VEYXRhJywgZmFsc2UsIGltYWdlRGF0YSk7Cit0cnlQb3N0TWVzc2FnZSgnbXV0YXRlZEltYWdl
RGF0YS5kYXRhJywgdHJ1ZSwgbnVsbCwgRE9NRXhjZXB0aW9uLkRBVEFfQ0xPTkVfRVJSKQorZm9y
ICh2YXIgaSA9IDA7IGkgPCBpbWFnZURhdGEuZGF0YS5sZW5ndGggKiA0OyBpKyspCisgICAgbXV0
YXRlZEltYWdlRGF0YS5kYXRhW2ldID0gMDsKKworZnVuY3Rpb24gdGh1bmsocykgeworICAgIHJl
dHVybiAiKGZ1bmN0aW9uKCkgeyIgKyBzICsgIn0pKCkiOworfQordHJ5UG9zdE1lc3NhZ2UodGh1
bmsoJ3JldHVybiA0MjsnKSwgZmFsc2UsICc0MicpOwordHJ5UG9zdE1lc3NhZ2UodGh1bmsoJ3Jl
dHVybiA0MjsnKSwgZmFsc2UsIHRodW5rKCdyZXR1cm4gNDAgKyAyOycpKTsKK3RyeVBvc3RNZXNz
YWdlKHRodW5rKCdyZXR1cm4gNDI7JyksIGZhbHNlLCAiZXZhbFRodW5rIiwKKyAgICAgICAgICAg
ICAgIGZ1bmN0aW9uKHYpIHsgZG9QYXNzRmFpbCh2ID09IDQyLCAiZXZhbFRodW5rIE9LIik7IH0p
CisKKy8vIE9ubHkgZW51bWVyYWJsZSBwcm9wZXJ0aWVzIHNob3VsZCBiZSBzZXJpYWxpemVkLgor
dHJ5UG9zdE1lc3NhZ2UodGh1bmsoJ3ZhciBvID0ge3g6ImhlbGxvIn07IE9iamVjdC5kZWZpbmVQ
cm9wZXJ0eShvLCAieSIsIHt2YWx1ZToiZ29vZGJ5ZSJ9KTsgcmV0dXJuIG87JyksIGZhbHNlLCAn
KHt4OiJoZWxsbyJ9KScpOworCisvLyBJdCdzIHVuY2xlYXIgd2hhdCB3ZSBzaG91bGQgZG8gaWYg
YW4gYWNjZXNzb3IgbW9kaWZpZXMgYW4gb2JqZWN0IG91dCBmcm9tIHVuZGVyIHVzCisvLyB3aGls
ZSB3ZSdyZSBzZXJpYWxpemluZyBpdDsgdGhlIHN0YW5kYXJkIGRvZXMgbWFuZGF0ZSBjZXJ0YWlu
IGFzcGVjdHMgYWJvdXQgZXZhbHVhdGlvbgorLy8gb3JkZXIsIHRob3VnaCwgaW5jbHVkaW5nIHRo
YXQgcHJvcGVydGllcyBtdXN0IGJlIHByb2Nlc3NlZCBpbiB0aGVpciBlbnVtZXJhdGlvbiBvcmRl
ci4KK3RyeVBvc3RNZXNzYWdlKHRodW5rKAorICAgICAgICAndmFyIGEgPSBbMCwgMSwgMl07ICcg
KworICAgICAgICAndmFyIGIgPSB7IGdldCB4KCkgeyBhWzBdID0gNDA7IGFbMl0gPSA0MjsgYS5w
dXNoKDQzKTsgcmV0dXJuIDQxOyB9fTsgJyArCisgICAgICAgICdhWzFdID0gYjsgJyArCisgICAg
ICAgICdyZXR1cm4gYTsnCisgICAgKSwgZmFsc2UsICJldmFsVGh1bmsiLCBmdW5jdGlvbih2KSB7
CisgICAgICAgIGRvUGFzc0ZhaWwodi5sZW5ndGggPT09IDMsICJsZW5ndGggY29ycmVjdCIpOyAv
LyB1bmRlZmluZWQKKyAgICAgICAgZG9QYXNzRmFpbCh2WzBdID09PSAwLCAiZXZhbHVhdGlvbiBv
cmRlciBPSyIpOyAvLyBtYW5kYXRvcnkKKyAgICAgICAgZG9QYXNzRmFpbCh2WzFdLnggPT09IDQx
LCAiZXZhbHVhdGlvbiBvcmRlciBPSy9hY2Nlc3NvciByZWFjaGVkIik7IC8vIG1hbmRhdG9yeQor
ICAgICAgICBkb1Bhc3NGYWlsKHZbMl0gPT09IDQyLCAiZXZhbHVhdGlvbiBvcmRlciBPSyIpOyAv
LyBtYW5kYXRvcnkKKyAgICB9KTsKKwordHJ5UG9zdE1lc3NhZ2UodGh1bmsoCisgICAgICAgICd2
YXIgYSA9IFswLCAxLCAyXTsgJyArCisgICAgICAgICd2YXIgYiA9IHsgZ2V0IHgoKSB7IGEucG9w
KCk7IHJldHVybiA0MTsgfSB9OyAnICsKKyAgICAgICAgJ2FbMV0gPSBiOyAnICsKKyAgICAgICAg
J3JldHVybiBhOycKKyAgICApLCBmYWxzZSwgImV2YWxUaHVuayIsIGZ1bmN0aW9uKHYpIHsKKyAg
ICAgICAgZG9QYXNzRmFpbCh2Lmxlbmd0aCA9PT0gMywgImxlbmd0aCBjb3JyZWN0Iik7IC8vIHVu
ZGVmaW5lZAorICAgICAgICBkb1Bhc3NGYWlsKHZbMF0gPT09IDAsICJpeCAwIE9LIik7IC8vIG1h
bmRhdG9yeQorICAgICAgICBkb1Bhc3NGYWlsKHZbMV0ueCA9PT0gNDEsICJhY2Nlc3NvciByZWFj
aGVkIik7IC8vIG1hbmRhdG9yeQorICAgICAgICBkb1Bhc3NGYWlsKHZbMl0gPT09IHVuZGVmaW5l
ZCwgIml4IDIgdW5kZWZpbmVkIik7IC8vIHVuZGVmaW5lZAorICAgIH0pOworCit0cnlQb3N0TWVz
c2FnZSh0aHVuaygKKyAgICAgICAgJ3ZhciBhID0gWzAsIDEsIDJdOyAnICsKKyAgICAgICAgJ3Zh
ciBiID0geyBnZXQgeCgpIHsgYS5wb3AoKTsgcmV0dXJuIDQxOyB9IH07ICcgKworICAgICAgICAn
YVsyXSA9IGI7ICcgKworICAgICAgICAncmV0dXJuIGE7JworICAgICksIGZhbHNlLCAiZXZhbFRo
dW5rIiwgZnVuY3Rpb24odikgeworICAgICAgICBkb1Bhc3NGYWlsKHYubGVuZ3RoID09PSAzLCAi
bGVuZ3RoIGNvcnJlY3QiKTsgLy8gdW5kZWZpbmVkCisgICAgICAgIGRvUGFzc0ZhaWwodlswXSA9
PT0gMCwgIml4IDAgT0siKTsgLy8gbWFuZGF0b3J5CisgICAgICAgIGRvUGFzc0ZhaWwodlsxXSA9
PT0gMSwgIml4IDEgT0siKTsgLy8gbWFuZGF0b3J5CisgICAgICAgIGRvUGFzc0ZhaWwodlsyXS54
ID09PSA0MSwgIml4IDIgT0siKTsgLy8gdW5kZWZpbmVkCisgICAgfSk7CisKKy8vIE5vdyB3aXRo
IG9iamVjdHMhIFRoaXMgaXMgYSBsaXR0bGUgbW9yZSB0cmlja3kgYmVjYXVzZSB0aGUgc3RhbmRh
cmQgZG9lcyBub3QKKy8vIGRlZmluZSBhbiBlbnVtZXJhdGlvbiBvcmRlci4KK3RyeVBvc3RNZXNz
YWdlKHRodW5rKAorICAgICAgICAndmFyIGEgPSB7cDA6IDAsIHAxOiAxfTsgJyArCisgICAgICAg
ICdPYmplY3QuZGVmaW5lUHJvcGVydHkoYSwgInAyIiwge2dldDpmdW5jdGlvbigpIHtkZWxldGUg
YS5wMzsgcmV0dXJuIDQyOyB9LCBlbnVtZXJhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWV9
KTsgJyArCisgICAgICAgICdPYmplY3QuZGVmaW5lUHJvcGVydHkoYSwgInAzIiwge2dldDpmdW5j
dGlvbigpIHtkZWxldGUgYS5wMjsgcmV0dXJuIDQzOyB9LCBlbnVtZXJhYmxlOiB0cnVlLCBjb25m
aWd1cmFibGU6IHRydWV9KTsgJyArCisgICAgICAgICdPYmplY3QuZGVmaW5lUHJvcGVydHkoYSwg
InA0Iiwge2dldDpmdW5jdGlvbigpIHsgYS5wNSA9IDQ1OyByZXR1cm4gNDQ7IH0sIGVudW1lcmFi
bGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZX0pOyAnICsKKyAgICAgICAgJ3JldHVybiBhOycK
KyAgICApLCBmYWxzZSwgImV2YWxUaHVuayIsIGZ1bmN0aW9uKHYpIHsKKyAgICAgICAgZG9QYXNz
RmFpbCh2LnAwID09PSAwICYmIHYucDEgPT09IDEsICJiYXNpYyBwcm9wZXJ0aWVzIE9LIik7IC8v
IG1hbmRhdG9yeQorICAgICAgICBkb1Bhc3NGYWlsKHYucDIgPT09IHVuZGVmaW5lZCAmJiB2LnAz
ICE9PSB1bmRlZmluZWQgfHwKKyAgICAgICAgICAgICAgICAgICB2LnAyICE9PSB1bmRlZmluZWQg
JiYgdi5wMyA9PT0gdW5kZWZpbmVkLCAib25lIGFjY2Vzc29yIHdhcyBydW4iKTsgLy8gbWFuZGF0
b3J5CisgICAgICAgIGRvUGFzc0ZhaWwodi5wMiAhPT0gdW5kZWZpbmVkIHx8IE9iamVjdC5nZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3IodiwgInAyIikgPT09IHVuZGVmaW5lZCwgInByb3BlcnR5IHdh
cyByZW1vdmVkIik7IC8vIHVuZGVmaW5lZAorICAgICAgICBkb1Bhc3NGYWlsKHYucDMgIT09IHVu
ZGVmaW5lZCB8fCBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHYsICJwMyIpID09PSB1
bmRlZmluZWQsICJwcm9wZXJ0eSB3YXMgcmVtb3ZlZCIpOyAvLyB1bmRlZmluZWQKKyAgICAgICAg
ZG9QYXNzRmFpbCh2LnA0ID09PSA0NCwgImFjY2Vzc29yIHdhcyBydW4iKTsgLy8gbWFuZGF0b3J5
CisgICAgICAgIGRvUGFzc0ZhaWwoT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih2LCAi
cDUiKSA9PT0gdW5kZWZpbmVkLCAiZHluYW1pYyBwcm9wZXJ0eSBub3Qgc2VudCIpOyAvLyB1bmRl
ZmluZWQKKyAgICB9KTsKKworLy8gT2JqZWN0cyByZXR1cm5lZCBmcm9tIGFjY2Vzc29ycyBzaG91
bGQgc3RpbGwgYmUgY29hbGVzY2VkLgordHJ5UG9zdE1lc3NhZ2UodGh1bmsoCisgICAgICAgICd2
YXIgb2JqYSA9IHtnZXQgcCgpIHsgcmV0dXJuIDQyOyB9fTsgJyArCisgICAgICAgICd2YXIgbXNn
ID0ge2dldCBhKCkgeyByZXR1cm4gb2JqYTsgfSwgYjogb2JqYX07ICcgKworICAgICAgICAncmV0
dXJuIG1zZzsnCisgICAgKSwgZmFsc2UsICJldmFsVGh1bmsiLCBmdW5jdGlvbih2KSB7CisgICAg
ICAgIC8vIEludGVyZXN0aW5nbHksIHRoZSBzdGFuZGFyZCBhZG1pdHMgdHdvIGFuc3dlcnMgaGVy
ZSEKKyAgICAgICAgZG9QYXNzRmFpbCh2LmEgPT09IHYuYiwgInJlZmVyZW5jZSBlcXVhbGl0eSBw
cmVzZXJ2ZWQiKTsKKyAgICAgICAgZG9QYXNzRmFpbCgodi5iLnAgPT09IDQyICYmIHYuYS5wID09
PSA0MikgfHwKKyAgICAgICAgICAgICh2LmIucCA9PT0gbnVsbCAmJiB2LmEucCA9PT0gbnVsbCks
ICJhY2Nlc3NvcnMgdXNlZCIpOworICAgIH0pOwordHJ5UG9zdE1lc3NhZ2UodGh1bmsoCisgICAg
ICAgICd2YXIgb2JqYSA9IHtnZXQgcCgpIHsgcmV0dXJuIDQyOyB9fTsgJyArCisgICAgICAgICd2
YXIgbXNnID0ge2E6IG9iamEsIGdldCBiKCkgeyByZXR1cm4gb2JqYTsgfX07ICcgKworICAgICAg
ICAncmV0dXJuIG1zZzsnCisgICAgKSwgZmFsc2UsICJldmFsVGh1bmsiLCBmdW5jdGlvbih2KSB7
CisgICAgICAgIC8vIEludGVyZXN0aW5nbHksIHRoZSBzdGFuZGFyZCBhZG1pdHMgdHdvIGFuc3dl
cnMgaGVyZSEKKyAgICAgICAgZG9QYXNzRmFpbCh2LmEgPT09IHYuYiwgInJlZmVyZW5jZSBlcXVh
bGl0eSBwcmVzZXJ2ZWQgKG9wcG9zaXRlIG9yZGVyKSIpOworICAgICAgICBkb1Bhc3NGYWlsKCh2
LmIucCA9PT0gNDIgJiYgdi5hLnAgPT09IDQyKSB8fAorICAgICAgICAgICAgICAgICAgICh2LmIu
cCA9PT0gbnVsbCAmJiB2LmEucCA9PT0gbnVsbCksICJhY2Nlc3NvcnMgdXNlZCAob3Bwb3NpdGUg
b3JkZXIpIik7CisgICAgfSk7CisvLyBXZSBzaG91bGQgbnVsbGlmeSB0aGUgcmVzdWx0cyBmcm9t
IGFjY2Vzc29ycyBtb3JlIHRoYW4gb25lIGxldmVsIGRlZXAsCisvLyBidXQgbGVhdmUgb3RoZXIg
ZmllbGRzIHVudG91Y2hlZC4KK3RyeVBvc3RNZXNzYWdlKHRodW5rKAorICAgICAgICAndmFyIG9i
amEgPSB7Z2V0IHAoKSB7IHJldHVybiA0MjsgfSwgcTogNDN9OyAnICsKKyAgICAgICAgJ3JldHVy
biB7Z2V0IGEoKSB7IHJldHVybiBvYmphOyB9fTsnCisgICAgKSwgZmFsc2UsICJldmFsVGh1bmsi
LCBmdW5jdGlvbih2KSB7CisgICAgICAgIGRvUGFzc0ZhaWwodi5hLnAgPT09IG51bGwsICJhY2Nl
c3NvciB2YWx1ZSB3YXMgbnVsbGlmaWVkIik7CisgICAgICAgIGRvUGFzc0ZhaWwodi5hLnEgPT09
IDQzLCAibm9uLWFjY2Vzc29yIHZhbHVlIHdhcyBub3QgbnVsbGlmaWVkIik7CisgICAgfSk7Cit0
cnlQb3N0TWVzc2FnZSh0aHVuaygKKyAgICAgICAgJ3ZhciBvYmpiID0ge2dldCByKCkgeyByZXR1
cm4gNDQ7IH0sIHQ6IDQ1fTsgJyArCisgICAgICAgICd2YXIgb2JqYSA9IHtnZXQgcCgpIHsgcmV0
dXJuIDQyOyB9LCBxOiA0Mywgczogb2JqYn07ICcgKworICAgICAgICAncmV0dXJuIHtnZXQgYSgp
IHsgcmV0dXJuIG9iamE7IH19OycKKyAgICApLCBmYWxzZSwgImV2YWxUaHVuayIsIGZ1bmN0aW9u
KHYpIHsKKyAgICAgICAgZG9QYXNzRmFpbCh2LmEucCA9PT0gbnVsbCwgImFjY2Vzc29yIHZhbHVl
IHdhcyBudWxsaWZpZWQiKTsKKyAgICAgICAgZG9QYXNzRmFpbCh2LmEucSA9PT0gNDMsICJub24t
YWNjZXNzb3IgdmFsdWUgd2FzIG5vdCBudWxsaWZpZWQiKTsKKyAgICAgICAgZG9QYXNzRmFpbCh2
LnMgIT09IG51bGwsICJub24tYWNjZXNzb3IgdmFsdWUgd2FzIG5vdCBudWxsaWZpZWQiKTsKKyAg
ICAgICAgZG9QYXNzRmFpbCh2LmEucy5yID09PSBudWxsLCAiYWNjZXNzb3IgdmFsdWUgd2FzIG51
bGxpZmllZCIpOworICAgICAgICBkb1Bhc3NGYWlsKHYuYS5zLnQgPT09IDQ1LCAibm9uLWFjY2Vz
c29yIHZhbHVlIHdhcyBub3QgbnVsbGlmaWVkIik7CisgICAgfSk7Cit0cnlQb3N0TWVzc2FnZSh0
aHVuaygKKyAgICAgICAgJ3ZhciBvYmpiID0ge2dldCByKCkgeyByZXR1cm4gNDQ7IH0sIHQ6IDQ1
fTsgJyArCisgICAgICAgICd2YXIgb2JqYSA9IHtnZXQgcCgpIHsgcmV0dXJuIDQyOyB9LCBxOiA0
MywgczogW29iamJdfTsgJyArCisgICAgICAgICdyZXR1cm4ge2dldCBjKCkgeyByZXR1cm4gNDc7
IH0sIGdldCBhKCkgeyByZXR1cm4gb2JqYTsgfSwgZ2V0IGIoKSB7IHJldHVybiA0NjsgfSB9OycK
KyAgICApLCBmYWxzZSwgImV2YWxUaHVuayIsIGZ1bmN0aW9uKHYpIHsKKyAgICAgICAgZG9QYXNz
RmFpbCh2LmIgPT09IDQ2LCAiYWNjZXNzb3IgdmFsdWUgd2FzIG5vdCBudWxsaWZpZWQiKTsKKyAg
ICAgICAgZG9QYXNzRmFpbCh2LmMgPT09IDQ3LCAiYWNjZXNzb3IgdmFsdWUgd2FzIG5vdCBudWxs
aWZpZWQiKTsKKyAgICAgICAgZG9QYXNzRmFpbCh2LmEucCA9PT0gbnVsbCwgImFjY2Vzc29yIHZh
bHVlIHdhcyBudWxsaWZpZWQiKTsKKyAgICAgICAgZG9QYXNzRmFpbCh2LmEucSA9PT0gNDMsICJu
b24tYWNjZXNzb3IgdmFsdWUgd2FzIG5vdCBudWxsaWZpZWQiKTsKKyAgICAgICAgZG9QYXNzRmFp
bCh2LmEucyAhPT0gbnVsbCwgIm5vbi1hY2Nlc3NvciB2YWx1ZSB3YXMgbm90IG51bGxpZmllZCIp
OworICAgICAgICBkb1Bhc3NGYWlsKHYuYS5zICE9PSB1bmRlZmluZWQsICJub24tYWNjZXNzb3Ig
dmFsdWUgaXMgZGVmaW5lZCIpOworICAgICAgICBkb1Bhc3NGYWlsKHYuYS5zWzBdICE9PSBudWxs
LCAibm9uLWFjY2Vzc29yIHZhbHVlIHdhcyBub3QgbnVsbGlmaWVkIik7CisgICAgICAgIGRvUGFz
c0ZhaWwodi5hLnNbMF0gIT09IHVuZGVmaW5lZCwgIm5vbi1hY2Nlc3NvciB2YWx1ZSBpcyBkZWZp
bmVkIik7CisgICAgICAgIGRvUGFzc0ZhaWwodi5hLnNbMF0uciA9PT0gbnVsbCwgImFjY2Vzc29y
IHZhbHVlIHdhcyBudWxsaWZpZWQiKTsKKyAgICAgICAgZG9QYXNzRmFpbCh2LmEuc1swXS50ID09
PSA0NSwgIm5vbi1hY2Nlc3NvciB2YWx1ZSB3YXMgbm90IG51bGxpZmllZCIpOworICAgIH0pOwor
CisvLyBXZSBuZWVkIHRvIHBhc3Mgb3V0IHRoZSBleGNlcHRpb24gcmFpc2VkIGZyb20gaW50ZXJu
YWwgYWNjZXNzb3JzLgordHJ5UG9zdE1lc3NhZ2UodGh1bmsoCisgICAgICAgICdyZXR1cm4ge2dl
dCBhKCkgeyB0aHJvdyAiYWNjZXNzb3ItZXhuIjsgfX07JworICAgICksIHRydWUsIG51bGwsICdh
Y2Nlc3Nvci1leG4nKTsKKy8vIFdlIHNob3VsZCBzdGlsbCByZXR1cm4gdGhlIGV4Y2VwdGlvbiBy
YWlzZWQgZnJvbSBudWxsZWQtb3V0IGFjY2Vzc29ycy4KK3RyeVBvc3RNZXNzYWdlKHRodW5rKAor
ICAgICAgICAndmFyIG9iamEgPSB7Z2V0IHAoKSB7IHRocm93ICJhY2Nlc3Nvci1leG4iOyB9fTsg
JyArCisgICAgICAgICdyZXR1cm4ge2dldCBhKCkgeyByZXR1cm4gb2JqYTsgfX07JworICAgICks
IHRydWUsIG51bGwsICdhY2Nlc3Nvci1leG4nKTsKKy8vIFdlIHNob3VsZCBydW4gdGhlIGZpcnN0
IG51bGxpZmllZCBhY2Nlc3NvciwgYnV0IG5vIG1vcmUuCit0cnlQb3N0TWVzc2FnZSh0aHVuaygK
KyAgICAgICAgJ3dpbmRvdy5iY2FsbGVkID0gdW5kZWZpbmVkOyAnICsKKyAgICAgICAgJ3dpbmRv
dy5hY2FsbGVkID0gdW5kZWZpbmVkOyAnICsKKyAgICAgICAgJ3dpbmRvdy5wY2FsbGVkID0gdW5k
ZWZpbmVkOyAnICsKKyAgICAgICAgJ3ZhciBvYmpiID0ge2dldCBiKCkgeyB3aW5kb3cuYmNhbGxl
ZCA9IHRydWU7IHJldHVybiA0MjsgfX07ICcgKworICAgICAgICAndmFyIG9iamEgPSB7Z2V0IGEo
KSB7IHdpbmRvdy5hY2FsbGVkID0gdHJ1ZTsgcmV0dXJuIG9iamI7IH19OyAnICsKKyAgICAgICAg
J3JldHVybiB7IGdldCBwKCkgeyB3aW5kb3cucGNhbGxlZCA9IHRydWU7IHJldHVybiBvYmphOyB9
fTsnCisgICAgKSwgZmFsc2UsICJldmFsVGh1bmsiLCBmdW5jdGlvbih2KSB7CisgICAgICAgIGRv
UGFzc0ZhaWwodi5wLmEgPT09IG51bGwsICJhY2Nlc3NvciB2YWx1ZSB3YXMgbnVsbGlmaWVkIik7
CisgICAgICAgIGRvUGFzc0ZhaWwod2luZG93LnBjYWxsZWQgPT09IHRydWUsICJ3aW5kb3cucGNh
bGxlZCA9PT0gdHJ1ZSIpOworICAgICAgICBkb1Bhc3NGYWlsKHdpbmRvdy5hY2FsbGVkID09PSB0
cnVlLCAid2luZG93LmFjYWxsZWQgPT09IHRydWUiKTsKKyAgICAgICAgZG9QYXNzRmFpbCh3aW5k
b3cuYmNhbGxlZCA9PT0gdW5kZWZpbmVkLCAid2luZG93LmJjYWxsZWQgPT09IHVuZGVmaW5lZCIp
OworICAgIH0pOworCisvLyBSZWZlcmVuY2UgZXF1YWxpdHkgYmV0d2VlbiBkYXRlcyBtdXN0IGJl
IG1haW50YWluZWQuCit0cnlQb3N0TWVzc2FnZSh0aHVuaygKKyAgICAgICAgJ3ZhciBkMSA9IG5l
dyBEYXRlKDEsMiwzKTsgJyArCisgICAgICAgICd2YXIgZDIgPSBuZXcgRGF0ZSgxLDIsMyk7ICcg
KworICAgICAgICAncmV0dXJuIFtkMSxkMSxkMl07JworICAgICksIGZhbHNlLCAiZXZhbFRodW5r
IiwgZnVuY3Rpb24odikgeworICAgICAgICBkb1Bhc3NGYWlsKGVxdWFsKHZbMF0sIG5ldyBEYXRl
KDEsMiwzKSksICJEYXRlIHZhbHVlcyBjb3JyZWN0ICgwKSIpOworICAgICAgICBkb1Bhc3NGYWls
KGVxdWFsKHZbMF0sIHZbMl0pLCAiRGF0ZSB2YWx1ZXMgY29ycmVjdCAoMSkiKTsKKyAgICAgICAg
ZG9QYXNzRmFpbCh2WzBdID09PSB2WzFdLCAiUmVmZXJlbmNlcyB0byBkYXRlcyBjb3JyZWN0ICgw
KSIpOworICAgICAgICBkb1Bhc3NGYWlsKHZbMF0gIT09IHZbMl0sICJSZWZlcmVuY2VzIHRvIGRh
dGVzIGNvcnJlY3QgKDEpIik7CisgICAgfSk7CisKKy8vIFJlZmVyZW5jZSBlcXVhbGl0eSBiZXR3
ZWVuIHJlZ2V4cHMgbXVzdCBiZSBwcmVzZXJ2ZWQuCit0cnlQb3N0TWVzc2FnZSh0aHVuaygKKyAg
ICAgICAgJ3ZhciByeDEgPSBuZXcgUmVnRXhwKCJmb28iKTsgJyArCisgICAgICAgICd2YXIgcngy
ID0gbmV3IFJlZ0V4cCgiZm9vIik7ICcgKworICAgICAgICAndmFyIHJ4MyA9IG5ldyBSZWdFeHAo
ImZvbyIsICJnaW0iKTsgJyArCisgICAgICAgICdyeDMuZXhlYygiZm9vZm9vZm9vIik7ICcgKwor
ICAgICAgICAnZG9QYXNzRmFpbChyeDMubGFzdEluZGV4ID09PSAzLCAibGFzdEluZGV4IGluaXRp
YWxseSBjb3JyZWN0OiB3YXMgIiArIHJ4My5sYXN0SW5kZXgpOyAnICsKKyAgICAgICAgJ3JldHVy
biBbcngxLHJ4MSxyeDIscngzXTsnCisgICAgKSwgZmFsc2UsICJldmFsVGh1bmsiLCBmdW5jdGlv
bih2KSB7CisgICAgICAgIGRvUGFzc0ZhaWwodlswXS5zb3VyY2UgPT09ICJmb28iLCAiUmVnZXhw
IHZhbHVlIGNvcnJlY3QgKDApIik7CisgICAgICAgIGRvUGFzc0ZhaWwodlswXSA9PT0gdlsxXSwg
IlJlZmVyZW5jZXMgdG8gcmVnZXhwcyBjb3JyZWN0ICgwKSIpOworICAgICAgICBkb1Bhc3NGYWls
KHZbMF0gIT09IHZbMl0sICJSZWZlcmVuY2VzIHRvIHJlZ2V4cHMgY29ycmVjdCAoMSkiKTsKKyAg
ICAgICAgZG9QYXNzRmFpbCh2WzBdLmdsb2JhbCA9PT0gZmFsc2UsICJnbG9iYWwgc2V0ICgwKSIp
OworICAgICAgICBkb1Bhc3NGYWlsKHZbM10uZ2xvYmFsID09PSB0cnVlLCAiZ2xvYmFsIHNldCAo
MSkiKTsKKyAgICAgICAgZG9QYXNzRmFpbCh2WzBdLmlnbm9yZUNhc2UgPT09IGZhbHNlLCAiaWdu
b3JlQ2FzZSBzZXQgKDApIik7CisgICAgICAgIGRvUGFzc0ZhaWwodlszXS5pZ25vcmVDYXNlID09
PSB0cnVlLCAiaWdub3JlQ2FzZSBzZXQgKDEpIik7CisgICAgICAgIGRvUGFzc0ZhaWwodlswXS5t
dWx0aWxpbmUgPT09IGZhbHNlLCAibXVsdGlsaW5lIHNldCAoMCkiKTsKKyAgICAgICAgZG9QYXNz
RmFpbCh2WzNdLm11bHRpbGluZSA9PT0gdHJ1ZSwgIm11bHRpbGluZSBzZXQgKDEpIik7CisgICAg
ICAgIGRvUGFzc0ZhaWwodlswXS5sYXN0SW5kZXggPT09IDAsICJsYXN0SW5kZXggY29ycmVjdCAo
MCkiKTsKKyAgICAgICAgZG9QYXNzRmFpbCh2WzNdLmxhc3RJbmRleCA9PT0gMCwgImxhc3RJbmRl
eCBjb3JyZWN0ICgxKSIpOworICAgIH0pOworCitpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7Cisg
ICAgdHJ5UG9zdE1lc3NhZ2UodGh1bmsoCisgICAgICAgICd3aW5kb3cuZmlsZUxpc3QgPSBmaWxl
SW5wdXQuZmlsZXM7ICcgKworICAgICAgICAnd2luZG93LmZpbGUwID0gZmlsZUxpc3RbMF07ICcg
KworICAgICAgICAnd2luZG93LmZpbGUxID0gZmlsZUxpc3RbMV07ICcgKworICAgICAgICAncmV0
dXJuIHdpbmRvdy5maWxlTGlzdC5sZW5ndGgnKSwgZmFsc2UsIDIpOworICAgIGRvUGFzc0ZhaWwo
d2luZG93LmZpbGVMaXN0WzBdID09PSB3aW5kb3cuZmlsZTAsICJzYW5pdHkgb24gZmlsZSByZWZl
cmVuY2UgZXF1YWxpdHkiKQorICAgIC8vIFRoZSBzdGFuZGFyZCBtYW5kYXRlcyB0aGF0IHdlIGRv
IF9ub3RfIG1haW50YWluIHJlZmVyZW5jZSBlcXVhbGl0eSBmb3IgZmlsZXMgaW4gYSB0cmFuc2Zl
cnJlZCBGaWxlTGlzdC4KKyAgICB0cnlQb3N0TWVzc2FnZSh0aHVuaygncmV0dXJuIFt3aW5kb3cu
ZmlsZTAsIHdpbmRvdy5maWxlMF07JworICAgICAgICApLCBmYWxzZSwgImV2YWxUaHVuayIsIGZ1
bmN0aW9uKHYpIHsgZG9QYXNzRmFpbCh2WzBdID09PSB2WzFdLCAiZmlsZSByZWZlcmVuY2VzIHRy
YW5zZmVyIil9KTsKKyAgICB0cnlQb3N0TWVzc2FnZSh0aHVuaygncmV0dXJuIFt3aW5kb3cuZmls
ZUxpc3QsIHdpbmRvdy5maWxlMF07JworICAgICAgICApLCBmYWxzZSwgImV2YWxUaHVuayIsIGZ1
bmN0aW9uKHYpIHsgZG9QYXNzRmFpbCh2WzBdWzBdICE9PSB2WzFdLCAiRmlsZUxpc3Qgc2hvdWxk
IG5vdCByZXNwZWN0IHJlZmVyZW5jZSBlcXVhbGl0eSIpfSk7CisgICAgdHJ5UG9zdE1lc3NhZ2Uo
dGh1bmsoJ3JldHVybiBbd2luZG93LmZpbGUwLCB3aW5kb3cuZmlsZUxpc3RdOycKKyAgICAgICAg
KSwgZmFsc2UsICJldmFsVGh1bmsiLCBmdW5jdGlvbih2KSB7IGRvUGFzc0ZhaWwodlsxXVswXSAh
PT0gdlswXSwgIkZpbGVMaXN0IHNob3VsZCBub3QgcmVzcGVjdCByZWZlcmVuY2UgZXF1YWxpdHki
KX0pOworICAgIHRyeVBvc3RNZXNzYWdlKHRodW5rKCdyZXR1cm4gW3dpbmRvdy5maWxlTGlzdCwg
d2luZG93LmZpbGVMaXN0XTsnCisgICAgICAgICksIGZhbHNlLCAiZXZhbFRodW5rIiwgZnVuY3Rp
b24odikgeyBkb1Bhc3NGYWlsKHZbMF0gPT09IHZbMV0sICJGaWxlTGlzdCByZXNwZWN0cyBzZWxm
LXJlZmVyZW5jZSBlcXVhbGl0eSIpfSk7CisgICAgdHJ5UG9zdE1lc3NhZ2UodGh1bmsoJ3JldHVy
biBbd2luZG93LmZpbGVMaXN0LCB3aW5kb3cuZmlsZTAsIHdpbmRvdy5maWxlMV0nCisgICAgICAg
ICksIGZhbHNlLCAiZXZhbFRodW5rIiwgZnVuY3Rpb24odikgeworICAgICAgICAgICAgZG9QYXNz
RmFpbCh2WzBdLmxlbmd0aCA9PT0gd2luZG93LmZpbGVMaXN0Lmxlbmd0aCwgIkZpbGVMaXN0IGxl
bmd0aCBzZW50IGNvcnJlY3RseSIpOworICAgICAgICAgICAgZG9QYXNzRmFpbCh2WzBdWzBdICE9
PSB2WzFdLCAiRmlsZUxpc3Qgc2hvdWxkIG5vdCByZXNwZWN0IHJlZmVyZW5jZSBlcXVhbGl0eSAo
MCkiKTsKKyAgICAgICAgICAgIGRvUGFzc0ZhaWwodlswXVsxXSAhPT0gdlsyXSwgIkZpbGVMaXN0
IHNob3VsZCBub3QgcmVzcGVjdCByZWZlcmVuY2UgZXF1YWxpdHkgKDEpIik7CisgICAgICAgICAg
ICBkb1Bhc3NGYWlsKHZbMF1bMF0ubmFtZSA9PSB3aW5kb3cuZmlsZTAubmFtZSwgIkZpbGVMaXN0
IHByZXNlcnZlcyBvcmRlciBhbmQgZGF0YSAobmFtZTApIik7CisgICAgICAgICAgICBkb1Bhc3NG
YWlsKHZbMF1bMV0ubmFtZSA9PSB3aW5kb3cuZmlsZTEubmFtZSwgIkZpbGVMaXN0IHByZXNlcnZl
cyBvcmRlciBhbmQgZGF0YSAobmFtZTEpIik7CisgICAgICAgICAgICBkb1Bhc3NGYWlsKGVxdWFs
KHZbMF1bMF0ubGFzdE1vZGlmaWVkRGF0ZSwgd2luZG93LmZpbGUwLmxhc3RNb2RpZmllZERhdGUp
LCAiRmlsZUxpc3QgcHJlc2VydmVzIG9yZGVyIGFuZCBkYXRhIChkYXRlMCkiKTsKKyAgICAgICAg
ICAgIGRvUGFzc0ZhaWwoZXF1YWwodlswXVsxXS5sYXN0TW9kaWZpZWREYXRlLCB3aW5kb3cuZmls
ZTEubGFzdE1vZGlmaWVkRGF0ZSksICJGaWxlTGlzdCBwcmVzZXJ2ZXMgb3JkZXIgYW5kIGRhdGEg
KGRhdGUxKSIpOworICAgICAgICB9KTsKK30KK3RyeVBvc3RNZXNzYWdlKCciZG9uZSInKTsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9zY3JpcHQtdGVzdHMvcG9zdG1l
c3NhZ2UtdGVzdC5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9zY3JpcHQtdGVzdHMv
cG9zdG1lc3NhZ2UtdGVzdC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4w
NzUwYTg5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3Nj
cmlwdC10ZXN0cy9wb3N0bWVzc2FnZS10ZXN0LmpzCkBAIC0wLDAgKzEsMTY5IEBACitpZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVt
cEFzVGV4dCgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKK30K
KwordmFyIGNvbnNvbGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpOworCit2
YXIgbWVzc2FnZXMgPSBbXTsKK3ZhciBldmFsVGh1bmtzID0gW107CisKK2Z1bmN0aW9uIGVxdWFs
KGFjdHVhbCwgZXhwZWN0ZWQpCit7CisgICAgaWYgKGFjdHVhbCA9PT0gZXhwZWN0ZWQpCisgICAg
ICAgIHJldHVybiB0cnVlOworICAgIGlmICh0eXBlb2YgYWN0dWFsICE9PSB0eXBlb2YgZXhwZWN0
ZWQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoKGFjdHVhbCBpbnN0YW5jZW9mIERh
dGUpIHx8IChleHBlY3RlZCBpbnN0YW5jZW9mIERhdGUpKSB7CisgICAgICAgIGlmICgoYWN0dWFs
IGluc3RhbmNlb2YgRGF0ZSkgJiYgKGV4cGVjdGVkIGluc3RhbmNlb2YgRGF0ZSkpCisgICAgICAg
ICAgICByZXR1cm4gKGV4cGVjdGVkIGluc3RhbmNlb2YgRGF0ZSkgJiYgYWN0dWFsLmdldFRpbWUo
KSA9PSBleHBlY3RlZC5nZXRUaW1lKCk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9Cisg
ICAgaWYgKEFycmF5LmlzQXJyYXkoYWN0dWFsKSB8fCBBcnJheS5pc0FycmF5KGV4cGVjdGVkKSkg
eworICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkoYWN0dWFsKSB8fCAhQXJyYXkuaXNBcnJheShl
eHBlY3RlZCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGlmIChhY3R1YWwu
bGVuZ3RoICE9IGV4cGVjdGVkLmxlbmd0aCkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhY3R1YWwubGVuZ3RoOyBpKyspIHsKKyAgICAgICAg
ICAgIGlmICgoaSBpbiBhY3R1YWwpIF4gKGkgaW4gZXhwZWN0ZWQpKQorICAgICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIGlmICghZXF1YWwoYWN0dWFsW2ldLCBleHBlY3Rl
ZFtpXSkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAg
IHJldHVybiB0cnVlOworICAgIH0KKyAgICBpZiAoYWN0dWFsLmNvbnN0cnVjdG9yICE9PSBleHBl
Y3RlZC5jb25zdHJ1Y3RvcikKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHRyeSB7CisgICAg
ICAgIHZhciBrZXlzID0gT2JqZWN0LmtleXMoYWN0dWFsKTsKKyAgICB9IGNhdGNoKGUpIHsKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICB0cnkgeworICAgIGlmICghZXF1YWwoa2V5
cywgT2JqZWN0LmtleXMoZXhwZWN0ZWQpKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0g
Y2F0Y2goZSkgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIGZvciAodmFyIGkg
PSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykgeworICAgICAgICBpZiAoIWVxdWFsKGFjdHVhbFtr
ZXlzW2ldXSwgZXhwZWN0ZWRba2V5c1tpXV0pKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIH0KKyAgICByZXR1cm4gdHJ1ZTsKK30KKworZnVuY3Rpb24gc2FmZVRvU3RyaW5nKG8pIHsK
KyAgICBpZiAobyBpbnN0YW5jZW9mIERhdGUpCisgICAgICAgIHJldHVybiBvLnRvSVNPU3RyaW5n
KCk7CisgICAgaWYgKHR5cGVvZiBvICE9PSAib2JqZWN0IiB8fCAhbykKKyAgICAgICAgcmV0dXJu
IG87CisgICAgdHJ5IHsKKyAgICAgICAgcmV0dXJuIG8udG9TdHJpbmcoKTsKKyAgICB9IGNhdGNo
IChlKSB7CisgICAgICAgIHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwobykg
KyAiKGRlZmF1bHQgdG9TdHJpbmcgdGhyZXcgIitlKyIpIjsKKyAgICB9Cit9CisKK2Z1bmN0aW9u
IHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpCit7CisgICAgdmFyIGFjdHVhbFZhbHVlID0gZXZh
bChhY3R1YWwpOworICAgIHZhciBleHBlY3RlZFZhbHVlID0gZXZhbChleHBlY3RlZCk7CisgICAg
aWYgKGVxdWFsKGFjdHVhbFZhbHVlLCBleHBlY3RlZFZhbHVlKSkKKyAgICAgICAgY29uc29sZS5p
bm5lckhUTUwgKz0gIlBBU1M6ICIgKyBhY3R1YWwgKyAiIGlzICIgKyBzYWZlVG9TdHJpbmcoZXhw
ZWN0ZWRWYWx1ZSkgKyAiIG9mIHR5cGUgIiArIHR5cGVvZiBhY3R1YWxWYWx1ZSArICI8YnI+IjsK
KyAgICBlbHNlCisgICAgICAgIGNvbnNvbGUuaW5uZXJIVE1MICs9ICJGQUlMOiAiICsgYWN0dWFs
ICsgIiBpcyAiICsgYWN0dWFsVmFsdWUgKyAiIHNob3VsZCBiZSAiICsgZXhwZWN0ZWRWYWx1ZSAr
ICIgb2YgdHlwZSAiICsgdHlwZW9mIGV4cGVjdGVkVmFsdWUgKyAiPGJyPiI7Cit9CisKK2Z1bmN0
aW9uIHNob3VsZEJlSWRlbnRpY2FsKGFjdHVhbCwgZXhwZWN0ZWQpCit7CisgICAgdmFyIGFjdHVh
bFZhbHVlID0gZXZhbChhY3R1YWwpOworICAgIHZhciBleHBlY3RlZFZhbHVlID0gZXZhbChleHBl
Y3RlZCk7CisgICAgaWYgKGFjdHVhbFZhbHVlID09PSBleHBlY3RlZFZhbHVlKQorICAgICAgICBj
b25zb2xlLmlubmVySFRNTCArPSAiUEFTUzogIiArIGFjdHVhbCArICIgaXMgPT09IHRvICIgKyBl
eHBlY3RlZCArICI8YnI+IjsKKyAgICBlbHNlCisgICAgICAgIGNvbnNvbGUuaW5uZXJIVE1MICs9
ICJGQUlMOiAiICsgYWN0dWFsICsgIiBpcyBub3QgPT09IHRvICIgKyBleHBlY3RlZCArICI8YnI+
IjsKK30KKworZnVuY3Rpb24gZG9QYXNzKG1zZykgeworICAgIGNvbnNvbGUuaW5uZXJIVE1MICs9
ICJQQVNTOiAiICsgbXNnICsgIjxicj4iOworfQorCitmdW5jdGlvbiBkb0ZhaWwobXNnKSB7Cisg
ICAgY29uc29sZS5pbm5lckhUTUwgKz0gIkZBSUw6ICIgKyBtc2cgKyAiPGJyPiI7Cit9CisKK3dp
bmRvdy5kb1Bhc3NGYWlsID0gZnVuY3Rpb24ocmVzdWx0LCBtc2cpIHsKKyAgICBjb25zb2xlLmlu
bmVySFRNTCArPSAocmVzdWx0ID8gIlBBU1M6ICIgOiAiRkFJTDogIikgKyBtc2cgKyAiPGJyPiI7
Cit9CisKK2Z1bmN0aW9uIG9ubWVzc2FnZShldnQpIHsKKyAgICBldmVudERhdGEgPSBldnQuZGF0
YTsKKyAgICBpZiAoZXZ0LmRhdGEgIT09IGV2dC5kYXRhKQorICAgICAgICBjb25zb2xlLmlubmVy
SFRNTCArPSAiTWVzc2FnZUV2ZW50LmRhdGEgZG9lcyBub3QgcHJvZHVjZSB0aGUgc2FtZSB2YWx1
ZSBvbiBtdWx0aXBsZSBxdWVyaWVzLjxicj4iOworICAgIHZhciBtZXNzYWdlID0gbWVzc2FnZXMu
c2hpZnQoKTsKKyAgICBzd2l0Y2ggKG1lc3NhZ2UpIHsKKyAgICBjYXNlICJjeWNsaWNPYmplY3Qi
OgorICAgICAgICBzaG91bGRCZUlkZW50aWNhbCgiZXZlbnREYXRhIiwgImV2ZW50RGF0YS5zZWxm
Iik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgImN5Y2xpY0FycmF5IjoKKyAgICAgICAgc2hv
dWxkQmVJZGVudGljYWwoImV2ZW50RGF0YSIsICJldmVudERhdGFbMF0iKTsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSAib2JqZWN0R3JhcGgiOgorICAgICAgICBzaG91bGRCZUlkZW50aWNhbCgi
ZXZlbnREYXRhLmdyYXBoMSIsICJldmVudERhdGEuZ3JhcGgyIik7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgImFycmF5R3JhcGgiOgorICAgICAgICBzaG91bGRCZUlkZW50aWNhbCgiZXZlbnRE
YXRhWzBdIiwgImV2ZW50RGF0YVsxXSIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlICJldmFs
VGh1bmsiOgorICAgICAgICB2YXIgdGh1bmsgPSBldmFsVGh1bmtzLnNoaWZ0KCk7CisgICAgICAg
IHRyeSB7CisgICAgICAgICAgICB0aHVuayhldmVudERhdGEpOworICAgICAgICB9IGNhdGNoKGUp
IHsKKyAgICAgICAgICAgIGRvRmFpbCgidGhyZXcgZXhjZXB0aW9uOiAiICsgZSk7CisgICAgICAg
ICAgICB0aHJvdyBlOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6Cisg
ICAgICAgIHNob3VsZEJlKCJldmVudERhdGEiLCBtZXNzYWdlKTsKKyAgICB9CisKKyAgICBpZiAo
c2FmZVRvU3RyaW5nKGV2dC5kYXRhKSA9PSAnZG9uZScgJiYgd2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Cit9CisK
K3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgb25tZXNzYWdlLCBmYWxzZSk7CisK
K2Z1bmN0aW9uIENvbnN0cnVjdG9yV2l0aFByb3RvdHlwZShzKSB7CisgICAgdGhpcy5maWVsZCA9
IHM7Cit9CisKK0NvbnN0cnVjdG9yV2l0aFByb3RvdHlwZS5wcm90b3R5cGUgPSB7CisgICAgcHJv
dG9Qcm9wZXJ0eTogMjAxMAorfTsKKword2luZG93LnRyeVBvc3RNZXNzYWdlID0gZnVuY3Rpb24o
bWVzc2FnZSwgc2hvdWxkVGhyb3csIGV4cGVjdGVkLCBleHBlY3RlZEV4Y2VwdGlvbk9yRXZhbFRo
dW5rKSB7CisgICAgaWYgKGV4cGVjdGVkID09ICJldmFsVGh1bmsiKSB7CisgICAgICB2YXIgZXZh
bFRodW5rID0gZXhwZWN0ZWRFeGNlcHRpb25PckV2YWxUaHVuazsKKyAgICB9IGVsc2UgeworICAg
ICAgdmFyIGV4cGVjdGVkRXhjZXB0aW9uID0gZXhwZWN0ZWRFeGNlcHRpb25PckV2YWxUaHVuazsK
KyAgICB9CisgICAgdHJ5IHsKKyAgICAgICAgdmFyIHZhbHVlID0gZXZhbChtZXNzYWdlKTsKKyAg
ICAgICAgcG9zdE1lc3NhZ2UodmFsdWUsICIqIik7CisgICAgICAgIGlmIChzaG91bGRUaHJvdykK
KyAgICAgICAgICAgIGNvbnNvbGUuaW5uZXJIVE1MICs9ICJGQUlMOiAncG9zdE1lc3NhZ2UoIitt
ZXNzYWdlKyIpJyBzaG91bGQgdGhyb3cgYnV0IGRpZG4ndDxicj4iOworICAgICAgICBtZXNzYWdl
cy5wdXNoKGV4cGVjdGVkIHx8IG1lc3NhZ2UpOworICAgICAgICBpZiAoZXhwZWN0ZWQgPT0gImV2
YWxUaHVuayIpIHsKKyAgICAgICAgICAgIGV2YWxUaHVua3MucHVzaChldmFsVGh1bmspOworICAg
ICAgICB9CisgICAgfSBjYXRjaChlKSB7CisgICAgICAgIGlmIChzaG91bGRUaHJvdykgeworICAg
ICAgICAgICAgaWYgKGV4cGVjdGVkRXhjZXB0aW9uID09PSB1bmRlZmluZWQgfHwgZXhwZWN0ZWRF
eGNlcHRpb24gPT0gZS5jb2RlIHx8IGV4cGVjdGVkRXhjZXB0aW9uID09IGUpIHsKKyAgICAgICAg
ICAgICAgICBjb25zb2xlLmlubmVySFRNTCArPSAiUEFTUzogJ3Bvc3RNZXNzYWdlKCIrbWVzc2Fn
ZSsiKScgdGhyZXcgIiArIGUgKyAiPGJyPiI7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAg
ICAgICAgICAgIGNvbnNvbGUuaW5uZXJIVE1MICs9ICJGQUlMOiAncG9zdE1lc3NhZ2UoIittZXNz
YWdlKyIpJyB0aHJldyAiICsgZSArICIsIHdhcyBleHBlY3RpbmcgIiArIGV4cGVjdGVkRXhjZXB0
aW9uICsgIjxicj4iOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UKKyAgICAgICAgICAg
IGNvbnNvbGUuaW5uZXJIVE1MICs9ICJGQUlMOiAncG9zdE1lc3NhZ2UoIittZXNzYWdlKyIpJyBz
aG91bGQgbm90IHRocm93IGJ1dCB0aHJldyAiICsgZSArICI8YnI+IjsKKyAgICB9Cit9CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXBvc3RtZXNzYWdlLWNs
b25lLWRlZXAtYXJyYXktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93
L3dpbmRvdy1wb3N0bWVzc2FnZS1jbG9uZS1kZWVwLWFycmF5LWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYzFjYWI2Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wb3N0bWVzc2FnZS1jbG9uZS1kZWVw
LWFycmF5LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1Rlc3RzIHRoYXQgd2UgYWJvcnQg
Y2xvbmluZyBkZWVwKGlzaCkgYXJyYXlzLgorCitQQVNTOiBldmVudERhdGEgaXMgW29iamVjdCBB
cnJheV0oZGVmYXVsdCB0b1N0cmluZyB0aHJldyBSYW5nZUVycm9yOiBNYXhpbXVtIGNhbGwgc3Rh
Y2sgc2l6ZSBleGNlZWRlZC4pIG9mIHR5cGUgb2JqZWN0CitQQVNTOiBldmVudERhdGEgaXMgZG9u
ZSBvZiB0eXBlIHN0cmluZworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5k
b3cvd2luZG93LXBvc3RtZXNzYWdlLWNsb25lLWRlZXAtYXJyYXkuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcG9zdG1lc3NhZ2UtY2xvbmUtZGVlcC1hcnJheS5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFjM2QxYTEKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXBvc3RtZXNzYWdlLWNs
b25lLWRlZXAtYXJyYXkuaHRtbApAQCAtMCwwICsxLDEwIEBACis8aHRtbD4KKzxoZWFkPjwvaGVh
ZD4KKzxib2R5PgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgorPGlucHV0IHR5cGU9ImZp
bGUiIGlkPSJmaWxlSW5wdXQiIG11bHRpcGxlPjwvaW5wdXQ+Cis8ZGl2IGlkPSJjb25zb2xlIj48
L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvcG9zdG1lc3NhZ2UtdGVzdC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3Bvc3RtZXNzYWdlLWNsb25lLWRlZXAt
YXJyYXkuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wb3N0bWVzc2FnZS1jbG9uZS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXBvc3RtZXNzYWdlLWNsb25l
LWV4cGVjdGVkLnR4dAppbmRleCBkMmYwMTQ5Li40NmI2NjFkIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXBvc3RtZXNzYWdlLWNsb25lLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXBvc3RtZXNzYWdlLWNs
b25lLWV4cGVjdGVkLnR4dApAQCAtMSw4ICsxLDE2IEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUg
NzQ6IFR5cGVFcnJvcjogTm8gZGVmYXVsdCB2YWx1ZQorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDc0
OiBUeXBlRXJyb3I6IE5vIGRlZmF1bHQgdmFsdWUKIFRlc3RzIHRoYXQgd2UgY2xvbmUgb2JqZWN0
IGhpZXJhcmNoaWVzCiAKLVBBU1M6ICdwb3N0TWVzc2FnZShyZWFsbHlEZWVwQXJyYXkpJyB0aHJl
dyBSYW5nZUVycm9yOiBNYXhpbXVtIGNhbGwgc3RhY2sgc2l6ZSBleGNlZWRlZC4KK0ZBSUw6ICdw
b3N0TWVzc2FnZSgoZnVuY3Rpb24oKXt9KSknIHNob3VsZCB0aHJvdyBidXQgZGlkbid0CiBQQVNT
OiAncG9zdE1lc3NhZ2Uod2luZG93KScgdGhyZXcgVHlwZUVycm9yOiBUeXBlIGVycm9yCiBQQVNT
OiAncG9zdE1lc3NhZ2UoKHtnZXQgYSgpIHsgdGhyb3cgIngiIH19KSknIHRocmV3IHgKK0ZBSUw6
ICdwb3N0TWVzc2FnZShpbWFnZURhdGEuZGF0YSknIHNob3VsZCB0aHJvdyBidXQgZGlkbid0CitG
QUlMOiAncG9zdE1lc3NhZ2UobXV0YXRlZEltYWdlRGF0YS5kYXRhKScgc2hvdWxkIHRocm93IGJ1
dCBkaWRuJ3QKK1BBU1M6ICdwb3N0TWVzc2FnZSgoZnVuY3Rpb24oKSB7cmV0dXJuIHtnZXQgYSgp
IHsgdGhyb3cgImFjY2Vzc29yLWV4biI7IH19O30pKCkpJyB0aHJldyBhY2Nlc3Nvci1leG4KK1BB
U1M6ICdwb3N0TWVzc2FnZSgoZnVuY3Rpb24oKSB7dmFyIG9iamEgPSB7Z2V0IHAoKSB7IHRocm93
ICJhY2Nlc3Nvci1leG4iOyB9fTsgcmV0dXJuIHtnZXQgYSgpIHsgcmV0dXJuIG9iamE7IH19O30p
KCkpJyB0aHJldyBhY2Nlc3Nvci1leG4KK1BBU1M6IGxhc3RJbmRleCBpbml0aWFsbHkgY29ycmVj
dDogd2FzIDMKK1BBU1M6IHNhbml0eSBvbiBmaWxlIHJlZmVyZW5jZSBlcXVhbGl0eQogUEFTUzog
ZXZlbnREYXRhIGlzIG51bGwgb2YgdHlwZSBvYmplY3QKIFBBU1M6IGV2ZW50RGF0YSBpcyB1bmRl
ZmluZWQgb2YgdHlwZSB1bmRlZmluZWQKIFBBU1M6IGV2ZW50RGF0YSBpcyAxIG9mIHR5cGUgbnVt
YmVyCkBAIC0yMiwxNyArMzAsODggQEAgUEFTUzogZXZlbnREYXRhIGlzIGEsYSxiLGEsYiBvZiB0
eXBlIG9iamVjdAogUEFTUzogZXZlbnREYXRhIGlzIGEsYSxiLFtvYmplY3QgT2JqZWN0XSBvZiB0
eXBlIG9iamVjdAogUEFTUzogZXZlbnREYXRhIGlzIDEsMiwzIG9mIHR5cGUgb2JqZWN0CiBQQVNT
OiBldmVudERhdGEgaXMgLCwxIG9mIHR5cGUgb2JqZWN0Ci1QQVNTOiBldmVudERhdGEgaXMgbnVs
bCBvZiB0eXBlIG9iamVjdAorRkFJTDogZXZlbnREYXRhIGlzIG51bGwgc2hvdWxkIGJlIGZ1bmN0
aW9uICgpIHt9IG9mIHR5cGUgZnVuY3Rpb24KIFBBU1M6IGV2ZW50RGF0YSBpcyAyMDA5LTAyLTEz
VDIzOjMxOjMwLjAwMFogb2YgdHlwZSBvYmplY3QKIFBBU1M6IGV2ZW50RGF0YSBpcyBbb2JqZWN0
IE9iamVjdF0gb2YgdHlwZSBvYmplY3QKIFBBU1M6IGV2ZW50RGF0YSBpcyA9PT0gdG8gZXZlbnRE
YXRhLnNlbGYKIFBBU1M6IGV2ZW50RGF0YSBpcyA9PT0gdG8gZXZlbnREYXRhWzBdCiBQQVNTOiBl
dmVudERhdGEuZ3JhcGgxIGlzID09PSB0byBldmVudERhdGEuZ3JhcGgyCiBQQVNTOiBldmVudERh
dGFbMF0gaXMgPT09IHRvIGV2ZW50RGF0YVsxXQotUEFTUzogZXZlbnREYXRhIGlzIFtvYmplY3Qg
QXJyYXldKGRlZmF1bHQgdG9TdHJpbmcgdGhyZXcgUmFuZ2VFcnJvcjogTWF4aW11bSBjYWxsIHN0
YWNrIHNpemUgZXhjZWVkZWQuKSBvZiB0eXBlIG9iamVjdAotUEFTUzogZXZlbnREYXRhIGlzIFtv
YmplY3QgRmlsZV0gb2YgdHlwZSBvYmplY3QKLVBBU1M6IGV2ZW50RGF0YSBpcyBbb2JqZWN0IEZp
bGVMaXN0XSBvZiB0eXBlIG9iamVjdAogUEFTUzogZXZlbnREYXRhIGlzIFtvYmplY3QgSW1hZ2VE
YXRhXSBvZiB0eXBlIG9iamVjdAogUEFTUzogZXZlbnREYXRhIGlzIFtvYmplY3QgSW1hZ2VEYXRh
XSBvZiB0eXBlIG9iamVjdAorUEFTUzogZXZlbnREYXRhIGlzIDQyIG9mIHR5cGUgbnVtYmVyCitQ
QVNTOiBldmVudERhdGEgaXMgNDIgb2YgdHlwZSBudW1iZXIKK1BBU1M6IGV2YWxUaHVuayBPSwor
UEFTUzogZXZlbnREYXRhIGlzIFtvYmplY3QgT2JqZWN0XSBvZiB0eXBlIG9iamVjdAorUEFTUzog
bGVuZ3RoIGNvcnJlY3QKK1BBU1M6IGV2YWx1YXRpb24gb3JkZXIgT0sKK1BBU1M6IGV2YWx1YXRp
b24gb3JkZXIgT0svYWNjZXNzb3IgcmVhY2hlZAorUEFTUzogZXZhbHVhdGlvbiBvcmRlciBPSwor
UEFTUzogbGVuZ3RoIGNvcnJlY3QKK1BBU1M6IGl4IDAgT0sKK1BBU1M6IGFjY2Vzc29yIHJlYWNo
ZWQKK1BBU1M6IGl4IDIgdW5kZWZpbmVkCitQQVNTOiBsZW5ndGggY29ycmVjdAorUEFTUzogaXgg
MCBPSworUEFTUzogaXggMSBPSworUEFTUzogaXggMiBPSworUEFTUzogYmFzaWMgcHJvcGVydGll
cyBPSworUEFTUzogb25lIGFjY2Vzc29yIHdhcyBydW4KK1BBU1M6IHByb3BlcnR5IHdhcyByZW1v
dmVkCitQQVNTOiBwcm9wZXJ0eSB3YXMgcmVtb3ZlZAorUEFTUzogYWNjZXNzb3Igd2FzIHJ1bgor
UEFTUzogZHluYW1pYyBwcm9wZXJ0eSBub3Qgc2VudAorUEFTUzogcmVmZXJlbmNlIGVxdWFsaXR5
IHByZXNlcnZlZAorUEFTUzogYWNjZXNzb3JzIHVzZWQKK1BBU1M6IHJlZmVyZW5jZSBlcXVhbGl0
eSBwcmVzZXJ2ZWQgKG9wcG9zaXRlIG9yZGVyKQorUEFTUzogYWNjZXNzb3JzIHVzZWQgKG9wcG9z
aXRlIG9yZGVyKQorRkFJTDogYWNjZXNzb3IgdmFsdWUgd2FzIG51bGxpZmllZAorUEFTUzogbm9u
LWFjY2Vzc29yIHZhbHVlIHdhcyBub3QgbnVsbGlmaWVkCitGQUlMOiBhY2Nlc3NvciB2YWx1ZSB3
YXMgbnVsbGlmaWVkCitQQVNTOiBub24tYWNjZXNzb3IgdmFsdWUgd2FzIG5vdCBudWxsaWZpZWQK
K1BBU1M6IG5vbi1hY2Nlc3NvciB2YWx1ZSB3YXMgbm90IG51bGxpZmllZAorRkFJTDogYWNjZXNz
b3IgdmFsdWUgd2FzIG51bGxpZmllZAorUEFTUzogbm9uLWFjY2Vzc29yIHZhbHVlIHdhcyBub3Qg
bnVsbGlmaWVkCitQQVNTOiBhY2Nlc3NvciB2YWx1ZSB3YXMgbm90IG51bGxpZmllZAorUEFTUzog
YWNjZXNzb3IgdmFsdWUgd2FzIG5vdCBudWxsaWZpZWQKK0ZBSUw6IGFjY2Vzc29yIHZhbHVlIHdh
cyBudWxsaWZpZWQKK1BBU1M6IG5vbi1hY2Nlc3NvciB2YWx1ZSB3YXMgbm90IG51bGxpZmllZAor
UEFTUzogbm9uLWFjY2Vzc29yIHZhbHVlIHdhcyBub3QgbnVsbGlmaWVkCitQQVNTOiBub24tYWNj
ZXNzb3IgdmFsdWUgaXMgZGVmaW5lZAorUEFTUzogbm9uLWFjY2Vzc29yIHZhbHVlIHdhcyBub3Qg
bnVsbGlmaWVkCitQQVNTOiBub24tYWNjZXNzb3IgdmFsdWUgaXMgZGVmaW5lZAorRkFJTDogYWNj
ZXNzb3IgdmFsdWUgd2FzIG51bGxpZmllZAorUEFTUzogbm9uLWFjY2Vzc29yIHZhbHVlIHdhcyBu
b3QgbnVsbGlmaWVkCitGQUlMOiBhY2Nlc3NvciB2YWx1ZSB3YXMgbnVsbGlmaWVkCitQQVNTOiB3
aW5kb3cucGNhbGxlZCA9PT0gdHJ1ZQorUEFTUzogd2luZG93LmFjYWxsZWQgPT09IHRydWUKK0ZB
SUw6IHdpbmRvdy5iY2FsbGVkID09PSB1bmRlZmluZWQKK1BBU1M6IERhdGUgdmFsdWVzIGNvcnJl
Y3QgKDApCitQQVNTOiBEYXRlIHZhbHVlcyBjb3JyZWN0ICgxKQorRkFJTDogUmVmZXJlbmNlcyB0
byBkYXRlcyBjb3JyZWN0ICgwKQorUEFTUzogUmVmZXJlbmNlcyB0byBkYXRlcyBjb3JyZWN0ICgx
KQorUEFTUzogUmVnZXhwIHZhbHVlIGNvcnJlY3QgKDApCitGQUlMOiBSZWZlcmVuY2VzIHRvIHJl
Z2V4cHMgY29ycmVjdCAoMCkKK1BBU1M6IFJlZmVyZW5jZXMgdG8gcmVnZXhwcyBjb3JyZWN0ICgx
KQorUEFTUzogZ2xvYmFsIHNldCAoMCkKK1BBU1M6IGdsb2JhbCBzZXQgKDEpCitQQVNTOiBpZ25v
cmVDYXNlIHNldCAoMCkKK1BBU1M6IGlnbm9yZUNhc2Ugc2V0ICgxKQorUEFTUzogbXVsdGlsaW5l
IHNldCAoMCkKK1BBU1M6IG11bHRpbGluZSBzZXQgKDEpCitQQVNTOiBsYXN0SW5kZXggY29ycmVj
dCAoMCkKK1BBU1M6IGxhc3RJbmRleCBjb3JyZWN0ICgxKQorUEFTUzogZXZlbnREYXRhIGlzIDIg
b2YgdHlwZSBudW1iZXIKK0ZBSUw6IGZpbGUgcmVmZXJlbmNlcyB0cmFuc2ZlcgorUEFTUzogRmls
ZUxpc3Qgc2hvdWxkIG5vdCByZXNwZWN0IHJlZmVyZW5jZSBlcXVhbGl0eQorUEFTUzogRmlsZUxp
c3Qgc2hvdWxkIG5vdCByZXNwZWN0IHJlZmVyZW5jZSBlcXVhbGl0eQorRkFJTDogRmlsZUxpc3Qg
cmVzcGVjdHMgc2VsZi1yZWZlcmVuY2UgZXF1YWxpdHkKK1BBU1M6IEZpbGVMaXN0IGxlbmd0aCBz
ZW50IGNvcnJlY3RseQorUEFTUzogRmlsZUxpc3Qgc2hvdWxkIG5vdCByZXNwZWN0IHJlZmVyZW5j
ZSBlcXVhbGl0eSAoMCkKK1BBU1M6IEZpbGVMaXN0IHNob3VsZCBub3QgcmVzcGVjdCByZWZlcmVu
Y2UgZXF1YWxpdHkgKDEpCitQQVNTOiBGaWxlTGlzdCBwcmVzZXJ2ZXMgb3JkZXIgYW5kIGRhdGEg
KG5hbWUwKQorUEFTUzogRmlsZUxpc3QgcHJlc2VydmVzIG9yZGVyIGFuZCBkYXRhIChuYW1lMSkK
K1BBU1M6IEZpbGVMaXN0IHByZXNlcnZlcyBvcmRlciBhbmQgZGF0YSAoZGF0ZTApCitQQVNTOiBG
aWxlTGlzdCBwcmVzZXJ2ZXMgb3JkZXIgYW5kIGRhdGEgKGRhdGUxKQogUEFTUzogZXZlbnREYXRh
IGlzIGRvbmUgb2YgdHlwZSBzdHJpbmcKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9k
b20vV2luZG93L3dpbmRvdy1wb3N0bWVzc2FnZS1jbG9uZS1yZWFsbHktZGVlcC1hcnJheS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXBvc3RtZXNzYWdl
LWNsb25lLXJlYWxseS1kZWVwLWFycmF5LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi42MWVhODEzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vV2luZG93L3dpbmRvdy1wb3N0bWVzc2FnZS1jbG9uZS1yZWFsbHktZGVlcC1hcnJh
eS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitUZXN0cyB0aGF0IHdlIGFib3J0IGNsb25p
bmcgb3ZlcmRlZXAgYXJyYXlzLgorCitGQUlMOiAncG9zdE1lc3NhZ2UocmVhbGx5RGVlcEFycmF5
KScgdGhyZXcgUmFuZ2VFcnJvcjogTWF4aW11bSBjYWxsIHN0YWNrIHNpemUgZXhjZWVkZWQuLCB3
YXMgZXhwZWN0aW5nIDI1CitQQVNTOiBldmVudERhdGEgaXMgZG9uZSBvZiB0eXBlIHN0cmluZwor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXBvc3RtZXNz
YWdlLWNsb25lLXJlYWxseS1kZWVwLWFycmF5Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9X
aW5kb3cvd2luZG93LXBvc3RtZXNzYWdlLWNsb25lLXJlYWxseS1kZWVwLWFycmF5Lmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWI2ZDY2YgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcG9zdG1lc3NhZ2UtY2xvbmUt
cmVhbGx5LWRlZXAtYXJyYXkuaHRtbApAQCAtMCwwICsxLDEwIEBACis8aHRtbD4KKzxoZWFkPjwv
aGVhZD4KKzxib2R5PgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgorPGlucHV0IHR5cGU9
ImZpbGUiIGlkPSJmaWxlSW5wdXQiIG11bHRpcGxlPjwvaW5wdXQ+Cis8ZGl2IGlkPSJjb25zb2xl
Ij48L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvcG9zdG1lc3NhZ2UtdGVzdC5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3Bvc3RtZXNzYWdlLWNsb25lLXJl
YWxseS1kZWVwLWFycmF5LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcG9zdG1lc3NhZ2UtY2xvbmUu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcG9zdG1lc3NhZ2UtY2xv
bmUuaHRtbAppbmRleCBmMjgzNTFjLi44ZDYwNjAzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9XaW5kb3cvd2luZG93LXBvc3RtZXNzYWdlLWNsb25lLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wb3N0bWVzc2FnZS1jbG9uZS5odG1sCkBAIC0y
LDIxNiArMiw5IEBACiA8aGVhZD48L2hlYWQ+CiA8Ym9keT4KIDxkaXYgaWQ9ImRlc2NyaXB0aW9u
Ij48L2Rpdj4KLTxpbnB1dCB0eXBlPSJmaWxlIiBpZD0iZmlsZUlucHV0Ij48L2lucHV0PgorPGlu
cHV0IHR5cGU9ImZpbGUiIGlkPSJmaWxlSW5wdXQiIG11bHRpcGxlPjwvaW5wdXQ+CiA8ZGl2IGlk
PSJjb25zb2xlIj48L2Rpdj4KLTxzY3JpcHQ+Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKSB7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgIGxheW91
dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKLX0KLQotdmFyIGNvbnNvbGUgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpOwotCi12YXIgbWVzc2FnZXMgPSBbXTsKLQot
ZnVuY3Rpb24gZXF1YWwoYWN0dWFsLCBleHBlY3RlZCkKLXsKLSAgICBpZiAoYWN0dWFsID09PSBl
eHBlY3RlZCkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgaWYgKHR5cGVvZiBhY3R1YWwgIT09
IHR5cGVvZiBleHBlY3RlZCkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICgoYWN0dWFs
IGluc3RhbmNlb2YgRGF0ZSkgfHwgKGV4cGVjdGVkIGluc3RhbmNlb2YgRGF0ZSkpIHsKLSAgICAg
ICAgaWYgKChhY3R1YWwgaW5zdGFuY2VvZiBEYXRlKSAmJiAoZXhwZWN0ZWQgaW5zdGFuY2VvZiBE
YXRlKSkKLSAgICAgICAgICAgIHJldHVybiAoZXhwZWN0ZWQgaW5zdGFuY2VvZiBEYXRlKSAmJiBh
Y3R1YWwuZ2V0VGltZSgpID09IGV4cGVjdGVkLmdldFRpbWUoKTsKLSAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgIH0KLSAgICBpZiAoQXJyYXkuaXNBcnJheShhY3R1YWwpIHx8IEFycmF5LmlzQXJy
YXkoZXhwZWN0ZWQpKSB7Ci0gICAgICAgIGlmICghQXJyYXkuaXNBcnJheShhY3R1YWwpIHx8ICFB
cnJheS5pc0FycmF5KGV4cGVjdGVkKSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAg
ICAgaWYgKGFjdHVhbC5sZW5ndGggIT0gZXhwZWN0ZWQubGVuZ3RoKQotICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFjdHVhbC5sZW5ndGg7IGkr
KykgewotICAgICAgICAgICAgaWYgKChpIGluIGFjdHVhbCkgXiAoaSBpbiBleHBlY3RlZCkpCi0g
ICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgaWYgKCFlcXVhbChhY3R1
YWxbaV0sIGV4cGVjdGVkW2ldKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAg
ICAgIH0KLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotICAgIGlmIChhY3R1YWwuY29uc3Ry
dWN0b3IgIT09IGV4cGVjdGVkLmNvbnN0cnVjdG9yKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0g
ICAgdHJ5IHsKLSAgICAgICAgdmFyIGtleXMgPSBPYmplY3Qua2V5cyhhY3R1YWwpOwotICAgIH0g
Y2F0Y2goZSkgewotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotICAgIHRyeSB7Ci0gICAg
aWYgKCFlcXVhbChrZXlzLCBPYmplY3Qua2V5cyhleHBlY3RlZCkpKQotICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0gICAgfSBjYXRjaChlKSB7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0g
ICAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgIGlmICgh
ZXF1YWwoYWN0dWFsW2tleXNbaV1dLCBleHBlY3RlZFtrZXlzW2ldXSkpCi0gICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0gICAgfQotICAgIHJldHVybiB0cnVlOwotfQotCi1mdW5jdGlvbiBzYWZl
VG9TdHJpbmcobykgewotICAgIGlmIChvIGluc3RhbmNlb2YgRGF0ZSkKLSAgICAgICAgcmV0dXJu
IG8udG9JU09TdHJpbmcoKTsKLSAgICBpZiAodHlwZW9mIG8gIT09ICJvYmplY3QiIHx8ICFvKQot
ICAgICAgICByZXR1cm4gbzsKLSAgICB0cnkgewotICAgICAgICByZXR1cm4gby50b1N0cmluZygp
OwotICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9T
dHJpbmcuY2FsbChvKSArICIoZGVmYXVsdCB0b1N0cmluZyB0aHJldyAiK2UrIikiOwotICAgIH0K
LX0KLQotZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkKLXsKLSAgICB2YXIgYWN0
dWFsVmFsdWUgPSBldmFsKGFjdHVhbCk7Ci0gICAgdmFyIGV4cGVjdGVkVmFsdWUgPSBldmFsKGV4
cGVjdGVkKTsKLSAgICBpZiAoZXF1YWwoYWN0dWFsVmFsdWUsIGV4cGVjdGVkVmFsdWUpKQotICAg
ICAgICBjb25zb2xlLmlubmVySFRNTCArPSAiUEFTUzogIiArIGFjdHVhbCArICIgaXMgIiArIHNh
ZmVUb1N0cmluZyhleHBlY3RlZFZhbHVlKSArICIgb2YgdHlwZSAiICsgdHlwZW9mIGFjdHVhbFZh
bHVlICsgIjxicj4iOwotICAgIGVsc2UKLSAgICAgICAgY29uc29sZS5pbm5lckhUTUwgKz0gIkZB
SUw6ICIgKyBhY3R1YWwgKyAiIGlzICIgKyBhY3R1YWxWYWx1ZSArICIgc2hvdWxkIGJlICIgKyBl
eHBlY3RlZFZhbHVlICsgIiBvZiB0eXBlICIgKyB0eXBlb2YgZXhwZWN0ZWRWYWx1ZSArICI8YnI+
IjsKLX0KLQotZnVuY3Rpb24gc2hvdWxkQmVJZGVudGljYWwoYWN0dWFsLCBleHBlY3RlZCkKLXsK
LSAgICB2YXIgYWN0dWFsVmFsdWUgPSBldmFsKGFjdHVhbCk7Ci0gICAgdmFyIGV4cGVjdGVkVmFs
dWUgPSBldmFsKGV4cGVjdGVkKTsKLSAgICBpZiAoYWN0dWFsVmFsdWUgPT09IGV4cGVjdGVkVmFs
dWUpCi0gICAgICAgIGNvbnNvbGUuaW5uZXJIVE1MICs9ICJQQVNTOiAiICsgYWN0dWFsICsgIiBp
cyA9PT0gdG8gIiArIGV4cGVjdGVkICsgIjxicj4iOwotICAgIGVsc2UKLSAgICAgICAgY29uc29s
ZS5pbm5lckhUTUwgKz0gIkZBSUw6ICIgKyBhY3R1YWwgKyAiIGlzIG5vdCA9PT0gdG8gIiArIGV4
cGVjdGVkICsgIjxicj4iOwotfQotCi1mdW5jdGlvbiBvbm1lc3NhZ2UoZXZ0KSB7Ci0gICAgZXZl
bnREYXRhID0gZXZ0LmRhdGE7Ci0gICAgaWYgKGV2dC5kYXRhICE9PSBldnQuZGF0YSkKLSAgICAg
ICAgY29uc29sZS5pbm5lckhUTUwgKz0gIk1lc3NhZ2VFdmVudC5kYXRhIGRvZXMgbm90IHByb2R1
Y2UgdGhlIHNhbWUgdmFsdWUgb24gbXVsdGlwbGUgcXVlcmllcy48YnI+IjsKLSAgICB2YXIgbWVz
c2FnZSA9IG1lc3NhZ2VzLnNoaWZ0KCk7Ci0gICAgc3dpdGNoIChtZXNzYWdlKSB7Ci0gICAgY2Fz
ZSAiY3ljbGljT2JqZWN0IjoKLSAgICAgICAgc2hvdWxkQmVJZGVudGljYWwoImV2ZW50RGF0YSIs
ICJldmVudERhdGEuc2VsZiIpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlICJjeWNsaWNBcnJh
eSI6Ci0gICAgICAgIHNob3VsZEJlSWRlbnRpY2FsKCJldmVudERhdGEiLCAiZXZlbnREYXRhWzBd
Iik7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgIm9iamVjdEdyYXBoIjoKLSAgICAgICAgc2hv
dWxkQmVJZGVudGljYWwoImV2ZW50RGF0YS5ncmFwaDEiLCAiZXZlbnREYXRhLmdyYXBoMiIpOwot
ICAgICAgICBicmVhazsKLSAgICBjYXNlICJhcnJheUdyYXBoIjoKLSAgICAgICAgc2hvdWxkQmVJ
ZGVudGljYWwoImV2ZW50RGF0YVswXSIsICJldmVudERhdGFbMV0iKTsKLSAgICAgICAgYnJlYWs7
Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgc2hvdWxkQmUoImV2ZW50RGF0YSIsIG1lc3NhZ2UpOwot
ICAgIH0KLQotICAgIGlmIChzYWZlVG9TdHJpbmcoZXZ0LmRhdGEpID09ICdkb25lJyAmJiB3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5v
dGlmeURvbmUoKTsKLX0KLQotd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCBvbm1l
c3NhZ2UsIGZhbHNlKTsKLQotZnVuY3Rpb24gQ29uc3RydWN0b3JXaXRoUHJvdG90eXBlKHMpIHsK
LSAgICB0aGlzLmZpZWxkID0gczsKLX0KLQotQ29uc3RydWN0b3JXaXRoUHJvdG90eXBlLnByb3Rv
dHlwZSA9IHsKLSAgICBwcm90b1Byb3BlcnR5OiAyMDEwCi19OwotCi1mdW5jdGlvbiB0cnlQb3N0
TWVzc2FnZShtZXNzYWdlLCBzaG91bGRUaHJvdywgZXhwZWN0ZWQpIHsKLSAgICB0cnkgewotICAg
ICAgICB2YXIgdmFsdWUgPSBldmFsKG1lc3NhZ2UpOwotICAgICAgICBwb3N0TWVzc2FnZSh2YWx1
ZSwgIioiKTsKLSAgICAgICAgaWYgKHNob3VsZFRocm93KQotICAgICAgICAgICAgY29uc29sZS5p
bm5lckhUTUwgKz0gIkZBSUw6ICdwb3N0TWVzc2FnZSgiK21lc3NhZ2UrIiknIHNob3VsZCB0aHJv
dyBidXQgZGlkbid0PGJyPiI7Ci0gICAgICAgIG1lc3NhZ2VzLnB1c2goZXhwZWN0ZWQgfHwgbWVz
c2FnZSk7Ci0gICAgfSBjYXRjaChlKSB7Ci0gICAgICAgIGlmIChzaG91bGRUaHJvdykKLSAgICAg
ICAgICAgIGNvbnNvbGUuaW5uZXJIVE1MICs9ICJQQVNTOiAncG9zdE1lc3NhZ2UoIittZXNzYWdl
KyIpJyB0aHJldyAiICsgZSArICI8YnI+IjsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgY29u
c29sZS5pbm5lckhUTUwgKz0gIkZBSUw6ICdwb3N0TWVzc2FnZSgiK21lc3NhZ2UrIiknIHNob3Vs
ZCBub3QgdGhyb3cgYnV0IHRocmV3ICIgKyBlICsgIjxicj4iOwotICAgIH0KLX0KLQotZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoImRlc2NyaXB0aW9uIikuaW5uZXJIVE1MID0gIlRlc3RzIHRoYXQg
d2UgY2xvbmUgb2JqZWN0IGhpZXJhcmNoaWVzIjsKLQotdHJ5UG9zdE1lc3NhZ2UoJ251bGwnKTsK
LXRyeVBvc3RNZXNzYWdlKCd1bmRlZmluZWQnKTsKLXRyeVBvc3RNZXNzYWdlKCcxJyk7Ci10cnlQ
b3N0TWVzc2FnZSgndHJ1ZScpOwotdHJ5UG9zdE1lc3NhZ2UoJyIxIicpOwotdHJ5UG9zdE1lc3Nh
Z2UoJyh7fSknKTsKLXRyeVBvc3RNZXNzYWdlKCcoe2E6MX0pJyk7Ci10cnlQb3N0TWVzc2FnZSgn
KHthOiJhIn0pJyk7Ci10cnlQb3N0TWVzc2FnZSgnKHtiOiJhIiwgYToiYiJ9KScpOwotdHJ5UG9z
dE1lc3NhZ2UoJyh7cDA6InN0cmluZzAiLCBwMToic3RyaW5nMSIsIHAyOiJzdHJpbmcyIiwgcDM6
InN0cmluZzMiLCBwNDoic3RyaW5nNCIsIHA1OiJzdHJpbmc1IiwgcDY6InN0cmluZzYiLCBwNzoi
c3RyaW5nNyIsIHA4OiJzdHJpbmc4IiwgcDk6InN0cmluZzkiLCBwMTA6InN0cmluZzEwIiwgcDEx
OiJzdHJpbmcxMSIsIHAxMjoic3RyaW5nMTIiLCBwMTM6InN0cmluZzEzIiwgcDE0OiJzdHJpbmcx
NCIsIHAxNToic3RyaW5nMTUiLCBwMTY6InN0cmluZzE2IiwgcDE3OiJzdHJpbmcxNyIsIHAxODoi
c3RyaW5nMTgiLCBwMTk6InN0cmluZzE5In0pJyk7Ci10cnlQb3N0TWVzc2FnZSgnKHtwMDoic3Ry
aW5nMSIsIHAxOiJzdHJpbmcxIiwgcDI6InN0cmluZzIiLCBwMzoic3RyaW5nMyIsIHA0OiJzdHJp
bmc0IiwgcDU6InN0cmluZzUiLCBwNjoic3RyaW5nNiIsIHA3OiJzdHJpbmc3IiwgcDg6InN0cmlu
ZzgiLCBwOToic3RyaW5nOSIsIHAxMDoic3RyaW5nMTAiLCBwMTE6InN0cmluZzExIiwgcDEyOiJz
dHJpbmcxMiIsIHAxMzoic3RyaW5nMTMiLCBwMTQ6InN0cmluZzE0IiwgcDE1OiJzdHJpbmcxNSIs
IHAxNjoic3RyaW5nMTYiLCBwMTc6InN0cmluZzE3IiwgcDE4OiJzdHJpbmcxOCIsIHAxOToic3Ry
aW5nMTkifSknKTsKLXRyeVBvc3RNZXNzYWdlKCcoe2E6IiJ9KScpOwotdHJ5UG9zdE1lc3NhZ2Uo
Jyh7YTowfSknKTsKLXRyeVBvc3RNZXNzYWdlKCcoe2E6MX0pJyk7Ci10cnlQb3N0TWVzc2FnZSgn
W10nKTsKLXRyeVBvc3RNZXNzYWdlKCdbImEiLCAiYSIsICJiIiwgImEiLCAiYiJdJyk7Ci10cnlQ
b3N0TWVzc2FnZSgnWyJhIiwgImEiLCAiYiIsIHthOiJiIiwgYjoiYSJ9XScpOwotdHJ5UG9zdE1l
c3NhZ2UoJ1sxLDIsM10nKTsKLXRyeVBvc3RNZXNzYWdlKCdbLCwxXScpOwotdHJ5UG9zdE1lc3Nh
Z2UoJyhmdW5jdGlvbigpe30pJywgZmFsc2UsICdudWxsJyk7Ci10cnlQb3N0TWVzc2FnZSgnbmV3
IERhdGUoMTIzNDU2Nzg5MDAwMCknKTsKLXRyeVBvc3RNZXNzYWdlKCduZXcgQ29uc3RydWN0b3JX
aXRoUHJvdG90eXBlKCJmb28iKScsIGZhbHNlLCAnKHtmaWVsZDoiZm9vIn0pJyk7Ci1jeWNsaWNP
YmplY3Q9e307Ci1jeWNsaWNPYmplY3Quc2VsZiA9IGN5Y2xpY09iamVjdDsKLXRyeVBvc3RNZXNz
YWdlKCdjeWNsaWNPYmplY3QnLCBmYWxzZSwgImN5Y2xpY09iamVjdCIpOwotY3ljbGljQXJyYXk9
W107Ci1jeWNsaWNBcnJheVswXSA9IGN5Y2xpY0FycmF5OwotdHJ5UG9zdE1lc3NhZ2UoJ2N5Y2xp
Y0FycmF5JywgZmFsc2UsICJjeWNsaWNBcnJheSIpOwotb2JqZWN0R3JhcGggPSB7fTsKLW9iamVj
dCA9IHt9Owotb2JqZWN0R3JhcGguZ3JhcGgxID0gb2JqZWN0Owotb2JqZWN0R3JhcGguZ3JhcGgy
ID0gb2JqZWN0OwotdHJ5UG9zdE1lc3NhZ2UoJ29iamVjdEdyYXBoJywgZmFsc2UsICJvYmplY3RH
cmFwaCIpOwotYXJyYXlHcmFwaCA9IFtvYmplY3QsIG9iamVjdF07Ci10cnlQb3N0TWVzc2FnZSgn
YXJyYXlHcmFwaCcsIGZhbHNlLCAiYXJyYXlHcmFwaCIpOwotZGVlcEFycmF5PVtdOwotZm9yICh2
YXIgaSA9IDA7IGkgPCAxMDAwMDsgaSsrKQotICAgIGRlZXBBcnJheT1bZGVlcEFycmF5XTsKLXRy
eVBvc3RNZXNzYWdlKCdkZWVwQXJyYXknKTsKLXJlYWxseURlZXBBcnJheT1bXTsKLWZvciAodmFy
IGkgPSAwOyBpIDwgMTAwMDAwOyBpKyspCi0gICAgcmVhbGx5RGVlcEFycmF5PVtyZWFsbHlEZWVw
QXJyYXldOwotdHJ5UG9zdE1lc3NhZ2UoJ3JlYWxseURlZXBBcnJheScsIHRydWUpOwotdHJ5UG9z
dE1lc3NhZ2UoJ3dpbmRvdycsIHRydWUpOwotdHJ5UG9zdE1lc3NhZ2UoJyh7Z2V0IGEoKSB7IHRo
cm93ICJ4IiB9fSknLCB0cnVlKTsKLQotaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgewotICAgIHZh
ciBmaWxlSW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsZUlucHV0Iik7Ci0gICAg
dmFyIGZpbGVSZWN0ID0gZmlsZUlucHV0LmdldENsaWVudFJlY3RzKClbMF07Ci0gICAgdmFyIHRh
cmdldFggPSBmaWxlUmVjdC5sZWZ0ICsgZmlsZVJlY3Qud2lkdGggLyAyOwotICAgIHZhciB0YXJn
ZXRZID0gZmlsZVJlY3QudG9wICsgZmlsZVJlY3QuaGVpZ2h0IC8gMjsKLSAgICBldmVudFNlbmRl
ci5iZWdpbkRyYWdXaXRoRmlsZXMoWydnZXQtZmlsZS11cGxvYWQuaHRtbCddKTsKLSAgICBldmVu
dFNlbmRlci5tb3VzZU1vdmVUbyh0YXJnZXRYLCB0YXJnZXRZKTsKLSAgICBldmVudFNlbmRlci5t
b3VzZVVwKCk7Ci0gICAgdHJ5UG9zdE1lc3NhZ2UoJ2ZpbGVJbnB1dC5maWxlc1swXScsIGZhbHNl
LCBmaWxlSW5wdXQuZmlsZXNbMF0pOwotICAgIHRyeVBvc3RNZXNzYWdlKCdmaWxlSW5wdXQuZmls
ZXMnLCBmYWxzZSwgZmlsZUlucHV0LmZpbGVzKTsKLX0KLXZhciBpbWFnZURhdGEgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKS5nZXRDb250ZXh0KCIyZCIpLmNyZWF0ZUltYWdlRGF0
YSgxMCwxMCk7Ci1mb3IgKHZhciBpID0gMDsgaSA8IGltYWdlRGF0YS5kYXRhLmxlbmd0aCAqIDQ7
IGkrKykKLSAgICBpbWFnZURhdGEuZGF0YVtpXSA9IGkgJSAyNTY7Ci12YXIgbXV0YXRlZEltYWdl
RGF0YSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpLmdldENvbnRleHQoIjJkIiku
Y3JlYXRlSW1hZ2VEYXRhKDEwLDEwKTsKLWZvciAodmFyIGkgPSAwOyBpIDwgaW1hZ2VEYXRhLmRh
dGEubGVuZ3RoICogNDsgaSsrKQotICAgIG11dGF0ZWRJbWFnZURhdGEuZGF0YVtpXSA9IGkgJSAy
NTY7Ci10cnlQb3N0TWVzc2FnZSgnaW1hZ2VEYXRhJywgZmFsc2UsIGltYWdlRGF0YSk7Ci10cnlQ
b3N0TWVzc2FnZSgnbXV0YXRlZEltYWdlRGF0YScsIGZhbHNlLCBpbWFnZURhdGEpOwotZm9yICh2
YXIgaSA9IDA7IGkgPCBpbWFnZURhdGEuZGF0YS5sZW5ndGggKiA0OyBpKyspCi0gICAgbXV0YXRl
ZEltYWdlRGF0YS5kYXRhW2ldID0gMDsKLQotdHJ5UG9zdE1lc3NhZ2UoJyJkb25lIicpOwotPC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3Bvc3RtZXNzYWdlLXRlc3QuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9wb3N0bWVzc2FnZS1jbG9uZS5qcyI+
PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dAppbmRleCA0NDM1
NGY5Li4wOWQzMzVjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2lu
ZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dp
bmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQKQEAgLTUxMSw2ICs1MTEsNyBAQCB3
aW5kb3cuQ291bnRlciBbb2JqZWN0IENvdW50ZXJDb25zdHJ1Y3Rvcl0KIHdpbmRvdy5Db3VudGVy
LnByb3RvdHlwZSBbb2JqZWN0IENvdW50ZXJQcm90b3R5cGVdCiB3aW5kb3cuRE9NRXhjZXB0aW9u
IFtvYmplY3QgRE9NRXhjZXB0aW9uQ29uc3RydWN0b3JdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLkFC
T1JUX0VSUiBbbnVtYmVyXQord2luZG93LkRPTUV4Y2VwdGlvbi5EQVRBX0NMT05FX0VSUiBbbnVt
YmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5ET01TVFJJTkdfU0laRV9FUlIgW251bWJlcl0KIHdp
bmRvdy5ET01FeGNlcHRpb24uSElFUkFSQ0hZX1JFUVVFU1RfRVJSIFtudW1iZXJdCiB3aW5kb3cu
RE9NRXhjZXB0aW9uLklOREVYX1NJWkVfRVJSIFtudW1iZXJdCkBAIC01MTgsNiArNTE5LDcgQEAg
d2luZG93LkRPTUV4Y2VwdGlvbi5JTlVTRV9BVFRSSUJVVEVfRVJSIFtudW1iZXJdCiB3aW5kb3cu
RE9NRXhjZXB0aW9uLklOVkFMSURfQUNDRVNTX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2Vw
dGlvbi5JTlZBTElEX0NIQVJBQ1RFUl9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24u
SU5WQUxJRF9NT0RJRklDQVRJT05fRVJSIFtudW1iZXJdCit3aW5kb3cuRE9NRXhjZXB0aW9uLklO
VkFMSURfTk9ERV9UWVBFX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5JTlZBTElE
X1NUQVRFX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5OQU1FU1BBQ0VfRVJSIFtu
dW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLk5FVFdPUktfRVJSIFtudW1iZXJdCkBAIC01Mjgs
MTIgKzUzMCwxNCBAQCB3aW5kb3cuRE9NRXhjZXB0aW9uLk5PX01PRElGSUNBVElPTl9BTExPV0VE
X0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5RVU9UQV9FWENFRURFRF9FUlIgW251
bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24uU0VDVVJJVFlfRVJSIFtudW1iZXJdCiB3aW5kb3cu
RE9NRXhjZXB0aW9uLlNZTlRBWF9FUlIgW251bWJlcl0KK3dpbmRvdy5ET01FeGNlcHRpb24uVElN
RU9VVF9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24uVFlQRV9NSVNNQVRDSF9FUlIg
W251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24uVVJMX01JU01BVENIX0VSUiBbbnVtYmVyXQog
d2luZG93LkRPTUV4Y2VwdGlvbi5WQUxJREFUSU9OX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4
Y2VwdGlvbi5XUk9OR19ET0NVTUVOVF9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24u
cHJvdG90eXBlIFtvYmplY3QgRE9NRXhjZXB0aW9uUHJvdG90eXBlXQogd2luZG93LkRPTUV4Y2Vw
dGlvbi5wcm90b3R5cGUuQUJPUlRfRVJSIFtudW1iZXJdCit3aW5kb3cuRE9NRXhjZXB0aW9uLnBy
b3RvdHlwZS5EQVRBX0NMT05FX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5wcm90
b3R5cGUuRE9NU1RSSU5HX1NJWkVfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLnBy
b3RvdHlwZS5ISUVSQVJDSFlfUkVRVUVTVF9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRp
b24ucHJvdG90eXBlLklOREVYX1NJWkVfRVJSIFtudW1iZXJdCkBAIC01NDEsNiArNTQ1LDcgQEAg
d2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuSU5VU0VfQVRUUklCVVRFX0VSUiBbbnVtYmVy
XQogd2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuSU5WQUxJRF9BQ0NFU1NfRVJSIFtudW1i
ZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5JTlZBTElEX0NIQVJBQ1RFUl9FUlIg
W251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlLklOVkFMSURfTU9ESUZJQ0FU
SU9OX0VSUiBbbnVtYmVyXQord2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuSU5WQUxJRF9O
T0RFX1RZUEVfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5JTlZB
TElEX1NUQVRFX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuTkFN
RVNQQUNFX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuTkVUV09S
S19FUlIgW251bWJlcl0KQEAgLTU1MSw2ICs1NTYsNyBAQCB3aW5kb3cuRE9NRXhjZXB0aW9uLnBy
b3RvdHlwZS5OT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01F
eGNlcHRpb24ucHJvdG90eXBlLlFVT1RBX0VYQ0VFREVEX0VSUiBbbnVtYmVyXQogd2luZG93LkRP
TUV4Y2VwdGlvbi5wcm90b3R5cGUuU0VDVVJJVFlfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhj
ZXB0aW9uLnByb3RvdHlwZS5TWU5UQVhfRVJSIFtudW1iZXJdCit3aW5kb3cuRE9NRXhjZXB0aW9u
LnByb3RvdHlwZS5USU1FT1VUX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5wcm90
b3R5cGUuVFlQRV9NSVNNQVRDSF9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24ucHJv
dG90eXBlLlVSTF9NSVNNQVRDSF9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24ucHJv
dG90eXBlLlZBTElEQVRJT05fRVJSIFtudW1iZXJdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2NhbnZhcy93ZWJnbC9hcnJheS1tZXNzYWdlLXBhc3Npbmct
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9jYW52YXMv
d2ViZ2wvYXJyYXktbWVzc2FnZS1wYXNzaW5nLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi41MjA4NTBmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9jYW52YXMvd2ViZ2wvYXJyYXktbWVzc2FnZS1wYXNz
aW5nLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDU5OSBAQAorVGVzdCBwYXNzaW5nIEFycmF5QnVm
ZmVycyBhbmQgQXJyYXlCdWZmZXJWaWV3cyBpbiBtZXNzYWdlcy4KKworT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUiLgorCitQQVNTIEFycmF5QnVmZmVyMDogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJh
eUJ1ZmZlcl0KK1BBU1MgQXJyYXlCdWZmZXIwOiBidWZmZXIgbGVuZ3RocyBhcmUgMAorUEFTUyBB
cnJheUJ1ZmZlcjA6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBBcnJheUJ1
ZmZlcjE6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIEFycmF5QnVmZmVy
MTogYnVmZmVyIGxlbmd0aHMgYXJlIDEKK1BBU1MgQXJyYXlCdWZmZXIxOiBidWZmZXJzIGhhdmUg
dGhlIHNhbWUgY29udGVudHMKK1BBU1MgQXJyYXlCdWZmZXIxMjg6IGNsYXNzZXMgYXJlIFtvYmpl
Y3QgQXJyYXlCdWZmZXJdCitQQVNTIEFycmF5QnVmZmVyMTI4OiBidWZmZXIgbGVuZ3RocyBhcmUg
MTI4CitQQVNTIEFycmF5QnVmZmVyMTI4OiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMK
K1BBU1MgRGF0YVZpZXcwOiBjbGFzc2VzIGFyZSBbb2JqZWN0IERhdGFWaWV3XQorUEFTUyBEYXRh
VmlldzA6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIERhdGFWaWV3MDog
YnVmZmVyIGxlbmd0aHMgYXJlIDAKK1BBU1MgRGF0YVZpZXcwOiBidWZmZXJzIGhhdmUgdGhlIHNh
bWUgY29udGVudHMKK1BBU1MgRGF0YVZpZXcwOiBvZmZzZXQgaXMgMAorUEFTUyBEYXRhVmlldzA6
IGxlbmd0aCBpcyAwCitQQVNTIERhdGFWaWV3MTogY2xhc3NlcyBhcmUgW29iamVjdCBEYXRhVmll
d10KK1BBU1MgRGF0YVZpZXcxOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFT
UyBEYXRhVmlldzE6IGJ1ZmZlciBsZW5ndGhzIGFyZSAxCitQQVNTIERhdGFWaWV3MTogYnVmZmVy
cyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIERhdGFWaWV3MTogb2Zmc2V0IGlzIDAKK1BB
U1MgRGF0YVZpZXcxOiBsZW5ndGggaXMgMQorUEFTUyBEYXRhVmlldzEyODogY2xhc3NlcyBhcmUg
W29iamVjdCBEYXRhVmlld10KK1BBU1MgRGF0YVZpZXcxMjg6IGNsYXNzZXMgYXJlIFtvYmplY3Qg
QXJyYXlCdWZmZXJdCitQQVNTIERhdGFWaWV3MTI4OiBidWZmZXIgbGVuZ3RocyBhcmUgMTI4CitQ
QVNTIERhdGFWaWV3MTI4OiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgRGF0
YVZpZXcxMjg6IG9mZnNldCBpcyAwCitQQVNTIERhdGFWaWV3MTI4OiBsZW5ndGggaXMgMTI4CitQ
QVNTIERhdGFWaWV3MV9vZnNfZW5kOiBjbGFzc2VzIGFyZSBbb2JqZWN0IERhdGFWaWV3XQorUEFT
UyBEYXRhVmlldzFfb2ZzX2VuZDogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BB
U1MgRGF0YVZpZXcxX29mc19lbmQ6IGJ1ZmZlciBsZW5ndGhzIGFyZSAxCitQQVNTIERhdGFWaWV3
MV9vZnNfZW5kOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgRGF0YVZpZXcx
X29mc19lbmQ6IG9mZnNldCBpcyAxCitQQVNTIERhdGFWaWV3MV9vZnNfZW5kOiBsZW5ndGggaXMg
MAorUEFTUyBEYXRhVmlldzEyOF9vZnNfZW5kOiBjbGFzc2VzIGFyZSBbb2JqZWN0IERhdGFWaWV3
XQorUEFTUyBEYXRhVmlldzEyOF9vZnNfZW5kOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVm
ZmVyXQorUEFTUyBEYXRhVmlldzEyOF9vZnNfZW5kOiBidWZmZXIgbGVuZ3RocyBhcmUgMTI4CitQ
QVNTIERhdGFWaWV3MTI4X29mc19lbmQ6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cwor
UEFTUyBEYXRhVmlldzEyOF9vZnNfZW5kOiBvZmZzZXQgaXMgMTI4CitQQVNTIERhdGFWaWV3MTI4
X29mc19lbmQ6IGxlbmd0aCBpcyAwCitQQVNTIERhdGFWaWV3MTI4X29mc19zbGljZTA6IGNsYXNz
ZXMgYXJlIFtvYmplY3QgRGF0YVZpZXddCitQQVNTIERhdGFWaWV3MTI4X29mc19zbGljZTA6IGNs
YXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIERhdGFWaWV3MTI4X29mc19zbGlj
ZTA6IGJ1ZmZlciBsZW5ndGhzIGFyZSAxMjgKK1BBU1MgRGF0YVZpZXcxMjhfb2ZzX3NsaWNlMDog
YnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIERhdGFWaWV3MTI4X29mc19zbGlj
ZTA6IG9mZnNldCBpcyA2NAorUEFTUyBEYXRhVmlldzEyOF9vZnNfc2xpY2UwOiBsZW5ndGggaXMg
MAorUEFTUyBEYXRhVmlldzEyOF9vZnNfc2xpY2UxOiBjbGFzc2VzIGFyZSBbb2JqZWN0IERhdGFW
aWV3XQorUEFTUyBEYXRhVmlldzEyOF9vZnNfc2xpY2UxOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFy
cmF5QnVmZmVyXQorUEFTUyBEYXRhVmlldzEyOF9vZnNfc2xpY2UxOiBidWZmZXIgbGVuZ3RocyBh
cmUgMTI4CitQQVNTIERhdGFWaWV3MTI4X29mc19zbGljZTE6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2Ft
ZSBjb250ZW50cworUEFTUyBEYXRhVmlldzEyOF9vZnNfc2xpY2UxOiBvZmZzZXQgaXMgNjQKK1BB
U1MgRGF0YVZpZXcxMjhfb2ZzX3NsaWNlMTogbGVuZ3RoIGlzIDEKK1BBU1MgRGF0YVZpZXcxMjhf
b2ZzX3NsaWNlMTY6IGNsYXNzZXMgYXJlIFtvYmplY3QgRGF0YVZpZXddCitQQVNTIERhdGFWaWV3
MTI4X29mc19zbGljZTE2OiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBE
YXRhVmlldzEyOF9vZnNfc2xpY2UxNjogYnVmZmVyIGxlbmd0aHMgYXJlIDEyOAorUEFTUyBEYXRh
VmlldzEyOF9vZnNfc2xpY2UxNjogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNT
IERhdGFWaWV3MTI4X29mc19zbGljZTE2OiBvZmZzZXQgaXMgNjQKK1BBU1MgRGF0YVZpZXcxMjhf
b2ZzX3NsaWNlMTY6IGxlbmd0aCBpcyAxNgorUEFTUyBEYXRhVmlldzEyOF9vZnNfc2xpY2VfdW5h
bGlnbmVkOiBjbGFzc2VzIGFyZSBbb2JqZWN0IERhdGFWaWV3XQorUEFTUyBEYXRhVmlldzEyOF9v
ZnNfc2xpY2VfdW5hbGlnbmVkOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFT
UyBEYXRhVmlldzEyOF9vZnNfc2xpY2VfdW5hbGlnbmVkOiBidWZmZXIgbGVuZ3RocyBhcmUgMTI4
CitQQVNTIERhdGFWaWV3MTI4X29mc19zbGljZV91bmFsaWduZWQ6IGJ1ZmZlcnMgaGF2ZSB0aGUg
c2FtZSBjb250ZW50cworUEFTUyBEYXRhVmlldzEyOF9vZnNfc2xpY2VfdW5hbGlnbmVkOiBvZmZz
ZXQgaXMgNjMKK1BBU1MgRGF0YVZpZXcxMjhfb2ZzX3NsaWNlX3VuYWxpZ25lZDogbGVuZ3RoIGlz
IDE1CitQQVNTIEludDMyXzA6IGNsYXNzZXMgYXJlIFtvYmplY3QgSW50MzJBcnJheV0KK1BBU1Mg
SW50MzJfMDogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgSW50MzJfMDog
YnVmZmVyIGxlbmd0aHMgYXJlIDAKK1BBU1MgSW50MzJfMDogYnVmZmVycyBoYXZlIHRoZSBzYW1l
IGNvbnRlbnRzCitQQVNTIEludDMyXzA6IG9mZnNldCBpcyAwCitQQVNTIEludDMyXzA6IGxlbmd0
aCBpcyAwCitQQVNTIFVpbnQzMl8wOiBjbGFzc2VzIGFyZSBbb2JqZWN0IFVpbnQzMkFycmF5XQor
UEFTUyBVaW50MzJfMDogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgVWlu
dDMyXzA6IGJ1ZmZlciBsZW5ndGhzIGFyZSAwCitQQVNTIFVpbnQzMl8wOiBidWZmZXJzIGhhdmUg
dGhlIHNhbWUgY29udGVudHMKK1BBU1MgVWludDMyXzA6IG9mZnNldCBpcyAwCitQQVNTIFVpbnQz
Ml8wOiBsZW5ndGggaXMgMAorUEFTUyBJbnQ4XzA6IGNsYXNzZXMgYXJlIFtvYmplY3QgSW50OEFy
cmF5XQorUEFTUyBJbnQ4XzA6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNT
IEludDhfMDogYnVmZmVyIGxlbmd0aHMgYXJlIDAKK1BBU1MgSW50OF8wOiBidWZmZXJzIGhhdmUg
dGhlIHNhbWUgY29udGVudHMKK1BBU1MgSW50OF8wOiBvZmZzZXQgaXMgMAorUEFTUyBJbnQ4XzA6
IGxlbmd0aCBpcyAwCitQQVNTIFVpbnQ4XzA6IGNsYXNzZXMgYXJlIFtvYmplY3QgVWludDhBcnJh
eV0KK1BBU1MgVWludDhfMDogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1Mg
VWludDhfMDogYnVmZmVyIGxlbmd0aHMgYXJlIDAKK1BBU1MgVWludDhfMDogYnVmZmVycyBoYXZl
IHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIFVpbnQ4XzA6IG9mZnNldCBpcyAwCitQQVNTIFVpbnQ4
XzA6IGxlbmd0aCBpcyAwCitQQVNTIEludDE2XzA6IGNsYXNzZXMgYXJlIFtvYmplY3QgSW50MTZB
cnJheV0KK1BBU1MgSW50MTZfMDogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BB
U1MgSW50MTZfMDogYnVmZmVyIGxlbmd0aHMgYXJlIDAKK1BBU1MgSW50MTZfMDogYnVmZmVycyBo
YXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIEludDE2XzA6IG9mZnNldCBpcyAwCitQQVNTIElu
dDE2XzA6IGxlbmd0aCBpcyAwCitQQVNTIFVpbnQxNl8wOiBjbGFzc2VzIGFyZSBbb2JqZWN0IFVp
bnQxNkFycmF5XQorUEFTUyBVaW50MTZfMDogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZl
cl0KK1BBU1MgVWludDE2XzA6IGJ1ZmZlciBsZW5ndGhzIGFyZSAwCitQQVNTIFVpbnQxNl8wOiBi
dWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgVWludDE2XzA6IG9mZnNldCBpcyAw
CitQQVNTIFVpbnQxNl8wOiBsZW5ndGggaXMgMAorUEFTUyBGbG9hdDMyXzA6IGNsYXNzZXMgYXJl
IFtvYmplY3QgRmxvYXQzMkFycmF5XQorUEFTUyBGbG9hdDMyXzA6IGNsYXNzZXMgYXJlIFtvYmpl
Y3QgQXJyYXlCdWZmZXJdCitQQVNTIEZsb2F0MzJfMDogYnVmZmVyIGxlbmd0aHMgYXJlIDAKK1BB
U1MgRmxvYXQzMl8wOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgRmxvYXQz
Ml8wOiBvZmZzZXQgaXMgMAorUEFTUyBGbG9hdDMyXzA6IGxlbmd0aCBpcyAwCitQQVNTIEZsb2F0
NjRfMDogY2xhc3NlcyBhcmUgW29iamVjdCBGbG9hdDY0QXJyYXldCitQQVNTIEZsb2F0NjRfMDog
Y2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgRmxvYXQ2NF8wOiBidWZmZXIg
bGVuZ3RocyBhcmUgMAorUEFTUyBGbG9hdDY0XzA6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250
ZW50cworUEFTUyBGbG9hdDY0XzA6IG9mZnNldCBpcyAwCitQQVNTIEZsb2F0NjRfMDogbGVuZ3Ro
IGlzIDAKK1BBU1MgSW50MzJfMTogY2xhc3NlcyBhcmUgW29iamVjdCBJbnQzMkFycmF5XQorUEFT
UyBJbnQzMl8xOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBJbnQzMl8x
OiBidWZmZXIgbGVuZ3RocyBhcmUgNAorUEFTUyBJbnQzMl8xOiBidWZmZXJzIGhhdmUgdGhlIHNh
bWUgY29udGVudHMKK1BBU1MgSW50MzJfMTogb2Zmc2V0IGlzIDAKK1BBU1MgSW50MzJfMTogbGVu
Z3RoIGlzIDQKK1BBU1MgVWludDMyXzE6IGNsYXNzZXMgYXJlIFtvYmplY3QgVWludDMyQXJyYXld
CitQQVNTIFVpbnQzMl8xOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBV
aW50MzJfMTogYnVmZmVyIGxlbmd0aHMgYXJlIDQKK1BBU1MgVWludDMyXzE6IGJ1ZmZlcnMgaGF2
ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBVaW50MzJfMTogb2Zmc2V0IGlzIDAKK1BBU1MgVWlu
dDMyXzE6IGxlbmd0aCBpcyA0CitQQVNTIEludDhfMTogY2xhc3NlcyBhcmUgW29iamVjdCBJbnQ4
QXJyYXldCitQQVNTIEludDhfMTogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BB
U1MgSW50OF8xOiBidWZmZXIgbGVuZ3RocyBhcmUgMQorUEFTUyBJbnQ4XzE6IGJ1ZmZlcnMgaGF2
ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBJbnQ4XzE6IG9mZnNldCBpcyAwCitQQVNTIEludDhf
MTogbGVuZ3RoIGlzIDEKK1BBU1MgVWludDhfMTogY2xhc3NlcyBhcmUgW29iamVjdCBVaW50OEFy
cmF5XQorUEFTUyBVaW50OF8xOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFT
UyBVaW50OF8xOiBidWZmZXIgbGVuZ3RocyBhcmUgMQorUEFTUyBVaW50OF8xOiBidWZmZXJzIGhh
dmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgVWludDhfMTogb2Zmc2V0IGlzIDAKK1BBU1MgVWlu
dDhfMTogbGVuZ3RoIGlzIDEKK1BBU1MgSW50MTZfMTogY2xhc3NlcyBhcmUgW29iamVjdCBJbnQx
NkFycmF5XQorUEFTUyBJbnQxNl8xOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQor
UEFTUyBJbnQxNl8xOiBidWZmZXIgbGVuZ3RocyBhcmUgMgorUEFTUyBJbnQxNl8xOiBidWZmZXJz
IGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgSW50MTZfMTogb2Zmc2V0IGlzIDAKK1BBU1Mg
SW50MTZfMTogbGVuZ3RoIGlzIDIKK1BBU1MgVWludDE2XzE6IGNsYXNzZXMgYXJlIFtvYmplY3Qg
VWludDE2QXJyYXldCitQQVNTIFVpbnQxNl8xOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVm
ZmVyXQorUEFTUyBVaW50MTZfMTogYnVmZmVyIGxlbmd0aHMgYXJlIDIKK1BBU1MgVWludDE2XzE6
IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBVaW50MTZfMTogb2Zmc2V0IGlz
IDAKK1BBU1MgVWludDE2XzE6IGxlbmd0aCBpcyAyCitQQVNTIEZsb2F0MzJfMTogY2xhc3NlcyBh
cmUgW29iamVjdCBGbG9hdDMyQXJyYXldCitQQVNTIEZsb2F0MzJfMTogY2xhc3NlcyBhcmUgW29i
amVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgRmxvYXQzMl8xOiBidWZmZXIgbGVuZ3RocyBhcmUgNAor
UEFTUyBGbG9hdDMyXzE6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBGbG9h
dDMyXzE6IG9mZnNldCBpcyAwCitQQVNTIEZsb2F0MzJfMTogbGVuZ3RoIGlzIDQKK1BBU1MgRmxv
YXQ2NF8xOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEZsb2F0NjRBcnJheV0KK1BBU1MgRmxvYXQ2NF8x
OiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBGbG9hdDY0XzE6IGJ1ZmZl
ciBsZW5ndGhzIGFyZSA4CitQQVNTIEZsb2F0NjRfMTogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNv
bnRlbnRzCitQQVNTIEZsb2F0NjRfMTogb2Zmc2V0IGlzIDAKK1BBU1MgRmxvYXQ2NF8xOiBsZW5n
dGggaXMgOAorUEFTUyBJbnQzMl8xMjg6IGNsYXNzZXMgYXJlIFtvYmplY3QgSW50MzJBcnJheV0K
K1BBU1MgSW50MzJfMTI4OiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBJ
bnQzMl8xMjg6IGJ1ZmZlciBsZW5ndGhzIGFyZSA1MTIKK1BBU1MgSW50MzJfMTI4OiBidWZmZXJz
IGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgSW50MzJfMTI4OiBvZmZzZXQgaXMgMAorUEFT
UyBJbnQzMl8xMjg6IGxlbmd0aCBpcyA1MTIKK1BBU1MgVWludDMyXzEyODogY2xhc3NlcyBhcmUg
W29iamVjdCBVaW50MzJBcnJheV0KK1BBU1MgVWludDMyXzEyODogY2xhc3NlcyBhcmUgW29iamVj
dCBBcnJheUJ1ZmZlcl0KK1BBU1MgVWludDMyXzEyODogYnVmZmVyIGxlbmd0aHMgYXJlIDUxMgor
UEFTUyBVaW50MzJfMTI4OiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgVWlu
dDMyXzEyODogb2Zmc2V0IGlzIDAKK1BBU1MgVWludDMyXzEyODogbGVuZ3RoIGlzIDUxMgorUEFT
UyBJbnQ4XzEyODogY2xhc3NlcyBhcmUgW29iamVjdCBJbnQ4QXJyYXldCitQQVNTIEludDhfMTI4
OiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBJbnQ4XzEyODogYnVmZmVy
IGxlbmd0aHMgYXJlIDEyOAorUEFTUyBJbnQ4XzEyODogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNv
bnRlbnRzCitQQVNTIEludDhfMTI4OiBvZmZzZXQgaXMgMAorUEFTUyBJbnQ4XzEyODogbGVuZ3Ro
IGlzIDEyOAorUEFTUyBVaW50OF8xMjg6IGNsYXNzZXMgYXJlIFtvYmplY3QgVWludDhBcnJheV0K
K1BBU1MgVWludDhfMTI4OiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBV
aW50OF8xMjg6IGJ1ZmZlciBsZW5ndGhzIGFyZSAxMjgKK1BBU1MgVWludDhfMTI4OiBidWZmZXJz
IGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgVWludDhfMTI4OiBvZmZzZXQgaXMgMAorUEFT
UyBVaW50OF8xMjg6IGxlbmd0aCBpcyAxMjgKK1BBU1MgSW50MTZfMTI4OiBjbGFzc2VzIGFyZSBb
b2JqZWN0IEludDE2QXJyYXldCitQQVNTIEludDE2XzEyODogY2xhc3NlcyBhcmUgW29iamVjdCBB
cnJheUJ1ZmZlcl0KK1BBU1MgSW50MTZfMTI4OiBidWZmZXIgbGVuZ3RocyBhcmUgMjU2CitQQVNT
IEludDE2XzEyODogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIEludDE2XzEy
ODogb2Zmc2V0IGlzIDAKK1BBU1MgSW50MTZfMTI4OiBsZW5ndGggaXMgMjU2CitQQVNTIFVpbnQx
Nl8xMjg6IGNsYXNzZXMgYXJlIFtvYmplY3QgVWludDE2QXJyYXldCitQQVNTIFVpbnQxNl8xMjg6
IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIFVpbnQxNl8xMjg6IGJ1ZmZl
ciBsZW5ndGhzIGFyZSAyNTYKK1BBU1MgVWludDE2XzEyODogYnVmZmVycyBoYXZlIHRoZSBzYW1l
IGNvbnRlbnRzCitQQVNTIFVpbnQxNl8xMjg6IG9mZnNldCBpcyAwCitQQVNTIFVpbnQxNl8xMjg6
IGxlbmd0aCBpcyAyNTYKK1BBU1MgRmxvYXQzMl8xMjg6IGNsYXNzZXMgYXJlIFtvYmplY3QgRmxv
YXQzMkFycmF5XQorUEFTUyBGbG9hdDMyXzEyODogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1
ZmZlcl0KK1BBU1MgRmxvYXQzMl8xMjg6IGJ1ZmZlciBsZW5ndGhzIGFyZSA1MTIKK1BBU1MgRmxv
YXQzMl8xMjg6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBGbG9hdDMyXzEy
ODogb2Zmc2V0IGlzIDAKK1BBU1MgRmxvYXQzMl8xMjg6IGxlbmd0aCBpcyA1MTIKK1BBU1MgRmxv
YXQ2NF8xMjg6IGNsYXNzZXMgYXJlIFtvYmplY3QgRmxvYXQ2NEFycmF5XQorUEFTUyBGbG9hdDY0
XzEyODogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgRmxvYXQ2NF8xMjg6
IGJ1ZmZlciBsZW5ndGhzIGFyZSAxMDI0CitQQVNTIEZsb2F0NjRfMTI4OiBidWZmZXJzIGhhdmUg
dGhlIHNhbWUgY29udGVudHMKK1BBU1MgRmxvYXQ2NF8xMjg6IG9mZnNldCBpcyAwCitQQVNTIEZs
b2F0NjRfMTI4OiBsZW5ndGggaXMgMTAyNAorUEFTUyBJbnQzMl8wYjogY2xhc3NlcyBhcmUgW29i
amVjdCBJbnQzMkFycmF5XQorUEFTUyBJbnQzMl8wYjogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJh
eUJ1ZmZlcl0KK1BBU1MgSW50MzJfMGI6IGJ1ZmZlciBsZW5ndGhzIGFyZSAwCitQQVNTIEludDMy
XzBiOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgSW50MzJfMGI6IG9mZnNl
dCBpcyAwCitQQVNTIEludDMyXzBiOiBsZW5ndGggaXMgMAorUEFTUyBVaW50MzJfMGI6IGNsYXNz
ZXMgYXJlIFtvYmplY3QgVWludDMyQXJyYXldCitQQVNTIFVpbnQzMl8wYjogY2xhc3NlcyBhcmUg
W29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgVWludDMyXzBiOiBidWZmZXIgbGVuZ3RocyBhcmUg
MAorUEFTUyBVaW50MzJfMGI6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBV
aW50MzJfMGI6IG9mZnNldCBpcyAwCitQQVNTIFVpbnQzMl8wYjogbGVuZ3RoIGlzIDAKK1BBU1Mg
SW50OF8wYjogY2xhc3NlcyBhcmUgW29iamVjdCBJbnQ4QXJyYXldCitQQVNTIEludDhfMGI6IGNs
YXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIEludDhfMGI6IGJ1ZmZlciBsZW5n
dGhzIGFyZSAwCitQQVNTIEludDhfMGI6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cwor
UEFTUyBJbnQ4XzBiOiBvZmZzZXQgaXMgMAorUEFTUyBJbnQ4XzBiOiBsZW5ndGggaXMgMAorUEFT
UyBVaW50OF8wYjogY2xhc3NlcyBhcmUgW29iamVjdCBVaW50OEFycmF5XQorUEFTUyBVaW50OF8w
YjogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgVWludDhfMGI6IGJ1ZmZl
ciBsZW5ndGhzIGFyZSAwCitQQVNTIFVpbnQ4XzBiOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29u
dGVudHMKK1BBU1MgVWludDhfMGI6IG9mZnNldCBpcyAwCitQQVNTIFVpbnQ4XzBiOiBsZW5ndGgg
aXMgMAorUEFTUyBJbnQxNl8wYjogY2xhc3NlcyBhcmUgW29iamVjdCBJbnQxNkFycmF5XQorUEFT
UyBJbnQxNl8wYjogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgSW50MTZf
MGI6IGJ1ZmZlciBsZW5ndGhzIGFyZSAwCitQQVNTIEludDE2XzBiOiBidWZmZXJzIGhhdmUgdGhl
IHNhbWUgY29udGVudHMKK1BBU1MgSW50MTZfMGI6IG9mZnNldCBpcyAwCitQQVNTIEludDE2XzBi
OiBsZW5ndGggaXMgMAorUEFTUyBVaW50MTZfMGI6IGNsYXNzZXMgYXJlIFtvYmplY3QgVWludDE2
QXJyYXldCitQQVNTIFVpbnQxNl8wYjogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0K
K1BBU1MgVWludDE2XzBiOiBidWZmZXIgbGVuZ3RocyBhcmUgMAorUEFTUyBVaW50MTZfMGI6IGJ1
ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBVaW50MTZfMGI6IG9mZnNldCBpcyAw
CitQQVNTIFVpbnQxNl8wYjogbGVuZ3RoIGlzIDAKK1BBU1MgRmxvYXQzMl8wYjogY2xhc3NlcyBh
cmUgW29iamVjdCBGbG9hdDMyQXJyYXldCitQQVNTIEZsb2F0MzJfMGI6IGNsYXNzZXMgYXJlIFtv
YmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIEZsb2F0MzJfMGI6IGJ1ZmZlciBsZW5ndGhzIGFyZSAw
CitQQVNTIEZsb2F0MzJfMGI6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBG
bG9hdDMyXzBiOiBvZmZzZXQgaXMgMAorUEFTUyBGbG9hdDMyXzBiOiBsZW5ndGggaXMgMAorUEFT
UyBGbG9hdDY0XzBiOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEZsb2F0NjRBcnJheV0KK1BBU1MgRmxv
YXQ2NF8wYjogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgRmxvYXQ2NF8w
YjogYnVmZmVyIGxlbmd0aHMgYXJlIDAKK1BBU1MgRmxvYXQ2NF8wYjogYnVmZmVycyBoYXZlIHRo
ZSBzYW1lIGNvbnRlbnRzCitQQVNTIEZsb2F0NjRfMGI6IG9mZnNldCBpcyAwCitQQVNTIEZsb2F0
NjRfMGI6IGxlbmd0aCBpcyAwCitQQVNTIEludDMyXzFiOiBjbGFzc2VzIGFyZSBbb2JqZWN0IElu
dDMyQXJyYXldCitQQVNTIEludDMyXzFiOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVy
XQorUEFTUyBJbnQzMl8xYjogYnVmZmVyIGxlbmd0aHMgYXJlIDQKK1BBU1MgSW50MzJfMWI6IGJ1
ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBJbnQzMl8xYjogb2Zmc2V0IGlzIDAK
K1BBU1MgSW50MzJfMWI6IGxlbmd0aCBpcyA0CitQQVNTIFVpbnQzMl8xYjogY2xhc3NlcyBhcmUg
W29iamVjdCBVaW50MzJBcnJheV0KK1BBU1MgVWludDMyXzFiOiBjbGFzc2VzIGFyZSBbb2JqZWN0
IEFycmF5QnVmZmVyXQorUEFTUyBVaW50MzJfMWI6IGJ1ZmZlciBsZW5ndGhzIGFyZSA0CitQQVNT
IFVpbnQzMl8xYjogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIFVpbnQzMl8x
Yjogb2Zmc2V0IGlzIDAKK1BBU1MgVWludDMyXzFiOiBsZW5ndGggaXMgNAorUEFTUyBJbnQ4XzFi
OiBjbGFzc2VzIGFyZSBbb2JqZWN0IEludDhBcnJheV0KK1BBU1MgSW50OF8xYjogY2xhc3NlcyBh
cmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgSW50OF8xYjogYnVmZmVyIGxlbmd0aHMgYXJl
IDEKK1BBU1MgSW50OF8xYjogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIElu
dDhfMWI6IG9mZnNldCBpcyAwCitQQVNTIEludDhfMWI6IGxlbmd0aCBpcyAxCitQQVNTIFVpbnQ4
XzFiOiBjbGFzc2VzIGFyZSBbb2JqZWN0IFVpbnQ4QXJyYXldCitQQVNTIFVpbnQ4XzFiOiBjbGFz
c2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBVaW50OF8xYjogYnVmZmVyIGxlbmd0
aHMgYXJlIDEKK1BBU1MgVWludDhfMWI6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cwor
UEFTUyBVaW50OF8xYjogb2Zmc2V0IGlzIDAKK1BBU1MgVWludDhfMWI6IGxlbmd0aCBpcyAxCitQ
QVNTIEludDE2XzFiOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEludDE2QXJyYXldCitQQVNTIEludDE2
XzFiOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBJbnQxNl8xYjogYnVm
ZmVyIGxlbmd0aHMgYXJlIDIKK1BBU1MgSW50MTZfMWI6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBj
b250ZW50cworUEFTUyBJbnQxNl8xYjogb2Zmc2V0IGlzIDAKK1BBU1MgSW50MTZfMWI6IGxlbmd0
aCBpcyAyCitQQVNTIFVpbnQxNl8xYjogY2xhc3NlcyBhcmUgW29iamVjdCBVaW50MTZBcnJheV0K
K1BBU1MgVWludDE2XzFiOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBV
aW50MTZfMWI6IGJ1ZmZlciBsZW5ndGhzIGFyZSAyCitQQVNTIFVpbnQxNl8xYjogYnVmZmVycyBo
YXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIFVpbnQxNl8xYjogb2Zmc2V0IGlzIDAKK1BBU1Mg
VWludDE2XzFiOiBsZW5ndGggaXMgMgorUEFTUyBGbG9hdDMyXzFiOiBjbGFzc2VzIGFyZSBbb2Jq
ZWN0IEZsb2F0MzJBcnJheV0KK1BBU1MgRmxvYXQzMl8xYjogY2xhc3NlcyBhcmUgW29iamVjdCBB
cnJheUJ1ZmZlcl0KK1BBU1MgRmxvYXQzMl8xYjogYnVmZmVyIGxlbmd0aHMgYXJlIDQKK1BBU1Mg
RmxvYXQzMl8xYjogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIEZsb2F0MzJf
MWI6IG9mZnNldCBpcyAwCitQQVNTIEZsb2F0MzJfMWI6IGxlbmd0aCBpcyA0CitQQVNTIEZsb2F0
NjRfMWI6IGNsYXNzZXMgYXJlIFtvYmplY3QgRmxvYXQ2NEFycmF5XQorUEFTUyBGbG9hdDY0XzFi
OiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBGbG9hdDY0XzFiOiBidWZm
ZXIgbGVuZ3RocyBhcmUgOAorUEFTUyBGbG9hdDY0XzFiOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUg
Y29udGVudHMKK1BBU1MgRmxvYXQ2NF8xYjogb2Zmc2V0IGlzIDAKK1BBU1MgRmxvYXQ2NF8xYjog
bGVuZ3RoIGlzIDgKK1BBU1MgSW50MzJfMTI4YjogY2xhc3NlcyBhcmUgW29iamVjdCBJbnQzMkFy
cmF5XQorUEFTUyBJbnQzMl8xMjhiOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQor
UEFTUyBJbnQzMl8xMjhiOiBidWZmZXIgbGVuZ3RocyBhcmUgNTEyCitQQVNTIEludDMyXzEyOGI6
IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBJbnQzMl8xMjhiOiBvZmZzZXQg
aXMgMAorUEFTUyBJbnQzMl8xMjhiOiBsZW5ndGggaXMgNTEyCitQQVNTIFVpbnQzMl8xMjhiOiBj
bGFzc2VzIGFyZSBbb2JqZWN0IFVpbnQzMkFycmF5XQorUEFTUyBVaW50MzJfMTI4YjogY2xhc3Nl
cyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgVWludDMyXzEyOGI6IGJ1ZmZlciBsZW5n
dGhzIGFyZSA1MTIKK1BBU1MgVWludDMyXzEyOGI6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250
ZW50cworUEFTUyBVaW50MzJfMTI4Yjogb2Zmc2V0IGlzIDAKK1BBU1MgVWludDMyXzEyOGI6IGxl
bmd0aCBpcyA1MTIKK1BBU1MgSW50OF8xMjhiOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEludDhBcnJh
eV0KK1BBU1MgSW50OF8xMjhiOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFT
UyBJbnQ4XzEyOGI6IGJ1ZmZlciBsZW5ndGhzIGFyZSAxMjgKK1BBU1MgSW50OF8xMjhiOiBidWZm
ZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgSW50OF8xMjhiOiBvZmZzZXQgaXMgMAor
UEFTUyBJbnQ4XzEyOGI6IGxlbmd0aCBpcyAxMjgKK1BBU1MgVWludDhfMTI4YjogY2xhc3NlcyBh
cmUgW29iamVjdCBVaW50OEFycmF5XQorUEFTUyBVaW50OF8xMjhiOiBjbGFzc2VzIGFyZSBbb2Jq
ZWN0IEFycmF5QnVmZmVyXQorUEFTUyBVaW50OF8xMjhiOiBidWZmZXIgbGVuZ3RocyBhcmUgMTI4
CitQQVNTIFVpbnQ4XzEyOGI6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBV
aW50OF8xMjhiOiBvZmZzZXQgaXMgMAorUEFTUyBVaW50OF8xMjhiOiBsZW5ndGggaXMgMTI4CitQ
QVNTIEludDE2XzEyOGI6IGNsYXNzZXMgYXJlIFtvYmplY3QgSW50MTZBcnJheV0KK1BBU1MgSW50
MTZfMTI4YjogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgSW50MTZfMTI4
YjogYnVmZmVyIGxlbmd0aHMgYXJlIDI1NgorUEFTUyBJbnQxNl8xMjhiOiBidWZmZXJzIGhhdmUg
dGhlIHNhbWUgY29udGVudHMKK1BBU1MgSW50MTZfMTI4Yjogb2Zmc2V0IGlzIDAKK1BBU1MgSW50
MTZfMTI4YjogbGVuZ3RoIGlzIDI1NgorUEFTUyBVaW50MTZfMTI4YjogY2xhc3NlcyBhcmUgW29i
amVjdCBVaW50MTZBcnJheV0KK1BBU1MgVWludDE2XzEyOGI6IGNsYXNzZXMgYXJlIFtvYmplY3Qg
QXJyYXlCdWZmZXJdCitQQVNTIFVpbnQxNl8xMjhiOiBidWZmZXIgbGVuZ3RocyBhcmUgMjU2CitQ
QVNTIFVpbnQxNl8xMjhiOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgVWlu
dDE2XzEyOGI6IG9mZnNldCBpcyAwCitQQVNTIFVpbnQxNl8xMjhiOiBsZW5ndGggaXMgMjU2CitQ
QVNTIEZsb2F0MzJfMTI4YjogY2xhc3NlcyBhcmUgW29iamVjdCBGbG9hdDMyQXJyYXldCitQQVNT
IEZsb2F0MzJfMTI4YjogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgRmxv
YXQzMl8xMjhiOiBidWZmZXIgbGVuZ3RocyBhcmUgNTEyCitQQVNTIEZsb2F0MzJfMTI4YjogYnVm
ZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIEZsb2F0MzJfMTI4Yjogb2Zmc2V0IGlz
IDAKK1BBU1MgRmxvYXQzMl8xMjhiOiBsZW5ndGggaXMgNTEyCitQQVNTIEZsb2F0NjRfMTI4Yjog
Y2xhc3NlcyBhcmUgW29iamVjdCBGbG9hdDY0QXJyYXldCitQQVNTIEZsb2F0NjRfMTI4YjogY2xh
c3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgRmxvYXQ2NF8xMjhiOiBidWZmZXIg
bGVuZ3RocyBhcmUgMTAyNAorUEFTUyBGbG9hdDY0XzEyOGI6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2Ft
ZSBjb250ZW50cworUEFTUyBGbG9hdDY0XzEyOGI6IG9mZnNldCBpcyAwCitQQVNTIEZsb2F0NjRf
MTI4YjogbGVuZ3RoIGlzIDEwMjQKK1BBU1MgSW50MzJfMWJfb2ZzX2VuZDogY2xhc3NlcyBhcmUg
W29iamVjdCBJbnQzMkFycmF5XQorUEFTUyBJbnQzMl8xYl9vZnNfZW5kOiBjbGFzc2VzIGFyZSBb
b2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBJbnQzMl8xYl9vZnNfZW5kOiBidWZmZXIgbGVuZ3Ro
cyBhcmUgNAorUEFTUyBJbnQzMl8xYl9vZnNfZW5kOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29u
dGVudHMKK1BBU1MgSW50MzJfMWJfb2ZzX2VuZDogb2Zmc2V0IGlzIDQKK1BBU1MgSW50MzJfMWJf
b2ZzX2VuZDogbGVuZ3RoIGlzIDAKK1BBU1MgVWludDMyXzFiX29mc19lbmQ6IGNsYXNzZXMgYXJl
IFtvYmplY3QgVWludDMyQXJyYXldCitQQVNTIFVpbnQzMl8xYl9vZnNfZW5kOiBjbGFzc2VzIGFy
ZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBVaW50MzJfMWJfb2ZzX2VuZDogYnVmZmVyIGxl
bmd0aHMgYXJlIDQKK1BBU1MgVWludDMyXzFiX29mc19lbmQ6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2Ft
ZSBjb250ZW50cworUEFTUyBVaW50MzJfMWJfb2ZzX2VuZDogb2Zmc2V0IGlzIDQKK1BBU1MgVWlu
dDMyXzFiX29mc19lbmQ6IGxlbmd0aCBpcyAwCitQQVNTIEludDhfMWJfb2ZzX2VuZDogY2xhc3Nl
cyBhcmUgW29iamVjdCBJbnQ4QXJyYXldCitQQVNTIEludDhfMWJfb2ZzX2VuZDogY2xhc3NlcyBh
cmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgSW50OF8xYl9vZnNfZW5kOiBidWZmZXIgbGVu
Z3RocyBhcmUgMQorUEFTUyBJbnQ4XzFiX29mc19lbmQ6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBj
b250ZW50cworUEFTUyBJbnQ4XzFiX29mc19lbmQ6IG9mZnNldCBpcyAxCitQQVNTIEludDhfMWJf
b2ZzX2VuZDogbGVuZ3RoIGlzIDAKK1BBU1MgVWludDhfMWJfb2ZzX2VuZDogY2xhc3NlcyBhcmUg
W29iamVjdCBVaW50OEFycmF5XQorUEFTUyBVaW50OF8xYl9vZnNfZW5kOiBjbGFzc2VzIGFyZSBb
b2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBVaW50OF8xYl9vZnNfZW5kOiBidWZmZXIgbGVuZ3Ro
cyBhcmUgMQorUEFTUyBVaW50OF8xYl9vZnNfZW5kOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29u
dGVudHMKK1BBU1MgVWludDhfMWJfb2ZzX2VuZDogb2Zmc2V0IGlzIDEKK1BBU1MgVWludDhfMWJf
b2ZzX2VuZDogbGVuZ3RoIGlzIDAKK1BBU1MgSW50MTZfMWJfb2ZzX2VuZDogY2xhc3NlcyBhcmUg
W29iamVjdCBJbnQxNkFycmF5XQorUEFTUyBJbnQxNl8xYl9vZnNfZW5kOiBjbGFzc2VzIGFyZSBb
b2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBJbnQxNl8xYl9vZnNfZW5kOiBidWZmZXIgbGVuZ3Ro
cyBhcmUgMgorUEFTUyBJbnQxNl8xYl9vZnNfZW5kOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29u
dGVudHMKK1BBU1MgSW50MTZfMWJfb2ZzX2VuZDogb2Zmc2V0IGlzIDIKK1BBU1MgSW50MTZfMWJf
b2ZzX2VuZDogbGVuZ3RoIGlzIDAKK1BBU1MgVWludDE2XzFiX29mc19lbmQ6IGNsYXNzZXMgYXJl
IFtvYmplY3QgVWludDE2QXJyYXldCitQQVNTIFVpbnQxNl8xYl9vZnNfZW5kOiBjbGFzc2VzIGFy
ZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBVaW50MTZfMWJfb2ZzX2VuZDogYnVmZmVyIGxl
bmd0aHMgYXJlIDIKK1BBU1MgVWludDE2XzFiX29mc19lbmQ6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2Ft
ZSBjb250ZW50cworUEFTUyBVaW50MTZfMWJfb2ZzX2VuZDogb2Zmc2V0IGlzIDIKK1BBU1MgVWlu
dDE2XzFiX29mc19lbmQ6IGxlbmd0aCBpcyAwCitQQVNTIEZsb2F0MzJfMWJfb2ZzX2VuZDogY2xh
c3NlcyBhcmUgW29iamVjdCBGbG9hdDMyQXJyYXldCitQQVNTIEZsb2F0MzJfMWJfb2ZzX2VuZDog
Y2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgRmxvYXQzMl8xYl9vZnNfZW5k
OiBidWZmZXIgbGVuZ3RocyBhcmUgNAorUEFTUyBGbG9hdDMyXzFiX29mc19lbmQ6IGJ1ZmZlcnMg
aGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBGbG9hdDMyXzFiX29mc19lbmQ6IG9mZnNldCBp
cyA0CitQQVNTIEZsb2F0MzJfMWJfb2ZzX2VuZDogbGVuZ3RoIGlzIDAKK1BBU1MgRmxvYXQ2NF8x
Yl9vZnNfZW5kOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEZsb2F0NjRBcnJheV0KK1BBU1MgRmxvYXQ2
NF8xYl9vZnNfZW5kOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBGbG9h
dDY0XzFiX29mc19lbmQ6IGJ1ZmZlciBsZW5ndGhzIGFyZSA4CitQQVNTIEZsb2F0NjRfMWJfb2Zz
X2VuZDogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIEZsb2F0NjRfMWJfb2Zz
X2VuZDogb2Zmc2V0IGlzIDgKK1BBU1MgRmxvYXQ2NF8xYl9vZnNfZW5kOiBsZW5ndGggaXMgMAor
UEFTUyBJbnQzMl8xMjhiX29mc19lbmQ6IGNsYXNzZXMgYXJlIFtvYmplY3QgSW50MzJBcnJheV0K
K1BBU1MgSW50MzJfMTI4Yl9vZnNfZW5kOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVy
XQorUEFTUyBJbnQzMl8xMjhiX29mc19lbmQ6IGJ1ZmZlciBsZW5ndGhzIGFyZSA1MTIKK1BBU1Mg
SW50MzJfMTI4Yl9vZnNfZW5kOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1Mg
SW50MzJfMTI4Yl9vZnNfZW5kOiBvZmZzZXQgaXMgNTEyCitQQVNTIEludDMyXzEyOGJfb2ZzX2Vu
ZDogbGVuZ3RoIGlzIDAKK1BBU1MgVWludDMyXzEyOGJfb2ZzX2VuZDogY2xhc3NlcyBhcmUgW29i
amVjdCBVaW50MzJBcnJheV0KK1BBU1MgVWludDMyXzEyOGJfb2ZzX2VuZDogY2xhc3NlcyBhcmUg
W29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgVWludDMyXzEyOGJfb2ZzX2VuZDogYnVmZmVyIGxl
bmd0aHMgYXJlIDUxMgorUEFTUyBVaW50MzJfMTI4Yl9vZnNfZW5kOiBidWZmZXJzIGhhdmUgdGhl
IHNhbWUgY29udGVudHMKK1BBU1MgVWludDMyXzEyOGJfb2ZzX2VuZDogb2Zmc2V0IGlzIDUxMgor
UEFTUyBVaW50MzJfMTI4Yl9vZnNfZW5kOiBsZW5ndGggaXMgMAorUEFTUyBJbnQ4XzEyOGJfb2Zz
X2VuZDogY2xhc3NlcyBhcmUgW29iamVjdCBJbnQ4QXJyYXldCitQQVNTIEludDhfMTI4Yl9vZnNf
ZW5kOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBJbnQ4XzEyOGJfb2Zz
X2VuZDogYnVmZmVyIGxlbmd0aHMgYXJlIDEyOAorUEFTUyBJbnQ4XzEyOGJfb2ZzX2VuZDogYnVm
ZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIEludDhfMTI4Yl9vZnNfZW5kOiBvZmZz
ZXQgaXMgMTI4CitQQVNTIEludDhfMTI4Yl9vZnNfZW5kOiBsZW5ndGggaXMgMAorUEFTUyBVaW50
OF8xMjhiX29mc19lbmQ6IGNsYXNzZXMgYXJlIFtvYmplY3QgVWludDhBcnJheV0KK1BBU1MgVWlu
dDhfMTI4Yl9vZnNfZW5kOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBV
aW50OF8xMjhiX29mc19lbmQ6IGJ1ZmZlciBsZW5ndGhzIGFyZSAxMjgKK1BBU1MgVWludDhfMTI4
Yl9vZnNfZW5kOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgVWludDhfMTI4
Yl9vZnNfZW5kOiBvZmZzZXQgaXMgMTI4CitQQVNTIFVpbnQ4XzEyOGJfb2ZzX2VuZDogbGVuZ3Ro
IGlzIDAKK1BBU1MgSW50MTZfMTI4Yl9vZnNfZW5kOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEludDE2
QXJyYXldCitQQVNTIEludDE2XzEyOGJfb2ZzX2VuZDogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJh
eUJ1ZmZlcl0KK1BBU1MgSW50MTZfMTI4Yl9vZnNfZW5kOiBidWZmZXIgbGVuZ3RocyBhcmUgMjU2
CitQQVNTIEludDE2XzEyOGJfb2ZzX2VuZDogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRz
CitQQVNTIEludDE2XzEyOGJfb2ZzX2VuZDogb2Zmc2V0IGlzIDI1NgorUEFTUyBJbnQxNl8xMjhi
X29mc19lbmQ6IGxlbmd0aCBpcyAwCitQQVNTIFVpbnQxNl8xMjhiX29mc19lbmQ6IGNsYXNzZXMg
YXJlIFtvYmplY3QgVWludDE2QXJyYXldCitQQVNTIFVpbnQxNl8xMjhiX29mc19lbmQ6IGNsYXNz
ZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIFVpbnQxNl8xMjhiX29mc19lbmQ6IGJ1
ZmZlciBsZW5ndGhzIGFyZSAyNTYKK1BBU1MgVWludDE2XzEyOGJfb2ZzX2VuZDogYnVmZmVycyBo
YXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIFVpbnQxNl8xMjhiX29mc19lbmQ6IG9mZnNldCBp
cyAyNTYKK1BBU1MgVWludDE2XzEyOGJfb2ZzX2VuZDogbGVuZ3RoIGlzIDAKK1BBU1MgRmxvYXQz
Ml8xMjhiX29mc19lbmQ6IGNsYXNzZXMgYXJlIFtvYmplY3QgRmxvYXQzMkFycmF5XQorUEFTUyBG
bG9hdDMyXzEyOGJfb2ZzX2VuZDogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BB
U1MgRmxvYXQzMl8xMjhiX29mc19lbmQ6IGJ1ZmZlciBsZW5ndGhzIGFyZSA1MTIKK1BBU1MgRmxv
YXQzMl8xMjhiX29mc19lbmQ6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBG
bG9hdDMyXzEyOGJfb2ZzX2VuZDogb2Zmc2V0IGlzIDUxMgorUEFTUyBGbG9hdDMyXzEyOGJfb2Zz
X2VuZDogbGVuZ3RoIGlzIDAKK1BBU1MgRmxvYXQ2NF8xMjhiX29mc19lbmQ6IGNsYXNzZXMgYXJl
IFtvYmplY3QgRmxvYXQ2NEFycmF5XQorUEFTUyBGbG9hdDY0XzEyOGJfb2ZzX2VuZDogY2xhc3Nl
cyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgRmxvYXQ2NF8xMjhiX29mc19lbmQ6IGJ1
ZmZlciBsZW5ndGhzIGFyZSAxMDI0CitQQVNTIEZsb2F0NjRfMTI4Yl9vZnNfZW5kOiBidWZmZXJz
IGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgRmxvYXQ2NF8xMjhiX29mc19lbmQ6IG9mZnNl
dCBpcyAxMDI0CitQQVNTIEZsb2F0NjRfMTI4Yl9vZnNfZW5kOiBsZW5ndGggaXMgMAorUEFTUyBJ
bnQzMl8xMjhiX29mc19zbGljZTA6IGNsYXNzZXMgYXJlIFtvYmplY3QgSW50MzJBcnJheV0KK1BB
U1MgSW50MzJfMTI4Yl9vZnNfc2xpY2UwOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVy
XQorUEFTUyBJbnQzMl8xMjhiX29mc19zbGljZTA6IGJ1ZmZlciBsZW5ndGhzIGFyZSA1MTIKK1BB
U1MgSW50MzJfMTI4Yl9vZnNfc2xpY2UwOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMK
K1BBU1MgSW50MzJfMTI4Yl9vZnNfc2xpY2UwOiBvZmZzZXQgaXMgMjU2CitQQVNTIEludDMyXzEy
OGJfb2ZzX3NsaWNlMDogbGVuZ3RoIGlzIDAKK1BBU1MgVWludDMyXzEyOGJfb2ZzX3NsaWNlMDog
Y2xhc3NlcyBhcmUgW29iamVjdCBVaW50MzJBcnJheV0KK1BBU1MgVWludDMyXzEyOGJfb2ZzX3Ns
aWNlMDogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgVWludDMyXzEyOGJf
b2ZzX3NsaWNlMDogYnVmZmVyIGxlbmd0aHMgYXJlIDUxMgorUEFTUyBVaW50MzJfMTI4Yl9vZnNf
c2xpY2UwOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgVWludDMyXzEyOGJf
b2ZzX3NsaWNlMDogb2Zmc2V0IGlzIDI1NgorUEFTUyBVaW50MzJfMTI4Yl9vZnNfc2xpY2UwOiBs
ZW5ndGggaXMgMAorUEFTUyBJbnQ4XzEyOGJfb2ZzX3NsaWNlMDogY2xhc3NlcyBhcmUgW29iamVj
dCBJbnQ4QXJyYXldCitQQVNTIEludDhfMTI4Yl9vZnNfc2xpY2UwOiBjbGFzc2VzIGFyZSBbb2Jq
ZWN0IEFycmF5QnVmZmVyXQorUEFTUyBJbnQ4XzEyOGJfb2ZzX3NsaWNlMDogYnVmZmVyIGxlbmd0
aHMgYXJlIDEyOAorUEFTUyBJbnQ4XzEyOGJfb2ZzX3NsaWNlMDogYnVmZmVycyBoYXZlIHRoZSBz
YW1lIGNvbnRlbnRzCitQQVNTIEludDhfMTI4Yl9vZnNfc2xpY2UwOiBvZmZzZXQgaXMgNjQKK1BB
U1MgSW50OF8xMjhiX29mc19zbGljZTA6IGxlbmd0aCBpcyAwCitQQVNTIFVpbnQ4XzEyOGJfb2Zz
X3NsaWNlMDogY2xhc3NlcyBhcmUgW29iamVjdCBVaW50OEFycmF5XQorUEFTUyBVaW50OF8xMjhi
X29mc19zbGljZTA6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIFVpbnQ4
XzEyOGJfb2ZzX3NsaWNlMDogYnVmZmVyIGxlbmd0aHMgYXJlIDEyOAorUEFTUyBVaW50OF8xMjhi
X29mc19zbGljZTA6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBVaW50OF8x
MjhiX29mc19zbGljZTA6IG9mZnNldCBpcyA2NAorUEFTUyBVaW50OF8xMjhiX29mc19zbGljZTA6
IGxlbmd0aCBpcyAwCitQQVNTIEludDE2XzEyOGJfb2ZzX3NsaWNlMDogY2xhc3NlcyBhcmUgW29i
amVjdCBJbnQxNkFycmF5XQorUEFTUyBJbnQxNl8xMjhiX29mc19zbGljZTA6IGNsYXNzZXMgYXJl
IFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIEludDE2XzEyOGJfb2ZzX3NsaWNlMDogYnVmZmVy
IGxlbmd0aHMgYXJlIDI1NgorUEFTUyBJbnQxNl8xMjhiX29mc19zbGljZTA6IGJ1ZmZlcnMgaGF2
ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBJbnQxNl8xMjhiX29mc19zbGljZTA6IG9mZnNldCBp
cyAxMjgKK1BBU1MgSW50MTZfMTI4Yl9vZnNfc2xpY2UwOiBsZW5ndGggaXMgMAorUEFTUyBVaW50
MTZfMTI4Yl9vZnNfc2xpY2UwOiBjbGFzc2VzIGFyZSBbb2JqZWN0IFVpbnQxNkFycmF5XQorUEFT
UyBVaW50MTZfMTI4Yl9vZnNfc2xpY2UwOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVy
XQorUEFTUyBVaW50MTZfMTI4Yl9vZnNfc2xpY2UwOiBidWZmZXIgbGVuZ3RocyBhcmUgMjU2CitQ
QVNTIFVpbnQxNl8xMjhiX29mc19zbGljZTA6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50
cworUEFTUyBVaW50MTZfMTI4Yl9vZnNfc2xpY2UwOiBvZmZzZXQgaXMgMTI4CitQQVNTIFVpbnQx
Nl8xMjhiX29mc19zbGljZTA6IGxlbmd0aCBpcyAwCitQQVNTIEZsb2F0MzJfMTI4Yl9vZnNfc2xp
Y2UwOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEZsb2F0MzJBcnJheV0KK1BBU1MgRmxvYXQzMl8xMjhi
X29mc19zbGljZTA6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIEZsb2F0
MzJfMTI4Yl9vZnNfc2xpY2UwOiBidWZmZXIgbGVuZ3RocyBhcmUgNTEyCitQQVNTIEZsb2F0MzJf
MTI4Yl9vZnNfc2xpY2UwOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgRmxv
YXQzMl8xMjhiX29mc19zbGljZTA6IG9mZnNldCBpcyAyNTYKK1BBU1MgRmxvYXQzMl8xMjhiX29m
c19zbGljZTA6IGxlbmd0aCBpcyAwCitQQVNTIEZsb2F0NjRfMTI4Yl9vZnNfc2xpY2UwOiBjbGFz
c2VzIGFyZSBbb2JqZWN0IEZsb2F0NjRBcnJheV0KK1BBU1MgRmxvYXQ2NF8xMjhiX29mc19zbGlj
ZTA6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIEZsb2F0NjRfMTI4Yl9v
ZnNfc2xpY2UwOiBidWZmZXIgbGVuZ3RocyBhcmUgMTAyNAorUEFTUyBGbG9hdDY0XzEyOGJfb2Zz
X3NsaWNlMDogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIEZsb2F0NjRfMTI4
Yl9vZnNfc2xpY2UwOiBvZmZzZXQgaXMgNTEyCitQQVNTIEZsb2F0NjRfMTI4Yl9vZnNfc2xpY2Uw
OiBsZW5ndGggaXMgMAorUEFTUyBJbnQzMl8xMjhiX29mc19zbGljZTE6IGNsYXNzZXMgYXJlIFtv
YmplY3QgSW50MzJBcnJheV0KK1BBU1MgSW50MzJfMTI4Yl9vZnNfc2xpY2UxOiBjbGFzc2VzIGFy
ZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBJbnQzMl8xMjhiX29mc19zbGljZTE6IGJ1ZmZl
ciBsZW5ndGhzIGFyZSA1MTIKK1BBU1MgSW50MzJfMTI4Yl9vZnNfc2xpY2UxOiBidWZmZXJzIGhh
dmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgSW50MzJfMTI4Yl9vZnNfc2xpY2UxOiBvZmZzZXQg
aXMgMjU2CitQQVNTIEludDMyXzEyOGJfb2ZzX3NsaWNlMTogbGVuZ3RoIGlzIDQKK1BBU1MgVWlu
dDMyXzEyOGJfb2ZzX3NsaWNlMTogY2xhc3NlcyBhcmUgW29iamVjdCBVaW50MzJBcnJheV0KK1BB
U1MgVWludDMyXzEyOGJfb2ZzX3NsaWNlMTogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZl
cl0KK1BBU1MgVWludDMyXzEyOGJfb2ZzX3NsaWNlMTogYnVmZmVyIGxlbmd0aHMgYXJlIDUxMgor
UEFTUyBVaW50MzJfMTI4Yl9vZnNfc2xpY2UxOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVu
dHMKK1BBU1MgVWludDMyXzEyOGJfb2ZzX3NsaWNlMTogb2Zmc2V0IGlzIDI1NgorUEFTUyBVaW50
MzJfMTI4Yl9vZnNfc2xpY2UxOiBsZW5ndGggaXMgNAorUEFTUyBJbnQ4XzEyOGJfb2ZzX3NsaWNl
MTogY2xhc3NlcyBhcmUgW29iamVjdCBJbnQ4QXJyYXldCitQQVNTIEludDhfMTI4Yl9vZnNfc2xp
Y2UxOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBJbnQ4XzEyOGJfb2Zz
X3NsaWNlMTogYnVmZmVyIGxlbmd0aHMgYXJlIDEyOAorUEFTUyBJbnQ4XzEyOGJfb2ZzX3NsaWNl
MTogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIEludDhfMTI4Yl9vZnNfc2xp
Y2UxOiBvZmZzZXQgaXMgNjQKK1BBU1MgSW50OF8xMjhiX29mc19zbGljZTE6IGxlbmd0aCBpcyAx
CitQQVNTIFVpbnQ4XzEyOGJfb2ZzX3NsaWNlMTogY2xhc3NlcyBhcmUgW29iamVjdCBVaW50OEFy
cmF5XQorUEFTUyBVaW50OF8xMjhiX29mc19zbGljZTE6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJy
YXlCdWZmZXJdCitQQVNTIFVpbnQ4XzEyOGJfb2ZzX3NsaWNlMTogYnVmZmVyIGxlbmd0aHMgYXJl
IDEyOAorUEFTUyBVaW50OF8xMjhiX29mc19zbGljZTE6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBj
b250ZW50cworUEFTUyBVaW50OF8xMjhiX29mc19zbGljZTE6IG9mZnNldCBpcyA2NAorUEFTUyBV
aW50OF8xMjhiX29mc19zbGljZTE6IGxlbmd0aCBpcyAxCitQQVNTIEludDE2XzEyOGJfb2ZzX3Ns
aWNlMTogY2xhc3NlcyBhcmUgW29iamVjdCBJbnQxNkFycmF5XQorUEFTUyBJbnQxNl8xMjhiX29m
c19zbGljZTE6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIEludDE2XzEy
OGJfb2ZzX3NsaWNlMTogYnVmZmVyIGxlbmd0aHMgYXJlIDI1NgorUEFTUyBJbnQxNl8xMjhiX29m
c19zbGljZTE6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBJbnQxNl8xMjhi
X29mc19zbGljZTE6IG9mZnNldCBpcyAxMjgKK1BBU1MgSW50MTZfMTI4Yl9vZnNfc2xpY2UxOiBs
ZW5ndGggaXMgMgorUEFTUyBVaW50MTZfMTI4Yl9vZnNfc2xpY2UxOiBjbGFzc2VzIGFyZSBbb2Jq
ZWN0IFVpbnQxNkFycmF5XQorUEFTUyBVaW50MTZfMTI4Yl9vZnNfc2xpY2UxOiBjbGFzc2VzIGFy
ZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBVaW50MTZfMTI4Yl9vZnNfc2xpY2UxOiBidWZm
ZXIgbGVuZ3RocyBhcmUgMjU2CitQQVNTIFVpbnQxNl8xMjhiX29mc19zbGljZTE6IGJ1ZmZlcnMg
aGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBVaW50MTZfMTI4Yl9vZnNfc2xpY2UxOiBvZmZz
ZXQgaXMgMTI4CitQQVNTIFVpbnQxNl8xMjhiX29mc19zbGljZTE6IGxlbmd0aCBpcyAyCitQQVNT
IEZsb2F0MzJfMTI4Yl9vZnNfc2xpY2UxOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEZsb2F0MzJBcnJh
eV0KK1BBU1MgRmxvYXQzMl8xMjhiX29mc19zbGljZTE6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJy
YXlCdWZmZXJdCitQQVNTIEZsb2F0MzJfMTI4Yl9vZnNfc2xpY2UxOiBidWZmZXIgbGVuZ3RocyBh
cmUgNTEyCitQQVNTIEZsb2F0MzJfMTI4Yl9vZnNfc2xpY2UxOiBidWZmZXJzIGhhdmUgdGhlIHNh
bWUgY29udGVudHMKK1BBU1MgRmxvYXQzMl8xMjhiX29mc19zbGljZTE6IG9mZnNldCBpcyAyNTYK
K1BBU1MgRmxvYXQzMl8xMjhiX29mc19zbGljZTE6IGxlbmd0aCBpcyA0CitQQVNTIEZsb2F0NjRf
MTI4Yl9vZnNfc2xpY2UxOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEZsb2F0NjRBcnJheV0KK1BBU1Mg
RmxvYXQ2NF8xMjhiX29mc19zbGljZTE6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJd
CitQQVNTIEZsb2F0NjRfMTI4Yl9vZnNfc2xpY2UxOiBidWZmZXIgbGVuZ3RocyBhcmUgMTAyNAor
UEFTUyBGbG9hdDY0XzEyOGJfb2ZzX3NsaWNlMTogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRl
bnRzCitQQVNTIEZsb2F0NjRfMTI4Yl9vZnNfc2xpY2UxOiBvZmZzZXQgaXMgNTEyCitQQVNTIEZs
b2F0NjRfMTI4Yl9vZnNfc2xpY2UxOiBsZW5ndGggaXMgOAorUEFTUyBJbnQzMl8xMjhiX29mc19z
bGljZTE2OiBjbGFzc2VzIGFyZSBbb2JqZWN0IEludDMyQXJyYXldCitQQVNTIEludDMyXzEyOGJf
b2ZzX3NsaWNlMTY6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIEludDMy
XzEyOGJfb2ZzX3NsaWNlMTY6IGJ1ZmZlciBsZW5ndGhzIGFyZSA1MTIKK1BBU1MgSW50MzJfMTI4
Yl9vZnNfc2xpY2UxNjogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIEludDMy
XzEyOGJfb2ZzX3NsaWNlMTY6IG9mZnNldCBpcyAyNTYKK1BBU1MgSW50MzJfMTI4Yl9vZnNfc2xp
Y2UxNjogbGVuZ3RoIGlzIDY0CitQQVNTIFVpbnQzMl8xMjhiX29mc19zbGljZTE2OiBjbGFzc2Vz
IGFyZSBbb2JqZWN0IFVpbnQzMkFycmF5XQorUEFTUyBVaW50MzJfMTI4Yl9vZnNfc2xpY2UxNjog
Y2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgVWludDMyXzEyOGJfb2ZzX3Ns
aWNlMTY6IGJ1ZmZlciBsZW5ndGhzIGFyZSA1MTIKK1BBU1MgVWludDMyXzEyOGJfb2ZzX3NsaWNl
MTY6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBVaW50MzJfMTI4Yl9vZnNf
c2xpY2UxNjogb2Zmc2V0IGlzIDI1NgorUEFTUyBVaW50MzJfMTI4Yl9vZnNfc2xpY2UxNjogbGVu
Z3RoIGlzIDY0CitQQVNTIEludDhfMTI4Yl9vZnNfc2xpY2UxNjogY2xhc3NlcyBhcmUgW29iamVj
dCBJbnQ4QXJyYXldCitQQVNTIEludDhfMTI4Yl9vZnNfc2xpY2UxNjogY2xhc3NlcyBhcmUgW29i
amVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgSW50OF8xMjhiX29mc19zbGljZTE2OiBidWZmZXIgbGVu
Z3RocyBhcmUgMTI4CitQQVNTIEludDhfMTI4Yl9vZnNfc2xpY2UxNjogYnVmZmVycyBoYXZlIHRo
ZSBzYW1lIGNvbnRlbnRzCitQQVNTIEludDhfMTI4Yl9vZnNfc2xpY2UxNjogb2Zmc2V0IGlzIDY0
CitQQVNTIEludDhfMTI4Yl9vZnNfc2xpY2UxNjogbGVuZ3RoIGlzIDE2CitQQVNTIFVpbnQ4XzEy
OGJfb2ZzX3NsaWNlMTY6IGNsYXNzZXMgYXJlIFtvYmplY3QgVWludDhBcnJheV0KK1BBU1MgVWlu
dDhfMTI4Yl9vZnNfc2xpY2UxNjogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BB
U1MgVWludDhfMTI4Yl9vZnNfc2xpY2UxNjogYnVmZmVyIGxlbmd0aHMgYXJlIDEyOAorUEFTUyBV
aW50OF8xMjhiX29mc19zbGljZTE2OiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BB
U1MgVWludDhfMTI4Yl9vZnNfc2xpY2UxNjogb2Zmc2V0IGlzIDY0CitQQVNTIFVpbnQ4XzEyOGJf
b2ZzX3NsaWNlMTY6IGxlbmd0aCBpcyAxNgorUEFTUyBJbnQxNl8xMjhiX29mc19zbGljZTE2OiBj
bGFzc2VzIGFyZSBbb2JqZWN0IEludDE2QXJyYXldCitQQVNTIEludDE2XzEyOGJfb2ZzX3NsaWNl
MTY6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIEludDE2XzEyOGJfb2Zz
X3NsaWNlMTY6IGJ1ZmZlciBsZW5ndGhzIGFyZSAyNTYKK1BBU1MgSW50MTZfMTI4Yl9vZnNfc2xp
Y2UxNjogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIEludDE2XzEyOGJfb2Zz
X3NsaWNlMTY6IG9mZnNldCBpcyAxMjgKK1BBU1MgSW50MTZfMTI4Yl9vZnNfc2xpY2UxNjogbGVu
Z3RoIGlzIDMyCitQQVNTIFVpbnQxNl8xMjhiX29mc19zbGljZTE2OiBjbGFzc2VzIGFyZSBbb2Jq
ZWN0IFVpbnQxNkFycmF5XQorUEFTUyBVaW50MTZfMTI4Yl9vZnNfc2xpY2UxNjogY2xhc3NlcyBh
cmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgVWludDE2XzEyOGJfb2ZzX3NsaWNlMTY6IGJ1
ZmZlciBsZW5ndGhzIGFyZSAyNTYKK1BBU1MgVWludDE2XzEyOGJfb2ZzX3NsaWNlMTY6IGJ1ZmZl
cnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBVaW50MTZfMTI4Yl9vZnNfc2xpY2UxNjog
b2Zmc2V0IGlzIDEyOAorUEFTUyBVaW50MTZfMTI4Yl9vZnNfc2xpY2UxNjogbGVuZ3RoIGlzIDMy
CitQQVNTIEZsb2F0MzJfMTI4Yl9vZnNfc2xpY2UxNjogY2xhc3NlcyBhcmUgW29iamVjdCBGbG9h
dDMyQXJyYXldCitQQVNTIEZsb2F0MzJfMTI4Yl9vZnNfc2xpY2UxNjogY2xhc3NlcyBhcmUgW29i
amVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgRmxvYXQzMl8xMjhiX29mc19zbGljZTE2OiBidWZmZXIg
bGVuZ3RocyBhcmUgNTEyCitQQVNTIEZsb2F0MzJfMTI4Yl9vZnNfc2xpY2UxNjogYnVmZmVycyBo
YXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIEZsb2F0MzJfMTI4Yl9vZnNfc2xpY2UxNjogb2Zm
c2V0IGlzIDI1NgorUEFTUyBGbG9hdDMyXzEyOGJfb2ZzX3NsaWNlMTY6IGxlbmd0aCBpcyA2NAor
UEFTUyBGbG9hdDY0XzEyOGJfb2ZzX3NsaWNlMTY6IGNsYXNzZXMgYXJlIFtvYmplY3QgRmxvYXQ2
NEFycmF5XQorUEFTUyBGbG9hdDY0XzEyOGJfb2ZzX3NsaWNlMTY6IGNsYXNzZXMgYXJlIFtvYmpl
Y3QgQXJyYXlCdWZmZXJdCitQQVNTIEZsb2F0NjRfMTI4Yl9vZnNfc2xpY2UxNjogYnVmZmVyIGxl
bmd0aHMgYXJlIDEwMjQKK1BBU1MgRmxvYXQ2NF8xMjhiX29mc19zbGljZTE2OiBidWZmZXJzIGhh
dmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgRmxvYXQ2NF8xMjhiX29mc19zbGljZTE2OiBvZmZz
ZXQgaXMgNTEyCitQQVNTIEZsb2F0NjRfMTI4Yl9vZnNfc2xpY2UxNjogbGVuZ3RoIGlzIDEyOAor
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvY2FudmFzL3dlYmdsL2Fy
cmF5LW1lc3NhZ2UtcGFzc2luZy5odG1sIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0v
ZmFzdC9jYW52YXMvd2ViZ2wvYXJyYXktbWVzc2FnZS1wYXNzaW5nLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzI1NWQ5OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvY2FudmFzL3dlYmdsL2FycmF5LW1lc3NhZ2Ut
cGFzc2luZy5odG1sCkBAIC0wLDAgKzEsMTQgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8v
SUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hl
ZXQiIGhyZWY9Ii4uLy4uLy4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUu
Y3NzIi8+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uLy4uL2Zhc3Qv
Y2FudmFzL3dlYmdsL3dlYmdsLXRlc3QuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8
ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxz
Y3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvYXJyYXktbWVzc2FnZS1wYXNzaW5nLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9jYW52YXMvd2ViZ2wvc2NyaXB0LXRlc3RzL2Fy
cmF5LW1lc3NhZ2UtcGFzc2luZy5qcyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zh
c3QvY2FudmFzL3dlYmdsL3NjcmlwdC10ZXN0cy9hcnJheS1tZXNzYWdlLXBhc3NpbmcuanMKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmEzODgwMAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvY2FudmFzL3dlYmdsL3Njcmlw
dC10ZXN0cy9hcnJheS1tZXNzYWdlLXBhc3NpbmcuanMKQEAgLTAsMCArMSwxODQgQEAKK3dpbmRv
dy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK3dpbmRvdy5jaGVhdCA9IGZhbHNlOworCitkZXNjcmlw
dGlvbignVGVzdCBwYXNzaW5nIEFycmF5QnVmZmVycyBhbmQgQXJyYXlCdWZmZXJWaWV3cyBpbiBt
ZXNzYWdlcy4nKTsKK3dpbmRvdy50ZXN0c0NvbXBsZXRlID0gMDsKKworZnVuY3Rpb24gY2xhc3ND
b21wYXJlKHRuYW1lLCBnLCBzKSB7CisgIHZhciBjbGFzc1N0ciA9IE9iamVjdC5wcm90b3R5cGUu
dG9TdHJpbmc7CisgIHZhciBnY2xhc3MgPSBjbGFzc1N0ci5jYWxsKGcpOworICB2YXIgc2NsYXNz
ID0gY2xhc3NTdHIuY2FsbChzKTsKKyAgaWYgKGdjbGFzcyAhPT0gc2NsYXNzKSB7CisgICAgdGVz
dEZhaWxlZCh0bmFtZSArICI6IGNsYXNzICIgKyBzY2xhc3MgKyAiIGJlY2FtZSAiICsgZ2NsYXNz
KTsKKyAgICByZXR1cm4gZmFsc2U7CisgIH0gZWxzZSB7CisgICAgdGVzdFBhc3NlZCh0bmFtZSAr
ICI6IGNsYXNzZXMgYXJlICIgKyBzY2xhc3MpOworICAgIHJldHVybiB0cnVlOworICB9Cit9CisK
K2Z1bmN0aW9uIGJ1ZmZlckNvbXBhcmUodG5hbWUsIGcsIHMpIHsKKyAgaWYgKCFjbGFzc0NvbXBh
cmUodG5hbWUsIGcsIHMpKSB7CisgICAgcmV0dXJuIGZhbHNlOworICB9CisgIGlmIChnLmJ5dGVM
ZW5ndGggIT09IHMuYnl0ZUxlbmd0aCkgeworICAgIHRlc3RGYWlsZWQodG5hbWUgKyAiOiBleHBl
Y3RlZCBieXRlTGVuZ3RoICIgKyBzLmJ5dGVMZW5ndGggKyAiIGJ5dGVzLCBnb3QgIiArIGcuYnl0
ZUxlbmd0aCk7CisgICAgcmV0dXJuIGZhbHNlOworICB9IGVsc2UgeworICAgIHRlc3RQYXNzZWQo
dG5hbWUgKyAiOiBidWZmZXIgbGVuZ3RocyBhcmUgIiArIHMuYnl0ZUxlbmd0aCk7CisgIH0KKyAg
dmFyIGdyZWFkZXIgPSBuZXcgVWludDhBcnJheShnKTsKKyAgdmFyIHNyZWFkZXIgPSBuZXcgVWlu
dDhBcnJheShzKTsKKyAgZm9yICh2YXIgaSA9IDA7IGkgPCBzLmJ5dGVMZW5ndGg7ICsraSkgewor
ICAgIGlmIChncmVhZGVyW2ldICE9PSBzcmVhZGVyW2ldKSB7CisgICAgICB0ZXN0RmFpbGVkKHRu
YW1lICsgIjogYnVmZmVycyBkaWZmZXIgc3RhcnRpbmcgYXQgYnl0ZSAiICsgaSk7CisgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgfQorICB9CisgIHRlc3RQYXNzZWQodG5hbWUgKyAiOiBidWZmZXJz
IGhhdmUgdGhlIHNhbWUgY29udGVudHMiKTsKKyAgcmV0dXJuIHRydWU7Cit9CisKK2Z1bmN0aW9u
IHZpZXdDb21wYXJlKHRuYW1lLCBnLCBzKSB7CisgIGlmICghY2xhc3NDb21wYXJlKHRuYW1lLCBn
LCBzKSkgeworICAgIHJldHVybiBmYWxzZTsKKyAgfQorICBpZiAoIWJ1ZmZlckNvbXBhcmUodG5h
bWUsIGcuYnVmZmVyLCBzLmJ1ZmZlcikpIHsKKyAgICByZXR1cm4gZmFsc2U7CisgIH0KKyAgaWYg
KGcuYnl0ZU9mZnNldCAhPT0gcy5ieXRlT2Zmc2V0KSB7CisgICAgdGVzdEZhaWxlZCh0bmFtZSAr
ICI6IG9mZnNldCAiICsgcy5ieXRlT2Zmc2V0ICsgIiBiZWNhbWUgIiArIGcuYnl0ZU9mZnNldCk7
CisgICAgcmV0dXJuIGZhbHNlOworICB9IGVsc2UgeworICAgIHRlc3RQYXNzZWQodG5hbWUgKyAi
OiBvZmZzZXQgaXMgIiArIHMuYnl0ZU9mZnNldCk7CisgIH0KKyAgaWYgKGcuYnl0ZUxlbmd0aCAh
PT0gcy5ieXRlTGVuZ3RoKSB7CisgICAgdGVzdEZhaWxlZCh0bmFtZSArICI6IGxlbmd0aCAiICsg
cy5ieXRlTGVuZ3RoICsgIiBiZWNhbWUgIiArIGcuYnl0ZUxlbmd0aCk7CisgICAgcmV0dXJuIGZh
bHNlOworICB9IGVsc2UgeworICAgIHRlc3RQYXNzZWQodG5hbWUgKyAiOiBsZW5ndGggaXMgIiAr
IHMuYnl0ZUxlbmd0aCk7CisgIH0KKyAgcmV0dXJuIHRydWU7Cit9CisKK2Z1bmN0aW9uIHR5cGVk
QXJyYXlDb21wYXJlKHRuYW1lLCBnLCBzKSB7CisgIGlmICghdmlld0NvbXBhcmUodG5hbWUsIGcs
IHMpKSB7CisgICAgcmV0dXJuIGZhbHNlOworICB9CisgIGlmIChnLkJZVEVTX1BFUl9FTEVNRU5U
ICE9PSBzLkJZVEVTX1BFUl9FTEVNRU5UKSB7CisgICAgLy8gU2FuaXR5IGNoZWNraW5nLgorICAg
IHRlc3RGYWlsZWQodG5hbWUgKyAiOiBleHBlY3RlZCBCWVRFU19QRVJfRUxFTUVOVCAiICsgcy5C
WVRFU19QRVJfRUxFTUVOVCArICIsIHNhdyAiICsgZy5CWVRFU19QRVJfRUxFTUVOVCk7CisgICAg
cmV0dXJuIGZhbHNlOworICB9Cit9CisKK2Z1bmN0aW9uIGRhdGFWaWV3Q29tcGFyZSh0bmFtZSwg
ZywgcykgeworICBpZiAoIXZpZXdDb21wYXJlKHRuYW1lLCBnLCBzKSkgeworICAgIHJldHVybiBm
YWxzZTsKKyAgfQorfQorCitmdW5jdGlvbiBjcmVhdGVCdWZmZXIobGVuZ3RoKSB7CisgIHZhciBi
dWZmZXIgPSBuZXcgQXJyYXlCdWZmZXIobGVuZ3RoKTsKKyAgdmFyIHZpZXcgPSBuZXcgVWludDhB
cnJheShidWZmZXIpOworICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgKytpKSB7CisgICAg
dmlld1tpXSA9IGkgKyAxOworICB9CisgIHJldHVybiBidWZmZXI7Cit9CisKK2Z1bmN0aW9uIGNy
ZWF0ZVR5cGVkQXJyYXkodGF0eXBlLCBsZW5ndGgpIHsKKyAgdmFyIHZpZXcgPSBuZXcgdGF0eXBl
KGxlbmd0aCk7CisgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpIHsKKyAgICB2aWV3
W2ldID0gaSArIDE7CisgIH0KKyAgcmV0dXJuIHZpZXc7Cit9CisKK2Z1bmN0aW9uIGNyZWF0ZVR5
cGVkQXJyYXlPdmVyQnVmZmVyKHRhdHlwZSwgdGFlbHRzaXplLCBsZW5ndGgsIHN1YnN0YXJ0LCBz
dWJsZW5ndGgpIHsKKyAgdmFyIGJ1ZmZlciA9IG5ldyBBcnJheUJ1ZmZlcihsZW5ndGggKiB0YWVs
dHNpemUpOworICBpZiAoc3Vic3RhcnQgPT09IHVuZGVmaW5lZCkgeworICAgIHN1YnN0YXJ0ID0g
MDsKKyAgICBzdWJsZW5ndGggPSBsZW5ndGg7CisgIH0KKyAgcmV0dXJuIG5ldyB0YXR5cGUoYnVm
ZmVyLCBzdWJzdGFydCAqIHRhZWx0c2l6ZSwgc3VibGVuZ3RoKTsKK30KKwordmFyIGJhc2ljQnVm
ZmVyVHlwZXMgPSBbCisgIFsiSW50MzIiLCBJbnQzMkFycmF5LCA0XSwKKyAgWyJVaW50MzIiLCBV
aW50MzJBcnJheSwgNF0sCisgIFsiSW50OCIsIEludDhBcnJheSwgMV0sCisgIFsiVWludDgiLCBV
aW50OEFycmF5LCAxXSwKKyAgWyJJbnQxNiIsIEludDE2QXJyYXksIDJdLAorICBbIlVpbnQxNiIs
IFVpbnQxNkFycmF5LCAyXSwKKyAgWyJGbG9hdDMyIiwgRmxvYXQzMkFycmF5LCA0XSwKKyAgWyJG
bG9hdDY0IiwgRmxvYXQ2NEFycmF5LCA4XQorXTsKKwordmFyIHRlc3RMaXN0ID0gWworICBbJ0Fy
cmF5QnVmZmVyMCcsIG5ldyBBcnJheUJ1ZmZlcigwKSwgYnVmZmVyQ29tcGFyZV0sCisgIFsnQXJy
YXlCdWZmZXIxJywgY3JlYXRlQnVmZmVyKDEpLCBidWZmZXJDb21wYXJlXSwKKyAgWydBcnJheUJ1
ZmZlcjEyOCcsIGNyZWF0ZUJ1ZmZlcigxMjgpLCBidWZmZXJDb21wYXJlXSwKKyAgWydEYXRhVmll
dzAnLCBuZXcgRGF0YVZpZXcobmV3IEFycmF5QnVmZmVyKDApKSwgZGF0YVZpZXdDb21wYXJlXSwK
KyAgWydEYXRhVmlldzEnLCBuZXcgRGF0YVZpZXcoY3JlYXRlQnVmZmVyKDEpKSwgZGF0YVZpZXdD
b21wYXJlXSwKKyAgWydEYXRhVmlldzEyOCcsIG5ldyBEYXRhVmlldyhjcmVhdGVCdWZmZXIoMTI4
KSksIGRhdGFWaWV3Q29tcGFyZV0sCisgIFsnRGF0YVZpZXcxX29mc19lbmQnLCBuZXcgRGF0YVZp
ZXcoY3JlYXRlQnVmZmVyKDEpLCAxLCAwKSwgZGF0YVZpZXdDb21wYXJlXSwKKyAgWydEYXRhVmll
dzEyOF9vZnNfZW5kJywgbmV3IERhdGFWaWV3KGNyZWF0ZUJ1ZmZlcigxMjgpLCAxMjgsIDApLCBk
YXRhVmlld0NvbXBhcmVdLAorICBbJ0RhdGFWaWV3MTI4X29mc19zbGljZTAnLCBuZXcgRGF0YVZp
ZXcoY3JlYXRlQnVmZmVyKDEyOCksIDY0LCAwKSwgZGF0YVZpZXdDb21wYXJlXSwKKyAgWydEYXRh
VmlldzEyOF9vZnNfc2xpY2UxJywgbmV3IERhdGFWaWV3KGNyZWF0ZUJ1ZmZlcigxMjgpLCA2NCwg
MSksIGRhdGFWaWV3Q29tcGFyZV0sCisgIFsnRGF0YVZpZXcxMjhfb2ZzX3NsaWNlMTYnLCBuZXcg
RGF0YVZpZXcoY3JlYXRlQnVmZmVyKDEyOCksIDY0LCAxNiksIGRhdGFWaWV3Q29tcGFyZV0sCisg
IFsnRGF0YVZpZXcxMjhfb2ZzX3NsaWNlX3VuYWxpZ25lZCcsIG5ldyBEYXRhVmlldyhjcmVhdGVC
dWZmZXIoMTI4KSwgNjMsIDE1KSwgZGF0YVZpZXdDb21wYXJlXQorXTsKKwordGVzdExpc3QgPSB0
ZXN0TGlzdC5jb25jYXQoYmFzaWNCdWZmZXJUeXBlcy5tYXAoZnVuY3Rpb24odCkKKyAge3JldHVy
biBbdFswXSArICJfMCIsIGNyZWF0ZVR5cGVkQXJyYXkodFsxXSwgMCksIHR5cGVkQXJyYXlDb21w
YXJlXTt9KSk7Cit0ZXN0TGlzdCA9IHRlc3RMaXN0LmNvbmNhdChiYXNpY0J1ZmZlclR5cGVzLm1h
cChmdW5jdGlvbih0KQorICB7cmV0dXJuIFt0WzBdICsgIl8xIiwgY3JlYXRlVHlwZWRBcnJheSh0
WzFdLCAxKSwgdHlwZWRBcnJheUNvbXBhcmVdO30pKTsKK3Rlc3RMaXN0ID0gdGVzdExpc3QuY29u
Y2F0KGJhc2ljQnVmZmVyVHlwZXMubWFwKGZ1bmN0aW9uKHQpCisgIHtyZXR1cm4gW3RbMF0gKyAi
XzEyOCIsIGNyZWF0ZVR5cGVkQXJyYXkodFsxXSwgMTI4KSwgdHlwZWRBcnJheUNvbXBhcmVdO30p
KTsKK3Rlc3RMaXN0ID0gdGVzdExpc3QuY29uY2F0KGJhc2ljQnVmZmVyVHlwZXMubWFwKGZ1bmN0
aW9uKHQpCisgIHtyZXR1cm4gW3RbMF0gKyAiXzBiIiwgY3JlYXRlVHlwZWRBcnJheU92ZXJCdWZm
ZXIodFsxXSwgdFsyXSwgMCksIHR5cGVkQXJyYXlDb21wYXJlXTt9KSk7Cit0ZXN0TGlzdCA9IHRl
c3RMaXN0LmNvbmNhdChiYXNpY0J1ZmZlclR5cGVzLm1hcChmdW5jdGlvbih0KQorICB7cmV0dXJu
IFt0WzBdICsgIl8xYiIsIGNyZWF0ZVR5cGVkQXJyYXlPdmVyQnVmZmVyKHRbMV0sIHRbMl0sIDEp
LCB0eXBlZEFycmF5Q29tcGFyZV07fSkpOwordGVzdExpc3QgPSB0ZXN0TGlzdC5jb25jYXQoYmFz
aWNCdWZmZXJUeXBlcy5tYXAoZnVuY3Rpb24odCkKKyAge3JldHVybiBbdFswXSArICJfMTI4YiIs
IGNyZWF0ZVR5cGVkQXJyYXlPdmVyQnVmZmVyKHRbMV0sIHRbMl0sIDEyOCksIHR5cGVkQXJyYXlD
b21wYXJlXTt9KSk7Cit0ZXN0TGlzdCA9IHRlc3RMaXN0LmNvbmNhdChiYXNpY0J1ZmZlclR5cGVz
Lm1hcChmdW5jdGlvbih0KQorICB7cmV0dXJuIFt0WzBdICsgIl8xYl9vZnNfZW5kIiwgY3JlYXRl
VHlwZWRBcnJheU92ZXJCdWZmZXIodFsxXSwgdFsyXSwgMSwgMSwgMCksIHR5cGVkQXJyYXlDb21w
YXJlXTt9KSk7Cit0ZXN0TGlzdCA9IHRlc3RMaXN0LmNvbmNhdChiYXNpY0J1ZmZlclR5cGVzLm1h
cChmdW5jdGlvbih0KQorICB7cmV0dXJuIFt0WzBdICsgIl8xMjhiX29mc19lbmQiLCBjcmVhdGVU
eXBlZEFycmF5T3ZlckJ1ZmZlcih0WzFdLCB0WzJdLCAxMjgsIDEyOCwgMCksIHR5cGVkQXJyYXlD
b21wYXJlXTt9KSk7Cit0ZXN0TGlzdCA9IHRlc3RMaXN0LmNvbmNhdChiYXNpY0J1ZmZlclR5cGVz
Lm1hcChmdW5jdGlvbih0KQorICB7cmV0dXJuIFt0WzBdICsgIl8xMjhiX29mc19zbGljZTAiLCBj
cmVhdGVUeXBlZEFycmF5T3ZlckJ1ZmZlcih0WzFdLCB0WzJdLCAxMjgsIDY0LCAwKSwgdHlwZWRB
cnJheUNvbXBhcmVdO30pKTsKK3Rlc3RMaXN0ID0gdGVzdExpc3QuY29uY2F0KGJhc2ljQnVmZmVy
VHlwZXMubWFwKGZ1bmN0aW9uKHQpCisgIHtyZXR1cm4gW3RbMF0gKyAiXzEyOGJfb2ZzX3NsaWNl
MSIsIGNyZWF0ZVR5cGVkQXJyYXlPdmVyQnVmZmVyKHRbMV0sIHRbMl0sIDEyOCwgNjQsIDEpLCB0
eXBlZEFycmF5Q29tcGFyZV07fSkpOwordGVzdExpc3QgPSB0ZXN0TGlzdC5jb25jYXQoYmFzaWNC
dWZmZXJUeXBlcy5tYXAoZnVuY3Rpb24odCkKKyAge3JldHVybiBbdFswXSArICJfMTI4Yl9vZnNf
c2xpY2UxNiIsIGNyZWF0ZVR5cGVkQXJyYXlPdmVyQnVmZmVyKHRbMV0sIHRbMl0sIDEyOCwgNjQs
IDE2KSwgdHlwZWRBcnJheUNvbXBhcmVdO30pKTsKKworZnVuY3Rpb24gZG9uZVRlc3QoKSB7Cisg
IGlmICgrK3dpbmRvdy50ZXN0c0NvbXBsZXRlID09IHRlc3RMaXN0Lmxlbmd0aCkgeworICAgIGZp
bmlzaEpTVGVzdCgpOworICB9Cit9CisKK2Z1bmN0aW9uIHdpbmRvd0hhbmRsZU1lc3NhZ2UoZSkg
eworICB2YXIgY3VycmVudFRlc3QgPSB0ZXN0TGlzdFtlLmRhdGEudGVzdE51bV07CisgIHZhciBl
eHBlY3RlZFJlc3VsdCA9IGN1cnJlbnRUZXN0WzFdOworICB0cnkgeworICAgIGN1cnJlbnRUZXN0
WzJdKGN1cnJlbnRUZXN0WzBdLCBlLmRhdGEudGVzdERhdGEsIGV4cGVjdGVkUmVzdWx0KTsKKyAg
fSBjYXRjaChlKSB7CisgICAgdGVzdEZhaWxlZChjdXJyZW50VGVzdFswXSArICI6IHVuZXhwZWN0
ZWQgZXhjZXB0aW9uICIgKyBlKTsKKyAgfQorICBkb25lVGVzdCgpOworfQord2luZG93LmFkZEV2
ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCB3aW5kb3dIYW5kbGVNZXNzYWdlKTsKKworZm9yICh2YXIg
dCA9IDA7IHQgPCB0ZXN0TGlzdC5sZW5ndGg7ICsrdCkgeworICB2YXIgY3VycmVudFRlc3QgPSB0
ZXN0TGlzdFt0XTsKKyAgdmFyIG1lc3NhZ2UgPSB7dGVzdE51bTogdCwgdGVzdERhdGE6IGN1cnJl
bnRUZXN0WzFdfTsKKyAgaWYgKHdpbmRvdy5jaGVhdCkgeworICAgIHdpbmRvd0hhbmRsZU1lc3Nh
Z2Uoe2RhdGE6IG1lc3NhZ2V9KTsKKyAgfSBlbHNlIHsKKyAgICB3aW5kb3cucG9zdE1lc3NhZ2Uo
bWVzc2FnZSwgJyonKTsKKyAgfQorfQorCitzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9kb20vV2luZG93L3Nj
cmlwdC10ZXN0cy9wb3N0bWVzc2FnZS1jbG9uZS1leC5qcyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtL2Zhc3QvZG9tL1dpbmRvdy9zY3JpcHQtdGVzdHMvcG9zdG1lc3NhZ2UtY2xvbmUt
ZXguanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDAyYzgzMgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZG9tL1dpbmRv
dy9zY3JpcHQtdGVzdHMvcG9zdG1lc3NhZ2UtY2xvbmUtZXguanMKQEAgLTAsMCArMSwyNzQgQEAK
K2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkZXNjcmlwdGlvbiIpLmlubmVySFRNTCA9ICJUZXN0
cyB0aGF0IHdlIGNsb25lIG9iamVjdCBoaWVyYXJjaGllcyI7CisKK3RyeVBvc3RNZXNzYWdlKCdu
dWxsJyk7Cit0cnlQb3N0TWVzc2FnZSgndW5kZWZpbmVkJyk7Cit0cnlQb3N0TWVzc2FnZSgnMScp
OwordHJ5UG9zdE1lc3NhZ2UoJ3RydWUnKTsKK3RyeVBvc3RNZXNzYWdlKCciMSInKTsKK3RyeVBv
c3RNZXNzYWdlKCcoe30pJyk7Cit0cnlQb3N0TWVzc2FnZSgnKHthOjF9KScpOwordHJ5UG9zdE1l
c3NhZ2UoJyh7YToiYSJ9KScpOwordHJ5UG9zdE1lc3NhZ2UoJyh7YjoiYSIsIGE6ImIifSknKTsK
K3RyeVBvc3RNZXNzYWdlKCcoe3AwOiJzdHJpbmcwIiwgcDE6InN0cmluZzEiLCBwMjoic3RyaW5n
MiIsIHAzOiJzdHJpbmczIiwgcDQ6InN0cmluZzQiLCBwNToic3RyaW5nNSIsIHA2OiJzdHJpbmc2
IiwgcDc6InN0cmluZzciLCBwODoic3RyaW5nOCIsIHA5OiJzdHJpbmc5IiwgcDEwOiJzdHJpbmcx
MCIsIHAxMToic3RyaW5nMTEiLCBwMTI6InN0cmluZzEyIiwgcDEzOiJzdHJpbmcxMyIsIHAxNDoi
c3RyaW5nMTQiLCBwMTU6InN0cmluZzE1IiwgcDE2OiJzdHJpbmcxNiIsIHAxNzoic3RyaW5nMTci
LCBwMTg6InN0cmluZzE4IiwgcDE5OiJzdHJpbmcxOSJ9KScpOwordHJ5UG9zdE1lc3NhZ2UoJyh7
cDA6InN0cmluZzEiLCBwMToic3RyaW5nMSIsIHAyOiJzdHJpbmcyIiwgcDM6InN0cmluZzMiLCBw
NDoic3RyaW5nNCIsIHA1OiJzdHJpbmc1IiwgcDY6InN0cmluZzYiLCBwNzoic3RyaW5nNyIsIHA4
OiJzdHJpbmc4IiwgcDk6InN0cmluZzkiLCBwMTA6InN0cmluZzEwIiwgcDExOiJzdHJpbmcxMSIs
IHAxMjoic3RyaW5nMTIiLCBwMTM6InN0cmluZzEzIiwgcDE0OiJzdHJpbmcxNCIsIHAxNToic3Ry
aW5nMTUiLCBwMTY6InN0cmluZzE2IiwgcDE3OiJzdHJpbmcxNyIsIHAxODoic3RyaW5nMTgiLCBw
MTk6InN0cmluZzE5In0pJyk7Cit0cnlQb3N0TWVzc2FnZSgnKHthOiIifSknKTsKK3RyeVBvc3RN
ZXNzYWdlKCcoe2E6MH0pJyk7Cit0cnlQb3N0TWVzc2FnZSgnKHthOjF9KScpOwordHJ5UG9zdE1l
c3NhZ2UoJ1tdJyk7Cit0cnlQb3N0TWVzc2FnZSgnWyJhIiwgImEiLCAiYiIsICJhIiwgImIiXScp
OwordHJ5UG9zdE1lc3NhZ2UoJ1siYSIsICJhIiwgImIiLCB7YToiYiIsIGI6ImEifV0nKTsKK3Ry
eVBvc3RNZXNzYWdlKCdbMSwyLDNdJyk7Cit0cnlQb3N0TWVzc2FnZSgnWywsMV0nKTsKK3RyeVBv
c3RNZXNzYWdlKCcoZnVuY3Rpb24oKXt9KScsIHRydWUsIG51bGwsIERPTUV4Y2VwdGlvbi5EQVRB
X0NMT05FX0VSUik7Cit0cnlQb3N0TWVzc2FnZSgnbmV3IERhdGUoMTIzNDU2Nzg5MDAwMCknKTsK
K3RyeVBvc3RNZXNzYWdlKCduZXcgQ29uc3RydWN0b3JXaXRoUHJvdG90eXBlKCJmb28iKScsIGZh
bHNlLCAnKHtmaWVsZDoiZm9vIn0pJyk7CitjeWNsaWNPYmplY3Q9e307CitjeWNsaWNPYmplY3Qu
c2VsZiA9IGN5Y2xpY09iamVjdDsKK3RyeVBvc3RNZXNzYWdlKCdjeWNsaWNPYmplY3QnLCBmYWxz
ZSwgImN5Y2xpY09iamVjdCIpOworY3ljbGljQXJyYXk9W107CitjeWNsaWNBcnJheVswXSA9IGN5
Y2xpY0FycmF5OwordHJ5UG9zdE1lc3NhZ2UoJ2N5Y2xpY0FycmF5JywgZmFsc2UsICJjeWNsaWNB
cnJheSIpOworb2JqZWN0R3JhcGggPSB7fTsKK29iamVjdCA9IHt9Oworb2JqZWN0R3JhcGguZ3Jh
cGgxID0gb2JqZWN0Oworb2JqZWN0R3JhcGguZ3JhcGgyID0gb2JqZWN0OwordHJ5UG9zdE1lc3Nh
Z2UoJ29iamVjdEdyYXBoJywgZmFsc2UsICJvYmplY3RHcmFwaCIpOworYXJyYXlHcmFwaCA9IFtv
YmplY3QsIG9iamVjdF07Cit0cnlQb3N0TWVzc2FnZSgnYXJyYXlHcmFwaCcsIGZhbHNlLCAiYXJy
YXlHcmFwaCIpOwordHJ5UG9zdE1lc3NhZ2UoJ3dpbmRvdycsIHRydWUpOwordHJ5UG9zdE1lc3Nh
Z2UoJyh7Z2V0IGEoKSB7IHRocm93ICJ4IiB9fSknLCB0cnVlKTsKKworaWYgKHdpbmRvdy5ldmVu
dFNlbmRlcikgeworICAgIHZhciBmaWxlSW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
ZmlsZUlucHV0Iik7CisgICAgdmFyIGZpbGVSZWN0ID0gZmlsZUlucHV0LmdldENsaWVudFJlY3Rz
KClbMF07CisgICAgdmFyIHRhcmdldFggPSBmaWxlUmVjdC5sZWZ0ICsgZmlsZVJlY3Qud2lkdGgg
LyAyOworICAgIHZhciB0YXJnZXRZID0gZmlsZVJlY3QudG9wICsgZmlsZVJlY3QuaGVpZ2h0IC8g
MjsKKyAgICBldmVudFNlbmRlci5iZWdpbkRyYWdXaXRoRmlsZXMoWydnb3QtZmlsZS11cGxvYWQu
aHRtbCcsICdnb3QtZmlsZS11cGxvYWQtMi5odG1sJ10pOworICAgIGV2ZW50U2VuZGVyLm1vdXNl
TW92ZVRvKHRhcmdldFgsIHRhcmdldFkpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKK30K
K3ZhciBpbWFnZURhdGEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKS5nZXRDb250
ZXh0KCIyZCIpLmNyZWF0ZUltYWdlRGF0YSgxMCwxMCk7Citmb3IgKHZhciBpID0gMDsgaSA8IGlt
YWdlRGF0YS5kYXRhLmxlbmd0aCAqIDQ7IGkrKykKKyAgICBpbWFnZURhdGEuZGF0YVtpXSA9IGkg
JSAyNTY7Cit2YXIgbXV0YXRlZEltYWdlRGF0YSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNh
bnZhcyIpLmdldENvbnRleHQoIjJkIikuY3JlYXRlSW1hZ2VEYXRhKDEwLDEwKTsKK2ZvciAodmFy
IGkgPSAwOyBpIDwgaW1hZ2VEYXRhLmRhdGEubGVuZ3RoICogNDsgaSsrKQorICAgIG11dGF0ZWRJ
bWFnZURhdGEuZGF0YVtpXSA9IGkgJSAyNTY7Cit0cnlQb3N0TWVzc2FnZSgnaW1hZ2VEYXRhJywg
ZmFsc2UsIGltYWdlRGF0YSk7Cit0cnlQb3N0TWVzc2FnZSgnaW1hZ2VEYXRhLmRhdGEnLCB0cnVl
LCBudWxsLCBET01FeGNlcHRpb24uREFUQV9DTE9ORV9FUlIpCit0cnlQb3N0TWVzc2FnZSgnbXV0
YXRlZEltYWdlRGF0YScsIGZhbHNlLCBpbWFnZURhdGEpOwordHJ5UG9zdE1lc3NhZ2UoJ211dGF0
ZWRJbWFnZURhdGEuZGF0YScsIHRydWUsIG51bGwsIERPTUV4Y2VwdGlvbi5EQVRBX0NMT05FX0VS
UikKK2ZvciAodmFyIGkgPSAwOyBpIDwgaW1hZ2VEYXRhLmRhdGEubGVuZ3RoICogNDsgaSsrKQor
ICAgIG11dGF0ZWRJbWFnZURhdGEuZGF0YVtpXSA9IDA7CisKK2Z1bmN0aW9uIHRodW5rKHMpIHsK
KyAgICByZXR1cm4gIihmdW5jdGlvbigpIHsiICsgcyArICJ9KSgpIjsKK30KK3RyeVBvc3RNZXNz
YWdlKHRodW5rKCdyZXR1cm4gNDI7JyksIGZhbHNlLCAnNDInKTsKK3RyeVBvc3RNZXNzYWdlKHRo
dW5rKCdyZXR1cm4gNDI7JyksIGZhbHNlLCB0aHVuaygncmV0dXJuIDQwICsgMjsnKSk7Cit0cnlQ
b3N0TWVzc2FnZSh0aHVuaygncmV0dXJuIDQyOycpLCBmYWxzZSwgImV2YWxUaHVuayIsCisgICAg
ICAgICAgICAgICBmdW5jdGlvbih2KSB7IGRvUGFzc0ZhaWwodiA9PSA0MiwgImV2YWxUaHVuayBP
SyIpOyB9KQorCisvLyBPbmx5IGVudW1lcmFibGUgcHJvcGVydGllcyBzaG91bGQgYmUgc2VyaWFs
aXplZC4KK3RyeVBvc3RNZXNzYWdlKHRodW5rKCd2YXIgbyA9IHt4OiJoZWxsbyJ9OyBPYmplY3Qu
ZGVmaW5lUHJvcGVydHkobywgInkiLCB7dmFsdWU6Imdvb2RieWUifSk7IHJldHVybiBvOycpLCBm
YWxzZSwgJyh7eDoiaGVsbG8ifSknKTsKKworLy8gSXQncyB1bmNsZWFyIHdoYXQgd2Ugc2hvdWxk
IGRvIGlmIGFuIGFjY2Vzc29yIG1vZGlmaWVzIGFuIG9iamVjdCBvdXQgZnJvbSB1bmRlciB1cwor
Ly8gd2hpbGUgd2UncmUgc2VyaWFsaXppbmcgaXQ7IHRoZSBzdGFuZGFyZCBkb2VzIG1hbmRhdGUg
Y2VydGFpbiBhc3BlY3RzIGFib3V0IGV2YWx1YXRpb24KKy8vIG9yZGVyLCB0aG91Z2gsIGluY2x1
ZGluZyB0aGF0IHByb3BlcnRpZXMgbXVzdCBiZSBwcm9jZXNzZWQgaW4gdGhlaXIgZW51bWVyYXRp
b24gb3JkZXIuCit0cnlQb3N0TWVzc2FnZSh0aHVuaygKKyAgICAgICAgJ3ZhciBhID0gWzAsIDEs
IDJdOyAnICsKKyAgICAgICAgJ3ZhciBiID0geyBnZXQgeCgpIHsgYVswXSA9IDQwOyBhWzJdID0g
NDI7IGEucHVzaCg0Myk7IHJldHVybiA0MTsgfX07ICcgKworICAgICAgICAnYVsxXSA9IGI7ICcg
KworICAgICAgICAncmV0dXJuIGE7JworICAgICksIGZhbHNlLCAiZXZhbFRodW5rIiwgZnVuY3Rp
b24odikgeworICAgICAgICBkb1Bhc3NGYWlsKHYubGVuZ3RoID09PSAzLCAibGVuZ3RoIGNvcnJl
Y3QiKTsgLy8gdW5kZWZpbmVkCisgICAgICAgIGRvUGFzc0ZhaWwodlswXSA9PT0gMCwgImV2YWx1
YXRpb24gb3JkZXIgT0siKTsgLy8gbWFuZGF0b3J5CisgICAgICAgIGRvUGFzc0ZhaWwodlsxXS54
ID09PSA0MSwgImV2YWx1YXRpb24gb3JkZXIgT0svYWNjZXNzb3IgcmVhY2hlZCIpOyAvLyBtYW5k
YXRvcnkKKyAgICAgICAgZG9QYXNzRmFpbCh2WzJdID09PSA0MiwgImV2YWx1YXRpb24gb3JkZXIg
T0siKTsgLy8gbWFuZGF0b3J5CisgICAgfSk7CisKK3RyeVBvc3RNZXNzYWdlKHRodW5rKAorICAg
ICAgICAndmFyIGEgPSBbMCwgMSwgMl07ICcgKworICAgICAgICAndmFyIGIgPSB7IGdldCB4KCkg
eyBhLnBvcCgpOyByZXR1cm4gNDE7IH0gfTsgJyArCisgICAgICAgICdhWzFdID0gYjsgJyArCisg
ICAgICAgICdyZXR1cm4gYTsnCisgICAgKSwgZmFsc2UsICJldmFsVGh1bmsiLCBmdW5jdGlvbih2
KSB7CisgICAgICAgIGRvUGFzc0ZhaWwodi5sZW5ndGggPT09IDMsICJsZW5ndGggY29ycmVjdCIp
OyAvLyB1bmRlZmluZWQKKyAgICAgICAgZG9QYXNzRmFpbCh2WzBdID09PSAwLCAiaXggMCBPSyIp
OyAvLyBtYW5kYXRvcnkKKyAgICAgICAgZG9QYXNzRmFpbCh2WzFdLnggPT09IDQxLCAiYWNjZXNz
b3IgcmVhY2hlZCIpOyAvLyBtYW5kYXRvcnkKKyAgICAgICAgZG9QYXNzRmFpbCh2WzJdID09PSB1
bmRlZmluZWQsICJpeCAyIHVuZGVmaW5lZCIpOyAvLyB1bmRlZmluZWQKKyAgICB9KTsKKwordHJ5
UG9zdE1lc3NhZ2UodGh1bmsoCisgICAgICAgICd2YXIgYSA9IFswLCAxLCAyXTsgJyArCisgICAg
ICAgICd2YXIgYiA9IHsgZ2V0IHgoKSB7IGEucG9wKCk7IHJldHVybiA0MTsgfSB9OyAnICsKKyAg
ICAgICAgJ2FbMl0gPSBiOyAnICsKKyAgICAgICAgJ3JldHVybiBhOycKKyAgICApLCBmYWxzZSwg
ImV2YWxUaHVuayIsIGZ1bmN0aW9uKHYpIHsKKyAgICAgICAgZG9QYXNzRmFpbCh2Lmxlbmd0aCA9
PT0gMywgImxlbmd0aCBjb3JyZWN0Iik7IC8vIHVuZGVmaW5lZAorICAgICAgICBkb1Bhc3NGYWls
KHZbMF0gPT09IDAsICJpeCAwIE9LIik7IC8vIG1hbmRhdG9yeQorICAgICAgICBkb1Bhc3NGYWls
KHZbMV0gPT09IDEsICJpeCAxIE9LIik7IC8vIG1hbmRhdG9yeQorICAgICAgICBkb1Bhc3NGYWls
KHZbMl0ueCA9PT0gNDEsICJpeCAyIE9LIik7IC8vIHVuZGVmaW5lZAorICAgIH0pOworCisvLyBO
b3cgd2l0aCBvYmplY3RzISBUaGlzIGlzIGEgbGl0dGxlIG1vcmUgdHJpY2t5IGJlY2F1c2UgdGhl
IHN0YW5kYXJkIGRvZXMgbm90CisvLyBkZWZpbmUgYW4gZW51bWVyYXRpb24gb3JkZXIuCit0cnlQ
b3N0TWVzc2FnZSh0aHVuaygKKyAgICAgICAgJ3ZhciBhID0ge3AwOiAwLCBwMTogMX07ICcgKwor
ICAgICAgICAnT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsICJwMiIsIHtnZXQ6ZnVuY3Rpb24oKSB7
ZGVsZXRlIGEucDM7IHJldHVybiA0MjsgfSwgZW51bWVyYWJsZTogdHJ1ZSwgY29uZmlndXJhYmxl
OiB0cnVlfSk7ICcgKworICAgICAgICAnT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsICJwMyIsIHtn
ZXQ6ZnVuY3Rpb24oKSB7ZGVsZXRlIGEucDI7IHJldHVybiA0MzsgfSwgZW51bWVyYWJsZTogdHJ1
ZSwgY29uZmlndXJhYmxlOiB0cnVlfSk7ICcgKworICAgICAgICAnT2JqZWN0LmRlZmluZVByb3Bl
cnR5KGEsICJwNCIsIHtnZXQ6ZnVuY3Rpb24oKSB7IGEucDUgPSA0NTsgcmV0dXJuIDQ0OyB9LCBl
bnVtZXJhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWV9KTsgJyArCisgICAgICAgICdyZXR1
cm4gYTsnCisgICAgKSwgZmFsc2UsICJldmFsVGh1bmsiLCBmdW5jdGlvbih2KSB7CisgICAgICAg
IGRvUGFzc0ZhaWwodi5wMCA9PT0gMCAmJiB2LnAxID09PSAxLCAiYmFzaWMgcHJvcGVydGllcyBP
SyIpOyAvLyBtYW5kYXRvcnkKKyAgICAgICAgZG9QYXNzRmFpbCh2LnAyID09PSB1bmRlZmluZWQg
JiYgdi5wMyAhPT0gdW5kZWZpbmVkIHx8CisgICAgICAgICAgICAgICAgICAgdi5wMiAhPT0gdW5k
ZWZpbmVkICYmIHYucDMgPT09IHVuZGVmaW5lZCwgIm9uZSBhY2Nlc3NvciB3YXMgcnVuIik7IC8v
IG1hbmRhdG9yeQorICAgICAgICBkb1Bhc3NGYWlsKHYucDIgIT09IHVuZGVmaW5lZCB8fCBPYmpl
Y3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHYsICJwMiIpID09PSB1bmRlZmluZWQsICJwcm9w
ZXJ0eSB3YXMgcmVtb3ZlZCIpOyAvLyB1bmRlZmluZWQKKyAgICAgICAgZG9QYXNzRmFpbCh2LnAz
ICE9PSB1bmRlZmluZWQgfHwgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih2LCAicDMi
KSA9PT0gdW5kZWZpbmVkLCAicHJvcGVydHkgd2FzIHJlbW92ZWQiKTsgLy8gdW5kZWZpbmVkCisg
ICAgICAgIGRvUGFzc0ZhaWwodi5wNCA9PT0gNDQsICJhY2Nlc3NvciB3YXMgcnVuIik7IC8vIG1h
bmRhdG9yeQorICAgICAgICBkb1Bhc3NGYWlsKE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IodiwgInA1IikgPT09IHVuZGVmaW5lZCwgImR5bmFtaWMgcHJvcGVydHkgbm90IHNlbnQiKTsg
Ly8gdW5kZWZpbmVkCisgICAgfSk7CisKKy8vIE9iamVjdHMgcmV0dXJuZWQgZnJvbSBhY2Nlc3Nv
cnMgc2hvdWxkIHN0aWxsIGJlIGNvYWxlc2NlZC4KK3RyeVBvc3RNZXNzYWdlKHRodW5rKAorICAg
ICAgICAndmFyIG9iamEgPSB7Z2V0IHAoKSB7IHJldHVybiA0MjsgfX07ICcgKworICAgICAgICAn
dmFyIG1zZyA9IHtnZXQgYSgpIHsgcmV0dXJuIG9iamE7IH0sIGI6IG9iamF9OyAnICsKKyAgICAg
ICAgJ3JldHVybiBtc2c7JworICAgICksIGZhbHNlLCAiZXZhbFRodW5rIiwgZnVuY3Rpb24odikg
eworICAgICAgICAvLyBJbnRlcmVzdGluZ2x5LCB0aGUgc3RhbmRhcmQgYWRtaXRzIHR3byBhbnN3
ZXJzIGhlcmUhCisgICAgICAgIGRvUGFzc0ZhaWwodi5hID09PSB2LmIsICJyZWZlcmVuY2UgZXF1
YWxpdHkgcHJlc2VydmVkIik7CisgICAgICAgIGRvUGFzc0ZhaWwoKHYuYi5wID09PSA0MiAmJiB2
LmEucCA9PT0gNDIpIHx8CisgICAgICAgICAgICAodi5iLnAgPT09IG51bGwgJiYgdi5hLnAgPT09
IG51bGwpLCAiYWNjZXNzb3JzIHVzZWQiKTsKKyAgICB9KTsKK3RyeVBvc3RNZXNzYWdlKHRodW5r
KAorICAgICAgICAndmFyIG9iamEgPSB7Z2V0IHAoKSB7IHJldHVybiA0MjsgfX07ICcgKworICAg
ICAgICAndmFyIG1zZyA9IHthOiBvYmphLCBnZXQgYigpIHsgcmV0dXJuIG9iamE7IH19OyAnICsK
KyAgICAgICAgJ3JldHVybiBtc2c7JworICAgICksIGZhbHNlLCAiZXZhbFRodW5rIiwgZnVuY3Rp
b24odikgeworICAgICAgICAvLyBJbnRlcmVzdGluZ2x5LCB0aGUgc3RhbmRhcmQgYWRtaXRzIHR3
byBhbnN3ZXJzIGhlcmUhCisgICAgICAgIGRvUGFzc0ZhaWwodi5hID09PSB2LmIsICJyZWZlcmVu
Y2UgZXF1YWxpdHkgcHJlc2VydmVkIChvcHBvc2l0ZSBvcmRlcikiKTsKKyAgICAgICAgZG9QYXNz
RmFpbCgodi5iLnAgPT09IDQyICYmIHYuYS5wID09PSA0MikgfHwKKyAgICAgICAgICAgICAgICAg
ICAodi5iLnAgPT09IG51bGwgJiYgdi5hLnAgPT09IG51bGwpLCAiYWNjZXNzb3JzIHVzZWQgKG9w
cG9zaXRlIG9yZGVyKSIpOworICAgIH0pOworLy8gV2Ugc2hvdWxkIG51bGxpZnkgdGhlIHJlc3Vs
dHMgZnJvbSBhY2Nlc3NvcnMgbW9yZSB0aGFuIG9uZSBsZXZlbCBkZWVwLAorLy8gYnV0IGxlYXZl
IG90aGVyIGZpZWxkcyB1bnRvdWNoZWQuCit0cnlQb3N0TWVzc2FnZSh0aHVuaygKKyAgICAgICAg
J3ZhciBvYmphID0ge2dldCBwKCkgeyByZXR1cm4gNDI7IH0sIHE6IDQzfTsgJyArCisgICAgICAg
ICdyZXR1cm4ge2dldCBhKCkgeyByZXR1cm4gb2JqYTsgfX07JworICAgICksIGZhbHNlLCAiZXZh
bFRodW5rIiwgZnVuY3Rpb24odikgeworICAgICAgICBkb1Bhc3NGYWlsKHYuYS5wID09PSBudWxs
LCAiYWNjZXNzb3IgdmFsdWUgd2FzIG51bGxpZmllZCIpOworICAgICAgICBkb1Bhc3NGYWlsKHYu
YS5xID09PSA0MywgIm5vbi1hY2Nlc3NvciB2YWx1ZSB3YXMgbm90IG51bGxpZmllZCIpOworICAg
IH0pOwordHJ5UG9zdE1lc3NhZ2UodGh1bmsoCisgICAgICAgICd2YXIgb2JqYiA9IHtnZXQgcigp
IHsgcmV0dXJuIDQ0OyB9LCB0OiA0NX07ICcgKworICAgICAgICAndmFyIG9iamEgPSB7Z2V0IHAo
KSB7IHJldHVybiA0MjsgfSwgcTogNDMsIHM6IG9iamJ9OyAnICsKKyAgICAgICAgJ3JldHVybiB7
Z2V0IGEoKSB7IHJldHVybiBvYmphOyB9fTsnCisgICAgKSwgZmFsc2UsICJldmFsVGh1bmsiLCBm
dW5jdGlvbih2KSB7CisgICAgICAgIGRvUGFzc0ZhaWwodi5hLnAgPT09IG51bGwsICJhY2Nlc3Nv
ciB2YWx1ZSB3YXMgbnVsbGlmaWVkIik7CisgICAgICAgIGRvUGFzc0ZhaWwodi5hLnEgPT09IDQz
LCAibm9uLWFjY2Vzc29yIHZhbHVlIHdhcyBub3QgbnVsbGlmaWVkIik7CisgICAgICAgIGRvUGFz
c0ZhaWwodi5zICE9PSBudWxsLCAibm9uLWFjY2Vzc29yIHZhbHVlIHdhcyBub3QgbnVsbGlmaWVk
Iik7CisgICAgICAgIGRvUGFzc0ZhaWwodi5hLnMuciA9PT0gbnVsbCwgImFjY2Vzc29yIHZhbHVl
IHdhcyBudWxsaWZpZWQiKTsKKyAgICAgICAgZG9QYXNzRmFpbCh2LmEucy50ID09PSA0NSwgIm5v
bi1hY2Nlc3NvciB2YWx1ZSB3YXMgbm90IG51bGxpZmllZCIpOworICAgIH0pOwordHJ5UG9zdE1l
c3NhZ2UodGh1bmsoCisgICAgICAgICd2YXIgb2JqYiA9IHtnZXQgcigpIHsgcmV0dXJuIDQ0OyB9
LCB0OiA0NX07ICcgKworICAgICAgICAndmFyIG9iamEgPSB7Z2V0IHAoKSB7IHJldHVybiA0Mjsg
fSwgcTogNDMsIHM6IFtvYmpiXX07ICcgKworICAgICAgICAncmV0dXJuIHtnZXQgYygpIHsgcmV0
dXJuIDQ3OyB9LCBnZXQgYSgpIHsgcmV0dXJuIG9iamE7IH0sIGdldCBiKCkgeyByZXR1cm4gNDY7
IH0gfTsnCisgICAgKSwgZmFsc2UsICJldmFsVGh1bmsiLCBmdW5jdGlvbih2KSB7CisgICAgICAg
IGRvUGFzc0ZhaWwodi5iID09PSA0NiwgImFjY2Vzc29yIHZhbHVlIHdhcyBub3QgbnVsbGlmaWVk
Iik7CisgICAgICAgIGRvUGFzc0ZhaWwodi5jID09PSA0NywgImFjY2Vzc29yIHZhbHVlIHdhcyBu
b3QgbnVsbGlmaWVkIik7CisgICAgICAgIGRvUGFzc0ZhaWwodi5hLnAgPT09IG51bGwsICJhY2Nl
c3NvciB2YWx1ZSB3YXMgbnVsbGlmaWVkIik7CisgICAgICAgIGRvUGFzc0ZhaWwodi5hLnEgPT09
IDQzLCAibm9uLWFjY2Vzc29yIHZhbHVlIHdhcyBub3QgbnVsbGlmaWVkIik7CisgICAgICAgIGRv
UGFzc0ZhaWwodi5hLnMgIT09IG51bGwsICJub24tYWNjZXNzb3IgdmFsdWUgd2FzIG5vdCBudWxs
aWZpZWQiKTsKKyAgICAgICAgZG9QYXNzRmFpbCh2LmEucyAhPT0gdW5kZWZpbmVkLCAibm9uLWFj
Y2Vzc29yIHZhbHVlIGlzIGRlZmluZWQiKTsKKyAgICAgICAgZG9QYXNzRmFpbCh2LmEuc1swXSAh
PT0gbnVsbCwgIm5vbi1hY2Nlc3NvciB2YWx1ZSB3YXMgbm90IG51bGxpZmllZCIpOworICAgICAg
ICBkb1Bhc3NGYWlsKHYuYS5zWzBdICE9PSB1bmRlZmluZWQsICJub24tYWNjZXNzb3IgdmFsdWUg
aXMgZGVmaW5lZCIpOworICAgICAgICBkb1Bhc3NGYWlsKHYuYS5zWzBdLnIgPT09IG51bGwsICJh
Y2Nlc3NvciB2YWx1ZSB3YXMgbnVsbGlmaWVkIik7CisgICAgICAgIGRvUGFzc0ZhaWwodi5hLnNb
MF0udCA9PT0gNDUsICJub24tYWNjZXNzb3IgdmFsdWUgd2FzIG5vdCBudWxsaWZpZWQiKTsKKyAg
ICB9KTsKKworLy8gV2UgbmVlZCB0byBwYXNzIG91dCB0aGUgZXhjZXB0aW9uIHJhaXNlZCBmcm9t
IGludGVybmFsIGFjY2Vzc29ycy4KK3RyeVBvc3RNZXNzYWdlKHRodW5rKAorICAgICAgICAncmV0
dXJuIHtnZXQgYSgpIHsgdGhyb3cgImFjY2Vzc29yLWV4biI7IH19OycKKyAgICApLCB0cnVlLCBu
dWxsLCAnYWNjZXNzb3ItZXhuJyk7CisvLyBXZSBzaG91bGQgc3RpbGwgcmV0dXJuIHRoZSBleGNl
cHRpb24gcmFpc2VkIGZyb20gbnVsbGVkLW91dCBhY2Nlc3NvcnMuCit0cnlQb3N0TWVzc2FnZSh0
aHVuaygKKyAgICAgICAgJ3ZhciBvYmphID0ge2dldCBwKCkgeyB0aHJvdyAiYWNjZXNzb3ItZXhu
IjsgfX07ICcgKworICAgICAgICAncmV0dXJuIHtnZXQgYSgpIHsgcmV0dXJuIG9iamE7IH19OycK
KyAgICApLCB0cnVlLCBudWxsLCAnYWNjZXNzb3ItZXhuJyk7CisvLyBXZSBzaG91bGQgcnVuIHRo
ZSBmaXJzdCBudWxsaWZpZWQgYWNjZXNzb3IsIGJ1dCBubyBtb3JlLgordHJ5UG9zdE1lc3NhZ2Uo
dGh1bmsoCisgICAgICAgICd3aW5kb3cuYmNhbGxlZCA9IHVuZGVmaW5lZDsgJyArCisgICAgICAg
ICd3aW5kb3cuYWNhbGxlZCA9IHVuZGVmaW5lZDsgJyArCisgICAgICAgICd3aW5kb3cucGNhbGxl
ZCA9IHVuZGVmaW5lZDsgJyArCisgICAgICAgICd2YXIgb2JqYiA9IHtnZXQgYigpIHsgd2luZG93
LmJjYWxsZWQgPSB0cnVlOyByZXR1cm4gNDI7IH19OyAnICsKKyAgICAgICAgJ3ZhciBvYmphID0g
e2dldCBhKCkgeyB3aW5kb3cuYWNhbGxlZCA9IHRydWU7IHJldHVybiBvYmpiOyB9fTsgJyArCisg
ICAgICAgICdyZXR1cm4geyBnZXQgcCgpIHsgd2luZG93LnBjYWxsZWQgPSB0cnVlOyByZXR1cm4g
b2JqYTsgfX07JworICAgICksIGZhbHNlLCAiZXZhbFRodW5rIiwgZnVuY3Rpb24odikgeworICAg
ICAgICBkb1Bhc3NGYWlsKHYucC5hID09PSBudWxsLCAiYWNjZXNzb3IgdmFsdWUgd2FzIG51bGxp
ZmllZCIpOworICAgICAgICBkb1Bhc3NGYWlsKHdpbmRvdy5wY2FsbGVkID09PSB0cnVlLCAid2lu
ZG93LnBjYWxsZWQgPT09IHRydWUiKTsKKyAgICAgICAgZG9QYXNzRmFpbCh3aW5kb3cuYWNhbGxl
ZCA9PT0gdHJ1ZSwgIndpbmRvdy5hY2FsbGVkID09PSB0cnVlIik7CisgICAgICAgIGRvUGFzc0Zh
aWwod2luZG93LmJjYWxsZWQgPT09IHVuZGVmaW5lZCwgIndpbmRvdy5iY2FsbGVkID09PSB1bmRl
ZmluZWQiKTsKKyAgICB9KTsKKworLy8gUmVmZXJlbmNlIGVxdWFsaXR5IGJldHdlZW4gZGF0ZXMg
bXVzdCBiZSBtYWludGFpbmVkLgordHJ5UG9zdE1lc3NhZ2UodGh1bmsoCisgICAgICAgICd2YXIg
ZDEgPSBuZXcgRGF0ZSgxLDIsMyk7ICcgKworICAgICAgICAndmFyIGQyID0gbmV3IERhdGUoMSwy
LDMpOyAnICsKKyAgICAgICAgJ3JldHVybiBbZDEsZDEsZDJdOycKKyAgICApLCBmYWxzZSwgImV2
YWxUaHVuayIsIGZ1bmN0aW9uKHYpIHsKKyAgICAgICAgZG9QYXNzRmFpbChlcXVhbCh2WzBdLCBu
ZXcgRGF0ZSgxLDIsMykpLCAiRGF0ZSB2YWx1ZXMgY29ycmVjdCAoMCkiKTsKKyAgICAgICAgZG9Q
YXNzRmFpbChlcXVhbCh2WzBdLCB2WzJdKSwgIkRhdGUgdmFsdWVzIGNvcnJlY3QgKDEpIik7Cisg
ICAgICAgIGRvUGFzc0ZhaWwodlswXSA9PT0gdlsxXSwgIlJlZmVyZW5jZXMgdG8gZGF0ZXMgY29y
cmVjdCAoMCkiKTsKKyAgICAgICAgZG9QYXNzRmFpbCh2WzBdICE9PSB2WzJdLCAiUmVmZXJlbmNl
cyB0byBkYXRlcyBjb3JyZWN0ICgxKSIpOworICAgIH0pOworCisvLyBSZWZlcmVuY2UgZXF1YWxp
dHkgYmV0d2VlbiByZWdleHBzIG11c3QgYmUgcHJlc2VydmVkLgordHJ5UG9zdE1lc3NhZ2UodGh1
bmsoCisgICAgICAgICd2YXIgcngxID0gbmV3IFJlZ0V4cCgiZm9vIik7ICcgKworICAgICAgICAn
dmFyIHJ4MiA9IG5ldyBSZWdFeHAoImZvbyIpOyAnICsKKyAgICAgICAgJ3ZhciByeDMgPSBuZXcg
UmVnRXhwKCJmb28iLCAiZ2ltIik7ICcgKworICAgICAgICAncngzLmV4ZWMoImZvb2Zvb2ZvbyIp
OyAnICsKKyAgICAgICAgJ2RvUGFzc0ZhaWwocngzLmxhc3RJbmRleCA9PT0gMywgImxhc3RJbmRl
eCBpbml0aWFsbHkgY29ycmVjdDogd2FzICIgKyByeDMubGFzdEluZGV4KTsgJyArCisgICAgICAg
ICdyZXR1cm4gW3J4MSxyeDEscngyLHJ4M107JworICAgICksIGZhbHNlLCAiZXZhbFRodW5rIiwg
ZnVuY3Rpb24odikgeworICAgICAgICBkb1Bhc3NGYWlsKHZbMF0uc291cmNlID09PSAiZm9vIiwg
IlJlZ2V4cCB2YWx1ZSBjb3JyZWN0ICgwKSIpOworICAgICAgICBkb1Bhc3NGYWlsKHZbMF0gPT09
IHZbMV0sICJSZWZlcmVuY2VzIHRvIHJlZ2V4cHMgY29ycmVjdCAoMCkiKTsKKyAgICAgICAgZG9Q
YXNzRmFpbCh2WzBdICE9PSB2WzJdLCAiUmVmZXJlbmNlcyB0byByZWdleHBzIGNvcnJlY3QgKDEp
Iik7CisgICAgICAgIGRvUGFzc0ZhaWwodlswXS5nbG9iYWwgPT09IGZhbHNlLCAiZ2xvYmFsIHNl
dCAoMCkiKTsKKyAgICAgICAgZG9QYXNzRmFpbCh2WzNdLmdsb2JhbCA9PT0gdHJ1ZSwgImdsb2Jh
bCBzZXQgKDEpIik7CisgICAgICAgIGRvUGFzc0ZhaWwodlswXS5pZ25vcmVDYXNlID09PSBmYWxz
ZSwgImlnbm9yZUNhc2Ugc2V0ICgwKSIpOworICAgICAgICBkb1Bhc3NGYWlsKHZbM10uaWdub3Jl
Q2FzZSA9PT0gdHJ1ZSwgImlnbm9yZUNhc2Ugc2V0ICgxKSIpOworICAgICAgICBkb1Bhc3NGYWls
KHZbMF0ubXVsdGlsaW5lID09PSBmYWxzZSwgIm11bHRpbGluZSBzZXQgKDApIik7CisgICAgICAg
IGRvUGFzc0ZhaWwodlszXS5tdWx0aWxpbmUgPT09IHRydWUsICJtdWx0aWxpbmUgc2V0ICgxKSIp
OworICAgICAgICBkb1Bhc3NGYWlsKHZbMF0ubGFzdEluZGV4ID09PSAwLCAibGFzdEluZGV4IGNv
cnJlY3QgKDApIik7CisgICAgICAgIGRvUGFzc0ZhaWwodlszXS5sYXN0SW5kZXggPT09IDAsICJs
YXN0SW5kZXggY29ycmVjdCAoMSkiKTsKKyAgICB9KTsKKworaWYgKHdpbmRvdy5ldmVudFNlbmRl
cikgeworICAgIHRyeVBvc3RNZXNzYWdlKHRodW5rKAorICAgICAgICAnd2luZG93LmZpbGVMaXN0
ID0gZmlsZUlucHV0LmZpbGVzOyAnICsKKyAgICAgICAgJ3dpbmRvdy5maWxlMCA9IGZpbGVMaXN0
WzBdOyAnICsKKyAgICAgICAgJ3dpbmRvdy5maWxlMSA9IGZpbGVMaXN0WzFdOyAnICsKKyAgICAg
ICAgJ3JldHVybiB3aW5kb3cuZmlsZUxpc3QubGVuZ3RoJyksIGZhbHNlLCAyKTsKKyAgICBkb1Bh
c3NGYWlsKHdpbmRvdy5maWxlTGlzdFswXSA9PT0gd2luZG93LmZpbGUwLCAic2FuaXR5IG9uIGZp
bGUgcmVmZXJlbmNlIGVxdWFsaXR5IikKKyAgICAvLyBUaGUgc3RhbmRhcmQgbWFuZGF0ZXMgdGhh
dCB3ZSBkbyBfbm90XyBtYWludGFpbiByZWZlcmVuY2UgZXF1YWxpdHkgZm9yIGZpbGVzIGluIGEg
dHJhbnNmZXJyZWQgRmlsZUxpc3QuCisgICAgdHJ5UG9zdE1lc3NhZ2UodGh1bmsoJ3JldHVybiBb
d2luZG93LmZpbGUwLCB3aW5kb3cuZmlsZTBdOycKKyAgICAgICAgKSwgZmFsc2UsICJldmFsVGh1
bmsiLCBmdW5jdGlvbih2KSB7IGRvUGFzc0ZhaWwodlswXSA9PT0gdlsxXSwgImZpbGUgcmVmZXJl
bmNlcyB0cmFuc2ZlciIpfSk7CisgICAgdHJ5UG9zdE1lc3NhZ2UodGh1bmsoJ3JldHVybiBbd2lu
ZG93LmZpbGVMaXN0LCB3aW5kb3cuZmlsZTBdOycKKyAgICAgICAgKSwgZmFsc2UsICJldmFsVGh1
bmsiLCBmdW5jdGlvbih2KSB7IGRvUGFzc0ZhaWwodlswXVswXSAhPT0gdlsxXSwgIkZpbGVMaXN0
IHNob3VsZCBub3QgcmVzcGVjdCByZWZlcmVuY2UgZXF1YWxpdHkiKX0pOworICAgIHRyeVBvc3RN
ZXNzYWdlKHRodW5rKCdyZXR1cm4gW3dpbmRvdy5maWxlMCwgd2luZG93LmZpbGVMaXN0XTsnCisg
ICAgICAgICksIGZhbHNlLCAiZXZhbFRodW5rIiwgZnVuY3Rpb24odikgeyBkb1Bhc3NGYWlsKHZb
MV1bMF0gIT09IHZbMF0sICJGaWxlTGlzdCBzaG91bGQgbm90IHJlc3BlY3QgcmVmZXJlbmNlIGVx
dWFsaXR5Iil9KTsKKyAgICB0cnlQb3N0TWVzc2FnZSh0aHVuaygncmV0dXJuIFt3aW5kb3cuZmls
ZUxpc3QsIHdpbmRvdy5maWxlTGlzdF07JworICAgICAgICApLCBmYWxzZSwgImV2YWxUaHVuayIs
IGZ1bmN0aW9uKHYpIHsgZG9QYXNzRmFpbCh2WzBdID09PSB2WzFdLCAiRmlsZUxpc3QgcmVzcGVj
dHMgc2VsZi1yZWZlcmVuY2UgZXF1YWxpdHkiKX0pOworICAgIHRyeVBvc3RNZXNzYWdlKHRodW5r
KCdyZXR1cm4gW3dpbmRvdy5maWxlTGlzdCwgd2luZG93LmZpbGUwLCB3aW5kb3cuZmlsZTFdJwor
ICAgICAgICApLCBmYWxzZSwgImV2YWxUaHVuayIsIGZ1bmN0aW9uKHYpIHsKKyAgICAgICAgICAg
IGRvUGFzc0ZhaWwodlswXS5sZW5ndGggPT09IHdpbmRvdy5maWxlTGlzdC5sZW5ndGgsICJGaWxl
TGlzdCBsZW5ndGggc2VudCBjb3JyZWN0bHkiKTsKKyAgICAgICAgICAgIGRvUGFzc0ZhaWwodlsw
XVswXSAhPT0gdlsxXSwgIkZpbGVMaXN0IHNob3VsZCBub3QgcmVzcGVjdCByZWZlcmVuY2UgZXF1
YWxpdHkgKDApIik7CisgICAgICAgICAgICBkb1Bhc3NGYWlsKHZbMF1bMV0gIT09IHZbMl0sICJG
aWxlTGlzdCBzaG91bGQgbm90IHJlc3BlY3QgcmVmZXJlbmNlIGVxdWFsaXR5ICgxKSIpOworICAg
ICAgICAgICAgZG9QYXNzRmFpbCh2WzBdWzBdLm5hbWUgPT0gd2luZG93LmZpbGUwLm5hbWUsICJG
aWxlTGlzdCBwcmVzZXJ2ZXMgb3JkZXIgYW5kIGRhdGEgKG5hbWUwKSIpOworICAgICAgICAgICAg
ZG9QYXNzRmFpbCh2WzBdWzFdLm5hbWUgPT0gd2luZG93LmZpbGUxLm5hbWUsICJGaWxlTGlzdCBw
cmVzZXJ2ZXMgb3JkZXIgYW5kIGRhdGEgKG5hbWUxKSIpOworICAgICAgICAgICAgZG9QYXNzRmFp
bChlcXVhbCh2WzBdWzBdLmxhc3RNb2RpZmllZERhdGUsIHdpbmRvdy5maWxlMC5sYXN0TW9kaWZp
ZWREYXRlKSwgIkZpbGVMaXN0IHByZXNlcnZlcyBvcmRlciBhbmQgZGF0YSAoZGF0ZTApIik7Cisg
ICAgICAgICAgICBkb1Bhc3NGYWlsKGVxdWFsKHZbMF1bMV0ubGFzdE1vZGlmaWVkRGF0ZSwgd2lu
ZG93LmZpbGUxLmxhc3RNb2RpZmllZERhdGUpLCAiRmlsZUxpc3QgcHJlc2VydmVzIG9yZGVyIGFu
ZCBkYXRhIChkYXRlMSkiKTsKKyAgICAgICAgfSk7Cit9Cit0cnlQb3N0TWVzc2FnZSgnImRvbmUi
Jyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2RvbS9X
aW5kb3cvd2luZG93LXBvc3RtZXNzYWdlLWNsb25lLWRlZXAtYXJyYXktZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9kb20vV2luZG93L3dpbmRvdy1wb3N0
bWVzc2FnZS1jbG9uZS1kZWVwLWFycmF5LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi40OTBkOGQ5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0vZmFzdC9kb20vV2luZG93L3dpbmRvdy1wb3N0bWVzc2FnZS1jbG9u
ZS1kZWVwLWFycmF5LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1Rlc3RzIHRoYXQgd2Ug
YWJvcnQgY2xvbmluZyBkZWVwKGlzaCkgYXJyYXlzLgorCitQQVNTOiBldmVudERhdGEgaXMgW29i
amVjdCBBcnJheV0oZGVmYXVsdCB0b1N0cmluZyB0aHJldyBSYW5nZUVycm9yOiBNYXhpbXVtIGNh
bGwgc3RhY2sgc2l6ZSBleGNlZWRlZCkgb2YgdHlwZSBvYmplY3QKK1BBU1M6IGV2ZW50RGF0YSBp
cyBkb25lIG9mIHR5cGUgc3RyaW5nCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcG9zdG1lc3NhZ2UtY2xvbmUtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9kb20vV2luZG93L3dp
bmRvdy1wb3N0bWVzc2FnZS1jbG9uZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uMjM3MWZkZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcG9zdG1lc3NhZ2UtY2xvbmUt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTE0IEBACitUZXN0cyB0aGF0IHdlIGNsb25lIG9iamVj
dCBoaWVyYXJjaGllcworCitQQVNTOiAncG9zdE1lc3NhZ2UoKGZ1bmN0aW9uKCl7fSkpJyB0aHJl
dyBFcnJvcjogREFUQV9DTE9ORV9FUlI6IERPTSBFeGNlcHRpb24gMjUKK1BBU1M6ICdwb3N0TWVz
c2FnZSh3aW5kb3cpJyB0aHJldyBFcnJvcjogREFUQV9DTE9ORV9FUlI6IERPTSBFeGNlcHRpb24g
MjUKK1BBU1M6ICdwb3N0TWVzc2FnZSgoe2dldCBhKCkgeyB0aHJvdyAieCIgfX0pKScgdGhyZXcg
eAorUEFTUzogJ3Bvc3RNZXNzYWdlKGltYWdlRGF0YS5kYXRhKScgdGhyZXcgRXJyb3I6IERBVEFf
Q0xPTkVfRVJSOiBET00gRXhjZXB0aW9uIDI1CitQQVNTOiAncG9zdE1lc3NhZ2UobXV0YXRlZElt
YWdlRGF0YS5kYXRhKScgdGhyZXcgRXJyb3I6IERBVEFfQ0xPTkVfRVJSOiBET00gRXhjZXB0aW9u
IDI1CitQQVNTOiAncG9zdE1lc3NhZ2UoKGZ1bmN0aW9uKCkge3JldHVybiB7Z2V0IGEoKSB7IHRo
cm93ICJhY2Nlc3Nvci1leG4iOyB9fTt9KSgpKScgdGhyZXcgYWNjZXNzb3ItZXhuCitQQVNTOiAn
cG9zdE1lc3NhZ2UoKGZ1bmN0aW9uKCkge3ZhciBvYmphID0ge2dldCBwKCkgeyB0aHJvdyAiYWNj
ZXNzb3ItZXhuIjsgfX07IHJldHVybiB7Z2V0IGEoKSB7IHJldHVybiBvYmphOyB9fTt9KSgpKScg
dGhyZXcgYWNjZXNzb3ItZXhuCitQQVNTOiBsYXN0SW5kZXggaW5pdGlhbGx5IGNvcnJlY3Q6IHdh
cyAzCitQQVNTOiBzYW5pdHkgb24gZmlsZSByZWZlcmVuY2UgZXF1YWxpdHkKK1BBU1M6IGV2ZW50
RGF0YSBpcyBudWxsIG9mIHR5cGUgb2JqZWN0CitQQVNTOiBldmVudERhdGEgaXMgdW5kZWZpbmVk
IG9mIHR5cGUgdW5kZWZpbmVkCitQQVNTOiBldmVudERhdGEgaXMgMSBvZiB0eXBlIG51bWJlcgor
UEFTUzogZXZlbnREYXRhIGlzIHRydWUgb2YgdHlwZSBib29sZWFuCitQQVNTOiBldmVudERhdGEg
aXMgMSBvZiB0eXBlIHN0cmluZworUEFTUzogZXZlbnREYXRhIGlzIFtvYmplY3QgT2JqZWN0XSBv
ZiB0eXBlIG9iamVjdAorUEFTUzogZXZlbnREYXRhIGlzIFtvYmplY3QgT2JqZWN0XSBvZiB0eXBl
IG9iamVjdAorUEFTUzogZXZlbnREYXRhIGlzIFtvYmplY3QgT2JqZWN0XSBvZiB0eXBlIG9iamVj
dAorUEFTUzogZXZlbnREYXRhIGlzIFtvYmplY3QgT2JqZWN0XSBvZiB0eXBlIG9iamVjdAorUEFT
UzogZXZlbnREYXRhIGlzIFtvYmplY3QgT2JqZWN0XSBvZiB0eXBlIG9iamVjdAorUEFTUzogZXZl
bnREYXRhIGlzIFtvYmplY3QgT2JqZWN0XSBvZiB0eXBlIG9iamVjdAorUEFTUzogZXZlbnREYXRh
IGlzIFtvYmplY3QgT2JqZWN0XSBvZiB0eXBlIG9iamVjdAorUEFTUzogZXZlbnREYXRhIGlzIFtv
YmplY3QgT2JqZWN0XSBvZiB0eXBlIG9iamVjdAorUEFTUzogZXZlbnREYXRhIGlzIFtvYmplY3Qg
T2JqZWN0XSBvZiB0eXBlIG9iamVjdAorUEFTUzogZXZlbnREYXRhIGlzIG9mIHR5cGUgb2JqZWN0
CitQQVNTOiBldmVudERhdGEgaXMgYSxhLGIsYSxiIG9mIHR5cGUgb2JqZWN0CitQQVNTOiBldmVu
dERhdGEgaXMgYSxhLGIsW29iamVjdCBPYmplY3RdIG9mIHR5cGUgb2JqZWN0CitQQVNTOiBldmVu
dERhdGEgaXMgMSwyLDMgb2YgdHlwZSBvYmplY3QKK1BBU1M6IGV2ZW50RGF0YSBpcyAsLDEgb2Yg
dHlwZSBvYmplY3QKK1BBU1M6IGV2ZW50RGF0YSBpcyAyMDA5LTAyLTEzVDIzOjMxOjMwLjAwMFog
b2YgdHlwZSBvYmplY3QKK1BBU1M6IGV2ZW50RGF0YSBpcyBbb2JqZWN0IE9iamVjdF0gb2YgdHlw
ZSBvYmplY3QKK1BBU1M6IGV2ZW50RGF0YSBpcyA9PT0gdG8gZXZlbnREYXRhLnNlbGYKK1BBU1M6
IGV2ZW50RGF0YSBpcyA9PT0gdG8gZXZlbnREYXRhWzBdCitQQVNTOiBldmVudERhdGEuZ3JhcGgx
IGlzID09PSB0byBldmVudERhdGEuZ3JhcGgyCitQQVNTOiBldmVudERhdGFbMF0gaXMgPT09IHRv
IGV2ZW50RGF0YVsxXQorUEFTUzogZXZlbnREYXRhIGlzIFtvYmplY3QgSW1hZ2VEYXRhXSBvZiB0
eXBlIG9iamVjdAorUEFTUzogZXZlbnREYXRhIGlzIFtvYmplY3QgSW1hZ2VEYXRhXSBvZiB0eXBl
IG9iamVjdAorUEFTUzogZXZlbnREYXRhIGlzIDQyIG9mIHR5cGUgbnVtYmVyCitQQVNTOiBldmVu
dERhdGEgaXMgNDIgb2YgdHlwZSBudW1iZXIKK1BBU1M6IGV2YWxUaHVuayBPSworUEFTUzogZXZl
bnREYXRhIGlzIFtvYmplY3QgT2JqZWN0XSBvZiB0eXBlIG9iamVjdAorUEFTUzogbGVuZ3RoIGNv
cnJlY3QKK1BBU1M6IGV2YWx1YXRpb24gb3JkZXIgT0sKK1BBU1M6IGV2YWx1YXRpb24gb3JkZXIg
T0svYWNjZXNzb3IgcmVhY2hlZAorUEFTUzogZXZhbHVhdGlvbiBvcmRlciBPSworUEFTUzogbGVu
Z3RoIGNvcnJlY3QKK1BBU1M6IGl4IDAgT0sKK1BBU1M6IGFjY2Vzc29yIHJlYWNoZWQKK1BBU1M6
IGl4IDIgdW5kZWZpbmVkCitQQVNTOiBsZW5ndGggY29ycmVjdAorUEFTUzogaXggMCBPSworUEFT
UzogaXggMSBPSworUEFTUzogaXggMiBPSworUEFTUzogYmFzaWMgcHJvcGVydGllcyBPSworUEFT
Uzogb25lIGFjY2Vzc29yIHdhcyBydW4KK1BBU1M6IHByb3BlcnR5IHdhcyByZW1vdmVkCitQQVNT
OiBwcm9wZXJ0eSB3YXMgcmVtb3ZlZAorUEFTUzogYWNjZXNzb3Igd2FzIHJ1bgorUEFTUzogZHlu
YW1pYyBwcm9wZXJ0eSBub3Qgc2VudAorUEFTUzogcmVmZXJlbmNlIGVxdWFsaXR5IHByZXNlcnZl
ZAorUEFTUzogYWNjZXNzb3JzIHVzZWQKK1BBU1M6IHJlZmVyZW5jZSBlcXVhbGl0eSBwcmVzZXJ2
ZWQgKG9wcG9zaXRlIG9yZGVyKQorUEFTUzogYWNjZXNzb3JzIHVzZWQgKG9wcG9zaXRlIG9yZGVy
KQorUEFTUzogYWNjZXNzb3IgdmFsdWUgd2FzIG51bGxpZmllZAorUEFTUzogbm9uLWFjY2Vzc29y
IHZhbHVlIHdhcyBub3QgbnVsbGlmaWVkCitQQVNTOiBhY2Nlc3NvciB2YWx1ZSB3YXMgbnVsbGlm
aWVkCitQQVNTOiBub24tYWNjZXNzb3IgdmFsdWUgd2FzIG5vdCBudWxsaWZpZWQKK1BBU1M6IG5v
bi1hY2Nlc3NvciB2YWx1ZSB3YXMgbm90IG51bGxpZmllZAorUEFTUzogYWNjZXNzb3IgdmFsdWUg
d2FzIG51bGxpZmllZAorUEFTUzogbm9uLWFjY2Vzc29yIHZhbHVlIHdhcyBub3QgbnVsbGlmaWVk
CitQQVNTOiBhY2Nlc3NvciB2YWx1ZSB3YXMgbm90IG51bGxpZmllZAorUEFTUzogYWNjZXNzb3Ig
dmFsdWUgd2FzIG5vdCBudWxsaWZpZWQKK1BBU1M6IGFjY2Vzc29yIHZhbHVlIHdhcyBudWxsaWZp
ZWQKK1BBU1M6IG5vbi1hY2Nlc3NvciB2YWx1ZSB3YXMgbm90IG51bGxpZmllZAorUEFTUzogbm9u
LWFjY2Vzc29yIHZhbHVlIHdhcyBub3QgbnVsbGlmaWVkCitQQVNTOiBub24tYWNjZXNzb3IgdmFs
dWUgaXMgZGVmaW5lZAorUEFTUzogbm9uLWFjY2Vzc29yIHZhbHVlIHdhcyBub3QgbnVsbGlmaWVk
CitQQVNTOiBub24tYWNjZXNzb3IgdmFsdWUgaXMgZGVmaW5lZAorUEFTUzogYWNjZXNzb3IgdmFs
dWUgd2FzIG51bGxpZmllZAorUEFTUzogbm9uLWFjY2Vzc29yIHZhbHVlIHdhcyBub3QgbnVsbGlm
aWVkCitQQVNTOiBhY2Nlc3NvciB2YWx1ZSB3YXMgbnVsbGlmaWVkCitQQVNTOiB3aW5kb3cucGNh
bGxlZCA9PT0gdHJ1ZQorUEFTUzogd2luZG93LmFjYWxsZWQgPT09IHRydWUKK1BBU1M6IHdpbmRv
dy5iY2FsbGVkID09PSB1bmRlZmluZWQKK1BBU1M6IERhdGUgdmFsdWVzIGNvcnJlY3QgKDApCitQ
QVNTOiBEYXRlIHZhbHVlcyBjb3JyZWN0ICgxKQorUEFTUzogUmVmZXJlbmNlcyB0byBkYXRlcyBj
b3JyZWN0ICgwKQorUEFTUzogUmVmZXJlbmNlcyB0byBkYXRlcyBjb3JyZWN0ICgxKQorUEFTUzog
UmVnZXhwIHZhbHVlIGNvcnJlY3QgKDApCitQQVNTOiBSZWZlcmVuY2VzIHRvIHJlZ2V4cHMgY29y
cmVjdCAoMCkKK1BBU1M6IFJlZmVyZW5jZXMgdG8gcmVnZXhwcyBjb3JyZWN0ICgxKQorUEFTUzog
Z2xvYmFsIHNldCAoMCkKK1BBU1M6IGdsb2JhbCBzZXQgKDEpCitQQVNTOiBpZ25vcmVDYXNlIHNl
dCAoMCkKK1BBU1M6IGlnbm9yZUNhc2Ugc2V0ICgxKQorUEFTUzogbXVsdGlsaW5lIHNldCAoMCkK
K1BBU1M6IG11bHRpbGluZSBzZXQgKDEpCitQQVNTOiBsYXN0SW5kZXggY29ycmVjdCAoMCkKK1BB
U1M6IGxhc3RJbmRleCBjb3JyZWN0ICgxKQorUEFTUzogZXZlbnREYXRhIGlzIDIgb2YgdHlwZSBu
dW1iZXIKK1BBU1M6IGZpbGUgcmVmZXJlbmNlcyB0cmFuc2ZlcgorUEFTUzogRmlsZUxpc3Qgc2hv
dWxkIG5vdCByZXNwZWN0IHJlZmVyZW5jZSBlcXVhbGl0eQorUEFTUzogRmlsZUxpc3Qgc2hvdWxk
IG5vdCByZXNwZWN0IHJlZmVyZW5jZSBlcXVhbGl0eQorUEFTUzogRmlsZUxpc3QgcmVzcGVjdHMg
c2VsZi1yZWZlcmVuY2UgZXF1YWxpdHkKK1BBU1M6IEZpbGVMaXN0IGxlbmd0aCBzZW50IGNvcnJl
Y3RseQorUEFTUzogRmlsZUxpc3Qgc2hvdWxkIG5vdCByZXNwZWN0IHJlZmVyZW5jZSBlcXVhbGl0
eSAoMCkKK1BBU1M6IEZpbGVMaXN0IHNob3VsZCBub3QgcmVzcGVjdCByZWZlcmVuY2UgZXF1YWxp
dHkgKDEpCitQQVNTOiBGaWxlTGlzdCBwcmVzZXJ2ZXMgb3JkZXIgYW5kIGRhdGEgKG5hbWUwKQor
UEFTUzogRmlsZUxpc3QgcHJlc2VydmVzIG9yZGVyIGFuZCBkYXRhIChuYW1lMSkKK1BBU1M6IEZp
bGVMaXN0IHByZXNlcnZlcyBvcmRlciBhbmQgZGF0YSAoZGF0ZTApCitQQVNTOiBGaWxlTGlzdCBw
cmVzZXJ2ZXMgb3JkZXIgYW5kIGRhdGEgKGRhdGUxKQorUEFTUzogZXZlbnREYXRhIGlzIGRvbmUg
b2YgdHlwZSBzdHJpbmcKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0vZmFzdC9kb20vV2luZG93L3dpbmRvdy1wb3N0bWVzc2FnZS1jbG9uZS1yZWFsbHktZGVlcC1h
cnJheS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2Rv
bS9XaW5kb3cvd2luZG93LXBvc3RtZXNzYWdlLWNsb25lLXJlYWxseS1kZWVwLWFycmF5LWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40Y2M1MTg1Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9kb20vV2lu
ZG93L3dpbmRvdy1wb3N0bWVzc2FnZS1jbG9uZS1yZWFsbHktZGVlcC1hcnJheS1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSw1IEBACitUZXN0cyB0aGF0IHdlIGFib3J0IGNsb25pbmcgb3ZlcmRlZXAg
YXJyYXlzLgorCitQQVNTOiAncG9zdE1lc3NhZ2UocmVhbGx5RGVlcEFycmF5KScgdGhyZXcgRXJy
b3I6IERBVEFfQ0xPTkVfRVJSOiBET00gRXhjZXB0aW9uIDI1CitQQVNTOiBldmVudERhdGEgaXMg
ZG9uZSBvZiB0eXBlIHN0cmluZworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQKaW5kZXggYTQ1Y2VmMC4uNzMwNWVjMyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0
CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4
dApAQCAtMTE2LDYgKzExNiw4IEBAIEJVR1dLNTU5MTMgREVCVUcgU0xPVyA6IGpxdWVyeS9vZmZz
ZXQuaHRtbCA9IFBBU1MKIEJVR1dLNTU5MTMgREVCVUcgU0xPVyA6IGpxdWVyeS90cmF2ZXJzaW5n
Lmh0bWwgPSBQQVNTCiBCVUdXSzU1OTEzIERFQlVHIDoganF1ZXJ5L2RpbWVuc2lvbnMuaHRtbCA9
IFRJTUVPVVQgUEFTUwogCitXT05URklYIFNMT1cgOiBmYXN0L2RvbS9XaW5kb3cvd2luZG93LXBv
c3RtZXNzYWdlLWNsb25lLXJlYWxseS1kZWVwLWFycmF5Lmh0bWwgPSBQQVNTCisKIC8vIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCiAvLyBTS0lQUEVEIFRFU1RTCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMTY0MSw5ICsxNjQzLDYgQEAg
QlVHQ1IyNDEyNiA6IGZhc3QvZG9tL0hUTUxJbnB1dEVsZW1lbnQvc2l6ZS1hdHRyaWJ1dGUuaHRt
bCA9IEZBSUwKIC8vIEZsYWt5IHRpbWVvdXRzIGZpcnN0IGFwcGVhcmluZyBhdCByMjc3NjQgKHdl
YmtpdCA0ODk0NykKIEJVR0NSOTc5OCBXSU4gOiBodHRwL3Rlc3RzL2Nvb2tpZXMvbXVsdGlwbGUt
Y29va2llcy5odG1sID0gVElNRU9VVCBQQVNTCiAKLS8vIFdlYktpdCB1cGRhdGU6IDQ5MjEzOjQ5
MjIxCi1CVUdDUjI0MDYzIDogZmFzdC9kb20vV2luZG93L3dpbmRvdy1wb3N0bWVzc2FnZS1jbG9u
ZS5odG1sID0gRkFJTAotCiAvLyBHb3Qgc2xvdyB3aXRoIFY4IHVwZGF0ZSB0byAxLjMuMTUuIERl
YnVnIGxvZ2dpbmcgcGVyaGFwcz8KIEJVR0NSMjQxODIgREVCVUcgU0xPVyA6IGZhc3QvZm9ybXMv
aW5wdXQtaW1wbGljaXQtbGVuZ3RoLWxpbWl0Lmh0bWwgPSBQQVNTCiBCVUdDUjI0MTgyIERFQlVH
IFNMT1cgOiBmYXN0L2Zvcm1zL2lucHV0LW1heGxlbmd0aC5odG1sID0gUEFTUwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVy
dGllcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvZmFzdC9kb20vV2lu
ZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dAppbmRleCBhOGExMWU2Li44YTFmMWY3
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvZmFzdC9kb20vV2luZG93L3dp
bmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9n
dGsvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dApAQCAtNTEx
LDYgKzUxMSw3IEBAIHdpbmRvdy5Db3VudGVyIFtvYmplY3QgQ291bnRlckNvbnN0cnVjdG9yXQog
d2luZG93LkNvdW50ZXIucHJvdG90eXBlIFtvYmplY3QgQ291bnRlclByb3RvdHlwZV0KIHdpbmRv
dy5ET01FeGNlcHRpb24gW29iamVjdCBET01FeGNlcHRpb25Db25zdHJ1Y3Rvcl0KIHdpbmRvdy5E
T01FeGNlcHRpb24uQUJPUlRfRVJSIFtudW1iZXJdCit3aW5kb3cuRE9NRXhjZXB0aW9uLkRBVEFf
Q0xPTkVfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLkRPTVNUUklOR19TSVpFX0VS
UiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5ISUVSQVJDSFlfUkVRVUVTVF9FUlIgW251
bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24uSU5ERVhfU0laRV9FUlIgW251bWJlcl0KQEAgLTUx
OCw2ICs1MTksNyBAQCB3aW5kb3cuRE9NRXhjZXB0aW9uLklOVVNFX0FUVFJJQlVURV9FUlIgW251
bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24uSU5WQUxJRF9BQ0NFU1NfRVJSIFtudW1iZXJdCiB3
aW5kb3cuRE9NRXhjZXB0aW9uLklOVkFMSURfQ0hBUkFDVEVSX0VSUiBbbnVtYmVyXQogd2luZG93
LkRPTUV4Y2VwdGlvbi5JTlZBTElEX01PRElGSUNBVElPTl9FUlIgW251bWJlcl0KK3dpbmRvdy5E
T01FeGNlcHRpb24uSU5WQUxJRF9OT0RFX1RZUEVfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhj
ZXB0aW9uLklOVkFMSURfU1RBVEVfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLk5B
TUVTUEFDRV9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24uTkVUV09SS19FUlIgW251
bWJlcl0KQEAgLTUyOCwxMiArNTMwLDE0IEBAIHdpbmRvdy5ET01FeGNlcHRpb24uTk9fTU9ESUZJ
Q0FUSU9OX0FMTE9XRURfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLlFVT1RBX0VY
Q0VFREVEX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5TRUNVUklUWV9FUlIgW251
bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24uU1lOVEFYX0VSUiBbbnVtYmVyXQord2luZG93LkRP
TUV4Y2VwdGlvbi5USU1FT1VUX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5UWVBF
X01JU01BVENIX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5VUkxfTUlTTUFUQ0hf
RVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLlZBTElEQVRJT05fRVJSIFtudW1iZXJd
CiB3aW5kb3cuRE9NRXhjZXB0aW9uLldST05HX0RPQ1VNRU5UX0VSUiBbbnVtYmVyXQogd2luZG93
LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUgW29iamVjdCBET01FeGNlcHRpb25Qcm90b3R5cGVdCiB3
aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5BQk9SVF9FUlIgW251bWJlcl0KK3dpbmRvdy5E
T01FeGNlcHRpb24ucHJvdG90eXBlLkRBVEFfQ0xPTkVfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9N
RXhjZXB0aW9uLnByb3RvdHlwZS5ET01TVFJJTkdfU0laRV9FUlIgW251bWJlcl0KIHdpbmRvdy5E
T01FeGNlcHRpb24ucHJvdG90eXBlLkhJRVJBUkNIWV9SRVFVRVNUX0VSUiBbbnVtYmVyXQogd2lu
ZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuSU5ERVhfU0laRV9FUlIgW251bWJlcl0KQEAgLTU0
MSw2ICs1NDUsNyBAQCB3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5JTlVTRV9BVFRSSUJV
VEVfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5JTlZBTElEX0FD
Q0VTU19FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlLklOVkFMSURf
Q0hBUkFDVEVSX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuSU5W
QUxJRF9NT0RJRklDQVRJT05fRVJSIFtudW1iZXJdCit3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3Rv
dHlwZS5JTlZBTElEX05PREVfVFlQRV9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24u
cHJvdG90eXBlLklOVkFMSURfU1RBVEVfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9u
LnByb3RvdHlwZS5OQU1FU1BBQ0VfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLnBy
b3RvdHlwZS5ORVRXT1JLX0VSUiBbbnVtYmVyXQpAQCAtNTUxLDYgKzU1Niw3IEBAIHdpbmRvdy5E
T01FeGNlcHRpb24ucHJvdG90eXBlLk5PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUiBbbnVtYmVy
XQogd2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuUVVPVEFfRVhDRUVERURfRVJSIFtudW1i
ZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5TRUNVUklUWV9FUlIgW251bWJlcl0K
IHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlLlNZTlRBWF9FUlIgW251bWJlcl0KK3dpbmRv
dy5ET01FeGNlcHRpb24ucHJvdG90eXBlLlRJTUVPVVRfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9N
RXhjZXB0aW9uLnByb3RvdHlwZS5UWVBFX01JU01BVENIX0VSUiBbbnVtYmVyXQogd2luZG93LkRP
TUV4Y2VwdGlvbi5wcm90b3R5cGUuVVJMX01JU01BVENIX0VSUiBbbnVtYmVyXQogd2luZG93LkRP
TUV4Y2VwdGlvbi5wcm90b3R5cGUuVkFMSURBVElPTl9FUlIgW251bWJlcl0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL3F0LXdrMi9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3Bl
cnRpZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQtd2syL2Zhc3QvZG9t
L1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQKaW5kZXggYzg1Y2YxOS4uY2Ez
OTAyZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQtd2syL2Zhc3QvZG9tL1dp
bmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vcXQtd2syL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50
eHQKQEAgLTUwOSw2ICs1MDksNyBAQCB3aW5kb3cuQ291bnRlciBbb2JqZWN0IENvdW50ZXJDb25z
dHJ1Y3Rvcl0KIHdpbmRvdy5Db3VudGVyLnByb3RvdHlwZSBbb2JqZWN0IENvdW50ZXJQcm90b3R5
cGVdCiB3aW5kb3cuRE9NRXhjZXB0aW9uIFtvYmplY3QgRE9NRXhjZXB0aW9uQ29uc3RydWN0b3Jd
CiB3aW5kb3cuRE9NRXhjZXB0aW9uLkFCT1JUX0VSUiBbbnVtYmVyXQord2luZG93LkRPTUV4Y2Vw
dGlvbi5EQVRBX0NMT05FX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5ET01TVFJJ
TkdfU0laRV9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24uSElFUkFSQ0hZX1JFUVVF
U1RfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLklOREVYX1NJWkVfRVJSIFtudW1i
ZXJdCkBAIC01MTYsNiArNTE3LDcgQEAgd2luZG93LkRPTUV4Y2VwdGlvbi5JTlVTRV9BVFRSSUJV
VEVfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLklOVkFMSURfQUNDRVNTX0VSUiBb
bnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5JTlZBTElEX0NIQVJBQ1RFUl9FUlIgW251bWJl
cl0KIHdpbmRvdy5ET01FeGNlcHRpb24uSU5WQUxJRF9NT0RJRklDQVRJT05fRVJSIFtudW1iZXJd
Cit3aW5kb3cuRE9NRXhjZXB0aW9uLklOVkFMSURfTk9ERV9UWVBFX0VSUiBbbnVtYmVyXQogd2lu
ZG93LkRPTUV4Y2VwdGlvbi5JTlZBTElEX1NUQVRFX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4
Y2VwdGlvbi5OQU1FU1BBQ0VfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLk5FVFdP
UktfRVJSIFtudW1iZXJdCkBAIC01MjYsMTIgKzUyOCwxNCBAQCB3aW5kb3cuRE9NRXhjZXB0aW9u
Lk5PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlv
bi5RVU9UQV9FWENFRURFRF9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24uU0VDVVJJ
VFlfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLlNZTlRBWF9FUlIgW251bWJlcl0K
K3dpbmRvdy5ET01FeGNlcHRpb24uVElNRU9VVF9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNl
cHRpb24uVFlQRV9NSVNNQVRDSF9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24uVVJM
X01JU01BVENIX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5WQUxJREFUSU9OX0VS
UiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5XUk9OR19ET0NVTUVOVF9FUlIgW251bWJl
cl0KIHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlIFtvYmplY3QgRE9NRXhjZXB0aW9uUHJv
dG90eXBlXQogd2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuQUJPUlRfRVJSIFtudW1iZXJd
Cit3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5EQVRBX0NMT05FX0VSUiBbbnVtYmVyXQog
d2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuRE9NU1RSSU5HX1NJWkVfRVJSIFtudW1iZXJd
CiB3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5ISUVSQVJDSFlfUkVRVUVTVF9FUlIgW251
bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlLklOREVYX1NJWkVfRVJSIFtudW1i
ZXJdCkBAIC01MzksNiArNTQzLDcgQEAgd2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuSU5V
U0VfQVRUUklCVVRFX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUu
SU5WQUxJRF9BQ0NFU1NfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlw
ZS5JTlZBTElEX0NIQVJBQ1RFUl9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24ucHJv
dG90eXBlLklOVkFMSURfTU9ESUZJQ0FUSU9OX0VSUiBbbnVtYmVyXQord2luZG93LkRPTUV4Y2Vw
dGlvbi5wcm90b3R5cGUuSU5WQUxJRF9OT0RFX1RZUEVfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9N
RXhjZXB0aW9uLnByb3RvdHlwZS5JTlZBTElEX1NUQVRFX0VSUiBbbnVtYmVyXQogd2luZG93LkRP
TUV4Y2VwdGlvbi5wcm90b3R5cGUuTkFNRVNQQUNFX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4
Y2VwdGlvbi5wcm90b3R5cGUuTkVUV09SS19FUlIgW251bWJlcl0KQEAgLTU0OSw2ICs1NTQsNyBA
QCB3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5OT19NT0RJRklDQVRJT05fQUxMT1dFRF9F
UlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlLlFVT1RBX0VYQ0VFREVE
X0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuU0VDVVJJVFlfRVJS
IFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5TWU5UQVhfRVJSIFtudW1i
ZXJdCit3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5USU1FT1VUX0VSUiBbbnVtYmVyXQog
d2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuVFlQRV9NSVNNQVRDSF9FUlIgW251bWJlcl0K
IHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlLlVSTF9NSVNNQVRDSF9FUlIgW251bWJlcl0K
IHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlLlZBTElEQVRJT05fRVJSIFtudW1iZXJdCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9mYXN0L2RvbS9XaW5kb3cvd2luZG93
LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvZmFzdC9k
b20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dAppbmRleCA1NGMxMDc5Li5i
YWQyMzA1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9mYXN0L2RvbS9XaW5k
b3cvd2luZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL3F0L2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQKQEAg
LTUwOSw2ICs1MDksNyBAQCB3aW5kb3cuQ291bnRlciBbb2JqZWN0IENvdW50ZXJDb25zdHJ1Y3Rv
cl0KIHdpbmRvdy5Db3VudGVyLnByb3RvdHlwZSBbb2JqZWN0IENvdW50ZXJQcm90b3R5cGVdCiB3
aW5kb3cuRE9NRXhjZXB0aW9uIFtvYmplY3QgRE9NRXhjZXB0aW9uQ29uc3RydWN0b3JdCiB3aW5k
b3cuRE9NRXhjZXB0aW9uLkFCT1JUX0VSUiBbbnVtYmVyXQord2luZG93LkRPTUV4Y2VwdGlvbi5E
QVRBX0NMT05FX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5ET01TVFJJTkdfU0la
RV9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24uSElFUkFSQ0hZX1JFUVVFU1RfRVJS
IFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLklOREVYX1NJWkVfRVJSIFtudW1iZXJdCkBA
IC01MTYsNiArNTE3LDcgQEAgd2luZG93LkRPTUV4Y2VwdGlvbi5JTlVTRV9BVFRSSUJVVEVfRVJS
IFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLklOVkFMSURfQUNDRVNTX0VSUiBbbnVtYmVy
XQogd2luZG93LkRPTUV4Y2VwdGlvbi5JTlZBTElEX0NIQVJBQ1RFUl9FUlIgW251bWJlcl0KIHdp
bmRvdy5ET01FeGNlcHRpb24uSU5WQUxJRF9NT0RJRklDQVRJT05fRVJSIFtudW1iZXJdCit3aW5k
b3cuRE9NRXhjZXB0aW9uLklOVkFMSURfTk9ERV9UWVBFX0VSUiBbbnVtYmVyXQogd2luZG93LkRP
TUV4Y2VwdGlvbi5JTlZBTElEX1NUQVRFX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlv
bi5OQU1FU1BBQ0VfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLk5FVFdPUktfRVJS
IFtudW1iZXJdCkBAIC01MjYsMTIgKzUyOCwxNCBAQCB3aW5kb3cuRE9NRXhjZXB0aW9uLk5PX01P
RElGSUNBVElPTl9BTExPV0VEX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5RVU9U
QV9FWENFRURFRF9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24uU0VDVVJJVFlfRVJS
IFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLlNZTlRBWF9FUlIgW251bWJlcl0KK3dpbmRv
dy5ET01FeGNlcHRpb24uVElNRU9VVF9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24u
VFlQRV9NSVNNQVRDSF9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24uVVJMX01JU01B
VENIX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5WQUxJREFUSU9OX0VSUiBbbnVt
YmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5XUk9OR19ET0NVTUVOVF9FUlIgW251bWJlcl0KIHdp
bmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlIFtvYmplY3QgRE9NRXhjZXB0aW9uUHJvdG90eXBl
XQogd2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuQUJPUlRfRVJSIFtudW1iZXJdCit3aW5k
b3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5EQVRBX0NMT05FX0VSUiBbbnVtYmVyXQogd2luZG93
LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuRE9NU1RSSU5HX1NJWkVfRVJSIFtudW1iZXJdCiB3aW5k
b3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5ISUVSQVJDSFlfUkVRVUVTVF9FUlIgW251bWJlcl0K
IHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlLklOREVYX1NJWkVfRVJSIFtudW1iZXJdCkBA
IC01MzksNiArNTQzLDcgQEAgd2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuSU5VU0VfQVRU
UklCVVRFX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuSU5WQUxJ
RF9BQ0NFU1NfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5JTlZB
TElEX0NIQVJBQ1RFUl9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBl
LklOVkFMSURfTU9ESUZJQ0FUSU9OX0VSUiBbbnVtYmVyXQord2luZG93LkRPTUV4Y2VwdGlvbi5w
cm90b3R5cGUuSU5WQUxJRF9OT0RFX1RZUEVfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0
aW9uLnByb3RvdHlwZS5JTlZBTElEX1NUQVRFX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2Vw
dGlvbi5wcm90b3R5cGUuTkFNRVNQQUNFX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlv
bi5wcm90b3R5cGUuTkVUV09SS19FUlIgW251bWJlcl0KQEAgLTU0OSw2ICs1NTQsNyBAQCB3aW5k
b3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5OT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlIgW251
bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlLlFVT1RBX0VYQ0VFREVEX0VSUiBb
bnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuU0VDVVJJVFlfRVJSIFtudW1i
ZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5TWU5UQVhfRVJSIFtudW1iZXJdCit3
aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5USU1FT1VUX0VSUiBbbnVtYmVyXQogd2luZG93
LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuVFlQRV9NSVNNQVRDSF9FUlIgW251bWJlcl0KIHdpbmRv
dy5ET01FeGNlcHRpb24ucHJvdG90eXBlLlVSTF9NSVNNQVRDSF9FUlIgW251bWJlcl0KIHdpbmRv
dy5ET01FeGNlcHRpb24ucHJvdG90eXBlLlZBTElEQVRJT05fRVJSIFtudW1iZXJdCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9vYmplY3RzdG9yZS1iYXNpY3MtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0c3RvcmUtYmFz
aWNzLWV4cGVjdGVkLnR4dAppbmRleCAyMzk0NzQwLi43YTM0YTFiIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9vYmplY3RzdG9yZS1iYXNpY3MtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0b3JlLWJhc2ljcy1l
eHBlY3RlZC50eHQKQEAgLTU2LDcgKzU2LDcgQEAgc3RvcmUuYWRkKHt4OiAnZm9vJ30sIHRlc3RE
YXRlKQogVHJ5IHRvIGluc2VydCBhIHZhbHVlIG5vdCBoYW5kbGVkIGJ5IHN0cnVjdHVyZWQgY2xv
bmU6CiBzdG9yZS5hZGQoe3g6ICdiYXInLCB5OiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29u
c29sZScpfSwgJ2JhcicpCiBQQVNTIEV4Y2VwdGlvbiB0aHJvd24KLVBBU1MgY29kZSBpcyBET01F
eGNlcHRpb24uTk9UX1NVUFBPUlRFRF9FUlIKK1BBU1MgY29kZSBpcyBET01FeGNlcHRpb24uREFU
QV9DTE9ORV9FUlIKIFRyeSB0byBpbnNlcnQgZGF0YSB3aGVyZSBrZXkgcGF0aCB5aWVsZHMgYSBE
YXRlIGtleToKIHN0b3JlLmFkZCh7eDogdGVzdERhdGVCLCB5OiAndmFsdWUnfSwgJ2tleScpCiBh
ZGRTdWNjZXNzKCk6CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9v
YmplY3RzdG9yZS1iYXNpY3MuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29i
amVjdHN0b3JlLWJhc2ljcy5odG1sCmluZGV4IGIyZTczZWUuLmI3Njk1ODUgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0b3JlLWJhc2ljcy5odG1sCisr
KyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0b3JlLWJhc2ljcy5odG1s
CkBAIC0xNTQsNyArMTU0LDcgQEAgZnVuY3Rpb24gYWRkRGF0ZVN1Y2Nlc3MoKQogICAgIH0gY2F0
Y2ggKGVycikgewogICAgICAgICB0ZXN0UGFzc2VkKCJFeGNlcHRpb24gdGhyb3duIik7CiAgICAg
ICAgIGNvZGUgPSBlcnIuY29kZTsKLSAgICAgICAgc2hvdWxkQmUoImNvZGUiLCAiRE9NRXhjZXB0
aW9uLk5PVF9TVVBQT1JURURfRVJSIik7CisgICAgICAgIHNob3VsZEJlKCJjb2RlIiwgIkRPTUV4
Y2VwdGlvbi5EQVRBX0NMT05FX0VSUiIpOwogICAgIH0KIAogICAgIGRlYnVnKCJUcnkgdG8gaW5z
ZXJ0IGRhdGEgd2hlcmUga2V5IHBhdGggeWllbGRzIGEgRGF0ZSBrZXk6Iik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5k
ZXggMTFjMTg5Ni4uZTdhOTk4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg4IEBACisyMDExLTA3
LTA2ICBMdWtlIFphcmtvICA8bHVrZXphcmtvQGdtYWlsLmNvbT4KKworICAgICAgICBUaGUgSFRN
TDUgU3RydWN0dXJlZCBDbG9uZSBhbGdvcml0aG0gKGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVj
cy93ZWItYXBwcy9jdXJyZW50LXdvcmsvbXVsdGlwYWdlL3VybHMuaHRtbCNzYWZlLXBhc3Npbmct
b2Ytc3RydWN0dXJlZC1kYXRhKSBoYXMgYmVlbiB1cGRhdGVkIHNpbmNlIHRoZSBWOCB2ZXJzaW9u
IG9mIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSB3YXMgZmlyc3QgaW1wbGVtZW50ZWQuIFRoaXMgcGF0
Y2ggYWltcyB0byBicmluZyB0aGlzIGltcGxlbWVudGF0aW9uIHVwIHRvIGRhdGUuIEl0OgorCisg
ICAgICAgIC0gSW50cm9kdWNlcyB0aGUgbmV3IEhUTUw1IERPTSBlcnJvciBjb2RlcyBmb3IgVElN
RU9VVF9FUlIsIElOVkFMSURfTk9ERV9UWVBFX0VSUiwgREFUQV9DTE9ORV9FUlIKKyAgICAgICAg
LSBIYW5kbGVzIGN5Y2xpYyBzdHJ1Y3R1cmVzIGFuZCBlcXVhbGl0eSBvZiByZWZlcmVuY2UgcHJl
c2VydmF0aW9uIGZvciBjbG9uZWQgdmFsdWVzCisgICAgICAgIC0gQWxsb3dzIERhdGFWaWV3cyB0
byBiZSBjb25zdHJ1Y3RlZCBvbiB0aGUgbmF0aXZlIHNpZGUgdXNpbmcgdGhlIGV4aXN0aW5nIHdy
YXBwZXIgdGVjaG5pcXVlcworICAgICAgICAtIEFtZW5kcyB0ZXN0cyBhbmQgaW50cm9kdWNlcyBu
ZXcgb25lcyB0byBjaGVjayBmb3IgY29ycmVjdG5lc3MgKHRoZSBidWxrIG9mIHRoZSBwYXRjaCkK
KworICAgICAgICBUaGUgcGF0Y2ggcGVybWl0cyB0aGUgY2xvbmluZyBvZiBKYXZhU2NyaXB0IHR5
cGVkIGFycmF5cy4gVGhpcyBmdW5jdGlvbmFsaXR5IGlzIGluIGFjdGl2ZSB1c2UgYWxyZWFkeSBh
bmQgd2FzIHN1cHBvcnRlZCAoc29tZXdoYXQgaW5lZmZpY2llbnRseSkgYnkgdGhlIGV4aXN0aW5n
IGNvZGUgdGhyb3VnaCBhbiBhcnRpZmFjdCBvZiBpbXBsZW1lbnRhdGlvbi4KKyAgICAgICAgCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MzQ4MQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3RzOiBmYXN0
L2RvbS9XaW5kb3cvd2luZG93LXBvc3RtZXNzYWdlLWNsb25lLWRlZXAtYXJyYXkuaHRtbAorICAg
ICAgICAgICAgICAgZmFzdC9kb20vV2luZG93L3dpbmRvdy1wb3N0bWVzc2FnZS1jbG9uZS1yZWFs
bHktZGVlcC1hcnJheS5odG1sCisgICAgICAgICAgICAgICBmYXN0L2RvbS9XaW5kb3cvd2luZG93
LXBvc3RtZXNzYWdlLWNsb25lLmh0bWwKKyAgICAgICAgICAgICAgIHBsYXRmb3JtL2Nocm9taXVt
L2Zhc3QvY2FudmFzL3dlYmdsL2FycmF5LW1lc3NhZ2UtcGFzc2luZy5odG1sCisKKyAgICAgICAg
KiBiaW5kaW5ncy92OC9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6VjhPYmplY3RNYXA6OlY4SGFuZGxlUHRySGFzaDo6Y29udGFpbnMpOgorICAgICAgICAoV2Vi
Q29yZTo6VjhPYmplY3RNYXA6OlY4SGFuZGxlUHRySGFzaDo6dHJ5R2V0KToKKyAgICAgICAgKFdl
YkNvcmU6OlY4T2JqZWN0TWFwOjpWOEhhbmRsZVB0ckhhc2g6OnNldCk6CisgICAgICAgIChXZWJD
b3JlOjpWOE9iamVjdE1hcDo6VjhIYW5kbGVQdHJIYXNoOjpzaXplKToKKyAgICAgICAgKFdlYkNv
cmU6OlY4T2JqZWN0TWFwOjpXcml0ZXI6OndyaXRlVmVyc2lvbik6CisgICAgICAgIChXZWJDb3Jl
OjpWOE9iamVjdE1hcDo6V3JpdGVyOjp3cml0ZUFycmF5QnVmZmVyKToKKyAgICAgICAgKFdlYkNv
cmU6OlY4T2JqZWN0TWFwOjpXcml0ZXI6OndyaXRlQXJyYXlCdWZmZXJWaWV3KToKKyAgICAgICAg
KFdlYkNvcmU6OlY4T2JqZWN0TWFwOjpXcml0ZXI6OndyaXRlT2JqZWN0T2Zmc2V0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlY4T2JqZWN0TWFwOjpXcml0ZXI6OndyaXRlQ2hlY2tSZWYpOgorICAgICAg
ICAoV2ViQ29yZTo6VjhPYmplY3RNYXA6OldyaXRlcjo6d3JpdGVHZW5lcmF0ZUZyZXNoT2JqZWN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlY4T2JqZWN0TWFwOjpXcml0ZXI6OndyaXRlR2VuZXJhdGVG
cmVzaEFycmF5KToKKyAgICAgICAgKFdlYkNvcmU6OlY4T2JqZWN0TWFwOjpXcml0ZXI6OmRvV3Jp
dGVBcnJheUJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpWOE9iamVjdE1hcDo6U2VyaWFsaXpl
cjo6U2VyaWFsaXplcik6CisgICAgICAgIChXZWJDb3JlOjpWOE9iamVjdE1hcDo6U2VyaWFsaXpl
cjo6c2VyaWFsaXplKToKKyAgICAgICAgKFdlYkNvcmU6OlY4T2JqZWN0TWFwOjpTZXJpYWxpemVy
OjpTdGF0ZUJhc2U6OmV4ZWNEZXB0aCk6CisgICAgICAgIChXZWJDb3JlOjpWOE9iamVjdE1hcDo6
U2VyaWFsaXplcjo6QWJzdHJhY3RPYmplY3RTdGF0ZTo6QWJzdHJhY3RPYmplY3RTdGF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpWOE9iamVjdE1hcDo6U2VyaWFsaXplcjo6QWJzdHJhY3RPYmplY3RT
dGF0ZTo6YWR2YW5jZSk6CisgICAgICAgIChXZWJDb3JlOjpWOE9iamVjdE1hcDo6U2VyaWFsaXpl
cjo6QWJzdHJhY3RPYmplY3RTdGF0ZTo6ZXhlY0RlcHRoKToKKyAgICAgICAgKFdlYkNvcmU6OlY4
T2JqZWN0TWFwOjpTZXJpYWxpemVyOjpleGVjRGVwdGgpOgorICAgICAgICAoV2ViQ29yZTo6VjhP
YmplY3RNYXA6OlNlcmlhbGl6ZXI6OnB1c2gpOgorICAgICAgICAoV2ViQ29yZTo6VjhPYmplY3RN
YXA6OlNlcmlhbGl6ZXI6OnBvcCk6CisgICAgICAgIChXZWJDb3JlOjpWOE9iamVjdE1hcDo6U2Vy
aWFsaXplcjo6aGFuZGxlRXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6VjhPYmplY3RNYXA6OlNl
cmlhbGl6ZXI6OndyaXRlTnVsbCk6CisgICAgICAgIChXZWJDb3JlOjpWOE9iamVjdE1hcDo6U2Vy
aWFsaXplcjo6d3JpdGVBbmRHcmV5QXJyYXlCdWZmZXJWaWV3KToKKyAgICAgICAgKFdlYkNvcmU6
OlY4T2JqZWN0TWFwOjpTZXJpYWxpemVyOjp3cml0ZUFycmF5QnVmZmVyKToKKyAgICAgICAgKFdl
YkNvcmU6OlY4T2JqZWN0TWFwOjpTZXJpYWxpemVyOjpncmV5T2JqZWN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlY4T2JqZWN0TWFwOjpTZXJpYWxpemVyOjpkb1NlcmlhbGl6ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpWOE9iamVjdE1hcDo6UmVhZGVyOjpSZWFkZXIpOgorICAgICAgICAoV2ViQ29yZTo6
VjhPYmplY3RNYXA6OlJlYWRlcjo6cmVhZCk6CisgICAgICAgIChXZWJDb3JlOjpWOE9iamVjdE1h
cDo6UmVhZGVyOjpyZWFkVmVyc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpWOE9iamVjdE1hcDo6
UmVhZGVyOjpzZXRWZXJzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlY4T2JqZWN0TWFwOjpSZWFk
ZXI6OnJlYWRTdWJUYWcpOgorICAgICAgICAoV2ViQ29yZTo6VjhPYmplY3RNYXA6OlJlYWRlcjo6
ZG9SZWFkQXJyYXlCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6VjhPYmplY3RNYXA6OlJlYWRl
cjo6cmVhZEFycmF5QnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlY4T2JqZWN0TWFwOjpSZWFk
ZXI6OnJlYWRBcnJheUJ1ZmZlclZpZXcpOgorICAgICAgICAoV2ViQ29yZTo6VjhPYmplY3RNYXA6
OkRlc2VyaWFsaXplcjo6RGVzZXJpYWxpemVyKToKKyAgICAgICAgKFdlYkNvcmU6OlY4T2JqZWN0
TWFwOjpEZXNlcmlhbGl6ZXI6OmRlc2VyaWFsaXplKToKKyAgICAgICAgKFdlYkNvcmU6OlY4T2Jq
ZWN0TWFwOjpEZXNlcmlhbGl6ZXI6OnN0YXJ0QXJyYXkpOgorICAgICAgICAoV2ViQ29yZTo6VjhP
YmplY3RNYXA6OkRlc2VyaWFsaXplcjo6Y29uc3VtZVRvcE9mU3RhY2spOgorICAgICAgICAoV2Vi
Q29yZTo6VjhPYmplY3RNYXA6OkRlc2VyaWFsaXplcjo6ZmluaXNoQXJyYXkpOgorICAgICAgICAo
V2ViQ29yZTo6VjhPYmplY3RNYXA6OkRlc2VyaWFsaXplcjo6c3RhcnRPYmplY3QpOgorICAgICAg
ICAoV2ViQ29yZTo6VjhPYmplY3RNYXA6OkRlc2VyaWFsaXplcjo6ZmluaXNoT2JqZWN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OlY4T2JqZWN0TWFwOjpEZXNlcmlhbGl6ZXI6OmZpbmlzaFNwYXJzZUFy
cmF5KToKKyAgICAgICAgKFdlYkNvcmU6OlY4T2JqZWN0TWFwOjpEZXNlcmlhbGl6ZXI6OnB1c2hP
YmplY3RSZWZlcmVuY2UpOgorICAgICAgICAoV2ViQ29yZTo6VjhPYmplY3RNYXA6OkRlc2VyaWFs
aXplcjo6Z2V0T2JqZWN0UmVmZXJlbmNlKToKKyAgICAgICAgKFdlYkNvcmU6OlY4T2JqZWN0TWFw
OjpEZXNlcmlhbGl6ZXI6Om9iamVjdFJlZmVyZW5jZUNvdW50KToKKyAgICAgICAgKFdlYkNvcmU6
OlY4T2JqZWN0TWFwOjpEZXNlcmlhbGl6ZXI6Om9wZW5OZXdDb21wb3NpdGUpOgorICAgICAgICAo
V2ViQ29yZTo6VjhPYmplY3RNYXA6OkRlc2VyaWFsaXplcjo6Y2xvc2VDb21wb3NpdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlOjpTZXJpYWxpemVkU2NyaXB0VmFs
dWUpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4QmluZGluZy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjppc0hvc3RPYmplY3QpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4QmluZGluZy5oOgor
ICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOERhdGFWaWV3Q3VzdG9tLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlY4RGF0YVZpZXc6OmNvbnN0cnVjdG9yQ2FsbGJhY2spOgorICAgICAgICAq
IGRvbS9ET01Db3JlRXhjZXB0aW9uLmlkbDoKKyAgICAgICAgKiBkb20vRXhjZXB0aW9uQ29kZS5j
cHA6CisgICAgICAgICogZG9tL0V4Y2VwdGlvbkNvZGUuaDoKKyAgICAgICAgKiBodG1sL2NhbnZh
cy9BcnJheUJ1ZmZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBcnJheUJ1ZmZlcjo6Y3JlYXRl
KToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9BcnJheUJ1ZmZlci5oOgorICAgICAgICAqIGh0bWwv
Y2FudmFzL0RhdGFWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFWaWV3OjpjcmVhdGUp
OgorICAgICAgICAqIGh0bWwvY2FudmFzL0RhdGFWaWV3Lmg6CisKIDIwMTEtMDctMDYgIEpvaG4g
U3VsbGl2YW4gIDxzdWxsaXZhbkBhcHBsZS5jb20+CiAKICAgICAgICAgSWNvbkRhdGFiYXNlOjpz
eW5jaHJvbm91c0ljb25Gb3JQYWdlVVJMKCkgaGFzIGluY29uc2lzdGVudCBBUEkgd2hlbiBubyBj
dXN0b20gaWNvbiBpcyBhdmFpbGFibGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCmluZGV4IGNiNDRmMDIuLmQwNmM4N2UgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NlcmlhbGl6ZWRTY3JpcHRWYWx1
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2VyaWFsaXplZFNjcmlwdFZh
bHVlLmNwcApAQCAtMzEsMjAgKzMxLDQyIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVk
ZSAiU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCiAKKyNpbmNsdWRlICJBcnJheUJ1ZmZlci5oIgor
I2luY2x1ZGUgIkFycmF5QnVmZmVyVmlldy5oIgogI2luY2x1ZGUgIkJsb2IuaCIKICNpbmNsdWRl
ICJCeXRlQXJyYXkuaCIKICNpbmNsdWRlICJDYW52YXNQaXhlbEFycmF5LmgiCisjaW5jbHVkZSAi
RGF0YVZpZXcuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCiAjaW5jbHVkZSAiRmlsZS5o
IgogI2luY2x1ZGUgIkZpbGVMaXN0LmgiCisjaW5jbHVkZSAiRmxvYXQzMkFycmF5LmgiCisjaW5j
bHVkZSAiRmxvYXQ2NEFycmF5LmgiCiAjaW5jbHVkZSAiSW1hZ2VEYXRhLmgiCisjaW5jbHVkZSAi
SW50MTZBcnJheS5oIgorI2luY2x1ZGUgIkludDMyQXJyYXkuaCIKKyNpbmNsdWRlICJJbnQ4QXJy
YXkuaCIKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKKyNpbmNsdWRlICJVaW50MTZBcnJheS5o
IgorI2luY2x1ZGUgIlVpbnQzMkFycmF5LmgiCisjaW5jbHVkZSAiVWludDhBcnJheS5oIgorI2lu
Y2x1ZGUgIlY4QXJyYXlCdWZmZXIuaCIKKyNpbmNsdWRlICJWOEFycmF5QnVmZmVyVmlldy5oIgog
I2luY2x1ZGUgIlY4QmluZGluZy5oIgogI2luY2x1ZGUgIlY4QmxvYi5oIgorI2luY2x1ZGUgIlY4
RGF0YVZpZXcuaCIKICNpbmNsdWRlICJWOEZpbGUuaCIKICNpbmNsdWRlICJWOEZpbGVMaXN0Lmgi
CisjaW5jbHVkZSAiVjhGbG9hdDMyQXJyYXkuaCIKKyNpbmNsdWRlICJWOEZsb2F0NjRBcnJheS5o
IgogI2luY2x1ZGUgIlY4SW1hZ2VEYXRhLmgiCisjaW5jbHVkZSAiVjhJbnQxNkFycmF5LmgiCisj
aW5jbHVkZSAiVjhJbnQzMkFycmF5LmgiCisjaW5jbHVkZSAiVjhJbnQ4QXJyYXkuaCIKICNpbmNs
dWRlICJWOFByb3h5LmgiCisjaW5jbHVkZSAiVjhVaW50MTZBcnJheS5oIgorI2luY2x1ZGUgIlY4
VWludDMyQXJyYXkuaCIKKyNpbmNsdWRlICJWOFVpbnQ4QXJyYXkuaCIKICNpbmNsdWRlICJWOFV0
aWxpdGllcy5oIgogCiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KQEAgLTUyLDM1ICs3NCwx
NDAgQEAKICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIC8vIEZJWE1FOiBjb25zaWRlciBjcmFz
aGluZyBpbiBkZWJ1ZyBtb2RlIG9uIGRlc2VyaWFsaXphdGlvbiBlcnJvcnMKKy8vIE5PVEU6IGJl
IHN1cmUgdG8gY2hhbmdlIHdpcmVGb3JtYXRWZXJzaW9uIGFzIG5lY2Vzc2FyeSEKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBuYW1lc3BhY2UgewogCisvLyBUaGlzIGNvZGUgaW1wbGVtZW50cyB0
aGUgSFRNTDUgU3RydWN0dXJlZCBDbG9uZSBhbGdvcml0aG06CisvLyBodHRwOi8vd3d3LndoYXR3
Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3JrL211bHRpcGFnZS91cmxzLmh0bWwjc2Fm
ZS1wYXNzaW5nLW9mLXN0cnVjdHVyZWQtZGF0YQorCisvLyBWOE9iamVjdE1hcCBpcyBhIG1hcCBm
cm9tIFY4IG9iamVjdHMgdG8gYXJiaXRyYXJ5IHZhbHVlcyBvZiB0eXBlIFQuCisvLyBWOCBvYmpl
Y3RzIChvciBoYW5kbGVzIHRvIFY4IG9iamVjdHMpIGNhbm5vdCBiZSB1c2VkIGFzIGtleXMgaW4g
b3JkaW5hcnkgd3RmOjpIYXNoTWFwczsKKy8vIHRoaXMgY2xhc3Mgc2hvdWxkIGJlIHVzZWQgaW5z
dGVhZC4gR2NPYmplY3QgbXVzdCBiZSBhIHN1YnR5cGUgb2Ygdjg6Ok9iamVjdC4KKy8vIFN1Z2dl
c3RlZCB1c2FnZToKKy8vICAgICBWOE9iamVjdE1hcDx2ODo6T2JqZWN0LCBpbnQ+IG1hcDsKKy8v
ICAgICB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IG9iaiA9IC4uLjsKKy8vICAgICBtYXAuc2V0KG9i
aiwgNDIpOwordGVtcGxhdGU8dHlwZW5hbWUgR2NPYmplY3QsIHR5cGVuYW1lIFQ+CitjbGFzcyBW
OE9iamVjdE1hcCB7Citwcml2YXRlOgorICAgIC8vIFRoaXMgaW1wbGVtZW50YXRpb24gdXNlcyBH
ZXRJZGVudGl0eUhhc2goKSwgd2hpY2ggc2V0cyBhIGhpZGRlbiBwcm9wZXJ0eSBvbiB0aGUgb2Jq
ZWN0IGNvbnRhaW5pbmcKKyAgICAvLyBhIHJhbmRvbSBpbnRlZ2VyIChvciByZXR1cm5zIHRoZSBv
bmUgdGhhdCBoYWQgYmVlbiBwcmV2aW91c2x5IHNldCkuIFRoaXMgZW5zdXJlcyB0aGF0IHRoZSB0
YWJsZQorICAgIC8vIG5ldmVyIG5lZWRzIHRvIGJlIHJlYnVpbHQgYWNyb3NzIGdhcmJhZ2UgY29s
bGVjdGlvbnMgYXQgdGhlIGV4cGVuc2Ugb2YgZG9pbmcgYWRkaXRpb25hbCBhbGxvY2F0aW9uCisg
ICAgLy8gYW5kIG1ha2luZyBtb3JlIHJvdW5kIHRyaXBzIGludG8gVjguIE5vdGUgdGhhdCBzaW5j
ZSBHZXRJZGVudGl0eUhhc2goKSBpcyBkZWZpbmVkIG9ubHkgb24KKyAgICAvLyB2ODo6T2JqZWN0
cywgdGhpcyBWOEdjSGFuZGxlTWFwIGNhbm5vdCBiZSB1c2VkIHRvIG1hcCB2ODo6U3RyaW5ncyB0
byBUIChiZWNhdXNlIHRoZSBwdWJsaWMgVjggQVBJCisgICAgLy8gY29uc2lkZXJzIGEgdjg6OlN0
cmluZyB0byBiZSBhIHY4OjpQcmltaXRpdmUpLgorCisgICAgLy8gSWYgVjggZXhwb3NlcyBhIHdh
eSB0byBnZXQgYXQgdGhlIGFkZHJlc3Mgb2YgdGhlIG9iamVjdCBoZWxkIGJ5IGEgaGFuZGxlLCB0
aGVuIHdlIGNhbiBwcm9kdWNlCisgICAgLy8gYW4gYWx0ZXJuYXRlIGltcGxlbWVudGF0aW9uIHRo
YXQgZG9lcyBub3QgbmVlZCB0byBkbyBhbnkgVjgtc2lkZSBhbGxvY2F0aW9uOyBob3dldmVyLCBp
dCB3aWxsCisgICAgLy8gbmVlZCB0byByZWhhc2ggYWZ0ZXIgZXZlcnkgZ2FyYmFnZSBjb2xsZWN0
aW9uIGJlY2F1c2UgYSBrZXkgb2JqZWN0IG1heSBoYXZlIGJlZW4gbW92ZWQuCisgICAgdGVtcGxh
dGU8dHlwZW5hbWUgRz4KKyAgICBzdHJ1Y3QgVjhIYW5kbGVQdHJIYXNoIHsKKyAgICAgICAgc3Rh
dGljIHVuc2lnbmVkIGhhc2goY29uc3QgRyoga2V5KQorICAgICAgICB7CisgICAgICAgICAgICB2
ODo6SGFuZGxlPEc+IG9iakhhbmRsZShjb25zdF9jYXN0PEcqPihrZXkpKTsKKyAgICAgICAgICAg
IHJldHVybiBzdGF0aWNfY2FzdDx1bnNpZ25lZD4ob2JqSGFuZGxlLT5HZXRJZGVudGl0eUhhc2go
KSk7CisgICAgICAgIH0KKyAgICAgICAgc3RhdGljIGJvb2wgZXF1YWwoY29uc3QgRyogYSwgY29u
c3QgRyogYikKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIHY4OjpIYW5kbGU8Rz4oY29u
c3RfY2FzdDxHKj4oYSkpID09IHY4OjpIYW5kbGU8Rz4oY29uc3RfY2FzdDxHKj4oYikpOworICAg
ICAgICB9CisgICAgICAgIC8vIEZvciBIYXNoQXJnLgorICAgICAgICBzdGF0aWMgY29uc3QgYm9v
bCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IGZhbHNlOworICAgIH07CisKKyAgICB0
eXBlZGVmIFdURjo6SGFzaE1hcDxHY09iamVjdCosIFQsIFY4SGFuZGxlUHRySGFzaDxHY09iamVj
dD4gPiBIYW5kbGVUb1Q7CisgICAgSGFuZGxlVG9UIG1fbWFwOworCitwdWJsaWM6CisgICAgYm9v
bCBjb250YWlucyhjb25zdCB2ODo6SGFuZGxlPEdjT2JqZWN0PiYgaGFuZGxlKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIG1fbWFwLmNvbnRhaW5zKCpoYW5kbGUpOworICAgIH0KKworICAgIGJvb2wg
dHJ5R2V0KGNvbnN0IHY4OjpIYW5kbGU8R2NPYmplY3Q+JiBoYW5kbGUsIFQqIHZhbHVlT3V0KQor
ICAgIHsKKyAgICAgICAgdHlwZW5hbWUgSGFuZGxlVG9UOjppdGVyYXRvciByZXN1bHQgPSBtX21h
cC5maW5kKCpoYW5kbGUpOworICAgICAgICBpZiAocmVzdWx0ICE9IG1fbWFwLmVuZCgpKSB7Cisg
ICAgICAgICAgICAqdmFsdWVPdXQgPSByZXN1bHQtPnNlY29uZDsKKyAgICAgICAgICAgIHJldHVy
biB0cnVlOworICAgICAgICB9CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICB2
b2lkIHNldChjb25zdCB2ODo6SGFuZGxlPEdjT2JqZWN0PiYgaGFuZGxlLCBjb25zdCBUJiB2YWx1
ZSkKKyAgICB7CisgICAgICAgIG1fbWFwLnNldCgqaGFuZGxlLCB2YWx1ZSk7CisgICAgfQorCisg
ICAgdWludDMyX3Qgc2l6ZSgpCisgICAgeworICAgICAgICByZXR1cm4gbV9tYXAuc2l6ZSgpOwor
ICAgIH0KK307CisKIHR5cGVkZWYgVUNoYXIgQnVmZmVyVmFsdWVUeXBlOwogCi0vLyBTZXJpYWxp
emF0aW9uIGZvcm1hdCBpcyBhIHNlcXVlbmNlIG9mICh0YWcsIG9wdGlvbmFsIGRhdGEpCi0vLyBw
YWlycy4gVGFnIGFsd2F5cyB0YWtlcyBleGFjdGx5IG9uZSBieXRlLgorLy8gU2VyaWFsaXphdGlv
biBmb3JtYXQgaXMgYSBzZXF1ZW5jZSBvZiB0YWdzIGZvbGxvd2VkIGJ5IHplcm8gb3IgbW9yZSBk
YXRhIGFyZ3VtZW50cy4KKy8vIFRhZ3MgYWx3YXlzIHRha2UgZXhhY3RseSBvbmUgYnl0ZS4gQSBz
ZXJpYWxpemVkIHN0cmVhbSBmaXJzdCBiZWdpbnMgd2l0aAorLy8gYSBjb21wbGV0ZSBWZXJzaW9u
VGFnLiBJZiB0aGUgc3RyZWFtIGRvZXMgbm90IGJlZ2luIHdpdGggYSBWZXJzaW9uVGFnLCB3ZSBh
c3N1bWUgdGhhdAorLy8gdGhlIHN0cmVhbSBpcyBpbiBmb3JtYXQgMC4KKworLy8gVGhpcyBmb3Jt
YXQgaXMgcHJpdmF0ZSB0byB0aGUgaW1wbGVtZW50YXRpb24gb2YgU2VyaWFsaXplZFNjcmlwdFZh
bHVlLiBEbyBub3QgcmVseSBvbiBpdAorLy8gZXh0ZXJuYWxseS4KKworLy8gV2ViQ29yZVN0cmlu
Z3MgYXJlIHJlYWQgYXMgKGxlbmd0aDp1aW50MzJfdCwgc3RyaW5nOlVURjhbbGVuZ3RoXSkuCisv
LyBSYXdTdHJpbmdzIGFyZSByZWFkIGFzIChsZW5ndGg6dWludDMyX3QsIHN0cmluZzpVVEY4W2xl
bmd0aF0pLgorLy8gUmF3RmlsZXMgYXJlIHJlYWQgYXMgKHBhdGg6V2ViQ29yZVN0cmluZywgdXJs
OldlYkNvcmVTdHJuZywgdHlwZTpXZWJDb3JlU3RyaW5nKS4KKy8vIFRoZXJlIGlzIGEgcmVmIHRh
YmxlIHRoYXQgbWFwcyB1aW50MzJfdHMgdG8gdjg6OlZhbHVlcy4KKy8vIFRva2VucyBtYXJrZWQg
d2l0aCAocmVmKSBhcmUgaW5zZXJ0ZWQgaW50byB0aGUgcmVmIHRhYmxlIGFuZCBnaXZlbiB0aGUg
bmV4dCBvYmplY3QgSUQgYWZ0ZXIgZGVjb2RpbmcuCisvLyBBbGwgdGFncyBleGNlcHQgSW52YWxp
ZFRhZywgUGFkZGluZ1RhZywgQ2hlY2tSZWZUYWcsIFZlcnNpb25UYWcsIEdlbmVyYXRlRnJlc2hP
YmplY3RUYWcKKy8vICAgICBhbmQgR2VuZXJhdGVGcmVzaEFycmF5VGFnIHB1c2ggdGhlaXIgcmVz
dWx0cyB0byB0aGUgZGVzZXJpYWxpemF0aW9uIHN0YWNrLgorLy8gVGhlcmUgaXMgYWxzbyBhbiAn
b3Blbicgc3RhY2sgdGhhdCBpcyB1c2VkIHRvIHJlc29sdmUgY2lyY3VsYXIgcmVmZXJlbmNlcy4K
IGVudW0gU2VyaWFsaXphdGlvblRhZyB7Ci0gICAgSW52YWxpZFRhZyA9ICchJywKLSAgICBQYWRk
aW5nVGFnID0gJ1wwJywKLSAgICBVbmRlZmluZWRUYWcgPSAnXycsCi0gICAgTnVsbFRhZyA9ICcw
JywKLSAgICBUcnVlVGFnID0gJ1QnLAotICAgIEZhbHNlVGFnID0gJ0YnLAotICAgIFN0cmluZ1Rh
ZyA9ICdTJywKLSAgICBJbnQzMlRhZyA9ICdJJywKLSAgICBVaW50MzJUYWcgPSAnVScsCi0gICAg
RGF0ZVRhZyA9ICdEJywKLSAgICBOdW1iZXJUYWcgPSAnTicsCi0gICAgQmxvYlRhZyA9ICdiJywK
LSAgICBGaWxlVGFnID0gJ2YnLAotICAgIEZpbGVMaXN0VGFnID0gJ2wnLAotICAgIEltYWdlRGF0
YVRhZyA9ICcjJywKLSAgICBBcnJheVRhZyA9ICdbJywKLSAgICBPYmplY3RUYWcgPSAneycsCi0g
ICAgU3BhcnNlQXJyYXlUYWcgPSAnQCcsCi0gICAgUmVnRXhwVGFnID0gJ1InLAorICAgIEludmFs
aWRUYWcgPSAnIScsIC8vIENhdXNlcyBkZXNlcmlhbGl6YXRpb24gdG8gZmFpbC4KKyAgICBQYWRk
aW5nVGFnID0gJ1wwJywgLy8gSXMgaWdub3JlZCAoYnV0IGNvbnN1bWVkKS4KKyAgICBVbmRlZmlu
ZWRUYWcgPSAnXycsIC8vIC0+IDx1bmRlZmluZWQ+CisgICAgTnVsbFRhZyA9ICcwJywgLy8gLT4g
PG51bGw+CisgICAgVHJ1ZVRhZyA9ICdUJywgLy8gLT4gPHRydWU+CisgICAgRmFsc2VUYWcgPSAn
RicsIC8vIC0+IDxmYWxzZT4KKyAgICBTdHJpbmdUYWcgPSAnUycsIC8vIHN0cmluZzpSYXdTdHJp
bmcgLT4gc3RyaW5nCisgICAgSW50MzJUYWcgPSAnSScsIC8vIHZhbHVlOlppZ1phZy1lbmNvZGVk
IGludDMyIC0+IEludGVnZXIKKyAgICBVaW50MzJUYWcgPSAnVScsIC8vIHZhbHVlOnVpbnQzMl90
IC0+IEludGVnZXIKKyAgICBEYXRlVGFnID0gJ0QnLCAvLyB2YWx1ZTpkb3VibGUgLT4gRGF0ZSAo
cmVmKQorICAgIE51bWJlclRhZyA9ICdOJywgLy8gdmFsdWU6ZG91YmxlIC0+IE51bWJlcgorICAg
IEJsb2JUYWcgPSAnYicsIC8vIHVybDpXZWJDb3JlU3RyaW5nLCB0eXBlOldlYkNvcmVTdHJpbmcs
IHNpemU6dWludDY0X3QgLT4gQmxvYiAocmVmKQorICAgIEZpbGVUYWcgPSAnZicsIC8vIGZpbGU6
UmF3RmlsZSAtPiBGaWxlIChyZWYpCisgICAgRmlsZUxpc3RUYWcgPSAnbCcsIC8vIGxlbmd0aDp1
aW50MzJfdCwgZmlsZXM6UmF3RmlsZVtsZW5ndGhdIC0+IEZpbGVMaXN0IChyZWYpCisgICAgSW1h
Z2VEYXRhVGFnID0gJyMnLCAvLyB3aWR0aDp1aW50MzJfdCwgaGVpZ2h0OnVpbnQzMl90LCBwaXhl
bERhdGFMZW5ndGg6dWludDMyX3QsIGRhdGE6Ynl0ZVtwaXhlbERhdGFMZW5ndGhdIC0+IEltYWdl
RGF0YSAocmVmKQorICAgIEFycmF5VGFnID0gJ1snLCAvLyBsZW5ndGg6dWludDMyX3QgLT4gcG9w
cyB0aGUgbGFzdCBhcnJheSBmcm9tIHRoZSBvcGVuIHN0YWNrOworICAgICAgICAgICAgICAgICAg
ICAvLyAgICAgICAgICAgICAgICAgICAgZmlsbHMgaXQgd2l0aCB0aGUgbGFzdCBsZW5ndGggZWxl
bWVudHMgcHVzaGVkIG9uIHRoZSBkZXNlcmlhbGl6YXRpb24gc3RhY2sKKyAgICBPYmplY3RUYWcg
PSAneycsIC8vIG51bVByb3BlcnRpZXM6dWludDMyX3QgLT4gcG9wcyB0aGUgbGFzdCBvYmplY3Qg
ZnJvbSB0aGUgb3BlbiBzdGFjazsKKyAgICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZmlsbHMgaXQgd2l0aCB0aGUgbGFzdCBudW1Qcm9wZXJ0aWVzIG5hbWUs
dmFsdWUgcGFpcnMgcHVzaGVkIG9udG8gdGhlIGRlc2VyaWFsaXphdGlvbiBzdGFjaworICAgIFNw
YXJzZUFycmF5VGFnID0gJ0AnLCAvLyBudW1Qcm9wZXJ0aWVzOnVpbnQzMl90LCBsZW5ndGg6dWlu
dDMyX3QgLT4gcG9wcyB0aGUgbGFzdCBvYmplY3QgZnJvbSB0aGUgb3BlbiBzdGFjazsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGZpbGxzIGl0IHdpdGggdGhlIGxhc3QgbnVtUHJvcGVydGllcyBuYW1lLHZhbHVl
IHBhaXJzIHB1c2hlZCBvbnRvIHRoZSBkZXNlcmlhbGl6YXRpb24gc3RhY2sKKyAgICBSZWdFeHBU
YWcgPSAnUicsIC8vIHBhdHRlcm46UmF3U3RyaW5nLCBmbGFnczp1aW50MzJfdCAtPiBSZWdFeHAg
KHJlZikKKyAgICBBcnJheUJ1ZmZlclRhZyA9ICdCJywgLy8gYnl0ZUxlbmd0aDp1aW50MzJfdCwg
ZGF0YTpieXRlW2J5dGVMZW5ndGhdIC0+IEFycmF5QnVmZmVyIChyZWYpCisgICAgQXJyYXlCdWZm
ZXJWaWV3VGFnID0gJ1YnLCAvLyBzdWJ0YWc6Ynl0ZSwgYnl0ZU9mZnNldDp1aW50MzJfdCwgYnl0
ZUxlbmd0aDp1aW50MzJfdCAtPiBBcnJheUJ1ZmZlclZpZXcgKHJlZikuIENvbnN1bWVzIGFuIEFy
cmF5QnVmZmVyIGZyb20gdGhlIHRvcCBvZiB0aGUgZGVzZXJpYWxpemF0aW9uIHN0YWNrLgorICAg
IE9iamVjdFJlZmVyZW5jZVRhZyA9ICdeJywgLy8gcmVmOnVpbnQzMl90IC0+IHJlZiB0YWJsZVty
ZWZdCisgICAgR2VuZXJhdGVGcmVzaE9iamVjdFRhZyA9ICdvJywgLy8gLT4gZW1wdHkgb2JqZWN0
IGFsbG9jYXRlZCBhbiBvYmplY3QgSUQgYW5kIHB1c2hlZCBvbnRvIHRoZSBvcGVuIHN0YWNrIChy
ZWYpCisgICAgR2VuZXJhdGVGcmVzaEFycmF5VGFnID0gJ2EnLCAvLyBsZW5ndGg6dWludDMyX3Qg
LT4gZW1wdHkgYXJyYXlbbGVuZ3RoXSBhbGxvY2F0ZWQgYW4gb2JqZWN0IElEIGFuZCBwdXNoZWQg
b250byB0aGUgb3BlbiBzdGFjayAocmVmKQorICAgIENoZWNrUmVmVGFnID0gJz8nLCAvLyByZWZU
YWJsZVNpemU6dWludDMyX3QgLT4gSWYgdGhlIHJlZiB0YWJsZSBpcyBub3QgcmVmVGFibGVTaXpl
IGJpZywgZmFpbHMuCisgICAgVmVyc2lvblRhZyA9IDB4RkYgLy8gdmVyc2lvbjp1aW50MzJfdCAt
PiBVc2VzIHRoaXMgYXMgdGhlIGZpbGUgdmVyc2lvbi4KK307CisKK2VudW0gQXJyYXlCdWZmZXJW
aWV3U3ViVGFnIHsKKyAgICBCeXRlQXJyYXlUYWcgPSAnYicsCisgICAgVW5zaWduZWRCeXRlQXJy
YXlUYWcgPSAnQicsCisgICAgU2hvcnRBcnJheVRhZyA9ICd3JywKKyAgICBVbnNpZ25lZFNob3J0
QXJyYXlUYWcgPSAnVycsCisgICAgSW50QXJyYXlUYWcgPSAnZCcsCisgICAgVW5zaWduZWRJbnRB
cnJheVRhZyA9ICdEJywKKyAgICBGbG9hdEFycmF5VGFnID0gJ2YnLAorICAgIERvdWJsZUFycmF5
VGFnID0gJ0YnLAorICAgIERhdGFWaWV3VGFnID0gJz8nCiB9OwogCiBzdGF0aWMgYm9vbCBzaG91
bGRDaGVja0ZvckN5Y2xlcyhpbnQgZGVwdGgpCkBAIC05Miw2ICsyMTksOSBAQCBzdGF0aWMgYm9v
bCBzaG91bGRDaGVja0ZvckN5Y2xlcyhpbnQgZGVwdGgpCiAgICAgcmV0dXJuICEoZGVwdGggJiAo
ZGVwdGggLSAxKSk7CiB9CiAKKy8vIEluY3JlbWVudCB0aGlzIGZvciBlYWNoIGNoYW5nZSB0byB0
aGUgd2lyZSBmb3JtYXQuCitzdGF0aWMgY29uc3QgdWludDMyX3Qgd2lyZUZvcm1hdFZlcnNpb24g
PSAxOworCiBzdGF0aWMgY29uc3QgaW50IG1heERlcHRoID0gMjAwMDA7CiAKIC8vIFZhckludCBl
bmNvZGluZyBjb25zdGFudHMuCkBAIC0xNTksNiArMjg5LDEyIEBAIHB1YmxpYzoKICAgICAgICAg
ZG9Xcml0ZVdlYkNvcmVTdHJpbmcoc3RyaW5nKTsKICAgICB9CiAKKyAgICB2b2lkIHdyaXRlVmVy
c2lvbigpCisgICAgeworICAgICAgICBhcHBlbmQoVmVyc2lvblRhZyk7CisgICAgICAgIGRvV3Jp
dGVVaW50MzIod2lyZUZvcm1hdFZlcnNpb24pOworICAgIH0KKwogICAgIHZvaWQgd3JpdGVJbnQz
MihpbnQzMl90IHZhbHVlKQogICAgIHsKICAgICAgICAgYXBwZW5kKEludDMyVGFnKTsKQEAgLTIx
MSw2ICszNDcsNDIgQEAgcHVibGljOgogICAgICAgICB9CiAgICAgfQogCisgICAgdm9pZCB3cml0
ZUFycmF5QnVmZmVyKGNvbnN0IEFycmF5QnVmZmVyJiBhcnJheUJ1ZmZlcikKKyAgICB7CisgICAg
ICAgIGFwcGVuZChBcnJheUJ1ZmZlclRhZyk7CisgICAgICAgIGRvV3JpdGVBcnJheUJ1ZmZlcihh
cnJheUJ1ZmZlcik7CisgICAgfQorCisgICAgdm9pZCB3cml0ZUFycmF5QnVmZmVyVmlldyhjb25z
dCBBcnJheUJ1ZmZlclZpZXcmIGFycmF5QnVmZmVyVmlldykKKyAgICB7CisgICAgICAgIGFwcGVu
ZChBcnJheUJ1ZmZlclZpZXdUYWcpOworI2lmbmRlZiBOREVCVUcKKyAgICAgICAgY29uc3QgQXJy
YXlCdWZmZXImIGFycmF5QnVmZmVyID0gKmFycmF5QnVmZmVyVmlldy5idWZmZXIoKTsKKyAgICAg
ICAgQVNTRVJUKHN0YXRpY19jYXN0PGNvbnN0IHVpbnQ4X3QqPihhcnJheUJ1ZmZlci5kYXRhKCkp
ICsgYXJyYXlCdWZmZXJWaWV3LmJ5dGVPZmZzZXQoKSA9PQorICAgICAgICAgICAgICAgc3RhdGlj
X2Nhc3Q8Y29uc3QgdWludDhfdCo+KGFycmF5QnVmZmVyVmlldy5iYXNlQWRkcmVzcygpKSk7Cisj
ZW5kaWYKKyAgICAgICAgaWYgKGFycmF5QnVmZmVyVmlldy5pc0J5dGVBcnJheSgpKQorICAgICAg
ICAgICAgYXBwZW5kKEJ5dGVBcnJheVRhZyk7CisgICAgICAgIGVsc2UgaWYgKGFycmF5QnVmZmVy
Vmlldy5pc1Vuc2lnbmVkQnl0ZUFycmF5KCkpCisgICAgICAgICAgICBhcHBlbmQoVW5zaWduZWRC
eXRlQXJyYXlUYWcpOworICAgICAgICBlbHNlIGlmIChhcnJheUJ1ZmZlclZpZXcuaXNTaG9ydEFy
cmF5KCkpCisgICAgICAgICAgICBhcHBlbmQoU2hvcnRBcnJheVRhZyk7CisgICAgICAgIGVsc2Ug
aWYgKGFycmF5QnVmZmVyVmlldy5pc1Vuc2lnbmVkU2hvcnRBcnJheSgpKQorICAgICAgICAgICAg
YXBwZW5kKFVuc2lnbmVkU2hvcnRBcnJheVRhZyk7CisgICAgICAgIGVsc2UgaWYgKGFycmF5QnVm
ZmVyVmlldy5pc0ludEFycmF5KCkpCisgICAgICAgICAgICBhcHBlbmQoSW50QXJyYXlUYWcpOwor
ICAgICAgICBlbHNlIGlmIChhcnJheUJ1ZmZlclZpZXcuaXNVbnNpZ25lZEludEFycmF5KCkpCisg
ICAgICAgICAgICBhcHBlbmQoVW5zaWduZWRJbnRBcnJheVRhZyk7CisgICAgICAgIGVsc2UgaWYg
KGFycmF5QnVmZmVyVmlldy5pc0Zsb2F0QXJyYXkoKSkKKyAgICAgICAgICAgIGFwcGVuZChGbG9h
dEFycmF5VGFnKTsKKyAgICAgICAgZWxzZSBpZiAoYXJyYXlCdWZmZXJWaWV3LmlzRG91YmxlQXJy
YXkoKSkKKyAgICAgICAgICAgIGFwcGVuZChEb3VibGVBcnJheVRhZyk7CisgICAgICAgIGVsc2Ug
aWYgKGFycmF5QnVmZmVyVmlldy5pc0RhdGFWaWV3KCkpCisgICAgICAgICAgICBhcHBlbmQoRGF0
YVZpZXdUYWcpOworICAgICAgICBkb1dyaXRlVWludDMyKGFycmF5QnVmZmVyVmlldy5ieXRlT2Zm
c2V0KCkpOworICAgICAgICBkb1dyaXRlVWludDMyKGFycmF5QnVmZmVyVmlldy5ieXRlTGVuZ3Ro
KCkpOworICAgIH0KKwogICAgIHZvaWQgd3JpdGVJbWFnZURhdGEodWludDMyX3Qgd2lkdGgsIHVp
bnQzMl90IGhlaWdodCwgY29uc3QgdWludDhfdCogcGl4ZWxEYXRhLCB1aW50MzJfdCBwaXhlbERh
dGFMZW5ndGgpCiAgICAgewogICAgICAgICBhcHBlbmQoSW1hZ2VEYXRhVGFnKTsKQEAgLTIzNCw2
ICs0MDYsMTIgQEAgcHVibGljOgogICAgICAgICBkb1dyaXRlVWludDMyKGxlbmd0aCk7CiAgICAg
fQogCisgICAgdm9pZCB3cml0ZU9iamVjdE9mZnNldCh1aW50MzJfdCBvZmZzZXQpCisgICAgewor
ICAgICAgICBhcHBlbmQoT2JqZWN0UmVmZXJlbmNlVGFnKTsKKyAgICAgICAgZG9Xcml0ZVVpbnQz
MihvZmZzZXQpOworICAgIH0KKwogICAgIHZvaWQgd3JpdGVPYmplY3QodWludDMyX3QgbnVtUHJv
cGVydGllcykKICAgICB7CiAgICAgICAgIGFwcGVuZChPYmplY3RUYWcpOwpAQCAtMjUzLDcgKzQz
MSwzMSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBtX2J1ZmZlcjsKICAgICB9CiAKKyAgICB2
b2lkIHdyaXRlQ2hlY2tSZWYodWludDMyX3QgbnVtYmVyT2ZSZWZzKQorICAgIHsKKyAgICAgICAg
YXBwZW5kKENoZWNrUmVmVGFnKTsKKyAgICAgICAgZG9Xcml0ZVVpbnQzMihudW1iZXJPZlJlZnMp
OworICAgIH0KKworICAgIHZvaWQgd3JpdGVHZW5lcmF0ZUZyZXNoT2JqZWN0KCkKKyAgICB7Cisg
ICAgICAgIGFwcGVuZChHZW5lcmF0ZUZyZXNoT2JqZWN0VGFnKTsKKyAgICB9CisKKyAgICB2b2lk
IHdyaXRlR2VuZXJhdGVGcmVzaEFycmF5KHVpbnQzMl90IGxlbmd0aCkKKyAgICB7CisgICAgICAg
IGFwcGVuZChHZW5lcmF0ZUZyZXNoQXJyYXlUYWcpOworICAgICAgICBkb1dyaXRlVWludDMyKGxl
bmd0aCk7CisgICAgfQorCiBwcml2YXRlOgorICAgIHZvaWQgZG9Xcml0ZUFycmF5QnVmZmVyKGNv
bnN0IEFycmF5QnVmZmVyJiBhcnJheUJ1ZmZlcikKKyAgICB7CisgICAgICAgIHVpbnQzMl90IGJ5
dGVMZW5ndGggPSBhcnJheUJ1ZmZlci5ieXRlTGVuZ3RoKCk7CisgICAgICAgIGRvV3JpdGVVaW50
MzIoYnl0ZUxlbmd0aCk7CisgICAgICAgIGFwcGVuZChzdGF0aWNfY2FzdDxjb25zdCB1aW50OF90
Kj4oYXJyYXlCdWZmZXIuZGF0YSgpKSwgYnl0ZUxlbmd0aCk7CisgICAgfQorCiAgICAgdm9pZCBk
b1dyaXRlU3RyaW5nKGNvbnN0IGNoYXIqIGRhdGEsIGludCBsZW5ndGgpCiAgICAgewogICAgICAg
ICBkb1dyaXRlVWludDMyKHN0YXRpY19jYXN0PHVpbnQzMl90PihsZW5ndGgpKTsKQEAgLTM0MCw2
ICs1NDIsNyBAQCBwdWJsaWM6CiAgICAgZW51bSBTdGF0dXMgewogICAgICAgICBTdWNjZXNzLAog
ICAgICAgICBJbnB1dEVycm9yLAorICAgICAgICBEYXRhQ2xvbmVFcnJvciwKICAgICAgICAgSlNF
eGNlcHRpb24sCiAgICAgICAgIEpTRmFpbHVyZQogICAgIH07CkBAIC0zNDgsNyArNTUxLDkgQEAg
cHVibGljOgogICAgICAgICA6IG1fd3JpdGVyKHdyaXRlcikKICAgICAgICAgLCBtX3RyeUNhdGNo
KHRyeUNhdGNoKQogICAgICAgICAsIG1fZGVwdGgoMCkKKyAgICAgICAgLCBtX2V4ZWNEZXB0aCgw
KQogICAgICAgICAsIG1fc3RhdHVzKFN1Y2Nlc3MpCisgICAgICAgICwgbV9uZXh0T2JqZWN0SWQo
MCkKICAgICB7CiAgICAgICAgIEFTU0VSVCghdHJ5Q2F0Y2guSGFzQ2F1Z2h0KCkpOwogICAgIH0K
QEAgLTM1Niw2ICs1NjEsNyBAQCBwdWJsaWM6CiAgICAgU3RhdHVzIHNlcmlhbGl6ZSh2ODo6SGFu
ZGxlPHY4OjpWYWx1ZT4gdmFsdWUpCiAgICAgewogICAgICAgICB2ODo6SGFuZGxlU2NvcGUgc2Nv
cGU7CisgICAgICAgIG1fd3JpdGVyLndyaXRlVmVyc2lvbigpOwogICAgICAgICBTdGF0ZUJhc2Uq
IHN0YXRlID0gZG9TZXJpYWxpemUodmFsdWUsIDApOwogICAgICAgICB3aGlsZSAoc3RhdGUpCiAg
ICAgICAgICAgICBzdGF0ZSA9IHN0YXRlLT5hZHZhbmNlKCp0aGlzKTsKQEAgLTM2Myw3ICs1Njks
NiBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgLy8gRnVuY3Rpb25zIHVzZWQgYnkgc2VyaWFsaXph
dGlvbiBzdGF0ZXMuCi0KICAgICBTdGF0ZUJhc2UqIGRvU2VyaWFsaXplKHY4OjpIYW5kbGU8djg6
OlZhbHVlPiB2YWx1ZSwgU3RhdGVCYXNlKiBuZXh0KTsKIAogICAgIFN0YXRlQmFzZSogY2hlY2tF
eGNlcHRpb24oU3RhdGVCYXNlKiBzdGF0ZSkKQEAgLTQxMSw2ICs2MTYsMTAgQEAgcHJpdmF0ZToK
ICAgICAgICAgLy8gc3RhdGUuCiAgICAgICAgIHZpcnR1YWwgU3RhdGVCYXNlKiBhZHZhbmNlKFNl
cmlhbGl6ZXImKSA9IDA7CiAKKyAgICAgICAgLy8gUmV0dXJucyAxIGlmIHRoaXMgc3RhdGUgaXMg
Y3VycmVudGx5IHNlcmlhbGl6aW5nIGEgcHJvcGVydHkKKyAgICAgICAgLy8gdmlhIGFuIGFjY2Vz
c29yIGFuZCAwIG90aGVyd2lzZS4KKyAgICAgICAgdmlydHVhbCB1aW50MzJfdCBleGVjRGVwdGgo
KSBjb25zdCB7IHJldHVybiAwOyB9CisKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIFN0YXRlQmFz
ZSh2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gY29tcG9zaXRlLCBTdGF0ZUJhc2UqIG5leHQpCiAgICAg
ICAgICAgICA6IG1fY29tcG9zaXRlKGNvbXBvc2l0ZSkKQEAgLTQ4NSwxMSArNjk0LDEzIEBAIHBy
aXZhdGU6CiAgICAgICAgICAgICAsIG1faW5kZXgoMCkKICAgICAgICAgICAgICwgbV9udW1TZXJp
YWxpemVkUHJvcGVydGllcygwKQogICAgICAgICAgICAgLCBtX25hbWVEb25lKGZhbHNlKQorICAg
ICAgICAgICAgLCBtX3NlcmlhbGl6aW5nQWNjZXNzb3IoZmFsc2UpCiAgICAgICAgIHsKICAgICAg
ICAgfQogCiAgICAgICAgIHZpcnR1YWwgU3RhdGVCYXNlKiBhZHZhbmNlKFNlcmlhbGl6ZXImIHNl
cmlhbGl6ZXIpCiAgICAgICAgIHsKKyAgICAgICAgICAgIG1fc2VyaWFsaXppbmdBY2Nlc3NvciA9
IGZhbHNlOwogICAgICAgICAgICAgaWYgKCFtX2luZGV4KSB7CiAgICAgICAgICAgICAgICAgbV9w
cm9wZXJ0eU5hbWVzID0gY29tcG9zaXRlKCktPkdldFByb3BlcnR5TmFtZXMoKTsKICAgICAgICAg
ICAgICAgICBpZiAoU3RhdGVCYXNlKiBuZXdTdGF0ZSA9IHNlcmlhbGl6ZXIuY2hlY2tFeGNlcHRp
b24odGhpcykpCkBAIC00OTgsNiArNzA5LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIHNlcmlhbGl6ZXIucmVwb3J0RmFpbHVyZSh0aGlzKTsKICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgIHdoaWxlIChtX2luZGV4IDwgbV9wcm9wZXJ0eU5hbWVzLT5MZW5ndGgoKSkg
eworICAgICAgICAgICAgICAgIGJvb2wgaXNBY2Nlc3NvciA9IGZhbHNlOwogICAgICAgICAgICAg
ICAgIGlmICghbV9uYW1lRG9uZSkgewogICAgICAgICAgICAgICAgICAgICB2ODo6TG9jYWw8djg6
OlZhbHVlPiBwcm9wZXJ0eU5hbWUgPSBtX3Byb3BlcnR5TmFtZXMtPkdldChtX2luZGV4KTsKICAg
ICAgICAgICAgICAgICAgICAgaWYgKFN0YXRlQmFzZSogbmV3U3RhdGUgPSBzZXJpYWxpemVyLmNo
ZWNrRXhjZXB0aW9uKHRoaXMpKQpAQCAtNTEwLDYgKzcyMiw5IEBAIHByaXZhdGU6CiAgICAgICAg
ICAgICAgICAgICAgIGJvb2wgaGFzSW5kZXhlZFByb3BlcnR5ID0gIWhhc1N0cmluZ1Byb3BlcnR5
ICYmIHByb3BlcnR5TmFtZS0+SXNVaW50MzIoKSAmJiBjb21wb3NpdGUoKS0+SGFzUmVhbEluZGV4
ZWRQcm9wZXJ0eShwcm9wZXJ0eU5hbWUtPlVpbnQzMlZhbHVlKCkpOwogICAgICAgICAgICAgICAg
ICAgICBpZiAoU3RhdGVCYXNlKiBuZXdTdGF0ZSA9IHNlcmlhbGl6ZXIuY2hlY2tFeGNlcHRpb24o
dGhpcykpCiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3U3RhdGU7CisgICAgICAg
ICAgICAgICAgICAgIGlzQWNjZXNzb3IgPSBoYXNTdHJpbmdQcm9wZXJ0eSAmJiBjb21wb3NpdGUo
KS0+SGFzUmVhbE5hbWVkQ2FsbGJhY2tQcm9wZXJ0eShwcm9wZXJ0eU5hbWUuQXM8djg6OlN0cmlu
Zz4oKSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChTdGF0ZUJhc2UqIG5ld1N0YXRlID0gc2Vy
aWFsaXplci5jaGVja0V4Y2VwdGlvbih0aGlzKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBuZXdTdGF0ZTsKICAgICAgICAgICAgICAgICAgICAgaWYgKGhhc1N0cmluZ1Byb3BlcnR5
IHx8IGhhc0luZGV4ZWRQcm9wZXJ0eSkKICAgICAgICAgICAgICAgICAgICAgICAgIG1fcHJvcGVy
dHlOYW1lID0gcHJvcGVydHlOYW1lOwogICAgICAgICAgICAgICAgICAgICBlbHNlIHsKQEAgLTUz
MCwxMiArNzQ1LDE2IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgbV9wcm9wZXJ0eU5hbWUu
Q2xlYXIoKTsKICAgICAgICAgICAgICAgICArK21faW5kZXg7CiAgICAgICAgICAgICAgICAgKytt
X251bVNlcmlhbGl6ZWRQcm9wZXJ0aWVzOworICAgICAgICAgICAgICAgIG1fc2VyaWFsaXppbmdB
Y2Nlc3NvciA9IGlzQWNjZXNzb3I7CiAgICAgICAgICAgICAgICAgaWYgKFN0YXRlQmFzZSogbmV3
U3RhdGUgPSBzZXJpYWxpemVyLmRvU2VyaWFsaXplKHZhbHVlLCB0aGlzKSkKICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIG5ld1N0YXRlOworICAgICAgICAgICAgICAgIG1fc2VyaWFsaXppbmdB
Y2Nlc3NvciA9IGZhbHNlOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgcmV0dXJuIG9iamVj
dERvbmUobV9udW1TZXJpYWxpemVkUHJvcGVydGllcywgc2VyaWFsaXplcik7CiAgICAgICAgIH0K
IAorICAgICAgICB2aXJ0dWFsIHVpbnQzMl90IGV4ZWNEZXB0aCgpIGNvbnN0IHsgcmV0dXJuIG1f
c2VyaWFsaXppbmdBY2Nlc3NvciA/IDEgOiAwOyB9CisKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAg
IHZpcnR1YWwgU3RhdGVCYXNlKiBvYmplY3REb25lKHVuc2lnbmVkIG51bVByb3BlcnRpZXMsIFNl
cmlhbGl6ZXImKSA9IDA7CiAKQEAgLTU0NSw2ICs3NjQsNyBAQCBwcml2YXRlOgogICAgICAgICB1
bnNpZ25lZCBtX2luZGV4OwogICAgICAgICB1bnNpZ25lZCBtX251bVNlcmlhbGl6ZWRQcm9wZXJ0
aWVzOwogICAgICAgICBib29sIG1fbmFtZURvbmU7CisgICAgICAgIGJvb2wgbV9zZXJpYWxpemlu
Z0FjY2Vzc29yOwogICAgIH07CiAKICAgICBjbGFzcyBPYmplY3RTdGF0ZSA6IHB1YmxpYyBBYnN0
cmFjdE9iamVjdFN0YXRlIHsKQEAgLTU3NSw5ICs3OTUsMTYgQEAgcHJpdmF0ZToKICAgICAgICAg
fQogICAgIH07CiAKKyAgICB1aW50MzJfdCBleGVjRGVwdGgoKSBjb25zdAorICAgIHsKKyAgICAg
ICAgcmV0dXJuIG1fZXhlY0RlcHRoOworICAgIH0KKwogICAgIFN0YXRlQmFzZSogcHVzaChTdGF0
ZUJhc2UqIHN0YXRlKQogICAgIHsKICAgICAgICAgQVNTRVJUKHN0YXRlKTsKKyAgICAgICAgaWYg
KHN0YXRlLT5uZXh0U3RhdGUoKSkKKyAgICAgICAgICAgIG1fZXhlY0RlcHRoICs9IHN0YXRlLT5u
ZXh0U3RhdGUoKS0+ZXhlY0RlcHRoKCk7CiAgICAgICAgICsrbV9kZXB0aDsKICAgICAgICAgcmV0
dXJuIGNoZWNrQ29tcG9zaXRlKHN0YXRlKSA/IHN0YXRlIDogaGFuZGxlRXJyb3IoSW5wdXRFcnJv
ciwgc3RhdGUpOwogICAgIH0KQEAgLTU4Nyw2ICs4MTQsOCBAQCBwcml2YXRlOgogICAgICAgICBB
U1NFUlQoc3RhdGUpOwogICAgICAgICAtLW1fZGVwdGg7CiAgICAgICAgIFN0YXRlQmFzZSogbmV4
dCA9IHN0YXRlLT5uZXh0U3RhdGUoKTsKKyAgICAgICAgaWYgKG5leHQpCisgICAgICAgICAgICBt
X2V4ZWNEZXB0aCAtPSBuZXh0LT5leGVjRGVwdGgoKTsKICAgICAgICAgZGVsZXRlIHN0YXRlOwog
ICAgICAgICByZXR1cm4gbmV4dDsKICAgICB9CkBAIC01OTksNiArODI4LDggQEAgcHJpdmF0ZToK
ICAgICAgICAgICAgIFN0YXRlQmFzZSogdG1wID0gc3RhdGUtPm5leHRTdGF0ZSgpOwogICAgICAg
ICAgICAgZGVsZXRlIHN0YXRlOwogICAgICAgICAgICAgc3RhdGUgPSB0bXA7CisgICAgICAgICAg
ICBpZiAoc3RhdGUpCisgICAgICAgICAgICAgICAgbV9leGVjRGVwdGggLT0gc3RhdGUtPmV4ZWNE
ZXB0aCgpOwogICAgICAgICB9CiAgICAgICAgIHJldHVybiBuZXcgRXJyb3JTdGF0ZTsKICAgICB9
CkBAIC02MTgsNiArODQ5LDExIEBAIHByaXZhdGU6CiAgICAgICAgIHJldHVybiB0cnVlOwogICAg
IH0KIAorICAgIHZvaWQgd3JpdGVOdWxsKCkKKyAgICB7CisgICAgICAgIG1fd3JpdGVyLndyaXRl
TnVsbCgpOworICAgIH0KKwogICAgIHZvaWQgd3JpdGVTdHJpbmcodjg6OkhhbmRsZTx2ODo6VmFs
dWU+IHZhbHVlKQogICAgIHsKICAgICAgICAgdjg6OlN0cmluZzo6VXRmOFZhbHVlIHN0cmluZ1Zh
bHVlKHZhbHVlKTsKQEAgLTY2Myw2ICs4OTksMzUgQEAgcHJpdmF0ZToKICAgICAgICAgbV93cml0
ZXIud3JpdGVSZWdFeHAocmVnRXhwLT5HZXRTb3VyY2UoKSwgcmVnRXhwLT5HZXRGbGFncygpKTsK
ICAgICB9CiAKKyAgICBTdGF0ZUJhc2UqIHdyaXRlQW5kR3JleUFycmF5QnVmZmVyVmlldyh2ODo6
SGFuZGxlPHY4OjpPYmplY3Q+IG9iamVjdCwgU3RhdGVCYXNlKiBuZXh0KQorICAgIHsKKyAgICAg
ICAgQVNTRVJUKCFvYmplY3QuSXNFbXB0eSgpKTsKKyAgICAgICAgQXJyYXlCdWZmZXJWaWV3KiBh
cnJheUJ1ZmZlclZpZXcgPSBWOEFycmF5QnVmZmVyVmlldzo6dG9OYXRpdmUob2JqZWN0KTsKKyAg
ICAgICAgaWYgKCFhcnJheUJ1ZmZlclZpZXcpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgICAgIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB1bmRlcmx5aW5nQnVmZmVyID0gdG9WOChhcnJh
eUJ1ZmZlclZpZXctPmJ1ZmZlcigpKTsKKyAgICAgICAgaWYgKHVuZGVybHlpbmdCdWZmZXIuSXNF
bXB0eSgpKQorICAgICAgICAgICAgcmV0dXJuIGhhbmRsZUVycm9yKERhdGFDbG9uZUVycm9yLCBu
ZXh0KTsKKyAgICAgICAgU3RhdGVCYXNlKiBzdGF0ZU91dCA9IGRvU2VyaWFsaXplKHVuZGVybHlp
bmdCdWZmZXIsIDApOworICAgICAgICBpZiAoc3RhdGVPdXQpCisgICAgICAgICAgICByZXR1cm4g
aGFuZGxlRXJyb3IoRGF0YUNsb25lRXJyb3IsIG5leHQpOworICAgICAgICBtX3dyaXRlci53cml0
ZUFycmF5QnVmZmVyVmlldygqYXJyYXlCdWZmZXJWaWV3KTsKKyAgICAgICAgLy8gVGhpcyBzaG91
bGQgYmUgc2FmZTogd2Ugc2VyaWFsaXplIHNvbWV0aGluZyB0aGF0IHdlIGtub3cgdG8gYmUgYSB3
cmFwcGVyIChzZWUKKyAgICAgICAgLy8gdGhlIHRvVjggY2FsbCBhYm92ZSksIHNvIHRoZSBjYWxs
IHRvIGRvU2VyaWFsaXplIGFib3ZlIHNob3VsZCBuZWl0aGVyIGNhdXNlCisgICAgICAgIC8vIHRo
ZSBzdGFjayB0byBvdmVyZmxvdyBub3Igc2hvdWxkIGl0IGhhdmUgdGhlIHBvdGVudGlhbCB0byBy
ZWFjaCB0aGlzCisgICAgICAgIC8vIEFycmF5QnVmZmVyVmlldyBhZ2Fpbi4KKyAgICAgICAgZ3Jl
eU9iamVjdChvYmplY3QpOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICB2b2lkIHdy
aXRlQXJyYXlCdWZmZXIodjg6OkhhbmRsZTx2ODo6VmFsdWU+IHZhbHVlKQorICAgIHsKKyAgICAg
ICAgQXJyYXlCdWZmZXIqIGFycmF5QnVmZmVyID0gVjhBcnJheUJ1ZmZlcjo6dG9OYXRpdmUodmFs
dWUuQXM8djg6Ok9iamVjdD4oKSk7CisgICAgICAgIGlmICghYXJyYXlCdWZmZXIpCisgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIG1fd3JpdGVyLndyaXRlQXJyYXlCdWZmZXIoKmFycmF5QnVm
ZmVyKTsKKyAgICB9CisKICAgICBzdGF0aWMgU3RhdGVCYXNlKiBuZXdBcnJheVN0YXRlKHY4OjpI
YW5kbGU8djg6OkFycmF5PiBhcnJheSwgU3RhdGVCYXNlKiBuZXh0KQogICAgIHsKICAgICAgICAg
Ly8gRklYTUU6IHVzZSBwbGFpbiBBcnJheSBzdGF0ZSB3aGVuIHdlIGNhbiBxdWlja2x5IGNoZWNr
IHRoYXQKQEAgLTY3NiwyMCArOTQxLDQyIEBAIHByaXZhdGU6CiAgICAgICAgIHJldHVybiBuZXcg
T2JqZWN0U3RhdGUob2JqZWN0LCBuZXh0KTsKICAgICB9CiAKKyAgICB1aW50MzJfdCBncmV5T2Jq
ZWN0KGNvbnN0IHY4OjpIYW5kbGU8djg6Ok9iamVjdD4mIG9iamVjdCkKKyAgICB7CisgICAgICAg
IEFTU0VSVCghbV9vYmplY3RQb29sLmNvbnRhaW5zKG9iamVjdCkpOworICAgICAgICB1aW50MzJf
dCBvYmplY3RJZCA9IG1fbmV4dE9iamVjdElkKys7CisgICAgICAgIG1fb2JqZWN0UG9vbC5zZXQo
b2JqZWN0LCBvYmplY3RJZCk7CisgICAgICAgIHJldHVybiBvYmplY3RJZDsKKyAgICB9CisKICAg
ICBXcml0ZXImIG1fd3JpdGVyOwogICAgIHY4OjpUcnlDYXRjaCYgbV90cnlDYXRjaDsKICAgICBp
bnQgbV9kZXB0aDsKKyAgICBpbnQgbV9leGVjRGVwdGg7CiAgICAgU3RhdHVzIG1fc3RhdHVzOwor
ICAgIHR5cGVkZWYgVjhPYmplY3RNYXA8djg6Ok9iamVjdCwgdWludDMyX3Q+IE9iamVjdFBvb2w7
CisgICAgT2JqZWN0UG9vbCBtX29iamVjdFBvb2w7CisgICAgdWludDMyX3QgbV9uZXh0T2JqZWN0
SWQ7CiB9OwogCiBTZXJpYWxpemVyOjpTdGF0ZUJhc2UqIFNlcmlhbGl6ZXI6OmRvU2VyaWFsaXpl
KHY4OjpIYW5kbGU8djg6OlZhbHVlPiB2YWx1ZSwgU3RhdGVCYXNlKiBuZXh0KQogewotICAgIGlm
ICh2YWx1ZS5Jc0VtcHR5KCkpCisgICAgaWYgKG1fZXhlY0RlcHRoICsgKG5leHQgPyBuZXh0LT5l
eGVjRGVwdGgoKSA6IDApID4gMSkgeworICAgICAgICBtX3dyaXRlci53cml0ZU51bGwoKTsKKyAg
ICAgICAgcmV0dXJuIDA7CisgICAgfQorICAgIG1fd3JpdGVyLndyaXRlQ2hlY2tSZWYobV9uZXh0
T2JqZWN0SWQpOworICAgIHVpbnQzMl90IG9iamVjdFBvb2xPZmZzZXQ7CisgICAgaWYgKCh2YWx1
ZS0+SXNPYmplY3QoKSB8fCB2YWx1ZS0+SXNEYXRlKCkgfHwgdmFsdWUtPklzUmVnRXhwKCkpCisg
ICAgICAgICYmIG1fb2JqZWN0UG9vbC50cnlHZXQodmFsdWUuQXM8djg6Ok9iamVjdD4oKSwgJm9i
amVjdFBvb2xPZmZzZXQpKSB7CisgICAgICAgIEFTU0VSVCghdmFsdWUtPklzU3RyaW5nKCkpOwor
ICAgICAgICBtX3dyaXRlci53cml0ZU9iamVjdE9mZnNldChvYmplY3RQb29sT2Zmc2V0KTsKKyAg
ICB9IGVsc2UgaWYgKHZhbHVlLklzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIHJlcG9ydEZhaWx1
cmUobmV4dCk7Ci0gICAgaWYgKHZhbHVlLT5Jc1VuZGVmaW5lZCgpKQorICAgIGVsc2UgaWYgKHZh
bHVlLT5Jc1VuZGVmaW5lZCgpKQogICAgICAgICBtX3dyaXRlci53cml0ZVVuZGVmaW5lZCgpOwog
ICAgIGVsc2UgaWYgKHZhbHVlLT5Jc051bGwoKSkKLSAgICAgICAgbV93cml0ZXIud3JpdGVOdWxs
KCk7CisgICAgICAgIHdyaXRlTnVsbCgpOwogICAgIGVsc2UgaWYgKHZhbHVlLT5Jc1RydWUoKSkK
ICAgICAgICAgbV93cml0ZXIud3JpdGVUcnVlKCk7CiAgICAgZWxzZSBpZiAodmFsdWUtPklzRmFs
c2UoKSkKQEAgLTY5OCwyNiArOTg1LDQzIEBAIFNlcmlhbGl6ZXI6OlN0YXRlQmFzZSogU2VyaWFs
aXplcjo6ZG9TZXJpYWxpemUodjg6OkhhbmRsZTx2ODo6VmFsdWU+IHZhbHVlLCBTdGF0CiAgICAg
ICAgIG1fd3JpdGVyLndyaXRlSW50MzIodmFsdWUtPkludDMyVmFsdWUoKSk7CiAgICAgZWxzZSBp
ZiAodmFsdWUtPklzVWludDMyKCkpCiAgICAgICAgIG1fd3JpdGVyLndyaXRlVWludDMyKHZhbHVl
LT5VaW50MzJWYWx1ZSgpKTsKLSAgICBlbHNlIGlmICh2YWx1ZS0+SXNEYXRlKCkpCi0gICAgICAg
IG1fd3JpdGVyLndyaXRlRGF0ZSh2YWx1ZS0+TnVtYmVyVmFsdWUoKSk7CiAgICAgZWxzZSBpZiAo
dmFsdWUtPklzTnVtYmVyKCkpCiAgICAgICAgIG1fd3JpdGVyLndyaXRlTnVtYmVyKHZhbHVlLkFz
PHY4OjpOdW1iZXI+KCktPlZhbHVlKCkpOworICAgIGVsc2UgaWYgKFY4QXJyYXlCdWZmZXJWaWV3
OjpIYXNJbnN0YW5jZSh2YWx1ZSkpCisgICAgICAgIHJldHVybiB3cml0ZUFuZEdyZXlBcnJheUJ1
ZmZlclZpZXcodmFsdWUuQXM8djg6Ok9iamVjdD4oKSwgbmV4dCk7CiAgICAgZWxzZSBpZiAodmFs
dWUtPklzU3RyaW5nKCkpCiAgICAgICAgIHdyaXRlU3RyaW5nKHZhbHVlKTsKLSAgICBlbHNlIGlm
ICh2YWx1ZS0+SXNBcnJheSgpKQotICAgICAgICByZXR1cm4gcHVzaChuZXdBcnJheVN0YXRlKHZh
bHVlLkFzPHY4OjpBcnJheT4oKSwgbmV4dCkpOwotICAgIGVsc2UgaWYgKFY4RmlsZTo6SGFzSW5z
dGFuY2UodmFsdWUpKQotICAgICAgICB3cml0ZUZpbGUodmFsdWUpOwotICAgIGVsc2UgaWYgKFY4
QmxvYjo6SGFzSW5zdGFuY2UodmFsdWUpKQotICAgICAgICB3cml0ZUJsb2IodmFsdWUpOwotICAg
IGVsc2UgaWYgKFY4RmlsZUxpc3Q6Okhhc0luc3RhbmNlKHZhbHVlKSkKLSAgICAgICAgd3JpdGVG
aWxlTGlzdCh2YWx1ZSk7Ci0gICAgZWxzZSBpZiAoVjhJbWFnZURhdGE6Okhhc0luc3RhbmNlKHZh
bHVlKSkKLSAgICAgICAgd3JpdGVJbWFnZURhdGEodmFsdWUpOwotICAgIGVsc2UgaWYgKHZhbHVl
LT5Jc1JlZ0V4cCgpKQotICAgICAgICB3cml0ZVJlZ0V4cCh2YWx1ZSk7Ci0gICAgZWxzZSBpZiAo
dmFsdWUtPklzT2JqZWN0KCkpCi0gICAgICAgIHJldHVybiBwdXNoKG5ld09iamVjdFN0YXRlKHZh
bHVlLkFzPHY4OjpPYmplY3Q+KCksIG5leHQpKTsKKyAgICBlbHNlIHsKKyAgICAgICAgdjg6Okhh
bmRsZTx2ODo6T2JqZWN0PiBqc09iamVjdCA9IHZhbHVlLkFzPHY4OjpPYmplY3Q+KCk7CisgICAg
ICAgIGlmIChqc09iamVjdC5Jc0VtcHR5KCkpCisgICAgICAgICAgICByZXR1cm4gaGFuZGxlRXJy
b3IoRGF0YUNsb25lRXJyb3IsIG5leHQpOworICAgICAgICBncmV5T2JqZWN0KGpzT2JqZWN0KTsK
KyAgICAgICAgaWYgKHZhbHVlLT5Jc0RhdGUoKSkKKyAgICAgICAgICAgIG1fd3JpdGVyLndyaXRl
RGF0ZSh2YWx1ZS0+TnVtYmVyVmFsdWUoKSk7CisgICAgICAgIGVsc2UgaWYgKHZhbHVlLT5Jc0Fy
cmF5KCkpIHsKKyAgICAgICAgICAgIG1fd3JpdGVyLndyaXRlR2VuZXJhdGVGcmVzaEFycmF5KHZh
bHVlLkFzPHY4OjpBcnJheT4oKS0+TGVuZ3RoKCkpOworICAgICAgICAgICAgcmV0dXJuIHB1c2go
bmV3QXJyYXlTdGF0ZSh2YWx1ZS5Bczx2ODo6QXJyYXk+KCksIG5leHQpKTsKKyAgICAgICAgfSBl
bHNlIGlmIChWOEZpbGU6Okhhc0luc3RhbmNlKHZhbHVlKSkKKyAgICAgICAgICAgIHdyaXRlRmls
ZSh2YWx1ZSk7CisgICAgICAgIGVsc2UgaWYgKFY4QmxvYjo6SGFzSW5zdGFuY2UodmFsdWUpKQor
ICAgICAgICAgICAgd3JpdGVCbG9iKHZhbHVlKTsKKyAgICAgICAgZWxzZSBpZiAoVjhGaWxlTGlz
dDo6SGFzSW5zdGFuY2UodmFsdWUpKQorICAgICAgICAgICAgd3JpdGVGaWxlTGlzdCh2YWx1ZSk7
CisgICAgICAgIGVsc2UgaWYgKFY4SW1hZ2VEYXRhOjpIYXNJbnN0YW5jZSh2YWx1ZSkpCisgICAg
ICAgICAgICB3cml0ZUltYWdlRGF0YSh2YWx1ZSk7CisgICAgICAgIGVsc2UgaWYgKHZhbHVlLT5J
c1JlZ0V4cCgpKQorICAgICAgICAgICAgd3JpdGVSZWdFeHAodmFsdWUpOworICAgICAgICBlbHNl
IGlmIChWOEFycmF5QnVmZmVyOjpIYXNJbnN0YW5jZSh2YWx1ZSkpCisgICAgICAgICAgICB3cml0
ZUFycmF5QnVmZmVyKHZhbHVlKTsKKyAgICAgICAgZWxzZSBpZiAodmFsdWUtPklzT2JqZWN0KCkp
IHsKKyAgICAgICAgICAgIC8vIEZJWE1FOiBXZSBuZWVkIHRvIGNoZWNrIGlmIGpzT2JqZWN0IGlz
IGEgJ25hdGl2ZSBFcnJvcicgYW5kIGlmIHNvIHRocm93IGEgRGF0YUNsb25lRXJyb3IuCisgICAg
ICAgICAgICBpZiAoaXNIb3N0T2JqZWN0KGpzT2JqZWN0KSB8fCBqc09iamVjdC0+SXNDYWxsYWJs
ZSgpKQorICAgICAgICAgICAgICAgIHJldHVybiBoYW5kbGVFcnJvcihEYXRhQ2xvbmVFcnJvciwg
bmV4dCk7CisgICAgICAgICAgICBtX3dyaXRlci53cml0ZUdlbmVyYXRlRnJlc2hPYmplY3QoKTsK
KyAgICAgICAgICAgIHJldHVybiBwdXNoKG5ld09iamVjdFN0YXRlKGpzT2JqZWN0LCBuZXh0KSk7
CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgcmV0dXJuIGhhbmRsZUVycm9yKERhdGFDbG9u
ZUVycm9yLCBuZXh0KTsKKyAgICB9CiAgICAgcmV0dXJuIDA7CiB9CiAKQEAgLTcyNiw5ICsxMDMw
LDE1IEBAIGNsYXNzIENvbXBvc2l0ZUNyZWF0b3IgewogcHVibGljOgogICAgIHZpcnR1YWwgfkNv
bXBvc2l0ZUNyZWF0b3IoKSB7IH0KIAotICAgIHZpcnR1YWwgYm9vbCBjcmVhdGVBcnJheSh1aW50
MzJfdCBsZW5ndGgsIHY4OjpIYW5kbGU8djg6OlZhbHVlPiogdmFsdWUpID0gMDsKLSAgICB2aXJ0
dWFsIGJvb2wgY3JlYXRlT2JqZWN0KHVpbnQzMl90IG51bVByb3BlcnRpZXMsIHY4OjpIYW5kbGU8
djg6OlZhbHVlPiogdmFsdWUpID0gMDsKLSAgICB2aXJ0dWFsIGJvb2wgY3JlYXRlU3BhcnNlQXJy
YXkodWludDMyX3QgbnVtUHJvcGVydGllcywgdWludDMyX3QgbGVuZ3RoLCB2ODo6SGFuZGxlPHY4
OjpWYWx1ZT4qIHZhbHVlKSA9IDA7CisgICAgdmlydHVhbCBib29sIGNvbnN1bWVUb3BPZlN0YWNr
KHY4OjpIYW5kbGU8djg6OlZhbHVlPiopID0gMDsKKyAgICB2aXJ0dWFsIHVpbnQzMl90IG9iamVj
dFJlZmVyZW5jZUNvdW50KCkgPSAwOworICAgIHZpcnR1YWwgY29uc3Qgdjg6OkhhbmRsZTx2ODo6
VmFsdWU+JiBwdXNoT2JqZWN0UmVmZXJlbmNlKGNvbnN0IHY4OjpIYW5kbGU8djg6OlZhbHVlPiYp
ID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgZ2V0T2JqZWN0UmVmZXJlbmNlKHVpbnQzMl90IHJlZiwg
djg6OkhhbmRsZTx2ODo6VmFsdWU+KikgPSAwOworICAgIHZpcnR1YWwgYm9vbCBzdGFydEFycmF5
KHVpbnQzMl90IGxlbmd0aCkgPSAwOworICAgIHZpcnR1YWwgYm9vbCBzdGFydE9iamVjdCgpID0g
MDsKKyAgICB2aXJ0dWFsIGJvb2wgZmluaXNoQXJyYXkodWludDMyX3QgbGVuZ3RoLCB2ODo6SGFu
ZGxlPHY4OjpWYWx1ZT4qKSA9IDA7CisgICAgdmlydHVhbCBib29sIGZpbmlzaE9iamVjdCh1aW50
MzJfdCBudW1Qcm9wZXJ0aWVzLCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4qKSA9IDA7CisgICAgdmly
dHVhbCBib29sIGZpbmlzaFNwYXJzZUFycmF5KHVpbnQzMl90IG51bVByb3BlcnRpZXMsIHVpbnQz
Ml90IGxlbmd0aCwgdjg6OkhhbmRsZTx2ODo6VmFsdWU+KikgPSAwOwogfTsKIAogLy8gUmVhZGVy
IGlzIHJlc3BvbnNpYmxlIGZvciBkZXNlcmlhbGl6aW5nIHByaW1pdGl2ZSB0eXBlcyBhbmQKQEAg
LTczOSw2ICsxMDQ5LDcgQEAgcHVibGljOgogICAgICAgICA6IG1fYnVmZmVyKGJ1ZmZlcikKICAg
ICAgICAgLCBtX2xlbmd0aChsZW5ndGgpCiAgICAgICAgICwgbV9wb3NpdGlvbigwKQorICAgICAg
ICAsIG1fdmVyc2lvbigwKQogICAgIHsKICAgICAgICAgQVNTRVJUKGxlbmd0aCA+PSAwKTsKICAg
ICB9CkBAIC03NTEsNiArMTA2MiwxNiBAQCBwdWJsaWM6CiAgICAgICAgIGlmICghcmVhZFRhZygm
dGFnKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgc3dpdGNoICh0YWcpIHsK
KyAgICAgICAgY2FzZSBDaGVja1JlZlRhZzogeworICAgICAgICAgICAgaWYgKG1fdmVyc2lvbiA8
PSAwKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIHVpbnQzMl90
IHJlZlRhYmxlU2l6ZTsKKyAgICAgICAgICAgIGlmICghZG9SZWFkVWludDMyKCZyZWZUYWJsZVNp
emUpKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIGlmIChyZWZU
YWJsZVNpemUgIT0gY3JlYXRvci5vYmplY3RSZWZlcmVuY2VDb3VudCgpKQorICAgICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CiAg
ICAgICAgIGNhc2UgSW52YWxpZFRhZzoKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAg
ICAgY2FzZSBQYWRkaW5nVGFnOgpAQCAtNzgyLDYgKzExMDMsOCBAQCBwdWJsaWM6CiAgICAgICAg
IGNhc2UgRGF0ZVRhZzoKICAgICAgICAgICAgIGlmICghcmVhZERhdGUodmFsdWUpKQogICAgICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIGlmIChtX3ZlcnNpb24gPiAwKQor
ICAgICAgICAgICAgICAgIGNyZWF0b3IucHVzaE9iamVjdFJlZmVyZW5jZSgqdmFsdWUpOwogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgTnVtYmVyVGFnOgogICAgICAgICAgICAgaWYg
KCFyZWFkTnVtYmVyKHZhbHVlKSkKQEAgLTc5MCwzNiArMTExMyw0NiBAQCBwdWJsaWM6CiAgICAg
ICAgIGNhc2UgQmxvYlRhZzoKICAgICAgICAgICAgIGlmICghcmVhZEJsb2IodmFsdWUpKQogICAg
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIGlmIChtX3ZlcnNpb24gPiAw
KQorICAgICAgICAgICAgICAgIGNyZWF0b3IucHVzaE9iamVjdFJlZmVyZW5jZSgqdmFsdWUpOwog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgRmlsZVRhZzoKICAgICAgICAgICAgIGlm
ICghcmVhZEZpbGUodmFsdWUpKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAg
ICAgICAgIGlmIChtX3ZlcnNpb24gPiAwKQorICAgICAgICAgICAgICAgIGNyZWF0b3IucHVzaE9i
amVjdFJlZmVyZW5jZSgqdmFsdWUpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2Ug
RmlsZUxpc3RUYWc6CiAgICAgICAgICAgICBpZiAoIXJlYWRGaWxlTGlzdCh2YWx1ZSkpCiAgICAg
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgaWYgKG1fdmVyc2lvbiA+IDAp
CisgICAgICAgICAgICAgICAgY3JlYXRvci5wdXNoT2JqZWN0UmVmZXJlbmNlKCp2YWx1ZSk7CiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBJbWFnZURhdGFUYWc6CiAgICAgICAgICAg
ICBpZiAoIXJlYWRJbWFnZURhdGEodmFsdWUpKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICAgICAgICAgIGlmIChtX3ZlcnNpb24gPiAwKQorICAgICAgICAgICAgICAgIGNyZWF0
b3IucHVzaE9iamVjdFJlZmVyZW5jZSgqdmFsdWUpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIGNhc2UgQXJyYXlUYWc6IHsKICAgICAgICAgICAgIHVpbnQzMl90IGxlbmd0aDsKICAgICAg
ICAgICAgIGlmICghZG9SZWFkVWludDMyKCZsZW5ndGgpKQogICAgICAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKLSAgICAgICAgICAgIGlmICghY3JlYXRvci5jcmVhdGVBcnJheShsZW5ndGgsIHZh
bHVlKSkKKyAgICAgICAgICAgIGlmICghY3JlYXRvci5maW5pc2hBcnJheShsZW5ndGgsIHZhbHVl
KSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgfQogICAgICAgICBjYXNlIFJlZ0V4cFRhZzoKICAgICAgICAgICAgIGlmICghcmVhZFJl
Z0V4cCh2YWx1ZSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAg
aWYgKG1fdmVyc2lvbiA+IDApCisgICAgICAgICAgICAgICAgY3JlYXRvci5wdXNoT2JqZWN0UmVm
ZXJlbmNlKCp2YWx1ZSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBPYmplY3RU
YWc6IHsKICAgICAgICAgICAgIHVpbnQzMl90IG51bVByb3BlcnRpZXM7CiAgICAgICAgICAgICBp
ZiAoIWRvUmVhZFVpbnQzMigmbnVtUHJvcGVydGllcykpCiAgICAgICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOwotICAgICAgICAgICAgaWYgKCFjcmVhdG9yLmNyZWF0ZU9iamVjdChudW1Qcm9wZXJ0
aWVzLCB2YWx1ZSkpCisgICAgICAgICAgICBpZiAoIWNyZWF0b3IuZmluaXNoT2JqZWN0KG51bVBy
b3BlcnRpZXMsIHZhbHVlKSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgfQpAQCAtODMwLDcgKzExNjMsNTEgQEAgcHVibGljOgogICAg
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgIGlmICghZG9SZWFkVWludDMy
KCZsZW5ndGgpKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAgIGlm
ICghY3JlYXRvci5jcmVhdGVTcGFyc2VBcnJheShudW1Qcm9wZXJ0aWVzLCBsZW5ndGgsIHZhbHVl
KSkKKyAgICAgICAgICAgIGlmICghY3JlYXRvci5maW5pc2hTcGFyc2VBcnJheShudW1Qcm9wZXJ0
aWVzLCBsZW5ndGgsIHZhbHVlKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBjYXNlIEFycmF5QnVmZmVyVmlld1Rh
ZzogeworICAgICAgICAgICAgaWYgKG1fdmVyc2lvbiA8PSAwKQorICAgICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICAgICAgICAgIGlmICghcmVhZEFycmF5QnVmZmVyVmlldyh2YWx1ZSwg
Y3JlYXRvcikpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgY3Jl
YXRvci5wdXNoT2JqZWN0UmVmZXJlbmNlKCp2YWx1ZSk7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgfQorICAgICAgICBjYXNlIEFycmF5QnVmZmVyVGFnOiB7CisgICAgICAgICAgICBpZiAo
bV92ZXJzaW9uIDw9IDApCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAg
ICAgLy8gQXJyYXlCdWZmZXJzIGFyZSBhbHdheXMgd3JpdHRlbiBiZWZvcmUgZGVwZW5kYW50IEFy
cmF5QnVmZmVyVmlld3MuCisgICAgICAgICAgICBpZiAoIXJlYWRBcnJheUJ1ZmZlcih2YWx1ZSkp
CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgY3JlYXRvci5wdXNo
T2JqZWN0UmVmZXJlbmNlKCp2YWx1ZSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQor
ICAgICAgICBjYXNlIEdlbmVyYXRlRnJlc2hPYmplY3RUYWc6IHsKKyAgICAgICAgICAgIGlmICht
X3ZlcnNpb24gPD0gMCkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAg
ICBpZiAoIWNyZWF0b3Iuc3RhcnRPYmplY3QoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBjYXNlIEdl
bmVyYXRlRnJlc2hBcnJheVRhZzogeworICAgICAgICAgICAgaWYgKG1fdmVyc2lvbiA8PSAwKQor
ICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIHVpbnQzMl90IGxlbmd0
aDsKKyAgICAgICAgICAgIGlmICghZG9SZWFkVWludDMyKCZsZW5ndGgpKQorICAgICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIGlmICghY3JlYXRvci5zdGFydEFycmF5KGxl
bmd0aCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgcmV0dXJu
IHRydWU7CisgICAgICAgIH0KKyAgICAgICAgY2FzZSBPYmplY3RSZWZlcmVuY2VUYWc6IHsKKyAg
ICAgICAgICAgIGlmIChtX3ZlcnNpb24gPD0gMCkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgICAgICAgICB1aW50MzJfdCByZWY7CisgICAgICAgICAgICBpZiAoIWRvUmVhZFVp
bnQzMigmcmVmKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBp
ZiAoIWNyZWF0b3IuZ2V0T2JqZWN0UmVmZXJlbmNlKHJlZiwgdmFsdWUpKQogICAgICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CkBAIC04NDAs
NiArMTIxNywzMCBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiAhdmFsdWUtPklzRW1wdHkoKTsK
ICAgICB9CiAKKyAgICBib29sIHJlYWRWZXJzaW9uKHVpbnQzMl90JiB2ZXJzaW9uKQorICAgIHsK
KyAgICAgICAgU2VyaWFsaXphdGlvblRhZyB0YWc7CisgICAgICAgIGlmICghcmVhZFRhZygmdGFn
KSkgeworICAgICAgICAgICAgLy8gVGhpcyBpcyBhIG51bGxhcnkgYnVmZmVyLiBXZSdyZSBzdGls
bCB2ZXJzaW9uIDAuCisgICAgICAgICAgICB2ZXJzaW9uID0gMDsKKyAgICAgICAgICAgIHJldHVy
biB0cnVlOworICAgICAgICB9CisgICAgICAgIGlmICh0YWcgIT0gVmVyc2lvblRhZykgeworICAg
ICAgICAgICAgLy8gVmVyc2lvbnMgb2YgdGhlIGZvcm1hdCBwYXN0IDAgc3RhcnQgd2l0aCB0aGUg
dmVyc2lvbiB0YWcuCisgICAgICAgICAgICB2ZXJzaW9uID0gMDsKKyAgICAgICAgICAgIC8vIFB1
dCBiYWNrIHRoZSBieXRlLgorICAgICAgICAgICAgLS1tX3Bvc2l0aW9uOworICAgICAgICAgICAg
cmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgLy8gVmVyc2lvbi1iZWFyaW5nIG1lc3Nh
Z2VzIGFyZSBvYmxpZ2F0ZWQgdG8gZmluaXNoIHRoZSB2ZXJzaW9uIHRhZy4KKyAgICAgICAgcmV0
dXJuIGRvUmVhZFVpbnQzMigmdmVyc2lvbik7CisgICAgfQorCisgICAgdm9pZCBzZXRWZXJzaW9u
KHVpbnQzMl90IHZlcnNpb24pCisgICAgeworICAgICAgICBtX3ZlcnNpb24gPSB2ZXJzaW9uOwor
ICAgIH0KKwogcHJpdmF0ZToKICAgICBib29sIHJlYWRUYWcoU2VyaWFsaXphdGlvblRhZyogdGFn
KQogICAgIHsKQEAgLTg0OSw2ICsxMjUwLDE0IEBAIHByaXZhdGU6CiAgICAgICAgIHJldHVybiB0
cnVlOwogICAgIH0KIAorICAgIGJvb2wgcmVhZFN1YlRhZyhBcnJheUJ1ZmZlclZpZXdTdWJUYWcq
IHRhZykKKyAgICB7CisgICAgICAgIGlmIChtX3Bvc2l0aW9uID49IG1fbGVuZ3RoKQorICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAqdGFnID0gc3RhdGljX2Nhc3Q8QXJyYXlCdWZm
ZXJWaWV3U3ViVGFnPihtX2J1ZmZlclttX3Bvc2l0aW9uKytdKTsKKyAgICAgICAgcmV0dXJuIHRy
dWU7CisgICAgfQorCiAgICAgYm9vbCByZWFkU3RyaW5nKHY4OjpIYW5kbGU8djg6OlZhbHVlPiog
dmFsdWUpCiAgICAgewogICAgICAgICB1aW50MzJfdCBsZW5ndGg7CkBAIC05MzIsNiArMTM0MSwx
MDcgQEAgcHJpdmF0ZToKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCisgICAgUGFzc1Jl
ZlB0cjxBcnJheUJ1ZmZlcj4gZG9SZWFkQXJyYXlCdWZmZXIoKQorICAgIHsKKyAgICAgICAgdWlu
dDMyX3QgYnl0ZUxlbmd0aDsKKyAgICAgICAgaWYgKCFkb1JlYWRVaW50MzIoJmJ5dGVMZW5ndGgp
KQorICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIGlmIChtX3Bvc2l0aW9uICsgYnl0ZUxl
bmd0aCA+IG1fbGVuZ3RoKQorICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIGNvbnN0IHZv
aWQqIGJ1ZmZlclN0YXJ0ID0gbV9idWZmZXIgKyBtX3Bvc2l0aW9uOworICAgICAgICBSZWZQdHI8
QXJyYXlCdWZmZXI+IGFycmF5QnVmZmVyID0gQXJyYXlCdWZmZXI6OmNyZWF0ZShidWZmZXJTdGFy
dCwgYnl0ZUxlbmd0aCk7CisgICAgICAgIG1fcG9zaXRpb24gKz0gYnl0ZUxlbmd0aDsKKyAgICAg
ICAgcmV0dXJuIGFycmF5QnVmZmVyLnJlbGVhc2UoKTsKKyAgICB9CisKKyAgICBib29sIHJlYWRB
cnJheUJ1ZmZlcih2ODo6SGFuZGxlPHY4OjpWYWx1ZT4qIHZhbHVlKQorICAgIHsKKyAgICAgICAg
UmVmUHRyPEFycmF5QnVmZmVyPiBhcnJheUJ1ZmZlciA9IGRvUmVhZEFycmF5QnVmZmVyKCk7Cisg
ICAgICAgIGlmICghYXJyYXlCdWZmZXIpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
ICAgICp2YWx1ZSA9IHRvVjgoYXJyYXlCdWZmZXIucmVsZWFzZSgpKTsKKyAgICAgICAgcmV0dXJu
IHRydWU7CisgICAgfQorCisgICAgYm9vbCByZWFkQXJyYXlCdWZmZXJWaWV3KHY4OjpIYW5kbGU8
djg6OlZhbHVlPiogdmFsdWUsIENvbXBvc2l0ZUNyZWF0b3ImIGNyZWF0b3IpCisgICAgeworICAg
ICAgICBBcnJheUJ1ZmZlclZpZXdTdWJUYWcgc3ViVGFnOworICAgICAgICB1aW50MzJfdCBieXRl
T2Zmc2V0OworICAgICAgICB1aW50MzJfdCBieXRlTGVuZ3RoOworICAgICAgICBSZWZQdHI8QXJy
YXlCdWZmZXI+IGFycmF5QnVmZmVyOworICAgICAgICB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gYXJy
YXlCdWZmZXJWOFZhbHVlOworICAgICAgICBpZiAoIXJlYWRTdWJUYWcoJnN1YlRhZykpCisgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGlmICghZG9SZWFkVWludDMyKCZieXRlT2Zm
c2V0KSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYgKCFkb1JlYWRVaW50
MzIoJmJ5dGVMZW5ndGgpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBpZiAo
IWNyZWF0b3IuY29uc3VtZVRvcE9mU3RhY2soJmFycmF5QnVmZmVyVjhWYWx1ZSkpCisgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGFycmF5QnVmZmVyID0gVjhBcnJheUJ1ZmZlcjo6
dG9OYXRpdmUoYXJyYXlCdWZmZXJWOFZhbHVlLkFzPHY4OjpPYmplY3Q+KCkpOworICAgICAgICBp
ZiAoIWFycmF5QnVmZmVyKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBzd2l0
Y2ggKHN1YlRhZykgeworICAgICAgICBjYXNlIEJ5dGVBcnJheVRhZzoKKyAgICAgICAgICAgICp2
YWx1ZSA9IHRvVjgoSW50OEFycmF5OjpjcmVhdGUoYXJyYXlCdWZmZXIucmVsZWFzZSgpLCBieXRl
T2Zmc2V0LCBieXRlTGVuZ3RoKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBV
bnNpZ25lZEJ5dGVBcnJheVRhZzoKKyAgICAgICAgICAgICp2YWx1ZSA9IHRvVjgoVWludDhBcnJh
eTo6Y3JlYXRlKGFycmF5QnVmZmVyLnJlbGVhc2UoKSwgYnl0ZU9mZnNldCwgYnl0ZUxlbmd0aCkp
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgU2hvcnRBcnJheVRhZzogeworICAg
ICAgICAgICAgdWludDMyX3Qgc2hvcnRMZW5ndGggPSBieXRlTGVuZ3RoIC8gc2l6ZW9mKGludDE2
X3QpOworICAgICAgICAgICAgaWYgKHNob3J0TGVuZ3RoICogc2l6ZW9mKGludDE2X3QpICE9IGJ5
dGVMZW5ndGgpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgKnZh
bHVlID0gdG9WOChJbnQxNkFycmF5OjpjcmVhdGUoYXJyYXlCdWZmZXIucmVsZWFzZSgpLCBieXRl
T2Zmc2V0LCBzaG9ydExlbmd0aCkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAg
ICAgICAgY2FzZSBVbnNpZ25lZFNob3J0QXJyYXlUYWc6IHsKKyAgICAgICAgICAgIHVpbnQzMl90
IHNob3J0TGVuZ3RoID0gYnl0ZUxlbmd0aCAvIHNpemVvZih1aW50MTZfdCk7CisgICAgICAgICAg
ICBpZiAoc2hvcnRMZW5ndGggKiBzaXplb2YoaW50MTZfdCkgIT0gYnl0ZUxlbmd0aCkKKyAgICAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAqdmFsdWUgPSB0b1Y4KFVpbnQx
NkFycmF5OjpjcmVhdGUoYXJyYXlCdWZmZXIucmVsZWFzZSgpLCBieXRlT2Zmc2V0LCBzaG9ydExl
bmd0aCkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgY2FzZSBJbnRB
cnJheVRhZzogeworICAgICAgICAgICAgdWludDMyX3QgaW50TGVuZ3RoID0gYnl0ZUxlbmd0aCAv
IHNpemVvZihpbnQzMl90KTsKKyAgICAgICAgICAgIGlmIChpbnRMZW5ndGggKiBzaXplb2YoaW50
MzJfdCkgIT0gYnl0ZUxlbmd0aCkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
ICAgICAgICAqdmFsdWUgPSB0b1Y4KEludDMyQXJyYXk6OmNyZWF0ZShhcnJheUJ1ZmZlci5yZWxl
YXNlKCksIGJ5dGVPZmZzZXQsIGludExlbmd0aCkpOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIH0KKyAgICAgICAgY2FzZSBVbnNpZ25lZEludEFycmF5VGFnOiB7CisgICAgICAgICAgICB1
aW50MzJfdCBpbnRMZW5ndGggPSBieXRlTGVuZ3RoIC8gc2l6ZW9mKHVpbnQzMl90KTsKKyAgICAg
ICAgICAgIGlmIChpbnRMZW5ndGggKiBzaXplb2YodWludDMyX3QpICE9IGJ5dGVMZW5ndGgpCisg
ICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgKnZhbHVlID0gdG9WOChV
aW50MzJBcnJheTo6Y3JlYXRlKGFycmF5QnVmZmVyLnJlbGVhc2UoKSwgYnl0ZU9mZnNldCwgaW50
TGVuZ3RoKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBjYXNlIEZs
b2F0QXJyYXlUYWc6IHsKKyAgICAgICAgICAgIHVpbnQzMl90IGZsb2F0TGVuZ3RoID0gYnl0ZUxl
bmd0aCAvIHNpemVvZihmbG9hdCk7CisgICAgICAgICAgICBpZiAoZmxvYXRMZW5ndGggKiBzaXpl
b2YoZmxvYXQpICE9IGJ5dGVMZW5ndGgpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgICAgICAgICAgKnZhbHVlID0gdG9WOChGbG9hdDMyQXJyYXk6OmNyZWF0ZShhcnJheUJ1ZmZl
ci5yZWxlYXNlKCksIGJ5dGVPZmZzZXQsIGZsb2F0TGVuZ3RoKSk7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgfQorICAgICAgICBjYXNlIERvdWJsZUFycmF5VGFnOiB7CisgICAgICAgICAg
ICB1aW50MzJfdCBmbG9hdExlbmd0aCA9IGJ5dGVMZW5ndGggLyBzaXplb2YoZG91YmxlKTsKKyAg
ICAgICAgICAgIGlmIChmbG9hdExlbmd0aCAqIHNpemVvZihkb3VibGUpICE9IGJ5dGVMZW5ndGgp
CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgKnZhbHVlID0gdG9W
OChGbG9hdDY0QXJyYXk6OmNyZWF0ZShhcnJheUJ1ZmZlci5yZWxlYXNlKCksIGJ5dGVPZmZzZXQs
IGZsb2F0TGVuZ3RoKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBj
YXNlIERhdGFWaWV3VGFnOgorICAgICAgICAgICAgKnZhbHVlID0gdG9WOChEYXRhVmlldzo6Y3Jl
YXRlKGFycmF5QnVmZmVyLnJlbGVhc2UoKSwgYnl0ZU9mZnNldCwgYnl0ZUxlbmd0aCkpOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgICAgIH0KKyAgICAgICAgLy8gVGhlIHZhcmlvdXMgKkFycmF5OjpjcmVhdGUoKSBt
ZXRob2RzIHdpbGwgcmV0dXJuIG51bGwgaWYgdGhlIHJhbmdlIHRoZSB2aWV3IGV4cGVjdHMgaXMK
KyAgICAgICAgLy8gbWlzbWF0Y2hlZCB3aXRoIHRoZSByYW5nZSB0aGUgYnVmZmVyIGNhbiBwcm92
aWRlIG9yIGlmIHRoZSBieXRlIG9mZnNldCBpcyBub3QgYWxpZ25lZAorICAgICAgICAvLyB0byB0
aGUgc2l6ZSBvZiB0aGUgZWxlbWVudCB0eXBlLgorICAgICAgICByZXR1cm4gIXZhbHVlLT5Jc0Vt
cHR5KCk7CisgICAgfQorCiAgICAgYm9vbCByZWFkUmVnRXhwKHY4OjpIYW5kbGU8djg6OlZhbHVl
PiogdmFsdWUpCiAgICAgewogICAgICAgICB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gcGF0dGVybjsK
QEAgLTEwMzcsMzIgKzE1NDcsNjMgQEAgcHJpdmF0ZToKICAgICBjb25zdCB1aW50OF90KiBtX2J1
ZmZlcjsKICAgICBjb25zdCB1bnNpZ25lZCBtX2xlbmd0aDsKICAgICB1bnNpZ25lZCBtX3Bvc2l0
aW9uOworICAgIHVpbnQzMl90IG1fdmVyc2lvbjsKIH07CiAKIGNsYXNzIERlc2VyaWFsaXplciA6
IHB1YmxpYyBDb21wb3NpdGVDcmVhdG9yIHsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBEZXNlcmlh
bGl6ZXIoUmVhZGVyJiByZWFkZXIpCiAgICAgICAgIDogbV9yZWFkZXIocmVhZGVyKQorICAgICAg
ICAsIG1fdmVyc2lvbigwKQogICAgIHsKICAgICB9CiAKICAgICB2ODo6SGFuZGxlPHY4OjpWYWx1
ZT4gZGVzZXJpYWxpemUoKQogICAgIHsKKyAgICAgICAgaWYgKCFtX3JlYWRlci5yZWFkVmVyc2lv
bihtX3ZlcnNpb24pIHx8IG1fdmVyc2lvbiA+IHdpcmVGb3JtYXRWZXJzaW9uKQorICAgICAgICAg
ICAgcmV0dXJuIHY4OjpOdWxsKCk7CisgICAgICAgIG1fcmVhZGVyLnNldFZlcnNpb24obV92ZXJz
aW9uKTsKICAgICAgICAgdjg6OkhhbmRsZVNjb3BlIHNjb3BlOwogICAgICAgICB3aGlsZSAoIW1f
cmVhZGVyLmlzRW9mKCkpIHsKICAgICAgICAgICAgIGlmICghZG9EZXNlcmlhbGl6ZSgpKQogICAg
ICAgICAgICAgICAgIHJldHVybiB2ODo6TnVsbCgpOwogICAgICAgICB9Ci0gICAgICAgIGlmIChz
dGFja0RlcHRoKCkgIT0gMSkKKyAgICAgICAgaWYgKHN0YWNrRGVwdGgoKSAhPSAxIHx8IG1fb2Jq
cmVmU3RhY2suc2l6ZSgpKQogICAgICAgICAgICAgcmV0dXJuIHY4OjpOdWxsKCk7Ci0gICAgICAg
IHJldHVybiBzY29wZS5DbG9zZShlbGVtZW50KDApKTsKKyAgICAgICAgdjg6OkhhbmRsZTx2ODo6
VmFsdWU+IHJlc3VsdCA9IHNjb3BlLkNsb3NlKGVsZW1lbnQoMCkpOworICAgICAgICByZXR1cm4g
cmVzdWx0OworICAgIH0KKworICAgIHZpcnR1YWwgYm9vbCBzdGFydEFycmF5KHVpbnQzMl90IGxl
bmd0aCkKKyAgICB7CisgICAgICAgIHY4OjpMb2NhbDx2ODo6QXJyYXk+IGFycmF5ID0gdjg6OkFy
cmF5OjpOZXcobGVuZ3RoKTsKKyAgICAgICAgaWYgKGFycmF5LklzRW1wdHkoKSkKKyAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgb3Blbk5ld0NvbXBvc2l0ZShhcnJheSk7CisgICAg
ICAgIHJldHVybiB0cnVlOwogICAgIH0KIAotICAgIHZpcnR1YWwgYm9vbCBjcmVhdGVBcnJheSh1
aW50MzJfdCBsZW5ndGgsIHY4OjpIYW5kbGU8djg6OlZhbHVlPiogdmFsdWUpCisgICAgdmlydHVh
bCBib29sIGNvbnN1bWVUb3BPZlN0YWNrKHY4OjpIYW5kbGU8djg6OlZhbHVlPiogb2JqKQorICAg
IHsKKyAgICAgICAgaWYgKHN0YWNrRGVwdGgoKSA8IDEpCisgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgICAgICpvYmogPSBlbGVtZW50KHN0YWNrRGVwdGgoKSAtIDEpOworICAgICAgICBw
b3AoMSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHZpcnR1YWwgYm9vbCBm
aW5pc2hBcnJheSh1aW50MzJfdCBsZW5ndGgsIHY4OjpIYW5kbGU8djg6OlZhbHVlPiogdmFsdWUp
CiAgICAgewogICAgICAgICBpZiAobGVuZ3RoID4gc3RhY2tEZXB0aCgpKQogICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwotICAgICAgICB2ODo6TG9jYWw8djg6OkFycmF5PiBhcnJheSA9IHY4OjpB
cnJheTo6TmV3KGxlbmd0aCk7CisgICAgICAgIHY4OjpMb2NhbDx2ODo6QXJyYXk+IGFycmF5Owor
ICAgICAgICBpZiAobV92ZXJzaW9uID4gMCkgeworICAgICAgICAgICAgdjg6OkxvY2FsPHY4OjpW
YWx1ZT4gY29tcG9zaXRlOworICAgICAgICAgICAgaWYgKCFjbG9zZUNvbXBvc2l0ZSgmY29tcG9z
aXRlKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBhcnJheSA9
IGNvbXBvc2l0ZS5Bczx2ODo6QXJyYXk+KCk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAg
YXJyYXkgPSB2ODo6QXJyYXk6Ok5ldyhsZW5ndGgpOwogICAgICAgICBpZiAoYXJyYXkuSXNFbXB0
eSgpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICBjb25zdCBpbnQgZGVwdGgg
PSBzdGFja0RlcHRoKCkgLSBsZW5ndGg7CkBAIC0xMDczLDIyICsxNjE0LDY0IEBAIHB1YmxpYzoK
ICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCi0gICAgdmlydHVhbCBib29sIGNyZWF0ZU9i
amVjdCh1aW50MzJfdCBudW1Qcm9wZXJ0aWVzLCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4qIHZhbHVl
KQorICAgIHZpcnR1YWwgYm9vbCBzdGFydE9iamVjdCgpCiAgICAgewogICAgICAgICB2ODo6TG9j
YWw8djg6Ok9iamVjdD4gb2JqZWN0ID0gdjg6Ok9iamVjdDo6TmV3KCk7CiAgICAgICAgIGlmIChv
YmplY3QuSXNFbXB0eSgpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBvcGVu
TmV3Q29tcG9zaXRlKG9iamVjdCk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAg
IHZpcnR1YWwgYm9vbCBmaW5pc2hPYmplY3QodWludDMyX3QgbnVtUHJvcGVydGllcywgdjg6Okhh
bmRsZTx2ODo6VmFsdWU+KiB2YWx1ZSkKKyAgICB7CisgICAgICAgIHY4OjpMb2NhbDx2ODo6T2Jq
ZWN0PiBvYmplY3Q7CisgICAgICAgIGlmIChtX3ZlcnNpb24gPiAwKSB7CisgICAgICAgICAgICB2
ODo6TG9jYWw8djg6OlZhbHVlPiBjb21wb3NpdGU7CisgICAgICAgICAgICBpZiAoIWNsb3NlQ29t
cG9zaXRlKCZjb21wb3NpdGUpKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAg
ICAgICAgIG9iamVjdCA9IGNvbXBvc2l0ZS5Bczx2ODo6T2JqZWN0PigpOworICAgICAgICB9IGVs
c2UKKyAgICAgICAgICAgIG9iamVjdCA9IHY4OjpPYmplY3Q6Ok5ldygpOworICAgICAgICBpZiAo
b2JqZWN0LklzRW1wdHkoKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgcmV0
dXJuIGluaXRpYWxpemVPYmplY3Qob2JqZWN0LCBudW1Qcm9wZXJ0aWVzLCB2YWx1ZSk7CiAgICAg
fQogCi0gICAgdmlydHVhbCBib29sIGNyZWF0ZVNwYXJzZUFycmF5KHVpbnQzMl90IG51bVByb3Bl
cnRpZXMsIHVpbnQzMl90IGxlbmd0aCwgdjg6OkhhbmRsZTx2ODo6VmFsdWU+KiB2YWx1ZSkKKyAg
ICB2aXJ0dWFsIGJvb2wgZmluaXNoU3BhcnNlQXJyYXkodWludDMyX3QgbnVtUHJvcGVydGllcywg
dWludDMyX3QgbGVuZ3RoLCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4qIHZhbHVlKQogICAgIHsKLSAg
ICAgICAgdjg6OkxvY2FsPHY4OjpBcnJheT4gYXJyYXkgPSB2ODo6QXJyYXk6Ok5ldyhsZW5ndGgp
OworICAgICAgICB2ODo6TG9jYWw8djg6OkFycmF5PiBhcnJheTsKKyAgICAgICAgaWYgKG1fdmVy
c2lvbiA+IDApIHsKKyAgICAgICAgICAgIHY4OjpMb2NhbDx2ODo6VmFsdWU+IGNvbXBvc2l0ZTsK
KyAgICAgICAgICAgIGlmICghY2xvc2VDb21wb3NpdGUoJmNvbXBvc2l0ZSkpCisgICAgICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgYXJyYXkgPSBjb21wb3NpdGUuQXM8djg6
OkFycmF5PigpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIGFycmF5ID0gdjg6OkFycmF5
OjpOZXcobGVuZ3RoKTsKICAgICAgICAgaWYgKGFycmF5LklzRW1wdHkoKSkKICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICAgICAgcmV0dXJuIGluaXRpYWxpemVPYmplY3QoYXJyYXksIG51
bVByb3BlcnRpZXMsIHZhbHVlKTsKICAgICB9CiAKKyAgICB2aXJ0dWFsIGNvbnN0IHY4OjpIYW5k
bGU8djg6OlZhbHVlPiYgcHVzaE9iamVjdFJlZmVyZW5jZShjb25zdCB2ODo6SGFuZGxlPHY4OjpW
YWx1ZT4mIG9iaikKKyAgICB7CisgICAgICAgIG1fb2JqZWN0UG9vbC5hcHBlbmQob2JqKTsKKyAg
ICAgICAgcmV0dXJuIG9iajsKKyAgICB9CisKKyAgICB2aXJ0dWFsIGJvb2wgZ2V0T2JqZWN0UmVm
ZXJlbmNlKHVpbnQzMl90IHJlZiwgdjg6OkhhbmRsZTx2ODo6VmFsdWU+KiBvYmopCisgICAgewor
ICAgICAgICBpZiAocmVmID49IG1fb2JqZWN0UG9vbC5zaXplKCkpCisgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgICAgICpvYmogPSBtX29iamVjdFBvb2xbcmVmXTsKKyAgICAgICAgcmV0
dXJuIG9iajsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHVpbnQzMl90IG9iamVjdFJlZmVyZW5jZUNv
dW50KCkKKyAgICB7CisgICAgICAgIHJldHVybiBtX29iamVjdFBvb2wuc2l6ZSgpOworICAgIH0K
KwogcHJpdmF0ZToKICAgICBib29sIGluaXRpYWxpemVPYmplY3Qodjg6OkhhbmRsZTx2ODo6T2Jq
ZWN0PiBvYmplY3QsIHVpbnQzMl90IG51bVByb3BlcnRpZXMsIHY4OjpIYW5kbGU8djg6OlZhbHVl
PiogdmFsdWUpCiAgICAgewpAQCAtMTEzMSw4ICsxNzE0LDMxIEBAIHByaXZhdGU6CiAgICAgICAg
IHJldHVybiBtX3N0YWNrW2luZGV4XTsKICAgICB9CiAKKyAgICB1aW50MzJfdCBvcGVuTmV3Q29t
cG9zaXRlKGNvbnN0IHY4OjpMb2NhbDx2ODo6VmFsdWU+JiBvYmopCisgICAgeworICAgICAgICB1
aW50MzJfdCBuZXdpZCA9IG1fb2JqZWN0UG9vbC5zaXplKCk7CisgICAgICAgIG1fb2JqcmVmU3Rh
Y2suYXBwZW5kKG5ld2lkKTsKKyAgICAgICAgbV9vYmplY3RQb29sLmFwcGVuZChvYmopOworICAg
ICAgICByZXR1cm4gbmV3aWQ7CisgICAgfQorCisgICAgYm9vbCBjbG9zZUNvbXBvc2l0ZSh2ODo6
SGFuZGxlPHY4OjpWYWx1ZT4qIG9iaikKKyAgICB7CisgICAgICAgIGlmICghbV9vYmpyZWZTdGFj
ay5zaXplKCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHVpbnQzMl90IG9s
ZGlkID0gbV9vYmpyZWZTdGFja1ttX29ianJlZlN0YWNrLnNpemUoKSAtIDFdOworICAgICAgICBt
X29ianJlZlN0YWNrLnNocmluayhtX29ianJlZlN0YWNrLnNpemUoKSAtIDEpOworICAgICAgICBp
ZiAob2xkaWQgPj0gbV9vYmplY3RQb29sLnNpemUoKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICAgICAgKm9iaiA9IG1fb2JqZWN0UG9vbFtvbGRpZF07CisgICAgICAgIHJldHVybiB0
cnVlOworICAgIH0KKwogICAgIFJlYWRlciYgbV9yZWFkZXI7CiAgICAgVmVjdG9yPHY4OjpMb2Nh
bDx2ODo6VmFsdWU+ID4gbV9zdGFjazsKKyAgICBWZWN0b3I8djg6OkhhbmRsZTx2ODo6VmFsdWU+
ID4gbV9vYmplY3RQb29sOworICAgIFZlY3Rvcjx1aW50MzJfdD4gbV9vYmpyZWZTdGFjazsKKyAg
ICB1aW50MzJfdCBtX3ZlcnNpb247CiB9OwogCiB9IC8vIG5hbWVzcGFjZQpAQCAtMTIzNiw3ICsx
ODQyLDEyIEBAIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlKHY4
OjpIYW5kbGU8djg6OlZhbHVlPiB2YWx1ZSwgYm9vbCYKICAgICAgICAgLy8gSWYgdGhlcmUgd2Fz
IGFuIGlucHV0IGVycm9yLCB0aHJvdyBhIG5ldyBleGNlcHRpb24gb3V0c2lkZQogICAgICAgICAv
LyBvZiB0aGUgVHJ5Q2F0Y2ggc2NvcGUuCiAgICAgICAgIGRpZFRocm93ID0gdHJ1ZTsKLSAgICAg
ICAgdGhyb3dFcnJvcihOT1RfU1VQUE9SVEVEX0VSUik7CisgICAgICAgIHRocm93RXJyb3IoREFU
QV9DTE9ORV9FUlIpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmIChzdGF0dXMgPT0g
U2VyaWFsaXplcjo6RGF0YUNsb25lRXJyb3IpIHsKKyAgICAgICAgZGlkVGhyb3cgPSB0cnVlOwor
ICAgICAgICB0aHJvd0Vycm9yKERBVEFfQ0xPTkVfRVJSKTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KICAgICBpZiAoc3RhdHVzID09IFNlcmlhbGl6ZXI6OkpTRmFpbHVyZSkgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhCaW5kaW5nLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3Y4L1Y4QmluZGluZy5jcHAKaW5kZXggODI2MGZmZC4uMzgxMDUwNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhCaW5kaW5nLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEJpbmRpbmcuY3BwCkBAIC0yODUsNiArMjg1LDE2
IEBAIGJvb2wgaXNVbmRlZmluZWRPck51bGwodjg6OkhhbmRsZTx2ODo6VmFsdWU+IHZhbHVlKQog
ICAgIHJldHVybiB2YWx1ZS0+SXNOdWxsKCkgfHwgdmFsdWUtPklzVW5kZWZpbmVkKCk7CiB9CiAK
K2Jvb2wgaXNIb3N0T2JqZWN0KHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gb2JqZWN0KQoreworICAg
IC8vIElmIHRoZSBvYmplY3QgaGFzIGFueSBpbnRlcm5hbCBmaWVsZHMsIHRoZW4gd2Ugd29uJ3Qg
YmUgYWJsZSB0byBzZXJpYWxpemUgb3IgZGVzZXJpYWxpemUKKyAgICAvLyB0aGVtOyBjb252ZW5p
ZW50bHksIHRoaXMgaXMgYWxzbyBhIHF1aWNrIHdheSB0byBkZXRlY3QgRE9NIHdyYXBwZXIgb2Jq
ZWN0cywgYmVjYXVzZQorICAgIC8vIHRoZSBtZWNoYW5pc20gZm9yIHRoZXNlIHJlbGllcyBvbiBk
YXRhIHN0b3JlZCBpbiB0aGVzZSBmaWVsZHMuIFdlIHNob3VsZAorICAgIC8vIGNhdGNoIGV4dGVy
bmFsIGFycmF5IGRhdGEgYW5kIGV4dGVybmFsIHBpeGVsIGRhdGEgYXMgYSBzcGVjaWFsIGNhc2Ug
KG5vdGluZyB0aGF0IENhbnZhc1BpeGVsQXJyYXlzCisgICAgLy8gY2FuJ3QgYmUgc2VyaWFsaXpl
ZCB3aXRob3V0IGJlaW5nIHdyYXBwZWQgYnkgSW1hZ2VEYXRhIGFjY29yZGluZyB0byB0aGUgc3Rh
bmRhcmQpLgorICAgIHJldHVybiBvYmplY3QtPkludGVybmFsRmllbGRDb3VudCgpIHx8IG9iamVj
dC0+SGFzSW5kZXhlZFByb3BlcnRpZXNJblBpeGVsRGF0YSgpIHx8IG9iamVjdC0+SGFzSW5kZXhl
ZFByb3BlcnRpZXNJbkV4dGVybmFsQXJyYXlEYXRhKCk7Cit9CisKIHY4OjpIYW5kbGU8djg6OkJv
b2xlYW4+IHY4Qm9vbGVhbihib29sIHZhbHVlKQogewogICAgIHJldHVybiB2YWx1ZSA/IHY4OjpU
cnVlKCkgOiB2ODo6RmFsc2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L1Y4QmluZGluZy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhCaW5kaW5nLmgK
aW5kZXggZTFlM2RlMC4uMmExYTI3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvVjhCaW5kaW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhCaW5k
aW5nLmgKQEAgLTIxOSw2ICsyMTksMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgYm9v
bCBpc1VuZGVmaW5lZE9yTnVsbCh2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdmFsdWUpOwogCisgICAg
Ly8gUmV0dXJucyB0cnVlIGlmIHRoZSBwcm92aWRlZCBvYmplY3QgaXMgdG8gYmUgY29uc2lkZXJl
ZCBhICdob3N0IG9iamVjdCcsIGFzIHVzZWQgaW4gdGhlCisgICAgLy8gSFRNTDUgc3RydWN0dXJl
ZCBjbG9uZSBhbGdvcml0aG0uCisgICAgYm9vbCBpc0hvc3RPYmplY3Qodjg6OkhhbmRsZTx2ODo6
T2JqZWN0Pik7CisKICAgICB2ODo6SGFuZGxlPHY4OjpCb29sZWFuPiB2OEJvb2xlYW4oYm9vbCB2
YWx1ZSk7CiAKICAgICBTdHJpbmcgdG9XZWJDb3JlU3RyaW5nV2l0aE51bGxDaGVjayh2ODo6SGFu
ZGxlPHY4OjpWYWx1ZT4gdmFsdWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvY3VzdG9tL1Y4RGF0YVZpZXdDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvY3VzdG9tL1Y4RGF0YVZpZXdDdXN0b20uY3BwCmluZGV4IGNiYjlkMjcuLjY2YzM5Mjkg
MTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERhdGFWaWV3
Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhEYXRh
Vmlld0N1c3RvbS5jcHAKQEAgLTQxLDYgKzQxLDEzIEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBW
OERhdGFWaWV3Ojpjb25zdHJ1Y3RvckNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3Mp
CiAgICAgaWYgKCFhcmdzLklzQ29uc3RydWN0Q2FsbCgpKQogICAgICAgICByZXR1cm4gdGhyb3dF
cnJvcigiRE9NIG9iamVjdCBjb25zdHJ1Y3RvciBjYW5ub3QgYmUgY2FsbGVkIGFzIGEgZnVuY3Rp
b24iLCBWOFByb3h5OjpUeXBlRXJyb3IpOwogCisgICAgaWYgKCFhcmdzLkxlbmd0aCgpKSB7Cisg
ICAgICAgIC8vIHNlZSBjb25zdHJ1Y3RXZWJHTEFycmF5IC0tIHdlIGRvbid0IHNlZW0gdG8gYmUg
YWJsZSB0byBkaXN0aW5naXNoIGJldHdlZW4KKyAgICAgICAgLy8gJ25ldyBEYXRhVmlldygpJyBh
bmQgdGhlIGNhbGwgdXNlZCB0byBjb25zdHJ1Y3QgdGhlIGNhY2hlZCBEYXRhVmlldyBvYmplY3Qu
CisgICAgICAgIFJlZlB0cjxEYXRhVmlldz4gZGF0YVZpZXcgPSBEYXRhVmlldzo6Y3JlYXRlKDAp
OworICAgICAgICBWOERPTVdyYXBwZXI6OnNldERPTVdyYXBwZXIoYXJncy5Ib2xkZXIoKSwgJmlu
Zm8sIGRhdGFWaWV3LmdldCgpKTsKKyAgICAgICAgcmV0dXJuIHRvVjgoZGF0YVZpZXcucmVsZWFz
ZSgpLCBhcmdzLkhvbGRlcigpKTsKKyAgICB9CiAgICAgaWYgKGFyZ3NbMF0tPklzTnVsbCgpIHx8
ICFWOEFycmF5QnVmZmVyOjpIYXNJbnN0YW5jZShhcmdzWzBdKSkKICAgICAgICAgcmV0dXJuIFY4
UHJveHk6OnRocm93VHlwZUVycm9yKCk7CiAgICAgcmV0dXJuIGNvbnN0cnVjdFdlYkdMQXJyYXlX
aXRoQXJyYXlCdWZmZXJBcmd1bWVudDxEYXRhVmlldywgY2hhcj4oYXJncywgJmluZm8sIHY4Ojpr
RXh0ZXJuYWxCeXRlQXJyYXksIGZhbHNlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9ET01Db3JlRXhjZXB0aW9uLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01Db3JlRXhjZXB0
aW9uLmlkbAppbmRleCA5NDU3MTJkLi42YzkxY2E2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRE9NQ29yZUV4Y2VwdGlvbi5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTUNv
cmVFeGNlcHRpb24uaWRsCkBAIC03NCw2ICs3NCw5IEBAIG1vZHVsZSBjb3JlIHsKICAgICAgICAg
Y29uc3QgdW5zaWduZWQgc2hvcnQgICAgICBBQk9SVF9FUlIgICAgICAgICAgICAgICAgICAgICAg
PSAyMDsKICAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgICAgICBVUkxfTUlTTUFUQ0hfRVJS
ICAgICAgICAgICAgICAgPSAyMTsKICAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgICAgICBR
VU9UQV9FWENFRURFRF9FUlIgICAgICAgICAgICAgPSAyMjsKKyAgICAgICAgY29uc3QgdW5zaWdu
ZWQgc2hvcnQgICAgICBUSU1FT1VUX0VSUiAgICAgICAgICAgICAgICAgICAgPSAyMzsKKyAgICAg
ICAgY29uc3QgdW5zaWduZWQgc2hvcnQgICAgICBJTlZBTElEX05PREVfVFlQRV9FUlIgICAgICAg
ICAgPSAyNDsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgICAgICBEQVRBX0NMT05FX0VS
UiAgICAgICAgICAgICAgICAgPSAyNTsKICAgICB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRXhjZXB0aW9uQ29kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXhjZXB0
aW9uQ29kZS5jcHAKaW5kZXggY2FlYTU1OS4uOGI4MmY1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0V4Y2VwdGlvbkNvZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FeGNl
cHRpb25Db2RlLmNwcApAQCAtNzIsNyArNzIsMTAgQEAgc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0
IGV4Y2VwdGlvbk5hbWVzW10gPSB7CiAgICAgIk5FVFdPUktfRVJSIiwKICAgICAiQUJPUlRfRVJS
IiwKICAgICAiVVJMX01JU01BVENIX0VSUiIsCi0gICAgIlFVT1RBX0VYQ0VFREVEX0VSUiIKKyAg
ICAiUVVPVEFfRVhDRUVERURfRVJSIiwKKyAgICAiVElNRU9VVF9FUlIiLAorICAgICJJTlZBTElE
X05PREVfVFlQRV9FUlIiLAorICAgICJEQVRBX0NMT05FX0VSUiIKIH07CiAKIHN0YXRpYyBjb25z
dCBjaGFyKiBjb25zdCBleGNlcHRpb25EZXNjcmlwdGlvbnNbXSA9IHsKQEAgLTk4LDcgKzEwMSwx
MCBAQCBzdGF0aWMgY29uc3QgY2hhciogY29uc3QgZXhjZXB0aW9uRGVzY3JpcHRpb25zW10gPSB7
CiAgICAgIkEgbmV0d29yayBlcnJvciBvY2N1cmVkLiIsCiAgICAgIlRoZSB1c2VyIGFib3J0ZWQg
YSByZXF1ZXN0LiIsCiAgICAgIkEgd29ya2VyIGdsb2JhbCBzY29wZSByZXByZXNlbnRlZCBhbiBh
YnNvbHV0ZSBVUkwgdGhhdCBpcyBub3QgZXF1YWwgdG8gdGhlIHJlc3VsdGluZyBhYnNvbHV0ZSBV
UkwuIiwKLSAgICAiQW4gYXR0ZW1wdCB3YXMgbWFkZSB0byBhZGQgc29tZXRoaW5nIHRvIHN0b3Jh
Z2UgdGhhdCBleGNlZWRlZCB0aGUgcXVvdGEuIgorICAgICJBbiBhdHRlbXB0IHdhcyBtYWRlIHRv
IGFkZCBzb21ldGhpbmcgdG8gc3RvcmFnZSB0aGF0IGV4Y2VlZGVkIHRoZSBxdW90YS4iLAorICAg
ICJBIHRpbWVvdXQgb2NjdXJyZWQuIiwKKyAgICAiVGhlIHN1cHBsaWVkIG5vZGUgaXMgaW52YWxp
ZCBvciBoYXMgYW4gaW52YWxpZCBhbmNlc3RvciBmb3IgdGhpcyBvcGVyYXRpb24uIiwKKyAgICAi
QW4gb2JqZWN0IGNvdWxkIG5vdCBiZSBjbG9uZWQuIgogfTsKIAogc3RhdGljIGNvbnN0IGNoYXIq
IGNvbnN0IHJhbmdlRXhjZXB0aW9uTmFtZXNbXSA9IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9FeGNlcHRpb25Db2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXhjZXB0aW9uQ29k
ZS5oCmluZGV4IDljZWU2NmIuLmNlYTZmNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FeGNlcHRpb25Db2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V4Y2VwdGlvbkNvZGUu
aApAQCAtNTcsMTQgKzU3LDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgTkVUV09S
S19FUlIgPSAxOSwKICAgICAgICAgQUJPUlRfRVJSID0gMjAsCiAgICAgICAgIFVSTF9NSVNNQVRD
SF9FUlIgPSAyMSwKLSAgICAgICAgUVVPVEFfRVhDRUVERURfRVJSID0gMjIKLQotICAgICAgICAv
LyBJbnRyb2R1Y2VkIGluIEZpbGUgQVBJOgotICAgICAgICAvLyBodHRwOi8vd3d3LnczLm9yZy9U
Ui9maWxlLXVwbG9hZC8jZGZuLWZpbGVlcnJvcgotI2lmIEVOQUJMRShCTE9CKSB8fCBFTkFCTEUo
RklMRV9TWVNURU0pCi0gICAgICAgICwgTk9UX1JFQURBQkxFX0VSUiA9IDI0Ci0gICAgICAgICwg
RU5DT0RJTkdfRVJSID0gMjYKLSNlbmRpZgorICAgICAgICBRVU9UQV9FWENFRURFRF9FUlIgPSAy
MiwKKyAgICAgICAgVElNRU9VVF9FUlIgPSAyMywKKyAgICAgICAgSU5WQUxJRF9OT0RFX1RZUEVf
RVJSID0gMjQsCisgICAgICAgIERBVEFfQ0xPTkVfRVJSID0gMjUKICAgICB9OwogCiAgICAgZW51
bSBFeGNlcHRpb25UeXBlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L0FycmF5QnVmZmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0FycmF5QnVmZmVy
LmNwcAppbmRleCA0Zjc1Y2MzLi5lYWQwODc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9BcnJheUJ1ZmZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvQXJyYXlCdWZmZXIuY3BwCkBAIC00Myw3ICs0Myw3IEBAIFBhc3NSZWZQdHI8QXJyYXlCdWZm
ZXI+IEFycmF5QnVmZmVyOjpjcmVhdGUoQXJyYXlCdWZmZXIqIG90aGVyKQogICAgIHJldHVybiBB
cnJheUJ1ZmZlcjo6Y3JlYXRlKG90aGVyLT5kYXRhKCksIG90aGVyLT5ieXRlTGVuZ3RoKCkpOwog
fQogCi1QYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBBcnJheUJ1ZmZlcjo6Y3JlYXRlKHZvaWQqIHNv
dXJjZSwgdW5zaWduZWQgYnl0ZUxlbmd0aCkKK1Bhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IEFycmF5
QnVmZmVyOjpjcmVhdGUoY29uc3Qgdm9pZCogc291cmNlLCB1bnNpZ25lZCBieXRlTGVuZ3RoKQog
ewogICAgIHZvaWQqIGRhdGEgPSB0cnlBbGxvY2F0ZShieXRlTGVuZ3RoLCAxKTsKICAgICBpZiAo
IWRhdGEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9BcnJheUJ1ZmZl
ci5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQXJyYXlCdWZmZXIuaAppbmRleCBmZjVl
NTk5Li40MTM1YzM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9BcnJh
eUJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0FycmF5QnVmZmVyLmgK
QEAgLTM1LDcgKzM1LDcgQEAgY2xhc3MgQXJyYXlCdWZmZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxB
cnJheUJ1ZmZlcj4gewogICBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8QXJyYXlCdWZm
ZXI+IGNyZWF0ZSh1bnNpZ25lZCBudW1FbGVtZW50cywgdW5zaWduZWQgZWxlbWVudEJ5dGVTaXpl
KTsKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4gY3JlYXRlKEFycmF5QnVmZmVy
Kik7Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IGNyZWF0ZSh2b2lkKiBzb3Vy
Y2UsIHVuc2lnbmVkIGJ5dGVMZW5ndGgpOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPEFycmF5QnVm
ZmVyPiBjcmVhdGUoY29uc3Qgdm9pZCogc291cmNlLCB1bnNpZ25lZCBieXRlTGVuZ3RoKTsKIAog
ICAgIHZvaWQqIGRhdGEoKTsKICAgICBjb25zdCB2b2lkKiBkYXRhKCkgY29uc3Q7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9EYXRhVmlldy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9EYXRhVmlldy5jcHAKaW5kZXggZTAwNDQzZC4uM2RiMDZkNiAxMDA3
NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvRGF0YVZpZXcuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0RhdGFWaWV3LmNwcApAQCAtNDAsNiArNDAsMTQgQEAg
dW5pb24gVmFsdWUgewogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK1Bhc3NSZWZQdHI8RGF0YVZp
ZXc+IERhdGFWaWV3OjpjcmVhdGUodW5zaWduZWQgbGVuZ3RoKQoreworICAgIFJlZlB0cjxBcnJh
eUJ1ZmZlcj4gYnVmZmVyID0gQXJyYXlCdWZmZXI6OmNyZWF0ZShsZW5ndGgsIHNpemVvZih1aW50
OF90KSk7CisgICAgaWYgKCFidWZmZXIuZ2V0KCkpCisgICAgICAgIHJldHVybiAwOworICAgIHJl
dHVybiBjcmVhdGUoYnVmZmVyLCAwLCBsZW5ndGgpOworfQorCiBQYXNzUmVmUHRyPERhdGFWaWV3
PiBEYXRhVmlldzo6Y3JlYXRlKFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IGJ1ZmZlciwgdW5zaWdu
ZWQgYnl0ZU9mZnNldCwgdW5zaWduZWQgYnl0ZUxlbmd0aCkKIHsKICAgICBpZiAoYnl0ZU9mZnNl
dCA+IGJ1ZmZlci0+Ynl0ZUxlbmd0aCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvRGF0YVZpZXcuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0RhdGFWaWV3
LmgKaW5kZXggYThhYmE1Yy4uNWU4MGY4YyAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvRGF0YVZpZXcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9EYXRh
Vmlldy5oCkBAIC0zNCw2ICszNCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRGF0
YVZpZXcgOiBwdWJsaWMgQXJyYXlCdWZmZXJWaWV3IHsKIHB1YmxpYzoKKyAgICBzdGF0aWMgUGFz
c1JlZlB0cjxEYXRhVmlldz4gY3JlYXRlKHVuc2lnbmVkIGxlbmd0aCk7CiAgICAgc3RhdGljIFBh
c3NSZWZQdHI8RGF0YVZpZXc+IGNyZWF0ZShQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiwgdW5zaWdu
ZWQgYnl0ZU9mZnNldCwgdW5zaWduZWQgYnl0ZUxlbmd0aCk7CiAKICAgICB2aXJ0dWFsIGJvb2wg
aXNEYXRhVmlldygpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>100699</attachid>
            <date>2011-07-13 11:49:43 -0700</date>
            <delta_ts>2011-07-13 17:44:14 -0700</delta_ts>
            <desc>Rebase and address comments.</desc>
            <filename>patch1148.patch</filename>
            <type>text/plain</type>
            <size>165918</size>
            <attacher name="Luke Zarko">lukezarko+bugzilla</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2YzczYzllLi43NDBlOTJmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjEgQEAKKzIwMTEtMDct
MTMgIEx1a2UgWmFya28gIDxsdWtlemFya29AZ21haWwuY29tPgorCisgICAgICAgIEJyaW5nIFY4
J3MgU2VyaWFsaXplZFNjcmlwdFZhbHVlIGltcGxlbWVudGF0aW9uIHVwIHRvIGRhdGUuCisKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYzNDgxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBUaGlz
IHBhdGNoIHJlZmFjdG9ycyB3aW5kb3ctcG9zdG1lc3NhZ2UtY2xvbmUgaW50byBhIHNjcmlwdCB0
ZXN0LCBjaGVja3MgYWRkaXRpb25hbCBmdW5jdGlvbmFsaXR5IHNldCBmb3J0aCBpbiB0aGUgc3Rh
bmRhcmQsIGFuZCBmaXhlcyB1cCBleHBlY3RhdGlvbnMuIEl0IGFsc28gY2hlY2tzIHRoZSBjb3Jy
ZWN0bmVzcyBvZiB0eXBlZCBhcnJheSBtZXNzYWdlIHBhc3Npbmcgb24gQ2hyb21pdW0uCisKKyAg
ICAgICAgKiBmYXN0L2RvbS9XaW5kb3cvc2NyaXB0LXRlc3RzL3Bvc3RtZXNzYWdlLWNsb25lLWRl
ZXAtYXJyYXkuanM6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL1dpbmRvdy9zY3JpcHQtdGVz
dHMvcG9zdG1lc3NhZ2UtY2xvbmUtcmVhbGx5LWRlZXAtYXJyYXkuanM6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QvZG9tL1dpbmRvdy9zY3JpcHQtdGVzdHMvcG9zdG1lc3NhZ2UtY2xvbmUuanM6IEFk
ZGVkLgorICAgICAgICAodGh1bmspOgorICAgICAgICAqIGZhc3QvZG9tL1dpbmRvdy9zY3JpcHQt
dGVzdHMvcG9zdG1lc3NhZ2UtdGVzdC5qczogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvZmFzdC9k
b20vV2luZG93L3dpbmRvdy1wb3N0bWVzc2FnZS1jbG9uZS5odG1sLgorICAgICAgICAoKToKKyAg
ICAgICAgKHNhZmVUb1N0cmluZyk6CisgICAgICAgIChzaG91bGRCZSk6CisgICAgICAgIChzaG91
bGRCZUlkZW50aWNhbCk6CisgICAgICAgIChkb1Bhc3MpOgorICAgICAgICAoZG9GYWlsKToKKyAg
ICAgICAgKHdpbmRvdy5kb1Bhc3NGYWlsKToKKyAgICAgICAgKG9ubWVzc2FnZSk6CisgICAgICAg
IChDb25zdHJ1Y3RvcldpdGhQcm90b3R5cGUpOgorICAgICAgICAod2luZG93LnRyeVBvc3RNZXNz
YWdlKToKKyAgICAgICAgKiBmYXN0L2RvbS9XaW5kb3cvd2luZG93LXBvc3RtZXNzYWdlLWNsb25l
LWRlZXAtYXJyYXktZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9XaW5k
b3cvd2luZG93LXBvc3RtZXNzYWdlLWNsb25lLWRlZXAtYXJyYXkuaHRtbDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9kb20vV2luZG93L3dpbmRvdy1wb3N0bWVzc2FnZS1jbG9uZS1leHBlY3RlZC50
eHQ6CisgICAgICAgICogZmFzdC9kb20vV2luZG93L3dpbmRvdy1wb3N0bWVzc2FnZS1jbG9uZS1y
ZWFsbHktZGVlcC1hcnJheS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9t
L1dpbmRvdy93aW5kb3ctcG9zdG1lc3NhZ2UtY2xvbmUtcmVhbGx5LWRlZXAtYXJyYXkuaHRtbDog
QWRkZWQuCisgICAgICAgICogZmFzdC9kb20vV2luZG93L3dpbmRvdy1wb3N0bWVzc2FnZS1jbG9u
ZS5odG1sOgorICAgICAgICAqIGZhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9jYW52YXMvd2ViZ2wv
YXJyYXktbWVzc2FnZS1wYXNzaW5nLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxh
dGZvcm0vY2hyb21pdW0vZmFzdC9jYW52YXMvd2ViZ2wvYXJyYXktbWVzc2FnZS1wYXNzaW5nLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL2Zhc3QvY2FudmFzL3dlYmds
L3NjcmlwdC10ZXN0cy9hcnJheS1tZXNzYWdlLXBhc3NpbmcuanM6IEFkZGVkLgorICAgICAgICAo
Y2xhc3NDb21wYXJlKToKKyAgICAgICAgKGJ1ZmZlckNvbXBhcmUpOgorICAgICAgICAodmlld0Nv
bXBhcmUpOgorICAgICAgICAodHlwZWRBcnJheUNvbXBhcmUpOgorICAgICAgICAoZGF0YVZpZXdD
b21wYXJlKToKKyAgICAgICAgKGNyZWF0ZUJ1ZmZlcik6CisgICAgICAgIChjcmVhdGVUeXBlZEFy
cmF5KToKKyAgICAgICAgKGNyZWF0ZVR5cGVkQXJyYXlPdmVyQnVmZmVyKToKKyAgICAgICAgKHRl
c3RMaXN0KToKKyAgICAgICAgKGRvbmVUZXN0KToKKyAgICAgICAgKHdpbmRvd0hhbmRsZU1lc3Nh
Z2UpOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZG9tL1dpbmRvdy9zY3JpcHQt
dGVzdHMvcG9zdG1lc3NhZ2UtY2xvbmUtZXguanM6IEFkZGVkLgorICAgICAgICAodGh1bmspOgor
ICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcG9zdG1l
c3NhZ2UtY2xvbmUtZGVlcC1hcnJheS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBs
YXRmb3JtL2Nocm9taXVtL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcG9zdG1lc3NhZ2UtY2xvbmUt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2Rv
bS9XaW5kb3cvd2luZG93LXBvc3RtZXNzYWdlLWNsb25lLXJlYWxseS1kZWVwLWFycmF5LWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3Rh
dGlvbnMudHh0OgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9mYXN0L2RvbS9XaW5kb3cvd2luZG93
LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL3F0LXdrMi9mYXN0
L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBs
YXRmb3JtL3F0L2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQ6
CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0c3RvcmUtYmFzaWNzLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9vYmplY3RzdG9yZS1iYXNpY3MuaHRt
bDoKKwogMjAxMS0wNy0xMyAgR2Fib3IgTG9raSAgPGxva2lAd2Via2l0Lm9yZz4KIAogICAgICAg
ICBbUXRdIEZsYWtleSB0ZXN0OiB4bWxodHRwcmVxdWVzdC01MG1zLWRvd25sb2FkLWRpc3BhdGNo
Lmh0bWwgb24gQVJNCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvc2Ny
aXB0LXRlc3RzL3Bvc3RtZXNzYWdlLWNsb25lLWRlZXAtYXJyYXkuanMgYi9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9XaW5kb3cvc2NyaXB0LXRlc3RzL3Bvc3RtZXNzYWdlLWNsb25lLWRlZXAtYXJyYXku
anMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDM5YzY1NAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9zY3JpcHQtdGVzdHMvcG9zdG1l
c3NhZ2UtY2xvbmUtZGVlcC1hcnJheS5qcwpAQCAtMCwwICsxLDYgQEAKK2RvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJkZXNjcmlwdGlvbiIpLmlubmVySFRNTCA9ICJUZXN0cyB0aGF0IHdlIGFib3J0
IGNsb25pbmcgZGVlcChpc2gpIGFycmF5cy4iOworZGVlcEFycmF5PVtdOworZm9yICh2YXIgaSA9
IDA7IGkgPCAxMDAwMDsgaSsrKQorICAgIGRlZXBBcnJheT1bZGVlcEFycmF5XTsKK3RyeVBvc3RN
ZXNzYWdlKCdkZWVwQXJyYXknKTsKK3RyeVBvc3RNZXNzYWdlKCciZG9uZSInKTsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9zY3JpcHQtdGVzdHMvcG9zdG1lc3NhZ2Ut
Y2xvbmUtcmVhbGx5LWRlZXAtYXJyYXkuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cv
c2NyaXB0LXRlc3RzL3Bvc3RtZXNzYWdlLWNsb25lLXJlYWxseS1kZWVwLWFycmF5LmpzCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhmYjYwOTYKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvc2NyaXB0LXRlc3RzL3Bvc3RtZXNzYWdlLWNs
b25lLXJlYWxseS1kZWVwLWFycmF5LmpzCkBAIC0wLDAgKzEsNiBAQAorZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoImRlc2NyaXB0aW9uIikuaW5uZXJIVE1MID0gIlRlc3RzIHRoYXQgd2UgYWJvcnQg
Y2xvbmluZyBvdmVyZGVlcCBhcnJheXMuIjsKK3JlYWxseURlZXBBcnJheT1bXTsKK2ZvciAodmFy
IGkgPSAwOyBpIDwgMTAwMDAwOyBpKyspCisgICAgcmVhbGx5RGVlcEFycmF5PVtyZWFsbHlEZWVw
QXJyYXldOwordHJ5UG9zdE1lc3NhZ2UoJ3JlYWxseURlZXBBcnJheScsIHRydWUsIG51bGwsIERP
TUV4Y2VwdGlvbi5EQVRBX0NMT05FX0VSUik7Cit0cnlQb3N0TWVzc2FnZSgnImRvbmUiJyk7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvc2NyaXB0LXRlc3RzL3Bvc3Rt
ZXNzYWdlLWNsb25lLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3NjcmlwdC10ZXN0
cy9wb3N0bWVzc2FnZS1jbG9uZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li5kMDJjODMyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93
L3NjcmlwdC10ZXN0cy9wb3N0bWVzc2FnZS1jbG9uZS5qcwpAQCAtMCwwICsxLDI3NCBAQAorZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRlc2NyaXB0aW9uIikuaW5uZXJIVE1MID0gIlRlc3RzIHRo
YXQgd2UgY2xvbmUgb2JqZWN0IGhpZXJhcmNoaWVzIjsKKwordHJ5UG9zdE1lc3NhZ2UoJ251bGwn
KTsKK3RyeVBvc3RNZXNzYWdlKCd1bmRlZmluZWQnKTsKK3RyeVBvc3RNZXNzYWdlKCcxJyk7Cit0
cnlQb3N0TWVzc2FnZSgndHJ1ZScpOwordHJ5UG9zdE1lc3NhZ2UoJyIxIicpOwordHJ5UG9zdE1l
c3NhZ2UoJyh7fSknKTsKK3RyeVBvc3RNZXNzYWdlKCcoe2E6MX0pJyk7Cit0cnlQb3N0TWVzc2Fn
ZSgnKHthOiJhIn0pJyk7Cit0cnlQb3N0TWVzc2FnZSgnKHtiOiJhIiwgYToiYiJ9KScpOwordHJ5
UG9zdE1lc3NhZ2UoJyh7cDA6InN0cmluZzAiLCBwMToic3RyaW5nMSIsIHAyOiJzdHJpbmcyIiwg
cDM6InN0cmluZzMiLCBwNDoic3RyaW5nNCIsIHA1OiJzdHJpbmc1IiwgcDY6InN0cmluZzYiLCBw
Nzoic3RyaW5nNyIsIHA4OiJzdHJpbmc4IiwgcDk6InN0cmluZzkiLCBwMTA6InN0cmluZzEwIiwg
cDExOiJzdHJpbmcxMSIsIHAxMjoic3RyaW5nMTIiLCBwMTM6InN0cmluZzEzIiwgcDE0OiJzdHJp
bmcxNCIsIHAxNToic3RyaW5nMTUiLCBwMTY6InN0cmluZzE2IiwgcDE3OiJzdHJpbmcxNyIsIHAx
ODoic3RyaW5nMTgiLCBwMTk6InN0cmluZzE5In0pJyk7Cit0cnlQb3N0TWVzc2FnZSgnKHtwMDoi
c3RyaW5nMSIsIHAxOiJzdHJpbmcxIiwgcDI6InN0cmluZzIiLCBwMzoic3RyaW5nMyIsIHA0OiJz
dHJpbmc0IiwgcDU6InN0cmluZzUiLCBwNjoic3RyaW5nNiIsIHA3OiJzdHJpbmc3IiwgcDg6InN0
cmluZzgiLCBwOToic3RyaW5nOSIsIHAxMDoic3RyaW5nMTAiLCBwMTE6InN0cmluZzExIiwgcDEy
OiJzdHJpbmcxMiIsIHAxMzoic3RyaW5nMTMiLCBwMTQ6InN0cmluZzE0IiwgcDE1OiJzdHJpbmcx
NSIsIHAxNjoic3RyaW5nMTYiLCBwMTc6InN0cmluZzE3IiwgcDE4OiJzdHJpbmcxOCIsIHAxOToi
c3RyaW5nMTkifSknKTsKK3RyeVBvc3RNZXNzYWdlKCcoe2E6IiJ9KScpOwordHJ5UG9zdE1lc3Nh
Z2UoJyh7YTowfSknKTsKK3RyeVBvc3RNZXNzYWdlKCcoe2E6MX0pJyk7Cit0cnlQb3N0TWVzc2Fn
ZSgnW10nKTsKK3RyeVBvc3RNZXNzYWdlKCdbImEiLCAiYSIsICJiIiwgImEiLCAiYiJdJyk7Cit0
cnlQb3N0TWVzc2FnZSgnWyJhIiwgImEiLCAiYiIsIHthOiJiIiwgYjoiYSJ9XScpOwordHJ5UG9z
dE1lc3NhZ2UoJ1sxLDIsM10nKTsKK3RyeVBvc3RNZXNzYWdlKCdbLCwxXScpOwordHJ5UG9zdE1l
c3NhZ2UoJyhmdW5jdGlvbigpe30pJywgdHJ1ZSwgbnVsbCwgRE9NRXhjZXB0aW9uLkRBVEFfQ0xP
TkVfRVJSKTsKK3RyeVBvc3RNZXNzYWdlKCduZXcgRGF0ZSgxMjM0NTY3ODkwMDAwKScpOwordHJ5
UG9zdE1lc3NhZ2UoJ25ldyBDb25zdHJ1Y3RvcldpdGhQcm90b3R5cGUoImZvbyIpJywgZmFsc2Us
ICcoe2ZpZWxkOiJmb28ifSknKTsKK2N5Y2xpY09iamVjdD17fTsKK2N5Y2xpY09iamVjdC5zZWxm
ID0gY3ljbGljT2JqZWN0OwordHJ5UG9zdE1lc3NhZ2UoJ2N5Y2xpY09iamVjdCcsIGZhbHNlLCAi
Y3ljbGljT2JqZWN0Iik7CitjeWNsaWNBcnJheT1bXTsKK2N5Y2xpY0FycmF5WzBdID0gY3ljbGlj
QXJyYXk7Cit0cnlQb3N0TWVzc2FnZSgnY3ljbGljQXJyYXknLCBmYWxzZSwgImN5Y2xpY0FycmF5
Iik7CitvYmplY3RHcmFwaCA9IHt9Oworb2JqZWN0ID0ge307CitvYmplY3RHcmFwaC5ncmFwaDEg
PSBvYmplY3Q7CitvYmplY3RHcmFwaC5ncmFwaDIgPSBvYmplY3Q7Cit0cnlQb3N0TWVzc2FnZSgn
b2JqZWN0R3JhcGgnLCBmYWxzZSwgIm9iamVjdEdyYXBoIik7CithcnJheUdyYXBoID0gW29iamVj
dCwgb2JqZWN0XTsKK3RyeVBvc3RNZXNzYWdlKCdhcnJheUdyYXBoJywgZmFsc2UsICJhcnJheUdy
YXBoIik7Cit0cnlQb3N0TWVzc2FnZSgnd2luZG93JywgdHJ1ZSk7Cit0cnlQb3N0TWVzc2FnZSgn
KHtnZXQgYSgpIHsgdGhyb3cgIngiIH19KScsIHRydWUpOworCitpZiAod2luZG93LmV2ZW50U2Vu
ZGVyKSB7CisgICAgdmFyIGZpbGVJbnB1dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxl
SW5wdXQiKTsKKyAgICB2YXIgZmlsZVJlY3QgPSBmaWxlSW5wdXQuZ2V0Q2xpZW50UmVjdHMoKVsw
XTsKKyAgICB2YXIgdGFyZ2V0WCA9IGZpbGVSZWN0LmxlZnQgKyBmaWxlUmVjdC53aWR0aCAvIDI7
CisgICAgdmFyIHRhcmdldFkgPSBmaWxlUmVjdC50b3AgKyBmaWxlUmVjdC5oZWlnaHQgLyAyOwor
ICAgIGV2ZW50U2VuZGVyLmJlZ2luRHJhZ1dpdGhGaWxlcyhbJ2dvdC1maWxlLXVwbG9hZC5odG1s
JywgJ2dvdC1maWxlLXVwbG9hZC0yLmh0bWwnXSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VNb3Zl
VG8odGFyZ2V0WCwgdGFyZ2V0WSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOworfQordmFy
IGltYWdlRGF0YSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpLmdldENvbnRleHQo
IjJkIikuY3JlYXRlSW1hZ2VEYXRhKDEwLDEwKTsKK2ZvciAodmFyIGkgPSAwOyBpIDwgaW1hZ2VE
YXRhLmRhdGEubGVuZ3RoICogNDsgaSsrKQorICAgIGltYWdlRGF0YS5kYXRhW2ldID0gaSAlIDI1
NjsKK3ZhciBtdXRhdGVkSW1hZ2VEYXRhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFz
IikuZ2V0Q29udGV4dCgiMmQiKS5jcmVhdGVJbWFnZURhdGEoMTAsMTApOworZm9yICh2YXIgaSA9
IDA7IGkgPCBpbWFnZURhdGEuZGF0YS5sZW5ndGggKiA0OyBpKyspCisgICAgbXV0YXRlZEltYWdl
RGF0YS5kYXRhW2ldID0gaSAlIDI1NjsKK3RyeVBvc3RNZXNzYWdlKCdpbWFnZURhdGEnLCBmYWxz
ZSwgaW1hZ2VEYXRhKTsKK3RyeVBvc3RNZXNzYWdlKCdpbWFnZURhdGEuZGF0YScsIHRydWUsIG51
bGwsIERPTUV4Y2VwdGlvbi5EQVRBX0NMT05FX0VSUikKK3RyeVBvc3RNZXNzYWdlKCdtdXRhdGVk
SW1hZ2VEYXRhJywgZmFsc2UsIGltYWdlRGF0YSk7Cit0cnlQb3N0TWVzc2FnZSgnbXV0YXRlZElt
YWdlRGF0YS5kYXRhJywgdHJ1ZSwgbnVsbCwgRE9NRXhjZXB0aW9uLkRBVEFfQ0xPTkVfRVJSKQor
Zm9yICh2YXIgaSA9IDA7IGkgPCBpbWFnZURhdGEuZGF0YS5sZW5ndGggKiA0OyBpKyspCisgICAg
bXV0YXRlZEltYWdlRGF0YS5kYXRhW2ldID0gMDsKKworZnVuY3Rpb24gdGh1bmsocykgeworICAg
IHJldHVybiAiKGZ1bmN0aW9uKCkgeyIgKyBzICsgIn0pKCkiOworfQordHJ5UG9zdE1lc3NhZ2Uo
dGh1bmsoJ3JldHVybiA0MjsnKSwgZmFsc2UsICc0MicpOwordHJ5UG9zdE1lc3NhZ2UodGh1bmso
J3JldHVybiA0MjsnKSwgZmFsc2UsIHRodW5rKCdyZXR1cm4gNDAgKyAyOycpKTsKK3RyeVBvc3RN
ZXNzYWdlKHRodW5rKCdyZXR1cm4gNDI7JyksIGZhbHNlLCAiZXZhbFRodW5rIiwKKyAgICAgICAg
ICAgICAgIGZ1bmN0aW9uKHYpIHsgZG9QYXNzRmFpbCh2ID09IDQyLCAiZXZhbFRodW5rIE9LIik7
IH0pCisKKy8vIE9ubHkgZW51bWVyYWJsZSBwcm9wZXJ0aWVzIHNob3VsZCBiZSBzZXJpYWxpemVk
LgordHJ5UG9zdE1lc3NhZ2UodGh1bmsoJ3ZhciBvID0ge3g6ImhlbGxvIn07IE9iamVjdC5kZWZp
bmVQcm9wZXJ0eShvLCAieSIsIHt2YWx1ZToiZ29vZGJ5ZSJ9KTsgcmV0dXJuIG87JyksIGZhbHNl
LCAnKHt4OiJoZWxsbyJ9KScpOworCisvLyBJdCdzIHVuY2xlYXIgd2hhdCB3ZSBzaG91bGQgZG8g
aWYgYW4gYWNjZXNzb3IgbW9kaWZpZXMgYW4gb2JqZWN0IG91dCBmcm9tIHVuZGVyIHVzCisvLyB3
aGlsZSB3ZSdyZSBzZXJpYWxpemluZyBpdDsgdGhlIHN0YW5kYXJkIGRvZXMgbWFuZGF0ZSBjZXJ0
YWluIGFzcGVjdHMgYWJvdXQgZXZhbHVhdGlvbgorLy8gb3JkZXIsIHRob3VnaCwgaW5jbHVkaW5n
IHRoYXQgcHJvcGVydGllcyBtdXN0IGJlIHByb2Nlc3NlZCBpbiB0aGVpciBlbnVtZXJhdGlvbiBv
cmRlci4KK3RyeVBvc3RNZXNzYWdlKHRodW5rKAorICAgICAgICAndmFyIGEgPSBbMCwgMSwgMl07
ICcgKworICAgICAgICAndmFyIGIgPSB7IGdldCB4KCkgeyBhWzBdID0gNDA7IGFbMl0gPSA0Mjsg
YS5wdXNoKDQzKTsgcmV0dXJuIDQxOyB9fTsgJyArCisgICAgICAgICdhWzFdID0gYjsgJyArCisg
ICAgICAgICdyZXR1cm4gYTsnCisgICAgKSwgZmFsc2UsICJldmFsVGh1bmsiLCBmdW5jdGlvbih2
KSB7CisgICAgICAgIGRvUGFzc0ZhaWwodi5sZW5ndGggPT09IDMsICJsZW5ndGggY29ycmVjdCIp
OyAvLyB1bmRlZmluZWQKKyAgICAgICAgZG9QYXNzRmFpbCh2WzBdID09PSAwLCAiZXZhbHVhdGlv
biBvcmRlciBPSyIpOyAvLyBtYW5kYXRvcnkKKyAgICAgICAgZG9QYXNzRmFpbCh2WzFdLnggPT09
IDQxLCAiZXZhbHVhdGlvbiBvcmRlciBPSy9hY2Nlc3NvciByZWFjaGVkIik7IC8vIG1hbmRhdG9y
eQorICAgICAgICBkb1Bhc3NGYWlsKHZbMl0gPT09IDQyLCAiZXZhbHVhdGlvbiBvcmRlciBPSyIp
OyAvLyBtYW5kYXRvcnkKKyAgICB9KTsKKwordHJ5UG9zdE1lc3NhZ2UodGh1bmsoCisgICAgICAg
ICd2YXIgYSA9IFswLCAxLCAyXTsgJyArCisgICAgICAgICd2YXIgYiA9IHsgZ2V0IHgoKSB7IGEu
cG9wKCk7IHJldHVybiA0MTsgfSB9OyAnICsKKyAgICAgICAgJ2FbMV0gPSBiOyAnICsKKyAgICAg
ICAgJ3JldHVybiBhOycKKyAgICApLCBmYWxzZSwgImV2YWxUaHVuayIsIGZ1bmN0aW9uKHYpIHsK
KyAgICAgICAgZG9QYXNzRmFpbCh2Lmxlbmd0aCA9PT0gMywgImxlbmd0aCBjb3JyZWN0Iik7IC8v
IHVuZGVmaW5lZAorICAgICAgICBkb1Bhc3NGYWlsKHZbMF0gPT09IDAsICJpeCAwIE9LIik7IC8v
IG1hbmRhdG9yeQorICAgICAgICBkb1Bhc3NGYWlsKHZbMV0ueCA9PT0gNDEsICJhY2Nlc3NvciBy
ZWFjaGVkIik7IC8vIG1hbmRhdG9yeQorICAgICAgICBkb1Bhc3NGYWlsKHZbMl0gPT09IHVuZGVm
aW5lZCwgIml4IDIgdW5kZWZpbmVkIik7IC8vIHVuZGVmaW5lZAorICAgIH0pOworCit0cnlQb3N0
TWVzc2FnZSh0aHVuaygKKyAgICAgICAgJ3ZhciBhID0gWzAsIDEsIDJdOyAnICsKKyAgICAgICAg
J3ZhciBiID0geyBnZXQgeCgpIHsgYS5wb3AoKTsgcmV0dXJuIDQxOyB9IH07ICcgKworICAgICAg
ICAnYVsyXSA9IGI7ICcgKworICAgICAgICAncmV0dXJuIGE7JworICAgICksIGZhbHNlLCAiZXZh
bFRodW5rIiwgZnVuY3Rpb24odikgeworICAgICAgICBkb1Bhc3NGYWlsKHYubGVuZ3RoID09PSAz
LCAibGVuZ3RoIGNvcnJlY3QiKTsgLy8gdW5kZWZpbmVkCisgICAgICAgIGRvUGFzc0ZhaWwodlsw
XSA9PT0gMCwgIml4IDAgT0siKTsgLy8gbWFuZGF0b3J5CisgICAgICAgIGRvUGFzc0ZhaWwodlsx
XSA9PT0gMSwgIml4IDEgT0siKTsgLy8gbWFuZGF0b3J5CisgICAgICAgIGRvUGFzc0ZhaWwodlsy
XS54ID09PSA0MSwgIml4IDIgT0siKTsgLy8gdW5kZWZpbmVkCisgICAgfSk7CisKKy8vIE5vdyB3
aXRoIG9iamVjdHMhIFRoaXMgaXMgYSBsaXR0bGUgbW9yZSB0cmlja3kgYmVjYXVzZSB0aGUgc3Rh
bmRhcmQgZG9lcyBub3QKKy8vIGRlZmluZSBhbiBlbnVtZXJhdGlvbiBvcmRlci4KK3RyeVBvc3RN
ZXNzYWdlKHRodW5rKAorICAgICAgICAndmFyIGEgPSB7cDA6IDAsIHAxOiAxfTsgJyArCisgICAg
ICAgICdPYmplY3QuZGVmaW5lUHJvcGVydHkoYSwgInAyIiwge2dldDpmdW5jdGlvbigpIHtkZWxl
dGUgYS5wMzsgcmV0dXJuIDQyOyB9LCBlbnVtZXJhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRy
dWV9KTsgJyArCisgICAgICAgICdPYmplY3QuZGVmaW5lUHJvcGVydHkoYSwgInAzIiwge2dldDpm
dW5jdGlvbigpIHtkZWxldGUgYS5wMjsgcmV0dXJuIDQzOyB9LCBlbnVtZXJhYmxlOiB0cnVlLCBj
b25maWd1cmFibGU6IHRydWV9KTsgJyArCisgICAgICAgICdPYmplY3QuZGVmaW5lUHJvcGVydHko
YSwgInA0Iiwge2dldDpmdW5jdGlvbigpIHsgYS5wNSA9IDQ1OyByZXR1cm4gNDQ7IH0sIGVudW1l
cmFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZX0pOyAnICsKKyAgICAgICAgJ3JldHVybiBh
OycKKyAgICApLCBmYWxzZSwgImV2YWxUaHVuayIsIGZ1bmN0aW9uKHYpIHsKKyAgICAgICAgZG9Q
YXNzRmFpbCh2LnAwID09PSAwICYmIHYucDEgPT09IDEsICJiYXNpYyBwcm9wZXJ0aWVzIE9LIik7
IC8vIG1hbmRhdG9yeQorICAgICAgICBkb1Bhc3NGYWlsKHYucDIgPT09IHVuZGVmaW5lZCAmJiB2
LnAzICE9PSB1bmRlZmluZWQgfHwKKyAgICAgICAgICAgICAgICAgICB2LnAyICE9PSB1bmRlZmlu
ZWQgJiYgdi5wMyA9PT0gdW5kZWZpbmVkLCAib25lIGFjY2Vzc29yIHdhcyBydW4iKTsgLy8gbWFu
ZGF0b3J5CisgICAgICAgIGRvUGFzc0ZhaWwodi5wMiAhPT0gdW5kZWZpbmVkIHx8IE9iamVjdC5n
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodiwgInAyIikgPT09IHVuZGVmaW5lZCwgInByb3BlcnR5
IHdhcyByZW1vdmVkIik7IC8vIHVuZGVmaW5lZAorICAgICAgICBkb1Bhc3NGYWlsKHYucDMgIT09
IHVuZGVmaW5lZCB8fCBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHYsICJwMyIpID09
PSB1bmRlZmluZWQsICJwcm9wZXJ0eSB3YXMgcmVtb3ZlZCIpOyAvLyB1bmRlZmluZWQKKyAgICAg
ICAgZG9QYXNzRmFpbCh2LnA0ID09PSA0NCwgImFjY2Vzc29yIHdhcyBydW4iKTsgLy8gbWFuZGF0
b3J5CisgICAgICAgIGRvUGFzc0ZhaWwoT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih2
LCAicDUiKSA9PT0gdW5kZWZpbmVkLCAiZHluYW1pYyBwcm9wZXJ0eSBub3Qgc2VudCIpOyAvLyB1
bmRlZmluZWQKKyAgICB9KTsKKworLy8gT2JqZWN0cyByZXR1cm5lZCBmcm9tIGFjY2Vzc29ycyBz
aG91bGQgc3RpbGwgYmUgY29hbGVzY2VkLgordHJ5UG9zdE1lc3NhZ2UodGh1bmsoCisgICAgICAg
ICd2YXIgb2JqYSA9IHtnZXQgcCgpIHsgcmV0dXJuIDQyOyB9fTsgJyArCisgICAgICAgICd2YXIg
bXNnID0ge2dldCBhKCkgeyByZXR1cm4gb2JqYTsgfSwgYjogb2JqYX07ICcgKworICAgICAgICAn
cmV0dXJuIG1zZzsnCisgICAgKSwgZmFsc2UsICJldmFsVGh1bmsiLCBmdW5jdGlvbih2KSB7Cisg
ICAgICAgIC8vIEludGVyZXN0aW5nbHksIHRoZSBzdGFuZGFyZCBhZG1pdHMgdHdvIGFuc3dlcnMg
aGVyZSEKKyAgICAgICAgZG9QYXNzRmFpbCh2LmEgPT09IHYuYiwgInJlZmVyZW5jZSBlcXVhbGl0
eSBwcmVzZXJ2ZWQiKTsKKyAgICAgICAgZG9QYXNzRmFpbCgodi5iLnAgPT09IDQyICYmIHYuYS5w
ID09PSA0MikgfHwKKyAgICAgICAgICAgICh2LmIucCA9PT0gbnVsbCAmJiB2LmEucCA9PT0gbnVs
bCksICJhY2Nlc3NvcnMgdXNlZCIpOworICAgIH0pOwordHJ5UG9zdE1lc3NhZ2UodGh1bmsoCisg
ICAgICAgICd2YXIgb2JqYSA9IHtnZXQgcCgpIHsgcmV0dXJuIDQyOyB9fTsgJyArCisgICAgICAg
ICd2YXIgbXNnID0ge2E6IG9iamEsIGdldCBiKCkgeyByZXR1cm4gb2JqYTsgfX07ICcgKworICAg
ICAgICAncmV0dXJuIG1zZzsnCisgICAgKSwgZmFsc2UsICJldmFsVGh1bmsiLCBmdW5jdGlvbih2
KSB7CisgICAgICAgIC8vIEludGVyZXN0aW5nbHksIHRoZSBzdGFuZGFyZCBhZG1pdHMgdHdvIGFu
c3dlcnMgaGVyZSEKKyAgICAgICAgZG9QYXNzRmFpbCh2LmEgPT09IHYuYiwgInJlZmVyZW5jZSBl
cXVhbGl0eSBwcmVzZXJ2ZWQgKG9wcG9zaXRlIG9yZGVyKSIpOworICAgICAgICBkb1Bhc3NGYWls
KCh2LmIucCA9PT0gNDIgJiYgdi5hLnAgPT09IDQyKSB8fAorICAgICAgICAgICAgICAgICAgICh2
LmIucCA9PT0gbnVsbCAmJiB2LmEucCA9PT0gbnVsbCksICJhY2Nlc3NvcnMgdXNlZCAob3Bwb3Np
dGUgb3JkZXIpIik7CisgICAgfSk7CisvLyBXZSBzaG91bGQgbnVsbGlmeSB0aGUgcmVzdWx0cyBm
cm9tIGFjY2Vzc29ycyBtb3JlIHRoYW4gb25lIGxldmVsIGRlZXAsCisvLyBidXQgbGVhdmUgb3Ro
ZXIgZmllbGRzIHVudG91Y2hlZC4KK3RyeVBvc3RNZXNzYWdlKHRodW5rKAorICAgICAgICAndmFy
IG9iamEgPSB7Z2V0IHAoKSB7IHJldHVybiA0MjsgfSwgcTogNDN9OyAnICsKKyAgICAgICAgJ3Jl
dHVybiB7Z2V0IGEoKSB7IHJldHVybiBvYmphOyB9fTsnCisgICAgKSwgZmFsc2UsICJldmFsVGh1
bmsiLCBmdW5jdGlvbih2KSB7CisgICAgICAgIGRvUGFzc0ZhaWwodi5hLnAgPT09IG51bGwsICJh
Y2Nlc3NvciB2YWx1ZSB3YXMgbnVsbGlmaWVkIik7CisgICAgICAgIGRvUGFzc0ZhaWwodi5hLnEg
PT09IDQzLCAibm9uLWFjY2Vzc29yIHZhbHVlIHdhcyBub3QgbnVsbGlmaWVkIik7CisgICAgfSk7
Cit0cnlQb3N0TWVzc2FnZSh0aHVuaygKKyAgICAgICAgJ3ZhciBvYmpiID0ge2dldCByKCkgeyBy
ZXR1cm4gNDQ7IH0sIHQ6IDQ1fTsgJyArCisgICAgICAgICd2YXIgb2JqYSA9IHtnZXQgcCgpIHsg
cmV0dXJuIDQyOyB9LCBxOiA0Mywgczogb2JqYn07ICcgKworICAgICAgICAncmV0dXJuIHtnZXQg
YSgpIHsgcmV0dXJuIG9iamE7IH19OycKKyAgICApLCBmYWxzZSwgImV2YWxUaHVuayIsIGZ1bmN0
aW9uKHYpIHsKKyAgICAgICAgZG9QYXNzRmFpbCh2LmEucCA9PT0gbnVsbCwgImFjY2Vzc29yIHZh
bHVlIHdhcyBudWxsaWZpZWQiKTsKKyAgICAgICAgZG9QYXNzRmFpbCh2LmEucSA9PT0gNDMsICJu
b24tYWNjZXNzb3IgdmFsdWUgd2FzIG5vdCBudWxsaWZpZWQiKTsKKyAgICAgICAgZG9QYXNzRmFp
bCh2LnMgIT09IG51bGwsICJub24tYWNjZXNzb3IgdmFsdWUgd2FzIG5vdCBudWxsaWZpZWQiKTsK
KyAgICAgICAgZG9QYXNzRmFpbCh2LmEucy5yID09PSBudWxsLCAiYWNjZXNzb3IgdmFsdWUgd2Fz
IG51bGxpZmllZCIpOworICAgICAgICBkb1Bhc3NGYWlsKHYuYS5zLnQgPT09IDQ1LCAibm9uLWFj
Y2Vzc29yIHZhbHVlIHdhcyBub3QgbnVsbGlmaWVkIik7CisgICAgfSk7Cit0cnlQb3N0TWVzc2Fn
ZSh0aHVuaygKKyAgICAgICAgJ3ZhciBvYmpiID0ge2dldCByKCkgeyByZXR1cm4gNDQ7IH0sIHQ6
IDQ1fTsgJyArCisgICAgICAgICd2YXIgb2JqYSA9IHtnZXQgcCgpIHsgcmV0dXJuIDQyOyB9LCBx
OiA0MywgczogW29iamJdfTsgJyArCisgICAgICAgICdyZXR1cm4ge2dldCBjKCkgeyByZXR1cm4g
NDc7IH0sIGdldCBhKCkgeyByZXR1cm4gb2JqYTsgfSwgZ2V0IGIoKSB7IHJldHVybiA0NjsgfSB9
OycKKyAgICApLCBmYWxzZSwgImV2YWxUaHVuayIsIGZ1bmN0aW9uKHYpIHsKKyAgICAgICAgZG9Q
YXNzRmFpbCh2LmIgPT09IDQ2LCAiYWNjZXNzb3IgdmFsdWUgd2FzIG5vdCBudWxsaWZpZWQiKTsK
KyAgICAgICAgZG9QYXNzRmFpbCh2LmMgPT09IDQ3LCAiYWNjZXNzb3IgdmFsdWUgd2FzIG5vdCBu
dWxsaWZpZWQiKTsKKyAgICAgICAgZG9QYXNzRmFpbCh2LmEucCA9PT0gbnVsbCwgImFjY2Vzc29y
IHZhbHVlIHdhcyBudWxsaWZpZWQiKTsKKyAgICAgICAgZG9QYXNzRmFpbCh2LmEucSA9PT0gNDMs
ICJub24tYWNjZXNzb3IgdmFsdWUgd2FzIG5vdCBudWxsaWZpZWQiKTsKKyAgICAgICAgZG9QYXNz
RmFpbCh2LmEucyAhPT0gbnVsbCwgIm5vbi1hY2Nlc3NvciB2YWx1ZSB3YXMgbm90IG51bGxpZmll
ZCIpOworICAgICAgICBkb1Bhc3NGYWlsKHYuYS5zICE9PSB1bmRlZmluZWQsICJub24tYWNjZXNz
b3IgdmFsdWUgaXMgZGVmaW5lZCIpOworICAgICAgICBkb1Bhc3NGYWlsKHYuYS5zWzBdICE9PSBu
dWxsLCAibm9uLWFjY2Vzc29yIHZhbHVlIHdhcyBub3QgbnVsbGlmaWVkIik7CisgICAgICAgIGRv
UGFzc0ZhaWwodi5hLnNbMF0gIT09IHVuZGVmaW5lZCwgIm5vbi1hY2Nlc3NvciB2YWx1ZSBpcyBk
ZWZpbmVkIik7CisgICAgICAgIGRvUGFzc0ZhaWwodi5hLnNbMF0uciA9PT0gbnVsbCwgImFjY2Vz
c29yIHZhbHVlIHdhcyBudWxsaWZpZWQiKTsKKyAgICAgICAgZG9QYXNzRmFpbCh2LmEuc1swXS50
ID09PSA0NSwgIm5vbi1hY2Nlc3NvciB2YWx1ZSB3YXMgbm90IG51bGxpZmllZCIpOworICAgIH0p
OworCisvLyBXZSBuZWVkIHRvIHBhc3Mgb3V0IHRoZSBleGNlcHRpb24gcmFpc2VkIGZyb20gaW50
ZXJuYWwgYWNjZXNzb3JzLgordHJ5UG9zdE1lc3NhZ2UodGh1bmsoCisgICAgICAgICdyZXR1cm4g
e2dldCBhKCkgeyB0aHJvdyAiYWNjZXNzb3ItZXhuIjsgfX07JworICAgICksIHRydWUsIG51bGws
ICdhY2Nlc3Nvci1leG4nKTsKKy8vIFdlIHNob3VsZCBzdGlsbCByZXR1cm4gdGhlIGV4Y2VwdGlv
biByYWlzZWQgZnJvbSBudWxsZWQtb3V0IGFjY2Vzc29ycy4KK3RyeVBvc3RNZXNzYWdlKHRodW5r
KAorICAgICAgICAndmFyIG9iamEgPSB7Z2V0IHAoKSB7IHRocm93ICJhY2Nlc3Nvci1leG4iOyB9
fTsgJyArCisgICAgICAgICdyZXR1cm4ge2dldCBhKCkgeyByZXR1cm4gb2JqYTsgfX07JworICAg
ICksIHRydWUsIG51bGwsICdhY2Nlc3Nvci1leG4nKTsKKy8vIFdlIHNob3VsZCBydW4gdGhlIGZp
cnN0IG51bGxpZmllZCBhY2Nlc3NvciwgYnV0IG5vIG1vcmUuCit0cnlQb3N0TWVzc2FnZSh0aHVu
aygKKyAgICAgICAgJ3dpbmRvdy5iY2FsbGVkID0gdW5kZWZpbmVkOyAnICsKKyAgICAgICAgJ3dp
bmRvdy5hY2FsbGVkID0gdW5kZWZpbmVkOyAnICsKKyAgICAgICAgJ3dpbmRvdy5wY2FsbGVkID0g
dW5kZWZpbmVkOyAnICsKKyAgICAgICAgJ3ZhciBvYmpiID0ge2dldCBiKCkgeyB3aW5kb3cuYmNh
bGxlZCA9IHRydWU7IHJldHVybiA0MjsgfX07ICcgKworICAgICAgICAndmFyIG9iamEgPSB7Z2V0
IGEoKSB7IHdpbmRvdy5hY2FsbGVkID0gdHJ1ZTsgcmV0dXJuIG9iamI7IH19OyAnICsKKyAgICAg
ICAgJ3JldHVybiB7IGdldCBwKCkgeyB3aW5kb3cucGNhbGxlZCA9IHRydWU7IHJldHVybiBvYmph
OyB9fTsnCisgICAgKSwgZmFsc2UsICJldmFsVGh1bmsiLCBmdW5jdGlvbih2KSB7CisgICAgICAg
IGRvUGFzc0ZhaWwodi5wLmEgPT09IG51bGwsICJhY2Nlc3NvciB2YWx1ZSB3YXMgbnVsbGlmaWVk
Iik7CisgICAgICAgIGRvUGFzc0ZhaWwod2luZG93LnBjYWxsZWQgPT09IHRydWUsICJ3aW5kb3cu
cGNhbGxlZCA9PT0gdHJ1ZSIpOworICAgICAgICBkb1Bhc3NGYWlsKHdpbmRvdy5hY2FsbGVkID09
PSB0cnVlLCAid2luZG93LmFjYWxsZWQgPT09IHRydWUiKTsKKyAgICAgICAgZG9QYXNzRmFpbCh3
aW5kb3cuYmNhbGxlZCA9PT0gdW5kZWZpbmVkLCAid2luZG93LmJjYWxsZWQgPT09IHVuZGVmaW5l
ZCIpOworICAgIH0pOworCisvLyBSZWZlcmVuY2UgZXF1YWxpdHkgYmV0d2VlbiBkYXRlcyBtdXN0
IGJlIG1haW50YWluZWQuCit0cnlQb3N0TWVzc2FnZSh0aHVuaygKKyAgICAgICAgJ3ZhciBkMSA9
IG5ldyBEYXRlKDEsMiwzKTsgJyArCisgICAgICAgICd2YXIgZDIgPSBuZXcgRGF0ZSgxLDIsMyk7
ICcgKworICAgICAgICAncmV0dXJuIFtkMSxkMSxkMl07JworICAgICksIGZhbHNlLCAiZXZhbFRo
dW5rIiwgZnVuY3Rpb24odikgeworICAgICAgICBkb1Bhc3NGYWlsKGVxdWFsKHZbMF0sIG5ldyBE
YXRlKDEsMiwzKSksICJEYXRlIHZhbHVlcyBjb3JyZWN0ICgwKSIpOworICAgICAgICBkb1Bhc3NG
YWlsKGVxdWFsKHZbMF0sIHZbMl0pLCAiRGF0ZSB2YWx1ZXMgY29ycmVjdCAoMSkiKTsKKyAgICAg
ICAgZG9QYXNzRmFpbCh2WzBdID09PSB2WzFdLCAiUmVmZXJlbmNlcyB0byBkYXRlcyBjb3JyZWN0
ICgwKSIpOworICAgICAgICBkb1Bhc3NGYWlsKHZbMF0gIT09IHZbMl0sICJSZWZlcmVuY2VzIHRv
IGRhdGVzIGNvcnJlY3QgKDEpIik7CisgICAgfSk7CisKKy8vIFJlZmVyZW5jZSBlcXVhbGl0eSBi
ZXR3ZWVuIHJlZ2V4cHMgbXVzdCBiZSBwcmVzZXJ2ZWQuCit0cnlQb3N0TWVzc2FnZSh0aHVuaygK
KyAgICAgICAgJ3ZhciByeDEgPSBuZXcgUmVnRXhwKCJmb28iKTsgJyArCisgICAgICAgICd2YXIg
cngyID0gbmV3IFJlZ0V4cCgiZm9vIik7ICcgKworICAgICAgICAndmFyIHJ4MyA9IG5ldyBSZWdF
eHAoImZvbyIsICJnaW0iKTsgJyArCisgICAgICAgICdyeDMuZXhlYygiZm9vZm9vZm9vIik7ICcg
KworICAgICAgICAnZG9QYXNzRmFpbChyeDMubGFzdEluZGV4ID09PSAzLCAibGFzdEluZGV4IGlu
aXRpYWxseSBjb3JyZWN0OiB3YXMgIiArIHJ4My5sYXN0SW5kZXgpOyAnICsKKyAgICAgICAgJ3Jl
dHVybiBbcngxLHJ4MSxyeDIscngzXTsnCisgICAgKSwgZmFsc2UsICJldmFsVGh1bmsiLCBmdW5j
dGlvbih2KSB7CisgICAgICAgIGRvUGFzc0ZhaWwodlswXS5zb3VyY2UgPT09ICJmb28iLCAiUmVn
ZXhwIHZhbHVlIGNvcnJlY3QgKDApIik7CisgICAgICAgIGRvUGFzc0ZhaWwodlswXSA9PT0gdlsx
XSwgIlJlZmVyZW5jZXMgdG8gcmVnZXhwcyBjb3JyZWN0ICgwKSIpOworICAgICAgICBkb1Bhc3NG
YWlsKHZbMF0gIT09IHZbMl0sICJSZWZlcmVuY2VzIHRvIHJlZ2V4cHMgY29ycmVjdCAoMSkiKTsK
KyAgICAgICAgZG9QYXNzRmFpbCh2WzBdLmdsb2JhbCA9PT0gZmFsc2UsICJnbG9iYWwgc2V0ICgw
KSIpOworICAgICAgICBkb1Bhc3NGYWlsKHZbM10uZ2xvYmFsID09PSB0cnVlLCAiZ2xvYmFsIHNl
dCAoMSkiKTsKKyAgICAgICAgZG9QYXNzRmFpbCh2WzBdLmlnbm9yZUNhc2UgPT09IGZhbHNlLCAi
aWdub3JlQ2FzZSBzZXQgKDApIik7CisgICAgICAgIGRvUGFzc0ZhaWwodlszXS5pZ25vcmVDYXNl
ID09PSB0cnVlLCAiaWdub3JlQ2FzZSBzZXQgKDEpIik7CisgICAgICAgIGRvUGFzc0ZhaWwodlsw
XS5tdWx0aWxpbmUgPT09IGZhbHNlLCAibXVsdGlsaW5lIHNldCAoMCkiKTsKKyAgICAgICAgZG9Q
YXNzRmFpbCh2WzNdLm11bHRpbGluZSA9PT0gdHJ1ZSwgIm11bHRpbGluZSBzZXQgKDEpIik7Cisg
ICAgICAgIGRvUGFzc0ZhaWwodlswXS5sYXN0SW5kZXggPT09IDAsICJsYXN0SW5kZXggY29ycmVj
dCAoMCkiKTsKKyAgICAgICAgZG9QYXNzRmFpbCh2WzNdLmxhc3RJbmRleCA9PT0gMCwgImxhc3RJ
bmRleCBjb3JyZWN0ICgxKSIpOworICAgIH0pOworCitpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7
CisgICAgdHJ5UG9zdE1lc3NhZ2UodGh1bmsoCisgICAgICAgICd3aW5kb3cuZmlsZUxpc3QgPSBm
aWxlSW5wdXQuZmlsZXM7ICcgKworICAgICAgICAnd2luZG93LmZpbGUwID0gZmlsZUxpc3RbMF07
ICcgKworICAgICAgICAnd2luZG93LmZpbGUxID0gZmlsZUxpc3RbMV07ICcgKworICAgICAgICAn
cmV0dXJuIHdpbmRvdy5maWxlTGlzdC5sZW5ndGgnKSwgZmFsc2UsIDIpOworICAgIGRvUGFzc0Zh
aWwod2luZG93LmZpbGVMaXN0WzBdID09PSB3aW5kb3cuZmlsZTAsICJzYW5pdHkgb24gZmlsZSBy
ZWZlcmVuY2UgZXF1YWxpdHkiKQorICAgIC8vIFRoZSBzdGFuZGFyZCBtYW5kYXRlcyB0aGF0IHdl
IGRvIF9ub3RfIG1haW50YWluIHJlZmVyZW5jZSBlcXVhbGl0eSBmb3IgZmlsZXMgaW4gYSB0cmFu
c2ZlcnJlZCBGaWxlTGlzdC4KKyAgICB0cnlQb3N0TWVzc2FnZSh0aHVuaygncmV0dXJuIFt3aW5k
b3cuZmlsZTAsIHdpbmRvdy5maWxlMF07JworICAgICAgICApLCBmYWxzZSwgImV2YWxUaHVuayIs
IGZ1bmN0aW9uKHYpIHsgZG9QYXNzRmFpbCh2WzBdID09PSB2WzFdLCAiZmlsZSByZWZlcmVuY2Vz
IHRyYW5zZmVyIil9KTsKKyAgICB0cnlQb3N0TWVzc2FnZSh0aHVuaygncmV0dXJuIFt3aW5kb3cu
ZmlsZUxpc3QsIHdpbmRvdy5maWxlMF07JworICAgICAgICApLCBmYWxzZSwgImV2YWxUaHVuayIs
IGZ1bmN0aW9uKHYpIHsgZG9QYXNzRmFpbCh2WzBdWzBdICE9PSB2WzFdLCAiRmlsZUxpc3Qgc2hv
dWxkIG5vdCByZXNwZWN0IHJlZmVyZW5jZSBlcXVhbGl0eSIpfSk7CisgICAgdHJ5UG9zdE1lc3Nh
Z2UodGh1bmsoJ3JldHVybiBbd2luZG93LmZpbGUwLCB3aW5kb3cuZmlsZUxpc3RdOycKKyAgICAg
ICAgKSwgZmFsc2UsICJldmFsVGh1bmsiLCBmdW5jdGlvbih2KSB7IGRvUGFzc0ZhaWwodlsxXVsw
XSAhPT0gdlswXSwgIkZpbGVMaXN0IHNob3VsZCBub3QgcmVzcGVjdCByZWZlcmVuY2UgZXF1YWxp
dHkiKX0pOworICAgIHRyeVBvc3RNZXNzYWdlKHRodW5rKCdyZXR1cm4gW3dpbmRvdy5maWxlTGlz
dCwgd2luZG93LmZpbGVMaXN0XTsnCisgICAgICAgICksIGZhbHNlLCAiZXZhbFRodW5rIiwgZnVu
Y3Rpb24odikgeyBkb1Bhc3NGYWlsKHZbMF0gPT09IHZbMV0sICJGaWxlTGlzdCByZXNwZWN0cyBz
ZWxmLXJlZmVyZW5jZSBlcXVhbGl0eSIpfSk7CisgICAgdHJ5UG9zdE1lc3NhZ2UodGh1bmsoJ3Jl
dHVybiBbd2luZG93LmZpbGVMaXN0LCB3aW5kb3cuZmlsZTAsIHdpbmRvdy5maWxlMV0nCisgICAg
ICAgICksIGZhbHNlLCAiZXZhbFRodW5rIiwgZnVuY3Rpb24odikgeworICAgICAgICAgICAgZG9Q
YXNzRmFpbCh2WzBdLmxlbmd0aCA9PT0gd2luZG93LmZpbGVMaXN0Lmxlbmd0aCwgIkZpbGVMaXN0
IGxlbmd0aCBzZW50IGNvcnJlY3RseSIpOworICAgICAgICAgICAgZG9QYXNzRmFpbCh2WzBdWzBd
ICE9PSB2WzFdLCAiRmlsZUxpc3Qgc2hvdWxkIG5vdCByZXNwZWN0IHJlZmVyZW5jZSBlcXVhbGl0
eSAoMCkiKTsKKyAgICAgICAgICAgIGRvUGFzc0ZhaWwodlswXVsxXSAhPT0gdlsyXSwgIkZpbGVM
aXN0IHNob3VsZCBub3QgcmVzcGVjdCByZWZlcmVuY2UgZXF1YWxpdHkgKDEpIik7CisgICAgICAg
ICAgICBkb1Bhc3NGYWlsKHZbMF1bMF0ubmFtZSA9PSB3aW5kb3cuZmlsZTAubmFtZSwgIkZpbGVM
aXN0IHByZXNlcnZlcyBvcmRlciBhbmQgZGF0YSAobmFtZTApIik7CisgICAgICAgICAgICBkb1Bh
c3NGYWlsKHZbMF1bMV0ubmFtZSA9PSB3aW5kb3cuZmlsZTEubmFtZSwgIkZpbGVMaXN0IHByZXNl
cnZlcyBvcmRlciBhbmQgZGF0YSAobmFtZTEpIik7CisgICAgICAgICAgICBkb1Bhc3NGYWlsKGVx
dWFsKHZbMF1bMF0ubGFzdE1vZGlmaWVkRGF0ZSwgd2luZG93LmZpbGUwLmxhc3RNb2RpZmllZERh
dGUpLCAiRmlsZUxpc3QgcHJlc2VydmVzIG9yZGVyIGFuZCBkYXRhIChkYXRlMCkiKTsKKyAgICAg
ICAgICAgIGRvUGFzc0ZhaWwoZXF1YWwodlswXVsxXS5sYXN0TW9kaWZpZWREYXRlLCB3aW5kb3cu
ZmlsZTEubGFzdE1vZGlmaWVkRGF0ZSksICJGaWxlTGlzdCBwcmVzZXJ2ZXMgb3JkZXIgYW5kIGRh
dGEgKGRhdGUxKSIpOworICAgICAgICB9KTsKK30KK3RyeVBvc3RNZXNzYWdlKCciZG9uZSInKTsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9zY3JpcHQtdGVzdHMvcG9z
dG1lc3NhZ2UtdGVzdC5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9zY3JpcHQtdGVz
dHMvcG9zdG1lc3NhZ2UtdGVzdC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li4wNzUwYTg5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93
L3NjcmlwdC10ZXN0cy9wb3N0bWVzc2FnZS10ZXN0LmpzCkBAIC0wLDAgKzEsMTY5IEBACitpZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
ZHVtcEFzVGV4dCgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsK
K30KKwordmFyIGNvbnNvbGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpOwor
Cit2YXIgbWVzc2FnZXMgPSBbXTsKK3ZhciBldmFsVGh1bmtzID0gW107CisKK2Z1bmN0aW9uIGVx
dWFsKGFjdHVhbCwgZXhwZWN0ZWQpCit7CisgICAgaWYgKGFjdHVhbCA9PT0gZXhwZWN0ZWQpCisg
ICAgICAgIHJldHVybiB0cnVlOworICAgIGlmICh0eXBlb2YgYWN0dWFsICE9PSB0eXBlb2YgZXhw
ZWN0ZWQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoKGFjdHVhbCBpbnN0YW5jZW9m
IERhdGUpIHx8IChleHBlY3RlZCBpbnN0YW5jZW9mIERhdGUpKSB7CisgICAgICAgIGlmICgoYWN0
dWFsIGluc3RhbmNlb2YgRGF0ZSkgJiYgKGV4cGVjdGVkIGluc3RhbmNlb2YgRGF0ZSkpCisgICAg
ICAgICAgICByZXR1cm4gKGV4cGVjdGVkIGluc3RhbmNlb2YgRGF0ZSkgJiYgYWN0dWFsLmdldFRp
bWUoKSA9PSBleHBlY3RlZC5nZXRUaW1lKCk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9
CisgICAgaWYgKEFycmF5LmlzQXJyYXkoYWN0dWFsKSB8fCBBcnJheS5pc0FycmF5KGV4cGVjdGVk
KSkgeworICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkoYWN0dWFsKSB8fCAhQXJyYXkuaXNBcnJh
eShleHBlY3RlZCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGlmIChhY3R1
YWwubGVuZ3RoICE9IGV4cGVjdGVkLmxlbmd0aCkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhY3R1YWwubGVuZ3RoOyBpKyspIHsKKyAgICAg
ICAgICAgIGlmICgoaSBpbiBhY3R1YWwpIF4gKGkgaW4gZXhwZWN0ZWQpKQorICAgICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIGlmICghZXF1YWwoYWN0dWFsW2ldLCBleHBl
Y3RlZFtpXSkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAg
ICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICBpZiAoYWN0dWFsLmNvbnN0cnVjdG9yICE9PSBl
eHBlY3RlZC5jb25zdHJ1Y3RvcikKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHRyeSB7Cisg
ICAgICAgIHZhciBrZXlzID0gT2JqZWN0LmtleXMoYWN0dWFsKTsKKyAgICB9IGNhdGNoKGUpIHsK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICB0cnkgeworICAgIGlmICghZXF1YWwo
a2V5cywgT2JqZWN0LmtleXMoZXhwZWN0ZWQpKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
IH0gY2F0Y2goZSkgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIGZvciAodmFy
IGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykgeworICAgICAgICBpZiAoIWVxdWFsKGFjdHVh
bFtrZXlzW2ldXSwgZXhwZWN0ZWRba2V5c1tpXV0pKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgIH0KKyAgICByZXR1cm4gdHJ1ZTsKK30KKworZnVuY3Rpb24gc2FmZVRvU3RyaW5nKG8p
IHsKKyAgICBpZiAobyBpbnN0YW5jZW9mIERhdGUpCisgICAgICAgIHJldHVybiBvLnRvSVNPU3Ry
aW5nKCk7CisgICAgaWYgKHR5cGVvZiBvICE9PSAib2JqZWN0IiB8fCAhbykKKyAgICAgICAgcmV0
dXJuIG87CisgICAgdHJ5IHsKKyAgICAgICAgcmV0dXJuIG8udG9TdHJpbmcoKTsKKyAgICB9IGNh
dGNoIChlKSB7CisgICAgICAgIHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwo
bykgKyAiKGRlZmF1bHQgdG9TdHJpbmcgdGhyZXcgIitlKyIpIjsKKyAgICB9Cit9CisKK2Z1bmN0
aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpCit7CisgICAgdmFyIGFjdHVhbFZhbHVlID0g
ZXZhbChhY3R1YWwpOworICAgIHZhciBleHBlY3RlZFZhbHVlID0gZXZhbChleHBlY3RlZCk7Cisg
ICAgaWYgKGVxdWFsKGFjdHVhbFZhbHVlLCBleHBlY3RlZFZhbHVlKSkKKyAgICAgICAgY29uc29s
ZS5pbm5lckhUTUwgKz0gIlBBU1M6ICIgKyBhY3R1YWwgKyAiIGlzICIgKyBzYWZlVG9TdHJpbmco
ZXhwZWN0ZWRWYWx1ZSkgKyAiIG9mIHR5cGUgIiArIHR5cGVvZiBhY3R1YWxWYWx1ZSArICI8YnI+
IjsKKyAgICBlbHNlCisgICAgICAgIGNvbnNvbGUuaW5uZXJIVE1MICs9ICJGQUlMOiAiICsgYWN0
dWFsICsgIiBpcyAiICsgYWN0dWFsVmFsdWUgKyAiIHNob3VsZCBiZSAiICsgZXhwZWN0ZWRWYWx1
ZSArICIgb2YgdHlwZSAiICsgdHlwZW9mIGV4cGVjdGVkVmFsdWUgKyAiPGJyPiI7Cit9CisKK2Z1
bmN0aW9uIHNob3VsZEJlSWRlbnRpY2FsKGFjdHVhbCwgZXhwZWN0ZWQpCit7CisgICAgdmFyIGFj
dHVhbFZhbHVlID0gZXZhbChhY3R1YWwpOworICAgIHZhciBleHBlY3RlZFZhbHVlID0gZXZhbChl
eHBlY3RlZCk7CisgICAgaWYgKGFjdHVhbFZhbHVlID09PSBleHBlY3RlZFZhbHVlKQorICAgICAg
ICBjb25zb2xlLmlubmVySFRNTCArPSAiUEFTUzogIiArIGFjdHVhbCArICIgaXMgPT09IHRvICIg
KyBleHBlY3RlZCArICI8YnI+IjsKKyAgICBlbHNlCisgICAgICAgIGNvbnNvbGUuaW5uZXJIVE1M
ICs9ICJGQUlMOiAiICsgYWN0dWFsICsgIiBpcyBub3QgPT09IHRvICIgKyBleHBlY3RlZCArICI8
YnI+IjsKK30KKworZnVuY3Rpb24gZG9QYXNzKG1zZykgeworICAgIGNvbnNvbGUuaW5uZXJIVE1M
ICs9ICJQQVNTOiAiICsgbXNnICsgIjxicj4iOworfQorCitmdW5jdGlvbiBkb0ZhaWwobXNnKSB7
CisgICAgY29uc29sZS5pbm5lckhUTUwgKz0gIkZBSUw6ICIgKyBtc2cgKyAiPGJyPiI7Cit9CisK
K3dpbmRvdy5kb1Bhc3NGYWlsID0gZnVuY3Rpb24ocmVzdWx0LCBtc2cpIHsKKyAgICBjb25zb2xl
LmlubmVySFRNTCArPSAocmVzdWx0ID8gIlBBU1M6ICIgOiAiRkFJTDogIikgKyBtc2cgKyAiPGJy
PiI7Cit9CisKK2Z1bmN0aW9uIG9ubWVzc2FnZShldnQpIHsKKyAgICBldmVudERhdGEgPSBldnQu
ZGF0YTsKKyAgICBpZiAoZXZ0LmRhdGEgIT09IGV2dC5kYXRhKQorICAgICAgICBjb25zb2xlLmlu
bmVySFRNTCArPSAiTWVzc2FnZUV2ZW50LmRhdGEgZG9lcyBub3QgcHJvZHVjZSB0aGUgc2FtZSB2
YWx1ZSBvbiBtdWx0aXBsZSBxdWVyaWVzLjxicj4iOworICAgIHZhciBtZXNzYWdlID0gbWVzc2Fn
ZXMuc2hpZnQoKTsKKyAgICBzd2l0Y2ggKG1lc3NhZ2UpIHsKKyAgICBjYXNlICJjeWNsaWNPYmpl
Y3QiOgorICAgICAgICBzaG91bGRCZUlkZW50aWNhbCgiZXZlbnREYXRhIiwgImV2ZW50RGF0YS5z
ZWxmIik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgImN5Y2xpY0FycmF5IjoKKyAgICAgICAg
c2hvdWxkQmVJZGVudGljYWwoImV2ZW50RGF0YSIsICJldmVudERhdGFbMF0iKTsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSAib2JqZWN0R3JhcGgiOgorICAgICAgICBzaG91bGRCZUlkZW50aWNh
bCgiZXZlbnREYXRhLmdyYXBoMSIsICJldmVudERhdGEuZ3JhcGgyIik7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgImFycmF5R3JhcGgiOgorICAgICAgICBzaG91bGRCZUlkZW50aWNhbCgiZXZl
bnREYXRhWzBdIiwgImV2ZW50RGF0YVsxXSIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlICJl
dmFsVGh1bmsiOgorICAgICAgICB2YXIgdGh1bmsgPSBldmFsVGh1bmtzLnNoaWZ0KCk7CisgICAg
ICAgIHRyeSB7CisgICAgICAgICAgICB0aHVuayhldmVudERhdGEpOworICAgICAgICB9IGNhdGNo
KGUpIHsKKyAgICAgICAgICAgIGRvRmFpbCgidGhyZXcgZXhjZXB0aW9uOiAiICsgZSk7CisgICAg
ICAgICAgICB0aHJvdyBlOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6
CisgICAgICAgIHNob3VsZEJlKCJldmVudERhdGEiLCBtZXNzYWdlKTsKKyAgICB9CisKKyAgICBp
ZiAoc2FmZVRvU3RyaW5nKGV2dC5kYXRhKSA9PSAnZG9uZScgJiYgd2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Cit9
CisKK3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgb25tZXNzYWdlLCBmYWxzZSk7
CisKK2Z1bmN0aW9uIENvbnN0cnVjdG9yV2l0aFByb3RvdHlwZShzKSB7CisgICAgdGhpcy5maWVs
ZCA9IHM7Cit9CisKK0NvbnN0cnVjdG9yV2l0aFByb3RvdHlwZS5wcm90b3R5cGUgPSB7CisgICAg
cHJvdG9Qcm9wZXJ0eTogMjAxMAorfTsKKword2luZG93LnRyeVBvc3RNZXNzYWdlID0gZnVuY3Rp
b24obWVzc2FnZSwgc2hvdWxkVGhyb3csIGV4cGVjdGVkLCBleHBlY3RlZEV4Y2VwdGlvbk9yRXZh
bFRodW5rKSB7CisgICAgaWYgKGV4cGVjdGVkID09ICJldmFsVGh1bmsiKSB7CisgICAgICB2YXIg
ZXZhbFRodW5rID0gZXhwZWN0ZWRFeGNlcHRpb25PckV2YWxUaHVuazsKKyAgICB9IGVsc2Ugewor
ICAgICAgdmFyIGV4cGVjdGVkRXhjZXB0aW9uID0gZXhwZWN0ZWRFeGNlcHRpb25PckV2YWxUaHVu
azsKKyAgICB9CisgICAgdHJ5IHsKKyAgICAgICAgdmFyIHZhbHVlID0gZXZhbChtZXNzYWdlKTsK
KyAgICAgICAgcG9zdE1lc3NhZ2UodmFsdWUsICIqIik7CisgICAgICAgIGlmIChzaG91bGRUaHJv
dykKKyAgICAgICAgICAgIGNvbnNvbGUuaW5uZXJIVE1MICs9ICJGQUlMOiAncG9zdE1lc3NhZ2Uo
IittZXNzYWdlKyIpJyBzaG91bGQgdGhyb3cgYnV0IGRpZG4ndDxicj4iOworICAgICAgICBtZXNz
YWdlcy5wdXNoKGV4cGVjdGVkIHx8IG1lc3NhZ2UpOworICAgICAgICBpZiAoZXhwZWN0ZWQgPT0g
ImV2YWxUaHVuayIpIHsKKyAgICAgICAgICAgIGV2YWxUaHVua3MucHVzaChldmFsVGh1bmspOwor
ICAgICAgICB9CisgICAgfSBjYXRjaChlKSB7CisgICAgICAgIGlmIChzaG91bGRUaHJvdykgewor
ICAgICAgICAgICAgaWYgKGV4cGVjdGVkRXhjZXB0aW9uID09PSB1bmRlZmluZWQgfHwgZXhwZWN0
ZWRFeGNlcHRpb24gPT0gZS5jb2RlIHx8IGV4cGVjdGVkRXhjZXB0aW9uID09IGUpIHsKKyAgICAg
ICAgICAgICAgICBjb25zb2xlLmlubmVySFRNTCArPSAiUEFTUzogJ3Bvc3RNZXNzYWdlKCIrbWVz
c2FnZSsiKScgdGhyZXcgIiArIGUgKyAiPGJyPiI7CisgICAgICAgICAgICB9IGVsc2UgeworICAg
ICAgICAgICAgICAgIGNvbnNvbGUuaW5uZXJIVE1MICs9ICJGQUlMOiAncG9zdE1lc3NhZ2UoIitt
ZXNzYWdlKyIpJyB0aHJldyAiICsgZSArICIsIHdhcyBleHBlY3RpbmcgIiArIGV4cGVjdGVkRXhj
ZXB0aW9uICsgIjxicj4iOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UKKyAgICAgICAg
ICAgIGNvbnNvbGUuaW5uZXJIVE1MICs9ICJGQUlMOiAncG9zdE1lc3NhZ2UoIittZXNzYWdlKyIp
JyBzaG91bGQgbm90IHRocm93IGJ1dCB0aHJldyAiICsgZSArICI8YnI+IjsKKyAgICB9Cit9CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXBvc3RtZXNzYWdl
LWNsb25lLWRlZXAtYXJyYXktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2lu
ZG93L3dpbmRvdy1wb3N0bWVzc2FnZS1jbG9uZS1kZWVwLWFycmF5LWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYzFjYWI2Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wb3N0bWVzc2FnZS1jbG9uZS1k
ZWVwLWFycmF5LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1Rlc3RzIHRoYXQgd2UgYWJv
cnQgY2xvbmluZyBkZWVwKGlzaCkgYXJyYXlzLgorCitQQVNTOiBldmVudERhdGEgaXMgW29iamVj
dCBBcnJheV0oZGVmYXVsdCB0b1N0cmluZyB0aHJldyBSYW5nZUVycm9yOiBNYXhpbXVtIGNhbGwg
c3RhY2sgc2l6ZSBleGNlZWRlZC4pIG9mIHR5cGUgb2JqZWN0CitQQVNTOiBldmVudERhdGEgaXMg
ZG9uZSBvZiB0eXBlIHN0cmluZworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9X
aW5kb3cvd2luZG93LXBvc3RtZXNzYWdlLWNsb25lLWRlZXAtYXJyYXkuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcG9zdG1lc3NhZ2UtY2xvbmUtZGVlcC1hcnJheS5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFjM2QxYTEKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXBvc3RtZXNzYWdl
LWNsb25lLWRlZXAtYXJyYXkuaHRtbApAQCAtMCwwICsxLDEwIEBACis8aHRtbD4KKzxoZWFkPjwv
aGVhZD4KKzxib2R5PgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgorPGlucHV0IHR5cGU9
ImZpbGUiIGlkPSJmaWxlSW5wdXQiIG11bHRpcGxlPjwvaW5wdXQ+Cis8ZGl2IGlkPSJjb25zb2xl
Ij48L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvcG9zdG1lc3NhZ2UtdGVzdC5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3Bvc3RtZXNzYWdlLWNsb25lLWRl
ZXAtYXJyYXkuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wb3N0bWVzc2FnZS1jbG9uZS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXBvc3RtZXNzYWdlLWNs
b25lLWV4cGVjdGVkLnR4dAppbmRleCBkMmYwMTQ5Li40NmI2NjFkIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXBvc3RtZXNzYWdlLWNsb25lLWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXBvc3RtZXNzYWdl
LWNsb25lLWV4cGVjdGVkLnR4dApAQCAtMSw4ICsxLDE2IEBACitDT05TT0xFIE1FU1NBR0U6IGxp
bmUgNzQ6IFR5cGVFcnJvcjogTm8gZGVmYXVsdCB2YWx1ZQorQ09OU09MRSBNRVNTQUdFOiBsaW5l
IDc0OiBUeXBlRXJyb3I6IE5vIGRlZmF1bHQgdmFsdWUKIFRlc3RzIHRoYXQgd2UgY2xvbmUgb2Jq
ZWN0IGhpZXJhcmNoaWVzCiAKLVBBU1M6ICdwb3N0TWVzc2FnZShyZWFsbHlEZWVwQXJyYXkpJyB0
aHJldyBSYW5nZUVycm9yOiBNYXhpbXVtIGNhbGwgc3RhY2sgc2l6ZSBleGNlZWRlZC4KK0ZBSUw6
ICdwb3N0TWVzc2FnZSgoZnVuY3Rpb24oKXt9KSknIHNob3VsZCB0aHJvdyBidXQgZGlkbid0CiBQ
QVNTOiAncG9zdE1lc3NhZ2Uod2luZG93KScgdGhyZXcgVHlwZUVycm9yOiBUeXBlIGVycm9yCiBQ
QVNTOiAncG9zdE1lc3NhZ2UoKHtnZXQgYSgpIHsgdGhyb3cgIngiIH19KSknIHRocmV3IHgKK0ZB
SUw6ICdwb3N0TWVzc2FnZShpbWFnZURhdGEuZGF0YSknIHNob3VsZCB0aHJvdyBidXQgZGlkbid0
CitGQUlMOiAncG9zdE1lc3NhZ2UobXV0YXRlZEltYWdlRGF0YS5kYXRhKScgc2hvdWxkIHRocm93
IGJ1dCBkaWRuJ3QKK1BBU1M6ICdwb3N0TWVzc2FnZSgoZnVuY3Rpb24oKSB7cmV0dXJuIHtnZXQg
YSgpIHsgdGhyb3cgImFjY2Vzc29yLWV4biI7IH19O30pKCkpJyB0aHJldyBhY2Nlc3Nvci1leG4K
K1BBU1M6ICdwb3N0TWVzc2FnZSgoZnVuY3Rpb24oKSB7dmFyIG9iamEgPSB7Z2V0IHAoKSB7IHRo
cm93ICJhY2Nlc3Nvci1leG4iOyB9fTsgcmV0dXJuIHtnZXQgYSgpIHsgcmV0dXJuIG9iamE7IH19
O30pKCkpJyB0aHJldyBhY2Nlc3Nvci1leG4KK1BBU1M6IGxhc3RJbmRleCBpbml0aWFsbHkgY29y
cmVjdDogd2FzIDMKK1BBU1M6IHNhbml0eSBvbiBmaWxlIHJlZmVyZW5jZSBlcXVhbGl0eQogUEFT
UzogZXZlbnREYXRhIGlzIG51bGwgb2YgdHlwZSBvYmplY3QKIFBBU1M6IGV2ZW50RGF0YSBpcyB1
bmRlZmluZWQgb2YgdHlwZSB1bmRlZmluZWQKIFBBU1M6IGV2ZW50RGF0YSBpcyAxIG9mIHR5cGUg
bnVtYmVyCkBAIC0yMiwxNyArMzAsODggQEAgUEFTUzogZXZlbnREYXRhIGlzIGEsYSxiLGEsYiBv
ZiB0eXBlIG9iamVjdAogUEFTUzogZXZlbnREYXRhIGlzIGEsYSxiLFtvYmplY3QgT2JqZWN0XSBv
ZiB0eXBlIG9iamVjdAogUEFTUzogZXZlbnREYXRhIGlzIDEsMiwzIG9mIHR5cGUgb2JqZWN0CiBQ
QVNTOiBldmVudERhdGEgaXMgLCwxIG9mIHR5cGUgb2JqZWN0Ci1QQVNTOiBldmVudERhdGEgaXMg
bnVsbCBvZiB0eXBlIG9iamVjdAorRkFJTDogZXZlbnREYXRhIGlzIG51bGwgc2hvdWxkIGJlIGZ1
bmN0aW9uICgpIHt9IG9mIHR5cGUgZnVuY3Rpb24KIFBBU1M6IGV2ZW50RGF0YSBpcyAyMDA5LTAy
LTEzVDIzOjMxOjMwLjAwMFogb2YgdHlwZSBvYmplY3QKIFBBU1M6IGV2ZW50RGF0YSBpcyBbb2Jq
ZWN0IE9iamVjdF0gb2YgdHlwZSBvYmplY3QKIFBBU1M6IGV2ZW50RGF0YSBpcyA9PT0gdG8gZXZl
bnREYXRhLnNlbGYKIFBBU1M6IGV2ZW50RGF0YSBpcyA9PT0gdG8gZXZlbnREYXRhWzBdCiBQQVNT
OiBldmVudERhdGEuZ3JhcGgxIGlzID09PSB0byBldmVudERhdGEuZ3JhcGgyCiBQQVNTOiBldmVu
dERhdGFbMF0gaXMgPT09IHRvIGV2ZW50RGF0YVsxXQotUEFTUzogZXZlbnREYXRhIGlzIFtvYmpl
Y3QgQXJyYXldKGRlZmF1bHQgdG9TdHJpbmcgdGhyZXcgUmFuZ2VFcnJvcjogTWF4aW11bSBjYWxs
IHN0YWNrIHNpemUgZXhjZWVkZWQuKSBvZiB0eXBlIG9iamVjdAotUEFTUzogZXZlbnREYXRhIGlz
IFtvYmplY3QgRmlsZV0gb2YgdHlwZSBvYmplY3QKLVBBU1M6IGV2ZW50RGF0YSBpcyBbb2JqZWN0
IEZpbGVMaXN0XSBvZiB0eXBlIG9iamVjdAogUEFTUzogZXZlbnREYXRhIGlzIFtvYmplY3QgSW1h
Z2VEYXRhXSBvZiB0eXBlIG9iamVjdAogUEFTUzogZXZlbnREYXRhIGlzIFtvYmplY3QgSW1hZ2VE
YXRhXSBvZiB0eXBlIG9iamVjdAorUEFTUzogZXZlbnREYXRhIGlzIDQyIG9mIHR5cGUgbnVtYmVy
CitQQVNTOiBldmVudERhdGEgaXMgNDIgb2YgdHlwZSBudW1iZXIKK1BBU1M6IGV2YWxUaHVuayBP
SworUEFTUzogZXZlbnREYXRhIGlzIFtvYmplY3QgT2JqZWN0XSBvZiB0eXBlIG9iamVjdAorUEFT
UzogbGVuZ3RoIGNvcnJlY3QKK1BBU1M6IGV2YWx1YXRpb24gb3JkZXIgT0sKK1BBU1M6IGV2YWx1
YXRpb24gb3JkZXIgT0svYWNjZXNzb3IgcmVhY2hlZAorUEFTUzogZXZhbHVhdGlvbiBvcmRlciBP
SworUEFTUzogbGVuZ3RoIGNvcnJlY3QKK1BBU1M6IGl4IDAgT0sKK1BBU1M6IGFjY2Vzc29yIHJl
YWNoZWQKK1BBU1M6IGl4IDIgdW5kZWZpbmVkCitQQVNTOiBsZW5ndGggY29ycmVjdAorUEFTUzog
aXggMCBPSworUEFTUzogaXggMSBPSworUEFTUzogaXggMiBPSworUEFTUzogYmFzaWMgcHJvcGVy
dGllcyBPSworUEFTUzogb25lIGFjY2Vzc29yIHdhcyBydW4KK1BBU1M6IHByb3BlcnR5IHdhcyBy
ZW1vdmVkCitQQVNTOiBwcm9wZXJ0eSB3YXMgcmVtb3ZlZAorUEFTUzogYWNjZXNzb3Igd2FzIHJ1
bgorUEFTUzogZHluYW1pYyBwcm9wZXJ0eSBub3Qgc2VudAorUEFTUzogcmVmZXJlbmNlIGVxdWFs
aXR5IHByZXNlcnZlZAorUEFTUzogYWNjZXNzb3JzIHVzZWQKK1BBU1M6IHJlZmVyZW5jZSBlcXVh
bGl0eSBwcmVzZXJ2ZWQgKG9wcG9zaXRlIG9yZGVyKQorUEFTUzogYWNjZXNzb3JzIHVzZWQgKG9w
cG9zaXRlIG9yZGVyKQorRkFJTDogYWNjZXNzb3IgdmFsdWUgd2FzIG51bGxpZmllZAorUEFTUzog
bm9uLWFjY2Vzc29yIHZhbHVlIHdhcyBub3QgbnVsbGlmaWVkCitGQUlMOiBhY2Nlc3NvciB2YWx1
ZSB3YXMgbnVsbGlmaWVkCitQQVNTOiBub24tYWNjZXNzb3IgdmFsdWUgd2FzIG5vdCBudWxsaWZp
ZWQKK1BBU1M6IG5vbi1hY2Nlc3NvciB2YWx1ZSB3YXMgbm90IG51bGxpZmllZAorRkFJTDogYWNj
ZXNzb3IgdmFsdWUgd2FzIG51bGxpZmllZAorUEFTUzogbm9uLWFjY2Vzc29yIHZhbHVlIHdhcyBu
b3QgbnVsbGlmaWVkCitQQVNTOiBhY2Nlc3NvciB2YWx1ZSB3YXMgbm90IG51bGxpZmllZAorUEFT
UzogYWNjZXNzb3IgdmFsdWUgd2FzIG5vdCBudWxsaWZpZWQKK0ZBSUw6IGFjY2Vzc29yIHZhbHVl
IHdhcyBudWxsaWZpZWQKK1BBU1M6IG5vbi1hY2Nlc3NvciB2YWx1ZSB3YXMgbm90IG51bGxpZmll
ZAorUEFTUzogbm9uLWFjY2Vzc29yIHZhbHVlIHdhcyBub3QgbnVsbGlmaWVkCitQQVNTOiBub24t
YWNjZXNzb3IgdmFsdWUgaXMgZGVmaW5lZAorUEFTUzogbm9uLWFjY2Vzc29yIHZhbHVlIHdhcyBu
b3QgbnVsbGlmaWVkCitQQVNTOiBub24tYWNjZXNzb3IgdmFsdWUgaXMgZGVmaW5lZAorRkFJTDog
YWNjZXNzb3IgdmFsdWUgd2FzIG51bGxpZmllZAorUEFTUzogbm9uLWFjY2Vzc29yIHZhbHVlIHdh
cyBub3QgbnVsbGlmaWVkCitGQUlMOiBhY2Nlc3NvciB2YWx1ZSB3YXMgbnVsbGlmaWVkCitQQVNT
OiB3aW5kb3cucGNhbGxlZCA9PT0gdHJ1ZQorUEFTUzogd2luZG93LmFjYWxsZWQgPT09IHRydWUK
K0ZBSUw6IHdpbmRvdy5iY2FsbGVkID09PSB1bmRlZmluZWQKK1BBU1M6IERhdGUgdmFsdWVzIGNv
cnJlY3QgKDApCitQQVNTOiBEYXRlIHZhbHVlcyBjb3JyZWN0ICgxKQorRkFJTDogUmVmZXJlbmNl
cyB0byBkYXRlcyBjb3JyZWN0ICgwKQorUEFTUzogUmVmZXJlbmNlcyB0byBkYXRlcyBjb3JyZWN0
ICgxKQorUEFTUzogUmVnZXhwIHZhbHVlIGNvcnJlY3QgKDApCitGQUlMOiBSZWZlcmVuY2VzIHRv
IHJlZ2V4cHMgY29ycmVjdCAoMCkKK1BBU1M6IFJlZmVyZW5jZXMgdG8gcmVnZXhwcyBjb3JyZWN0
ICgxKQorUEFTUzogZ2xvYmFsIHNldCAoMCkKK1BBU1M6IGdsb2JhbCBzZXQgKDEpCitQQVNTOiBp
Z25vcmVDYXNlIHNldCAoMCkKK1BBU1M6IGlnbm9yZUNhc2Ugc2V0ICgxKQorUEFTUzogbXVsdGls
aW5lIHNldCAoMCkKK1BBU1M6IG11bHRpbGluZSBzZXQgKDEpCitQQVNTOiBsYXN0SW5kZXggY29y
cmVjdCAoMCkKK1BBU1M6IGxhc3RJbmRleCBjb3JyZWN0ICgxKQorUEFTUzogZXZlbnREYXRhIGlz
IDIgb2YgdHlwZSBudW1iZXIKK0ZBSUw6IGZpbGUgcmVmZXJlbmNlcyB0cmFuc2ZlcgorUEFTUzog
RmlsZUxpc3Qgc2hvdWxkIG5vdCByZXNwZWN0IHJlZmVyZW5jZSBlcXVhbGl0eQorUEFTUzogRmls
ZUxpc3Qgc2hvdWxkIG5vdCByZXNwZWN0IHJlZmVyZW5jZSBlcXVhbGl0eQorRkFJTDogRmlsZUxp
c3QgcmVzcGVjdHMgc2VsZi1yZWZlcmVuY2UgZXF1YWxpdHkKK1BBU1M6IEZpbGVMaXN0IGxlbmd0
aCBzZW50IGNvcnJlY3RseQorUEFTUzogRmlsZUxpc3Qgc2hvdWxkIG5vdCByZXNwZWN0IHJlZmVy
ZW5jZSBlcXVhbGl0eSAoMCkKK1BBU1M6IEZpbGVMaXN0IHNob3VsZCBub3QgcmVzcGVjdCByZWZl
cmVuY2UgZXF1YWxpdHkgKDEpCitQQVNTOiBGaWxlTGlzdCBwcmVzZXJ2ZXMgb3JkZXIgYW5kIGRh
dGEgKG5hbWUwKQorUEFTUzogRmlsZUxpc3QgcHJlc2VydmVzIG9yZGVyIGFuZCBkYXRhIChuYW1l
MSkKK1BBU1M6IEZpbGVMaXN0IHByZXNlcnZlcyBvcmRlciBhbmQgZGF0YSAoZGF0ZTApCitQQVNT
OiBGaWxlTGlzdCBwcmVzZXJ2ZXMgb3JkZXIgYW5kIGRhdGEgKGRhdGUxKQogUEFTUzogZXZlbnRE
YXRhIGlzIGRvbmUgb2YgdHlwZSBzdHJpbmcKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9kb20vV2luZG93L3dpbmRvdy1wb3N0bWVzc2FnZS1jbG9uZS1yZWFsbHktZGVlcC1hcnJheS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXBvc3RtZXNz
YWdlLWNsb25lLXJlYWxseS1kZWVwLWFycmF5LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi42MWVhODEzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wb3N0bWVzc2FnZS1jbG9uZS1yZWFsbHktZGVlcC1h
cnJheS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitUZXN0cyB0aGF0IHdlIGFib3J0IGNs
b25pbmcgb3ZlcmRlZXAgYXJyYXlzLgorCitGQUlMOiAncG9zdE1lc3NhZ2UocmVhbGx5RGVlcEFy
cmF5KScgdGhyZXcgUmFuZ2VFcnJvcjogTWF4aW11bSBjYWxsIHN0YWNrIHNpemUgZXhjZWVkZWQu
LCB3YXMgZXhwZWN0aW5nIDI1CitQQVNTOiBldmVudERhdGEgaXMgZG9uZSBvZiB0eXBlIHN0cmlu
ZworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXBvc3Rt
ZXNzYWdlLWNsb25lLXJlYWxseS1kZWVwLWFycmF5Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9XaW5kb3cvd2luZG93LXBvc3RtZXNzYWdlLWNsb25lLXJlYWxseS1kZWVwLWFycmF5Lmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWI2ZDY2YgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcG9zdG1lc3NhZ2UtY2xv
bmUtcmVhbGx5LWRlZXAtYXJyYXkuaHRtbApAQCAtMCwwICsxLDEwIEBACis8aHRtbD4KKzxoZWFk
PjwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgorPGlucHV0IHR5
cGU9ImZpbGUiIGlkPSJmaWxlSW5wdXQiIG11bHRpcGxlPjwvaW5wdXQ+Cis8ZGl2IGlkPSJjb25z
b2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvcG9zdG1lc3NhZ2UtdGVzdC5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3Bvc3RtZXNzYWdlLWNsb25l
LXJlYWxseS1kZWVwLWFycmF5LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcG9zdG1lc3NhZ2UtY2xv
bmUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcG9zdG1lc3NhZ2Ut
Y2xvbmUuaHRtbAppbmRleCBmMjgzNTFjLi44ZDYwNjAzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXBvc3RtZXNzYWdlLWNsb25lLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wb3N0bWVzc2FnZS1jbG9uZS5odG1sCkBA
IC0yLDIxNiArMiw5IEBACiA8aGVhZD48L2hlYWQ+CiA8Ym9keT4KIDxkaXYgaWQ9ImRlc2NyaXB0
aW9uIj48L2Rpdj4KLTxpbnB1dCB0eXBlPSJmaWxlIiBpZD0iZmlsZUlucHV0Ij48L2lucHV0Pgor
PGlucHV0IHR5cGU9ImZpbGUiIGlkPSJmaWxlSW5wdXQiIG11bHRpcGxlPjwvaW5wdXQ+CiA8ZGl2
IGlkPSJjb25zb2xlIj48L2Rpdj4KLTxzY3JpcHQ+Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKSB7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKLX0KLQotdmFyIGNvbnNvbGUgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpOwotCi12YXIgbWVzc2FnZXMgPSBbXTsK
LQotZnVuY3Rpb24gZXF1YWwoYWN0dWFsLCBleHBlY3RlZCkKLXsKLSAgICBpZiAoYWN0dWFsID09
PSBleHBlY3RlZCkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgaWYgKHR5cGVvZiBhY3R1YWwg
IT09IHR5cGVvZiBleHBlY3RlZCkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICgoYWN0
dWFsIGluc3RhbmNlb2YgRGF0ZSkgfHwgKGV4cGVjdGVkIGluc3RhbmNlb2YgRGF0ZSkpIHsKLSAg
ICAgICAgaWYgKChhY3R1YWwgaW5zdGFuY2VvZiBEYXRlKSAmJiAoZXhwZWN0ZWQgaW5zdGFuY2Vv
ZiBEYXRlKSkKLSAgICAgICAgICAgIHJldHVybiAoZXhwZWN0ZWQgaW5zdGFuY2VvZiBEYXRlKSAm
JiBhY3R1YWwuZ2V0VGltZSgpID09IGV4cGVjdGVkLmdldFRpbWUoKTsKLSAgICAgICAgcmV0dXJu
IGZhbHNlOwotICAgIH0KLSAgICBpZiAoQXJyYXkuaXNBcnJheShhY3R1YWwpIHx8IEFycmF5Lmlz
QXJyYXkoZXhwZWN0ZWQpKSB7Ci0gICAgICAgIGlmICghQXJyYXkuaXNBcnJheShhY3R1YWwpIHx8
ICFBcnJheS5pc0FycmF5KGV4cGVjdGVkKSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAg
ICAgICAgaWYgKGFjdHVhbC5sZW5ndGggIT0gZXhwZWN0ZWQubGVuZ3RoKQotICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFjdHVhbC5sZW5ndGg7
IGkrKykgewotICAgICAgICAgICAgaWYgKChpIGluIGFjdHVhbCkgXiAoaSBpbiBleHBlY3RlZCkp
Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgaWYgKCFlcXVhbChh
Y3R1YWxbaV0sIGV4cGVjdGVkW2ldKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0g
ICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotICAgIGlmIChhY3R1YWwuY29u
c3RydWN0b3IgIT09IGV4cGVjdGVkLmNvbnN0cnVjdG9yKQotICAgICAgICByZXR1cm4gZmFsc2U7
Ci0gICAgdHJ5IHsKLSAgICAgICAgdmFyIGtleXMgPSBPYmplY3Qua2V5cyhhY3R1YWwpOwotICAg
IH0gY2F0Y2goZSkgewotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotICAgIHRyeSB7Ci0g
ICAgaWYgKCFlcXVhbChrZXlzLCBPYmplY3Qua2V5cyhleHBlY3RlZCkpKQotICAgICAgICByZXR1
cm4gZmFsc2U7Ci0gICAgfSBjYXRjaChlKSB7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9
Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgIGlm
ICghZXF1YWwoYWN0dWFsW2tleXNbaV1dLCBleHBlY3RlZFtrZXlzW2ldXSkpCi0gICAgICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0gICAgfQotICAgIHJldHVybiB0cnVlOwotfQotCi1mdW5jdGlvbiBz
YWZlVG9TdHJpbmcobykgewotICAgIGlmIChvIGluc3RhbmNlb2YgRGF0ZSkKLSAgICAgICAgcmV0
dXJuIG8udG9JU09TdHJpbmcoKTsKLSAgICBpZiAodHlwZW9mIG8gIT09ICJvYmplY3QiIHx8ICFv
KQotICAgICAgICByZXR1cm4gbzsKLSAgICB0cnkgewotICAgICAgICByZXR1cm4gby50b1N0cmlu
ZygpOwotICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUu
dG9TdHJpbmcuY2FsbChvKSArICIoZGVmYXVsdCB0b1N0cmluZyB0aHJldyAiK2UrIikiOwotICAg
IH0KLX0KLQotZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkKLXsKLSAgICB2YXIg
YWN0dWFsVmFsdWUgPSBldmFsKGFjdHVhbCk7Ci0gICAgdmFyIGV4cGVjdGVkVmFsdWUgPSBldmFs
KGV4cGVjdGVkKTsKLSAgICBpZiAoZXF1YWwoYWN0dWFsVmFsdWUsIGV4cGVjdGVkVmFsdWUpKQot
ICAgICAgICBjb25zb2xlLmlubmVySFRNTCArPSAiUEFTUzogIiArIGFjdHVhbCArICIgaXMgIiAr
IHNhZmVUb1N0cmluZyhleHBlY3RlZFZhbHVlKSArICIgb2YgdHlwZSAiICsgdHlwZW9mIGFjdHVh
bFZhbHVlICsgIjxicj4iOwotICAgIGVsc2UKLSAgICAgICAgY29uc29sZS5pbm5lckhUTUwgKz0g
IkZBSUw6ICIgKyBhY3R1YWwgKyAiIGlzICIgKyBhY3R1YWxWYWx1ZSArICIgc2hvdWxkIGJlICIg
KyBleHBlY3RlZFZhbHVlICsgIiBvZiB0eXBlICIgKyB0eXBlb2YgZXhwZWN0ZWRWYWx1ZSArICI8
YnI+IjsKLX0KLQotZnVuY3Rpb24gc2hvdWxkQmVJZGVudGljYWwoYWN0dWFsLCBleHBlY3RlZCkK
LXsKLSAgICB2YXIgYWN0dWFsVmFsdWUgPSBldmFsKGFjdHVhbCk7Ci0gICAgdmFyIGV4cGVjdGVk
VmFsdWUgPSBldmFsKGV4cGVjdGVkKTsKLSAgICBpZiAoYWN0dWFsVmFsdWUgPT09IGV4cGVjdGVk
VmFsdWUpCi0gICAgICAgIGNvbnNvbGUuaW5uZXJIVE1MICs9ICJQQVNTOiAiICsgYWN0dWFsICsg
IiBpcyA9PT0gdG8gIiArIGV4cGVjdGVkICsgIjxicj4iOwotICAgIGVsc2UKLSAgICAgICAgY29u
c29sZS5pbm5lckhUTUwgKz0gIkZBSUw6ICIgKyBhY3R1YWwgKyAiIGlzIG5vdCA9PT0gdG8gIiAr
IGV4cGVjdGVkICsgIjxicj4iOwotfQotCi1mdW5jdGlvbiBvbm1lc3NhZ2UoZXZ0KSB7Ci0gICAg
ZXZlbnREYXRhID0gZXZ0LmRhdGE7Ci0gICAgaWYgKGV2dC5kYXRhICE9PSBldnQuZGF0YSkKLSAg
ICAgICAgY29uc29sZS5pbm5lckhUTUwgKz0gIk1lc3NhZ2VFdmVudC5kYXRhIGRvZXMgbm90IHBy
b2R1Y2UgdGhlIHNhbWUgdmFsdWUgb24gbXVsdGlwbGUgcXVlcmllcy48YnI+IjsKLSAgICB2YXIg
bWVzc2FnZSA9IG1lc3NhZ2VzLnNoaWZ0KCk7Ci0gICAgc3dpdGNoIChtZXNzYWdlKSB7Ci0gICAg
Y2FzZSAiY3ljbGljT2JqZWN0IjoKLSAgICAgICAgc2hvdWxkQmVJZGVudGljYWwoImV2ZW50RGF0
YSIsICJldmVudERhdGEuc2VsZiIpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlICJjeWNsaWNB
cnJheSI6Ci0gICAgICAgIHNob3VsZEJlSWRlbnRpY2FsKCJldmVudERhdGEiLCAiZXZlbnREYXRh
WzBdIik7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgIm9iamVjdEdyYXBoIjoKLSAgICAgICAg
c2hvdWxkQmVJZGVudGljYWwoImV2ZW50RGF0YS5ncmFwaDEiLCAiZXZlbnREYXRhLmdyYXBoMiIp
OwotICAgICAgICBicmVhazsKLSAgICBjYXNlICJhcnJheUdyYXBoIjoKLSAgICAgICAgc2hvdWxk
QmVJZGVudGljYWwoImV2ZW50RGF0YVswXSIsICJldmVudERhdGFbMV0iKTsKLSAgICAgICAgYnJl
YWs7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgc2hvdWxkQmUoImV2ZW50RGF0YSIsIG1lc3NhZ2Up
OwotICAgIH0KLQotICAgIGlmIChzYWZlVG9TdHJpbmcoZXZ0LmRhdGEpID09ICdkb25lJyAmJiB3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVy
Lm5vdGlmeURvbmUoKTsKLX0KLQotd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCBv
bm1lc3NhZ2UsIGZhbHNlKTsKLQotZnVuY3Rpb24gQ29uc3RydWN0b3JXaXRoUHJvdG90eXBlKHMp
IHsKLSAgICB0aGlzLmZpZWxkID0gczsKLX0KLQotQ29uc3RydWN0b3JXaXRoUHJvdG90eXBlLnBy
b3RvdHlwZSA9IHsKLSAgICBwcm90b1Byb3BlcnR5OiAyMDEwCi19OwotCi1mdW5jdGlvbiB0cnlQ
b3N0TWVzc2FnZShtZXNzYWdlLCBzaG91bGRUaHJvdywgZXhwZWN0ZWQpIHsKLSAgICB0cnkgewot
ICAgICAgICB2YXIgdmFsdWUgPSBldmFsKG1lc3NhZ2UpOwotICAgICAgICBwb3N0TWVzc2FnZSh2
YWx1ZSwgIioiKTsKLSAgICAgICAgaWYgKHNob3VsZFRocm93KQotICAgICAgICAgICAgY29uc29s
ZS5pbm5lckhUTUwgKz0gIkZBSUw6ICdwb3N0TWVzc2FnZSgiK21lc3NhZ2UrIiknIHNob3VsZCB0
aHJvdyBidXQgZGlkbid0PGJyPiI7Ci0gICAgICAgIG1lc3NhZ2VzLnB1c2goZXhwZWN0ZWQgfHwg
bWVzc2FnZSk7Ci0gICAgfSBjYXRjaChlKSB7Ci0gICAgICAgIGlmIChzaG91bGRUaHJvdykKLSAg
ICAgICAgICAgIGNvbnNvbGUuaW5uZXJIVE1MICs9ICJQQVNTOiAncG9zdE1lc3NhZ2UoIittZXNz
YWdlKyIpJyB0aHJldyAiICsgZSArICI8YnI+IjsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAg
Y29uc29sZS5pbm5lckhUTUwgKz0gIkZBSUw6ICdwb3N0TWVzc2FnZSgiK21lc3NhZ2UrIiknIHNo
b3VsZCBub3QgdGhyb3cgYnV0IHRocmV3ICIgKyBlICsgIjxicj4iOwotICAgIH0KLX0KLQotZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRlc2NyaXB0aW9uIikuaW5uZXJIVE1MID0gIlRlc3RzIHRo
YXQgd2UgY2xvbmUgb2JqZWN0IGhpZXJhcmNoaWVzIjsKLQotdHJ5UG9zdE1lc3NhZ2UoJ251bGwn
KTsKLXRyeVBvc3RNZXNzYWdlKCd1bmRlZmluZWQnKTsKLXRyeVBvc3RNZXNzYWdlKCcxJyk7Ci10
cnlQb3N0TWVzc2FnZSgndHJ1ZScpOwotdHJ5UG9zdE1lc3NhZ2UoJyIxIicpOwotdHJ5UG9zdE1l
c3NhZ2UoJyh7fSknKTsKLXRyeVBvc3RNZXNzYWdlKCcoe2E6MX0pJyk7Ci10cnlQb3N0TWVzc2Fn
ZSgnKHthOiJhIn0pJyk7Ci10cnlQb3N0TWVzc2FnZSgnKHtiOiJhIiwgYToiYiJ9KScpOwotdHJ5
UG9zdE1lc3NhZ2UoJyh7cDA6InN0cmluZzAiLCBwMToic3RyaW5nMSIsIHAyOiJzdHJpbmcyIiwg
cDM6InN0cmluZzMiLCBwNDoic3RyaW5nNCIsIHA1OiJzdHJpbmc1IiwgcDY6InN0cmluZzYiLCBw
Nzoic3RyaW5nNyIsIHA4OiJzdHJpbmc4IiwgcDk6InN0cmluZzkiLCBwMTA6InN0cmluZzEwIiwg
cDExOiJzdHJpbmcxMSIsIHAxMjoic3RyaW5nMTIiLCBwMTM6InN0cmluZzEzIiwgcDE0OiJzdHJp
bmcxNCIsIHAxNToic3RyaW5nMTUiLCBwMTY6InN0cmluZzE2IiwgcDE3OiJzdHJpbmcxNyIsIHAx
ODoic3RyaW5nMTgiLCBwMTk6InN0cmluZzE5In0pJyk7Ci10cnlQb3N0TWVzc2FnZSgnKHtwMDoi
c3RyaW5nMSIsIHAxOiJzdHJpbmcxIiwgcDI6InN0cmluZzIiLCBwMzoic3RyaW5nMyIsIHA0OiJz
dHJpbmc0IiwgcDU6InN0cmluZzUiLCBwNjoic3RyaW5nNiIsIHA3OiJzdHJpbmc3IiwgcDg6InN0
cmluZzgiLCBwOToic3RyaW5nOSIsIHAxMDoic3RyaW5nMTAiLCBwMTE6InN0cmluZzExIiwgcDEy
OiJzdHJpbmcxMiIsIHAxMzoic3RyaW5nMTMiLCBwMTQ6InN0cmluZzE0IiwgcDE1OiJzdHJpbmcx
NSIsIHAxNjoic3RyaW5nMTYiLCBwMTc6InN0cmluZzE3IiwgcDE4OiJzdHJpbmcxOCIsIHAxOToi
c3RyaW5nMTkifSknKTsKLXRyeVBvc3RNZXNzYWdlKCcoe2E6IiJ9KScpOwotdHJ5UG9zdE1lc3Nh
Z2UoJyh7YTowfSknKTsKLXRyeVBvc3RNZXNzYWdlKCcoe2E6MX0pJyk7Ci10cnlQb3N0TWVzc2Fn
ZSgnW10nKTsKLXRyeVBvc3RNZXNzYWdlKCdbImEiLCAiYSIsICJiIiwgImEiLCAiYiJdJyk7Ci10
cnlQb3N0TWVzc2FnZSgnWyJhIiwgImEiLCAiYiIsIHthOiJiIiwgYjoiYSJ9XScpOwotdHJ5UG9z
dE1lc3NhZ2UoJ1sxLDIsM10nKTsKLXRyeVBvc3RNZXNzYWdlKCdbLCwxXScpOwotdHJ5UG9zdE1l
c3NhZ2UoJyhmdW5jdGlvbigpe30pJywgZmFsc2UsICdudWxsJyk7Ci10cnlQb3N0TWVzc2FnZSgn
bmV3IERhdGUoMTIzNDU2Nzg5MDAwMCknKTsKLXRyeVBvc3RNZXNzYWdlKCduZXcgQ29uc3RydWN0
b3JXaXRoUHJvdG90eXBlKCJmb28iKScsIGZhbHNlLCAnKHtmaWVsZDoiZm9vIn0pJyk7Ci1jeWNs
aWNPYmplY3Q9e307Ci1jeWNsaWNPYmplY3Quc2VsZiA9IGN5Y2xpY09iamVjdDsKLXRyeVBvc3RN
ZXNzYWdlKCdjeWNsaWNPYmplY3QnLCBmYWxzZSwgImN5Y2xpY09iamVjdCIpOwotY3ljbGljQXJy
YXk9W107Ci1jeWNsaWNBcnJheVswXSA9IGN5Y2xpY0FycmF5OwotdHJ5UG9zdE1lc3NhZ2UoJ2N5
Y2xpY0FycmF5JywgZmFsc2UsICJjeWNsaWNBcnJheSIpOwotb2JqZWN0R3JhcGggPSB7fTsKLW9i
amVjdCA9IHt9Owotb2JqZWN0R3JhcGguZ3JhcGgxID0gb2JqZWN0Owotb2JqZWN0R3JhcGguZ3Jh
cGgyID0gb2JqZWN0OwotdHJ5UG9zdE1lc3NhZ2UoJ29iamVjdEdyYXBoJywgZmFsc2UsICJvYmpl
Y3RHcmFwaCIpOwotYXJyYXlHcmFwaCA9IFtvYmplY3QsIG9iamVjdF07Ci10cnlQb3N0TWVzc2Fn
ZSgnYXJyYXlHcmFwaCcsIGZhbHNlLCAiYXJyYXlHcmFwaCIpOwotZGVlcEFycmF5PVtdOwotZm9y
ICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgaSsrKQotICAgIGRlZXBBcnJheT1bZGVlcEFycmF5XTsK
LXRyeVBvc3RNZXNzYWdlKCdkZWVwQXJyYXknKTsKLXJlYWxseURlZXBBcnJheT1bXTsKLWZvciAo
dmFyIGkgPSAwOyBpIDwgMTAwMDAwOyBpKyspCi0gICAgcmVhbGx5RGVlcEFycmF5PVtyZWFsbHlE
ZWVwQXJyYXldOwotdHJ5UG9zdE1lc3NhZ2UoJ3JlYWxseURlZXBBcnJheScsIHRydWUpOwotdHJ5
UG9zdE1lc3NhZ2UoJ3dpbmRvdycsIHRydWUpOwotdHJ5UG9zdE1lc3NhZ2UoJyh7Z2V0IGEoKSB7
IHRocm93ICJ4IiB9fSknLCB0cnVlKTsKLQotaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgewotICAg
IHZhciBmaWxlSW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsZUlucHV0Iik7Ci0g
ICAgdmFyIGZpbGVSZWN0ID0gZmlsZUlucHV0LmdldENsaWVudFJlY3RzKClbMF07Ci0gICAgdmFy
IHRhcmdldFggPSBmaWxlUmVjdC5sZWZ0ICsgZmlsZVJlY3Qud2lkdGggLyAyOwotICAgIHZhciB0
YXJnZXRZID0gZmlsZVJlY3QudG9wICsgZmlsZVJlY3QuaGVpZ2h0IC8gMjsKLSAgICBldmVudFNl
bmRlci5iZWdpbkRyYWdXaXRoRmlsZXMoWydnZXQtZmlsZS11cGxvYWQuaHRtbCddKTsKLSAgICBl
dmVudFNlbmRlci5tb3VzZU1vdmVUbyh0YXJnZXRYLCB0YXJnZXRZKTsKLSAgICBldmVudFNlbmRl
ci5tb3VzZVVwKCk7Ci0gICAgdHJ5UG9zdE1lc3NhZ2UoJ2ZpbGVJbnB1dC5maWxlc1swXScsIGZh
bHNlLCBmaWxlSW5wdXQuZmlsZXNbMF0pOwotICAgIHRyeVBvc3RNZXNzYWdlKCdmaWxlSW5wdXQu
ZmlsZXMnLCBmYWxzZSwgZmlsZUlucHV0LmZpbGVzKTsKLX0KLXZhciBpbWFnZURhdGEgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKS5nZXRDb250ZXh0KCIyZCIpLmNyZWF0ZUltYWdl
RGF0YSgxMCwxMCk7Ci1mb3IgKHZhciBpID0gMDsgaSA8IGltYWdlRGF0YS5kYXRhLmxlbmd0aCAq
IDQ7IGkrKykKLSAgICBpbWFnZURhdGEuZGF0YVtpXSA9IGkgJSAyNTY7Ci12YXIgbXV0YXRlZElt
YWdlRGF0YSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpLmdldENvbnRleHQoIjJk
IikuY3JlYXRlSW1hZ2VEYXRhKDEwLDEwKTsKLWZvciAodmFyIGkgPSAwOyBpIDwgaW1hZ2VEYXRh
LmRhdGEubGVuZ3RoICogNDsgaSsrKQotICAgIG11dGF0ZWRJbWFnZURhdGEuZGF0YVtpXSA9IGkg
JSAyNTY7Ci10cnlQb3N0TWVzc2FnZSgnaW1hZ2VEYXRhJywgZmFsc2UsIGltYWdlRGF0YSk7Ci10
cnlQb3N0TWVzc2FnZSgnbXV0YXRlZEltYWdlRGF0YScsIGZhbHNlLCBpbWFnZURhdGEpOwotZm9y
ICh2YXIgaSA9IDA7IGkgPCBpbWFnZURhdGEuZGF0YS5sZW5ndGggKiA0OyBpKyspCi0gICAgbXV0
YXRlZEltYWdlRGF0YS5kYXRhW2ldID0gMDsKLQotdHJ5UG9zdE1lc3NhZ2UoJyJkb25lIicpOwot
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3Bvc3RtZXNzYWdlLXRlc3QuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9wb3N0bWVzc2FnZS1jbG9uZS5q
cyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dAppbmRleCA0
NDM1NGY5Li4wOWQzMzVjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cv
d2luZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9t
L1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQKQEAgLTUxMSw2ICs1MTEsNyBA
QCB3aW5kb3cuQ291bnRlciBbb2JqZWN0IENvdW50ZXJDb25zdHJ1Y3Rvcl0KIHdpbmRvdy5Db3Vu
dGVyLnByb3RvdHlwZSBbb2JqZWN0IENvdW50ZXJQcm90b3R5cGVdCiB3aW5kb3cuRE9NRXhjZXB0
aW9uIFtvYmplY3QgRE9NRXhjZXB0aW9uQ29uc3RydWN0b3JdCiB3aW5kb3cuRE9NRXhjZXB0aW9u
LkFCT1JUX0VSUiBbbnVtYmVyXQord2luZG93LkRPTUV4Y2VwdGlvbi5EQVRBX0NMT05FX0VSUiBb
bnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5ET01TVFJJTkdfU0laRV9FUlIgW251bWJlcl0K
IHdpbmRvdy5ET01FeGNlcHRpb24uSElFUkFSQ0hZX1JFUVVFU1RfRVJSIFtudW1iZXJdCiB3aW5k
b3cuRE9NRXhjZXB0aW9uLklOREVYX1NJWkVfRVJSIFtudW1iZXJdCkBAIC01MTgsNiArNTE5LDcg
QEAgd2luZG93LkRPTUV4Y2VwdGlvbi5JTlVTRV9BVFRSSUJVVEVfRVJSIFtudW1iZXJdCiB3aW5k
b3cuRE9NRXhjZXB0aW9uLklOVkFMSURfQUNDRVNTX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4
Y2VwdGlvbi5JTlZBTElEX0NIQVJBQ1RFUl9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRp
b24uSU5WQUxJRF9NT0RJRklDQVRJT05fRVJSIFtudW1iZXJdCit3aW5kb3cuRE9NRXhjZXB0aW9u
LklOVkFMSURfTk9ERV9UWVBFX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5JTlZB
TElEX1NUQVRFX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5OQU1FU1BBQ0VfRVJS
IFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLk5FVFdPUktfRVJSIFtudW1iZXJdCkBAIC01
MjgsMTIgKzUzMCwxNCBAQCB3aW5kb3cuRE9NRXhjZXB0aW9uLk5PX01PRElGSUNBVElPTl9BTExP
V0VEX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5RVU9UQV9FWENFRURFRF9FUlIg
W251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24uU0VDVVJJVFlfRVJSIFtudW1iZXJdCiB3aW5k
b3cuRE9NRXhjZXB0aW9uLlNZTlRBWF9FUlIgW251bWJlcl0KK3dpbmRvdy5ET01FeGNlcHRpb24u
VElNRU9VVF9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24uVFlQRV9NSVNNQVRDSF9F
UlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24uVVJMX01JU01BVENIX0VSUiBbbnVtYmVy
XQogd2luZG93LkRPTUV4Y2VwdGlvbi5WQUxJREFUSU9OX0VSUiBbbnVtYmVyXQogd2luZG93LkRP
TUV4Y2VwdGlvbi5XUk9OR19ET0NVTUVOVF9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRp
b24ucHJvdG90eXBlIFtvYmplY3QgRE9NRXhjZXB0aW9uUHJvdG90eXBlXQogd2luZG93LkRPTUV4
Y2VwdGlvbi5wcm90b3R5cGUuQUJPUlRfRVJSIFtudW1iZXJdCit3aW5kb3cuRE9NRXhjZXB0aW9u
LnByb3RvdHlwZS5EQVRBX0NMT05FX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5w
cm90b3R5cGUuRE9NU1RSSU5HX1NJWkVfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9u
LnByb3RvdHlwZS5ISUVSQVJDSFlfUkVRVUVTVF9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNl
cHRpb24ucHJvdG90eXBlLklOREVYX1NJWkVfRVJSIFtudW1iZXJdCkBAIC01NDEsNiArNTQ1LDcg
QEAgd2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuSU5VU0VfQVRUUklCVVRFX0VSUiBbbnVt
YmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuSU5WQUxJRF9BQ0NFU1NfRVJSIFtu
dW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5JTlZBTElEX0NIQVJBQ1RFUl9F
UlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlLklOVkFMSURfTU9ESUZJ
Q0FUSU9OX0VSUiBbbnVtYmVyXQord2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuSU5WQUxJ
RF9OT0RFX1RZUEVfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5J
TlZBTElEX1NUQVRFX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUu
TkFNRVNQQUNFX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuTkVU
V09SS19FUlIgW251bWJlcl0KQEAgLTU1MSw2ICs1NTYsNyBAQCB3aW5kb3cuRE9NRXhjZXB0aW9u
LnByb3RvdHlwZS5OT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlIgW251bWJlcl0KIHdpbmRvdy5E
T01FeGNlcHRpb24ucHJvdG90eXBlLlFVT1RBX0VYQ0VFREVEX0VSUiBbbnVtYmVyXQogd2luZG93
LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuU0VDVVJJVFlfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9N
RXhjZXB0aW9uLnByb3RvdHlwZS5TWU5UQVhfRVJSIFtudW1iZXJdCit3aW5kb3cuRE9NRXhjZXB0
aW9uLnByb3RvdHlwZS5USU1FT1VUX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5w
cm90b3R5cGUuVFlQRV9NSVNNQVRDSF9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24u
cHJvdG90eXBlLlVSTF9NSVNNQVRDSF9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24u
cHJvdG90eXBlLlZBTElEQVRJT05fRVJSIFtudW1iZXJdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2NhbnZhcy93ZWJnbC9hcnJheS1tZXNzYWdlLXBhc3Np
bmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9jYW52
YXMvd2ViZ2wvYXJyYXktbWVzc2FnZS1wYXNzaW5nLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi41MjA4NTBmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9jYW52YXMvd2ViZ2wvYXJyYXktbWVzc2FnZS1w
YXNzaW5nLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDU5OSBAQAorVGVzdCBwYXNzaW5nIEFycmF5
QnVmZmVycyBhbmQgQXJyYXlCdWZmZXJWaWV3cyBpbiBtZXNzYWdlcy4KKworT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgorCitQQVNTIEFycmF5QnVmZmVyMDogY2xhc3NlcyBhcmUgW29iamVjdCBB
cnJheUJ1ZmZlcl0KK1BBU1MgQXJyYXlCdWZmZXIwOiBidWZmZXIgbGVuZ3RocyBhcmUgMAorUEFT
UyBBcnJheUJ1ZmZlcjA6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBBcnJh
eUJ1ZmZlcjE6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIEFycmF5QnVm
ZmVyMTogYnVmZmVyIGxlbmd0aHMgYXJlIDEKK1BBU1MgQXJyYXlCdWZmZXIxOiBidWZmZXJzIGhh
dmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgQXJyYXlCdWZmZXIxMjg6IGNsYXNzZXMgYXJlIFtv
YmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIEFycmF5QnVmZmVyMTI4OiBidWZmZXIgbGVuZ3RocyBh
cmUgMTI4CitQQVNTIEFycmF5QnVmZmVyMTI4OiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVu
dHMKK1BBU1MgRGF0YVZpZXcwOiBjbGFzc2VzIGFyZSBbb2JqZWN0IERhdGFWaWV3XQorUEFTUyBE
YXRhVmlldzA6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIERhdGFWaWV3
MDogYnVmZmVyIGxlbmd0aHMgYXJlIDAKK1BBU1MgRGF0YVZpZXcwOiBidWZmZXJzIGhhdmUgdGhl
IHNhbWUgY29udGVudHMKK1BBU1MgRGF0YVZpZXcwOiBvZmZzZXQgaXMgMAorUEFTUyBEYXRhVmll
dzA6IGxlbmd0aCBpcyAwCitQQVNTIERhdGFWaWV3MTogY2xhc3NlcyBhcmUgW29iamVjdCBEYXRh
Vmlld10KK1BBU1MgRGF0YVZpZXcxOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQor
UEFTUyBEYXRhVmlldzE6IGJ1ZmZlciBsZW5ndGhzIGFyZSAxCitQQVNTIERhdGFWaWV3MTogYnVm
ZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIERhdGFWaWV3MTogb2Zmc2V0IGlzIDAK
K1BBU1MgRGF0YVZpZXcxOiBsZW5ndGggaXMgMQorUEFTUyBEYXRhVmlldzEyODogY2xhc3NlcyBh
cmUgW29iamVjdCBEYXRhVmlld10KK1BBU1MgRGF0YVZpZXcxMjg6IGNsYXNzZXMgYXJlIFtvYmpl
Y3QgQXJyYXlCdWZmZXJdCitQQVNTIERhdGFWaWV3MTI4OiBidWZmZXIgbGVuZ3RocyBhcmUgMTI4
CitQQVNTIERhdGFWaWV3MTI4OiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1Mg
RGF0YVZpZXcxMjg6IG9mZnNldCBpcyAwCitQQVNTIERhdGFWaWV3MTI4OiBsZW5ndGggaXMgMTI4
CitQQVNTIERhdGFWaWV3MV9vZnNfZW5kOiBjbGFzc2VzIGFyZSBbb2JqZWN0IERhdGFWaWV3XQor
UEFTUyBEYXRhVmlldzFfb2ZzX2VuZDogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0K
K1BBU1MgRGF0YVZpZXcxX29mc19lbmQ6IGJ1ZmZlciBsZW5ndGhzIGFyZSAxCitQQVNTIERhdGFW
aWV3MV9vZnNfZW5kOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgRGF0YVZp
ZXcxX29mc19lbmQ6IG9mZnNldCBpcyAxCitQQVNTIERhdGFWaWV3MV9vZnNfZW5kOiBsZW5ndGgg
aXMgMAorUEFTUyBEYXRhVmlldzEyOF9vZnNfZW5kOiBjbGFzc2VzIGFyZSBbb2JqZWN0IERhdGFW
aWV3XQorUEFTUyBEYXRhVmlldzEyOF9vZnNfZW5kOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5
QnVmZmVyXQorUEFTUyBEYXRhVmlldzEyOF9vZnNfZW5kOiBidWZmZXIgbGVuZ3RocyBhcmUgMTI4
CitQQVNTIERhdGFWaWV3MTI4X29mc19lbmQ6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50
cworUEFTUyBEYXRhVmlldzEyOF9vZnNfZW5kOiBvZmZzZXQgaXMgMTI4CitQQVNTIERhdGFWaWV3
MTI4X29mc19lbmQ6IGxlbmd0aCBpcyAwCitQQVNTIERhdGFWaWV3MTI4X29mc19zbGljZTA6IGNs
YXNzZXMgYXJlIFtvYmplY3QgRGF0YVZpZXddCitQQVNTIERhdGFWaWV3MTI4X29mc19zbGljZTA6
IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIERhdGFWaWV3MTI4X29mc19z
bGljZTA6IGJ1ZmZlciBsZW5ndGhzIGFyZSAxMjgKK1BBU1MgRGF0YVZpZXcxMjhfb2ZzX3NsaWNl
MDogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIERhdGFWaWV3MTI4X29mc19z
bGljZTA6IG9mZnNldCBpcyA2NAorUEFTUyBEYXRhVmlldzEyOF9vZnNfc2xpY2UwOiBsZW5ndGgg
aXMgMAorUEFTUyBEYXRhVmlldzEyOF9vZnNfc2xpY2UxOiBjbGFzc2VzIGFyZSBbb2JqZWN0IERh
dGFWaWV3XQorUEFTUyBEYXRhVmlldzEyOF9vZnNfc2xpY2UxOiBjbGFzc2VzIGFyZSBbb2JqZWN0
IEFycmF5QnVmZmVyXQorUEFTUyBEYXRhVmlldzEyOF9vZnNfc2xpY2UxOiBidWZmZXIgbGVuZ3Ro
cyBhcmUgMTI4CitQQVNTIERhdGFWaWV3MTI4X29mc19zbGljZTE6IGJ1ZmZlcnMgaGF2ZSB0aGUg
c2FtZSBjb250ZW50cworUEFTUyBEYXRhVmlldzEyOF9vZnNfc2xpY2UxOiBvZmZzZXQgaXMgNjQK
K1BBU1MgRGF0YVZpZXcxMjhfb2ZzX3NsaWNlMTogbGVuZ3RoIGlzIDEKK1BBU1MgRGF0YVZpZXcx
Mjhfb2ZzX3NsaWNlMTY6IGNsYXNzZXMgYXJlIFtvYmplY3QgRGF0YVZpZXddCitQQVNTIERhdGFW
aWV3MTI4X29mc19zbGljZTE2OiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFT
UyBEYXRhVmlldzEyOF9vZnNfc2xpY2UxNjogYnVmZmVyIGxlbmd0aHMgYXJlIDEyOAorUEFTUyBE
YXRhVmlldzEyOF9vZnNfc2xpY2UxNjogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQ
QVNTIERhdGFWaWV3MTI4X29mc19zbGljZTE2OiBvZmZzZXQgaXMgNjQKK1BBU1MgRGF0YVZpZXcx
Mjhfb2ZzX3NsaWNlMTY6IGxlbmd0aCBpcyAxNgorUEFTUyBEYXRhVmlldzEyOF9vZnNfc2xpY2Vf
dW5hbGlnbmVkOiBjbGFzc2VzIGFyZSBbb2JqZWN0IERhdGFWaWV3XQorUEFTUyBEYXRhVmlldzEy
OF9vZnNfc2xpY2VfdW5hbGlnbmVkOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQor
UEFTUyBEYXRhVmlldzEyOF9vZnNfc2xpY2VfdW5hbGlnbmVkOiBidWZmZXIgbGVuZ3RocyBhcmUg
MTI4CitQQVNTIERhdGFWaWV3MTI4X29mc19zbGljZV91bmFsaWduZWQ6IGJ1ZmZlcnMgaGF2ZSB0
aGUgc2FtZSBjb250ZW50cworUEFTUyBEYXRhVmlldzEyOF9vZnNfc2xpY2VfdW5hbGlnbmVkOiBv
ZmZzZXQgaXMgNjMKK1BBU1MgRGF0YVZpZXcxMjhfb2ZzX3NsaWNlX3VuYWxpZ25lZDogbGVuZ3Ro
IGlzIDE1CitQQVNTIEludDMyXzA6IGNsYXNzZXMgYXJlIFtvYmplY3QgSW50MzJBcnJheV0KK1BB
U1MgSW50MzJfMDogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgSW50MzJf
MDogYnVmZmVyIGxlbmd0aHMgYXJlIDAKK1BBU1MgSW50MzJfMDogYnVmZmVycyBoYXZlIHRoZSBz
YW1lIGNvbnRlbnRzCitQQVNTIEludDMyXzA6IG9mZnNldCBpcyAwCitQQVNTIEludDMyXzA6IGxl
bmd0aCBpcyAwCitQQVNTIFVpbnQzMl8wOiBjbGFzc2VzIGFyZSBbb2JqZWN0IFVpbnQzMkFycmF5
XQorUEFTUyBVaW50MzJfMDogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1Mg
VWludDMyXzA6IGJ1ZmZlciBsZW5ndGhzIGFyZSAwCitQQVNTIFVpbnQzMl8wOiBidWZmZXJzIGhh
dmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgVWludDMyXzA6IG9mZnNldCBpcyAwCitQQVNTIFVp
bnQzMl8wOiBsZW5ndGggaXMgMAorUEFTUyBJbnQ4XzA6IGNsYXNzZXMgYXJlIFtvYmplY3QgSW50
OEFycmF5XQorUEFTUyBJbnQ4XzA6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQ
QVNTIEludDhfMDogYnVmZmVyIGxlbmd0aHMgYXJlIDAKK1BBU1MgSW50OF8wOiBidWZmZXJzIGhh
dmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgSW50OF8wOiBvZmZzZXQgaXMgMAorUEFTUyBJbnQ4
XzA6IGxlbmd0aCBpcyAwCitQQVNTIFVpbnQ4XzA6IGNsYXNzZXMgYXJlIFtvYmplY3QgVWludDhB
cnJheV0KK1BBU1MgVWludDhfMDogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BB
U1MgVWludDhfMDogYnVmZmVyIGxlbmd0aHMgYXJlIDAKK1BBU1MgVWludDhfMDogYnVmZmVycyBo
YXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIFVpbnQ4XzA6IG9mZnNldCBpcyAwCitQQVNTIFVp
bnQ4XzA6IGxlbmd0aCBpcyAwCitQQVNTIEludDE2XzA6IGNsYXNzZXMgYXJlIFtvYmplY3QgSW50
MTZBcnJheV0KK1BBU1MgSW50MTZfMDogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0K
K1BBU1MgSW50MTZfMDogYnVmZmVyIGxlbmd0aHMgYXJlIDAKK1BBU1MgSW50MTZfMDogYnVmZmVy
cyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIEludDE2XzA6IG9mZnNldCBpcyAwCitQQVNT
IEludDE2XzA6IGxlbmd0aCBpcyAwCitQQVNTIFVpbnQxNl8wOiBjbGFzc2VzIGFyZSBbb2JqZWN0
IFVpbnQxNkFycmF5XQorUEFTUyBVaW50MTZfMDogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1
ZmZlcl0KK1BBU1MgVWludDE2XzA6IGJ1ZmZlciBsZW5ndGhzIGFyZSAwCitQQVNTIFVpbnQxNl8w
OiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgVWludDE2XzA6IG9mZnNldCBp
cyAwCitQQVNTIFVpbnQxNl8wOiBsZW5ndGggaXMgMAorUEFTUyBGbG9hdDMyXzA6IGNsYXNzZXMg
YXJlIFtvYmplY3QgRmxvYXQzMkFycmF5XQorUEFTUyBGbG9hdDMyXzA6IGNsYXNzZXMgYXJlIFtv
YmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIEZsb2F0MzJfMDogYnVmZmVyIGxlbmd0aHMgYXJlIDAK
K1BBU1MgRmxvYXQzMl8wOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgRmxv
YXQzMl8wOiBvZmZzZXQgaXMgMAorUEFTUyBGbG9hdDMyXzA6IGxlbmd0aCBpcyAwCitQQVNTIEZs
b2F0NjRfMDogY2xhc3NlcyBhcmUgW29iamVjdCBGbG9hdDY0QXJyYXldCitQQVNTIEZsb2F0NjRf
MDogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgRmxvYXQ2NF8wOiBidWZm
ZXIgbGVuZ3RocyBhcmUgMAorUEFTUyBGbG9hdDY0XzA6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBj
b250ZW50cworUEFTUyBGbG9hdDY0XzA6IG9mZnNldCBpcyAwCitQQVNTIEZsb2F0NjRfMDogbGVu
Z3RoIGlzIDAKK1BBU1MgSW50MzJfMTogY2xhc3NlcyBhcmUgW29iamVjdCBJbnQzMkFycmF5XQor
UEFTUyBJbnQzMl8xOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBJbnQz
Ml8xOiBidWZmZXIgbGVuZ3RocyBhcmUgNAorUEFTUyBJbnQzMl8xOiBidWZmZXJzIGhhdmUgdGhl
IHNhbWUgY29udGVudHMKK1BBU1MgSW50MzJfMTogb2Zmc2V0IGlzIDAKK1BBU1MgSW50MzJfMTog
bGVuZ3RoIGlzIDQKK1BBU1MgVWludDMyXzE6IGNsYXNzZXMgYXJlIFtvYmplY3QgVWludDMyQXJy
YXldCitQQVNTIFVpbnQzMl8xOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFT
UyBVaW50MzJfMTogYnVmZmVyIGxlbmd0aHMgYXJlIDQKK1BBU1MgVWludDMyXzE6IGJ1ZmZlcnMg
aGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBVaW50MzJfMTogb2Zmc2V0IGlzIDAKK1BBU1Mg
VWludDMyXzE6IGxlbmd0aCBpcyA0CitQQVNTIEludDhfMTogY2xhc3NlcyBhcmUgW29iamVjdCBJ
bnQ4QXJyYXldCitQQVNTIEludDhfMTogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0K
K1BBU1MgSW50OF8xOiBidWZmZXIgbGVuZ3RocyBhcmUgMQorUEFTUyBJbnQ4XzE6IGJ1ZmZlcnMg
aGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBJbnQ4XzE6IG9mZnNldCBpcyAwCitQQVNTIElu
dDhfMTogbGVuZ3RoIGlzIDEKK1BBU1MgVWludDhfMTogY2xhc3NlcyBhcmUgW29iamVjdCBVaW50
OEFycmF5XQorUEFTUyBVaW50OF8xOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQor
UEFTUyBVaW50OF8xOiBidWZmZXIgbGVuZ3RocyBhcmUgMQorUEFTUyBVaW50OF8xOiBidWZmZXJz
IGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgVWludDhfMTogb2Zmc2V0IGlzIDAKK1BBU1Mg
VWludDhfMTogbGVuZ3RoIGlzIDEKK1BBU1MgSW50MTZfMTogY2xhc3NlcyBhcmUgW29iamVjdCBJ
bnQxNkFycmF5XQorUEFTUyBJbnQxNl8xOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVy
XQorUEFTUyBJbnQxNl8xOiBidWZmZXIgbGVuZ3RocyBhcmUgMgorUEFTUyBJbnQxNl8xOiBidWZm
ZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgSW50MTZfMTogb2Zmc2V0IGlzIDAKK1BB
U1MgSW50MTZfMTogbGVuZ3RoIGlzIDIKK1BBU1MgVWludDE2XzE6IGNsYXNzZXMgYXJlIFtvYmpl
Y3QgVWludDE2QXJyYXldCitQQVNTIFVpbnQxNl8xOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5
QnVmZmVyXQorUEFTUyBVaW50MTZfMTogYnVmZmVyIGxlbmd0aHMgYXJlIDIKK1BBU1MgVWludDE2
XzE6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBVaW50MTZfMTogb2Zmc2V0
IGlzIDAKK1BBU1MgVWludDE2XzE6IGxlbmd0aCBpcyAyCitQQVNTIEZsb2F0MzJfMTogY2xhc3Nl
cyBhcmUgW29iamVjdCBGbG9hdDMyQXJyYXldCitQQVNTIEZsb2F0MzJfMTogY2xhc3NlcyBhcmUg
W29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgRmxvYXQzMl8xOiBidWZmZXIgbGVuZ3RocyBhcmUg
NAorUEFTUyBGbG9hdDMyXzE6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBG
bG9hdDMyXzE6IG9mZnNldCBpcyAwCitQQVNTIEZsb2F0MzJfMTogbGVuZ3RoIGlzIDQKK1BBU1Mg
RmxvYXQ2NF8xOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEZsb2F0NjRBcnJheV0KK1BBU1MgRmxvYXQ2
NF8xOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBGbG9hdDY0XzE6IGJ1
ZmZlciBsZW5ndGhzIGFyZSA4CitQQVNTIEZsb2F0NjRfMTogYnVmZmVycyBoYXZlIHRoZSBzYW1l
IGNvbnRlbnRzCitQQVNTIEZsb2F0NjRfMTogb2Zmc2V0IGlzIDAKK1BBU1MgRmxvYXQ2NF8xOiBs
ZW5ndGggaXMgOAorUEFTUyBJbnQzMl8xMjg6IGNsYXNzZXMgYXJlIFtvYmplY3QgSW50MzJBcnJh
eV0KK1BBU1MgSW50MzJfMTI4OiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFT
UyBJbnQzMl8xMjg6IGJ1ZmZlciBsZW5ndGhzIGFyZSA1MTIKK1BBU1MgSW50MzJfMTI4OiBidWZm
ZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgSW50MzJfMTI4OiBvZmZzZXQgaXMgMAor
UEFTUyBJbnQzMl8xMjg6IGxlbmd0aCBpcyA1MTIKK1BBU1MgVWludDMyXzEyODogY2xhc3NlcyBh
cmUgW29iamVjdCBVaW50MzJBcnJheV0KK1BBU1MgVWludDMyXzEyODogY2xhc3NlcyBhcmUgW29i
amVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgVWludDMyXzEyODogYnVmZmVyIGxlbmd0aHMgYXJlIDUx
MgorUEFTUyBVaW50MzJfMTI4OiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1Mg
VWludDMyXzEyODogb2Zmc2V0IGlzIDAKK1BBU1MgVWludDMyXzEyODogbGVuZ3RoIGlzIDUxMgor
UEFTUyBJbnQ4XzEyODogY2xhc3NlcyBhcmUgW29iamVjdCBJbnQ4QXJyYXldCitQQVNTIEludDhf
MTI4OiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBJbnQ4XzEyODogYnVm
ZmVyIGxlbmd0aHMgYXJlIDEyOAorUEFTUyBJbnQ4XzEyODogYnVmZmVycyBoYXZlIHRoZSBzYW1l
IGNvbnRlbnRzCitQQVNTIEludDhfMTI4OiBvZmZzZXQgaXMgMAorUEFTUyBJbnQ4XzEyODogbGVu
Z3RoIGlzIDEyOAorUEFTUyBVaW50OF8xMjg6IGNsYXNzZXMgYXJlIFtvYmplY3QgVWludDhBcnJh
eV0KK1BBU1MgVWludDhfMTI4OiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFT
UyBVaW50OF8xMjg6IGJ1ZmZlciBsZW5ndGhzIGFyZSAxMjgKK1BBU1MgVWludDhfMTI4OiBidWZm
ZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgVWludDhfMTI4OiBvZmZzZXQgaXMgMAor
UEFTUyBVaW50OF8xMjg6IGxlbmd0aCBpcyAxMjgKK1BBU1MgSW50MTZfMTI4OiBjbGFzc2VzIGFy
ZSBbb2JqZWN0IEludDE2QXJyYXldCitQQVNTIEludDE2XzEyODogY2xhc3NlcyBhcmUgW29iamVj
dCBBcnJheUJ1ZmZlcl0KK1BBU1MgSW50MTZfMTI4OiBidWZmZXIgbGVuZ3RocyBhcmUgMjU2CitQ
QVNTIEludDE2XzEyODogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIEludDE2
XzEyODogb2Zmc2V0IGlzIDAKK1BBU1MgSW50MTZfMTI4OiBsZW5ndGggaXMgMjU2CitQQVNTIFVp
bnQxNl8xMjg6IGNsYXNzZXMgYXJlIFtvYmplY3QgVWludDE2QXJyYXldCitQQVNTIFVpbnQxNl8x
Mjg6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIFVpbnQxNl8xMjg6IGJ1
ZmZlciBsZW5ndGhzIGFyZSAyNTYKK1BBU1MgVWludDE2XzEyODogYnVmZmVycyBoYXZlIHRoZSBz
YW1lIGNvbnRlbnRzCitQQVNTIFVpbnQxNl8xMjg6IG9mZnNldCBpcyAwCitQQVNTIFVpbnQxNl8x
Mjg6IGxlbmd0aCBpcyAyNTYKK1BBU1MgRmxvYXQzMl8xMjg6IGNsYXNzZXMgYXJlIFtvYmplY3Qg
RmxvYXQzMkFycmF5XQorUEFTUyBGbG9hdDMyXzEyODogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJh
eUJ1ZmZlcl0KK1BBU1MgRmxvYXQzMl8xMjg6IGJ1ZmZlciBsZW5ndGhzIGFyZSA1MTIKK1BBU1Mg
RmxvYXQzMl8xMjg6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBGbG9hdDMy
XzEyODogb2Zmc2V0IGlzIDAKK1BBU1MgRmxvYXQzMl8xMjg6IGxlbmd0aCBpcyA1MTIKK1BBU1Mg
RmxvYXQ2NF8xMjg6IGNsYXNzZXMgYXJlIFtvYmplY3QgRmxvYXQ2NEFycmF5XQorUEFTUyBGbG9h
dDY0XzEyODogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgRmxvYXQ2NF8x
Mjg6IGJ1ZmZlciBsZW5ndGhzIGFyZSAxMDI0CitQQVNTIEZsb2F0NjRfMTI4OiBidWZmZXJzIGhh
dmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgRmxvYXQ2NF8xMjg6IG9mZnNldCBpcyAwCitQQVNT
IEZsb2F0NjRfMTI4OiBsZW5ndGggaXMgMTAyNAorUEFTUyBJbnQzMl8wYjogY2xhc3NlcyBhcmUg
W29iamVjdCBJbnQzMkFycmF5XQorUEFTUyBJbnQzMl8wYjogY2xhc3NlcyBhcmUgW29iamVjdCBB
cnJheUJ1ZmZlcl0KK1BBU1MgSW50MzJfMGI6IGJ1ZmZlciBsZW5ndGhzIGFyZSAwCitQQVNTIElu
dDMyXzBiOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgSW50MzJfMGI6IG9m
ZnNldCBpcyAwCitQQVNTIEludDMyXzBiOiBsZW5ndGggaXMgMAorUEFTUyBVaW50MzJfMGI6IGNs
YXNzZXMgYXJlIFtvYmplY3QgVWludDMyQXJyYXldCitQQVNTIFVpbnQzMl8wYjogY2xhc3NlcyBh
cmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgVWludDMyXzBiOiBidWZmZXIgbGVuZ3RocyBh
cmUgMAorUEFTUyBVaW50MzJfMGI6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFT
UyBVaW50MzJfMGI6IG9mZnNldCBpcyAwCitQQVNTIFVpbnQzMl8wYjogbGVuZ3RoIGlzIDAKK1BB
U1MgSW50OF8wYjogY2xhc3NlcyBhcmUgW29iamVjdCBJbnQ4QXJyYXldCitQQVNTIEludDhfMGI6
IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIEludDhfMGI6IGJ1ZmZlciBs
ZW5ndGhzIGFyZSAwCitQQVNTIEludDhfMGI6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50
cworUEFTUyBJbnQ4XzBiOiBvZmZzZXQgaXMgMAorUEFTUyBJbnQ4XzBiOiBsZW5ndGggaXMgMAor
UEFTUyBVaW50OF8wYjogY2xhc3NlcyBhcmUgW29iamVjdCBVaW50OEFycmF5XQorUEFTUyBVaW50
OF8wYjogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgVWludDhfMGI6IGJ1
ZmZlciBsZW5ndGhzIGFyZSAwCitQQVNTIFVpbnQ4XzBiOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUg
Y29udGVudHMKK1BBU1MgVWludDhfMGI6IG9mZnNldCBpcyAwCitQQVNTIFVpbnQ4XzBiOiBsZW5n
dGggaXMgMAorUEFTUyBJbnQxNl8wYjogY2xhc3NlcyBhcmUgW29iamVjdCBJbnQxNkFycmF5XQor
UEFTUyBJbnQxNl8wYjogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgSW50
MTZfMGI6IGJ1ZmZlciBsZW5ndGhzIGFyZSAwCitQQVNTIEludDE2XzBiOiBidWZmZXJzIGhhdmUg
dGhlIHNhbWUgY29udGVudHMKK1BBU1MgSW50MTZfMGI6IG9mZnNldCBpcyAwCitQQVNTIEludDE2
XzBiOiBsZW5ndGggaXMgMAorUEFTUyBVaW50MTZfMGI6IGNsYXNzZXMgYXJlIFtvYmplY3QgVWlu
dDE2QXJyYXldCitQQVNTIFVpbnQxNl8wYjogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZl
cl0KK1BBU1MgVWludDE2XzBiOiBidWZmZXIgbGVuZ3RocyBhcmUgMAorUEFTUyBVaW50MTZfMGI6
IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBVaW50MTZfMGI6IG9mZnNldCBp
cyAwCitQQVNTIFVpbnQxNl8wYjogbGVuZ3RoIGlzIDAKK1BBU1MgRmxvYXQzMl8wYjogY2xhc3Nl
cyBhcmUgW29iamVjdCBGbG9hdDMyQXJyYXldCitQQVNTIEZsb2F0MzJfMGI6IGNsYXNzZXMgYXJl
IFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIEZsb2F0MzJfMGI6IGJ1ZmZlciBsZW5ndGhzIGFy
ZSAwCitQQVNTIEZsb2F0MzJfMGI6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFT
UyBGbG9hdDMyXzBiOiBvZmZzZXQgaXMgMAorUEFTUyBGbG9hdDMyXzBiOiBsZW5ndGggaXMgMAor
UEFTUyBGbG9hdDY0XzBiOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEZsb2F0NjRBcnJheV0KK1BBU1Mg
RmxvYXQ2NF8wYjogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgRmxvYXQ2
NF8wYjogYnVmZmVyIGxlbmd0aHMgYXJlIDAKK1BBU1MgRmxvYXQ2NF8wYjogYnVmZmVycyBoYXZl
IHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIEZsb2F0NjRfMGI6IG9mZnNldCBpcyAwCitQQVNTIEZs
b2F0NjRfMGI6IGxlbmd0aCBpcyAwCitQQVNTIEludDMyXzFiOiBjbGFzc2VzIGFyZSBbb2JqZWN0
IEludDMyQXJyYXldCitQQVNTIEludDMyXzFiOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVm
ZmVyXQorUEFTUyBJbnQzMl8xYjogYnVmZmVyIGxlbmd0aHMgYXJlIDQKK1BBU1MgSW50MzJfMWI6
IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBJbnQzMl8xYjogb2Zmc2V0IGlz
IDAKK1BBU1MgSW50MzJfMWI6IGxlbmd0aCBpcyA0CitQQVNTIFVpbnQzMl8xYjogY2xhc3NlcyBh
cmUgW29iamVjdCBVaW50MzJBcnJheV0KK1BBU1MgVWludDMyXzFiOiBjbGFzc2VzIGFyZSBbb2Jq
ZWN0IEFycmF5QnVmZmVyXQorUEFTUyBVaW50MzJfMWI6IGJ1ZmZlciBsZW5ndGhzIGFyZSA0CitQ
QVNTIFVpbnQzMl8xYjogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIFVpbnQz
Ml8xYjogb2Zmc2V0IGlzIDAKK1BBU1MgVWludDMyXzFiOiBsZW5ndGggaXMgNAorUEFTUyBJbnQ4
XzFiOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEludDhBcnJheV0KK1BBU1MgSW50OF8xYjogY2xhc3Nl
cyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgSW50OF8xYjogYnVmZmVyIGxlbmd0aHMg
YXJlIDEKK1BBU1MgSW50OF8xYjogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNT
IEludDhfMWI6IG9mZnNldCBpcyAwCitQQVNTIEludDhfMWI6IGxlbmd0aCBpcyAxCitQQVNTIFVp
bnQ4XzFiOiBjbGFzc2VzIGFyZSBbb2JqZWN0IFVpbnQ4QXJyYXldCitQQVNTIFVpbnQ4XzFiOiBj
bGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBVaW50OF8xYjogYnVmZmVyIGxl
bmd0aHMgYXJlIDEKK1BBU1MgVWludDhfMWI6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50
cworUEFTUyBVaW50OF8xYjogb2Zmc2V0IGlzIDAKK1BBU1MgVWludDhfMWI6IGxlbmd0aCBpcyAx
CitQQVNTIEludDE2XzFiOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEludDE2QXJyYXldCitQQVNTIElu
dDE2XzFiOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBJbnQxNl8xYjog
YnVmZmVyIGxlbmd0aHMgYXJlIDIKK1BBU1MgSW50MTZfMWI6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2Ft
ZSBjb250ZW50cworUEFTUyBJbnQxNl8xYjogb2Zmc2V0IGlzIDAKK1BBU1MgSW50MTZfMWI6IGxl
bmd0aCBpcyAyCitQQVNTIFVpbnQxNl8xYjogY2xhc3NlcyBhcmUgW29iamVjdCBVaW50MTZBcnJh
eV0KK1BBU1MgVWludDE2XzFiOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFT
UyBVaW50MTZfMWI6IGJ1ZmZlciBsZW5ndGhzIGFyZSAyCitQQVNTIFVpbnQxNl8xYjogYnVmZmVy
cyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIFVpbnQxNl8xYjogb2Zmc2V0IGlzIDAKK1BB
U1MgVWludDE2XzFiOiBsZW5ndGggaXMgMgorUEFTUyBGbG9hdDMyXzFiOiBjbGFzc2VzIGFyZSBb
b2JqZWN0IEZsb2F0MzJBcnJheV0KK1BBU1MgRmxvYXQzMl8xYjogY2xhc3NlcyBhcmUgW29iamVj
dCBBcnJheUJ1ZmZlcl0KK1BBU1MgRmxvYXQzMl8xYjogYnVmZmVyIGxlbmd0aHMgYXJlIDQKK1BB
U1MgRmxvYXQzMl8xYjogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIEZsb2F0
MzJfMWI6IG9mZnNldCBpcyAwCitQQVNTIEZsb2F0MzJfMWI6IGxlbmd0aCBpcyA0CitQQVNTIEZs
b2F0NjRfMWI6IGNsYXNzZXMgYXJlIFtvYmplY3QgRmxvYXQ2NEFycmF5XQorUEFTUyBGbG9hdDY0
XzFiOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBGbG9hdDY0XzFiOiBi
dWZmZXIgbGVuZ3RocyBhcmUgOAorUEFTUyBGbG9hdDY0XzFiOiBidWZmZXJzIGhhdmUgdGhlIHNh
bWUgY29udGVudHMKK1BBU1MgRmxvYXQ2NF8xYjogb2Zmc2V0IGlzIDAKK1BBU1MgRmxvYXQ2NF8x
YjogbGVuZ3RoIGlzIDgKK1BBU1MgSW50MzJfMTI4YjogY2xhc3NlcyBhcmUgW29iamVjdCBJbnQz
MkFycmF5XQorUEFTUyBJbnQzMl8xMjhiOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVy
XQorUEFTUyBJbnQzMl8xMjhiOiBidWZmZXIgbGVuZ3RocyBhcmUgNTEyCitQQVNTIEludDMyXzEy
OGI6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBJbnQzMl8xMjhiOiBvZmZz
ZXQgaXMgMAorUEFTUyBJbnQzMl8xMjhiOiBsZW5ndGggaXMgNTEyCitQQVNTIFVpbnQzMl8xMjhi
OiBjbGFzc2VzIGFyZSBbb2JqZWN0IFVpbnQzMkFycmF5XQorUEFTUyBVaW50MzJfMTI4YjogY2xh
c3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgVWludDMyXzEyOGI6IGJ1ZmZlciBs
ZW5ndGhzIGFyZSA1MTIKK1BBU1MgVWludDMyXzEyOGI6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBj
b250ZW50cworUEFTUyBVaW50MzJfMTI4Yjogb2Zmc2V0IGlzIDAKK1BBU1MgVWludDMyXzEyOGI6
IGxlbmd0aCBpcyA1MTIKK1BBU1MgSW50OF8xMjhiOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEludDhB
cnJheV0KK1BBU1MgSW50OF8xMjhiOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQor
UEFTUyBJbnQ4XzEyOGI6IGJ1ZmZlciBsZW5ndGhzIGFyZSAxMjgKK1BBU1MgSW50OF8xMjhiOiBi
dWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgSW50OF8xMjhiOiBvZmZzZXQgaXMg
MAorUEFTUyBJbnQ4XzEyOGI6IGxlbmd0aCBpcyAxMjgKK1BBU1MgVWludDhfMTI4YjogY2xhc3Nl
cyBhcmUgW29iamVjdCBVaW50OEFycmF5XQorUEFTUyBVaW50OF8xMjhiOiBjbGFzc2VzIGFyZSBb
b2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBVaW50OF8xMjhiOiBidWZmZXIgbGVuZ3RocyBhcmUg
MTI4CitQQVNTIFVpbnQ4XzEyOGI6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFT
UyBVaW50OF8xMjhiOiBvZmZzZXQgaXMgMAorUEFTUyBVaW50OF8xMjhiOiBsZW5ndGggaXMgMTI4
CitQQVNTIEludDE2XzEyOGI6IGNsYXNzZXMgYXJlIFtvYmplY3QgSW50MTZBcnJheV0KK1BBU1Mg
SW50MTZfMTI4YjogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgSW50MTZf
MTI4YjogYnVmZmVyIGxlbmd0aHMgYXJlIDI1NgorUEFTUyBJbnQxNl8xMjhiOiBidWZmZXJzIGhh
dmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgSW50MTZfMTI4Yjogb2Zmc2V0IGlzIDAKK1BBU1Mg
SW50MTZfMTI4YjogbGVuZ3RoIGlzIDI1NgorUEFTUyBVaW50MTZfMTI4YjogY2xhc3NlcyBhcmUg
W29iamVjdCBVaW50MTZBcnJheV0KK1BBU1MgVWludDE2XzEyOGI6IGNsYXNzZXMgYXJlIFtvYmpl
Y3QgQXJyYXlCdWZmZXJdCitQQVNTIFVpbnQxNl8xMjhiOiBidWZmZXIgbGVuZ3RocyBhcmUgMjU2
CitQQVNTIFVpbnQxNl8xMjhiOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1Mg
VWludDE2XzEyOGI6IG9mZnNldCBpcyAwCitQQVNTIFVpbnQxNl8xMjhiOiBsZW5ndGggaXMgMjU2
CitQQVNTIEZsb2F0MzJfMTI4YjogY2xhc3NlcyBhcmUgW29iamVjdCBGbG9hdDMyQXJyYXldCitQ
QVNTIEZsb2F0MzJfMTI4YjogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1Mg
RmxvYXQzMl8xMjhiOiBidWZmZXIgbGVuZ3RocyBhcmUgNTEyCitQQVNTIEZsb2F0MzJfMTI4Yjog
YnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIEZsb2F0MzJfMTI4Yjogb2Zmc2V0
IGlzIDAKK1BBU1MgRmxvYXQzMl8xMjhiOiBsZW5ndGggaXMgNTEyCitQQVNTIEZsb2F0NjRfMTI4
YjogY2xhc3NlcyBhcmUgW29iamVjdCBGbG9hdDY0QXJyYXldCitQQVNTIEZsb2F0NjRfMTI4Yjog
Y2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgRmxvYXQ2NF8xMjhiOiBidWZm
ZXIgbGVuZ3RocyBhcmUgMTAyNAorUEFTUyBGbG9hdDY0XzEyOGI6IGJ1ZmZlcnMgaGF2ZSB0aGUg
c2FtZSBjb250ZW50cworUEFTUyBGbG9hdDY0XzEyOGI6IG9mZnNldCBpcyAwCitQQVNTIEZsb2F0
NjRfMTI4YjogbGVuZ3RoIGlzIDEwMjQKK1BBU1MgSW50MzJfMWJfb2ZzX2VuZDogY2xhc3NlcyBh
cmUgW29iamVjdCBJbnQzMkFycmF5XQorUEFTUyBJbnQzMl8xYl9vZnNfZW5kOiBjbGFzc2VzIGFy
ZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBJbnQzMl8xYl9vZnNfZW5kOiBidWZmZXIgbGVu
Z3RocyBhcmUgNAorUEFTUyBJbnQzMl8xYl9vZnNfZW5kOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUg
Y29udGVudHMKK1BBU1MgSW50MzJfMWJfb2ZzX2VuZDogb2Zmc2V0IGlzIDQKK1BBU1MgSW50MzJf
MWJfb2ZzX2VuZDogbGVuZ3RoIGlzIDAKK1BBU1MgVWludDMyXzFiX29mc19lbmQ6IGNsYXNzZXMg
YXJlIFtvYmplY3QgVWludDMyQXJyYXldCitQQVNTIFVpbnQzMl8xYl9vZnNfZW5kOiBjbGFzc2Vz
IGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBVaW50MzJfMWJfb2ZzX2VuZDogYnVmZmVy
IGxlbmd0aHMgYXJlIDQKK1BBU1MgVWludDMyXzFiX29mc19lbmQ6IGJ1ZmZlcnMgaGF2ZSB0aGUg
c2FtZSBjb250ZW50cworUEFTUyBVaW50MzJfMWJfb2ZzX2VuZDogb2Zmc2V0IGlzIDQKK1BBU1Mg
VWludDMyXzFiX29mc19lbmQ6IGxlbmd0aCBpcyAwCitQQVNTIEludDhfMWJfb2ZzX2VuZDogY2xh
c3NlcyBhcmUgW29iamVjdCBJbnQ4QXJyYXldCitQQVNTIEludDhfMWJfb2ZzX2VuZDogY2xhc3Nl
cyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgSW50OF8xYl9vZnNfZW5kOiBidWZmZXIg
bGVuZ3RocyBhcmUgMQorUEFTUyBJbnQ4XzFiX29mc19lbmQ6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2Ft
ZSBjb250ZW50cworUEFTUyBJbnQ4XzFiX29mc19lbmQ6IG9mZnNldCBpcyAxCitQQVNTIEludDhf
MWJfb2ZzX2VuZDogbGVuZ3RoIGlzIDAKK1BBU1MgVWludDhfMWJfb2ZzX2VuZDogY2xhc3NlcyBh
cmUgW29iamVjdCBVaW50OEFycmF5XQorUEFTUyBVaW50OF8xYl9vZnNfZW5kOiBjbGFzc2VzIGFy
ZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBVaW50OF8xYl9vZnNfZW5kOiBidWZmZXIgbGVu
Z3RocyBhcmUgMQorUEFTUyBVaW50OF8xYl9vZnNfZW5kOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUg
Y29udGVudHMKK1BBU1MgVWludDhfMWJfb2ZzX2VuZDogb2Zmc2V0IGlzIDEKK1BBU1MgVWludDhf
MWJfb2ZzX2VuZDogbGVuZ3RoIGlzIDAKK1BBU1MgSW50MTZfMWJfb2ZzX2VuZDogY2xhc3NlcyBh
cmUgW29iamVjdCBJbnQxNkFycmF5XQorUEFTUyBJbnQxNl8xYl9vZnNfZW5kOiBjbGFzc2VzIGFy
ZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBJbnQxNl8xYl9vZnNfZW5kOiBidWZmZXIgbGVu
Z3RocyBhcmUgMgorUEFTUyBJbnQxNl8xYl9vZnNfZW5kOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUg
Y29udGVudHMKK1BBU1MgSW50MTZfMWJfb2ZzX2VuZDogb2Zmc2V0IGlzIDIKK1BBU1MgSW50MTZf
MWJfb2ZzX2VuZDogbGVuZ3RoIGlzIDAKK1BBU1MgVWludDE2XzFiX29mc19lbmQ6IGNsYXNzZXMg
YXJlIFtvYmplY3QgVWludDE2QXJyYXldCitQQVNTIFVpbnQxNl8xYl9vZnNfZW5kOiBjbGFzc2Vz
IGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBVaW50MTZfMWJfb2ZzX2VuZDogYnVmZmVy
IGxlbmd0aHMgYXJlIDIKK1BBU1MgVWludDE2XzFiX29mc19lbmQ6IGJ1ZmZlcnMgaGF2ZSB0aGUg
c2FtZSBjb250ZW50cworUEFTUyBVaW50MTZfMWJfb2ZzX2VuZDogb2Zmc2V0IGlzIDIKK1BBU1Mg
VWludDE2XzFiX29mc19lbmQ6IGxlbmd0aCBpcyAwCitQQVNTIEZsb2F0MzJfMWJfb2ZzX2VuZDog
Y2xhc3NlcyBhcmUgW29iamVjdCBGbG9hdDMyQXJyYXldCitQQVNTIEZsb2F0MzJfMWJfb2ZzX2Vu
ZDogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgRmxvYXQzMl8xYl9vZnNf
ZW5kOiBidWZmZXIgbGVuZ3RocyBhcmUgNAorUEFTUyBGbG9hdDMyXzFiX29mc19lbmQ6IGJ1ZmZl
cnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBGbG9hdDMyXzFiX29mc19lbmQ6IG9mZnNl
dCBpcyA0CitQQVNTIEZsb2F0MzJfMWJfb2ZzX2VuZDogbGVuZ3RoIGlzIDAKK1BBU1MgRmxvYXQ2
NF8xYl9vZnNfZW5kOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEZsb2F0NjRBcnJheV0KK1BBU1MgRmxv
YXQ2NF8xYl9vZnNfZW5kOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBG
bG9hdDY0XzFiX29mc19lbmQ6IGJ1ZmZlciBsZW5ndGhzIGFyZSA4CitQQVNTIEZsb2F0NjRfMWJf
b2ZzX2VuZDogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIEZsb2F0NjRfMWJf
b2ZzX2VuZDogb2Zmc2V0IGlzIDgKK1BBU1MgRmxvYXQ2NF8xYl9vZnNfZW5kOiBsZW5ndGggaXMg
MAorUEFTUyBJbnQzMl8xMjhiX29mc19lbmQ6IGNsYXNzZXMgYXJlIFtvYmplY3QgSW50MzJBcnJh
eV0KK1BBU1MgSW50MzJfMTI4Yl9vZnNfZW5kOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVm
ZmVyXQorUEFTUyBJbnQzMl8xMjhiX29mc19lbmQ6IGJ1ZmZlciBsZW5ndGhzIGFyZSA1MTIKK1BB
U1MgSW50MzJfMTI4Yl9vZnNfZW5kOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BB
U1MgSW50MzJfMTI4Yl9vZnNfZW5kOiBvZmZzZXQgaXMgNTEyCitQQVNTIEludDMyXzEyOGJfb2Zz
X2VuZDogbGVuZ3RoIGlzIDAKK1BBU1MgVWludDMyXzEyOGJfb2ZzX2VuZDogY2xhc3NlcyBhcmUg
W29iamVjdCBVaW50MzJBcnJheV0KK1BBU1MgVWludDMyXzEyOGJfb2ZzX2VuZDogY2xhc3NlcyBh
cmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgVWludDMyXzEyOGJfb2ZzX2VuZDogYnVmZmVy
IGxlbmd0aHMgYXJlIDUxMgorUEFTUyBVaW50MzJfMTI4Yl9vZnNfZW5kOiBidWZmZXJzIGhhdmUg
dGhlIHNhbWUgY29udGVudHMKK1BBU1MgVWludDMyXzEyOGJfb2ZzX2VuZDogb2Zmc2V0IGlzIDUx
MgorUEFTUyBVaW50MzJfMTI4Yl9vZnNfZW5kOiBsZW5ndGggaXMgMAorUEFTUyBJbnQ4XzEyOGJf
b2ZzX2VuZDogY2xhc3NlcyBhcmUgW29iamVjdCBJbnQ4QXJyYXldCitQQVNTIEludDhfMTI4Yl9v
ZnNfZW5kOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBJbnQ4XzEyOGJf
b2ZzX2VuZDogYnVmZmVyIGxlbmd0aHMgYXJlIDEyOAorUEFTUyBJbnQ4XzEyOGJfb2ZzX2VuZDog
YnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIEludDhfMTI4Yl9vZnNfZW5kOiBv
ZmZzZXQgaXMgMTI4CitQQVNTIEludDhfMTI4Yl9vZnNfZW5kOiBsZW5ndGggaXMgMAorUEFTUyBV
aW50OF8xMjhiX29mc19lbmQ6IGNsYXNzZXMgYXJlIFtvYmplY3QgVWludDhBcnJheV0KK1BBU1Mg
VWludDhfMTI4Yl9vZnNfZW5kOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFT
UyBVaW50OF8xMjhiX29mc19lbmQ6IGJ1ZmZlciBsZW5ndGhzIGFyZSAxMjgKK1BBU1MgVWludDhf
MTI4Yl9vZnNfZW5kOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgVWludDhf
MTI4Yl9vZnNfZW5kOiBvZmZzZXQgaXMgMTI4CitQQVNTIFVpbnQ4XzEyOGJfb2ZzX2VuZDogbGVu
Z3RoIGlzIDAKK1BBU1MgSW50MTZfMTI4Yl9vZnNfZW5kOiBjbGFzc2VzIGFyZSBbb2JqZWN0IElu
dDE2QXJyYXldCitQQVNTIEludDE2XzEyOGJfb2ZzX2VuZDogY2xhc3NlcyBhcmUgW29iamVjdCBB
cnJheUJ1ZmZlcl0KK1BBU1MgSW50MTZfMTI4Yl9vZnNfZW5kOiBidWZmZXIgbGVuZ3RocyBhcmUg
MjU2CitQQVNTIEludDE2XzEyOGJfb2ZzX2VuZDogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRl
bnRzCitQQVNTIEludDE2XzEyOGJfb2ZzX2VuZDogb2Zmc2V0IGlzIDI1NgorUEFTUyBJbnQxNl8x
MjhiX29mc19lbmQ6IGxlbmd0aCBpcyAwCitQQVNTIFVpbnQxNl8xMjhiX29mc19lbmQ6IGNsYXNz
ZXMgYXJlIFtvYmplY3QgVWludDE2QXJyYXldCitQQVNTIFVpbnQxNl8xMjhiX29mc19lbmQ6IGNs
YXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIFVpbnQxNl8xMjhiX29mc19lbmQ6
IGJ1ZmZlciBsZW5ndGhzIGFyZSAyNTYKK1BBU1MgVWludDE2XzEyOGJfb2ZzX2VuZDogYnVmZmVy
cyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIFVpbnQxNl8xMjhiX29mc19lbmQ6IG9mZnNl
dCBpcyAyNTYKK1BBU1MgVWludDE2XzEyOGJfb2ZzX2VuZDogbGVuZ3RoIGlzIDAKK1BBU1MgRmxv
YXQzMl8xMjhiX29mc19lbmQ6IGNsYXNzZXMgYXJlIFtvYmplY3QgRmxvYXQzMkFycmF5XQorUEFT
UyBGbG9hdDMyXzEyOGJfb2ZzX2VuZDogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0K
K1BBU1MgRmxvYXQzMl8xMjhiX29mc19lbmQ6IGJ1ZmZlciBsZW5ndGhzIGFyZSA1MTIKK1BBU1Mg
RmxvYXQzMl8xMjhiX29mc19lbmQ6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFT
UyBGbG9hdDMyXzEyOGJfb2ZzX2VuZDogb2Zmc2V0IGlzIDUxMgorUEFTUyBGbG9hdDMyXzEyOGJf
b2ZzX2VuZDogbGVuZ3RoIGlzIDAKK1BBU1MgRmxvYXQ2NF8xMjhiX29mc19lbmQ6IGNsYXNzZXMg
YXJlIFtvYmplY3QgRmxvYXQ2NEFycmF5XQorUEFTUyBGbG9hdDY0XzEyOGJfb2ZzX2VuZDogY2xh
c3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgRmxvYXQ2NF8xMjhiX29mc19lbmQ6
IGJ1ZmZlciBsZW5ndGhzIGFyZSAxMDI0CitQQVNTIEZsb2F0NjRfMTI4Yl9vZnNfZW5kOiBidWZm
ZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgRmxvYXQ2NF8xMjhiX29mc19lbmQ6IG9m
ZnNldCBpcyAxMDI0CitQQVNTIEZsb2F0NjRfMTI4Yl9vZnNfZW5kOiBsZW5ndGggaXMgMAorUEFT
UyBJbnQzMl8xMjhiX29mc19zbGljZTA6IGNsYXNzZXMgYXJlIFtvYmplY3QgSW50MzJBcnJheV0K
K1BBU1MgSW50MzJfMTI4Yl9vZnNfc2xpY2UwOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVm
ZmVyXQorUEFTUyBJbnQzMl8xMjhiX29mc19zbGljZTA6IGJ1ZmZlciBsZW5ndGhzIGFyZSA1MTIK
K1BBU1MgSW50MzJfMTI4Yl9vZnNfc2xpY2UwOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVu
dHMKK1BBU1MgSW50MzJfMTI4Yl9vZnNfc2xpY2UwOiBvZmZzZXQgaXMgMjU2CitQQVNTIEludDMy
XzEyOGJfb2ZzX3NsaWNlMDogbGVuZ3RoIGlzIDAKK1BBU1MgVWludDMyXzEyOGJfb2ZzX3NsaWNl
MDogY2xhc3NlcyBhcmUgW29iamVjdCBVaW50MzJBcnJheV0KK1BBU1MgVWludDMyXzEyOGJfb2Zz
X3NsaWNlMDogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgVWludDMyXzEy
OGJfb2ZzX3NsaWNlMDogYnVmZmVyIGxlbmd0aHMgYXJlIDUxMgorUEFTUyBVaW50MzJfMTI4Yl9v
ZnNfc2xpY2UwOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgVWludDMyXzEy
OGJfb2ZzX3NsaWNlMDogb2Zmc2V0IGlzIDI1NgorUEFTUyBVaW50MzJfMTI4Yl9vZnNfc2xpY2Uw
OiBsZW5ndGggaXMgMAorUEFTUyBJbnQ4XzEyOGJfb2ZzX3NsaWNlMDogY2xhc3NlcyBhcmUgW29i
amVjdCBJbnQ4QXJyYXldCitQQVNTIEludDhfMTI4Yl9vZnNfc2xpY2UwOiBjbGFzc2VzIGFyZSBb
b2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBJbnQ4XzEyOGJfb2ZzX3NsaWNlMDogYnVmZmVyIGxl
bmd0aHMgYXJlIDEyOAorUEFTUyBJbnQ4XzEyOGJfb2ZzX3NsaWNlMDogYnVmZmVycyBoYXZlIHRo
ZSBzYW1lIGNvbnRlbnRzCitQQVNTIEludDhfMTI4Yl9vZnNfc2xpY2UwOiBvZmZzZXQgaXMgNjQK
K1BBU1MgSW50OF8xMjhiX29mc19zbGljZTA6IGxlbmd0aCBpcyAwCitQQVNTIFVpbnQ4XzEyOGJf
b2ZzX3NsaWNlMDogY2xhc3NlcyBhcmUgW29iamVjdCBVaW50OEFycmF5XQorUEFTUyBVaW50OF8x
MjhiX29mc19zbGljZTA6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIFVp
bnQ4XzEyOGJfb2ZzX3NsaWNlMDogYnVmZmVyIGxlbmd0aHMgYXJlIDEyOAorUEFTUyBVaW50OF8x
MjhiX29mc19zbGljZTA6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBVaW50
OF8xMjhiX29mc19zbGljZTA6IG9mZnNldCBpcyA2NAorUEFTUyBVaW50OF8xMjhiX29mc19zbGlj
ZTA6IGxlbmd0aCBpcyAwCitQQVNTIEludDE2XzEyOGJfb2ZzX3NsaWNlMDogY2xhc3NlcyBhcmUg
W29iamVjdCBJbnQxNkFycmF5XQorUEFTUyBJbnQxNl8xMjhiX29mc19zbGljZTA6IGNsYXNzZXMg
YXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIEludDE2XzEyOGJfb2ZzX3NsaWNlMDogYnVm
ZmVyIGxlbmd0aHMgYXJlIDI1NgorUEFTUyBJbnQxNl8xMjhiX29mc19zbGljZTA6IGJ1ZmZlcnMg
aGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBJbnQxNl8xMjhiX29mc19zbGljZTA6IG9mZnNl
dCBpcyAxMjgKK1BBU1MgSW50MTZfMTI4Yl9vZnNfc2xpY2UwOiBsZW5ndGggaXMgMAorUEFTUyBV
aW50MTZfMTI4Yl9vZnNfc2xpY2UwOiBjbGFzc2VzIGFyZSBbb2JqZWN0IFVpbnQxNkFycmF5XQor
UEFTUyBVaW50MTZfMTI4Yl9vZnNfc2xpY2UwOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVm
ZmVyXQorUEFTUyBVaW50MTZfMTI4Yl9vZnNfc2xpY2UwOiBidWZmZXIgbGVuZ3RocyBhcmUgMjU2
CitQQVNTIFVpbnQxNl8xMjhiX29mc19zbGljZTA6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250
ZW50cworUEFTUyBVaW50MTZfMTI4Yl9vZnNfc2xpY2UwOiBvZmZzZXQgaXMgMTI4CitQQVNTIFVp
bnQxNl8xMjhiX29mc19zbGljZTA6IGxlbmd0aCBpcyAwCitQQVNTIEZsb2F0MzJfMTI4Yl9vZnNf
c2xpY2UwOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEZsb2F0MzJBcnJheV0KK1BBU1MgRmxvYXQzMl8x
MjhiX29mc19zbGljZTA6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIEZs
b2F0MzJfMTI4Yl9vZnNfc2xpY2UwOiBidWZmZXIgbGVuZ3RocyBhcmUgNTEyCitQQVNTIEZsb2F0
MzJfMTI4Yl9vZnNfc2xpY2UwOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1Mg
RmxvYXQzMl8xMjhiX29mc19zbGljZTA6IG9mZnNldCBpcyAyNTYKK1BBU1MgRmxvYXQzMl8xMjhi
X29mc19zbGljZTA6IGxlbmd0aCBpcyAwCitQQVNTIEZsb2F0NjRfMTI4Yl9vZnNfc2xpY2UwOiBj
bGFzc2VzIGFyZSBbb2JqZWN0IEZsb2F0NjRBcnJheV0KK1BBU1MgRmxvYXQ2NF8xMjhiX29mc19z
bGljZTA6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIEZsb2F0NjRfMTI4
Yl9vZnNfc2xpY2UwOiBidWZmZXIgbGVuZ3RocyBhcmUgMTAyNAorUEFTUyBGbG9hdDY0XzEyOGJf
b2ZzX3NsaWNlMDogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIEZsb2F0NjRf
MTI4Yl9vZnNfc2xpY2UwOiBvZmZzZXQgaXMgNTEyCitQQVNTIEZsb2F0NjRfMTI4Yl9vZnNfc2xp
Y2UwOiBsZW5ndGggaXMgMAorUEFTUyBJbnQzMl8xMjhiX29mc19zbGljZTE6IGNsYXNzZXMgYXJl
IFtvYmplY3QgSW50MzJBcnJheV0KK1BBU1MgSW50MzJfMTI4Yl9vZnNfc2xpY2UxOiBjbGFzc2Vz
IGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBJbnQzMl8xMjhiX29mc19zbGljZTE6IGJ1
ZmZlciBsZW5ndGhzIGFyZSA1MTIKK1BBU1MgSW50MzJfMTI4Yl9vZnNfc2xpY2UxOiBidWZmZXJz
IGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgSW50MzJfMTI4Yl9vZnNfc2xpY2UxOiBvZmZz
ZXQgaXMgMjU2CitQQVNTIEludDMyXzEyOGJfb2ZzX3NsaWNlMTogbGVuZ3RoIGlzIDQKK1BBU1Mg
VWludDMyXzEyOGJfb2ZzX3NsaWNlMTogY2xhc3NlcyBhcmUgW29iamVjdCBVaW50MzJBcnJheV0K
K1BBU1MgVWludDMyXzEyOGJfb2ZzX3NsaWNlMTogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1
ZmZlcl0KK1BBU1MgVWludDMyXzEyOGJfb2ZzX3NsaWNlMTogYnVmZmVyIGxlbmd0aHMgYXJlIDUx
MgorUEFTUyBVaW50MzJfMTI4Yl9vZnNfc2xpY2UxOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29u
dGVudHMKK1BBU1MgVWludDMyXzEyOGJfb2ZzX3NsaWNlMTogb2Zmc2V0IGlzIDI1NgorUEFTUyBV
aW50MzJfMTI4Yl9vZnNfc2xpY2UxOiBsZW5ndGggaXMgNAorUEFTUyBJbnQ4XzEyOGJfb2ZzX3Ns
aWNlMTogY2xhc3NlcyBhcmUgW29iamVjdCBJbnQ4QXJyYXldCitQQVNTIEludDhfMTI4Yl9vZnNf
c2xpY2UxOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBJbnQ4XzEyOGJf
b2ZzX3NsaWNlMTogYnVmZmVyIGxlbmd0aHMgYXJlIDEyOAorUEFTUyBJbnQ4XzEyOGJfb2ZzX3Ns
aWNlMTogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIEludDhfMTI4Yl9vZnNf
c2xpY2UxOiBvZmZzZXQgaXMgNjQKK1BBU1MgSW50OF8xMjhiX29mc19zbGljZTE6IGxlbmd0aCBp
cyAxCitQQVNTIFVpbnQ4XzEyOGJfb2ZzX3NsaWNlMTogY2xhc3NlcyBhcmUgW29iamVjdCBVaW50
OEFycmF5XQorUEFTUyBVaW50OF8xMjhiX29mc19zbGljZTE6IGNsYXNzZXMgYXJlIFtvYmplY3Qg
QXJyYXlCdWZmZXJdCitQQVNTIFVpbnQ4XzEyOGJfb2ZzX3NsaWNlMTogYnVmZmVyIGxlbmd0aHMg
YXJlIDEyOAorUEFTUyBVaW50OF8xMjhiX29mc19zbGljZTE6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2Ft
ZSBjb250ZW50cworUEFTUyBVaW50OF8xMjhiX29mc19zbGljZTE6IG9mZnNldCBpcyA2NAorUEFT
UyBVaW50OF8xMjhiX29mc19zbGljZTE6IGxlbmd0aCBpcyAxCitQQVNTIEludDE2XzEyOGJfb2Zz
X3NsaWNlMTogY2xhc3NlcyBhcmUgW29iamVjdCBJbnQxNkFycmF5XQorUEFTUyBJbnQxNl8xMjhi
X29mc19zbGljZTE6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIEludDE2
XzEyOGJfb2ZzX3NsaWNlMTogYnVmZmVyIGxlbmd0aHMgYXJlIDI1NgorUEFTUyBJbnQxNl8xMjhi
X29mc19zbGljZTE6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBJbnQxNl8x
MjhiX29mc19zbGljZTE6IG9mZnNldCBpcyAxMjgKK1BBU1MgSW50MTZfMTI4Yl9vZnNfc2xpY2Ux
OiBsZW5ndGggaXMgMgorUEFTUyBVaW50MTZfMTI4Yl9vZnNfc2xpY2UxOiBjbGFzc2VzIGFyZSBb
b2JqZWN0IFVpbnQxNkFycmF5XQorUEFTUyBVaW50MTZfMTI4Yl9vZnNfc2xpY2UxOiBjbGFzc2Vz
IGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBVaW50MTZfMTI4Yl9vZnNfc2xpY2UxOiBi
dWZmZXIgbGVuZ3RocyBhcmUgMjU2CitQQVNTIFVpbnQxNl8xMjhiX29mc19zbGljZTE6IGJ1ZmZl
cnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBVaW50MTZfMTI4Yl9vZnNfc2xpY2UxOiBv
ZmZzZXQgaXMgMTI4CitQQVNTIFVpbnQxNl8xMjhiX29mc19zbGljZTE6IGxlbmd0aCBpcyAyCitQ
QVNTIEZsb2F0MzJfMTI4Yl9vZnNfc2xpY2UxOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEZsb2F0MzJB
cnJheV0KK1BBU1MgRmxvYXQzMl8xMjhiX29mc19zbGljZTE6IGNsYXNzZXMgYXJlIFtvYmplY3Qg
QXJyYXlCdWZmZXJdCitQQVNTIEZsb2F0MzJfMTI4Yl9vZnNfc2xpY2UxOiBidWZmZXIgbGVuZ3Ro
cyBhcmUgNTEyCitQQVNTIEZsb2F0MzJfMTI4Yl9vZnNfc2xpY2UxOiBidWZmZXJzIGhhdmUgdGhl
IHNhbWUgY29udGVudHMKK1BBU1MgRmxvYXQzMl8xMjhiX29mc19zbGljZTE6IG9mZnNldCBpcyAy
NTYKK1BBU1MgRmxvYXQzMl8xMjhiX29mc19zbGljZTE6IGxlbmd0aCBpcyA0CitQQVNTIEZsb2F0
NjRfMTI4Yl9vZnNfc2xpY2UxOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEZsb2F0NjRBcnJheV0KK1BB
U1MgRmxvYXQ2NF8xMjhiX29mc19zbGljZTE6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZm
ZXJdCitQQVNTIEZsb2F0NjRfMTI4Yl9vZnNfc2xpY2UxOiBidWZmZXIgbGVuZ3RocyBhcmUgMTAy
NAorUEFTUyBGbG9hdDY0XzEyOGJfb2ZzX3NsaWNlMTogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNv
bnRlbnRzCitQQVNTIEZsb2F0NjRfMTI4Yl9vZnNfc2xpY2UxOiBvZmZzZXQgaXMgNTEyCitQQVNT
IEZsb2F0NjRfMTI4Yl9vZnNfc2xpY2UxOiBsZW5ndGggaXMgOAorUEFTUyBJbnQzMl8xMjhiX29m
c19zbGljZTE2OiBjbGFzc2VzIGFyZSBbb2JqZWN0IEludDMyQXJyYXldCitQQVNTIEludDMyXzEy
OGJfb2ZzX3NsaWNlMTY6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIElu
dDMyXzEyOGJfb2ZzX3NsaWNlMTY6IGJ1ZmZlciBsZW5ndGhzIGFyZSA1MTIKK1BBU1MgSW50MzJf
MTI4Yl9vZnNfc2xpY2UxNjogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIElu
dDMyXzEyOGJfb2ZzX3NsaWNlMTY6IG9mZnNldCBpcyAyNTYKK1BBU1MgSW50MzJfMTI4Yl9vZnNf
c2xpY2UxNjogbGVuZ3RoIGlzIDY0CitQQVNTIFVpbnQzMl8xMjhiX29mc19zbGljZTE2OiBjbGFz
c2VzIGFyZSBbb2JqZWN0IFVpbnQzMkFycmF5XQorUEFTUyBVaW50MzJfMTI4Yl9vZnNfc2xpY2Ux
NjogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgVWludDMyXzEyOGJfb2Zz
X3NsaWNlMTY6IGJ1ZmZlciBsZW5ndGhzIGFyZSA1MTIKK1BBU1MgVWludDMyXzEyOGJfb2ZzX3Ns
aWNlMTY6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBVaW50MzJfMTI4Yl9v
ZnNfc2xpY2UxNjogb2Zmc2V0IGlzIDI1NgorUEFTUyBVaW50MzJfMTI4Yl9vZnNfc2xpY2UxNjog
bGVuZ3RoIGlzIDY0CitQQVNTIEludDhfMTI4Yl9vZnNfc2xpY2UxNjogY2xhc3NlcyBhcmUgW29i
amVjdCBJbnQ4QXJyYXldCitQQVNTIEludDhfMTI4Yl9vZnNfc2xpY2UxNjogY2xhc3NlcyBhcmUg
W29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgSW50OF8xMjhiX29mc19zbGljZTE2OiBidWZmZXIg
bGVuZ3RocyBhcmUgMTI4CitQQVNTIEludDhfMTI4Yl9vZnNfc2xpY2UxNjogYnVmZmVycyBoYXZl
IHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIEludDhfMTI4Yl9vZnNfc2xpY2UxNjogb2Zmc2V0IGlz
IDY0CitQQVNTIEludDhfMTI4Yl9vZnNfc2xpY2UxNjogbGVuZ3RoIGlzIDE2CitQQVNTIFVpbnQ4
XzEyOGJfb2ZzX3NsaWNlMTY6IGNsYXNzZXMgYXJlIFtvYmplY3QgVWludDhBcnJheV0KK1BBU1Mg
VWludDhfMTI4Yl9vZnNfc2xpY2UxNjogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0K
K1BBU1MgVWludDhfMTI4Yl9vZnNfc2xpY2UxNjogYnVmZmVyIGxlbmd0aHMgYXJlIDEyOAorUEFT
UyBVaW50OF8xMjhiX29mc19zbGljZTE2OiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMK
K1BBU1MgVWludDhfMTI4Yl9vZnNfc2xpY2UxNjogb2Zmc2V0IGlzIDY0CitQQVNTIFVpbnQ4XzEy
OGJfb2ZzX3NsaWNlMTY6IGxlbmd0aCBpcyAxNgorUEFTUyBJbnQxNl8xMjhiX29mc19zbGljZTE2
OiBjbGFzc2VzIGFyZSBbb2JqZWN0IEludDE2QXJyYXldCitQQVNTIEludDE2XzEyOGJfb2ZzX3Ns
aWNlMTY6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIEludDE2XzEyOGJf
b2ZzX3NsaWNlMTY6IGJ1ZmZlciBsZW5ndGhzIGFyZSAyNTYKK1BBU1MgSW50MTZfMTI4Yl9vZnNf
c2xpY2UxNjogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIEludDE2XzEyOGJf
b2ZzX3NsaWNlMTY6IG9mZnNldCBpcyAxMjgKK1BBU1MgSW50MTZfMTI4Yl9vZnNfc2xpY2UxNjog
bGVuZ3RoIGlzIDMyCitQQVNTIFVpbnQxNl8xMjhiX29mc19zbGljZTE2OiBjbGFzc2VzIGFyZSBb
b2JqZWN0IFVpbnQxNkFycmF5XQorUEFTUyBVaW50MTZfMTI4Yl9vZnNfc2xpY2UxNjogY2xhc3Nl
cyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgVWludDE2XzEyOGJfb2ZzX3NsaWNlMTY6
IGJ1ZmZlciBsZW5ndGhzIGFyZSAyNTYKK1BBU1MgVWludDE2XzEyOGJfb2ZzX3NsaWNlMTY6IGJ1
ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBVaW50MTZfMTI4Yl9vZnNfc2xpY2Ux
Njogb2Zmc2V0IGlzIDEyOAorUEFTUyBVaW50MTZfMTI4Yl9vZnNfc2xpY2UxNjogbGVuZ3RoIGlz
IDMyCitQQVNTIEZsb2F0MzJfMTI4Yl9vZnNfc2xpY2UxNjogY2xhc3NlcyBhcmUgW29iamVjdCBG
bG9hdDMyQXJyYXldCitQQVNTIEZsb2F0MzJfMTI4Yl9vZnNfc2xpY2UxNjogY2xhc3NlcyBhcmUg
W29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgRmxvYXQzMl8xMjhiX29mc19zbGljZTE2OiBidWZm
ZXIgbGVuZ3RocyBhcmUgNTEyCitQQVNTIEZsb2F0MzJfMTI4Yl9vZnNfc2xpY2UxNjogYnVmZmVy
cyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIEZsb2F0MzJfMTI4Yl9vZnNfc2xpY2UxNjog
b2Zmc2V0IGlzIDI1NgorUEFTUyBGbG9hdDMyXzEyOGJfb2ZzX3NsaWNlMTY6IGxlbmd0aCBpcyA2
NAorUEFTUyBGbG9hdDY0XzEyOGJfb2ZzX3NsaWNlMTY6IGNsYXNzZXMgYXJlIFtvYmplY3QgRmxv
YXQ2NEFycmF5XQorUEFTUyBGbG9hdDY0XzEyOGJfb2ZzX3NsaWNlMTY6IGNsYXNzZXMgYXJlIFtv
YmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIEZsb2F0NjRfMTI4Yl9vZnNfc2xpY2UxNjogYnVmZmVy
IGxlbmd0aHMgYXJlIDEwMjQKK1BBU1MgRmxvYXQ2NF8xMjhiX29mc19zbGljZTE2OiBidWZmZXJz
IGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgRmxvYXQ2NF8xMjhiX29mc19zbGljZTE2OiBv
ZmZzZXQgaXMgNTEyCitQQVNTIEZsb2F0NjRfMTI4Yl9vZnNfc2xpY2UxNjogbGVuZ3RoIGlzIDEy
OAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvY2FudmFzL3dlYmds
L2FycmF5LW1lc3NhZ2UtcGFzc2luZy5odG1sIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0vZmFzdC9jYW52YXMvd2ViZ2wvYXJyYXktbWVzc2FnZS1wYXNzaW5nLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzI1NWQ5OAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvY2FudmFzL3dlYmdsL2FycmF5LW1lc3Nh
Z2UtcGFzc2luZy5odG1sCkBAIC0wLDAgKzEsMTQgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAi
LS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxl
c2hlZXQiIGhyZWY9Ii4uLy4uLy4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5
bGUuY3NzIi8+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uLy4uL2Zh
c3QvY2FudmFzL3dlYmdsL3dlYmdsLXRlc3QuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+
Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4K
KzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvYXJyYXktbWVzc2FnZS1wYXNzaW5nLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9jYW52YXMvd2ViZ2wvc2NyaXB0LXRlc3Rz
L2FycmF5LW1lc3NhZ2UtcGFzc2luZy5qcyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
L2Zhc3QvY2FudmFzL3dlYmdsL3NjcmlwdC10ZXN0cy9hcnJheS1tZXNzYWdlLXBhc3NpbmcuanMK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmEzODgwMAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvY2FudmFzL3dlYmdsL3Nj
cmlwdC10ZXN0cy9hcnJheS1tZXNzYWdlLXBhc3NpbmcuanMKQEAgLTAsMCArMSwxODQgQEAKK3dp
bmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK3dpbmRvdy5jaGVhdCA9IGZhbHNlOworCitkZXNj
cmlwdGlvbignVGVzdCBwYXNzaW5nIEFycmF5QnVmZmVycyBhbmQgQXJyYXlCdWZmZXJWaWV3cyBp
biBtZXNzYWdlcy4nKTsKK3dpbmRvdy50ZXN0c0NvbXBsZXRlID0gMDsKKworZnVuY3Rpb24gY2xh
c3NDb21wYXJlKHRuYW1lLCBnLCBzKSB7CisgIHZhciBjbGFzc1N0ciA9IE9iamVjdC5wcm90b3R5
cGUudG9TdHJpbmc7CisgIHZhciBnY2xhc3MgPSBjbGFzc1N0ci5jYWxsKGcpOworICB2YXIgc2Ns
YXNzID0gY2xhc3NTdHIuY2FsbChzKTsKKyAgaWYgKGdjbGFzcyAhPT0gc2NsYXNzKSB7CisgICAg
dGVzdEZhaWxlZCh0bmFtZSArICI6IGNsYXNzICIgKyBzY2xhc3MgKyAiIGJlY2FtZSAiICsgZ2Ns
YXNzKTsKKyAgICByZXR1cm4gZmFsc2U7CisgIH0gZWxzZSB7CisgICAgdGVzdFBhc3NlZCh0bmFt
ZSArICI6IGNsYXNzZXMgYXJlICIgKyBzY2xhc3MpOworICAgIHJldHVybiB0cnVlOworICB9Cit9
CisKK2Z1bmN0aW9uIGJ1ZmZlckNvbXBhcmUodG5hbWUsIGcsIHMpIHsKKyAgaWYgKCFjbGFzc0Nv
bXBhcmUodG5hbWUsIGcsIHMpKSB7CisgICAgcmV0dXJuIGZhbHNlOworICB9CisgIGlmIChnLmJ5
dGVMZW5ndGggIT09IHMuYnl0ZUxlbmd0aCkgeworICAgIHRlc3RGYWlsZWQodG5hbWUgKyAiOiBl
eHBlY3RlZCBieXRlTGVuZ3RoICIgKyBzLmJ5dGVMZW5ndGggKyAiIGJ5dGVzLCBnb3QgIiArIGcu
Ynl0ZUxlbmd0aCk7CisgICAgcmV0dXJuIGZhbHNlOworICB9IGVsc2UgeworICAgIHRlc3RQYXNz
ZWQodG5hbWUgKyAiOiBidWZmZXIgbGVuZ3RocyBhcmUgIiArIHMuYnl0ZUxlbmd0aCk7CisgIH0K
KyAgdmFyIGdyZWFkZXIgPSBuZXcgVWludDhBcnJheShnKTsKKyAgdmFyIHNyZWFkZXIgPSBuZXcg
VWludDhBcnJheShzKTsKKyAgZm9yICh2YXIgaSA9IDA7IGkgPCBzLmJ5dGVMZW5ndGg7ICsraSkg
eworICAgIGlmIChncmVhZGVyW2ldICE9PSBzcmVhZGVyW2ldKSB7CisgICAgICB0ZXN0RmFpbGVk
KHRuYW1lICsgIjogYnVmZmVycyBkaWZmZXIgc3RhcnRpbmcgYXQgYnl0ZSAiICsgaSk7CisgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgfQorICB9CisgIHRlc3RQYXNzZWQodG5hbWUgKyAiOiBidWZm
ZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMiKTsKKyAgcmV0dXJuIHRydWU7Cit9CisKK2Z1bmN0
aW9uIHZpZXdDb21wYXJlKHRuYW1lLCBnLCBzKSB7CisgIGlmICghY2xhc3NDb21wYXJlKHRuYW1l
LCBnLCBzKSkgeworICAgIHJldHVybiBmYWxzZTsKKyAgfQorICBpZiAoIWJ1ZmZlckNvbXBhcmUo
dG5hbWUsIGcuYnVmZmVyLCBzLmJ1ZmZlcikpIHsKKyAgICByZXR1cm4gZmFsc2U7CisgIH0KKyAg
aWYgKGcuYnl0ZU9mZnNldCAhPT0gcy5ieXRlT2Zmc2V0KSB7CisgICAgdGVzdEZhaWxlZCh0bmFt
ZSArICI6IG9mZnNldCAiICsgcy5ieXRlT2Zmc2V0ICsgIiBiZWNhbWUgIiArIGcuYnl0ZU9mZnNl
dCk7CisgICAgcmV0dXJuIGZhbHNlOworICB9IGVsc2UgeworICAgIHRlc3RQYXNzZWQodG5hbWUg
KyAiOiBvZmZzZXQgaXMgIiArIHMuYnl0ZU9mZnNldCk7CisgIH0KKyAgaWYgKGcuYnl0ZUxlbmd0
aCAhPT0gcy5ieXRlTGVuZ3RoKSB7CisgICAgdGVzdEZhaWxlZCh0bmFtZSArICI6IGxlbmd0aCAi
ICsgcy5ieXRlTGVuZ3RoICsgIiBiZWNhbWUgIiArIGcuYnl0ZUxlbmd0aCk7CisgICAgcmV0dXJu
IGZhbHNlOworICB9IGVsc2UgeworICAgIHRlc3RQYXNzZWQodG5hbWUgKyAiOiBsZW5ndGggaXMg
IiArIHMuYnl0ZUxlbmd0aCk7CisgIH0KKyAgcmV0dXJuIHRydWU7Cit9CisKK2Z1bmN0aW9uIHR5
cGVkQXJyYXlDb21wYXJlKHRuYW1lLCBnLCBzKSB7CisgIGlmICghdmlld0NvbXBhcmUodG5hbWUs
IGcsIHMpKSB7CisgICAgcmV0dXJuIGZhbHNlOworICB9CisgIGlmIChnLkJZVEVTX1BFUl9FTEVN
RU5UICE9PSBzLkJZVEVTX1BFUl9FTEVNRU5UKSB7CisgICAgLy8gU2FuaXR5IGNoZWNraW5nLgor
ICAgIHRlc3RGYWlsZWQodG5hbWUgKyAiOiBleHBlY3RlZCBCWVRFU19QRVJfRUxFTUVOVCAiICsg
cy5CWVRFU19QRVJfRUxFTUVOVCArICIsIHNhdyAiICsgZy5CWVRFU19QRVJfRUxFTUVOVCk7Cisg
ICAgcmV0dXJuIGZhbHNlOworICB9Cit9CisKK2Z1bmN0aW9uIGRhdGFWaWV3Q29tcGFyZSh0bmFt
ZSwgZywgcykgeworICBpZiAoIXZpZXdDb21wYXJlKHRuYW1lLCBnLCBzKSkgeworICAgIHJldHVy
biBmYWxzZTsKKyAgfQorfQorCitmdW5jdGlvbiBjcmVhdGVCdWZmZXIobGVuZ3RoKSB7CisgIHZh
ciBidWZmZXIgPSBuZXcgQXJyYXlCdWZmZXIobGVuZ3RoKTsKKyAgdmFyIHZpZXcgPSBuZXcgVWlu
dDhBcnJheShidWZmZXIpOworICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgKytpKSB7Cisg
ICAgdmlld1tpXSA9IGkgKyAxOworICB9CisgIHJldHVybiBidWZmZXI7Cit9CisKK2Z1bmN0aW9u
IGNyZWF0ZVR5cGVkQXJyYXkodGF0eXBlLCBsZW5ndGgpIHsKKyAgdmFyIHZpZXcgPSBuZXcgdGF0
eXBlKGxlbmd0aCk7CisgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpIHsKKyAgICB2
aWV3W2ldID0gaSArIDE7CisgIH0KKyAgcmV0dXJuIHZpZXc7Cit9CisKK2Z1bmN0aW9uIGNyZWF0
ZVR5cGVkQXJyYXlPdmVyQnVmZmVyKHRhdHlwZSwgdGFlbHRzaXplLCBsZW5ndGgsIHN1YnN0YXJ0
LCBzdWJsZW5ndGgpIHsKKyAgdmFyIGJ1ZmZlciA9IG5ldyBBcnJheUJ1ZmZlcihsZW5ndGggKiB0
YWVsdHNpemUpOworICBpZiAoc3Vic3RhcnQgPT09IHVuZGVmaW5lZCkgeworICAgIHN1YnN0YXJ0
ID0gMDsKKyAgICBzdWJsZW5ndGggPSBsZW5ndGg7CisgIH0KKyAgcmV0dXJuIG5ldyB0YXR5cGUo
YnVmZmVyLCBzdWJzdGFydCAqIHRhZWx0c2l6ZSwgc3VibGVuZ3RoKTsKK30KKwordmFyIGJhc2lj
QnVmZmVyVHlwZXMgPSBbCisgIFsiSW50MzIiLCBJbnQzMkFycmF5LCA0XSwKKyAgWyJVaW50MzIi
LCBVaW50MzJBcnJheSwgNF0sCisgIFsiSW50OCIsIEludDhBcnJheSwgMV0sCisgIFsiVWludDgi
LCBVaW50OEFycmF5LCAxXSwKKyAgWyJJbnQxNiIsIEludDE2QXJyYXksIDJdLAorICBbIlVpbnQx
NiIsIFVpbnQxNkFycmF5LCAyXSwKKyAgWyJGbG9hdDMyIiwgRmxvYXQzMkFycmF5LCA0XSwKKyAg
WyJGbG9hdDY0IiwgRmxvYXQ2NEFycmF5LCA4XQorXTsKKwordmFyIHRlc3RMaXN0ID0gWworICBb
J0FycmF5QnVmZmVyMCcsIG5ldyBBcnJheUJ1ZmZlcigwKSwgYnVmZmVyQ29tcGFyZV0sCisgIFsn
QXJyYXlCdWZmZXIxJywgY3JlYXRlQnVmZmVyKDEpLCBidWZmZXJDb21wYXJlXSwKKyAgWydBcnJh
eUJ1ZmZlcjEyOCcsIGNyZWF0ZUJ1ZmZlcigxMjgpLCBidWZmZXJDb21wYXJlXSwKKyAgWydEYXRh
VmlldzAnLCBuZXcgRGF0YVZpZXcobmV3IEFycmF5QnVmZmVyKDApKSwgZGF0YVZpZXdDb21wYXJl
XSwKKyAgWydEYXRhVmlldzEnLCBuZXcgRGF0YVZpZXcoY3JlYXRlQnVmZmVyKDEpKSwgZGF0YVZp
ZXdDb21wYXJlXSwKKyAgWydEYXRhVmlldzEyOCcsIG5ldyBEYXRhVmlldyhjcmVhdGVCdWZmZXIo
MTI4KSksIGRhdGFWaWV3Q29tcGFyZV0sCisgIFsnRGF0YVZpZXcxX29mc19lbmQnLCBuZXcgRGF0
YVZpZXcoY3JlYXRlQnVmZmVyKDEpLCAxLCAwKSwgZGF0YVZpZXdDb21wYXJlXSwKKyAgWydEYXRh
VmlldzEyOF9vZnNfZW5kJywgbmV3IERhdGFWaWV3KGNyZWF0ZUJ1ZmZlcigxMjgpLCAxMjgsIDAp
LCBkYXRhVmlld0NvbXBhcmVdLAorICBbJ0RhdGFWaWV3MTI4X29mc19zbGljZTAnLCBuZXcgRGF0
YVZpZXcoY3JlYXRlQnVmZmVyKDEyOCksIDY0LCAwKSwgZGF0YVZpZXdDb21wYXJlXSwKKyAgWydE
YXRhVmlldzEyOF9vZnNfc2xpY2UxJywgbmV3IERhdGFWaWV3KGNyZWF0ZUJ1ZmZlcigxMjgpLCA2
NCwgMSksIGRhdGFWaWV3Q29tcGFyZV0sCisgIFsnRGF0YVZpZXcxMjhfb2ZzX3NsaWNlMTYnLCBu
ZXcgRGF0YVZpZXcoY3JlYXRlQnVmZmVyKDEyOCksIDY0LCAxNiksIGRhdGFWaWV3Q29tcGFyZV0s
CisgIFsnRGF0YVZpZXcxMjhfb2ZzX3NsaWNlX3VuYWxpZ25lZCcsIG5ldyBEYXRhVmlldyhjcmVh
dGVCdWZmZXIoMTI4KSwgNjMsIDE1KSwgZGF0YVZpZXdDb21wYXJlXQorXTsKKwordGVzdExpc3Qg
PSB0ZXN0TGlzdC5jb25jYXQoYmFzaWNCdWZmZXJUeXBlcy5tYXAoZnVuY3Rpb24odCkKKyAge3Jl
dHVybiBbdFswXSArICJfMCIsIGNyZWF0ZVR5cGVkQXJyYXkodFsxXSwgMCksIHR5cGVkQXJyYXlD
b21wYXJlXTt9KSk7Cit0ZXN0TGlzdCA9IHRlc3RMaXN0LmNvbmNhdChiYXNpY0J1ZmZlclR5cGVz
Lm1hcChmdW5jdGlvbih0KQorICB7cmV0dXJuIFt0WzBdICsgIl8xIiwgY3JlYXRlVHlwZWRBcnJh
eSh0WzFdLCAxKSwgdHlwZWRBcnJheUNvbXBhcmVdO30pKTsKK3Rlc3RMaXN0ID0gdGVzdExpc3Qu
Y29uY2F0KGJhc2ljQnVmZmVyVHlwZXMubWFwKGZ1bmN0aW9uKHQpCisgIHtyZXR1cm4gW3RbMF0g
KyAiXzEyOCIsIGNyZWF0ZVR5cGVkQXJyYXkodFsxXSwgMTI4KSwgdHlwZWRBcnJheUNvbXBhcmVd
O30pKTsKK3Rlc3RMaXN0ID0gdGVzdExpc3QuY29uY2F0KGJhc2ljQnVmZmVyVHlwZXMubWFwKGZ1
bmN0aW9uKHQpCisgIHtyZXR1cm4gW3RbMF0gKyAiXzBiIiwgY3JlYXRlVHlwZWRBcnJheU92ZXJC
dWZmZXIodFsxXSwgdFsyXSwgMCksIHR5cGVkQXJyYXlDb21wYXJlXTt9KSk7Cit0ZXN0TGlzdCA9
IHRlc3RMaXN0LmNvbmNhdChiYXNpY0J1ZmZlclR5cGVzLm1hcChmdW5jdGlvbih0KQorICB7cmV0
dXJuIFt0WzBdICsgIl8xYiIsIGNyZWF0ZVR5cGVkQXJyYXlPdmVyQnVmZmVyKHRbMV0sIHRbMl0s
IDEpLCB0eXBlZEFycmF5Q29tcGFyZV07fSkpOwordGVzdExpc3QgPSB0ZXN0TGlzdC5jb25jYXQo
YmFzaWNCdWZmZXJUeXBlcy5tYXAoZnVuY3Rpb24odCkKKyAge3JldHVybiBbdFswXSArICJfMTI4
YiIsIGNyZWF0ZVR5cGVkQXJyYXlPdmVyQnVmZmVyKHRbMV0sIHRbMl0sIDEyOCksIHR5cGVkQXJy
YXlDb21wYXJlXTt9KSk7Cit0ZXN0TGlzdCA9IHRlc3RMaXN0LmNvbmNhdChiYXNpY0J1ZmZlclR5
cGVzLm1hcChmdW5jdGlvbih0KQorICB7cmV0dXJuIFt0WzBdICsgIl8xYl9vZnNfZW5kIiwgY3Jl
YXRlVHlwZWRBcnJheU92ZXJCdWZmZXIodFsxXSwgdFsyXSwgMSwgMSwgMCksIHR5cGVkQXJyYXlD
b21wYXJlXTt9KSk7Cit0ZXN0TGlzdCA9IHRlc3RMaXN0LmNvbmNhdChiYXNpY0J1ZmZlclR5cGVz
Lm1hcChmdW5jdGlvbih0KQorICB7cmV0dXJuIFt0WzBdICsgIl8xMjhiX29mc19lbmQiLCBjcmVh
dGVUeXBlZEFycmF5T3ZlckJ1ZmZlcih0WzFdLCB0WzJdLCAxMjgsIDEyOCwgMCksIHR5cGVkQXJy
YXlDb21wYXJlXTt9KSk7Cit0ZXN0TGlzdCA9IHRlc3RMaXN0LmNvbmNhdChiYXNpY0J1ZmZlclR5
cGVzLm1hcChmdW5jdGlvbih0KQorICB7cmV0dXJuIFt0WzBdICsgIl8xMjhiX29mc19zbGljZTAi
LCBjcmVhdGVUeXBlZEFycmF5T3ZlckJ1ZmZlcih0WzFdLCB0WzJdLCAxMjgsIDY0LCAwKSwgdHlw
ZWRBcnJheUNvbXBhcmVdO30pKTsKK3Rlc3RMaXN0ID0gdGVzdExpc3QuY29uY2F0KGJhc2ljQnVm
ZmVyVHlwZXMubWFwKGZ1bmN0aW9uKHQpCisgIHtyZXR1cm4gW3RbMF0gKyAiXzEyOGJfb2ZzX3Ns
aWNlMSIsIGNyZWF0ZVR5cGVkQXJyYXlPdmVyQnVmZmVyKHRbMV0sIHRbMl0sIDEyOCwgNjQsIDEp
LCB0eXBlZEFycmF5Q29tcGFyZV07fSkpOwordGVzdExpc3QgPSB0ZXN0TGlzdC5jb25jYXQoYmFz
aWNCdWZmZXJUeXBlcy5tYXAoZnVuY3Rpb24odCkKKyAge3JldHVybiBbdFswXSArICJfMTI4Yl9v
ZnNfc2xpY2UxNiIsIGNyZWF0ZVR5cGVkQXJyYXlPdmVyQnVmZmVyKHRbMV0sIHRbMl0sIDEyOCwg
NjQsIDE2KSwgdHlwZWRBcnJheUNvbXBhcmVdO30pKTsKKworZnVuY3Rpb24gZG9uZVRlc3QoKSB7
CisgIGlmICgrK3dpbmRvdy50ZXN0c0NvbXBsZXRlID09IHRlc3RMaXN0Lmxlbmd0aCkgeworICAg
IGZpbmlzaEpTVGVzdCgpOworICB9Cit9CisKK2Z1bmN0aW9uIHdpbmRvd0hhbmRsZU1lc3NhZ2Uo
ZSkgeworICB2YXIgY3VycmVudFRlc3QgPSB0ZXN0TGlzdFtlLmRhdGEudGVzdE51bV07CisgIHZh
ciBleHBlY3RlZFJlc3VsdCA9IGN1cnJlbnRUZXN0WzFdOworICB0cnkgeworICAgIGN1cnJlbnRU
ZXN0WzJdKGN1cnJlbnRUZXN0WzBdLCBlLmRhdGEudGVzdERhdGEsIGV4cGVjdGVkUmVzdWx0KTsK
KyAgfSBjYXRjaChlKSB7CisgICAgdGVzdEZhaWxlZChjdXJyZW50VGVzdFswXSArICI6IHVuZXhw
ZWN0ZWQgZXhjZXB0aW9uICIgKyBlKTsKKyAgfQorICBkb25lVGVzdCgpOworfQord2luZG93LmFk
ZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCB3aW5kb3dIYW5kbGVNZXNzYWdlKTsKKworZm9yICh2
YXIgdCA9IDA7IHQgPCB0ZXN0TGlzdC5sZW5ndGg7ICsrdCkgeworICB2YXIgY3VycmVudFRlc3Qg
PSB0ZXN0TGlzdFt0XTsKKyAgdmFyIG1lc3NhZ2UgPSB7dGVzdE51bTogdCwgdGVzdERhdGE6IGN1
cnJlbnRUZXN0WzFdfTsKKyAgaWYgKHdpbmRvdy5jaGVhdCkgeworICAgIHdpbmRvd0hhbmRsZU1l
c3NhZ2Uoe2RhdGE6IG1lc3NhZ2V9KTsKKyAgfSBlbHNlIHsKKyAgICB3aW5kb3cucG9zdE1lc3Nh
Z2UobWVzc2FnZSwgJyonKTsKKyAgfQorfQorCitzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9kb20vV2luZG93
L3NjcmlwdC10ZXN0cy9wb3N0bWVzc2FnZS1jbG9uZS1leC5qcyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtL2Zhc3QvZG9tL1dpbmRvdy9zY3JpcHQtdGVzdHMvcG9zdG1lc3NhZ2UtY2xv
bmUtZXguanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDAyYzgzMgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZG9tL1dp
bmRvdy9zY3JpcHQtdGVzdHMvcG9zdG1lc3NhZ2UtY2xvbmUtZXguanMKQEAgLTAsMCArMSwyNzQg
QEAKK2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkZXNjcmlwdGlvbiIpLmlubmVySFRNTCA9ICJU
ZXN0cyB0aGF0IHdlIGNsb25lIG9iamVjdCBoaWVyYXJjaGllcyI7CisKK3RyeVBvc3RNZXNzYWdl
KCdudWxsJyk7Cit0cnlQb3N0TWVzc2FnZSgndW5kZWZpbmVkJyk7Cit0cnlQb3N0TWVzc2FnZSgn
MScpOwordHJ5UG9zdE1lc3NhZ2UoJ3RydWUnKTsKK3RyeVBvc3RNZXNzYWdlKCciMSInKTsKK3Ry
eVBvc3RNZXNzYWdlKCcoe30pJyk7Cit0cnlQb3N0TWVzc2FnZSgnKHthOjF9KScpOwordHJ5UG9z
dE1lc3NhZ2UoJyh7YToiYSJ9KScpOwordHJ5UG9zdE1lc3NhZ2UoJyh7YjoiYSIsIGE6ImIifSkn
KTsKK3RyeVBvc3RNZXNzYWdlKCcoe3AwOiJzdHJpbmcwIiwgcDE6InN0cmluZzEiLCBwMjoic3Ry
aW5nMiIsIHAzOiJzdHJpbmczIiwgcDQ6InN0cmluZzQiLCBwNToic3RyaW5nNSIsIHA2OiJzdHJp
bmc2IiwgcDc6InN0cmluZzciLCBwODoic3RyaW5nOCIsIHA5OiJzdHJpbmc5IiwgcDEwOiJzdHJp
bmcxMCIsIHAxMToic3RyaW5nMTEiLCBwMTI6InN0cmluZzEyIiwgcDEzOiJzdHJpbmcxMyIsIHAx
NDoic3RyaW5nMTQiLCBwMTU6InN0cmluZzE1IiwgcDE2OiJzdHJpbmcxNiIsIHAxNzoic3RyaW5n
MTciLCBwMTg6InN0cmluZzE4IiwgcDE5OiJzdHJpbmcxOSJ9KScpOwordHJ5UG9zdE1lc3NhZ2Uo
Jyh7cDA6InN0cmluZzEiLCBwMToic3RyaW5nMSIsIHAyOiJzdHJpbmcyIiwgcDM6InN0cmluZzMi
LCBwNDoic3RyaW5nNCIsIHA1OiJzdHJpbmc1IiwgcDY6InN0cmluZzYiLCBwNzoic3RyaW5nNyIs
IHA4OiJzdHJpbmc4IiwgcDk6InN0cmluZzkiLCBwMTA6InN0cmluZzEwIiwgcDExOiJzdHJpbmcx
MSIsIHAxMjoic3RyaW5nMTIiLCBwMTM6InN0cmluZzEzIiwgcDE0OiJzdHJpbmcxNCIsIHAxNToi
c3RyaW5nMTUiLCBwMTY6InN0cmluZzE2IiwgcDE3OiJzdHJpbmcxNyIsIHAxODoic3RyaW5nMTgi
LCBwMTk6InN0cmluZzE5In0pJyk7Cit0cnlQb3N0TWVzc2FnZSgnKHthOiIifSknKTsKK3RyeVBv
c3RNZXNzYWdlKCcoe2E6MH0pJyk7Cit0cnlQb3N0TWVzc2FnZSgnKHthOjF9KScpOwordHJ5UG9z
dE1lc3NhZ2UoJ1tdJyk7Cit0cnlQb3N0TWVzc2FnZSgnWyJhIiwgImEiLCAiYiIsICJhIiwgImIi
XScpOwordHJ5UG9zdE1lc3NhZ2UoJ1siYSIsICJhIiwgImIiLCB7YToiYiIsIGI6ImEifV0nKTsK
K3RyeVBvc3RNZXNzYWdlKCdbMSwyLDNdJyk7Cit0cnlQb3N0TWVzc2FnZSgnWywsMV0nKTsKK3Ry
eVBvc3RNZXNzYWdlKCcoZnVuY3Rpb24oKXt9KScsIHRydWUsIG51bGwsIERPTUV4Y2VwdGlvbi5E
QVRBX0NMT05FX0VSUik7Cit0cnlQb3N0TWVzc2FnZSgnbmV3IERhdGUoMTIzNDU2Nzg5MDAwMCkn
KTsKK3RyeVBvc3RNZXNzYWdlKCduZXcgQ29uc3RydWN0b3JXaXRoUHJvdG90eXBlKCJmb28iKScs
IGZhbHNlLCAnKHtmaWVsZDoiZm9vIn0pJyk7CitjeWNsaWNPYmplY3Q9e307CitjeWNsaWNPYmpl
Y3Quc2VsZiA9IGN5Y2xpY09iamVjdDsKK3RyeVBvc3RNZXNzYWdlKCdjeWNsaWNPYmplY3QnLCBm
YWxzZSwgImN5Y2xpY09iamVjdCIpOworY3ljbGljQXJyYXk9W107CitjeWNsaWNBcnJheVswXSA9
IGN5Y2xpY0FycmF5OwordHJ5UG9zdE1lc3NhZ2UoJ2N5Y2xpY0FycmF5JywgZmFsc2UsICJjeWNs
aWNBcnJheSIpOworb2JqZWN0R3JhcGggPSB7fTsKK29iamVjdCA9IHt9Oworb2JqZWN0R3JhcGgu
Z3JhcGgxID0gb2JqZWN0Oworb2JqZWN0R3JhcGguZ3JhcGgyID0gb2JqZWN0OwordHJ5UG9zdE1l
c3NhZ2UoJ29iamVjdEdyYXBoJywgZmFsc2UsICJvYmplY3RHcmFwaCIpOworYXJyYXlHcmFwaCA9
IFtvYmplY3QsIG9iamVjdF07Cit0cnlQb3N0TWVzc2FnZSgnYXJyYXlHcmFwaCcsIGZhbHNlLCAi
YXJyYXlHcmFwaCIpOwordHJ5UG9zdE1lc3NhZ2UoJ3dpbmRvdycsIHRydWUpOwordHJ5UG9zdE1l
c3NhZ2UoJyh7Z2V0IGEoKSB7IHRocm93ICJ4IiB9fSknLCB0cnVlKTsKKworaWYgKHdpbmRvdy5l
dmVudFNlbmRlcikgeworICAgIHZhciBmaWxlSW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgiZmlsZUlucHV0Iik7CisgICAgdmFyIGZpbGVSZWN0ID0gZmlsZUlucHV0LmdldENsaWVudFJl
Y3RzKClbMF07CisgICAgdmFyIHRhcmdldFggPSBmaWxlUmVjdC5sZWZ0ICsgZmlsZVJlY3Qud2lk
dGggLyAyOworICAgIHZhciB0YXJnZXRZID0gZmlsZVJlY3QudG9wICsgZmlsZVJlY3QuaGVpZ2h0
IC8gMjsKKyAgICBldmVudFNlbmRlci5iZWdpbkRyYWdXaXRoRmlsZXMoWydnb3QtZmlsZS11cGxv
YWQuaHRtbCcsICdnb3QtZmlsZS11cGxvYWQtMi5odG1sJ10pOworICAgIGV2ZW50U2VuZGVyLm1v
dXNlTW92ZVRvKHRhcmdldFgsIHRhcmdldFkpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsK
K30KK3ZhciBpbWFnZURhdGEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKS5nZXRD
b250ZXh0KCIyZCIpLmNyZWF0ZUltYWdlRGF0YSgxMCwxMCk7Citmb3IgKHZhciBpID0gMDsgaSA8
IGltYWdlRGF0YS5kYXRhLmxlbmd0aCAqIDQ7IGkrKykKKyAgICBpbWFnZURhdGEuZGF0YVtpXSA9
IGkgJSAyNTY7Cit2YXIgbXV0YXRlZEltYWdlRGF0YSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
ImNhbnZhcyIpLmdldENvbnRleHQoIjJkIikuY3JlYXRlSW1hZ2VEYXRhKDEwLDEwKTsKK2ZvciAo
dmFyIGkgPSAwOyBpIDwgaW1hZ2VEYXRhLmRhdGEubGVuZ3RoICogNDsgaSsrKQorICAgIG11dGF0
ZWRJbWFnZURhdGEuZGF0YVtpXSA9IGkgJSAyNTY7Cit0cnlQb3N0TWVzc2FnZSgnaW1hZ2VEYXRh
JywgZmFsc2UsIGltYWdlRGF0YSk7Cit0cnlQb3N0TWVzc2FnZSgnaW1hZ2VEYXRhLmRhdGEnLCB0
cnVlLCBudWxsLCBET01FeGNlcHRpb24uREFUQV9DTE9ORV9FUlIpCit0cnlQb3N0TWVzc2FnZSgn
bXV0YXRlZEltYWdlRGF0YScsIGZhbHNlLCBpbWFnZURhdGEpOwordHJ5UG9zdE1lc3NhZ2UoJ211
dGF0ZWRJbWFnZURhdGEuZGF0YScsIHRydWUsIG51bGwsIERPTUV4Y2VwdGlvbi5EQVRBX0NMT05F
X0VSUikKK2ZvciAodmFyIGkgPSAwOyBpIDwgaW1hZ2VEYXRhLmRhdGEubGVuZ3RoICogNDsgaSsr
KQorICAgIG11dGF0ZWRJbWFnZURhdGEuZGF0YVtpXSA9IDA7CisKK2Z1bmN0aW9uIHRodW5rKHMp
IHsKKyAgICByZXR1cm4gIihmdW5jdGlvbigpIHsiICsgcyArICJ9KSgpIjsKK30KK3RyeVBvc3RN
ZXNzYWdlKHRodW5rKCdyZXR1cm4gNDI7JyksIGZhbHNlLCAnNDInKTsKK3RyeVBvc3RNZXNzYWdl
KHRodW5rKCdyZXR1cm4gNDI7JyksIGZhbHNlLCB0aHVuaygncmV0dXJuIDQwICsgMjsnKSk7Cit0
cnlQb3N0TWVzc2FnZSh0aHVuaygncmV0dXJuIDQyOycpLCBmYWxzZSwgImV2YWxUaHVuayIsCisg
ICAgICAgICAgICAgICBmdW5jdGlvbih2KSB7IGRvUGFzc0ZhaWwodiA9PSA0MiwgImV2YWxUaHVu
ayBPSyIpOyB9KQorCisvLyBPbmx5IGVudW1lcmFibGUgcHJvcGVydGllcyBzaG91bGQgYmUgc2Vy
aWFsaXplZC4KK3RyeVBvc3RNZXNzYWdlKHRodW5rKCd2YXIgbyA9IHt4OiJoZWxsbyJ9OyBPYmpl
Y3QuZGVmaW5lUHJvcGVydHkobywgInkiLCB7dmFsdWU6Imdvb2RieWUifSk7IHJldHVybiBvOycp
LCBmYWxzZSwgJyh7eDoiaGVsbG8ifSknKTsKKworLy8gSXQncyB1bmNsZWFyIHdoYXQgd2Ugc2hv
dWxkIGRvIGlmIGFuIGFjY2Vzc29yIG1vZGlmaWVzIGFuIG9iamVjdCBvdXQgZnJvbSB1bmRlciB1
cworLy8gd2hpbGUgd2UncmUgc2VyaWFsaXppbmcgaXQ7IHRoZSBzdGFuZGFyZCBkb2VzIG1hbmRh
dGUgY2VydGFpbiBhc3BlY3RzIGFib3V0IGV2YWx1YXRpb24KKy8vIG9yZGVyLCB0aG91Z2gsIGlu
Y2x1ZGluZyB0aGF0IHByb3BlcnRpZXMgbXVzdCBiZSBwcm9jZXNzZWQgaW4gdGhlaXIgZW51bWVy
YXRpb24gb3JkZXIuCit0cnlQb3N0TWVzc2FnZSh0aHVuaygKKyAgICAgICAgJ3ZhciBhID0gWzAs
IDEsIDJdOyAnICsKKyAgICAgICAgJ3ZhciBiID0geyBnZXQgeCgpIHsgYVswXSA9IDQwOyBhWzJd
ID0gNDI7IGEucHVzaCg0Myk7IHJldHVybiA0MTsgfX07ICcgKworICAgICAgICAnYVsxXSA9IGI7
ICcgKworICAgICAgICAncmV0dXJuIGE7JworICAgICksIGZhbHNlLCAiZXZhbFRodW5rIiwgZnVu
Y3Rpb24odikgeworICAgICAgICBkb1Bhc3NGYWlsKHYubGVuZ3RoID09PSAzLCAibGVuZ3RoIGNv
cnJlY3QiKTsgLy8gdW5kZWZpbmVkCisgICAgICAgIGRvUGFzc0ZhaWwodlswXSA9PT0gMCwgImV2
YWx1YXRpb24gb3JkZXIgT0siKTsgLy8gbWFuZGF0b3J5CisgICAgICAgIGRvUGFzc0ZhaWwodlsx
XS54ID09PSA0MSwgImV2YWx1YXRpb24gb3JkZXIgT0svYWNjZXNzb3IgcmVhY2hlZCIpOyAvLyBt
YW5kYXRvcnkKKyAgICAgICAgZG9QYXNzRmFpbCh2WzJdID09PSA0MiwgImV2YWx1YXRpb24gb3Jk
ZXIgT0siKTsgLy8gbWFuZGF0b3J5CisgICAgfSk7CisKK3RyeVBvc3RNZXNzYWdlKHRodW5rKAor
ICAgICAgICAndmFyIGEgPSBbMCwgMSwgMl07ICcgKworICAgICAgICAndmFyIGIgPSB7IGdldCB4
KCkgeyBhLnBvcCgpOyByZXR1cm4gNDE7IH0gfTsgJyArCisgICAgICAgICdhWzFdID0gYjsgJyAr
CisgICAgICAgICdyZXR1cm4gYTsnCisgICAgKSwgZmFsc2UsICJldmFsVGh1bmsiLCBmdW5jdGlv
bih2KSB7CisgICAgICAgIGRvUGFzc0ZhaWwodi5sZW5ndGggPT09IDMsICJsZW5ndGggY29ycmVj
dCIpOyAvLyB1bmRlZmluZWQKKyAgICAgICAgZG9QYXNzRmFpbCh2WzBdID09PSAwLCAiaXggMCBP
SyIpOyAvLyBtYW5kYXRvcnkKKyAgICAgICAgZG9QYXNzRmFpbCh2WzFdLnggPT09IDQxLCAiYWNj
ZXNzb3IgcmVhY2hlZCIpOyAvLyBtYW5kYXRvcnkKKyAgICAgICAgZG9QYXNzRmFpbCh2WzJdID09
PSB1bmRlZmluZWQsICJpeCAyIHVuZGVmaW5lZCIpOyAvLyB1bmRlZmluZWQKKyAgICB9KTsKKwor
dHJ5UG9zdE1lc3NhZ2UodGh1bmsoCisgICAgICAgICd2YXIgYSA9IFswLCAxLCAyXTsgJyArCisg
ICAgICAgICd2YXIgYiA9IHsgZ2V0IHgoKSB7IGEucG9wKCk7IHJldHVybiA0MTsgfSB9OyAnICsK
KyAgICAgICAgJ2FbMl0gPSBiOyAnICsKKyAgICAgICAgJ3JldHVybiBhOycKKyAgICApLCBmYWxz
ZSwgImV2YWxUaHVuayIsIGZ1bmN0aW9uKHYpIHsKKyAgICAgICAgZG9QYXNzRmFpbCh2Lmxlbmd0
aCA9PT0gMywgImxlbmd0aCBjb3JyZWN0Iik7IC8vIHVuZGVmaW5lZAorICAgICAgICBkb1Bhc3NG
YWlsKHZbMF0gPT09IDAsICJpeCAwIE9LIik7IC8vIG1hbmRhdG9yeQorICAgICAgICBkb1Bhc3NG
YWlsKHZbMV0gPT09IDEsICJpeCAxIE9LIik7IC8vIG1hbmRhdG9yeQorICAgICAgICBkb1Bhc3NG
YWlsKHZbMl0ueCA9PT0gNDEsICJpeCAyIE9LIik7IC8vIHVuZGVmaW5lZAorICAgIH0pOworCisv
LyBOb3cgd2l0aCBvYmplY3RzISBUaGlzIGlzIGEgbGl0dGxlIG1vcmUgdHJpY2t5IGJlY2F1c2Ug
dGhlIHN0YW5kYXJkIGRvZXMgbm90CisvLyBkZWZpbmUgYW4gZW51bWVyYXRpb24gb3JkZXIuCit0
cnlQb3N0TWVzc2FnZSh0aHVuaygKKyAgICAgICAgJ3ZhciBhID0ge3AwOiAwLCBwMTogMX07ICcg
KworICAgICAgICAnT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsICJwMiIsIHtnZXQ6ZnVuY3Rpb24o
KSB7ZGVsZXRlIGEucDM7IHJldHVybiA0MjsgfSwgZW51bWVyYWJsZTogdHJ1ZSwgY29uZmlndXJh
YmxlOiB0cnVlfSk7ICcgKworICAgICAgICAnT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsICJwMyIs
IHtnZXQ6ZnVuY3Rpb24oKSB7ZGVsZXRlIGEucDI7IHJldHVybiA0MzsgfSwgZW51bWVyYWJsZTog
dHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlfSk7ICcgKworICAgICAgICAnT2JqZWN0LmRlZmluZVBy
b3BlcnR5KGEsICJwNCIsIHtnZXQ6ZnVuY3Rpb24oKSB7IGEucDUgPSA0NTsgcmV0dXJuIDQ0OyB9
LCBlbnVtZXJhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWV9KTsgJyArCisgICAgICAgICdy
ZXR1cm4gYTsnCisgICAgKSwgZmFsc2UsICJldmFsVGh1bmsiLCBmdW5jdGlvbih2KSB7CisgICAg
ICAgIGRvUGFzc0ZhaWwodi5wMCA9PT0gMCAmJiB2LnAxID09PSAxLCAiYmFzaWMgcHJvcGVydGll
cyBPSyIpOyAvLyBtYW5kYXRvcnkKKyAgICAgICAgZG9QYXNzRmFpbCh2LnAyID09PSB1bmRlZmlu
ZWQgJiYgdi5wMyAhPT0gdW5kZWZpbmVkIHx8CisgICAgICAgICAgICAgICAgICAgdi5wMiAhPT0g
dW5kZWZpbmVkICYmIHYucDMgPT09IHVuZGVmaW5lZCwgIm9uZSBhY2Nlc3NvciB3YXMgcnVuIik7
IC8vIG1hbmRhdG9yeQorICAgICAgICBkb1Bhc3NGYWlsKHYucDIgIT09IHVuZGVmaW5lZCB8fCBP
YmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHYsICJwMiIpID09PSB1bmRlZmluZWQsICJw
cm9wZXJ0eSB3YXMgcmVtb3ZlZCIpOyAvLyB1bmRlZmluZWQKKyAgICAgICAgZG9QYXNzRmFpbCh2
LnAzICE9PSB1bmRlZmluZWQgfHwgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih2LCAi
cDMiKSA9PT0gdW5kZWZpbmVkLCAicHJvcGVydHkgd2FzIHJlbW92ZWQiKTsgLy8gdW5kZWZpbmVk
CisgICAgICAgIGRvUGFzc0ZhaWwodi5wNCA9PT0gNDQsICJhY2Nlc3NvciB3YXMgcnVuIik7IC8v
IG1hbmRhdG9yeQorICAgICAgICBkb1Bhc3NGYWlsKE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3IodiwgInA1IikgPT09IHVuZGVmaW5lZCwgImR5bmFtaWMgcHJvcGVydHkgbm90IHNlbnQi
KTsgLy8gdW5kZWZpbmVkCisgICAgfSk7CisKKy8vIE9iamVjdHMgcmV0dXJuZWQgZnJvbSBhY2Nl
c3NvcnMgc2hvdWxkIHN0aWxsIGJlIGNvYWxlc2NlZC4KK3RyeVBvc3RNZXNzYWdlKHRodW5rKAor
ICAgICAgICAndmFyIG9iamEgPSB7Z2V0IHAoKSB7IHJldHVybiA0MjsgfX07ICcgKworICAgICAg
ICAndmFyIG1zZyA9IHtnZXQgYSgpIHsgcmV0dXJuIG9iamE7IH0sIGI6IG9iamF9OyAnICsKKyAg
ICAgICAgJ3JldHVybiBtc2c7JworICAgICksIGZhbHNlLCAiZXZhbFRodW5rIiwgZnVuY3Rpb24o
dikgeworICAgICAgICAvLyBJbnRlcmVzdGluZ2x5LCB0aGUgc3RhbmRhcmQgYWRtaXRzIHR3byBh
bnN3ZXJzIGhlcmUhCisgICAgICAgIGRvUGFzc0ZhaWwodi5hID09PSB2LmIsICJyZWZlcmVuY2Ug
ZXF1YWxpdHkgcHJlc2VydmVkIik7CisgICAgICAgIGRvUGFzc0ZhaWwoKHYuYi5wID09PSA0MiAm
JiB2LmEucCA9PT0gNDIpIHx8CisgICAgICAgICAgICAodi5iLnAgPT09IG51bGwgJiYgdi5hLnAg
PT09IG51bGwpLCAiYWNjZXNzb3JzIHVzZWQiKTsKKyAgICB9KTsKK3RyeVBvc3RNZXNzYWdlKHRo
dW5rKAorICAgICAgICAndmFyIG9iamEgPSB7Z2V0IHAoKSB7IHJldHVybiA0MjsgfX07ICcgKwor
ICAgICAgICAndmFyIG1zZyA9IHthOiBvYmphLCBnZXQgYigpIHsgcmV0dXJuIG9iamE7IH19OyAn
ICsKKyAgICAgICAgJ3JldHVybiBtc2c7JworICAgICksIGZhbHNlLCAiZXZhbFRodW5rIiwgZnVu
Y3Rpb24odikgeworICAgICAgICAvLyBJbnRlcmVzdGluZ2x5LCB0aGUgc3RhbmRhcmQgYWRtaXRz
IHR3byBhbnN3ZXJzIGhlcmUhCisgICAgICAgIGRvUGFzc0ZhaWwodi5hID09PSB2LmIsICJyZWZl
cmVuY2UgZXF1YWxpdHkgcHJlc2VydmVkIChvcHBvc2l0ZSBvcmRlcikiKTsKKyAgICAgICAgZG9Q
YXNzRmFpbCgodi5iLnAgPT09IDQyICYmIHYuYS5wID09PSA0MikgfHwKKyAgICAgICAgICAgICAg
ICAgICAodi5iLnAgPT09IG51bGwgJiYgdi5hLnAgPT09IG51bGwpLCAiYWNjZXNzb3JzIHVzZWQg
KG9wcG9zaXRlIG9yZGVyKSIpOworICAgIH0pOworLy8gV2Ugc2hvdWxkIG51bGxpZnkgdGhlIHJl
c3VsdHMgZnJvbSBhY2Nlc3NvcnMgbW9yZSB0aGFuIG9uZSBsZXZlbCBkZWVwLAorLy8gYnV0IGxl
YXZlIG90aGVyIGZpZWxkcyB1bnRvdWNoZWQuCit0cnlQb3N0TWVzc2FnZSh0aHVuaygKKyAgICAg
ICAgJ3ZhciBvYmphID0ge2dldCBwKCkgeyByZXR1cm4gNDI7IH0sIHE6IDQzfTsgJyArCisgICAg
ICAgICdyZXR1cm4ge2dldCBhKCkgeyByZXR1cm4gb2JqYTsgfX07JworICAgICksIGZhbHNlLCAi
ZXZhbFRodW5rIiwgZnVuY3Rpb24odikgeworICAgICAgICBkb1Bhc3NGYWlsKHYuYS5wID09PSBu
dWxsLCAiYWNjZXNzb3IgdmFsdWUgd2FzIG51bGxpZmllZCIpOworICAgICAgICBkb1Bhc3NGYWls
KHYuYS5xID09PSA0MywgIm5vbi1hY2Nlc3NvciB2YWx1ZSB3YXMgbm90IG51bGxpZmllZCIpOwor
ICAgIH0pOwordHJ5UG9zdE1lc3NhZ2UodGh1bmsoCisgICAgICAgICd2YXIgb2JqYiA9IHtnZXQg
cigpIHsgcmV0dXJuIDQ0OyB9LCB0OiA0NX07ICcgKworICAgICAgICAndmFyIG9iamEgPSB7Z2V0
IHAoKSB7IHJldHVybiA0MjsgfSwgcTogNDMsIHM6IG9iamJ9OyAnICsKKyAgICAgICAgJ3JldHVy
biB7Z2V0IGEoKSB7IHJldHVybiBvYmphOyB9fTsnCisgICAgKSwgZmFsc2UsICJldmFsVGh1bmsi
LCBmdW5jdGlvbih2KSB7CisgICAgICAgIGRvUGFzc0ZhaWwodi5hLnAgPT09IG51bGwsICJhY2Nl
c3NvciB2YWx1ZSB3YXMgbnVsbGlmaWVkIik7CisgICAgICAgIGRvUGFzc0ZhaWwodi5hLnEgPT09
IDQzLCAibm9uLWFjY2Vzc29yIHZhbHVlIHdhcyBub3QgbnVsbGlmaWVkIik7CisgICAgICAgIGRv
UGFzc0ZhaWwodi5zICE9PSBudWxsLCAibm9uLWFjY2Vzc29yIHZhbHVlIHdhcyBub3QgbnVsbGlm
aWVkIik7CisgICAgICAgIGRvUGFzc0ZhaWwodi5hLnMuciA9PT0gbnVsbCwgImFjY2Vzc29yIHZh
bHVlIHdhcyBudWxsaWZpZWQiKTsKKyAgICAgICAgZG9QYXNzRmFpbCh2LmEucy50ID09PSA0NSwg
Im5vbi1hY2Nlc3NvciB2YWx1ZSB3YXMgbm90IG51bGxpZmllZCIpOworICAgIH0pOwordHJ5UG9z
dE1lc3NhZ2UodGh1bmsoCisgICAgICAgICd2YXIgb2JqYiA9IHtnZXQgcigpIHsgcmV0dXJuIDQ0
OyB9LCB0OiA0NX07ICcgKworICAgICAgICAndmFyIG9iamEgPSB7Z2V0IHAoKSB7IHJldHVybiA0
MjsgfSwgcTogNDMsIHM6IFtvYmpiXX07ICcgKworICAgICAgICAncmV0dXJuIHtnZXQgYygpIHsg
cmV0dXJuIDQ3OyB9LCBnZXQgYSgpIHsgcmV0dXJuIG9iamE7IH0sIGdldCBiKCkgeyByZXR1cm4g
NDY7IH0gfTsnCisgICAgKSwgZmFsc2UsICJldmFsVGh1bmsiLCBmdW5jdGlvbih2KSB7CisgICAg
ICAgIGRvUGFzc0ZhaWwodi5iID09PSA0NiwgImFjY2Vzc29yIHZhbHVlIHdhcyBub3QgbnVsbGlm
aWVkIik7CisgICAgICAgIGRvUGFzc0ZhaWwodi5jID09PSA0NywgImFjY2Vzc29yIHZhbHVlIHdh
cyBub3QgbnVsbGlmaWVkIik7CisgICAgICAgIGRvUGFzc0ZhaWwodi5hLnAgPT09IG51bGwsICJh
Y2Nlc3NvciB2YWx1ZSB3YXMgbnVsbGlmaWVkIik7CisgICAgICAgIGRvUGFzc0ZhaWwodi5hLnEg
PT09IDQzLCAibm9uLWFjY2Vzc29yIHZhbHVlIHdhcyBub3QgbnVsbGlmaWVkIik7CisgICAgICAg
IGRvUGFzc0ZhaWwodi5hLnMgIT09IG51bGwsICJub24tYWNjZXNzb3IgdmFsdWUgd2FzIG5vdCBu
dWxsaWZpZWQiKTsKKyAgICAgICAgZG9QYXNzRmFpbCh2LmEucyAhPT0gdW5kZWZpbmVkLCAibm9u
LWFjY2Vzc29yIHZhbHVlIGlzIGRlZmluZWQiKTsKKyAgICAgICAgZG9QYXNzRmFpbCh2LmEuc1sw
XSAhPT0gbnVsbCwgIm5vbi1hY2Nlc3NvciB2YWx1ZSB3YXMgbm90IG51bGxpZmllZCIpOworICAg
ICAgICBkb1Bhc3NGYWlsKHYuYS5zWzBdICE9PSB1bmRlZmluZWQsICJub24tYWNjZXNzb3IgdmFs
dWUgaXMgZGVmaW5lZCIpOworICAgICAgICBkb1Bhc3NGYWlsKHYuYS5zWzBdLnIgPT09IG51bGws
ICJhY2Nlc3NvciB2YWx1ZSB3YXMgbnVsbGlmaWVkIik7CisgICAgICAgIGRvUGFzc0ZhaWwodi5h
LnNbMF0udCA9PT0gNDUsICJub24tYWNjZXNzb3IgdmFsdWUgd2FzIG5vdCBudWxsaWZpZWQiKTsK
KyAgICB9KTsKKworLy8gV2UgbmVlZCB0byBwYXNzIG91dCB0aGUgZXhjZXB0aW9uIHJhaXNlZCBm
cm9tIGludGVybmFsIGFjY2Vzc29ycy4KK3RyeVBvc3RNZXNzYWdlKHRodW5rKAorICAgICAgICAn
cmV0dXJuIHtnZXQgYSgpIHsgdGhyb3cgImFjY2Vzc29yLWV4biI7IH19OycKKyAgICApLCB0cnVl
LCBudWxsLCAnYWNjZXNzb3ItZXhuJyk7CisvLyBXZSBzaG91bGQgc3RpbGwgcmV0dXJuIHRoZSBl
eGNlcHRpb24gcmFpc2VkIGZyb20gbnVsbGVkLW91dCBhY2Nlc3NvcnMuCit0cnlQb3N0TWVzc2Fn
ZSh0aHVuaygKKyAgICAgICAgJ3ZhciBvYmphID0ge2dldCBwKCkgeyB0aHJvdyAiYWNjZXNzb3It
ZXhuIjsgfX07ICcgKworICAgICAgICAncmV0dXJuIHtnZXQgYSgpIHsgcmV0dXJuIG9iamE7IH19
OycKKyAgICApLCB0cnVlLCBudWxsLCAnYWNjZXNzb3ItZXhuJyk7CisvLyBXZSBzaG91bGQgcnVu
IHRoZSBmaXJzdCBudWxsaWZpZWQgYWNjZXNzb3IsIGJ1dCBubyBtb3JlLgordHJ5UG9zdE1lc3Nh
Z2UodGh1bmsoCisgICAgICAgICd3aW5kb3cuYmNhbGxlZCA9IHVuZGVmaW5lZDsgJyArCisgICAg
ICAgICd3aW5kb3cuYWNhbGxlZCA9IHVuZGVmaW5lZDsgJyArCisgICAgICAgICd3aW5kb3cucGNh
bGxlZCA9IHVuZGVmaW5lZDsgJyArCisgICAgICAgICd2YXIgb2JqYiA9IHtnZXQgYigpIHsgd2lu
ZG93LmJjYWxsZWQgPSB0cnVlOyByZXR1cm4gNDI7IH19OyAnICsKKyAgICAgICAgJ3ZhciBvYmph
ID0ge2dldCBhKCkgeyB3aW5kb3cuYWNhbGxlZCA9IHRydWU7IHJldHVybiBvYmpiOyB9fTsgJyAr
CisgICAgICAgICdyZXR1cm4geyBnZXQgcCgpIHsgd2luZG93LnBjYWxsZWQgPSB0cnVlOyByZXR1
cm4gb2JqYTsgfX07JworICAgICksIGZhbHNlLCAiZXZhbFRodW5rIiwgZnVuY3Rpb24odikgewor
ICAgICAgICBkb1Bhc3NGYWlsKHYucC5hID09PSBudWxsLCAiYWNjZXNzb3IgdmFsdWUgd2FzIG51
bGxpZmllZCIpOworICAgICAgICBkb1Bhc3NGYWlsKHdpbmRvdy5wY2FsbGVkID09PSB0cnVlLCAi
d2luZG93LnBjYWxsZWQgPT09IHRydWUiKTsKKyAgICAgICAgZG9QYXNzRmFpbCh3aW5kb3cuYWNh
bGxlZCA9PT0gdHJ1ZSwgIndpbmRvdy5hY2FsbGVkID09PSB0cnVlIik7CisgICAgICAgIGRvUGFz
c0ZhaWwod2luZG93LmJjYWxsZWQgPT09IHVuZGVmaW5lZCwgIndpbmRvdy5iY2FsbGVkID09PSB1
bmRlZmluZWQiKTsKKyAgICB9KTsKKworLy8gUmVmZXJlbmNlIGVxdWFsaXR5IGJldHdlZW4gZGF0
ZXMgbXVzdCBiZSBtYWludGFpbmVkLgordHJ5UG9zdE1lc3NhZ2UodGh1bmsoCisgICAgICAgICd2
YXIgZDEgPSBuZXcgRGF0ZSgxLDIsMyk7ICcgKworICAgICAgICAndmFyIGQyID0gbmV3IERhdGUo
MSwyLDMpOyAnICsKKyAgICAgICAgJ3JldHVybiBbZDEsZDEsZDJdOycKKyAgICApLCBmYWxzZSwg
ImV2YWxUaHVuayIsIGZ1bmN0aW9uKHYpIHsKKyAgICAgICAgZG9QYXNzRmFpbChlcXVhbCh2WzBd
LCBuZXcgRGF0ZSgxLDIsMykpLCAiRGF0ZSB2YWx1ZXMgY29ycmVjdCAoMCkiKTsKKyAgICAgICAg
ZG9QYXNzRmFpbChlcXVhbCh2WzBdLCB2WzJdKSwgIkRhdGUgdmFsdWVzIGNvcnJlY3QgKDEpIik7
CisgICAgICAgIGRvUGFzc0ZhaWwodlswXSA9PT0gdlsxXSwgIlJlZmVyZW5jZXMgdG8gZGF0ZXMg
Y29ycmVjdCAoMCkiKTsKKyAgICAgICAgZG9QYXNzRmFpbCh2WzBdICE9PSB2WzJdLCAiUmVmZXJl
bmNlcyB0byBkYXRlcyBjb3JyZWN0ICgxKSIpOworICAgIH0pOworCisvLyBSZWZlcmVuY2UgZXF1
YWxpdHkgYmV0d2VlbiByZWdleHBzIG11c3QgYmUgcHJlc2VydmVkLgordHJ5UG9zdE1lc3NhZ2Uo
dGh1bmsoCisgICAgICAgICd2YXIgcngxID0gbmV3IFJlZ0V4cCgiZm9vIik7ICcgKworICAgICAg
ICAndmFyIHJ4MiA9IG5ldyBSZWdFeHAoImZvbyIpOyAnICsKKyAgICAgICAgJ3ZhciByeDMgPSBu
ZXcgUmVnRXhwKCJmb28iLCAiZ2ltIik7ICcgKworICAgICAgICAncngzLmV4ZWMoImZvb2Zvb2Zv
byIpOyAnICsKKyAgICAgICAgJ2RvUGFzc0ZhaWwocngzLmxhc3RJbmRleCA9PT0gMywgImxhc3RJ
bmRleCBpbml0aWFsbHkgY29ycmVjdDogd2FzICIgKyByeDMubGFzdEluZGV4KTsgJyArCisgICAg
ICAgICdyZXR1cm4gW3J4MSxyeDEscngyLHJ4M107JworICAgICksIGZhbHNlLCAiZXZhbFRodW5r
IiwgZnVuY3Rpb24odikgeworICAgICAgICBkb1Bhc3NGYWlsKHZbMF0uc291cmNlID09PSAiZm9v
IiwgIlJlZ2V4cCB2YWx1ZSBjb3JyZWN0ICgwKSIpOworICAgICAgICBkb1Bhc3NGYWlsKHZbMF0g
PT09IHZbMV0sICJSZWZlcmVuY2VzIHRvIHJlZ2V4cHMgY29ycmVjdCAoMCkiKTsKKyAgICAgICAg
ZG9QYXNzRmFpbCh2WzBdICE9PSB2WzJdLCAiUmVmZXJlbmNlcyB0byByZWdleHBzIGNvcnJlY3Qg
KDEpIik7CisgICAgICAgIGRvUGFzc0ZhaWwodlswXS5nbG9iYWwgPT09IGZhbHNlLCAiZ2xvYmFs
IHNldCAoMCkiKTsKKyAgICAgICAgZG9QYXNzRmFpbCh2WzNdLmdsb2JhbCA9PT0gdHJ1ZSwgImds
b2JhbCBzZXQgKDEpIik7CisgICAgICAgIGRvUGFzc0ZhaWwodlswXS5pZ25vcmVDYXNlID09PSBm
YWxzZSwgImlnbm9yZUNhc2Ugc2V0ICgwKSIpOworICAgICAgICBkb1Bhc3NGYWlsKHZbM10uaWdu
b3JlQ2FzZSA9PT0gdHJ1ZSwgImlnbm9yZUNhc2Ugc2V0ICgxKSIpOworICAgICAgICBkb1Bhc3NG
YWlsKHZbMF0ubXVsdGlsaW5lID09PSBmYWxzZSwgIm11bHRpbGluZSBzZXQgKDApIik7CisgICAg
ICAgIGRvUGFzc0ZhaWwodlszXS5tdWx0aWxpbmUgPT09IHRydWUsICJtdWx0aWxpbmUgc2V0ICgx
KSIpOworICAgICAgICBkb1Bhc3NGYWlsKHZbMF0ubGFzdEluZGV4ID09PSAwLCAibGFzdEluZGV4
IGNvcnJlY3QgKDApIik7CisgICAgICAgIGRvUGFzc0ZhaWwodlszXS5sYXN0SW5kZXggPT09IDAs
ICJsYXN0SW5kZXggY29ycmVjdCAoMSkiKTsKKyAgICB9KTsKKworaWYgKHdpbmRvdy5ldmVudFNl
bmRlcikgeworICAgIHRyeVBvc3RNZXNzYWdlKHRodW5rKAorICAgICAgICAnd2luZG93LmZpbGVM
aXN0ID0gZmlsZUlucHV0LmZpbGVzOyAnICsKKyAgICAgICAgJ3dpbmRvdy5maWxlMCA9IGZpbGVM
aXN0WzBdOyAnICsKKyAgICAgICAgJ3dpbmRvdy5maWxlMSA9IGZpbGVMaXN0WzFdOyAnICsKKyAg
ICAgICAgJ3JldHVybiB3aW5kb3cuZmlsZUxpc3QubGVuZ3RoJyksIGZhbHNlLCAyKTsKKyAgICBk
b1Bhc3NGYWlsKHdpbmRvdy5maWxlTGlzdFswXSA9PT0gd2luZG93LmZpbGUwLCAic2FuaXR5IG9u
IGZpbGUgcmVmZXJlbmNlIGVxdWFsaXR5IikKKyAgICAvLyBUaGUgc3RhbmRhcmQgbWFuZGF0ZXMg
dGhhdCB3ZSBkbyBfbm90XyBtYWludGFpbiByZWZlcmVuY2UgZXF1YWxpdHkgZm9yIGZpbGVzIGlu
IGEgdHJhbnNmZXJyZWQgRmlsZUxpc3QuCisgICAgdHJ5UG9zdE1lc3NhZ2UodGh1bmsoJ3JldHVy
biBbd2luZG93LmZpbGUwLCB3aW5kb3cuZmlsZTBdOycKKyAgICAgICAgKSwgZmFsc2UsICJldmFs
VGh1bmsiLCBmdW5jdGlvbih2KSB7IGRvUGFzc0ZhaWwodlswXSA9PT0gdlsxXSwgImZpbGUgcmVm
ZXJlbmNlcyB0cmFuc2ZlciIpfSk7CisgICAgdHJ5UG9zdE1lc3NhZ2UodGh1bmsoJ3JldHVybiBb
d2luZG93LmZpbGVMaXN0LCB3aW5kb3cuZmlsZTBdOycKKyAgICAgICAgKSwgZmFsc2UsICJldmFs
VGh1bmsiLCBmdW5jdGlvbih2KSB7IGRvUGFzc0ZhaWwodlswXVswXSAhPT0gdlsxXSwgIkZpbGVM
aXN0IHNob3VsZCBub3QgcmVzcGVjdCByZWZlcmVuY2UgZXF1YWxpdHkiKX0pOworICAgIHRyeVBv
c3RNZXNzYWdlKHRodW5rKCdyZXR1cm4gW3dpbmRvdy5maWxlMCwgd2luZG93LmZpbGVMaXN0XTsn
CisgICAgICAgICksIGZhbHNlLCAiZXZhbFRodW5rIiwgZnVuY3Rpb24odikgeyBkb1Bhc3NGYWls
KHZbMV1bMF0gIT09IHZbMF0sICJGaWxlTGlzdCBzaG91bGQgbm90IHJlc3BlY3QgcmVmZXJlbmNl
IGVxdWFsaXR5Iil9KTsKKyAgICB0cnlQb3N0TWVzc2FnZSh0aHVuaygncmV0dXJuIFt3aW5kb3cu
ZmlsZUxpc3QsIHdpbmRvdy5maWxlTGlzdF07JworICAgICAgICApLCBmYWxzZSwgImV2YWxUaHVu
ayIsIGZ1bmN0aW9uKHYpIHsgZG9QYXNzRmFpbCh2WzBdID09PSB2WzFdLCAiRmlsZUxpc3QgcmVz
cGVjdHMgc2VsZi1yZWZlcmVuY2UgZXF1YWxpdHkiKX0pOworICAgIHRyeVBvc3RNZXNzYWdlKHRo
dW5rKCdyZXR1cm4gW3dpbmRvdy5maWxlTGlzdCwgd2luZG93LmZpbGUwLCB3aW5kb3cuZmlsZTFd
JworICAgICAgICApLCBmYWxzZSwgImV2YWxUaHVuayIsIGZ1bmN0aW9uKHYpIHsKKyAgICAgICAg
ICAgIGRvUGFzc0ZhaWwodlswXS5sZW5ndGggPT09IHdpbmRvdy5maWxlTGlzdC5sZW5ndGgsICJG
aWxlTGlzdCBsZW5ndGggc2VudCBjb3JyZWN0bHkiKTsKKyAgICAgICAgICAgIGRvUGFzc0ZhaWwo
dlswXVswXSAhPT0gdlsxXSwgIkZpbGVMaXN0IHNob3VsZCBub3QgcmVzcGVjdCByZWZlcmVuY2Ug
ZXF1YWxpdHkgKDApIik7CisgICAgICAgICAgICBkb1Bhc3NGYWlsKHZbMF1bMV0gIT09IHZbMl0s
ICJGaWxlTGlzdCBzaG91bGQgbm90IHJlc3BlY3QgcmVmZXJlbmNlIGVxdWFsaXR5ICgxKSIpOwor
ICAgICAgICAgICAgZG9QYXNzRmFpbCh2WzBdWzBdLm5hbWUgPT0gd2luZG93LmZpbGUwLm5hbWUs
ICJGaWxlTGlzdCBwcmVzZXJ2ZXMgb3JkZXIgYW5kIGRhdGEgKG5hbWUwKSIpOworICAgICAgICAg
ICAgZG9QYXNzRmFpbCh2WzBdWzFdLm5hbWUgPT0gd2luZG93LmZpbGUxLm5hbWUsICJGaWxlTGlz
dCBwcmVzZXJ2ZXMgb3JkZXIgYW5kIGRhdGEgKG5hbWUxKSIpOworICAgICAgICAgICAgZG9QYXNz
RmFpbChlcXVhbCh2WzBdWzBdLmxhc3RNb2RpZmllZERhdGUsIHdpbmRvdy5maWxlMC5sYXN0TW9k
aWZpZWREYXRlKSwgIkZpbGVMaXN0IHByZXNlcnZlcyBvcmRlciBhbmQgZGF0YSAoZGF0ZTApIik7
CisgICAgICAgICAgICBkb1Bhc3NGYWlsKGVxdWFsKHZbMF1bMV0ubGFzdE1vZGlmaWVkRGF0ZSwg
d2luZG93LmZpbGUxLmxhc3RNb2RpZmllZERhdGUpLCAiRmlsZUxpc3QgcHJlc2VydmVzIG9yZGVy
IGFuZCBkYXRhIChkYXRlMSkiKTsKKyAgICAgICAgfSk7Cit9Cit0cnlQb3N0TWVzc2FnZSgnImRv
bmUiJyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2Rv
bS9XaW5kb3cvd2luZG93LXBvc3RtZXNzYWdlLWNsb25lLWRlZXAtYXJyYXktZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9kb20vV2luZG93L3dpbmRvdy1w
b3N0bWVzc2FnZS1jbG9uZS1kZWVwLWFycmF5LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi40OTBkOGQ5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9kb20vV2luZG93L3dpbmRvdy1wb3N0bWVzc2FnZS1j
bG9uZS1kZWVwLWFycmF5LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1Rlc3RzIHRoYXQg
d2UgYWJvcnQgY2xvbmluZyBkZWVwKGlzaCkgYXJyYXlzLgorCitQQVNTOiBldmVudERhdGEgaXMg
W29iamVjdCBBcnJheV0oZGVmYXVsdCB0b1N0cmluZyB0aHJldyBSYW5nZUVycm9yOiBNYXhpbXVt
IGNhbGwgc3RhY2sgc2l6ZSBleGNlZWRlZCkgb2YgdHlwZSBvYmplY3QKK1BBU1M6IGV2ZW50RGF0
YSBpcyBkb25lIG9mIHR5cGUgc3RyaW5nCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcG9zdG1lc3NhZ2UtY2xvbmUtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9kb20vV2luZG93
L3dpbmRvdy1wb3N0bWVzc2FnZS1jbG9uZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uMjM3MWZkZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcG9zdG1lc3NhZ2UtY2xv
bmUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTE0IEBACitUZXN0cyB0aGF0IHdlIGNsb25lIG9i
amVjdCBoaWVyYXJjaGllcworCitQQVNTOiAncG9zdE1lc3NhZ2UoKGZ1bmN0aW9uKCl7fSkpJyB0
aHJldyBFcnJvcjogREFUQV9DTE9ORV9FUlI6IERPTSBFeGNlcHRpb24gMjUKK1BBU1M6ICdwb3N0
TWVzc2FnZSh3aW5kb3cpJyB0aHJldyBFcnJvcjogREFUQV9DTE9ORV9FUlI6IERPTSBFeGNlcHRp
b24gMjUKK1BBU1M6ICdwb3N0TWVzc2FnZSgoe2dldCBhKCkgeyB0aHJvdyAieCIgfX0pKScgdGhy
ZXcgeAorUEFTUzogJ3Bvc3RNZXNzYWdlKGltYWdlRGF0YS5kYXRhKScgdGhyZXcgRXJyb3I6IERB
VEFfQ0xPTkVfRVJSOiBET00gRXhjZXB0aW9uIDI1CitQQVNTOiAncG9zdE1lc3NhZ2UobXV0YXRl
ZEltYWdlRGF0YS5kYXRhKScgdGhyZXcgRXJyb3I6IERBVEFfQ0xPTkVfRVJSOiBET00gRXhjZXB0
aW9uIDI1CitQQVNTOiAncG9zdE1lc3NhZ2UoKGZ1bmN0aW9uKCkge3JldHVybiB7Z2V0IGEoKSB7
IHRocm93ICJhY2Nlc3Nvci1leG4iOyB9fTt9KSgpKScgdGhyZXcgYWNjZXNzb3ItZXhuCitQQVNT
OiAncG9zdE1lc3NhZ2UoKGZ1bmN0aW9uKCkge3ZhciBvYmphID0ge2dldCBwKCkgeyB0aHJvdyAi
YWNjZXNzb3ItZXhuIjsgfX07IHJldHVybiB7Z2V0IGEoKSB7IHJldHVybiBvYmphOyB9fTt9KSgp
KScgdGhyZXcgYWNjZXNzb3ItZXhuCitQQVNTOiBsYXN0SW5kZXggaW5pdGlhbGx5IGNvcnJlY3Q6
IHdhcyAzCitQQVNTOiBzYW5pdHkgb24gZmlsZSByZWZlcmVuY2UgZXF1YWxpdHkKK1BBU1M6IGV2
ZW50RGF0YSBpcyBudWxsIG9mIHR5cGUgb2JqZWN0CitQQVNTOiBldmVudERhdGEgaXMgdW5kZWZp
bmVkIG9mIHR5cGUgdW5kZWZpbmVkCitQQVNTOiBldmVudERhdGEgaXMgMSBvZiB0eXBlIG51bWJl
cgorUEFTUzogZXZlbnREYXRhIGlzIHRydWUgb2YgdHlwZSBib29sZWFuCitQQVNTOiBldmVudERh
dGEgaXMgMSBvZiB0eXBlIHN0cmluZworUEFTUzogZXZlbnREYXRhIGlzIFtvYmplY3QgT2JqZWN0
XSBvZiB0eXBlIG9iamVjdAorUEFTUzogZXZlbnREYXRhIGlzIFtvYmplY3QgT2JqZWN0XSBvZiB0
eXBlIG9iamVjdAorUEFTUzogZXZlbnREYXRhIGlzIFtvYmplY3QgT2JqZWN0XSBvZiB0eXBlIG9i
amVjdAorUEFTUzogZXZlbnREYXRhIGlzIFtvYmplY3QgT2JqZWN0XSBvZiB0eXBlIG9iamVjdAor
UEFTUzogZXZlbnREYXRhIGlzIFtvYmplY3QgT2JqZWN0XSBvZiB0eXBlIG9iamVjdAorUEFTUzog
ZXZlbnREYXRhIGlzIFtvYmplY3QgT2JqZWN0XSBvZiB0eXBlIG9iamVjdAorUEFTUzogZXZlbnRE
YXRhIGlzIFtvYmplY3QgT2JqZWN0XSBvZiB0eXBlIG9iamVjdAorUEFTUzogZXZlbnREYXRhIGlz
IFtvYmplY3QgT2JqZWN0XSBvZiB0eXBlIG9iamVjdAorUEFTUzogZXZlbnREYXRhIGlzIFtvYmpl
Y3QgT2JqZWN0XSBvZiB0eXBlIG9iamVjdAorUEFTUzogZXZlbnREYXRhIGlzIG9mIHR5cGUgb2Jq
ZWN0CitQQVNTOiBldmVudERhdGEgaXMgYSxhLGIsYSxiIG9mIHR5cGUgb2JqZWN0CitQQVNTOiBl
dmVudERhdGEgaXMgYSxhLGIsW29iamVjdCBPYmplY3RdIG9mIHR5cGUgb2JqZWN0CitQQVNTOiBl
dmVudERhdGEgaXMgMSwyLDMgb2YgdHlwZSBvYmplY3QKK1BBU1M6IGV2ZW50RGF0YSBpcyAsLDEg
b2YgdHlwZSBvYmplY3QKK1BBU1M6IGV2ZW50RGF0YSBpcyAyMDA5LTAyLTEzVDIzOjMxOjMwLjAw
MFogb2YgdHlwZSBvYmplY3QKK1BBU1M6IGV2ZW50RGF0YSBpcyBbb2JqZWN0IE9iamVjdF0gb2Yg
dHlwZSBvYmplY3QKK1BBU1M6IGV2ZW50RGF0YSBpcyA9PT0gdG8gZXZlbnREYXRhLnNlbGYKK1BB
U1M6IGV2ZW50RGF0YSBpcyA9PT0gdG8gZXZlbnREYXRhWzBdCitQQVNTOiBldmVudERhdGEuZ3Jh
cGgxIGlzID09PSB0byBldmVudERhdGEuZ3JhcGgyCitQQVNTOiBldmVudERhdGFbMF0gaXMgPT09
IHRvIGV2ZW50RGF0YVsxXQorUEFTUzogZXZlbnREYXRhIGlzIFtvYmplY3QgSW1hZ2VEYXRhXSBv
ZiB0eXBlIG9iamVjdAorUEFTUzogZXZlbnREYXRhIGlzIFtvYmplY3QgSW1hZ2VEYXRhXSBvZiB0
eXBlIG9iamVjdAorUEFTUzogZXZlbnREYXRhIGlzIDQyIG9mIHR5cGUgbnVtYmVyCitQQVNTOiBl
dmVudERhdGEgaXMgNDIgb2YgdHlwZSBudW1iZXIKK1BBU1M6IGV2YWxUaHVuayBPSworUEFTUzog
ZXZlbnREYXRhIGlzIFtvYmplY3QgT2JqZWN0XSBvZiB0eXBlIG9iamVjdAorUEFTUzogbGVuZ3Ro
IGNvcnJlY3QKK1BBU1M6IGV2YWx1YXRpb24gb3JkZXIgT0sKK1BBU1M6IGV2YWx1YXRpb24gb3Jk
ZXIgT0svYWNjZXNzb3IgcmVhY2hlZAorUEFTUzogZXZhbHVhdGlvbiBvcmRlciBPSworUEFTUzog
bGVuZ3RoIGNvcnJlY3QKK1BBU1M6IGl4IDAgT0sKK1BBU1M6IGFjY2Vzc29yIHJlYWNoZWQKK1BB
U1M6IGl4IDIgdW5kZWZpbmVkCitQQVNTOiBsZW5ndGggY29ycmVjdAorUEFTUzogaXggMCBPSwor
UEFTUzogaXggMSBPSworUEFTUzogaXggMiBPSworUEFTUzogYmFzaWMgcHJvcGVydGllcyBPSwor
UEFTUzogb25lIGFjY2Vzc29yIHdhcyBydW4KK1BBU1M6IHByb3BlcnR5IHdhcyByZW1vdmVkCitQ
QVNTOiBwcm9wZXJ0eSB3YXMgcmVtb3ZlZAorUEFTUzogYWNjZXNzb3Igd2FzIHJ1bgorUEFTUzog
ZHluYW1pYyBwcm9wZXJ0eSBub3Qgc2VudAorUEFTUzogcmVmZXJlbmNlIGVxdWFsaXR5IHByZXNl
cnZlZAorUEFTUzogYWNjZXNzb3JzIHVzZWQKK1BBU1M6IHJlZmVyZW5jZSBlcXVhbGl0eSBwcmVz
ZXJ2ZWQgKG9wcG9zaXRlIG9yZGVyKQorUEFTUzogYWNjZXNzb3JzIHVzZWQgKG9wcG9zaXRlIG9y
ZGVyKQorUEFTUzogYWNjZXNzb3IgdmFsdWUgd2FzIG51bGxpZmllZAorUEFTUzogbm9uLWFjY2Vz
c29yIHZhbHVlIHdhcyBub3QgbnVsbGlmaWVkCitQQVNTOiBhY2Nlc3NvciB2YWx1ZSB3YXMgbnVs
bGlmaWVkCitQQVNTOiBub24tYWNjZXNzb3IgdmFsdWUgd2FzIG5vdCBudWxsaWZpZWQKK1BBU1M6
IG5vbi1hY2Nlc3NvciB2YWx1ZSB3YXMgbm90IG51bGxpZmllZAorUEFTUzogYWNjZXNzb3IgdmFs
dWUgd2FzIG51bGxpZmllZAorUEFTUzogbm9uLWFjY2Vzc29yIHZhbHVlIHdhcyBub3QgbnVsbGlm
aWVkCitQQVNTOiBhY2Nlc3NvciB2YWx1ZSB3YXMgbm90IG51bGxpZmllZAorUEFTUzogYWNjZXNz
b3IgdmFsdWUgd2FzIG5vdCBudWxsaWZpZWQKK1BBU1M6IGFjY2Vzc29yIHZhbHVlIHdhcyBudWxs
aWZpZWQKK1BBU1M6IG5vbi1hY2Nlc3NvciB2YWx1ZSB3YXMgbm90IG51bGxpZmllZAorUEFTUzog
bm9uLWFjY2Vzc29yIHZhbHVlIHdhcyBub3QgbnVsbGlmaWVkCitQQVNTOiBub24tYWNjZXNzb3Ig
dmFsdWUgaXMgZGVmaW5lZAorUEFTUzogbm9uLWFjY2Vzc29yIHZhbHVlIHdhcyBub3QgbnVsbGlm
aWVkCitQQVNTOiBub24tYWNjZXNzb3IgdmFsdWUgaXMgZGVmaW5lZAorUEFTUzogYWNjZXNzb3Ig
dmFsdWUgd2FzIG51bGxpZmllZAorUEFTUzogbm9uLWFjY2Vzc29yIHZhbHVlIHdhcyBub3QgbnVs
bGlmaWVkCitQQVNTOiBhY2Nlc3NvciB2YWx1ZSB3YXMgbnVsbGlmaWVkCitQQVNTOiB3aW5kb3cu
cGNhbGxlZCA9PT0gdHJ1ZQorUEFTUzogd2luZG93LmFjYWxsZWQgPT09IHRydWUKK1BBU1M6IHdp
bmRvdy5iY2FsbGVkID09PSB1bmRlZmluZWQKK1BBU1M6IERhdGUgdmFsdWVzIGNvcnJlY3QgKDAp
CitQQVNTOiBEYXRlIHZhbHVlcyBjb3JyZWN0ICgxKQorUEFTUzogUmVmZXJlbmNlcyB0byBkYXRl
cyBjb3JyZWN0ICgwKQorUEFTUzogUmVmZXJlbmNlcyB0byBkYXRlcyBjb3JyZWN0ICgxKQorUEFT
UzogUmVnZXhwIHZhbHVlIGNvcnJlY3QgKDApCitQQVNTOiBSZWZlcmVuY2VzIHRvIHJlZ2V4cHMg
Y29ycmVjdCAoMCkKK1BBU1M6IFJlZmVyZW5jZXMgdG8gcmVnZXhwcyBjb3JyZWN0ICgxKQorUEFT
UzogZ2xvYmFsIHNldCAoMCkKK1BBU1M6IGdsb2JhbCBzZXQgKDEpCitQQVNTOiBpZ25vcmVDYXNl
IHNldCAoMCkKK1BBU1M6IGlnbm9yZUNhc2Ugc2V0ICgxKQorUEFTUzogbXVsdGlsaW5lIHNldCAo
MCkKK1BBU1M6IG11bHRpbGluZSBzZXQgKDEpCitQQVNTOiBsYXN0SW5kZXggY29ycmVjdCAoMCkK
K1BBU1M6IGxhc3RJbmRleCBjb3JyZWN0ICgxKQorUEFTUzogZXZlbnREYXRhIGlzIDIgb2YgdHlw
ZSBudW1iZXIKK1BBU1M6IGZpbGUgcmVmZXJlbmNlcyB0cmFuc2ZlcgorUEFTUzogRmlsZUxpc3Qg
c2hvdWxkIG5vdCByZXNwZWN0IHJlZmVyZW5jZSBlcXVhbGl0eQorUEFTUzogRmlsZUxpc3Qgc2hv
dWxkIG5vdCByZXNwZWN0IHJlZmVyZW5jZSBlcXVhbGl0eQorUEFTUzogRmlsZUxpc3QgcmVzcGVj
dHMgc2VsZi1yZWZlcmVuY2UgZXF1YWxpdHkKK1BBU1M6IEZpbGVMaXN0IGxlbmd0aCBzZW50IGNv
cnJlY3RseQorUEFTUzogRmlsZUxpc3Qgc2hvdWxkIG5vdCByZXNwZWN0IHJlZmVyZW5jZSBlcXVh
bGl0eSAoMCkKK1BBU1M6IEZpbGVMaXN0IHNob3VsZCBub3QgcmVzcGVjdCByZWZlcmVuY2UgZXF1
YWxpdHkgKDEpCitQQVNTOiBGaWxlTGlzdCBwcmVzZXJ2ZXMgb3JkZXIgYW5kIGRhdGEgKG5hbWUw
KQorUEFTUzogRmlsZUxpc3QgcHJlc2VydmVzIG9yZGVyIGFuZCBkYXRhIChuYW1lMSkKK1BBU1M6
IEZpbGVMaXN0IHByZXNlcnZlcyBvcmRlciBhbmQgZGF0YSAoZGF0ZTApCitQQVNTOiBGaWxlTGlz
dCBwcmVzZXJ2ZXMgb3JkZXIgYW5kIGRhdGEgKGRhdGUxKQorUEFTUzogZXZlbnREYXRhIGlzIGRv
bmUgb2YgdHlwZSBzdHJpbmcKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0vZmFzdC9kb20vV2luZG93L3dpbmRvdy1wb3N0bWVzc2FnZS1jbG9uZS1yZWFsbHktZGVl
cC1hcnJheS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0
L2RvbS9XaW5kb3cvd2luZG93LXBvc3RtZXNzYWdlLWNsb25lLXJlYWxseS1kZWVwLWFycmF5LWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40Y2M1MTg1Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9kb20v
V2luZG93L3dpbmRvdy1wb3N0bWVzc2FnZS1jbG9uZS1yZWFsbHktZGVlcC1hcnJheS1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSw1IEBACitUZXN0cyB0aGF0IHdlIGFib3J0IGNsb25pbmcgb3ZlcmRl
ZXAgYXJyYXlzLgorCitQQVNTOiAncG9zdE1lc3NhZ2UocmVhbGx5RGVlcEFycmF5KScgdGhyZXcg
RXJyb3I6IERBVEFfQ0xPTkVfRVJSOiBET00gRXhjZXB0aW9uIDI1CitQQVNTOiBldmVudERhdGEg
aXMgZG9uZSBvZiB0eXBlIHN0cmluZworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQKaW5kZXggYmYxYjQ2MS4uYzRmODY0YyAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMu
dHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25z
LnR4dApAQCAtNTgsNiArNTgsOCBAQCBCVUdXSzU1OTEzIERFQlVHIFNMT1cgOiBqcXVlcnkvb2Zm
c2V0Lmh0bWwgPSBQQVNTCiBCVUdXSzU1OTEzIERFQlVHIFNMT1cgOiBqcXVlcnkvdHJhdmVyc2lu
Zy5odG1sID0gUEFTUwogQlVHV0s1NTkxMyBERUJVRyA6IGpxdWVyeS9kaW1lbnNpb25zLmh0bWwg
PSBUSU1FT1VUIFBBU1MKIAorV09OVEZJWCBTTE9XIDogZmFzdC9kb20vV2luZG93L3dpbmRvdy1w
b3N0bWVzc2FnZS1jbG9uZS1yZWFsbHktZGVlcC1hcnJheS5odG1sID0gUEFTUworCiAvLyAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQogLy8gU0tJUFBFRCBURVNUUwogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTE1NTUsOSArMTU1Nyw2IEBA
IEJVR0NSMjQxMjYgOiBmYXN0L2RvbS9IVE1MSW5wdXRFbGVtZW50L3NpemUtYXR0cmlidXRlLmh0
bWwgPSBGQUlMCiAvLyBGbGFreSB0aW1lb3V0cyBmaXJzdCBhcHBlYXJpbmcgYXQgcjI3NzY0ICh3
ZWJraXQgNDg5NDcpCiBCVUdDUjk3OTggV0lOIDogaHR0cC90ZXN0cy9jb29raWVzL211bHRpcGxl
LWNvb2tpZXMuaHRtbCA9IFRJTUVPVVQgUEFTUwogCi0vLyBXZWJLaXQgdXBkYXRlOiA0OTIxMzo0
OTIyMQotQlVHQ1IyNDA2MyA6IGZhc3QvZG9tL1dpbmRvdy93aW5kb3ctcG9zdG1lc3NhZ2UtY2xv
bmUuaHRtbCA9IEZBSUwKLQogLy8gR290IHNsb3cgd2l0aCBWOCB1cGRhdGUgdG8gMS4zLjE1LiBE
ZWJ1ZyBsb2dnaW5nIHBlcmhhcHM/CiBCVUdDUjI0MTgyIERFQlVHIFNMT1cgOiBmYXN0L2Zvcm1z
L2lucHV0LWltcGxpY2l0LWxlbmd0aC1saW1pdC5odG1sID0gUEFTUwogQlVHQ1IyNDE4MiBERUJV
RyBTTE9XIDogZmFzdC9mb3Jtcy9pbnB1dC1tYXhsZW5ndGguaHRtbCA9IFBBU1MKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3Bl
cnRpZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2Zhc3QvZG9tL1dp
bmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQKaW5kZXggYThhMTFlNi4uOGExZjFm
NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2Zhc3QvZG9tL1dpbmRvdy93
aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Z3RrL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQKQEAgLTUx
MSw2ICs1MTEsNyBAQCB3aW5kb3cuQ291bnRlciBbb2JqZWN0IENvdW50ZXJDb25zdHJ1Y3Rvcl0K
IHdpbmRvdy5Db3VudGVyLnByb3RvdHlwZSBbb2JqZWN0IENvdW50ZXJQcm90b3R5cGVdCiB3aW5k
b3cuRE9NRXhjZXB0aW9uIFtvYmplY3QgRE9NRXhjZXB0aW9uQ29uc3RydWN0b3JdCiB3aW5kb3cu
RE9NRXhjZXB0aW9uLkFCT1JUX0VSUiBbbnVtYmVyXQord2luZG93LkRPTUV4Y2VwdGlvbi5EQVRB
X0NMT05FX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5ET01TVFJJTkdfU0laRV9F
UlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24uSElFUkFSQ0hZX1JFUVVFU1RfRVJSIFtu
dW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLklOREVYX1NJWkVfRVJSIFtudW1iZXJdCkBAIC01
MTgsNiArNTE5LDcgQEAgd2luZG93LkRPTUV4Y2VwdGlvbi5JTlVTRV9BVFRSSUJVVEVfRVJSIFtu
dW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLklOVkFMSURfQUNDRVNTX0VSUiBbbnVtYmVyXQog
d2luZG93LkRPTUV4Y2VwdGlvbi5JTlZBTElEX0NIQVJBQ1RFUl9FUlIgW251bWJlcl0KIHdpbmRv
dy5ET01FeGNlcHRpb24uSU5WQUxJRF9NT0RJRklDQVRJT05fRVJSIFtudW1iZXJdCit3aW5kb3cu
RE9NRXhjZXB0aW9uLklOVkFMSURfTk9ERV9UWVBFX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4
Y2VwdGlvbi5JTlZBTElEX1NUQVRFX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5O
QU1FU1BBQ0VfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLk5FVFdPUktfRVJSIFtu
dW1iZXJdCkBAIC01MjgsMTIgKzUzMCwxNCBAQCB3aW5kb3cuRE9NRXhjZXB0aW9uLk5PX01PRElG
SUNBVElPTl9BTExPV0VEX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5RVU9UQV9F
WENFRURFRF9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24uU0VDVVJJVFlfRVJSIFtu
dW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLlNZTlRBWF9FUlIgW251bWJlcl0KK3dpbmRvdy5E
T01FeGNlcHRpb24uVElNRU9VVF9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24uVFlQ
RV9NSVNNQVRDSF9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24uVVJMX01JU01BVENI
X0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5WQUxJREFUSU9OX0VSUiBbbnVtYmVy
XQogd2luZG93LkRPTUV4Y2VwdGlvbi5XUk9OR19ET0NVTUVOVF9FUlIgW251bWJlcl0KIHdpbmRv
dy5ET01FeGNlcHRpb24ucHJvdG90eXBlIFtvYmplY3QgRE9NRXhjZXB0aW9uUHJvdG90eXBlXQog
d2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuQUJPUlRfRVJSIFtudW1iZXJdCit3aW5kb3cu
RE9NRXhjZXB0aW9uLnByb3RvdHlwZS5EQVRBX0NMT05FX0VSUiBbbnVtYmVyXQogd2luZG93LkRP
TUV4Y2VwdGlvbi5wcm90b3R5cGUuRE9NU1RSSU5HX1NJWkVfRVJSIFtudW1iZXJdCiB3aW5kb3cu
RE9NRXhjZXB0aW9uLnByb3RvdHlwZS5ISUVSQVJDSFlfUkVRVUVTVF9FUlIgW251bWJlcl0KIHdp
bmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlLklOREVYX1NJWkVfRVJSIFtudW1iZXJdCkBAIC01
NDEsNiArNTQ1LDcgQEAgd2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuSU5VU0VfQVRUUklC
VVRFX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuSU5WQUxJRF9B
Q0NFU1NfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5JTlZBTElE
X0NIQVJBQ1RFUl9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlLklO
VkFMSURfTU9ESUZJQ0FUSU9OX0VSUiBbbnVtYmVyXQord2luZG93LkRPTUV4Y2VwdGlvbi5wcm90
b3R5cGUuSU5WQUxJRF9OT0RFX1RZUEVfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9u
LnByb3RvdHlwZS5JTlZBTElEX1NUQVRFX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlv
bi5wcm90b3R5cGUuTkFNRVNQQUNFX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5w
cm90b3R5cGUuTkVUV09SS19FUlIgW251bWJlcl0KQEAgLTU1MSw2ICs1NTYsNyBAQCB3aW5kb3cu
RE9NRXhjZXB0aW9uLnByb3RvdHlwZS5OT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlIgW251bWJl
cl0KIHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlLlFVT1RBX0VYQ0VFREVEX0VSUiBbbnVt
YmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuU0VDVVJJVFlfRVJSIFtudW1iZXJd
CiB3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5TWU5UQVhfRVJSIFtudW1iZXJdCit3aW5k
b3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5USU1FT1VUX0VSUiBbbnVtYmVyXQogd2luZG93LkRP
TUV4Y2VwdGlvbi5wcm90b3R5cGUuVFlQRV9NSVNNQVRDSF9FUlIgW251bWJlcl0KIHdpbmRvdy5E
T01FeGNlcHRpb24ucHJvdG90eXBlLlVSTF9NSVNNQVRDSF9FUlIgW251bWJlcl0KIHdpbmRvdy5E
T01FeGNlcHRpb24ucHJvdG90eXBlLlZBTElEQVRJT05fRVJSIFtudW1iZXJdCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC13azIvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9w
ZXJ0aWVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0LXdrMi9mYXN0L2Rv
bS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0CmluZGV4IGM4NWNmMTkuLmNh
MzkwMmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0LXdrMi9mYXN0L2RvbS9X
aW5kb3cvd2luZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL3F0LXdrMi9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQu
dHh0CkBAIC01MDksNiArNTA5LDcgQEAgd2luZG93LkNvdW50ZXIgW29iamVjdCBDb3VudGVyQ29u
c3RydWN0b3JdCiB3aW5kb3cuQ291bnRlci5wcm90b3R5cGUgW29iamVjdCBDb3VudGVyUHJvdG90
eXBlXQogd2luZG93LkRPTUV4Y2VwdGlvbiBbb2JqZWN0IERPTUV4Y2VwdGlvbkNvbnN0cnVjdG9y
XQogd2luZG93LkRPTUV4Y2VwdGlvbi5BQk9SVF9FUlIgW251bWJlcl0KK3dpbmRvdy5ET01FeGNl
cHRpb24uREFUQV9DTE9ORV9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24uRE9NU1RS
SU5HX1NJWkVfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLkhJRVJBUkNIWV9SRVFV
RVNUX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5JTkRFWF9TSVpFX0VSUiBbbnVt
YmVyXQpAQCAtNTE2LDYgKzUxNyw3IEBAIHdpbmRvdy5ET01FeGNlcHRpb24uSU5VU0VfQVRUUklC
VVRFX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5JTlZBTElEX0FDQ0VTU19FUlIg
W251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24uSU5WQUxJRF9DSEFSQUNURVJfRVJSIFtudW1i
ZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLklOVkFMSURfTU9ESUZJQ0FUSU9OX0VSUiBbbnVtYmVy
XQord2luZG93LkRPTUV4Y2VwdGlvbi5JTlZBTElEX05PREVfVFlQRV9FUlIgW251bWJlcl0KIHdp
bmRvdy5ET01FeGNlcHRpb24uSU5WQUxJRF9TVEFURV9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01F
eGNlcHRpb24uTkFNRVNQQUNFX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5ORVRX
T1JLX0VSUiBbbnVtYmVyXQpAQCAtNTI2LDEyICs1MjgsMTQgQEAgd2luZG93LkRPTUV4Y2VwdGlv
bi5OT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRp
b24uUVVPVEFfRVhDRUVERURfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLlNFQ1VS
SVRZX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5TWU5UQVhfRVJSIFtudW1iZXJd
Cit3aW5kb3cuRE9NRXhjZXB0aW9uLlRJTUVPVVRfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhj
ZXB0aW9uLlRZUEVfTUlTTUFUQ0hfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLlVS
TF9NSVNNQVRDSF9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24uVkFMSURBVElPTl9F
UlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24uV1JPTkdfRE9DVU1FTlRfRVJSIFtudW1i
ZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZSBbb2JqZWN0IERPTUV4Y2VwdGlvblBy
b3RvdHlwZV0KIHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlLkFCT1JUX0VSUiBbbnVtYmVy
XQord2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuREFUQV9DTE9ORV9FUlIgW251bWJlcl0K
IHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlLkRPTVNUUklOR19TSVpFX0VSUiBbbnVtYmVy
XQogd2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuSElFUkFSQ0hZX1JFUVVFU1RfRVJSIFtu
dW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5JTkRFWF9TSVpFX0VSUiBbbnVt
YmVyXQpAQCAtNTM5LDYgKzU0Myw3IEBAIHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlLklO
VVNFX0FUVFJJQlVURV9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBl
LklOVkFMSURfQUNDRVNTX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5
cGUuSU5WQUxJRF9DSEFSQUNURVJfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLnBy
b3RvdHlwZS5JTlZBTElEX01PRElGSUNBVElPTl9FUlIgW251bWJlcl0KK3dpbmRvdy5ET01FeGNl
cHRpb24ucHJvdG90eXBlLklOVkFMSURfTk9ERV9UWVBFX0VSUiBbbnVtYmVyXQogd2luZG93LkRP
TUV4Y2VwdGlvbi5wcm90b3R5cGUuSU5WQUxJRF9TVEFURV9FUlIgW251bWJlcl0KIHdpbmRvdy5E
T01FeGNlcHRpb24ucHJvdG90eXBlLk5BTUVTUEFDRV9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01F
eGNlcHRpb24ucHJvdG90eXBlLk5FVFdPUktfRVJSIFtudW1iZXJdCkBAIC01NDksNiArNTU0LDcg
QEAgd2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURf
RVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5RVU9UQV9FWENFRURF
RF9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlLlNFQ1VSSVRZX0VS
UiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuU1lOVEFYX0VSUiBbbnVt
YmVyXQord2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuVElNRU9VVF9FUlIgW251bWJlcl0K
IHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlLlRZUEVfTUlTTUFUQ0hfRVJSIFtudW1iZXJd
CiB3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5VUkxfTUlTTUFUQ0hfRVJSIFtudW1iZXJd
CiB3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5WQUxJREFUSU9OX0VSUiBbbnVtYmVyXQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvZmFzdC9kb20vV2luZG93L3dpbmRv
dy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L2Zhc3Qv
ZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQKaW5kZXggNTRjMTA3OS4u
YmFkMjMwNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvZmFzdC9kb20vV2lu
ZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9xdC9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0CkBA
IC01MDksNiArNTA5LDcgQEAgd2luZG93LkNvdW50ZXIgW29iamVjdCBDb3VudGVyQ29uc3RydWN0
b3JdCiB3aW5kb3cuQ291bnRlci5wcm90b3R5cGUgW29iamVjdCBDb3VudGVyUHJvdG90eXBlXQog
d2luZG93LkRPTUV4Y2VwdGlvbiBbb2JqZWN0IERPTUV4Y2VwdGlvbkNvbnN0cnVjdG9yXQogd2lu
ZG93LkRPTUV4Y2VwdGlvbi5BQk9SVF9FUlIgW251bWJlcl0KK3dpbmRvdy5ET01FeGNlcHRpb24u
REFUQV9DTE9ORV9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24uRE9NU1RSSU5HX1NJ
WkVfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLkhJRVJBUkNIWV9SRVFVRVNUX0VS
UiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5JTkRFWF9TSVpFX0VSUiBbbnVtYmVyXQpA
QCAtNTE2LDYgKzUxNyw3IEBAIHdpbmRvdy5ET01FeGNlcHRpb24uSU5VU0VfQVRUUklCVVRFX0VS
UiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5JTlZBTElEX0FDQ0VTU19FUlIgW251bWJl
cl0KIHdpbmRvdy5ET01FeGNlcHRpb24uSU5WQUxJRF9DSEFSQUNURVJfRVJSIFtudW1iZXJdCiB3
aW5kb3cuRE9NRXhjZXB0aW9uLklOVkFMSURfTU9ESUZJQ0FUSU9OX0VSUiBbbnVtYmVyXQord2lu
ZG93LkRPTUV4Y2VwdGlvbi5JTlZBTElEX05PREVfVFlQRV9FUlIgW251bWJlcl0KIHdpbmRvdy5E
T01FeGNlcHRpb24uSU5WQUxJRF9TVEFURV9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRp
b24uTkFNRVNQQUNFX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5ORVRXT1JLX0VS
UiBbbnVtYmVyXQpAQCAtNTI2LDEyICs1MjgsMTQgQEAgd2luZG93LkRPTUV4Y2VwdGlvbi5OT19N
T0RJRklDQVRJT05fQUxMT1dFRF9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24uUVVP
VEFfRVhDRUVERURfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLlNFQ1VSSVRZX0VS
UiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5TWU5UQVhfRVJSIFtudW1iZXJdCit3aW5k
b3cuRE9NRXhjZXB0aW9uLlRJTUVPVVRfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9u
LlRZUEVfTUlTTUFUQ0hfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLlVSTF9NSVNN
QVRDSF9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24uVkFMSURBVElPTl9FUlIgW251
bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24uV1JPTkdfRE9DVU1FTlRfRVJSIFtudW1iZXJdCiB3
aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZSBbb2JqZWN0IERPTUV4Y2VwdGlvblByb3RvdHlw
ZV0KIHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlLkFCT1JUX0VSUiBbbnVtYmVyXQord2lu
ZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuREFUQV9DTE9ORV9FUlIgW251bWJlcl0KIHdpbmRv
dy5ET01FeGNlcHRpb24ucHJvdG90eXBlLkRPTVNUUklOR19TSVpFX0VSUiBbbnVtYmVyXQogd2lu
ZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuSElFUkFSQ0hZX1JFUVVFU1RfRVJSIFtudW1iZXJd
CiB3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5JTkRFWF9TSVpFX0VSUiBbbnVtYmVyXQpA
QCAtNTM5LDYgKzU0Myw3IEBAIHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlLklOVVNFX0FU
VFJJQlVURV9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlLklOVkFM
SURfQUNDRVNTX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuSU5W
QUxJRF9DSEFSQUNURVJfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlw
ZS5JTlZBTElEX01PRElGSUNBVElPTl9FUlIgW251bWJlcl0KK3dpbmRvdy5ET01FeGNlcHRpb24u
cHJvdG90eXBlLklOVkFMSURfTk9ERV9UWVBFX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2Vw
dGlvbi5wcm90b3R5cGUuSU5WQUxJRF9TVEFURV9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNl
cHRpb24ucHJvdG90eXBlLk5BTUVTUEFDRV9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRp
b24ucHJvdG90eXBlLk5FVFdPUktfRVJSIFtudW1iZXJdCkBAIC01NDksNiArNTU0LDcgQEAgd2lu
ZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSIFtu
dW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5RVU9UQV9FWENFRURFRF9FUlIg
W251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlLlNFQ1VSSVRZX0VSUiBbbnVt
YmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuU1lOVEFYX0VSUiBbbnVtYmVyXQor
d2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuVElNRU9VVF9FUlIgW251bWJlcl0KIHdpbmRv
dy5ET01FeGNlcHRpb24ucHJvdG90eXBlLlRZUEVfTUlTTUFUQ0hfRVJSIFtudW1iZXJdCiB3aW5k
b3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5VUkxfTUlTTUFUQ0hfRVJSIFtudW1iZXJdCiB3aW5k
b3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5WQUxJREFUSU9OX0VSUiBbbnVtYmVyXQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0c3RvcmUtYmFzaWNzLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0b3JlLWJh
c2ljcy1leHBlY3RlZC50eHQKaW5kZXggMjM5NDc0MC4uN2EzNGExYiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0c3RvcmUtYmFzaWNzLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9vYmplY3RzdG9yZS1iYXNpY3Mt
ZXhwZWN0ZWQudHh0CkBAIC01Niw3ICs1Niw3IEBAIHN0b3JlLmFkZCh7eDogJ2Zvbyd9LCB0ZXN0
RGF0ZSkKIFRyeSB0byBpbnNlcnQgYSB2YWx1ZSBub3QgaGFuZGxlZCBieSBzdHJ1Y3R1cmVkIGNs
b25lOgogc3RvcmUuYWRkKHt4OiAnYmFyJywgeTogZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Nv
bnNvbGUnKX0sICdiYXInKQogUEFTUyBFeGNlcHRpb24gdGhyb3duCi1QQVNTIGNvZGUgaXMgRE9N
RXhjZXB0aW9uLk5PVF9TVVBQT1JURURfRVJSCitQQVNTIGNvZGUgaXMgRE9NRXhjZXB0aW9uLkRB
VEFfQ0xPTkVfRVJSCiBUcnkgdG8gaW5zZXJ0IGRhdGEgd2hlcmUga2V5IHBhdGggeWllbGRzIGEg
RGF0ZSBrZXk6CiBzdG9yZS5hZGQoe3g6IHRlc3REYXRlQiwgeTogJ3ZhbHVlJ30sICdrZXknKQog
YWRkU3VjY2VzcygpOgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
b2JqZWN0c3RvcmUtYmFzaWNzLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9v
YmplY3RzdG9yZS1iYXNpY3MuaHRtbAppbmRleCBiMmU3M2VlLi5iNzY5NTg1IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9vYmplY3RzdG9yZS1iYXNpY3MuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9vYmplY3RzdG9yZS1iYXNpY3MuaHRt
bApAQCAtMTU0LDcgKzE1NCw3IEBAIGZ1bmN0aW9uIGFkZERhdGVTdWNjZXNzKCkKICAgICB9IGNh
dGNoIChlcnIpIHsKICAgICAgICAgdGVzdFBhc3NlZCgiRXhjZXB0aW9uIHRocm93biIpOwogICAg
ICAgICBjb2RlID0gZXJyLmNvZGU7Ci0gICAgICAgIHNob3VsZEJlKCJjb2RlIiwgIkRPTUV4Y2Vw
dGlvbi5OT1RfU1VQUE9SVEVEX0VSUiIpOworICAgICAgICBzaG91bGRCZSgiY29kZSIsICJET01F
eGNlcHRpb24uREFUQV9DTE9ORV9FUlIiKTsKICAgICB9CiAKICAgICBkZWJ1ZygiVHJ5IHRvIGlu
c2VydCBkYXRhIHdoZXJlIGtleSBwYXRoIHlpZWxkcyBhIERhdGUga2V5OiIpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmlu
ZGV4IGYwYmNhYjMuLmMxZjljMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw4OCBAQAorMjAxMS0w
Ny0xMyAgTHVrZSBaYXJrbyAgPGx1a2V6YXJrb0BnbWFpbC5jb20+CisKKyAgICAgICAgQnJpbmcg
VjgncyBTZXJpYWxpemVkU2NyaXB0VmFsdWUgaW1wbGVtZW50YXRpb24gdXAgdG8gZGF0ZS4KKwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM0ODEKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIFRo
ZSBIVE1MNSBTdHJ1Y3R1cmVkIENsb25lIGFsZ29yaXRobSAoaHR0cDovL3d3dy53aGF0d2cub3Jn
L3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay9tdWx0aXBhZ2UvdXJscy5odG1sI3NhZmUtcGFz
c2luZy1vZi1zdHJ1Y3R1cmVkLWRhdGEpIGhhcyBiZWVuIHVwZGF0ZWQgc2luY2UgdGhlIFY4IHZl
cnNpb24gb2YgU2VyaWFsaXplZFNjcmlwdFZhbHVlIHdhcyBmaXJzdCBpbXBsZW1lbnRlZC4gVGhp
cyBwYXRjaCBhaW1zIHRvIGJyaW5nIHRoaXMgaW1wbGVtZW50YXRpb24gdXAgdG8gZGF0ZS4gSXQ6
CisgICAgICAgIAorICAgICAgICAtIEludHJvZHVjZXMgdGhlIG5ldyBIVE1MNSBET00gZXJyb3Ig
Y29kZXMgZm9yIFRJTUVPVVRfRVJSLCBJTlZBTElEX05PREVfVFlQRV9FUlIsIERBVEFfQ0xPTkVf
RVJSCisgICAgICAgIC0gSGFuZGxlcyBjeWNsaWMgc3RydWN0dXJlcyBhbmQgZXF1YWxpdHkgb2Yg
cmVmZXJlbmNlIHByZXNlcnZhdGlvbiBmb3IgY2xvbmVkIHZhbHVlcworICAgICAgICAtIEFsbG93
cyBEYXRhVmlld3MgdG8gYmUgY29uc3RydWN0ZWQgb24gdGhlIG5hdGl2ZSBzaWRlIHVzaW5nIHRo
ZSBleGlzdGluZyB3cmFwcGVyIHRlY2huaXF1ZXMKKyAgICAgICAgLSBBbWVuZHMgdGVzdHMgYW5k
IGludHJvZHVjZXMgbmV3IG9uZXMgdG8gY2hlY2sgZm9yIGNvcnJlY3RuZXNzICh0aGUgYnVsayBv
ZiB0aGUgcGF0Y2gpCisgICAgICAgIC0gVG9sZXJhdGVzIHRoZSBvbGQgdmVyc2lvbiBvZiB0aGUg
c2VyaWFsaXplZCBvYmplY3QgZm9ybWF0CisgICAgICAgIAorICAgICAgICBUaGUgcGF0Y2ggcGVy
bWl0cyB0aGUgY2xvbmluZyBvZiBKYXZhU2NyaXB0IHR5cGVkIGFycmF5cy4gVGhpcyBmdW5jdGlv
bmFsaXR5IGlzIGluIGFjdGl2ZSB1c2UgYWxyZWFkeSBhbmQgd2FzIHN1cHBvcnRlZCAoc29tZXdo
YXQgaW5lZmZpY2llbnRseSkgYnkgdGhlIGV4aXN0aW5nIGNvZGUgdGhyb3VnaCBhbiBhcnRpZmFj
dCBvZiBpbXBsZW1lbnRhdGlvbi4KKworICAgICAgICBUZXN0czogZmFzdC9kb20vV2luZG93L3dp
bmRvdy1wb3N0bWVzc2FnZS1jbG9uZS1kZWVwLWFycmF5Lmh0bWwKKyAgICAgICAgICAgICAgIGZh
c3QvZG9tL1dpbmRvdy93aW5kb3ctcG9zdG1lc3NhZ2UtY2xvbmUtcmVhbGx5LWRlZXAtYXJyYXku
aHRtbAorICAgICAgICAgICAgICAgZmFzdC9kb20vV2luZG93L3dpbmRvdy1wb3N0bWVzc2FnZS1j
bG9uZS5odG1sCisgICAgICAgICAgICAgICBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2NhbnZhcy93
ZWJnbC9hcnJheS1tZXNzYWdlLXBhc3NpbmcuaHRtbAorCisgICAgICAgICogYmluZGluZ3Mvdjgv
U2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4T2JqZWN0TWFw
OjpXcml0ZXI6OndyaXRlVmVyc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpWOE9iamVjdE1hcDo6
V3JpdGVyOjp3cml0ZUFycmF5QnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlY4T2JqZWN0TWFw
OjpXcml0ZXI6OndyaXRlQXJyYXlCdWZmZXJWaWV3KToKKyAgICAgICAgKFdlYkNvcmU6OlY4T2Jq
ZWN0TWFwOjpXcml0ZXI6OndyaXRlT2JqZWN0T2Zmc2V0KToKKyAgICAgICAgKFdlYkNvcmU6OlY4
T2JqZWN0TWFwOjpXcml0ZXI6OndyaXRlQ2hlY2tSZWYpOgorICAgICAgICAoV2ViQ29yZTo6VjhP
YmplY3RNYXA6OldyaXRlcjo6d3JpdGVHZW5lcmF0ZUZyZXNoT2JqZWN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlY4T2JqZWN0TWFwOjpXcml0ZXI6OndyaXRlR2VuZXJhdGVGcmVzaEFycmF5KToKKyAg
ICAgICAgKFdlYkNvcmU6OlY4T2JqZWN0TWFwOjpXcml0ZXI6OmRvV3JpdGVBcnJheUJ1ZmZlcik6
CisgICAgICAgIChXZWJDb3JlOjpWOE9iamVjdE1hcDo6U2VyaWFsaXplcjo6U2VyaWFsaXplcik6
CisgICAgICAgIChXZWJDb3JlOjpWOE9iamVjdE1hcDo6U2VyaWFsaXplcjo6c2VyaWFsaXplKToK
KyAgICAgICAgKFdlYkNvcmU6OlY4T2JqZWN0TWFwOjpTZXJpYWxpemVyOjpTdGF0ZUJhc2U6OmV4
ZWNEZXB0aCk6CisgICAgICAgIChXZWJDb3JlOjpWOE9iamVjdE1hcDo6U2VyaWFsaXplcjo6QWJz
dHJhY3RPYmplY3RTdGF0ZTo6QWJzdHJhY3RPYmplY3RTdGF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpWOE9iamVjdE1hcDo6U2VyaWFsaXplcjo6QWJzdHJhY3RPYmplY3RTdGF0ZTo6YWR2YW5jZSk6
CisgICAgICAgIChXZWJDb3JlOjpWOE9iamVjdE1hcDo6U2VyaWFsaXplcjo6QWJzdHJhY3RPYmpl
Y3RTdGF0ZTo6ZXhlY0RlcHRoKToKKyAgICAgICAgKFdlYkNvcmU6OlY4T2JqZWN0TWFwOjpTZXJp
YWxpemVyOjpleGVjRGVwdGgpOgorICAgICAgICAoV2ViQ29yZTo6VjhPYmplY3RNYXA6OlNlcmlh
bGl6ZXI6OnB1c2gpOgorICAgICAgICAoV2ViQ29yZTo6VjhPYmplY3RNYXA6OlNlcmlhbGl6ZXI6
OnBvcCk6CisgICAgICAgIChXZWJDb3JlOjpWOE9iamVjdE1hcDo6U2VyaWFsaXplcjo6aGFuZGxl
RXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6VjhPYmplY3RNYXA6OlNlcmlhbGl6ZXI6OndyaXRl
TnVsbCk6CisgICAgICAgIChXZWJDb3JlOjpWOE9iamVjdE1hcDo6U2VyaWFsaXplcjo6d3JpdGVB
bmRHcmV5QXJyYXlCdWZmZXJWaWV3KToKKyAgICAgICAgKFdlYkNvcmU6OlY4T2JqZWN0TWFwOjpT
ZXJpYWxpemVyOjp3cml0ZUFycmF5QnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlY4T2JqZWN0
TWFwOjpTZXJpYWxpemVyOjpncmV5T2JqZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OlY4T2JqZWN0
TWFwOjpTZXJpYWxpemVyOjpkb1NlcmlhbGl6ZSk6CisgICAgICAgIChXZWJDb3JlOjpWOE9iamVj
dE1hcDo6UmVhZGVyOjpSZWFkZXIpOgorICAgICAgICAoV2ViQ29yZTo6VjhPYmplY3RNYXA6OlJl
YWRlcjo6cmVhZCk6CisgICAgICAgIChXZWJDb3JlOjpWOE9iamVjdE1hcDo6UmVhZGVyOjpyZWFk
VmVyc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpWOE9iamVjdE1hcDo6UmVhZGVyOjpzZXRWZXJz
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlY4T2JqZWN0TWFwOjpSZWFkZXI6OnVuZG9SZWFkVGFn
KToKKyAgICAgICAgKFdlYkNvcmU6OlY4T2JqZWN0TWFwOjpSZWFkZXI6OnJlYWRTdWJUYWcpOgor
ICAgICAgICAoV2ViQ29yZTo6VjhPYmplY3RNYXA6OlJlYWRlcjo6ZG9SZWFkQXJyYXlCdWZmZXIp
OgorICAgICAgICAoV2ViQ29yZTo6VjhPYmplY3RNYXA6OlJlYWRlcjo6cmVhZEFycmF5QnVmZmVy
KToKKyAgICAgICAgKFdlYkNvcmU6OlY4T2JqZWN0TWFwOjpSZWFkZXI6OnJlYWRBcnJheUJ1ZmZl
clZpZXcpOgorICAgICAgICAoV2ViQ29yZTo6VjhPYmplY3RNYXA6OkRlc2VyaWFsaXplcjo6RGVz
ZXJpYWxpemVyKToKKyAgICAgICAgKFdlYkNvcmU6OlY4T2JqZWN0TWFwOjpEZXNlcmlhbGl6ZXI6
OmRlc2VyaWFsaXplKToKKyAgICAgICAgKFdlYkNvcmU6OlY4T2JqZWN0TWFwOjpEZXNlcmlhbGl6
ZXI6Om5ld0FycmF5KToKKyAgICAgICAgKFdlYkNvcmU6OlY4T2JqZWN0TWFwOjpEZXNlcmlhbGl6
ZXI6OmNvbnN1bWVUb3BPZlN0YWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlY4T2JqZWN0TWFwOjpE
ZXNlcmlhbGl6ZXI6OmNvbXBsZXRlQXJyYXkpOgorICAgICAgICAoV2ViQ29yZTo6VjhPYmplY3RN
YXA6OkRlc2VyaWFsaXplcjo6bmV3T2JqZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OlY4T2JqZWN0
TWFwOjpEZXNlcmlhbGl6ZXI6OmNvbXBsZXRlT2JqZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OlY4
T2JqZWN0TWFwOjpEZXNlcmlhbGl6ZXI6OmNvbXBsZXRlU3BhcnNlQXJyYXkpOgorICAgICAgICAo
V2ViQ29yZTo6VjhPYmplY3RNYXA6OkRlc2VyaWFsaXplcjo6cHVzaE9iamVjdFJlZmVyZW5jZSk6
CisgICAgICAgIChXZWJDb3JlOjpWOE9iamVjdE1hcDo6RGVzZXJpYWxpemVyOjp0cnlHZXRPYmpl
Y3RGcm9tT2JqZWN0UmVmZXJlbmNlKToKKyAgICAgICAgKFdlYkNvcmU6OlY4T2JqZWN0TWFwOjpE
ZXNlcmlhbGl6ZXI6Om9iamVjdFJlZmVyZW5jZUNvdW50KToKKyAgICAgICAgKFdlYkNvcmU6OlY4
T2JqZWN0TWFwOjpEZXNlcmlhbGl6ZXI6Om9wZW5Db21wb3NpdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6VjhPYmplY3RNYXA6OkRlc2VyaWFsaXplcjo6Y2xvc2VDb21wb3NpdGUpOgorICAgICAgICAo
V2ViQ29yZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWUpOgor
ICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4QmluZGluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpp
c0hvc3RPYmplY3QpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4QmluZGluZy5oOgorICAgICAg
ICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOERhdGFWaWV3Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlY4RGF0YVZpZXc6OmNvbnN0cnVjdG9yQ2FsbGJhY2spOgorICAgICAgICAqIGRvbS9E
T01Db3JlRXhjZXB0aW9uLmlkbDoKKyAgICAgICAgKiBkb20vRXhjZXB0aW9uQ29kZS5jcHA6Cisg
ICAgICAgICogZG9tL0V4Y2VwdGlvbkNvZGUuaDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9BcnJh
eUJ1ZmZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBcnJheUJ1ZmZlcjo6Y3JlYXRlKToKKyAg
ICAgICAgKiBodG1sL2NhbnZhcy9BcnJheUJ1ZmZlci5oOgorICAgICAgICAqIGh0bWwvY2FudmFz
L0RhdGFWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFWaWV3OjpjcmVhdGUpOgorICAg
ICAgICAqIGh0bWwvY2FudmFzL0RhdGFWaWV3Lmg6CisKIDIwMTEtMDctMTMgIFBpZXJyZSBSb3Nz
aSAgPHBpZXJyZS5yb3NzaUBnbWFpbC5jb20+CiAKICAgICAgICAgRml4IGNvbXBpbGUgZm9yIFFS
YXdGb250LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZS5jcHAKaW5kZXggY2I0NGYwMi4uYjdlZGM2MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvdjgvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCkBAIC0zMSwy
MCArMzEsNDIgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJTZXJpYWxpemVkU2Ny
aXB0VmFsdWUuaCIKIAorI2luY2x1ZGUgIkFycmF5QnVmZmVyLmgiCisjaW5jbHVkZSAiQXJyYXlC
dWZmZXJWaWV3LmgiCiAjaW5jbHVkZSAiQmxvYi5oIgogI2luY2x1ZGUgIkJ5dGVBcnJheS5oIgog
I2luY2x1ZGUgIkNhbnZhc1BpeGVsQXJyYXkuaCIKKyNpbmNsdWRlICJEYXRhVmlldy5oIgogI2lu
Y2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRlICJGaWxlLmgiCiAjaW5jbHVkZSAiRmls
ZUxpc3QuaCIKKyNpbmNsdWRlICJGbG9hdDMyQXJyYXkuaCIKKyNpbmNsdWRlICJGbG9hdDY0QXJy
YXkuaCIKICNpbmNsdWRlICJJbWFnZURhdGEuaCIKKyNpbmNsdWRlICJJbnQxNkFycmF5LmgiCisj
aW5jbHVkZSAiSW50MzJBcnJheS5oIgorI2luY2x1ZGUgIkludDhBcnJheS5oIgogI2luY2x1ZGUg
IlNoYXJlZEJ1ZmZlci5oIgorI2luY2x1ZGUgIlVpbnQxNkFycmF5LmgiCisjaW5jbHVkZSAiVWlu
dDMyQXJyYXkuaCIKKyNpbmNsdWRlICJVaW50OEFycmF5LmgiCisjaW5jbHVkZSAiVjhBcnJheUJ1
ZmZlci5oIgorI2luY2x1ZGUgIlY4QXJyYXlCdWZmZXJWaWV3LmgiCiAjaW5jbHVkZSAiVjhCaW5k
aW5nLmgiCiAjaW5jbHVkZSAiVjhCbG9iLmgiCisjaW5jbHVkZSAiVjhEYXRhVmlldy5oIgogI2lu
Y2x1ZGUgIlY4RmlsZS5oIgogI2luY2x1ZGUgIlY4RmlsZUxpc3QuaCIKKyNpbmNsdWRlICJWOEZs
b2F0MzJBcnJheS5oIgorI2luY2x1ZGUgIlY4RmxvYXQ2NEFycmF5LmgiCiAjaW5jbHVkZSAiVjhJ
bWFnZURhdGEuaCIKKyNpbmNsdWRlICJWOEludDE2QXJyYXkuaCIKKyNpbmNsdWRlICJWOEludDMy
QXJyYXkuaCIKKyNpbmNsdWRlICJWOEludDhBcnJheS5oIgogI2luY2x1ZGUgIlY4UHJveHkuaCIK
KyNpbmNsdWRlICJWOFVpbnQxNkFycmF5LmgiCisjaW5jbHVkZSAiVjhVaW50MzJBcnJheS5oIgor
I2luY2x1ZGUgIlY4VWludDhBcnJheS5oIgogI2luY2x1ZGUgIlY4VXRpbGl0aWVzLmgiCiAKICNp
bmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgpAQCAtNTIsMzUgKzc0LDE0NCBAQAogI2luY2x1ZGUg
PHd0Zi9WZWN0b3IuaD4KIAogLy8gRklYTUU6IGNvbnNpZGVyIGNyYXNoaW5nIGluIGRlYnVnIG1v
ZGUgb24gZGVzZXJpYWxpemF0aW9uIGVycm9ycworLy8gTk9URTogYmUgc3VyZSB0byBjaGFuZ2Ug
d2lyZUZvcm1hdFZlcnNpb24gYXMgbmVjZXNzYXJ5IQogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IG5hbWVzcGFjZSB7CiAKKy8vIFRoaXMgY29kZSBpbXBsZW1lbnRzIHRoZSBIVE1MNSBTdHJ1Y3R1
cmVkIENsb25lIGFsZ29yaXRobToKKy8vIGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWIt
YXBwcy9jdXJyZW50LXdvcmsvbXVsdGlwYWdlL3VybHMuaHRtbCNzYWZlLXBhc3Npbmctb2Ytc3Ry
dWN0dXJlZC1kYXRhCisKKy8vIFY4T2JqZWN0TWFwIGlzIGEgbWFwIGZyb20gVjggb2JqZWN0cyB0
byBhcmJpdHJhcnkgdmFsdWVzIG9mIHR5cGUgVC4KKy8vIFY4IG9iamVjdHMgKG9yIGhhbmRsZXMg
dG8gVjggb2JqZWN0cykgY2Fubm90IGJlIHVzZWQgYXMga2V5cyBpbiBvcmRpbmFyeSB3dGY6Okhh
c2hNYXBzOworLy8gdGhpcyBjbGFzcyBzaG91bGQgYmUgdXNlZCBpbnN0ZWFkLiBHY09iamVjdCBt
dXN0IGJlIGEgc3VidHlwZSBvZiB2ODo6T2JqZWN0LgorLy8gU3VnZ2VzdGVkIHVzYWdlOgorLy8g
ICAgIFY4T2JqZWN0TWFwPHY4OjpPYmplY3QsIGludD4gbWFwOworLy8gICAgIHY4OjpIYW5kbGU8
djg6Ok9iamVjdD4gb2JqID0gLi4uOworLy8gICAgIG1hcC5zZXQob2JqLCA0Mik7Cit0ZW1wbGF0
ZTx0eXBlbmFtZSBHY09iamVjdCwgdHlwZW5hbWUgVD4KK2NsYXNzIFY4T2JqZWN0TWFwIHsKK3B1
YmxpYzoKKyAgICBib29sIGNvbnRhaW5zKGNvbnN0IHY4OjpIYW5kbGU8R2NPYmplY3Q+JiBoYW5k
bGUpCisgICAgeworICAgICAgICByZXR1cm4gbV9tYXAuY29udGFpbnMoKmhhbmRsZSk7CisgICAg
fQorCisgICAgYm9vbCB0cnlHZXQoY29uc3Qgdjg6OkhhbmRsZTxHY09iamVjdD4mIGhhbmRsZSwg
VCogdmFsdWVPdXQpCisgICAgeworICAgICAgICB0eXBlbmFtZSBIYW5kbGVUb1Q6Oml0ZXJhdG9y
IHJlc3VsdCA9IG1fbWFwLmZpbmQoKmhhbmRsZSk7CisgICAgICAgIGlmIChyZXN1bHQgIT0gbV9t
YXAuZW5kKCkpIHsKKyAgICAgICAgICAgICp2YWx1ZU91dCA9IHJlc3VsdC0+c2Vjb25kOworICAg
ICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIH0KKworICAgIHZvaWQgc2V0KGNvbnN0IHY4OjpIYW5kbGU8R2NPYmplY3Q+JiBoYW5kbGUs
IGNvbnN0IFQmIHZhbHVlKQorICAgIHsKKyAgICAgICAgbV9tYXAuc2V0KCpoYW5kbGUsIHZhbHVl
KTsKKyAgICB9CisKKyAgICB1aW50MzJfdCBzaXplKCkKKyAgICB7CisgICAgICAgIHJldHVybiBt
X21hcC5zaXplKCk7CisgICAgfQorCitwcml2YXRlOgorICAgIC8vIFRoaXMgaW1wbGVtZW50YXRp
b24gdXNlcyBHZXRJZGVudGl0eUhhc2goKSwgd2hpY2ggc2V0cyBhIGhpZGRlbiBwcm9wZXJ0eSBv
biB0aGUgb2JqZWN0IGNvbnRhaW5pbmcKKyAgICAvLyBhIHJhbmRvbSBpbnRlZ2VyIChvciByZXR1
cm5zIHRoZSBvbmUgdGhhdCBoYWQgYmVlbiBwcmV2aW91c2x5IHNldCkuIFRoaXMgZW5zdXJlcyB0
aGF0IHRoZSB0YWJsZQorICAgIC8vIG5ldmVyIG5lZWRzIHRvIGJlIHJlYnVpbHQgYWNyb3NzIGdh
cmJhZ2UgY29sbGVjdGlvbnMgYXQgdGhlIGV4cGVuc2Ugb2YgZG9pbmcgYWRkaXRpb25hbCBhbGxv
Y2F0aW9uCisgICAgLy8gYW5kIG1ha2luZyBtb3JlIHJvdW5kIHRyaXBzIGludG8gVjguIE5vdGUg
dGhhdCBzaW5jZSBHZXRJZGVudGl0eUhhc2goKSBpcyBkZWZpbmVkIG9ubHkgb24KKyAgICAvLyB2
ODo6T2JqZWN0cywgdGhpcyBWOEdjSGFuZGxlTWFwIGNhbm5vdCBiZSB1c2VkIHRvIG1hcCB2ODo6
U3RyaW5ncyB0byBUIChiZWNhdXNlIHRoZSBwdWJsaWMgVjggQVBJCisgICAgLy8gY29uc2lkZXJz
IGEgdjg6OlN0cmluZyB0byBiZSBhIHY4OjpQcmltaXRpdmUpLgorCisgICAgLy8gSWYgVjggZXhw
b3NlcyBhIHdheSB0byBnZXQgYXQgdGhlIGFkZHJlc3Mgb2YgdGhlIG9iamVjdCBoZWxkIGJ5IGEg
aGFuZGxlLCB0aGVuIHdlIGNhbiBwcm9kdWNlCisgICAgLy8gYW4gYWx0ZXJuYXRlIGltcGxlbWVu
dGF0aW9uIHRoYXQgZG9lcyBub3QgbmVlZCB0byBkbyBhbnkgVjgtc2lkZSBhbGxvY2F0aW9uOyBo
b3dldmVyLCBpdCB3aWxsCisgICAgLy8gbmVlZCB0byByZWhhc2ggYWZ0ZXIgZXZlcnkgZ2FyYmFn
ZSBjb2xsZWN0aW9uIGJlY2F1c2UgYSBrZXkgb2JqZWN0IG1heSBoYXZlIGJlZW4gbW92ZWQuCisg
ICAgdGVtcGxhdGU8dHlwZW5hbWUgRz4KKyAgICBzdHJ1Y3QgVjhIYW5kbGVQdHJIYXNoIHsKKyAg
ICAgICAgc3RhdGljIHVuc2lnbmVkIGhhc2goY29uc3QgRyoga2V5KQorICAgICAgICB7CisgICAg
ICAgICAgICB2ODo6SGFuZGxlPEc+IG9iakhhbmRsZShjb25zdF9jYXN0PEcqPihrZXkpKTsKKyAg
ICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDx1bnNpZ25lZD4ob2JqSGFuZGxlLT5HZXRJZGVu
dGl0eUhhc2goKSk7CisgICAgICAgIH0KKyAgICAgICAgc3RhdGljIGJvb2wgZXF1YWwoY29uc3Qg
RyogYSwgY29uc3QgRyogYikKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIHY4OjpIYW5k
bGU8Rz4oY29uc3RfY2FzdDxHKj4oYSkpID09IHY4OjpIYW5kbGU8Rz4oY29uc3RfY2FzdDxHKj4o
YikpOworICAgICAgICB9CisgICAgICAgIC8vIEZvciBIYXNoQXJnLgorICAgICAgICBzdGF0aWMg
Y29uc3QgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IGZhbHNlOworICAgIH07
CisKKyAgICB0eXBlZGVmIFdURjo6SGFzaE1hcDxHY09iamVjdCosIFQsIFY4SGFuZGxlUHRySGFz
aDxHY09iamVjdD4gPiBIYW5kbGVUb1Q7CisgICAgSGFuZGxlVG9UIG1fbWFwOworfTsKKwogdHlw
ZWRlZiBVQ2hhciBCdWZmZXJWYWx1ZVR5cGU7CiAKLS8vIFNlcmlhbGl6YXRpb24gZm9ybWF0IGlz
IGEgc2VxdWVuY2Ugb2YgKHRhZywgb3B0aW9uYWwgZGF0YSkKLS8vIHBhaXJzLiBUYWcgYWx3YXlz
IHRha2VzIGV4YWN0bHkgb25lIGJ5dGUuCisvLyBTZXJpYWxpemF0aW9uIGZvcm1hdCBpcyBhIHNl
cXVlbmNlIG9mIHRhZ3MgZm9sbG93ZWQgYnkgemVybyBvciBtb3JlIGRhdGEgYXJndW1lbnRzLgor
Ly8gVGFncyBhbHdheXMgdGFrZSBleGFjdGx5IG9uZSBieXRlLiBBIHNlcmlhbGl6ZWQgc3RyZWFt
IGZpcnN0IGJlZ2lucyB3aXRoCisvLyBhIGNvbXBsZXRlIFZlcnNpb25UYWcuIElmIHRoZSBzdHJl
YW0gZG9lcyBub3QgYmVnaW4gd2l0aCBhIFZlcnNpb25UYWcsIHdlIGFzc3VtZSB0aGF0CisvLyB0
aGUgc3RyZWFtIGlzIGluIGZvcm1hdCAwLgorCisvLyBUaGlzIGZvcm1hdCBpcyBwcml2YXRlIHRv
IHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBTZXJpYWxpemVkU2NyaXB0VmFsdWUuIERvIG5vdCByZWx5
IG9uIGl0CisvLyBleHRlcm5hbGx5LiBJdCBpcyBzYWZlIHRvIHBlcnNpc3QgYSBTZXJpYWxpemVk
U2NyaXB0VmFsdWUgYXMgYSBiaW5hcnkgYmxvYiwgYnV0IHRoaXMKKy8vIGNvZGUgc2hvdWxkIGFs
d2F5cyBiZSB1c2VkIHRvIGludGVycHJldCBpdC4KKworLy8gV2ViQ29yZVN0cmluZ3MgYXJlIHJl
YWQgYXMgKGxlbmd0aDp1aW50MzJfdCwgc3RyaW5nOlVURjhbbGVuZ3RoXSkuCisvLyBSYXdTdHJp
bmdzIGFyZSByZWFkIGFzIChsZW5ndGg6dWludDMyX3QsIHN0cmluZzpVVEY4W2xlbmd0aF0pLgor
Ly8gUmF3RmlsZXMgYXJlIHJlYWQgYXMgKHBhdGg6V2ViQ29yZVN0cmluZywgdXJsOldlYkNvcmVT
dHJuZywgdHlwZTpXZWJDb3JlU3RyaW5nKS4KKy8vIFRoZXJlIGlzIGEgcmVmIHRhYmxlIHRoYXQg
bWFwcyBvYmplY3QgcmVmZXJlbmNlcyAodWludDMyX3QpIHRvIHY4OjpWYWx1ZXMuCisvLyBUb2tl
bnMgbWFya2VkIHdpdGggKHJlZikgYXJlIGluc2VydGVkIGludG8gdGhlIHJlZiB0YWJsZSBhbmQg
Z2l2ZW4gdGhlIG5leHQgb2JqZWN0IElEIGFmdGVyIGRlY29kaW5nLgorLy8gQWxsIHRhZ3MgZXhj
ZXB0IEludmFsaWRUYWcsIFBhZGRpbmdUYWcsIENoZWNrUmVmVGFnLCBWZXJzaW9uVGFnLCBHZW5l
cmF0ZUZyZXNoT2JqZWN0VGFnCisvLyAgICAgYW5kIEdlbmVyYXRlRnJlc2hBcnJheVRhZyBwdXNo
IHRoZWlyIHJlc3VsdHMgdG8gdGhlIGRlc2VyaWFsaXphdGlvbiBzdGFjay4KKy8vIFRoZXJlIGlz
IGFsc28gYW4gJ29wZW4nIHN0YWNrIHRoYXQgaXMgdXNlZCB0byByZXNvbHZlIGNpcmN1bGFyIHJl
ZmVyZW5jZXMuIE9iamVjdHMgb3IgYXJyYXlzIG1heQorLy8gICAgIGNvbnRhaW4gc2VsZi1yZWZl
cmVuY2VzLiBCZWZvcmUgd2UgYmVnaW4gdG8gZGVzZXJpYWxpemUgdGhlIGNvbnRlbnRzIG9mIHRo
ZXNlIHZhbHVlcywgdGhleQorLy8gICAgIGFyZSBmaXJzdCBnaXZlbiBvYmplY3QgcmVmZXJlbmNl
IElEcyAoYnkgR2VuZXJhdGVGcmVzaE9iamVjdFRhZy9HZW5lcmF0ZUZyZXNoQXJyYXlUYWcpOwor
Ly8gICAgIHRoZXNlIHJlZmVyZW5jZSBJRHMgYXJlIHRoZW4gdXNlZCB3aXRoIE9iamVjdFJlZmVy
ZW5jZVRhZyB0byB0aWUgdGhlIHJlY3Vyc2l2ZSBrbm90LgogZW51bSBTZXJpYWxpemF0aW9uVGFn
IHsKLSAgICBJbnZhbGlkVGFnID0gJyEnLAotICAgIFBhZGRpbmdUYWcgPSAnXDAnLAotICAgIFVu
ZGVmaW5lZFRhZyA9ICdfJywKLSAgICBOdWxsVGFnID0gJzAnLAotICAgIFRydWVUYWcgPSAnVCcs
Ci0gICAgRmFsc2VUYWcgPSAnRicsCi0gICAgU3RyaW5nVGFnID0gJ1MnLAotICAgIEludDMyVGFn
ID0gJ0knLAotICAgIFVpbnQzMlRhZyA9ICdVJywKLSAgICBEYXRlVGFnID0gJ0QnLAotICAgIE51
bWJlclRhZyA9ICdOJywKLSAgICBCbG9iVGFnID0gJ2InLAotICAgIEZpbGVUYWcgPSAnZicsCi0g
ICAgRmlsZUxpc3RUYWcgPSAnbCcsCi0gICAgSW1hZ2VEYXRhVGFnID0gJyMnLAotICAgIEFycmF5
VGFnID0gJ1snLAotICAgIE9iamVjdFRhZyA9ICd7JywKLSAgICBTcGFyc2VBcnJheVRhZyA9ICdA
JywKLSAgICBSZWdFeHBUYWcgPSAnUicsCisgICAgSW52YWxpZFRhZyA9ICchJywgLy8gQ2F1c2Vz
IGRlc2VyaWFsaXphdGlvbiB0byBmYWlsLgorICAgIFBhZGRpbmdUYWcgPSAnXDAnLCAvLyBJcyBp
Z25vcmVkIChidXQgY29uc3VtZWQpLgorICAgIFVuZGVmaW5lZFRhZyA9ICdfJywgLy8gLT4gPHVu
ZGVmaW5lZD4KKyAgICBOdWxsVGFnID0gJzAnLCAvLyAtPiA8bnVsbD4KKyAgICBUcnVlVGFnID0g
J1QnLCAvLyAtPiA8dHJ1ZT4KKyAgICBGYWxzZVRhZyA9ICdGJywgLy8gLT4gPGZhbHNlPgorICAg
IFN0cmluZ1RhZyA9ICdTJywgLy8gc3RyaW5nOlJhd1N0cmluZyAtPiBzdHJpbmcKKyAgICBJbnQz
MlRhZyA9ICdJJywgLy8gdmFsdWU6WmlnWmFnLWVuY29kZWQgaW50MzIgLT4gSW50ZWdlcgorICAg
IFVpbnQzMlRhZyA9ICdVJywgLy8gdmFsdWU6dWludDMyX3QgLT4gSW50ZWdlcgorICAgIERhdGVU
YWcgPSAnRCcsIC8vIHZhbHVlOmRvdWJsZSAtPiBEYXRlIChyZWYpCisgICAgTnVtYmVyVGFnID0g
J04nLCAvLyB2YWx1ZTpkb3VibGUgLT4gTnVtYmVyCisgICAgQmxvYlRhZyA9ICdiJywgLy8gdXJs
OldlYkNvcmVTdHJpbmcsIHR5cGU6V2ViQ29yZVN0cmluZywgc2l6ZTp1aW50NjRfdCAtPiBCbG9i
IChyZWYpCisgICAgRmlsZVRhZyA9ICdmJywgLy8gZmlsZTpSYXdGaWxlIC0+IEZpbGUgKHJlZikK
KyAgICBGaWxlTGlzdFRhZyA9ICdsJywgLy8gbGVuZ3RoOnVpbnQzMl90LCBmaWxlczpSYXdGaWxl
W2xlbmd0aF0gLT4gRmlsZUxpc3QgKHJlZikKKyAgICBJbWFnZURhdGFUYWcgPSAnIycsIC8vIHdp
ZHRoOnVpbnQzMl90LCBoZWlnaHQ6dWludDMyX3QsIHBpeGVsRGF0YUxlbmd0aDp1aW50MzJfdCwg
ZGF0YTpieXRlW3BpeGVsRGF0YUxlbmd0aF0gLT4gSW1hZ2VEYXRhIChyZWYpCisgICAgQXJyYXlU
YWcgPSAnWycsIC8vIGxlbmd0aDp1aW50MzJfdCAtPiBwb3BzIHRoZSBsYXN0IGFycmF5IGZyb20g
dGhlIG9wZW4gc3RhY2s7CisgICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAg
ICBmaWxscyBpdCB3aXRoIHRoZSBsYXN0IGxlbmd0aCBlbGVtZW50cyBwdXNoZWQgb24gdGhlIGRl
c2VyaWFsaXphdGlvbiBzdGFjaworICAgIE9iamVjdFRhZyA9ICd7JywgLy8gbnVtUHJvcGVydGll
czp1aW50MzJfdCAtPiBwb3BzIHRoZSBsYXN0IG9iamVjdCBmcm9tIHRoZSBvcGVuIHN0YWNrOwor
ICAgICAgICAgICAgICAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxscyBp
dCB3aXRoIHRoZSBsYXN0IG51bVByb3BlcnRpZXMgbmFtZSx2YWx1ZSBwYWlycyBwdXNoZWQgb250
byB0aGUgZGVzZXJpYWxpemF0aW9uIHN0YWNrCisgICAgU3BhcnNlQXJyYXlUYWcgPSAnQCcsIC8v
IG51bVByb3BlcnRpZXM6dWludDMyX3QsIGxlbmd0aDp1aW50MzJfdCAtPiBwb3BzIHRoZSBsYXN0
IG9iamVjdCBmcm9tIHRoZSBvcGVuIHN0YWNrOworICAgICAgICAgICAgICAgICAgICAgICAgICAv
LyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbHMgaXQgd2l0
aCB0aGUgbGFzdCBudW1Qcm9wZXJ0aWVzIG5hbWUsdmFsdWUgcGFpcnMgcHVzaGVkIG9udG8gdGhl
IGRlc2VyaWFsaXphdGlvbiBzdGFjaworICAgIFJlZ0V4cFRhZyA9ICdSJywgLy8gcGF0dGVybjpS
YXdTdHJpbmcsIGZsYWdzOnVpbnQzMl90IC0+IFJlZ0V4cCAocmVmKQorICAgIEFycmF5QnVmZmVy
VGFnID0gJ0InLCAvLyBieXRlTGVuZ3RoOnVpbnQzMl90LCBkYXRhOmJ5dGVbYnl0ZUxlbmd0aF0g
LT4gQXJyYXlCdWZmZXIgKHJlZikKKyAgICBBcnJheUJ1ZmZlclZpZXdUYWcgPSAnVicsIC8vIHN1
YnRhZzpieXRlLCBieXRlT2Zmc2V0OnVpbnQzMl90LCBieXRlTGVuZ3RoOnVpbnQzMl90IC0+IEFy
cmF5QnVmZmVyVmlldyAocmVmKS4gQ29uc3VtZXMgYW4gQXJyYXlCdWZmZXIgZnJvbSB0aGUgdG9w
IG9mIHRoZSBkZXNlcmlhbGl6YXRpb24gc3RhY2suCisgICAgT2JqZWN0UmVmZXJlbmNlVGFnID0g
J14nLCAvLyByZWY6dWludDMyX3QgLT4gcmVmIHRhYmxlW3JlZl0KKyAgICBHZW5lcmF0ZUZyZXNo
T2JqZWN0VGFnID0gJ28nLCAvLyAtPiBlbXB0eSBvYmplY3QgYWxsb2NhdGVkIGFuIG9iamVjdCBJ
RCBhbmQgcHVzaGVkIG9udG8gdGhlIG9wZW4gc3RhY2sgKHJlZikKKyAgICBHZW5lcmF0ZUZyZXNo
QXJyYXlUYWcgPSAnYScsIC8vIGxlbmd0aDp1aW50MzJfdCAtPiBlbXB0eSBhcnJheVtsZW5ndGhd
IGFsbG9jYXRlZCBhbiBvYmplY3QgSUQgYW5kIHB1c2hlZCBvbnRvIHRoZSBvcGVuIHN0YWNrIChy
ZWYpCisgICAgQ2hlY2tSZWZUYWcgPSAnPycsIC8vIHJlZlRhYmxlU2l6ZTp1aW50MzJfdCAtPiBJ
ZiB0aGUgcmVmIHRhYmxlIGlzIG5vdCByZWZUYWJsZVNpemUgYmlnLCBmYWlscy4KKyAgICBWZXJz
aW9uVGFnID0gMHhGRiAvLyB2ZXJzaW9uOnVpbnQzMl90IC0+IFVzZXMgdGhpcyBhcyB0aGUgZmls
ZSB2ZXJzaW9uLgorfTsKKworZW51bSBBcnJheUJ1ZmZlclZpZXdTdWJUYWcgeworICAgIEJ5dGVB
cnJheVRhZyA9ICdiJywKKyAgICBVbnNpZ25lZEJ5dGVBcnJheVRhZyA9ICdCJywKKyAgICBTaG9y
dEFycmF5VGFnID0gJ3cnLAorICAgIFVuc2lnbmVkU2hvcnRBcnJheVRhZyA9ICdXJywKKyAgICBJ
bnRBcnJheVRhZyA9ICdkJywKKyAgICBVbnNpZ25lZEludEFycmF5VGFnID0gJ0QnLAorICAgIEZs
b2F0QXJyYXlUYWcgPSAnZicsCisgICAgRG91YmxlQXJyYXlUYWcgPSAnRicsCisgICAgRGF0YVZp
ZXdUYWcgPSAnPycKIH07CiAKIHN0YXRpYyBib29sIHNob3VsZENoZWNrRm9yQ3ljbGVzKGludCBk
ZXB0aCkKQEAgLTkyLDYgKzIyMyw5IEBAIHN0YXRpYyBib29sIHNob3VsZENoZWNrRm9yQ3ljbGVz
KGludCBkZXB0aCkKICAgICByZXR1cm4gIShkZXB0aCAmIChkZXB0aCAtIDEpKTsKIH0KIAorLy8g
SW5jcmVtZW50IHRoaXMgZm9yIGVhY2ggaW5jb21wYXRpYmxlIGNoYW5nZSB0byB0aGUgd2lyZSBm
b3JtYXQuCitzdGF0aWMgY29uc3QgdWludDMyX3Qgd2lyZUZvcm1hdFZlcnNpb24gPSAxOworCiBz
dGF0aWMgY29uc3QgaW50IG1heERlcHRoID0gMjAwMDA7CiAKIC8vIFZhckludCBlbmNvZGluZyBj
b25zdGFudHMuCkBAIC0xNTksNiArMjkzLDEyIEBAIHB1YmxpYzoKICAgICAgICAgZG9Xcml0ZVdl
YkNvcmVTdHJpbmcoc3RyaW5nKTsKICAgICB9CiAKKyAgICB2b2lkIHdyaXRlVmVyc2lvbigpCisg
ICAgeworICAgICAgICBhcHBlbmQoVmVyc2lvblRhZyk7CisgICAgICAgIGRvV3JpdGVVaW50MzIo
d2lyZUZvcm1hdFZlcnNpb24pOworICAgIH0KKwogICAgIHZvaWQgd3JpdGVJbnQzMihpbnQzMl90
IHZhbHVlKQogICAgIHsKICAgICAgICAgYXBwZW5kKEludDMyVGFnKTsKQEAgLTIxMSw2ICszNTEs
NDIgQEAgcHVibGljOgogICAgICAgICB9CiAgICAgfQogCisgICAgdm9pZCB3cml0ZUFycmF5QnVm
ZmVyKGNvbnN0IEFycmF5QnVmZmVyJiBhcnJheUJ1ZmZlcikKKyAgICB7CisgICAgICAgIGFwcGVu
ZChBcnJheUJ1ZmZlclRhZyk7CisgICAgICAgIGRvV3JpdGVBcnJheUJ1ZmZlcihhcnJheUJ1ZmZl
cik7CisgICAgfQorCisgICAgdm9pZCB3cml0ZUFycmF5QnVmZmVyVmlldyhjb25zdCBBcnJheUJ1
ZmZlclZpZXcmIGFycmF5QnVmZmVyVmlldykKKyAgICB7CisgICAgICAgIGFwcGVuZChBcnJheUJ1
ZmZlclZpZXdUYWcpOworI2lmbmRlZiBOREVCVUcKKyAgICAgICAgY29uc3QgQXJyYXlCdWZmZXIm
IGFycmF5QnVmZmVyID0gKmFycmF5QnVmZmVyVmlldy5idWZmZXIoKTsKKyAgICAgICAgQVNTRVJU
KHN0YXRpY19jYXN0PGNvbnN0IHVpbnQ4X3QqPihhcnJheUJ1ZmZlci5kYXRhKCkpICsgYXJyYXlC
dWZmZXJWaWV3LmJ5dGVPZmZzZXQoKSA9PQorICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8Y29u
c3QgdWludDhfdCo+KGFycmF5QnVmZmVyVmlldy5iYXNlQWRkcmVzcygpKSk7CisjZW5kaWYKKyAg
ICAgICAgaWYgKGFycmF5QnVmZmVyVmlldy5pc0J5dGVBcnJheSgpKQorICAgICAgICAgICAgYXBw
ZW5kKEJ5dGVBcnJheVRhZyk7CisgICAgICAgIGVsc2UgaWYgKGFycmF5QnVmZmVyVmlldy5pc1Vu
c2lnbmVkQnl0ZUFycmF5KCkpCisgICAgICAgICAgICBhcHBlbmQoVW5zaWduZWRCeXRlQXJyYXlU
YWcpOworICAgICAgICBlbHNlIGlmIChhcnJheUJ1ZmZlclZpZXcuaXNTaG9ydEFycmF5KCkpCisg
ICAgICAgICAgICBhcHBlbmQoU2hvcnRBcnJheVRhZyk7CisgICAgICAgIGVsc2UgaWYgKGFycmF5
QnVmZmVyVmlldy5pc1Vuc2lnbmVkU2hvcnRBcnJheSgpKQorICAgICAgICAgICAgYXBwZW5kKFVu
c2lnbmVkU2hvcnRBcnJheVRhZyk7CisgICAgICAgIGVsc2UgaWYgKGFycmF5QnVmZmVyVmlldy5p
c0ludEFycmF5KCkpCisgICAgICAgICAgICBhcHBlbmQoSW50QXJyYXlUYWcpOworICAgICAgICBl
bHNlIGlmIChhcnJheUJ1ZmZlclZpZXcuaXNVbnNpZ25lZEludEFycmF5KCkpCisgICAgICAgICAg
ICBhcHBlbmQoVW5zaWduZWRJbnRBcnJheVRhZyk7CisgICAgICAgIGVsc2UgaWYgKGFycmF5QnVm
ZmVyVmlldy5pc0Zsb2F0QXJyYXkoKSkKKyAgICAgICAgICAgIGFwcGVuZChGbG9hdEFycmF5VGFn
KTsKKyAgICAgICAgZWxzZSBpZiAoYXJyYXlCdWZmZXJWaWV3LmlzRG91YmxlQXJyYXkoKSkKKyAg
ICAgICAgICAgIGFwcGVuZChEb3VibGVBcnJheVRhZyk7CisgICAgICAgIGVsc2UgaWYgKGFycmF5
QnVmZmVyVmlldy5pc0RhdGFWaWV3KCkpCisgICAgICAgICAgICBhcHBlbmQoRGF0YVZpZXdUYWcp
OworICAgICAgICBkb1dyaXRlVWludDMyKGFycmF5QnVmZmVyVmlldy5ieXRlT2Zmc2V0KCkpOwor
ICAgICAgICBkb1dyaXRlVWludDMyKGFycmF5QnVmZmVyVmlldy5ieXRlTGVuZ3RoKCkpOworICAg
IH0KKwogICAgIHZvaWQgd3JpdGVJbWFnZURhdGEodWludDMyX3Qgd2lkdGgsIHVpbnQzMl90IGhl
aWdodCwgY29uc3QgdWludDhfdCogcGl4ZWxEYXRhLCB1aW50MzJfdCBwaXhlbERhdGFMZW5ndGgp
CiAgICAgewogICAgICAgICBhcHBlbmQoSW1hZ2VEYXRhVGFnKTsKQEAgLTIzNCw2ICs0MTAsMTIg
QEAgcHVibGljOgogICAgICAgICBkb1dyaXRlVWludDMyKGxlbmd0aCk7CiAgICAgfQogCisgICAg
dm9pZCB3cml0ZU9iamVjdE9mZnNldCh1aW50MzJfdCBvZmZzZXQpCisgICAgeworICAgICAgICBh
cHBlbmQoT2JqZWN0UmVmZXJlbmNlVGFnKTsKKyAgICAgICAgZG9Xcml0ZVVpbnQzMihvZmZzZXQp
OworICAgIH0KKwogICAgIHZvaWQgd3JpdGVPYmplY3QodWludDMyX3QgbnVtUHJvcGVydGllcykK
ICAgICB7CiAgICAgICAgIGFwcGVuZChPYmplY3RUYWcpOwpAQCAtMjUzLDcgKzQzNSwzMSBAQCBw
dWJsaWM6CiAgICAgICAgIHJldHVybiBtX2J1ZmZlcjsKICAgICB9CiAKKyAgICB2b2lkIHdyaXRl
Q2hlY2tSZWYodWludDMyX3QgbnVtYmVyT2ZSZWZzKQorICAgIHsKKyAgICAgICAgYXBwZW5kKENo
ZWNrUmVmVGFnKTsKKyAgICAgICAgZG9Xcml0ZVVpbnQzMihudW1iZXJPZlJlZnMpOworICAgIH0K
KworICAgIHZvaWQgd3JpdGVHZW5lcmF0ZUZyZXNoT2JqZWN0KCkKKyAgICB7CisgICAgICAgIGFw
cGVuZChHZW5lcmF0ZUZyZXNoT2JqZWN0VGFnKTsKKyAgICB9CisKKyAgICB2b2lkIHdyaXRlR2Vu
ZXJhdGVGcmVzaEFycmF5KHVpbnQzMl90IGxlbmd0aCkKKyAgICB7CisgICAgICAgIGFwcGVuZChH
ZW5lcmF0ZUZyZXNoQXJyYXlUYWcpOworICAgICAgICBkb1dyaXRlVWludDMyKGxlbmd0aCk7Cisg
ICAgfQorCiBwcml2YXRlOgorICAgIHZvaWQgZG9Xcml0ZUFycmF5QnVmZmVyKGNvbnN0IEFycmF5
QnVmZmVyJiBhcnJheUJ1ZmZlcikKKyAgICB7CisgICAgICAgIHVpbnQzMl90IGJ5dGVMZW5ndGgg
PSBhcnJheUJ1ZmZlci5ieXRlTGVuZ3RoKCk7CisgICAgICAgIGRvV3JpdGVVaW50MzIoYnl0ZUxl
bmd0aCk7CisgICAgICAgIGFwcGVuZChzdGF0aWNfY2FzdDxjb25zdCB1aW50OF90Kj4oYXJyYXlC
dWZmZXIuZGF0YSgpKSwgYnl0ZUxlbmd0aCk7CisgICAgfQorCiAgICAgdm9pZCBkb1dyaXRlU3Ry
aW5nKGNvbnN0IGNoYXIqIGRhdGEsIGludCBsZW5ndGgpCiAgICAgewogICAgICAgICBkb1dyaXRl
VWludDMyKHN0YXRpY19jYXN0PHVpbnQzMl90PihsZW5ndGgpKTsKQEAgLTM0MCw2ICs1NDYsNyBA
QCBwdWJsaWM6CiAgICAgZW51bSBTdGF0dXMgewogICAgICAgICBTdWNjZXNzLAogICAgICAgICBJ
bnB1dEVycm9yLAorICAgICAgICBEYXRhQ2xvbmVFcnJvciwKICAgICAgICAgSlNFeGNlcHRpb24s
CiAgICAgICAgIEpTRmFpbHVyZQogICAgIH07CkBAIC0zNDgsNyArNTU1LDkgQEAgcHVibGljOgog
ICAgICAgICA6IG1fd3JpdGVyKHdyaXRlcikKICAgICAgICAgLCBtX3RyeUNhdGNoKHRyeUNhdGNo
KQogICAgICAgICAsIG1fZGVwdGgoMCkKKyAgICAgICAgLCBtX2V4ZWNEZXB0aCgwKQogICAgICAg
ICAsIG1fc3RhdHVzKFN1Y2Nlc3MpCisgICAgICAgICwgbV9uZXh0T2JqZWN0SWQoMCkKICAgICB7
CiAgICAgICAgIEFTU0VSVCghdHJ5Q2F0Y2guSGFzQ2F1Z2h0KCkpOwogICAgIH0KQEAgLTM1Niw2
ICs1NjUsNyBAQCBwdWJsaWM6CiAgICAgU3RhdHVzIHNlcmlhbGl6ZSh2ODo6SGFuZGxlPHY4OjpW
YWx1ZT4gdmFsdWUpCiAgICAgewogICAgICAgICB2ODo6SGFuZGxlU2NvcGUgc2NvcGU7CisgICAg
ICAgIG1fd3JpdGVyLndyaXRlVmVyc2lvbigpOwogICAgICAgICBTdGF0ZUJhc2UqIHN0YXRlID0g
ZG9TZXJpYWxpemUodmFsdWUsIDApOwogICAgICAgICB3aGlsZSAoc3RhdGUpCiAgICAgICAgICAg
ICBzdGF0ZSA9IHN0YXRlLT5hZHZhbmNlKCp0aGlzKTsKQEAgLTM2Myw3ICs1NzMsNiBAQCBwdWJs
aWM6CiAgICAgfQogCiAgICAgLy8gRnVuY3Rpb25zIHVzZWQgYnkgc2VyaWFsaXphdGlvbiBzdGF0
ZXMuCi0KICAgICBTdGF0ZUJhc2UqIGRvU2VyaWFsaXplKHY4OjpIYW5kbGU8djg6OlZhbHVlPiB2
YWx1ZSwgU3RhdGVCYXNlKiBuZXh0KTsKIAogICAgIFN0YXRlQmFzZSogY2hlY2tFeGNlcHRpb24o
U3RhdGVCYXNlKiBzdGF0ZSkKQEAgLTQxMSw2ICs2MjAsMTAgQEAgcHJpdmF0ZToKICAgICAgICAg
Ly8gc3RhdGUuCiAgICAgICAgIHZpcnR1YWwgU3RhdGVCYXNlKiBhZHZhbmNlKFNlcmlhbGl6ZXIm
KSA9IDA7CiAKKyAgICAgICAgLy8gUmV0dXJucyAxIGlmIHRoaXMgc3RhdGUgaXMgY3VycmVudGx5
IHNlcmlhbGl6aW5nIGEgcHJvcGVydHkKKyAgICAgICAgLy8gdmlhIGFuIGFjY2Vzc29yIGFuZCAw
IG90aGVyd2lzZS4KKyAgICAgICAgdmlydHVhbCB1aW50MzJfdCBleGVjRGVwdGgoKSBjb25zdCB7
IHJldHVybiAwOyB9CisKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIFN0YXRlQmFzZSh2ODo6SGFu
ZGxlPHY4OjpWYWx1ZT4gY29tcG9zaXRlLCBTdGF0ZUJhc2UqIG5leHQpCiAgICAgICAgICAgICA6
IG1fY29tcG9zaXRlKGNvbXBvc2l0ZSkKQEAgLTQ4NSwxMSArNjk4LDEzIEBAIHByaXZhdGU6CiAg
ICAgICAgICAgICAsIG1faW5kZXgoMCkKICAgICAgICAgICAgICwgbV9udW1TZXJpYWxpemVkUHJv
cGVydGllcygwKQogICAgICAgICAgICAgLCBtX25hbWVEb25lKGZhbHNlKQorICAgICAgICAgICAg
LCBtX3NlcmlhbGl6aW5nQWNjZXNzb3IoZmFsc2UpCiAgICAgICAgIHsKICAgICAgICAgfQogCiAg
ICAgICAgIHZpcnR1YWwgU3RhdGVCYXNlKiBhZHZhbmNlKFNlcmlhbGl6ZXImIHNlcmlhbGl6ZXIp
CiAgICAgICAgIHsKKyAgICAgICAgICAgIG1fc2VyaWFsaXppbmdBY2Nlc3NvciA9IGZhbHNlOwog
ICAgICAgICAgICAgaWYgKCFtX2luZGV4KSB7CiAgICAgICAgICAgICAgICAgbV9wcm9wZXJ0eU5h
bWVzID0gY29tcG9zaXRlKCktPkdldFByb3BlcnR5TmFtZXMoKTsKICAgICAgICAgICAgICAgICBp
ZiAoU3RhdGVCYXNlKiBuZXdTdGF0ZSA9IHNlcmlhbGl6ZXIuY2hlY2tFeGNlcHRpb24odGhpcykp
CkBAIC00OTgsNiArNzEzLDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IHNlcmlhbGl6ZXIucmVwb3J0RmFpbHVyZSh0aGlzKTsKICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgIHdoaWxlIChtX2luZGV4IDwgbV9wcm9wZXJ0eU5hbWVzLT5MZW5ndGgoKSkgeworICAgICAg
ICAgICAgICAgIGJvb2wgaXNBY2Nlc3NvciA9IGZhbHNlOwogICAgICAgICAgICAgICAgIGlmICgh
bV9uYW1lRG9uZSkgewogICAgICAgICAgICAgICAgICAgICB2ODo6TG9jYWw8djg6OlZhbHVlPiBw
cm9wZXJ0eU5hbWUgPSBtX3Byb3BlcnR5TmFtZXMtPkdldChtX2luZGV4KTsKICAgICAgICAgICAg
ICAgICAgICAgaWYgKFN0YXRlQmFzZSogbmV3U3RhdGUgPSBzZXJpYWxpemVyLmNoZWNrRXhjZXB0
aW9uKHRoaXMpKQpAQCAtNTEwLDYgKzcyNiw5IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAg
ICAgIGJvb2wgaGFzSW5kZXhlZFByb3BlcnR5ID0gIWhhc1N0cmluZ1Byb3BlcnR5ICYmIHByb3Bl
cnR5TmFtZS0+SXNVaW50MzIoKSAmJiBjb21wb3NpdGUoKS0+SGFzUmVhbEluZGV4ZWRQcm9wZXJ0
eShwcm9wZXJ0eU5hbWUtPlVpbnQzMlZhbHVlKCkpOwogICAgICAgICAgICAgICAgICAgICBpZiAo
U3RhdGVCYXNlKiBuZXdTdGF0ZSA9IHNlcmlhbGl6ZXIuY2hlY2tFeGNlcHRpb24odGhpcykpCiAg
ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3U3RhdGU7CisgICAgICAgICAgICAgICAg
ICAgIGlzQWNjZXNzb3IgPSBoYXNTdHJpbmdQcm9wZXJ0eSAmJiBjb21wb3NpdGUoKS0+SGFzUmVh
bE5hbWVkQ2FsbGJhY2tQcm9wZXJ0eShwcm9wZXJ0eU5hbWUuQXM8djg6OlN0cmluZz4oKSk7Cisg
ICAgICAgICAgICAgICAgICAgIGlmIChTdGF0ZUJhc2UqIG5ld1N0YXRlID0gc2VyaWFsaXplci5j
aGVja0V4Y2VwdGlvbih0aGlzKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXdT
dGF0ZTsKICAgICAgICAgICAgICAgICAgICAgaWYgKGhhc1N0cmluZ1Byb3BlcnR5IHx8IGhhc0lu
ZGV4ZWRQcm9wZXJ0eSkKICAgICAgICAgICAgICAgICAgICAgICAgIG1fcHJvcGVydHlOYW1lID0g
cHJvcGVydHlOYW1lOwogICAgICAgICAgICAgICAgICAgICBlbHNlIHsKQEAgLTUzMCwxMiArNzQ5
LDE2IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgbV9wcm9wZXJ0eU5hbWUuQ2xlYXIoKTsK
ICAgICAgICAgICAgICAgICArK21faW5kZXg7CiAgICAgICAgICAgICAgICAgKyttX251bVNlcmlh
bGl6ZWRQcm9wZXJ0aWVzOworICAgICAgICAgICAgICAgIG1fc2VyaWFsaXppbmdBY2Nlc3NvciA9
IGlzQWNjZXNzb3I7CiAgICAgICAgICAgICAgICAgaWYgKFN0YXRlQmFzZSogbmV3U3RhdGUgPSBz
ZXJpYWxpemVyLmRvU2VyaWFsaXplKHZhbHVlLCB0aGlzKSkKICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIG5ld1N0YXRlOworICAgICAgICAgICAgICAgIG1fc2VyaWFsaXppbmdBY2Nlc3NvciA9
IGZhbHNlOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgcmV0dXJuIG9iamVjdERvbmUobV9u
dW1TZXJpYWxpemVkUHJvcGVydGllcywgc2VyaWFsaXplcik7CiAgICAgICAgIH0KIAorICAgICAg
ICB2aXJ0dWFsIHVpbnQzMl90IGV4ZWNEZXB0aCgpIGNvbnN0IHsgcmV0dXJuIG1fc2VyaWFsaXpp
bmdBY2Nlc3NvciA/IDEgOiAwOyB9CisKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIHZpcnR1YWwg
U3RhdGVCYXNlKiBvYmplY3REb25lKHVuc2lnbmVkIG51bVByb3BlcnRpZXMsIFNlcmlhbGl6ZXIm
KSA9IDA7CiAKQEAgLTU0NSw2ICs3NjgsNyBAQCBwcml2YXRlOgogICAgICAgICB1bnNpZ25lZCBt
X2luZGV4OwogICAgICAgICB1bnNpZ25lZCBtX251bVNlcmlhbGl6ZWRQcm9wZXJ0aWVzOwogICAg
ICAgICBib29sIG1fbmFtZURvbmU7CisgICAgICAgIGJvb2wgbV9zZXJpYWxpemluZ0FjY2Vzc29y
OwogICAgIH07CiAKICAgICBjbGFzcyBPYmplY3RTdGF0ZSA6IHB1YmxpYyBBYnN0cmFjdE9iamVj
dFN0YXRlIHsKQEAgLTU3NSw5ICs3OTksMTYgQEAgcHJpdmF0ZToKICAgICAgICAgfQogICAgIH07
CiAKKyAgICB1aW50MzJfdCBleGVjRGVwdGgoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJu
IG1fZXhlY0RlcHRoOworICAgIH0KKwogICAgIFN0YXRlQmFzZSogcHVzaChTdGF0ZUJhc2UqIHN0
YXRlKQogICAgIHsKICAgICAgICAgQVNTRVJUKHN0YXRlKTsKKyAgICAgICAgaWYgKHN0YXRlLT5u
ZXh0U3RhdGUoKSkKKyAgICAgICAgICAgIG1fZXhlY0RlcHRoICs9IHN0YXRlLT5uZXh0U3RhdGUo
KS0+ZXhlY0RlcHRoKCk7CiAgICAgICAgICsrbV9kZXB0aDsKICAgICAgICAgcmV0dXJuIGNoZWNr
Q29tcG9zaXRlKHN0YXRlKSA/IHN0YXRlIDogaGFuZGxlRXJyb3IoSW5wdXRFcnJvciwgc3RhdGUp
OwogICAgIH0KQEAgLTU4Nyw2ICs4MTgsOCBAQCBwcml2YXRlOgogICAgICAgICBBU1NFUlQoc3Rh
dGUpOwogICAgICAgICAtLW1fZGVwdGg7CiAgICAgICAgIFN0YXRlQmFzZSogbmV4dCA9IHN0YXRl
LT5uZXh0U3RhdGUoKTsKKyAgICAgICAgaWYgKG5leHQpCisgICAgICAgICAgICBtX2V4ZWNEZXB0
aCAtPSBuZXh0LT5leGVjRGVwdGgoKTsKICAgICAgICAgZGVsZXRlIHN0YXRlOwogICAgICAgICBy
ZXR1cm4gbmV4dDsKICAgICB9CkBAIC01OTksNiArODMyLDggQEAgcHJpdmF0ZToKICAgICAgICAg
ICAgIFN0YXRlQmFzZSogdG1wID0gc3RhdGUtPm5leHRTdGF0ZSgpOwogICAgICAgICAgICAgZGVs
ZXRlIHN0YXRlOwogICAgICAgICAgICAgc3RhdGUgPSB0bXA7CisgICAgICAgICAgICBpZiAoc3Rh
dGUpCisgICAgICAgICAgICAgICAgbV9leGVjRGVwdGggLT0gc3RhdGUtPmV4ZWNEZXB0aCgpOwog
ICAgICAgICB9CiAgICAgICAgIHJldHVybiBuZXcgRXJyb3JTdGF0ZTsKICAgICB9CkBAIC02MTgs
NiArODUzLDExIEBAIHByaXZhdGU6CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAorICAg
IHZvaWQgd3JpdGVOdWxsKCkKKyAgICB7CisgICAgICAgIG1fd3JpdGVyLndyaXRlTnVsbCgpOwor
ICAgIH0KKwogICAgIHZvaWQgd3JpdGVTdHJpbmcodjg6OkhhbmRsZTx2ODo6VmFsdWU+IHZhbHVl
KQogICAgIHsKICAgICAgICAgdjg6OlN0cmluZzo6VXRmOFZhbHVlIHN0cmluZ1ZhbHVlKHZhbHVl
KTsKQEAgLTY2Myw2ICs5MDMsMzUgQEAgcHJpdmF0ZToKICAgICAgICAgbV93cml0ZXIud3JpdGVS
ZWdFeHAocmVnRXhwLT5HZXRTb3VyY2UoKSwgcmVnRXhwLT5HZXRGbGFncygpKTsKICAgICB9CiAK
KyAgICBTdGF0ZUJhc2UqIHdyaXRlQW5kR3JleUFycmF5QnVmZmVyVmlldyh2ODo6SGFuZGxlPHY4
OjpPYmplY3Q+IG9iamVjdCwgU3RhdGVCYXNlKiBuZXh0KQorICAgIHsKKyAgICAgICAgQVNTRVJU
KCFvYmplY3QuSXNFbXB0eSgpKTsKKyAgICAgICAgQXJyYXlCdWZmZXJWaWV3KiBhcnJheUJ1ZmZl
clZpZXcgPSBWOEFycmF5QnVmZmVyVmlldzo6dG9OYXRpdmUob2JqZWN0KTsKKyAgICAgICAgaWYg
KCFhcnJheUJ1ZmZlclZpZXcpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHY4
OjpIYW5kbGU8djg6OlZhbHVlPiB1bmRlcmx5aW5nQnVmZmVyID0gdG9WOChhcnJheUJ1ZmZlclZp
ZXctPmJ1ZmZlcigpKTsKKyAgICAgICAgaWYgKHVuZGVybHlpbmdCdWZmZXIuSXNFbXB0eSgpKQor
ICAgICAgICAgICAgcmV0dXJuIGhhbmRsZUVycm9yKERhdGFDbG9uZUVycm9yLCBuZXh0KTsKKyAg
ICAgICAgU3RhdGVCYXNlKiBzdGF0ZU91dCA9IGRvU2VyaWFsaXplKHVuZGVybHlpbmdCdWZmZXIs
IDApOworICAgICAgICBpZiAoc3RhdGVPdXQpCisgICAgICAgICAgICByZXR1cm4gaGFuZGxlRXJy
b3IoRGF0YUNsb25lRXJyb3IsIG5leHQpOworICAgICAgICBtX3dyaXRlci53cml0ZUFycmF5QnVm
ZmVyVmlldygqYXJyYXlCdWZmZXJWaWV3KTsKKyAgICAgICAgLy8gVGhpcyBzaG91bGQgYmUgc2Fm
ZTogd2Ugc2VyaWFsaXplIHNvbWV0aGluZyB0aGF0IHdlIGtub3cgdG8gYmUgYSB3cmFwcGVyIChz
ZWUKKyAgICAgICAgLy8gdGhlIHRvVjggY2FsbCBhYm92ZSksIHNvIHRoZSBjYWxsIHRvIGRvU2Vy
aWFsaXplIGFib3ZlIHNob3VsZCBuZWl0aGVyIGNhdXNlCisgICAgICAgIC8vIHRoZSBzdGFjayB0
byBvdmVyZmxvdyBub3Igc2hvdWxkIGl0IGhhdmUgdGhlIHBvdGVudGlhbCB0byByZWFjaCB0aGlz
CisgICAgICAgIC8vIEFycmF5QnVmZmVyVmlldyBhZ2Fpbi4KKyAgICAgICAgZ3JleU9iamVjdChv
YmplY3QpOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICB2b2lkIHdyaXRlQXJyYXlC
dWZmZXIodjg6OkhhbmRsZTx2ODo6VmFsdWU+IHZhbHVlKQorICAgIHsKKyAgICAgICAgQXJyYXlC
dWZmZXIqIGFycmF5QnVmZmVyID0gVjhBcnJheUJ1ZmZlcjo6dG9OYXRpdmUodmFsdWUuQXM8djg6
Ok9iamVjdD4oKSk7CisgICAgICAgIGlmICghYXJyYXlCdWZmZXIpCisgICAgICAgICAgICByZXR1
cm47CisgICAgICAgIG1fd3JpdGVyLndyaXRlQXJyYXlCdWZmZXIoKmFycmF5QnVmZmVyKTsKKyAg
ICB9CisKICAgICBzdGF0aWMgU3RhdGVCYXNlKiBuZXdBcnJheVN0YXRlKHY4OjpIYW5kbGU8djg6
OkFycmF5PiBhcnJheSwgU3RhdGVCYXNlKiBuZXh0KQogICAgIHsKICAgICAgICAgLy8gRklYTUU6
IHVzZSBwbGFpbiBBcnJheSBzdGF0ZSB3aGVuIHdlIGNhbiBxdWlja2x5IGNoZWNrIHRoYXQKQEAg
LTY3NiwyMCArOTQ1LDQzIEBAIHByaXZhdGU6CiAgICAgICAgIHJldHVybiBuZXcgT2JqZWN0U3Rh
dGUob2JqZWN0LCBuZXh0KTsKICAgICB9CiAKKyAgICAvLyBNYXJrcyBvYmplY3QgYXMgaGF2aW5n
IGJlZW4gdmlzaXRlZCBieSB0aGUgc2VyaWFsaXplciBhbmQgYXNzaWducyBpdCBhIHVuaXF1ZSBv
YmplY3QgSUQuCisgICAgLy8gQW4gb2JqZWN0IG1heSBvbmx5IGJlIGdyZXllZCBvbmNlLgorICAg
IHZvaWQgZ3JleU9iamVjdChjb25zdCB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+JiBvYmplY3QpCisg
ICAgeworICAgICAgICBBU1NFUlQoIW1fb2JqZWN0UG9vbC5jb250YWlucyhvYmplY3QpKTsKKyAg
ICAgICAgdWludDMyX3Qgb2JqZWN0SWQgPSBtX25leHRPYmplY3RJZCsrOworICAgICAgICBtX29i
amVjdFBvb2wuc2V0KG9iamVjdCwgb2JqZWN0SWQpOworICAgIH0KKwogICAgIFdyaXRlciYgbV93
cml0ZXI7CiAgICAgdjg6OlRyeUNhdGNoJiBtX3RyeUNhdGNoOwogICAgIGludCBtX2RlcHRoOwor
ICAgIGludCBtX2V4ZWNEZXB0aDsKICAgICBTdGF0dXMgbV9zdGF0dXM7CisgICAgdHlwZWRlZiBW
OE9iamVjdE1hcDx2ODo6T2JqZWN0LCB1aW50MzJfdD4gT2JqZWN0UG9vbDsKKyAgICBPYmplY3RQ
b29sIG1fb2JqZWN0UG9vbDsKKyAgICB1aW50MzJfdCBtX25leHRPYmplY3RJZDsKIH07CiAKIFNl
cmlhbGl6ZXI6OlN0YXRlQmFzZSogU2VyaWFsaXplcjo6ZG9TZXJpYWxpemUodjg6OkhhbmRsZTx2
ODo6VmFsdWU+IHZhbHVlLCBTdGF0ZUJhc2UqIG5leHQpCiB7Ci0gICAgaWYgKHZhbHVlLklzRW1w
dHkoKSkKKyAgICBpZiAobV9leGVjRGVwdGggKyAobmV4dCA/IG5leHQtPmV4ZWNEZXB0aCgpIDog
MCkgPiAxKSB7CisgICAgICAgIG1fd3JpdGVyLndyaXRlTnVsbCgpOworICAgICAgICByZXR1cm4g
MDsKKyAgICB9CisgICAgbV93cml0ZXIud3JpdGVDaGVja1JlZihtX25leHRPYmplY3RJZCk7Cisg
ICAgdWludDMyX3Qgb2JqZWN0UG9vbE9mZnNldDsKKyAgICBpZiAoKHZhbHVlLT5Jc09iamVjdCgp
IHx8IHZhbHVlLT5Jc0RhdGUoKSB8fCB2YWx1ZS0+SXNSZWdFeHAoKSkKKyAgICAgICAgJiYgbV9v
YmplY3RQb29sLnRyeUdldCh2YWx1ZS5Bczx2ODo6T2JqZWN0PigpLCAmb2JqZWN0UG9vbE9mZnNl
dCkpIHsKKyAgICAgICAgQVNTRVJUKCF2YWx1ZS0+SXNTdHJpbmcoKSk7CisgICAgICAgIG1fd3Jp
dGVyLndyaXRlT2JqZWN0T2Zmc2V0KG9iamVjdFBvb2xPZmZzZXQpOworICAgIH0gZWxzZSBpZiAo
dmFsdWUuSXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gcmVwb3J0RmFpbHVyZShuZXh0KTsKLSAg
ICBpZiAodmFsdWUtPklzVW5kZWZpbmVkKCkpCisgICAgZWxzZSBpZiAodmFsdWUtPklzVW5kZWZp
bmVkKCkpCiAgICAgICAgIG1fd3JpdGVyLndyaXRlVW5kZWZpbmVkKCk7CiAgICAgZWxzZSBpZiAo
dmFsdWUtPklzTnVsbCgpKQotICAgICAgICBtX3dyaXRlci53cml0ZU51bGwoKTsKKyAgICAgICAg
d3JpdGVOdWxsKCk7CiAgICAgZWxzZSBpZiAodmFsdWUtPklzVHJ1ZSgpKQogICAgICAgICBtX3dy
aXRlci53cml0ZVRydWUoKTsKICAgICBlbHNlIGlmICh2YWx1ZS0+SXNGYWxzZSgpKQpAQCAtNjk4
LDI2ICs5OTAsNDMgQEAgU2VyaWFsaXplcjo6U3RhdGVCYXNlKiBTZXJpYWxpemVyOjpkb1Nlcmlh
bGl6ZSh2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdmFsdWUsIFN0YXQKICAgICAgICAgbV93cml0ZXIu
d3JpdGVJbnQzMih2YWx1ZS0+SW50MzJWYWx1ZSgpKTsKICAgICBlbHNlIGlmICh2YWx1ZS0+SXNV
aW50MzIoKSkKICAgICAgICAgbV93cml0ZXIud3JpdGVVaW50MzIodmFsdWUtPlVpbnQzMlZhbHVl
KCkpOwotICAgIGVsc2UgaWYgKHZhbHVlLT5Jc0RhdGUoKSkKLSAgICAgICAgbV93cml0ZXIud3Jp
dGVEYXRlKHZhbHVlLT5OdW1iZXJWYWx1ZSgpKTsKICAgICBlbHNlIGlmICh2YWx1ZS0+SXNOdW1i
ZXIoKSkKICAgICAgICAgbV93cml0ZXIud3JpdGVOdW1iZXIodmFsdWUuQXM8djg6Ok51bWJlcj4o
KS0+VmFsdWUoKSk7CisgICAgZWxzZSBpZiAoVjhBcnJheUJ1ZmZlclZpZXc6Okhhc0luc3RhbmNl
KHZhbHVlKSkKKyAgICAgICAgcmV0dXJuIHdyaXRlQW5kR3JleUFycmF5QnVmZmVyVmlldyh2YWx1
ZS5Bczx2ODo6T2JqZWN0PigpLCBuZXh0KTsKICAgICBlbHNlIGlmICh2YWx1ZS0+SXNTdHJpbmco
KSkKICAgICAgICAgd3JpdGVTdHJpbmcodmFsdWUpOwotICAgIGVsc2UgaWYgKHZhbHVlLT5Jc0Fy
cmF5KCkpCi0gICAgICAgIHJldHVybiBwdXNoKG5ld0FycmF5U3RhdGUodmFsdWUuQXM8djg6OkFy
cmF5PigpLCBuZXh0KSk7Ci0gICAgZWxzZSBpZiAoVjhGaWxlOjpIYXNJbnN0YW5jZSh2YWx1ZSkp
Ci0gICAgICAgIHdyaXRlRmlsZSh2YWx1ZSk7Ci0gICAgZWxzZSBpZiAoVjhCbG9iOjpIYXNJbnN0
YW5jZSh2YWx1ZSkpCi0gICAgICAgIHdyaXRlQmxvYih2YWx1ZSk7Ci0gICAgZWxzZSBpZiAoVjhG
aWxlTGlzdDo6SGFzSW5zdGFuY2UodmFsdWUpKQotICAgICAgICB3cml0ZUZpbGVMaXN0KHZhbHVl
KTsKLSAgICBlbHNlIGlmIChWOEltYWdlRGF0YTo6SGFzSW5zdGFuY2UodmFsdWUpKQotICAgICAg
ICB3cml0ZUltYWdlRGF0YSh2YWx1ZSk7Ci0gICAgZWxzZSBpZiAodmFsdWUtPklzUmVnRXhwKCkp
Ci0gICAgICAgIHdyaXRlUmVnRXhwKHZhbHVlKTsKLSAgICBlbHNlIGlmICh2YWx1ZS0+SXNPYmpl
Y3QoKSkKLSAgICAgICAgcmV0dXJuIHB1c2gobmV3T2JqZWN0U3RhdGUodmFsdWUuQXM8djg6Ok9i
amVjdD4oKSwgbmV4dCkpOworICAgIGVsc2UgeworICAgICAgICB2ODo6SGFuZGxlPHY4OjpPYmpl
Y3Q+IGpzT2JqZWN0ID0gdmFsdWUuQXM8djg6Ok9iamVjdD4oKTsKKyAgICAgICAgaWYgKGpzT2Jq
ZWN0LklzRW1wdHkoKSkKKyAgICAgICAgICAgIHJldHVybiBoYW5kbGVFcnJvcihEYXRhQ2xvbmVF
cnJvciwgbmV4dCk7CisgICAgICAgIGdyZXlPYmplY3QoanNPYmplY3QpOworICAgICAgICBpZiAo
dmFsdWUtPklzRGF0ZSgpKQorICAgICAgICAgICAgbV93cml0ZXIud3JpdGVEYXRlKHZhbHVlLT5O
dW1iZXJWYWx1ZSgpKTsKKyAgICAgICAgZWxzZSBpZiAodmFsdWUtPklzQXJyYXkoKSkgeworICAg
ICAgICAgICAgbV93cml0ZXIud3JpdGVHZW5lcmF0ZUZyZXNoQXJyYXkodmFsdWUuQXM8djg6OkFy
cmF5PigpLT5MZW5ndGgoKSk7CisgICAgICAgICAgICByZXR1cm4gcHVzaChuZXdBcnJheVN0YXRl
KHZhbHVlLkFzPHY4OjpBcnJheT4oKSwgbmV4dCkpOworICAgICAgICB9IGVsc2UgaWYgKFY4Rmls
ZTo6SGFzSW5zdGFuY2UodmFsdWUpKQorICAgICAgICAgICAgd3JpdGVGaWxlKHZhbHVlKTsKKyAg
ICAgICAgZWxzZSBpZiAoVjhCbG9iOjpIYXNJbnN0YW5jZSh2YWx1ZSkpCisgICAgICAgICAgICB3
cml0ZUJsb2IodmFsdWUpOworICAgICAgICBlbHNlIGlmIChWOEZpbGVMaXN0OjpIYXNJbnN0YW5j
ZSh2YWx1ZSkpCisgICAgICAgICAgICB3cml0ZUZpbGVMaXN0KHZhbHVlKTsKKyAgICAgICAgZWxz
ZSBpZiAoVjhJbWFnZURhdGE6Okhhc0luc3RhbmNlKHZhbHVlKSkKKyAgICAgICAgICAgIHdyaXRl
SW1hZ2VEYXRhKHZhbHVlKTsKKyAgICAgICAgZWxzZSBpZiAodmFsdWUtPklzUmVnRXhwKCkpCisg
ICAgICAgICAgICB3cml0ZVJlZ0V4cCh2YWx1ZSk7CisgICAgICAgIGVsc2UgaWYgKFY4QXJyYXlC
dWZmZXI6Okhhc0luc3RhbmNlKHZhbHVlKSkKKyAgICAgICAgICAgIHdyaXRlQXJyYXlCdWZmZXIo
dmFsdWUpOworICAgICAgICBlbHNlIGlmICh2YWx1ZS0+SXNPYmplY3QoKSkgeworICAgICAgICAg
ICAgLy8gRklYTUU6IFdlIG5lZWQgdG8gY2hlY2sgaWYganNPYmplY3QgaXMgYSAnbmF0aXZlIEVy
cm9yJyBhbmQgaWYgc28gdGhyb3cgYSBEYXRhQ2xvbmVFcnJvci4KKyAgICAgICAgICAgIGlmIChp
c0hvc3RPYmplY3QoanNPYmplY3QpIHx8IGpzT2JqZWN0LT5Jc0NhbGxhYmxlKCkpCisgICAgICAg
ICAgICAgICAgcmV0dXJuIGhhbmRsZUVycm9yKERhdGFDbG9uZUVycm9yLCBuZXh0KTsKKyAgICAg
ICAgICAgIG1fd3JpdGVyLndyaXRlR2VuZXJhdGVGcmVzaE9iamVjdCgpOworICAgICAgICAgICAg
cmV0dXJuIHB1c2gobmV3T2JqZWN0U3RhdGUoanNPYmplY3QsIG5leHQpKTsKKyAgICAgICAgfSBl
bHNlCisgICAgICAgICAgICByZXR1cm4gaGFuZGxlRXJyb3IoRGF0YUNsb25lRXJyb3IsIG5leHQp
OworICAgIH0KICAgICByZXR1cm4gMDsKIH0KIApAQCAtNzI2LDkgKzEwMzUsMTUgQEAgY2xhc3Mg
Q29tcG9zaXRlQ3JlYXRvciB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+Q29tcG9zaXRlQ3JlYXRv
cigpIHsgfQogCi0gICAgdmlydHVhbCBib29sIGNyZWF0ZUFycmF5KHVpbnQzMl90IGxlbmd0aCwg
djg6OkhhbmRsZTx2ODo6VmFsdWU+KiB2YWx1ZSkgPSAwOwotICAgIHZpcnR1YWwgYm9vbCBjcmVh
dGVPYmplY3QodWludDMyX3QgbnVtUHJvcGVydGllcywgdjg6OkhhbmRsZTx2ODo6VmFsdWU+KiB2
YWx1ZSkgPSAwOwotICAgIHZpcnR1YWwgYm9vbCBjcmVhdGVTcGFyc2VBcnJheSh1aW50MzJfdCBu
dW1Qcm9wZXJ0aWVzLCB1aW50MzJfdCBsZW5ndGgsIHY4OjpIYW5kbGU8djg6OlZhbHVlPiogdmFs
dWUpID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgY29uc3VtZVRvcE9mU3RhY2sodjg6OkhhbmRsZTx2
ODo6VmFsdWU+KikgPSAwOworICAgIHZpcnR1YWwgdWludDMyX3Qgb2JqZWN0UmVmZXJlbmNlQ291
bnQoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHB1c2hPYmplY3RSZWZlcmVuY2UoY29uc3Qgdjg6
OkhhbmRsZTx2ODo6VmFsdWU+JikgPSAwOworICAgIHZpcnR1YWwgYm9vbCB0cnlHZXRPYmplY3RG
cm9tT2JqZWN0UmVmZXJlbmNlKHVpbnQzMl90IHJlZiwgdjg6OkhhbmRsZTx2ODo6VmFsdWU+Kikg
PSAwOworICAgIHZpcnR1YWwgYm9vbCBuZXdBcnJheSh1aW50MzJfdCBsZW5ndGgpID0gMDsKKyAg
ICB2aXJ0dWFsIGJvb2wgbmV3T2JqZWN0KCkgPSAwOworICAgIHZpcnR1YWwgYm9vbCBjb21wbGV0
ZUFycmF5KHVpbnQzMl90IGxlbmd0aCwgdjg6OkhhbmRsZTx2ODo6VmFsdWU+KikgPSAwOworICAg
IHZpcnR1YWwgYm9vbCBjb21wbGV0ZU9iamVjdCh1aW50MzJfdCBudW1Qcm9wZXJ0aWVzLCB2ODo6
SGFuZGxlPHY4OjpWYWx1ZT4qKSA9IDA7CisgICAgdmlydHVhbCBib29sIGNvbXBsZXRlU3BhcnNl
QXJyYXkodWludDMyX3QgbnVtUHJvcGVydGllcywgdWludDMyX3QgbGVuZ3RoLCB2ODo6SGFuZGxl
PHY4OjpWYWx1ZT4qKSA9IDA7CiB9OwogCiAvLyBSZWFkZXIgaXMgcmVzcG9uc2libGUgZm9yIGRl
c2VyaWFsaXppbmcgcHJpbWl0aXZlIHR5cGVzIGFuZApAQCAtNzM5LDYgKzEwNTQsNyBAQCBwdWJs
aWM6CiAgICAgICAgIDogbV9idWZmZXIoYnVmZmVyKQogICAgICAgICAsIG1fbGVuZ3RoKGxlbmd0
aCkKICAgICAgICAgLCBtX3Bvc2l0aW9uKDApCisgICAgICAgICwgbV92ZXJzaW9uKDApCiAgICAg
ewogICAgICAgICBBU1NFUlQobGVuZ3RoID49IDApOwogICAgIH0KQEAgLTc1MSw2ICsxMDY3LDE2
IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKCFyZWFkVGFnKCZ0YWcpKQogICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgICAgICBzd2l0Y2ggKHRhZykgeworICAgICAgICBjYXNlIENoZWNrUmVm
VGFnOiB7CisgICAgICAgICAgICBpZiAobV92ZXJzaW9uIDw9IDApCisgICAgICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgICAgICAgICAgdWludDMyX3QgcmVmVGFibGVTaXplOworICAgICAg
ICAgICAgaWYgKCFkb1JlYWRVaW50MzIoJnJlZlRhYmxlU2l6ZSkpCisgICAgICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgICAgICAgICAgaWYgKHJlZlRhYmxlU2l6ZSAhPSBjcmVhdG9yLm9i
amVjdFJlZmVyZW5jZUNvdW50KCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
ICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KICAgICAgICAgY2FzZSBJbnZhbGlkVGFn
OgogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICBjYXNlIFBhZGRpbmdUYWc6CkBA
IC03ODIsNiArMTEwOCw4IEBAIHB1YmxpYzoKICAgICAgICAgY2FzZSBEYXRlVGFnOgogICAgICAg
ICAgICAgaWYgKCFyZWFkRGF0ZSh2YWx1ZSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgICAgICAgICAgaWYgKG1fdmVyc2lvbiA+IDApCisgICAgICAgICAgICAgICAgY3JlYXRv
ci5wdXNoT2JqZWN0UmVmZXJlbmNlKCp2YWx1ZSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgY2FzZSBOdW1iZXJUYWc6CiAgICAgICAgICAgICBpZiAoIXJlYWROdW1iZXIodmFsdWUpKQpA
QCAtNzkwLDM2ICsxMTE4LDQ2IEBAIHB1YmxpYzoKICAgICAgICAgY2FzZSBCbG9iVGFnOgogICAg
ICAgICAgICAgaWYgKCFyZWFkQmxvYih2YWx1ZSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgICAgICAgICAgaWYgKG1fdmVyc2lvbiA+IDApCisgICAgICAgICAgICAgICAgY3Jl
YXRvci5wdXNoT2JqZWN0UmVmZXJlbmNlKCp2YWx1ZSk7CiAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgY2FzZSBGaWxlVGFnOgogICAgICAgICAgICAgaWYgKCFyZWFkRmlsZSh2YWx1ZSkpCiAg
ICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgaWYgKG1fdmVyc2lvbiA+
IDApCisgICAgICAgICAgICAgICAgY3JlYXRvci5wdXNoT2JqZWN0UmVmZXJlbmNlKCp2YWx1ZSk7
CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBGaWxlTGlzdFRhZzoKICAgICAgICAg
ICAgIGlmICghcmVhZEZpbGVMaXN0KHZhbHVlKSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgICAgICAgICBpZiAobV92ZXJzaW9uID4gMCkKKyAgICAgICAgICAgICAgICBjcmVh
dG9yLnB1c2hPYmplY3RSZWZlcmVuY2UoKnZhbHVlKTsKICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICBjYXNlIEltYWdlRGF0YVRhZzoKICAgICAgICAgICAgIGlmICghcmVhZEltYWdlRGF0YSh2
YWx1ZSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgaWYgKG1f
dmVyc2lvbiA+IDApCisgICAgICAgICAgICAgICAgY3JlYXRvci5wdXNoT2JqZWN0UmVmZXJlbmNl
KCp2YWx1ZSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBBcnJheVRhZzogewog
ICAgICAgICAgICAgdWludDMyX3QgbGVuZ3RoOwogICAgICAgICAgICAgaWYgKCFkb1JlYWRVaW50
MzIoJmxlbmd0aCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAg
aWYgKCFjcmVhdG9yLmNyZWF0ZUFycmF5KGxlbmd0aCwgdmFsdWUpKQorICAgICAgICAgICAgaWYg
KCFjcmVhdG9yLmNvbXBsZXRlQXJyYXkobGVuZ3RoLCB2YWx1ZSkpCiAgICAgICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2Fz
ZSBSZWdFeHBUYWc6CiAgICAgICAgICAgICBpZiAoIXJlYWRSZWdFeHAodmFsdWUpKQogICAgICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIGlmIChtX3ZlcnNpb24gPiAwKQor
ICAgICAgICAgICAgICAgIGNyZWF0b3IucHVzaE9iamVjdFJlZmVyZW5jZSgqdmFsdWUpOwogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgT2JqZWN0VGFnOiB7CiAgICAgICAgICAgICB1
aW50MzJfdCBudW1Qcm9wZXJ0aWVzOwogICAgICAgICAgICAgaWYgKCFkb1JlYWRVaW50MzIoJm51
bVByb3BlcnRpZXMpKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAg
IGlmICghY3JlYXRvci5jcmVhdGVPYmplY3QobnVtUHJvcGVydGllcywgdmFsdWUpKQorICAgICAg
ICAgICAgaWYgKCFjcmVhdG9yLmNvbXBsZXRlT2JqZWN0KG51bVByb3BlcnRpZXMsIHZhbHVlKSkK
ICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgfQpAQCAtODMwLDcgKzExNjgsNTEgQEAgcHVibGljOgogICAgICAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICAgICAgICAgIGlmICghZG9SZWFkVWludDMyKCZsZW5ndGgpKQogICAgICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAgIGlmICghY3JlYXRvci5jcmVhdGVT
cGFyc2VBcnJheShudW1Qcm9wZXJ0aWVzLCBsZW5ndGgsIHZhbHVlKSkKKyAgICAgICAgICAgIGlm
ICghY3JlYXRvci5jb21wbGV0ZVNwYXJzZUFycmF5KG51bVByb3BlcnRpZXMsIGxlbmd0aCwgdmFs
dWUpKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICB9CisgICAgICAgIGNhc2UgQXJyYXlCdWZmZXJWaWV3VGFnOiB7CisgICAgICAgICAg
ICBpZiAobV92ZXJzaW9uIDw9IDApCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
ICAgICAgICAgaWYgKCFyZWFkQXJyYXlCdWZmZXJWaWV3KHZhbHVlLCBjcmVhdG9yKSkKKyAgICAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBjcmVhdG9yLnB1c2hPYmplY3RS
ZWZlcmVuY2UoKnZhbHVlKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAg
IGNhc2UgQXJyYXlCdWZmZXJUYWc6IHsKKyAgICAgICAgICAgIGlmIChtX3ZlcnNpb24gPD0gMCkK
KyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAvLyBBcnJheUJ1ZmZl
cnMgYXJlIGFsd2F5cyB3cml0dGVuIGJlZm9yZSBkZXBlbmRlbnQgQXJyYXlCdWZmZXJWaWV3cy4K
KyAgICAgICAgICAgIGlmICghcmVhZEFycmF5QnVmZmVyKHZhbHVlKSkKKyAgICAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBjcmVhdG9yLnB1c2hPYmplY3RSZWZlcmVuY2Uo
KnZhbHVlKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGNhc2UgR2Vu
ZXJhdGVGcmVzaE9iamVjdFRhZzogeworICAgICAgICAgICAgaWYgKG1fdmVyc2lvbiA8PSAwKQor
ICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIGlmICghY3JlYXRvci5u
ZXdPYmplY3QoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBjYXNlIEdlbmVyYXRlRnJlc2hBcnJheVRh
ZzogeworICAgICAgICAgICAgaWYgKG1fdmVyc2lvbiA8PSAwKQorICAgICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICAgICAgICAgIHVpbnQzMl90IGxlbmd0aDsKKyAgICAgICAgICAgIGlm
ICghZG9SZWFkVWludDMyKCZsZW5ndGgpKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICAgICAgICAgIGlmICghY3JlYXRvci5uZXdBcnJheShsZW5ndGgpKQorICAgICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9Cisg
ICAgICAgIGNhc2UgT2JqZWN0UmVmZXJlbmNlVGFnOiB7CisgICAgICAgICAgICBpZiAobV92ZXJz
aW9uIDw9IDApCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgdWlu
dDMyX3QgcmVmOworICAgICAgICAgICAgaWYgKCFkb1JlYWRVaW50MzIoJnJlZikpCisgICAgICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgaWYgKCFjcmVhdG9yLnRyeUdldE9i
amVjdEZyb21PYmplY3RSZWZlcmVuY2UocmVmLCB2YWx1ZSkpCiAgICAgICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KQEAgLTg0MCw2ICsxMjIy
LDMwIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuICF2YWx1ZS0+SXNFbXB0eSgpOwogICAgIH0K
IAorICAgIGJvb2wgcmVhZFZlcnNpb24odWludDMyX3QmIHZlcnNpb24pCisgICAgeworICAgICAg
ICBTZXJpYWxpemF0aW9uVGFnIHRhZzsKKyAgICAgICAgaWYgKCFyZWFkVGFnKCZ0YWcpKSB7Cisg
ICAgICAgICAgICAvLyBUaGlzIGlzIGEgbnVsbGFyeSBidWZmZXIuIFdlJ3JlIHN0aWxsIHZlcnNp
b24gMC4KKyAgICAgICAgICAgIHZlcnNpb24gPSAwOworICAgICAgICAgICAgcmV0dXJuIHRydWU7
CisgICAgICAgIH0KKyAgICAgICAgaWYgKHRhZyAhPSBWZXJzaW9uVGFnKSB7CisgICAgICAgICAg
ICAvLyBWZXJzaW9ucyBvZiB0aGUgZm9ybWF0IHBhc3QgMCBzdGFydCB3aXRoIHRoZSB2ZXJzaW9u
IHRhZy4KKyAgICAgICAgICAgIHZlcnNpb24gPSAwOworICAgICAgICAgICAgLy8gUHV0IGJhY2sg
dGhlIHRhZy4KKyAgICAgICAgICAgIHVuZG9SZWFkVGFnKCk7CisgICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKKyAgICAgICAgfQorICAgICAgICAvLyBWZXJzaW9uLWJlYXJpbmcgbWVzc2FnZXMgYXJl
IG9ibGlnYXRlZCB0byBmaW5pc2ggdGhlIHZlcnNpb24gdGFnLgorICAgICAgICByZXR1cm4gZG9S
ZWFkVWludDMyKCZ2ZXJzaW9uKTsKKyAgICB9CisKKyAgICB2b2lkIHNldFZlcnNpb24odWludDMy
X3QgdmVyc2lvbikKKyAgICB7CisgICAgICAgIG1fdmVyc2lvbiA9IHZlcnNpb247CisgICAgfQor
CiBwcml2YXRlOgogICAgIGJvb2wgcmVhZFRhZyhTZXJpYWxpemF0aW9uVGFnKiB0YWcpCiAgICAg
ewpAQCAtODQ5LDYgKzEyNTUsMjAgQEAgcHJpdmF0ZToKICAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgfQogCisgICAgdm9pZCB1bmRvUmVhZFRhZygpCisgICAgeworICAgICAgICBpZiAobV9wb3Np
dGlvbiA+IDApCisgICAgICAgICAgICAtLW1fcG9zaXRpb247CisgICAgfQorCisgICAgYm9vbCBy
ZWFkU3ViVGFnKEFycmF5QnVmZmVyVmlld1N1YlRhZyogdGFnKQorICAgIHsKKyAgICAgICAgaWYg
KG1fcG9zaXRpb24gPj0gbV9sZW5ndGgpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
ICAgICp0YWcgPSBzdGF0aWNfY2FzdDxBcnJheUJ1ZmZlclZpZXdTdWJUYWc+KG1fYnVmZmVyW21f
cG9zaXRpb24rK10pOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKICAgICBib29sIHJl
YWRTdHJpbmcodjg6OkhhbmRsZTx2ODo6VmFsdWU+KiB2YWx1ZSkKICAgICB7CiAgICAgICAgIHVp
bnQzMl90IGxlbmd0aDsKQEAgLTkzMiw2ICsxMzUyLDEwNyBAQCBwcml2YXRlOgogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICB9CiAKKyAgICBQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBkb1JlYWRB
cnJheUJ1ZmZlcigpCisgICAgeworICAgICAgICB1aW50MzJfdCBieXRlTGVuZ3RoOworICAgICAg
ICBpZiAoIWRvUmVhZFVpbnQzMigmYnl0ZUxlbmd0aCkpCisgICAgICAgICAgICByZXR1cm4gMDsK
KyAgICAgICAgaWYgKG1fcG9zaXRpb24gKyBieXRlTGVuZ3RoID4gbV9sZW5ndGgpCisgICAgICAg
ICAgICByZXR1cm4gMDsKKyAgICAgICAgY29uc3Qgdm9pZCogYnVmZmVyU3RhcnQgPSBtX2J1ZmZl
ciArIG1fcG9zaXRpb247CisgICAgICAgIFJlZlB0cjxBcnJheUJ1ZmZlcj4gYXJyYXlCdWZmZXIg
PSBBcnJheUJ1ZmZlcjo6Y3JlYXRlKGJ1ZmZlclN0YXJ0LCBieXRlTGVuZ3RoKTsKKyAgICAgICAg
bV9wb3NpdGlvbiArPSBieXRlTGVuZ3RoOworICAgICAgICByZXR1cm4gYXJyYXlCdWZmZXIucmVs
ZWFzZSgpOworICAgIH0KKworICAgIGJvb2wgcmVhZEFycmF5QnVmZmVyKHY4OjpIYW5kbGU8djg6
OlZhbHVlPiogdmFsdWUpCisgICAgeworICAgICAgICBSZWZQdHI8QXJyYXlCdWZmZXI+IGFycmF5
QnVmZmVyID0gZG9SZWFkQXJyYXlCdWZmZXIoKTsKKyAgICAgICAgaWYgKCFhcnJheUJ1ZmZlcikK
KyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgKnZhbHVlID0gdG9WOChhcnJheUJ1
ZmZlci5yZWxlYXNlKCkpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBib29s
IHJlYWRBcnJheUJ1ZmZlclZpZXcodjg6OkhhbmRsZTx2ODo6VmFsdWU+KiB2YWx1ZSwgQ29tcG9z
aXRlQ3JlYXRvciYgY3JlYXRvcikKKyAgICB7CisgICAgICAgIEFycmF5QnVmZmVyVmlld1N1YlRh
ZyBzdWJUYWc7CisgICAgICAgIHVpbnQzMl90IGJ5dGVPZmZzZXQ7CisgICAgICAgIHVpbnQzMl90
IGJ5dGVMZW5ndGg7CisgICAgICAgIFJlZlB0cjxBcnJheUJ1ZmZlcj4gYXJyYXlCdWZmZXI7Cisg
ICAgICAgIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBhcnJheUJ1ZmZlclY4VmFsdWU7CisgICAgICAg
IGlmICghcmVhZFN1YlRhZygmc3ViVGFnKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICAgICAgaWYgKCFkb1JlYWRVaW50MzIoJmJ5dGVPZmZzZXQpKQorICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgICAgICBpZiAoIWRvUmVhZFVpbnQzMigmYnl0ZUxlbmd0aCkpCisgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGlmICghY3JlYXRvci5jb25zdW1lVG9wT2ZTdGFj
aygmYXJyYXlCdWZmZXJWOFZhbHVlKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAg
ICAgYXJyYXlCdWZmZXIgPSBWOEFycmF5QnVmZmVyOjp0b05hdGl2ZShhcnJheUJ1ZmZlclY4VmFs
dWUuQXM8djg6Ok9iamVjdD4oKSk7CisgICAgICAgIGlmICghYXJyYXlCdWZmZXIpCisgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHN3aXRjaCAoc3ViVGFnKSB7CisgICAgICAgIGNh
c2UgQnl0ZUFycmF5VGFnOgorICAgICAgICAgICAgKnZhbHVlID0gdG9WOChJbnQ4QXJyYXk6OmNy
ZWF0ZShhcnJheUJ1ZmZlci5yZWxlYXNlKCksIGJ5dGVPZmZzZXQsIGJ5dGVMZW5ndGgpKTsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFVuc2lnbmVkQnl0ZUFycmF5VGFnOgorICAg
ICAgICAgICAgKnZhbHVlID0gdG9WOChVaW50OEFycmF5OjpjcmVhdGUoYXJyYXlCdWZmZXIucmVs
ZWFzZSgpLCBieXRlT2Zmc2V0LCBieXRlTGVuZ3RoKSk7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSBTaG9ydEFycmF5VGFnOiB7CisgICAgICAgICAgICB1aW50MzJfdCBzaG9ydExl
bmd0aCA9IGJ5dGVMZW5ndGggLyBzaXplb2YoaW50MTZfdCk7CisgICAgICAgICAgICBpZiAoc2hv
cnRMZW5ndGggKiBzaXplb2YoaW50MTZfdCkgIT0gYnl0ZUxlbmd0aCkKKyAgICAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAqdmFsdWUgPSB0b1Y4KEludDE2QXJyYXk6OmNy
ZWF0ZShhcnJheUJ1ZmZlci5yZWxlYXNlKCksIGJ5dGVPZmZzZXQsIHNob3J0TGVuZ3RoKSk7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBjYXNlIFVuc2lnbmVkU2hvcnRB
cnJheVRhZzogeworICAgICAgICAgICAgdWludDMyX3Qgc2hvcnRMZW5ndGggPSBieXRlTGVuZ3Ro
IC8gc2l6ZW9mKHVpbnQxNl90KTsKKyAgICAgICAgICAgIGlmIChzaG9ydExlbmd0aCAqIHNpemVv
Zih1aW50MTZfdCkgIT0gYnl0ZUxlbmd0aCkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgICAgICAgICAqdmFsdWUgPSB0b1Y4KFVpbnQxNkFycmF5OjpjcmVhdGUoYXJyYXlCdWZm
ZXIucmVsZWFzZSgpLCBieXRlT2Zmc2V0LCBzaG9ydExlbmd0aCkpOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIH0KKyAgICAgICAgY2FzZSBJbnRBcnJheVRhZzogeworICAgICAgICAgICAg
dWludDMyX3QgaW50TGVuZ3RoID0gYnl0ZUxlbmd0aCAvIHNpemVvZihpbnQzMl90KTsKKyAgICAg
ICAgICAgIGlmIChpbnRMZW5ndGggKiBzaXplb2YoaW50MzJfdCkgIT0gYnl0ZUxlbmd0aCkKKyAg
ICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAqdmFsdWUgPSB0b1Y4KElu
dDMyQXJyYXk6OmNyZWF0ZShhcnJheUJ1ZmZlci5yZWxlYXNlKCksIGJ5dGVPZmZzZXQsIGludExl
bmd0aCkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgY2FzZSBVbnNp
Z25lZEludEFycmF5VGFnOiB7CisgICAgICAgICAgICB1aW50MzJfdCBpbnRMZW5ndGggPSBieXRl
TGVuZ3RoIC8gc2l6ZW9mKHVpbnQzMl90KTsKKyAgICAgICAgICAgIGlmIChpbnRMZW5ndGggKiBz
aXplb2YodWludDMyX3QpICE9IGJ5dGVMZW5ndGgpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgICAgICAgICAgKnZhbHVlID0gdG9WOChVaW50MzJBcnJheTo6Y3JlYXRlKGFycmF5
QnVmZmVyLnJlbGVhc2UoKSwgYnl0ZU9mZnNldCwgaW50TGVuZ3RoKSk7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgfQorICAgICAgICBjYXNlIEZsb2F0QXJyYXlUYWc6IHsKKyAgICAgICAg
ICAgIHVpbnQzMl90IGZsb2F0TGVuZ3RoID0gYnl0ZUxlbmd0aCAvIHNpemVvZihmbG9hdCk7Cisg
ICAgICAgICAgICBpZiAoZmxvYXRMZW5ndGggKiBzaXplb2YoZmxvYXQpICE9IGJ5dGVMZW5ndGgp
CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgKnZhbHVlID0gdG9W
OChGbG9hdDMyQXJyYXk6OmNyZWF0ZShhcnJheUJ1ZmZlci5yZWxlYXNlKCksIGJ5dGVPZmZzZXQs
IGZsb2F0TGVuZ3RoKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBj
YXNlIERvdWJsZUFycmF5VGFnOiB7CisgICAgICAgICAgICB1aW50MzJfdCBmbG9hdExlbmd0aCA9
IGJ5dGVMZW5ndGggLyBzaXplb2YoZG91YmxlKTsKKyAgICAgICAgICAgIGlmIChmbG9hdExlbmd0
aCAqIHNpemVvZihkb3VibGUpICE9IGJ5dGVMZW5ndGgpCisgICAgICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgICAgICAgICAgKnZhbHVlID0gdG9WOChGbG9hdDY0QXJyYXk6OmNyZWF0ZShh
cnJheUJ1ZmZlci5yZWxlYXNlKCksIGJ5dGVPZmZzZXQsIGZsb2F0TGVuZ3RoKSk7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBjYXNlIERhdGFWaWV3VGFnOgorICAgICAg
ICAgICAgKnZhbHVlID0gdG9WOChEYXRhVmlldzo6Y3JlYXRlKGFycmF5QnVmZmVyLnJlbGVhc2Uo
KSwgYnl0ZU9mZnNldCwgYnl0ZUxlbmd0aCkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGRlZmF1bHQ6CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAg
Ly8gVGhlIHZhcmlvdXMgKkFycmF5OjpjcmVhdGUoKSBtZXRob2RzIHdpbGwgcmV0dXJuIG51bGwg
aWYgdGhlIHJhbmdlIHRoZSB2aWV3IGV4cGVjdHMgaXMKKyAgICAgICAgLy8gbWlzbWF0Y2hlZCB3
aXRoIHRoZSByYW5nZSB0aGUgYnVmZmVyIGNhbiBwcm92aWRlIG9yIGlmIHRoZSBieXRlIG9mZnNl
dCBpcyBub3QgYWxpZ25lZAorICAgICAgICAvLyB0byB0aGUgc2l6ZSBvZiB0aGUgZWxlbWVudCB0
eXBlLgorICAgICAgICByZXR1cm4gIXZhbHVlLT5Jc0VtcHR5KCk7CisgICAgfQorCiAgICAgYm9v
bCByZWFkUmVnRXhwKHY4OjpIYW5kbGU8djg6OlZhbHVlPiogdmFsdWUpCiAgICAgewogICAgICAg
ICB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gcGF0dGVybjsKQEAgLTEwMzcsMzIgKzE1NTgsNjMgQEAg
cHJpdmF0ZToKICAgICBjb25zdCB1aW50OF90KiBtX2J1ZmZlcjsKICAgICBjb25zdCB1bnNpZ25l
ZCBtX2xlbmd0aDsKICAgICB1bnNpZ25lZCBtX3Bvc2l0aW9uOworICAgIHVpbnQzMl90IG1fdmVy
c2lvbjsKIH07CiAKIGNsYXNzIERlc2VyaWFsaXplciA6IHB1YmxpYyBDb21wb3NpdGVDcmVhdG9y
IHsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBEZXNlcmlhbGl6ZXIoUmVhZGVyJiByZWFkZXIpCiAg
ICAgICAgIDogbV9yZWFkZXIocmVhZGVyKQorICAgICAgICAsIG1fdmVyc2lvbigwKQogICAgIHsK
ICAgICB9CiAKICAgICB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gZGVzZXJpYWxpemUoKQogICAgIHsK
KyAgICAgICAgaWYgKCFtX3JlYWRlci5yZWFkVmVyc2lvbihtX3ZlcnNpb24pIHx8IG1fdmVyc2lv
biA+IHdpcmVGb3JtYXRWZXJzaW9uKQorICAgICAgICAgICAgcmV0dXJuIHY4OjpOdWxsKCk7Cisg
ICAgICAgIG1fcmVhZGVyLnNldFZlcnNpb24obV92ZXJzaW9uKTsKICAgICAgICAgdjg6OkhhbmRs
ZVNjb3BlIHNjb3BlOwogICAgICAgICB3aGlsZSAoIW1fcmVhZGVyLmlzRW9mKCkpIHsKICAgICAg
ICAgICAgIGlmICghZG9EZXNlcmlhbGl6ZSgpKQogICAgICAgICAgICAgICAgIHJldHVybiB2ODo6
TnVsbCgpOwogICAgICAgICB9Ci0gICAgICAgIGlmIChzdGFja0RlcHRoKCkgIT0gMSkKKyAgICAg
ICAgaWYgKHN0YWNrRGVwdGgoKSAhPSAxIHx8IG1fb2JqZWN0UmVmZXJlbmNlU3RhY2suc2l6ZSgp
KQogICAgICAgICAgICAgcmV0dXJuIHY4OjpOdWxsKCk7Ci0gICAgICAgIHJldHVybiBzY29wZS5D
bG9zZShlbGVtZW50KDApKTsKKyAgICAgICAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHJlc3VsdCA9
IHNjb3BlLkNsb3NlKGVsZW1lbnQoMCkpOworICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0K
IAotICAgIHZpcnR1YWwgYm9vbCBjcmVhdGVBcnJheSh1aW50MzJfdCBsZW5ndGgsIHY4OjpIYW5k
bGU8djg6OlZhbHVlPiogdmFsdWUpCisgICAgdmlydHVhbCBib29sIG5ld0FycmF5KHVpbnQzMl90
IGxlbmd0aCkKKyAgICB7CisgICAgICAgIHY4OjpMb2NhbDx2ODo6QXJyYXk+IGFycmF5ID0gdjg6
OkFycmF5OjpOZXcobGVuZ3RoKTsKKyAgICAgICAgaWYgKGFycmF5LklzRW1wdHkoKSkKKyAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgb3BlbkNvbXBvc2l0ZShhcnJheSk7CisgICAg
ICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHZpcnR1YWwgYm9vbCBjb25zdW1lVG9wT2ZT
dGFjayh2ODo6SGFuZGxlPHY4OjpWYWx1ZT4qIG9iamVjdCkKKyAgICB7CisgICAgICAgIGlmIChz
dGFja0RlcHRoKCkgPCAxKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAqb2Jq
ZWN0ID0gZWxlbWVudChzdGFja0RlcHRoKCkgLSAxKTsKKyAgICAgICAgcG9wKDEpOworICAgICAg
ICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIGJvb2wgY29tcGxldGVBcnJheSh1
aW50MzJfdCBsZW5ndGgsIHY4OjpIYW5kbGU8djg6OlZhbHVlPiogdmFsdWUpCiAgICAgewogICAg
ICAgICBpZiAobGVuZ3RoID4gc3RhY2tEZXB0aCgpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwotICAgICAgICB2ODo6TG9jYWw8djg6OkFycmF5PiBhcnJheSA9IHY4OjpBcnJheTo6TmV3KGxl
bmd0aCk7CisgICAgICAgIHY4OjpMb2NhbDx2ODo6QXJyYXk+IGFycmF5OworICAgICAgICBpZiAo
bV92ZXJzaW9uID4gMCkgeworICAgICAgICAgICAgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gY29tcG9z
aXRlOworICAgICAgICAgICAgaWYgKCFjbG9zZUNvbXBvc2l0ZSgmY29tcG9zaXRlKSkKKyAgICAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBhcnJheSA9IGNvbXBvc2l0ZS5B
czx2ODo6QXJyYXk+KCk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgYXJyYXkgPSB2ODo6
QXJyYXk6Ok5ldyhsZW5ndGgpOwogICAgICAgICBpZiAoYXJyYXkuSXNFbXB0eSgpKQogICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICBjb25zdCBpbnQgZGVwdGggPSBzdGFja0RlcHRo
KCkgLSBsZW5ndGg7CkBAIC0xMDczLDIyICsxNjI1LDYzIEBAIHB1YmxpYzoKICAgICAgICAgcmV0
dXJuIHRydWU7CiAgICAgfQogCi0gICAgdmlydHVhbCBib29sIGNyZWF0ZU9iamVjdCh1aW50MzJf
dCBudW1Qcm9wZXJ0aWVzLCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4qIHZhbHVlKQorICAgIHZpcnR1
YWwgYm9vbCBuZXdPYmplY3QoKQogICAgIHsKICAgICAgICAgdjg6OkxvY2FsPHY4OjpPYmplY3Q+
IG9iamVjdCA9IHY4OjpPYmplY3Q6Ok5ldygpOwogICAgICAgICBpZiAob2JqZWN0LklzRW1wdHko
KSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgb3BlbkNvbXBvc2l0ZShvYmpl
Y3QpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIGJvb2wgY29t
cGxldGVPYmplY3QodWludDMyX3QgbnVtUHJvcGVydGllcywgdjg6OkhhbmRsZTx2ODo6VmFsdWU+
KiB2YWx1ZSkKKyAgICB7CisgICAgICAgIHY4OjpMb2NhbDx2ODo6T2JqZWN0PiBvYmplY3Q7Cisg
ICAgICAgIGlmIChtX3ZlcnNpb24gPiAwKSB7CisgICAgICAgICAgICB2ODo6TG9jYWw8djg6OlZh
bHVlPiBjb21wb3NpdGU7CisgICAgICAgICAgICBpZiAoIWNsb3NlQ29tcG9zaXRlKCZjb21wb3Np
dGUpKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIG9iamVjdCA9
IGNvbXBvc2l0ZS5Bczx2ODo6T2JqZWN0PigpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAg
IG9iamVjdCA9IHY4OjpPYmplY3Q6Ok5ldygpOworICAgICAgICBpZiAob2JqZWN0LklzRW1wdHko
KSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgcmV0dXJuIGluaXRpYWxpemVP
YmplY3Qob2JqZWN0LCBudW1Qcm9wZXJ0aWVzLCB2YWx1ZSk7CiAgICAgfQogCi0gICAgdmlydHVh
bCBib29sIGNyZWF0ZVNwYXJzZUFycmF5KHVpbnQzMl90IG51bVByb3BlcnRpZXMsIHVpbnQzMl90
IGxlbmd0aCwgdjg6OkhhbmRsZTx2ODo6VmFsdWU+KiB2YWx1ZSkKKyAgICB2aXJ0dWFsIGJvb2wg
Y29tcGxldGVTcGFyc2VBcnJheSh1aW50MzJfdCBudW1Qcm9wZXJ0aWVzLCB1aW50MzJfdCBsZW5n
dGgsIHY4OjpIYW5kbGU8djg6OlZhbHVlPiogdmFsdWUpCiAgICAgewotICAgICAgICB2ODo6TG9j
YWw8djg6OkFycmF5PiBhcnJheSA9IHY4OjpBcnJheTo6TmV3KGxlbmd0aCk7CisgICAgICAgIHY4
OjpMb2NhbDx2ODo6QXJyYXk+IGFycmF5OworICAgICAgICBpZiAobV92ZXJzaW9uID4gMCkgewor
ICAgICAgICAgICAgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gY29tcG9zaXRlOworICAgICAgICAgICAg
aWYgKCFjbG9zZUNvbXBvc2l0ZSgmY29tcG9zaXRlKSkKKyAgICAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgICAgICAgICBhcnJheSA9IGNvbXBvc2l0ZS5Bczx2ODo6QXJyYXk+KCk7Cisg
ICAgICAgIH0gZWxzZQorICAgICAgICAgICAgYXJyYXkgPSB2ODo6QXJyYXk6Ok5ldyhsZW5ndGgp
OwogICAgICAgICBpZiAoYXJyYXkuSXNFbXB0eSgpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwogICAgICAgICByZXR1cm4gaW5pdGlhbGl6ZU9iamVjdChhcnJheSwgbnVtUHJvcGVydGllcywg
dmFsdWUpOwogICAgIH0KIAorICAgIHZpcnR1YWwgdm9pZCBwdXNoT2JqZWN0UmVmZXJlbmNlKGNv
bnN0IHY4OjpIYW5kbGU8djg6OlZhbHVlPiYgb2JqZWN0KQorICAgIHsKKyAgICAgICAgbV9vYmpl
Y3RQb29sLmFwcGVuZChvYmplY3QpOworICAgIH0KKworICAgIHZpcnR1YWwgYm9vbCB0cnlHZXRP
YmplY3RGcm9tT2JqZWN0UmVmZXJlbmNlKHVpbnQzMl90IHJlZmVyZW5jZSwgdjg6OkhhbmRsZTx2
ODo6VmFsdWU+KiBvYmplY3QpCisgICAgeworICAgICAgICBpZiAocmVmZXJlbmNlID49IG1fb2Jq
ZWN0UG9vbC5zaXplKCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICpvYmpl
Y3QgPSBtX29iamVjdFBvb2xbcmVmZXJlbmNlXTsKKyAgICAgICAgcmV0dXJuIG9iamVjdDsKKyAg
ICB9CisKKyAgICB2aXJ0dWFsIHVpbnQzMl90IG9iamVjdFJlZmVyZW5jZUNvdW50KCkKKyAgICB7
CisgICAgICAgIHJldHVybiBtX29iamVjdFBvb2wuc2l6ZSgpOworICAgIH0KKwogcHJpdmF0ZToK
ICAgICBib29sIGluaXRpYWxpemVPYmplY3Qodjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBvYmplY3Qs
IHVpbnQzMl90IG51bVByb3BlcnRpZXMsIHY4OjpIYW5kbGU8djg6OlZhbHVlPiogdmFsdWUpCiAg
ICAgewpAQCAtMTEzMSw4ICsxNzI0LDMwIEBAIHByaXZhdGU6CiAgICAgICAgIHJldHVybiBtX3N0
YWNrW2luZGV4XTsKICAgICB9CiAKKyAgICB2b2lkIG9wZW5Db21wb3NpdGUoY29uc3Qgdjg6Okxv
Y2FsPHY4OjpWYWx1ZT4mIG9iamVjdCkKKyAgICB7CisgICAgICAgIHVpbnQzMl90IG5ld0lkID0g
bV9vYmplY3RQb29sLnNpemUoKTsKKyAgICAgICAgbV9vYmplY3RSZWZlcmVuY2VTdGFjay5hcHBl
bmQobmV3SWQpOworICAgICAgICBtX29iamVjdFBvb2wuYXBwZW5kKG9iamVjdCk7CisgICAgfQor
CisgICAgYm9vbCBjbG9zZUNvbXBvc2l0ZSh2ODo6SGFuZGxlPHY4OjpWYWx1ZT4qIG9iamVjdCkK
KyAgICB7CisgICAgICAgIGlmICghbV9vYmplY3RSZWZlcmVuY2VTdGFjay5zaXplKCkpCisgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHVpbnQzMl90IG9sZElkID0gbV9vYmplY3RS
ZWZlcmVuY2VTdGFja1ttX29iamVjdFJlZmVyZW5jZVN0YWNrLnNpemUoKSAtIDFdOworICAgICAg
ICBtX29iamVjdFJlZmVyZW5jZVN0YWNrLnNocmluayhtX29iamVjdFJlZmVyZW5jZVN0YWNrLnNp
emUoKSAtIDEpOworICAgICAgICBpZiAob2xkSWQgPj0gbV9vYmplY3RQb29sLnNpemUoKSkKKyAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgKm9iamVjdCA9IG1fb2JqZWN0UG9vbFtv
bGRJZF07CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKwogICAgIFJlYWRlciYgbV9yZWFk
ZXI7CiAgICAgVmVjdG9yPHY4OjpMb2NhbDx2ODo6VmFsdWU+ID4gbV9zdGFjazsKKyAgICBWZWN0
b3I8djg6OkhhbmRsZTx2ODo6VmFsdWU+ID4gbV9vYmplY3RQb29sOworICAgIFZlY3Rvcjx1aW50
MzJfdD4gbV9vYmplY3RSZWZlcmVuY2VTdGFjazsKKyAgICB1aW50MzJfdCBtX3ZlcnNpb247CiB9
OwogCiB9IC8vIG5hbWVzcGFjZQpAQCAtMTIzMiwyMiArMTg0NywyNyBAQCBTZXJpYWxpemVkU2Ny
aXB0VmFsdWU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSh2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdmFs
dWUsIGJvb2wmCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICB9Ci0gICAgaWYg
KHN0YXR1cyA9PSBTZXJpYWxpemVyOjpJbnB1dEVycm9yKSB7CisgICAgc3dpdGNoIChzdGF0dXMp
IHsKKyAgICBjYXNlIFNlcmlhbGl6ZXI6OklucHV0RXJyb3I6CiAgICAgICAgIC8vIElmIHRoZXJl
IHdhcyBhbiBpbnB1dCBlcnJvciwgdGhyb3cgYSBuZXcgZXhjZXB0aW9uIG91dHNpZGUKICAgICAg
ICAgLy8gb2YgdGhlIFRyeUNhdGNoIHNjb3BlLgogICAgICAgICBkaWRUaHJvdyA9IHRydWU7Ci0g
ICAgICAgIHRocm93RXJyb3IoTk9UX1NVUFBPUlRFRF9FUlIpOworICAgICAgICB0aHJvd0Vycm9y
KERBVEFfQ0xPTkVfRVJSKTsKICAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBpZiAoc3RhdHVz
ID09IFNlcmlhbGl6ZXI6OkpTRmFpbHVyZSkgeworICAgIGNhc2UgU2VyaWFsaXplcjo6RGF0YUNs
b25lRXJyb3I6CisgICAgICAgIGRpZFRocm93ID0gdHJ1ZTsKKyAgICAgICAgdGhyb3dFcnJvcihE
QVRBX0NMT05FX0VSUik7CisgICAgICAgIHJldHVybjsKKyAgICBjYXNlIFNlcmlhbGl6ZXI6OkpT
RmFpbHVyZToKICAgICAgICAgLy8gSWYgdGhlcmUgd2FzIGEgSlMgZmFpbHVyZSAoYnV0IG5vIGV4
Y2VwdGlvbiksIHRoZXJlJ3Mgbm90CiAgICAgICAgIC8vIG11Y2ggd2UgY2FuIGRvIGV4Y2VwdCBm
b3IgdW53aW5kaW5nIHRoZSBDKysgc3RhY2sgYnkKICAgICAgICAgLy8gcHJldGVuZGluZyB0aGVy
ZSB3YXMgYSBKUyBleGNlcHRpb24uCiAgICAgICAgIGRpZFRocm93ID0gdHJ1ZTsKICAgICAgICAg
cmV0dXJuOworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVChzdGF0dXMgPT0gU2VyaWFsaXpl
cjo6U3VjY2Vzcyk7CisgICAgICAgIG1fZGF0YSA9IFN0cmluZyhTdHJpbmdJbXBsOjphZG9wdCh3
cml0ZXIuZGF0YSgpKSkuY3Jvc3NUaHJlYWRTdHJpbmcoKTsKICAgICB9Ci0gICAgQVNTRVJUKHN0
YXR1cyA9PSBTZXJpYWxpemVyOjpTdWNjZXNzKTsKLSAgICBtX2RhdGEgPSBTdHJpbmcoU3RyaW5n
SW1wbDo6YWRvcHQod3JpdGVyLmRhdGEoKSkpLmNyb3NzVGhyZWFkU3RyaW5nKCk7CiB9CiAKIFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlKGNvbnN0IFN0cmluZyYg
d2lyZURhdGEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEJpbmRp
bmcuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhCaW5kaW5nLmNwcAppbmRleCA4
MjYwZmZkLi4zODEwNTA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9W
OEJpbmRpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4QmluZGluZy5j
cHAKQEAgLTI4NSw2ICsyODUsMTYgQEAgYm9vbCBpc1VuZGVmaW5lZE9yTnVsbCh2ODo6SGFuZGxl
PHY4OjpWYWx1ZT4gdmFsdWUpCiAgICAgcmV0dXJuIHZhbHVlLT5Jc051bGwoKSB8fCB2YWx1ZS0+
SXNVbmRlZmluZWQoKTsKIH0KIAorYm9vbCBpc0hvc3RPYmplY3Qodjg6OkhhbmRsZTx2ODo6T2Jq
ZWN0PiBvYmplY3QpCit7CisgICAgLy8gSWYgdGhlIG9iamVjdCBoYXMgYW55IGludGVybmFsIGZp
ZWxkcywgdGhlbiB3ZSB3b24ndCBiZSBhYmxlIHRvIHNlcmlhbGl6ZSBvciBkZXNlcmlhbGl6ZQor
ICAgIC8vIHRoZW07IGNvbnZlbmllbnRseSwgdGhpcyBpcyBhbHNvIGEgcXVpY2sgd2F5IHRvIGRl
dGVjdCBET00gd3JhcHBlciBvYmplY3RzLCBiZWNhdXNlCisgICAgLy8gdGhlIG1lY2hhbmlzbSBm
b3IgdGhlc2UgcmVsaWVzIG9uIGRhdGEgc3RvcmVkIGluIHRoZXNlIGZpZWxkcy4gV2Ugc2hvdWxk
CisgICAgLy8gY2F0Y2ggZXh0ZXJuYWwgYXJyYXkgZGF0YSBhbmQgZXh0ZXJuYWwgcGl4ZWwgZGF0
YSBhcyBhIHNwZWNpYWwgY2FzZSAobm90aW5nIHRoYXQgQ2FudmFzUGl4ZWxBcnJheXMKKyAgICAv
LyBjYW4ndCBiZSBzZXJpYWxpemVkIHdpdGhvdXQgYmVpbmcgd3JhcHBlZCBieSBJbWFnZURhdGEg
YWNjb3JkaW5nIHRvIHRoZSBzdGFuZGFyZCkuCisgICAgcmV0dXJuIG9iamVjdC0+SW50ZXJuYWxG
aWVsZENvdW50KCkgfHwgb2JqZWN0LT5IYXNJbmRleGVkUHJvcGVydGllc0luUGl4ZWxEYXRhKCkg
fHwgb2JqZWN0LT5IYXNJbmRleGVkUHJvcGVydGllc0luRXh0ZXJuYWxBcnJheURhdGEoKTsKK30K
Kwogdjg6OkhhbmRsZTx2ODo6Qm9vbGVhbj4gdjhCb29sZWFuKGJvb2wgdmFsdWUpCiB7CiAgICAg
cmV0dXJuIHZhbHVlID8gdjg6OlRydWUoKSA6IHY4OjpGYWxzZSgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhCaW5kaW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy92OC9WOEJpbmRpbmcuaAppbmRleCBlMWUzZGUwLi4yYTFhMjc3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEJpbmRpbmcuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9WOEJpbmRpbmcuaApAQCAtMjE5LDYgKzIxOSwxMCBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKICAgICBib29sIGlzVW5kZWZpbmVkT3JOdWxsKHY4OjpIYW5kbGU8djg6OlZh
bHVlPiB2YWx1ZSk7CiAKKyAgICAvLyBSZXR1cm5zIHRydWUgaWYgdGhlIHByb3ZpZGVkIG9iamVj
dCBpcyB0byBiZSBjb25zaWRlcmVkIGEgJ2hvc3Qgb2JqZWN0JywgYXMgdXNlZCBpbiB0aGUKKyAg
ICAvLyBIVE1MNSBzdHJ1Y3R1cmVkIGNsb25lIGFsZ29yaXRobS4KKyAgICBib29sIGlzSG9zdE9i
amVjdCh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+KTsKKwogICAgIHY4OjpIYW5kbGU8djg6OkJvb2xl
YW4+IHY4Qm9vbGVhbihib29sIHZhbHVlKTsKIAogICAgIFN0cmluZyB0b1dlYkNvcmVTdHJpbmdX
aXRoTnVsbENoZWNrKHY4OjpIYW5kbGU8djg6OlZhbHVlPiB2YWx1ZSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhEYXRhVmlld0N1c3RvbS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhEYXRhVmlld0N1c3RvbS5jcHAKaW5k
ZXggY2JiOWQyNy4uNjZjMzkyOSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
djgvY3VzdG9tL1Y4RGF0YVZpZXdDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L2N1c3RvbS9WOERhdGFWaWV3Q3VzdG9tLmNwcApAQCAtNDEsNiArNDEsMTMgQEAgdjg6
OkhhbmRsZTx2ODo6VmFsdWU+IFY4RGF0YVZpZXc6OmNvbnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qg
djg6OkFyZ3VtZW50cyYgYXJncykKICAgICBpZiAoIWFyZ3MuSXNDb25zdHJ1Y3RDYWxsKCkpCiAg
ICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCJET00gb2JqZWN0IGNvbnN0cnVjdG9yIGNhbm5vdCBi
ZSBjYWxsZWQgYXMgYSBmdW5jdGlvbiIsIFY4UHJveHk6OlR5cGVFcnJvcik7CiAKKyAgICBpZiAo
IWFyZ3MuTGVuZ3RoKCkpIHsKKyAgICAgICAgLy8gc2VlIGNvbnN0cnVjdFdlYkdMQXJyYXkgLS0g
d2UgZG9uJ3Qgc2VlbSB0byBiZSBhYmxlIHRvIGRpc3Rpbmdpc2ggYmV0d2VlbgorICAgICAgICAv
LyAnbmV3IERhdGFWaWV3KCknIGFuZCB0aGUgY2FsbCB1c2VkIHRvIGNvbnN0cnVjdCB0aGUgY2Fj
aGVkIERhdGFWaWV3IG9iamVjdC4KKyAgICAgICAgUmVmUHRyPERhdGFWaWV3PiBkYXRhVmlldyA9
IERhdGFWaWV3OjpjcmVhdGUoMCk7CisgICAgICAgIFY4RE9NV3JhcHBlcjo6c2V0RE9NV3JhcHBl
cihhcmdzLkhvbGRlcigpLCAmaW5mbywgZGF0YVZpZXcuZ2V0KCkpOworICAgICAgICByZXR1cm4g
dG9WOChkYXRhVmlldy5yZWxlYXNlKCksIGFyZ3MuSG9sZGVyKCkpOworICAgIH0KICAgICBpZiAo
YXJnc1swXS0+SXNOdWxsKCkgfHwgIVY4QXJyYXlCdWZmZXI6Okhhc0luc3RhbmNlKGFyZ3NbMF0p
KQogICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dUeXBlRXJyb3IoKTsKICAgICByZXR1cm4g
Y29uc3RydWN0V2ViR0xBcnJheVdpdGhBcnJheUJ1ZmZlckFyZ3VtZW50PERhdGFWaWV3LCBjaGFy
PihhcmdzLCAmaW5mbywgdjg6OmtFeHRlcm5hbEJ5dGVBcnJheSwgZmFsc2UpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUNvcmVFeGNlcHRpb24uaWRsIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RPTUNvcmVFeGNlcHRpb24uaWRsCmluZGV4IDk0NTcxMmQuLmRjNTI0MGIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01Db3JlRXhjZXB0aW9uLmlkbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRE9NQ29yZUV4Y2VwdGlvbi5pZGwKQEAgLTc0LDYgKzc0LDExIEBAIG1v
ZHVsZSBjb3JlIHsKICAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgICAgICBBQk9SVF9FUlIg
ICAgICAgICAgICAgICAgICAgICAgPSAyMDsKICAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQg
ICAgICBVUkxfTUlTTUFUQ0hfRVJSICAgICAgICAgICAgICAgPSAyMTsKICAgICAgICAgY29uc3Qg
dW5zaWduZWQgc2hvcnQgICAgICBRVU9UQV9FWENFRURFRF9FUlIgICAgICAgICAgICAgPSAyMjsK
KyAgICAgICAgLy8gVElNRU9VVF9FUlIgaXMgY3VycmVudGx5IHVudXNlZCBidXQgd2FzIGFkZGVk
IGZvciBjb21wbGV0ZW5lc3MuCisgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0ICAgICAgVElN
RU9VVF9FUlIgICAgICAgICAgICAgICAgICAgID0gMjM7CisgICAgICAgIC8vIElOVkFMSURfTk9E
RV9UWVBFX0VSUiBpcyBjdXJyZW50bHkgdW51c2VkIGJ1dCB3YXMgYWRkZWQgZm9yIGNvbXBsZXRl
bmVzcy4KKyAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgICAgICBJTlZBTElEX05PREVfVFlQ
RV9FUlIgICAgICAgICAgPSAyNDsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgICAgICBE
QVRBX0NMT05FX0VSUiAgICAgICAgICAgICAgICAgPSAyNTsKICAgICB9OwogCiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXhjZXB0aW9uQ29kZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRXhjZXB0aW9uQ29kZS5jcHAKaW5kZXggY2FlYTU1OS4uOGI4MmY1YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0V4Y2VwdGlvbkNvZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9FeGNlcHRpb25Db2RlLmNwcApAQCAtNzIsNyArNzIsMTAgQEAgc3RhdGljIGNvbnN0
IGNoYXIqIGNvbnN0IGV4Y2VwdGlvbk5hbWVzW10gPSB7CiAgICAgIk5FVFdPUktfRVJSIiwKICAg
ICAiQUJPUlRfRVJSIiwKICAgICAiVVJMX01JU01BVENIX0VSUiIsCi0gICAgIlFVT1RBX0VYQ0VF
REVEX0VSUiIKKyAgICAiUVVPVEFfRVhDRUVERURfRVJSIiwKKyAgICAiVElNRU9VVF9FUlIiLAor
ICAgICJJTlZBTElEX05PREVfVFlQRV9FUlIiLAorICAgICJEQVRBX0NMT05FX0VSUiIKIH07CiAK
IHN0YXRpYyBjb25zdCBjaGFyKiBjb25zdCBleGNlcHRpb25EZXNjcmlwdGlvbnNbXSA9IHsKQEAg
LTk4LDcgKzEwMSwxMCBAQCBzdGF0aWMgY29uc3QgY2hhciogY29uc3QgZXhjZXB0aW9uRGVzY3Jp
cHRpb25zW10gPSB7CiAgICAgIkEgbmV0d29yayBlcnJvciBvY2N1cmVkLiIsCiAgICAgIlRoZSB1
c2VyIGFib3J0ZWQgYSByZXF1ZXN0LiIsCiAgICAgIkEgd29ya2VyIGdsb2JhbCBzY29wZSByZXBy
ZXNlbnRlZCBhbiBhYnNvbHV0ZSBVUkwgdGhhdCBpcyBub3QgZXF1YWwgdG8gdGhlIHJlc3VsdGlu
ZyBhYnNvbHV0ZSBVUkwuIiwKLSAgICAiQW4gYXR0ZW1wdCB3YXMgbWFkZSB0byBhZGQgc29tZXRo
aW5nIHRvIHN0b3JhZ2UgdGhhdCBleGNlZWRlZCB0aGUgcXVvdGEuIgorICAgICJBbiBhdHRlbXB0
IHdhcyBtYWRlIHRvIGFkZCBzb21ldGhpbmcgdG8gc3RvcmFnZSB0aGF0IGV4Y2VlZGVkIHRoZSBx
dW90YS4iLAorICAgICJBIHRpbWVvdXQgb2NjdXJyZWQuIiwKKyAgICAiVGhlIHN1cHBsaWVkIG5v
ZGUgaXMgaW52YWxpZCBvciBoYXMgYW4gaW52YWxpZCBhbmNlc3RvciBmb3IgdGhpcyBvcGVyYXRp
b24uIiwKKyAgICAiQW4gb2JqZWN0IGNvdWxkIG5vdCBiZSBjbG9uZWQuIgogfTsKIAogc3RhdGlj
IGNvbnN0IGNoYXIqIGNvbnN0IHJhbmdlRXhjZXB0aW9uTmFtZXNbXSA9IHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9FeGNlcHRpb25Db2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RXhjZXB0aW9uQ29kZS5oCmluZGV4IDljZWU2NmIuLmNlYTZmNjcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FeGNlcHRpb25Db2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V4
Y2VwdGlvbkNvZGUuaApAQCAtNTcsMTQgKzU3LDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICAgICAgTkVUV09SS19FUlIgPSAxOSwKICAgICAgICAgQUJPUlRfRVJSID0gMjAsCiAgICAgICAg
IFVSTF9NSVNNQVRDSF9FUlIgPSAyMSwKLSAgICAgICAgUVVPVEFfRVhDRUVERURfRVJSID0gMjIK
LQotICAgICAgICAvLyBJbnRyb2R1Y2VkIGluIEZpbGUgQVBJOgotICAgICAgICAvLyBodHRwOi8v
d3d3LnczLm9yZy9UUi9maWxlLXVwbG9hZC8jZGZuLWZpbGVlcnJvcgotI2lmIEVOQUJMRShCTE9C
KSB8fCBFTkFCTEUoRklMRV9TWVNURU0pCi0gICAgICAgICwgTk9UX1JFQURBQkxFX0VSUiA9IDI0
Ci0gICAgICAgICwgRU5DT0RJTkdfRVJSID0gMjYKLSNlbmRpZgorICAgICAgICBRVU9UQV9FWENF
RURFRF9FUlIgPSAyMiwKKyAgICAgICAgVElNRU9VVF9FUlIgPSAyMywKKyAgICAgICAgSU5WQUxJ
RF9OT0RFX1RZUEVfRVJSID0gMjQsCisgICAgICAgIERBVEFfQ0xPTkVfRVJSID0gMjUKICAgICB9
OwogCiAgICAgZW51bSBFeGNlcHRpb25UeXBlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL0FycmF5QnVmZmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L0FycmF5QnVmZmVyLmNwcAppbmRleCA3MWNmYzYyLi5lODNlMDFlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9BcnJheUJ1ZmZlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvQXJyYXlCdWZmZXIuY3BwCkBAIC00Nyw3ICs0Nyw3IEBAIFBhc3NSZWZQ
dHI8QXJyYXlCdWZmZXI+IEFycmF5QnVmZmVyOjpjcmVhdGUoQXJyYXlCdWZmZXIqIG90aGVyKQog
ICAgIHJldHVybiBBcnJheUJ1ZmZlcjo6Y3JlYXRlKG90aGVyLT5kYXRhKCksIG90aGVyLT5ieXRl
TGVuZ3RoKCkpOwogfQogCi1QYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBBcnJheUJ1ZmZlcjo6Y3Jl
YXRlKHZvaWQqIHNvdXJjZSwgdW5zaWduZWQgYnl0ZUxlbmd0aCkKK1Bhc3NSZWZQdHI8QXJyYXlC
dWZmZXI+IEFycmF5QnVmZmVyOjpjcmVhdGUoY29uc3Qgdm9pZCogc291cmNlLCB1bnNpZ25lZCBi
eXRlTGVuZ3RoKQogewogICAgIHZvaWQqIGRhdGEgPSB0cnlBbGxvY2F0ZShieXRlTGVuZ3RoLCAx
KTsKICAgICBpZiAoIWRhdGEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9BcnJheUJ1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQXJyYXlCdWZmZXIu
aAppbmRleCBmZjVlNTk5Li40MTM1YzM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9BcnJheUJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0Fy
cmF5QnVmZmVyLmgKQEAgLTM1LDcgKzM1LDcgQEAgY2xhc3MgQXJyYXlCdWZmZXIgOiBwdWJsaWMg
UmVmQ291bnRlZDxBcnJheUJ1ZmZlcj4gewogICBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQ
dHI8QXJyYXlCdWZmZXI+IGNyZWF0ZSh1bnNpZ25lZCBudW1FbGVtZW50cywgdW5zaWduZWQgZWxl
bWVudEJ5dGVTaXplKTsKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4gY3JlYXRl
KEFycmF5QnVmZmVyKik7Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IGNyZWF0
ZSh2b2lkKiBzb3VyY2UsIHVuc2lnbmVkIGJ5dGVMZW5ndGgpOworICAgIHN0YXRpYyBQYXNzUmVm
UHRyPEFycmF5QnVmZmVyPiBjcmVhdGUoY29uc3Qgdm9pZCogc291cmNlLCB1bnNpZ25lZCBieXRl
TGVuZ3RoKTsKIAogICAgIHZvaWQqIGRhdGEoKTsKICAgICBjb25zdCB2b2lkKiBkYXRhKCkgY29u
c3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9EYXRhVmlldy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9EYXRhVmlldy5jcHAKaW5kZXggZTAwNDQzZC4u
M2RiMDZkNiAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvRGF0YVZpZXcu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0RhdGFWaWV3LmNwcApAQCAtNDAs
NiArNDAsMTQgQEAgdW5pb24gVmFsdWUgewogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK1Bhc3NS
ZWZQdHI8RGF0YVZpZXc+IERhdGFWaWV3OjpjcmVhdGUodW5zaWduZWQgbGVuZ3RoKQoreworICAg
IFJlZlB0cjxBcnJheUJ1ZmZlcj4gYnVmZmVyID0gQXJyYXlCdWZmZXI6OmNyZWF0ZShsZW5ndGgs
IHNpemVvZih1aW50OF90KSk7CisgICAgaWYgKCFidWZmZXIuZ2V0KCkpCisgICAgICAgIHJldHVy
biAwOworICAgIHJldHVybiBjcmVhdGUoYnVmZmVyLCAwLCBsZW5ndGgpOworfQorCiBQYXNzUmVm
UHRyPERhdGFWaWV3PiBEYXRhVmlldzo6Y3JlYXRlKFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IGJ1
ZmZlciwgdW5zaWduZWQgYnl0ZU9mZnNldCwgdW5zaWduZWQgYnl0ZUxlbmd0aCkKIHsKICAgICBp
ZiAoYnl0ZU9mZnNldCA+IGJ1ZmZlci0+Ynl0ZUxlbmd0aCgpKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvRGF0YVZpZXcuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL0RhdGFWaWV3LmgKaW5kZXggYThhYmE1Yy4uNWU4MGY4YyAxMDA3NTUKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvRGF0YVZpZXcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9EYXRhVmlldy5oCkBAIC0zNCw2ICszNCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogY2xhc3MgRGF0YVZpZXcgOiBwdWJsaWMgQXJyYXlCdWZmZXJWaWV3IHsKIHB1YmxpYzoKKyAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxEYXRhVmlldz4gY3JlYXRlKHVuc2lnbmVkIGxlbmd0aCk7CiAg
ICAgc3RhdGljIFBhc3NSZWZQdHI8RGF0YVZpZXc+IGNyZWF0ZShQYXNzUmVmUHRyPEFycmF5QnVm
ZmVyPiwgdW5zaWduZWQgYnl0ZU9mZnNldCwgdW5zaWduZWQgYnl0ZUxlbmd0aCk7CiAKICAgICB2
aXJ0dWFsIGJvb2wgaXNEYXRhVmlldygpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>100737</attachid>
            <date>2011-07-13 17:44:14 -0700</date>
            <delta_ts>2011-07-13 17:46:15 -0700</delta_ts>
            <desc>Address comments (re: code and tests both).</desc>
            <filename>patch542.patch</filename>
            <type>application/octet-stream</type>
            <size>156920</size>
            <attacher name="Luke Zarko">lukezarko+bugzilla</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2YzczYzllLi5hODgwODczIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTkgQEAKKzIwMTEtMDct
MTMgIEx1a2UgWmFya28gIDxsdWtlemFya29AZ21haWwuY29tPgorCisgICAgICAgIEJyaW5nIFY4
J3MgU2VyaWFsaXplZFNjcmlwdFZhbHVlIGltcGxlbWVudGF0aW9uIHVwIHRvIGRhdGUuCisKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYzNDgxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBUaGlz
IHBhdGNoIHJlZmFjdG9ycyB3aW5kb3ctcG9zdG1lc3NhZ2UtY2xvbmUgaW50byBhIHNjcmlwdCB0
ZXN0LCBjaGVja3MgYWRkaXRpb25hbCBmdW5jdGlvbmFsaXR5IHNldCBmb3J0aCBpbiB0aGUgc3Rh
bmRhcmQsIGFuZCBmaXhlcyB1cCBleHBlY3RhdGlvbnMuIEl0IGFsc28gY2hlY2tzIHRoZSBjb3Jy
ZWN0bmVzcyBvZiB0eXBlZCBhcnJheSBtZXNzYWdlIHBhc3Npbmcgb24gQ2hyb21pdW0uCisKKyAg
ICAgICAgKiBmYXN0L2RvbS9XaW5kb3cvc2NyaXB0LXRlc3RzL3Bvc3RtZXNzYWdlLWNsb25lLWRl
ZXAtYXJyYXkuanM6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL1dpbmRvdy9zY3JpcHQtdGVz
dHMvcG9zdG1lc3NhZ2UtY2xvbmUtcmVhbGx5LWRlZXAtYXJyYXkuanM6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QvZG9tL1dpbmRvdy9zY3JpcHQtdGVzdHMvcG9zdG1lc3NhZ2UtY2xvbmUuanM6IEFk
ZGVkLgorICAgICAgICAodGh1bmspOgorICAgICAgICAqIGZhc3QvZG9tL1dpbmRvdy9zY3JpcHQt
dGVzdHMvcG9zdG1lc3NhZ2UtdGVzdC5qczogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvZmFzdC9k
b20vV2luZG93L3dpbmRvdy1wb3N0bWVzc2FnZS1jbG9uZS5odG1sLgorICAgICAgICAoKToKKyAg
ICAgICAgKHNhZmVUb1N0cmluZyk6CisgICAgICAgIChzaG91bGRCZSk6CisgICAgICAgIChzaG91
bGRCZUlkZW50aWNhbCk6CisgICAgICAgIChkb1Bhc3MpOgorICAgICAgICAoZG9GYWlsKToKKyAg
ICAgICAgKHdpbmRvdy5kb1Bhc3NGYWlsKToKKyAgICAgICAgKG9ubWVzc2FnZSk6CisgICAgICAg
IChDb25zdHJ1Y3RvcldpdGhQcm90b3R5cGUpOgorICAgICAgICAod2luZG93LnRyeVBvc3RNZXNz
YWdlKToKKyAgICAgICAgKiBmYXN0L2RvbS9XaW5kb3cvd2luZG93LXBvc3RtZXNzYWdlLWNsb25l
LWRlZXAtYXJyYXktZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9XaW5k
b3cvd2luZG93LXBvc3RtZXNzYWdlLWNsb25lLWRlZXAtYXJyYXkuaHRtbDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9kb20vV2luZG93L3dpbmRvdy1wb3N0bWVzc2FnZS1jbG9uZS1leHBlY3RlZC50
eHQ6CisgICAgICAgICogZmFzdC9kb20vV2luZG93L3dpbmRvdy1wb3N0bWVzc2FnZS1jbG9uZS1y
ZWFsbHktZGVlcC1hcnJheS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9t
L1dpbmRvdy93aW5kb3ctcG9zdG1lc3NhZ2UtY2xvbmUtcmVhbGx5LWRlZXAtYXJyYXkuaHRtbDog
QWRkZWQuCisgICAgICAgICogZmFzdC9kb20vV2luZG93L3dpbmRvdy1wb3N0bWVzc2FnZS1jbG9u
ZS5odG1sOgorICAgICAgICAqIGZhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9jYW52YXMvd2ViZ2wv
YXJyYXktbWVzc2FnZS1wYXNzaW5nLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxh
dGZvcm0vY2hyb21pdW0vZmFzdC9jYW52YXMvd2ViZ2wvYXJyYXktbWVzc2FnZS1wYXNzaW5nLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL2Zhc3QvY2FudmFzL3dlYmds
L3NjcmlwdC10ZXN0cy9hcnJheS1tZXNzYWdlLXBhc3NpbmcuanM6IEFkZGVkLgorICAgICAgICAo
Y2xhc3NDb21wYXJlKToKKyAgICAgICAgKGJ1ZmZlckNvbXBhcmUpOgorICAgICAgICAodmlld0Nv
bXBhcmUpOgorICAgICAgICAodHlwZWRBcnJheUNvbXBhcmUpOgorICAgICAgICAoZGF0YVZpZXdD
b21wYXJlKToKKyAgICAgICAgKGNyZWF0ZUJ1ZmZlcik6CisgICAgICAgIChjcmVhdGVUeXBlZEFy
cmF5KToKKyAgICAgICAgKGNyZWF0ZVR5cGVkQXJyYXlPdmVyQnVmZmVyKToKKyAgICAgICAgKHRl
c3RMaXN0KToKKyAgICAgICAgKGRvbmVUZXN0KToKKyAgICAgICAgKHdpbmRvd0hhbmRsZU1lc3Nh
Z2UpOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ct
cG9zdG1lc3NhZ2UtY2xvbmUtZGVlcC1hcnJheS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcG9zdG1lc3NhZ2Ut
Y2xvbmUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9m
YXN0L2RvbS9XaW5kb3cvd2luZG93LXBvc3RtZXNzYWdlLWNsb25lLXJlYWxseS1kZWVwLWFycmF5
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9l
eHBlY3RhdGlvbnMudHh0OgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9mYXN0L2RvbS9XaW5kb3cv
d2luZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL3F0LXdr
Mi9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIHBsYXRmb3JtL3F0L2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0c3RvcmUtYmFzaWNzLWV4
cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9vYmplY3RzdG9yZS1iYXNp
Y3MuaHRtbDoKKwogMjAxMS0wNy0xMyAgR2Fib3IgTG9raSAgPGxva2lAd2Via2l0Lm9yZz4KIAog
ICAgICAgICBbUXRdIEZsYWtleSB0ZXN0OiB4bWxodHRwcmVxdWVzdC01MG1zLWRvd25sb2FkLWRp
c3BhdGNoLmh0bWwgb24gQVJNCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5k
b3cvc2NyaXB0LXRlc3RzL3Bvc3RtZXNzYWdlLWNsb25lLWRlZXAtYXJyYXkuanMgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9XaW5kb3cvc2NyaXB0LXRlc3RzL3Bvc3RtZXNzYWdlLWNsb25lLWRlZXAt
YXJyYXkuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWQxZWFkOQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9zY3JpcHQtdGVzdHMv
cG9zdG1lc3NhZ2UtY2xvbmUtZGVlcC1hcnJheS5qcwpAQCAtMCwwICsxLDYgQEAKK2RvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJkZXNjcmlwdGlvbiIpLmlubmVySFRNTCA9ICJUZXN0cyB0aGF0IHdl
IHN1cHBvcnQgY2xvbmluZyBkZWVwKGlzaCkgYXJyYXlzLiI7CitkZWVwQXJyYXk9W107Citmb3Ig
KHZhciBpID0gMDsgaSA8IDEwMDAwOyBpKyspCisgICAgZGVlcEFycmF5PVtkZWVwQXJyYXldOwor
dHJ5UG9zdE1lc3NhZ2UoJ2RlZXBBcnJheScpOwordHJ5UG9zdE1lc3NhZ2UoJyJkb25lIicpOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3NjcmlwdC10ZXN0cy9wb3N0
bWVzc2FnZS1jbG9uZS1yZWFsbHktZGVlcC1hcnJheS5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZG9t
L1dpbmRvdy9zY3JpcHQtdGVzdHMvcG9zdG1lc3NhZ2UtY2xvbmUtcmVhbGx5LWRlZXAtYXJyYXku
anMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGZiNjA5NgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9zY3JpcHQtdGVzdHMvcG9zdG1l
c3NhZ2UtY2xvbmUtcmVhbGx5LWRlZXAtYXJyYXkuanMKQEAgLTAsMCArMSw2IEBACitkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgiZGVzY3JpcHRpb24iKS5pbm5lckhUTUwgPSAiVGVzdHMgdGhhdCB3
ZSBhYm9ydCBjbG9uaW5nIG92ZXJkZWVwIGFycmF5cy4iOworcmVhbGx5RGVlcEFycmF5PVtdOwor
Zm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7IGkrKykKKyAgICByZWFsbHlEZWVwQXJyYXk9W3Jl
YWxseURlZXBBcnJheV07Cit0cnlQb3N0TWVzc2FnZSgncmVhbGx5RGVlcEFycmF5JywgdHJ1ZSwg
bnVsbCwgRE9NRXhjZXB0aW9uLkRBVEFfQ0xPTkVfRVJSKTsKK3RyeVBvc3RNZXNzYWdlKCciZG9u
ZSInKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9zY3JpcHQtdGVz
dHMvcG9zdG1lc3NhZ2UtY2xvbmUuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvc2Ny
aXB0LXRlc3RzL3Bvc3RtZXNzYWdlLWNsb25lLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjhkYjViYTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9XaW5kb3cvc2NyaXB0LXRlc3RzL3Bvc3RtZXNzYWdlLWNsb25lLmpzCkBAIC0wLDAgKzEsMjc0
IEBACitkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGVzY3JpcHRpb24iKS5pbm5lckhUTUwgPSAi
VGVzdHMgdGhhdCB3ZSBjbG9uZSBvYmplY3QgaGllcmFyY2hpZXMiOworCit0cnlQb3N0TWVzc2Fn
ZSgnbnVsbCcpOwordHJ5UG9zdE1lc3NhZ2UoJ3VuZGVmaW5lZCcpOwordHJ5UG9zdE1lc3NhZ2Uo
JzEnKTsKK3RyeVBvc3RNZXNzYWdlKCd0cnVlJyk7Cit0cnlQb3N0TWVzc2FnZSgnIjEiJyk7Cit0
cnlQb3N0TWVzc2FnZSgnKHt9KScpOwordHJ5UG9zdE1lc3NhZ2UoJyh7YToxfSknKTsKK3RyeVBv
c3RNZXNzYWdlKCcoe2E6ImEifSknKTsKK3RyeVBvc3RNZXNzYWdlKCcoe2I6ImEiLCBhOiJiIn0p
Jyk7Cit0cnlQb3N0TWVzc2FnZSgnKHtwMDoic3RyaW5nMCIsIHAxOiJzdHJpbmcxIiwgcDI6InN0
cmluZzIiLCBwMzoic3RyaW5nMyIsIHA0OiJzdHJpbmc0IiwgcDU6InN0cmluZzUiLCBwNjoic3Ry
aW5nNiIsIHA3OiJzdHJpbmc3IiwgcDg6InN0cmluZzgiLCBwOToic3RyaW5nOSIsIHAxMDoic3Ry
aW5nMTAiLCBwMTE6InN0cmluZzExIiwgcDEyOiJzdHJpbmcxMiIsIHAxMzoic3RyaW5nMTMiLCBw
MTQ6InN0cmluZzE0IiwgcDE1OiJzdHJpbmcxNSIsIHAxNjoic3RyaW5nMTYiLCBwMTc6InN0cmlu
ZzE3IiwgcDE4OiJzdHJpbmcxOCIsIHAxOToic3RyaW5nMTkifSknKTsKK3RyeVBvc3RNZXNzYWdl
KCcoe3AwOiJzdHJpbmcxIiwgcDE6InN0cmluZzEiLCBwMjoic3RyaW5nMiIsIHAzOiJzdHJpbmcz
IiwgcDQ6InN0cmluZzQiLCBwNToic3RyaW5nNSIsIHA2OiJzdHJpbmc2IiwgcDc6InN0cmluZzci
LCBwODoic3RyaW5nOCIsIHA5OiJzdHJpbmc5IiwgcDEwOiJzdHJpbmcxMCIsIHAxMToic3RyaW5n
MTEiLCBwMTI6InN0cmluZzEyIiwgcDEzOiJzdHJpbmcxMyIsIHAxNDoic3RyaW5nMTQiLCBwMTU6
InN0cmluZzE1IiwgcDE2OiJzdHJpbmcxNiIsIHAxNzoic3RyaW5nMTciLCBwMTg6InN0cmluZzE4
IiwgcDE5OiJzdHJpbmcxOSJ9KScpOwordHJ5UG9zdE1lc3NhZ2UoJyh7YToiIn0pJyk7Cit0cnlQ
b3N0TWVzc2FnZSgnKHthOjB9KScpOwordHJ5UG9zdE1lc3NhZ2UoJyh7YToxfSknKTsKK3RyeVBv
c3RNZXNzYWdlKCdbXScpOwordHJ5UG9zdE1lc3NhZ2UoJ1siYSIsICJhIiwgImIiLCAiYSIsICJi
Il0nKTsKK3RyeVBvc3RNZXNzYWdlKCdbImEiLCAiYSIsICJiIiwge2E6ImIiLCBiOiJhIn1dJyk7
Cit0cnlQb3N0TWVzc2FnZSgnWzEsMiwzXScpOwordHJ5UG9zdE1lc3NhZ2UoJ1ssLDFdJyk7Cit0
cnlQb3N0TWVzc2FnZSgnKGZ1bmN0aW9uKCl7fSknLCB0cnVlLCBudWxsLCBET01FeGNlcHRpb24u
REFUQV9DTE9ORV9FUlIpOwordHJ5UG9zdE1lc3NhZ2UoJ25ldyBEYXRlKDEyMzQ1Njc4OTAwMDAp
Jyk7Cit0cnlQb3N0TWVzc2FnZSgnbmV3IENvbnN0cnVjdG9yV2l0aFByb3RvdHlwZSgiZm9vIikn
LCBmYWxzZSwgJyh7ZmllbGQ6ImZvbyJ9KScpOworY3ljbGljT2JqZWN0PXt9OworY3ljbGljT2Jq
ZWN0LnNlbGYgPSBjeWNsaWNPYmplY3Q7Cit0cnlQb3N0TWVzc2FnZSgnY3ljbGljT2JqZWN0Jywg
ZmFsc2UsICJjeWNsaWNPYmplY3QiKTsKK2N5Y2xpY0FycmF5PVtdOworY3ljbGljQXJyYXlbMF0g
PSBjeWNsaWNBcnJheTsKK3RyeVBvc3RNZXNzYWdlKCdjeWNsaWNBcnJheScsIGZhbHNlLCAiY3lj
bGljQXJyYXkiKTsKK29iamVjdEdyYXBoID0ge307CitvYmplY3QgPSB7fTsKK29iamVjdEdyYXBo
LmdyYXBoMSA9IG9iamVjdDsKK29iamVjdEdyYXBoLmdyYXBoMiA9IG9iamVjdDsKK3RyeVBvc3RN
ZXNzYWdlKCdvYmplY3RHcmFwaCcsIGZhbHNlLCAib2JqZWN0R3JhcGgiKTsKK2FycmF5R3JhcGgg
PSBbb2JqZWN0LCBvYmplY3RdOwordHJ5UG9zdE1lc3NhZ2UoJ2FycmF5R3JhcGgnLCBmYWxzZSwg
ImFycmF5R3JhcGgiKTsKK3RyeVBvc3RNZXNzYWdlKCd3aW5kb3cnLCB0cnVlKTsKK3RyeVBvc3RN
ZXNzYWdlKCcoe2dldCBhKCkgeyB0aHJvdyAieCIgfX0pJywgdHJ1ZSk7CisKK2lmICh3aW5kb3cu
ZXZlbnRTZW5kZXIpIHsKKyAgICB2YXIgZmlsZUlucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoImZpbGVJbnB1dCIpOworICAgIHZhciBmaWxlUmVjdCA9IGZpbGVJbnB1dC5nZXRDbGllbnRS
ZWN0cygpWzBdOworICAgIHZhciB0YXJnZXRYID0gZmlsZVJlY3QubGVmdCArIGZpbGVSZWN0Lndp
ZHRoIC8gMjsKKyAgICB2YXIgdGFyZ2V0WSA9IGZpbGVSZWN0LnRvcCArIGZpbGVSZWN0LmhlaWdo
dCAvIDI7CisgICAgZXZlbnRTZW5kZXIuYmVnaW5EcmFnV2l0aEZpbGVzKFsnZ290LWZpbGUtdXBs
b2FkLmh0bWwnLCAnZ290LWZpbGUtdXBsb2FkLTIuaHRtbCddKTsKKyAgICBldmVudFNlbmRlci5t
b3VzZU1vdmVUbyh0YXJnZXRYLCB0YXJnZXRZKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7
Cit9Cit2YXIgaW1hZ2VEYXRhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIikuZ2V0
Q29udGV4dCgiMmQiKS5jcmVhdGVJbWFnZURhdGEoMTAsMTApOworZm9yICh2YXIgaSA9IDA7IGkg
PCBpbWFnZURhdGEuZGF0YS5sZW5ndGggKiA0OyBpKyspCisgICAgaW1hZ2VEYXRhLmRhdGFbaV0g
PSBpICUgMjU2OwordmFyIG11dGF0ZWRJbWFnZURhdGEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCJjYW52YXMiKS5nZXRDb250ZXh0KCIyZCIpLmNyZWF0ZUltYWdlRGF0YSgxMCwxMCk7Citmb3Ig
KHZhciBpID0gMDsgaSA8IGltYWdlRGF0YS5kYXRhLmxlbmd0aCAqIDQ7IGkrKykKKyAgICBtdXRh
dGVkSW1hZ2VEYXRhLmRhdGFbaV0gPSBpICUgMjU2OwordHJ5UG9zdE1lc3NhZ2UoJ2ltYWdlRGF0
YScsIGZhbHNlLCBpbWFnZURhdGEpOwordHJ5UG9zdE1lc3NhZ2UoJ2ltYWdlRGF0YS5kYXRhJywg
dHJ1ZSwgbnVsbCwgRE9NRXhjZXB0aW9uLkRBVEFfQ0xPTkVfRVJSKQordHJ5UG9zdE1lc3NhZ2Uo
J211dGF0ZWRJbWFnZURhdGEnLCBmYWxzZSwgaW1hZ2VEYXRhKTsKK3RyeVBvc3RNZXNzYWdlKCdt
dXRhdGVkSW1hZ2VEYXRhLmRhdGEnLCB0cnVlLCBudWxsLCBET01FeGNlcHRpb24uREFUQV9DTE9O
RV9FUlIpCitmb3IgKHZhciBpID0gMDsgaSA8IGltYWdlRGF0YS5kYXRhLmxlbmd0aCAqIDQ7IGkr
KykKKyAgICBtdXRhdGVkSW1hZ2VEYXRhLmRhdGFbaV0gPSAwOworCitmdW5jdGlvbiB0aHVuayhz
KSB7CisgICAgcmV0dXJuICIoZnVuY3Rpb24oKSB7IiArIHMgKyAifSkoKSI7Cit9Cit0cnlQb3N0
TWVzc2FnZSh0aHVuaygncmV0dXJuIDQyOycpLCBmYWxzZSwgJzQyJyk7Cit0cnlQb3N0TWVzc2Fn
ZSh0aHVuaygncmV0dXJuIDQyOycpLCBmYWxzZSwgdGh1bmsoJ3JldHVybiA0MCArIDI7JykpOwor
dHJ5UG9zdE1lc3NhZ2UodGh1bmsoJ3JldHVybiA0MjsnKSwgZmFsc2UsICJldmFsVGh1bmsiLAor
ICAgICAgICAgICAgICAgZnVuY3Rpb24odikgeyBkb1Bhc3NGYWlsKHYgPT0gNDIsICJldmFsVGh1
bmsgT0siKTsgfSkKKworLy8gT25seSBlbnVtZXJhYmxlIHByb3BlcnRpZXMgc2hvdWxkIGJlIHNl
cmlhbGl6ZWQuCit0cnlQb3N0TWVzc2FnZSh0aHVuaygndmFyIG8gPSB7eDoiaGVsbG8ifTsgT2Jq
ZWN0LmRlZmluZVByb3BlcnR5KG8sICJ5Iiwge3ZhbHVlOiJnb29kYnllIn0pOyByZXR1cm4gbzsn
KSwgZmFsc2UsICcoe3g6ImhlbGxvIn0pJyk7CisKKy8vIEl0J3MgdW5jbGVhciB3aGF0IHdlIHNo
b3VsZCBkbyBpZiBhbiBhY2Nlc3NvciBtb2RpZmllcyBhbiBvYmplY3Qgb3V0IGZyb20gdW5kZXIg
dXMKKy8vIHdoaWxlIHdlJ3JlIHNlcmlhbGl6aW5nIGl0OyB0aGUgc3RhbmRhcmQgZG9lcyBtYW5k
YXRlIGNlcnRhaW4gYXNwZWN0cyBhYm91dCBldmFsdWF0aW9uCisvLyBvcmRlciwgdGhvdWdoLCBp
bmNsdWRpbmcgdGhhdCBwcm9wZXJ0aWVzIG11c3QgYmUgcHJvY2Vzc2VkIGluIHRoZWlyIGVudW1l
cmF0aW9uIG9yZGVyLgordHJ5UG9zdE1lc3NhZ2UodGh1bmsoCisgICAgICAgICd2YXIgYSA9IFsw
LCAxLCAyXTsgJyArCisgICAgICAgICd2YXIgYiA9IHsgZ2V0IHgoKSB7IGFbMF0gPSA0MDsgYVsy
XSA9IDQyOyBhLnB1c2goNDMpOyByZXR1cm4gNDE7IH19OyAnICsKKyAgICAgICAgJ2FbMV0gPSBi
OyAnICsKKyAgICAgICAgJ3JldHVybiBhOycKKyAgICApLCBmYWxzZSwgImV2YWxUaHVuayIsIGZ1
bmN0aW9uKHYpIHsKKyAgICAgICAgZG9QYXNzRmFpbCh2Lmxlbmd0aCA9PT0gMywgImxlbmd0aCBj
b3JyZWN0Iik7IC8vIHVuZGVmaW5lZAorICAgICAgICBkb1Bhc3NGYWlsKHZbMF0gPT09IDAsICJl
dmFsdWF0aW9uIG9yZGVyIE9LIik7IC8vIG1hbmRhdG9yeQorICAgICAgICBkb1Bhc3NGYWlsKHZb
MV0ueCA9PT0gNDEsICJldmFsdWF0aW9uIG9yZGVyIE9LL2FjY2Vzc29yIHJlYWNoZWQiKTsgLy8g
bWFuZGF0b3J5CisgICAgICAgIGRvUGFzc0ZhaWwodlsyXSA9PT0gNDIsICJldmFsdWF0aW9uIG9y
ZGVyIE9LIik7IC8vIG1hbmRhdG9yeQorICAgIH0pOworCit0cnlQb3N0TWVzc2FnZSh0aHVuaygK
KyAgICAgICAgJ3ZhciBhID0gWzAsIDEsIDJdOyAnICsKKyAgICAgICAgJ3ZhciBiID0geyBnZXQg
eCgpIHsgYS5wb3AoKTsgcmV0dXJuIDQxOyB9IH07ICcgKworICAgICAgICAnYVsxXSA9IGI7ICcg
KworICAgICAgICAncmV0dXJuIGE7JworICAgICksIGZhbHNlLCAiZXZhbFRodW5rIiwgZnVuY3Rp
b24odikgeworICAgICAgICBkb1Bhc3NGYWlsKHYubGVuZ3RoID09PSAzLCAibGVuZ3RoIGNvcnJl
Y3QiKTsgLy8gdW5kZWZpbmVkCisgICAgICAgIGRvUGFzc0ZhaWwodlswXSA9PT0gMCwgImluZGV4
IDAgT0siKTsgLy8gbWFuZGF0b3J5CisgICAgICAgIGRvUGFzc0ZhaWwodlsxXS54ID09PSA0MSwg
ImFjY2Vzc29yIHJlYWNoZWQiKTsgLy8gbWFuZGF0b3J5CisgICAgICAgIGRvUGFzc0ZhaWwodlsy
XSA9PT0gdW5kZWZpbmVkLCAiaW5kZXggMiB1bmRlZmluZWQiKTsgLy8gdW5kZWZpbmVkCisgICAg
fSk7CisKK3RyeVBvc3RNZXNzYWdlKHRodW5rKAorICAgICAgICAndmFyIGEgPSBbMCwgMSwgMl07
ICcgKworICAgICAgICAndmFyIGIgPSB7IGdldCB4KCkgeyBhLnBvcCgpOyByZXR1cm4gNDE7IH0g
fTsgJyArCisgICAgICAgICdhWzJdID0gYjsgJyArCisgICAgICAgICdyZXR1cm4gYTsnCisgICAg
KSwgZmFsc2UsICJldmFsVGh1bmsiLCBmdW5jdGlvbih2KSB7CisgICAgICAgIGRvUGFzc0ZhaWwo
di5sZW5ndGggPT09IDMsICJsZW5ndGggY29ycmVjdCIpOyAvLyB1bmRlZmluZWQKKyAgICAgICAg
ZG9QYXNzRmFpbCh2WzBdID09PSAwLCAiaW5kZXggMCBPSyIpOyAvLyBtYW5kYXRvcnkKKyAgICAg
ICAgZG9QYXNzRmFpbCh2WzFdID09PSAxLCAiaW5kZXggMSBPSyIpOyAvLyBtYW5kYXRvcnkKKyAg
ICAgICAgZG9QYXNzRmFpbCh2WzJdLnggPT09IDQxLCAiaW5kZXggMiBPSyIpOyAvLyB1bmRlZmlu
ZWQKKyAgICB9KTsKKworLy8gTm93IHdpdGggb2JqZWN0cyEgVGhpcyBpcyBhIGxpdHRsZSBtb3Jl
IHRyaWNreSBiZWNhdXNlIHRoZSBzdGFuZGFyZCBkb2VzIG5vdAorLy8gZGVmaW5lIGFuIGVudW1l
cmF0aW9uIG9yZGVyLgordHJ5UG9zdE1lc3NhZ2UodGh1bmsoCisgICAgICAgICd2YXIgYSA9IHtw
MDogMCwgcDE6IDF9OyAnICsKKyAgICAgICAgJ09iamVjdC5kZWZpbmVQcm9wZXJ0eShhLCAicDIi
LCB7Z2V0OmZ1bmN0aW9uKCkge2RlbGV0ZSBhLnAzOyByZXR1cm4gNDI7IH0sIGVudW1lcmFibGU6
IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZX0pOyAnICsKKyAgICAgICAgJ09iamVjdC5kZWZpbmVQ
cm9wZXJ0eShhLCAicDMiLCB7Z2V0OmZ1bmN0aW9uKCkge2RlbGV0ZSBhLnAyOyByZXR1cm4gNDM7
IH0sIGVudW1lcmFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZX0pOyAnICsKKyAgICAgICAg
J09iamVjdC5kZWZpbmVQcm9wZXJ0eShhLCAicDQiLCB7Z2V0OmZ1bmN0aW9uKCkgeyBhLnA1ID0g
NDU7IHJldHVybiA0NDsgfSwgZW51bWVyYWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlfSk7
ICcgKworICAgICAgICAncmV0dXJuIGE7JworICAgICksIGZhbHNlLCAiZXZhbFRodW5rIiwgZnVu
Y3Rpb24odikgeworICAgICAgICBkb1Bhc3NGYWlsKHYucDAgPT09IDAgJiYgdi5wMSA9PT0gMSwg
ImJhc2ljIHByb3BlcnRpZXMgT0siKTsgLy8gbWFuZGF0b3J5CisgICAgICAgIGRvUGFzc0ZhaWwo
di5wMiA9PT0gdW5kZWZpbmVkICYmIHYucDMgIT09IHVuZGVmaW5lZCB8fAorICAgICAgICAgICAg
ICAgICAgIHYucDIgIT09IHVuZGVmaW5lZCAmJiB2LnAzID09PSB1bmRlZmluZWQsICJvbmUgYWNj
ZXNzb3Igd2FzIHJ1biIpOyAvLyBtYW5kYXRvcnkKKyAgICAgICAgZG9QYXNzRmFpbCh2LnAyICE9
PSB1bmRlZmluZWQgfHwgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih2LCAicDIiKSA9
PT0gdW5kZWZpbmVkLCAicHJvcGVydHkgd2FzIHJlbW92ZWQiKTsgLy8gdW5kZWZpbmVkCisgICAg
ICAgIGRvUGFzc0ZhaWwodi5wMyAhPT0gdW5kZWZpbmVkIHx8IE9iamVjdC5nZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3IodiwgInAzIikgPT09IHVuZGVmaW5lZCwgInByb3BlcnR5IHdhcyByZW1vdmVk
Iik7IC8vIHVuZGVmaW5lZAorICAgICAgICBkb1Bhc3NGYWlsKHYucDQgPT09IDQ0LCAiYWNjZXNz
b3Igd2FzIHJ1biIpOyAvLyBtYW5kYXRvcnkKKyAgICAgICAgZG9QYXNzRmFpbChPYmplY3QuZ2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKHYsICJwNSIpID09PSB1bmRlZmluZWQsICJkeW5hbWljIHBy
b3BlcnR5IG5vdCBzZW50Iik7IC8vIHVuZGVmaW5lZAorICAgIH0pOworCisvLyBPYmplY3RzIHJl
dHVybmVkIGZyb20gYWNjZXNzb3JzIHNob3VsZCBzdGlsbCBiZSBjb2FsZXNjZWQuCit0cnlQb3N0
TWVzc2FnZSh0aHVuaygKKyAgICAgICAgJ3ZhciBvYmphID0ge2dldCBwKCkgeyByZXR1cm4gNDI7
IH19OyAnICsKKyAgICAgICAgJ3ZhciBtc2cgPSB7Z2V0IGEoKSB7IHJldHVybiBvYmphOyB9LCBi
OiBvYmphfTsgJyArCisgICAgICAgICdyZXR1cm4gbXNnOycKKyAgICApLCBmYWxzZSwgImV2YWxU
aHVuayIsIGZ1bmN0aW9uKHYpIHsKKyAgICAgICAgLy8gSW50ZXJlc3RpbmdseSwgdGhlIHN0YW5k
YXJkIGFkbWl0cyB0d28gYW5zd2VycyBoZXJlIQorICAgICAgICBkb1Bhc3NGYWlsKHYuYSA9PT0g
di5iLCAicmVmZXJlbmNlIGVxdWFsaXR5IHByZXNlcnZlZCIpOworICAgICAgICBkb1Bhc3NGYWls
KCh2LmIucCA9PT0gNDIgJiYgdi5hLnAgPT09IDQyKSB8fAorICAgICAgICAgICAgKHYuYi5wID09
PSBudWxsICYmIHYuYS5wID09PSBudWxsKSwgImFjY2Vzc29ycyB1c2VkIik7CisgICAgfSk7Cit0
cnlQb3N0TWVzc2FnZSh0aHVuaygKKyAgICAgICAgJ3ZhciBvYmphID0ge2dldCBwKCkgeyByZXR1
cm4gNDI7IH19OyAnICsKKyAgICAgICAgJ3ZhciBtc2cgPSB7YTogb2JqYSwgZ2V0IGIoKSB7IHJl
dHVybiBvYmphOyB9fTsgJyArCisgICAgICAgICdyZXR1cm4gbXNnOycKKyAgICApLCBmYWxzZSwg
ImV2YWxUaHVuayIsIGZ1bmN0aW9uKHYpIHsKKyAgICAgICAgLy8gSW50ZXJlc3RpbmdseSwgdGhl
IHN0YW5kYXJkIGFkbWl0cyB0d28gYW5zd2VycyBoZXJlIQorICAgICAgICBkb1Bhc3NGYWlsKHYu
YSA9PT0gdi5iLCAicmVmZXJlbmNlIGVxdWFsaXR5IHByZXNlcnZlZCAob3Bwb3NpdGUgb3JkZXIp
Iik7CisgICAgICAgIGRvUGFzc0ZhaWwoKHYuYi5wID09PSA0MiAmJiB2LmEucCA9PT0gNDIpIHx8
CisgICAgICAgICAgICAgICAgICAgKHYuYi5wID09PSBudWxsICYmIHYuYS5wID09PSBudWxsKSwg
ImFjY2Vzc29ycyB1c2VkIChvcHBvc2l0ZSBvcmRlcikiKTsKKyAgICB9KTsKKy8vIFdlIHNob3Vs
ZCBudWxsaWZ5IHRoZSByZXN1bHRzIGZyb20gYWNjZXNzb3JzIG1vcmUgdGhhbiBvbmUgbGV2ZWwg
ZGVlcCwKKy8vIGJ1dCBsZWF2ZSBvdGhlciBmaWVsZHMgdW50b3VjaGVkLgordHJ5UG9zdE1lc3Nh
Z2UodGh1bmsoCisgICAgICAgICd2YXIgb2JqYSA9IHtnZXQgcCgpIHsgcmV0dXJuIDQyOyB9LCBx
OiA0M307ICcgKworICAgICAgICAncmV0dXJuIHtnZXQgYSgpIHsgcmV0dXJuIG9iamE7IH19OycK
KyAgICApLCBmYWxzZSwgImV2YWxUaHVuayIsIGZ1bmN0aW9uKHYpIHsKKyAgICAgICAgZG9QYXNz
RmFpbCh2LmEucCA9PT0gbnVsbCwgImFjY2Vzc29yIHZhbHVlIHdhcyBudWxsaWZpZWQiKTsKKyAg
ICAgICAgZG9QYXNzRmFpbCh2LmEucSA9PT0gNDMsICJub24tYWNjZXNzb3IgdmFsdWUgd2FzIG5v
dCBudWxsaWZpZWQiKTsKKyAgICB9KTsKK3RyeVBvc3RNZXNzYWdlKHRodW5rKAorICAgICAgICAn
dmFyIG9iamIgPSB7Z2V0IHIoKSB7IHJldHVybiA0NDsgfSwgdDogNDV9OyAnICsKKyAgICAgICAg
J3ZhciBvYmphID0ge2dldCBwKCkgeyByZXR1cm4gNDI7IH0sIHE6IDQzLCBzOiBvYmpifTsgJyAr
CisgICAgICAgICdyZXR1cm4ge2dldCBhKCkgeyByZXR1cm4gb2JqYTsgfX07JworICAgICksIGZh
bHNlLCAiZXZhbFRodW5rIiwgZnVuY3Rpb24odikgeworICAgICAgICBkb1Bhc3NGYWlsKHYuYS5w
ID09PSBudWxsLCAiYWNjZXNzb3IgdmFsdWUgd2FzIG51bGxpZmllZCIpOworICAgICAgICBkb1Bh
c3NGYWlsKHYuYS5xID09PSA0MywgIm5vbi1hY2Nlc3NvciB2YWx1ZSB3YXMgbm90IG51bGxpZmll
ZCIpOworICAgICAgICBkb1Bhc3NGYWlsKHYucyAhPT0gbnVsbCwgIm5vbi1hY2Nlc3NvciB2YWx1
ZSB3YXMgbm90IG51bGxpZmllZCIpOworICAgICAgICBkb1Bhc3NGYWlsKHYuYS5zLnIgPT09IG51
bGwsICJhY2Nlc3NvciB2YWx1ZSB3YXMgbnVsbGlmaWVkIik7CisgICAgICAgIGRvUGFzc0ZhaWwo
di5hLnMudCA9PT0gNDUsICJub24tYWNjZXNzb3IgdmFsdWUgd2FzIG5vdCBudWxsaWZpZWQiKTsK
KyAgICB9KTsKK3RyeVBvc3RNZXNzYWdlKHRodW5rKAorICAgICAgICAndmFyIG9iamIgPSB7Z2V0
IHIoKSB7IHJldHVybiA0NDsgfSwgdDogNDV9OyAnICsKKyAgICAgICAgJ3ZhciBvYmphID0ge2dl
dCBwKCkgeyByZXR1cm4gNDI7IH0sIHE6IDQzLCBzOiBbb2JqYl19OyAnICsKKyAgICAgICAgJ3Jl
dHVybiB7Z2V0IGMoKSB7IHJldHVybiA0NzsgfSwgZ2V0IGEoKSB7IHJldHVybiBvYmphOyB9LCBn
ZXQgYigpIHsgcmV0dXJuIDQ2OyB9IH07JworICAgICksIGZhbHNlLCAiZXZhbFRodW5rIiwgZnVu
Y3Rpb24odikgeworICAgICAgICBkb1Bhc3NGYWlsKHYuYiA9PT0gNDYsICJhY2Nlc3NvciB2YWx1
ZSB3YXMgbm90IG51bGxpZmllZCIpOworICAgICAgICBkb1Bhc3NGYWlsKHYuYyA9PT0gNDcsICJh
Y2Nlc3NvciB2YWx1ZSB3YXMgbm90IG51bGxpZmllZCIpOworICAgICAgICBkb1Bhc3NGYWlsKHYu
YS5wID09PSBudWxsLCAiYWNjZXNzb3IgdmFsdWUgd2FzIG51bGxpZmllZCIpOworICAgICAgICBk
b1Bhc3NGYWlsKHYuYS5xID09PSA0MywgIm5vbi1hY2Nlc3NvciB2YWx1ZSB3YXMgbm90IG51bGxp
ZmllZCIpOworICAgICAgICBkb1Bhc3NGYWlsKHYuYS5zICE9PSBudWxsLCAibm9uLWFjY2Vzc29y
IHZhbHVlIHdhcyBub3QgbnVsbGlmaWVkIik7CisgICAgICAgIGRvUGFzc0ZhaWwodi5hLnMgIT09
IHVuZGVmaW5lZCwgIm5vbi1hY2Nlc3NvciB2YWx1ZSBpcyBkZWZpbmVkIik7CisgICAgICAgIGRv
UGFzc0ZhaWwodi5hLnNbMF0gIT09IG51bGwsICJub24tYWNjZXNzb3IgdmFsdWUgd2FzIG5vdCBu
dWxsaWZpZWQiKTsKKyAgICAgICAgZG9QYXNzRmFpbCh2LmEuc1swXSAhPT0gdW5kZWZpbmVkLCAi
bm9uLWFjY2Vzc29yIHZhbHVlIGlzIGRlZmluZWQiKTsKKyAgICAgICAgZG9QYXNzRmFpbCh2LmEu
c1swXS5yID09PSBudWxsLCAiYWNjZXNzb3IgdmFsdWUgd2FzIG51bGxpZmllZCIpOworICAgICAg
ICBkb1Bhc3NGYWlsKHYuYS5zWzBdLnQgPT09IDQ1LCAibm9uLWFjY2Vzc29yIHZhbHVlIHdhcyBu
b3QgbnVsbGlmaWVkIik7CisgICAgfSk7CisKKy8vIFdlIG5lZWQgdG8gcGFzcyBvdXQgdGhlIGV4
Y2VwdGlvbiByYWlzZWQgZnJvbSBpbnRlcm5hbCBhY2Nlc3NvcnMuCit0cnlQb3N0TWVzc2FnZSh0
aHVuaygKKyAgICAgICAgJ3JldHVybiB7Z2V0IGEoKSB7IHRocm93ICJhY2Nlc3Nvci1leG4iOyB9
fTsnCisgICAgKSwgdHJ1ZSwgbnVsbCwgJ2FjY2Vzc29yLWV4bicpOworLy8gV2Ugc2hvdWxkIHN0
aWxsIHJldHVybiB0aGUgZXhjZXB0aW9uIHJhaXNlZCBmcm9tIG51bGxlZC1vdXQgYWNjZXNzb3Jz
LgordHJ5UG9zdE1lc3NhZ2UodGh1bmsoCisgICAgICAgICd2YXIgb2JqYSA9IHtnZXQgcCgpIHsg
dGhyb3cgImFjY2Vzc29yLWV4biI7IH19OyAnICsKKyAgICAgICAgJ3JldHVybiB7Z2V0IGEoKSB7
IHJldHVybiBvYmphOyB9fTsnCisgICAgKSwgdHJ1ZSwgbnVsbCwgJ2FjY2Vzc29yLWV4bicpOwor
Ly8gV2Ugc2hvdWxkIHJ1biB0aGUgZmlyc3QgbnVsbGlmaWVkIGFjY2Vzc29yLCBidXQgbm8gbW9y
ZS4KK3RyeVBvc3RNZXNzYWdlKHRodW5rKAorICAgICAgICAnd2luZG93LmJjYWxsZWQgPSB1bmRl
ZmluZWQ7ICcgKworICAgICAgICAnd2luZG93LmFjYWxsZWQgPSB1bmRlZmluZWQ7ICcgKworICAg
ICAgICAnd2luZG93LnBjYWxsZWQgPSB1bmRlZmluZWQ7ICcgKworICAgICAgICAndmFyIG9iamIg
PSB7Z2V0IGIoKSB7IHdpbmRvdy5iY2FsbGVkID0gdHJ1ZTsgcmV0dXJuIDQyOyB9fTsgJyArCisg
ICAgICAgICd2YXIgb2JqYSA9IHtnZXQgYSgpIHsgd2luZG93LmFjYWxsZWQgPSB0cnVlOyByZXR1
cm4gb2JqYjsgfX07ICcgKworICAgICAgICAncmV0dXJuIHsgZ2V0IHAoKSB7IHdpbmRvdy5wY2Fs
bGVkID0gdHJ1ZTsgcmV0dXJuIG9iamE7IH19OycKKyAgICApLCBmYWxzZSwgImV2YWxUaHVuayIs
IGZ1bmN0aW9uKHYpIHsKKyAgICAgICAgZG9QYXNzRmFpbCh2LnAuYSA9PT0gbnVsbCwgImFjY2Vz
c29yIHZhbHVlIHdhcyBudWxsaWZpZWQiKTsKKyAgICAgICAgZG9QYXNzRmFpbCh3aW5kb3cucGNh
bGxlZCA9PT0gdHJ1ZSwgIndpbmRvdy5wY2FsbGVkID09PSB0cnVlIik7CisgICAgICAgIGRvUGFz
c0ZhaWwod2luZG93LmFjYWxsZWQgPT09IHRydWUsICJ3aW5kb3cuYWNhbGxlZCA9PT0gdHJ1ZSIp
OworICAgICAgICBkb1Bhc3NGYWlsKHdpbmRvdy5iY2FsbGVkID09PSB1bmRlZmluZWQsICJ3aW5k
b3cuYmNhbGxlZCA9PT0gdW5kZWZpbmVkIik7CisgICAgfSk7CisKKy8vIFJlZmVyZW5jZSBlcXVh
bGl0eSBiZXR3ZWVuIGRhdGVzIG11c3QgYmUgbWFpbnRhaW5lZC4KK3RyeVBvc3RNZXNzYWdlKHRo
dW5rKAorICAgICAgICAndmFyIGQxID0gbmV3IERhdGUoMSwyLDMpOyAnICsKKyAgICAgICAgJ3Zh
ciBkMiA9IG5ldyBEYXRlKDEsMiwzKTsgJyArCisgICAgICAgICdyZXR1cm4gW2QxLGQxLGQyXTsn
CisgICAgKSwgZmFsc2UsICJldmFsVGh1bmsiLCBmdW5jdGlvbih2KSB7CisgICAgICAgIGRvUGFz
c0ZhaWwoZXF1YWwodlswXSwgbmV3IERhdGUoMSwyLDMpKSwgIkRhdGUgdmFsdWVzIGNvcnJlY3Qg
KDApIik7CisgICAgICAgIGRvUGFzc0ZhaWwoZXF1YWwodlswXSwgdlsyXSksICJEYXRlIHZhbHVl
cyBjb3JyZWN0ICgxKSIpOworICAgICAgICBkb1Bhc3NGYWlsKHZbMF0gPT09IHZbMV0sICJSZWZl
cmVuY2VzIHRvIGRhdGVzIGNvcnJlY3QgKDApIik7CisgICAgICAgIGRvUGFzc0ZhaWwodlswXSAh
PT0gdlsyXSwgIlJlZmVyZW5jZXMgdG8gZGF0ZXMgY29ycmVjdCAoMSkiKTsKKyAgICB9KTsKKwor
Ly8gUmVmZXJlbmNlIGVxdWFsaXR5IGJldHdlZW4gcmVnZXhwcyBtdXN0IGJlIHByZXNlcnZlZC4K
K3RyeVBvc3RNZXNzYWdlKHRodW5rKAorICAgICAgICAndmFyIHJ4MSA9IG5ldyBSZWdFeHAoImZv
byIpOyAnICsKKyAgICAgICAgJ3ZhciByeDIgPSBuZXcgUmVnRXhwKCJmb28iKTsgJyArCisgICAg
ICAgICd2YXIgcngzID0gbmV3IFJlZ0V4cCgiZm9vIiwgImdpbSIpOyAnICsKKyAgICAgICAgJ3J4
My5leGVjKCJmb29mb29mb28iKTsgJyArCisgICAgICAgICdkb1Bhc3NGYWlsKHJ4My5sYXN0SW5k
ZXggPT09IDMsICJsYXN0SW5kZXggaW5pdGlhbGx5IGNvcnJlY3Q6IHdhcyAiICsgcngzLmxhc3RJ
bmRleCk7ICcgKworICAgICAgICAncmV0dXJuIFtyeDEscngxLHJ4MixyeDNdOycKKyAgICApLCBm
YWxzZSwgImV2YWxUaHVuayIsIGZ1bmN0aW9uKHYpIHsKKyAgICAgICAgZG9QYXNzRmFpbCh2WzBd
LnNvdXJjZSA9PT0gImZvbyIsICJSZWdleHAgdmFsdWUgY29ycmVjdCAoMCkiKTsKKyAgICAgICAg
ZG9QYXNzRmFpbCh2WzBdID09PSB2WzFdLCAiUmVmZXJlbmNlcyB0byByZWdleHBzIGNvcnJlY3Qg
KDApIik7CisgICAgICAgIGRvUGFzc0ZhaWwodlswXSAhPT0gdlsyXSwgIlJlZmVyZW5jZXMgdG8g
cmVnZXhwcyBjb3JyZWN0ICgxKSIpOworICAgICAgICBkb1Bhc3NGYWlsKHZbMF0uZ2xvYmFsID09
PSBmYWxzZSwgImdsb2JhbCBzZXQgKDApIik7CisgICAgICAgIGRvUGFzc0ZhaWwodlszXS5nbG9i
YWwgPT09IHRydWUsICJnbG9iYWwgc2V0ICgxKSIpOworICAgICAgICBkb1Bhc3NGYWlsKHZbMF0u
aWdub3JlQ2FzZSA9PT0gZmFsc2UsICJpZ25vcmVDYXNlIHNldCAoMCkiKTsKKyAgICAgICAgZG9Q
YXNzRmFpbCh2WzNdLmlnbm9yZUNhc2UgPT09IHRydWUsICJpZ25vcmVDYXNlIHNldCAoMSkiKTsK
KyAgICAgICAgZG9QYXNzRmFpbCh2WzBdLm11bHRpbGluZSA9PT0gZmFsc2UsICJtdWx0aWxpbmUg
c2V0ICgwKSIpOworICAgICAgICBkb1Bhc3NGYWlsKHZbM10ubXVsdGlsaW5lID09PSB0cnVlLCAi
bXVsdGlsaW5lIHNldCAoMSkiKTsKKyAgICAgICAgZG9QYXNzRmFpbCh2WzBdLmxhc3RJbmRleCA9
PT0gMCwgImxhc3RJbmRleCBjb3JyZWN0ICgwKSIpOworICAgICAgICBkb1Bhc3NGYWlsKHZbM10u
bGFzdEluZGV4ID09PSAwLCAibGFzdEluZGV4IGNvcnJlY3QgKDEpIik7CisgICAgfSk7CisKK2lm
ICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICB0cnlQb3N0TWVzc2FnZSh0aHVuaygKKyAgICAg
ICAgJ3dpbmRvdy5maWxlTGlzdCA9IGZpbGVJbnB1dC5maWxlczsgJyArCisgICAgICAgICd3aW5k
b3cuZmlsZTAgPSBmaWxlTGlzdFswXTsgJyArCisgICAgICAgICd3aW5kb3cuZmlsZTEgPSBmaWxl
TGlzdFsxXTsgJyArCisgICAgICAgICdyZXR1cm4gd2luZG93LmZpbGVMaXN0Lmxlbmd0aCcpLCBm
YWxzZSwgMik7CisgICAgZG9QYXNzRmFpbCh3aW5kb3cuZmlsZUxpc3RbMF0gPT09IHdpbmRvdy5m
aWxlMCwgInNhbml0eSBvbiBmaWxlIHJlZmVyZW5jZSBlcXVhbGl0eSIpCisgICAgLy8gVGhlIHN0
YW5kYXJkIG1hbmRhdGVzIHRoYXQgd2UgZG8gX25vdF8gbWFpbnRhaW4gcmVmZXJlbmNlIGVxdWFs
aXR5IGZvciBmaWxlcyBpbiBhIHRyYW5zZmVycmVkIEZpbGVMaXN0LgorICAgIHRyeVBvc3RNZXNz
YWdlKHRodW5rKCdyZXR1cm4gW3dpbmRvdy5maWxlMCwgd2luZG93LmZpbGUwXTsnCisgICAgICAg
ICksIGZhbHNlLCAiZXZhbFRodW5rIiwgZnVuY3Rpb24odikgeyBkb1Bhc3NGYWlsKHZbMF0gPT09
IHZbMV0sICJmaWxlIHJlZmVyZW5jZXMgdHJhbnNmZXIiKX0pOworICAgIHRyeVBvc3RNZXNzYWdl
KHRodW5rKCdyZXR1cm4gW3dpbmRvdy5maWxlTGlzdCwgd2luZG93LmZpbGUwXTsnCisgICAgICAg
ICksIGZhbHNlLCAiZXZhbFRodW5rIiwgZnVuY3Rpb24odikgeyBkb1Bhc3NGYWlsKHZbMF1bMF0g
IT09IHZbMV0sICJGaWxlTGlzdCBzaG91bGQgbm90IHJlc3BlY3QgcmVmZXJlbmNlIGVxdWFsaXR5
Iil9KTsKKyAgICB0cnlQb3N0TWVzc2FnZSh0aHVuaygncmV0dXJuIFt3aW5kb3cuZmlsZTAsIHdp
bmRvdy5maWxlTGlzdF07JworICAgICAgICApLCBmYWxzZSwgImV2YWxUaHVuayIsIGZ1bmN0aW9u
KHYpIHsgZG9QYXNzRmFpbCh2WzFdWzBdICE9PSB2WzBdLCAiRmlsZUxpc3Qgc2hvdWxkIG5vdCBy
ZXNwZWN0IHJlZmVyZW5jZSBlcXVhbGl0eSIpfSk7CisgICAgdHJ5UG9zdE1lc3NhZ2UodGh1bmso
J3JldHVybiBbd2luZG93LmZpbGVMaXN0LCB3aW5kb3cuZmlsZUxpc3RdOycKKyAgICAgICAgKSwg
ZmFsc2UsICJldmFsVGh1bmsiLCBmdW5jdGlvbih2KSB7IGRvUGFzc0ZhaWwodlswXSA9PT0gdlsx
XSwgIkZpbGVMaXN0IHJlc3BlY3RzIHNlbGYtcmVmZXJlbmNlIGVxdWFsaXR5Iil9KTsKKyAgICB0
cnlQb3N0TWVzc2FnZSh0aHVuaygncmV0dXJuIFt3aW5kb3cuZmlsZUxpc3QsIHdpbmRvdy5maWxl
MCwgd2luZG93LmZpbGUxXScKKyAgICAgICAgKSwgZmFsc2UsICJldmFsVGh1bmsiLCBmdW5jdGlv
bih2KSB7CisgICAgICAgICAgICBkb1Bhc3NGYWlsKHZbMF0ubGVuZ3RoID09PSB3aW5kb3cuZmls
ZUxpc3QubGVuZ3RoLCAiRmlsZUxpc3QgbGVuZ3RoIHNlbnQgY29ycmVjdGx5Iik7CisgICAgICAg
ICAgICBkb1Bhc3NGYWlsKHZbMF1bMF0gIT09IHZbMV0sICJGaWxlTGlzdCBzaG91bGQgbm90IHJl
c3BlY3QgcmVmZXJlbmNlIGVxdWFsaXR5ICgwKSIpOworICAgICAgICAgICAgZG9QYXNzRmFpbCh2
WzBdWzFdICE9PSB2WzJdLCAiRmlsZUxpc3Qgc2hvdWxkIG5vdCByZXNwZWN0IHJlZmVyZW5jZSBl
cXVhbGl0eSAoMSkiKTsKKyAgICAgICAgICAgIGRvUGFzc0ZhaWwodlswXVswXS5uYW1lID09IHdp
bmRvdy5maWxlMC5uYW1lLCAiRmlsZUxpc3QgcHJlc2VydmVzIG9yZGVyIGFuZCBkYXRhIChuYW1l
MCkiKTsKKyAgICAgICAgICAgIGRvUGFzc0ZhaWwodlswXVsxXS5uYW1lID09IHdpbmRvdy5maWxl
MS5uYW1lLCAiRmlsZUxpc3QgcHJlc2VydmVzIG9yZGVyIGFuZCBkYXRhIChuYW1lMSkiKTsKKyAg
ICAgICAgICAgIGRvUGFzc0ZhaWwoZXF1YWwodlswXVswXS5sYXN0TW9kaWZpZWREYXRlLCB3aW5k
b3cuZmlsZTAubGFzdE1vZGlmaWVkRGF0ZSksICJGaWxlTGlzdCBwcmVzZXJ2ZXMgb3JkZXIgYW5k
IGRhdGEgKGRhdGUwKSIpOworICAgICAgICAgICAgZG9QYXNzRmFpbChlcXVhbCh2WzBdWzFdLmxh
c3RNb2RpZmllZERhdGUsIHdpbmRvdy5maWxlMS5sYXN0TW9kaWZpZWREYXRlKSwgIkZpbGVMaXN0
IHByZXNlcnZlcyBvcmRlciBhbmQgZGF0YSAoZGF0ZTEpIik7CisgICAgICAgIH0pOworfQordHJ5
UG9zdE1lc3NhZ2UoJyJkb25lIicpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20v
V2luZG93L3NjcmlwdC10ZXN0cy9wb3N0bWVzc2FnZS10ZXN0LmpzIGIvTGF5b3V0VGVzdHMvZmFz
dC9kb20vV2luZG93L3NjcmlwdC10ZXN0cy9wb3N0bWVzc2FnZS10ZXN0LmpzCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA3NTBhODkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvc2NyaXB0LXRlc3RzL3Bvc3RtZXNzYWdlLXRlc3QuanMK
QEAgLTAsMCArMSwxNjkgQEAKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIud2FpdFVudGlsRG9uZSgpOworfQorCit2YXIgY29uc29sZSA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJjb25zb2xlIik7CisKK3ZhciBtZXNzYWdlcyA9IFtdOwordmFyIGV2YWxUaHVu
a3MgPSBbXTsKKworZnVuY3Rpb24gZXF1YWwoYWN0dWFsLCBleHBlY3RlZCkKK3sKKyAgICBpZiAo
YWN0dWFsID09PSBleHBlY3RlZCkKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgaWYgKHR5cGVv
ZiBhY3R1YWwgIT09IHR5cGVvZiBleHBlY3RlZCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
IGlmICgoYWN0dWFsIGluc3RhbmNlb2YgRGF0ZSkgfHwgKGV4cGVjdGVkIGluc3RhbmNlb2YgRGF0
ZSkpIHsKKyAgICAgICAgaWYgKChhY3R1YWwgaW5zdGFuY2VvZiBEYXRlKSAmJiAoZXhwZWN0ZWQg
aW5zdGFuY2VvZiBEYXRlKSkKKyAgICAgICAgICAgIHJldHVybiAoZXhwZWN0ZWQgaW5zdGFuY2Vv
ZiBEYXRlKSAmJiBhY3R1YWwuZ2V0VGltZSgpID09IGV4cGVjdGVkLmdldFRpbWUoKTsKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICBpZiAoQXJyYXkuaXNBcnJheShhY3R1YWwpIHx8
IEFycmF5LmlzQXJyYXkoZXhwZWN0ZWQpKSB7CisgICAgICAgIGlmICghQXJyYXkuaXNBcnJheShh
Y3R1YWwpIHx8ICFBcnJheS5pc0FycmF5KGV4cGVjdGVkKSkKKyAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICAgICAgaWYgKGFjdHVhbC5sZW5ndGggIT0gZXhwZWN0ZWQubGVuZ3RoKQorICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFjdHVh
bC5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgaWYgKChpIGluIGFjdHVhbCkgXiAoaSBpbiBl
eHBlY3RlZCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgaWYg
KCFlcXVhbChhY3R1YWxbaV0sIGV4cGVjdGVkW2ldKSkKKyAgICAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIGlmIChh
Y3R1YWwuY29uc3RydWN0b3IgIT09IGV4cGVjdGVkLmNvbnN0cnVjdG9yKQorICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgdHJ5IHsKKyAgICAgICAgdmFyIGtleXMgPSBPYmplY3Qua2V5cyhhY3R1
YWwpOworICAgIH0gY2F0Y2goZSkgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAg
IHRyeSB7CisgICAgaWYgKCFlcXVhbChrZXlzLCBPYmplY3Qua2V5cyhleHBlY3RlZCkpKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgfSBjYXRjaChlKSB7CisgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICB9CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7Cisg
ICAgICAgIGlmICghZXF1YWwoYWN0dWFsW2tleXNbaV1dLCBleHBlY3RlZFtrZXlzW2ldXSkpCisg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIHJldHVybiB0cnVlOworfQorCitm
dW5jdGlvbiBzYWZlVG9TdHJpbmcobykgeworICAgIGlmIChvIGluc3RhbmNlb2YgRGF0ZSkKKyAg
ICAgICAgcmV0dXJuIG8udG9JU09TdHJpbmcoKTsKKyAgICBpZiAodHlwZW9mIG8gIT09ICJvYmpl
Y3QiIHx8ICFvKQorICAgICAgICByZXR1cm4gbzsKKyAgICB0cnkgeworICAgICAgICByZXR1cm4g
by50b1N0cmluZygpOworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgcmV0dXJuIE9iamVjdC5w
cm90b3R5cGUudG9TdHJpbmcuY2FsbChvKSArICIoZGVmYXVsdCB0b1N0cmluZyB0aHJldyAiK2Ur
IikiOworICAgIH0KK30KKworZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkKK3sK
KyAgICB2YXIgYWN0dWFsVmFsdWUgPSBldmFsKGFjdHVhbCk7CisgICAgdmFyIGV4cGVjdGVkVmFs
dWUgPSBldmFsKGV4cGVjdGVkKTsKKyAgICBpZiAoZXF1YWwoYWN0dWFsVmFsdWUsIGV4cGVjdGVk
VmFsdWUpKQorICAgICAgICBjb25zb2xlLmlubmVySFRNTCArPSAiUEFTUzogIiArIGFjdHVhbCAr
ICIgaXMgIiArIHNhZmVUb1N0cmluZyhleHBlY3RlZFZhbHVlKSArICIgb2YgdHlwZSAiICsgdHlw
ZW9mIGFjdHVhbFZhbHVlICsgIjxicj4iOworICAgIGVsc2UKKyAgICAgICAgY29uc29sZS5pbm5l
ckhUTUwgKz0gIkZBSUw6ICIgKyBhY3R1YWwgKyAiIGlzICIgKyBhY3R1YWxWYWx1ZSArICIgc2hv
dWxkIGJlICIgKyBleHBlY3RlZFZhbHVlICsgIiBvZiB0eXBlICIgKyB0eXBlb2YgZXhwZWN0ZWRW
YWx1ZSArICI8YnI+IjsKK30KKworZnVuY3Rpb24gc2hvdWxkQmVJZGVudGljYWwoYWN0dWFsLCBl
eHBlY3RlZCkKK3sKKyAgICB2YXIgYWN0dWFsVmFsdWUgPSBldmFsKGFjdHVhbCk7CisgICAgdmFy
IGV4cGVjdGVkVmFsdWUgPSBldmFsKGV4cGVjdGVkKTsKKyAgICBpZiAoYWN0dWFsVmFsdWUgPT09
IGV4cGVjdGVkVmFsdWUpCisgICAgICAgIGNvbnNvbGUuaW5uZXJIVE1MICs9ICJQQVNTOiAiICsg
YWN0dWFsICsgIiBpcyA9PT0gdG8gIiArIGV4cGVjdGVkICsgIjxicj4iOworICAgIGVsc2UKKyAg
ICAgICAgY29uc29sZS5pbm5lckhUTUwgKz0gIkZBSUw6ICIgKyBhY3R1YWwgKyAiIGlzIG5vdCA9
PT0gdG8gIiArIGV4cGVjdGVkICsgIjxicj4iOworfQorCitmdW5jdGlvbiBkb1Bhc3MobXNnKSB7
CisgICAgY29uc29sZS5pbm5lckhUTUwgKz0gIlBBU1M6ICIgKyBtc2cgKyAiPGJyPiI7Cit9CisK
K2Z1bmN0aW9uIGRvRmFpbChtc2cpIHsKKyAgICBjb25zb2xlLmlubmVySFRNTCArPSAiRkFJTDog
IiArIG1zZyArICI8YnI+IjsKK30KKword2luZG93LmRvUGFzc0ZhaWwgPSBmdW5jdGlvbihyZXN1
bHQsIG1zZykgeworICAgIGNvbnNvbGUuaW5uZXJIVE1MICs9IChyZXN1bHQgPyAiUEFTUzogIiA6
ICJGQUlMOiAiKSArIG1zZyArICI8YnI+IjsKK30KKworZnVuY3Rpb24gb25tZXNzYWdlKGV2dCkg
eworICAgIGV2ZW50RGF0YSA9IGV2dC5kYXRhOworICAgIGlmIChldnQuZGF0YSAhPT0gZXZ0LmRh
dGEpCisgICAgICAgIGNvbnNvbGUuaW5uZXJIVE1MICs9ICJNZXNzYWdlRXZlbnQuZGF0YSBkb2Vz
IG5vdCBwcm9kdWNlIHRoZSBzYW1lIHZhbHVlIG9uIG11bHRpcGxlIHF1ZXJpZXMuPGJyPiI7Cisg
ICAgdmFyIG1lc3NhZ2UgPSBtZXNzYWdlcy5zaGlmdCgpOworICAgIHN3aXRjaCAobWVzc2FnZSkg
eworICAgIGNhc2UgImN5Y2xpY09iamVjdCI6CisgICAgICAgIHNob3VsZEJlSWRlbnRpY2FsKCJl
dmVudERhdGEiLCAiZXZlbnREYXRhLnNlbGYiKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSAi
Y3ljbGljQXJyYXkiOgorICAgICAgICBzaG91bGRCZUlkZW50aWNhbCgiZXZlbnREYXRhIiwgImV2
ZW50RGF0YVswXSIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlICJvYmplY3RHcmFwaCI6Cisg
ICAgICAgIHNob3VsZEJlSWRlbnRpY2FsKCJldmVudERhdGEuZ3JhcGgxIiwgImV2ZW50RGF0YS5n
cmFwaDIiKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSAiYXJyYXlHcmFwaCI6CisgICAgICAg
IHNob3VsZEJlSWRlbnRpY2FsKCJldmVudERhdGFbMF0iLCAiZXZlbnREYXRhWzFdIik7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgImV2YWxUaHVuayI6CisgICAgICAgIHZhciB0aHVuayA9IGV2
YWxUaHVua3Muc2hpZnQoKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHRodW5rKGV2ZW50
RGF0YSk7CisgICAgICAgIH0gY2F0Y2goZSkgeworICAgICAgICAgICAgZG9GYWlsKCJ0aHJldyBl
eGNlcHRpb246ICIgKyBlKTsKKyAgICAgICAgICAgIHRocm93IGU7CisgICAgICAgIH0KKyAgICAg
ICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgc2hvdWxkQmUoImV2ZW50RGF0YSIsIG1l
c3NhZ2UpOworICAgIH0KKworICAgIGlmIChzYWZlVG9TdHJpbmcoZXZ0LmRhdGEpID09ICdkb25l
JyAmJiB3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLm5vdGlmeURvbmUoKTsKK30KKword2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21lc3Nh
Z2UnLCBvbm1lc3NhZ2UsIGZhbHNlKTsKKworZnVuY3Rpb24gQ29uc3RydWN0b3JXaXRoUHJvdG90
eXBlKHMpIHsKKyAgICB0aGlzLmZpZWxkID0gczsKK30KKworQ29uc3RydWN0b3JXaXRoUHJvdG90
eXBlLnByb3RvdHlwZSA9IHsKKyAgICBwcm90b1Byb3BlcnR5OiAyMDEwCit9OworCit3aW5kb3cu
dHJ5UG9zdE1lc3NhZ2UgPSBmdW5jdGlvbihtZXNzYWdlLCBzaG91bGRUaHJvdywgZXhwZWN0ZWQs
IGV4cGVjdGVkRXhjZXB0aW9uT3JFdmFsVGh1bmspIHsKKyAgICBpZiAoZXhwZWN0ZWQgPT0gImV2
YWxUaHVuayIpIHsKKyAgICAgIHZhciBldmFsVGh1bmsgPSBleHBlY3RlZEV4Y2VwdGlvbk9yRXZh
bFRodW5rOworICAgIH0gZWxzZSB7CisgICAgICB2YXIgZXhwZWN0ZWRFeGNlcHRpb24gPSBleHBl
Y3RlZEV4Y2VwdGlvbk9yRXZhbFRodW5rOworICAgIH0KKyAgICB0cnkgeworICAgICAgICB2YXIg
dmFsdWUgPSBldmFsKG1lc3NhZ2UpOworICAgICAgICBwb3N0TWVzc2FnZSh2YWx1ZSwgIioiKTsK
KyAgICAgICAgaWYgKHNob3VsZFRocm93KQorICAgICAgICAgICAgY29uc29sZS5pbm5lckhUTUwg
Kz0gIkZBSUw6ICdwb3N0TWVzc2FnZSgiK21lc3NhZ2UrIiknIHNob3VsZCB0aHJvdyBidXQgZGlk
bid0PGJyPiI7CisgICAgICAgIG1lc3NhZ2VzLnB1c2goZXhwZWN0ZWQgfHwgbWVzc2FnZSk7Cisg
ICAgICAgIGlmIChleHBlY3RlZCA9PSAiZXZhbFRodW5rIikgeworICAgICAgICAgICAgZXZhbFRo
dW5rcy5wdXNoKGV2YWxUaHVuayk7CisgICAgICAgIH0KKyAgICB9IGNhdGNoKGUpIHsKKyAgICAg
ICAgaWYgKHNob3VsZFRocm93KSB7CisgICAgICAgICAgICBpZiAoZXhwZWN0ZWRFeGNlcHRpb24g
PT09IHVuZGVmaW5lZCB8fCBleHBlY3RlZEV4Y2VwdGlvbiA9PSBlLmNvZGUgfHwgZXhwZWN0ZWRF
eGNlcHRpb24gPT0gZSkgeworICAgICAgICAgICAgICAgIGNvbnNvbGUuaW5uZXJIVE1MICs9ICJQ
QVNTOiAncG9zdE1lc3NhZ2UoIittZXNzYWdlKyIpJyB0aHJldyAiICsgZSArICI8YnI+IjsKKyAg
ICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgY29uc29sZS5pbm5lckhUTUwgKz0g
IkZBSUw6ICdwb3N0TWVzc2FnZSgiK21lc3NhZ2UrIiknIHRocmV3ICIgKyBlICsgIiwgd2FzIGV4
cGVjdGluZyAiICsgZXhwZWN0ZWRFeGNlcHRpb24gKyAiPGJyPiI7CisgICAgICAgICAgICB9Cisg
ICAgICAgIH0gZWxzZQorICAgICAgICAgICAgY29uc29sZS5pbm5lckhUTUwgKz0gIkZBSUw6ICdw
b3N0TWVzc2FnZSgiK21lc3NhZ2UrIiknIHNob3VsZCBub3QgdGhyb3cgYnV0IHRocmV3ICIgKyBl
ICsgIjxicj4iOworICAgIH0KK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dp
bmRvdy93aW5kb3ctcG9zdG1lc3NhZ2UtY2xvbmUtZGVlcC1hcnJheS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXBvc3RtZXNzYWdlLWNsb25lLWRlZXAt
YXJyYXktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI3
Y2RkYzkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2lu
ZG93LXBvc3RtZXNzYWdlLWNsb25lLWRlZXAtYXJyYXktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
NSBAQAorVGVzdHMgdGhhdCB3ZSBzdXBwb3J0IGNsb25pbmcgZGVlcChpc2gpIGFycmF5cy4KKwor
UEFTUzogZXZlbnREYXRhIGlzIFtvYmplY3QgQXJyYXldKGRlZmF1bHQgdG9TdHJpbmcgdGhyZXcg
UmFuZ2VFcnJvcjogTWF4aW11bSBjYWxsIHN0YWNrIHNpemUgZXhjZWVkZWQuKSBvZiB0eXBlIG9i
amVjdAorUEFTUzogZXZlbnREYXRhIGlzIGRvbmUgb2YgdHlwZSBzdHJpbmcKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wb3N0bWVzc2FnZS1jbG9uZS1k
ZWVwLWFycmF5Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXBvc3Rt
ZXNzYWdlLWNsb25lLWRlZXAtYXJyYXkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi4xYzNkMWExCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20v
V2luZG93L3dpbmRvdy1wb3N0bWVzc2FnZS1jbG9uZS1kZWVwLWFycmF5Lmh0bWwKQEAgLTAsMCAr
MSwxMCBAQAorPGh0bWw+Cis8aGVhZD48L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9ImRlc2NyaXB0
aW9uIj48L2Rpdj4KKzxpbnB1dCB0eXBlPSJmaWxlIiBpZD0iZmlsZUlucHV0IiBtdWx0aXBsZT48
L2lucHV0PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRl
c3RzL3Bvc3RtZXNzYWdlLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InNjcmlwdC10
ZXN0cy9wb3N0bWVzc2FnZS1jbG9uZS1kZWVwLWFycmF5LmpzIj48L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ct
cG9zdG1lc3NhZ2UtY2xvbmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2lu
ZG93L3dpbmRvdy1wb3N0bWVzc2FnZS1jbG9uZS1leHBlY3RlZC50eHQKaW5kZXggZDJmMDE0OS4u
MTQ4NDU0MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1w
b3N0bWVzc2FnZS1jbG9uZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20v
V2luZG93L3dpbmRvdy1wb3N0bWVzc2FnZS1jbG9uZS1leHBlY3RlZC50eHQKQEAgLTEsOCArMSwx
NiBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDc0OiBUeXBlRXJyb3I6IE5vIGRlZmF1bHQgdmFs
dWUKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA3NDogVHlwZUVycm9yOiBObyBkZWZhdWx0IHZhbHVl
CiBUZXN0cyB0aGF0IHdlIGNsb25lIG9iamVjdCBoaWVyYXJjaGllcwogCi1QQVNTOiAncG9zdE1l
c3NhZ2UocmVhbGx5RGVlcEFycmF5KScgdGhyZXcgUmFuZ2VFcnJvcjogTWF4aW11bSBjYWxsIHN0
YWNrIHNpemUgZXhjZWVkZWQuCitGQUlMOiAncG9zdE1lc3NhZ2UoKGZ1bmN0aW9uKCl7fSkpJyBz
aG91bGQgdGhyb3cgYnV0IGRpZG4ndAogUEFTUzogJ3Bvc3RNZXNzYWdlKHdpbmRvdyknIHRocmV3
IFR5cGVFcnJvcjogVHlwZSBlcnJvcgogUEFTUzogJ3Bvc3RNZXNzYWdlKCh7Z2V0IGEoKSB7IHRo
cm93ICJ4IiB9fSkpJyB0aHJldyB4CitGQUlMOiAncG9zdE1lc3NhZ2UoaW1hZ2VEYXRhLmRhdGEp
JyBzaG91bGQgdGhyb3cgYnV0IGRpZG4ndAorRkFJTDogJ3Bvc3RNZXNzYWdlKG11dGF0ZWRJbWFn
ZURhdGEuZGF0YSknIHNob3VsZCB0aHJvdyBidXQgZGlkbid0CitQQVNTOiAncG9zdE1lc3NhZ2Uo
KGZ1bmN0aW9uKCkge3JldHVybiB7Z2V0IGEoKSB7IHRocm93ICJhY2Nlc3Nvci1leG4iOyB9fTt9
KSgpKScgdGhyZXcgYWNjZXNzb3ItZXhuCitQQVNTOiAncG9zdE1lc3NhZ2UoKGZ1bmN0aW9uKCkg
e3ZhciBvYmphID0ge2dldCBwKCkgeyB0aHJvdyAiYWNjZXNzb3ItZXhuIjsgfX07IHJldHVybiB7
Z2V0IGEoKSB7IHJldHVybiBvYmphOyB9fTt9KSgpKScgdGhyZXcgYWNjZXNzb3ItZXhuCitQQVNT
OiBsYXN0SW5kZXggaW5pdGlhbGx5IGNvcnJlY3Q6IHdhcyAzCitQQVNTOiBzYW5pdHkgb24gZmls
ZSByZWZlcmVuY2UgZXF1YWxpdHkKIFBBU1M6IGV2ZW50RGF0YSBpcyBudWxsIG9mIHR5cGUgb2Jq
ZWN0CiBQQVNTOiBldmVudERhdGEgaXMgdW5kZWZpbmVkIG9mIHR5cGUgdW5kZWZpbmVkCiBQQVNT
OiBldmVudERhdGEgaXMgMSBvZiB0eXBlIG51bWJlcgpAQCAtMjIsMTcgKzMwLDg4IEBAIFBBU1M6
IGV2ZW50RGF0YSBpcyBhLGEsYixhLGIgb2YgdHlwZSBvYmplY3QKIFBBU1M6IGV2ZW50RGF0YSBp
cyBhLGEsYixbb2JqZWN0IE9iamVjdF0gb2YgdHlwZSBvYmplY3QKIFBBU1M6IGV2ZW50RGF0YSBp
cyAxLDIsMyBvZiB0eXBlIG9iamVjdAogUEFTUzogZXZlbnREYXRhIGlzICwsMSBvZiB0eXBlIG9i
amVjdAotUEFTUzogZXZlbnREYXRhIGlzIG51bGwgb2YgdHlwZSBvYmplY3QKK0ZBSUw6IGV2ZW50
RGF0YSBpcyBudWxsIHNob3VsZCBiZSBmdW5jdGlvbiAoKSB7fSBvZiB0eXBlIGZ1bmN0aW9uCiBQ
QVNTOiBldmVudERhdGEgaXMgMjAwOS0wMi0xM1QyMzozMTozMC4wMDBaIG9mIHR5cGUgb2JqZWN0
CiBQQVNTOiBldmVudERhdGEgaXMgW29iamVjdCBPYmplY3RdIG9mIHR5cGUgb2JqZWN0CiBQQVNT
OiBldmVudERhdGEgaXMgPT09IHRvIGV2ZW50RGF0YS5zZWxmCiBQQVNTOiBldmVudERhdGEgaXMg
PT09IHRvIGV2ZW50RGF0YVswXQogUEFTUzogZXZlbnREYXRhLmdyYXBoMSBpcyA9PT0gdG8gZXZl
bnREYXRhLmdyYXBoMgogUEFTUzogZXZlbnREYXRhWzBdIGlzID09PSB0byBldmVudERhdGFbMV0K
LVBBU1M6IGV2ZW50RGF0YSBpcyBbb2JqZWN0IEFycmF5XShkZWZhdWx0IHRvU3RyaW5nIHRocmV3
IFJhbmdlRXJyb3I6IE1heGltdW0gY2FsbCBzdGFjayBzaXplIGV4Y2VlZGVkLikgb2YgdHlwZSBv
YmplY3QKLVBBU1M6IGV2ZW50RGF0YSBpcyBbb2JqZWN0IEZpbGVdIG9mIHR5cGUgb2JqZWN0Ci1Q
QVNTOiBldmVudERhdGEgaXMgW29iamVjdCBGaWxlTGlzdF0gb2YgdHlwZSBvYmplY3QKIFBBU1M6
IGV2ZW50RGF0YSBpcyBbb2JqZWN0IEltYWdlRGF0YV0gb2YgdHlwZSBvYmplY3QKIFBBU1M6IGV2
ZW50RGF0YSBpcyBbb2JqZWN0IEltYWdlRGF0YV0gb2YgdHlwZSBvYmplY3QKK1BBU1M6IGV2ZW50
RGF0YSBpcyA0MiBvZiB0eXBlIG51bWJlcgorUEFTUzogZXZlbnREYXRhIGlzIDQyIG9mIHR5cGUg
bnVtYmVyCitQQVNTOiBldmFsVGh1bmsgT0sKK1BBU1M6IGV2ZW50RGF0YSBpcyBbb2JqZWN0IE9i
amVjdF0gb2YgdHlwZSBvYmplY3QKK1BBU1M6IGxlbmd0aCBjb3JyZWN0CitQQVNTOiBldmFsdWF0
aW9uIG9yZGVyIE9LCitQQVNTOiBldmFsdWF0aW9uIG9yZGVyIE9LL2FjY2Vzc29yIHJlYWNoZWQK
K1BBU1M6IGV2YWx1YXRpb24gb3JkZXIgT0sKK1BBU1M6IGxlbmd0aCBjb3JyZWN0CitQQVNTOiBp
bmRleCAwIE9LCitQQVNTOiBhY2Nlc3NvciByZWFjaGVkCitQQVNTOiBpbmRleCAyIHVuZGVmaW5l
ZAorUEFTUzogbGVuZ3RoIGNvcnJlY3QKK1BBU1M6IGluZGV4IDAgT0sKK1BBU1M6IGluZGV4IDEg
T0sKK1BBU1M6IGluZGV4IDIgT0sKK1BBU1M6IGJhc2ljIHByb3BlcnRpZXMgT0sKK1BBU1M6IG9u
ZSBhY2Nlc3NvciB3YXMgcnVuCitQQVNTOiBwcm9wZXJ0eSB3YXMgcmVtb3ZlZAorUEFTUzogcHJv
cGVydHkgd2FzIHJlbW92ZWQKK1BBU1M6IGFjY2Vzc29yIHdhcyBydW4KK1BBU1M6IGR5bmFtaWMg
cHJvcGVydHkgbm90IHNlbnQKK1BBU1M6IHJlZmVyZW5jZSBlcXVhbGl0eSBwcmVzZXJ2ZWQKK1BB
U1M6IGFjY2Vzc29ycyB1c2VkCitQQVNTOiByZWZlcmVuY2UgZXF1YWxpdHkgcHJlc2VydmVkIChv
cHBvc2l0ZSBvcmRlcikKK1BBU1M6IGFjY2Vzc29ycyB1c2VkIChvcHBvc2l0ZSBvcmRlcikKK0ZB
SUw6IGFjY2Vzc29yIHZhbHVlIHdhcyBudWxsaWZpZWQKK1BBU1M6IG5vbi1hY2Nlc3NvciB2YWx1
ZSB3YXMgbm90IG51bGxpZmllZAorRkFJTDogYWNjZXNzb3IgdmFsdWUgd2FzIG51bGxpZmllZAor
UEFTUzogbm9uLWFjY2Vzc29yIHZhbHVlIHdhcyBub3QgbnVsbGlmaWVkCitQQVNTOiBub24tYWNj
ZXNzb3IgdmFsdWUgd2FzIG5vdCBudWxsaWZpZWQKK0ZBSUw6IGFjY2Vzc29yIHZhbHVlIHdhcyBu
dWxsaWZpZWQKK1BBU1M6IG5vbi1hY2Nlc3NvciB2YWx1ZSB3YXMgbm90IG51bGxpZmllZAorUEFT
UzogYWNjZXNzb3IgdmFsdWUgd2FzIG5vdCBudWxsaWZpZWQKK1BBU1M6IGFjY2Vzc29yIHZhbHVl
IHdhcyBub3QgbnVsbGlmaWVkCitGQUlMOiBhY2Nlc3NvciB2YWx1ZSB3YXMgbnVsbGlmaWVkCitQ
QVNTOiBub24tYWNjZXNzb3IgdmFsdWUgd2FzIG5vdCBudWxsaWZpZWQKK1BBU1M6IG5vbi1hY2Nl
c3NvciB2YWx1ZSB3YXMgbm90IG51bGxpZmllZAorUEFTUzogbm9uLWFjY2Vzc29yIHZhbHVlIGlz
IGRlZmluZWQKK1BBU1M6IG5vbi1hY2Nlc3NvciB2YWx1ZSB3YXMgbm90IG51bGxpZmllZAorUEFT
Uzogbm9uLWFjY2Vzc29yIHZhbHVlIGlzIGRlZmluZWQKK0ZBSUw6IGFjY2Vzc29yIHZhbHVlIHdh
cyBudWxsaWZpZWQKK1BBU1M6IG5vbi1hY2Nlc3NvciB2YWx1ZSB3YXMgbm90IG51bGxpZmllZAor
RkFJTDogYWNjZXNzb3IgdmFsdWUgd2FzIG51bGxpZmllZAorUEFTUzogd2luZG93LnBjYWxsZWQg
PT09IHRydWUKK1BBU1M6IHdpbmRvdy5hY2FsbGVkID09PSB0cnVlCitGQUlMOiB3aW5kb3cuYmNh
bGxlZCA9PT0gdW5kZWZpbmVkCitQQVNTOiBEYXRlIHZhbHVlcyBjb3JyZWN0ICgwKQorUEFTUzog
RGF0ZSB2YWx1ZXMgY29ycmVjdCAoMSkKK0ZBSUw6IFJlZmVyZW5jZXMgdG8gZGF0ZXMgY29ycmVj
dCAoMCkKK1BBU1M6IFJlZmVyZW5jZXMgdG8gZGF0ZXMgY29ycmVjdCAoMSkKK1BBU1M6IFJlZ2V4
cCB2YWx1ZSBjb3JyZWN0ICgwKQorRkFJTDogUmVmZXJlbmNlcyB0byByZWdleHBzIGNvcnJlY3Qg
KDApCitQQVNTOiBSZWZlcmVuY2VzIHRvIHJlZ2V4cHMgY29ycmVjdCAoMSkKK1BBU1M6IGdsb2Jh
bCBzZXQgKDApCitQQVNTOiBnbG9iYWwgc2V0ICgxKQorUEFTUzogaWdub3JlQ2FzZSBzZXQgKDAp
CitQQVNTOiBpZ25vcmVDYXNlIHNldCAoMSkKK1BBU1M6IG11bHRpbGluZSBzZXQgKDApCitQQVNT
OiBtdWx0aWxpbmUgc2V0ICgxKQorUEFTUzogbGFzdEluZGV4IGNvcnJlY3QgKDApCitQQVNTOiBs
YXN0SW5kZXggY29ycmVjdCAoMSkKK1BBU1M6IGV2ZW50RGF0YSBpcyAyIG9mIHR5cGUgbnVtYmVy
CitGQUlMOiBmaWxlIHJlZmVyZW5jZXMgdHJhbnNmZXIKK1BBU1M6IEZpbGVMaXN0IHNob3VsZCBu
b3QgcmVzcGVjdCByZWZlcmVuY2UgZXF1YWxpdHkKK1BBU1M6IEZpbGVMaXN0IHNob3VsZCBub3Qg
cmVzcGVjdCByZWZlcmVuY2UgZXF1YWxpdHkKK0ZBSUw6IEZpbGVMaXN0IHJlc3BlY3RzIHNlbGYt
cmVmZXJlbmNlIGVxdWFsaXR5CitQQVNTOiBGaWxlTGlzdCBsZW5ndGggc2VudCBjb3JyZWN0bHkK
K1BBU1M6IEZpbGVMaXN0IHNob3VsZCBub3QgcmVzcGVjdCByZWZlcmVuY2UgZXF1YWxpdHkgKDAp
CitQQVNTOiBGaWxlTGlzdCBzaG91bGQgbm90IHJlc3BlY3QgcmVmZXJlbmNlIGVxdWFsaXR5ICgx
KQorUEFTUzogRmlsZUxpc3QgcHJlc2VydmVzIG9yZGVyIGFuZCBkYXRhIChuYW1lMCkKK1BBU1M6
IEZpbGVMaXN0IHByZXNlcnZlcyBvcmRlciBhbmQgZGF0YSAobmFtZTEpCitQQVNTOiBGaWxlTGlz
dCBwcmVzZXJ2ZXMgb3JkZXIgYW5kIGRhdGEgKGRhdGUwKQorUEFTUzogRmlsZUxpc3QgcHJlc2Vy
dmVzIG9yZGVyIGFuZCBkYXRhIChkYXRlMSkKIFBBU1M6IGV2ZW50RGF0YSBpcyBkb25lIG9mIHR5
cGUgc3RyaW5nCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5k
b3ctcG9zdG1lc3NhZ2UtY2xvbmUtcmVhbGx5LWRlZXAtYXJyYXktZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wb3N0bWVzc2FnZS1jbG9uZS1yZWFsbHkt
ZGVlcC1hcnJheS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uNjFlYTgxMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRv
dy93aW5kb3ctcG9zdG1lc3NhZ2UtY2xvbmUtcmVhbGx5LWRlZXAtYXJyYXktZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsNSBAQAorVGVzdHMgdGhhdCB3ZSBhYm9ydCBjbG9uaW5nIG92ZXJkZWVwIGFy
cmF5cy4KKworRkFJTDogJ3Bvc3RNZXNzYWdlKHJlYWxseURlZXBBcnJheSknIHRocmV3IFJhbmdl
RXJyb3I6IE1heGltdW0gY2FsbCBzdGFjayBzaXplIGV4Y2VlZGVkLiwgd2FzIGV4cGVjdGluZyAy
NQorUEFTUzogZXZlbnREYXRhIGlzIGRvbmUgb2YgdHlwZSBzdHJpbmcKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wb3N0bWVzc2FnZS1jbG9uZS1yZWFs
bHktZGVlcC1hcnJheS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1w
b3N0bWVzc2FnZS1jbG9uZS1yZWFsbHktZGVlcC1hcnJheS5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLmViNmQ2NmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXBvc3RtZXNzYWdlLWNsb25lLXJlYWxseS1kZWVwLWFy
cmF5Lmh0bWwKQEAgLTAsMCArMSwxMCBAQAorPGh0bWw+Cis8aGVhZD48L2hlYWQ+Cis8Ym9keT4K
KzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KKzxpbnB1dCB0eXBlPSJmaWxlIiBpZD0iZmls
ZUlucHV0IiBtdWx0aXBsZT48L2lucHV0PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2Ny
aXB0IHNyYz0ic2NyaXB0LXRlc3RzL3Bvc3RtZXNzYWdlLXRlc3QuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9InNjcmlwdC10ZXN0cy9wb3N0bWVzc2FnZS1jbG9uZS1yZWFsbHktZGVlcC1hcnJh
eS5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXBvc3RtZXNzYWdlLWNsb25lLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXBvc3RtZXNzYWdlLWNsb25lLmh0bWwKaW5kZXgg
ZjI4MzUxYy4uOGQ2MDYwMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93
L3dpbmRvdy1wb3N0bWVzc2FnZS1jbG9uZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9t
L1dpbmRvdy93aW5kb3ctcG9zdG1lc3NhZ2UtY2xvbmUuaHRtbApAQCAtMiwyMTYgKzIsOSBAQAog
PGhlYWQ+PC9oZWFkPgogPGJvZHk+CiA8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Ci08aW5w
dXQgdHlwZT0iZmlsZSIgaWQ9ImZpbGVJbnB1dCI+PC9pbnB1dD4KKzxpbnB1dCB0eXBlPSJmaWxl
IiBpZD0iZmlsZUlucHV0IiBtdWx0aXBsZT48L2lucHV0PgogPGRpdiBpZD0iY29uc29sZSI+PC9k
aXY+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci53YWl0VW50aWxEb25lKCk7Ci19Ci0KLXZhciBjb25zb2xlID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoImNvbnNvbGUiKTsKLQotdmFyIG1lc3NhZ2VzID0gW107Ci0KLWZ1bmN0aW9uIGVxdWFs
KGFjdHVhbCwgZXhwZWN0ZWQpCi17Ci0gICAgaWYgKGFjdHVhbCA9PT0gZXhwZWN0ZWQpCi0gICAg
ICAgIHJldHVybiB0cnVlOwotICAgIGlmICh0eXBlb2YgYWN0dWFsICE9PSB0eXBlb2YgZXhwZWN0
ZWQpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoKGFjdHVhbCBpbnN0YW5jZW9mIERh
dGUpIHx8IChleHBlY3RlZCBpbnN0YW5jZW9mIERhdGUpKSB7Ci0gICAgICAgIGlmICgoYWN0dWFs
IGluc3RhbmNlb2YgRGF0ZSkgJiYgKGV4cGVjdGVkIGluc3RhbmNlb2YgRGF0ZSkpCi0gICAgICAg
ICAgICByZXR1cm4gKGV4cGVjdGVkIGluc3RhbmNlb2YgRGF0ZSkgJiYgYWN0dWFsLmdldFRpbWUo
KSA9PSBleHBlY3RlZC5nZXRUaW1lKCk7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0g
ICAgaWYgKEFycmF5LmlzQXJyYXkoYWN0dWFsKSB8fCBBcnJheS5pc0FycmF5KGV4cGVjdGVkKSkg
ewotICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkoYWN0dWFsKSB8fCAhQXJyYXkuaXNBcnJheShl
eHBlY3RlZCkpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIGlmIChhY3R1YWwu
bGVuZ3RoICE9IGV4cGVjdGVkLmxlbmd0aCkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAg
ICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhY3R1YWwubGVuZ3RoOyBpKyspIHsKLSAgICAgICAg
ICAgIGlmICgoaSBpbiBhY3R1YWwpIF4gKGkgaW4gZXhwZWN0ZWQpKQotICAgICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKLSAgICAgICAgICAgIGlmICghZXF1YWwoYWN0dWFsW2ldLCBleHBlY3Rl
ZFtpXSkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9Ci0gICAgICAg
IHJldHVybiB0cnVlOwotICAgIH0KLSAgICBpZiAoYWN0dWFsLmNvbnN0cnVjdG9yICE9PSBleHBl
Y3RlZC5jb25zdHJ1Y3RvcikKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHRyeSB7Ci0gICAg
ICAgIHZhciBrZXlzID0gT2JqZWN0LmtleXMoYWN0dWFsKTsKLSAgICB9IGNhdGNoKGUpIHsKLSAg
ICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLSAgICB0cnkgewotICAgIGlmICghZXF1YWwoa2V5
cywgT2JqZWN0LmtleXMoZXhwZWN0ZWQpKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0g
Y2F0Y2goZSkgewotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotICAgIGZvciAodmFyIGkg
PSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykgewotICAgICAgICBpZiAoIWVxdWFsKGFjdHVhbFtr
ZXlzW2ldXSwgZXhwZWN0ZWRba2V5c1tpXV0pKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgIH0KLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotZnVuY3Rpb24gc2FmZVRvU3RyaW5nKG8pIHsK
LSAgICBpZiAobyBpbnN0YW5jZW9mIERhdGUpCi0gICAgICAgIHJldHVybiBvLnRvSVNPU3RyaW5n
KCk7Ci0gICAgaWYgKHR5cGVvZiBvICE9PSAib2JqZWN0IiB8fCAhbykKLSAgICAgICAgcmV0dXJu
IG87Ci0gICAgdHJ5IHsKLSAgICAgICAgcmV0dXJuIG8udG9TdHJpbmcoKTsKLSAgICB9IGNhdGNo
IChlKSB7Ci0gICAgICAgIHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwobykg
KyAiKGRlZmF1bHQgdG9TdHJpbmcgdGhyZXcgIitlKyIpIjsKLSAgICB9Ci19Ci0KLWZ1bmN0aW9u
IHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpCi17Ci0gICAgdmFyIGFjdHVhbFZhbHVlID0gZXZh
bChhY3R1YWwpOwotICAgIHZhciBleHBlY3RlZFZhbHVlID0gZXZhbChleHBlY3RlZCk7Ci0gICAg
aWYgKGVxdWFsKGFjdHVhbFZhbHVlLCBleHBlY3RlZFZhbHVlKSkKLSAgICAgICAgY29uc29sZS5p
bm5lckhUTUwgKz0gIlBBU1M6ICIgKyBhY3R1YWwgKyAiIGlzICIgKyBzYWZlVG9TdHJpbmcoZXhw
ZWN0ZWRWYWx1ZSkgKyAiIG9mIHR5cGUgIiArIHR5cGVvZiBhY3R1YWxWYWx1ZSArICI8YnI+IjsK
LSAgICBlbHNlCi0gICAgICAgIGNvbnNvbGUuaW5uZXJIVE1MICs9ICJGQUlMOiAiICsgYWN0dWFs
ICsgIiBpcyAiICsgYWN0dWFsVmFsdWUgKyAiIHNob3VsZCBiZSAiICsgZXhwZWN0ZWRWYWx1ZSAr
ICIgb2YgdHlwZSAiICsgdHlwZW9mIGV4cGVjdGVkVmFsdWUgKyAiPGJyPiI7Ci19Ci0KLWZ1bmN0
aW9uIHNob3VsZEJlSWRlbnRpY2FsKGFjdHVhbCwgZXhwZWN0ZWQpCi17Ci0gICAgdmFyIGFjdHVh
bFZhbHVlID0gZXZhbChhY3R1YWwpOwotICAgIHZhciBleHBlY3RlZFZhbHVlID0gZXZhbChleHBl
Y3RlZCk7Ci0gICAgaWYgKGFjdHVhbFZhbHVlID09PSBleHBlY3RlZFZhbHVlKQotICAgICAgICBj
b25zb2xlLmlubmVySFRNTCArPSAiUEFTUzogIiArIGFjdHVhbCArICIgaXMgPT09IHRvICIgKyBl
eHBlY3RlZCArICI8YnI+IjsKLSAgICBlbHNlCi0gICAgICAgIGNvbnNvbGUuaW5uZXJIVE1MICs9
ICJGQUlMOiAiICsgYWN0dWFsICsgIiBpcyBub3QgPT09IHRvICIgKyBleHBlY3RlZCArICI8YnI+
IjsKLX0KLQotZnVuY3Rpb24gb25tZXNzYWdlKGV2dCkgewotICAgIGV2ZW50RGF0YSA9IGV2dC5k
YXRhOwotICAgIGlmIChldnQuZGF0YSAhPT0gZXZ0LmRhdGEpCi0gICAgICAgIGNvbnNvbGUuaW5u
ZXJIVE1MICs9ICJNZXNzYWdlRXZlbnQuZGF0YSBkb2VzIG5vdCBwcm9kdWNlIHRoZSBzYW1lIHZh
bHVlIG9uIG11bHRpcGxlIHF1ZXJpZXMuPGJyPiI7Ci0gICAgdmFyIG1lc3NhZ2UgPSBtZXNzYWdl
cy5zaGlmdCgpOwotICAgIHN3aXRjaCAobWVzc2FnZSkgewotICAgIGNhc2UgImN5Y2xpY09iamVj
dCI6Ci0gICAgICAgIHNob3VsZEJlSWRlbnRpY2FsKCJldmVudERhdGEiLCAiZXZlbnREYXRhLnNl
bGYiKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSAiY3ljbGljQXJyYXkiOgotICAgICAgICBz
aG91bGRCZUlkZW50aWNhbCgiZXZlbnREYXRhIiwgImV2ZW50RGF0YVswXSIpOwotICAgICAgICBi
cmVhazsKLSAgICBjYXNlICJvYmplY3RHcmFwaCI6Ci0gICAgICAgIHNob3VsZEJlSWRlbnRpY2Fs
KCJldmVudERhdGEuZ3JhcGgxIiwgImV2ZW50RGF0YS5ncmFwaDIiKTsKLSAgICAgICAgYnJlYWs7
Ci0gICAgY2FzZSAiYXJyYXlHcmFwaCI6Ci0gICAgICAgIHNob3VsZEJlSWRlbnRpY2FsKCJldmVu
dERhdGFbMF0iLCAiZXZlbnREYXRhWzFdIik7Ci0gICAgICAgIGJyZWFrOwotICAgIGRlZmF1bHQ6
Ci0gICAgICAgIHNob3VsZEJlKCJldmVudERhdGEiLCBtZXNzYWdlKTsKLSAgICB9Ci0KLSAgICBp
ZiAoc2FmZVRvU3RyaW5nKGV2dC5kYXRhKSA9PSAnZG9uZScgJiYgd2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKQotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Ci19
Ci0KLXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgb25tZXNzYWdlLCBmYWxzZSk7
Ci0KLWZ1bmN0aW9uIENvbnN0cnVjdG9yV2l0aFByb3RvdHlwZShzKSB7Ci0gICAgdGhpcy5maWVs
ZCA9IHM7Ci19Ci0KLUNvbnN0cnVjdG9yV2l0aFByb3RvdHlwZS5wcm90b3R5cGUgPSB7Ci0gICAg
cHJvdG9Qcm9wZXJ0eTogMjAxMAotfTsKLQotZnVuY3Rpb24gdHJ5UG9zdE1lc3NhZ2UobWVzc2Fn
ZSwgc2hvdWxkVGhyb3csIGV4cGVjdGVkKSB7Ci0gICAgdHJ5IHsKLSAgICAgICAgdmFyIHZhbHVl
ID0gZXZhbChtZXNzYWdlKTsKLSAgICAgICAgcG9zdE1lc3NhZ2UodmFsdWUsICIqIik7Ci0gICAg
ICAgIGlmIChzaG91bGRUaHJvdykKLSAgICAgICAgICAgIGNvbnNvbGUuaW5uZXJIVE1MICs9ICJG
QUlMOiAncG9zdE1lc3NhZ2UoIittZXNzYWdlKyIpJyBzaG91bGQgdGhyb3cgYnV0IGRpZG4ndDxi
cj4iOwotICAgICAgICBtZXNzYWdlcy5wdXNoKGV4cGVjdGVkIHx8IG1lc3NhZ2UpOwotICAgIH0g
Y2F0Y2goZSkgewotICAgICAgICBpZiAoc2hvdWxkVGhyb3cpCi0gICAgICAgICAgICBjb25zb2xl
LmlubmVySFRNTCArPSAiUEFTUzogJ3Bvc3RNZXNzYWdlKCIrbWVzc2FnZSsiKScgdGhyZXcgIiAr
IGUgKyAiPGJyPiI7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGNvbnNvbGUuaW5uZXJIVE1M
ICs9ICJGQUlMOiAncG9zdE1lc3NhZ2UoIittZXNzYWdlKyIpJyBzaG91bGQgbm90IHRocm93IGJ1
dCB0aHJldyAiICsgZSArICI8YnI+IjsKLSAgICB9Ci19Ci0KLWRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJkZXNjcmlwdGlvbiIpLmlubmVySFRNTCA9ICJUZXN0cyB0aGF0IHdlIGNsb25lIG9iamVj
dCBoaWVyYXJjaGllcyI7Ci0KLXRyeVBvc3RNZXNzYWdlKCdudWxsJyk7Ci10cnlQb3N0TWVzc2Fn
ZSgndW5kZWZpbmVkJyk7Ci10cnlQb3N0TWVzc2FnZSgnMScpOwotdHJ5UG9zdE1lc3NhZ2UoJ3Ry
dWUnKTsKLXRyeVBvc3RNZXNzYWdlKCciMSInKTsKLXRyeVBvc3RNZXNzYWdlKCcoe30pJyk7Ci10
cnlQb3N0TWVzc2FnZSgnKHthOjF9KScpOwotdHJ5UG9zdE1lc3NhZ2UoJyh7YToiYSJ9KScpOwot
dHJ5UG9zdE1lc3NhZ2UoJyh7YjoiYSIsIGE6ImIifSknKTsKLXRyeVBvc3RNZXNzYWdlKCcoe3Aw
OiJzdHJpbmcwIiwgcDE6InN0cmluZzEiLCBwMjoic3RyaW5nMiIsIHAzOiJzdHJpbmczIiwgcDQ6
InN0cmluZzQiLCBwNToic3RyaW5nNSIsIHA2OiJzdHJpbmc2IiwgcDc6InN0cmluZzciLCBwODoi
c3RyaW5nOCIsIHA5OiJzdHJpbmc5IiwgcDEwOiJzdHJpbmcxMCIsIHAxMToic3RyaW5nMTEiLCBw
MTI6InN0cmluZzEyIiwgcDEzOiJzdHJpbmcxMyIsIHAxNDoic3RyaW5nMTQiLCBwMTU6InN0cmlu
ZzE1IiwgcDE2OiJzdHJpbmcxNiIsIHAxNzoic3RyaW5nMTciLCBwMTg6InN0cmluZzE4IiwgcDE5
OiJzdHJpbmcxOSJ9KScpOwotdHJ5UG9zdE1lc3NhZ2UoJyh7cDA6InN0cmluZzEiLCBwMToic3Ry
aW5nMSIsIHAyOiJzdHJpbmcyIiwgcDM6InN0cmluZzMiLCBwNDoic3RyaW5nNCIsIHA1OiJzdHJp
bmc1IiwgcDY6InN0cmluZzYiLCBwNzoic3RyaW5nNyIsIHA4OiJzdHJpbmc4IiwgcDk6InN0cmlu
ZzkiLCBwMTA6InN0cmluZzEwIiwgcDExOiJzdHJpbmcxMSIsIHAxMjoic3RyaW5nMTIiLCBwMTM6
InN0cmluZzEzIiwgcDE0OiJzdHJpbmcxNCIsIHAxNToic3RyaW5nMTUiLCBwMTY6InN0cmluZzE2
IiwgcDE3OiJzdHJpbmcxNyIsIHAxODoic3RyaW5nMTgiLCBwMTk6InN0cmluZzE5In0pJyk7Ci10
cnlQb3N0TWVzc2FnZSgnKHthOiIifSknKTsKLXRyeVBvc3RNZXNzYWdlKCcoe2E6MH0pJyk7Ci10
cnlQb3N0TWVzc2FnZSgnKHthOjF9KScpOwotdHJ5UG9zdE1lc3NhZ2UoJ1tdJyk7Ci10cnlQb3N0
TWVzc2FnZSgnWyJhIiwgImEiLCAiYiIsICJhIiwgImIiXScpOwotdHJ5UG9zdE1lc3NhZ2UoJ1si
YSIsICJhIiwgImIiLCB7YToiYiIsIGI6ImEifV0nKTsKLXRyeVBvc3RNZXNzYWdlKCdbMSwyLDNd
Jyk7Ci10cnlQb3N0TWVzc2FnZSgnWywsMV0nKTsKLXRyeVBvc3RNZXNzYWdlKCcoZnVuY3Rpb24o
KXt9KScsIGZhbHNlLCAnbnVsbCcpOwotdHJ5UG9zdE1lc3NhZ2UoJ25ldyBEYXRlKDEyMzQ1Njc4
OTAwMDApJyk7Ci10cnlQb3N0TWVzc2FnZSgnbmV3IENvbnN0cnVjdG9yV2l0aFByb3RvdHlwZSgi
Zm9vIiknLCBmYWxzZSwgJyh7ZmllbGQ6ImZvbyJ9KScpOwotY3ljbGljT2JqZWN0PXt9OwotY3lj
bGljT2JqZWN0LnNlbGYgPSBjeWNsaWNPYmplY3Q7Ci10cnlQb3N0TWVzc2FnZSgnY3ljbGljT2Jq
ZWN0JywgZmFsc2UsICJjeWNsaWNPYmplY3QiKTsKLWN5Y2xpY0FycmF5PVtdOwotY3ljbGljQXJy
YXlbMF0gPSBjeWNsaWNBcnJheTsKLXRyeVBvc3RNZXNzYWdlKCdjeWNsaWNBcnJheScsIGZhbHNl
LCAiY3ljbGljQXJyYXkiKTsKLW9iamVjdEdyYXBoID0ge307Ci1vYmplY3QgPSB7fTsKLW9iamVj
dEdyYXBoLmdyYXBoMSA9IG9iamVjdDsKLW9iamVjdEdyYXBoLmdyYXBoMiA9IG9iamVjdDsKLXRy
eVBvc3RNZXNzYWdlKCdvYmplY3RHcmFwaCcsIGZhbHNlLCAib2JqZWN0R3JhcGgiKTsKLWFycmF5
R3JhcGggPSBbb2JqZWN0LCBvYmplY3RdOwotdHJ5UG9zdE1lc3NhZ2UoJ2FycmF5R3JhcGgnLCBm
YWxzZSwgImFycmF5R3JhcGgiKTsKLWRlZXBBcnJheT1bXTsKLWZvciAodmFyIGkgPSAwOyBpIDwg
MTAwMDA7IGkrKykKLSAgICBkZWVwQXJyYXk9W2RlZXBBcnJheV07Ci10cnlQb3N0TWVzc2FnZSgn
ZGVlcEFycmF5Jyk7Ci1yZWFsbHlEZWVwQXJyYXk9W107Ci1mb3IgKHZhciBpID0gMDsgaSA8IDEw
MDAwMDsgaSsrKQotICAgIHJlYWxseURlZXBBcnJheT1bcmVhbGx5RGVlcEFycmF5XTsKLXRyeVBv
c3RNZXNzYWdlKCdyZWFsbHlEZWVwQXJyYXknLCB0cnVlKTsKLXRyeVBvc3RNZXNzYWdlKCd3aW5k
b3cnLCB0cnVlKTsKLXRyeVBvc3RNZXNzYWdlKCcoe2dldCBhKCkgeyB0aHJvdyAieCIgfX0pJywg
dHJ1ZSk7Ci0KLWlmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKLSAgICB2YXIgZmlsZUlucHV0ID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGVJbnB1dCIpOwotICAgIHZhciBmaWxlUmVjdCA9
IGZpbGVJbnB1dC5nZXRDbGllbnRSZWN0cygpWzBdOwotICAgIHZhciB0YXJnZXRYID0gZmlsZVJl
Y3QubGVmdCArIGZpbGVSZWN0LndpZHRoIC8gMjsKLSAgICB2YXIgdGFyZ2V0WSA9IGZpbGVSZWN0
LnRvcCArIGZpbGVSZWN0LmhlaWdodCAvIDI7Ci0gICAgZXZlbnRTZW5kZXIuYmVnaW5EcmFnV2l0
aEZpbGVzKFsnZ2V0LWZpbGUtdXBsb2FkLmh0bWwnXSk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VN
b3ZlVG8odGFyZ2V0WCwgdGFyZ2V0WSk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOwotICAg
IHRyeVBvc3RNZXNzYWdlKCdmaWxlSW5wdXQuZmlsZXNbMF0nLCBmYWxzZSwgZmlsZUlucHV0LmZp
bGVzWzBdKTsKLSAgICB0cnlQb3N0TWVzc2FnZSgnZmlsZUlucHV0LmZpbGVzJywgZmFsc2UsIGZp
bGVJbnB1dC5maWxlcyk7Ci19Ci12YXIgaW1hZ2VEYXRhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgiY2FudmFzIikuZ2V0Q29udGV4dCgiMmQiKS5jcmVhdGVJbWFnZURhdGEoMTAsMTApOwotZm9y
ICh2YXIgaSA9IDA7IGkgPCBpbWFnZURhdGEuZGF0YS5sZW5ndGggKiA0OyBpKyspCi0gICAgaW1h
Z2VEYXRhLmRhdGFbaV0gPSBpICUgMjU2OwotdmFyIG11dGF0ZWRJbWFnZURhdGEgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKS5nZXRDb250ZXh0KCIyZCIpLmNyZWF0ZUltYWdlRGF0
YSgxMCwxMCk7Ci1mb3IgKHZhciBpID0gMDsgaSA8IGltYWdlRGF0YS5kYXRhLmxlbmd0aCAqIDQ7
IGkrKykKLSAgICBtdXRhdGVkSW1hZ2VEYXRhLmRhdGFbaV0gPSBpICUgMjU2OwotdHJ5UG9zdE1l
c3NhZ2UoJ2ltYWdlRGF0YScsIGZhbHNlLCBpbWFnZURhdGEpOwotdHJ5UG9zdE1lc3NhZ2UoJ211
dGF0ZWRJbWFnZURhdGEnLCBmYWxzZSwgaW1hZ2VEYXRhKTsKLWZvciAodmFyIGkgPSAwOyBpIDwg
aW1hZ2VEYXRhLmRhdGEubGVuZ3RoICogNDsgaSsrKQotICAgIG11dGF0ZWRJbWFnZURhdGEuZGF0
YVtpXSA9IDA7Ci0KLXRyeVBvc3RNZXNzYWdlKCciZG9uZSInKTsKLTwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9InNjcmlwdC10ZXN0cy9wb3N0bWVzc2FnZS10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSJzY3JpcHQtdGVzdHMvcG9zdG1lc3NhZ2UtY2xvbmUuanMiPjwvc2NyaXB0PgogPC9i
b2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dp
bmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRv
dy93aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQKaW5kZXggNDQzNTRmOS4uMDlkMzM1YyAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVz
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXBy
b3BlcnRpZXMtZXhwZWN0ZWQudHh0CkBAIC01MTEsNiArNTExLDcgQEAgd2luZG93LkNvdW50ZXIg
W29iamVjdCBDb3VudGVyQ29uc3RydWN0b3JdCiB3aW5kb3cuQ291bnRlci5wcm90b3R5cGUgW29i
amVjdCBDb3VudGVyUHJvdG90eXBlXQogd2luZG93LkRPTUV4Y2VwdGlvbiBbb2JqZWN0IERPTUV4
Y2VwdGlvbkNvbnN0cnVjdG9yXQogd2luZG93LkRPTUV4Y2VwdGlvbi5BQk9SVF9FUlIgW251bWJl
cl0KK3dpbmRvdy5ET01FeGNlcHRpb24uREFUQV9DTE9ORV9FUlIgW251bWJlcl0KIHdpbmRvdy5E
T01FeGNlcHRpb24uRE9NU1RSSU5HX1NJWkVfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0
aW9uLkhJRVJBUkNIWV9SRVFVRVNUX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5J
TkRFWF9TSVpFX0VSUiBbbnVtYmVyXQpAQCAtNTE4LDYgKzUxOSw3IEBAIHdpbmRvdy5ET01FeGNl
cHRpb24uSU5VU0VfQVRUUklCVVRFX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5J
TlZBTElEX0FDQ0VTU19FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24uSU5WQUxJRF9D
SEFSQUNURVJfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLklOVkFMSURfTU9ESUZJ
Q0FUSU9OX0VSUiBbbnVtYmVyXQord2luZG93LkRPTUV4Y2VwdGlvbi5JTlZBTElEX05PREVfVFlQ
RV9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24uSU5WQUxJRF9TVEFURV9FUlIgW251
bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24uTkFNRVNQQUNFX0VSUiBbbnVtYmVyXQogd2luZG93
LkRPTUV4Y2VwdGlvbi5ORVRXT1JLX0VSUiBbbnVtYmVyXQpAQCAtNTI4LDEyICs1MzAsMTQgQEAg
d2luZG93LkRPTUV4Y2VwdGlvbi5OT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlIgW251bWJlcl0K
IHdpbmRvdy5ET01FeGNlcHRpb24uUVVPVEFfRVhDRUVERURfRVJSIFtudW1iZXJdCiB3aW5kb3cu
RE9NRXhjZXB0aW9uLlNFQ1VSSVRZX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5T
WU5UQVhfRVJSIFtudW1iZXJdCit3aW5kb3cuRE9NRXhjZXB0aW9uLlRJTUVPVVRfRVJSIFtudW1i
ZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLlRZUEVfTUlTTUFUQ0hfRVJSIFtudW1iZXJdCiB3aW5k
b3cuRE9NRXhjZXB0aW9uLlVSTF9NSVNNQVRDSF9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNl
cHRpb24uVkFMSURBVElPTl9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24uV1JPTkdf
RE9DVU1FTlRfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZSBbb2Jq
ZWN0IERPTUV4Y2VwdGlvblByb3RvdHlwZV0KIHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBl
LkFCT1JUX0VSUiBbbnVtYmVyXQord2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuREFUQV9D
TE9ORV9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlLkRPTVNUUklO
R19TSVpFX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuSElFUkFS
Q0hZX1JFUVVFU1RfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5J
TkRFWF9TSVpFX0VSUiBbbnVtYmVyXQpAQCAtNTQxLDYgKzU0NSw3IEBAIHdpbmRvdy5ET01FeGNl
cHRpb24ucHJvdG90eXBlLklOVVNFX0FUVFJJQlVURV9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01F
eGNlcHRpb24ucHJvdG90eXBlLklOVkFMSURfQUNDRVNTX0VSUiBbbnVtYmVyXQogd2luZG93LkRP
TUV4Y2VwdGlvbi5wcm90b3R5cGUuSU5WQUxJRF9DSEFSQUNURVJfRVJSIFtudW1iZXJdCiB3aW5k
b3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5JTlZBTElEX01PRElGSUNBVElPTl9FUlIgW251bWJl
cl0KK3dpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlLklOVkFMSURfTk9ERV9UWVBFX0VSUiBb
bnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuSU5WQUxJRF9TVEFURV9FUlIg
W251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlLk5BTUVTUEFDRV9FUlIgW251
bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlLk5FVFdPUktfRVJSIFtudW1iZXJd
CkBAIC01NTEsNiArNTU2LDcgQEAgd2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuTk9fTU9E
SUZJQ0FUSU9OX0FMTE9XRURfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3Rv
dHlwZS5RVU9UQV9FWENFRURFRF9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24ucHJv
dG90eXBlLlNFQ1VSSVRZX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5
cGUuU1lOVEFYX0VSUiBbbnVtYmVyXQord2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuVElN
RU9VVF9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlLlRZUEVfTUlT
TUFUQ0hfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5VUkxfTUlT
TUFUQ0hfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5WQUxJREFU
SU9OX0VSUiBbbnVtYmVyXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0vZmFzdC9jYW52YXMvd2ViZ2wvYXJyYXktbWVzc2FnZS1wYXNzaW5nLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvY2FudmFzL3dlYmdsL2FycmF5LW1l
c3NhZ2UtcGFzc2luZy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uMjUyYTliMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtL2Zhc3QvY2FudmFzL3dlYmdsL2FycmF5LW1lc3NhZ2UtcGFzc2luZy1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSw1OTkgQEAKK1Rlc3QgcGFzc2luZyBBcnJheUJ1ZmZlcnMgYW5kIEFycmF5
QnVmZmVyVmlld3MgaW4gbWVzc2FnZXMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKwor
UEFTUyBBcnJheUJ1ZmZlcjA6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNT
IEFycmF5QnVmZmVyMDogYnVmZmVyIGxlbmd0aHMgYXJlIDAKK1BBU1MgQXJyYXlCdWZmZXIwOiBi
dWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgQXJyYXlCdWZmZXIxOiBjbGFzc2Vz
IGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBBcnJheUJ1ZmZlcjE6IGJ1ZmZlciBsZW5n
dGhzIGFyZSAxCitQQVNTIEFycmF5QnVmZmVyMTogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRl
bnRzCitQQVNTIEFycmF5QnVmZmVyMTI4OiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVy
XQorUEFTUyBBcnJheUJ1ZmZlcjEyODogYnVmZmVyIGxlbmd0aHMgYXJlIDEyOAorUEFTUyBBcnJh
eUJ1ZmZlcjEyODogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIERhdGFWaWV3
MDogY2xhc3NlcyBhcmUgW29iamVjdCBEYXRhVmlld10KK1BBU1MgRGF0YVZpZXcwOiBjbGFzc2Vz
IGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBEYXRhVmlldzA6IGJ1ZmZlciBsZW5ndGhz
IGFyZSAwCitQQVNTIERhdGFWaWV3MDogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQ
QVNTIERhdGFWaWV3MDogb2Zmc2V0IGlzIDAKK1BBU1MgRGF0YVZpZXcwOiBsZW5ndGggaXMgMAor
UEFTUyBEYXRhVmlldzE6IGNsYXNzZXMgYXJlIFtvYmplY3QgRGF0YVZpZXddCitQQVNTIERhdGFW
aWV3MTogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgRGF0YVZpZXcxOiBi
dWZmZXIgbGVuZ3RocyBhcmUgMQorUEFTUyBEYXRhVmlldzE6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2Ft
ZSBjb250ZW50cworUEFTUyBEYXRhVmlldzE6IG9mZnNldCBpcyAwCitQQVNTIERhdGFWaWV3MTog
bGVuZ3RoIGlzIDEKK1BBU1MgRGF0YVZpZXcxMjg6IGNsYXNzZXMgYXJlIFtvYmplY3QgRGF0YVZp
ZXddCitQQVNTIERhdGFWaWV3MTI4OiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQor
UEFTUyBEYXRhVmlldzEyODogYnVmZmVyIGxlbmd0aHMgYXJlIDEyOAorUEFTUyBEYXRhVmlldzEy
ODogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIERhdGFWaWV3MTI4OiBvZmZz
ZXQgaXMgMAorUEFTUyBEYXRhVmlldzEyODogbGVuZ3RoIGlzIDEyOAorUEFTUyBEYXRhVmlldzFf
b2ZzX2VuZDogY2xhc3NlcyBhcmUgW29iamVjdCBEYXRhVmlld10KK1BBU1MgRGF0YVZpZXcxX29m
c19lbmQ6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIERhdGFWaWV3MV9v
ZnNfZW5kOiBidWZmZXIgbGVuZ3RocyBhcmUgMQorUEFTUyBEYXRhVmlldzFfb2ZzX2VuZDogYnVm
ZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIERhdGFWaWV3MV9vZnNfZW5kOiBvZmZz
ZXQgaXMgMQorUEFTUyBEYXRhVmlldzFfb2ZzX2VuZDogbGVuZ3RoIGlzIDAKK1BBU1MgRGF0YVZp
ZXcxMjhfb2ZzX2VuZDogY2xhc3NlcyBhcmUgW29iamVjdCBEYXRhVmlld10KK1BBU1MgRGF0YVZp
ZXcxMjhfb2ZzX2VuZDogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgRGF0
YVZpZXcxMjhfb2ZzX2VuZDogYnVmZmVyIGxlbmd0aHMgYXJlIDEyOAorUEFTUyBEYXRhVmlldzEy
OF9vZnNfZW5kOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgRGF0YVZpZXcx
Mjhfb2ZzX2VuZDogb2Zmc2V0IGlzIDEyOAorUEFTUyBEYXRhVmlldzEyOF9vZnNfZW5kOiBsZW5n
dGggaXMgMAorUEFTUyBEYXRhVmlldzEyOF9vZnNfc2xpY2UwOiBjbGFzc2VzIGFyZSBbb2JqZWN0
IERhdGFWaWV3XQorUEFTUyBEYXRhVmlldzEyOF9vZnNfc2xpY2UwOiBjbGFzc2VzIGFyZSBbb2Jq
ZWN0IEFycmF5QnVmZmVyXQorUEFTUyBEYXRhVmlldzEyOF9vZnNfc2xpY2UwOiBidWZmZXIgbGVu
Z3RocyBhcmUgMTI4CitQQVNTIERhdGFWaWV3MTI4X29mc19zbGljZTA6IGJ1ZmZlcnMgaGF2ZSB0
aGUgc2FtZSBjb250ZW50cworUEFTUyBEYXRhVmlldzEyOF9vZnNfc2xpY2UwOiBvZmZzZXQgaXMg
NjQKK1BBU1MgRGF0YVZpZXcxMjhfb2ZzX3NsaWNlMDogbGVuZ3RoIGlzIDAKK1BBU1MgRGF0YVZp
ZXcxMjhfb2ZzX3NsaWNlMTogY2xhc3NlcyBhcmUgW29iamVjdCBEYXRhVmlld10KK1BBU1MgRGF0
YVZpZXcxMjhfb2ZzX3NsaWNlMTogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BB
U1MgRGF0YVZpZXcxMjhfb2ZzX3NsaWNlMTogYnVmZmVyIGxlbmd0aHMgYXJlIDEyOAorUEFTUyBE
YXRhVmlldzEyOF9vZnNfc2xpY2UxOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BB
U1MgRGF0YVZpZXcxMjhfb2ZzX3NsaWNlMTogb2Zmc2V0IGlzIDY0CitQQVNTIERhdGFWaWV3MTI4
X29mc19zbGljZTE6IGxlbmd0aCBpcyAxCitQQVNTIERhdGFWaWV3MTI4X29mc19zbGljZTE2OiBj
bGFzc2VzIGFyZSBbb2JqZWN0IERhdGFWaWV3XQorUEFTUyBEYXRhVmlldzEyOF9vZnNfc2xpY2Ux
NjogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgRGF0YVZpZXcxMjhfb2Zz
X3NsaWNlMTY6IGJ1ZmZlciBsZW5ndGhzIGFyZSAxMjgKK1BBU1MgRGF0YVZpZXcxMjhfb2ZzX3Ns
aWNlMTY6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBEYXRhVmlldzEyOF9v
ZnNfc2xpY2UxNjogb2Zmc2V0IGlzIDY0CitQQVNTIERhdGFWaWV3MTI4X29mc19zbGljZTE2OiBs
ZW5ndGggaXMgMTYKK1BBU1MgRGF0YVZpZXcxMjhfb2ZzX3NsaWNlX3VuYWxpZ25lZDogY2xhc3Nl
cyBhcmUgW29iamVjdCBEYXRhVmlld10KK1BBU1MgRGF0YVZpZXcxMjhfb2ZzX3NsaWNlX3VuYWxp
Z25lZDogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgRGF0YVZpZXcxMjhf
b2ZzX3NsaWNlX3VuYWxpZ25lZDogYnVmZmVyIGxlbmd0aHMgYXJlIDEyOAorUEFTUyBEYXRhVmll
dzEyOF9vZnNfc2xpY2VfdW5hbGlnbmVkOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMK
K1BBU1MgRGF0YVZpZXcxMjhfb2ZzX3NsaWNlX3VuYWxpZ25lZDogb2Zmc2V0IGlzIDYzCitQQVNT
IERhdGFWaWV3MTI4X29mc19zbGljZV91bmFsaWduZWQ6IGxlbmd0aCBpcyAxNQorUEFTUyBJbnQz
Ml8wOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEludDMyQXJyYXldCitQQVNTIEludDMyXzA6IGNsYXNz
ZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIEludDMyXzA6IGJ1ZmZlciBsZW5ndGhz
IGFyZSAwCitQQVNTIEludDMyXzA6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFT
UyBJbnQzMl8wOiBvZmZzZXQgaXMgMAorUEFTUyBJbnQzMl8wOiBsZW5ndGggaXMgMAorUEFTUyBV
aW50MzJfMDogY2xhc3NlcyBhcmUgW29iamVjdCBVaW50MzJBcnJheV0KK1BBU1MgVWludDMyXzA6
IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIFVpbnQzMl8wOiBidWZmZXIg
bGVuZ3RocyBhcmUgMAorUEFTUyBVaW50MzJfMDogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRl
bnRzCitQQVNTIFVpbnQzMl8wOiBvZmZzZXQgaXMgMAorUEFTUyBVaW50MzJfMDogbGVuZ3RoIGlz
IDAKK1BBU1MgSW50OF8wOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEludDhBcnJheV0KK1BBU1MgSW50
OF8wOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBJbnQ4XzA6IGJ1ZmZl
ciBsZW5ndGhzIGFyZSAwCitQQVNTIEludDhfMDogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRl
bnRzCitQQVNTIEludDhfMDogb2Zmc2V0IGlzIDAKK1BBU1MgSW50OF8wOiBsZW5ndGggaXMgMAor
UEFTUyBVaW50OF8wOiBjbGFzc2VzIGFyZSBbb2JqZWN0IFVpbnQ4QXJyYXldCitQQVNTIFVpbnQ4
XzA6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIFVpbnQ4XzA6IGJ1ZmZl
ciBsZW5ndGhzIGFyZSAwCitQQVNTIFVpbnQ4XzA6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250
ZW50cworUEFTUyBVaW50OF8wOiBvZmZzZXQgaXMgMAorUEFTUyBVaW50OF8wOiBsZW5ndGggaXMg
MAorUEFTUyBJbnQxNl8wOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEludDE2QXJyYXldCitQQVNTIElu
dDE2XzA6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIEludDE2XzA6IGJ1
ZmZlciBsZW5ndGhzIGFyZSAwCitQQVNTIEludDE2XzA6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBj
b250ZW50cworUEFTUyBJbnQxNl8wOiBvZmZzZXQgaXMgMAorUEFTUyBJbnQxNl8wOiBsZW5ndGgg
aXMgMAorUEFTUyBVaW50MTZfMDogY2xhc3NlcyBhcmUgW29iamVjdCBVaW50MTZBcnJheV0KK1BB
U1MgVWludDE2XzA6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIFVpbnQx
Nl8wOiBidWZmZXIgbGVuZ3RocyBhcmUgMAorUEFTUyBVaW50MTZfMDogYnVmZmVycyBoYXZlIHRo
ZSBzYW1lIGNvbnRlbnRzCitQQVNTIFVpbnQxNl8wOiBvZmZzZXQgaXMgMAorUEFTUyBVaW50MTZf
MDogbGVuZ3RoIGlzIDAKK1BBU1MgRmxvYXQzMl8wOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEZsb2F0
MzJBcnJheV0KK1BBU1MgRmxvYXQzMl8wOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVy
XQorUEFTUyBGbG9hdDMyXzA6IGJ1ZmZlciBsZW5ndGhzIGFyZSAwCitQQVNTIEZsb2F0MzJfMDog
YnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIEZsb2F0MzJfMDogb2Zmc2V0IGlz
IDAKK1BBU1MgRmxvYXQzMl8wOiBsZW5ndGggaXMgMAorUEFTUyBGbG9hdDY0XzA6IGNsYXNzZXMg
YXJlIFtvYmplY3QgRmxvYXQ2NEFycmF5XQorUEFTUyBGbG9hdDY0XzA6IGNsYXNzZXMgYXJlIFtv
YmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIEZsb2F0NjRfMDogYnVmZmVyIGxlbmd0aHMgYXJlIDAK
K1BBU1MgRmxvYXQ2NF8wOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgRmxv
YXQ2NF8wOiBvZmZzZXQgaXMgMAorUEFTUyBGbG9hdDY0XzA6IGxlbmd0aCBpcyAwCitQQVNTIElu
dDMyXzE6IGNsYXNzZXMgYXJlIFtvYmplY3QgSW50MzJBcnJheV0KK1BBU1MgSW50MzJfMTogY2xh
c3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgSW50MzJfMTogYnVmZmVyIGxlbmd0
aHMgYXJlIDQKK1BBU1MgSW50MzJfMTogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQ
QVNTIEludDMyXzE6IG9mZnNldCBpcyAwCitQQVNTIEludDMyXzE6IGxlbmd0aCBpcyA0CitQQVNT
IFVpbnQzMl8xOiBjbGFzc2VzIGFyZSBbb2JqZWN0IFVpbnQzMkFycmF5XQorUEFTUyBVaW50MzJf
MTogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgVWludDMyXzE6IGJ1ZmZl
ciBsZW5ndGhzIGFyZSA0CitQQVNTIFVpbnQzMl8xOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29u
dGVudHMKK1BBU1MgVWludDMyXzE6IG9mZnNldCBpcyAwCitQQVNTIFVpbnQzMl8xOiBsZW5ndGgg
aXMgNAorUEFTUyBJbnQ4XzE6IGNsYXNzZXMgYXJlIFtvYmplY3QgSW50OEFycmF5XQorUEFTUyBJ
bnQ4XzE6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIEludDhfMTogYnVm
ZmVyIGxlbmd0aHMgYXJlIDEKK1BBU1MgSW50OF8xOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29u
dGVudHMKK1BBU1MgSW50OF8xOiBvZmZzZXQgaXMgMAorUEFTUyBJbnQ4XzE6IGxlbmd0aCBpcyAx
CitQQVNTIFVpbnQ4XzE6IGNsYXNzZXMgYXJlIFtvYmplY3QgVWludDhBcnJheV0KK1BBU1MgVWlu
dDhfMTogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgVWludDhfMTogYnVm
ZmVyIGxlbmd0aHMgYXJlIDEKK1BBU1MgVWludDhfMTogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNv
bnRlbnRzCitQQVNTIFVpbnQ4XzE6IG9mZnNldCBpcyAwCitQQVNTIFVpbnQ4XzE6IGxlbmd0aCBp
cyAxCitQQVNTIEludDE2XzE6IGNsYXNzZXMgYXJlIFtvYmplY3QgSW50MTZBcnJheV0KK1BBU1Mg
SW50MTZfMTogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgSW50MTZfMTog
YnVmZmVyIGxlbmd0aHMgYXJlIDIKK1BBU1MgSW50MTZfMTogYnVmZmVycyBoYXZlIHRoZSBzYW1l
IGNvbnRlbnRzCitQQVNTIEludDE2XzE6IG9mZnNldCBpcyAwCitQQVNTIEludDE2XzE6IGxlbmd0
aCBpcyAyCitQQVNTIFVpbnQxNl8xOiBjbGFzc2VzIGFyZSBbb2JqZWN0IFVpbnQxNkFycmF5XQor
UEFTUyBVaW50MTZfMTogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgVWlu
dDE2XzE6IGJ1ZmZlciBsZW5ndGhzIGFyZSAyCitQQVNTIFVpbnQxNl8xOiBidWZmZXJzIGhhdmUg
dGhlIHNhbWUgY29udGVudHMKK1BBU1MgVWludDE2XzE6IG9mZnNldCBpcyAwCitQQVNTIFVpbnQx
Nl8xOiBsZW5ndGggaXMgMgorUEFTUyBGbG9hdDMyXzE6IGNsYXNzZXMgYXJlIFtvYmplY3QgRmxv
YXQzMkFycmF5XQorUEFTUyBGbG9hdDMyXzE6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZm
ZXJdCitQQVNTIEZsb2F0MzJfMTogYnVmZmVyIGxlbmd0aHMgYXJlIDQKK1BBU1MgRmxvYXQzMl8x
OiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgRmxvYXQzMl8xOiBvZmZzZXQg
aXMgMAorUEFTUyBGbG9hdDMyXzE6IGxlbmd0aCBpcyA0CitQQVNTIEZsb2F0NjRfMTogY2xhc3Nl
cyBhcmUgW29iamVjdCBGbG9hdDY0QXJyYXldCitQQVNTIEZsb2F0NjRfMTogY2xhc3NlcyBhcmUg
W29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgRmxvYXQ2NF8xOiBidWZmZXIgbGVuZ3RocyBhcmUg
OAorUEFTUyBGbG9hdDY0XzE6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBG
bG9hdDY0XzE6IG9mZnNldCBpcyAwCitQQVNTIEZsb2F0NjRfMTogbGVuZ3RoIGlzIDgKK1BBU1Mg
SW50MzJfMTI4OiBjbGFzc2VzIGFyZSBbb2JqZWN0IEludDMyQXJyYXldCitQQVNTIEludDMyXzEy
ODogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgSW50MzJfMTI4OiBidWZm
ZXIgbGVuZ3RocyBhcmUgNTEyCitQQVNTIEludDMyXzEyODogYnVmZmVycyBoYXZlIHRoZSBzYW1l
IGNvbnRlbnRzCitQQVNTIEludDMyXzEyODogb2Zmc2V0IGlzIDAKK1BBU1MgSW50MzJfMTI4OiBs
ZW5ndGggaXMgNTEyCitQQVNTIFVpbnQzMl8xMjg6IGNsYXNzZXMgYXJlIFtvYmplY3QgVWludDMy
QXJyYXldCitQQVNTIFVpbnQzMl8xMjg6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJd
CitQQVNTIFVpbnQzMl8xMjg6IGJ1ZmZlciBsZW5ndGhzIGFyZSA1MTIKK1BBU1MgVWludDMyXzEy
ODogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIFVpbnQzMl8xMjg6IG9mZnNl
dCBpcyAwCitQQVNTIFVpbnQzMl8xMjg6IGxlbmd0aCBpcyA1MTIKK1BBU1MgSW50OF8xMjg6IGNs
YXNzZXMgYXJlIFtvYmplY3QgSW50OEFycmF5XQorUEFTUyBJbnQ4XzEyODogY2xhc3NlcyBhcmUg
W29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgSW50OF8xMjg6IGJ1ZmZlciBsZW5ndGhzIGFyZSAx
MjgKK1BBU1MgSW50OF8xMjg6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBJ
bnQ4XzEyODogb2Zmc2V0IGlzIDAKK1BBU1MgSW50OF8xMjg6IGxlbmd0aCBpcyAxMjgKK1BBU1Mg
VWludDhfMTI4OiBjbGFzc2VzIGFyZSBbb2JqZWN0IFVpbnQ4QXJyYXldCitQQVNTIFVpbnQ4XzEy
ODogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgVWludDhfMTI4OiBidWZm
ZXIgbGVuZ3RocyBhcmUgMTI4CitQQVNTIFVpbnQ4XzEyODogYnVmZmVycyBoYXZlIHRoZSBzYW1l
IGNvbnRlbnRzCitQQVNTIFVpbnQ4XzEyODogb2Zmc2V0IGlzIDAKK1BBU1MgVWludDhfMTI4OiBs
ZW5ndGggaXMgMTI4CitQQVNTIEludDE2XzEyODogY2xhc3NlcyBhcmUgW29iamVjdCBJbnQxNkFy
cmF5XQorUEFTUyBJbnQxNl8xMjg6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQ
QVNTIEludDE2XzEyODogYnVmZmVyIGxlbmd0aHMgYXJlIDI1NgorUEFTUyBJbnQxNl8xMjg6IGJ1
ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBJbnQxNl8xMjg6IG9mZnNldCBpcyAw
CitQQVNTIEludDE2XzEyODogbGVuZ3RoIGlzIDI1NgorUEFTUyBVaW50MTZfMTI4OiBjbGFzc2Vz
IGFyZSBbb2JqZWN0IFVpbnQxNkFycmF5XQorUEFTUyBVaW50MTZfMTI4OiBjbGFzc2VzIGFyZSBb
b2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBVaW50MTZfMTI4OiBidWZmZXIgbGVuZ3RocyBhcmUg
MjU2CitQQVNTIFVpbnQxNl8xMjg6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFT
UyBVaW50MTZfMTI4OiBvZmZzZXQgaXMgMAorUEFTUyBVaW50MTZfMTI4OiBsZW5ndGggaXMgMjU2
CitQQVNTIEZsb2F0MzJfMTI4OiBjbGFzc2VzIGFyZSBbb2JqZWN0IEZsb2F0MzJBcnJheV0KK1BB
U1MgRmxvYXQzMl8xMjg6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIEZs
b2F0MzJfMTI4OiBidWZmZXIgbGVuZ3RocyBhcmUgNTEyCitQQVNTIEZsb2F0MzJfMTI4OiBidWZm
ZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgRmxvYXQzMl8xMjg6IG9mZnNldCBpcyAw
CitQQVNTIEZsb2F0MzJfMTI4OiBsZW5ndGggaXMgNTEyCitQQVNTIEZsb2F0NjRfMTI4OiBjbGFz
c2VzIGFyZSBbb2JqZWN0IEZsb2F0NjRBcnJheV0KK1BBU1MgRmxvYXQ2NF8xMjg6IGNsYXNzZXMg
YXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIEZsb2F0NjRfMTI4OiBidWZmZXIgbGVuZ3Ro
cyBhcmUgMTAyNAorUEFTUyBGbG9hdDY0XzEyODogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRl
bnRzCitQQVNTIEZsb2F0NjRfMTI4OiBvZmZzZXQgaXMgMAorUEFTUyBGbG9hdDY0XzEyODogbGVu
Z3RoIGlzIDEwMjQKK1BBU1MgSW50MzJfMF9idWZmZXI6IGNsYXNzZXMgYXJlIFtvYmplY3QgSW50
MzJBcnJheV0KK1BBU1MgSW50MzJfMF9idWZmZXI6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlC
dWZmZXJdCitQQVNTIEludDMyXzBfYnVmZmVyOiBidWZmZXIgbGVuZ3RocyBhcmUgMAorUEFTUyBJ
bnQzMl8wX2J1ZmZlcjogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIEludDMy
XzBfYnVmZmVyOiBvZmZzZXQgaXMgMAorUEFTUyBJbnQzMl8wX2J1ZmZlcjogbGVuZ3RoIGlzIDAK
K1BBU1MgVWludDMyXzBfYnVmZmVyOiBjbGFzc2VzIGFyZSBbb2JqZWN0IFVpbnQzMkFycmF5XQor
UEFTUyBVaW50MzJfMF9idWZmZXI6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQ
QVNTIFVpbnQzMl8wX2J1ZmZlcjogYnVmZmVyIGxlbmd0aHMgYXJlIDAKK1BBU1MgVWludDMyXzBf
YnVmZmVyOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgVWludDMyXzBfYnVm
ZmVyOiBvZmZzZXQgaXMgMAorUEFTUyBVaW50MzJfMF9idWZmZXI6IGxlbmd0aCBpcyAwCitQQVNT
IEludDhfMF9idWZmZXI6IGNsYXNzZXMgYXJlIFtvYmplY3QgSW50OEFycmF5XQorUEFTUyBJbnQ4
XzBfYnVmZmVyOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBJbnQ4XzBf
YnVmZmVyOiBidWZmZXIgbGVuZ3RocyBhcmUgMAorUEFTUyBJbnQ4XzBfYnVmZmVyOiBidWZmZXJz
IGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgSW50OF8wX2J1ZmZlcjogb2Zmc2V0IGlzIDAK
K1BBU1MgSW50OF8wX2J1ZmZlcjogbGVuZ3RoIGlzIDAKK1BBU1MgVWludDhfMF9idWZmZXI6IGNs
YXNzZXMgYXJlIFtvYmplY3QgVWludDhBcnJheV0KK1BBU1MgVWludDhfMF9idWZmZXI6IGNsYXNz
ZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIFVpbnQ4XzBfYnVmZmVyOiBidWZmZXIg
bGVuZ3RocyBhcmUgMAorUEFTUyBVaW50OF8wX2J1ZmZlcjogYnVmZmVycyBoYXZlIHRoZSBzYW1l
IGNvbnRlbnRzCitQQVNTIFVpbnQ4XzBfYnVmZmVyOiBvZmZzZXQgaXMgMAorUEFTUyBVaW50OF8w
X2J1ZmZlcjogbGVuZ3RoIGlzIDAKK1BBU1MgSW50MTZfMF9idWZmZXI6IGNsYXNzZXMgYXJlIFtv
YmplY3QgSW50MTZBcnJheV0KK1BBU1MgSW50MTZfMF9idWZmZXI6IGNsYXNzZXMgYXJlIFtvYmpl
Y3QgQXJyYXlCdWZmZXJdCitQQVNTIEludDE2XzBfYnVmZmVyOiBidWZmZXIgbGVuZ3RocyBhcmUg
MAorUEFTUyBJbnQxNl8wX2J1ZmZlcjogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQ
QVNTIEludDE2XzBfYnVmZmVyOiBvZmZzZXQgaXMgMAorUEFTUyBJbnQxNl8wX2J1ZmZlcjogbGVu
Z3RoIGlzIDAKK1BBU1MgVWludDE2XzBfYnVmZmVyOiBjbGFzc2VzIGFyZSBbb2JqZWN0IFVpbnQx
NkFycmF5XQorUEFTUyBVaW50MTZfMF9idWZmZXI6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlC
dWZmZXJdCitQQVNTIFVpbnQxNl8wX2J1ZmZlcjogYnVmZmVyIGxlbmd0aHMgYXJlIDAKK1BBU1Mg
VWludDE2XzBfYnVmZmVyOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgVWlu
dDE2XzBfYnVmZmVyOiBvZmZzZXQgaXMgMAorUEFTUyBVaW50MTZfMF9idWZmZXI6IGxlbmd0aCBp
cyAwCitQQVNTIEZsb2F0MzJfMF9idWZmZXI6IGNsYXNzZXMgYXJlIFtvYmplY3QgRmxvYXQzMkFy
cmF5XQorUEFTUyBGbG9hdDMyXzBfYnVmZmVyOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVm
ZmVyXQorUEFTUyBGbG9hdDMyXzBfYnVmZmVyOiBidWZmZXIgbGVuZ3RocyBhcmUgMAorUEFTUyBG
bG9hdDMyXzBfYnVmZmVyOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgRmxv
YXQzMl8wX2J1ZmZlcjogb2Zmc2V0IGlzIDAKK1BBU1MgRmxvYXQzMl8wX2J1ZmZlcjogbGVuZ3Ro
IGlzIDAKK1BBU1MgRmxvYXQ2NF8wX2J1ZmZlcjogY2xhc3NlcyBhcmUgW29iamVjdCBGbG9hdDY0
QXJyYXldCitQQVNTIEZsb2F0NjRfMF9idWZmZXI6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlC
dWZmZXJdCitQQVNTIEZsb2F0NjRfMF9idWZmZXI6IGJ1ZmZlciBsZW5ndGhzIGFyZSAwCitQQVNT
IEZsb2F0NjRfMF9idWZmZXI6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBG
bG9hdDY0XzBfYnVmZmVyOiBvZmZzZXQgaXMgMAorUEFTUyBGbG9hdDY0XzBfYnVmZmVyOiBsZW5n
dGggaXMgMAorUEFTUyBJbnQzMl8xX2J1ZmZlcjogY2xhc3NlcyBhcmUgW29iamVjdCBJbnQzMkFy
cmF5XQorUEFTUyBJbnQzMl8xX2J1ZmZlcjogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZl
cl0KK1BBU1MgSW50MzJfMV9idWZmZXI6IGJ1ZmZlciBsZW5ndGhzIGFyZSA0CitQQVNTIEludDMy
XzFfYnVmZmVyOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgSW50MzJfMV9i
dWZmZXI6IG9mZnNldCBpcyAwCitQQVNTIEludDMyXzFfYnVmZmVyOiBsZW5ndGggaXMgNAorUEFT
UyBVaW50MzJfMV9idWZmZXI6IGNsYXNzZXMgYXJlIFtvYmplY3QgVWludDMyQXJyYXldCitQQVNT
IFVpbnQzMl8xX2J1ZmZlcjogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1Mg
VWludDMyXzFfYnVmZmVyOiBidWZmZXIgbGVuZ3RocyBhcmUgNAorUEFTUyBVaW50MzJfMV9idWZm
ZXI6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBVaW50MzJfMV9idWZmZXI6
IG9mZnNldCBpcyAwCitQQVNTIFVpbnQzMl8xX2J1ZmZlcjogbGVuZ3RoIGlzIDQKK1BBU1MgSW50
OF8xX2J1ZmZlcjogY2xhc3NlcyBhcmUgW29iamVjdCBJbnQ4QXJyYXldCitQQVNTIEludDhfMV9i
dWZmZXI6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIEludDhfMV9idWZm
ZXI6IGJ1ZmZlciBsZW5ndGhzIGFyZSAxCitQQVNTIEludDhfMV9idWZmZXI6IGJ1ZmZlcnMgaGF2
ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBJbnQ4XzFfYnVmZmVyOiBvZmZzZXQgaXMgMAorUEFT
UyBJbnQ4XzFfYnVmZmVyOiBsZW5ndGggaXMgMQorUEFTUyBVaW50OF8xX2J1ZmZlcjogY2xhc3Nl
cyBhcmUgW29iamVjdCBVaW50OEFycmF5XQorUEFTUyBVaW50OF8xX2J1ZmZlcjogY2xhc3NlcyBh
cmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgVWludDhfMV9idWZmZXI6IGJ1ZmZlciBsZW5n
dGhzIGFyZSAxCitQQVNTIFVpbnQ4XzFfYnVmZmVyOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29u
dGVudHMKK1BBU1MgVWludDhfMV9idWZmZXI6IG9mZnNldCBpcyAwCitQQVNTIFVpbnQ4XzFfYnVm
ZmVyOiBsZW5ndGggaXMgMQorUEFTUyBJbnQxNl8xX2J1ZmZlcjogY2xhc3NlcyBhcmUgW29iamVj
dCBJbnQxNkFycmF5XQorUEFTUyBJbnQxNl8xX2J1ZmZlcjogY2xhc3NlcyBhcmUgW29iamVjdCBB
cnJheUJ1ZmZlcl0KK1BBU1MgSW50MTZfMV9idWZmZXI6IGJ1ZmZlciBsZW5ndGhzIGFyZSAyCitQ
QVNTIEludDE2XzFfYnVmZmVyOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1Mg
SW50MTZfMV9idWZmZXI6IG9mZnNldCBpcyAwCitQQVNTIEludDE2XzFfYnVmZmVyOiBsZW5ndGgg
aXMgMgorUEFTUyBVaW50MTZfMV9idWZmZXI6IGNsYXNzZXMgYXJlIFtvYmplY3QgVWludDE2QXJy
YXldCitQQVNTIFVpbnQxNl8xX2J1ZmZlcjogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZl
cl0KK1BBU1MgVWludDE2XzFfYnVmZmVyOiBidWZmZXIgbGVuZ3RocyBhcmUgMgorUEFTUyBVaW50
MTZfMV9idWZmZXI6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBVaW50MTZf
MV9idWZmZXI6IG9mZnNldCBpcyAwCitQQVNTIFVpbnQxNl8xX2J1ZmZlcjogbGVuZ3RoIGlzIDIK
K1BBU1MgRmxvYXQzMl8xX2J1ZmZlcjogY2xhc3NlcyBhcmUgW29iamVjdCBGbG9hdDMyQXJyYXld
CitQQVNTIEZsb2F0MzJfMV9idWZmZXI6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJd
CitQQVNTIEZsb2F0MzJfMV9idWZmZXI6IGJ1ZmZlciBsZW5ndGhzIGFyZSA0CitQQVNTIEZsb2F0
MzJfMV9idWZmZXI6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBGbG9hdDMy
XzFfYnVmZmVyOiBvZmZzZXQgaXMgMAorUEFTUyBGbG9hdDMyXzFfYnVmZmVyOiBsZW5ndGggaXMg
NAorUEFTUyBGbG9hdDY0XzFfYnVmZmVyOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEZsb2F0NjRBcnJh
eV0KK1BBU1MgRmxvYXQ2NF8xX2J1ZmZlcjogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZl
cl0KK1BBU1MgRmxvYXQ2NF8xX2J1ZmZlcjogYnVmZmVyIGxlbmd0aHMgYXJlIDgKK1BBU1MgRmxv
YXQ2NF8xX2J1ZmZlcjogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIEZsb2F0
NjRfMV9idWZmZXI6IG9mZnNldCBpcyAwCitQQVNTIEZsb2F0NjRfMV9idWZmZXI6IGxlbmd0aCBp
cyA4CitQQVNTIEludDMyXzEyOF9idWZmZXI6IGNsYXNzZXMgYXJlIFtvYmplY3QgSW50MzJBcnJh
eV0KK1BBU1MgSW50MzJfMTI4X2J1ZmZlcjogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZl
cl0KK1BBU1MgSW50MzJfMTI4X2J1ZmZlcjogYnVmZmVyIGxlbmd0aHMgYXJlIDUxMgorUEFTUyBJ
bnQzMl8xMjhfYnVmZmVyOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgSW50
MzJfMTI4X2J1ZmZlcjogb2Zmc2V0IGlzIDAKK1BBU1MgSW50MzJfMTI4X2J1ZmZlcjogbGVuZ3Ro
IGlzIDUxMgorUEFTUyBVaW50MzJfMTI4X2J1ZmZlcjogY2xhc3NlcyBhcmUgW29iamVjdCBVaW50
MzJBcnJheV0KK1BBU1MgVWludDMyXzEyOF9idWZmZXI6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJy
YXlCdWZmZXJdCitQQVNTIFVpbnQzMl8xMjhfYnVmZmVyOiBidWZmZXIgbGVuZ3RocyBhcmUgNTEy
CitQQVNTIFVpbnQzMl8xMjhfYnVmZmVyOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMK
K1BBU1MgVWludDMyXzEyOF9idWZmZXI6IG9mZnNldCBpcyAwCitQQVNTIFVpbnQzMl8xMjhfYnVm
ZmVyOiBsZW5ndGggaXMgNTEyCitQQVNTIEludDhfMTI4X2J1ZmZlcjogY2xhc3NlcyBhcmUgW29i
amVjdCBJbnQ4QXJyYXldCitQQVNTIEludDhfMTI4X2J1ZmZlcjogY2xhc3NlcyBhcmUgW29iamVj
dCBBcnJheUJ1ZmZlcl0KK1BBU1MgSW50OF8xMjhfYnVmZmVyOiBidWZmZXIgbGVuZ3RocyBhcmUg
MTI4CitQQVNTIEludDhfMTI4X2J1ZmZlcjogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRz
CitQQVNTIEludDhfMTI4X2J1ZmZlcjogb2Zmc2V0IGlzIDAKK1BBU1MgSW50OF8xMjhfYnVmZmVy
OiBsZW5ndGggaXMgMTI4CitQQVNTIFVpbnQ4XzEyOF9idWZmZXI6IGNsYXNzZXMgYXJlIFtvYmpl
Y3QgVWludDhBcnJheV0KK1BBU1MgVWludDhfMTI4X2J1ZmZlcjogY2xhc3NlcyBhcmUgW29iamVj
dCBBcnJheUJ1ZmZlcl0KK1BBU1MgVWludDhfMTI4X2J1ZmZlcjogYnVmZmVyIGxlbmd0aHMgYXJl
IDEyOAorUEFTUyBVaW50OF8xMjhfYnVmZmVyOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVu
dHMKK1BBU1MgVWludDhfMTI4X2J1ZmZlcjogb2Zmc2V0IGlzIDAKK1BBU1MgVWludDhfMTI4X2J1
ZmZlcjogbGVuZ3RoIGlzIDEyOAorUEFTUyBJbnQxNl8xMjhfYnVmZmVyOiBjbGFzc2VzIGFyZSBb
b2JqZWN0IEludDE2QXJyYXldCitQQVNTIEludDE2XzEyOF9idWZmZXI6IGNsYXNzZXMgYXJlIFtv
YmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIEludDE2XzEyOF9idWZmZXI6IGJ1ZmZlciBsZW5ndGhz
IGFyZSAyNTYKK1BBU1MgSW50MTZfMTI4X2J1ZmZlcjogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNv
bnRlbnRzCitQQVNTIEludDE2XzEyOF9idWZmZXI6IG9mZnNldCBpcyAwCitQQVNTIEludDE2XzEy
OF9idWZmZXI6IGxlbmd0aCBpcyAyNTYKK1BBU1MgVWludDE2XzEyOF9idWZmZXI6IGNsYXNzZXMg
YXJlIFtvYmplY3QgVWludDE2QXJyYXldCitQQVNTIFVpbnQxNl8xMjhfYnVmZmVyOiBjbGFzc2Vz
IGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBVaW50MTZfMTI4X2J1ZmZlcjogYnVmZmVy
IGxlbmd0aHMgYXJlIDI1NgorUEFTUyBVaW50MTZfMTI4X2J1ZmZlcjogYnVmZmVycyBoYXZlIHRo
ZSBzYW1lIGNvbnRlbnRzCitQQVNTIFVpbnQxNl8xMjhfYnVmZmVyOiBvZmZzZXQgaXMgMAorUEFT
UyBVaW50MTZfMTI4X2J1ZmZlcjogbGVuZ3RoIGlzIDI1NgorUEFTUyBGbG9hdDMyXzEyOF9idWZm
ZXI6IGNsYXNzZXMgYXJlIFtvYmplY3QgRmxvYXQzMkFycmF5XQorUEFTUyBGbG9hdDMyXzEyOF9i
dWZmZXI6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIEZsb2F0MzJfMTI4
X2J1ZmZlcjogYnVmZmVyIGxlbmd0aHMgYXJlIDUxMgorUEFTUyBGbG9hdDMyXzEyOF9idWZmZXI6
IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBGbG9hdDMyXzEyOF9idWZmZXI6
IG9mZnNldCBpcyAwCitQQVNTIEZsb2F0MzJfMTI4X2J1ZmZlcjogbGVuZ3RoIGlzIDUxMgorUEFT
UyBGbG9hdDY0XzEyOF9idWZmZXI6IGNsYXNzZXMgYXJlIFtvYmplY3QgRmxvYXQ2NEFycmF5XQor
UEFTUyBGbG9hdDY0XzEyOF9idWZmZXI6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJd
CitQQVNTIEZsb2F0NjRfMTI4X2J1ZmZlcjogYnVmZmVyIGxlbmd0aHMgYXJlIDEwMjQKK1BBU1Mg
RmxvYXQ2NF8xMjhfYnVmZmVyOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1Mg
RmxvYXQ2NF8xMjhfYnVmZmVyOiBvZmZzZXQgaXMgMAorUEFTUyBGbG9hdDY0XzEyOF9idWZmZXI6
IGxlbmd0aCBpcyAxMDI0CitQQVNTIEludDMyXzFfYnVmZmVyX29mZnNldF9hdF9lbmQ6IGNsYXNz
ZXMgYXJlIFtvYmplY3QgSW50MzJBcnJheV0KK1BBU1MgSW50MzJfMV9idWZmZXJfb2Zmc2V0X2F0
X2VuZDogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgSW50MzJfMV9idWZm
ZXJfb2Zmc2V0X2F0X2VuZDogYnVmZmVyIGxlbmd0aHMgYXJlIDQKK1BBU1MgSW50MzJfMV9idWZm
ZXJfb2Zmc2V0X2F0X2VuZDogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIElu
dDMyXzFfYnVmZmVyX29mZnNldF9hdF9lbmQ6IG9mZnNldCBpcyA0CitQQVNTIEludDMyXzFfYnVm
ZmVyX29mZnNldF9hdF9lbmQ6IGxlbmd0aCBpcyAwCitQQVNTIFVpbnQzMl8xX2J1ZmZlcl9vZmZz
ZXRfYXRfZW5kOiBjbGFzc2VzIGFyZSBbb2JqZWN0IFVpbnQzMkFycmF5XQorUEFTUyBVaW50MzJf
MV9idWZmZXJfb2Zmc2V0X2F0X2VuZDogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0K
K1BBU1MgVWludDMyXzFfYnVmZmVyX29mZnNldF9hdF9lbmQ6IGJ1ZmZlciBsZW5ndGhzIGFyZSA0
CitQQVNTIFVpbnQzMl8xX2J1ZmZlcl9vZmZzZXRfYXRfZW5kOiBidWZmZXJzIGhhdmUgdGhlIHNh
bWUgY29udGVudHMKK1BBU1MgVWludDMyXzFfYnVmZmVyX29mZnNldF9hdF9lbmQ6IG9mZnNldCBp
cyA0CitQQVNTIFVpbnQzMl8xX2J1ZmZlcl9vZmZzZXRfYXRfZW5kOiBsZW5ndGggaXMgMAorUEFT
UyBJbnQ4XzFfYnVmZmVyX29mZnNldF9hdF9lbmQ6IGNsYXNzZXMgYXJlIFtvYmplY3QgSW50OEFy
cmF5XQorUEFTUyBJbnQ4XzFfYnVmZmVyX29mZnNldF9hdF9lbmQ6IGNsYXNzZXMgYXJlIFtvYmpl
Y3QgQXJyYXlCdWZmZXJdCitQQVNTIEludDhfMV9idWZmZXJfb2Zmc2V0X2F0X2VuZDogYnVmZmVy
IGxlbmd0aHMgYXJlIDEKK1BBU1MgSW50OF8xX2J1ZmZlcl9vZmZzZXRfYXRfZW5kOiBidWZmZXJz
IGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgSW50OF8xX2J1ZmZlcl9vZmZzZXRfYXRfZW5k
OiBvZmZzZXQgaXMgMQorUEFTUyBJbnQ4XzFfYnVmZmVyX29mZnNldF9hdF9lbmQ6IGxlbmd0aCBp
cyAwCitQQVNTIFVpbnQ4XzFfYnVmZmVyX29mZnNldF9hdF9lbmQ6IGNsYXNzZXMgYXJlIFtvYmpl
Y3QgVWludDhBcnJheV0KK1BBU1MgVWludDhfMV9idWZmZXJfb2Zmc2V0X2F0X2VuZDogY2xhc3Nl
cyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgVWludDhfMV9idWZmZXJfb2Zmc2V0X2F0
X2VuZDogYnVmZmVyIGxlbmd0aHMgYXJlIDEKK1BBU1MgVWludDhfMV9idWZmZXJfb2Zmc2V0X2F0
X2VuZDogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIFVpbnQ4XzFfYnVmZmVy
X29mZnNldF9hdF9lbmQ6IG9mZnNldCBpcyAxCitQQVNTIFVpbnQ4XzFfYnVmZmVyX29mZnNldF9h
dF9lbmQ6IGxlbmd0aCBpcyAwCitQQVNTIEludDE2XzFfYnVmZmVyX29mZnNldF9hdF9lbmQ6IGNs
YXNzZXMgYXJlIFtvYmplY3QgSW50MTZBcnJheV0KK1BBU1MgSW50MTZfMV9idWZmZXJfb2Zmc2V0
X2F0X2VuZDogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgSW50MTZfMV9i
dWZmZXJfb2Zmc2V0X2F0X2VuZDogYnVmZmVyIGxlbmd0aHMgYXJlIDIKK1BBU1MgSW50MTZfMV9i
dWZmZXJfb2Zmc2V0X2F0X2VuZDogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNT
IEludDE2XzFfYnVmZmVyX29mZnNldF9hdF9lbmQ6IG9mZnNldCBpcyAyCitQQVNTIEludDE2XzFf
YnVmZmVyX29mZnNldF9hdF9lbmQ6IGxlbmd0aCBpcyAwCitQQVNTIFVpbnQxNl8xX2J1ZmZlcl9v
ZmZzZXRfYXRfZW5kOiBjbGFzc2VzIGFyZSBbb2JqZWN0IFVpbnQxNkFycmF5XQorUEFTUyBVaW50
MTZfMV9idWZmZXJfb2Zmc2V0X2F0X2VuZDogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZl
cl0KK1BBU1MgVWludDE2XzFfYnVmZmVyX29mZnNldF9hdF9lbmQ6IGJ1ZmZlciBsZW5ndGhzIGFy
ZSAyCitQQVNTIFVpbnQxNl8xX2J1ZmZlcl9vZmZzZXRfYXRfZW5kOiBidWZmZXJzIGhhdmUgdGhl
IHNhbWUgY29udGVudHMKK1BBU1MgVWludDE2XzFfYnVmZmVyX29mZnNldF9hdF9lbmQ6IG9mZnNl
dCBpcyAyCitQQVNTIFVpbnQxNl8xX2J1ZmZlcl9vZmZzZXRfYXRfZW5kOiBsZW5ndGggaXMgMAor
UEFTUyBGbG9hdDMyXzFfYnVmZmVyX29mZnNldF9hdF9lbmQ6IGNsYXNzZXMgYXJlIFtvYmplY3Qg
RmxvYXQzMkFycmF5XQorUEFTUyBGbG9hdDMyXzFfYnVmZmVyX29mZnNldF9hdF9lbmQ6IGNsYXNz
ZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIEZsb2F0MzJfMV9idWZmZXJfb2Zmc2V0
X2F0X2VuZDogYnVmZmVyIGxlbmd0aHMgYXJlIDQKK1BBU1MgRmxvYXQzMl8xX2J1ZmZlcl9vZmZz
ZXRfYXRfZW5kOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgRmxvYXQzMl8x
X2J1ZmZlcl9vZmZzZXRfYXRfZW5kOiBvZmZzZXQgaXMgNAorUEFTUyBGbG9hdDMyXzFfYnVmZmVy
X29mZnNldF9hdF9lbmQ6IGxlbmd0aCBpcyAwCitQQVNTIEZsb2F0NjRfMV9idWZmZXJfb2Zmc2V0
X2F0X2VuZDogY2xhc3NlcyBhcmUgW29iamVjdCBGbG9hdDY0QXJyYXldCitQQVNTIEZsb2F0NjRf
MV9idWZmZXJfb2Zmc2V0X2F0X2VuZDogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0K
K1BBU1MgRmxvYXQ2NF8xX2J1ZmZlcl9vZmZzZXRfYXRfZW5kOiBidWZmZXIgbGVuZ3RocyBhcmUg
OAorUEFTUyBGbG9hdDY0XzFfYnVmZmVyX29mZnNldF9hdF9lbmQ6IGJ1ZmZlcnMgaGF2ZSB0aGUg
c2FtZSBjb250ZW50cworUEFTUyBGbG9hdDY0XzFfYnVmZmVyX29mZnNldF9hdF9lbmQ6IG9mZnNl
dCBpcyA4CitQQVNTIEZsb2F0NjRfMV9idWZmZXJfb2Zmc2V0X2F0X2VuZDogbGVuZ3RoIGlzIDAK
K1BBU1MgSW50MzJfMTI4X2J1ZmZlcl9vZmZzZXRfYXRfZW5kOiBjbGFzc2VzIGFyZSBbb2JqZWN0
IEludDMyQXJyYXldCitQQVNTIEludDMyXzEyOF9idWZmZXJfb2Zmc2V0X2F0X2VuZDogY2xhc3Nl
cyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgSW50MzJfMTI4X2J1ZmZlcl9vZmZzZXRf
YXRfZW5kOiBidWZmZXIgbGVuZ3RocyBhcmUgNTEyCitQQVNTIEludDMyXzEyOF9idWZmZXJfb2Zm
c2V0X2F0X2VuZDogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIEludDMyXzEy
OF9idWZmZXJfb2Zmc2V0X2F0X2VuZDogb2Zmc2V0IGlzIDUxMgorUEFTUyBJbnQzMl8xMjhfYnVm
ZmVyX29mZnNldF9hdF9lbmQ6IGxlbmd0aCBpcyAwCitQQVNTIFVpbnQzMl8xMjhfYnVmZmVyX29m
ZnNldF9hdF9lbmQ6IGNsYXNzZXMgYXJlIFtvYmplY3QgVWludDMyQXJyYXldCitQQVNTIFVpbnQz
Ml8xMjhfYnVmZmVyX29mZnNldF9hdF9lbmQ6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZm
ZXJdCitQQVNTIFVpbnQzMl8xMjhfYnVmZmVyX29mZnNldF9hdF9lbmQ6IGJ1ZmZlciBsZW5ndGhz
IGFyZSA1MTIKK1BBU1MgVWludDMyXzEyOF9idWZmZXJfb2Zmc2V0X2F0X2VuZDogYnVmZmVycyBo
YXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIFVpbnQzMl8xMjhfYnVmZmVyX29mZnNldF9hdF9l
bmQ6IG9mZnNldCBpcyA1MTIKK1BBU1MgVWludDMyXzEyOF9idWZmZXJfb2Zmc2V0X2F0X2VuZDog
bGVuZ3RoIGlzIDAKK1BBU1MgSW50OF8xMjhfYnVmZmVyX29mZnNldF9hdF9lbmQ6IGNsYXNzZXMg
YXJlIFtvYmplY3QgSW50OEFycmF5XQorUEFTUyBJbnQ4XzEyOF9idWZmZXJfb2Zmc2V0X2F0X2Vu
ZDogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgSW50OF8xMjhfYnVmZmVy
X29mZnNldF9hdF9lbmQ6IGJ1ZmZlciBsZW5ndGhzIGFyZSAxMjgKK1BBU1MgSW50OF8xMjhfYnVm
ZmVyX29mZnNldF9hdF9lbmQ6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBJ
bnQ4XzEyOF9idWZmZXJfb2Zmc2V0X2F0X2VuZDogb2Zmc2V0IGlzIDEyOAorUEFTUyBJbnQ4XzEy
OF9idWZmZXJfb2Zmc2V0X2F0X2VuZDogbGVuZ3RoIGlzIDAKK1BBU1MgVWludDhfMTI4X2J1ZmZl
cl9vZmZzZXRfYXRfZW5kOiBjbGFzc2VzIGFyZSBbb2JqZWN0IFVpbnQ4QXJyYXldCitQQVNTIFVp
bnQ4XzEyOF9idWZmZXJfb2Zmc2V0X2F0X2VuZDogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1
ZmZlcl0KK1BBU1MgVWludDhfMTI4X2J1ZmZlcl9vZmZzZXRfYXRfZW5kOiBidWZmZXIgbGVuZ3Ro
cyBhcmUgMTI4CitQQVNTIFVpbnQ4XzEyOF9idWZmZXJfb2Zmc2V0X2F0X2VuZDogYnVmZmVycyBo
YXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIFVpbnQ4XzEyOF9idWZmZXJfb2Zmc2V0X2F0X2Vu
ZDogb2Zmc2V0IGlzIDEyOAorUEFTUyBVaW50OF8xMjhfYnVmZmVyX29mZnNldF9hdF9lbmQ6IGxl
bmd0aCBpcyAwCitQQVNTIEludDE2XzEyOF9idWZmZXJfb2Zmc2V0X2F0X2VuZDogY2xhc3NlcyBh
cmUgW29iamVjdCBJbnQxNkFycmF5XQorUEFTUyBJbnQxNl8xMjhfYnVmZmVyX29mZnNldF9hdF9l
bmQ6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIEludDE2XzEyOF9idWZm
ZXJfb2Zmc2V0X2F0X2VuZDogYnVmZmVyIGxlbmd0aHMgYXJlIDI1NgorUEFTUyBJbnQxNl8xMjhf
YnVmZmVyX29mZnNldF9hdF9lbmQ6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFT
UyBJbnQxNl8xMjhfYnVmZmVyX29mZnNldF9hdF9lbmQ6IG9mZnNldCBpcyAyNTYKK1BBU1MgSW50
MTZfMTI4X2J1ZmZlcl9vZmZzZXRfYXRfZW5kOiBsZW5ndGggaXMgMAorUEFTUyBVaW50MTZfMTI4
X2J1ZmZlcl9vZmZzZXRfYXRfZW5kOiBjbGFzc2VzIGFyZSBbb2JqZWN0IFVpbnQxNkFycmF5XQor
UEFTUyBVaW50MTZfMTI4X2J1ZmZlcl9vZmZzZXRfYXRfZW5kOiBjbGFzc2VzIGFyZSBbb2JqZWN0
IEFycmF5QnVmZmVyXQorUEFTUyBVaW50MTZfMTI4X2J1ZmZlcl9vZmZzZXRfYXRfZW5kOiBidWZm
ZXIgbGVuZ3RocyBhcmUgMjU2CitQQVNTIFVpbnQxNl8xMjhfYnVmZmVyX29mZnNldF9hdF9lbmQ6
IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBVaW50MTZfMTI4X2J1ZmZlcl9v
ZmZzZXRfYXRfZW5kOiBvZmZzZXQgaXMgMjU2CitQQVNTIFVpbnQxNl8xMjhfYnVmZmVyX29mZnNl
dF9hdF9lbmQ6IGxlbmd0aCBpcyAwCitQQVNTIEZsb2F0MzJfMTI4X2J1ZmZlcl9vZmZzZXRfYXRf
ZW5kOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEZsb2F0MzJBcnJheV0KK1BBU1MgRmxvYXQzMl8xMjhf
YnVmZmVyX29mZnNldF9hdF9lbmQ6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQ
QVNTIEZsb2F0MzJfMTI4X2J1ZmZlcl9vZmZzZXRfYXRfZW5kOiBidWZmZXIgbGVuZ3RocyBhcmUg
NTEyCitQQVNTIEZsb2F0MzJfMTI4X2J1ZmZlcl9vZmZzZXRfYXRfZW5kOiBidWZmZXJzIGhhdmUg
dGhlIHNhbWUgY29udGVudHMKK1BBU1MgRmxvYXQzMl8xMjhfYnVmZmVyX29mZnNldF9hdF9lbmQ6
IG9mZnNldCBpcyA1MTIKK1BBU1MgRmxvYXQzMl8xMjhfYnVmZmVyX29mZnNldF9hdF9lbmQ6IGxl
bmd0aCBpcyAwCitQQVNTIEZsb2F0NjRfMTI4X2J1ZmZlcl9vZmZzZXRfYXRfZW5kOiBjbGFzc2Vz
IGFyZSBbb2JqZWN0IEZsb2F0NjRBcnJheV0KK1BBU1MgRmxvYXQ2NF8xMjhfYnVmZmVyX29mZnNl
dF9hdF9lbmQ6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIEZsb2F0NjRf
MTI4X2J1ZmZlcl9vZmZzZXRfYXRfZW5kOiBidWZmZXIgbGVuZ3RocyBhcmUgMTAyNAorUEFTUyBG
bG9hdDY0XzEyOF9idWZmZXJfb2Zmc2V0X2F0X2VuZDogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNv
bnRlbnRzCitQQVNTIEZsb2F0NjRfMTI4X2J1ZmZlcl9vZmZzZXRfYXRfZW5kOiBvZmZzZXQgaXMg
MTAyNAorUEFTUyBGbG9hdDY0XzEyOF9idWZmZXJfb2Zmc2V0X2F0X2VuZDogbGVuZ3RoIGlzIDAK
K1BBU1MgSW50MzJfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3RoXzA6IGNsYXNzZXMgYXJl
IFtvYmplY3QgSW50MzJBcnJheV0KK1BBU1MgSW50MzJfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2Vf
bGVuZ3RoXzA6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIEludDMyXzEy
OF9idWZmZXJfb2Zmc2V0X3NsaWNlX2xlbmd0aF8wOiBidWZmZXIgbGVuZ3RocyBhcmUgNTEyCitQ
QVNTIEludDMyXzEyOF9idWZmZXJfb2Zmc2V0X3NsaWNlX2xlbmd0aF8wOiBidWZmZXJzIGhhdmUg
dGhlIHNhbWUgY29udGVudHMKK1BBU1MgSW50MzJfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVu
Z3RoXzA6IG9mZnNldCBpcyAyNTYKK1BBU1MgSW50MzJfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2Vf
bGVuZ3RoXzA6IGxlbmd0aCBpcyAwCitQQVNTIFVpbnQzMl8xMjhfYnVmZmVyX29mZnNldF9zbGlj
ZV9sZW5ndGhfMDogY2xhc3NlcyBhcmUgW29iamVjdCBVaW50MzJBcnJheV0KK1BBU1MgVWludDMy
XzEyOF9idWZmZXJfb2Zmc2V0X3NsaWNlX2xlbmd0aF8wOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFy
cmF5QnVmZmVyXQorUEFTUyBVaW50MzJfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3RoXzA6
IGJ1ZmZlciBsZW5ndGhzIGFyZSA1MTIKK1BBU1MgVWludDMyXzEyOF9idWZmZXJfb2Zmc2V0X3Ns
aWNlX2xlbmd0aF8wOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgVWludDMy
XzEyOF9idWZmZXJfb2Zmc2V0X3NsaWNlX2xlbmd0aF8wOiBvZmZzZXQgaXMgMjU2CitQQVNTIFVp
bnQzMl8xMjhfYnVmZmVyX29mZnNldF9zbGljZV9sZW5ndGhfMDogbGVuZ3RoIGlzIDAKK1BBU1Mg
SW50OF8xMjhfYnVmZmVyX29mZnNldF9zbGljZV9sZW5ndGhfMDogY2xhc3NlcyBhcmUgW29iamVj
dCBJbnQ4QXJyYXldCitQQVNTIEludDhfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3RoXzA6
IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIEludDhfMTI4X2J1ZmZlcl9v
ZmZzZXRfc2xpY2VfbGVuZ3RoXzA6IGJ1ZmZlciBsZW5ndGhzIGFyZSAxMjgKK1BBU1MgSW50OF8x
MjhfYnVmZmVyX29mZnNldF9zbGljZV9sZW5ndGhfMDogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNv
bnRlbnRzCitQQVNTIEludDhfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3RoXzA6IG9mZnNl
dCBpcyA2NAorUEFTUyBJbnQ4XzEyOF9idWZmZXJfb2Zmc2V0X3NsaWNlX2xlbmd0aF8wOiBsZW5n
dGggaXMgMAorUEFTUyBVaW50OF8xMjhfYnVmZmVyX29mZnNldF9zbGljZV9sZW5ndGhfMDogY2xh
c3NlcyBhcmUgW29iamVjdCBVaW50OEFycmF5XQorUEFTUyBVaW50OF8xMjhfYnVmZmVyX29mZnNl
dF9zbGljZV9sZW5ndGhfMDogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1Mg
VWludDhfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3RoXzA6IGJ1ZmZlciBsZW5ndGhzIGFy
ZSAxMjgKK1BBU1MgVWludDhfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3RoXzA6IGJ1ZmZl
cnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBVaW50OF8xMjhfYnVmZmVyX29mZnNldF9z
bGljZV9sZW5ndGhfMDogb2Zmc2V0IGlzIDY0CitQQVNTIFVpbnQ4XzEyOF9idWZmZXJfb2Zmc2V0
X3NsaWNlX2xlbmd0aF8wOiBsZW5ndGggaXMgMAorUEFTUyBJbnQxNl8xMjhfYnVmZmVyX29mZnNl
dF9zbGljZV9sZW5ndGhfMDogY2xhc3NlcyBhcmUgW29iamVjdCBJbnQxNkFycmF5XQorUEFTUyBJ
bnQxNl8xMjhfYnVmZmVyX29mZnNldF9zbGljZV9sZW5ndGhfMDogY2xhc3NlcyBhcmUgW29iamVj
dCBBcnJheUJ1ZmZlcl0KK1BBU1MgSW50MTZfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3Ro
XzA6IGJ1ZmZlciBsZW5ndGhzIGFyZSAyNTYKK1BBU1MgSW50MTZfMTI4X2J1ZmZlcl9vZmZzZXRf
c2xpY2VfbGVuZ3RoXzA6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBJbnQx
Nl8xMjhfYnVmZmVyX29mZnNldF9zbGljZV9sZW5ndGhfMDogb2Zmc2V0IGlzIDEyOAorUEFTUyBJ
bnQxNl8xMjhfYnVmZmVyX29mZnNldF9zbGljZV9sZW5ndGhfMDogbGVuZ3RoIGlzIDAKK1BBU1Mg
VWludDE2XzEyOF9idWZmZXJfb2Zmc2V0X3NsaWNlX2xlbmd0aF8wOiBjbGFzc2VzIGFyZSBbb2Jq
ZWN0IFVpbnQxNkFycmF5XQorUEFTUyBVaW50MTZfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVu
Z3RoXzA6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIFVpbnQxNl8xMjhf
YnVmZmVyX29mZnNldF9zbGljZV9sZW5ndGhfMDogYnVmZmVyIGxlbmd0aHMgYXJlIDI1NgorUEFT
UyBVaW50MTZfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3RoXzA6IGJ1ZmZlcnMgaGF2ZSB0
aGUgc2FtZSBjb250ZW50cworUEFTUyBVaW50MTZfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVu
Z3RoXzA6IG9mZnNldCBpcyAxMjgKK1BBU1MgVWludDE2XzEyOF9idWZmZXJfb2Zmc2V0X3NsaWNl
X2xlbmd0aF8wOiBsZW5ndGggaXMgMAorUEFTUyBGbG9hdDMyXzEyOF9idWZmZXJfb2Zmc2V0X3Ns
aWNlX2xlbmd0aF8wOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEZsb2F0MzJBcnJheV0KK1BBU1MgRmxv
YXQzMl8xMjhfYnVmZmVyX29mZnNldF9zbGljZV9sZW5ndGhfMDogY2xhc3NlcyBhcmUgW29iamVj
dCBBcnJheUJ1ZmZlcl0KK1BBU1MgRmxvYXQzMl8xMjhfYnVmZmVyX29mZnNldF9zbGljZV9sZW5n
dGhfMDogYnVmZmVyIGxlbmd0aHMgYXJlIDUxMgorUEFTUyBGbG9hdDMyXzEyOF9idWZmZXJfb2Zm
c2V0X3NsaWNlX2xlbmd0aF8wOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1Mg
RmxvYXQzMl8xMjhfYnVmZmVyX29mZnNldF9zbGljZV9sZW5ndGhfMDogb2Zmc2V0IGlzIDI1Ngor
UEFTUyBGbG9hdDMyXzEyOF9idWZmZXJfb2Zmc2V0X3NsaWNlX2xlbmd0aF8wOiBsZW5ndGggaXMg
MAorUEFTUyBGbG9hdDY0XzEyOF9idWZmZXJfb2Zmc2V0X3NsaWNlX2xlbmd0aF8wOiBjbGFzc2Vz
IGFyZSBbb2JqZWN0IEZsb2F0NjRBcnJheV0KK1BBU1MgRmxvYXQ2NF8xMjhfYnVmZmVyX29mZnNl
dF9zbGljZV9sZW5ndGhfMDogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1Mg
RmxvYXQ2NF8xMjhfYnVmZmVyX29mZnNldF9zbGljZV9sZW5ndGhfMDogYnVmZmVyIGxlbmd0aHMg
YXJlIDEwMjQKK1BBU1MgRmxvYXQ2NF8xMjhfYnVmZmVyX29mZnNldF9zbGljZV9sZW5ndGhfMDog
YnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIEZsb2F0NjRfMTI4X2J1ZmZlcl9v
ZmZzZXRfc2xpY2VfbGVuZ3RoXzA6IG9mZnNldCBpcyA1MTIKK1BBU1MgRmxvYXQ2NF8xMjhfYnVm
ZmVyX29mZnNldF9zbGljZV9sZW5ndGhfMDogbGVuZ3RoIGlzIDAKK1BBU1MgSW50MzJfMTI4X2J1
ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3RoXzE6IGNsYXNzZXMgYXJlIFtvYmplY3QgSW50MzJBcnJh
eV0KK1BBU1MgSW50MzJfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3RoXzE6IGNsYXNzZXMg
YXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIEludDMyXzEyOF9idWZmZXJfb2Zmc2V0X3Ns
aWNlX2xlbmd0aF8xOiBidWZmZXIgbGVuZ3RocyBhcmUgNTEyCitQQVNTIEludDMyXzEyOF9idWZm
ZXJfb2Zmc2V0X3NsaWNlX2xlbmd0aF8xOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMK
K1BBU1MgSW50MzJfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3RoXzE6IG9mZnNldCBpcyAy
NTYKK1BBU1MgSW50MzJfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3RoXzE6IGxlbmd0aCBp
cyA0CitQQVNTIFVpbnQzMl8xMjhfYnVmZmVyX29mZnNldF9zbGljZV9sZW5ndGhfMTogY2xhc3Nl
cyBhcmUgW29iamVjdCBVaW50MzJBcnJheV0KK1BBU1MgVWludDMyXzEyOF9idWZmZXJfb2Zmc2V0
X3NsaWNlX2xlbmd0aF8xOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBV
aW50MzJfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3RoXzE6IGJ1ZmZlciBsZW5ndGhzIGFy
ZSA1MTIKK1BBU1MgVWludDMyXzEyOF9idWZmZXJfb2Zmc2V0X3NsaWNlX2xlbmd0aF8xOiBidWZm
ZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgVWludDMyXzEyOF9idWZmZXJfb2Zmc2V0
X3NsaWNlX2xlbmd0aF8xOiBvZmZzZXQgaXMgMjU2CitQQVNTIFVpbnQzMl8xMjhfYnVmZmVyX29m
ZnNldF9zbGljZV9sZW5ndGhfMTogbGVuZ3RoIGlzIDQKK1BBU1MgSW50OF8xMjhfYnVmZmVyX29m
ZnNldF9zbGljZV9sZW5ndGhfMTogY2xhc3NlcyBhcmUgW29iamVjdCBJbnQ4QXJyYXldCitQQVNT
IEludDhfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3RoXzE6IGNsYXNzZXMgYXJlIFtvYmpl
Y3QgQXJyYXlCdWZmZXJdCitQQVNTIEludDhfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3Ro
XzE6IGJ1ZmZlciBsZW5ndGhzIGFyZSAxMjgKK1BBU1MgSW50OF8xMjhfYnVmZmVyX29mZnNldF9z
bGljZV9sZW5ndGhfMTogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIEludDhf
MTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3RoXzE6IG9mZnNldCBpcyA2NAorUEFTUyBJbnQ4
XzEyOF9idWZmZXJfb2Zmc2V0X3NsaWNlX2xlbmd0aF8xOiBsZW5ndGggaXMgMQorUEFTUyBVaW50
OF8xMjhfYnVmZmVyX29mZnNldF9zbGljZV9sZW5ndGhfMTogY2xhc3NlcyBhcmUgW29iamVjdCBV
aW50OEFycmF5XQorUEFTUyBVaW50OF8xMjhfYnVmZmVyX29mZnNldF9zbGljZV9sZW5ndGhfMTog
Y2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgVWludDhfMTI4X2J1ZmZlcl9v
ZmZzZXRfc2xpY2VfbGVuZ3RoXzE6IGJ1ZmZlciBsZW5ndGhzIGFyZSAxMjgKK1BBU1MgVWludDhf
MTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3RoXzE6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBj
b250ZW50cworUEFTUyBVaW50OF8xMjhfYnVmZmVyX29mZnNldF9zbGljZV9sZW5ndGhfMTogb2Zm
c2V0IGlzIDY0CitQQVNTIFVpbnQ4XzEyOF9idWZmZXJfb2Zmc2V0X3NsaWNlX2xlbmd0aF8xOiBs
ZW5ndGggaXMgMQorUEFTUyBJbnQxNl8xMjhfYnVmZmVyX29mZnNldF9zbGljZV9sZW5ndGhfMTog
Y2xhc3NlcyBhcmUgW29iamVjdCBJbnQxNkFycmF5XQorUEFTUyBJbnQxNl8xMjhfYnVmZmVyX29m
ZnNldF9zbGljZV9sZW5ndGhfMTogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BB
U1MgSW50MTZfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3RoXzE6IGJ1ZmZlciBsZW5ndGhz
IGFyZSAyNTYKK1BBU1MgSW50MTZfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3RoXzE6IGJ1
ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBJbnQxNl8xMjhfYnVmZmVyX29mZnNl
dF9zbGljZV9sZW5ndGhfMTogb2Zmc2V0IGlzIDEyOAorUEFTUyBJbnQxNl8xMjhfYnVmZmVyX29m
ZnNldF9zbGljZV9sZW5ndGhfMTogbGVuZ3RoIGlzIDIKK1BBU1MgVWludDE2XzEyOF9idWZmZXJf
b2Zmc2V0X3NsaWNlX2xlbmd0aF8xOiBjbGFzc2VzIGFyZSBbb2JqZWN0IFVpbnQxNkFycmF5XQor
UEFTUyBVaW50MTZfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3RoXzE6IGNsYXNzZXMgYXJl
IFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIFVpbnQxNl8xMjhfYnVmZmVyX29mZnNldF9zbGlj
ZV9sZW5ndGhfMTogYnVmZmVyIGxlbmd0aHMgYXJlIDI1NgorUEFTUyBVaW50MTZfMTI4X2J1ZmZl
cl9vZmZzZXRfc2xpY2VfbGVuZ3RoXzE6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cwor
UEFTUyBVaW50MTZfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3RoXzE6IG9mZnNldCBpcyAx
MjgKK1BBU1MgVWludDE2XzEyOF9idWZmZXJfb2Zmc2V0X3NsaWNlX2xlbmd0aF8xOiBsZW5ndGgg
aXMgMgorUEFTUyBGbG9hdDMyXzEyOF9idWZmZXJfb2Zmc2V0X3NsaWNlX2xlbmd0aF8xOiBjbGFz
c2VzIGFyZSBbb2JqZWN0IEZsb2F0MzJBcnJheV0KK1BBU1MgRmxvYXQzMl8xMjhfYnVmZmVyX29m
ZnNldF9zbGljZV9sZW5ndGhfMTogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BB
U1MgRmxvYXQzMl8xMjhfYnVmZmVyX29mZnNldF9zbGljZV9sZW5ndGhfMTogYnVmZmVyIGxlbmd0
aHMgYXJlIDUxMgorUEFTUyBGbG9hdDMyXzEyOF9idWZmZXJfb2Zmc2V0X3NsaWNlX2xlbmd0aF8x
OiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgRmxvYXQzMl8xMjhfYnVmZmVy
X29mZnNldF9zbGljZV9sZW5ndGhfMTogb2Zmc2V0IGlzIDI1NgorUEFTUyBGbG9hdDMyXzEyOF9i
dWZmZXJfb2Zmc2V0X3NsaWNlX2xlbmd0aF8xOiBsZW5ndGggaXMgNAorUEFTUyBGbG9hdDY0XzEy
OF9idWZmZXJfb2Zmc2V0X3NsaWNlX2xlbmd0aF8xOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEZsb2F0
NjRBcnJheV0KK1BBU1MgRmxvYXQ2NF8xMjhfYnVmZmVyX29mZnNldF9zbGljZV9sZW5ndGhfMTog
Y2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgRmxvYXQ2NF8xMjhfYnVmZmVy
X29mZnNldF9zbGljZV9sZW5ndGhfMTogYnVmZmVyIGxlbmd0aHMgYXJlIDEwMjQKK1BBU1MgRmxv
YXQ2NF8xMjhfYnVmZmVyX29mZnNldF9zbGljZV9sZW5ndGhfMTogYnVmZmVycyBoYXZlIHRoZSBz
YW1lIGNvbnRlbnRzCitQQVNTIEZsb2F0NjRfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3Ro
XzE6IG9mZnNldCBpcyA1MTIKK1BBU1MgRmxvYXQ2NF8xMjhfYnVmZmVyX29mZnNldF9zbGljZV9s
ZW5ndGhfMTogbGVuZ3RoIGlzIDgKK1BBU1MgSW50MzJfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2Vf
bGVuZ3RoXzE2OiBjbGFzc2VzIGFyZSBbb2JqZWN0IEludDMyQXJyYXldCitQQVNTIEludDMyXzEy
OF9idWZmZXJfb2Zmc2V0X3NsaWNlX2xlbmd0aF8xNjogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJh
eUJ1ZmZlcl0KK1BBU1MgSW50MzJfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3RoXzE2OiBi
dWZmZXIgbGVuZ3RocyBhcmUgNTEyCitQQVNTIEludDMyXzEyOF9idWZmZXJfb2Zmc2V0X3NsaWNl
X2xlbmd0aF8xNjogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIEludDMyXzEy
OF9idWZmZXJfb2Zmc2V0X3NsaWNlX2xlbmd0aF8xNjogb2Zmc2V0IGlzIDI1NgorUEFTUyBJbnQz
Ml8xMjhfYnVmZmVyX29mZnNldF9zbGljZV9sZW5ndGhfMTY6IGxlbmd0aCBpcyA2NAorUEFTUyBV
aW50MzJfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3RoXzE2OiBjbGFzc2VzIGFyZSBbb2Jq
ZWN0IFVpbnQzMkFycmF5XQorUEFTUyBVaW50MzJfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVu
Z3RoXzE2OiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBVaW50MzJfMTI4
X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3RoXzE2OiBidWZmZXIgbGVuZ3RocyBhcmUgNTEyCitQ
QVNTIFVpbnQzMl8xMjhfYnVmZmVyX29mZnNldF9zbGljZV9sZW5ndGhfMTY6IGJ1ZmZlcnMgaGF2
ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBVaW50MzJfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2Vf
bGVuZ3RoXzE2OiBvZmZzZXQgaXMgMjU2CitQQVNTIFVpbnQzMl8xMjhfYnVmZmVyX29mZnNldF9z
bGljZV9sZW5ndGhfMTY6IGxlbmd0aCBpcyA2NAorUEFTUyBJbnQ4XzEyOF9idWZmZXJfb2Zmc2V0
X3NsaWNlX2xlbmd0aF8xNjogY2xhc3NlcyBhcmUgW29iamVjdCBJbnQ4QXJyYXldCitQQVNTIElu
dDhfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3RoXzE2OiBjbGFzc2VzIGFyZSBbb2JqZWN0
IEFycmF5QnVmZmVyXQorUEFTUyBJbnQ4XzEyOF9idWZmZXJfb2Zmc2V0X3NsaWNlX2xlbmd0aF8x
NjogYnVmZmVyIGxlbmd0aHMgYXJlIDEyOAorUEFTUyBJbnQ4XzEyOF9idWZmZXJfb2Zmc2V0X3Ns
aWNlX2xlbmd0aF8xNjogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIEludDhf
MTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3RoXzE2OiBvZmZzZXQgaXMgNjQKK1BBU1MgSW50
OF8xMjhfYnVmZmVyX29mZnNldF9zbGljZV9sZW5ndGhfMTY6IGxlbmd0aCBpcyAxNgorUEFTUyBV
aW50OF8xMjhfYnVmZmVyX29mZnNldF9zbGljZV9sZW5ndGhfMTY6IGNsYXNzZXMgYXJlIFtvYmpl
Y3QgVWludDhBcnJheV0KK1BBU1MgVWludDhfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3Ro
XzE2OiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBVaW50OF8xMjhfYnVm
ZmVyX29mZnNldF9zbGljZV9sZW5ndGhfMTY6IGJ1ZmZlciBsZW5ndGhzIGFyZSAxMjgKK1BBU1Mg
VWludDhfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3RoXzE2OiBidWZmZXJzIGhhdmUgdGhl
IHNhbWUgY29udGVudHMKK1BBU1MgVWludDhfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3Ro
XzE2OiBvZmZzZXQgaXMgNjQKK1BBU1MgVWludDhfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVu
Z3RoXzE2OiBsZW5ndGggaXMgMTYKK1BBU1MgSW50MTZfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2Vf
bGVuZ3RoXzE2OiBjbGFzc2VzIGFyZSBbb2JqZWN0IEludDE2QXJyYXldCitQQVNTIEludDE2XzEy
OF9idWZmZXJfb2Zmc2V0X3NsaWNlX2xlbmd0aF8xNjogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJh
eUJ1ZmZlcl0KK1BBU1MgSW50MTZfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3RoXzE2OiBi
dWZmZXIgbGVuZ3RocyBhcmUgMjU2CitQQVNTIEludDE2XzEyOF9idWZmZXJfb2Zmc2V0X3NsaWNl
X2xlbmd0aF8xNjogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIEludDE2XzEy
OF9idWZmZXJfb2Zmc2V0X3NsaWNlX2xlbmd0aF8xNjogb2Zmc2V0IGlzIDEyOAorUEFTUyBJbnQx
Nl8xMjhfYnVmZmVyX29mZnNldF9zbGljZV9sZW5ndGhfMTY6IGxlbmd0aCBpcyAzMgorUEFTUyBV
aW50MTZfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3RoXzE2OiBjbGFzc2VzIGFyZSBbb2Jq
ZWN0IFVpbnQxNkFycmF5XQorUEFTUyBVaW50MTZfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVu
Z3RoXzE2OiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBVaW50MTZfMTI4
X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3RoXzE2OiBidWZmZXIgbGVuZ3RocyBhcmUgMjU2CitQ
QVNTIFVpbnQxNl8xMjhfYnVmZmVyX29mZnNldF9zbGljZV9sZW5ndGhfMTY6IGJ1ZmZlcnMgaGF2
ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBVaW50MTZfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2Vf
bGVuZ3RoXzE2OiBvZmZzZXQgaXMgMTI4CitQQVNTIFVpbnQxNl8xMjhfYnVmZmVyX29mZnNldF9z
bGljZV9sZW5ndGhfMTY6IGxlbmd0aCBpcyAzMgorUEFTUyBGbG9hdDMyXzEyOF9idWZmZXJfb2Zm
c2V0X3NsaWNlX2xlbmd0aF8xNjogY2xhc3NlcyBhcmUgW29iamVjdCBGbG9hdDMyQXJyYXldCitQ
QVNTIEZsb2F0MzJfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3RoXzE2OiBjbGFzc2VzIGFy
ZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBGbG9hdDMyXzEyOF9idWZmZXJfb2Zmc2V0X3Ns
aWNlX2xlbmd0aF8xNjogYnVmZmVyIGxlbmd0aHMgYXJlIDUxMgorUEFTUyBGbG9hdDMyXzEyOF9i
dWZmZXJfb2Zmc2V0X3NsaWNlX2xlbmd0aF8xNjogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRl
bnRzCitQQVNTIEZsb2F0MzJfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3RoXzE2OiBvZmZz
ZXQgaXMgMjU2CitQQVNTIEZsb2F0MzJfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3RoXzE2
OiBsZW5ndGggaXMgNjQKK1BBU1MgRmxvYXQ2NF8xMjhfYnVmZmVyX29mZnNldF9zbGljZV9sZW5n
dGhfMTY6IGNsYXNzZXMgYXJlIFtvYmplY3QgRmxvYXQ2NEFycmF5XQorUEFTUyBGbG9hdDY0XzEy
OF9idWZmZXJfb2Zmc2V0X3NsaWNlX2xlbmd0aF8xNjogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJh
eUJ1ZmZlcl0KK1BBU1MgRmxvYXQ2NF8xMjhfYnVmZmVyX29mZnNldF9zbGljZV9sZW5ndGhfMTY6
IGJ1ZmZlciBsZW5ndGhzIGFyZSAxMDI0CitQQVNTIEZsb2F0NjRfMTI4X2J1ZmZlcl9vZmZzZXRf
c2xpY2VfbGVuZ3RoXzE2OiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgRmxv
YXQ2NF8xMjhfYnVmZmVyX29mZnNldF9zbGljZV9sZW5ndGhfMTY6IG9mZnNldCBpcyA1MTIKK1BB
U1MgRmxvYXQ2NF8xMjhfYnVmZmVyX29mZnNldF9zbGljZV9sZW5ndGhfMTY6IGxlbmd0aCBpcyAx
MjgKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2NhbnZhcy93ZWJn
bC9hcnJheS1tZXNzYWdlLXBhc3NpbmcuaHRtbCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtL2Zhc3QvY2FudmFzL3dlYmdsL2FycmF5LW1lc3NhZ2UtcGFzc2luZy5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMyNTVkOTgKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2NhbnZhcy93ZWJnbC9hcnJheS1tZXNz
YWdlLXBhc3NpbmcuaHRtbApAQCAtMCwwICsxLDE0IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMg
Ii0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHls
ZXNoZWV0IiBocmVmPSIuLi8uLi8uLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0
eWxlLmNzcyIvPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi8uLi9m
YXN0L2NhbnZhcy93ZWJnbC93ZWJnbC10ZXN0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+
Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2FycmF5LW1lc3NhZ2UtcGFzc2luZy5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvY2FudmFzL3dlYmdsL3NjcmlwdC10ZXN0
cy9hcnJheS1tZXNzYWdlLXBhc3NpbmcuanMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS9mYXN0L2NhbnZhcy93ZWJnbC9zY3JpcHQtdGVzdHMvYXJyYXktbWVzc2FnZS1wYXNzaW5nLmpz
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBiZGVlNWYKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2NhbnZhcy93ZWJnbC9z
Y3JpcHQtdGVzdHMvYXJyYXktbWVzc2FnZS1wYXNzaW5nLmpzCkBAIC0wLDAgKzEsMTc5IEBACit3
aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisKK2Rlc2NyaXB0aW9uKCdUZXN0IHBhc3Npbmcg
QXJyYXlCdWZmZXJzIGFuZCBBcnJheUJ1ZmZlclZpZXdzIGluIG1lc3NhZ2VzLicpOword2luZG93
LnRlc3RzQ29tcGxldGUgPSAwOworCitmdW5jdGlvbiBjbGFzc0NvbXBhcmUodGVzdE5hbWUsIGdv
dCwgc2VudCkgeworICAgIHZhciBjbGFzc1N0cmluZyA9IE9iamVjdC5wcm90b3R5cGUudG9TdHJp
bmc7CisgICAgdmFyIGdvdENsYXNzID0gY2xhc3NTdHJpbmcuY2FsbChnb3QpOworICAgIHZhciBz
ZW50Q2xhc3MgPSBjbGFzc1N0cmluZy5jYWxsKHNlbnQpOworICAgIGlmIChnb3RDbGFzcyAhPT0g
c2VudENsYXNzKSB7CisgICAgICAgIHRlc3RGYWlsZWQodGVzdE5hbWUgKyAiOiBjbGFzcyAiICsg
c2VudENsYXNzICsgIiBiZWNhbWUgIiArIGdvdENsYXNzKTsKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgIH0gZWxzZSB7CisgICAgICAgIHRlc3RQYXNzZWQodGVzdE5hbWUgKyAiOiBjbGFzc2Vz
IGFyZSAiICsgc2VudENsYXNzKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorfQorCitm
dW5jdGlvbiBidWZmZXJDb21wYXJlKHRlc3ROYW1lLCBnb3QsIHNlbnQpIHsKKyAgICBpZiAoIWNs
YXNzQ29tcGFyZSh0ZXN0TmFtZSwgZ290LCBzZW50KSkgeworICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgfQorICAgIGlmIChnb3QuYnl0ZUxlbmd0aCAhPT0gc2VudC5ieXRlTGVuZ3RoKSB7Cisg
ICAgICAgIHRlc3RGYWlsZWQodGVzdE5hbWUgKyAiOiBleHBlY3RlZCBieXRlTGVuZ3RoICIgKyBz
ZW50LmJ5dGVMZW5ndGggKyAiIGJ5dGVzLCBnb3QgIiArIGdvdC5ieXRlTGVuZ3RoKTsKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIH0gZWxzZSB7CisgICAgICAgIHRlc3RQYXNzZWQodGVzdE5h
bWUgKyAiOiBidWZmZXIgbGVuZ3RocyBhcmUgIiArIHNlbnQuYnl0ZUxlbmd0aCk7CisgICAgfQor
ICAgIHZhciBnb3RSZWFkZXIgPSBuZXcgVWludDhBcnJheShnb3QpOworICAgIHZhciBzZW50UmVh
ZGVyID0gbmV3IFVpbnQ4QXJyYXkoc2VudCk7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzZW50
LmJ5dGVMZW5ndGg7ICsraSkgeworICAgICAgICBpZiAoZ290UmVhZGVyW2ldICE9PSBzZW50UmVh
ZGVyW2ldKSB7CisgICAgICAgICAgICB0ZXN0RmFpbGVkKHRlc3ROYW1lICsgIjogYnVmZmVycyBk
aWZmZXIgc3RhcnRpbmcgYXQgYnl0ZSAiICsgaSk7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgICAgIH0KKyAgICB9CisgICAgdGVzdFBhc3NlZCh0ZXN0TmFtZSArICI6IGJ1ZmZlcnMg
aGF2ZSB0aGUgc2FtZSBjb250ZW50cyIpOworICAgIHJldHVybiB0cnVlOworfQorCitmdW5jdGlv
biB2aWV3Q29tcGFyZSh0ZXN0TmFtZSwgZ290LCBzZW50KSB7CisgICAgaWYgKCFjbGFzc0NvbXBh
cmUodGVzdE5hbWUsIGdvdCwgc2VudCkpIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0K
KyAgICBpZiAoIWJ1ZmZlckNvbXBhcmUodGVzdE5hbWUsIGdvdC5idWZmZXIsIHNlbnQuYnVmZmVy
KSkgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIGlmIChnb3QuYnl0ZU9mZnNl
dCAhPT0gc2VudC5ieXRlT2Zmc2V0KSB7CisgICAgICAgIHRlc3RGYWlsZWQodGVzdE5hbWUgKyAi
OiBvZmZzZXQgIiArIHNlbnQuYnl0ZU9mZnNldCArICIgYmVjYW1lICIgKyBnb3QuYnl0ZU9mZnNl
dCk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9IGVsc2UgeworICAgICAgICB0ZXN0UGFz
c2VkKHRlc3ROYW1lICsgIjogb2Zmc2V0IGlzICIgKyBzZW50LmJ5dGVPZmZzZXQpOworICAgIH0K
KyAgICBpZiAoZ290LmJ5dGVMZW5ndGggIT09IHNlbnQuYnl0ZUxlbmd0aCkgeworICAgICAgICB0
ZXN0RmFpbGVkKHRlc3ROYW1lICsgIjogbGVuZ3RoICIgKyBzZW50LmJ5dGVMZW5ndGggKyAiIGJl
Y2FtZSAiICsgZ290LmJ5dGVMZW5ndGgpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfSBl
bHNlIHsKKyAgICAgICAgdGVzdFBhc3NlZCh0ZXN0TmFtZSArICI6IGxlbmd0aCBpcyAiICsgc2Vu
dC5ieXRlTGVuZ3RoKTsKKyAgICB9CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Z1bmN0aW9uIHR5
cGVkQXJyYXlDb21wYXJlKHRlc3ROYW1lLCBnb3QsIHNlbnQpIHsKKyAgICBpZiAoIXZpZXdDb21w
YXJlKHRlc3ROYW1lLCBnb3QsIHNlbnQpKSB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9
CisgICAgaWYgKGdvdC5CWVRFU19QRVJfRUxFTUVOVCAhPT0gc2VudC5CWVRFU19QRVJfRUxFTUVO
VCkgeworICAgICAgICAvLyBTYW5pdHkgY2hlY2tpbmcuCisgICAgICAgIHRlc3RGYWlsZWQodGVz
dE5hbWUgKyAiOiBleHBlY3RlZCBCWVRFU19QRVJfRUxFTUVOVCAiICsgc2VudC5CWVRFU19QRVJf
RUxFTUVOVCArICIsIHNhdyAiICsgZ290LkJZVEVTX1BFUl9FTEVNRU5UKTsKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgIH0KK30KKworZnVuY3Rpb24gZGF0YVZpZXdDb21wYXJlKHRlc3ROYW1l
LCBnb3QsIHNlbnQpIHsKKyAgICBpZiAoIXZpZXdDb21wYXJlKHRlc3ROYW1lLCBnb3QsIHNlbnQp
KSB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIGNyZWF0ZUJ1
ZmZlcihsZW5ndGgpIHsKKyAgICB2YXIgYnVmZmVyID0gbmV3IEFycmF5QnVmZmVyKGxlbmd0aCk7
CisgICAgdmFyIHZpZXcgPSBuZXcgVWludDhBcnJheShidWZmZXIpOworICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgbGVuZ3RoOyArK2kpIHsKKyAgICAgICAgdmlld1tpXSA9IGkgKyAxOworICAgIH0K
KyAgICByZXR1cm4gYnVmZmVyOworfQorCitmdW5jdGlvbiBjcmVhdGVUeXBlZEFycmF5KHR5cGVk
QXJyYXlUeXBlLCBsZW5ndGgpIHsKKyAgICB2YXIgdmlldyA9IG5ldyB0eXBlZEFycmF5VHlwZShs
ZW5ndGgpOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpIHsKKyAgICAgICAg
dmlld1tpXSA9IGkgKyAxOworICAgIH0KKyAgICByZXR1cm4gdmlldzsKK30KKworZnVuY3Rpb24g
Y3JlYXRlVHlwZWRBcnJheU92ZXJCdWZmZXIodHlwZWRBcnJheVR5cGUsIHR5cGVkQXJyYXlFbGVt
ZW50U2l6ZSwgbGVuZ3RoLCBzdWJTdGFydCwgc3ViTGVuZ3RoKSB7CisgICAgdmFyIGJ1ZmZlciA9
IG5ldyBBcnJheUJ1ZmZlcihsZW5ndGggKiB0eXBlZEFycmF5RWxlbWVudFNpemUpOworICAgIGlm
IChzdWJTdGFydCA9PT0gdW5kZWZpbmVkKSB7CisgICAgICAgIHN1YlN0YXJ0ID0gMDsKKyAgICAg
ICAgc3ViTGVuZ3RoID0gbGVuZ3RoOworICAgIH0KKyAgICByZXR1cm4gbmV3IHR5cGVkQXJyYXlU
eXBlKGJ1ZmZlciwgc3ViU3RhcnQgKiB0eXBlZEFycmF5RWxlbWVudFNpemUsIHN1Ykxlbmd0aCk7
Cit9CisKK3ZhciBiYXNpY0J1ZmZlclR5cGVzID0gWworICAgIFsiSW50MzIiLCBJbnQzMkFycmF5
LCA0XSwKKyAgICBbIlVpbnQzMiIsIFVpbnQzMkFycmF5LCA0XSwKKyAgICBbIkludDgiLCBJbnQ4
QXJyYXksIDFdLAorICAgIFsiVWludDgiLCBVaW50OEFycmF5LCAxXSwKKyAgICBbIkludDE2Iiwg
SW50MTZBcnJheSwgMl0sCisgICAgWyJVaW50MTYiLCBVaW50MTZBcnJheSwgMl0sCisgICAgWyJG
bG9hdDMyIiwgRmxvYXQzMkFycmF5LCA0XSwKKyAgICBbIkZsb2F0NjQiLCBGbG9hdDY0QXJyYXks
IDhdCitdOworCit2YXIgdGVzdExpc3QgPSBbCisgICAgWydBcnJheUJ1ZmZlcjAnLCBuZXcgQXJy
YXlCdWZmZXIoMCksIGJ1ZmZlckNvbXBhcmVdLAorICAgIFsnQXJyYXlCdWZmZXIxJywgY3JlYXRl
QnVmZmVyKDEpLCBidWZmZXJDb21wYXJlXSwKKyAgICBbJ0FycmF5QnVmZmVyMTI4JywgY3JlYXRl
QnVmZmVyKDEyOCksIGJ1ZmZlckNvbXBhcmVdLAorICAgIFsnRGF0YVZpZXcwJywgbmV3IERhdGFW
aWV3KG5ldyBBcnJheUJ1ZmZlcigwKSksIGRhdGFWaWV3Q29tcGFyZV0sCisgICAgWydEYXRhVmll
dzEnLCBuZXcgRGF0YVZpZXcoY3JlYXRlQnVmZmVyKDEpKSwgZGF0YVZpZXdDb21wYXJlXSwKKyAg
ICBbJ0RhdGFWaWV3MTI4JywgbmV3IERhdGFWaWV3KGNyZWF0ZUJ1ZmZlcigxMjgpKSwgZGF0YVZp
ZXdDb21wYXJlXSwKKyAgICBbJ0RhdGFWaWV3MV9vZnNfZW5kJywgbmV3IERhdGFWaWV3KGNyZWF0
ZUJ1ZmZlcigxKSwgMSwgMCksIGRhdGFWaWV3Q29tcGFyZV0sCisgICAgWydEYXRhVmlldzEyOF9v
ZnNfZW5kJywgbmV3IERhdGFWaWV3KGNyZWF0ZUJ1ZmZlcigxMjgpLCAxMjgsIDApLCBkYXRhVmll
d0NvbXBhcmVdLAorICAgIFsnRGF0YVZpZXcxMjhfb2ZzX3NsaWNlMCcsIG5ldyBEYXRhVmlldyhj
cmVhdGVCdWZmZXIoMTI4KSwgNjQsIDApLCBkYXRhVmlld0NvbXBhcmVdLAorICAgIFsnRGF0YVZp
ZXcxMjhfb2ZzX3NsaWNlMScsIG5ldyBEYXRhVmlldyhjcmVhdGVCdWZmZXIoMTI4KSwgNjQsIDEp
LCBkYXRhVmlld0NvbXBhcmVdLAorICAgIFsnRGF0YVZpZXcxMjhfb2ZzX3NsaWNlMTYnLCBuZXcg
RGF0YVZpZXcoY3JlYXRlQnVmZmVyKDEyOCksIDY0LCAxNiksIGRhdGFWaWV3Q29tcGFyZV0sCisg
ICAgWydEYXRhVmlldzEyOF9vZnNfc2xpY2VfdW5hbGlnbmVkJywgbmV3IERhdGFWaWV3KGNyZWF0
ZUJ1ZmZlcigxMjgpLCA2MywgMTUpLCBkYXRhVmlld0NvbXBhcmVdCitdOworCit0ZXN0TGlzdCA9
IHRlc3RMaXN0LmNvbmNhdChiYXNpY0J1ZmZlclR5cGVzLm1hcChmdW5jdGlvbih0KQorICAgIHty
ZXR1cm4gW3RbMF0gKyAiXzAiLCBjcmVhdGVUeXBlZEFycmF5KHRbMV0sIDApLCB0eXBlZEFycmF5
Q29tcGFyZV07fSkpOwordGVzdExpc3QgPSB0ZXN0TGlzdC5jb25jYXQoYmFzaWNCdWZmZXJUeXBl
cy5tYXAoZnVuY3Rpb24odCkKKyAgICB7cmV0dXJuIFt0WzBdICsgIl8xIiwgY3JlYXRlVHlwZWRB
cnJheSh0WzFdLCAxKSwgdHlwZWRBcnJheUNvbXBhcmVdO30pKTsKK3Rlc3RMaXN0ID0gdGVzdExp
c3QuY29uY2F0KGJhc2ljQnVmZmVyVHlwZXMubWFwKGZ1bmN0aW9uKHQpCisgICAge3JldHVybiBb
dFswXSArICJfMTI4IiwgY3JlYXRlVHlwZWRBcnJheSh0WzFdLCAxMjgpLCB0eXBlZEFycmF5Q29t
cGFyZV07fSkpOwordGVzdExpc3QgPSB0ZXN0TGlzdC5jb25jYXQoYmFzaWNCdWZmZXJUeXBlcy5t
YXAoZnVuY3Rpb24odCkKKyAgICB7cmV0dXJuIFt0WzBdICsgIl8wX2J1ZmZlciIsIGNyZWF0ZVR5
cGVkQXJyYXlPdmVyQnVmZmVyKHRbMV0sIHRbMl0sIDApLCB0eXBlZEFycmF5Q29tcGFyZV07fSkp
OwordGVzdExpc3QgPSB0ZXN0TGlzdC5jb25jYXQoYmFzaWNCdWZmZXJUeXBlcy5tYXAoZnVuY3Rp
b24odCkKKyAgICB7cmV0dXJuIFt0WzBdICsgIl8xX2J1ZmZlciIsIGNyZWF0ZVR5cGVkQXJyYXlP
dmVyQnVmZmVyKHRbMV0sIHRbMl0sIDEpLCB0eXBlZEFycmF5Q29tcGFyZV07fSkpOwordGVzdExp
c3QgPSB0ZXN0TGlzdC5jb25jYXQoYmFzaWNCdWZmZXJUeXBlcy5tYXAoZnVuY3Rpb24odCkKKyAg
ICB7cmV0dXJuIFt0WzBdICsgIl8xMjhfYnVmZmVyIiwgY3JlYXRlVHlwZWRBcnJheU92ZXJCdWZm
ZXIodFsxXSwgdFsyXSwgMTI4KSwgdHlwZWRBcnJheUNvbXBhcmVdO30pKTsKK3Rlc3RMaXN0ID0g
dGVzdExpc3QuY29uY2F0KGJhc2ljQnVmZmVyVHlwZXMubWFwKGZ1bmN0aW9uKHQpCisgICAge3Jl
dHVybiBbdFswXSArICJfMV9idWZmZXJfb2Zmc2V0X2F0X2VuZCIsIGNyZWF0ZVR5cGVkQXJyYXlP
dmVyQnVmZmVyKHRbMV0sIHRbMl0sIDEsIDEsIDApLCB0eXBlZEFycmF5Q29tcGFyZV07fSkpOwor
dGVzdExpc3QgPSB0ZXN0TGlzdC5jb25jYXQoYmFzaWNCdWZmZXJUeXBlcy5tYXAoZnVuY3Rpb24o
dCkKKyAgICB7cmV0dXJuIFt0WzBdICsgIl8xMjhfYnVmZmVyX29mZnNldF9hdF9lbmQiLCBjcmVh
dGVUeXBlZEFycmF5T3ZlckJ1ZmZlcih0WzFdLCB0WzJdLCAxMjgsIDEyOCwgMCksIHR5cGVkQXJy
YXlDb21wYXJlXTt9KSk7Cit0ZXN0TGlzdCA9IHRlc3RMaXN0LmNvbmNhdChiYXNpY0J1ZmZlclR5
cGVzLm1hcChmdW5jdGlvbih0KQorICAgIHtyZXR1cm4gW3RbMF0gKyAiXzEyOF9idWZmZXJfb2Zm
c2V0X3NsaWNlX2xlbmd0aF8wIiwgY3JlYXRlVHlwZWRBcnJheU92ZXJCdWZmZXIodFsxXSwgdFsy
XSwgMTI4LCA2NCwgMCksIHR5cGVkQXJyYXlDb21wYXJlXTt9KSk7Cit0ZXN0TGlzdCA9IHRlc3RM
aXN0LmNvbmNhdChiYXNpY0J1ZmZlclR5cGVzLm1hcChmdW5jdGlvbih0KQorICAgIHtyZXR1cm4g
W3RbMF0gKyAiXzEyOF9idWZmZXJfb2Zmc2V0X3NsaWNlX2xlbmd0aF8xIiwgY3JlYXRlVHlwZWRB
cnJheU92ZXJCdWZmZXIodFsxXSwgdFsyXSwgMTI4LCA2NCwgMSksIHR5cGVkQXJyYXlDb21wYXJl
XTt9KSk7Cit0ZXN0TGlzdCA9IHRlc3RMaXN0LmNvbmNhdChiYXNpY0J1ZmZlclR5cGVzLm1hcChm
dW5jdGlvbih0KQorICAgIHtyZXR1cm4gW3RbMF0gKyAiXzEyOF9idWZmZXJfb2Zmc2V0X3NsaWNl
X2xlbmd0aF8xNiIsIGNyZWF0ZVR5cGVkQXJyYXlPdmVyQnVmZmVyKHRbMV0sIHRbMl0sIDEyOCwg
NjQsIDE2KSwgdHlwZWRBcnJheUNvbXBhcmVdO30pKTsKKworZnVuY3Rpb24gZG9uZVRlc3QoKSB7
CisgICAgaWYgKCsrd2luZG93LnRlc3RzQ29tcGxldGUgPT0gdGVzdExpc3QubGVuZ3RoKSB7Cisg
ICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgIH0KK30KKworZnVuY3Rpb24gd2luZG93SGFuZGxl
TWVzc2FnZShlKSB7CisgICAgdmFyIGN1cnJlbnRUZXN0ID0gdGVzdExpc3RbZS5kYXRhLnRlc3RO
dW1dOworICAgIHZhciBleHBlY3RlZFJlc3VsdCA9IGN1cnJlbnRUZXN0WzFdOworICAgIHRyeSB7
CisgICAgICAgIGN1cnJlbnRUZXN0WzJdKGN1cnJlbnRUZXN0WzBdLCBlLmRhdGEudGVzdERhdGEs
IGV4cGVjdGVkUmVzdWx0KTsKKyAgICB9IGNhdGNoKGUpIHsKKyAgICAgICAgdGVzdEZhaWxlZChj
dXJyZW50VGVzdFswXSArICI6IHVuZXhwZWN0ZWQgZXhjZXB0aW9uICIgKyBlKTsKKyAgICB9Cisg
ICAgZG9uZVRlc3QoKTsKK30KK3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgd2lu
ZG93SGFuZGxlTWVzc2FnZSk7CisKK2ZvciAodmFyIHQgPSAwOyB0IDwgdGVzdExpc3QubGVuZ3Ro
OyArK3QpIHsKKyAgICB2YXIgY3VycmVudFRlc3QgPSB0ZXN0TGlzdFt0XTsKKyAgICB2YXIgbWVz
c2FnZSA9IHt0ZXN0TnVtOiB0LCB0ZXN0RGF0YTogY3VycmVudFRlc3RbMV19OworICAgIHdpbmRv
dy5wb3N0TWVzc2FnZShtZXNzYWdlLCAnKicpOworfQorCitzdWNjZXNzZnVsbHlQYXJzZWQgPSB0
cnVlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9kb20v
V2luZG93L3dpbmRvdy1wb3N0bWVzc2FnZS1jbG9uZS1kZWVwLWFycmF5LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcG9z
dG1lc3NhZ2UtY2xvbmUtZGVlcC1hcnJheS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uNGM2NzkzMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcG9zdG1lc3NhZ2UtY2xv
bmUtZGVlcC1hcnJheS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitUZXN0cyB0aGF0IHdl
IHN1cHBvcnQgY2xvbmluZyBkZWVwKGlzaCkgYXJyYXlzLgorCitQQVNTOiBldmVudERhdGEgaXMg
W29iamVjdCBBcnJheV0oZGVmYXVsdCB0b1N0cmluZyB0aHJldyBSYW5nZUVycm9yOiBNYXhpbXVt
IGNhbGwgc3RhY2sgc2l6ZSBleGNlZWRlZCkgb2YgdHlwZSBvYmplY3QKK1BBU1M6IGV2ZW50RGF0
YSBpcyBkb25lIG9mIHR5cGUgc3RyaW5nCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcG9zdG1lc3NhZ2UtY2xvbmUtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9kb20vV2luZG93
L3dpbmRvdy1wb3N0bWVzc2FnZS1jbG9uZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uZmRjNGExYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcG9zdG1lc3NhZ2UtY2xv
bmUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTE0IEBACitUZXN0cyB0aGF0IHdlIGNsb25lIG9i
amVjdCBoaWVyYXJjaGllcworCitQQVNTOiAncG9zdE1lc3NhZ2UoKGZ1bmN0aW9uKCl7fSkpJyB0
aHJldyBFcnJvcjogREFUQV9DTE9ORV9FUlI6IERPTSBFeGNlcHRpb24gMjUKK1BBU1M6ICdwb3N0
TWVzc2FnZSh3aW5kb3cpJyB0aHJldyBFcnJvcjogREFUQV9DTE9ORV9FUlI6IERPTSBFeGNlcHRp
b24gMjUKK1BBU1M6ICdwb3N0TWVzc2FnZSgoe2dldCBhKCkgeyB0aHJvdyAieCIgfX0pKScgdGhy
ZXcgeAorUEFTUzogJ3Bvc3RNZXNzYWdlKGltYWdlRGF0YS5kYXRhKScgdGhyZXcgRXJyb3I6IERB
VEFfQ0xPTkVfRVJSOiBET00gRXhjZXB0aW9uIDI1CitQQVNTOiAncG9zdE1lc3NhZ2UobXV0YXRl
ZEltYWdlRGF0YS5kYXRhKScgdGhyZXcgRXJyb3I6IERBVEFfQ0xPTkVfRVJSOiBET00gRXhjZXB0
aW9uIDI1CitQQVNTOiAncG9zdE1lc3NhZ2UoKGZ1bmN0aW9uKCkge3JldHVybiB7Z2V0IGEoKSB7
IHRocm93ICJhY2Nlc3Nvci1leG4iOyB9fTt9KSgpKScgdGhyZXcgYWNjZXNzb3ItZXhuCitQQVNT
OiAncG9zdE1lc3NhZ2UoKGZ1bmN0aW9uKCkge3ZhciBvYmphID0ge2dldCBwKCkgeyB0aHJvdyAi
YWNjZXNzb3ItZXhuIjsgfX07IHJldHVybiB7Z2V0IGEoKSB7IHJldHVybiBvYmphOyB9fTt9KSgp
KScgdGhyZXcgYWNjZXNzb3ItZXhuCitQQVNTOiBsYXN0SW5kZXggaW5pdGlhbGx5IGNvcnJlY3Q6
IHdhcyAzCitQQVNTOiBzYW5pdHkgb24gZmlsZSByZWZlcmVuY2UgZXF1YWxpdHkKK1BBU1M6IGV2
ZW50RGF0YSBpcyBudWxsIG9mIHR5cGUgb2JqZWN0CitQQVNTOiBldmVudERhdGEgaXMgdW5kZWZp
bmVkIG9mIHR5cGUgdW5kZWZpbmVkCitQQVNTOiBldmVudERhdGEgaXMgMSBvZiB0eXBlIG51bWJl
cgorUEFTUzogZXZlbnREYXRhIGlzIHRydWUgb2YgdHlwZSBib29sZWFuCitQQVNTOiBldmVudERh
dGEgaXMgMSBvZiB0eXBlIHN0cmluZworUEFTUzogZXZlbnREYXRhIGlzIFtvYmplY3QgT2JqZWN0
XSBvZiB0eXBlIG9iamVjdAorUEFTUzogZXZlbnREYXRhIGlzIFtvYmplY3QgT2JqZWN0XSBvZiB0
eXBlIG9iamVjdAorUEFTUzogZXZlbnREYXRhIGlzIFtvYmplY3QgT2JqZWN0XSBvZiB0eXBlIG9i
amVjdAorUEFTUzogZXZlbnREYXRhIGlzIFtvYmplY3QgT2JqZWN0XSBvZiB0eXBlIG9iamVjdAor
UEFTUzogZXZlbnREYXRhIGlzIFtvYmplY3QgT2JqZWN0XSBvZiB0eXBlIG9iamVjdAorUEFTUzog
ZXZlbnREYXRhIGlzIFtvYmplY3QgT2JqZWN0XSBvZiB0eXBlIG9iamVjdAorUEFTUzogZXZlbnRE
YXRhIGlzIFtvYmplY3QgT2JqZWN0XSBvZiB0eXBlIG9iamVjdAorUEFTUzogZXZlbnREYXRhIGlz
IFtvYmplY3QgT2JqZWN0XSBvZiB0eXBlIG9iamVjdAorUEFTUzogZXZlbnREYXRhIGlzIFtvYmpl
Y3QgT2JqZWN0XSBvZiB0eXBlIG9iamVjdAorUEFTUzogZXZlbnREYXRhIGlzIG9mIHR5cGUgb2Jq
ZWN0CitQQVNTOiBldmVudERhdGEgaXMgYSxhLGIsYSxiIG9mIHR5cGUgb2JqZWN0CitQQVNTOiBl
dmVudERhdGEgaXMgYSxhLGIsW29iamVjdCBPYmplY3RdIG9mIHR5cGUgb2JqZWN0CitQQVNTOiBl
dmVudERhdGEgaXMgMSwyLDMgb2YgdHlwZSBvYmplY3QKK1BBU1M6IGV2ZW50RGF0YSBpcyAsLDEg
b2YgdHlwZSBvYmplY3QKK1BBU1M6IGV2ZW50RGF0YSBpcyAyMDA5LTAyLTEzVDIzOjMxOjMwLjAw
MFogb2YgdHlwZSBvYmplY3QKK1BBU1M6IGV2ZW50RGF0YSBpcyBbb2JqZWN0IE9iamVjdF0gb2Yg
dHlwZSBvYmplY3QKK1BBU1M6IGV2ZW50RGF0YSBpcyA9PT0gdG8gZXZlbnREYXRhLnNlbGYKK1BB
U1M6IGV2ZW50RGF0YSBpcyA9PT0gdG8gZXZlbnREYXRhWzBdCitQQVNTOiBldmVudERhdGEuZ3Jh
cGgxIGlzID09PSB0byBldmVudERhdGEuZ3JhcGgyCitQQVNTOiBldmVudERhdGFbMF0gaXMgPT09
IHRvIGV2ZW50RGF0YVsxXQorUEFTUzogZXZlbnREYXRhIGlzIFtvYmplY3QgSW1hZ2VEYXRhXSBv
ZiB0eXBlIG9iamVjdAorUEFTUzogZXZlbnREYXRhIGlzIFtvYmplY3QgSW1hZ2VEYXRhXSBvZiB0
eXBlIG9iamVjdAorUEFTUzogZXZlbnREYXRhIGlzIDQyIG9mIHR5cGUgbnVtYmVyCitQQVNTOiBl
dmVudERhdGEgaXMgNDIgb2YgdHlwZSBudW1iZXIKK1BBU1M6IGV2YWxUaHVuayBPSworUEFTUzog
ZXZlbnREYXRhIGlzIFtvYmplY3QgT2JqZWN0XSBvZiB0eXBlIG9iamVjdAorUEFTUzogbGVuZ3Ro
IGNvcnJlY3QKK1BBU1M6IGV2YWx1YXRpb24gb3JkZXIgT0sKK1BBU1M6IGV2YWx1YXRpb24gb3Jk
ZXIgT0svYWNjZXNzb3IgcmVhY2hlZAorUEFTUzogZXZhbHVhdGlvbiBvcmRlciBPSworUEFTUzog
bGVuZ3RoIGNvcnJlY3QKK1BBU1M6IGluZGV4IDAgT0sKK1BBU1M6IGFjY2Vzc29yIHJlYWNoZWQK
K1BBU1M6IGluZGV4IDIgdW5kZWZpbmVkCitQQVNTOiBsZW5ndGggY29ycmVjdAorUEFTUzogaW5k
ZXggMCBPSworUEFTUzogaW5kZXggMSBPSworUEFTUzogaW5kZXggMiBPSworUEFTUzogYmFzaWMg
cHJvcGVydGllcyBPSworUEFTUzogb25lIGFjY2Vzc29yIHdhcyBydW4KK1BBU1M6IHByb3BlcnR5
IHdhcyByZW1vdmVkCitQQVNTOiBwcm9wZXJ0eSB3YXMgcmVtb3ZlZAorUEFTUzogYWNjZXNzb3Ig
d2FzIHJ1bgorUEFTUzogZHluYW1pYyBwcm9wZXJ0eSBub3Qgc2VudAorUEFTUzogcmVmZXJlbmNl
IGVxdWFsaXR5IHByZXNlcnZlZAorUEFTUzogYWNjZXNzb3JzIHVzZWQKK1BBU1M6IHJlZmVyZW5j
ZSBlcXVhbGl0eSBwcmVzZXJ2ZWQgKG9wcG9zaXRlIG9yZGVyKQorUEFTUzogYWNjZXNzb3JzIHVz
ZWQgKG9wcG9zaXRlIG9yZGVyKQorUEFTUzogYWNjZXNzb3IgdmFsdWUgd2FzIG51bGxpZmllZAor
UEFTUzogbm9uLWFjY2Vzc29yIHZhbHVlIHdhcyBub3QgbnVsbGlmaWVkCitQQVNTOiBhY2Nlc3Nv
ciB2YWx1ZSB3YXMgbnVsbGlmaWVkCitQQVNTOiBub24tYWNjZXNzb3IgdmFsdWUgd2FzIG5vdCBu
dWxsaWZpZWQKK1BBU1M6IG5vbi1hY2Nlc3NvciB2YWx1ZSB3YXMgbm90IG51bGxpZmllZAorUEFT
UzogYWNjZXNzb3IgdmFsdWUgd2FzIG51bGxpZmllZAorUEFTUzogbm9uLWFjY2Vzc29yIHZhbHVl
IHdhcyBub3QgbnVsbGlmaWVkCitQQVNTOiBhY2Nlc3NvciB2YWx1ZSB3YXMgbm90IG51bGxpZmll
ZAorUEFTUzogYWNjZXNzb3IgdmFsdWUgd2FzIG5vdCBudWxsaWZpZWQKK1BBU1M6IGFjY2Vzc29y
IHZhbHVlIHdhcyBudWxsaWZpZWQKK1BBU1M6IG5vbi1hY2Nlc3NvciB2YWx1ZSB3YXMgbm90IG51
bGxpZmllZAorUEFTUzogbm9uLWFjY2Vzc29yIHZhbHVlIHdhcyBub3QgbnVsbGlmaWVkCitQQVNT
OiBub24tYWNjZXNzb3IgdmFsdWUgaXMgZGVmaW5lZAorUEFTUzogbm9uLWFjY2Vzc29yIHZhbHVl
IHdhcyBub3QgbnVsbGlmaWVkCitQQVNTOiBub24tYWNjZXNzb3IgdmFsdWUgaXMgZGVmaW5lZAor
UEFTUzogYWNjZXNzb3IgdmFsdWUgd2FzIG51bGxpZmllZAorUEFTUzogbm9uLWFjY2Vzc29yIHZh
bHVlIHdhcyBub3QgbnVsbGlmaWVkCitQQVNTOiBhY2Nlc3NvciB2YWx1ZSB3YXMgbnVsbGlmaWVk
CitQQVNTOiB3aW5kb3cucGNhbGxlZCA9PT0gdHJ1ZQorUEFTUzogd2luZG93LmFjYWxsZWQgPT09
IHRydWUKK1BBU1M6IHdpbmRvdy5iY2FsbGVkID09PSB1bmRlZmluZWQKK1BBU1M6IERhdGUgdmFs
dWVzIGNvcnJlY3QgKDApCitQQVNTOiBEYXRlIHZhbHVlcyBjb3JyZWN0ICgxKQorUEFTUzogUmVm
ZXJlbmNlcyB0byBkYXRlcyBjb3JyZWN0ICgwKQorUEFTUzogUmVmZXJlbmNlcyB0byBkYXRlcyBj
b3JyZWN0ICgxKQorUEFTUzogUmVnZXhwIHZhbHVlIGNvcnJlY3QgKDApCitQQVNTOiBSZWZlcmVu
Y2VzIHRvIHJlZ2V4cHMgY29ycmVjdCAoMCkKK1BBU1M6IFJlZmVyZW5jZXMgdG8gcmVnZXhwcyBj
b3JyZWN0ICgxKQorUEFTUzogZ2xvYmFsIHNldCAoMCkKK1BBU1M6IGdsb2JhbCBzZXQgKDEpCitQ
QVNTOiBpZ25vcmVDYXNlIHNldCAoMCkKK1BBU1M6IGlnbm9yZUNhc2Ugc2V0ICgxKQorUEFTUzog
bXVsdGlsaW5lIHNldCAoMCkKK1BBU1M6IG11bHRpbGluZSBzZXQgKDEpCitQQVNTOiBsYXN0SW5k
ZXggY29ycmVjdCAoMCkKK1BBU1M6IGxhc3RJbmRleCBjb3JyZWN0ICgxKQorUEFTUzogZXZlbnRE
YXRhIGlzIDIgb2YgdHlwZSBudW1iZXIKK1BBU1M6IGZpbGUgcmVmZXJlbmNlcyB0cmFuc2Zlcgor
UEFTUzogRmlsZUxpc3Qgc2hvdWxkIG5vdCByZXNwZWN0IHJlZmVyZW5jZSBlcXVhbGl0eQorUEFT
UzogRmlsZUxpc3Qgc2hvdWxkIG5vdCByZXNwZWN0IHJlZmVyZW5jZSBlcXVhbGl0eQorUEFTUzog
RmlsZUxpc3QgcmVzcGVjdHMgc2VsZi1yZWZlcmVuY2UgZXF1YWxpdHkKK1BBU1M6IEZpbGVMaXN0
IGxlbmd0aCBzZW50IGNvcnJlY3RseQorUEFTUzogRmlsZUxpc3Qgc2hvdWxkIG5vdCByZXNwZWN0
IHJlZmVyZW5jZSBlcXVhbGl0eSAoMCkKK1BBU1M6IEZpbGVMaXN0IHNob3VsZCBub3QgcmVzcGVj
dCByZWZlcmVuY2UgZXF1YWxpdHkgKDEpCitQQVNTOiBGaWxlTGlzdCBwcmVzZXJ2ZXMgb3JkZXIg
YW5kIGRhdGEgKG5hbWUwKQorUEFTUzogRmlsZUxpc3QgcHJlc2VydmVzIG9yZGVyIGFuZCBkYXRh
IChuYW1lMSkKK1BBU1M6IEZpbGVMaXN0IHByZXNlcnZlcyBvcmRlciBhbmQgZGF0YSAoZGF0ZTAp
CitQQVNTOiBGaWxlTGlzdCBwcmVzZXJ2ZXMgb3JkZXIgYW5kIGRhdGEgKGRhdGUxKQorUEFTUzog
ZXZlbnREYXRhIGlzIGRvbmUgb2YgdHlwZSBzdHJpbmcKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9kb20vV2luZG93L3dpbmRvdy1wb3N0bWVzc2FnZS1j
bG9uZS1yZWFsbHktZGVlcC1hcnJheS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXBvc3RtZXNzYWdlLWNsb25lLXJlYWxs
eS1kZWVwLWFycmF5LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi40Y2M1MTg1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0vZmFzdC9kb20vV2luZG93L3dpbmRvdy1wb3N0bWVzc2FnZS1jbG9uZS1yZWFsbHktZGVl
cC1hcnJheS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitUZXN0cyB0aGF0IHdlIGFib3J0
IGNsb25pbmcgb3ZlcmRlZXAgYXJyYXlzLgorCitQQVNTOiAncG9zdE1lc3NhZ2UocmVhbGx5RGVl
cEFycmF5KScgdGhyZXcgRXJyb3I6IERBVEFfQ0xPTkVfRVJSOiBET00gRXhjZXB0aW9uIDI1CitQ
QVNTOiBldmVudERhdGEgaXMgZG9uZSBvZiB0eXBlIHN0cmluZworCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQKaW5kZXggYmYxYjQ2
MS4uYzRmODY0YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVz
dF9leHBlY3RhdGlvbnMudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rl
c3RfZXhwZWN0YXRpb25zLnR4dApAQCAtNTgsNiArNTgsOCBAQCBCVUdXSzU1OTEzIERFQlVHIFNM
T1cgOiBqcXVlcnkvb2Zmc2V0Lmh0bWwgPSBQQVNTCiBCVUdXSzU1OTEzIERFQlVHIFNMT1cgOiBq
cXVlcnkvdHJhdmVyc2luZy5odG1sID0gUEFTUwogQlVHV0s1NTkxMyBERUJVRyA6IGpxdWVyeS9k
aW1lbnNpb25zLmh0bWwgPSBUSU1FT1VUIFBBU1MKIAorV09OVEZJWCBTTE9XIDogZmFzdC9kb20v
V2luZG93L3dpbmRvdy1wb3N0bWVzc2FnZS1jbG9uZS1yZWFsbHktZGVlcC1hcnJheS5odG1sID0g
UEFTUworCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQogLy8gU0tJUFBFRCBURVNUUwogLy8gLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTE1
NTUsOSArMTU1Nyw2IEBAIEJVR0NSMjQxMjYgOiBmYXN0L2RvbS9IVE1MSW5wdXRFbGVtZW50L3Np
emUtYXR0cmlidXRlLmh0bWwgPSBGQUlMCiAvLyBGbGFreSB0aW1lb3V0cyBmaXJzdCBhcHBlYXJp
bmcgYXQgcjI3NzY0ICh3ZWJraXQgNDg5NDcpCiBCVUdDUjk3OTggV0lOIDogaHR0cC90ZXN0cy9j
b29raWVzL211bHRpcGxlLWNvb2tpZXMuaHRtbCA9IFRJTUVPVVQgUEFTUwogCi0vLyBXZWJLaXQg
dXBkYXRlOiA0OTIxMzo0OTIyMQotQlVHQ1IyNDA2MyA6IGZhc3QvZG9tL1dpbmRvdy93aW5kb3ct
cG9zdG1lc3NhZ2UtY2xvbmUuaHRtbCA9IEZBSUwKLQogLy8gR290IHNsb3cgd2l0aCBWOCB1cGRh
dGUgdG8gMS4zLjE1LiBEZWJ1ZyBsb2dnaW5nIHBlcmhhcHM/CiBCVUdDUjI0MTgyIERFQlVHIFNM
T1cgOiBmYXN0L2Zvcm1zL2lucHV0LWltcGxpY2l0LWxlbmd0aC1saW1pdC5odG1sID0gUEFTUwog
QlVHQ1IyNDE4MiBERUJVRyBTTE9XIDogZmFzdC9mb3Jtcy9pbnB1dC1tYXhsZW5ndGguaHRtbCA9
IFBBU1MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9mYXN0L2RvbS9XaW5k
b3cvd2luZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Z3RrL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQKaW5kZXgg
YThhMTFlNi4uOGExZjFmNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2Zh
c3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vZ3RrL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBl
Y3RlZC50eHQKQEAgLTUxMSw2ICs1MTEsNyBAQCB3aW5kb3cuQ291bnRlciBbb2JqZWN0IENvdW50
ZXJDb25zdHJ1Y3Rvcl0KIHdpbmRvdy5Db3VudGVyLnByb3RvdHlwZSBbb2JqZWN0IENvdW50ZXJQ
cm90b3R5cGVdCiB3aW5kb3cuRE9NRXhjZXB0aW9uIFtvYmplY3QgRE9NRXhjZXB0aW9uQ29uc3Ry
dWN0b3JdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLkFCT1JUX0VSUiBbbnVtYmVyXQord2luZG93LkRP
TUV4Y2VwdGlvbi5EQVRBX0NMT05FX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5E
T01TVFJJTkdfU0laRV9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24uSElFUkFSQ0hZ
X1JFUVVFU1RfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLklOREVYX1NJWkVfRVJS
IFtudW1iZXJdCkBAIC01MTgsNiArNTE5LDcgQEAgd2luZG93LkRPTUV4Y2VwdGlvbi5JTlVTRV9B
VFRSSUJVVEVfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLklOVkFMSURfQUNDRVNT
X0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5JTlZBTElEX0NIQVJBQ1RFUl9FUlIg
W251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24uSU5WQUxJRF9NT0RJRklDQVRJT05fRVJSIFtu
dW1iZXJdCit3aW5kb3cuRE9NRXhjZXB0aW9uLklOVkFMSURfTk9ERV9UWVBFX0VSUiBbbnVtYmVy
XQogd2luZG93LkRPTUV4Y2VwdGlvbi5JTlZBTElEX1NUQVRFX0VSUiBbbnVtYmVyXQogd2luZG93
LkRPTUV4Y2VwdGlvbi5OQU1FU1BBQ0VfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9u
Lk5FVFdPUktfRVJSIFtudW1iZXJdCkBAIC01MjgsMTIgKzUzMCwxNCBAQCB3aW5kb3cuRE9NRXhj
ZXB0aW9uLk5PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4
Y2VwdGlvbi5RVU9UQV9FWENFRURFRF9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24u
U0VDVVJJVFlfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLlNZTlRBWF9FUlIgW251
bWJlcl0KK3dpbmRvdy5ET01FeGNlcHRpb24uVElNRU9VVF9FUlIgW251bWJlcl0KIHdpbmRvdy5E
T01FeGNlcHRpb24uVFlQRV9NSVNNQVRDSF9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRp
b24uVVJMX01JU01BVENIX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5WQUxJREFU
SU9OX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5XUk9OR19ET0NVTUVOVF9FUlIg
W251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlIFtvYmplY3QgRE9NRXhjZXB0
aW9uUHJvdG90eXBlXQogd2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuQUJPUlRfRVJSIFtu
dW1iZXJdCit3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5EQVRBX0NMT05FX0VSUiBbbnVt
YmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuRE9NU1RSSU5HX1NJWkVfRVJSIFtu
dW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5ISUVSQVJDSFlfUkVRVUVTVF9F
UlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlLklOREVYX1NJWkVfRVJS
IFtudW1iZXJdCkBAIC01NDEsNiArNTQ1LDcgQEAgd2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5
cGUuSU5VU0VfQVRUUklCVVRFX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5wcm90
b3R5cGUuSU5WQUxJRF9BQ0NFU1NfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLnBy
b3RvdHlwZS5JTlZBTElEX0NIQVJBQ1RFUl9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRp
b24ucHJvdG90eXBlLklOVkFMSURfTU9ESUZJQ0FUSU9OX0VSUiBbbnVtYmVyXQord2luZG93LkRP
TUV4Y2VwdGlvbi5wcm90b3R5cGUuSU5WQUxJRF9OT0RFX1RZUEVfRVJSIFtudW1iZXJdCiB3aW5k
b3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5JTlZBTElEX1NUQVRFX0VSUiBbbnVtYmVyXQogd2lu
ZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuTkFNRVNQQUNFX0VSUiBbbnVtYmVyXQogd2luZG93
LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuTkVUV09SS19FUlIgW251bWJlcl0KQEAgLTU1MSw2ICs1
NTYsNyBAQCB3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5OT19NT0RJRklDQVRJT05fQUxM
T1dFRF9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlLlFVT1RBX0VY
Q0VFREVEX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuU0VDVVJJ
VFlfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5TWU5UQVhfRVJS
IFtudW1iZXJdCit3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5USU1FT1VUX0VSUiBbbnVt
YmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuVFlQRV9NSVNNQVRDSF9FUlIgW251
bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlLlVSTF9NSVNNQVRDSF9FUlIgW251
bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlLlZBTElEQVRJT05fRVJSIFtudW1i
ZXJdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC13azIvZmFzdC9kb20vV2lu
ZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L3F0LXdrMi9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0Cmlu
ZGV4IGM4NWNmMTkuLmNhMzkwMmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0
LXdrMi9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL3F0LXdrMi9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3Bl
cnRpZXMtZXhwZWN0ZWQudHh0CkBAIC01MDksNiArNTA5LDcgQEAgd2luZG93LkNvdW50ZXIgW29i
amVjdCBDb3VudGVyQ29uc3RydWN0b3JdCiB3aW5kb3cuQ291bnRlci5wcm90b3R5cGUgW29iamVj
dCBDb3VudGVyUHJvdG90eXBlXQogd2luZG93LkRPTUV4Y2VwdGlvbiBbb2JqZWN0IERPTUV4Y2Vw
dGlvbkNvbnN0cnVjdG9yXQogd2luZG93LkRPTUV4Y2VwdGlvbi5BQk9SVF9FUlIgW251bWJlcl0K
K3dpbmRvdy5ET01FeGNlcHRpb24uREFUQV9DTE9ORV9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01F
eGNlcHRpb24uRE9NU1RSSU5HX1NJWkVfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9u
LkhJRVJBUkNIWV9SRVFVRVNUX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5JTkRF
WF9TSVpFX0VSUiBbbnVtYmVyXQpAQCAtNTE2LDYgKzUxNyw3IEBAIHdpbmRvdy5ET01FeGNlcHRp
b24uSU5VU0VfQVRUUklCVVRFX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5JTlZB
TElEX0FDQ0VTU19FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24uSU5WQUxJRF9DSEFS
QUNURVJfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLklOVkFMSURfTU9ESUZJQ0FU
SU9OX0VSUiBbbnVtYmVyXQord2luZG93LkRPTUV4Y2VwdGlvbi5JTlZBTElEX05PREVfVFlQRV9F
UlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24uSU5WQUxJRF9TVEFURV9FUlIgW251bWJl
cl0KIHdpbmRvdy5ET01FeGNlcHRpb24uTkFNRVNQQUNFX0VSUiBbbnVtYmVyXQogd2luZG93LkRP
TUV4Y2VwdGlvbi5ORVRXT1JLX0VSUiBbbnVtYmVyXQpAQCAtNTI2LDEyICs1MjgsMTQgQEAgd2lu
ZG93LkRPTUV4Y2VwdGlvbi5OT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlIgW251bWJlcl0KIHdp
bmRvdy5ET01FeGNlcHRpb24uUVVPVEFfRVhDRUVERURfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9N
RXhjZXB0aW9uLlNFQ1VSSVRZX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5TWU5U
QVhfRVJSIFtudW1iZXJdCit3aW5kb3cuRE9NRXhjZXB0aW9uLlRJTUVPVVRfRVJSIFtudW1iZXJd
CiB3aW5kb3cuRE9NRXhjZXB0aW9uLlRZUEVfTUlTTUFUQ0hfRVJSIFtudW1iZXJdCiB3aW5kb3cu
RE9NRXhjZXB0aW9uLlVSTF9NSVNNQVRDSF9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRp
b24uVkFMSURBVElPTl9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24uV1JPTkdfRE9D
VU1FTlRfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZSBbb2JqZWN0
IERPTUV4Y2VwdGlvblByb3RvdHlwZV0KIHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlLkFC
T1JUX0VSUiBbbnVtYmVyXQord2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuREFUQV9DTE9O
RV9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlLkRPTVNUUklOR19T
SVpFX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuSElFUkFSQ0hZ
X1JFUVVFU1RfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5JTkRF
WF9TSVpFX0VSUiBbbnVtYmVyXQpAQCAtNTM5LDYgKzU0Myw3IEBAIHdpbmRvdy5ET01FeGNlcHRp
b24ucHJvdG90eXBlLklOVVNFX0FUVFJJQlVURV9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNl
cHRpb24ucHJvdG90eXBlLklOVkFMSURfQUNDRVNTX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4
Y2VwdGlvbi5wcm90b3R5cGUuSU5WQUxJRF9DSEFSQUNURVJfRVJSIFtudW1iZXJdCiB3aW5kb3cu
RE9NRXhjZXB0aW9uLnByb3RvdHlwZS5JTlZBTElEX01PRElGSUNBVElPTl9FUlIgW251bWJlcl0K
K3dpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlLklOVkFMSURfTk9ERV9UWVBFX0VSUiBbbnVt
YmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuSU5WQUxJRF9TVEFURV9FUlIgW251
bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlLk5BTUVTUEFDRV9FUlIgW251bWJl
cl0KIHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlLk5FVFdPUktfRVJSIFtudW1iZXJdCkBA
IC01NDksNiArNTU0LDcgQEAgd2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuTk9fTU9ESUZJ
Q0FUSU9OX0FMTE9XRURfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlw
ZS5RVU9UQV9FWENFRURFRF9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90
eXBlLlNFQ1VSSVRZX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUu
U1lOVEFYX0VSUiBbbnVtYmVyXQord2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuVElNRU9V
VF9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlLlRZUEVfTUlTTUFU
Q0hfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5VUkxfTUlTTUFU
Q0hfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5WQUxJREFUSU9O
X0VSUiBbbnVtYmVyXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvZmFzdC9k
b20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL3F0L2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQK
aW5kZXggNTRjMTA3OS4uYmFkMjMwNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
cXQvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMt
ZXhwZWN0ZWQudHh0CkBAIC01MDksNiArNTA5LDcgQEAgd2luZG93LkNvdW50ZXIgW29iamVjdCBD
b3VudGVyQ29uc3RydWN0b3JdCiB3aW5kb3cuQ291bnRlci5wcm90b3R5cGUgW29iamVjdCBDb3Vu
dGVyUHJvdG90eXBlXQogd2luZG93LkRPTUV4Y2VwdGlvbiBbb2JqZWN0IERPTUV4Y2VwdGlvbkNv
bnN0cnVjdG9yXQogd2luZG93LkRPTUV4Y2VwdGlvbi5BQk9SVF9FUlIgW251bWJlcl0KK3dpbmRv
dy5ET01FeGNlcHRpb24uREFUQV9DTE9ORV9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRp
b24uRE9NU1RSSU5HX1NJWkVfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLkhJRVJB
UkNIWV9SRVFVRVNUX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5JTkRFWF9TSVpF
X0VSUiBbbnVtYmVyXQpAQCAtNTE2LDYgKzUxNyw3IEBAIHdpbmRvdy5ET01FeGNlcHRpb24uSU5V
U0VfQVRUUklCVVRFX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5JTlZBTElEX0FD
Q0VTU19FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24uSU5WQUxJRF9DSEFSQUNURVJf
RVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLklOVkFMSURfTU9ESUZJQ0FUSU9OX0VS
UiBbbnVtYmVyXQord2luZG93LkRPTUV4Y2VwdGlvbi5JTlZBTElEX05PREVfVFlQRV9FUlIgW251
bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24uSU5WQUxJRF9TVEFURV9FUlIgW251bWJlcl0KIHdp
bmRvdy5ET01FeGNlcHRpb24uTkFNRVNQQUNFX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2Vw
dGlvbi5ORVRXT1JLX0VSUiBbbnVtYmVyXQpAQCAtNTI2LDEyICs1MjgsMTQgQEAgd2luZG93LkRP
TUV4Y2VwdGlvbi5OT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlIgW251bWJlcl0KIHdpbmRvdy5E
T01FeGNlcHRpb24uUVVPVEFfRVhDRUVERURfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0
aW9uLlNFQ1VSSVRZX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5TWU5UQVhfRVJS
IFtudW1iZXJdCit3aW5kb3cuRE9NRXhjZXB0aW9uLlRJTUVPVVRfRVJSIFtudW1iZXJdCiB3aW5k
b3cuRE9NRXhjZXB0aW9uLlRZUEVfTUlTTUFUQ0hfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhj
ZXB0aW9uLlVSTF9NSVNNQVRDSF9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24uVkFM
SURBVElPTl9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24uV1JPTkdfRE9DVU1FTlRf
RVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZSBbb2JqZWN0IERPTUV4
Y2VwdGlvblByb3RvdHlwZV0KIHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlLkFCT1JUX0VS
UiBbbnVtYmVyXQord2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuREFUQV9DTE9ORV9FUlIg
W251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlLkRPTVNUUklOR19TSVpFX0VS
UiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuSElFUkFSQ0hZX1JFUVVF
U1RfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5JTkRFWF9TSVpF
X0VSUiBbbnVtYmVyXQpAQCAtNTM5LDYgKzU0Myw3IEBAIHdpbmRvdy5ET01FeGNlcHRpb24ucHJv
dG90eXBlLklOVVNFX0FUVFJJQlVURV9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24u
cHJvdG90eXBlLklOVkFMSURfQUNDRVNTX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlv
bi5wcm90b3R5cGUuSU5WQUxJRF9DSEFSQUNURVJfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhj
ZXB0aW9uLnByb3RvdHlwZS5JTlZBTElEX01PRElGSUNBVElPTl9FUlIgW251bWJlcl0KK3dpbmRv
dy5ET01FeGNlcHRpb24ucHJvdG90eXBlLklOVkFMSURfTk9ERV9UWVBFX0VSUiBbbnVtYmVyXQog
d2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuSU5WQUxJRF9TVEFURV9FUlIgW251bWJlcl0K
IHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlLk5BTUVTUEFDRV9FUlIgW251bWJlcl0KIHdp
bmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlLk5FVFdPUktfRVJSIFtudW1iZXJdCkBAIC01NDks
NiArNTU0LDcgQEAgd2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuTk9fTU9ESUZJQ0FUSU9O
X0FMTE9XRURfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5RVU9U
QV9FWENFRURFRF9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlLlNF
Q1VSSVRZX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuU1lOVEFY
X0VSUiBbbnVtYmVyXQord2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuVElNRU9VVF9FUlIg
W251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlLlRZUEVfTUlTTUFUQ0hfRVJS
IFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5VUkxfTUlTTUFUQ0hfRVJS
IFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5WQUxJREFUSU9OX0VSUiBb
bnVtYmVyXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0
c3RvcmUtYmFzaWNzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L29iamVjdHN0b3JlLWJhc2ljcy1leHBlY3RlZC50eHQKaW5kZXggMjM5NDc0MC4uN2EzNGExYiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0c3RvcmUtYmFz
aWNzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9vYmpl
Y3RzdG9yZS1iYXNpY3MtZXhwZWN0ZWQudHh0CkBAIC01Niw3ICs1Niw3IEBAIHN0b3JlLmFkZCh7
eDogJ2Zvbyd9LCB0ZXN0RGF0ZSkKIFRyeSB0byBpbnNlcnQgYSB2YWx1ZSBub3QgaGFuZGxlZCBi
eSBzdHJ1Y3R1cmVkIGNsb25lOgogc3RvcmUuYWRkKHt4OiAnYmFyJywgeTogZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKX0sICdiYXInKQogUEFTUyBFeGNlcHRpb24gdGhyb3duCi1Q
QVNTIGNvZGUgaXMgRE9NRXhjZXB0aW9uLk5PVF9TVVBQT1JURURfRVJSCitQQVNTIGNvZGUgaXMg
RE9NRXhjZXB0aW9uLkRBVEFfQ0xPTkVfRVJSCiBUcnkgdG8gaW5zZXJ0IGRhdGEgd2hlcmUga2V5
IHBhdGggeWllbGRzIGEgRGF0ZSBrZXk6CiBzdG9yZS5hZGQoe3g6IHRlc3REYXRlQiwgeTogJ3Zh
bHVlJ30sICdrZXknKQogYWRkU3VjY2VzcygpOgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvb2JqZWN0c3RvcmUtYmFzaWNzLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9vYmplY3RzdG9yZS1iYXNpY3MuaHRtbAppbmRleCBiMmU3M2VlLi5iNzY5
NTg1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9vYmplY3RzdG9y
ZS1iYXNpY3MuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9vYmplY3Rz
dG9yZS1iYXNpY3MuaHRtbApAQCAtMTU0LDcgKzE1NCw3IEBAIGZ1bmN0aW9uIGFkZERhdGVTdWNj
ZXNzKCkKICAgICB9IGNhdGNoIChlcnIpIHsKICAgICAgICAgdGVzdFBhc3NlZCgiRXhjZXB0aW9u
IHRocm93biIpOwogICAgICAgICBjb2RlID0gZXJyLmNvZGU7Ci0gICAgICAgIHNob3VsZEJlKCJj
b2RlIiwgIkRPTUV4Y2VwdGlvbi5OT1RfU1VQUE9SVEVEX0VSUiIpOworICAgICAgICBzaG91bGRC
ZSgiY29kZSIsICJET01FeGNlcHRpb24uREFUQV9DTE9ORV9FUlIiKTsKICAgICB9CiAKICAgICBk
ZWJ1ZygiVHJ5IHRvIGluc2VydCBkYXRhIHdoZXJlIGtleSBwYXRoIHlpZWxkcyBhIERhdGUga2V5
OiIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCmluZGV4IGYwYmNhYjMuLmMxZjljMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSw4OCBAQAorMjAxMS0wNy0xMyAgTHVrZSBaYXJrbyAgPGx1a2V6YXJrb0BnbWFpbC5jb20+CisK
KyAgICAgICAgQnJpbmcgVjgncyBTZXJpYWxpemVkU2NyaXB0VmFsdWUgaW1wbGVtZW50YXRpb24g
dXAgdG8gZGF0ZS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NjM0ODEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAg
ICAgCisgICAgICAgIFRoZSBIVE1MNSBTdHJ1Y3R1cmVkIENsb25lIGFsZ29yaXRobSAoaHR0cDov
L3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay9tdWx0aXBhZ2UvdXJs
cy5odG1sI3NhZmUtcGFzc2luZy1vZi1zdHJ1Y3R1cmVkLWRhdGEpIGhhcyBiZWVuIHVwZGF0ZWQg
c2luY2UgdGhlIFY4IHZlcnNpb24gb2YgU2VyaWFsaXplZFNjcmlwdFZhbHVlIHdhcyBmaXJzdCBp
bXBsZW1lbnRlZC4gVGhpcyBwYXRjaCBhaW1zIHRvIGJyaW5nIHRoaXMgaW1wbGVtZW50YXRpb24g
dXAgdG8gZGF0ZS4gSXQ6CisgICAgICAgIAorICAgICAgICAtIEludHJvZHVjZXMgdGhlIG5ldyBI
VE1MNSBET00gZXJyb3IgY29kZXMgZm9yIFRJTUVPVVRfRVJSLCBJTlZBTElEX05PREVfVFlQRV9F
UlIsIERBVEFfQ0xPTkVfRVJSCisgICAgICAgIC0gSGFuZGxlcyBjeWNsaWMgc3RydWN0dXJlcyBh
bmQgZXF1YWxpdHkgb2YgcmVmZXJlbmNlIHByZXNlcnZhdGlvbiBmb3IgY2xvbmVkIHZhbHVlcwor
ICAgICAgICAtIEFsbG93cyBEYXRhVmlld3MgdG8gYmUgY29uc3RydWN0ZWQgb24gdGhlIG5hdGl2
ZSBzaWRlIHVzaW5nIHRoZSBleGlzdGluZyB3cmFwcGVyIHRlY2huaXF1ZXMKKyAgICAgICAgLSBB
bWVuZHMgdGVzdHMgYW5kIGludHJvZHVjZXMgbmV3IG9uZXMgdG8gY2hlY2sgZm9yIGNvcnJlY3Ru
ZXNzICh0aGUgYnVsayBvZiB0aGUgcGF0Y2gpCisgICAgICAgIC0gVG9sZXJhdGVzIHRoZSBvbGQg
dmVyc2lvbiBvZiB0aGUgc2VyaWFsaXplZCBvYmplY3QgZm9ybWF0CisgICAgICAgIAorICAgICAg
ICBUaGUgcGF0Y2ggcGVybWl0cyB0aGUgY2xvbmluZyBvZiBKYXZhU2NyaXB0IHR5cGVkIGFycmF5
cy4gVGhpcyBmdW5jdGlvbmFsaXR5IGlzIGluIGFjdGl2ZSB1c2UgYWxyZWFkeSBhbmQgd2FzIHN1
cHBvcnRlZCAoc29tZXdoYXQgaW5lZmZpY2llbnRseSkgYnkgdGhlIGV4aXN0aW5nIGNvZGUgdGhy
b3VnaCBhbiBhcnRpZmFjdCBvZiBpbXBsZW1lbnRhdGlvbi4KKworICAgICAgICBUZXN0czogZmFz
dC9kb20vV2luZG93L3dpbmRvdy1wb3N0bWVzc2FnZS1jbG9uZS1kZWVwLWFycmF5Lmh0bWwKKyAg
ICAgICAgICAgICAgIGZhc3QvZG9tL1dpbmRvdy93aW5kb3ctcG9zdG1lc3NhZ2UtY2xvbmUtcmVh
bGx5LWRlZXAtYXJyYXkuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9kb20vV2luZG93L3dpbmRv
dy1wb3N0bWVzc2FnZS1jbG9uZS5odG1sCisgICAgICAgICAgICAgICBwbGF0Zm9ybS9jaHJvbWl1
bS9mYXN0L2NhbnZhcy93ZWJnbC9hcnJheS1tZXNzYWdlLXBhc3NpbmcuaHRtbAorCisgICAgICAg
ICogYmluZGluZ3MvdjgvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlY4T2JqZWN0TWFwOjpXcml0ZXI6OndyaXRlVmVyc2lvbik6CisgICAgICAgIChXZWJDb3Jl
OjpWOE9iamVjdE1hcDo6V3JpdGVyOjp3cml0ZUFycmF5QnVmZmVyKToKKyAgICAgICAgKFdlYkNv
cmU6OlY4T2JqZWN0TWFwOjpXcml0ZXI6OndyaXRlQXJyYXlCdWZmZXJWaWV3KToKKyAgICAgICAg
KFdlYkNvcmU6OlY4T2JqZWN0TWFwOjpXcml0ZXI6OndyaXRlT2JqZWN0T2Zmc2V0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlY4T2JqZWN0TWFwOjpXcml0ZXI6OndyaXRlQ2hlY2tSZWYpOgorICAgICAg
ICAoV2ViQ29yZTo6VjhPYmplY3RNYXA6OldyaXRlcjo6d3JpdGVHZW5lcmF0ZUZyZXNoT2JqZWN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlY4T2JqZWN0TWFwOjpXcml0ZXI6OndyaXRlR2VuZXJhdGVG
cmVzaEFycmF5KToKKyAgICAgICAgKFdlYkNvcmU6OlY4T2JqZWN0TWFwOjpXcml0ZXI6OmRvV3Jp
dGVBcnJheUJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpWOE9iamVjdE1hcDo6U2VyaWFsaXpl
cjo6U2VyaWFsaXplcik6CisgICAgICAgIChXZWJDb3JlOjpWOE9iamVjdE1hcDo6U2VyaWFsaXpl
cjo6c2VyaWFsaXplKToKKyAgICAgICAgKFdlYkNvcmU6OlY4T2JqZWN0TWFwOjpTZXJpYWxpemVy
OjpTdGF0ZUJhc2U6OmV4ZWNEZXB0aCk6CisgICAgICAgIChXZWJDb3JlOjpWOE9iamVjdE1hcDo6
U2VyaWFsaXplcjo6QWJzdHJhY3RPYmplY3RTdGF0ZTo6QWJzdHJhY3RPYmplY3RTdGF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpWOE9iamVjdE1hcDo6U2VyaWFsaXplcjo6QWJzdHJhY3RPYmplY3RT
dGF0ZTo6YWR2YW5jZSk6CisgICAgICAgIChXZWJDb3JlOjpWOE9iamVjdE1hcDo6U2VyaWFsaXpl
cjo6QWJzdHJhY3RPYmplY3RTdGF0ZTo6ZXhlY0RlcHRoKToKKyAgICAgICAgKFdlYkNvcmU6OlY4
T2JqZWN0TWFwOjpTZXJpYWxpemVyOjpleGVjRGVwdGgpOgorICAgICAgICAoV2ViQ29yZTo6VjhP
YmplY3RNYXA6OlNlcmlhbGl6ZXI6OnB1c2gpOgorICAgICAgICAoV2ViQ29yZTo6VjhPYmplY3RN
YXA6OlNlcmlhbGl6ZXI6OnBvcCk6CisgICAgICAgIChXZWJDb3JlOjpWOE9iamVjdE1hcDo6U2Vy
aWFsaXplcjo6aGFuZGxlRXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6VjhPYmplY3RNYXA6OlNl
cmlhbGl6ZXI6OndyaXRlTnVsbCk6CisgICAgICAgIChXZWJDb3JlOjpWOE9iamVjdE1hcDo6U2Vy
aWFsaXplcjo6d3JpdGVBbmRHcmV5QXJyYXlCdWZmZXJWaWV3KToKKyAgICAgICAgKFdlYkNvcmU6
OlY4T2JqZWN0TWFwOjpTZXJpYWxpemVyOjp3cml0ZUFycmF5QnVmZmVyKToKKyAgICAgICAgKFdl
YkNvcmU6OlY4T2JqZWN0TWFwOjpTZXJpYWxpemVyOjpncmV5T2JqZWN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlY4T2JqZWN0TWFwOjpTZXJpYWxpemVyOjpkb1NlcmlhbGl6ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpWOE9iamVjdE1hcDo6UmVhZGVyOjpSZWFkZXIpOgorICAgICAgICAoV2ViQ29yZTo6
VjhPYmplY3RNYXA6OlJlYWRlcjo6cmVhZCk6CisgICAgICAgIChXZWJDb3JlOjpWOE9iamVjdE1h
cDo6UmVhZGVyOjpyZWFkVmVyc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpWOE9iamVjdE1hcDo6
UmVhZGVyOjpzZXRWZXJzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlY4T2JqZWN0TWFwOjpSZWFk
ZXI6OnVuZG9SZWFkVGFnKToKKyAgICAgICAgKFdlYkNvcmU6OlY4T2JqZWN0TWFwOjpSZWFkZXI6
OnJlYWRTdWJUYWcpOgorICAgICAgICAoV2ViQ29yZTo6VjhPYmplY3RNYXA6OlJlYWRlcjo6ZG9S
ZWFkQXJyYXlCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6VjhPYmplY3RNYXA6OlJlYWRlcjo6
cmVhZEFycmF5QnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlY4T2JqZWN0TWFwOjpSZWFkZXI6
OnJlYWRBcnJheUJ1ZmZlclZpZXcpOgorICAgICAgICAoV2ViQ29yZTo6VjhPYmplY3RNYXA6OkRl
c2VyaWFsaXplcjo6RGVzZXJpYWxpemVyKToKKyAgICAgICAgKFdlYkNvcmU6OlY4T2JqZWN0TWFw
OjpEZXNlcmlhbGl6ZXI6OmRlc2VyaWFsaXplKToKKyAgICAgICAgKFdlYkNvcmU6OlY4T2JqZWN0
TWFwOjpEZXNlcmlhbGl6ZXI6Om5ld0FycmF5KToKKyAgICAgICAgKFdlYkNvcmU6OlY4T2JqZWN0
TWFwOjpEZXNlcmlhbGl6ZXI6OmNvbnN1bWVUb3BPZlN0YWNrKToKKyAgICAgICAgKFdlYkNvcmU6
OlY4T2JqZWN0TWFwOjpEZXNlcmlhbGl6ZXI6OmNvbXBsZXRlQXJyYXkpOgorICAgICAgICAoV2Vi
Q29yZTo6VjhPYmplY3RNYXA6OkRlc2VyaWFsaXplcjo6bmV3T2JqZWN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlY4T2JqZWN0TWFwOjpEZXNlcmlhbGl6ZXI6OmNvbXBsZXRlT2JqZWN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlY4T2JqZWN0TWFwOjpEZXNlcmlhbGl6ZXI6OmNvbXBsZXRlU3BhcnNlQXJy
YXkpOgorICAgICAgICAoV2ViQ29yZTo6VjhPYmplY3RNYXA6OkRlc2VyaWFsaXplcjo6cHVzaE9i
amVjdFJlZmVyZW5jZSk6CisgICAgICAgIChXZWJDb3JlOjpWOE9iamVjdE1hcDo6RGVzZXJpYWxp
emVyOjp0cnlHZXRPYmplY3RGcm9tT2JqZWN0UmVmZXJlbmNlKToKKyAgICAgICAgKFdlYkNvcmU6
OlY4T2JqZWN0TWFwOjpEZXNlcmlhbGl6ZXI6Om9iamVjdFJlZmVyZW5jZUNvdW50KToKKyAgICAg
ICAgKFdlYkNvcmU6OlY4T2JqZWN0TWFwOjpEZXNlcmlhbGl6ZXI6Om9wZW5Db21wb3NpdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6VjhPYmplY3RNYXA6OkRlc2VyaWFsaXplcjo6Y2xvc2VDb21wb3Np
dGUpOgorICAgICAgICAoV2ViQ29yZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlOjpTZXJpYWxpemVk
U2NyaXB0VmFsdWUpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4QmluZGluZy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjppc0hvc3RPYmplY3QpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4Qmlu
ZGluZy5oOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOERhdGFWaWV3Q3VzdG9tLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlY4RGF0YVZpZXc6OmNvbnN0cnVjdG9yQ2FsbGJhY2spOgor
ICAgICAgICAqIGRvbS9ET01Db3JlRXhjZXB0aW9uLmlkbDoKKyAgICAgICAgKiBkb20vRXhjZXB0
aW9uQ29kZS5jcHA6CisgICAgICAgICogZG9tL0V4Y2VwdGlvbkNvZGUuaDoKKyAgICAgICAgKiBo
dG1sL2NhbnZhcy9BcnJheUJ1ZmZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBcnJheUJ1ZmZl
cjo6Y3JlYXRlKToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9BcnJheUJ1ZmZlci5oOgorICAgICAg
ICAqIGh0bWwvY2FudmFzL0RhdGFWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFWaWV3
OjpjcmVhdGUpOgorICAgICAgICAqIGh0bWwvY2FudmFzL0RhdGFWaWV3Lmg6CisKIDIwMTEtMDct
MTMgIFBpZXJyZSBSb3NzaSAgPHBpZXJyZS5yb3NzaUBnbWFpbC5jb20+CiAKICAgICAgICAgRml4
IGNvbXBpbGUgZm9yIFFSYXdGb250LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKaW5kZXggY2I0NGYwMi4uMDA1YzcxMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2VyaWFsaXplZFNjcmlwdFZhbHVl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TZXJpYWxpemVkU2NyaXB0VmFs
dWUuY3BwCkBAIC0zMSwyMCArMzEsNDIgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRl
ICJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKIAorI2luY2x1ZGUgIkFycmF5QnVmZmVyLmgiCisj
aW5jbHVkZSAiQXJyYXlCdWZmZXJWaWV3LmgiCiAjaW5jbHVkZSAiQmxvYi5oIgogI2luY2x1ZGUg
IkJ5dGVBcnJheS5oIgogI2luY2x1ZGUgIkNhbnZhc1BpeGVsQXJyYXkuaCIKKyNpbmNsdWRlICJE
YXRhVmlldy5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRlICJGaWxlLmgi
CiAjaW5jbHVkZSAiRmlsZUxpc3QuaCIKKyNpbmNsdWRlICJGbG9hdDMyQXJyYXkuaCIKKyNpbmNs
dWRlICJGbG9hdDY0QXJyYXkuaCIKICNpbmNsdWRlICJJbWFnZURhdGEuaCIKKyNpbmNsdWRlICJJ
bnQxNkFycmF5LmgiCisjaW5jbHVkZSAiSW50MzJBcnJheS5oIgorI2luY2x1ZGUgIkludDhBcnJh
eS5oIgogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgorI2luY2x1ZGUgIlVpbnQxNkFycmF5Lmgi
CisjaW5jbHVkZSAiVWludDMyQXJyYXkuaCIKKyNpbmNsdWRlICJVaW50OEFycmF5LmgiCisjaW5j
bHVkZSAiVjhBcnJheUJ1ZmZlci5oIgorI2luY2x1ZGUgIlY4QXJyYXlCdWZmZXJWaWV3LmgiCiAj
aW5jbHVkZSAiVjhCaW5kaW5nLmgiCiAjaW5jbHVkZSAiVjhCbG9iLmgiCisjaW5jbHVkZSAiVjhE
YXRhVmlldy5oIgogI2luY2x1ZGUgIlY4RmlsZS5oIgogI2luY2x1ZGUgIlY4RmlsZUxpc3QuaCIK
KyNpbmNsdWRlICJWOEZsb2F0MzJBcnJheS5oIgorI2luY2x1ZGUgIlY4RmxvYXQ2NEFycmF5Lmgi
CiAjaW5jbHVkZSAiVjhJbWFnZURhdGEuaCIKKyNpbmNsdWRlICJWOEludDE2QXJyYXkuaCIKKyNp
bmNsdWRlICJWOEludDMyQXJyYXkuaCIKKyNpbmNsdWRlICJWOEludDhBcnJheS5oIgogI2luY2x1
ZGUgIlY4UHJveHkuaCIKKyNpbmNsdWRlICJWOFVpbnQxNkFycmF5LmgiCisjaW5jbHVkZSAiVjhV
aW50MzJBcnJheS5oIgorI2luY2x1ZGUgIlY4VWludDhBcnJheS5oIgogI2luY2x1ZGUgIlY4VXRp
bGl0aWVzLmgiCiAKICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgpAQCAtNTIsMzUgKzc0LDE0
NCBAQAogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogLy8gRklYTUU6IGNvbnNpZGVyIGNyYXNo
aW5nIGluIGRlYnVnIG1vZGUgb24gZGVzZXJpYWxpemF0aW9uIGVycm9ycworLy8gTk9URTogYmUg
c3VyZSB0byBjaGFuZ2Ugd2lyZUZvcm1hdFZlcnNpb24gYXMgbmVjZXNzYXJ5IQogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIG5hbWVzcGFjZSB7CiAKKy8vIFRoaXMgY29kZSBpbXBsZW1lbnRzIHRo
ZSBIVE1MNSBTdHJ1Y3R1cmVkIENsb25lIGFsZ29yaXRobToKKy8vIGh0dHA6Ly93d3cud2hhdHdn
Lm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvbXVsdGlwYWdlL3VybHMuaHRtbCNzYWZl
LXBhc3Npbmctb2Ytc3RydWN0dXJlZC1kYXRhCisKKy8vIFY4T2JqZWN0TWFwIGlzIGEgbWFwIGZy
b20gVjggb2JqZWN0cyB0byBhcmJpdHJhcnkgdmFsdWVzIG9mIHR5cGUgVC4KKy8vIFY4IG9iamVj
dHMgKG9yIGhhbmRsZXMgdG8gVjggb2JqZWN0cykgY2Fubm90IGJlIHVzZWQgYXMga2V5cyBpbiBv
cmRpbmFyeSB3dGY6Okhhc2hNYXBzOworLy8gdGhpcyBjbGFzcyBzaG91bGQgYmUgdXNlZCBpbnN0
ZWFkLiBHQ09iamVjdCBtdXN0IGJlIGEgc3VidHlwZSBvZiB2ODo6T2JqZWN0LgorLy8gU3VnZ2Vz
dGVkIHVzYWdlOgorLy8gICAgIFY4T2JqZWN0TWFwPHY4OjpPYmplY3QsIGludD4gbWFwOworLy8g
ICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gb2JqID0gLi4uOworLy8gICAgIG1hcC5zZXQob2Jq
LCA0Mik7Cit0ZW1wbGF0ZTx0eXBlbmFtZSBHQ09iamVjdCwgdHlwZW5hbWUgVD4KK2NsYXNzIFY4
T2JqZWN0TWFwIHsKK3B1YmxpYzoKKyAgICBib29sIGNvbnRhaW5zKGNvbnN0IHY4OjpIYW5kbGU8
R0NPYmplY3Q+JiBoYW5kbGUpCisgICAgeworICAgICAgICByZXR1cm4gbV9tYXAuY29udGFpbnMo
KmhhbmRsZSk7CisgICAgfQorCisgICAgYm9vbCB0cnlHZXQoY29uc3Qgdjg6OkhhbmRsZTxHQ09i
amVjdD4mIGhhbmRsZSwgVCogdmFsdWVPdXQpCisgICAgeworICAgICAgICB0eXBlbmFtZSBIYW5k
bGVUb1Q6Oml0ZXJhdG9yIHJlc3VsdCA9IG1fbWFwLmZpbmQoKmhhbmRsZSk7CisgICAgICAgIGlm
IChyZXN1bHQgIT0gbV9tYXAuZW5kKCkpIHsKKyAgICAgICAgICAgICp2YWx1ZU91dCA9IHJlc3Vs
dC0+c2Vjb25kOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHZvaWQgc2V0KGNvbnN0IHY4OjpIYW5kbGU8R0NP
YmplY3Q+JiBoYW5kbGUsIGNvbnN0IFQmIHZhbHVlKQorICAgIHsKKyAgICAgICAgbV9tYXAuc2V0
KCpoYW5kbGUsIHZhbHVlKTsKKyAgICB9CisKKyAgICB1aW50MzJfdCBzaXplKCkKKyAgICB7Cisg
ICAgICAgIHJldHVybiBtX21hcC5zaXplKCk7CisgICAgfQorCitwcml2YXRlOgorICAgIC8vIFRo
aXMgaW1wbGVtZW50YXRpb24gdXNlcyBHZXRJZGVudGl0eUhhc2goKSwgd2hpY2ggc2V0cyBhIGhp
ZGRlbiBwcm9wZXJ0eSBvbiB0aGUgb2JqZWN0IGNvbnRhaW5pbmcKKyAgICAvLyBhIHJhbmRvbSBp
bnRlZ2VyIChvciByZXR1cm5zIHRoZSBvbmUgdGhhdCBoYWQgYmVlbiBwcmV2aW91c2x5IHNldCku
IFRoaXMgZW5zdXJlcyB0aGF0IHRoZSB0YWJsZQorICAgIC8vIG5ldmVyIG5lZWRzIHRvIGJlIHJl
YnVpbHQgYWNyb3NzIGdhcmJhZ2UgY29sbGVjdGlvbnMgYXQgdGhlIGV4cGVuc2Ugb2YgZG9pbmcg
YWRkaXRpb25hbCBhbGxvY2F0aW9uCisgICAgLy8gYW5kIG1ha2luZyBtb3JlIHJvdW5kIHRyaXBz
IGludG8gVjguIE5vdGUgdGhhdCBzaW5jZSBHZXRJZGVudGl0eUhhc2goKSBpcyBkZWZpbmVkIG9u
bHkgb24KKyAgICAvLyB2ODo6T2JqZWN0cywgdGhpcyBWOE9iamVjdE1hcCBjYW5ub3QgYmUgdXNl
ZCB0byBtYXAgdjg6OlN0cmluZ3MgdG8gVCAoYmVjYXVzZSB0aGUgcHVibGljIFY4IEFQSQorICAg
IC8vIGNvbnNpZGVycyBhIHY4OjpTdHJpbmcgdG8gYmUgYSB2ODo6UHJpbWl0aXZlKS4KKworICAg
IC8vIElmIFY4IGV4cG9zZXMgYSB3YXkgdG8gZ2V0IGF0IHRoZSBhZGRyZXNzIG9mIHRoZSBvYmpl
Y3QgaGVsZCBieSBhIGhhbmRsZSwgdGhlbiB3ZSBjYW4gcHJvZHVjZQorICAgIC8vIGFuIGFsdGVy
bmF0ZSBpbXBsZW1lbnRhdGlvbiB0aGF0IGRvZXMgbm90IG5lZWQgdG8gZG8gYW55IFY4LXNpZGUg
YWxsb2NhdGlvbjsgaG93ZXZlciwgaXQgd2lsbAorICAgIC8vIG5lZWQgdG8gcmVoYXNoIGFmdGVy
IGV2ZXJ5IGdhcmJhZ2UgY29sbGVjdGlvbiBiZWNhdXNlIGEga2V5IG9iamVjdCBtYXkgaGF2ZSBi
ZWVuIG1vdmVkLgorICAgIHRlbXBsYXRlPHR5cGVuYW1lIEc+CisgICAgc3RydWN0IFY4SGFuZGxl
UHRySGFzaCB7CisgICAgICAgIHN0YXRpYyB1bnNpZ25lZCBoYXNoKGNvbnN0IEcqIGtleSkKKyAg
ICAgICAgeworICAgICAgICAgICAgdjg6OkhhbmRsZTxHPiBvYmpIYW5kbGUoY29uc3RfY2FzdDxH
Kj4oa2V5KSk7CisgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KG9iakhh
bmRsZS0+R2V0SWRlbnRpdHlIYXNoKCkpOworICAgICAgICB9CisgICAgICAgIHN0YXRpYyBib29s
IGVxdWFsKGNvbnN0IEcqIGEsIGNvbnN0IEcqIGIpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJl
dHVybiB2ODo6SGFuZGxlPEc+KGNvbnN0X2Nhc3Q8Ryo+KGEpKSA9PSB2ODo6SGFuZGxlPEc+KGNv
bnN0X2Nhc3Q8Ryo+KGIpKTsKKyAgICAgICAgfQorICAgICAgICAvLyBGb3IgSGFzaEFyZy4KKyAg
ICAgICAgc3RhdGljIGNvbnN0IGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSBm
YWxzZTsKKyAgICB9OworCisgICAgdHlwZWRlZiBXVEY6Okhhc2hNYXA8R0NPYmplY3QqLCBULCBW
OEhhbmRsZVB0ckhhc2g8R0NPYmplY3Q+ID4gSGFuZGxlVG9UOworICAgIEhhbmRsZVRvVCBtX21h
cDsKK307CisKIHR5cGVkZWYgVUNoYXIgQnVmZmVyVmFsdWVUeXBlOwogCi0vLyBTZXJpYWxpemF0
aW9uIGZvcm1hdCBpcyBhIHNlcXVlbmNlIG9mICh0YWcsIG9wdGlvbmFsIGRhdGEpCi0vLyBwYWly
cy4gVGFnIGFsd2F5cyB0YWtlcyBleGFjdGx5IG9uZSBieXRlLgorLy8gU2VyaWFsaXphdGlvbiBm
b3JtYXQgaXMgYSBzZXF1ZW5jZSBvZiB0YWdzIGZvbGxvd2VkIGJ5IHplcm8gb3IgbW9yZSBkYXRh
IGFyZ3VtZW50cy4KKy8vIFRhZ3MgYWx3YXlzIHRha2UgZXhhY3RseSBvbmUgYnl0ZS4gQSBzZXJp
YWxpemVkIHN0cmVhbSBmaXJzdCBiZWdpbnMgd2l0aAorLy8gYSBjb21wbGV0ZSBWZXJzaW9uVGFn
LiBJZiB0aGUgc3RyZWFtIGRvZXMgbm90IGJlZ2luIHdpdGggYSBWZXJzaW9uVGFnLCB3ZSBhc3N1
bWUgdGhhdAorLy8gdGhlIHN0cmVhbSBpcyBpbiBmb3JtYXQgMC4KKworLy8gVGhpcyBmb3JtYXQg
aXMgcHJpdmF0ZSB0byB0aGUgaW1wbGVtZW50YXRpb24gb2YgU2VyaWFsaXplZFNjcmlwdFZhbHVl
LiBEbyBub3QgcmVseSBvbiBpdAorLy8gZXh0ZXJuYWxseS4gSXQgaXMgc2FmZSB0byBwZXJzaXN0
IGEgU2VyaWFsaXplZFNjcmlwdFZhbHVlIGFzIGEgYmluYXJ5IGJsb2IsIGJ1dCB0aGlzCisvLyBj
b2RlIHNob3VsZCBhbHdheXMgYmUgdXNlZCB0byBpbnRlcnByZXQgaXQuCisKKy8vIFdlYkNvcmVT
dHJpbmdzIGFyZSByZWFkIGFzIChsZW5ndGg6dWludDMyX3QsIHN0cmluZzpVVEY4W2xlbmd0aF0p
LgorLy8gUmF3U3RyaW5ncyBhcmUgcmVhZCBhcyAobGVuZ3RoOnVpbnQzMl90LCBzdHJpbmc6VVRG
OFtsZW5ndGhdKS4KKy8vIFJhd0ZpbGVzIGFyZSByZWFkIGFzIChwYXRoOldlYkNvcmVTdHJpbmcs
IHVybDpXZWJDb3JlU3RybmcsIHR5cGU6V2ViQ29yZVN0cmluZykuCisvLyBUaGVyZSBpcyBhIHJl
ZiB0YWJsZSB0aGF0IG1hcHMgb2JqZWN0IHJlZmVyZW5jZXMgKHVpbnQzMl90KSB0byB2ODo6VmFs
dWVzLgorLy8gVG9rZW5zIG1hcmtlZCB3aXRoIChyZWYpIGFyZSBpbnNlcnRlZCBpbnRvIHRoZSBy
ZWYgdGFibGUgYW5kIGdpdmVuIHRoZSBuZXh0IG9iamVjdCBJRCBhZnRlciBkZWNvZGluZy4KKy8v
IEFsbCB0YWdzIGV4Y2VwdCBJbnZhbGlkVGFnLCBQYWRkaW5nVGFnLCBDaGVja1JlZlRhZywgVmVy
c2lvblRhZywgR2VuZXJhdGVGcmVzaE9iamVjdFRhZworLy8gICAgIGFuZCBHZW5lcmF0ZUZyZXNo
QXJyYXlUYWcgcHVzaCB0aGVpciByZXN1bHRzIHRvIHRoZSBkZXNlcmlhbGl6YXRpb24gc3RhY2su
CisvLyBUaGVyZSBpcyBhbHNvIGFuICdvcGVuJyBzdGFjayB0aGF0IGlzIHVzZWQgdG8gcmVzb2x2
ZSBjaXJjdWxhciByZWZlcmVuY2VzLiBPYmplY3RzIG9yIGFycmF5cyBtYXkKKy8vICAgICBjb250
YWluIHNlbGYtcmVmZXJlbmNlcy4gQmVmb3JlIHdlIGJlZ2luIHRvIGRlc2VyaWFsaXplIHRoZSBj
b250ZW50cyBvZiB0aGVzZSB2YWx1ZXMsIHRoZXkKKy8vICAgICBhcmUgZmlyc3QgZ2l2ZW4gb2Jq
ZWN0IHJlZmVyZW5jZSBJRHMgKGJ5IEdlbmVyYXRlRnJlc2hPYmplY3RUYWcvR2VuZXJhdGVGcmVz
aEFycmF5VGFnKTsKKy8vICAgICB0aGVzZSByZWZlcmVuY2UgSURzIGFyZSB0aGVuIHVzZWQgd2l0
aCBPYmplY3RSZWZlcmVuY2VUYWcgdG8gdGllIHRoZSByZWN1cnNpdmUga25vdC4KIGVudW0gU2Vy
aWFsaXphdGlvblRhZyB7Ci0gICAgSW52YWxpZFRhZyA9ICchJywKLSAgICBQYWRkaW5nVGFnID0g
J1wwJywKLSAgICBVbmRlZmluZWRUYWcgPSAnXycsCi0gICAgTnVsbFRhZyA9ICcwJywKLSAgICBU
cnVlVGFnID0gJ1QnLAotICAgIEZhbHNlVGFnID0gJ0YnLAotICAgIFN0cmluZ1RhZyA9ICdTJywK
LSAgICBJbnQzMlRhZyA9ICdJJywKLSAgICBVaW50MzJUYWcgPSAnVScsCi0gICAgRGF0ZVRhZyA9
ICdEJywKLSAgICBOdW1iZXJUYWcgPSAnTicsCi0gICAgQmxvYlRhZyA9ICdiJywKLSAgICBGaWxl
VGFnID0gJ2YnLAotICAgIEZpbGVMaXN0VGFnID0gJ2wnLAotICAgIEltYWdlRGF0YVRhZyA9ICcj
JywKLSAgICBBcnJheVRhZyA9ICdbJywKLSAgICBPYmplY3RUYWcgPSAneycsCi0gICAgU3BhcnNl
QXJyYXlUYWcgPSAnQCcsCi0gICAgUmVnRXhwVGFnID0gJ1InLAorICAgIEludmFsaWRUYWcgPSAn
IScsIC8vIENhdXNlcyBkZXNlcmlhbGl6YXRpb24gdG8gZmFpbC4KKyAgICBQYWRkaW5nVGFnID0g
J1wwJywgLy8gSXMgaWdub3JlZCAoYnV0IGNvbnN1bWVkKS4KKyAgICBVbmRlZmluZWRUYWcgPSAn
XycsIC8vIC0+IDx1bmRlZmluZWQ+CisgICAgTnVsbFRhZyA9ICcwJywgLy8gLT4gPG51bGw+Cisg
ICAgVHJ1ZVRhZyA9ICdUJywgLy8gLT4gPHRydWU+CisgICAgRmFsc2VUYWcgPSAnRicsIC8vIC0+
IDxmYWxzZT4KKyAgICBTdHJpbmdUYWcgPSAnUycsIC8vIHN0cmluZzpSYXdTdHJpbmcgLT4gc3Ry
aW5nCisgICAgSW50MzJUYWcgPSAnSScsIC8vIHZhbHVlOlppZ1phZy1lbmNvZGVkIGludDMyIC0+
IEludGVnZXIKKyAgICBVaW50MzJUYWcgPSAnVScsIC8vIHZhbHVlOnVpbnQzMl90IC0+IEludGVn
ZXIKKyAgICBEYXRlVGFnID0gJ0QnLCAvLyB2YWx1ZTpkb3VibGUgLT4gRGF0ZSAocmVmKQorICAg
IE51bWJlclRhZyA9ICdOJywgLy8gdmFsdWU6ZG91YmxlIC0+IE51bWJlcgorICAgIEJsb2JUYWcg
PSAnYicsIC8vIHVybDpXZWJDb3JlU3RyaW5nLCB0eXBlOldlYkNvcmVTdHJpbmcsIHNpemU6dWlu
dDY0X3QgLT4gQmxvYiAocmVmKQorICAgIEZpbGVUYWcgPSAnZicsIC8vIGZpbGU6UmF3RmlsZSAt
PiBGaWxlIChyZWYpCisgICAgRmlsZUxpc3RUYWcgPSAnbCcsIC8vIGxlbmd0aDp1aW50MzJfdCwg
ZmlsZXM6UmF3RmlsZVtsZW5ndGhdIC0+IEZpbGVMaXN0IChyZWYpCisgICAgSW1hZ2VEYXRhVGFn
ID0gJyMnLCAvLyB3aWR0aDp1aW50MzJfdCwgaGVpZ2h0OnVpbnQzMl90LCBwaXhlbERhdGFMZW5n
dGg6dWludDMyX3QsIGRhdGE6Ynl0ZVtwaXhlbERhdGFMZW5ndGhdIC0+IEltYWdlRGF0YSAocmVm
KQorICAgIEFycmF5VGFnID0gJ1snLCAvLyBsZW5ndGg6dWludDMyX3QgLT4gcG9wcyB0aGUgbGFz
dCBhcnJheSBmcm9tIHRoZSBvcGVuIHN0YWNrOworICAgICAgICAgICAgICAgICAgICAvLyAgICAg
ICAgICAgICAgICAgICAgZmlsbHMgaXQgd2l0aCB0aGUgbGFzdCBsZW5ndGggZWxlbWVudHMgcHVz
aGVkIG9uIHRoZSBkZXNlcmlhbGl6YXRpb24gc3RhY2sKKyAgICBPYmplY3RUYWcgPSAneycsIC8v
IG51bVByb3BlcnRpZXM6dWludDMyX3QgLT4gcG9wcyB0aGUgbGFzdCBvYmplY3QgZnJvbSB0aGUg
b3BlbiBzdGFjazsKKyAgICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZmlsbHMgaXQgd2l0aCB0aGUgbGFzdCBudW1Qcm9wZXJ0aWVzIG5hbWUsdmFsdWUgcGFp
cnMgcHVzaGVkIG9udG8gdGhlIGRlc2VyaWFsaXphdGlvbiBzdGFjaworICAgIFNwYXJzZUFycmF5
VGFnID0gJ0AnLCAvLyBudW1Qcm9wZXJ0aWVzOnVpbnQzMl90LCBsZW5ndGg6dWludDMyX3QgLT4g
cG9wcyB0aGUgbGFzdCBvYmplY3QgZnJvbSB0aGUgb3BlbiBzdGFjazsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGZpbGxzIGl0IHdpdGggdGhlIGxhc3QgbnVtUHJvcGVydGllcyBuYW1lLHZhbHVlIHBhaXJzIHB1
c2hlZCBvbnRvIHRoZSBkZXNlcmlhbGl6YXRpb24gc3RhY2sKKyAgICBSZWdFeHBUYWcgPSAnUics
IC8vIHBhdHRlcm46UmF3U3RyaW5nLCBmbGFnczp1aW50MzJfdCAtPiBSZWdFeHAgKHJlZikKKyAg
ICBBcnJheUJ1ZmZlclRhZyA9ICdCJywgLy8gYnl0ZUxlbmd0aDp1aW50MzJfdCwgZGF0YTpieXRl
W2J5dGVMZW5ndGhdIC0+IEFycmF5QnVmZmVyIChyZWYpCisgICAgQXJyYXlCdWZmZXJWaWV3VGFn
ID0gJ1YnLCAvLyBzdWJ0YWc6Ynl0ZSwgYnl0ZU9mZnNldDp1aW50MzJfdCwgYnl0ZUxlbmd0aDp1
aW50MzJfdCAtPiBBcnJheUJ1ZmZlclZpZXcgKHJlZikuIENvbnN1bWVzIGFuIEFycmF5QnVmZmVy
IGZyb20gdGhlIHRvcCBvZiB0aGUgZGVzZXJpYWxpemF0aW9uIHN0YWNrLgorICAgIE9iamVjdFJl
ZmVyZW5jZVRhZyA9ICdeJywgLy8gcmVmOnVpbnQzMl90IC0+IHJlZiB0YWJsZVtyZWZdCisgICAg
R2VuZXJhdGVGcmVzaE9iamVjdFRhZyA9ICdvJywgLy8gLT4gZW1wdHkgb2JqZWN0IGFsbG9jYXRl
ZCBhbiBvYmplY3QgSUQgYW5kIHB1c2hlZCBvbnRvIHRoZSBvcGVuIHN0YWNrIChyZWYpCisgICAg
R2VuZXJhdGVGcmVzaEFycmF5VGFnID0gJ2EnLCAvLyBsZW5ndGg6dWludDMyX3QgLT4gZW1wdHkg
YXJyYXlbbGVuZ3RoXSBhbGxvY2F0ZWQgYW4gb2JqZWN0IElEIGFuZCBwdXNoZWQgb250byB0aGUg
b3BlbiBzdGFjayAocmVmKQorICAgIENoZWNrUmVmVGFnID0gJz8nLCAvLyByZWZUYWJsZVNpemU6
dWludDMyX3QgLT4gSWYgdGhlIHJlZiB0YWJsZSBpcyBub3QgcmVmVGFibGVTaXplIGJpZywgZmFp
bHMuCisgICAgVmVyc2lvblRhZyA9IDB4RkYgLy8gdmVyc2lvbjp1aW50MzJfdCAtPiBVc2VzIHRo
aXMgYXMgdGhlIGZpbGUgdmVyc2lvbi4KK307CisKK2VudW0gQXJyYXlCdWZmZXJWaWV3U3ViVGFn
IHsKKyAgICBCeXRlQXJyYXlUYWcgPSAnYicsCisgICAgVW5zaWduZWRCeXRlQXJyYXlUYWcgPSAn
QicsCisgICAgU2hvcnRBcnJheVRhZyA9ICd3JywKKyAgICBVbnNpZ25lZFNob3J0QXJyYXlUYWcg
PSAnVycsCisgICAgSW50QXJyYXlUYWcgPSAnZCcsCisgICAgVW5zaWduZWRJbnRBcnJheVRhZyA9
ICdEJywKKyAgICBGbG9hdEFycmF5VGFnID0gJ2YnLAorICAgIERvdWJsZUFycmF5VGFnID0gJ0Yn
LAorICAgIERhdGFWaWV3VGFnID0gJz8nCiB9OwogCiBzdGF0aWMgYm9vbCBzaG91bGRDaGVja0Zv
ckN5Y2xlcyhpbnQgZGVwdGgpCkBAIC05Miw2ICsyMjMsOSBAQCBzdGF0aWMgYm9vbCBzaG91bGRD
aGVja0ZvckN5Y2xlcyhpbnQgZGVwdGgpCiAgICAgcmV0dXJuICEoZGVwdGggJiAoZGVwdGggLSAx
KSk7CiB9CiAKKy8vIEluY3JlbWVudCB0aGlzIGZvciBlYWNoIGluY29tcGF0aWJsZSBjaGFuZ2Ug
dG8gdGhlIHdpcmUgZm9ybWF0Lgorc3RhdGljIGNvbnN0IHVpbnQzMl90IHdpcmVGb3JtYXRWZXJz
aW9uID0gMTsKKwogc3RhdGljIGNvbnN0IGludCBtYXhEZXB0aCA9IDIwMDAwOwogCiAvLyBWYXJJ
bnQgZW5jb2RpbmcgY29uc3RhbnRzLgpAQCAtMTU5LDYgKzI5MywxMiBAQCBwdWJsaWM6CiAgICAg
ICAgIGRvV3JpdGVXZWJDb3JlU3RyaW5nKHN0cmluZyk7CiAgICAgfQogCisgICAgdm9pZCB3cml0
ZVZlcnNpb24oKQorICAgIHsKKyAgICAgICAgYXBwZW5kKFZlcnNpb25UYWcpOworICAgICAgICBk
b1dyaXRlVWludDMyKHdpcmVGb3JtYXRWZXJzaW9uKTsKKyAgICB9CisKICAgICB2b2lkIHdyaXRl
SW50MzIoaW50MzJfdCB2YWx1ZSkKICAgICB7CiAgICAgICAgIGFwcGVuZChJbnQzMlRhZyk7CkBA
IC0yMTEsNiArMzUxLDQyIEBAIHB1YmxpYzoKICAgICAgICAgfQogICAgIH0KIAorICAgIHZvaWQg
d3JpdGVBcnJheUJ1ZmZlcihjb25zdCBBcnJheUJ1ZmZlciYgYXJyYXlCdWZmZXIpCisgICAgewor
ICAgICAgICBhcHBlbmQoQXJyYXlCdWZmZXJUYWcpOworICAgICAgICBkb1dyaXRlQXJyYXlCdWZm
ZXIoYXJyYXlCdWZmZXIpOworICAgIH0KKworICAgIHZvaWQgd3JpdGVBcnJheUJ1ZmZlclZpZXco
Y29uc3QgQXJyYXlCdWZmZXJWaWV3JiBhcnJheUJ1ZmZlclZpZXcpCisgICAgeworICAgICAgICBh
cHBlbmQoQXJyYXlCdWZmZXJWaWV3VGFnKTsKKyNpZm5kZWYgTkRFQlVHCisgICAgICAgIGNvbnN0
IEFycmF5QnVmZmVyJiBhcnJheUJ1ZmZlciA9ICphcnJheUJ1ZmZlclZpZXcuYnVmZmVyKCk7Cisg
ICAgICAgIEFTU0VSVChzdGF0aWNfY2FzdDxjb25zdCB1aW50OF90Kj4oYXJyYXlCdWZmZXIuZGF0
YSgpKSArIGFycmF5QnVmZmVyVmlldy5ieXRlT2Zmc2V0KCkgPT0KKyAgICAgICAgICAgICAgIHN0
YXRpY19jYXN0PGNvbnN0IHVpbnQ4X3QqPihhcnJheUJ1ZmZlclZpZXcuYmFzZUFkZHJlc3MoKSkp
OworI2VuZGlmCisgICAgICAgIGlmIChhcnJheUJ1ZmZlclZpZXcuaXNCeXRlQXJyYXkoKSkKKyAg
ICAgICAgICAgIGFwcGVuZChCeXRlQXJyYXlUYWcpOworICAgICAgICBlbHNlIGlmIChhcnJheUJ1
ZmZlclZpZXcuaXNVbnNpZ25lZEJ5dGVBcnJheSgpKQorICAgICAgICAgICAgYXBwZW5kKFVuc2ln
bmVkQnl0ZUFycmF5VGFnKTsKKyAgICAgICAgZWxzZSBpZiAoYXJyYXlCdWZmZXJWaWV3LmlzU2hv
cnRBcnJheSgpKQorICAgICAgICAgICAgYXBwZW5kKFNob3J0QXJyYXlUYWcpOworICAgICAgICBl
bHNlIGlmIChhcnJheUJ1ZmZlclZpZXcuaXNVbnNpZ25lZFNob3J0QXJyYXkoKSkKKyAgICAgICAg
ICAgIGFwcGVuZChVbnNpZ25lZFNob3J0QXJyYXlUYWcpOworICAgICAgICBlbHNlIGlmIChhcnJh
eUJ1ZmZlclZpZXcuaXNJbnRBcnJheSgpKQorICAgICAgICAgICAgYXBwZW5kKEludEFycmF5VGFn
KTsKKyAgICAgICAgZWxzZSBpZiAoYXJyYXlCdWZmZXJWaWV3LmlzVW5zaWduZWRJbnRBcnJheSgp
KQorICAgICAgICAgICAgYXBwZW5kKFVuc2lnbmVkSW50QXJyYXlUYWcpOworICAgICAgICBlbHNl
IGlmIChhcnJheUJ1ZmZlclZpZXcuaXNGbG9hdEFycmF5KCkpCisgICAgICAgICAgICBhcHBlbmQo
RmxvYXRBcnJheVRhZyk7CisgICAgICAgIGVsc2UgaWYgKGFycmF5QnVmZmVyVmlldy5pc0RvdWJs
ZUFycmF5KCkpCisgICAgICAgICAgICBhcHBlbmQoRG91YmxlQXJyYXlUYWcpOworICAgICAgICBl
bHNlIGlmIChhcnJheUJ1ZmZlclZpZXcuaXNEYXRhVmlldygpKQorICAgICAgICAgICAgYXBwZW5k
KERhdGFWaWV3VGFnKTsKKyAgICAgICAgZG9Xcml0ZVVpbnQzMihhcnJheUJ1ZmZlclZpZXcuYnl0
ZU9mZnNldCgpKTsKKyAgICAgICAgZG9Xcml0ZVVpbnQzMihhcnJheUJ1ZmZlclZpZXcuYnl0ZUxl
bmd0aCgpKTsKKyAgICB9CisKICAgICB2b2lkIHdyaXRlSW1hZ2VEYXRhKHVpbnQzMl90IHdpZHRo
LCB1aW50MzJfdCBoZWlnaHQsIGNvbnN0IHVpbnQ4X3QqIHBpeGVsRGF0YSwgdWludDMyX3QgcGl4
ZWxEYXRhTGVuZ3RoKQogICAgIHsKICAgICAgICAgYXBwZW5kKEltYWdlRGF0YVRhZyk7CkBAIC0y
MzQsNiArNDEwLDEyIEBAIHB1YmxpYzoKICAgICAgICAgZG9Xcml0ZVVpbnQzMihsZW5ndGgpOwog
ICAgIH0KIAorICAgIHZvaWQgd3JpdGVPYmplY3RPZmZzZXQodWludDMyX3Qgb2Zmc2V0KQorICAg
IHsKKyAgICAgICAgYXBwZW5kKE9iamVjdFJlZmVyZW5jZVRhZyk7CisgICAgICAgIGRvV3JpdGVV
aW50MzIob2Zmc2V0KTsKKyAgICB9CisKICAgICB2b2lkIHdyaXRlT2JqZWN0KHVpbnQzMl90IG51
bVByb3BlcnRpZXMpCiAgICAgewogICAgICAgICBhcHBlbmQoT2JqZWN0VGFnKTsKQEAgLTI1Myw3
ICs0MzUsMzEgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gbV9idWZmZXI7CiAgICAgfQogCisg
ICAgdm9pZCB3cml0ZUNoZWNrUmVmKHVpbnQzMl90IG51bWJlck9mUmVmcykKKyAgICB7CisgICAg
ICAgIGFwcGVuZChDaGVja1JlZlRhZyk7CisgICAgICAgIGRvV3JpdGVVaW50MzIobnVtYmVyT2ZS
ZWZzKTsKKyAgICB9CisKKyAgICB2b2lkIHdyaXRlR2VuZXJhdGVGcmVzaE9iamVjdCgpCisgICAg
eworICAgICAgICBhcHBlbmQoR2VuZXJhdGVGcmVzaE9iamVjdFRhZyk7CisgICAgfQorCisgICAg
dm9pZCB3cml0ZUdlbmVyYXRlRnJlc2hBcnJheSh1aW50MzJfdCBsZW5ndGgpCisgICAgeworICAg
ICAgICBhcHBlbmQoR2VuZXJhdGVGcmVzaEFycmF5VGFnKTsKKyAgICAgICAgZG9Xcml0ZVVpbnQz
MihsZW5ndGgpOworICAgIH0KKwogcHJpdmF0ZToKKyAgICB2b2lkIGRvV3JpdGVBcnJheUJ1ZmZl
cihjb25zdCBBcnJheUJ1ZmZlciYgYXJyYXlCdWZmZXIpCisgICAgeworICAgICAgICB1aW50MzJf
dCBieXRlTGVuZ3RoID0gYXJyYXlCdWZmZXIuYnl0ZUxlbmd0aCgpOworICAgICAgICBkb1dyaXRl
VWludDMyKGJ5dGVMZW5ndGgpOworICAgICAgICBhcHBlbmQoc3RhdGljX2Nhc3Q8Y29uc3QgdWlu
dDhfdCo+KGFycmF5QnVmZmVyLmRhdGEoKSksIGJ5dGVMZW5ndGgpOworICAgIH0KKwogICAgIHZv
aWQgZG9Xcml0ZVN0cmluZyhjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3RoKQogICAgIHsKICAg
ICAgICAgZG9Xcml0ZVVpbnQzMihzdGF0aWNfY2FzdDx1aW50MzJfdD4obGVuZ3RoKSk7CkBAIC0z
NDAsNiArNTQ2LDcgQEAgcHVibGljOgogICAgIGVudW0gU3RhdHVzIHsKICAgICAgICAgU3VjY2Vz
cywKICAgICAgICAgSW5wdXRFcnJvciwKKyAgICAgICAgRGF0YUNsb25lRXJyb3IsCiAgICAgICAg
IEpTRXhjZXB0aW9uLAogICAgICAgICBKU0ZhaWx1cmUKICAgICB9OwpAQCAtMzQ4LDcgKzU1NSw5
IEBAIHB1YmxpYzoKICAgICAgICAgOiBtX3dyaXRlcih3cml0ZXIpCiAgICAgICAgICwgbV90cnlD
YXRjaCh0cnlDYXRjaCkKICAgICAgICAgLCBtX2RlcHRoKDApCisgICAgICAgICwgbV9leGVjRGVw
dGgoMCkKICAgICAgICAgLCBtX3N0YXR1cyhTdWNjZXNzKQorICAgICAgICAsIG1fbmV4dE9iamVj
dElkKDApCiAgICAgewogICAgICAgICBBU1NFUlQoIXRyeUNhdGNoLkhhc0NhdWdodCgpKTsKICAg
ICB9CkBAIC0zNTYsNiArNTY1LDcgQEAgcHVibGljOgogICAgIFN0YXR1cyBzZXJpYWxpemUodjg6
OkhhbmRsZTx2ODo6VmFsdWU+IHZhbHVlKQogICAgIHsKICAgICAgICAgdjg6OkhhbmRsZVNjb3Bl
IHNjb3BlOworICAgICAgICBtX3dyaXRlci53cml0ZVZlcnNpb24oKTsKICAgICAgICAgU3RhdGVC
YXNlKiBzdGF0ZSA9IGRvU2VyaWFsaXplKHZhbHVlLCAwKTsKICAgICAgICAgd2hpbGUgKHN0YXRl
KQogICAgICAgICAgICAgc3RhdGUgPSBzdGF0ZS0+YWR2YW5jZSgqdGhpcyk7CkBAIC0zNjMsNyAr
NTczLDYgQEAgcHVibGljOgogICAgIH0KIAogICAgIC8vIEZ1bmN0aW9ucyB1c2VkIGJ5IHNlcmlh
bGl6YXRpb24gc3RhdGVzLgotCiAgICAgU3RhdGVCYXNlKiBkb1NlcmlhbGl6ZSh2ODo6SGFuZGxl
PHY4OjpWYWx1ZT4gdmFsdWUsIFN0YXRlQmFzZSogbmV4dCk7CiAKICAgICBTdGF0ZUJhc2UqIGNo
ZWNrRXhjZXB0aW9uKFN0YXRlQmFzZSogc3RhdGUpCkBAIC00MTEsNiArNjIwLDEwIEBAIHByaXZh
dGU6CiAgICAgICAgIC8vIHN0YXRlLgogICAgICAgICB2aXJ0dWFsIFN0YXRlQmFzZSogYWR2YW5j
ZShTZXJpYWxpemVyJikgPSAwOwogCisgICAgICAgIC8vIFJldHVybnMgMSBpZiB0aGlzIHN0YXRl
IGlzIGN1cnJlbnRseSBzZXJpYWxpemluZyBhIHByb3BlcnR5CisgICAgICAgIC8vIHZpYSBhbiBh
Y2Nlc3NvciBhbmQgMCBvdGhlcndpc2UuCisgICAgICAgIHZpcnR1YWwgdWludDMyX3QgZXhlY0Rl
cHRoKCkgY29uc3QgeyByZXR1cm4gMDsgfQorCiAgICAgcHJvdGVjdGVkOgogICAgICAgICBTdGF0
ZUJhc2Uodjg6OkhhbmRsZTx2ODo6VmFsdWU+IGNvbXBvc2l0ZSwgU3RhdGVCYXNlKiBuZXh0KQog
ICAgICAgICAgICAgOiBtX2NvbXBvc2l0ZShjb21wb3NpdGUpCkBAIC00ODUsMTEgKzY5OCwxMyBA
QCBwcml2YXRlOgogICAgICAgICAgICAgLCBtX2luZGV4KDApCiAgICAgICAgICAgICAsIG1fbnVt
U2VyaWFsaXplZFByb3BlcnRpZXMoMCkKICAgICAgICAgICAgICwgbV9uYW1lRG9uZShmYWxzZSkK
KyAgICAgICAgICAgICwgbV9zZXJpYWxpemluZ0FjY2Vzc29yKGZhbHNlKQogICAgICAgICB7CiAg
ICAgICAgIH0KIAogICAgICAgICB2aXJ0dWFsIFN0YXRlQmFzZSogYWR2YW5jZShTZXJpYWxpemVy
JiBzZXJpYWxpemVyKQogICAgICAgICB7CisgICAgICAgICAgICBtX3NlcmlhbGl6aW5nQWNjZXNz
b3IgPSBmYWxzZTsKICAgICAgICAgICAgIGlmICghbV9pbmRleCkgewogICAgICAgICAgICAgICAg
IG1fcHJvcGVydHlOYW1lcyA9IGNvbXBvc2l0ZSgpLT5HZXRQcm9wZXJ0eU5hbWVzKCk7CiAgICAg
ICAgICAgICAgICAgaWYgKFN0YXRlQmFzZSogbmV3U3RhdGUgPSBzZXJpYWxpemVyLmNoZWNrRXhj
ZXB0aW9uKHRoaXMpKQpAQCAtNDk4LDYgKzcxMyw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBzZXJpYWxpemVyLnJlcG9ydEZhaWx1cmUodGhpcyk7CiAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICB3aGlsZSAobV9pbmRleCA8IG1fcHJvcGVydHlOYW1lcy0+TGVuZ3Ro
KCkpIHsKKyAgICAgICAgICAgICAgICBib29sIGlzQWNjZXNzb3IgPSBmYWxzZTsKICAgICAgICAg
ICAgICAgICBpZiAoIW1fbmFtZURvbmUpIHsKICAgICAgICAgICAgICAgICAgICAgdjg6OkxvY2Fs
PHY4OjpWYWx1ZT4gcHJvcGVydHlOYW1lID0gbV9wcm9wZXJ0eU5hbWVzLT5HZXQobV9pbmRleCk7
CiAgICAgICAgICAgICAgICAgICAgIGlmIChTdGF0ZUJhc2UqIG5ld1N0YXRlID0gc2VyaWFsaXpl
ci5jaGVja0V4Y2VwdGlvbih0aGlzKSkKQEAgLTUxMCw2ICs3MjYsOSBAQCBwcml2YXRlOgogICAg
ICAgICAgICAgICAgICAgICBib29sIGhhc0luZGV4ZWRQcm9wZXJ0eSA9ICFoYXNTdHJpbmdQcm9w
ZXJ0eSAmJiBwcm9wZXJ0eU5hbWUtPklzVWludDMyKCkgJiYgY29tcG9zaXRlKCktPkhhc1JlYWxJ
bmRleGVkUHJvcGVydHkocHJvcGVydHlOYW1lLT5VaW50MzJWYWx1ZSgpKTsKICAgICAgICAgICAg
ICAgICAgICAgaWYgKFN0YXRlQmFzZSogbmV3U3RhdGUgPSBzZXJpYWxpemVyLmNoZWNrRXhjZXB0
aW9uKHRoaXMpKQogICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ld1N0YXRlOworICAg
ICAgICAgICAgICAgICAgICBpc0FjY2Vzc29yID0gaGFzU3RyaW5nUHJvcGVydHkgJiYgY29tcG9z
aXRlKCktPkhhc1JlYWxOYW1lZENhbGxiYWNrUHJvcGVydHkocHJvcGVydHlOYW1lLkFzPHY4OjpT
dHJpbmc+KCkpOworICAgICAgICAgICAgICAgICAgICBpZiAoU3RhdGVCYXNlKiBuZXdTdGF0ZSA9
IHNlcmlhbGl6ZXIuY2hlY2tFeGNlcHRpb24odGhpcykpCisgICAgICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gbmV3U3RhdGU7CiAgICAgICAgICAgICAgICAgICAgIGlmIChoYXNTdHJpbmdQcm9w
ZXJ0eSB8fCBoYXNJbmRleGVkUHJvcGVydHkpCiAgICAgICAgICAgICAgICAgICAgICAgICBtX3By
b3BlcnR5TmFtZSA9IHByb3BlcnR5TmFtZTsKICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CkBA
IC01MzAsMTIgKzc0OSwyOCBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgIG1fcHJvcGVydHlO
YW1lLkNsZWFyKCk7CiAgICAgICAgICAgICAgICAgKyttX2luZGV4OwogICAgICAgICAgICAgICAg
ICsrbV9udW1TZXJpYWxpemVkUHJvcGVydGllczsKKyAgICAgICAgICAgICAgICAvLyBtX3Nlcmlh
bGl6aW5nQWNjZXNzb3IgaXMgdXNlZCBhbG9uZyB3aXRoIGV4ZWNEZXB0aCgpIHRvIGRldGVybWlu
ZSB0aGUgbnVtYmVyIG9mCisgICAgICAgICAgICAgICAgLy8gYWNjZXNzb3JzIHVuZGVyIHdoaWNo
IHRoZSBzZXJpYWxpemVyIGlzIGN1cnJlbnRseSBzZXJpYWxpemluZy4gVGhlIHNlcmlhbGl6ZXIn
cworICAgICAgICAgICAgICAgIC8vIGFjY2Vzc29yIGxldmVsIGNvdW50IGlzIG1haW50YWluZWQg
YXQgU2VyaWFsaXplcjo6cHVzaCBhbmQgU2VyaWFsaXplcjo6cG9wCisgICAgICAgICAgICAgICAg
Ly8gYW5kIGlzIGNoZWNrZWQgdXBvbiBlbnRyeSBpbiBTZXJpYWxpemVyOjpkb1NlcmlhbGl6ZS4K
KyAgICAgICAgICAgICAgICBtX3NlcmlhbGl6aW5nQWNjZXNzb3IgPSBpc0FjY2Vzc29yOworICAg
ICAgICAgICAgICAgIC8vIElmIHdlIHJldHVybiBlYXJseSBoZXJlLCBpdCdzIGVpdGhlciBiZWNh
dXNlIHdlIGhhdmUgcHVzaGVkIGEgbmV3IHN0YXRlIG9udG8gdGhlCisgICAgICAgICAgICAgICAg
Ly8gc2VyaWFsaXphdGlvbiBzdGF0ZSBzdGFjayBvciBiZWNhdXNlIHdlIGhhdmUgZW5jb3VudGVy
ZWQgYW4gZXJyb3IgKGFuZCBpbiBib3RoIGNhc2VzCisgICAgICAgICAgICAgICAgLy8gd2UgYXJl
IHVud2luZGluZyB0aGUgbmF0aXZlIHN0YWNrKS4gV2UgcmVzZXQgbV9zZXJpYWxpemluZ0FjY2Vz
c29yIGF0IHRoZSBiZWdpbm5pbmcKKyAgICAgICAgICAgICAgICAvLyBvZiBhZHZhbmNlKCkgZm9y
IHRoaXMgY2FzZSAoYmVjYXVzZSBhZHZhbmNlKCkgd2lsbCBiZSBjYWxsZWQgb24gdXMgYWdhaW4g
b25jZSB3ZQorICAgICAgICAgICAgICAgIC8vIGFyZSB0aGUgdG9wIG9mIHRoZSBzdGFjaykuCiAg
ICAgICAgICAgICAgICAgaWYgKFN0YXRlQmFzZSogbmV3U3RhdGUgPSBzZXJpYWxpemVyLmRvU2Vy
aWFsaXplKHZhbHVlLCB0aGlzKSkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ld1N0YXRl
OworICAgICAgICAgICAgICAgIC8vIFRoaXMgbV9zZXJpYWxpemluZ0FjY2Vzc29yIHJlc2V0IGlz
IG5lY2Vzc2FyeSBmb3IgdGhvc2UgdGltZXMgd2hlbiB3ZSBhcmUgc2VyaWFsaXppbmcKKyAgICAg
ICAgICAgICAgICAvLyBhbiBhY2Nlc3NvcidzIHJlc3VsdCwgYnV0IHRoYXQgcmVzdWx0IGRvZXMg
bm90IG5lZWQgYSBuZXcgc3RhdGUgdG8gYmUgcHVzaGVkIChiZWNhdXNlCisgICAgICAgICAgICAg
ICAgLy8gaXQgaXMgZmxhdCwgbGlrZSBhIHN0cmluZykuCisgICAgICAgICAgICAgICAgbV9zZXJp
YWxpemluZ0FjY2Vzc29yID0gZmFsc2U7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICByZXR1
cm4gb2JqZWN0RG9uZShtX251bVNlcmlhbGl6ZWRQcm9wZXJ0aWVzLCBzZXJpYWxpemVyKTsKICAg
ICAgICAgfQogCisgICAgICAgIHZpcnR1YWwgdWludDMyX3QgZXhlY0RlcHRoKCkgY29uc3QgeyBy
ZXR1cm4gbV9zZXJpYWxpemluZ0FjY2Vzc29yID8gMSA6IDA7IH0KKwogICAgIHByb3RlY3RlZDoK
ICAgICAgICAgdmlydHVhbCBTdGF0ZUJhc2UqIG9iamVjdERvbmUodW5zaWduZWQgbnVtUHJvcGVy
dGllcywgU2VyaWFsaXplciYpID0gMDsKIApAQCAtNTQ1LDYgKzc4MCw3IEBAIHByaXZhdGU6CiAg
ICAgICAgIHVuc2lnbmVkIG1faW5kZXg7CiAgICAgICAgIHVuc2lnbmVkIG1fbnVtU2VyaWFsaXpl
ZFByb3BlcnRpZXM7CiAgICAgICAgIGJvb2wgbV9uYW1lRG9uZTsKKyAgICAgICAgYm9vbCBtX3Nl
cmlhbGl6aW5nQWNjZXNzb3I7CiAgICAgfTsKIAogICAgIGNsYXNzIE9iamVjdFN0YXRlIDogcHVi
bGljIEFic3RyYWN0T2JqZWN0U3RhdGUgewpAQCAtNTc1LDkgKzgxMSwxNiBAQCBwcml2YXRlOgog
ICAgICAgICB9CiAgICAgfTsKIAorICAgIHVpbnQzMl90IGV4ZWNEZXB0aCgpIGNvbnN0CisgICAg
eworICAgICAgICByZXR1cm4gbV9leGVjRGVwdGg7CisgICAgfQorCiAgICAgU3RhdGVCYXNlKiBw
dXNoKFN0YXRlQmFzZSogc3RhdGUpCiAgICAgewogICAgICAgICBBU1NFUlQoc3RhdGUpOworICAg
ICAgICBpZiAoc3RhdGUtPm5leHRTdGF0ZSgpKQorICAgICAgICAgICAgbV9leGVjRGVwdGggKz0g
c3RhdGUtPm5leHRTdGF0ZSgpLT5leGVjRGVwdGgoKTsKICAgICAgICAgKyttX2RlcHRoOwogICAg
ICAgICByZXR1cm4gY2hlY2tDb21wb3NpdGUoc3RhdGUpID8gc3RhdGUgOiBoYW5kbGVFcnJvcihJ
bnB1dEVycm9yLCBzdGF0ZSk7CiAgICAgfQpAQCAtNTg3LDYgKzgzMCw4IEBAIHByaXZhdGU6CiAg
ICAgICAgIEFTU0VSVChzdGF0ZSk7CiAgICAgICAgIC0tbV9kZXB0aDsKICAgICAgICAgU3RhdGVC
YXNlKiBuZXh0ID0gc3RhdGUtPm5leHRTdGF0ZSgpOworICAgICAgICBpZiAobmV4dCkKKyAgICAg
ICAgICAgIG1fZXhlY0RlcHRoIC09IG5leHQtPmV4ZWNEZXB0aCgpOwogICAgICAgICBkZWxldGUg
c3RhdGU7CiAgICAgICAgIHJldHVybiBuZXh0OwogICAgIH0KQEAgLTU5OSw2ICs4NDQsOCBAQCBw
cml2YXRlOgogICAgICAgICAgICAgU3RhdGVCYXNlKiB0bXAgPSBzdGF0ZS0+bmV4dFN0YXRlKCk7
CiAgICAgICAgICAgICBkZWxldGUgc3RhdGU7CiAgICAgICAgICAgICBzdGF0ZSA9IHRtcDsKKyAg
ICAgICAgICAgIGlmIChzdGF0ZSkKKyAgICAgICAgICAgICAgICBtX2V4ZWNEZXB0aCAtPSBzdGF0
ZS0+ZXhlY0RlcHRoKCk7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIG5ldyBFcnJvclN0YXRl
OwogICAgIH0KQEAgLTY2Myw2ICs5MTAsMzkgQEAgcHJpdmF0ZToKICAgICAgICAgbV93cml0ZXIu
d3JpdGVSZWdFeHAocmVnRXhwLT5HZXRTb3VyY2UoKSwgcmVnRXhwLT5HZXRGbGFncygpKTsKICAg
ICB9CiAKKyAgICBTdGF0ZUJhc2UqIHdyaXRlQW5kR3JleUFycmF5QnVmZmVyVmlldyh2ODo6SGFu
ZGxlPHY4OjpPYmplY3Q+IG9iamVjdCwgU3RhdGVCYXNlKiBuZXh0KQorICAgIHsKKyAgICAgICAg
QVNTRVJUKCFvYmplY3QuSXNFbXB0eSgpKTsKKyAgICAgICAgQXJyYXlCdWZmZXJWaWV3KiBhcnJh
eUJ1ZmZlclZpZXcgPSBWOEFycmF5QnVmZmVyVmlldzo6dG9OYXRpdmUob2JqZWN0KTsKKyAgICAg
ICAgaWYgKCFhcnJheUJ1ZmZlclZpZXcpCisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAg
djg6OkhhbmRsZTx2ODo6VmFsdWU+IHVuZGVybHlpbmdCdWZmZXIgPSB0b1Y4KGFycmF5QnVmZmVy
Vmlldy0+YnVmZmVyKCkpOworICAgICAgICBpZiAodW5kZXJseWluZ0J1ZmZlci5Jc0VtcHR5KCkp
CisgICAgICAgICAgICByZXR1cm4gaGFuZGxlRXJyb3IoRGF0YUNsb25lRXJyb3IsIG5leHQpOwor
ICAgICAgICBTdGF0ZUJhc2UqIHN0YXRlT3V0ID0gZG9TZXJpYWxpemUodW5kZXJseWluZ0J1ZmZl
ciwgMCk7CisgICAgICAgIGlmIChzdGF0ZU91dCkKKyAgICAgICAgICAgIHJldHVybiBoYW5kbGVF
cnJvcihEYXRhQ2xvbmVFcnJvciwgbmV4dCk7CisgICAgICAgIG1fd3JpdGVyLndyaXRlQXJyYXlC
dWZmZXJWaWV3KCphcnJheUJ1ZmZlclZpZXcpOworICAgICAgICAvLyBUaGlzIHNob3VsZCBiZSBz
YWZlOiB3ZSBzZXJpYWxpemUgc29tZXRoaW5nIHRoYXQgd2Uga25vdyB0byBiZSBhIHdyYXBwZXIg
KHNlZQorICAgICAgICAvLyB0aGUgdG9WOCBjYWxsIGFib3ZlKSwgc28gdGhlIGNhbGwgdG8gZG9T
ZXJpYWxpemUgYWJvdmUgc2hvdWxkIG5laXRoZXIgY2F1c2UKKyAgICAgICAgLy8gdGhlIHN0YWNr
IHRvIG92ZXJmbG93IG5vciBzaG91bGQgaXQgaGF2ZSB0aGUgcG90ZW50aWFsIHRvIHJlYWNoIHRo
aXMKKyAgICAgICAgLy8gQXJyYXlCdWZmZXJWaWV3IGFnYWluLiBXZSBkbyBuZWVkIHRvIGdyZXkg
dGhlIHVuZGVybHlpbmcgYnVmZmVyIGJlZm9yZSB3ZSBncmV5CisgICAgICAgIC8vIGl0cyB2aWV3
LCBob3dldmVyOyBBcnJheUJ1ZmZlcnMgbWF5IGJlIHNoYXJlZCwgc28gdGhleSBuZWVkIHRvIGJl
IGdpdmVuIElEcywKKyAgICAgICAgLy8gYW5kIGFuIEFycmF5QnVmZmVyVmlldyBjYW5ub3QgYmUg
Y29uc3RydWN0ZWQgd2l0aG91dCBhIGNvcnJlc3BvbmRpbmcgQXJyYXlCdWZmZXIKKyAgICAgICAg
Ly8gKG9yIHdpdGhvdXQgYW4gYWRkaXRpb25hbCB0YWcgdGhhdCB3b3VsZCBhbGxvdyB1cyB0byBk
byB0d28tc3RhZ2UgY29uc3RydWN0aW9uCisgICAgICAgIC8vIGxpa2Ugd2UgZG8gZm9yIE9iamVj
dHMgYW5kIEFycmF5cykuCisgICAgICAgIGdyZXlPYmplY3Qob2JqZWN0KTsKKyAgICAgICAgcmV0
dXJuIDA7CisgICAgfQorCisgICAgdm9pZCB3cml0ZUFycmF5QnVmZmVyKHY4OjpIYW5kbGU8djg6
OlZhbHVlPiB2YWx1ZSkKKyAgICB7CisgICAgICAgIEFycmF5QnVmZmVyKiBhcnJheUJ1ZmZlciA9
IFY4QXJyYXlCdWZmZXI6OnRvTmF0aXZlKHZhbHVlLkFzPHY4OjpPYmplY3Q+KCkpOworICAgICAg
ICBpZiAoIWFycmF5QnVmZmVyKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBtX3dyaXRl
ci53cml0ZUFycmF5QnVmZmVyKCphcnJheUJ1ZmZlcik7CisgICAgfQorCiAgICAgc3RhdGljIFN0
YXRlQmFzZSogbmV3QXJyYXlTdGF0ZSh2ODo6SGFuZGxlPHY4OjpBcnJheT4gYXJyYXksIFN0YXRl
QmFzZSogbmV4dCkKICAgICB7CiAgICAgICAgIC8vIEZJWE1FOiB1c2UgcGxhaW4gQXJyYXkgc3Rh
dGUgd2hlbiB3ZSBjYW4gcXVpY2tseSBjaGVjayB0aGF0CkBAIC02NzYsMTcgKzk1Niw0MiBAQCBw
cml2YXRlOgogICAgICAgICByZXR1cm4gbmV3IE9iamVjdFN0YXRlKG9iamVjdCwgbmV4dCk7CiAg
ICAgfQogCisgICAgLy8gTWFya3Mgb2JqZWN0IGFzIGhhdmluZyBiZWVuIHZpc2l0ZWQgYnkgdGhl
IHNlcmlhbGl6ZXIgYW5kIGFzc2lnbnMgaXQgYSB1bmlxdWUgb2JqZWN0IElELgorICAgIC8vIEFu
IG9iamVjdCBtYXkgb25seSBiZSBncmV5ZWQgb25jZS4KKyAgICB2b2lkIGdyZXlPYmplY3QoY29u
c3Qgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiYgb2JqZWN0KQorICAgIHsKKyAgICAgICAgQVNTRVJU
KCFtX29iamVjdFBvb2wuY29udGFpbnMob2JqZWN0KSk7CisgICAgICAgIHVpbnQzMl90IG9iamVj
dElkID0gbV9uZXh0T2JqZWN0SWQrKzsKKyAgICAgICAgbV9vYmplY3RQb29sLnNldChvYmplY3Qs
IG9iamVjdElkKTsKKyAgICB9CisKICAgICBXcml0ZXImIG1fd3JpdGVyOwogICAgIHY4OjpUcnlD
YXRjaCYgbV90cnlDYXRjaDsKICAgICBpbnQgbV9kZXB0aDsKKyAgICBpbnQgbV9leGVjRGVwdGg7
CiAgICAgU3RhdHVzIG1fc3RhdHVzOworICAgIHR5cGVkZWYgVjhPYmplY3RNYXA8djg6Ok9iamVj
dCwgdWludDMyX3Q+IE9iamVjdFBvb2w7CisgICAgT2JqZWN0UG9vbCBtX29iamVjdFBvb2w7Cisg
ICAgdWludDMyX3QgbV9uZXh0T2JqZWN0SWQ7CiB9OwogCiBTZXJpYWxpemVyOjpTdGF0ZUJhc2Uq
IFNlcmlhbGl6ZXI6OmRvU2VyaWFsaXplKHY4OjpIYW5kbGU8djg6OlZhbHVlPiB2YWx1ZSwgU3Rh
dGVCYXNlKiBuZXh0KQogewotICAgIGlmICh2YWx1ZS5Jc0VtcHR5KCkpCisgICAgaWYgKG1fZXhl
Y0RlcHRoICsgKG5leHQgPyBuZXh0LT5leGVjRGVwdGgoKSA6IDApID4gMSkgeworICAgICAgICBt
X3dyaXRlci53cml0ZU51bGwoKTsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorICAgIG1fd3Jp
dGVyLndyaXRlQ2hlY2tSZWYobV9uZXh0T2JqZWN0SWQpOworICAgIHVpbnQzMl90IG9iamVjdElk
OworICAgIGlmICgodmFsdWUtPklzT2JqZWN0KCkgfHwgdmFsdWUtPklzRGF0ZSgpIHx8IHZhbHVl
LT5Jc1JlZ0V4cCgpKQorICAgICAgICAmJiBtX29iamVjdFBvb2wudHJ5R2V0KHZhbHVlLkFzPHY4
OjpPYmplY3Q+KCksICZvYmplY3RJZCkpIHsKKyAgICAgICAgLy8gTm90ZSB0aGF0IElzT2JqZWN0
KCkgYWxzbyBkZXRlY3RzIHdyYXBwZXJzIChlZywgaXQgd2lsbCBjYXRjaCB0aGUgdGhpbmdzCisg
ICAgICAgIC8vIHRoYXQgd2UgZ3JleSBhbmQgd3JpdGUgYmVsb3cpLgorICAgICAgICBBU1NFUlQo
IXZhbHVlLT5Jc1N0cmluZygpKTsKKyAgICAgICAgbV93cml0ZXIud3JpdGVPYmplY3RPZmZzZXQo
b2JqZWN0SWQpOworICAgIH0gZWxzZSBpZiAodmFsdWUuSXNFbXB0eSgpKQogICAgICAgICByZXR1
cm4gcmVwb3J0RmFpbHVyZShuZXh0KTsKLSAgICBpZiAodmFsdWUtPklzVW5kZWZpbmVkKCkpCisg
ICAgZWxzZSBpZiAodmFsdWUtPklzVW5kZWZpbmVkKCkpCiAgICAgICAgIG1fd3JpdGVyLndyaXRl
VW5kZWZpbmVkKCk7CiAgICAgZWxzZSBpZiAodmFsdWUtPklzTnVsbCgpKQogICAgICAgICBtX3dy
aXRlci53cml0ZU51bGwoKTsKQEAgLTY5OCwyNiArMTAwMyw0MyBAQCBTZXJpYWxpemVyOjpTdGF0
ZUJhc2UqIFNlcmlhbGl6ZXI6OmRvU2VyaWFsaXplKHY4OjpIYW5kbGU8djg6OlZhbHVlPiB2YWx1
ZSwgU3RhdAogICAgICAgICBtX3dyaXRlci53cml0ZUludDMyKHZhbHVlLT5JbnQzMlZhbHVlKCkp
OwogICAgIGVsc2UgaWYgKHZhbHVlLT5Jc1VpbnQzMigpKQogICAgICAgICBtX3dyaXRlci53cml0
ZVVpbnQzMih2YWx1ZS0+VWludDMyVmFsdWUoKSk7Ci0gICAgZWxzZSBpZiAodmFsdWUtPklzRGF0
ZSgpKQotICAgICAgICBtX3dyaXRlci53cml0ZURhdGUodmFsdWUtPk51bWJlclZhbHVlKCkpOwog
ICAgIGVsc2UgaWYgKHZhbHVlLT5Jc051bWJlcigpKQogICAgICAgICBtX3dyaXRlci53cml0ZU51
bWJlcih2YWx1ZS5Bczx2ODo6TnVtYmVyPigpLT5WYWx1ZSgpKTsKKyAgICBlbHNlIGlmIChWOEFy
cmF5QnVmZmVyVmlldzo6SGFzSW5zdGFuY2UodmFsdWUpKQorICAgICAgICByZXR1cm4gd3JpdGVB
bmRHcmV5QXJyYXlCdWZmZXJWaWV3KHZhbHVlLkFzPHY4OjpPYmplY3Q+KCksIG5leHQpOwogICAg
IGVsc2UgaWYgKHZhbHVlLT5Jc1N0cmluZygpKQogICAgICAgICB3cml0ZVN0cmluZyh2YWx1ZSk7
Ci0gICAgZWxzZSBpZiAodmFsdWUtPklzQXJyYXkoKSkKLSAgICAgICAgcmV0dXJuIHB1c2gobmV3
QXJyYXlTdGF0ZSh2YWx1ZS5Bczx2ODo6QXJyYXk+KCksIG5leHQpKTsKLSAgICBlbHNlIGlmIChW
OEZpbGU6Okhhc0luc3RhbmNlKHZhbHVlKSkKLSAgICAgICAgd3JpdGVGaWxlKHZhbHVlKTsKLSAg
ICBlbHNlIGlmIChWOEJsb2I6Okhhc0luc3RhbmNlKHZhbHVlKSkKLSAgICAgICAgd3JpdGVCbG9i
KHZhbHVlKTsKLSAgICBlbHNlIGlmIChWOEZpbGVMaXN0OjpIYXNJbnN0YW5jZSh2YWx1ZSkpCi0g
ICAgICAgIHdyaXRlRmlsZUxpc3QodmFsdWUpOwotICAgIGVsc2UgaWYgKFY4SW1hZ2VEYXRhOjpI
YXNJbnN0YW5jZSh2YWx1ZSkpCi0gICAgICAgIHdyaXRlSW1hZ2VEYXRhKHZhbHVlKTsKLSAgICBl
bHNlIGlmICh2YWx1ZS0+SXNSZWdFeHAoKSkKLSAgICAgICAgd3JpdGVSZWdFeHAodmFsdWUpOwot
ICAgIGVsc2UgaWYgKHZhbHVlLT5Jc09iamVjdCgpKQotICAgICAgICByZXR1cm4gcHVzaChuZXdP
YmplY3RTdGF0ZSh2YWx1ZS5Bczx2ODo6T2JqZWN0PigpLCBuZXh0KSk7CisgICAgZWxzZSB7Cisg
ICAgICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4ganNPYmplY3QgPSB2YWx1ZS5Bczx2ODo6T2Jq
ZWN0PigpOworICAgICAgICBpZiAoanNPYmplY3QuSXNFbXB0eSgpKQorICAgICAgICAgICAgcmV0
dXJuIGhhbmRsZUVycm9yKERhdGFDbG9uZUVycm9yLCBuZXh0KTsKKyAgICAgICAgZ3JleU9iamVj
dChqc09iamVjdCk7CisgICAgICAgIGlmICh2YWx1ZS0+SXNEYXRlKCkpCisgICAgICAgICAgICBt
X3dyaXRlci53cml0ZURhdGUodmFsdWUtPk51bWJlclZhbHVlKCkpOworICAgICAgICBlbHNlIGlm
ICh2YWx1ZS0+SXNBcnJheSgpKSB7CisgICAgICAgICAgICBtX3dyaXRlci53cml0ZUdlbmVyYXRl
RnJlc2hBcnJheSh2YWx1ZS5Bczx2ODo6QXJyYXk+KCktPkxlbmd0aCgpKTsKKyAgICAgICAgICAg
IHJldHVybiBwdXNoKG5ld0FycmF5U3RhdGUodmFsdWUuQXM8djg6OkFycmF5PigpLCBuZXh0KSk7
CisgICAgICAgIH0gZWxzZSBpZiAoVjhGaWxlOjpIYXNJbnN0YW5jZSh2YWx1ZSkpCisgICAgICAg
ICAgICB3cml0ZUZpbGUodmFsdWUpOworICAgICAgICBlbHNlIGlmIChWOEJsb2I6Okhhc0luc3Rh
bmNlKHZhbHVlKSkKKyAgICAgICAgICAgIHdyaXRlQmxvYih2YWx1ZSk7CisgICAgICAgIGVsc2Ug
aWYgKFY4RmlsZUxpc3Q6Okhhc0luc3RhbmNlKHZhbHVlKSkKKyAgICAgICAgICAgIHdyaXRlRmls
ZUxpc3QodmFsdWUpOworICAgICAgICBlbHNlIGlmIChWOEltYWdlRGF0YTo6SGFzSW5zdGFuY2Uo
dmFsdWUpKQorICAgICAgICAgICAgd3JpdGVJbWFnZURhdGEodmFsdWUpOworICAgICAgICBlbHNl
IGlmICh2YWx1ZS0+SXNSZWdFeHAoKSkKKyAgICAgICAgICAgIHdyaXRlUmVnRXhwKHZhbHVlKTsK
KyAgICAgICAgZWxzZSBpZiAoVjhBcnJheUJ1ZmZlcjo6SGFzSW5zdGFuY2UodmFsdWUpKQorICAg
ICAgICAgICAgd3JpdGVBcnJheUJ1ZmZlcih2YWx1ZSk7CisgICAgICAgIGVsc2UgaWYgKHZhbHVl
LT5Jc09iamVjdCgpKSB7CisgICAgICAgICAgICAvLyBGSVhNRTogV2UgbmVlZCB0byBjaGVjayBp
ZiBqc09iamVjdCBpcyBhICduYXRpdmUgRXJyb3InIGFuZCBpZiBzbyB0aHJvdyBhIERhdGFDbG9u
ZUVycm9yLgorICAgICAgICAgICAgaWYgKGlzSG9zdE9iamVjdChqc09iamVjdCkgfHwganNPYmpl
Y3QtPklzQ2FsbGFibGUoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gaGFuZGxlRXJyb3IoRGF0
YUNsb25lRXJyb3IsIG5leHQpOworICAgICAgICAgICAgbV93cml0ZXIud3JpdGVHZW5lcmF0ZUZy
ZXNoT2JqZWN0KCk7CisgICAgICAgICAgICByZXR1cm4gcHVzaChuZXdPYmplY3RTdGF0ZShqc09i
amVjdCwgbmV4dCkpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIHJldHVybiBoYW5kbGVF
cnJvcihEYXRhQ2xvbmVFcnJvciwgbmV4dCk7CisgICAgfQogICAgIHJldHVybiAwOwogfQogCkBA
IC03MjYsOSArMTA0OCwxNSBAQCBjbGFzcyBDb21wb3NpdGVDcmVhdG9yIHsKIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIH5Db21wb3NpdGVDcmVhdG9yKCkgeyB9CiAKLSAgICB2aXJ0dWFsIGJvb2wgY3Jl
YXRlQXJyYXkodWludDMyX3QgbGVuZ3RoLCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4qIHZhbHVlKSA9
IDA7Ci0gICAgdmlydHVhbCBib29sIGNyZWF0ZU9iamVjdCh1aW50MzJfdCBudW1Qcm9wZXJ0aWVz
LCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4qIHZhbHVlKSA9IDA7Ci0gICAgdmlydHVhbCBib29sIGNy
ZWF0ZVNwYXJzZUFycmF5KHVpbnQzMl90IG51bVByb3BlcnRpZXMsIHVpbnQzMl90IGxlbmd0aCwg
djg6OkhhbmRsZTx2ODo6VmFsdWU+KiB2YWx1ZSkgPSAwOworICAgIHZpcnR1YWwgYm9vbCBjb25z
dW1lVG9wT2ZTdGFjayh2ODo6SGFuZGxlPHY4OjpWYWx1ZT4qKSA9IDA7CisgICAgdmlydHVhbCB1
aW50MzJfdCBvYmplY3RSZWZlcmVuY2VDb3VudCgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcHVz
aE9iamVjdFJlZmVyZW5jZShjb25zdCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4mKSA9IDA7CisgICAg
dmlydHVhbCBib29sIHRyeUdldE9iamVjdEZyb21PYmplY3RSZWZlcmVuY2UodWludDMyX3QgcmVm
LCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4qKSA9IDA7CisgICAgdmlydHVhbCBib29sIG5ld0FycmF5
KHVpbnQzMl90IGxlbmd0aCkgPSAwOworICAgIHZpcnR1YWwgYm9vbCBuZXdPYmplY3QoKSA9IDA7
CisgICAgdmlydHVhbCBib29sIGNvbXBsZXRlQXJyYXkodWludDMyX3QgbGVuZ3RoLCB2ODo6SGFu
ZGxlPHY4OjpWYWx1ZT4qKSA9IDA7CisgICAgdmlydHVhbCBib29sIGNvbXBsZXRlT2JqZWN0KHVp
bnQzMl90IG51bVByb3BlcnRpZXMsIHY4OjpIYW5kbGU8djg6OlZhbHVlPiopID0gMDsKKyAgICB2
aXJ0dWFsIGJvb2wgY29tcGxldGVTcGFyc2VBcnJheSh1aW50MzJfdCBudW1Qcm9wZXJ0aWVzLCB1
aW50MzJfdCBsZW5ndGgsIHY4OjpIYW5kbGU8djg6OlZhbHVlPiopID0gMDsKIH07CiAKIC8vIFJl
YWRlciBpcyByZXNwb25zaWJsZSBmb3IgZGVzZXJpYWxpemluZyBwcmltaXRpdmUgdHlwZXMgYW5k
CkBAIC03MzksNiArMTA2Nyw3IEBAIHB1YmxpYzoKICAgICAgICAgOiBtX2J1ZmZlcihidWZmZXIp
CiAgICAgICAgICwgbV9sZW5ndGgobGVuZ3RoKQogICAgICAgICAsIG1fcG9zaXRpb24oMCkKKyAg
ICAgICAgLCBtX3ZlcnNpb24oMCkKICAgICB7CiAgICAgICAgIEFTU0VSVChsZW5ndGggPj0gMCk7
CiAgICAgfQpAQCAtNzUxLDYgKzEwODAsMTkgQEAgcHVibGljOgogICAgICAgICBpZiAoIXJlYWRU
YWcoJnRhZykpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIHN3aXRjaCAodGFn
KSB7CisgICAgICAgIGNhc2UgQ2hlY2tSZWZUYWc6IHsKKyAgICAgICAgICAgIGlmIChtX3ZlcnNp
b24gPD0gMCkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB1aW50
MzJfdCByZWZUYWJsZVNpemU7CisgICAgICAgICAgICBpZiAoIWRvUmVhZFVpbnQzMigmcmVmVGFi
bGVTaXplKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAvLyBJ
ZiB0aGlzIHRlc3QgZmFpbHMsIHRoZW4gdGhlIHNlcmlhbGl6ZXIgYW5kIGRlc2VyaWFsaXplciBk
aXNhZ3JlZSBhYm91dCB0aGUgYXNzaWdubWVudAorICAgICAgICAgICAgLy8gb2Ygb2JqZWN0IElE
cy4gT24gdGhlIGRlc2VyaWFsaXphdGlvbiBzaWRlLCB0aGlzIG1lYW5zIHRoZXJlIGFyZSB0b28g
bWFueSBvciB0b28gZmV3CisgICAgICAgICAgICAvLyBjYWxscyB0byBwdXNoT2JqZWN0UmVmZXJl
bmNlLgorICAgICAgICAgICAgaWYgKHJlZlRhYmxlU2l6ZSAhPSBjcmVhdG9yLm9iamVjdFJlZmVy
ZW5jZUNvdW50KCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAg
cmV0dXJuIHRydWU7CisgICAgICAgIH0KICAgICAgICAgY2FzZSBJbnZhbGlkVGFnOgogICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICBjYXNlIFBhZGRpbmdUYWc6CkBAIC03ODIsNiAr
MTEyNCw3IEBAIHB1YmxpYzoKICAgICAgICAgY2FzZSBEYXRlVGFnOgogICAgICAgICAgICAgaWYg
KCFyZWFkRGF0ZSh2YWx1ZSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAg
ICAgICAgY3JlYXRvci5wdXNoT2JqZWN0UmVmZXJlbmNlKCp2YWx1ZSk7CiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgY2FzZSBOdW1iZXJUYWc6CiAgICAgICAgICAgICBpZiAoIXJlYWROdW1i
ZXIodmFsdWUpKQpAQCAtNzkwLDM2ICsxMTMzLDQxIEBAIHB1YmxpYzoKICAgICAgICAgY2FzZSBC
bG9iVGFnOgogICAgICAgICAgICAgaWYgKCFyZWFkQmxvYih2YWx1ZSkpCiAgICAgICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgY3JlYXRvci5wdXNoT2JqZWN0UmVmZXJlbmNl
KCp2YWx1ZSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBGaWxlVGFnOgogICAg
ICAgICAgICAgaWYgKCFyZWFkRmlsZSh2YWx1ZSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgICAgICAgICAgY3JlYXRvci5wdXNoT2JqZWN0UmVmZXJlbmNlKCp2YWx1ZSk7CiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBGaWxlTGlzdFRhZzoKICAgICAgICAgICAg
IGlmICghcmVhZEZpbGVMaXN0KHZhbHVlKSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgICAgICAgICBjcmVhdG9yLnB1c2hPYmplY3RSZWZlcmVuY2UoKnZhbHVlKTsKICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEltYWdlRGF0YVRhZzoKICAgICAgICAgICAgIGlm
ICghcmVhZEltYWdlRGF0YSh2YWx1ZSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgICAgICAgICAgY3JlYXRvci5wdXNoT2JqZWN0UmVmZXJlbmNlKCp2YWx1ZSk7CiAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgY2FzZSBBcnJheVRhZzogewogICAgICAgICAgICAgdWludDMy
X3QgbGVuZ3RoOwogICAgICAgICAgICAgaWYgKCFkb1JlYWRVaW50MzIoJmxlbmd0aCkpCiAgICAg
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgaWYgKCFjcmVhdG9yLmNyZWF0
ZUFycmF5KGxlbmd0aCwgdmFsdWUpKQorICAgICAgICAgICAgaWYgKCFjcmVhdG9yLmNvbXBsZXRl
QXJyYXkobGVuZ3RoLCB2YWx1ZSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBSZWdFeHBUYWc6CiAgICAg
ICAgICAgICBpZiAoIXJlYWRSZWdFeHAodmFsdWUpKQogICAgICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICAgICAgICAgIGNyZWF0b3IucHVzaE9iamVjdFJlZmVyZW5jZSgqdmFsdWUpOwog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgT2JqZWN0VGFnOiB7CiAgICAgICAgICAg
ICB1aW50MzJfdCBudW1Qcm9wZXJ0aWVzOwogICAgICAgICAgICAgaWYgKCFkb1JlYWRVaW50MzIo
Jm51bVByb3BlcnRpZXMpKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAg
ICAgIGlmICghY3JlYXRvci5jcmVhdGVPYmplY3QobnVtUHJvcGVydGllcywgdmFsdWUpKQorICAg
ICAgICAgICAgaWYgKCFjcmVhdG9yLmNvbXBsZXRlT2JqZWN0KG51bVByb3BlcnRpZXMsIHZhbHVl
KSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgfQpAQCAtODMwLDcgKzExNzgsNTAgQEAgcHVibGljOgogICAgICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICAgICAgICAgIGlmICghZG9SZWFkVWludDMyKCZsZW5ndGgpKQogICAg
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAgIGlmICghY3JlYXRvci5jcmVh
dGVTcGFyc2VBcnJheShudW1Qcm9wZXJ0aWVzLCBsZW5ndGgsIHZhbHVlKSkKKyAgICAgICAgICAg
IGlmICghY3JlYXRvci5jb21wbGV0ZVNwYXJzZUFycmF5KG51bVByb3BlcnRpZXMsIGxlbmd0aCwg
dmFsdWUpKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICB9CisgICAgICAgIGNhc2UgQXJyYXlCdWZmZXJWaWV3VGFnOiB7CisgICAgICAg
ICAgICBpZiAobV92ZXJzaW9uIDw9IDApCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgICAgICAgICAgaWYgKCFyZWFkQXJyYXlCdWZmZXJWaWV3KHZhbHVlLCBjcmVhdG9yKSkKKyAg
ICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBjcmVhdG9yLnB1c2hPYmpl
Y3RSZWZlcmVuY2UoKnZhbHVlKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAg
ICAgIGNhc2UgQXJyYXlCdWZmZXJUYWc6IHsKKyAgICAgICAgICAgIGlmIChtX3ZlcnNpb24gPD0g
MCkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBpZiAoIXJlYWRB
cnJheUJ1ZmZlcih2YWx1ZSkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAg
ICAgICAgY3JlYXRvci5wdXNoT2JqZWN0UmVmZXJlbmNlKCp2YWx1ZSk7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgfQorICAgICAgICBjYXNlIEdlbmVyYXRlRnJlc2hPYmplY3RUYWc6IHsK
KyAgICAgICAgICAgIGlmIChtX3ZlcnNpb24gPD0gMCkKKyAgICAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgICAgICAgICBpZiAoIWNyZWF0b3IubmV3T2JqZWN0KCkpCisgICAgICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0K
KyAgICAgICAgY2FzZSBHZW5lcmF0ZUZyZXNoQXJyYXlUYWc6IHsKKyAgICAgICAgICAgIGlmICht
X3ZlcnNpb24gPD0gMCkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAg
ICB1aW50MzJfdCBsZW5ndGg7CisgICAgICAgICAgICBpZiAoIWRvUmVhZFVpbnQzMigmbGVuZ3Ro
KSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBpZiAoIWNyZWF0
b3IubmV3QXJyYXkobGVuZ3RoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBjYXNlIE9iamVjdFJlZmVy
ZW5jZVRhZzogeworICAgICAgICAgICAgaWYgKG1fdmVyc2lvbiA8PSAwKQorICAgICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIHVpbnQzMl90IHJlZjsKKyAgICAgICAgICAg
IGlmICghZG9SZWFkVWludDMyKCZyZWYpKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICAgICAgICAgIGlmICghY3JlYXRvci50cnlHZXRPYmplY3RGcm9tT2JqZWN0UmVmZXJlbmNl
KHJlZiwgdmFsdWUpKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICB9CkBAIC04NDAsNiArMTIzMSwzMCBAQCBwdWJsaWM6CiAgICAgICAg
IHJldHVybiAhdmFsdWUtPklzRW1wdHkoKTsKICAgICB9CiAKKyAgICBib29sIHJlYWRWZXJzaW9u
KHVpbnQzMl90JiB2ZXJzaW9uKQorICAgIHsKKyAgICAgICAgU2VyaWFsaXphdGlvblRhZyB0YWc7
CisgICAgICAgIGlmICghcmVhZFRhZygmdGFnKSkgeworICAgICAgICAgICAgLy8gVGhpcyBpcyBh
IG51bGxhcnkgYnVmZmVyLiBXZSdyZSBzdGlsbCB2ZXJzaW9uIDAuCisgICAgICAgICAgICB2ZXJz
aW9uID0gMDsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIGlm
ICh0YWcgIT0gVmVyc2lvblRhZykgeworICAgICAgICAgICAgLy8gVmVyc2lvbnMgb2YgdGhlIGZv
cm1hdCBwYXN0IDAgc3RhcnQgd2l0aCB0aGUgdmVyc2lvbiB0YWcuCisgICAgICAgICAgICB2ZXJz
aW9uID0gMDsKKyAgICAgICAgICAgIC8vIFB1dCBiYWNrIHRoZSB0YWcuCisgICAgICAgICAgICB1
bmRvUmVhZFRhZygpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAg
ICAgLy8gVmVyc2lvbi1iZWFyaW5nIG1lc3NhZ2VzIGFyZSBvYmxpZ2F0ZWQgdG8gZmluaXNoIHRo
ZSB2ZXJzaW9uIHRhZy4KKyAgICAgICAgcmV0dXJuIGRvUmVhZFVpbnQzMigmdmVyc2lvbik7Cisg
ICAgfQorCisgICAgdm9pZCBzZXRWZXJzaW9uKHVpbnQzMl90IHZlcnNpb24pCisgICAgeworICAg
ICAgICBtX3ZlcnNpb24gPSB2ZXJzaW9uOworICAgIH0KKwogcHJpdmF0ZToKICAgICBib29sIHJl
YWRUYWcoU2VyaWFsaXphdGlvblRhZyogdGFnKQogICAgIHsKQEAgLTg0OSw2ICsxMjY0LDIwIEBA
IHByaXZhdGU6CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAorICAgIHZvaWQgdW5kb1Jl
YWRUYWcoKQorICAgIHsKKyAgICAgICAgaWYgKG1fcG9zaXRpb24gPiAwKQorICAgICAgICAgICAg
LS1tX3Bvc2l0aW9uOworICAgIH0KKworICAgIGJvb2wgcmVhZEFycmF5QnVmZmVyVmlld1N1YlRh
ZyhBcnJheUJ1ZmZlclZpZXdTdWJUYWcqIHRhZykKKyAgICB7CisgICAgICAgIGlmIChtX3Bvc2l0
aW9uID49IG1fbGVuZ3RoKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAqdGFn
ID0gc3RhdGljX2Nhc3Q8QXJyYXlCdWZmZXJWaWV3U3ViVGFnPihtX2J1ZmZlclttX3Bvc2l0aW9u
KytdKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCiAgICAgYm9vbCByZWFkU3RyaW5n
KHY4OjpIYW5kbGU8djg6OlZhbHVlPiogdmFsdWUpCiAgICAgewogICAgICAgICB1aW50MzJfdCBs
ZW5ndGg7CkBAIC05MzIsNiArMTM2MSwxMDcgQEAgcHJpdmF0ZToKICAgICAgICAgcmV0dXJuIHRy
dWU7CiAgICAgfQogCisgICAgUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4gZG9SZWFkQXJyYXlCdWZm
ZXIoKQorICAgIHsKKyAgICAgICAgdWludDMyX3QgYnl0ZUxlbmd0aDsKKyAgICAgICAgaWYgKCFk
b1JlYWRVaW50MzIoJmJ5dGVMZW5ndGgpKQorICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAg
IGlmIChtX3Bvc2l0aW9uICsgYnl0ZUxlbmd0aCA+IG1fbGVuZ3RoKQorICAgICAgICAgICAgcmV0
dXJuIDA7CisgICAgICAgIGNvbnN0IHZvaWQqIGJ1ZmZlclN0YXJ0ID0gbV9idWZmZXIgKyBtX3Bv
c2l0aW9uOworICAgICAgICBSZWZQdHI8QXJyYXlCdWZmZXI+IGFycmF5QnVmZmVyID0gQXJyYXlC
dWZmZXI6OmNyZWF0ZShidWZmZXJTdGFydCwgYnl0ZUxlbmd0aCk7CisgICAgICAgIG1fcG9zaXRp
b24gKz0gYnl0ZUxlbmd0aDsKKyAgICAgICAgcmV0dXJuIGFycmF5QnVmZmVyLnJlbGVhc2UoKTsK
KyAgICB9CisKKyAgICBib29sIHJlYWRBcnJheUJ1ZmZlcih2ODo6SGFuZGxlPHY4OjpWYWx1ZT4q
IHZhbHVlKQorICAgIHsKKyAgICAgICAgUmVmUHRyPEFycmF5QnVmZmVyPiBhcnJheUJ1ZmZlciA9
IGRvUmVhZEFycmF5QnVmZmVyKCk7CisgICAgICAgIGlmICghYXJyYXlCdWZmZXIpCisgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICp2YWx1ZSA9IHRvVjgoYXJyYXlCdWZmZXIucmVs
ZWFzZSgpKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgYm9vbCByZWFkQXJy
YXlCdWZmZXJWaWV3KHY4OjpIYW5kbGU8djg6OlZhbHVlPiogdmFsdWUsIENvbXBvc2l0ZUNyZWF0
b3ImIGNyZWF0b3IpCisgICAgeworICAgICAgICBBcnJheUJ1ZmZlclZpZXdTdWJUYWcgc3ViVGFn
OworICAgICAgICB1aW50MzJfdCBieXRlT2Zmc2V0OworICAgICAgICB1aW50MzJfdCBieXRlTGVu
Z3RoOworICAgICAgICBSZWZQdHI8QXJyYXlCdWZmZXI+IGFycmF5QnVmZmVyOworICAgICAgICB2
ODo6SGFuZGxlPHY4OjpWYWx1ZT4gYXJyYXlCdWZmZXJWOFZhbHVlOworICAgICAgICBpZiAoIXJl
YWRBcnJheUJ1ZmZlclZpZXdTdWJUYWcoJnN1YlRhZykpCisgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgICAgIGlmICghZG9SZWFkVWludDMyKCZieXRlT2Zmc2V0KSkKKyAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYgKCFkb1JlYWRVaW50MzIoJmJ5dGVMZW5ndGgpKQor
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBpZiAoIWNyZWF0b3IuY29uc3VtZVRv
cE9mU3RhY2soJmFycmF5QnVmZmVyVjhWYWx1ZSkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgICAgIGFycmF5QnVmZmVyID0gVjhBcnJheUJ1ZmZlcjo6dG9OYXRpdmUoYXJyYXlCdWZm
ZXJWOFZhbHVlLkFzPHY4OjpPYmplY3Q+KCkpOworICAgICAgICBpZiAoIWFycmF5QnVmZmVyKQor
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBzd2l0Y2ggKHN1YlRhZykgeworICAg
ICAgICBjYXNlIEJ5dGVBcnJheVRhZzoKKyAgICAgICAgICAgICp2YWx1ZSA9IHRvVjgoSW50OEFy
cmF5OjpjcmVhdGUoYXJyYXlCdWZmZXIucmVsZWFzZSgpLCBieXRlT2Zmc2V0LCBieXRlTGVuZ3Ro
KSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBVbnNpZ25lZEJ5dGVBcnJheVRh
ZzoKKyAgICAgICAgICAgICp2YWx1ZSA9IHRvVjgoVWludDhBcnJheTo6Y3JlYXRlKGFycmF5QnVm
ZmVyLnJlbGVhc2UoKSwgYnl0ZU9mZnNldCwgYnl0ZUxlbmd0aCkpOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgU2hvcnRBcnJheVRhZzogeworICAgICAgICAgICAgdWludDMyX3Qg
c2hvcnRMZW5ndGggPSBieXRlTGVuZ3RoIC8gc2l6ZW9mKGludDE2X3QpOworICAgICAgICAgICAg
aWYgKHNob3J0TGVuZ3RoICogc2l6ZW9mKGludDE2X3QpICE9IGJ5dGVMZW5ndGgpCisgICAgICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgKnZhbHVlID0gdG9WOChJbnQxNkFy
cmF5OjpjcmVhdGUoYXJyYXlCdWZmZXIucmVsZWFzZSgpLCBieXRlT2Zmc2V0LCBzaG9ydExlbmd0
aCkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgY2FzZSBVbnNpZ25l
ZFNob3J0QXJyYXlUYWc6IHsKKyAgICAgICAgICAgIHVpbnQzMl90IHNob3J0TGVuZ3RoID0gYnl0
ZUxlbmd0aCAvIHNpemVvZih1aW50MTZfdCk7CisgICAgICAgICAgICBpZiAoc2hvcnRMZW5ndGgg
KiBzaXplb2YodWludDE2X3QpICE9IGJ5dGVMZW5ndGgpCisgICAgICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgICAgICAgICAgKnZhbHVlID0gdG9WOChVaW50MTZBcnJheTo6Y3JlYXRlKGFy
cmF5QnVmZmVyLnJlbGVhc2UoKSwgYnl0ZU9mZnNldCwgc2hvcnRMZW5ndGgpKTsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGNhc2UgSW50QXJyYXlUYWc6IHsKKyAgICAg
ICAgICAgIHVpbnQzMl90IGludExlbmd0aCA9IGJ5dGVMZW5ndGggLyBzaXplb2YoaW50MzJfdCk7
CisgICAgICAgICAgICBpZiAoaW50TGVuZ3RoICogc2l6ZW9mKGludDMyX3QpICE9IGJ5dGVMZW5n
dGgpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgKnZhbHVlID0g
dG9WOChJbnQzMkFycmF5OjpjcmVhdGUoYXJyYXlCdWZmZXIucmVsZWFzZSgpLCBieXRlT2Zmc2V0
LCBpbnRMZW5ndGgpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGNh
c2UgVW5zaWduZWRJbnRBcnJheVRhZzogeworICAgICAgICAgICAgdWludDMyX3QgaW50TGVuZ3Ro
ID0gYnl0ZUxlbmd0aCAvIHNpemVvZih1aW50MzJfdCk7CisgICAgICAgICAgICBpZiAoaW50TGVu
Z3RoICogc2l6ZW9mKHVpbnQzMl90KSAhPSBieXRlTGVuZ3RoKQorICAgICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICAgICAgICAgICp2YWx1ZSA9IHRvVjgoVWludDMyQXJyYXk6OmNyZWF0
ZShhcnJheUJ1ZmZlci5yZWxlYXNlKCksIGJ5dGVPZmZzZXQsIGludExlbmd0aCkpOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgY2FzZSBGbG9hdEFycmF5VGFnOiB7Cisg
ICAgICAgICAgICB1aW50MzJfdCBmbG9hdExlbmd0aCA9IGJ5dGVMZW5ndGggLyBzaXplb2YoZmxv
YXQpOworICAgICAgICAgICAgaWYgKGZsb2F0TGVuZ3RoICogc2l6ZW9mKGZsb2F0KSAhPSBieXRl
TGVuZ3RoKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICp2YWx1
ZSA9IHRvVjgoRmxvYXQzMkFycmF5OjpjcmVhdGUoYXJyYXlCdWZmZXIucmVsZWFzZSgpLCBieXRl
T2Zmc2V0LCBmbG9hdExlbmd0aCkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAg
ICAgICAgY2FzZSBEb3VibGVBcnJheVRhZzogeworICAgICAgICAgICAgdWludDMyX3QgZmxvYXRM
ZW5ndGggPSBieXRlTGVuZ3RoIC8gc2l6ZW9mKGRvdWJsZSk7CisgICAgICAgICAgICBpZiAoZmxv
YXRMZW5ndGggKiBzaXplb2YoZG91YmxlKSAhPSBieXRlTGVuZ3RoKQorICAgICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICp2YWx1ZSA9IHRvVjgoRmxvYXQ2NEFycmF5Ojpj
cmVhdGUoYXJyYXlCdWZmZXIucmVsZWFzZSgpLCBieXRlT2Zmc2V0LCBmbG9hdExlbmd0aCkpOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgY2FzZSBEYXRhVmlld1RhZzoK
KyAgICAgICAgICAgICp2YWx1ZSA9IHRvVjgoRGF0YVZpZXc6OmNyZWF0ZShhcnJheUJ1ZmZlci5y
ZWxlYXNlKCksIGJ5dGVPZmZzZXQsIGJ5dGVMZW5ndGgpKTsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9Cisg
ICAgICAgIC8vIFRoZSB2YXJpb3VzICpBcnJheTo6Y3JlYXRlKCkgbWV0aG9kcyB3aWxsIHJldHVy
biBudWxsIGlmIHRoZSByYW5nZSB0aGUgdmlldyBleHBlY3RzIGlzCisgICAgICAgIC8vIG1pc21h
dGNoZWQgd2l0aCB0aGUgcmFuZ2UgdGhlIGJ1ZmZlciBjYW4gcHJvdmlkZSBvciBpZiB0aGUgYnl0
ZSBvZmZzZXQgaXMgbm90IGFsaWduZWQKKyAgICAgICAgLy8gdG8gdGhlIHNpemUgb2YgdGhlIGVs
ZW1lbnQgdHlwZS4KKyAgICAgICAgcmV0dXJuICF2YWx1ZS0+SXNFbXB0eSgpOworICAgIH0KKwog
ICAgIGJvb2wgcmVhZFJlZ0V4cCh2ODo6SGFuZGxlPHY4OjpWYWx1ZT4qIHZhbHVlKQogICAgIHsK
ICAgICAgICAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHBhdHRlcm47CkBAIC0xMDM3LDMyICsxNTY3
LDYzIEBAIHByaXZhdGU6CiAgICAgY29uc3QgdWludDhfdCogbV9idWZmZXI7CiAgICAgY29uc3Qg
dW5zaWduZWQgbV9sZW5ndGg7CiAgICAgdW5zaWduZWQgbV9wb3NpdGlvbjsKKyAgICB1aW50MzJf
dCBtX3ZlcnNpb247CiB9OwogCiBjbGFzcyBEZXNlcmlhbGl6ZXIgOiBwdWJsaWMgQ29tcG9zaXRl
Q3JlYXRvciB7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgRGVzZXJpYWxpemVyKFJlYWRlciYgcmVh
ZGVyKQogICAgICAgICA6IG1fcmVhZGVyKHJlYWRlcikKKyAgICAgICAgLCBtX3ZlcnNpb24oMCkK
ICAgICB7CiAgICAgfQogCiAgICAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGRlc2VyaWFsaXplKCkK
ICAgICB7CisgICAgICAgIGlmICghbV9yZWFkZXIucmVhZFZlcnNpb24obV92ZXJzaW9uKSB8fCBt
X3ZlcnNpb24gPiB3aXJlRm9ybWF0VmVyc2lvbikKKyAgICAgICAgICAgIHJldHVybiB2ODo6TnVs
bCgpOworICAgICAgICBtX3JlYWRlci5zZXRWZXJzaW9uKG1fdmVyc2lvbik7CiAgICAgICAgIHY4
OjpIYW5kbGVTY29wZSBzY29wZTsKICAgICAgICAgd2hpbGUgKCFtX3JlYWRlci5pc0VvZigpKSB7
CiAgICAgICAgICAgICBpZiAoIWRvRGVzZXJpYWxpemUoKSkKICAgICAgICAgICAgICAgICByZXR1
cm4gdjg6Ok51bGwoKTsKICAgICAgICAgfQotICAgICAgICBpZiAoc3RhY2tEZXB0aCgpICE9IDEp
CisgICAgICAgIGlmIChzdGFja0RlcHRoKCkgIT0gMSB8fCBtX29iamVjdFJlZmVyZW5jZVN0YWNr
LnNpemUoKSkKICAgICAgICAgICAgIHJldHVybiB2ODo6TnVsbCgpOwotICAgICAgICByZXR1cm4g
c2NvcGUuQ2xvc2UoZWxlbWVudCgwKSk7CisgICAgICAgIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBy
ZXN1bHQgPSBzY29wZS5DbG9zZShlbGVtZW50KDApKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsK
KyAgICB9CisKKyAgICB2aXJ0dWFsIGJvb2wgbmV3QXJyYXkodWludDMyX3QgbGVuZ3RoKQorICAg
IHsKKyAgICAgICAgdjg6OkxvY2FsPHY4OjpBcnJheT4gYXJyYXkgPSB2ODo6QXJyYXk6Ok5ldyhs
ZW5ndGgpOworICAgICAgICBpZiAoYXJyYXkuSXNFbXB0eSgpKQorICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgICAgICBvcGVuQ29tcG9zaXRlKGFycmF5KTsKKyAgICAgICAgcmV0dXJuIHRy
dWU7CisgICAgfQorCisgICAgdmlydHVhbCBib29sIGNvbnN1bWVUb3BPZlN0YWNrKHY4OjpIYW5k
bGU8djg6OlZhbHVlPiogb2JqZWN0KQorICAgIHsKKyAgICAgICAgaWYgKHN0YWNrRGVwdGgoKSA8
IDEpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICpvYmplY3QgPSBlbGVtZW50
KHN0YWNrRGVwdGgoKSAtIDEpOworICAgICAgICBwb3AoMSk7CisgICAgICAgIHJldHVybiB0cnVl
OwogICAgIH0KIAotICAgIHZpcnR1YWwgYm9vbCBjcmVhdGVBcnJheSh1aW50MzJfdCBsZW5ndGgs
IHY4OjpIYW5kbGU8djg6OlZhbHVlPiogdmFsdWUpCisgICAgdmlydHVhbCBib29sIGNvbXBsZXRl
QXJyYXkodWludDMyX3QgbGVuZ3RoLCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4qIHZhbHVlKQogICAg
IHsKICAgICAgICAgaWYgKGxlbmd0aCA+IHN0YWNrRGVwdGgoKSkKICAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKLSAgICAgICAgdjg6OkxvY2FsPHY4OjpBcnJheT4gYXJyYXkgPSB2ODo6QXJyYXk6
Ok5ldyhsZW5ndGgpOworICAgICAgICB2ODo6TG9jYWw8djg6OkFycmF5PiBhcnJheTsKKyAgICAg
ICAgaWYgKG1fdmVyc2lvbiA+IDApIHsKKyAgICAgICAgICAgIHY4OjpMb2NhbDx2ODo6VmFsdWU+
IGNvbXBvc2l0ZTsKKyAgICAgICAgICAgIGlmICghY2xvc2VDb21wb3NpdGUoJmNvbXBvc2l0ZSkp
CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgYXJyYXkgPSBjb21w
b3NpdGUuQXM8djg6OkFycmF5PigpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIGFycmF5
ID0gdjg6OkFycmF5OjpOZXcobGVuZ3RoKTsKICAgICAgICAgaWYgKGFycmF5LklzRW1wdHkoKSkK
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgY29uc3QgaW50IGRlcHRoID0gc3Rh
Y2tEZXB0aCgpIC0gbGVuZ3RoOwpAQCAtMTA3MywyMiArMTYzNCw2MyBAQCBwdWJsaWM6CiAgICAg
ICAgIHJldHVybiB0cnVlOwogICAgIH0KIAotICAgIHZpcnR1YWwgYm9vbCBjcmVhdGVPYmplY3Qo
dWludDMyX3QgbnVtUHJvcGVydGllcywgdjg6OkhhbmRsZTx2ODo6VmFsdWU+KiB2YWx1ZSkKKyAg
ICB2aXJ0dWFsIGJvb2wgbmV3T2JqZWN0KCkKICAgICB7CiAgICAgICAgIHY4OjpMb2NhbDx2ODo6
T2JqZWN0PiBvYmplY3QgPSB2ODo6T2JqZWN0OjpOZXcoKTsKICAgICAgICAgaWYgKG9iamVjdC5J
c0VtcHR5KCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIG9wZW5Db21wb3Np
dGUob2JqZWN0KTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgdmlydHVhbCBi
b29sIGNvbXBsZXRlT2JqZWN0KHVpbnQzMl90IG51bVByb3BlcnRpZXMsIHY4OjpIYW5kbGU8djg6
OlZhbHVlPiogdmFsdWUpCisgICAgeworICAgICAgICB2ODo6TG9jYWw8djg6Ok9iamVjdD4gb2Jq
ZWN0OworICAgICAgICBpZiAobV92ZXJzaW9uID4gMCkgeworICAgICAgICAgICAgdjg6OkxvY2Fs
PHY4OjpWYWx1ZT4gY29tcG9zaXRlOworICAgICAgICAgICAgaWYgKCFjbG9zZUNvbXBvc2l0ZSgm
Y29tcG9zaXRlKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBv
YmplY3QgPSBjb21wb3NpdGUuQXM8djg6Ok9iamVjdD4oKTsKKyAgICAgICAgfSBlbHNlCisgICAg
ICAgICAgICBvYmplY3QgPSB2ODo6T2JqZWN0OjpOZXcoKTsKKyAgICAgICAgaWYgKG9iamVjdC5J
c0VtcHR5KCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIHJldHVybiBpbml0
aWFsaXplT2JqZWN0KG9iamVjdCwgbnVtUHJvcGVydGllcywgdmFsdWUpOwogICAgIH0KIAotICAg
IHZpcnR1YWwgYm9vbCBjcmVhdGVTcGFyc2VBcnJheSh1aW50MzJfdCBudW1Qcm9wZXJ0aWVzLCB1
aW50MzJfdCBsZW5ndGgsIHY4OjpIYW5kbGU8djg6OlZhbHVlPiogdmFsdWUpCisgICAgdmlydHVh
bCBib29sIGNvbXBsZXRlU3BhcnNlQXJyYXkodWludDMyX3QgbnVtUHJvcGVydGllcywgdWludDMy
X3QgbGVuZ3RoLCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4qIHZhbHVlKQogICAgIHsKLSAgICAgICAg
djg6OkxvY2FsPHY4OjpBcnJheT4gYXJyYXkgPSB2ODo6QXJyYXk6Ok5ldyhsZW5ndGgpOworICAg
ICAgICB2ODo6TG9jYWw8djg6OkFycmF5PiBhcnJheTsKKyAgICAgICAgaWYgKG1fdmVyc2lvbiA+
IDApIHsKKyAgICAgICAgICAgIHY4OjpMb2NhbDx2ODo6VmFsdWU+IGNvbXBvc2l0ZTsKKyAgICAg
ICAgICAgIGlmICghY2xvc2VDb21wb3NpdGUoJmNvbXBvc2l0ZSkpCisgICAgICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgICAgICAgICAgYXJyYXkgPSBjb21wb3NpdGUuQXM8djg6OkFycmF5
PigpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIGFycmF5ID0gdjg6OkFycmF5OjpOZXco
bGVuZ3RoKTsKICAgICAgICAgaWYgKGFycmF5LklzRW1wdHkoKSkKICAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICAgICAgcmV0dXJuIGluaXRpYWxpemVPYmplY3QoYXJyYXksIG51bVByb3Bl
cnRpZXMsIHZhbHVlKTsKICAgICB9CiAKKyAgICB2aXJ0dWFsIHZvaWQgcHVzaE9iamVjdFJlZmVy
ZW5jZShjb25zdCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4mIG9iamVjdCkKKyAgICB7CisgICAgICAg
IG1fb2JqZWN0UG9vbC5hcHBlbmQob2JqZWN0KTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIGJvb2wg
dHJ5R2V0T2JqZWN0RnJvbU9iamVjdFJlZmVyZW5jZSh1aW50MzJfdCByZWZlcmVuY2UsIHY4OjpI
YW5kbGU8djg6OlZhbHVlPiogb2JqZWN0KQorICAgIHsKKyAgICAgICAgaWYgKHJlZmVyZW5jZSA+
PSBtX29iamVjdFBvb2wuc2l6ZSgpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAg
ICAqb2JqZWN0ID0gbV9vYmplY3RQb29sW3JlZmVyZW5jZV07CisgICAgICAgIHJldHVybiBvYmpl
Y3Q7CisgICAgfQorCisgICAgdmlydHVhbCB1aW50MzJfdCBvYmplY3RSZWZlcmVuY2VDb3VudCgp
CisgICAgeworICAgICAgICByZXR1cm4gbV9vYmplY3RQb29sLnNpemUoKTsKKyAgICB9CisKIHBy
aXZhdGU6CiAgICAgYm9vbCBpbml0aWFsaXplT2JqZWN0KHY4OjpIYW5kbGU8djg6Ok9iamVjdD4g
b2JqZWN0LCB1aW50MzJfdCBudW1Qcm9wZXJ0aWVzLCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4qIHZh
bHVlKQogICAgIHsKQEAgLTExMzEsOCArMTczMywzMCBAQCBwcml2YXRlOgogICAgICAgICByZXR1
cm4gbV9zdGFja1tpbmRleF07CiAgICAgfQogCisgICAgdm9pZCBvcGVuQ29tcG9zaXRlKGNvbnN0
IHY4OjpMb2NhbDx2ODo6VmFsdWU+JiBvYmplY3QpCisgICAgeworICAgICAgICB1aW50MzJfdCBu
ZXdJZCA9IG1fb2JqZWN0UG9vbC5zaXplKCk7CisgICAgICAgIG1fb2JqZWN0UmVmZXJlbmNlU3Rh
Y2suYXBwZW5kKG5ld0lkKTsKKyAgICAgICAgbV9vYmplY3RQb29sLmFwcGVuZChvYmplY3QpOwor
ICAgIH0KKworICAgIGJvb2wgY2xvc2VDb21wb3NpdGUodjg6OkhhbmRsZTx2ODo6VmFsdWU+KiBv
YmplY3QpCisgICAgeworICAgICAgICBpZiAoIW1fb2JqZWN0UmVmZXJlbmNlU3RhY2suc2l6ZSgp
KQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB1aW50MzJfdCBvbGRJZCA9IG1f
b2JqZWN0UmVmZXJlbmNlU3RhY2tbbV9vYmplY3RSZWZlcmVuY2VTdGFjay5zaXplKCkgLSAxXTsK
KyAgICAgICAgbV9vYmplY3RSZWZlcmVuY2VTdGFjay5zaHJpbmsobV9vYmplY3RSZWZlcmVuY2VT
dGFjay5zaXplKCkgLSAxKTsKKyAgICAgICAgaWYgKG9sZElkID49IG1fb2JqZWN0UG9vbC5zaXpl
KCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICpvYmplY3QgPSBtX29iamVj
dFBvb2xbb2xkSWRdOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKICAgICBSZWFkZXIm
IG1fcmVhZGVyOwogICAgIFZlY3Rvcjx2ODo6TG9jYWw8djg6OlZhbHVlPiA+IG1fc3RhY2s7Cisg
ICAgVmVjdG9yPHY4OjpIYW5kbGU8djg6OlZhbHVlPiA+IG1fb2JqZWN0UG9vbDsKKyAgICBWZWN0
b3I8dWludDMyX3Q+IG1fb2JqZWN0UmVmZXJlbmNlU3RhY2s7CisgICAgdWludDMyX3QgbV92ZXJz
aW9uOwogfTsKIAogfSAvLyBuYW1lc3BhY2UKQEAgLTEyMzIsMjIgKzE4NTYsMjggQEAgU2VyaWFs
aXplZFNjcmlwdFZhbHVlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWUodjg6OkhhbmRsZTx2ODo6VmFs
dWU+IHZhbHVlLCBib29sJgogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgfQot
ICAgIGlmIChzdGF0dXMgPT0gU2VyaWFsaXplcjo6SW5wdXRFcnJvcikgeworICAgIHN3aXRjaCAo
c3RhdHVzKSB7CisgICAgY2FzZSBTZXJpYWxpemVyOjpJbnB1dEVycm9yOgorICAgIGNhc2UgU2Vy
aWFsaXplcjo6RGF0YUNsb25lRXJyb3I6CiAgICAgICAgIC8vIElmIHRoZXJlIHdhcyBhbiBpbnB1
dCBlcnJvciwgdGhyb3cgYSBuZXcgZXhjZXB0aW9uIG91dHNpZGUKICAgICAgICAgLy8gb2YgdGhl
IFRyeUNhdGNoIHNjb3BlLgogICAgICAgICBkaWRUaHJvdyA9IHRydWU7Ci0gICAgICAgIHRocm93
RXJyb3IoTk9UX1NVUFBPUlRFRF9FUlIpOworICAgICAgICB0aHJvd0Vycm9yKERBVEFfQ0xPTkVf
RVJSKTsKICAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBpZiAoc3RhdHVzID09IFNlcmlhbGl6
ZXI6OkpTRmFpbHVyZSkgeworICAgIGNhc2UgU2VyaWFsaXplcjo6SlNGYWlsdXJlOgogICAgICAg
ICAvLyBJZiB0aGVyZSB3YXMgYSBKUyBmYWlsdXJlIChidXQgbm8gZXhjZXB0aW9uKSwgdGhlcmUn
cyBub3QKICAgICAgICAgLy8gbXVjaCB3ZSBjYW4gZG8gZXhjZXB0IGZvciB1bndpbmRpbmcgdGhl
IEMrKyBzdGFjayBieQogICAgICAgICAvLyBwcmV0ZW5kaW5nIHRoZXJlIHdhcyBhIEpTIGV4Y2Vw
dGlvbi4KICAgICAgICAgZGlkVGhyb3cgPSB0cnVlOwogICAgICAgICByZXR1cm47CisgICAgY2Fz
ZSBTZXJpYWxpemVyOjpTdWNjZXNzOgorICAgICAgICBtX2RhdGEgPSBTdHJpbmcoU3RyaW5nSW1w
bDo6YWRvcHQod3JpdGVyLmRhdGEoKSkpLmNyb3NzVGhyZWFkU3RyaW5nKCk7CisgICAgICAgIHJl
dHVybjsKKyAgICBjYXNlIFNlcmlhbGl6ZXI6OkpTRXhjZXB0aW9uOgorICAgICAgICAvLyBXZSBz
aG91bGQgbmV2ZXIgZ2V0IGhlcmUgYmVjYXVzZSB0aGlzIGNhc2Ugd2FzIGhhbmRsZWQgYWJvdmUu
CisgICAgICAgIGJyZWFrOwogICAgIH0KLSAgICBBU1NFUlQoc3RhdHVzID09IFNlcmlhbGl6ZXI6
OlN1Y2Nlc3MpOwotICAgIG1fZGF0YSA9IFN0cmluZyhTdHJpbmdJbXBsOjphZG9wdCh3cml0ZXIu
ZGF0YSgpKSkuY3Jvc3NUaHJlYWRTdHJpbmcoKTsKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
IH0KIAogU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWUoY29uc3Qg
U3RyaW5nJiB3aXJlRGF0YSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4
L1Y4QmluZGluZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEJpbmRpbmcuY3Bw
CmluZGV4IDgyNjBmZmQuLjM4MTA1MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L1Y4QmluZGluZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhC
aW5kaW5nLmNwcApAQCAtMjg1LDYgKzI4NSwxNiBAQCBib29sIGlzVW5kZWZpbmVkT3JOdWxsKHY4
OjpIYW5kbGU8djg6OlZhbHVlPiB2YWx1ZSkKICAgICByZXR1cm4gdmFsdWUtPklzTnVsbCgpIHx8
IHZhbHVlLT5Jc1VuZGVmaW5lZCgpOwogfQogCitib29sIGlzSG9zdE9iamVjdCh2ODo6SGFuZGxl
PHY4OjpPYmplY3Q+IG9iamVjdCkKK3sKKyAgICAvLyBJZiB0aGUgb2JqZWN0IGhhcyBhbnkgaW50
ZXJuYWwgZmllbGRzLCB0aGVuIHdlIHdvbid0IGJlIGFibGUgdG8gc2VyaWFsaXplIG9yIGRlc2Vy
aWFsaXplCisgICAgLy8gdGhlbTsgY29udmVuaWVudGx5LCB0aGlzIGlzIGFsc28gYSBxdWljayB3
YXkgdG8gZGV0ZWN0IERPTSB3cmFwcGVyIG9iamVjdHMsIGJlY2F1c2UKKyAgICAvLyB0aGUgbWVj
aGFuaXNtIGZvciB0aGVzZSByZWxpZXMgb24gZGF0YSBzdG9yZWQgaW4gdGhlc2UgZmllbGRzLiBX
ZSBzaG91bGQKKyAgICAvLyBjYXRjaCBleHRlcm5hbCBhcnJheSBkYXRhIGFuZCBleHRlcm5hbCBw
aXhlbCBkYXRhIGFzIGEgc3BlY2lhbCBjYXNlIChub3RpbmcgdGhhdCBDYW52YXNQaXhlbEFycmF5
cworICAgIC8vIGNhbid0IGJlIHNlcmlhbGl6ZWQgd2l0aG91dCBiZWluZyB3cmFwcGVkIGJ5IElt
YWdlRGF0YSBhY2NvcmRpbmcgdG8gdGhlIHN0YW5kYXJkKS4KKyAgICByZXR1cm4gb2JqZWN0LT5J
bnRlcm5hbEZpZWxkQ291bnQoKSB8fCBvYmplY3QtPkhhc0luZGV4ZWRQcm9wZXJ0aWVzSW5QaXhl
bERhdGEoKSB8fCBvYmplY3QtPkhhc0luZGV4ZWRQcm9wZXJ0aWVzSW5FeHRlcm5hbEFycmF5RGF0
YSgpOworfQorCiB2ODo6SGFuZGxlPHY4OjpCb29sZWFuPiB2OEJvb2xlYW4oYm9vbCB2YWx1ZSkK
IHsKICAgICByZXR1cm4gdmFsdWUgPyB2ODo6VHJ1ZSgpIDogdjg6OkZhbHNlKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEJpbmRpbmcuaCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3Y4L1Y4QmluZGluZy5oCmluZGV4IGUxZTNkZTAuLjJhMWEyNzcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4QmluZGluZy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4QmluZGluZy5oCkBAIC0yMTksNiArMjE5LDEwIEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogICAgIGJvb2wgaXNVbmRlZmluZWRPck51bGwodjg6OkhhbmRs
ZTx2ODo6VmFsdWU+IHZhbHVlKTsKIAorICAgIC8vIFJldHVybnMgdHJ1ZSBpZiB0aGUgcHJvdmlk
ZWQgb2JqZWN0IGlzIHRvIGJlIGNvbnNpZGVyZWQgYSAnaG9zdCBvYmplY3QnLCBhcyB1c2VkIGlu
IHRoZQorICAgIC8vIEhUTUw1IHN0cnVjdHVyZWQgY2xvbmUgYWxnb3JpdGhtLgorICAgIGJvb2wg
aXNIb3N0T2JqZWN0KHY4OjpIYW5kbGU8djg6Ok9iamVjdD4pOworCiAgICAgdjg6OkhhbmRsZTx2
ODo6Qm9vbGVhbj4gdjhCb29sZWFuKGJvb2wgdmFsdWUpOwogCiAgICAgU3RyaW5nIHRvV2ViQ29y
ZVN0cmluZ1dpdGhOdWxsQ2hlY2sodjg6OkhhbmRsZTx2ODo6VmFsdWU+IHZhbHVlKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERhdGFWaWV3Q3VzdG9t
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERhdGFWaWV3Q3VzdG9t
LmNwcAppbmRleCBjYmI5ZDI3Li42NmMzOTI5IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9jdXN0b20vVjhEYXRhVmlld0N1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RGF0YVZpZXdDdXN0b20uY3BwCkBAIC00MSw2ICs0MSwx
MyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhEYXRhVmlldzo6Y29uc3RydWN0b3JDYWxsYmFj
ayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogICAgIGlmICghYXJncy5Jc0NvbnN0cnVjdENh
bGwoKSkKICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoIkRPTSBvYmplY3QgY29uc3RydWN0b3Ig
Y2Fubm90IGJlIGNhbGxlZCBhcyBhIGZ1bmN0aW9uIiwgVjhQcm94eTo6VHlwZUVycm9yKTsKIAor
ICAgIGlmICghYXJncy5MZW5ndGgoKSkgeworICAgICAgICAvLyBzZWUgY29uc3RydWN0V2ViR0xB
cnJheSAtLSB3ZSBkb24ndCBzZWVtIHRvIGJlIGFibGUgdG8gZGlzdGluZ2lzaCBiZXR3ZWVuCisg
ICAgICAgIC8vICduZXcgRGF0YVZpZXcoKScgYW5kIHRoZSBjYWxsIHVzZWQgdG8gY29uc3RydWN0
IHRoZSBjYWNoZWQgRGF0YVZpZXcgb2JqZWN0LgorICAgICAgICBSZWZQdHI8RGF0YVZpZXc+IGRh
dGFWaWV3ID0gRGF0YVZpZXc6OmNyZWF0ZSgwKTsKKyAgICAgICAgVjhET01XcmFwcGVyOjpzZXRE
T01XcmFwcGVyKGFyZ3MuSG9sZGVyKCksICZpbmZvLCBkYXRhVmlldy5nZXQoKSk7CisgICAgICAg
IHJldHVybiB0b1Y4KGRhdGFWaWV3LnJlbGVhc2UoKSwgYXJncy5Ib2xkZXIoKSk7CisgICAgfQog
ICAgIGlmIChhcmdzWzBdLT5Jc051bGwoKSB8fCAhVjhBcnJheUJ1ZmZlcjo6SGFzSW5zdGFuY2Uo
YXJnc1swXSkpCiAgICAgICAgIHJldHVybiBWOFByb3h5Ojp0aHJvd1R5cGVFcnJvcigpOwogICAg
IHJldHVybiBjb25zdHJ1Y3RXZWJHTEFycmF5V2l0aEFycmF5QnVmZmVyQXJndW1lbnQ8RGF0YVZp
ZXcsIGNoYXI+KGFyZ3MsICZpbmZvLCB2ODo6a0V4dGVybmFsQnl0ZUFycmF5LCBmYWxzZSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NQ29yZUV4Y2VwdGlvbi5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRE9NQ29yZUV4Y2VwdGlvbi5pZGwKaW5kZXggOTQ1NzEyZC4uZGM1MjQw
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUNvcmVFeGNlcHRpb24uaWRsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01Db3JlRXhjZXB0aW9uLmlkbApAQCAtNzQsNiArNzQs
MTEgQEAgbW9kdWxlIGNvcmUgewogICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCAgICAgIEFC
T1JUX0VSUiAgICAgICAgICAgICAgICAgICAgICA9IDIwOwogICAgICAgICBjb25zdCB1bnNpZ25l
ZCBzaG9ydCAgICAgIFVSTF9NSVNNQVRDSF9FUlIgICAgICAgICAgICAgICA9IDIxOwogICAgICAg
ICBjb25zdCB1bnNpZ25lZCBzaG9ydCAgICAgIFFVT1RBX0VYQ0VFREVEX0VSUiAgICAgICAgICAg
ICA9IDIyOworICAgICAgICAvLyBUSU1FT1VUX0VSUiBpcyBjdXJyZW50bHkgdW51c2VkIGJ1dCB3
YXMgYWRkZWQgZm9yIGNvbXBsZXRlbmVzcy4KKyAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQg
ICAgICBUSU1FT1VUX0VSUiAgICAgICAgICAgICAgICAgICAgPSAyMzsKKyAgICAgICAgLy8gSU5W
QUxJRF9OT0RFX1RZUEVfRVJSIGlzIGN1cnJlbnRseSB1bnVzZWQgYnV0IHdhcyBhZGRlZCBmb3Ig
Y29tcGxldGVuZXNzLgorICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCAgICAgIElOVkFMSURf
Tk9ERV9UWVBFX0VSUiAgICAgICAgICA9IDI0OworICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9y
dCAgICAgIERBVEFfQ0xPTkVfRVJSICAgICAgICAgICAgICAgICA9IDI1OwogICAgIH07CiAKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FeGNlcHRpb25Db2RlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FeGNlcHRpb25Db2RlLmNwcAppbmRleCBjYWVhNTU5Li44YjgyZjViIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXhjZXB0aW9uQ29kZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL0V4Y2VwdGlvbkNvZGUuY3BwCkBAIC03Miw3ICs3MiwxMCBAQCBzdGF0
aWMgY29uc3QgY2hhciogY29uc3QgZXhjZXB0aW9uTmFtZXNbXSA9IHsKICAgICAiTkVUV09SS19F
UlIiLAogICAgICJBQk9SVF9FUlIiLAogICAgICJVUkxfTUlTTUFUQ0hfRVJSIiwKLSAgICAiUVVP
VEFfRVhDRUVERURfRVJSIgorICAgICJRVU9UQV9FWENFRURFRF9FUlIiLAorICAgICJUSU1FT1VU
X0VSUiIsCisgICAgIklOVkFMSURfTk9ERV9UWVBFX0VSUiIsCisgICAgIkRBVEFfQ0xPTkVfRVJS
IgogfTsKIAogc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IGV4Y2VwdGlvbkRlc2NyaXB0aW9uc1td
ID0gewpAQCAtOTgsNyArMTAxLDEwIEBAIHN0YXRpYyBjb25zdCBjaGFyKiBjb25zdCBleGNlcHRp
b25EZXNjcmlwdGlvbnNbXSA9IHsKICAgICAiQSBuZXR3b3JrIGVycm9yIG9jY3VyZWQuIiwKICAg
ICAiVGhlIHVzZXIgYWJvcnRlZCBhIHJlcXVlc3QuIiwKICAgICAiQSB3b3JrZXIgZ2xvYmFsIHNj
b3BlIHJlcHJlc2VudGVkIGFuIGFic29sdXRlIFVSTCB0aGF0IGlzIG5vdCBlcXVhbCB0byB0aGUg
cmVzdWx0aW5nIGFic29sdXRlIFVSTC4iLAotICAgICJBbiBhdHRlbXB0IHdhcyBtYWRlIHRvIGFk
ZCBzb21ldGhpbmcgdG8gc3RvcmFnZSB0aGF0IGV4Y2VlZGVkIHRoZSBxdW90YS4iCisgICAgIkFu
IGF0dGVtcHQgd2FzIG1hZGUgdG8gYWRkIHNvbWV0aGluZyB0byBzdG9yYWdlIHRoYXQgZXhjZWVk
ZWQgdGhlIHF1b3RhLiIsCisgICAgIkEgdGltZW91dCBvY2N1cnJlZC4iLAorICAgICJUaGUgc3Vw
cGxpZWQgbm9kZSBpcyBpbnZhbGlkIG9yIGhhcyBhbiBpbnZhbGlkIGFuY2VzdG9yIGZvciB0aGlz
IG9wZXJhdGlvbi4iLAorICAgICJBbiBvYmplY3QgY291bGQgbm90IGJlIGNsb25lZC4iCiB9Owog
CiBzdGF0aWMgY29uc3QgY2hhciogY29uc3QgcmFuZ2VFeGNlcHRpb25OYW1lc1tdID0gewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V4Y2VwdGlvbkNvZGUuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9FeGNlcHRpb25Db2RlLmgKaW5kZXggOWNlZTY2Yi4uY2VhNmY2NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0V4Y2VwdGlvbkNvZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRXhjZXB0aW9uQ29kZS5oCkBAIC01NywxNCArNTcsMTAgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgICAgICBORVRXT1JLX0VSUiA9IDE5LAogICAgICAgICBBQk9SVF9FUlIgPSAyMCwK
ICAgICAgICAgVVJMX01JU01BVENIX0VSUiA9IDIxLAotICAgICAgICBRVU9UQV9FWENFRURFRF9F
UlIgPSAyMgotCi0gICAgICAgIC8vIEludHJvZHVjZWQgaW4gRmlsZSBBUEk6Ci0gICAgICAgIC8v
IGh0dHA6Ly93d3cudzMub3JnL1RSL2ZpbGUtdXBsb2FkLyNkZm4tZmlsZWVycm9yCi0jaWYgRU5B
QkxFKEJMT0IpIHx8IEVOQUJMRShGSUxFX1NZU1RFTSkKLSAgICAgICAgLCBOT1RfUkVBREFCTEVf
RVJSID0gMjQKLSAgICAgICAgLCBFTkNPRElOR19FUlIgPSAyNgotI2VuZGlmCisgICAgICAgIFFV
T1RBX0VYQ0VFREVEX0VSUiA9IDIyLAorICAgICAgICBUSU1FT1VUX0VSUiA9IDIzLAorICAgICAg
ICBJTlZBTElEX05PREVfVFlQRV9FUlIgPSAyNCwKKyAgICAgICAgREFUQV9DTE9ORV9FUlIgPSAy
NQogICAgIH07CiAKICAgICBlbnVtIEV4Y2VwdGlvblR5cGUgewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvQXJyYXlCdWZmZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvQXJyYXlCdWZmZXIuY3BwCmluZGV4IDcxY2ZjNjIuLmU4M2UwMWUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0FycmF5QnVmZmVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9BcnJheUJ1ZmZlci5jcHAKQEAgLTQ3LDcgKzQ3LDcgQEAg
UGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4gQXJyYXlCdWZmZXI6OmNyZWF0ZShBcnJheUJ1ZmZlciog
b3RoZXIpCiAgICAgcmV0dXJuIEFycmF5QnVmZmVyOjpjcmVhdGUob3RoZXItPmRhdGEoKSwgb3Ro
ZXItPmJ5dGVMZW5ndGgoKSk7CiB9CiAKLVBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IEFycmF5QnVm
ZmVyOjpjcmVhdGUodm9pZCogc291cmNlLCB1bnNpZ25lZCBieXRlTGVuZ3RoKQorUGFzc1JlZlB0
cjxBcnJheUJ1ZmZlcj4gQXJyYXlCdWZmZXI6OmNyZWF0ZShjb25zdCB2b2lkKiBzb3VyY2UsIHVu
c2lnbmVkIGJ5dGVMZW5ndGgpCiB7CiAgICAgdm9pZCogZGF0YSA9IHRyeUFsbG9jYXRlKGJ5dGVM
ZW5ndGgsIDEpOwogICAgIGlmICghZGF0YSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL0FycmF5QnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9BcnJh
eUJ1ZmZlci5oCmluZGV4IGZmNWU1OTkuLjQxMzVjMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL0FycmF5QnVmZmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvQXJyYXlCdWZmZXIuaApAQCAtMzUsNyArMzUsNyBAQCBjbGFzcyBBcnJheUJ1ZmZlciA6
IHB1YmxpYyBSZWZDb3VudGVkPEFycmF5QnVmZmVyPiB7CiAgIHB1YmxpYzoKICAgICBzdGF0aWMg
UGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4gY3JlYXRlKHVuc2lnbmVkIG51bUVsZW1lbnRzLCB1bnNp
Z25lZCBlbGVtZW50Qnl0ZVNpemUpOwogICAgIHN0YXRpYyBQYXNzUmVmUHRyPEFycmF5QnVmZmVy
PiBjcmVhdGUoQXJyYXlCdWZmZXIqKTsKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxBcnJheUJ1ZmZl
cj4gY3JlYXRlKHZvaWQqIHNvdXJjZSwgdW5zaWduZWQgYnl0ZUxlbmd0aCk7CisgICAgc3RhdGlj
IFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IGNyZWF0ZShjb25zdCB2b2lkKiBzb3VyY2UsIHVuc2ln
bmVkIGJ5dGVMZW5ndGgpOwogCiAgICAgdm9pZCogZGF0YSgpOwogICAgIGNvbnN0IHZvaWQqIGRh
dGEoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0RhdGFW
aWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0RhdGFWaWV3LmNwcAppbmRleCBl
MDA0NDNkLi4zZGIwNmQ2IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9E
YXRhVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvRGF0YVZpZXcuY3Bw
CkBAIC00MCw2ICs0MCwxNCBAQCB1bmlvbiBWYWx1ZSB7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAorUGFzc1JlZlB0cjxEYXRhVmlldz4gRGF0YVZpZXc6OmNyZWF0ZSh1bnNpZ25lZCBsZW5ndGgp
Cit7CisgICAgUmVmUHRyPEFycmF5QnVmZmVyPiBidWZmZXIgPSBBcnJheUJ1ZmZlcjo6Y3JlYXRl
KGxlbmd0aCwgc2l6ZW9mKHVpbnQ4X3QpKTsKKyAgICBpZiAoIWJ1ZmZlci5nZXQoKSkKKyAgICAg
ICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIGNyZWF0ZShidWZmZXIsIDAsIGxlbmd0aCk7Cit9CisK
IFBhc3NSZWZQdHI8RGF0YVZpZXc+IERhdGFWaWV3OjpjcmVhdGUoUGFzc1JlZlB0cjxBcnJheUJ1
ZmZlcj4gYnVmZmVyLCB1bnNpZ25lZCBieXRlT2Zmc2V0LCB1bnNpZ25lZCBieXRlTGVuZ3RoKQog
ewogICAgIGlmIChieXRlT2Zmc2V0ID4gYnVmZmVyLT5ieXRlTGVuZ3RoKCkpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9EYXRhVmlldy5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvRGF0YVZpZXcuaAppbmRleCBhOGFiYTVjLi41ZTgwZjhjIDEwMDc1NQotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9EYXRhVmlldy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL0RhdGFWaWV3LmgKQEAgLTM0LDYgKzM0LDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBjbGFzcyBEYXRhVmlldyA6IHB1YmxpYyBBcnJheUJ1ZmZlclZpZXcgewogcHVi
bGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPERhdGFWaWV3PiBjcmVhdGUodW5zaWduZWQgbGVu
Z3RoKTsKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxEYXRhVmlldz4gY3JlYXRlKFBhc3NSZWZQdHI8
QXJyYXlCdWZmZXI+LCB1bnNpZ25lZCBieXRlT2Zmc2V0LCB1bnNpZ25lZCBieXRlTGVuZ3RoKTsK
IAogICAgIHZpcnR1YWwgYm9vbCBpc0RhdGFWaWV3KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>100738</attachid>
            <date>2011-07-13 17:46:15 -0700</date>
            <delta_ts>2011-07-14 15:56:05 -0700</delta_ts>
            <desc>Address comments (re: code and tests both); attempt to send as text/plain.</desc>
            <filename>patch542.patch</filename>
            <type>text/plain</type>
            <size>156920</size>
            <attacher name="Luke Zarko">lukezarko+bugzilla</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2YzczYzllLi5hODgwODczIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTkgQEAKKzIwMTEtMDct
MTMgIEx1a2UgWmFya28gIDxsdWtlemFya29AZ21haWwuY29tPgorCisgICAgICAgIEJyaW5nIFY4
J3MgU2VyaWFsaXplZFNjcmlwdFZhbHVlIGltcGxlbWVudGF0aW9uIHVwIHRvIGRhdGUuCisKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYzNDgxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBUaGlz
IHBhdGNoIHJlZmFjdG9ycyB3aW5kb3ctcG9zdG1lc3NhZ2UtY2xvbmUgaW50byBhIHNjcmlwdCB0
ZXN0LCBjaGVja3MgYWRkaXRpb25hbCBmdW5jdGlvbmFsaXR5IHNldCBmb3J0aCBpbiB0aGUgc3Rh
bmRhcmQsIGFuZCBmaXhlcyB1cCBleHBlY3RhdGlvbnMuIEl0IGFsc28gY2hlY2tzIHRoZSBjb3Jy
ZWN0bmVzcyBvZiB0eXBlZCBhcnJheSBtZXNzYWdlIHBhc3Npbmcgb24gQ2hyb21pdW0uCisKKyAg
ICAgICAgKiBmYXN0L2RvbS9XaW5kb3cvc2NyaXB0LXRlc3RzL3Bvc3RtZXNzYWdlLWNsb25lLWRl
ZXAtYXJyYXkuanM6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL1dpbmRvdy9zY3JpcHQtdGVz
dHMvcG9zdG1lc3NhZ2UtY2xvbmUtcmVhbGx5LWRlZXAtYXJyYXkuanM6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QvZG9tL1dpbmRvdy9zY3JpcHQtdGVzdHMvcG9zdG1lc3NhZ2UtY2xvbmUuanM6IEFk
ZGVkLgorICAgICAgICAodGh1bmspOgorICAgICAgICAqIGZhc3QvZG9tL1dpbmRvdy9zY3JpcHQt
dGVzdHMvcG9zdG1lc3NhZ2UtdGVzdC5qczogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvZmFzdC9k
b20vV2luZG93L3dpbmRvdy1wb3N0bWVzc2FnZS1jbG9uZS5odG1sLgorICAgICAgICAoKToKKyAg
ICAgICAgKHNhZmVUb1N0cmluZyk6CisgICAgICAgIChzaG91bGRCZSk6CisgICAgICAgIChzaG91
bGRCZUlkZW50aWNhbCk6CisgICAgICAgIChkb1Bhc3MpOgorICAgICAgICAoZG9GYWlsKToKKyAg
ICAgICAgKHdpbmRvdy5kb1Bhc3NGYWlsKToKKyAgICAgICAgKG9ubWVzc2FnZSk6CisgICAgICAg
IChDb25zdHJ1Y3RvcldpdGhQcm90b3R5cGUpOgorICAgICAgICAod2luZG93LnRyeVBvc3RNZXNz
YWdlKToKKyAgICAgICAgKiBmYXN0L2RvbS9XaW5kb3cvd2luZG93LXBvc3RtZXNzYWdlLWNsb25l
LWRlZXAtYXJyYXktZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9XaW5k
b3cvd2luZG93LXBvc3RtZXNzYWdlLWNsb25lLWRlZXAtYXJyYXkuaHRtbDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9kb20vV2luZG93L3dpbmRvdy1wb3N0bWVzc2FnZS1jbG9uZS1leHBlY3RlZC50
eHQ6CisgICAgICAgICogZmFzdC9kb20vV2luZG93L3dpbmRvdy1wb3N0bWVzc2FnZS1jbG9uZS1y
ZWFsbHktZGVlcC1hcnJheS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9t
L1dpbmRvdy93aW5kb3ctcG9zdG1lc3NhZ2UtY2xvbmUtcmVhbGx5LWRlZXAtYXJyYXkuaHRtbDog
QWRkZWQuCisgICAgICAgICogZmFzdC9kb20vV2luZG93L3dpbmRvdy1wb3N0bWVzc2FnZS1jbG9u
ZS5odG1sOgorICAgICAgICAqIGZhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9jYW52YXMvd2ViZ2wv
YXJyYXktbWVzc2FnZS1wYXNzaW5nLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxh
dGZvcm0vY2hyb21pdW0vZmFzdC9jYW52YXMvd2ViZ2wvYXJyYXktbWVzc2FnZS1wYXNzaW5nLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL2Zhc3QvY2FudmFzL3dlYmds
L3NjcmlwdC10ZXN0cy9hcnJheS1tZXNzYWdlLXBhc3NpbmcuanM6IEFkZGVkLgorICAgICAgICAo
Y2xhc3NDb21wYXJlKToKKyAgICAgICAgKGJ1ZmZlckNvbXBhcmUpOgorICAgICAgICAodmlld0Nv
bXBhcmUpOgorICAgICAgICAodHlwZWRBcnJheUNvbXBhcmUpOgorICAgICAgICAoZGF0YVZpZXdD
b21wYXJlKToKKyAgICAgICAgKGNyZWF0ZUJ1ZmZlcik6CisgICAgICAgIChjcmVhdGVUeXBlZEFy
cmF5KToKKyAgICAgICAgKGNyZWF0ZVR5cGVkQXJyYXlPdmVyQnVmZmVyKToKKyAgICAgICAgKHRl
c3RMaXN0KToKKyAgICAgICAgKGRvbmVUZXN0KToKKyAgICAgICAgKHdpbmRvd0hhbmRsZU1lc3Nh
Z2UpOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ct
cG9zdG1lc3NhZ2UtY2xvbmUtZGVlcC1hcnJheS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcG9zdG1lc3NhZ2Ut
Y2xvbmUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9m
YXN0L2RvbS9XaW5kb3cvd2luZG93LXBvc3RtZXNzYWdlLWNsb25lLXJlYWxseS1kZWVwLWFycmF5
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9l
eHBlY3RhdGlvbnMudHh0OgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9mYXN0L2RvbS9XaW5kb3cv
d2luZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL3F0LXdr
Mi9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIHBsYXRmb3JtL3F0L2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0c3RvcmUtYmFzaWNzLWV4
cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9vYmplY3RzdG9yZS1iYXNp
Y3MuaHRtbDoKKwogMjAxMS0wNy0xMyAgR2Fib3IgTG9raSAgPGxva2lAd2Via2l0Lm9yZz4KIAog
ICAgICAgICBbUXRdIEZsYWtleSB0ZXN0OiB4bWxodHRwcmVxdWVzdC01MG1zLWRvd25sb2FkLWRp
c3BhdGNoLmh0bWwgb24gQVJNCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5k
b3cvc2NyaXB0LXRlc3RzL3Bvc3RtZXNzYWdlLWNsb25lLWRlZXAtYXJyYXkuanMgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9XaW5kb3cvc2NyaXB0LXRlc3RzL3Bvc3RtZXNzYWdlLWNsb25lLWRlZXAt
YXJyYXkuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWQxZWFkOQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9zY3JpcHQtdGVzdHMv
cG9zdG1lc3NhZ2UtY2xvbmUtZGVlcC1hcnJheS5qcwpAQCAtMCwwICsxLDYgQEAKK2RvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJkZXNjcmlwdGlvbiIpLmlubmVySFRNTCA9ICJUZXN0cyB0aGF0IHdl
IHN1cHBvcnQgY2xvbmluZyBkZWVwKGlzaCkgYXJyYXlzLiI7CitkZWVwQXJyYXk9W107Citmb3Ig
KHZhciBpID0gMDsgaSA8IDEwMDAwOyBpKyspCisgICAgZGVlcEFycmF5PVtkZWVwQXJyYXldOwor
dHJ5UG9zdE1lc3NhZ2UoJ2RlZXBBcnJheScpOwordHJ5UG9zdE1lc3NhZ2UoJyJkb25lIicpOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3NjcmlwdC10ZXN0cy9wb3N0
bWVzc2FnZS1jbG9uZS1yZWFsbHktZGVlcC1hcnJheS5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZG9t
L1dpbmRvdy9zY3JpcHQtdGVzdHMvcG9zdG1lc3NhZ2UtY2xvbmUtcmVhbGx5LWRlZXAtYXJyYXku
anMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGZiNjA5NgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9zY3JpcHQtdGVzdHMvcG9zdG1l
c3NhZ2UtY2xvbmUtcmVhbGx5LWRlZXAtYXJyYXkuanMKQEAgLTAsMCArMSw2IEBACitkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgiZGVzY3JpcHRpb24iKS5pbm5lckhUTUwgPSAiVGVzdHMgdGhhdCB3
ZSBhYm9ydCBjbG9uaW5nIG92ZXJkZWVwIGFycmF5cy4iOworcmVhbGx5RGVlcEFycmF5PVtdOwor
Zm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7IGkrKykKKyAgICByZWFsbHlEZWVwQXJyYXk9W3Jl
YWxseURlZXBBcnJheV07Cit0cnlQb3N0TWVzc2FnZSgncmVhbGx5RGVlcEFycmF5JywgdHJ1ZSwg
bnVsbCwgRE9NRXhjZXB0aW9uLkRBVEFfQ0xPTkVfRVJSKTsKK3RyeVBvc3RNZXNzYWdlKCciZG9u
ZSInKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9zY3JpcHQtdGVz
dHMvcG9zdG1lc3NhZ2UtY2xvbmUuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvc2Ny
aXB0LXRlc3RzL3Bvc3RtZXNzYWdlLWNsb25lLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjhkYjViYTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9XaW5kb3cvc2NyaXB0LXRlc3RzL3Bvc3RtZXNzYWdlLWNsb25lLmpzCkBAIC0wLDAgKzEsMjc0
IEBACitkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGVzY3JpcHRpb24iKS5pbm5lckhUTUwgPSAi
VGVzdHMgdGhhdCB3ZSBjbG9uZSBvYmplY3QgaGllcmFyY2hpZXMiOworCit0cnlQb3N0TWVzc2Fn
ZSgnbnVsbCcpOwordHJ5UG9zdE1lc3NhZ2UoJ3VuZGVmaW5lZCcpOwordHJ5UG9zdE1lc3NhZ2Uo
JzEnKTsKK3RyeVBvc3RNZXNzYWdlKCd0cnVlJyk7Cit0cnlQb3N0TWVzc2FnZSgnIjEiJyk7Cit0
cnlQb3N0TWVzc2FnZSgnKHt9KScpOwordHJ5UG9zdE1lc3NhZ2UoJyh7YToxfSknKTsKK3RyeVBv
c3RNZXNzYWdlKCcoe2E6ImEifSknKTsKK3RyeVBvc3RNZXNzYWdlKCcoe2I6ImEiLCBhOiJiIn0p
Jyk7Cit0cnlQb3N0TWVzc2FnZSgnKHtwMDoic3RyaW5nMCIsIHAxOiJzdHJpbmcxIiwgcDI6InN0
cmluZzIiLCBwMzoic3RyaW5nMyIsIHA0OiJzdHJpbmc0IiwgcDU6InN0cmluZzUiLCBwNjoic3Ry
aW5nNiIsIHA3OiJzdHJpbmc3IiwgcDg6InN0cmluZzgiLCBwOToic3RyaW5nOSIsIHAxMDoic3Ry
aW5nMTAiLCBwMTE6InN0cmluZzExIiwgcDEyOiJzdHJpbmcxMiIsIHAxMzoic3RyaW5nMTMiLCBw
MTQ6InN0cmluZzE0IiwgcDE1OiJzdHJpbmcxNSIsIHAxNjoic3RyaW5nMTYiLCBwMTc6InN0cmlu
ZzE3IiwgcDE4OiJzdHJpbmcxOCIsIHAxOToic3RyaW5nMTkifSknKTsKK3RyeVBvc3RNZXNzYWdl
KCcoe3AwOiJzdHJpbmcxIiwgcDE6InN0cmluZzEiLCBwMjoic3RyaW5nMiIsIHAzOiJzdHJpbmcz
IiwgcDQ6InN0cmluZzQiLCBwNToic3RyaW5nNSIsIHA2OiJzdHJpbmc2IiwgcDc6InN0cmluZzci
LCBwODoic3RyaW5nOCIsIHA5OiJzdHJpbmc5IiwgcDEwOiJzdHJpbmcxMCIsIHAxMToic3RyaW5n
MTEiLCBwMTI6InN0cmluZzEyIiwgcDEzOiJzdHJpbmcxMyIsIHAxNDoic3RyaW5nMTQiLCBwMTU6
InN0cmluZzE1IiwgcDE2OiJzdHJpbmcxNiIsIHAxNzoic3RyaW5nMTciLCBwMTg6InN0cmluZzE4
IiwgcDE5OiJzdHJpbmcxOSJ9KScpOwordHJ5UG9zdE1lc3NhZ2UoJyh7YToiIn0pJyk7Cit0cnlQ
b3N0TWVzc2FnZSgnKHthOjB9KScpOwordHJ5UG9zdE1lc3NhZ2UoJyh7YToxfSknKTsKK3RyeVBv
c3RNZXNzYWdlKCdbXScpOwordHJ5UG9zdE1lc3NhZ2UoJ1siYSIsICJhIiwgImIiLCAiYSIsICJi
Il0nKTsKK3RyeVBvc3RNZXNzYWdlKCdbImEiLCAiYSIsICJiIiwge2E6ImIiLCBiOiJhIn1dJyk7
Cit0cnlQb3N0TWVzc2FnZSgnWzEsMiwzXScpOwordHJ5UG9zdE1lc3NhZ2UoJ1ssLDFdJyk7Cit0
cnlQb3N0TWVzc2FnZSgnKGZ1bmN0aW9uKCl7fSknLCB0cnVlLCBudWxsLCBET01FeGNlcHRpb24u
REFUQV9DTE9ORV9FUlIpOwordHJ5UG9zdE1lc3NhZ2UoJ25ldyBEYXRlKDEyMzQ1Njc4OTAwMDAp
Jyk7Cit0cnlQb3N0TWVzc2FnZSgnbmV3IENvbnN0cnVjdG9yV2l0aFByb3RvdHlwZSgiZm9vIikn
LCBmYWxzZSwgJyh7ZmllbGQ6ImZvbyJ9KScpOworY3ljbGljT2JqZWN0PXt9OworY3ljbGljT2Jq
ZWN0LnNlbGYgPSBjeWNsaWNPYmplY3Q7Cit0cnlQb3N0TWVzc2FnZSgnY3ljbGljT2JqZWN0Jywg
ZmFsc2UsICJjeWNsaWNPYmplY3QiKTsKK2N5Y2xpY0FycmF5PVtdOworY3ljbGljQXJyYXlbMF0g
PSBjeWNsaWNBcnJheTsKK3RyeVBvc3RNZXNzYWdlKCdjeWNsaWNBcnJheScsIGZhbHNlLCAiY3lj
bGljQXJyYXkiKTsKK29iamVjdEdyYXBoID0ge307CitvYmplY3QgPSB7fTsKK29iamVjdEdyYXBo
LmdyYXBoMSA9IG9iamVjdDsKK29iamVjdEdyYXBoLmdyYXBoMiA9IG9iamVjdDsKK3RyeVBvc3RN
ZXNzYWdlKCdvYmplY3RHcmFwaCcsIGZhbHNlLCAib2JqZWN0R3JhcGgiKTsKK2FycmF5R3JhcGgg
PSBbb2JqZWN0LCBvYmplY3RdOwordHJ5UG9zdE1lc3NhZ2UoJ2FycmF5R3JhcGgnLCBmYWxzZSwg
ImFycmF5R3JhcGgiKTsKK3RyeVBvc3RNZXNzYWdlKCd3aW5kb3cnLCB0cnVlKTsKK3RyeVBvc3RN
ZXNzYWdlKCcoe2dldCBhKCkgeyB0aHJvdyAieCIgfX0pJywgdHJ1ZSk7CisKK2lmICh3aW5kb3cu
ZXZlbnRTZW5kZXIpIHsKKyAgICB2YXIgZmlsZUlucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoImZpbGVJbnB1dCIpOworICAgIHZhciBmaWxlUmVjdCA9IGZpbGVJbnB1dC5nZXRDbGllbnRS
ZWN0cygpWzBdOworICAgIHZhciB0YXJnZXRYID0gZmlsZVJlY3QubGVmdCArIGZpbGVSZWN0Lndp
ZHRoIC8gMjsKKyAgICB2YXIgdGFyZ2V0WSA9IGZpbGVSZWN0LnRvcCArIGZpbGVSZWN0LmhlaWdo
dCAvIDI7CisgICAgZXZlbnRTZW5kZXIuYmVnaW5EcmFnV2l0aEZpbGVzKFsnZ290LWZpbGUtdXBs
b2FkLmh0bWwnLCAnZ290LWZpbGUtdXBsb2FkLTIuaHRtbCddKTsKKyAgICBldmVudFNlbmRlci5t
b3VzZU1vdmVUbyh0YXJnZXRYLCB0YXJnZXRZKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7
Cit9Cit2YXIgaW1hZ2VEYXRhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIikuZ2V0
Q29udGV4dCgiMmQiKS5jcmVhdGVJbWFnZURhdGEoMTAsMTApOworZm9yICh2YXIgaSA9IDA7IGkg
PCBpbWFnZURhdGEuZGF0YS5sZW5ndGggKiA0OyBpKyspCisgICAgaW1hZ2VEYXRhLmRhdGFbaV0g
PSBpICUgMjU2OwordmFyIG11dGF0ZWRJbWFnZURhdGEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCJjYW52YXMiKS5nZXRDb250ZXh0KCIyZCIpLmNyZWF0ZUltYWdlRGF0YSgxMCwxMCk7Citmb3Ig
KHZhciBpID0gMDsgaSA8IGltYWdlRGF0YS5kYXRhLmxlbmd0aCAqIDQ7IGkrKykKKyAgICBtdXRh
dGVkSW1hZ2VEYXRhLmRhdGFbaV0gPSBpICUgMjU2OwordHJ5UG9zdE1lc3NhZ2UoJ2ltYWdlRGF0
YScsIGZhbHNlLCBpbWFnZURhdGEpOwordHJ5UG9zdE1lc3NhZ2UoJ2ltYWdlRGF0YS5kYXRhJywg
dHJ1ZSwgbnVsbCwgRE9NRXhjZXB0aW9uLkRBVEFfQ0xPTkVfRVJSKQordHJ5UG9zdE1lc3NhZ2Uo
J211dGF0ZWRJbWFnZURhdGEnLCBmYWxzZSwgaW1hZ2VEYXRhKTsKK3RyeVBvc3RNZXNzYWdlKCdt
dXRhdGVkSW1hZ2VEYXRhLmRhdGEnLCB0cnVlLCBudWxsLCBET01FeGNlcHRpb24uREFUQV9DTE9O
RV9FUlIpCitmb3IgKHZhciBpID0gMDsgaSA8IGltYWdlRGF0YS5kYXRhLmxlbmd0aCAqIDQ7IGkr
KykKKyAgICBtdXRhdGVkSW1hZ2VEYXRhLmRhdGFbaV0gPSAwOworCitmdW5jdGlvbiB0aHVuayhz
KSB7CisgICAgcmV0dXJuICIoZnVuY3Rpb24oKSB7IiArIHMgKyAifSkoKSI7Cit9Cit0cnlQb3N0
TWVzc2FnZSh0aHVuaygncmV0dXJuIDQyOycpLCBmYWxzZSwgJzQyJyk7Cit0cnlQb3N0TWVzc2Fn
ZSh0aHVuaygncmV0dXJuIDQyOycpLCBmYWxzZSwgdGh1bmsoJ3JldHVybiA0MCArIDI7JykpOwor
dHJ5UG9zdE1lc3NhZ2UodGh1bmsoJ3JldHVybiA0MjsnKSwgZmFsc2UsICJldmFsVGh1bmsiLAor
ICAgICAgICAgICAgICAgZnVuY3Rpb24odikgeyBkb1Bhc3NGYWlsKHYgPT0gNDIsICJldmFsVGh1
bmsgT0siKTsgfSkKKworLy8gT25seSBlbnVtZXJhYmxlIHByb3BlcnRpZXMgc2hvdWxkIGJlIHNl
cmlhbGl6ZWQuCit0cnlQb3N0TWVzc2FnZSh0aHVuaygndmFyIG8gPSB7eDoiaGVsbG8ifTsgT2Jq
ZWN0LmRlZmluZVByb3BlcnR5KG8sICJ5Iiwge3ZhbHVlOiJnb29kYnllIn0pOyByZXR1cm4gbzsn
KSwgZmFsc2UsICcoe3g6ImhlbGxvIn0pJyk7CisKKy8vIEl0J3MgdW5jbGVhciB3aGF0IHdlIHNo
b3VsZCBkbyBpZiBhbiBhY2Nlc3NvciBtb2RpZmllcyBhbiBvYmplY3Qgb3V0IGZyb20gdW5kZXIg
dXMKKy8vIHdoaWxlIHdlJ3JlIHNlcmlhbGl6aW5nIGl0OyB0aGUgc3RhbmRhcmQgZG9lcyBtYW5k
YXRlIGNlcnRhaW4gYXNwZWN0cyBhYm91dCBldmFsdWF0aW9uCisvLyBvcmRlciwgdGhvdWdoLCBp
bmNsdWRpbmcgdGhhdCBwcm9wZXJ0aWVzIG11c3QgYmUgcHJvY2Vzc2VkIGluIHRoZWlyIGVudW1l
cmF0aW9uIG9yZGVyLgordHJ5UG9zdE1lc3NhZ2UodGh1bmsoCisgICAgICAgICd2YXIgYSA9IFsw
LCAxLCAyXTsgJyArCisgICAgICAgICd2YXIgYiA9IHsgZ2V0IHgoKSB7IGFbMF0gPSA0MDsgYVsy
XSA9IDQyOyBhLnB1c2goNDMpOyByZXR1cm4gNDE7IH19OyAnICsKKyAgICAgICAgJ2FbMV0gPSBi
OyAnICsKKyAgICAgICAgJ3JldHVybiBhOycKKyAgICApLCBmYWxzZSwgImV2YWxUaHVuayIsIGZ1
bmN0aW9uKHYpIHsKKyAgICAgICAgZG9QYXNzRmFpbCh2Lmxlbmd0aCA9PT0gMywgImxlbmd0aCBj
b3JyZWN0Iik7IC8vIHVuZGVmaW5lZAorICAgICAgICBkb1Bhc3NGYWlsKHZbMF0gPT09IDAsICJl
dmFsdWF0aW9uIG9yZGVyIE9LIik7IC8vIG1hbmRhdG9yeQorICAgICAgICBkb1Bhc3NGYWlsKHZb
MV0ueCA9PT0gNDEsICJldmFsdWF0aW9uIG9yZGVyIE9LL2FjY2Vzc29yIHJlYWNoZWQiKTsgLy8g
bWFuZGF0b3J5CisgICAgICAgIGRvUGFzc0ZhaWwodlsyXSA9PT0gNDIsICJldmFsdWF0aW9uIG9y
ZGVyIE9LIik7IC8vIG1hbmRhdG9yeQorICAgIH0pOworCit0cnlQb3N0TWVzc2FnZSh0aHVuaygK
KyAgICAgICAgJ3ZhciBhID0gWzAsIDEsIDJdOyAnICsKKyAgICAgICAgJ3ZhciBiID0geyBnZXQg
eCgpIHsgYS5wb3AoKTsgcmV0dXJuIDQxOyB9IH07ICcgKworICAgICAgICAnYVsxXSA9IGI7ICcg
KworICAgICAgICAncmV0dXJuIGE7JworICAgICksIGZhbHNlLCAiZXZhbFRodW5rIiwgZnVuY3Rp
b24odikgeworICAgICAgICBkb1Bhc3NGYWlsKHYubGVuZ3RoID09PSAzLCAibGVuZ3RoIGNvcnJl
Y3QiKTsgLy8gdW5kZWZpbmVkCisgICAgICAgIGRvUGFzc0ZhaWwodlswXSA9PT0gMCwgImluZGV4
IDAgT0siKTsgLy8gbWFuZGF0b3J5CisgICAgICAgIGRvUGFzc0ZhaWwodlsxXS54ID09PSA0MSwg
ImFjY2Vzc29yIHJlYWNoZWQiKTsgLy8gbWFuZGF0b3J5CisgICAgICAgIGRvUGFzc0ZhaWwodlsy
XSA9PT0gdW5kZWZpbmVkLCAiaW5kZXggMiB1bmRlZmluZWQiKTsgLy8gdW5kZWZpbmVkCisgICAg
fSk7CisKK3RyeVBvc3RNZXNzYWdlKHRodW5rKAorICAgICAgICAndmFyIGEgPSBbMCwgMSwgMl07
ICcgKworICAgICAgICAndmFyIGIgPSB7IGdldCB4KCkgeyBhLnBvcCgpOyByZXR1cm4gNDE7IH0g
fTsgJyArCisgICAgICAgICdhWzJdID0gYjsgJyArCisgICAgICAgICdyZXR1cm4gYTsnCisgICAg
KSwgZmFsc2UsICJldmFsVGh1bmsiLCBmdW5jdGlvbih2KSB7CisgICAgICAgIGRvUGFzc0ZhaWwo
di5sZW5ndGggPT09IDMsICJsZW5ndGggY29ycmVjdCIpOyAvLyB1bmRlZmluZWQKKyAgICAgICAg
ZG9QYXNzRmFpbCh2WzBdID09PSAwLCAiaW5kZXggMCBPSyIpOyAvLyBtYW5kYXRvcnkKKyAgICAg
ICAgZG9QYXNzRmFpbCh2WzFdID09PSAxLCAiaW5kZXggMSBPSyIpOyAvLyBtYW5kYXRvcnkKKyAg
ICAgICAgZG9QYXNzRmFpbCh2WzJdLnggPT09IDQxLCAiaW5kZXggMiBPSyIpOyAvLyB1bmRlZmlu
ZWQKKyAgICB9KTsKKworLy8gTm93IHdpdGggb2JqZWN0cyEgVGhpcyBpcyBhIGxpdHRsZSBtb3Jl
IHRyaWNreSBiZWNhdXNlIHRoZSBzdGFuZGFyZCBkb2VzIG5vdAorLy8gZGVmaW5lIGFuIGVudW1l
cmF0aW9uIG9yZGVyLgordHJ5UG9zdE1lc3NhZ2UodGh1bmsoCisgICAgICAgICd2YXIgYSA9IHtw
MDogMCwgcDE6IDF9OyAnICsKKyAgICAgICAgJ09iamVjdC5kZWZpbmVQcm9wZXJ0eShhLCAicDIi
LCB7Z2V0OmZ1bmN0aW9uKCkge2RlbGV0ZSBhLnAzOyByZXR1cm4gNDI7IH0sIGVudW1lcmFibGU6
IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZX0pOyAnICsKKyAgICAgICAgJ09iamVjdC5kZWZpbmVQ
cm9wZXJ0eShhLCAicDMiLCB7Z2V0OmZ1bmN0aW9uKCkge2RlbGV0ZSBhLnAyOyByZXR1cm4gNDM7
IH0sIGVudW1lcmFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZX0pOyAnICsKKyAgICAgICAg
J09iamVjdC5kZWZpbmVQcm9wZXJ0eShhLCAicDQiLCB7Z2V0OmZ1bmN0aW9uKCkgeyBhLnA1ID0g
NDU7IHJldHVybiA0NDsgfSwgZW51bWVyYWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlfSk7
ICcgKworICAgICAgICAncmV0dXJuIGE7JworICAgICksIGZhbHNlLCAiZXZhbFRodW5rIiwgZnVu
Y3Rpb24odikgeworICAgICAgICBkb1Bhc3NGYWlsKHYucDAgPT09IDAgJiYgdi5wMSA9PT0gMSwg
ImJhc2ljIHByb3BlcnRpZXMgT0siKTsgLy8gbWFuZGF0b3J5CisgICAgICAgIGRvUGFzc0ZhaWwo
di5wMiA9PT0gdW5kZWZpbmVkICYmIHYucDMgIT09IHVuZGVmaW5lZCB8fAorICAgICAgICAgICAg
ICAgICAgIHYucDIgIT09IHVuZGVmaW5lZCAmJiB2LnAzID09PSB1bmRlZmluZWQsICJvbmUgYWNj
ZXNzb3Igd2FzIHJ1biIpOyAvLyBtYW5kYXRvcnkKKyAgICAgICAgZG9QYXNzRmFpbCh2LnAyICE9
PSB1bmRlZmluZWQgfHwgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih2LCAicDIiKSA9
PT0gdW5kZWZpbmVkLCAicHJvcGVydHkgd2FzIHJlbW92ZWQiKTsgLy8gdW5kZWZpbmVkCisgICAg
ICAgIGRvUGFzc0ZhaWwodi5wMyAhPT0gdW5kZWZpbmVkIHx8IE9iamVjdC5nZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3IodiwgInAzIikgPT09IHVuZGVmaW5lZCwgInByb3BlcnR5IHdhcyByZW1vdmVk
Iik7IC8vIHVuZGVmaW5lZAorICAgICAgICBkb1Bhc3NGYWlsKHYucDQgPT09IDQ0LCAiYWNjZXNz
b3Igd2FzIHJ1biIpOyAvLyBtYW5kYXRvcnkKKyAgICAgICAgZG9QYXNzRmFpbChPYmplY3QuZ2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKHYsICJwNSIpID09PSB1bmRlZmluZWQsICJkeW5hbWljIHBy
b3BlcnR5IG5vdCBzZW50Iik7IC8vIHVuZGVmaW5lZAorICAgIH0pOworCisvLyBPYmplY3RzIHJl
dHVybmVkIGZyb20gYWNjZXNzb3JzIHNob3VsZCBzdGlsbCBiZSBjb2FsZXNjZWQuCit0cnlQb3N0
TWVzc2FnZSh0aHVuaygKKyAgICAgICAgJ3ZhciBvYmphID0ge2dldCBwKCkgeyByZXR1cm4gNDI7
IH19OyAnICsKKyAgICAgICAgJ3ZhciBtc2cgPSB7Z2V0IGEoKSB7IHJldHVybiBvYmphOyB9LCBi
OiBvYmphfTsgJyArCisgICAgICAgICdyZXR1cm4gbXNnOycKKyAgICApLCBmYWxzZSwgImV2YWxU
aHVuayIsIGZ1bmN0aW9uKHYpIHsKKyAgICAgICAgLy8gSW50ZXJlc3RpbmdseSwgdGhlIHN0YW5k
YXJkIGFkbWl0cyB0d28gYW5zd2VycyBoZXJlIQorICAgICAgICBkb1Bhc3NGYWlsKHYuYSA9PT0g
di5iLCAicmVmZXJlbmNlIGVxdWFsaXR5IHByZXNlcnZlZCIpOworICAgICAgICBkb1Bhc3NGYWls
KCh2LmIucCA9PT0gNDIgJiYgdi5hLnAgPT09IDQyKSB8fAorICAgICAgICAgICAgKHYuYi5wID09
PSBudWxsICYmIHYuYS5wID09PSBudWxsKSwgImFjY2Vzc29ycyB1c2VkIik7CisgICAgfSk7Cit0
cnlQb3N0TWVzc2FnZSh0aHVuaygKKyAgICAgICAgJ3ZhciBvYmphID0ge2dldCBwKCkgeyByZXR1
cm4gNDI7IH19OyAnICsKKyAgICAgICAgJ3ZhciBtc2cgPSB7YTogb2JqYSwgZ2V0IGIoKSB7IHJl
dHVybiBvYmphOyB9fTsgJyArCisgICAgICAgICdyZXR1cm4gbXNnOycKKyAgICApLCBmYWxzZSwg
ImV2YWxUaHVuayIsIGZ1bmN0aW9uKHYpIHsKKyAgICAgICAgLy8gSW50ZXJlc3RpbmdseSwgdGhl
IHN0YW5kYXJkIGFkbWl0cyB0d28gYW5zd2VycyBoZXJlIQorICAgICAgICBkb1Bhc3NGYWlsKHYu
YSA9PT0gdi5iLCAicmVmZXJlbmNlIGVxdWFsaXR5IHByZXNlcnZlZCAob3Bwb3NpdGUgb3JkZXIp
Iik7CisgICAgICAgIGRvUGFzc0ZhaWwoKHYuYi5wID09PSA0MiAmJiB2LmEucCA9PT0gNDIpIHx8
CisgICAgICAgICAgICAgICAgICAgKHYuYi5wID09PSBudWxsICYmIHYuYS5wID09PSBudWxsKSwg
ImFjY2Vzc29ycyB1c2VkIChvcHBvc2l0ZSBvcmRlcikiKTsKKyAgICB9KTsKKy8vIFdlIHNob3Vs
ZCBudWxsaWZ5IHRoZSByZXN1bHRzIGZyb20gYWNjZXNzb3JzIG1vcmUgdGhhbiBvbmUgbGV2ZWwg
ZGVlcCwKKy8vIGJ1dCBsZWF2ZSBvdGhlciBmaWVsZHMgdW50b3VjaGVkLgordHJ5UG9zdE1lc3Nh
Z2UodGh1bmsoCisgICAgICAgICd2YXIgb2JqYSA9IHtnZXQgcCgpIHsgcmV0dXJuIDQyOyB9LCBx
OiA0M307ICcgKworICAgICAgICAncmV0dXJuIHtnZXQgYSgpIHsgcmV0dXJuIG9iamE7IH19OycK
KyAgICApLCBmYWxzZSwgImV2YWxUaHVuayIsIGZ1bmN0aW9uKHYpIHsKKyAgICAgICAgZG9QYXNz
RmFpbCh2LmEucCA9PT0gbnVsbCwgImFjY2Vzc29yIHZhbHVlIHdhcyBudWxsaWZpZWQiKTsKKyAg
ICAgICAgZG9QYXNzRmFpbCh2LmEucSA9PT0gNDMsICJub24tYWNjZXNzb3IgdmFsdWUgd2FzIG5v
dCBudWxsaWZpZWQiKTsKKyAgICB9KTsKK3RyeVBvc3RNZXNzYWdlKHRodW5rKAorICAgICAgICAn
dmFyIG9iamIgPSB7Z2V0IHIoKSB7IHJldHVybiA0NDsgfSwgdDogNDV9OyAnICsKKyAgICAgICAg
J3ZhciBvYmphID0ge2dldCBwKCkgeyByZXR1cm4gNDI7IH0sIHE6IDQzLCBzOiBvYmpifTsgJyAr
CisgICAgICAgICdyZXR1cm4ge2dldCBhKCkgeyByZXR1cm4gb2JqYTsgfX07JworICAgICksIGZh
bHNlLCAiZXZhbFRodW5rIiwgZnVuY3Rpb24odikgeworICAgICAgICBkb1Bhc3NGYWlsKHYuYS5w
ID09PSBudWxsLCAiYWNjZXNzb3IgdmFsdWUgd2FzIG51bGxpZmllZCIpOworICAgICAgICBkb1Bh
c3NGYWlsKHYuYS5xID09PSA0MywgIm5vbi1hY2Nlc3NvciB2YWx1ZSB3YXMgbm90IG51bGxpZmll
ZCIpOworICAgICAgICBkb1Bhc3NGYWlsKHYucyAhPT0gbnVsbCwgIm5vbi1hY2Nlc3NvciB2YWx1
ZSB3YXMgbm90IG51bGxpZmllZCIpOworICAgICAgICBkb1Bhc3NGYWlsKHYuYS5zLnIgPT09IG51
bGwsICJhY2Nlc3NvciB2YWx1ZSB3YXMgbnVsbGlmaWVkIik7CisgICAgICAgIGRvUGFzc0ZhaWwo
di5hLnMudCA9PT0gNDUsICJub24tYWNjZXNzb3IgdmFsdWUgd2FzIG5vdCBudWxsaWZpZWQiKTsK
KyAgICB9KTsKK3RyeVBvc3RNZXNzYWdlKHRodW5rKAorICAgICAgICAndmFyIG9iamIgPSB7Z2V0
IHIoKSB7IHJldHVybiA0NDsgfSwgdDogNDV9OyAnICsKKyAgICAgICAgJ3ZhciBvYmphID0ge2dl
dCBwKCkgeyByZXR1cm4gNDI7IH0sIHE6IDQzLCBzOiBbb2JqYl19OyAnICsKKyAgICAgICAgJ3Jl
dHVybiB7Z2V0IGMoKSB7IHJldHVybiA0NzsgfSwgZ2V0IGEoKSB7IHJldHVybiBvYmphOyB9LCBn
ZXQgYigpIHsgcmV0dXJuIDQ2OyB9IH07JworICAgICksIGZhbHNlLCAiZXZhbFRodW5rIiwgZnVu
Y3Rpb24odikgeworICAgICAgICBkb1Bhc3NGYWlsKHYuYiA9PT0gNDYsICJhY2Nlc3NvciB2YWx1
ZSB3YXMgbm90IG51bGxpZmllZCIpOworICAgICAgICBkb1Bhc3NGYWlsKHYuYyA9PT0gNDcsICJh
Y2Nlc3NvciB2YWx1ZSB3YXMgbm90IG51bGxpZmllZCIpOworICAgICAgICBkb1Bhc3NGYWlsKHYu
YS5wID09PSBudWxsLCAiYWNjZXNzb3IgdmFsdWUgd2FzIG51bGxpZmllZCIpOworICAgICAgICBk
b1Bhc3NGYWlsKHYuYS5xID09PSA0MywgIm5vbi1hY2Nlc3NvciB2YWx1ZSB3YXMgbm90IG51bGxp
ZmllZCIpOworICAgICAgICBkb1Bhc3NGYWlsKHYuYS5zICE9PSBudWxsLCAibm9uLWFjY2Vzc29y
IHZhbHVlIHdhcyBub3QgbnVsbGlmaWVkIik7CisgICAgICAgIGRvUGFzc0ZhaWwodi5hLnMgIT09
IHVuZGVmaW5lZCwgIm5vbi1hY2Nlc3NvciB2YWx1ZSBpcyBkZWZpbmVkIik7CisgICAgICAgIGRv
UGFzc0ZhaWwodi5hLnNbMF0gIT09IG51bGwsICJub24tYWNjZXNzb3IgdmFsdWUgd2FzIG5vdCBu
dWxsaWZpZWQiKTsKKyAgICAgICAgZG9QYXNzRmFpbCh2LmEuc1swXSAhPT0gdW5kZWZpbmVkLCAi
bm9uLWFjY2Vzc29yIHZhbHVlIGlzIGRlZmluZWQiKTsKKyAgICAgICAgZG9QYXNzRmFpbCh2LmEu
c1swXS5yID09PSBudWxsLCAiYWNjZXNzb3IgdmFsdWUgd2FzIG51bGxpZmllZCIpOworICAgICAg
ICBkb1Bhc3NGYWlsKHYuYS5zWzBdLnQgPT09IDQ1LCAibm9uLWFjY2Vzc29yIHZhbHVlIHdhcyBu
b3QgbnVsbGlmaWVkIik7CisgICAgfSk7CisKKy8vIFdlIG5lZWQgdG8gcGFzcyBvdXQgdGhlIGV4
Y2VwdGlvbiByYWlzZWQgZnJvbSBpbnRlcm5hbCBhY2Nlc3NvcnMuCit0cnlQb3N0TWVzc2FnZSh0
aHVuaygKKyAgICAgICAgJ3JldHVybiB7Z2V0IGEoKSB7IHRocm93ICJhY2Nlc3Nvci1leG4iOyB9
fTsnCisgICAgKSwgdHJ1ZSwgbnVsbCwgJ2FjY2Vzc29yLWV4bicpOworLy8gV2Ugc2hvdWxkIHN0
aWxsIHJldHVybiB0aGUgZXhjZXB0aW9uIHJhaXNlZCBmcm9tIG51bGxlZC1vdXQgYWNjZXNzb3Jz
LgordHJ5UG9zdE1lc3NhZ2UodGh1bmsoCisgICAgICAgICd2YXIgb2JqYSA9IHtnZXQgcCgpIHsg
dGhyb3cgImFjY2Vzc29yLWV4biI7IH19OyAnICsKKyAgICAgICAgJ3JldHVybiB7Z2V0IGEoKSB7
IHJldHVybiBvYmphOyB9fTsnCisgICAgKSwgdHJ1ZSwgbnVsbCwgJ2FjY2Vzc29yLWV4bicpOwor
Ly8gV2Ugc2hvdWxkIHJ1biB0aGUgZmlyc3QgbnVsbGlmaWVkIGFjY2Vzc29yLCBidXQgbm8gbW9y
ZS4KK3RyeVBvc3RNZXNzYWdlKHRodW5rKAorICAgICAgICAnd2luZG93LmJjYWxsZWQgPSB1bmRl
ZmluZWQ7ICcgKworICAgICAgICAnd2luZG93LmFjYWxsZWQgPSB1bmRlZmluZWQ7ICcgKworICAg
ICAgICAnd2luZG93LnBjYWxsZWQgPSB1bmRlZmluZWQ7ICcgKworICAgICAgICAndmFyIG9iamIg
PSB7Z2V0IGIoKSB7IHdpbmRvdy5iY2FsbGVkID0gdHJ1ZTsgcmV0dXJuIDQyOyB9fTsgJyArCisg
ICAgICAgICd2YXIgb2JqYSA9IHtnZXQgYSgpIHsgd2luZG93LmFjYWxsZWQgPSB0cnVlOyByZXR1
cm4gb2JqYjsgfX07ICcgKworICAgICAgICAncmV0dXJuIHsgZ2V0IHAoKSB7IHdpbmRvdy5wY2Fs
bGVkID0gdHJ1ZTsgcmV0dXJuIG9iamE7IH19OycKKyAgICApLCBmYWxzZSwgImV2YWxUaHVuayIs
IGZ1bmN0aW9uKHYpIHsKKyAgICAgICAgZG9QYXNzRmFpbCh2LnAuYSA9PT0gbnVsbCwgImFjY2Vz
c29yIHZhbHVlIHdhcyBudWxsaWZpZWQiKTsKKyAgICAgICAgZG9QYXNzRmFpbCh3aW5kb3cucGNh
bGxlZCA9PT0gdHJ1ZSwgIndpbmRvdy5wY2FsbGVkID09PSB0cnVlIik7CisgICAgICAgIGRvUGFz
c0ZhaWwod2luZG93LmFjYWxsZWQgPT09IHRydWUsICJ3aW5kb3cuYWNhbGxlZCA9PT0gdHJ1ZSIp
OworICAgICAgICBkb1Bhc3NGYWlsKHdpbmRvdy5iY2FsbGVkID09PSB1bmRlZmluZWQsICJ3aW5k
b3cuYmNhbGxlZCA9PT0gdW5kZWZpbmVkIik7CisgICAgfSk7CisKKy8vIFJlZmVyZW5jZSBlcXVh
bGl0eSBiZXR3ZWVuIGRhdGVzIG11c3QgYmUgbWFpbnRhaW5lZC4KK3RyeVBvc3RNZXNzYWdlKHRo
dW5rKAorICAgICAgICAndmFyIGQxID0gbmV3IERhdGUoMSwyLDMpOyAnICsKKyAgICAgICAgJ3Zh
ciBkMiA9IG5ldyBEYXRlKDEsMiwzKTsgJyArCisgICAgICAgICdyZXR1cm4gW2QxLGQxLGQyXTsn
CisgICAgKSwgZmFsc2UsICJldmFsVGh1bmsiLCBmdW5jdGlvbih2KSB7CisgICAgICAgIGRvUGFz
c0ZhaWwoZXF1YWwodlswXSwgbmV3IERhdGUoMSwyLDMpKSwgIkRhdGUgdmFsdWVzIGNvcnJlY3Qg
KDApIik7CisgICAgICAgIGRvUGFzc0ZhaWwoZXF1YWwodlswXSwgdlsyXSksICJEYXRlIHZhbHVl
cyBjb3JyZWN0ICgxKSIpOworICAgICAgICBkb1Bhc3NGYWlsKHZbMF0gPT09IHZbMV0sICJSZWZl
cmVuY2VzIHRvIGRhdGVzIGNvcnJlY3QgKDApIik7CisgICAgICAgIGRvUGFzc0ZhaWwodlswXSAh
PT0gdlsyXSwgIlJlZmVyZW5jZXMgdG8gZGF0ZXMgY29ycmVjdCAoMSkiKTsKKyAgICB9KTsKKwor
Ly8gUmVmZXJlbmNlIGVxdWFsaXR5IGJldHdlZW4gcmVnZXhwcyBtdXN0IGJlIHByZXNlcnZlZC4K
K3RyeVBvc3RNZXNzYWdlKHRodW5rKAorICAgICAgICAndmFyIHJ4MSA9IG5ldyBSZWdFeHAoImZv
byIpOyAnICsKKyAgICAgICAgJ3ZhciByeDIgPSBuZXcgUmVnRXhwKCJmb28iKTsgJyArCisgICAg
ICAgICd2YXIgcngzID0gbmV3IFJlZ0V4cCgiZm9vIiwgImdpbSIpOyAnICsKKyAgICAgICAgJ3J4
My5leGVjKCJmb29mb29mb28iKTsgJyArCisgICAgICAgICdkb1Bhc3NGYWlsKHJ4My5sYXN0SW5k
ZXggPT09IDMsICJsYXN0SW5kZXggaW5pdGlhbGx5IGNvcnJlY3Q6IHdhcyAiICsgcngzLmxhc3RJ
bmRleCk7ICcgKworICAgICAgICAncmV0dXJuIFtyeDEscngxLHJ4MixyeDNdOycKKyAgICApLCBm
YWxzZSwgImV2YWxUaHVuayIsIGZ1bmN0aW9uKHYpIHsKKyAgICAgICAgZG9QYXNzRmFpbCh2WzBd
LnNvdXJjZSA9PT0gImZvbyIsICJSZWdleHAgdmFsdWUgY29ycmVjdCAoMCkiKTsKKyAgICAgICAg
ZG9QYXNzRmFpbCh2WzBdID09PSB2WzFdLCAiUmVmZXJlbmNlcyB0byByZWdleHBzIGNvcnJlY3Qg
KDApIik7CisgICAgICAgIGRvUGFzc0ZhaWwodlswXSAhPT0gdlsyXSwgIlJlZmVyZW5jZXMgdG8g
cmVnZXhwcyBjb3JyZWN0ICgxKSIpOworICAgICAgICBkb1Bhc3NGYWlsKHZbMF0uZ2xvYmFsID09
PSBmYWxzZSwgImdsb2JhbCBzZXQgKDApIik7CisgICAgICAgIGRvUGFzc0ZhaWwodlszXS5nbG9i
YWwgPT09IHRydWUsICJnbG9iYWwgc2V0ICgxKSIpOworICAgICAgICBkb1Bhc3NGYWlsKHZbMF0u
aWdub3JlQ2FzZSA9PT0gZmFsc2UsICJpZ25vcmVDYXNlIHNldCAoMCkiKTsKKyAgICAgICAgZG9Q
YXNzRmFpbCh2WzNdLmlnbm9yZUNhc2UgPT09IHRydWUsICJpZ25vcmVDYXNlIHNldCAoMSkiKTsK
KyAgICAgICAgZG9QYXNzRmFpbCh2WzBdLm11bHRpbGluZSA9PT0gZmFsc2UsICJtdWx0aWxpbmUg
c2V0ICgwKSIpOworICAgICAgICBkb1Bhc3NGYWlsKHZbM10ubXVsdGlsaW5lID09PSB0cnVlLCAi
bXVsdGlsaW5lIHNldCAoMSkiKTsKKyAgICAgICAgZG9QYXNzRmFpbCh2WzBdLmxhc3RJbmRleCA9
PT0gMCwgImxhc3RJbmRleCBjb3JyZWN0ICgwKSIpOworICAgICAgICBkb1Bhc3NGYWlsKHZbM10u
bGFzdEluZGV4ID09PSAwLCAibGFzdEluZGV4IGNvcnJlY3QgKDEpIik7CisgICAgfSk7CisKK2lm
ICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICB0cnlQb3N0TWVzc2FnZSh0aHVuaygKKyAgICAg
ICAgJ3dpbmRvdy5maWxlTGlzdCA9IGZpbGVJbnB1dC5maWxlczsgJyArCisgICAgICAgICd3aW5k
b3cuZmlsZTAgPSBmaWxlTGlzdFswXTsgJyArCisgICAgICAgICd3aW5kb3cuZmlsZTEgPSBmaWxl
TGlzdFsxXTsgJyArCisgICAgICAgICdyZXR1cm4gd2luZG93LmZpbGVMaXN0Lmxlbmd0aCcpLCBm
YWxzZSwgMik7CisgICAgZG9QYXNzRmFpbCh3aW5kb3cuZmlsZUxpc3RbMF0gPT09IHdpbmRvdy5m
aWxlMCwgInNhbml0eSBvbiBmaWxlIHJlZmVyZW5jZSBlcXVhbGl0eSIpCisgICAgLy8gVGhlIHN0
YW5kYXJkIG1hbmRhdGVzIHRoYXQgd2UgZG8gX25vdF8gbWFpbnRhaW4gcmVmZXJlbmNlIGVxdWFs
aXR5IGZvciBmaWxlcyBpbiBhIHRyYW5zZmVycmVkIEZpbGVMaXN0LgorICAgIHRyeVBvc3RNZXNz
YWdlKHRodW5rKCdyZXR1cm4gW3dpbmRvdy5maWxlMCwgd2luZG93LmZpbGUwXTsnCisgICAgICAg
ICksIGZhbHNlLCAiZXZhbFRodW5rIiwgZnVuY3Rpb24odikgeyBkb1Bhc3NGYWlsKHZbMF0gPT09
IHZbMV0sICJmaWxlIHJlZmVyZW5jZXMgdHJhbnNmZXIiKX0pOworICAgIHRyeVBvc3RNZXNzYWdl
KHRodW5rKCdyZXR1cm4gW3dpbmRvdy5maWxlTGlzdCwgd2luZG93LmZpbGUwXTsnCisgICAgICAg
ICksIGZhbHNlLCAiZXZhbFRodW5rIiwgZnVuY3Rpb24odikgeyBkb1Bhc3NGYWlsKHZbMF1bMF0g
IT09IHZbMV0sICJGaWxlTGlzdCBzaG91bGQgbm90IHJlc3BlY3QgcmVmZXJlbmNlIGVxdWFsaXR5
Iil9KTsKKyAgICB0cnlQb3N0TWVzc2FnZSh0aHVuaygncmV0dXJuIFt3aW5kb3cuZmlsZTAsIHdp
bmRvdy5maWxlTGlzdF07JworICAgICAgICApLCBmYWxzZSwgImV2YWxUaHVuayIsIGZ1bmN0aW9u
KHYpIHsgZG9QYXNzRmFpbCh2WzFdWzBdICE9PSB2WzBdLCAiRmlsZUxpc3Qgc2hvdWxkIG5vdCBy
ZXNwZWN0IHJlZmVyZW5jZSBlcXVhbGl0eSIpfSk7CisgICAgdHJ5UG9zdE1lc3NhZ2UodGh1bmso
J3JldHVybiBbd2luZG93LmZpbGVMaXN0LCB3aW5kb3cuZmlsZUxpc3RdOycKKyAgICAgICAgKSwg
ZmFsc2UsICJldmFsVGh1bmsiLCBmdW5jdGlvbih2KSB7IGRvUGFzc0ZhaWwodlswXSA9PT0gdlsx
XSwgIkZpbGVMaXN0IHJlc3BlY3RzIHNlbGYtcmVmZXJlbmNlIGVxdWFsaXR5Iil9KTsKKyAgICB0
cnlQb3N0TWVzc2FnZSh0aHVuaygncmV0dXJuIFt3aW5kb3cuZmlsZUxpc3QsIHdpbmRvdy5maWxl
MCwgd2luZG93LmZpbGUxXScKKyAgICAgICAgKSwgZmFsc2UsICJldmFsVGh1bmsiLCBmdW5jdGlv
bih2KSB7CisgICAgICAgICAgICBkb1Bhc3NGYWlsKHZbMF0ubGVuZ3RoID09PSB3aW5kb3cuZmls
ZUxpc3QubGVuZ3RoLCAiRmlsZUxpc3QgbGVuZ3RoIHNlbnQgY29ycmVjdGx5Iik7CisgICAgICAg
ICAgICBkb1Bhc3NGYWlsKHZbMF1bMF0gIT09IHZbMV0sICJGaWxlTGlzdCBzaG91bGQgbm90IHJl
c3BlY3QgcmVmZXJlbmNlIGVxdWFsaXR5ICgwKSIpOworICAgICAgICAgICAgZG9QYXNzRmFpbCh2
WzBdWzFdICE9PSB2WzJdLCAiRmlsZUxpc3Qgc2hvdWxkIG5vdCByZXNwZWN0IHJlZmVyZW5jZSBl
cXVhbGl0eSAoMSkiKTsKKyAgICAgICAgICAgIGRvUGFzc0ZhaWwodlswXVswXS5uYW1lID09IHdp
bmRvdy5maWxlMC5uYW1lLCAiRmlsZUxpc3QgcHJlc2VydmVzIG9yZGVyIGFuZCBkYXRhIChuYW1l
MCkiKTsKKyAgICAgICAgICAgIGRvUGFzc0ZhaWwodlswXVsxXS5uYW1lID09IHdpbmRvdy5maWxl
MS5uYW1lLCAiRmlsZUxpc3QgcHJlc2VydmVzIG9yZGVyIGFuZCBkYXRhIChuYW1lMSkiKTsKKyAg
ICAgICAgICAgIGRvUGFzc0ZhaWwoZXF1YWwodlswXVswXS5sYXN0TW9kaWZpZWREYXRlLCB3aW5k
b3cuZmlsZTAubGFzdE1vZGlmaWVkRGF0ZSksICJGaWxlTGlzdCBwcmVzZXJ2ZXMgb3JkZXIgYW5k
IGRhdGEgKGRhdGUwKSIpOworICAgICAgICAgICAgZG9QYXNzRmFpbChlcXVhbCh2WzBdWzFdLmxh
c3RNb2RpZmllZERhdGUsIHdpbmRvdy5maWxlMS5sYXN0TW9kaWZpZWREYXRlKSwgIkZpbGVMaXN0
IHByZXNlcnZlcyBvcmRlciBhbmQgZGF0YSAoZGF0ZTEpIik7CisgICAgICAgIH0pOworfQordHJ5
UG9zdE1lc3NhZ2UoJyJkb25lIicpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20v
V2luZG93L3NjcmlwdC10ZXN0cy9wb3N0bWVzc2FnZS10ZXN0LmpzIGIvTGF5b3V0VGVzdHMvZmFz
dC9kb20vV2luZG93L3NjcmlwdC10ZXN0cy9wb3N0bWVzc2FnZS10ZXN0LmpzCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA3NTBhODkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvc2NyaXB0LXRlc3RzL3Bvc3RtZXNzYWdlLXRlc3QuanMK
QEAgLTAsMCArMSwxNjkgQEAKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIud2FpdFVudGlsRG9uZSgpOworfQorCit2YXIgY29uc29sZSA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJjb25zb2xlIik7CisKK3ZhciBtZXNzYWdlcyA9IFtdOwordmFyIGV2YWxUaHVu
a3MgPSBbXTsKKworZnVuY3Rpb24gZXF1YWwoYWN0dWFsLCBleHBlY3RlZCkKK3sKKyAgICBpZiAo
YWN0dWFsID09PSBleHBlY3RlZCkKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgaWYgKHR5cGVv
ZiBhY3R1YWwgIT09IHR5cGVvZiBleHBlY3RlZCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
IGlmICgoYWN0dWFsIGluc3RhbmNlb2YgRGF0ZSkgfHwgKGV4cGVjdGVkIGluc3RhbmNlb2YgRGF0
ZSkpIHsKKyAgICAgICAgaWYgKChhY3R1YWwgaW5zdGFuY2VvZiBEYXRlKSAmJiAoZXhwZWN0ZWQg
aW5zdGFuY2VvZiBEYXRlKSkKKyAgICAgICAgICAgIHJldHVybiAoZXhwZWN0ZWQgaW5zdGFuY2Vv
ZiBEYXRlKSAmJiBhY3R1YWwuZ2V0VGltZSgpID09IGV4cGVjdGVkLmdldFRpbWUoKTsKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICBpZiAoQXJyYXkuaXNBcnJheShhY3R1YWwpIHx8
IEFycmF5LmlzQXJyYXkoZXhwZWN0ZWQpKSB7CisgICAgICAgIGlmICghQXJyYXkuaXNBcnJheShh
Y3R1YWwpIHx8ICFBcnJheS5pc0FycmF5KGV4cGVjdGVkKSkKKyAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICAgICAgaWYgKGFjdHVhbC5sZW5ndGggIT0gZXhwZWN0ZWQubGVuZ3RoKQorICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFjdHVh
bC5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgaWYgKChpIGluIGFjdHVhbCkgXiAoaSBpbiBl
eHBlY3RlZCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgaWYg
KCFlcXVhbChhY3R1YWxbaV0sIGV4cGVjdGVkW2ldKSkKKyAgICAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIGlmIChh
Y3R1YWwuY29uc3RydWN0b3IgIT09IGV4cGVjdGVkLmNvbnN0cnVjdG9yKQorICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgdHJ5IHsKKyAgICAgICAgdmFyIGtleXMgPSBPYmplY3Qua2V5cyhhY3R1
YWwpOworICAgIH0gY2F0Y2goZSkgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAg
IHRyeSB7CisgICAgaWYgKCFlcXVhbChrZXlzLCBPYmplY3Qua2V5cyhleHBlY3RlZCkpKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgfSBjYXRjaChlKSB7CisgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICB9CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7Cisg
ICAgICAgIGlmICghZXF1YWwoYWN0dWFsW2tleXNbaV1dLCBleHBlY3RlZFtrZXlzW2ldXSkpCisg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIHJldHVybiB0cnVlOworfQorCitm
dW5jdGlvbiBzYWZlVG9TdHJpbmcobykgeworICAgIGlmIChvIGluc3RhbmNlb2YgRGF0ZSkKKyAg
ICAgICAgcmV0dXJuIG8udG9JU09TdHJpbmcoKTsKKyAgICBpZiAodHlwZW9mIG8gIT09ICJvYmpl
Y3QiIHx8ICFvKQorICAgICAgICByZXR1cm4gbzsKKyAgICB0cnkgeworICAgICAgICByZXR1cm4g
by50b1N0cmluZygpOworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgcmV0dXJuIE9iamVjdC5w
cm90b3R5cGUudG9TdHJpbmcuY2FsbChvKSArICIoZGVmYXVsdCB0b1N0cmluZyB0aHJldyAiK2Ur
IikiOworICAgIH0KK30KKworZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkKK3sK
KyAgICB2YXIgYWN0dWFsVmFsdWUgPSBldmFsKGFjdHVhbCk7CisgICAgdmFyIGV4cGVjdGVkVmFs
dWUgPSBldmFsKGV4cGVjdGVkKTsKKyAgICBpZiAoZXF1YWwoYWN0dWFsVmFsdWUsIGV4cGVjdGVk
VmFsdWUpKQorICAgICAgICBjb25zb2xlLmlubmVySFRNTCArPSAiUEFTUzogIiArIGFjdHVhbCAr
ICIgaXMgIiArIHNhZmVUb1N0cmluZyhleHBlY3RlZFZhbHVlKSArICIgb2YgdHlwZSAiICsgdHlw
ZW9mIGFjdHVhbFZhbHVlICsgIjxicj4iOworICAgIGVsc2UKKyAgICAgICAgY29uc29sZS5pbm5l
ckhUTUwgKz0gIkZBSUw6ICIgKyBhY3R1YWwgKyAiIGlzICIgKyBhY3R1YWxWYWx1ZSArICIgc2hv
dWxkIGJlICIgKyBleHBlY3RlZFZhbHVlICsgIiBvZiB0eXBlICIgKyB0eXBlb2YgZXhwZWN0ZWRW
YWx1ZSArICI8YnI+IjsKK30KKworZnVuY3Rpb24gc2hvdWxkQmVJZGVudGljYWwoYWN0dWFsLCBl
eHBlY3RlZCkKK3sKKyAgICB2YXIgYWN0dWFsVmFsdWUgPSBldmFsKGFjdHVhbCk7CisgICAgdmFy
IGV4cGVjdGVkVmFsdWUgPSBldmFsKGV4cGVjdGVkKTsKKyAgICBpZiAoYWN0dWFsVmFsdWUgPT09
IGV4cGVjdGVkVmFsdWUpCisgICAgICAgIGNvbnNvbGUuaW5uZXJIVE1MICs9ICJQQVNTOiAiICsg
YWN0dWFsICsgIiBpcyA9PT0gdG8gIiArIGV4cGVjdGVkICsgIjxicj4iOworICAgIGVsc2UKKyAg
ICAgICAgY29uc29sZS5pbm5lckhUTUwgKz0gIkZBSUw6ICIgKyBhY3R1YWwgKyAiIGlzIG5vdCA9
PT0gdG8gIiArIGV4cGVjdGVkICsgIjxicj4iOworfQorCitmdW5jdGlvbiBkb1Bhc3MobXNnKSB7
CisgICAgY29uc29sZS5pbm5lckhUTUwgKz0gIlBBU1M6ICIgKyBtc2cgKyAiPGJyPiI7Cit9CisK
K2Z1bmN0aW9uIGRvRmFpbChtc2cpIHsKKyAgICBjb25zb2xlLmlubmVySFRNTCArPSAiRkFJTDog
IiArIG1zZyArICI8YnI+IjsKK30KKword2luZG93LmRvUGFzc0ZhaWwgPSBmdW5jdGlvbihyZXN1
bHQsIG1zZykgeworICAgIGNvbnNvbGUuaW5uZXJIVE1MICs9IChyZXN1bHQgPyAiUEFTUzogIiA6
ICJGQUlMOiAiKSArIG1zZyArICI8YnI+IjsKK30KKworZnVuY3Rpb24gb25tZXNzYWdlKGV2dCkg
eworICAgIGV2ZW50RGF0YSA9IGV2dC5kYXRhOworICAgIGlmIChldnQuZGF0YSAhPT0gZXZ0LmRh
dGEpCisgICAgICAgIGNvbnNvbGUuaW5uZXJIVE1MICs9ICJNZXNzYWdlRXZlbnQuZGF0YSBkb2Vz
IG5vdCBwcm9kdWNlIHRoZSBzYW1lIHZhbHVlIG9uIG11bHRpcGxlIHF1ZXJpZXMuPGJyPiI7Cisg
ICAgdmFyIG1lc3NhZ2UgPSBtZXNzYWdlcy5zaGlmdCgpOworICAgIHN3aXRjaCAobWVzc2FnZSkg
eworICAgIGNhc2UgImN5Y2xpY09iamVjdCI6CisgICAgICAgIHNob3VsZEJlSWRlbnRpY2FsKCJl
dmVudERhdGEiLCAiZXZlbnREYXRhLnNlbGYiKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSAi
Y3ljbGljQXJyYXkiOgorICAgICAgICBzaG91bGRCZUlkZW50aWNhbCgiZXZlbnREYXRhIiwgImV2
ZW50RGF0YVswXSIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlICJvYmplY3RHcmFwaCI6Cisg
ICAgICAgIHNob3VsZEJlSWRlbnRpY2FsKCJldmVudERhdGEuZ3JhcGgxIiwgImV2ZW50RGF0YS5n
cmFwaDIiKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSAiYXJyYXlHcmFwaCI6CisgICAgICAg
IHNob3VsZEJlSWRlbnRpY2FsKCJldmVudERhdGFbMF0iLCAiZXZlbnREYXRhWzFdIik7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgImV2YWxUaHVuayI6CisgICAgICAgIHZhciB0aHVuayA9IGV2
YWxUaHVua3Muc2hpZnQoKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHRodW5rKGV2ZW50
RGF0YSk7CisgICAgICAgIH0gY2F0Y2goZSkgeworICAgICAgICAgICAgZG9GYWlsKCJ0aHJldyBl
eGNlcHRpb246ICIgKyBlKTsKKyAgICAgICAgICAgIHRocm93IGU7CisgICAgICAgIH0KKyAgICAg
ICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgc2hvdWxkQmUoImV2ZW50RGF0YSIsIG1l
c3NhZ2UpOworICAgIH0KKworICAgIGlmIChzYWZlVG9TdHJpbmcoZXZ0LmRhdGEpID09ICdkb25l
JyAmJiB3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLm5vdGlmeURvbmUoKTsKK30KKword2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21lc3Nh
Z2UnLCBvbm1lc3NhZ2UsIGZhbHNlKTsKKworZnVuY3Rpb24gQ29uc3RydWN0b3JXaXRoUHJvdG90
eXBlKHMpIHsKKyAgICB0aGlzLmZpZWxkID0gczsKK30KKworQ29uc3RydWN0b3JXaXRoUHJvdG90
eXBlLnByb3RvdHlwZSA9IHsKKyAgICBwcm90b1Byb3BlcnR5OiAyMDEwCit9OworCit3aW5kb3cu
dHJ5UG9zdE1lc3NhZ2UgPSBmdW5jdGlvbihtZXNzYWdlLCBzaG91bGRUaHJvdywgZXhwZWN0ZWQs
IGV4cGVjdGVkRXhjZXB0aW9uT3JFdmFsVGh1bmspIHsKKyAgICBpZiAoZXhwZWN0ZWQgPT0gImV2
YWxUaHVuayIpIHsKKyAgICAgIHZhciBldmFsVGh1bmsgPSBleHBlY3RlZEV4Y2VwdGlvbk9yRXZh
bFRodW5rOworICAgIH0gZWxzZSB7CisgICAgICB2YXIgZXhwZWN0ZWRFeGNlcHRpb24gPSBleHBl
Y3RlZEV4Y2VwdGlvbk9yRXZhbFRodW5rOworICAgIH0KKyAgICB0cnkgeworICAgICAgICB2YXIg
dmFsdWUgPSBldmFsKG1lc3NhZ2UpOworICAgICAgICBwb3N0TWVzc2FnZSh2YWx1ZSwgIioiKTsK
KyAgICAgICAgaWYgKHNob3VsZFRocm93KQorICAgICAgICAgICAgY29uc29sZS5pbm5lckhUTUwg
Kz0gIkZBSUw6ICdwb3N0TWVzc2FnZSgiK21lc3NhZ2UrIiknIHNob3VsZCB0aHJvdyBidXQgZGlk
bid0PGJyPiI7CisgICAgICAgIG1lc3NhZ2VzLnB1c2goZXhwZWN0ZWQgfHwgbWVzc2FnZSk7Cisg
ICAgICAgIGlmIChleHBlY3RlZCA9PSAiZXZhbFRodW5rIikgeworICAgICAgICAgICAgZXZhbFRo
dW5rcy5wdXNoKGV2YWxUaHVuayk7CisgICAgICAgIH0KKyAgICB9IGNhdGNoKGUpIHsKKyAgICAg
ICAgaWYgKHNob3VsZFRocm93KSB7CisgICAgICAgICAgICBpZiAoZXhwZWN0ZWRFeGNlcHRpb24g
PT09IHVuZGVmaW5lZCB8fCBleHBlY3RlZEV4Y2VwdGlvbiA9PSBlLmNvZGUgfHwgZXhwZWN0ZWRF
eGNlcHRpb24gPT0gZSkgeworICAgICAgICAgICAgICAgIGNvbnNvbGUuaW5uZXJIVE1MICs9ICJQ
QVNTOiAncG9zdE1lc3NhZ2UoIittZXNzYWdlKyIpJyB0aHJldyAiICsgZSArICI8YnI+IjsKKyAg
ICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgY29uc29sZS5pbm5lckhUTUwgKz0g
IkZBSUw6ICdwb3N0TWVzc2FnZSgiK21lc3NhZ2UrIiknIHRocmV3ICIgKyBlICsgIiwgd2FzIGV4
cGVjdGluZyAiICsgZXhwZWN0ZWRFeGNlcHRpb24gKyAiPGJyPiI7CisgICAgICAgICAgICB9Cisg
ICAgICAgIH0gZWxzZQorICAgICAgICAgICAgY29uc29sZS5pbm5lckhUTUwgKz0gIkZBSUw6ICdw
b3N0TWVzc2FnZSgiK21lc3NhZ2UrIiknIHNob3VsZCBub3QgdGhyb3cgYnV0IHRocmV3ICIgKyBl
ICsgIjxicj4iOworICAgIH0KK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dp
bmRvdy93aW5kb3ctcG9zdG1lc3NhZ2UtY2xvbmUtZGVlcC1hcnJheS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXBvc3RtZXNzYWdlLWNsb25lLWRlZXAt
YXJyYXktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI3
Y2RkYzkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2lu
ZG93LXBvc3RtZXNzYWdlLWNsb25lLWRlZXAtYXJyYXktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
NSBAQAorVGVzdHMgdGhhdCB3ZSBzdXBwb3J0IGNsb25pbmcgZGVlcChpc2gpIGFycmF5cy4KKwor
UEFTUzogZXZlbnREYXRhIGlzIFtvYmplY3QgQXJyYXldKGRlZmF1bHQgdG9TdHJpbmcgdGhyZXcg
UmFuZ2VFcnJvcjogTWF4aW11bSBjYWxsIHN0YWNrIHNpemUgZXhjZWVkZWQuKSBvZiB0eXBlIG9i
amVjdAorUEFTUzogZXZlbnREYXRhIGlzIGRvbmUgb2YgdHlwZSBzdHJpbmcKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wb3N0bWVzc2FnZS1jbG9uZS1k
ZWVwLWFycmF5Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXBvc3Rt
ZXNzYWdlLWNsb25lLWRlZXAtYXJyYXkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi4xYzNkMWExCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20v
V2luZG93L3dpbmRvdy1wb3N0bWVzc2FnZS1jbG9uZS1kZWVwLWFycmF5Lmh0bWwKQEAgLTAsMCAr
MSwxMCBAQAorPGh0bWw+Cis8aGVhZD48L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9ImRlc2NyaXB0
aW9uIj48L2Rpdj4KKzxpbnB1dCB0eXBlPSJmaWxlIiBpZD0iZmlsZUlucHV0IiBtdWx0aXBsZT48
L2lucHV0PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRl
c3RzL3Bvc3RtZXNzYWdlLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InNjcmlwdC10
ZXN0cy9wb3N0bWVzc2FnZS1jbG9uZS1kZWVwLWFycmF5LmpzIj48L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ct
cG9zdG1lc3NhZ2UtY2xvbmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2lu
ZG93L3dpbmRvdy1wb3N0bWVzc2FnZS1jbG9uZS1leHBlY3RlZC50eHQKaW5kZXggZDJmMDE0OS4u
MTQ4NDU0MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1w
b3N0bWVzc2FnZS1jbG9uZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20v
V2luZG93L3dpbmRvdy1wb3N0bWVzc2FnZS1jbG9uZS1leHBlY3RlZC50eHQKQEAgLTEsOCArMSwx
NiBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDc0OiBUeXBlRXJyb3I6IE5vIGRlZmF1bHQgdmFs
dWUKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA3NDogVHlwZUVycm9yOiBObyBkZWZhdWx0IHZhbHVl
CiBUZXN0cyB0aGF0IHdlIGNsb25lIG9iamVjdCBoaWVyYXJjaGllcwogCi1QQVNTOiAncG9zdE1l
c3NhZ2UocmVhbGx5RGVlcEFycmF5KScgdGhyZXcgUmFuZ2VFcnJvcjogTWF4aW11bSBjYWxsIHN0
YWNrIHNpemUgZXhjZWVkZWQuCitGQUlMOiAncG9zdE1lc3NhZ2UoKGZ1bmN0aW9uKCl7fSkpJyBz
aG91bGQgdGhyb3cgYnV0IGRpZG4ndAogUEFTUzogJ3Bvc3RNZXNzYWdlKHdpbmRvdyknIHRocmV3
IFR5cGVFcnJvcjogVHlwZSBlcnJvcgogUEFTUzogJ3Bvc3RNZXNzYWdlKCh7Z2V0IGEoKSB7IHRo
cm93ICJ4IiB9fSkpJyB0aHJldyB4CitGQUlMOiAncG9zdE1lc3NhZ2UoaW1hZ2VEYXRhLmRhdGEp
JyBzaG91bGQgdGhyb3cgYnV0IGRpZG4ndAorRkFJTDogJ3Bvc3RNZXNzYWdlKG11dGF0ZWRJbWFn
ZURhdGEuZGF0YSknIHNob3VsZCB0aHJvdyBidXQgZGlkbid0CitQQVNTOiAncG9zdE1lc3NhZ2Uo
KGZ1bmN0aW9uKCkge3JldHVybiB7Z2V0IGEoKSB7IHRocm93ICJhY2Nlc3Nvci1leG4iOyB9fTt9
KSgpKScgdGhyZXcgYWNjZXNzb3ItZXhuCitQQVNTOiAncG9zdE1lc3NhZ2UoKGZ1bmN0aW9uKCkg
e3ZhciBvYmphID0ge2dldCBwKCkgeyB0aHJvdyAiYWNjZXNzb3ItZXhuIjsgfX07IHJldHVybiB7
Z2V0IGEoKSB7IHJldHVybiBvYmphOyB9fTt9KSgpKScgdGhyZXcgYWNjZXNzb3ItZXhuCitQQVNT
OiBsYXN0SW5kZXggaW5pdGlhbGx5IGNvcnJlY3Q6IHdhcyAzCitQQVNTOiBzYW5pdHkgb24gZmls
ZSByZWZlcmVuY2UgZXF1YWxpdHkKIFBBU1M6IGV2ZW50RGF0YSBpcyBudWxsIG9mIHR5cGUgb2Jq
ZWN0CiBQQVNTOiBldmVudERhdGEgaXMgdW5kZWZpbmVkIG9mIHR5cGUgdW5kZWZpbmVkCiBQQVNT
OiBldmVudERhdGEgaXMgMSBvZiB0eXBlIG51bWJlcgpAQCAtMjIsMTcgKzMwLDg4IEBAIFBBU1M6
IGV2ZW50RGF0YSBpcyBhLGEsYixhLGIgb2YgdHlwZSBvYmplY3QKIFBBU1M6IGV2ZW50RGF0YSBp
cyBhLGEsYixbb2JqZWN0IE9iamVjdF0gb2YgdHlwZSBvYmplY3QKIFBBU1M6IGV2ZW50RGF0YSBp
cyAxLDIsMyBvZiB0eXBlIG9iamVjdAogUEFTUzogZXZlbnREYXRhIGlzICwsMSBvZiB0eXBlIG9i
amVjdAotUEFTUzogZXZlbnREYXRhIGlzIG51bGwgb2YgdHlwZSBvYmplY3QKK0ZBSUw6IGV2ZW50
RGF0YSBpcyBudWxsIHNob3VsZCBiZSBmdW5jdGlvbiAoKSB7fSBvZiB0eXBlIGZ1bmN0aW9uCiBQ
QVNTOiBldmVudERhdGEgaXMgMjAwOS0wMi0xM1QyMzozMTozMC4wMDBaIG9mIHR5cGUgb2JqZWN0
CiBQQVNTOiBldmVudERhdGEgaXMgW29iamVjdCBPYmplY3RdIG9mIHR5cGUgb2JqZWN0CiBQQVNT
OiBldmVudERhdGEgaXMgPT09IHRvIGV2ZW50RGF0YS5zZWxmCiBQQVNTOiBldmVudERhdGEgaXMg
PT09IHRvIGV2ZW50RGF0YVswXQogUEFTUzogZXZlbnREYXRhLmdyYXBoMSBpcyA9PT0gdG8gZXZl
bnREYXRhLmdyYXBoMgogUEFTUzogZXZlbnREYXRhWzBdIGlzID09PSB0byBldmVudERhdGFbMV0K
LVBBU1M6IGV2ZW50RGF0YSBpcyBbb2JqZWN0IEFycmF5XShkZWZhdWx0IHRvU3RyaW5nIHRocmV3
IFJhbmdlRXJyb3I6IE1heGltdW0gY2FsbCBzdGFjayBzaXplIGV4Y2VlZGVkLikgb2YgdHlwZSBv
YmplY3QKLVBBU1M6IGV2ZW50RGF0YSBpcyBbb2JqZWN0IEZpbGVdIG9mIHR5cGUgb2JqZWN0Ci1Q
QVNTOiBldmVudERhdGEgaXMgW29iamVjdCBGaWxlTGlzdF0gb2YgdHlwZSBvYmplY3QKIFBBU1M6
IGV2ZW50RGF0YSBpcyBbb2JqZWN0IEltYWdlRGF0YV0gb2YgdHlwZSBvYmplY3QKIFBBU1M6IGV2
ZW50RGF0YSBpcyBbb2JqZWN0IEltYWdlRGF0YV0gb2YgdHlwZSBvYmplY3QKK1BBU1M6IGV2ZW50
RGF0YSBpcyA0MiBvZiB0eXBlIG51bWJlcgorUEFTUzogZXZlbnREYXRhIGlzIDQyIG9mIHR5cGUg
bnVtYmVyCitQQVNTOiBldmFsVGh1bmsgT0sKK1BBU1M6IGV2ZW50RGF0YSBpcyBbb2JqZWN0IE9i
amVjdF0gb2YgdHlwZSBvYmplY3QKK1BBU1M6IGxlbmd0aCBjb3JyZWN0CitQQVNTOiBldmFsdWF0
aW9uIG9yZGVyIE9LCitQQVNTOiBldmFsdWF0aW9uIG9yZGVyIE9LL2FjY2Vzc29yIHJlYWNoZWQK
K1BBU1M6IGV2YWx1YXRpb24gb3JkZXIgT0sKK1BBU1M6IGxlbmd0aCBjb3JyZWN0CitQQVNTOiBp
bmRleCAwIE9LCitQQVNTOiBhY2Nlc3NvciByZWFjaGVkCitQQVNTOiBpbmRleCAyIHVuZGVmaW5l
ZAorUEFTUzogbGVuZ3RoIGNvcnJlY3QKK1BBU1M6IGluZGV4IDAgT0sKK1BBU1M6IGluZGV4IDEg
T0sKK1BBU1M6IGluZGV4IDIgT0sKK1BBU1M6IGJhc2ljIHByb3BlcnRpZXMgT0sKK1BBU1M6IG9u
ZSBhY2Nlc3NvciB3YXMgcnVuCitQQVNTOiBwcm9wZXJ0eSB3YXMgcmVtb3ZlZAorUEFTUzogcHJv
cGVydHkgd2FzIHJlbW92ZWQKK1BBU1M6IGFjY2Vzc29yIHdhcyBydW4KK1BBU1M6IGR5bmFtaWMg
cHJvcGVydHkgbm90IHNlbnQKK1BBU1M6IHJlZmVyZW5jZSBlcXVhbGl0eSBwcmVzZXJ2ZWQKK1BB
U1M6IGFjY2Vzc29ycyB1c2VkCitQQVNTOiByZWZlcmVuY2UgZXF1YWxpdHkgcHJlc2VydmVkIChv
cHBvc2l0ZSBvcmRlcikKK1BBU1M6IGFjY2Vzc29ycyB1c2VkIChvcHBvc2l0ZSBvcmRlcikKK0ZB
SUw6IGFjY2Vzc29yIHZhbHVlIHdhcyBudWxsaWZpZWQKK1BBU1M6IG5vbi1hY2Nlc3NvciB2YWx1
ZSB3YXMgbm90IG51bGxpZmllZAorRkFJTDogYWNjZXNzb3IgdmFsdWUgd2FzIG51bGxpZmllZAor
UEFTUzogbm9uLWFjY2Vzc29yIHZhbHVlIHdhcyBub3QgbnVsbGlmaWVkCitQQVNTOiBub24tYWNj
ZXNzb3IgdmFsdWUgd2FzIG5vdCBudWxsaWZpZWQKK0ZBSUw6IGFjY2Vzc29yIHZhbHVlIHdhcyBu
dWxsaWZpZWQKK1BBU1M6IG5vbi1hY2Nlc3NvciB2YWx1ZSB3YXMgbm90IG51bGxpZmllZAorUEFT
UzogYWNjZXNzb3IgdmFsdWUgd2FzIG5vdCBudWxsaWZpZWQKK1BBU1M6IGFjY2Vzc29yIHZhbHVl
IHdhcyBub3QgbnVsbGlmaWVkCitGQUlMOiBhY2Nlc3NvciB2YWx1ZSB3YXMgbnVsbGlmaWVkCitQ
QVNTOiBub24tYWNjZXNzb3IgdmFsdWUgd2FzIG5vdCBudWxsaWZpZWQKK1BBU1M6IG5vbi1hY2Nl
c3NvciB2YWx1ZSB3YXMgbm90IG51bGxpZmllZAorUEFTUzogbm9uLWFjY2Vzc29yIHZhbHVlIGlz
IGRlZmluZWQKK1BBU1M6IG5vbi1hY2Nlc3NvciB2YWx1ZSB3YXMgbm90IG51bGxpZmllZAorUEFT
Uzogbm9uLWFjY2Vzc29yIHZhbHVlIGlzIGRlZmluZWQKK0ZBSUw6IGFjY2Vzc29yIHZhbHVlIHdh
cyBudWxsaWZpZWQKK1BBU1M6IG5vbi1hY2Nlc3NvciB2YWx1ZSB3YXMgbm90IG51bGxpZmllZAor
RkFJTDogYWNjZXNzb3IgdmFsdWUgd2FzIG51bGxpZmllZAorUEFTUzogd2luZG93LnBjYWxsZWQg
PT09IHRydWUKK1BBU1M6IHdpbmRvdy5hY2FsbGVkID09PSB0cnVlCitGQUlMOiB3aW5kb3cuYmNh
bGxlZCA9PT0gdW5kZWZpbmVkCitQQVNTOiBEYXRlIHZhbHVlcyBjb3JyZWN0ICgwKQorUEFTUzog
RGF0ZSB2YWx1ZXMgY29ycmVjdCAoMSkKK0ZBSUw6IFJlZmVyZW5jZXMgdG8gZGF0ZXMgY29ycmVj
dCAoMCkKK1BBU1M6IFJlZmVyZW5jZXMgdG8gZGF0ZXMgY29ycmVjdCAoMSkKK1BBU1M6IFJlZ2V4
cCB2YWx1ZSBjb3JyZWN0ICgwKQorRkFJTDogUmVmZXJlbmNlcyB0byByZWdleHBzIGNvcnJlY3Qg
KDApCitQQVNTOiBSZWZlcmVuY2VzIHRvIHJlZ2V4cHMgY29ycmVjdCAoMSkKK1BBU1M6IGdsb2Jh
bCBzZXQgKDApCitQQVNTOiBnbG9iYWwgc2V0ICgxKQorUEFTUzogaWdub3JlQ2FzZSBzZXQgKDAp
CitQQVNTOiBpZ25vcmVDYXNlIHNldCAoMSkKK1BBU1M6IG11bHRpbGluZSBzZXQgKDApCitQQVNT
OiBtdWx0aWxpbmUgc2V0ICgxKQorUEFTUzogbGFzdEluZGV4IGNvcnJlY3QgKDApCitQQVNTOiBs
YXN0SW5kZXggY29ycmVjdCAoMSkKK1BBU1M6IGV2ZW50RGF0YSBpcyAyIG9mIHR5cGUgbnVtYmVy
CitGQUlMOiBmaWxlIHJlZmVyZW5jZXMgdHJhbnNmZXIKK1BBU1M6IEZpbGVMaXN0IHNob3VsZCBu
b3QgcmVzcGVjdCByZWZlcmVuY2UgZXF1YWxpdHkKK1BBU1M6IEZpbGVMaXN0IHNob3VsZCBub3Qg
cmVzcGVjdCByZWZlcmVuY2UgZXF1YWxpdHkKK0ZBSUw6IEZpbGVMaXN0IHJlc3BlY3RzIHNlbGYt
cmVmZXJlbmNlIGVxdWFsaXR5CitQQVNTOiBGaWxlTGlzdCBsZW5ndGggc2VudCBjb3JyZWN0bHkK
K1BBU1M6IEZpbGVMaXN0IHNob3VsZCBub3QgcmVzcGVjdCByZWZlcmVuY2UgZXF1YWxpdHkgKDAp
CitQQVNTOiBGaWxlTGlzdCBzaG91bGQgbm90IHJlc3BlY3QgcmVmZXJlbmNlIGVxdWFsaXR5ICgx
KQorUEFTUzogRmlsZUxpc3QgcHJlc2VydmVzIG9yZGVyIGFuZCBkYXRhIChuYW1lMCkKK1BBU1M6
IEZpbGVMaXN0IHByZXNlcnZlcyBvcmRlciBhbmQgZGF0YSAobmFtZTEpCitQQVNTOiBGaWxlTGlz
dCBwcmVzZXJ2ZXMgb3JkZXIgYW5kIGRhdGEgKGRhdGUwKQorUEFTUzogRmlsZUxpc3QgcHJlc2Vy
dmVzIG9yZGVyIGFuZCBkYXRhIChkYXRlMSkKIFBBU1M6IGV2ZW50RGF0YSBpcyBkb25lIG9mIHR5
cGUgc3RyaW5nCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5k
b3ctcG9zdG1lc3NhZ2UtY2xvbmUtcmVhbGx5LWRlZXAtYXJyYXktZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wb3N0bWVzc2FnZS1jbG9uZS1yZWFsbHkt
ZGVlcC1hcnJheS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uNjFlYTgxMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRv
dy93aW5kb3ctcG9zdG1lc3NhZ2UtY2xvbmUtcmVhbGx5LWRlZXAtYXJyYXktZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsNSBAQAorVGVzdHMgdGhhdCB3ZSBhYm9ydCBjbG9uaW5nIG92ZXJkZWVwIGFy
cmF5cy4KKworRkFJTDogJ3Bvc3RNZXNzYWdlKHJlYWxseURlZXBBcnJheSknIHRocmV3IFJhbmdl
RXJyb3I6IE1heGltdW0gY2FsbCBzdGFjayBzaXplIGV4Y2VlZGVkLiwgd2FzIGV4cGVjdGluZyAy
NQorUEFTUzogZXZlbnREYXRhIGlzIGRvbmUgb2YgdHlwZSBzdHJpbmcKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wb3N0bWVzc2FnZS1jbG9uZS1yZWFs
bHktZGVlcC1hcnJheS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1w
b3N0bWVzc2FnZS1jbG9uZS1yZWFsbHktZGVlcC1hcnJheS5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLmViNmQ2NmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXBvc3RtZXNzYWdlLWNsb25lLXJlYWxseS1kZWVwLWFy
cmF5Lmh0bWwKQEAgLTAsMCArMSwxMCBAQAorPGh0bWw+Cis8aGVhZD48L2hlYWQ+Cis8Ym9keT4K
KzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KKzxpbnB1dCB0eXBlPSJmaWxlIiBpZD0iZmls
ZUlucHV0IiBtdWx0aXBsZT48L2lucHV0PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2Ny
aXB0IHNyYz0ic2NyaXB0LXRlc3RzL3Bvc3RtZXNzYWdlLXRlc3QuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9InNjcmlwdC10ZXN0cy9wb3N0bWVzc2FnZS1jbG9uZS1yZWFsbHktZGVlcC1hcnJh
eS5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXBvc3RtZXNzYWdlLWNsb25lLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXBvc3RtZXNzYWdlLWNsb25lLmh0bWwKaW5kZXgg
ZjI4MzUxYy4uOGQ2MDYwMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93
L3dpbmRvdy1wb3N0bWVzc2FnZS1jbG9uZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9t
L1dpbmRvdy93aW5kb3ctcG9zdG1lc3NhZ2UtY2xvbmUuaHRtbApAQCAtMiwyMTYgKzIsOSBAQAog
PGhlYWQ+PC9oZWFkPgogPGJvZHk+CiA8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Ci08aW5w
dXQgdHlwZT0iZmlsZSIgaWQ9ImZpbGVJbnB1dCI+PC9pbnB1dD4KKzxpbnB1dCB0eXBlPSJmaWxl
IiBpZD0iZmlsZUlucHV0IiBtdWx0aXBsZT48L2lucHV0PgogPGRpdiBpZD0iY29uc29sZSI+PC9k
aXY+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci53YWl0VW50aWxEb25lKCk7Ci19Ci0KLXZhciBjb25zb2xlID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoImNvbnNvbGUiKTsKLQotdmFyIG1lc3NhZ2VzID0gW107Ci0KLWZ1bmN0aW9uIGVxdWFs
KGFjdHVhbCwgZXhwZWN0ZWQpCi17Ci0gICAgaWYgKGFjdHVhbCA9PT0gZXhwZWN0ZWQpCi0gICAg
ICAgIHJldHVybiB0cnVlOwotICAgIGlmICh0eXBlb2YgYWN0dWFsICE9PSB0eXBlb2YgZXhwZWN0
ZWQpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoKGFjdHVhbCBpbnN0YW5jZW9mIERh
dGUpIHx8IChleHBlY3RlZCBpbnN0YW5jZW9mIERhdGUpKSB7Ci0gICAgICAgIGlmICgoYWN0dWFs
IGluc3RhbmNlb2YgRGF0ZSkgJiYgKGV4cGVjdGVkIGluc3RhbmNlb2YgRGF0ZSkpCi0gICAgICAg
ICAgICByZXR1cm4gKGV4cGVjdGVkIGluc3RhbmNlb2YgRGF0ZSkgJiYgYWN0dWFsLmdldFRpbWUo
KSA9PSBleHBlY3RlZC5nZXRUaW1lKCk7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0g
ICAgaWYgKEFycmF5LmlzQXJyYXkoYWN0dWFsKSB8fCBBcnJheS5pc0FycmF5KGV4cGVjdGVkKSkg
ewotICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkoYWN0dWFsKSB8fCAhQXJyYXkuaXNBcnJheShl
eHBlY3RlZCkpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIGlmIChhY3R1YWwu
bGVuZ3RoICE9IGV4cGVjdGVkLmxlbmd0aCkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAg
ICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhY3R1YWwubGVuZ3RoOyBpKyspIHsKLSAgICAgICAg
ICAgIGlmICgoaSBpbiBhY3R1YWwpIF4gKGkgaW4gZXhwZWN0ZWQpKQotICAgICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKLSAgICAgICAgICAgIGlmICghZXF1YWwoYWN0dWFsW2ldLCBleHBlY3Rl
ZFtpXSkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9Ci0gICAgICAg
IHJldHVybiB0cnVlOwotICAgIH0KLSAgICBpZiAoYWN0dWFsLmNvbnN0cnVjdG9yICE9PSBleHBl
Y3RlZC5jb25zdHJ1Y3RvcikKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHRyeSB7Ci0gICAg
ICAgIHZhciBrZXlzID0gT2JqZWN0LmtleXMoYWN0dWFsKTsKLSAgICB9IGNhdGNoKGUpIHsKLSAg
ICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLSAgICB0cnkgewotICAgIGlmICghZXF1YWwoa2V5
cywgT2JqZWN0LmtleXMoZXhwZWN0ZWQpKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0g
Y2F0Y2goZSkgewotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotICAgIGZvciAodmFyIGkg
PSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykgewotICAgICAgICBpZiAoIWVxdWFsKGFjdHVhbFtr
ZXlzW2ldXSwgZXhwZWN0ZWRba2V5c1tpXV0pKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgIH0KLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotZnVuY3Rpb24gc2FmZVRvU3RyaW5nKG8pIHsK
LSAgICBpZiAobyBpbnN0YW5jZW9mIERhdGUpCi0gICAgICAgIHJldHVybiBvLnRvSVNPU3RyaW5n
KCk7Ci0gICAgaWYgKHR5cGVvZiBvICE9PSAib2JqZWN0IiB8fCAhbykKLSAgICAgICAgcmV0dXJu
IG87Ci0gICAgdHJ5IHsKLSAgICAgICAgcmV0dXJuIG8udG9TdHJpbmcoKTsKLSAgICB9IGNhdGNo
IChlKSB7Ci0gICAgICAgIHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwobykg
KyAiKGRlZmF1bHQgdG9TdHJpbmcgdGhyZXcgIitlKyIpIjsKLSAgICB9Ci19Ci0KLWZ1bmN0aW9u
IHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpCi17Ci0gICAgdmFyIGFjdHVhbFZhbHVlID0gZXZh
bChhY3R1YWwpOwotICAgIHZhciBleHBlY3RlZFZhbHVlID0gZXZhbChleHBlY3RlZCk7Ci0gICAg
aWYgKGVxdWFsKGFjdHVhbFZhbHVlLCBleHBlY3RlZFZhbHVlKSkKLSAgICAgICAgY29uc29sZS5p
bm5lckhUTUwgKz0gIlBBU1M6ICIgKyBhY3R1YWwgKyAiIGlzICIgKyBzYWZlVG9TdHJpbmcoZXhw
ZWN0ZWRWYWx1ZSkgKyAiIG9mIHR5cGUgIiArIHR5cGVvZiBhY3R1YWxWYWx1ZSArICI8YnI+IjsK
LSAgICBlbHNlCi0gICAgICAgIGNvbnNvbGUuaW5uZXJIVE1MICs9ICJGQUlMOiAiICsgYWN0dWFs
ICsgIiBpcyAiICsgYWN0dWFsVmFsdWUgKyAiIHNob3VsZCBiZSAiICsgZXhwZWN0ZWRWYWx1ZSAr
ICIgb2YgdHlwZSAiICsgdHlwZW9mIGV4cGVjdGVkVmFsdWUgKyAiPGJyPiI7Ci19Ci0KLWZ1bmN0
aW9uIHNob3VsZEJlSWRlbnRpY2FsKGFjdHVhbCwgZXhwZWN0ZWQpCi17Ci0gICAgdmFyIGFjdHVh
bFZhbHVlID0gZXZhbChhY3R1YWwpOwotICAgIHZhciBleHBlY3RlZFZhbHVlID0gZXZhbChleHBl
Y3RlZCk7Ci0gICAgaWYgKGFjdHVhbFZhbHVlID09PSBleHBlY3RlZFZhbHVlKQotICAgICAgICBj
b25zb2xlLmlubmVySFRNTCArPSAiUEFTUzogIiArIGFjdHVhbCArICIgaXMgPT09IHRvICIgKyBl
eHBlY3RlZCArICI8YnI+IjsKLSAgICBlbHNlCi0gICAgICAgIGNvbnNvbGUuaW5uZXJIVE1MICs9
ICJGQUlMOiAiICsgYWN0dWFsICsgIiBpcyBub3QgPT09IHRvICIgKyBleHBlY3RlZCArICI8YnI+
IjsKLX0KLQotZnVuY3Rpb24gb25tZXNzYWdlKGV2dCkgewotICAgIGV2ZW50RGF0YSA9IGV2dC5k
YXRhOwotICAgIGlmIChldnQuZGF0YSAhPT0gZXZ0LmRhdGEpCi0gICAgICAgIGNvbnNvbGUuaW5u
ZXJIVE1MICs9ICJNZXNzYWdlRXZlbnQuZGF0YSBkb2VzIG5vdCBwcm9kdWNlIHRoZSBzYW1lIHZh
bHVlIG9uIG11bHRpcGxlIHF1ZXJpZXMuPGJyPiI7Ci0gICAgdmFyIG1lc3NhZ2UgPSBtZXNzYWdl
cy5zaGlmdCgpOwotICAgIHN3aXRjaCAobWVzc2FnZSkgewotICAgIGNhc2UgImN5Y2xpY09iamVj
dCI6Ci0gICAgICAgIHNob3VsZEJlSWRlbnRpY2FsKCJldmVudERhdGEiLCAiZXZlbnREYXRhLnNl
bGYiKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSAiY3ljbGljQXJyYXkiOgotICAgICAgICBz
aG91bGRCZUlkZW50aWNhbCgiZXZlbnREYXRhIiwgImV2ZW50RGF0YVswXSIpOwotICAgICAgICBi
cmVhazsKLSAgICBjYXNlICJvYmplY3RHcmFwaCI6Ci0gICAgICAgIHNob3VsZEJlSWRlbnRpY2Fs
KCJldmVudERhdGEuZ3JhcGgxIiwgImV2ZW50RGF0YS5ncmFwaDIiKTsKLSAgICAgICAgYnJlYWs7
Ci0gICAgY2FzZSAiYXJyYXlHcmFwaCI6Ci0gICAgICAgIHNob3VsZEJlSWRlbnRpY2FsKCJldmVu
dERhdGFbMF0iLCAiZXZlbnREYXRhWzFdIik7Ci0gICAgICAgIGJyZWFrOwotICAgIGRlZmF1bHQ6
Ci0gICAgICAgIHNob3VsZEJlKCJldmVudERhdGEiLCBtZXNzYWdlKTsKLSAgICB9Ci0KLSAgICBp
ZiAoc2FmZVRvU3RyaW5nKGV2dC5kYXRhKSA9PSAnZG9uZScgJiYgd2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKQotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Ci19
Ci0KLXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgb25tZXNzYWdlLCBmYWxzZSk7
Ci0KLWZ1bmN0aW9uIENvbnN0cnVjdG9yV2l0aFByb3RvdHlwZShzKSB7Ci0gICAgdGhpcy5maWVs
ZCA9IHM7Ci19Ci0KLUNvbnN0cnVjdG9yV2l0aFByb3RvdHlwZS5wcm90b3R5cGUgPSB7Ci0gICAg
cHJvdG9Qcm9wZXJ0eTogMjAxMAotfTsKLQotZnVuY3Rpb24gdHJ5UG9zdE1lc3NhZ2UobWVzc2Fn
ZSwgc2hvdWxkVGhyb3csIGV4cGVjdGVkKSB7Ci0gICAgdHJ5IHsKLSAgICAgICAgdmFyIHZhbHVl
ID0gZXZhbChtZXNzYWdlKTsKLSAgICAgICAgcG9zdE1lc3NhZ2UodmFsdWUsICIqIik7Ci0gICAg
ICAgIGlmIChzaG91bGRUaHJvdykKLSAgICAgICAgICAgIGNvbnNvbGUuaW5uZXJIVE1MICs9ICJG
QUlMOiAncG9zdE1lc3NhZ2UoIittZXNzYWdlKyIpJyBzaG91bGQgdGhyb3cgYnV0IGRpZG4ndDxi
cj4iOwotICAgICAgICBtZXNzYWdlcy5wdXNoKGV4cGVjdGVkIHx8IG1lc3NhZ2UpOwotICAgIH0g
Y2F0Y2goZSkgewotICAgICAgICBpZiAoc2hvdWxkVGhyb3cpCi0gICAgICAgICAgICBjb25zb2xl
LmlubmVySFRNTCArPSAiUEFTUzogJ3Bvc3RNZXNzYWdlKCIrbWVzc2FnZSsiKScgdGhyZXcgIiAr
IGUgKyAiPGJyPiI7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGNvbnNvbGUuaW5uZXJIVE1M
ICs9ICJGQUlMOiAncG9zdE1lc3NhZ2UoIittZXNzYWdlKyIpJyBzaG91bGQgbm90IHRocm93IGJ1
dCB0aHJldyAiICsgZSArICI8YnI+IjsKLSAgICB9Ci19Ci0KLWRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJkZXNjcmlwdGlvbiIpLmlubmVySFRNTCA9ICJUZXN0cyB0aGF0IHdlIGNsb25lIG9iamVj
dCBoaWVyYXJjaGllcyI7Ci0KLXRyeVBvc3RNZXNzYWdlKCdudWxsJyk7Ci10cnlQb3N0TWVzc2Fn
ZSgndW5kZWZpbmVkJyk7Ci10cnlQb3N0TWVzc2FnZSgnMScpOwotdHJ5UG9zdE1lc3NhZ2UoJ3Ry
dWUnKTsKLXRyeVBvc3RNZXNzYWdlKCciMSInKTsKLXRyeVBvc3RNZXNzYWdlKCcoe30pJyk7Ci10
cnlQb3N0TWVzc2FnZSgnKHthOjF9KScpOwotdHJ5UG9zdE1lc3NhZ2UoJyh7YToiYSJ9KScpOwot
dHJ5UG9zdE1lc3NhZ2UoJyh7YjoiYSIsIGE6ImIifSknKTsKLXRyeVBvc3RNZXNzYWdlKCcoe3Aw
OiJzdHJpbmcwIiwgcDE6InN0cmluZzEiLCBwMjoic3RyaW5nMiIsIHAzOiJzdHJpbmczIiwgcDQ6
InN0cmluZzQiLCBwNToic3RyaW5nNSIsIHA2OiJzdHJpbmc2IiwgcDc6InN0cmluZzciLCBwODoi
c3RyaW5nOCIsIHA5OiJzdHJpbmc5IiwgcDEwOiJzdHJpbmcxMCIsIHAxMToic3RyaW5nMTEiLCBw
MTI6InN0cmluZzEyIiwgcDEzOiJzdHJpbmcxMyIsIHAxNDoic3RyaW5nMTQiLCBwMTU6InN0cmlu
ZzE1IiwgcDE2OiJzdHJpbmcxNiIsIHAxNzoic3RyaW5nMTciLCBwMTg6InN0cmluZzE4IiwgcDE5
OiJzdHJpbmcxOSJ9KScpOwotdHJ5UG9zdE1lc3NhZ2UoJyh7cDA6InN0cmluZzEiLCBwMToic3Ry
aW5nMSIsIHAyOiJzdHJpbmcyIiwgcDM6InN0cmluZzMiLCBwNDoic3RyaW5nNCIsIHA1OiJzdHJp
bmc1IiwgcDY6InN0cmluZzYiLCBwNzoic3RyaW5nNyIsIHA4OiJzdHJpbmc4IiwgcDk6InN0cmlu
ZzkiLCBwMTA6InN0cmluZzEwIiwgcDExOiJzdHJpbmcxMSIsIHAxMjoic3RyaW5nMTIiLCBwMTM6
InN0cmluZzEzIiwgcDE0OiJzdHJpbmcxNCIsIHAxNToic3RyaW5nMTUiLCBwMTY6InN0cmluZzE2
IiwgcDE3OiJzdHJpbmcxNyIsIHAxODoic3RyaW5nMTgiLCBwMTk6InN0cmluZzE5In0pJyk7Ci10
cnlQb3N0TWVzc2FnZSgnKHthOiIifSknKTsKLXRyeVBvc3RNZXNzYWdlKCcoe2E6MH0pJyk7Ci10
cnlQb3N0TWVzc2FnZSgnKHthOjF9KScpOwotdHJ5UG9zdE1lc3NhZ2UoJ1tdJyk7Ci10cnlQb3N0
TWVzc2FnZSgnWyJhIiwgImEiLCAiYiIsICJhIiwgImIiXScpOwotdHJ5UG9zdE1lc3NhZ2UoJ1si
YSIsICJhIiwgImIiLCB7YToiYiIsIGI6ImEifV0nKTsKLXRyeVBvc3RNZXNzYWdlKCdbMSwyLDNd
Jyk7Ci10cnlQb3N0TWVzc2FnZSgnWywsMV0nKTsKLXRyeVBvc3RNZXNzYWdlKCcoZnVuY3Rpb24o
KXt9KScsIGZhbHNlLCAnbnVsbCcpOwotdHJ5UG9zdE1lc3NhZ2UoJ25ldyBEYXRlKDEyMzQ1Njc4
OTAwMDApJyk7Ci10cnlQb3N0TWVzc2FnZSgnbmV3IENvbnN0cnVjdG9yV2l0aFByb3RvdHlwZSgi
Zm9vIiknLCBmYWxzZSwgJyh7ZmllbGQ6ImZvbyJ9KScpOwotY3ljbGljT2JqZWN0PXt9OwotY3lj
bGljT2JqZWN0LnNlbGYgPSBjeWNsaWNPYmplY3Q7Ci10cnlQb3N0TWVzc2FnZSgnY3ljbGljT2Jq
ZWN0JywgZmFsc2UsICJjeWNsaWNPYmplY3QiKTsKLWN5Y2xpY0FycmF5PVtdOwotY3ljbGljQXJy
YXlbMF0gPSBjeWNsaWNBcnJheTsKLXRyeVBvc3RNZXNzYWdlKCdjeWNsaWNBcnJheScsIGZhbHNl
LCAiY3ljbGljQXJyYXkiKTsKLW9iamVjdEdyYXBoID0ge307Ci1vYmplY3QgPSB7fTsKLW9iamVj
dEdyYXBoLmdyYXBoMSA9IG9iamVjdDsKLW9iamVjdEdyYXBoLmdyYXBoMiA9IG9iamVjdDsKLXRy
eVBvc3RNZXNzYWdlKCdvYmplY3RHcmFwaCcsIGZhbHNlLCAib2JqZWN0R3JhcGgiKTsKLWFycmF5
R3JhcGggPSBbb2JqZWN0LCBvYmplY3RdOwotdHJ5UG9zdE1lc3NhZ2UoJ2FycmF5R3JhcGgnLCBm
YWxzZSwgImFycmF5R3JhcGgiKTsKLWRlZXBBcnJheT1bXTsKLWZvciAodmFyIGkgPSAwOyBpIDwg
MTAwMDA7IGkrKykKLSAgICBkZWVwQXJyYXk9W2RlZXBBcnJheV07Ci10cnlQb3N0TWVzc2FnZSgn
ZGVlcEFycmF5Jyk7Ci1yZWFsbHlEZWVwQXJyYXk9W107Ci1mb3IgKHZhciBpID0gMDsgaSA8IDEw
MDAwMDsgaSsrKQotICAgIHJlYWxseURlZXBBcnJheT1bcmVhbGx5RGVlcEFycmF5XTsKLXRyeVBv
c3RNZXNzYWdlKCdyZWFsbHlEZWVwQXJyYXknLCB0cnVlKTsKLXRyeVBvc3RNZXNzYWdlKCd3aW5k
b3cnLCB0cnVlKTsKLXRyeVBvc3RNZXNzYWdlKCcoe2dldCBhKCkgeyB0aHJvdyAieCIgfX0pJywg
dHJ1ZSk7Ci0KLWlmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKLSAgICB2YXIgZmlsZUlucHV0ID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGVJbnB1dCIpOwotICAgIHZhciBmaWxlUmVjdCA9
IGZpbGVJbnB1dC5nZXRDbGllbnRSZWN0cygpWzBdOwotICAgIHZhciB0YXJnZXRYID0gZmlsZVJl
Y3QubGVmdCArIGZpbGVSZWN0LndpZHRoIC8gMjsKLSAgICB2YXIgdGFyZ2V0WSA9IGZpbGVSZWN0
LnRvcCArIGZpbGVSZWN0LmhlaWdodCAvIDI7Ci0gICAgZXZlbnRTZW5kZXIuYmVnaW5EcmFnV2l0
aEZpbGVzKFsnZ2V0LWZpbGUtdXBsb2FkLmh0bWwnXSk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VN
b3ZlVG8odGFyZ2V0WCwgdGFyZ2V0WSk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOwotICAg
IHRyeVBvc3RNZXNzYWdlKCdmaWxlSW5wdXQuZmlsZXNbMF0nLCBmYWxzZSwgZmlsZUlucHV0LmZp
bGVzWzBdKTsKLSAgICB0cnlQb3N0TWVzc2FnZSgnZmlsZUlucHV0LmZpbGVzJywgZmFsc2UsIGZp
bGVJbnB1dC5maWxlcyk7Ci19Ci12YXIgaW1hZ2VEYXRhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgiY2FudmFzIikuZ2V0Q29udGV4dCgiMmQiKS5jcmVhdGVJbWFnZURhdGEoMTAsMTApOwotZm9y
ICh2YXIgaSA9IDA7IGkgPCBpbWFnZURhdGEuZGF0YS5sZW5ndGggKiA0OyBpKyspCi0gICAgaW1h
Z2VEYXRhLmRhdGFbaV0gPSBpICUgMjU2OwotdmFyIG11dGF0ZWRJbWFnZURhdGEgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKS5nZXRDb250ZXh0KCIyZCIpLmNyZWF0ZUltYWdlRGF0
YSgxMCwxMCk7Ci1mb3IgKHZhciBpID0gMDsgaSA8IGltYWdlRGF0YS5kYXRhLmxlbmd0aCAqIDQ7
IGkrKykKLSAgICBtdXRhdGVkSW1hZ2VEYXRhLmRhdGFbaV0gPSBpICUgMjU2OwotdHJ5UG9zdE1l
c3NhZ2UoJ2ltYWdlRGF0YScsIGZhbHNlLCBpbWFnZURhdGEpOwotdHJ5UG9zdE1lc3NhZ2UoJ211
dGF0ZWRJbWFnZURhdGEnLCBmYWxzZSwgaW1hZ2VEYXRhKTsKLWZvciAodmFyIGkgPSAwOyBpIDwg
aW1hZ2VEYXRhLmRhdGEubGVuZ3RoICogNDsgaSsrKQotICAgIG11dGF0ZWRJbWFnZURhdGEuZGF0
YVtpXSA9IDA7Ci0KLXRyeVBvc3RNZXNzYWdlKCciZG9uZSInKTsKLTwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9InNjcmlwdC10ZXN0cy9wb3N0bWVzc2FnZS10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSJzY3JpcHQtdGVzdHMvcG9zdG1lc3NhZ2UtY2xvbmUuanMiPjwvc2NyaXB0PgogPC9i
b2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dp
bmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRv
dy93aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQKaW5kZXggNDQzNTRmOS4uMDlkMzM1YyAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVz
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXBy
b3BlcnRpZXMtZXhwZWN0ZWQudHh0CkBAIC01MTEsNiArNTExLDcgQEAgd2luZG93LkNvdW50ZXIg
W29iamVjdCBDb3VudGVyQ29uc3RydWN0b3JdCiB3aW5kb3cuQ291bnRlci5wcm90b3R5cGUgW29i
amVjdCBDb3VudGVyUHJvdG90eXBlXQogd2luZG93LkRPTUV4Y2VwdGlvbiBbb2JqZWN0IERPTUV4
Y2VwdGlvbkNvbnN0cnVjdG9yXQogd2luZG93LkRPTUV4Y2VwdGlvbi5BQk9SVF9FUlIgW251bWJl
cl0KK3dpbmRvdy5ET01FeGNlcHRpb24uREFUQV9DTE9ORV9FUlIgW251bWJlcl0KIHdpbmRvdy5E
T01FeGNlcHRpb24uRE9NU1RSSU5HX1NJWkVfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0
aW9uLkhJRVJBUkNIWV9SRVFVRVNUX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5J
TkRFWF9TSVpFX0VSUiBbbnVtYmVyXQpAQCAtNTE4LDYgKzUxOSw3IEBAIHdpbmRvdy5ET01FeGNl
cHRpb24uSU5VU0VfQVRUUklCVVRFX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5J
TlZBTElEX0FDQ0VTU19FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24uSU5WQUxJRF9D
SEFSQUNURVJfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLklOVkFMSURfTU9ESUZJ
Q0FUSU9OX0VSUiBbbnVtYmVyXQord2luZG93LkRPTUV4Y2VwdGlvbi5JTlZBTElEX05PREVfVFlQ
RV9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24uSU5WQUxJRF9TVEFURV9FUlIgW251
bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24uTkFNRVNQQUNFX0VSUiBbbnVtYmVyXQogd2luZG93
LkRPTUV4Y2VwdGlvbi5ORVRXT1JLX0VSUiBbbnVtYmVyXQpAQCAtNTI4LDEyICs1MzAsMTQgQEAg
d2luZG93LkRPTUV4Y2VwdGlvbi5OT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlIgW251bWJlcl0K
IHdpbmRvdy5ET01FeGNlcHRpb24uUVVPVEFfRVhDRUVERURfRVJSIFtudW1iZXJdCiB3aW5kb3cu
RE9NRXhjZXB0aW9uLlNFQ1VSSVRZX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5T
WU5UQVhfRVJSIFtudW1iZXJdCit3aW5kb3cuRE9NRXhjZXB0aW9uLlRJTUVPVVRfRVJSIFtudW1i
ZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLlRZUEVfTUlTTUFUQ0hfRVJSIFtudW1iZXJdCiB3aW5k
b3cuRE9NRXhjZXB0aW9uLlVSTF9NSVNNQVRDSF9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNl
cHRpb24uVkFMSURBVElPTl9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24uV1JPTkdf
RE9DVU1FTlRfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZSBbb2Jq
ZWN0IERPTUV4Y2VwdGlvblByb3RvdHlwZV0KIHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBl
LkFCT1JUX0VSUiBbbnVtYmVyXQord2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuREFUQV9D
TE9ORV9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlLkRPTVNUUklO
R19TSVpFX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuSElFUkFS
Q0hZX1JFUVVFU1RfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5J
TkRFWF9TSVpFX0VSUiBbbnVtYmVyXQpAQCAtNTQxLDYgKzU0NSw3IEBAIHdpbmRvdy5ET01FeGNl
cHRpb24ucHJvdG90eXBlLklOVVNFX0FUVFJJQlVURV9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01F
eGNlcHRpb24ucHJvdG90eXBlLklOVkFMSURfQUNDRVNTX0VSUiBbbnVtYmVyXQogd2luZG93LkRP
TUV4Y2VwdGlvbi5wcm90b3R5cGUuSU5WQUxJRF9DSEFSQUNURVJfRVJSIFtudW1iZXJdCiB3aW5k
b3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5JTlZBTElEX01PRElGSUNBVElPTl9FUlIgW251bWJl
cl0KK3dpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlLklOVkFMSURfTk9ERV9UWVBFX0VSUiBb
bnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuSU5WQUxJRF9TVEFURV9FUlIg
W251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlLk5BTUVTUEFDRV9FUlIgW251
bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlLk5FVFdPUktfRVJSIFtudW1iZXJd
CkBAIC01NTEsNiArNTU2LDcgQEAgd2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuTk9fTU9E
SUZJQ0FUSU9OX0FMTE9XRURfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3Rv
dHlwZS5RVU9UQV9FWENFRURFRF9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24ucHJv
dG90eXBlLlNFQ1VSSVRZX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5
cGUuU1lOVEFYX0VSUiBbbnVtYmVyXQord2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuVElN
RU9VVF9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlLlRZUEVfTUlT
TUFUQ0hfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5VUkxfTUlT
TUFUQ0hfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5WQUxJREFU
SU9OX0VSUiBbbnVtYmVyXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0vZmFzdC9jYW52YXMvd2ViZ2wvYXJyYXktbWVzc2FnZS1wYXNzaW5nLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvY2FudmFzL3dlYmdsL2FycmF5LW1l
c3NhZ2UtcGFzc2luZy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uMjUyYTliMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtL2Zhc3QvY2FudmFzL3dlYmdsL2FycmF5LW1lc3NhZ2UtcGFzc2luZy1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSw1OTkgQEAKK1Rlc3QgcGFzc2luZyBBcnJheUJ1ZmZlcnMgYW5kIEFycmF5
QnVmZmVyVmlld3MgaW4gbWVzc2FnZXMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKwor
UEFTUyBBcnJheUJ1ZmZlcjA6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNT
IEFycmF5QnVmZmVyMDogYnVmZmVyIGxlbmd0aHMgYXJlIDAKK1BBU1MgQXJyYXlCdWZmZXIwOiBi
dWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgQXJyYXlCdWZmZXIxOiBjbGFzc2Vz
IGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBBcnJheUJ1ZmZlcjE6IGJ1ZmZlciBsZW5n
dGhzIGFyZSAxCitQQVNTIEFycmF5QnVmZmVyMTogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRl
bnRzCitQQVNTIEFycmF5QnVmZmVyMTI4OiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVy
XQorUEFTUyBBcnJheUJ1ZmZlcjEyODogYnVmZmVyIGxlbmd0aHMgYXJlIDEyOAorUEFTUyBBcnJh
eUJ1ZmZlcjEyODogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIERhdGFWaWV3
MDogY2xhc3NlcyBhcmUgW29iamVjdCBEYXRhVmlld10KK1BBU1MgRGF0YVZpZXcwOiBjbGFzc2Vz
IGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBEYXRhVmlldzA6IGJ1ZmZlciBsZW5ndGhz
IGFyZSAwCitQQVNTIERhdGFWaWV3MDogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQ
QVNTIERhdGFWaWV3MDogb2Zmc2V0IGlzIDAKK1BBU1MgRGF0YVZpZXcwOiBsZW5ndGggaXMgMAor
UEFTUyBEYXRhVmlldzE6IGNsYXNzZXMgYXJlIFtvYmplY3QgRGF0YVZpZXddCitQQVNTIERhdGFW
aWV3MTogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgRGF0YVZpZXcxOiBi
dWZmZXIgbGVuZ3RocyBhcmUgMQorUEFTUyBEYXRhVmlldzE6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2Ft
ZSBjb250ZW50cworUEFTUyBEYXRhVmlldzE6IG9mZnNldCBpcyAwCitQQVNTIERhdGFWaWV3MTog
bGVuZ3RoIGlzIDEKK1BBU1MgRGF0YVZpZXcxMjg6IGNsYXNzZXMgYXJlIFtvYmplY3QgRGF0YVZp
ZXddCitQQVNTIERhdGFWaWV3MTI4OiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQor
UEFTUyBEYXRhVmlldzEyODogYnVmZmVyIGxlbmd0aHMgYXJlIDEyOAorUEFTUyBEYXRhVmlldzEy
ODogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIERhdGFWaWV3MTI4OiBvZmZz
ZXQgaXMgMAorUEFTUyBEYXRhVmlldzEyODogbGVuZ3RoIGlzIDEyOAorUEFTUyBEYXRhVmlldzFf
b2ZzX2VuZDogY2xhc3NlcyBhcmUgW29iamVjdCBEYXRhVmlld10KK1BBU1MgRGF0YVZpZXcxX29m
c19lbmQ6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIERhdGFWaWV3MV9v
ZnNfZW5kOiBidWZmZXIgbGVuZ3RocyBhcmUgMQorUEFTUyBEYXRhVmlldzFfb2ZzX2VuZDogYnVm
ZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIERhdGFWaWV3MV9vZnNfZW5kOiBvZmZz
ZXQgaXMgMQorUEFTUyBEYXRhVmlldzFfb2ZzX2VuZDogbGVuZ3RoIGlzIDAKK1BBU1MgRGF0YVZp
ZXcxMjhfb2ZzX2VuZDogY2xhc3NlcyBhcmUgW29iamVjdCBEYXRhVmlld10KK1BBU1MgRGF0YVZp
ZXcxMjhfb2ZzX2VuZDogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgRGF0
YVZpZXcxMjhfb2ZzX2VuZDogYnVmZmVyIGxlbmd0aHMgYXJlIDEyOAorUEFTUyBEYXRhVmlldzEy
OF9vZnNfZW5kOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgRGF0YVZpZXcx
Mjhfb2ZzX2VuZDogb2Zmc2V0IGlzIDEyOAorUEFTUyBEYXRhVmlldzEyOF9vZnNfZW5kOiBsZW5n
dGggaXMgMAorUEFTUyBEYXRhVmlldzEyOF9vZnNfc2xpY2UwOiBjbGFzc2VzIGFyZSBbb2JqZWN0
IERhdGFWaWV3XQorUEFTUyBEYXRhVmlldzEyOF9vZnNfc2xpY2UwOiBjbGFzc2VzIGFyZSBbb2Jq
ZWN0IEFycmF5QnVmZmVyXQorUEFTUyBEYXRhVmlldzEyOF9vZnNfc2xpY2UwOiBidWZmZXIgbGVu
Z3RocyBhcmUgMTI4CitQQVNTIERhdGFWaWV3MTI4X29mc19zbGljZTA6IGJ1ZmZlcnMgaGF2ZSB0
aGUgc2FtZSBjb250ZW50cworUEFTUyBEYXRhVmlldzEyOF9vZnNfc2xpY2UwOiBvZmZzZXQgaXMg
NjQKK1BBU1MgRGF0YVZpZXcxMjhfb2ZzX3NsaWNlMDogbGVuZ3RoIGlzIDAKK1BBU1MgRGF0YVZp
ZXcxMjhfb2ZzX3NsaWNlMTogY2xhc3NlcyBhcmUgW29iamVjdCBEYXRhVmlld10KK1BBU1MgRGF0
YVZpZXcxMjhfb2ZzX3NsaWNlMTogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BB
U1MgRGF0YVZpZXcxMjhfb2ZzX3NsaWNlMTogYnVmZmVyIGxlbmd0aHMgYXJlIDEyOAorUEFTUyBE
YXRhVmlldzEyOF9vZnNfc2xpY2UxOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BB
U1MgRGF0YVZpZXcxMjhfb2ZzX3NsaWNlMTogb2Zmc2V0IGlzIDY0CitQQVNTIERhdGFWaWV3MTI4
X29mc19zbGljZTE6IGxlbmd0aCBpcyAxCitQQVNTIERhdGFWaWV3MTI4X29mc19zbGljZTE2OiBj
bGFzc2VzIGFyZSBbb2JqZWN0IERhdGFWaWV3XQorUEFTUyBEYXRhVmlldzEyOF9vZnNfc2xpY2Ux
NjogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgRGF0YVZpZXcxMjhfb2Zz
X3NsaWNlMTY6IGJ1ZmZlciBsZW5ndGhzIGFyZSAxMjgKK1BBU1MgRGF0YVZpZXcxMjhfb2ZzX3Ns
aWNlMTY6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBEYXRhVmlldzEyOF9v
ZnNfc2xpY2UxNjogb2Zmc2V0IGlzIDY0CitQQVNTIERhdGFWaWV3MTI4X29mc19zbGljZTE2OiBs
ZW5ndGggaXMgMTYKK1BBU1MgRGF0YVZpZXcxMjhfb2ZzX3NsaWNlX3VuYWxpZ25lZDogY2xhc3Nl
cyBhcmUgW29iamVjdCBEYXRhVmlld10KK1BBU1MgRGF0YVZpZXcxMjhfb2ZzX3NsaWNlX3VuYWxp
Z25lZDogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgRGF0YVZpZXcxMjhf
b2ZzX3NsaWNlX3VuYWxpZ25lZDogYnVmZmVyIGxlbmd0aHMgYXJlIDEyOAorUEFTUyBEYXRhVmll
dzEyOF9vZnNfc2xpY2VfdW5hbGlnbmVkOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMK
K1BBU1MgRGF0YVZpZXcxMjhfb2ZzX3NsaWNlX3VuYWxpZ25lZDogb2Zmc2V0IGlzIDYzCitQQVNT
IERhdGFWaWV3MTI4X29mc19zbGljZV91bmFsaWduZWQ6IGxlbmd0aCBpcyAxNQorUEFTUyBJbnQz
Ml8wOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEludDMyQXJyYXldCitQQVNTIEludDMyXzA6IGNsYXNz
ZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIEludDMyXzA6IGJ1ZmZlciBsZW5ndGhz
IGFyZSAwCitQQVNTIEludDMyXzA6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFT
UyBJbnQzMl8wOiBvZmZzZXQgaXMgMAorUEFTUyBJbnQzMl8wOiBsZW5ndGggaXMgMAorUEFTUyBV
aW50MzJfMDogY2xhc3NlcyBhcmUgW29iamVjdCBVaW50MzJBcnJheV0KK1BBU1MgVWludDMyXzA6
IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIFVpbnQzMl8wOiBidWZmZXIg
bGVuZ3RocyBhcmUgMAorUEFTUyBVaW50MzJfMDogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRl
bnRzCitQQVNTIFVpbnQzMl8wOiBvZmZzZXQgaXMgMAorUEFTUyBVaW50MzJfMDogbGVuZ3RoIGlz
IDAKK1BBU1MgSW50OF8wOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEludDhBcnJheV0KK1BBU1MgSW50
OF8wOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBJbnQ4XzA6IGJ1ZmZl
ciBsZW5ndGhzIGFyZSAwCitQQVNTIEludDhfMDogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRl
bnRzCitQQVNTIEludDhfMDogb2Zmc2V0IGlzIDAKK1BBU1MgSW50OF8wOiBsZW5ndGggaXMgMAor
UEFTUyBVaW50OF8wOiBjbGFzc2VzIGFyZSBbb2JqZWN0IFVpbnQ4QXJyYXldCitQQVNTIFVpbnQ4
XzA6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIFVpbnQ4XzA6IGJ1ZmZl
ciBsZW5ndGhzIGFyZSAwCitQQVNTIFVpbnQ4XzA6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250
ZW50cworUEFTUyBVaW50OF8wOiBvZmZzZXQgaXMgMAorUEFTUyBVaW50OF8wOiBsZW5ndGggaXMg
MAorUEFTUyBJbnQxNl8wOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEludDE2QXJyYXldCitQQVNTIElu
dDE2XzA6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIEludDE2XzA6IGJ1
ZmZlciBsZW5ndGhzIGFyZSAwCitQQVNTIEludDE2XzA6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBj
b250ZW50cworUEFTUyBJbnQxNl8wOiBvZmZzZXQgaXMgMAorUEFTUyBJbnQxNl8wOiBsZW5ndGgg
aXMgMAorUEFTUyBVaW50MTZfMDogY2xhc3NlcyBhcmUgW29iamVjdCBVaW50MTZBcnJheV0KK1BB
U1MgVWludDE2XzA6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIFVpbnQx
Nl8wOiBidWZmZXIgbGVuZ3RocyBhcmUgMAorUEFTUyBVaW50MTZfMDogYnVmZmVycyBoYXZlIHRo
ZSBzYW1lIGNvbnRlbnRzCitQQVNTIFVpbnQxNl8wOiBvZmZzZXQgaXMgMAorUEFTUyBVaW50MTZf
MDogbGVuZ3RoIGlzIDAKK1BBU1MgRmxvYXQzMl8wOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEZsb2F0
MzJBcnJheV0KK1BBU1MgRmxvYXQzMl8wOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVy
XQorUEFTUyBGbG9hdDMyXzA6IGJ1ZmZlciBsZW5ndGhzIGFyZSAwCitQQVNTIEZsb2F0MzJfMDog
YnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIEZsb2F0MzJfMDogb2Zmc2V0IGlz
IDAKK1BBU1MgRmxvYXQzMl8wOiBsZW5ndGggaXMgMAorUEFTUyBGbG9hdDY0XzA6IGNsYXNzZXMg
YXJlIFtvYmplY3QgRmxvYXQ2NEFycmF5XQorUEFTUyBGbG9hdDY0XzA6IGNsYXNzZXMgYXJlIFtv
YmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIEZsb2F0NjRfMDogYnVmZmVyIGxlbmd0aHMgYXJlIDAK
K1BBU1MgRmxvYXQ2NF8wOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgRmxv
YXQ2NF8wOiBvZmZzZXQgaXMgMAorUEFTUyBGbG9hdDY0XzA6IGxlbmd0aCBpcyAwCitQQVNTIElu
dDMyXzE6IGNsYXNzZXMgYXJlIFtvYmplY3QgSW50MzJBcnJheV0KK1BBU1MgSW50MzJfMTogY2xh
c3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgSW50MzJfMTogYnVmZmVyIGxlbmd0
aHMgYXJlIDQKK1BBU1MgSW50MzJfMTogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQ
QVNTIEludDMyXzE6IG9mZnNldCBpcyAwCitQQVNTIEludDMyXzE6IGxlbmd0aCBpcyA0CitQQVNT
IFVpbnQzMl8xOiBjbGFzc2VzIGFyZSBbb2JqZWN0IFVpbnQzMkFycmF5XQorUEFTUyBVaW50MzJf
MTogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgVWludDMyXzE6IGJ1ZmZl
ciBsZW5ndGhzIGFyZSA0CitQQVNTIFVpbnQzMl8xOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29u
dGVudHMKK1BBU1MgVWludDMyXzE6IG9mZnNldCBpcyAwCitQQVNTIFVpbnQzMl8xOiBsZW5ndGgg
aXMgNAorUEFTUyBJbnQ4XzE6IGNsYXNzZXMgYXJlIFtvYmplY3QgSW50OEFycmF5XQorUEFTUyBJ
bnQ4XzE6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIEludDhfMTogYnVm
ZmVyIGxlbmd0aHMgYXJlIDEKK1BBU1MgSW50OF8xOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29u
dGVudHMKK1BBU1MgSW50OF8xOiBvZmZzZXQgaXMgMAorUEFTUyBJbnQ4XzE6IGxlbmd0aCBpcyAx
CitQQVNTIFVpbnQ4XzE6IGNsYXNzZXMgYXJlIFtvYmplY3QgVWludDhBcnJheV0KK1BBU1MgVWlu
dDhfMTogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgVWludDhfMTogYnVm
ZmVyIGxlbmd0aHMgYXJlIDEKK1BBU1MgVWludDhfMTogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNv
bnRlbnRzCitQQVNTIFVpbnQ4XzE6IG9mZnNldCBpcyAwCitQQVNTIFVpbnQ4XzE6IGxlbmd0aCBp
cyAxCitQQVNTIEludDE2XzE6IGNsYXNzZXMgYXJlIFtvYmplY3QgSW50MTZBcnJheV0KK1BBU1Mg
SW50MTZfMTogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgSW50MTZfMTog
YnVmZmVyIGxlbmd0aHMgYXJlIDIKK1BBU1MgSW50MTZfMTogYnVmZmVycyBoYXZlIHRoZSBzYW1l
IGNvbnRlbnRzCitQQVNTIEludDE2XzE6IG9mZnNldCBpcyAwCitQQVNTIEludDE2XzE6IGxlbmd0
aCBpcyAyCitQQVNTIFVpbnQxNl8xOiBjbGFzc2VzIGFyZSBbb2JqZWN0IFVpbnQxNkFycmF5XQor
UEFTUyBVaW50MTZfMTogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgVWlu
dDE2XzE6IGJ1ZmZlciBsZW5ndGhzIGFyZSAyCitQQVNTIFVpbnQxNl8xOiBidWZmZXJzIGhhdmUg
dGhlIHNhbWUgY29udGVudHMKK1BBU1MgVWludDE2XzE6IG9mZnNldCBpcyAwCitQQVNTIFVpbnQx
Nl8xOiBsZW5ndGggaXMgMgorUEFTUyBGbG9hdDMyXzE6IGNsYXNzZXMgYXJlIFtvYmplY3QgRmxv
YXQzMkFycmF5XQorUEFTUyBGbG9hdDMyXzE6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZm
ZXJdCitQQVNTIEZsb2F0MzJfMTogYnVmZmVyIGxlbmd0aHMgYXJlIDQKK1BBU1MgRmxvYXQzMl8x
OiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgRmxvYXQzMl8xOiBvZmZzZXQg
aXMgMAorUEFTUyBGbG9hdDMyXzE6IGxlbmd0aCBpcyA0CitQQVNTIEZsb2F0NjRfMTogY2xhc3Nl
cyBhcmUgW29iamVjdCBGbG9hdDY0QXJyYXldCitQQVNTIEZsb2F0NjRfMTogY2xhc3NlcyBhcmUg
W29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgRmxvYXQ2NF8xOiBidWZmZXIgbGVuZ3RocyBhcmUg
OAorUEFTUyBGbG9hdDY0XzE6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBG
bG9hdDY0XzE6IG9mZnNldCBpcyAwCitQQVNTIEZsb2F0NjRfMTogbGVuZ3RoIGlzIDgKK1BBU1Mg
SW50MzJfMTI4OiBjbGFzc2VzIGFyZSBbb2JqZWN0IEludDMyQXJyYXldCitQQVNTIEludDMyXzEy
ODogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgSW50MzJfMTI4OiBidWZm
ZXIgbGVuZ3RocyBhcmUgNTEyCitQQVNTIEludDMyXzEyODogYnVmZmVycyBoYXZlIHRoZSBzYW1l
IGNvbnRlbnRzCitQQVNTIEludDMyXzEyODogb2Zmc2V0IGlzIDAKK1BBU1MgSW50MzJfMTI4OiBs
ZW5ndGggaXMgNTEyCitQQVNTIFVpbnQzMl8xMjg6IGNsYXNzZXMgYXJlIFtvYmplY3QgVWludDMy
QXJyYXldCitQQVNTIFVpbnQzMl8xMjg6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJd
CitQQVNTIFVpbnQzMl8xMjg6IGJ1ZmZlciBsZW5ndGhzIGFyZSA1MTIKK1BBU1MgVWludDMyXzEy
ODogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIFVpbnQzMl8xMjg6IG9mZnNl
dCBpcyAwCitQQVNTIFVpbnQzMl8xMjg6IGxlbmd0aCBpcyA1MTIKK1BBU1MgSW50OF8xMjg6IGNs
YXNzZXMgYXJlIFtvYmplY3QgSW50OEFycmF5XQorUEFTUyBJbnQ4XzEyODogY2xhc3NlcyBhcmUg
W29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgSW50OF8xMjg6IGJ1ZmZlciBsZW5ndGhzIGFyZSAx
MjgKK1BBU1MgSW50OF8xMjg6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBJ
bnQ4XzEyODogb2Zmc2V0IGlzIDAKK1BBU1MgSW50OF8xMjg6IGxlbmd0aCBpcyAxMjgKK1BBU1Mg
VWludDhfMTI4OiBjbGFzc2VzIGFyZSBbb2JqZWN0IFVpbnQ4QXJyYXldCitQQVNTIFVpbnQ4XzEy
ODogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgVWludDhfMTI4OiBidWZm
ZXIgbGVuZ3RocyBhcmUgMTI4CitQQVNTIFVpbnQ4XzEyODogYnVmZmVycyBoYXZlIHRoZSBzYW1l
IGNvbnRlbnRzCitQQVNTIFVpbnQ4XzEyODogb2Zmc2V0IGlzIDAKK1BBU1MgVWludDhfMTI4OiBs
ZW5ndGggaXMgMTI4CitQQVNTIEludDE2XzEyODogY2xhc3NlcyBhcmUgW29iamVjdCBJbnQxNkFy
cmF5XQorUEFTUyBJbnQxNl8xMjg6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQ
QVNTIEludDE2XzEyODogYnVmZmVyIGxlbmd0aHMgYXJlIDI1NgorUEFTUyBJbnQxNl8xMjg6IGJ1
ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBJbnQxNl8xMjg6IG9mZnNldCBpcyAw
CitQQVNTIEludDE2XzEyODogbGVuZ3RoIGlzIDI1NgorUEFTUyBVaW50MTZfMTI4OiBjbGFzc2Vz
IGFyZSBbb2JqZWN0IFVpbnQxNkFycmF5XQorUEFTUyBVaW50MTZfMTI4OiBjbGFzc2VzIGFyZSBb
b2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBVaW50MTZfMTI4OiBidWZmZXIgbGVuZ3RocyBhcmUg
MjU2CitQQVNTIFVpbnQxNl8xMjg6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFT
UyBVaW50MTZfMTI4OiBvZmZzZXQgaXMgMAorUEFTUyBVaW50MTZfMTI4OiBsZW5ndGggaXMgMjU2
CitQQVNTIEZsb2F0MzJfMTI4OiBjbGFzc2VzIGFyZSBbb2JqZWN0IEZsb2F0MzJBcnJheV0KK1BB
U1MgRmxvYXQzMl8xMjg6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIEZs
b2F0MzJfMTI4OiBidWZmZXIgbGVuZ3RocyBhcmUgNTEyCitQQVNTIEZsb2F0MzJfMTI4OiBidWZm
ZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgRmxvYXQzMl8xMjg6IG9mZnNldCBpcyAw
CitQQVNTIEZsb2F0MzJfMTI4OiBsZW5ndGggaXMgNTEyCitQQVNTIEZsb2F0NjRfMTI4OiBjbGFz
c2VzIGFyZSBbb2JqZWN0IEZsb2F0NjRBcnJheV0KK1BBU1MgRmxvYXQ2NF8xMjg6IGNsYXNzZXMg
YXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIEZsb2F0NjRfMTI4OiBidWZmZXIgbGVuZ3Ro
cyBhcmUgMTAyNAorUEFTUyBGbG9hdDY0XzEyODogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRl
bnRzCitQQVNTIEZsb2F0NjRfMTI4OiBvZmZzZXQgaXMgMAorUEFTUyBGbG9hdDY0XzEyODogbGVu
Z3RoIGlzIDEwMjQKK1BBU1MgSW50MzJfMF9idWZmZXI6IGNsYXNzZXMgYXJlIFtvYmplY3QgSW50
MzJBcnJheV0KK1BBU1MgSW50MzJfMF9idWZmZXI6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlC
dWZmZXJdCitQQVNTIEludDMyXzBfYnVmZmVyOiBidWZmZXIgbGVuZ3RocyBhcmUgMAorUEFTUyBJ
bnQzMl8wX2J1ZmZlcjogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIEludDMy
XzBfYnVmZmVyOiBvZmZzZXQgaXMgMAorUEFTUyBJbnQzMl8wX2J1ZmZlcjogbGVuZ3RoIGlzIDAK
K1BBU1MgVWludDMyXzBfYnVmZmVyOiBjbGFzc2VzIGFyZSBbb2JqZWN0IFVpbnQzMkFycmF5XQor
UEFTUyBVaW50MzJfMF9idWZmZXI6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQ
QVNTIFVpbnQzMl8wX2J1ZmZlcjogYnVmZmVyIGxlbmd0aHMgYXJlIDAKK1BBU1MgVWludDMyXzBf
YnVmZmVyOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgVWludDMyXzBfYnVm
ZmVyOiBvZmZzZXQgaXMgMAorUEFTUyBVaW50MzJfMF9idWZmZXI6IGxlbmd0aCBpcyAwCitQQVNT
IEludDhfMF9idWZmZXI6IGNsYXNzZXMgYXJlIFtvYmplY3QgSW50OEFycmF5XQorUEFTUyBJbnQ4
XzBfYnVmZmVyOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBJbnQ4XzBf
YnVmZmVyOiBidWZmZXIgbGVuZ3RocyBhcmUgMAorUEFTUyBJbnQ4XzBfYnVmZmVyOiBidWZmZXJz
IGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgSW50OF8wX2J1ZmZlcjogb2Zmc2V0IGlzIDAK
K1BBU1MgSW50OF8wX2J1ZmZlcjogbGVuZ3RoIGlzIDAKK1BBU1MgVWludDhfMF9idWZmZXI6IGNs
YXNzZXMgYXJlIFtvYmplY3QgVWludDhBcnJheV0KK1BBU1MgVWludDhfMF9idWZmZXI6IGNsYXNz
ZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIFVpbnQ4XzBfYnVmZmVyOiBidWZmZXIg
bGVuZ3RocyBhcmUgMAorUEFTUyBVaW50OF8wX2J1ZmZlcjogYnVmZmVycyBoYXZlIHRoZSBzYW1l
IGNvbnRlbnRzCitQQVNTIFVpbnQ4XzBfYnVmZmVyOiBvZmZzZXQgaXMgMAorUEFTUyBVaW50OF8w
X2J1ZmZlcjogbGVuZ3RoIGlzIDAKK1BBU1MgSW50MTZfMF9idWZmZXI6IGNsYXNzZXMgYXJlIFtv
YmplY3QgSW50MTZBcnJheV0KK1BBU1MgSW50MTZfMF9idWZmZXI6IGNsYXNzZXMgYXJlIFtvYmpl
Y3QgQXJyYXlCdWZmZXJdCitQQVNTIEludDE2XzBfYnVmZmVyOiBidWZmZXIgbGVuZ3RocyBhcmUg
MAorUEFTUyBJbnQxNl8wX2J1ZmZlcjogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQ
QVNTIEludDE2XzBfYnVmZmVyOiBvZmZzZXQgaXMgMAorUEFTUyBJbnQxNl8wX2J1ZmZlcjogbGVu
Z3RoIGlzIDAKK1BBU1MgVWludDE2XzBfYnVmZmVyOiBjbGFzc2VzIGFyZSBbb2JqZWN0IFVpbnQx
NkFycmF5XQorUEFTUyBVaW50MTZfMF9idWZmZXI6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlC
dWZmZXJdCitQQVNTIFVpbnQxNl8wX2J1ZmZlcjogYnVmZmVyIGxlbmd0aHMgYXJlIDAKK1BBU1Mg
VWludDE2XzBfYnVmZmVyOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgVWlu
dDE2XzBfYnVmZmVyOiBvZmZzZXQgaXMgMAorUEFTUyBVaW50MTZfMF9idWZmZXI6IGxlbmd0aCBp
cyAwCitQQVNTIEZsb2F0MzJfMF9idWZmZXI6IGNsYXNzZXMgYXJlIFtvYmplY3QgRmxvYXQzMkFy
cmF5XQorUEFTUyBGbG9hdDMyXzBfYnVmZmVyOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVm
ZmVyXQorUEFTUyBGbG9hdDMyXzBfYnVmZmVyOiBidWZmZXIgbGVuZ3RocyBhcmUgMAorUEFTUyBG
bG9hdDMyXzBfYnVmZmVyOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgRmxv
YXQzMl8wX2J1ZmZlcjogb2Zmc2V0IGlzIDAKK1BBU1MgRmxvYXQzMl8wX2J1ZmZlcjogbGVuZ3Ro
IGlzIDAKK1BBU1MgRmxvYXQ2NF8wX2J1ZmZlcjogY2xhc3NlcyBhcmUgW29iamVjdCBGbG9hdDY0
QXJyYXldCitQQVNTIEZsb2F0NjRfMF9idWZmZXI6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlC
dWZmZXJdCitQQVNTIEZsb2F0NjRfMF9idWZmZXI6IGJ1ZmZlciBsZW5ndGhzIGFyZSAwCitQQVNT
IEZsb2F0NjRfMF9idWZmZXI6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBG
bG9hdDY0XzBfYnVmZmVyOiBvZmZzZXQgaXMgMAorUEFTUyBGbG9hdDY0XzBfYnVmZmVyOiBsZW5n
dGggaXMgMAorUEFTUyBJbnQzMl8xX2J1ZmZlcjogY2xhc3NlcyBhcmUgW29iamVjdCBJbnQzMkFy
cmF5XQorUEFTUyBJbnQzMl8xX2J1ZmZlcjogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZl
cl0KK1BBU1MgSW50MzJfMV9idWZmZXI6IGJ1ZmZlciBsZW5ndGhzIGFyZSA0CitQQVNTIEludDMy
XzFfYnVmZmVyOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgSW50MzJfMV9i
dWZmZXI6IG9mZnNldCBpcyAwCitQQVNTIEludDMyXzFfYnVmZmVyOiBsZW5ndGggaXMgNAorUEFT
UyBVaW50MzJfMV9idWZmZXI6IGNsYXNzZXMgYXJlIFtvYmplY3QgVWludDMyQXJyYXldCitQQVNT
IFVpbnQzMl8xX2J1ZmZlcjogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1Mg
VWludDMyXzFfYnVmZmVyOiBidWZmZXIgbGVuZ3RocyBhcmUgNAorUEFTUyBVaW50MzJfMV9idWZm
ZXI6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBVaW50MzJfMV9idWZmZXI6
IG9mZnNldCBpcyAwCitQQVNTIFVpbnQzMl8xX2J1ZmZlcjogbGVuZ3RoIGlzIDQKK1BBU1MgSW50
OF8xX2J1ZmZlcjogY2xhc3NlcyBhcmUgW29iamVjdCBJbnQ4QXJyYXldCitQQVNTIEludDhfMV9i
dWZmZXI6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIEludDhfMV9idWZm
ZXI6IGJ1ZmZlciBsZW5ndGhzIGFyZSAxCitQQVNTIEludDhfMV9idWZmZXI6IGJ1ZmZlcnMgaGF2
ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBJbnQ4XzFfYnVmZmVyOiBvZmZzZXQgaXMgMAorUEFT
UyBJbnQ4XzFfYnVmZmVyOiBsZW5ndGggaXMgMQorUEFTUyBVaW50OF8xX2J1ZmZlcjogY2xhc3Nl
cyBhcmUgW29iamVjdCBVaW50OEFycmF5XQorUEFTUyBVaW50OF8xX2J1ZmZlcjogY2xhc3NlcyBh
cmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgVWludDhfMV9idWZmZXI6IGJ1ZmZlciBsZW5n
dGhzIGFyZSAxCitQQVNTIFVpbnQ4XzFfYnVmZmVyOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29u
dGVudHMKK1BBU1MgVWludDhfMV9idWZmZXI6IG9mZnNldCBpcyAwCitQQVNTIFVpbnQ4XzFfYnVm
ZmVyOiBsZW5ndGggaXMgMQorUEFTUyBJbnQxNl8xX2J1ZmZlcjogY2xhc3NlcyBhcmUgW29iamVj
dCBJbnQxNkFycmF5XQorUEFTUyBJbnQxNl8xX2J1ZmZlcjogY2xhc3NlcyBhcmUgW29iamVjdCBB
cnJheUJ1ZmZlcl0KK1BBU1MgSW50MTZfMV9idWZmZXI6IGJ1ZmZlciBsZW5ndGhzIGFyZSAyCitQ
QVNTIEludDE2XzFfYnVmZmVyOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1Mg
SW50MTZfMV9idWZmZXI6IG9mZnNldCBpcyAwCitQQVNTIEludDE2XzFfYnVmZmVyOiBsZW5ndGgg
aXMgMgorUEFTUyBVaW50MTZfMV9idWZmZXI6IGNsYXNzZXMgYXJlIFtvYmplY3QgVWludDE2QXJy
YXldCitQQVNTIFVpbnQxNl8xX2J1ZmZlcjogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZl
cl0KK1BBU1MgVWludDE2XzFfYnVmZmVyOiBidWZmZXIgbGVuZ3RocyBhcmUgMgorUEFTUyBVaW50
MTZfMV9idWZmZXI6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBVaW50MTZf
MV9idWZmZXI6IG9mZnNldCBpcyAwCitQQVNTIFVpbnQxNl8xX2J1ZmZlcjogbGVuZ3RoIGlzIDIK
K1BBU1MgRmxvYXQzMl8xX2J1ZmZlcjogY2xhc3NlcyBhcmUgW29iamVjdCBGbG9hdDMyQXJyYXld
CitQQVNTIEZsb2F0MzJfMV9idWZmZXI6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJd
CitQQVNTIEZsb2F0MzJfMV9idWZmZXI6IGJ1ZmZlciBsZW5ndGhzIGFyZSA0CitQQVNTIEZsb2F0
MzJfMV9idWZmZXI6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBGbG9hdDMy
XzFfYnVmZmVyOiBvZmZzZXQgaXMgMAorUEFTUyBGbG9hdDMyXzFfYnVmZmVyOiBsZW5ndGggaXMg
NAorUEFTUyBGbG9hdDY0XzFfYnVmZmVyOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEZsb2F0NjRBcnJh
eV0KK1BBU1MgRmxvYXQ2NF8xX2J1ZmZlcjogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZl
cl0KK1BBU1MgRmxvYXQ2NF8xX2J1ZmZlcjogYnVmZmVyIGxlbmd0aHMgYXJlIDgKK1BBU1MgRmxv
YXQ2NF8xX2J1ZmZlcjogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIEZsb2F0
NjRfMV9idWZmZXI6IG9mZnNldCBpcyAwCitQQVNTIEZsb2F0NjRfMV9idWZmZXI6IGxlbmd0aCBp
cyA4CitQQVNTIEludDMyXzEyOF9idWZmZXI6IGNsYXNzZXMgYXJlIFtvYmplY3QgSW50MzJBcnJh
eV0KK1BBU1MgSW50MzJfMTI4X2J1ZmZlcjogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZl
cl0KK1BBU1MgSW50MzJfMTI4X2J1ZmZlcjogYnVmZmVyIGxlbmd0aHMgYXJlIDUxMgorUEFTUyBJ
bnQzMl8xMjhfYnVmZmVyOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgSW50
MzJfMTI4X2J1ZmZlcjogb2Zmc2V0IGlzIDAKK1BBU1MgSW50MzJfMTI4X2J1ZmZlcjogbGVuZ3Ro
IGlzIDUxMgorUEFTUyBVaW50MzJfMTI4X2J1ZmZlcjogY2xhc3NlcyBhcmUgW29iamVjdCBVaW50
MzJBcnJheV0KK1BBU1MgVWludDMyXzEyOF9idWZmZXI6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJy
YXlCdWZmZXJdCitQQVNTIFVpbnQzMl8xMjhfYnVmZmVyOiBidWZmZXIgbGVuZ3RocyBhcmUgNTEy
CitQQVNTIFVpbnQzMl8xMjhfYnVmZmVyOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMK
K1BBU1MgVWludDMyXzEyOF9idWZmZXI6IG9mZnNldCBpcyAwCitQQVNTIFVpbnQzMl8xMjhfYnVm
ZmVyOiBsZW5ndGggaXMgNTEyCitQQVNTIEludDhfMTI4X2J1ZmZlcjogY2xhc3NlcyBhcmUgW29i
amVjdCBJbnQ4QXJyYXldCitQQVNTIEludDhfMTI4X2J1ZmZlcjogY2xhc3NlcyBhcmUgW29iamVj
dCBBcnJheUJ1ZmZlcl0KK1BBU1MgSW50OF8xMjhfYnVmZmVyOiBidWZmZXIgbGVuZ3RocyBhcmUg
MTI4CitQQVNTIEludDhfMTI4X2J1ZmZlcjogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRz
CitQQVNTIEludDhfMTI4X2J1ZmZlcjogb2Zmc2V0IGlzIDAKK1BBU1MgSW50OF8xMjhfYnVmZmVy
OiBsZW5ndGggaXMgMTI4CitQQVNTIFVpbnQ4XzEyOF9idWZmZXI6IGNsYXNzZXMgYXJlIFtvYmpl
Y3QgVWludDhBcnJheV0KK1BBU1MgVWludDhfMTI4X2J1ZmZlcjogY2xhc3NlcyBhcmUgW29iamVj
dCBBcnJheUJ1ZmZlcl0KK1BBU1MgVWludDhfMTI4X2J1ZmZlcjogYnVmZmVyIGxlbmd0aHMgYXJl
IDEyOAorUEFTUyBVaW50OF8xMjhfYnVmZmVyOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVu
dHMKK1BBU1MgVWludDhfMTI4X2J1ZmZlcjogb2Zmc2V0IGlzIDAKK1BBU1MgVWludDhfMTI4X2J1
ZmZlcjogbGVuZ3RoIGlzIDEyOAorUEFTUyBJbnQxNl8xMjhfYnVmZmVyOiBjbGFzc2VzIGFyZSBb
b2JqZWN0IEludDE2QXJyYXldCitQQVNTIEludDE2XzEyOF9idWZmZXI6IGNsYXNzZXMgYXJlIFtv
YmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIEludDE2XzEyOF9idWZmZXI6IGJ1ZmZlciBsZW5ndGhz
IGFyZSAyNTYKK1BBU1MgSW50MTZfMTI4X2J1ZmZlcjogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNv
bnRlbnRzCitQQVNTIEludDE2XzEyOF9idWZmZXI6IG9mZnNldCBpcyAwCitQQVNTIEludDE2XzEy
OF9idWZmZXI6IGxlbmd0aCBpcyAyNTYKK1BBU1MgVWludDE2XzEyOF9idWZmZXI6IGNsYXNzZXMg
YXJlIFtvYmplY3QgVWludDE2QXJyYXldCitQQVNTIFVpbnQxNl8xMjhfYnVmZmVyOiBjbGFzc2Vz
IGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBVaW50MTZfMTI4X2J1ZmZlcjogYnVmZmVy
IGxlbmd0aHMgYXJlIDI1NgorUEFTUyBVaW50MTZfMTI4X2J1ZmZlcjogYnVmZmVycyBoYXZlIHRo
ZSBzYW1lIGNvbnRlbnRzCitQQVNTIFVpbnQxNl8xMjhfYnVmZmVyOiBvZmZzZXQgaXMgMAorUEFT
UyBVaW50MTZfMTI4X2J1ZmZlcjogbGVuZ3RoIGlzIDI1NgorUEFTUyBGbG9hdDMyXzEyOF9idWZm
ZXI6IGNsYXNzZXMgYXJlIFtvYmplY3QgRmxvYXQzMkFycmF5XQorUEFTUyBGbG9hdDMyXzEyOF9i
dWZmZXI6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIEZsb2F0MzJfMTI4
X2J1ZmZlcjogYnVmZmVyIGxlbmd0aHMgYXJlIDUxMgorUEFTUyBGbG9hdDMyXzEyOF9idWZmZXI6
IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBGbG9hdDMyXzEyOF9idWZmZXI6
IG9mZnNldCBpcyAwCitQQVNTIEZsb2F0MzJfMTI4X2J1ZmZlcjogbGVuZ3RoIGlzIDUxMgorUEFT
UyBGbG9hdDY0XzEyOF9idWZmZXI6IGNsYXNzZXMgYXJlIFtvYmplY3QgRmxvYXQ2NEFycmF5XQor
UEFTUyBGbG9hdDY0XzEyOF9idWZmZXI6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJd
CitQQVNTIEZsb2F0NjRfMTI4X2J1ZmZlcjogYnVmZmVyIGxlbmd0aHMgYXJlIDEwMjQKK1BBU1Mg
RmxvYXQ2NF8xMjhfYnVmZmVyOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1Mg
RmxvYXQ2NF8xMjhfYnVmZmVyOiBvZmZzZXQgaXMgMAorUEFTUyBGbG9hdDY0XzEyOF9idWZmZXI6
IGxlbmd0aCBpcyAxMDI0CitQQVNTIEludDMyXzFfYnVmZmVyX29mZnNldF9hdF9lbmQ6IGNsYXNz
ZXMgYXJlIFtvYmplY3QgSW50MzJBcnJheV0KK1BBU1MgSW50MzJfMV9idWZmZXJfb2Zmc2V0X2F0
X2VuZDogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgSW50MzJfMV9idWZm
ZXJfb2Zmc2V0X2F0X2VuZDogYnVmZmVyIGxlbmd0aHMgYXJlIDQKK1BBU1MgSW50MzJfMV9idWZm
ZXJfb2Zmc2V0X2F0X2VuZDogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIElu
dDMyXzFfYnVmZmVyX29mZnNldF9hdF9lbmQ6IG9mZnNldCBpcyA0CitQQVNTIEludDMyXzFfYnVm
ZmVyX29mZnNldF9hdF9lbmQ6IGxlbmd0aCBpcyAwCitQQVNTIFVpbnQzMl8xX2J1ZmZlcl9vZmZz
ZXRfYXRfZW5kOiBjbGFzc2VzIGFyZSBbb2JqZWN0IFVpbnQzMkFycmF5XQorUEFTUyBVaW50MzJf
MV9idWZmZXJfb2Zmc2V0X2F0X2VuZDogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0K
K1BBU1MgVWludDMyXzFfYnVmZmVyX29mZnNldF9hdF9lbmQ6IGJ1ZmZlciBsZW5ndGhzIGFyZSA0
CitQQVNTIFVpbnQzMl8xX2J1ZmZlcl9vZmZzZXRfYXRfZW5kOiBidWZmZXJzIGhhdmUgdGhlIHNh
bWUgY29udGVudHMKK1BBU1MgVWludDMyXzFfYnVmZmVyX29mZnNldF9hdF9lbmQ6IG9mZnNldCBp
cyA0CitQQVNTIFVpbnQzMl8xX2J1ZmZlcl9vZmZzZXRfYXRfZW5kOiBsZW5ndGggaXMgMAorUEFT
UyBJbnQ4XzFfYnVmZmVyX29mZnNldF9hdF9lbmQ6IGNsYXNzZXMgYXJlIFtvYmplY3QgSW50OEFy
cmF5XQorUEFTUyBJbnQ4XzFfYnVmZmVyX29mZnNldF9hdF9lbmQ6IGNsYXNzZXMgYXJlIFtvYmpl
Y3QgQXJyYXlCdWZmZXJdCitQQVNTIEludDhfMV9idWZmZXJfb2Zmc2V0X2F0X2VuZDogYnVmZmVy
IGxlbmd0aHMgYXJlIDEKK1BBU1MgSW50OF8xX2J1ZmZlcl9vZmZzZXRfYXRfZW5kOiBidWZmZXJz
IGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgSW50OF8xX2J1ZmZlcl9vZmZzZXRfYXRfZW5k
OiBvZmZzZXQgaXMgMQorUEFTUyBJbnQ4XzFfYnVmZmVyX29mZnNldF9hdF9lbmQ6IGxlbmd0aCBp
cyAwCitQQVNTIFVpbnQ4XzFfYnVmZmVyX29mZnNldF9hdF9lbmQ6IGNsYXNzZXMgYXJlIFtvYmpl
Y3QgVWludDhBcnJheV0KK1BBU1MgVWludDhfMV9idWZmZXJfb2Zmc2V0X2F0X2VuZDogY2xhc3Nl
cyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgVWludDhfMV9idWZmZXJfb2Zmc2V0X2F0
X2VuZDogYnVmZmVyIGxlbmd0aHMgYXJlIDEKK1BBU1MgVWludDhfMV9idWZmZXJfb2Zmc2V0X2F0
X2VuZDogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIFVpbnQ4XzFfYnVmZmVy
X29mZnNldF9hdF9lbmQ6IG9mZnNldCBpcyAxCitQQVNTIFVpbnQ4XzFfYnVmZmVyX29mZnNldF9h
dF9lbmQ6IGxlbmd0aCBpcyAwCitQQVNTIEludDE2XzFfYnVmZmVyX29mZnNldF9hdF9lbmQ6IGNs
YXNzZXMgYXJlIFtvYmplY3QgSW50MTZBcnJheV0KK1BBU1MgSW50MTZfMV9idWZmZXJfb2Zmc2V0
X2F0X2VuZDogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgSW50MTZfMV9i
dWZmZXJfb2Zmc2V0X2F0X2VuZDogYnVmZmVyIGxlbmd0aHMgYXJlIDIKK1BBU1MgSW50MTZfMV9i
dWZmZXJfb2Zmc2V0X2F0X2VuZDogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNT
IEludDE2XzFfYnVmZmVyX29mZnNldF9hdF9lbmQ6IG9mZnNldCBpcyAyCitQQVNTIEludDE2XzFf
YnVmZmVyX29mZnNldF9hdF9lbmQ6IGxlbmd0aCBpcyAwCitQQVNTIFVpbnQxNl8xX2J1ZmZlcl9v
ZmZzZXRfYXRfZW5kOiBjbGFzc2VzIGFyZSBbb2JqZWN0IFVpbnQxNkFycmF5XQorUEFTUyBVaW50
MTZfMV9idWZmZXJfb2Zmc2V0X2F0X2VuZDogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZl
cl0KK1BBU1MgVWludDE2XzFfYnVmZmVyX29mZnNldF9hdF9lbmQ6IGJ1ZmZlciBsZW5ndGhzIGFy
ZSAyCitQQVNTIFVpbnQxNl8xX2J1ZmZlcl9vZmZzZXRfYXRfZW5kOiBidWZmZXJzIGhhdmUgdGhl
IHNhbWUgY29udGVudHMKK1BBU1MgVWludDE2XzFfYnVmZmVyX29mZnNldF9hdF9lbmQ6IG9mZnNl
dCBpcyAyCitQQVNTIFVpbnQxNl8xX2J1ZmZlcl9vZmZzZXRfYXRfZW5kOiBsZW5ndGggaXMgMAor
UEFTUyBGbG9hdDMyXzFfYnVmZmVyX29mZnNldF9hdF9lbmQ6IGNsYXNzZXMgYXJlIFtvYmplY3Qg
RmxvYXQzMkFycmF5XQorUEFTUyBGbG9hdDMyXzFfYnVmZmVyX29mZnNldF9hdF9lbmQ6IGNsYXNz
ZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIEZsb2F0MzJfMV9idWZmZXJfb2Zmc2V0
X2F0X2VuZDogYnVmZmVyIGxlbmd0aHMgYXJlIDQKK1BBU1MgRmxvYXQzMl8xX2J1ZmZlcl9vZmZz
ZXRfYXRfZW5kOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgRmxvYXQzMl8x
X2J1ZmZlcl9vZmZzZXRfYXRfZW5kOiBvZmZzZXQgaXMgNAorUEFTUyBGbG9hdDMyXzFfYnVmZmVy
X29mZnNldF9hdF9lbmQ6IGxlbmd0aCBpcyAwCitQQVNTIEZsb2F0NjRfMV9idWZmZXJfb2Zmc2V0
X2F0X2VuZDogY2xhc3NlcyBhcmUgW29iamVjdCBGbG9hdDY0QXJyYXldCitQQVNTIEZsb2F0NjRf
MV9idWZmZXJfb2Zmc2V0X2F0X2VuZDogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0K
K1BBU1MgRmxvYXQ2NF8xX2J1ZmZlcl9vZmZzZXRfYXRfZW5kOiBidWZmZXIgbGVuZ3RocyBhcmUg
OAorUEFTUyBGbG9hdDY0XzFfYnVmZmVyX29mZnNldF9hdF9lbmQ6IGJ1ZmZlcnMgaGF2ZSB0aGUg
c2FtZSBjb250ZW50cworUEFTUyBGbG9hdDY0XzFfYnVmZmVyX29mZnNldF9hdF9lbmQ6IG9mZnNl
dCBpcyA4CitQQVNTIEZsb2F0NjRfMV9idWZmZXJfb2Zmc2V0X2F0X2VuZDogbGVuZ3RoIGlzIDAK
K1BBU1MgSW50MzJfMTI4X2J1ZmZlcl9vZmZzZXRfYXRfZW5kOiBjbGFzc2VzIGFyZSBbb2JqZWN0
IEludDMyQXJyYXldCitQQVNTIEludDMyXzEyOF9idWZmZXJfb2Zmc2V0X2F0X2VuZDogY2xhc3Nl
cyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgSW50MzJfMTI4X2J1ZmZlcl9vZmZzZXRf
YXRfZW5kOiBidWZmZXIgbGVuZ3RocyBhcmUgNTEyCitQQVNTIEludDMyXzEyOF9idWZmZXJfb2Zm
c2V0X2F0X2VuZDogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIEludDMyXzEy
OF9idWZmZXJfb2Zmc2V0X2F0X2VuZDogb2Zmc2V0IGlzIDUxMgorUEFTUyBJbnQzMl8xMjhfYnVm
ZmVyX29mZnNldF9hdF9lbmQ6IGxlbmd0aCBpcyAwCitQQVNTIFVpbnQzMl8xMjhfYnVmZmVyX29m
ZnNldF9hdF9lbmQ6IGNsYXNzZXMgYXJlIFtvYmplY3QgVWludDMyQXJyYXldCitQQVNTIFVpbnQz
Ml8xMjhfYnVmZmVyX29mZnNldF9hdF9lbmQ6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZm
ZXJdCitQQVNTIFVpbnQzMl8xMjhfYnVmZmVyX29mZnNldF9hdF9lbmQ6IGJ1ZmZlciBsZW5ndGhz
IGFyZSA1MTIKK1BBU1MgVWludDMyXzEyOF9idWZmZXJfb2Zmc2V0X2F0X2VuZDogYnVmZmVycyBo
YXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIFVpbnQzMl8xMjhfYnVmZmVyX29mZnNldF9hdF9l
bmQ6IG9mZnNldCBpcyA1MTIKK1BBU1MgVWludDMyXzEyOF9idWZmZXJfb2Zmc2V0X2F0X2VuZDog
bGVuZ3RoIGlzIDAKK1BBU1MgSW50OF8xMjhfYnVmZmVyX29mZnNldF9hdF9lbmQ6IGNsYXNzZXMg
YXJlIFtvYmplY3QgSW50OEFycmF5XQorUEFTUyBJbnQ4XzEyOF9idWZmZXJfb2Zmc2V0X2F0X2Vu
ZDogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgSW50OF8xMjhfYnVmZmVy
X29mZnNldF9hdF9lbmQ6IGJ1ZmZlciBsZW5ndGhzIGFyZSAxMjgKK1BBU1MgSW50OF8xMjhfYnVm
ZmVyX29mZnNldF9hdF9lbmQ6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBJ
bnQ4XzEyOF9idWZmZXJfb2Zmc2V0X2F0X2VuZDogb2Zmc2V0IGlzIDEyOAorUEFTUyBJbnQ4XzEy
OF9idWZmZXJfb2Zmc2V0X2F0X2VuZDogbGVuZ3RoIGlzIDAKK1BBU1MgVWludDhfMTI4X2J1ZmZl
cl9vZmZzZXRfYXRfZW5kOiBjbGFzc2VzIGFyZSBbb2JqZWN0IFVpbnQ4QXJyYXldCitQQVNTIFVp
bnQ4XzEyOF9idWZmZXJfb2Zmc2V0X2F0X2VuZDogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1
ZmZlcl0KK1BBU1MgVWludDhfMTI4X2J1ZmZlcl9vZmZzZXRfYXRfZW5kOiBidWZmZXIgbGVuZ3Ro
cyBhcmUgMTI4CitQQVNTIFVpbnQ4XzEyOF9idWZmZXJfb2Zmc2V0X2F0X2VuZDogYnVmZmVycyBo
YXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIFVpbnQ4XzEyOF9idWZmZXJfb2Zmc2V0X2F0X2Vu
ZDogb2Zmc2V0IGlzIDEyOAorUEFTUyBVaW50OF8xMjhfYnVmZmVyX29mZnNldF9hdF9lbmQ6IGxl
bmd0aCBpcyAwCitQQVNTIEludDE2XzEyOF9idWZmZXJfb2Zmc2V0X2F0X2VuZDogY2xhc3NlcyBh
cmUgW29iamVjdCBJbnQxNkFycmF5XQorUEFTUyBJbnQxNl8xMjhfYnVmZmVyX29mZnNldF9hdF9l
bmQ6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIEludDE2XzEyOF9idWZm
ZXJfb2Zmc2V0X2F0X2VuZDogYnVmZmVyIGxlbmd0aHMgYXJlIDI1NgorUEFTUyBJbnQxNl8xMjhf
YnVmZmVyX29mZnNldF9hdF9lbmQ6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFT
UyBJbnQxNl8xMjhfYnVmZmVyX29mZnNldF9hdF9lbmQ6IG9mZnNldCBpcyAyNTYKK1BBU1MgSW50
MTZfMTI4X2J1ZmZlcl9vZmZzZXRfYXRfZW5kOiBsZW5ndGggaXMgMAorUEFTUyBVaW50MTZfMTI4
X2J1ZmZlcl9vZmZzZXRfYXRfZW5kOiBjbGFzc2VzIGFyZSBbb2JqZWN0IFVpbnQxNkFycmF5XQor
UEFTUyBVaW50MTZfMTI4X2J1ZmZlcl9vZmZzZXRfYXRfZW5kOiBjbGFzc2VzIGFyZSBbb2JqZWN0
IEFycmF5QnVmZmVyXQorUEFTUyBVaW50MTZfMTI4X2J1ZmZlcl9vZmZzZXRfYXRfZW5kOiBidWZm
ZXIgbGVuZ3RocyBhcmUgMjU2CitQQVNTIFVpbnQxNl8xMjhfYnVmZmVyX29mZnNldF9hdF9lbmQ6
IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBVaW50MTZfMTI4X2J1ZmZlcl9v
ZmZzZXRfYXRfZW5kOiBvZmZzZXQgaXMgMjU2CitQQVNTIFVpbnQxNl8xMjhfYnVmZmVyX29mZnNl
dF9hdF9lbmQ6IGxlbmd0aCBpcyAwCitQQVNTIEZsb2F0MzJfMTI4X2J1ZmZlcl9vZmZzZXRfYXRf
ZW5kOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEZsb2F0MzJBcnJheV0KK1BBU1MgRmxvYXQzMl8xMjhf
YnVmZmVyX29mZnNldF9hdF9lbmQ6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQ
QVNTIEZsb2F0MzJfMTI4X2J1ZmZlcl9vZmZzZXRfYXRfZW5kOiBidWZmZXIgbGVuZ3RocyBhcmUg
NTEyCitQQVNTIEZsb2F0MzJfMTI4X2J1ZmZlcl9vZmZzZXRfYXRfZW5kOiBidWZmZXJzIGhhdmUg
dGhlIHNhbWUgY29udGVudHMKK1BBU1MgRmxvYXQzMl8xMjhfYnVmZmVyX29mZnNldF9hdF9lbmQ6
IG9mZnNldCBpcyA1MTIKK1BBU1MgRmxvYXQzMl8xMjhfYnVmZmVyX29mZnNldF9hdF9lbmQ6IGxl
bmd0aCBpcyAwCitQQVNTIEZsb2F0NjRfMTI4X2J1ZmZlcl9vZmZzZXRfYXRfZW5kOiBjbGFzc2Vz
IGFyZSBbb2JqZWN0IEZsb2F0NjRBcnJheV0KK1BBU1MgRmxvYXQ2NF8xMjhfYnVmZmVyX29mZnNl
dF9hdF9lbmQ6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIEZsb2F0NjRf
MTI4X2J1ZmZlcl9vZmZzZXRfYXRfZW5kOiBidWZmZXIgbGVuZ3RocyBhcmUgMTAyNAorUEFTUyBG
bG9hdDY0XzEyOF9idWZmZXJfb2Zmc2V0X2F0X2VuZDogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNv
bnRlbnRzCitQQVNTIEZsb2F0NjRfMTI4X2J1ZmZlcl9vZmZzZXRfYXRfZW5kOiBvZmZzZXQgaXMg
MTAyNAorUEFTUyBGbG9hdDY0XzEyOF9idWZmZXJfb2Zmc2V0X2F0X2VuZDogbGVuZ3RoIGlzIDAK
K1BBU1MgSW50MzJfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3RoXzA6IGNsYXNzZXMgYXJl
IFtvYmplY3QgSW50MzJBcnJheV0KK1BBU1MgSW50MzJfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2Vf
bGVuZ3RoXzA6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIEludDMyXzEy
OF9idWZmZXJfb2Zmc2V0X3NsaWNlX2xlbmd0aF8wOiBidWZmZXIgbGVuZ3RocyBhcmUgNTEyCitQ
QVNTIEludDMyXzEyOF9idWZmZXJfb2Zmc2V0X3NsaWNlX2xlbmd0aF8wOiBidWZmZXJzIGhhdmUg
dGhlIHNhbWUgY29udGVudHMKK1BBU1MgSW50MzJfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVu
Z3RoXzA6IG9mZnNldCBpcyAyNTYKK1BBU1MgSW50MzJfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2Vf
bGVuZ3RoXzA6IGxlbmd0aCBpcyAwCitQQVNTIFVpbnQzMl8xMjhfYnVmZmVyX29mZnNldF9zbGlj
ZV9sZW5ndGhfMDogY2xhc3NlcyBhcmUgW29iamVjdCBVaW50MzJBcnJheV0KK1BBU1MgVWludDMy
XzEyOF9idWZmZXJfb2Zmc2V0X3NsaWNlX2xlbmd0aF8wOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFy
cmF5QnVmZmVyXQorUEFTUyBVaW50MzJfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3RoXzA6
IGJ1ZmZlciBsZW5ndGhzIGFyZSA1MTIKK1BBU1MgVWludDMyXzEyOF9idWZmZXJfb2Zmc2V0X3Ns
aWNlX2xlbmd0aF8wOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgVWludDMy
XzEyOF9idWZmZXJfb2Zmc2V0X3NsaWNlX2xlbmd0aF8wOiBvZmZzZXQgaXMgMjU2CitQQVNTIFVp
bnQzMl8xMjhfYnVmZmVyX29mZnNldF9zbGljZV9sZW5ndGhfMDogbGVuZ3RoIGlzIDAKK1BBU1Mg
SW50OF8xMjhfYnVmZmVyX29mZnNldF9zbGljZV9sZW5ndGhfMDogY2xhc3NlcyBhcmUgW29iamVj
dCBJbnQ4QXJyYXldCitQQVNTIEludDhfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3RoXzA6
IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIEludDhfMTI4X2J1ZmZlcl9v
ZmZzZXRfc2xpY2VfbGVuZ3RoXzA6IGJ1ZmZlciBsZW5ndGhzIGFyZSAxMjgKK1BBU1MgSW50OF8x
MjhfYnVmZmVyX29mZnNldF9zbGljZV9sZW5ndGhfMDogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNv
bnRlbnRzCitQQVNTIEludDhfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3RoXzA6IG9mZnNl
dCBpcyA2NAorUEFTUyBJbnQ4XzEyOF9idWZmZXJfb2Zmc2V0X3NsaWNlX2xlbmd0aF8wOiBsZW5n
dGggaXMgMAorUEFTUyBVaW50OF8xMjhfYnVmZmVyX29mZnNldF9zbGljZV9sZW5ndGhfMDogY2xh
c3NlcyBhcmUgW29iamVjdCBVaW50OEFycmF5XQorUEFTUyBVaW50OF8xMjhfYnVmZmVyX29mZnNl
dF9zbGljZV9sZW5ndGhfMDogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1Mg
VWludDhfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3RoXzA6IGJ1ZmZlciBsZW5ndGhzIGFy
ZSAxMjgKK1BBU1MgVWludDhfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3RoXzA6IGJ1ZmZl
cnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBVaW50OF8xMjhfYnVmZmVyX29mZnNldF9z
bGljZV9sZW5ndGhfMDogb2Zmc2V0IGlzIDY0CitQQVNTIFVpbnQ4XzEyOF9idWZmZXJfb2Zmc2V0
X3NsaWNlX2xlbmd0aF8wOiBsZW5ndGggaXMgMAorUEFTUyBJbnQxNl8xMjhfYnVmZmVyX29mZnNl
dF9zbGljZV9sZW5ndGhfMDogY2xhc3NlcyBhcmUgW29iamVjdCBJbnQxNkFycmF5XQorUEFTUyBJ
bnQxNl8xMjhfYnVmZmVyX29mZnNldF9zbGljZV9sZW5ndGhfMDogY2xhc3NlcyBhcmUgW29iamVj
dCBBcnJheUJ1ZmZlcl0KK1BBU1MgSW50MTZfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3Ro
XzA6IGJ1ZmZlciBsZW5ndGhzIGFyZSAyNTYKK1BBU1MgSW50MTZfMTI4X2J1ZmZlcl9vZmZzZXRf
c2xpY2VfbGVuZ3RoXzA6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBJbnQx
Nl8xMjhfYnVmZmVyX29mZnNldF9zbGljZV9sZW5ndGhfMDogb2Zmc2V0IGlzIDEyOAorUEFTUyBJ
bnQxNl8xMjhfYnVmZmVyX29mZnNldF9zbGljZV9sZW5ndGhfMDogbGVuZ3RoIGlzIDAKK1BBU1Mg
VWludDE2XzEyOF9idWZmZXJfb2Zmc2V0X3NsaWNlX2xlbmd0aF8wOiBjbGFzc2VzIGFyZSBbb2Jq
ZWN0IFVpbnQxNkFycmF5XQorUEFTUyBVaW50MTZfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVu
Z3RoXzA6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIFVpbnQxNl8xMjhf
YnVmZmVyX29mZnNldF9zbGljZV9sZW5ndGhfMDogYnVmZmVyIGxlbmd0aHMgYXJlIDI1NgorUEFT
UyBVaW50MTZfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3RoXzA6IGJ1ZmZlcnMgaGF2ZSB0
aGUgc2FtZSBjb250ZW50cworUEFTUyBVaW50MTZfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVu
Z3RoXzA6IG9mZnNldCBpcyAxMjgKK1BBU1MgVWludDE2XzEyOF9idWZmZXJfb2Zmc2V0X3NsaWNl
X2xlbmd0aF8wOiBsZW5ndGggaXMgMAorUEFTUyBGbG9hdDMyXzEyOF9idWZmZXJfb2Zmc2V0X3Ns
aWNlX2xlbmd0aF8wOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEZsb2F0MzJBcnJheV0KK1BBU1MgRmxv
YXQzMl8xMjhfYnVmZmVyX29mZnNldF9zbGljZV9sZW5ndGhfMDogY2xhc3NlcyBhcmUgW29iamVj
dCBBcnJheUJ1ZmZlcl0KK1BBU1MgRmxvYXQzMl8xMjhfYnVmZmVyX29mZnNldF9zbGljZV9sZW5n
dGhfMDogYnVmZmVyIGxlbmd0aHMgYXJlIDUxMgorUEFTUyBGbG9hdDMyXzEyOF9idWZmZXJfb2Zm
c2V0X3NsaWNlX2xlbmd0aF8wOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1Mg
RmxvYXQzMl8xMjhfYnVmZmVyX29mZnNldF9zbGljZV9sZW5ndGhfMDogb2Zmc2V0IGlzIDI1Ngor
UEFTUyBGbG9hdDMyXzEyOF9idWZmZXJfb2Zmc2V0X3NsaWNlX2xlbmd0aF8wOiBsZW5ndGggaXMg
MAorUEFTUyBGbG9hdDY0XzEyOF9idWZmZXJfb2Zmc2V0X3NsaWNlX2xlbmd0aF8wOiBjbGFzc2Vz
IGFyZSBbb2JqZWN0IEZsb2F0NjRBcnJheV0KK1BBU1MgRmxvYXQ2NF8xMjhfYnVmZmVyX29mZnNl
dF9zbGljZV9sZW5ndGhfMDogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1Mg
RmxvYXQ2NF8xMjhfYnVmZmVyX29mZnNldF9zbGljZV9sZW5ndGhfMDogYnVmZmVyIGxlbmd0aHMg
YXJlIDEwMjQKK1BBU1MgRmxvYXQ2NF8xMjhfYnVmZmVyX29mZnNldF9zbGljZV9sZW5ndGhfMDog
YnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIEZsb2F0NjRfMTI4X2J1ZmZlcl9v
ZmZzZXRfc2xpY2VfbGVuZ3RoXzA6IG9mZnNldCBpcyA1MTIKK1BBU1MgRmxvYXQ2NF8xMjhfYnVm
ZmVyX29mZnNldF9zbGljZV9sZW5ndGhfMDogbGVuZ3RoIGlzIDAKK1BBU1MgSW50MzJfMTI4X2J1
ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3RoXzE6IGNsYXNzZXMgYXJlIFtvYmplY3QgSW50MzJBcnJh
eV0KK1BBU1MgSW50MzJfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3RoXzE6IGNsYXNzZXMg
YXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIEludDMyXzEyOF9idWZmZXJfb2Zmc2V0X3Ns
aWNlX2xlbmd0aF8xOiBidWZmZXIgbGVuZ3RocyBhcmUgNTEyCitQQVNTIEludDMyXzEyOF9idWZm
ZXJfb2Zmc2V0X3NsaWNlX2xlbmd0aF8xOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMK
K1BBU1MgSW50MzJfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3RoXzE6IG9mZnNldCBpcyAy
NTYKK1BBU1MgSW50MzJfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3RoXzE6IGxlbmd0aCBp
cyA0CitQQVNTIFVpbnQzMl8xMjhfYnVmZmVyX29mZnNldF9zbGljZV9sZW5ndGhfMTogY2xhc3Nl
cyBhcmUgW29iamVjdCBVaW50MzJBcnJheV0KK1BBU1MgVWludDMyXzEyOF9idWZmZXJfb2Zmc2V0
X3NsaWNlX2xlbmd0aF8xOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBV
aW50MzJfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3RoXzE6IGJ1ZmZlciBsZW5ndGhzIGFy
ZSA1MTIKK1BBU1MgVWludDMyXzEyOF9idWZmZXJfb2Zmc2V0X3NsaWNlX2xlbmd0aF8xOiBidWZm
ZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgVWludDMyXzEyOF9idWZmZXJfb2Zmc2V0
X3NsaWNlX2xlbmd0aF8xOiBvZmZzZXQgaXMgMjU2CitQQVNTIFVpbnQzMl8xMjhfYnVmZmVyX29m
ZnNldF9zbGljZV9sZW5ndGhfMTogbGVuZ3RoIGlzIDQKK1BBU1MgSW50OF8xMjhfYnVmZmVyX29m
ZnNldF9zbGljZV9sZW5ndGhfMTogY2xhc3NlcyBhcmUgW29iamVjdCBJbnQ4QXJyYXldCitQQVNT
IEludDhfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3RoXzE6IGNsYXNzZXMgYXJlIFtvYmpl
Y3QgQXJyYXlCdWZmZXJdCitQQVNTIEludDhfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3Ro
XzE6IGJ1ZmZlciBsZW5ndGhzIGFyZSAxMjgKK1BBU1MgSW50OF8xMjhfYnVmZmVyX29mZnNldF9z
bGljZV9sZW5ndGhfMTogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIEludDhf
MTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3RoXzE6IG9mZnNldCBpcyA2NAorUEFTUyBJbnQ4
XzEyOF9idWZmZXJfb2Zmc2V0X3NsaWNlX2xlbmd0aF8xOiBsZW5ndGggaXMgMQorUEFTUyBVaW50
OF8xMjhfYnVmZmVyX29mZnNldF9zbGljZV9sZW5ndGhfMTogY2xhc3NlcyBhcmUgW29iamVjdCBV
aW50OEFycmF5XQorUEFTUyBVaW50OF8xMjhfYnVmZmVyX29mZnNldF9zbGljZV9sZW5ndGhfMTog
Y2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgVWludDhfMTI4X2J1ZmZlcl9v
ZmZzZXRfc2xpY2VfbGVuZ3RoXzE6IGJ1ZmZlciBsZW5ndGhzIGFyZSAxMjgKK1BBU1MgVWludDhf
MTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3RoXzE6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBj
b250ZW50cworUEFTUyBVaW50OF8xMjhfYnVmZmVyX29mZnNldF9zbGljZV9sZW5ndGhfMTogb2Zm
c2V0IGlzIDY0CitQQVNTIFVpbnQ4XzEyOF9idWZmZXJfb2Zmc2V0X3NsaWNlX2xlbmd0aF8xOiBs
ZW5ndGggaXMgMQorUEFTUyBJbnQxNl8xMjhfYnVmZmVyX29mZnNldF9zbGljZV9sZW5ndGhfMTog
Y2xhc3NlcyBhcmUgW29iamVjdCBJbnQxNkFycmF5XQorUEFTUyBJbnQxNl8xMjhfYnVmZmVyX29m
ZnNldF9zbGljZV9sZW5ndGhfMTogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BB
U1MgSW50MTZfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3RoXzE6IGJ1ZmZlciBsZW5ndGhz
IGFyZSAyNTYKK1BBU1MgSW50MTZfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3RoXzE6IGJ1
ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBJbnQxNl8xMjhfYnVmZmVyX29mZnNl
dF9zbGljZV9sZW5ndGhfMTogb2Zmc2V0IGlzIDEyOAorUEFTUyBJbnQxNl8xMjhfYnVmZmVyX29m
ZnNldF9zbGljZV9sZW5ndGhfMTogbGVuZ3RoIGlzIDIKK1BBU1MgVWludDE2XzEyOF9idWZmZXJf
b2Zmc2V0X3NsaWNlX2xlbmd0aF8xOiBjbGFzc2VzIGFyZSBbb2JqZWN0IFVpbnQxNkFycmF5XQor
UEFTUyBVaW50MTZfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3RoXzE6IGNsYXNzZXMgYXJl
IFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIFVpbnQxNl8xMjhfYnVmZmVyX29mZnNldF9zbGlj
ZV9sZW5ndGhfMTogYnVmZmVyIGxlbmd0aHMgYXJlIDI1NgorUEFTUyBVaW50MTZfMTI4X2J1ZmZl
cl9vZmZzZXRfc2xpY2VfbGVuZ3RoXzE6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cwor
UEFTUyBVaW50MTZfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3RoXzE6IG9mZnNldCBpcyAx
MjgKK1BBU1MgVWludDE2XzEyOF9idWZmZXJfb2Zmc2V0X3NsaWNlX2xlbmd0aF8xOiBsZW5ndGgg
aXMgMgorUEFTUyBGbG9hdDMyXzEyOF9idWZmZXJfb2Zmc2V0X3NsaWNlX2xlbmd0aF8xOiBjbGFz
c2VzIGFyZSBbb2JqZWN0IEZsb2F0MzJBcnJheV0KK1BBU1MgRmxvYXQzMl8xMjhfYnVmZmVyX29m
ZnNldF9zbGljZV9sZW5ndGhfMTogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BB
U1MgRmxvYXQzMl8xMjhfYnVmZmVyX29mZnNldF9zbGljZV9sZW5ndGhfMTogYnVmZmVyIGxlbmd0
aHMgYXJlIDUxMgorUEFTUyBGbG9hdDMyXzEyOF9idWZmZXJfb2Zmc2V0X3NsaWNlX2xlbmd0aF8x
OiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgRmxvYXQzMl8xMjhfYnVmZmVy
X29mZnNldF9zbGljZV9sZW5ndGhfMTogb2Zmc2V0IGlzIDI1NgorUEFTUyBGbG9hdDMyXzEyOF9i
dWZmZXJfb2Zmc2V0X3NsaWNlX2xlbmd0aF8xOiBsZW5ndGggaXMgNAorUEFTUyBGbG9hdDY0XzEy
OF9idWZmZXJfb2Zmc2V0X3NsaWNlX2xlbmd0aF8xOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEZsb2F0
NjRBcnJheV0KK1BBU1MgRmxvYXQ2NF8xMjhfYnVmZmVyX29mZnNldF9zbGljZV9sZW5ndGhfMTog
Y2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgRmxvYXQ2NF8xMjhfYnVmZmVy
X29mZnNldF9zbGljZV9sZW5ndGhfMTogYnVmZmVyIGxlbmd0aHMgYXJlIDEwMjQKK1BBU1MgRmxv
YXQ2NF8xMjhfYnVmZmVyX29mZnNldF9zbGljZV9sZW5ndGhfMTogYnVmZmVycyBoYXZlIHRoZSBz
YW1lIGNvbnRlbnRzCitQQVNTIEZsb2F0NjRfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3Ro
XzE6IG9mZnNldCBpcyA1MTIKK1BBU1MgRmxvYXQ2NF8xMjhfYnVmZmVyX29mZnNldF9zbGljZV9s
ZW5ndGhfMTogbGVuZ3RoIGlzIDgKK1BBU1MgSW50MzJfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2Vf
bGVuZ3RoXzE2OiBjbGFzc2VzIGFyZSBbb2JqZWN0IEludDMyQXJyYXldCitQQVNTIEludDMyXzEy
OF9idWZmZXJfb2Zmc2V0X3NsaWNlX2xlbmd0aF8xNjogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJh
eUJ1ZmZlcl0KK1BBU1MgSW50MzJfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3RoXzE2OiBi
dWZmZXIgbGVuZ3RocyBhcmUgNTEyCitQQVNTIEludDMyXzEyOF9idWZmZXJfb2Zmc2V0X3NsaWNl
X2xlbmd0aF8xNjogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIEludDMyXzEy
OF9idWZmZXJfb2Zmc2V0X3NsaWNlX2xlbmd0aF8xNjogb2Zmc2V0IGlzIDI1NgorUEFTUyBJbnQz
Ml8xMjhfYnVmZmVyX29mZnNldF9zbGljZV9sZW5ndGhfMTY6IGxlbmd0aCBpcyA2NAorUEFTUyBV
aW50MzJfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3RoXzE2OiBjbGFzc2VzIGFyZSBbb2Jq
ZWN0IFVpbnQzMkFycmF5XQorUEFTUyBVaW50MzJfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVu
Z3RoXzE2OiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBVaW50MzJfMTI4
X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3RoXzE2OiBidWZmZXIgbGVuZ3RocyBhcmUgNTEyCitQ
QVNTIFVpbnQzMl8xMjhfYnVmZmVyX29mZnNldF9zbGljZV9sZW5ndGhfMTY6IGJ1ZmZlcnMgaGF2
ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBVaW50MzJfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2Vf
bGVuZ3RoXzE2OiBvZmZzZXQgaXMgMjU2CitQQVNTIFVpbnQzMl8xMjhfYnVmZmVyX29mZnNldF9z
bGljZV9sZW5ndGhfMTY6IGxlbmd0aCBpcyA2NAorUEFTUyBJbnQ4XzEyOF9idWZmZXJfb2Zmc2V0
X3NsaWNlX2xlbmd0aF8xNjogY2xhc3NlcyBhcmUgW29iamVjdCBJbnQ4QXJyYXldCitQQVNTIElu
dDhfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3RoXzE2OiBjbGFzc2VzIGFyZSBbb2JqZWN0
IEFycmF5QnVmZmVyXQorUEFTUyBJbnQ4XzEyOF9idWZmZXJfb2Zmc2V0X3NsaWNlX2xlbmd0aF8x
NjogYnVmZmVyIGxlbmd0aHMgYXJlIDEyOAorUEFTUyBJbnQ4XzEyOF9idWZmZXJfb2Zmc2V0X3Ns
aWNlX2xlbmd0aF8xNjogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIEludDhf
MTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3RoXzE2OiBvZmZzZXQgaXMgNjQKK1BBU1MgSW50
OF8xMjhfYnVmZmVyX29mZnNldF9zbGljZV9sZW5ndGhfMTY6IGxlbmd0aCBpcyAxNgorUEFTUyBV
aW50OF8xMjhfYnVmZmVyX29mZnNldF9zbGljZV9sZW5ndGhfMTY6IGNsYXNzZXMgYXJlIFtvYmpl
Y3QgVWludDhBcnJheV0KK1BBU1MgVWludDhfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3Ro
XzE2OiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBVaW50OF8xMjhfYnVm
ZmVyX29mZnNldF9zbGljZV9sZW5ndGhfMTY6IGJ1ZmZlciBsZW5ndGhzIGFyZSAxMjgKK1BBU1Mg
VWludDhfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3RoXzE2OiBidWZmZXJzIGhhdmUgdGhl
IHNhbWUgY29udGVudHMKK1BBU1MgVWludDhfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3Ro
XzE2OiBvZmZzZXQgaXMgNjQKK1BBU1MgVWludDhfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVu
Z3RoXzE2OiBsZW5ndGggaXMgMTYKK1BBU1MgSW50MTZfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2Vf
bGVuZ3RoXzE2OiBjbGFzc2VzIGFyZSBbb2JqZWN0IEludDE2QXJyYXldCitQQVNTIEludDE2XzEy
OF9idWZmZXJfb2Zmc2V0X3NsaWNlX2xlbmd0aF8xNjogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJh
eUJ1ZmZlcl0KK1BBU1MgSW50MTZfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3RoXzE2OiBi
dWZmZXIgbGVuZ3RocyBhcmUgMjU2CitQQVNTIEludDE2XzEyOF9idWZmZXJfb2Zmc2V0X3NsaWNl
X2xlbmd0aF8xNjogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIEludDE2XzEy
OF9idWZmZXJfb2Zmc2V0X3NsaWNlX2xlbmd0aF8xNjogb2Zmc2V0IGlzIDEyOAorUEFTUyBJbnQx
Nl8xMjhfYnVmZmVyX29mZnNldF9zbGljZV9sZW5ndGhfMTY6IGxlbmd0aCBpcyAzMgorUEFTUyBV
aW50MTZfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3RoXzE2OiBjbGFzc2VzIGFyZSBbb2Jq
ZWN0IFVpbnQxNkFycmF5XQorUEFTUyBVaW50MTZfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVu
Z3RoXzE2OiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBVaW50MTZfMTI4
X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3RoXzE2OiBidWZmZXIgbGVuZ3RocyBhcmUgMjU2CitQ
QVNTIFVpbnQxNl8xMjhfYnVmZmVyX29mZnNldF9zbGljZV9sZW5ndGhfMTY6IGJ1ZmZlcnMgaGF2
ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBVaW50MTZfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2Vf
bGVuZ3RoXzE2OiBvZmZzZXQgaXMgMTI4CitQQVNTIFVpbnQxNl8xMjhfYnVmZmVyX29mZnNldF9z
bGljZV9sZW5ndGhfMTY6IGxlbmd0aCBpcyAzMgorUEFTUyBGbG9hdDMyXzEyOF9idWZmZXJfb2Zm
c2V0X3NsaWNlX2xlbmd0aF8xNjogY2xhc3NlcyBhcmUgW29iamVjdCBGbG9hdDMyQXJyYXldCitQ
QVNTIEZsb2F0MzJfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3RoXzE2OiBjbGFzc2VzIGFy
ZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBGbG9hdDMyXzEyOF9idWZmZXJfb2Zmc2V0X3Ns
aWNlX2xlbmd0aF8xNjogYnVmZmVyIGxlbmd0aHMgYXJlIDUxMgorUEFTUyBGbG9hdDMyXzEyOF9i
dWZmZXJfb2Zmc2V0X3NsaWNlX2xlbmd0aF8xNjogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRl
bnRzCitQQVNTIEZsb2F0MzJfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3RoXzE2OiBvZmZz
ZXQgaXMgMjU2CitQQVNTIEZsb2F0MzJfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3RoXzE2
OiBsZW5ndGggaXMgNjQKK1BBU1MgRmxvYXQ2NF8xMjhfYnVmZmVyX29mZnNldF9zbGljZV9sZW5n
dGhfMTY6IGNsYXNzZXMgYXJlIFtvYmplY3QgRmxvYXQ2NEFycmF5XQorUEFTUyBGbG9hdDY0XzEy
OF9idWZmZXJfb2Zmc2V0X3NsaWNlX2xlbmd0aF8xNjogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJh
eUJ1ZmZlcl0KK1BBU1MgRmxvYXQ2NF8xMjhfYnVmZmVyX29mZnNldF9zbGljZV9sZW5ndGhfMTY6
IGJ1ZmZlciBsZW5ndGhzIGFyZSAxMDI0CitQQVNTIEZsb2F0NjRfMTI4X2J1ZmZlcl9vZmZzZXRf
c2xpY2VfbGVuZ3RoXzE2OiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgRmxv
YXQ2NF8xMjhfYnVmZmVyX29mZnNldF9zbGljZV9sZW5ndGhfMTY6IG9mZnNldCBpcyA1MTIKK1BB
U1MgRmxvYXQ2NF8xMjhfYnVmZmVyX29mZnNldF9zbGljZV9sZW5ndGhfMTY6IGxlbmd0aCBpcyAx
MjgKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2NhbnZhcy93ZWJn
bC9hcnJheS1tZXNzYWdlLXBhc3NpbmcuaHRtbCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtL2Zhc3QvY2FudmFzL3dlYmdsL2FycmF5LW1lc3NhZ2UtcGFzc2luZy5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMyNTVkOTgKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2NhbnZhcy93ZWJnbC9hcnJheS1tZXNz
YWdlLXBhc3NpbmcuaHRtbApAQCAtMCwwICsxLDE0IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMg
Ii0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHls
ZXNoZWV0IiBocmVmPSIuLi8uLi8uLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0
eWxlLmNzcyIvPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi8uLi9m
YXN0L2NhbnZhcy93ZWJnbC93ZWJnbC10ZXN0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+
Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2FycmF5LW1lc3NhZ2UtcGFzc2luZy5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvY2FudmFzL3dlYmdsL3NjcmlwdC10ZXN0
cy9hcnJheS1tZXNzYWdlLXBhc3NpbmcuanMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS9mYXN0L2NhbnZhcy93ZWJnbC9zY3JpcHQtdGVzdHMvYXJyYXktbWVzc2FnZS1wYXNzaW5nLmpz
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBiZGVlNWYKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2NhbnZhcy93ZWJnbC9z
Y3JpcHQtdGVzdHMvYXJyYXktbWVzc2FnZS1wYXNzaW5nLmpzCkBAIC0wLDAgKzEsMTc5IEBACit3
aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisKK2Rlc2NyaXB0aW9uKCdUZXN0IHBhc3Npbmcg
QXJyYXlCdWZmZXJzIGFuZCBBcnJheUJ1ZmZlclZpZXdzIGluIG1lc3NhZ2VzLicpOword2luZG93
LnRlc3RzQ29tcGxldGUgPSAwOworCitmdW5jdGlvbiBjbGFzc0NvbXBhcmUodGVzdE5hbWUsIGdv
dCwgc2VudCkgeworICAgIHZhciBjbGFzc1N0cmluZyA9IE9iamVjdC5wcm90b3R5cGUudG9TdHJp
bmc7CisgICAgdmFyIGdvdENsYXNzID0gY2xhc3NTdHJpbmcuY2FsbChnb3QpOworICAgIHZhciBz
ZW50Q2xhc3MgPSBjbGFzc1N0cmluZy5jYWxsKHNlbnQpOworICAgIGlmIChnb3RDbGFzcyAhPT0g
c2VudENsYXNzKSB7CisgICAgICAgIHRlc3RGYWlsZWQodGVzdE5hbWUgKyAiOiBjbGFzcyAiICsg
c2VudENsYXNzICsgIiBiZWNhbWUgIiArIGdvdENsYXNzKTsKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgIH0gZWxzZSB7CisgICAgICAgIHRlc3RQYXNzZWQodGVzdE5hbWUgKyAiOiBjbGFzc2Vz
IGFyZSAiICsgc2VudENsYXNzKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorfQorCitm
dW5jdGlvbiBidWZmZXJDb21wYXJlKHRlc3ROYW1lLCBnb3QsIHNlbnQpIHsKKyAgICBpZiAoIWNs
YXNzQ29tcGFyZSh0ZXN0TmFtZSwgZ290LCBzZW50KSkgeworICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgfQorICAgIGlmIChnb3QuYnl0ZUxlbmd0aCAhPT0gc2VudC5ieXRlTGVuZ3RoKSB7Cisg
ICAgICAgIHRlc3RGYWlsZWQodGVzdE5hbWUgKyAiOiBleHBlY3RlZCBieXRlTGVuZ3RoICIgKyBz
ZW50LmJ5dGVMZW5ndGggKyAiIGJ5dGVzLCBnb3QgIiArIGdvdC5ieXRlTGVuZ3RoKTsKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIH0gZWxzZSB7CisgICAgICAgIHRlc3RQYXNzZWQodGVzdE5h
bWUgKyAiOiBidWZmZXIgbGVuZ3RocyBhcmUgIiArIHNlbnQuYnl0ZUxlbmd0aCk7CisgICAgfQor
ICAgIHZhciBnb3RSZWFkZXIgPSBuZXcgVWludDhBcnJheShnb3QpOworICAgIHZhciBzZW50UmVh
ZGVyID0gbmV3IFVpbnQ4QXJyYXkoc2VudCk7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzZW50
LmJ5dGVMZW5ndGg7ICsraSkgeworICAgICAgICBpZiAoZ290UmVhZGVyW2ldICE9PSBzZW50UmVh
ZGVyW2ldKSB7CisgICAgICAgICAgICB0ZXN0RmFpbGVkKHRlc3ROYW1lICsgIjogYnVmZmVycyBk
aWZmZXIgc3RhcnRpbmcgYXQgYnl0ZSAiICsgaSk7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgICAgIH0KKyAgICB9CisgICAgdGVzdFBhc3NlZCh0ZXN0TmFtZSArICI6IGJ1ZmZlcnMg
aGF2ZSB0aGUgc2FtZSBjb250ZW50cyIpOworICAgIHJldHVybiB0cnVlOworfQorCitmdW5jdGlv
biB2aWV3Q29tcGFyZSh0ZXN0TmFtZSwgZ290LCBzZW50KSB7CisgICAgaWYgKCFjbGFzc0NvbXBh
cmUodGVzdE5hbWUsIGdvdCwgc2VudCkpIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0K
KyAgICBpZiAoIWJ1ZmZlckNvbXBhcmUodGVzdE5hbWUsIGdvdC5idWZmZXIsIHNlbnQuYnVmZmVy
KSkgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIGlmIChnb3QuYnl0ZU9mZnNl
dCAhPT0gc2VudC5ieXRlT2Zmc2V0KSB7CisgICAgICAgIHRlc3RGYWlsZWQodGVzdE5hbWUgKyAi
OiBvZmZzZXQgIiArIHNlbnQuYnl0ZU9mZnNldCArICIgYmVjYW1lICIgKyBnb3QuYnl0ZU9mZnNl
dCk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9IGVsc2UgeworICAgICAgICB0ZXN0UGFz
c2VkKHRlc3ROYW1lICsgIjogb2Zmc2V0IGlzICIgKyBzZW50LmJ5dGVPZmZzZXQpOworICAgIH0K
KyAgICBpZiAoZ290LmJ5dGVMZW5ndGggIT09IHNlbnQuYnl0ZUxlbmd0aCkgeworICAgICAgICB0
ZXN0RmFpbGVkKHRlc3ROYW1lICsgIjogbGVuZ3RoICIgKyBzZW50LmJ5dGVMZW5ndGggKyAiIGJl
Y2FtZSAiICsgZ290LmJ5dGVMZW5ndGgpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfSBl
bHNlIHsKKyAgICAgICAgdGVzdFBhc3NlZCh0ZXN0TmFtZSArICI6IGxlbmd0aCBpcyAiICsgc2Vu
dC5ieXRlTGVuZ3RoKTsKKyAgICB9CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Z1bmN0aW9uIHR5
cGVkQXJyYXlDb21wYXJlKHRlc3ROYW1lLCBnb3QsIHNlbnQpIHsKKyAgICBpZiAoIXZpZXdDb21w
YXJlKHRlc3ROYW1lLCBnb3QsIHNlbnQpKSB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9
CisgICAgaWYgKGdvdC5CWVRFU19QRVJfRUxFTUVOVCAhPT0gc2VudC5CWVRFU19QRVJfRUxFTUVO
VCkgeworICAgICAgICAvLyBTYW5pdHkgY2hlY2tpbmcuCisgICAgICAgIHRlc3RGYWlsZWQodGVz
dE5hbWUgKyAiOiBleHBlY3RlZCBCWVRFU19QRVJfRUxFTUVOVCAiICsgc2VudC5CWVRFU19QRVJf
RUxFTUVOVCArICIsIHNhdyAiICsgZ290LkJZVEVTX1BFUl9FTEVNRU5UKTsKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgIH0KK30KKworZnVuY3Rpb24gZGF0YVZpZXdDb21wYXJlKHRlc3ROYW1l
LCBnb3QsIHNlbnQpIHsKKyAgICBpZiAoIXZpZXdDb21wYXJlKHRlc3ROYW1lLCBnb3QsIHNlbnQp
KSB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIGNyZWF0ZUJ1
ZmZlcihsZW5ndGgpIHsKKyAgICB2YXIgYnVmZmVyID0gbmV3IEFycmF5QnVmZmVyKGxlbmd0aCk7
CisgICAgdmFyIHZpZXcgPSBuZXcgVWludDhBcnJheShidWZmZXIpOworICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgbGVuZ3RoOyArK2kpIHsKKyAgICAgICAgdmlld1tpXSA9IGkgKyAxOworICAgIH0K
KyAgICByZXR1cm4gYnVmZmVyOworfQorCitmdW5jdGlvbiBjcmVhdGVUeXBlZEFycmF5KHR5cGVk
QXJyYXlUeXBlLCBsZW5ndGgpIHsKKyAgICB2YXIgdmlldyA9IG5ldyB0eXBlZEFycmF5VHlwZShs
ZW5ndGgpOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpIHsKKyAgICAgICAg
dmlld1tpXSA9IGkgKyAxOworICAgIH0KKyAgICByZXR1cm4gdmlldzsKK30KKworZnVuY3Rpb24g
Y3JlYXRlVHlwZWRBcnJheU92ZXJCdWZmZXIodHlwZWRBcnJheVR5cGUsIHR5cGVkQXJyYXlFbGVt
ZW50U2l6ZSwgbGVuZ3RoLCBzdWJTdGFydCwgc3ViTGVuZ3RoKSB7CisgICAgdmFyIGJ1ZmZlciA9
IG5ldyBBcnJheUJ1ZmZlcihsZW5ndGggKiB0eXBlZEFycmF5RWxlbWVudFNpemUpOworICAgIGlm
IChzdWJTdGFydCA9PT0gdW5kZWZpbmVkKSB7CisgICAgICAgIHN1YlN0YXJ0ID0gMDsKKyAgICAg
ICAgc3ViTGVuZ3RoID0gbGVuZ3RoOworICAgIH0KKyAgICByZXR1cm4gbmV3IHR5cGVkQXJyYXlU
eXBlKGJ1ZmZlciwgc3ViU3RhcnQgKiB0eXBlZEFycmF5RWxlbWVudFNpemUsIHN1Ykxlbmd0aCk7
Cit9CisKK3ZhciBiYXNpY0J1ZmZlclR5cGVzID0gWworICAgIFsiSW50MzIiLCBJbnQzMkFycmF5
LCA0XSwKKyAgICBbIlVpbnQzMiIsIFVpbnQzMkFycmF5LCA0XSwKKyAgICBbIkludDgiLCBJbnQ4
QXJyYXksIDFdLAorICAgIFsiVWludDgiLCBVaW50OEFycmF5LCAxXSwKKyAgICBbIkludDE2Iiwg
SW50MTZBcnJheSwgMl0sCisgICAgWyJVaW50MTYiLCBVaW50MTZBcnJheSwgMl0sCisgICAgWyJG
bG9hdDMyIiwgRmxvYXQzMkFycmF5LCA0XSwKKyAgICBbIkZsb2F0NjQiLCBGbG9hdDY0QXJyYXks
IDhdCitdOworCit2YXIgdGVzdExpc3QgPSBbCisgICAgWydBcnJheUJ1ZmZlcjAnLCBuZXcgQXJy
YXlCdWZmZXIoMCksIGJ1ZmZlckNvbXBhcmVdLAorICAgIFsnQXJyYXlCdWZmZXIxJywgY3JlYXRl
QnVmZmVyKDEpLCBidWZmZXJDb21wYXJlXSwKKyAgICBbJ0FycmF5QnVmZmVyMTI4JywgY3JlYXRl
QnVmZmVyKDEyOCksIGJ1ZmZlckNvbXBhcmVdLAorICAgIFsnRGF0YVZpZXcwJywgbmV3IERhdGFW
aWV3KG5ldyBBcnJheUJ1ZmZlcigwKSksIGRhdGFWaWV3Q29tcGFyZV0sCisgICAgWydEYXRhVmll
dzEnLCBuZXcgRGF0YVZpZXcoY3JlYXRlQnVmZmVyKDEpKSwgZGF0YVZpZXdDb21wYXJlXSwKKyAg
ICBbJ0RhdGFWaWV3MTI4JywgbmV3IERhdGFWaWV3KGNyZWF0ZUJ1ZmZlcigxMjgpKSwgZGF0YVZp
ZXdDb21wYXJlXSwKKyAgICBbJ0RhdGFWaWV3MV9vZnNfZW5kJywgbmV3IERhdGFWaWV3KGNyZWF0
ZUJ1ZmZlcigxKSwgMSwgMCksIGRhdGFWaWV3Q29tcGFyZV0sCisgICAgWydEYXRhVmlldzEyOF9v
ZnNfZW5kJywgbmV3IERhdGFWaWV3KGNyZWF0ZUJ1ZmZlcigxMjgpLCAxMjgsIDApLCBkYXRhVmll
d0NvbXBhcmVdLAorICAgIFsnRGF0YVZpZXcxMjhfb2ZzX3NsaWNlMCcsIG5ldyBEYXRhVmlldyhj
cmVhdGVCdWZmZXIoMTI4KSwgNjQsIDApLCBkYXRhVmlld0NvbXBhcmVdLAorICAgIFsnRGF0YVZp
ZXcxMjhfb2ZzX3NsaWNlMScsIG5ldyBEYXRhVmlldyhjcmVhdGVCdWZmZXIoMTI4KSwgNjQsIDEp
LCBkYXRhVmlld0NvbXBhcmVdLAorICAgIFsnRGF0YVZpZXcxMjhfb2ZzX3NsaWNlMTYnLCBuZXcg
RGF0YVZpZXcoY3JlYXRlQnVmZmVyKDEyOCksIDY0LCAxNiksIGRhdGFWaWV3Q29tcGFyZV0sCisg
ICAgWydEYXRhVmlldzEyOF9vZnNfc2xpY2VfdW5hbGlnbmVkJywgbmV3IERhdGFWaWV3KGNyZWF0
ZUJ1ZmZlcigxMjgpLCA2MywgMTUpLCBkYXRhVmlld0NvbXBhcmVdCitdOworCit0ZXN0TGlzdCA9
IHRlc3RMaXN0LmNvbmNhdChiYXNpY0J1ZmZlclR5cGVzLm1hcChmdW5jdGlvbih0KQorICAgIHty
ZXR1cm4gW3RbMF0gKyAiXzAiLCBjcmVhdGVUeXBlZEFycmF5KHRbMV0sIDApLCB0eXBlZEFycmF5
Q29tcGFyZV07fSkpOwordGVzdExpc3QgPSB0ZXN0TGlzdC5jb25jYXQoYmFzaWNCdWZmZXJUeXBl
cy5tYXAoZnVuY3Rpb24odCkKKyAgICB7cmV0dXJuIFt0WzBdICsgIl8xIiwgY3JlYXRlVHlwZWRB
cnJheSh0WzFdLCAxKSwgdHlwZWRBcnJheUNvbXBhcmVdO30pKTsKK3Rlc3RMaXN0ID0gdGVzdExp
c3QuY29uY2F0KGJhc2ljQnVmZmVyVHlwZXMubWFwKGZ1bmN0aW9uKHQpCisgICAge3JldHVybiBb
dFswXSArICJfMTI4IiwgY3JlYXRlVHlwZWRBcnJheSh0WzFdLCAxMjgpLCB0eXBlZEFycmF5Q29t
cGFyZV07fSkpOwordGVzdExpc3QgPSB0ZXN0TGlzdC5jb25jYXQoYmFzaWNCdWZmZXJUeXBlcy5t
YXAoZnVuY3Rpb24odCkKKyAgICB7cmV0dXJuIFt0WzBdICsgIl8wX2J1ZmZlciIsIGNyZWF0ZVR5
cGVkQXJyYXlPdmVyQnVmZmVyKHRbMV0sIHRbMl0sIDApLCB0eXBlZEFycmF5Q29tcGFyZV07fSkp
OwordGVzdExpc3QgPSB0ZXN0TGlzdC5jb25jYXQoYmFzaWNCdWZmZXJUeXBlcy5tYXAoZnVuY3Rp
b24odCkKKyAgICB7cmV0dXJuIFt0WzBdICsgIl8xX2J1ZmZlciIsIGNyZWF0ZVR5cGVkQXJyYXlP
dmVyQnVmZmVyKHRbMV0sIHRbMl0sIDEpLCB0eXBlZEFycmF5Q29tcGFyZV07fSkpOwordGVzdExp
c3QgPSB0ZXN0TGlzdC5jb25jYXQoYmFzaWNCdWZmZXJUeXBlcy5tYXAoZnVuY3Rpb24odCkKKyAg
ICB7cmV0dXJuIFt0WzBdICsgIl8xMjhfYnVmZmVyIiwgY3JlYXRlVHlwZWRBcnJheU92ZXJCdWZm
ZXIodFsxXSwgdFsyXSwgMTI4KSwgdHlwZWRBcnJheUNvbXBhcmVdO30pKTsKK3Rlc3RMaXN0ID0g
dGVzdExpc3QuY29uY2F0KGJhc2ljQnVmZmVyVHlwZXMubWFwKGZ1bmN0aW9uKHQpCisgICAge3Jl
dHVybiBbdFswXSArICJfMV9idWZmZXJfb2Zmc2V0X2F0X2VuZCIsIGNyZWF0ZVR5cGVkQXJyYXlP
dmVyQnVmZmVyKHRbMV0sIHRbMl0sIDEsIDEsIDApLCB0eXBlZEFycmF5Q29tcGFyZV07fSkpOwor
dGVzdExpc3QgPSB0ZXN0TGlzdC5jb25jYXQoYmFzaWNCdWZmZXJUeXBlcy5tYXAoZnVuY3Rpb24o
dCkKKyAgICB7cmV0dXJuIFt0WzBdICsgIl8xMjhfYnVmZmVyX29mZnNldF9hdF9lbmQiLCBjcmVh
dGVUeXBlZEFycmF5T3ZlckJ1ZmZlcih0WzFdLCB0WzJdLCAxMjgsIDEyOCwgMCksIHR5cGVkQXJy
YXlDb21wYXJlXTt9KSk7Cit0ZXN0TGlzdCA9IHRlc3RMaXN0LmNvbmNhdChiYXNpY0J1ZmZlclR5
cGVzLm1hcChmdW5jdGlvbih0KQorICAgIHtyZXR1cm4gW3RbMF0gKyAiXzEyOF9idWZmZXJfb2Zm
c2V0X3NsaWNlX2xlbmd0aF8wIiwgY3JlYXRlVHlwZWRBcnJheU92ZXJCdWZmZXIodFsxXSwgdFsy
XSwgMTI4LCA2NCwgMCksIHR5cGVkQXJyYXlDb21wYXJlXTt9KSk7Cit0ZXN0TGlzdCA9IHRlc3RM
aXN0LmNvbmNhdChiYXNpY0J1ZmZlclR5cGVzLm1hcChmdW5jdGlvbih0KQorICAgIHtyZXR1cm4g
W3RbMF0gKyAiXzEyOF9idWZmZXJfb2Zmc2V0X3NsaWNlX2xlbmd0aF8xIiwgY3JlYXRlVHlwZWRB
cnJheU92ZXJCdWZmZXIodFsxXSwgdFsyXSwgMTI4LCA2NCwgMSksIHR5cGVkQXJyYXlDb21wYXJl
XTt9KSk7Cit0ZXN0TGlzdCA9IHRlc3RMaXN0LmNvbmNhdChiYXNpY0J1ZmZlclR5cGVzLm1hcChm
dW5jdGlvbih0KQorICAgIHtyZXR1cm4gW3RbMF0gKyAiXzEyOF9idWZmZXJfb2Zmc2V0X3NsaWNl
X2xlbmd0aF8xNiIsIGNyZWF0ZVR5cGVkQXJyYXlPdmVyQnVmZmVyKHRbMV0sIHRbMl0sIDEyOCwg
NjQsIDE2KSwgdHlwZWRBcnJheUNvbXBhcmVdO30pKTsKKworZnVuY3Rpb24gZG9uZVRlc3QoKSB7
CisgICAgaWYgKCsrd2luZG93LnRlc3RzQ29tcGxldGUgPT0gdGVzdExpc3QubGVuZ3RoKSB7Cisg
ICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgIH0KK30KKworZnVuY3Rpb24gd2luZG93SGFuZGxl
TWVzc2FnZShlKSB7CisgICAgdmFyIGN1cnJlbnRUZXN0ID0gdGVzdExpc3RbZS5kYXRhLnRlc3RO
dW1dOworICAgIHZhciBleHBlY3RlZFJlc3VsdCA9IGN1cnJlbnRUZXN0WzFdOworICAgIHRyeSB7
CisgICAgICAgIGN1cnJlbnRUZXN0WzJdKGN1cnJlbnRUZXN0WzBdLCBlLmRhdGEudGVzdERhdGEs
IGV4cGVjdGVkUmVzdWx0KTsKKyAgICB9IGNhdGNoKGUpIHsKKyAgICAgICAgdGVzdEZhaWxlZChj
dXJyZW50VGVzdFswXSArICI6IHVuZXhwZWN0ZWQgZXhjZXB0aW9uICIgKyBlKTsKKyAgICB9Cisg
ICAgZG9uZVRlc3QoKTsKK30KK3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgd2lu
ZG93SGFuZGxlTWVzc2FnZSk7CisKK2ZvciAodmFyIHQgPSAwOyB0IDwgdGVzdExpc3QubGVuZ3Ro
OyArK3QpIHsKKyAgICB2YXIgY3VycmVudFRlc3QgPSB0ZXN0TGlzdFt0XTsKKyAgICB2YXIgbWVz
c2FnZSA9IHt0ZXN0TnVtOiB0LCB0ZXN0RGF0YTogY3VycmVudFRlc3RbMV19OworICAgIHdpbmRv
dy5wb3N0TWVzc2FnZShtZXNzYWdlLCAnKicpOworfQorCitzdWNjZXNzZnVsbHlQYXJzZWQgPSB0
cnVlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9kb20v
V2luZG93L3dpbmRvdy1wb3N0bWVzc2FnZS1jbG9uZS1kZWVwLWFycmF5LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcG9z
dG1lc3NhZ2UtY2xvbmUtZGVlcC1hcnJheS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uNGM2NzkzMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcG9zdG1lc3NhZ2UtY2xv
bmUtZGVlcC1hcnJheS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitUZXN0cyB0aGF0IHdl
IHN1cHBvcnQgY2xvbmluZyBkZWVwKGlzaCkgYXJyYXlzLgorCitQQVNTOiBldmVudERhdGEgaXMg
W29iamVjdCBBcnJheV0oZGVmYXVsdCB0b1N0cmluZyB0aHJldyBSYW5nZUVycm9yOiBNYXhpbXVt
IGNhbGwgc3RhY2sgc2l6ZSBleGNlZWRlZCkgb2YgdHlwZSBvYmplY3QKK1BBU1M6IGV2ZW50RGF0
YSBpcyBkb25lIG9mIHR5cGUgc3RyaW5nCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcG9zdG1lc3NhZ2UtY2xvbmUtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9kb20vV2luZG93
L3dpbmRvdy1wb3N0bWVzc2FnZS1jbG9uZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uZmRjNGExYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcG9zdG1lc3NhZ2UtY2xv
bmUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTE0IEBACitUZXN0cyB0aGF0IHdlIGNsb25lIG9i
amVjdCBoaWVyYXJjaGllcworCitQQVNTOiAncG9zdE1lc3NhZ2UoKGZ1bmN0aW9uKCl7fSkpJyB0
aHJldyBFcnJvcjogREFUQV9DTE9ORV9FUlI6IERPTSBFeGNlcHRpb24gMjUKK1BBU1M6ICdwb3N0
TWVzc2FnZSh3aW5kb3cpJyB0aHJldyBFcnJvcjogREFUQV9DTE9ORV9FUlI6IERPTSBFeGNlcHRp
b24gMjUKK1BBU1M6ICdwb3N0TWVzc2FnZSgoe2dldCBhKCkgeyB0aHJvdyAieCIgfX0pKScgdGhy
ZXcgeAorUEFTUzogJ3Bvc3RNZXNzYWdlKGltYWdlRGF0YS5kYXRhKScgdGhyZXcgRXJyb3I6IERB
VEFfQ0xPTkVfRVJSOiBET00gRXhjZXB0aW9uIDI1CitQQVNTOiAncG9zdE1lc3NhZ2UobXV0YXRl
ZEltYWdlRGF0YS5kYXRhKScgdGhyZXcgRXJyb3I6IERBVEFfQ0xPTkVfRVJSOiBET00gRXhjZXB0
aW9uIDI1CitQQVNTOiAncG9zdE1lc3NhZ2UoKGZ1bmN0aW9uKCkge3JldHVybiB7Z2V0IGEoKSB7
IHRocm93ICJhY2Nlc3Nvci1leG4iOyB9fTt9KSgpKScgdGhyZXcgYWNjZXNzb3ItZXhuCitQQVNT
OiAncG9zdE1lc3NhZ2UoKGZ1bmN0aW9uKCkge3ZhciBvYmphID0ge2dldCBwKCkgeyB0aHJvdyAi
YWNjZXNzb3ItZXhuIjsgfX07IHJldHVybiB7Z2V0IGEoKSB7IHJldHVybiBvYmphOyB9fTt9KSgp
KScgdGhyZXcgYWNjZXNzb3ItZXhuCitQQVNTOiBsYXN0SW5kZXggaW5pdGlhbGx5IGNvcnJlY3Q6
IHdhcyAzCitQQVNTOiBzYW5pdHkgb24gZmlsZSByZWZlcmVuY2UgZXF1YWxpdHkKK1BBU1M6IGV2
ZW50RGF0YSBpcyBudWxsIG9mIHR5cGUgb2JqZWN0CitQQVNTOiBldmVudERhdGEgaXMgdW5kZWZp
bmVkIG9mIHR5cGUgdW5kZWZpbmVkCitQQVNTOiBldmVudERhdGEgaXMgMSBvZiB0eXBlIG51bWJl
cgorUEFTUzogZXZlbnREYXRhIGlzIHRydWUgb2YgdHlwZSBib29sZWFuCitQQVNTOiBldmVudERh
dGEgaXMgMSBvZiB0eXBlIHN0cmluZworUEFTUzogZXZlbnREYXRhIGlzIFtvYmplY3QgT2JqZWN0
XSBvZiB0eXBlIG9iamVjdAorUEFTUzogZXZlbnREYXRhIGlzIFtvYmplY3QgT2JqZWN0XSBvZiB0
eXBlIG9iamVjdAorUEFTUzogZXZlbnREYXRhIGlzIFtvYmplY3QgT2JqZWN0XSBvZiB0eXBlIG9i
amVjdAorUEFTUzogZXZlbnREYXRhIGlzIFtvYmplY3QgT2JqZWN0XSBvZiB0eXBlIG9iamVjdAor
UEFTUzogZXZlbnREYXRhIGlzIFtvYmplY3QgT2JqZWN0XSBvZiB0eXBlIG9iamVjdAorUEFTUzog
ZXZlbnREYXRhIGlzIFtvYmplY3QgT2JqZWN0XSBvZiB0eXBlIG9iamVjdAorUEFTUzogZXZlbnRE
YXRhIGlzIFtvYmplY3QgT2JqZWN0XSBvZiB0eXBlIG9iamVjdAorUEFTUzogZXZlbnREYXRhIGlz
IFtvYmplY3QgT2JqZWN0XSBvZiB0eXBlIG9iamVjdAorUEFTUzogZXZlbnREYXRhIGlzIFtvYmpl
Y3QgT2JqZWN0XSBvZiB0eXBlIG9iamVjdAorUEFTUzogZXZlbnREYXRhIGlzIG9mIHR5cGUgb2Jq
ZWN0CitQQVNTOiBldmVudERhdGEgaXMgYSxhLGIsYSxiIG9mIHR5cGUgb2JqZWN0CitQQVNTOiBl
dmVudERhdGEgaXMgYSxhLGIsW29iamVjdCBPYmplY3RdIG9mIHR5cGUgb2JqZWN0CitQQVNTOiBl
dmVudERhdGEgaXMgMSwyLDMgb2YgdHlwZSBvYmplY3QKK1BBU1M6IGV2ZW50RGF0YSBpcyAsLDEg
b2YgdHlwZSBvYmplY3QKK1BBU1M6IGV2ZW50RGF0YSBpcyAyMDA5LTAyLTEzVDIzOjMxOjMwLjAw
MFogb2YgdHlwZSBvYmplY3QKK1BBU1M6IGV2ZW50RGF0YSBpcyBbb2JqZWN0IE9iamVjdF0gb2Yg
dHlwZSBvYmplY3QKK1BBU1M6IGV2ZW50RGF0YSBpcyA9PT0gdG8gZXZlbnREYXRhLnNlbGYKK1BB
U1M6IGV2ZW50RGF0YSBpcyA9PT0gdG8gZXZlbnREYXRhWzBdCitQQVNTOiBldmVudERhdGEuZ3Jh
cGgxIGlzID09PSB0byBldmVudERhdGEuZ3JhcGgyCitQQVNTOiBldmVudERhdGFbMF0gaXMgPT09
IHRvIGV2ZW50RGF0YVsxXQorUEFTUzogZXZlbnREYXRhIGlzIFtvYmplY3QgSW1hZ2VEYXRhXSBv
ZiB0eXBlIG9iamVjdAorUEFTUzogZXZlbnREYXRhIGlzIFtvYmplY3QgSW1hZ2VEYXRhXSBvZiB0
eXBlIG9iamVjdAorUEFTUzogZXZlbnREYXRhIGlzIDQyIG9mIHR5cGUgbnVtYmVyCitQQVNTOiBl
dmVudERhdGEgaXMgNDIgb2YgdHlwZSBudW1iZXIKK1BBU1M6IGV2YWxUaHVuayBPSworUEFTUzog
ZXZlbnREYXRhIGlzIFtvYmplY3QgT2JqZWN0XSBvZiB0eXBlIG9iamVjdAorUEFTUzogbGVuZ3Ro
IGNvcnJlY3QKK1BBU1M6IGV2YWx1YXRpb24gb3JkZXIgT0sKK1BBU1M6IGV2YWx1YXRpb24gb3Jk
ZXIgT0svYWNjZXNzb3IgcmVhY2hlZAorUEFTUzogZXZhbHVhdGlvbiBvcmRlciBPSworUEFTUzog
bGVuZ3RoIGNvcnJlY3QKK1BBU1M6IGluZGV4IDAgT0sKK1BBU1M6IGFjY2Vzc29yIHJlYWNoZWQK
K1BBU1M6IGluZGV4IDIgdW5kZWZpbmVkCitQQVNTOiBsZW5ndGggY29ycmVjdAorUEFTUzogaW5k
ZXggMCBPSworUEFTUzogaW5kZXggMSBPSworUEFTUzogaW5kZXggMiBPSworUEFTUzogYmFzaWMg
cHJvcGVydGllcyBPSworUEFTUzogb25lIGFjY2Vzc29yIHdhcyBydW4KK1BBU1M6IHByb3BlcnR5
IHdhcyByZW1vdmVkCitQQVNTOiBwcm9wZXJ0eSB3YXMgcmVtb3ZlZAorUEFTUzogYWNjZXNzb3Ig
d2FzIHJ1bgorUEFTUzogZHluYW1pYyBwcm9wZXJ0eSBub3Qgc2VudAorUEFTUzogcmVmZXJlbmNl
IGVxdWFsaXR5IHByZXNlcnZlZAorUEFTUzogYWNjZXNzb3JzIHVzZWQKK1BBU1M6IHJlZmVyZW5j
ZSBlcXVhbGl0eSBwcmVzZXJ2ZWQgKG9wcG9zaXRlIG9yZGVyKQorUEFTUzogYWNjZXNzb3JzIHVz
ZWQgKG9wcG9zaXRlIG9yZGVyKQorUEFTUzogYWNjZXNzb3IgdmFsdWUgd2FzIG51bGxpZmllZAor
UEFTUzogbm9uLWFjY2Vzc29yIHZhbHVlIHdhcyBub3QgbnVsbGlmaWVkCitQQVNTOiBhY2Nlc3Nv
ciB2YWx1ZSB3YXMgbnVsbGlmaWVkCitQQVNTOiBub24tYWNjZXNzb3IgdmFsdWUgd2FzIG5vdCBu
dWxsaWZpZWQKK1BBU1M6IG5vbi1hY2Nlc3NvciB2YWx1ZSB3YXMgbm90IG51bGxpZmllZAorUEFT
UzogYWNjZXNzb3IgdmFsdWUgd2FzIG51bGxpZmllZAorUEFTUzogbm9uLWFjY2Vzc29yIHZhbHVl
IHdhcyBub3QgbnVsbGlmaWVkCitQQVNTOiBhY2Nlc3NvciB2YWx1ZSB3YXMgbm90IG51bGxpZmll
ZAorUEFTUzogYWNjZXNzb3IgdmFsdWUgd2FzIG5vdCBudWxsaWZpZWQKK1BBU1M6IGFjY2Vzc29y
IHZhbHVlIHdhcyBudWxsaWZpZWQKK1BBU1M6IG5vbi1hY2Nlc3NvciB2YWx1ZSB3YXMgbm90IG51
bGxpZmllZAorUEFTUzogbm9uLWFjY2Vzc29yIHZhbHVlIHdhcyBub3QgbnVsbGlmaWVkCitQQVNT
OiBub24tYWNjZXNzb3IgdmFsdWUgaXMgZGVmaW5lZAorUEFTUzogbm9uLWFjY2Vzc29yIHZhbHVl
IHdhcyBub3QgbnVsbGlmaWVkCitQQVNTOiBub24tYWNjZXNzb3IgdmFsdWUgaXMgZGVmaW5lZAor
UEFTUzogYWNjZXNzb3IgdmFsdWUgd2FzIG51bGxpZmllZAorUEFTUzogbm9uLWFjY2Vzc29yIHZh
bHVlIHdhcyBub3QgbnVsbGlmaWVkCitQQVNTOiBhY2Nlc3NvciB2YWx1ZSB3YXMgbnVsbGlmaWVk
CitQQVNTOiB3aW5kb3cucGNhbGxlZCA9PT0gdHJ1ZQorUEFTUzogd2luZG93LmFjYWxsZWQgPT09
IHRydWUKK1BBU1M6IHdpbmRvdy5iY2FsbGVkID09PSB1bmRlZmluZWQKK1BBU1M6IERhdGUgdmFs
dWVzIGNvcnJlY3QgKDApCitQQVNTOiBEYXRlIHZhbHVlcyBjb3JyZWN0ICgxKQorUEFTUzogUmVm
ZXJlbmNlcyB0byBkYXRlcyBjb3JyZWN0ICgwKQorUEFTUzogUmVmZXJlbmNlcyB0byBkYXRlcyBj
b3JyZWN0ICgxKQorUEFTUzogUmVnZXhwIHZhbHVlIGNvcnJlY3QgKDApCitQQVNTOiBSZWZlcmVu
Y2VzIHRvIHJlZ2V4cHMgY29ycmVjdCAoMCkKK1BBU1M6IFJlZmVyZW5jZXMgdG8gcmVnZXhwcyBj
b3JyZWN0ICgxKQorUEFTUzogZ2xvYmFsIHNldCAoMCkKK1BBU1M6IGdsb2JhbCBzZXQgKDEpCitQ
QVNTOiBpZ25vcmVDYXNlIHNldCAoMCkKK1BBU1M6IGlnbm9yZUNhc2Ugc2V0ICgxKQorUEFTUzog
bXVsdGlsaW5lIHNldCAoMCkKK1BBU1M6IG11bHRpbGluZSBzZXQgKDEpCitQQVNTOiBsYXN0SW5k
ZXggY29ycmVjdCAoMCkKK1BBU1M6IGxhc3RJbmRleCBjb3JyZWN0ICgxKQorUEFTUzogZXZlbnRE
YXRhIGlzIDIgb2YgdHlwZSBudW1iZXIKK1BBU1M6IGZpbGUgcmVmZXJlbmNlcyB0cmFuc2Zlcgor
UEFTUzogRmlsZUxpc3Qgc2hvdWxkIG5vdCByZXNwZWN0IHJlZmVyZW5jZSBlcXVhbGl0eQorUEFT
UzogRmlsZUxpc3Qgc2hvdWxkIG5vdCByZXNwZWN0IHJlZmVyZW5jZSBlcXVhbGl0eQorUEFTUzog
RmlsZUxpc3QgcmVzcGVjdHMgc2VsZi1yZWZlcmVuY2UgZXF1YWxpdHkKK1BBU1M6IEZpbGVMaXN0
IGxlbmd0aCBzZW50IGNvcnJlY3RseQorUEFTUzogRmlsZUxpc3Qgc2hvdWxkIG5vdCByZXNwZWN0
IHJlZmVyZW5jZSBlcXVhbGl0eSAoMCkKK1BBU1M6IEZpbGVMaXN0IHNob3VsZCBub3QgcmVzcGVj
dCByZWZlcmVuY2UgZXF1YWxpdHkgKDEpCitQQVNTOiBGaWxlTGlzdCBwcmVzZXJ2ZXMgb3JkZXIg
YW5kIGRhdGEgKG5hbWUwKQorUEFTUzogRmlsZUxpc3QgcHJlc2VydmVzIG9yZGVyIGFuZCBkYXRh
IChuYW1lMSkKK1BBU1M6IEZpbGVMaXN0IHByZXNlcnZlcyBvcmRlciBhbmQgZGF0YSAoZGF0ZTAp
CitQQVNTOiBGaWxlTGlzdCBwcmVzZXJ2ZXMgb3JkZXIgYW5kIGRhdGEgKGRhdGUxKQorUEFTUzog
ZXZlbnREYXRhIGlzIGRvbmUgb2YgdHlwZSBzdHJpbmcKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9kb20vV2luZG93L3dpbmRvdy1wb3N0bWVzc2FnZS1j
bG9uZS1yZWFsbHktZGVlcC1hcnJheS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXBvc3RtZXNzYWdlLWNsb25lLXJlYWxs
eS1kZWVwLWFycmF5LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi40Y2M1MTg1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0vZmFzdC9kb20vV2luZG93L3dpbmRvdy1wb3N0bWVzc2FnZS1jbG9uZS1yZWFsbHktZGVl
cC1hcnJheS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitUZXN0cyB0aGF0IHdlIGFib3J0
IGNsb25pbmcgb3ZlcmRlZXAgYXJyYXlzLgorCitQQVNTOiAncG9zdE1lc3NhZ2UocmVhbGx5RGVl
cEFycmF5KScgdGhyZXcgRXJyb3I6IERBVEFfQ0xPTkVfRVJSOiBET00gRXhjZXB0aW9uIDI1CitQ
QVNTOiBldmVudERhdGEgaXMgZG9uZSBvZiB0eXBlIHN0cmluZworCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQKaW5kZXggYmYxYjQ2
MS4uYzRmODY0YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVz
dF9leHBlY3RhdGlvbnMudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rl
c3RfZXhwZWN0YXRpb25zLnR4dApAQCAtNTgsNiArNTgsOCBAQCBCVUdXSzU1OTEzIERFQlVHIFNM
T1cgOiBqcXVlcnkvb2Zmc2V0Lmh0bWwgPSBQQVNTCiBCVUdXSzU1OTEzIERFQlVHIFNMT1cgOiBq
cXVlcnkvdHJhdmVyc2luZy5odG1sID0gUEFTUwogQlVHV0s1NTkxMyBERUJVRyA6IGpxdWVyeS9k
aW1lbnNpb25zLmh0bWwgPSBUSU1FT1VUIFBBU1MKIAorV09OVEZJWCBTTE9XIDogZmFzdC9kb20v
V2luZG93L3dpbmRvdy1wb3N0bWVzc2FnZS1jbG9uZS1yZWFsbHktZGVlcC1hcnJheS5odG1sID0g
UEFTUworCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQogLy8gU0tJUFBFRCBURVNUUwogLy8gLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTE1
NTUsOSArMTU1Nyw2IEBAIEJVR0NSMjQxMjYgOiBmYXN0L2RvbS9IVE1MSW5wdXRFbGVtZW50L3Np
emUtYXR0cmlidXRlLmh0bWwgPSBGQUlMCiAvLyBGbGFreSB0aW1lb3V0cyBmaXJzdCBhcHBlYXJp
bmcgYXQgcjI3NzY0ICh3ZWJraXQgNDg5NDcpCiBCVUdDUjk3OTggV0lOIDogaHR0cC90ZXN0cy9j
b29raWVzL211bHRpcGxlLWNvb2tpZXMuaHRtbCA9IFRJTUVPVVQgUEFTUwogCi0vLyBXZWJLaXQg
dXBkYXRlOiA0OTIxMzo0OTIyMQotQlVHQ1IyNDA2MyA6IGZhc3QvZG9tL1dpbmRvdy93aW5kb3ct
cG9zdG1lc3NhZ2UtY2xvbmUuaHRtbCA9IEZBSUwKLQogLy8gR290IHNsb3cgd2l0aCBWOCB1cGRh
dGUgdG8gMS4zLjE1LiBEZWJ1ZyBsb2dnaW5nIHBlcmhhcHM/CiBCVUdDUjI0MTgyIERFQlVHIFNM
T1cgOiBmYXN0L2Zvcm1zL2lucHV0LWltcGxpY2l0LWxlbmd0aC1saW1pdC5odG1sID0gUEFTUwog
QlVHQ1IyNDE4MiBERUJVRyBTTE9XIDogZmFzdC9mb3Jtcy9pbnB1dC1tYXhsZW5ndGguaHRtbCA9
IFBBU1MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9mYXN0L2RvbS9XaW5k
b3cvd2luZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Z3RrL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQKaW5kZXgg
YThhMTFlNi4uOGExZjFmNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2Zh
c3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vZ3RrL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBl
Y3RlZC50eHQKQEAgLTUxMSw2ICs1MTEsNyBAQCB3aW5kb3cuQ291bnRlciBbb2JqZWN0IENvdW50
ZXJDb25zdHJ1Y3Rvcl0KIHdpbmRvdy5Db3VudGVyLnByb3RvdHlwZSBbb2JqZWN0IENvdW50ZXJQ
cm90b3R5cGVdCiB3aW5kb3cuRE9NRXhjZXB0aW9uIFtvYmplY3QgRE9NRXhjZXB0aW9uQ29uc3Ry
dWN0b3JdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLkFCT1JUX0VSUiBbbnVtYmVyXQord2luZG93LkRP
TUV4Y2VwdGlvbi5EQVRBX0NMT05FX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5E
T01TVFJJTkdfU0laRV9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24uSElFUkFSQ0hZ
X1JFUVVFU1RfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLklOREVYX1NJWkVfRVJS
IFtudW1iZXJdCkBAIC01MTgsNiArNTE5LDcgQEAgd2luZG93LkRPTUV4Y2VwdGlvbi5JTlVTRV9B
VFRSSUJVVEVfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLklOVkFMSURfQUNDRVNT
X0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5JTlZBTElEX0NIQVJBQ1RFUl9FUlIg
W251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24uSU5WQUxJRF9NT0RJRklDQVRJT05fRVJSIFtu
dW1iZXJdCit3aW5kb3cuRE9NRXhjZXB0aW9uLklOVkFMSURfTk9ERV9UWVBFX0VSUiBbbnVtYmVy
XQogd2luZG93LkRPTUV4Y2VwdGlvbi5JTlZBTElEX1NUQVRFX0VSUiBbbnVtYmVyXQogd2luZG93
LkRPTUV4Y2VwdGlvbi5OQU1FU1BBQ0VfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9u
Lk5FVFdPUktfRVJSIFtudW1iZXJdCkBAIC01MjgsMTIgKzUzMCwxNCBAQCB3aW5kb3cuRE9NRXhj
ZXB0aW9uLk5PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4
Y2VwdGlvbi5RVU9UQV9FWENFRURFRF9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24u
U0VDVVJJVFlfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLlNZTlRBWF9FUlIgW251
bWJlcl0KK3dpbmRvdy5ET01FeGNlcHRpb24uVElNRU9VVF9FUlIgW251bWJlcl0KIHdpbmRvdy5E
T01FeGNlcHRpb24uVFlQRV9NSVNNQVRDSF9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRp
b24uVVJMX01JU01BVENIX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5WQUxJREFU
SU9OX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5XUk9OR19ET0NVTUVOVF9FUlIg
W251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlIFtvYmplY3QgRE9NRXhjZXB0
aW9uUHJvdG90eXBlXQogd2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuQUJPUlRfRVJSIFtu
dW1iZXJdCit3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5EQVRBX0NMT05FX0VSUiBbbnVt
YmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuRE9NU1RSSU5HX1NJWkVfRVJSIFtu
dW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5ISUVSQVJDSFlfUkVRVUVTVF9F
UlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlLklOREVYX1NJWkVfRVJS
IFtudW1iZXJdCkBAIC01NDEsNiArNTQ1LDcgQEAgd2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5
cGUuSU5VU0VfQVRUUklCVVRFX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5wcm90
b3R5cGUuSU5WQUxJRF9BQ0NFU1NfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLnBy
b3RvdHlwZS5JTlZBTElEX0NIQVJBQ1RFUl9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRp
b24ucHJvdG90eXBlLklOVkFMSURfTU9ESUZJQ0FUSU9OX0VSUiBbbnVtYmVyXQord2luZG93LkRP
TUV4Y2VwdGlvbi5wcm90b3R5cGUuSU5WQUxJRF9OT0RFX1RZUEVfRVJSIFtudW1iZXJdCiB3aW5k
b3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5JTlZBTElEX1NUQVRFX0VSUiBbbnVtYmVyXQogd2lu
ZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuTkFNRVNQQUNFX0VSUiBbbnVtYmVyXQogd2luZG93
LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuTkVUV09SS19FUlIgW251bWJlcl0KQEAgLTU1MSw2ICs1
NTYsNyBAQCB3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5OT19NT0RJRklDQVRJT05fQUxM
T1dFRF9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlLlFVT1RBX0VY
Q0VFREVEX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuU0VDVVJJ
VFlfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5TWU5UQVhfRVJS
IFtudW1iZXJdCit3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5USU1FT1VUX0VSUiBbbnVt
YmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuVFlQRV9NSVNNQVRDSF9FUlIgW251
bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlLlVSTF9NSVNNQVRDSF9FUlIgW251
bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlLlZBTElEQVRJT05fRVJSIFtudW1i
ZXJdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC13azIvZmFzdC9kb20vV2lu
ZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L3F0LXdrMi9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0Cmlu
ZGV4IGM4NWNmMTkuLmNhMzkwMmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0
LXdrMi9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL3F0LXdrMi9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3Bl
cnRpZXMtZXhwZWN0ZWQudHh0CkBAIC01MDksNiArNTA5LDcgQEAgd2luZG93LkNvdW50ZXIgW29i
amVjdCBDb3VudGVyQ29uc3RydWN0b3JdCiB3aW5kb3cuQ291bnRlci5wcm90b3R5cGUgW29iamVj
dCBDb3VudGVyUHJvdG90eXBlXQogd2luZG93LkRPTUV4Y2VwdGlvbiBbb2JqZWN0IERPTUV4Y2Vw
dGlvbkNvbnN0cnVjdG9yXQogd2luZG93LkRPTUV4Y2VwdGlvbi5BQk9SVF9FUlIgW251bWJlcl0K
K3dpbmRvdy5ET01FeGNlcHRpb24uREFUQV9DTE9ORV9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01F
eGNlcHRpb24uRE9NU1RSSU5HX1NJWkVfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9u
LkhJRVJBUkNIWV9SRVFVRVNUX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5JTkRF
WF9TSVpFX0VSUiBbbnVtYmVyXQpAQCAtNTE2LDYgKzUxNyw3IEBAIHdpbmRvdy5ET01FeGNlcHRp
b24uSU5VU0VfQVRUUklCVVRFX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5JTlZB
TElEX0FDQ0VTU19FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24uSU5WQUxJRF9DSEFS
QUNURVJfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLklOVkFMSURfTU9ESUZJQ0FU
SU9OX0VSUiBbbnVtYmVyXQord2luZG93LkRPTUV4Y2VwdGlvbi5JTlZBTElEX05PREVfVFlQRV9F
UlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24uSU5WQUxJRF9TVEFURV9FUlIgW251bWJl
cl0KIHdpbmRvdy5ET01FeGNlcHRpb24uTkFNRVNQQUNFX0VSUiBbbnVtYmVyXQogd2luZG93LkRP
TUV4Y2VwdGlvbi5ORVRXT1JLX0VSUiBbbnVtYmVyXQpAQCAtNTI2LDEyICs1MjgsMTQgQEAgd2lu
ZG93LkRPTUV4Y2VwdGlvbi5OT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlIgW251bWJlcl0KIHdp
bmRvdy5ET01FeGNlcHRpb24uUVVPVEFfRVhDRUVERURfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9N
RXhjZXB0aW9uLlNFQ1VSSVRZX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5TWU5U
QVhfRVJSIFtudW1iZXJdCit3aW5kb3cuRE9NRXhjZXB0aW9uLlRJTUVPVVRfRVJSIFtudW1iZXJd
CiB3aW5kb3cuRE9NRXhjZXB0aW9uLlRZUEVfTUlTTUFUQ0hfRVJSIFtudW1iZXJdCiB3aW5kb3cu
RE9NRXhjZXB0aW9uLlVSTF9NSVNNQVRDSF9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRp
b24uVkFMSURBVElPTl9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24uV1JPTkdfRE9D
VU1FTlRfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZSBbb2JqZWN0
IERPTUV4Y2VwdGlvblByb3RvdHlwZV0KIHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlLkFC
T1JUX0VSUiBbbnVtYmVyXQord2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuREFUQV9DTE9O
RV9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlLkRPTVNUUklOR19T
SVpFX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuSElFUkFSQ0hZ
X1JFUVVFU1RfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5JTkRF
WF9TSVpFX0VSUiBbbnVtYmVyXQpAQCAtNTM5LDYgKzU0Myw3IEBAIHdpbmRvdy5ET01FeGNlcHRp
b24ucHJvdG90eXBlLklOVVNFX0FUVFJJQlVURV9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNl
cHRpb24ucHJvdG90eXBlLklOVkFMSURfQUNDRVNTX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4
Y2VwdGlvbi5wcm90b3R5cGUuSU5WQUxJRF9DSEFSQUNURVJfRVJSIFtudW1iZXJdCiB3aW5kb3cu
RE9NRXhjZXB0aW9uLnByb3RvdHlwZS5JTlZBTElEX01PRElGSUNBVElPTl9FUlIgW251bWJlcl0K
K3dpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlLklOVkFMSURfTk9ERV9UWVBFX0VSUiBbbnVt
YmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuSU5WQUxJRF9TVEFURV9FUlIgW251
bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlLk5BTUVTUEFDRV9FUlIgW251bWJl
cl0KIHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlLk5FVFdPUktfRVJSIFtudW1iZXJdCkBA
IC01NDksNiArNTU0LDcgQEAgd2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuTk9fTU9ESUZJ
Q0FUSU9OX0FMTE9XRURfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlw
ZS5RVU9UQV9FWENFRURFRF9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90
eXBlLlNFQ1VSSVRZX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUu
U1lOVEFYX0VSUiBbbnVtYmVyXQord2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuVElNRU9V
VF9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlLlRZUEVfTUlTTUFU
Q0hfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5VUkxfTUlTTUFU
Q0hfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5WQUxJREFUSU9O
X0VSUiBbbnVtYmVyXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvZmFzdC9k
b20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL3F0L2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQK
aW5kZXggNTRjMTA3OS4uYmFkMjMwNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
cXQvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMt
ZXhwZWN0ZWQudHh0CkBAIC01MDksNiArNTA5LDcgQEAgd2luZG93LkNvdW50ZXIgW29iamVjdCBD
b3VudGVyQ29uc3RydWN0b3JdCiB3aW5kb3cuQ291bnRlci5wcm90b3R5cGUgW29iamVjdCBDb3Vu
dGVyUHJvdG90eXBlXQogd2luZG93LkRPTUV4Y2VwdGlvbiBbb2JqZWN0IERPTUV4Y2VwdGlvbkNv
bnN0cnVjdG9yXQogd2luZG93LkRPTUV4Y2VwdGlvbi5BQk9SVF9FUlIgW251bWJlcl0KK3dpbmRv
dy5ET01FeGNlcHRpb24uREFUQV9DTE9ORV9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRp
b24uRE9NU1RSSU5HX1NJWkVfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLkhJRVJB
UkNIWV9SRVFVRVNUX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5JTkRFWF9TSVpF
X0VSUiBbbnVtYmVyXQpAQCAtNTE2LDYgKzUxNyw3IEBAIHdpbmRvdy5ET01FeGNlcHRpb24uSU5V
U0VfQVRUUklCVVRFX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5JTlZBTElEX0FD
Q0VTU19FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24uSU5WQUxJRF9DSEFSQUNURVJf
RVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLklOVkFMSURfTU9ESUZJQ0FUSU9OX0VS
UiBbbnVtYmVyXQord2luZG93LkRPTUV4Y2VwdGlvbi5JTlZBTElEX05PREVfVFlQRV9FUlIgW251
bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24uSU5WQUxJRF9TVEFURV9FUlIgW251bWJlcl0KIHdp
bmRvdy5ET01FeGNlcHRpb24uTkFNRVNQQUNFX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2Vw
dGlvbi5ORVRXT1JLX0VSUiBbbnVtYmVyXQpAQCAtNTI2LDEyICs1MjgsMTQgQEAgd2luZG93LkRP
TUV4Y2VwdGlvbi5OT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlIgW251bWJlcl0KIHdpbmRvdy5E
T01FeGNlcHRpb24uUVVPVEFfRVhDRUVERURfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0
aW9uLlNFQ1VSSVRZX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5TWU5UQVhfRVJS
IFtudW1iZXJdCit3aW5kb3cuRE9NRXhjZXB0aW9uLlRJTUVPVVRfRVJSIFtudW1iZXJdCiB3aW5k
b3cuRE9NRXhjZXB0aW9uLlRZUEVfTUlTTUFUQ0hfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhj
ZXB0aW9uLlVSTF9NSVNNQVRDSF9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24uVkFM
SURBVElPTl9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24uV1JPTkdfRE9DVU1FTlRf
RVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZSBbb2JqZWN0IERPTUV4
Y2VwdGlvblByb3RvdHlwZV0KIHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlLkFCT1JUX0VS
UiBbbnVtYmVyXQord2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuREFUQV9DTE9ORV9FUlIg
W251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlLkRPTVNUUklOR19TSVpFX0VS
UiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuSElFUkFSQ0hZX1JFUVVF
U1RfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5JTkRFWF9TSVpF
X0VSUiBbbnVtYmVyXQpAQCAtNTM5LDYgKzU0Myw3IEBAIHdpbmRvdy5ET01FeGNlcHRpb24ucHJv
dG90eXBlLklOVVNFX0FUVFJJQlVURV9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24u
cHJvdG90eXBlLklOVkFMSURfQUNDRVNTX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlv
bi5wcm90b3R5cGUuSU5WQUxJRF9DSEFSQUNURVJfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhj
ZXB0aW9uLnByb3RvdHlwZS5JTlZBTElEX01PRElGSUNBVElPTl9FUlIgW251bWJlcl0KK3dpbmRv
dy5ET01FeGNlcHRpb24ucHJvdG90eXBlLklOVkFMSURfTk9ERV9UWVBFX0VSUiBbbnVtYmVyXQog
d2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuSU5WQUxJRF9TVEFURV9FUlIgW251bWJlcl0K
IHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlLk5BTUVTUEFDRV9FUlIgW251bWJlcl0KIHdp
bmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlLk5FVFdPUktfRVJSIFtudW1iZXJdCkBAIC01NDks
NiArNTU0LDcgQEAgd2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuTk9fTU9ESUZJQ0FUSU9O
X0FMTE9XRURfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5RVU9U
QV9FWENFRURFRF9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlLlNF
Q1VSSVRZX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuU1lOVEFY
X0VSUiBbbnVtYmVyXQord2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuVElNRU9VVF9FUlIg
W251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlLlRZUEVfTUlTTUFUQ0hfRVJS
IFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5VUkxfTUlTTUFUQ0hfRVJS
IFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5WQUxJREFUSU9OX0VSUiBb
bnVtYmVyXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0
c3RvcmUtYmFzaWNzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L29iamVjdHN0b3JlLWJhc2ljcy1leHBlY3RlZC50eHQKaW5kZXggMjM5NDc0MC4uN2EzNGExYiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0c3RvcmUtYmFz
aWNzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9vYmpl
Y3RzdG9yZS1iYXNpY3MtZXhwZWN0ZWQudHh0CkBAIC01Niw3ICs1Niw3IEBAIHN0b3JlLmFkZCh7
eDogJ2Zvbyd9LCB0ZXN0RGF0ZSkKIFRyeSB0byBpbnNlcnQgYSB2YWx1ZSBub3QgaGFuZGxlZCBi
eSBzdHJ1Y3R1cmVkIGNsb25lOgogc3RvcmUuYWRkKHt4OiAnYmFyJywgeTogZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKX0sICdiYXInKQogUEFTUyBFeGNlcHRpb24gdGhyb3duCi1Q
QVNTIGNvZGUgaXMgRE9NRXhjZXB0aW9uLk5PVF9TVVBQT1JURURfRVJSCitQQVNTIGNvZGUgaXMg
RE9NRXhjZXB0aW9uLkRBVEFfQ0xPTkVfRVJSCiBUcnkgdG8gaW5zZXJ0IGRhdGEgd2hlcmUga2V5
IHBhdGggeWllbGRzIGEgRGF0ZSBrZXk6CiBzdG9yZS5hZGQoe3g6IHRlc3REYXRlQiwgeTogJ3Zh
bHVlJ30sICdrZXknKQogYWRkU3VjY2VzcygpOgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvb2JqZWN0c3RvcmUtYmFzaWNzLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9vYmplY3RzdG9yZS1iYXNpY3MuaHRtbAppbmRleCBiMmU3M2VlLi5iNzY5
NTg1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9vYmplY3RzdG9y
ZS1iYXNpY3MuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9vYmplY3Rz
dG9yZS1iYXNpY3MuaHRtbApAQCAtMTU0LDcgKzE1NCw3IEBAIGZ1bmN0aW9uIGFkZERhdGVTdWNj
ZXNzKCkKICAgICB9IGNhdGNoIChlcnIpIHsKICAgICAgICAgdGVzdFBhc3NlZCgiRXhjZXB0aW9u
IHRocm93biIpOwogICAgICAgICBjb2RlID0gZXJyLmNvZGU7Ci0gICAgICAgIHNob3VsZEJlKCJj
b2RlIiwgIkRPTUV4Y2VwdGlvbi5OT1RfU1VQUE9SVEVEX0VSUiIpOworICAgICAgICBzaG91bGRC
ZSgiY29kZSIsICJET01FeGNlcHRpb24uREFUQV9DTE9ORV9FUlIiKTsKICAgICB9CiAKICAgICBk
ZWJ1ZygiVHJ5IHRvIGluc2VydCBkYXRhIHdoZXJlIGtleSBwYXRoIHlpZWxkcyBhIERhdGUga2V5
OiIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCmluZGV4IGYwYmNhYjMuLmMxZjljMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSw4OCBAQAorMjAxMS0wNy0xMyAgTHVrZSBaYXJrbyAgPGx1a2V6YXJrb0BnbWFpbC5jb20+CisK
KyAgICAgICAgQnJpbmcgVjgncyBTZXJpYWxpemVkU2NyaXB0VmFsdWUgaW1wbGVtZW50YXRpb24g
dXAgdG8gZGF0ZS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NjM0ODEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAg
ICAgCisgICAgICAgIFRoZSBIVE1MNSBTdHJ1Y3R1cmVkIENsb25lIGFsZ29yaXRobSAoaHR0cDov
L3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay9tdWx0aXBhZ2UvdXJs
cy5odG1sI3NhZmUtcGFzc2luZy1vZi1zdHJ1Y3R1cmVkLWRhdGEpIGhhcyBiZWVuIHVwZGF0ZWQg
c2luY2UgdGhlIFY4IHZlcnNpb24gb2YgU2VyaWFsaXplZFNjcmlwdFZhbHVlIHdhcyBmaXJzdCBp
bXBsZW1lbnRlZC4gVGhpcyBwYXRjaCBhaW1zIHRvIGJyaW5nIHRoaXMgaW1wbGVtZW50YXRpb24g
dXAgdG8gZGF0ZS4gSXQ6CisgICAgICAgIAorICAgICAgICAtIEludHJvZHVjZXMgdGhlIG5ldyBI
VE1MNSBET00gZXJyb3IgY29kZXMgZm9yIFRJTUVPVVRfRVJSLCBJTlZBTElEX05PREVfVFlQRV9F
UlIsIERBVEFfQ0xPTkVfRVJSCisgICAgICAgIC0gSGFuZGxlcyBjeWNsaWMgc3RydWN0dXJlcyBh
bmQgZXF1YWxpdHkgb2YgcmVmZXJlbmNlIHByZXNlcnZhdGlvbiBmb3IgY2xvbmVkIHZhbHVlcwor
ICAgICAgICAtIEFsbG93cyBEYXRhVmlld3MgdG8gYmUgY29uc3RydWN0ZWQgb24gdGhlIG5hdGl2
ZSBzaWRlIHVzaW5nIHRoZSBleGlzdGluZyB3cmFwcGVyIHRlY2huaXF1ZXMKKyAgICAgICAgLSBB
bWVuZHMgdGVzdHMgYW5kIGludHJvZHVjZXMgbmV3IG9uZXMgdG8gY2hlY2sgZm9yIGNvcnJlY3Ru
ZXNzICh0aGUgYnVsayBvZiB0aGUgcGF0Y2gpCisgICAgICAgIC0gVG9sZXJhdGVzIHRoZSBvbGQg
dmVyc2lvbiBvZiB0aGUgc2VyaWFsaXplZCBvYmplY3QgZm9ybWF0CisgICAgICAgIAorICAgICAg
ICBUaGUgcGF0Y2ggcGVybWl0cyB0aGUgY2xvbmluZyBvZiBKYXZhU2NyaXB0IHR5cGVkIGFycmF5
cy4gVGhpcyBmdW5jdGlvbmFsaXR5IGlzIGluIGFjdGl2ZSB1c2UgYWxyZWFkeSBhbmQgd2FzIHN1
cHBvcnRlZCAoc29tZXdoYXQgaW5lZmZpY2llbnRseSkgYnkgdGhlIGV4aXN0aW5nIGNvZGUgdGhy
b3VnaCBhbiBhcnRpZmFjdCBvZiBpbXBsZW1lbnRhdGlvbi4KKworICAgICAgICBUZXN0czogZmFz
dC9kb20vV2luZG93L3dpbmRvdy1wb3N0bWVzc2FnZS1jbG9uZS1kZWVwLWFycmF5Lmh0bWwKKyAg
ICAgICAgICAgICAgIGZhc3QvZG9tL1dpbmRvdy93aW5kb3ctcG9zdG1lc3NhZ2UtY2xvbmUtcmVh
bGx5LWRlZXAtYXJyYXkuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9kb20vV2luZG93L3dpbmRv
dy1wb3N0bWVzc2FnZS1jbG9uZS5odG1sCisgICAgICAgICAgICAgICBwbGF0Zm9ybS9jaHJvbWl1
bS9mYXN0L2NhbnZhcy93ZWJnbC9hcnJheS1tZXNzYWdlLXBhc3NpbmcuaHRtbAorCisgICAgICAg
ICogYmluZGluZ3MvdjgvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlY4T2JqZWN0TWFwOjpXcml0ZXI6OndyaXRlVmVyc2lvbik6CisgICAgICAgIChXZWJDb3Jl
OjpWOE9iamVjdE1hcDo6V3JpdGVyOjp3cml0ZUFycmF5QnVmZmVyKToKKyAgICAgICAgKFdlYkNv
cmU6OlY4T2JqZWN0TWFwOjpXcml0ZXI6OndyaXRlQXJyYXlCdWZmZXJWaWV3KToKKyAgICAgICAg
KFdlYkNvcmU6OlY4T2JqZWN0TWFwOjpXcml0ZXI6OndyaXRlT2JqZWN0T2Zmc2V0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlY4T2JqZWN0TWFwOjpXcml0ZXI6OndyaXRlQ2hlY2tSZWYpOgorICAgICAg
ICAoV2ViQ29yZTo6VjhPYmplY3RNYXA6OldyaXRlcjo6d3JpdGVHZW5lcmF0ZUZyZXNoT2JqZWN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlY4T2JqZWN0TWFwOjpXcml0ZXI6OndyaXRlR2VuZXJhdGVG
cmVzaEFycmF5KToKKyAgICAgICAgKFdlYkNvcmU6OlY4T2JqZWN0TWFwOjpXcml0ZXI6OmRvV3Jp
dGVBcnJheUJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpWOE9iamVjdE1hcDo6U2VyaWFsaXpl
cjo6U2VyaWFsaXplcik6CisgICAgICAgIChXZWJDb3JlOjpWOE9iamVjdE1hcDo6U2VyaWFsaXpl
cjo6c2VyaWFsaXplKToKKyAgICAgICAgKFdlYkNvcmU6OlY4T2JqZWN0TWFwOjpTZXJpYWxpemVy
OjpTdGF0ZUJhc2U6OmV4ZWNEZXB0aCk6CisgICAgICAgIChXZWJDb3JlOjpWOE9iamVjdE1hcDo6
U2VyaWFsaXplcjo6QWJzdHJhY3RPYmplY3RTdGF0ZTo6QWJzdHJhY3RPYmplY3RTdGF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpWOE9iamVjdE1hcDo6U2VyaWFsaXplcjo6QWJzdHJhY3RPYmplY3RT
dGF0ZTo6YWR2YW5jZSk6CisgICAgICAgIChXZWJDb3JlOjpWOE9iamVjdE1hcDo6U2VyaWFsaXpl
cjo6QWJzdHJhY3RPYmplY3RTdGF0ZTo6ZXhlY0RlcHRoKToKKyAgICAgICAgKFdlYkNvcmU6OlY4
T2JqZWN0TWFwOjpTZXJpYWxpemVyOjpleGVjRGVwdGgpOgorICAgICAgICAoV2ViQ29yZTo6VjhP
YmplY3RNYXA6OlNlcmlhbGl6ZXI6OnB1c2gpOgorICAgICAgICAoV2ViQ29yZTo6VjhPYmplY3RN
YXA6OlNlcmlhbGl6ZXI6OnBvcCk6CisgICAgICAgIChXZWJDb3JlOjpWOE9iamVjdE1hcDo6U2Vy
aWFsaXplcjo6aGFuZGxlRXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6VjhPYmplY3RNYXA6OlNl
cmlhbGl6ZXI6OndyaXRlTnVsbCk6CisgICAgICAgIChXZWJDb3JlOjpWOE9iamVjdE1hcDo6U2Vy
aWFsaXplcjo6d3JpdGVBbmRHcmV5QXJyYXlCdWZmZXJWaWV3KToKKyAgICAgICAgKFdlYkNvcmU6
OlY4T2JqZWN0TWFwOjpTZXJpYWxpemVyOjp3cml0ZUFycmF5QnVmZmVyKToKKyAgICAgICAgKFdl
YkNvcmU6OlY4T2JqZWN0TWFwOjpTZXJpYWxpemVyOjpncmV5T2JqZWN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlY4T2JqZWN0TWFwOjpTZXJpYWxpemVyOjpkb1NlcmlhbGl6ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpWOE9iamVjdE1hcDo6UmVhZGVyOjpSZWFkZXIpOgorICAgICAgICAoV2ViQ29yZTo6
VjhPYmplY3RNYXA6OlJlYWRlcjo6cmVhZCk6CisgICAgICAgIChXZWJDb3JlOjpWOE9iamVjdE1h
cDo6UmVhZGVyOjpyZWFkVmVyc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpWOE9iamVjdE1hcDo6
UmVhZGVyOjpzZXRWZXJzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlY4T2JqZWN0TWFwOjpSZWFk
ZXI6OnVuZG9SZWFkVGFnKToKKyAgICAgICAgKFdlYkNvcmU6OlY4T2JqZWN0TWFwOjpSZWFkZXI6
OnJlYWRTdWJUYWcpOgorICAgICAgICAoV2ViQ29yZTo6VjhPYmplY3RNYXA6OlJlYWRlcjo6ZG9S
ZWFkQXJyYXlCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6VjhPYmplY3RNYXA6OlJlYWRlcjo6
cmVhZEFycmF5QnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlY4T2JqZWN0TWFwOjpSZWFkZXI6
OnJlYWRBcnJheUJ1ZmZlclZpZXcpOgorICAgICAgICAoV2ViQ29yZTo6VjhPYmplY3RNYXA6OkRl
c2VyaWFsaXplcjo6RGVzZXJpYWxpemVyKToKKyAgICAgICAgKFdlYkNvcmU6OlY4T2JqZWN0TWFw
OjpEZXNlcmlhbGl6ZXI6OmRlc2VyaWFsaXplKToKKyAgICAgICAgKFdlYkNvcmU6OlY4T2JqZWN0
TWFwOjpEZXNlcmlhbGl6ZXI6Om5ld0FycmF5KToKKyAgICAgICAgKFdlYkNvcmU6OlY4T2JqZWN0
TWFwOjpEZXNlcmlhbGl6ZXI6OmNvbnN1bWVUb3BPZlN0YWNrKToKKyAgICAgICAgKFdlYkNvcmU6
OlY4T2JqZWN0TWFwOjpEZXNlcmlhbGl6ZXI6OmNvbXBsZXRlQXJyYXkpOgorICAgICAgICAoV2Vi
Q29yZTo6VjhPYmplY3RNYXA6OkRlc2VyaWFsaXplcjo6bmV3T2JqZWN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlY4T2JqZWN0TWFwOjpEZXNlcmlhbGl6ZXI6OmNvbXBsZXRlT2JqZWN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlY4T2JqZWN0TWFwOjpEZXNlcmlhbGl6ZXI6OmNvbXBsZXRlU3BhcnNlQXJy
YXkpOgorICAgICAgICAoV2ViQ29yZTo6VjhPYmplY3RNYXA6OkRlc2VyaWFsaXplcjo6cHVzaE9i
amVjdFJlZmVyZW5jZSk6CisgICAgICAgIChXZWJDb3JlOjpWOE9iamVjdE1hcDo6RGVzZXJpYWxp
emVyOjp0cnlHZXRPYmplY3RGcm9tT2JqZWN0UmVmZXJlbmNlKToKKyAgICAgICAgKFdlYkNvcmU6
OlY4T2JqZWN0TWFwOjpEZXNlcmlhbGl6ZXI6Om9iamVjdFJlZmVyZW5jZUNvdW50KToKKyAgICAg
ICAgKFdlYkNvcmU6OlY4T2JqZWN0TWFwOjpEZXNlcmlhbGl6ZXI6Om9wZW5Db21wb3NpdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6VjhPYmplY3RNYXA6OkRlc2VyaWFsaXplcjo6Y2xvc2VDb21wb3Np
dGUpOgorICAgICAgICAoV2ViQ29yZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlOjpTZXJpYWxpemVk
U2NyaXB0VmFsdWUpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4QmluZGluZy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjppc0hvc3RPYmplY3QpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4Qmlu
ZGluZy5oOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOERhdGFWaWV3Q3VzdG9tLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlY4RGF0YVZpZXc6OmNvbnN0cnVjdG9yQ2FsbGJhY2spOgor
ICAgICAgICAqIGRvbS9ET01Db3JlRXhjZXB0aW9uLmlkbDoKKyAgICAgICAgKiBkb20vRXhjZXB0
aW9uQ29kZS5jcHA6CisgICAgICAgICogZG9tL0V4Y2VwdGlvbkNvZGUuaDoKKyAgICAgICAgKiBo
dG1sL2NhbnZhcy9BcnJheUJ1ZmZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBcnJheUJ1ZmZl
cjo6Y3JlYXRlKToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9BcnJheUJ1ZmZlci5oOgorICAgICAg
ICAqIGh0bWwvY2FudmFzL0RhdGFWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFWaWV3
OjpjcmVhdGUpOgorICAgICAgICAqIGh0bWwvY2FudmFzL0RhdGFWaWV3Lmg6CisKIDIwMTEtMDct
MTMgIFBpZXJyZSBSb3NzaSAgPHBpZXJyZS5yb3NzaUBnbWFpbC5jb20+CiAKICAgICAgICAgRml4
IGNvbXBpbGUgZm9yIFFSYXdGb250LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKaW5kZXggY2I0NGYwMi4uMDA1YzcxMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2VyaWFsaXplZFNjcmlwdFZhbHVl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TZXJpYWxpemVkU2NyaXB0VmFs
dWUuY3BwCkBAIC0zMSwyMCArMzEsNDIgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRl
ICJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKIAorI2luY2x1ZGUgIkFycmF5QnVmZmVyLmgiCisj
aW5jbHVkZSAiQXJyYXlCdWZmZXJWaWV3LmgiCiAjaW5jbHVkZSAiQmxvYi5oIgogI2luY2x1ZGUg
IkJ5dGVBcnJheS5oIgogI2luY2x1ZGUgIkNhbnZhc1BpeGVsQXJyYXkuaCIKKyNpbmNsdWRlICJE
YXRhVmlldy5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRlICJGaWxlLmgi
CiAjaW5jbHVkZSAiRmlsZUxpc3QuaCIKKyNpbmNsdWRlICJGbG9hdDMyQXJyYXkuaCIKKyNpbmNs
dWRlICJGbG9hdDY0QXJyYXkuaCIKICNpbmNsdWRlICJJbWFnZURhdGEuaCIKKyNpbmNsdWRlICJJ
bnQxNkFycmF5LmgiCisjaW5jbHVkZSAiSW50MzJBcnJheS5oIgorI2luY2x1ZGUgIkludDhBcnJh
eS5oIgogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgorI2luY2x1ZGUgIlVpbnQxNkFycmF5Lmgi
CisjaW5jbHVkZSAiVWludDMyQXJyYXkuaCIKKyNpbmNsdWRlICJVaW50OEFycmF5LmgiCisjaW5j
bHVkZSAiVjhBcnJheUJ1ZmZlci5oIgorI2luY2x1ZGUgIlY4QXJyYXlCdWZmZXJWaWV3LmgiCiAj
aW5jbHVkZSAiVjhCaW5kaW5nLmgiCiAjaW5jbHVkZSAiVjhCbG9iLmgiCisjaW5jbHVkZSAiVjhE
YXRhVmlldy5oIgogI2luY2x1ZGUgIlY4RmlsZS5oIgogI2luY2x1ZGUgIlY4RmlsZUxpc3QuaCIK
KyNpbmNsdWRlICJWOEZsb2F0MzJBcnJheS5oIgorI2luY2x1ZGUgIlY4RmxvYXQ2NEFycmF5Lmgi
CiAjaW5jbHVkZSAiVjhJbWFnZURhdGEuaCIKKyNpbmNsdWRlICJWOEludDE2QXJyYXkuaCIKKyNp
bmNsdWRlICJWOEludDMyQXJyYXkuaCIKKyNpbmNsdWRlICJWOEludDhBcnJheS5oIgogI2luY2x1
ZGUgIlY4UHJveHkuaCIKKyNpbmNsdWRlICJWOFVpbnQxNkFycmF5LmgiCisjaW5jbHVkZSAiVjhV
aW50MzJBcnJheS5oIgorI2luY2x1ZGUgIlY4VWludDhBcnJheS5oIgogI2luY2x1ZGUgIlY4VXRp
bGl0aWVzLmgiCiAKICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgpAQCAtNTIsMzUgKzc0LDE0
NCBAQAogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogLy8gRklYTUU6IGNvbnNpZGVyIGNyYXNo
aW5nIGluIGRlYnVnIG1vZGUgb24gZGVzZXJpYWxpemF0aW9uIGVycm9ycworLy8gTk9URTogYmUg
c3VyZSB0byBjaGFuZ2Ugd2lyZUZvcm1hdFZlcnNpb24gYXMgbmVjZXNzYXJ5IQogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIG5hbWVzcGFjZSB7CiAKKy8vIFRoaXMgY29kZSBpbXBsZW1lbnRzIHRo
ZSBIVE1MNSBTdHJ1Y3R1cmVkIENsb25lIGFsZ29yaXRobToKKy8vIGh0dHA6Ly93d3cud2hhdHdn
Lm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvbXVsdGlwYWdlL3VybHMuaHRtbCNzYWZl
LXBhc3Npbmctb2Ytc3RydWN0dXJlZC1kYXRhCisKKy8vIFY4T2JqZWN0TWFwIGlzIGEgbWFwIGZy
b20gVjggb2JqZWN0cyB0byBhcmJpdHJhcnkgdmFsdWVzIG9mIHR5cGUgVC4KKy8vIFY4IG9iamVj
dHMgKG9yIGhhbmRsZXMgdG8gVjggb2JqZWN0cykgY2Fubm90IGJlIHVzZWQgYXMga2V5cyBpbiBv
cmRpbmFyeSB3dGY6Okhhc2hNYXBzOworLy8gdGhpcyBjbGFzcyBzaG91bGQgYmUgdXNlZCBpbnN0
ZWFkLiBHQ09iamVjdCBtdXN0IGJlIGEgc3VidHlwZSBvZiB2ODo6T2JqZWN0LgorLy8gU3VnZ2Vz
dGVkIHVzYWdlOgorLy8gICAgIFY4T2JqZWN0TWFwPHY4OjpPYmplY3QsIGludD4gbWFwOworLy8g
ICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gb2JqID0gLi4uOworLy8gICAgIG1hcC5zZXQob2Jq
LCA0Mik7Cit0ZW1wbGF0ZTx0eXBlbmFtZSBHQ09iamVjdCwgdHlwZW5hbWUgVD4KK2NsYXNzIFY4
T2JqZWN0TWFwIHsKK3B1YmxpYzoKKyAgICBib29sIGNvbnRhaW5zKGNvbnN0IHY4OjpIYW5kbGU8
R0NPYmplY3Q+JiBoYW5kbGUpCisgICAgeworICAgICAgICByZXR1cm4gbV9tYXAuY29udGFpbnMo
KmhhbmRsZSk7CisgICAgfQorCisgICAgYm9vbCB0cnlHZXQoY29uc3Qgdjg6OkhhbmRsZTxHQ09i
amVjdD4mIGhhbmRsZSwgVCogdmFsdWVPdXQpCisgICAgeworICAgICAgICB0eXBlbmFtZSBIYW5k
bGVUb1Q6Oml0ZXJhdG9yIHJlc3VsdCA9IG1fbWFwLmZpbmQoKmhhbmRsZSk7CisgICAgICAgIGlm
IChyZXN1bHQgIT0gbV9tYXAuZW5kKCkpIHsKKyAgICAgICAgICAgICp2YWx1ZU91dCA9IHJlc3Vs
dC0+c2Vjb25kOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHZvaWQgc2V0KGNvbnN0IHY4OjpIYW5kbGU8R0NP
YmplY3Q+JiBoYW5kbGUsIGNvbnN0IFQmIHZhbHVlKQorICAgIHsKKyAgICAgICAgbV9tYXAuc2V0
KCpoYW5kbGUsIHZhbHVlKTsKKyAgICB9CisKKyAgICB1aW50MzJfdCBzaXplKCkKKyAgICB7Cisg
ICAgICAgIHJldHVybiBtX21hcC5zaXplKCk7CisgICAgfQorCitwcml2YXRlOgorICAgIC8vIFRo
aXMgaW1wbGVtZW50YXRpb24gdXNlcyBHZXRJZGVudGl0eUhhc2goKSwgd2hpY2ggc2V0cyBhIGhp
ZGRlbiBwcm9wZXJ0eSBvbiB0aGUgb2JqZWN0IGNvbnRhaW5pbmcKKyAgICAvLyBhIHJhbmRvbSBp
bnRlZ2VyIChvciByZXR1cm5zIHRoZSBvbmUgdGhhdCBoYWQgYmVlbiBwcmV2aW91c2x5IHNldCku
IFRoaXMgZW5zdXJlcyB0aGF0IHRoZSB0YWJsZQorICAgIC8vIG5ldmVyIG5lZWRzIHRvIGJlIHJl
YnVpbHQgYWNyb3NzIGdhcmJhZ2UgY29sbGVjdGlvbnMgYXQgdGhlIGV4cGVuc2Ugb2YgZG9pbmcg
YWRkaXRpb25hbCBhbGxvY2F0aW9uCisgICAgLy8gYW5kIG1ha2luZyBtb3JlIHJvdW5kIHRyaXBz
IGludG8gVjguIE5vdGUgdGhhdCBzaW5jZSBHZXRJZGVudGl0eUhhc2goKSBpcyBkZWZpbmVkIG9u
bHkgb24KKyAgICAvLyB2ODo6T2JqZWN0cywgdGhpcyBWOE9iamVjdE1hcCBjYW5ub3QgYmUgdXNl
ZCB0byBtYXAgdjg6OlN0cmluZ3MgdG8gVCAoYmVjYXVzZSB0aGUgcHVibGljIFY4IEFQSQorICAg
IC8vIGNvbnNpZGVycyBhIHY4OjpTdHJpbmcgdG8gYmUgYSB2ODo6UHJpbWl0aXZlKS4KKworICAg
IC8vIElmIFY4IGV4cG9zZXMgYSB3YXkgdG8gZ2V0IGF0IHRoZSBhZGRyZXNzIG9mIHRoZSBvYmpl
Y3QgaGVsZCBieSBhIGhhbmRsZSwgdGhlbiB3ZSBjYW4gcHJvZHVjZQorICAgIC8vIGFuIGFsdGVy
bmF0ZSBpbXBsZW1lbnRhdGlvbiB0aGF0IGRvZXMgbm90IG5lZWQgdG8gZG8gYW55IFY4LXNpZGUg
YWxsb2NhdGlvbjsgaG93ZXZlciwgaXQgd2lsbAorICAgIC8vIG5lZWQgdG8gcmVoYXNoIGFmdGVy
IGV2ZXJ5IGdhcmJhZ2UgY29sbGVjdGlvbiBiZWNhdXNlIGEga2V5IG9iamVjdCBtYXkgaGF2ZSBi
ZWVuIG1vdmVkLgorICAgIHRlbXBsYXRlPHR5cGVuYW1lIEc+CisgICAgc3RydWN0IFY4SGFuZGxl
UHRySGFzaCB7CisgICAgICAgIHN0YXRpYyB1bnNpZ25lZCBoYXNoKGNvbnN0IEcqIGtleSkKKyAg
ICAgICAgeworICAgICAgICAgICAgdjg6OkhhbmRsZTxHPiBvYmpIYW5kbGUoY29uc3RfY2FzdDxH
Kj4oa2V5KSk7CisgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KG9iakhh
bmRsZS0+R2V0SWRlbnRpdHlIYXNoKCkpOworICAgICAgICB9CisgICAgICAgIHN0YXRpYyBib29s
IGVxdWFsKGNvbnN0IEcqIGEsIGNvbnN0IEcqIGIpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJl
dHVybiB2ODo6SGFuZGxlPEc+KGNvbnN0X2Nhc3Q8Ryo+KGEpKSA9PSB2ODo6SGFuZGxlPEc+KGNv
bnN0X2Nhc3Q8Ryo+KGIpKTsKKyAgICAgICAgfQorICAgICAgICAvLyBGb3IgSGFzaEFyZy4KKyAg
ICAgICAgc3RhdGljIGNvbnN0IGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSBm
YWxzZTsKKyAgICB9OworCisgICAgdHlwZWRlZiBXVEY6Okhhc2hNYXA8R0NPYmplY3QqLCBULCBW
OEhhbmRsZVB0ckhhc2g8R0NPYmplY3Q+ID4gSGFuZGxlVG9UOworICAgIEhhbmRsZVRvVCBtX21h
cDsKK307CisKIHR5cGVkZWYgVUNoYXIgQnVmZmVyVmFsdWVUeXBlOwogCi0vLyBTZXJpYWxpemF0
aW9uIGZvcm1hdCBpcyBhIHNlcXVlbmNlIG9mICh0YWcsIG9wdGlvbmFsIGRhdGEpCi0vLyBwYWly
cy4gVGFnIGFsd2F5cyB0YWtlcyBleGFjdGx5IG9uZSBieXRlLgorLy8gU2VyaWFsaXphdGlvbiBm
b3JtYXQgaXMgYSBzZXF1ZW5jZSBvZiB0YWdzIGZvbGxvd2VkIGJ5IHplcm8gb3IgbW9yZSBkYXRh
IGFyZ3VtZW50cy4KKy8vIFRhZ3MgYWx3YXlzIHRha2UgZXhhY3RseSBvbmUgYnl0ZS4gQSBzZXJp
YWxpemVkIHN0cmVhbSBmaXJzdCBiZWdpbnMgd2l0aAorLy8gYSBjb21wbGV0ZSBWZXJzaW9uVGFn
LiBJZiB0aGUgc3RyZWFtIGRvZXMgbm90IGJlZ2luIHdpdGggYSBWZXJzaW9uVGFnLCB3ZSBhc3N1
bWUgdGhhdAorLy8gdGhlIHN0cmVhbSBpcyBpbiBmb3JtYXQgMC4KKworLy8gVGhpcyBmb3JtYXQg
aXMgcHJpdmF0ZSB0byB0aGUgaW1wbGVtZW50YXRpb24gb2YgU2VyaWFsaXplZFNjcmlwdFZhbHVl
LiBEbyBub3QgcmVseSBvbiBpdAorLy8gZXh0ZXJuYWxseS4gSXQgaXMgc2FmZSB0byBwZXJzaXN0
IGEgU2VyaWFsaXplZFNjcmlwdFZhbHVlIGFzIGEgYmluYXJ5IGJsb2IsIGJ1dCB0aGlzCisvLyBj
b2RlIHNob3VsZCBhbHdheXMgYmUgdXNlZCB0byBpbnRlcnByZXQgaXQuCisKKy8vIFdlYkNvcmVT
dHJpbmdzIGFyZSByZWFkIGFzIChsZW5ndGg6dWludDMyX3QsIHN0cmluZzpVVEY4W2xlbmd0aF0p
LgorLy8gUmF3U3RyaW5ncyBhcmUgcmVhZCBhcyAobGVuZ3RoOnVpbnQzMl90LCBzdHJpbmc6VVRG
OFtsZW5ndGhdKS4KKy8vIFJhd0ZpbGVzIGFyZSByZWFkIGFzIChwYXRoOldlYkNvcmVTdHJpbmcs
IHVybDpXZWJDb3JlU3RybmcsIHR5cGU6V2ViQ29yZVN0cmluZykuCisvLyBUaGVyZSBpcyBhIHJl
ZiB0YWJsZSB0aGF0IG1hcHMgb2JqZWN0IHJlZmVyZW5jZXMgKHVpbnQzMl90KSB0byB2ODo6VmFs
dWVzLgorLy8gVG9rZW5zIG1hcmtlZCB3aXRoIChyZWYpIGFyZSBpbnNlcnRlZCBpbnRvIHRoZSBy
ZWYgdGFibGUgYW5kIGdpdmVuIHRoZSBuZXh0IG9iamVjdCBJRCBhZnRlciBkZWNvZGluZy4KKy8v
IEFsbCB0YWdzIGV4Y2VwdCBJbnZhbGlkVGFnLCBQYWRkaW5nVGFnLCBDaGVja1JlZlRhZywgVmVy
c2lvblRhZywgR2VuZXJhdGVGcmVzaE9iamVjdFRhZworLy8gICAgIGFuZCBHZW5lcmF0ZUZyZXNo
QXJyYXlUYWcgcHVzaCB0aGVpciByZXN1bHRzIHRvIHRoZSBkZXNlcmlhbGl6YXRpb24gc3RhY2su
CisvLyBUaGVyZSBpcyBhbHNvIGFuICdvcGVuJyBzdGFjayB0aGF0IGlzIHVzZWQgdG8gcmVzb2x2
ZSBjaXJjdWxhciByZWZlcmVuY2VzLiBPYmplY3RzIG9yIGFycmF5cyBtYXkKKy8vICAgICBjb250
YWluIHNlbGYtcmVmZXJlbmNlcy4gQmVmb3JlIHdlIGJlZ2luIHRvIGRlc2VyaWFsaXplIHRoZSBj
b250ZW50cyBvZiB0aGVzZSB2YWx1ZXMsIHRoZXkKKy8vICAgICBhcmUgZmlyc3QgZ2l2ZW4gb2Jq
ZWN0IHJlZmVyZW5jZSBJRHMgKGJ5IEdlbmVyYXRlRnJlc2hPYmplY3RUYWcvR2VuZXJhdGVGcmVz
aEFycmF5VGFnKTsKKy8vICAgICB0aGVzZSByZWZlcmVuY2UgSURzIGFyZSB0aGVuIHVzZWQgd2l0
aCBPYmplY3RSZWZlcmVuY2VUYWcgdG8gdGllIHRoZSByZWN1cnNpdmUga25vdC4KIGVudW0gU2Vy
aWFsaXphdGlvblRhZyB7Ci0gICAgSW52YWxpZFRhZyA9ICchJywKLSAgICBQYWRkaW5nVGFnID0g
J1wwJywKLSAgICBVbmRlZmluZWRUYWcgPSAnXycsCi0gICAgTnVsbFRhZyA9ICcwJywKLSAgICBU
cnVlVGFnID0gJ1QnLAotICAgIEZhbHNlVGFnID0gJ0YnLAotICAgIFN0cmluZ1RhZyA9ICdTJywK
LSAgICBJbnQzMlRhZyA9ICdJJywKLSAgICBVaW50MzJUYWcgPSAnVScsCi0gICAgRGF0ZVRhZyA9
ICdEJywKLSAgICBOdW1iZXJUYWcgPSAnTicsCi0gICAgQmxvYlRhZyA9ICdiJywKLSAgICBGaWxl
VGFnID0gJ2YnLAotICAgIEZpbGVMaXN0VGFnID0gJ2wnLAotICAgIEltYWdlRGF0YVRhZyA9ICcj
JywKLSAgICBBcnJheVRhZyA9ICdbJywKLSAgICBPYmplY3RUYWcgPSAneycsCi0gICAgU3BhcnNl
QXJyYXlUYWcgPSAnQCcsCi0gICAgUmVnRXhwVGFnID0gJ1InLAorICAgIEludmFsaWRUYWcgPSAn
IScsIC8vIENhdXNlcyBkZXNlcmlhbGl6YXRpb24gdG8gZmFpbC4KKyAgICBQYWRkaW5nVGFnID0g
J1wwJywgLy8gSXMgaWdub3JlZCAoYnV0IGNvbnN1bWVkKS4KKyAgICBVbmRlZmluZWRUYWcgPSAn
XycsIC8vIC0+IDx1bmRlZmluZWQ+CisgICAgTnVsbFRhZyA9ICcwJywgLy8gLT4gPG51bGw+Cisg
ICAgVHJ1ZVRhZyA9ICdUJywgLy8gLT4gPHRydWU+CisgICAgRmFsc2VUYWcgPSAnRicsIC8vIC0+
IDxmYWxzZT4KKyAgICBTdHJpbmdUYWcgPSAnUycsIC8vIHN0cmluZzpSYXdTdHJpbmcgLT4gc3Ry
aW5nCisgICAgSW50MzJUYWcgPSAnSScsIC8vIHZhbHVlOlppZ1phZy1lbmNvZGVkIGludDMyIC0+
IEludGVnZXIKKyAgICBVaW50MzJUYWcgPSAnVScsIC8vIHZhbHVlOnVpbnQzMl90IC0+IEludGVn
ZXIKKyAgICBEYXRlVGFnID0gJ0QnLCAvLyB2YWx1ZTpkb3VibGUgLT4gRGF0ZSAocmVmKQorICAg
IE51bWJlclRhZyA9ICdOJywgLy8gdmFsdWU6ZG91YmxlIC0+IE51bWJlcgorICAgIEJsb2JUYWcg
PSAnYicsIC8vIHVybDpXZWJDb3JlU3RyaW5nLCB0eXBlOldlYkNvcmVTdHJpbmcsIHNpemU6dWlu
dDY0X3QgLT4gQmxvYiAocmVmKQorICAgIEZpbGVUYWcgPSAnZicsIC8vIGZpbGU6UmF3RmlsZSAt
PiBGaWxlIChyZWYpCisgICAgRmlsZUxpc3RUYWcgPSAnbCcsIC8vIGxlbmd0aDp1aW50MzJfdCwg
ZmlsZXM6UmF3RmlsZVtsZW5ndGhdIC0+IEZpbGVMaXN0IChyZWYpCisgICAgSW1hZ2VEYXRhVGFn
ID0gJyMnLCAvLyB3aWR0aDp1aW50MzJfdCwgaGVpZ2h0OnVpbnQzMl90LCBwaXhlbERhdGFMZW5n
dGg6dWludDMyX3QsIGRhdGE6Ynl0ZVtwaXhlbERhdGFMZW5ndGhdIC0+IEltYWdlRGF0YSAocmVm
KQorICAgIEFycmF5VGFnID0gJ1snLCAvLyBsZW5ndGg6dWludDMyX3QgLT4gcG9wcyB0aGUgbGFz
dCBhcnJheSBmcm9tIHRoZSBvcGVuIHN0YWNrOworICAgICAgICAgICAgICAgICAgICAvLyAgICAg
ICAgICAgICAgICAgICAgZmlsbHMgaXQgd2l0aCB0aGUgbGFzdCBsZW5ndGggZWxlbWVudHMgcHVz
aGVkIG9uIHRoZSBkZXNlcmlhbGl6YXRpb24gc3RhY2sKKyAgICBPYmplY3RUYWcgPSAneycsIC8v
IG51bVByb3BlcnRpZXM6dWludDMyX3QgLT4gcG9wcyB0aGUgbGFzdCBvYmplY3QgZnJvbSB0aGUg
b3BlbiBzdGFjazsKKyAgICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZmlsbHMgaXQgd2l0aCB0aGUgbGFzdCBudW1Qcm9wZXJ0aWVzIG5hbWUsdmFsdWUgcGFp
cnMgcHVzaGVkIG9udG8gdGhlIGRlc2VyaWFsaXphdGlvbiBzdGFjaworICAgIFNwYXJzZUFycmF5
VGFnID0gJ0AnLCAvLyBudW1Qcm9wZXJ0aWVzOnVpbnQzMl90LCBsZW5ndGg6dWludDMyX3QgLT4g
cG9wcyB0aGUgbGFzdCBvYmplY3QgZnJvbSB0aGUgb3BlbiBzdGFjazsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGZpbGxzIGl0IHdpdGggdGhlIGxhc3QgbnVtUHJvcGVydGllcyBuYW1lLHZhbHVlIHBhaXJzIHB1
c2hlZCBvbnRvIHRoZSBkZXNlcmlhbGl6YXRpb24gc3RhY2sKKyAgICBSZWdFeHBUYWcgPSAnUics
IC8vIHBhdHRlcm46UmF3U3RyaW5nLCBmbGFnczp1aW50MzJfdCAtPiBSZWdFeHAgKHJlZikKKyAg
ICBBcnJheUJ1ZmZlclRhZyA9ICdCJywgLy8gYnl0ZUxlbmd0aDp1aW50MzJfdCwgZGF0YTpieXRl
W2J5dGVMZW5ndGhdIC0+IEFycmF5QnVmZmVyIChyZWYpCisgICAgQXJyYXlCdWZmZXJWaWV3VGFn
ID0gJ1YnLCAvLyBzdWJ0YWc6Ynl0ZSwgYnl0ZU9mZnNldDp1aW50MzJfdCwgYnl0ZUxlbmd0aDp1
aW50MzJfdCAtPiBBcnJheUJ1ZmZlclZpZXcgKHJlZikuIENvbnN1bWVzIGFuIEFycmF5QnVmZmVy
IGZyb20gdGhlIHRvcCBvZiB0aGUgZGVzZXJpYWxpemF0aW9uIHN0YWNrLgorICAgIE9iamVjdFJl
ZmVyZW5jZVRhZyA9ICdeJywgLy8gcmVmOnVpbnQzMl90IC0+IHJlZiB0YWJsZVtyZWZdCisgICAg
R2VuZXJhdGVGcmVzaE9iamVjdFRhZyA9ICdvJywgLy8gLT4gZW1wdHkgb2JqZWN0IGFsbG9jYXRl
ZCBhbiBvYmplY3QgSUQgYW5kIHB1c2hlZCBvbnRvIHRoZSBvcGVuIHN0YWNrIChyZWYpCisgICAg
R2VuZXJhdGVGcmVzaEFycmF5VGFnID0gJ2EnLCAvLyBsZW5ndGg6dWludDMyX3QgLT4gZW1wdHkg
YXJyYXlbbGVuZ3RoXSBhbGxvY2F0ZWQgYW4gb2JqZWN0IElEIGFuZCBwdXNoZWQgb250byB0aGUg
b3BlbiBzdGFjayAocmVmKQorICAgIENoZWNrUmVmVGFnID0gJz8nLCAvLyByZWZUYWJsZVNpemU6
dWludDMyX3QgLT4gSWYgdGhlIHJlZiB0YWJsZSBpcyBub3QgcmVmVGFibGVTaXplIGJpZywgZmFp
bHMuCisgICAgVmVyc2lvblRhZyA9IDB4RkYgLy8gdmVyc2lvbjp1aW50MzJfdCAtPiBVc2VzIHRo
aXMgYXMgdGhlIGZpbGUgdmVyc2lvbi4KK307CisKK2VudW0gQXJyYXlCdWZmZXJWaWV3U3ViVGFn
IHsKKyAgICBCeXRlQXJyYXlUYWcgPSAnYicsCisgICAgVW5zaWduZWRCeXRlQXJyYXlUYWcgPSAn
QicsCisgICAgU2hvcnRBcnJheVRhZyA9ICd3JywKKyAgICBVbnNpZ25lZFNob3J0QXJyYXlUYWcg
PSAnVycsCisgICAgSW50QXJyYXlUYWcgPSAnZCcsCisgICAgVW5zaWduZWRJbnRBcnJheVRhZyA9
ICdEJywKKyAgICBGbG9hdEFycmF5VGFnID0gJ2YnLAorICAgIERvdWJsZUFycmF5VGFnID0gJ0Yn
LAorICAgIERhdGFWaWV3VGFnID0gJz8nCiB9OwogCiBzdGF0aWMgYm9vbCBzaG91bGRDaGVja0Zv
ckN5Y2xlcyhpbnQgZGVwdGgpCkBAIC05Miw2ICsyMjMsOSBAQCBzdGF0aWMgYm9vbCBzaG91bGRD
aGVja0ZvckN5Y2xlcyhpbnQgZGVwdGgpCiAgICAgcmV0dXJuICEoZGVwdGggJiAoZGVwdGggLSAx
KSk7CiB9CiAKKy8vIEluY3JlbWVudCB0aGlzIGZvciBlYWNoIGluY29tcGF0aWJsZSBjaGFuZ2Ug
dG8gdGhlIHdpcmUgZm9ybWF0Lgorc3RhdGljIGNvbnN0IHVpbnQzMl90IHdpcmVGb3JtYXRWZXJz
aW9uID0gMTsKKwogc3RhdGljIGNvbnN0IGludCBtYXhEZXB0aCA9IDIwMDAwOwogCiAvLyBWYXJJ
bnQgZW5jb2RpbmcgY29uc3RhbnRzLgpAQCAtMTU5LDYgKzI5MywxMiBAQCBwdWJsaWM6CiAgICAg
ICAgIGRvV3JpdGVXZWJDb3JlU3RyaW5nKHN0cmluZyk7CiAgICAgfQogCisgICAgdm9pZCB3cml0
ZVZlcnNpb24oKQorICAgIHsKKyAgICAgICAgYXBwZW5kKFZlcnNpb25UYWcpOworICAgICAgICBk
b1dyaXRlVWludDMyKHdpcmVGb3JtYXRWZXJzaW9uKTsKKyAgICB9CisKICAgICB2b2lkIHdyaXRl
SW50MzIoaW50MzJfdCB2YWx1ZSkKICAgICB7CiAgICAgICAgIGFwcGVuZChJbnQzMlRhZyk7CkBA
IC0yMTEsNiArMzUxLDQyIEBAIHB1YmxpYzoKICAgICAgICAgfQogICAgIH0KIAorICAgIHZvaWQg
d3JpdGVBcnJheUJ1ZmZlcihjb25zdCBBcnJheUJ1ZmZlciYgYXJyYXlCdWZmZXIpCisgICAgewor
ICAgICAgICBhcHBlbmQoQXJyYXlCdWZmZXJUYWcpOworICAgICAgICBkb1dyaXRlQXJyYXlCdWZm
ZXIoYXJyYXlCdWZmZXIpOworICAgIH0KKworICAgIHZvaWQgd3JpdGVBcnJheUJ1ZmZlclZpZXco
Y29uc3QgQXJyYXlCdWZmZXJWaWV3JiBhcnJheUJ1ZmZlclZpZXcpCisgICAgeworICAgICAgICBh
cHBlbmQoQXJyYXlCdWZmZXJWaWV3VGFnKTsKKyNpZm5kZWYgTkRFQlVHCisgICAgICAgIGNvbnN0
IEFycmF5QnVmZmVyJiBhcnJheUJ1ZmZlciA9ICphcnJheUJ1ZmZlclZpZXcuYnVmZmVyKCk7Cisg
ICAgICAgIEFTU0VSVChzdGF0aWNfY2FzdDxjb25zdCB1aW50OF90Kj4oYXJyYXlCdWZmZXIuZGF0
YSgpKSArIGFycmF5QnVmZmVyVmlldy5ieXRlT2Zmc2V0KCkgPT0KKyAgICAgICAgICAgICAgIHN0
YXRpY19jYXN0PGNvbnN0IHVpbnQ4X3QqPihhcnJheUJ1ZmZlclZpZXcuYmFzZUFkZHJlc3MoKSkp
OworI2VuZGlmCisgICAgICAgIGlmIChhcnJheUJ1ZmZlclZpZXcuaXNCeXRlQXJyYXkoKSkKKyAg
ICAgICAgICAgIGFwcGVuZChCeXRlQXJyYXlUYWcpOworICAgICAgICBlbHNlIGlmIChhcnJheUJ1
ZmZlclZpZXcuaXNVbnNpZ25lZEJ5dGVBcnJheSgpKQorICAgICAgICAgICAgYXBwZW5kKFVuc2ln
bmVkQnl0ZUFycmF5VGFnKTsKKyAgICAgICAgZWxzZSBpZiAoYXJyYXlCdWZmZXJWaWV3LmlzU2hv
cnRBcnJheSgpKQorICAgICAgICAgICAgYXBwZW5kKFNob3J0QXJyYXlUYWcpOworICAgICAgICBl
bHNlIGlmIChhcnJheUJ1ZmZlclZpZXcuaXNVbnNpZ25lZFNob3J0QXJyYXkoKSkKKyAgICAgICAg
ICAgIGFwcGVuZChVbnNpZ25lZFNob3J0QXJyYXlUYWcpOworICAgICAgICBlbHNlIGlmIChhcnJh
eUJ1ZmZlclZpZXcuaXNJbnRBcnJheSgpKQorICAgICAgICAgICAgYXBwZW5kKEludEFycmF5VGFn
KTsKKyAgICAgICAgZWxzZSBpZiAoYXJyYXlCdWZmZXJWaWV3LmlzVW5zaWduZWRJbnRBcnJheSgp
KQorICAgICAgICAgICAgYXBwZW5kKFVuc2lnbmVkSW50QXJyYXlUYWcpOworICAgICAgICBlbHNl
IGlmIChhcnJheUJ1ZmZlclZpZXcuaXNGbG9hdEFycmF5KCkpCisgICAgICAgICAgICBhcHBlbmQo
RmxvYXRBcnJheVRhZyk7CisgICAgICAgIGVsc2UgaWYgKGFycmF5QnVmZmVyVmlldy5pc0RvdWJs
ZUFycmF5KCkpCisgICAgICAgICAgICBhcHBlbmQoRG91YmxlQXJyYXlUYWcpOworICAgICAgICBl
bHNlIGlmIChhcnJheUJ1ZmZlclZpZXcuaXNEYXRhVmlldygpKQorICAgICAgICAgICAgYXBwZW5k
KERhdGFWaWV3VGFnKTsKKyAgICAgICAgZG9Xcml0ZVVpbnQzMihhcnJheUJ1ZmZlclZpZXcuYnl0
ZU9mZnNldCgpKTsKKyAgICAgICAgZG9Xcml0ZVVpbnQzMihhcnJheUJ1ZmZlclZpZXcuYnl0ZUxl
bmd0aCgpKTsKKyAgICB9CisKICAgICB2b2lkIHdyaXRlSW1hZ2VEYXRhKHVpbnQzMl90IHdpZHRo
LCB1aW50MzJfdCBoZWlnaHQsIGNvbnN0IHVpbnQ4X3QqIHBpeGVsRGF0YSwgdWludDMyX3QgcGl4
ZWxEYXRhTGVuZ3RoKQogICAgIHsKICAgICAgICAgYXBwZW5kKEltYWdlRGF0YVRhZyk7CkBAIC0y
MzQsNiArNDEwLDEyIEBAIHB1YmxpYzoKICAgICAgICAgZG9Xcml0ZVVpbnQzMihsZW5ndGgpOwog
ICAgIH0KIAorICAgIHZvaWQgd3JpdGVPYmplY3RPZmZzZXQodWludDMyX3Qgb2Zmc2V0KQorICAg
IHsKKyAgICAgICAgYXBwZW5kKE9iamVjdFJlZmVyZW5jZVRhZyk7CisgICAgICAgIGRvV3JpdGVV
aW50MzIob2Zmc2V0KTsKKyAgICB9CisKICAgICB2b2lkIHdyaXRlT2JqZWN0KHVpbnQzMl90IG51
bVByb3BlcnRpZXMpCiAgICAgewogICAgICAgICBhcHBlbmQoT2JqZWN0VGFnKTsKQEAgLTI1Myw3
ICs0MzUsMzEgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gbV9idWZmZXI7CiAgICAgfQogCisg
ICAgdm9pZCB3cml0ZUNoZWNrUmVmKHVpbnQzMl90IG51bWJlck9mUmVmcykKKyAgICB7CisgICAg
ICAgIGFwcGVuZChDaGVja1JlZlRhZyk7CisgICAgICAgIGRvV3JpdGVVaW50MzIobnVtYmVyT2ZS
ZWZzKTsKKyAgICB9CisKKyAgICB2b2lkIHdyaXRlR2VuZXJhdGVGcmVzaE9iamVjdCgpCisgICAg
eworICAgICAgICBhcHBlbmQoR2VuZXJhdGVGcmVzaE9iamVjdFRhZyk7CisgICAgfQorCisgICAg
dm9pZCB3cml0ZUdlbmVyYXRlRnJlc2hBcnJheSh1aW50MzJfdCBsZW5ndGgpCisgICAgeworICAg
ICAgICBhcHBlbmQoR2VuZXJhdGVGcmVzaEFycmF5VGFnKTsKKyAgICAgICAgZG9Xcml0ZVVpbnQz
MihsZW5ndGgpOworICAgIH0KKwogcHJpdmF0ZToKKyAgICB2b2lkIGRvV3JpdGVBcnJheUJ1ZmZl
cihjb25zdCBBcnJheUJ1ZmZlciYgYXJyYXlCdWZmZXIpCisgICAgeworICAgICAgICB1aW50MzJf
dCBieXRlTGVuZ3RoID0gYXJyYXlCdWZmZXIuYnl0ZUxlbmd0aCgpOworICAgICAgICBkb1dyaXRl
VWludDMyKGJ5dGVMZW5ndGgpOworICAgICAgICBhcHBlbmQoc3RhdGljX2Nhc3Q8Y29uc3QgdWlu
dDhfdCo+KGFycmF5QnVmZmVyLmRhdGEoKSksIGJ5dGVMZW5ndGgpOworICAgIH0KKwogICAgIHZv
aWQgZG9Xcml0ZVN0cmluZyhjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3RoKQogICAgIHsKICAg
ICAgICAgZG9Xcml0ZVVpbnQzMihzdGF0aWNfY2FzdDx1aW50MzJfdD4obGVuZ3RoKSk7CkBAIC0z
NDAsNiArNTQ2LDcgQEAgcHVibGljOgogICAgIGVudW0gU3RhdHVzIHsKICAgICAgICAgU3VjY2Vz
cywKICAgICAgICAgSW5wdXRFcnJvciwKKyAgICAgICAgRGF0YUNsb25lRXJyb3IsCiAgICAgICAg
IEpTRXhjZXB0aW9uLAogICAgICAgICBKU0ZhaWx1cmUKICAgICB9OwpAQCAtMzQ4LDcgKzU1NSw5
IEBAIHB1YmxpYzoKICAgICAgICAgOiBtX3dyaXRlcih3cml0ZXIpCiAgICAgICAgICwgbV90cnlD
YXRjaCh0cnlDYXRjaCkKICAgICAgICAgLCBtX2RlcHRoKDApCisgICAgICAgICwgbV9leGVjRGVw
dGgoMCkKICAgICAgICAgLCBtX3N0YXR1cyhTdWNjZXNzKQorICAgICAgICAsIG1fbmV4dE9iamVj
dElkKDApCiAgICAgewogICAgICAgICBBU1NFUlQoIXRyeUNhdGNoLkhhc0NhdWdodCgpKTsKICAg
ICB9CkBAIC0zNTYsNiArNTY1LDcgQEAgcHVibGljOgogICAgIFN0YXR1cyBzZXJpYWxpemUodjg6
OkhhbmRsZTx2ODo6VmFsdWU+IHZhbHVlKQogICAgIHsKICAgICAgICAgdjg6OkhhbmRsZVNjb3Bl
IHNjb3BlOworICAgICAgICBtX3dyaXRlci53cml0ZVZlcnNpb24oKTsKICAgICAgICAgU3RhdGVC
YXNlKiBzdGF0ZSA9IGRvU2VyaWFsaXplKHZhbHVlLCAwKTsKICAgICAgICAgd2hpbGUgKHN0YXRl
KQogICAgICAgICAgICAgc3RhdGUgPSBzdGF0ZS0+YWR2YW5jZSgqdGhpcyk7CkBAIC0zNjMsNyAr
NTczLDYgQEAgcHVibGljOgogICAgIH0KIAogICAgIC8vIEZ1bmN0aW9ucyB1c2VkIGJ5IHNlcmlh
bGl6YXRpb24gc3RhdGVzLgotCiAgICAgU3RhdGVCYXNlKiBkb1NlcmlhbGl6ZSh2ODo6SGFuZGxl
PHY4OjpWYWx1ZT4gdmFsdWUsIFN0YXRlQmFzZSogbmV4dCk7CiAKICAgICBTdGF0ZUJhc2UqIGNo
ZWNrRXhjZXB0aW9uKFN0YXRlQmFzZSogc3RhdGUpCkBAIC00MTEsNiArNjIwLDEwIEBAIHByaXZh
dGU6CiAgICAgICAgIC8vIHN0YXRlLgogICAgICAgICB2aXJ0dWFsIFN0YXRlQmFzZSogYWR2YW5j
ZShTZXJpYWxpemVyJikgPSAwOwogCisgICAgICAgIC8vIFJldHVybnMgMSBpZiB0aGlzIHN0YXRl
IGlzIGN1cnJlbnRseSBzZXJpYWxpemluZyBhIHByb3BlcnR5CisgICAgICAgIC8vIHZpYSBhbiBh
Y2Nlc3NvciBhbmQgMCBvdGhlcndpc2UuCisgICAgICAgIHZpcnR1YWwgdWludDMyX3QgZXhlY0Rl
cHRoKCkgY29uc3QgeyByZXR1cm4gMDsgfQorCiAgICAgcHJvdGVjdGVkOgogICAgICAgICBTdGF0
ZUJhc2Uodjg6OkhhbmRsZTx2ODo6VmFsdWU+IGNvbXBvc2l0ZSwgU3RhdGVCYXNlKiBuZXh0KQog
ICAgICAgICAgICAgOiBtX2NvbXBvc2l0ZShjb21wb3NpdGUpCkBAIC00ODUsMTEgKzY5OCwxMyBA
QCBwcml2YXRlOgogICAgICAgICAgICAgLCBtX2luZGV4KDApCiAgICAgICAgICAgICAsIG1fbnVt
U2VyaWFsaXplZFByb3BlcnRpZXMoMCkKICAgICAgICAgICAgICwgbV9uYW1lRG9uZShmYWxzZSkK
KyAgICAgICAgICAgICwgbV9zZXJpYWxpemluZ0FjY2Vzc29yKGZhbHNlKQogICAgICAgICB7CiAg
ICAgICAgIH0KIAogICAgICAgICB2aXJ0dWFsIFN0YXRlQmFzZSogYWR2YW5jZShTZXJpYWxpemVy
JiBzZXJpYWxpemVyKQogICAgICAgICB7CisgICAgICAgICAgICBtX3NlcmlhbGl6aW5nQWNjZXNz
b3IgPSBmYWxzZTsKICAgICAgICAgICAgIGlmICghbV9pbmRleCkgewogICAgICAgICAgICAgICAg
IG1fcHJvcGVydHlOYW1lcyA9IGNvbXBvc2l0ZSgpLT5HZXRQcm9wZXJ0eU5hbWVzKCk7CiAgICAg
ICAgICAgICAgICAgaWYgKFN0YXRlQmFzZSogbmV3U3RhdGUgPSBzZXJpYWxpemVyLmNoZWNrRXhj
ZXB0aW9uKHRoaXMpKQpAQCAtNDk4LDYgKzcxMyw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBzZXJpYWxpemVyLnJlcG9ydEZhaWx1cmUodGhpcyk7CiAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICB3aGlsZSAobV9pbmRleCA8IG1fcHJvcGVydHlOYW1lcy0+TGVuZ3Ro
KCkpIHsKKyAgICAgICAgICAgICAgICBib29sIGlzQWNjZXNzb3IgPSBmYWxzZTsKICAgICAgICAg
ICAgICAgICBpZiAoIW1fbmFtZURvbmUpIHsKICAgICAgICAgICAgICAgICAgICAgdjg6OkxvY2Fs
PHY4OjpWYWx1ZT4gcHJvcGVydHlOYW1lID0gbV9wcm9wZXJ0eU5hbWVzLT5HZXQobV9pbmRleCk7
CiAgICAgICAgICAgICAgICAgICAgIGlmIChTdGF0ZUJhc2UqIG5ld1N0YXRlID0gc2VyaWFsaXpl
ci5jaGVja0V4Y2VwdGlvbih0aGlzKSkKQEAgLTUxMCw2ICs3MjYsOSBAQCBwcml2YXRlOgogICAg
ICAgICAgICAgICAgICAgICBib29sIGhhc0luZGV4ZWRQcm9wZXJ0eSA9ICFoYXNTdHJpbmdQcm9w
ZXJ0eSAmJiBwcm9wZXJ0eU5hbWUtPklzVWludDMyKCkgJiYgY29tcG9zaXRlKCktPkhhc1JlYWxJ
bmRleGVkUHJvcGVydHkocHJvcGVydHlOYW1lLT5VaW50MzJWYWx1ZSgpKTsKICAgICAgICAgICAg
ICAgICAgICAgaWYgKFN0YXRlQmFzZSogbmV3U3RhdGUgPSBzZXJpYWxpemVyLmNoZWNrRXhjZXB0
aW9uKHRoaXMpKQogICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ld1N0YXRlOworICAg
ICAgICAgICAgICAgICAgICBpc0FjY2Vzc29yID0gaGFzU3RyaW5nUHJvcGVydHkgJiYgY29tcG9z
aXRlKCktPkhhc1JlYWxOYW1lZENhbGxiYWNrUHJvcGVydHkocHJvcGVydHlOYW1lLkFzPHY4OjpT
dHJpbmc+KCkpOworICAgICAgICAgICAgICAgICAgICBpZiAoU3RhdGVCYXNlKiBuZXdTdGF0ZSA9
IHNlcmlhbGl6ZXIuY2hlY2tFeGNlcHRpb24odGhpcykpCisgICAgICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gbmV3U3RhdGU7CiAgICAgICAgICAgICAgICAgICAgIGlmIChoYXNTdHJpbmdQcm9w
ZXJ0eSB8fCBoYXNJbmRleGVkUHJvcGVydHkpCiAgICAgICAgICAgICAgICAgICAgICAgICBtX3By
b3BlcnR5TmFtZSA9IHByb3BlcnR5TmFtZTsKICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CkBA
IC01MzAsMTIgKzc0OSwyOCBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgIG1fcHJvcGVydHlO
YW1lLkNsZWFyKCk7CiAgICAgICAgICAgICAgICAgKyttX2luZGV4OwogICAgICAgICAgICAgICAg
ICsrbV9udW1TZXJpYWxpemVkUHJvcGVydGllczsKKyAgICAgICAgICAgICAgICAvLyBtX3Nlcmlh
bGl6aW5nQWNjZXNzb3IgaXMgdXNlZCBhbG9uZyB3aXRoIGV4ZWNEZXB0aCgpIHRvIGRldGVybWlu
ZSB0aGUgbnVtYmVyIG9mCisgICAgICAgICAgICAgICAgLy8gYWNjZXNzb3JzIHVuZGVyIHdoaWNo
IHRoZSBzZXJpYWxpemVyIGlzIGN1cnJlbnRseSBzZXJpYWxpemluZy4gVGhlIHNlcmlhbGl6ZXIn
cworICAgICAgICAgICAgICAgIC8vIGFjY2Vzc29yIGxldmVsIGNvdW50IGlzIG1haW50YWluZWQg
YXQgU2VyaWFsaXplcjo6cHVzaCBhbmQgU2VyaWFsaXplcjo6cG9wCisgICAgICAgICAgICAgICAg
Ly8gYW5kIGlzIGNoZWNrZWQgdXBvbiBlbnRyeSBpbiBTZXJpYWxpemVyOjpkb1NlcmlhbGl6ZS4K
KyAgICAgICAgICAgICAgICBtX3NlcmlhbGl6aW5nQWNjZXNzb3IgPSBpc0FjY2Vzc29yOworICAg
ICAgICAgICAgICAgIC8vIElmIHdlIHJldHVybiBlYXJseSBoZXJlLCBpdCdzIGVpdGhlciBiZWNh
dXNlIHdlIGhhdmUgcHVzaGVkIGEgbmV3IHN0YXRlIG9udG8gdGhlCisgICAgICAgICAgICAgICAg
Ly8gc2VyaWFsaXphdGlvbiBzdGF0ZSBzdGFjayBvciBiZWNhdXNlIHdlIGhhdmUgZW5jb3VudGVy
ZWQgYW4gZXJyb3IgKGFuZCBpbiBib3RoIGNhc2VzCisgICAgICAgICAgICAgICAgLy8gd2UgYXJl
IHVud2luZGluZyB0aGUgbmF0aXZlIHN0YWNrKS4gV2UgcmVzZXQgbV9zZXJpYWxpemluZ0FjY2Vz
c29yIGF0IHRoZSBiZWdpbm5pbmcKKyAgICAgICAgICAgICAgICAvLyBvZiBhZHZhbmNlKCkgZm9y
IHRoaXMgY2FzZSAoYmVjYXVzZSBhZHZhbmNlKCkgd2lsbCBiZSBjYWxsZWQgb24gdXMgYWdhaW4g
b25jZSB3ZQorICAgICAgICAgICAgICAgIC8vIGFyZSB0aGUgdG9wIG9mIHRoZSBzdGFjaykuCiAg
ICAgICAgICAgICAgICAgaWYgKFN0YXRlQmFzZSogbmV3U3RhdGUgPSBzZXJpYWxpemVyLmRvU2Vy
aWFsaXplKHZhbHVlLCB0aGlzKSkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ld1N0YXRl
OworICAgICAgICAgICAgICAgIC8vIFRoaXMgbV9zZXJpYWxpemluZ0FjY2Vzc29yIHJlc2V0IGlz
IG5lY2Vzc2FyeSBmb3IgdGhvc2UgdGltZXMgd2hlbiB3ZSBhcmUgc2VyaWFsaXppbmcKKyAgICAg
ICAgICAgICAgICAvLyBhbiBhY2Nlc3NvcidzIHJlc3VsdCwgYnV0IHRoYXQgcmVzdWx0IGRvZXMg
bm90IG5lZWQgYSBuZXcgc3RhdGUgdG8gYmUgcHVzaGVkIChiZWNhdXNlCisgICAgICAgICAgICAg
ICAgLy8gaXQgaXMgZmxhdCwgbGlrZSBhIHN0cmluZykuCisgICAgICAgICAgICAgICAgbV9zZXJp
YWxpemluZ0FjY2Vzc29yID0gZmFsc2U7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICByZXR1
cm4gb2JqZWN0RG9uZShtX251bVNlcmlhbGl6ZWRQcm9wZXJ0aWVzLCBzZXJpYWxpemVyKTsKICAg
ICAgICAgfQogCisgICAgICAgIHZpcnR1YWwgdWludDMyX3QgZXhlY0RlcHRoKCkgY29uc3QgeyBy
ZXR1cm4gbV9zZXJpYWxpemluZ0FjY2Vzc29yID8gMSA6IDA7IH0KKwogICAgIHByb3RlY3RlZDoK
ICAgICAgICAgdmlydHVhbCBTdGF0ZUJhc2UqIG9iamVjdERvbmUodW5zaWduZWQgbnVtUHJvcGVy
dGllcywgU2VyaWFsaXplciYpID0gMDsKIApAQCAtNTQ1LDYgKzc4MCw3IEBAIHByaXZhdGU6CiAg
ICAgICAgIHVuc2lnbmVkIG1faW5kZXg7CiAgICAgICAgIHVuc2lnbmVkIG1fbnVtU2VyaWFsaXpl
ZFByb3BlcnRpZXM7CiAgICAgICAgIGJvb2wgbV9uYW1lRG9uZTsKKyAgICAgICAgYm9vbCBtX3Nl
cmlhbGl6aW5nQWNjZXNzb3I7CiAgICAgfTsKIAogICAgIGNsYXNzIE9iamVjdFN0YXRlIDogcHVi
bGljIEFic3RyYWN0T2JqZWN0U3RhdGUgewpAQCAtNTc1LDkgKzgxMSwxNiBAQCBwcml2YXRlOgog
ICAgICAgICB9CiAgICAgfTsKIAorICAgIHVpbnQzMl90IGV4ZWNEZXB0aCgpIGNvbnN0CisgICAg
eworICAgICAgICByZXR1cm4gbV9leGVjRGVwdGg7CisgICAgfQorCiAgICAgU3RhdGVCYXNlKiBw
dXNoKFN0YXRlQmFzZSogc3RhdGUpCiAgICAgewogICAgICAgICBBU1NFUlQoc3RhdGUpOworICAg
ICAgICBpZiAoc3RhdGUtPm5leHRTdGF0ZSgpKQorICAgICAgICAgICAgbV9leGVjRGVwdGggKz0g
c3RhdGUtPm5leHRTdGF0ZSgpLT5leGVjRGVwdGgoKTsKICAgICAgICAgKyttX2RlcHRoOwogICAg
ICAgICByZXR1cm4gY2hlY2tDb21wb3NpdGUoc3RhdGUpID8gc3RhdGUgOiBoYW5kbGVFcnJvcihJ
bnB1dEVycm9yLCBzdGF0ZSk7CiAgICAgfQpAQCAtNTg3LDYgKzgzMCw4IEBAIHByaXZhdGU6CiAg
ICAgICAgIEFTU0VSVChzdGF0ZSk7CiAgICAgICAgIC0tbV9kZXB0aDsKICAgICAgICAgU3RhdGVC
YXNlKiBuZXh0ID0gc3RhdGUtPm5leHRTdGF0ZSgpOworICAgICAgICBpZiAobmV4dCkKKyAgICAg
ICAgICAgIG1fZXhlY0RlcHRoIC09IG5leHQtPmV4ZWNEZXB0aCgpOwogICAgICAgICBkZWxldGUg
c3RhdGU7CiAgICAgICAgIHJldHVybiBuZXh0OwogICAgIH0KQEAgLTU5OSw2ICs4NDQsOCBAQCBw
cml2YXRlOgogICAgICAgICAgICAgU3RhdGVCYXNlKiB0bXAgPSBzdGF0ZS0+bmV4dFN0YXRlKCk7
CiAgICAgICAgICAgICBkZWxldGUgc3RhdGU7CiAgICAgICAgICAgICBzdGF0ZSA9IHRtcDsKKyAg
ICAgICAgICAgIGlmIChzdGF0ZSkKKyAgICAgICAgICAgICAgICBtX2V4ZWNEZXB0aCAtPSBzdGF0
ZS0+ZXhlY0RlcHRoKCk7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIG5ldyBFcnJvclN0YXRl
OwogICAgIH0KQEAgLTY2Myw2ICs5MTAsMzkgQEAgcHJpdmF0ZToKICAgICAgICAgbV93cml0ZXIu
d3JpdGVSZWdFeHAocmVnRXhwLT5HZXRTb3VyY2UoKSwgcmVnRXhwLT5HZXRGbGFncygpKTsKICAg
ICB9CiAKKyAgICBTdGF0ZUJhc2UqIHdyaXRlQW5kR3JleUFycmF5QnVmZmVyVmlldyh2ODo6SGFu
ZGxlPHY4OjpPYmplY3Q+IG9iamVjdCwgU3RhdGVCYXNlKiBuZXh0KQorICAgIHsKKyAgICAgICAg
QVNTRVJUKCFvYmplY3QuSXNFbXB0eSgpKTsKKyAgICAgICAgQXJyYXlCdWZmZXJWaWV3KiBhcnJh
eUJ1ZmZlclZpZXcgPSBWOEFycmF5QnVmZmVyVmlldzo6dG9OYXRpdmUob2JqZWN0KTsKKyAgICAg
ICAgaWYgKCFhcnJheUJ1ZmZlclZpZXcpCisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAg
djg6OkhhbmRsZTx2ODo6VmFsdWU+IHVuZGVybHlpbmdCdWZmZXIgPSB0b1Y4KGFycmF5QnVmZmVy
Vmlldy0+YnVmZmVyKCkpOworICAgICAgICBpZiAodW5kZXJseWluZ0J1ZmZlci5Jc0VtcHR5KCkp
CisgICAgICAgICAgICByZXR1cm4gaGFuZGxlRXJyb3IoRGF0YUNsb25lRXJyb3IsIG5leHQpOwor
ICAgICAgICBTdGF0ZUJhc2UqIHN0YXRlT3V0ID0gZG9TZXJpYWxpemUodW5kZXJseWluZ0J1ZmZl
ciwgMCk7CisgICAgICAgIGlmIChzdGF0ZU91dCkKKyAgICAgICAgICAgIHJldHVybiBoYW5kbGVF
cnJvcihEYXRhQ2xvbmVFcnJvciwgbmV4dCk7CisgICAgICAgIG1fd3JpdGVyLndyaXRlQXJyYXlC
dWZmZXJWaWV3KCphcnJheUJ1ZmZlclZpZXcpOworICAgICAgICAvLyBUaGlzIHNob3VsZCBiZSBz
YWZlOiB3ZSBzZXJpYWxpemUgc29tZXRoaW5nIHRoYXQgd2Uga25vdyB0byBiZSBhIHdyYXBwZXIg
KHNlZQorICAgICAgICAvLyB0aGUgdG9WOCBjYWxsIGFib3ZlKSwgc28gdGhlIGNhbGwgdG8gZG9T
ZXJpYWxpemUgYWJvdmUgc2hvdWxkIG5laXRoZXIgY2F1c2UKKyAgICAgICAgLy8gdGhlIHN0YWNr
IHRvIG92ZXJmbG93IG5vciBzaG91bGQgaXQgaGF2ZSB0aGUgcG90ZW50aWFsIHRvIHJlYWNoIHRo
aXMKKyAgICAgICAgLy8gQXJyYXlCdWZmZXJWaWV3IGFnYWluLiBXZSBkbyBuZWVkIHRvIGdyZXkg
dGhlIHVuZGVybHlpbmcgYnVmZmVyIGJlZm9yZSB3ZSBncmV5CisgICAgICAgIC8vIGl0cyB2aWV3
LCBob3dldmVyOyBBcnJheUJ1ZmZlcnMgbWF5IGJlIHNoYXJlZCwgc28gdGhleSBuZWVkIHRvIGJl
IGdpdmVuIElEcywKKyAgICAgICAgLy8gYW5kIGFuIEFycmF5QnVmZmVyVmlldyBjYW5ub3QgYmUg
Y29uc3RydWN0ZWQgd2l0aG91dCBhIGNvcnJlc3BvbmRpbmcgQXJyYXlCdWZmZXIKKyAgICAgICAg
Ly8gKG9yIHdpdGhvdXQgYW4gYWRkaXRpb25hbCB0YWcgdGhhdCB3b3VsZCBhbGxvdyB1cyB0byBk
byB0d28tc3RhZ2UgY29uc3RydWN0aW9uCisgICAgICAgIC8vIGxpa2Ugd2UgZG8gZm9yIE9iamVj
dHMgYW5kIEFycmF5cykuCisgICAgICAgIGdyZXlPYmplY3Qob2JqZWN0KTsKKyAgICAgICAgcmV0
dXJuIDA7CisgICAgfQorCisgICAgdm9pZCB3cml0ZUFycmF5QnVmZmVyKHY4OjpIYW5kbGU8djg6
OlZhbHVlPiB2YWx1ZSkKKyAgICB7CisgICAgICAgIEFycmF5QnVmZmVyKiBhcnJheUJ1ZmZlciA9
IFY4QXJyYXlCdWZmZXI6OnRvTmF0aXZlKHZhbHVlLkFzPHY4OjpPYmplY3Q+KCkpOworICAgICAg
ICBpZiAoIWFycmF5QnVmZmVyKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBtX3dyaXRl
ci53cml0ZUFycmF5QnVmZmVyKCphcnJheUJ1ZmZlcik7CisgICAgfQorCiAgICAgc3RhdGljIFN0
YXRlQmFzZSogbmV3QXJyYXlTdGF0ZSh2ODo6SGFuZGxlPHY4OjpBcnJheT4gYXJyYXksIFN0YXRl
QmFzZSogbmV4dCkKICAgICB7CiAgICAgICAgIC8vIEZJWE1FOiB1c2UgcGxhaW4gQXJyYXkgc3Rh
dGUgd2hlbiB3ZSBjYW4gcXVpY2tseSBjaGVjayB0aGF0CkBAIC02NzYsMTcgKzk1Niw0MiBAQCBw
cml2YXRlOgogICAgICAgICByZXR1cm4gbmV3IE9iamVjdFN0YXRlKG9iamVjdCwgbmV4dCk7CiAg
ICAgfQogCisgICAgLy8gTWFya3Mgb2JqZWN0IGFzIGhhdmluZyBiZWVuIHZpc2l0ZWQgYnkgdGhl
IHNlcmlhbGl6ZXIgYW5kIGFzc2lnbnMgaXQgYSB1bmlxdWUgb2JqZWN0IElELgorICAgIC8vIEFu
IG9iamVjdCBtYXkgb25seSBiZSBncmV5ZWQgb25jZS4KKyAgICB2b2lkIGdyZXlPYmplY3QoY29u
c3Qgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiYgb2JqZWN0KQorICAgIHsKKyAgICAgICAgQVNTRVJU
KCFtX29iamVjdFBvb2wuY29udGFpbnMob2JqZWN0KSk7CisgICAgICAgIHVpbnQzMl90IG9iamVj
dElkID0gbV9uZXh0T2JqZWN0SWQrKzsKKyAgICAgICAgbV9vYmplY3RQb29sLnNldChvYmplY3Qs
IG9iamVjdElkKTsKKyAgICB9CisKICAgICBXcml0ZXImIG1fd3JpdGVyOwogICAgIHY4OjpUcnlD
YXRjaCYgbV90cnlDYXRjaDsKICAgICBpbnQgbV9kZXB0aDsKKyAgICBpbnQgbV9leGVjRGVwdGg7
CiAgICAgU3RhdHVzIG1fc3RhdHVzOworICAgIHR5cGVkZWYgVjhPYmplY3RNYXA8djg6Ok9iamVj
dCwgdWludDMyX3Q+IE9iamVjdFBvb2w7CisgICAgT2JqZWN0UG9vbCBtX29iamVjdFBvb2w7Cisg
ICAgdWludDMyX3QgbV9uZXh0T2JqZWN0SWQ7CiB9OwogCiBTZXJpYWxpemVyOjpTdGF0ZUJhc2Uq
IFNlcmlhbGl6ZXI6OmRvU2VyaWFsaXplKHY4OjpIYW5kbGU8djg6OlZhbHVlPiB2YWx1ZSwgU3Rh
dGVCYXNlKiBuZXh0KQogewotICAgIGlmICh2YWx1ZS5Jc0VtcHR5KCkpCisgICAgaWYgKG1fZXhl
Y0RlcHRoICsgKG5leHQgPyBuZXh0LT5leGVjRGVwdGgoKSA6IDApID4gMSkgeworICAgICAgICBt
X3dyaXRlci53cml0ZU51bGwoKTsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorICAgIG1fd3Jp
dGVyLndyaXRlQ2hlY2tSZWYobV9uZXh0T2JqZWN0SWQpOworICAgIHVpbnQzMl90IG9iamVjdElk
OworICAgIGlmICgodmFsdWUtPklzT2JqZWN0KCkgfHwgdmFsdWUtPklzRGF0ZSgpIHx8IHZhbHVl
LT5Jc1JlZ0V4cCgpKQorICAgICAgICAmJiBtX29iamVjdFBvb2wudHJ5R2V0KHZhbHVlLkFzPHY4
OjpPYmplY3Q+KCksICZvYmplY3RJZCkpIHsKKyAgICAgICAgLy8gTm90ZSB0aGF0IElzT2JqZWN0
KCkgYWxzbyBkZXRlY3RzIHdyYXBwZXJzIChlZywgaXQgd2lsbCBjYXRjaCB0aGUgdGhpbmdzCisg
ICAgICAgIC8vIHRoYXQgd2UgZ3JleSBhbmQgd3JpdGUgYmVsb3cpLgorICAgICAgICBBU1NFUlQo
IXZhbHVlLT5Jc1N0cmluZygpKTsKKyAgICAgICAgbV93cml0ZXIud3JpdGVPYmplY3RPZmZzZXQo
b2JqZWN0SWQpOworICAgIH0gZWxzZSBpZiAodmFsdWUuSXNFbXB0eSgpKQogICAgICAgICByZXR1
cm4gcmVwb3J0RmFpbHVyZShuZXh0KTsKLSAgICBpZiAodmFsdWUtPklzVW5kZWZpbmVkKCkpCisg
ICAgZWxzZSBpZiAodmFsdWUtPklzVW5kZWZpbmVkKCkpCiAgICAgICAgIG1fd3JpdGVyLndyaXRl
VW5kZWZpbmVkKCk7CiAgICAgZWxzZSBpZiAodmFsdWUtPklzTnVsbCgpKQogICAgICAgICBtX3dy
aXRlci53cml0ZU51bGwoKTsKQEAgLTY5OCwyNiArMTAwMyw0MyBAQCBTZXJpYWxpemVyOjpTdGF0
ZUJhc2UqIFNlcmlhbGl6ZXI6OmRvU2VyaWFsaXplKHY4OjpIYW5kbGU8djg6OlZhbHVlPiB2YWx1
ZSwgU3RhdAogICAgICAgICBtX3dyaXRlci53cml0ZUludDMyKHZhbHVlLT5JbnQzMlZhbHVlKCkp
OwogICAgIGVsc2UgaWYgKHZhbHVlLT5Jc1VpbnQzMigpKQogICAgICAgICBtX3dyaXRlci53cml0
ZVVpbnQzMih2YWx1ZS0+VWludDMyVmFsdWUoKSk7Ci0gICAgZWxzZSBpZiAodmFsdWUtPklzRGF0
ZSgpKQotICAgICAgICBtX3dyaXRlci53cml0ZURhdGUodmFsdWUtPk51bWJlclZhbHVlKCkpOwog
ICAgIGVsc2UgaWYgKHZhbHVlLT5Jc051bWJlcigpKQogICAgICAgICBtX3dyaXRlci53cml0ZU51
bWJlcih2YWx1ZS5Bczx2ODo6TnVtYmVyPigpLT5WYWx1ZSgpKTsKKyAgICBlbHNlIGlmIChWOEFy
cmF5QnVmZmVyVmlldzo6SGFzSW5zdGFuY2UodmFsdWUpKQorICAgICAgICByZXR1cm4gd3JpdGVB
bmRHcmV5QXJyYXlCdWZmZXJWaWV3KHZhbHVlLkFzPHY4OjpPYmplY3Q+KCksIG5leHQpOwogICAg
IGVsc2UgaWYgKHZhbHVlLT5Jc1N0cmluZygpKQogICAgICAgICB3cml0ZVN0cmluZyh2YWx1ZSk7
Ci0gICAgZWxzZSBpZiAodmFsdWUtPklzQXJyYXkoKSkKLSAgICAgICAgcmV0dXJuIHB1c2gobmV3
QXJyYXlTdGF0ZSh2YWx1ZS5Bczx2ODo6QXJyYXk+KCksIG5leHQpKTsKLSAgICBlbHNlIGlmIChW
OEZpbGU6Okhhc0luc3RhbmNlKHZhbHVlKSkKLSAgICAgICAgd3JpdGVGaWxlKHZhbHVlKTsKLSAg
ICBlbHNlIGlmIChWOEJsb2I6Okhhc0luc3RhbmNlKHZhbHVlKSkKLSAgICAgICAgd3JpdGVCbG9i
KHZhbHVlKTsKLSAgICBlbHNlIGlmIChWOEZpbGVMaXN0OjpIYXNJbnN0YW5jZSh2YWx1ZSkpCi0g
ICAgICAgIHdyaXRlRmlsZUxpc3QodmFsdWUpOwotICAgIGVsc2UgaWYgKFY4SW1hZ2VEYXRhOjpI
YXNJbnN0YW5jZSh2YWx1ZSkpCi0gICAgICAgIHdyaXRlSW1hZ2VEYXRhKHZhbHVlKTsKLSAgICBl
bHNlIGlmICh2YWx1ZS0+SXNSZWdFeHAoKSkKLSAgICAgICAgd3JpdGVSZWdFeHAodmFsdWUpOwot
ICAgIGVsc2UgaWYgKHZhbHVlLT5Jc09iamVjdCgpKQotICAgICAgICByZXR1cm4gcHVzaChuZXdP
YmplY3RTdGF0ZSh2YWx1ZS5Bczx2ODo6T2JqZWN0PigpLCBuZXh0KSk7CisgICAgZWxzZSB7Cisg
ICAgICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4ganNPYmplY3QgPSB2YWx1ZS5Bczx2ODo6T2Jq
ZWN0PigpOworICAgICAgICBpZiAoanNPYmplY3QuSXNFbXB0eSgpKQorICAgICAgICAgICAgcmV0
dXJuIGhhbmRsZUVycm9yKERhdGFDbG9uZUVycm9yLCBuZXh0KTsKKyAgICAgICAgZ3JleU9iamVj
dChqc09iamVjdCk7CisgICAgICAgIGlmICh2YWx1ZS0+SXNEYXRlKCkpCisgICAgICAgICAgICBt
X3dyaXRlci53cml0ZURhdGUodmFsdWUtPk51bWJlclZhbHVlKCkpOworICAgICAgICBlbHNlIGlm
ICh2YWx1ZS0+SXNBcnJheSgpKSB7CisgICAgICAgICAgICBtX3dyaXRlci53cml0ZUdlbmVyYXRl
RnJlc2hBcnJheSh2YWx1ZS5Bczx2ODo6QXJyYXk+KCktPkxlbmd0aCgpKTsKKyAgICAgICAgICAg
IHJldHVybiBwdXNoKG5ld0FycmF5U3RhdGUodmFsdWUuQXM8djg6OkFycmF5PigpLCBuZXh0KSk7
CisgICAgICAgIH0gZWxzZSBpZiAoVjhGaWxlOjpIYXNJbnN0YW5jZSh2YWx1ZSkpCisgICAgICAg
ICAgICB3cml0ZUZpbGUodmFsdWUpOworICAgICAgICBlbHNlIGlmIChWOEJsb2I6Okhhc0luc3Rh
bmNlKHZhbHVlKSkKKyAgICAgICAgICAgIHdyaXRlQmxvYih2YWx1ZSk7CisgICAgICAgIGVsc2Ug
aWYgKFY4RmlsZUxpc3Q6Okhhc0luc3RhbmNlKHZhbHVlKSkKKyAgICAgICAgICAgIHdyaXRlRmls
ZUxpc3QodmFsdWUpOworICAgICAgICBlbHNlIGlmIChWOEltYWdlRGF0YTo6SGFzSW5zdGFuY2Uo
dmFsdWUpKQorICAgICAgICAgICAgd3JpdGVJbWFnZURhdGEodmFsdWUpOworICAgICAgICBlbHNl
IGlmICh2YWx1ZS0+SXNSZWdFeHAoKSkKKyAgICAgICAgICAgIHdyaXRlUmVnRXhwKHZhbHVlKTsK
KyAgICAgICAgZWxzZSBpZiAoVjhBcnJheUJ1ZmZlcjo6SGFzSW5zdGFuY2UodmFsdWUpKQorICAg
ICAgICAgICAgd3JpdGVBcnJheUJ1ZmZlcih2YWx1ZSk7CisgICAgICAgIGVsc2UgaWYgKHZhbHVl
LT5Jc09iamVjdCgpKSB7CisgICAgICAgICAgICAvLyBGSVhNRTogV2UgbmVlZCB0byBjaGVjayBp
ZiBqc09iamVjdCBpcyBhICduYXRpdmUgRXJyb3InIGFuZCBpZiBzbyB0aHJvdyBhIERhdGFDbG9u
ZUVycm9yLgorICAgICAgICAgICAgaWYgKGlzSG9zdE9iamVjdChqc09iamVjdCkgfHwganNPYmpl
Y3QtPklzQ2FsbGFibGUoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gaGFuZGxlRXJyb3IoRGF0
YUNsb25lRXJyb3IsIG5leHQpOworICAgICAgICAgICAgbV93cml0ZXIud3JpdGVHZW5lcmF0ZUZy
ZXNoT2JqZWN0KCk7CisgICAgICAgICAgICByZXR1cm4gcHVzaChuZXdPYmplY3RTdGF0ZShqc09i
amVjdCwgbmV4dCkpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIHJldHVybiBoYW5kbGVF
cnJvcihEYXRhQ2xvbmVFcnJvciwgbmV4dCk7CisgICAgfQogICAgIHJldHVybiAwOwogfQogCkBA
IC03MjYsOSArMTA0OCwxNSBAQCBjbGFzcyBDb21wb3NpdGVDcmVhdG9yIHsKIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIH5Db21wb3NpdGVDcmVhdG9yKCkgeyB9CiAKLSAgICB2aXJ0dWFsIGJvb2wgY3Jl
YXRlQXJyYXkodWludDMyX3QgbGVuZ3RoLCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4qIHZhbHVlKSA9
IDA7Ci0gICAgdmlydHVhbCBib29sIGNyZWF0ZU9iamVjdCh1aW50MzJfdCBudW1Qcm9wZXJ0aWVz
LCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4qIHZhbHVlKSA9IDA7Ci0gICAgdmlydHVhbCBib29sIGNy
ZWF0ZVNwYXJzZUFycmF5KHVpbnQzMl90IG51bVByb3BlcnRpZXMsIHVpbnQzMl90IGxlbmd0aCwg
djg6OkhhbmRsZTx2ODo6VmFsdWU+KiB2YWx1ZSkgPSAwOworICAgIHZpcnR1YWwgYm9vbCBjb25z
dW1lVG9wT2ZTdGFjayh2ODo6SGFuZGxlPHY4OjpWYWx1ZT4qKSA9IDA7CisgICAgdmlydHVhbCB1
aW50MzJfdCBvYmplY3RSZWZlcmVuY2VDb3VudCgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcHVz
aE9iamVjdFJlZmVyZW5jZShjb25zdCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4mKSA9IDA7CisgICAg
dmlydHVhbCBib29sIHRyeUdldE9iamVjdEZyb21PYmplY3RSZWZlcmVuY2UodWludDMyX3QgcmVm
LCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4qKSA9IDA7CisgICAgdmlydHVhbCBib29sIG5ld0FycmF5
KHVpbnQzMl90IGxlbmd0aCkgPSAwOworICAgIHZpcnR1YWwgYm9vbCBuZXdPYmplY3QoKSA9IDA7
CisgICAgdmlydHVhbCBib29sIGNvbXBsZXRlQXJyYXkodWludDMyX3QgbGVuZ3RoLCB2ODo6SGFu
ZGxlPHY4OjpWYWx1ZT4qKSA9IDA7CisgICAgdmlydHVhbCBib29sIGNvbXBsZXRlT2JqZWN0KHVp
bnQzMl90IG51bVByb3BlcnRpZXMsIHY4OjpIYW5kbGU8djg6OlZhbHVlPiopID0gMDsKKyAgICB2
aXJ0dWFsIGJvb2wgY29tcGxldGVTcGFyc2VBcnJheSh1aW50MzJfdCBudW1Qcm9wZXJ0aWVzLCB1
aW50MzJfdCBsZW5ndGgsIHY4OjpIYW5kbGU8djg6OlZhbHVlPiopID0gMDsKIH07CiAKIC8vIFJl
YWRlciBpcyByZXNwb25zaWJsZSBmb3IgZGVzZXJpYWxpemluZyBwcmltaXRpdmUgdHlwZXMgYW5k
CkBAIC03MzksNiArMTA2Nyw3IEBAIHB1YmxpYzoKICAgICAgICAgOiBtX2J1ZmZlcihidWZmZXIp
CiAgICAgICAgICwgbV9sZW5ndGgobGVuZ3RoKQogICAgICAgICAsIG1fcG9zaXRpb24oMCkKKyAg
ICAgICAgLCBtX3ZlcnNpb24oMCkKICAgICB7CiAgICAgICAgIEFTU0VSVChsZW5ndGggPj0gMCk7
CiAgICAgfQpAQCAtNzUxLDYgKzEwODAsMTkgQEAgcHVibGljOgogICAgICAgICBpZiAoIXJlYWRU
YWcoJnRhZykpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIHN3aXRjaCAodGFn
KSB7CisgICAgICAgIGNhc2UgQ2hlY2tSZWZUYWc6IHsKKyAgICAgICAgICAgIGlmIChtX3ZlcnNp
b24gPD0gMCkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB1aW50
MzJfdCByZWZUYWJsZVNpemU7CisgICAgICAgICAgICBpZiAoIWRvUmVhZFVpbnQzMigmcmVmVGFi
bGVTaXplKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAvLyBJ
ZiB0aGlzIHRlc3QgZmFpbHMsIHRoZW4gdGhlIHNlcmlhbGl6ZXIgYW5kIGRlc2VyaWFsaXplciBk
aXNhZ3JlZSBhYm91dCB0aGUgYXNzaWdubWVudAorICAgICAgICAgICAgLy8gb2Ygb2JqZWN0IElE
cy4gT24gdGhlIGRlc2VyaWFsaXphdGlvbiBzaWRlLCB0aGlzIG1lYW5zIHRoZXJlIGFyZSB0b28g
bWFueSBvciB0b28gZmV3CisgICAgICAgICAgICAvLyBjYWxscyB0byBwdXNoT2JqZWN0UmVmZXJl
bmNlLgorICAgICAgICAgICAgaWYgKHJlZlRhYmxlU2l6ZSAhPSBjcmVhdG9yLm9iamVjdFJlZmVy
ZW5jZUNvdW50KCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAg
cmV0dXJuIHRydWU7CisgICAgICAgIH0KICAgICAgICAgY2FzZSBJbnZhbGlkVGFnOgogICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICBjYXNlIFBhZGRpbmdUYWc6CkBAIC03ODIsNiAr
MTEyNCw3IEBAIHB1YmxpYzoKICAgICAgICAgY2FzZSBEYXRlVGFnOgogICAgICAgICAgICAgaWYg
KCFyZWFkRGF0ZSh2YWx1ZSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAg
ICAgICAgY3JlYXRvci5wdXNoT2JqZWN0UmVmZXJlbmNlKCp2YWx1ZSk7CiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgY2FzZSBOdW1iZXJUYWc6CiAgICAgICAgICAgICBpZiAoIXJlYWROdW1i
ZXIodmFsdWUpKQpAQCAtNzkwLDM2ICsxMTMzLDQxIEBAIHB1YmxpYzoKICAgICAgICAgY2FzZSBC
bG9iVGFnOgogICAgICAgICAgICAgaWYgKCFyZWFkQmxvYih2YWx1ZSkpCiAgICAgICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgY3JlYXRvci5wdXNoT2JqZWN0UmVmZXJlbmNl
KCp2YWx1ZSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBGaWxlVGFnOgogICAg
ICAgICAgICAgaWYgKCFyZWFkRmlsZSh2YWx1ZSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgICAgICAgICAgY3JlYXRvci5wdXNoT2JqZWN0UmVmZXJlbmNlKCp2YWx1ZSk7CiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBGaWxlTGlzdFRhZzoKICAgICAgICAgICAg
IGlmICghcmVhZEZpbGVMaXN0KHZhbHVlKSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgICAgICAgICBjcmVhdG9yLnB1c2hPYmplY3RSZWZlcmVuY2UoKnZhbHVlKTsKICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEltYWdlRGF0YVRhZzoKICAgICAgICAgICAgIGlm
ICghcmVhZEltYWdlRGF0YSh2YWx1ZSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgICAgICAgICAgY3JlYXRvci5wdXNoT2JqZWN0UmVmZXJlbmNlKCp2YWx1ZSk7CiAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgY2FzZSBBcnJheVRhZzogewogICAgICAgICAgICAgdWludDMy
X3QgbGVuZ3RoOwogICAgICAgICAgICAgaWYgKCFkb1JlYWRVaW50MzIoJmxlbmd0aCkpCiAgICAg
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgaWYgKCFjcmVhdG9yLmNyZWF0
ZUFycmF5KGxlbmd0aCwgdmFsdWUpKQorICAgICAgICAgICAgaWYgKCFjcmVhdG9yLmNvbXBsZXRl
QXJyYXkobGVuZ3RoLCB2YWx1ZSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBSZWdFeHBUYWc6CiAgICAg
ICAgICAgICBpZiAoIXJlYWRSZWdFeHAodmFsdWUpKQogICAgICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICAgICAgICAgIGNyZWF0b3IucHVzaE9iamVjdFJlZmVyZW5jZSgqdmFsdWUpOwog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgT2JqZWN0VGFnOiB7CiAgICAgICAgICAg
ICB1aW50MzJfdCBudW1Qcm9wZXJ0aWVzOwogICAgICAgICAgICAgaWYgKCFkb1JlYWRVaW50MzIo
Jm51bVByb3BlcnRpZXMpKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAg
ICAgIGlmICghY3JlYXRvci5jcmVhdGVPYmplY3QobnVtUHJvcGVydGllcywgdmFsdWUpKQorICAg
ICAgICAgICAgaWYgKCFjcmVhdG9yLmNvbXBsZXRlT2JqZWN0KG51bVByb3BlcnRpZXMsIHZhbHVl
KSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgfQpAQCAtODMwLDcgKzExNzgsNTAgQEAgcHVibGljOgogICAgICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICAgICAgICAgIGlmICghZG9SZWFkVWludDMyKCZsZW5ndGgpKQogICAg
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAgIGlmICghY3JlYXRvci5jcmVh
dGVTcGFyc2VBcnJheShudW1Qcm9wZXJ0aWVzLCBsZW5ndGgsIHZhbHVlKSkKKyAgICAgICAgICAg
IGlmICghY3JlYXRvci5jb21wbGV0ZVNwYXJzZUFycmF5KG51bVByb3BlcnRpZXMsIGxlbmd0aCwg
dmFsdWUpKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICB9CisgICAgICAgIGNhc2UgQXJyYXlCdWZmZXJWaWV3VGFnOiB7CisgICAgICAg
ICAgICBpZiAobV92ZXJzaW9uIDw9IDApCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgICAgICAgICAgaWYgKCFyZWFkQXJyYXlCdWZmZXJWaWV3KHZhbHVlLCBjcmVhdG9yKSkKKyAg
ICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBjcmVhdG9yLnB1c2hPYmpl
Y3RSZWZlcmVuY2UoKnZhbHVlKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAg
ICAgIGNhc2UgQXJyYXlCdWZmZXJUYWc6IHsKKyAgICAgICAgICAgIGlmIChtX3ZlcnNpb24gPD0g
MCkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBpZiAoIXJlYWRB
cnJheUJ1ZmZlcih2YWx1ZSkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAg
ICAgICAgY3JlYXRvci5wdXNoT2JqZWN0UmVmZXJlbmNlKCp2YWx1ZSk7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgfQorICAgICAgICBjYXNlIEdlbmVyYXRlRnJlc2hPYmplY3RUYWc6IHsK
KyAgICAgICAgICAgIGlmIChtX3ZlcnNpb24gPD0gMCkKKyAgICAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgICAgICAgICBpZiAoIWNyZWF0b3IubmV3T2JqZWN0KCkpCisgICAgICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0K
KyAgICAgICAgY2FzZSBHZW5lcmF0ZUZyZXNoQXJyYXlUYWc6IHsKKyAgICAgICAgICAgIGlmICht
X3ZlcnNpb24gPD0gMCkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAg
ICB1aW50MzJfdCBsZW5ndGg7CisgICAgICAgICAgICBpZiAoIWRvUmVhZFVpbnQzMigmbGVuZ3Ro
KSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBpZiAoIWNyZWF0
b3IubmV3QXJyYXkobGVuZ3RoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBjYXNlIE9iamVjdFJlZmVy
ZW5jZVRhZzogeworICAgICAgICAgICAgaWYgKG1fdmVyc2lvbiA8PSAwKQorICAgICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIHVpbnQzMl90IHJlZjsKKyAgICAgICAgICAg
IGlmICghZG9SZWFkVWludDMyKCZyZWYpKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICAgICAgICAgIGlmICghY3JlYXRvci50cnlHZXRPYmplY3RGcm9tT2JqZWN0UmVmZXJlbmNl
KHJlZiwgdmFsdWUpKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICB9CkBAIC04NDAsNiArMTIzMSwzMCBAQCBwdWJsaWM6CiAgICAgICAg
IHJldHVybiAhdmFsdWUtPklzRW1wdHkoKTsKICAgICB9CiAKKyAgICBib29sIHJlYWRWZXJzaW9u
KHVpbnQzMl90JiB2ZXJzaW9uKQorICAgIHsKKyAgICAgICAgU2VyaWFsaXphdGlvblRhZyB0YWc7
CisgICAgICAgIGlmICghcmVhZFRhZygmdGFnKSkgeworICAgICAgICAgICAgLy8gVGhpcyBpcyBh
IG51bGxhcnkgYnVmZmVyLiBXZSdyZSBzdGlsbCB2ZXJzaW9uIDAuCisgICAgICAgICAgICB2ZXJz
aW9uID0gMDsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIGlm
ICh0YWcgIT0gVmVyc2lvblRhZykgeworICAgICAgICAgICAgLy8gVmVyc2lvbnMgb2YgdGhlIGZv
cm1hdCBwYXN0IDAgc3RhcnQgd2l0aCB0aGUgdmVyc2lvbiB0YWcuCisgICAgICAgICAgICB2ZXJz
aW9uID0gMDsKKyAgICAgICAgICAgIC8vIFB1dCBiYWNrIHRoZSB0YWcuCisgICAgICAgICAgICB1
bmRvUmVhZFRhZygpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAg
ICAgLy8gVmVyc2lvbi1iZWFyaW5nIG1lc3NhZ2VzIGFyZSBvYmxpZ2F0ZWQgdG8gZmluaXNoIHRo
ZSB2ZXJzaW9uIHRhZy4KKyAgICAgICAgcmV0dXJuIGRvUmVhZFVpbnQzMigmdmVyc2lvbik7Cisg
ICAgfQorCisgICAgdm9pZCBzZXRWZXJzaW9uKHVpbnQzMl90IHZlcnNpb24pCisgICAgeworICAg
ICAgICBtX3ZlcnNpb24gPSB2ZXJzaW9uOworICAgIH0KKwogcHJpdmF0ZToKICAgICBib29sIHJl
YWRUYWcoU2VyaWFsaXphdGlvblRhZyogdGFnKQogICAgIHsKQEAgLTg0OSw2ICsxMjY0LDIwIEBA
IHByaXZhdGU6CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAorICAgIHZvaWQgdW5kb1Jl
YWRUYWcoKQorICAgIHsKKyAgICAgICAgaWYgKG1fcG9zaXRpb24gPiAwKQorICAgICAgICAgICAg
LS1tX3Bvc2l0aW9uOworICAgIH0KKworICAgIGJvb2wgcmVhZEFycmF5QnVmZmVyVmlld1N1YlRh
ZyhBcnJheUJ1ZmZlclZpZXdTdWJUYWcqIHRhZykKKyAgICB7CisgICAgICAgIGlmIChtX3Bvc2l0
aW9uID49IG1fbGVuZ3RoKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAqdGFn
ID0gc3RhdGljX2Nhc3Q8QXJyYXlCdWZmZXJWaWV3U3ViVGFnPihtX2J1ZmZlclttX3Bvc2l0aW9u
KytdKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCiAgICAgYm9vbCByZWFkU3RyaW5n
KHY4OjpIYW5kbGU8djg6OlZhbHVlPiogdmFsdWUpCiAgICAgewogICAgICAgICB1aW50MzJfdCBs
ZW5ndGg7CkBAIC05MzIsNiArMTM2MSwxMDcgQEAgcHJpdmF0ZToKICAgICAgICAgcmV0dXJuIHRy
dWU7CiAgICAgfQogCisgICAgUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4gZG9SZWFkQXJyYXlCdWZm
ZXIoKQorICAgIHsKKyAgICAgICAgdWludDMyX3QgYnl0ZUxlbmd0aDsKKyAgICAgICAgaWYgKCFk
b1JlYWRVaW50MzIoJmJ5dGVMZW5ndGgpKQorICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAg
IGlmIChtX3Bvc2l0aW9uICsgYnl0ZUxlbmd0aCA+IG1fbGVuZ3RoKQorICAgICAgICAgICAgcmV0
dXJuIDA7CisgICAgICAgIGNvbnN0IHZvaWQqIGJ1ZmZlclN0YXJ0ID0gbV9idWZmZXIgKyBtX3Bv
c2l0aW9uOworICAgICAgICBSZWZQdHI8QXJyYXlCdWZmZXI+IGFycmF5QnVmZmVyID0gQXJyYXlC
dWZmZXI6OmNyZWF0ZShidWZmZXJTdGFydCwgYnl0ZUxlbmd0aCk7CisgICAgICAgIG1fcG9zaXRp
b24gKz0gYnl0ZUxlbmd0aDsKKyAgICAgICAgcmV0dXJuIGFycmF5QnVmZmVyLnJlbGVhc2UoKTsK
KyAgICB9CisKKyAgICBib29sIHJlYWRBcnJheUJ1ZmZlcih2ODo6SGFuZGxlPHY4OjpWYWx1ZT4q
IHZhbHVlKQorICAgIHsKKyAgICAgICAgUmVmUHRyPEFycmF5QnVmZmVyPiBhcnJheUJ1ZmZlciA9
IGRvUmVhZEFycmF5QnVmZmVyKCk7CisgICAgICAgIGlmICghYXJyYXlCdWZmZXIpCisgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICp2YWx1ZSA9IHRvVjgoYXJyYXlCdWZmZXIucmVs
ZWFzZSgpKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgYm9vbCByZWFkQXJy
YXlCdWZmZXJWaWV3KHY4OjpIYW5kbGU8djg6OlZhbHVlPiogdmFsdWUsIENvbXBvc2l0ZUNyZWF0
b3ImIGNyZWF0b3IpCisgICAgeworICAgICAgICBBcnJheUJ1ZmZlclZpZXdTdWJUYWcgc3ViVGFn
OworICAgICAgICB1aW50MzJfdCBieXRlT2Zmc2V0OworICAgICAgICB1aW50MzJfdCBieXRlTGVu
Z3RoOworICAgICAgICBSZWZQdHI8QXJyYXlCdWZmZXI+IGFycmF5QnVmZmVyOworICAgICAgICB2
ODo6SGFuZGxlPHY4OjpWYWx1ZT4gYXJyYXlCdWZmZXJWOFZhbHVlOworICAgICAgICBpZiAoIXJl
YWRBcnJheUJ1ZmZlclZpZXdTdWJUYWcoJnN1YlRhZykpCisgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgICAgIGlmICghZG9SZWFkVWludDMyKCZieXRlT2Zmc2V0KSkKKyAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYgKCFkb1JlYWRVaW50MzIoJmJ5dGVMZW5ndGgpKQor
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBpZiAoIWNyZWF0b3IuY29uc3VtZVRv
cE9mU3RhY2soJmFycmF5QnVmZmVyVjhWYWx1ZSkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgICAgIGFycmF5QnVmZmVyID0gVjhBcnJheUJ1ZmZlcjo6dG9OYXRpdmUoYXJyYXlCdWZm
ZXJWOFZhbHVlLkFzPHY4OjpPYmplY3Q+KCkpOworICAgICAgICBpZiAoIWFycmF5QnVmZmVyKQor
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBzd2l0Y2ggKHN1YlRhZykgeworICAg
ICAgICBjYXNlIEJ5dGVBcnJheVRhZzoKKyAgICAgICAgICAgICp2YWx1ZSA9IHRvVjgoSW50OEFy
cmF5OjpjcmVhdGUoYXJyYXlCdWZmZXIucmVsZWFzZSgpLCBieXRlT2Zmc2V0LCBieXRlTGVuZ3Ro
KSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBVbnNpZ25lZEJ5dGVBcnJheVRh
ZzoKKyAgICAgICAgICAgICp2YWx1ZSA9IHRvVjgoVWludDhBcnJheTo6Y3JlYXRlKGFycmF5QnVm
ZmVyLnJlbGVhc2UoKSwgYnl0ZU9mZnNldCwgYnl0ZUxlbmd0aCkpOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgU2hvcnRBcnJheVRhZzogeworICAgICAgICAgICAgdWludDMyX3Qg
c2hvcnRMZW5ndGggPSBieXRlTGVuZ3RoIC8gc2l6ZW9mKGludDE2X3QpOworICAgICAgICAgICAg
aWYgKHNob3J0TGVuZ3RoICogc2l6ZW9mKGludDE2X3QpICE9IGJ5dGVMZW5ndGgpCisgICAgICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgKnZhbHVlID0gdG9WOChJbnQxNkFy
cmF5OjpjcmVhdGUoYXJyYXlCdWZmZXIucmVsZWFzZSgpLCBieXRlT2Zmc2V0LCBzaG9ydExlbmd0
aCkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgY2FzZSBVbnNpZ25l
ZFNob3J0QXJyYXlUYWc6IHsKKyAgICAgICAgICAgIHVpbnQzMl90IHNob3J0TGVuZ3RoID0gYnl0
ZUxlbmd0aCAvIHNpemVvZih1aW50MTZfdCk7CisgICAgICAgICAgICBpZiAoc2hvcnRMZW5ndGgg
KiBzaXplb2YodWludDE2X3QpICE9IGJ5dGVMZW5ndGgpCisgICAgICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgICAgICAgICAgKnZhbHVlID0gdG9WOChVaW50MTZBcnJheTo6Y3JlYXRlKGFy
cmF5QnVmZmVyLnJlbGVhc2UoKSwgYnl0ZU9mZnNldCwgc2hvcnRMZW5ndGgpKTsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGNhc2UgSW50QXJyYXlUYWc6IHsKKyAgICAg
ICAgICAgIHVpbnQzMl90IGludExlbmd0aCA9IGJ5dGVMZW5ndGggLyBzaXplb2YoaW50MzJfdCk7
CisgICAgICAgICAgICBpZiAoaW50TGVuZ3RoICogc2l6ZW9mKGludDMyX3QpICE9IGJ5dGVMZW5n
dGgpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgKnZhbHVlID0g
dG9WOChJbnQzMkFycmF5OjpjcmVhdGUoYXJyYXlCdWZmZXIucmVsZWFzZSgpLCBieXRlT2Zmc2V0
LCBpbnRMZW5ndGgpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGNh
c2UgVW5zaWduZWRJbnRBcnJheVRhZzogeworICAgICAgICAgICAgdWludDMyX3QgaW50TGVuZ3Ro
ID0gYnl0ZUxlbmd0aCAvIHNpemVvZih1aW50MzJfdCk7CisgICAgICAgICAgICBpZiAoaW50TGVu
Z3RoICogc2l6ZW9mKHVpbnQzMl90KSAhPSBieXRlTGVuZ3RoKQorICAgICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICAgICAgICAgICp2YWx1ZSA9IHRvVjgoVWludDMyQXJyYXk6OmNyZWF0
ZShhcnJheUJ1ZmZlci5yZWxlYXNlKCksIGJ5dGVPZmZzZXQsIGludExlbmd0aCkpOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgY2FzZSBGbG9hdEFycmF5VGFnOiB7Cisg
ICAgICAgICAgICB1aW50MzJfdCBmbG9hdExlbmd0aCA9IGJ5dGVMZW5ndGggLyBzaXplb2YoZmxv
YXQpOworICAgICAgICAgICAgaWYgKGZsb2F0TGVuZ3RoICogc2l6ZW9mKGZsb2F0KSAhPSBieXRl
TGVuZ3RoKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICp2YWx1
ZSA9IHRvVjgoRmxvYXQzMkFycmF5OjpjcmVhdGUoYXJyYXlCdWZmZXIucmVsZWFzZSgpLCBieXRl
T2Zmc2V0LCBmbG9hdExlbmd0aCkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAg
ICAgICAgY2FzZSBEb3VibGVBcnJheVRhZzogeworICAgICAgICAgICAgdWludDMyX3QgZmxvYXRM
ZW5ndGggPSBieXRlTGVuZ3RoIC8gc2l6ZW9mKGRvdWJsZSk7CisgICAgICAgICAgICBpZiAoZmxv
YXRMZW5ndGggKiBzaXplb2YoZG91YmxlKSAhPSBieXRlTGVuZ3RoKQorICAgICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICp2YWx1ZSA9IHRvVjgoRmxvYXQ2NEFycmF5Ojpj
cmVhdGUoYXJyYXlCdWZmZXIucmVsZWFzZSgpLCBieXRlT2Zmc2V0LCBmbG9hdExlbmd0aCkpOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgY2FzZSBEYXRhVmlld1RhZzoK
KyAgICAgICAgICAgICp2YWx1ZSA9IHRvVjgoRGF0YVZpZXc6OmNyZWF0ZShhcnJheUJ1ZmZlci5y
ZWxlYXNlKCksIGJ5dGVPZmZzZXQsIGJ5dGVMZW5ndGgpKTsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9Cisg
ICAgICAgIC8vIFRoZSB2YXJpb3VzICpBcnJheTo6Y3JlYXRlKCkgbWV0aG9kcyB3aWxsIHJldHVy
biBudWxsIGlmIHRoZSByYW5nZSB0aGUgdmlldyBleHBlY3RzIGlzCisgICAgICAgIC8vIG1pc21h
dGNoZWQgd2l0aCB0aGUgcmFuZ2UgdGhlIGJ1ZmZlciBjYW4gcHJvdmlkZSBvciBpZiB0aGUgYnl0
ZSBvZmZzZXQgaXMgbm90IGFsaWduZWQKKyAgICAgICAgLy8gdG8gdGhlIHNpemUgb2YgdGhlIGVs
ZW1lbnQgdHlwZS4KKyAgICAgICAgcmV0dXJuICF2YWx1ZS0+SXNFbXB0eSgpOworICAgIH0KKwog
ICAgIGJvb2wgcmVhZFJlZ0V4cCh2ODo6SGFuZGxlPHY4OjpWYWx1ZT4qIHZhbHVlKQogICAgIHsK
ICAgICAgICAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHBhdHRlcm47CkBAIC0xMDM3LDMyICsxNTY3
LDYzIEBAIHByaXZhdGU6CiAgICAgY29uc3QgdWludDhfdCogbV9idWZmZXI7CiAgICAgY29uc3Qg
dW5zaWduZWQgbV9sZW5ndGg7CiAgICAgdW5zaWduZWQgbV9wb3NpdGlvbjsKKyAgICB1aW50MzJf
dCBtX3ZlcnNpb247CiB9OwogCiBjbGFzcyBEZXNlcmlhbGl6ZXIgOiBwdWJsaWMgQ29tcG9zaXRl
Q3JlYXRvciB7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgRGVzZXJpYWxpemVyKFJlYWRlciYgcmVh
ZGVyKQogICAgICAgICA6IG1fcmVhZGVyKHJlYWRlcikKKyAgICAgICAgLCBtX3ZlcnNpb24oMCkK
ICAgICB7CiAgICAgfQogCiAgICAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGRlc2VyaWFsaXplKCkK
ICAgICB7CisgICAgICAgIGlmICghbV9yZWFkZXIucmVhZFZlcnNpb24obV92ZXJzaW9uKSB8fCBt
X3ZlcnNpb24gPiB3aXJlRm9ybWF0VmVyc2lvbikKKyAgICAgICAgICAgIHJldHVybiB2ODo6TnVs
bCgpOworICAgICAgICBtX3JlYWRlci5zZXRWZXJzaW9uKG1fdmVyc2lvbik7CiAgICAgICAgIHY4
OjpIYW5kbGVTY29wZSBzY29wZTsKICAgICAgICAgd2hpbGUgKCFtX3JlYWRlci5pc0VvZigpKSB7
CiAgICAgICAgICAgICBpZiAoIWRvRGVzZXJpYWxpemUoKSkKICAgICAgICAgICAgICAgICByZXR1
cm4gdjg6Ok51bGwoKTsKICAgICAgICAgfQotICAgICAgICBpZiAoc3RhY2tEZXB0aCgpICE9IDEp
CisgICAgICAgIGlmIChzdGFja0RlcHRoKCkgIT0gMSB8fCBtX29iamVjdFJlZmVyZW5jZVN0YWNr
LnNpemUoKSkKICAgICAgICAgICAgIHJldHVybiB2ODo6TnVsbCgpOwotICAgICAgICByZXR1cm4g
c2NvcGUuQ2xvc2UoZWxlbWVudCgwKSk7CisgICAgICAgIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBy
ZXN1bHQgPSBzY29wZS5DbG9zZShlbGVtZW50KDApKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsK
KyAgICB9CisKKyAgICB2aXJ0dWFsIGJvb2wgbmV3QXJyYXkodWludDMyX3QgbGVuZ3RoKQorICAg
IHsKKyAgICAgICAgdjg6OkxvY2FsPHY4OjpBcnJheT4gYXJyYXkgPSB2ODo6QXJyYXk6Ok5ldyhs
ZW5ndGgpOworICAgICAgICBpZiAoYXJyYXkuSXNFbXB0eSgpKQorICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgICAgICBvcGVuQ29tcG9zaXRlKGFycmF5KTsKKyAgICAgICAgcmV0dXJuIHRy
dWU7CisgICAgfQorCisgICAgdmlydHVhbCBib29sIGNvbnN1bWVUb3BPZlN0YWNrKHY4OjpIYW5k
bGU8djg6OlZhbHVlPiogb2JqZWN0KQorICAgIHsKKyAgICAgICAgaWYgKHN0YWNrRGVwdGgoKSA8
IDEpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICpvYmplY3QgPSBlbGVtZW50
KHN0YWNrRGVwdGgoKSAtIDEpOworICAgICAgICBwb3AoMSk7CisgICAgICAgIHJldHVybiB0cnVl
OwogICAgIH0KIAotICAgIHZpcnR1YWwgYm9vbCBjcmVhdGVBcnJheSh1aW50MzJfdCBsZW5ndGgs
IHY4OjpIYW5kbGU8djg6OlZhbHVlPiogdmFsdWUpCisgICAgdmlydHVhbCBib29sIGNvbXBsZXRl
QXJyYXkodWludDMyX3QgbGVuZ3RoLCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4qIHZhbHVlKQogICAg
IHsKICAgICAgICAgaWYgKGxlbmd0aCA+IHN0YWNrRGVwdGgoKSkKICAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKLSAgICAgICAgdjg6OkxvY2FsPHY4OjpBcnJheT4gYXJyYXkgPSB2ODo6QXJyYXk6
Ok5ldyhsZW5ndGgpOworICAgICAgICB2ODo6TG9jYWw8djg6OkFycmF5PiBhcnJheTsKKyAgICAg
ICAgaWYgKG1fdmVyc2lvbiA+IDApIHsKKyAgICAgICAgICAgIHY4OjpMb2NhbDx2ODo6VmFsdWU+
IGNvbXBvc2l0ZTsKKyAgICAgICAgICAgIGlmICghY2xvc2VDb21wb3NpdGUoJmNvbXBvc2l0ZSkp
CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgYXJyYXkgPSBjb21w
b3NpdGUuQXM8djg6OkFycmF5PigpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIGFycmF5
ID0gdjg6OkFycmF5OjpOZXcobGVuZ3RoKTsKICAgICAgICAgaWYgKGFycmF5LklzRW1wdHkoKSkK
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgY29uc3QgaW50IGRlcHRoID0gc3Rh
Y2tEZXB0aCgpIC0gbGVuZ3RoOwpAQCAtMTA3MywyMiArMTYzNCw2MyBAQCBwdWJsaWM6CiAgICAg
ICAgIHJldHVybiB0cnVlOwogICAgIH0KIAotICAgIHZpcnR1YWwgYm9vbCBjcmVhdGVPYmplY3Qo
dWludDMyX3QgbnVtUHJvcGVydGllcywgdjg6OkhhbmRsZTx2ODo6VmFsdWU+KiB2YWx1ZSkKKyAg
ICB2aXJ0dWFsIGJvb2wgbmV3T2JqZWN0KCkKICAgICB7CiAgICAgICAgIHY4OjpMb2NhbDx2ODo6
T2JqZWN0PiBvYmplY3QgPSB2ODo6T2JqZWN0OjpOZXcoKTsKICAgICAgICAgaWYgKG9iamVjdC5J
c0VtcHR5KCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIG9wZW5Db21wb3Np
dGUob2JqZWN0KTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgdmlydHVhbCBi
b29sIGNvbXBsZXRlT2JqZWN0KHVpbnQzMl90IG51bVByb3BlcnRpZXMsIHY4OjpIYW5kbGU8djg6
OlZhbHVlPiogdmFsdWUpCisgICAgeworICAgICAgICB2ODo6TG9jYWw8djg6Ok9iamVjdD4gb2Jq
ZWN0OworICAgICAgICBpZiAobV92ZXJzaW9uID4gMCkgeworICAgICAgICAgICAgdjg6OkxvY2Fs
PHY4OjpWYWx1ZT4gY29tcG9zaXRlOworICAgICAgICAgICAgaWYgKCFjbG9zZUNvbXBvc2l0ZSgm
Y29tcG9zaXRlKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBv
YmplY3QgPSBjb21wb3NpdGUuQXM8djg6Ok9iamVjdD4oKTsKKyAgICAgICAgfSBlbHNlCisgICAg
ICAgICAgICBvYmplY3QgPSB2ODo6T2JqZWN0OjpOZXcoKTsKKyAgICAgICAgaWYgKG9iamVjdC5J
c0VtcHR5KCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIHJldHVybiBpbml0
aWFsaXplT2JqZWN0KG9iamVjdCwgbnVtUHJvcGVydGllcywgdmFsdWUpOwogICAgIH0KIAotICAg
IHZpcnR1YWwgYm9vbCBjcmVhdGVTcGFyc2VBcnJheSh1aW50MzJfdCBudW1Qcm9wZXJ0aWVzLCB1
aW50MzJfdCBsZW5ndGgsIHY4OjpIYW5kbGU8djg6OlZhbHVlPiogdmFsdWUpCisgICAgdmlydHVh
bCBib29sIGNvbXBsZXRlU3BhcnNlQXJyYXkodWludDMyX3QgbnVtUHJvcGVydGllcywgdWludDMy
X3QgbGVuZ3RoLCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4qIHZhbHVlKQogICAgIHsKLSAgICAgICAg
djg6OkxvY2FsPHY4OjpBcnJheT4gYXJyYXkgPSB2ODo6QXJyYXk6Ok5ldyhsZW5ndGgpOworICAg
ICAgICB2ODo6TG9jYWw8djg6OkFycmF5PiBhcnJheTsKKyAgICAgICAgaWYgKG1fdmVyc2lvbiA+
IDApIHsKKyAgICAgICAgICAgIHY4OjpMb2NhbDx2ODo6VmFsdWU+IGNvbXBvc2l0ZTsKKyAgICAg
ICAgICAgIGlmICghY2xvc2VDb21wb3NpdGUoJmNvbXBvc2l0ZSkpCisgICAgICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgICAgICAgICAgYXJyYXkgPSBjb21wb3NpdGUuQXM8djg6OkFycmF5
PigpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIGFycmF5ID0gdjg6OkFycmF5OjpOZXco
bGVuZ3RoKTsKICAgICAgICAgaWYgKGFycmF5LklzRW1wdHkoKSkKICAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICAgICAgcmV0dXJuIGluaXRpYWxpemVPYmplY3QoYXJyYXksIG51bVByb3Bl
cnRpZXMsIHZhbHVlKTsKICAgICB9CiAKKyAgICB2aXJ0dWFsIHZvaWQgcHVzaE9iamVjdFJlZmVy
ZW5jZShjb25zdCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4mIG9iamVjdCkKKyAgICB7CisgICAgICAg
IG1fb2JqZWN0UG9vbC5hcHBlbmQob2JqZWN0KTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIGJvb2wg
dHJ5R2V0T2JqZWN0RnJvbU9iamVjdFJlZmVyZW5jZSh1aW50MzJfdCByZWZlcmVuY2UsIHY4OjpI
YW5kbGU8djg6OlZhbHVlPiogb2JqZWN0KQorICAgIHsKKyAgICAgICAgaWYgKHJlZmVyZW5jZSA+
PSBtX29iamVjdFBvb2wuc2l6ZSgpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAg
ICAqb2JqZWN0ID0gbV9vYmplY3RQb29sW3JlZmVyZW5jZV07CisgICAgICAgIHJldHVybiBvYmpl
Y3Q7CisgICAgfQorCisgICAgdmlydHVhbCB1aW50MzJfdCBvYmplY3RSZWZlcmVuY2VDb3VudCgp
CisgICAgeworICAgICAgICByZXR1cm4gbV9vYmplY3RQb29sLnNpemUoKTsKKyAgICB9CisKIHBy
aXZhdGU6CiAgICAgYm9vbCBpbml0aWFsaXplT2JqZWN0KHY4OjpIYW5kbGU8djg6Ok9iamVjdD4g
b2JqZWN0LCB1aW50MzJfdCBudW1Qcm9wZXJ0aWVzLCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4qIHZh
bHVlKQogICAgIHsKQEAgLTExMzEsOCArMTczMywzMCBAQCBwcml2YXRlOgogICAgICAgICByZXR1
cm4gbV9zdGFja1tpbmRleF07CiAgICAgfQogCisgICAgdm9pZCBvcGVuQ29tcG9zaXRlKGNvbnN0
IHY4OjpMb2NhbDx2ODo6VmFsdWU+JiBvYmplY3QpCisgICAgeworICAgICAgICB1aW50MzJfdCBu
ZXdJZCA9IG1fb2JqZWN0UG9vbC5zaXplKCk7CisgICAgICAgIG1fb2JqZWN0UmVmZXJlbmNlU3Rh
Y2suYXBwZW5kKG5ld0lkKTsKKyAgICAgICAgbV9vYmplY3RQb29sLmFwcGVuZChvYmplY3QpOwor
ICAgIH0KKworICAgIGJvb2wgY2xvc2VDb21wb3NpdGUodjg6OkhhbmRsZTx2ODo6VmFsdWU+KiBv
YmplY3QpCisgICAgeworICAgICAgICBpZiAoIW1fb2JqZWN0UmVmZXJlbmNlU3RhY2suc2l6ZSgp
KQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB1aW50MzJfdCBvbGRJZCA9IG1f
b2JqZWN0UmVmZXJlbmNlU3RhY2tbbV9vYmplY3RSZWZlcmVuY2VTdGFjay5zaXplKCkgLSAxXTsK
KyAgICAgICAgbV9vYmplY3RSZWZlcmVuY2VTdGFjay5zaHJpbmsobV9vYmplY3RSZWZlcmVuY2VT
dGFjay5zaXplKCkgLSAxKTsKKyAgICAgICAgaWYgKG9sZElkID49IG1fb2JqZWN0UG9vbC5zaXpl
KCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICpvYmplY3QgPSBtX29iamVj
dFBvb2xbb2xkSWRdOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKICAgICBSZWFkZXIm
IG1fcmVhZGVyOwogICAgIFZlY3Rvcjx2ODo6TG9jYWw8djg6OlZhbHVlPiA+IG1fc3RhY2s7Cisg
ICAgVmVjdG9yPHY4OjpIYW5kbGU8djg6OlZhbHVlPiA+IG1fb2JqZWN0UG9vbDsKKyAgICBWZWN0
b3I8dWludDMyX3Q+IG1fb2JqZWN0UmVmZXJlbmNlU3RhY2s7CisgICAgdWludDMyX3QgbV92ZXJz
aW9uOwogfTsKIAogfSAvLyBuYW1lc3BhY2UKQEAgLTEyMzIsMjIgKzE4NTYsMjggQEAgU2VyaWFs
aXplZFNjcmlwdFZhbHVlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWUodjg6OkhhbmRsZTx2ODo6VmFs
dWU+IHZhbHVlLCBib29sJgogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgfQot
ICAgIGlmIChzdGF0dXMgPT0gU2VyaWFsaXplcjo6SW5wdXRFcnJvcikgeworICAgIHN3aXRjaCAo
c3RhdHVzKSB7CisgICAgY2FzZSBTZXJpYWxpemVyOjpJbnB1dEVycm9yOgorICAgIGNhc2UgU2Vy
aWFsaXplcjo6RGF0YUNsb25lRXJyb3I6CiAgICAgICAgIC8vIElmIHRoZXJlIHdhcyBhbiBpbnB1
dCBlcnJvciwgdGhyb3cgYSBuZXcgZXhjZXB0aW9uIG91dHNpZGUKICAgICAgICAgLy8gb2YgdGhl
IFRyeUNhdGNoIHNjb3BlLgogICAgICAgICBkaWRUaHJvdyA9IHRydWU7Ci0gICAgICAgIHRocm93
RXJyb3IoTk9UX1NVUFBPUlRFRF9FUlIpOworICAgICAgICB0aHJvd0Vycm9yKERBVEFfQ0xPTkVf
RVJSKTsKICAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBpZiAoc3RhdHVzID09IFNlcmlhbGl6
ZXI6OkpTRmFpbHVyZSkgeworICAgIGNhc2UgU2VyaWFsaXplcjo6SlNGYWlsdXJlOgogICAgICAg
ICAvLyBJZiB0aGVyZSB3YXMgYSBKUyBmYWlsdXJlIChidXQgbm8gZXhjZXB0aW9uKSwgdGhlcmUn
cyBub3QKICAgICAgICAgLy8gbXVjaCB3ZSBjYW4gZG8gZXhjZXB0IGZvciB1bndpbmRpbmcgdGhl
IEMrKyBzdGFjayBieQogICAgICAgICAvLyBwcmV0ZW5kaW5nIHRoZXJlIHdhcyBhIEpTIGV4Y2Vw
dGlvbi4KICAgICAgICAgZGlkVGhyb3cgPSB0cnVlOwogICAgICAgICByZXR1cm47CisgICAgY2Fz
ZSBTZXJpYWxpemVyOjpTdWNjZXNzOgorICAgICAgICBtX2RhdGEgPSBTdHJpbmcoU3RyaW5nSW1w
bDo6YWRvcHQod3JpdGVyLmRhdGEoKSkpLmNyb3NzVGhyZWFkU3RyaW5nKCk7CisgICAgICAgIHJl
dHVybjsKKyAgICBjYXNlIFNlcmlhbGl6ZXI6OkpTRXhjZXB0aW9uOgorICAgICAgICAvLyBXZSBz
aG91bGQgbmV2ZXIgZ2V0IGhlcmUgYmVjYXVzZSB0aGlzIGNhc2Ugd2FzIGhhbmRsZWQgYWJvdmUu
CisgICAgICAgIGJyZWFrOwogICAgIH0KLSAgICBBU1NFUlQoc3RhdHVzID09IFNlcmlhbGl6ZXI6
OlN1Y2Nlc3MpOwotICAgIG1fZGF0YSA9IFN0cmluZyhTdHJpbmdJbXBsOjphZG9wdCh3cml0ZXIu
ZGF0YSgpKSkuY3Jvc3NUaHJlYWRTdHJpbmcoKTsKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
IH0KIAogU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWUoY29uc3Qg
U3RyaW5nJiB3aXJlRGF0YSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4
L1Y4QmluZGluZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEJpbmRpbmcuY3Bw
CmluZGV4IDgyNjBmZmQuLjM4MTA1MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L1Y4QmluZGluZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhC
aW5kaW5nLmNwcApAQCAtMjg1LDYgKzI4NSwxNiBAQCBib29sIGlzVW5kZWZpbmVkT3JOdWxsKHY4
OjpIYW5kbGU8djg6OlZhbHVlPiB2YWx1ZSkKICAgICByZXR1cm4gdmFsdWUtPklzTnVsbCgpIHx8
IHZhbHVlLT5Jc1VuZGVmaW5lZCgpOwogfQogCitib29sIGlzSG9zdE9iamVjdCh2ODo6SGFuZGxl
PHY4OjpPYmplY3Q+IG9iamVjdCkKK3sKKyAgICAvLyBJZiB0aGUgb2JqZWN0IGhhcyBhbnkgaW50
ZXJuYWwgZmllbGRzLCB0aGVuIHdlIHdvbid0IGJlIGFibGUgdG8gc2VyaWFsaXplIG9yIGRlc2Vy
aWFsaXplCisgICAgLy8gdGhlbTsgY29udmVuaWVudGx5LCB0aGlzIGlzIGFsc28gYSBxdWljayB3
YXkgdG8gZGV0ZWN0IERPTSB3cmFwcGVyIG9iamVjdHMsIGJlY2F1c2UKKyAgICAvLyB0aGUgbWVj
aGFuaXNtIGZvciB0aGVzZSByZWxpZXMgb24gZGF0YSBzdG9yZWQgaW4gdGhlc2UgZmllbGRzLiBX
ZSBzaG91bGQKKyAgICAvLyBjYXRjaCBleHRlcm5hbCBhcnJheSBkYXRhIGFuZCBleHRlcm5hbCBw
aXhlbCBkYXRhIGFzIGEgc3BlY2lhbCBjYXNlIChub3RpbmcgdGhhdCBDYW52YXNQaXhlbEFycmF5
cworICAgIC8vIGNhbid0IGJlIHNlcmlhbGl6ZWQgd2l0aG91dCBiZWluZyB3cmFwcGVkIGJ5IElt
YWdlRGF0YSBhY2NvcmRpbmcgdG8gdGhlIHN0YW5kYXJkKS4KKyAgICByZXR1cm4gb2JqZWN0LT5J
bnRlcm5hbEZpZWxkQ291bnQoKSB8fCBvYmplY3QtPkhhc0luZGV4ZWRQcm9wZXJ0aWVzSW5QaXhl
bERhdGEoKSB8fCBvYmplY3QtPkhhc0luZGV4ZWRQcm9wZXJ0aWVzSW5FeHRlcm5hbEFycmF5RGF0
YSgpOworfQorCiB2ODo6SGFuZGxlPHY4OjpCb29sZWFuPiB2OEJvb2xlYW4oYm9vbCB2YWx1ZSkK
IHsKICAgICByZXR1cm4gdmFsdWUgPyB2ODo6VHJ1ZSgpIDogdjg6OkZhbHNlKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEJpbmRpbmcuaCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3Y4L1Y4QmluZGluZy5oCmluZGV4IGUxZTNkZTAuLjJhMWEyNzcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4QmluZGluZy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4QmluZGluZy5oCkBAIC0yMTksNiArMjE5LDEwIEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogICAgIGJvb2wgaXNVbmRlZmluZWRPck51bGwodjg6OkhhbmRs
ZTx2ODo6VmFsdWU+IHZhbHVlKTsKIAorICAgIC8vIFJldHVybnMgdHJ1ZSBpZiB0aGUgcHJvdmlk
ZWQgb2JqZWN0IGlzIHRvIGJlIGNvbnNpZGVyZWQgYSAnaG9zdCBvYmplY3QnLCBhcyB1c2VkIGlu
IHRoZQorICAgIC8vIEhUTUw1IHN0cnVjdHVyZWQgY2xvbmUgYWxnb3JpdGhtLgorICAgIGJvb2wg
aXNIb3N0T2JqZWN0KHY4OjpIYW5kbGU8djg6Ok9iamVjdD4pOworCiAgICAgdjg6OkhhbmRsZTx2
ODo6Qm9vbGVhbj4gdjhCb29sZWFuKGJvb2wgdmFsdWUpOwogCiAgICAgU3RyaW5nIHRvV2ViQ29y
ZVN0cmluZ1dpdGhOdWxsQ2hlY2sodjg6OkhhbmRsZTx2ODo6VmFsdWU+IHZhbHVlKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERhdGFWaWV3Q3VzdG9t
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERhdGFWaWV3Q3VzdG9t
LmNwcAppbmRleCBjYmI5ZDI3Li42NmMzOTI5IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9jdXN0b20vVjhEYXRhVmlld0N1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RGF0YVZpZXdDdXN0b20uY3BwCkBAIC00MSw2ICs0MSwx
MyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhEYXRhVmlldzo6Y29uc3RydWN0b3JDYWxsYmFj
ayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogICAgIGlmICghYXJncy5Jc0NvbnN0cnVjdENh
bGwoKSkKICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoIkRPTSBvYmplY3QgY29uc3RydWN0b3Ig
Y2Fubm90IGJlIGNhbGxlZCBhcyBhIGZ1bmN0aW9uIiwgVjhQcm94eTo6VHlwZUVycm9yKTsKIAor
ICAgIGlmICghYXJncy5MZW5ndGgoKSkgeworICAgICAgICAvLyBzZWUgY29uc3RydWN0V2ViR0xB
cnJheSAtLSB3ZSBkb24ndCBzZWVtIHRvIGJlIGFibGUgdG8gZGlzdGluZ2lzaCBiZXR3ZWVuCisg
ICAgICAgIC8vICduZXcgRGF0YVZpZXcoKScgYW5kIHRoZSBjYWxsIHVzZWQgdG8gY29uc3RydWN0
IHRoZSBjYWNoZWQgRGF0YVZpZXcgb2JqZWN0LgorICAgICAgICBSZWZQdHI8RGF0YVZpZXc+IGRh
dGFWaWV3ID0gRGF0YVZpZXc6OmNyZWF0ZSgwKTsKKyAgICAgICAgVjhET01XcmFwcGVyOjpzZXRE
T01XcmFwcGVyKGFyZ3MuSG9sZGVyKCksICZpbmZvLCBkYXRhVmlldy5nZXQoKSk7CisgICAgICAg
IHJldHVybiB0b1Y4KGRhdGFWaWV3LnJlbGVhc2UoKSwgYXJncy5Ib2xkZXIoKSk7CisgICAgfQog
ICAgIGlmIChhcmdzWzBdLT5Jc051bGwoKSB8fCAhVjhBcnJheUJ1ZmZlcjo6SGFzSW5zdGFuY2Uo
YXJnc1swXSkpCiAgICAgICAgIHJldHVybiBWOFByb3h5Ojp0aHJvd1R5cGVFcnJvcigpOwogICAg
IHJldHVybiBjb25zdHJ1Y3RXZWJHTEFycmF5V2l0aEFycmF5QnVmZmVyQXJndW1lbnQ8RGF0YVZp
ZXcsIGNoYXI+KGFyZ3MsICZpbmZvLCB2ODo6a0V4dGVybmFsQnl0ZUFycmF5LCBmYWxzZSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NQ29yZUV4Y2VwdGlvbi5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRE9NQ29yZUV4Y2VwdGlvbi5pZGwKaW5kZXggOTQ1NzEyZC4uZGM1MjQw
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUNvcmVFeGNlcHRpb24uaWRsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01Db3JlRXhjZXB0aW9uLmlkbApAQCAtNzQsNiArNzQs
MTEgQEAgbW9kdWxlIGNvcmUgewogICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCAgICAgIEFC
T1JUX0VSUiAgICAgICAgICAgICAgICAgICAgICA9IDIwOwogICAgICAgICBjb25zdCB1bnNpZ25l
ZCBzaG9ydCAgICAgIFVSTF9NSVNNQVRDSF9FUlIgICAgICAgICAgICAgICA9IDIxOwogICAgICAg
ICBjb25zdCB1bnNpZ25lZCBzaG9ydCAgICAgIFFVT1RBX0VYQ0VFREVEX0VSUiAgICAgICAgICAg
ICA9IDIyOworICAgICAgICAvLyBUSU1FT1VUX0VSUiBpcyBjdXJyZW50bHkgdW51c2VkIGJ1dCB3
YXMgYWRkZWQgZm9yIGNvbXBsZXRlbmVzcy4KKyAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQg
ICAgICBUSU1FT1VUX0VSUiAgICAgICAgICAgICAgICAgICAgPSAyMzsKKyAgICAgICAgLy8gSU5W
QUxJRF9OT0RFX1RZUEVfRVJSIGlzIGN1cnJlbnRseSB1bnVzZWQgYnV0IHdhcyBhZGRlZCBmb3Ig
Y29tcGxldGVuZXNzLgorICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCAgICAgIElOVkFMSURf
Tk9ERV9UWVBFX0VSUiAgICAgICAgICA9IDI0OworICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9y
dCAgICAgIERBVEFfQ0xPTkVfRVJSICAgICAgICAgICAgICAgICA9IDI1OwogICAgIH07CiAKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FeGNlcHRpb25Db2RlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FeGNlcHRpb25Db2RlLmNwcAppbmRleCBjYWVhNTU5Li44YjgyZjViIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXhjZXB0aW9uQ29kZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL0V4Y2VwdGlvbkNvZGUuY3BwCkBAIC03Miw3ICs3MiwxMCBAQCBzdGF0
aWMgY29uc3QgY2hhciogY29uc3QgZXhjZXB0aW9uTmFtZXNbXSA9IHsKICAgICAiTkVUV09SS19F
UlIiLAogICAgICJBQk9SVF9FUlIiLAogICAgICJVUkxfTUlTTUFUQ0hfRVJSIiwKLSAgICAiUVVP
VEFfRVhDRUVERURfRVJSIgorICAgICJRVU9UQV9FWENFRURFRF9FUlIiLAorICAgICJUSU1FT1VU
X0VSUiIsCisgICAgIklOVkFMSURfTk9ERV9UWVBFX0VSUiIsCisgICAgIkRBVEFfQ0xPTkVfRVJS
IgogfTsKIAogc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IGV4Y2VwdGlvbkRlc2NyaXB0aW9uc1td
ID0gewpAQCAtOTgsNyArMTAxLDEwIEBAIHN0YXRpYyBjb25zdCBjaGFyKiBjb25zdCBleGNlcHRp
b25EZXNjcmlwdGlvbnNbXSA9IHsKICAgICAiQSBuZXR3b3JrIGVycm9yIG9jY3VyZWQuIiwKICAg
ICAiVGhlIHVzZXIgYWJvcnRlZCBhIHJlcXVlc3QuIiwKICAgICAiQSB3b3JrZXIgZ2xvYmFsIHNj
b3BlIHJlcHJlc2VudGVkIGFuIGFic29sdXRlIFVSTCB0aGF0IGlzIG5vdCBlcXVhbCB0byB0aGUg
cmVzdWx0aW5nIGFic29sdXRlIFVSTC4iLAotICAgICJBbiBhdHRlbXB0IHdhcyBtYWRlIHRvIGFk
ZCBzb21ldGhpbmcgdG8gc3RvcmFnZSB0aGF0IGV4Y2VlZGVkIHRoZSBxdW90YS4iCisgICAgIkFu
IGF0dGVtcHQgd2FzIG1hZGUgdG8gYWRkIHNvbWV0aGluZyB0byBzdG9yYWdlIHRoYXQgZXhjZWVk
ZWQgdGhlIHF1b3RhLiIsCisgICAgIkEgdGltZW91dCBvY2N1cnJlZC4iLAorICAgICJUaGUgc3Vw
cGxpZWQgbm9kZSBpcyBpbnZhbGlkIG9yIGhhcyBhbiBpbnZhbGlkIGFuY2VzdG9yIGZvciB0aGlz
IG9wZXJhdGlvbi4iLAorICAgICJBbiBvYmplY3QgY291bGQgbm90IGJlIGNsb25lZC4iCiB9Owog
CiBzdGF0aWMgY29uc3QgY2hhciogY29uc3QgcmFuZ2VFeGNlcHRpb25OYW1lc1tdID0gewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V4Y2VwdGlvbkNvZGUuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9FeGNlcHRpb25Db2RlLmgKaW5kZXggOWNlZTY2Yi4uY2VhNmY2NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0V4Y2VwdGlvbkNvZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRXhjZXB0aW9uQ29kZS5oCkBAIC01NywxNCArNTcsMTAgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgICAgICBORVRXT1JLX0VSUiA9IDE5LAogICAgICAgICBBQk9SVF9FUlIgPSAyMCwK
ICAgICAgICAgVVJMX01JU01BVENIX0VSUiA9IDIxLAotICAgICAgICBRVU9UQV9FWENFRURFRF9F
UlIgPSAyMgotCi0gICAgICAgIC8vIEludHJvZHVjZWQgaW4gRmlsZSBBUEk6Ci0gICAgICAgIC8v
IGh0dHA6Ly93d3cudzMub3JnL1RSL2ZpbGUtdXBsb2FkLyNkZm4tZmlsZWVycm9yCi0jaWYgRU5B
QkxFKEJMT0IpIHx8IEVOQUJMRShGSUxFX1NZU1RFTSkKLSAgICAgICAgLCBOT1RfUkVBREFCTEVf
RVJSID0gMjQKLSAgICAgICAgLCBFTkNPRElOR19FUlIgPSAyNgotI2VuZGlmCisgICAgICAgIFFV
T1RBX0VYQ0VFREVEX0VSUiA9IDIyLAorICAgICAgICBUSU1FT1VUX0VSUiA9IDIzLAorICAgICAg
ICBJTlZBTElEX05PREVfVFlQRV9FUlIgPSAyNCwKKyAgICAgICAgREFUQV9DTE9ORV9FUlIgPSAy
NQogICAgIH07CiAKICAgICBlbnVtIEV4Y2VwdGlvblR5cGUgewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvQXJyYXlCdWZmZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvQXJyYXlCdWZmZXIuY3BwCmluZGV4IDcxY2ZjNjIuLmU4M2UwMWUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0FycmF5QnVmZmVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9BcnJheUJ1ZmZlci5jcHAKQEAgLTQ3LDcgKzQ3LDcgQEAg
UGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4gQXJyYXlCdWZmZXI6OmNyZWF0ZShBcnJheUJ1ZmZlciog
b3RoZXIpCiAgICAgcmV0dXJuIEFycmF5QnVmZmVyOjpjcmVhdGUob3RoZXItPmRhdGEoKSwgb3Ro
ZXItPmJ5dGVMZW5ndGgoKSk7CiB9CiAKLVBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IEFycmF5QnVm
ZmVyOjpjcmVhdGUodm9pZCogc291cmNlLCB1bnNpZ25lZCBieXRlTGVuZ3RoKQorUGFzc1JlZlB0
cjxBcnJheUJ1ZmZlcj4gQXJyYXlCdWZmZXI6OmNyZWF0ZShjb25zdCB2b2lkKiBzb3VyY2UsIHVu
c2lnbmVkIGJ5dGVMZW5ndGgpCiB7CiAgICAgdm9pZCogZGF0YSA9IHRyeUFsbG9jYXRlKGJ5dGVM
ZW5ndGgsIDEpOwogICAgIGlmICghZGF0YSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL0FycmF5QnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9BcnJh
eUJ1ZmZlci5oCmluZGV4IGZmNWU1OTkuLjQxMzVjMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL0FycmF5QnVmZmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvQXJyYXlCdWZmZXIuaApAQCAtMzUsNyArMzUsNyBAQCBjbGFzcyBBcnJheUJ1ZmZlciA6
IHB1YmxpYyBSZWZDb3VudGVkPEFycmF5QnVmZmVyPiB7CiAgIHB1YmxpYzoKICAgICBzdGF0aWMg
UGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4gY3JlYXRlKHVuc2lnbmVkIG51bUVsZW1lbnRzLCB1bnNp
Z25lZCBlbGVtZW50Qnl0ZVNpemUpOwogICAgIHN0YXRpYyBQYXNzUmVmUHRyPEFycmF5QnVmZmVy
PiBjcmVhdGUoQXJyYXlCdWZmZXIqKTsKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxBcnJheUJ1ZmZl
cj4gY3JlYXRlKHZvaWQqIHNvdXJjZSwgdW5zaWduZWQgYnl0ZUxlbmd0aCk7CisgICAgc3RhdGlj
IFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IGNyZWF0ZShjb25zdCB2b2lkKiBzb3VyY2UsIHVuc2ln
bmVkIGJ5dGVMZW5ndGgpOwogCiAgICAgdm9pZCogZGF0YSgpOwogICAgIGNvbnN0IHZvaWQqIGRh
dGEoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0RhdGFW
aWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0RhdGFWaWV3LmNwcAppbmRleCBl
MDA0NDNkLi4zZGIwNmQ2IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9E
YXRhVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvRGF0YVZpZXcuY3Bw
CkBAIC00MCw2ICs0MCwxNCBAQCB1bmlvbiBWYWx1ZSB7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAorUGFzc1JlZlB0cjxEYXRhVmlldz4gRGF0YVZpZXc6OmNyZWF0ZSh1bnNpZ25lZCBsZW5ndGgp
Cit7CisgICAgUmVmUHRyPEFycmF5QnVmZmVyPiBidWZmZXIgPSBBcnJheUJ1ZmZlcjo6Y3JlYXRl
KGxlbmd0aCwgc2l6ZW9mKHVpbnQ4X3QpKTsKKyAgICBpZiAoIWJ1ZmZlci5nZXQoKSkKKyAgICAg
ICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIGNyZWF0ZShidWZmZXIsIDAsIGxlbmd0aCk7Cit9CisK
IFBhc3NSZWZQdHI8RGF0YVZpZXc+IERhdGFWaWV3OjpjcmVhdGUoUGFzc1JlZlB0cjxBcnJheUJ1
ZmZlcj4gYnVmZmVyLCB1bnNpZ25lZCBieXRlT2Zmc2V0LCB1bnNpZ25lZCBieXRlTGVuZ3RoKQog
ewogICAgIGlmIChieXRlT2Zmc2V0ID4gYnVmZmVyLT5ieXRlTGVuZ3RoKCkpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9EYXRhVmlldy5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvRGF0YVZpZXcuaAppbmRleCBhOGFiYTVjLi41ZTgwZjhjIDEwMDc1NQotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9EYXRhVmlldy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL0RhdGFWaWV3LmgKQEAgLTM0LDYgKzM0LDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBjbGFzcyBEYXRhVmlldyA6IHB1YmxpYyBBcnJheUJ1ZmZlclZpZXcgewogcHVi
bGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPERhdGFWaWV3PiBjcmVhdGUodW5zaWduZWQgbGVu
Z3RoKTsKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxEYXRhVmlldz4gY3JlYXRlKFBhc3NSZWZQdHI8
QXJyYXlCdWZmZXI+LCB1bnNpZ25lZCBieXRlT2Zmc2V0LCB1bnNpZ25lZCBieXRlTGVuZ3RoKTsK
IAogICAgIHZpcnR1YWwgYm9vbCBpc0RhdGFWaWV3KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQo=
</data>
<flag name="review"
          id="95466"
          type_id="1"
          status="-"
          setter="levin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>100881</attachid>
            <date>2011-07-14 15:56:05 -0700</date>
            <delta_ts>2011-07-14 16:04:04 -0700</delta_ts>
            <desc>Promote array buffer passing test and address comments.</desc>
            <filename>patch257.patch</filename>
            <type>text/plain</type>
            <size>165541</size>
            <attacher name="Luke Zarko">lukezarko+bugzilla</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBhMDI2OTIxLi4wMWM5YzczIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjAgQEAKKzIwMTEtMDct
MTQgIEx1a2UgWmFya28gIDxsdWtlemFya29AZ21haWwuY29tPgorCisgICAgICAgQnJpbmcgVjgn
cyBTZXJpYWxpemVkU2NyaXB0VmFsdWUgaW1wbGVtZW50YXRpb24gdXAgdG8gZGF0ZS4KKworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM0ODEKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIFRoaXMg
cGF0Y2ggcmVmYWN0b3JzIHdpbmRvdy1wb3N0bWVzc2FnZS1jbG9uZSBpbnRvIGEgc2NyaXB0IHRl
c3QsIGNoZWNrcyBhZGRpdGlvbmFsIGZ1bmN0aW9uYWxpdHkgc2V0IGZvcnRoIGluIHRoZSBzdGFu
ZGFyZCwgYW5kIGZpeGVzIHVwIGV4cGVjdGF0aW9ucy4gSXQgYWxzbyBjaGVja3MgZm9yIHR5cGVk
IGFycmF5IG1lc3NhZ2UgcGFzc2luZy4KKworICAgICAgICAqIGZhc3QvY2FudmFzL3dlYmdsL2Fy
cmF5LW1lc3NhZ2UtcGFzc2luZy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
Y2FudmFzL3dlYmdsL2FycmF5LW1lc3NhZ2UtcGFzc2luZy5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L2NhbnZhcy93ZWJnbC9zY3JpcHQtdGVzdHMvYXJyYXktbWVzc2FnZS1wYXNzaW5nLmpz
OiBBZGRlZC4KKyAgICAgICAgKGNsYXNzQ29tcGFyZSk6CisgICAgICAgIChidWZmZXJDb21wYXJl
KToKKyAgICAgICAgKHZpZXdDb21wYXJlKToKKyAgICAgICAgKHR5cGVkQXJyYXlDb21wYXJlKToK
KyAgICAgICAgKGRhdGFWaWV3Q29tcGFyZSk6CisgICAgICAgIChjcmVhdGVCdWZmZXIpOgorICAg
ICAgICAoY3JlYXRlVHlwZWRBcnJheSk6CisgICAgICAgIChjcmVhdGVUeXBlZEFycmF5T3ZlckJ1
ZmZlcik6CisgICAgICAgICh0ZXN0TGlzdCk6CisgICAgICAgIChkb25lVGVzdCk6CisgICAgICAg
ICh3aW5kb3dIYW5kbGVNZXNzYWdlKToKKyAgICAgICAgKiBmYXN0L2RvbS9XaW5kb3cvc2NyaXB0
LXRlc3RzL3Bvc3RtZXNzYWdlLWNsb25lLWRlZXAtYXJyYXkuanM6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvZG9tL1dpbmRvdy9zY3JpcHQtdGVzdHMvcG9zdG1lc3NhZ2UtY2xvbmUtcmVhbGx5LWRl
ZXAtYXJyYXkuanM6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL1dpbmRvdy9zY3JpcHQtdGVz
dHMvcG9zdG1lc3NhZ2UtY2xvbmUuanM6IEFkZGVkLgorICAgICAgICAodGh1bmspOgorICAgICAg
ICAqIGZhc3QvZG9tL1dpbmRvdy9zY3JpcHQtdGVzdHMvcG9zdG1lc3NhZ2UtdGVzdC5qczogQ29w
aWVkIGZyb20gTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wb3N0bWVzc2FnZS1j
bG9uZS5odG1sLgorICAgICAgICAoKToKKyAgICAgICAgKHNhZmVUb1N0cmluZyk6CisgICAgICAg
IChzaG91bGRCZSk6CisgICAgICAgIChzaG91bGRCZUlkZW50aWNhbCk6CisgICAgICAgIChkb1Bh
c3MpOgorICAgICAgICAoZG9GYWlsKToKKyAgICAgICAgKHdpbmRvdy5kb1Bhc3NGYWlsKToKKyAg
ICAgICAgKG9ubWVzc2FnZSk6CisgICAgICAgIChDb25zdHJ1Y3RvcldpdGhQcm90b3R5cGUpOgor
ICAgICAgICAod2luZG93LnRyeVBvc3RNZXNzYWdlKToKKyAgICAgICAgKiBmYXN0L2RvbS9XaW5k
b3cvd2luZG93LXBvc3RtZXNzYWdlLWNsb25lLWRlZXAtYXJyYXktZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L2RvbS9XaW5kb3cvd2luZG93LXBvc3RtZXNzYWdlLWNsb25lLWRl
ZXAtYXJyYXkuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vV2luZG93L3dpbmRvdy1w
b3N0bWVzc2FnZS1jbG9uZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9kb20vV2luZG93
L3dpbmRvdy1wb3N0bWVzc2FnZS1jbG9uZS1yZWFsbHktZGVlcC1hcnJheS1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL1dpbmRvdy93aW5kb3ctcG9zdG1lc3NhZ2UtY2xv
bmUtcmVhbGx5LWRlZXAtYXJyYXkuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vV2lu
ZG93L3dpbmRvdy1wb3N0bWVzc2FnZS1jbG9uZS5odG1sOgorICAgICAgICAqIGZhc3QvZG9tL1dp
bmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0v
Y2hyb21pdW0vZmFzdC9jYW52YXMvd2ViZ2wvYXJyYXktbWVzc2FnZS1wYXNzaW5nLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9kb20vV2luZG93
L3dpbmRvdy1wb3N0bWVzc2FnZS1jbG9uZS1kZWVwLWFycmF5LWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9kb20vV2luZG93L3dpbmRvdy1wb3N0
bWVzc2FnZS1jbG9uZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2No
cm9taXVtL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcG9zdG1lc3NhZ2UtY2xvbmUtcmVhbGx5LWRl
ZXAtYXJyYXktZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1
bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQ6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL2Zhc3QvZG9t
L1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogcGxhdGZv
cm0vcXQtd2syL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQ6
CisgICAgICAgICogcGxhdGZvcm0vcXQvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVz
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9vYmplY3RzdG9yZS1i
YXNpY3MtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0
b3JlLWJhc2ljcy5odG1sOgorCiAyMDExLTA3LTE0ICBDc2FiYSBPc3p0cm9nb27DoWMgIDxvc3N5
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgW1F0XVVwZGF0ZSBsYXlvdXQgdGVzdCByZXN1bHRzIGZv
ciBuZXdlciBRdCA0LjgueApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2Vi
Z2wvYXJyYXktbWVzc2FnZS1wYXNzaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qv
Y2FudmFzL3dlYmdsL2FycmF5LW1lc3NhZ2UtcGFzc2luZy1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzM3ZjlhZAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2FycmF5LW1lc3NhZ2UtcGFzc2luZy1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwxMDggQEAKK1Rlc3QgcGFzc2luZyBBcnJheUJ1ZmZlcnMgYW5kIEFy
cmF5QnVmZmVyVmlld3MgaW4gbWVzc2FnZXMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworRkFJTCBBcnJheUJ1ZmZlcjA6IGNsYXNzIFtvYmplY3QgQXJyYXlCdWZmZXJdIGJlY2FtZSBb
b2JqZWN0IE9iamVjdF0KK0ZBSUwgQXJyYXlCdWZmZXIxOiBjbGFzcyBbb2JqZWN0IEFycmF5QnVm
ZmVyXSBiZWNhbWUgW29iamVjdCBPYmplY3RdCitGQUlMIEFycmF5QnVmZmVyMTI4OiBjbGFzcyBb
b2JqZWN0IEFycmF5QnVmZmVyXSBiZWNhbWUgW29iamVjdCBPYmplY3RdCitGQUlMIERhdGFWaWV3
MDogY2xhc3MgW29iamVjdCBEYXRhVmlld10gYmVjYW1lIFtvYmplY3QgT2JqZWN0XQorRkFJTCBE
YXRhVmlldzE6IGNsYXNzIFtvYmplY3QgRGF0YVZpZXddIGJlY2FtZSBbb2JqZWN0IE9iamVjdF0K
K0ZBSUwgRGF0YVZpZXcxMjg6IGNsYXNzIFtvYmplY3QgRGF0YVZpZXddIGJlY2FtZSBbb2JqZWN0
IE9iamVjdF0KK0ZBSUwgRGF0YVZpZXcxX29mZnNldF9hdF9lbmQ6IGNsYXNzIFtvYmplY3QgRGF0
YVZpZXddIGJlY2FtZSBbb2JqZWN0IE9iamVjdF0KK0ZBSUwgRGF0YVZpZXcxMjhfb2Zmc2V0X2F0
X2VuZDogY2xhc3MgW29iamVjdCBEYXRhVmlld10gYmVjYW1lIFtvYmplY3QgT2JqZWN0XQorRkFJ
TCBEYXRhVmlldzEyOF9vZmZzZXRfc2xpY2VfbGVuZ3RoXzA6IGNsYXNzIFtvYmplY3QgRGF0YVZp
ZXddIGJlY2FtZSBbb2JqZWN0IE9iamVjdF0KK0ZBSUwgRGF0YVZpZXcxMjhfb2Zmc2V0X3NsaWNl
X2xlbmd0aF8xOiBjbGFzcyBbb2JqZWN0IERhdGFWaWV3XSBiZWNhbWUgW29iamVjdCBPYmplY3Rd
CitGQUlMIERhdGFWaWV3MTI4X29mZnNldF9zbGljZV9sZW5ndGhfMTY6IGNsYXNzIFtvYmplY3Qg
RGF0YVZpZXddIGJlY2FtZSBbb2JqZWN0IE9iamVjdF0KK0ZBSUwgRGF0YVZpZXcxMjhfb2Zmc2V0
X3NsaWNlX3VuYWxpZ25lZDogY2xhc3MgW29iamVjdCBEYXRhVmlld10gYmVjYW1lIFtvYmplY3Qg
T2JqZWN0XQorRkFJTCBJbnQzMl8wOiBjbGFzcyBbb2JqZWN0IEludDMyQXJyYXldIGJlY2FtZSBb
b2JqZWN0IE9iamVjdF0KK0ZBSUwgVWludDMyXzA6IGNsYXNzIFtvYmplY3QgVWludDMyQXJyYXld
IGJlY2FtZSBbb2JqZWN0IE9iamVjdF0KK0ZBSUwgSW50OF8wOiBjbGFzcyBbb2JqZWN0IEludDhB
cnJheV0gYmVjYW1lIFtvYmplY3QgT2JqZWN0XQorRkFJTCBVaW50OF8wOiBjbGFzcyBbb2JqZWN0
IFVpbnQ4QXJyYXldIGJlY2FtZSBbb2JqZWN0IE9iamVjdF0KK0ZBSUwgSW50MTZfMDogY2xhc3Mg
W29iamVjdCBJbnQxNkFycmF5XSBiZWNhbWUgW29iamVjdCBPYmplY3RdCitGQUlMIFVpbnQxNl8w
OiBjbGFzcyBbb2JqZWN0IFVpbnQxNkFycmF5XSBiZWNhbWUgW29iamVjdCBPYmplY3RdCitGQUlM
IEZsb2F0MzJfMDogY2xhc3MgW29iamVjdCBGbG9hdDMyQXJyYXldIGJlY2FtZSBbb2JqZWN0IE9i
amVjdF0KK0ZBSUwgRmxvYXQ2NF8wOiBjbGFzcyBbb2JqZWN0IEZsb2F0NjRBcnJheV0gYmVjYW1l
IFtvYmplY3QgT2JqZWN0XQorRkFJTCBJbnQzMl8xOiBjbGFzcyBbb2JqZWN0IEludDMyQXJyYXld
IGJlY2FtZSBbb2JqZWN0IE9iamVjdF0KK0ZBSUwgVWludDMyXzE6IGNsYXNzIFtvYmplY3QgVWlu
dDMyQXJyYXldIGJlY2FtZSBbb2JqZWN0IE9iamVjdF0KK0ZBSUwgSW50OF8xOiBjbGFzcyBbb2Jq
ZWN0IEludDhBcnJheV0gYmVjYW1lIFtvYmplY3QgT2JqZWN0XQorRkFJTCBVaW50OF8xOiBjbGFz
cyBbb2JqZWN0IFVpbnQ4QXJyYXldIGJlY2FtZSBbb2JqZWN0IE9iamVjdF0KK0ZBSUwgSW50MTZf
MTogY2xhc3MgW29iamVjdCBJbnQxNkFycmF5XSBiZWNhbWUgW29iamVjdCBPYmplY3RdCitGQUlM
IFVpbnQxNl8xOiBjbGFzcyBbb2JqZWN0IFVpbnQxNkFycmF5XSBiZWNhbWUgW29iamVjdCBPYmpl
Y3RdCitGQUlMIEZsb2F0MzJfMTogY2xhc3MgW29iamVjdCBGbG9hdDMyQXJyYXldIGJlY2FtZSBb
b2JqZWN0IE9iamVjdF0KK0ZBSUwgRmxvYXQ2NF8xOiBjbGFzcyBbb2JqZWN0IEZsb2F0NjRBcnJh
eV0gYmVjYW1lIFtvYmplY3QgT2JqZWN0XQorRkFJTCBJbnQzMl8xMjg6IGNsYXNzIFtvYmplY3Qg
SW50MzJBcnJheV0gYmVjYW1lIFtvYmplY3QgT2JqZWN0XQorRkFJTCBVaW50MzJfMTI4OiBjbGFz
cyBbb2JqZWN0IFVpbnQzMkFycmF5XSBiZWNhbWUgW29iamVjdCBPYmplY3RdCitGQUlMIEludDhf
MTI4OiBjbGFzcyBbb2JqZWN0IEludDhBcnJheV0gYmVjYW1lIFtvYmplY3QgT2JqZWN0XQorRkFJ
TCBVaW50OF8xMjg6IGNsYXNzIFtvYmplY3QgVWludDhBcnJheV0gYmVjYW1lIFtvYmplY3QgT2Jq
ZWN0XQorRkFJTCBJbnQxNl8xMjg6IGNsYXNzIFtvYmplY3QgSW50MTZBcnJheV0gYmVjYW1lIFtv
YmplY3QgT2JqZWN0XQorRkFJTCBVaW50MTZfMTI4OiBjbGFzcyBbb2JqZWN0IFVpbnQxNkFycmF5
XSBiZWNhbWUgW29iamVjdCBPYmplY3RdCitGQUlMIEZsb2F0MzJfMTI4OiBjbGFzcyBbb2JqZWN0
IEZsb2F0MzJBcnJheV0gYmVjYW1lIFtvYmplY3QgT2JqZWN0XQorRkFJTCBGbG9hdDY0XzEyODog
Y2xhc3MgW29iamVjdCBGbG9hdDY0QXJyYXldIGJlY2FtZSBbb2JqZWN0IE9iamVjdF0KK0ZBSUwg
SW50MzJfMF9idWZmZXI6IGNsYXNzIFtvYmplY3QgSW50MzJBcnJheV0gYmVjYW1lIFtvYmplY3Qg
T2JqZWN0XQorRkFJTCBVaW50MzJfMF9idWZmZXI6IGNsYXNzIFtvYmplY3QgVWludDMyQXJyYXld
IGJlY2FtZSBbb2JqZWN0IE9iamVjdF0KK0ZBSUwgSW50OF8wX2J1ZmZlcjogY2xhc3MgW29iamVj
dCBJbnQ4QXJyYXldIGJlY2FtZSBbb2JqZWN0IE9iamVjdF0KK0ZBSUwgVWludDhfMF9idWZmZXI6
IGNsYXNzIFtvYmplY3QgVWludDhBcnJheV0gYmVjYW1lIFtvYmplY3QgT2JqZWN0XQorRkFJTCBJ
bnQxNl8wX2J1ZmZlcjogY2xhc3MgW29iamVjdCBJbnQxNkFycmF5XSBiZWNhbWUgW29iamVjdCBP
YmplY3RdCitGQUlMIFVpbnQxNl8wX2J1ZmZlcjogY2xhc3MgW29iamVjdCBVaW50MTZBcnJheV0g
YmVjYW1lIFtvYmplY3QgT2JqZWN0XQorRkFJTCBGbG9hdDMyXzBfYnVmZmVyOiBjbGFzcyBbb2Jq
ZWN0IEZsb2F0MzJBcnJheV0gYmVjYW1lIFtvYmplY3QgT2JqZWN0XQorRkFJTCBGbG9hdDY0XzBf
YnVmZmVyOiBjbGFzcyBbb2JqZWN0IEZsb2F0NjRBcnJheV0gYmVjYW1lIFtvYmplY3QgT2JqZWN0
XQorRkFJTCBJbnQzMl8xX2J1ZmZlcjogY2xhc3MgW29iamVjdCBJbnQzMkFycmF5XSBiZWNhbWUg
W29iamVjdCBPYmplY3RdCitGQUlMIFVpbnQzMl8xX2J1ZmZlcjogY2xhc3MgW29iamVjdCBVaW50
MzJBcnJheV0gYmVjYW1lIFtvYmplY3QgT2JqZWN0XQorRkFJTCBJbnQ4XzFfYnVmZmVyOiBjbGFz
cyBbb2JqZWN0IEludDhBcnJheV0gYmVjYW1lIFtvYmplY3QgT2JqZWN0XQorRkFJTCBVaW50OF8x
X2J1ZmZlcjogY2xhc3MgW29iamVjdCBVaW50OEFycmF5XSBiZWNhbWUgW29iamVjdCBPYmplY3Rd
CitGQUlMIEludDE2XzFfYnVmZmVyOiBjbGFzcyBbb2JqZWN0IEludDE2QXJyYXldIGJlY2FtZSBb
b2JqZWN0IE9iamVjdF0KK0ZBSUwgVWludDE2XzFfYnVmZmVyOiBjbGFzcyBbb2JqZWN0IFVpbnQx
NkFycmF5XSBiZWNhbWUgW29iamVjdCBPYmplY3RdCitGQUlMIEZsb2F0MzJfMV9idWZmZXI6IGNs
YXNzIFtvYmplY3QgRmxvYXQzMkFycmF5XSBiZWNhbWUgW29iamVjdCBPYmplY3RdCitGQUlMIEZs
b2F0NjRfMV9idWZmZXI6IGNsYXNzIFtvYmplY3QgRmxvYXQ2NEFycmF5XSBiZWNhbWUgW29iamVj
dCBPYmplY3RdCitGQUlMIEludDMyXzEyOF9idWZmZXI6IGNsYXNzIFtvYmplY3QgSW50MzJBcnJh
eV0gYmVjYW1lIFtvYmplY3QgT2JqZWN0XQorRkFJTCBVaW50MzJfMTI4X2J1ZmZlcjogY2xhc3Mg
W29iamVjdCBVaW50MzJBcnJheV0gYmVjYW1lIFtvYmplY3QgT2JqZWN0XQorRkFJTCBJbnQ4XzEy
OF9idWZmZXI6IGNsYXNzIFtvYmplY3QgSW50OEFycmF5XSBiZWNhbWUgW29iamVjdCBPYmplY3Rd
CitGQUlMIFVpbnQ4XzEyOF9idWZmZXI6IGNsYXNzIFtvYmplY3QgVWludDhBcnJheV0gYmVjYW1l
IFtvYmplY3QgT2JqZWN0XQorRkFJTCBJbnQxNl8xMjhfYnVmZmVyOiBjbGFzcyBbb2JqZWN0IElu
dDE2QXJyYXldIGJlY2FtZSBbb2JqZWN0IE9iamVjdF0KK0ZBSUwgVWludDE2XzEyOF9idWZmZXI6
IGNsYXNzIFtvYmplY3QgVWludDE2QXJyYXldIGJlY2FtZSBbb2JqZWN0IE9iamVjdF0KK0ZBSUwg
RmxvYXQzMl8xMjhfYnVmZmVyOiBjbGFzcyBbb2JqZWN0IEZsb2F0MzJBcnJheV0gYmVjYW1lIFtv
YmplY3QgT2JqZWN0XQorRkFJTCBGbG9hdDY0XzEyOF9idWZmZXI6IGNsYXNzIFtvYmplY3QgRmxv
YXQ2NEFycmF5XSBiZWNhbWUgW29iamVjdCBPYmplY3RdCitGQUlMIEludDMyXzFfYnVmZmVyX29m
ZnNldF9hdF9lbmQ6IGNsYXNzIFtvYmplY3QgSW50MzJBcnJheV0gYmVjYW1lIFtvYmplY3QgT2Jq
ZWN0XQorRkFJTCBVaW50MzJfMV9idWZmZXJfb2Zmc2V0X2F0X2VuZDogY2xhc3MgW29iamVjdCBV
aW50MzJBcnJheV0gYmVjYW1lIFtvYmplY3QgT2JqZWN0XQorRkFJTCBJbnQ4XzFfYnVmZmVyX29m
ZnNldF9hdF9lbmQ6IGNsYXNzIFtvYmplY3QgSW50OEFycmF5XSBiZWNhbWUgW29iamVjdCBPYmpl
Y3RdCitGQUlMIFVpbnQ4XzFfYnVmZmVyX29mZnNldF9hdF9lbmQ6IGNsYXNzIFtvYmplY3QgVWlu
dDhBcnJheV0gYmVjYW1lIFtvYmplY3QgT2JqZWN0XQorRkFJTCBJbnQxNl8xX2J1ZmZlcl9vZmZz
ZXRfYXRfZW5kOiBjbGFzcyBbb2JqZWN0IEludDE2QXJyYXldIGJlY2FtZSBbb2JqZWN0IE9iamVj
dF0KK0ZBSUwgVWludDE2XzFfYnVmZmVyX29mZnNldF9hdF9lbmQ6IGNsYXNzIFtvYmplY3QgVWlu
dDE2QXJyYXldIGJlY2FtZSBbb2JqZWN0IE9iamVjdF0KK0ZBSUwgRmxvYXQzMl8xX2J1ZmZlcl9v
ZmZzZXRfYXRfZW5kOiBjbGFzcyBbb2JqZWN0IEZsb2F0MzJBcnJheV0gYmVjYW1lIFtvYmplY3Qg
T2JqZWN0XQorRkFJTCBGbG9hdDY0XzFfYnVmZmVyX29mZnNldF9hdF9lbmQ6IGNsYXNzIFtvYmpl
Y3QgRmxvYXQ2NEFycmF5XSBiZWNhbWUgW29iamVjdCBPYmplY3RdCitGQUlMIEludDMyXzEyOF9i
dWZmZXJfb2Zmc2V0X2F0X2VuZDogY2xhc3MgW29iamVjdCBJbnQzMkFycmF5XSBiZWNhbWUgW29i
amVjdCBPYmplY3RdCitGQUlMIFVpbnQzMl8xMjhfYnVmZmVyX29mZnNldF9hdF9lbmQ6IGNsYXNz
IFtvYmplY3QgVWludDMyQXJyYXldIGJlY2FtZSBbb2JqZWN0IE9iamVjdF0KK0ZBSUwgSW50OF8x
MjhfYnVmZmVyX29mZnNldF9hdF9lbmQ6IGNsYXNzIFtvYmplY3QgSW50OEFycmF5XSBiZWNhbWUg
W29iamVjdCBPYmplY3RdCitGQUlMIFVpbnQ4XzEyOF9idWZmZXJfb2Zmc2V0X2F0X2VuZDogY2xh
c3MgW29iamVjdCBVaW50OEFycmF5XSBiZWNhbWUgW29iamVjdCBPYmplY3RdCitGQUlMIEludDE2
XzEyOF9idWZmZXJfb2Zmc2V0X2F0X2VuZDogY2xhc3MgW29iamVjdCBJbnQxNkFycmF5XSBiZWNh
bWUgW29iamVjdCBPYmplY3RdCitGQUlMIFVpbnQxNl8xMjhfYnVmZmVyX29mZnNldF9hdF9lbmQ6
IGNsYXNzIFtvYmplY3QgVWludDE2QXJyYXldIGJlY2FtZSBbb2JqZWN0IE9iamVjdF0KK0ZBSUwg
RmxvYXQzMl8xMjhfYnVmZmVyX29mZnNldF9hdF9lbmQ6IGNsYXNzIFtvYmplY3QgRmxvYXQzMkFy
cmF5XSBiZWNhbWUgW29iamVjdCBPYmplY3RdCitGQUlMIEZsb2F0NjRfMTI4X2J1ZmZlcl9vZmZz
ZXRfYXRfZW5kOiBjbGFzcyBbb2JqZWN0IEZsb2F0NjRBcnJheV0gYmVjYW1lIFtvYmplY3QgT2Jq
ZWN0XQorRkFJTCBJbnQzMl8xMjhfYnVmZmVyX29mZnNldF9zbGljZV9sZW5ndGhfMDogY2xhc3Mg
W29iamVjdCBJbnQzMkFycmF5XSBiZWNhbWUgW29iamVjdCBPYmplY3RdCitGQUlMIFVpbnQzMl8x
MjhfYnVmZmVyX29mZnNldF9zbGljZV9sZW5ndGhfMDogY2xhc3MgW29iamVjdCBVaW50MzJBcnJh
eV0gYmVjYW1lIFtvYmplY3QgT2JqZWN0XQorRkFJTCBJbnQ4XzEyOF9idWZmZXJfb2Zmc2V0X3Ns
aWNlX2xlbmd0aF8wOiBjbGFzcyBbb2JqZWN0IEludDhBcnJheV0gYmVjYW1lIFtvYmplY3QgT2Jq
ZWN0XQorRkFJTCBVaW50OF8xMjhfYnVmZmVyX29mZnNldF9zbGljZV9sZW5ndGhfMDogY2xhc3Mg
W29iamVjdCBVaW50OEFycmF5XSBiZWNhbWUgW29iamVjdCBPYmplY3RdCitGQUlMIEludDE2XzEy
OF9idWZmZXJfb2Zmc2V0X3NsaWNlX2xlbmd0aF8wOiBjbGFzcyBbb2JqZWN0IEludDE2QXJyYXld
IGJlY2FtZSBbb2JqZWN0IE9iamVjdF0KK0ZBSUwgVWludDE2XzEyOF9idWZmZXJfb2Zmc2V0X3Ns
aWNlX2xlbmd0aF8wOiBjbGFzcyBbb2JqZWN0IFVpbnQxNkFycmF5XSBiZWNhbWUgW29iamVjdCBP
YmplY3RdCitGQUlMIEZsb2F0MzJfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3RoXzA6IGNs
YXNzIFtvYmplY3QgRmxvYXQzMkFycmF5XSBiZWNhbWUgW29iamVjdCBPYmplY3RdCitGQUlMIEZs
b2F0NjRfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3RoXzA6IGNsYXNzIFtvYmplY3QgRmxv
YXQ2NEFycmF5XSBiZWNhbWUgW29iamVjdCBPYmplY3RdCitGQUlMIEludDMyXzEyOF9idWZmZXJf
b2Zmc2V0X3NsaWNlX2xlbmd0aF8xOiBjbGFzcyBbb2JqZWN0IEludDMyQXJyYXldIGJlY2FtZSBb
b2JqZWN0IE9iamVjdF0KK0ZBSUwgVWludDMyXzEyOF9idWZmZXJfb2Zmc2V0X3NsaWNlX2xlbmd0
aF8xOiBjbGFzcyBbb2JqZWN0IFVpbnQzMkFycmF5XSBiZWNhbWUgW29iamVjdCBPYmplY3RdCitG
QUlMIEludDhfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3RoXzE6IGNsYXNzIFtvYmplY3Qg
SW50OEFycmF5XSBiZWNhbWUgW29iamVjdCBPYmplY3RdCitGQUlMIFVpbnQ4XzEyOF9idWZmZXJf
b2Zmc2V0X3NsaWNlX2xlbmd0aF8xOiBjbGFzcyBbb2JqZWN0IFVpbnQ4QXJyYXldIGJlY2FtZSBb
b2JqZWN0IE9iamVjdF0KK0ZBSUwgSW50MTZfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3Ro
XzE6IGNsYXNzIFtvYmplY3QgSW50MTZBcnJheV0gYmVjYW1lIFtvYmplY3QgT2JqZWN0XQorRkFJ
TCBVaW50MTZfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3RoXzE6IGNsYXNzIFtvYmplY3Qg
VWludDE2QXJyYXldIGJlY2FtZSBbb2JqZWN0IE9iamVjdF0KK0ZBSUwgRmxvYXQzMl8xMjhfYnVm
ZmVyX29mZnNldF9zbGljZV9sZW5ndGhfMTogY2xhc3MgW29iamVjdCBGbG9hdDMyQXJyYXldIGJl
Y2FtZSBbb2JqZWN0IE9iamVjdF0KK0ZBSUwgRmxvYXQ2NF8xMjhfYnVmZmVyX29mZnNldF9zbGlj
ZV9sZW5ndGhfMTogY2xhc3MgW29iamVjdCBGbG9hdDY0QXJyYXldIGJlY2FtZSBbb2JqZWN0IE9i
amVjdF0KK0ZBSUwgSW50MzJfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3RoXzE2OiBjbGFz
cyBbb2JqZWN0IEludDMyQXJyYXldIGJlY2FtZSBbb2JqZWN0IE9iamVjdF0KK0ZBSUwgVWludDMy
XzEyOF9idWZmZXJfb2Zmc2V0X3NsaWNlX2xlbmd0aF8xNjogY2xhc3MgW29iamVjdCBVaW50MzJB
cnJheV0gYmVjYW1lIFtvYmplY3QgT2JqZWN0XQorRkFJTCBJbnQ4XzEyOF9idWZmZXJfb2Zmc2V0
X3NsaWNlX2xlbmd0aF8xNjogY2xhc3MgW29iamVjdCBJbnQ4QXJyYXldIGJlY2FtZSBbb2JqZWN0
IE9iamVjdF0KK0ZBSUwgVWludDhfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3RoXzE2OiBj
bGFzcyBbb2JqZWN0IFVpbnQ4QXJyYXldIGJlY2FtZSBbb2JqZWN0IE9iamVjdF0KK0ZBSUwgSW50
MTZfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3RoXzE2OiBjbGFzcyBbb2JqZWN0IEludDE2
QXJyYXldIGJlY2FtZSBbb2JqZWN0IE9iamVjdF0KK0ZBSUwgVWludDE2XzEyOF9idWZmZXJfb2Zm
c2V0X3NsaWNlX2xlbmd0aF8xNjogY2xhc3MgW29iamVjdCBVaW50MTZBcnJheV0gYmVjYW1lIFtv
YmplY3QgT2JqZWN0XQorRkFJTCBGbG9hdDMyXzEyOF9idWZmZXJfb2Zmc2V0X3NsaWNlX2xlbmd0
aF8xNjogY2xhc3MgW29iamVjdCBGbG9hdDMyQXJyYXldIGJlY2FtZSBbb2JqZWN0IE9iamVjdF0K
K0ZBSUwgRmxvYXQ2NF8xMjhfYnVmZmVyX29mZnNldF9zbGljZV9sZW5ndGhfMTY6IGNsYXNzIFtv
YmplY3QgRmxvYXQ2NEFycmF5XSBiZWNhbWUgW29iamVjdCBPYmplY3RdCitQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvYXJyYXktbWVzc2FnZS1wYXNzaW5nLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9hcnJheS1tZXNzYWdlLXBhc3NpbmcuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZTUyZjVlCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvYXJyYXktbWVzc2FnZS1wYXNzaW5nLmh0
bWwKQEAgLTAsMCArMSwxNCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQg
SFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0i
Li4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJ3
ZWJnbC10ZXN0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0iZGVzY3Jp
cHRpb24iPjwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0ic2Ny
aXB0LXRlc3RzL2FycmF5LW1lc3NhZ2UtcGFzc2luZy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9zY3Jp
cHQtdGVzdHMvYXJyYXktbWVzc2FnZS1wYXNzaW5nLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52
YXMvd2ViZ2wvc2NyaXB0LXRlc3RzL2FycmF5LW1lc3NhZ2UtcGFzc2luZy5qcwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZjdhMGRlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvc2NyaXB0LXRlc3RzL2FycmF5LW1lc3NhZ2UtcGFz
c2luZy5qcwpAQCAtMCwwICsxLDE3OSBAQAord2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwor
CitkZXNjcmlwdGlvbignVGVzdCBwYXNzaW5nIEFycmF5QnVmZmVycyBhbmQgQXJyYXlCdWZmZXJW
aWV3cyBpbiBtZXNzYWdlcy4nKTsKK3dpbmRvdy50ZXN0c0NvbXBsZXRlID0gMDsKKworZnVuY3Rp
b24gY2xhc3NDb21wYXJlKHRlc3ROYW1lLCBnb3QsIHNlbnQpIHsKKyAgICB2YXIgY2xhc3NTdHJp
bmcgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nOworICAgIHZhciBnb3RDbGFzcyA9IGNsYXNz
U3RyaW5nLmNhbGwoZ290KTsKKyAgICB2YXIgc2VudENsYXNzID0gY2xhc3NTdHJpbmcuY2FsbChz
ZW50KTsKKyAgICBpZiAoZ290Q2xhc3MgIT09IHNlbnRDbGFzcykgeworICAgICAgICB0ZXN0RmFp
bGVkKHRlc3ROYW1lICsgIjogY2xhc3MgIiArIHNlbnRDbGFzcyArICIgYmVjYW1lICIgKyBnb3RD
bGFzcyk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9IGVsc2UgeworICAgICAgICB0ZXN0
UGFzc2VkKHRlc3ROYW1lICsgIjogY2xhc3NlcyBhcmUgIiArIHNlbnRDbGFzcyk7CisgICAgICAg
IHJldHVybiB0cnVlOworICAgIH0KK30KKworZnVuY3Rpb24gYnVmZmVyQ29tcGFyZSh0ZXN0TmFt
ZSwgZ290LCBzZW50KSB7CisgICAgaWYgKCFjbGFzc0NvbXBhcmUodGVzdE5hbWUsIGdvdCwgc2Vu
dCkpIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICBpZiAoZ290LmJ5dGVMZW5n
dGggIT09IHNlbnQuYnl0ZUxlbmd0aCkgeworICAgICAgICB0ZXN0RmFpbGVkKHRlc3ROYW1lICsg
IjogZXhwZWN0ZWQgYnl0ZUxlbmd0aCAiICsgc2VudC5ieXRlTGVuZ3RoICsgIiBieXRlcywgZ290
ICIgKyBnb3QuYnl0ZUxlbmd0aCk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9IGVsc2Ug
eworICAgICAgICB0ZXN0UGFzc2VkKHRlc3ROYW1lICsgIjogYnVmZmVyIGxlbmd0aHMgYXJlICIg
KyBzZW50LmJ5dGVMZW5ndGgpOworICAgIH0KKyAgICB2YXIgZ290UmVhZGVyID0gbmV3IFVpbnQ4
QXJyYXkoZ290KTsKKyAgICB2YXIgc2VudFJlYWRlciA9IG5ldyBVaW50OEFycmF5KHNlbnQpOwor
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2VudC5ieXRlTGVuZ3RoOyArK2kpIHsKKyAgICAgICAg
aWYgKGdvdFJlYWRlcltpXSAhPT0gc2VudFJlYWRlcltpXSkgeworICAgICAgICAgICAgdGVzdEZh
aWxlZCh0ZXN0TmFtZSArICI6IGJ1ZmZlcnMgZGlmZmVyIHN0YXJ0aW5nIGF0IGJ5dGUgIiArIGkp
OworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfQorICAgIHRlc3RQ
YXNzZWQodGVzdE5hbWUgKyAiOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMiKTsKKyAg
ICByZXR1cm4gdHJ1ZTsKK30KKworZnVuY3Rpb24gdmlld0NvbXBhcmUodGVzdE5hbWUsIGdvdCwg
c2VudCkgeworICAgIGlmICghY2xhc3NDb21wYXJlKHRlc3ROYW1lLCBnb3QsIHNlbnQpKSB7Cisg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgaWYgKCFidWZmZXJDb21wYXJlKHRlc3RO
YW1lLCBnb3QuYnVmZmVyLCBzZW50LmJ1ZmZlcikpIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIH0KKyAgICBpZiAoZ290LmJ5dGVPZmZzZXQgIT09IHNlbnQuYnl0ZU9mZnNldCkgeworICAg
ICAgICB0ZXN0RmFpbGVkKHRlc3ROYW1lICsgIjogb2Zmc2V0ICIgKyBzZW50LmJ5dGVPZmZzZXQg
KyAiIGJlY2FtZSAiICsgZ290LmJ5dGVPZmZzZXQpOworICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgfSBlbHNlIHsKKyAgICAgICAgdGVzdFBhc3NlZCh0ZXN0TmFtZSArICI6IG9mZnNldCBpcyAi
ICsgc2VudC5ieXRlT2Zmc2V0KTsKKyAgICB9CisgICAgaWYgKGdvdC5ieXRlTGVuZ3RoICE9PSBz
ZW50LmJ5dGVMZW5ndGgpIHsKKyAgICAgICAgdGVzdEZhaWxlZCh0ZXN0TmFtZSArICI6IGxlbmd0
aCAiICsgc2VudC5ieXRlTGVuZ3RoICsgIiBiZWNhbWUgIiArIGdvdC5ieXRlTGVuZ3RoKTsKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0gZWxzZSB7CisgICAgICAgIHRlc3RQYXNzZWQodGVz
dE5hbWUgKyAiOiBsZW5ndGggaXMgIiArIHNlbnQuYnl0ZUxlbmd0aCk7CisgICAgfQorICAgIHJl
dHVybiB0cnVlOworfQorCitmdW5jdGlvbiB0eXBlZEFycmF5Q29tcGFyZSh0ZXN0TmFtZSwgZ290
LCBzZW50KSB7CisgICAgaWYgKCF2aWV3Q29tcGFyZSh0ZXN0TmFtZSwgZ290LCBzZW50KSkgewor
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIGlmIChnb3QuQllURVNfUEVSX0VMRU1F
TlQgIT09IHNlbnQuQllURVNfUEVSX0VMRU1FTlQpIHsKKyAgICAgICAgLy8gU2FuaXR5IGNoZWNr
aW5nLgorICAgICAgICB0ZXN0RmFpbGVkKHRlc3ROYW1lICsgIjogZXhwZWN0ZWQgQllURVNfUEVS
X0VMRU1FTlQgIiArIHNlbnQuQllURVNfUEVSX0VMRU1FTlQgKyAiLCBzYXcgIiArIGdvdC5CWVRF
U19QRVJfRUxFTUVOVCk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9Cit9CisKK2Z1bmN0
aW9uIGRhdGFWaWV3Q29tcGFyZSh0ZXN0TmFtZSwgZ290LCBzZW50KSB7CisgICAgaWYgKCF2aWV3
Q29tcGFyZSh0ZXN0TmFtZSwgZ290LCBzZW50KSkgeworICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgfQorfQorCitmdW5jdGlvbiBjcmVhdGVCdWZmZXIobGVuZ3RoKSB7CisgICAgdmFyIGJ1ZmZl
ciA9IG5ldyBBcnJheUJ1ZmZlcihsZW5ndGgpOworICAgIHZhciB2aWV3ID0gbmV3IFVpbnQ4QXJy
YXkoYnVmZmVyKTsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgKytpKSB7CisgICAg
ICAgIHZpZXdbaV0gPSBpICsgMTsKKyAgICB9CisgICAgcmV0dXJuIGJ1ZmZlcjsKK30KKworZnVu
Y3Rpb24gY3JlYXRlVHlwZWRBcnJheSh0eXBlZEFycmF5VHlwZSwgbGVuZ3RoKSB7CisgICAgdmFy
IHZpZXcgPSBuZXcgdHlwZWRBcnJheVR5cGUobGVuZ3RoKTsKKyAgICBmb3IgKHZhciBpID0gMDsg
aSA8IGxlbmd0aDsgKytpKSB7CisgICAgICAgIHZpZXdbaV0gPSBpICsgMTsKKyAgICB9CisgICAg
cmV0dXJuIHZpZXc7Cit9CisKK2Z1bmN0aW9uIGNyZWF0ZVR5cGVkQXJyYXlPdmVyQnVmZmVyKHR5
cGVkQXJyYXlUeXBlLCB0eXBlZEFycmF5RWxlbWVudFNpemUsIGxlbmd0aCwgc3ViU3RhcnQsIHN1
Ykxlbmd0aCkgeworICAgIHZhciBidWZmZXIgPSBuZXcgQXJyYXlCdWZmZXIobGVuZ3RoICogdHlw
ZWRBcnJheUVsZW1lbnRTaXplKTsKKyAgICBpZiAoc3ViU3RhcnQgPT09IHVuZGVmaW5lZCkgewor
ICAgICAgICBzdWJTdGFydCA9IDA7CisgICAgICAgIHN1Ykxlbmd0aCA9IGxlbmd0aDsKKyAgICB9
CisgICAgcmV0dXJuIG5ldyB0eXBlZEFycmF5VHlwZShidWZmZXIsIHN1YlN0YXJ0ICogdHlwZWRB
cnJheUVsZW1lbnRTaXplLCBzdWJMZW5ndGgpOworfQorCit2YXIgYmFzaWNCdWZmZXJUeXBlcyA9
IFsKKyAgICBbIkludDMyIiwgSW50MzJBcnJheSwgNF0sCisgICAgWyJVaW50MzIiLCBVaW50MzJB
cnJheSwgNF0sCisgICAgWyJJbnQ4IiwgSW50OEFycmF5LCAxXSwKKyAgICBbIlVpbnQ4IiwgVWlu
dDhBcnJheSwgMV0sCisgICAgWyJJbnQxNiIsIEludDE2QXJyYXksIDJdLAorICAgIFsiVWludDE2
IiwgVWludDE2QXJyYXksIDJdLAorICAgIFsiRmxvYXQzMiIsIEZsb2F0MzJBcnJheSwgNF0sCisg
ICAgWyJGbG9hdDY0IiwgRmxvYXQ2NEFycmF5LCA4XQorXTsKKwordmFyIHRlc3RMaXN0ID0gWwor
ICAgIFsnQXJyYXlCdWZmZXIwJywgbmV3IEFycmF5QnVmZmVyKDApLCBidWZmZXJDb21wYXJlXSwK
KyAgICBbJ0FycmF5QnVmZmVyMScsIGNyZWF0ZUJ1ZmZlcigxKSwgYnVmZmVyQ29tcGFyZV0sCisg
ICAgWydBcnJheUJ1ZmZlcjEyOCcsIGNyZWF0ZUJ1ZmZlcigxMjgpLCBidWZmZXJDb21wYXJlXSwK
KyAgICBbJ0RhdGFWaWV3MCcsIG5ldyBEYXRhVmlldyhuZXcgQXJyYXlCdWZmZXIoMCkpLCBkYXRh
Vmlld0NvbXBhcmVdLAorICAgIFsnRGF0YVZpZXcxJywgbmV3IERhdGFWaWV3KGNyZWF0ZUJ1ZmZl
cigxKSksIGRhdGFWaWV3Q29tcGFyZV0sCisgICAgWydEYXRhVmlldzEyOCcsIG5ldyBEYXRhVmll
dyhjcmVhdGVCdWZmZXIoMTI4KSksIGRhdGFWaWV3Q29tcGFyZV0sCisgICAgWydEYXRhVmlldzFf
b2Zmc2V0X2F0X2VuZCcsIG5ldyBEYXRhVmlldyhjcmVhdGVCdWZmZXIoMSksIDEsIDApLCBkYXRh
Vmlld0NvbXBhcmVdLAorICAgIFsnRGF0YVZpZXcxMjhfb2Zmc2V0X2F0X2VuZCcsIG5ldyBEYXRh
VmlldyhjcmVhdGVCdWZmZXIoMTI4KSwgMTI4LCAwKSwgZGF0YVZpZXdDb21wYXJlXSwKKyAgICBb
J0RhdGFWaWV3MTI4X29mZnNldF9zbGljZV9sZW5ndGhfMCcsIG5ldyBEYXRhVmlldyhjcmVhdGVC
dWZmZXIoMTI4KSwgNjQsIDApLCBkYXRhVmlld0NvbXBhcmVdLAorICAgIFsnRGF0YVZpZXcxMjhf
b2Zmc2V0X3NsaWNlX2xlbmd0aF8xJywgbmV3IERhdGFWaWV3KGNyZWF0ZUJ1ZmZlcigxMjgpLCA2
NCwgMSksIGRhdGFWaWV3Q29tcGFyZV0sCisgICAgWydEYXRhVmlldzEyOF9vZmZzZXRfc2xpY2Vf
bGVuZ3RoXzE2JywgbmV3IERhdGFWaWV3KGNyZWF0ZUJ1ZmZlcigxMjgpLCA2NCwgMTYpLCBkYXRh
Vmlld0NvbXBhcmVdLAorICAgIFsnRGF0YVZpZXcxMjhfb2Zmc2V0X3NsaWNlX3VuYWxpZ25lZCcs
IG5ldyBEYXRhVmlldyhjcmVhdGVCdWZmZXIoMTI4KSwgNjMsIDE1KSwgZGF0YVZpZXdDb21wYXJl
XQorXTsKKwordGVzdExpc3QgPSB0ZXN0TGlzdC5jb25jYXQoYmFzaWNCdWZmZXJUeXBlcy5tYXAo
ZnVuY3Rpb24odCkKKyAgICB7cmV0dXJuIFt0WzBdICsgIl8wIiwgY3JlYXRlVHlwZWRBcnJheSh0
WzFdLCAwKSwgdHlwZWRBcnJheUNvbXBhcmVdO30pKTsKK3Rlc3RMaXN0ID0gdGVzdExpc3QuY29u
Y2F0KGJhc2ljQnVmZmVyVHlwZXMubWFwKGZ1bmN0aW9uKHQpCisgICAge3JldHVybiBbdFswXSAr
ICJfMSIsIGNyZWF0ZVR5cGVkQXJyYXkodFsxXSwgMSksIHR5cGVkQXJyYXlDb21wYXJlXTt9KSk7
Cit0ZXN0TGlzdCA9IHRlc3RMaXN0LmNvbmNhdChiYXNpY0J1ZmZlclR5cGVzLm1hcChmdW5jdGlv
bih0KQorICAgIHtyZXR1cm4gW3RbMF0gKyAiXzEyOCIsIGNyZWF0ZVR5cGVkQXJyYXkodFsxXSwg
MTI4KSwgdHlwZWRBcnJheUNvbXBhcmVdO30pKTsKK3Rlc3RMaXN0ID0gdGVzdExpc3QuY29uY2F0
KGJhc2ljQnVmZmVyVHlwZXMubWFwKGZ1bmN0aW9uKHQpCisgICAge3JldHVybiBbdFswXSArICJf
MF9idWZmZXIiLCBjcmVhdGVUeXBlZEFycmF5T3ZlckJ1ZmZlcih0WzFdLCB0WzJdLCAwKSwgdHlw
ZWRBcnJheUNvbXBhcmVdO30pKTsKK3Rlc3RMaXN0ID0gdGVzdExpc3QuY29uY2F0KGJhc2ljQnVm
ZmVyVHlwZXMubWFwKGZ1bmN0aW9uKHQpCisgICAge3JldHVybiBbdFswXSArICJfMV9idWZmZXIi
LCBjcmVhdGVUeXBlZEFycmF5T3ZlckJ1ZmZlcih0WzFdLCB0WzJdLCAxKSwgdHlwZWRBcnJheUNv
bXBhcmVdO30pKTsKK3Rlc3RMaXN0ID0gdGVzdExpc3QuY29uY2F0KGJhc2ljQnVmZmVyVHlwZXMu
bWFwKGZ1bmN0aW9uKHQpCisgICAge3JldHVybiBbdFswXSArICJfMTI4X2J1ZmZlciIsIGNyZWF0
ZVR5cGVkQXJyYXlPdmVyQnVmZmVyKHRbMV0sIHRbMl0sIDEyOCksIHR5cGVkQXJyYXlDb21wYXJl
XTt9KSk7Cit0ZXN0TGlzdCA9IHRlc3RMaXN0LmNvbmNhdChiYXNpY0J1ZmZlclR5cGVzLm1hcChm
dW5jdGlvbih0KQorICAgIHtyZXR1cm4gW3RbMF0gKyAiXzFfYnVmZmVyX29mZnNldF9hdF9lbmQi
LCBjcmVhdGVUeXBlZEFycmF5T3ZlckJ1ZmZlcih0WzFdLCB0WzJdLCAxLCAxLCAwKSwgdHlwZWRB
cnJheUNvbXBhcmVdO30pKTsKK3Rlc3RMaXN0ID0gdGVzdExpc3QuY29uY2F0KGJhc2ljQnVmZmVy
VHlwZXMubWFwKGZ1bmN0aW9uKHQpCisgICAge3JldHVybiBbdFswXSArICJfMTI4X2J1ZmZlcl9v
ZmZzZXRfYXRfZW5kIiwgY3JlYXRlVHlwZWRBcnJheU92ZXJCdWZmZXIodFsxXSwgdFsyXSwgMTI4
LCAxMjgsIDApLCB0eXBlZEFycmF5Q29tcGFyZV07fSkpOwordGVzdExpc3QgPSB0ZXN0TGlzdC5j
b25jYXQoYmFzaWNCdWZmZXJUeXBlcy5tYXAoZnVuY3Rpb24odCkKKyAgICB7cmV0dXJuIFt0WzBd
ICsgIl8xMjhfYnVmZmVyX29mZnNldF9zbGljZV9sZW5ndGhfMCIsIGNyZWF0ZVR5cGVkQXJyYXlP
dmVyQnVmZmVyKHRbMV0sIHRbMl0sIDEyOCwgNjQsIDApLCB0eXBlZEFycmF5Q29tcGFyZV07fSkp
OwordGVzdExpc3QgPSB0ZXN0TGlzdC5jb25jYXQoYmFzaWNCdWZmZXJUeXBlcy5tYXAoZnVuY3Rp
b24odCkKKyAgICB7cmV0dXJuIFt0WzBdICsgIl8xMjhfYnVmZmVyX29mZnNldF9zbGljZV9sZW5n
dGhfMSIsIGNyZWF0ZVR5cGVkQXJyYXlPdmVyQnVmZmVyKHRbMV0sIHRbMl0sIDEyOCwgNjQsIDEp
LCB0eXBlZEFycmF5Q29tcGFyZV07fSkpOwordGVzdExpc3QgPSB0ZXN0TGlzdC5jb25jYXQoYmFz
aWNCdWZmZXJUeXBlcy5tYXAoZnVuY3Rpb24odCkKKyAgICB7cmV0dXJuIFt0WzBdICsgIl8xMjhf
YnVmZmVyX29mZnNldF9zbGljZV9sZW5ndGhfMTYiLCBjcmVhdGVUeXBlZEFycmF5T3ZlckJ1ZmZl
cih0WzFdLCB0WzJdLCAxMjgsIDY0LCAxNiksIHR5cGVkQXJyYXlDb21wYXJlXTt9KSk7CisKK2Z1
bmN0aW9uIGRvbmVUZXN0KCkgeworICAgIGlmICgrK3dpbmRvdy50ZXN0c0NvbXBsZXRlID09IHRl
c3RMaXN0Lmxlbmd0aCkgeworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICB9Cit9CisKK2Z1
bmN0aW9uIHdpbmRvd0hhbmRsZU1lc3NhZ2UoZSkgeworICAgIHZhciBjdXJyZW50VGVzdCA9IHRl
c3RMaXN0W2UuZGF0YS50ZXN0TnVtXTsKKyAgICB2YXIgZXhwZWN0ZWRSZXN1bHQgPSBjdXJyZW50
VGVzdFsxXTsKKyAgICB0cnkgeworICAgICAgICBjdXJyZW50VGVzdFsyXShjdXJyZW50VGVzdFsw
XSwgZS5kYXRhLnRlc3REYXRhLCBleHBlY3RlZFJlc3VsdCk7CisgICAgfSBjYXRjaChlKSB7Cisg
ICAgICAgIHRlc3RGYWlsZWQoY3VycmVudFRlc3RbMF0gKyAiOiB1bmV4cGVjdGVkIGV4Y2VwdGlv
biAiICsgZSk7CisgICAgfQorICAgIGRvbmVUZXN0KCk7Cit9Cit3aW5kb3cuYWRkRXZlbnRMaXN0
ZW5lcignbWVzc2FnZScsIHdpbmRvd0hhbmRsZU1lc3NhZ2UpOworCitmb3IgKHZhciB0ID0gMDsg
dCA8IHRlc3RMaXN0Lmxlbmd0aDsgKyt0KSB7CisgICAgdmFyIGN1cnJlbnRUZXN0ID0gdGVzdExp
c3RbdF07CisgICAgdmFyIG1lc3NhZ2UgPSB7dGVzdE51bTogdCwgdGVzdERhdGE6IGN1cnJlbnRU
ZXN0WzFdfTsKKyAgICB3aW5kb3cucG9zdE1lc3NhZ2UobWVzc2FnZSwgJyonKTsKK30KKworc3Vj
Y2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9t
L1dpbmRvdy9zY3JpcHQtdGVzdHMvcG9zdG1lc3NhZ2UtY2xvbmUtZGVlcC1hcnJheS5qcyBiL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9zY3JpcHQtdGVzdHMvcG9zdG1lc3NhZ2UtY2xvbmUt
ZGVlcC1hcnJheS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZDFlYWQ5
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3NjcmlwdC10
ZXN0cy9wb3N0bWVzc2FnZS1jbG9uZS1kZWVwLWFycmF5LmpzCkBAIC0wLDAgKzEsNiBAQAorZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRlc2NyaXB0aW9uIikuaW5uZXJIVE1MID0gIlRlc3RzIHRo
YXQgd2Ugc3VwcG9ydCBjbG9uaW5nIGRlZXAoaXNoKSBhcnJheXMuIjsKK2RlZXBBcnJheT1bXTsK
K2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7IGkrKykKKyAgICBkZWVwQXJyYXk9W2RlZXBBcnJh
eV07Cit0cnlQb3N0TWVzc2FnZSgnZGVlcEFycmF5Jyk7Cit0cnlQb3N0TWVzc2FnZSgnImRvbmUi
Jyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvc2NyaXB0LXRlc3Rz
L3Bvc3RtZXNzYWdlLWNsb25lLXJlYWxseS1kZWVwLWFycmF5LmpzIGIvTGF5b3V0VGVzdHMvZmFz
dC9kb20vV2luZG93L3NjcmlwdC10ZXN0cy9wb3N0bWVzc2FnZS1jbG9uZS1yZWFsbHktZGVlcC1h
cnJheS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZmI2MDk2Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3NjcmlwdC10ZXN0cy9w
b3N0bWVzc2FnZS1jbG9uZS1yZWFsbHktZGVlcC1hcnJheS5qcwpAQCAtMCwwICsxLDYgQEAKK2Rv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJkZXNjcmlwdGlvbiIpLmlubmVySFRNTCA9ICJUZXN0cyB0
aGF0IHdlIGFib3J0IGNsb25pbmcgb3ZlcmRlZXAgYXJyYXlzLiI7CityZWFsbHlEZWVwQXJyYXk9
W107Citmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsgaSsrKQorICAgIHJlYWxseURlZXBBcnJh
eT1bcmVhbGx5RGVlcEFycmF5XTsKK3RyeVBvc3RNZXNzYWdlKCdyZWFsbHlEZWVwQXJyYXknLCB0
cnVlLCBudWxsLCBET01FeGNlcHRpb24uREFUQV9DTE9ORV9FUlIpOwordHJ5UG9zdE1lc3NhZ2Uo
JyJkb25lIicpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3Njcmlw
dC10ZXN0cy9wb3N0bWVzc2FnZS1jbG9uZS5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRv
dy9zY3JpcHQtdGVzdHMvcG9zdG1lc3NhZ2UtY2xvbmUuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uOGRiNWJhNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZG9tL1dpbmRvdy9zY3JpcHQtdGVzdHMvcG9zdG1lc3NhZ2UtY2xvbmUuanMKQEAgLTAsMCAr
MSwyNzQgQEAKK2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkZXNjcmlwdGlvbiIpLmlubmVySFRN
TCA9ICJUZXN0cyB0aGF0IHdlIGNsb25lIG9iamVjdCBoaWVyYXJjaGllcyI7CisKK3RyeVBvc3RN
ZXNzYWdlKCdudWxsJyk7Cit0cnlQb3N0TWVzc2FnZSgndW5kZWZpbmVkJyk7Cit0cnlQb3N0TWVz
c2FnZSgnMScpOwordHJ5UG9zdE1lc3NhZ2UoJ3RydWUnKTsKK3RyeVBvc3RNZXNzYWdlKCciMSIn
KTsKK3RyeVBvc3RNZXNzYWdlKCcoe30pJyk7Cit0cnlQb3N0TWVzc2FnZSgnKHthOjF9KScpOwor
dHJ5UG9zdE1lc3NhZ2UoJyh7YToiYSJ9KScpOwordHJ5UG9zdE1lc3NhZ2UoJyh7YjoiYSIsIGE6
ImIifSknKTsKK3RyeVBvc3RNZXNzYWdlKCcoe3AwOiJzdHJpbmcwIiwgcDE6InN0cmluZzEiLCBw
Mjoic3RyaW5nMiIsIHAzOiJzdHJpbmczIiwgcDQ6InN0cmluZzQiLCBwNToic3RyaW5nNSIsIHA2
OiJzdHJpbmc2IiwgcDc6InN0cmluZzciLCBwODoic3RyaW5nOCIsIHA5OiJzdHJpbmc5IiwgcDEw
OiJzdHJpbmcxMCIsIHAxMToic3RyaW5nMTEiLCBwMTI6InN0cmluZzEyIiwgcDEzOiJzdHJpbmcx
MyIsIHAxNDoic3RyaW5nMTQiLCBwMTU6InN0cmluZzE1IiwgcDE2OiJzdHJpbmcxNiIsIHAxNzoi
c3RyaW5nMTciLCBwMTg6InN0cmluZzE4IiwgcDE5OiJzdHJpbmcxOSJ9KScpOwordHJ5UG9zdE1l
c3NhZ2UoJyh7cDA6InN0cmluZzEiLCBwMToic3RyaW5nMSIsIHAyOiJzdHJpbmcyIiwgcDM6InN0
cmluZzMiLCBwNDoic3RyaW5nNCIsIHA1OiJzdHJpbmc1IiwgcDY6InN0cmluZzYiLCBwNzoic3Ry
aW5nNyIsIHA4OiJzdHJpbmc4IiwgcDk6InN0cmluZzkiLCBwMTA6InN0cmluZzEwIiwgcDExOiJz
dHJpbmcxMSIsIHAxMjoic3RyaW5nMTIiLCBwMTM6InN0cmluZzEzIiwgcDE0OiJzdHJpbmcxNCIs
IHAxNToic3RyaW5nMTUiLCBwMTY6InN0cmluZzE2IiwgcDE3OiJzdHJpbmcxNyIsIHAxODoic3Ry
aW5nMTgiLCBwMTk6InN0cmluZzE5In0pJyk7Cit0cnlQb3N0TWVzc2FnZSgnKHthOiIifSknKTsK
K3RyeVBvc3RNZXNzYWdlKCcoe2E6MH0pJyk7Cit0cnlQb3N0TWVzc2FnZSgnKHthOjF9KScpOwor
dHJ5UG9zdE1lc3NhZ2UoJ1tdJyk7Cit0cnlQb3N0TWVzc2FnZSgnWyJhIiwgImEiLCAiYiIsICJh
IiwgImIiXScpOwordHJ5UG9zdE1lc3NhZ2UoJ1siYSIsICJhIiwgImIiLCB7YToiYiIsIGI6ImEi
fV0nKTsKK3RyeVBvc3RNZXNzYWdlKCdbMSwyLDNdJyk7Cit0cnlQb3N0TWVzc2FnZSgnWywsMV0n
KTsKK3RyeVBvc3RNZXNzYWdlKCcoZnVuY3Rpb24oKXt9KScsIHRydWUsIG51bGwsIERPTUV4Y2Vw
dGlvbi5EQVRBX0NMT05FX0VSUik7Cit0cnlQb3N0TWVzc2FnZSgnbmV3IERhdGUoMTIzNDU2Nzg5
MDAwMCknKTsKK3RyeVBvc3RNZXNzYWdlKCduZXcgQ29uc3RydWN0b3JXaXRoUHJvdG90eXBlKCJm
b28iKScsIGZhbHNlLCAnKHtmaWVsZDoiZm9vIn0pJyk7CitjeWNsaWNPYmplY3Q9e307CitjeWNs
aWNPYmplY3Quc2VsZiA9IGN5Y2xpY09iamVjdDsKK3RyeVBvc3RNZXNzYWdlKCdjeWNsaWNPYmpl
Y3QnLCBmYWxzZSwgImN5Y2xpY09iamVjdCIpOworY3ljbGljQXJyYXk9W107CitjeWNsaWNBcnJh
eVswXSA9IGN5Y2xpY0FycmF5OwordHJ5UG9zdE1lc3NhZ2UoJ2N5Y2xpY0FycmF5JywgZmFsc2Us
ICJjeWNsaWNBcnJheSIpOworb2JqZWN0R3JhcGggPSB7fTsKK29iamVjdCA9IHt9Oworb2JqZWN0
R3JhcGguZ3JhcGgxID0gb2JqZWN0Oworb2JqZWN0R3JhcGguZ3JhcGgyID0gb2JqZWN0OwordHJ5
UG9zdE1lc3NhZ2UoJ29iamVjdEdyYXBoJywgZmFsc2UsICJvYmplY3RHcmFwaCIpOworYXJyYXlH
cmFwaCA9IFtvYmplY3QsIG9iamVjdF07Cit0cnlQb3N0TWVzc2FnZSgnYXJyYXlHcmFwaCcsIGZh
bHNlLCAiYXJyYXlHcmFwaCIpOwordHJ5UG9zdE1lc3NhZ2UoJ3dpbmRvdycsIHRydWUpOwordHJ5
UG9zdE1lc3NhZ2UoJyh7Z2V0IGEoKSB7IHRocm93ICJ4IiB9fSknLCB0cnVlKTsKKworaWYgKHdp
bmRvdy5ldmVudFNlbmRlcikgeworICAgIHZhciBmaWxlSW5wdXQgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgiZmlsZUlucHV0Iik7CisgICAgdmFyIGZpbGVSZWN0ID0gZmlsZUlucHV0LmdldENs
aWVudFJlY3RzKClbMF07CisgICAgdmFyIHRhcmdldFggPSBmaWxlUmVjdC5sZWZ0ICsgZmlsZVJl
Y3Qud2lkdGggLyAyOworICAgIHZhciB0YXJnZXRZID0gZmlsZVJlY3QudG9wICsgZmlsZVJlY3Qu
aGVpZ2h0IC8gMjsKKyAgICBldmVudFNlbmRlci5iZWdpbkRyYWdXaXRoRmlsZXMoWydnb3QtZmls
ZS11cGxvYWQuaHRtbCcsICdnb3QtZmlsZS11cGxvYWQtMi5odG1sJ10pOworICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlTW92ZVRvKHRhcmdldFgsIHRhcmdldFkpOworICAgIGV2ZW50U2VuZGVyLm1vdXNl
VXAoKTsKK30KK3ZhciBpbWFnZURhdGEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMi
KS5nZXRDb250ZXh0KCIyZCIpLmNyZWF0ZUltYWdlRGF0YSgxMCwxMCk7Citmb3IgKHZhciBpID0g
MDsgaSA8IGltYWdlRGF0YS5kYXRhLmxlbmd0aCAqIDQ7IGkrKykKKyAgICBpbWFnZURhdGEuZGF0
YVtpXSA9IGkgJSAyNTY7Cit2YXIgbXV0YXRlZEltYWdlRGF0YSA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoImNhbnZhcyIpLmdldENvbnRleHQoIjJkIikuY3JlYXRlSW1hZ2VEYXRhKDEwLDEwKTsK
K2ZvciAodmFyIGkgPSAwOyBpIDwgaW1hZ2VEYXRhLmRhdGEubGVuZ3RoICogNDsgaSsrKQorICAg
IG11dGF0ZWRJbWFnZURhdGEuZGF0YVtpXSA9IGkgJSAyNTY7Cit0cnlQb3N0TWVzc2FnZSgnaW1h
Z2VEYXRhJywgZmFsc2UsIGltYWdlRGF0YSk7Cit0cnlQb3N0TWVzc2FnZSgnaW1hZ2VEYXRhLmRh
dGEnLCB0cnVlLCBudWxsLCBET01FeGNlcHRpb24uREFUQV9DTE9ORV9FUlIpCit0cnlQb3N0TWVz
c2FnZSgnbXV0YXRlZEltYWdlRGF0YScsIGZhbHNlLCBpbWFnZURhdGEpOwordHJ5UG9zdE1lc3Nh
Z2UoJ211dGF0ZWRJbWFnZURhdGEuZGF0YScsIHRydWUsIG51bGwsIERPTUV4Y2VwdGlvbi5EQVRB
X0NMT05FX0VSUikKK2ZvciAodmFyIGkgPSAwOyBpIDwgaW1hZ2VEYXRhLmRhdGEubGVuZ3RoICog
NDsgaSsrKQorICAgIG11dGF0ZWRJbWFnZURhdGEuZGF0YVtpXSA9IDA7CisKK2Z1bmN0aW9uIHRo
dW5rKHMpIHsKKyAgICByZXR1cm4gIihmdW5jdGlvbigpIHsiICsgcyArICJ9KSgpIjsKK30KK3Ry
eVBvc3RNZXNzYWdlKHRodW5rKCdyZXR1cm4gNDI7JyksIGZhbHNlLCAnNDInKTsKK3RyeVBvc3RN
ZXNzYWdlKHRodW5rKCdyZXR1cm4gNDI7JyksIGZhbHNlLCB0aHVuaygncmV0dXJuIDQwICsgMjsn
KSk7Cit0cnlQb3N0TWVzc2FnZSh0aHVuaygncmV0dXJuIDQyOycpLCBmYWxzZSwgImV2YWxUaHVu
ayIsCisgICAgICAgICAgICAgICBmdW5jdGlvbih2KSB7IGRvUGFzc0ZhaWwodiA9PSA0MiwgImV2
YWxUaHVuayBPSyIpOyB9KQorCisvLyBPbmx5IGVudW1lcmFibGUgcHJvcGVydGllcyBzaG91bGQg
YmUgc2VyaWFsaXplZC4KK3RyeVBvc3RNZXNzYWdlKHRodW5rKCd2YXIgbyA9IHt4OiJoZWxsbyJ9
OyBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgInkiLCB7dmFsdWU6Imdvb2RieWUifSk7IHJldHVy
biBvOycpLCBmYWxzZSwgJyh7eDoiaGVsbG8ifSknKTsKKworLy8gSXQncyB1bmNsZWFyIHdoYXQg
d2Ugc2hvdWxkIGRvIGlmIGFuIGFjY2Vzc29yIG1vZGlmaWVzIGFuIG9iamVjdCBvdXQgZnJvbSB1
bmRlciB1cworLy8gd2hpbGUgd2UncmUgc2VyaWFsaXppbmcgaXQ7IHRoZSBzdGFuZGFyZCBkb2Vz
IG1hbmRhdGUgY2VydGFpbiBhc3BlY3RzIGFib3V0IGV2YWx1YXRpb24KKy8vIG9yZGVyLCB0aG91
Z2gsIGluY2x1ZGluZyB0aGF0IHByb3BlcnRpZXMgbXVzdCBiZSBwcm9jZXNzZWQgaW4gdGhlaXIg
ZW51bWVyYXRpb24gb3JkZXIuCit0cnlQb3N0TWVzc2FnZSh0aHVuaygKKyAgICAgICAgJ3ZhciBh
ID0gWzAsIDEsIDJdOyAnICsKKyAgICAgICAgJ3ZhciBiID0geyBnZXQgeCgpIHsgYVswXSA9IDQw
OyBhWzJdID0gNDI7IGEucHVzaCg0Myk7IHJldHVybiA0MTsgfX07ICcgKworICAgICAgICAnYVsx
XSA9IGI7ICcgKworICAgICAgICAncmV0dXJuIGE7JworICAgICksIGZhbHNlLCAiZXZhbFRodW5r
IiwgZnVuY3Rpb24odikgeworICAgICAgICBkb1Bhc3NGYWlsKHYubGVuZ3RoID09PSAzLCAibGVu
Z3RoIGNvcnJlY3QiKTsgLy8gdW5kZWZpbmVkCisgICAgICAgIGRvUGFzc0ZhaWwodlswXSA9PT0g
MCwgImV2YWx1YXRpb24gb3JkZXIgT0siKTsgLy8gbWFuZGF0b3J5CisgICAgICAgIGRvUGFzc0Zh
aWwodlsxXS54ID09PSA0MSwgImV2YWx1YXRpb24gb3JkZXIgT0svYWNjZXNzb3IgcmVhY2hlZCIp
OyAvLyBtYW5kYXRvcnkKKyAgICAgICAgZG9QYXNzRmFpbCh2WzJdID09PSA0MiwgImV2YWx1YXRp
b24gb3JkZXIgT0siKTsgLy8gbWFuZGF0b3J5CisgICAgfSk7CisKK3RyeVBvc3RNZXNzYWdlKHRo
dW5rKAorICAgICAgICAndmFyIGEgPSBbMCwgMSwgMl07ICcgKworICAgICAgICAndmFyIGIgPSB7
IGdldCB4KCkgeyBhLnBvcCgpOyByZXR1cm4gNDE7IH0gfTsgJyArCisgICAgICAgICdhWzFdID0g
YjsgJyArCisgICAgICAgICdyZXR1cm4gYTsnCisgICAgKSwgZmFsc2UsICJldmFsVGh1bmsiLCBm
dW5jdGlvbih2KSB7CisgICAgICAgIGRvUGFzc0ZhaWwodi5sZW5ndGggPT09IDMsICJsZW5ndGgg
Y29ycmVjdCIpOyAvLyB1bmRlZmluZWQKKyAgICAgICAgZG9QYXNzRmFpbCh2WzBdID09PSAwLCAi
aW5kZXggMCBPSyIpOyAvLyBtYW5kYXRvcnkKKyAgICAgICAgZG9QYXNzRmFpbCh2WzFdLnggPT09
IDQxLCAiYWNjZXNzb3IgcmVhY2hlZCIpOyAvLyBtYW5kYXRvcnkKKyAgICAgICAgZG9QYXNzRmFp
bCh2WzJdID09PSB1bmRlZmluZWQsICJpbmRleCAyIHVuZGVmaW5lZCIpOyAvLyB1bmRlZmluZWQK
KyAgICB9KTsKKwordHJ5UG9zdE1lc3NhZ2UodGh1bmsoCisgICAgICAgICd2YXIgYSA9IFswLCAx
LCAyXTsgJyArCisgICAgICAgICd2YXIgYiA9IHsgZ2V0IHgoKSB7IGEucG9wKCk7IHJldHVybiA0
MTsgfSB9OyAnICsKKyAgICAgICAgJ2FbMl0gPSBiOyAnICsKKyAgICAgICAgJ3JldHVybiBhOycK
KyAgICApLCBmYWxzZSwgImV2YWxUaHVuayIsIGZ1bmN0aW9uKHYpIHsKKyAgICAgICAgZG9QYXNz
RmFpbCh2Lmxlbmd0aCA9PT0gMywgImxlbmd0aCBjb3JyZWN0Iik7IC8vIHVuZGVmaW5lZAorICAg
ICAgICBkb1Bhc3NGYWlsKHZbMF0gPT09IDAsICJpbmRleCAwIE9LIik7IC8vIG1hbmRhdG9yeQor
ICAgICAgICBkb1Bhc3NGYWlsKHZbMV0gPT09IDEsICJpbmRleCAxIE9LIik7IC8vIG1hbmRhdG9y
eQorICAgICAgICBkb1Bhc3NGYWlsKHZbMl0ueCA9PT0gNDEsICJpbmRleCAyIE9LIik7IC8vIHVu
ZGVmaW5lZAorICAgIH0pOworCisvLyBOb3cgd2l0aCBvYmplY3RzISBUaGlzIGlzIGEgbGl0dGxl
IG1vcmUgdHJpY2t5IGJlY2F1c2UgdGhlIHN0YW5kYXJkIGRvZXMgbm90CisvLyBkZWZpbmUgYW4g
ZW51bWVyYXRpb24gb3JkZXIuCit0cnlQb3N0TWVzc2FnZSh0aHVuaygKKyAgICAgICAgJ3ZhciBh
ID0ge3AwOiAwLCBwMTogMX07ICcgKworICAgICAgICAnT2JqZWN0LmRlZmluZVByb3BlcnR5KGEs
ICJwMiIsIHtnZXQ6ZnVuY3Rpb24oKSB7ZGVsZXRlIGEucDM7IHJldHVybiA0MjsgfSwgZW51bWVy
YWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlfSk7ICcgKworICAgICAgICAnT2JqZWN0LmRl
ZmluZVByb3BlcnR5KGEsICJwMyIsIHtnZXQ6ZnVuY3Rpb24oKSB7ZGVsZXRlIGEucDI7IHJldHVy
biA0MzsgfSwgZW51bWVyYWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlfSk7ICcgKworICAg
ICAgICAnT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsICJwNCIsIHtnZXQ6ZnVuY3Rpb24oKSB7IGEu
cDUgPSA0NTsgcmV0dXJuIDQ0OyB9LCBlbnVtZXJhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRy
dWV9KTsgJyArCisgICAgICAgICdyZXR1cm4gYTsnCisgICAgKSwgZmFsc2UsICJldmFsVGh1bmsi
LCBmdW5jdGlvbih2KSB7CisgICAgICAgIGRvUGFzc0ZhaWwodi5wMCA9PT0gMCAmJiB2LnAxID09
PSAxLCAiYmFzaWMgcHJvcGVydGllcyBPSyIpOyAvLyBtYW5kYXRvcnkKKyAgICAgICAgZG9QYXNz
RmFpbCh2LnAyID09PSB1bmRlZmluZWQgJiYgdi5wMyAhPT0gdW5kZWZpbmVkIHx8CisgICAgICAg
ICAgICAgICAgICAgdi5wMiAhPT0gdW5kZWZpbmVkICYmIHYucDMgPT09IHVuZGVmaW5lZCwgIm9u
ZSBhY2Nlc3NvciB3YXMgcnVuIik7IC8vIG1hbmRhdG9yeQorICAgICAgICBkb1Bhc3NGYWlsKHYu
cDIgIT09IHVuZGVmaW5lZCB8fCBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHYsICJw
MiIpID09PSB1bmRlZmluZWQsICJwcm9wZXJ0eSB3YXMgcmVtb3ZlZCIpOyAvLyB1bmRlZmluZWQK
KyAgICAgICAgZG9QYXNzRmFpbCh2LnAzICE9PSB1bmRlZmluZWQgfHwgT2JqZWN0LmdldE93blBy
b3BlcnR5RGVzY3JpcHRvcih2LCAicDMiKSA9PT0gdW5kZWZpbmVkLCAicHJvcGVydHkgd2FzIHJl
bW92ZWQiKTsgLy8gdW5kZWZpbmVkCisgICAgICAgIGRvUGFzc0ZhaWwodi5wNCA9PT0gNDQsICJh
Y2Nlc3NvciB3YXMgcnVuIik7IC8vIG1hbmRhdG9yeQorICAgICAgICBkb1Bhc3NGYWlsKE9iamVj
dC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodiwgInA1IikgPT09IHVuZGVmaW5lZCwgImR5bmFt
aWMgcHJvcGVydHkgbm90IHNlbnQiKTsgLy8gdW5kZWZpbmVkCisgICAgfSk7CisKKy8vIE9iamVj
dHMgcmV0dXJuZWQgZnJvbSBhY2Nlc3NvcnMgc2hvdWxkIHN0aWxsIGJlIGNvYWxlc2NlZC4KK3Ry
eVBvc3RNZXNzYWdlKHRodW5rKAorICAgICAgICAndmFyIG9iamEgPSB7Z2V0IHAoKSB7IHJldHVy
biA0MjsgfX07ICcgKworICAgICAgICAndmFyIG1zZyA9IHtnZXQgYSgpIHsgcmV0dXJuIG9iamE7
IH0sIGI6IG9iamF9OyAnICsKKyAgICAgICAgJ3JldHVybiBtc2c7JworICAgICksIGZhbHNlLCAi
ZXZhbFRodW5rIiwgZnVuY3Rpb24odikgeworICAgICAgICAvLyBJbnRlcmVzdGluZ2x5LCB0aGUg
c3RhbmRhcmQgYWRtaXRzIHR3byBhbnN3ZXJzIGhlcmUhCisgICAgICAgIGRvUGFzc0ZhaWwodi5h
ID09PSB2LmIsICJyZWZlcmVuY2UgZXF1YWxpdHkgcHJlc2VydmVkIik7CisgICAgICAgIGRvUGFz
c0ZhaWwoKHYuYi5wID09PSA0MiAmJiB2LmEucCA9PT0gNDIpIHx8CisgICAgICAgICAgICAodi5i
LnAgPT09IG51bGwgJiYgdi5hLnAgPT09IG51bGwpLCAiYWNjZXNzb3JzIHVzZWQiKTsKKyAgICB9
KTsKK3RyeVBvc3RNZXNzYWdlKHRodW5rKAorICAgICAgICAndmFyIG9iamEgPSB7Z2V0IHAoKSB7
IHJldHVybiA0MjsgfX07ICcgKworICAgICAgICAndmFyIG1zZyA9IHthOiBvYmphLCBnZXQgYigp
IHsgcmV0dXJuIG9iamE7IH19OyAnICsKKyAgICAgICAgJ3JldHVybiBtc2c7JworICAgICksIGZh
bHNlLCAiZXZhbFRodW5rIiwgZnVuY3Rpb24odikgeworICAgICAgICAvLyBJbnRlcmVzdGluZ2x5
LCB0aGUgc3RhbmRhcmQgYWRtaXRzIHR3byBhbnN3ZXJzIGhlcmUhCisgICAgICAgIGRvUGFzc0Zh
aWwodi5hID09PSB2LmIsICJyZWZlcmVuY2UgZXF1YWxpdHkgcHJlc2VydmVkIChvcHBvc2l0ZSBv
cmRlcikiKTsKKyAgICAgICAgZG9QYXNzRmFpbCgodi5iLnAgPT09IDQyICYmIHYuYS5wID09PSA0
MikgfHwKKyAgICAgICAgICAgICAgICAgICAodi5iLnAgPT09IG51bGwgJiYgdi5hLnAgPT09IG51
bGwpLCAiYWNjZXNzb3JzIHVzZWQgKG9wcG9zaXRlIG9yZGVyKSIpOworICAgIH0pOworLy8gV2Ug
c2hvdWxkIG51bGxpZnkgdGhlIHJlc3VsdHMgZnJvbSBhY2Nlc3NvcnMgbW9yZSB0aGFuIG9uZSBs
ZXZlbCBkZWVwLAorLy8gYnV0IGxlYXZlIG90aGVyIGZpZWxkcyB1bnRvdWNoZWQuCit0cnlQb3N0
TWVzc2FnZSh0aHVuaygKKyAgICAgICAgJ3ZhciBvYmphID0ge2dldCBwKCkgeyByZXR1cm4gNDI7
IH0sIHE6IDQzfTsgJyArCisgICAgICAgICdyZXR1cm4ge2dldCBhKCkgeyByZXR1cm4gb2JqYTsg
fX07JworICAgICksIGZhbHNlLCAiZXZhbFRodW5rIiwgZnVuY3Rpb24odikgeworICAgICAgICBk
b1Bhc3NGYWlsKHYuYS5wID09PSBudWxsLCAiYWNjZXNzb3IgdmFsdWUgd2FzIG51bGxpZmllZCIp
OworICAgICAgICBkb1Bhc3NGYWlsKHYuYS5xID09PSA0MywgIm5vbi1hY2Nlc3NvciB2YWx1ZSB3
YXMgbm90IG51bGxpZmllZCIpOworICAgIH0pOwordHJ5UG9zdE1lc3NhZ2UodGh1bmsoCisgICAg
ICAgICd2YXIgb2JqYiA9IHtnZXQgcigpIHsgcmV0dXJuIDQ0OyB9LCB0OiA0NX07ICcgKworICAg
ICAgICAndmFyIG9iamEgPSB7Z2V0IHAoKSB7IHJldHVybiA0MjsgfSwgcTogNDMsIHM6IG9iamJ9
OyAnICsKKyAgICAgICAgJ3JldHVybiB7Z2V0IGEoKSB7IHJldHVybiBvYmphOyB9fTsnCisgICAg
KSwgZmFsc2UsICJldmFsVGh1bmsiLCBmdW5jdGlvbih2KSB7CisgICAgICAgIGRvUGFzc0ZhaWwo
di5hLnAgPT09IG51bGwsICJhY2Nlc3NvciB2YWx1ZSB3YXMgbnVsbGlmaWVkIik7CisgICAgICAg
IGRvUGFzc0ZhaWwodi5hLnEgPT09IDQzLCAibm9uLWFjY2Vzc29yIHZhbHVlIHdhcyBub3QgbnVs
bGlmaWVkIik7CisgICAgICAgIGRvUGFzc0ZhaWwodi5zICE9PSBudWxsLCAibm9uLWFjY2Vzc29y
IHZhbHVlIHdhcyBub3QgbnVsbGlmaWVkIik7CisgICAgICAgIGRvUGFzc0ZhaWwodi5hLnMuciA9
PT0gbnVsbCwgImFjY2Vzc29yIHZhbHVlIHdhcyBudWxsaWZpZWQiKTsKKyAgICAgICAgZG9QYXNz
RmFpbCh2LmEucy50ID09PSA0NSwgIm5vbi1hY2Nlc3NvciB2YWx1ZSB3YXMgbm90IG51bGxpZmll
ZCIpOworICAgIH0pOwordHJ5UG9zdE1lc3NhZ2UodGh1bmsoCisgICAgICAgICd2YXIgb2JqYiA9
IHtnZXQgcigpIHsgcmV0dXJuIDQ0OyB9LCB0OiA0NX07ICcgKworICAgICAgICAndmFyIG9iamEg
PSB7Z2V0IHAoKSB7IHJldHVybiA0MjsgfSwgcTogNDMsIHM6IFtvYmpiXX07ICcgKworICAgICAg
ICAncmV0dXJuIHtnZXQgYygpIHsgcmV0dXJuIDQ3OyB9LCBnZXQgYSgpIHsgcmV0dXJuIG9iamE7
IH0sIGdldCBiKCkgeyByZXR1cm4gNDY7IH0gfTsnCisgICAgKSwgZmFsc2UsICJldmFsVGh1bmsi
LCBmdW5jdGlvbih2KSB7CisgICAgICAgIGRvUGFzc0ZhaWwodi5iID09PSA0NiwgImFjY2Vzc29y
IHZhbHVlIHdhcyBub3QgbnVsbGlmaWVkIik7CisgICAgICAgIGRvUGFzc0ZhaWwodi5jID09PSA0
NywgImFjY2Vzc29yIHZhbHVlIHdhcyBub3QgbnVsbGlmaWVkIik7CisgICAgICAgIGRvUGFzc0Zh
aWwodi5hLnAgPT09IG51bGwsICJhY2Nlc3NvciB2YWx1ZSB3YXMgbnVsbGlmaWVkIik7CisgICAg
ICAgIGRvUGFzc0ZhaWwodi5hLnEgPT09IDQzLCAibm9uLWFjY2Vzc29yIHZhbHVlIHdhcyBub3Qg
bnVsbGlmaWVkIik7CisgICAgICAgIGRvUGFzc0ZhaWwodi5hLnMgIT09IG51bGwsICJub24tYWNj
ZXNzb3IgdmFsdWUgd2FzIG5vdCBudWxsaWZpZWQiKTsKKyAgICAgICAgZG9QYXNzRmFpbCh2LmEu
cyAhPT0gdW5kZWZpbmVkLCAibm9uLWFjY2Vzc29yIHZhbHVlIGlzIGRlZmluZWQiKTsKKyAgICAg
ICAgZG9QYXNzRmFpbCh2LmEuc1swXSAhPT0gbnVsbCwgIm5vbi1hY2Nlc3NvciB2YWx1ZSB3YXMg
bm90IG51bGxpZmllZCIpOworICAgICAgICBkb1Bhc3NGYWlsKHYuYS5zWzBdICE9PSB1bmRlZmlu
ZWQsICJub24tYWNjZXNzb3IgdmFsdWUgaXMgZGVmaW5lZCIpOworICAgICAgICBkb1Bhc3NGYWls
KHYuYS5zWzBdLnIgPT09IG51bGwsICJhY2Nlc3NvciB2YWx1ZSB3YXMgbnVsbGlmaWVkIik7Cisg
ICAgICAgIGRvUGFzc0ZhaWwodi5hLnNbMF0udCA9PT0gNDUsICJub24tYWNjZXNzb3IgdmFsdWUg
d2FzIG5vdCBudWxsaWZpZWQiKTsKKyAgICB9KTsKKworLy8gV2UgbmVlZCB0byBwYXNzIG91dCB0
aGUgZXhjZXB0aW9uIHJhaXNlZCBmcm9tIGludGVybmFsIGFjY2Vzc29ycy4KK3RyeVBvc3RNZXNz
YWdlKHRodW5rKAorICAgICAgICAncmV0dXJuIHtnZXQgYSgpIHsgdGhyb3cgImFjY2Vzc29yLWV4
biI7IH19OycKKyAgICApLCB0cnVlLCBudWxsLCAnYWNjZXNzb3ItZXhuJyk7CisvLyBXZSBzaG91
bGQgc3RpbGwgcmV0dXJuIHRoZSBleGNlcHRpb24gcmFpc2VkIGZyb20gbnVsbGVkLW91dCBhY2Nl
c3NvcnMuCit0cnlQb3N0TWVzc2FnZSh0aHVuaygKKyAgICAgICAgJ3ZhciBvYmphID0ge2dldCBw
KCkgeyB0aHJvdyAiYWNjZXNzb3ItZXhuIjsgfX07ICcgKworICAgICAgICAncmV0dXJuIHtnZXQg
YSgpIHsgcmV0dXJuIG9iamE7IH19OycKKyAgICApLCB0cnVlLCBudWxsLCAnYWNjZXNzb3ItZXhu
Jyk7CisvLyBXZSBzaG91bGQgcnVuIHRoZSBmaXJzdCBudWxsaWZpZWQgYWNjZXNzb3IsIGJ1dCBu
byBtb3JlLgordHJ5UG9zdE1lc3NhZ2UodGh1bmsoCisgICAgICAgICd3aW5kb3cuYmNhbGxlZCA9
IHVuZGVmaW5lZDsgJyArCisgICAgICAgICd3aW5kb3cuYWNhbGxlZCA9IHVuZGVmaW5lZDsgJyAr
CisgICAgICAgICd3aW5kb3cucGNhbGxlZCA9IHVuZGVmaW5lZDsgJyArCisgICAgICAgICd2YXIg
b2JqYiA9IHtnZXQgYigpIHsgd2luZG93LmJjYWxsZWQgPSB0cnVlOyByZXR1cm4gNDI7IH19OyAn
ICsKKyAgICAgICAgJ3ZhciBvYmphID0ge2dldCBhKCkgeyB3aW5kb3cuYWNhbGxlZCA9IHRydWU7
IHJldHVybiBvYmpiOyB9fTsgJyArCisgICAgICAgICdyZXR1cm4geyBnZXQgcCgpIHsgd2luZG93
LnBjYWxsZWQgPSB0cnVlOyByZXR1cm4gb2JqYTsgfX07JworICAgICksIGZhbHNlLCAiZXZhbFRo
dW5rIiwgZnVuY3Rpb24odikgeworICAgICAgICBkb1Bhc3NGYWlsKHYucC5hID09PSBudWxsLCAi
YWNjZXNzb3IgdmFsdWUgd2FzIG51bGxpZmllZCIpOworICAgICAgICBkb1Bhc3NGYWlsKHdpbmRv
dy5wY2FsbGVkID09PSB0cnVlLCAid2luZG93LnBjYWxsZWQgPT09IHRydWUiKTsKKyAgICAgICAg
ZG9QYXNzRmFpbCh3aW5kb3cuYWNhbGxlZCA9PT0gdHJ1ZSwgIndpbmRvdy5hY2FsbGVkID09PSB0
cnVlIik7CisgICAgICAgIGRvUGFzc0ZhaWwod2luZG93LmJjYWxsZWQgPT09IHVuZGVmaW5lZCwg
IndpbmRvdy5iY2FsbGVkID09PSB1bmRlZmluZWQiKTsKKyAgICB9KTsKKworLy8gUmVmZXJlbmNl
IGVxdWFsaXR5IGJldHdlZW4gZGF0ZXMgbXVzdCBiZSBtYWludGFpbmVkLgordHJ5UG9zdE1lc3Nh
Z2UodGh1bmsoCisgICAgICAgICd2YXIgZDEgPSBuZXcgRGF0ZSgxLDIsMyk7ICcgKworICAgICAg
ICAndmFyIGQyID0gbmV3IERhdGUoMSwyLDMpOyAnICsKKyAgICAgICAgJ3JldHVybiBbZDEsZDEs
ZDJdOycKKyAgICApLCBmYWxzZSwgImV2YWxUaHVuayIsIGZ1bmN0aW9uKHYpIHsKKyAgICAgICAg
ZG9QYXNzRmFpbChlcXVhbCh2WzBdLCBuZXcgRGF0ZSgxLDIsMykpLCAiRGF0ZSB2YWx1ZXMgY29y
cmVjdCAoMCkiKTsKKyAgICAgICAgZG9QYXNzRmFpbChlcXVhbCh2WzBdLCB2WzJdKSwgIkRhdGUg
dmFsdWVzIGNvcnJlY3QgKDEpIik7CisgICAgICAgIGRvUGFzc0ZhaWwodlswXSA9PT0gdlsxXSwg
IlJlZmVyZW5jZXMgdG8gZGF0ZXMgY29ycmVjdCAoMCkiKTsKKyAgICAgICAgZG9QYXNzRmFpbCh2
WzBdICE9PSB2WzJdLCAiUmVmZXJlbmNlcyB0byBkYXRlcyBjb3JyZWN0ICgxKSIpOworICAgIH0p
OworCisvLyBSZWZlcmVuY2UgZXF1YWxpdHkgYmV0d2VlbiByZWdleHBzIG11c3QgYmUgcHJlc2Vy
dmVkLgordHJ5UG9zdE1lc3NhZ2UodGh1bmsoCisgICAgICAgICd2YXIgcngxID0gbmV3IFJlZ0V4
cCgiZm9vIik7ICcgKworICAgICAgICAndmFyIHJ4MiA9IG5ldyBSZWdFeHAoImZvbyIpOyAnICsK
KyAgICAgICAgJ3ZhciByeDMgPSBuZXcgUmVnRXhwKCJmb28iLCAiZ2ltIik7ICcgKworICAgICAg
ICAncngzLmV4ZWMoImZvb2Zvb2ZvbyIpOyAnICsKKyAgICAgICAgJ2RvUGFzc0ZhaWwocngzLmxh
c3RJbmRleCA9PT0gMywgImxhc3RJbmRleCBpbml0aWFsbHkgY29ycmVjdDogd2FzICIgKyByeDMu
bGFzdEluZGV4KTsgJyArCisgICAgICAgICdyZXR1cm4gW3J4MSxyeDEscngyLHJ4M107JworICAg
ICksIGZhbHNlLCAiZXZhbFRodW5rIiwgZnVuY3Rpb24odikgeworICAgICAgICBkb1Bhc3NGYWls
KHZbMF0uc291cmNlID09PSAiZm9vIiwgIlJlZ2V4cCB2YWx1ZSBjb3JyZWN0ICgwKSIpOworICAg
ICAgICBkb1Bhc3NGYWlsKHZbMF0gPT09IHZbMV0sICJSZWZlcmVuY2VzIHRvIHJlZ2V4cHMgY29y
cmVjdCAoMCkiKTsKKyAgICAgICAgZG9QYXNzRmFpbCh2WzBdICE9PSB2WzJdLCAiUmVmZXJlbmNl
cyB0byByZWdleHBzIGNvcnJlY3QgKDEpIik7CisgICAgICAgIGRvUGFzc0ZhaWwodlswXS5nbG9i
YWwgPT09IGZhbHNlLCAiZ2xvYmFsIHNldCAoMCkiKTsKKyAgICAgICAgZG9QYXNzRmFpbCh2WzNd
Lmdsb2JhbCA9PT0gdHJ1ZSwgImdsb2JhbCBzZXQgKDEpIik7CisgICAgICAgIGRvUGFzc0ZhaWwo
dlswXS5pZ25vcmVDYXNlID09PSBmYWxzZSwgImlnbm9yZUNhc2Ugc2V0ICgwKSIpOworICAgICAg
ICBkb1Bhc3NGYWlsKHZbM10uaWdub3JlQ2FzZSA9PT0gdHJ1ZSwgImlnbm9yZUNhc2Ugc2V0ICgx
KSIpOworICAgICAgICBkb1Bhc3NGYWlsKHZbMF0ubXVsdGlsaW5lID09PSBmYWxzZSwgIm11bHRp
bGluZSBzZXQgKDApIik7CisgICAgICAgIGRvUGFzc0ZhaWwodlszXS5tdWx0aWxpbmUgPT09IHRy
dWUsICJtdWx0aWxpbmUgc2V0ICgxKSIpOworICAgICAgICBkb1Bhc3NGYWlsKHZbMF0ubGFzdElu
ZGV4ID09PSAwLCAibGFzdEluZGV4IGNvcnJlY3QgKDApIik7CisgICAgICAgIGRvUGFzc0ZhaWwo
dlszXS5sYXN0SW5kZXggPT09IDAsICJsYXN0SW5kZXggY29ycmVjdCAoMSkiKTsKKyAgICB9KTsK
KworaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgeworICAgIHRyeVBvc3RNZXNzYWdlKHRodW5rKAor
ICAgICAgICAnd2luZG93LmZpbGVMaXN0ID0gZmlsZUlucHV0LmZpbGVzOyAnICsKKyAgICAgICAg
J3dpbmRvdy5maWxlMCA9IGZpbGVMaXN0WzBdOyAnICsKKyAgICAgICAgJ3dpbmRvdy5maWxlMSA9
IGZpbGVMaXN0WzFdOyAnICsKKyAgICAgICAgJ3JldHVybiB3aW5kb3cuZmlsZUxpc3QubGVuZ3Ro
JyksIGZhbHNlLCAyKTsKKyAgICBkb1Bhc3NGYWlsKHdpbmRvdy5maWxlTGlzdFswXSA9PT0gd2lu
ZG93LmZpbGUwLCAic2FuaXR5IG9uIGZpbGUgcmVmZXJlbmNlIGVxdWFsaXR5IikKKyAgICAvLyBU
aGUgc3RhbmRhcmQgbWFuZGF0ZXMgdGhhdCB3ZSBkbyBfbm90XyBtYWludGFpbiByZWZlcmVuY2Ug
ZXF1YWxpdHkgZm9yIGZpbGVzIGluIGEgdHJhbnNmZXJyZWQgRmlsZUxpc3QuCisgICAgdHJ5UG9z
dE1lc3NhZ2UodGh1bmsoJ3JldHVybiBbd2luZG93LmZpbGUwLCB3aW5kb3cuZmlsZTBdOycKKyAg
ICAgICAgKSwgZmFsc2UsICJldmFsVGh1bmsiLCBmdW5jdGlvbih2KSB7IGRvUGFzc0ZhaWwodlsw
XSA9PT0gdlsxXSwgImZpbGUgcmVmZXJlbmNlcyB0cmFuc2ZlciIpfSk7CisgICAgdHJ5UG9zdE1l
c3NhZ2UodGh1bmsoJ3JldHVybiBbd2luZG93LmZpbGVMaXN0LCB3aW5kb3cuZmlsZTBdOycKKyAg
ICAgICAgKSwgZmFsc2UsICJldmFsVGh1bmsiLCBmdW5jdGlvbih2KSB7IGRvUGFzc0ZhaWwodlsw
XVswXSAhPT0gdlsxXSwgIkZpbGVMaXN0IHNob3VsZCBub3QgcmVzcGVjdCByZWZlcmVuY2UgZXF1
YWxpdHkiKX0pOworICAgIHRyeVBvc3RNZXNzYWdlKHRodW5rKCdyZXR1cm4gW3dpbmRvdy5maWxl
MCwgd2luZG93LmZpbGVMaXN0XTsnCisgICAgICAgICksIGZhbHNlLCAiZXZhbFRodW5rIiwgZnVu
Y3Rpb24odikgeyBkb1Bhc3NGYWlsKHZbMV1bMF0gIT09IHZbMF0sICJGaWxlTGlzdCBzaG91bGQg
bm90IHJlc3BlY3QgcmVmZXJlbmNlIGVxdWFsaXR5Iil9KTsKKyAgICB0cnlQb3N0TWVzc2FnZSh0
aHVuaygncmV0dXJuIFt3aW5kb3cuZmlsZUxpc3QsIHdpbmRvdy5maWxlTGlzdF07JworICAgICAg
ICApLCBmYWxzZSwgImV2YWxUaHVuayIsIGZ1bmN0aW9uKHYpIHsgZG9QYXNzRmFpbCh2WzBdID09
PSB2WzFdLCAiRmlsZUxpc3QgcmVzcGVjdHMgc2VsZi1yZWZlcmVuY2UgZXF1YWxpdHkiKX0pOwor
ICAgIHRyeVBvc3RNZXNzYWdlKHRodW5rKCdyZXR1cm4gW3dpbmRvdy5maWxlTGlzdCwgd2luZG93
LmZpbGUwLCB3aW5kb3cuZmlsZTFdJworICAgICAgICApLCBmYWxzZSwgImV2YWxUaHVuayIsIGZ1
bmN0aW9uKHYpIHsKKyAgICAgICAgICAgIGRvUGFzc0ZhaWwodlswXS5sZW5ndGggPT09IHdpbmRv
dy5maWxlTGlzdC5sZW5ndGgsICJGaWxlTGlzdCBsZW5ndGggc2VudCBjb3JyZWN0bHkiKTsKKyAg
ICAgICAgICAgIGRvUGFzc0ZhaWwodlswXVswXSAhPT0gdlsxXSwgIkZpbGVMaXN0IHNob3VsZCBu
b3QgcmVzcGVjdCByZWZlcmVuY2UgZXF1YWxpdHkgKDApIik7CisgICAgICAgICAgICBkb1Bhc3NG
YWlsKHZbMF1bMV0gIT09IHZbMl0sICJGaWxlTGlzdCBzaG91bGQgbm90IHJlc3BlY3QgcmVmZXJl
bmNlIGVxdWFsaXR5ICgxKSIpOworICAgICAgICAgICAgZG9QYXNzRmFpbCh2WzBdWzBdLm5hbWUg
PT0gd2luZG93LmZpbGUwLm5hbWUsICJGaWxlTGlzdCBwcmVzZXJ2ZXMgb3JkZXIgYW5kIGRhdGEg
KG5hbWUwKSIpOworICAgICAgICAgICAgZG9QYXNzRmFpbCh2WzBdWzFdLm5hbWUgPT0gd2luZG93
LmZpbGUxLm5hbWUsICJGaWxlTGlzdCBwcmVzZXJ2ZXMgb3JkZXIgYW5kIGRhdGEgKG5hbWUxKSIp
OworICAgICAgICAgICAgZG9QYXNzRmFpbChlcXVhbCh2WzBdWzBdLmxhc3RNb2RpZmllZERhdGUs
IHdpbmRvdy5maWxlMC5sYXN0TW9kaWZpZWREYXRlKSwgIkZpbGVMaXN0IHByZXNlcnZlcyBvcmRl
ciBhbmQgZGF0YSAoZGF0ZTApIik7CisgICAgICAgICAgICBkb1Bhc3NGYWlsKGVxdWFsKHZbMF1b
MV0ubGFzdE1vZGlmaWVkRGF0ZSwgd2luZG93LmZpbGUxLmxhc3RNb2RpZmllZERhdGUpLCAiRmls
ZUxpc3QgcHJlc2VydmVzIG9yZGVyIGFuZCBkYXRhIChkYXRlMSkiKTsKKyAgICAgICAgfSk7Cit9
Cit0cnlQb3N0TWVzc2FnZSgnImRvbmUiJyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9XaW5kb3cvc2NyaXB0LXRlc3RzL3Bvc3RtZXNzYWdlLXRlc3QuanMgYi9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9XaW5kb3cvc2NyaXB0LXRlc3RzL3Bvc3RtZXNzYWdlLXRlc3QuanMKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDc1MGE4OQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9zY3JpcHQtdGVzdHMvcG9zdG1lc3NhZ2UtdGVz
dC5qcwpAQCAtMCwwICsxLDE2OSBAQAoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikg
eworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Cit9CisKK3ZhciBjb25zb2xlID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKTsKKwordmFyIG1lc3NhZ2VzID0gW107Cit2YXIgZXZh
bFRodW5rcyA9IFtdOworCitmdW5jdGlvbiBlcXVhbChhY3R1YWwsIGV4cGVjdGVkKQoreworICAg
IGlmIChhY3R1YWwgPT09IGV4cGVjdGVkKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBpZiAo
dHlwZW9mIGFjdHVhbCAhPT0gdHlwZW9mIGV4cGVjdGVkKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgaWYgKChhY3R1YWwgaW5zdGFuY2VvZiBEYXRlKSB8fCAoZXhwZWN0ZWQgaW5zdGFuY2Vv
ZiBEYXRlKSkgeworICAgICAgICBpZiAoKGFjdHVhbCBpbnN0YW5jZW9mIERhdGUpICYmIChleHBl
Y3RlZCBpbnN0YW5jZW9mIERhdGUpKQorICAgICAgICAgICAgcmV0dXJuIChleHBlY3RlZCBpbnN0
YW5jZW9mIERhdGUpICYmIGFjdHVhbC5nZXRUaW1lKCkgPT0gZXhwZWN0ZWQuZ2V0VGltZSgpOwor
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIGlmIChBcnJheS5pc0FycmF5KGFjdHVh
bCkgfHwgQXJyYXkuaXNBcnJheShleHBlY3RlZCkpIHsKKyAgICAgICAgaWYgKCFBcnJheS5pc0Fy
cmF5KGFjdHVhbCkgfHwgIUFycmF5LmlzQXJyYXkoZXhwZWN0ZWQpKQorICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgICAgICBpZiAoYWN0dWFsLmxlbmd0aCAhPSBleHBlY3RlZC5sZW5ndGgp
CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
YWN0dWFsLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBpZiAoKGkgaW4gYWN0dWFsKSBeIChp
IGluIGV4cGVjdGVkKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAg
ICBpZiAoIWVxdWFsKGFjdHVhbFtpXSwgZXhwZWN0ZWRbaV0pKQorICAgICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAg
aWYgKGFjdHVhbC5jb25zdHJ1Y3RvciAhPT0gZXhwZWN0ZWQuY29uc3RydWN0b3IpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICB0cnkgeworICAgICAgICB2YXIga2V5cyA9IE9iamVjdC5rZXlz
KGFjdHVhbCk7CisgICAgfSBjYXRjaChlKSB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9
CisgICAgdHJ5IHsKKyAgICBpZiAoIWVxdWFsKGtleXMsIE9iamVjdC5rZXlzKGV4cGVjdGVkKSkp
CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9IGNhdGNoKGUpIHsKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgIH0KKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IGtleXMubGVuZ3RoOyBpKysp
IHsKKyAgICAgICAgaWYgKCFlcXVhbChhY3R1YWxba2V5c1tpXV0sIGV4cGVjdGVkW2tleXNbaV1d
KSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgcmV0dXJuIHRydWU7Cit9
CisKK2Z1bmN0aW9uIHNhZmVUb1N0cmluZyhvKSB7CisgICAgaWYgKG8gaW5zdGFuY2VvZiBEYXRl
KQorICAgICAgICByZXR1cm4gby50b0lTT1N0cmluZygpOworICAgIGlmICh0eXBlb2YgbyAhPT0g
Im9iamVjdCIgfHwgIW8pCisgICAgICAgIHJldHVybiBvOworICAgIHRyeSB7CisgICAgICAgIHJl
dHVybiBvLnRvU3RyaW5nKCk7CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICByZXR1cm4gT2Jq
ZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG8pICsgIihkZWZhdWx0IHRvU3RyaW5nIHRocmV3
ICIrZSsiKSI7CisgICAgfQorfQorCitmdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVk
KQoreworICAgIHZhciBhY3R1YWxWYWx1ZSA9IGV2YWwoYWN0dWFsKTsKKyAgICB2YXIgZXhwZWN0
ZWRWYWx1ZSA9IGV2YWwoZXhwZWN0ZWQpOworICAgIGlmIChlcXVhbChhY3R1YWxWYWx1ZSwgZXhw
ZWN0ZWRWYWx1ZSkpCisgICAgICAgIGNvbnNvbGUuaW5uZXJIVE1MICs9ICJQQVNTOiAiICsgYWN0
dWFsICsgIiBpcyAiICsgc2FmZVRvU3RyaW5nKGV4cGVjdGVkVmFsdWUpICsgIiBvZiB0eXBlICIg
KyB0eXBlb2YgYWN0dWFsVmFsdWUgKyAiPGJyPiI7CisgICAgZWxzZQorICAgICAgICBjb25zb2xl
LmlubmVySFRNTCArPSAiRkFJTDogIiArIGFjdHVhbCArICIgaXMgIiArIGFjdHVhbFZhbHVlICsg
IiBzaG91bGQgYmUgIiArIGV4cGVjdGVkVmFsdWUgKyAiIG9mIHR5cGUgIiArIHR5cGVvZiBleHBl
Y3RlZFZhbHVlICsgIjxicj4iOworfQorCitmdW5jdGlvbiBzaG91bGRCZUlkZW50aWNhbChhY3R1
YWwsIGV4cGVjdGVkKQoreworICAgIHZhciBhY3R1YWxWYWx1ZSA9IGV2YWwoYWN0dWFsKTsKKyAg
ICB2YXIgZXhwZWN0ZWRWYWx1ZSA9IGV2YWwoZXhwZWN0ZWQpOworICAgIGlmIChhY3R1YWxWYWx1
ZSA9PT0gZXhwZWN0ZWRWYWx1ZSkKKyAgICAgICAgY29uc29sZS5pbm5lckhUTUwgKz0gIlBBU1M6
ICIgKyBhY3R1YWwgKyAiIGlzID09PSB0byAiICsgZXhwZWN0ZWQgKyAiPGJyPiI7CisgICAgZWxz
ZQorICAgICAgICBjb25zb2xlLmlubmVySFRNTCArPSAiRkFJTDogIiArIGFjdHVhbCArICIgaXMg
bm90ID09PSB0byAiICsgZXhwZWN0ZWQgKyAiPGJyPiI7Cit9CisKK2Z1bmN0aW9uIGRvUGFzcyht
c2cpIHsKKyAgICBjb25zb2xlLmlubmVySFRNTCArPSAiUEFTUzogIiArIG1zZyArICI8YnI+IjsK
K30KKworZnVuY3Rpb24gZG9GYWlsKG1zZykgeworICAgIGNvbnNvbGUuaW5uZXJIVE1MICs9ICJG
QUlMOiAiICsgbXNnICsgIjxicj4iOworfQorCit3aW5kb3cuZG9QYXNzRmFpbCA9IGZ1bmN0aW9u
KHJlc3VsdCwgbXNnKSB7CisgICAgY29uc29sZS5pbm5lckhUTUwgKz0gKHJlc3VsdCA/ICJQQVNT
OiAiIDogIkZBSUw6ICIpICsgbXNnICsgIjxicj4iOworfQorCitmdW5jdGlvbiBvbm1lc3NhZ2Uo
ZXZ0KSB7CisgICAgZXZlbnREYXRhID0gZXZ0LmRhdGE7CisgICAgaWYgKGV2dC5kYXRhICE9PSBl
dnQuZGF0YSkKKyAgICAgICAgY29uc29sZS5pbm5lckhUTUwgKz0gIk1lc3NhZ2VFdmVudC5kYXRh
IGRvZXMgbm90IHByb2R1Y2UgdGhlIHNhbWUgdmFsdWUgb24gbXVsdGlwbGUgcXVlcmllcy48YnI+
IjsKKyAgICB2YXIgbWVzc2FnZSA9IG1lc3NhZ2VzLnNoaWZ0KCk7CisgICAgc3dpdGNoIChtZXNz
YWdlKSB7CisgICAgY2FzZSAiY3ljbGljT2JqZWN0IjoKKyAgICAgICAgc2hvdWxkQmVJZGVudGlj
YWwoImV2ZW50RGF0YSIsICJldmVudERhdGEuc2VsZiIpOworICAgICAgICBicmVhazsKKyAgICBj
YXNlICJjeWNsaWNBcnJheSI6CisgICAgICAgIHNob3VsZEJlSWRlbnRpY2FsKCJldmVudERhdGEi
LCAiZXZlbnREYXRhWzBdIik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgIm9iamVjdEdyYXBo
IjoKKyAgICAgICAgc2hvdWxkQmVJZGVudGljYWwoImV2ZW50RGF0YS5ncmFwaDEiLCAiZXZlbnRE
YXRhLmdyYXBoMiIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlICJhcnJheUdyYXBoIjoKKyAg
ICAgICAgc2hvdWxkQmVJZGVudGljYWwoImV2ZW50RGF0YVswXSIsICJldmVudERhdGFbMV0iKTsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSAiZXZhbFRodW5rIjoKKyAgICAgICAgdmFyIHRodW5r
ID0gZXZhbFRodW5rcy5zaGlmdCgpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgdGh1bmso
ZXZlbnREYXRhKTsKKyAgICAgICAgfSBjYXRjaChlKSB7CisgICAgICAgICAgICBkb0ZhaWwoInRo
cmV3IGV4Y2VwdGlvbjogIiArIGUpOworICAgICAgICAgICAgdGhyb3cgZTsKKyAgICAgICAgfQor
ICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBzaG91bGRCZSgiZXZlbnREYXRh
IiwgbWVzc2FnZSk7CisgICAgfQorCisgICAgaWYgKHNhZmVUb1N0cmluZyhldnQuZGF0YSkgPT0g
J2RvbmUnICYmIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworfQorCit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcign
bWVzc2FnZScsIG9ubWVzc2FnZSwgZmFsc2UpOworCitmdW5jdGlvbiBDb25zdHJ1Y3RvcldpdGhQ
cm90b3R5cGUocykgeworICAgIHRoaXMuZmllbGQgPSBzOworfQorCitDb25zdHJ1Y3RvcldpdGhQ
cm90b3R5cGUucHJvdG90eXBlID0geworICAgIHByb3RvUHJvcGVydHk6IDIwMTAKK307CisKK3dp
bmRvdy50cnlQb3N0TWVzc2FnZSA9IGZ1bmN0aW9uKG1lc3NhZ2UsIHNob3VsZFRocm93LCBleHBl
Y3RlZCwgZXhwZWN0ZWRFeGNlcHRpb25PckV2YWxUaHVuaykgeworICAgIGlmIChleHBlY3RlZCA9
PSAiZXZhbFRodW5rIikgeworICAgICAgdmFyIGV2YWxUaHVuayA9IGV4cGVjdGVkRXhjZXB0aW9u
T3JFdmFsVGh1bms7CisgICAgfSBlbHNlIHsKKyAgICAgIHZhciBleHBlY3RlZEV4Y2VwdGlvbiA9
IGV4cGVjdGVkRXhjZXB0aW9uT3JFdmFsVGh1bms7CisgICAgfQorICAgIHRyeSB7CisgICAgICAg
IHZhciB2YWx1ZSA9IGV2YWwobWVzc2FnZSk7CisgICAgICAgIHBvc3RNZXNzYWdlKHZhbHVlLCAi
KiIpOworICAgICAgICBpZiAoc2hvdWxkVGhyb3cpCisgICAgICAgICAgICBjb25zb2xlLmlubmVy
SFRNTCArPSAiRkFJTDogJ3Bvc3RNZXNzYWdlKCIrbWVzc2FnZSsiKScgc2hvdWxkIHRocm93IGJ1
dCBkaWRuJ3Q8YnI+IjsKKyAgICAgICAgbWVzc2FnZXMucHVzaChleHBlY3RlZCB8fCBtZXNzYWdl
KTsKKyAgICAgICAgaWYgKGV4cGVjdGVkID09ICJldmFsVGh1bmsiKSB7CisgICAgICAgICAgICBl
dmFsVGh1bmtzLnB1c2goZXZhbFRodW5rKTsKKyAgICAgICAgfQorICAgIH0gY2F0Y2goZSkgewor
ICAgICAgICBpZiAoc2hvdWxkVGhyb3cpIHsKKyAgICAgICAgICAgIGlmIChleHBlY3RlZEV4Y2Vw
dGlvbiA9PT0gdW5kZWZpbmVkIHx8IGV4cGVjdGVkRXhjZXB0aW9uID09IGUuY29kZSB8fCBleHBl
Y3RlZEV4Y2VwdGlvbiA9PSBlKSB7CisgICAgICAgICAgICAgICAgY29uc29sZS5pbm5lckhUTUwg
Kz0gIlBBU1M6ICdwb3N0TWVzc2FnZSgiK21lc3NhZ2UrIiknIHRocmV3ICIgKyBlICsgIjxicj4i
OworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBjb25zb2xlLmlubmVySFRN
TCArPSAiRkFJTDogJ3Bvc3RNZXNzYWdlKCIrbWVzc2FnZSsiKScgdGhyZXcgIiArIGUgKyAiLCB3
YXMgZXhwZWN0aW5nICIgKyBleHBlY3RlZEV4Y2VwdGlvbiArICI8YnI+IjsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBjb25zb2xlLmlubmVySFRNTCArPSAiRkFJ
TDogJ3Bvc3RNZXNzYWdlKCIrbWVzc2FnZSsiKScgc2hvdWxkIG5vdCB0aHJvdyBidXQgdGhyZXcg
IiArIGUgKyAiPGJyPiI7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9k
b20vV2luZG93L3dpbmRvdy1wb3N0bWVzc2FnZS1jbG9uZS1kZWVwLWFycmF5LWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcG9zdG1lc3NhZ2UtY2xvbmUt
ZGVlcC1hcnJheS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uMjdjZGRjOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRv
dy93aW5kb3ctcG9zdG1lc3NhZ2UtY2xvbmUtZGVlcC1hcnJheS1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSw1IEBACitUZXN0cyB0aGF0IHdlIHN1cHBvcnQgY2xvbmluZyBkZWVwKGlzaCkgYXJyYXlz
LgorCitQQVNTOiBldmVudERhdGEgaXMgW29iamVjdCBBcnJheV0oZGVmYXVsdCB0b1N0cmluZyB0
aHJldyBSYW5nZUVycm9yOiBNYXhpbXVtIGNhbGwgc3RhY2sgc2l6ZSBleGNlZWRlZC4pIG9mIHR5
cGUgb2JqZWN0CitQQVNTOiBldmVudERhdGEgaXMgZG9uZSBvZiB0eXBlIHN0cmluZworCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXBvc3RtZXNzYWdlLWNs
b25lLWRlZXAtYXJyYXkuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ct
cG9zdG1lc3NhZ2UtY2xvbmUtZGVlcC1hcnJheS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjFjM2QxYTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9XaW5kb3cvd2luZG93LXBvc3RtZXNzYWdlLWNsb25lLWRlZXAtYXJyYXkuaHRtbApAQCAt
MCwwICsxLDEwIEBACis8aHRtbD4KKzxoZWFkPjwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0iZGVz
Y3JpcHRpb24iPjwvZGl2PgorPGlucHV0IHR5cGU9ImZpbGUiIGlkPSJmaWxlSW5wdXQiIG11bHRp
cGxlPjwvaW5wdXQ+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3Jp
cHQtdGVzdHMvcG9zdG1lc3NhZ2UtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic2Ny
aXB0LXRlc3RzL3Bvc3RtZXNzYWdlLWNsb25lLWRlZXAtYXJyYXkuanMiPjwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dp
bmRvdy1wb3N0bWVzc2FnZS1jbG9uZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9XaW5kb3cvd2luZG93LXBvc3RtZXNzYWdlLWNsb25lLWV4cGVjdGVkLnR4dAppbmRleCBkMmYw
MTQ5Li4xNDg0NTQxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2lu
ZG93LXBvc3RtZXNzYWdlLWNsb25lLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9XaW5kb3cvd2luZG93LXBvc3RtZXNzYWdlLWNsb25lLWV4cGVjdGVkLnR4dApAQCAtMSw4
ICsxLDE2IEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUgNzQ6IFR5cGVFcnJvcjogTm8gZGVmYXVs
dCB2YWx1ZQorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDc0OiBUeXBlRXJyb3I6IE5vIGRlZmF1bHQg
dmFsdWUKIFRlc3RzIHRoYXQgd2UgY2xvbmUgb2JqZWN0IGhpZXJhcmNoaWVzCiAKLVBBU1M6ICdw
b3N0TWVzc2FnZShyZWFsbHlEZWVwQXJyYXkpJyB0aHJldyBSYW5nZUVycm9yOiBNYXhpbXVtIGNh
bGwgc3RhY2sgc2l6ZSBleGNlZWRlZC4KK0ZBSUw6ICdwb3N0TWVzc2FnZSgoZnVuY3Rpb24oKXt9
KSknIHNob3VsZCB0aHJvdyBidXQgZGlkbid0CiBQQVNTOiAncG9zdE1lc3NhZ2Uod2luZG93KScg
dGhyZXcgVHlwZUVycm9yOiBUeXBlIGVycm9yCiBQQVNTOiAncG9zdE1lc3NhZ2UoKHtnZXQgYSgp
IHsgdGhyb3cgIngiIH19KSknIHRocmV3IHgKK0ZBSUw6ICdwb3N0TWVzc2FnZShpbWFnZURhdGEu
ZGF0YSknIHNob3VsZCB0aHJvdyBidXQgZGlkbid0CitGQUlMOiAncG9zdE1lc3NhZ2UobXV0YXRl
ZEltYWdlRGF0YS5kYXRhKScgc2hvdWxkIHRocm93IGJ1dCBkaWRuJ3QKK1BBU1M6ICdwb3N0TWVz
c2FnZSgoZnVuY3Rpb24oKSB7cmV0dXJuIHtnZXQgYSgpIHsgdGhyb3cgImFjY2Vzc29yLWV4biI7
IH19O30pKCkpJyB0aHJldyBhY2Nlc3Nvci1leG4KK1BBU1M6ICdwb3N0TWVzc2FnZSgoZnVuY3Rp
b24oKSB7dmFyIG9iamEgPSB7Z2V0IHAoKSB7IHRocm93ICJhY2Nlc3Nvci1leG4iOyB9fTsgcmV0
dXJuIHtnZXQgYSgpIHsgcmV0dXJuIG9iamE7IH19O30pKCkpJyB0aHJldyBhY2Nlc3Nvci1leG4K
K1BBU1M6IGxhc3RJbmRleCBpbml0aWFsbHkgY29ycmVjdDogd2FzIDMKK1BBU1M6IHNhbml0eSBv
biBmaWxlIHJlZmVyZW5jZSBlcXVhbGl0eQogUEFTUzogZXZlbnREYXRhIGlzIG51bGwgb2YgdHlw
ZSBvYmplY3QKIFBBU1M6IGV2ZW50RGF0YSBpcyB1bmRlZmluZWQgb2YgdHlwZSB1bmRlZmluZWQK
IFBBU1M6IGV2ZW50RGF0YSBpcyAxIG9mIHR5cGUgbnVtYmVyCkBAIC0yMiwxNyArMzAsODggQEAg
UEFTUzogZXZlbnREYXRhIGlzIGEsYSxiLGEsYiBvZiB0eXBlIG9iamVjdAogUEFTUzogZXZlbnRE
YXRhIGlzIGEsYSxiLFtvYmplY3QgT2JqZWN0XSBvZiB0eXBlIG9iamVjdAogUEFTUzogZXZlbnRE
YXRhIGlzIDEsMiwzIG9mIHR5cGUgb2JqZWN0CiBQQVNTOiBldmVudERhdGEgaXMgLCwxIG9mIHR5
cGUgb2JqZWN0Ci1QQVNTOiBldmVudERhdGEgaXMgbnVsbCBvZiB0eXBlIG9iamVjdAorRkFJTDog
ZXZlbnREYXRhIGlzIG51bGwgc2hvdWxkIGJlIGZ1bmN0aW9uICgpIHt9IG9mIHR5cGUgZnVuY3Rp
b24KIFBBU1M6IGV2ZW50RGF0YSBpcyAyMDA5LTAyLTEzVDIzOjMxOjMwLjAwMFogb2YgdHlwZSBv
YmplY3QKIFBBU1M6IGV2ZW50RGF0YSBpcyBbb2JqZWN0IE9iamVjdF0gb2YgdHlwZSBvYmplY3QK
IFBBU1M6IGV2ZW50RGF0YSBpcyA9PT0gdG8gZXZlbnREYXRhLnNlbGYKIFBBU1M6IGV2ZW50RGF0
YSBpcyA9PT0gdG8gZXZlbnREYXRhWzBdCiBQQVNTOiBldmVudERhdGEuZ3JhcGgxIGlzID09PSB0
byBldmVudERhdGEuZ3JhcGgyCiBQQVNTOiBldmVudERhdGFbMF0gaXMgPT09IHRvIGV2ZW50RGF0
YVsxXQotUEFTUzogZXZlbnREYXRhIGlzIFtvYmplY3QgQXJyYXldKGRlZmF1bHQgdG9TdHJpbmcg
dGhyZXcgUmFuZ2VFcnJvcjogTWF4aW11bSBjYWxsIHN0YWNrIHNpemUgZXhjZWVkZWQuKSBvZiB0
eXBlIG9iamVjdAotUEFTUzogZXZlbnREYXRhIGlzIFtvYmplY3QgRmlsZV0gb2YgdHlwZSBvYmpl
Y3QKLVBBU1M6IGV2ZW50RGF0YSBpcyBbb2JqZWN0IEZpbGVMaXN0XSBvZiB0eXBlIG9iamVjdAog
UEFTUzogZXZlbnREYXRhIGlzIFtvYmplY3QgSW1hZ2VEYXRhXSBvZiB0eXBlIG9iamVjdAogUEFT
UzogZXZlbnREYXRhIGlzIFtvYmplY3QgSW1hZ2VEYXRhXSBvZiB0eXBlIG9iamVjdAorUEFTUzog
ZXZlbnREYXRhIGlzIDQyIG9mIHR5cGUgbnVtYmVyCitQQVNTOiBldmVudERhdGEgaXMgNDIgb2Yg
dHlwZSBudW1iZXIKK1BBU1M6IGV2YWxUaHVuayBPSworUEFTUzogZXZlbnREYXRhIGlzIFtvYmpl
Y3QgT2JqZWN0XSBvZiB0eXBlIG9iamVjdAorUEFTUzogbGVuZ3RoIGNvcnJlY3QKK1BBU1M6IGV2
YWx1YXRpb24gb3JkZXIgT0sKK1BBU1M6IGV2YWx1YXRpb24gb3JkZXIgT0svYWNjZXNzb3IgcmVh
Y2hlZAorUEFTUzogZXZhbHVhdGlvbiBvcmRlciBPSworUEFTUzogbGVuZ3RoIGNvcnJlY3QKK1BB
U1M6IGluZGV4IDAgT0sKK1BBU1M6IGFjY2Vzc29yIHJlYWNoZWQKK1BBU1M6IGluZGV4IDIgdW5k
ZWZpbmVkCitQQVNTOiBsZW5ndGggY29ycmVjdAorUEFTUzogaW5kZXggMCBPSworUEFTUzogaW5k
ZXggMSBPSworUEFTUzogaW5kZXggMiBPSworUEFTUzogYmFzaWMgcHJvcGVydGllcyBPSworUEFT
Uzogb25lIGFjY2Vzc29yIHdhcyBydW4KK1BBU1M6IHByb3BlcnR5IHdhcyByZW1vdmVkCitQQVNT
OiBwcm9wZXJ0eSB3YXMgcmVtb3ZlZAorUEFTUzogYWNjZXNzb3Igd2FzIHJ1bgorUEFTUzogZHlu
YW1pYyBwcm9wZXJ0eSBub3Qgc2VudAorUEFTUzogcmVmZXJlbmNlIGVxdWFsaXR5IHByZXNlcnZl
ZAorUEFTUzogYWNjZXNzb3JzIHVzZWQKK1BBU1M6IHJlZmVyZW5jZSBlcXVhbGl0eSBwcmVzZXJ2
ZWQgKG9wcG9zaXRlIG9yZGVyKQorUEFTUzogYWNjZXNzb3JzIHVzZWQgKG9wcG9zaXRlIG9yZGVy
KQorRkFJTDogYWNjZXNzb3IgdmFsdWUgd2FzIG51bGxpZmllZAorUEFTUzogbm9uLWFjY2Vzc29y
IHZhbHVlIHdhcyBub3QgbnVsbGlmaWVkCitGQUlMOiBhY2Nlc3NvciB2YWx1ZSB3YXMgbnVsbGlm
aWVkCitQQVNTOiBub24tYWNjZXNzb3IgdmFsdWUgd2FzIG5vdCBudWxsaWZpZWQKK1BBU1M6IG5v
bi1hY2Nlc3NvciB2YWx1ZSB3YXMgbm90IG51bGxpZmllZAorRkFJTDogYWNjZXNzb3IgdmFsdWUg
d2FzIG51bGxpZmllZAorUEFTUzogbm9uLWFjY2Vzc29yIHZhbHVlIHdhcyBub3QgbnVsbGlmaWVk
CitQQVNTOiBhY2Nlc3NvciB2YWx1ZSB3YXMgbm90IG51bGxpZmllZAorUEFTUzogYWNjZXNzb3Ig
dmFsdWUgd2FzIG5vdCBudWxsaWZpZWQKK0ZBSUw6IGFjY2Vzc29yIHZhbHVlIHdhcyBudWxsaWZp
ZWQKK1BBU1M6IG5vbi1hY2Nlc3NvciB2YWx1ZSB3YXMgbm90IG51bGxpZmllZAorUEFTUzogbm9u
LWFjY2Vzc29yIHZhbHVlIHdhcyBub3QgbnVsbGlmaWVkCitQQVNTOiBub24tYWNjZXNzb3IgdmFs
dWUgaXMgZGVmaW5lZAorUEFTUzogbm9uLWFjY2Vzc29yIHZhbHVlIHdhcyBub3QgbnVsbGlmaWVk
CitQQVNTOiBub24tYWNjZXNzb3IgdmFsdWUgaXMgZGVmaW5lZAorRkFJTDogYWNjZXNzb3IgdmFs
dWUgd2FzIG51bGxpZmllZAorUEFTUzogbm9uLWFjY2Vzc29yIHZhbHVlIHdhcyBub3QgbnVsbGlm
aWVkCitGQUlMOiBhY2Nlc3NvciB2YWx1ZSB3YXMgbnVsbGlmaWVkCitQQVNTOiB3aW5kb3cucGNh
bGxlZCA9PT0gdHJ1ZQorUEFTUzogd2luZG93LmFjYWxsZWQgPT09IHRydWUKK0ZBSUw6IHdpbmRv
dy5iY2FsbGVkID09PSB1bmRlZmluZWQKK1BBU1M6IERhdGUgdmFsdWVzIGNvcnJlY3QgKDApCitQ
QVNTOiBEYXRlIHZhbHVlcyBjb3JyZWN0ICgxKQorRkFJTDogUmVmZXJlbmNlcyB0byBkYXRlcyBj
b3JyZWN0ICgwKQorUEFTUzogUmVmZXJlbmNlcyB0byBkYXRlcyBjb3JyZWN0ICgxKQorUEFTUzog
UmVnZXhwIHZhbHVlIGNvcnJlY3QgKDApCitGQUlMOiBSZWZlcmVuY2VzIHRvIHJlZ2V4cHMgY29y
cmVjdCAoMCkKK1BBU1M6IFJlZmVyZW5jZXMgdG8gcmVnZXhwcyBjb3JyZWN0ICgxKQorUEFTUzog
Z2xvYmFsIHNldCAoMCkKK1BBU1M6IGdsb2JhbCBzZXQgKDEpCitQQVNTOiBpZ25vcmVDYXNlIHNl
dCAoMCkKK1BBU1M6IGlnbm9yZUNhc2Ugc2V0ICgxKQorUEFTUzogbXVsdGlsaW5lIHNldCAoMCkK
K1BBU1M6IG11bHRpbGluZSBzZXQgKDEpCitQQVNTOiBsYXN0SW5kZXggY29ycmVjdCAoMCkKK1BB
U1M6IGxhc3RJbmRleCBjb3JyZWN0ICgxKQorUEFTUzogZXZlbnREYXRhIGlzIDIgb2YgdHlwZSBu
dW1iZXIKK0ZBSUw6IGZpbGUgcmVmZXJlbmNlcyB0cmFuc2ZlcgorUEFTUzogRmlsZUxpc3Qgc2hv
dWxkIG5vdCByZXNwZWN0IHJlZmVyZW5jZSBlcXVhbGl0eQorUEFTUzogRmlsZUxpc3Qgc2hvdWxk
IG5vdCByZXNwZWN0IHJlZmVyZW5jZSBlcXVhbGl0eQorRkFJTDogRmlsZUxpc3QgcmVzcGVjdHMg
c2VsZi1yZWZlcmVuY2UgZXF1YWxpdHkKK1BBU1M6IEZpbGVMaXN0IGxlbmd0aCBzZW50IGNvcnJl
Y3RseQorUEFTUzogRmlsZUxpc3Qgc2hvdWxkIG5vdCByZXNwZWN0IHJlZmVyZW5jZSBlcXVhbGl0
eSAoMCkKK1BBU1M6IEZpbGVMaXN0IHNob3VsZCBub3QgcmVzcGVjdCByZWZlcmVuY2UgZXF1YWxp
dHkgKDEpCitQQVNTOiBGaWxlTGlzdCBwcmVzZXJ2ZXMgb3JkZXIgYW5kIGRhdGEgKG5hbWUwKQor
UEFTUzogRmlsZUxpc3QgcHJlc2VydmVzIG9yZGVyIGFuZCBkYXRhIChuYW1lMSkKK1BBU1M6IEZp
bGVMaXN0IHByZXNlcnZlcyBvcmRlciBhbmQgZGF0YSAoZGF0ZTApCitQQVNTOiBGaWxlTGlzdCBw
cmVzZXJ2ZXMgb3JkZXIgYW5kIGRhdGEgKGRhdGUxKQogUEFTUzogZXZlbnREYXRhIGlzIGRvbmUg
b2YgdHlwZSBzdHJpbmcKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93
L3dpbmRvdy1wb3N0bWVzc2FnZS1jbG9uZS1yZWFsbHktZGVlcC1hcnJheS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXBvc3RtZXNzYWdlLWNsb25lLXJl
YWxseS1kZWVwLWFycmF5LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi42MWVhODEzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20v
V2luZG93L3dpbmRvdy1wb3N0bWVzc2FnZS1jbG9uZS1yZWFsbHktZGVlcC1hcnJheS1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSw1IEBACitUZXN0cyB0aGF0IHdlIGFib3J0IGNsb25pbmcgb3ZlcmRl
ZXAgYXJyYXlzLgorCitGQUlMOiAncG9zdE1lc3NhZ2UocmVhbGx5RGVlcEFycmF5KScgdGhyZXcg
UmFuZ2VFcnJvcjogTWF4aW11bSBjYWxsIHN0YWNrIHNpemUgZXhjZWVkZWQuLCB3YXMgZXhwZWN0
aW5nIDI1CitQQVNTOiBldmVudERhdGEgaXMgZG9uZSBvZiB0eXBlIHN0cmluZworCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXBvc3RtZXNzYWdlLWNsb25l
LXJlYWxseS1kZWVwLWFycmF5Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2lu
ZG93LXBvc3RtZXNzYWdlLWNsb25lLXJlYWxseS1kZWVwLWFycmF5Lmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWI2ZDY2YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcG9zdG1lc3NhZ2UtY2xvbmUtcmVhbGx5LWRl
ZXAtYXJyYXkuaHRtbApAQCAtMCwwICsxLDEwIEBACis8aHRtbD4KKzxoZWFkPjwvaGVhZD4KKzxi
b2R5PgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgorPGlucHV0IHR5cGU9ImZpbGUiIGlk
PSJmaWxlSW5wdXQiIG11bHRpcGxlPjwvaW5wdXQ+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4K
KzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvcG9zdG1lc3NhZ2UtdGVzdC5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3Bvc3RtZXNzYWdlLWNsb25lLXJlYWxseS1kZWVw
LWFycmF5LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcG9zdG1lc3NhZ2UtY2xvbmUuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcG9zdG1lc3NhZ2UtY2xvbmUuaHRtbApp
bmRleCBmMjgzNTFjLi44ZDYwNjAzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9X
aW5kb3cvd2luZG93LXBvc3RtZXNzYWdlLWNsb25lLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9kb20vV2luZG93L3dpbmRvdy1wb3N0bWVzc2FnZS1jbG9uZS5odG1sCkBAIC0yLDIxNiArMiw5
IEBACiA8aGVhZD48L2hlYWQ+CiA8Ym9keT4KIDxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4K
LTxpbnB1dCB0eXBlPSJmaWxlIiBpZD0iZmlsZUlucHV0Ij48L2lucHV0PgorPGlucHV0IHR5cGU9
ImZpbGUiIGlkPSJmaWxlSW5wdXQiIG11bHRpcGxlPjwvaW5wdXQ+CiA8ZGl2IGlkPSJjb25zb2xl
Ij48L2Rpdj4KLTxzY3JpcHQ+Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0g
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgIGxheW91dFRlc3RDb250
cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKLX0KLQotdmFyIGNvbnNvbGUgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgiY29uc29sZSIpOwotCi12YXIgbWVzc2FnZXMgPSBbXTsKLQotZnVuY3Rpb24g
ZXF1YWwoYWN0dWFsLCBleHBlY3RlZCkKLXsKLSAgICBpZiAoYWN0dWFsID09PSBleHBlY3RlZCkK
LSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgaWYgKHR5cGVvZiBhY3R1YWwgIT09IHR5cGVvZiBl
eHBlY3RlZCkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICgoYWN0dWFsIGluc3RhbmNl
b2YgRGF0ZSkgfHwgKGV4cGVjdGVkIGluc3RhbmNlb2YgRGF0ZSkpIHsKLSAgICAgICAgaWYgKChh
Y3R1YWwgaW5zdGFuY2VvZiBEYXRlKSAmJiAoZXhwZWN0ZWQgaW5zdGFuY2VvZiBEYXRlKSkKLSAg
ICAgICAgICAgIHJldHVybiAoZXhwZWN0ZWQgaW5zdGFuY2VvZiBEYXRlKSAmJiBhY3R1YWwuZ2V0
VGltZSgpID09IGV4cGVjdGVkLmdldFRpbWUoKTsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
IH0KLSAgICBpZiAoQXJyYXkuaXNBcnJheShhY3R1YWwpIHx8IEFycmF5LmlzQXJyYXkoZXhwZWN0
ZWQpKSB7Ci0gICAgICAgIGlmICghQXJyYXkuaXNBcnJheShhY3R1YWwpIHx8ICFBcnJheS5pc0Fy
cmF5KGV4cGVjdGVkKSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgaWYgKGFj
dHVhbC5sZW5ndGggIT0gZXhwZWN0ZWQubGVuZ3RoKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFjdHVhbC5sZW5ndGg7IGkrKykgewotICAg
ICAgICAgICAgaWYgKChpIGluIGFjdHVhbCkgXiAoaSBpbiBleHBlY3RlZCkpCi0gICAgICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgaWYgKCFlcXVhbChhY3R1YWxbaV0sIGV4
cGVjdGVkW2ldKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0KLSAg
ICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotICAgIGlmIChhY3R1YWwuY29uc3RydWN0b3IgIT09
IGV4cGVjdGVkLmNvbnN0cnVjdG9yKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgdHJ5IHsK
LSAgICAgICAgdmFyIGtleXMgPSBPYmplY3Qua2V5cyhhY3R1YWwpOwotICAgIH0gY2F0Y2goZSkg
ewotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotICAgIHRyeSB7Ci0gICAgaWYgKCFlcXVh
bChrZXlzLCBPYmplY3Qua2V5cyhleHBlY3RlZCkpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0g
ICAgfSBjYXRjaChlKSB7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0gICAgZm9yICh2
YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgIGlmICghZXF1YWwoYWN0
dWFsW2tleXNbaV1dLCBleHBlY3RlZFtrZXlzW2ldXSkpCi0gICAgICAgICAgICByZXR1cm4gZmFs
c2U7Ci0gICAgfQotICAgIHJldHVybiB0cnVlOwotfQotCi1mdW5jdGlvbiBzYWZlVG9TdHJpbmco
bykgewotICAgIGlmIChvIGluc3RhbmNlb2YgRGF0ZSkKLSAgICAgICAgcmV0dXJuIG8udG9JU09T
dHJpbmcoKTsKLSAgICBpZiAodHlwZW9mIG8gIT09ICJvYmplY3QiIHx8ICFvKQotICAgICAgICBy
ZXR1cm4gbzsKLSAgICB0cnkgewotICAgICAgICByZXR1cm4gby50b1N0cmluZygpOwotICAgIH0g
Y2F0Y2ggKGUpIHsKLSAgICAgICAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2Fs
bChvKSArICIoZGVmYXVsdCB0b1N0cmluZyB0aHJldyAiK2UrIikiOwotICAgIH0KLX0KLQotZnVu
Y3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkKLXsKLSAgICB2YXIgYWN0dWFsVmFsdWUg
PSBldmFsKGFjdHVhbCk7Ci0gICAgdmFyIGV4cGVjdGVkVmFsdWUgPSBldmFsKGV4cGVjdGVkKTsK
LSAgICBpZiAoZXF1YWwoYWN0dWFsVmFsdWUsIGV4cGVjdGVkVmFsdWUpKQotICAgICAgICBjb25z
b2xlLmlubmVySFRNTCArPSAiUEFTUzogIiArIGFjdHVhbCArICIgaXMgIiArIHNhZmVUb1N0cmlu
ZyhleHBlY3RlZFZhbHVlKSArICIgb2YgdHlwZSAiICsgdHlwZW9mIGFjdHVhbFZhbHVlICsgIjxi
cj4iOwotICAgIGVsc2UKLSAgICAgICAgY29uc29sZS5pbm5lckhUTUwgKz0gIkZBSUw6ICIgKyBh
Y3R1YWwgKyAiIGlzICIgKyBhY3R1YWxWYWx1ZSArICIgc2hvdWxkIGJlICIgKyBleHBlY3RlZFZh
bHVlICsgIiBvZiB0eXBlICIgKyB0eXBlb2YgZXhwZWN0ZWRWYWx1ZSArICI8YnI+IjsKLX0KLQot
ZnVuY3Rpb24gc2hvdWxkQmVJZGVudGljYWwoYWN0dWFsLCBleHBlY3RlZCkKLXsKLSAgICB2YXIg
YWN0dWFsVmFsdWUgPSBldmFsKGFjdHVhbCk7Ci0gICAgdmFyIGV4cGVjdGVkVmFsdWUgPSBldmFs
KGV4cGVjdGVkKTsKLSAgICBpZiAoYWN0dWFsVmFsdWUgPT09IGV4cGVjdGVkVmFsdWUpCi0gICAg
ICAgIGNvbnNvbGUuaW5uZXJIVE1MICs9ICJQQVNTOiAiICsgYWN0dWFsICsgIiBpcyA9PT0gdG8g
IiArIGV4cGVjdGVkICsgIjxicj4iOwotICAgIGVsc2UKLSAgICAgICAgY29uc29sZS5pbm5lckhU
TUwgKz0gIkZBSUw6ICIgKyBhY3R1YWwgKyAiIGlzIG5vdCA9PT0gdG8gIiArIGV4cGVjdGVkICsg
Ijxicj4iOwotfQotCi1mdW5jdGlvbiBvbm1lc3NhZ2UoZXZ0KSB7Ci0gICAgZXZlbnREYXRhID0g
ZXZ0LmRhdGE7Ci0gICAgaWYgKGV2dC5kYXRhICE9PSBldnQuZGF0YSkKLSAgICAgICAgY29uc29s
ZS5pbm5lckhUTUwgKz0gIk1lc3NhZ2VFdmVudC5kYXRhIGRvZXMgbm90IHByb2R1Y2UgdGhlIHNh
bWUgdmFsdWUgb24gbXVsdGlwbGUgcXVlcmllcy48YnI+IjsKLSAgICB2YXIgbWVzc2FnZSA9IG1l
c3NhZ2VzLnNoaWZ0KCk7Ci0gICAgc3dpdGNoIChtZXNzYWdlKSB7Ci0gICAgY2FzZSAiY3ljbGlj
T2JqZWN0IjoKLSAgICAgICAgc2hvdWxkQmVJZGVudGljYWwoImV2ZW50RGF0YSIsICJldmVudERh
dGEuc2VsZiIpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlICJjeWNsaWNBcnJheSI6Ci0gICAg
ICAgIHNob3VsZEJlSWRlbnRpY2FsKCJldmVudERhdGEiLCAiZXZlbnREYXRhWzBdIik7Ci0gICAg
ICAgIGJyZWFrOwotICAgIGNhc2UgIm9iamVjdEdyYXBoIjoKLSAgICAgICAgc2hvdWxkQmVJZGVu
dGljYWwoImV2ZW50RGF0YS5ncmFwaDEiLCAiZXZlbnREYXRhLmdyYXBoMiIpOwotICAgICAgICBi
cmVhazsKLSAgICBjYXNlICJhcnJheUdyYXBoIjoKLSAgICAgICAgc2hvdWxkQmVJZGVudGljYWwo
ImV2ZW50RGF0YVswXSIsICJldmVudERhdGFbMV0iKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgZGVm
YXVsdDoKLSAgICAgICAgc2hvdWxkQmUoImV2ZW50RGF0YSIsIG1lc3NhZ2UpOwotICAgIH0KLQot
ICAgIGlmIChzYWZlVG9TdHJpbmcoZXZ0LmRhdGEpID09ICdkb25lJyAmJiB3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpCi0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUo
KTsKLX0KLQotd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCBvbm1lc3NhZ2UsIGZh
bHNlKTsKLQotZnVuY3Rpb24gQ29uc3RydWN0b3JXaXRoUHJvdG90eXBlKHMpIHsKLSAgICB0aGlz
LmZpZWxkID0gczsKLX0KLQotQ29uc3RydWN0b3JXaXRoUHJvdG90eXBlLnByb3RvdHlwZSA9IHsK
LSAgICBwcm90b1Byb3BlcnR5OiAyMDEwCi19OwotCi1mdW5jdGlvbiB0cnlQb3N0TWVzc2FnZSht
ZXNzYWdlLCBzaG91bGRUaHJvdywgZXhwZWN0ZWQpIHsKLSAgICB0cnkgewotICAgICAgICB2YXIg
dmFsdWUgPSBldmFsKG1lc3NhZ2UpOwotICAgICAgICBwb3N0TWVzc2FnZSh2YWx1ZSwgIioiKTsK
LSAgICAgICAgaWYgKHNob3VsZFRocm93KQotICAgICAgICAgICAgY29uc29sZS5pbm5lckhUTUwg
Kz0gIkZBSUw6ICdwb3N0TWVzc2FnZSgiK21lc3NhZ2UrIiknIHNob3VsZCB0aHJvdyBidXQgZGlk
bid0PGJyPiI7Ci0gICAgICAgIG1lc3NhZ2VzLnB1c2goZXhwZWN0ZWQgfHwgbWVzc2FnZSk7Ci0g
ICAgfSBjYXRjaChlKSB7Ci0gICAgICAgIGlmIChzaG91bGRUaHJvdykKLSAgICAgICAgICAgIGNv
bnNvbGUuaW5uZXJIVE1MICs9ICJQQVNTOiAncG9zdE1lc3NhZ2UoIittZXNzYWdlKyIpJyB0aHJl
dyAiICsgZSArICI8YnI+IjsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgY29uc29sZS5pbm5l
ckhUTUwgKz0gIkZBSUw6ICdwb3N0TWVzc2FnZSgiK21lc3NhZ2UrIiknIHNob3VsZCBub3QgdGhy
b3cgYnV0IHRocmV3ICIgKyBlICsgIjxicj4iOwotICAgIH0KLX0KLQotZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoImRlc2NyaXB0aW9uIikuaW5uZXJIVE1MID0gIlRlc3RzIHRoYXQgd2UgY2xvbmUg
b2JqZWN0IGhpZXJhcmNoaWVzIjsKLQotdHJ5UG9zdE1lc3NhZ2UoJ251bGwnKTsKLXRyeVBvc3RN
ZXNzYWdlKCd1bmRlZmluZWQnKTsKLXRyeVBvc3RNZXNzYWdlKCcxJyk7Ci10cnlQb3N0TWVzc2Fn
ZSgndHJ1ZScpOwotdHJ5UG9zdE1lc3NhZ2UoJyIxIicpOwotdHJ5UG9zdE1lc3NhZ2UoJyh7fSkn
KTsKLXRyeVBvc3RNZXNzYWdlKCcoe2E6MX0pJyk7Ci10cnlQb3N0TWVzc2FnZSgnKHthOiJhIn0p
Jyk7Ci10cnlQb3N0TWVzc2FnZSgnKHtiOiJhIiwgYToiYiJ9KScpOwotdHJ5UG9zdE1lc3NhZ2Uo
Jyh7cDA6InN0cmluZzAiLCBwMToic3RyaW5nMSIsIHAyOiJzdHJpbmcyIiwgcDM6InN0cmluZzMi
LCBwNDoic3RyaW5nNCIsIHA1OiJzdHJpbmc1IiwgcDY6InN0cmluZzYiLCBwNzoic3RyaW5nNyIs
IHA4OiJzdHJpbmc4IiwgcDk6InN0cmluZzkiLCBwMTA6InN0cmluZzEwIiwgcDExOiJzdHJpbmcx
MSIsIHAxMjoic3RyaW5nMTIiLCBwMTM6InN0cmluZzEzIiwgcDE0OiJzdHJpbmcxNCIsIHAxNToi
c3RyaW5nMTUiLCBwMTY6InN0cmluZzE2IiwgcDE3OiJzdHJpbmcxNyIsIHAxODoic3RyaW5nMTgi
LCBwMTk6InN0cmluZzE5In0pJyk7Ci10cnlQb3N0TWVzc2FnZSgnKHtwMDoic3RyaW5nMSIsIHAx
OiJzdHJpbmcxIiwgcDI6InN0cmluZzIiLCBwMzoic3RyaW5nMyIsIHA0OiJzdHJpbmc0IiwgcDU6
InN0cmluZzUiLCBwNjoic3RyaW5nNiIsIHA3OiJzdHJpbmc3IiwgcDg6InN0cmluZzgiLCBwOToi
c3RyaW5nOSIsIHAxMDoic3RyaW5nMTAiLCBwMTE6InN0cmluZzExIiwgcDEyOiJzdHJpbmcxMiIs
IHAxMzoic3RyaW5nMTMiLCBwMTQ6InN0cmluZzE0IiwgcDE1OiJzdHJpbmcxNSIsIHAxNjoic3Ry
aW5nMTYiLCBwMTc6InN0cmluZzE3IiwgcDE4OiJzdHJpbmcxOCIsIHAxOToic3RyaW5nMTkifSkn
KTsKLXRyeVBvc3RNZXNzYWdlKCcoe2E6IiJ9KScpOwotdHJ5UG9zdE1lc3NhZ2UoJyh7YTowfSkn
KTsKLXRyeVBvc3RNZXNzYWdlKCcoe2E6MX0pJyk7Ci10cnlQb3N0TWVzc2FnZSgnW10nKTsKLXRy
eVBvc3RNZXNzYWdlKCdbImEiLCAiYSIsICJiIiwgImEiLCAiYiJdJyk7Ci10cnlQb3N0TWVzc2Fn
ZSgnWyJhIiwgImEiLCAiYiIsIHthOiJiIiwgYjoiYSJ9XScpOwotdHJ5UG9zdE1lc3NhZ2UoJ1sx
LDIsM10nKTsKLXRyeVBvc3RNZXNzYWdlKCdbLCwxXScpOwotdHJ5UG9zdE1lc3NhZ2UoJyhmdW5j
dGlvbigpe30pJywgZmFsc2UsICdudWxsJyk7Ci10cnlQb3N0TWVzc2FnZSgnbmV3IERhdGUoMTIz
NDU2Nzg5MDAwMCknKTsKLXRyeVBvc3RNZXNzYWdlKCduZXcgQ29uc3RydWN0b3JXaXRoUHJvdG90
eXBlKCJmb28iKScsIGZhbHNlLCAnKHtmaWVsZDoiZm9vIn0pJyk7Ci1jeWNsaWNPYmplY3Q9e307
Ci1jeWNsaWNPYmplY3Quc2VsZiA9IGN5Y2xpY09iamVjdDsKLXRyeVBvc3RNZXNzYWdlKCdjeWNs
aWNPYmplY3QnLCBmYWxzZSwgImN5Y2xpY09iamVjdCIpOwotY3ljbGljQXJyYXk9W107Ci1jeWNs
aWNBcnJheVswXSA9IGN5Y2xpY0FycmF5OwotdHJ5UG9zdE1lc3NhZ2UoJ2N5Y2xpY0FycmF5Jywg
ZmFsc2UsICJjeWNsaWNBcnJheSIpOwotb2JqZWN0R3JhcGggPSB7fTsKLW9iamVjdCA9IHt9Owot
b2JqZWN0R3JhcGguZ3JhcGgxID0gb2JqZWN0Owotb2JqZWN0R3JhcGguZ3JhcGgyID0gb2JqZWN0
OwotdHJ5UG9zdE1lc3NhZ2UoJ29iamVjdEdyYXBoJywgZmFsc2UsICJvYmplY3RHcmFwaCIpOwot
YXJyYXlHcmFwaCA9IFtvYmplY3QsIG9iamVjdF07Ci10cnlQb3N0TWVzc2FnZSgnYXJyYXlHcmFw
aCcsIGZhbHNlLCAiYXJyYXlHcmFwaCIpOwotZGVlcEFycmF5PVtdOwotZm9yICh2YXIgaSA9IDA7
IGkgPCAxMDAwMDsgaSsrKQotICAgIGRlZXBBcnJheT1bZGVlcEFycmF5XTsKLXRyeVBvc3RNZXNz
YWdlKCdkZWVwQXJyYXknKTsKLXJlYWxseURlZXBBcnJheT1bXTsKLWZvciAodmFyIGkgPSAwOyBp
IDwgMTAwMDAwOyBpKyspCi0gICAgcmVhbGx5RGVlcEFycmF5PVtyZWFsbHlEZWVwQXJyYXldOwot
dHJ5UG9zdE1lc3NhZ2UoJ3JlYWxseURlZXBBcnJheScsIHRydWUpOwotdHJ5UG9zdE1lc3NhZ2Uo
J3dpbmRvdycsIHRydWUpOwotdHJ5UG9zdE1lc3NhZ2UoJyh7Z2V0IGEoKSB7IHRocm93ICJ4IiB9
fSknLCB0cnVlKTsKLQotaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgewotICAgIHZhciBmaWxlSW5w
dXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsZUlucHV0Iik7Ci0gICAgdmFyIGZpbGVS
ZWN0ID0gZmlsZUlucHV0LmdldENsaWVudFJlY3RzKClbMF07Ci0gICAgdmFyIHRhcmdldFggPSBm
aWxlUmVjdC5sZWZ0ICsgZmlsZVJlY3Qud2lkdGggLyAyOwotICAgIHZhciB0YXJnZXRZID0gZmls
ZVJlY3QudG9wICsgZmlsZVJlY3QuaGVpZ2h0IC8gMjsKLSAgICBldmVudFNlbmRlci5iZWdpbkRy
YWdXaXRoRmlsZXMoWydnZXQtZmlsZS11cGxvYWQuaHRtbCddKTsKLSAgICBldmVudFNlbmRlci5t
b3VzZU1vdmVUbyh0YXJnZXRYLCB0YXJnZXRZKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7
Ci0gICAgdHJ5UG9zdE1lc3NhZ2UoJ2ZpbGVJbnB1dC5maWxlc1swXScsIGZhbHNlLCBmaWxlSW5w
dXQuZmlsZXNbMF0pOwotICAgIHRyeVBvc3RNZXNzYWdlKCdmaWxlSW5wdXQuZmlsZXMnLCBmYWxz
ZSwgZmlsZUlucHV0LmZpbGVzKTsKLX0KLXZhciBpbWFnZURhdGEgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJjYW52YXMiKS5nZXRDb250ZXh0KCIyZCIpLmNyZWF0ZUltYWdlRGF0YSgxMCwxMCk7
Ci1mb3IgKHZhciBpID0gMDsgaSA8IGltYWdlRGF0YS5kYXRhLmxlbmd0aCAqIDQ7IGkrKykKLSAg
ICBpbWFnZURhdGEuZGF0YVtpXSA9IGkgJSAyNTY7Ci12YXIgbXV0YXRlZEltYWdlRGF0YSA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpLmdldENvbnRleHQoIjJkIikuY3JlYXRlSW1h
Z2VEYXRhKDEwLDEwKTsKLWZvciAodmFyIGkgPSAwOyBpIDwgaW1hZ2VEYXRhLmRhdGEubGVuZ3Ro
ICogNDsgaSsrKQotICAgIG11dGF0ZWRJbWFnZURhdGEuZGF0YVtpXSA9IGkgJSAyNTY7Ci10cnlQ
b3N0TWVzc2FnZSgnaW1hZ2VEYXRhJywgZmFsc2UsIGltYWdlRGF0YSk7Ci10cnlQb3N0TWVzc2Fn
ZSgnbXV0YXRlZEltYWdlRGF0YScsIGZhbHNlLCBpbWFnZURhdGEpOwotZm9yICh2YXIgaSA9IDA7
IGkgPCBpbWFnZURhdGEuZGF0YS5sZW5ndGggKiA0OyBpKyspCi0gICAgbXV0YXRlZEltYWdlRGF0
YS5kYXRhW2ldID0gMDsKLQotdHJ5UG9zdE1lc3NhZ2UoJyJkb25lIicpOwotPC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3Bvc3RtZXNzYWdlLXRlc3QuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9wb3N0bWVzc2FnZS1jbG9uZS5qcyI+PC9zY3JpcHQ+
CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5k
b3cvd2luZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20v
V2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dAppbmRleCBhZWI0ZmQyLi5kNWQw
NjEyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3Bl
cnRpZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5k
b3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQKQEAgLTUxMSw2ICs1MTEsNyBAQCB3aW5kb3cuQ291
bnRlciBbb2JqZWN0IENvdW50ZXJDb25zdHJ1Y3Rvcl0KIHdpbmRvdy5Db3VudGVyLnByb3RvdHlw
ZSBbb2JqZWN0IENvdW50ZXJQcm90b3R5cGVdCiB3aW5kb3cuRE9NRXhjZXB0aW9uIFtvYmplY3Qg
RE9NRXhjZXB0aW9uQ29uc3RydWN0b3JdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLkFCT1JUX0VSUiBb
bnVtYmVyXQord2luZG93LkRPTUV4Y2VwdGlvbi5EQVRBX0NMT05FX0VSUiBbbnVtYmVyXQogd2lu
ZG93LkRPTUV4Y2VwdGlvbi5ET01TVFJJTkdfU0laRV9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01F
eGNlcHRpb24uSElFUkFSQ0hZX1JFUVVFU1RfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0
aW9uLklOREVYX1NJWkVfRVJSIFtudW1iZXJdCkBAIC01MTgsNiArNTE5LDcgQEAgd2luZG93LkRP
TUV4Y2VwdGlvbi5JTlVTRV9BVFRSSUJVVEVfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0
aW9uLklOVkFMSURfQUNDRVNTX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5JTlZB
TElEX0NIQVJBQ1RFUl9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24uSU5WQUxJRF9N
T0RJRklDQVRJT05fRVJSIFtudW1iZXJdCit3aW5kb3cuRE9NRXhjZXB0aW9uLklOVkFMSURfTk9E
RV9UWVBFX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5JTlZBTElEX1NUQVRFX0VS
UiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5OQU1FU1BBQ0VfRVJSIFtudW1iZXJdCiB3
aW5kb3cuRE9NRXhjZXB0aW9uLk5FVFdPUktfRVJSIFtudW1iZXJdCkBAIC01MjgsMTIgKzUzMCwx
NCBAQCB3aW5kb3cuRE9NRXhjZXB0aW9uLk5PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUiBbbnVt
YmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5RVU9UQV9FWENFRURFRF9FUlIgW251bWJlcl0KIHdp
bmRvdy5ET01FeGNlcHRpb24uU0VDVVJJVFlfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0
aW9uLlNZTlRBWF9FUlIgW251bWJlcl0KK3dpbmRvdy5ET01FeGNlcHRpb24uVElNRU9VVF9FUlIg
W251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24uVFlQRV9NSVNNQVRDSF9FUlIgW251bWJlcl0K
IHdpbmRvdy5ET01FeGNlcHRpb24uVVJMX01JU01BVENIX0VSUiBbbnVtYmVyXQogd2luZG93LkRP
TUV4Y2VwdGlvbi5WQUxJREFUSU9OX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5X
Uk9OR19ET0NVTUVOVF9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBl
IFtvYmplY3QgRE9NRXhjZXB0aW9uUHJvdG90eXBlXQogd2luZG93LkRPTUV4Y2VwdGlvbi5wcm90
b3R5cGUuQUJPUlRfRVJSIFtudW1iZXJdCit3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5E
QVRBX0NMT05FX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuRE9N
U1RSSU5HX1NJWkVfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5I
SUVSQVJDSFlfUkVRVUVTVF9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90
eXBlLklOREVYX1NJWkVfRVJSIFtudW1iZXJdCkBAIC01NDEsNiArNTQ1LDcgQEAgd2luZG93LkRP
TUV4Y2VwdGlvbi5wcm90b3R5cGUuSU5VU0VfQVRUUklCVVRFX0VSUiBbbnVtYmVyXQogd2luZG93
LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuSU5WQUxJRF9BQ0NFU1NfRVJSIFtudW1iZXJdCiB3aW5k
b3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5JTlZBTElEX0NIQVJBQ1RFUl9FUlIgW251bWJlcl0K
IHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlLklOVkFMSURfTU9ESUZJQ0FUSU9OX0VSUiBb
bnVtYmVyXQord2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuSU5WQUxJRF9OT0RFX1RZUEVf
RVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5JTlZBTElEX1NUQVRF
X0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuTkFNRVNQQUNFX0VS
UiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuTkVUV09SS19FUlIgW251
bWJlcl0KQEAgLTU1MSw2ICs1NTYsNyBAQCB3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5O
T19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24u
cHJvdG90eXBlLlFVT1RBX0VYQ0VFREVEX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlv
bi5wcm90b3R5cGUuU0VDVVJJVFlfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLnBy
b3RvdHlwZS5TWU5UQVhfRVJSIFtudW1iZXJdCit3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlw
ZS5USU1FT1VUX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuVFlQ
RV9NSVNNQVRDSF9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlLlVS
TF9NSVNNQVRDSF9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlLlZB
TElEQVRJT05fRVJSIFtudW1iZXJdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS9mYXN0L2NhbnZhcy93ZWJnbC9hcnJheS1tZXNzYWdlLXBhc3NpbmctZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9jYW52YXMvd2ViZ2wvYXJy
YXktbWVzc2FnZS1wYXNzaW5nLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi40ZGE2N2I0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0vZmFzdC9jYW52YXMvd2ViZ2wvYXJyYXktbWVzc2FnZS1wYXNzaW5nLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDU5OSBAQAorVGVzdCBwYXNzaW5nIEFycmF5QnVmZmVycyBhbmQg
QXJyYXlCdWZmZXJWaWV3cyBpbiBtZXNzYWdlcy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgorCitQQVNTIEFycmF5QnVmZmVyMDogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0K
K1BBU1MgQXJyYXlCdWZmZXIwOiBidWZmZXIgbGVuZ3RocyBhcmUgMAorUEFTUyBBcnJheUJ1ZmZl
cjA6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBBcnJheUJ1ZmZlcjE6IGNs
YXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIEFycmF5QnVmZmVyMTogYnVmZmVy
IGxlbmd0aHMgYXJlIDEKK1BBU1MgQXJyYXlCdWZmZXIxOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUg
Y29udGVudHMKK1BBU1MgQXJyYXlCdWZmZXIxMjg6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlC
dWZmZXJdCitQQVNTIEFycmF5QnVmZmVyMTI4OiBidWZmZXIgbGVuZ3RocyBhcmUgMTI4CitQQVNT
IEFycmF5QnVmZmVyMTI4OiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgRGF0
YVZpZXcwOiBjbGFzc2VzIGFyZSBbb2JqZWN0IERhdGFWaWV3XQorUEFTUyBEYXRhVmlldzA6IGNs
YXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIERhdGFWaWV3MDogYnVmZmVyIGxl
bmd0aHMgYXJlIDAKK1BBU1MgRGF0YVZpZXcwOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVu
dHMKK1BBU1MgRGF0YVZpZXcwOiBvZmZzZXQgaXMgMAorUEFTUyBEYXRhVmlldzA6IGxlbmd0aCBp
cyAwCitQQVNTIERhdGFWaWV3MTogY2xhc3NlcyBhcmUgW29iamVjdCBEYXRhVmlld10KK1BBU1Mg
RGF0YVZpZXcxOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBEYXRhVmll
dzE6IGJ1ZmZlciBsZW5ndGhzIGFyZSAxCitQQVNTIERhdGFWaWV3MTogYnVmZmVycyBoYXZlIHRo
ZSBzYW1lIGNvbnRlbnRzCitQQVNTIERhdGFWaWV3MTogb2Zmc2V0IGlzIDAKK1BBU1MgRGF0YVZp
ZXcxOiBsZW5ndGggaXMgMQorUEFTUyBEYXRhVmlldzEyODogY2xhc3NlcyBhcmUgW29iamVjdCBE
YXRhVmlld10KK1BBU1MgRGF0YVZpZXcxMjg6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZm
ZXJdCitQQVNTIERhdGFWaWV3MTI4OiBidWZmZXIgbGVuZ3RocyBhcmUgMTI4CitQQVNTIERhdGFW
aWV3MTI4OiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgRGF0YVZpZXcxMjg6
IG9mZnNldCBpcyAwCitQQVNTIERhdGFWaWV3MTI4OiBsZW5ndGggaXMgMTI4CitQQVNTIERhdGFW
aWV3MV9vZmZzZXRfYXRfZW5kOiBjbGFzc2VzIGFyZSBbb2JqZWN0IERhdGFWaWV3XQorUEFTUyBE
YXRhVmlldzFfb2Zmc2V0X2F0X2VuZDogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0K
K1BBU1MgRGF0YVZpZXcxX29mZnNldF9hdF9lbmQ6IGJ1ZmZlciBsZW5ndGhzIGFyZSAxCitQQVNT
IERhdGFWaWV3MV9vZmZzZXRfYXRfZW5kOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMK
K1BBU1MgRGF0YVZpZXcxX29mZnNldF9hdF9lbmQ6IG9mZnNldCBpcyAxCitQQVNTIERhdGFWaWV3
MV9vZmZzZXRfYXRfZW5kOiBsZW5ndGggaXMgMAorUEFTUyBEYXRhVmlldzEyOF9vZmZzZXRfYXRf
ZW5kOiBjbGFzc2VzIGFyZSBbb2JqZWN0IERhdGFWaWV3XQorUEFTUyBEYXRhVmlldzEyOF9vZmZz
ZXRfYXRfZW5kOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBEYXRhVmll
dzEyOF9vZmZzZXRfYXRfZW5kOiBidWZmZXIgbGVuZ3RocyBhcmUgMTI4CitQQVNTIERhdGFWaWV3
MTI4X29mZnNldF9hdF9lbmQ6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBE
YXRhVmlldzEyOF9vZmZzZXRfYXRfZW5kOiBvZmZzZXQgaXMgMTI4CitQQVNTIERhdGFWaWV3MTI4
X29mZnNldF9hdF9lbmQ6IGxlbmd0aCBpcyAwCitQQVNTIERhdGFWaWV3MTI4X29mZnNldF9zbGlj
ZV9sZW5ndGhfMDogY2xhc3NlcyBhcmUgW29iamVjdCBEYXRhVmlld10KK1BBU1MgRGF0YVZpZXcx
Mjhfb2Zmc2V0X3NsaWNlX2xlbmd0aF8wOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVy
XQorUEFTUyBEYXRhVmlldzEyOF9vZmZzZXRfc2xpY2VfbGVuZ3RoXzA6IGJ1ZmZlciBsZW5ndGhz
IGFyZSAxMjgKK1BBU1MgRGF0YVZpZXcxMjhfb2Zmc2V0X3NsaWNlX2xlbmd0aF8wOiBidWZmZXJz
IGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgRGF0YVZpZXcxMjhfb2Zmc2V0X3NsaWNlX2xl
bmd0aF8wOiBvZmZzZXQgaXMgNjQKK1BBU1MgRGF0YVZpZXcxMjhfb2Zmc2V0X3NsaWNlX2xlbmd0
aF8wOiBsZW5ndGggaXMgMAorUEFTUyBEYXRhVmlldzEyOF9vZmZzZXRfc2xpY2VfbGVuZ3RoXzE6
IGNsYXNzZXMgYXJlIFtvYmplY3QgRGF0YVZpZXddCitQQVNTIERhdGFWaWV3MTI4X29mZnNldF9z
bGljZV9sZW5ndGhfMTogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgRGF0
YVZpZXcxMjhfb2Zmc2V0X3NsaWNlX2xlbmd0aF8xOiBidWZmZXIgbGVuZ3RocyBhcmUgMTI4CitQ
QVNTIERhdGFWaWV3MTI4X29mZnNldF9zbGljZV9sZW5ndGhfMTogYnVmZmVycyBoYXZlIHRoZSBz
YW1lIGNvbnRlbnRzCitQQVNTIERhdGFWaWV3MTI4X29mZnNldF9zbGljZV9sZW5ndGhfMTogb2Zm
c2V0IGlzIDY0CitQQVNTIERhdGFWaWV3MTI4X29mZnNldF9zbGljZV9sZW5ndGhfMTogbGVuZ3Ro
IGlzIDEKK1BBU1MgRGF0YVZpZXcxMjhfb2Zmc2V0X3NsaWNlX2xlbmd0aF8xNjogY2xhc3NlcyBh
cmUgW29iamVjdCBEYXRhVmlld10KK1BBU1MgRGF0YVZpZXcxMjhfb2Zmc2V0X3NsaWNlX2xlbmd0
aF8xNjogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgRGF0YVZpZXcxMjhf
b2Zmc2V0X3NsaWNlX2xlbmd0aF8xNjogYnVmZmVyIGxlbmd0aHMgYXJlIDEyOAorUEFTUyBEYXRh
VmlldzEyOF9vZmZzZXRfc2xpY2VfbGVuZ3RoXzE2OiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29u
dGVudHMKK1BBU1MgRGF0YVZpZXcxMjhfb2Zmc2V0X3NsaWNlX2xlbmd0aF8xNjogb2Zmc2V0IGlz
IDY0CitQQVNTIERhdGFWaWV3MTI4X29mZnNldF9zbGljZV9sZW5ndGhfMTY6IGxlbmd0aCBpcyAx
NgorUEFTUyBEYXRhVmlldzEyOF9vZmZzZXRfc2xpY2VfdW5hbGlnbmVkOiBjbGFzc2VzIGFyZSBb
b2JqZWN0IERhdGFWaWV3XQorUEFTUyBEYXRhVmlldzEyOF9vZmZzZXRfc2xpY2VfdW5hbGlnbmVk
OiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBEYXRhVmlldzEyOF9vZmZz
ZXRfc2xpY2VfdW5hbGlnbmVkOiBidWZmZXIgbGVuZ3RocyBhcmUgMTI4CitQQVNTIERhdGFWaWV3
MTI4X29mZnNldF9zbGljZV91bmFsaWduZWQ6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50
cworUEFTUyBEYXRhVmlldzEyOF9vZmZzZXRfc2xpY2VfdW5hbGlnbmVkOiBvZmZzZXQgaXMgNjMK
K1BBU1MgRGF0YVZpZXcxMjhfb2Zmc2V0X3NsaWNlX3VuYWxpZ25lZDogbGVuZ3RoIGlzIDE1CitQ
QVNTIEludDMyXzA6IGNsYXNzZXMgYXJlIFtvYmplY3QgSW50MzJBcnJheV0KK1BBU1MgSW50MzJf
MDogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgSW50MzJfMDogYnVmZmVy
IGxlbmd0aHMgYXJlIDAKK1BBU1MgSW50MzJfMDogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRl
bnRzCitQQVNTIEludDMyXzA6IG9mZnNldCBpcyAwCitQQVNTIEludDMyXzA6IGxlbmd0aCBpcyAw
CitQQVNTIFVpbnQzMl8wOiBjbGFzc2VzIGFyZSBbb2JqZWN0IFVpbnQzMkFycmF5XQorUEFTUyBV
aW50MzJfMDogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgVWludDMyXzA6
IGJ1ZmZlciBsZW5ndGhzIGFyZSAwCitQQVNTIFVpbnQzMl8wOiBidWZmZXJzIGhhdmUgdGhlIHNh
bWUgY29udGVudHMKK1BBU1MgVWludDMyXzA6IG9mZnNldCBpcyAwCitQQVNTIFVpbnQzMl8wOiBs
ZW5ndGggaXMgMAorUEFTUyBJbnQ4XzA6IGNsYXNzZXMgYXJlIFtvYmplY3QgSW50OEFycmF5XQor
UEFTUyBJbnQ4XzA6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIEludDhf
MDogYnVmZmVyIGxlbmd0aHMgYXJlIDAKK1BBU1MgSW50OF8wOiBidWZmZXJzIGhhdmUgdGhlIHNh
bWUgY29udGVudHMKK1BBU1MgSW50OF8wOiBvZmZzZXQgaXMgMAorUEFTUyBJbnQ4XzA6IGxlbmd0
aCBpcyAwCitQQVNTIFVpbnQ4XzA6IGNsYXNzZXMgYXJlIFtvYmplY3QgVWludDhBcnJheV0KK1BB
U1MgVWludDhfMDogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgVWludDhf
MDogYnVmZmVyIGxlbmd0aHMgYXJlIDAKK1BBU1MgVWludDhfMDogYnVmZmVycyBoYXZlIHRoZSBz
YW1lIGNvbnRlbnRzCitQQVNTIFVpbnQ4XzA6IG9mZnNldCBpcyAwCitQQVNTIFVpbnQ4XzA6IGxl
bmd0aCBpcyAwCitQQVNTIEludDE2XzA6IGNsYXNzZXMgYXJlIFtvYmplY3QgSW50MTZBcnJheV0K
K1BBU1MgSW50MTZfMDogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgSW50
MTZfMDogYnVmZmVyIGxlbmd0aHMgYXJlIDAKK1BBU1MgSW50MTZfMDogYnVmZmVycyBoYXZlIHRo
ZSBzYW1lIGNvbnRlbnRzCitQQVNTIEludDE2XzA6IG9mZnNldCBpcyAwCitQQVNTIEludDE2XzA6
IGxlbmd0aCBpcyAwCitQQVNTIFVpbnQxNl8wOiBjbGFzc2VzIGFyZSBbb2JqZWN0IFVpbnQxNkFy
cmF5XQorUEFTUyBVaW50MTZfMDogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BB
U1MgVWludDE2XzA6IGJ1ZmZlciBsZW5ndGhzIGFyZSAwCitQQVNTIFVpbnQxNl8wOiBidWZmZXJz
IGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgVWludDE2XzA6IG9mZnNldCBpcyAwCitQQVNT
IFVpbnQxNl8wOiBsZW5ndGggaXMgMAorUEFTUyBGbG9hdDMyXzA6IGNsYXNzZXMgYXJlIFtvYmpl
Y3QgRmxvYXQzMkFycmF5XQorUEFTUyBGbG9hdDMyXzA6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJy
YXlCdWZmZXJdCitQQVNTIEZsb2F0MzJfMDogYnVmZmVyIGxlbmd0aHMgYXJlIDAKK1BBU1MgRmxv
YXQzMl8wOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgRmxvYXQzMl8wOiBv
ZmZzZXQgaXMgMAorUEFTUyBGbG9hdDMyXzA6IGxlbmd0aCBpcyAwCitQQVNTIEZsb2F0NjRfMDog
Y2xhc3NlcyBhcmUgW29iamVjdCBGbG9hdDY0QXJyYXldCitQQVNTIEZsb2F0NjRfMDogY2xhc3Nl
cyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgRmxvYXQ2NF8wOiBidWZmZXIgbGVuZ3Ro
cyBhcmUgMAorUEFTUyBGbG9hdDY0XzA6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cwor
UEFTUyBGbG9hdDY0XzA6IG9mZnNldCBpcyAwCitQQVNTIEZsb2F0NjRfMDogbGVuZ3RoIGlzIDAK
K1BBU1MgSW50MzJfMTogY2xhc3NlcyBhcmUgW29iamVjdCBJbnQzMkFycmF5XQorUEFTUyBJbnQz
Ml8xOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBJbnQzMl8xOiBidWZm
ZXIgbGVuZ3RocyBhcmUgNAorUEFTUyBJbnQzMl8xOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29u
dGVudHMKK1BBU1MgSW50MzJfMTogb2Zmc2V0IGlzIDAKK1BBU1MgSW50MzJfMTogbGVuZ3RoIGlz
IDQKK1BBU1MgVWludDMyXzE6IGNsYXNzZXMgYXJlIFtvYmplY3QgVWludDMyQXJyYXldCitQQVNT
IFVpbnQzMl8xOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBVaW50MzJf
MTogYnVmZmVyIGxlbmd0aHMgYXJlIDQKK1BBU1MgVWludDMyXzE6IGJ1ZmZlcnMgaGF2ZSB0aGUg
c2FtZSBjb250ZW50cworUEFTUyBVaW50MzJfMTogb2Zmc2V0IGlzIDAKK1BBU1MgVWludDMyXzE6
IGxlbmd0aCBpcyA0CitQQVNTIEludDhfMTogY2xhc3NlcyBhcmUgW29iamVjdCBJbnQ4QXJyYXld
CitQQVNTIEludDhfMTogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgSW50
OF8xOiBidWZmZXIgbGVuZ3RocyBhcmUgMQorUEFTUyBJbnQ4XzE6IGJ1ZmZlcnMgaGF2ZSB0aGUg
c2FtZSBjb250ZW50cworUEFTUyBJbnQ4XzE6IG9mZnNldCBpcyAwCitQQVNTIEludDhfMTogbGVu
Z3RoIGlzIDEKK1BBU1MgVWludDhfMTogY2xhc3NlcyBhcmUgW29iamVjdCBVaW50OEFycmF5XQor
UEFTUyBVaW50OF8xOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBVaW50
OF8xOiBidWZmZXIgbGVuZ3RocyBhcmUgMQorUEFTUyBVaW50OF8xOiBidWZmZXJzIGhhdmUgdGhl
IHNhbWUgY29udGVudHMKK1BBU1MgVWludDhfMTogb2Zmc2V0IGlzIDAKK1BBU1MgVWludDhfMTog
bGVuZ3RoIGlzIDEKK1BBU1MgSW50MTZfMTogY2xhc3NlcyBhcmUgW29iamVjdCBJbnQxNkFycmF5
XQorUEFTUyBJbnQxNl8xOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBJ
bnQxNl8xOiBidWZmZXIgbGVuZ3RocyBhcmUgMgorUEFTUyBJbnQxNl8xOiBidWZmZXJzIGhhdmUg
dGhlIHNhbWUgY29udGVudHMKK1BBU1MgSW50MTZfMTogb2Zmc2V0IGlzIDAKK1BBU1MgSW50MTZf
MTogbGVuZ3RoIGlzIDIKK1BBU1MgVWludDE2XzE6IGNsYXNzZXMgYXJlIFtvYmplY3QgVWludDE2
QXJyYXldCitQQVNTIFVpbnQxNl8xOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQor
UEFTUyBVaW50MTZfMTogYnVmZmVyIGxlbmd0aHMgYXJlIDIKK1BBU1MgVWludDE2XzE6IGJ1ZmZl
cnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBVaW50MTZfMTogb2Zmc2V0IGlzIDAKK1BB
U1MgVWludDE2XzE6IGxlbmd0aCBpcyAyCitQQVNTIEZsb2F0MzJfMTogY2xhc3NlcyBhcmUgW29i
amVjdCBGbG9hdDMyQXJyYXldCitQQVNTIEZsb2F0MzJfMTogY2xhc3NlcyBhcmUgW29iamVjdCBB
cnJheUJ1ZmZlcl0KK1BBU1MgRmxvYXQzMl8xOiBidWZmZXIgbGVuZ3RocyBhcmUgNAorUEFTUyBG
bG9hdDMyXzE6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBGbG9hdDMyXzE6
IG9mZnNldCBpcyAwCitQQVNTIEZsb2F0MzJfMTogbGVuZ3RoIGlzIDQKK1BBU1MgRmxvYXQ2NF8x
OiBjbGFzc2VzIGFyZSBbb2JqZWN0IEZsb2F0NjRBcnJheV0KK1BBU1MgRmxvYXQ2NF8xOiBjbGFz
c2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBGbG9hdDY0XzE6IGJ1ZmZlciBsZW5n
dGhzIGFyZSA4CitQQVNTIEZsb2F0NjRfMTogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRz
CitQQVNTIEZsb2F0NjRfMTogb2Zmc2V0IGlzIDAKK1BBU1MgRmxvYXQ2NF8xOiBsZW5ndGggaXMg
OAorUEFTUyBJbnQzMl8xMjg6IGNsYXNzZXMgYXJlIFtvYmplY3QgSW50MzJBcnJheV0KK1BBU1Mg
SW50MzJfMTI4OiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBJbnQzMl8x
Mjg6IGJ1ZmZlciBsZW5ndGhzIGFyZSA1MTIKK1BBU1MgSW50MzJfMTI4OiBidWZmZXJzIGhhdmUg
dGhlIHNhbWUgY29udGVudHMKK1BBU1MgSW50MzJfMTI4OiBvZmZzZXQgaXMgMAorUEFTUyBJbnQz
Ml8xMjg6IGxlbmd0aCBpcyA1MTIKK1BBU1MgVWludDMyXzEyODogY2xhc3NlcyBhcmUgW29iamVj
dCBVaW50MzJBcnJheV0KK1BBU1MgVWludDMyXzEyODogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJh
eUJ1ZmZlcl0KK1BBU1MgVWludDMyXzEyODogYnVmZmVyIGxlbmd0aHMgYXJlIDUxMgorUEFTUyBV
aW50MzJfMTI4OiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgVWludDMyXzEy
ODogb2Zmc2V0IGlzIDAKK1BBU1MgVWludDMyXzEyODogbGVuZ3RoIGlzIDUxMgorUEFTUyBJbnQ4
XzEyODogY2xhc3NlcyBhcmUgW29iamVjdCBJbnQ4QXJyYXldCitQQVNTIEludDhfMTI4OiBjbGFz
c2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBJbnQ4XzEyODogYnVmZmVyIGxlbmd0
aHMgYXJlIDEyOAorUEFTUyBJbnQ4XzEyODogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRz
CitQQVNTIEludDhfMTI4OiBvZmZzZXQgaXMgMAorUEFTUyBJbnQ4XzEyODogbGVuZ3RoIGlzIDEy
OAorUEFTUyBVaW50OF8xMjg6IGNsYXNzZXMgYXJlIFtvYmplY3QgVWludDhBcnJheV0KK1BBU1Mg
VWludDhfMTI4OiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBVaW50OF8x
Mjg6IGJ1ZmZlciBsZW5ndGhzIGFyZSAxMjgKK1BBU1MgVWludDhfMTI4OiBidWZmZXJzIGhhdmUg
dGhlIHNhbWUgY29udGVudHMKK1BBU1MgVWludDhfMTI4OiBvZmZzZXQgaXMgMAorUEFTUyBVaW50
OF8xMjg6IGxlbmd0aCBpcyAxMjgKK1BBU1MgSW50MTZfMTI4OiBjbGFzc2VzIGFyZSBbb2JqZWN0
IEludDE2QXJyYXldCitQQVNTIEludDE2XzEyODogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1
ZmZlcl0KK1BBU1MgSW50MTZfMTI4OiBidWZmZXIgbGVuZ3RocyBhcmUgMjU2CitQQVNTIEludDE2
XzEyODogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIEludDE2XzEyODogb2Zm
c2V0IGlzIDAKK1BBU1MgSW50MTZfMTI4OiBsZW5ndGggaXMgMjU2CitQQVNTIFVpbnQxNl8xMjg6
IGNsYXNzZXMgYXJlIFtvYmplY3QgVWludDE2QXJyYXldCitQQVNTIFVpbnQxNl8xMjg6IGNsYXNz
ZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIFVpbnQxNl8xMjg6IGJ1ZmZlciBsZW5n
dGhzIGFyZSAyNTYKK1BBU1MgVWludDE2XzEyODogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRl
bnRzCitQQVNTIFVpbnQxNl8xMjg6IG9mZnNldCBpcyAwCitQQVNTIFVpbnQxNl8xMjg6IGxlbmd0
aCBpcyAyNTYKK1BBU1MgRmxvYXQzMl8xMjg6IGNsYXNzZXMgYXJlIFtvYmplY3QgRmxvYXQzMkFy
cmF5XQorUEFTUyBGbG9hdDMyXzEyODogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0K
K1BBU1MgRmxvYXQzMl8xMjg6IGJ1ZmZlciBsZW5ndGhzIGFyZSA1MTIKK1BBU1MgRmxvYXQzMl8x
Mjg6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBGbG9hdDMyXzEyODogb2Zm
c2V0IGlzIDAKK1BBU1MgRmxvYXQzMl8xMjg6IGxlbmd0aCBpcyA1MTIKK1BBU1MgRmxvYXQ2NF8x
Mjg6IGNsYXNzZXMgYXJlIFtvYmplY3QgRmxvYXQ2NEFycmF5XQorUEFTUyBGbG9hdDY0XzEyODog
Y2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgRmxvYXQ2NF8xMjg6IGJ1ZmZl
ciBsZW5ndGhzIGFyZSAxMDI0CitQQVNTIEZsb2F0NjRfMTI4OiBidWZmZXJzIGhhdmUgdGhlIHNh
bWUgY29udGVudHMKK1BBU1MgRmxvYXQ2NF8xMjg6IG9mZnNldCBpcyAwCitQQVNTIEZsb2F0NjRf
MTI4OiBsZW5ndGggaXMgMTAyNAorUEFTUyBJbnQzMl8wX2J1ZmZlcjogY2xhc3NlcyBhcmUgW29i
amVjdCBJbnQzMkFycmF5XQorUEFTUyBJbnQzMl8wX2J1ZmZlcjogY2xhc3NlcyBhcmUgW29iamVj
dCBBcnJheUJ1ZmZlcl0KK1BBU1MgSW50MzJfMF9idWZmZXI6IGJ1ZmZlciBsZW5ndGhzIGFyZSAw
CitQQVNTIEludDMyXzBfYnVmZmVyOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BB
U1MgSW50MzJfMF9idWZmZXI6IG9mZnNldCBpcyAwCitQQVNTIEludDMyXzBfYnVmZmVyOiBsZW5n
dGggaXMgMAorUEFTUyBVaW50MzJfMF9idWZmZXI6IGNsYXNzZXMgYXJlIFtvYmplY3QgVWludDMy
QXJyYXldCitQQVNTIFVpbnQzMl8wX2J1ZmZlcjogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1
ZmZlcl0KK1BBU1MgVWludDMyXzBfYnVmZmVyOiBidWZmZXIgbGVuZ3RocyBhcmUgMAorUEFTUyBV
aW50MzJfMF9idWZmZXI6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBVaW50
MzJfMF9idWZmZXI6IG9mZnNldCBpcyAwCitQQVNTIFVpbnQzMl8wX2J1ZmZlcjogbGVuZ3RoIGlz
IDAKK1BBU1MgSW50OF8wX2J1ZmZlcjogY2xhc3NlcyBhcmUgW29iamVjdCBJbnQ4QXJyYXldCitQ
QVNTIEludDhfMF9idWZmZXI6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNT
IEludDhfMF9idWZmZXI6IGJ1ZmZlciBsZW5ndGhzIGFyZSAwCitQQVNTIEludDhfMF9idWZmZXI6
IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBJbnQ4XzBfYnVmZmVyOiBvZmZz
ZXQgaXMgMAorUEFTUyBJbnQ4XzBfYnVmZmVyOiBsZW5ndGggaXMgMAorUEFTUyBVaW50OF8wX2J1
ZmZlcjogY2xhc3NlcyBhcmUgW29iamVjdCBVaW50OEFycmF5XQorUEFTUyBVaW50OF8wX2J1ZmZl
cjogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgVWludDhfMF9idWZmZXI6
IGJ1ZmZlciBsZW5ndGhzIGFyZSAwCitQQVNTIFVpbnQ4XzBfYnVmZmVyOiBidWZmZXJzIGhhdmUg
dGhlIHNhbWUgY29udGVudHMKK1BBU1MgVWludDhfMF9idWZmZXI6IG9mZnNldCBpcyAwCitQQVNT
IFVpbnQ4XzBfYnVmZmVyOiBsZW5ndGggaXMgMAorUEFTUyBJbnQxNl8wX2J1ZmZlcjogY2xhc3Nl
cyBhcmUgW29iamVjdCBJbnQxNkFycmF5XQorUEFTUyBJbnQxNl8wX2J1ZmZlcjogY2xhc3NlcyBh
cmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgSW50MTZfMF9idWZmZXI6IGJ1ZmZlciBsZW5n
dGhzIGFyZSAwCitQQVNTIEludDE2XzBfYnVmZmVyOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29u
dGVudHMKK1BBU1MgSW50MTZfMF9idWZmZXI6IG9mZnNldCBpcyAwCitQQVNTIEludDE2XzBfYnVm
ZmVyOiBsZW5ndGggaXMgMAorUEFTUyBVaW50MTZfMF9idWZmZXI6IGNsYXNzZXMgYXJlIFtvYmpl
Y3QgVWludDE2QXJyYXldCitQQVNTIFVpbnQxNl8wX2J1ZmZlcjogY2xhc3NlcyBhcmUgW29iamVj
dCBBcnJheUJ1ZmZlcl0KK1BBU1MgVWludDE2XzBfYnVmZmVyOiBidWZmZXIgbGVuZ3RocyBhcmUg
MAorUEFTUyBVaW50MTZfMF9idWZmZXI6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cwor
UEFTUyBVaW50MTZfMF9idWZmZXI6IG9mZnNldCBpcyAwCitQQVNTIFVpbnQxNl8wX2J1ZmZlcjog
bGVuZ3RoIGlzIDAKK1BBU1MgRmxvYXQzMl8wX2J1ZmZlcjogY2xhc3NlcyBhcmUgW29iamVjdCBG
bG9hdDMyQXJyYXldCitQQVNTIEZsb2F0MzJfMF9idWZmZXI6IGNsYXNzZXMgYXJlIFtvYmplY3Qg
QXJyYXlCdWZmZXJdCitQQVNTIEZsb2F0MzJfMF9idWZmZXI6IGJ1ZmZlciBsZW5ndGhzIGFyZSAw
CitQQVNTIEZsb2F0MzJfMF9idWZmZXI6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cwor
UEFTUyBGbG9hdDMyXzBfYnVmZmVyOiBvZmZzZXQgaXMgMAorUEFTUyBGbG9hdDMyXzBfYnVmZmVy
OiBsZW5ndGggaXMgMAorUEFTUyBGbG9hdDY0XzBfYnVmZmVyOiBjbGFzc2VzIGFyZSBbb2JqZWN0
IEZsb2F0NjRBcnJheV0KK1BBU1MgRmxvYXQ2NF8wX2J1ZmZlcjogY2xhc3NlcyBhcmUgW29iamVj
dCBBcnJheUJ1ZmZlcl0KK1BBU1MgRmxvYXQ2NF8wX2J1ZmZlcjogYnVmZmVyIGxlbmd0aHMgYXJl
IDAKK1BBU1MgRmxvYXQ2NF8wX2J1ZmZlcjogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRz
CitQQVNTIEZsb2F0NjRfMF9idWZmZXI6IG9mZnNldCBpcyAwCitQQVNTIEZsb2F0NjRfMF9idWZm
ZXI6IGxlbmd0aCBpcyAwCitQQVNTIEludDMyXzFfYnVmZmVyOiBjbGFzc2VzIGFyZSBbb2JqZWN0
IEludDMyQXJyYXldCitQQVNTIEludDMyXzFfYnVmZmVyOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFy
cmF5QnVmZmVyXQorUEFTUyBJbnQzMl8xX2J1ZmZlcjogYnVmZmVyIGxlbmd0aHMgYXJlIDQKK1BB
U1MgSW50MzJfMV9idWZmZXI6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBJ
bnQzMl8xX2J1ZmZlcjogb2Zmc2V0IGlzIDAKK1BBU1MgSW50MzJfMV9idWZmZXI6IGxlbmd0aCBp
cyA0CitQQVNTIFVpbnQzMl8xX2J1ZmZlcjogY2xhc3NlcyBhcmUgW29iamVjdCBVaW50MzJBcnJh
eV0KK1BBU1MgVWludDMyXzFfYnVmZmVyOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVy
XQorUEFTUyBVaW50MzJfMV9idWZmZXI6IGJ1ZmZlciBsZW5ndGhzIGFyZSA0CitQQVNTIFVpbnQz
Ml8xX2J1ZmZlcjogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIFVpbnQzMl8x
X2J1ZmZlcjogb2Zmc2V0IGlzIDAKK1BBU1MgVWludDMyXzFfYnVmZmVyOiBsZW5ndGggaXMgNAor
UEFTUyBJbnQ4XzFfYnVmZmVyOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEludDhBcnJheV0KK1BBU1Mg
SW50OF8xX2J1ZmZlcjogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgSW50
OF8xX2J1ZmZlcjogYnVmZmVyIGxlbmd0aHMgYXJlIDEKK1BBU1MgSW50OF8xX2J1ZmZlcjogYnVm
ZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIEludDhfMV9idWZmZXI6IG9mZnNldCBp
cyAwCitQQVNTIEludDhfMV9idWZmZXI6IGxlbmd0aCBpcyAxCitQQVNTIFVpbnQ4XzFfYnVmZmVy
OiBjbGFzc2VzIGFyZSBbb2JqZWN0IFVpbnQ4QXJyYXldCitQQVNTIFVpbnQ4XzFfYnVmZmVyOiBj
bGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBVaW50OF8xX2J1ZmZlcjogYnVm
ZmVyIGxlbmd0aHMgYXJlIDEKK1BBU1MgVWludDhfMV9idWZmZXI6IGJ1ZmZlcnMgaGF2ZSB0aGUg
c2FtZSBjb250ZW50cworUEFTUyBVaW50OF8xX2J1ZmZlcjogb2Zmc2V0IGlzIDAKK1BBU1MgVWlu
dDhfMV9idWZmZXI6IGxlbmd0aCBpcyAxCitQQVNTIEludDE2XzFfYnVmZmVyOiBjbGFzc2VzIGFy
ZSBbb2JqZWN0IEludDE2QXJyYXldCitQQVNTIEludDE2XzFfYnVmZmVyOiBjbGFzc2VzIGFyZSBb
b2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBJbnQxNl8xX2J1ZmZlcjogYnVmZmVyIGxlbmd0aHMg
YXJlIDIKK1BBU1MgSW50MTZfMV9idWZmZXI6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50
cworUEFTUyBJbnQxNl8xX2J1ZmZlcjogb2Zmc2V0IGlzIDAKK1BBU1MgSW50MTZfMV9idWZmZXI6
IGxlbmd0aCBpcyAyCitQQVNTIFVpbnQxNl8xX2J1ZmZlcjogY2xhc3NlcyBhcmUgW29iamVjdCBV
aW50MTZBcnJheV0KK1BBU1MgVWludDE2XzFfYnVmZmVyOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFy
cmF5QnVmZmVyXQorUEFTUyBVaW50MTZfMV9idWZmZXI6IGJ1ZmZlciBsZW5ndGhzIGFyZSAyCitQ
QVNTIFVpbnQxNl8xX2J1ZmZlcjogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNT
IFVpbnQxNl8xX2J1ZmZlcjogb2Zmc2V0IGlzIDAKK1BBU1MgVWludDE2XzFfYnVmZmVyOiBsZW5n
dGggaXMgMgorUEFTUyBGbG9hdDMyXzFfYnVmZmVyOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEZsb2F0
MzJBcnJheV0KK1BBU1MgRmxvYXQzMl8xX2J1ZmZlcjogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJh
eUJ1ZmZlcl0KK1BBU1MgRmxvYXQzMl8xX2J1ZmZlcjogYnVmZmVyIGxlbmd0aHMgYXJlIDQKK1BB
U1MgRmxvYXQzMl8xX2J1ZmZlcjogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNT
IEZsb2F0MzJfMV9idWZmZXI6IG9mZnNldCBpcyAwCitQQVNTIEZsb2F0MzJfMV9idWZmZXI6IGxl
bmd0aCBpcyA0CitQQVNTIEZsb2F0NjRfMV9idWZmZXI6IGNsYXNzZXMgYXJlIFtvYmplY3QgRmxv
YXQ2NEFycmF5XQorUEFTUyBGbG9hdDY0XzFfYnVmZmVyOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFy
cmF5QnVmZmVyXQorUEFTUyBGbG9hdDY0XzFfYnVmZmVyOiBidWZmZXIgbGVuZ3RocyBhcmUgOAor
UEFTUyBGbG9hdDY0XzFfYnVmZmVyOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BB
U1MgRmxvYXQ2NF8xX2J1ZmZlcjogb2Zmc2V0IGlzIDAKK1BBU1MgRmxvYXQ2NF8xX2J1ZmZlcjog
bGVuZ3RoIGlzIDgKK1BBU1MgSW50MzJfMTI4X2J1ZmZlcjogY2xhc3NlcyBhcmUgW29iamVjdCBJ
bnQzMkFycmF5XQorUEFTUyBJbnQzMl8xMjhfYnVmZmVyOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFy
cmF5QnVmZmVyXQorUEFTUyBJbnQzMl8xMjhfYnVmZmVyOiBidWZmZXIgbGVuZ3RocyBhcmUgNTEy
CitQQVNTIEludDMyXzEyOF9idWZmZXI6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cwor
UEFTUyBJbnQzMl8xMjhfYnVmZmVyOiBvZmZzZXQgaXMgMAorUEFTUyBJbnQzMl8xMjhfYnVmZmVy
OiBsZW5ndGggaXMgNTEyCitQQVNTIFVpbnQzMl8xMjhfYnVmZmVyOiBjbGFzc2VzIGFyZSBbb2Jq
ZWN0IFVpbnQzMkFycmF5XQorUEFTUyBVaW50MzJfMTI4X2J1ZmZlcjogY2xhc3NlcyBhcmUgW29i
amVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgVWludDMyXzEyOF9idWZmZXI6IGJ1ZmZlciBsZW5ndGhz
IGFyZSA1MTIKK1BBU1MgVWludDMyXzEyOF9idWZmZXI6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBj
b250ZW50cworUEFTUyBVaW50MzJfMTI4X2J1ZmZlcjogb2Zmc2V0IGlzIDAKK1BBU1MgVWludDMy
XzEyOF9idWZmZXI6IGxlbmd0aCBpcyA1MTIKK1BBU1MgSW50OF8xMjhfYnVmZmVyOiBjbGFzc2Vz
IGFyZSBbb2JqZWN0IEludDhBcnJheV0KK1BBU1MgSW50OF8xMjhfYnVmZmVyOiBjbGFzc2VzIGFy
ZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBJbnQ4XzEyOF9idWZmZXI6IGJ1ZmZlciBsZW5n
dGhzIGFyZSAxMjgKK1BBU1MgSW50OF8xMjhfYnVmZmVyOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUg
Y29udGVudHMKK1BBU1MgSW50OF8xMjhfYnVmZmVyOiBvZmZzZXQgaXMgMAorUEFTUyBJbnQ4XzEy
OF9idWZmZXI6IGxlbmd0aCBpcyAxMjgKK1BBU1MgVWludDhfMTI4X2J1ZmZlcjogY2xhc3NlcyBh
cmUgW29iamVjdCBVaW50OEFycmF5XQorUEFTUyBVaW50OF8xMjhfYnVmZmVyOiBjbGFzc2VzIGFy
ZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBVaW50OF8xMjhfYnVmZmVyOiBidWZmZXIgbGVu
Z3RocyBhcmUgMTI4CitQQVNTIFVpbnQ4XzEyOF9idWZmZXI6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2Ft
ZSBjb250ZW50cworUEFTUyBVaW50OF8xMjhfYnVmZmVyOiBvZmZzZXQgaXMgMAorUEFTUyBVaW50
OF8xMjhfYnVmZmVyOiBsZW5ndGggaXMgMTI4CitQQVNTIEludDE2XzEyOF9idWZmZXI6IGNsYXNz
ZXMgYXJlIFtvYmplY3QgSW50MTZBcnJheV0KK1BBU1MgSW50MTZfMTI4X2J1ZmZlcjogY2xhc3Nl
cyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgSW50MTZfMTI4X2J1ZmZlcjogYnVmZmVy
IGxlbmd0aHMgYXJlIDI1NgorUEFTUyBJbnQxNl8xMjhfYnVmZmVyOiBidWZmZXJzIGhhdmUgdGhl
IHNhbWUgY29udGVudHMKK1BBU1MgSW50MTZfMTI4X2J1ZmZlcjogb2Zmc2V0IGlzIDAKK1BBU1Mg
SW50MTZfMTI4X2J1ZmZlcjogbGVuZ3RoIGlzIDI1NgorUEFTUyBVaW50MTZfMTI4X2J1ZmZlcjog
Y2xhc3NlcyBhcmUgW29iamVjdCBVaW50MTZBcnJheV0KK1BBU1MgVWludDE2XzEyOF9idWZmZXI6
IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIFVpbnQxNl8xMjhfYnVmZmVy
OiBidWZmZXIgbGVuZ3RocyBhcmUgMjU2CitQQVNTIFVpbnQxNl8xMjhfYnVmZmVyOiBidWZmZXJz
IGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgVWludDE2XzEyOF9idWZmZXI6IG9mZnNldCBp
cyAwCitQQVNTIFVpbnQxNl8xMjhfYnVmZmVyOiBsZW5ndGggaXMgMjU2CitQQVNTIEZsb2F0MzJf
MTI4X2J1ZmZlcjogY2xhc3NlcyBhcmUgW29iamVjdCBGbG9hdDMyQXJyYXldCitQQVNTIEZsb2F0
MzJfMTI4X2J1ZmZlcjogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgRmxv
YXQzMl8xMjhfYnVmZmVyOiBidWZmZXIgbGVuZ3RocyBhcmUgNTEyCitQQVNTIEZsb2F0MzJfMTI4
X2J1ZmZlcjogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIEZsb2F0MzJfMTI4
X2J1ZmZlcjogb2Zmc2V0IGlzIDAKK1BBU1MgRmxvYXQzMl8xMjhfYnVmZmVyOiBsZW5ndGggaXMg
NTEyCitQQVNTIEZsb2F0NjRfMTI4X2J1ZmZlcjogY2xhc3NlcyBhcmUgW29iamVjdCBGbG9hdDY0
QXJyYXldCitQQVNTIEZsb2F0NjRfMTI4X2J1ZmZlcjogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJh
eUJ1ZmZlcl0KK1BBU1MgRmxvYXQ2NF8xMjhfYnVmZmVyOiBidWZmZXIgbGVuZ3RocyBhcmUgMTAy
NAorUEFTUyBGbG9hdDY0XzEyOF9idWZmZXI6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50
cworUEFTUyBGbG9hdDY0XzEyOF9idWZmZXI6IG9mZnNldCBpcyAwCitQQVNTIEZsb2F0NjRfMTI4
X2J1ZmZlcjogbGVuZ3RoIGlzIDEwMjQKK1BBU1MgSW50MzJfMV9idWZmZXJfb2Zmc2V0X2F0X2Vu
ZDogY2xhc3NlcyBhcmUgW29iamVjdCBJbnQzMkFycmF5XQorUEFTUyBJbnQzMl8xX2J1ZmZlcl9v
ZmZzZXRfYXRfZW5kOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBJbnQz
Ml8xX2J1ZmZlcl9vZmZzZXRfYXRfZW5kOiBidWZmZXIgbGVuZ3RocyBhcmUgNAorUEFTUyBJbnQz
Ml8xX2J1ZmZlcl9vZmZzZXRfYXRfZW5kOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMK
K1BBU1MgSW50MzJfMV9idWZmZXJfb2Zmc2V0X2F0X2VuZDogb2Zmc2V0IGlzIDQKK1BBU1MgSW50
MzJfMV9idWZmZXJfb2Zmc2V0X2F0X2VuZDogbGVuZ3RoIGlzIDAKK1BBU1MgVWludDMyXzFfYnVm
ZmVyX29mZnNldF9hdF9lbmQ6IGNsYXNzZXMgYXJlIFtvYmplY3QgVWludDMyQXJyYXldCitQQVNT
IFVpbnQzMl8xX2J1ZmZlcl9vZmZzZXRfYXRfZW5kOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5
QnVmZmVyXQorUEFTUyBVaW50MzJfMV9idWZmZXJfb2Zmc2V0X2F0X2VuZDogYnVmZmVyIGxlbmd0
aHMgYXJlIDQKK1BBU1MgVWludDMyXzFfYnVmZmVyX29mZnNldF9hdF9lbmQ6IGJ1ZmZlcnMgaGF2
ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBVaW50MzJfMV9idWZmZXJfb2Zmc2V0X2F0X2VuZDog
b2Zmc2V0IGlzIDQKK1BBU1MgVWludDMyXzFfYnVmZmVyX29mZnNldF9hdF9lbmQ6IGxlbmd0aCBp
cyAwCitQQVNTIEludDhfMV9idWZmZXJfb2Zmc2V0X2F0X2VuZDogY2xhc3NlcyBhcmUgW29iamVj
dCBJbnQ4QXJyYXldCitQQVNTIEludDhfMV9idWZmZXJfb2Zmc2V0X2F0X2VuZDogY2xhc3NlcyBh
cmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgSW50OF8xX2J1ZmZlcl9vZmZzZXRfYXRfZW5k
OiBidWZmZXIgbGVuZ3RocyBhcmUgMQorUEFTUyBJbnQ4XzFfYnVmZmVyX29mZnNldF9hdF9lbmQ6
IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBJbnQ4XzFfYnVmZmVyX29mZnNl
dF9hdF9lbmQ6IG9mZnNldCBpcyAxCitQQVNTIEludDhfMV9idWZmZXJfb2Zmc2V0X2F0X2VuZDog
bGVuZ3RoIGlzIDAKK1BBU1MgVWludDhfMV9idWZmZXJfb2Zmc2V0X2F0X2VuZDogY2xhc3NlcyBh
cmUgW29iamVjdCBVaW50OEFycmF5XQorUEFTUyBVaW50OF8xX2J1ZmZlcl9vZmZzZXRfYXRfZW5k
OiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBVaW50OF8xX2J1ZmZlcl9v
ZmZzZXRfYXRfZW5kOiBidWZmZXIgbGVuZ3RocyBhcmUgMQorUEFTUyBVaW50OF8xX2J1ZmZlcl9v
ZmZzZXRfYXRfZW5kOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgVWludDhf
MV9idWZmZXJfb2Zmc2V0X2F0X2VuZDogb2Zmc2V0IGlzIDEKK1BBU1MgVWludDhfMV9idWZmZXJf
b2Zmc2V0X2F0X2VuZDogbGVuZ3RoIGlzIDAKK1BBU1MgSW50MTZfMV9idWZmZXJfb2Zmc2V0X2F0
X2VuZDogY2xhc3NlcyBhcmUgW29iamVjdCBJbnQxNkFycmF5XQorUEFTUyBJbnQxNl8xX2J1ZmZl
cl9vZmZzZXRfYXRfZW5kOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBJ
bnQxNl8xX2J1ZmZlcl9vZmZzZXRfYXRfZW5kOiBidWZmZXIgbGVuZ3RocyBhcmUgMgorUEFTUyBJ
bnQxNl8xX2J1ZmZlcl9vZmZzZXRfYXRfZW5kOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVu
dHMKK1BBU1MgSW50MTZfMV9idWZmZXJfb2Zmc2V0X2F0X2VuZDogb2Zmc2V0IGlzIDIKK1BBU1Mg
SW50MTZfMV9idWZmZXJfb2Zmc2V0X2F0X2VuZDogbGVuZ3RoIGlzIDAKK1BBU1MgVWludDE2XzFf
YnVmZmVyX29mZnNldF9hdF9lbmQ6IGNsYXNzZXMgYXJlIFtvYmplY3QgVWludDE2QXJyYXldCitQ
QVNTIFVpbnQxNl8xX2J1ZmZlcl9vZmZzZXRfYXRfZW5kOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFy
cmF5QnVmZmVyXQorUEFTUyBVaW50MTZfMV9idWZmZXJfb2Zmc2V0X2F0X2VuZDogYnVmZmVyIGxl
bmd0aHMgYXJlIDIKK1BBU1MgVWludDE2XzFfYnVmZmVyX29mZnNldF9hdF9lbmQ6IGJ1ZmZlcnMg
aGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBVaW50MTZfMV9idWZmZXJfb2Zmc2V0X2F0X2Vu
ZDogb2Zmc2V0IGlzIDIKK1BBU1MgVWludDE2XzFfYnVmZmVyX29mZnNldF9hdF9lbmQ6IGxlbmd0
aCBpcyAwCitQQVNTIEZsb2F0MzJfMV9idWZmZXJfb2Zmc2V0X2F0X2VuZDogY2xhc3NlcyBhcmUg
W29iamVjdCBGbG9hdDMyQXJyYXldCitQQVNTIEZsb2F0MzJfMV9idWZmZXJfb2Zmc2V0X2F0X2Vu
ZDogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgRmxvYXQzMl8xX2J1ZmZl
cl9vZmZzZXRfYXRfZW5kOiBidWZmZXIgbGVuZ3RocyBhcmUgNAorUEFTUyBGbG9hdDMyXzFfYnVm
ZmVyX29mZnNldF9hdF9lbmQ6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBG
bG9hdDMyXzFfYnVmZmVyX29mZnNldF9hdF9lbmQ6IG9mZnNldCBpcyA0CitQQVNTIEZsb2F0MzJf
MV9idWZmZXJfb2Zmc2V0X2F0X2VuZDogbGVuZ3RoIGlzIDAKK1BBU1MgRmxvYXQ2NF8xX2J1ZmZl
cl9vZmZzZXRfYXRfZW5kOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEZsb2F0NjRBcnJheV0KK1BBU1Mg
RmxvYXQ2NF8xX2J1ZmZlcl9vZmZzZXRfYXRfZW5kOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5
QnVmZmVyXQorUEFTUyBGbG9hdDY0XzFfYnVmZmVyX29mZnNldF9hdF9lbmQ6IGJ1ZmZlciBsZW5n
dGhzIGFyZSA4CitQQVNTIEZsb2F0NjRfMV9idWZmZXJfb2Zmc2V0X2F0X2VuZDogYnVmZmVycyBo
YXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIEZsb2F0NjRfMV9idWZmZXJfb2Zmc2V0X2F0X2Vu
ZDogb2Zmc2V0IGlzIDgKK1BBU1MgRmxvYXQ2NF8xX2J1ZmZlcl9vZmZzZXRfYXRfZW5kOiBsZW5n
dGggaXMgMAorUEFTUyBJbnQzMl8xMjhfYnVmZmVyX29mZnNldF9hdF9lbmQ6IGNsYXNzZXMgYXJl
IFtvYmplY3QgSW50MzJBcnJheV0KK1BBU1MgSW50MzJfMTI4X2J1ZmZlcl9vZmZzZXRfYXRfZW5k
OiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBJbnQzMl8xMjhfYnVmZmVy
X29mZnNldF9hdF9lbmQ6IGJ1ZmZlciBsZW5ndGhzIGFyZSA1MTIKK1BBU1MgSW50MzJfMTI4X2J1
ZmZlcl9vZmZzZXRfYXRfZW5kOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1Mg
SW50MzJfMTI4X2J1ZmZlcl9vZmZzZXRfYXRfZW5kOiBvZmZzZXQgaXMgNTEyCitQQVNTIEludDMy
XzEyOF9idWZmZXJfb2Zmc2V0X2F0X2VuZDogbGVuZ3RoIGlzIDAKK1BBU1MgVWludDMyXzEyOF9i
dWZmZXJfb2Zmc2V0X2F0X2VuZDogY2xhc3NlcyBhcmUgW29iamVjdCBVaW50MzJBcnJheV0KK1BB
U1MgVWludDMyXzEyOF9idWZmZXJfb2Zmc2V0X2F0X2VuZDogY2xhc3NlcyBhcmUgW29iamVjdCBB
cnJheUJ1ZmZlcl0KK1BBU1MgVWludDMyXzEyOF9idWZmZXJfb2Zmc2V0X2F0X2VuZDogYnVmZmVy
IGxlbmd0aHMgYXJlIDUxMgorUEFTUyBVaW50MzJfMTI4X2J1ZmZlcl9vZmZzZXRfYXRfZW5kOiBi
dWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgVWludDMyXzEyOF9idWZmZXJfb2Zm
c2V0X2F0X2VuZDogb2Zmc2V0IGlzIDUxMgorUEFTUyBVaW50MzJfMTI4X2J1ZmZlcl9vZmZzZXRf
YXRfZW5kOiBsZW5ndGggaXMgMAorUEFTUyBJbnQ4XzEyOF9idWZmZXJfb2Zmc2V0X2F0X2VuZDog
Y2xhc3NlcyBhcmUgW29iamVjdCBJbnQ4QXJyYXldCitQQVNTIEludDhfMTI4X2J1ZmZlcl9vZmZz
ZXRfYXRfZW5kOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBJbnQ4XzEy
OF9idWZmZXJfb2Zmc2V0X2F0X2VuZDogYnVmZmVyIGxlbmd0aHMgYXJlIDEyOAorUEFTUyBJbnQ4
XzEyOF9idWZmZXJfb2Zmc2V0X2F0X2VuZDogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRz
CitQQVNTIEludDhfMTI4X2J1ZmZlcl9vZmZzZXRfYXRfZW5kOiBvZmZzZXQgaXMgMTI4CitQQVNT
IEludDhfMTI4X2J1ZmZlcl9vZmZzZXRfYXRfZW5kOiBsZW5ndGggaXMgMAorUEFTUyBVaW50OF8x
MjhfYnVmZmVyX29mZnNldF9hdF9lbmQ6IGNsYXNzZXMgYXJlIFtvYmplY3QgVWludDhBcnJheV0K
K1BBU1MgVWludDhfMTI4X2J1ZmZlcl9vZmZzZXRfYXRfZW5kOiBjbGFzc2VzIGFyZSBbb2JqZWN0
IEFycmF5QnVmZmVyXQorUEFTUyBVaW50OF8xMjhfYnVmZmVyX29mZnNldF9hdF9lbmQ6IGJ1ZmZl
ciBsZW5ndGhzIGFyZSAxMjgKK1BBU1MgVWludDhfMTI4X2J1ZmZlcl9vZmZzZXRfYXRfZW5kOiBi
dWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgVWludDhfMTI4X2J1ZmZlcl9vZmZz
ZXRfYXRfZW5kOiBvZmZzZXQgaXMgMTI4CitQQVNTIFVpbnQ4XzEyOF9idWZmZXJfb2Zmc2V0X2F0
X2VuZDogbGVuZ3RoIGlzIDAKK1BBU1MgSW50MTZfMTI4X2J1ZmZlcl9vZmZzZXRfYXRfZW5kOiBj
bGFzc2VzIGFyZSBbb2JqZWN0IEludDE2QXJyYXldCitQQVNTIEludDE2XzEyOF9idWZmZXJfb2Zm
c2V0X2F0X2VuZDogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgSW50MTZf
MTI4X2J1ZmZlcl9vZmZzZXRfYXRfZW5kOiBidWZmZXIgbGVuZ3RocyBhcmUgMjU2CitQQVNTIElu
dDE2XzEyOF9idWZmZXJfb2Zmc2V0X2F0X2VuZDogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRl
bnRzCitQQVNTIEludDE2XzEyOF9idWZmZXJfb2Zmc2V0X2F0X2VuZDogb2Zmc2V0IGlzIDI1Ngor
UEFTUyBJbnQxNl8xMjhfYnVmZmVyX29mZnNldF9hdF9lbmQ6IGxlbmd0aCBpcyAwCitQQVNTIFVp
bnQxNl8xMjhfYnVmZmVyX29mZnNldF9hdF9lbmQ6IGNsYXNzZXMgYXJlIFtvYmplY3QgVWludDE2
QXJyYXldCitQQVNTIFVpbnQxNl8xMjhfYnVmZmVyX29mZnNldF9hdF9lbmQ6IGNsYXNzZXMgYXJl
IFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIFVpbnQxNl8xMjhfYnVmZmVyX29mZnNldF9hdF9l
bmQ6IGJ1ZmZlciBsZW5ndGhzIGFyZSAyNTYKK1BBU1MgVWludDE2XzEyOF9idWZmZXJfb2Zmc2V0
X2F0X2VuZDogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIFVpbnQxNl8xMjhf
YnVmZmVyX29mZnNldF9hdF9lbmQ6IG9mZnNldCBpcyAyNTYKK1BBU1MgVWludDE2XzEyOF9idWZm
ZXJfb2Zmc2V0X2F0X2VuZDogbGVuZ3RoIGlzIDAKK1BBU1MgRmxvYXQzMl8xMjhfYnVmZmVyX29m
ZnNldF9hdF9lbmQ6IGNsYXNzZXMgYXJlIFtvYmplY3QgRmxvYXQzMkFycmF5XQorUEFTUyBGbG9h
dDMyXzEyOF9idWZmZXJfb2Zmc2V0X2F0X2VuZDogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1
ZmZlcl0KK1BBU1MgRmxvYXQzMl8xMjhfYnVmZmVyX29mZnNldF9hdF9lbmQ6IGJ1ZmZlciBsZW5n
dGhzIGFyZSA1MTIKK1BBU1MgRmxvYXQzMl8xMjhfYnVmZmVyX29mZnNldF9hdF9lbmQ6IGJ1ZmZl
cnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBGbG9hdDMyXzEyOF9idWZmZXJfb2Zmc2V0
X2F0X2VuZDogb2Zmc2V0IGlzIDUxMgorUEFTUyBGbG9hdDMyXzEyOF9idWZmZXJfb2Zmc2V0X2F0
X2VuZDogbGVuZ3RoIGlzIDAKK1BBU1MgRmxvYXQ2NF8xMjhfYnVmZmVyX29mZnNldF9hdF9lbmQ6
IGNsYXNzZXMgYXJlIFtvYmplY3QgRmxvYXQ2NEFycmF5XQorUEFTUyBGbG9hdDY0XzEyOF9idWZm
ZXJfb2Zmc2V0X2F0X2VuZDogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1Mg
RmxvYXQ2NF8xMjhfYnVmZmVyX29mZnNldF9hdF9lbmQ6IGJ1ZmZlciBsZW5ndGhzIGFyZSAxMDI0
CitQQVNTIEZsb2F0NjRfMTI4X2J1ZmZlcl9vZmZzZXRfYXRfZW5kOiBidWZmZXJzIGhhdmUgdGhl
IHNhbWUgY29udGVudHMKK1BBU1MgRmxvYXQ2NF8xMjhfYnVmZmVyX29mZnNldF9hdF9lbmQ6IG9m
ZnNldCBpcyAxMDI0CitQQVNTIEZsb2F0NjRfMTI4X2J1ZmZlcl9vZmZzZXRfYXRfZW5kOiBsZW5n
dGggaXMgMAorUEFTUyBJbnQzMl8xMjhfYnVmZmVyX29mZnNldF9zbGljZV9sZW5ndGhfMDogY2xh
c3NlcyBhcmUgW29iamVjdCBJbnQzMkFycmF5XQorUEFTUyBJbnQzMl8xMjhfYnVmZmVyX29mZnNl
dF9zbGljZV9sZW5ndGhfMDogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1Mg
SW50MzJfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3RoXzA6IGJ1ZmZlciBsZW5ndGhzIGFy
ZSA1MTIKK1BBU1MgSW50MzJfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3RoXzA6IGJ1ZmZl
cnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBJbnQzMl8xMjhfYnVmZmVyX29mZnNldF9z
bGljZV9sZW5ndGhfMDogb2Zmc2V0IGlzIDI1NgorUEFTUyBJbnQzMl8xMjhfYnVmZmVyX29mZnNl
dF9zbGljZV9sZW5ndGhfMDogbGVuZ3RoIGlzIDAKK1BBU1MgVWludDMyXzEyOF9idWZmZXJfb2Zm
c2V0X3NsaWNlX2xlbmd0aF8wOiBjbGFzc2VzIGFyZSBbb2JqZWN0IFVpbnQzMkFycmF5XQorUEFT
UyBVaW50MzJfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3RoXzA6IGNsYXNzZXMgYXJlIFtv
YmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIFVpbnQzMl8xMjhfYnVmZmVyX29mZnNldF9zbGljZV9s
ZW5ndGhfMDogYnVmZmVyIGxlbmd0aHMgYXJlIDUxMgorUEFTUyBVaW50MzJfMTI4X2J1ZmZlcl9v
ZmZzZXRfc2xpY2VfbGVuZ3RoXzA6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFT
UyBVaW50MzJfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3RoXzA6IG9mZnNldCBpcyAyNTYK
K1BBU1MgVWludDMyXzEyOF9idWZmZXJfb2Zmc2V0X3NsaWNlX2xlbmd0aF8wOiBsZW5ndGggaXMg
MAorUEFTUyBJbnQ4XzEyOF9idWZmZXJfb2Zmc2V0X3NsaWNlX2xlbmd0aF8wOiBjbGFzc2VzIGFy
ZSBbb2JqZWN0IEludDhBcnJheV0KK1BBU1MgSW50OF8xMjhfYnVmZmVyX29mZnNldF9zbGljZV9s
ZW5ndGhfMDogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgSW50OF8xMjhf
YnVmZmVyX29mZnNldF9zbGljZV9sZW5ndGhfMDogYnVmZmVyIGxlbmd0aHMgYXJlIDEyOAorUEFT
UyBJbnQ4XzEyOF9idWZmZXJfb2Zmc2V0X3NsaWNlX2xlbmd0aF8wOiBidWZmZXJzIGhhdmUgdGhl
IHNhbWUgY29udGVudHMKK1BBU1MgSW50OF8xMjhfYnVmZmVyX29mZnNldF9zbGljZV9sZW5ndGhf
MDogb2Zmc2V0IGlzIDY0CitQQVNTIEludDhfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3Ro
XzA6IGxlbmd0aCBpcyAwCitQQVNTIFVpbnQ4XzEyOF9idWZmZXJfb2Zmc2V0X3NsaWNlX2xlbmd0
aF8wOiBjbGFzc2VzIGFyZSBbb2JqZWN0IFVpbnQ4QXJyYXldCitQQVNTIFVpbnQ4XzEyOF9idWZm
ZXJfb2Zmc2V0X3NsaWNlX2xlbmd0aF8wOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVy
XQorUEFTUyBVaW50OF8xMjhfYnVmZmVyX29mZnNldF9zbGljZV9sZW5ndGhfMDogYnVmZmVyIGxl
bmd0aHMgYXJlIDEyOAorUEFTUyBVaW50OF8xMjhfYnVmZmVyX29mZnNldF9zbGljZV9sZW5ndGhf
MDogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIFVpbnQ4XzEyOF9idWZmZXJf
b2Zmc2V0X3NsaWNlX2xlbmd0aF8wOiBvZmZzZXQgaXMgNjQKK1BBU1MgVWludDhfMTI4X2J1ZmZl
cl9vZmZzZXRfc2xpY2VfbGVuZ3RoXzA6IGxlbmd0aCBpcyAwCitQQVNTIEludDE2XzEyOF9idWZm
ZXJfb2Zmc2V0X3NsaWNlX2xlbmd0aF8wOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEludDE2QXJyYXld
CitQQVNTIEludDE2XzEyOF9idWZmZXJfb2Zmc2V0X3NsaWNlX2xlbmd0aF8wOiBjbGFzc2VzIGFy
ZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBJbnQxNl8xMjhfYnVmZmVyX29mZnNldF9zbGlj
ZV9sZW5ndGhfMDogYnVmZmVyIGxlbmd0aHMgYXJlIDI1NgorUEFTUyBJbnQxNl8xMjhfYnVmZmVy
X29mZnNldF9zbGljZV9sZW5ndGhfMDogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQ
QVNTIEludDE2XzEyOF9idWZmZXJfb2Zmc2V0X3NsaWNlX2xlbmd0aF8wOiBvZmZzZXQgaXMgMTI4
CitQQVNTIEludDE2XzEyOF9idWZmZXJfb2Zmc2V0X3NsaWNlX2xlbmd0aF8wOiBsZW5ndGggaXMg
MAorUEFTUyBVaW50MTZfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3RoXzA6IGNsYXNzZXMg
YXJlIFtvYmplY3QgVWludDE2QXJyYXldCitQQVNTIFVpbnQxNl8xMjhfYnVmZmVyX29mZnNldF9z
bGljZV9sZW5ndGhfMDogY2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgVWlu
dDE2XzEyOF9idWZmZXJfb2Zmc2V0X3NsaWNlX2xlbmd0aF8wOiBidWZmZXIgbGVuZ3RocyBhcmUg
MjU2CitQQVNTIFVpbnQxNl8xMjhfYnVmZmVyX29mZnNldF9zbGljZV9sZW5ndGhfMDogYnVmZmVy
cyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIFVpbnQxNl8xMjhfYnVmZmVyX29mZnNldF9z
bGljZV9sZW5ndGhfMDogb2Zmc2V0IGlzIDEyOAorUEFTUyBVaW50MTZfMTI4X2J1ZmZlcl9vZmZz
ZXRfc2xpY2VfbGVuZ3RoXzA6IGxlbmd0aCBpcyAwCitQQVNTIEZsb2F0MzJfMTI4X2J1ZmZlcl9v
ZmZzZXRfc2xpY2VfbGVuZ3RoXzA6IGNsYXNzZXMgYXJlIFtvYmplY3QgRmxvYXQzMkFycmF5XQor
UEFTUyBGbG9hdDMyXzEyOF9idWZmZXJfb2Zmc2V0X3NsaWNlX2xlbmd0aF8wOiBjbGFzc2VzIGFy
ZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBGbG9hdDMyXzEyOF9idWZmZXJfb2Zmc2V0X3Ns
aWNlX2xlbmd0aF8wOiBidWZmZXIgbGVuZ3RocyBhcmUgNTEyCitQQVNTIEZsb2F0MzJfMTI4X2J1
ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3RoXzA6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50
cworUEFTUyBGbG9hdDMyXzEyOF9idWZmZXJfb2Zmc2V0X3NsaWNlX2xlbmd0aF8wOiBvZmZzZXQg
aXMgMjU2CitQQVNTIEZsb2F0MzJfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3RoXzA6IGxl
bmd0aCBpcyAwCitQQVNTIEZsb2F0NjRfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3RoXzA6
IGNsYXNzZXMgYXJlIFtvYmplY3QgRmxvYXQ2NEFycmF5XQorUEFTUyBGbG9hdDY0XzEyOF9idWZm
ZXJfb2Zmc2V0X3NsaWNlX2xlbmd0aF8wOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVy
XQorUEFTUyBGbG9hdDY0XzEyOF9idWZmZXJfb2Zmc2V0X3NsaWNlX2xlbmd0aF8wOiBidWZmZXIg
bGVuZ3RocyBhcmUgMTAyNAorUEFTUyBGbG9hdDY0XzEyOF9idWZmZXJfb2Zmc2V0X3NsaWNlX2xl
bmd0aF8wOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgRmxvYXQ2NF8xMjhf
YnVmZmVyX29mZnNldF9zbGljZV9sZW5ndGhfMDogb2Zmc2V0IGlzIDUxMgorUEFTUyBGbG9hdDY0
XzEyOF9idWZmZXJfb2Zmc2V0X3NsaWNlX2xlbmd0aF8wOiBsZW5ndGggaXMgMAorUEFTUyBJbnQz
Ml8xMjhfYnVmZmVyX29mZnNldF9zbGljZV9sZW5ndGhfMTogY2xhc3NlcyBhcmUgW29iamVjdCBJ
bnQzMkFycmF5XQorUEFTUyBJbnQzMl8xMjhfYnVmZmVyX29mZnNldF9zbGljZV9sZW5ndGhfMTog
Y2xhc3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgSW50MzJfMTI4X2J1ZmZlcl9v
ZmZzZXRfc2xpY2VfbGVuZ3RoXzE6IGJ1ZmZlciBsZW5ndGhzIGFyZSA1MTIKK1BBU1MgSW50MzJf
MTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3RoXzE6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBj
b250ZW50cworUEFTUyBJbnQzMl8xMjhfYnVmZmVyX29mZnNldF9zbGljZV9sZW5ndGhfMTogb2Zm
c2V0IGlzIDI1NgorUEFTUyBJbnQzMl8xMjhfYnVmZmVyX29mZnNldF9zbGljZV9sZW5ndGhfMTog
bGVuZ3RoIGlzIDQKK1BBU1MgVWludDMyXzEyOF9idWZmZXJfb2Zmc2V0X3NsaWNlX2xlbmd0aF8x
OiBjbGFzc2VzIGFyZSBbb2JqZWN0IFVpbnQzMkFycmF5XQorUEFTUyBVaW50MzJfMTI4X2J1ZmZl
cl9vZmZzZXRfc2xpY2VfbGVuZ3RoXzE6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJd
CitQQVNTIFVpbnQzMl8xMjhfYnVmZmVyX29mZnNldF9zbGljZV9sZW5ndGhfMTogYnVmZmVyIGxl
bmd0aHMgYXJlIDUxMgorUEFTUyBVaW50MzJfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3Ro
XzE6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBVaW50MzJfMTI4X2J1ZmZl
cl9vZmZzZXRfc2xpY2VfbGVuZ3RoXzE6IG9mZnNldCBpcyAyNTYKK1BBU1MgVWludDMyXzEyOF9i
dWZmZXJfb2Zmc2V0X3NsaWNlX2xlbmd0aF8xOiBsZW5ndGggaXMgNAorUEFTUyBJbnQ4XzEyOF9i
dWZmZXJfb2Zmc2V0X3NsaWNlX2xlbmd0aF8xOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEludDhBcnJh
eV0KK1BBU1MgSW50OF8xMjhfYnVmZmVyX29mZnNldF9zbGljZV9sZW5ndGhfMTogY2xhc3NlcyBh
cmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgSW50OF8xMjhfYnVmZmVyX29mZnNldF9zbGlj
ZV9sZW5ndGhfMTogYnVmZmVyIGxlbmd0aHMgYXJlIDEyOAorUEFTUyBJbnQ4XzEyOF9idWZmZXJf
b2Zmc2V0X3NsaWNlX2xlbmd0aF8xOiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BB
U1MgSW50OF8xMjhfYnVmZmVyX29mZnNldF9zbGljZV9sZW5ndGhfMTogb2Zmc2V0IGlzIDY0CitQ
QVNTIEludDhfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3RoXzE6IGxlbmd0aCBpcyAxCitQ
QVNTIFVpbnQ4XzEyOF9idWZmZXJfb2Zmc2V0X3NsaWNlX2xlbmd0aF8xOiBjbGFzc2VzIGFyZSBb
b2JqZWN0IFVpbnQ4QXJyYXldCitQQVNTIFVpbnQ4XzEyOF9idWZmZXJfb2Zmc2V0X3NsaWNlX2xl
bmd0aF8xOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBVaW50OF8xMjhf
YnVmZmVyX29mZnNldF9zbGljZV9sZW5ndGhfMTogYnVmZmVyIGxlbmd0aHMgYXJlIDEyOAorUEFT
UyBVaW50OF8xMjhfYnVmZmVyX29mZnNldF9zbGljZV9sZW5ndGhfMTogYnVmZmVycyBoYXZlIHRo
ZSBzYW1lIGNvbnRlbnRzCitQQVNTIFVpbnQ4XzEyOF9idWZmZXJfb2Zmc2V0X3NsaWNlX2xlbmd0
aF8xOiBvZmZzZXQgaXMgNjQKK1BBU1MgVWludDhfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVu
Z3RoXzE6IGxlbmd0aCBpcyAxCitQQVNTIEludDE2XzEyOF9idWZmZXJfb2Zmc2V0X3NsaWNlX2xl
bmd0aF8xOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEludDE2QXJyYXldCitQQVNTIEludDE2XzEyOF9i
dWZmZXJfb2Zmc2V0X3NsaWNlX2xlbmd0aF8xOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVm
ZmVyXQorUEFTUyBJbnQxNl8xMjhfYnVmZmVyX29mZnNldF9zbGljZV9sZW5ndGhfMTogYnVmZmVy
IGxlbmd0aHMgYXJlIDI1NgorUEFTUyBJbnQxNl8xMjhfYnVmZmVyX29mZnNldF9zbGljZV9sZW5n
dGhfMTogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIEludDE2XzEyOF9idWZm
ZXJfb2Zmc2V0X3NsaWNlX2xlbmd0aF8xOiBvZmZzZXQgaXMgMTI4CitQQVNTIEludDE2XzEyOF9i
dWZmZXJfb2Zmc2V0X3NsaWNlX2xlbmd0aF8xOiBsZW5ndGggaXMgMgorUEFTUyBVaW50MTZfMTI4
X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3RoXzE6IGNsYXNzZXMgYXJlIFtvYmplY3QgVWludDE2
QXJyYXldCitQQVNTIFVpbnQxNl8xMjhfYnVmZmVyX29mZnNldF9zbGljZV9sZW5ndGhfMTogY2xh
c3NlcyBhcmUgW29iamVjdCBBcnJheUJ1ZmZlcl0KK1BBU1MgVWludDE2XzEyOF9idWZmZXJfb2Zm
c2V0X3NsaWNlX2xlbmd0aF8xOiBidWZmZXIgbGVuZ3RocyBhcmUgMjU2CitQQVNTIFVpbnQxNl8x
MjhfYnVmZmVyX29mZnNldF9zbGljZV9sZW5ndGhfMTogYnVmZmVycyBoYXZlIHRoZSBzYW1lIGNv
bnRlbnRzCitQQVNTIFVpbnQxNl8xMjhfYnVmZmVyX29mZnNldF9zbGljZV9sZW5ndGhfMTogb2Zm
c2V0IGlzIDEyOAorUEFTUyBVaW50MTZfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3RoXzE6
IGxlbmd0aCBpcyAyCitQQVNTIEZsb2F0MzJfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3Ro
XzE6IGNsYXNzZXMgYXJlIFtvYmplY3QgRmxvYXQzMkFycmF5XQorUEFTUyBGbG9hdDMyXzEyOF9i
dWZmZXJfb2Zmc2V0X3NsaWNlX2xlbmd0aF8xOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVm
ZmVyXQorUEFTUyBGbG9hdDMyXzEyOF9idWZmZXJfb2Zmc2V0X3NsaWNlX2xlbmd0aF8xOiBidWZm
ZXIgbGVuZ3RocyBhcmUgNTEyCitQQVNTIEZsb2F0MzJfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2Vf
bGVuZ3RoXzE6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBGbG9hdDMyXzEy
OF9idWZmZXJfb2Zmc2V0X3NsaWNlX2xlbmd0aF8xOiBvZmZzZXQgaXMgMjU2CitQQVNTIEZsb2F0
MzJfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3RoXzE6IGxlbmd0aCBpcyA0CitQQVNTIEZs
b2F0NjRfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3RoXzE6IGNsYXNzZXMgYXJlIFtvYmpl
Y3QgRmxvYXQ2NEFycmF5XQorUEFTUyBGbG9hdDY0XzEyOF9idWZmZXJfb2Zmc2V0X3NsaWNlX2xl
bmd0aF8xOiBjbGFzc2VzIGFyZSBbb2JqZWN0IEFycmF5QnVmZmVyXQorUEFTUyBGbG9hdDY0XzEy
OF9idWZmZXJfb2Zmc2V0X3NsaWNlX2xlbmd0aF8xOiBidWZmZXIgbGVuZ3RocyBhcmUgMTAyNAor
UEFTUyBGbG9hdDY0XzEyOF9idWZmZXJfb2Zmc2V0X3NsaWNlX2xlbmd0aF8xOiBidWZmZXJzIGhh
dmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1MgRmxvYXQ2NF8xMjhfYnVmZmVyX29mZnNldF9zbGlj
ZV9sZW5ndGhfMTogb2Zmc2V0IGlzIDUxMgorUEFTUyBGbG9hdDY0XzEyOF9idWZmZXJfb2Zmc2V0
X3NsaWNlX2xlbmd0aF8xOiBsZW5ndGggaXMgOAorUEFTUyBJbnQzMl8xMjhfYnVmZmVyX29mZnNl
dF9zbGljZV9sZW5ndGhfMTY6IGNsYXNzZXMgYXJlIFtvYmplY3QgSW50MzJBcnJheV0KK1BBU1Mg
SW50MzJfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3RoXzE2OiBjbGFzc2VzIGFyZSBbb2Jq
ZWN0IEFycmF5QnVmZmVyXQorUEFTUyBJbnQzMl8xMjhfYnVmZmVyX29mZnNldF9zbGljZV9sZW5n
dGhfMTY6IGJ1ZmZlciBsZW5ndGhzIGFyZSA1MTIKK1BBU1MgSW50MzJfMTI4X2J1ZmZlcl9vZmZz
ZXRfc2xpY2VfbGVuZ3RoXzE2OiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1Mg
SW50MzJfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3RoXzE2OiBvZmZzZXQgaXMgMjU2CitQ
QVNTIEludDMyXzEyOF9idWZmZXJfb2Zmc2V0X3NsaWNlX2xlbmd0aF8xNjogbGVuZ3RoIGlzIDY0
CitQQVNTIFVpbnQzMl8xMjhfYnVmZmVyX29mZnNldF9zbGljZV9sZW5ndGhfMTY6IGNsYXNzZXMg
YXJlIFtvYmplY3QgVWludDMyQXJyYXldCitQQVNTIFVpbnQzMl8xMjhfYnVmZmVyX29mZnNldF9z
bGljZV9sZW5ndGhfMTY6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIFVp
bnQzMl8xMjhfYnVmZmVyX29mZnNldF9zbGljZV9sZW5ndGhfMTY6IGJ1ZmZlciBsZW5ndGhzIGFy
ZSA1MTIKK1BBU1MgVWludDMyXzEyOF9idWZmZXJfb2Zmc2V0X3NsaWNlX2xlbmd0aF8xNjogYnVm
ZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIFVpbnQzMl8xMjhfYnVmZmVyX29mZnNl
dF9zbGljZV9sZW5ndGhfMTY6IG9mZnNldCBpcyAyNTYKK1BBU1MgVWludDMyXzEyOF9idWZmZXJf
b2Zmc2V0X3NsaWNlX2xlbmd0aF8xNjogbGVuZ3RoIGlzIDY0CitQQVNTIEludDhfMTI4X2J1ZmZl
cl9vZmZzZXRfc2xpY2VfbGVuZ3RoXzE2OiBjbGFzc2VzIGFyZSBbb2JqZWN0IEludDhBcnJheV0K
K1BBU1MgSW50OF8xMjhfYnVmZmVyX29mZnNldF9zbGljZV9sZW5ndGhfMTY6IGNsYXNzZXMgYXJl
IFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIEludDhfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2Vf
bGVuZ3RoXzE2OiBidWZmZXIgbGVuZ3RocyBhcmUgMTI4CitQQVNTIEludDhfMTI4X2J1ZmZlcl9v
ZmZzZXRfc2xpY2VfbGVuZ3RoXzE2OiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BB
U1MgSW50OF8xMjhfYnVmZmVyX29mZnNldF9zbGljZV9sZW5ndGhfMTY6IG9mZnNldCBpcyA2NAor
UEFTUyBJbnQ4XzEyOF9idWZmZXJfb2Zmc2V0X3NsaWNlX2xlbmd0aF8xNjogbGVuZ3RoIGlzIDE2
CitQQVNTIFVpbnQ4XzEyOF9idWZmZXJfb2Zmc2V0X3NsaWNlX2xlbmd0aF8xNjogY2xhc3NlcyBh
cmUgW29iamVjdCBVaW50OEFycmF5XQorUEFTUyBVaW50OF8xMjhfYnVmZmVyX29mZnNldF9zbGlj
ZV9sZW5ndGhfMTY6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIFVpbnQ4
XzEyOF9idWZmZXJfb2Zmc2V0X3NsaWNlX2xlbmd0aF8xNjogYnVmZmVyIGxlbmd0aHMgYXJlIDEy
OAorUEFTUyBVaW50OF8xMjhfYnVmZmVyX29mZnNldF9zbGljZV9sZW5ndGhfMTY6IGJ1ZmZlcnMg
aGF2ZSB0aGUgc2FtZSBjb250ZW50cworUEFTUyBVaW50OF8xMjhfYnVmZmVyX29mZnNldF9zbGlj
ZV9sZW5ndGhfMTY6IG9mZnNldCBpcyA2NAorUEFTUyBVaW50OF8xMjhfYnVmZmVyX29mZnNldF9z
bGljZV9sZW5ndGhfMTY6IGxlbmd0aCBpcyAxNgorUEFTUyBJbnQxNl8xMjhfYnVmZmVyX29mZnNl
dF9zbGljZV9sZW5ndGhfMTY6IGNsYXNzZXMgYXJlIFtvYmplY3QgSW50MTZBcnJheV0KK1BBU1Mg
SW50MTZfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3RoXzE2OiBjbGFzc2VzIGFyZSBbb2Jq
ZWN0IEFycmF5QnVmZmVyXQorUEFTUyBJbnQxNl8xMjhfYnVmZmVyX29mZnNldF9zbGljZV9sZW5n
dGhfMTY6IGJ1ZmZlciBsZW5ndGhzIGFyZSAyNTYKK1BBU1MgSW50MTZfMTI4X2J1ZmZlcl9vZmZz
ZXRfc2xpY2VfbGVuZ3RoXzE2OiBidWZmZXJzIGhhdmUgdGhlIHNhbWUgY29udGVudHMKK1BBU1Mg
SW50MTZfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3RoXzE2OiBvZmZzZXQgaXMgMTI4CitQ
QVNTIEludDE2XzEyOF9idWZmZXJfb2Zmc2V0X3NsaWNlX2xlbmd0aF8xNjogbGVuZ3RoIGlzIDMy
CitQQVNTIFVpbnQxNl8xMjhfYnVmZmVyX29mZnNldF9zbGljZV9sZW5ndGhfMTY6IGNsYXNzZXMg
YXJlIFtvYmplY3QgVWludDE2QXJyYXldCitQQVNTIFVpbnQxNl8xMjhfYnVmZmVyX29mZnNldF9z
bGljZV9sZW5ndGhfMTY6IGNsYXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIFVp
bnQxNl8xMjhfYnVmZmVyX29mZnNldF9zbGljZV9sZW5ndGhfMTY6IGJ1ZmZlciBsZW5ndGhzIGFy
ZSAyNTYKK1BBU1MgVWludDE2XzEyOF9idWZmZXJfb2Zmc2V0X3NsaWNlX2xlbmd0aF8xNjogYnVm
ZmVycyBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzCitQQVNTIFVpbnQxNl8xMjhfYnVmZmVyX29mZnNl
dF9zbGljZV9sZW5ndGhfMTY6IG9mZnNldCBpcyAxMjgKK1BBU1MgVWludDE2XzEyOF9idWZmZXJf
b2Zmc2V0X3NsaWNlX2xlbmd0aF8xNjogbGVuZ3RoIGlzIDMyCitQQVNTIEZsb2F0MzJfMTI4X2J1
ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3RoXzE2OiBjbGFzc2VzIGFyZSBbb2JqZWN0IEZsb2F0MzJB
cnJheV0KK1BBU1MgRmxvYXQzMl8xMjhfYnVmZmVyX29mZnNldF9zbGljZV9sZW5ndGhfMTY6IGNs
YXNzZXMgYXJlIFtvYmplY3QgQXJyYXlCdWZmZXJdCitQQVNTIEZsb2F0MzJfMTI4X2J1ZmZlcl9v
ZmZzZXRfc2xpY2VfbGVuZ3RoXzE2OiBidWZmZXIgbGVuZ3RocyBhcmUgNTEyCitQQVNTIEZsb2F0
MzJfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3RoXzE2OiBidWZmZXJzIGhhdmUgdGhlIHNh
bWUgY29udGVudHMKK1BBU1MgRmxvYXQzMl8xMjhfYnVmZmVyX29mZnNldF9zbGljZV9sZW5ndGhf
MTY6IG9mZnNldCBpcyAyNTYKK1BBU1MgRmxvYXQzMl8xMjhfYnVmZmVyX29mZnNldF9zbGljZV9s
ZW5ndGhfMTY6IGxlbmd0aCBpcyA2NAorUEFTUyBGbG9hdDY0XzEyOF9idWZmZXJfb2Zmc2V0X3Ns
aWNlX2xlbmd0aF8xNjogY2xhc3NlcyBhcmUgW29iamVjdCBGbG9hdDY0QXJyYXldCitQQVNTIEZs
b2F0NjRfMTI4X2J1ZmZlcl9vZmZzZXRfc2xpY2VfbGVuZ3RoXzE2OiBjbGFzc2VzIGFyZSBbb2Jq
ZWN0IEFycmF5QnVmZmVyXQorUEFTUyBGbG9hdDY0XzEyOF9idWZmZXJfb2Zmc2V0X3NsaWNlX2xl
bmd0aF8xNjogYnVmZmVyIGxlbmd0aHMgYXJlIDEwMjQKK1BBU1MgRmxvYXQ2NF8xMjhfYnVmZmVy
X29mZnNldF9zbGljZV9sZW5ndGhfMTY6IGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSBjb250ZW50cwor
UEFTUyBGbG9hdDY0XzEyOF9idWZmZXJfb2Zmc2V0X3NsaWNlX2xlbmd0aF8xNjogb2Zmc2V0IGlz
IDUxMgorUEFTUyBGbG9hdDY0XzEyOF9idWZmZXJfb2Zmc2V0X3NsaWNlX2xlbmd0aF8xNjogbGVu
Z3RoIGlzIDEyOAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZG9t
L1dpbmRvdy93aW5kb3ctcG9zdG1lc3NhZ2UtY2xvbmUtZGVlcC1hcnJheS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXBv
c3RtZXNzYWdlLWNsb25lLWRlZXAtYXJyYXktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjRjNjc5MzAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXBvc3RtZXNzYWdlLWNs
b25lLWRlZXAtYXJyYXktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorVGVzdHMgdGhhdCB3
ZSBzdXBwb3J0IGNsb25pbmcgZGVlcChpc2gpIGFycmF5cy4KKworUEFTUzogZXZlbnREYXRhIGlz
IFtvYmplY3QgQXJyYXldKGRlZmF1bHQgdG9TdHJpbmcgdGhyZXcgUmFuZ2VFcnJvcjogTWF4aW11
bSBjYWxsIHN0YWNrIHNpemUgZXhjZWVkZWQpIG9mIHR5cGUgb2JqZWN0CitQQVNTOiBldmVudERh
dGEgaXMgZG9uZSBvZiB0eXBlIHN0cmluZworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXBvc3RtZXNzYWdlLWNsb25lLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZG9tL1dpbmRv
dy93aW5kb3ctcG9zdG1lc3NhZ2UtY2xvbmUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLmZkYzRhMWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXBvc3RtZXNzYWdlLWNs
b25lLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExNCBAQAorVGVzdHMgdGhhdCB3ZSBjbG9uZSBv
YmplY3QgaGllcmFyY2hpZXMKKworUEFTUzogJ3Bvc3RNZXNzYWdlKChmdW5jdGlvbigpe30pKScg
dGhyZXcgRXJyb3I6IERBVEFfQ0xPTkVfRVJSOiBET00gRXhjZXB0aW9uIDI1CitQQVNTOiAncG9z
dE1lc3NhZ2Uod2luZG93KScgdGhyZXcgRXJyb3I6IERBVEFfQ0xPTkVfRVJSOiBET00gRXhjZXB0
aW9uIDI1CitQQVNTOiAncG9zdE1lc3NhZ2UoKHtnZXQgYSgpIHsgdGhyb3cgIngiIH19KSknIHRo
cmV3IHgKK1BBU1M6ICdwb3N0TWVzc2FnZShpbWFnZURhdGEuZGF0YSknIHRocmV3IEVycm9yOiBE
QVRBX0NMT05FX0VSUjogRE9NIEV4Y2VwdGlvbiAyNQorUEFTUzogJ3Bvc3RNZXNzYWdlKG11dGF0
ZWRJbWFnZURhdGEuZGF0YSknIHRocmV3IEVycm9yOiBEQVRBX0NMT05FX0VSUjogRE9NIEV4Y2Vw
dGlvbiAyNQorUEFTUzogJ3Bvc3RNZXNzYWdlKChmdW5jdGlvbigpIHtyZXR1cm4ge2dldCBhKCkg
eyB0aHJvdyAiYWNjZXNzb3ItZXhuIjsgfX07fSkoKSknIHRocmV3IGFjY2Vzc29yLWV4bgorUEFT
UzogJ3Bvc3RNZXNzYWdlKChmdW5jdGlvbigpIHt2YXIgb2JqYSA9IHtnZXQgcCgpIHsgdGhyb3cg
ImFjY2Vzc29yLWV4biI7IH19OyByZXR1cm4ge2dldCBhKCkgeyByZXR1cm4gb2JqYTsgfX07fSko
KSknIHRocmV3IGFjY2Vzc29yLWV4bgorUEFTUzogbGFzdEluZGV4IGluaXRpYWxseSBjb3JyZWN0
OiB3YXMgMworUEFTUzogc2FuaXR5IG9uIGZpbGUgcmVmZXJlbmNlIGVxdWFsaXR5CitQQVNTOiBl
dmVudERhdGEgaXMgbnVsbCBvZiB0eXBlIG9iamVjdAorUEFTUzogZXZlbnREYXRhIGlzIHVuZGVm
aW5lZCBvZiB0eXBlIHVuZGVmaW5lZAorUEFTUzogZXZlbnREYXRhIGlzIDEgb2YgdHlwZSBudW1i
ZXIKK1BBU1M6IGV2ZW50RGF0YSBpcyB0cnVlIG9mIHR5cGUgYm9vbGVhbgorUEFTUzogZXZlbnRE
YXRhIGlzIDEgb2YgdHlwZSBzdHJpbmcKK1BBU1M6IGV2ZW50RGF0YSBpcyBbb2JqZWN0IE9iamVj
dF0gb2YgdHlwZSBvYmplY3QKK1BBU1M6IGV2ZW50RGF0YSBpcyBbb2JqZWN0IE9iamVjdF0gb2Yg
dHlwZSBvYmplY3QKK1BBU1M6IGV2ZW50RGF0YSBpcyBbb2JqZWN0IE9iamVjdF0gb2YgdHlwZSBv
YmplY3QKK1BBU1M6IGV2ZW50RGF0YSBpcyBbb2JqZWN0IE9iamVjdF0gb2YgdHlwZSBvYmplY3QK
K1BBU1M6IGV2ZW50RGF0YSBpcyBbb2JqZWN0IE9iamVjdF0gb2YgdHlwZSBvYmplY3QKK1BBU1M6
IGV2ZW50RGF0YSBpcyBbb2JqZWN0IE9iamVjdF0gb2YgdHlwZSBvYmplY3QKK1BBU1M6IGV2ZW50
RGF0YSBpcyBbb2JqZWN0IE9iamVjdF0gb2YgdHlwZSBvYmplY3QKK1BBU1M6IGV2ZW50RGF0YSBp
cyBbb2JqZWN0IE9iamVjdF0gb2YgdHlwZSBvYmplY3QKK1BBU1M6IGV2ZW50RGF0YSBpcyBbb2Jq
ZWN0IE9iamVjdF0gb2YgdHlwZSBvYmplY3QKK1BBU1M6IGV2ZW50RGF0YSBpcyBvZiB0eXBlIG9i
amVjdAorUEFTUzogZXZlbnREYXRhIGlzIGEsYSxiLGEsYiBvZiB0eXBlIG9iamVjdAorUEFTUzog
ZXZlbnREYXRhIGlzIGEsYSxiLFtvYmplY3QgT2JqZWN0XSBvZiB0eXBlIG9iamVjdAorUEFTUzog
ZXZlbnREYXRhIGlzIDEsMiwzIG9mIHR5cGUgb2JqZWN0CitQQVNTOiBldmVudERhdGEgaXMgLCwx
IG9mIHR5cGUgb2JqZWN0CitQQVNTOiBldmVudERhdGEgaXMgMjAwOS0wMi0xM1QyMzozMTozMC4w
MDBaIG9mIHR5cGUgb2JqZWN0CitQQVNTOiBldmVudERhdGEgaXMgW29iamVjdCBPYmplY3RdIG9m
IHR5cGUgb2JqZWN0CitQQVNTOiBldmVudERhdGEgaXMgPT09IHRvIGV2ZW50RGF0YS5zZWxmCitQ
QVNTOiBldmVudERhdGEgaXMgPT09IHRvIGV2ZW50RGF0YVswXQorUEFTUzogZXZlbnREYXRhLmdy
YXBoMSBpcyA9PT0gdG8gZXZlbnREYXRhLmdyYXBoMgorUEFTUzogZXZlbnREYXRhWzBdIGlzID09
PSB0byBldmVudERhdGFbMV0KK1BBU1M6IGV2ZW50RGF0YSBpcyBbb2JqZWN0IEltYWdlRGF0YV0g
b2YgdHlwZSBvYmplY3QKK1BBU1M6IGV2ZW50RGF0YSBpcyBbb2JqZWN0IEltYWdlRGF0YV0gb2Yg
dHlwZSBvYmplY3QKK1BBU1M6IGV2ZW50RGF0YSBpcyA0MiBvZiB0eXBlIG51bWJlcgorUEFTUzog
ZXZlbnREYXRhIGlzIDQyIG9mIHR5cGUgbnVtYmVyCitQQVNTOiBldmFsVGh1bmsgT0sKK1BBU1M6
IGV2ZW50RGF0YSBpcyBbb2JqZWN0IE9iamVjdF0gb2YgdHlwZSBvYmplY3QKK1BBU1M6IGxlbmd0
aCBjb3JyZWN0CitQQVNTOiBldmFsdWF0aW9uIG9yZGVyIE9LCitQQVNTOiBldmFsdWF0aW9uIG9y
ZGVyIE9LL2FjY2Vzc29yIHJlYWNoZWQKK1BBU1M6IGV2YWx1YXRpb24gb3JkZXIgT0sKK1BBU1M6
IGxlbmd0aCBjb3JyZWN0CitQQVNTOiBpbmRleCAwIE9LCitQQVNTOiBhY2Nlc3NvciByZWFjaGVk
CitQQVNTOiBpbmRleCAyIHVuZGVmaW5lZAorUEFTUzogbGVuZ3RoIGNvcnJlY3QKK1BBU1M6IGlu
ZGV4IDAgT0sKK1BBU1M6IGluZGV4IDEgT0sKK1BBU1M6IGluZGV4IDIgT0sKK1BBU1M6IGJhc2lj
IHByb3BlcnRpZXMgT0sKK1BBU1M6IG9uZSBhY2Nlc3NvciB3YXMgcnVuCitQQVNTOiBwcm9wZXJ0
eSB3YXMgcmVtb3ZlZAorUEFTUzogcHJvcGVydHkgd2FzIHJlbW92ZWQKK1BBU1M6IGFjY2Vzc29y
IHdhcyBydW4KK1BBU1M6IGR5bmFtaWMgcHJvcGVydHkgbm90IHNlbnQKK1BBU1M6IHJlZmVyZW5j
ZSBlcXVhbGl0eSBwcmVzZXJ2ZWQKK1BBU1M6IGFjY2Vzc29ycyB1c2VkCitQQVNTOiByZWZlcmVu
Y2UgZXF1YWxpdHkgcHJlc2VydmVkIChvcHBvc2l0ZSBvcmRlcikKK1BBU1M6IGFjY2Vzc29ycyB1
c2VkIChvcHBvc2l0ZSBvcmRlcikKK1BBU1M6IGFjY2Vzc29yIHZhbHVlIHdhcyBudWxsaWZpZWQK
K1BBU1M6IG5vbi1hY2Nlc3NvciB2YWx1ZSB3YXMgbm90IG51bGxpZmllZAorUEFTUzogYWNjZXNz
b3IgdmFsdWUgd2FzIG51bGxpZmllZAorUEFTUzogbm9uLWFjY2Vzc29yIHZhbHVlIHdhcyBub3Qg
bnVsbGlmaWVkCitQQVNTOiBub24tYWNjZXNzb3IgdmFsdWUgd2FzIG5vdCBudWxsaWZpZWQKK1BB
U1M6IGFjY2Vzc29yIHZhbHVlIHdhcyBudWxsaWZpZWQKK1BBU1M6IG5vbi1hY2Nlc3NvciB2YWx1
ZSB3YXMgbm90IG51bGxpZmllZAorUEFTUzogYWNjZXNzb3IgdmFsdWUgd2FzIG5vdCBudWxsaWZp
ZWQKK1BBU1M6IGFjY2Vzc29yIHZhbHVlIHdhcyBub3QgbnVsbGlmaWVkCitQQVNTOiBhY2Nlc3Nv
ciB2YWx1ZSB3YXMgbnVsbGlmaWVkCitQQVNTOiBub24tYWNjZXNzb3IgdmFsdWUgd2FzIG5vdCBu
dWxsaWZpZWQKK1BBU1M6IG5vbi1hY2Nlc3NvciB2YWx1ZSB3YXMgbm90IG51bGxpZmllZAorUEFT
Uzogbm9uLWFjY2Vzc29yIHZhbHVlIGlzIGRlZmluZWQKK1BBU1M6IG5vbi1hY2Nlc3NvciB2YWx1
ZSB3YXMgbm90IG51bGxpZmllZAorUEFTUzogbm9uLWFjY2Vzc29yIHZhbHVlIGlzIGRlZmluZWQK
K1BBU1M6IGFjY2Vzc29yIHZhbHVlIHdhcyBudWxsaWZpZWQKK1BBU1M6IG5vbi1hY2Nlc3NvciB2
YWx1ZSB3YXMgbm90IG51bGxpZmllZAorUEFTUzogYWNjZXNzb3IgdmFsdWUgd2FzIG51bGxpZmll
ZAorUEFTUzogd2luZG93LnBjYWxsZWQgPT09IHRydWUKK1BBU1M6IHdpbmRvdy5hY2FsbGVkID09
PSB0cnVlCitQQVNTOiB3aW5kb3cuYmNhbGxlZCA9PT0gdW5kZWZpbmVkCitQQVNTOiBEYXRlIHZh
bHVlcyBjb3JyZWN0ICgwKQorUEFTUzogRGF0ZSB2YWx1ZXMgY29ycmVjdCAoMSkKK1BBU1M6IFJl
ZmVyZW5jZXMgdG8gZGF0ZXMgY29ycmVjdCAoMCkKK1BBU1M6IFJlZmVyZW5jZXMgdG8gZGF0ZXMg
Y29ycmVjdCAoMSkKK1BBU1M6IFJlZ2V4cCB2YWx1ZSBjb3JyZWN0ICgwKQorUEFTUzogUmVmZXJl
bmNlcyB0byByZWdleHBzIGNvcnJlY3QgKDApCitQQVNTOiBSZWZlcmVuY2VzIHRvIHJlZ2V4cHMg
Y29ycmVjdCAoMSkKK1BBU1M6IGdsb2JhbCBzZXQgKDApCitQQVNTOiBnbG9iYWwgc2V0ICgxKQor
UEFTUzogaWdub3JlQ2FzZSBzZXQgKDApCitQQVNTOiBpZ25vcmVDYXNlIHNldCAoMSkKK1BBU1M6
IG11bHRpbGluZSBzZXQgKDApCitQQVNTOiBtdWx0aWxpbmUgc2V0ICgxKQorUEFTUzogbGFzdElu
ZGV4IGNvcnJlY3QgKDApCitQQVNTOiBsYXN0SW5kZXggY29ycmVjdCAoMSkKK1BBU1M6IGV2ZW50
RGF0YSBpcyAyIG9mIHR5cGUgbnVtYmVyCitQQVNTOiBmaWxlIHJlZmVyZW5jZXMgdHJhbnNmZXIK
K1BBU1M6IEZpbGVMaXN0IHNob3VsZCBub3QgcmVzcGVjdCByZWZlcmVuY2UgZXF1YWxpdHkKK1BB
U1M6IEZpbGVMaXN0IHNob3VsZCBub3QgcmVzcGVjdCByZWZlcmVuY2UgZXF1YWxpdHkKK1BBU1M6
IEZpbGVMaXN0IHJlc3BlY3RzIHNlbGYtcmVmZXJlbmNlIGVxdWFsaXR5CitQQVNTOiBGaWxlTGlz
dCBsZW5ndGggc2VudCBjb3JyZWN0bHkKK1BBU1M6IEZpbGVMaXN0IHNob3VsZCBub3QgcmVzcGVj
dCByZWZlcmVuY2UgZXF1YWxpdHkgKDApCitQQVNTOiBGaWxlTGlzdCBzaG91bGQgbm90IHJlc3Bl
Y3QgcmVmZXJlbmNlIGVxdWFsaXR5ICgxKQorUEFTUzogRmlsZUxpc3QgcHJlc2VydmVzIG9yZGVy
IGFuZCBkYXRhIChuYW1lMCkKK1BBU1M6IEZpbGVMaXN0IHByZXNlcnZlcyBvcmRlciBhbmQgZGF0
YSAobmFtZTEpCitQQVNTOiBGaWxlTGlzdCBwcmVzZXJ2ZXMgb3JkZXIgYW5kIGRhdGEgKGRhdGUw
KQorUEFTUzogRmlsZUxpc3QgcHJlc2VydmVzIG9yZGVyIGFuZCBkYXRhIChkYXRlMSkKK1BBU1M6
IGV2ZW50RGF0YSBpcyBkb25lIG9mIHR5cGUgc3RyaW5nCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcG9zdG1lc3NhZ2Ut
Y2xvbmUtcmVhbGx5LWRlZXAtYXJyYXktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0vZmFzdC9kb20vV2luZG93L3dpbmRvdy1wb3N0bWVzc2FnZS1jbG9uZS1yZWFs
bHktZGVlcC1hcnJheS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uNGNjNTE4NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcG9zdG1lc3NhZ2UtY2xvbmUtcmVhbGx5LWRl
ZXAtYXJyYXktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorVGVzdHMgdGhhdCB3ZSBhYm9y
dCBjbG9uaW5nIG92ZXJkZWVwIGFycmF5cy4KKworUEFTUzogJ3Bvc3RNZXNzYWdlKHJlYWxseURl
ZXBBcnJheSknIHRocmV3IEVycm9yOiBEQVRBX0NMT05FX0VSUjogRE9NIEV4Y2VwdGlvbiAyNQor
UEFTUzogZXZlbnREYXRhIGlzIGRvbmUgb2YgdHlwZSBzdHJpbmcKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0IGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CmluZGV4IGQ5YmZl
YTMuLmFiYTdlYzQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rl
c3RfZXhwZWN0YXRpb25zLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90
ZXN0X2V4cGVjdGF0aW9ucy50eHQKQEAgLTYwLDYgKzYwLDcgQEAgQlVHV0s1NTkxMyBERUJVRyA6
IGpxdWVyeS9kaW1lbnNpb25zLmh0bWwgPSBUSU1FT1VUIFBBU1MKIAogQlVHV0s2NDQ5OCBTTE9X
IERFQlVHIDogZmFzdC9lbmNvZGluZy9wYXJzZXItdGVzdHMtNDAuaHRtbCA9IFBBU1MKIEJVR1dL
NjQ1MDIgU0xPVyBERUJVRyA6IGZhc3QvZm9ybXMvZm9ybS1hc3NvY2lhdGVkLWVsZW1lbnQtY3Jh
c2gzLmh0bWwgPSBQQVNTCitXT05URklYIFNMT1cgOiBmYXN0L2RvbS9XaW5kb3cvd2luZG93LXBv
c3RtZXNzYWdlLWNsb25lLXJlYWxseS1kZWVwLWFycmF5Lmh0bWwgPSBQQVNTCiAKIC8vIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCiAvLyBTS0lQUEVEIFRFU1RTCkBAIC0xNTU4LDkgKzE1NTksNiBAQCBCVUdDUjI0MTI2IDog
ZmFzdC9kb20vSFRNTElucHV0RWxlbWVudC9zaXplLWF0dHJpYnV0ZS5odG1sID0gRkFJTAogLy8g
Rmxha3kgdGltZW91dHMgZmlyc3QgYXBwZWFyaW5nIGF0IHIyNzc2NCAod2Via2l0IDQ4OTQ3KQog
QlVHQ1I5Nzk4IFdJTiA6IGh0dHAvdGVzdHMvY29va2llcy9tdWx0aXBsZS1jb29raWVzLmh0bWwg
PSBUSU1FT1VUIFBBU1MKIAotLy8gV2ViS2l0IHVwZGF0ZTogNDkyMTM6NDkyMjEKLUJVR0NSMjQw
NjMgOiBmYXN0L2RvbS9XaW5kb3cvd2luZG93LXBvc3RtZXNzYWdlLWNsb25lLmh0bWwgPSBGQUlM
Ci0KIC8vIEdvdCBzbG93IHdpdGggVjggdXBkYXRlIHRvIDEuMy4xNS4gRGVidWcgbG9nZ2luZyBw
ZXJoYXBzPwogQlVHQ1IyNDE4MiBERUJVRyBTTE9XIDogZmFzdC9mb3Jtcy9pbnB1dC1pbXBsaWNp
dC1sZW5ndGgtbGltaXQuaHRtbCA9IFBBU1MKIEJVR0NSMjQxODIgREVCVUcgU0xPVyA6IGZhc3Qv
Zm9ybXMvaW5wdXQtbWF4bGVuZ3RoLmh0bWwgPSBQQVNTCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9ndGsvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXBy
b3BlcnRpZXMtZXhwZWN0ZWQudHh0CmluZGV4IDZkNzVlMGUuLmIyZGU0YzAgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRp
ZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9mYXN0L2RvbS9X
aW5kb3cvd2luZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0CkBAIC01MTEsNiArNTExLDcgQEAg
d2luZG93LkNvdW50ZXIgW29iamVjdCBDb3VudGVyQ29uc3RydWN0b3JdCiB3aW5kb3cuQ291bnRl
ci5wcm90b3R5cGUgW29iamVjdCBDb3VudGVyUHJvdG90eXBlXQogd2luZG93LkRPTUV4Y2VwdGlv
biBbb2JqZWN0IERPTUV4Y2VwdGlvbkNvbnN0cnVjdG9yXQogd2luZG93LkRPTUV4Y2VwdGlvbi5B
Qk9SVF9FUlIgW251bWJlcl0KK3dpbmRvdy5ET01FeGNlcHRpb24uREFUQV9DTE9ORV9FUlIgW251
bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24uRE9NU1RSSU5HX1NJWkVfRVJSIFtudW1iZXJdCiB3
aW5kb3cuRE9NRXhjZXB0aW9uLkhJRVJBUkNIWV9SRVFVRVNUX0VSUiBbbnVtYmVyXQogd2luZG93
LkRPTUV4Y2VwdGlvbi5JTkRFWF9TSVpFX0VSUiBbbnVtYmVyXQpAQCAtNTE4LDYgKzUxOSw3IEBA
IHdpbmRvdy5ET01FeGNlcHRpb24uSU5VU0VfQVRUUklCVVRFX0VSUiBbbnVtYmVyXQogd2luZG93
LkRPTUV4Y2VwdGlvbi5JTlZBTElEX0FDQ0VTU19FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNl
cHRpb24uSU5WQUxJRF9DSEFSQUNURVJfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9u
LklOVkFMSURfTU9ESUZJQ0FUSU9OX0VSUiBbbnVtYmVyXQord2luZG93LkRPTUV4Y2VwdGlvbi5J
TlZBTElEX05PREVfVFlQRV9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24uSU5WQUxJ
RF9TVEFURV9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24uTkFNRVNQQUNFX0VSUiBb
bnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5ORVRXT1JLX0VSUiBbbnVtYmVyXQpAQCAtNTI4
LDEyICs1MzAsMTQgQEAgd2luZG93LkRPTUV4Y2VwdGlvbi5OT19NT0RJRklDQVRJT05fQUxMT1dF
RF9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24uUVVPVEFfRVhDRUVERURfRVJSIFtu
dW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLlNFQ1VSSVRZX0VSUiBbbnVtYmVyXQogd2luZG93
LkRPTUV4Y2VwdGlvbi5TWU5UQVhfRVJSIFtudW1iZXJdCit3aW5kb3cuRE9NRXhjZXB0aW9uLlRJ
TUVPVVRfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLlRZUEVfTUlTTUFUQ0hfRVJS
IFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLlVSTF9NSVNNQVRDSF9FUlIgW251bWJlcl0K
IHdpbmRvdy5ET01FeGNlcHRpb24uVkFMSURBVElPTl9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01F
eGNlcHRpb24uV1JPTkdfRE9DVU1FTlRfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9u
LnByb3RvdHlwZSBbb2JqZWN0IERPTUV4Y2VwdGlvblByb3RvdHlwZV0KIHdpbmRvdy5ET01FeGNl
cHRpb24ucHJvdG90eXBlLkFCT1JUX0VSUiBbbnVtYmVyXQord2luZG93LkRPTUV4Y2VwdGlvbi5w
cm90b3R5cGUuREFUQV9DTE9ORV9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24ucHJv
dG90eXBlLkRPTVNUUklOR19TSVpFX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5w
cm90b3R5cGUuSElFUkFSQ0hZX1JFUVVFU1RfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0
aW9uLnByb3RvdHlwZS5JTkRFWF9TSVpFX0VSUiBbbnVtYmVyXQpAQCAtNTQxLDYgKzU0NSw3IEBA
IHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlLklOVVNFX0FUVFJJQlVURV9FUlIgW251bWJl
cl0KIHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlLklOVkFMSURfQUNDRVNTX0VSUiBbbnVt
YmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuSU5WQUxJRF9DSEFSQUNURVJfRVJS
IFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5JTlZBTElEX01PRElGSUNB
VElPTl9FUlIgW251bWJlcl0KK3dpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlLklOVkFMSURf
Tk9ERV9UWVBFX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuSU5W
QUxJRF9TVEFURV9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlLk5B
TUVTUEFDRV9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlLk5FVFdP
UktfRVJSIFtudW1iZXJdCkBAIC01NTEsNiArNTU2LDcgQEAgd2luZG93LkRPTUV4Y2VwdGlvbi5w
cm90b3R5cGUuTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9N
RXhjZXB0aW9uLnByb3RvdHlwZS5RVU9UQV9FWENFRURFRF9FUlIgW251bWJlcl0KIHdpbmRvdy5E
T01FeGNlcHRpb24ucHJvdG90eXBlLlNFQ1VSSVRZX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4
Y2VwdGlvbi5wcm90b3R5cGUuU1lOVEFYX0VSUiBbbnVtYmVyXQord2luZG93LkRPTUV4Y2VwdGlv
bi5wcm90b3R5cGUuVElNRU9VVF9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24ucHJv
dG90eXBlLlRZUEVfTUlTTUFUQ0hfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLnBy
b3RvdHlwZS5VUkxfTUlTTUFUQ0hfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLnBy
b3RvdHlwZS5WQUxJREFUSU9OX0VSUiBbbnVtYmVyXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vcXQtd2syL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC13azIvZmFzdC9kb20vV2luZG93L3dpbmRv
dy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dAppbmRleCAyODEyNTQ5Li5jM2U2Y2U5IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC13azIvZmFzdC9kb20vV2luZG93L3dpbmRvdy1w
cm9wZXJ0aWVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC13azIv
ZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dApAQCAtNTA5LDYg
KzUwOSw3IEBAIHdpbmRvdy5Db3VudGVyIFtvYmplY3QgQ291bnRlckNvbnN0cnVjdG9yXQogd2lu
ZG93LkNvdW50ZXIucHJvdG90eXBlIFtvYmplY3QgQ291bnRlclByb3RvdHlwZV0KIHdpbmRvdy5E
T01FeGNlcHRpb24gW29iamVjdCBET01FeGNlcHRpb25Db25zdHJ1Y3Rvcl0KIHdpbmRvdy5ET01F
eGNlcHRpb24uQUJPUlRfRVJSIFtudW1iZXJdCit3aW5kb3cuRE9NRXhjZXB0aW9uLkRBVEFfQ0xP
TkVfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLkRPTVNUUklOR19TSVpFX0VSUiBb
bnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5ISUVSQVJDSFlfUkVRVUVTVF9FUlIgW251bWJl
cl0KIHdpbmRvdy5ET01FeGNlcHRpb24uSU5ERVhfU0laRV9FUlIgW251bWJlcl0KQEAgLTUxNiw2
ICs1MTcsNyBAQCB3aW5kb3cuRE9NRXhjZXB0aW9uLklOVVNFX0FUVFJJQlVURV9FUlIgW251bWJl
cl0KIHdpbmRvdy5ET01FeGNlcHRpb24uSU5WQUxJRF9BQ0NFU1NfRVJSIFtudW1iZXJdCiB3aW5k
b3cuRE9NRXhjZXB0aW9uLklOVkFMSURfQ0hBUkFDVEVSX0VSUiBbbnVtYmVyXQogd2luZG93LkRP
TUV4Y2VwdGlvbi5JTlZBTElEX01PRElGSUNBVElPTl9FUlIgW251bWJlcl0KK3dpbmRvdy5ET01F
eGNlcHRpb24uSU5WQUxJRF9OT0RFX1RZUEVfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0
aW9uLklOVkFMSURfU1RBVEVfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLk5BTUVT
UEFDRV9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24uTkVUV09SS19FUlIgW251bWJl
cl0KQEAgLTUyNiwxMiArNTI4LDE0IEBAIHdpbmRvdy5ET01FeGNlcHRpb24uTk9fTU9ESUZJQ0FU
SU9OX0FMTE9XRURfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLlFVT1RBX0VYQ0VF
REVEX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5TRUNVUklUWV9FUlIgW251bWJl
cl0KIHdpbmRvdy5ET01FeGNlcHRpb24uU1lOVEFYX0VSUiBbbnVtYmVyXQord2luZG93LkRPTUV4
Y2VwdGlvbi5USU1FT1VUX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5UWVBFX01J
U01BVENIX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5VUkxfTUlTTUFUQ0hfRVJS
IFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLlZBTElEQVRJT05fRVJSIFtudW1iZXJdCiB3
aW5kb3cuRE9NRXhjZXB0aW9uLldST05HX0RPQ1VNRU5UX0VSUiBbbnVtYmVyXQogd2luZG93LkRP
TUV4Y2VwdGlvbi5wcm90b3R5cGUgW29iamVjdCBET01FeGNlcHRpb25Qcm90b3R5cGVdCiB3aW5k
b3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5BQk9SVF9FUlIgW251bWJlcl0KK3dpbmRvdy5ET01F
eGNlcHRpb24ucHJvdG90eXBlLkRBVEFfQ0xPTkVfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhj
ZXB0aW9uLnByb3RvdHlwZS5ET01TVFJJTkdfU0laRV9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01F
eGNlcHRpb24ucHJvdG90eXBlLkhJRVJBUkNIWV9SRVFVRVNUX0VSUiBbbnVtYmVyXQogd2luZG93
LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuSU5ERVhfU0laRV9FUlIgW251bWJlcl0KQEAgLTUzOSw2
ICs1NDMsNyBAQCB3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5JTlVTRV9BVFRSSUJVVEVf
RVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5JTlZBTElEX0FDQ0VT
U19FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlLklOVkFMSURfQ0hB
UkFDVEVSX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuSU5WQUxJ
RF9NT0RJRklDQVRJT05fRVJSIFtudW1iZXJdCit3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlw
ZS5JTlZBTElEX05PREVfVFlQRV9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24ucHJv
dG90eXBlLklOVkFMSURfU1RBVEVfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLnBy
b3RvdHlwZS5OQU1FU1BBQ0VfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3Rv
dHlwZS5ORVRXT1JLX0VSUiBbbnVtYmVyXQpAQCAtNTQ5LDYgKzU1NCw3IEBAIHdpbmRvdy5ET01F
eGNlcHRpb24ucHJvdG90eXBlLk5PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUiBbbnVtYmVyXQog
d2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuUVVPVEFfRVhDRUVERURfRVJSIFtudW1iZXJd
CiB3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5TRUNVUklUWV9FUlIgW251bWJlcl0KIHdp
bmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlLlNZTlRBWF9FUlIgW251bWJlcl0KK3dpbmRvdy5E
T01FeGNlcHRpb24ucHJvdG90eXBlLlRJTUVPVVRfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhj
ZXB0aW9uLnByb3RvdHlwZS5UWVBFX01JU01BVENIX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4
Y2VwdGlvbi5wcm90b3R5cGUuVVJMX01JU01BVENIX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4
Y2VwdGlvbi5wcm90b3R5cGUuVkFMSURBVElPTl9FUlIgW251bWJlcl0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL3F0L2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9mYXN0L2RvbS9XaW5kb3cvd2lu
ZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0CmluZGV4IGExMDMyZTEuLmNjNjUyNTYgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJv
cGVydGllcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvZmFzdC9k
b20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dApAQCAtNTA5LDYgKzUwOSw3
IEBAIHdpbmRvdy5Db3VudGVyIFtvYmplY3QgQ291bnRlckNvbnN0cnVjdG9yXQogd2luZG93LkNv
dW50ZXIucHJvdG90eXBlIFtvYmplY3QgQ291bnRlclByb3RvdHlwZV0KIHdpbmRvdy5ET01FeGNl
cHRpb24gW29iamVjdCBET01FeGNlcHRpb25Db25zdHJ1Y3Rvcl0KIHdpbmRvdy5ET01FeGNlcHRp
b24uQUJPUlRfRVJSIFtudW1iZXJdCit3aW5kb3cuRE9NRXhjZXB0aW9uLkRBVEFfQ0xPTkVfRVJS
IFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLkRPTVNUUklOR19TSVpFX0VSUiBbbnVtYmVy
XQogd2luZG93LkRPTUV4Y2VwdGlvbi5ISUVSQVJDSFlfUkVRVUVTVF9FUlIgW251bWJlcl0KIHdp
bmRvdy5ET01FeGNlcHRpb24uSU5ERVhfU0laRV9FUlIgW251bWJlcl0KQEAgLTUxNiw2ICs1MTcs
NyBAQCB3aW5kb3cuRE9NRXhjZXB0aW9uLklOVVNFX0FUVFJJQlVURV9FUlIgW251bWJlcl0KIHdp
bmRvdy5ET01FeGNlcHRpb24uSU5WQUxJRF9BQ0NFU1NfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9N
RXhjZXB0aW9uLklOVkFMSURfQ0hBUkFDVEVSX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2Vw
dGlvbi5JTlZBTElEX01PRElGSUNBVElPTl9FUlIgW251bWJlcl0KK3dpbmRvdy5ET01FeGNlcHRp
b24uSU5WQUxJRF9OT0RFX1RZUEVfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLklO
VkFMSURfU1RBVEVfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLk5BTUVTUEFDRV9F
UlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24uTkVUV09SS19FUlIgW251bWJlcl0KQEAg
LTUyNiwxMiArNTI4LDE0IEBAIHdpbmRvdy5ET01FeGNlcHRpb24uTk9fTU9ESUZJQ0FUSU9OX0FM
TE9XRURfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLlFVT1RBX0VYQ0VFREVEX0VS
UiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5TRUNVUklUWV9FUlIgW251bWJlcl0KIHdp
bmRvdy5ET01FeGNlcHRpb24uU1lOVEFYX0VSUiBbbnVtYmVyXQord2luZG93LkRPTUV4Y2VwdGlv
bi5USU1FT1VUX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5UWVBFX01JU01BVENI
X0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5VUkxfTUlTTUFUQ0hfRVJSIFtudW1i
ZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLlZBTElEQVRJT05fRVJSIFtudW1iZXJdCiB3aW5kb3cu
RE9NRXhjZXB0aW9uLldST05HX0RPQ1VNRU5UX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2Vw
dGlvbi5wcm90b3R5cGUgW29iamVjdCBET01FeGNlcHRpb25Qcm90b3R5cGVdCiB3aW5kb3cuRE9N
RXhjZXB0aW9uLnByb3RvdHlwZS5BQk9SVF9FUlIgW251bWJlcl0KK3dpbmRvdy5ET01FeGNlcHRp
b24ucHJvdG90eXBlLkRBVEFfQ0xPTkVfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9u
LnByb3RvdHlwZS5ET01TVFJJTkdfU0laRV9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRp
b24ucHJvdG90eXBlLkhJRVJBUkNIWV9SRVFVRVNUX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4
Y2VwdGlvbi5wcm90b3R5cGUuSU5ERVhfU0laRV9FUlIgW251bWJlcl0KQEAgLTUzOSw2ICs1NDMs
NyBAQCB3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5JTlVTRV9BVFRSSUJVVEVfRVJSIFtu
dW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5JTlZBTElEX0FDQ0VTU19FUlIg
W251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBlLklOVkFMSURfQ0hBUkFDVEVS
X0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuSU5WQUxJRF9NT0RJ
RklDQVRJT05fRVJSIFtudW1iZXJdCit3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5JTlZB
TElEX05PREVfVFlQRV9FUlIgW251bWJlcl0KIHdpbmRvdy5ET01FeGNlcHRpb24ucHJvdG90eXBl
LklOVkFMSURfU1RBVEVfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlw
ZS5OQU1FU1BBQ0VfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5O
RVRXT1JLX0VSUiBbbnVtYmVyXQpAQCAtNTQ5LDYgKzU1NCw3IEBAIHdpbmRvdy5ET01FeGNlcHRp
b24ucHJvdG90eXBlLk5PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUiBbbnVtYmVyXQogd2luZG93
LkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuUVVPVEFfRVhDRUVERURfRVJSIFtudW1iZXJdCiB3aW5k
b3cuRE9NRXhjZXB0aW9uLnByb3RvdHlwZS5TRUNVUklUWV9FUlIgW251bWJlcl0KIHdpbmRvdy5E
T01FeGNlcHRpb24ucHJvdG90eXBlLlNZTlRBWF9FUlIgW251bWJlcl0KK3dpbmRvdy5ET01FeGNl
cHRpb24ucHJvdG90eXBlLlRJTUVPVVRfRVJSIFtudW1iZXJdCiB3aW5kb3cuRE9NRXhjZXB0aW9u
LnByb3RvdHlwZS5UWVBFX01JU01BVENIX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlv
bi5wcm90b3R5cGUuVVJMX01JU01BVENIX0VSUiBbbnVtYmVyXQogd2luZG93LkRPTUV4Y2VwdGlv
bi5wcm90b3R5cGUuVkFMSURBVElPTl9FUlIgW251bWJlcl0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0b3JlLWJhc2ljcy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9vYmplY3RzdG9yZS1iYXNpY3MtZXhwZWN0ZWQu
dHh0CmluZGV4IDIzOTQ3NDAuLjdhMzRhMWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL29iamVjdHN0b3JlLWJhc2ljcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0c3RvcmUtYmFzaWNzLWV4cGVjdGVkLnR4dApA
QCAtNTYsNyArNTYsNyBAQCBzdG9yZS5hZGQoe3g6ICdmb28nfSwgdGVzdERhdGUpCiBUcnkgdG8g
aW5zZXJ0IGEgdmFsdWUgbm90IGhhbmRsZWQgYnkgc3RydWN0dXJlZCBjbG9uZToKIHN0b3JlLmFk
ZCh7eDogJ2JhcicsIHk6IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJyl9LCAnYmFy
JykKIFBBU1MgRXhjZXB0aW9uIHRocm93bgotUEFTUyBjb2RlIGlzIERPTUV4Y2VwdGlvbi5OT1Rf
U1VQUE9SVEVEX0VSUgorUEFTUyBjb2RlIGlzIERPTUV4Y2VwdGlvbi5EQVRBX0NMT05FX0VSUgog
VHJ5IHRvIGluc2VydCBkYXRhIHdoZXJlIGtleSBwYXRoIHlpZWxkcyBhIERhdGUga2V5Ogogc3Rv
cmUuYWRkKHt4OiB0ZXN0RGF0ZUIsIHk6ICd2YWx1ZSd9LCAna2V5JykKIGFkZFN1Y2Nlc3MoKToK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0b3JlLWJh
c2ljcy5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0c3RvcmUtYmFz
aWNzLmh0bWwKaW5kZXggYjJlNzNlZS4uYjc2OTU4NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0c3RvcmUtYmFzaWNzLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0c3RvcmUtYmFzaWNzLmh0bWwKQEAgLTE1NCw3ICsx
NTQsNyBAQCBmdW5jdGlvbiBhZGREYXRlU3VjY2VzcygpCiAgICAgfSBjYXRjaCAoZXJyKSB7CiAg
ICAgICAgIHRlc3RQYXNzZWQoIkV4Y2VwdGlvbiB0aHJvd24iKTsKICAgICAgICAgY29kZSA9IGVy
ci5jb2RlOwotICAgICAgICBzaG91bGRCZSgiY29kZSIsICJET01FeGNlcHRpb24uTk9UX1NVUFBP
UlRFRF9FUlIiKTsKKyAgICAgICAgc2hvdWxkQmUoImNvZGUiLCAiRE9NRXhjZXB0aW9uLkRBVEFf
Q0xPTkVfRVJSIik7CiAgICAgfQogCiAgICAgZGVidWcoIlRyeSB0byBpbnNlcnQgZGF0YSB3aGVy
ZSBrZXkgcGF0aCB5aWVsZHMgYSBEYXRlIGtleToiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBmZWI0ZjEyLi41
ZjYxZTM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODcgQEAKKzIwMTEtMDctMTQgIEx1a2UgWmFy
a28gIDxsdWtlemFya29AZ21haWwuY29tPgorCisgICAgICAgQnJpbmcgVjgncyBTZXJpYWxpemVk
U2NyaXB0VmFsdWUgaW1wbGVtZW50YXRpb24gdXAgdG8gZGF0ZS4KKworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM0ODEKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIFRoZSBIVE1MNSBTdHJ1Y3R1
cmVkIENsb25lIGFsZ29yaXRobSAoaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBz
L2N1cnJlbnQtd29yay9tdWx0aXBhZ2UvdXJscy5odG1sI3NhZmUtcGFzc2luZy1vZi1zdHJ1Y3R1
cmVkLWRhdGEpIGhhcyBiZWVuIHVwZGF0ZWQgc2luY2UgdGhlIFY4IHZlcnNpb24gb2YgU2VyaWFs
aXplZFNjcmlwdFZhbHVlIHdhcyBmaXJzdCBpbXBsZW1lbnRlZC4gVGhpcyBwYXRjaCBhaW1zIHRv
IGJyaW5nIHRoaXMgaW1wbGVtZW50YXRpb24gdXAgdG8gZGF0ZS4gSXQ6CisgICAgICAgIAorICAg
ICAgICAtIEludHJvZHVjZXMgdGhlIG5ldyBIVE1MNSBET00gZXJyb3IgY29kZXMgZm9yIFRJTUVP
VVRfRVJSLCBJTlZBTElEX05PREVfVFlQRV9FUlIsIERBVEFfQ0xPTkVfRVJSCisgICAgICAgIC0g
SGFuZGxlcyBjeWNsaWMgc3RydWN0dXJlcyBhbmQgZXF1YWxpdHkgb2YgcmVmZXJlbmNlIHByZXNl
cnZhdGlvbiBmb3IgY2xvbmVkIHZhbHVlcworICAgICAgICAtIEFsbG93cyBEYXRhVmlld3MgdG8g
YmUgY29uc3RydWN0ZWQgb24gdGhlIG5hdGl2ZSBzaWRlIHVzaW5nIHRoZSBleGlzdGluZyB3cmFw
cGVyIHRlY2huaXF1ZXMKKyAgICAgICAgLSBBbWVuZHMgdGVzdHMgYW5kIGludHJvZHVjZXMgbmV3
IG9uZXMgdG8gY2hlY2sgZm9yIGNvcnJlY3RuZXNzICh0aGUgYnVsayBvZiB0aGUgcGF0Y2gpCisg
ICAgICAgIC0gVG9sZXJhdGVzIHRoZSBvbGQgdmVyc2lvbiBvZiB0aGUgc2VyaWFsaXplZCBvYmpl
Y3QgZm9ybWF0CisgICAgICAgIAorICAgICAgICBUaGUgcGF0Y2ggcGVybWl0cyB0aGUgY2xvbmlu
ZyBvZiBKYXZhU2NyaXB0IHR5cGVkIGFycmF5cy4gVGhpcyBmdW5jdGlvbmFsaXR5IGlzIGluIGFj
dGl2ZSB1c2UgYWxyZWFkeSBhbmQgd2FzIHN1cHBvcnRlZCAoc29tZXdoYXQgaW5lZmZpY2llbnRs
eSkgYnkgdGhlIGV4aXN0aW5nIGNvZGUgdGhyb3VnaCBhbiBhcnRpZmFjdCBvZiBpbXBsZW1lbnRh
dGlvbi4KKworICAgICAgICBUZXN0czogZmFzdC9kb20vV2luZG93L3dpbmRvdy1wb3N0bWVzc2Fn
ZS1jbG9uZS1kZWVwLWFycmF5Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9tL1dpbmRvdy93
aW5kb3ctcG9zdG1lc3NhZ2UtY2xvbmUtcmVhbGx5LWRlZXAtYXJyYXkuaHRtbAorICAgICAgICAg
ICAgICAgZmFzdC9kb20vV2luZG93L3dpbmRvdy1wb3N0bWVzc2FnZS1jbG9uZS5odG1sCisgICAg
ICAgICAgICAgICBmYXN0L2NhbnZhcy93ZWJnbC9hcnJheS1tZXNzYWdlLXBhc3NpbmcuaHRtbAor
CisgICAgICAgICogYmluZGluZ3MvdjgvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlY4T2JqZWN0TWFwOjpXcml0ZXI6OndyaXRlVmVyc2lvbik6CisgICAgICAg
IChXZWJDb3JlOjpWOE9iamVjdE1hcDo6V3JpdGVyOjp3cml0ZUFycmF5QnVmZmVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OlY4T2JqZWN0TWFwOjpXcml0ZXI6OndyaXRlQXJyYXlCdWZmZXJWaWV3KToK
KyAgICAgICAgKFdlYkNvcmU6OlY4T2JqZWN0TWFwOjpXcml0ZXI6OndyaXRlT2JqZWN0UmVmZXJl
bmNlKToKKyAgICAgICAgKFdlYkNvcmU6OlY4T2JqZWN0TWFwOjpXcml0ZXI6OndyaXRlUmVmZXJl
bmNlQ291bnQpOgorICAgICAgICAoV2ViQ29yZTo6VjhPYmplY3RNYXA6OldyaXRlcjo6d3JpdGVH
ZW5lcmF0ZUZyZXNoT2JqZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OlY4T2JqZWN0TWFwOjpXcml0
ZXI6OndyaXRlR2VuZXJhdGVGcmVzaEFycmF5KToKKyAgICAgICAgKFdlYkNvcmU6OlY4T2JqZWN0
TWFwOjpXcml0ZXI6OmRvV3JpdGVBcnJheUJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpWOE9i
amVjdE1hcDo6U2VyaWFsaXplcjo6U2VyaWFsaXplcik6CisgICAgICAgIChXZWJDb3JlOjpWOE9i
amVjdE1hcDo6U2VyaWFsaXplcjo6c2VyaWFsaXplKToKKyAgICAgICAgKFdlYkNvcmU6OlY4T2Jq
ZWN0TWFwOjpTZXJpYWxpemVyOjpTdGF0ZUJhc2U6OmV4ZWNEZXB0aCk6CisgICAgICAgIChXZWJD
b3JlOjpWOE9iamVjdE1hcDo6U2VyaWFsaXplcjo6QWJzdHJhY3RPYmplY3RTdGF0ZTo6QWJzdHJh
Y3RPYmplY3RTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpWOE9iamVjdE1hcDo6U2VyaWFsaXpl
cjo6QWJzdHJhY3RPYmplY3RTdGF0ZTo6YWR2YW5jZSk6CisgICAgICAgIChXZWJDb3JlOjpWOE9i
amVjdE1hcDo6U2VyaWFsaXplcjo6QWJzdHJhY3RPYmplY3RTdGF0ZTo6ZXhlY0RlcHRoKToKKyAg
ICAgICAgKFdlYkNvcmU6OlY4T2JqZWN0TWFwOjpTZXJpYWxpemVyOjpleGVjRGVwdGgpOgorICAg
ICAgICAoV2ViQ29yZTo6VjhPYmplY3RNYXA6OlNlcmlhbGl6ZXI6OnB1c2gpOgorICAgICAgICAo
V2ViQ29yZTo6VjhPYmplY3RNYXA6OlNlcmlhbGl6ZXI6OnBvcCk6CisgICAgICAgIChXZWJDb3Jl
OjpWOE9iamVjdE1hcDo6U2VyaWFsaXplcjo6aGFuZGxlRXJyb3IpOgorICAgICAgICAoV2ViQ29y
ZTo6VjhPYmplY3RNYXA6OlNlcmlhbGl6ZXI6OndyaXRlQW5kR3JleUFycmF5QnVmZmVyVmlldyk6
CisgICAgICAgIChXZWJDb3JlOjpWOE9iamVjdE1hcDo6U2VyaWFsaXplcjo6d3JpdGVBcnJheUJ1
ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpWOE9iamVjdE1hcDo6U2VyaWFsaXplcjo6Z3JleU9i
amVjdCk6CisgICAgICAgIChXZWJDb3JlOjpWOE9iamVjdE1hcDo6U2VyaWFsaXplcjo6ZG9TZXJp
YWxpemUpOgorICAgICAgICAoV2ViQ29yZTo6VjhPYmplY3RNYXA6OlJlYWRlcjo6UmVhZGVyKToK
KyAgICAgICAgKFdlYkNvcmU6OlY4T2JqZWN0TWFwOjpSZWFkZXI6OnJlYWQpOgorICAgICAgICAo
V2ViQ29yZTo6VjhPYmplY3RNYXA6OlJlYWRlcjo6cmVhZFZlcnNpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6VjhPYmplY3RNYXA6OlJlYWRlcjo6c2V0VmVyc2lvbik6CisgICAgICAgIChXZWJDb3Jl
OjpWOE9iamVjdE1hcDo6UmVhZGVyOjp1bmRvUmVhZFRhZyk6CisgICAgICAgIChXZWJDb3JlOjpW
OE9iamVjdE1hcDo6UmVhZGVyOjpyZWFkQXJyYXlCdWZmZXJWaWV3U3ViVGFnKToKKyAgICAgICAg
KFdlYkNvcmU6OlY4T2JqZWN0TWFwOjpSZWFkZXI6OmRvUmVhZEFycmF5QnVmZmVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OlY4T2JqZWN0TWFwOjpSZWFkZXI6OnJlYWRBcnJheUJ1ZmZlcik6CisgICAg
ICAgIChXZWJDb3JlOjpWOE9iamVjdE1hcDo6UmVhZGVyOjpyZWFkQXJyYXlCdWZmZXJWaWV3KToK
KyAgICAgICAgKFdlYkNvcmU6OlY4T2JqZWN0TWFwOjpEZXNlcmlhbGl6ZXI6OkRlc2VyaWFsaXpl
cik6CisgICAgICAgIChXZWJDb3JlOjpWOE9iamVjdE1hcDo6RGVzZXJpYWxpemVyOjpkZXNlcmlh
bGl6ZSk6CisgICAgICAgIChXZWJDb3JlOjpWOE9iamVjdE1hcDo6RGVzZXJpYWxpemVyOjpuZXdB
cnJheSk6CisgICAgICAgIChXZWJDb3JlOjpWOE9iamVjdE1hcDo6RGVzZXJpYWxpemVyOjpjb25z
dW1lVG9wT2ZTdGFjayk6CisgICAgICAgIChXZWJDb3JlOjpWOE9iamVjdE1hcDo6RGVzZXJpYWxp
emVyOjpjb21wbGV0ZUFycmF5KToKKyAgICAgICAgKFdlYkNvcmU6OlY4T2JqZWN0TWFwOjpEZXNl
cmlhbGl6ZXI6Om5ld09iamVjdCk6CisgICAgICAgIChXZWJDb3JlOjpWOE9iamVjdE1hcDo6RGVz
ZXJpYWxpemVyOjpjb21wbGV0ZU9iamVjdCk6CisgICAgICAgIChXZWJDb3JlOjpWOE9iamVjdE1h
cDo6RGVzZXJpYWxpemVyOjpjb21wbGV0ZVNwYXJzZUFycmF5KToKKyAgICAgICAgKFdlYkNvcmU6
OlY4T2JqZWN0TWFwOjpEZXNlcmlhbGl6ZXI6OnB1c2hPYmplY3RSZWZlcmVuY2UpOgorICAgICAg
ICAoV2ViQ29yZTo6VjhPYmplY3RNYXA6OkRlc2VyaWFsaXplcjo6dHJ5R2V0T2JqZWN0RnJvbU9i
amVjdFJlZmVyZW5jZSk6CisgICAgICAgIChXZWJDb3JlOjpWOE9iamVjdE1hcDo6RGVzZXJpYWxp
emVyOjpvYmplY3RSZWZlcmVuY2VDb3VudCk6CisgICAgICAgIChXZWJDb3JlOjpWOE9iamVjdE1h
cDo6RGVzZXJpYWxpemVyOjpvcGVuQ29tcG9zaXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlY4T2Jq
ZWN0TWFwOjpEZXNlcmlhbGl6ZXI6OmNsb3NlQ29tcG9zaXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlKToKKyAgICAgICAg
KiBiaW5kaW5ncy92OC9WOEJpbmRpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6aXNIb3N0T2Jq
ZWN0KToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOEJpbmRpbmcuaDoKKyAgICAgICAgKiBiaW5k
aW5ncy92OC9jdXN0b20vVjhEYXRhVmlld0N1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpW
OERhdGFWaWV3Ojpjb25zdHJ1Y3RvckNhbGxiYWNrKToKKyAgICAgICAgKiBkb20vRE9NQ29yZUV4
Y2VwdGlvbi5pZGw6CisgICAgICAgICogZG9tL0V4Y2VwdGlvbkNvZGUuY3BwOgorICAgICAgICAq
IGRvbS9FeGNlcHRpb25Db2RlLmg6CisgICAgICAgICogaHRtbC9jYW52YXMvQXJyYXlCdWZmZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6QXJyYXlCdWZmZXI6OmNyZWF0ZSk6CisgICAgICAgICog
aHRtbC9jYW52YXMvQXJyYXlCdWZmZXIuaDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9EYXRhVmll
dy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRhVmlldzo6Y3JlYXRlKToKKyAgICAgICAgKiBo
dG1sL2NhbnZhcy9EYXRhVmlldy5oOgorCiAyMDExLTA3LTE0ICBZb3VuZyBIYW4gTGVlICA8am95
YnJvQGNvbXBhbnkxMDAubmV0PgogCiAgICAgICAgIFJldmlld2VkIGJ5IERpcmsgU2NodWx6ZS4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NlcmlhbGl6ZWRTY3JpcHRW
YWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TZXJpYWxpemVkU2NyaXB0VmFs
dWUuY3BwCmluZGV4IGNiNDRmMDIuLmEwYmI5NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvdjgvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcApAQCAtMzEsMjAgKzMxLDQy
IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiU2VyaWFsaXplZFNjcmlwdFZhbHVl
LmgiCiAKKyNpbmNsdWRlICJBcnJheUJ1ZmZlci5oIgorI2luY2x1ZGUgIkFycmF5QnVmZmVyVmll
dy5oIgogI2luY2x1ZGUgIkJsb2IuaCIKICNpbmNsdWRlICJCeXRlQXJyYXkuaCIKICNpbmNsdWRl
ICJDYW52YXNQaXhlbEFycmF5LmgiCisjaW5jbHVkZSAiRGF0YVZpZXcuaCIKICNpbmNsdWRlICJF
eGNlcHRpb25Db2RlLmgiCiAjaW5jbHVkZSAiRmlsZS5oIgogI2luY2x1ZGUgIkZpbGVMaXN0Lmgi
CisjaW5jbHVkZSAiRmxvYXQzMkFycmF5LmgiCisjaW5jbHVkZSAiRmxvYXQ2NEFycmF5LmgiCiAj
aW5jbHVkZSAiSW1hZ2VEYXRhLmgiCisjaW5jbHVkZSAiSW50MTZBcnJheS5oIgorI2luY2x1ZGUg
IkludDMyQXJyYXkuaCIKKyNpbmNsdWRlICJJbnQ4QXJyYXkuaCIKICNpbmNsdWRlICJTaGFyZWRC
dWZmZXIuaCIKKyNpbmNsdWRlICJVaW50MTZBcnJheS5oIgorI2luY2x1ZGUgIlVpbnQzMkFycmF5
LmgiCisjaW5jbHVkZSAiVWludDhBcnJheS5oIgorI2luY2x1ZGUgIlY4QXJyYXlCdWZmZXIuaCIK
KyNpbmNsdWRlICJWOEFycmF5QnVmZmVyVmlldy5oIgogI2luY2x1ZGUgIlY4QmluZGluZy5oIgog
I2luY2x1ZGUgIlY4QmxvYi5oIgorI2luY2x1ZGUgIlY4RGF0YVZpZXcuaCIKICNpbmNsdWRlICJW
OEZpbGUuaCIKICNpbmNsdWRlICJWOEZpbGVMaXN0LmgiCisjaW5jbHVkZSAiVjhGbG9hdDMyQXJy
YXkuaCIKKyNpbmNsdWRlICJWOEZsb2F0NjRBcnJheS5oIgogI2luY2x1ZGUgIlY4SW1hZ2VEYXRh
LmgiCisjaW5jbHVkZSAiVjhJbnQxNkFycmF5LmgiCisjaW5jbHVkZSAiVjhJbnQzMkFycmF5Lmgi
CisjaW5jbHVkZSAiVjhJbnQ4QXJyYXkuaCIKICNpbmNsdWRlICJWOFByb3h5LmgiCisjaW5jbHVk
ZSAiVjhVaW50MTZBcnJheS5oIgorI2luY2x1ZGUgIlY4VWludDMyQXJyYXkuaCIKKyNpbmNsdWRl
ICJWOFVpbnQ4QXJyYXkuaCIKICNpbmNsdWRlICJWOFV0aWxpdGllcy5oIgogCiAjaW5jbHVkZSA8
d3RmL0Fzc2VydGlvbnMuaD4KQEAgLTUyLDM1ICs3NCwxNDQgQEAKICNpbmNsdWRlIDx3dGYvVmVj
dG9yLmg+CiAKIC8vIEZJWE1FOiBjb25zaWRlciBjcmFzaGluZyBpbiBkZWJ1ZyBtb2RlIG9uIGRl
c2VyaWFsaXphdGlvbiBlcnJvcnMKKy8vIE5PVEU6IGJlIHN1cmUgdG8gY2hhbmdlIHdpcmVGb3Jt
YXRWZXJzaW9uIGFzIG5lY2Vzc2FyeSEKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBuYW1lc3Bh
Y2UgewogCisvLyBUaGlzIGNvZGUgaW1wbGVtZW50cyB0aGUgSFRNTDUgU3RydWN0dXJlZCBDbG9u
ZSBhbGdvcml0aG06CisvLyBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3Vy
cmVudC13b3JrL211bHRpcGFnZS91cmxzLmh0bWwjc2FmZS1wYXNzaW5nLW9mLXN0cnVjdHVyZWQt
ZGF0YQorCisvLyBWOE9iamVjdE1hcCBpcyBhIG1hcCBmcm9tIFY4IG9iamVjdHMgdG8gYXJiaXRy
YXJ5IHZhbHVlcyBvZiB0eXBlIFQuCisvLyBWOCBvYmplY3RzIChvciBoYW5kbGVzIHRvIFY4IG9i
amVjdHMpIGNhbm5vdCBiZSB1c2VkIGFzIGtleXMgaW4gb3JkaW5hcnkgd3RmOjpIYXNoTWFwczsK
Ky8vIHRoaXMgY2xhc3Mgc2hvdWxkIGJlIHVzZWQgaW5zdGVhZC4gR0NPYmplY3QgbXVzdCBiZSBh
IHN1YnR5cGUgb2Ygdjg6Ok9iamVjdC4KKy8vIFN1Z2dlc3RlZCB1c2FnZToKKy8vICAgICBWOE9i
amVjdE1hcDx2ODo6T2JqZWN0LCBpbnQ+IG1hcDsKKy8vICAgICB2ODo6SGFuZGxlPHY4OjpPYmpl
Y3Q+IG9iaiA9IC4uLjsKKy8vICAgICBtYXAuc2V0KG9iaiwgNDIpOwordGVtcGxhdGU8dHlwZW5h
bWUgR0NPYmplY3QsIHR5cGVuYW1lIFQ+CitjbGFzcyBWOE9iamVjdE1hcCB7CitwdWJsaWM6Cisg
ICAgYm9vbCBjb250YWlucyhjb25zdCB2ODo6SGFuZGxlPEdDT2JqZWN0PiYgaGFuZGxlKQorICAg
IHsKKyAgICAgICAgcmV0dXJuIG1fbWFwLmNvbnRhaW5zKCpoYW5kbGUpOworICAgIH0KKworICAg
IGJvb2wgdHJ5R2V0KGNvbnN0IHY4OjpIYW5kbGU8R0NPYmplY3Q+JiBoYW5kbGUsIFQqIHZhbHVl
T3V0KQorICAgIHsKKyAgICAgICAgdHlwZW5hbWUgSGFuZGxlVG9UOjppdGVyYXRvciByZXN1bHQg
PSBtX21hcC5maW5kKCpoYW5kbGUpOworICAgICAgICBpZiAocmVzdWx0ICE9IG1fbWFwLmVuZCgp
KSB7CisgICAgICAgICAgICAqdmFsdWVPdXQgPSByZXN1bHQtPnNlY29uZDsKKyAgICAgICAgICAg
IHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisK
KyAgICB2b2lkIHNldChjb25zdCB2ODo6SGFuZGxlPEdDT2JqZWN0PiYgaGFuZGxlLCBjb25zdCBU
JiB2YWx1ZSkKKyAgICB7CisgICAgICAgIG1fbWFwLnNldCgqaGFuZGxlLCB2YWx1ZSk7CisgICAg
fQorCisgICAgdWludDMyX3Qgc2l6ZSgpCisgICAgeworICAgICAgICByZXR1cm4gbV9tYXAuc2l6
ZSgpOworICAgIH0KKworcHJpdmF0ZToKKyAgICAvLyBUaGlzIGltcGxlbWVudGF0aW9uIHVzZXMg
R2V0SWRlbnRpdHlIYXNoKCksIHdoaWNoIHNldHMgYSBoaWRkZW4gcHJvcGVydHkgb24gdGhlIG9i
amVjdCBjb250YWluaW5nCisgICAgLy8gYSByYW5kb20gaW50ZWdlciAob3IgcmV0dXJucyB0aGUg
b25lIHRoYXQgaGFkIGJlZW4gcHJldmlvdXNseSBzZXQpLiBUaGlzIGVuc3VyZXMgdGhhdCB0aGUg
dGFibGUKKyAgICAvLyBuZXZlciBuZWVkcyB0byBiZSByZWJ1aWx0IGFjcm9zcyBnYXJiYWdlIGNv
bGxlY3Rpb25zIGF0IHRoZSBleHBlbnNlIG9mIGRvaW5nIGFkZGl0aW9uYWwgYWxsb2NhdGlvbgor
ICAgIC8vIGFuZCBtYWtpbmcgbW9yZSByb3VuZCB0cmlwcyBpbnRvIFY4LiBOb3RlIHRoYXQgc2lu
Y2UgR2V0SWRlbnRpdHlIYXNoKCkgaXMgZGVmaW5lZCBvbmx5IG9uCisgICAgLy8gdjg6Ok9iamVj
dHMsIHRoaXMgVjhPYmplY3RNYXAgY2Fubm90IGJlIHVzZWQgdG8gbWFwIHY4OjpTdHJpbmdzIHRv
IFQgKGJlY2F1c2UgdGhlIHB1YmxpYyBWOCBBUEkKKyAgICAvLyBjb25zaWRlcnMgYSB2ODo6U3Ry
aW5nIHRvIGJlIGEgdjg6OlByaW1pdGl2ZSkuCisKKyAgICAvLyBJZiBWOCBleHBvc2VzIGEgd2F5
IHRvIGdldCBhdCB0aGUgYWRkcmVzcyBvZiB0aGUgb2JqZWN0IGhlbGQgYnkgYSBoYW5kbGUsIHRo
ZW4gd2UgY2FuIHByb2R1Y2UKKyAgICAvLyBhbiBhbHRlcm5hdGUgaW1wbGVtZW50YXRpb24gdGhh
dCBkb2VzIG5vdCBuZWVkIHRvIGRvIGFueSBWOC1zaWRlIGFsbG9jYXRpb247IGhvd2V2ZXIsIGl0
IHdpbGwKKyAgICAvLyBuZWVkIHRvIHJlaGFzaCBhZnRlciBldmVyeSBnYXJiYWdlIGNvbGxlY3Rp
b24gYmVjYXVzZSBhIGtleSBvYmplY3QgbWF5IGhhdmUgYmVlbiBtb3ZlZC4KKyAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBHPgorICAgIHN0cnVjdCBWOEhhbmRsZVB0ckhhc2ggeworICAgICAgICBzdGF0
aWMgdW5zaWduZWQgaGFzaChjb25zdCBHKiBrZXkpCisgICAgICAgIHsKKyAgICAgICAgICAgIHY4
OjpIYW5kbGU8Rz4gb2JqSGFuZGxlKGNvbnN0X2Nhc3Q8Ryo+KGtleSkpOworICAgICAgICAgICAg
cmV0dXJuIHN0YXRpY19jYXN0PHVuc2lnbmVkPihvYmpIYW5kbGUtPkdldElkZW50aXR5SGFzaCgp
KTsKKyAgICAgICAgfQorICAgICAgICBzdGF0aWMgYm9vbCBlcXVhbChjb25zdCBHKiBhLCBjb25z
dCBHKiBiKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gdjg6OkhhbmRsZTxHPihjb25z
dF9jYXN0PEcqPihhKSkgPT0gdjg6OkhhbmRsZTxHPihjb25zdF9jYXN0PEcqPihiKSk7CisgICAg
ICAgIH0KKyAgICAgICAgLy8gRm9yIEhhc2hBcmcuCisgICAgICAgIHN0YXRpYyBjb25zdCBib29s
IHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gZmFsc2U7CisgICAgfTsKKworICAgIHR5
cGVkZWYgV1RGOjpIYXNoTWFwPEdDT2JqZWN0KiwgVCwgVjhIYW5kbGVQdHJIYXNoPEdDT2JqZWN0
PiA+IEhhbmRsZVRvVDsKKyAgICBIYW5kbGVUb1QgbV9tYXA7Cit9OworCiB0eXBlZGVmIFVDaGFy
IEJ1ZmZlclZhbHVlVHlwZTsKIAotLy8gU2VyaWFsaXphdGlvbiBmb3JtYXQgaXMgYSBzZXF1ZW5j
ZSBvZiAodGFnLCBvcHRpb25hbCBkYXRhKQotLy8gcGFpcnMuIFRhZyBhbHdheXMgdGFrZXMgZXhh
Y3RseSBvbmUgYnl0ZS4KKy8vIFNlcmlhbGl6YXRpb24gZm9ybWF0IGlzIGEgc2VxdWVuY2Ugb2Yg
dGFncyBmb2xsb3dlZCBieSB6ZXJvIG9yIG1vcmUgZGF0YSBhcmd1bWVudHMuCisvLyBUYWdzIGFs
d2F5cyB0YWtlIGV4YWN0bHkgb25lIGJ5dGUuIEEgc2VyaWFsaXplZCBzdHJlYW0gZmlyc3QgYmVn
aW5zIHdpdGgKKy8vIGEgY29tcGxldGUgVmVyc2lvblRhZy4gSWYgdGhlIHN0cmVhbSBkb2VzIG5v
dCBiZWdpbiB3aXRoIGEgVmVyc2lvblRhZywgd2UgYXNzdW1lIHRoYXQKKy8vIHRoZSBzdHJlYW0g
aXMgaW4gZm9ybWF0IDAuCisKKy8vIFRoaXMgZm9ybWF0IGlzIHByaXZhdGUgdG8gdGhlIGltcGxl
bWVudGF0aW9uIG9mIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS4gRG8gbm90IHJlbHkgb24gaXQKKy8v
IGV4dGVybmFsbHkuIEl0IGlzIHNhZmUgdG8gcGVyc2lzdCBhIFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZSBhcyBhIGJpbmFyeSBibG9iLCBidXQgdGhpcworLy8gY29kZSBzaG91bGQgYWx3YXlzIGJlIHVz
ZWQgdG8gaW50ZXJwcmV0IGl0LgorCisvLyBXZWJDb3JlU3RyaW5ncyBhcmUgcmVhZCBhcyAobGVu
Z3RoOnVpbnQzMl90LCBzdHJpbmc6VVRGOFtsZW5ndGhdKS4KKy8vIFJhd1N0cmluZ3MgYXJlIHJl
YWQgYXMgKGxlbmd0aDp1aW50MzJfdCwgc3RyaW5nOlVURjhbbGVuZ3RoXSkuCisvLyBSYXdGaWxl
cyBhcmUgcmVhZCBhcyAocGF0aDpXZWJDb3JlU3RyaW5nLCB1cmw6V2ViQ29yZVN0cm5nLCB0eXBl
OldlYkNvcmVTdHJpbmcpLgorLy8gVGhlcmUgaXMgYSByZWZlcmVuY2UgdGFibGUgdGhhdCBtYXBz
IG9iamVjdCByZWZlcmVuY2VzICh1aW50MzJfdCkgdG8gdjg6OlZhbHVlcy4KKy8vIFRva2VucyBt
YXJrZWQgd2l0aCAocmVmKSBhcmUgaW5zZXJ0ZWQgaW50byB0aGUgcmVmZXJlbmNlIHRhYmxlIGFu
ZCBnaXZlbiB0aGUgbmV4dCBvYmplY3QgcmVmZXJlbmNlIElEIGFmdGVyIGRlY29kaW5nLgorLy8g
QWxsIHRhZ3MgZXhjZXB0IEludmFsaWRUYWcsIFBhZGRpbmdUYWcsIFJlZmVyZW5jZUNvdW50VGFn
LCBWZXJzaW9uVGFnLCBHZW5lcmF0ZUZyZXNoT2JqZWN0VGFnCisvLyAgICAgYW5kIEdlbmVyYXRl
RnJlc2hBcnJheVRhZyBwdXNoIHRoZWlyIHJlc3VsdHMgdG8gdGhlIGRlc2VyaWFsaXphdGlvbiBz
dGFjay4KKy8vIFRoZXJlIGlzIGFsc28gYW4gJ29wZW4nIHN0YWNrIHRoYXQgaXMgdXNlZCB0byBy
ZXNvbHZlIGNpcmN1bGFyIHJlZmVyZW5jZXMuIE9iamVjdHMgb3IgYXJyYXlzIG1heQorLy8gICAg
IGNvbnRhaW4gc2VsZi1yZWZlcmVuY2VzLiBCZWZvcmUgd2UgYmVnaW4gdG8gZGVzZXJpYWxpemUg
dGhlIGNvbnRlbnRzIG9mIHRoZXNlIHZhbHVlcywgdGhleQorLy8gICAgIGFyZSBmaXJzdCBnaXZl
biBvYmplY3QgcmVmZXJlbmNlIElEcyAoYnkgR2VuZXJhdGVGcmVzaE9iamVjdFRhZy9HZW5lcmF0
ZUZyZXNoQXJyYXlUYWcpOworLy8gICAgIHRoZXNlIHJlZmVyZW5jZSBJRHMgYXJlIHRoZW4gdXNl
ZCB3aXRoIE9iamVjdFJlZmVyZW5jZVRhZyB0byB0aWUgdGhlIHJlY3Vyc2l2ZSBrbm90LgogZW51
bSBTZXJpYWxpemF0aW9uVGFnIHsKLSAgICBJbnZhbGlkVGFnID0gJyEnLAotICAgIFBhZGRpbmdU
YWcgPSAnXDAnLAotICAgIFVuZGVmaW5lZFRhZyA9ICdfJywKLSAgICBOdWxsVGFnID0gJzAnLAot
ICAgIFRydWVUYWcgPSAnVCcsCi0gICAgRmFsc2VUYWcgPSAnRicsCi0gICAgU3RyaW5nVGFnID0g
J1MnLAotICAgIEludDMyVGFnID0gJ0knLAotICAgIFVpbnQzMlRhZyA9ICdVJywKLSAgICBEYXRl
VGFnID0gJ0QnLAotICAgIE51bWJlclRhZyA9ICdOJywKLSAgICBCbG9iVGFnID0gJ2InLAotICAg
IEZpbGVUYWcgPSAnZicsCi0gICAgRmlsZUxpc3RUYWcgPSAnbCcsCi0gICAgSW1hZ2VEYXRhVGFn
ID0gJyMnLAotICAgIEFycmF5VGFnID0gJ1snLAotICAgIE9iamVjdFRhZyA9ICd7JywKLSAgICBT
cGFyc2VBcnJheVRhZyA9ICdAJywKLSAgICBSZWdFeHBUYWcgPSAnUicsCisgICAgSW52YWxpZFRh
ZyA9ICchJywgLy8gQ2F1c2VzIGRlc2VyaWFsaXphdGlvbiB0byBmYWlsLgorICAgIFBhZGRpbmdU
YWcgPSAnXDAnLCAvLyBJcyBpZ25vcmVkIChidXQgY29uc3VtZWQpLgorICAgIFVuZGVmaW5lZFRh
ZyA9ICdfJywgLy8gLT4gPHVuZGVmaW5lZD4KKyAgICBOdWxsVGFnID0gJzAnLCAvLyAtPiA8bnVs
bD4KKyAgICBUcnVlVGFnID0gJ1QnLCAvLyAtPiA8dHJ1ZT4KKyAgICBGYWxzZVRhZyA9ICdGJywg
Ly8gLT4gPGZhbHNlPgorICAgIFN0cmluZ1RhZyA9ICdTJywgLy8gc3RyaW5nOlJhd1N0cmluZyAt
PiBzdHJpbmcKKyAgICBJbnQzMlRhZyA9ICdJJywgLy8gdmFsdWU6WmlnWmFnLWVuY29kZWQgaW50
MzIgLT4gSW50ZWdlcgorICAgIFVpbnQzMlRhZyA9ICdVJywgLy8gdmFsdWU6dWludDMyX3QgLT4g
SW50ZWdlcgorICAgIERhdGVUYWcgPSAnRCcsIC8vIHZhbHVlOmRvdWJsZSAtPiBEYXRlIChyZWYp
CisgICAgTnVtYmVyVGFnID0gJ04nLCAvLyB2YWx1ZTpkb3VibGUgLT4gTnVtYmVyCisgICAgQmxv
YlRhZyA9ICdiJywgLy8gdXJsOldlYkNvcmVTdHJpbmcsIHR5cGU6V2ViQ29yZVN0cmluZywgc2l6
ZTp1aW50NjRfdCAtPiBCbG9iIChyZWYpCisgICAgRmlsZVRhZyA9ICdmJywgLy8gZmlsZTpSYXdG
aWxlIC0+IEZpbGUgKHJlZikKKyAgICBGaWxlTGlzdFRhZyA9ICdsJywgLy8gbGVuZ3RoOnVpbnQz
Ml90LCBmaWxlczpSYXdGaWxlW2xlbmd0aF0gLT4gRmlsZUxpc3QgKHJlZikKKyAgICBJbWFnZURh
dGFUYWcgPSAnIycsIC8vIHdpZHRoOnVpbnQzMl90LCBoZWlnaHQ6dWludDMyX3QsIHBpeGVsRGF0
YUxlbmd0aDp1aW50MzJfdCwgZGF0YTpieXRlW3BpeGVsRGF0YUxlbmd0aF0gLT4gSW1hZ2VEYXRh
IChyZWYpCisgICAgQXJyYXlUYWcgPSAnWycsIC8vIGxlbmd0aDp1aW50MzJfdCAtPiBwb3BzIHRo
ZSBsYXN0IGFycmF5IGZyb20gdGhlIG9wZW4gc3RhY2s7CisgICAgICAgICAgICAgICAgICAgIC8v
ICAgICAgICAgICAgICAgICAgICBmaWxscyBpdCB3aXRoIHRoZSBsYXN0IGxlbmd0aCBlbGVtZW50
cyBwdXNoZWQgb24gdGhlIGRlc2VyaWFsaXphdGlvbiBzdGFjaworICAgIE9iamVjdFRhZyA9ICd7
JywgLy8gbnVtUHJvcGVydGllczp1aW50MzJfdCAtPiBwb3BzIHRoZSBsYXN0IG9iamVjdCBmcm9t
IHRoZSBvcGVuIHN0YWNrOworICAgICAgICAgICAgICAgICAgICAgLy8gICAgICAgICAgICAgICAg
ICAgICAgICAgICBmaWxscyBpdCB3aXRoIHRoZSBsYXN0IG51bVByb3BlcnRpZXMgbmFtZSx2YWx1
ZSBwYWlycyBwdXNoZWQgb250byB0aGUgZGVzZXJpYWxpemF0aW9uIHN0YWNrCisgICAgU3BhcnNl
QXJyYXlUYWcgPSAnQCcsIC8vIG51bVByb3BlcnRpZXM6dWludDMyX3QsIGxlbmd0aDp1aW50MzJf
dCAtPiBwb3BzIHRoZSBsYXN0IG9iamVjdCBmcm9tIHRoZSBvcGVuIHN0YWNrOworICAgICAgICAg
ICAgICAgICAgICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZmlsbHMgaXQgd2l0aCB0aGUgbGFzdCBudW1Qcm9wZXJ0aWVzIG5hbWUsdmFsdWUgcGFp
cnMgcHVzaGVkIG9udG8gdGhlIGRlc2VyaWFsaXphdGlvbiBzdGFjaworICAgIFJlZ0V4cFRhZyA9
ICdSJywgLy8gcGF0dGVybjpSYXdTdHJpbmcsIGZsYWdzOnVpbnQzMl90IC0+IFJlZ0V4cCAocmVm
KQorICAgIEFycmF5QnVmZmVyVGFnID0gJ0InLCAvLyBieXRlTGVuZ3RoOnVpbnQzMl90LCBkYXRh
OmJ5dGVbYnl0ZUxlbmd0aF0gLT4gQXJyYXlCdWZmZXIgKHJlZikKKyAgICBBcnJheUJ1ZmZlclZp
ZXdUYWcgPSAnVicsIC8vIHN1YnRhZzpieXRlLCBieXRlT2Zmc2V0OnVpbnQzMl90LCBieXRlTGVu
Z3RoOnVpbnQzMl90IC0+IEFycmF5QnVmZmVyVmlldyAocmVmKS4gQ29uc3VtZXMgYW4gQXJyYXlC
dWZmZXIgZnJvbSB0aGUgdG9wIG9mIHRoZSBkZXNlcmlhbGl6YXRpb24gc3RhY2suCisgICAgT2Jq
ZWN0UmVmZXJlbmNlVGFnID0gJ14nLCAvLyByZWY6dWludDMyX3QgLT4gcmVmZXJlbmNlIHRhYmxl
W3JlZl0KKyAgICBHZW5lcmF0ZUZyZXNoT2JqZWN0VGFnID0gJ28nLCAvLyAtPiBlbXB0eSBvYmpl
Y3QgYWxsb2NhdGVkIGFuIG9iamVjdCBJRCBhbmQgcHVzaGVkIG9udG8gdGhlIG9wZW4gc3RhY2sg
KHJlZikKKyAgICBHZW5lcmF0ZUZyZXNoQXJyYXlUYWcgPSAnYScsIC8vIGxlbmd0aDp1aW50MzJf
dCAtPiBlbXB0eSBhcnJheVtsZW5ndGhdIGFsbG9jYXRlZCBhbiBvYmplY3QgSUQgYW5kIHB1c2hl
ZCBvbnRvIHRoZSBvcGVuIHN0YWNrIChyZWYpCisgICAgUmVmZXJlbmNlQ291bnRUYWcgPSAnPycs
IC8vIHJlZlRhYmxlU2l6ZTp1aW50MzJfdCAtPiBJZiB0aGUgcmVmZXJlbmNlIHRhYmxlIGlzIG5v
dCByZWZUYWJsZVNpemUgYmlnLCBmYWlscy4KKyAgICBWZXJzaW9uVGFnID0gMHhGRiAvLyB2ZXJz
aW9uOnVpbnQzMl90IC0+IFVzZXMgdGhpcyBhcyB0aGUgZmlsZSB2ZXJzaW9uLgorfTsKKworZW51
bSBBcnJheUJ1ZmZlclZpZXdTdWJUYWcgeworICAgIEJ5dGVBcnJheVRhZyA9ICdiJywKKyAgICBV
bnNpZ25lZEJ5dGVBcnJheVRhZyA9ICdCJywKKyAgICBTaG9ydEFycmF5VGFnID0gJ3cnLAorICAg
IFVuc2lnbmVkU2hvcnRBcnJheVRhZyA9ICdXJywKKyAgICBJbnRBcnJheVRhZyA9ICdkJywKKyAg
ICBVbnNpZ25lZEludEFycmF5VGFnID0gJ0QnLAorICAgIEZsb2F0QXJyYXlUYWcgPSAnZicsCisg
ICAgRG91YmxlQXJyYXlUYWcgPSAnRicsCisgICAgRGF0YVZpZXdUYWcgPSAnPycKIH07CiAKIHN0
YXRpYyBib29sIHNob3VsZENoZWNrRm9yQ3ljbGVzKGludCBkZXB0aCkKQEAgLTkyLDYgKzIyMyw5
IEBAIHN0YXRpYyBib29sIHNob3VsZENoZWNrRm9yQ3ljbGVzKGludCBkZXB0aCkKICAgICByZXR1
cm4gIShkZXB0aCAmIChkZXB0aCAtIDEpKTsKIH0KIAorLy8gSW5jcmVtZW50IHRoaXMgZm9yIGVh
Y2ggaW5jb21wYXRpYmxlIGNoYW5nZSB0byB0aGUgd2lyZSBmb3JtYXQuCitzdGF0aWMgY29uc3Qg
dWludDMyX3Qgd2lyZUZvcm1hdFZlcnNpb24gPSAxOworCiBzdGF0aWMgY29uc3QgaW50IG1heERl
cHRoID0gMjAwMDA7CiAKIC8vIFZhckludCBlbmNvZGluZyBjb25zdGFudHMuCkBAIC0xNTksNiAr
MjkzLDEyIEBAIHB1YmxpYzoKICAgICAgICAgZG9Xcml0ZVdlYkNvcmVTdHJpbmcoc3RyaW5nKTsK
ICAgICB9CiAKKyAgICB2b2lkIHdyaXRlVmVyc2lvbigpCisgICAgeworICAgICAgICBhcHBlbmQo
VmVyc2lvblRhZyk7CisgICAgICAgIGRvV3JpdGVVaW50MzIod2lyZUZvcm1hdFZlcnNpb24pOwor
ICAgIH0KKwogICAgIHZvaWQgd3JpdGVJbnQzMihpbnQzMl90IHZhbHVlKQogICAgIHsKICAgICAg
ICAgYXBwZW5kKEludDMyVGFnKTsKQEAgLTIxMSw2ICszNTEsNDQgQEAgcHVibGljOgogICAgICAg
ICB9CiAgICAgfQogCisgICAgdm9pZCB3cml0ZUFycmF5QnVmZmVyKGNvbnN0IEFycmF5QnVmZmVy
JiBhcnJheUJ1ZmZlcikKKyAgICB7CisgICAgICAgIGFwcGVuZChBcnJheUJ1ZmZlclRhZyk7Cisg
ICAgICAgIGRvV3JpdGVBcnJheUJ1ZmZlcihhcnJheUJ1ZmZlcik7CisgICAgfQorCisgICAgdm9p
ZCB3cml0ZUFycmF5QnVmZmVyVmlldyhjb25zdCBBcnJheUJ1ZmZlclZpZXcmIGFycmF5QnVmZmVy
VmlldykKKyAgICB7CisgICAgICAgIGFwcGVuZChBcnJheUJ1ZmZlclZpZXdUYWcpOworI2lmbmRl
ZiBOREVCVUcKKyAgICAgICAgY29uc3QgQXJyYXlCdWZmZXImIGFycmF5QnVmZmVyID0gKmFycmF5
QnVmZmVyVmlldy5idWZmZXIoKTsKKyAgICAgICAgQVNTRVJUKHN0YXRpY19jYXN0PGNvbnN0IHVp
bnQ4X3QqPihhcnJheUJ1ZmZlci5kYXRhKCkpICsgYXJyYXlCdWZmZXJWaWV3LmJ5dGVPZmZzZXQo
KSA9PQorICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8Y29uc3QgdWludDhfdCo+KGFycmF5QnVm
ZmVyVmlldy5iYXNlQWRkcmVzcygpKSk7CisjZW5kaWYKKyAgICAgICAgaWYgKGFycmF5QnVmZmVy
Vmlldy5pc0J5dGVBcnJheSgpKQorICAgICAgICAgICAgYXBwZW5kKEJ5dGVBcnJheVRhZyk7Cisg
ICAgICAgIGVsc2UgaWYgKGFycmF5QnVmZmVyVmlldy5pc1Vuc2lnbmVkQnl0ZUFycmF5KCkpCisg
ICAgICAgICAgICBhcHBlbmQoVW5zaWduZWRCeXRlQXJyYXlUYWcpOworICAgICAgICBlbHNlIGlm
IChhcnJheUJ1ZmZlclZpZXcuaXNTaG9ydEFycmF5KCkpCisgICAgICAgICAgICBhcHBlbmQoU2hv
cnRBcnJheVRhZyk7CisgICAgICAgIGVsc2UgaWYgKGFycmF5QnVmZmVyVmlldy5pc1Vuc2lnbmVk
U2hvcnRBcnJheSgpKQorICAgICAgICAgICAgYXBwZW5kKFVuc2lnbmVkU2hvcnRBcnJheVRhZyk7
CisgICAgICAgIGVsc2UgaWYgKGFycmF5QnVmZmVyVmlldy5pc0ludEFycmF5KCkpCisgICAgICAg
ICAgICBhcHBlbmQoSW50QXJyYXlUYWcpOworICAgICAgICBlbHNlIGlmIChhcnJheUJ1ZmZlclZp
ZXcuaXNVbnNpZ25lZEludEFycmF5KCkpCisgICAgICAgICAgICBhcHBlbmQoVW5zaWduZWRJbnRB
cnJheVRhZyk7CisgICAgICAgIGVsc2UgaWYgKGFycmF5QnVmZmVyVmlldy5pc0Zsb2F0QXJyYXko
KSkKKyAgICAgICAgICAgIGFwcGVuZChGbG9hdEFycmF5VGFnKTsKKyAgICAgICAgZWxzZSBpZiAo
YXJyYXlCdWZmZXJWaWV3LmlzRG91YmxlQXJyYXkoKSkKKyAgICAgICAgICAgIGFwcGVuZChEb3Vi
bGVBcnJheVRhZyk7CisgICAgICAgIGVsc2UgaWYgKGFycmF5QnVmZmVyVmlldy5pc0RhdGFWaWV3
KCkpCisgICAgICAgICAgICBhcHBlbmQoRGF0YVZpZXdUYWcpOworICAgICAgICBlbHNlCisgICAg
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgZG9Xcml0ZVVpbnQzMihhcnJh
eUJ1ZmZlclZpZXcuYnl0ZU9mZnNldCgpKTsKKyAgICAgICAgZG9Xcml0ZVVpbnQzMihhcnJheUJ1
ZmZlclZpZXcuYnl0ZUxlbmd0aCgpKTsKKyAgICB9CisKICAgICB2b2lkIHdyaXRlSW1hZ2VEYXRh
KHVpbnQzMl90IHdpZHRoLCB1aW50MzJfdCBoZWlnaHQsIGNvbnN0IHVpbnQ4X3QqIHBpeGVsRGF0
YSwgdWludDMyX3QgcGl4ZWxEYXRhTGVuZ3RoKQogICAgIHsKICAgICAgICAgYXBwZW5kKEltYWdl
RGF0YVRhZyk7CkBAIC0yMzQsNiArNDEyLDEyIEBAIHB1YmxpYzoKICAgICAgICAgZG9Xcml0ZVVp
bnQzMihsZW5ndGgpOwogICAgIH0KIAorICAgIHZvaWQgd3JpdGVPYmplY3RSZWZlcmVuY2UodWlu
dDMyX3QgcmVmZXJlbmNlKQorICAgIHsKKyAgICAgICAgYXBwZW5kKE9iamVjdFJlZmVyZW5jZVRh
Zyk7CisgICAgICAgIGRvV3JpdGVVaW50MzIocmVmZXJlbmNlKTsKKyAgICB9CisKICAgICB2b2lk
IHdyaXRlT2JqZWN0KHVpbnQzMl90IG51bVByb3BlcnRpZXMpCiAgICAgewogICAgICAgICBhcHBl
bmQoT2JqZWN0VGFnKTsKQEAgLTI1Myw3ICs0MzcsMzEgQEAgcHVibGljOgogICAgICAgICByZXR1
cm4gbV9idWZmZXI7CiAgICAgfQogCisgICAgdm9pZCB3cml0ZVJlZmVyZW5jZUNvdW50KHVpbnQz
Ml90IG51bWJlck9mUmVmZXJlbmNlcykKKyAgICB7CisgICAgICAgIGFwcGVuZChSZWZlcmVuY2VD
b3VudFRhZyk7CisgICAgICAgIGRvV3JpdGVVaW50MzIobnVtYmVyT2ZSZWZlcmVuY2VzKTsKKyAg
ICB9CisKKyAgICB2b2lkIHdyaXRlR2VuZXJhdGVGcmVzaE9iamVjdCgpCisgICAgeworICAgICAg
ICBhcHBlbmQoR2VuZXJhdGVGcmVzaE9iamVjdFRhZyk7CisgICAgfQorCisgICAgdm9pZCB3cml0
ZUdlbmVyYXRlRnJlc2hBcnJheSh1aW50MzJfdCBsZW5ndGgpCisgICAgeworICAgICAgICBhcHBl
bmQoR2VuZXJhdGVGcmVzaEFycmF5VGFnKTsKKyAgICAgICAgZG9Xcml0ZVVpbnQzMihsZW5ndGgp
OworICAgIH0KKwogcHJpdmF0ZToKKyAgICB2b2lkIGRvV3JpdGVBcnJheUJ1ZmZlcihjb25zdCBB
cnJheUJ1ZmZlciYgYXJyYXlCdWZmZXIpCisgICAgeworICAgICAgICB1aW50MzJfdCBieXRlTGVu
Z3RoID0gYXJyYXlCdWZmZXIuYnl0ZUxlbmd0aCgpOworICAgICAgICBkb1dyaXRlVWludDMyKGJ5
dGVMZW5ndGgpOworICAgICAgICBhcHBlbmQoc3RhdGljX2Nhc3Q8Y29uc3QgdWludDhfdCo+KGFy
cmF5QnVmZmVyLmRhdGEoKSksIGJ5dGVMZW5ndGgpOworICAgIH0KKwogICAgIHZvaWQgZG9Xcml0
ZVN0cmluZyhjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3RoKQogICAgIHsKICAgICAgICAgZG9X
cml0ZVVpbnQzMihzdGF0aWNfY2FzdDx1aW50MzJfdD4obGVuZ3RoKSk7CkBAIC0zNDAsNiArNTQ4
LDcgQEAgcHVibGljOgogICAgIGVudW0gU3RhdHVzIHsKICAgICAgICAgU3VjY2VzcywKICAgICAg
ICAgSW5wdXRFcnJvciwKKyAgICAgICAgRGF0YUNsb25lRXJyb3IsCiAgICAgICAgIEpTRXhjZXB0
aW9uLAogICAgICAgICBKU0ZhaWx1cmUKICAgICB9OwpAQCAtMzQ4LDcgKzU1Nyw5IEBAIHB1Ymxp
YzoKICAgICAgICAgOiBtX3dyaXRlcih3cml0ZXIpCiAgICAgICAgICwgbV90cnlDYXRjaCh0cnlD
YXRjaCkKICAgICAgICAgLCBtX2RlcHRoKDApCisgICAgICAgICwgbV9leGVjRGVwdGgoMCkKICAg
ICAgICAgLCBtX3N0YXR1cyhTdWNjZXNzKQorICAgICAgICAsIG1fbmV4dE9iamVjdFJlZmVyZW5j
ZSgwKQogICAgIHsKICAgICAgICAgQVNTRVJUKCF0cnlDYXRjaC5IYXNDYXVnaHQoKSk7CiAgICAg
fQpAQCAtMzU2LDYgKzU2Nyw3IEBAIHB1YmxpYzoKICAgICBTdGF0dXMgc2VyaWFsaXplKHY4OjpI
YW5kbGU8djg6OlZhbHVlPiB2YWx1ZSkKICAgICB7CiAgICAgICAgIHY4OjpIYW5kbGVTY29wZSBz
Y29wZTsKKyAgICAgICAgbV93cml0ZXIud3JpdGVWZXJzaW9uKCk7CiAgICAgICAgIFN0YXRlQmFz
ZSogc3RhdGUgPSBkb1NlcmlhbGl6ZSh2YWx1ZSwgMCk7CiAgICAgICAgIHdoaWxlIChzdGF0ZSkK
ICAgICAgICAgICAgIHN0YXRlID0gc3RhdGUtPmFkdmFuY2UoKnRoaXMpOwpAQCAtMzYzLDcgKzU3
NSw2IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICAvLyBGdW5jdGlvbnMgdXNlZCBieSBzZXJpYWxp
emF0aW9uIHN0YXRlcy4KLQogICAgIFN0YXRlQmFzZSogZG9TZXJpYWxpemUodjg6OkhhbmRsZTx2
ODo6VmFsdWU+IHZhbHVlLCBTdGF0ZUJhc2UqIG5leHQpOwogCiAgICAgU3RhdGVCYXNlKiBjaGVj
a0V4Y2VwdGlvbihTdGF0ZUJhc2UqIHN0YXRlKQpAQCAtNDExLDYgKzYyMiwxMCBAQCBwcml2YXRl
OgogICAgICAgICAvLyBzdGF0ZS4KICAgICAgICAgdmlydHVhbCBTdGF0ZUJhc2UqIGFkdmFuY2Uo
U2VyaWFsaXplciYpID0gMDsKIAorICAgICAgICAvLyBSZXR1cm5zIDEgaWYgdGhpcyBzdGF0ZSBp
cyBjdXJyZW50bHkgc2VyaWFsaXppbmcgYSBwcm9wZXJ0eQorICAgICAgICAvLyB2aWEgYW4gYWNj
ZXNzb3IgYW5kIDAgb3RoZXJ3aXNlLgorICAgICAgICB2aXJ0dWFsIHVpbnQzMl90IGV4ZWNEZXB0
aCgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KKwogICAgIHByb3RlY3RlZDoKICAgICAgICAgU3RhdGVC
YXNlKHY4OjpIYW5kbGU8djg6OlZhbHVlPiBjb21wb3NpdGUsIFN0YXRlQmFzZSogbmV4dCkKICAg
ICAgICAgICAgIDogbV9jb21wb3NpdGUoY29tcG9zaXRlKQpAQCAtNDg1LDExICs3MDAsMTMgQEAg
cHJpdmF0ZToKICAgICAgICAgICAgICwgbV9pbmRleCgwKQogICAgICAgICAgICAgLCBtX251bVNl
cmlhbGl6ZWRQcm9wZXJ0aWVzKDApCiAgICAgICAgICAgICAsIG1fbmFtZURvbmUoZmFsc2UpCisg
ICAgICAgICAgICAsIG1faXNTZXJpYWxpemluZ0FjY2Vzc29yKGZhbHNlKQogICAgICAgICB7CiAg
ICAgICAgIH0KIAogICAgICAgICB2aXJ0dWFsIFN0YXRlQmFzZSogYWR2YW5jZShTZXJpYWxpemVy
JiBzZXJpYWxpemVyKQogICAgICAgICB7CisgICAgICAgICAgICBtX2lzU2VyaWFsaXppbmdBY2Nl
c3NvciA9IGZhbHNlOwogICAgICAgICAgICAgaWYgKCFtX2luZGV4KSB7CiAgICAgICAgICAgICAg
ICAgbV9wcm9wZXJ0eU5hbWVzID0gY29tcG9zaXRlKCktPkdldFByb3BlcnR5TmFtZXMoKTsKICAg
ICAgICAgICAgICAgICBpZiAoU3RhdGVCYXNlKiBuZXdTdGF0ZSA9IHNlcmlhbGl6ZXIuY2hlY2tF
eGNlcHRpb24odGhpcykpCkBAIC00OTgsNiArNzE1LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIHNlcmlhbGl6ZXIucmVwb3J0RmFpbHVyZSh0aGlzKTsKICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgIHdoaWxlIChtX2luZGV4IDwgbV9wcm9wZXJ0eU5hbWVzLT5MZW5n
dGgoKSkgeworICAgICAgICAgICAgICAgIGJvb2wgaXNBY2Nlc3NvciA9IGZhbHNlOwogICAgICAg
ICAgICAgICAgIGlmICghbV9uYW1lRG9uZSkgewogICAgICAgICAgICAgICAgICAgICB2ODo6TG9j
YWw8djg6OlZhbHVlPiBwcm9wZXJ0eU5hbWUgPSBtX3Byb3BlcnR5TmFtZXMtPkdldChtX2luZGV4
KTsKICAgICAgICAgICAgICAgICAgICAgaWYgKFN0YXRlQmFzZSogbmV3U3RhdGUgPSBzZXJpYWxp
emVyLmNoZWNrRXhjZXB0aW9uKHRoaXMpKQpAQCAtNTEwLDYgKzcyOCw5IEBAIHByaXZhdGU6CiAg
ICAgICAgICAgICAgICAgICAgIGJvb2wgaGFzSW5kZXhlZFByb3BlcnR5ID0gIWhhc1N0cmluZ1By
b3BlcnR5ICYmIHByb3BlcnR5TmFtZS0+SXNVaW50MzIoKSAmJiBjb21wb3NpdGUoKS0+SGFzUmVh
bEluZGV4ZWRQcm9wZXJ0eShwcm9wZXJ0eU5hbWUtPlVpbnQzMlZhbHVlKCkpOwogICAgICAgICAg
ICAgICAgICAgICBpZiAoU3RhdGVCYXNlKiBuZXdTdGF0ZSA9IHNlcmlhbGl6ZXIuY2hlY2tFeGNl
cHRpb24odGhpcykpCiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3U3RhdGU7Cisg
ICAgICAgICAgICAgICAgICAgIGlzQWNjZXNzb3IgPSBoYXNTdHJpbmdQcm9wZXJ0eSAmJiBjb21w
b3NpdGUoKS0+SGFzUmVhbE5hbWVkQ2FsbGJhY2tQcm9wZXJ0eShwcm9wZXJ0eU5hbWUuQXM8djg6
OlN0cmluZz4oKSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChTdGF0ZUJhc2UqIG5ld1N0YXRl
ID0gc2VyaWFsaXplci5jaGVja0V4Y2VwdGlvbih0aGlzKSkKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBuZXdTdGF0ZTsKICAgICAgICAgICAgICAgICAgICAgaWYgKGhhc1N0cmluZ1By
b3BlcnR5IHx8IGhhc0luZGV4ZWRQcm9wZXJ0eSkKICAgICAgICAgICAgICAgICAgICAgICAgIG1f
cHJvcGVydHlOYW1lID0gcHJvcGVydHlOYW1lOwogICAgICAgICAgICAgICAgICAgICBlbHNlIHsK
QEAgLTUzMCwxMiArNzUxLDIxIEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgbV9wcm9wZXJ0
eU5hbWUuQ2xlYXIoKTsKICAgICAgICAgICAgICAgICArK21faW5kZXg7CiAgICAgICAgICAgICAg
ICAgKyttX251bVNlcmlhbGl6ZWRQcm9wZXJ0aWVzOworICAgICAgICAgICAgICAgIG1faXNTZXJp
YWxpemluZ0FjY2Vzc29yID0gaXNBY2Nlc3NvcjsKKyAgICAgICAgICAgICAgICAvLyBJZiB3ZSBy
ZXR1cm4gZWFybHkgaGVyZSwgaXQncyBlaXRoZXIgYmVjYXVzZSB3ZSBoYXZlIHB1c2hlZCBhIG5l
dyBzdGF0ZSBvbnRvIHRoZQorICAgICAgICAgICAgICAgIC8vIHNlcmlhbGl6YXRpb24gc3RhdGUg
c3RhY2sgb3IgYmVjYXVzZSB3ZSBoYXZlIGVuY291bnRlcmVkIGFuIGVycm9yIChhbmQgaW4gYm90
aCBjYXNlcworICAgICAgICAgICAgICAgIC8vIHdlIGFyZSB1bndpbmRpbmcgdGhlIG5hdGl2ZSBz
dGFjaykuIFdlIHJlc2V0IG1faXNTZXJpYWxpemluZ0FjY2Vzc29yIGF0IHRoZSBiZWdpbm5pbmcK
KyAgICAgICAgICAgICAgICAvLyBvZiBhZHZhbmNlKCkgZm9yIHRoaXMgY2FzZSAoYmVjYXVzZSBh
ZHZhbmNlKCkgd2lsbCBiZSBjYWxsZWQgb24gdXMgYWdhaW4gb25jZSB3ZQorICAgICAgICAgICAg
ICAgIC8vIGFyZSB0aGUgdG9wIG9mIHRoZSBzdGFjaykuCiAgICAgICAgICAgICAgICAgaWYgKFN0
YXRlQmFzZSogbmV3U3RhdGUgPSBzZXJpYWxpemVyLmRvU2VyaWFsaXplKHZhbHVlLCB0aGlzKSkK
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ld1N0YXRlOworICAgICAgICAgICAgICAgIG1f
aXNTZXJpYWxpemluZ0FjY2Vzc29yID0gZmFsc2U7CiAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICByZXR1cm4gb2JqZWN0RG9uZShtX251bVNlcmlhbGl6ZWRQcm9wZXJ0aWVzLCBzZXJpYWxpemVy
KTsKICAgICAgICAgfQogCisgICAgICAgIHZpcnR1YWwgdWludDMyX3QgZXhlY0RlcHRoKCkgY29u
c3QgeyByZXR1cm4gbV9pc1NlcmlhbGl6aW5nQWNjZXNzb3IgPyAxIDogMDsgfQorCiAgICAgcHJv
dGVjdGVkOgogICAgICAgICB2aXJ0dWFsIFN0YXRlQmFzZSogb2JqZWN0RG9uZSh1bnNpZ25lZCBu
dW1Qcm9wZXJ0aWVzLCBTZXJpYWxpemVyJikgPSAwOwogCkBAIC01NDUsNiArNzc1LDkgQEAgcHJp
dmF0ZToKICAgICAgICAgdW5zaWduZWQgbV9pbmRleDsKICAgICAgICAgdW5zaWduZWQgbV9udW1T
ZXJpYWxpemVkUHJvcGVydGllczsKICAgICAgICAgYm9vbCBtX25hbWVEb25lOworICAgICAgICAv
LyBVc2VkIGFsb25nIHdpdGggZXhlY0RlcHRoKCkgdG8gZGV0ZXJtaW5lIHRoZSBudW1iZXIgb2YK
KyAgICAgICAgLy8gYWNjZXNzb3JzIHVuZGVyIHdoaWNoIHRoZSBzZXJpYWxpemVyIGlzIGN1cnJl
bnRseSBzZXJpYWxpemluZy4KKyAgICAgICAgYm9vbCBtX2lzU2VyaWFsaXppbmdBY2Nlc3NvcjsK
ICAgICB9OwogCiAgICAgY2xhc3MgT2JqZWN0U3RhdGUgOiBwdWJsaWMgQWJzdHJhY3RPYmplY3RT
dGF0ZSB7CkBAIC01NzUsOSArODA4LDE2IEBAIHByaXZhdGU6CiAgICAgICAgIH0KICAgICB9Owog
CisgICAgdWludDMyX3QgZXhlY0RlcHRoKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBt
X2V4ZWNEZXB0aDsKKyAgICB9CisKICAgICBTdGF0ZUJhc2UqIHB1c2goU3RhdGVCYXNlKiBzdGF0
ZSkKICAgICB7CiAgICAgICAgIEFTU0VSVChzdGF0ZSk7CisgICAgICAgIGlmIChzdGF0ZS0+bmV4
dFN0YXRlKCkpCisgICAgICAgICAgICBtX2V4ZWNEZXB0aCArPSBzdGF0ZS0+bmV4dFN0YXRlKCkt
PmV4ZWNEZXB0aCgpOwogICAgICAgICArK21fZGVwdGg7CiAgICAgICAgIHJldHVybiBjaGVja0Nv
bXBvc2l0ZShzdGF0ZSkgPyBzdGF0ZSA6IGhhbmRsZUVycm9yKElucHV0RXJyb3IsIHN0YXRlKTsK
ICAgICB9CkBAIC01ODcsNiArODI3LDggQEAgcHJpdmF0ZToKICAgICAgICAgQVNTRVJUKHN0YXRl
KTsKICAgICAgICAgLS1tX2RlcHRoOwogICAgICAgICBTdGF0ZUJhc2UqIG5leHQgPSBzdGF0ZS0+
bmV4dFN0YXRlKCk7CisgICAgICAgIGlmIChuZXh0KQorICAgICAgICAgICAgbV9leGVjRGVwdGgg
LT0gbmV4dC0+ZXhlY0RlcHRoKCk7CiAgICAgICAgIGRlbGV0ZSBzdGF0ZTsKICAgICAgICAgcmV0
dXJuIG5leHQ7CiAgICAgfQpAQCAtNTk5LDYgKzg0MSw4IEBAIHByaXZhdGU6CiAgICAgICAgICAg
ICBTdGF0ZUJhc2UqIHRtcCA9IHN0YXRlLT5uZXh0U3RhdGUoKTsKICAgICAgICAgICAgIGRlbGV0
ZSBzdGF0ZTsKICAgICAgICAgICAgIHN0YXRlID0gdG1wOworICAgICAgICAgICAgaWYgKHN0YXRl
KQorICAgICAgICAgICAgICAgIG1fZXhlY0RlcHRoIC09IHN0YXRlLT5leGVjRGVwdGgoKTsKICAg
ICAgICAgfQogICAgICAgICByZXR1cm4gbmV3IEVycm9yU3RhdGU7CiAgICAgfQpAQCAtNjYzLDYg
KzkwNywzOSBAQCBwcml2YXRlOgogICAgICAgICBtX3dyaXRlci53cml0ZVJlZ0V4cChyZWdFeHAt
PkdldFNvdXJjZSgpLCByZWdFeHAtPkdldEZsYWdzKCkpOwogICAgIH0KIAorICAgIFN0YXRlQmFz
ZSogd3JpdGVBbmRHcmV5QXJyYXlCdWZmZXJWaWV3KHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gb2Jq
ZWN0LCBTdGF0ZUJhc2UqIG5leHQpCisgICAgeworICAgICAgICBBU1NFUlQoIW9iamVjdC5Jc0Vt
cHR5KCkpOworICAgICAgICBBcnJheUJ1ZmZlclZpZXcqIGFycmF5QnVmZmVyVmlldyA9IFY4QXJy
YXlCdWZmZXJWaWV3Ojp0b05hdGl2ZShvYmplY3QpOworICAgICAgICBpZiAoIWFycmF5QnVmZmVy
VmlldykKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB2ODo6SGFuZGxlPHY4OjpWYWx1
ZT4gdW5kZXJseWluZ0J1ZmZlciA9IHRvVjgoYXJyYXlCdWZmZXJWaWV3LT5idWZmZXIoKSk7Cisg
ICAgICAgIGlmICh1bmRlcmx5aW5nQnVmZmVyLklzRW1wdHkoKSkKKyAgICAgICAgICAgIHJldHVy
biBoYW5kbGVFcnJvcihEYXRhQ2xvbmVFcnJvciwgbmV4dCk7CisgICAgICAgIFN0YXRlQmFzZSog
c3RhdGVPdXQgPSBkb1NlcmlhbGl6ZSh1bmRlcmx5aW5nQnVmZmVyLCAwKTsKKyAgICAgICAgaWYg
KHN0YXRlT3V0KQorICAgICAgICAgICAgcmV0dXJuIGhhbmRsZUVycm9yKERhdGFDbG9uZUVycm9y
LCBuZXh0KTsKKyAgICAgICAgbV93cml0ZXIud3JpdGVBcnJheUJ1ZmZlclZpZXcoKmFycmF5QnVm
ZmVyVmlldyk7CisgICAgICAgIC8vIFRoaXMgc2hvdWxkIGJlIHNhZmU6IHdlIHNlcmlhbGl6ZSBz
b21ldGhpbmcgdGhhdCB3ZSBrbm93IHRvIGJlIGEgd3JhcHBlciAoc2VlCisgICAgICAgIC8vIHRo
ZSB0b1Y4IGNhbGwgYWJvdmUpLCBzbyB0aGUgY2FsbCB0byBkb1NlcmlhbGl6ZSBhYm92ZSBzaG91
bGQgbmVpdGhlciBjYXVzZQorICAgICAgICAvLyB0aGUgc3RhY2sgdG8gb3ZlcmZsb3cgbm9yIHNo
b3VsZCBpdCBoYXZlIHRoZSBwb3RlbnRpYWwgdG8gcmVhY2ggdGhpcworICAgICAgICAvLyBBcnJh
eUJ1ZmZlclZpZXcgYWdhaW4uIFdlIGRvIG5lZWQgdG8gZ3JleSB0aGUgdW5kZXJseWluZyBidWZm
ZXIgYmVmb3JlIHdlIGdyZXkKKyAgICAgICAgLy8gaXRzIHZpZXcsIGhvd2V2ZXI7IEFycmF5QnVm
ZmVycyBtYXkgYmUgc2hhcmVkLCBzbyB0aGV5IG5lZWQgdG8gYmUgZ2l2ZW4gcmVmZXJlbmNlIElE
cywKKyAgICAgICAgLy8gYW5kIGFuIEFycmF5QnVmZmVyVmlldyBjYW5ub3QgYmUgY29uc3RydWN0
ZWQgd2l0aG91dCBhIGNvcnJlc3BvbmRpbmcgQXJyYXlCdWZmZXIKKyAgICAgICAgLy8gKG9yIHdp
dGhvdXQgYW4gYWRkaXRpb25hbCB0YWcgdGhhdCB3b3VsZCBhbGxvdyB1cyB0byBkbyB0d28tc3Rh
Z2UgY29uc3RydWN0aW9uCisgICAgICAgIC8vIGxpa2Ugd2UgZG8gZm9yIE9iamVjdHMgYW5kIEFy
cmF5cykuCisgICAgICAgIGdyZXlPYmplY3Qob2JqZWN0KTsKKyAgICAgICAgcmV0dXJuIDA7Cisg
ICAgfQorCisgICAgdm9pZCB3cml0ZUFycmF5QnVmZmVyKHY4OjpIYW5kbGU8djg6OlZhbHVlPiB2
YWx1ZSkKKyAgICB7CisgICAgICAgIEFycmF5QnVmZmVyKiBhcnJheUJ1ZmZlciA9IFY4QXJyYXlC
dWZmZXI6OnRvTmF0aXZlKHZhbHVlLkFzPHY4OjpPYmplY3Q+KCkpOworICAgICAgICBpZiAoIWFy
cmF5QnVmZmVyKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBtX3dyaXRlci53cml0ZUFy
cmF5QnVmZmVyKCphcnJheUJ1ZmZlcik7CisgICAgfQorCiAgICAgc3RhdGljIFN0YXRlQmFzZSog
bmV3QXJyYXlTdGF0ZSh2ODo6SGFuZGxlPHY4OjpBcnJheT4gYXJyYXksIFN0YXRlQmFzZSogbmV4
dCkKICAgICB7CiAgICAgICAgIC8vIEZJWE1FOiB1c2UgcGxhaW4gQXJyYXkgc3RhdGUgd2hlbiB3
ZSBjYW4gcXVpY2tseSBjaGVjayB0aGF0CkBAIC02NzYsMTcgKzk1Myw0MiBAQCBwcml2YXRlOgog
ICAgICAgICByZXR1cm4gbmV3IE9iamVjdFN0YXRlKG9iamVjdCwgbmV4dCk7CiAgICAgfQogCisg
ICAgLy8gTWFya3Mgb2JqZWN0IGFzIGhhdmluZyBiZWVuIHZpc2l0ZWQgYnkgdGhlIHNlcmlhbGl6
ZXIgYW5kIGFzc2lnbnMgaXQgYSB1bmlxdWUgb2JqZWN0IHJlZmVyZW5jZSBJRC4KKyAgICAvLyBB
biBvYmplY3QgbWF5IG9ubHkgYmUgZ3JleWVkIG9uY2UuCisgICAgdm9pZCBncmV5T2JqZWN0KGNv
bnN0IHY4OjpIYW5kbGU8djg6Ok9iamVjdD4mIG9iamVjdCkKKyAgICB7CisgICAgICAgIEFTU0VS
VCghbV9vYmplY3RQb29sLmNvbnRhaW5zKG9iamVjdCkpOworICAgICAgICB1aW50MzJfdCBvYmpl
Y3RSZWZlcmVuY2UgPSBtX25leHRPYmplY3RSZWZlcmVuY2UrKzsKKyAgICAgICAgbV9vYmplY3RQ
b29sLnNldChvYmplY3QsIG9iamVjdFJlZmVyZW5jZSk7CisgICAgfQorCiAgICAgV3JpdGVyJiBt
X3dyaXRlcjsKICAgICB2ODo6VHJ5Q2F0Y2gmIG1fdHJ5Q2F0Y2g7CiAgICAgaW50IG1fZGVwdGg7
CisgICAgaW50IG1fZXhlY0RlcHRoOwogICAgIFN0YXR1cyBtX3N0YXR1czsKKyAgICB0eXBlZGVm
IFY4T2JqZWN0TWFwPHY4OjpPYmplY3QsIHVpbnQzMl90PiBPYmplY3RQb29sOworICAgIE9iamVj
dFBvb2wgbV9vYmplY3RQb29sOworICAgIHVpbnQzMl90IG1fbmV4dE9iamVjdFJlZmVyZW5jZTsK
IH07CiAKIFNlcmlhbGl6ZXI6OlN0YXRlQmFzZSogU2VyaWFsaXplcjo6ZG9TZXJpYWxpemUodjg6
OkhhbmRsZTx2ODo6VmFsdWU+IHZhbHVlLCBTdGF0ZUJhc2UqIG5leHQpCiB7Ci0gICAgaWYgKHZh
bHVlLklzRW1wdHkoKSkKKyAgICBpZiAobV9leGVjRGVwdGggKyAobmV4dCA/IG5leHQtPmV4ZWNE
ZXB0aCgpIDogMCkgPiAxKSB7CisgICAgICAgIG1fd3JpdGVyLndyaXRlTnVsbCgpOworICAgICAg
ICByZXR1cm4gMDsKKyAgICB9CisgICAgbV93cml0ZXIud3JpdGVSZWZlcmVuY2VDb3VudChtX25l
eHRPYmplY3RSZWZlcmVuY2UpOworICAgIHVpbnQzMl90IG9iamVjdFJlZmVyZW5jZTsKKyAgICBp
ZiAoKHZhbHVlLT5Jc09iamVjdCgpIHx8IHZhbHVlLT5Jc0RhdGUoKSB8fCB2YWx1ZS0+SXNSZWdF
eHAoKSkKKyAgICAgICAgJiYgbV9vYmplY3RQb29sLnRyeUdldCh2YWx1ZS5Bczx2ODo6T2JqZWN0
PigpLCAmb2JqZWN0UmVmZXJlbmNlKSkgeworICAgICAgICAvLyBOb3RlIHRoYXQgSXNPYmplY3Qo
KSBhbHNvIGRldGVjdHMgd3JhcHBlcnMgKGVnLCBpdCB3aWxsIGNhdGNoIHRoZSB0aGluZ3MKKyAg
ICAgICAgLy8gdGhhdCB3ZSBncmV5IGFuZCB3cml0ZSBiZWxvdykuCisgICAgICAgIEFTU0VSVCgh
dmFsdWUtPklzU3RyaW5nKCkpOworICAgICAgICBtX3dyaXRlci53cml0ZU9iamVjdFJlZmVyZW5j
ZShvYmplY3RSZWZlcmVuY2UpOworICAgIH0gZWxzZSBpZiAodmFsdWUuSXNFbXB0eSgpKQogICAg
ICAgICByZXR1cm4gcmVwb3J0RmFpbHVyZShuZXh0KTsKLSAgICBpZiAodmFsdWUtPklzVW5kZWZp
bmVkKCkpCisgICAgZWxzZSBpZiAodmFsdWUtPklzVW5kZWZpbmVkKCkpCiAgICAgICAgIG1fd3Jp
dGVyLndyaXRlVW5kZWZpbmVkKCk7CiAgICAgZWxzZSBpZiAodmFsdWUtPklzTnVsbCgpKQogICAg
ICAgICBtX3dyaXRlci53cml0ZU51bGwoKTsKQEAgLTY5OCwyNiArMTAwMCw0MyBAQCBTZXJpYWxp
emVyOjpTdGF0ZUJhc2UqIFNlcmlhbGl6ZXI6OmRvU2VyaWFsaXplKHY4OjpIYW5kbGU8djg6OlZh
bHVlPiB2YWx1ZSwgU3RhdAogICAgICAgICBtX3dyaXRlci53cml0ZUludDMyKHZhbHVlLT5JbnQz
MlZhbHVlKCkpOwogICAgIGVsc2UgaWYgKHZhbHVlLT5Jc1VpbnQzMigpKQogICAgICAgICBtX3dy
aXRlci53cml0ZVVpbnQzMih2YWx1ZS0+VWludDMyVmFsdWUoKSk7Ci0gICAgZWxzZSBpZiAodmFs
dWUtPklzRGF0ZSgpKQotICAgICAgICBtX3dyaXRlci53cml0ZURhdGUodmFsdWUtPk51bWJlclZh
bHVlKCkpOwogICAgIGVsc2UgaWYgKHZhbHVlLT5Jc051bWJlcigpKQogICAgICAgICBtX3dyaXRl
ci53cml0ZU51bWJlcih2YWx1ZS5Bczx2ODo6TnVtYmVyPigpLT5WYWx1ZSgpKTsKKyAgICBlbHNl
IGlmIChWOEFycmF5QnVmZmVyVmlldzo6SGFzSW5zdGFuY2UodmFsdWUpKQorICAgICAgICByZXR1
cm4gd3JpdGVBbmRHcmV5QXJyYXlCdWZmZXJWaWV3KHZhbHVlLkFzPHY4OjpPYmplY3Q+KCksIG5l
eHQpOwogICAgIGVsc2UgaWYgKHZhbHVlLT5Jc1N0cmluZygpKQogICAgICAgICB3cml0ZVN0cmlu
Zyh2YWx1ZSk7Ci0gICAgZWxzZSBpZiAodmFsdWUtPklzQXJyYXkoKSkKLSAgICAgICAgcmV0dXJu
IHB1c2gobmV3QXJyYXlTdGF0ZSh2YWx1ZS5Bczx2ODo6QXJyYXk+KCksIG5leHQpKTsKLSAgICBl
bHNlIGlmIChWOEZpbGU6Okhhc0luc3RhbmNlKHZhbHVlKSkKLSAgICAgICAgd3JpdGVGaWxlKHZh
bHVlKTsKLSAgICBlbHNlIGlmIChWOEJsb2I6Okhhc0luc3RhbmNlKHZhbHVlKSkKLSAgICAgICAg
d3JpdGVCbG9iKHZhbHVlKTsKLSAgICBlbHNlIGlmIChWOEZpbGVMaXN0OjpIYXNJbnN0YW5jZSh2
YWx1ZSkpCi0gICAgICAgIHdyaXRlRmlsZUxpc3QodmFsdWUpOwotICAgIGVsc2UgaWYgKFY4SW1h
Z2VEYXRhOjpIYXNJbnN0YW5jZSh2YWx1ZSkpCi0gICAgICAgIHdyaXRlSW1hZ2VEYXRhKHZhbHVl
KTsKLSAgICBlbHNlIGlmICh2YWx1ZS0+SXNSZWdFeHAoKSkKLSAgICAgICAgd3JpdGVSZWdFeHAo
dmFsdWUpOwotICAgIGVsc2UgaWYgKHZhbHVlLT5Jc09iamVjdCgpKQotICAgICAgICByZXR1cm4g
cHVzaChuZXdPYmplY3RTdGF0ZSh2YWx1ZS5Bczx2ODo6T2JqZWN0PigpLCBuZXh0KSk7CisgICAg
ZWxzZSB7CisgICAgICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4ganNPYmplY3QgPSB2YWx1ZS5B
czx2ODo6T2JqZWN0PigpOworICAgICAgICBpZiAoanNPYmplY3QuSXNFbXB0eSgpKQorICAgICAg
ICAgICAgcmV0dXJuIGhhbmRsZUVycm9yKERhdGFDbG9uZUVycm9yLCBuZXh0KTsKKyAgICAgICAg
Z3JleU9iamVjdChqc09iamVjdCk7CisgICAgICAgIGlmICh2YWx1ZS0+SXNEYXRlKCkpCisgICAg
ICAgICAgICBtX3dyaXRlci53cml0ZURhdGUodmFsdWUtPk51bWJlclZhbHVlKCkpOworICAgICAg
ICBlbHNlIGlmICh2YWx1ZS0+SXNBcnJheSgpKSB7CisgICAgICAgICAgICBtX3dyaXRlci53cml0
ZUdlbmVyYXRlRnJlc2hBcnJheSh2YWx1ZS5Bczx2ODo6QXJyYXk+KCktPkxlbmd0aCgpKTsKKyAg
ICAgICAgICAgIHJldHVybiBwdXNoKG5ld0FycmF5U3RhdGUodmFsdWUuQXM8djg6OkFycmF5Pigp
LCBuZXh0KSk7CisgICAgICAgIH0gZWxzZSBpZiAoVjhGaWxlOjpIYXNJbnN0YW5jZSh2YWx1ZSkp
CisgICAgICAgICAgICB3cml0ZUZpbGUodmFsdWUpOworICAgICAgICBlbHNlIGlmIChWOEJsb2I6
Okhhc0luc3RhbmNlKHZhbHVlKSkKKyAgICAgICAgICAgIHdyaXRlQmxvYih2YWx1ZSk7CisgICAg
ICAgIGVsc2UgaWYgKFY4RmlsZUxpc3Q6Okhhc0luc3RhbmNlKHZhbHVlKSkKKyAgICAgICAgICAg
IHdyaXRlRmlsZUxpc3QodmFsdWUpOworICAgICAgICBlbHNlIGlmIChWOEltYWdlRGF0YTo6SGFz
SW5zdGFuY2UodmFsdWUpKQorICAgICAgICAgICAgd3JpdGVJbWFnZURhdGEodmFsdWUpOworICAg
ICAgICBlbHNlIGlmICh2YWx1ZS0+SXNSZWdFeHAoKSkKKyAgICAgICAgICAgIHdyaXRlUmVnRXhw
KHZhbHVlKTsKKyAgICAgICAgZWxzZSBpZiAoVjhBcnJheUJ1ZmZlcjo6SGFzSW5zdGFuY2UodmFs
dWUpKQorICAgICAgICAgICAgd3JpdGVBcnJheUJ1ZmZlcih2YWx1ZSk7CisgICAgICAgIGVsc2Ug
aWYgKHZhbHVlLT5Jc09iamVjdCgpKSB7CisgICAgICAgICAgICAvLyBGSVhNRTogV2UgbmVlZCB0
byBjaGVjayBpZiBqc09iamVjdCBpcyBhICduYXRpdmUgRXJyb3InIGFuZCBpZiBzbyB0aHJvdyBh
IERhdGFDbG9uZUVycm9yLgorICAgICAgICAgICAgaWYgKGlzSG9zdE9iamVjdChqc09iamVjdCkg
fHwganNPYmplY3QtPklzQ2FsbGFibGUoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gaGFuZGxl
RXJyb3IoRGF0YUNsb25lRXJyb3IsIG5leHQpOworICAgICAgICAgICAgbV93cml0ZXIud3JpdGVH
ZW5lcmF0ZUZyZXNoT2JqZWN0KCk7CisgICAgICAgICAgICByZXR1cm4gcHVzaChuZXdPYmplY3RT
dGF0ZShqc09iamVjdCwgbmV4dCkpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIHJldHVy
biBoYW5kbGVFcnJvcihEYXRhQ2xvbmVFcnJvciwgbmV4dCk7CisgICAgfQogICAgIHJldHVybiAw
OwogfQogCkBAIC03MjYsOSArMTA0NSwxNSBAQCBjbGFzcyBDb21wb3NpdGVDcmVhdG9yIHsKIHB1
YmxpYzoKICAgICB2aXJ0dWFsIH5Db21wb3NpdGVDcmVhdG9yKCkgeyB9CiAKLSAgICB2aXJ0dWFs
IGJvb2wgY3JlYXRlQXJyYXkodWludDMyX3QgbGVuZ3RoLCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4q
IHZhbHVlKSA9IDA7Ci0gICAgdmlydHVhbCBib29sIGNyZWF0ZU9iamVjdCh1aW50MzJfdCBudW1Q
cm9wZXJ0aWVzLCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4qIHZhbHVlKSA9IDA7Ci0gICAgdmlydHVh
bCBib29sIGNyZWF0ZVNwYXJzZUFycmF5KHVpbnQzMl90IG51bVByb3BlcnRpZXMsIHVpbnQzMl90
IGxlbmd0aCwgdjg6OkhhbmRsZTx2ODo6VmFsdWU+KiB2YWx1ZSkgPSAwOworICAgIHZpcnR1YWwg
Ym9vbCBjb25zdW1lVG9wT2ZTdGFjayh2ODo6SGFuZGxlPHY4OjpWYWx1ZT4qKSA9IDA7CisgICAg
dmlydHVhbCB1aW50MzJfdCBvYmplY3RSZWZlcmVuY2VDb3VudCgpID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgcHVzaE9iamVjdFJlZmVyZW5jZShjb25zdCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4mKSA9
IDA7CisgICAgdmlydHVhbCBib29sIHRyeUdldE9iamVjdEZyb21PYmplY3RSZWZlcmVuY2UodWlu
dDMyX3QgcmVmZXJlbmNlLCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4qKSA9IDA7CisgICAgdmlydHVh
bCBib29sIG5ld0FycmF5KHVpbnQzMl90IGxlbmd0aCkgPSAwOworICAgIHZpcnR1YWwgYm9vbCBu
ZXdPYmplY3QoKSA9IDA7CisgICAgdmlydHVhbCBib29sIGNvbXBsZXRlQXJyYXkodWludDMyX3Qg
bGVuZ3RoLCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4qKSA9IDA7CisgICAgdmlydHVhbCBib29sIGNv
bXBsZXRlT2JqZWN0KHVpbnQzMl90IG51bVByb3BlcnRpZXMsIHY4OjpIYW5kbGU8djg6OlZhbHVl
PiopID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgY29tcGxldGVTcGFyc2VBcnJheSh1aW50MzJfdCBu
dW1Qcm9wZXJ0aWVzLCB1aW50MzJfdCBsZW5ndGgsIHY4OjpIYW5kbGU8djg6OlZhbHVlPiopID0g
MDsKIH07CiAKIC8vIFJlYWRlciBpcyByZXNwb25zaWJsZSBmb3IgZGVzZXJpYWxpemluZyBwcmlt
aXRpdmUgdHlwZXMgYW5kCkBAIC03MzksNiArMTA2NCw3IEBAIHB1YmxpYzoKICAgICAgICAgOiBt
X2J1ZmZlcihidWZmZXIpCiAgICAgICAgICwgbV9sZW5ndGgobGVuZ3RoKQogICAgICAgICAsIG1f
cG9zaXRpb24oMCkKKyAgICAgICAgLCBtX3ZlcnNpb24oMCkKICAgICB7CiAgICAgICAgIEFTU0VS
VChsZW5ndGggPj0gMCk7CiAgICAgfQpAQCAtNzUxLDYgKzEwNzcsMTkgQEAgcHVibGljOgogICAg
ICAgICBpZiAoIXJlYWRUYWcoJnRhZykpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
ICAgIHN3aXRjaCAodGFnKSB7CisgICAgICAgIGNhc2UgUmVmZXJlbmNlQ291bnRUYWc6IHsKKyAg
ICAgICAgICAgIGlmIChtX3ZlcnNpb24gPD0gMCkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgICAgICAgICB1aW50MzJfdCByZWZlcmVuY2VUYWJsZVNpemU7CisgICAgICAgICAg
ICBpZiAoIWRvUmVhZFVpbnQzMigmcmVmZXJlbmNlVGFibGVTaXplKSkKKyAgICAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAvLyBJZiB0aGlzIHRlc3QgZmFpbHMsIHRoZW4g
dGhlIHNlcmlhbGl6ZXIgYW5kIGRlc2VyaWFsaXplciBkaXNhZ3JlZSBhYm91dCB0aGUgYXNzaWdu
bWVudAorICAgICAgICAgICAgLy8gb2Ygb2JqZWN0IHJlZmVyZW5jZSBJRHMuIE9uIHRoZSBkZXNl
cmlhbGl6YXRpb24gc2lkZSwgdGhpcyBtZWFucyB0aGVyZSBhcmUgdG9vIG1hbnkgb3IgdG9vIGZl
dworICAgICAgICAgICAgLy8gY2FsbHMgdG8gcHVzaE9iamVjdFJlZmVyZW5jZS4KKyAgICAgICAg
ICAgIGlmIChyZWZlcmVuY2VUYWJsZVNpemUgIT0gY3JlYXRvci5vYmplY3RSZWZlcmVuY2VDb3Vu
dCgpKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIHJldHVybiB0
cnVlOworICAgICAgICB9CiAgICAgICAgIGNhc2UgSW52YWxpZFRhZzoKICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICAgICAgY2FzZSBQYWRkaW5nVGFnOgpAQCAtNzgyLDYgKzExMjEsNyBA
QCBwdWJsaWM6CiAgICAgICAgIGNhc2UgRGF0ZVRhZzoKICAgICAgICAgICAgIGlmICghcmVhZERh
dGUodmFsdWUpKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIGNy
ZWF0b3IucHVzaE9iamVjdFJlZmVyZW5jZSgqdmFsdWUpOwogICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIGNhc2UgTnVtYmVyVGFnOgogICAgICAgICAgICAgaWYgKCFyZWFkTnVtYmVyKHZhbHVl
KSkKQEAgLTc5MCwzNiArMTEzMCw0MSBAQCBwdWJsaWM6CiAgICAgICAgIGNhc2UgQmxvYlRhZzoK
ICAgICAgICAgICAgIGlmICghcmVhZEJsb2IodmFsdWUpKQogICAgICAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICAgICAgICAgIGNyZWF0b3IucHVzaE9iamVjdFJlZmVyZW5jZSgqdmFsdWUp
OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgRmlsZVRhZzoKICAgICAgICAgICAg
IGlmICghcmVhZEZpbGUodmFsdWUpKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICAgICAgICAgIGNyZWF0b3IucHVzaE9iamVjdFJlZmVyZW5jZSgqdmFsdWUpOwogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIGNhc2UgRmlsZUxpc3RUYWc6CiAgICAgICAgICAgICBpZiAoIXJl
YWRGaWxlTGlzdCh2YWx1ZSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAg
ICAgICAgY3JlYXRvci5wdXNoT2JqZWN0UmVmZXJlbmNlKCp2YWx1ZSk7CiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgY2FzZSBJbWFnZURhdGFUYWc6CiAgICAgICAgICAgICBpZiAoIXJlYWRJ
bWFnZURhdGEodmFsdWUpKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAg
ICAgIGNyZWF0b3IucHVzaE9iamVjdFJlZmVyZW5jZSgqdmFsdWUpOwogICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIGNhc2UgQXJyYXlUYWc6IHsKICAgICAgICAgICAgIHVpbnQzMl90IGxlbmd0
aDsKICAgICAgICAgICAgIGlmICghZG9SZWFkVWludDMyKCZsZW5ndGgpKQogICAgICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAgIGlmICghY3JlYXRvci5jcmVhdGVBcnJheShs
ZW5ndGgsIHZhbHVlKSkKKyAgICAgICAgICAgIGlmICghY3JlYXRvci5jb21wbGV0ZUFycmF5KGxl
bmd0aCwgdmFsdWUpKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2UgUmVnRXhwVGFnOgogICAgICAgICAgICAg
aWYgKCFyZWFkUmVnRXhwKHZhbHVlKSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgICAgICAgICBjcmVhdG9yLnB1c2hPYmplY3RSZWZlcmVuY2UoKnZhbHVlKTsKICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICBjYXNlIE9iamVjdFRhZzogewogICAgICAgICAgICAgdWludDMy
X3QgbnVtUHJvcGVydGllczsKICAgICAgICAgICAgIGlmICghZG9SZWFkVWludDMyKCZudW1Qcm9w
ZXJ0aWVzKSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICBpZiAo
IWNyZWF0b3IuY3JlYXRlT2JqZWN0KG51bVByb3BlcnRpZXMsIHZhbHVlKSkKKyAgICAgICAgICAg
IGlmICghY3JlYXRvci5jb21wbGV0ZU9iamVjdChudW1Qcm9wZXJ0aWVzLCB2YWx1ZSkpCiAgICAg
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0K
QEAgLTgzMCw3ICsxMTc1LDUwIEBAIHB1YmxpYzoKICAgICAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgICAgICAgICBpZiAoIWRvUmVhZFVpbnQzMigmbGVuZ3RoKSkKICAgICAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICBpZiAoIWNyZWF0b3IuY3JlYXRlU3BhcnNl
QXJyYXkobnVtUHJvcGVydGllcywgbGVuZ3RoLCB2YWx1ZSkpCisgICAgICAgICAgICBpZiAoIWNy
ZWF0b3IuY29tcGxldGVTcGFyc2VBcnJheShudW1Qcm9wZXJ0aWVzLCBsZW5ndGgsIHZhbHVlKSkK
KyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgfQorICAgICAgICBjYXNlIEFycmF5QnVmZmVyVmlld1RhZzogeworICAgICAgICAgICAgaWYg
KG1fdmVyc2lvbiA8PSAwKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAg
ICAgIGlmICghcmVhZEFycmF5QnVmZmVyVmlldyh2YWx1ZSwgY3JlYXRvcikpCisgICAgICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgY3JlYXRvci5wdXNoT2JqZWN0UmVmZXJl
bmNlKCp2YWx1ZSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBjYXNl
IEFycmF5QnVmZmVyVGFnOiB7CisgICAgICAgICAgICBpZiAobV92ZXJzaW9uIDw9IDApCisgICAg
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgaWYgKCFyZWFkQXJyYXlCdWZm
ZXIodmFsdWUpKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIGNy
ZWF0b3IucHVzaE9iamVjdFJlZmVyZW5jZSgqdmFsdWUpOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIH0KKyAgICAgICAgY2FzZSBHZW5lcmF0ZUZyZXNoT2JqZWN0VGFnOiB7CisgICAgICAg
ICAgICBpZiAobV92ZXJzaW9uIDw9IDApCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgICAgICAgICAgaWYgKCFjcmVhdG9yLm5ld09iamVjdCgpKQorICAgICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAg
IGNhc2UgR2VuZXJhdGVGcmVzaEFycmF5VGFnOiB7CisgICAgICAgICAgICBpZiAobV92ZXJzaW9u
IDw9IDApCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgdWludDMy
X3QgbGVuZ3RoOworICAgICAgICAgICAgaWYgKCFkb1JlYWRVaW50MzIoJmxlbmd0aCkpCisgICAg
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgaWYgKCFjcmVhdG9yLm5ld0Fy
cmF5KGxlbmd0aCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAg
cmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgY2FzZSBPYmplY3RSZWZlcmVuY2VUYWc6
IHsKKyAgICAgICAgICAgIGlmIChtX3ZlcnNpb24gPD0gMCkKKyAgICAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgICAgICAgICB1aW50MzJfdCByZWZlcmVuY2U7CisgICAgICAgICAgICBp
ZiAoIWRvUmVhZFVpbnQzMigmcmVmZXJlbmNlKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgICAgICAgICBpZiAoIWNyZWF0b3IudHJ5R2V0T2JqZWN0RnJvbU9iamVjdFJlZmVy
ZW5jZShyZWZlcmVuY2UsIHZhbHVlKSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgfQpAQCAtODQwLDYgKzEyMjgsMzAgQEAgcHVibGlj
OgogICAgICAgICByZXR1cm4gIXZhbHVlLT5Jc0VtcHR5KCk7CiAgICAgfQogCisgICAgYm9vbCBy
ZWFkVmVyc2lvbih1aW50MzJfdCYgdmVyc2lvbikKKyAgICB7CisgICAgICAgIFNlcmlhbGl6YXRp
b25UYWcgdGFnOworICAgICAgICBpZiAoIXJlYWRUYWcoJnRhZykpIHsKKyAgICAgICAgICAgIC8v
IFRoaXMgaXMgYSBudWxsYXJ5IGJ1ZmZlci4gV2UncmUgc3RpbGwgdmVyc2lvbiAwLgorICAgICAg
ICAgICAgdmVyc2lvbiA9IDA7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQor
ICAgICAgICBpZiAodGFnICE9IFZlcnNpb25UYWcpIHsKKyAgICAgICAgICAgIC8vIFZlcnNpb25z
IG9mIHRoZSBmb3JtYXQgcGFzdCAwIHN0YXJ0IHdpdGggdGhlIHZlcnNpb24gdGFnLgorICAgICAg
ICAgICAgdmVyc2lvbiA9IDA7CisgICAgICAgICAgICAvLyBQdXQgYmFjayB0aGUgdGFnLgorICAg
ICAgICAgICAgdW5kb1JlYWRUYWcoKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAg
ICB9CisgICAgICAgIC8vIFZlcnNpb24tYmVhcmluZyBtZXNzYWdlcyBhcmUgb2JsaWdhdGVkIHRv
IGZpbmlzaCB0aGUgdmVyc2lvbiB0YWcuCisgICAgICAgIHJldHVybiBkb1JlYWRVaW50MzIoJnZl
cnNpb24pOworICAgIH0KKworICAgIHZvaWQgc2V0VmVyc2lvbih1aW50MzJfdCB2ZXJzaW9uKQor
ICAgIHsKKyAgICAgICAgbV92ZXJzaW9uID0gdmVyc2lvbjsKKyAgICB9CisKIHByaXZhdGU6CiAg
ICAgYm9vbCByZWFkVGFnKFNlcmlhbGl6YXRpb25UYWcqIHRhZykKICAgICB7CkBAIC04NDksNiAr
MTI2MSwyMCBAQCBwcml2YXRlOgogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKKyAgICB2
b2lkIHVuZG9SZWFkVGFnKCkKKyAgICB7CisgICAgICAgIGlmIChtX3Bvc2l0aW9uID4gMCkKKyAg
ICAgICAgICAgIC0tbV9wb3NpdGlvbjsKKyAgICB9CisKKyAgICBib29sIHJlYWRBcnJheUJ1ZmZl
clZpZXdTdWJUYWcoQXJyYXlCdWZmZXJWaWV3U3ViVGFnKiB0YWcpCisgICAgeworICAgICAgICBp
ZiAobV9wb3NpdGlvbiA+PSBtX2xlbmd0aCkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICAgICAgKnRhZyA9IHN0YXRpY19jYXN0PEFycmF5QnVmZmVyVmlld1N1YlRhZz4obV9idWZmZXJb
bV9wb3NpdGlvbisrXSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKwogICAgIGJvb2wg
cmVhZFN0cmluZyh2ODo6SGFuZGxlPHY4OjpWYWx1ZT4qIHZhbHVlKQogICAgIHsKICAgICAgICAg
dWludDMyX3QgbGVuZ3RoOwpAQCAtOTMyLDYgKzEzNTgsMTA3IEBAIHByaXZhdGU6CiAgICAgICAg
IHJldHVybiB0cnVlOwogICAgIH0KIAorICAgIFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IGRvUmVh
ZEFycmF5QnVmZmVyKCkKKyAgICB7CisgICAgICAgIHVpbnQzMl90IGJ5dGVMZW5ndGg7CisgICAg
ICAgIGlmICghZG9SZWFkVWludDMyKCZieXRlTGVuZ3RoKSkKKyAgICAgICAgICAgIHJldHVybiAw
OworICAgICAgICBpZiAobV9wb3NpdGlvbiArIGJ5dGVMZW5ndGggPiBtX2xlbmd0aCkKKyAgICAg
ICAgICAgIHJldHVybiAwOworICAgICAgICBjb25zdCB2b2lkKiBidWZmZXJTdGFydCA9IG1fYnVm
ZmVyICsgbV9wb3NpdGlvbjsKKyAgICAgICAgUmVmUHRyPEFycmF5QnVmZmVyPiBhcnJheUJ1ZmZl
ciA9IEFycmF5QnVmZmVyOjpjcmVhdGUoYnVmZmVyU3RhcnQsIGJ5dGVMZW5ndGgpOworICAgICAg
ICBtX3Bvc2l0aW9uICs9IGJ5dGVMZW5ndGg7CisgICAgICAgIHJldHVybiBhcnJheUJ1ZmZlci5y
ZWxlYXNlKCk7CisgICAgfQorCisgICAgYm9vbCByZWFkQXJyYXlCdWZmZXIodjg6OkhhbmRsZTx2
ODo6VmFsdWU+KiB2YWx1ZSkKKyAgICB7CisgICAgICAgIFJlZlB0cjxBcnJheUJ1ZmZlcj4gYXJy
YXlCdWZmZXIgPSBkb1JlYWRBcnJheUJ1ZmZlcigpOworICAgICAgICBpZiAoIWFycmF5QnVmZmVy
KQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAqdmFsdWUgPSB0b1Y4KGFycmF5
QnVmZmVyLnJlbGVhc2UoKSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIGJv
b2wgcmVhZEFycmF5QnVmZmVyVmlldyh2ODo6SGFuZGxlPHY4OjpWYWx1ZT4qIHZhbHVlLCBDb21w
b3NpdGVDcmVhdG9yJiBjcmVhdG9yKQorICAgIHsKKyAgICAgICAgQXJyYXlCdWZmZXJWaWV3U3Vi
VGFnIHN1YlRhZzsKKyAgICAgICAgdWludDMyX3QgYnl0ZU9mZnNldDsKKyAgICAgICAgdWludDMy
X3QgYnl0ZUxlbmd0aDsKKyAgICAgICAgUmVmUHRyPEFycmF5QnVmZmVyPiBhcnJheUJ1ZmZlcjsK
KyAgICAgICAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGFycmF5QnVmZmVyVjhWYWx1ZTsKKyAgICAg
ICAgaWYgKCFyZWFkQXJyYXlCdWZmZXJWaWV3U3ViVGFnKCZzdWJUYWcpKQorICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgICAgICBpZiAoIWRvUmVhZFVpbnQzMigmYnl0ZU9mZnNldCkpCisg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGlmICghZG9SZWFkVWludDMyKCZieXRl
TGVuZ3RoKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYgKCFjcmVhdG9y
LmNvbnN1bWVUb3BPZlN0YWNrKCZhcnJheUJ1ZmZlclY4VmFsdWUpKQorICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgICAgICBhcnJheUJ1ZmZlciA9IFY4QXJyYXlCdWZmZXI6OnRvTmF0aXZl
KGFycmF5QnVmZmVyVjhWYWx1ZS5Bczx2ODo6T2JqZWN0PigpKTsKKyAgICAgICAgaWYgKCFhcnJh
eUJ1ZmZlcikKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgc3dpdGNoIChzdWJU
YWcpIHsKKyAgICAgICAgY2FzZSBCeXRlQXJyYXlUYWc6CisgICAgICAgICAgICAqdmFsdWUgPSB0
b1Y4KEludDhBcnJheTo6Y3JlYXRlKGFycmF5QnVmZmVyLnJlbGVhc2UoKSwgYnl0ZU9mZnNldCwg
Ynl0ZUxlbmd0aCkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgVW5zaWduZWRC
eXRlQXJyYXlUYWc6CisgICAgICAgICAgICAqdmFsdWUgPSB0b1Y4KFVpbnQ4QXJyYXk6OmNyZWF0
ZShhcnJheUJ1ZmZlci5yZWxlYXNlKCksIGJ5dGVPZmZzZXQsIGJ5dGVMZW5ndGgpKTsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFNob3J0QXJyYXlUYWc6IHsKKyAgICAgICAgICAg
IHVpbnQzMl90IHNob3J0TGVuZ3RoID0gYnl0ZUxlbmd0aCAvIHNpemVvZihpbnQxNl90KTsKKyAg
ICAgICAgICAgIGlmIChzaG9ydExlbmd0aCAqIHNpemVvZihpbnQxNl90KSAhPSBieXRlTGVuZ3Ro
KQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICp2YWx1ZSA9IHRv
VjgoSW50MTZBcnJheTo6Y3JlYXRlKGFycmF5QnVmZmVyLnJlbGVhc2UoKSwgYnl0ZU9mZnNldCwg
c2hvcnRMZW5ndGgpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGNh
c2UgVW5zaWduZWRTaG9ydEFycmF5VGFnOiB7CisgICAgICAgICAgICB1aW50MzJfdCBzaG9ydExl
bmd0aCA9IGJ5dGVMZW5ndGggLyBzaXplb2YodWludDE2X3QpOworICAgICAgICAgICAgaWYgKHNo
b3J0TGVuZ3RoICogc2l6ZW9mKHVpbnQxNl90KSAhPSBieXRlTGVuZ3RoKQorICAgICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICp2YWx1ZSA9IHRvVjgoVWludDE2QXJyYXk6
OmNyZWF0ZShhcnJheUJ1ZmZlci5yZWxlYXNlKCksIGJ5dGVPZmZzZXQsIHNob3J0TGVuZ3RoKSk7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBjYXNlIEludEFycmF5VGFn
OiB7CisgICAgICAgICAgICB1aW50MzJfdCBpbnRMZW5ndGggPSBieXRlTGVuZ3RoIC8gc2l6ZW9m
KGludDMyX3QpOworICAgICAgICAgICAgaWYgKGludExlbmd0aCAqIHNpemVvZihpbnQzMl90KSAh
PSBieXRlTGVuZ3RoKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAg
ICp2YWx1ZSA9IHRvVjgoSW50MzJBcnJheTo6Y3JlYXRlKGFycmF5QnVmZmVyLnJlbGVhc2UoKSwg
Ynl0ZU9mZnNldCwgaW50TGVuZ3RoKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQor
ICAgICAgICBjYXNlIFVuc2lnbmVkSW50QXJyYXlUYWc6IHsKKyAgICAgICAgICAgIHVpbnQzMl90
IGludExlbmd0aCA9IGJ5dGVMZW5ndGggLyBzaXplb2YodWludDMyX3QpOworICAgICAgICAgICAg
aWYgKGludExlbmd0aCAqIHNpemVvZih1aW50MzJfdCkgIT0gYnl0ZUxlbmd0aCkKKyAgICAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAqdmFsdWUgPSB0b1Y4KFVpbnQzMkFy
cmF5OjpjcmVhdGUoYXJyYXlCdWZmZXIucmVsZWFzZSgpLCBieXRlT2Zmc2V0LCBpbnRMZW5ndGgp
KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGNhc2UgRmxvYXRBcnJh
eVRhZzogeworICAgICAgICAgICAgdWludDMyX3QgZmxvYXRMZW5ndGggPSBieXRlTGVuZ3RoIC8g
c2l6ZW9mKGZsb2F0KTsKKyAgICAgICAgICAgIGlmIChmbG9hdExlbmd0aCAqIHNpemVvZihmbG9h
dCkgIT0gYnl0ZUxlbmd0aCkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAg
ICAgICAqdmFsdWUgPSB0b1Y4KEZsb2F0MzJBcnJheTo6Y3JlYXRlKGFycmF5QnVmZmVyLnJlbGVh
c2UoKSwgYnl0ZU9mZnNldCwgZmxvYXRMZW5ndGgpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICB9CisgICAgICAgIGNhc2UgRG91YmxlQXJyYXlUYWc6IHsKKyAgICAgICAgICAgIHVpbnQz
Ml90IGZsb2F0TGVuZ3RoID0gYnl0ZUxlbmd0aCAvIHNpemVvZihkb3VibGUpOworICAgICAgICAg
ICAgaWYgKGZsb2F0TGVuZ3RoICogc2l6ZW9mKGRvdWJsZSkgIT0gYnl0ZUxlbmd0aCkKKyAgICAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAqdmFsdWUgPSB0b1Y4KEZsb2F0
NjRBcnJheTo6Y3JlYXRlKGFycmF5QnVmZmVyLnJlbGVhc2UoKSwgYnl0ZU9mZnNldCwgZmxvYXRM
ZW5ndGgpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGNhc2UgRGF0
YVZpZXdUYWc6CisgICAgICAgICAgICAqdmFsdWUgPSB0b1Y4KERhdGFWaWV3OjpjcmVhdGUoYXJy
YXlCdWZmZXIucmVsZWFzZSgpLCBieXRlT2Zmc2V0LCBieXRlTGVuZ3RoKSk7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICAgICAgfQorICAgICAgICAvLyBUaGUgdmFyaW91cyAqQXJyYXk6OmNyZWF0ZSgpIG1ldGhvZHMg
d2lsbCByZXR1cm4gbnVsbCBpZiB0aGUgcmFuZ2UgdGhlIHZpZXcgZXhwZWN0cyBpcworICAgICAg
ICAvLyBtaXNtYXRjaGVkIHdpdGggdGhlIHJhbmdlIHRoZSBidWZmZXIgY2FuIHByb3ZpZGUgb3Ig
aWYgdGhlIGJ5dGUgb2Zmc2V0IGlzIG5vdCBhbGlnbmVkCisgICAgICAgIC8vIHRvIHRoZSBzaXpl
IG9mIHRoZSBlbGVtZW50IHR5cGUuCisgICAgICAgIHJldHVybiAhdmFsdWUtPklzRW1wdHkoKTsK
KyAgICB9CisKICAgICBib29sIHJlYWRSZWdFeHAodjg6OkhhbmRsZTx2ODo6VmFsdWU+KiB2YWx1
ZSkKICAgICB7CiAgICAgICAgIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBwYXR0ZXJuOwpAQCAtMTAz
NywzNSArMTU2NCw2NyBAQCBwcml2YXRlOgogICAgIGNvbnN0IHVpbnQ4X3QqIG1fYnVmZmVyOwog
ICAgIGNvbnN0IHVuc2lnbmVkIG1fbGVuZ3RoOwogICAgIHVuc2lnbmVkIG1fcG9zaXRpb247Cisg
ICAgdWludDMyX3QgbV92ZXJzaW9uOwogfTsKIAogY2xhc3MgRGVzZXJpYWxpemVyIDogcHVibGlj
IENvbXBvc2l0ZUNyZWF0b3IgewogcHVibGljOgogICAgIGV4cGxpY2l0IERlc2VyaWFsaXplcihS
ZWFkZXImIHJlYWRlcikKICAgICAgICAgOiBtX3JlYWRlcihyZWFkZXIpCisgICAgICAgICwgbV92
ZXJzaW9uKDApCiAgICAgewogICAgIH0KIAogICAgIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBkZXNl
cmlhbGl6ZSgpCiAgICAgeworICAgICAgICBpZiAoIW1fcmVhZGVyLnJlYWRWZXJzaW9uKG1fdmVy
c2lvbikgfHwgbV92ZXJzaW9uID4gd2lyZUZvcm1hdFZlcnNpb24pCisgICAgICAgICAgICByZXR1
cm4gdjg6Ok51bGwoKTsKKyAgICAgICAgbV9yZWFkZXIuc2V0VmVyc2lvbihtX3ZlcnNpb24pOwog
ICAgICAgICB2ODo6SGFuZGxlU2NvcGUgc2NvcGU7CiAgICAgICAgIHdoaWxlICghbV9yZWFkZXIu
aXNFb2YoKSkgewogICAgICAgICAgICAgaWYgKCFkb0Rlc2VyaWFsaXplKCkpCiAgICAgICAgICAg
ICAgICAgcmV0dXJuIHY4OjpOdWxsKCk7CiAgICAgICAgIH0KLSAgICAgICAgaWYgKHN0YWNrRGVw
dGgoKSAhPSAxKQorICAgICAgICBpZiAoc3RhY2tEZXB0aCgpICE9IDEgfHwgbV9vYmplY3RSZWZl
cmVuY2VTdGFjay5zaXplKCkpCiAgICAgICAgICAgICByZXR1cm4gdjg6Ok51bGwoKTsKLSAgICAg
ICAgcmV0dXJuIHNjb3BlLkNsb3NlKGVsZW1lbnQoMCkpOworICAgICAgICB2ODo6SGFuZGxlPHY4
OjpWYWx1ZT4gcmVzdWx0ID0gc2NvcGUuQ2xvc2UoZWxlbWVudCgwKSk7CisgICAgICAgIHJldHVy
biByZXN1bHQ7CisgICAgfQorCisgICAgdmlydHVhbCBib29sIG5ld0FycmF5KHVpbnQzMl90IGxl
bmd0aCkKKyAgICB7CisgICAgICAgIHY4OjpMb2NhbDx2ODo6QXJyYXk+IGFycmF5ID0gdjg6OkFy
cmF5OjpOZXcobGVuZ3RoKTsKKyAgICAgICAgaWYgKGFycmF5LklzRW1wdHkoKSkKKyAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgb3BlbkNvbXBvc2l0ZShhcnJheSk7CisgICAgICAg
IHJldHVybiB0cnVlOworICAgIH0KKworICAgIHZpcnR1YWwgYm9vbCBjb25zdW1lVG9wT2ZTdGFj
ayh2ODo6SGFuZGxlPHY4OjpWYWx1ZT4qIG9iamVjdCkKKyAgICB7CisgICAgICAgIGlmIChzdGFj
a0RlcHRoKCkgPCAxKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAqb2JqZWN0
ID0gZWxlbWVudChzdGFja0RlcHRoKCkgLSAxKTsKKyAgICAgICAgcG9wKDEpOworICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICB9CiAKLSAgICB2aXJ0dWFsIGJvb2wgY3JlYXRlQXJyYXkodWludDMy
X3QgbGVuZ3RoLCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4qIHZhbHVlKQorICAgIHZpcnR1YWwgYm9v
bCBjb21wbGV0ZUFycmF5KHVpbnQzMl90IGxlbmd0aCwgdjg6OkhhbmRsZTx2ODo6VmFsdWU+KiB2
YWx1ZSkKICAgICB7CiAgICAgICAgIGlmIChsZW5ndGggPiBzdGFja0RlcHRoKCkpCiAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIHY4OjpMb2NhbDx2ODo6QXJyYXk+IGFycmF5ID0g
djg6OkFycmF5OjpOZXcobGVuZ3RoKTsKKyAgICAgICAgdjg6OkxvY2FsPHY4OjpBcnJheT4gYXJy
YXk7CisgICAgICAgIGlmIChtX3ZlcnNpb24gPiAwKSB7CisgICAgICAgICAgICB2ODo6TG9jYWw8
djg6OlZhbHVlPiBjb21wb3NpdGU7CisgICAgICAgICAgICBpZiAoIWNsb3NlQ29tcG9zaXRlKCZj
b21wb3NpdGUpKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIGFy
cmF5ID0gY29tcG9zaXRlLkFzPHY4OjpBcnJheT4oKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAg
ICAgICBhcnJheSA9IHY4OjpBcnJheTo6TmV3KGxlbmd0aCk7CiAgICAgICAgIGlmIChhcnJheS5J
c0VtcHR5KCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIGNvbnN0IGludCBk
ZXB0aCA9IHN0YWNrRGVwdGgoKSAtIGxlbmd0aDsKKyAgICAgICAgLy8gVGhlIFY4IEFQSSBlbnN1
cmVzIHNwYWNlIGV4aXN0cyBmb3IgYW55IGluZGV4IGFyZ3VtZW50IHRvIFNldDsgaXQgd2lsbCAo
ZWcpIHJlc2l6ZSBhcnJheXMgYXMgbmVjZXNzYXJ5LgogICAgICAgICBmb3IgKHVuc2lnbmVkIGkg
PSAwOyBpIDwgbGVuZ3RoOyArK2kpCiAgICAgICAgICAgICBhcnJheS0+U2V0KGksIGVsZW1lbnQo
ZGVwdGggKyBpKSk7CiAgICAgICAgIHBvcChsZW5ndGgpOwpAQCAtMTA3MywyMiArMTYzMiw2MyBA
QCBwdWJsaWM6CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAotICAgIHZpcnR1YWwgYm9v
bCBjcmVhdGVPYmplY3QodWludDMyX3QgbnVtUHJvcGVydGllcywgdjg6OkhhbmRsZTx2ODo6VmFs
dWU+KiB2YWx1ZSkKKyAgICB2aXJ0dWFsIGJvb2wgbmV3T2JqZWN0KCkKICAgICB7CiAgICAgICAg
IHY4OjpMb2NhbDx2ODo6T2JqZWN0PiBvYmplY3QgPSB2ODo6T2JqZWN0OjpOZXcoKTsKICAgICAg
ICAgaWYgKG9iamVjdC5Jc0VtcHR5KCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
ICAgIG9wZW5Db21wb3NpdGUob2JqZWN0KTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQor
CisgICAgdmlydHVhbCBib29sIGNvbXBsZXRlT2JqZWN0KHVpbnQzMl90IG51bVByb3BlcnRpZXMs
IHY4OjpIYW5kbGU8djg6OlZhbHVlPiogdmFsdWUpCisgICAgeworICAgICAgICB2ODo6TG9jYWw8
djg6Ok9iamVjdD4gb2JqZWN0OworICAgICAgICBpZiAobV92ZXJzaW9uID4gMCkgeworICAgICAg
ICAgICAgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gY29tcG9zaXRlOworICAgICAgICAgICAgaWYgKCFj
bG9zZUNvbXBvc2l0ZSgmY29tcG9zaXRlKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgICAgICAgICBvYmplY3QgPSBjb21wb3NpdGUuQXM8djg6Ok9iamVjdD4oKTsKKyAgICAg
ICAgfSBlbHNlCisgICAgICAgICAgICBvYmplY3QgPSB2ODo6T2JqZWN0OjpOZXcoKTsKKyAgICAg
ICAgaWYgKG9iamVjdC5Jc0VtcHR5KCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
ICAgIHJldHVybiBpbml0aWFsaXplT2JqZWN0KG9iamVjdCwgbnVtUHJvcGVydGllcywgdmFsdWUp
OwogICAgIH0KIAotICAgIHZpcnR1YWwgYm9vbCBjcmVhdGVTcGFyc2VBcnJheSh1aW50MzJfdCBu
dW1Qcm9wZXJ0aWVzLCB1aW50MzJfdCBsZW5ndGgsIHY4OjpIYW5kbGU8djg6OlZhbHVlPiogdmFs
dWUpCisgICAgdmlydHVhbCBib29sIGNvbXBsZXRlU3BhcnNlQXJyYXkodWludDMyX3QgbnVtUHJv
cGVydGllcywgdWludDMyX3QgbGVuZ3RoLCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4qIHZhbHVlKQog
ICAgIHsKLSAgICAgICAgdjg6OkxvY2FsPHY4OjpBcnJheT4gYXJyYXkgPSB2ODo6QXJyYXk6Ok5l
dyhsZW5ndGgpOworICAgICAgICB2ODo6TG9jYWw8djg6OkFycmF5PiBhcnJheTsKKyAgICAgICAg
aWYgKG1fdmVyc2lvbiA+IDApIHsKKyAgICAgICAgICAgIHY4OjpMb2NhbDx2ODo6VmFsdWU+IGNv
bXBvc2l0ZTsKKyAgICAgICAgICAgIGlmICghY2xvc2VDb21wb3NpdGUoJmNvbXBvc2l0ZSkpCisg
ICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgYXJyYXkgPSBjb21wb3Np
dGUuQXM8djg6OkFycmF5PigpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIGFycmF5ID0g
djg6OkFycmF5OjpOZXcobGVuZ3RoKTsKICAgICAgICAgaWYgKGFycmF5LklzRW1wdHkoKSkKICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgcmV0dXJuIGluaXRpYWxpemVPYmplY3Qo
YXJyYXksIG51bVByb3BlcnRpZXMsIHZhbHVlKTsKICAgICB9CiAKKyAgICB2aXJ0dWFsIHZvaWQg
cHVzaE9iamVjdFJlZmVyZW5jZShjb25zdCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4mIG9iamVjdCkK
KyAgICB7CisgICAgICAgIG1fb2JqZWN0UG9vbC5hcHBlbmQob2JqZWN0KTsKKyAgICB9CisKKyAg
ICB2aXJ0dWFsIGJvb2wgdHJ5R2V0T2JqZWN0RnJvbU9iamVjdFJlZmVyZW5jZSh1aW50MzJfdCBy
ZWZlcmVuY2UsIHY4OjpIYW5kbGU8djg6OlZhbHVlPiogb2JqZWN0KQorICAgIHsKKyAgICAgICAg
aWYgKHJlZmVyZW5jZSA+PSBtX29iamVjdFBvb2wuc2l6ZSgpKQorICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgICAgICAqb2JqZWN0ID0gbV9vYmplY3RQb29sW3JlZmVyZW5jZV07CisgICAg
ICAgIHJldHVybiBvYmplY3Q7CisgICAgfQorCisgICAgdmlydHVhbCB1aW50MzJfdCBvYmplY3RS
ZWZlcmVuY2VDb3VudCgpCisgICAgeworICAgICAgICByZXR1cm4gbV9vYmplY3RQb29sLnNpemUo
KTsKKyAgICB9CisKIHByaXZhdGU6CiAgICAgYm9vbCBpbml0aWFsaXplT2JqZWN0KHY4OjpIYW5k
bGU8djg6Ok9iamVjdD4gb2JqZWN0LCB1aW50MzJfdCBudW1Qcm9wZXJ0aWVzLCB2ODo6SGFuZGxl
PHY4OjpWYWx1ZT4qIHZhbHVlKQogICAgIHsKQEAgLTExMzEsOCArMTczMSwzMCBAQCBwcml2YXRl
OgogICAgICAgICByZXR1cm4gbV9zdGFja1tpbmRleF07CiAgICAgfQogCisgICAgdm9pZCBvcGVu
Q29tcG9zaXRlKGNvbnN0IHY4OjpMb2NhbDx2ODo6VmFsdWU+JiBvYmplY3QpCisgICAgeworICAg
ICAgICB1aW50MzJfdCBuZXdPYmplY3RSZWZlcmVuY2UgPSBtX29iamVjdFBvb2wuc2l6ZSgpOwor
ICAgICAgICBtX29iamVjdFJlZmVyZW5jZVN0YWNrLmFwcGVuZChuZXdPYmplY3RSZWZlcmVuY2Up
OworICAgICAgICBtX29iamVjdFBvb2wuYXBwZW5kKG9iamVjdCk7CisgICAgfQorCisgICAgYm9v
bCBjbG9zZUNvbXBvc2l0ZSh2ODo6SGFuZGxlPHY4OjpWYWx1ZT4qIG9iamVjdCkKKyAgICB7Cisg
ICAgICAgIGlmICghbV9vYmplY3RSZWZlcmVuY2VTdGFjay5zaXplKCkpCisgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgICAgIHVpbnQzMl90IG9iamVjdFJlZmVyZW5jZSA9IG1fb2JqZWN0
UmVmZXJlbmNlU3RhY2tbbV9vYmplY3RSZWZlcmVuY2VTdGFjay5zaXplKCkgLSAxXTsKKyAgICAg
ICAgbV9vYmplY3RSZWZlcmVuY2VTdGFjay5zaHJpbmsobV9vYmplY3RSZWZlcmVuY2VTdGFjay5z
aXplKCkgLSAxKTsKKyAgICAgICAgaWYgKG9iamVjdFJlZmVyZW5jZSA+PSBtX29iamVjdFBvb2wu
c2l6ZSgpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAqb2JqZWN0ID0gbV9v
YmplY3RQb29sW29iamVjdFJlZmVyZW5jZV07CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0K
KwogICAgIFJlYWRlciYgbV9yZWFkZXI7CiAgICAgVmVjdG9yPHY4OjpMb2NhbDx2ODo6VmFsdWU+
ID4gbV9zdGFjazsKKyAgICBWZWN0b3I8djg6OkhhbmRsZTx2ODo6VmFsdWU+ID4gbV9vYmplY3RQ
b29sOworICAgIFZlY3Rvcjx1aW50MzJfdD4gbV9vYmplY3RSZWZlcmVuY2VTdGFjazsKKyAgICB1
aW50MzJfdCBtX3ZlcnNpb247CiB9OwogCiB9IC8vIG5hbWVzcGFjZQpAQCAtMTIzMiwyMiArMTg1
NCwyOCBAQCBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSh2ODo6
SGFuZGxlPHY4OjpWYWx1ZT4gdmFsdWUsIGJvb2wmCiAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgIH0KICAgICB9Ci0gICAgaWYgKHN0YXR1cyA9PSBTZXJpYWxpemVyOjpJbnB1dEVycm9yKSB7
CisgICAgc3dpdGNoIChzdGF0dXMpIHsKKyAgICBjYXNlIFNlcmlhbGl6ZXI6OklucHV0RXJyb3I6
CisgICAgY2FzZSBTZXJpYWxpemVyOjpEYXRhQ2xvbmVFcnJvcjoKICAgICAgICAgLy8gSWYgdGhl
cmUgd2FzIGFuIGlucHV0IGVycm9yLCB0aHJvdyBhIG5ldyBleGNlcHRpb24gb3V0c2lkZQogICAg
ICAgICAvLyBvZiB0aGUgVHJ5Q2F0Y2ggc2NvcGUuCiAgICAgICAgIGRpZFRocm93ID0gdHJ1ZTsK
LSAgICAgICAgdGhyb3dFcnJvcihOT1RfU1VQUE9SVEVEX0VSUik7CisgICAgICAgIHRocm93RXJy
b3IoREFUQV9DTE9ORV9FUlIpOwogICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIGlmIChzdGF0
dXMgPT0gU2VyaWFsaXplcjo6SlNGYWlsdXJlKSB7CisgICAgY2FzZSBTZXJpYWxpemVyOjpKU0Zh
aWx1cmU6CiAgICAgICAgIC8vIElmIHRoZXJlIHdhcyBhIEpTIGZhaWx1cmUgKGJ1dCBubyBleGNl
cHRpb24pLCB0aGVyZSdzIG5vdAogICAgICAgICAvLyBtdWNoIHdlIGNhbiBkbyBleGNlcHQgZm9y
IHVud2luZGluZyB0aGUgQysrIHN0YWNrIGJ5CiAgICAgICAgIC8vIHByZXRlbmRpbmcgdGhlcmUg
d2FzIGEgSlMgZXhjZXB0aW9uLgogICAgICAgICBkaWRUaHJvdyA9IHRydWU7CiAgICAgICAgIHJl
dHVybjsKKyAgICBjYXNlIFNlcmlhbGl6ZXI6OlN1Y2Nlc3M6CisgICAgICAgIG1fZGF0YSA9IFN0
cmluZyhTdHJpbmdJbXBsOjphZG9wdCh3cml0ZXIuZGF0YSgpKSkuY3Jvc3NUaHJlYWRTdHJpbmco
KTsKKyAgICAgICAgcmV0dXJuOworICAgIGNhc2UgU2VyaWFsaXplcjo6SlNFeGNlcHRpb246Cisg
ICAgICAgIC8vIFdlIHNob3VsZCBuZXZlciBnZXQgaGVyZSBiZWNhdXNlIHRoaXMgY2FzZSB3YXMg
aGFuZGxlZCBhYm92ZS4KKyAgICAgICAgYnJlYWs7CiAgICAgfQotICAgIEFTU0VSVChzdGF0dXMg
PT0gU2VyaWFsaXplcjo6U3VjY2Vzcyk7Ci0gICAgbV9kYXRhID0gU3RyaW5nKFN0cmluZ0ltcGw6
OmFkb3B0KHdyaXRlci5kYXRhKCkpKS5jcm9zc1RocmVhZFN0cmluZygpOworICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOwogfQogCiBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OlNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZShjb25zdCBTdHJpbmcmIHdpcmVEYXRhKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvdjgvVjhCaW5kaW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4
L1Y4QmluZGluZy5jcHAKaW5kZXggMWJlOGFmNy4uZjZmNDRlOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvdjgvVjhCaW5kaW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9WOEJpbmRpbmcuY3BwCkBAIC0yODYsNiArMjg2LDE2IEBAIGJvb2wgaXNVbmRl
ZmluZWRPck51bGwodjg6OkhhbmRsZTx2ODo6VmFsdWU+IHZhbHVlKQogICAgIHJldHVybiB2YWx1
ZS0+SXNOdWxsKCkgfHwgdmFsdWUtPklzVW5kZWZpbmVkKCk7CiB9CiAKK2Jvb2wgaXNIb3N0T2Jq
ZWN0KHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gb2JqZWN0KQoreworICAgIC8vIElmIHRoZSBvYmpl
Y3QgaGFzIGFueSBpbnRlcm5hbCBmaWVsZHMsIHRoZW4gd2Ugd29uJ3QgYmUgYWJsZSB0byBzZXJp
YWxpemUgb3IgZGVzZXJpYWxpemUKKyAgICAvLyB0aGVtOyBjb252ZW5pZW50bHksIHRoaXMgaXMg
YWxzbyBhIHF1aWNrIHdheSB0byBkZXRlY3QgRE9NIHdyYXBwZXIgb2JqZWN0cywgYmVjYXVzZQor
ICAgIC8vIHRoZSBtZWNoYW5pc20gZm9yIHRoZXNlIHJlbGllcyBvbiBkYXRhIHN0b3JlZCBpbiB0
aGVzZSBmaWVsZHMuIFdlIHNob3VsZAorICAgIC8vIGNhdGNoIGV4dGVybmFsIGFycmF5IGRhdGEg
YW5kIGV4dGVybmFsIHBpeGVsIGRhdGEgYXMgYSBzcGVjaWFsIGNhc2UgKG5vdGluZyB0aGF0IENh
bnZhc1BpeGVsQXJyYXlzCisgICAgLy8gY2FuJ3QgYmUgc2VyaWFsaXplZCB3aXRob3V0IGJlaW5n
IHdyYXBwZWQgYnkgSW1hZ2VEYXRhIGFjY29yZGluZyB0byB0aGUgc3RhbmRhcmQpLgorICAgIHJl
dHVybiBvYmplY3QtPkludGVybmFsRmllbGRDb3VudCgpIHx8IG9iamVjdC0+SGFzSW5kZXhlZFBy
b3BlcnRpZXNJblBpeGVsRGF0YSgpIHx8IG9iamVjdC0+SGFzSW5kZXhlZFByb3BlcnRpZXNJbkV4
dGVybmFsQXJyYXlEYXRhKCk7Cit9CisKIHY4OjpIYW5kbGU8djg6OkJvb2xlYW4+IHY4Qm9vbGVh
bihib29sIHZhbHVlKQogewogICAgIHJldHVybiB2YWx1ZSA/IHY4OjpUcnVlKCkgOiB2ODo6RmFs
c2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4QmluZGluZy5o
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhCaW5kaW5nLmgKaW5kZXggMmFiZWE5YS4u
MDQ0NDljNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhCaW5kaW5n
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhCaW5kaW5nLmgKQEAgLTIyOSw2
ICsyMjksMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgYm9vbCBpc1VuZGVmaW5lZE9y
TnVsbCh2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdmFsdWUpOwogCisgICAgLy8gUmV0dXJucyB0cnVl
IGlmIHRoZSBwcm92aWRlZCBvYmplY3QgaXMgdG8gYmUgY29uc2lkZXJlZCBhICdob3N0IG9iamVj
dCcsIGFzIHVzZWQgaW4gdGhlCisgICAgLy8gSFRNTDUgc3RydWN0dXJlZCBjbG9uZSBhbGdvcml0
aG0uCisgICAgYm9vbCBpc0hvc3RPYmplY3Qodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pik7CisKICAg
ICB2ODo6SGFuZGxlPHY4OjpCb29sZWFuPiB2OEJvb2xlYW4oYm9vbCB2YWx1ZSk7CiAKICAgICBT
dHJpbmcgdG9XZWJDb3JlU3RyaW5nV2l0aE51bGxDaGVjayh2ODo6SGFuZGxlPHY4OjpWYWx1ZT4g
dmFsdWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4
RGF0YVZpZXdDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4
RGF0YVZpZXdDdXN0b20uY3BwCmluZGV4IGNiYjlkMjcuLjY2YzM5MjkgMTAwNzU1Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERhdGFWaWV3Q3VzdG9tLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhEYXRhVmlld0N1c3RvbS5jcHAK
QEAgLTQxLDYgKzQxLDEzIEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOERhdGFWaWV3Ojpjb25z
dHJ1Y3RvckNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiAgICAgaWYgKCFhcmdz
LklzQ29uc3RydWN0Q2FsbCgpKQogICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigiRE9NIG9iamVj
dCBjb25zdHJ1Y3RvciBjYW5ub3QgYmUgY2FsbGVkIGFzIGEgZnVuY3Rpb24iLCBWOFByb3h5OjpU
eXBlRXJyb3IpOwogCisgICAgaWYgKCFhcmdzLkxlbmd0aCgpKSB7CisgICAgICAgIC8vIHNlZSBj
b25zdHJ1Y3RXZWJHTEFycmF5IC0tIHdlIGRvbid0IHNlZW0gdG8gYmUgYWJsZSB0byBkaXN0aW5n
aXNoIGJldHdlZW4KKyAgICAgICAgLy8gJ25ldyBEYXRhVmlldygpJyBhbmQgdGhlIGNhbGwgdXNl
ZCB0byBjb25zdHJ1Y3QgdGhlIGNhY2hlZCBEYXRhVmlldyBvYmplY3QuCisgICAgICAgIFJlZlB0
cjxEYXRhVmlldz4gZGF0YVZpZXcgPSBEYXRhVmlldzo6Y3JlYXRlKDApOworICAgICAgICBWOERP
TVdyYXBwZXI6OnNldERPTVdyYXBwZXIoYXJncy5Ib2xkZXIoKSwgJmluZm8sIGRhdGFWaWV3Lmdl
dCgpKTsKKyAgICAgICAgcmV0dXJuIHRvVjgoZGF0YVZpZXcucmVsZWFzZSgpLCBhcmdzLkhvbGRl
cigpKTsKKyAgICB9CiAgICAgaWYgKGFyZ3NbMF0tPklzTnVsbCgpIHx8ICFWOEFycmF5QnVmZmVy
OjpIYXNJbnN0YW5jZShhcmdzWzBdKSkKICAgICAgICAgcmV0dXJuIFY4UHJveHk6OnRocm93VHlw
ZUVycm9yKCk7CiAgICAgcmV0dXJuIGNvbnN0cnVjdFdlYkdMQXJyYXlXaXRoQXJyYXlCdWZmZXJB
cmd1bWVudDxEYXRhVmlldywgY2hhcj4oYXJncywgJmluZm8sIHY4OjprRXh0ZXJuYWxCeXRlQXJy
YXksIGZhbHNlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01Db3JlRXhjZXB0
aW9uLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01Db3JlRXhjZXB0aW9uLmlkbAppbmRleCA5
NDU3MTJkLi5kYzUyNDBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NQ29yZUV4
Y2VwdGlvbi5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTUNvcmVFeGNlcHRpb24uaWRs
CkBAIC03NCw2ICs3NCwxMSBAQCBtb2R1bGUgY29yZSB7CiAgICAgICAgIGNvbnN0IHVuc2lnbmVk
IHNob3J0ICAgICAgQUJPUlRfRVJSICAgICAgICAgICAgICAgICAgICAgID0gMjA7CiAgICAgICAg
IGNvbnN0IHVuc2lnbmVkIHNob3J0ICAgICAgVVJMX01JU01BVENIX0VSUiAgICAgICAgICAgICAg
ID0gMjE7CiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0ICAgICAgUVVPVEFfRVhDRUVERURf
RVJSICAgICAgICAgICAgID0gMjI7CisgICAgICAgIC8vIFRJTUVPVVRfRVJSIGlzIGN1cnJlbnRs
eSB1bnVzZWQgYnV0IHdhcyBhZGRlZCBmb3IgY29tcGxldGVuZXNzLgorICAgICAgICBjb25zdCB1
bnNpZ25lZCBzaG9ydCAgICAgIFRJTUVPVVRfRVJSICAgICAgICAgICAgICAgICAgICA9IDIzOwor
ICAgICAgICAvLyBJTlZBTElEX05PREVfVFlQRV9FUlIgaXMgY3VycmVudGx5IHVudXNlZCBidXQg
d2FzIGFkZGVkIGZvciBjb21wbGV0ZW5lc3MuCisgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0
ICAgICAgSU5WQUxJRF9OT0RFX1RZUEVfRVJSICAgICAgICAgID0gMjQ7CisgICAgICAgIGNvbnN0
IHVuc2lnbmVkIHNob3J0ICAgICAgREFUQV9DTE9ORV9FUlIgICAgICAgICAgICAgICAgID0gMjU7
CiAgICAgfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V4Y2VwdGlvbkNv
ZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0V4Y2VwdGlvbkNvZGUuY3BwCmluZGV4IDQxOThi
NWUuLjZkMzU5OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FeGNlcHRpb25Db2Rl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXhjZXB0aW9uQ29kZS5jcHAKQEAgLTcyLDcg
KzcyLDEwIEBAIHN0YXRpYyBjb25zdCBjaGFyKiBjb25zdCBleGNlcHRpb25OYW1lc1tdID0gewog
ICAgICJORVRXT1JLX0VSUiIsCiAgICAgIkFCT1JUX0VSUiIsCiAgICAgIlVSTF9NSVNNQVRDSF9F
UlIiLAotICAgICJRVU9UQV9FWENFRURFRF9FUlIiCisgICAgIlFVT1RBX0VYQ0VFREVEX0VSUiIs
CisgICAgIlRJTUVPVVRfRVJSIiwKKyAgICAiSU5WQUxJRF9OT0RFX1RZUEVfRVJSIiwKKyAgICAi
REFUQV9DTE9ORV9FUlIiCiB9OwogCiBzdGF0aWMgY29uc3QgY2hhciogY29uc3QgZXhjZXB0aW9u
RGVzY3JpcHRpb25zW10gPSB7CkBAIC05OCw3ICsxMDEsMTAgQEAgc3RhdGljIGNvbnN0IGNoYXIq
IGNvbnN0IGV4Y2VwdGlvbkRlc2NyaXB0aW9uc1tdID0gewogICAgICJBIG5ldHdvcmsgZXJyb3Ig
b2NjdXJlZC4iLAogICAgICJUaGUgdXNlciBhYm9ydGVkIGEgcmVxdWVzdC4iLAogICAgICJBIHdv
cmtlciBnbG9iYWwgc2NvcGUgcmVwcmVzZW50ZWQgYW4gYWJzb2x1dGUgVVJMIHRoYXQgaXMgbm90
IGVxdWFsIHRvIHRoZSByZXN1bHRpbmcgYWJzb2x1dGUgVVJMLiIsCi0gICAgIkFuIGF0dGVtcHQg
d2FzIG1hZGUgdG8gYWRkIHNvbWV0aGluZyB0byBzdG9yYWdlIHRoYXQgZXhjZWVkZWQgdGhlIHF1
b3RhLiIKKyAgICAiQW4gYXR0ZW1wdCB3YXMgbWFkZSB0byBhZGQgc29tZXRoaW5nIHRvIHN0b3Jh
Z2UgdGhhdCBleGNlZWRlZCB0aGUgcXVvdGEuIiwKKyAgICAiQSB0aW1lb3V0IG9jY3VycmVkLiIs
CisgICAgIlRoZSBzdXBwbGllZCBub2RlIGlzIGludmFsaWQgb3IgaGFzIGFuIGludmFsaWQgYW5j
ZXN0b3IgZm9yIHRoaXMgb3BlcmF0aW9uLiIsCisgICAgIkFuIG9iamVjdCBjb3VsZCBub3QgYmUg
Y2xvbmVkLiIKIH07CiAKIHN0YXRpYyBjb25zdCBjaGFyKiBjb25zdCByYW5nZUV4Y2VwdGlvbk5h
bWVzW10gPSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXhjZXB0aW9uQ29kZS5o
IGIvU291cmNlL1dlYkNvcmUvZG9tL0V4Y2VwdGlvbkNvZGUuaAppbmRleCA5Y2VlNjZiLi5jZWE2
ZjY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXhjZXB0aW9uQ29kZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9FeGNlcHRpb25Db2RlLmgKQEAgLTU3LDE0ICs1NywxMCBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIE5FVFdPUktfRVJSID0gMTksCiAgICAgICAgIEFC
T1JUX0VSUiA9IDIwLAogICAgICAgICBVUkxfTUlTTUFUQ0hfRVJSID0gMjEsCi0gICAgICAgIFFV
T1RBX0VYQ0VFREVEX0VSUiA9IDIyCi0KLSAgICAgICAgLy8gSW50cm9kdWNlZCBpbiBGaWxlIEFQ
SToKLSAgICAgICAgLy8gaHR0cDovL3d3dy53My5vcmcvVFIvZmlsZS11cGxvYWQvI2Rmbi1maWxl
ZXJyb3IKLSNpZiBFTkFCTEUoQkxPQikgfHwgRU5BQkxFKEZJTEVfU1lTVEVNKQotICAgICAgICAs
IE5PVF9SRUFEQUJMRV9FUlIgPSAyNAotICAgICAgICAsIEVOQ09ESU5HX0VSUiA9IDI2Ci0jZW5k
aWYKKyAgICAgICAgUVVPVEFfRVhDRUVERURfRVJSID0gMjIsCisgICAgICAgIFRJTUVPVVRfRVJS
ID0gMjMsCisgICAgICAgIElOVkFMSURfTk9ERV9UWVBFX0VSUiA9IDI0LAorICAgICAgICBEQVRB
X0NMT05FX0VSUiA9IDI1CiAgICAgfTsKIAogICAgIGVudW0gRXhjZXB0aW9uVHlwZSB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9BcnJheUJ1ZmZlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9BcnJheUJ1ZmZlci5jcHAKaW5kZXggNzFjZmM2Mi4uZTgz
ZTAxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQXJyYXlCdWZmZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0FycmF5QnVmZmVyLmNwcApAQCAt
NDcsNyArNDcsNyBAQCBQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBBcnJheUJ1ZmZlcjo6Y3JlYXRl
KEFycmF5QnVmZmVyKiBvdGhlcikKICAgICByZXR1cm4gQXJyYXlCdWZmZXI6OmNyZWF0ZShvdGhl
ci0+ZGF0YSgpLCBvdGhlci0+Ynl0ZUxlbmd0aCgpKTsKIH0KIAotUGFzc1JlZlB0cjxBcnJheUJ1
ZmZlcj4gQXJyYXlCdWZmZXI6OmNyZWF0ZSh2b2lkKiBzb3VyY2UsIHVuc2lnbmVkIGJ5dGVMZW5n
dGgpCitQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBBcnJheUJ1ZmZlcjo6Y3JlYXRlKGNvbnN0IHZv
aWQqIHNvdXJjZSwgdW5zaWduZWQgYnl0ZUxlbmd0aCkKIHsKICAgICB2b2lkKiBkYXRhID0gdHJ5
QWxsb2NhdGUoYnl0ZUxlbmd0aCwgMSk7CiAgICAgaWYgKCFkYXRhKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQXJyYXlCdWZmZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL0FycmF5QnVmZmVyLmgKaW5kZXggZmY1ZTU5OS4uNDEzNWMzNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQXJyYXlCdWZmZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9BcnJheUJ1ZmZlci5oCkBAIC0zNSw3ICszNSw3IEBAIGNsYXNz
IEFycmF5QnVmZmVyIDogcHVibGljIFJlZkNvdW50ZWQ8QXJyYXlCdWZmZXI+IHsKICAgcHVibGlj
OgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBjcmVhdGUodW5zaWduZWQgbnVt
RWxlbWVudHMsIHVuc2lnbmVkIGVsZW1lbnRCeXRlU2l6ZSk7CiAgICAgc3RhdGljIFBhc3NSZWZQ
dHI8QXJyYXlCdWZmZXI+IGNyZWF0ZShBcnJheUJ1ZmZlciopOwotICAgIHN0YXRpYyBQYXNzUmVm
UHRyPEFycmF5QnVmZmVyPiBjcmVhdGUodm9pZCogc291cmNlLCB1bnNpZ25lZCBieXRlTGVuZ3Ro
KTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4gY3JlYXRlKGNvbnN0IHZvaWQq
IHNvdXJjZSwgdW5zaWduZWQgYnl0ZUxlbmd0aCk7CiAKICAgICB2b2lkKiBkYXRhKCk7CiAgICAg
Y29uc3Qgdm9pZCogZGF0YSgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvRGF0YVZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvRGF0YVZp
ZXcuY3BwCmluZGV4IGUwMDQ0M2QuLjNkYjA2ZDYgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL0RhdGFWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9EYXRhVmlldy5jcHAKQEAgLTQwLDYgKzQwLDE0IEBAIHVuaW9uIFZhbHVlIHsKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCitQYXNzUmVmUHRyPERhdGFWaWV3PiBEYXRhVmlldzo6Y3JlYXRlKHVu
c2lnbmVkIGxlbmd0aCkKK3sKKyAgICBSZWZQdHI8QXJyYXlCdWZmZXI+IGJ1ZmZlciA9IEFycmF5
QnVmZmVyOjpjcmVhdGUobGVuZ3RoLCBzaXplb2YodWludDhfdCkpOworICAgIGlmICghYnVmZmVy
LmdldCgpKQorICAgICAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gY3JlYXRlKGJ1ZmZlciwgMCwg
bGVuZ3RoKTsKK30KKwogUGFzc1JlZlB0cjxEYXRhVmlldz4gRGF0YVZpZXc6OmNyZWF0ZShQYXNz
UmVmUHRyPEFycmF5QnVmZmVyPiBidWZmZXIsIHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHVuc2lnbmVk
IGJ5dGVMZW5ndGgpCiB7CiAgICAgaWYgKGJ5dGVPZmZzZXQgPiBidWZmZXItPmJ5dGVMZW5ndGgo
KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0RhdGFWaWV3LmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9EYXRhVmlldy5oCmluZGV4IGE4YWJhNWMuLjVlODBm
OGMgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0RhdGFWaWV3LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvRGF0YVZpZXcuaApAQCAtMzQsNiArMzQsNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERhdGFWaWV3IDogcHVibGljIEFycmF5QnVm
ZmVyVmlldyB7CiBwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8RGF0YVZpZXc+IGNyZWF0
ZSh1bnNpZ25lZCBsZW5ndGgpOwogICAgIHN0YXRpYyBQYXNzUmVmUHRyPERhdGFWaWV3PiBjcmVh
dGUoUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4sIHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHVuc2lnbmVk
IGJ5dGVMZW5ndGgpOwogCiAgICAgdmlydHVhbCBib29sIGlzRGF0YVZpZXcoKSBjb25zdCB7IHJl
dHVybiB0cnVlOyB9Cg==
</data>
<flag name="review"
          id="95649"
          type_id="1"
          status="+"
          setter="levin"
    />
    <flag name="commit-queue"
          id="95650"
          type_id="3"
          status="-"
          setter="levin"
    />
          </attachment>
      

    </bug>

</bugzilla>