<?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>50137</bug_id>
          
          <creation_ts>2010-11-28 20:18:32 -0800</creation_ts>
          <short_desc>Support multiple correction candidates panel for misspelled word on Mac OS X.</short_desc>
          <delta_ts>2010-12-01 17:19:34 -0800</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>Mac</rep_platform>
          <op_sys>OS X 10.6</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jia Pu">jiapu.mail</reporter>
          <assigned_to name="Jia Pu">jiapu.mail</assigned_to>
          <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>dglazkov</cc>
    
    <cc>mitz</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>314247</commentid>
    <comment_count>0</comment_count>
    <who name="Jia Pu">jiapu.mail</who>
    <bug_when>2010-11-28 20:18:32 -0800</bug_when>
    <thetext>This patch is to bring WebKit editing into parity with that in AppKit. When caret is moved to the end of a word that is marked as misspelling, we will show a panel containing one or more suggestions. User can use left and right arrow key to choose the desired candidate. He can also dismiss the panel by pressing ESC key.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>314248</commentid>
    <comment_count>1</comment_count>
    <who name="Jia Pu">jiapu.mail</who>
    <bug_when>2010-11-28 20:18:50 -0800</bug_when>
    <thetext>&lt;rdar://problem/8568059&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>314255</commentid>
    <comment_count>2</comment_count>
      <attachid>74986</attachid>
    <who name="Jia Pu">jiapu.mail</who>
    <bug_when>2010-11-28 22:17:00 -0800</bug_when>
    <thetext>Created attachment 74986
Proposed patch (v1)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>314263</commentid>
    <comment_count>3</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2010-11-28 22:48:40 -0800</bug_when>
    <thetext>Attachment 74986 did not build on qt:
Build output: http://queues.webkit.org/results/6363100</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>314268</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-11-28 23:01:12 -0800</bug_when>
    <thetext>Attachment 74986 did not build on chromium:
Build output: http://queues.webkit.org/results/6400093</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>314275</commentid>
    <comment_count>5</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2010-11-28 23:41:05 -0800</bug_when>
    <thetext>Attachment 74986 did not build on win:
Build output: http://queues.webkit.org/results/6322095</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>314468</commentid>
    <comment_count>6</comment_count>
      <attachid>75037</attachid>
    <who name="Jia Pu">jiapu.mail</who>
    <bug_when>2010-11-29 09:33:34 -0800</bug_when>
    <thetext>Created attachment 75037
Proposed patch (v2)

Updated the patch to make the compiler on non-Mac platforms happy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>314473</commentid>
    <comment_count>7</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2010-11-29 09:51:18 -0800</bug_when>
    <thetext>Attachment 75037 did not build on qt:
Build output: http://queues.webkit.org/results/6299127</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>314479</commentid>
    <comment_count>8</comment_count>
      <attachid>75037</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-11-29 09:57:09 -0800</bug_when>
    <thetext>Comment on attachment 75037
Proposed patch (v2)

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

Looks good.

I’m going to say review- because there are a lot of small things worth improving, but it’s close to a review+.

&gt; WebCore/editing/Editor.cpp:95
&gt; +// This is for stopping compilers on non-Mac platform from complaing about unused functions, since these functions are used on Mac.

This comment is confusing. It’s true that these autocorrection-panel-only functions need to be inside an if, but no comment is needed.

Typo: &quot;complaing&quot;.

&gt; WebCore/editing/Editor.cpp:97
&gt; +static const Vector&lt;DocumentMarker::MarkerType&gt;&amp; getMarkerTypesForAutoCorrection()

In WebKit we don’t name this kind of function “get”. Also, autocorrection is a single word. The name should be markerTypesForAutocorrection().

&gt; WebCore/editing/Editor.cpp:100
&gt; +    DEFINE_STATIC_LOCAL(Vector&lt;DocumentMarker::MarkerType&gt;, markerTypesForAutoCorrection, ());
&gt; +    if (!markerTypesForAutoCorrection.size()) {

Better to use isEmpty() instead of size() for this. There’s also an even cleaner way to do it without an if statement by using a separate function that returns the vector, but I think it’s OK to leave it this way since other call sites don’t seem to use that way yet either.

&gt; WebCore/editing/Editor.cpp:114
&gt; +    Vector&lt;FloatQuad&gt;::const_iterator end = textQuads.end();
&gt; +    FloatRect totalBoundingBox;
&gt; +    for (Vector&lt;FloatQuad&gt;::const_iterator it = textQuads.begin(); it &lt; end; ++it)
&gt; +        totalBoundingBox.unite(it-&gt;boundingBox());

Generally we don’t iterate vectors using iterators. Instead we just use indexing. The iterators are provided for use when the algorithm is generic. Code should be more like this:

     size_t size = textQuads.size();
     for (size_t i = 0; i &lt; size; ++i)
        totalBoundingBox.unite(textQuads[i].boundingBox());

&gt; WebCore/editing/Editor.cpp:119
&gt; +static const Vector&lt;DocumentMarker::MarkerType&gt;&amp; getMarkerTypesForReplacement()

Same comment about function name.

&gt; WebCore/editing/Editor.cpp:122
&gt; +    if (!markerTypesForReplacement.size())

isEmpty rather than size.

&gt; WebCore/editing/Editor.cpp:535
&gt; +        if (((marker.type == DocumentMarker::CorrectionIndicator &amp;&amp; marker.description.length() &gt; 0) || marker.type == DocumentMarker::Spelling) &amp;&amp; static_cast&lt;int&gt;(marker.endOffset) == endOffset) {

In WebKit code we would normally say just length() rather than length() &gt; 0.

&gt; WebCore/editing/Editor.cpp:538
&gt; -            if (currentWord.length() &gt; 0 &amp;&amp; marker.description.length() &gt; 0) {
&gt; +            if (currentWord.length() &gt; 0) {

In WebKit code we would normally say just length() rather than length() &gt; 0.

&gt; WebCore/editing/Editor.cpp:546
&gt; +                if (marker.type == DocumentMarker::CorrectionIndicator) {
&gt; +                    m_correctionPanelInfo.m_replacementString = marker.description;
&gt; +                    startCorrectionPanelTimer(CorrectionPanelInfo::PanelTypeReversion);
&gt; +                } else {
&gt; +                    startCorrectionPanelTimer(CorrectionPanelInfo::PanelTypeSpellingSuggestions);
&gt; +                }

We never put braces around single line bodies. Some people would reverse the if expression so the non-braced half would come first, but the braces violate the style rule.

&gt; WebCore/editing/Editor.cpp:2480
&gt; +        FloatRect boundingBox = boundingBoxForRange(m_correctionPanelInfo.m_rangeToBeReplaced.get());

It would be better to compute the bounding box inside the if statement so it’s computed only if needed.

&gt; WebCore/editing/Editor.cpp:2482
&gt; +        TextCheckingParagraph paragraph(m_correctionPanelInfo.m_rangeToBeReplaced);
&gt; +        String paragraphText = plainText(paragraph.paragraphRange().get());

It might be easier to read this if these two lines were collapsed into a single line. The local variable doesn’t help make things clearer.

&gt; WebCore/editing/Editor.cpp:2485
&gt; +        if (suggestions.size() &gt; 0) {

This should probably be !suggestions.isEmpty().

Also, you could use break to avoid having to nest the rest of the code.

    if (suggestions.isEmpty())
        break;

&gt; WebCore/editing/Editor.cpp:2486
&gt; +            String topSuggestion = suggestions[0];

Could use suggestions.first() here instead if you like. Either way is probably OK.

&gt; WebCore/editing/Editor.cpp:2490
&gt; +            client()-&gt;showCorrectionPanel(m_correctionPanelInfo.m_panelType, boundingBox, m_correctionPanelInfo.m_replacedString,
&gt; +                                          topSuggestion, suggestions, this);

We don’t indent subsequent lines like this. Putting the entire statement on one line is one way to handle it. Another is to indent just one level (4 spaces).

&gt; WebCore/editing/Editor.cpp:2495
&gt; +    default:
&gt; +        break;

We normally omit a default case so the compiler can warn us if we forgot any of the cases in the switch.

&gt; WebCore/editing/Editor.cpp:2729
&gt; +        Vector&lt;DocumentMarker::MarkerType&gt;::const_iterator it = markerTypesToAdd.begin();
&gt; +        Vector&lt;DocumentMarker::MarkerType&gt;::const_iterator end = markerTypesToAdd.end();
&gt; +        for (; it != end; ++it)
&gt; +            replacementRange-&gt;startContainer()-&gt;document()-&gt;markers()-&gt;addMarker(replacementRange.get(), *it, m_correctionPanelInfo.m_replacementString);

Again, this sort of thing normally reads better with indexing for vectors. I think it makes sense to put the markers() pointer into a local variable to hoist it out of the loop:

    DocumentMarkerController* markers = replacementRange-&gt;startContainer()-&gt;document()-&gt;markers();
    size_t size = markerTypesToAdd.size();
    for (size_t i = 0; i &lt; size; ++i)
        markers-&gt;addMarker(replacementRange.get(), markerTypesToAdd[i], m_correctionPanelInfo.m_replacementString);

&gt; WebCore/editing/Editor.h:316
&gt; +    // If user confirmed a correction in the correction panel, correction has non-zero length; other wise it means that user has dismissed the panel.

I believe it is incorrect to use a semicolon here. Instead you should use a comma.

Typo: “other wise” instead of “otherwise”.

&gt; WebCore/page/EditorClient.h:204
&gt; -    virtual void getGuessesForWord(const String&amp;, Vector&lt;String&gt;&amp; guesses) = 0;
&gt; +    virtual void getGuessesForWord(const String&amp; word, Vector&lt;String&gt;&amp; guesses) = 0;
&gt; +    // Some spellchecker may be able to take advantage of paragraph context to more accurately identify the language.
&gt; +    virtual void getGuessesForWord(const String&amp; word, const String&amp; context, Vector&lt;String&gt;&amp; guesses) = 0;

Should probably be “spellcheckers” or spelling checkers”.

If both functions are going to be pure virtual, it doesn’t make sense to keep both of them. Since they are pure virtual all implementers of EditorClient have to be revised anyway. Callers can simply ignore the context argument.

I suggest adding the context argument and removing the comment. I don’t think the string “context” makes it clear enough exactly what the argument is. The comment could be used to explain what exactly “context” consists of.

&gt; WebKit/mac/WebCoreSupport/WebEditorClient.mm:885
&gt; +        default:
&gt; +            // Should never be here.
&gt; +            ASSERT(false);
&gt; +            break;

I’m surprised we are not getting uninitialized variable warnings from the compiler for this code path. Normally we would try to do this in a way that gets us both compile time warnings if we leave out a type and a runtime exception. This can be done by putting the conversion into a function, using return rather than break, using no default case, using ASSERT_NOT_REACHED outside the switch statement, and returning some default value in that case. I can find an example, but you probably can too.

&gt; WebKit/mac/WebCoreSupport/WebEditorClient.mm:888
&gt; +    NSMutableArray* alternativeStrings = nil;

Incorrect placement of the * here.

&gt; WebKit/mac/WebCoreSupport/WebEditorClient.mm:894
&gt; +        alternativeStrings = [NSMutableArray arrayWithCapacity:alternativeReplacementStrings.size()];
&gt; +        Vector&lt;String&gt;::const_iterator it = alternativeReplacementStrings.begin();
&gt; +        Vector&lt;String&gt;::const_iterator end = alternativeReplacementStrings.end();
&gt; +        for (; it != end; ++it)
&gt; +            [alternativeStrings addObject:(NSString*)*it];

Again, an index-based loop is better for Vector.

Again, incorrect placement of *.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>314482</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-11-29 10:07:52 -0800</bug_when>
    <thetext>Attachment 75037 did not build on chromium:
Build output: http://queues.webkit.org/results/6376095</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>314658</commentid>
    <comment_count>10</comment_count>
      <attachid>75064</attachid>
    <who name="Jia Pu">jiapu.mail</who>
    <bug_when>2010-11-29 14:36:00 -0800</bug_when>
    <thetext>Created attachment 75064
Proposed patch (v3)

Revised according to comment #8. Also fixed more compilation errors on non-Mac platforms.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>314661</commentid>
    <comment_count>11</comment_count>
      <attachid>75064</attachid>
    <who name="Jia Pu">jiapu.mail</who>
    <bug_when>2010-11-29 14:38:44 -0800</bug_when>
    <thetext>Comment on attachment 75064
Proposed patch (v3)

canceling review request. Spotted a couple of more issues that may cause compiler error. Will upload a new patch soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>314664</commentid>
    <comment_count>12</comment_count>
      <attachid>75065</attachid>
    <who name="Jia Pu">jiapu.mail</who>
    <bug_when>2010-11-29 14:46:27 -0800</bug_when>
    <thetext>Created attachment 75065
Proposed patch (v4)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>314671</commentid>
    <comment_count>13</comment_count>
      <attachid>75065</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-11-29 14:55:23 -0800</bug_when>
    <thetext>Comment on attachment 75065
Proposed patch (v4)

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

r=me assuming you get it building on all the platforms

&gt; WebCore/editing/Editor.cpp:2517
&gt; +    default:
&gt; +        break;

This should be omitted, sorry I missed it last time.

&gt; WebCore/editing/Editor.cpp:2543
&gt; +    m_correctionPanelInfo.m_rangeToBeReplaced.clear();

All the direct uses of fields in m_correctionPanelInfo make me suspect that it’s not really a class, but more like a struct, and so we should take the m_ prefixes off the data members at some point. Not right now, though. It’s also pretty weak to have “info” in the name; that’s a sort of programmer pause word, like “uh” in public speaking, that doesn’t add much value.

&gt; WebKit/mac/WebCoreSupport/WebEditorClient.mm:80
&gt; +static NSCorrectionBubbleType correctionBubbleTypeForCorrectionPanelType(CorrectionPanelInfo::PanelType panelType)

Could mark this inline since it’s only used in one place.

I think you could just mark name this function correctionBubbleType; C++ has overloading so there is no need to include the type of the argument.

&gt; WebKit/mac/WebCoreSupport/WebEditorClient.mm:896
&gt; +        switch (bubbleType) {
&gt; +            case NSCorrectionBubbleTypeCorrection:

WebKit coding style calls for lining up the case with switch rather than indenting.

&gt; WebKit/mac/WebCoreSupport/WebEditorClient.mm:915
&gt; +            default:
&gt; +                break;

Again, please omit the default so the compiler can catch it if we forget to handle an enum value.

&gt; WebKit/mac/WebCoreSupport/WebEditorClient.mm:962
&gt; +    if (context.length() &gt; 0) {

Normally we’d omit the “&gt; 0”.

&gt; WebKit/wince/WebCoreSupport/EditorClientWinCE.cpp:490
&gt; -void EditorClientWinCE::getGuessesForWord(const String&amp; word, WTF::Vector&lt;String&gt;&amp; guesses)
&gt; +    void EditorClientWinCE::getGuessesForWord(const String&amp; word, const String&amp; context, WTF::Vector&lt;String&gt;&amp; guesses)

Looks like the editor indented this for you. Need to fix it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>314676</commentid>
    <comment_count>14</comment_count>
      <attachid>75068</attachid>
    <who name="Jia Pu">jiapu.mail</who>
    <bug_when>2010-11-29 15:03:23 -0800</bug_when>
    <thetext>Created attachment 75068
Proposed patch (v5)

Fixed two style problems.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>314678</commentid>
    <comment_count>15</comment_count>
      <attachid>75068</attachid>
    <who name="Jia Pu">jiapu.mail</who>
    <bug_when>2010-11-29 15:05:36 -0800</bug_when>
    <thetext>Comment on attachment 75068
Proposed patch (v5)

Didn&apos;t see Darin&apos;s new comment. Will submit a new patch to address those issues.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>314684</commentid>
    <comment_count>16</comment_count>
      <attachid>75071</attachid>
    <who name="Jia Pu">jiapu.mail</who>
    <bug_when>2010-11-29 15:18:32 -0800</bug_when>
    <thetext>Created attachment 75071
Proposed patch (v6)

Addressed most issues raised in comment #13. And fixed some style problems.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>314686</commentid>
    <comment_count>17</comment_count>
    <who name="Jia Pu">jiapu.mail</who>
    <bug_when>2010-11-29 15:23:25 -0800</bug_when>
    <thetext>(In reply to comment #13)
&gt; (From update of attachment 75065 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=75065&amp;action=review
&gt; 
&gt; &gt; WebCore/editing/Editor.cpp:2543
&gt; &gt; +    m_correctionPanelInfo.m_rangeToBeReplaced.clear();
&gt; 
&gt; All the direct uses of fields in m_correctionPanelInfo make me suspect that it’s not really a class, but more like a struct, and so we should take the m_ prefixes off the data members at some point. Not right now, though. It’s also pretty weak to have “info” in the name; that’s a sort of programmer pause word, like “uh” in public speaking, that doesn’t add much value.
&gt; 

In Proposed patch (v6), I have addressed all issues you raised in comment #13 except this one. This type is indeed declared as a struct. I didn&apos;t know the conventional usage of m_ prefix here. Regarding the naming, this struct is really a collection of all information relevant to the handling of autocorrection panel. Do you have any suggestion on the naming? CorrectionPanelContext?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>314702</commentid>
    <comment_count>18</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-11-29 16:01:40 -0800</bug_when>
    <thetext>(In reply to comment #17)
&gt; This type is indeed declared as a struct. I didn&apos;t know the conventional usage of m_ prefix here.

Normally we use m_ for data members in classes, and don’t put any prefix on the names of data members in structures. This is not covered in the WebKit coding style guidelines document, but should be.

&gt; Regarding the naming, this struct is really a collection of all information relevant to the handling of autocorrection panel. Do you have any suggestion on the naming? CorrectionPanelContext?

I can’t think of a better name yet. I don’t think “context” is much better than “info”, and I’m pondering it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>314837</commentid>
    <comment_count>19</comment_count>
      <attachid>75071</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-11-29 20:22:22 -0800</bug_when>
    <thetext>Comment on attachment 75071
Proposed patch (v6)

Rejecting patch 75071 from commit-queue.

jpu@apple.com does not have committer permissions according to http://trac.webkit.org/browser/trunk/WebKitTools/Scripts/webkitpy/common/config/committers.py.

- If you do not have committer rights please read http://webkit.org/coding/contributing.html for instructions on how to use bugzilla flags.

- If you have committer rights please correct the error in WebKitTools/Scripts/webkitpy/common/config/committers.py by adding yourself to the file (no review needed).  The commit-queue restarts itself every 2 hours.  After restart the commit-queue will correctly respect your committer rights.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>315089</commentid>
    <comment_count>20</comment_count>
    <who name="Jia Pu">jiapu.mail</who>
    <bug_when>2010-11-30 09:17:10 -0800</bug_when>
    <thetext>Darin, please cq+ the latest patch. Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>315172</commentid>
    <comment_count>21</comment_count>
      <attachid>75071</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-11-30 11:08:14 -0800</bug_when>
    <thetext>Comment on attachment 75071
Proposed patch (v6)

Rejecting patch 75071 from commit-queue.

Failed to run &quot;[&apos;./WebKitTools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;--bot-id=eseidel-cq-sl&apos;, &apos;build&apos;, &apos;--no-clean&apos;, &apos;--no-update&apos;, &apos;--build-style=both&apos;]&quot; exit_code: 2
Last 500 characters of output:
XCODE_VERSION_MINOR 0320
    setenv YACC /Developer/usr/bin/yacc
    /bin/sh -c /Projects/CommitQueue/WebKitBuild/WebKit.build/Debug/WebKit.build/Script-5D88EE6C11407DE800BC3ABC.sh

** BUILD FAILED **


The following build commands failed:
WebKit:
	CompileC /Projects/CommitQueue/WebKitBuild/WebKit.build/Debug/WebKit.build/Objects-normal/x86_64/WebEditorClient.o /Projects/CommitQueue/WebKit/mac/WebCoreSupport/WebEditorClient.mm normal x86_64 objective-c++ com.apple.compilers.gcc.4_2
(1 failure)


Full output: http://queues.webkit.org/results/6378128</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>315180</commentid>
    <comment_count>22</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-11-30 11:18:31 -0800</bug_when>
    <thetext>(In reply to comment #21)
&gt; Full output: http://queues.webkit.org/results/6378128

Looks like we have some code that needs Mac OS X version #ifdef:

/Projects/CommitQueue/WebKit/mac/WebCoreSupport/WebEditorClient.mm:80: error: &apos;NSCorrectionBubbleType&apos; does not name a type
cc1objplus: warnings being treated as errors
/Projects/CommitQueue/WebKit/mac/WebCoreSupport/WebEditorClient.mm: In member function &apos;virtual void WebEditorClient::getGuessesForWord(const WTF::String&amp;, const WTF::String&amp;, WTF::Vector&lt;WTF::String, 0ul&gt;&amp;)&apos;:
/Projects/CommitQueue/WebKit/mac/WebCoreSupport/WebEditorClient.mm:961: warning: &apos;NSSpellChecker&apos; may not respond to &apos;-languageForWordRange:inString:orthography:&apos;
/Projects/CommitQueue/WebKit/mac/WebCoreSupport/WebEditorClient.mm:961: warning: (Messages without a matching method signature
/Projects/CommitQueue/WebKit/mac/WebCoreSupport/WebEditorClient.mm:961: warning: will be assumed to return &apos;id&apos; and accept
/Projects/CommitQueue/WebKit/mac/WebCoreSupport/WebEditorClient.mm:961: warning: &apos;...&apos; as arguments.)
/Projects/CommitQueue/WebKit/mac/WebCoreSupport/WebEditorClient.mm:961: warning: cannot pass objects of non-POD type &apos;const class WTF::String&apos; through &apos;...&apos;; call will abort at runtime</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>315257</commentid>
    <comment_count>23</comment_count>
      <attachid>75186</attachid>
    <who name="Jia Pu">jiapu.mail</who>
    <bug_when>2010-11-30 13:05:43 -0800</bug_when>
    <thetext>Created attachment 75186
Proposed patch (v7)

Fixed build failure on older Mac OS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>315625</commentid>
    <comment_count>24</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-12-01 07:05:59 -0800</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 75186:

animations/combo-transform-translate+scale.html
compositing/reflections/nested-reflection-animated.html

Please file bugs against the tests.  These tests were authored by cmarrin@apple.com, darin@apple.com, ojan@chromium.org, pol@apple.com, and simon.fraser@apple.com.  The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>315864</commentid>
    <comment_count>25</comment_count>
    <who name="Jia Pu">jiapu.mail</who>
    <bug_when>2010-12-01 13:47:43 -0800</bug_when>
    <thetext>This patch has been the queue for a day now. Is this normal? Shall I just wait?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>315956</commentid>
    <comment_count>26</comment_count>
      <attachid>75186</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-12-01 17:19:28 -0800</bug_when>
    <thetext>Comment on attachment 75186
Proposed patch (v7)

Clearing flags on attachment: 75186

Committed r73088: &lt;http://trac.webkit.org/changeset/73088&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>315957</commentid>
    <comment_count>27</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-12-01 17:19:34 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>74986</attachid>
            <date>2010-11-28 22:17:00 -0800</date>
            <delta_ts>2010-11-29 09:33:34 -0800</delta_ts>
            <desc>Proposed patch (v1)</desc>
            <filename>webkit_bug50137.patch</filename>
            <type>text/plain</type>
            <size>58471</size>
            <attacher name="Jia Pu">jiapu.mail</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3Mjc4MikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNjIgQEAKKzIwMTAtMTEtMjggIEppYSBQdSAgPGpwdUBhcHBsZS5jb20+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3VwcG9ydCBtdWx0
aXBsZSBjb3JyZWN0aW9uIGNhbmRpZGF0ZXMgcGFuZWwgZm9yIG1pc3NwZWxsZWQgd29yZCBvbiBN
YWMgT1MgWC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTUwMTM3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NTY4MDU5PgorCisgICAgICAgIFRlc3Q6
IHBsYXRmb3JtL21hYy9lZGl0aW5nL3NwZWxsaW5nL2RlbGV0ZS1hdXRvY29ycmVjdGVkLXdvcmQt
MS5odG1sCisgICAgICAgIE1hbnVhbCB0ZXN0OiBXZWJDb3JlL21hbnVhbC10ZXN0cy9hdXRvY29y
cmVjdGlvbi9kaXNtaXNzLW11bHRpcGxlLWd1ZXNzZXMuaHRtbAorICAgICAgICAgICAgICAgICAg
ICAgV2ViQ29yZS9tYW51YWwtdGVzdHMvYXV0b2NvcnJlY3Rpb24vc2VsZWN0LWZyb20tbXVsdGlw
bGUtZ3Vlc3Nlcy5odG1sCisKKyAgICAgICAgVGhpcyBwYXRjaCBpcyBmb3Igc3VwcG9ydGluZyBt
dWx0aXBsZSBjb3JyZWN0aW9uIHN1Z2dlc3Rpb24gcGFuZWwgb24gTWFjIE9TIFguCisgICAgICAg
IFRoZSBiZWhhdmlvciBhbmQgaW1wbGVtZW50YXRpb24gaXMgc2ltaWxhciB0byB0aGF0IG9mIHJl
dmVyc2lvbiBjYW5kaWF0ZSBwYW5lbC4KKworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOiBBZGRl
ZCBhbmQgcmVtb3ZlZCBzeW1ib2xzLgorCisgICAgICAgICogZWRpdGluZy9Db3JyZWN0aW9uUGFu
ZWxJbmZvLmg6IEFkZGVkIG5ldyBjb3JyZWN0aW9uIHBhbmVsIHR5cGUsIFBhbmVsVHlwZVNwZWxs
aW5nU3VnZ2VzdGlvbnMuCisKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpnZXRNYXJrZXJUeXBlc0ZvckF1dG9Db3JyZWN0aW9uKTogQ29udmVuaWVudCBm
dW5jdGlvbiBmb3IgZ2V0dGluZyBtYXJrZXIgdHlwZXMgdG8KKyAgICAgICAgICBiZSBhZGRlZCB0
byBhdXRvY29ycmVjdGVkIHdvcmQuCisgICAgICAgIChXZWJDb3JlOjpnZXRNYXJrZXJUeXBlc0Zv
clJlcGxhY2VtZW50KTogQ29udmVuaWVudCBmdW5jdGlvbiBmb3IgZ2V0dGluZyBtYXJrZXIgdHlw
ZXMgdG8KKyAgICAgICAgICBiZSBhZGRlZCB0byB3b3JkIHRoYXQgaGFzIGJlZW4gcmVwbGFjZWQg
YnkgdmFyaW91cyBjb3JyZWN0aW9uIHBhbmVsLgorICAgICAgICAoV2ViQ29yZTo6Ym91bmRpbmdC
b3hGb3JSYW5nZSk6IENvbnZlbmllbnQgZnVuY3Rpb24gZm9yIGNhbGN1bGF0aW5nIHRoZSBib3Vu
ZGluZyBib3ggb2YgYSByYW5nZS4KKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6cmVzcG9uZFRv
Q2hhbmdlZFNlbGVjdGlvbik6IEFkZGVkIGNvZGUgdG8gdHJpZ2dlciB0aW1lciBmb3IgbXVsdGlw
bGUKKyAgICAgICAgICBjYW5kaWRhdGUgcGFuZWwuCisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6
Om1hcmtNaXNzcGVsbGluZ3NBZnRlclR5cGluZ1RvV29yZCk6IEFkb3B0ZWQgbmV3IHNpZ25hdHVy
ZSBvZiBhcHBseUNvcnJlY3Rpb25QYW5lbEluZm8oKS4KKyAgICAgICAgKFdlYkNvcmU6OkVkaXRv
cjo6bWFya0FsbE1pc3NwZWxsaW5nc0FuZEJhZEdyYW1tYXJJblJhbmdlcyk6IERpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6RWRpdG9yOjpjb3JyZWN0aW9uUGFuZWxUaW1lckZpcmVkKTogQWRkZWQg
Y29kZSB0byBoYW5kbGUgbmV3IG11bHRpcGxlLWNhbmRpZGF0ZSBwYW5lbC4KKyAgICAgICAgKFdl
YkNvcmU6OkVkaXRvcjo6aGFuZGxlQ29ycmVjdGlvblBhbmVsUmVzdWx0KTogUmVwbGFjZWQgaGFu
ZGxlUmVqZWN0ZWRDb3JyZWN0aW9uKCksIHNpbmNlCisgICAgICAgICAgd2l0aCBuZXcgQXBwS2l0
IGNvcnJlY3Rpb24gcGFuZWwgQVBJLCBub3Qgb25seSByZWplY3Rpb24sIGJ1dCBhbHNvIGNvbmZp
cm1hdGlvbiBjYW4gYmUKKyAgICAgICAgICBoYW5kbGVkIGluIGNhbGxiYWNrLgorICAgICAgICAo
V2ViQ29yZTo6RWRpdG9yOjpzdG9wQ29ycmVjdGlvblBhbmVsVGltZXIpOiBNb3ZlZCB0aGUgY29k
ZSB0aGF0IGNsZWFycyBjb3JyZWN0aW9uIHBhbmVsIGluZm8KKyAgICAgICAgICBmcm9tIGRpc21p
c3NDb3JyZWN0aW9uUGFuZWwoKSB0byB0aGlzIGZ1bmN0aW9uIHRvIGZpeCBhIGJ1ZyB0aGF0IHdv
dWxkIG9jY3VyIHdoZW4gZGVsZXRpbmcKKyAgICAgICAgICBhdXRvY29ycmVjdGVkIHdvcmQuCisg
ICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OmRpc21pc3NDb3JyZWN0aW9uUGFuZWwpOiBEaXR0by4K
KyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6YXBwbHlDb3JyZWN0aW9uUGFuZWxJbmZvKTogQWRk
ZWQgY29kZSB0byBoYW5kbGUgbmV3IG11bHRpcGxlIHN1Z2dlc3Rpb24gcGFuZWwuCisKKyAgICAg
ICAgKiBlZGl0aW5nL0VkaXRvci5oOiBSZXBsYWNlZCBoYW5kbGVSZWplY3RlZENvcnJlY3Rpb24o
KSB3aXRoIGhhbmRsZUNvcnJlY3Rpb25QYW5lbFJlc3VsdCgpLgorICAgICAgICAgIENoYW5nZWQg
dGhlIHNpZ25hdHVyZSBvZiBhcHBseUNvcnJlY3Rpb25QYW5lbEluZm8oKSB0byBoYW5sZGUgbmV3
IGNvcnJlY3Rpb24gcGFuZWwgdHlwZS4KKworICAgICAgICAqIGVkaXRpbmcvVGV4dENoZWNraW5n
SGVscGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRDaGVja2luZ0hlbHBlcjo6Z3Vlc3Nl
c0Zvck1pc3NwZWxsZWRPclVuZ3JhbW1hdGljYWxSYW5nZSk6IEFkb3B0ZWQgbmV3IHNpZ25hdHVy
ZQorICAgICAgICAgIG9mIEVkaXRvckNsaWVudDo6Z2V0R3Vlc3Nlc0ZvcldvcmQoKS4KKworICAg
ICAgICAqIGVkaXRpbmcvVGV4dENoZWNraW5nSGVscGVyLmg6IE1hZGUgcGFyYWdyYXBoUmFuZ2Uo
KSBwdWJsaWMuCisKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmg6CisgICAgICAgIChX
ZWJDb3JlOjpFbXB0eUVkaXRvckNsaWVudDo6c2hvd0NvcnJlY3Rpb25QYW5lbCk6IEFkb3B0ZWQg
bmV3IHNpZ25hdHVyZSBkZWZpbmVkIGluIGJhc2UgY2xhc3MuCisgICAgICAgIChXZWJDb3JlOjpF
bXB0eUVkaXRvckNsaWVudDo6Z2V0R3Vlc3Nlc0ZvcldvcmQpOiBkaXR0by4KKworICAgICAgICAq
IG1hbnVhbC10ZXN0cy9hdXRvY29ycmVjdGlvbi9kaXNtaXNzLW11bHRpcGxlLWd1ZXNzZXMuaHRt
bDogQWRkZWQuCisgICAgICAgICogbWFudWFsLXRlc3RzL2F1dG9jb3JyZWN0aW9uL3NlbGVjdC1m
cm9tLW11bHRpcGxlLWd1ZXNzZXMuaHRtbDogQWRkZWQuCisKKyAgICAgICAgKiBwYWdlL0VkaXRv
ckNsaWVudC5oOiBDaGFuZ2VkIHNob3dDb3JyZWN0aW9uUGFuZWwoKSB0byBhbGxvdyBwYXNzaW5n
IG11bHRpcGxlIGNvcnJlY3Rpb24KKyAgICAgICAgICBjYW5kaWRhdGVzLiBEZWNsYXJlZCBhIG5l
dyBnZXRHdWVzc2VzRm9yV29yZCgpIHRvIGFsbG93IHBhc3NpbmcgaW4gY29udGV4dHVhbCB0ZXh0
IGZvcgorICAgICAgICAgIGJldHRlciBjb3JyZWN0aW9uIHN1Z2dlc3Rpb25zIChmb3IgdGhvc2Ug
c3BlbGxjaGVja2VycyB0aGF0IHV0aWxpemVzIHN1Y2ggY29udGV4dHVhbCBpbmZvcm1hdGlvbiku
CisKIDIwMTAtMTEtMjMgIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgS2VudCBUYW11cmEuCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUuZXhw
LmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS5leHAuaW4JKHJldmlzaW9uIDcyNzgy
KQorKysgV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgkod29ya2luZyBjb3B5KQpAQCAtNjgxLDEwICs2
ODEsMTAgQEAgX19aTjdXZWJDb3JlNkVkaXRvcjIxaXNTZWxlY3Rpb25NaXNzcGVsbAogX19aTjdX
ZWJDb3JlNkVkaXRvcjIzc2V0QmFzZVdyaXRpbmdEaXJlY3Rpb25FTlNfMTZXcml0aW5nRGlyZWN0
aW9uRQogX19aTjdXZWJDb3JlNkVkaXRvcjI0YWR2YW5jZVRvTmV4dE1pc3NwZWxsaW5nRWIKIF9f
Wk43V2ViQ29yZTZFZGl0b3IyNGNvbXB1dGVBbmRTZXRUeXBpbmdTdHlsZUVQTlNfMTlDU1NTdHls
ZURlY2xhcmF0aW9uRU5TXzEwRWRpdEFjdGlvbkUKLV9fWk43V2ViQ29yZTZFZGl0b3IyNGhhbmRs
ZVJlamVjdGVkQ29ycmVjdGlvbkV2CiBfX1pON1dlYkNvcmU2RWRpdG9yMjRpc1NlbGVjdGlvblVu
Z3JhbW1hdGljYWxFdgogX19aTjdXZWJDb3JlNkVkaXRvcjI2ZGVjcmVhc2VTZWxlY3Rpb25MaXN0
TGV2ZWxFdgogX19aTjdXZWJDb3JlNkVkaXRvcjI2aW5jcmVhc2VTZWxlY3Rpb25MaXN0TGV2ZWxF
dgorX19aTjdXZWJDb3JlNkVkaXRvcjI3aGFuZGxlQ29ycmVjdGlvblBhbmVsUmVzdWx0RVJLTjNX
VEY2U3RyaW5nRQogX19aTjdXZWJDb3JlNkVkaXRvcjI5Y2FuRGVjcmVhc2VTZWxlY3Rpb25MaXN0
TGV2ZWxFdgogX19aTjdXZWJDb3JlNkVkaXRvcjI5Y2FuSW5jcmVhc2VTZWxlY3Rpb25MaXN0TGV2
ZWxFdgogX19aTjdXZWJDb3JlNkVkaXRvcjMwYXBwbHlQYXJhZ3JhcGhTdHlsZVRvU2VsZWN0aW9u
RVBOU18xOUNTU1N0eWxlRGVjbGFyYXRpb25FTlNfMTBFZGl0QWN0aW9uRQpJbmRleDogV2ViQ29y
ZS9lZGl0aW5nL0NvcnJlY3Rpb25QYW5lbEluZm8uaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Vk
aXRpbmcvQ29ycmVjdGlvblBhbmVsSW5mby5oCShyZXZpc2lvbiA3Mjc4MikKKysrIFdlYkNvcmUv
ZWRpdGluZy9Db3JyZWN0aW9uUGFuZWxJbmZvLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDcgKzQ0
LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogc3RydWN0IENvcnJlY3Rpb25QYW5lbEluZm8gewog
ICAgIGVudW0gUGFuZWxUeXBlIHsKICAgICAgICAgUGFuZWxUeXBlQ29ycmVjdGlvbiA9IDAsCi0g
ICAgICAgIFBhbmVsVHlwZVJldmVyc2lvbgorICAgICAgICBQYW5lbFR5cGVSZXZlcnNpb24sCisg
ICAgICAgIFBhbmVsVHlwZVNwZWxsaW5nU3VnZ2VzdGlvbnMKICAgICB9OwogCiAgICAgUmVmUHRy
PFJhbmdlPiBtX3JhbmdlVG9CZVJlcGxhY2VkOwpJbmRleDogV2ViQ29yZS9lZGl0aW5nL0VkaXRv
ci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAJKHJldmlzaW9u
IDcyNzgyKQorKysgV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTkyLDYgKzkyLDM1IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpc0FtYmlndW91c0JvdW5kYXJ5Q2gK
ICAgICByZXR1cm4gY2hhcmFjdGVyID09ICdcJycgfHwgY2hhcmFjdGVyID09IHJpZ2h0U2luZ2xl
UXVvdGF0aW9uTWFyayB8fCBjaGFyYWN0ZXIgPT0gaGVicmV3UHVuY3R1YXRpb25HZXJzaGF5aW07
CiB9CiAKK3N0YXRpYyBjb25zdCBWZWN0b3I8RG9jdW1lbnRNYXJrZXI6Ok1hcmtlclR5cGU+JiBn
ZXRNYXJrZXJUeXBlc0ZvckF1dG9Db3JyZWN0aW9uKCkKK3sKKyAgICBERUZJTkVfU1RBVElDX0xP
Q0FMKFZlY3RvcjxEb2N1bWVudE1hcmtlcjo6TWFya2VyVHlwZT4sIG1hcmtlclR5cGVzRm9yQXV0
b0NvcnJlY3Rpb24sICgpKTsKKyAgICBpZiAoIW1hcmtlclR5cGVzRm9yQXV0b0NvcnJlY3Rpb24u
c2l6ZSgpKSB7CisgICAgICAgIG1hcmtlclR5cGVzRm9yQXV0b0NvcnJlY3Rpb24uYXBwZW5kKERv
Y3VtZW50TWFya2VyOjpSZXBsYWNlbWVudCk7CisgICAgICAgIG1hcmtlclR5cGVzRm9yQXV0b0Nv
cnJlY3Rpb24uYXBwZW5kKERvY3VtZW50TWFya2VyOjpDb3JyZWN0aW9uSW5kaWNhdG9yKTsKKyAg
ICB9CisgICAgcmV0dXJuIG1hcmtlclR5cGVzRm9yQXV0b0NvcnJlY3Rpb247Cit9CisKK3N0YXRp
YyBjb25zdCBWZWN0b3I8RG9jdW1lbnRNYXJrZXI6Ok1hcmtlclR5cGU+JiBnZXRNYXJrZXJUeXBl
c0ZvclJlcGxhY2VtZW50KCkKK3sKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFZlY3RvcjxEb2N1
bWVudE1hcmtlcjo6TWFya2VyVHlwZT4sIG1hcmtlclR5cGVzRm9yUmVwbGFjZW1lbnQsICgpKTsK
KyAgICBpZiAoIW1hcmtlclR5cGVzRm9yUmVwbGFjZW1lbnQuc2l6ZSgpKQorICAgICAgICBtYXJr
ZXJUeXBlc0ZvclJlcGxhY2VtZW50LmFwcGVuZChEb2N1bWVudE1hcmtlcjo6UmVwbGFjZW1lbnQp
OworICAgIHJldHVybiBtYXJrZXJUeXBlc0ZvclJlcGxhY2VtZW50OworfQorCitzdGF0aWMgRmxv
YXRSZWN0IGJvdW5kaW5nQm94Rm9yUmFuZ2UoUmFuZ2UqIHJhbmdlKQoreworICAgIFZlY3RvcjxG
bG9hdFF1YWQ+IHRleHRRdWFkczsKKyAgICByYW5nZS0+Z2V0Qm9yZGVyQW5kVGV4dFF1YWRzKHRl
eHRRdWFkcyk7CisgICAgVmVjdG9yPEZsb2F0UXVhZD46OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IHRl
eHRRdWFkcy5lbmQoKTsKKyAgICBGbG9hdFJlY3QgdG90YWxCb3VuZGluZ0JveDsKKyAgICBmb3Ig
KFZlY3RvcjxGbG9hdFF1YWQ+Ojpjb25zdF9pdGVyYXRvciBpdCA9IHRleHRRdWFkcy5iZWdpbigp
OyBpdCA8IGVuZDsgKytpdCkKKyAgICAgICAgdG90YWxCb3VuZGluZ0JveC51bml0ZShpdC0+Ym91
bmRpbmdCb3goKSk7CisgICAgcmV0dXJuIHRvdGFsQm91bmRpbmdCb3g7Cit9CisKIC8vIFdoZW4g
YW4gZXZlbnQgaGFuZGxlciBoYXMgbW92ZWQgdGhlIHNlbGVjdGlvbiBvdXRzaWRlIG9mIGEgdGV4
dCBjb250cm9sCiAvLyB3ZSBzaG91bGQgdXNlIHRoZSB0YXJnZXQgY29udHJvbCdzIHNlbGVjdGlv
biBmb3IgdGhpcyBlZGl0aW5nIG9wZXJhdGlvbi4KIFZpc2libGVTZWxlY3Rpb24gRWRpdG9yOjpz
ZWxlY3Rpb25Gb3JDb21tYW5kKEV2ZW50KiBldmVudCkKQEAgLTUwMCwxMyArNTI5LDE4IEBAIHZv
aWQgRWRpdG9yOjpyZXNwb25kVG9DaGFuZ2VkU2VsZWN0aW9uKGMKICAgICBzaXplX3QgbWFya2Vy
Q291bnQgPSBtYXJrZXJzLnNpemUoKTsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1hcmtl
ckNvdW50OyArK2kpIHsKICAgICAgICAgY29uc3QgRG9jdW1lbnRNYXJrZXImIG1hcmtlciA9IG1h
cmtlcnNbaV07Ci0gICAgICAgIGlmIChtYXJrZXIudHlwZSA9PSBEb2N1bWVudE1hcmtlcjo6Q29y
cmVjdGlvbkluZGljYXRvciAmJiBzdGF0aWNfY2FzdDxpbnQ+KG1hcmtlci5lbmRPZmZzZXQpID09
IGVuZE9mZnNldCkgeworICAgICAgICBpZiAoKChtYXJrZXIudHlwZSA9PSBEb2N1bWVudE1hcmtl
cjo6Q29ycmVjdGlvbkluZGljYXRvciAmJiBtYXJrZXIuZGVzY3JpcHRpb24ubGVuZ3RoKCkgPiAw
KSB8fCBtYXJrZXIudHlwZSA9PSBEb2N1bWVudE1hcmtlcjo6U3BlbGxpbmcpICYmIHN0YXRpY19j
YXN0PGludD4obWFya2VyLmVuZE9mZnNldCkgPT0gZW5kT2Zmc2V0KSB7CiAgICAgICAgICAgICBS
ZWZQdHI8UmFuZ2U+IHdvcmRSYW5nZSA9IFJhbmdlOjpjcmVhdGUoZnJhbWUoKS0+ZG9jdW1lbnQo
KSwgbm9kZSwgbWFya2VyLnN0YXJ0T2Zmc2V0LCBub2RlLCBtYXJrZXIuZW5kT2Zmc2V0KTsKICAg
ICAgICAgICAgIFN0cmluZyBjdXJyZW50V29yZCA9IHBsYWluVGV4dCh3b3JkUmFuZ2UuZ2V0KCkp
OwotICAgICAgICAgICAgaWYgKGN1cnJlbnRXb3JkLmxlbmd0aCgpID4gMCAmJiBtYXJrZXIuZGVz
Y3JpcHRpb24ubGVuZ3RoKCkgPiAwKSB7CisgICAgICAgICAgICBpZiAoY3VycmVudFdvcmQubGVu
Z3RoKCkgPiAwKSB7CiAgICAgICAgICAgICAgICAgbV9jb3JyZWN0aW9uUGFuZWxJbmZvLm1fcmFu
Z2VUb0JlUmVwbGFjZWQgPSB3b3JkUmFuZ2U7Ci0gICAgICAgICAgICAgICAgbV9jb3JyZWN0aW9u
UGFuZWxJbmZvLm1fcmVwbGFjZW1lbnRTdHJpbmcgPSBtYXJrZXIuZGVzY3JpcHRpb247Ci0gICAg
ICAgICAgICAgICAgc3RhcnRDb3JyZWN0aW9uUGFuZWxUaW1lcihDb3JyZWN0aW9uUGFuZWxJbmZv
OjpQYW5lbFR5cGVSZXZlcnNpb24pOworICAgICAgICAgICAgICAgIG1fY29ycmVjdGlvblBhbmVs
SW5mby5tX3JlcGxhY2VkU3RyaW5nID0gY3VycmVudFdvcmQ7CisgICAgICAgICAgICAgICAgaWYg
KG1hcmtlci50eXBlID09IERvY3VtZW50TWFya2VyOjpDb3JyZWN0aW9uSW5kaWNhdG9yKSB7Cisg
ICAgICAgICAgICAgICAgICAgIG1fY29ycmVjdGlvblBhbmVsSW5mby5tX3JlcGxhY2VtZW50U3Ry
aW5nID0gbWFya2VyLmRlc2NyaXB0aW9uOworICAgICAgICAgICAgICAgICAgICBzdGFydENvcnJl
Y3Rpb25QYW5lbFRpbWVyKENvcnJlY3Rpb25QYW5lbEluZm86OlBhbmVsVHlwZVJldmVyc2lvbik7
CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgc3RhcnRDb3Jy
ZWN0aW9uUGFuZWxUaW1lcihDb3JyZWN0aW9uUGFuZWxJbmZvOjpQYW5lbFR5cGVTcGVsbGluZ1N1
Z2dlc3Rpb25zKTsKKyAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgfQpAQCAtMjAxOSw3ICsyMDUzLDcgQEAgdm9pZCBFZGl0b3I6Om1h
cmtNaXNzcGVsbGluZ3NBZnRlclR5cGluZwogICAgICAgICAgICAgZG9BcHBseUNvcnJlY3Rpb24g
PSBmYWxzZTsKICAgICB9CiAgICAgaWYgKGRvQXBwbHlDb3JyZWN0aW9uKQotICAgICAgICBhcHBs
eUNvcnJlY3Rpb25QYW5lbEluZm8odHJ1ZSk7CisgICAgICAgIGFwcGx5Q29ycmVjdGlvblBhbmVs
SW5mbyhnZXRNYXJrZXJUeXBlc0ZvckF1dG9Db3JyZWN0aW9uKCkpOwogICAgIG1fY29ycmVjdGlv
blBhbmVsSW5mby5tX3JhbmdlVG9CZVJlcGxhY2VkLmNsZWFyKCk7CiAjZWxzZQogICAgIFVOVVNF
RF9QQVJBTShzZWxlY3Rpb25BZnRlclR5cGluZyk7CkBAIC0yMzQxLDcgKzIzNzUsNyBAQCB2b2lk
IEVkaXRvcjo6bWFya0FsbE1pc3NwZWxsaW5nc0FuZEJhZEdyCiAgICAgICAgICAgICAgICAgICAg
ICAgICBtX2NvcnJlY3Rpb25QYW5lbEluZm8ubV9yZXBsYWNlZFN0cmluZyA9IHJlcGxhY2VkU3Ry
aW5nOwogICAgICAgICAgICAgICAgICAgICAgICAgbV9jb3JyZWN0aW9uUGFuZWxJbmZvLm1fcmVw
bGFjZW1lbnRTdHJpbmcgPSByZXN1bHQtPnJlcGxhY2VtZW50OwogICAgICAgICAgICAgICAgICAg
ICAgICAgbV9jb3JyZWN0aW9uUGFuZWxJbmZvLm1faXNBY3RpdmUgPSB0cnVlOwotICAgICAgICAg
ICAgICAgICAgICAgICAgY2xpZW50KCktPnNob3dDb3JyZWN0aW9uUGFuZWwobV9jb3JyZWN0aW9u
UGFuZWxJbmZvLm1fcGFuZWxUeXBlLCB0b3RhbEJvdW5kaW5nQm94LCBtX2NvcnJlY3Rpb25QYW5l
bEluZm8ubV9yZXBsYWNlZFN0cmluZywgcmVzdWx0LT5yZXBsYWNlbWVudCwgdGhpcyk7CisgICAg
ICAgICAgICAgICAgICAgICAgICBjbGllbnQoKS0+c2hvd0NvcnJlY3Rpb25QYW5lbChtX2NvcnJl
Y3Rpb25QYW5lbEluZm8ubV9wYW5lbFR5cGUsIHRvdGFsQm91bmRpbmdCb3gsIG1fY29ycmVjdGlv
blBhbmVsSW5mby5tX3JlcGxhY2VkU3RyaW5nLCByZXN1bHQtPnJlcGxhY2VtZW50LCBWZWN0b3I8
U3RyaW5nPigpLCB0aGlzKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGRvUmVwbGFjZW1lbnQg
PSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAgfQogI2VuZGlmCkBAIC0yNDE5LDM5ICsyNDUz
LDc2IEBAIHZvaWQgRWRpdG9yOjptYXJrTWlzc3BlbGxpbmdzQW5kQmFkR3JhbW0KIHZvaWQgRWRp
dG9yOjpjb3JyZWN0aW9uUGFuZWxUaW1lckZpcmVkKFRpbWVyPEVkaXRvcj4qKQogewogI2lmIFNV
UFBPUlRfQVVUT0NPUlJFQ1RJT05fUEFORUwKLSAgICBpZiAobV9jb3JyZWN0aW9uUGFuZWxJbmZv
Lm1fcGFuZWxUeXBlID09IENvcnJlY3Rpb25QYW5lbEluZm86OlBhbmVsVHlwZUNvcnJlY3Rpb24p
IHsKKyAgICBzd2l0Y2ggKG1fY29ycmVjdGlvblBhbmVsSW5mby5tX3BhbmVsVHlwZSkgeworICAg
IGNhc2UgQ29ycmVjdGlvblBhbmVsSW5mbzo6UGFuZWxUeXBlQ29ycmVjdGlvbjogewogICAgICAg
ICBWaXNpYmxlU2VsZWN0aW9uIHNlbGVjdGlvbihmcmFtZSgpLT5zZWxlY3Rpb24oKS0+c2VsZWN0
aW9uKCkpOwogICAgICAgICBWaXNpYmxlUG9zaXRpb24gc3RhcnQoc2VsZWN0aW9uLnN0YXJ0KCks
IHNlbGVjdGlvbi5hZmZpbml0eSgpKTsKICAgICAgICAgVmlzaWJsZVBvc2l0aW9uIHAgPSBzdGFy
dE9mV29yZChzdGFydCwgTGVmdFdvcmRJZk9uQm91bmRhcnkpOwogICAgICAgICBWaXNpYmxlU2Vs
ZWN0aW9uIGFkamFjZW50V29yZHMgPSBWaXNpYmxlU2VsZWN0aW9uKHAsIHN0YXJ0KTsKICAgICAg
ICAgbWFya0FsbE1pc3NwZWxsaW5nc0FuZEJhZEdyYW1tYXJJblJhbmdlcyhNYXJrU3BlbGxpbmcg
fCBTaG93Q29ycmVjdGlvblBhbmVsLCBhZGphY2VudFdvcmRzLnRvTm9ybWFsaXplZFJhbmdlKCku
Z2V0KCksIDApOwotICAgIH0gZWxzZSB7CisgICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNl
IENvcnJlY3Rpb25QYW5lbEluZm86OlBhbmVsVHlwZVJldmVyc2lvbjogewogICAgICAgICBTdHJp
bmcgY3VycmVudFdvcmQgPSBwbGFpblRleHQobV9jb3JyZWN0aW9uUGFuZWxJbmZvLm1fcmFuZ2VU
b0JlUmVwbGFjZWQuZ2V0KCkpOwotICAgICAgICBWZWN0b3I8RmxvYXRRdWFkPiB0ZXh0UXVhZHM7
Ci0gICAgICAgIG1fY29ycmVjdGlvblBhbmVsSW5mby5tX3JhbmdlVG9CZVJlcGxhY2VkLT5nZXRC
b3JkZXJBbmRUZXh0UXVhZHModGV4dFF1YWRzKTsKLSAgICAgICAgVmVjdG9yPEZsb2F0UXVhZD46
OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IHRleHRRdWFkcy5lbmQoKTsKLSAgICAgICAgRmxvYXRSZWN0
IHRvdGFsQm91bmRpbmdCb3g7Ci0gICAgICAgIGZvciAoVmVjdG9yPEZsb2F0UXVhZD46OmNvbnN0
X2l0ZXJhdG9yIGl0ID0gdGV4dFF1YWRzLmJlZ2luKCk7IGl0IDwgZW5kOyArK2l0KQotICAgICAg
ICAgICAgdG90YWxCb3VuZGluZ0JveC51bml0ZShpdC0+Ym91bmRpbmdCb3goKSk7CisgICAgICAg
IEZsb2F0UmVjdCBib3VuZGluZ0JveCA9IGJvdW5kaW5nQm94Rm9yUmFuZ2UobV9jb3JyZWN0aW9u
UGFuZWxJbmZvLm1fcmFuZ2VUb0JlUmVwbGFjZWQuZ2V0KCkpOwogICAgICAgICBtX2NvcnJlY3Rp
b25QYW5lbEluZm8ubV9pc0FjdGl2ZSA9IHRydWU7CiAgICAgICAgIG1fY29ycmVjdGlvblBhbmVs
SW5mby5tX3JlcGxhY2VkU3RyaW5nID0gY3VycmVudFdvcmQ7Ci0gICAgICAgIGNsaWVudCgpLT5z
aG93Q29ycmVjdGlvblBhbmVsKG1fY29ycmVjdGlvblBhbmVsSW5mby5tX3BhbmVsVHlwZSwgdG90
YWxCb3VuZGluZ0JveCwgbV9jb3JyZWN0aW9uUGFuZWxJbmZvLm1fcmVwbGFjZWRTdHJpbmcsIG1f
Y29ycmVjdGlvblBhbmVsSW5mby5tX3JlcGxhY2VtZW50U3RyaW5nLCB0aGlzKTsKKyAgICAgICAg
Y2xpZW50KCktPnNob3dDb3JyZWN0aW9uUGFuZWwobV9jb3JyZWN0aW9uUGFuZWxJbmZvLm1fcGFu
ZWxUeXBlLCBib3VuZGluZ0JveCwgbV9jb3JyZWN0aW9uUGFuZWxJbmZvLm1fcmVwbGFjZWRTdHJp
bmcsIG1fY29ycmVjdGlvblBhbmVsSW5mby5tX3JlcGxhY2VtZW50U3RyaW5nLCBWZWN0b3I8U3Ry
aW5nPigpLCB0aGlzKTsKKyAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ29ycmVjdGlv
blBhbmVsSW5mbzo6UGFuZWxUeXBlU3BlbGxpbmdTdWdnZXN0aW9uczogeworICAgICAgICBTdHJp
bmcgY3VycmVudFdvcmQgPSBwbGFpblRleHQobV9jb3JyZWN0aW9uUGFuZWxJbmZvLm1fcmFuZ2VU
b0JlUmVwbGFjZWQuZ2V0KCkpOworICAgICAgICBpZiAoY3VycmVudFdvcmQgIT0gbV9jb3JyZWN0
aW9uUGFuZWxJbmZvLm1fcmVwbGFjZWRTdHJpbmcpCisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgRmxvYXRSZWN0IGJvdW5kaW5nQm94ID0gYm91bmRpbmdCb3hGb3JSYW5nZShtX2NvcnJlY3Rp
b25QYW5lbEluZm8ubV9yYW5nZVRvQmVSZXBsYWNlZC5nZXQoKSk7CisgICAgICAgIFRleHRDaGVj
a2luZ1BhcmFncmFwaCBwYXJhZ3JhcGgobV9jb3JyZWN0aW9uUGFuZWxJbmZvLm1fcmFuZ2VUb0Jl
UmVwbGFjZWQpOworICAgICAgICBTdHJpbmcgcGFyYWdyYXBoVGV4dCA9IHBsYWluVGV4dChwYXJh
Z3JhcGgucGFyYWdyYXBoUmFuZ2UoKS5nZXQoKSk7CisgICAgICAgIFZlY3RvcjxTdHJpbmc+IHN1
Z2dlc3Rpb25zOworICAgICAgICBjbGllbnQoKS0+Z2V0R3Vlc3Nlc0ZvcldvcmQobV9jb3JyZWN0
aW9uUGFuZWxJbmZvLm1fcmVwbGFjZWRTdHJpbmcsIHBhcmFncmFwaFRleHQsIHN1Z2dlc3Rpb25z
KTsKKyAgICAgICAgaWYgKHN1Z2dlc3Rpb25zLnNpemUoKSA+IDApIHsKKyAgICAgICAgICAgIFN0
cmluZyB0b3BTdWdnZXN0aW9uID0gc3VnZ2VzdGlvbnNbMF07CisgICAgICAgICAgICBzdWdnZXN0
aW9ucy5yZW1vdmUoMCk7CisgICAgICAgICAgICBtX2NvcnJlY3Rpb25QYW5lbEluZm8ubV9pc0Fj
dGl2ZSA9IHRydWU7CisgICAgICAgICAgICBjbGllbnQoKS0+c2hvd0NvcnJlY3Rpb25QYW5lbCht
X2NvcnJlY3Rpb25QYW5lbEluZm8ubV9wYW5lbFR5cGUsIGJvdW5kaW5nQm94LCBtX2NvcnJlY3Rp
b25QYW5lbEluZm8ubV9yZXBsYWNlZFN0cmluZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHRvcFN1Z2dlc3Rpb24sIHN1Z2dlc3Rpb25zLCB0aGlzKTsKKyAgICAg
ICAgfQorICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7
CiAgICAgfQogI2VuZGlmCiB9CiAKLXZvaWQgRWRpdG9yOjpoYW5kbGVSZWplY3RlZENvcnJlY3Rp
b24oKQordm9pZCBFZGl0b3I6OmhhbmRsZUNvcnJlY3Rpb25QYW5lbFJlc3VsdChjb25zdCBTdHJp
bmcmIGNvcnJlY3Rpb24pCiB7CiAgICAgUmFuZ2UqIHJlcGxhY2VkUmFuZ2UgPSBtX2NvcnJlY3Rp
b25QYW5lbEluZm8ubV9yYW5nZVRvQmVSZXBsYWNlZC5nZXQoKTsKICAgICBpZiAoIXJlcGxhY2Vk
UmFuZ2UgfHwgbV9mcmFtZS0+ZG9jdW1lbnQoKSAhPSByZXBsYWNlZFJhbmdlLT5vd25lckRvY3Vt
ZW50KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChtX2NvcnJlY3Rpb25QYW5lbEluZm8u
bV9wYW5lbFR5cGUgPT0gQ29ycmVjdGlvblBhbmVsSW5mbzo6UGFuZWxUeXBlQ29ycmVjdGlvbikK
KyAgICBTdHJpbmcgY3VycmVudFdvcmQgPSBwbGFpblRleHQobV9jb3JyZWN0aW9uUGFuZWxJbmZv
Lm1fcmFuZ2VUb0JlUmVwbGFjZWQuZ2V0KCkpOworICAgIC8vIENoZWNrIHRvIHNlZSBpZiB0aGUg
d29yZCB3ZSBhcmUgYWJvdXQgdG8gY29ycmVjdCBoYXMgYmVlbiBjaGFuZ2VkIGJldHdlZW4gdGlt
ZXIgZmlyaW5nIGFuZCBjYWxsYmFjayBiZWluZyB0cmlnZ2VyZWQuCisgICAgaWYgKGN1cnJlbnRX
b3JkICE9IG1fY29ycmVjdGlvblBhbmVsSW5mby5tX3JlcGxhY2VkU3RyaW5nKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBtX2NvcnJlY3Rpb25QYW5lbEluZm8ubV9pc0FjdGl2ZSA9IGZhbHNlOwor
CisgICAgc3dpdGNoIChtX2NvcnJlY3Rpb25QYW5lbEluZm8ubV9wYW5lbFR5cGUpIHsKKyAgICBj
YXNlIENvcnJlY3Rpb25QYW5lbEluZm86OlBhbmVsVHlwZUNvcnJlY3Rpb246CiAgICAgICAgIHJl
cGxhY2VkUmFuZ2UtPnN0YXJ0Q29udGFpbmVyKCktPmRvY3VtZW50KCktPm1hcmtlcnMoKS0+YWRk
TWFya2VyKHJlcGxhY2VkUmFuZ2UsIERvY3VtZW50TWFya2VyOjpSZWplY3RlZENvcnJlY3Rpb24s
IG1fY29ycmVjdGlvblBhbmVsSW5mby5tX3JlcGxhY2VkU3RyaW5nKTsKLSAgICBlbHNlIHsKLSAg
ICAgICAgbV9jb3JyZWN0aW9uUGFuZWxJbmZvLm1faXNBY3RpdmUgPSBmYWxzZTsKLSAgICAgICAg
YXBwbHlDb3JyZWN0aW9uUGFuZWxJbmZvKGZhbHNlKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBDb3JyZWN0aW9uUGFuZWxJbmZvOjpQYW5lbFR5cGVSZXZlcnNpb246CisgICAgICAgIGFwcGx5
Q29ycmVjdGlvblBhbmVsSW5mbyhnZXRNYXJrZXJUeXBlc0ZvclJlcGxhY2VtZW50KCkpOworICAg
IGNhc2UgQ29ycmVjdGlvblBhbmVsSW5mbzo6UGFuZWxUeXBlU3BlbGxpbmdTdWdnZXN0aW9uczoK
KyAgICAgICAgaWYgKGNvcnJlY3Rpb24ubGVuZ3RoKCkgPiAwKSB7CisgICAgICAgICAgICBtX2Nv
cnJlY3Rpb25QYW5lbEluZm8ubV9yZXBsYWNlbWVudFN0cmluZyA9IGNvcnJlY3Rpb247CisgICAg
ICAgICAgICBhcHBseUNvcnJlY3Rpb25QYW5lbEluZm8oZ2V0TWFya2VyVHlwZXNGb3JSZXBsYWNl
bWVudCgpKTsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAg
ICBicmVhazsKICAgICB9CisKICAgICBtX2NvcnJlY3Rpb25QYW5lbEluZm8ubV9yYW5nZVRvQmVS
ZXBsYWNlZC5jbGVhcigpOwogfQogCkBAIC0yNDc1LDYgKzI1NDYsNyBAQCB2b2lkIEVkaXRvcjo6
c3RvcENvcnJlY3Rpb25QYW5lbFRpbWVyKCkKIHsKICNpZiBTVVBQT1JUX0FVVE9DT1JSRUNUSU9O
X1BBTkVMCiAgICAgbV9jb3JyZWN0aW9uUGFuZWxUaW1lci5zdG9wKCk7CisgICAgbV9jb3JyZWN0
aW9uUGFuZWxJbmZvLm1fcmFuZ2VUb0JlUmVwbGFjZWQuY2xlYXIoKTsKICNlbmRpZgogfQogCkBA
IC0yNTA0LDcgKzI1NzYsNiBAQCB2b2lkIEVkaXRvcjo6ZGlzbWlzc0NvcnJlY3Rpb25QYW5lbChD
b3JyCiAgICAgaWYgKCFtX2NvcnJlY3Rpb25QYW5lbEluZm8ubV9pc0FjdGl2ZSkKICAgICAgICAg
cmV0dXJuOwogICAgIG1fY29ycmVjdGlvblBhbmVsSW5mby5tX2lzQWN0aXZlID0gZmFsc2U7Ci0g
ICAgbV9jb3JyZWN0aW9uUGFuZWxJbmZvLm1fcmFuZ2VUb0JlUmVwbGFjZWQuY2xlYXIoKTsKICAg
ICBpZiAoY2xpZW50KCkpCiAgICAgICAgIGNsaWVudCgpLT5kaXNtaXNzQ29ycmVjdGlvblBhbmVs
KGNvcnJlY3Rpb25XYXNSZWplY3RlZE9yTm90KTsKICNlbHNlCkBAIC0yNjA4LDcgKzI2NzksNyBA
QCB2b2lkIEVkaXRvcjo6cmVtb3ZlU3BlbGxBbmRDb3JyZWN0aW9uTWFyCiAgICAgICAgIGRvY3Vt
ZW50LT5tYXJrZXJzKCktPnJlbW92ZU1hcmtlcnMocGFpckl0ZXJhdG9yLT5maXJzdC5nZXQoKSwg
cGFpckl0ZXJhdG9yLT5zZWNvbmQpOwogfQogCi12b2lkIEVkaXRvcjo6YXBwbHlDb3JyZWN0aW9u
UGFuZWxJbmZvKGJvb2wgYWRkQ29ycmVjdGlvbkluZGljYXRvck1hcmtlcikKK3ZvaWQgRWRpdG9y
OjphcHBseUNvcnJlY3Rpb25QYW5lbEluZm8oY29uc3QgVmVjdG9yPERvY3VtZW50TWFya2VyOjpN
YXJrZXJUeXBlPiYgbWFya2VyVHlwZXNUb0FkZCkKIHsKICAgICBpZiAoIW1fY29ycmVjdGlvblBh
bmVsSW5mby5tX3JhbmdlVG9CZVJlcGxhY2VkKQogICAgICAgICByZXR1cm47CkBAIC0yNjQ5LDkg
KzI3MjAsMTAgQEAgdm9pZCBFZGl0b3I6OmFwcGx5Q29ycmVjdGlvblBhbmVsSW5mbyhibwogICAg
ICAgICBjYXJldFBvc2l0aW9uLm1vdmVUb09mZnNldChjYXJldFBvc2l0aW9uLm9mZnNldEluQ29u
dGFpbmVyTm9kZSgpICsgbV9jb3JyZWN0aW9uUGFuZWxJbmZvLm1fcmVwbGFjZW1lbnRTdHJpbmcu
bGVuZ3RoKCkgLSBtX2NvcnJlY3Rpb25QYW5lbEluZm8ubV9yZXBsYWNlZFN0cmluZy5sZW5ndGgo
KSk7CiAgICAgICAgIHNldEVuZChwYXJhZ3JhcGhSYW5nZUNvbnRhaW5pbmdDb3JyZWN0aW9uLmdl
dCgpLCBlbmRPZlBhcmFncmFwaChjYXJldFBvc2l0aW9uKSk7CiAgICAgICAgIFJlZlB0cjxSYW5n
ZT4gcmVwbGFjZW1lbnRSYW5nZSA9IFRleHRJdGVyYXRvcjo6c3VicmFuZ2UocGFyYWdyYXBoUmFu
Z2VDb250YWluaW5nQ29ycmVjdGlvbi5nZXQoKSwgY29ycmVjdGlvblN0YXJ0T2Zmc2V0SW5QYXJh
Z3JhcGgsIG1fY29ycmVjdGlvblBhbmVsSW5mby5tX3JlcGxhY2VtZW50U3RyaW5nLmxlbmd0aCgp
KTsKLSAgICAgICAgcmVwbGFjZW1lbnRSYW5nZS0+c3RhcnRDb250YWluZXIoKS0+ZG9jdW1lbnQo
KS0+bWFya2VycygpLT5hZGRNYXJrZXIocmVwbGFjZW1lbnRSYW5nZS5nZXQoKSwgRG9jdW1lbnRN
YXJrZXI6OlJlcGxhY2VtZW50LCBtX2NvcnJlY3Rpb25QYW5lbEluZm8ubV9yZXBsYWNlbWVudFN0
cmluZyk7Ci0gICAgICAgIGlmIChhZGRDb3JyZWN0aW9uSW5kaWNhdG9yTWFya2VyKQotICAgICAg
ICAgICAgcmVwbGFjZW1lbnRSYW5nZS0+c3RhcnRDb250YWluZXIoKS0+ZG9jdW1lbnQoKS0+bWFy
a2VycygpLT5hZGRNYXJrZXIocmVwbGFjZW1lbnRSYW5nZS5nZXQoKSwgRG9jdW1lbnRNYXJrZXI6
OkNvcnJlY3Rpb25JbmRpY2F0b3IsIG1fY29ycmVjdGlvblBhbmVsSW5mby5tX3JlcGxhY2VkU3Ry
aW5nKTsKKyAgICAgICAgVmVjdG9yPERvY3VtZW50TWFya2VyOjpNYXJrZXJUeXBlPjo6Y29uc3Rf
aXRlcmF0b3IgaXQgPSBtYXJrZXJUeXBlc1RvQWRkLmJlZ2luKCk7CisgICAgICAgIFZlY3RvcjxE
b2N1bWVudE1hcmtlcjo6TWFya2VyVHlwZT46OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IG1hcmtlclR5
cGVzVG9BZGQuZW5kKCk7CisgICAgICAgIGZvciAoOyBpdCAhPSBlbmQ7ICsraXQpCisgICAgICAg
ICAgICByZXBsYWNlbWVudFJhbmdlLT5zdGFydENvbnRhaW5lcigpLT5kb2N1bWVudCgpLT5tYXJr
ZXJzKCktPmFkZE1hcmtlcihyZXBsYWNlbWVudFJhbmdlLmdldCgpLCAqaXQsIG1fY29ycmVjdGlv
blBhbmVsSW5mby5tX3JlcGxhY2VtZW50U3RyaW5nKTsKICAgICAgICAgbV9mcmFtZS0+c2VsZWN0
aW9uKCktPm1vdmVUbyhjYXJldFBvc2l0aW9uLCBmYWxzZSk7CiAgICAgfQogfQpJbmRleDogV2Vi
Q29yZS9lZGl0aW5nL0VkaXRvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZWRpdGluZy9FZGl0
b3IuaAkocmV2aXNpb24gNzI3ODIpCisrKyBXZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgJKHdvcmtp
bmcgY29weSkKQEAgLTMxMyw3ICszMTMsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGhhbmRsZUNh
bmNlbE9wZXJhdGlvbigpOwogICAgIHZvaWQgc3RhcnRDb3JyZWN0aW9uUGFuZWxUaW1lcihDb3Jy
ZWN0aW9uUGFuZWxJbmZvOjpQYW5lbFR5cGUpOwotICAgIHZvaWQgaGFuZGxlUmVqZWN0ZWRDb3Jy
ZWN0aW9uKCk7CisgICAgLy8gSWYgdXNlciBjb25maXJtZWQgYSBjb3JyZWN0aW9uIGluIHRoZSBj
b3JyZWN0aW9uIHBhbmVsLCBjb3JyZWN0aW9uIGhhcyBub24temVybyBsZW5ndGg7IG90aGVyIHdp
c2UgaXQgbWVhbnMgdGhhdCB1c2VyIGhhcyBkaXNtaXNzZWQgdGhlIHBhbmVsLgorICAgIHZvaWQg
aGFuZGxlQ29ycmVjdGlvblBhbmVsUmVzdWx0KGNvbnN0IFN0cmluZyYgY29ycmVjdGlvbik7CiAg
ICAgYm9vbCBpc1Nob3dpbmdDb3JyZWN0aW9uUGFuZWwoKTsKIAogICAgIHZvaWQgcGFzdGVBc0Zy
YWdtZW50KFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4sIGJvb2wgc21hcnRSZXBsYWNlLCBi
b29sIG1hdGNoU3R5bGUpOwpAQCAtNDA2LDcgKzQwNyw3IEBAIHByaXZhdGU6CiAgICAgTm9kZSog
ZmluZEV2ZW50VGFyZ2V0RnJvbVNlbGVjdGlvbigpIGNvbnN0OwogICAgIHZvaWQgc3RvcENvcnJl
Y3Rpb25QYW5lbFRpbWVyKCk7CiAgICAgdm9pZCBkaXNtaXNzQ29ycmVjdGlvblBhbmVsKENvcnJl
Y3Rpb25XYXNSZWplY3RlZE9yTm90KTsKLSAgICB2b2lkIGFwcGx5Q29ycmVjdGlvblBhbmVsSW5m
byhib29sIGFkZENvcnJlY3Rpb25JbmRpY2F0b3JNYXJrZXIpOworICAgIHZvaWQgYXBwbHlDb3Jy
ZWN0aW9uUGFuZWxJbmZvKGNvbnN0IFZlY3RvcjxEb2N1bWVudE1hcmtlcjo6TWFya2VyVHlwZT4m
IG1hcmtlclR5cGVzVG9BZGQpOwogfTsKIAogaW5saW5lIHZvaWQgRWRpdG9yOjpzZXRTdGFydE5l
d0tpbGxSaW5nU2VxdWVuY2UoYm9vbCBmbGFnKQpJbmRleDogV2ViQ29yZS9lZGl0aW5nL1RleHRD
aGVja2luZ0hlbHBlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9lZGl0aW5nL1RleHRDaGVj
a2luZ0hlbHBlci5jcHAJKHJldmlzaW9uIDcyNzgyKQorKysgV2ViQ29yZS9lZGl0aW5nL1RleHRD
aGVja2luZ0hlbHBlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU0MSw3ICs1NDEsNyBAQCBWZWN0
b3I8U3RyaW5nPiBUZXh0Q2hlY2tpbmdIZWxwZXI6Omd1ZXNzCiAgICAgICAgIGlmIChyZXN1bHQt
PnR5cGUgPT0gVGV4dENoZWNraW5nVHlwZVNwZWxsaW5nICYmIHBhcmFncmFwaC5jaGVja2luZ1Jh
bmdlTWF0Y2hlcyhyZXN1bHQtPmxvY2F0aW9uLCByZXN1bHQtPmxlbmd0aCkpIHsKICAgICAgICAg
ICAgIFN0cmluZyBtaXNzcGVsbGVkV29yZCA9IHBhcmFncmFwaC5jaGVja2luZ1N1YnN0cmluZygp
OwogICAgICAgICAgICAgQVNTRVJUKG1pc3NwZWxsZWRXb3JkLmxlbmd0aCgpKTsKLSAgICAgICAg
ICAgIG1fY2xpZW50LT5nZXRHdWVzc2VzRm9yV29yZChtaXNzcGVsbGVkV29yZCwgZ3Vlc3Nlcyk7
CisgICAgICAgICAgICBtX2NsaWVudC0+Z2V0R3Vlc3Nlc0ZvcldvcmQobWlzc3BlbGxlZFdvcmQs
IFN0cmluZygpLCBndWVzc2VzKTsKICAgICAgICAgICAgIG1fY2xpZW50LT51cGRhdGVTcGVsbGlu
Z1VJV2l0aE1pc3NwZWxsZWRXb3JkKG1pc3NwZWxsZWRXb3JkKTsKICAgICAgICAgICAgIG1pc3Nw
ZWxsZWQgPSB0cnVlOwogICAgICAgICAgICAgcmV0dXJuIGd1ZXNzZXM7CkluZGV4OiBXZWJDb3Jl
L2VkaXRpbmcvVGV4dENoZWNraW5nSGVscGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9lZGl0
aW5nL1RleHRDaGVja2luZ0hlbHBlci5oCShyZXZpc2lvbiA3Mjc4MikKKysrIFdlYkNvcmUvZWRp
dGluZy9UZXh0Q2hlY2tpbmdIZWxwZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNTUsMTEgKzU1LDEx
IEBAIHB1YmxpYzoKICAgICBib29sIGNoZWNraW5nUmFuZ2VNYXRjaGVzKGludCBsb2NhdGlvbiwg
aW50IGxlbmd0aCkgY29uc3QgeyByZXR1cm4gbG9jYXRpb24gPT0gY2hlY2tpbmdTdGFydCgpICYm
IGxlbmd0aCA9PSBjaGVja2luZ0xlbmd0aCgpOyB9CiAgICAgYm9vbCBpc0NoZWNraW5nUmFuZ2VD
b3ZlcmVkQnkoaW50IGxvY2F0aW9uLCBpbnQgbGVuZ3RoKSBjb25zdCB7IHJldHVybiBsb2NhdGlv
biA8PSBjaGVja2luZ1N0YXJ0KCkgJiYgbG9jYXRpb24gKyBsZW5ndGggPj0gY2hlY2tpbmdTdGFy
dCgpICsgY2hlY2tpbmdMZW5ndGgoKTsgfQogICAgIGJvb2wgY2hlY2tpbmdSYW5nZUNvdmVycyhp
bnQgbG9jYXRpb24sIGludCBsZW5ndGgpIGNvbnN0IHsgcmV0dXJuIGxvY2F0aW9uIDwgY2hlY2tp
bmdFbmQoKSAmJiBsb2NhdGlvbiArIGxlbmd0aCA+IGNoZWNraW5nU3RhcnQoKTsgfQorICAgIFBh
c3NSZWZQdHI8UmFuZ2U+IHBhcmFncmFwaFJhbmdlKCkgY29uc3Q7CiAKIHByaXZhdGU6CiAgICAg
dm9pZCBpbnZhbGlkYXRlUGFyYWdyYXBoUmFuZ2VWYWx1ZXMoKTsKICAgICBQYXNzUmVmUHRyPFJh
bmdlPiBjaGVja2luZ1JhbmdlKCkgY29uc3QgeyByZXR1cm4gbV9jaGVja2luZ1JhbmdlOyB9Ci0g
ICAgUGFzc1JlZlB0cjxSYW5nZT4gcGFyYWdyYXBoUmFuZ2UoKSBjb25zdDsKICAgICBQYXNzUmVm
UHRyPFJhbmdlPiBvZmZzZXRBc1JhbmdlKCkgY29uc3Q7CiAgICAgY29uc3QgU3RyaW5nJiB0ZXh0
KCkgY29uc3Q7CiAKSW5kZXg6IFdlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCShyZXZpc2lvbiA3Mjc4MikKKysr
IFdlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCSh3b3JraW5nIGNvcHkpCkBAIC00ODAsNyAr
NDgwLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBjaGVja1RleHRPZlBhcmFncmFwaChj
b25zdCBVQ2hhciosIGludCwgdWludDY0X3QsIFZlY3RvcjxUZXh0Q2hlY2tpbmdSZXN1bHQ+Jikg
eyB9OwogI2VuZGlmCiAjaWYgU1VQUE9SVF9BVVRPQ09SUkVDVElPTl9QQU5FTAotICAgIHZpcnR1
YWwgdm9pZCBzaG93Q29ycmVjdGlvblBhbmVsKENvcnJlY3Rpb25QYW5lbEluZm86OlBhbmVsVHlw
ZSwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgRWRpdG9y
KikgeyB9CisgICAgdmlydHVhbCB2b2lkIHNob3dDb3JyZWN0aW9uUGFuZWwoQ29ycmVjdGlvblBh
bmVsSW5mbzo6UGFuZWxUeXBlLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBTdHJpbmcmLCBjb25z
dCBTdHJpbmcmLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYsIEVkaXRvciopIHsgfQogICAgIHZpcnR1
YWwgdm9pZCBkaXNtaXNzQ29ycmVjdGlvblBhbmVsKENvcnJlY3Rpb25XYXNSZWplY3RlZE9yTm90
KSB7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNTaG93aW5nQ29ycmVjdGlvblBhbmVsKCkgeyByZXR1
cm4gZmFsc2U7IH0KICNlbmRpZgpAQCAtNDg5LDYgKzQ4OSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIHZvaWQgc2hvd1NwZWxsaW5nVUkoYm9vbCkgeyB9CiAgICAgdmlydHVhbCBib29sIHNwZWxs
aW5nVUlJc1Nob3dpbmcoKSB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgdm9pZCBnZXRH
dWVzc2VzRm9yV29yZChjb25zdCBTdHJpbmcmLCBWZWN0b3I8U3RyaW5nPiYpIHsgfQorICAgIHZp
cnR1YWwgdm9pZCBnZXRHdWVzc2VzRm9yV29yZChjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcm
LCBWZWN0b3I8U3RyaW5nPiYpIHsgfQogICAgIHZpcnR1YWwgdm9pZCB3aWxsU2V0SW5wdXRNZXRo
b2RTdGF0ZSgpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wp
IHsgfQogCkluZGV4OiBXZWJDb3JlL21hbnVhbC10ZXN0cy9hdXRvY29ycmVjdGlvbi9kaXNtaXNz
LW11bHRpcGxlLWd1ZXNzZXMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL21hbnVhbC10ZXN0
cy9hdXRvY29ycmVjdGlvbi9kaXNtaXNzLW11bHRpcGxlLWd1ZXNzZXMuaHRtbAkocmV2aXNpb24g
MCkKKysrIFdlYkNvcmUvbWFudWFsLXRlc3RzL2F1dG9jb3JyZWN0aW9uL2Rpc21pc3MtbXVsdGlw
bGUtZ3Vlc3Nlcy5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQ5IEBACis8aHRtbD4KKzxo
ZWFkPgorCis8c3R5bGU+CisuZWRpdGluZyB7CisgICAgYm9yZGVyOiAycHggc29saWQgcmVkOwor
ICAgIHBhZGRpbmc6IDEycHg7CisgICAgZm9udC1zaXplOiAyNHB4OworfQorPC9zdHlsZT4KKzxz
Y3JpcHQgc3JjPS4uLy4uLy4uL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGluZy5qcyBsYW5ndWFn
ZT0iSmF2YVNjcmlwdCIgdHlwZT0idGV4dC9KYXZhU2NyaXB0IiA+PC9zY3JpcHQ+CisKKzxzY3Jp
cHQ+CitmdW5jdGlvbiBlZGl0aW5nVGVzdCgpIHsKKyAgICB0eXBlQ2hhcmFjdGVyQ29tbWFuZCgn
dCcpOworICAgIHR5cGVDaGFyYWN0ZXJDb21tYW5kKCdoJyk7CisgICAgdHlwZUNoYXJhY3RlckNv
bW1hbmQoJ2UnKTsKKyAgICB0eXBlQ2hhcmFjdGVyQ29tbWFuZCgnICcpOworICAgIHR5cGVDaGFy
YWN0ZXJDb21tYW5kKCdtJyk7CisgICAgdHlwZUNoYXJhY3RlckNvbW1hbmQoJ2UnKTsKKyAgICB0
eXBlQ2hhcmFjdGVyQ29tbWFuZCgncycpOworICAgIHR5cGVDaGFyYWN0ZXJDb21tYW5kKCdhJyk7
CisgICAgdHlwZUNoYXJhY3RlckNvbW1hbmQoJ2UnKTsKKyAgICB0eXBlQ2hhcmFjdGVyQ29tbWFu
ZCgnZycpOworICAgIHR5cGVDaGFyYWN0ZXJDb21tYW5kKCdlJyk7CisgICAgdHlwZUNoYXJhY3Rl
ckNvbW1hbmQoJ2UnKTsKKyAgICB0eXBlQ2hhcmFjdGVyQ29tbWFuZCgnICcpOworICAgIGV4ZWNN
b3ZlU2VsZWN0aW9uQmFja3dhcmRCeUNoYXJhY3RlckNvbW1hbmQoKTsKK30KKworPC9zY3JpcHQ+
CisKKzx0aXRsZT5EaXNtaXNzIE11bHRpcGxlIEd1ZXNzZXMgVGVzdDwvdGl0bGU+Cis8L2hlYWQ+
Cis8Ym9keT4KKzxkaXY+PHA+VGhpcyB0ZXN0IHZlcmlmaWVzIHRoYXQgcHJlc3NpbmcgRVNDIGtl
eSBkaXVzbWlzc2VzIG11bHRpcGxlIGd1ZXNzZXMgcGFuZWwgY29ycmVjdGx5PC9wPgorPHA+QWZ0
ZXIgc2VlaW5nIHRoZSBwYW5lbCB3aXRoIG11bHRpcGxlIGNhbmRpZGF0ZXMsIHByZXNzaW5nIEVT
QyBrZXkgdG8gZGlzbWlzcyB0aGUgcGFuZWwuPC9wPgorPHAgIHN0eWxlPSJjb2xvcjpncmVlbiI+
Tm90ZSwgdGhpcyB0ZXN0IGNhbiBmYWlsIGR1ZSB0byB1c2VyIHNwZWNpZmljIHNwZWxsIGNoZWNr
aW5nIGRhdGEuIFRvIGZpeCB0aGlzLCByZW1vdmUgYWxsIGZpbGVzIGluIH4vTGlicmFyeS9TcGVs
bGluZywgdGhlbiBraWxsIEFwcGxlU3BlbGwuc2VydmljZSBwcm9jZXNzLjwvcD4KKzxkaXYgY29u
dGVudGVkaXRhYmxlIGlkPSJyb290IiBjbGFzcz0iZWRpdGluZyI+Cis8c3BhbiBpZD0idGVzdCI+
PC9zcGFuPgorPC9kaXY+CisKKworPHNjcmlwdD4KK3J1bkVkaXRpbmdUZXN0KCk7Cis8L3Njcmlw
dD4KKworPC9ib2R5PgorPC9odG1sPgpJbmRleDogV2ViQ29yZS9tYW51YWwtdGVzdHMvYXV0b2Nv
cnJlY3Rpb24vc2VsZWN0LWZyb20tbXVsdGlwbGUtZ3Vlc3Nlcy5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvbWFudWFsLXRlc3RzL2F1dG9jb3JyZWN0aW9uL3NlbGVjdC1mcm9tLW11bHRpcGxl
LWd1ZXNzZXMuaHRtbAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvbWFudWFsLXRlc3RzL2F1dG9j
b3JyZWN0aW9uL3NlbGVjdC1mcm9tLW11bHRpcGxlLWd1ZXNzZXMuaHRtbAkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSw0OSBAQAorPGh0bWw+Cis8aGVhZD4KKworPHN0eWxlPgorLmVkaXRpbmcgewor
ICAgIGJvcmRlcjogMnB4IHNvbGlkIHJlZDsKKyAgICBwYWRkaW5nOiAxMnB4OworICAgIGZvbnQt
c2l6ZTogMjRweDsKK30KKzwvc3R5bGU+Cis8c2NyaXB0IHNyYz0uLi8uLi8uLi9MYXlvdXRUZXN0
cy9lZGl0aW5nL2VkaXRpbmcuanMgbGFuZ3VhZ2U9IkphdmFTY3JpcHQiIHR5cGU9InRleHQvSmF2
YVNjcmlwdCIgPjwvc2NyaXB0PgorCis8c2NyaXB0PgorZnVuY3Rpb24gZWRpdGluZ1Rlc3QoKSB7
CisgICAgdHlwZUNoYXJhY3RlckNvbW1hbmQoJ3QnKTsKKyAgICB0eXBlQ2hhcmFjdGVyQ29tbWFu
ZCgnaCcpOworICAgIHR5cGVDaGFyYWN0ZXJDb21tYW5kKCdlJyk7CisgICAgdHlwZUNoYXJhY3Rl
ckNvbW1hbmQoJyAnKTsKKyAgICB0eXBlQ2hhcmFjdGVyQ29tbWFuZCgnbScpOworICAgIHR5cGVD
aGFyYWN0ZXJDb21tYW5kKCdlJyk7CisgICAgdHlwZUNoYXJhY3RlckNvbW1hbmQoJ3MnKTsKKyAg
ICB0eXBlQ2hhcmFjdGVyQ29tbWFuZCgnYScpOworICAgIHR5cGVDaGFyYWN0ZXJDb21tYW5kKCdl
Jyk7CisgICAgdHlwZUNoYXJhY3RlckNvbW1hbmQoJ2cnKTsKKyAgICB0eXBlQ2hhcmFjdGVyQ29t
bWFuZCgnZScpOworICAgIHR5cGVDaGFyYWN0ZXJDb21tYW5kKCdlJyk7CisgICAgdHlwZUNoYXJh
Y3RlckNvbW1hbmQoJyAnKTsKKyAgICBleGVjTW92ZVNlbGVjdGlvbkJhY2t3YXJkQnlDaGFyYWN0
ZXJDb21tYW5kKCk7Cit9CisKKzwvc2NyaXB0PgorCis8dGl0bGU+U2VsZWN0IEZyb20gTXVsdGlw
bGUgR3Vlc3NlcyBUZXN0PC90aXRsZT4KKzwvaGVhZD4KKzxib2R5PgorPGRpdj48cD5UaGlzIHRl
c3QgdmVyaWZpZXMgdGhhdCBtdWx0aXBsZSBndWVzc2VzIG9uIG1pc3BlbGxlZCB3b3JkIGlzIHdv
cmtpbmcgY29ycmVjdGx5PC9wPgorPHA+QWZ0ZXIgc2VlaW5nIHRoZSBwYW5lbCB3aXRoIG11bHRp
cGxlIGNhbmRpZGF0ZXMsIHVzZSBsZWZ0IGFuZC9vciByaWdodCBhcnJvdyBrZXkgdG8gc2VsZWN0
IHRoZSBkZXNpcmVkIGNhbmRpZGF0ZSwgYW5kIHRoZW4gdXNlIHJldHVybiBrZXkgdG8gY29uZmly
bS4gWW91IGNhbiBhbHNvIHVzZSB0aGlzIHRlc3QgdG8gdGVzdCB0aGF0IHByZXNzaW5nIEVTQyBr
ZXkgd2lsbCBkaXNtaXNzIHRoZSBwYW5lbC48L3A+Cis8cCAgc3R5bGU9ImNvbG9yOmdyZWVuIj5O
b3RlLCB0aGlzIHRlc3QgY2FuIGZhaWwgZHVlIHRvIHVzZXIgc3BlY2lmaWMgc3BlbGwgY2hlY2tp
bmcgZGF0YS4gVG8gZml4IHRoaXMsIHJlbW92ZSBhbGwgZmlsZXMgaW4gfi9MaWJyYXJ5L1NwZWxs
aW5nLCB0aGVuIGtpbGwgQXBwbGVTcGVsbC5zZXJ2aWNlIHByb2Nlc3MuPC9wPgorPGRpdiBjb250
ZW50ZWRpdGFibGUgaWQ9InJvb3QiIGNsYXNzPSJlZGl0aW5nIj4KKzxzcGFuIGlkPSJ0ZXN0Ij48
L3NwYW4+Cis8L2Rpdj4KKworCis8c2NyaXB0PgorcnVuRWRpdGluZ1Rlc3QoKTsKKzwvc2NyaXB0
PgorCis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBXZWJDb3JlL3BhZ2UvRWRpdG9yQ2xpZW50LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL0VkaXRvckNsaWVudC5oCShyZXZpc2lvbiA3Mjc4
MikKKysrIFdlYkNvcmUvcGFnZS9FZGl0b3JDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMTkw
LDcgKzE5MCw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiAjaWYgU1VQUE9SVF9BVVRPQ09SUkVDVElP
Tl9QQU5FTAotICAgIHZpcnR1YWwgdm9pZCBzaG93Q29ycmVjdGlvblBhbmVsKENvcnJlY3Rpb25Q
YW5lbEluZm86OlBhbmVsVHlwZSwgY29uc3QgRmxvYXRSZWN0JiBib3VuZGluZ0JveE9mUmVwbGFj
ZWRTdHJpbmcsIGNvbnN0IFN0cmluZyYgcmVwbGFjZWRTdHJpbmcsIGNvbnN0IFN0cmluZyYgcmVw
bGFjbWVudFN0cmluZywgRWRpdG9yKikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzaG93Q29ycmVj
dGlvblBhbmVsKENvcnJlY3Rpb25QYW5lbEluZm86OlBhbmVsVHlwZSwgY29uc3QgRmxvYXRSZWN0
JiBib3VuZGluZ0JveE9mUmVwbGFjZWRTdHJpbmcsIGNvbnN0IFN0cmluZyYgcmVwbGFjZWRTdHJp
bmcsIGNvbnN0IFN0cmluZyYgcmVwbGFjbWVudFN0cmluZywgY29uc3QgVmVjdG9yPFN0cmluZz4m
IGFsdGVybmF0aXZlUmVwbGFjZW1lbnRTdHJpbmdzLCBFZGl0b3IqKSA9IDA7CiAgICAgdmlydHVh
bCB2b2lkIGRpc21pc3NDb3JyZWN0aW9uUGFuZWwoQ29ycmVjdGlvbldhc1JlamVjdGVkT3JOb3Qp
ID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgaXNTaG93aW5nQ29ycmVjdGlvblBhbmVsKCkgPSAwOwog
I2VuZGlmCkBAIC0xOTksNyArMTk5LDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCB1cGRh
dGVTcGVsbGluZ1VJV2l0aE1pc3NwZWxsZWRXb3JkKGNvbnN0IFN0cmluZyYpID0gMDsKICAgICB2
aXJ0dWFsIHZvaWQgc2hvd1NwZWxsaW5nVUkoYm9vbCBzaG93KSA9IDA7CiAgICAgdmlydHVhbCBi
b29sIHNwZWxsaW5nVUlJc1Nob3dpbmcoKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGdldEd1ZXNz
ZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYsIFZlY3RvcjxTdHJpbmc+JiBndWVzc2VzKSA9IDA7Cisg
ICAgdmlydHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYgd29yZCwgVmVj
dG9yPFN0cmluZz4mIGd1ZXNzZXMpID0gMDsKKyAgICAvLyBTb21lIHNwZWxsY2hlY2tlciBtYXkg
YmUgYWJsZSB0byB0YWtlIGFkdmFudGFnZSBvZiBwYXJhZ3JhcGggY29udGV4dCB0byBtb3JlIGFj
Y3VyYXRlbHkgaWRlbnRpZnkgdGhlIGxhbmd1YWdlLgorICAgIHZpcnR1YWwgdm9pZCBnZXRHdWVz
c2VzRm9yV29yZChjb25zdCBTdHJpbmcmIHdvcmQsIGNvbnN0IFN0cmluZyYgY29udGV4dCwgVmVj
dG9yPFN0cmluZz4mIGd1ZXNzZXMpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNldElucHV0
TWV0aG9kU3RhdGUoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldElucHV0TWV0aG9kU3RhdGUo
Ym9vbCBlbmFibGVkKSA9IDA7CiB9OwpJbmRleDogV2ViS2l0Mi9DaGFuZ2VMb2cKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViS2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDcyNzgyKQorKysgV2ViS2l0Mi9DaGFu
Z2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMCBAQAorMjAxMC0xMS0yOCAgSmlhIFB1
ICA8anB1QGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBTdXBwb3J0IG11bHRpcGxlIGNvcnJlY3Rpb24gY2FuZGlkYXRlcyBwYW5lbCBm
b3IgbWlzc3BlbGxlZCB3b3JkIG9uIE1hYyBPUyBYLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTAxMzcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg1
NjgwNTk+CisKKyAgICAgICAgVGhpcyBwYXRjaCBpcyBmb3Igc3VwcG9ydGluZyBtdWx0aXBsZSBj
b3JyZWN0aW9uIHN1Z2dlc3Rpb24gcGFuZWwgb24gTWFjIE9TIFguCisgICAgICAgIFRoZSBiZWhh
dmlvciBhbmQgaW1wbGVtZW50YXRpb24gaXMgc2ltaWxhciB0byB0aGF0IG9mIHJldmVyc2lvbiBj
YW5kaWF0ZSBwYW5lbC4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
RWRpdG9yQ2xpZW50LmNwcDogQWRvcHRlZCBuZXcgc2lnbmF0dXJlIGFuZCBmdW5jdGlvbnMgZGVm
aW5lZCBpbiBiYXNlIGNsYXNzLgorICAgICAgICAoV2ViS2l0OjpXZWJFZGl0b3JDbGllbnQ6Omdl
dEd1ZXNzZXNGb3JXb3JkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkVkaXRvckNsaWVudC5oOiBEaXR0by4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L21hYy9XZWJFZGl0b3JDbGllbnRNYWMubW06IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpX
ZWJFZGl0b3JDbGllbnQ6OnNob3dDb3JyZWN0aW9uUGFuZWwpOgorCiAyMDEwLTExLTI4ICBMYXN6
bG8gR29tYm9zICA8bGFzemxvLjEuZ29tYm9zQG5va2lhLmNvbT4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbi4KSW5kZXg6IFdlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCShyZXZpc2lv
biA3Mjc4MikKKysrIFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JD
bGllbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOTgsNiArMzk4LDExIEBAIHZvaWQgV2ViRWRp
dG9yQ2xpZW50OjpnZXRHdWVzc2VzRm9yV29yZCgKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQog
Cit2b2lkIFdlYkVkaXRvckNsaWVudDo6Z2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgU3RyaW5nJiwg
Y29uc3QgU3RyaW5nJiwgVmVjdG9yPFN0cmluZz4mKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
Cit9CisKIHZvaWQgV2ViRWRpdG9yQ2xpZW50Ojp3aWxsU2V0SW5wdXRNZXRob2RTdGF0ZSgpCiB7
CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKSW5kZXg6IFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgJKHJldmlzaW9uIDcyNzgyKQorKysg
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMzAsMTEgKzEzMCwxMiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9p
ZCB1cGRhdGVTcGVsbGluZ1VJV2l0aE1pc3NwZWxsZWRXb3JkKGNvbnN0IFN0cmluZyYpOwogICAg
IHZpcnR1YWwgdm9pZCBzaG93U3BlbGxpbmdVSShib29sIHNob3cpOwogICAgIHZpcnR1YWwgYm9v
bCBzcGVsbGluZ1VJSXNTaG93aW5nKCk7Ci0gICAgdmlydHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JX
b3JkKGNvbnN0IFN0cmluZyYsIFZlY3RvcjxTdHJpbmc+JiBndWVzc2VzKTsKKyAgICB2aXJ0dWFs
IHZvaWQgZ2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgU3RyaW5nJiB3b3JkLCBWZWN0b3I8U3RyaW5n
PiYgZ3Vlc3Nlcyk7CisgICAgdmlydHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0
cmluZyYgd29yZCwgY29uc3QgU3RyaW5nJiBjb250ZXh0LCBWZWN0b3I8U3RyaW5nPiYgZ3Vlc3Nl
cyk7CiAgICAgdmlydHVhbCB2b2lkIHdpbGxTZXRJbnB1dE1ldGhvZFN0YXRlKCk7CiAgICAgdmly
dHVhbCB2b2lkIHNldElucHV0TWV0aG9kU3RhdGUoYm9vbCBlbmFibGVkKTsKICNpZiBQTEFURk9S
TShNQUMpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1RJR0VSKSAmJiAhZGVmaW5lZChCVUlMRElO
R19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCi0gICAg
dmlydHVhbCB2b2lkIHNob3dDb3JyZWN0aW9uUGFuZWwoV2ViQ29yZTo6Q29ycmVjdGlvblBhbmVs
SW5mbzo6UGFuZWxUeXBlLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGJvdW5kaW5nQm94T2ZS
ZXBsYWNlZFN0cmluZywgY29uc3QgU3RyaW5nJiByZXBsYWNlZFN0cmluZywgY29uc3QgU3RyaW5n
JiByZXBsYWNlbWVudFN0cmluZywgV2ViQ29yZTo6RWRpdG9yKik7CisgICAgdmlydHVhbCB2b2lk
IHNob3dDb3JyZWN0aW9uUGFuZWwoV2ViQ29yZTo6Q29ycmVjdGlvblBhbmVsSW5mbzo6UGFuZWxU
eXBlLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGJvdW5kaW5nQm94T2ZSZXBsYWNlZFN0cmlu
ZywgY29uc3QgU3RyaW5nJiByZXBsYWNlZFN0cmluZywgY29uc3QgU3RyaW5nJiByZXBsYWNlbWVu
dFN0cmluZywgY29uc3QgVmVjdG9yPFN0cmluZz4mIGFsdGVybmF0aXZlUmVwbGFjZW1lbnRTdHJp
bmdzLCBXZWJDb3JlOjpFZGl0b3IqKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlzbWlzc0NvcnJlY3Rp
b25QYW5lbChXZWJDb3JlOjpDb3JyZWN0aW9uV2FzUmVqZWN0ZWRPck5vdCk7CiAgICAgdmlydHVh
bCBib29sIGlzU2hvd2luZ0NvcnJlY3Rpb25QYW5lbCgpOwogI2VuZGlmCkluZGV4OiBXZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkVkaXRvckNsaWVudE1hYy5tbQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkVkaXRv
ckNsaWVudE1hYy5tbQkocmV2aXNpb24gNzI3ODIpCisrKyBXZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvbWFjL1dlYkVkaXRvckNsaWVudE1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAt
MjIzLDcgKzIyMyw3IEBAIHZvaWQgV2ViRWRpdG9yQ2xpZW50OjpjaGVja1RleHRPZlBhcmFncmEK
ICNlbmRpZgogCiAjaWYgIWRlZmluZWQoQlVJTERJTkdfT05fVElHRVIpICYmICFkZWZpbmVkKEJV
SUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkK
LXZvaWQgV2ViRWRpdG9yQ2xpZW50OjpzaG93Q29ycmVjdGlvblBhbmVsKFdlYkNvcmU6OkNvcnJl
Y3Rpb25QYW5lbEluZm86OlBhbmVsVHlwZSB0eXBlLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3Qm
IGJvdW5kaW5nQm94T2ZSZXBsYWNlZFN0cmluZywgY29uc3QgV1RGOjpTdHJpbmcmIHJlcGxhY2Vk
U3RyaW5nLCBjb25zdCBXVEY6OlN0cmluZyYgcmVwbGFjZW1lbnRTdHJpbmcsIFdlYkNvcmU6OkVk
aXRvciopCit2b2lkIFdlYkVkaXRvckNsaWVudDo6c2hvd0NvcnJlY3Rpb25QYW5lbChXZWJDb3Jl
OjpDb3JyZWN0aW9uUGFuZWxJbmZvOjpQYW5lbFR5cGUgdHlwZSwgY29uc3QgV2ViQ29yZTo6Rmxv
YXRSZWN0JiBib3VuZGluZ0JveE9mUmVwbGFjZWRTdHJpbmcsIGNvbnN0IFdURjo6U3RyaW5nJiBy
ZXBsYWNlZFN0cmluZywgY29uc3QgV1RGOjpTdHJpbmcmIHJlcGxhY2VtZW50U3RyaW5nLCBjb25z
dCBWZWN0b3I8U3RyaW5nPiYgYWx0ZXJuYXRpdmVSZXBsYWNlbWVudFN0cmluZ3MsIFdlYkNvcmU6
OkVkaXRvciopCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KSW5kZXg6IFdlYktpdC9tYWMv
Q2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9tYWMvQ2hhbmdlTG9nCShyZXZpc2lvbiA3
Mjc4MikKKysrIFdlYktpdC9tYWMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEs
MjAgQEAKKzIwMTAtMTEtMjggIEppYSBQdSAgPGpwdUBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3VwcG9ydCBtdWx0aXBsZSBjb3Jy
ZWN0aW9uIGNhbmRpZGF0ZXMgcGFuZWwgZm9yIG1pc3NwZWxsZWQgd29yZCBvbiBNYWMgT1MgWC4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUwMTM3Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NTY4MDU5PgorCisgICAgICAgIFRoaXMgcGF0Y2ggaXMg
Zm9yIHN1cHBvcnRpbmcgbXVsdGlwbGUgY29ycmVjdGlvbiBzdWdnZXN0aW9uIHBhbmVsIG9uIE1h
YyBPUyBYLgorICAgICAgICBUaGUgYmVoYXZpb3IgYW5kIGltcGxlbWVudGF0aW9uIGlzIHNpbWls
YXIgdG8gdGhhdCBvZiByZXZlcnNpb24gY2FuZGlhdGUgcGFuZWwuCisKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaDogQWRvcHRlZCBuZXcgc2lnbmF0dXJlIGFuZCBm
dW5jdGlvbnMgZGVmaW5lZCBpbiBiYXNlIGNsYXNzLgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L1dlYkVkaXRvckNsaWVudC5tbTogQWRvcHRlZCBuZXcgc2lnbmF0dXJlIGFuZCBmdW5jdGlvbnMg
ZGVmaW5lZCBpbiBiYXNlIGNsYXNzLgorICAgICAgICAgIEFkZGVkIGNvZGUgdG8gaGFuZGxlIG5l
dyBtdWx0aXBsZSBzdWdnZXN0aW9uIGNhbmlkYXRlIHBhbmVsIHR5cGUuCisgICAgICAgIChXZWJF
ZGl0b3JDbGllbnQ6OnNob3dDb3JyZWN0aW9uUGFuZWwpOgorICAgICAgICAoV2ViRWRpdG9yQ2xp
ZW50OjpnZXRHdWVzc2VzRm9yV29yZCk6CisKIDIwMTAtMTEtMjIgIFJ5b3N1a2UgTml3YSAgPHJu
aXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgVG9ueSBDaGFuZy4KSW5kZXg6
IFdlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAkocmV2aXNpb24g
NzI3ODIpCisrKyBXZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xMzAsMTAgKzEzMCwxMSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2
b2lkIHNob3dTcGVsbGluZ1VJKGJvb2wgc2hvdyk7CiAgICAgdmlydHVhbCBib29sIHNwZWxsaW5n
VUlJc1Nob3dpbmcoKTsKICAgICB2aXJ0dWFsIHZvaWQgZ2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3Qg
V1RGOjpTdHJpbmcmLCBXVEY6OlZlY3RvcjxXVEY6OlN0cmluZz4mIGd1ZXNzZXMpOworICAgIHZp
cnR1YWwgdm9pZCBnZXRHdWVzc2VzRm9yV29yZChjb25zdCBXVEY6OlN0cmluZyYgd29yZCwgY29u
c3QgV1RGOjpTdHJpbmcmIGNvbnRleHQsIFdURjo6VmVjdG9yPFdURjo6U3RyaW5nPiYgZ3Vlc3Nl
cyk7CiAgICAgdmlydHVhbCB2b2lkIHdpbGxTZXRJbnB1dE1ldGhvZFN0YXRlKCk7CiAgICAgdmly
dHVhbCB2b2lkIHNldElucHV0TWV0aG9kU3RhdGUoYm9vbCBlbmFibGVkKTsKICNpZiAhZGVmaW5l
ZChCVUlMRElOR19PTl9USUdFUikgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgJiYg
IWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQotICAgIHZpcnR1YWwgdm9pZCBzaG93
Q29ycmVjdGlvblBhbmVsKFdlYkNvcmU6OkNvcnJlY3Rpb25QYW5lbEluZm86OlBhbmVsVHlwZSwg
Y29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBib3VuZGluZ0JveE9mUmVwbGFjZWRTdHJpbmcsIGNv
bnN0IFdURjo6U3RyaW5nJiByZXBsYWNlZFN0cmluZywgY29uc3QgV1RGOjpTdHJpbmcmIHJlcGxh
Y2VtZW50U3RyaW5nLCBXZWJDb3JlOjpFZGl0b3IqKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2hvd0Nv
cnJlY3Rpb25QYW5lbChXZWJDb3JlOjpDb3JyZWN0aW9uUGFuZWxJbmZvOjpQYW5lbFR5cGUsIGNv
bnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgYm91bmRpbmdCb3hPZlJlcGxhY2VkU3RyaW5nLCBjb25z
dCBXVEY6OlN0cmluZyYgcmVwbGFjZWRTdHJpbmcsIGNvbnN0IFdURjo6U3RyaW5nJiByZXBsYWNl
bWVudFN0cmluZywgY29uc3QgV1RGOjpWZWN0b3I8V1RGOjpTdHJpbmc+JiBhbHRlcm5hdGl2ZVJl
cGxhY2VtZW50U3RyaW5ncywgV2ViQ29yZTo6RWRpdG9yKik7CiAgICAgdmlydHVhbCB2b2lkIGRp
c21pc3NDb3JyZWN0aW9uUGFuZWwoV2ViQ29yZTo6Q29ycmVjdGlvbldhc1JlamVjdGVkT3JOb3Qp
OwogICAgIHZpcnR1YWwgYm9vbCBpc1Nob3dpbmdDb3JyZWN0aW9uUGFuZWwoKTsKICNlbmRpZgpJ
bmRleDogV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0JKHJl
dmlzaW9uIDcyNzgyKQorKysgV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGll
bnQubW0JKHdvcmtpbmcgY29weSkKQEAgLTg1Niw3ICs4NTYsNyBAQCB2b2lkIFdlYkVkaXRvckNs
aWVudDo6dXBkYXRlU3BlbGxpbmdVSVdpCiB9CiAKICNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9U
SUdFUikgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJ
TkdfT05fU05PV19MRU9QQVJEKQotdm9pZCBXZWJFZGl0b3JDbGllbnQ6OnNob3dDb3JyZWN0aW9u
UGFuZWwoV2ViQ29yZTo6Q29ycmVjdGlvblBhbmVsSW5mbzo6UGFuZWxUeXBlIHBhbmVsVHlwZSwg
Y29uc3QgRmxvYXRSZWN0JiBib3VuZGluZ0JveE9mUmVwbGFjZWRTdHJpbmcsIGNvbnN0IFN0cmlu
ZyYgcmVwbGFjZWRTdHJpbmcsIGNvbnN0IFN0cmluZyYgcmVwbGFjZW1lbnRTdHJpbmcsIEVkaXRv
ciogZWRpdG9yKSB7Cit2b2lkIFdlYkVkaXRvckNsaWVudDo6c2hvd0NvcnJlY3Rpb25QYW5lbChX
ZWJDb3JlOjpDb3JyZWN0aW9uUGFuZWxJbmZvOjpQYW5lbFR5cGUgcGFuZWxUeXBlLCBjb25zdCBG
bG9hdFJlY3QmIGJvdW5kaW5nQm94T2ZSZXBsYWNlZFN0cmluZywgY29uc3QgU3RyaW5nJiByZXBs
YWNlZFN0cmluZywgY29uc3QgU3RyaW5nJiByZXBsYWNlbWVudFN0cmluZywgY29uc3QgVmVjdG9y
PFN0cmluZz4mIGFsdGVybmF0aXZlUmVwbGFjZW1lbnRTdHJpbmdzLCBFZGl0b3IqIGVkaXRvcikg
ewogICAgIGRpc21pc3NDb3JyZWN0aW9uUGFuZWwoV2ViQ29yZTo6Q29ycmVjdGlvbldhc05vdFJl
amVjdGVkKTsKIAogICAgIE5TUmVjdCBib3VuZGluZ0JveEFzTlNSZWN0ID0gYm91bmRpbmdCb3hP
ZlJlcGxhY2VkU3RyaW5nOwpAQCAtODY4LDE0ICs4NjgsNTQgQEAgdm9pZCBXZWJFZGl0b3JDbGll
bnQ6OnNob3dDb3JyZWN0aW9uUGFuZQogICAgIE5TU3RyaW5nICpyZXBsYWNlbWVudFN0cmluZ0Fz
TlNTdHJpbmcgPSByZXBsYWNlbWVudFN0cmluZzsKIAogICAgIG1fY29ycmVjdGlvblBhbmVsSXNT
aG93biA9IFlFUzsKLSAgICBOU0NvcnJlY3Rpb25CdWJibGVUeXBlIGJ1YmJsZVR5cGUgPSBwYW5l
bFR5cGUgPT0gV2ViQ29yZTo6Q29ycmVjdGlvblBhbmVsSW5mbzo6UGFuZWxUeXBlQ29ycmVjdGlv
biA/IE5TQ29ycmVjdGlvbkJ1YmJsZVR5cGVDb3JyZWN0aW9uIDogTlNDb3JyZWN0aW9uQnViYmxl
VHlwZVJldmVyc2lvbjsKLSAgICBbW05TU3BlbGxDaGVja2VyIHNoYXJlZFNwZWxsQ2hlY2tlcl0g
c2hvd0NvcnJlY3Rpb25CdWJibGVPZlR5cGU6YnViYmxlVHlwZSBwcmltYXJ5U3RyaW5nOnJlcGxh
Y2VtZW50U3RyaW5nQXNOU1N0cmluZyBhbHRlcm5hdGl2ZVN0cmluZ3M6bmlsIGZvclN0cmluZ0lu
UmVjdDpib3VuZGluZ0JveEFzTlNSZWN0IHZpZXc6bV93ZWJWaWV3IGNvbXBsZXRpb25IYW5kbGVy
Ol4oTlNTdHJpbmcgKmFjY2VwdGVkU3RyaW5nKSB7Ci0gICAgICAgIGlmICghYWNjZXB0ZWRTdHJp
bmcgJiYgYnViYmxlVHlwZSA9PSBOU0NvcnJlY3Rpb25CdWJibGVUeXBlQ29ycmVjdGlvbikgewot
ICAgICAgICAgICAgW1tOU1NwZWxsQ2hlY2tlciBzaGFyZWRTcGVsbENoZWNrZXJdIHJlY29yZFJl
c3BvbnNlOk5TQ29ycmVjdGlvblJlc3BvbnNlUmVqZWN0ZWQgdG9Db3JyZWN0aW9uOnJlcGxhY2Vt
ZW50U3RyaW5nQXNOU1N0cmluZyBmb3JXb3JkOnJlcGxhY2VkU3RyaW5nQXNOU1N0cmluZyBsYW5n
dWFnZTpuaWwgaW5TcGVsbERvY3VtZW50V2l0aFRhZzpbbV93ZWJWaWV3IHNwZWxsQ2hlY2tlckRv
Y3VtZW50VGFnXV07Ci0gICAgICAgICAgICBlZGl0b3ItPmhhbmRsZVJlamVjdGVkQ29ycmVjdGlv
bigpOwotICAgICAgICB9IGVsc2UgaWYgKGFjY2VwdGVkU3RyaW5nICYmIGJ1YmJsZVR5cGUgPT0g
TlNDb3JyZWN0aW9uQnViYmxlVHlwZVJldmVyc2lvbikgewotICAgICAgICAgICAgW1tOU1NwZWxs
Q2hlY2tlciBzaGFyZWRTcGVsbENoZWNrZXJdIHJlY29yZFJlc3BvbnNlOk5TQ29ycmVjdGlvblJl
c3BvbnNlUmV2ZXJ0ZWQgdG9Db3JyZWN0aW9uOnJlcGxhY2VkU3RyaW5nQXNOU1N0cmluZyBmb3JX
b3JkOnJlcGxhY2VtZW50U3RyaW5nQXNOU1N0cmluZyBsYW5ndWFnZTpuaWwgaW5TcGVsbERvY3Vt
ZW50V2l0aFRhZzpbbV93ZWJWaWV3IHNwZWxsQ2hlY2tlckRvY3VtZW50VGFnXV07Ci0gICAgICAg
ICAgICBlZGl0b3ItPmhhbmRsZVJlamVjdGVkQ29ycmVjdGlvbigpOworICAgIE5TQ29ycmVjdGlv
bkJ1YmJsZVR5cGUgYnViYmxlVHlwZTsKKyAgICBzd2l0Y2ggKHBhbmVsVHlwZSkgeworICAgICAg
ICBjYXNlIENvcnJlY3Rpb25QYW5lbEluZm86OlBhbmVsVHlwZUNvcnJlY3Rpb246CisgICAgICAg
ICAgICBidWJibGVUeXBlID0gTlNDb3JyZWN0aW9uQnViYmxlVHlwZUNvcnJlY3Rpb247CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDb3JyZWN0aW9uUGFuZWxJbmZvOjpQYW5lbFR5
cGVSZXZlcnNpb246CisgICAgICAgICAgICBidWJibGVUeXBlID0gTlNDb3JyZWN0aW9uQnViYmxl
VHlwZVJldmVyc2lvbjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIENvcnJlY3Rp
b25QYW5lbEluZm86OlBhbmVsVHlwZVNwZWxsaW5nU3VnZ2VzdGlvbnM6CisgICAgICAgICAgICBi
dWJibGVUeXBlID0gTlNDb3JyZWN0aW9uQnViYmxlVHlwZUd1ZXNzZXM7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIC8vIFNob3VsZCBuZXZlciBiZSBo
ZXJlLgorICAgICAgICAgICAgQVNTRVJUKGZhbHNlKTsKKyAgICAgICAgICAgIGJyZWFrOworICAg
IH0KKworICAgIE5TTXV0YWJsZUFycmF5KiBhbHRlcm5hdGl2ZVN0cmluZ3MgPSBuaWw7CisgICAg
aWYgKGFsdGVybmF0aXZlUmVwbGFjZW1lbnRTdHJpbmdzLnNpemUoKSA+IDApIHsKKyAgICAgICAg
YWx0ZXJuYXRpdmVTdHJpbmdzID0gW05TTXV0YWJsZUFycmF5IGFycmF5V2l0aENhcGFjaXR5OmFs
dGVybmF0aXZlUmVwbGFjZW1lbnRTdHJpbmdzLnNpemUoKV07CisgICAgICAgIFZlY3RvcjxTdHJp
bmc+Ojpjb25zdF9pdGVyYXRvciBpdCA9IGFsdGVybmF0aXZlUmVwbGFjZW1lbnRTdHJpbmdzLmJl
Z2luKCk7CisgICAgICAgIFZlY3RvcjxTdHJpbmc+Ojpjb25zdF9pdGVyYXRvciBlbmQgPSBhbHRl
cm5hdGl2ZVJlcGxhY2VtZW50U3RyaW5ncy5lbmQoKTsKKyAgICAgICAgZm9yICg7IGl0ICE9IGVu
ZDsgKytpdCkKKyAgICAgICAgICAgIFthbHRlcm5hdGl2ZVN0cmluZ3MgYWRkT2JqZWN0OihOU1N0
cmluZyopKml0XTsKKyAgICB9CisKKyAgICBbW05TU3BlbGxDaGVja2VyIHNoYXJlZFNwZWxsQ2hl
Y2tlcl0gc2hvd0NvcnJlY3Rpb25CdWJibGVPZlR5cGU6YnViYmxlVHlwZSBwcmltYXJ5U3RyaW5n
OnJlcGxhY2VtZW50U3RyaW5nQXNOU1N0cmluZyBhbHRlcm5hdGl2ZVN0cmluZ3M6YWx0ZXJuYXRp
dmVTdHJpbmdzIGZvclN0cmluZ0luUmVjdDpib3VuZGluZ0JveEFzTlNSZWN0IHZpZXc6bV93ZWJW
aWV3IGNvbXBsZXRpb25IYW5kbGVyOl4oTlNTdHJpbmcgKmFjY2VwdGVkU3RyaW5nKSB7CisgICAg
ICAgIHN3aXRjaCAoYnViYmxlVHlwZSkgeworICAgICAgICAgICAgY2FzZSBOU0NvcnJlY3Rpb25C
dWJibGVUeXBlQ29ycmVjdGlvbjoKKyAgICAgICAgICAgICAgICBpZiAoIWFjY2VwdGVkU3RyaW5n
KSB7CisgICAgICAgICAgICAgICAgICAgIFtbTlNTcGVsbENoZWNrZXIgc2hhcmVkU3BlbGxDaGVj
a2VyXSByZWNvcmRSZXNwb25zZTpOU0NvcnJlY3Rpb25SZXNwb25zZVJlamVjdGVkIHRvQ29ycmVj
dGlvbjpyZXBsYWNlbWVudFN0cmluZ0FzTlNTdHJpbmcgZm9yV29yZDpyZXBsYWNlZFN0cmluZ0Fz
TlNTdHJpbmcgbGFuZ3VhZ2U6bmlsIGluU3BlbGxEb2N1bWVudFdpdGhUYWc6W21fd2ViVmlldyBz
cGVsbENoZWNrZXJEb2N1bWVudFRhZ11dOworICAgICAgICAgICAgICAgICAgICBlZGl0b3ItPmhh
bmRsZUNvcnJlY3Rpb25QYW5lbFJlc3VsdChTdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBOU0NvcnJlY3Rpb25CdWJi
bGVUeXBlUmV2ZXJzaW9uOgorICAgICAgICAgICAgICAgIGlmIChhY2NlcHRlZFN0cmluZykgewor
ICAgICAgICAgICAgICAgICAgICBbW05TU3BlbGxDaGVja2VyIHNoYXJlZFNwZWxsQ2hlY2tlcl0g
cmVjb3JkUmVzcG9uc2U6TlNDb3JyZWN0aW9uUmVzcG9uc2VSZXZlcnRlZCB0b0NvcnJlY3Rpb246
cmVwbGFjZWRTdHJpbmdBc05TU3RyaW5nIGZvcldvcmQ6cmVwbGFjZW1lbnRTdHJpbmdBc05TU3Ry
aW5nIGxhbmd1YWdlOm5pbCBpblNwZWxsRG9jdW1lbnRXaXRoVGFnOlttX3dlYlZpZXcgc3BlbGxD
aGVja2VyRG9jdW1lbnRUYWddXTsKKyAgICAgICAgICAgICAgICAgICAgZWRpdG9yLT5oYW5kbGVD
b3JyZWN0aW9uUGFuZWxSZXN1bHQoU3RyaW5nKCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgTlNDb3JyZWN0aW9uQnViYmxlVHlw
ZUd1ZXNzZXM6CisgICAgICAgICAgICAgICAgaWYgKGFjY2VwdGVkU3RyaW5nKQorICAgICAgICAg
ICAgICAgICAgICBbW05TU3BlbGxDaGVja2VyIHNoYXJlZFNwZWxsQ2hlY2tlcl0gcmVjb3JkUmVz
cG9uc2U6TlNDb3JyZWN0aW9uUmVzcG9uc2VBY2NlcHRlZCB0b0NvcnJlY3Rpb246YWNjZXB0ZWRT
dHJpbmcgZm9yV29yZDpyZXBsYWNlZFN0cmluZ0FzTlNTdHJpbmcgbGFuZ3VhZ2U6bmlsIGluU3Bl
bGxEb2N1bWVudFdpdGhUYWc6W21fd2ViVmlldyBzcGVsbENoZWNrZXJEb2N1bWVudFRhZ11dOwor
ICAgICAgICAgICAgICAgIGVkaXRvci0+aGFuZGxlQ29ycmVjdGlvblBhbmVsUmVzdWx0KFN0cmlu
ZyhhY2NlcHRlZFN0cmluZykpOworICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAg
ICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgfV07CiB9
CkBAIC05MTYsMTEgKzk1NiwyNSBAQCBib29sIFdlYkVkaXRvckNsaWVudDo6c3BlbGxpbmdVSUlz
U2hvd2luCiAgICAgcmV0dXJuIFtbW05TU3BlbGxDaGVja2VyIHNoYXJlZFNwZWxsQ2hlY2tlcl0g
c3BlbGxpbmdQYW5lbF0gaXNWaXNpYmxlXTsKIH0KIAotdm9pZCBXZWJFZGl0b3JDbGllbnQ6Omdl
dEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYgd29yZCwgV1RGOjpWZWN0b3I8U3RyaW5nPiYg
Z3Vlc3NlcykKK3ZvaWQgV2ViRWRpdG9yQ2xpZW50OjpnZXRHdWVzc2VzRm9yV29yZChjb25zdCBT
dHJpbmcmIHdvcmQsIFZlY3RvcjxTdHJpbmc+JiBndWVzc2VzKQogewotICAgIE5TQXJyYXkqIHN0
cmluZ3NBcnJheSA9IFtbTlNTcGVsbENoZWNrZXIgc2hhcmVkU3BlbGxDaGVja2VyXSBndWVzc2Vz
Rm9yV29yZDp3b3JkXTsKLSAgICB1bnNpZ25lZCBjb3VudCA9IFtzdHJpbmdzQXJyYXkgY291bnRd
OworICAgIGdldEd1ZXNzZXNGb3JXb3JkKHdvcmQsIFN0cmluZygpLCBndWVzc2VzKTsKK30KKwor
dm9pZCBXZWJFZGl0b3JDbGllbnQ6OmdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYgd29y
ZCwgY29uc3QgU3RyaW5nJiBjb250ZXh0LCBWZWN0b3I8U3RyaW5nPiYgZ3Vlc3NlcykgewogICAg
IGd1ZXNzZXMuY2xlYXIoKTsKKworICAgIE5TU3RyaW5nKiBsYW5ndWFnZSA9IG5pbDsKKyAgICBO
U09ydGhvZ3JhcGh5KiBvcnRob2dyYXBoeSA9IG5pbDsKKyAgICBOU1NwZWxsQ2hlY2tlciAqY2hl
Y2tlciA9IFtOU1NwZWxsQ2hlY2tlciBzaGFyZWRTcGVsbENoZWNrZXJdOworICAgIGlmIChjb250
ZXh0Lmxlbmd0aCgpID4gMCkgeworICAgICAgICBbY2hlY2tlciBjaGVja1N0cmluZzpjb250ZXh0
IHJhbmdlOk5TTWFrZVJhbmdlKDAsIGNvbnRleHQubGVuZ3RoKCkpIHR5cGVzOk5TVGV4dENoZWNr
aW5nVHlwZU9ydGhvZ3JhcGh5IG9wdGlvbnM6MCBpblNwZWxsRG9jdW1lbnRXaXRoVGFnOnNwZWxs
Q2hlY2tlckRvY3VtZW50VGFnKCkgb3J0aG9ncmFwaHk6Jm9ydGhvZ3JhcGh5IHdvcmRDb3VudDow
XTsKKyAgICAgICAgbGFuZ3VhZ2UgPSBbY2hlY2tlciBsYW5ndWFnZUZvcldvcmRSYW5nZTpOU01h
a2VSYW5nZSgwLCBjb250ZXh0Lmxlbmd0aCgpKSBpblN0cmluZzpjb250ZXh0IG9ydGhvZ3JhcGh5
Om9ydGhvZ3JhcGh5XTsKKyAgICB9CisKKyAgICBOU0FycmF5KiBzdHJpbmdzQXJyYXkgPSBbY2hl
Y2tlciBndWVzc2VzRm9yV29yZFJhbmdlOk5TTWFrZVJhbmdlKDAsIHdvcmQubGVuZ3RoKCkpIGlu
U3RyaW5nOndvcmQgbGFuZ3VhZ2U6bGFuZ3VhZ2UgaW5TcGVsbERvY3VtZW50V2l0aFRhZzpzcGVs
bENoZWNrZXJEb2N1bWVudFRhZygpXTsKKyAgICB1bnNpZ25lZCBjb3VudCA9IFtzdHJpbmdzQXJy
YXkgY291bnRdOworCiAgICAgaWYgKGNvdW50ID4gMCkgewogICAgICAgICBOU0VudW1lcmF0b3Iq
IGVudW1lcmF0b3IgPSBbc3RyaW5nc0FycmF5IG9iamVjdEVudW1lcmF0b3JdOwogICAgICAgICBO
U1N0cmluZyogc3RyaW5nOwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gNzI3ODIpCisrKyBMYXlvdXRUZXN0
cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxOCBAQAorMjAxMC0xMS0yOCAg
SmlhIFB1ICA8anB1QGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBTdXBwb3J0IG11bHRpcGxlIGNvcnJlY3Rpb24gY2FuZGlkYXRlcyBw
YW5lbCBmb3IgbWlzc3BlbGxlZCB3b3JkIG9uIE1hYyBPUyBYLgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTAxMzcKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzg1NjgwNTk+CisKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtbGVvcGFyZC9Ta2lwcGVkOgor
ICAgICAgICAqIHBsYXRmb3JtL21hYy1zbm93bGVvcGFyZC9Ta2lwcGVkOgorICAgICAgICAqIHBs
YXRmb3JtL21hYy10aWdlci9Ta2lwcGVkOgorICAgICAgICAqIHBsYXRmb3JtL21hYy13azIvU2tp
cHBlZDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZWRpdGluZy9zcGVsbGluZy9kZWxldGUtYXV0
b2NvcnJlY3RlZC13b3JkLTEtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9tYWMvZWRpdGluZy9zcGVsbGluZy9kZWxldGUtYXV0b2NvcnJlY3RlZC13b3JkLTEuaHRtbDog
QWRkZWQuCisKIDIwMTAtMTEtMjMgIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgS2VudCBUYW11cmEuCkluZGV4OiBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMtbGVvcGFyZC9Ta2lwcGVkCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy1sZW9wYXJkL1NraXBwZWQJKHJldmlzaW9uIDcyNzgyKQorKysgTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjLWxlb3BhcmQvU2tpcHBlZAkod29ya2luZyBjb3B5KQpAQCAtMTA2LDYg
KzEwNiw3IEBAIHBsYXRmb3JtL21hYy9lZGl0aW5nL3NwZWxsaW5nL2F1dG9jb3JyZWMKIHBsYXRm
b3JtL21hYy9lZGl0aW5nL3NwZWxsaW5nL2F1dG9jb3JyZWN0aW9uLXJlbW92aW5nLXVuZGVybGlu
ZS5odG1sCiBwbGF0Zm9ybS9tYWMvZWRpdGluZy9zcGVsbGluZy9hdXRvY29ycmVjdGlvbi1zaW1w
bGUuaHRtbAogcGxhdGZvcm0vbWFjL2VkaXRpbmcvc3BlbGxpbmcvY2xpY2stYXV0b2NvcnJlY3Rl
ZC13b3JkLmh0bWwKK3BsYXRmb3JtL21hYy9lZGl0aW5nL3NwZWxsaW5nL2RlbGV0ZS1hdXRvY29y
cmVjdGVkLXdvcmQtMS5odG1sCiBwbGF0Zm9ybS9tYWMvZWRpdGluZy9zcGVsbGluZy9kZWxldGUt
aW50by1hdXRvY29ycmVjdGVkLXdvcmQuaHRtbAogcGxhdGZvcm0vbWFjL2VkaXRpbmcvc3BlbGxp
bmcvZGVsZXRlLWludG8tbWlzc3BlbGxlZC13b3JkLmh0bWwKIHBsYXRmb3JtL21hYy9lZGl0aW5n
L3NwZWxsaW5nL2VkaXRpbmctbXVsdGlwbGUtd29yZHMtd2l0aC1tYXJrZXJzLmh0bWwKSW5kZXg6
IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy1zbm93bGVvcGFyZC9Ta2lwcGVkCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy1zbm93bGVvcGFyZC9Ta2lwcGVkCShyZXZpc2lv
biA3Mjc4MikKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy1zbm93bGVvcGFyZC9Ta2lwcGVk
CSh3b3JraW5nIGNvcHkpCkBAIC0xMzEsNiArMTMxLDcgQEAgcGxhdGZvcm0vbWFjL2VkaXRpbmcv
c3BlbGxpbmcvYXV0b2NvcnJlYwogcGxhdGZvcm0vbWFjL2VkaXRpbmcvc3BlbGxpbmcvYXV0b2Nv
cnJlY3Rpb24tcmVtb3ZpbmctdW5kZXJsaW5lLmh0bWwKIHBsYXRmb3JtL21hYy9lZGl0aW5nL3Nw
ZWxsaW5nL2F1dG9jb3JyZWN0aW9uLXNpbXBsZS5odG1sCiBwbGF0Zm9ybS9tYWMvZWRpdGluZy9z
cGVsbGluZy9jbGljay1hdXRvY29ycmVjdGVkLXdvcmQuaHRtbAorcGxhdGZvcm0vbWFjL2VkaXRp
bmcvc3BlbGxpbmcvZGVsZXRlLWF1dG9jb3JyZWN0ZWQtd29yZC0xLmh0bWwKIHBsYXRmb3JtL21h
Yy9lZGl0aW5nL3NwZWxsaW5nL2RlbGV0ZS1pbnRvLWF1dG9jb3JyZWN0ZWQtd29yZC5odG1sCiBw
bGF0Zm9ybS9tYWMvZWRpdGluZy9zcGVsbGluZy9kZWxldGUtaW50by1taXNzcGVsbGVkLXdvcmQu
aHRtbAogcGxhdGZvcm0vbWFjL2VkaXRpbmcvc3BlbGxpbmcvZWRpdGluZy1tdWx0aXBsZS13b3Jk
cy13aXRoLW1hcmtlcnMuaHRtbApJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXRpZ2Vy
L1NraXBwZWQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXRpZ2VyL1Nr
aXBwZWQJKHJldmlzaW9uIDcyNzgyKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXRpZ2Vy
L1NraXBwZWQJKHdvcmtpbmcgY29weSkKQEAgLTIxMSw2ICsyMTEsNyBAQCBwbGF0Zm9ybS9tYWMv
ZWRpdGluZy9zcGVsbGluZy9hdXRvY29ycmVjCiBwbGF0Zm9ybS9tYWMvZWRpdGluZy9zcGVsbGlu
Zy9hdXRvY29ycmVjdGlvbi1yZW1vdmluZy11bmRlcmxpbmUuaHRtbAogcGxhdGZvcm0vbWFjL2Vk
aXRpbmcvc3BlbGxpbmcvYXV0b2NvcnJlY3Rpb24tc2ltcGxlLmh0bWwKIHBsYXRmb3JtL21hYy9l
ZGl0aW5nL3NwZWxsaW5nL2NsaWNrLWF1dG9jb3JyZWN0ZWQtd29yZC5odG1sCitwbGF0Zm9ybS9t
YWMvZWRpdGluZy9zcGVsbGluZy9kZWxldGUtYXV0b2NvcnJlY3RlZC13b3JkLTEuaHRtbAogcGxh
dGZvcm0vbWFjL2VkaXRpbmcvc3BlbGxpbmcvZGVsZXRlLWludG8tYXV0b2NvcnJlY3RlZC13b3Jk
Lmh0bWwKIHBsYXRmb3JtL21hYy9lZGl0aW5nL3NwZWxsaW5nL2RlbGV0ZS1pbnRvLW1pc3NwZWxs
ZWQtd29yZC5odG1sCiBwbGF0Zm9ybS9tYWMvZWRpdGluZy9zcGVsbGluZy9lZGl0aW5nLW11bHRp
cGxlLXdvcmRzLXdpdGgtbWFya2Vycy5odG1sCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMtd2syL1NraXBwZWQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdr
Mi9Ta2lwcGVkCShyZXZpc2lvbiA3Mjc4MikKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13
azIvU2tpcHBlZAkod29ya2luZyBjb3B5KQpAQCAtNDk0LDYgKzQ5NCw3IEBAIHBsYXRmb3JtL21h
Yy9lZGl0aW5nL3NwZWxsaW5nL2F1dG9jb3JyZWMKIHBsYXRmb3JtL21hYy9lZGl0aW5nL3NwZWxs
aW5nL2F1dG9jb3JyZWN0aW9uLXJlbW92aW5nLXVuZGVybGluZS5odG1sCiBwbGF0Zm9ybS9tYWMv
ZWRpdGluZy9zcGVsbGluZy9hdXRvY29ycmVjdGlvbi1zaW1wbGUuaHRtbAogcGxhdGZvcm0vbWFj
L2VkaXRpbmcvc3BlbGxpbmcvY2xpY2stYXV0b2NvcnJlY3RlZC13b3JkLmh0bWwKK3BsYXRmb3Jt
L21hYy9lZGl0aW5nL3NwZWxsaW5nL2RlbGV0ZS1hdXRvY29ycmVjdGVkLXdvcmQtMS5odG1sCiBw
bGF0Zm9ybS9tYWMvZWRpdGluZy9zcGVsbGluZy9kZWxldGUtaW50by1hdXRvY29ycmVjdGVkLXdv
cmQuaHRtbAogcGxhdGZvcm0vbWFjL2VkaXRpbmcvc3BlbGxpbmcvZGVsZXRlLWludG8tbWlzc3Bl
bGxlZC13b3JkLmh0bWwKIHBsYXRmb3JtL21hYy9lZGl0aW5nL3NwZWxsaW5nL2VkaXRpbmctbXVs
dGlwbGUtd29yZHMtd2l0aC1tYXJrZXJzLmh0bWwKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9lZGl0aW5nL3NwZWxsaW5nL2RlbGV0ZS1hdXRvY29ycmVjdGVkLXdvcmQtMS1leHBlY3Rl
ZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2VkaXRpbmcvc3Bl
bGxpbmcvZGVsZXRlLWF1dG9jb3JyZWN0ZWQtd29yZC0xLWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9lZGl0aW5nL3NwZWxsaW5nL2RlbGV0ZS1h
dXRvY29ycmVjdGVkLXdvcmQtMS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
OTcgQEAKK0VESVRJTkcgREVMRUdBVEU6IHNob3VsZEJlZ2luRWRpdGluZ0luRE9NUmFuZ2U6cmFu
Z2UgZnJvbSAwIG9mIERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDMgb2YgRElWID4g
Qk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQKK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRCZWdp
bkVkaXRpbmc6V2ViVmlld0RpZEJlZ2luRWRpdGluZ05vdGlmaWNhdGlvbgorRURJVElORyBERUxF
R0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9u
Tm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJh
bmdlOnJhbmdlIGZyb20gMCBvZiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byAwIG9m
IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSAxIG9m
ICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gMSBvZiAjdGV4dCA+IERJ
ViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IGFmZmluaXR5Ok5TU2VsZWN0aW9uQWZmaW5pdHlE
b3duc3RyZWFtIHN0aWxsU2VsZWN0aW5nOkZBTFNFCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3
RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24K
K0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2U6V2ViVmlld0RpZENoYW5nZU5vdGlm
aWNhdGlvbgorRURJVElORyBERUxFR0FURTogc2hvdWxkQ2hhbmdlU2VsZWN0ZWRET01SYW5nZTpy
YW5nZSBmcm9tIDEgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byAx
IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG9ET01SYW5nZTpyYW5n
ZSBmcm9tIDIgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byAyIG9m
ICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgYWZmaW5pdHk6TlNTZWxlY3Rp
b25BZmZpbml0eURvd25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6RkFMU0UKK0VESVRJTkcgREVMRUdB
VEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5v
dGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZTpXZWJWaWV3RGlk
Q2hhbmdlTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiBzaG91bGRDaGFuZ2VTZWxlY3Rl
ZERPTVJhbmdlOnJhbmdlIGZyb20gMiBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2Rv
Y3VtZW50IHRvIDIgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0b0RP
TVJhbmdlOnJhbmdlIGZyb20gMyBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3Vt
ZW50IHRvIDMgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCBhZmZpbml0
eTpOU1NlbGVjdGlvbkFmZmluaXR5RG93bnN0cmVhbSBzdGlsbFNlbGVjdGluZzpGQUxTRQorRURJ
VElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdl
U2VsZWN0aW9uTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdl
OldlYlZpZXdEaWRDaGFuZ2VOb3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHNob3VsZENo
YW5nZVNlbGVjdGVkRE9NUmFuZ2U6cmFuZ2UgZnJvbSAzIG9mICN0ZXh0ID4gRElWID4gQk9EWSA+
IEhUTUwgPiAjZG9jdW1lbnQgdG8gMyBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2Rv
Y3VtZW50IHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSA0IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhU
TUwgPiAjZG9jdW1lbnQgdG8gNCBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3Vt
ZW50IGFmZmluaXR5Ok5TU2VsZWN0aW9uQWZmaW5pdHlEb3duc3RyZWFtIHN0aWxsU2VsZWN0aW5n
OkZBTFNFCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZp
ZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHdlYlZp
ZXdEaWRDaGFuZ2U6V2ViVmlld0RpZENoYW5nZU5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FU
RTogc2hvdWxkQ2hhbmdlU2VsZWN0ZWRET01SYW5nZTpyYW5nZSBmcm9tIDQgb2YgI3RleHQgPiBE
SVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byA0IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+
IEhUTUwgPiAjZG9jdW1lbnQgdG9ET01SYW5nZTpyYW5nZSBmcm9tIDUgb2YgI3RleHQgPiBESVYg
PiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byA1IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhU
TUwgPiAjZG9jdW1lbnQgYWZmaW5pdHk6TlNTZWxlY3Rpb25BZmZpbml0eURvd25zdHJlYW0gc3Rp
bGxTZWxlY3Rpbmc6RkFMU0UKK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxl
Y3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgorRURJVElORyBERUxF
R0FURTogd2ViVmlld0RpZENoYW5nZTpXZWJWaWV3RGlkQ2hhbmdlTm90aWZpY2F0aW9uCitFRElU
SU5HIERFTEVHQVRFOiBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlOnJhbmdlIGZyb20gNSBv
ZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDUgb2YgI3RleHQgPiBE
SVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0b0RPTVJhbmdlOnJhbmdlIGZyb20gNiBvZiAj
dGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDYgb2YgI3RleHQgPiBESVYg
PiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCBhZmZpbml0eTpOU1NlbGVjdGlvbkFmZmluaXR5RG93
bnN0cmVhbSBzdGlsbFNlbGVjdGluZzpGQUxTRQorRURJVElORyBERUxFR0FURTogd2ViVmlld0Rp
ZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCitF
RElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlOldlYlZpZXdEaWRDaGFuZ2VOb3RpZmlj
YXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2U6cmFu
Z2UgZnJvbSA2IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gNiBv
ZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvRE9NUmFuZ2U6cmFuZ2Ug
ZnJvbSA3IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gNyBvZiAj
dGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IGFmZmluaXR5Ok5TU2VsZWN0aW9u
QWZmaW5pdHlEb3duc3RyZWFtIHN0aWxsU2VsZWN0aW5nOkZBTFNFCitFRElUSU5HIERFTEVHQVRF
OiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3Rp
ZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2U6V2ViVmlld0RpZENo
YW5nZU5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogc2hvdWxkQ2hhbmdlU2VsZWN0ZWRE
T01SYW5nZTpyYW5nZSBmcm9tIDcgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1
bWVudCB0byA3IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG9ET01S
YW5nZTpyYW5nZSBmcm9tIDggb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVu
dCB0byA4IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgYWZmaW5pdHk6
TlNTZWxlY3Rpb25BZmZpbml0eURvd25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6RkFMU0UKK0VESVRJ
TkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNl
bGVjdGlvbk5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZTpX
ZWJWaWV3RGlkQ2hhbmdlTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiBzaG91bGRDaGFu
Z2VTZWxlY3RlZERPTVJhbmdlOnJhbmdlIGZyb20gOCBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBI
VE1MID4gI2RvY3VtZW50IHRvIDggb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1
bWVudCB0b0RPTVJhbmdlOnJhbmdlIGZyb20gOSBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1M
ID4gI2RvY3VtZW50IHRvIDkgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVu
dCBhZmZpbml0eTpOU1NlbGVjdGlvbkFmZmluaXR5RG93bnN0cmVhbSBzdGlsbFNlbGVjdGluZzpG
QUxTRQorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3
RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3
RGlkQ2hhbmdlOldlYlZpZXdEaWRDaGFuZ2VOb3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6
IHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2U6cmFuZ2UgZnJvbSA5IG9mICN0ZXh0ID4gRElW
ID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gOSBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBI
VE1MID4gI2RvY3VtZW50IHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSAxMCBvZiAjdGV4dCA+IERJViA+
IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDEwIG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhU
TUwgPiAjZG9jdW1lbnQgYWZmaW5pdHk6TlNTZWxlY3Rpb25BZmZpbml0eURvd25zdHJlYW0gc3Rp
bGxTZWxlY3Rpbmc6RkFMU0UKK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxl
Y3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgorRURJVElORyBERUxF
R0FURTogd2ViVmlld0RpZENoYW5nZTpXZWJWaWV3RGlkQ2hhbmdlTm90aWZpY2F0aW9uCitFRElU
SU5HIERFTEVHQVRFOiBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlOnJhbmdlIGZyb20gMTAg
b2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byAxMCBvZiAjdGV4dCA+
IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSAxMSBv
ZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDExIG9mICN0ZXh0ID4g
RElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgYWZmaW5pdHk6TlNTZWxlY3Rpb25BZmZpbml0
eURvd25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6RkFMU0UKK0VESVRJTkcgREVMRUdBVEU6IHdlYlZp
ZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlv
bgorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZTpXZWJWaWV3RGlkQ2hhbmdlTm90
aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdl
OnJhbmdlIGZyb20gMTEgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0
byAxMSBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvRE9NUmFuZ2U6
cmFuZ2UgZnJvbSAxMiBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRv
IDEyIG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgYWZmaW5pdHk6TlNT
ZWxlY3Rpb25BZmZpbml0eURvd25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6RkFMU0UKK0VESVRJTkcg
REVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVj
dGlvbk5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZTpXZWJW
aWV3RGlkQ2hhbmdlTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiBzaG91bGRDaGFuZ2VT
ZWxlY3RlZERPTVJhbmdlOnJhbmdlIGZyb20gMTIgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRN
TCA+ICNkb2N1bWVudCB0byAxMiBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3Vt
ZW50IHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSAxMyBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1M
ID4gI2RvY3VtZW50IHRvIDEzIG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1l
bnQgYWZmaW5pdHk6TlNTZWxlY3Rpb25BZmZpbml0eURvd25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6
RkFMU0UKK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmll
d0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogd2ViVmll
d0RpZENoYW5nZTpXZWJWaWV3RGlkQ2hhbmdlTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRF
OiBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlOnJhbmdlIGZyb20gMTMgb2YgI3RleHQgPiBE
SVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byAxMyBvZiAjdGV4dCA+IERJViA+IEJPRFkg
PiBIVE1MID4gI2RvY3VtZW50IHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSA0IG9mICN0ZXh0ID4gRElW
ID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gMTIgb2YgI3RleHQgPiBESVYgPiBCT0RZID4g
SFRNTCA+ICNkb2N1bWVudCBhZmZpbml0eTpOU1NlbGVjdGlvbkFmZmluaXR5RG93bnN0cmVhbSBz
dGlsbFNlbGVjdGluZzpGQUxTRQorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNl
bGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCitFRElUSU5HIERF
TEVHQVRFOiBzaG91bGRJbnNlcnRUZXh0Om1lc3NhZ2UgcmVwbGFjaW5nRE9NUmFuZ2U6cmFuZ2Ug
ZnJvbSA0IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gMTIgb2Yg
I3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCBnaXZlbkFjdGlvbjpXZWJWaWV3
SW5zZXJ0QWN0aW9uVHlwZWQKK0VESVRJTkcgREVMRUdBVEU6IHNob3VsZENoYW5nZVNlbGVjdGVk
RE9NUmFuZ2U6cmFuZ2UgZnJvbSA0IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9j
dW1lbnQgdG8gMTIgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0b0RP
TVJhbmdlOnJhbmdlIGZyb20gMTEgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1
bWVudCB0byAxMSBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IGFmZmlu
aXR5Ok5TU2VsZWN0aW9uQWZmaW5pdHlEb3duc3RyZWFtIHN0aWxsU2VsZWN0aW5nOkZBTFNFCitF
RElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFu
Z2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFu
Z2U6V2ViVmlld0RpZENoYW5nZU5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogd2ViVmll
d0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9u
CitFRElUSU5HIERFTEVHQVRFOiBzaG91bGREZWxldGVET01SYW5nZTpyYW5nZSBmcm9tIDExIG9m
ICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gMTIgb2YgI3RleHQgPiBE
SVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudAorRURJVElORyBERUxFR0FURTogc2hvdWxkQ2hh
bmdlU2VsZWN0ZWRET01SYW5nZTpyYW5nZSBmcm9tIDExIG9mICN0ZXh0ID4gRElWID4gQk9EWSA+
IEhUTUwgPiAjZG9jdW1lbnQgdG8gMTEgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNk
b2N1bWVudCB0b0RPTVJhbmdlOnJhbmdlIGZyb20gMTEgb2YgI3RleHQgPiBESVYgPiBCT0RZID4g
SFRNTCA+ICNkb2N1bWVudCB0byAxMSBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2Rv
Y3VtZW50IGFmZmluaXR5Ok5TU2VsZWN0aW9uQWZmaW5pdHlEb3duc3RyZWFtIHN0aWxsU2VsZWN0
aW5nOkZBTFNFCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldl
YlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHdl
YlZpZXdEaWRDaGFuZ2U6V2ViVmlld0RpZENoYW5nZU5vdGlmaWNhdGlvbgorRURJVElORyBERUxF
R0FURTogc2hvdWxkRGVsZXRlRE9NUmFuZ2U6cmFuZ2UgZnJvbSAxMCBvZiAjdGV4dCA+IERJViA+
IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDExIG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhU
TUwgPiAjZG9jdW1lbnQKK0VESVRJTkcgREVMRUdBVEU6IHNob3VsZENoYW5nZVNlbGVjdGVkRE9N
UmFuZ2U6cmFuZ2UgZnJvbSAxMCBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3Vt
ZW50IHRvIDEwIG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG9ET01S
YW5nZTpyYW5nZSBmcm9tIDEwIG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1l
bnQgdG8gMTAgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCBhZmZpbml0
eTpOU1NlbGVjdGlvbkFmZmluaXR5RG93bnN0cmVhbSBzdGlsbFNlbGVjdGluZzpGQUxTRQorRURJ
VElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdl
U2VsZWN0aW9uTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdl
OldlYlZpZXdEaWRDaGFuZ2VOb3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHNob3VsZERl
bGV0ZURPTVJhbmdlOnJhbmdlIGZyb20gOSBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4g
I2RvY3VtZW50IHRvIDEwIG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQK
K0VESVRJTkcgREVMRUdBVEU6IHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2U6cmFuZ2UgZnJv
bSA5IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gOSBvZiAjdGV4
dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSA5
IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gOSBvZiAjdGV4dCA+
IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IGFmZmluaXR5Ok5TU2VsZWN0aW9uQWZmaW5p
dHlEb3duc3RyZWFtIHN0aWxsU2VsZWN0aW5nOkZBTFNFCitFRElUSU5HIERFTEVHQVRFOiB3ZWJW
aWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRp
b24KK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2U6V2ViVmlld0RpZENoYW5nZU5v
dGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogc2hvdWxkRGVsZXRlRE9NUmFuZ2U6cmFuZ2Ug
ZnJvbSA4IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gOSBvZiAj
dGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50CitFRElUSU5HIERFTEVHQVRFOiBz
aG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlOnJhbmdlIGZyb20gOCBvZiAjdGV4dCA+IERJViA+
IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDggb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRN
TCA+ICNkb2N1bWVudCB0b0RPTVJhbmdlOnJhbmdlIGZyb20gOCBvZiAjdGV4dCA+IERJViA+IEJP
RFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDggb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+
ICNkb2N1bWVudCBhZmZpbml0eTpOU1NlbGVjdGlvbkFmZmluaXR5RG93bnN0cmVhbSBzdGlsbFNl
bGVjdGluZzpGQUxTRQorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlv
bjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRF
OiB3ZWJWaWV3RGlkQ2hhbmdlOldlYlZpZXdEaWRDaGFuZ2VOb3RpZmljYXRpb24KK0VESVRJTkcg
REVMRUdBVEU6IHNob3VsZERlbGV0ZURPTVJhbmdlOnJhbmdlIGZyb20gNyBvZiAjdGV4dCA+IERJ
ViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDggb2YgI3RleHQgPiBESVYgPiBCT0RZID4g
SFRNTCA+ICNkb2N1bWVudAorRURJVElORyBERUxFR0FURTogc2hvdWxkQ2hhbmdlU2VsZWN0ZWRE
T01SYW5nZTpyYW5nZSBmcm9tIDcgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1
bWVudCB0byA3IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG9ET01S
YW5nZTpyYW5nZSBmcm9tIDcgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVu
dCB0byA3IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgYWZmaW5pdHk6
TlNTZWxlY3Rpb25BZmZpbml0eURvd25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6RkFMU0UKK0VESVRJ
TkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNl
bGVjdGlvbk5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZTpX
ZWJWaWV3RGlkQ2hhbmdlTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiBzaG91bGREZWxl
dGVET01SYW5nZTpyYW5nZSBmcm9tIDYgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNk
b2N1bWVudCB0byA3IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQKK0VE
SVRJTkcgREVMRUdBVEU6IHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2U6cmFuZ2UgZnJvbSA2
IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gNiBvZiAjdGV4dCA+
IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSA2IG9m
ICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gNiBvZiAjdGV4dCA+IERJ
ViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IGFmZmluaXR5Ok5TU2VsZWN0aW9uQWZmaW5pdHlE
b3duc3RyZWFtIHN0aWxsU2VsZWN0aW5nOkZBTFNFCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3
RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24K
K0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2U6V2ViVmlld0RpZENoYW5nZU5vdGlm
aWNhdGlvbgorRURJVElORyBERUxFR0FURTogc2hvdWxkRGVsZXRlRE9NUmFuZ2U6cmFuZ2UgZnJv
bSA1IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gNiBvZiAjdGV4
dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50CitFRElUSU5HIERFTEVHQVRFOiBzaG91
bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlOnJhbmdlIGZyb20gNSBvZiAjdGV4dCA+IERJViA+IEJP
RFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDUgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+
ICNkb2N1bWVudCB0b0RPTVJhbmdlOnJhbmdlIGZyb20gNSBvZiAjdGV4dCA+IERJViA+IEJPRFkg
PiBIVE1MID4gI2RvY3VtZW50IHRvIDUgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNk
b2N1bWVudCBhZmZpbml0eTpOU1NlbGVjdGlvbkFmZmluaXR5RG93bnN0cmVhbSBzdGlsbFNlbGVj
dGluZzpGQUxTRQorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpX
ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiB3
ZWJWaWV3RGlkQ2hhbmdlOldlYlZpZXdEaWRDaGFuZ2VOb3RpZmljYXRpb24KK0VESVRJTkcgREVM
RUdBVEU6IHNob3VsZERlbGV0ZURPTVJhbmdlOnJhbmdlIGZyb20gNCBvZiAjdGV4dCA+IERJViA+
IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDUgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRN
TCA+ICNkb2N1bWVudAorRURJVElORyBERUxFR0FURTogc2hvdWxkQ2hhbmdlU2VsZWN0ZWRET01S
YW5nZTpyYW5nZSBmcm9tIDQgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVu
dCB0byA0IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG9ET01SYW5n
ZTpyYW5nZSBmcm9tIDQgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0
byA0IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgYWZmaW5pdHk6TlNT
ZWxlY3Rpb25BZmZpbml0eURvd25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6RkFMU0UKK0VESVRJTkcg
REVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVj
dGlvbk5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZTpXZWJW
aWV3RGlkQ2hhbmdlTm90aWZpY2F0aW9uCitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAg
UmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgwLDApIHNpemUgODAw
eDYwMAorICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgICAgUmVu
ZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3ODR4NTg0CisgICAgICBSZW5kZXJCbG9jayB7
RElWfSBhdCAoMCwwKSBzaXplIDc4NHgxOAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQg
KDAsMCkgc2l6ZSAzOTd4MTgKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAzOTc6
ICJVcG9uIHN1Y2Nlc3MsIHlvdSBzaG91bGQgb25seSBzZWUgdGhlIHdvcmQgXCJ0aGVcIiBpbiB0
ZXh0IGZpZWxkLiIKKyAgICAgIFJlbmRlckJsb2NrIHtQfSBhdCAoMCwzNCkgc2l6ZSA3ODR4MTgg
W2NvbG9yPSMwMDgwMDBdCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXpl
IDcwMngxOAorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDcwMjogIk5vdGUsIHRo
aXMgdGVzdCBjYW4gZmFpbCBkdWUgdG8gdXNlciBzcGVjaWZpYyBzcGVsbCBjaGVja2luZyBkYXRh
LiBUbyBmaXggdGhpcywgcmVtb3ZlIGFsbCBmaWxlcyBpbiB+L0xpYnJhcnkvU3BlbGxpbmcuIgor
ICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsNjgpIHNpemUgNzg0eDU2IFtib3JkZXI6ICgy
cHggc29saWQgI0ZGMDAwMCldCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMTQsMTQp
IHNpemUgMzZ4MjgKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMTQsMTQpIHdpZHRoIDM2OiAidGhl
ICIKKyAgICAgICAgUmVuZGVySW5saW5lIHtTUEFOfSBhdCAoMCwwKSBzaXplIDB4MjgKK2NhcmV0
OiBwb3NpdGlvbiA0IG9mIGNoaWxkIDAgeyN0ZXh0fSBvZiBjaGlsZCA1IHtESVZ9IG9mIGJvZHkK
SW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9lZGl0aW5nL3NwZWxsaW5nL2RlbGV0ZS1h
dXRvY29ycmVjdGVkLXdvcmQtMS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9lZGl0aW5nL3NwZWxsaW5nL2RlbGV0ZS1hdXRvY29ycmVjdGVkLXdvcmQtMS5odG1s
CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2VkaXRpbmcvc3BlbGxp
bmcvZGVsZXRlLWF1dG9jb3JyZWN0ZWQtd29yZC0xLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsNTYgQEAKKzxodG1sPiAKKzxoZWFkPgorCis8c3R5bGU+CisuZWRpdGluZyB7IAorICAgIGJv
cmRlcjogMnB4IHNvbGlkIHJlZDsgCisgICAgcGFkZGluZzogMTJweDsgCisgICAgZm9udC1zaXpl
OiAyNHB4OyAKK30KKzwvc3R5bGU+Cis8c2NyaXB0IHNyYz0uLi8uLi8uLi8uLi9lZGl0aW5nL2Vk
aXRpbmcuanMgbGFuZ3VhZ2U9IkphdmFTY3JpcHQiIHR5cGU9InRleHQvSmF2YVNjcmlwdCIgPjwv
c2NyaXB0PgorCis8c2NyaXB0PgorCitmdW5jdGlvbiBlZGl0aW5nVGVzdCgpIHsKKyAgICB0eXBl
Q2hhcmFjdGVyQ29tbWFuZCgndCcpOworICAgIHR5cGVDaGFyYWN0ZXJDb21tYW5kKCdoJyk7Cisg
ICAgdHlwZUNoYXJhY3RlckNvbW1hbmQoJ2UnKTsKKyAgICB0eXBlQ2hhcmFjdGVyQ29tbWFuZCgn
ICcpOworICAgIHR5cGVDaGFyYWN0ZXJDb21tYW5kKCdtJyk7CisgICAgdHlwZUNoYXJhY3RlckNv
bW1hbmQoJ2UnKTsKKyAgICB0eXBlQ2hhcmFjdGVyQ29tbWFuZCgncycpOworICAgIHR5cGVDaGFy
YWN0ZXJDb21tYW5kKCdzJyk7CisgICAgdHlwZUNoYXJhY3RlckNvbW1hbmQoJ2EnKTsKKyAgICB0
eXBlQ2hhcmFjdGVyQ29tbWFuZCgnZycpOworICAgIHR5cGVDaGFyYWN0ZXJDb21tYW5kKCdlJyk7
CisgICAgdHlwZUNoYXJhY3RlckNvbW1hbmQoJ2UnKTsKKyAgICB0eXBlQ2hhcmFjdGVyQ29tbWFu
ZCgnICcpOworICAgIGV4ZWNEZWxldGVDb21tYW5kKCk7CisgICAgZXhlY0RlbGV0ZUNvbW1hbmQo
KTsKKyAgICBleGVjRGVsZXRlQ29tbWFuZCgpOworICAgIGV4ZWNEZWxldGVDb21tYW5kKCk7Cisg
ICAgZXhlY0RlbGV0ZUNvbW1hbmQoKTsKKyAgICBleGVjRGVsZXRlQ29tbWFuZCgpOworICAgIGV4
ZWNEZWxldGVDb21tYW5kKCk7CisgICAgZXhlY0RlbGV0ZUNvbW1hbmQoKTsKK30KKworPC9zY3Jp
cHQ+CisKKzx0aXRsZT5EZWxldGUgQXV0b2NvcnJlY3RlZCBXb3JkIFRlc3QgMTwvdGl0bGU+IAor
PC9oZWFkPiAKKzxib2R5PgorPGRpdj5VcG9uIHN1Y2Nlc3MsIHlvdSBzaG91bGQgb25seSBzZWUg
dGhlIHdvcmQgInRoZSIgaW4gdGV4dCBmaWVsZC48L2Rpdj4KKzxwICBzdHlsZT0iY29sb3I6Z3Jl
ZW4iPk5vdGUsIHRoaXMgdGVzdCBjYW4gZmFpbCBkdWUgdG8gdXNlciBzcGVjaWZpYyBzcGVsbCBj
aGVja2luZyBkYXRhLiBUbyBmaXggdGhpcywgcmVtb3ZlIGFsbCBmaWxlcyBpbiB+L0xpYnJhcnkv
U3BlbGxpbmcuPC9wPgorPGRpdiBjb250ZW50ZWRpdGFibGUgaWQ9InJvb3QiIGNsYXNzPSJlZGl0
aW5nIj4KKzxzcGFuIGlkPSJ0ZXN0Ij48L3NwYW4+Cis8L2Rpdj4KKworCis8c2NyaXB0PgorcnVu
RWRpdGluZ1Rlc3QoKTsKKzwvc2NyaXB0PgorCis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>75037</attachid>
            <date>2010-11-29 09:33:34 -0800</date>
            <delta_ts>2010-11-29 14:36:00 -0800</delta_ts>
            <desc>Proposed patch (v2)</desc>
            <filename>webkit_bug50137.patch</filename>
            <type>text/plain</type>
            <size>63804</size>
            <attacher name="Jia Pu">jiapu.mail</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3MjgwNCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNjIgQEAKKzIwMTAtMTEtMjkgIEppYSBQdSAgPGpwdUBhcHBsZS5jb20+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3VwcG9ydCBtdWx0
aXBsZSBjb3JyZWN0aW9uIGNhbmRpZGF0ZXMgcGFuZWwgZm9yIG1pc3NwZWxsZWQgd29yZCBvbiBN
YWMgT1MgWC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTUwMTM3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NTY4MDU5PgorCisgICAgICAgIFRlc3Q6
IHBsYXRmb3JtL21hYy9lZGl0aW5nL3NwZWxsaW5nL2RlbGV0ZS1hdXRvY29ycmVjdGVkLXdvcmQt
MS5odG1sCisgICAgICAgIE1hbnVhbCB0ZXN0OiBXZWJDb3JlL21hbnVhbC10ZXN0cy9hdXRvY29y
cmVjdGlvbi9kaXNtaXNzLW11bHRpcGxlLWd1ZXNzZXMuaHRtbAorICAgICAgICAgICAgICAgICAg
ICAgV2ViQ29yZS9tYW51YWwtdGVzdHMvYXV0b2NvcnJlY3Rpb24vc2VsZWN0LWZyb20tbXVsdGlw
bGUtZ3Vlc3Nlcy5odG1sCisKKyAgICAgICAgVGhpcyBwYXRjaCBpcyBmb3Igc3VwcG9ydGluZyBt
dWx0aXBsZSBjb3JyZWN0aW9uIHN1Z2dlc3Rpb24gcGFuZWwgb24gTWFjIE9TIFguCisgICAgICAg
IFRoZSBiZWhhdmlvciBhbmQgaW1wbGVtZW50YXRpb24gaXMgc2ltaWxhciB0byB0aGF0IG9mIHJl
dmVyc2lvbiBjYW5kaWF0ZSBwYW5lbC4KKworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOiBBZGRl
ZCBhbmQgcmVtb3ZlZCBzeW1ib2xzLgorCisgICAgICAgICogZWRpdGluZy9Db3JyZWN0aW9uUGFu
ZWxJbmZvLmg6IEFkZGVkIG5ldyBjb3JyZWN0aW9uIHBhbmVsIHR5cGUsIFBhbmVsVHlwZVNwZWxs
aW5nU3VnZ2VzdGlvbnMuCisKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpnZXRNYXJrZXJUeXBlc0ZvckF1dG9Db3JyZWN0aW9uKTogQ29udmVuaWVudCBm
dW5jdGlvbiBmb3IgZ2V0dGluZyBtYXJrZXIgdHlwZXMgdG8KKyAgICAgICAgICBiZSBhZGRlZCB0
byBhdXRvY29ycmVjdGVkIHdvcmQuCisgICAgICAgIChXZWJDb3JlOjpnZXRNYXJrZXJUeXBlc0Zv
clJlcGxhY2VtZW50KTogQ29udmVuaWVudCBmdW5jdGlvbiBmb3IgZ2V0dGluZyBtYXJrZXIgdHlw
ZXMgdG8KKyAgICAgICAgICBiZSBhZGRlZCB0byB3b3JkIHRoYXQgaGFzIGJlZW4gcmVwbGFjZWQg
YnkgdmFyaW91cyBjb3JyZWN0aW9uIHBhbmVsLgorICAgICAgICAoV2ViQ29yZTo6Ym91bmRpbmdC
b3hGb3JSYW5nZSk6IENvbnZlbmllbnQgZnVuY3Rpb24gZm9yIGNhbGN1bGF0aW5nIHRoZSBib3Vu
ZGluZyBib3ggb2YgYSByYW5nZS4KKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6cmVzcG9uZFRv
Q2hhbmdlZFNlbGVjdGlvbik6IEFkZGVkIGNvZGUgdG8gdHJpZ2dlciB0aW1lciBmb3IgbXVsdGlw
bGUKKyAgICAgICAgICBzdWdnZXN0aW9uIHBhbmVsLgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9y
OjptYXJrTWlzc3BlbGxpbmdzQWZ0ZXJUeXBpbmdUb1dvcmQpOiBBZG9wdGVkIG5ldyBzaWduYXR1
cmUgb2YgYXBwbHlDb3JyZWN0aW9uUGFuZWxJbmZvKCkuCisgICAgICAgIChXZWJDb3JlOjpFZGl0
b3I6Om1hcmtBbGxNaXNzcGVsbGluZ3NBbmRCYWRHcmFtbWFySW5SYW5nZXMpOiBEaXR0by4KKyAg
ICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6Y29ycmVjdGlvblBhbmVsVGltZXJGaXJlZCk6IEFkZGVk
IGNvZGUgdG8gaGFuZGxlIG5ldyBtdWx0aXBsZSBzdWdnZXN0aW9uIHBhbmVsLgorICAgICAgICAo
V2ViQ29yZTo6RWRpdG9yOjpoYW5kbGVDb3JyZWN0aW9uUGFuZWxSZXN1bHQpOiBSZXBsYWNlZCBo
YW5kbGVSZWplY3RlZENvcnJlY3Rpb24oKSwgc2luY2UKKyAgICAgICAgICB3aXRoIG5ldyBBcHBL
aXQgY29ycmVjdGlvbiBwYW5lbCBBUEksIG5vdCBvbmx5IHJlamVjdGlvbiwgYnV0IGFsc28gY29u
ZmlybWF0aW9uIGNhbiBiZQorICAgICAgICAgIGhhbmRsZWQgaW4gY2FsbGJhY2suCisgICAgICAg
IChXZWJDb3JlOjpFZGl0b3I6OnN0b3BDb3JyZWN0aW9uUGFuZWxUaW1lcik6IE1vdmVkIHRoZSBj
b2RlIHRoYXQgY2xlYXJzIGNvcnJlY3Rpb24gcGFuZWwgaW5mbworICAgICAgICAgIGZyb20gZGlz
bWlzc0NvcnJlY3Rpb25QYW5lbCgpIHRvIHRoaXMgZnVuY3Rpb24gdG8gZml4IGEgYnVnIHRoYXQg
d291bGQgb2NjdXIgd2hlbiBkZWxldGluZworICAgICAgICAgIGF1dG9jb3JyZWN0ZWQgd29yZC4K
KyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6ZGlzbWlzc0NvcnJlY3Rpb25QYW5lbCk6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjphcHBseUNvcnJlY3Rpb25QYW5lbEluZm8pOiBB
ZGRlZCBjb2RlIHRvIGhhbmRsZSBuZXcgbXVsdGlwbGUgc3VnZ2VzdGlvbiBwYW5lbC4KKworICAg
ICAgICAqIGVkaXRpbmcvRWRpdG9yLmg6IFJlcGxhY2VkIGhhbmRsZVJlamVjdGVkQ29ycmVjdGlv
bigpIHdpdGggaGFuZGxlQ29ycmVjdGlvblBhbmVsUmVzdWx0KCkuCisgICAgICAgICAgQ2hhbmdl
ZCB0aGUgc2lnbmF0dXJlIG9mIGFwcGx5Q29ycmVjdGlvblBhbmVsSW5mbygpIHRvIGhhbmxkZSBu
ZXcgY29ycmVjdGlvbiBwYW5lbCB0eXBlLgorCisgICAgICAgICogZWRpdGluZy9UZXh0Q2hlY2tp
bmdIZWxwZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dENoZWNraW5nSGVscGVyOjpndWVz
c2VzRm9yTWlzc3BlbGxlZE9yVW5ncmFtbWF0aWNhbFJhbmdlKTogQWRvcHRlZCBuZXcgRWRpdG9y
Q2xpZW50OjpnZXRHdWVzc2VzRm9yV29yZCgpLgorCisgICAgICAgICogZWRpdGluZy9UZXh0Q2hl
Y2tpbmdIZWxwZXIuaDogTWFkZSBwYXJhZ3JhcGhSYW5nZSgpIHB1YmxpYy4KKworICAgICAgICAq
IGxvYWRlci9FbXB0eUNsaWVudHMuaDoKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5RWRpdG9yQ2xp
ZW50OjpzaG93Q29ycmVjdGlvblBhbmVsKTogQWRvcHRlZCBuZXcgc2lnbmF0dXJlIGRlZmluZWQg
aW4gYmFzZSBjbGFzcy4KKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5RWRpdG9yQ2xpZW50OjpnZXRH
dWVzc2VzRm9yV29yZCk6IEltcGxlbWVudGVkIG5ldyBmdW5jdGlvbnMgZGVmaW5lZCBpbiBiYXNl
IGNsYXNzLgorCisgICAgICAgICogbWFudWFsLXRlc3RzL2F1dG9jb3JyZWN0aW9uL2Rpc21pc3Mt
bXVsdGlwbGUtZ3Vlc3Nlcy5odG1sOiBBZGRlZC4KKworICAgICAgICAqIG1hbnVhbC10ZXN0cy9h
dXRvY29ycmVjdGlvbi9zZWxlY3QtZnJvbS1tdWx0aXBsZS1ndWVzc2VzLmh0bWw6IEFkZGVkLgor
CisgICAgICAgICogcGFnZS9FZGl0b3JDbGllbnQuaDogQ2hhbmdlZCBzaG93Q29ycmVjdGlvblBh
bmVsKCkgdG8gYWxsb3cgcGFzc2luZyBtdWx0aXBsZSBjb3JyZWN0aW9uCisgICAgICAgICAgY2Fu
ZGlkYXRlcy4gRGVjbGFyZWQgYSBuZXcgZ2V0R3Vlc3Nlc0ZvcldvcmQoKSB0byBhbGxvdyBwYXNz
aW5nIGluIGNvbnRleHR1YWwgdGV4dCBmb3IKKyAgICAgICAgICBiZXR0ZXIgY29ycmVjdGlvbiBz
dWdnZXN0aW9ucyAoZm9yIHRob3NlIHNwZWxsY2hlY2tlcnMgdGhhdCB1dGlsaXplcyBzdWNoIGNv
bnRleHR1YWwgaW5mb3JtYXRpb24pLgorCiAyMDEwLTExLTI5ICBXLiBKYW1lcyBNYWNMZWFuICA8
d2ptYWNsZWFuQGNocm9taXVtLm9yZz4KIAogICAgICAgIFJldmlld2VkIGJ5IERpcmsgU2NodWx6
ZS4KSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5leHAuaW4KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9X
ZWJDb3JlLmV4cC5pbgkocmV2aXNpb24gNzI4MDIpCisrKyBXZWJDb3JlL1dlYkNvcmUuZXhwLmlu
CSh3b3JraW5nIGNvcHkpCkBAIC02ODEsMTAgKzY4MSwxMCBAQCBfX1pON1dlYkNvcmU2RWRpdG9y
MjFpc1NlbGVjdGlvbk1pc3NwZWxsCiBfX1pON1dlYkNvcmU2RWRpdG9yMjNzZXRCYXNlV3JpdGlu
Z0RpcmVjdGlvbkVOU18xNldyaXRpbmdEaXJlY3Rpb25FCiBfX1pON1dlYkNvcmU2RWRpdG9yMjRh
ZHZhbmNlVG9OZXh0TWlzc3BlbGxpbmdFYgogX19aTjdXZWJDb3JlNkVkaXRvcjI0Y29tcHV0ZUFu
ZFNldFR5cGluZ1N0eWxlRVBOU18xOUNTU1N0eWxlRGVjbGFyYXRpb25FTlNfMTBFZGl0QWN0aW9u
RQotX19aTjdXZWJDb3JlNkVkaXRvcjI0aGFuZGxlUmVqZWN0ZWRDb3JyZWN0aW9uRXYKIF9fWk43
V2ViQ29yZTZFZGl0b3IyNGlzU2VsZWN0aW9uVW5ncmFtbWF0aWNhbEV2CiBfX1pON1dlYkNvcmU2
RWRpdG9yMjZkZWNyZWFzZVNlbGVjdGlvbkxpc3RMZXZlbEV2CiBfX1pON1dlYkNvcmU2RWRpdG9y
MjZpbmNyZWFzZVNlbGVjdGlvbkxpc3RMZXZlbEV2CitfX1pON1dlYkNvcmU2RWRpdG9yMjdoYW5k
bGVDb3JyZWN0aW9uUGFuZWxSZXN1bHRFUktOM1dURjZTdHJpbmdFCiBfX1pON1dlYkNvcmU2RWRp
dG9yMjljYW5EZWNyZWFzZVNlbGVjdGlvbkxpc3RMZXZlbEV2CiBfX1pON1dlYkNvcmU2RWRpdG9y
MjljYW5JbmNyZWFzZVNlbGVjdGlvbkxpc3RMZXZlbEV2CiBfX1pON1dlYkNvcmU2RWRpdG9yMzBh
cHBseVBhcmFncmFwaFN0eWxlVG9TZWxlY3Rpb25FUE5TXzE5Q1NTU3R5bGVEZWNsYXJhdGlvbkVO
U18xMEVkaXRBY3Rpb25FCkluZGV4OiBXZWJDb3JlL2VkaXRpbmcvQ29ycmVjdGlvblBhbmVsSW5m
by5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZWRpdGluZy9Db3JyZWN0aW9uUGFuZWxJbmZvLmgJ
KHJldmlzaW9uIDcyODAyKQorKysgV2ViQ29yZS9lZGl0aW5nL0NvcnJlY3Rpb25QYW5lbEluZm8u
aAkod29ya2luZyBjb3B5KQpAQCAtNDQsNyArNDQsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBz
dHJ1Y3QgQ29ycmVjdGlvblBhbmVsSW5mbyB7CiAgICAgZW51bSBQYW5lbFR5cGUgewogICAgICAg
ICBQYW5lbFR5cGVDb3JyZWN0aW9uID0gMCwKLSAgICAgICAgUGFuZWxUeXBlUmV2ZXJzaW9uCisg
ICAgICAgIFBhbmVsVHlwZVJldmVyc2lvbiwKKyAgICAgICAgUGFuZWxUeXBlU3BlbGxpbmdTdWdn
ZXN0aW9ucwogICAgIH07CiAKICAgICBSZWZQdHI8UmFuZ2U+IG1fcmFuZ2VUb0JlUmVwbGFjZWQ7
CkluZGV4OiBXZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L2VkaXRpbmcvRWRpdG9yLmNwcAkocmV2aXNpb24gNzI4MDIpCisrKyBXZWJDb3JlL2VkaXRpbmcv
RWRpdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTIsNiArOTIsMzggQEAgc3RhdGljIGlubGlu
ZSBib29sIGlzQW1iaWd1b3VzQm91bmRhcnlDaAogICAgIHJldHVybiBjaGFyYWN0ZXIgPT0gJ1wn
JyB8fCBjaGFyYWN0ZXIgPT0gcmlnaHRTaW5nbGVRdW90YXRpb25NYXJrIHx8IGNoYXJhY3RlciA9
PSBoZWJyZXdQdW5jdHVhdGlvbkdlcnNoYXlpbTsKIH0KIAorLy8gVGhpcyBpcyBmb3Igc3RvcHBp
bmcgY29tcGlsZXJzIG9uIG5vbi1NYWMgcGxhdGZvcm0gZnJvbSBjb21wbGFpbmcgYWJvdXQgdW51
c2VkIGZ1bmN0aW9ucywgc2luY2UgdGhlc2UgZnVuY3Rpb25zIGFyZSB1c2VkIG9uIE1hYy4KKyNp
ZiBTVVBQT1JUX0FVVE9DT1JSRUNUSU9OX1BBTkVMCitzdGF0aWMgY29uc3QgVmVjdG9yPERvY3Vt
ZW50TWFya2VyOjpNYXJrZXJUeXBlPiYgZ2V0TWFya2VyVHlwZXNGb3JBdXRvQ29ycmVjdGlvbigp
Cit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChWZWN0b3I8RG9jdW1lbnRNYXJrZXI6Ok1hcmtl
clR5cGU+LCBtYXJrZXJUeXBlc0ZvckF1dG9Db3JyZWN0aW9uLCAoKSk7CisgICAgaWYgKCFtYXJr
ZXJUeXBlc0ZvckF1dG9Db3JyZWN0aW9uLnNpemUoKSkgeworICAgICAgICBtYXJrZXJUeXBlc0Zv
ckF1dG9Db3JyZWN0aW9uLmFwcGVuZChEb2N1bWVudE1hcmtlcjo6UmVwbGFjZW1lbnQpOworICAg
ICAgICBtYXJrZXJUeXBlc0ZvckF1dG9Db3JyZWN0aW9uLmFwcGVuZChEb2N1bWVudE1hcmtlcjo6
Q29ycmVjdGlvbkluZGljYXRvcik7CisgICAgfQorICAgIHJldHVybiBtYXJrZXJUeXBlc0ZvckF1
dG9Db3JyZWN0aW9uOworfQorCitzdGF0aWMgRmxvYXRSZWN0IGJvdW5kaW5nQm94Rm9yUmFuZ2Uo
UmFuZ2UqIHJhbmdlKQoreworICAgIFZlY3RvcjxGbG9hdFF1YWQ+IHRleHRRdWFkczsKKyAgICBy
YW5nZS0+Z2V0Qm9yZGVyQW5kVGV4dFF1YWRzKHRleHRRdWFkcyk7CisgICAgVmVjdG9yPEZsb2F0
UXVhZD46OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IHRleHRRdWFkcy5lbmQoKTsKKyAgICBGbG9hdFJl
Y3QgdG90YWxCb3VuZGluZ0JveDsKKyAgICBmb3IgKFZlY3RvcjxGbG9hdFF1YWQ+Ojpjb25zdF9p
dGVyYXRvciBpdCA9IHRleHRRdWFkcy5iZWdpbigpOyBpdCA8IGVuZDsgKytpdCkKKyAgICAgICAg
dG90YWxCb3VuZGluZ0JveC51bml0ZShpdC0+Ym91bmRpbmdCb3goKSk7CisgICAgcmV0dXJuIHRv
dGFsQm91bmRpbmdCb3g7Cit9CisjZW5kaWYgLy8gU1VQUE9SVF9BVVRPQ09SUkVDVElPTl9QQU5F
TAorCitzdGF0aWMgY29uc3QgVmVjdG9yPERvY3VtZW50TWFya2VyOjpNYXJrZXJUeXBlPiYgZ2V0
TWFya2VyVHlwZXNGb3JSZXBsYWNlbWVudCgpCit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChW
ZWN0b3I8RG9jdW1lbnRNYXJrZXI6Ok1hcmtlclR5cGU+LCBtYXJrZXJUeXBlc0ZvclJlcGxhY2Vt
ZW50LCAoKSk7CisgICAgaWYgKCFtYXJrZXJUeXBlc0ZvclJlcGxhY2VtZW50LnNpemUoKSkKKyAg
ICAgICAgbWFya2VyVHlwZXNGb3JSZXBsYWNlbWVudC5hcHBlbmQoRG9jdW1lbnRNYXJrZXI6OlJl
cGxhY2VtZW50KTsKKyAgICByZXR1cm4gbWFya2VyVHlwZXNGb3JSZXBsYWNlbWVudDsKK30KKwog
Ly8gV2hlbiBhbiBldmVudCBoYW5kbGVyIGhhcyBtb3ZlZCB0aGUgc2VsZWN0aW9uIG91dHNpZGUg
b2YgYSB0ZXh0IGNvbnRyb2wKIC8vIHdlIHNob3VsZCB1c2UgdGhlIHRhcmdldCBjb250cm9sJ3Mg
c2VsZWN0aW9uIGZvciB0aGlzIGVkaXRpbmcgb3BlcmF0aW9uLgogVmlzaWJsZVNlbGVjdGlvbiBF
ZGl0b3I6OnNlbGVjdGlvbkZvckNvbW1hbmQoRXZlbnQqIGV2ZW50KQpAQCAtNTAwLDEzICs1MzIs
MTggQEAgdm9pZCBFZGl0b3I6OnJlc3BvbmRUb0NoYW5nZWRTZWxlY3Rpb24oYwogICAgIHNpemVf
dCBtYXJrZXJDb3VudCA9IG1hcmtlcnMuc2l6ZSgpOwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBp
IDwgbWFya2VyQ291bnQ7ICsraSkgewogICAgICAgICBjb25zdCBEb2N1bWVudE1hcmtlciYgbWFy
a2VyID0gbWFya2Vyc1tpXTsKLSAgICAgICAgaWYgKG1hcmtlci50eXBlID09IERvY3VtZW50TWFy
a2VyOjpDb3JyZWN0aW9uSW5kaWNhdG9yICYmIHN0YXRpY19jYXN0PGludD4obWFya2VyLmVuZE9m
ZnNldCkgPT0gZW5kT2Zmc2V0KSB7CisgICAgICAgIGlmICgoKG1hcmtlci50eXBlID09IERvY3Vt
ZW50TWFya2VyOjpDb3JyZWN0aW9uSW5kaWNhdG9yICYmIG1hcmtlci5kZXNjcmlwdGlvbi5sZW5n
dGgoKSA+IDApIHx8IG1hcmtlci50eXBlID09IERvY3VtZW50TWFya2VyOjpTcGVsbGluZykgJiYg
c3RhdGljX2Nhc3Q8aW50PihtYXJrZXIuZW5kT2Zmc2V0KSA9PSBlbmRPZmZzZXQpIHsKICAgICAg
ICAgICAgIFJlZlB0cjxSYW5nZT4gd29yZFJhbmdlID0gUmFuZ2U6OmNyZWF0ZShmcmFtZSgpLT5k
b2N1bWVudCgpLCBub2RlLCBtYXJrZXIuc3RhcnRPZmZzZXQsIG5vZGUsIG1hcmtlci5lbmRPZmZz
ZXQpOwogICAgICAgICAgICAgU3RyaW5nIGN1cnJlbnRXb3JkID0gcGxhaW5UZXh0KHdvcmRSYW5n
ZS5nZXQoKSk7Ci0gICAgICAgICAgICBpZiAoY3VycmVudFdvcmQubGVuZ3RoKCkgPiAwICYmIG1h
cmtlci5kZXNjcmlwdGlvbi5sZW5ndGgoKSA+IDApIHsKKyAgICAgICAgICAgIGlmIChjdXJyZW50
V29yZC5sZW5ndGgoKSA+IDApIHsKICAgICAgICAgICAgICAgICBtX2NvcnJlY3Rpb25QYW5lbElu
Zm8ubV9yYW5nZVRvQmVSZXBsYWNlZCA9IHdvcmRSYW5nZTsKLSAgICAgICAgICAgICAgICBtX2Nv
cnJlY3Rpb25QYW5lbEluZm8ubV9yZXBsYWNlbWVudFN0cmluZyA9IG1hcmtlci5kZXNjcmlwdGlv
bjsKLSAgICAgICAgICAgICAgICBzdGFydENvcnJlY3Rpb25QYW5lbFRpbWVyKENvcnJlY3Rpb25Q
YW5lbEluZm86OlBhbmVsVHlwZVJldmVyc2lvbik7CisgICAgICAgICAgICAgICAgbV9jb3JyZWN0
aW9uUGFuZWxJbmZvLm1fcmVwbGFjZWRTdHJpbmcgPSBjdXJyZW50V29yZDsKKyAgICAgICAgICAg
ICAgICBpZiAobWFya2VyLnR5cGUgPT0gRG9jdW1lbnRNYXJrZXI6OkNvcnJlY3Rpb25JbmRpY2F0
b3IpIHsKKyAgICAgICAgICAgICAgICAgICAgbV9jb3JyZWN0aW9uUGFuZWxJbmZvLm1fcmVwbGFj
ZW1lbnRTdHJpbmcgPSBtYXJrZXIuZGVzY3JpcHRpb247CisgICAgICAgICAgICAgICAgICAgIHN0
YXJ0Q29ycmVjdGlvblBhbmVsVGltZXIoQ29ycmVjdGlvblBhbmVsSW5mbzo6UGFuZWxUeXBlUmV2
ZXJzaW9uKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBz
dGFydENvcnJlY3Rpb25QYW5lbFRpbWVyKENvcnJlY3Rpb25QYW5lbEluZm86OlBhbmVsVHlwZVNw
ZWxsaW5nU3VnZ2VzdGlvbnMpOworICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CkBAIC0yMDE5LDcgKzIwNTYsNyBAQCB2b2lkIEVk
aXRvcjo6bWFya01pc3NwZWxsaW5nc0FmdGVyVHlwaW5nCiAgICAgICAgICAgICBkb0FwcGx5Q29y
cmVjdGlvbiA9IGZhbHNlOwogICAgIH0KICAgICBpZiAoZG9BcHBseUNvcnJlY3Rpb24pCi0gICAg
ICAgIGFwcGx5Q29ycmVjdGlvblBhbmVsSW5mbyh0cnVlKTsKKyAgICAgICAgYXBwbHlDb3JyZWN0
aW9uUGFuZWxJbmZvKGdldE1hcmtlclR5cGVzRm9yQXV0b0NvcnJlY3Rpb24oKSk7CiAgICAgbV9j
b3JyZWN0aW9uUGFuZWxJbmZvLm1fcmFuZ2VUb0JlUmVwbGFjZWQuY2xlYXIoKTsKICNlbHNlCiAg
ICAgVU5VU0VEX1BBUkFNKHNlbGVjdGlvbkFmdGVyVHlwaW5nKTsKQEAgLTIzNDEsNyArMjM3OCw3
IEBAIHZvaWQgRWRpdG9yOjptYXJrQWxsTWlzc3BlbGxpbmdzQW5kQmFkR3IKICAgICAgICAgICAg
ICAgICAgICAgICAgIG1fY29ycmVjdGlvblBhbmVsSW5mby5tX3JlcGxhY2VkU3RyaW5nID0gcmVw
bGFjZWRTdHJpbmc7CiAgICAgICAgICAgICAgICAgICAgICAgICBtX2NvcnJlY3Rpb25QYW5lbElu
Zm8ubV9yZXBsYWNlbWVudFN0cmluZyA9IHJlc3VsdC0+cmVwbGFjZW1lbnQ7CiAgICAgICAgICAg
ICAgICAgICAgICAgICBtX2NvcnJlY3Rpb25QYW5lbEluZm8ubV9pc0FjdGl2ZSA9IHRydWU7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICBjbGllbnQoKS0+c2hvd0NvcnJlY3Rpb25QYW5lbChtX2Nv
cnJlY3Rpb25QYW5lbEluZm8ubV9wYW5lbFR5cGUsIHRvdGFsQm91bmRpbmdCb3gsIG1fY29ycmVj
dGlvblBhbmVsSW5mby5tX3JlcGxhY2VkU3RyaW5nLCByZXN1bHQtPnJlcGxhY2VtZW50LCB0aGlz
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNsaWVudCgpLT5zaG93Q29ycmVjdGlvblBhbmVs
KG1fY29ycmVjdGlvblBhbmVsSW5mby5tX3BhbmVsVHlwZSwgdG90YWxCb3VuZGluZ0JveCwgbV9j
b3JyZWN0aW9uUGFuZWxJbmZvLm1fcmVwbGFjZWRTdHJpbmcsIHJlc3VsdC0+cmVwbGFjZW1lbnQs
IFZlY3RvcjxTdHJpbmc+KCksIHRoaXMpOwogICAgICAgICAgICAgICAgICAgICAgICAgZG9SZXBs
YWNlbWVudCA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgICB9CiAjZW5kaWYKQEAgLTI0MTks
MzkgKzI0NTYsNzYgQEAgdm9pZCBFZGl0b3I6Om1hcmtNaXNzcGVsbGluZ3NBbmRCYWRHcmFtbQog
dm9pZCBFZGl0b3I6OmNvcnJlY3Rpb25QYW5lbFRpbWVyRmlyZWQoVGltZXI8RWRpdG9yPiopCiB7
CiAjaWYgU1VQUE9SVF9BVVRPQ09SUkVDVElPTl9QQU5FTAotICAgIGlmIChtX2NvcnJlY3Rpb25Q
YW5lbEluZm8ubV9wYW5lbFR5cGUgPT0gQ29ycmVjdGlvblBhbmVsSW5mbzo6UGFuZWxUeXBlQ29y
cmVjdGlvbikgeworICAgIHN3aXRjaCAobV9jb3JyZWN0aW9uUGFuZWxJbmZvLm1fcGFuZWxUeXBl
KSB7CisgICAgY2FzZSBDb3JyZWN0aW9uUGFuZWxJbmZvOjpQYW5lbFR5cGVDb3JyZWN0aW9uOiB7
CiAgICAgICAgIFZpc2libGVTZWxlY3Rpb24gc2VsZWN0aW9uKGZyYW1lKCktPnNlbGVjdGlvbigp
LT5zZWxlY3Rpb24oKSk7CiAgICAgICAgIFZpc2libGVQb3NpdGlvbiBzdGFydChzZWxlY3Rpb24u
c3RhcnQoKSwgc2VsZWN0aW9uLmFmZmluaXR5KCkpOwogICAgICAgICBWaXNpYmxlUG9zaXRpb24g
cCA9IHN0YXJ0T2ZXb3JkKHN0YXJ0LCBMZWZ0V29yZElmT25Cb3VuZGFyeSk7CiAgICAgICAgIFZp
c2libGVTZWxlY3Rpb24gYWRqYWNlbnRXb3JkcyA9IFZpc2libGVTZWxlY3Rpb24ocCwgc3RhcnQp
OwogICAgICAgICBtYXJrQWxsTWlzc3BlbGxpbmdzQW5kQmFkR3JhbW1hckluUmFuZ2VzKE1hcmtT
cGVsbGluZyB8IFNob3dDb3JyZWN0aW9uUGFuZWwsIGFkamFjZW50V29yZHMudG9Ob3JtYWxpemVk
UmFuZ2UoKS5nZXQoKSwgMCk7Ci0gICAgfSBlbHNlIHsKKyAgICB9CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgQ29ycmVjdGlvblBhbmVsSW5mbzo6UGFuZWxUeXBlUmV2ZXJzaW9uOiB7CiAgICAg
ICAgIFN0cmluZyBjdXJyZW50V29yZCA9IHBsYWluVGV4dChtX2NvcnJlY3Rpb25QYW5lbEluZm8u
bV9yYW5nZVRvQmVSZXBsYWNlZC5nZXQoKSk7Ci0gICAgICAgIFZlY3RvcjxGbG9hdFF1YWQ+IHRl
eHRRdWFkczsKLSAgICAgICAgbV9jb3JyZWN0aW9uUGFuZWxJbmZvLm1fcmFuZ2VUb0JlUmVwbGFj
ZWQtPmdldEJvcmRlckFuZFRleHRRdWFkcyh0ZXh0UXVhZHMpOwotICAgICAgICBWZWN0b3I8Rmxv
YXRRdWFkPjo6Y29uc3RfaXRlcmF0b3IgZW5kID0gdGV4dFF1YWRzLmVuZCgpOwotICAgICAgICBG
bG9hdFJlY3QgdG90YWxCb3VuZGluZ0JveDsKLSAgICAgICAgZm9yIChWZWN0b3I8RmxvYXRRdWFk
Pjo6Y29uc3RfaXRlcmF0b3IgaXQgPSB0ZXh0UXVhZHMuYmVnaW4oKTsgaXQgPCBlbmQ7ICsraXQp
Ci0gICAgICAgICAgICB0b3RhbEJvdW5kaW5nQm94LnVuaXRlKGl0LT5ib3VuZGluZ0JveCgpKTsK
KyAgICAgICAgRmxvYXRSZWN0IGJvdW5kaW5nQm94ID0gYm91bmRpbmdCb3hGb3JSYW5nZShtX2Nv
cnJlY3Rpb25QYW5lbEluZm8ubV9yYW5nZVRvQmVSZXBsYWNlZC5nZXQoKSk7CiAgICAgICAgIG1f
Y29ycmVjdGlvblBhbmVsSW5mby5tX2lzQWN0aXZlID0gdHJ1ZTsKICAgICAgICAgbV9jb3JyZWN0
aW9uUGFuZWxJbmZvLm1fcmVwbGFjZWRTdHJpbmcgPSBjdXJyZW50V29yZDsKLSAgICAgICAgY2xp
ZW50KCktPnNob3dDb3JyZWN0aW9uUGFuZWwobV9jb3JyZWN0aW9uUGFuZWxJbmZvLm1fcGFuZWxU
eXBlLCB0b3RhbEJvdW5kaW5nQm94LCBtX2NvcnJlY3Rpb25QYW5lbEluZm8ubV9yZXBsYWNlZFN0
cmluZywgbV9jb3JyZWN0aW9uUGFuZWxJbmZvLm1fcmVwbGFjZW1lbnRTdHJpbmcsIHRoaXMpOwor
ICAgICAgICBjbGllbnQoKS0+c2hvd0NvcnJlY3Rpb25QYW5lbChtX2NvcnJlY3Rpb25QYW5lbElu
Zm8ubV9wYW5lbFR5cGUsIGJvdW5kaW5nQm94LCBtX2NvcnJlY3Rpb25QYW5lbEluZm8ubV9yZXBs
YWNlZFN0cmluZywgbV9jb3JyZWN0aW9uUGFuZWxJbmZvLm1fcmVwbGFjZW1lbnRTdHJpbmcsIFZl
Y3RvcjxTdHJpbmc+KCksIHRoaXMpOworICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBD
b3JyZWN0aW9uUGFuZWxJbmZvOjpQYW5lbFR5cGVTcGVsbGluZ1N1Z2dlc3Rpb25zOiB7CisgICAg
ICAgIFN0cmluZyBjdXJyZW50V29yZCA9IHBsYWluVGV4dChtX2NvcnJlY3Rpb25QYW5lbEluZm8u
bV9yYW5nZVRvQmVSZXBsYWNlZC5nZXQoKSk7CisgICAgICAgIGlmIChjdXJyZW50V29yZCAhPSBt
X2NvcnJlY3Rpb25QYW5lbEluZm8ubV9yZXBsYWNlZFN0cmluZykKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBGbG9hdFJlY3QgYm91bmRpbmdCb3ggPSBib3VuZGluZ0JveEZvclJhbmdlKG1f
Y29ycmVjdGlvblBhbmVsSW5mby5tX3JhbmdlVG9CZVJlcGxhY2VkLmdldCgpKTsKKyAgICAgICAg
VGV4dENoZWNraW5nUGFyYWdyYXBoIHBhcmFncmFwaChtX2NvcnJlY3Rpb25QYW5lbEluZm8ubV9y
YW5nZVRvQmVSZXBsYWNlZCk7CisgICAgICAgIFN0cmluZyBwYXJhZ3JhcGhUZXh0ID0gcGxhaW5U
ZXh0KHBhcmFncmFwaC5wYXJhZ3JhcGhSYW5nZSgpLmdldCgpKTsKKyAgICAgICAgVmVjdG9yPFN0
cmluZz4gc3VnZ2VzdGlvbnM7CisgICAgICAgIGNsaWVudCgpLT5nZXRHdWVzc2VzRm9yV29yZCht
X2NvcnJlY3Rpb25QYW5lbEluZm8ubV9yZXBsYWNlZFN0cmluZywgcGFyYWdyYXBoVGV4dCwgc3Vn
Z2VzdGlvbnMpOworICAgICAgICBpZiAoc3VnZ2VzdGlvbnMuc2l6ZSgpID4gMCkgeworICAgICAg
ICAgICAgU3RyaW5nIHRvcFN1Z2dlc3Rpb24gPSBzdWdnZXN0aW9uc1swXTsKKyAgICAgICAgICAg
IHN1Z2dlc3Rpb25zLnJlbW92ZSgwKTsKKyAgICAgICAgICAgIG1fY29ycmVjdGlvblBhbmVsSW5m
by5tX2lzQWN0aXZlID0gdHJ1ZTsKKyAgICAgICAgICAgIGNsaWVudCgpLT5zaG93Q29ycmVjdGlv
blBhbmVsKG1fY29ycmVjdGlvblBhbmVsSW5mby5tX3BhbmVsVHlwZSwgYm91bmRpbmdCb3gsIG1f
Y29ycmVjdGlvblBhbmVsSW5mby5tX3JlcGxhY2VkU3RyaW5nLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdG9wU3VnZ2VzdGlvbiwgc3VnZ2VzdGlvbnMsIHRoaXMp
OworICAgICAgICB9CisgICAgfQorICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAg
ICBicmVhazsKICAgICB9CiAjZW5kaWYKIH0KIAotdm9pZCBFZGl0b3I6OmhhbmRsZVJlamVjdGVk
Q29ycmVjdGlvbigpCit2b2lkIEVkaXRvcjo6aGFuZGxlQ29ycmVjdGlvblBhbmVsUmVzdWx0KGNv
bnN0IFN0cmluZyYgY29ycmVjdGlvbikKIHsKICAgICBSYW5nZSogcmVwbGFjZWRSYW5nZSA9IG1f
Y29ycmVjdGlvblBhbmVsSW5mby5tX3JhbmdlVG9CZVJlcGxhY2VkLmdldCgpOwogICAgIGlmICgh
cmVwbGFjZWRSYW5nZSB8fCBtX2ZyYW1lLT5kb2N1bWVudCgpICE9IHJlcGxhY2VkUmFuZ2UtPm93
bmVyRG9jdW1lbnQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKG1fY29ycmVjdGlvblBh
bmVsSW5mby5tX3BhbmVsVHlwZSA9PSBDb3JyZWN0aW9uUGFuZWxJbmZvOjpQYW5lbFR5cGVDb3Jy
ZWN0aW9uKQorICAgIFN0cmluZyBjdXJyZW50V29yZCA9IHBsYWluVGV4dChtX2NvcnJlY3Rpb25Q
YW5lbEluZm8ubV9yYW5nZVRvQmVSZXBsYWNlZC5nZXQoKSk7CisgICAgLy8gQ2hlY2sgdG8gc2Vl
IGlmIHRoZSB3b3JkIHdlIGFyZSBhYm91dCB0byBjb3JyZWN0IGhhcyBiZWVuIGNoYW5nZWQgYmV0
d2VlbiB0aW1lciBmaXJpbmcgYW5kIGNhbGxiYWNrIGJlaW5nIHRyaWdnZXJlZC4KKyAgICBpZiAo
Y3VycmVudFdvcmQgIT0gbV9jb3JyZWN0aW9uUGFuZWxJbmZvLm1fcmVwbGFjZWRTdHJpbmcpCisg
ICAgICAgIHJldHVybjsKKworICAgIG1fY29ycmVjdGlvblBhbmVsSW5mby5tX2lzQWN0aXZlID0g
ZmFsc2U7CisKKyAgICBzd2l0Y2ggKG1fY29ycmVjdGlvblBhbmVsSW5mby5tX3BhbmVsVHlwZSkg
eworICAgIGNhc2UgQ29ycmVjdGlvblBhbmVsSW5mbzo6UGFuZWxUeXBlQ29ycmVjdGlvbjoKICAg
ICAgICAgcmVwbGFjZWRSYW5nZS0+c3RhcnRDb250YWluZXIoKS0+ZG9jdW1lbnQoKS0+bWFya2Vy
cygpLT5hZGRNYXJrZXIocmVwbGFjZWRSYW5nZSwgRG9jdW1lbnRNYXJrZXI6OlJlamVjdGVkQ29y
cmVjdGlvbiwgbV9jb3JyZWN0aW9uUGFuZWxJbmZvLm1fcmVwbGFjZWRTdHJpbmcpOwotICAgIGVs
c2UgewotICAgICAgICBtX2NvcnJlY3Rpb25QYW5lbEluZm8ubV9pc0FjdGl2ZSA9IGZhbHNlOwot
ICAgICAgICBhcHBseUNvcnJlY3Rpb25QYW5lbEluZm8oZmFsc2UpOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIENvcnJlY3Rpb25QYW5lbEluZm86OlBhbmVsVHlwZVJldmVyc2lvbjoKKyAgICAg
ICAgYXBwbHlDb3JyZWN0aW9uUGFuZWxJbmZvKGdldE1hcmtlclR5cGVzRm9yUmVwbGFjZW1lbnQo
KSk7CisgICAgY2FzZSBDb3JyZWN0aW9uUGFuZWxJbmZvOjpQYW5lbFR5cGVTcGVsbGluZ1N1Z2dl
c3Rpb25zOgorICAgICAgICBpZiAoY29ycmVjdGlvbi5sZW5ndGgoKSA+IDApIHsKKyAgICAgICAg
ICAgIG1fY29ycmVjdGlvblBhbmVsSW5mby5tX3JlcGxhY2VtZW50U3RyaW5nID0gY29ycmVjdGlv
bjsKKyAgICAgICAgICAgIGFwcGx5Q29ycmVjdGlvblBhbmVsSW5mbyhnZXRNYXJrZXJUeXBlc0Zv
clJlcGxhY2VtZW50KCkpOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6
CisgICAgICAgIGJyZWFrOwogICAgIH0KKwogICAgIG1fY29ycmVjdGlvblBhbmVsSW5mby5tX3Jh
bmdlVG9CZVJlcGxhY2VkLmNsZWFyKCk7CiB9CiAKQEAgLTI0NzUsNiArMjU0OSw3IEBAIHZvaWQg
RWRpdG9yOjpzdG9wQ29ycmVjdGlvblBhbmVsVGltZXIoKQogewogI2lmIFNVUFBPUlRfQVVUT0NP
UlJFQ1RJT05fUEFORUwKICAgICBtX2NvcnJlY3Rpb25QYW5lbFRpbWVyLnN0b3AoKTsKKyAgICBt
X2NvcnJlY3Rpb25QYW5lbEluZm8ubV9yYW5nZVRvQmVSZXBsYWNlZC5jbGVhcigpOwogI2VuZGlm
CiB9CiAKQEAgLTI1MDQsNyArMjU3OSw2IEBAIHZvaWQgRWRpdG9yOjpkaXNtaXNzQ29ycmVjdGlv
blBhbmVsKENvcnIKICAgICBpZiAoIW1fY29ycmVjdGlvblBhbmVsSW5mby5tX2lzQWN0aXZlKQog
ICAgICAgICByZXR1cm47CiAgICAgbV9jb3JyZWN0aW9uUGFuZWxJbmZvLm1faXNBY3RpdmUgPSBm
YWxzZTsKLSAgICBtX2NvcnJlY3Rpb25QYW5lbEluZm8ubV9yYW5nZVRvQmVSZXBsYWNlZC5jbGVh
cigpOwogICAgIGlmIChjbGllbnQoKSkKICAgICAgICAgY2xpZW50KCktPmRpc21pc3NDb3JyZWN0
aW9uUGFuZWwoY29ycmVjdGlvbldhc1JlamVjdGVkT3JOb3QpOwogI2Vsc2UKQEAgLTI2MDgsNyAr
MjY4Miw3IEBAIHZvaWQgRWRpdG9yOjpyZW1vdmVTcGVsbEFuZENvcnJlY3Rpb25NYXIKICAgICAg
ICAgZG9jdW1lbnQtPm1hcmtlcnMoKS0+cmVtb3ZlTWFya2VycyhwYWlySXRlcmF0b3ItPmZpcnN0
LmdldCgpLCBwYWlySXRlcmF0b3ItPnNlY29uZCk7CiB9CiAKLXZvaWQgRWRpdG9yOjphcHBseUNv
cnJlY3Rpb25QYW5lbEluZm8oYm9vbCBhZGRDb3JyZWN0aW9uSW5kaWNhdG9yTWFya2VyKQordm9p
ZCBFZGl0b3I6OmFwcGx5Q29ycmVjdGlvblBhbmVsSW5mbyhjb25zdCBWZWN0b3I8RG9jdW1lbnRN
YXJrZXI6Ok1hcmtlclR5cGU+JiBtYXJrZXJUeXBlc1RvQWRkKQogewogICAgIGlmICghbV9jb3Jy
ZWN0aW9uUGFuZWxJbmZvLm1fcmFuZ2VUb0JlUmVwbGFjZWQpCiAgICAgICAgIHJldHVybjsKQEAg
LTI2NDksOSArMjcyMywxMCBAQCB2b2lkIEVkaXRvcjo6YXBwbHlDb3JyZWN0aW9uUGFuZWxJbmZv
KGJvCiAgICAgICAgIGNhcmV0UG9zaXRpb24ubW92ZVRvT2Zmc2V0KGNhcmV0UG9zaXRpb24ub2Zm
c2V0SW5Db250YWluZXJOb2RlKCkgKyBtX2NvcnJlY3Rpb25QYW5lbEluZm8ubV9yZXBsYWNlbWVu
dFN0cmluZy5sZW5ndGgoKSAtIG1fY29ycmVjdGlvblBhbmVsSW5mby5tX3JlcGxhY2VkU3RyaW5n
Lmxlbmd0aCgpKTsKICAgICAgICAgc2V0RW5kKHBhcmFncmFwaFJhbmdlQ29udGFpbmluZ0NvcnJl
Y3Rpb24uZ2V0KCksIGVuZE9mUGFyYWdyYXBoKGNhcmV0UG9zaXRpb24pKTsKICAgICAgICAgUmVm
UHRyPFJhbmdlPiByZXBsYWNlbWVudFJhbmdlID0gVGV4dEl0ZXJhdG9yOjpzdWJyYW5nZShwYXJh
Z3JhcGhSYW5nZUNvbnRhaW5pbmdDb3JyZWN0aW9uLmdldCgpLCBjb3JyZWN0aW9uU3RhcnRPZmZz
ZXRJblBhcmFncmFwaCwgbV9jb3JyZWN0aW9uUGFuZWxJbmZvLm1fcmVwbGFjZW1lbnRTdHJpbmcu
bGVuZ3RoKCkpOwotICAgICAgICByZXBsYWNlbWVudFJhbmdlLT5zdGFydENvbnRhaW5lcigpLT5k
b2N1bWVudCgpLT5tYXJrZXJzKCktPmFkZE1hcmtlcihyZXBsYWNlbWVudFJhbmdlLmdldCgpLCBE
b2N1bWVudE1hcmtlcjo6UmVwbGFjZW1lbnQsIG1fY29ycmVjdGlvblBhbmVsSW5mby5tX3JlcGxh
Y2VtZW50U3RyaW5nKTsKLSAgICAgICAgaWYgKGFkZENvcnJlY3Rpb25JbmRpY2F0b3JNYXJrZXIp
Ci0gICAgICAgICAgICByZXBsYWNlbWVudFJhbmdlLT5zdGFydENvbnRhaW5lcigpLT5kb2N1bWVu
dCgpLT5tYXJrZXJzKCktPmFkZE1hcmtlcihyZXBsYWNlbWVudFJhbmdlLmdldCgpLCBEb2N1bWVu
dE1hcmtlcjo6Q29ycmVjdGlvbkluZGljYXRvciwgbV9jb3JyZWN0aW9uUGFuZWxJbmZvLm1fcmVw
bGFjZWRTdHJpbmcpOworICAgICAgICBWZWN0b3I8RG9jdW1lbnRNYXJrZXI6Ok1hcmtlclR5cGU+
Ojpjb25zdF9pdGVyYXRvciBpdCA9IG1hcmtlclR5cGVzVG9BZGQuYmVnaW4oKTsKKyAgICAgICAg
VmVjdG9yPERvY3VtZW50TWFya2VyOjpNYXJrZXJUeXBlPjo6Y29uc3RfaXRlcmF0b3IgZW5kID0g
bWFya2VyVHlwZXNUb0FkZC5lbmQoKTsKKyAgICAgICAgZm9yICg7IGl0ICE9IGVuZDsgKytpdCkK
KyAgICAgICAgICAgIHJlcGxhY2VtZW50UmFuZ2UtPnN0YXJ0Q29udGFpbmVyKCktPmRvY3VtZW50
KCktPm1hcmtlcnMoKS0+YWRkTWFya2VyKHJlcGxhY2VtZW50UmFuZ2UuZ2V0KCksICppdCwgbV9j
b3JyZWN0aW9uUGFuZWxJbmZvLm1fcmVwbGFjZW1lbnRTdHJpbmcpOwogICAgICAgICBtX2ZyYW1l
LT5zZWxlY3Rpb24oKS0+bW92ZVRvKGNhcmV0UG9zaXRpb24sIGZhbHNlKTsKICAgICB9CiB9Cklu
ZGV4OiBXZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9lZGl0
aW5nL0VkaXRvci5oCShyZXZpc2lvbiA3MjgwMikKKysrIFdlYkNvcmUvZWRpdGluZy9FZGl0b3Iu
aAkod29ya2luZyBjb3B5KQpAQCAtMzEzLDcgKzMxMyw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQg
aGFuZGxlQ2FuY2VsT3BlcmF0aW9uKCk7CiAgICAgdm9pZCBzdGFydENvcnJlY3Rpb25QYW5lbFRp
bWVyKENvcnJlY3Rpb25QYW5lbEluZm86OlBhbmVsVHlwZSk7Ci0gICAgdm9pZCBoYW5kbGVSZWpl
Y3RlZENvcnJlY3Rpb24oKTsKKyAgICAvLyBJZiB1c2VyIGNvbmZpcm1lZCBhIGNvcnJlY3Rpb24g
aW4gdGhlIGNvcnJlY3Rpb24gcGFuZWwsIGNvcnJlY3Rpb24gaGFzIG5vbi16ZXJvIGxlbmd0aDsg
b3RoZXIgd2lzZSBpdCBtZWFucyB0aGF0IHVzZXIgaGFzIGRpc21pc3NlZCB0aGUgcGFuZWwuCisg
ICAgdm9pZCBoYW5kbGVDb3JyZWN0aW9uUGFuZWxSZXN1bHQoY29uc3QgU3RyaW5nJiBjb3JyZWN0
aW9uKTsKICAgICBib29sIGlzU2hvd2luZ0NvcnJlY3Rpb25QYW5lbCgpOwogCiAgICAgdm9pZCBw
YXN0ZUFzRnJhZ21lbnQoUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiwgYm9vbCBzbWFydFJl
cGxhY2UsIGJvb2wgbWF0Y2hTdHlsZSk7CkBAIC00MDYsNyArNDA3LDcgQEAgcHJpdmF0ZToKICAg
ICBOb2RlKiBmaW5kRXZlbnRUYXJnZXRGcm9tU2VsZWN0aW9uKCkgY29uc3Q7CiAgICAgdm9pZCBz
dG9wQ29ycmVjdGlvblBhbmVsVGltZXIoKTsKICAgICB2b2lkIGRpc21pc3NDb3JyZWN0aW9uUGFu
ZWwoQ29ycmVjdGlvbldhc1JlamVjdGVkT3JOb3QpOwotICAgIHZvaWQgYXBwbHlDb3JyZWN0aW9u
UGFuZWxJbmZvKGJvb2wgYWRkQ29ycmVjdGlvbkluZGljYXRvck1hcmtlcik7CisgICAgdm9pZCBh
cHBseUNvcnJlY3Rpb25QYW5lbEluZm8oY29uc3QgVmVjdG9yPERvY3VtZW50TWFya2VyOjpNYXJr
ZXJUeXBlPiYgbWFya2VyVHlwZXNUb0FkZCk7CiB9OwogCiBpbmxpbmUgdm9pZCBFZGl0b3I6OnNl
dFN0YXJ0TmV3S2lsbFJpbmdTZXF1ZW5jZShib29sIGZsYWcpCkluZGV4OiBXZWJDb3JlL2VkaXRp
bmcvVGV4dENoZWNraW5nSGVscGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2VkaXRpbmcv
VGV4dENoZWNraW5nSGVscGVyLmNwcAkocmV2aXNpb24gNzI4MDIpCisrKyBXZWJDb3JlL2VkaXRp
bmcvVGV4dENoZWNraW5nSGVscGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTQxLDcgKzU0MSw3
IEBAIFZlY3RvcjxTdHJpbmc+IFRleHRDaGVja2luZ0hlbHBlcjo6Z3Vlc3MKICAgICAgICAgaWYg
KHJlc3VsdC0+dHlwZSA9PSBUZXh0Q2hlY2tpbmdUeXBlU3BlbGxpbmcgJiYgcGFyYWdyYXBoLmNo
ZWNraW5nUmFuZ2VNYXRjaGVzKHJlc3VsdC0+bG9jYXRpb24sIHJlc3VsdC0+bGVuZ3RoKSkgewog
ICAgICAgICAgICAgU3RyaW5nIG1pc3NwZWxsZWRXb3JkID0gcGFyYWdyYXBoLmNoZWNraW5nU3Vi
c3RyaW5nKCk7CiAgICAgICAgICAgICBBU1NFUlQobWlzc3BlbGxlZFdvcmQubGVuZ3RoKCkpOwot
ICAgICAgICAgICAgbV9jbGllbnQtPmdldEd1ZXNzZXNGb3JXb3JkKG1pc3NwZWxsZWRXb3JkLCBn
dWVzc2VzKTsKKyAgICAgICAgICAgIG1fY2xpZW50LT5nZXRHdWVzc2VzRm9yV29yZChtaXNzcGVs
bGVkV29yZCwgU3RyaW5nKCksIGd1ZXNzZXMpOwogICAgICAgICAgICAgbV9jbGllbnQtPnVwZGF0
ZVNwZWxsaW5nVUlXaXRoTWlzc3BlbGxlZFdvcmQobWlzc3BlbGxlZFdvcmQpOwogICAgICAgICAg
ICAgbWlzc3BlbGxlZCA9IHRydWU7CiAgICAgICAgICAgICByZXR1cm4gZ3Vlc3NlczsKSW5kZXg6
IFdlYkNvcmUvZWRpdGluZy9UZXh0Q2hlY2tpbmdIZWxwZXIuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL2VkaXRpbmcvVGV4dENoZWNraW5nSGVscGVyLmgJKHJldmlzaW9uIDcyODAyKQorKysgV2Vi
Q29yZS9lZGl0aW5nL1RleHRDaGVja2luZ0hlbHBlci5oCSh3b3JraW5nIGNvcHkpCkBAIC01NSwx
MSArNTUsMTEgQEAgcHVibGljOgogICAgIGJvb2wgY2hlY2tpbmdSYW5nZU1hdGNoZXMoaW50IGxv
Y2F0aW9uLCBpbnQgbGVuZ3RoKSBjb25zdCB7IHJldHVybiBsb2NhdGlvbiA9PSBjaGVja2luZ1N0
YXJ0KCkgJiYgbGVuZ3RoID09IGNoZWNraW5nTGVuZ3RoKCk7IH0KICAgICBib29sIGlzQ2hlY2tp
bmdSYW5nZUNvdmVyZWRCeShpbnQgbG9jYXRpb24sIGludCBsZW5ndGgpIGNvbnN0IHsgcmV0dXJu
IGxvY2F0aW9uIDw9IGNoZWNraW5nU3RhcnQoKSAmJiBsb2NhdGlvbiArIGxlbmd0aCA+PSBjaGVj
a2luZ1N0YXJ0KCkgKyBjaGVja2luZ0xlbmd0aCgpOyB9CiAgICAgYm9vbCBjaGVja2luZ1Jhbmdl
Q292ZXJzKGludCBsb2NhdGlvbiwgaW50IGxlbmd0aCkgY29uc3QgeyByZXR1cm4gbG9jYXRpb24g
PCBjaGVja2luZ0VuZCgpICYmIGxvY2F0aW9uICsgbGVuZ3RoID4gY2hlY2tpbmdTdGFydCgpOyB9
CisgICAgUGFzc1JlZlB0cjxSYW5nZT4gcGFyYWdyYXBoUmFuZ2UoKSBjb25zdDsKIAogcHJpdmF0
ZToKICAgICB2b2lkIGludmFsaWRhdGVQYXJhZ3JhcGhSYW5nZVZhbHVlcygpOwogICAgIFBhc3NS
ZWZQdHI8UmFuZ2U+IGNoZWNraW5nUmFuZ2UoKSBjb25zdCB7IHJldHVybiBtX2NoZWNraW5nUmFu
Z2U7IH0KLSAgICBQYXNzUmVmUHRyPFJhbmdlPiBwYXJhZ3JhcGhSYW5nZSgpIGNvbnN0OwogICAg
IFBhc3NSZWZQdHI8UmFuZ2U+IG9mZnNldEFzUmFuZ2UoKSBjb25zdDsKICAgICBjb25zdCBTdHJp
bmcmIHRleHQoKSBjb25zdDsKIApJbmRleDogV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgJKHJldmlzaW9uIDcy
ODAyKQorKysgV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgJKHdvcmtpbmcgY29weSkKQEAg
LTQ4MCw3ICs0ODAsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGNoZWNrVGV4dE9mUGFy
YWdyYXBoKGNvbnN0IFVDaGFyKiwgaW50LCB1aW50NjRfdCwgVmVjdG9yPFRleHRDaGVja2luZ1Jl
c3VsdD4mKSB7IH07CiAjZW5kaWYKICNpZiBTVVBQT1JUX0FVVE9DT1JSRUNUSU9OX1BBTkVMCi0g
ICAgdmlydHVhbCB2b2lkIHNob3dDb3JyZWN0aW9uUGFuZWwoQ29ycmVjdGlvblBhbmVsSW5mbzo6
UGFuZWxUeXBlLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcm
LCBFZGl0b3IqKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2hvd0NvcnJlY3Rpb25QYW5lbChDb3Jy
ZWN0aW9uUGFuZWxJbmZvOjpQYW5lbFR5cGUsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IFN0cmlu
ZyYsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgRWRpdG9yKikgeyB9CiAg
ICAgdmlydHVhbCB2b2lkIGRpc21pc3NDb3JyZWN0aW9uUGFuZWwoQ29ycmVjdGlvbldhc1JlamVj
dGVkT3JOb3QpIHsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1Nob3dpbmdDb3JyZWN0aW9uUGFuZWwo
KSB7IHJldHVybiBmYWxzZTsgfQogI2VuZGlmCkBAIC00ODksNiArNDg5LDcgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgdm9pZCBzaG93U3BlbGxpbmdVSShib29sKSB7IH0KICAgICB2aXJ0dWFsIGJv
b2wgc3BlbGxpbmdVSUlzU2hvd2luZygpIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCB2
b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYsIFZlY3RvcjxTdHJpbmc+JikgeyB9
CisgICAgdmlydHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYsIGNvbnN0
IFN0cmluZyYsIFZlY3RvcjxTdHJpbmc+JikgeyB9CiAgICAgdmlydHVhbCB2b2lkIHdpbGxTZXRJ
bnB1dE1ldGhvZFN0YXRlKCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIHNldElucHV0TWV0aG9kU3Rh
dGUoYm9vbCkgeyB9CiAKSW5kZXg6IFdlYkNvcmUvbWFudWFsLXRlc3RzL2F1dG9jb3JyZWN0aW9u
L2Rpc21pc3MtbXVsdGlwbGUtZ3Vlc3Nlcy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvbWFu
dWFsLXRlc3RzL2F1dG9jb3JyZWN0aW9uL2Rpc21pc3MtbXVsdGlwbGUtZ3Vlc3Nlcy5odG1sCShy
ZXZpc2lvbiAwKQorKysgV2ViQ29yZS9tYW51YWwtdGVzdHMvYXV0b2NvcnJlY3Rpb24vZGlzbWlz
cy1tdWx0aXBsZS1ndWVzc2VzLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDkgQEAKKzxo
dG1sPgorPGhlYWQ+CisKKzxzdHlsZT4KKy5lZGl0aW5nIHsKKyAgICBib3JkZXI6IDJweCBzb2xp
ZCByZWQ7CisgICAgcGFkZGluZzogMTJweDsKKyAgICBmb250LXNpemU6IDI0cHg7Cit9Cis8L3N0
eWxlPgorPHNjcmlwdCBzcmM9Li4vLi4vLi4vTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0aW5nLmpz
IGxhbmd1YWdlPSJKYXZhU2NyaXB0IiB0eXBlPSJ0ZXh0L0phdmFTY3JpcHQiID48L3NjcmlwdD4K
KworPHNjcmlwdD4KK2Z1bmN0aW9uIGVkaXRpbmdUZXN0KCkgeworICAgIHR5cGVDaGFyYWN0ZXJD
b21tYW5kKCd0Jyk7CisgICAgdHlwZUNoYXJhY3RlckNvbW1hbmQoJ2gnKTsKKyAgICB0eXBlQ2hh
cmFjdGVyQ29tbWFuZCgnZScpOworICAgIHR5cGVDaGFyYWN0ZXJDb21tYW5kKCcgJyk7CisgICAg
dHlwZUNoYXJhY3RlckNvbW1hbmQoJ20nKTsKKyAgICB0eXBlQ2hhcmFjdGVyQ29tbWFuZCgnZScp
OworICAgIHR5cGVDaGFyYWN0ZXJDb21tYW5kKCdzJyk7CisgICAgdHlwZUNoYXJhY3RlckNvbW1h
bmQoJ2EnKTsKKyAgICB0eXBlQ2hhcmFjdGVyQ29tbWFuZCgnZScpOworICAgIHR5cGVDaGFyYWN0
ZXJDb21tYW5kKCdnJyk7CisgICAgdHlwZUNoYXJhY3RlckNvbW1hbmQoJ2UnKTsKKyAgICB0eXBl
Q2hhcmFjdGVyQ29tbWFuZCgnZScpOworICAgIHR5cGVDaGFyYWN0ZXJDb21tYW5kKCcgJyk7Cisg
ICAgZXhlY01vdmVTZWxlY3Rpb25CYWNrd2FyZEJ5Q2hhcmFjdGVyQ29tbWFuZCgpOworfQorCis8
L3NjcmlwdD4KKworPHRpdGxlPkRpc21pc3MgTXVsdGlwbGUgR3Vlc3NlcyBUZXN0PC90aXRsZT4K
KzwvaGVhZD4KKzxib2R5PgorPGRpdj48cD5UaGlzIHRlc3QgdmVyaWZpZXMgdGhhdCBwcmVzc2lu
ZyBFU0Mga2V5IGRpdXNtaXNzZXMgbXVsdGlwbGUgZ3Vlc3NlcyBwYW5lbCBjb3JyZWN0bHk8L3A+
Cis8cD5BZnRlciBzZWVpbmcgdGhlIHBhbmVsIHdpdGggbXVsdGlwbGUgY2FuZGlkYXRlcywgcHJl
c3NpbmcgRVNDIGtleSB0byBkaXNtaXNzIHRoZSBwYW5lbC48L3A+Cis8cCAgc3R5bGU9ImNvbG9y
OmdyZWVuIj5Ob3RlLCB0aGlzIHRlc3QgY2FuIGZhaWwgZHVlIHRvIHVzZXIgc3BlY2lmaWMgc3Bl
bGwgY2hlY2tpbmcgZGF0YS4gVG8gZml4IHRoaXMsIHJlbW92ZSBhbGwgZmlsZXMgaW4gfi9MaWJy
YXJ5L1NwZWxsaW5nLCB0aGVuIGtpbGwgQXBwbGVTcGVsbC5zZXJ2aWNlIHByb2Nlc3MuPC9wPgor
PGRpdiBjb250ZW50ZWRpdGFibGUgaWQ9InJvb3QiIGNsYXNzPSJlZGl0aW5nIj4KKzxzcGFuIGlk
PSJ0ZXN0Ij48L3NwYW4+Cis8L2Rpdj4KKworCis8c2NyaXB0PgorcnVuRWRpdGluZ1Rlc3QoKTsK
Kzwvc2NyaXB0PgorCis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBXZWJDb3JlL21hbnVhbC10ZXN0
cy9hdXRvY29ycmVjdGlvbi9zZWxlY3QtZnJvbS1tdWx0aXBsZS1ndWVzc2VzLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9tYW51YWwtdGVzdHMvYXV0b2NvcnJlY3Rpb24vc2VsZWN0LWZyb20t
bXVsdGlwbGUtZ3Vlc3Nlcy5odG1sCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9tYW51YWwtdGVz
dHMvYXV0b2NvcnJlY3Rpb24vc2VsZWN0LWZyb20tbXVsdGlwbGUtZ3Vlc3Nlcy5odG1sCShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDQ5IEBACis8aHRtbD4KKzxoZWFkPgorCis8c3R5bGU+CisuZWRp
dGluZyB7CisgICAgYm9yZGVyOiAycHggc29saWQgcmVkOworICAgIHBhZGRpbmc6IDEycHg7Cisg
ICAgZm9udC1zaXplOiAyNHB4OworfQorPC9zdHlsZT4KKzxzY3JpcHQgc3JjPS4uLy4uLy4uL0xh
eW91dFRlc3RzL2VkaXRpbmcvZWRpdGluZy5qcyBsYW5ndWFnZT0iSmF2YVNjcmlwdCIgdHlwZT0i
dGV4dC9KYXZhU2NyaXB0IiA+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CitmdW5jdGlvbiBlZGl0aW5n
VGVzdCgpIHsKKyAgICB0eXBlQ2hhcmFjdGVyQ29tbWFuZCgndCcpOworICAgIHR5cGVDaGFyYWN0
ZXJDb21tYW5kKCdoJyk7CisgICAgdHlwZUNoYXJhY3RlckNvbW1hbmQoJ2UnKTsKKyAgICB0eXBl
Q2hhcmFjdGVyQ29tbWFuZCgnICcpOworICAgIHR5cGVDaGFyYWN0ZXJDb21tYW5kKCdtJyk7Cisg
ICAgdHlwZUNoYXJhY3RlckNvbW1hbmQoJ2UnKTsKKyAgICB0eXBlQ2hhcmFjdGVyQ29tbWFuZCgn
cycpOworICAgIHR5cGVDaGFyYWN0ZXJDb21tYW5kKCdhJyk7CisgICAgdHlwZUNoYXJhY3RlckNv
bW1hbmQoJ2UnKTsKKyAgICB0eXBlQ2hhcmFjdGVyQ29tbWFuZCgnZycpOworICAgIHR5cGVDaGFy
YWN0ZXJDb21tYW5kKCdlJyk7CisgICAgdHlwZUNoYXJhY3RlckNvbW1hbmQoJ2UnKTsKKyAgICB0
eXBlQ2hhcmFjdGVyQ29tbWFuZCgnICcpOworICAgIGV4ZWNNb3ZlU2VsZWN0aW9uQmFja3dhcmRC
eUNoYXJhY3RlckNvbW1hbmQoKTsKK30KKworPC9zY3JpcHQ+CisKKzx0aXRsZT5TZWxlY3QgRnJv
bSBNdWx0aXBsZSBHdWVzc2VzIFRlc3Q8L3RpdGxlPgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2Pjxw
PlRoaXMgdGVzdCB2ZXJpZmllcyB0aGF0IG11bHRpcGxlIGd1ZXNzZXMgb24gbWlzcGVsbGVkIHdv
cmQgaXMgd29ya2luZyBjb3JyZWN0bHk8L3A+Cis8cD5BZnRlciBzZWVpbmcgdGhlIHBhbmVsIHdp
dGggbXVsdGlwbGUgY2FuZGlkYXRlcywgdXNlIGxlZnQgYW5kL29yIHJpZ2h0IGFycm93IGtleSB0
byBzZWxlY3QgdGhlIGRlc2lyZWQgY2FuZGlkYXRlLCBhbmQgdGhlbiB1c2UgcmV0dXJuIGtleSB0
byBjb25maXJtLiBZb3UgY2FuIGFsc28gdXNlIHRoaXMgdGVzdCB0byB0ZXN0IHRoYXQgcHJlc3Np
bmcgRVNDIGtleSB3aWxsIGRpc21pc3MgdGhlIHBhbmVsLjwvcD4KKzxwICBzdHlsZT0iY29sb3I6
Z3JlZW4iPk5vdGUsIHRoaXMgdGVzdCBjYW4gZmFpbCBkdWUgdG8gdXNlciBzcGVjaWZpYyBzcGVs
bCBjaGVja2luZyBkYXRhLiBUbyBmaXggdGhpcywgcmVtb3ZlIGFsbCBmaWxlcyBpbiB+L0xpYnJh
cnkvU3BlbGxpbmcsIHRoZW4ga2lsbCBBcHBsZVNwZWxsLnNlcnZpY2UgcHJvY2Vzcy48L3A+Cis8
ZGl2IGNvbnRlbnRlZGl0YWJsZSBpZD0icm9vdCIgY2xhc3M9ImVkaXRpbmciPgorPHNwYW4gaWQ9
InRlc3QiPjwvc3Bhbj4KKzwvZGl2PgorCisKKzxzY3JpcHQ+CitydW5FZGl0aW5nVGVzdCgpOwor
PC9zY3JpcHQ+CisKKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IFdlYkNvcmUvcGFnZS9FZGl0b3JD
bGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvRWRpdG9yQ2xpZW50LmgJKHJldmlz
aW9uIDcyODAyKQorKysgV2ViQ29yZS9wYWdlL0VkaXRvckNsaWVudC5oCSh3b3JraW5nIGNvcHkp
CkBAIC0xOTAsNyArMTkwLDcgQEAgcHVibGljOgogI2VuZGlmCiAKICNpZiBTVVBQT1JUX0FVVE9D
T1JSRUNUSU9OX1BBTkVMCi0gICAgdmlydHVhbCB2b2lkIHNob3dDb3JyZWN0aW9uUGFuZWwoQ29y
cmVjdGlvblBhbmVsSW5mbzo6UGFuZWxUeXBlLCBjb25zdCBGbG9hdFJlY3QmIGJvdW5kaW5nQm94
T2ZSZXBsYWNlZFN0cmluZywgY29uc3QgU3RyaW5nJiByZXBsYWNlZFN0cmluZywgY29uc3QgU3Ry
aW5nJiByZXBsYWNtZW50U3RyaW5nLCBFZGl0b3IqKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNo
b3dDb3JyZWN0aW9uUGFuZWwoQ29ycmVjdGlvblBhbmVsSW5mbzo6UGFuZWxUeXBlLCBjb25zdCBG
bG9hdFJlY3QmIGJvdW5kaW5nQm94T2ZSZXBsYWNlZFN0cmluZywgY29uc3QgU3RyaW5nJiByZXBs
YWNlZFN0cmluZywgY29uc3QgU3RyaW5nJiByZXBsYWNtZW50U3RyaW5nLCBjb25zdCBWZWN0b3I8
U3RyaW5nPiYgYWx0ZXJuYXRpdmVSZXBsYWNlbWVudFN0cmluZ3MsIEVkaXRvciopID0gMDsKICAg
ICB2aXJ0dWFsIHZvaWQgZGlzbWlzc0NvcnJlY3Rpb25QYW5lbChDb3JyZWN0aW9uV2FzUmVqZWN0
ZWRPck5vdCkgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBpc1Nob3dpbmdDb3JyZWN0aW9uUGFuZWwo
KSA9IDA7CiAjZW5kaWYKQEAgLTE5OSw3ICsxOTksOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2
b2lkIHVwZGF0ZVNwZWxsaW5nVUlXaXRoTWlzc3BlbGxlZFdvcmQoY29uc3QgU3RyaW5nJikgPSAw
OwogICAgIHZpcnR1YWwgdm9pZCBzaG93U3BlbGxpbmdVSShib29sIHNob3cpID0gMDsKICAgICB2
aXJ0dWFsIGJvb2wgc3BlbGxpbmdVSUlzU2hvd2luZygpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQg
Z2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgU3RyaW5nJiwgVmVjdG9yPFN0cmluZz4mIGd1ZXNzZXMp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgU3RyaW5nJiB3
b3JkLCBWZWN0b3I8U3RyaW5nPiYgZ3Vlc3NlcykgPSAwOworICAgIC8vIFNvbWUgc3BlbGxjaGVj
a2VyIG1heSBiZSBhYmxlIHRvIHRha2UgYWR2YW50YWdlIG9mIHBhcmFncmFwaCBjb250ZXh0IHRv
IG1vcmUgYWNjdXJhdGVseSBpZGVudGlmeSB0aGUgbGFuZ3VhZ2UuCisgICAgdmlydHVhbCB2b2lk
IGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYgd29yZCwgY29uc3QgU3RyaW5nJiBjb250
ZXh0LCBWZWN0b3I8U3RyaW5nPiYgZ3Vlc3NlcykgPSAwOwogICAgIHZpcnR1YWwgdm9pZCB3aWxs
U2V0SW5wdXRNZXRob2RTdGF0ZSgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5wdXRNZXRo
b2RTdGF0ZShib29sIGVuYWJsZWQpID0gMDsKIH07CkluZGV4OiBXZWJLaXQyL0NoYW5nZUxvZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJLaXQyL0NoYW5nZUxvZwkocmV2aXNpb24gNzI4MDQpCisrKyBXZWJL
aXQyL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDEwLTExLTI5
ICBKaWEgUHUgIDxqcHVAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFN1cHBvcnQgbXVsdGlwbGUgY29ycmVjdGlvbiBjYW5kaWRhdGVz
IHBhbmVsIGZvciBtaXNzcGVsbGVkIHdvcmQgb24gTWFjIE9TIFguCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MDEzNworICAgICAgICA8cmRhcjovL3By
b2JsZW0vODU2ODA1OT4KKworICAgICAgICBUaGlzIHBhdGNoIGlzIGZvciBzdXBwb3J0aW5nIG11
bHRpcGxlIGNvcnJlY3Rpb24gc3VnZ2VzdGlvbiBwYW5lbCBvbiBNYWMgT1MgWC4KKyAgICAgICAg
VGhlIGJlaGF2aW9yIGFuZCBpbXBsZW1lbnRhdGlvbiBpcyBzaW1pbGFyIHRvIHRoYXQgb2YgcmV2
ZXJzaW9uIGNhbmRpYXRlIHBhbmVsLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJFZGl0b3JDbGll
bnQ6OmdldEd1ZXNzZXNGb3JXb3JkKTogSW1wbGVtZW50ZWQgbmV3IGZ1bmN0aW9uIGRlZmluZWQg
aW4gYmFzZSBjbGFzcy4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
RWRpdG9yQ2xpZW50Lmg6ICBBZG9wdGVkIG5ldyBzaWduYXR1cmUgYW5kIGZ1bmN0aW9uIGRlZmlu
ZWQgaW4gYmFzZSBjbGFzcy4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
bWFjL1dlYkVkaXRvckNsaWVudE1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViRWRpdG9yQ2xp
ZW50OjpzaG93Q29ycmVjdGlvblBhbmVsKTogQWRvcHRlZCBuZXcgc2lnbmF0dXJlIGRlZmluZWQg
aW4gYmFzZSBjbGFzcy4KKwogMjAxMC0xMS0yOSAgTGFzemxvIEdvbWJvcyAgPGxhc3psby4xLmdv
bWJvc0Bub2tpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0aCBSb2hkZSBDaHJp
c3RpYW5zZW4uCkluZGV4OiBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRp
dG9yQ2xpZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcAkocmV2aXNpb24gNzI4MDIpCisrKyBXZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMzk4LDYgKzM5OCwxMSBAQCB2b2lkIFdlYkVkaXRvckNsaWVudDo6Z2V0R3Vlc3Nlc0Zv
cldvcmQoCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAordm9pZCBXZWJFZGl0b3JDbGllbnQ6
OmdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIFZlY3RvcjxT
dHJpbmc+JikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCiB2b2lkIFdlYkVkaXRvckNs
aWVudDo6d2lsbFNldElucHV0TWV0aG9kU3RhdGUoKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7
CkluZGV4OiBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVk
aXRvckNsaWVudC5oCShyZXZpc2lvbiA3MjgwMikKKysrIFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMTMxLDEwICsx
MzEsMTEgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgc2hvd1NwZWxsaW5nVUkoYm9vbCBz
aG93KTsKICAgICB2aXJ0dWFsIGJvb2wgc3BlbGxpbmdVSUlzU2hvd2luZygpOwogICAgIHZpcnR1
YWwgdm9pZCBnZXRHdWVzc2VzRm9yV29yZChjb25zdCBTdHJpbmcmLCBWZWN0b3I8U3RyaW5nPiYg
Z3Vlc3Nlcyk7CisgICAgdmlydHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmlu
ZyYgd29yZCwgY29uc3QgU3RyaW5nJiBjb250ZXh0LCBWZWN0b3I8U3RyaW5nPiYgZ3Vlc3Nlcyk7
CiAgICAgdmlydHVhbCB2b2lkIHdpbGxTZXRJbnB1dE1ldGhvZFN0YXRlKCk7CiAgICAgdmlydHVh
bCB2b2lkIHNldElucHV0TWV0aG9kU3RhdGUoYm9vbCBlbmFibGVkKTsKICNpZiBQTEFURk9STShN
QUMpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1RJR0VSKSAmJiAhZGVmaW5lZChCVUlMRElOR19P
Tl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCi0gICAgdmly
dHVhbCB2b2lkIHNob3dDb3JyZWN0aW9uUGFuZWwoV2ViQ29yZTo6Q29ycmVjdGlvblBhbmVsSW5m
bzo6UGFuZWxUeXBlLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGJvdW5kaW5nQm94T2ZSZXBs
YWNlZFN0cmluZywgY29uc3QgU3RyaW5nJiByZXBsYWNlZFN0cmluZywgY29uc3QgU3RyaW5nJiBy
ZXBsYWNlbWVudFN0cmluZywgV2ViQ29yZTo6RWRpdG9yKik7CisgICAgdmlydHVhbCB2b2lkIHNo
b3dDb3JyZWN0aW9uUGFuZWwoV2ViQ29yZTo6Q29ycmVjdGlvblBhbmVsSW5mbzo6UGFuZWxUeXBl
LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGJvdW5kaW5nQm94T2ZSZXBsYWNlZFN0cmluZywg
Y29uc3QgU3RyaW5nJiByZXBsYWNlZFN0cmluZywgY29uc3QgU3RyaW5nJiByZXBsYWNlbWVudFN0
cmluZywgY29uc3QgVmVjdG9yPFN0cmluZz4mIGFsdGVybmF0aXZlUmVwbGFjZW1lbnRTdHJpbmdz
LCBXZWJDb3JlOjpFZGl0b3IqKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlzbWlzc0NvcnJlY3Rpb25Q
YW5lbChXZWJDb3JlOjpDb3JyZWN0aW9uV2FzUmVqZWN0ZWRPck5vdCk7CiAgICAgdmlydHVhbCBi
b29sIGlzU2hvd2luZ0NvcnJlY3Rpb25QYW5lbCgpOwogI2VuZGlmCkluZGV4OiBXZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkVkaXRvckNsaWVudE1hYy5tbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkVkaXRvckNs
aWVudE1hYy5tbQkocmV2aXNpb24gNzI4MDIpCisrKyBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvbWFjL1dlYkVkaXRvckNsaWVudE1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtMjIz
LDcgKzIyMyw3IEBAIHZvaWQgV2ViRWRpdG9yQ2xpZW50OjpjaGVja1RleHRPZlBhcmFncmEKICNl
bmRpZgogCiAjaWYgIWRlZmluZWQoQlVJTERJTkdfT05fVElHRVIpICYmICFkZWZpbmVkKEJVSUxE
SU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKLXZv
aWQgV2ViRWRpdG9yQ2xpZW50OjpzaG93Q29ycmVjdGlvblBhbmVsKFdlYkNvcmU6OkNvcnJlY3Rp
b25QYW5lbEluZm86OlBhbmVsVHlwZSB0eXBlLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGJv
dW5kaW5nQm94T2ZSZXBsYWNlZFN0cmluZywgY29uc3QgV1RGOjpTdHJpbmcmIHJlcGxhY2VkU3Ry
aW5nLCBjb25zdCBXVEY6OlN0cmluZyYgcmVwbGFjZW1lbnRTdHJpbmcsIFdlYkNvcmU6OkVkaXRv
ciopCit2b2lkIFdlYkVkaXRvckNsaWVudDo6c2hvd0NvcnJlY3Rpb25QYW5lbChXZWJDb3JlOjpD
b3JyZWN0aW9uUGFuZWxJbmZvOjpQYW5lbFR5cGUgdHlwZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRS
ZWN0JiBib3VuZGluZ0JveE9mUmVwbGFjZWRTdHJpbmcsIGNvbnN0IFdURjo6U3RyaW5nJiByZXBs
YWNlZFN0cmluZywgY29uc3QgV1RGOjpTdHJpbmcmIHJlcGxhY2VtZW50U3RyaW5nLCBjb25zdCBW
ZWN0b3I8U3RyaW5nPiYgYWx0ZXJuYXRpdmVSZXBsYWNlbWVudFN0cmluZ3MsIFdlYkNvcmU6OkVk
aXRvciopCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KSW5kZXg6IFdlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkocmV2
aXNpb24gNzI4MDQpCisrKyBXZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDMgKzEsMTcgQEAKKzIwMTAtMTEtMjkgIEppYSBQdSAgPGpwdUBhcHBsZS5jb20+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3VwcG9ydCBt
dWx0aXBsZSBjb3JyZWN0aW9uIGNhbmRpZGF0ZXMgcGFuZWwgZm9yIG1pc3NwZWxsZWQgd29yZCBv
biBNYWMgT1MgWC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTUwMTM3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NTY4MDU5PgorCisgICAgICAgIENo
YW5nZXMgaW4gQ2hyb21pdW0gY29kZSBpcyBzaW1wbHkgYW4gZHVtbXkgaW1wbGVtZW50YXRpb24g
b2YgbmV3IGZ1bmN0aW9uIGRlZmluZWQgaW4gYmFzZSBjbGFzcy4KKworICAgICAgICAqIHNyYy9F
ZGl0b3JDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Z2V0R3Vlc3Nlc0ZvcldvcmQp
OgorICAgICAgICAqIHNyYy9FZGl0b3JDbGllbnRJbXBsLmg6CisKIDIwMTAtMTEtMjkgIEJlcm5o
YXJkIEJhdWVyICA8YmF1ZXJiQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBK
ZXJlbXkgT3Jsb3cuCkluZGV4OiBXZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRvckNsaWVudEltcGwu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9zcmMvRWRpdG9yQ2xpZW50SW1wbC5j
cHAJKHJldmlzaW9uIDcyODAyKQorKysgV2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGllbnRJ
bXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTM1LDYgKzkzNSwxMyBAQCB2b2lkIEVkaXRvckNs
aWVudEltcGw6OmdldEd1ZXNzZXNGb3JXb3JkCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAor
dmlydHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYgd29yZCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBTdHJpbmcmIGNvbnRleHQsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgVmVjdG9yPFN0cmluZz4mIGd1ZXNzZXMpCit7CisgICAg
Z2V0R3Vlc3Nlc0ZvcldvcmQod29yZCwgZ3Vlc3Nlcyk7Cit9CisKIHZvaWQgRWRpdG9yQ2xpZW50
SW1wbDo6d2lsbFNldElucHV0TWV0aG9kU3RhdGUoKQogewogICAgIGlmIChtX3dlYlZpZXctPmNs
aWVudCgpKQpJbmRleDogV2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGllbnRJbXBsLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGllbnRJbXBsLmgJKHJldmlz
aW9uIDcyODAyKQorKysgV2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGllbnRJbXBsLmgJKHdv
cmtpbmcgY29weSkKQEAgLTEwOCw2ICsxMDgsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29s
IHNwZWxsaW5nVUlJc1Nob3dpbmcoKTsKICAgICB2aXJ0dWFsIHZvaWQgZ2V0R3Vlc3Nlc0Zvcldv
cmQoY29uc3QgV1RGOjpTdHJpbmcmIHdvcmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFdURjo6VmVjdG9yPFdURjo6U3RyaW5nPiYgZ3Vlc3Nlcyk7CisgICAgdmlydHVhbCB2
b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYgd29yZCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nJiBjb250ZXh0LAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBWZWN0b3I8U3RyaW5nPiYgZ3Vlc3Nlcyk7CiAgICAgdmly
dHVhbCB2b2lkIHdpbGxTZXRJbnB1dE1ldGhvZFN0YXRlKCk7CiAgICAgdmlydHVhbCB2b2lkIHNl
dElucHV0TWV0aG9kU3RhdGUoYm9vbCBlbmFibGVkKTsKIApJbmRleDogV2ViS2l0L21hYy9DaGFu
Z2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDcyODA0
KQorKysgV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwzOCBA
QAorMjAxMC0xMS0yOSAgSmlhIFB1ICA8anB1QGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdXBwb3J0IG11bHRpcGxlIGNvcnJlY3Rp
b24gY2FuZGlkYXRlcyBwYW5lbCBmb3IgbWlzc3BlbGxlZCB3b3JkIG9uIE1hYyBPUyBYLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTAxMzcKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzg1NjgwNTk+CisKKyAgICAgICAgVGhpcyBwYXRjaCBpcyBmb3Ig
c3VwcG9ydGluZyBtdWx0aXBsZSBjb3JyZWN0aW9uIHN1Z2dlc3Rpb24gcGFuZWwgb24gTWFjIE9T
IFguCisgICAgICAgIFRoZSBiZWhhdmlvciBhbmQgaW1wbGVtZW50YXRpb24gaXMgc2ltaWxhciB0
byB0aGF0IG9mIHJldmVyc2lvbiBjYW5kaWF0ZSBwYW5lbC4KKworICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L1dlYkVkaXRvckNsaWVudC5oOiBBZG9wdGVkIG5ldyBzaWduYXR1cmUgYW5kIGZ1bmN0
aW9uIGRlZmluZWQgaW4gYmFzZSBjbGFzcy4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dl
YkVkaXRvckNsaWVudC5tbTogIEFkb3B0ZWQgbmV3IHNpZ25hdHVyZSBhbmQgZnVuY3Rpb25zIGRl
ZmluZWQgaW4gYmFzZSBjbGFzcy4KKyAgICAgICAgICBBZGRlZCBjb2RlIHRvIGhhbmRsZSBuZXcg
bXVsdGlwbGUgc3VnZ2VzdGlvbiBjYW5pZGF0ZSBwYW5lbCB0eXBlLgorICAgICAgICAoV2ViRWRp
dG9yQ2xpZW50OjpzaG93Q29ycmVjdGlvblBhbmVsKToKKyAgICAgICAgKFdlYkVkaXRvckNsaWVu
dDo6Z2V0R3Vlc3Nlc0ZvcldvcmQpOgorCisyMDEwLTExLTI4ICBKaWEgUHUgIDxqcHVAYXBwbGUu
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN1
cHBvcnQgbXVsdGlwbGUgY29ycmVjdGlvbiBjYW5kaWRhdGVzIHBhbmVsIGZvciBtaXNzcGVsbGVk
IHdvcmQgb24gTWFjIE9TIFguCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD01MDEzNworICAgICAgICA8cmRhcjovL3Byb2JsZW0vODU2ODA1OT4KKworICAg
ICAgICBUaGlzIHBhdGNoIGlzIGZvciBzdXBwb3J0aW5nIG11bHRpcGxlIGNvcnJlY3Rpb24gc3Vn
Z2VzdGlvbiBwYW5lbCBvbiBNYWMgT1MgWC4KKyAgICAgICAgVGhlIGJlaGF2aW9yIGFuZCBpbXBs
ZW1lbnRhdGlvbiBpcyBzaW1pbGFyIHRvIHRoYXQgb2YgcmV2ZXJzaW9uIGNhbmRpYXRlIHBhbmVs
LgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lmg6IEFkb3B0ZWQg
bmV3IHNpZ25hdHVyZSBhbmQgZnVuY3Rpb25zIGRlZmluZWQgaW4gYmFzZSBjbGFzcy4KKyAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW06IEFkb3B0ZWQgbmV3IHNpZ25h
dHVyZSBhbmQgZnVuY3Rpb25zIGRlZmluZWQgaW4gYmFzZSBjbGFzcy4KKyAgICAgICAgICBBZGRl
ZCBjb2RlIHRvIGhhbmRsZSBuZXcgbXVsdGlwbGUgc3VnZ2VzdGlvbiBjYW5pZGF0ZSBwYW5lbCB0
eXBlLgorICAgICAgICAoV2ViRWRpdG9yQ2xpZW50OjpzaG93Q29ycmVjdGlvblBhbmVsKToKKyAg
ICAgICAgKFdlYkVkaXRvckNsaWVudDo6Z2V0R3Vlc3Nlc0ZvcldvcmQpOgorCiAyMDEwLTExLTIy
ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IFRvbnkgQ2hhbmcuCkluZGV4OiBXZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNs
aWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9y
Q2xpZW50LmgJKHJldmlzaW9uIDcyODAyKQorKysgV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJFZGl0b3JDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMTMwLDEwICsxMzAsMTEgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgdm9pZCBzaG93U3BlbGxpbmdVSShib29sIHNob3cpOwogICAgIHZp
cnR1YWwgYm9vbCBzcGVsbGluZ1VJSXNTaG93aW5nKCk7CiAgICAgdmlydHVhbCB2b2lkIGdldEd1
ZXNzZXNGb3JXb3JkKGNvbnN0IFdURjo6U3RyaW5nJiwgV1RGOjpWZWN0b3I8V1RGOjpTdHJpbmc+
JiBndWVzc2VzKTsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgV1RG
OjpTdHJpbmcmIHdvcmQsIGNvbnN0IFdURjo6U3RyaW5nJiBjb250ZXh0LCBXVEY6OlZlY3RvcjxX
VEY6OlN0cmluZz4mIGd1ZXNzZXMpOwogICAgIHZpcnR1YWwgdm9pZCB3aWxsU2V0SW5wdXRNZXRo
b2RTdGF0ZSgpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wgZW5h
YmxlZCk7CiAjaWYgIWRlZmluZWQoQlVJTERJTkdfT05fVElHRVIpICYmICFkZWZpbmVkKEJVSUxE
SU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKLSAg
ICB2aXJ0dWFsIHZvaWQgc2hvd0NvcnJlY3Rpb25QYW5lbChXZWJDb3JlOjpDb3JyZWN0aW9uUGFu
ZWxJbmZvOjpQYW5lbFR5cGUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgYm91bmRpbmdCb3hP
ZlJlcGxhY2VkU3RyaW5nLCBjb25zdCBXVEY6OlN0cmluZyYgcmVwbGFjZWRTdHJpbmcsIGNvbnN0
IFdURjo6U3RyaW5nJiByZXBsYWNlbWVudFN0cmluZywgV2ViQ29yZTo6RWRpdG9yKik7CisgICAg
dmlydHVhbCB2b2lkIHNob3dDb3JyZWN0aW9uUGFuZWwoV2ViQ29yZTo6Q29ycmVjdGlvblBhbmVs
SW5mbzo6UGFuZWxUeXBlLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGJvdW5kaW5nQm94T2ZS
ZXBsYWNlZFN0cmluZywgY29uc3QgV1RGOjpTdHJpbmcmIHJlcGxhY2VkU3RyaW5nLCBjb25zdCBX
VEY6OlN0cmluZyYgcmVwbGFjZW1lbnRTdHJpbmcsIGNvbnN0IFdURjo6VmVjdG9yPFdURjo6U3Ry
aW5nPiYgYWx0ZXJuYXRpdmVSZXBsYWNlbWVudFN0cmluZ3MsIFdlYkNvcmU6OkVkaXRvciopOwog
ICAgIHZpcnR1YWwgdm9pZCBkaXNtaXNzQ29ycmVjdGlvblBhbmVsKFdlYkNvcmU6OkNvcnJlY3Rp
b25XYXNSZWplY3RlZE9yTm90KTsKICAgICB2aXJ0dWFsIGJvb2wgaXNTaG93aW5nQ29ycmVjdGlv
blBhbmVsKCk7CiAjZW5kaWYKSW5kZXg6IFdlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRp
dG9yQ2xpZW50Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
RWRpdG9yQ2xpZW50Lm1tCShyZXZpc2lvbiA3MjgwMikKKysrIFdlYktpdC9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC04NTYsNyArODU2LDcg
QEAgdm9pZCBXZWJFZGl0b3JDbGllbnQ6OnVwZGF0ZVNwZWxsaW5nVUlXaQogfQogCiAjaWYgIWRl
ZmluZWQoQlVJTERJTkdfT05fVElHRVIpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQp
ICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKLXZvaWQgV2ViRWRpdG9yQ2xp
ZW50OjpzaG93Q29ycmVjdGlvblBhbmVsKFdlYkNvcmU6OkNvcnJlY3Rpb25QYW5lbEluZm86OlBh
bmVsVHlwZSBwYW5lbFR5cGUsIGNvbnN0IEZsb2F0UmVjdCYgYm91bmRpbmdCb3hPZlJlcGxhY2Vk
U3RyaW5nLCBjb25zdCBTdHJpbmcmIHJlcGxhY2VkU3RyaW5nLCBjb25zdCBTdHJpbmcmIHJlcGxh
Y2VtZW50U3RyaW5nLCBFZGl0b3IqIGVkaXRvcikgewordm9pZCBXZWJFZGl0b3JDbGllbnQ6OnNo
b3dDb3JyZWN0aW9uUGFuZWwoV2ViQ29yZTo6Q29ycmVjdGlvblBhbmVsSW5mbzo6UGFuZWxUeXBl
IHBhbmVsVHlwZSwgY29uc3QgRmxvYXRSZWN0JiBib3VuZGluZ0JveE9mUmVwbGFjZWRTdHJpbmcs
IGNvbnN0IFN0cmluZyYgcmVwbGFjZWRTdHJpbmcsIGNvbnN0IFN0cmluZyYgcmVwbGFjZW1lbnRT
dHJpbmcsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBhbHRlcm5hdGl2ZVJlcGxhY2VtZW50U3RyaW5n
cywgRWRpdG9yKiBlZGl0b3IpIHsKICAgICBkaXNtaXNzQ29ycmVjdGlvblBhbmVsKFdlYkNvcmU6
OkNvcnJlY3Rpb25XYXNOb3RSZWplY3RlZCk7CiAKICAgICBOU1JlY3QgYm91bmRpbmdCb3hBc05T
UmVjdCA9IGJvdW5kaW5nQm94T2ZSZXBsYWNlZFN0cmluZzsKQEAgLTg2OCwxNCArODY4LDU0IEBA
IHZvaWQgV2ViRWRpdG9yQ2xpZW50OjpzaG93Q29ycmVjdGlvblBhbmUKICAgICBOU1N0cmluZyAq
cmVwbGFjZW1lbnRTdHJpbmdBc05TU3RyaW5nID0gcmVwbGFjZW1lbnRTdHJpbmc7CiAKICAgICBt
X2NvcnJlY3Rpb25QYW5lbElzU2hvd24gPSBZRVM7Ci0gICAgTlNDb3JyZWN0aW9uQnViYmxlVHlw
ZSBidWJibGVUeXBlID0gcGFuZWxUeXBlID09IFdlYkNvcmU6OkNvcnJlY3Rpb25QYW5lbEluZm86
OlBhbmVsVHlwZUNvcnJlY3Rpb24gPyBOU0NvcnJlY3Rpb25CdWJibGVUeXBlQ29ycmVjdGlvbiA6
IE5TQ29ycmVjdGlvbkJ1YmJsZVR5cGVSZXZlcnNpb247Ci0gICAgW1tOU1NwZWxsQ2hlY2tlciBz
aGFyZWRTcGVsbENoZWNrZXJdIHNob3dDb3JyZWN0aW9uQnViYmxlT2ZUeXBlOmJ1YmJsZVR5cGUg
cHJpbWFyeVN0cmluZzpyZXBsYWNlbWVudFN0cmluZ0FzTlNTdHJpbmcgYWx0ZXJuYXRpdmVTdHJp
bmdzOm5pbCBmb3JTdHJpbmdJblJlY3Q6Ym91bmRpbmdCb3hBc05TUmVjdCB2aWV3Om1fd2ViVmll
dyBjb21wbGV0aW9uSGFuZGxlcjpeKE5TU3RyaW5nICphY2NlcHRlZFN0cmluZykgewotICAgICAg
ICBpZiAoIWFjY2VwdGVkU3RyaW5nICYmIGJ1YmJsZVR5cGUgPT0gTlNDb3JyZWN0aW9uQnViYmxl
VHlwZUNvcnJlY3Rpb24pIHsKLSAgICAgICAgICAgIFtbTlNTcGVsbENoZWNrZXIgc2hhcmVkU3Bl
bGxDaGVja2VyXSByZWNvcmRSZXNwb25zZTpOU0NvcnJlY3Rpb25SZXNwb25zZVJlamVjdGVkIHRv
Q29ycmVjdGlvbjpyZXBsYWNlbWVudFN0cmluZ0FzTlNTdHJpbmcgZm9yV29yZDpyZXBsYWNlZFN0
cmluZ0FzTlNTdHJpbmcgbGFuZ3VhZ2U6bmlsIGluU3BlbGxEb2N1bWVudFdpdGhUYWc6W21fd2Vi
VmlldyBzcGVsbENoZWNrZXJEb2N1bWVudFRhZ11dOwotICAgICAgICAgICAgZWRpdG9yLT5oYW5k
bGVSZWplY3RlZENvcnJlY3Rpb24oKTsKLSAgICAgICAgfSBlbHNlIGlmIChhY2NlcHRlZFN0cmlu
ZyAmJiBidWJibGVUeXBlID09IE5TQ29ycmVjdGlvbkJ1YmJsZVR5cGVSZXZlcnNpb24pIHsKLSAg
ICAgICAgICAgIFtbTlNTcGVsbENoZWNrZXIgc2hhcmVkU3BlbGxDaGVja2VyXSByZWNvcmRSZXNw
b25zZTpOU0NvcnJlY3Rpb25SZXNwb25zZVJldmVydGVkIHRvQ29ycmVjdGlvbjpyZXBsYWNlZFN0
cmluZ0FzTlNTdHJpbmcgZm9yV29yZDpyZXBsYWNlbWVudFN0cmluZ0FzTlNTdHJpbmcgbGFuZ3Vh
Z2U6bmlsIGluU3BlbGxEb2N1bWVudFdpdGhUYWc6W21fd2ViVmlldyBzcGVsbENoZWNrZXJEb2N1
bWVudFRhZ11dOwotICAgICAgICAgICAgZWRpdG9yLT5oYW5kbGVSZWplY3RlZENvcnJlY3Rpb24o
KTsKKyAgICBOU0NvcnJlY3Rpb25CdWJibGVUeXBlIGJ1YmJsZVR5cGU7CisgICAgc3dpdGNoIChw
YW5lbFR5cGUpIHsKKyAgICAgICAgY2FzZSBDb3JyZWN0aW9uUGFuZWxJbmZvOjpQYW5lbFR5cGVD
b3JyZWN0aW9uOgorICAgICAgICAgICAgYnViYmxlVHlwZSA9IE5TQ29ycmVjdGlvbkJ1YmJsZVR5
cGVDb3JyZWN0aW9uOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ29ycmVjdGlv
blBhbmVsSW5mbzo6UGFuZWxUeXBlUmV2ZXJzaW9uOgorICAgICAgICAgICAgYnViYmxlVHlwZSA9
IE5TQ29ycmVjdGlvbkJ1YmJsZVR5cGVSZXZlcnNpb247CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSBDb3JyZWN0aW9uUGFuZWxJbmZvOjpQYW5lbFR5cGVTcGVsbGluZ1N1Z2dlc3Rp
b25zOgorICAgICAgICAgICAgYnViYmxlVHlwZSA9IE5TQ29ycmVjdGlvbkJ1YmJsZVR5cGVHdWVz
c2VzOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAv
LyBTaG91bGQgbmV2ZXIgYmUgaGVyZS4KKyAgICAgICAgICAgIEFTU0VSVChmYWxzZSk7CisgICAg
ICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICBOU011dGFibGVBcnJheSogYWx0ZXJuYXRpdmVT
dHJpbmdzID0gbmlsOworICAgIGlmIChhbHRlcm5hdGl2ZVJlcGxhY2VtZW50U3RyaW5ncy5zaXpl
KCkgPiAwKSB7CisgICAgICAgIGFsdGVybmF0aXZlU3RyaW5ncyA9IFtOU011dGFibGVBcnJheSBh
cnJheVdpdGhDYXBhY2l0eTphbHRlcm5hdGl2ZVJlcGxhY2VtZW50U3RyaW5ncy5zaXplKCldOwor
ICAgICAgICBWZWN0b3I8U3RyaW5nPjo6Y29uc3RfaXRlcmF0b3IgaXQgPSBhbHRlcm5hdGl2ZVJl
cGxhY2VtZW50U3RyaW5ncy5iZWdpbigpOworICAgICAgICBWZWN0b3I8U3RyaW5nPjo6Y29uc3Rf
aXRlcmF0b3IgZW5kID0gYWx0ZXJuYXRpdmVSZXBsYWNlbWVudFN0cmluZ3MuZW5kKCk7CisgICAg
ICAgIGZvciAoOyBpdCAhPSBlbmQ7ICsraXQpCisgICAgICAgICAgICBbYWx0ZXJuYXRpdmVTdHJp
bmdzIGFkZE9iamVjdDooTlNTdHJpbmcqKSppdF07CisgICAgfQorCisgICAgW1tOU1NwZWxsQ2hl
Y2tlciBzaGFyZWRTcGVsbENoZWNrZXJdIHNob3dDb3JyZWN0aW9uQnViYmxlT2ZUeXBlOmJ1YmJs
ZVR5cGUgcHJpbWFyeVN0cmluZzpyZXBsYWNlbWVudFN0cmluZ0FzTlNTdHJpbmcgYWx0ZXJuYXRp
dmVTdHJpbmdzOmFsdGVybmF0aXZlU3RyaW5ncyBmb3JTdHJpbmdJblJlY3Q6Ym91bmRpbmdCb3hB
c05TUmVjdCB2aWV3Om1fd2ViVmlldyBjb21wbGV0aW9uSGFuZGxlcjpeKE5TU3RyaW5nICphY2Nl
cHRlZFN0cmluZykgeworICAgICAgICBzd2l0Y2ggKGJ1YmJsZVR5cGUpIHsKKyAgICAgICAgICAg
IGNhc2UgTlNDb3JyZWN0aW9uQnViYmxlVHlwZUNvcnJlY3Rpb246CisgICAgICAgICAgICAgICAg
aWYgKCFhY2NlcHRlZFN0cmluZykgeworICAgICAgICAgICAgICAgICAgICBbW05TU3BlbGxDaGVj
a2VyIHNoYXJlZFNwZWxsQ2hlY2tlcl0gcmVjb3JkUmVzcG9uc2U6TlNDb3JyZWN0aW9uUmVzcG9u
c2VSZWplY3RlZCB0b0NvcnJlY3Rpb246cmVwbGFjZW1lbnRTdHJpbmdBc05TU3RyaW5nIGZvcldv
cmQ6cmVwbGFjZWRTdHJpbmdBc05TU3RyaW5nIGxhbmd1YWdlOm5pbCBpblNwZWxsRG9jdW1lbnRX
aXRoVGFnOlttX3dlYlZpZXcgc3BlbGxDaGVja2VyRG9jdW1lbnRUYWddXTsKKyAgICAgICAgICAg
ICAgICAgICAgZWRpdG9yLT5oYW5kbGVDb3JyZWN0aW9uUGFuZWxSZXN1bHQoU3RyaW5nKCkpOwor
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNh
c2UgTlNDb3JyZWN0aW9uQnViYmxlVHlwZVJldmVyc2lvbjoKKyAgICAgICAgICAgICAgICBpZiAo
YWNjZXB0ZWRTdHJpbmcpIHsKKyAgICAgICAgICAgICAgICAgICAgW1tOU1NwZWxsQ2hlY2tlciBz
aGFyZWRTcGVsbENoZWNrZXJdIHJlY29yZFJlc3BvbnNlOk5TQ29ycmVjdGlvblJlc3BvbnNlUmV2
ZXJ0ZWQgdG9Db3JyZWN0aW9uOnJlcGxhY2VkU3RyaW5nQXNOU1N0cmluZyBmb3JXb3JkOnJlcGxh
Y2VtZW50U3RyaW5nQXNOU1N0cmluZyBsYW5ndWFnZTpuaWwgaW5TcGVsbERvY3VtZW50V2l0aFRh
ZzpbbV93ZWJWaWV3IHNwZWxsQ2hlY2tlckRvY3VtZW50VGFnXV07CisgICAgICAgICAgICAgICAg
ICAgIGVkaXRvci0+aGFuZGxlQ29ycmVjdGlvblBhbmVsUmVzdWx0KFN0cmluZygpKTsKKyAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIE5T
Q29ycmVjdGlvbkJ1YmJsZVR5cGVHdWVzc2VzOgorICAgICAgICAgICAgICAgIGlmIChhY2NlcHRl
ZFN0cmluZykKKyAgICAgICAgICAgICAgICAgICAgW1tOU1NwZWxsQ2hlY2tlciBzaGFyZWRTcGVs
bENoZWNrZXJdIHJlY29yZFJlc3BvbnNlOk5TQ29ycmVjdGlvblJlc3BvbnNlQWNjZXB0ZWQgdG9D
b3JyZWN0aW9uOmFjY2VwdGVkU3RyaW5nIGZvcldvcmQ6cmVwbGFjZWRTdHJpbmdBc05TU3RyaW5n
IGxhbmd1YWdlOm5pbCBpblNwZWxsRG9jdW1lbnRXaXRoVGFnOlttX3dlYlZpZXcgc3BlbGxDaGVj
a2VyRG9jdW1lbnRUYWddXTsKKyAgICAgICAgICAgICAgICBlZGl0b3ItPmhhbmRsZUNvcnJlY3Rp
b25QYW5lbFJlc3VsdChTdHJpbmcoYWNjZXB0ZWRTdHJpbmcpKTsKKyAgICAgICAgICAgICAgICBi
cmVhazsKKworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgfQogICAgIH1dOwogfQpAQCAtOTE2LDExICs5NTYsMjUgQEAgYm9vbCBXZWJFZGl0b3JD
bGllbnQ6OnNwZWxsaW5nVUlJc1Nob3dpbgogICAgIHJldHVybiBbW1tOU1NwZWxsQ2hlY2tlciBz
aGFyZWRTcGVsbENoZWNrZXJdIHNwZWxsaW5nUGFuZWxdIGlzVmlzaWJsZV07CiB9CiAKLXZvaWQg
V2ViRWRpdG9yQ2xpZW50OjpnZXRHdWVzc2VzRm9yV29yZChjb25zdCBTdHJpbmcmIHdvcmQsIFdU
Rjo6VmVjdG9yPFN0cmluZz4mIGd1ZXNzZXMpCit2b2lkIFdlYkVkaXRvckNsaWVudDo6Z2V0R3Vl
c3Nlc0ZvcldvcmQoY29uc3QgU3RyaW5nJiB3b3JkLCBWZWN0b3I8U3RyaW5nPiYgZ3Vlc3NlcykK
IHsKLSAgICBOU0FycmF5KiBzdHJpbmdzQXJyYXkgPSBbW05TU3BlbGxDaGVja2VyIHNoYXJlZFNw
ZWxsQ2hlY2tlcl0gZ3Vlc3Nlc0ZvcldvcmQ6d29yZF07Ci0gICAgdW5zaWduZWQgY291bnQgPSBb
c3RyaW5nc0FycmF5IGNvdW50XTsKKyAgICBnZXRHdWVzc2VzRm9yV29yZCh3b3JkLCBTdHJpbmco
KSwgZ3Vlc3Nlcyk7Cit9CisKK3ZvaWQgV2ViRWRpdG9yQ2xpZW50OjpnZXRHdWVzc2VzRm9yV29y
ZChjb25zdCBTdHJpbmcmIHdvcmQsIGNvbnN0IFN0cmluZyYgY29udGV4dCwgVmVjdG9yPFN0cmlu
Zz4mIGd1ZXNzZXMpIHsKICAgICBndWVzc2VzLmNsZWFyKCk7CisKKyAgICBOU1N0cmluZyogbGFu
Z3VhZ2UgPSBuaWw7CisgICAgTlNPcnRob2dyYXBoeSogb3J0aG9ncmFwaHkgPSBuaWw7CisgICAg
TlNTcGVsbENoZWNrZXIgKmNoZWNrZXIgPSBbTlNTcGVsbENoZWNrZXIgc2hhcmVkU3BlbGxDaGVj
a2VyXTsKKyAgICBpZiAoY29udGV4dC5sZW5ndGgoKSA+IDApIHsKKyAgICAgICAgW2NoZWNrZXIg
Y2hlY2tTdHJpbmc6Y29udGV4dCByYW5nZTpOU01ha2VSYW5nZSgwLCBjb250ZXh0Lmxlbmd0aCgp
KSB0eXBlczpOU1RleHRDaGVja2luZ1R5cGVPcnRob2dyYXBoeSBvcHRpb25zOjAgaW5TcGVsbERv
Y3VtZW50V2l0aFRhZzpzcGVsbENoZWNrZXJEb2N1bWVudFRhZygpIG9ydGhvZ3JhcGh5OiZvcnRo
b2dyYXBoeSB3b3JkQ291bnQ6MF07CisgICAgICAgIGxhbmd1YWdlID0gW2NoZWNrZXIgbGFuZ3Vh
Z2VGb3JXb3JkUmFuZ2U6TlNNYWtlUmFuZ2UoMCwgY29udGV4dC5sZW5ndGgoKSkgaW5TdHJpbmc6
Y29udGV4dCBvcnRob2dyYXBoeTpvcnRob2dyYXBoeV07CisgICAgfQorCisgICAgTlNBcnJheSog
c3RyaW5nc0FycmF5ID0gW2NoZWNrZXIgZ3Vlc3Nlc0ZvcldvcmRSYW5nZTpOU01ha2VSYW5nZSgw
LCB3b3JkLmxlbmd0aCgpKSBpblN0cmluZzp3b3JkIGxhbmd1YWdlOmxhbmd1YWdlIGluU3BlbGxE
b2N1bWVudFdpdGhUYWc6c3BlbGxDaGVja2VyRG9jdW1lbnRUYWcoKV07CisgICAgdW5zaWduZWQg
Y291bnQgPSBbc3RyaW5nc0FycmF5IGNvdW50XTsKKwogICAgIGlmIChjb3VudCA+IDApIHsKICAg
ICAgICAgTlNFbnVtZXJhdG9yKiBlbnVtZXJhdG9yID0gW3N0cmluZ3NBcnJheSBvYmplY3RFbnVt
ZXJhdG9yXTsKICAgICAgICAgTlNTdHJpbmcqIHN0cmluZzsKSW5kZXg6IFdlYktpdC93aW4vQ2hh
bmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC93aW4vQ2hhbmdlTG9nCShyZXZpc2lvbiA3Mjgw
NCkKKysrIFdlYktpdC93aW4vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcg
QEAKKzIwMTAtMTEtMjkgIEppYSBQdSAgPGpwdUBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3VwcG9ydCBtdWx0aXBsZSBjb3JyZWN0
aW9uIGNhbmRpZGF0ZXMgcGFuZWwgZm9yIG1pc3NwZWxsZWQgd29yZCBvbiBNYWMgT1MgWC4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUwMTM3CisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS84NTY4MDU5PgorCisgICAgICAgIENoYW5nZXMgaW4gV2luZG93
cyBjb2RlIGlzIHNpbXBseSBhbiBkdW1teSBpbXBsZW1lbnRhdGlvbiBvZiBuZXcgZnVuY3Rpb24g
ZGVmaW5lZCBpbiBiYXNlIGNsYXNzLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRWRp
dG9yQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYkVkaXRvckNsaWVudDo6Z2V0R3Vlc3Nlc0Zvcldv
cmQpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oOiBEaXR0by4K
KwogMjAxMC0xMS0yMiAgQWRhbSBSb2JlbiAgPGFyb2JlbkBhcHBsZS5jb20+CiAKICAgICAgICAg
VXNlIHBhdGhzIHJlbGF0aXZlIHRvICRXZWJLaXRWU1Byb3BzUmVkaXJlY3Rpb25EaXIgdG8gYWNj
ZXNzIHNoYXJlZCAudnNwcm9wcyBmaWxlcwpJbmRleDogV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9y
dC9XZWJFZGl0b3JDbGllbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC93aW4vV2ViQ29yZVN1
cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcAkocmV2aXNpb24gNzI4MDIpCisrKyBXZWJLaXQvd2lu
L1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc4
MCw2ICs3ODAsMTEgQEAgdm9pZCBXZWJFZGl0b3JDbGllbnQ6OmdldEd1ZXNzZXNGb3JXb3JkKAog
ICAgIH0KIH0KIAordm9pZCBXZWJFZGl0b3JDbGllbnQ6OmdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0
IFdURjo6U3RyaW5nJiB3b3JkLCBjb25zdCBXVEY6OlN0cmluZyYgY29udGV4dCwgV1RGOjpWZWN0
b3I8V1RGOjpTdHJpbmc+JiBndWVzc2VzKQoreworICAgIGdldEd1ZXNzZXNGb3JXb3JkKHdvcmQs
IGd1ZXNzZXMpOworfQorCiB2b2lkIFdlYkVkaXRvckNsaWVudDo6d2lsbFNldElucHV0TWV0aG9k
U3RhdGUoKQogewogfQpJbmRleDogV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JD
bGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRv
ckNsaWVudC5oCShyZXZpc2lvbiA3MjgwMikKKysrIFdlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQv
V2ViRWRpdG9yQ2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTEwOCw2ICsxMDgsNyBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCB2b2lkIHNob3dTcGVsbGluZ1VJKGJvb2wgc2hvdyk7CiAgICAgdmly
dHVhbCBib29sIHNwZWxsaW5nVUlJc1Nob3dpbmcoKTsKICAgICB2aXJ0dWFsIHZvaWQgZ2V0R3Vl
c3Nlc0ZvcldvcmQoY29uc3QgV1RGOjpTdHJpbmcmLCBWZWN0b3I8V1RGOjpTdHJpbmc+JiBndWVz
c2VzKTsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgV1RGOjpTdHJp
bmcmIHdvcmQsIGNvbnN0IFdURjo6U3RyaW5nJiBjb250ZXh0LCBXVEY6OlZlY3RvcjxXVEY6OlN0
cmluZz4mIGd1ZXNzZXMpOwogCiAgICAgdmlydHVhbCB2b2lkIHdpbGxTZXRJbnB1dE1ldGhvZFN0
YXRlKCk7CiAgICAgdmlydHVhbCB2b2lkIHNldElucHV0TWV0aG9kU3RhdGUoYm9vbCk7CkluZGV4
OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCShyZXZpc2lvbiA3MjgwNCkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBj
b3B5KQpAQCAtMSwzICsxLDIxIEBACisyMDEwLTExLTI5ICBKaWEgUHUgIDxqcHVAYXBwbGUuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN1cHBv
cnQgbXVsdGlwbGUgY29ycmVjdGlvbiBjYW5kaWRhdGVzIHBhbmVsIGZvciBtaXNzcGVsbGVkIHdv
cmQgb24gTWFjIE9TIFguCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD01MDEzNworICAgICAgICA8cmRhcjovL3Byb2JsZW0vODU2ODA1OT4KKworICAgICAg
ICBUaGlzIHBhdGNoIGlzIGZvciBzdXBwb3J0aW5nIG11bHRpcGxlIGNvcnJlY3Rpb24gc3VnZ2Vz
dGlvbiBwYW5lbCBvbiBNYWMgT1MgWC4KKyAgICAgICAgVGhlIGJlaGF2aW9yIGFuZCBpbXBsZW1l
bnRhdGlvbiBpcyBzaW1pbGFyIHRvIHRoYXQgb2YgcmV2ZXJzaW9uIGNhbmRpYXRlIHBhbmVsLgor
CisgICAgICAgICogcGxhdGZvcm0vbWFjLWxlb3BhcmQvU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9tYWMtc25vd2xlb3BhcmQvU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtdGln
ZXIvU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtd2syL1NraXBwZWQ6CisgICAgICAg
ICogcGxhdGZvcm0vbWFjL2VkaXRpbmcvc3BlbGxpbmcvZGVsZXRlLWF1dG9jb3JyZWN0ZWQtd29y
ZC0xLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL2VkaXRpbmcv
c3BlbGxpbmcvZGVsZXRlLWF1dG9jb3JyZWN0ZWQtd29yZC0xLmh0bWw6IEFkZGVkLgorCiAyMDEw
LTExLTI5ICBBYmhpc2hlayBBcnlhICA8aW5mZXJub0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
VW5yZXZpZXdlZC4KSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy1sZW9wYXJkL1NraXBw
ZWQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLWxlb3BhcmQvU2tpcHBl
ZAkocmV2aXNpb24gNzI4MDIpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtbGVvcGFyZC9T
a2lwcGVkCSh3b3JraW5nIGNvcHkpCkBAIC0xMDYsNiArMTA2LDcgQEAgcGxhdGZvcm0vbWFjL2Vk
aXRpbmcvc3BlbGxpbmcvYXV0b2NvcnJlYwogcGxhdGZvcm0vbWFjL2VkaXRpbmcvc3BlbGxpbmcv
YXV0b2NvcnJlY3Rpb24tcmVtb3ZpbmctdW5kZXJsaW5lLmh0bWwKIHBsYXRmb3JtL21hYy9lZGl0
aW5nL3NwZWxsaW5nL2F1dG9jb3JyZWN0aW9uLXNpbXBsZS5odG1sCiBwbGF0Zm9ybS9tYWMvZWRp
dGluZy9zcGVsbGluZy9jbGljay1hdXRvY29ycmVjdGVkLXdvcmQuaHRtbAorcGxhdGZvcm0vbWFj
L2VkaXRpbmcvc3BlbGxpbmcvZGVsZXRlLWF1dG9jb3JyZWN0ZWQtd29yZC0xLmh0bWwKIHBsYXRm
b3JtL21hYy9lZGl0aW5nL3NwZWxsaW5nL2RlbGV0ZS1pbnRvLWF1dG9jb3JyZWN0ZWQtd29yZC5o
dG1sCiBwbGF0Zm9ybS9tYWMvZWRpdGluZy9zcGVsbGluZy9kZWxldGUtaW50by1taXNzcGVsbGVk
LXdvcmQuaHRtbAogcGxhdGZvcm0vbWFjL2VkaXRpbmcvc3BlbGxpbmcvZWRpdGluZy1tdWx0aXBs
ZS13b3Jkcy13aXRoLW1hcmtlcnMuaHRtbApJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
LXNub3dsZW9wYXJkL1NraXBwZWQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjLXNub3dsZW9wYXJkL1NraXBwZWQJKHJldmlzaW9uIDcyODAyKQorKysgTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjLXNub3dsZW9wYXJkL1NraXBwZWQJKHdvcmtpbmcgY29weSkKQEAgLTEzMSw2
ICsxMzEsNyBAQCBwbGF0Zm9ybS9tYWMvZWRpdGluZy9zcGVsbGluZy9hdXRvY29ycmVjCiBwbGF0
Zm9ybS9tYWMvZWRpdGluZy9zcGVsbGluZy9hdXRvY29ycmVjdGlvbi1yZW1vdmluZy11bmRlcmxp
bmUuaHRtbAogcGxhdGZvcm0vbWFjL2VkaXRpbmcvc3BlbGxpbmcvYXV0b2NvcnJlY3Rpb24tc2lt
cGxlLmh0bWwKIHBsYXRmb3JtL21hYy9lZGl0aW5nL3NwZWxsaW5nL2NsaWNrLWF1dG9jb3JyZWN0
ZWQtd29yZC5odG1sCitwbGF0Zm9ybS9tYWMvZWRpdGluZy9zcGVsbGluZy9kZWxldGUtYXV0b2Nv
cnJlY3RlZC13b3JkLTEuaHRtbAogcGxhdGZvcm0vbWFjL2VkaXRpbmcvc3BlbGxpbmcvZGVsZXRl
LWludG8tYXV0b2NvcnJlY3RlZC13b3JkLmh0bWwKIHBsYXRmb3JtL21hYy9lZGl0aW5nL3NwZWxs
aW5nL2RlbGV0ZS1pbnRvLW1pc3NwZWxsZWQtd29yZC5odG1sCiBwbGF0Zm9ybS9tYWMvZWRpdGlu
Zy9zcGVsbGluZy9lZGl0aW5nLW11bHRpcGxlLXdvcmRzLXdpdGgtbWFya2Vycy5odG1sCkluZGV4
OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtdGlnZXIvU2tpcHBlZAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtdGlnZXIvU2tpcHBlZAkocmV2aXNpb24gNzI4MDIpCisr
KyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtdGlnZXIvU2tpcHBlZAkod29ya2luZyBjb3B5KQpA
QCAtMjExLDYgKzIxMSw3IEBAIHBsYXRmb3JtL21hYy9lZGl0aW5nL3NwZWxsaW5nL2F1dG9jb3Jy
ZWMKIHBsYXRmb3JtL21hYy9lZGl0aW5nL3NwZWxsaW5nL2F1dG9jb3JyZWN0aW9uLXJlbW92aW5n
LXVuZGVybGluZS5odG1sCiBwbGF0Zm9ybS9tYWMvZWRpdGluZy9zcGVsbGluZy9hdXRvY29ycmVj
dGlvbi1zaW1wbGUuaHRtbAogcGxhdGZvcm0vbWFjL2VkaXRpbmcvc3BlbGxpbmcvY2xpY2stYXV0
b2NvcnJlY3RlZC13b3JkLmh0bWwKK3BsYXRmb3JtL21hYy9lZGl0aW5nL3NwZWxsaW5nL2RlbGV0
ZS1hdXRvY29ycmVjdGVkLXdvcmQtMS5odG1sCiBwbGF0Zm9ybS9tYWMvZWRpdGluZy9zcGVsbGlu
Zy9kZWxldGUtaW50by1hdXRvY29ycmVjdGVkLXdvcmQuaHRtbAogcGxhdGZvcm0vbWFjL2VkaXRp
bmcvc3BlbGxpbmcvZGVsZXRlLWludG8tbWlzc3BlbGxlZC13b3JkLmh0bWwKIHBsYXRmb3JtL21h
Yy9lZGl0aW5nL3NwZWxsaW5nL2VkaXRpbmctbXVsdGlwbGUtd29yZHMtd2l0aC1tYXJrZXJzLmh0
bWwKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvU2tpcHBlZAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1NraXBwZWQJKHJldmlzaW9uIDcyODAy
KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9Ta2lwcGVkCSh3b3JraW5nIGNvcHkp
CkBAIC00OTQsNiArNDk0LDcgQEAgcGxhdGZvcm0vbWFjL2VkaXRpbmcvc3BlbGxpbmcvYXV0b2Nv
cnJlYwogcGxhdGZvcm0vbWFjL2VkaXRpbmcvc3BlbGxpbmcvYXV0b2NvcnJlY3Rpb24tcmVtb3Zp
bmctdW5kZXJsaW5lLmh0bWwKIHBsYXRmb3JtL21hYy9lZGl0aW5nL3NwZWxsaW5nL2F1dG9jb3Jy
ZWN0aW9uLXNpbXBsZS5odG1sCiBwbGF0Zm9ybS9tYWMvZWRpdGluZy9zcGVsbGluZy9jbGljay1h
dXRvY29ycmVjdGVkLXdvcmQuaHRtbAorcGxhdGZvcm0vbWFjL2VkaXRpbmcvc3BlbGxpbmcvZGVs
ZXRlLWF1dG9jb3JyZWN0ZWQtd29yZC0xLmh0bWwKIHBsYXRmb3JtL21hYy9lZGl0aW5nL3NwZWxs
aW5nL2RlbGV0ZS1pbnRvLWF1dG9jb3JyZWN0ZWQtd29yZC5odG1sCiBwbGF0Zm9ybS9tYWMvZWRp
dGluZy9zcGVsbGluZy9kZWxldGUtaW50by1taXNzcGVsbGVkLXdvcmQuaHRtbAogcGxhdGZvcm0v
bWFjL2VkaXRpbmcvc3BlbGxpbmcvZWRpdGluZy1tdWx0aXBsZS13b3Jkcy13aXRoLW1hcmtlcnMu
aHRtbApJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2VkaXRpbmcvc3BlbGxpbmcvZGVs
ZXRlLWF1dG9jb3JyZWN0ZWQtd29yZC0xLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvZWRpdGluZy9zcGVsbGluZy9kZWxldGUtYXV0b2NvcnJlY3Rl
ZC13b3JkLTEtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjL2VkaXRpbmcvc3BlbGxpbmcvZGVsZXRlLWF1dG9jb3JyZWN0ZWQtd29yZC0xLWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw5NyBAQAorRURJVElORyBERUxFR0FURTog
c2hvdWxkQmVnaW5FZGl0aW5nSW5ET01SYW5nZTpyYW5nZSBmcm9tIDAgb2YgRElWID4gQk9EWSA+
IEhUTUwgPiAjZG9jdW1lbnQgdG8gMyBvZiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudAor
RURJVElORyBERUxFR0FURTogd2ViVmlld0RpZEJlZ2luRWRpdGluZzpXZWJWaWV3RGlkQmVnaW5F
ZGl0aW5nTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2Vs
ZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VESVRJTkcgREVM
RUdBVEU6IHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2U6cmFuZ2UgZnJvbSAwIG9mIERJViA+
IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDAgb2YgRElWID4gQk9EWSA+IEhUTUwgPiAjZG9j
dW1lbnQgdG9ET01SYW5nZTpyYW5nZSBmcm9tIDEgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRN
TCA+ICNkb2N1bWVudCB0byAxIG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1l
bnQgYWZmaW5pdHk6TlNTZWxlY3Rpb25BZmZpbml0eURvd25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6
RkFMU0UKK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmll
d0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogd2ViVmll
d0RpZENoYW5nZTpXZWJWaWV3RGlkQ2hhbmdlTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRF
OiBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlOnJhbmdlIGZyb20gMSBvZiAjdGV4dCA+IERJ
ViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDEgb2YgI3RleHQgPiBESVYgPiBCT0RZID4g
SFRNTCA+ICNkb2N1bWVudCB0b0RPTVJhbmdlOnJhbmdlIGZyb20gMiBvZiAjdGV4dCA+IERJViA+
IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDIgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRN
TCA+ICNkb2N1bWVudCBhZmZpbml0eTpOU1NlbGVjdGlvbkFmZmluaXR5RG93bnN0cmVhbSBzdGls
bFNlbGVjdGluZzpGQUxTRQorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVj
dGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVH
QVRFOiB3ZWJWaWV3RGlkQ2hhbmdlOldlYlZpZXdEaWRDaGFuZ2VOb3RpZmljYXRpb24KK0VESVRJ
TkcgREVMRUdBVEU6IHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2U6cmFuZ2UgZnJvbSAyIG9m
ICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gMiBvZiAjdGV4dCA+IERJ
ViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSAzIG9mICN0
ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gMyBvZiAjdGV4dCA+IERJViA+
IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IGFmZmluaXR5Ok5TU2VsZWN0aW9uQWZmaW5pdHlEb3du
c3RyZWFtIHN0aWxsU2VsZWN0aW5nOkZBTFNFCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlk
Q2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VE
SVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2U6V2ViVmlld0RpZENoYW5nZU5vdGlmaWNh
dGlvbgorRURJVElORyBERUxFR0FURTogc2hvdWxkQ2hhbmdlU2VsZWN0ZWRET01SYW5nZTpyYW5n
ZSBmcm9tIDMgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byAzIG9m
ICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG9ET01SYW5nZTpyYW5nZSBm
cm9tIDQgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byA0IG9mICN0
ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgYWZmaW5pdHk6TlNTZWxlY3Rpb25B
ZmZpbml0eURvd25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6RkFMU0UKK0VESVRJTkcgREVMRUdBVEU6
IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlm
aWNhdGlvbgorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZTpXZWJWaWV3RGlkQ2hh
bmdlTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiBzaG91bGRDaGFuZ2VTZWxlY3RlZERP
TVJhbmdlOnJhbmdlIGZyb20gNCBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3Vt
ZW50IHRvIDQgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0b0RPTVJh
bmdlOnJhbmdlIGZyb20gNSBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50
IHRvIDUgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCBhZmZpbml0eTpO
U1NlbGVjdGlvbkFmZmluaXR5RG93bnN0cmVhbSBzdGlsbFNlbGVjdGluZzpGQUxTRQorRURJVElO
RyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2Vs
ZWN0aW9uTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlOldl
YlZpZXdEaWRDaGFuZ2VOb3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHNob3VsZENoYW5n
ZVNlbGVjdGVkRE9NUmFuZ2U6cmFuZ2UgZnJvbSA1IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhU
TUwgPiAjZG9jdW1lbnQgdG8gNSBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3Vt
ZW50IHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSA2IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwg
PiAjZG9jdW1lbnQgdG8gNiBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50
IGFmZmluaXR5Ok5TU2VsZWN0aW9uQWZmaW5pdHlEb3duc3RyZWFtIHN0aWxsU2VsZWN0aW5nOkZB
TFNFCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdE
aWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdE
aWRDaGFuZ2U6V2ViVmlld0RpZENoYW5nZU5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTog
c2hvdWxkQ2hhbmdlU2VsZWN0ZWRET01SYW5nZTpyYW5nZSBmcm9tIDYgb2YgI3RleHQgPiBESVYg
PiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byA2IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhU
TUwgPiAjZG9jdW1lbnQgdG9ET01SYW5nZTpyYW5nZSBmcm9tIDcgb2YgI3RleHQgPiBESVYgPiBC
T0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byA3IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwg
PiAjZG9jdW1lbnQgYWZmaW5pdHk6TlNTZWxlY3Rpb25BZmZpbml0eURvd25zdHJlYW0gc3RpbGxT
ZWxlY3Rpbmc6RkFMU0UKK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rp
b246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FU
RTogd2ViVmlld0RpZENoYW5nZTpXZWJWaWV3RGlkQ2hhbmdlTm90aWZpY2F0aW9uCitFRElUSU5H
IERFTEVHQVRFOiBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlOnJhbmdlIGZyb20gNyBvZiAj
dGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDcgb2YgI3RleHQgPiBESVYg
PiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0b0RPTVJhbmdlOnJhbmdlIGZyb20gOCBvZiAjdGV4
dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDggb2YgI3RleHQgPiBESVYgPiBC
T0RZID4gSFRNTCA+ICNkb2N1bWVudCBhZmZpbml0eTpOU1NlbGVjdGlvbkFmZmluaXR5RG93bnN0
cmVhbSBzdGlsbFNlbGVjdGluZzpGQUxTRQorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENo
YW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCitFRElU
SU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlOldlYlZpZXdEaWRDaGFuZ2VOb3RpZmljYXRp
b24KK0VESVRJTkcgREVMRUdBVEU6IHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2U6cmFuZ2Ug
ZnJvbSA4IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gOCBvZiAj
dGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvRE9NUmFuZ2U6cmFuZ2UgZnJv
bSA5IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gOSBvZiAjdGV4
dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IGFmZmluaXR5Ok5TU2VsZWN0aW9uQWZm
aW5pdHlEb3duc3RyZWFtIHN0aWxsU2VsZWN0aW5nOkZBTFNFCitFRElUSU5HIERFTEVHQVRFOiB3
ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmlj
YXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2U6V2ViVmlld0RpZENoYW5n
ZU5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogc2hvdWxkQ2hhbmdlU2VsZWN0ZWRET01S
YW5nZTpyYW5nZSBmcm9tIDkgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVu
dCB0byA5IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG9ET01SYW5n
ZTpyYW5nZSBmcm9tIDEwIG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQg
dG8gMTAgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCBhZmZpbml0eTpO
U1NlbGVjdGlvbkFmZmluaXR5RG93bnN0cmVhbSBzdGlsbFNlbGVjdGluZzpGQUxTRQorRURJVElO
RyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2Vs
ZWN0aW9uTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlOldl
YlZpZXdEaWRDaGFuZ2VOb3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHNob3VsZENoYW5n
ZVNlbGVjdGVkRE9NUmFuZ2U6cmFuZ2UgZnJvbSAxMCBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBI
VE1MID4gI2RvY3VtZW50IHRvIDEwIG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9j
dW1lbnQgdG9ET01SYW5nZTpyYW5nZSBmcm9tIDExIG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhU
TUwgPiAjZG9jdW1lbnQgdG8gMTEgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1
bWVudCBhZmZpbml0eTpOU1NlbGVjdGlvbkFmZmluaXR5RG93bnN0cmVhbSBzdGlsbFNlbGVjdGlu
ZzpGQUxTRQorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJW
aWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiB3ZWJW
aWV3RGlkQ2hhbmdlOldlYlZpZXdEaWRDaGFuZ2VOb3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdB
VEU6IHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2U6cmFuZ2UgZnJvbSAxMSBvZiAjdGV4dCA+
IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDExIG9mICN0ZXh0ID4gRElWID4gQk9E
WSA+IEhUTUwgPiAjZG9jdW1lbnQgdG9ET01SYW5nZTpyYW5nZSBmcm9tIDEyIG9mICN0ZXh0ID4g
RElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gMTIgb2YgI3RleHQgPiBESVYgPiBCT0RZ
ID4gSFRNTCA+ICNkb2N1bWVudCBhZmZpbml0eTpOU1NlbGVjdGlvbkFmZmluaXR5RG93bnN0cmVh
bSBzdGlsbFNlbGVjdGluZzpGQUxTRQorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5n
ZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCitFRElUSU5H
IERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlOldlYlZpZXdEaWRDaGFuZ2VOb3RpZmljYXRpb24K
K0VESVRJTkcgREVMRUdBVEU6IHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2U6cmFuZ2UgZnJv
bSAxMiBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDEyIG9mICN0
ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG9ET01SYW5nZTpyYW5nZSBmcm9t
IDEzIG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gMTMgb2YgI3Rl
eHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCBhZmZpbml0eTpOU1NlbGVjdGlvbkFm
ZmluaXR5RG93bnN0cmVhbSBzdGlsbFNlbGVjdGluZzpGQUxTRQorRURJVElORyBERUxFR0FURTog
d2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZp
Y2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlOldlYlZpZXdEaWRDaGFu
Z2VOb3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHNob3VsZENoYW5nZVNlbGVjdGVkRE9N
UmFuZ2U6cmFuZ2UgZnJvbSAxMyBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3Vt
ZW50IHRvIDEzIG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG9ET01S
YW5nZTpyYW5nZSBmcm9tIDQgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVu
dCB0byAxMiBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IGFmZmluaXR5
Ok5TU2VsZWN0aW9uQWZmaW5pdHlEb3duc3RyZWFtIHN0aWxsU2VsZWN0aW5nOkZBTFNFCitFRElU
SU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VT
ZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHNob3VsZEluc2VydFRleHQ6
bWVzc2FnZSByZXBsYWNpbmdET01SYW5nZTpyYW5nZSBmcm9tIDQgb2YgI3RleHQgPiBESVYgPiBC
T0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byAxMiBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1M
ID4gI2RvY3VtZW50IGdpdmVuQWN0aW9uOldlYlZpZXdJbnNlcnRBY3Rpb25UeXBlZAorRURJVElO
RyBERUxFR0FURTogc2hvdWxkQ2hhbmdlU2VsZWN0ZWRET01SYW5nZTpyYW5nZSBmcm9tIDQgb2Yg
I3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byAxMiBvZiAjdGV4dCA+IERJ
ViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSAxMSBvZiAj
dGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDExIG9mICN0ZXh0ID4gRElW
ID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgYWZmaW5pdHk6TlNTZWxlY3Rpb25BZmZpbml0eURv
d25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6RkFMU0UKK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdE
aWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgor
RURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZTpXZWJWaWV3RGlkQ2hhbmdlTm90aWZp
Y2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZp
ZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHNob3Vs
ZERlbGV0ZURPTVJhbmdlOnJhbmdlIGZyb20gMTEgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRN
TCA+ICNkb2N1bWVudCB0byAxMiBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3Vt
ZW50CitFRElUSU5HIERFTEVHQVRFOiBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlOnJhbmdl
IGZyb20gMTEgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byAxMSBv
ZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvRE9NUmFuZ2U6cmFuZ2Ug
ZnJvbSAxMSBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDExIG9m
ICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgYWZmaW5pdHk6TlNTZWxlY3Rp
b25BZmZpbml0eURvd25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6RkFMU0UKK0VESVRJTkcgREVMRUdB
VEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5v
dGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZTpXZWJWaWV3RGlk
Q2hhbmdlTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiBzaG91bGREZWxldGVET01SYW5n
ZTpyYW5nZSBmcm9tIDEwIG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQg
dG8gMTEgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudAorRURJVElORyBE
RUxFR0FURTogc2hvdWxkQ2hhbmdlU2VsZWN0ZWRET01SYW5nZTpyYW5nZSBmcm9tIDEwIG9mICN0
ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gMTAgb2YgI3RleHQgPiBESVYg
PiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0b0RPTVJhbmdlOnJhbmdlIGZyb20gMTAgb2YgI3Rl
eHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byAxMCBvZiAjdGV4dCA+IERJViA+
IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IGFmZmluaXR5Ok5TU2VsZWN0aW9uQWZmaW5pdHlEb3du
c3RyZWFtIHN0aWxsU2VsZWN0aW5nOkZBTFNFCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlk
Q2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VE
SVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2U6V2ViVmlld0RpZENoYW5nZU5vdGlmaWNh
dGlvbgorRURJVElORyBERUxFR0FURTogc2hvdWxkRGVsZXRlRE9NUmFuZ2U6cmFuZ2UgZnJvbSA5
IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gMTAgb2YgI3RleHQg
PiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudAorRURJVElORyBERUxFR0FURTogc2hvdWxk
Q2hhbmdlU2VsZWN0ZWRET01SYW5nZTpyYW5nZSBmcm9tIDkgb2YgI3RleHQgPiBESVYgPiBCT0RZ
ID4gSFRNTCA+ICNkb2N1bWVudCB0byA5IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAj
ZG9jdW1lbnQgdG9ET01SYW5nZTpyYW5nZSBmcm9tIDkgb2YgI3RleHQgPiBESVYgPiBCT0RZID4g
SFRNTCA+ICNkb2N1bWVudCB0byA5IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9j
dW1lbnQgYWZmaW5pdHk6TlNTZWxlY3Rpb25BZmZpbml0eURvd25zdHJlYW0gc3RpbGxTZWxlY3Rp
bmc6RkFMU0UKK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2Vi
Vmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogd2Vi
Vmlld0RpZENoYW5nZTpXZWJWaWV3RGlkQ2hhbmdlTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVH
QVRFOiBzaG91bGREZWxldGVET01SYW5nZTpyYW5nZSBmcm9tIDggb2YgI3RleHQgPiBESVYgPiBC
T0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byA5IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwg
PiAjZG9jdW1lbnQKK0VESVRJTkcgREVMRUdBVEU6IHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFu
Z2U6cmFuZ2UgZnJvbSA4IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQg
dG8gOCBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvRE9NUmFuZ2U6
cmFuZ2UgZnJvbSA4IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8g
OCBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IGFmZmluaXR5Ok5TU2Vs
ZWN0aW9uQWZmaW5pdHlEb3duc3RyZWFtIHN0aWxsU2VsZWN0aW5nOkZBTFNFCitFRElUSU5HIERF
TEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rp
b25Ob3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2U6V2ViVmll
d0RpZENoYW5nZU5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogc2hvdWxkRGVsZXRlRE9N
UmFuZ2U6cmFuZ2UgZnJvbSA3IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1l
bnQgdG8gOCBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50CitFRElUSU5H
IERFTEVHQVRFOiBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlOnJhbmdlIGZyb20gNyBvZiAj
dGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDcgb2YgI3RleHQgPiBESVYg
PiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0b0RPTVJhbmdlOnJhbmdlIGZyb20gNyBvZiAjdGV4
dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDcgb2YgI3RleHQgPiBESVYgPiBC
T0RZID4gSFRNTCA+ICNkb2N1bWVudCBhZmZpbml0eTpOU1NlbGVjdGlvbkFmZmluaXR5RG93bnN0
cmVhbSBzdGlsbFNlbGVjdGluZzpGQUxTRQorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENo
YW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCitFRElU
SU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlOldlYlZpZXdEaWRDaGFuZ2VOb3RpZmljYXRp
b24KK0VESVRJTkcgREVMRUdBVEU6IHNob3VsZERlbGV0ZURPTVJhbmdlOnJhbmdlIGZyb20gNiBv
ZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDcgb2YgI3RleHQgPiBE
SVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudAorRURJVElORyBERUxFR0FURTogc2hvdWxkQ2hh
bmdlU2VsZWN0ZWRET01SYW5nZTpyYW5nZSBmcm9tIDYgb2YgI3RleHQgPiBESVYgPiBCT0RZID4g
SFRNTCA+ICNkb2N1bWVudCB0byA2IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9j
dW1lbnQgdG9ET01SYW5nZTpyYW5nZSBmcm9tIDYgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRN
TCA+ICNkb2N1bWVudCB0byA2IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1l
bnQgYWZmaW5pdHk6TlNTZWxlY3Rpb25BZmZpbml0eURvd25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6
RkFMU0UKK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmll
d0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogd2ViVmll
d0RpZENoYW5nZTpXZWJWaWV3RGlkQ2hhbmdlTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRF
OiBzaG91bGREZWxldGVET01SYW5nZTpyYW5nZSBmcm9tIDUgb2YgI3RleHQgPiBESVYgPiBCT0RZ
ID4gSFRNTCA+ICNkb2N1bWVudCB0byA2IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAj
ZG9jdW1lbnQKK0VESVRJTkcgREVMRUdBVEU6IHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2U6
cmFuZ2UgZnJvbSA1IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8g
NSBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvRE9NUmFuZ2U6cmFu
Z2UgZnJvbSA1IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gNSBv
ZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IGFmZmluaXR5Ok5TU2VsZWN0
aW9uQWZmaW5pdHlEb3duc3RyZWFtIHN0aWxsU2VsZWN0aW5nOkZBTFNFCitFRElUSU5HIERFTEVH
QVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25O
b3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2U6V2ViVmlld0Rp
ZENoYW5nZU5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogc2hvdWxkRGVsZXRlRE9NUmFu
Z2U6cmFuZ2UgZnJvbSA0IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQg
dG8gNSBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50CitFRElUSU5HIERF
TEVHQVRFOiBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlOnJhbmdlIGZyb20gNCBvZiAjdGV4
dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDQgb2YgI3RleHQgPiBESVYgPiBC
T0RZID4gSFRNTCA+ICNkb2N1bWVudCB0b0RPTVJhbmdlOnJhbmdlIGZyb20gNCBvZiAjdGV4dCA+
IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDQgb2YgI3RleHQgPiBESVYgPiBCT0RZ
ID4gSFRNTCA+ICNkb2N1bWVudCBhZmZpbml0eTpOU1NlbGVjdGlvbkFmZmluaXR5RG93bnN0cmVh
bSBzdGlsbFNlbGVjdGluZzpGQUxTRQorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5n
ZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCitFRElUSU5H
IERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlOldlYlZpZXdEaWRDaGFuZ2VOb3RpZmljYXRpb24K
K2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUg
ODAweDYwMAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlckJsb2NrIHtIVE1M
fSBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBz
aXplIDc4NHg1ODQKKyAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDApIHNpemUgNzg0eDE4
CisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDM5N3gxOAorICAgICAg
ICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDM5NzogIlVwb24gc3VjY2VzcywgeW91IHNob3Vs
ZCBvbmx5IHNlZSB0aGUgd29yZCBcInRoZVwiIGluIHRleHQgZmllbGQuIgorICAgICAgUmVuZGVy
QmxvY2sge1B9IGF0ICgwLDM0KSBzaXplIDc4NHgxOCBbY29sb3I9IzAwODAwMF0KKyAgICAgICAg
UmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNzAyeDE4CisgICAgICAgICAgdGV4dCBy
dW4gYXQgKDAsMCkgd2lkdGggNzAyOiAiTm90ZSwgdGhpcyB0ZXN0IGNhbiBmYWlsIGR1ZSB0byB1
c2VyIHNwZWNpZmljIHNwZWxsIGNoZWNraW5nIGRhdGEuIFRvIGZpeCB0aGlzLCByZW1vdmUgYWxs
IGZpbGVzIGluIH4vTGlicmFyeS9TcGVsbGluZy4iCisgICAgICBSZW5kZXJCbG9jayB7RElWfSBh
dCAoMCw2OCkgc2l6ZSA3ODR4NTYgW2JvcmRlcjogKDJweCBzb2xpZCAjRkYwMDAwKV0KKyAgICAg
ICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgxNCwxNCkgc2l6ZSAzNngyOAorICAgICAgICAgIHRl
eHQgcnVuIGF0ICgxNCwxNCkgd2lkdGggMzY6ICJ0aGUgIgorICAgICAgICBSZW5kZXJJbmxpbmUg
e1NQQU59IGF0ICgwLDApIHNpemUgMHgyOAorY2FyZXQ6IHBvc2l0aW9uIDQgb2YgY2hpbGQgMCB7
I3RleHR9IG9mIGNoaWxkIDUge0RJVn0gb2YgYm9keQpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjL2VkaXRpbmcvc3BlbGxpbmcvZGVsZXRlLWF1dG9jb3JyZWN0ZWQtd29yZC0xLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2VkaXRpbmcvc3BlbGxpbmcv
ZGVsZXRlLWF1dG9jb3JyZWN0ZWQtd29yZC0xLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvZWRpdGluZy9zcGVsbGluZy9kZWxldGUtYXV0b2NvcnJlY3RlZC13
b3JkLTEuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1NiBAQAorPGh0bWw+IAorPGhlYWQ+
CisKKzxzdHlsZT4KKy5lZGl0aW5nIHsgCisgICAgYm9yZGVyOiAycHggc29saWQgcmVkOyAKKyAg
ICBwYWRkaW5nOiAxMnB4OyAKKyAgICBmb250LXNpemU6IDI0cHg7IAorfQorPC9zdHlsZT4KKzxz
Y3JpcHQgc3JjPS4uLy4uLy4uLy4uL2VkaXRpbmcvZWRpdGluZy5qcyBsYW5ndWFnZT0iSmF2YVNj
cmlwdCIgdHlwZT0idGV4dC9KYXZhU2NyaXB0IiA+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisKK2Z1
bmN0aW9uIGVkaXRpbmdUZXN0KCkgeworICAgIHR5cGVDaGFyYWN0ZXJDb21tYW5kKCd0Jyk7Cisg
ICAgdHlwZUNoYXJhY3RlckNvbW1hbmQoJ2gnKTsKKyAgICB0eXBlQ2hhcmFjdGVyQ29tbWFuZCgn
ZScpOworICAgIHR5cGVDaGFyYWN0ZXJDb21tYW5kKCcgJyk7CisgICAgdHlwZUNoYXJhY3RlckNv
bW1hbmQoJ20nKTsKKyAgICB0eXBlQ2hhcmFjdGVyQ29tbWFuZCgnZScpOworICAgIHR5cGVDaGFy
YWN0ZXJDb21tYW5kKCdzJyk7CisgICAgdHlwZUNoYXJhY3RlckNvbW1hbmQoJ3MnKTsKKyAgICB0
eXBlQ2hhcmFjdGVyQ29tbWFuZCgnYScpOworICAgIHR5cGVDaGFyYWN0ZXJDb21tYW5kKCdnJyk7
CisgICAgdHlwZUNoYXJhY3RlckNvbW1hbmQoJ2UnKTsKKyAgICB0eXBlQ2hhcmFjdGVyQ29tbWFu
ZCgnZScpOworICAgIHR5cGVDaGFyYWN0ZXJDb21tYW5kKCcgJyk7CisgICAgZXhlY0RlbGV0ZUNv
bW1hbmQoKTsKKyAgICBleGVjRGVsZXRlQ29tbWFuZCgpOworICAgIGV4ZWNEZWxldGVDb21tYW5k
KCk7CisgICAgZXhlY0RlbGV0ZUNvbW1hbmQoKTsKKyAgICBleGVjRGVsZXRlQ29tbWFuZCgpOwor
ICAgIGV4ZWNEZWxldGVDb21tYW5kKCk7CisgICAgZXhlY0RlbGV0ZUNvbW1hbmQoKTsKKyAgICBl
eGVjRGVsZXRlQ29tbWFuZCgpOworfQorCis8L3NjcmlwdD4KKworPHRpdGxlPkRlbGV0ZSBBdXRv
Y29ycmVjdGVkIFdvcmQgVGVzdCAxPC90aXRsZT4gCis8L2hlYWQ+IAorPGJvZHk+Cis8ZGl2PlVw
b24gc3VjY2VzcywgeW91IHNob3VsZCBvbmx5IHNlZSB0aGUgd29yZCAidGhlIiBpbiB0ZXh0IGZp
ZWxkLjwvZGl2PgorPHAgIHN0eWxlPSJjb2xvcjpncmVlbiI+Tm90ZSwgdGhpcyB0ZXN0IGNhbiBm
YWlsIGR1ZSB0byB1c2VyIHNwZWNpZmljIHNwZWxsIGNoZWNraW5nIGRhdGEuIFRvIGZpeCB0aGlz
LCByZW1vdmUgYWxsIGZpbGVzIGluIH4vTGlicmFyeS9TcGVsbGluZy48L3A+Cis8ZGl2IGNvbnRl
bnRlZGl0YWJsZSBpZD0icm9vdCIgY2xhc3M9ImVkaXRpbmciPgorPHNwYW4gaWQ9InRlc3QiPjwv
c3Bhbj4KKzwvZGl2PgorCisKKzxzY3JpcHQ+CitydW5FZGl0aW5nVGVzdCgpOworPC9zY3JpcHQ+
CisKKzwvYm9keT4KKzwvaHRtbD4K
</data>
<flag name="review"
          id="65764"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>75064</attachid>
            <date>2010-11-29 14:36:00 -0800</date>
            <delta_ts>2010-11-29 14:46:27 -0800</delta_ts>
            <desc>Proposed patch (v3)</desc>
            <filename>webkit_bug50137.patch</filename>
            <type>text/plain</type>
            <size>75693</size>
            <attacher name="Jia Pu">jiapu.mail</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3MjgyNSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNjMgQEAKKzIwMTAtMTEtMjkgIEppYSBQdSAgPGpwdUBhcHBsZS5jb20+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3VwcG9ydCBtdWx0
aXBsZSBjb3JyZWN0aW9uIGNhbmRpZGF0ZXMgcGFuZWwgZm9yIG1pc3NwZWxsZWQgd29yZCBvbiBN
YWMgT1MgWC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTUwMTM3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NTY4MDU5PgorCisgICAgICAgIFRlc3Q6
IHBsYXRmb3JtL21hYy9lZGl0aW5nL3NwZWxsaW5nL2RlbGV0ZS1hdXRvY29ycmVjdGVkLXdvcmQt
MS5odG1sCisgICAgICAgIE1hbnVhbCB0ZXN0OiBXZWJDb3JlL21hbnVhbC10ZXN0cy9hdXRvY29y
cmVjdGlvbi9kaXNtaXNzLW11bHRpcGxlLWd1ZXNzZXMuaHRtbAorICAgICAgICAgICAgICAgICAg
ICAgV2ViQ29yZS9tYW51YWwtdGVzdHMvYXV0b2NvcnJlY3Rpb24vc2VsZWN0LWZyb20tbXVsdGlw
bGUtZ3Vlc3Nlcy5odG1sCisKKyAgICAgICAgVGhpcyBwYXRjaCBpcyBmb3Igc3VwcG9ydGluZyBt
dWx0aXBsZSBjb3JyZWN0aW9uIHN1Z2dlc3Rpb24gcGFuZWwgb24gTWFjIE9TIFguCisgICAgICAg
IFRoZSBiZWhhdmlvciBhbmQgaW1wbGVtZW50YXRpb24gaXMgc2ltaWxhciB0byB0aGF0IG9mIHJl
dmVyc2lvbiBjYW5kaWF0ZSBwYW5lbC4KKworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOiBBZGRl
ZCBhbmQgcmVtb3ZlZCBzeW1ib2xzLgorCisgICAgICAgICogZWRpdGluZy9Db3JyZWN0aW9uUGFu
ZWxJbmZvLmg6IEFkZGVkIG5ldyBjb3JyZWN0aW9uIHBhbmVsIHR5cGUsIFBhbmVsVHlwZVNwZWxs
aW5nU3VnZ2VzdGlvbnMuCisKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjptYXJrZXJUeXBlc0ZvckF1dG9jb3JyZWN0aW9uKTogQ29udmVuaWVudCBmdW5j
dGlvbiBmb3IgZ2V0dGluZyBtYXJrZXIgdHlwZXMgdG8KKyAgICAgICAgICBiZSBhZGRlZCB0byBh
dXRvY29ycmVjdGVkIHdvcmQuCisgICAgICAgIChXZWJDb3JlOjpib3VuZGluZ0JveEZvclJhbmdl
KTogQ29udmVuaWVudCBmdW5jdGlvbiBmb3IgY2FsY3VsYXRpbmcgdGhlIGJvdW5kaW5nIGJveCBv
ZiBhIHJhbmdlLgorICAgICAgICAoV2ViQ29yZTo6bWFya2VyVHlwZXNGb3JSZXBsYWNlbWVudCk6
IENvbnZlbmllbnQgZnVuY3Rpb24gZm9yIGdldHRpbmcgbWFya2VyIHR5cGVzIHRvCisgICAgICAg
ICAgYmUgYWRkZWQgdG8gd29yZCB0aGF0IGhhcyBiZWVuIHJlcGxhY2VkIGJ5IHZhcmlvdXMgY29y
cmVjdGlvbiBwYW5lbC4KKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6cmVzcG9uZFRvQ2hhbmdl
ZFNlbGVjdGlvbik6IEFkZGVkIGNvZGUgdG8gdHJpZ2dlciB0aW1lciBmb3IgbXVsdGlwbGUKKyAg
ICAgICAgICBzdWdnZXN0aW9uIHBhbmVsLgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpndWVz
c2VzRm9yTWlzc3BlbGxlZFNlbGVjdGlvbik6IEFkb3B0ZWQgbmV3IHNpZ25hdHVyZSBvZiBFZGl0
b3JDbGllbnQ6OmdldEd1ZXNzZXNGb3JXb3JkKCkuCisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6
Om1hcmtNaXNzcGVsbGluZ3NBZnRlclR5cGluZ1RvV29yZCk6IEFkb3B0ZWQgbmV3IHNpZ25hdHVy
ZSBvZiBhcHBseUNvcnJlY3Rpb25QYW5lbEluZm8oKS4KKyAgICAgICAgKFdlYkNvcmU6OkVkaXRv
cjo6bWFya0FsbE1pc3NwZWxsaW5nc0FuZEJhZEdyYW1tYXJJblJhbmdlcyk6IERpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6RWRpdG9yOjpjb3JyZWN0aW9uUGFuZWxUaW1lckZpcmVkKTogQWRkZWQg
Y29kZSB0byBoYW5kbGUgbmV3IG11bHRpcGxlIHN1Z2dlc3Rpb24gcGFuZWwuCisgICAgICAgIChX
ZWJDb3JlOjpFZGl0b3I6OmhhbmRsZUNvcnJlY3Rpb25QYW5lbFJlc3VsdCk6IFJlcGxhY2VkIGhh
bmRsZVJlamVjdGVkQ29ycmVjdGlvbigpLCBzaW5jZQorICAgICAgICAgIHdpdGggbmV3IEFwcEtp
dCBjb3JyZWN0aW9uIHBhbmVsIEFQSSwgbm90IG9ubHkgcmVqZWN0aW9uLCBidXQgYWxzbyBjb25m
aXJtYXRpb24gY2FuIGJlCisgICAgICAgICAgaGFuZGxlZCBpbiBjYWxsYmFjay4KKyAgICAgICAg
KFdlYkNvcmU6OkVkaXRvcjo6c3RvcENvcnJlY3Rpb25QYW5lbFRpbWVyKTogTW92ZWQgdGhlIGNv
ZGUgdGhhdCBjbGVhcnMgY29ycmVjdGlvbiBwYW5lbCBpbmZvCisgICAgICAgICAgZnJvbSBkaXNt
aXNzQ29ycmVjdGlvblBhbmVsKCkgdG8gdGhpcyBmdW5jdGlvbiB0byBmaXggYSBidWcgdGhhdCB3
b3VsZCBvY2N1ciB3aGVuIGRlbGV0aW5nCisgICAgICAgICAgYXV0b2NvcnJlY3RlZCB3b3JkLgor
ICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpkaXNtaXNzQ29ycmVjdGlvblBhbmVsKTogRGl0dG8u
CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OmFwcGx5Q29ycmVjdGlvblBhbmVsSW5mbyk6IEFk
ZGVkIGNvZGUgdG8gaGFuZGxlIG5ldyBtdWx0aXBsZSBzdWdnZXN0aW9uIHBhbmVsLgorCisgICAg
ICAgICogZWRpdGluZy9FZGl0b3IuaDogUmVwbGFjZWQgaGFuZGxlUmVqZWN0ZWRDb3JyZWN0aW9u
KCkgd2l0aCBoYW5kbGVDb3JyZWN0aW9uUGFuZWxSZXN1bHQoKS4KKyAgICAgICAgICBDaGFuZ2Vk
IHRoZSBzaWduYXR1cmUgb2YgYXBwbHlDb3JyZWN0aW9uUGFuZWxJbmZvKCkgdG8gaGFubGRlIG5l
dyBjb3JyZWN0aW9uIHBhbmVsIHR5cGUuCisKKyAgICAgICAgKiBlZGl0aW5nL1RleHRDaGVja2lu
Z0hlbHBlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0Q2hlY2tpbmdIZWxwZXI6Omd1ZXNz
ZXNGb3JNaXNzcGVsbGVkT3JVbmdyYW1tYXRpY2FsUmFuZ2UpOiBBZG9wdGVkIG5ldyBFZGl0b3JD
bGllbnQ6OmdldEd1ZXNzZXNGb3JXb3JkKCkuCisKKyAgICAgICAgKiBlZGl0aW5nL1RleHRDaGVj
a2luZ0hlbHBlci5oOiBNYWRlIHBhcmFncmFwaFJhbmdlKCkgcHVibGljLgorCisgICAgICAgICog
bG9hZGVyL0VtcHR5Q2xpZW50cy5oOgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlFZGl0b3JDbGll
bnQ6OnNob3dDb3JyZWN0aW9uUGFuZWwpOiBBZG9wdGVkIG5ldyBzaWduYXR1cmUgZGVmaW5lZCBp
biBiYXNlIGNsYXNzLgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlFZGl0b3JDbGllbnQ6OmdldEd1
ZXNzZXNGb3JXb3JkKTogRGl0dG8uCisKKyAgICAgICAgKiBtYW51YWwtdGVzdHMvYXV0b2NvcnJl
Y3Rpb24vZGlzbWlzcy1tdWx0aXBsZS1ndWVzc2VzLmh0bWw6IEFkZGVkLgorCisgICAgICAgICog
bWFudWFsLXRlc3RzL2F1dG9jb3JyZWN0aW9uL3NlbGVjdC1mcm9tLW11bHRpcGxlLWd1ZXNzZXMu
aHRtbDogQWRkZWQuCisKKyAgICAgICAgKiBwYWdlL0VkaXRvckNsaWVudC5oOiAgQ2hhbmdlZCBz
aG93Q29ycmVjdGlvblBhbmVsKCkgdG8gYWxsb3cgcGFzc2luZyBtdWx0aXBsZSBjb3JyZWN0aW9u
CisgICAgICAgICAgY2FuZGlkYXRlcy4gQ2hhbmdlZCBnZXRHdWVzc2VzRm9yV29yZCgpIHRvIGFs
bG93IHBhc3NpbmcgaW4gY29udGV4dHVhbCB0ZXh0IGZvciBiZXR0ZXIKKyAgICAgICAgICBjb3Jy
ZWN0aW9uIHN1Z2dlc3Rpb25zIChmb3IgdGhvc2Ugc3BlbGxjaGVja2VycyB0aGF0IHV0aWxpemVz
IHN1Y2ggY29udGV4dHVhbCBpbmZvcm1hdGlvbikuCisKIDIwMTAtMTEtMjkgIERpbWl0cmkgR2xh
emtvdiAgPGRnbGF6a292QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJp
biBBZGxlci4KSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5leHAuaW4KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9XZWJDb3JlLmV4cC5pbgkocmV2aXNpb24gNzI4MjUpCisrKyBXZWJDb3JlL1dlYkNvcmUu
ZXhwLmluCSh3b3JraW5nIGNvcHkpCkBAIC02ODEsMTAgKzY4MSwxMCBAQCBfX1pON1dlYkNvcmU2
RWRpdG9yMjFpc1NlbGVjdGlvbk1pc3NwZWxsCiBfX1pON1dlYkNvcmU2RWRpdG9yMjNzZXRCYXNl
V3JpdGluZ0RpcmVjdGlvbkVOU18xNldyaXRpbmdEaXJlY3Rpb25FCiBfX1pON1dlYkNvcmU2RWRp
dG9yMjRhZHZhbmNlVG9OZXh0TWlzc3BlbGxpbmdFYgogX19aTjdXZWJDb3JlNkVkaXRvcjI0Y29t
cHV0ZUFuZFNldFR5cGluZ1N0eWxlRVBOU18xOUNTU1N0eWxlRGVjbGFyYXRpb25FTlNfMTBFZGl0
QWN0aW9uRQotX19aTjdXZWJDb3JlNkVkaXRvcjI0aGFuZGxlUmVqZWN0ZWRDb3JyZWN0aW9uRXYK
IF9fWk43V2ViQ29yZTZFZGl0b3IyNGlzU2VsZWN0aW9uVW5ncmFtbWF0aWNhbEV2CiBfX1pON1dl
YkNvcmU2RWRpdG9yMjZkZWNyZWFzZVNlbGVjdGlvbkxpc3RMZXZlbEV2CiBfX1pON1dlYkNvcmU2
RWRpdG9yMjZpbmNyZWFzZVNlbGVjdGlvbkxpc3RMZXZlbEV2CitfX1pON1dlYkNvcmU2RWRpdG9y
MjdoYW5kbGVDb3JyZWN0aW9uUGFuZWxSZXN1bHRFUktOM1dURjZTdHJpbmdFCiBfX1pON1dlYkNv
cmU2RWRpdG9yMjljYW5EZWNyZWFzZVNlbGVjdGlvbkxpc3RMZXZlbEV2CiBfX1pON1dlYkNvcmU2
RWRpdG9yMjljYW5JbmNyZWFzZVNlbGVjdGlvbkxpc3RMZXZlbEV2CiBfX1pON1dlYkNvcmU2RWRp
dG9yMzBhcHBseVBhcmFncmFwaFN0eWxlVG9TZWxlY3Rpb25FUE5TXzE5Q1NTU3R5bGVEZWNsYXJh
dGlvbkVOU18xMEVkaXRBY3Rpb25FCkluZGV4OiBXZWJDb3JlL2VkaXRpbmcvQ29ycmVjdGlvblBh
bmVsSW5mby5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZWRpdGluZy9Db3JyZWN0aW9uUGFuZWxJ
bmZvLmgJKHJldmlzaW9uIDcyODI1KQorKysgV2ViQ29yZS9lZGl0aW5nL0NvcnJlY3Rpb25QYW5l
bEluZm8uaAkod29ya2luZyBjb3B5KQpAQCAtNDQsNyArNDQsOCBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiBzdHJ1Y3QgQ29ycmVjdGlvblBhbmVsSW5mbyB7CiAgICAgZW51bSBQYW5lbFR5cGUgewog
ICAgICAgICBQYW5lbFR5cGVDb3JyZWN0aW9uID0gMCwKLSAgICAgICAgUGFuZWxUeXBlUmV2ZXJz
aW9uCisgICAgICAgIFBhbmVsVHlwZVJldmVyc2lvbiwKKyAgICAgICAgUGFuZWxUeXBlU3BlbGxp
bmdTdWdnZXN0aW9ucwogICAgIH07CiAKICAgICBSZWZQdHI8UmFuZ2U+IG1fcmFuZ2VUb0JlUmVw
bGFjZWQ7CkluZGV4OiBXZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAkocmV2aXNpb24gNzI4MjUpCisrKyBXZWJDb3JlL2Vk
aXRpbmcvRWRpdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTIsNiArOTIsMzcgQEAgc3RhdGlj
IGlubGluZSBib29sIGlzQW1iaWd1b3VzQm91bmRhcnlDaAogICAgIHJldHVybiBjaGFyYWN0ZXIg
PT0gJ1wnJyB8fCBjaGFyYWN0ZXIgPT0gcmlnaHRTaW5nbGVRdW90YXRpb25NYXJrIHx8IGNoYXJh
Y3RlciA9PSBoZWJyZXdQdW5jdHVhdGlvbkdlcnNoYXlpbTsKIH0KIAorI2lmIFNVUFBPUlRfQVVU
T0NPUlJFQ1RJT05fUEFORUwKK3N0YXRpYyBjb25zdCBWZWN0b3I8RG9jdW1lbnRNYXJrZXI6Ok1h
cmtlclR5cGU+JiBtYXJrZXJUeXBlc0ZvckF1dG9jb3JyZWN0aW9uKCkKK3sKKyAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKFZlY3RvcjxEb2N1bWVudE1hcmtlcjo6TWFya2VyVHlwZT4sIG1hcmtlclR5
cGVzRm9yQXV0b0NvcnJlY3Rpb24sICgpKTsKKyAgICBpZiAobWFya2VyVHlwZXNGb3JBdXRvQ29y
cmVjdGlvbi5pc0VtcHR5KCkpIHsKKyAgICAgICAgbWFya2VyVHlwZXNGb3JBdXRvQ29ycmVjdGlv
bi5hcHBlbmQoRG9jdW1lbnRNYXJrZXI6OlJlcGxhY2VtZW50KTsKKyAgICAgICAgbWFya2VyVHlw
ZXNGb3JBdXRvQ29ycmVjdGlvbi5hcHBlbmQoRG9jdW1lbnRNYXJrZXI6OkNvcnJlY3Rpb25JbmRp
Y2F0b3IpOworICAgIH0KKyAgICByZXR1cm4gbWFya2VyVHlwZXNGb3JBdXRvQ29ycmVjdGlvbjsK
K30KKworc3RhdGljIEZsb2F0UmVjdCBib3VuZGluZ0JveEZvclJhbmdlKFJhbmdlKiByYW5nZSkK
K3sKKyAgICBWZWN0b3I8RmxvYXRRdWFkPiB0ZXh0UXVhZHM7CisgICAgcmFuZ2UtPmdldEJvcmRl
ckFuZFRleHRRdWFkcyh0ZXh0UXVhZHMpOworICAgIEZsb2F0UmVjdCB0b3RhbEJvdW5kaW5nQm94
OworICAgIHNpemVfdCBzaXplID0gdGV4dFF1YWRzLnNpemUoKTsKKyAgICBmb3IgKHNpemVfdCBp
ID0gMDsgaTwgc2l6ZTsgKytpKQorICAgICAgICB0b3RhbEJvdW5kaW5nQm94LnVuaXRlKHRleHRR
dWFkc1tpXS5ib3VuZGluZ0JveCgpKTsKKyAgICByZXR1cm4gdG90YWxCb3VuZGluZ0JveDsKK30K
KyNlbmRpZiAvLyBTVVBQT1JUX0FVVE9DT1JSRUNUSU9OX1BBTkVMCisKK3N0YXRpYyBjb25zdCBW
ZWN0b3I8RG9jdW1lbnRNYXJrZXI6Ok1hcmtlclR5cGU+JiBtYXJrZXJUeXBlc0ZvclJlcGxhY2Vt
ZW50KCkKK3sKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFZlY3RvcjxEb2N1bWVudE1hcmtlcjo6
TWFya2VyVHlwZT4sIG1hcmtlclR5cGVzRm9yUmVwbGFjZW1lbnQsICgpKTsKKyAgICBpZiAobWFy
a2VyVHlwZXNGb3JSZXBsYWNlbWVudC5pc0VtcHR5KCkpCisgICAgICAgIG1hcmtlclR5cGVzRm9y
UmVwbGFjZW1lbnQuYXBwZW5kKERvY3VtZW50TWFya2VyOjpSZXBsYWNlbWVudCk7CisgICAgcmV0
dXJuIG1hcmtlclR5cGVzRm9yUmVwbGFjZW1lbnQ7Cit9CisKIC8vIFdoZW4gYW4gZXZlbnQgaGFu
ZGxlciBoYXMgbW92ZWQgdGhlIHNlbGVjdGlvbiBvdXRzaWRlIG9mIGEgdGV4dCBjb250cm9sCiAv
LyB3ZSBzaG91bGQgdXNlIHRoZSB0YXJnZXQgY29udHJvbCdzIHNlbGVjdGlvbiBmb3IgdGhpcyBl
ZGl0aW5nIG9wZXJhdGlvbi4KIFZpc2libGVTZWxlY3Rpb24gRWRpdG9yOjpzZWxlY3Rpb25Gb3JD
b21tYW5kKEV2ZW50KiBldmVudCkKQEAgLTUwMCwxMyArNTMxLDE4IEBAIHZvaWQgRWRpdG9yOjpy
ZXNwb25kVG9DaGFuZ2VkU2VsZWN0aW9uKGMKICAgICBzaXplX3QgbWFya2VyQ291bnQgPSBtYXJr
ZXJzLnNpemUoKTsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1hcmtlckNvdW50OyArK2kp
IHsKICAgICAgICAgY29uc3QgRG9jdW1lbnRNYXJrZXImIG1hcmtlciA9IG1hcmtlcnNbaV07Ci0g
ICAgICAgIGlmIChtYXJrZXIudHlwZSA9PSBEb2N1bWVudE1hcmtlcjo6Q29ycmVjdGlvbkluZGlj
YXRvciAmJiBzdGF0aWNfY2FzdDxpbnQ+KG1hcmtlci5lbmRPZmZzZXQpID09IGVuZE9mZnNldCkg
eworICAgICAgICBpZiAoKChtYXJrZXIudHlwZSA9PSBEb2N1bWVudE1hcmtlcjo6Q29ycmVjdGlv
bkluZGljYXRvciAmJiBtYXJrZXIuZGVzY3JpcHRpb24ubGVuZ3RoKCkpIHx8IG1hcmtlci50eXBl
ID09IERvY3VtZW50TWFya2VyOjpTcGVsbGluZykgJiYgc3RhdGljX2Nhc3Q8aW50PihtYXJrZXIu
ZW5kT2Zmc2V0KSA9PSBlbmRPZmZzZXQpIHsKICAgICAgICAgICAgIFJlZlB0cjxSYW5nZT4gd29y
ZFJhbmdlID0gUmFuZ2U6OmNyZWF0ZShmcmFtZSgpLT5kb2N1bWVudCgpLCBub2RlLCBtYXJrZXIu
c3RhcnRPZmZzZXQsIG5vZGUsIG1hcmtlci5lbmRPZmZzZXQpOwogICAgICAgICAgICAgU3RyaW5n
IGN1cnJlbnRXb3JkID0gcGxhaW5UZXh0KHdvcmRSYW5nZS5nZXQoKSk7Ci0gICAgICAgICAgICBp
ZiAoY3VycmVudFdvcmQubGVuZ3RoKCkgPiAwICYmIG1hcmtlci5kZXNjcmlwdGlvbi5sZW5ndGgo
KSA+IDApIHsKKyAgICAgICAgICAgIGlmIChjdXJyZW50V29yZC5sZW5ndGgoKSkgewogICAgICAg
ICAgICAgICAgIG1fY29ycmVjdGlvblBhbmVsSW5mby5tX3JhbmdlVG9CZVJlcGxhY2VkID0gd29y
ZFJhbmdlOwotICAgICAgICAgICAgICAgIG1fY29ycmVjdGlvblBhbmVsSW5mby5tX3JlcGxhY2Vt
ZW50U3RyaW5nID0gbWFya2VyLmRlc2NyaXB0aW9uOwotICAgICAgICAgICAgICAgIHN0YXJ0Q29y
cmVjdGlvblBhbmVsVGltZXIoQ29ycmVjdGlvblBhbmVsSW5mbzo6UGFuZWxUeXBlUmV2ZXJzaW9u
KTsKKyAgICAgICAgICAgICAgICBtX2NvcnJlY3Rpb25QYW5lbEluZm8ubV9yZXBsYWNlZFN0cmlu
ZyA9IGN1cnJlbnRXb3JkOworICAgICAgICAgICAgICAgIGlmIChtYXJrZXIudHlwZSA9PSBEb2N1
bWVudE1hcmtlcjo6U3BlbGxpbmcpCisgICAgICAgICAgICAgICAgICAgIHN0YXJ0Q29ycmVjdGlv
blBhbmVsVGltZXIoQ29ycmVjdGlvblBhbmVsSW5mbzo6UGFuZWxUeXBlU3BlbGxpbmdTdWdnZXN0
aW9ucyk7CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIG1fY29y
cmVjdGlvblBhbmVsSW5mby5tX3JlcGxhY2VtZW50U3RyaW5nID0gbWFya2VyLmRlc2NyaXB0aW9u
OworICAgICAgICAgICAgICAgICAgICBzdGFydENvcnJlY3Rpb25QYW5lbFRpbWVyKENvcnJlY3Rp
b25QYW5lbEluZm86OlBhbmVsVHlwZVJldmVyc2lvbik7CisgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KQEAgLTE5MzIsNyArMTk2
OCw3IEBAIFZlY3RvcjxTdHJpbmc+IEVkaXRvcjo6Z3Vlc3Nlc0Zvck1pc3NwZWwKIAogICAgIFZl
Y3RvcjxTdHJpbmc+IGd1ZXNzZXM7CiAgICAgaWYgKGNsaWVudCgpKQotICAgICAgICBjbGllbnQo
KS0+Z2V0R3Vlc3Nlc0ZvcldvcmQoc2VsZWN0ZWRTdHJpbmcsIGd1ZXNzZXMpOworICAgICAgICBj
bGllbnQoKS0+Z2V0R3Vlc3Nlc0ZvcldvcmQoc2VsZWN0ZWRTdHJpbmcsIFN0cmluZygpLCBndWVz
c2VzKTsKICAgICByZXR1cm4gZ3Vlc3NlczsKIH0KIApAQCAtMjAxOSw3ICsyMDU1LDcgQEAgdm9p
ZCBFZGl0b3I6Om1hcmtNaXNzcGVsbGluZ3NBZnRlclR5cGluZwogICAgICAgICAgICAgZG9BcHBs
eUNvcnJlY3Rpb24gPSBmYWxzZTsKICAgICB9CiAgICAgaWYgKGRvQXBwbHlDb3JyZWN0aW9uKQot
ICAgICAgICBhcHBseUNvcnJlY3Rpb25QYW5lbEluZm8odHJ1ZSk7CisgICAgICAgIGFwcGx5Q29y
cmVjdGlvblBhbmVsSW5mbyhtYXJrZXJUeXBlc0ZvckF1dG9jb3JyZWN0aW9uKCkpOwogICAgIG1f
Y29ycmVjdGlvblBhbmVsSW5mby5tX3JhbmdlVG9CZVJlcGxhY2VkLmNsZWFyKCk7CiAjZWxzZQog
ICAgIFVOVVNFRF9QQVJBTShzZWxlY3Rpb25BZnRlclR5cGluZyk7CkBAIC0yMzQxLDcgKzIzNzcs
NyBAQCB2b2lkIEVkaXRvcjo6bWFya0FsbE1pc3NwZWxsaW5nc0FuZEJhZEdyCiAgICAgICAgICAg
ICAgICAgICAgICAgICBtX2NvcnJlY3Rpb25QYW5lbEluZm8ubV9yZXBsYWNlZFN0cmluZyA9IHJl
cGxhY2VkU3RyaW5nOwogICAgICAgICAgICAgICAgICAgICAgICAgbV9jb3JyZWN0aW9uUGFuZWxJ
bmZvLm1fcmVwbGFjZW1lbnRTdHJpbmcgPSByZXN1bHQtPnJlcGxhY2VtZW50OwogICAgICAgICAg
ICAgICAgICAgICAgICAgbV9jb3JyZWN0aW9uUGFuZWxJbmZvLm1faXNBY3RpdmUgPSB0cnVlOwot
ICAgICAgICAgICAgICAgICAgICAgICAgY2xpZW50KCktPnNob3dDb3JyZWN0aW9uUGFuZWwobV9j
b3JyZWN0aW9uUGFuZWxJbmZvLm1fcGFuZWxUeXBlLCB0b3RhbEJvdW5kaW5nQm94LCBtX2NvcnJl
Y3Rpb25QYW5lbEluZm8ubV9yZXBsYWNlZFN0cmluZywgcmVzdWx0LT5yZXBsYWNlbWVudCwgdGhp
cyk7CisgICAgICAgICAgICAgICAgICAgICAgICBjbGllbnQoKS0+c2hvd0NvcnJlY3Rpb25QYW5l
bChtX2NvcnJlY3Rpb25QYW5lbEluZm8ubV9wYW5lbFR5cGUsIHRvdGFsQm91bmRpbmdCb3gsIG1f
Y29ycmVjdGlvblBhbmVsSW5mby5tX3JlcGxhY2VkU3RyaW5nLCByZXN1bHQtPnJlcGxhY2VtZW50
LCBWZWN0b3I8U3RyaW5nPigpLCB0aGlzKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGRvUmVw
bGFjZW1lbnQgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAgfQogI2VuZGlmCkBAIC0yNDE5
LDM5ICsyNDU1LDY4IEBAIHZvaWQgRWRpdG9yOjptYXJrTWlzc3BlbGxpbmdzQW5kQmFkR3JhbW0K
IHZvaWQgRWRpdG9yOjpjb3JyZWN0aW9uUGFuZWxUaW1lckZpcmVkKFRpbWVyPEVkaXRvcj4qKQog
ewogI2lmIFNVUFBPUlRfQVVUT0NPUlJFQ1RJT05fUEFORUwKLSAgICBpZiAobV9jb3JyZWN0aW9u
UGFuZWxJbmZvLm1fcGFuZWxUeXBlID09IENvcnJlY3Rpb25QYW5lbEluZm86OlBhbmVsVHlwZUNv
cnJlY3Rpb24pIHsKKyAgICBzd2l0Y2ggKG1fY29ycmVjdGlvblBhbmVsSW5mby5tX3BhbmVsVHlw
ZSkgeworICAgIGNhc2UgQ29ycmVjdGlvblBhbmVsSW5mbzo6UGFuZWxUeXBlQ29ycmVjdGlvbjog
ewogICAgICAgICBWaXNpYmxlU2VsZWN0aW9uIHNlbGVjdGlvbihmcmFtZSgpLT5zZWxlY3Rpb24o
KS0+c2VsZWN0aW9uKCkpOwogICAgICAgICBWaXNpYmxlUG9zaXRpb24gc3RhcnQoc2VsZWN0aW9u
LnN0YXJ0KCksIHNlbGVjdGlvbi5hZmZpbml0eSgpKTsKICAgICAgICAgVmlzaWJsZVBvc2l0aW9u
IHAgPSBzdGFydE9mV29yZChzdGFydCwgTGVmdFdvcmRJZk9uQm91bmRhcnkpOwogICAgICAgICBW
aXNpYmxlU2VsZWN0aW9uIGFkamFjZW50V29yZHMgPSBWaXNpYmxlU2VsZWN0aW9uKHAsIHN0YXJ0
KTsKICAgICAgICAgbWFya0FsbE1pc3NwZWxsaW5nc0FuZEJhZEdyYW1tYXJJblJhbmdlcyhNYXJr
U3BlbGxpbmcgfCBTaG93Q29ycmVjdGlvblBhbmVsLCBhZGphY2VudFdvcmRzLnRvTm9ybWFsaXpl
ZFJhbmdlKCkuZ2V0KCksIDApOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIFN0cmluZyBjdXJyZW50
V29yZCA9IHBsYWluVGV4dChtX2NvcnJlY3Rpb25QYW5lbEluZm8ubV9yYW5nZVRvQmVSZXBsYWNl
ZC5nZXQoKSk7Ci0gICAgICAgIFZlY3RvcjxGbG9hdFF1YWQ+IHRleHRRdWFkczsKLSAgICAgICAg
bV9jb3JyZWN0aW9uUGFuZWxJbmZvLm1fcmFuZ2VUb0JlUmVwbGFjZWQtPmdldEJvcmRlckFuZFRl
eHRRdWFkcyh0ZXh0UXVhZHMpOwotICAgICAgICBWZWN0b3I8RmxvYXRRdWFkPjo6Y29uc3RfaXRl
cmF0b3IgZW5kID0gdGV4dFF1YWRzLmVuZCgpOwotICAgICAgICBGbG9hdFJlY3QgdG90YWxCb3Vu
ZGluZ0JveDsKLSAgICAgICAgZm9yIChWZWN0b3I8RmxvYXRRdWFkPjo6Y29uc3RfaXRlcmF0b3Ig
aXQgPSB0ZXh0UXVhZHMuYmVnaW4oKTsgaXQgPCBlbmQ7ICsraXQpCi0gICAgICAgICAgICB0b3Rh
bEJvdW5kaW5nQm94LnVuaXRlKGl0LT5ib3VuZGluZ0JveCgpKTsKKyAgICB9CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgQ29ycmVjdGlvblBhbmVsSW5mbzo6UGFuZWxUeXBlUmV2ZXJzaW9uOiB7
CiAgICAgICAgIG1fY29ycmVjdGlvblBhbmVsSW5mby5tX2lzQWN0aXZlID0gdHJ1ZTsKLSAgICAg
ICAgbV9jb3JyZWN0aW9uUGFuZWxJbmZvLm1fcmVwbGFjZWRTdHJpbmcgPSBjdXJyZW50V29yZDsK
LSAgICAgICAgY2xpZW50KCktPnNob3dDb3JyZWN0aW9uUGFuZWwobV9jb3JyZWN0aW9uUGFuZWxJ
bmZvLm1fcGFuZWxUeXBlLCB0b3RhbEJvdW5kaW5nQm94LCBtX2NvcnJlY3Rpb25QYW5lbEluZm8u
bV9yZXBsYWNlZFN0cmluZywgbV9jb3JyZWN0aW9uUGFuZWxJbmZvLm1fcmVwbGFjZW1lbnRTdHJp
bmcsIHRoaXMpOworICAgICAgICBtX2NvcnJlY3Rpb25QYW5lbEluZm8ubV9yZXBsYWNlZFN0cmlu
ZyA9IHBsYWluVGV4dChtX2NvcnJlY3Rpb25QYW5lbEluZm8ubV9yYW5nZVRvQmVSZXBsYWNlZC5n
ZXQoKSk7CisgICAgICAgIGNsaWVudCgpLT5zaG93Q29ycmVjdGlvblBhbmVsKG1fY29ycmVjdGlv
blBhbmVsSW5mby5tX3BhbmVsVHlwZSwgYm91bmRpbmdCb3hGb3JSYW5nZShtX2NvcnJlY3Rpb25Q
YW5lbEluZm8ubV9yYW5nZVRvQmVSZXBsYWNlZC5nZXQoKSksIG1fY29ycmVjdGlvblBhbmVsSW5m
by5tX3JlcGxhY2VkU3RyaW5nLCBtX2NvcnJlY3Rpb25QYW5lbEluZm8ubV9yZXBsYWNlbWVudFN0
cmluZywgVmVjdG9yPFN0cmluZz4oKSwgdGhpcyk7CisgICAgfQorICAgICAgICBicmVhazsKKyAg
ICBjYXNlIENvcnJlY3Rpb25QYW5lbEluZm86OlBhbmVsVHlwZVNwZWxsaW5nU3VnZ2VzdGlvbnM6
IHsKKyAgICAgICAgaWYgKHBsYWluVGV4dChtX2NvcnJlY3Rpb25QYW5lbEluZm8ubV9yYW5nZVRv
QmVSZXBsYWNlZC5nZXQoKSkgIT0gbV9jb3JyZWN0aW9uUGFuZWxJbmZvLm1fcmVwbGFjZWRTdHJp
bmcpCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgU3RyaW5nIHBhcmFncmFwaFRleHQgPSBw
bGFpblRleHQoVGV4dENoZWNraW5nUGFyYWdyYXBoKG1fY29ycmVjdGlvblBhbmVsSW5mby5tX3Jh
bmdlVG9CZVJlcGxhY2VkKS5wYXJhZ3JhcGhSYW5nZSgpLmdldCgpKTsKKyAgICAgICAgVmVjdG9y
PFN0cmluZz4gc3VnZ2VzdGlvbnM7CisgICAgICAgIGNsaWVudCgpLT5nZXRHdWVzc2VzRm9yV29y
ZChtX2NvcnJlY3Rpb25QYW5lbEluZm8ubV9yZXBsYWNlZFN0cmluZywgcGFyYWdyYXBoVGV4dCwg
c3VnZ2VzdGlvbnMpOworICAgICAgICBpZiAoc3VnZ2VzdGlvbnMuaXNFbXB0eSgpKQorICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIFN0cmluZyB0b3BTdWdnZXN0aW9uID0gc3VnZ2VzdGlvbnMu
Zmlyc3QoKTsKKyAgICAgICAgc3VnZ2VzdGlvbnMucmVtb3ZlKDApOworICAgICAgICBtX2NvcnJl
Y3Rpb25QYW5lbEluZm8ubV9pc0FjdGl2ZSA9IHRydWU7CisgICAgICAgIGNsaWVudCgpLT5zaG93
Q29ycmVjdGlvblBhbmVsKG1fY29ycmVjdGlvblBhbmVsSW5mby5tX3BhbmVsVHlwZSwgYm91bmRp
bmdCb3hGb3JSYW5nZShtX2NvcnJlY3Rpb25QYW5lbEluZm8ubV9yYW5nZVRvQmVSZXBsYWNlZC5n
ZXQoKSksIG1fY29ycmVjdGlvblBhbmVsSW5mby5tX3JlcGxhY2VkU3RyaW5nLCB0b3BTdWdnZXN0
aW9uLCBzdWdnZXN0aW9ucywgdGhpcyk7CisgICAgfQorICAgICAgICBicmVhazsKICAgICB9CiAj
ZW5kaWYKIH0KIAotdm9pZCBFZGl0b3I6OmhhbmRsZVJlamVjdGVkQ29ycmVjdGlvbigpCit2b2lk
IEVkaXRvcjo6aGFuZGxlQ29ycmVjdGlvblBhbmVsUmVzdWx0KGNvbnN0IFN0cmluZyYgY29ycmVj
dGlvbikKIHsKICAgICBSYW5nZSogcmVwbGFjZWRSYW5nZSA9IG1fY29ycmVjdGlvblBhbmVsSW5m
by5tX3JhbmdlVG9CZVJlcGxhY2VkLmdldCgpOwogICAgIGlmICghcmVwbGFjZWRSYW5nZSB8fCBt
X2ZyYW1lLT5kb2N1bWVudCgpICE9IHJlcGxhY2VkUmFuZ2UtPm93bmVyRG9jdW1lbnQoKSkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgaWYgKG1fY29ycmVjdGlvblBhbmVsSW5mby5tX3BhbmVsVHlw
ZSA9PSBDb3JyZWN0aW9uUGFuZWxJbmZvOjpQYW5lbFR5cGVDb3JyZWN0aW9uKQorICAgIFN0cmlu
ZyBjdXJyZW50V29yZCA9IHBsYWluVGV4dChtX2NvcnJlY3Rpb25QYW5lbEluZm8ubV9yYW5nZVRv
QmVSZXBsYWNlZC5nZXQoKSk7CisgICAgLy8gQ2hlY2sgdG8gc2VlIGlmIHRoZSB3b3JkIHdlIGFy
ZSBhYm91dCB0byBjb3JyZWN0IGhhcyBiZWVuIGNoYW5nZWQgYmV0d2VlbiB0aW1lciBmaXJpbmcg
YW5kIGNhbGxiYWNrIGJlaW5nIHRyaWdnZXJlZC4KKyAgICBpZiAoY3VycmVudFdvcmQgIT0gbV9j
b3JyZWN0aW9uUGFuZWxJbmZvLm1fcmVwbGFjZWRTdHJpbmcpCisgICAgICAgIHJldHVybjsKKwor
ICAgIG1fY29ycmVjdGlvblBhbmVsSW5mby5tX2lzQWN0aXZlID0gZmFsc2U7CisKKyAgICBzd2l0
Y2ggKG1fY29ycmVjdGlvblBhbmVsSW5mby5tX3BhbmVsVHlwZSkgeworICAgIGNhc2UgQ29ycmVj
dGlvblBhbmVsSW5mbzo6UGFuZWxUeXBlQ29ycmVjdGlvbjoKICAgICAgICAgcmVwbGFjZWRSYW5n
ZS0+c3RhcnRDb250YWluZXIoKS0+ZG9jdW1lbnQoKS0+bWFya2VycygpLT5hZGRNYXJrZXIocmVw
bGFjZWRSYW5nZSwgRG9jdW1lbnRNYXJrZXI6OlJlamVjdGVkQ29ycmVjdGlvbiwgbV9jb3JyZWN0
aW9uUGFuZWxJbmZvLm1fcmVwbGFjZWRTdHJpbmcpOwotICAgIGVsc2UgewotICAgICAgICBtX2Nv
cnJlY3Rpb25QYW5lbEluZm8ubV9pc0FjdGl2ZSA9IGZhbHNlOwotICAgICAgICBhcHBseUNvcnJl
Y3Rpb25QYW5lbEluZm8oZmFsc2UpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENvcnJlY3Rp
b25QYW5lbEluZm86OlBhbmVsVHlwZVJldmVyc2lvbjoKKyAgICAgICAgYXBwbHlDb3JyZWN0aW9u
UGFuZWxJbmZvKG1hcmtlclR5cGVzRm9yUmVwbGFjZW1lbnQoKSk7CisgICAgY2FzZSBDb3JyZWN0
aW9uUGFuZWxJbmZvOjpQYW5lbFR5cGVTcGVsbGluZ1N1Z2dlc3Rpb25zOgorICAgICAgICBpZiAo
Y29ycmVjdGlvbi5sZW5ndGgoKSkgeworICAgICAgICAgICAgbV9jb3JyZWN0aW9uUGFuZWxJbmZv
Lm1fcmVwbGFjZW1lbnRTdHJpbmcgPSBjb3JyZWN0aW9uOworICAgICAgICAgICAgYXBwbHlDb3Jy
ZWN0aW9uUGFuZWxJbmZvKG1hcmtlclR5cGVzRm9yUmVwbGFjZW1lbnQoKSk7CisgICAgICAgIH0K
KyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CiAgICAgfQorCiAg
ICAgbV9jb3JyZWN0aW9uUGFuZWxJbmZvLm1fcmFuZ2VUb0JlUmVwbGFjZWQuY2xlYXIoKTsKIH0K
IApAQCAtMjQ3NSw2ICsyNTQwLDcgQEAgdm9pZCBFZGl0b3I6OnN0b3BDb3JyZWN0aW9uUGFuZWxU
aW1lcigpCiB7CiAjaWYgU1VQUE9SVF9BVVRPQ09SUkVDVElPTl9QQU5FTAogICAgIG1fY29ycmVj
dGlvblBhbmVsVGltZXIuc3RvcCgpOworICAgIG1fY29ycmVjdGlvblBhbmVsSW5mby5tX3Jhbmdl
VG9CZVJlcGxhY2VkLmNsZWFyKCk7CiAjZW5kaWYKIH0KIApAQCAtMjUwNCw3ICsyNTcwLDYgQEAg
dm9pZCBFZGl0b3I6OmRpc21pc3NDb3JyZWN0aW9uUGFuZWwoQ29ycgogICAgIGlmICghbV9jb3Jy
ZWN0aW9uUGFuZWxJbmZvLm1faXNBY3RpdmUpCiAgICAgICAgIHJldHVybjsKICAgICBtX2NvcnJl
Y3Rpb25QYW5lbEluZm8ubV9pc0FjdGl2ZSA9IGZhbHNlOwotICAgIG1fY29ycmVjdGlvblBhbmVs
SW5mby5tX3JhbmdlVG9CZVJlcGxhY2VkLmNsZWFyKCk7CiAgICAgaWYgKGNsaWVudCgpKQogICAg
ICAgICBjbGllbnQoKS0+ZGlzbWlzc0NvcnJlY3Rpb25QYW5lbChjb3JyZWN0aW9uV2FzUmVqZWN0
ZWRPck5vdCk7CiAjZWxzZQpAQCAtMjYwOCw3ICsyNjczLDcgQEAgdm9pZCBFZGl0b3I6OnJlbW92
ZVNwZWxsQW5kQ29ycmVjdGlvbk1hcgogICAgICAgICBkb2N1bWVudC0+bWFya2VycygpLT5yZW1v
dmVNYXJrZXJzKHBhaXJJdGVyYXRvci0+Zmlyc3QuZ2V0KCksIHBhaXJJdGVyYXRvci0+c2Vjb25k
KTsKIH0KIAotdm9pZCBFZGl0b3I6OmFwcGx5Q29ycmVjdGlvblBhbmVsSW5mbyhib29sIGFkZENv
cnJlY3Rpb25JbmRpY2F0b3JNYXJrZXIpCit2b2lkIEVkaXRvcjo6YXBwbHlDb3JyZWN0aW9uUGFu
ZWxJbmZvKGNvbnN0IFZlY3RvcjxEb2N1bWVudE1hcmtlcjo6TWFya2VyVHlwZT4mIG1hcmtlclR5
cGVzVG9BZGQpCiB7CiAgICAgaWYgKCFtX2NvcnJlY3Rpb25QYW5lbEluZm8ubV9yYW5nZVRvQmVS
ZXBsYWNlZCkKICAgICAgICAgcmV0dXJuOwpAQCAtMjY0OSw5ICsyNzE0LDEwIEBAIHZvaWQgRWRp
dG9yOjphcHBseUNvcnJlY3Rpb25QYW5lbEluZm8oYm8KICAgICAgICAgY2FyZXRQb3NpdGlvbi5t
b3ZlVG9PZmZzZXQoY2FyZXRQb3NpdGlvbi5vZmZzZXRJbkNvbnRhaW5lck5vZGUoKSArIG1fY29y
cmVjdGlvblBhbmVsSW5mby5tX3JlcGxhY2VtZW50U3RyaW5nLmxlbmd0aCgpIC0gbV9jb3JyZWN0
aW9uUGFuZWxJbmZvLm1fcmVwbGFjZWRTdHJpbmcubGVuZ3RoKCkpOwogICAgICAgICBzZXRFbmQo
cGFyYWdyYXBoUmFuZ2VDb250YWluaW5nQ29ycmVjdGlvbi5nZXQoKSwgZW5kT2ZQYXJhZ3JhcGgo
Y2FyZXRQb3NpdGlvbikpOwogICAgICAgICBSZWZQdHI8UmFuZ2U+IHJlcGxhY2VtZW50UmFuZ2Ug
PSBUZXh0SXRlcmF0b3I6OnN1YnJhbmdlKHBhcmFncmFwaFJhbmdlQ29udGFpbmluZ0NvcnJlY3Rp
b24uZ2V0KCksIGNvcnJlY3Rpb25TdGFydE9mZnNldEluUGFyYWdyYXBoLCBtX2NvcnJlY3Rpb25Q
YW5lbEluZm8ubV9yZXBsYWNlbWVudFN0cmluZy5sZW5ndGgoKSk7Ci0gICAgICAgIHJlcGxhY2Vt
ZW50UmFuZ2UtPnN0YXJ0Q29udGFpbmVyKCktPmRvY3VtZW50KCktPm1hcmtlcnMoKS0+YWRkTWFy
a2VyKHJlcGxhY2VtZW50UmFuZ2UuZ2V0KCksIERvY3VtZW50TWFya2VyOjpSZXBsYWNlbWVudCwg
bV9jb3JyZWN0aW9uUGFuZWxJbmZvLm1fcmVwbGFjZW1lbnRTdHJpbmcpOwotICAgICAgICBpZiAo
YWRkQ29ycmVjdGlvbkluZGljYXRvck1hcmtlcikKLSAgICAgICAgICAgIHJlcGxhY2VtZW50UmFu
Z2UtPnN0YXJ0Q29udGFpbmVyKCktPmRvY3VtZW50KCktPm1hcmtlcnMoKS0+YWRkTWFya2VyKHJl
cGxhY2VtZW50UmFuZ2UuZ2V0KCksIERvY3VtZW50TWFya2VyOjpDb3JyZWN0aW9uSW5kaWNhdG9y
LCBtX2NvcnJlY3Rpb25QYW5lbEluZm8ubV9yZXBsYWNlZFN0cmluZyk7CisgICAgICAgIERvY3Vt
ZW50TWFya2VyQ29udHJvbGxlciogbWFya2VycyA9IHJlcGxhY2VtZW50UmFuZ2UtPnN0YXJ0Q29u
dGFpbmVyKCktPmRvY3VtZW50KCktPm1hcmtlcnMoKTsKKyAgICAgICAgc2l6ZV90IHNpemUgPSBt
YXJrZXJUeXBlc1RvQWRkLnNpemUoKTsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBz
aXplOyArK2kpCisgICAgICAgICAgICBtYXJrZXJzLT5hZGRNYXJrZXIocmVwbGFjZW1lbnRSYW5n
ZS5nZXQoKSwgbWFya2VyVHlwZXNUb0FkZFtpXSwgbV9jb3JyZWN0aW9uUGFuZWxJbmZvLm1fcmVw
bGFjZW1lbnRTdHJpbmcpOwogICAgICAgICBtX2ZyYW1lLT5zZWxlY3Rpb24oKS0+bW92ZVRvKGNh
cmV0UG9zaXRpb24sIGZhbHNlKTsKICAgICB9CiB9CkluZGV4OiBXZWJDb3JlL2VkaXRpbmcvRWRp
dG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCShyZXZpc2lvbiA3
MjgyNSkKKysrIFdlYkNvcmUvZWRpdGluZy9FZGl0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtMzEz
LDcgKzMxMyw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgaGFuZGxlQ2FuY2VsT3BlcmF0aW9uKCk7
CiAgICAgdm9pZCBzdGFydENvcnJlY3Rpb25QYW5lbFRpbWVyKENvcnJlY3Rpb25QYW5lbEluZm86
OlBhbmVsVHlwZSk7Ci0gICAgdm9pZCBoYW5kbGVSZWplY3RlZENvcnJlY3Rpb24oKTsKKyAgICAv
LyBJZiB1c2VyIGNvbmZpcm1lZCBhIGNvcnJlY3Rpb24gaW4gdGhlIGNvcnJlY3Rpb24gcGFuZWws
IGNvcnJlY3Rpb24gaGFzIG5vbi16ZXJvIGxlbmd0aCwgb3RoZXJ3aXNlIGl0IG1lYW5zIHRoYXQg
dXNlciBoYXMgZGlzbWlzc2VkIHRoZSBwYW5lbC4KKyAgICB2b2lkIGhhbmRsZUNvcnJlY3Rpb25Q
YW5lbFJlc3VsdChjb25zdCBTdHJpbmcmIGNvcnJlY3Rpb24pOwogICAgIGJvb2wgaXNTaG93aW5n
Q29ycmVjdGlvblBhbmVsKCk7CiAKICAgICB2b2lkIHBhc3RlQXNGcmFnbWVudChQYXNzUmVmUHRy
PERvY3VtZW50RnJhZ21lbnQ+LCBib29sIHNtYXJ0UmVwbGFjZSwgYm9vbCBtYXRjaFN0eWxlKTsK
QEAgLTQwNiw3ICs0MDcsNyBAQCBwcml2YXRlOgogICAgIE5vZGUqIGZpbmRFdmVudFRhcmdldEZy
b21TZWxlY3Rpb24oKSBjb25zdDsKICAgICB2b2lkIHN0b3BDb3JyZWN0aW9uUGFuZWxUaW1lcigp
OwogICAgIHZvaWQgZGlzbWlzc0NvcnJlY3Rpb25QYW5lbChDb3JyZWN0aW9uV2FzUmVqZWN0ZWRP
ck5vdCk7Ci0gICAgdm9pZCBhcHBseUNvcnJlY3Rpb25QYW5lbEluZm8oYm9vbCBhZGRDb3JyZWN0
aW9uSW5kaWNhdG9yTWFya2VyKTsKKyAgICB2b2lkIGFwcGx5Q29ycmVjdGlvblBhbmVsSW5mbyhj
b25zdCBWZWN0b3I8RG9jdW1lbnRNYXJrZXI6Ok1hcmtlclR5cGU+JiBtYXJrZXJUeXBlc1RvQWRk
KTsKIH07CiAKIGlubGluZSB2b2lkIEVkaXRvcjo6c2V0U3RhcnROZXdLaWxsUmluZ1NlcXVlbmNl
KGJvb2wgZmxhZykKSW5kZXg6IFdlYkNvcmUvZWRpdGluZy9UZXh0Q2hlY2tpbmdIZWxwZXIuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZWRpdGluZy9UZXh0Q2hlY2tpbmdIZWxwZXIuY3BwCShy
ZXZpc2lvbiA3MjgyNSkKKysrIFdlYkNvcmUvZWRpdGluZy9UZXh0Q2hlY2tpbmdIZWxwZXIuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC01NDEsNyArNTQxLDcgQEAgVmVjdG9yPFN0cmluZz4gVGV4dENo
ZWNraW5nSGVscGVyOjpndWVzcwogICAgICAgICBpZiAocmVzdWx0LT50eXBlID09IFRleHRDaGVj
a2luZ1R5cGVTcGVsbGluZyAmJiBwYXJhZ3JhcGguY2hlY2tpbmdSYW5nZU1hdGNoZXMocmVzdWx0
LT5sb2NhdGlvbiwgcmVzdWx0LT5sZW5ndGgpKSB7CiAgICAgICAgICAgICBTdHJpbmcgbWlzc3Bl
bGxlZFdvcmQgPSBwYXJhZ3JhcGguY2hlY2tpbmdTdWJzdHJpbmcoKTsKICAgICAgICAgICAgIEFT
U0VSVChtaXNzcGVsbGVkV29yZC5sZW5ndGgoKSk7Ci0gICAgICAgICAgICBtX2NsaWVudC0+Z2V0
R3Vlc3Nlc0ZvcldvcmQobWlzc3BlbGxlZFdvcmQsIGd1ZXNzZXMpOworICAgICAgICAgICAgbV9j
bGllbnQtPmdldEd1ZXNzZXNGb3JXb3JkKG1pc3NwZWxsZWRXb3JkLCBTdHJpbmcoKSwgZ3Vlc3Nl
cyk7CiAgICAgICAgICAgICBtX2NsaWVudC0+dXBkYXRlU3BlbGxpbmdVSVdpdGhNaXNzcGVsbGVk
V29yZChtaXNzcGVsbGVkV29yZCk7CiAgICAgICAgICAgICBtaXNzcGVsbGVkID0gdHJ1ZTsKICAg
ICAgICAgICAgIHJldHVybiBndWVzc2VzOwpJbmRleDogV2ViQ29yZS9lZGl0aW5nL1RleHRDaGVj
a2luZ0hlbHBlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZWRpdGluZy9UZXh0Q2hlY2tpbmdI
ZWxwZXIuaAkocmV2aXNpb24gNzI4MjUpCisrKyBXZWJDb3JlL2VkaXRpbmcvVGV4dENoZWNraW5n
SGVscGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTU1LDExICs1NSwxMSBAQCBwdWJsaWM6CiAgICAg
Ym9vbCBjaGVja2luZ1JhbmdlTWF0Y2hlcyhpbnQgbG9jYXRpb24sIGludCBsZW5ndGgpIGNvbnN0
IHsgcmV0dXJuIGxvY2F0aW9uID09IGNoZWNraW5nU3RhcnQoKSAmJiBsZW5ndGggPT0gY2hlY2tp
bmdMZW5ndGgoKTsgfQogICAgIGJvb2wgaXNDaGVja2luZ1JhbmdlQ292ZXJlZEJ5KGludCBsb2Nh
dGlvbiwgaW50IGxlbmd0aCkgY29uc3QgeyByZXR1cm4gbG9jYXRpb24gPD0gY2hlY2tpbmdTdGFy
dCgpICYmIGxvY2F0aW9uICsgbGVuZ3RoID49IGNoZWNraW5nU3RhcnQoKSArIGNoZWNraW5nTGVu
Z3RoKCk7IH0KICAgICBib29sIGNoZWNraW5nUmFuZ2VDb3ZlcnMoaW50IGxvY2F0aW9uLCBpbnQg
bGVuZ3RoKSBjb25zdCB7IHJldHVybiBsb2NhdGlvbiA8IGNoZWNraW5nRW5kKCkgJiYgbG9jYXRp
b24gKyBsZW5ndGggPiBjaGVja2luZ1N0YXJ0KCk7IH0KKyAgICBQYXNzUmVmUHRyPFJhbmdlPiBw
YXJhZ3JhcGhSYW5nZSgpIGNvbnN0OwogCiBwcml2YXRlOgogICAgIHZvaWQgaW52YWxpZGF0ZVBh
cmFncmFwaFJhbmdlVmFsdWVzKCk7CiAgICAgUGFzc1JlZlB0cjxSYW5nZT4gY2hlY2tpbmdSYW5n
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fY2hlY2tpbmdSYW5nZTsgfQotICAgIFBhc3NSZWZQdHI8UmFu
Z2U+IHBhcmFncmFwaFJhbmdlKCkgY29uc3Q7CiAgICAgUGFzc1JlZlB0cjxSYW5nZT4gb2Zmc2V0
QXNSYW5nZSgpIGNvbnN0OwogICAgIGNvbnN0IFN0cmluZyYgdGV4dCgpIGNvbnN0OwogCkluZGV4
OiBXZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2xv
YWRlci9FbXB0eUNsaWVudHMuaAkocmV2aXNpb24gNzI4MjUpCisrKyBXZWJDb3JlL2xvYWRlci9F
bXB0eUNsaWVudHMuaAkod29ya2luZyBjb3B5KQpAQCAtNDgwLDcgKzQ4MCw3IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIHZvaWQgY2hlY2tUZXh0T2ZQYXJhZ3JhcGgoY29uc3QgVUNoYXIqLCBpbnQs
IHVpbnQ2NF90LCBWZWN0b3I8VGV4dENoZWNraW5nUmVzdWx0PiYpIHsgfTsKICNlbmRpZgogI2lm
IFNVUFBPUlRfQVVUT0NPUlJFQ1RJT05fUEFORUwKLSAgICB2aXJ0dWFsIHZvaWQgc2hvd0NvcnJl
Y3Rpb25QYW5lbChDb3JyZWN0aW9uUGFuZWxJbmZvOjpQYW5lbFR5cGUsIGNvbnN0IEZsb2F0UmVj
dCYsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIEVkaXRvciopIHsgfQorICAgIHZpcnR1
YWwgdm9pZCBzaG93Q29ycmVjdGlvblBhbmVsKENvcnJlY3Rpb25QYW5lbEluZm86OlBhbmVsVHlw
ZSwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgY29uc3Qg
VmVjdG9yPFN0cmluZz4mLCBFZGl0b3IqKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlzbWlzc0Nv
cnJlY3Rpb25QYW5lbChDb3JyZWN0aW9uV2FzUmVqZWN0ZWRPck5vdCkgeyB9CiAgICAgdmlydHVh
bCBib29sIGlzU2hvd2luZ0NvcnJlY3Rpb25QYW5lbCgpIHsgcmV0dXJuIGZhbHNlOyB9CiAjZW5k
aWYKQEAgLTQ4OCw3ICs0ODgsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVNw
ZWxsaW5nVUlXaXRoTWlzc3BlbGxlZFdvcmQoY29uc3QgU3RyaW5nJikgeyB9CiAgICAgdmlydHVh
bCB2b2lkIHNob3dTcGVsbGluZ1VJKGJvb2wpIHsgfQogICAgIHZpcnR1YWwgYm9vbCBzcGVsbGlu
Z1VJSXNTaG93aW5nKCkgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIHZvaWQgZ2V0R3Vl
c3Nlc0ZvcldvcmQoY29uc3QgU3RyaW5nJiwgVmVjdG9yPFN0cmluZz4mKSB7IH0KKyAgICB2aXJ0
dWFsIHZvaWQgZ2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwg
VmVjdG9yPFN0cmluZz4mKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNldElucHV0TWV0aG9k
U3RhdGUoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5wdXRNZXRob2RTdGF0ZShib29sKSB7
IH0KIApJbmRleDogV2ViQ29yZS9tYW51YWwtdGVzdHMvYXV0b2NvcnJlY3Rpb24vZGlzbWlzcy1t
dWx0aXBsZS1ndWVzc2VzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9tYW51YWwtdGVzdHMv
YXV0b2NvcnJlY3Rpb24vZGlzbWlzcy1tdWx0aXBsZS1ndWVzc2VzLmh0bWwJKHJldmlzaW9uIDAp
CisrKyBXZWJDb3JlL21hbnVhbC10ZXN0cy9hdXRvY29ycmVjdGlvbi9kaXNtaXNzLW11bHRpcGxl
LWd1ZXNzZXMuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0OSBAQAorPGh0bWw+Cis8aGVh
ZD4KKworPHN0eWxlPgorLmVkaXRpbmcgeworICAgIGJvcmRlcjogMnB4IHNvbGlkIHJlZDsKKyAg
ICBwYWRkaW5nOiAxMnB4OworICAgIGZvbnQtc2l6ZTogMjRweDsKK30KKzwvc3R5bGU+Cis8c2Ny
aXB0IHNyYz0uLi8uLi8uLi9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRpbmcuanMgbGFuZ3VhZ2U9
IkphdmFTY3JpcHQiIHR5cGU9InRleHQvSmF2YVNjcmlwdCIgPjwvc2NyaXB0PgorCis8c2NyaXB0
PgorZnVuY3Rpb24gZWRpdGluZ1Rlc3QoKSB7CisgICAgdHlwZUNoYXJhY3RlckNvbW1hbmQoJ3Qn
KTsKKyAgICB0eXBlQ2hhcmFjdGVyQ29tbWFuZCgnaCcpOworICAgIHR5cGVDaGFyYWN0ZXJDb21t
YW5kKCdlJyk7CisgICAgdHlwZUNoYXJhY3RlckNvbW1hbmQoJyAnKTsKKyAgICB0eXBlQ2hhcmFj
dGVyQ29tbWFuZCgnbScpOworICAgIHR5cGVDaGFyYWN0ZXJDb21tYW5kKCdlJyk7CisgICAgdHlw
ZUNoYXJhY3RlckNvbW1hbmQoJ3MnKTsKKyAgICB0eXBlQ2hhcmFjdGVyQ29tbWFuZCgnYScpOwor
ICAgIHR5cGVDaGFyYWN0ZXJDb21tYW5kKCdlJyk7CisgICAgdHlwZUNoYXJhY3RlckNvbW1hbmQo
J2cnKTsKKyAgICB0eXBlQ2hhcmFjdGVyQ29tbWFuZCgnZScpOworICAgIHR5cGVDaGFyYWN0ZXJD
b21tYW5kKCdlJyk7CisgICAgdHlwZUNoYXJhY3RlckNvbW1hbmQoJyAnKTsKKyAgICBleGVjTW92
ZVNlbGVjdGlvbkJhY2t3YXJkQnlDaGFyYWN0ZXJDb21tYW5kKCk7Cit9CisKKzwvc2NyaXB0Pgor
Cis8dGl0bGU+RGlzbWlzcyBNdWx0aXBsZSBHdWVzc2VzIFRlc3Q8L3RpdGxlPgorPC9oZWFkPgor
PGJvZHk+Cis8ZGl2PjxwPlRoaXMgdGVzdCB2ZXJpZmllcyB0aGF0IHByZXNzaW5nIEVTQyBrZXkg
ZGl1c21pc3NlcyBtdWx0aXBsZSBndWVzc2VzIHBhbmVsIGNvcnJlY3RseTwvcD4KKzxwPkFmdGVy
IHNlZWluZyB0aGUgcGFuZWwgd2l0aCBtdWx0aXBsZSBjYW5kaWRhdGVzLCBwcmVzc2luZyBFU0Mg
a2V5IHRvIGRpc21pc3MgdGhlIHBhbmVsLjwvcD4KKzxwICBzdHlsZT0iY29sb3I6Z3JlZW4iPk5v
dGUsIHRoaXMgdGVzdCBjYW4gZmFpbCBkdWUgdG8gdXNlciBzcGVjaWZpYyBzcGVsbCBjaGVja2lu
ZyBkYXRhLiBUbyBmaXggdGhpcywgcmVtb3ZlIGFsbCBmaWxlcyBpbiB+L0xpYnJhcnkvU3BlbGxp
bmcsIHRoZW4ga2lsbCBBcHBsZVNwZWxsLnNlcnZpY2UgcHJvY2Vzcy48L3A+Cis8ZGl2IGNvbnRl
bnRlZGl0YWJsZSBpZD0icm9vdCIgY2xhc3M9ImVkaXRpbmciPgorPHNwYW4gaWQ9InRlc3QiPjwv
c3Bhbj4KKzwvZGl2PgorCisKKzxzY3JpcHQ+CitydW5FZGl0aW5nVGVzdCgpOworPC9zY3JpcHQ+
CisKKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IFdlYkNvcmUvbWFudWFsLXRlc3RzL2F1dG9jb3Jy
ZWN0aW9uL3NlbGVjdC1mcm9tLW11bHRpcGxlLWd1ZXNzZXMuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL21hbnVhbC10ZXN0cy9hdXRvY29ycmVjdGlvbi9zZWxlY3QtZnJvbS1tdWx0aXBsZS1n
dWVzc2VzLmh0bWwJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL21hbnVhbC10ZXN0cy9hdXRvY29y
cmVjdGlvbi9zZWxlY3QtZnJvbS1tdWx0aXBsZS1ndWVzc2VzLmh0bWwJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsNDkgQEAKKzxodG1sPgorPGhlYWQ+CisKKzxzdHlsZT4KKy5lZGl0aW5nIHsKKyAg
ICBib3JkZXI6IDJweCBzb2xpZCByZWQ7CisgICAgcGFkZGluZzogMTJweDsKKyAgICBmb250LXNp
emU6IDI0cHg7Cit9Cis8L3N0eWxlPgorPHNjcmlwdCBzcmM9Li4vLi4vLi4vTGF5b3V0VGVzdHMv
ZWRpdGluZy9lZGl0aW5nLmpzIGxhbmd1YWdlPSJKYXZhU2NyaXB0IiB0eXBlPSJ0ZXh0L0phdmFT
Y3JpcHQiID48L3NjcmlwdD4KKworPHNjcmlwdD4KK2Z1bmN0aW9uIGVkaXRpbmdUZXN0KCkgewor
ICAgIHR5cGVDaGFyYWN0ZXJDb21tYW5kKCd0Jyk7CisgICAgdHlwZUNoYXJhY3RlckNvbW1hbmQo
J2gnKTsKKyAgICB0eXBlQ2hhcmFjdGVyQ29tbWFuZCgnZScpOworICAgIHR5cGVDaGFyYWN0ZXJD
b21tYW5kKCcgJyk7CisgICAgdHlwZUNoYXJhY3RlckNvbW1hbmQoJ20nKTsKKyAgICB0eXBlQ2hh
cmFjdGVyQ29tbWFuZCgnZScpOworICAgIHR5cGVDaGFyYWN0ZXJDb21tYW5kKCdzJyk7CisgICAg
dHlwZUNoYXJhY3RlckNvbW1hbmQoJ2EnKTsKKyAgICB0eXBlQ2hhcmFjdGVyQ29tbWFuZCgnZScp
OworICAgIHR5cGVDaGFyYWN0ZXJDb21tYW5kKCdnJyk7CisgICAgdHlwZUNoYXJhY3RlckNvbW1h
bmQoJ2UnKTsKKyAgICB0eXBlQ2hhcmFjdGVyQ29tbWFuZCgnZScpOworICAgIHR5cGVDaGFyYWN0
ZXJDb21tYW5kKCcgJyk7CisgICAgZXhlY01vdmVTZWxlY3Rpb25CYWNrd2FyZEJ5Q2hhcmFjdGVy
Q29tbWFuZCgpOworfQorCis8L3NjcmlwdD4KKworPHRpdGxlPlNlbGVjdCBGcm9tIE11bHRpcGxl
IEd1ZXNzZXMgVGVzdDwvdGl0bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXY+PHA+VGhpcyB0ZXN0
IHZlcmlmaWVzIHRoYXQgbXVsdGlwbGUgZ3Vlc3NlcyBvbiBtaXNwZWxsZWQgd29yZCBpcyB3b3Jr
aW5nIGNvcnJlY3RseTwvcD4KKzxwPkFmdGVyIHNlZWluZyB0aGUgcGFuZWwgd2l0aCBtdWx0aXBs
ZSBjYW5kaWRhdGVzLCB1c2UgbGVmdCBhbmQvb3IgcmlnaHQgYXJyb3cga2V5IHRvIHNlbGVjdCB0
aGUgZGVzaXJlZCBjYW5kaWRhdGUsIGFuZCB0aGVuIHVzZSByZXR1cm4ga2V5IHRvIGNvbmZpcm0u
IFlvdSBjYW4gYWxzbyB1c2UgdGhpcyB0ZXN0IHRvIHRlc3QgdGhhdCBwcmVzc2luZyBFU0Mga2V5
IHdpbGwgZGlzbWlzcyB0aGUgcGFuZWwuPC9wPgorPHAgIHN0eWxlPSJjb2xvcjpncmVlbiI+Tm90
ZSwgdGhpcyB0ZXN0IGNhbiBmYWlsIGR1ZSB0byB1c2VyIHNwZWNpZmljIHNwZWxsIGNoZWNraW5n
IGRhdGEuIFRvIGZpeCB0aGlzLCByZW1vdmUgYWxsIGZpbGVzIGluIH4vTGlicmFyeS9TcGVsbGlu
ZywgdGhlbiBraWxsIEFwcGxlU3BlbGwuc2VydmljZSBwcm9jZXNzLjwvcD4KKzxkaXYgY29udGVu
dGVkaXRhYmxlIGlkPSJyb290IiBjbGFzcz0iZWRpdGluZyI+Cis8c3BhbiBpZD0idGVzdCI+PC9z
cGFuPgorPC9kaXY+CisKKworPHNjcmlwdD4KK3J1bkVkaXRpbmdUZXN0KCk7Cis8L3NjcmlwdD4K
KworPC9ib2R5PgorPC9odG1sPgpJbmRleDogV2ViQ29yZS9wYWdlL0VkaXRvckNsaWVudC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9FZGl0b3JDbGllbnQuaAkocmV2aXNpb24gNzI4MjUp
CisrKyBXZWJDb3JlL3BhZ2UvRWRpdG9yQ2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTE5MCw3
ICsxOTAsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogI2lmIFNVUFBPUlRfQVVUT0NPUlJFQ1RJT05f
UEFORUwKLSAgICB2aXJ0dWFsIHZvaWQgc2hvd0NvcnJlY3Rpb25QYW5lbChDb3JyZWN0aW9uUGFu
ZWxJbmZvOjpQYW5lbFR5cGUsIGNvbnN0IEZsb2F0UmVjdCYgYm91bmRpbmdCb3hPZlJlcGxhY2Vk
U3RyaW5nLCBjb25zdCBTdHJpbmcmIHJlcGxhY2VkU3RyaW5nLCBjb25zdCBTdHJpbmcmIHJlcGxh
Y21lbnRTdHJpbmcsIEVkaXRvciopID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2hvd0NvcnJlY3Rp
b25QYW5lbChDb3JyZWN0aW9uUGFuZWxJbmZvOjpQYW5lbFR5cGUsIGNvbnN0IEZsb2F0UmVjdCYg
Ym91bmRpbmdCb3hPZlJlcGxhY2VkU3RyaW5nLCBjb25zdCBTdHJpbmcmIHJlcGxhY2VkU3RyaW5n
LCBjb25zdCBTdHJpbmcmIHJlcGxhY21lbnRTdHJpbmcsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBh
bHRlcm5hdGl2ZVJlcGxhY2VtZW50U3RyaW5ncywgRWRpdG9yKikgPSAwOwogICAgIHZpcnR1YWwg
dm9pZCBkaXNtaXNzQ29ycmVjdGlvblBhbmVsKENvcnJlY3Rpb25XYXNSZWplY3RlZE9yTm90KSA9
IDA7CiAgICAgdmlydHVhbCBib29sIGlzU2hvd2luZ0NvcnJlY3Rpb25QYW5lbCgpID0gMDsKICNl
bmRpZgpAQCAtMTk5LDcgKzE5OSw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRl
U3BlbGxpbmdVSVdpdGhNaXNzcGVsbGVkV29yZChjb25zdCBTdHJpbmcmKSA9IDA7CiAgICAgdmly
dHVhbCB2b2lkIHNob3dTcGVsbGluZ1VJKGJvb2wgc2hvdykgPSAwOwogICAgIHZpcnR1YWwgYm9v
bCBzcGVsbGluZ1VJSXNTaG93aW5nKCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBnZXRHdWVzc2Vz
Rm9yV29yZChjb25zdCBTdHJpbmcmLCBWZWN0b3I8U3RyaW5nPiYgZ3Vlc3NlcykgPSAwOworICAg
IC8vIEZvciBzcGVsbGNoZWNrZXJzIHRoYXQgc3VwcG9ydCBtdWx0aXBsZSBsYW5ndWFnZXMsIGl0
J3Mgb2Z0ZW4gaW1wb3J0YW50IHRvIGJlIGFibGUgdG8gaWRlbnRpZnkgdGhlIGxhbmd1YWdlIGlu
IG9yZGVyIHRvIHByb3ZpZGUgbW9yZSBhY2N1cmF0ZSBjb3JyZWN0aW9uIHN1Z2dlc3Rpb25zLiBD
YWxsZXIgY2FuIHBhc3MgaW4gbW9yZSB0ZXh0IGluICJjb250ZXh0IiB0byBhaWQgc3VjaCBzcGVs
bGNoZWNrZXJzIG9uIGxhbmd1YWdlIGlkZW50aWZpY2F0aW9uLiBOb3JhbWxseSBpdCdzIHRoZSB0
ZXh0IHN1cnJvdW5kaW5nIHRoZSAid29yZCIgZm9yIHdoaWNoIHdlIGFyZSBnZXR0aW5nIGNvcnJl
Y3Rpb24gc3VnZ2VzdGlvbnMuCisgICAgdmlydHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNv
bnN0IFN0cmluZyYgd29yZCwgY29uc3QgU3RyaW5nJiBjb250ZXh0LCBWZWN0b3I8U3RyaW5nPiYg
Z3Vlc3NlcykgPSAwOwogICAgIHZpcnR1YWwgdm9pZCB3aWxsU2V0SW5wdXRNZXRob2RTdGF0ZSgp
ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5wdXRNZXRob2RTdGF0ZShib29sIGVuYWJsZWQp
ID0gMDsKIH07CkluZGV4OiBXZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQy
L0NoYW5nZUxvZwkocmV2aXNpb24gNzI4MjUpCisrKyBXZWJLaXQyL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDEwLTExLTI5ICBKaWEgUHUgIDxqcHVAYXBwbGUu
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN1
cHBvcnQgbXVsdGlwbGUgY29ycmVjdGlvbiBjYW5kaWRhdGVzIHBhbmVsIGZvciBtaXNzcGVsbGVk
IHdvcmQgb24gTWFjIE9TIFguCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD01MDEzNworICAgICAgICA8cmRhcjovL3Byb2JsZW0vODU2ODA1OT4KKworICAg
ICAgICBBZG9wdGVkIG5ldyBmdW5jdGlvbiBzaWduYXR1cmVzIGRlZmluZWQgaW4gYmFzZSBjbGFz
cy4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRWRpdG9yQ2xpZW50OjpnZXRHdWVzc2VzRm9yV29y
ZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQu
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJFZGl0b3JDbGll
bnRNYWMubW06CisgICAgICAgIChXZWJLaXQ6OldlYkVkaXRvckNsaWVudDo6c2hvd0NvcnJlY3Rp
b25QYW5lbCk6CisKIDIwMTAtMTEtMjkgIEJhbGF6cyBLZWxlbWVuICA8a2JhbGF6c0B3ZWJraXQu
b3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gUm9iZW4uCkluZGV4OiBXZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcAko
cmV2aXNpb24gNzI4MjUpCisrKyBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
RWRpdG9yQ2xpZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzkzLDcgKzM5Myw3IEBAIGJvb2wg
V2ViRWRpdG9yQ2xpZW50OjpzcGVsbGluZ1VJSXNTaG93aW4KICAgICByZXR1cm4gZmFsc2U7CiB9
CiAKLXZvaWQgV2ViRWRpdG9yQ2xpZW50OjpnZXRHdWVzc2VzRm9yV29yZChjb25zdCBTdHJpbmcm
LCBWZWN0b3I8U3RyaW5nPiYpCit2b2lkIFdlYkVkaXRvckNsaWVudDo6Z2V0R3Vlc3Nlc0Zvcldv
cmQoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgVmVjdG9yPFN0cmluZz4mKQogewogICAg
IG5vdEltcGxlbWVudGVkKCk7CiB9CkluZGV4OiBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCShyZXZpc2lvbiA3MjgyNSkKKysrIFdl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMTMwLDExICsxMzAsMTEgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQg
dXBkYXRlU3BlbGxpbmdVSVdpdGhNaXNzcGVsbGVkV29yZChjb25zdCBTdHJpbmcmKTsKICAgICB2
aXJ0dWFsIHZvaWQgc2hvd1NwZWxsaW5nVUkoYm9vbCBzaG93KTsKICAgICB2aXJ0dWFsIGJvb2wg
c3BlbGxpbmdVSUlzU2hvd2luZygpOwotICAgIHZpcnR1YWwgdm9pZCBnZXRHdWVzc2VzRm9yV29y
ZChjb25zdCBTdHJpbmcmLCBWZWN0b3I8U3RyaW5nPiYgZ3Vlc3Nlcyk7CisgICAgdmlydHVhbCB2
b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYgd29yZCwgY29uc3QgU3RyaW5nJiBj
b250ZXh0LCBWZWN0b3I8U3RyaW5nPiYgZ3Vlc3Nlcyk7CiAgICAgdmlydHVhbCB2b2lkIHdpbGxT
ZXRJbnB1dE1ldGhvZFN0YXRlKCk7CiAgICAgdmlydHVhbCB2b2lkIHNldElucHV0TWV0aG9kU3Rh
dGUoYm9vbCBlbmFibGVkKTsKICNpZiBQTEFURk9STShNQUMpICYmICFkZWZpbmVkKEJVSUxESU5H
X09OX1RJR0VSKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChC
VUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCi0gICAgdmlydHVhbCB2b2lkIHNob3dDb3JyZWN0aW9u
UGFuZWwoV2ViQ29yZTo6Q29ycmVjdGlvblBhbmVsSW5mbzo6UGFuZWxUeXBlLCBjb25zdCBXZWJD
b3JlOjpGbG9hdFJlY3QmIGJvdW5kaW5nQm94T2ZSZXBsYWNlZFN0cmluZywgY29uc3QgU3RyaW5n
JiByZXBsYWNlZFN0cmluZywgY29uc3QgU3RyaW5nJiByZXBsYWNlbWVudFN0cmluZywgV2ViQ29y
ZTo6RWRpdG9yKik7CisgICAgdmlydHVhbCB2b2lkIHNob3dDb3JyZWN0aW9uUGFuZWwoV2ViQ29y
ZTo6Q29ycmVjdGlvblBhbmVsSW5mbzo6UGFuZWxUeXBlLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJl
Y3QmIGJvdW5kaW5nQm94T2ZSZXBsYWNlZFN0cmluZywgY29uc3QgU3RyaW5nJiByZXBsYWNlZFN0
cmluZywgY29uc3QgU3RyaW5nJiByZXBsYWNlbWVudFN0cmluZywgY29uc3QgVmVjdG9yPFN0cmlu
Zz4mIGFsdGVybmF0aXZlUmVwbGFjZW1lbnRTdHJpbmdzLCBXZWJDb3JlOjpFZGl0b3IqKTsKICAg
ICB2aXJ0dWFsIHZvaWQgZGlzbWlzc0NvcnJlY3Rpb25QYW5lbChXZWJDb3JlOjpDb3JyZWN0aW9u
V2FzUmVqZWN0ZWRPck5vdCk7CiAgICAgdmlydHVhbCBib29sIGlzU2hvd2luZ0NvcnJlY3Rpb25Q
YW5lbCgpOwogI2VuZGlmCkluZGV4OiBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
bWFjL1dlYkVkaXRvckNsaWVudE1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkVkaXRvckNsaWVudE1hYy5tbQkocmV2aXNpb24gNzI4
MjUpCisrKyBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkVkaXRvckNs
aWVudE1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtMjIzLDcgKzIyMyw3IEBAIHZvaWQgV2ViRWRp
dG9yQ2xpZW50OjpjaGVja1RleHRPZlBhcmFncmEKICNlbmRpZgogCiAjaWYgIWRlZmluZWQoQlVJ
TERJTkdfT05fVElHRVIpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZp
bmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKLXZvaWQgV2ViRWRpdG9yQ2xpZW50OjpzaG93
Q29ycmVjdGlvblBhbmVsKFdlYkNvcmU6OkNvcnJlY3Rpb25QYW5lbEluZm86OlBhbmVsVHlwZSB0
eXBlLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGJvdW5kaW5nQm94T2ZSZXBsYWNlZFN0cmlu
ZywgY29uc3QgV1RGOjpTdHJpbmcmIHJlcGxhY2VkU3RyaW5nLCBjb25zdCBXVEY6OlN0cmluZyYg
cmVwbGFjZW1lbnRTdHJpbmcsIFdlYkNvcmU6OkVkaXRvciopCit2b2lkIFdlYkVkaXRvckNsaWVu
dDo6c2hvd0NvcnJlY3Rpb25QYW5lbChXZWJDb3JlOjpDb3JyZWN0aW9uUGFuZWxJbmZvOjpQYW5l
bFR5cGUgdHlwZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBib3VuZGluZ0JveE9mUmVwbGFj
ZWRTdHJpbmcsIGNvbnN0IFdURjo6U3RyaW5nJiByZXBsYWNlZFN0cmluZywgY29uc3QgV1RGOjpT
dHJpbmcmIHJlcGxhY2VtZW50U3RyaW5nLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgYWx0ZXJuYXRp
dmVSZXBsYWNlbWVudFN0cmluZ3MsIFdlYkNvcmU6OkVkaXRvciopCiB7CiAgICAgbm90SW1wbGVt
ZW50ZWQoKTsKIH0KSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gNzI4MjUpCisrKyBXZWJLaXQv
Y2hyb21pdW0vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTAt
MTEtMjkgIEppYSBQdSAgPGpwdUBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgU3VwcG9ydCBtdWx0aXBsZSBjb3JyZWN0aW9uIGNhbmRp
ZGF0ZXMgcGFuZWwgZm9yIG1pc3NwZWxsZWQgd29yZCBvbiBNYWMgT1MgWC4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUwMTM3CisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS84NTY4MDU5PgorCisgICAgICAgIEFkb3B0ZWQgbmV3IGZ1bmN0aW9uIHNpZ25h
dHVyZSBkZWZpbmVkIGluIGJhc2UgY2xhc3MuCisKKyAgICAgICAgKiBzcmMvRWRpdG9yQ2xpZW50
SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudEltcGw6OmdldEd1ZXNzZXNG
b3JXb3JkKToKKyAgICAgICAgKiBzcmMvRWRpdG9yQ2xpZW50SW1wbC5oOgorCiAyMDEwLTExLTI5
ICBBbmRyZXkgS29zeWFrb3YgIDxjYXNlcUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgRGFyaW4gRmlzaGVyLgpJbmRleDogV2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGll
bnRJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRvckNsaWVu
dEltcGwuY3BwCShyZXZpc2lvbiA3MjgyNSkKKysrIFdlYktpdC9jaHJvbWl1bS9zcmMvRWRpdG9y
Q2xpZW50SW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTkyOSw4ICs5MjksOSBAQCBib29sIEVk
aXRvckNsaWVudEltcGw6OnNwZWxsaW5nVUlJc1Nob3dpCiAgICAgcmV0dXJuIGZhbHNlOwogfQog
Ci12b2lkIEVkaXRvckNsaWVudEltcGw6OmdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdURjo6VmVjdG9yPFN0
cmluZz4mIGd1ZXNzZXMpCit2b2lkIEVkaXRvckNsaWVudEltcGw6OmdldEd1ZXNzZXNGb3JXb3Jk
KGNvbnN0IFN0cmluZyYgd29yZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY29uc3QgU3RyaW5nJiBjb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBWZWN0b3I8U3RyaW5nPiYgZ3Vlc3NlcykKIHsKICAgICBub3RJbXBsZW1l
bnRlZCgpOwogfQpJbmRleDogV2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGllbnRJbXBsLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGllbnRJbXBsLmgJKHJl
dmlzaW9uIDcyODI1KQorKysgV2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGllbnRJbXBsLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTEwNiw4ICsxMDYsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2
b2lkIHVwZGF0ZVNwZWxsaW5nVUlXaXRoTWlzc3BlbGxlZFdvcmQoY29uc3QgV1RGOjpTdHJpbmcm
KTsKICAgICB2aXJ0dWFsIHZvaWQgc2hvd1NwZWxsaW5nVUkoYm9vbCBzaG93KTsKICAgICB2aXJ0
dWFsIGJvb2wgc3BlbGxpbmdVSUlzU2hvd2luZygpOwotICAgIHZpcnR1YWwgdm9pZCBnZXRHdWVz
c2VzRm9yV29yZChjb25zdCBXVEY6OlN0cmluZyYgd29yZCwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgV1RGOjpWZWN0b3I8V1RGOjpTdHJpbmc+JiBndWVzc2VzKTsKKyAgICB2
aXJ0dWFsIHZvaWQgZ2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgU3RyaW5nJiB3b3JkLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBTdHJpbmcmIGNvbnRleHQsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZlY3RvcjxTdHJpbmc+JiBndWVzc2VzKTsK
ICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNldElucHV0TWV0aG9kU3RhdGUoKTsKICAgICB2aXJ0dWFs
IHZvaWQgc2V0SW5wdXRNZXRob2RTdGF0ZShib29sIGVuYWJsZWQpOwogCkluZGV4OiBXZWJLaXQv
ZWZsL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZWZsL0NoYW5nZUxvZwkocmV2aXNp
b24gNzI4MjUpCisrKyBXZWJLaXQvZWZsL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDE3IEBACisyMDEwLTExLTI5ICBKaWEgUHUgIDxqcHVAYXBwbGUuY29tPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN1cHBvcnQgbXVsdGlwbGUg
Y29ycmVjdGlvbiBjYW5kaWRhdGVzIHBhbmVsIGZvciBtaXNzcGVsbGVkIHdvcmQgb24gTWFjIE9T
IFguCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MDEz
NworICAgICAgICA8cmRhcjovL3Byb2JsZW0vODU2ODA1OT4KKworICAgICAgICBBZG9wdGVkIG5l
dyBmdW5jdGlvbiBzaWduYXR1cmUgZGVmaW5lZCBpbiBiYXNlIGNsYXNzLgorCisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50RWZsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVk
aXRvckNsaWVudEVmbDo6Z2V0R3Vlc3Nlc0ZvcldvcmQpOgorICAgICAgICAqIFdlYkNvcmVTdXBw
b3J0L0VkaXRvckNsaWVudEVmbC5oOgorCiAyMDEwLTExLTIyICBBbGV4IEdyaWxvICA8YWJncmls
b0Bwcm9mdXNpb24ubW9iaT4KIAogICAgICAgICBSZXZpZXdlZCBieSBLZW5uZXRoIFJvaGRlIENo
cmlzdGlhbnNlbi4KSW5kZXg6IFdlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50
RWZsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNs
aWVudEVmbC5jcHAJKHJldmlzaW9uIDcyODI1KQorKysgV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9y
dC9FZGl0b3JDbGllbnRFZmwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00ODgsNyArNDg4LDcgQEAg
Ym9vbCBFZGl0b3JDbGllbnRFZmw6OnNwZWxsaW5nVUlJc1Nob3dpbgogICAgIHJldHVybiBmYWxz
ZTsKIH0KIAotdm9pZCBFZGl0b3JDbGllbnRFZmw6OmdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0
cmluZyYsIFZlY3RvcjxTdHJpbmc+JikKK3ZvaWQgRWRpdG9yQ2xpZW50RWZsOjpnZXRHdWVzc2Vz
Rm9yV29yZChjb25zdCBTdHJpbmcmIHdvcmQsIGNvbnN0IFN0cmluZyYgY29udGV4dCwgVmVjdG9y
PFN0cmluZz4mIGd1ZXNzZXMpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KSW5kZXg6IFdl
YktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50RWZsLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRFZmwuaAkocmV2aXNpb24gNzI4
MjUpCisrKyBXZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEVmbC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMTAsNyArMTEwLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCB1
cGRhdGVTcGVsbGluZ1VJV2l0aE1pc3NwZWxsZWRXb3JkKGNvbnN0IFN0cmluZyYpOwogICAgIHZp
cnR1YWwgdm9pZCBzaG93U3BlbGxpbmdVSShib29sIHNob3cpOwogICAgIHZpcnR1YWwgYm9vbCBz
cGVsbGluZ1VJSXNTaG93aW5nKCk7Ci0gICAgdmlydHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JXb3Jk
KGNvbnN0IFN0cmluZyYsIFdURjo6VmVjdG9yPFN0cmluZz4mIGd1ZXNzZXMpOworICAgIHZpcnR1
YWwgdm9pZCBnZXRHdWVzc2VzRm9yV29yZChjb25zdCBTdHJpbmcmIHdvcmQsIGNvbnN0IFN0cmlu
ZyYgY29udGV4dCwgVmVjdG9yPFN0cmluZz4mIGd1ZXNzZXMpOwogICAgIHZpcnR1YWwgdm9pZCB3
aWxsU2V0SW5wdXRNZXRob2RTdGF0ZSgpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRJbnB1dE1ldGhv
ZFN0YXRlKGJvb2wgZW5hYmxlZCk7CiAKSW5kZXg6IFdlYktpdC9ndGsvQ2hhbmdlTG9nCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYktpdC9ndGsvQ2hhbmdlTG9nCShyZXZpc2lvbiA3MjgyNSkKKysrIFdlYktp
dC9ndGsvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTAtMTEt
MjkgIEppYSBQdSAgPGpwdUBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgU3VwcG9ydCBtdWx0aXBsZSBjb3JyZWN0aW9uIGNhbmRpZGF0
ZXMgcGFuZWwgZm9yIG1pc3NwZWxsZWQgd29yZCBvbiBNYWMgT1MgWC4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUwMTM3CisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS84NTY4MDU5PgorCisgICAgICAgIEFkb3B0ZWQgbmV3IGZ1bmN0aW9uIHNpZ25hdHVy
ZSBkZWZpbmVkIGluIGJhc2UgY2xhc3MuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0
b3JDbGllbnRHdGsuY3BwOgorICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnQ6OmdldEd1ZXNz
ZXNGb3JXb3JkKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuaDoK
KwogMjAxMC0xMS0yOSAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgWGFuIExvcGV6LgpJbmRleDogV2ViS2l0L2d0ay9XZWJD
b3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsv
V2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmNwcAkocmV2aXNpb24gNzI4MjUpCisrKyBX
ZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTEwMDgsNyArMTAwOCw3IEBAIGJvb2wgRWRpdG9yQ2xpZW50OjpzcGVsbGluZ1VJSXNT
aG93aW5nKCkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgRWRpdG9yQ2xpZW50OjpnZXRH
dWVzc2VzRm9yV29yZChjb25zdCBTdHJpbmcmIHdvcmQsIFdURjo6VmVjdG9yPFN0cmluZz4mIGd1
ZXNzZXMpCit2b2lkIEVkaXRvckNsaWVudDo6Z2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgU3RyaW5n
JiB3b3JkLCBjb25zdCBTdHJpbmcmIGNvbnRleHQsIFZlY3RvcjxTdHJpbmc+JiBndWVzc2VzKQog
ewogICAgIEdTTGlzdCogZGljdHMgPSB3ZWJraXRfd2ViX3NldHRpbmdzX2dldF9lbmNoYW50X2Rp
Y3RzKG1fd2ViVmlldyk7CiAgICAgZ3Vlc3Nlcy5jbGVhcigpOwpJbmRleDogV2ViS2l0L2d0ay9X
ZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3Rr
L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5oCShyZXZpc2lvbiA3MjgyNSkKKysrIFdl
YktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmgJKHdvcmtpbmcgY29weSkK
QEAgLTEyOSw3ICsxMjksNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKICAgICAgICAgdmlydHVhbCB2
b2lkIHVwZGF0ZVNwZWxsaW5nVUlXaXRoTWlzc3BlbGxlZFdvcmQoY29uc3QgV1RGOjpTdHJpbmcm
KTsKICAgICAgICAgdmlydHVhbCB2b2lkIHNob3dTcGVsbGluZ1VJKGJvb2wgc2hvdyk7CiAgICAg
ICAgIHZpcnR1YWwgYm9vbCBzcGVsbGluZ1VJSXNTaG93aW5nKCk7Ci0gICAgICAgIHZpcnR1YWwg
dm9pZCBnZXRHdWVzc2VzRm9yV29yZChjb25zdCBXVEY6OlN0cmluZyYsIFdURjo6VmVjdG9yPFdU
Rjo6U3RyaW5nPiYgZ3Vlc3Nlcyk7CisgICAgICAgIHZpcnR1YWwgdm9pZCBnZXRHdWVzc2VzRm9y
V29yZChjb25zdCBTdHJpbmcmIHdvcmQsIGNvbnN0IFN0cmluZyYgY29udGV4dCwgVmVjdG9yPFN0
cmluZz4mIGd1ZXNzZXMpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNldElucHV0TWV0aG9k
U3RhdGUoKTsKICAgICAgICAgdmlydHVhbCB2b2lkIHNldElucHV0TWV0aG9kU3RhdGUoYm9vbCBl
bmFibGVkKTsKIApJbmRleDogV2ViS2l0L2hhaWt1L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJLaXQvaGFpa3UvQ2hhbmdlTG9nCShyZXZpc2lvbiA3MjgyNSkKKysrIFdlYktpdC9oYWlrdS9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNyBAQAorMjAxMC0xMS0yOSAgSmlh
IFB1ICA8anB1QGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBTdXBwb3J0IG11bHRpcGxlIGNvcnJlY3Rpb24gY2FuZGlkYXRlcyBwYW5l
bCBmb3IgbWlzc3BlbGxlZCB3b3JkIG9uIE1hYyBPUyBYLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTAxMzcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
Lzg1NjgwNTk+CisKKyAgICAgICAgQWRvcHRlZCBuZXcgZnVuY3Rpb24gc2lnbmF0dXJlIGRlZmlu
ZWQgaW4gYmFzZSBjbGFzcy4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVu
dEhhaWt1LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVudEhhaWt1OjpnZXRHdWVz
c2VzRm9yV29yZCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50SGFpa3Uu
aDoKKwogMjAxMC0xMS0wOCAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KSW5kZXg6IFdlYktpdC9oYWlrdS9XZWJD
b3JlU3VwcG9ydC9FZGl0b3JDbGllbnRIYWlrdS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2hh
aWt1L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEhhaWt1LmNwcAkocmV2aXNpb24gNzI4MjUp
CisrKyBXZWJLaXQvaGFpa3UvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50SGFpa3UuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC00NjEsNyArNDYxLDcgQEAgYm9vbCBFZGl0b3JDbGllbnRIYWlrdTo6
c3BlbGxpbmdVSUlzU2hvdwogICAgIHJldHVybiBmYWxzZTsKIH0KIAotdm9pZCBFZGl0b3JDbGll
bnRIYWlrdTo6Z2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgU3RyaW5nJiwgVmVjdG9yPFN0cmluZz4m
KQordm9pZCBFZGl0b3JDbGllbnRIYWlrdTo6Z2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgU3RyaW5n
JiB3b3JkLCBjb25zdCBTdHJpbmcmIGNvbnRleHQsIFZlY3RvcjxTdHJpbmc+JiBndWVzc2VzKQog
ewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CkluZGV4OiBXZWJLaXQvaGFpa3UvV2ViQ29yZVN1
cHBvcnQvRWRpdG9yQ2xpZW50SGFpa3UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvaGFpa3UvV2Vi
Q29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50SGFpa3UuaAkocmV2aXNpb24gNzI4MjUpCisrKyBXZWJL
aXQvaGFpa3UvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50SGFpa3UuaAkod29ya2luZyBjb3B5
KQpAQCAtMTA3LDcgKzEwNyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVh
bCB2b2lkIHVwZGF0ZVNwZWxsaW5nVUlXaXRoTWlzc3BlbGxlZFdvcmQoY29uc3QgU3RyaW5nJik7
CiAgICAgICAgIHZpcnR1YWwgdm9pZCBzaG93U3BlbGxpbmdVSShib29sIHNob3cpOwogICAgICAg
ICB2aXJ0dWFsIGJvb2wgc3BlbGxpbmdVSUlzU2hvd2luZygpOwotICAgICAgICB2aXJ0dWFsIHZv
aWQgZ2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgU3RyaW5nJiwgVmVjdG9yPFN0cmluZz4mIGd1ZXNz
ZXMpOworICAgICAgICB2aXJ0dWFsIHZvaWQgZ2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgU3RyaW5n
JiB3b3JkLCBjb25zdCBTdHJpbmcmIGNvbnRleHQsIFZlY3RvcjxTdHJpbmc+JiBndWVzc2VzKTsK
ICAgICAgICAgdmlydHVhbCB2b2lkIHdpbGxTZXRJbnB1dE1ldGhvZFN0YXRlKCk7CiAgICAgICAg
IHZpcnR1YWwgdm9pZCBzZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wgZW5hYmxlZCk7CiAKSW5kZXg6
IFdlYktpdC9tYWMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9tYWMvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3MjgyNSkKKysrIFdlYktpdC9tYWMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDMgKzEsMjEgQEAKKzIwMTAtMTEtMjkgIEppYSBQdSAgPGpwdUBhcHBsZS5jb20+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3VwcG9ydCBt
dWx0aXBsZSBjb3JyZWN0aW9uIGNhbmRpZGF0ZXMgcGFuZWwgZm9yIG1pc3NwZWxsZWQgd29yZCBv
biBNYWMgT1MgWC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTUwMTM3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NTY4MDU5PgorCisgICAgICAgIFRo
aXMgcGF0Y2ggaXMgZm9yIHN1cHBvcnRpbmcgbXVsdGlwbGUgY29ycmVjdGlvbiBzdWdnZXN0aW9u
IHBhbmVsIG9uIE1hYyBPUyBYLgorICAgICAgICBUaGUgYmVoYXZpb3IgYW5kIGltcGxlbWVudGF0
aW9uIGlzIHNpbWlsYXIgdG8gdGhhdCBvZiByZXZlcnNpb24gY2FuZGlhdGUgcGFuZWwuCisKKyAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaDogQWRvcHRlZCBuZXcgc2ln
bmF0dXJlcyBkZWZpbmVkIGluIGJhc2UgY2xhc3MuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9XZWJFZGl0b3JDbGllbnQubW06ICBBZG9wdGVkIG5ldyBzaWduYXR1cmVzIGRlZmluZWQgaW4g
YmFzZSBjbGFzcy4KKyAgICAgICAgICBBZGRlZCBjb2RlIHRvIGhhbmRsZSBuZXcgbXVsdGlwbGUg
c3VnZ2VzdGlvbiBjYW5pZGF0ZSBwYW5lbCB0eXBlLgorICAgICAgICAoV2ViRWRpdG9yQ2xpZW50
OjpzaG93Q29ycmVjdGlvblBhbmVsKToKKyAgICAgICAgKFdlYkVkaXRvckNsaWVudDo6Z2V0R3Vl
c3Nlc0ZvcldvcmQpOgorCiAyMDEwLTExLTIyICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQu
b3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFRvbnkgQ2hhbmcuCkluZGV4OiBXZWJLaXQvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgJKHJldmlzaW9uIDcyODI1KQorKysg
V2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAkod29ya2luZyBjb3B5
KQpAQCAtMTI5LDExICsxMjksMTEgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVT
cGVsbGluZ1VJV2l0aE1pc3NwZWxsZWRXb3JkKGNvbnN0IFdURjo6U3RyaW5nJik7CiAgICAgdmly
dHVhbCB2b2lkIHNob3dTcGVsbGluZ1VJKGJvb2wgc2hvdyk7CiAgICAgdmlydHVhbCBib29sIHNw
ZWxsaW5nVUlJc1Nob3dpbmcoKTsKLSAgICB2aXJ0dWFsIHZvaWQgZ2V0R3Vlc3Nlc0ZvcldvcmQo
Y29uc3QgV1RGOjpTdHJpbmcmLCBXVEY6OlZlY3RvcjxXVEY6OlN0cmluZz4mIGd1ZXNzZXMpOwor
ICAgIHZpcnR1YWwgdm9pZCBnZXRHdWVzc2VzRm9yV29yZChjb25zdCBXVEY6OlN0cmluZyYgd29y
ZCwgY29uc3QgV1RGOjpTdHJpbmcmIGNvbnRleHQsIFdURjo6VmVjdG9yPFdURjo6U3RyaW5nPiYg
Z3Vlc3Nlcyk7CiAgICAgdmlydHVhbCB2b2lkIHdpbGxTZXRJbnB1dE1ldGhvZFN0YXRlKCk7CiAg
ICAgdmlydHVhbCB2b2lkIHNldElucHV0TWV0aG9kU3RhdGUoYm9vbCBlbmFibGVkKTsKICNpZiAh
ZGVmaW5lZChCVUlMRElOR19PTl9USUdFUikgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFS
RCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQotICAgIHZpcnR1YWwgdm9p
ZCBzaG93Q29ycmVjdGlvblBhbmVsKFdlYkNvcmU6OkNvcnJlY3Rpb25QYW5lbEluZm86OlBhbmVs
VHlwZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBib3VuZGluZ0JveE9mUmVwbGFjZWRTdHJp
bmcsIGNvbnN0IFdURjo6U3RyaW5nJiByZXBsYWNlZFN0cmluZywgY29uc3QgV1RGOjpTdHJpbmcm
IHJlcGxhY2VtZW50U3RyaW5nLCBXZWJDb3JlOjpFZGl0b3IqKTsKKyAgICB2aXJ0dWFsIHZvaWQg
c2hvd0NvcnJlY3Rpb25QYW5lbChXZWJDb3JlOjpDb3JyZWN0aW9uUGFuZWxJbmZvOjpQYW5lbFR5
cGUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgYm91bmRpbmdCb3hPZlJlcGxhY2VkU3RyaW5n
LCBjb25zdCBXVEY6OlN0cmluZyYgcmVwbGFjZWRTdHJpbmcsIGNvbnN0IFdURjo6U3RyaW5nJiBy
ZXBsYWNlbWVudFN0cmluZywgY29uc3QgV1RGOjpWZWN0b3I8V1RGOjpTdHJpbmc+JiBhbHRlcm5h
dGl2ZVJlcGxhY2VtZW50U3RyaW5ncywgV2ViQ29yZTo6RWRpdG9yKik7CiAgICAgdmlydHVhbCB2
b2lkIGRpc21pc3NDb3JyZWN0aW9uUGFuZWwoV2ViQ29yZTo6Q29ycmVjdGlvbldhc1JlamVjdGVk
T3JOb3QpOwogICAgIHZpcnR1YWwgYm9vbCBpc1Nob3dpbmdDb3JyZWN0aW9uUGFuZWwoKTsKICNl
bmRpZgpJbmRleDogV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQu
bW0JKHJldmlzaW9uIDcyODI1KQorKysgV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0
b3JDbGllbnQubW0JKHdvcmtpbmcgY29weSkKQEAgLTc3LDYgKzc3LDIwIEBAIHVzaW5nIG5hbWVz
cGFjZSBXVEY7CiAKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKK3N0YXRpYyBOU0NvcnJl
Y3Rpb25CdWJibGVUeXBlIGNvcnJlY3Rpb25CdWJibGVUeXBlRm9yQ29ycmVjdGlvblBhbmVsVHlw
ZShDb3JyZWN0aW9uUGFuZWxJbmZvOjpQYW5lbFR5cGUgcGFuZWxUeXBlKQoreworICAgIHN3aXRj
aCAocGFuZWxUeXBlKSB7CisgICAgY2FzZSBDb3JyZWN0aW9uUGFuZWxJbmZvOjpQYW5lbFR5cGVD
b3JyZWN0aW9uOgorICAgICAgICByZXR1cm4gTlNDb3JyZWN0aW9uQnViYmxlVHlwZUNvcnJlY3Rp
b247CisgICAgY2FzZSBDb3JyZWN0aW9uUGFuZWxJbmZvOjpQYW5lbFR5cGVSZXZlcnNpb246Cisg
ICAgICAgIHJldHVybiBOU0NvcnJlY3Rpb25CdWJibGVUeXBlUmV2ZXJzaW9uOworICAgIGNhc2Ug
Q29ycmVjdGlvblBhbmVsSW5mbzo6UGFuZWxUeXBlU3BlbGxpbmdTdWdnZXN0aW9uczoKKyAgICAg
ICAgcmV0dXJuIE5TQ29ycmVjdGlvbkJ1YmJsZVR5cGVHdWVzc2VzOworICAgIH0KKyAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gTlNDb3JyZWN0aW9uQnViYmxlVHlwZUNvcnJl
Y3Rpb247Cit9CisKIEBpbnRlcmZhY2UgTlNBdHRyaWJ1dGVkU3RyaW5nIChXZWJOU0F0dHJpYnV0
ZWRTdHJpbmdEZXRhaWxzKQogLSAoaWQpX2luaXRXaXRoRE9NUmFuZ2U6KERPTVJhbmdlKilyYW5n
ZTsKIC0gKERPTURvY3VtZW50RnJhZ21lbnQqKV9kb2N1bWVudEZyb21SYW5nZTooTlNSYW5nZSly
YW5nZSBkb2N1bWVudDooRE9NRG9jdW1lbnQqKWRvY3VtZW50IGRvY3VtZW50QXR0cmlidXRlczoo
TlNEaWN0aW9uYXJ5ICopZGljdCBzdWJyZXNvdXJjZXM6KE5TQXJyYXkgKiopc3VicmVzb3VyY2Vz
OwpAQCAtODU2LDcgKzg3MCw3IEBAIHZvaWQgV2ViRWRpdG9yQ2xpZW50Ojp1cGRhdGVTcGVsbGlu
Z1VJV2kKIH0KIAogI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1RJR0VSKSAmJiAhZGVmaW5lZChC
VUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQp
Ci12b2lkIFdlYkVkaXRvckNsaWVudDo6c2hvd0NvcnJlY3Rpb25QYW5lbChXZWJDb3JlOjpDb3Jy
ZWN0aW9uUGFuZWxJbmZvOjpQYW5lbFR5cGUgcGFuZWxUeXBlLCBjb25zdCBGbG9hdFJlY3QmIGJv
dW5kaW5nQm94T2ZSZXBsYWNlZFN0cmluZywgY29uc3QgU3RyaW5nJiByZXBsYWNlZFN0cmluZywg
Y29uc3QgU3RyaW5nJiByZXBsYWNlbWVudFN0cmluZywgRWRpdG9yKiBlZGl0b3IpIHsKK3ZvaWQg
V2ViRWRpdG9yQ2xpZW50OjpzaG93Q29ycmVjdGlvblBhbmVsKFdlYkNvcmU6OkNvcnJlY3Rpb25Q
YW5lbEluZm86OlBhbmVsVHlwZSBwYW5lbFR5cGUsIGNvbnN0IEZsb2F0UmVjdCYgYm91bmRpbmdC
b3hPZlJlcGxhY2VkU3RyaW5nLCBjb25zdCBTdHJpbmcmIHJlcGxhY2VkU3RyaW5nLCBjb25zdCBT
dHJpbmcmIHJlcGxhY2VtZW50U3RyaW5nLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgYWx0ZXJuYXRp
dmVSZXBsYWNlbWVudFN0cmluZ3MsIEVkaXRvciogZWRpdG9yKSB7CiAgICAgZGlzbWlzc0NvcnJl
Y3Rpb25QYW5lbChXZWJDb3JlOjpDb3JyZWN0aW9uV2FzTm90UmVqZWN0ZWQpOwogCiAgICAgTlNS
ZWN0IGJvdW5kaW5nQm94QXNOU1JlY3QgPSBib3VuZGluZ0JveE9mUmVwbGFjZWRTdHJpbmc7CkBA
IC04NjgsMTQgKzg4MiwzNyBAQCB2b2lkIFdlYkVkaXRvckNsaWVudDo6c2hvd0NvcnJlY3Rpb25Q
YW5lCiAgICAgTlNTdHJpbmcgKnJlcGxhY2VtZW50U3RyaW5nQXNOU1N0cmluZyA9IHJlcGxhY2Vt
ZW50U3RyaW5nOwogCiAgICAgbV9jb3JyZWN0aW9uUGFuZWxJc1Nob3duID0gWUVTOwotICAgIE5T
Q29ycmVjdGlvbkJ1YmJsZVR5cGUgYnViYmxlVHlwZSA9IHBhbmVsVHlwZSA9PSBXZWJDb3JlOjpD
b3JyZWN0aW9uUGFuZWxJbmZvOjpQYW5lbFR5cGVDb3JyZWN0aW9uID8gTlNDb3JyZWN0aW9uQnVi
YmxlVHlwZUNvcnJlY3Rpb24gOiBOU0NvcnJlY3Rpb25CdWJibGVUeXBlUmV2ZXJzaW9uOwotICAg
IFtbTlNTcGVsbENoZWNrZXIgc2hhcmVkU3BlbGxDaGVja2VyXSBzaG93Q29ycmVjdGlvbkJ1YmJs
ZU9mVHlwZTpidWJibGVUeXBlIHByaW1hcnlTdHJpbmc6cmVwbGFjZW1lbnRTdHJpbmdBc05TU3Ry
aW5nIGFsdGVybmF0aXZlU3RyaW5nczpuaWwgZm9yU3RyaW5nSW5SZWN0OmJvdW5kaW5nQm94QXNO
U1JlY3QgdmlldzptX3dlYlZpZXcgY29tcGxldGlvbkhhbmRsZXI6XihOU1N0cmluZyAqYWNjZXB0
ZWRTdHJpbmcpIHsKLSAgICAgICAgaWYgKCFhY2NlcHRlZFN0cmluZyAmJiBidWJibGVUeXBlID09
IE5TQ29ycmVjdGlvbkJ1YmJsZVR5cGVDb3JyZWN0aW9uKSB7Ci0gICAgICAgICAgICBbW05TU3Bl
bGxDaGVja2VyIHNoYXJlZFNwZWxsQ2hlY2tlcl0gcmVjb3JkUmVzcG9uc2U6TlNDb3JyZWN0aW9u
UmVzcG9uc2VSZWplY3RlZCB0b0NvcnJlY3Rpb246cmVwbGFjZW1lbnRTdHJpbmdBc05TU3RyaW5n
IGZvcldvcmQ6cmVwbGFjZWRTdHJpbmdBc05TU3RyaW5nIGxhbmd1YWdlOm5pbCBpblNwZWxsRG9j
dW1lbnRXaXRoVGFnOlttX3dlYlZpZXcgc3BlbGxDaGVja2VyRG9jdW1lbnRUYWddXTsKLSAgICAg
ICAgICAgIGVkaXRvci0+aGFuZGxlUmVqZWN0ZWRDb3JyZWN0aW9uKCk7Ci0gICAgICAgIH0gZWxz
ZSBpZiAoYWNjZXB0ZWRTdHJpbmcgJiYgYnViYmxlVHlwZSA9PSBOU0NvcnJlY3Rpb25CdWJibGVU
eXBlUmV2ZXJzaW9uKSB7Ci0gICAgICAgICAgICBbW05TU3BlbGxDaGVja2VyIHNoYXJlZFNwZWxs
Q2hlY2tlcl0gcmVjb3JkUmVzcG9uc2U6TlNDb3JyZWN0aW9uUmVzcG9uc2VSZXZlcnRlZCB0b0Nv
cnJlY3Rpb246cmVwbGFjZWRTdHJpbmdBc05TU3RyaW5nIGZvcldvcmQ6cmVwbGFjZW1lbnRTdHJp
bmdBc05TU3RyaW5nIGxhbmd1YWdlOm5pbCBpblNwZWxsRG9jdW1lbnRXaXRoVGFnOlttX3dlYlZp
ZXcgc3BlbGxDaGVja2VyRG9jdW1lbnRUYWddXTsKLSAgICAgICAgICAgIGVkaXRvci0+aGFuZGxl
UmVqZWN0ZWRDb3JyZWN0aW9uKCk7CisgICAgTlNDb3JyZWN0aW9uQnViYmxlVHlwZSBidWJibGVU
eXBlID0gY29ycmVjdGlvbkJ1YmJsZVR5cGVGb3JDb3JyZWN0aW9uUGFuZWxUeXBlKHBhbmVsVHlw
ZSk7CisgICAgTlNNdXRhYmxlQXJyYXkgKmFsdGVybmF0aXZlU3RyaW5ncyA9IG5pbDsKKyAgICBp
ZiAoIWFsdGVybmF0aXZlUmVwbGFjZW1lbnRTdHJpbmdzLmlzRW1wdHkoKSkgeworICAgICAgICBz
aXplX3Qgc2l6ZSA9IGFsdGVybmF0aXZlUmVwbGFjZW1lbnRTdHJpbmdzLnNpemUoKTsKKyAgICAg
ICAgYWx0ZXJuYXRpdmVTdHJpbmdzID0gW05TTXV0YWJsZUFycmF5IGFycmF5V2l0aENhcGFjaXR5
OnNpemVdOworICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemU7ICsraSkKKyAgICAg
ICAgICAgIFthbHRlcm5hdGl2ZVN0cmluZ3MgYWRkT2JqZWN0OihOU1N0cmluZyopYWx0ZXJuYXRp
dmVSZXBsYWNlbWVudFN0cmluZ3NbaV1dOworICAgIH0KKworICAgIFtbTlNTcGVsbENoZWNrZXIg
c2hhcmVkU3BlbGxDaGVja2VyXSBzaG93Q29ycmVjdGlvbkJ1YmJsZU9mVHlwZTpidWJibGVUeXBl
IHByaW1hcnlTdHJpbmc6cmVwbGFjZW1lbnRTdHJpbmdBc05TU3RyaW5nIGFsdGVybmF0aXZlU3Ry
aW5nczphbHRlcm5hdGl2ZVN0cmluZ3MgZm9yU3RyaW5nSW5SZWN0OmJvdW5kaW5nQm94QXNOU1Jl
Y3QgdmlldzptX3dlYlZpZXcgY29tcGxldGlvbkhhbmRsZXI6XihOU1N0cmluZyAqYWNjZXB0ZWRT
dHJpbmcpIHsKKyAgICAgICAgc3dpdGNoIChidWJibGVUeXBlKSB7CisgICAgICAgICAgICBjYXNl
IE5TQ29ycmVjdGlvbkJ1YmJsZVR5cGVDb3JyZWN0aW9uOgorICAgICAgICAgICAgICAgIGlmICgh
YWNjZXB0ZWRTdHJpbmcpIHsKKyAgICAgICAgICAgICAgICAgICAgW1tOU1NwZWxsQ2hlY2tlciBz
aGFyZWRTcGVsbENoZWNrZXJdIHJlY29yZFJlc3BvbnNlOk5TQ29ycmVjdGlvblJlc3BvbnNlUmVq
ZWN0ZWQgdG9Db3JyZWN0aW9uOnJlcGxhY2VtZW50U3RyaW5nQXNOU1N0cmluZyBmb3JXb3JkOnJl
cGxhY2VkU3RyaW5nQXNOU1N0cmluZyBsYW5ndWFnZTpuaWwgaW5TcGVsbERvY3VtZW50V2l0aFRh
ZzpbbV93ZWJWaWV3IHNwZWxsQ2hlY2tlckRvY3VtZW50VGFnXV07CisgICAgICAgICAgICAgICAg
ICAgIGVkaXRvci0+aGFuZGxlQ29ycmVjdGlvblBhbmVsUmVzdWx0KFN0cmluZygpKTsKKyAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIE5T
Q29ycmVjdGlvbkJ1YmJsZVR5cGVSZXZlcnNpb246CisgICAgICAgICAgICAgICAgaWYgKGFjY2Vw
dGVkU3RyaW5nKSB7CisgICAgICAgICAgICAgICAgICAgIFtbTlNTcGVsbENoZWNrZXIgc2hhcmVk
U3BlbGxDaGVja2VyXSByZWNvcmRSZXNwb25zZTpOU0NvcnJlY3Rpb25SZXNwb25zZVJldmVydGVk
IHRvQ29ycmVjdGlvbjpyZXBsYWNlZFN0cmluZ0FzTlNTdHJpbmcgZm9yV29yZDpyZXBsYWNlbWVu
dFN0cmluZ0FzTlNTdHJpbmcgbGFuZ3VhZ2U6bmlsIGluU3BlbGxEb2N1bWVudFdpdGhUYWc6W21f
d2ViVmlldyBzcGVsbENoZWNrZXJEb2N1bWVudFRhZ11dOworICAgICAgICAgICAgICAgICAgICBl
ZGl0b3ItPmhhbmRsZUNvcnJlY3Rpb25QYW5lbFJlc3VsdChTdHJpbmcoKSk7CisgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBOU0NvcnJl
Y3Rpb25CdWJibGVUeXBlR3Vlc3NlczoKKyAgICAgICAgICAgICAgICBpZiAoYWNjZXB0ZWRTdHJp
bmcpCisgICAgICAgICAgICAgICAgICAgIFtbTlNTcGVsbENoZWNrZXIgc2hhcmVkU3BlbGxDaGVj
a2VyXSByZWNvcmRSZXNwb25zZTpOU0NvcnJlY3Rpb25SZXNwb25zZUFjY2VwdGVkIHRvQ29ycmVj
dGlvbjphY2NlcHRlZFN0cmluZyBmb3JXb3JkOnJlcGxhY2VkU3RyaW5nQXNOU1N0cmluZyBsYW5n
dWFnZTpuaWwgaW5TcGVsbERvY3VtZW50V2l0aFRhZzpbbV93ZWJWaWV3IHNwZWxsQ2hlY2tlckRv
Y3VtZW50VGFnXV07CisgICAgICAgICAgICAgICAgZWRpdG9yLT5oYW5kbGVDb3JyZWN0aW9uUGFu
ZWxSZXN1bHQoU3RyaW5nKGFjY2VwdGVkU3RyaW5nKSk7CisgICAgICAgICAgICAgICAgYnJlYWs7
CisKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IH0KICAgICB9XTsKIH0KQEAgLTkxNiwxMSArOTUzLDIwIEBAIGJvb2wgV2ViRWRpdG9yQ2xpZW50
OjpzcGVsbGluZ1VJSXNTaG93aW4KICAgICByZXR1cm4gW1tbTlNTcGVsbENoZWNrZXIgc2hhcmVk
U3BlbGxDaGVja2VyXSBzcGVsbGluZ1BhbmVsXSBpc1Zpc2libGVdOwogfQogCi12b2lkIFdlYkVk
aXRvckNsaWVudDo6Z2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgU3RyaW5nJiB3b3JkLCBXVEY6OlZl
Y3RvcjxTdHJpbmc+JiBndWVzc2VzKQotewotICAgIE5TQXJyYXkqIHN0cmluZ3NBcnJheSA9IFtb
TlNTcGVsbENoZWNrZXIgc2hhcmVkU3BlbGxDaGVja2VyXSBndWVzc2VzRm9yV29yZDp3b3JkXTsK
LSAgICB1bnNpZ25lZCBjb3VudCA9IFtzdHJpbmdzQXJyYXkgY291bnRdOwordm9pZCBXZWJFZGl0
b3JDbGllbnQ6OmdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYgd29yZCwgY29uc3QgU3Ry
aW5nJiBjb250ZXh0LCBWZWN0b3I8U3RyaW5nPiYgZ3Vlc3NlcykgewogICAgIGd1ZXNzZXMuY2xl
YXIoKTsKKworICAgIE5TU3RyaW5nKiBsYW5ndWFnZSA9IG5pbDsKKyAgICBOU09ydGhvZ3JhcGh5
KiBvcnRob2dyYXBoeSA9IG5pbDsKKyAgICBOU1NwZWxsQ2hlY2tlciAqY2hlY2tlciA9IFtOU1Nw
ZWxsQ2hlY2tlciBzaGFyZWRTcGVsbENoZWNrZXJdOworICAgIGlmIChjb250ZXh0Lmxlbmd0aCgp
ID4gMCkgeworICAgICAgICBbY2hlY2tlciBjaGVja1N0cmluZzpjb250ZXh0IHJhbmdlOk5TTWFr
ZVJhbmdlKDAsIGNvbnRleHQubGVuZ3RoKCkpIHR5cGVzOk5TVGV4dENoZWNraW5nVHlwZU9ydGhv
Z3JhcGh5IG9wdGlvbnM6MCBpblNwZWxsRG9jdW1lbnRXaXRoVGFnOnNwZWxsQ2hlY2tlckRvY3Vt
ZW50VGFnKCkgb3J0aG9ncmFwaHk6Jm9ydGhvZ3JhcGh5IHdvcmRDb3VudDowXTsKKyAgICAgICAg
bGFuZ3VhZ2UgPSBbY2hlY2tlciBsYW5ndWFnZUZvcldvcmRSYW5nZTpOU01ha2VSYW5nZSgwLCBj
b250ZXh0Lmxlbmd0aCgpKSBpblN0cmluZzpjb250ZXh0IG9ydGhvZ3JhcGh5Om9ydGhvZ3JhcGh5
XTsKKyAgICB9CisKKyAgICBOU0FycmF5KiBzdHJpbmdzQXJyYXkgPSBbY2hlY2tlciBndWVzc2Vz
Rm9yV29yZFJhbmdlOk5TTWFrZVJhbmdlKDAsIHdvcmQubGVuZ3RoKCkpIGluU3RyaW5nOndvcmQg
bGFuZ3VhZ2U6bGFuZ3VhZ2UgaW5TcGVsbERvY3VtZW50V2l0aFRhZzpzcGVsbENoZWNrZXJEb2N1
bWVudFRhZygpXTsKKyAgICB1bnNpZ25lZCBjb3VudCA9IFtzdHJpbmdzQXJyYXkgY291bnRdOwor
CiAgICAgaWYgKGNvdW50ID4gMCkgewogICAgICAgICBOU0VudW1lcmF0b3IqIGVudW1lcmF0b3Ig
PSBbc3RyaW5nc0FycmF5IG9iamVjdEVudW1lcmF0b3JdOwogICAgICAgICBOU1N0cmluZyogc3Ry
aW5nOwpJbmRleDogV2ViS2l0L3F0L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvcXQv
Q2hhbmdlTG9nCShyZXZpc2lvbiA3MjgyNSkKKysrIFdlYktpdC9xdC9DaGFuZ2VMb2cJKHdvcmtp
bmcgY29weSkKQEAgLTEsMyArMSwxNyBAQAorMjAxMC0xMS0yOSAgSmlhIFB1ICA8anB1QGFwcGxl
LmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBT
dXBwb3J0IG11bHRpcGxlIGNvcnJlY3Rpb24gY2FuZGlkYXRlcyBwYW5lbCBmb3IgbWlzc3BlbGxl
ZCB3b3JkIG9uIE1hYyBPUyBYLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NTAxMzcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg1NjgwNTk+CisKKyAg
ICAgICAgQWRvcHRlZCBuZXcgZnVuY3Rpb24gc2lnbmF0dXJlIGRlZmluZWQgaW4gYmFzZSBjbGFz
cy4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFF0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkVkaXRvckNsaWVudFF0OjpnZXRHdWVzc2VzRm9yV29yZCk6CisgICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50UXQuaDoKKwogMjAxMC0xMS0yNSAgTm9yYmVy
dCBMZXNlciAgPG5vcmJlcnQubGVzZXJAbm9raWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IExhc3psbyBHb21ib3MuCkluZGV4OiBXZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xp
ZW50UXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JD
bGllbnRRdC5jcHAJKHJldmlzaW9uIDcyODI1KQorKysgV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0
L0VkaXRvckNsaWVudFF0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTU4LDcgKzU1OCw3IEBAIGJv
b2wgRWRpdG9yQ2xpZW50UXQ6OnNwZWxsaW5nVUlJc1Nob3dpbmcKICAgICByZXR1cm4gZmFsc2U7
CiB9CiAKLXZvaWQgRWRpdG9yQ2xpZW50UXQ6OmdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmlu
ZyYsIFZlY3RvcjxTdHJpbmc+JikKK3ZvaWQgRWRpdG9yQ2xpZW50UXQ6OmdldEd1ZXNzZXNGb3JX
b3JkKGNvbnN0IFN0cmluZyYgd29yZCwgY29uc3QgU3RyaW5nJiBjb250ZXh0LCBWZWN0b3I8U3Ry
aW5nPiYgZ3Vlc3NlcykKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQpJbmRleDogV2ViS2l0
L3F0L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFF0LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0
L3F0L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFF0LmgJKHJldmlzaW9uIDcyODI1KQorKysg
V2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFF0LmgJKHdvcmtpbmcgY29weSkK
QEAgLTEwNCw3ICsxMDQsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVNwZWxs
aW5nVUlXaXRoTWlzc3BlbGxlZFdvcmQoY29uc3QgU3RyaW5nJik7CiAgICAgdmlydHVhbCB2b2lk
IHNob3dTcGVsbGluZ1VJKGJvb2wgc2hvdyk7CiAgICAgdmlydHVhbCBib29sIHNwZWxsaW5nVUlJ
c1Nob3dpbmcoKTsKLSAgICB2aXJ0dWFsIHZvaWQgZ2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgU3Ry
aW5nJiwgVmVjdG9yPFN0cmluZz4mIGd1ZXNzZXMpOworICAgIHZpcnR1YWwgdm9pZCBnZXRHdWVz
c2VzRm9yV29yZChjb25zdCBTdHJpbmcmIHdvcmQsIGNvbnN0IFN0cmluZyYgY29udGV4dCwgVmVj
dG9yPFN0cmluZz4mIGd1ZXNzZXMpOwogICAgIHZpcnR1YWwgdm9pZCB3aWxsU2V0SW5wdXRNZXRo
b2RTdGF0ZSgpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wgZW5h
YmxlZCk7CiAKSW5kZXg6IFdlYktpdC93aW4vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktp
dC93aW4vQ2hhbmdlTG9nCShyZXZpc2lvbiA3MjgyNSkKKysrIFdlYktpdC93aW4vQ2hhbmdlTG9n
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTAtMTEtMjkgIEppYSBQdSAgPGpw
dUBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgU3VwcG9ydCBtdWx0aXBsZSBjb3JyZWN0aW9uIGNhbmRpZGF0ZXMgcGFuZWwgZm9yIG1p
c3NwZWxsZWQgd29yZCBvbiBNYWMgT1MgWC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTUwMTM3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NTY4MDU5
PgorCisgICAgICAgIEFkb3B0ZWQgbmV3IGZ1bmN0aW9uIHNpZ25hdHVyZSBkZWZpbmVkIGluIGJh
c2UgY2xhc3MuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3Bw
OgorICAgICAgICAoV2ViRWRpdG9yQ2xpZW50OjpnZXRHdWVzc2VzRm9yV29yZCk6CisgICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lmg6CisKIDIwMTAtMTEtMjIgIEFkYW0g
Um9iZW4gIDxhcm9iZW5AYXBwbGUuY29tPgogCiAgICAgICAgIFVzZSBwYXRocyByZWxhdGl2ZSB0
byAkV2ViS2l0VlNQcm9wc1JlZGlyZWN0aW9uRGlyIHRvIGFjY2VzcyBzaGFyZWQgLnZzcHJvcHMg
ZmlsZXMKSW5kZXg6IFdlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVu
dC5jcHAJKHJldmlzaW9uIDcyODI1KQorKysgV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJF
ZGl0b3JDbGllbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03NTgsNyArNzU4LDcgQEAgYm9vbCBX
ZWJFZGl0b3JDbGllbnQ6OnNwZWxsaW5nVUlJc1Nob3dpbgogICAgIHJldHVybiAhIXNob3dpbmc7
CiB9CiAKLXZvaWQgV2ViRWRpdG9yQ2xpZW50OjpnZXRHdWVzc2VzRm9yV29yZChjb25zdCBTdHJp
bmcmIHdvcmQsIFZlY3RvcjxTdHJpbmc+JiBndWVzc2VzKQordm9pZCBXZWJFZGl0b3JDbGllbnQ6
OmdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFdURjo6U3RyaW5nJiB3b3JkLCBjb25zdCBXVEY6OlN0
cmluZyYgY29udGV4dCwgV1RGOjpWZWN0b3I8V1RGOjpTdHJpbmc+JiBndWVzc2VzKQogewogICAg
IGd1ZXNzZXMuY2xlYXIoKTsKIApJbmRleDogV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJF
ZGl0b3JDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dl
YkVkaXRvckNsaWVudC5oCShyZXZpc2lvbiA3MjgyNSkKKysrIFdlYktpdC93aW4vV2ViQ29yZVN1
cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTEwNyw3ICsxMDcsNyBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVNwZWxsaW5nVUlXaXRoTWlzc3BlbGxl
ZFdvcmQoY29uc3QgV1RGOjpTdHJpbmcmKTsKICAgICB2aXJ0dWFsIHZvaWQgc2hvd1NwZWxsaW5n
VUkoYm9vbCBzaG93KTsKICAgICB2aXJ0dWFsIGJvb2wgc3BlbGxpbmdVSUlzU2hvd2luZygpOwot
ICAgIHZpcnR1YWwgdm9pZCBnZXRHdWVzc2VzRm9yV29yZChjb25zdCBXVEY6OlN0cmluZyYsIFZl
Y3RvcjxXVEY6OlN0cmluZz4mIGd1ZXNzZXMpOworICAgIHZpcnR1YWwgdm9pZCBnZXRHdWVzc2Vz
Rm9yV29yZChjb25zdCBXVEY6OlN0cmluZyYgd29yZCwgY29uc3QgV1RGOjpTdHJpbmcmIGNvbnRl
eHQsIFdURjo6VmVjdG9yPFdURjo6U3RyaW5nPiYgZ3Vlc3Nlcyk7CiAKICAgICB2aXJ0dWFsIHZv
aWQgd2lsbFNldElucHV0TWV0aG9kU3RhdGUoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5wdXRN
ZXRob2RTdGF0ZShib29sKTsKSW5kZXg6IFdlYktpdC93aW5jZS9DaGFuZ2VMb2cKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViS2l0L3dpbmNlL0NoYW5nZUxvZwkocmV2aXNpb24gNzI4MjUpCisrKyBXZWJLaXQv
d2luY2UvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTAtMTEt
MjkgIEppYSBQdSAgPGpwdUBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgU3VwcG9ydCBtdWx0aXBsZSBjb3JyZWN0aW9uIGNhbmRpZGF0
ZXMgcGFuZWwgZm9yIG1pc3NwZWxsZWQgd29yZCBvbiBNYWMgT1MgWC4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUwMTM3CisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS84NTY4MDU5PgorCisgICAgICAgIEFkb3B0ZWQgbmV3IGZ1bmN0aW9uIHNpZ25hdHVy
ZSBkZWZpbmVkIGluIGJhc2UgY2xhc3MuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0
b3JDbGllbnRXaW5DRS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudFdpbkNFOjpn
ZXRHdWVzc2VzRm9yV29yZCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50
V2luQ0UuaDoKKwogMjAxMC0xMS0xMyAgUGF0cmljayBHYW5zdGVyZXIgIDxwYXJvZ2FAd2Via2l0
Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCBidWlsZCBmaXggYWZ0ZXIgcjcxNTQxLgpJbmRl
eDogV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFdpbkNFLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50V2luQ0Uu
Y3BwCShyZXZpc2lvbiA3MjgyNSkKKysrIFdlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9FZGl0
b3JDbGllbnRXaW5DRS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ4Nyw3ICs0ODcsNyBAQCBib29s
IEVkaXRvckNsaWVudFdpbkNFOjpzcGVsbGluZ1VJSXNTaG93CiAgICAgcmV0dXJuIGZhbHNlOwog
fQogCi12b2lkIEVkaXRvckNsaWVudFdpbkNFOjpnZXRHdWVzc2VzRm9yV29yZChjb25zdCBTdHJp
bmcmIHdvcmQsIFdURjo6VmVjdG9yPFN0cmluZz4mIGd1ZXNzZXMpCit2b2lkIEVkaXRvckNsaWVu
dFdpbkNFOjpnZXRHdWVzc2VzRm9yV29yZChjb25zdCBTdHJpbmcmIHdvcmQsIGNvbnN0IFN0cmlu
ZyYgY29udGV4dCwgVmVjdG9yPFN0cmluZz4mIGd1ZXNzZXMpCiB7CiAgICAgbm90SW1wbGVtZW50
ZWQoKTsKIH0KSW5kZXg6IFdlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRX
aW5DRS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JD
bGllbnRXaW5DRS5oCShyZXZpc2lvbiA3MjgyNSkKKysrIFdlYktpdC93aW5jZS9XZWJDb3JlU3Vw
cG9ydC9FZGl0b3JDbGllbnRXaW5DRS5oCSh3b3JraW5nIGNvcHkpCkBAIC05Nyw3ICs5Nyw3IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlU3BlbGxpbmdVSVdpdGhNaXNzcGVsbGVk
V29yZChjb25zdCBXVEY6OlN0cmluZyYpOwogICAgIHZpcnR1YWwgdm9pZCBzaG93U3BlbGxpbmdV
SShib29sKTsKICAgICB2aXJ0dWFsIGJvb2wgc3BlbGxpbmdVSUlzU2hvd2luZygpOwotICAgIHZp
cnR1YWwgdm9pZCBnZXRHdWVzc2VzRm9yV29yZChjb25zdCBXVEY6OlN0cmluZyYsIFdURjo6VmVj
dG9yPFdURjo6U3RyaW5nPiYpOworICAgIHZpcnR1YWwgdm9pZCBnZXRHdWVzc2VzRm9yV29yZChj
b25zdCBTdHJpbmcmIHdvcmQsIGNvbnN0IFN0cmluZyYgY29udGV4dCwgVmVjdG9yPFN0cmluZz4m
IGd1ZXNzZXMpOwogICAgIHZpcnR1YWwgdm9pZCB3aWxsU2V0SW5wdXRNZXRob2RTdGF0ZSgpOwog
ICAgIHZpcnR1YWwgdm9pZCBzZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wpOwogCkluZGV4OiBXZWJL
aXQvd3gvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC93eC9DaGFuZ2VMb2cJKHJldmlz
aW9uIDcyODI1KQorKysgV2ViS2l0L3d4L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDE3IEBACisyMDEwLTExLTI5ICBKaWEgUHUgIDxqcHVAYXBwbGUuY29tPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN1cHBvcnQgbXVsdGlwbGUg
Y29ycmVjdGlvbiBjYW5kaWRhdGVzIHBhbmVsIGZvciBtaXNzcGVsbGVkIHdvcmQgb24gTWFjIE9T
IFguCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MDEz
NworICAgICAgICA8cmRhcjovL3Byb2JsZW0vODU2ODA1OT4KKworICAgICAgICBBZG9wdGVkIG5l
dyBmdW5jdGlvbiBzaWduYXR1cmUgZGVmaW5lZCBpbiBiYXNlIGNsYXNzLgorCisgICAgICAgICog
V2ViS2l0U3VwcG9ydC9FZGl0b3JDbGllbnRXeC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFZGl0
b3JDbGllbnRXeDo6Z2V0R3Vlc3Nlc0ZvcldvcmQpOgorICAgICAgICAqIFdlYktpdFN1cHBvcnQv
RWRpdG9yQ2xpZW50V3guaDoKKwogMjAxMC0xMS0yNCAgUGF0cmljayBHYW5zdGVyZXIgIDxwYXJv
Z2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBDc2FiYSBPc3p0cm9nb27hYy4K
SW5kZXg6IFdlYktpdC93eC9XZWJLaXRTdXBwb3J0L0VkaXRvckNsaWVudFd4LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9FZGl0b3JDbGllbnRXeC5jcHAJKHJldmlz
aW9uIDcyODI1KQorKysgV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvRWRpdG9yQ2xpZW50V3guY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC01NDIsOSArNTQyLDkgQEAgYm9vbCBFZGl0b3JDbGllbnRXeDo6
c3BlbGxpbmdVSUlzU2hvd2luZwogICAgIHJldHVybiBmYWxzZTsKIH0KIAotdm9pZCBFZGl0b3JD
bGllbnRXeDo6Z2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgU3RyaW5nJiwgVmVjdG9yPFN0cmluZz4m
IGd1ZXNzZXMpIAoteyAKLSAgICBub3RJbXBsZW1lbnRlZCgpOyAKK3ZvaWQgRWRpdG9yQ2xpZW50
V3g6OmdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYgd29yZCwgY29uc3QgU3RyaW5nJiBj
b250ZXh0LCBWZWN0b3I8U3RyaW5nPiYgZ3Vlc3NlcykKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OwogfQogCiBTdHJpbmcgRWRpdG9yQ2xpZW50V3g6OmdldEF1dG9Db3JyZWN0U3VnZ2VzdGlvbkZv
ck1pc3NwZWxsZWRXb3JkKGNvbnN0IFdURjo6U3RyaW5nJikKSW5kZXg6IFdlYktpdC93eC9XZWJL
aXRTdXBwb3J0L0VkaXRvckNsaWVudFd4LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3d4L1dlYktp
dFN1cHBvcnQvRWRpdG9yQ2xpZW50V3guaAkocmV2aXNpb24gNzI4MjUpCisrKyBXZWJLaXQvd3gv
V2ViS2l0U3VwcG9ydC9FZGl0b3JDbGllbnRXeC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDcsOSAr
MTA3LDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVTcGVsbGluZ1VJV2l0aE1p
c3NwZWxsZWRXb3JkKGNvbnN0IFN0cmluZyYpOwogICAgIHZpcnR1YWwgdm9pZCBzaG93U3BlbGxp
bmdVSShib29sIHNob3cpOwogICAgIHZpcnR1YWwgYm9vbCBzcGVsbGluZ1VJSXNTaG93aW5nKCk7
Ci0gICAgdmlydHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYsIFZlY3Rv
cjxTdHJpbmc+JiBndWVzc2VzKTsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0R3Vlc3Nlc0ZvcldvcmQo
Y29uc3QgU3RyaW5nJiB3b3JkLCBjb25zdCBTdHJpbmcmIGNvbnRleHQsIFZlY3RvcjxTdHJpbmc+
JiBndWVzc2VzKTsKICAgICB2aXJ0dWFsIFN0cmluZyBnZXRBdXRvQ29ycmVjdFN1Z2dlc3Rpb25G
b3JNaXNzcGVsbGVkV29yZChjb25zdCBXVEY6OlN0cmluZyYpOwotICAgIAorCiAgICAgdmlydHVh
bCB2b2lkIHdpbGxTZXRJbnB1dE1ldGhvZFN0YXRlKCk7CiAgICAgdmlydHVhbCB2b2lkIHNldElu
cHV0TWV0aG9kU3RhdGUoYm9vbCBlbmFibGVkKTsKIApJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gNzI4MjUp
CisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxOCBA
QAorMjAxMC0xMS0yOSAgSmlhIFB1ICA8anB1QGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdXBwb3J0IG11bHRpcGxlIGNvcnJlY3Rp
b24gY2FuZGlkYXRlcyBwYW5lbCBmb3IgbWlzc3BlbGxlZCB3b3JkIG9uIE1hYyBPUyBYLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTAxMzcKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzg1NjgwNTk+CisKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtbGVv
cGFyZC9Ta2lwcGVkOgorICAgICAgICAqIHBsYXRmb3JtL21hYy1zbm93bGVvcGFyZC9Ta2lwcGVk
OgorICAgICAgICAqIHBsYXRmb3JtL21hYy10aWdlci9Ta2lwcGVkOgorICAgICAgICAqIHBsYXRm
b3JtL21hYy13azIvU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZWRpdGluZy9zcGVs
bGluZy9kZWxldGUtYXV0b2NvcnJlY3RlZC13b3JkLTEtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9tYWMvZWRpdGluZy9zcGVsbGluZy9kZWxldGUtYXV0b2NvcnJlY3Rl
ZC13b3JkLTEuaHRtbDogQWRkZWQuCisKIDIwMTAtMTEtMjkgIE9qYW4gVmFmYWkgIDxvamFuQGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2VkIGJ1aWxkIGZpeC4KSW5kZXg6IExheW91
dFRlc3RzL3BsYXRmb3JtL21hYy1sZW9wYXJkL1NraXBwZWQKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjLWxlb3BhcmQvU2tpcHBlZAkocmV2aXNpb24gNzI4MjUpCisrKyBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtbGVvcGFyZC9Ta2lwcGVkCSh3b3JraW5nIGNvcHkpCkBA
IC0xMDYsNiArMTA2LDcgQEAgcGxhdGZvcm0vbWFjL2VkaXRpbmcvc3BlbGxpbmcvYXV0b2NvcnJl
YwogcGxhdGZvcm0vbWFjL2VkaXRpbmcvc3BlbGxpbmcvYXV0b2NvcnJlY3Rpb24tcmVtb3Zpbmct
dW5kZXJsaW5lLmh0bWwKIHBsYXRmb3JtL21hYy9lZGl0aW5nL3NwZWxsaW5nL2F1dG9jb3JyZWN0
aW9uLXNpbXBsZS5odG1sCiBwbGF0Zm9ybS9tYWMvZWRpdGluZy9zcGVsbGluZy9jbGljay1hdXRv
Y29ycmVjdGVkLXdvcmQuaHRtbAorcGxhdGZvcm0vbWFjL2VkaXRpbmcvc3BlbGxpbmcvZGVsZXRl
LWF1dG9jb3JyZWN0ZWQtd29yZC0xLmh0bWwKIHBsYXRmb3JtL21hYy9lZGl0aW5nL3NwZWxsaW5n
L2RlbGV0ZS1pbnRvLWF1dG9jb3JyZWN0ZWQtd29yZC5odG1sCiBwbGF0Zm9ybS9tYWMvZWRpdGlu
Zy9zcGVsbGluZy9kZWxldGUtaW50by1taXNzcGVsbGVkLXdvcmQuaHRtbAogcGxhdGZvcm0vbWFj
L2VkaXRpbmcvc3BlbGxpbmcvZWRpdGluZy1tdWx0aXBsZS13b3Jkcy13aXRoLW1hcmtlcnMuaHRt
bApJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXNub3dsZW9wYXJkL1NraXBwZWQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXNub3dsZW9wYXJkL1NraXBwZWQJ
KHJldmlzaW9uIDcyODI1KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXNub3dsZW9wYXJk
L1NraXBwZWQJKHdvcmtpbmcgY29weSkKQEAgLTEzMSw2ICsxMzEsNyBAQCBwbGF0Zm9ybS9tYWMv
ZWRpdGluZy9zcGVsbGluZy9hdXRvY29ycmVjCiBwbGF0Zm9ybS9tYWMvZWRpdGluZy9zcGVsbGlu
Zy9hdXRvY29ycmVjdGlvbi1yZW1vdmluZy11bmRlcmxpbmUuaHRtbAogcGxhdGZvcm0vbWFjL2Vk
aXRpbmcvc3BlbGxpbmcvYXV0b2NvcnJlY3Rpb24tc2ltcGxlLmh0bWwKIHBsYXRmb3JtL21hYy9l
ZGl0aW5nL3NwZWxsaW5nL2NsaWNrLWF1dG9jb3JyZWN0ZWQtd29yZC5odG1sCitwbGF0Zm9ybS9t
YWMvZWRpdGluZy9zcGVsbGluZy9kZWxldGUtYXV0b2NvcnJlY3RlZC13b3JkLTEuaHRtbAogcGxh
dGZvcm0vbWFjL2VkaXRpbmcvc3BlbGxpbmcvZGVsZXRlLWludG8tYXV0b2NvcnJlY3RlZC13b3Jk
Lmh0bWwKIHBsYXRmb3JtL21hYy9lZGl0aW5nL3NwZWxsaW5nL2RlbGV0ZS1pbnRvLW1pc3NwZWxs
ZWQtd29yZC5odG1sCiBwbGF0Zm9ybS9tYWMvZWRpdGluZy9zcGVsbGluZy9lZGl0aW5nLW11bHRp
cGxlLXdvcmRzLXdpdGgtbWFya2Vycy5odG1sCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMtdGlnZXIvU2tpcHBlZAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMt
dGlnZXIvU2tpcHBlZAkocmV2aXNpb24gNzI4MjUpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMtdGlnZXIvU2tpcHBlZAkod29ya2luZyBjb3B5KQpAQCAtMjExLDYgKzIxMSw3IEBAIHBsYXRm
b3JtL21hYy9lZGl0aW5nL3NwZWxsaW5nL2F1dG9jb3JyZWMKIHBsYXRmb3JtL21hYy9lZGl0aW5n
L3NwZWxsaW5nL2F1dG9jb3JyZWN0aW9uLXJlbW92aW5nLXVuZGVybGluZS5odG1sCiBwbGF0Zm9y
bS9tYWMvZWRpdGluZy9zcGVsbGluZy9hdXRvY29ycmVjdGlvbi1zaW1wbGUuaHRtbAogcGxhdGZv
cm0vbWFjL2VkaXRpbmcvc3BlbGxpbmcvY2xpY2stYXV0b2NvcnJlY3RlZC13b3JkLmh0bWwKK3Bs
YXRmb3JtL21hYy9lZGl0aW5nL3NwZWxsaW5nL2RlbGV0ZS1hdXRvY29ycmVjdGVkLXdvcmQtMS5o
dG1sCiBwbGF0Zm9ybS9tYWMvZWRpdGluZy9zcGVsbGluZy9kZWxldGUtaW50by1hdXRvY29ycmVj
dGVkLXdvcmQuaHRtbAogcGxhdGZvcm0vbWFjL2VkaXRpbmcvc3BlbGxpbmcvZGVsZXRlLWludG8t
bWlzc3BlbGxlZC13b3JkLmh0bWwKIHBsYXRmb3JtL21hYy9lZGl0aW5nL3NwZWxsaW5nL2VkaXRp
bmctbXVsdGlwbGUtd29yZHMtd2l0aC1tYXJrZXJzLmh0bWwKSW5kZXg6IExheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy13azIvU2tpcHBlZAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMtd2syL1NraXBwZWQJKHJldmlzaW9uIDcyODI1KQorKysgTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjLXdrMi9Ta2lwcGVkCSh3b3JraW5nIGNvcHkpCkBAIC00OTQsNiArNDk0LDcgQEAgcGxh
dGZvcm0vbWFjL2VkaXRpbmcvc3BlbGxpbmcvYXV0b2NvcnJlYwogcGxhdGZvcm0vbWFjL2VkaXRp
bmcvc3BlbGxpbmcvYXV0b2NvcnJlY3Rpb24tcmVtb3ZpbmctdW5kZXJsaW5lLmh0bWwKIHBsYXRm
b3JtL21hYy9lZGl0aW5nL3NwZWxsaW5nL2F1dG9jb3JyZWN0aW9uLXNpbXBsZS5odG1sCiBwbGF0
Zm9ybS9tYWMvZWRpdGluZy9zcGVsbGluZy9jbGljay1hdXRvY29ycmVjdGVkLXdvcmQuaHRtbAor
cGxhdGZvcm0vbWFjL2VkaXRpbmcvc3BlbGxpbmcvZGVsZXRlLWF1dG9jb3JyZWN0ZWQtd29yZC0x
Lmh0bWwKIHBsYXRmb3JtL21hYy9lZGl0aW5nL3NwZWxsaW5nL2RlbGV0ZS1pbnRvLWF1dG9jb3Jy
ZWN0ZWQtd29yZC5odG1sCiBwbGF0Zm9ybS9tYWMvZWRpdGluZy9zcGVsbGluZy9kZWxldGUtaW50
by1taXNzcGVsbGVkLXdvcmQuaHRtbAogcGxhdGZvcm0vbWFjL2VkaXRpbmcvc3BlbGxpbmcvZWRp
dGluZy1tdWx0aXBsZS13b3Jkcy13aXRoLW1hcmtlcnMuaHRtbApJbmRleDogTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjL2VkaXRpbmcvc3BlbGxpbmcvZGVsZXRlLWF1dG9jb3JyZWN0ZWQtd29yZC0x
LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZWRp
dGluZy9zcGVsbGluZy9kZWxldGUtYXV0b2NvcnJlY3RlZC13b3JkLTEtZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2VkaXRpbmcvc3BlbGxpbmcv
ZGVsZXRlLWF1dG9jb3JyZWN0ZWQtd29yZC0xLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSw5NyBAQAorRURJVElORyBERUxFR0FURTogc2hvdWxkQmVnaW5FZGl0aW5nSW5ET01S
YW5nZTpyYW5nZSBmcm9tIDAgb2YgRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gMyBv
ZiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudAorRURJVElORyBERUxFR0FURTogd2ViVmll
d0RpZEJlZ2luRWRpdGluZzpXZWJWaWV3RGlkQmVnaW5FZGl0aW5nTm90aWZpY2F0aW9uCitFRElU
SU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VT
ZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHNob3VsZENoYW5nZVNlbGVj
dGVkRE9NUmFuZ2U6cmFuZ2UgZnJvbSAwIG9mIERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50
IHRvIDAgb2YgRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG9ET01SYW5nZTpyYW5nZSBm
cm9tIDEgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byAxIG9mICN0
ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgYWZmaW5pdHk6TlNTZWxlY3Rpb25B
ZmZpbml0eURvd25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6RkFMU0UKK0VESVRJTkcgREVMRUdBVEU6
IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlm
aWNhdGlvbgorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZTpXZWJWaWV3RGlkQ2hh
bmdlTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiBzaG91bGRDaGFuZ2VTZWxlY3RlZERP
TVJhbmdlOnJhbmdlIGZyb20gMSBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3Vt
ZW50IHRvIDEgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0b0RPTVJh
bmdlOnJhbmdlIGZyb20gMiBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50
IHRvIDIgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCBhZmZpbml0eTpO
U1NlbGVjdGlvbkFmZmluaXR5RG93bnN0cmVhbSBzdGlsbFNlbGVjdGluZzpGQUxTRQorRURJVElO
RyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2Vs
ZWN0aW9uTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlOldl
YlZpZXdEaWRDaGFuZ2VOb3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHNob3VsZENoYW5n
ZVNlbGVjdGVkRE9NUmFuZ2U6cmFuZ2UgZnJvbSAyIG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhU
TUwgPiAjZG9jdW1lbnQgdG8gMiBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3Vt
ZW50IHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSAzIG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwg
PiAjZG9jdW1lbnQgdG8gMyBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50
IGFmZmluaXR5Ok5TU2VsZWN0aW9uQWZmaW5pdHlEb3duc3RyZWFtIHN0aWxsU2VsZWN0aW5nOkZB
TFNFCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdE
aWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdE
aWRDaGFuZ2U6V2ViVmlld0RpZENoYW5nZU5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTog
c2hvdWxkQ2hhbmdlU2VsZWN0ZWRET01SYW5nZTpyYW5nZSBmcm9tIDMgb2YgI3RleHQgPiBESVYg
PiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byAzIG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhU
TUwgPiAjZG9jdW1lbnQgdG9ET01SYW5nZTpyYW5nZSBmcm9tIDQgb2YgI3RleHQgPiBESVYgPiBC
T0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byA0IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwg
PiAjZG9jdW1lbnQgYWZmaW5pdHk6TlNTZWxlY3Rpb25BZmZpbml0eURvd25zdHJlYW0gc3RpbGxT
ZWxlY3Rpbmc6RkFMU0UKK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rp
b246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FU
RTogd2ViVmlld0RpZENoYW5nZTpXZWJWaWV3RGlkQ2hhbmdlTm90aWZpY2F0aW9uCitFRElUSU5H
IERFTEVHQVRFOiBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlOnJhbmdlIGZyb20gNCBvZiAj
dGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDQgb2YgI3RleHQgPiBESVYg
PiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0b0RPTVJhbmdlOnJhbmdlIGZyb20gNSBvZiAjdGV4
dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDUgb2YgI3RleHQgPiBESVYgPiBC
T0RZID4gSFRNTCA+ICNkb2N1bWVudCBhZmZpbml0eTpOU1NlbGVjdGlvbkFmZmluaXR5RG93bnN0
cmVhbSBzdGlsbFNlbGVjdGluZzpGQUxTRQorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENo
YW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCitFRElU
SU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlOldlYlZpZXdEaWRDaGFuZ2VOb3RpZmljYXRp
b24KK0VESVRJTkcgREVMRUdBVEU6IHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2U6cmFuZ2Ug
ZnJvbSA1IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gNSBvZiAj
dGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvRE9NUmFuZ2U6cmFuZ2UgZnJv
bSA2IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gNiBvZiAjdGV4
dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IGFmZmluaXR5Ok5TU2VsZWN0aW9uQWZm
aW5pdHlEb3duc3RyZWFtIHN0aWxsU2VsZWN0aW5nOkZBTFNFCitFRElUSU5HIERFTEVHQVRFOiB3
ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmlj
YXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2U6V2ViVmlld0RpZENoYW5n
ZU5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogc2hvdWxkQ2hhbmdlU2VsZWN0ZWRET01S
YW5nZTpyYW5nZSBmcm9tIDYgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVu
dCB0byA2IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG9ET01SYW5n
ZTpyYW5nZSBmcm9tIDcgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0
byA3IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgYWZmaW5pdHk6TlNT
ZWxlY3Rpb25BZmZpbml0eURvd25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6RkFMU0UKK0VESVRJTkcg
REVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVj
dGlvbk5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZTpXZWJW
aWV3RGlkQ2hhbmdlTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiBzaG91bGRDaGFuZ2VT
ZWxlY3RlZERPTVJhbmdlOnJhbmdlIGZyb20gNyBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1M
ID4gI2RvY3VtZW50IHRvIDcgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVu
dCB0b0RPTVJhbmdlOnJhbmdlIGZyb20gOCBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4g
I2RvY3VtZW50IHRvIDggb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCBh
ZmZpbml0eTpOU1NlbGVjdGlvbkFmZmluaXR5RG93bnN0cmVhbSBzdGlsbFNlbGVjdGluZzpGQUxT
RQorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlk
Q2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlk
Q2hhbmdlOldlYlZpZXdEaWRDaGFuZ2VOb3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHNo
b3VsZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2U6cmFuZ2UgZnJvbSA4IG9mICN0ZXh0ID4gRElWID4g
Qk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gOCBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1M
ID4gI2RvY3VtZW50IHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSA5IG9mICN0ZXh0ID4gRElWID4gQk9E
WSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gOSBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4g
I2RvY3VtZW50IGFmZmluaXR5Ok5TU2VsZWN0aW9uQWZmaW5pdHlEb3duc3RyZWFtIHN0aWxsU2Vs
ZWN0aW5nOkZBTFNFCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9u
OldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6
IHdlYlZpZXdEaWRDaGFuZ2U6V2ViVmlld0RpZENoYW5nZU5vdGlmaWNhdGlvbgorRURJVElORyBE
RUxFR0FURTogc2hvdWxkQ2hhbmdlU2VsZWN0ZWRET01SYW5nZTpyYW5nZSBmcm9tIDkgb2YgI3Rl
eHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byA5IG9mICN0ZXh0ID4gRElWID4g
Qk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG9ET01SYW5nZTpyYW5nZSBmcm9tIDEwIG9mICN0ZXh0
ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gMTAgb2YgI3RleHQgPiBESVYgPiBC
T0RZID4gSFRNTCA+ICNkb2N1bWVudCBhZmZpbml0eTpOU1NlbGVjdGlvbkFmZmluaXR5RG93bnN0
cmVhbSBzdGlsbFNlbGVjdGluZzpGQUxTRQorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENo
YW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCitFRElU
SU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlOldlYlZpZXdEaWRDaGFuZ2VOb3RpZmljYXRp
b24KK0VESVRJTkcgREVMRUdBVEU6IHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2U6cmFuZ2Ug
ZnJvbSAxMCBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDEwIG9m
ICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG9ET01SYW5nZTpyYW5nZSBm
cm9tIDExIG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gMTEgb2Yg
I3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCBhZmZpbml0eTpOU1NlbGVjdGlv
bkFmZmluaXR5RG93bnN0cmVhbSBzdGlsbFNlbGVjdGluZzpGQUxTRQorRURJVElORyBERUxFR0FU
RTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90
aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlOldlYlZpZXdEaWRD
aGFuZ2VOb3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHNob3VsZENoYW5nZVNlbGVjdGVk
RE9NUmFuZ2U6cmFuZ2UgZnJvbSAxMSBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2Rv
Y3VtZW50IHRvIDExIG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG9E
T01SYW5nZTpyYW5nZSBmcm9tIDEyIG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9j
dW1lbnQgdG8gMTIgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCBhZmZp
bml0eTpOU1NlbGVjdGlvbkFmZmluaXR5RG93bnN0cmVhbSBzdGlsbFNlbGVjdGluZzpGQUxTRQor
RURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hh
bmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hh
bmdlOldlYlZpZXdEaWRDaGFuZ2VOb3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHNob3Vs
ZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2U6cmFuZ2UgZnJvbSAxMiBvZiAjdGV4dCA+IERJViA+IEJP
RFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDEyIG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwg
PiAjZG9jdW1lbnQgdG9ET01SYW5nZTpyYW5nZSBmcm9tIDEzIG9mICN0ZXh0ID4gRElWID4gQk9E
WSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gMTMgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+
ICNkb2N1bWVudCBhZmZpbml0eTpOU1NlbGVjdGlvbkFmZmluaXR5RG93bnN0cmVhbSBzdGlsbFNl
bGVjdGluZzpGQUxTRQorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlv
bjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRF
OiB3ZWJWaWV3RGlkQ2hhbmdlOldlYlZpZXdEaWRDaGFuZ2VOb3RpZmljYXRpb24KK0VESVRJTkcg
REVMRUdBVEU6IHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2U6cmFuZ2UgZnJvbSAxMyBvZiAj
dGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDEzIG9mICN0ZXh0ID4gRElW
ID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG9ET01SYW5nZTpyYW5nZSBmcm9tIDQgb2YgI3Rl
eHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byAxMiBvZiAjdGV4dCA+IERJViA+
IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IGFmZmluaXR5Ok5TU2VsZWN0aW9uQWZmaW5pdHlEb3du
c3RyZWFtIHN0aWxsU2VsZWN0aW5nOkZBTFNFCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlk
Q2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VE
SVRJTkcgREVMRUdBVEU6IHNob3VsZEluc2VydFRleHQ6bWVzc2FnZSByZXBsYWNpbmdET01SYW5n
ZTpyYW5nZSBmcm9tIDQgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0
byAxMiBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IGdpdmVuQWN0aW9u
OldlYlZpZXdJbnNlcnRBY3Rpb25UeXBlZAorRURJVElORyBERUxFR0FURTogc2hvdWxkQ2hhbmdl
U2VsZWN0ZWRET01SYW5nZTpyYW5nZSBmcm9tIDQgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRN
TCA+ICNkb2N1bWVudCB0byAxMiBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3Vt
ZW50IHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSAxMSBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1M
ID4gI2RvY3VtZW50IHRvIDExIG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1l
bnQgYWZmaW5pdHk6TlNTZWxlY3Rpb25BZmZpbml0eURvd25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6
RkFMU0UKK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmll
d0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogd2ViVmll
d0RpZENoYW5nZTpXZWJWaWV3RGlkQ2hhbmdlTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRF
OiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3Rp
ZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHNob3VsZERlbGV0ZURPTVJhbmdlOnJhbmdlIGZy
b20gMTEgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byAxMiBvZiAj
dGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50CitFRElUSU5HIERFTEVHQVRFOiBz
aG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlOnJhbmdlIGZyb20gMTEgb2YgI3RleHQgPiBESVYg
PiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byAxMSBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBI
VE1MID4gI2RvY3VtZW50IHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSAxMSBvZiAjdGV4dCA+IERJViA+
IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDExIG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhU
TUwgPiAjZG9jdW1lbnQgYWZmaW5pdHk6TlNTZWxlY3Rpb25BZmZpbml0eURvd25zdHJlYW0gc3Rp
bGxTZWxlY3Rpbmc6RkFMU0UKK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxl
Y3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgorRURJVElORyBERUxF
R0FURTogd2ViVmlld0RpZENoYW5nZTpXZWJWaWV3RGlkQ2hhbmdlTm90aWZpY2F0aW9uCitFRElU
SU5HIERFTEVHQVRFOiBzaG91bGREZWxldGVET01SYW5nZTpyYW5nZSBmcm9tIDEwIG9mICN0ZXh0
ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gMTEgb2YgI3RleHQgPiBESVYgPiBC
T0RZID4gSFRNTCA+ICNkb2N1bWVudAorRURJVElORyBERUxFR0FURTogc2hvdWxkQ2hhbmdlU2Vs
ZWN0ZWRET01SYW5nZTpyYW5nZSBmcm9tIDEwIG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwg
PiAjZG9jdW1lbnQgdG8gMTAgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVu
dCB0b0RPTVJhbmdlOnJhbmdlIGZyb20gMTAgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+
ICNkb2N1bWVudCB0byAxMCBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50
IGFmZmluaXR5Ok5TU2VsZWN0aW9uQWZmaW5pdHlEb3duc3RyZWFtIHN0aWxsU2VsZWN0aW5nOkZB
TFNFCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdE
aWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdE
aWRDaGFuZ2U6V2ViVmlld0RpZENoYW5nZU5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTog
c2hvdWxkRGVsZXRlRE9NUmFuZ2U6cmFuZ2UgZnJvbSA5IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+
IEhUTUwgPiAjZG9jdW1lbnQgdG8gMTAgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNk
b2N1bWVudAorRURJVElORyBERUxFR0FURTogc2hvdWxkQ2hhbmdlU2VsZWN0ZWRET01SYW5nZTpy
YW5nZSBmcm9tIDkgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byA5
IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG9ET01SYW5nZTpyYW5n
ZSBmcm9tIDkgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byA5IG9m
ICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgYWZmaW5pdHk6TlNTZWxlY3Rp
b25BZmZpbml0eURvd25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6RkFMU0UKK0VESVRJTkcgREVMRUdB
VEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5v
dGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZTpXZWJWaWV3RGlk
Q2hhbmdlTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiBzaG91bGREZWxldGVET01SYW5n
ZTpyYW5nZSBmcm9tIDggb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0
byA5IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQKK0VESVRJTkcgREVM
RUdBVEU6IHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2U6cmFuZ2UgZnJvbSA4IG9mICN0ZXh0
ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gOCBvZiAjdGV4dCA+IERJViA+IEJP
RFkgPiBIVE1MID4gI2RvY3VtZW50IHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSA4IG9mICN0ZXh0ID4g
RElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gOCBvZiAjdGV4dCA+IERJViA+IEJPRFkg
PiBIVE1MID4gI2RvY3VtZW50IGFmZmluaXR5Ok5TU2VsZWN0aW9uQWZmaW5pdHlEb3duc3RyZWFt
IHN0aWxsU2VsZWN0aW5nOkZBTFNFCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdl
U2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VESVRJTkcg
REVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2U6V2ViVmlld0RpZENoYW5nZU5vdGlmaWNhdGlvbgor
RURJVElORyBERUxFR0FURTogc2hvdWxkRGVsZXRlRE9NUmFuZ2U6cmFuZ2UgZnJvbSA3IG9mICN0
ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gOCBvZiAjdGV4dCA+IERJViA+
IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50CitFRElUSU5HIERFTEVHQVRFOiBzaG91bGRDaGFuZ2VT
ZWxlY3RlZERPTVJhbmdlOnJhbmdlIGZyb20gNyBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1M
ID4gI2RvY3VtZW50IHRvIDcgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVu
dCB0b0RPTVJhbmdlOnJhbmdlIGZyb20gNyBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4g
I2RvY3VtZW50IHRvIDcgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCBh
ZmZpbml0eTpOU1NlbGVjdGlvbkFmZmluaXR5RG93bnN0cmVhbSBzdGlsbFNlbGVjdGluZzpGQUxT
RQorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlk
Q2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlk
Q2hhbmdlOldlYlZpZXdEaWRDaGFuZ2VOb3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHNo
b3VsZERlbGV0ZURPTVJhbmdlOnJhbmdlIGZyb20gNiBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBI
VE1MID4gI2RvY3VtZW50IHRvIDcgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1
bWVudAorRURJVElORyBERUxFR0FURTogc2hvdWxkQ2hhbmdlU2VsZWN0ZWRET01SYW5nZTpyYW5n
ZSBmcm9tIDYgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byA2IG9m
ICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG9ET01SYW5nZTpyYW5nZSBm
cm9tIDYgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byA2IG9mICN0
ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgYWZmaW5pdHk6TlNTZWxlY3Rpb25B
ZmZpbml0eURvd25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6RkFMU0UKK0VESVRJTkcgREVMRUdBVEU6
IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlm
aWNhdGlvbgorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZTpXZWJWaWV3RGlkQ2hh
bmdlTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiBzaG91bGREZWxldGVET01SYW5nZTpy
YW5nZSBmcm9tIDUgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byA2
IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQKK0VESVRJTkcgREVMRUdB
VEU6IHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2U6cmFuZ2UgZnJvbSA1IG9mICN0ZXh0ID4g
RElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gNSBvZiAjdGV4dCA+IERJViA+IEJPRFkg
PiBIVE1MID4gI2RvY3VtZW50IHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSA1IG9mICN0ZXh0ID4gRElW
ID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gNSBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBI
VE1MID4gI2RvY3VtZW50IGFmZmluaXR5Ok5TU2VsZWN0aW9uQWZmaW5pdHlEb3duc3RyZWFtIHN0
aWxsU2VsZWN0aW5nOkZBTFNFCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2Vs
ZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VESVRJTkcgREVM
RUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2U6V2ViVmlld0RpZENoYW5nZU5vdGlmaWNhdGlvbgorRURJ
VElORyBERUxFR0FURTogc2hvdWxkRGVsZXRlRE9NUmFuZ2U6cmFuZ2UgZnJvbSA0IG9mICN0ZXh0
ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gNSBvZiAjdGV4dCA+IERJViA+IEJP
RFkgPiBIVE1MID4gI2RvY3VtZW50CitFRElUSU5HIERFTEVHQVRFOiBzaG91bGRDaGFuZ2VTZWxl
Y3RlZERPTVJhbmdlOnJhbmdlIGZyb20gNCBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4g
I2RvY3VtZW50IHRvIDQgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0
b0RPTVJhbmdlOnJhbmdlIGZyb20gNCBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2Rv
Y3VtZW50IHRvIDQgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCBhZmZp
bml0eTpOU1NlbGVjdGlvbkFmZmluaXR5RG93bnN0cmVhbSBzdGlsbFNlbGVjdGluZzpGQUxTRQor
RURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hh
bmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hh
bmdlOldlYlZpZXdEaWRDaGFuZ2VOb3RpZmljYXRpb24KK2xheWVyIGF0ICgwLDApIHNpemUgODAw
eDYwMAorICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAorbGF5ZXIgYXQgKDAsMCkg
c2l6ZSA4MDB4NjAwCisgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgwMHg2MDAK
KyAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDc4NHg1ODQKKyAgICAgIFJlbmRl
ckJsb2NrIHtESVZ9IGF0ICgwLDApIHNpemUgNzg0eDE4CisgICAgICAgIFJlbmRlclRleHQgeyN0
ZXh0fSBhdCAoMCwwKSBzaXplIDM5N3gxOAorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdp
ZHRoIDM5NzogIlVwb24gc3VjY2VzcywgeW91IHNob3VsZCBvbmx5IHNlZSB0aGUgd29yZCBcInRo
ZVwiIGluIHRleHQgZmllbGQuIgorICAgICAgUmVuZGVyQmxvY2sge1B9IGF0ICgwLDM0KSBzaXpl
IDc4NHgxOCBbY29sb3I9IzAwODAwMF0KKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgw
LDApIHNpemUgNzAyeDE4CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNzAyOiAi
Tm90ZSwgdGhpcyB0ZXN0IGNhbiBmYWlsIGR1ZSB0byB1c2VyIHNwZWNpZmljIHNwZWxsIGNoZWNr
aW5nIGRhdGEuIFRvIGZpeCB0aGlzLCByZW1vdmUgYWxsIGZpbGVzIGluIH4vTGlicmFyeS9TcGVs
bGluZy4iCisgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCw2OCkgc2l6ZSA3ODR4NTYgW2Jv
cmRlcjogKDJweCBzb2xpZCAjRkYwMDAwKV0KKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0
ICgxNCwxNCkgc2l6ZSAzNngyOAorICAgICAgICAgIHRleHQgcnVuIGF0ICgxNCwxNCkgd2lkdGgg
MzY6ICJ0aGUgIgorICAgICAgICBSZW5kZXJJbmxpbmUge1NQQU59IGF0ICgwLDApIHNpemUgMHgy
OAorY2FyZXQ6IHBvc2l0aW9uIDQgb2YgY2hpbGQgMCB7I3RleHR9IG9mIGNoaWxkIDUge0RJVn0g
b2YgYm9keQpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2VkaXRpbmcvc3BlbGxpbmcv
ZGVsZXRlLWF1dG9jb3JyZWN0ZWQtd29yZC0xLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL2VkaXRpbmcvc3BlbGxpbmcvZGVsZXRlLWF1dG9jb3JyZWN0ZWQtd29y
ZC0xLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZWRpdGlu
Zy9zcGVsbGluZy9kZWxldGUtYXV0b2NvcnJlY3RlZC13b3JkLTEuaHRtbAkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSw1NiBAQAorPGh0bWw+IAorPGhlYWQ+CisKKzxzdHlsZT4KKy5lZGl0aW5nIHsg
CisgICAgYm9yZGVyOiAycHggc29saWQgcmVkOyAKKyAgICBwYWRkaW5nOiAxMnB4OyAKKyAgICBm
b250LXNpemU6IDI0cHg7IAorfQorPC9zdHlsZT4KKzxzY3JpcHQgc3JjPS4uLy4uLy4uLy4uL2Vk
aXRpbmcvZWRpdGluZy5qcyBsYW5ndWFnZT0iSmF2YVNjcmlwdCIgdHlwZT0idGV4dC9KYXZhU2Ny
aXB0IiA+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisKK2Z1bmN0aW9uIGVkaXRpbmdUZXN0KCkgewor
ICAgIHR5cGVDaGFyYWN0ZXJDb21tYW5kKCd0Jyk7CisgICAgdHlwZUNoYXJhY3RlckNvbW1hbmQo
J2gnKTsKKyAgICB0eXBlQ2hhcmFjdGVyQ29tbWFuZCgnZScpOworICAgIHR5cGVDaGFyYWN0ZXJD
b21tYW5kKCcgJyk7CisgICAgdHlwZUNoYXJhY3RlckNvbW1hbmQoJ20nKTsKKyAgICB0eXBlQ2hh
cmFjdGVyQ29tbWFuZCgnZScpOworICAgIHR5cGVDaGFyYWN0ZXJDb21tYW5kKCdzJyk7CisgICAg
dHlwZUNoYXJhY3RlckNvbW1hbmQoJ3MnKTsKKyAgICB0eXBlQ2hhcmFjdGVyQ29tbWFuZCgnYScp
OworICAgIHR5cGVDaGFyYWN0ZXJDb21tYW5kKCdnJyk7CisgICAgdHlwZUNoYXJhY3RlckNvbW1h
bmQoJ2UnKTsKKyAgICB0eXBlQ2hhcmFjdGVyQ29tbWFuZCgnZScpOworICAgIHR5cGVDaGFyYWN0
ZXJDb21tYW5kKCcgJyk7CisgICAgZXhlY0RlbGV0ZUNvbW1hbmQoKTsKKyAgICBleGVjRGVsZXRl
Q29tbWFuZCgpOworICAgIGV4ZWNEZWxldGVDb21tYW5kKCk7CisgICAgZXhlY0RlbGV0ZUNvbW1h
bmQoKTsKKyAgICBleGVjRGVsZXRlQ29tbWFuZCgpOworICAgIGV4ZWNEZWxldGVDb21tYW5kKCk7
CisgICAgZXhlY0RlbGV0ZUNvbW1hbmQoKTsKKyAgICBleGVjRGVsZXRlQ29tbWFuZCgpOworfQor
Cis8L3NjcmlwdD4KKworPHRpdGxlPkRlbGV0ZSBBdXRvY29ycmVjdGVkIFdvcmQgVGVzdCAxPC90
aXRsZT4gCis8L2hlYWQ+IAorPGJvZHk+Cis8ZGl2PlVwb24gc3VjY2VzcywgeW91IHNob3VsZCBv
bmx5IHNlZSB0aGUgd29yZCAidGhlIiBpbiB0ZXh0IGZpZWxkLjwvZGl2PgorPHAgIHN0eWxlPSJj
b2xvcjpncmVlbiI+Tm90ZSwgdGhpcyB0ZXN0IGNhbiBmYWlsIGR1ZSB0byB1c2VyIHNwZWNpZmlj
IHNwZWxsIGNoZWNraW5nIGRhdGEuIFRvIGZpeCB0aGlzLCByZW1vdmUgYWxsIGZpbGVzIGluIH4v
TGlicmFyeS9TcGVsbGluZy48L3A+Cis8ZGl2IGNvbnRlbnRlZGl0YWJsZSBpZD0icm9vdCIgY2xh
c3M9ImVkaXRpbmciPgorPHNwYW4gaWQ9InRlc3QiPjwvc3Bhbj4KKzwvZGl2PgorCisKKzxzY3Jp
cHQ+CitydW5FZGl0aW5nVGVzdCgpOworPC9zY3JpcHQ+CisKKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>75065</attachid>
            <date>2010-11-29 14:46:27 -0800</date>
            <delta_ts>2010-11-29 15:03:23 -0800</delta_ts>
            <desc>Proposed patch (v4)</desc>
            <filename>webkit_bug50137.patch</filename>
            <type>text/plain</type>
            <size>75477</size>
            <attacher name="Jia Pu">jiapu.mail</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3MjgyNSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNjMgQEAKKzIwMTAtMTEtMjkgIEppYSBQdSAgPGpwdUBhcHBsZS5jb20+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3VwcG9ydCBtdWx0
aXBsZSBjb3JyZWN0aW9uIGNhbmRpZGF0ZXMgcGFuZWwgZm9yIG1pc3NwZWxsZWQgd29yZCBvbiBN
YWMgT1MgWC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTUwMTM3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NTY4MDU5PgorCisgICAgICAgIFRlc3Q6
IHBsYXRmb3JtL21hYy9lZGl0aW5nL3NwZWxsaW5nL2RlbGV0ZS1hdXRvY29ycmVjdGVkLXdvcmQt
MS5odG1sCisgICAgICAgIE1hbnVhbCB0ZXN0OiBXZWJDb3JlL21hbnVhbC10ZXN0cy9hdXRvY29y
cmVjdGlvbi9kaXNtaXNzLW11bHRpcGxlLWd1ZXNzZXMuaHRtbAorICAgICAgICAgICAgICAgICAg
ICAgV2ViQ29yZS9tYW51YWwtdGVzdHMvYXV0b2NvcnJlY3Rpb24vc2VsZWN0LWZyb20tbXVsdGlw
bGUtZ3Vlc3Nlcy5odG1sCisKKyAgICAgICAgVGhpcyBwYXRjaCBpcyBmb3Igc3VwcG9ydGluZyBt
dWx0aXBsZSBjb3JyZWN0aW9uIHN1Z2dlc3Rpb24gcGFuZWwgb24gTWFjIE9TIFguCisgICAgICAg
IFRoZSBiZWhhdmlvciBhbmQgaW1wbGVtZW50YXRpb24gaXMgc2ltaWxhciB0byB0aGF0IG9mIHJl
dmVyc2lvbiBjYW5kaWF0ZSBwYW5lbC4KKworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOiBBZGRl
ZCBhbmQgcmVtb3ZlZCBzeW1ib2xzLgorCisgICAgICAgICogZWRpdGluZy9Db3JyZWN0aW9uUGFu
ZWxJbmZvLmg6IEFkZGVkIG5ldyBjb3JyZWN0aW9uIHBhbmVsIHR5cGUsIFBhbmVsVHlwZVNwZWxs
aW5nU3VnZ2VzdGlvbnMuCisKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjptYXJrZXJUeXBlc0ZvckF1dG9jb3JyZWN0aW9uKTogQ29udmVuaWVudCBmdW5j
dGlvbiBmb3IgZ2V0dGluZyBtYXJrZXIgdHlwZXMgdG8KKyAgICAgICAgICBiZSBhZGRlZCB0byBh
dXRvY29ycmVjdGVkIHdvcmQuCisgICAgICAgIChXZWJDb3JlOjpib3VuZGluZ0JveEZvclJhbmdl
KTogQ29udmVuaWVudCBmdW5jdGlvbiBmb3IgY2FsY3VsYXRpbmcgdGhlIGJvdW5kaW5nIGJveCBv
ZiBhIHJhbmdlLgorICAgICAgICAoV2ViQ29yZTo6bWFya2VyVHlwZXNGb3JSZXBsYWNlbWVudCk6
IENvbnZlbmllbnQgZnVuY3Rpb24gZm9yIGdldHRpbmcgbWFya2VyIHR5cGVzIHRvCisgICAgICAg
ICAgYmUgYWRkZWQgdG8gd29yZCB0aGF0IGhhcyBiZWVuIHJlcGxhY2VkIGJ5IHZhcmlvdXMgY29y
cmVjdGlvbiBwYW5lbC4KKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6cmVzcG9uZFRvQ2hhbmdl
ZFNlbGVjdGlvbik6IEFkZGVkIGNvZGUgdG8gdHJpZ2dlciB0aW1lciBmb3IgbXVsdGlwbGUKKyAg
ICAgICAgICBzdWdnZXN0aW9uIHBhbmVsLgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpndWVz
c2VzRm9yTWlzc3BlbGxlZFNlbGVjdGlvbik6IEFkb3B0ZWQgbmV3IHNpZ25hdHVyZSBvZiBFZGl0
b3JDbGllbnQ6OmdldEd1ZXNzZXNGb3JXb3JkKCkuCisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6
Om1hcmtNaXNzcGVsbGluZ3NBZnRlclR5cGluZ1RvV29yZCk6IEFkb3B0ZWQgbmV3IHNpZ25hdHVy
ZSBvZiBhcHBseUNvcnJlY3Rpb25QYW5lbEluZm8oKS4KKyAgICAgICAgKFdlYkNvcmU6OkVkaXRv
cjo6bWFya0FsbE1pc3NwZWxsaW5nc0FuZEJhZEdyYW1tYXJJblJhbmdlcyk6IERpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6RWRpdG9yOjpjb3JyZWN0aW9uUGFuZWxUaW1lckZpcmVkKTogQWRkZWQg
Y29kZSB0byBoYW5kbGUgbmV3IG11bHRpcGxlIHN1Z2dlc3Rpb24gcGFuZWwuCisgICAgICAgIChX
ZWJDb3JlOjpFZGl0b3I6OmhhbmRsZUNvcnJlY3Rpb25QYW5lbFJlc3VsdCk6IFJlcGxhY2VkIGhh
bmRsZVJlamVjdGVkQ29ycmVjdGlvbigpLCBzaW5jZQorICAgICAgICAgIHdpdGggbmV3IEFwcEtp
dCBjb3JyZWN0aW9uIHBhbmVsIEFQSSwgbm90IG9ubHkgcmVqZWN0aW9uLCBidXQgYWxzbyBjb25m
aXJtYXRpb24gY2FuIGJlCisgICAgICAgICAgaGFuZGxlZCBpbiBjYWxsYmFjay4KKyAgICAgICAg
KFdlYkNvcmU6OkVkaXRvcjo6c3RvcENvcnJlY3Rpb25QYW5lbFRpbWVyKTogTW92ZWQgdGhlIGNv
ZGUgdGhhdCBjbGVhcnMgY29ycmVjdGlvbiBwYW5lbCBpbmZvCisgICAgICAgICAgZnJvbSBkaXNt
aXNzQ29ycmVjdGlvblBhbmVsKCkgdG8gdGhpcyBmdW5jdGlvbiB0byBmaXggYSBidWcgdGhhdCB3
b3VsZCBvY2N1ciB3aGVuIGRlbGV0aW5nCisgICAgICAgICAgYXV0b2NvcnJlY3RlZCB3b3JkLgor
ICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpkaXNtaXNzQ29ycmVjdGlvblBhbmVsKTogRGl0dG8u
CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OmFwcGx5Q29ycmVjdGlvblBhbmVsSW5mbyk6IEFk
ZGVkIGNvZGUgdG8gaGFuZGxlIG5ldyBtdWx0aXBsZSBzdWdnZXN0aW9uIHBhbmVsLgorCisgICAg
ICAgICogZWRpdGluZy9FZGl0b3IuaDogUmVwbGFjZWQgaGFuZGxlUmVqZWN0ZWRDb3JyZWN0aW9u
KCkgd2l0aCBoYW5kbGVDb3JyZWN0aW9uUGFuZWxSZXN1bHQoKS4KKyAgICAgICAgICBDaGFuZ2Vk
IHRoZSBzaWduYXR1cmUgb2YgYXBwbHlDb3JyZWN0aW9uUGFuZWxJbmZvKCkgdG8gaGFubGRlIG5l
dyBjb3JyZWN0aW9uIHBhbmVsIHR5cGUuCisKKyAgICAgICAgKiBlZGl0aW5nL1RleHRDaGVja2lu
Z0hlbHBlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0Q2hlY2tpbmdIZWxwZXI6Omd1ZXNz
ZXNGb3JNaXNzcGVsbGVkT3JVbmdyYW1tYXRpY2FsUmFuZ2UpOiBBZG9wdGVkIG5ldyBFZGl0b3JD
bGllbnQ6OmdldEd1ZXNzZXNGb3JXb3JkKCkuCisKKyAgICAgICAgKiBlZGl0aW5nL1RleHRDaGVj
a2luZ0hlbHBlci5oOiBNYWRlIHBhcmFncmFwaFJhbmdlKCkgcHVibGljLgorCisgICAgICAgICog
bG9hZGVyL0VtcHR5Q2xpZW50cy5oOgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlFZGl0b3JDbGll
bnQ6OnNob3dDb3JyZWN0aW9uUGFuZWwpOiBBZG9wdGVkIG5ldyBzaWduYXR1cmUgZGVmaW5lZCBp
biBiYXNlIGNsYXNzLgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlFZGl0b3JDbGllbnQ6OmdldEd1
ZXNzZXNGb3JXb3JkKTogRGl0dG8uCisKKyAgICAgICAgKiBtYW51YWwtdGVzdHMvYXV0b2NvcnJl
Y3Rpb24vZGlzbWlzcy1tdWx0aXBsZS1ndWVzc2VzLmh0bWw6IEFkZGVkLgorCisgICAgICAgICog
bWFudWFsLXRlc3RzL2F1dG9jb3JyZWN0aW9uL3NlbGVjdC1mcm9tLW11bHRpcGxlLWd1ZXNzZXMu
aHRtbDogQWRkZWQuCisKKyAgICAgICAgKiBwYWdlL0VkaXRvckNsaWVudC5oOiAgQ2hhbmdlZCBz
aG93Q29ycmVjdGlvblBhbmVsKCkgdG8gYWxsb3cgcGFzc2luZyBtdWx0aXBsZSBjb3JyZWN0aW9u
CisgICAgICAgICAgY2FuZGlkYXRlcy4gQ2hhbmdlZCBnZXRHdWVzc2VzRm9yV29yZCgpIHRvIGFs
bG93IHBhc3NpbmcgaW4gY29udGV4dHVhbCB0ZXh0IGZvciBiZXR0ZXIKKyAgICAgICAgICBjb3Jy
ZWN0aW9uIHN1Z2dlc3Rpb25zIChmb3IgdGhvc2Ugc3BlbGxjaGVja2VycyB0aGF0IHV0aWxpemVz
IHN1Y2ggY29udGV4dHVhbCBpbmZvcm1hdGlvbikuCisKIDIwMTAtMTEtMjkgIERpbWl0cmkgR2xh
emtvdiAgPGRnbGF6a292QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJp
biBBZGxlci4KSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5leHAuaW4KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9XZWJDb3JlLmV4cC5pbgkocmV2aXNpb24gNzI4MjUpCisrKyBXZWJDb3JlL1dlYkNvcmUu
ZXhwLmluCSh3b3JraW5nIGNvcHkpCkBAIC02ODEsMTAgKzY4MSwxMCBAQCBfX1pON1dlYkNvcmU2
RWRpdG9yMjFpc1NlbGVjdGlvbk1pc3NwZWxsCiBfX1pON1dlYkNvcmU2RWRpdG9yMjNzZXRCYXNl
V3JpdGluZ0RpcmVjdGlvbkVOU18xNldyaXRpbmdEaXJlY3Rpb25FCiBfX1pON1dlYkNvcmU2RWRp
dG9yMjRhZHZhbmNlVG9OZXh0TWlzc3BlbGxpbmdFYgogX19aTjdXZWJDb3JlNkVkaXRvcjI0Y29t
cHV0ZUFuZFNldFR5cGluZ1N0eWxlRVBOU18xOUNTU1N0eWxlRGVjbGFyYXRpb25FTlNfMTBFZGl0
QWN0aW9uRQotX19aTjdXZWJDb3JlNkVkaXRvcjI0aGFuZGxlUmVqZWN0ZWRDb3JyZWN0aW9uRXYK
IF9fWk43V2ViQ29yZTZFZGl0b3IyNGlzU2VsZWN0aW9uVW5ncmFtbWF0aWNhbEV2CiBfX1pON1dl
YkNvcmU2RWRpdG9yMjZkZWNyZWFzZVNlbGVjdGlvbkxpc3RMZXZlbEV2CiBfX1pON1dlYkNvcmU2
RWRpdG9yMjZpbmNyZWFzZVNlbGVjdGlvbkxpc3RMZXZlbEV2CitfX1pON1dlYkNvcmU2RWRpdG9y
MjdoYW5kbGVDb3JyZWN0aW9uUGFuZWxSZXN1bHRFUktOM1dURjZTdHJpbmdFCiBfX1pON1dlYkNv
cmU2RWRpdG9yMjljYW5EZWNyZWFzZVNlbGVjdGlvbkxpc3RMZXZlbEV2CiBfX1pON1dlYkNvcmU2
RWRpdG9yMjljYW5JbmNyZWFzZVNlbGVjdGlvbkxpc3RMZXZlbEV2CiBfX1pON1dlYkNvcmU2RWRp
dG9yMzBhcHBseVBhcmFncmFwaFN0eWxlVG9TZWxlY3Rpb25FUE5TXzE5Q1NTU3R5bGVEZWNsYXJh
dGlvbkVOU18xMEVkaXRBY3Rpb25FCkluZGV4OiBXZWJDb3JlL2VkaXRpbmcvQ29ycmVjdGlvblBh
bmVsSW5mby5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZWRpdGluZy9Db3JyZWN0aW9uUGFuZWxJ
bmZvLmgJKHJldmlzaW9uIDcyODI1KQorKysgV2ViQ29yZS9lZGl0aW5nL0NvcnJlY3Rpb25QYW5l
bEluZm8uaAkod29ya2luZyBjb3B5KQpAQCAtNDQsNyArNDQsOCBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiBzdHJ1Y3QgQ29ycmVjdGlvblBhbmVsSW5mbyB7CiAgICAgZW51bSBQYW5lbFR5cGUgewog
ICAgICAgICBQYW5lbFR5cGVDb3JyZWN0aW9uID0gMCwKLSAgICAgICAgUGFuZWxUeXBlUmV2ZXJz
aW9uCisgICAgICAgIFBhbmVsVHlwZVJldmVyc2lvbiwKKyAgICAgICAgUGFuZWxUeXBlU3BlbGxp
bmdTdWdnZXN0aW9ucwogICAgIH07CiAKICAgICBSZWZQdHI8UmFuZ2U+IG1fcmFuZ2VUb0JlUmVw
bGFjZWQ7CkluZGV4OiBXZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAkocmV2aXNpb24gNzI4MjUpCisrKyBXZWJDb3JlL2Vk
aXRpbmcvRWRpdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTIsNiArOTIsMzcgQEAgc3RhdGlj
IGlubGluZSBib29sIGlzQW1iaWd1b3VzQm91bmRhcnlDaAogICAgIHJldHVybiBjaGFyYWN0ZXIg
PT0gJ1wnJyB8fCBjaGFyYWN0ZXIgPT0gcmlnaHRTaW5nbGVRdW90YXRpb25NYXJrIHx8IGNoYXJh
Y3RlciA9PSBoZWJyZXdQdW5jdHVhdGlvbkdlcnNoYXlpbTsKIH0KIAorI2lmIFNVUFBPUlRfQVVU
T0NPUlJFQ1RJT05fUEFORUwKK3N0YXRpYyBjb25zdCBWZWN0b3I8RG9jdW1lbnRNYXJrZXI6Ok1h
cmtlclR5cGU+JiBtYXJrZXJUeXBlc0ZvckF1dG9jb3JyZWN0aW9uKCkKK3sKKyAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKFZlY3RvcjxEb2N1bWVudE1hcmtlcjo6TWFya2VyVHlwZT4sIG1hcmtlclR5
cGVzRm9yQXV0b0NvcnJlY3Rpb24sICgpKTsKKyAgICBpZiAobWFya2VyVHlwZXNGb3JBdXRvQ29y
cmVjdGlvbi5pc0VtcHR5KCkpIHsKKyAgICAgICAgbWFya2VyVHlwZXNGb3JBdXRvQ29ycmVjdGlv
bi5hcHBlbmQoRG9jdW1lbnRNYXJrZXI6OlJlcGxhY2VtZW50KTsKKyAgICAgICAgbWFya2VyVHlw
ZXNGb3JBdXRvQ29ycmVjdGlvbi5hcHBlbmQoRG9jdW1lbnRNYXJrZXI6OkNvcnJlY3Rpb25JbmRp
Y2F0b3IpOworICAgIH0KKyAgICByZXR1cm4gbWFya2VyVHlwZXNGb3JBdXRvQ29ycmVjdGlvbjsK
K30KKworc3RhdGljIEZsb2F0UmVjdCBib3VuZGluZ0JveEZvclJhbmdlKFJhbmdlKiByYW5nZSkK
K3sKKyAgICBWZWN0b3I8RmxvYXRRdWFkPiB0ZXh0UXVhZHM7CisgICAgcmFuZ2UtPmdldEJvcmRl
ckFuZFRleHRRdWFkcyh0ZXh0UXVhZHMpOworICAgIEZsb2F0UmVjdCB0b3RhbEJvdW5kaW5nQm94
OworICAgIHNpemVfdCBzaXplID0gdGV4dFF1YWRzLnNpemUoKTsKKyAgICBmb3IgKHNpemVfdCBp
ID0gMDsgaTwgc2l6ZTsgKytpKQorICAgICAgICB0b3RhbEJvdW5kaW5nQm94LnVuaXRlKHRleHRR
dWFkc1tpXS5ib3VuZGluZ0JveCgpKTsKKyAgICByZXR1cm4gdG90YWxCb3VuZGluZ0JveDsKK30K
KyNlbmRpZiAvLyBTVVBQT1JUX0FVVE9DT1JSRUNUSU9OX1BBTkVMCisKK3N0YXRpYyBjb25zdCBW
ZWN0b3I8RG9jdW1lbnRNYXJrZXI6Ok1hcmtlclR5cGU+JiBtYXJrZXJUeXBlc0ZvclJlcGxhY2Vt
ZW50KCkKK3sKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFZlY3RvcjxEb2N1bWVudE1hcmtlcjo6
TWFya2VyVHlwZT4sIG1hcmtlclR5cGVzRm9yUmVwbGFjZW1lbnQsICgpKTsKKyAgICBpZiAobWFy
a2VyVHlwZXNGb3JSZXBsYWNlbWVudC5pc0VtcHR5KCkpCisgICAgICAgIG1hcmtlclR5cGVzRm9y
UmVwbGFjZW1lbnQuYXBwZW5kKERvY3VtZW50TWFya2VyOjpSZXBsYWNlbWVudCk7CisgICAgcmV0
dXJuIG1hcmtlclR5cGVzRm9yUmVwbGFjZW1lbnQ7Cit9CisKIC8vIFdoZW4gYW4gZXZlbnQgaGFu
ZGxlciBoYXMgbW92ZWQgdGhlIHNlbGVjdGlvbiBvdXRzaWRlIG9mIGEgdGV4dCBjb250cm9sCiAv
LyB3ZSBzaG91bGQgdXNlIHRoZSB0YXJnZXQgY29udHJvbCdzIHNlbGVjdGlvbiBmb3IgdGhpcyBl
ZGl0aW5nIG9wZXJhdGlvbi4KIFZpc2libGVTZWxlY3Rpb24gRWRpdG9yOjpzZWxlY3Rpb25Gb3JD
b21tYW5kKEV2ZW50KiBldmVudCkKQEAgLTUwMCwxMyArNTMxLDE4IEBAIHZvaWQgRWRpdG9yOjpy
ZXNwb25kVG9DaGFuZ2VkU2VsZWN0aW9uKGMKICAgICBzaXplX3QgbWFya2VyQ291bnQgPSBtYXJr
ZXJzLnNpemUoKTsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1hcmtlckNvdW50OyArK2kp
IHsKICAgICAgICAgY29uc3QgRG9jdW1lbnRNYXJrZXImIG1hcmtlciA9IG1hcmtlcnNbaV07Ci0g
ICAgICAgIGlmIChtYXJrZXIudHlwZSA9PSBEb2N1bWVudE1hcmtlcjo6Q29ycmVjdGlvbkluZGlj
YXRvciAmJiBzdGF0aWNfY2FzdDxpbnQ+KG1hcmtlci5lbmRPZmZzZXQpID09IGVuZE9mZnNldCkg
eworICAgICAgICBpZiAoKChtYXJrZXIudHlwZSA9PSBEb2N1bWVudE1hcmtlcjo6Q29ycmVjdGlv
bkluZGljYXRvciAmJiBtYXJrZXIuZGVzY3JpcHRpb24ubGVuZ3RoKCkpIHx8IG1hcmtlci50eXBl
ID09IERvY3VtZW50TWFya2VyOjpTcGVsbGluZykgJiYgc3RhdGljX2Nhc3Q8aW50PihtYXJrZXIu
ZW5kT2Zmc2V0KSA9PSBlbmRPZmZzZXQpIHsKICAgICAgICAgICAgIFJlZlB0cjxSYW5nZT4gd29y
ZFJhbmdlID0gUmFuZ2U6OmNyZWF0ZShmcmFtZSgpLT5kb2N1bWVudCgpLCBub2RlLCBtYXJrZXIu
c3RhcnRPZmZzZXQsIG5vZGUsIG1hcmtlci5lbmRPZmZzZXQpOwogICAgICAgICAgICAgU3RyaW5n
IGN1cnJlbnRXb3JkID0gcGxhaW5UZXh0KHdvcmRSYW5nZS5nZXQoKSk7Ci0gICAgICAgICAgICBp
ZiAoY3VycmVudFdvcmQubGVuZ3RoKCkgPiAwICYmIG1hcmtlci5kZXNjcmlwdGlvbi5sZW5ndGgo
KSA+IDApIHsKKyAgICAgICAgICAgIGlmIChjdXJyZW50V29yZC5sZW5ndGgoKSkgewogICAgICAg
ICAgICAgICAgIG1fY29ycmVjdGlvblBhbmVsSW5mby5tX3JhbmdlVG9CZVJlcGxhY2VkID0gd29y
ZFJhbmdlOwotICAgICAgICAgICAgICAgIG1fY29ycmVjdGlvblBhbmVsSW5mby5tX3JlcGxhY2Vt
ZW50U3RyaW5nID0gbWFya2VyLmRlc2NyaXB0aW9uOwotICAgICAgICAgICAgICAgIHN0YXJ0Q29y
cmVjdGlvblBhbmVsVGltZXIoQ29ycmVjdGlvblBhbmVsSW5mbzo6UGFuZWxUeXBlUmV2ZXJzaW9u
KTsKKyAgICAgICAgICAgICAgICBtX2NvcnJlY3Rpb25QYW5lbEluZm8ubV9yZXBsYWNlZFN0cmlu
ZyA9IGN1cnJlbnRXb3JkOworICAgICAgICAgICAgICAgIGlmIChtYXJrZXIudHlwZSA9PSBEb2N1
bWVudE1hcmtlcjo6U3BlbGxpbmcpCisgICAgICAgICAgICAgICAgICAgIHN0YXJ0Q29ycmVjdGlv
blBhbmVsVGltZXIoQ29ycmVjdGlvblBhbmVsSW5mbzo6UGFuZWxUeXBlU3BlbGxpbmdTdWdnZXN0
aW9ucyk7CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIG1fY29y
cmVjdGlvblBhbmVsSW5mby5tX3JlcGxhY2VtZW50U3RyaW5nID0gbWFya2VyLmRlc2NyaXB0aW9u
OworICAgICAgICAgICAgICAgICAgICBzdGFydENvcnJlY3Rpb25QYW5lbFRpbWVyKENvcnJlY3Rp
b25QYW5lbEluZm86OlBhbmVsVHlwZVJldmVyc2lvbik7CisgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KQEAgLTE5MzIsNyArMTk2
OCw3IEBAIFZlY3RvcjxTdHJpbmc+IEVkaXRvcjo6Z3Vlc3Nlc0Zvck1pc3NwZWwKIAogICAgIFZl
Y3RvcjxTdHJpbmc+IGd1ZXNzZXM7CiAgICAgaWYgKGNsaWVudCgpKQotICAgICAgICBjbGllbnQo
KS0+Z2V0R3Vlc3Nlc0ZvcldvcmQoc2VsZWN0ZWRTdHJpbmcsIGd1ZXNzZXMpOworICAgICAgICBj
bGllbnQoKS0+Z2V0R3Vlc3Nlc0ZvcldvcmQoc2VsZWN0ZWRTdHJpbmcsIFN0cmluZygpLCBndWVz
c2VzKTsKICAgICByZXR1cm4gZ3Vlc3NlczsKIH0KIApAQCAtMjAxOSw3ICsyMDU1LDcgQEAgdm9p
ZCBFZGl0b3I6Om1hcmtNaXNzcGVsbGluZ3NBZnRlclR5cGluZwogICAgICAgICAgICAgZG9BcHBs
eUNvcnJlY3Rpb24gPSBmYWxzZTsKICAgICB9CiAgICAgaWYgKGRvQXBwbHlDb3JyZWN0aW9uKQot
ICAgICAgICBhcHBseUNvcnJlY3Rpb25QYW5lbEluZm8odHJ1ZSk7CisgICAgICAgIGFwcGx5Q29y
cmVjdGlvblBhbmVsSW5mbyhtYXJrZXJUeXBlc0ZvckF1dG9jb3JyZWN0aW9uKCkpOwogICAgIG1f
Y29ycmVjdGlvblBhbmVsSW5mby5tX3JhbmdlVG9CZVJlcGxhY2VkLmNsZWFyKCk7CiAjZWxzZQog
ICAgIFVOVVNFRF9QQVJBTShzZWxlY3Rpb25BZnRlclR5cGluZyk7CkBAIC0yMzQxLDcgKzIzNzcs
NyBAQCB2b2lkIEVkaXRvcjo6bWFya0FsbE1pc3NwZWxsaW5nc0FuZEJhZEdyCiAgICAgICAgICAg
ICAgICAgICAgICAgICBtX2NvcnJlY3Rpb25QYW5lbEluZm8ubV9yZXBsYWNlZFN0cmluZyA9IHJl
cGxhY2VkU3RyaW5nOwogICAgICAgICAgICAgICAgICAgICAgICAgbV9jb3JyZWN0aW9uUGFuZWxJ
bmZvLm1fcmVwbGFjZW1lbnRTdHJpbmcgPSByZXN1bHQtPnJlcGxhY2VtZW50OwogICAgICAgICAg
ICAgICAgICAgICAgICAgbV9jb3JyZWN0aW9uUGFuZWxJbmZvLm1faXNBY3RpdmUgPSB0cnVlOwot
ICAgICAgICAgICAgICAgICAgICAgICAgY2xpZW50KCktPnNob3dDb3JyZWN0aW9uUGFuZWwobV9j
b3JyZWN0aW9uUGFuZWxJbmZvLm1fcGFuZWxUeXBlLCB0b3RhbEJvdW5kaW5nQm94LCBtX2NvcnJl
Y3Rpb25QYW5lbEluZm8ubV9yZXBsYWNlZFN0cmluZywgcmVzdWx0LT5yZXBsYWNlbWVudCwgdGhp
cyk7CisgICAgICAgICAgICAgICAgICAgICAgICBjbGllbnQoKS0+c2hvd0NvcnJlY3Rpb25QYW5l
bChtX2NvcnJlY3Rpb25QYW5lbEluZm8ubV9wYW5lbFR5cGUsIHRvdGFsQm91bmRpbmdCb3gsIG1f
Y29ycmVjdGlvblBhbmVsSW5mby5tX3JlcGxhY2VkU3RyaW5nLCByZXN1bHQtPnJlcGxhY2VtZW50
LCBWZWN0b3I8U3RyaW5nPigpLCB0aGlzKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGRvUmVw
bGFjZW1lbnQgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAgfQogI2VuZGlmCkBAIC0yNDE5
LDM5ICsyNDU1LDY4IEBAIHZvaWQgRWRpdG9yOjptYXJrTWlzc3BlbGxpbmdzQW5kQmFkR3JhbW0K
IHZvaWQgRWRpdG9yOjpjb3JyZWN0aW9uUGFuZWxUaW1lckZpcmVkKFRpbWVyPEVkaXRvcj4qKQog
ewogI2lmIFNVUFBPUlRfQVVUT0NPUlJFQ1RJT05fUEFORUwKLSAgICBpZiAobV9jb3JyZWN0aW9u
UGFuZWxJbmZvLm1fcGFuZWxUeXBlID09IENvcnJlY3Rpb25QYW5lbEluZm86OlBhbmVsVHlwZUNv
cnJlY3Rpb24pIHsKKyAgICBzd2l0Y2ggKG1fY29ycmVjdGlvblBhbmVsSW5mby5tX3BhbmVsVHlw
ZSkgeworICAgIGNhc2UgQ29ycmVjdGlvblBhbmVsSW5mbzo6UGFuZWxUeXBlQ29ycmVjdGlvbjog
ewogICAgICAgICBWaXNpYmxlU2VsZWN0aW9uIHNlbGVjdGlvbihmcmFtZSgpLT5zZWxlY3Rpb24o
KS0+c2VsZWN0aW9uKCkpOwogICAgICAgICBWaXNpYmxlUG9zaXRpb24gc3RhcnQoc2VsZWN0aW9u
LnN0YXJ0KCksIHNlbGVjdGlvbi5hZmZpbml0eSgpKTsKICAgICAgICAgVmlzaWJsZVBvc2l0aW9u
IHAgPSBzdGFydE9mV29yZChzdGFydCwgTGVmdFdvcmRJZk9uQm91bmRhcnkpOwogICAgICAgICBW
aXNpYmxlU2VsZWN0aW9uIGFkamFjZW50V29yZHMgPSBWaXNpYmxlU2VsZWN0aW9uKHAsIHN0YXJ0
KTsKICAgICAgICAgbWFya0FsbE1pc3NwZWxsaW5nc0FuZEJhZEdyYW1tYXJJblJhbmdlcyhNYXJr
U3BlbGxpbmcgfCBTaG93Q29ycmVjdGlvblBhbmVsLCBhZGphY2VudFdvcmRzLnRvTm9ybWFsaXpl
ZFJhbmdlKCkuZ2V0KCksIDApOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIFN0cmluZyBjdXJyZW50
V29yZCA9IHBsYWluVGV4dChtX2NvcnJlY3Rpb25QYW5lbEluZm8ubV9yYW5nZVRvQmVSZXBsYWNl
ZC5nZXQoKSk7Ci0gICAgICAgIFZlY3RvcjxGbG9hdFF1YWQ+IHRleHRRdWFkczsKLSAgICAgICAg
bV9jb3JyZWN0aW9uUGFuZWxJbmZvLm1fcmFuZ2VUb0JlUmVwbGFjZWQtPmdldEJvcmRlckFuZFRl
eHRRdWFkcyh0ZXh0UXVhZHMpOwotICAgICAgICBWZWN0b3I8RmxvYXRRdWFkPjo6Y29uc3RfaXRl
cmF0b3IgZW5kID0gdGV4dFF1YWRzLmVuZCgpOwotICAgICAgICBGbG9hdFJlY3QgdG90YWxCb3Vu
ZGluZ0JveDsKLSAgICAgICAgZm9yIChWZWN0b3I8RmxvYXRRdWFkPjo6Y29uc3RfaXRlcmF0b3Ig
aXQgPSB0ZXh0UXVhZHMuYmVnaW4oKTsgaXQgPCBlbmQ7ICsraXQpCi0gICAgICAgICAgICB0b3Rh
bEJvdW5kaW5nQm94LnVuaXRlKGl0LT5ib3VuZGluZ0JveCgpKTsKKyAgICB9CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgQ29ycmVjdGlvblBhbmVsSW5mbzo6UGFuZWxUeXBlUmV2ZXJzaW9uOiB7
CiAgICAgICAgIG1fY29ycmVjdGlvblBhbmVsSW5mby5tX2lzQWN0aXZlID0gdHJ1ZTsKLSAgICAg
ICAgbV9jb3JyZWN0aW9uUGFuZWxJbmZvLm1fcmVwbGFjZWRTdHJpbmcgPSBjdXJyZW50V29yZDsK
LSAgICAgICAgY2xpZW50KCktPnNob3dDb3JyZWN0aW9uUGFuZWwobV9jb3JyZWN0aW9uUGFuZWxJ
bmZvLm1fcGFuZWxUeXBlLCB0b3RhbEJvdW5kaW5nQm94LCBtX2NvcnJlY3Rpb25QYW5lbEluZm8u
bV9yZXBsYWNlZFN0cmluZywgbV9jb3JyZWN0aW9uUGFuZWxJbmZvLm1fcmVwbGFjZW1lbnRTdHJp
bmcsIHRoaXMpOworICAgICAgICBtX2NvcnJlY3Rpb25QYW5lbEluZm8ubV9yZXBsYWNlZFN0cmlu
ZyA9IHBsYWluVGV4dChtX2NvcnJlY3Rpb25QYW5lbEluZm8ubV9yYW5nZVRvQmVSZXBsYWNlZC5n
ZXQoKSk7CisgICAgICAgIGNsaWVudCgpLT5zaG93Q29ycmVjdGlvblBhbmVsKG1fY29ycmVjdGlv
blBhbmVsSW5mby5tX3BhbmVsVHlwZSwgYm91bmRpbmdCb3hGb3JSYW5nZShtX2NvcnJlY3Rpb25Q
YW5lbEluZm8ubV9yYW5nZVRvQmVSZXBsYWNlZC5nZXQoKSksIG1fY29ycmVjdGlvblBhbmVsSW5m
by5tX3JlcGxhY2VkU3RyaW5nLCBtX2NvcnJlY3Rpb25QYW5lbEluZm8ubV9yZXBsYWNlbWVudFN0
cmluZywgVmVjdG9yPFN0cmluZz4oKSwgdGhpcyk7CisgICAgfQorICAgICAgICBicmVhazsKKyAg
ICBjYXNlIENvcnJlY3Rpb25QYW5lbEluZm86OlBhbmVsVHlwZVNwZWxsaW5nU3VnZ2VzdGlvbnM6
IHsKKyAgICAgICAgaWYgKHBsYWluVGV4dChtX2NvcnJlY3Rpb25QYW5lbEluZm8ubV9yYW5nZVRv
QmVSZXBsYWNlZC5nZXQoKSkgIT0gbV9jb3JyZWN0aW9uUGFuZWxJbmZvLm1fcmVwbGFjZWRTdHJp
bmcpCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgU3RyaW5nIHBhcmFncmFwaFRleHQgPSBw
bGFpblRleHQoVGV4dENoZWNraW5nUGFyYWdyYXBoKG1fY29ycmVjdGlvblBhbmVsSW5mby5tX3Jh
bmdlVG9CZVJlcGxhY2VkKS5wYXJhZ3JhcGhSYW5nZSgpLmdldCgpKTsKKyAgICAgICAgVmVjdG9y
PFN0cmluZz4gc3VnZ2VzdGlvbnM7CisgICAgICAgIGNsaWVudCgpLT5nZXRHdWVzc2VzRm9yV29y
ZChtX2NvcnJlY3Rpb25QYW5lbEluZm8ubV9yZXBsYWNlZFN0cmluZywgcGFyYWdyYXBoVGV4dCwg
c3VnZ2VzdGlvbnMpOworICAgICAgICBpZiAoc3VnZ2VzdGlvbnMuaXNFbXB0eSgpKQorICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIFN0cmluZyB0b3BTdWdnZXN0aW9uID0gc3VnZ2VzdGlvbnMu
Zmlyc3QoKTsKKyAgICAgICAgc3VnZ2VzdGlvbnMucmVtb3ZlKDApOworICAgICAgICBtX2NvcnJl
Y3Rpb25QYW5lbEluZm8ubV9pc0FjdGl2ZSA9IHRydWU7CisgICAgICAgIGNsaWVudCgpLT5zaG93
Q29ycmVjdGlvblBhbmVsKG1fY29ycmVjdGlvblBhbmVsSW5mby5tX3BhbmVsVHlwZSwgYm91bmRp
bmdCb3hGb3JSYW5nZShtX2NvcnJlY3Rpb25QYW5lbEluZm8ubV9yYW5nZVRvQmVSZXBsYWNlZC5n
ZXQoKSksIG1fY29ycmVjdGlvblBhbmVsSW5mby5tX3JlcGxhY2VkU3RyaW5nLCB0b3BTdWdnZXN0
aW9uLCBzdWdnZXN0aW9ucywgdGhpcyk7CisgICAgfQorICAgICAgICBicmVhazsKICAgICB9CiAj
ZW5kaWYKIH0KIAotdm9pZCBFZGl0b3I6OmhhbmRsZVJlamVjdGVkQ29ycmVjdGlvbigpCit2b2lk
IEVkaXRvcjo6aGFuZGxlQ29ycmVjdGlvblBhbmVsUmVzdWx0KGNvbnN0IFN0cmluZyYgY29ycmVj
dGlvbikKIHsKICAgICBSYW5nZSogcmVwbGFjZWRSYW5nZSA9IG1fY29ycmVjdGlvblBhbmVsSW5m
by5tX3JhbmdlVG9CZVJlcGxhY2VkLmdldCgpOwogICAgIGlmICghcmVwbGFjZWRSYW5nZSB8fCBt
X2ZyYW1lLT5kb2N1bWVudCgpICE9IHJlcGxhY2VkUmFuZ2UtPm93bmVyRG9jdW1lbnQoKSkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgaWYgKG1fY29ycmVjdGlvblBhbmVsSW5mby5tX3BhbmVsVHlw
ZSA9PSBDb3JyZWN0aW9uUGFuZWxJbmZvOjpQYW5lbFR5cGVDb3JyZWN0aW9uKQorICAgIFN0cmlu
ZyBjdXJyZW50V29yZCA9IHBsYWluVGV4dChtX2NvcnJlY3Rpb25QYW5lbEluZm8ubV9yYW5nZVRv
QmVSZXBsYWNlZC5nZXQoKSk7CisgICAgLy8gQ2hlY2sgdG8gc2VlIGlmIHRoZSB3b3JkIHdlIGFy
ZSBhYm91dCB0byBjb3JyZWN0IGhhcyBiZWVuIGNoYW5nZWQgYmV0d2VlbiB0aW1lciBmaXJpbmcg
YW5kIGNhbGxiYWNrIGJlaW5nIHRyaWdnZXJlZC4KKyAgICBpZiAoY3VycmVudFdvcmQgIT0gbV9j
b3JyZWN0aW9uUGFuZWxJbmZvLm1fcmVwbGFjZWRTdHJpbmcpCisgICAgICAgIHJldHVybjsKKwor
ICAgIG1fY29ycmVjdGlvblBhbmVsSW5mby5tX2lzQWN0aXZlID0gZmFsc2U7CisKKyAgICBzd2l0
Y2ggKG1fY29ycmVjdGlvblBhbmVsSW5mby5tX3BhbmVsVHlwZSkgeworICAgIGNhc2UgQ29ycmVj
dGlvblBhbmVsSW5mbzo6UGFuZWxUeXBlQ29ycmVjdGlvbjoKICAgICAgICAgcmVwbGFjZWRSYW5n
ZS0+c3RhcnRDb250YWluZXIoKS0+ZG9jdW1lbnQoKS0+bWFya2VycygpLT5hZGRNYXJrZXIocmVw
bGFjZWRSYW5nZSwgRG9jdW1lbnRNYXJrZXI6OlJlamVjdGVkQ29ycmVjdGlvbiwgbV9jb3JyZWN0
aW9uUGFuZWxJbmZvLm1fcmVwbGFjZWRTdHJpbmcpOwotICAgIGVsc2UgewotICAgICAgICBtX2Nv
cnJlY3Rpb25QYW5lbEluZm8ubV9pc0FjdGl2ZSA9IGZhbHNlOwotICAgICAgICBhcHBseUNvcnJl
Y3Rpb25QYW5lbEluZm8oZmFsc2UpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENvcnJlY3Rp
b25QYW5lbEluZm86OlBhbmVsVHlwZVJldmVyc2lvbjoKKyAgICAgICAgYXBwbHlDb3JyZWN0aW9u
UGFuZWxJbmZvKG1hcmtlclR5cGVzRm9yUmVwbGFjZW1lbnQoKSk7CisgICAgY2FzZSBDb3JyZWN0
aW9uUGFuZWxJbmZvOjpQYW5lbFR5cGVTcGVsbGluZ1N1Z2dlc3Rpb25zOgorICAgICAgICBpZiAo
Y29ycmVjdGlvbi5sZW5ndGgoKSkgeworICAgICAgICAgICAgbV9jb3JyZWN0aW9uUGFuZWxJbmZv
Lm1fcmVwbGFjZW1lbnRTdHJpbmcgPSBjb3JyZWN0aW9uOworICAgICAgICAgICAgYXBwbHlDb3Jy
ZWN0aW9uUGFuZWxJbmZvKG1hcmtlclR5cGVzRm9yUmVwbGFjZW1lbnQoKSk7CisgICAgICAgIH0K
KyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CiAgICAgfQorCiAg
ICAgbV9jb3JyZWN0aW9uUGFuZWxJbmZvLm1fcmFuZ2VUb0JlUmVwbGFjZWQuY2xlYXIoKTsKIH0K
IApAQCAtMjQ3NSw2ICsyNTQwLDcgQEAgdm9pZCBFZGl0b3I6OnN0b3BDb3JyZWN0aW9uUGFuZWxU
aW1lcigpCiB7CiAjaWYgU1VQUE9SVF9BVVRPQ09SUkVDVElPTl9QQU5FTAogICAgIG1fY29ycmVj
dGlvblBhbmVsVGltZXIuc3RvcCgpOworICAgIG1fY29ycmVjdGlvblBhbmVsSW5mby5tX3Jhbmdl
VG9CZVJlcGxhY2VkLmNsZWFyKCk7CiAjZW5kaWYKIH0KIApAQCAtMjUwNCw3ICsyNTcwLDYgQEAg
dm9pZCBFZGl0b3I6OmRpc21pc3NDb3JyZWN0aW9uUGFuZWwoQ29ycgogICAgIGlmICghbV9jb3Jy
ZWN0aW9uUGFuZWxJbmZvLm1faXNBY3RpdmUpCiAgICAgICAgIHJldHVybjsKICAgICBtX2NvcnJl
Y3Rpb25QYW5lbEluZm8ubV9pc0FjdGl2ZSA9IGZhbHNlOwotICAgIG1fY29ycmVjdGlvblBhbmVs
SW5mby5tX3JhbmdlVG9CZVJlcGxhY2VkLmNsZWFyKCk7CiAgICAgaWYgKGNsaWVudCgpKQogICAg
ICAgICBjbGllbnQoKS0+ZGlzbWlzc0NvcnJlY3Rpb25QYW5lbChjb3JyZWN0aW9uV2FzUmVqZWN0
ZWRPck5vdCk7CiAjZWxzZQpAQCAtMjYwOCw3ICsyNjczLDcgQEAgdm9pZCBFZGl0b3I6OnJlbW92
ZVNwZWxsQW5kQ29ycmVjdGlvbk1hcgogICAgICAgICBkb2N1bWVudC0+bWFya2VycygpLT5yZW1v
dmVNYXJrZXJzKHBhaXJJdGVyYXRvci0+Zmlyc3QuZ2V0KCksIHBhaXJJdGVyYXRvci0+c2Vjb25k
KTsKIH0KIAotdm9pZCBFZGl0b3I6OmFwcGx5Q29ycmVjdGlvblBhbmVsSW5mbyhib29sIGFkZENv
cnJlY3Rpb25JbmRpY2F0b3JNYXJrZXIpCit2b2lkIEVkaXRvcjo6YXBwbHlDb3JyZWN0aW9uUGFu
ZWxJbmZvKGNvbnN0IFZlY3RvcjxEb2N1bWVudE1hcmtlcjo6TWFya2VyVHlwZT4mIG1hcmtlclR5
cGVzVG9BZGQpCiB7CiAgICAgaWYgKCFtX2NvcnJlY3Rpb25QYW5lbEluZm8ubV9yYW5nZVRvQmVS
ZXBsYWNlZCkKICAgICAgICAgcmV0dXJuOwpAQCAtMjY0OSw5ICsyNzE0LDEwIEBAIHZvaWQgRWRp
dG9yOjphcHBseUNvcnJlY3Rpb25QYW5lbEluZm8oYm8KICAgICAgICAgY2FyZXRQb3NpdGlvbi5t
b3ZlVG9PZmZzZXQoY2FyZXRQb3NpdGlvbi5vZmZzZXRJbkNvbnRhaW5lck5vZGUoKSArIG1fY29y
cmVjdGlvblBhbmVsSW5mby5tX3JlcGxhY2VtZW50U3RyaW5nLmxlbmd0aCgpIC0gbV9jb3JyZWN0
aW9uUGFuZWxJbmZvLm1fcmVwbGFjZWRTdHJpbmcubGVuZ3RoKCkpOwogICAgICAgICBzZXRFbmQo
cGFyYWdyYXBoUmFuZ2VDb250YWluaW5nQ29ycmVjdGlvbi5nZXQoKSwgZW5kT2ZQYXJhZ3JhcGgo
Y2FyZXRQb3NpdGlvbikpOwogICAgICAgICBSZWZQdHI8UmFuZ2U+IHJlcGxhY2VtZW50UmFuZ2Ug
PSBUZXh0SXRlcmF0b3I6OnN1YnJhbmdlKHBhcmFncmFwaFJhbmdlQ29udGFpbmluZ0NvcnJlY3Rp
b24uZ2V0KCksIGNvcnJlY3Rpb25TdGFydE9mZnNldEluUGFyYWdyYXBoLCBtX2NvcnJlY3Rpb25Q
YW5lbEluZm8ubV9yZXBsYWNlbWVudFN0cmluZy5sZW5ndGgoKSk7Ci0gICAgICAgIHJlcGxhY2Vt
ZW50UmFuZ2UtPnN0YXJ0Q29udGFpbmVyKCktPmRvY3VtZW50KCktPm1hcmtlcnMoKS0+YWRkTWFy
a2VyKHJlcGxhY2VtZW50UmFuZ2UuZ2V0KCksIERvY3VtZW50TWFya2VyOjpSZXBsYWNlbWVudCwg
bV9jb3JyZWN0aW9uUGFuZWxJbmZvLm1fcmVwbGFjZW1lbnRTdHJpbmcpOwotICAgICAgICBpZiAo
YWRkQ29ycmVjdGlvbkluZGljYXRvck1hcmtlcikKLSAgICAgICAgICAgIHJlcGxhY2VtZW50UmFu
Z2UtPnN0YXJ0Q29udGFpbmVyKCktPmRvY3VtZW50KCktPm1hcmtlcnMoKS0+YWRkTWFya2VyKHJl
cGxhY2VtZW50UmFuZ2UuZ2V0KCksIERvY3VtZW50TWFya2VyOjpDb3JyZWN0aW9uSW5kaWNhdG9y
LCBtX2NvcnJlY3Rpb25QYW5lbEluZm8ubV9yZXBsYWNlZFN0cmluZyk7CisgICAgICAgIERvY3Vt
ZW50TWFya2VyQ29udHJvbGxlciogbWFya2VycyA9IHJlcGxhY2VtZW50UmFuZ2UtPnN0YXJ0Q29u
dGFpbmVyKCktPmRvY3VtZW50KCktPm1hcmtlcnMoKTsKKyAgICAgICAgc2l6ZV90IHNpemUgPSBt
YXJrZXJUeXBlc1RvQWRkLnNpemUoKTsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBz
aXplOyArK2kpCisgICAgICAgICAgICBtYXJrZXJzLT5hZGRNYXJrZXIocmVwbGFjZW1lbnRSYW5n
ZS5nZXQoKSwgbWFya2VyVHlwZXNUb0FkZFtpXSwgbV9jb3JyZWN0aW9uUGFuZWxJbmZvLm1fcmVw
bGFjZW1lbnRTdHJpbmcpOwogICAgICAgICBtX2ZyYW1lLT5zZWxlY3Rpb24oKS0+bW92ZVRvKGNh
cmV0UG9zaXRpb24sIGZhbHNlKTsKICAgICB9CiB9CkluZGV4OiBXZWJDb3JlL2VkaXRpbmcvRWRp
dG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCShyZXZpc2lvbiA3
MjgyNSkKKysrIFdlYkNvcmUvZWRpdGluZy9FZGl0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtMzEz
LDcgKzMxMyw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgaGFuZGxlQ2FuY2VsT3BlcmF0aW9uKCk7
CiAgICAgdm9pZCBzdGFydENvcnJlY3Rpb25QYW5lbFRpbWVyKENvcnJlY3Rpb25QYW5lbEluZm86
OlBhbmVsVHlwZSk7Ci0gICAgdm9pZCBoYW5kbGVSZWplY3RlZENvcnJlY3Rpb24oKTsKKyAgICAv
LyBJZiB1c2VyIGNvbmZpcm1lZCBhIGNvcnJlY3Rpb24gaW4gdGhlIGNvcnJlY3Rpb24gcGFuZWws
IGNvcnJlY3Rpb24gaGFzIG5vbi16ZXJvIGxlbmd0aCwgb3RoZXJ3aXNlIGl0IG1lYW5zIHRoYXQg
dXNlciBoYXMgZGlzbWlzc2VkIHRoZSBwYW5lbC4KKyAgICB2b2lkIGhhbmRsZUNvcnJlY3Rpb25Q
YW5lbFJlc3VsdChjb25zdCBTdHJpbmcmIGNvcnJlY3Rpb24pOwogICAgIGJvb2wgaXNTaG93aW5n
Q29ycmVjdGlvblBhbmVsKCk7CiAKICAgICB2b2lkIHBhc3RlQXNGcmFnbWVudChQYXNzUmVmUHRy
PERvY3VtZW50RnJhZ21lbnQ+LCBib29sIHNtYXJ0UmVwbGFjZSwgYm9vbCBtYXRjaFN0eWxlKTsK
QEAgLTQwNiw3ICs0MDcsNyBAQCBwcml2YXRlOgogICAgIE5vZGUqIGZpbmRFdmVudFRhcmdldEZy
b21TZWxlY3Rpb24oKSBjb25zdDsKICAgICB2b2lkIHN0b3BDb3JyZWN0aW9uUGFuZWxUaW1lcigp
OwogICAgIHZvaWQgZGlzbWlzc0NvcnJlY3Rpb25QYW5lbChDb3JyZWN0aW9uV2FzUmVqZWN0ZWRP
ck5vdCk7Ci0gICAgdm9pZCBhcHBseUNvcnJlY3Rpb25QYW5lbEluZm8oYm9vbCBhZGRDb3JyZWN0
aW9uSW5kaWNhdG9yTWFya2VyKTsKKyAgICB2b2lkIGFwcGx5Q29ycmVjdGlvblBhbmVsSW5mbyhj
b25zdCBWZWN0b3I8RG9jdW1lbnRNYXJrZXI6Ok1hcmtlclR5cGU+JiBtYXJrZXJUeXBlc1RvQWRk
KTsKIH07CiAKIGlubGluZSB2b2lkIEVkaXRvcjo6c2V0U3RhcnROZXdLaWxsUmluZ1NlcXVlbmNl
KGJvb2wgZmxhZykKSW5kZXg6IFdlYkNvcmUvZWRpdGluZy9UZXh0Q2hlY2tpbmdIZWxwZXIuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZWRpdGluZy9UZXh0Q2hlY2tpbmdIZWxwZXIuY3BwCShy
ZXZpc2lvbiA3MjgyNSkKKysrIFdlYkNvcmUvZWRpdGluZy9UZXh0Q2hlY2tpbmdIZWxwZXIuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC01NDEsNyArNTQxLDcgQEAgVmVjdG9yPFN0cmluZz4gVGV4dENo
ZWNraW5nSGVscGVyOjpndWVzcwogICAgICAgICBpZiAocmVzdWx0LT50eXBlID09IFRleHRDaGVj
a2luZ1R5cGVTcGVsbGluZyAmJiBwYXJhZ3JhcGguY2hlY2tpbmdSYW5nZU1hdGNoZXMocmVzdWx0
LT5sb2NhdGlvbiwgcmVzdWx0LT5sZW5ndGgpKSB7CiAgICAgICAgICAgICBTdHJpbmcgbWlzc3Bl
bGxlZFdvcmQgPSBwYXJhZ3JhcGguY2hlY2tpbmdTdWJzdHJpbmcoKTsKICAgICAgICAgICAgIEFT
U0VSVChtaXNzcGVsbGVkV29yZC5sZW5ndGgoKSk7Ci0gICAgICAgICAgICBtX2NsaWVudC0+Z2V0
R3Vlc3Nlc0ZvcldvcmQobWlzc3BlbGxlZFdvcmQsIGd1ZXNzZXMpOworICAgICAgICAgICAgbV9j
bGllbnQtPmdldEd1ZXNzZXNGb3JXb3JkKG1pc3NwZWxsZWRXb3JkLCBTdHJpbmcoKSwgZ3Vlc3Nl
cyk7CiAgICAgICAgICAgICBtX2NsaWVudC0+dXBkYXRlU3BlbGxpbmdVSVdpdGhNaXNzcGVsbGVk
V29yZChtaXNzcGVsbGVkV29yZCk7CiAgICAgICAgICAgICBtaXNzcGVsbGVkID0gdHJ1ZTsKICAg
ICAgICAgICAgIHJldHVybiBndWVzc2VzOwpJbmRleDogV2ViQ29yZS9lZGl0aW5nL1RleHRDaGVj
a2luZ0hlbHBlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZWRpdGluZy9UZXh0Q2hlY2tpbmdI
ZWxwZXIuaAkocmV2aXNpb24gNzI4MjUpCisrKyBXZWJDb3JlL2VkaXRpbmcvVGV4dENoZWNraW5n
SGVscGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTU1LDExICs1NSwxMSBAQCBwdWJsaWM6CiAgICAg
Ym9vbCBjaGVja2luZ1JhbmdlTWF0Y2hlcyhpbnQgbG9jYXRpb24sIGludCBsZW5ndGgpIGNvbnN0
IHsgcmV0dXJuIGxvY2F0aW9uID09IGNoZWNraW5nU3RhcnQoKSAmJiBsZW5ndGggPT0gY2hlY2tp
bmdMZW5ndGgoKTsgfQogICAgIGJvb2wgaXNDaGVja2luZ1JhbmdlQ292ZXJlZEJ5KGludCBsb2Nh
dGlvbiwgaW50IGxlbmd0aCkgY29uc3QgeyByZXR1cm4gbG9jYXRpb24gPD0gY2hlY2tpbmdTdGFy
dCgpICYmIGxvY2F0aW9uICsgbGVuZ3RoID49IGNoZWNraW5nU3RhcnQoKSArIGNoZWNraW5nTGVu
Z3RoKCk7IH0KICAgICBib29sIGNoZWNraW5nUmFuZ2VDb3ZlcnMoaW50IGxvY2F0aW9uLCBpbnQg
bGVuZ3RoKSBjb25zdCB7IHJldHVybiBsb2NhdGlvbiA8IGNoZWNraW5nRW5kKCkgJiYgbG9jYXRp
b24gKyBsZW5ndGggPiBjaGVja2luZ1N0YXJ0KCk7IH0KKyAgICBQYXNzUmVmUHRyPFJhbmdlPiBw
YXJhZ3JhcGhSYW5nZSgpIGNvbnN0OwogCiBwcml2YXRlOgogICAgIHZvaWQgaW52YWxpZGF0ZVBh
cmFncmFwaFJhbmdlVmFsdWVzKCk7CiAgICAgUGFzc1JlZlB0cjxSYW5nZT4gY2hlY2tpbmdSYW5n
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fY2hlY2tpbmdSYW5nZTsgfQotICAgIFBhc3NSZWZQdHI8UmFu
Z2U+IHBhcmFncmFwaFJhbmdlKCkgY29uc3Q7CiAgICAgUGFzc1JlZlB0cjxSYW5nZT4gb2Zmc2V0
QXNSYW5nZSgpIGNvbnN0OwogICAgIGNvbnN0IFN0cmluZyYgdGV4dCgpIGNvbnN0OwogCkluZGV4
OiBXZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2xv
YWRlci9FbXB0eUNsaWVudHMuaAkocmV2aXNpb24gNzI4MjUpCisrKyBXZWJDb3JlL2xvYWRlci9F
bXB0eUNsaWVudHMuaAkod29ya2luZyBjb3B5KQpAQCAtNDgwLDcgKzQ4MCw3IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIHZvaWQgY2hlY2tUZXh0T2ZQYXJhZ3JhcGgoY29uc3QgVUNoYXIqLCBpbnQs
IHVpbnQ2NF90LCBWZWN0b3I8VGV4dENoZWNraW5nUmVzdWx0PiYpIHsgfTsKICNlbmRpZgogI2lm
IFNVUFBPUlRfQVVUT0NPUlJFQ1RJT05fUEFORUwKLSAgICB2aXJ0dWFsIHZvaWQgc2hvd0NvcnJl
Y3Rpb25QYW5lbChDb3JyZWN0aW9uUGFuZWxJbmZvOjpQYW5lbFR5cGUsIGNvbnN0IEZsb2F0UmVj
dCYsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIEVkaXRvciopIHsgfQorICAgIHZpcnR1
YWwgdm9pZCBzaG93Q29ycmVjdGlvblBhbmVsKENvcnJlY3Rpb25QYW5lbEluZm86OlBhbmVsVHlw
ZSwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgY29uc3Qg
VmVjdG9yPFN0cmluZz4mLCBFZGl0b3IqKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlzbWlzc0Nv
cnJlY3Rpb25QYW5lbChDb3JyZWN0aW9uV2FzUmVqZWN0ZWRPck5vdCkgeyB9CiAgICAgdmlydHVh
bCBib29sIGlzU2hvd2luZ0NvcnJlY3Rpb25QYW5lbCgpIHsgcmV0dXJuIGZhbHNlOyB9CiAjZW5k
aWYKQEAgLTQ4OCw3ICs0ODgsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVNw
ZWxsaW5nVUlXaXRoTWlzc3BlbGxlZFdvcmQoY29uc3QgU3RyaW5nJikgeyB9CiAgICAgdmlydHVh
bCB2b2lkIHNob3dTcGVsbGluZ1VJKGJvb2wpIHsgfQogICAgIHZpcnR1YWwgYm9vbCBzcGVsbGlu
Z1VJSXNTaG93aW5nKCkgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIHZvaWQgZ2V0R3Vl
c3Nlc0ZvcldvcmQoY29uc3QgU3RyaW5nJiwgVmVjdG9yPFN0cmluZz4mKSB7IH0KKyAgICB2aXJ0
dWFsIHZvaWQgZ2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwg
VmVjdG9yPFN0cmluZz4mKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNldElucHV0TWV0aG9k
U3RhdGUoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5wdXRNZXRob2RTdGF0ZShib29sKSB7
IH0KIApJbmRleDogV2ViQ29yZS9tYW51YWwtdGVzdHMvYXV0b2NvcnJlY3Rpb24vZGlzbWlzcy1t
dWx0aXBsZS1ndWVzc2VzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9tYW51YWwtdGVzdHMv
YXV0b2NvcnJlY3Rpb24vZGlzbWlzcy1tdWx0aXBsZS1ndWVzc2VzLmh0bWwJKHJldmlzaW9uIDAp
CisrKyBXZWJDb3JlL21hbnVhbC10ZXN0cy9hdXRvY29ycmVjdGlvbi9kaXNtaXNzLW11bHRpcGxl
LWd1ZXNzZXMuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0OSBAQAorPGh0bWw+Cis8aGVh
ZD4KKworPHN0eWxlPgorLmVkaXRpbmcgeworICAgIGJvcmRlcjogMnB4IHNvbGlkIHJlZDsKKyAg
ICBwYWRkaW5nOiAxMnB4OworICAgIGZvbnQtc2l6ZTogMjRweDsKK30KKzwvc3R5bGU+Cis8c2Ny
aXB0IHNyYz0uLi8uLi8uLi9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRpbmcuanMgbGFuZ3VhZ2U9
IkphdmFTY3JpcHQiIHR5cGU9InRleHQvSmF2YVNjcmlwdCIgPjwvc2NyaXB0PgorCis8c2NyaXB0
PgorZnVuY3Rpb24gZWRpdGluZ1Rlc3QoKSB7CisgICAgdHlwZUNoYXJhY3RlckNvbW1hbmQoJ3Qn
KTsKKyAgICB0eXBlQ2hhcmFjdGVyQ29tbWFuZCgnaCcpOworICAgIHR5cGVDaGFyYWN0ZXJDb21t
YW5kKCdlJyk7CisgICAgdHlwZUNoYXJhY3RlckNvbW1hbmQoJyAnKTsKKyAgICB0eXBlQ2hhcmFj
dGVyQ29tbWFuZCgnbScpOworICAgIHR5cGVDaGFyYWN0ZXJDb21tYW5kKCdlJyk7CisgICAgdHlw
ZUNoYXJhY3RlckNvbW1hbmQoJ3MnKTsKKyAgICB0eXBlQ2hhcmFjdGVyQ29tbWFuZCgnYScpOwor
ICAgIHR5cGVDaGFyYWN0ZXJDb21tYW5kKCdlJyk7CisgICAgdHlwZUNoYXJhY3RlckNvbW1hbmQo
J2cnKTsKKyAgICB0eXBlQ2hhcmFjdGVyQ29tbWFuZCgnZScpOworICAgIHR5cGVDaGFyYWN0ZXJD
b21tYW5kKCdlJyk7CisgICAgdHlwZUNoYXJhY3RlckNvbW1hbmQoJyAnKTsKKyAgICBleGVjTW92
ZVNlbGVjdGlvbkJhY2t3YXJkQnlDaGFyYWN0ZXJDb21tYW5kKCk7Cit9CisKKzwvc2NyaXB0Pgor
Cis8dGl0bGU+RGlzbWlzcyBNdWx0aXBsZSBHdWVzc2VzIFRlc3Q8L3RpdGxlPgorPC9oZWFkPgor
PGJvZHk+Cis8ZGl2PjxwPlRoaXMgdGVzdCB2ZXJpZmllcyB0aGF0IHByZXNzaW5nIEVTQyBrZXkg
ZGl1c21pc3NlcyBtdWx0aXBsZSBndWVzc2VzIHBhbmVsIGNvcnJlY3RseTwvcD4KKzxwPkFmdGVy
IHNlZWluZyB0aGUgcGFuZWwgd2l0aCBtdWx0aXBsZSBjYW5kaWRhdGVzLCBwcmVzc2luZyBFU0Mg
a2V5IHRvIGRpc21pc3MgdGhlIHBhbmVsLjwvcD4KKzxwICBzdHlsZT0iY29sb3I6Z3JlZW4iPk5v
dGUsIHRoaXMgdGVzdCBjYW4gZmFpbCBkdWUgdG8gdXNlciBzcGVjaWZpYyBzcGVsbCBjaGVja2lu
ZyBkYXRhLiBUbyBmaXggdGhpcywgcmVtb3ZlIGFsbCBmaWxlcyBpbiB+L0xpYnJhcnkvU3BlbGxp
bmcsIHRoZW4ga2lsbCBBcHBsZVNwZWxsLnNlcnZpY2UgcHJvY2Vzcy48L3A+Cis8ZGl2IGNvbnRl
bnRlZGl0YWJsZSBpZD0icm9vdCIgY2xhc3M9ImVkaXRpbmciPgorPHNwYW4gaWQ9InRlc3QiPjwv
c3Bhbj4KKzwvZGl2PgorCisKKzxzY3JpcHQ+CitydW5FZGl0aW5nVGVzdCgpOworPC9zY3JpcHQ+
CisKKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IFdlYkNvcmUvbWFudWFsLXRlc3RzL2F1dG9jb3Jy
ZWN0aW9uL3NlbGVjdC1mcm9tLW11bHRpcGxlLWd1ZXNzZXMuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL21hbnVhbC10ZXN0cy9hdXRvY29ycmVjdGlvbi9zZWxlY3QtZnJvbS1tdWx0aXBsZS1n
dWVzc2VzLmh0bWwJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL21hbnVhbC10ZXN0cy9hdXRvY29y
cmVjdGlvbi9zZWxlY3QtZnJvbS1tdWx0aXBsZS1ndWVzc2VzLmh0bWwJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsNDkgQEAKKzxodG1sPgorPGhlYWQ+CisKKzxzdHlsZT4KKy5lZGl0aW5nIHsKKyAg
ICBib3JkZXI6IDJweCBzb2xpZCByZWQ7CisgICAgcGFkZGluZzogMTJweDsKKyAgICBmb250LXNp
emU6IDI0cHg7Cit9Cis8L3N0eWxlPgorPHNjcmlwdCBzcmM9Li4vLi4vLi4vTGF5b3V0VGVzdHMv
ZWRpdGluZy9lZGl0aW5nLmpzIGxhbmd1YWdlPSJKYXZhU2NyaXB0IiB0eXBlPSJ0ZXh0L0phdmFT
Y3JpcHQiID48L3NjcmlwdD4KKworPHNjcmlwdD4KK2Z1bmN0aW9uIGVkaXRpbmdUZXN0KCkgewor
ICAgIHR5cGVDaGFyYWN0ZXJDb21tYW5kKCd0Jyk7CisgICAgdHlwZUNoYXJhY3RlckNvbW1hbmQo
J2gnKTsKKyAgICB0eXBlQ2hhcmFjdGVyQ29tbWFuZCgnZScpOworICAgIHR5cGVDaGFyYWN0ZXJD
b21tYW5kKCcgJyk7CisgICAgdHlwZUNoYXJhY3RlckNvbW1hbmQoJ20nKTsKKyAgICB0eXBlQ2hh
cmFjdGVyQ29tbWFuZCgnZScpOworICAgIHR5cGVDaGFyYWN0ZXJDb21tYW5kKCdzJyk7CisgICAg
dHlwZUNoYXJhY3RlckNvbW1hbmQoJ2EnKTsKKyAgICB0eXBlQ2hhcmFjdGVyQ29tbWFuZCgnZScp
OworICAgIHR5cGVDaGFyYWN0ZXJDb21tYW5kKCdnJyk7CisgICAgdHlwZUNoYXJhY3RlckNvbW1h
bmQoJ2UnKTsKKyAgICB0eXBlQ2hhcmFjdGVyQ29tbWFuZCgnZScpOworICAgIHR5cGVDaGFyYWN0
ZXJDb21tYW5kKCcgJyk7CisgICAgZXhlY01vdmVTZWxlY3Rpb25CYWNrd2FyZEJ5Q2hhcmFjdGVy
Q29tbWFuZCgpOworfQorCis8L3NjcmlwdD4KKworPHRpdGxlPlNlbGVjdCBGcm9tIE11bHRpcGxl
IEd1ZXNzZXMgVGVzdDwvdGl0bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXY+PHA+VGhpcyB0ZXN0
IHZlcmlmaWVzIHRoYXQgbXVsdGlwbGUgZ3Vlc3NlcyBvbiBtaXNwZWxsZWQgd29yZCBpcyB3b3Jr
aW5nIGNvcnJlY3RseTwvcD4KKzxwPkFmdGVyIHNlZWluZyB0aGUgcGFuZWwgd2l0aCBtdWx0aXBs
ZSBjYW5kaWRhdGVzLCB1c2UgbGVmdCBhbmQvb3IgcmlnaHQgYXJyb3cga2V5IHRvIHNlbGVjdCB0
aGUgZGVzaXJlZCBjYW5kaWRhdGUsIGFuZCB0aGVuIHVzZSByZXR1cm4ga2V5IHRvIGNvbmZpcm0u
IFlvdSBjYW4gYWxzbyB1c2UgdGhpcyB0ZXN0IHRvIHRlc3QgdGhhdCBwcmVzc2luZyBFU0Mga2V5
IHdpbGwgZGlzbWlzcyB0aGUgcGFuZWwuPC9wPgorPHAgIHN0eWxlPSJjb2xvcjpncmVlbiI+Tm90
ZSwgdGhpcyB0ZXN0IGNhbiBmYWlsIGR1ZSB0byB1c2VyIHNwZWNpZmljIHNwZWxsIGNoZWNraW5n
IGRhdGEuIFRvIGZpeCB0aGlzLCByZW1vdmUgYWxsIGZpbGVzIGluIH4vTGlicmFyeS9TcGVsbGlu
ZywgdGhlbiBraWxsIEFwcGxlU3BlbGwuc2VydmljZSBwcm9jZXNzLjwvcD4KKzxkaXYgY29udGVu
dGVkaXRhYmxlIGlkPSJyb290IiBjbGFzcz0iZWRpdGluZyI+Cis8c3BhbiBpZD0idGVzdCI+PC9z
cGFuPgorPC9kaXY+CisKKworPHNjcmlwdD4KK3J1bkVkaXRpbmdUZXN0KCk7Cis8L3NjcmlwdD4K
KworPC9ib2R5PgorPC9odG1sPgpJbmRleDogV2ViQ29yZS9wYWdlL0VkaXRvckNsaWVudC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9FZGl0b3JDbGllbnQuaAkocmV2aXNpb24gNzI4MjUp
CisrKyBXZWJDb3JlL3BhZ2UvRWRpdG9yQ2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTE5MCw3
ICsxOTAsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogI2lmIFNVUFBPUlRfQVVUT0NPUlJFQ1RJT05f
UEFORUwKLSAgICB2aXJ0dWFsIHZvaWQgc2hvd0NvcnJlY3Rpb25QYW5lbChDb3JyZWN0aW9uUGFu
ZWxJbmZvOjpQYW5lbFR5cGUsIGNvbnN0IEZsb2F0UmVjdCYgYm91bmRpbmdCb3hPZlJlcGxhY2Vk
U3RyaW5nLCBjb25zdCBTdHJpbmcmIHJlcGxhY2VkU3RyaW5nLCBjb25zdCBTdHJpbmcmIHJlcGxh
Y21lbnRTdHJpbmcsIEVkaXRvciopID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2hvd0NvcnJlY3Rp
b25QYW5lbChDb3JyZWN0aW9uUGFuZWxJbmZvOjpQYW5lbFR5cGUsIGNvbnN0IEZsb2F0UmVjdCYg
Ym91bmRpbmdCb3hPZlJlcGxhY2VkU3RyaW5nLCBjb25zdCBTdHJpbmcmIHJlcGxhY2VkU3RyaW5n
LCBjb25zdCBTdHJpbmcmIHJlcGxhY21lbnRTdHJpbmcsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBh
bHRlcm5hdGl2ZVJlcGxhY2VtZW50U3RyaW5ncywgRWRpdG9yKikgPSAwOwogICAgIHZpcnR1YWwg
dm9pZCBkaXNtaXNzQ29ycmVjdGlvblBhbmVsKENvcnJlY3Rpb25XYXNSZWplY3RlZE9yTm90KSA9
IDA7CiAgICAgdmlydHVhbCBib29sIGlzU2hvd2luZ0NvcnJlY3Rpb25QYW5lbCgpID0gMDsKICNl
bmRpZgpAQCAtMTk5LDcgKzE5OSw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRl
U3BlbGxpbmdVSVdpdGhNaXNzcGVsbGVkV29yZChjb25zdCBTdHJpbmcmKSA9IDA7CiAgICAgdmly
dHVhbCB2b2lkIHNob3dTcGVsbGluZ1VJKGJvb2wgc2hvdykgPSAwOwogICAgIHZpcnR1YWwgYm9v
bCBzcGVsbGluZ1VJSXNTaG93aW5nKCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBnZXRHdWVzc2Vz
Rm9yV29yZChjb25zdCBTdHJpbmcmLCBWZWN0b3I8U3RyaW5nPiYgZ3Vlc3NlcykgPSAwOworICAg
IC8vIEZvciBzcGVsbGNoZWNrZXJzIHRoYXQgc3VwcG9ydCBtdWx0aXBsZSBsYW5ndWFnZXMsIGl0
J3Mgb2Z0ZW4gaW1wb3J0YW50IHRvIGJlIGFibGUgdG8gaWRlbnRpZnkgdGhlIGxhbmd1YWdlIGlu
IG9yZGVyIHRvIHByb3ZpZGUgbW9yZSBhY2N1cmF0ZSBjb3JyZWN0aW9uIHN1Z2dlc3Rpb25zLiBD
YWxsZXIgY2FuIHBhc3MgaW4gbW9yZSB0ZXh0IGluICJjb250ZXh0IiB0byBhaWQgc3VjaCBzcGVs
bGNoZWNrZXJzIG9uIGxhbmd1YWdlIGlkZW50aWZpY2F0aW9uLiBOb3JhbWxseSBpdCdzIHRoZSB0
ZXh0IHN1cnJvdW5kaW5nIHRoZSAid29yZCIgZm9yIHdoaWNoIHdlIGFyZSBnZXR0aW5nIGNvcnJl
Y3Rpb24gc3VnZ2VzdGlvbnMuCisgICAgdmlydHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNv
bnN0IFN0cmluZyYgd29yZCwgY29uc3QgU3RyaW5nJiBjb250ZXh0LCBWZWN0b3I8U3RyaW5nPiYg
Z3Vlc3NlcykgPSAwOwogICAgIHZpcnR1YWwgdm9pZCB3aWxsU2V0SW5wdXRNZXRob2RTdGF0ZSgp
ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5wdXRNZXRob2RTdGF0ZShib29sIGVuYWJsZWQp
ID0gMDsKIH07CkluZGV4OiBXZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQy
L0NoYW5nZUxvZwkocmV2aXNpb24gNzI4MjUpCisrKyBXZWJLaXQyL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDEwLTExLTI5ICBKaWEgUHUgIDxqcHVAYXBwbGUu
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN1
cHBvcnQgbXVsdGlwbGUgY29ycmVjdGlvbiBjYW5kaWRhdGVzIHBhbmVsIGZvciBtaXNzcGVsbGVk
IHdvcmQgb24gTWFjIE9TIFguCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD01MDEzNworICAgICAgICA8cmRhcjovL3Byb2JsZW0vODU2ODA1OT4KKworICAg
ICAgICBBZG9wdGVkIG5ldyBmdW5jdGlvbiBzaWduYXR1cmVzIGRlZmluZWQgaW4gYmFzZSBjbGFz
cy4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRWRpdG9yQ2xpZW50OjpnZXRHdWVzc2VzRm9yV29y
ZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQu
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJFZGl0b3JDbGll
bnRNYWMubW06CisgICAgICAgIChXZWJLaXQ6OldlYkVkaXRvckNsaWVudDo6c2hvd0NvcnJlY3Rp
b25QYW5lbCk6CisKIDIwMTAtMTEtMjkgIEJhbGF6cyBLZWxlbWVuICA8a2JhbGF6c0B3ZWJraXQu
b3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gUm9iZW4uCkluZGV4OiBXZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcAko
cmV2aXNpb24gNzI4MjUpCisrKyBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
RWRpdG9yQ2xpZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzkzLDcgKzM5Myw3IEBAIGJvb2wg
V2ViRWRpdG9yQ2xpZW50OjpzcGVsbGluZ1VJSXNTaG93aW4KICAgICByZXR1cm4gZmFsc2U7CiB9
CiAKLXZvaWQgV2ViRWRpdG9yQ2xpZW50OjpnZXRHdWVzc2VzRm9yV29yZChjb25zdCBTdHJpbmcm
LCBWZWN0b3I8U3RyaW5nPiYpCit2b2lkIFdlYkVkaXRvckNsaWVudDo6Z2V0R3Vlc3Nlc0Zvcldv
cmQoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgVmVjdG9yPFN0cmluZz4mKQogewogICAg
IG5vdEltcGxlbWVudGVkKCk7CiB9CkluZGV4OiBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCShyZXZpc2lvbiA3MjgyNSkKKysrIFdl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMTMwLDExICsxMzAsMTEgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQg
dXBkYXRlU3BlbGxpbmdVSVdpdGhNaXNzcGVsbGVkV29yZChjb25zdCBTdHJpbmcmKTsKICAgICB2
aXJ0dWFsIHZvaWQgc2hvd1NwZWxsaW5nVUkoYm9vbCBzaG93KTsKICAgICB2aXJ0dWFsIGJvb2wg
c3BlbGxpbmdVSUlzU2hvd2luZygpOwotICAgIHZpcnR1YWwgdm9pZCBnZXRHdWVzc2VzRm9yV29y
ZChjb25zdCBTdHJpbmcmLCBWZWN0b3I8U3RyaW5nPiYgZ3Vlc3Nlcyk7CisgICAgdmlydHVhbCB2
b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYgd29yZCwgY29uc3QgU3RyaW5nJiBj
b250ZXh0LCBWZWN0b3I8U3RyaW5nPiYgZ3Vlc3Nlcyk7CiAgICAgdmlydHVhbCB2b2lkIHdpbGxT
ZXRJbnB1dE1ldGhvZFN0YXRlKCk7CiAgICAgdmlydHVhbCB2b2lkIHNldElucHV0TWV0aG9kU3Rh
dGUoYm9vbCBlbmFibGVkKTsKICNpZiBQTEFURk9STShNQUMpICYmICFkZWZpbmVkKEJVSUxESU5H
X09OX1RJR0VSKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChC
VUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCi0gICAgdmlydHVhbCB2b2lkIHNob3dDb3JyZWN0aW9u
UGFuZWwoV2ViQ29yZTo6Q29ycmVjdGlvblBhbmVsSW5mbzo6UGFuZWxUeXBlLCBjb25zdCBXZWJD
b3JlOjpGbG9hdFJlY3QmIGJvdW5kaW5nQm94T2ZSZXBsYWNlZFN0cmluZywgY29uc3QgU3RyaW5n
JiByZXBsYWNlZFN0cmluZywgY29uc3QgU3RyaW5nJiByZXBsYWNlbWVudFN0cmluZywgV2ViQ29y
ZTo6RWRpdG9yKik7CisgICAgdmlydHVhbCB2b2lkIHNob3dDb3JyZWN0aW9uUGFuZWwoV2ViQ29y
ZTo6Q29ycmVjdGlvblBhbmVsSW5mbzo6UGFuZWxUeXBlLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJl
Y3QmIGJvdW5kaW5nQm94T2ZSZXBsYWNlZFN0cmluZywgY29uc3QgU3RyaW5nJiByZXBsYWNlZFN0
cmluZywgY29uc3QgU3RyaW5nJiByZXBsYWNlbWVudFN0cmluZywgY29uc3QgVmVjdG9yPFN0cmlu
Zz4mIGFsdGVybmF0aXZlUmVwbGFjZW1lbnRTdHJpbmdzLCBXZWJDb3JlOjpFZGl0b3IqKTsKICAg
ICB2aXJ0dWFsIHZvaWQgZGlzbWlzc0NvcnJlY3Rpb25QYW5lbChXZWJDb3JlOjpDb3JyZWN0aW9u
V2FzUmVqZWN0ZWRPck5vdCk7CiAgICAgdmlydHVhbCBib29sIGlzU2hvd2luZ0NvcnJlY3Rpb25Q
YW5lbCgpOwogI2VuZGlmCkluZGV4OiBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
bWFjL1dlYkVkaXRvckNsaWVudE1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkVkaXRvckNsaWVudE1hYy5tbQkocmV2aXNpb24gNzI4
MjUpCisrKyBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkVkaXRvckNs
aWVudE1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtMjIzLDcgKzIyMyw3IEBAIHZvaWQgV2ViRWRp
dG9yQ2xpZW50OjpjaGVja1RleHRPZlBhcmFncmEKICNlbmRpZgogCiAjaWYgIWRlZmluZWQoQlVJ
TERJTkdfT05fVElHRVIpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZp
bmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKLXZvaWQgV2ViRWRpdG9yQ2xpZW50OjpzaG93
Q29ycmVjdGlvblBhbmVsKFdlYkNvcmU6OkNvcnJlY3Rpb25QYW5lbEluZm86OlBhbmVsVHlwZSB0
eXBlLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGJvdW5kaW5nQm94T2ZSZXBsYWNlZFN0cmlu
ZywgY29uc3QgV1RGOjpTdHJpbmcmIHJlcGxhY2VkU3RyaW5nLCBjb25zdCBXVEY6OlN0cmluZyYg
cmVwbGFjZW1lbnRTdHJpbmcsIFdlYkNvcmU6OkVkaXRvciopCit2b2lkIFdlYkVkaXRvckNsaWVu
dDo6c2hvd0NvcnJlY3Rpb25QYW5lbChXZWJDb3JlOjpDb3JyZWN0aW9uUGFuZWxJbmZvOjpQYW5l
bFR5cGUgdHlwZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBib3VuZGluZ0JveE9mUmVwbGFj
ZWRTdHJpbmcsIGNvbnN0IFdURjo6U3RyaW5nJiByZXBsYWNlZFN0cmluZywgY29uc3QgV1RGOjpT
dHJpbmcmIHJlcGxhY2VtZW50U3RyaW5nLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgYWx0ZXJuYXRp
dmVSZXBsYWNlbWVudFN0cmluZ3MsIFdlYkNvcmU6OkVkaXRvciopCiB7CiAgICAgbm90SW1wbGVt
ZW50ZWQoKTsKIH0KSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gNzI4MjUpCisrKyBXZWJLaXQv
Y2hyb21pdW0vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTAt
MTEtMjkgIEppYSBQdSAgPGpwdUBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgU3VwcG9ydCBtdWx0aXBsZSBjb3JyZWN0aW9uIGNhbmRp
ZGF0ZXMgcGFuZWwgZm9yIG1pc3NwZWxsZWQgd29yZCBvbiBNYWMgT1MgWC4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUwMTM3CisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS84NTY4MDU5PgorCisgICAgICAgIEFkb3B0ZWQgbmV3IGZ1bmN0aW9uIHNpZ25h
dHVyZSBkZWZpbmVkIGluIGJhc2UgY2xhc3MuCisKKyAgICAgICAgKiBzcmMvRWRpdG9yQ2xpZW50
SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudEltcGw6OmdldEd1ZXNzZXNG
b3JXb3JkKToKKyAgICAgICAgKiBzcmMvRWRpdG9yQ2xpZW50SW1wbC5oOgorCiAyMDEwLTExLTI5
ICBBbmRyZXkgS29zeWFrb3YgIDxjYXNlcUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgRGFyaW4gRmlzaGVyLgpJbmRleDogV2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGll
bnRJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRvckNsaWVu
dEltcGwuY3BwCShyZXZpc2lvbiA3MjgyNSkKKysrIFdlYktpdC9jaHJvbWl1bS9zcmMvRWRpdG9y
Q2xpZW50SW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTkyOSw3ICs5MjksOCBAQCBib29sIEVk
aXRvckNsaWVudEltcGw6OnNwZWxsaW5nVUlJc1Nob3dpCiAgICAgcmV0dXJuIGZhbHNlOwogfQog
Ci12b2lkIEVkaXRvckNsaWVudEltcGw6OmdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYs
Cit2b2lkIEVkaXRvckNsaWVudEltcGw6OmdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYg
d29yZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU3Ry
aW5nJiBjb250ZXh0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBX
VEY6OlZlY3RvcjxTdHJpbmc+JiBndWVzc2VzKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7Cklu
ZGV4OiBXZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRvckNsaWVudEltcGwuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRvckNsaWVudEltcGwuaAkocmV2aXNpb24gNzI4MjUp
CisrKyBXZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRvckNsaWVudEltcGwuaAkod29ya2luZyBjb3B5
KQpAQCAtMTA3LDYgKzEwNyw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2hvd1NwZWxs
aW5nVUkoYm9vbCBzaG93KTsKICAgICB2aXJ0dWFsIGJvb2wgc3BlbGxpbmdVSUlzU2hvd2luZygp
OwogICAgIHZpcnR1YWwgdm9pZCBnZXRHdWVzc2VzRm9yV29yZChjb25zdCBXVEY6OlN0cmluZyYg
d29yZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgV1RGOjpTdHJp
bmcmIGNvbnRleHQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdURjo6VmVj
dG9yPFdURjo6U3RyaW5nPiYgZ3Vlc3Nlcyk7CiAgICAgdmlydHVhbCB2b2lkIHdpbGxTZXRJbnB1
dE1ldGhvZFN0YXRlKCk7CiAgICAgdmlydHVhbCB2b2lkIHNldElucHV0TWV0aG9kU3RhdGUoYm9v
bCBlbmFibGVkKTsKSW5kZXg6IFdlYktpdC9lZmwvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YktpdC9lZmwvQ2hhbmdlTG9nCShyZXZpc2lvbiA3MjgyNSkKKysrIFdlYktpdC9lZmwvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTAtMTEtMjkgIEppYSBQdSAg
PGpwdUBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgU3VwcG9ydCBtdWx0aXBsZSBjb3JyZWN0aW9uIGNhbmRpZGF0ZXMgcGFuZWwgZm9y
IG1pc3NwZWxsZWQgd29yZCBvbiBNYWMgT1MgWC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTUwMTM3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NTY4
MDU5PgorCisgICAgICAgIEFkb3B0ZWQgbmV3IGZ1bmN0aW9uIHNpZ25hdHVyZSBkZWZpbmVkIGlu
IGJhc2UgY2xhc3MuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRFZmwu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50RWZsOjpnZXRHdWVzc2VzRm9yV29y
ZCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50RWZsLmg6CisKIDIwMTAt
MTEtMjIgIEFsZXggR3JpbG8gIDxhYmdyaWxvQHByb2Z1c2lvbi5tb2JpPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuLgpJbmRleDogV2ViS2l0L2VmbC9X
ZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRFZmwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9l
ZmwvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50RWZsLmNwcAkocmV2aXNpb24gNzI4MjUpCisr
KyBXZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEVmbC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTQ4OCw3ICs0ODgsNyBAQCBib29sIEVkaXRvckNsaWVudEVmbDo6c3BlbGxpbmdV
SUlzU2hvd2luCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi12b2lkIEVkaXRvckNsaWVudEVmbDo6
Z2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgU3RyaW5nJiwgVmVjdG9yPFN0cmluZz4mKQordm9pZCBF
ZGl0b3JDbGllbnRFZmw6OmdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYgd29yZCwgY29u
c3QgU3RyaW5nJiBjb250ZXh0LCBWZWN0b3I8U3RyaW5nPiYgZ3Vlc3NlcykKIHsKICAgICBub3RJ
bXBsZW1lbnRlZCgpOwogfQpJbmRleDogV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JD
bGllbnRFZmwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0VkaXRv
ckNsaWVudEVmbC5oCShyZXZpc2lvbiA3MjgyNSkKKysrIFdlYktpdC9lZmwvV2ViQ29yZVN1cHBv
cnQvRWRpdG9yQ2xpZW50RWZsLmgJKHdvcmtpbmcgY29weSkKQEAgLTExMCw3ICsxMTAsNyBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVNwZWxsaW5nVUlXaXRoTWlzc3BlbGxlZFdv
cmQoY29uc3QgU3RyaW5nJik7CiAgICAgdmlydHVhbCB2b2lkIHNob3dTcGVsbGluZ1VJKGJvb2wg
c2hvdyk7CiAgICAgdmlydHVhbCBib29sIHNwZWxsaW5nVUlJc1Nob3dpbmcoKTsKLSAgICB2aXJ0
dWFsIHZvaWQgZ2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgU3RyaW5nJiwgV1RGOjpWZWN0b3I8U3Ry
aW5nPiYgZ3Vlc3Nlcyk7CisgICAgdmlydHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0
IFN0cmluZyYgd29yZCwgY29uc3QgU3RyaW5nJiBjb250ZXh0LCBXVEY6OlZlY3RvcjxTdHJpbmc+
JiBndWVzc2VzKTsKICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNldElucHV0TWV0aG9kU3RhdGUoKTsK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5wdXRNZXRob2RTdGF0ZShib29sIGVuYWJsZWQpOwogCklu
ZGV4OiBXZWJLaXQvZ3RrL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL0NoYW5n
ZUxvZwkocmV2aXNpb24gNzI4MjUpCisrKyBXZWJLaXQvZ3RrL0NoYW5nZUxvZwkod29ya2luZyBj
b3B5KQpAQCAtMSwzICsxLDE3IEBACisyMDEwLTExLTI5ICBKaWEgUHUgIDxqcHVAYXBwbGUuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN1cHBv
cnQgbXVsdGlwbGUgY29ycmVjdGlvbiBjYW5kaWRhdGVzIHBhbmVsIGZvciBtaXNzcGVsbGVkIHdv
cmQgb24gTWFjIE9TIFguCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD01MDEzNworICAgICAgICA8cmRhcjovL3Byb2JsZW0vODU2ODA1OT4KKworICAgICAg
ICBBZG9wdGVkIG5ldyBmdW5jdGlvbiBzaWduYXR1cmUgZGVmaW5lZCBpbiBiYXNlIGNsYXNzLgor
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6RWRpdG9yQ2xpZW50OjpnZXRHdWVzc2VzRm9yV29yZCk6CisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmg6CisKIDIwMTAtMTEtMjkgIENhcmxvcyBHYXJj
aWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFhh
biBMb3Blei4KSW5kZXg6IFdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3Rr
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVu
dEd0ay5jcHAJKHJldmlzaW9uIDcyODI1KQorKysgV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9F
ZGl0b3JDbGllbnRHdGsuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDA4LDcgKzEwMDgsNyBAQCBi
b29sIEVkaXRvckNsaWVudDo6c3BlbGxpbmdVSUlzU2hvd2luZygpCiAgICAgcmV0dXJuIGZhbHNl
OwogfQogCi12b2lkIEVkaXRvckNsaWVudDo6Z2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgU3RyaW5n
JiB3b3JkLCBXVEY6OlZlY3RvcjxTdHJpbmc+JiBndWVzc2VzKQorICAgIHZvaWQgRWRpdG9yQ2xp
ZW50OjpnZXRHdWVzc2VzRm9yV29yZChjb25zdCBTdHJpbmcmIHdvcmQsIGNvbnN0IFN0cmluZyYg
Y29udGV4dCwgV1RGOjpWZWN0b3I8U3RyaW5nPiYgZ3Vlc3NlcykKIHsKICAgICBHU0xpc3QqIGRp
Y3RzID0gd2Via2l0X3dlYl9zZXR0aW5nc19nZXRfZW5jaGFudF9kaWN0cyhtX3dlYlZpZXcpOwog
ICAgIGd1ZXNzZXMuY2xlYXIoKTsKSW5kZXg6IFdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRWRp
dG9yQ2xpZW50R3RrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9F
ZGl0b3JDbGllbnRHdGsuaAkocmV2aXNpb24gNzI4MjUpCisrKyBXZWJLaXQvZ3RrL1dlYkNvcmVT
dXBwb3J0L0VkaXRvckNsaWVudEd0ay5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMjksNyArMTI5LDcg
QEAgbmFtZXNwYWNlIFdlYktpdCB7CiAgICAgICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVTcGVsbGlu
Z1VJV2l0aE1pc3NwZWxsZWRXb3JkKGNvbnN0IFdURjo6U3RyaW5nJik7CiAgICAgICAgIHZpcnR1
YWwgdm9pZCBzaG93U3BlbGxpbmdVSShib29sIHNob3cpOwogICAgICAgICB2aXJ0dWFsIGJvb2wg
c3BlbGxpbmdVSUlzU2hvd2luZygpOwotICAgICAgICB2aXJ0dWFsIHZvaWQgZ2V0R3Vlc3Nlc0Zv
cldvcmQoY29uc3QgV1RGOjpTdHJpbmcmLCBXVEY6OlZlY3RvcjxXVEY6OlN0cmluZz4mIGd1ZXNz
ZXMpOworICAgICAgICB2aXJ0dWFsIHZvaWQgZ2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgV1RGOjpT
dHJpbmcmIHdvcmQsIGNvbnN0IFdURjo6U3RyaW5nJiBjb250ZXh0LCBXVEY6OlZlY3RvcjxXVEY6
OlN0cmluZz4mIGd1ZXNzZXMpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNldElucHV0TWV0
aG9kU3RhdGUoKTsKICAgICAgICAgdmlydHVhbCB2b2lkIHNldElucHV0TWV0aG9kU3RhdGUoYm9v
bCBlbmFibGVkKTsKIApJbmRleDogV2ViS2l0L2hhaWt1L0NoYW5nZUxvZwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJLaXQvaGFpa3UvQ2hhbmdlTG9nCShyZXZpc2lvbiA3MjgyNSkKKysrIFdlYktpdC9oYWlr
dS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNyBAQAorMjAxMC0xMS0yOSAg
SmlhIFB1ICA8anB1QGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBTdXBwb3J0IG11bHRpcGxlIGNvcnJlY3Rpb24gY2FuZGlkYXRlcyBw
YW5lbCBmb3IgbWlzc3BlbGxlZCB3b3JkIG9uIE1hYyBPUyBYLgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTAxMzcKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzg1NjgwNTk+CisKKyAgICAgICAgQWRvcHRlZCBuZXcgZnVuY3Rpb24gc2lnbmF0dXJlIGRl
ZmluZWQgaW4gYmFzZSBjbGFzcy4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNs
aWVudEhhaWt1LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVudEhhaWt1OjpnZXRH
dWVzc2VzRm9yV29yZCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50SGFp
a3UuaDoKKwogMjAxMC0xMS0wOCAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4K
IAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KSW5kZXg6IFdlYktpdC9oYWlrdS9X
ZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRIYWlrdS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0
L2hhaWt1L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEhhaWt1LmNwcAkocmV2aXNpb24gNzI4
MjUpCisrKyBXZWJLaXQvaGFpa3UvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50SGFpa3UuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC00NjEsNyArNDYxLDcgQEAgYm9vbCBFZGl0b3JDbGllbnRIYWlr
dTo6c3BlbGxpbmdVSUlzU2hvdwogICAgIHJldHVybiBmYWxzZTsKIH0KIAotdm9pZCBFZGl0b3JD
bGllbnRIYWlrdTo6Z2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgU3RyaW5nJiwgVmVjdG9yPFN0cmlu
Zz4mKQordm9pZCBFZGl0b3JDbGllbnRIYWlrdTo6Z2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgU3Ry
aW5nJiB3b3JkLCBjb25zdCBTdHJpbmcmIGNvbnRleHQsIFZlY3RvcjxTdHJpbmc+JiBndWVzc2Vz
KQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CkluZGV4OiBXZWJLaXQvaGFpa3UvV2ViQ29y
ZVN1cHBvcnQvRWRpdG9yQ2xpZW50SGFpa3UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvaGFpa3Uv
V2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50SGFpa3UuaAkocmV2aXNpb24gNzI4MjUpCisrKyBX
ZWJLaXQvaGFpa3UvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50SGFpa3UuaAkod29ya2luZyBj
b3B5KQpAQCAtMTA3LDcgKzEwNyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmly
dHVhbCB2b2lkIHVwZGF0ZVNwZWxsaW5nVUlXaXRoTWlzc3BlbGxlZFdvcmQoY29uc3QgU3RyaW5n
Jik7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBzaG93U3BlbGxpbmdVSShib29sIHNob3cpOwogICAg
ICAgICB2aXJ0dWFsIGJvb2wgc3BlbGxpbmdVSUlzU2hvd2luZygpOwotICAgICAgICB2aXJ0dWFs
IHZvaWQgZ2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgU3RyaW5nJiwgVmVjdG9yPFN0cmluZz4mIGd1
ZXNzZXMpOworICAgICAgICB2aXJ0dWFsIHZvaWQgZ2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgU3Ry
aW5nJiB3b3JkLCBjb25zdCBTdHJpbmcmIGNvbnRleHQsIFZlY3RvcjxTdHJpbmc+JiBndWVzc2Vz
KTsKICAgICAgICAgdmlydHVhbCB2b2lkIHdpbGxTZXRJbnB1dE1ldGhvZFN0YXRlKCk7CiAgICAg
ICAgIHZpcnR1YWwgdm9pZCBzZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wgZW5hYmxlZCk7CiAKSW5k
ZXg6IFdlYktpdC9tYWMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9tYWMvQ2hhbmdl
TG9nCShyZXZpc2lvbiA3MjgyNSkKKysrIFdlYktpdC9tYWMvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTAtMTEtMjkgIEppYSBQdSAgPGpwdUBhcHBsZS5jb20+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3VwcG9y
dCBtdWx0aXBsZSBjb3JyZWN0aW9uIGNhbmRpZGF0ZXMgcGFuZWwgZm9yIG1pc3NwZWxsZWQgd29y
ZCBvbiBNYWMgT1MgWC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTUwMTM3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NTY4MDU5PgorCisgICAgICAg
IFRoaXMgcGF0Y2ggaXMgZm9yIHN1cHBvcnRpbmcgbXVsdGlwbGUgY29ycmVjdGlvbiBzdWdnZXN0
aW9uIHBhbmVsIG9uIE1hYyBPUyBYLgorICAgICAgICBUaGUgYmVoYXZpb3IgYW5kIGltcGxlbWVu
dGF0aW9uIGlzIHNpbWlsYXIgdG8gdGhhdCBvZiByZXZlcnNpb24gY2FuZGlhdGUgcGFuZWwuCisK
KyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaDogQWRvcHRlZCBuZXcg
c2lnbmF0dXJlcyBkZWZpbmVkIGluIGJhc2UgY2xhc3MuCisKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9XZWJFZGl0b3JDbGllbnQubW06ICBBZG9wdGVkIG5ldyBzaWduYXR1cmVzIGRlZmluZWQg
aW4gYmFzZSBjbGFzcy4KKyAgICAgICAgICBBZGRlZCBjb2RlIHRvIGhhbmRsZSBuZXcgbXVsdGlw
bGUgc3VnZ2VzdGlvbiBjYW5pZGF0ZSBwYW5lbCB0eXBlLgorICAgICAgICAoV2ViRWRpdG9yQ2xp
ZW50OjpzaG93Q29ycmVjdGlvblBhbmVsKToKKyAgICAgICAgKFdlYkVkaXRvckNsaWVudDo6Z2V0
R3Vlc3Nlc0ZvcldvcmQpOgorCiAyMDEwLTExLTIyICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJr
aXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFRvbnkgQ2hhbmcuCkluZGV4OiBXZWJLaXQv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktp
dC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgJKHJldmlzaW9uIDcyODI1KQor
KysgV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAkod29ya2luZyBj
b3B5KQpAQCAtMTI5LDExICsxMjksMTEgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCB1cGRh
dGVTcGVsbGluZ1VJV2l0aE1pc3NwZWxsZWRXb3JkKGNvbnN0IFdURjo6U3RyaW5nJik7CiAgICAg
dmlydHVhbCB2b2lkIHNob3dTcGVsbGluZ1VJKGJvb2wgc2hvdyk7CiAgICAgdmlydHVhbCBib29s
IHNwZWxsaW5nVUlJc1Nob3dpbmcoKTsKLSAgICB2aXJ0dWFsIHZvaWQgZ2V0R3Vlc3Nlc0Zvcldv
cmQoY29uc3QgV1RGOjpTdHJpbmcmLCBXVEY6OlZlY3RvcjxXVEY6OlN0cmluZz4mIGd1ZXNzZXMp
OworICAgIHZpcnR1YWwgdm9pZCBnZXRHdWVzc2VzRm9yV29yZChjb25zdCBXVEY6OlN0cmluZyYg
d29yZCwgY29uc3QgV1RGOjpTdHJpbmcmIGNvbnRleHQsIFdURjo6VmVjdG9yPFdURjo6U3RyaW5n
PiYgZ3Vlc3Nlcyk7CiAgICAgdmlydHVhbCB2b2lkIHdpbGxTZXRJbnB1dE1ldGhvZFN0YXRlKCk7
CiAgICAgdmlydHVhbCB2b2lkIHNldElucHV0TWV0aG9kU3RhdGUoYm9vbCBlbmFibGVkKTsKICNp
ZiAhZGVmaW5lZChCVUlMRElOR19PTl9USUdFUikgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVP
UEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQotICAgIHZpcnR1YWwg
dm9pZCBzaG93Q29ycmVjdGlvblBhbmVsKFdlYkNvcmU6OkNvcnJlY3Rpb25QYW5lbEluZm86OlBh
bmVsVHlwZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBib3VuZGluZ0JveE9mUmVwbGFjZWRT
dHJpbmcsIGNvbnN0IFdURjo6U3RyaW5nJiByZXBsYWNlZFN0cmluZywgY29uc3QgV1RGOjpTdHJp
bmcmIHJlcGxhY2VtZW50U3RyaW5nLCBXZWJDb3JlOjpFZGl0b3IqKTsKKyAgICB2aXJ0dWFsIHZv
aWQgc2hvd0NvcnJlY3Rpb25QYW5lbChXZWJDb3JlOjpDb3JyZWN0aW9uUGFuZWxJbmZvOjpQYW5l
bFR5cGUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgYm91bmRpbmdCb3hPZlJlcGxhY2VkU3Ry
aW5nLCBjb25zdCBXVEY6OlN0cmluZyYgcmVwbGFjZWRTdHJpbmcsIGNvbnN0IFdURjo6U3RyaW5n
JiByZXBsYWNlbWVudFN0cmluZywgY29uc3QgV1RGOjpWZWN0b3I8V1RGOjpTdHJpbmc+JiBhbHRl
cm5hdGl2ZVJlcGxhY2VtZW50U3RyaW5ncywgV2ViQ29yZTo6RWRpdG9yKik7CiAgICAgdmlydHVh
bCB2b2lkIGRpc21pc3NDb3JyZWN0aW9uUGFuZWwoV2ViQ29yZTo6Q29ycmVjdGlvbldhc1JlamVj
dGVkT3JOb3QpOwogICAgIHZpcnR1YWwgYm9vbCBpc1Nob3dpbmdDb3JyZWN0aW9uUGFuZWwoKTsK
ICNlbmRpZgpJbmRleDogV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQu
bW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGll
bnQubW0JKHJldmlzaW9uIDcyODI1KQorKysgV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJF
ZGl0b3JDbGllbnQubW0JKHdvcmtpbmcgY29weSkKQEAgLTc3LDYgKzc3LDIwIEBAIHVzaW5nIG5h
bWVzcGFjZSBXVEY7CiAKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKK3N0YXRpYyBOU0Nv
cnJlY3Rpb25CdWJibGVUeXBlIGNvcnJlY3Rpb25CdWJibGVUeXBlRm9yQ29ycmVjdGlvblBhbmVs
VHlwZShDb3JyZWN0aW9uUGFuZWxJbmZvOjpQYW5lbFR5cGUgcGFuZWxUeXBlKQoreworICAgIHN3
aXRjaCAocGFuZWxUeXBlKSB7CisgICAgY2FzZSBDb3JyZWN0aW9uUGFuZWxJbmZvOjpQYW5lbFR5
cGVDb3JyZWN0aW9uOgorICAgICAgICByZXR1cm4gTlNDb3JyZWN0aW9uQnViYmxlVHlwZUNvcnJl
Y3Rpb247CisgICAgY2FzZSBDb3JyZWN0aW9uUGFuZWxJbmZvOjpQYW5lbFR5cGVSZXZlcnNpb246
CisgICAgICAgIHJldHVybiBOU0NvcnJlY3Rpb25CdWJibGVUeXBlUmV2ZXJzaW9uOworICAgIGNh
c2UgQ29ycmVjdGlvblBhbmVsSW5mbzo6UGFuZWxUeXBlU3BlbGxpbmdTdWdnZXN0aW9uczoKKyAg
ICAgICAgcmV0dXJuIE5TQ29ycmVjdGlvbkJ1YmJsZVR5cGVHdWVzc2VzOworICAgIH0KKyAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gTlNDb3JyZWN0aW9uQnViYmxlVHlwZUNv
cnJlY3Rpb247Cit9CisKIEBpbnRlcmZhY2UgTlNBdHRyaWJ1dGVkU3RyaW5nIChXZWJOU0F0dHJp
YnV0ZWRTdHJpbmdEZXRhaWxzKQogLSAoaWQpX2luaXRXaXRoRE9NUmFuZ2U6KERPTVJhbmdlKily
YW5nZTsKIC0gKERPTURvY3VtZW50RnJhZ21lbnQqKV9kb2N1bWVudEZyb21SYW5nZTooTlNSYW5n
ZSlyYW5nZSBkb2N1bWVudDooRE9NRG9jdW1lbnQqKWRvY3VtZW50IGRvY3VtZW50QXR0cmlidXRl
czooTlNEaWN0aW9uYXJ5ICopZGljdCBzdWJyZXNvdXJjZXM6KE5TQXJyYXkgKiopc3VicmVzb3Vy
Y2VzOwpAQCAtODU2LDcgKzg3MCw3IEBAIHZvaWQgV2ViRWRpdG9yQ2xpZW50Ojp1cGRhdGVTcGVs
bGluZ1VJV2kKIH0KIAogI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1RJR0VSKSAmJiAhZGVmaW5l
ZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BB
UkQpCi12b2lkIFdlYkVkaXRvckNsaWVudDo6c2hvd0NvcnJlY3Rpb25QYW5lbChXZWJDb3JlOjpD
b3JyZWN0aW9uUGFuZWxJbmZvOjpQYW5lbFR5cGUgcGFuZWxUeXBlLCBjb25zdCBGbG9hdFJlY3Qm
IGJvdW5kaW5nQm94T2ZSZXBsYWNlZFN0cmluZywgY29uc3QgU3RyaW5nJiByZXBsYWNlZFN0cmlu
ZywgY29uc3QgU3RyaW5nJiByZXBsYWNlbWVudFN0cmluZywgRWRpdG9yKiBlZGl0b3IpIHsKK3Zv
aWQgV2ViRWRpdG9yQ2xpZW50OjpzaG93Q29ycmVjdGlvblBhbmVsKFdlYkNvcmU6OkNvcnJlY3Rp
b25QYW5lbEluZm86OlBhbmVsVHlwZSBwYW5lbFR5cGUsIGNvbnN0IEZsb2F0UmVjdCYgYm91bmRp
bmdCb3hPZlJlcGxhY2VkU3RyaW5nLCBjb25zdCBTdHJpbmcmIHJlcGxhY2VkU3RyaW5nLCBjb25z
dCBTdHJpbmcmIHJlcGxhY2VtZW50U3RyaW5nLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgYWx0ZXJu
YXRpdmVSZXBsYWNlbWVudFN0cmluZ3MsIEVkaXRvciogZWRpdG9yKSB7CiAgICAgZGlzbWlzc0Nv
cnJlY3Rpb25QYW5lbChXZWJDb3JlOjpDb3JyZWN0aW9uV2FzTm90UmVqZWN0ZWQpOwogCiAgICAg
TlNSZWN0IGJvdW5kaW5nQm94QXNOU1JlY3QgPSBib3VuZGluZ0JveE9mUmVwbGFjZWRTdHJpbmc7
CkBAIC04NjgsMTQgKzg4MiwzNyBAQCB2b2lkIFdlYkVkaXRvckNsaWVudDo6c2hvd0NvcnJlY3Rp
b25QYW5lCiAgICAgTlNTdHJpbmcgKnJlcGxhY2VtZW50U3RyaW5nQXNOU1N0cmluZyA9IHJlcGxh
Y2VtZW50U3RyaW5nOwogCiAgICAgbV9jb3JyZWN0aW9uUGFuZWxJc1Nob3duID0gWUVTOwotICAg
IE5TQ29ycmVjdGlvbkJ1YmJsZVR5cGUgYnViYmxlVHlwZSA9IHBhbmVsVHlwZSA9PSBXZWJDb3Jl
OjpDb3JyZWN0aW9uUGFuZWxJbmZvOjpQYW5lbFR5cGVDb3JyZWN0aW9uID8gTlNDb3JyZWN0aW9u
QnViYmxlVHlwZUNvcnJlY3Rpb24gOiBOU0NvcnJlY3Rpb25CdWJibGVUeXBlUmV2ZXJzaW9uOwot
ICAgIFtbTlNTcGVsbENoZWNrZXIgc2hhcmVkU3BlbGxDaGVja2VyXSBzaG93Q29ycmVjdGlvbkJ1
YmJsZU9mVHlwZTpidWJibGVUeXBlIHByaW1hcnlTdHJpbmc6cmVwbGFjZW1lbnRTdHJpbmdBc05T
U3RyaW5nIGFsdGVybmF0aXZlU3RyaW5nczpuaWwgZm9yU3RyaW5nSW5SZWN0OmJvdW5kaW5nQm94
QXNOU1JlY3QgdmlldzptX3dlYlZpZXcgY29tcGxldGlvbkhhbmRsZXI6XihOU1N0cmluZyAqYWNj
ZXB0ZWRTdHJpbmcpIHsKLSAgICAgICAgaWYgKCFhY2NlcHRlZFN0cmluZyAmJiBidWJibGVUeXBl
ID09IE5TQ29ycmVjdGlvbkJ1YmJsZVR5cGVDb3JyZWN0aW9uKSB7Ci0gICAgICAgICAgICBbW05T
U3BlbGxDaGVja2VyIHNoYXJlZFNwZWxsQ2hlY2tlcl0gcmVjb3JkUmVzcG9uc2U6TlNDb3JyZWN0
aW9uUmVzcG9uc2VSZWplY3RlZCB0b0NvcnJlY3Rpb246cmVwbGFjZW1lbnRTdHJpbmdBc05TU3Ry
aW5nIGZvcldvcmQ6cmVwbGFjZWRTdHJpbmdBc05TU3RyaW5nIGxhbmd1YWdlOm5pbCBpblNwZWxs
RG9jdW1lbnRXaXRoVGFnOlttX3dlYlZpZXcgc3BlbGxDaGVja2VyRG9jdW1lbnRUYWddXTsKLSAg
ICAgICAgICAgIGVkaXRvci0+aGFuZGxlUmVqZWN0ZWRDb3JyZWN0aW9uKCk7Ci0gICAgICAgIH0g
ZWxzZSBpZiAoYWNjZXB0ZWRTdHJpbmcgJiYgYnViYmxlVHlwZSA9PSBOU0NvcnJlY3Rpb25CdWJi
bGVUeXBlUmV2ZXJzaW9uKSB7Ci0gICAgICAgICAgICBbW05TU3BlbGxDaGVja2VyIHNoYXJlZFNw
ZWxsQ2hlY2tlcl0gcmVjb3JkUmVzcG9uc2U6TlNDb3JyZWN0aW9uUmVzcG9uc2VSZXZlcnRlZCB0
b0NvcnJlY3Rpb246cmVwbGFjZWRTdHJpbmdBc05TU3RyaW5nIGZvcldvcmQ6cmVwbGFjZW1lbnRT
dHJpbmdBc05TU3RyaW5nIGxhbmd1YWdlOm5pbCBpblNwZWxsRG9jdW1lbnRXaXRoVGFnOlttX3dl
YlZpZXcgc3BlbGxDaGVja2VyRG9jdW1lbnRUYWddXTsKLSAgICAgICAgICAgIGVkaXRvci0+aGFu
ZGxlUmVqZWN0ZWRDb3JyZWN0aW9uKCk7CisgICAgTlNDb3JyZWN0aW9uQnViYmxlVHlwZSBidWJi
bGVUeXBlID0gY29ycmVjdGlvbkJ1YmJsZVR5cGVGb3JDb3JyZWN0aW9uUGFuZWxUeXBlKHBhbmVs
VHlwZSk7CisgICAgTlNNdXRhYmxlQXJyYXkgKmFsdGVybmF0aXZlU3RyaW5ncyA9IG5pbDsKKyAg
ICBpZiAoIWFsdGVybmF0aXZlUmVwbGFjZW1lbnRTdHJpbmdzLmlzRW1wdHkoKSkgeworICAgICAg
ICBzaXplX3Qgc2l6ZSA9IGFsdGVybmF0aXZlUmVwbGFjZW1lbnRTdHJpbmdzLnNpemUoKTsKKyAg
ICAgICAgYWx0ZXJuYXRpdmVTdHJpbmdzID0gW05TTXV0YWJsZUFycmF5IGFycmF5V2l0aENhcGFj
aXR5OnNpemVdOworICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemU7ICsraSkKKyAg
ICAgICAgICAgIFthbHRlcm5hdGl2ZVN0cmluZ3MgYWRkT2JqZWN0OihOU1N0cmluZyopYWx0ZXJu
YXRpdmVSZXBsYWNlbWVudFN0cmluZ3NbaV1dOworICAgIH0KKworICAgIFtbTlNTcGVsbENoZWNr
ZXIgc2hhcmVkU3BlbGxDaGVja2VyXSBzaG93Q29ycmVjdGlvbkJ1YmJsZU9mVHlwZTpidWJibGVU
eXBlIHByaW1hcnlTdHJpbmc6cmVwbGFjZW1lbnRTdHJpbmdBc05TU3RyaW5nIGFsdGVybmF0aXZl
U3RyaW5nczphbHRlcm5hdGl2ZVN0cmluZ3MgZm9yU3RyaW5nSW5SZWN0OmJvdW5kaW5nQm94QXNO
U1JlY3QgdmlldzptX3dlYlZpZXcgY29tcGxldGlvbkhhbmRsZXI6XihOU1N0cmluZyAqYWNjZXB0
ZWRTdHJpbmcpIHsKKyAgICAgICAgc3dpdGNoIChidWJibGVUeXBlKSB7CisgICAgICAgICAgICBj
YXNlIE5TQ29ycmVjdGlvbkJ1YmJsZVR5cGVDb3JyZWN0aW9uOgorICAgICAgICAgICAgICAgIGlm
ICghYWNjZXB0ZWRTdHJpbmcpIHsKKyAgICAgICAgICAgICAgICAgICAgW1tOU1NwZWxsQ2hlY2tl
ciBzaGFyZWRTcGVsbENoZWNrZXJdIHJlY29yZFJlc3BvbnNlOk5TQ29ycmVjdGlvblJlc3BvbnNl
UmVqZWN0ZWQgdG9Db3JyZWN0aW9uOnJlcGxhY2VtZW50U3RyaW5nQXNOU1N0cmluZyBmb3JXb3Jk
OnJlcGxhY2VkU3RyaW5nQXNOU1N0cmluZyBsYW5ndWFnZTpuaWwgaW5TcGVsbERvY3VtZW50V2l0
aFRhZzpbbV93ZWJWaWV3IHNwZWxsQ2hlY2tlckRvY3VtZW50VGFnXV07CisgICAgICAgICAgICAg
ICAgICAgIGVkaXRvci0+aGFuZGxlQ29ycmVjdGlvblBhbmVsUmVzdWx0KFN0cmluZygpKTsKKyAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNl
IE5TQ29ycmVjdGlvbkJ1YmJsZVR5cGVSZXZlcnNpb246CisgICAgICAgICAgICAgICAgaWYgKGFj
Y2VwdGVkU3RyaW5nKSB7CisgICAgICAgICAgICAgICAgICAgIFtbTlNTcGVsbENoZWNrZXIgc2hh
cmVkU3BlbGxDaGVja2VyXSByZWNvcmRSZXNwb25zZTpOU0NvcnJlY3Rpb25SZXNwb25zZVJldmVy
dGVkIHRvQ29ycmVjdGlvbjpyZXBsYWNlZFN0cmluZ0FzTlNTdHJpbmcgZm9yV29yZDpyZXBsYWNl
bWVudFN0cmluZ0FzTlNTdHJpbmcgbGFuZ3VhZ2U6bmlsIGluU3BlbGxEb2N1bWVudFdpdGhUYWc6
W21fd2ViVmlldyBzcGVsbENoZWNrZXJEb2N1bWVudFRhZ11dOworICAgICAgICAgICAgICAgICAg
ICBlZGl0b3ItPmhhbmRsZUNvcnJlY3Rpb25QYW5lbFJlc3VsdChTdHJpbmcoKSk7CisgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBOU0Nv
cnJlY3Rpb25CdWJibGVUeXBlR3Vlc3NlczoKKyAgICAgICAgICAgICAgICBpZiAoYWNjZXB0ZWRT
dHJpbmcpCisgICAgICAgICAgICAgICAgICAgIFtbTlNTcGVsbENoZWNrZXIgc2hhcmVkU3BlbGxD
aGVja2VyXSByZWNvcmRSZXNwb25zZTpOU0NvcnJlY3Rpb25SZXNwb25zZUFjY2VwdGVkIHRvQ29y
cmVjdGlvbjphY2NlcHRlZFN0cmluZyBmb3JXb3JkOnJlcGxhY2VkU3RyaW5nQXNOU1N0cmluZyBs
YW5ndWFnZTpuaWwgaW5TcGVsbERvY3VtZW50V2l0aFRhZzpbbV93ZWJWaWV3IHNwZWxsQ2hlY2tl
ckRvY3VtZW50VGFnXV07CisgICAgICAgICAgICAgICAgZWRpdG9yLT5oYW5kbGVDb3JyZWN0aW9u
UGFuZWxSZXN1bHQoU3RyaW5nKGFjY2VwdGVkU3RyaW5nKSk7CisgICAgICAgICAgICAgICAgYnJl
YWs7CisKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIH0KICAgICB9XTsKIH0KQEAgLTkxNiwxMSArOTUzLDIwIEBAIGJvb2wgV2ViRWRpdG9yQ2xp
ZW50OjpzcGVsbGluZ1VJSXNTaG93aW4KICAgICByZXR1cm4gW1tbTlNTcGVsbENoZWNrZXIgc2hh
cmVkU3BlbGxDaGVja2VyXSBzcGVsbGluZ1BhbmVsXSBpc1Zpc2libGVdOwogfQogCi12b2lkIFdl
YkVkaXRvckNsaWVudDo6Z2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgU3RyaW5nJiB3b3JkLCBXVEY6
OlZlY3RvcjxTdHJpbmc+JiBndWVzc2VzKQotewotICAgIE5TQXJyYXkqIHN0cmluZ3NBcnJheSA9
IFtbTlNTcGVsbENoZWNrZXIgc2hhcmVkU3BlbGxDaGVja2VyXSBndWVzc2VzRm9yV29yZDp3b3Jk
XTsKLSAgICB1bnNpZ25lZCBjb3VudCA9IFtzdHJpbmdzQXJyYXkgY291bnRdOwordm9pZCBXZWJF
ZGl0b3JDbGllbnQ6OmdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYgd29yZCwgY29uc3Qg
U3RyaW5nJiBjb250ZXh0LCBWZWN0b3I8U3RyaW5nPiYgZ3Vlc3NlcykgewogICAgIGd1ZXNzZXMu
Y2xlYXIoKTsKKworICAgIE5TU3RyaW5nKiBsYW5ndWFnZSA9IG5pbDsKKyAgICBOU09ydGhvZ3Jh
cGh5KiBvcnRob2dyYXBoeSA9IG5pbDsKKyAgICBOU1NwZWxsQ2hlY2tlciAqY2hlY2tlciA9IFtO
U1NwZWxsQ2hlY2tlciBzaGFyZWRTcGVsbENoZWNrZXJdOworICAgIGlmIChjb250ZXh0Lmxlbmd0
aCgpID4gMCkgeworICAgICAgICBbY2hlY2tlciBjaGVja1N0cmluZzpjb250ZXh0IHJhbmdlOk5T
TWFrZVJhbmdlKDAsIGNvbnRleHQubGVuZ3RoKCkpIHR5cGVzOk5TVGV4dENoZWNraW5nVHlwZU9y
dGhvZ3JhcGh5IG9wdGlvbnM6MCBpblNwZWxsRG9jdW1lbnRXaXRoVGFnOnNwZWxsQ2hlY2tlckRv
Y3VtZW50VGFnKCkgb3J0aG9ncmFwaHk6Jm9ydGhvZ3JhcGh5IHdvcmRDb3VudDowXTsKKyAgICAg
ICAgbGFuZ3VhZ2UgPSBbY2hlY2tlciBsYW5ndWFnZUZvcldvcmRSYW5nZTpOU01ha2VSYW5nZSgw
LCBjb250ZXh0Lmxlbmd0aCgpKSBpblN0cmluZzpjb250ZXh0IG9ydGhvZ3JhcGh5Om9ydGhvZ3Jh
cGh5XTsKKyAgICB9CisKKyAgICBOU0FycmF5KiBzdHJpbmdzQXJyYXkgPSBbY2hlY2tlciBndWVz
c2VzRm9yV29yZFJhbmdlOk5TTWFrZVJhbmdlKDAsIHdvcmQubGVuZ3RoKCkpIGluU3RyaW5nOndv
cmQgbGFuZ3VhZ2U6bGFuZ3VhZ2UgaW5TcGVsbERvY3VtZW50V2l0aFRhZzpzcGVsbENoZWNrZXJE
b2N1bWVudFRhZygpXTsKKyAgICB1bnNpZ25lZCBjb3VudCA9IFtzdHJpbmdzQXJyYXkgY291bnRd
OworCiAgICAgaWYgKGNvdW50ID4gMCkgewogICAgICAgICBOU0VudW1lcmF0b3IqIGVudW1lcmF0
b3IgPSBbc3RyaW5nc0FycmF5IG9iamVjdEVudW1lcmF0b3JdOwogICAgICAgICBOU1N0cmluZyog
c3RyaW5nOwpJbmRleDogV2ViS2l0L3F0L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQv
cXQvQ2hhbmdlTG9nCShyZXZpc2lvbiA3MjgyNSkKKysrIFdlYktpdC9xdC9DaGFuZ2VMb2cJKHdv
cmtpbmcgY29weSkKQEAgLTEsMyArMSwxNyBAQAorMjAxMC0xMS0yOSAgSmlhIFB1ICA8anB1QGFw
cGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBTdXBwb3J0IG11bHRpcGxlIGNvcnJlY3Rpb24gY2FuZGlkYXRlcyBwYW5lbCBmb3IgbWlzc3Bl
bGxlZCB3b3JkIG9uIE1hYyBPUyBYLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NTAxMzcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg1NjgwNTk+CisK
KyAgICAgICAgQWRvcHRlZCBuZXcgZnVuY3Rpb24gc2lnbmF0dXJlIGRlZmluZWQgaW4gYmFzZSBj
bGFzcy4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFF0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVudFF0OjpnZXRHdWVzc2VzRm9yV29yZCk6CisgICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50UXQuaDoKKwogMjAxMC0xMS0yNSAgTm9y
YmVydCBMZXNlciAgPG5vcmJlcnQubGVzZXJAbm9raWEuY29tPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IExhc3psbyBHb21ib3MuCkluZGV4OiBXZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRWRpdG9y
Q2xpZW50UXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9FZGl0
b3JDbGllbnRRdC5jcHAJKHJldmlzaW9uIDcyODI1KQorKysgV2ViS2l0L3F0L1dlYkNvcmVTdXBw
b3J0L0VkaXRvckNsaWVudFF0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTU4LDcgKzU1OCw3IEBA
IGJvb2wgRWRpdG9yQ2xpZW50UXQ6OnNwZWxsaW5nVUlJc1Nob3dpbmcKICAgICByZXR1cm4gZmFs
c2U7CiB9CiAKLXZvaWQgRWRpdG9yQ2xpZW50UXQ6OmdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0
cmluZyYsIFZlY3RvcjxTdHJpbmc+JikKK3ZvaWQgRWRpdG9yQ2xpZW50UXQ6OmdldEd1ZXNzZXNG
b3JXb3JkKGNvbnN0IFN0cmluZyYgd29yZCwgY29uc3QgU3RyaW5nJiBjb250ZXh0LCBWZWN0b3I8
U3RyaW5nPiYgZ3Vlc3NlcykKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQpJbmRleDogV2Vi
S2l0L3F0L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFF0LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
S2l0L3F0L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFF0LmgJKHJldmlzaW9uIDcyODI1KQor
KysgV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFF0LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTEwNCw3ICsxMDQsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVNw
ZWxsaW5nVUlXaXRoTWlzc3BlbGxlZFdvcmQoY29uc3QgU3RyaW5nJik7CiAgICAgdmlydHVhbCB2
b2lkIHNob3dTcGVsbGluZ1VJKGJvb2wgc2hvdyk7CiAgICAgdmlydHVhbCBib29sIHNwZWxsaW5n
VUlJc1Nob3dpbmcoKTsKLSAgICB2aXJ0dWFsIHZvaWQgZ2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3Qg
U3RyaW5nJiwgVmVjdG9yPFN0cmluZz4mIGd1ZXNzZXMpOworICAgIHZpcnR1YWwgdm9pZCBnZXRH
dWVzc2VzRm9yV29yZChjb25zdCBTdHJpbmcmIHdvcmQsIGNvbnN0IFN0cmluZyYgY29udGV4dCwg
VmVjdG9yPFN0cmluZz4mIGd1ZXNzZXMpOwogICAgIHZpcnR1YWwgdm9pZCB3aWxsU2V0SW5wdXRN
ZXRob2RTdGF0ZSgpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wg
ZW5hYmxlZCk7CiAKSW5kZXg6IFdlYktpdC93aW4vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YktpdC93aW4vQ2hhbmdlTG9nCShyZXZpc2lvbiA3MjgyNSkKKysrIFdlYktpdC93aW4vQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTAtMTEtMjkgIEppYSBQdSAg
PGpwdUBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgU3VwcG9ydCBtdWx0aXBsZSBjb3JyZWN0aW9uIGNhbmRpZGF0ZXMgcGFuZWwgZm9y
IG1pc3NwZWxsZWQgd29yZCBvbiBNYWMgT1MgWC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTUwMTM3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NTY4
MDU5PgorCisgICAgICAgIEFkb3B0ZWQgbmV3IGZ1bmN0aW9uIHNpZ25hdHVyZSBkZWZpbmVkIGlu
IGJhc2UgY2xhc3MuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQu
Y3BwOgorICAgICAgICAoV2ViRWRpdG9yQ2xpZW50OjpnZXRHdWVzc2VzRm9yV29yZCk6CisgICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lmg6CisKIDIwMTAtMTEtMjIgIEFk
YW0gUm9iZW4gIDxhcm9iZW5AYXBwbGUuY29tPgogCiAgICAgICAgIFVzZSBwYXRocyByZWxhdGl2
ZSB0byAkV2ViS2l0VlNQcm9wc1JlZGlyZWN0aW9uRGlyIHRvIGFjY2VzcyBzaGFyZWQgLnZzcHJv
cHMgZmlsZXMKSW5kZXg6IFdlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNs
aWVudC5jcHAJKHJldmlzaW9uIDcyODI1KQorKysgV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9X
ZWJFZGl0b3JDbGllbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03NTgsNyArNzU4LDcgQEAgYm9v
bCBXZWJFZGl0b3JDbGllbnQ6OnNwZWxsaW5nVUlJc1Nob3dpbgogICAgIHJldHVybiAhIXNob3dp
bmc7CiB9CiAKLXZvaWQgV2ViRWRpdG9yQ2xpZW50OjpnZXRHdWVzc2VzRm9yV29yZChjb25zdCBT
dHJpbmcmIHdvcmQsIFZlY3RvcjxTdHJpbmc+JiBndWVzc2VzKQordm9pZCBXZWJFZGl0b3JDbGll
bnQ6OmdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYgd29yZCwgY29uc3QgU3RyaW5nJiBj
b250ZXh0LCBWZWN0b3I8U3RyaW5nPiYgZ3Vlc3NlcykKIHsKICAgICBndWVzc2VzLmNsZWFyKCk7
CiAKSW5kZXg6IFdlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAko
cmV2aXNpb24gNzI4MjUpCisrKyBXZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNs
aWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDcsNyArMTA3LDcgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgdm9pZCB1cGRhdGVTcGVsbGluZ1VJV2l0aE1pc3NwZWxsZWRXb3JkKGNvbnN0IFdURjo6
U3RyaW5nJik7CiAgICAgdmlydHVhbCB2b2lkIHNob3dTcGVsbGluZ1VJKGJvb2wgc2hvdyk7CiAg
ICAgdmlydHVhbCBib29sIHNwZWxsaW5nVUlJc1Nob3dpbmcoKTsKLSAgICB2aXJ0dWFsIHZvaWQg
Z2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgV1RGOjpTdHJpbmcmLCBWZWN0b3I8V1RGOjpTdHJpbmc+
JiBndWVzc2VzKTsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgV1RG
OjpTdHJpbmcmIHdvcmQsIGNvbnN0IFdURjo6U3RyaW5nJiBjb250ZXh0LCBXVEY6OlZlY3RvcjxX
VEY6OlN0cmluZz4mIGd1ZXNzZXMpOwogCiAgICAgdmlydHVhbCB2b2lkIHdpbGxTZXRJbnB1dE1l
dGhvZFN0YXRlKCk7CiAgICAgdmlydHVhbCB2b2lkIHNldElucHV0TWV0aG9kU3RhdGUoYm9vbCk7
CkluZGV4OiBXZWJLaXQvd2luY2UvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC93aW5j
ZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDcyODI1KQorKysgV2ViS2l0L3dpbmNlL0NoYW5nZUxvZwko
d29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBACisyMDEwLTExLTI5ICBKaWEgUHUgIDxqcHVA
YXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFN1cHBvcnQgbXVsdGlwbGUgY29ycmVjdGlvbiBjYW5kaWRhdGVzIHBhbmVsIGZvciBtaXNz
cGVsbGVkIHdvcmQgb24gTWFjIE9TIFguCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD01MDEzNworICAgICAgICA8cmRhcjovL3Byb2JsZW0vODU2ODA1OT4K
KworICAgICAgICBBZG9wdGVkIG5ldyBmdW5jdGlvbiBzaWduYXR1cmUgZGVmaW5lZCBpbiBiYXNl
IGNsYXNzLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50V2luQ0UuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnRXaW5DRTo6Z2V0R3Vlc3Nlc0ZvcldvcmQp
OgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFdpbkNFLmg6CisKIDIwMTAt
MTEtMTMgIFBhdHJpY2sgR2Fuc3RlcmVyICA8cGFyb2dhQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
VW5yZXZpZXdlZCwgYnVpbGQgZml4IGFmdGVyIHI3MTU0MS4KSW5kZXg6IFdlYktpdC93aW5jZS9X
ZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRXaW5DRS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0
L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFdpbkNFLmNwcAkocmV2aXNpb24gNzI4
MjUpCisrKyBXZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50V2luQ0UuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC00ODcsNyArNDg3LDcgQEAgYm9vbCBFZGl0b3JDbGllbnRXaW5D
RTo6c3BlbGxpbmdVSUlzU2hvdwogICAgIHJldHVybiBmYWxzZTsKIH0KIAotdm9pZCBFZGl0b3JD
bGllbnRXaW5DRTo6Z2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgU3RyaW5nJiB3b3JkLCBXVEY6OlZl
Y3RvcjxTdHJpbmc+JiBndWVzc2VzKQorICAgIHZvaWQgRWRpdG9yQ2xpZW50V2luQ0U6OmdldEd1
ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYgd29yZCwgY29uc3QgU3RyaW5nJiBjb250ZXh0LCBX
VEY6OlZlY3RvcjxTdHJpbmc+JiBndWVzc2VzKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9
CkluZGV4OiBXZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50V2luQ0UuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50V2lu
Q0UuaAkocmV2aXNpb24gNzI4MjUpCisrKyBXZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvRWRp
dG9yQ2xpZW50V2luQ0UuaAkod29ya2luZyBjb3B5KQpAQCAtOTcsNyArOTcsNyBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVNwZWxsaW5nVUlXaXRoTWlzc3BlbGxlZFdvcmQoY29u
c3QgV1RGOjpTdHJpbmcmKTsKICAgICB2aXJ0dWFsIHZvaWQgc2hvd1NwZWxsaW5nVUkoYm9vbCk7
CiAgICAgdmlydHVhbCBib29sIHNwZWxsaW5nVUlJc1Nob3dpbmcoKTsKLSAgICB2aXJ0dWFsIHZv
aWQgZ2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgV1RGOjpTdHJpbmcmLCBXVEY6OlZlY3RvcjxXVEY6
OlN0cmluZz4mKTsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgV1RG
OjpTdHJpbmcmIHdvcmQsIGNvbnN0IFdURjo6U3RyaW5nJiBjb250ZXh0LCBXVEY6OlZlY3RvcjxX
VEY6OlN0cmluZz4mIGd1ZXNzZXMpOwogICAgIHZpcnR1YWwgdm9pZCB3aWxsU2V0SW5wdXRNZXRo
b2RTdGF0ZSgpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wpOwog
CkluZGV4OiBXZWJLaXQvd3gvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC93eC9DaGFu
Z2VMb2cJKHJldmlzaW9uIDcyODI1KQorKysgV2ViS2l0L3d4L0NoYW5nZUxvZwkod29ya2luZyBj
b3B5KQpAQCAtMSwzICsxLDE3IEBACisyMDEwLTExLTI5ICBKaWEgUHUgIDxqcHVAYXBwbGUuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN1cHBv
cnQgbXVsdGlwbGUgY29ycmVjdGlvbiBjYW5kaWRhdGVzIHBhbmVsIGZvciBtaXNzcGVsbGVkIHdv
cmQgb24gTWFjIE9TIFguCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD01MDEzNworICAgICAgICA8cmRhcjovL3Byb2JsZW0vODU2ODA1OT4KKworICAgICAg
ICBBZG9wdGVkIG5ldyBmdW5jdGlvbiBzaWduYXR1cmUgZGVmaW5lZCBpbiBiYXNlIGNsYXNzLgor
CisgICAgICAgICogV2ViS2l0U3VwcG9ydC9FZGl0b3JDbGllbnRXeC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpFZGl0b3JDbGllbnRXeDo6Z2V0R3Vlc3Nlc0ZvcldvcmQpOgorICAgICAgICAqIFdl
YktpdFN1cHBvcnQvRWRpdG9yQ2xpZW50V3guaDoKKwogMjAxMC0xMS0yNCAgUGF0cmljayBHYW5z
dGVyZXIgIDxwYXJvZ2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBDc2FiYSBP
c3p0cm9nb27hYy4KSW5kZXg6IFdlYktpdC93eC9XZWJLaXRTdXBwb3J0L0VkaXRvckNsaWVudFd4
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9FZGl0b3JDbGllbnRX
eC5jcHAJKHJldmlzaW9uIDcyODI1KQorKysgV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvRWRpdG9y
Q2xpZW50V3guY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NDIsOSArNTQyLDkgQEAgYm9vbCBFZGl0
b3JDbGllbnRXeDo6c3BlbGxpbmdVSUlzU2hvd2luZwogICAgIHJldHVybiBmYWxzZTsKIH0KIAot
dm9pZCBFZGl0b3JDbGllbnRXeDo6Z2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgU3RyaW5nJiwgVmVj
dG9yPFN0cmluZz4mIGd1ZXNzZXMpIAoteyAKLSAgICBub3RJbXBsZW1lbnRlZCgpOyAKK3ZvaWQg
RWRpdG9yQ2xpZW50V3g6OmdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYgd29yZCwgY29u
c3QgU3RyaW5nJiBjb250ZXh0LCBWZWN0b3I8U3RyaW5nPiYgZ3Vlc3NlcykKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOwogfQogCiBTdHJpbmcgRWRpdG9yQ2xpZW50V3g6OmdldEF1dG9Db3JyZWN0
U3VnZ2VzdGlvbkZvck1pc3NwZWxsZWRXb3JkKGNvbnN0IFdURjo6U3RyaW5nJikKSW5kZXg6IFdl
YktpdC93eC9XZWJLaXRTdXBwb3J0L0VkaXRvckNsaWVudFd4LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
S2l0L3d4L1dlYktpdFN1cHBvcnQvRWRpdG9yQ2xpZW50V3guaAkocmV2aXNpb24gNzI4MjUpCisr
KyBXZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9FZGl0b3JDbGllbnRXeC5oCSh3b3JraW5nIGNvcHkp
CkBAIC0xMDcsOSArMTA3LDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVTcGVs
bGluZ1VJV2l0aE1pc3NwZWxsZWRXb3JkKGNvbnN0IFN0cmluZyYpOwogICAgIHZpcnR1YWwgdm9p
ZCBzaG93U3BlbGxpbmdVSShib29sIHNob3cpOwogICAgIHZpcnR1YWwgYm9vbCBzcGVsbGluZ1VJ
SXNTaG93aW5nKCk7Ci0gICAgdmlydHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0
cmluZyYsIFZlY3RvcjxTdHJpbmc+JiBndWVzc2VzKTsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0R3Vl
c3Nlc0ZvcldvcmQoY29uc3QgU3RyaW5nJiB3b3JkLCBjb25zdCBTdHJpbmcmIGNvbnRleHQsIFZl
Y3RvcjxTdHJpbmc+JiBndWVzc2VzKTsKICAgICB2aXJ0dWFsIFN0cmluZyBnZXRBdXRvQ29ycmVj
dFN1Z2dlc3Rpb25Gb3JNaXNzcGVsbGVkV29yZChjb25zdCBXVEY6OlN0cmluZyYpOwotICAgIAor
CiAgICAgdmlydHVhbCB2b2lkIHdpbGxTZXRJbnB1dE1ldGhvZFN0YXRlKCk7CiAgICAgdmlydHVh
bCB2b2lkIHNldElucHV0TWV0aG9kU3RhdGUoYm9vbCBlbmFibGVkKTsKIApJbmRleDogTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2
aXNpb24gNzI4MjUpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAg
LTEsMyArMSwxOCBAQAorMjAxMC0xMS0yOSAgSmlhIFB1ICA8anB1QGFwcGxlLmNvbT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdXBwb3J0IG11bHRp
cGxlIGNvcnJlY3Rpb24gY2FuZGlkYXRlcyBwYW5lbCBmb3IgbWlzc3BlbGxlZCB3b3JkIG9uIE1h
YyBPUyBYLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NTAxMzcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg1NjgwNTk+CisKKyAgICAgICAgKiBwbGF0
Zm9ybS9tYWMtbGVvcGFyZC9Ta2lwcGVkOgorICAgICAgICAqIHBsYXRmb3JtL21hYy1zbm93bGVv
cGFyZC9Ta2lwcGVkOgorICAgICAgICAqIHBsYXRmb3JtL21hYy10aWdlci9Ta2lwcGVkOgorICAg
ICAgICAqIHBsYXRmb3JtL21hYy13azIvU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMv
ZWRpdGluZy9zcGVsbGluZy9kZWxldGUtYXV0b2NvcnJlY3RlZC13b3JkLTEtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZWRpdGluZy9zcGVsbGluZy9kZWxldGUt
YXV0b2NvcnJlY3RlZC13b3JkLTEuaHRtbDogQWRkZWQuCisKIDIwMTAtMTEtMjkgIE9qYW4gVmFm
YWkgIDxvamFuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2VkIGJ1aWxkIGZpeC4K
SW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy1sZW9wYXJkL1NraXBwZWQKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLWxlb3BhcmQvU2tpcHBlZAkocmV2aXNpb24g
NzI4MjUpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtbGVvcGFyZC9Ta2lwcGVkCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMDYsNiArMTA2LDcgQEAgcGxhdGZvcm0vbWFjL2VkaXRpbmcvc3BlbGxp
bmcvYXV0b2NvcnJlYwogcGxhdGZvcm0vbWFjL2VkaXRpbmcvc3BlbGxpbmcvYXV0b2NvcnJlY3Rp
b24tcmVtb3ZpbmctdW5kZXJsaW5lLmh0bWwKIHBsYXRmb3JtL21hYy9lZGl0aW5nL3NwZWxsaW5n
L2F1dG9jb3JyZWN0aW9uLXNpbXBsZS5odG1sCiBwbGF0Zm9ybS9tYWMvZWRpdGluZy9zcGVsbGlu
Zy9jbGljay1hdXRvY29ycmVjdGVkLXdvcmQuaHRtbAorcGxhdGZvcm0vbWFjL2VkaXRpbmcvc3Bl
bGxpbmcvZGVsZXRlLWF1dG9jb3JyZWN0ZWQtd29yZC0xLmh0bWwKIHBsYXRmb3JtL21hYy9lZGl0
aW5nL3NwZWxsaW5nL2RlbGV0ZS1pbnRvLWF1dG9jb3JyZWN0ZWQtd29yZC5odG1sCiBwbGF0Zm9y
bS9tYWMvZWRpdGluZy9zcGVsbGluZy9kZWxldGUtaW50by1taXNzcGVsbGVkLXdvcmQuaHRtbAog
cGxhdGZvcm0vbWFjL2VkaXRpbmcvc3BlbGxpbmcvZWRpdGluZy1tdWx0aXBsZS13b3Jkcy13aXRo
LW1hcmtlcnMuaHRtbApJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXNub3dsZW9wYXJk
L1NraXBwZWQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXNub3dsZW9w
YXJkL1NraXBwZWQJKHJldmlzaW9uIDcyODI1KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
LXNub3dsZW9wYXJkL1NraXBwZWQJKHdvcmtpbmcgY29weSkKQEAgLTEzMSw2ICsxMzEsNyBAQCBw
bGF0Zm9ybS9tYWMvZWRpdGluZy9zcGVsbGluZy9hdXRvY29ycmVjCiBwbGF0Zm9ybS9tYWMvZWRp
dGluZy9zcGVsbGluZy9hdXRvY29ycmVjdGlvbi1yZW1vdmluZy11bmRlcmxpbmUuaHRtbAogcGxh
dGZvcm0vbWFjL2VkaXRpbmcvc3BlbGxpbmcvYXV0b2NvcnJlY3Rpb24tc2ltcGxlLmh0bWwKIHBs
YXRmb3JtL21hYy9lZGl0aW5nL3NwZWxsaW5nL2NsaWNrLWF1dG9jb3JyZWN0ZWQtd29yZC5odG1s
CitwbGF0Zm9ybS9tYWMvZWRpdGluZy9zcGVsbGluZy9kZWxldGUtYXV0b2NvcnJlY3RlZC13b3Jk
LTEuaHRtbAogcGxhdGZvcm0vbWFjL2VkaXRpbmcvc3BlbGxpbmcvZGVsZXRlLWludG8tYXV0b2Nv
cnJlY3RlZC13b3JkLmh0bWwKIHBsYXRmb3JtL21hYy9lZGl0aW5nL3NwZWxsaW5nL2RlbGV0ZS1p
bnRvLW1pc3NwZWxsZWQtd29yZC5odG1sCiBwbGF0Zm9ybS9tYWMvZWRpdGluZy9zcGVsbGluZy9l
ZGl0aW5nLW11bHRpcGxlLXdvcmRzLXdpdGgtbWFya2Vycy5odG1sCkluZGV4OiBMYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMtdGlnZXIvU2tpcHBlZAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMtdGlnZXIvU2tpcHBlZAkocmV2aXNpb24gNzI4MjUpCisrKyBMYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMtdGlnZXIvU2tpcHBlZAkod29ya2luZyBjb3B5KQpAQCAtMjExLDYgKzIx
MSw3IEBAIHBsYXRmb3JtL21hYy9lZGl0aW5nL3NwZWxsaW5nL2F1dG9jb3JyZWMKIHBsYXRmb3Jt
L21hYy9lZGl0aW5nL3NwZWxsaW5nL2F1dG9jb3JyZWN0aW9uLXJlbW92aW5nLXVuZGVybGluZS5o
dG1sCiBwbGF0Zm9ybS9tYWMvZWRpdGluZy9zcGVsbGluZy9hdXRvY29ycmVjdGlvbi1zaW1wbGUu
aHRtbAogcGxhdGZvcm0vbWFjL2VkaXRpbmcvc3BlbGxpbmcvY2xpY2stYXV0b2NvcnJlY3RlZC13
b3JkLmh0bWwKK3BsYXRmb3JtL21hYy9lZGl0aW5nL3NwZWxsaW5nL2RlbGV0ZS1hdXRvY29ycmVj
dGVkLXdvcmQtMS5odG1sCiBwbGF0Zm9ybS9tYWMvZWRpdGluZy9zcGVsbGluZy9kZWxldGUtaW50
by1hdXRvY29ycmVjdGVkLXdvcmQuaHRtbAogcGxhdGZvcm0vbWFjL2VkaXRpbmcvc3BlbGxpbmcv
ZGVsZXRlLWludG8tbWlzc3BlbGxlZC13b3JkLmh0bWwKIHBsYXRmb3JtL21hYy9lZGl0aW5nL3Nw
ZWxsaW5nL2VkaXRpbmctbXVsdGlwbGUtd29yZHMtd2l0aC1tYXJrZXJzLmh0bWwKSW5kZXg6IExh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvU2tpcHBlZAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1NraXBwZWQJKHJldmlzaW9uIDcyODI1KQorKysgTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9Ta2lwcGVkCSh3b3JraW5nIGNvcHkpCkBAIC00OTQsNiAr
NDk0LDcgQEAgcGxhdGZvcm0vbWFjL2VkaXRpbmcvc3BlbGxpbmcvYXV0b2NvcnJlYwogcGxhdGZv
cm0vbWFjL2VkaXRpbmcvc3BlbGxpbmcvYXV0b2NvcnJlY3Rpb24tcmVtb3ZpbmctdW5kZXJsaW5l
Lmh0bWwKIHBsYXRmb3JtL21hYy9lZGl0aW5nL3NwZWxsaW5nL2F1dG9jb3JyZWN0aW9uLXNpbXBs
ZS5odG1sCiBwbGF0Zm9ybS9tYWMvZWRpdGluZy9zcGVsbGluZy9jbGljay1hdXRvY29ycmVjdGVk
LXdvcmQuaHRtbAorcGxhdGZvcm0vbWFjL2VkaXRpbmcvc3BlbGxpbmcvZGVsZXRlLWF1dG9jb3Jy
ZWN0ZWQtd29yZC0xLmh0bWwKIHBsYXRmb3JtL21hYy9lZGl0aW5nL3NwZWxsaW5nL2RlbGV0ZS1p
bnRvLWF1dG9jb3JyZWN0ZWQtd29yZC5odG1sCiBwbGF0Zm9ybS9tYWMvZWRpdGluZy9zcGVsbGlu
Zy9kZWxldGUtaW50by1taXNzcGVsbGVkLXdvcmQuaHRtbAogcGxhdGZvcm0vbWFjL2VkaXRpbmcv
c3BlbGxpbmcvZWRpdGluZy1tdWx0aXBsZS13b3Jkcy13aXRoLW1hcmtlcnMuaHRtbApJbmRleDog
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2VkaXRpbmcvc3BlbGxpbmcvZGVsZXRlLWF1dG9jb3Jy
ZWN0ZWQtd29yZC0xLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvZWRpdGluZy9zcGVsbGluZy9kZWxldGUtYXV0b2NvcnJlY3RlZC13b3JkLTEtZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2VkaXRp
bmcvc3BlbGxpbmcvZGVsZXRlLWF1dG9jb3JyZWN0ZWQtd29yZC0xLWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSw5NyBAQAorRURJVElORyBERUxFR0FURTogc2hvdWxkQmVnaW5F
ZGl0aW5nSW5ET01SYW5nZTpyYW5nZSBmcm9tIDAgb2YgRElWID4gQk9EWSA+IEhUTUwgPiAjZG9j
dW1lbnQgdG8gMyBvZiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudAorRURJVElORyBERUxF
R0FURTogd2ViVmlld0RpZEJlZ2luRWRpdGluZzpXZWJWaWV3RGlkQmVnaW5FZGl0aW5nTm90aWZp
Y2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZp
ZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHNob3Vs
ZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2U6cmFuZ2UgZnJvbSAwIG9mIERJViA+IEJPRFkgPiBIVE1M
ID4gI2RvY3VtZW50IHRvIDAgb2YgRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG9ET01S
YW5nZTpyYW5nZSBmcm9tIDEgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVu
dCB0byAxIG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgYWZmaW5pdHk6
TlNTZWxlY3Rpb25BZmZpbml0eURvd25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6RkFMU0UKK0VESVRJ
TkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNl
bGVjdGlvbk5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZTpX
ZWJWaWV3RGlkQ2hhbmdlTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiBzaG91bGRDaGFu
Z2VTZWxlY3RlZERPTVJhbmdlOnJhbmdlIGZyb20gMSBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBI
VE1MID4gI2RvY3VtZW50IHRvIDEgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1
bWVudCB0b0RPTVJhbmdlOnJhbmdlIGZyb20gMiBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1M
ID4gI2RvY3VtZW50IHRvIDIgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVu
dCBhZmZpbml0eTpOU1NlbGVjdGlvbkFmZmluaXR5RG93bnN0cmVhbSBzdGlsbFNlbGVjdGluZzpG
QUxTRQorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3
RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3
RGlkQ2hhbmdlOldlYlZpZXdEaWRDaGFuZ2VOb3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6
IHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2U6cmFuZ2UgZnJvbSAyIG9mICN0ZXh0ID4gRElW
ID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gMiBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBI
VE1MID4gI2RvY3VtZW50IHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSAzIG9mICN0ZXh0ID4gRElWID4g
Qk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gMyBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1M
ID4gI2RvY3VtZW50IGFmZmluaXR5Ok5TU2VsZWN0aW9uQWZmaW5pdHlEb3duc3RyZWFtIHN0aWxs
U2VsZWN0aW5nOkZBTFNFCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0
aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdB
VEU6IHdlYlZpZXdEaWRDaGFuZ2U6V2ViVmlld0RpZENoYW5nZU5vdGlmaWNhdGlvbgorRURJVElO
RyBERUxFR0FURTogc2hvdWxkQ2hhbmdlU2VsZWN0ZWRET01SYW5nZTpyYW5nZSBmcm9tIDMgb2Yg
I3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byAzIG9mICN0ZXh0ID4gRElW
ID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG9ET01SYW5nZTpyYW5nZSBmcm9tIDQgb2YgI3Rl
eHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byA0IG9mICN0ZXh0ID4gRElWID4g
Qk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgYWZmaW5pdHk6TlNTZWxlY3Rpb25BZmZpbml0eURvd25z
dHJlYW0gc3RpbGxTZWxlY3Rpbmc6RkFMU0UKK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRD
aGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgorRURJ
VElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZTpXZWJWaWV3RGlkQ2hhbmdlTm90aWZpY2F0
aW9uCitFRElUSU5HIERFTEVHQVRFOiBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlOnJhbmdl
IGZyb20gNCBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDQgb2Yg
I3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0b0RPTVJhbmdlOnJhbmdlIGZy
b20gNSBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDUgb2YgI3Rl
eHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCBhZmZpbml0eTpOU1NlbGVjdGlvbkFm
ZmluaXR5RG93bnN0cmVhbSBzdGlsbFNlbGVjdGluZzpGQUxTRQorRURJVElORyBERUxFR0FURTog
d2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZp
Y2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlOldlYlZpZXdEaWRDaGFu
Z2VOb3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHNob3VsZENoYW5nZVNlbGVjdGVkRE9N
UmFuZ2U6cmFuZ2UgZnJvbSA1IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1l
bnQgdG8gNSBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvRE9NUmFu
Z2U6cmFuZ2UgZnJvbSA2IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQg
dG8gNiBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IGFmZmluaXR5Ok5T
U2VsZWN0aW9uQWZmaW5pdHlEb3duc3RyZWFtIHN0aWxsU2VsZWN0aW5nOkZBTFNFCitFRElUSU5H
IERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxl
Y3Rpb25Ob3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2U6V2Vi
Vmlld0RpZENoYW5nZU5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogc2hvdWxkQ2hhbmdl
U2VsZWN0ZWRET01SYW5nZTpyYW5nZSBmcm9tIDYgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRN
TCA+ICNkb2N1bWVudCB0byA2IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1l
bnQgdG9ET01SYW5nZTpyYW5nZSBmcm9tIDcgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+
ICNkb2N1bWVudCB0byA3IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQg
YWZmaW5pdHk6TlNTZWxlY3Rpb25BZmZpbml0eURvd25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6RkFM
U0UKK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0Rp
ZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogd2ViVmlld0Rp
ZENoYW5nZTpXZWJWaWV3RGlkQ2hhbmdlTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiBz
aG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlOnJhbmdlIGZyb20gNyBvZiAjdGV4dCA+IERJViA+
IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDcgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRN
TCA+ICNkb2N1bWVudCB0b0RPTVJhbmdlOnJhbmdlIGZyb20gOCBvZiAjdGV4dCA+IERJViA+IEJP
RFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDggb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+
ICNkb2N1bWVudCBhZmZpbml0eTpOU1NlbGVjdGlvbkFmZmluaXR5RG93bnN0cmVhbSBzdGlsbFNl
bGVjdGluZzpGQUxTRQorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlv
bjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRF
OiB3ZWJWaWV3RGlkQ2hhbmdlOldlYlZpZXdEaWRDaGFuZ2VOb3RpZmljYXRpb24KK0VESVRJTkcg
REVMRUdBVEU6IHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2U6cmFuZ2UgZnJvbSA4IG9mICN0
ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gOCBvZiAjdGV4dCA+IERJViA+
IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSA5IG9mICN0ZXh0
ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gOSBvZiAjdGV4dCA+IERJViA+IEJP
RFkgPiBIVE1MID4gI2RvY3VtZW50IGFmZmluaXR5Ok5TU2VsZWN0aW9uQWZmaW5pdHlEb3duc3Ry
ZWFtIHN0aWxsU2VsZWN0aW5nOkZBTFNFCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hh
bmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VESVRJ
TkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2U6V2ViVmlld0RpZENoYW5nZU5vdGlmaWNhdGlv
bgorRURJVElORyBERUxFR0FURTogc2hvdWxkQ2hhbmdlU2VsZWN0ZWRET01SYW5nZTpyYW5nZSBm
cm9tIDkgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byA5IG9mICN0
ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG9ET01SYW5nZTpyYW5nZSBmcm9t
IDEwIG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gMTAgb2YgI3Rl
eHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCBhZmZpbml0eTpOU1NlbGVjdGlvbkFm
ZmluaXR5RG93bnN0cmVhbSBzdGlsbFNlbGVjdGluZzpGQUxTRQorRURJVElORyBERUxFR0FURTog
d2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZp
Y2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlOldlYlZpZXdEaWRDaGFu
Z2VOb3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHNob3VsZENoYW5nZVNlbGVjdGVkRE9N
UmFuZ2U6cmFuZ2UgZnJvbSAxMCBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3Vt
ZW50IHRvIDEwIG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG9ET01S
YW5nZTpyYW5nZSBmcm9tIDExIG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1l
bnQgdG8gMTEgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCBhZmZpbml0
eTpOU1NlbGVjdGlvbkFmZmluaXR5RG93bnN0cmVhbSBzdGlsbFNlbGVjdGluZzpGQUxTRQorRURJ
VElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdl
U2VsZWN0aW9uTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdl
OldlYlZpZXdEaWRDaGFuZ2VOb3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHNob3VsZENo
YW5nZVNlbGVjdGVkRE9NUmFuZ2U6cmFuZ2UgZnJvbSAxMSBvZiAjdGV4dCA+IERJViA+IEJPRFkg
PiBIVE1MID4gI2RvY3VtZW50IHRvIDExIG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAj
ZG9jdW1lbnQgdG9ET01SYW5nZTpyYW5nZSBmcm9tIDEyIG9mICN0ZXh0ID4gRElWID4gQk9EWSA+
IEhUTUwgPiAjZG9jdW1lbnQgdG8gMTIgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNk
b2N1bWVudCBhZmZpbml0eTpOU1NlbGVjdGlvbkFmZmluaXR5RG93bnN0cmVhbSBzdGlsbFNlbGVj
dGluZzpGQUxTRQorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpX
ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiB3
ZWJWaWV3RGlkQ2hhbmdlOldlYlZpZXdEaWRDaGFuZ2VOb3RpZmljYXRpb24KK0VESVRJTkcgREVM
RUdBVEU6IHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2U6cmFuZ2UgZnJvbSAxMiBvZiAjdGV4
dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDEyIG9mICN0ZXh0ID4gRElWID4g
Qk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG9ET01SYW5nZTpyYW5nZSBmcm9tIDEzIG9mICN0ZXh0
ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gMTMgb2YgI3RleHQgPiBESVYgPiBC
T0RZID4gSFRNTCA+ICNkb2N1bWVudCBhZmZpbml0eTpOU1NlbGVjdGlvbkFmZmluaXR5RG93bnN0
cmVhbSBzdGlsbFNlbGVjdGluZzpGQUxTRQorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENo
YW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCitFRElU
SU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlOldlYlZpZXdEaWRDaGFuZ2VOb3RpZmljYXRp
b24KK0VESVRJTkcgREVMRUdBVEU6IHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2U6cmFuZ2Ug
ZnJvbSAxMyBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDEzIG9m
ICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG9ET01SYW5nZTpyYW5nZSBm
cm9tIDQgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byAxMiBvZiAj
dGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IGFmZmluaXR5Ok5TU2VsZWN0aW9u
QWZmaW5pdHlEb3duc3RyZWFtIHN0aWxsU2VsZWN0aW5nOkZBTFNFCitFRElUSU5HIERFTEVHQVRF
OiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3Rp
ZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHNob3VsZEluc2VydFRleHQ6bWVzc2FnZSByZXBs
YWNpbmdET01SYW5nZTpyYW5nZSBmcm9tIDQgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+
ICNkb2N1bWVudCB0byAxMiBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50
IGdpdmVuQWN0aW9uOldlYlZpZXdJbnNlcnRBY3Rpb25UeXBlZAorRURJVElORyBERUxFR0FURTog
c2hvdWxkQ2hhbmdlU2VsZWN0ZWRET01SYW5nZTpyYW5nZSBmcm9tIDQgb2YgI3RleHQgPiBESVYg
PiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byAxMiBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBI
VE1MID4gI2RvY3VtZW50IHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSAxMSBvZiAjdGV4dCA+IERJViA+
IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDExIG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhU
TUwgPiAjZG9jdW1lbnQgYWZmaW5pdHk6TlNTZWxlY3Rpb25BZmZpbml0eURvd25zdHJlYW0gc3Rp
bGxTZWxlY3Rpbmc6RkFMU0UKK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxl
Y3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgorRURJVElORyBERUxF
R0FURTogd2ViVmlld0RpZENoYW5nZTpXZWJWaWV3RGlkQ2hhbmdlTm90aWZpY2F0aW9uCitFRElU
SU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VT
ZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHNob3VsZERlbGV0ZURPTVJh
bmdlOnJhbmdlIGZyb20gMTEgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVu
dCB0byAxMiBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50CitFRElUSU5H
IERFTEVHQVRFOiBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlOnJhbmdlIGZyb20gMTEgb2Yg
I3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byAxMSBvZiAjdGV4dCA+IERJ
ViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSAxMSBvZiAj
dGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDExIG9mICN0ZXh0ID4gRElW
ID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgYWZmaW5pdHk6TlNTZWxlY3Rpb25BZmZpbml0eURv
d25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6RkFMU0UKK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdE
aWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgor
RURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZTpXZWJWaWV3RGlkQ2hhbmdlTm90aWZp
Y2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiBzaG91bGREZWxldGVET01SYW5nZTpyYW5nZSBmcm9t
IDEwIG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gMTEgb2YgI3Rl
eHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudAorRURJVElORyBERUxFR0FURTogc2hv
dWxkQ2hhbmdlU2VsZWN0ZWRET01SYW5nZTpyYW5nZSBmcm9tIDEwIG9mICN0ZXh0ID4gRElWID4g
Qk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gMTAgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRN
TCA+ICNkb2N1bWVudCB0b0RPTVJhbmdlOnJhbmdlIGZyb20gMTAgb2YgI3RleHQgPiBESVYgPiBC
T0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byAxMCBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1M
ID4gI2RvY3VtZW50IGFmZmluaXR5Ok5TU2VsZWN0aW9uQWZmaW5pdHlEb3duc3RyZWFtIHN0aWxs
U2VsZWN0aW5nOkZBTFNFCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0
aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdB
VEU6IHdlYlZpZXdEaWRDaGFuZ2U6V2ViVmlld0RpZENoYW5nZU5vdGlmaWNhdGlvbgorRURJVElO
RyBERUxFR0FURTogc2hvdWxkRGVsZXRlRE9NUmFuZ2U6cmFuZ2UgZnJvbSA5IG9mICN0ZXh0ID4g
RElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gMTAgb2YgI3RleHQgPiBESVYgPiBCT0RZ
ID4gSFRNTCA+ICNkb2N1bWVudAorRURJVElORyBERUxFR0FURTogc2hvdWxkQ2hhbmdlU2VsZWN0
ZWRET01SYW5nZTpyYW5nZSBmcm9tIDkgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNk
b2N1bWVudCB0byA5IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG9E
T01SYW5nZTpyYW5nZSBmcm9tIDkgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1
bWVudCB0byA5IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgYWZmaW5p
dHk6TlNTZWxlY3Rpb25BZmZpbml0eURvd25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6RkFMU0UKK0VE
SVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5n
ZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5n
ZTpXZWJWaWV3RGlkQ2hhbmdlTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiBzaG91bGRE
ZWxldGVET01SYW5nZTpyYW5nZSBmcm9tIDggb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+
ICNkb2N1bWVudCB0byA5IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQK
K0VESVRJTkcgREVMRUdBVEU6IHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2U6cmFuZ2UgZnJv
bSA4IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gOCBvZiAjdGV4
dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSA4
IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gOCBvZiAjdGV4dCA+
IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IGFmZmluaXR5Ok5TU2VsZWN0aW9uQWZmaW5p
dHlEb3duc3RyZWFtIHN0aWxsU2VsZWN0aW5nOkZBTFNFCitFRElUSU5HIERFTEVHQVRFOiB3ZWJW
aWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRp
b24KK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2U6V2ViVmlld0RpZENoYW5nZU5v
dGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogc2hvdWxkRGVsZXRlRE9NUmFuZ2U6cmFuZ2Ug
ZnJvbSA3IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gOCBvZiAj
dGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50CitFRElUSU5HIERFTEVHQVRFOiBz
aG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlOnJhbmdlIGZyb20gNyBvZiAjdGV4dCA+IERJViA+
IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDcgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRN
TCA+ICNkb2N1bWVudCB0b0RPTVJhbmdlOnJhbmdlIGZyb20gNyBvZiAjdGV4dCA+IERJViA+IEJP
RFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDcgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+
ICNkb2N1bWVudCBhZmZpbml0eTpOU1NlbGVjdGlvbkFmZmluaXR5RG93bnN0cmVhbSBzdGlsbFNl
bGVjdGluZzpGQUxTRQorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlv
bjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRF
OiB3ZWJWaWV3RGlkQ2hhbmdlOldlYlZpZXdEaWRDaGFuZ2VOb3RpZmljYXRpb24KK0VESVRJTkcg
REVMRUdBVEU6IHNob3VsZERlbGV0ZURPTVJhbmdlOnJhbmdlIGZyb20gNiBvZiAjdGV4dCA+IERJ
ViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDcgb2YgI3RleHQgPiBESVYgPiBCT0RZID4g
SFRNTCA+ICNkb2N1bWVudAorRURJVElORyBERUxFR0FURTogc2hvdWxkQ2hhbmdlU2VsZWN0ZWRE
T01SYW5nZTpyYW5nZSBmcm9tIDYgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1
bWVudCB0byA2IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG9ET01S
YW5nZTpyYW5nZSBmcm9tIDYgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVu
dCB0byA2IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgYWZmaW5pdHk6
TlNTZWxlY3Rpb25BZmZpbml0eURvd25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6RkFMU0UKK0VESVRJ
TkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNl
bGVjdGlvbk5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZTpX
ZWJWaWV3RGlkQ2hhbmdlTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiBzaG91bGREZWxl
dGVET01SYW5nZTpyYW5nZSBmcm9tIDUgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNk
b2N1bWVudCB0byA2IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQKK0VE
SVRJTkcgREVMRUdBVEU6IHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2U6cmFuZ2UgZnJvbSA1
IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gNSBvZiAjdGV4dCA+
IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSA1IG9m
ICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gNSBvZiAjdGV4dCA+IERJ
ViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IGFmZmluaXR5Ok5TU2VsZWN0aW9uQWZmaW5pdHlE
b3duc3RyZWFtIHN0aWxsU2VsZWN0aW5nOkZBTFNFCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3
RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24K
K0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2U6V2ViVmlld0RpZENoYW5nZU5vdGlm
aWNhdGlvbgorRURJVElORyBERUxFR0FURTogc2hvdWxkRGVsZXRlRE9NUmFuZ2U6cmFuZ2UgZnJv
bSA0IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gNSBvZiAjdGV4
dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50CitFRElUSU5HIERFTEVHQVRFOiBzaG91
bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlOnJhbmdlIGZyb20gNCBvZiAjdGV4dCA+IERJViA+IEJP
RFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDQgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+
ICNkb2N1bWVudCB0b0RPTVJhbmdlOnJhbmdlIGZyb20gNCBvZiAjdGV4dCA+IERJViA+IEJPRFkg
PiBIVE1MID4gI2RvY3VtZW50IHRvIDQgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNk
b2N1bWVudCBhZmZpbml0eTpOU1NlbGVjdGlvbkFmZmluaXR5RG93bnN0cmVhbSBzdGlsbFNlbGVj
dGluZzpGQUxTRQorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpX
ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiB3
ZWJWaWV3RGlkQ2hhbmdlOldlYlZpZXdEaWRDaGFuZ2VOb3RpZmljYXRpb24KK2xheWVyIGF0ICgw
LDApIHNpemUgODAweDYwMAorICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAorbGF5
ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBz
aXplIDgwMHg2MDAKKyAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDc4NHg1ODQK
KyAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDApIHNpemUgNzg0eDE4CisgICAgICAgIFJl
bmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDM5N3gxOAorICAgICAgICAgIHRleHQgcnVu
IGF0ICgwLDApIHdpZHRoIDM5NzogIlVwb24gc3VjY2VzcywgeW91IHNob3VsZCBvbmx5IHNlZSB0
aGUgd29yZCBcInRoZVwiIGluIHRleHQgZmllbGQuIgorICAgICAgUmVuZGVyQmxvY2sge1B9IGF0
ICgwLDM0KSBzaXplIDc4NHgxOCBbY29sb3I9IzAwODAwMF0KKyAgICAgICAgUmVuZGVyVGV4dCB7
I3RleHR9IGF0ICgwLDApIHNpemUgNzAyeDE4CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkg
d2lkdGggNzAyOiAiTm90ZSwgdGhpcyB0ZXN0IGNhbiBmYWlsIGR1ZSB0byB1c2VyIHNwZWNpZmlj
IHNwZWxsIGNoZWNraW5nIGRhdGEuIFRvIGZpeCB0aGlzLCByZW1vdmUgYWxsIGZpbGVzIGluIH4v
TGlicmFyeS9TcGVsbGluZy4iCisgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCw2OCkgc2l6
ZSA3ODR4NTYgW2JvcmRlcjogKDJweCBzb2xpZCAjRkYwMDAwKV0KKyAgICAgICAgUmVuZGVyVGV4
dCB7I3RleHR9IGF0ICgxNCwxNCkgc2l6ZSAzNngyOAorICAgICAgICAgIHRleHQgcnVuIGF0ICgx
NCwxNCkgd2lkdGggMzY6ICJ0aGUgIgorICAgICAgICBSZW5kZXJJbmxpbmUge1NQQU59IGF0ICgw
LDApIHNpemUgMHgyOAorY2FyZXQ6IHBvc2l0aW9uIDQgb2YgY2hpbGQgMCB7I3RleHR9IG9mIGNo
aWxkIDUge0RJVn0gb2YgYm9keQpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2VkaXRp
bmcvc3BlbGxpbmcvZGVsZXRlLWF1dG9jb3JyZWN0ZWQtd29yZC0xLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2VkaXRpbmcvc3BlbGxpbmcvZGVsZXRlLWF1dG9j
b3JyZWN0ZWQtd29yZC0xLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvZWRpdGluZy9zcGVsbGluZy9kZWxldGUtYXV0b2NvcnJlY3RlZC13b3JkLTEuaHRtbAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSw1NiBAQAorPGh0bWw+IAorPGhlYWQ+CisKKzxzdHlsZT4K
Ky5lZGl0aW5nIHsgCisgICAgYm9yZGVyOiAycHggc29saWQgcmVkOyAKKyAgICBwYWRkaW5nOiAx
MnB4OyAKKyAgICBmb250LXNpemU6IDI0cHg7IAorfQorPC9zdHlsZT4KKzxzY3JpcHQgc3JjPS4u
Ly4uLy4uLy4uL2VkaXRpbmcvZWRpdGluZy5qcyBsYW5ndWFnZT0iSmF2YVNjcmlwdCIgdHlwZT0i
dGV4dC9KYXZhU2NyaXB0IiA+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisKK2Z1bmN0aW9uIGVkaXRp
bmdUZXN0KCkgeworICAgIHR5cGVDaGFyYWN0ZXJDb21tYW5kKCd0Jyk7CisgICAgdHlwZUNoYXJh
Y3RlckNvbW1hbmQoJ2gnKTsKKyAgICB0eXBlQ2hhcmFjdGVyQ29tbWFuZCgnZScpOworICAgIHR5
cGVDaGFyYWN0ZXJDb21tYW5kKCcgJyk7CisgICAgdHlwZUNoYXJhY3RlckNvbW1hbmQoJ20nKTsK
KyAgICB0eXBlQ2hhcmFjdGVyQ29tbWFuZCgnZScpOworICAgIHR5cGVDaGFyYWN0ZXJDb21tYW5k
KCdzJyk7CisgICAgdHlwZUNoYXJhY3RlckNvbW1hbmQoJ3MnKTsKKyAgICB0eXBlQ2hhcmFjdGVy
Q29tbWFuZCgnYScpOworICAgIHR5cGVDaGFyYWN0ZXJDb21tYW5kKCdnJyk7CisgICAgdHlwZUNo
YXJhY3RlckNvbW1hbmQoJ2UnKTsKKyAgICB0eXBlQ2hhcmFjdGVyQ29tbWFuZCgnZScpOworICAg
IHR5cGVDaGFyYWN0ZXJDb21tYW5kKCcgJyk7CisgICAgZXhlY0RlbGV0ZUNvbW1hbmQoKTsKKyAg
ICBleGVjRGVsZXRlQ29tbWFuZCgpOworICAgIGV4ZWNEZWxldGVDb21tYW5kKCk7CisgICAgZXhl
Y0RlbGV0ZUNvbW1hbmQoKTsKKyAgICBleGVjRGVsZXRlQ29tbWFuZCgpOworICAgIGV4ZWNEZWxl
dGVDb21tYW5kKCk7CisgICAgZXhlY0RlbGV0ZUNvbW1hbmQoKTsKKyAgICBleGVjRGVsZXRlQ29t
bWFuZCgpOworfQorCis8L3NjcmlwdD4KKworPHRpdGxlPkRlbGV0ZSBBdXRvY29ycmVjdGVkIFdv
cmQgVGVzdCAxPC90aXRsZT4gCis8L2hlYWQ+IAorPGJvZHk+Cis8ZGl2PlVwb24gc3VjY2Vzcywg
eW91IHNob3VsZCBvbmx5IHNlZSB0aGUgd29yZCAidGhlIiBpbiB0ZXh0IGZpZWxkLjwvZGl2Pgor
PHAgIHN0eWxlPSJjb2xvcjpncmVlbiI+Tm90ZSwgdGhpcyB0ZXN0IGNhbiBmYWlsIGR1ZSB0byB1
c2VyIHNwZWNpZmljIHNwZWxsIGNoZWNraW5nIGRhdGEuIFRvIGZpeCB0aGlzLCByZW1vdmUgYWxs
IGZpbGVzIGluIH4vTGlicmFyeS9TcGVsbGluZy48L3A+Cis8ZGl2IGNvbnRlbnRlZGl0YWJsZSBp
ZD0icm9vdCIgY2xhc3M9ImVkaXRpbmciPgorPHNwYW4gaWQ9InRlc3QiPjwvc3Bhbj4KKzwvZGl2
PgorCisKKzxzY3JpcHQ+CitydW5FZGl0aW5nVGVzdCgpOworPC9zY3JpcHQ+CisKKzwvYm9keT4K
KzwvaHRtbD4K
</data>
<flag name="review"
          id="65793"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>75068</attachid>
            <date>2010-11-29 15:03:23 -0800</date>
            <delta_ts>2010-11-29 15:05:36 -0800</delta_ts>
            <desc>Proposed patch (v5)</desc>
            <filename>webkit_bug50137.patch</filename>
            <type>text/plain</type>
            <size>75469</size>
            <attacher name="Jia Pu">jiapu.mail</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3MjgyNSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNjMgQEAKKzIwMTAtMTEtMjkgIEppYSBQdSAgPGpwdUBhcHBsZS5jb20+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3VwcG9ydCBtdWx0
aXBsZSBjb3JyZWN0aW9uIGNhbmRpZGF0ZXMgcGFuZWwgZm9yIG1pc3NwZWxsZWQgd29yZCBvbiBN
YWMgT1MgWC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTUwMTM3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NTY4MDU5PgorCisgICAgICAgIFRlc3Q6
IHBsYXRmb3JtL21hYy9lZGl0aW5nL3NwZWxsaW5nL2RlbGV0ZS1hdXRvY29ycmVjdGVkLXdvcmQt
MS5odG1sCisgICAgICAgIE1hbnVhbCB0ZXN0OiBXZWJDb3JlL21hbnVhbC10ZXN0cy9hdXRvY29y
cmVjdGlvbi9kaXNtaXNzLW11bHRpcGxlLWd1ZXNzZXMuaHRtbAorICAgICAgICAgICAgICAgICAg
ICAgV2ViQ29yZS9tYW51YWwtdGVzdHMvYXV0b2NvcnJlY3Rpb24vc2VsZWN0LWZyb20tbXVsdGlw
bGUtZ3Vlc3Nlcy5odG1sCisKKyAgICAgICAgVGhpcyBwYXRjaCBpcyBmb3Igc3VwcG9ydGluZyBt
dWx0aXBsZSBjb3JyZWN0aW9uIHN1Z2dlc3Rpb24gcGFuZWwgb24gTWFjIE9TIFguCisgICAgICAg
IFRoZSBiZWhhdmlvciBhbmQgaW1wbGVtZW50YXRpb24gaXMgc2ltaWxhciB0byB0aGF0IG9mIHJl
dmVyc2lvbiBjYW5kaWF0ZSBwYW5lbC4KKworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOiBBZGRl
ZCBhbmQgcmVtb3ZlZCBzeW1ib2xzLgorCisgICAgICAgICogZWRpdGluZy9Db3JyZWN0aW9uUGFu
ZWxJbmZvLmg6IEFkZGVkIG5ldyBjb3JyZWN0aW9uIHBhbmVsIHR5cGUsIFBhbmVsVHlwZVNwZWxs
aW5nU3VnZ2VzdGlvbnMuCisKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjptYXJrZXJUeXBlc0ZvckF1dG9jb3JyZWN0aW9uKTogQ29udmVuaWVudCBmdW5j
dGlvbiBmb3IgZ2V0dGluZyBtYXJrZXIgdHlwZXMgdG8KKyAgICAgICAgICBiZSBhZGRlZCB0byBh
dXRvY29ycmVjdGVkIHdvcmQuCisgICAgICAgIChXZWJDb3JlOjpib3VuZGluZ0JveEZvclJhbmdl
KTogQ29udmVuaWVudCBmdW5jdGlvbiBmb3IgY2FsY3VsYXRpbmcgdGhlIGJvdW5kaW5nIGJveCBv
ZiBhIHJhbmdlLgorICAgICAgICAoV2ViQ29yZTo6bWFya2VyVHlwZXNGb3JSZXBsYWNlbWVudCk6
IENvbnZlbmllbnQgZnVuY3Rpb24gZm9yIGdldHRpbmcgbWFya2VyIHR5cGVzIHRvCisgICAgICAg
ICAgYmUgYWRkZWQgdG8gd29yZCB0aGF0IGhhcyBiZWVuIHJlcGxhY2VkIGJ5IHZhcmlvdXMgY29y
cmVjdGlvbiBwYW5lbC4KKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6cmVzcG9uZFRvQ2hhbmdl
ZFNlbGVjdGlvbik6IEFkZGVkIGNvZGUgdG8gdHJpZ2dlciB0aW1lciBmb3IgbXVsdGlwbGUKKyAg
ICAgICAgICBzdWdnZXN0aW9uIHBhbmVsLgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpndWVz
c2VzRm9yTWlzc3BlbGxlZFNlbGVjdGlvbik6IEFkb3B0ZWQgbmV3IHNpZ25hdHVyZSBvZiBFZGl0
b3JDbGllbnQ6OmdldEd1ZXNzZXNGb3JXb3JkKCkuCisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6
Om1hcmtNaXNzcGVsbGluZ3NBZnRlclR5cGluZ1RvV29yZCk6IEFkb3B0ZWQgbmV3IHNpZ25hdHVy
ZSBvZiBhcHBseUNvcnJlY3Rpb25QYW5lbEluZm8oKS4KKyAgICAgICAgKFdlYkNvcmU6OkVkaXRv
cjo6bWFya0FsbE1pc3NwZWxsaW5nc0FuZEJhZEdyYW1tYXJJblJhbmdlcyk6IERpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6RWRpdG9yOjpjb3JyZWN0aW9uUGFuZWxUaW1lckZpcmVkKTogQWRkZWQg
Y29kZSB0byBoYW5kbGUgbmV3IG11bHRpcGxlIHN1Z2dlc3Rpb24gcGFuZWwuCisgICAgICAgIChX
ZWJDb3JlOjpFZGl0b3I6OmhhbmRsZUNvcnJlY3Rpb25QYW5lbFJlc3VsdCk6IFJlcGxhY2VkIGhh
bmRsZVJlamVjdGVkQ29ycmVjdGlvbigpLCBzaW5jZQorICAgICAgICAgIHdpdGggbmV3IEFwcEtp
dCBjb3JyZWN0aW9uIHBhbmVsIEFQSSwgbm90IG9ubHkgcmVqZWN0aW9uLCBidXQgYWxzbyBjb25m
aXJtYXRpb24gY2FuIGJlCisgICAgICAgICAgaGFuZGxlZCBpbiBjYWxsYmFjay4KKyAgICAgICAg
KFdlYkNvcmU6OkVkaXRvcjo6c3RvcENvcnJlY3Rpb25QYW5lbFRpbWVyKTogTW92ZWQgdGhlIGNv
ZGUgdGhhdCBjbGVhcnMgY29ycmVjdGlvbiBwYW5lbCBpbmZvCisgICAgICAgICAgZnJvbSBkaXNt
aXNzQ29ycmVjdGlvblBhbmVsKCkgdG8gdGhpcyBmdW5jdGlvbiB0byBmaXggYSBidWcgdGhhdCB3
b3VsZCBvY2N1ciB3aGVuIGRlbGV0aW5nCisgICAgICAgICAgYXV0b2NvcnJlY3RlZCB3b3JkLgor
ICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpkaXNtaXNzQ29ycmVjdGlvblBhbmVsKTogRGl0dG8u
CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OmFwcGx5Q29ycmVjdGlvblBhbmVsSW5mbyk6IEFk
ZGVkIGNvZGUgdG8gaGFuZGxlIG5ldyBtdWx0aXBsZSBzdWdnZXN0aW9uIHBhbmVsLgorCisgICAg
ICAgICogZWRpdGluZy9FZGl0b3IuaDogUmVwbGFjZWQgaGFuZGxlUmVqZWN0ZWRDb3JyZWN0aW9u
KCkgd2l0aCBoYW5kbGVDb3JyZWN0aW9uUGFuZWxSZXN1bHQoKS4KKyAgICAgICAgICBDaGFuZ2Vk
IHRoZSBzaWduYXR1cmUgb2YgYXBwbHlDb3JyZWN0aW9uUGFuZWxJbmZvKCkgdG8gaGFubGRlIG5l
dyBjb3JyZWN0aW9uIHBhbmVsIHR5cGUuCisKKyAgICAgICAgKiBlZGl0aW5nL1RleHRDaGVja2lu
Z0hlbHBlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0Q2hlY2tpbmdIZWxwZXI6Omd1ZXNz
ZXNGb3JNaXNzcGVsbGVkT3JVbmdyYW1tYXRpY2FsUmFuZ2UpOiBBZG9wdGVkIG5ldyBFZGl0b3JD
bGllbnQ6OmdldEd1ZXNzZXNGb3JXb3JkKCkuCisKKyAgICAgICAgKiBlZGl0aW5nL1RleHRDaGVj
a2luZ0hlbHBlci5oOiBNYWRlIHBhcmFncmFwaFJhbmdlKCkgcHVibGljLgorCisgICAgICAgICog
bG9hZGVyL0VtcHR5Q2xpZW50cy5oOgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlFZGl0b3JDbGll
bnQ6OnNob3dDb3JyZWN0aW9uUGFuZWwpOiBBZG9wdGVkIG5ldyBzaWduYXR1cmUgZGVmaW5lZCBp
biBiYXNlIGNsYXNzLgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlFZGl0b3JDbGllbnQ6OmdldEd1
ZXNzZXNGb3JXb3JkKTogRGl0dG8uCisKKyAgICAgICAgKiBtYW51YWwtdGVzdHMvYXV0b2NvcnJl
Y3Rpb24vZGlzbWlzcy1tdWx0aXBsZS1ndWVzc2VzLmh0bWw6IEFkZGVkLgorCisgICAgICAgICog
bWFudWFsLXRlc3RzL2F1dG9jb3JyZWN0aW9uL3NlbGVjdC1mcm9tLW11bHRpcGxlLWd1ZXNzZXMu
aHRtbDogQWRkZWQuCisKKyAgICAgICAgKiBwYWdlL0VkaXRvckNsaWVudC5oOiAgQ2hhbmdlZCBz
aG93Q29ycmVjdGlvblBhbmVsKCkgdG8gYWxsb3cgcGFzc2luZyBtdWx0aXBsZSBjb3JyZWN0aW9u
CisgICAgICAgICAgY2FuZGlkYXRlcy4gQ2hhbmdlZCBnZXRHdWVzc2VzRm9yV29yZCgpIHRvIGFs
bG93IHBhc3NpbmcgaW4gY29udGV4dHVhbCB0ZXh0IGZvciBiZXR0ZXIKKyAgICAgICAgICBjb3Jy
ZWN0aW9uIHN1Z2dlc3Rpb25zIChmb3IgdGhvc2Ugc3BlbGxjaGVja2VycyB0aGF0IHV0aWxpemVz
IHN1Y2ggY29udGV4dHVhbCBpbmZvcm1hdGlvbikuCisKIDIwMTAtMTEtMjkgIERpbWl0cmkgR2xh
emtvdiAgPGRnbGF6a292QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJp
biBBZGxlci4KSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5leHAuaW4KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9XZWJDb3JlLmV4cC5pbgkocmV2aXNpb24gNzI4MjUpCisrKyBXZWJDb3JlL1dlYkNvcmUu
ZXhwLmluCSh3b3JraW5nIGNvcHkpCkBAIC02ODEsMTAgKzY4MSwxMCBAQCBfX1pON1dlYkNvcmU2
RWRpdG9yMjFpc1NlbGVjdGlvbk1pc3NwZWxsCiBfX1pON1dlYkNvcmU2RWRpdG9yMjNzZXRCYXNl
V3JpdGluZ0RpcmVjdGlvbkVOU18xNldyaXRpbmdEaXJlY3Rpb25FCiBfX1pON1dlYkNvcmU2RWRp
dG9yMjRhZHZhbmNlVG9OZXh0TWlzc3BlbGxpbmdFYgogX19aTjdXZWJDb3JlNkVkaXRvcjI0Y29t
cHV0ZUFuZFNldFR5cGluZ1N0eWxlRVBOU18xOUNTU1N0eWxlRGVjbGFyYXRpb25FTlNfMTBFZGl0
QWN0aW9uRQotX19aTjdXZWJDb3JlNkVkaXRvcjI0aGFuZGxlUmVqZWN0ZWRDb3JyZWN0aW9uRXYK
IF9fWk43V2ViQ29yZTZFZGl0b3IyNGlzU2VsZWN0aW9uVW5ncmFtbWF0aWNhbEV2CiBfX1pON1dl
YkNvcmU2RWRpdG9yMjZkZWNyZWFzZVNlbGVjdGlvbkxpc3RMZXZlbEV2CiBfX1pON1dlYkNvcmU2
RWRpdG9yMjZpbmNyZWFzZVNlbGVjdGlvbkxpc3RMZXZlbEV2CitfX1pON1dlYkNvcmU2RWRpdG9y
MjdoYW5kbGVDb3JyZWN0aW9uUGFuZWxSZXN1bHRFUktOM1dURjZTdHJpbmdFCiBfX1pON1dlYkNv
cmU2RWRpdG9yMjljYW5EZWNyZWFzZVNlbGVjdGlvbkxpc3RMZXZlbEV2CiBfX1pON1dlYkNvcmU2
RWRpdG9yMjljYW5JbmNyZWFzZVNlbGVjdGlvbkxpc3RMZXZlbEV2CiBfX1pON1dlYkNvcmU2RWRp
dG9yMzBhcHBseVBhcmFncmFwaFN0eWxlVG9TZWxlY3Rpb25FUE5TXzE5Q1NTU3R5bGVEZWNsYXJh
dGlvbkVOU18xMEVkaXRBY3Rpb25FCkluZGV4OiBXZWJDb3JlL2VkaXRpbmcvQ29ycmVjdGlvblBh
bmVsSW5mby5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZWRpdGluZy9Db3JyZWN0aW9uUGFuZWxJ
bmZvLmgJKHJldmlzaW9uIDcyODI1KQorKysgV2ViQ29yZS9lZGl0aW5nL0NvcnJlY3Rpb25QYW5l
bEluZm8uaAkod29ya2luZyBjb3B5KQpAQCAtNDQsNyArNDQsOCBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiBzdHJ1Y3QgQ29ycmVjdGlvblBhbmVsSW5mbyB7CiAgICAgZW51bSBQYW5lbFR5cGUgewog
ICAgICAgICBQYW5lbFR5cGVDb3JyZWN0aW9uID0gMCwKLSAgICAgICAgUGFuZWxUeXBlUmV2ZXJz
aW9uCisgICAgICAgIFBhbmVsVHlwZVJldmVyc2lvbiwKKyAgICAgICAgUGFuZWxUeXBlU3BlbGxp
bmdTdWdnZXN0aW9ucwogICAgIH07CiAKICAgICBSZWZQdHI8UmFuZ2U+IG1fcmFuZ2VUb0JlUmVw
bGFjZWQ7CkluZGV4OiBXZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAkocmV2aXNpb24gNzI4MjUpCisrKyBXZWJDb3JlL2Vk
aXRpbmcvRWRpdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTIsNiArOTIsMzcgQEAgc3RhdGlj
IGlubGluZSBib29sIGlzQW1iaWd1b3VzQm91bmRhcnlDaAogICAgIHJldHVybiBjaGFyYWN0ZXIg
PT0gJ1wnJyB8fCBjaGFyYWN0ZXIgPT0gcmlnaHRTaW5nbGVRdW90YXRpb25NYXJrIHx8IGNoYXJh
Y3RlciA9PSBoZWJyZXdQdW5jdHVhdGlvbkdlcnNoYXlpbTsKIH0KIAorI2lmIFNVUFBPUlRfQVVU
T0NPUlJFQ1RJT05fUEFORUwKK3N0YXRpYyBjb25zdCBWZWN0b3I8RG9jdW1lbnRNYXJrZXI6Ok1h
cmtlclR5cGU+JiBtYXJrZXJUeXBlc0ZvckF1dG9jb3JyZWN0aW9uKCkKK3sKKyAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKFZlY3RvcjxEb2N1bWVudE1hcmtlcjo6TWFya2VyVHlwZT4sIG1hcmtlclR5
cGVzRm9yQXV0b0NvcnJlY3Rpb24sICgpKTsKKyAgICBpZiAobWFya2VyVHlwZXNGb3JBdXRvQ29y
cmVjdGlvbi5pc0VtcHR5KCkpIHsKKyAgICAgICAgbWFya2VyVHlwZXNGb3JBdXRvQ29ycmVjdGlv
bi5hcHBlbmQoRG9jdW1lbnRNYXJrZXI6OlJlcGxhY2VtZW50KTsKKyAgICAgICAgbWFya2VyVHlw
ZXNGb3JBdXRvQ29ycmVjdGlvbi5hcHBlbmQoRG9jdW1lbnRNYXJrZXI6OkNvcnJlY3Rpb25JbmRp
Y2F0b3IpOworICAgIH0KKyAgICByZXR1cm4gbWFya2VyVHlwZXNGb3JBdXRvQ29ycmVjdGlvbjsK
K30KKworc3RhdGljIEZsb2F0UmVjdCBib3VuZGluZ0JveEZvclJhbmdlKFJhbmdlKiByYW5nZSkK
K3sKKyAgICBWZWN0b3I8RmxvYXRRdWFkPiB0ZXh0UXVhZHM7CisgICAgcmFuZ2UtPmdldEJvcmRl
ckFuZFRleHRRdWFkcyh0ZXh0UXVhZHMpOworICAgIEZsb2F0UmVjdCB0b3RhbEJvdW5kaW5nQm94
OworICAgIHNpemVfdCBzaXplID0gdGV4dFF1YWRzLnNpemUoKTsKKyAgICBmb3IgKHNpemVfdCBp
ID0gMDsgaTwgc2l6ZTsgKytpKQorICAgICAgICB0b3RhbEJvdW5kaW5nQm94LnVuaXRlKHRleHRR
dWFkc1tpXS5ib3VuZGluZ0JveCgpKTsKKyAgICByZXR1cm4gdG90YWxCb3VuZGluZ0JveDsKK30K
KyNlbmRpZiAvLyBTVVBQT1JUX0FVVE9DT1JSRUNUSU9OX1BBTkVMCisKK3N0YXRpYyBjb25zdCBW
ZWN0b3I8RG9jdW1lbnRNYXJrZXI6Ok1hcmtlclR5cGU+JiBtYXJrZXJUeXBlc0ZvclJlcGxhY2Vt
ZW50KCkKK3sKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFZlY3RvcjxEb2N1bWVudE1hcmtlcjo6
TWFya2VyVHlwZT4sIG1hcmtlclR5cGVzRm9yUmVwbGFjZW1lbnQsICgpKTsKKyAgICBpZiAobWFy
a2VyVHlwZXNGb3JSZXBsYWNlbWVudC5pc0VtcHR5KCkpCisgICAgICAgIG1hcmtlclR5cGVzRm9y
UmVwbGFjZW1lbnQuYXBwZW5kKERvY3VtZW50TWFya2VyOjpSZXBsYWNlbWVudCk7CisgICAgcmV0
dXJuIG1hcmtlclR5cGVzRm9yUmVwbGFjZW1lbnQ7Cit9CisKIC8vIFdoZW4gYW4gZXZlbnQgaGFu
ZGxlciBoYXMgbW92ZWQgdGhlIHNlbGVjdGlvbiBvdXRzaWRlIG9mIGEgdGV4dCBjb250cm9sCiAv
LyB3ZSBzaG91bGQgdXNlIHRoZSB0YXJnZXQgY29udHJvbCdzIHNlbGVjdGlvbiBmb3IgdGhpcyBl
ZGl0aW5nIG9wZXJhdGlvbi4KIFZpc2libGVTZWxlY3Rpb24gRWRpdG9yOjpzZWxlY3Rpb25Gb3JD
b21tYW5kKEV2ZW50KiBldmVudCkKQEAgLTUwMCwxMyArNTMxLDE4IEBAIHZvaWQgRWRpdG9yOjpy
ZXNwb25kVG9DaGFuZ2VkU2VsZWN0aW9uKGMKICAgICBzaXplX3QgbWFya2VyQ291bnQgPSBtYXJr
ZXJzLnNpemUoKTsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1hcmtlckNvdW50OyArK2kp
IHsKICAgICAgICAgY29uc3QgRG9jdW1lbnRNYXJrZXImIG1hcmtlciA9IG1hcmtlcnNbaV07Ci0g
ICAgICAgIGlmIChtYXJrZXIudHlwZSA9PSBEb2N1bWVudE1hcmtlcjo6Q29ycmVjdGlvbkluZGlj
YXRvciAmJiBzdGF0aWNfY2FzdDxpbnQ+KG1hcmtlci5lbmRPZmZzZXQpID09IGVuZE9mZnNldCkg
eworICAgICAgICBpZiAoKChtYXJrZXIudHlwZSA9PSBEb2N1bWVudE1hcmtlcjo6Q29ycmVjdGlv
bkluZGljYXRvciAmJiBtYXJrZXIuZGVzY3JpcHRpb24ubGVuZ3RoKCkpIHx8IG1hcmtlci50eXBl
ID09IERvY3VtZW50TWFya2VyOjpTcGVsbGluZykgJiYgc3RhdGljX2Nhc3Q8aW50PihtYXJrZXIu
ZW5kT2Zmc2V0KSA9PSBlbmRPZmZzZXQpIHsKICAgICAgICAgICAgIFJlZlB0cjxSYW5nZT4gd29y
ZFJhbmdlID0gUmFuZ2U6OmNyZWF0ZShmcmFtZSgpLT5kb2N1bWVudCgpLCBub2RlLCBtYXJrZXIu
c3RhcnRPZmZzZXQsIG5vZGUsIG1hcmtlci5lbmRPZmZzZXQpOwogICAgICAgICAgICAgU3RyaW5n
IGN1cnJlbnRXb3JkID0gcGxhaW5UZXh0KHdvcmRSYW5nZS5nZXQoKSk7Ci0gICAgICAgICAgICBp
ZiAoY3VycmVudFdvcmQubGVuZ3RoKCkgPiAwICYmIG1hcmtlci5kZXNjcmlwdGlvbi5sZW5ndGgo
KSA+IDApIHsKKyAgICAgICAgICAgIGlmIChjdXJyZW50V29yZC5sZW5ndGgoKSkgewogICAgICAg
ICAgICAgICAgIG1fY29ycmVjdGlvblBhbmVsSW5mby5tX3JhbmdlVG9CZVJlcGxhY2VkID0gd29y
ZFJhbmdlOwotICAgICAgICAgICAgICAgIG1fY29ycmVjdGlvblBhbmVsSW5mby5tX3JlcGxhY2Vt
ZW50U3RyaW5nID0gbWFya2VyLmRlc2NyaXB0aW9uOwotICAgICAgICAgICAgICAgIHN0YXJ0Q29y
cmVjdGlvblBhbmVsVGltZXIoQ29ycmVjdGlvblBhbmVsSW5mbzo6UGFuZWxUeXBlUmV2ZXJzaW9u
KTsKKyAgICAgICAgICAgICAgICBtX2NvcnJlY3Rpb25QYW5lbEluZm8ubV9yZXBsYWNlZFN0cmlu
ZyA9IGN1cnJlbnRXb3JkOworICAgICAgICAgICAgICAgIGlmIChtYXJrZXIudHlwZSA9PSBEb2N1
bWVudE1hcmtlcjo6U3BlbGxpbmcpCisgICAgICAgICAgICAgICAgICAgIHN0YXJ0Q29ycmVjdGlv
blBhbmVsVGltZXIoQ29ycmVjdGlvblBhbmVsSW5mbzo6UGFuZWxUeXBlU3BlbGxpbmdTdWdnZXN0
aW9ucyk7CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIG1fY29y
cmVjdGlvblBhbmVsSW5mby5tX3JlcGxhY2VtZW50U3RyaW5nID0gbWFya2VyLmRlc2NyaXB0aW9u
OworICAgICAgICAgICAgICAgICAgICBzdGFydENvcnJlY3Rpb25QYW5lbFRpbWVyKENvcnJlY3Rp
b25QYW5lbEluZm86OlBhbmVsVHlwZVJldmVyc2lvbik7CisgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KQEAgLTE5MzIsNyArMTk2
OCw3IEBAIFZlY3RvcjxTdHJpbmc+IEVkaXRvcjo6Z3Vlc3Nlc0Zvck1pc3NwZWwKIAogICAgIFZl
Y3RvcjxTdHJpbmc+IGd1ZXNzZXM7CiAgICAgaWYgKGNsaWVudCgpKQotICAgICAgICBjbGllbnQo
KS0+Z2V0R3Vlc3Nlc0ZvcldvcmQoc2VsZWN0ZWRTdHJpbmcsIGd1ZXNzZXMpOworICAgICAgICBj
bGllbnQoKS0+Z2V0R3Vlc3Nlc0ZvcldvcmQoc2VsZWN0ZWRTdHJpbmcsIFN0cmluZygpLCBndWVz
c2VzKTsKICAgICByZXR1cm4gZ3Vlc3NlczsKIH0KIApAQCAtMjAxOSw3ICsyMDU1LDcgQEAgdm9p
ZCBFZGl0b3I6Om1hcmtNaXNzcGVsbGluZ3NBZnRlclR5cGluZwogICAgICAgICAgICAgZG9BcHBs
eUNvcnJlY3Rpb24gPSBmYWxzZTsKICAgICB9CiAgICAgaWYgKGRvQXBwbHlDb3JyZWN0aW9uKQot
ICAgICAgICBhcHBseUNvcnJlY3Rpb25QYW5lbEluZm8odHJ1ZSk7CisgICAgICAgIGFwcGx5Q29y
cmVjdGlvblBhbmVsSW5mbyhtYXJrZXJUeXBlc0ZvckF1dG9jb3JyZWN0aW9uKCkpOwogICAgIG1f
Y29ycmVjdGlvblBhbmVsSW5mby5tX3JhbmdlVG9CZVJlcGxhY2VkLmNsZWFyKCk7CiAjZWxzZQog
ICAgIFVOVVNFRF9QQVJBTShzZWxlY3Rpb25BZnRlclR5cGluZyk7CkBAIC0yMzQxLDcgKzIzNzcs
NyBAQCB2b2lkIEVkaXRvcjo6bWFya0FsbE1pc3NwZWxsaW5nc0FuZEJhZEdyCiAgICAgICAgICAg
ICAgICAgICAgICAgICBtX2NvcnJlY3Rpb25QYW5lbEluZm8ubV9yZXBsYWNlZFN0cmluZyA9IHJl
cGxhY2VkU3RyaW5nOwogICAgICAgICAgICAgICAgICAgICAgICAgbV9jb3JyZWN0aW9uUGFuZWxJ
bmZvLm1fcmVwbGFjZW1lbnRTdHJpbmcgPSByZXN1bHQtPnJlcGxhY2VtZW50OwogICAgICAgICAg
ICAgICAgICAgICAgICAgbV9jb3JyZWN0aW9uUGFuZWxJbmZvLm1faXNBY3RpdmUgPSB0cnVlOwot
ICAgICAgICAgICAgICAgICAgICAgICAgY2xpZW50KCktPnNob3dDb3JyZWN0aW9uUGFuZWwobV9j
b3JyZWN0aW9uUGFuZWxJbmZvLm1fcGFuZWxUeXBlLCB0b3RhbEJvdW5kaW5nQm94LCBtX2NvcnJl
Y3Rpb25QYW5lbEluZm8ubV9yZXBsYWNlZFN0cmluZywgcmVzdWx0LT5yZXBsYWNlbWVudCwgdGhp
cyk7CisgICAgICAgICAgICAgICAgICAgICAgICBjbGllbnQoKS0+c2hvd0NvcnJlY3Rpb25QYW5l
bChtX2NvcnJlY3Rpb25QYW5lbEluZm8ubV9wYW5lbFR5cGUsIHRvdGFsQm91bmRpbmdCb3gsIG1f
Y29ycmVjdGlvblBhbmVsSW5mby5tX3JlcGxhY2VkU3RyaW5nLCByZXN1bHQtPnJlcGxhY2VtZW50
LCBWZWN0b3I8U3RyaW5nPigpLCB0aGlzKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGRvUmVw
bGFjZW1lbnQgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAgfQogI2VuZGlmCkBAIC0yNDE5
LDM5ICsyNDU1LDY4IEBAIHZvaWQgRWRpdG9yOjptYXJrTWlzc3BlbGxpbmdzQW5kQmFkR3JhbW0K
IHZvaWQgRWRpdG9yOjpjb3JyZWN0aW9uUGFuZWxUaW1lckZpcmVkKFRpbWVyPEVkaXRvcj4qKQog
ewogI2lmIFNVUFBPUlRfQVVUT0NPUlJFQ1RJT05fUEFORUwKLSAgICBpZiAobV9jb3JyZWN0aW9u
UGFuZWxJbmZvLm1fcGFuZWxUeXBlID09IENvcnJlY3Rpb25QYW5lbEluZm86OlBhbmVsVHlwZUNv
cnJlY3Rpb24pIHsKKyAgICBzd2l0Y2ggKG1fY29ycmVjdGlvblBhbmVsSW5mby5tX3BhbmVsVHlw
ZSkgeworICAgIGNhc2UgQ29ycmVjdGlvblBhbmVsSW5mbzo6UGFuZWxUeXBlQ29ycmVjdGlvbjog
ewogICAgICAgICBWaXNpYmxlU2VsZWN0aW9uIHNlbGVjdGlvbihmcmFtZSgpLT5zZWxlY3Rpb24o
KS0+c2VsZWN0aW9uKCkpOwogICAgICAgICBWaXNpYmxlUG9zaXRpb24gc3RhcnQoc2VsZWN0aW9u
LnN0YXJ0KCksIHNlbGVjdGlvbi5hZmZpbml0eSgpKTsKICAgICAgICAgVmlzaWJsZVBvc2l0aW9u
IHAgPSBzdGFydE9mV29yZChzdGFydCwgTGVmdFdvcmRJZk9uQm91bmRhcnkpOwogICAgICAgICBW
aXNpYmxlU2VsZWN0aW9uIGFkamFjZW50V29yZHMgPSBWaXNpYmxlU2VsZWN0aW9uKHAsIHN0YXJ0
KTsKICAgICAgICAgbWFya0FsbE1pc3NwZWxsaW5nc0FuZEJhZEdyYW1tYXJJblJhbmdlcyhNYXJr
U3BlbGxpbmcgfCBTaG93Q29ycmVjdGlvblBhbmVsLCBhZGphY2VudFdvcmRzLnRvTm9ybWFsaXpl
ZFJhbmdlKCkuZ2V0KCksIDApOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIFN0cmluZyBjdXJyZW50
V29yZCA9IHBsYWluVGV4dChtX2NvcnJlY3Rpb25QYW5lbEluZm8ubV9yYW5nZVRvQmVSZXBsYWNl
ZC5nZXQoKSk7Ci0gICAgICAgIFZlY3RvcjxGbG9hdFF1YWQ+IHRleHRRdWFkczsKLSAgICAgICAg
bV9jb3JyZWN0aW9uUGFuZWxJbmZvLm1fcmFuZ2VUb0JlUmVwbGFjZWQtPmdldEJvcmRlckFuZFRl
eHRRdWFkcyh0ZXh0UXVhZHMpOwotICAgICAgICBWZWN0b3I8RmxvYXRRdWFkPjo6Y29uc3RfaXRl
cmF0b3IgZW5kID0gdGV4dFF1YWRzLmVuZCgpOwotICAgICAgICBGbG9hdFJlY3QgdG90YWxCb3Vu
ZGluZ0JveDsKLSAgICAgICAgZm9yIChWZWN0b3I8RmxvYXRRdWFkPjo6Y29uc3RfaXRlcmF0b3Ig
aXQgPSB0ZXh0UXVhZHMuYmVnaW4oKTsgaXQgPCBlbmQ7ICsraXQpCi0gICAgICAgICAgICB0b3Rh
bEJvdW5kaW5nQm94LnVuaXRlKGl0LT5ib3VuZGluZ0JveCgpKTsKKyAgICB9CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgQ29ycmVjdGlvblBhbmVsSW5mbzo6UGFuZWxUeXBlUmV2ZXJzaW9uOiB7
CiAgICAgICAgIG1fY29ycmVjdGlvblBhbmVsSW5mby5tX2lzQWN0aXZlID0gdHJ1ZTsKLSAgICAg
ICAgbV9jb3JyZWN0aW9uUGFuZWxJbmZvLm1fcmVwbGFjZWRTdHJpbmcgPSBjdXJyZW50V29yZDsK
LSAgICAgICAgY2xpZW50KCktPnNob3dDb3JyZWN0aW9uUGFuZWwobV9jb3JyZWN0aW9uUGFuZWxJ
bmZvLm1fcGFuZWxUeXBlLCB0b3RhbEJvdW5kaW5nQm94LCBtX2NvcnJlY3Rpb25QYW5lbEluZm8u
bV9yZXBsYWNlZFN0cmluZywgbV9jb3JyZWN0aW9uUGFuZWxJbmZvLm1fcmVwbGFjZW1lbnRTdHJp
bmcsIHRoaXMpOworICAgICAgICBtX2NvcnJlY3Rpb25QYW5lbEluZm8ubV9yZXBsYWNlZFN0cmlu
ZyA9IHBsYWluVGV4dChtX2NvcnJlY3Rpb25QYW5lbEluZm8ubV9yYW5nZVRvQmVSZXBsYWNlZC5n
ZXQoKSk7CisgICAgICAgIGNsaWVudCgpLT5zaG93Q29ycmVjdGlvblBhbmVsKG1fY29ycmVjdGlv
blBhbmVsSW5mby5tX3BhbmVsVHlwZSwgYm91bmRpbmdCb3hGb3JSYW5nZShtX2NvcnJlY3Rpb25Q
YW5lbEluZm8ubV9yYW5nZVRvQmVSZXBsYWNlZC5nZXQoKSksIG1fY29ycmVjdGlvblBhbmVsSW5m
by5tX3JlcGxhY2VkU3RyaW5nLCBtX2NvcnJlY3Rpb25QYW5lbEluZm8ubV9yZXBsYWNlbWVudFN0
cmluZywgVmVjdG9yPFN0cmluZz4oKSwgdGhpcyk7CisgICAgfQorICAgICAgICBicmVhazsKKyAg
ICBjYXNlIENvcnJlY3Rpb25QYW5lbEluZm86OlBhbmVsVHlwZVNwZWxsaW5nU3VnZ2VzdGlvbnM6
IHsKKyAgICAgICAgaWYgKHBsYWluVGV4dChtX2NvcnJlY3Rpb25QYW5lbEluZm8ubV9yYW5nZVRv
QmVSZXBsYWNlZC5nZXQoKSkgIT0gbV9jb3JyZWN0aW9uUGFuZWxJbmZvLm1fcmVwbGFjZWRTdHJp
bmcpCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgU3RyaW5nIHBhcmFncmFwaFRleHQgPSBw
bGFpblRleHQoVGV4dENoZWNraW5nUGFyYWdyYXBoKG1fY29ycmVjdGlvblBhbmVsSW5mby5tX3Jh
bmdlVG9CZVJlcGxhY2VkKS5wYXJhZ3JhcGhSYW5nZSgpLmdldCgpKTsKKyAgICAgICAgVmVjdG9y
PFN0cmluZz4gc3VnZ2VzdGlvbnM7CisgICAgICAgIGNsaWVudCgpLT5nZXRHdWVzc2VzRm9yV29y
ZChtX2NvcnJlY3Rpb25QYW5lbEluZm8ubV9yZXBsYWNlZFN0cmluZywgcGFyYWdyYXBoVGV4dCwg
c3VnZ2VzdGlvbnMpOworICAgICAgICBpZiAoc3VnZ2VzdGlvbnMuaXNFbXB0eSgpKQorICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIFN0cmluZyB0b3BTdWdnZXN0aW9uID0gc3VnZ2VzdGlvbnMu
Zmlyc3QoKTsKKyAgICAgICAgc3VnZ2VzdGlvbnMucmVtb3ZlKDApOworICAgICAgICBtX2NvcnJl
Y3Rpb25QYW5lbEluZm8ubV9pc0FjdGl2ZSA9IHRydWU7CisgICAgICAgIGNsaWVudCgpLT5zaG93
Q29ycmVjdGlvblBhbmVsKG1fY29ycmVjdGlvblBhbmVsSW5mby5tX3BhbmVsVHlwZSwgYm91bmRp
bmdCb3hGb3JSYW5nZShtX2NvcnJlY3Rpb25QYW5lbEluZm8ubV9yYW5nZVRvQmVSZXBsYWNlZC5n
ZXQoKSksIG1fY29ycmVjdGlvblBhbmVsSW5mby5tX3JlcGxhY2VkU3RyaW5nLCB0b3BTdWdnZXN0
aW9uLCBzdWdnZXN0aW9ucywgdGhpcyk7CisgICAgfQorICAgICAgICBicmVhazsKICAgICB9CiAj
ZW5kaWYKIH0KIAotdm9pZCBFZGl0b3I6OmhhbmRsZVJlamVjdGVkQ29ycmVjdGlvbigpCit2b2lk
IEVkaXRvcjo6aGFuZGxlQ29ycmVjdGlvblBhbmVsUmVzdWx0KGNvbnN0IFN0cmluZyYgY29ycmVj
dGlvbikKIHsKICAgICBSYW5nZSogcmVwbGFjZWRSYW5nZSA9IG1fY29ycmVjdGlvblBhbmVsSW5m
by5tX3JhbmdlVG9CZVJlcGxhY2VkLmdldCgpOwogICAgIGlmICghcmVwbGFjZWRSYW5nZSB8fCBt
X2ZyYW1lLT5kb2N1bWVudCgpICE9IHJlcGxhY2VkUmFuZ2UtPm93bmVyRG9jdW1lbnQoKSkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgaWYgKG1fY29ycmVjdGlvblBhbmVsSW5mby5tX3BhbmVsVHlw
ZSA9PSBDb3JyZWN0aW9uUGFuZWxJbmZvOjpQYW5lbFR5cGVDb3JyZWN0aW9uKQorICAgIFN0cmlu
ZyBjdXJyZW50V29yZCA9IHBsYWluVGV4dChtX2NvcnJlY3Rpb25QYW5lbEluZm8ubV9yYW5nZVRv
QmVSZXBsYWNlZC5nZXQoKSk7CisgICAgLy8gQ2hlY2sgdG8gc2VlIGlmIHRoZSB3b3JkIHdlIGFy
ZSBhYm91dCB0byBjb3JyZWN0IGhhcyBiZWVuIGNoYW5nZWQgYmV0d2VlbiB0aW1lciBmaXJpbmcg
YW5kIGNhbGxiYWNrIGJlaW5nIHRyaWdnZXJlZC4KKyAgICBpZiAoY3VycmVudFdvcmQgIT0gbV9j
b3JyZWN0aW9uUGFuZWxJbmZvLm1fcmVwbGFjZWRTdHJpbmcpCisgICAgICAgIHJldHVybjsKKwor
ICAgIG1fY29ycmVjdGlvblBhbmVsSW5mby5tX2lzQWN0aXZlID0gZmFsc2U7CisKKyAgICBzd2l0
Y2ggKG1fY29ycmVjdGlvblBhbmVsSW5mby5tX3BhbmVsVHlwZSkgeworICAgIGNhc2UgQ29ycmVj
dGlvblBhbmVsSW5mbzo6UGFuZWxUeXBlQ29ycmVjdGlvbjoKICAgICAgICAgcmVwbGFjZWRSYW5n
ZS0+c3RhcnRDb250YWluZXIoKS0+ZG9jdW1lbnQoKS0+bWFya2VycygpLT5hZGRNYXJrZXIocmVw
bGFjZWRSYW5nZSwgRG9jdW1lbnRNYXJrZXI6OlJlamVjdGVkQ29ycmVjdGlvbiwgbV9jb3JyZWN0
aW9uUGFuZWxJbmZvLm1fcmVwbGFjZWRTdHJpbmcpOwotICAgIGVsc2UgewotICAgICAgICBtX2Nv
cnJlY3Rpb25QYW5lbEluZm8ubV9pc0FjdGl2ZSA9IGZhbHNlOwotICAgICAgICBhcHBseUNvcnJl
Y3Rpb25QYW5lbEluZm8oZmFsc2UpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENvcnJlY3Rp
b25QYW5lbEluZm86OlBhbmVsVHlwZVJldmVyc2lvbjoKKyAgICAgICAgYXBwbHlDb3JyZWN0aW9u
UGFuZWxJbmZvKG1hcmtlclR5cGVzRm9yUmVwbGFjZW1lbnQoKSk7CisgICAgY2FzZSBDb3JyZWN0
aW9uUGFuZWxJbmZvOjpQYW5lbFR5cGVTcGVsbGluZ1N1Z2dlc3Rpb25zOgorICAgICAgICBpZiAo
Y29ycmVjdGlvbi5sZW5ndGgoKSkgeworICAgICAgICAgICAgbV9jb3JyZWN0aW9uUGFuZWxJbmZv
Lm1fcmVwbGFjZW1lbnRTdHJpbmcgPSBjb3JyZWN0aW9uOworICAgICAgICAgICAgYXBwbHlDb3Jy
ZWN0aW9uUGFuZWxJbmZvKG1hcmtlclR5cGVzRm9yUmVwbGFjZW1lbnQoKSk7CisgICAgICAgIH0K
KyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CiAgICAgfQorCiAg
ICAgbV9jb3JyZWN0aW9uUGFuZWxJbmZvLm1fcmFuZ2VUb0JlUmVwbGFjZWQuY2xlYXIoKTsKIH0K
IApAQCAtMjQ3NSw2ICsyNTQwLDcgQEAgdm9pZCBFZGl0b3I6OnN0b3BDb3JyZWN0aW9uUGFuZWxU
aW1lcigpCiB7CiAjaWYgU1VQUE9SVF9BVVRPQ09SUkVDVElPTl9QQU5FTAogICAgIG1fY29ycmVj
dGlvblBhbmVsVGltZXIuc3RvcCgpOworICAgIG1fY29ycmVjdGlvblBhbmVsSW5mby5tX3Jhbmdl
VG9CZVJlcGxhY2VkLmNsZWFyKCk7CiAjZW5kaWYKIH0KIApAQCAtMjUwNCw3ICsyNTcwLDYgQEAg
dm9pZCBFZGl0b3I6OmRpc21pc3NDb3JyZWN0aW9uUGFuZWwoQ29ycgogICAgIGlmICghbV9jb3Jy
ZWN0aW9uUGFuZWxJbmZvLm1faXNBY3RpdmUpCiAgICAgICAgIHJldHVybjsKICAgICBtX2NvcnJl
Y3Rpb25QYW5lbEluZm8ubV9pc0FjdGl2ZSA9IGZhbHNlOwotICAgIG1fY29ycmVjdGlvblBhbmVs
SW5mby5tX3JhbmdlVG9CZVJlcGxhY2VkLmNsZWFyKCk7CiAgICAgaWYgKGNsaWVudCgpKQogICAg
ICAgICBjbGllbnQoKS0+ZGlzbWlzc0NvcnJlY3Rpb25QYW5lbChjb3JyZWN0aW9uV2FzUmVqZWN0
ZWRPck5vdCk7CiAjZWxzZQpAQCAtMjYwOCw3ICsyNjczLDcgQEAgdm9pZCBFZGl0b3I6OnJlbW92
ZVNwZWxsQW5kQ29ycmVjdGlvbk1hcgogICAgICAgICBkb2N1bWVudC0+bWFya2VycygpLT5yZW1v
dmVNYXJrZXJzKHBhaXJJdGVyYXRvci0+Zmlyc3QuZ2V0KCksIHBhaXJJdGVyYXRvci0+c2Vjb25k
KTsKIH0KIAotdm9pZCBFZGl0b3I6OmFwcGx5Q29ycmVjdGlvblBhbmVsSW5mbyhib29sIGFkZENv
cnJlY3Rpb25JbmRpY2F0b3JNYXJrZXIpCit2b2lkIEVkaXRvcjo6YXBwbHlDb3JyZWN0aW9uUGFu
ZWxJbmZvKGNvbnN0IFZlY3RvcjxEb2N1bWVudE1hcmtlcjo6TWFya2VyVHlwZT4mIG1hcmtlclR5
cGVzVG9BZGQpCiB7CiAgICAgaWYgKCFtX2NvcnJlY3Rpb25QYW5lbEluZm8ubV9yYW5nZVRvQmVS
ZXBsYWNlZCkKICAgICAgICAgcmV0dXJuOwpAQCAtMjY0OSw5ICsyNzE0LDEwIEBAIHZvaWQgRWRp
dG9yOjphcHBseUNvcnJlY3Rpb25QYW5lbEluZm8oYm8KICAgICAgICAgY2FyZXRQb3NpdGlvbi5t
b3ZlVG9PZmZzZXQoY2FyZXRQb3NpdGlvbi5vZmZzZXRJbkNvbnRhaW5lck5vZGUoKSArIG1fY29y
cmVjdGlvblBhbmVsSW5mby5tX3JlcGxhY2VtZW50U3RyaW5nLmxlbmd0aCgpIC0gbV9jb3JyZWN0
aW9uUGFuZWxJbmZvLm1fcmVwbGFjZWRTdHJpbmcubGVuZ3RoKCkpOwogICAgICAgICBzZXRFbmQo
cGFyYWdyYXBoUmFuZ2VDb250YWluaW5nQ29ycmVjdGlvbi5nZXQoKSwgZW5kT2ZQYXJhZ3JhcGgo
Y2FyZXRQb3NpdGlvbikpOwogICAgICAgICBSZWZQdHI8UmFuZ2U+IHJlcGxhY2VtZW50UmFuZ2Ug
PSBUZXh0SXRlcmF0b3I6OnN1YnJhbmdlKHBhcmFncmFwaFJhbmdlQ29udGFpbmluZ0NvcnJlY3Rp
b24uZ2V0KCksIGNvcnJlY3Rpb25TdGFydE9mZnNldEluUGFyYWdyYXBoLCBtX2NvcnJlY3Rpb25Q
YW5lbEluZm8ubV9yZXBsYWNlbWVudFN0cmluZy5sZW5ndGgoKSk7Ci0gICAgICAgIHJlcGxhY2Vt
ZW50UmFuZ2UtPnN0YXJ0Q29udGFpbmVyKCktPmRvY3VtZW50KCktPm1hcmtlcnMoKS0+YWRkTWFy
a2VyKHJlcGxhY2VtZW50UmFuZ2UuZ2V0KCksIERvY3VtZW50TWFya2VyOjpSZXBsYWNlbWVudCwg
bV9jb3JyZWN0aW9uUGFuZWxJbmZvLm1fcmVwbGFjZW1lbnRTdHJpbmcpOwotICAgICAgICBpZiAo
YWRkQ29ycmVjdGlvbkluZGljYXRvck1hcmtlcikKLSAgICAgICAgICAgIHJlcGxhY2VtZW50UmFu
Z2UtPnN0YXJ0Q29udGFpbmVyKCktPmRvY3VtZW50KCktPm1hcmtlcnMoKS0+YWRkTWFya2VyKHJl
cGxhY2VtZW50UmFuZ2UuZ2V0KCksIERvY3VtZW50TWFya2VyOjpDb3JyZWN0aW9uSW5kaWNhdG9y
LCBtX2NvcnJlY3Rpb25QYW5lbEluZm8ubV9yZXBsYWNlZFN0cmluZyk7CisgICAgICAgIERvY3Vt
ZW50TWFya2VyQ29udHJvbGxlciogbWFya2VycyA9IHJlcGxhY2VtZW50UmFuZ2UtPnN0YXJ0Q29u
dGFpbmVyKCktPmRvY3VtZW50KCktPm1hcmtlcnMoKTsKKyAgICAgICAgc2l6ZV90IHNpemUgPSBt
YXJrZXJUeXBlc1RvQWRkLnNpemUoKTsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBz
aXplOyArK2kpCisgICAgICAgICAgICBtYXJrZXJzLT5hZGRNYXJrZXIocmVwbGFjZW1lbnRSYW5n
ZS5nZXQoKSwgbWFya2VyVHlwZXNUb0FkZFtpXSwgbV9jb3JyZWN0aW9uUGFuZWxJbmZvLm1fcmVw
bGFjZW1lbnRTdHJpbmcpOwogICAgICAgICBtX2ZyYW1lLT5zZWxlY3Rpb24oKS0+bW92ZVRvKGNh
cmV0UG9zaXRpb24sIGZhbHNlKTsKICAgICB9CiB9CkluZGV4OiBXZWJDb3JlL2VkaXRpbmcvRWRp
dG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCShyZXZpc2lvbiA3
MjgyNSkKKysrIFdlYkNvcmUvZWRpdGluZy9FZGl0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtMzEz
LDcgKzMxMyw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgaGFuZGxlQ2FuY2VsT3BlcmF0aW9uKCk7
CiAgICAgdm9pZCBzdGFydENvcnJlY3Rpb25QYW5lbFRpbWVyKENvcnJlY3Rpb25QYW5lbEluZm86
OlBhbmVsVHlwZSk7Ci0gICAgdm9pZCBoYW5kbGVSZWplY3RlZENvcnJlY3Rpb24oKTsKKyAgICAv
LyBJZiB1c2VyIGNvbmZpcm1lZCBhIGNvcnJlY3Rpb24gaW4gdGhlIGNvcnJlY3Rpb24gcGFuZWws
IGNvcnJlY3Rpb24gaGFzIG5vbi16ZXJvIGxlbmd0aCwgb3RoZXJ3aXNlIGl0IG1lYW5zIHRoYXQg
dXNlciBoYXMgZGlzbWlzc2VkIHRoZSBwYW5lbC4KKyAgICB2b2lkIGhhbmRsZUNvcnJlY3Rpb25Q
YW5lbFJlc3VsdChjb25zdCBTdHJpbmcmIGNvcnJlY3Rpb24pOwogICAgIGJvb2wgaXNTaG93aW5n
Q29ycmVjdGlvblBhbmVsKCk7CiAKICAgICB2b2lkIHBhc3RlQXNGcmFnbWVudChQYXNzUmVmUHRy
PERvY3VtZW50RnJhZ21lbnQ+LCBib29sIHNtYXJ0UmVwbGFjZSwgYm9vbCBtYXRjaFN0eWxlKTsK
QEAgLTQwNiw3ICs0MDcsNyBAQCBwcml2YXRlOgogICAgIE5vZGUqIGZpbmRFdmVudFRhcmdldEZy
b21TZWxlY3Rpb24oKSBjb25zdDsKICAgICB2b2lkIHN0b3BDb3JyZWN0aW9uUGFuZWxUaW1lcigp
OwogICAgIHZvaWQgZGlzbWlzc0NvcnJlY3Rpb25QYW5lbChDb3JyZWN0aW9uV2FzUmVqZWN0ZWRP
ck5vdCk7Ci0gICAgdm9pZCBhcHBseUNvcnJlY3Rpb25QYW5lbEluZm8oYm9vbCBhZGRDb3JyZWN0
aW9uSW5kaWNhdG9yTWFya2VyKTsKKyAgICB2b2lkIGFwcGx5Q29ycmVjdGlvblBhbmVsSW5mbyhj
b25zdCBWZWN0b3I8RG9jdW1lbnRNYXJrZXI6Ok1hcmtlclR5cGU+JiBtYXJrZXJUeXBlc1RvQWRk
KTsKIH07CiAKIGlubGluZSB2b2lkIEVkaXRvcjo6c2V0U3RhcnROZXdLaWxsUmluZ1NlcXVlbmNl
KGJvb2wgZmxhZykKSW5kZXg6IFdlYkNvcmUvZWRpdGluZy9UZXh0Q2hlY2tpbmdIZWxwZXIuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZWRpdGluZy9UZXh0Q2hlY2tpbmdIZWxwZXIuY3BwCShy
ZXZpc2lvbiA3MjgyNSkKKysrIFdlYkNvcmUvZWRpdGluZy9UZXh0Q2hlY2tpbmdIZWxwZXIuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC01NDEsNyArNTQxLDcgQEAgVmVjdG9yPFN0cmluZz4gVGV4dENo
ZWNraW5nSGVscGVyOjpndWVzcwogICAgICAgICBpZiAocmVzdWx0LT50eXBlID09IFRleHRDaGVj
a2luZ1R5cGVTcGVsbGluZyAmJiBwYXJhZ3JhcGguY2hlY2tpbmdSYW5nZU1hdGNoZXMocmVzdWx0
LT5sb2NhdGlvbiwgcmVzdWx0LT5sZW5ndGgpKSB7CiAgICAgICAgICAgICBTdHJpbmcgbWlzc3Bl
bGxlZFdvcmQgPSBwYXJhZ3JhcGguY2hlY2tpbmdTdWJzdHJpbmcoKTsKICAgICAgICAgICAgIEFT
U0VSVChtaXNzcGVsbGVkV29yZC5sZW5ndGgoKSk7Ci0gICAgICAgICAgICBtX2NsaWVudC0+Z2V0
R3Vlc3Nlc0ZvcldvcmQobWlzc3BlbGxlZFdvcmQsIGd1ZXNzZXMpOworICAgICAgICAgICAgbV9j
bGllbnQtPmdldEd1ZXNzZXNGb3JXb3JkKG1pc3NwZWxsZWRXb3JkLCBTdHJpbmcoKSwgZ3Vlc3Nl
cyk7CiAgICAgICAgICAgICBtX2NsaWVudC0+dXBkYXRlU3BlbGxpbmdVSVdpdGhNaXNzcGVsbGVk
V29yZChtaXNzcGVsbGVkV29yZCk7CiAgICAgICAgICAgICBtaXNzcGVsbGVkID0gdHJ1ZTsKICAg
ICAgICAgICAgIHJldHVybiBndWVzc2VzOwpJbmRleDogV2ViQ29yZS9lZGl0aW5nL1RleHRDaGVj
a2luZ0hlbHBlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZWRpdGluZy9UZXh0Q2hlY2tpbmdI
ZWxwZXIuaAkocmV2aXNpb24gNzI4MjUpCisrKyBXZWJDb3JlL2VkaXRpbmcvVGV4dENoZWNraW5n
SGVscGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTU1LDExICs1NSwxMSBAQCBwdWJsaWM6CiAgICAg
Ym9vbCBjaGVja2luZ1JhbmdlTWF0Y2hlcyhpbnQgbG9jYXRpb24sIGludCBsZW5ndGgpIGNvbnN0
IHsgcmV0dXJuIGxvY2F0aW9uID09IGNoZWNraW5nU3RhcnQoKSAmJiBsZW5ndGggPT0gY2hlY2tp
bmdMZW5ndGgoKTsgfQogICAgIGJvb2wgaXNDaGVja2luZ1JhbmdlQ292ZXJlZEJ5KGludCBsb2Nh
dGlvbiwgaW50IGxlbmd0aCkgY29uc3QgeyByZXR1cm4gbG9jYXRpb24gPD0gY2hlY2tpbmdTdGFy
dCgpICYmIGxvY2F0aW9uICsgbGVuZ3RoID49IGNoZWNraW5nU3RhcnQoKSArIGNoZWNraW5nTGVu
Z3RoKCk7IH0KICAgICBib29sIGNoZWNraW5nUmFuZ2VDb3ZlcnMoaW50IGxvY2F0aW9uLCBpbnQg
bGVuZ3RoKSBjb25zdCB7IHJldHVybiBsb2NhdGlvbiA8IGNoZWNraW5nRW5kKCkgJiYgbG9jYXRp
b24gKyBsZW5ndGggPiBjaGVja2luZ1N0YXJ0KCk7IH0KKyAgICBQYXNzUmVmUHRyPFJhbmdlPiBw
YXJhZ3JhcGhSYW5nZSgpIGNvbnN0OwogCiBwcml2YXRlOgogICAgIHZvaWQgaW52YWxpZGF0ZVBh
cmFncmFwaFJhbmdlVmFsdWVzKCk7CiAgICAgUGFzc1JlZlB0cjxSYW5nZT4gY2hlY2tpbmdSYW5n
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fY2hlY2tpbmdSYW5nZTsgfQotICAgIFBhc3NSZWZQdHI8UmFu
Z2U+IHBhcmFncmFwaFJhbmdlKCkgY29uc3Q7CiAgICAgUGFzc1JlZlB0cjxSYW5nZT4gb2Zmc2V0
QXNSYW5nZSgpIGNvbnN0OwogICAgIGNvbnN0IFN0cmluZyYgdGV4dCgpIGNvbnN0OwogCkluZGV4
OiBXZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2xv
YWRlci9FbXB0eUNsaWVudHMuaAkocmV2aXNpb24gNzI4MjUpCisrKyBXZWJDb3JlL2xvYWRlci9F
bXB0eUNsaWVudHMuaAkod29ya2luZyBjb3B5KQpAQCAtNDgwLDcgKzQ4MCw3IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIHZvaWQgY2hlY2tUZXh0T2ZQYXJhZ3JhcGgoY29uc3QgVUNoYXIqLCBpbnQs
IHVpbnQ2NF90LCBWZWN0b3I8VGV4dENoZWNraW5nUmVzdWx0PiYpIHsgfTsKICNlbmRpZgogI2lm
IFNVUFBPUlRfQVVUT0NPUlJFQ1RJT05fUEFORUwKLSAgICB2aXJ0dWFsIHZvaWQgc2hvd0NvcnJl
Y3Rpb25QYW5lbChDb3JyZWN0aW9uUGFuZWxJbmZvOjpQYW5lbFR5cGUsIGNvbnN0IEZsb2F0UmVj
dCYsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIEVkaXRvciopIHsgfQorICAgIHZpcnR1
YWwgdm9pZCBzaG93Q29ycmVjdGlvblBhbmVsKENvcnJlY3Rpb25QYW5lbEluZm86OlBhbmVsVHlw
ZSwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgY29uc3Qg
VmVjdG9yPFN0cmluZz4mLCBFZGl0b3IqKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlzbWlzc0Nv
cnJlY3Rpb25QYW5lbChDb3JyZWN0aW9uV2FzUmVqZWN0ZWRPck5vdCkgeyB9CiAgICAgdmlydHVh
bCBib29sIGlzU2hvd2luZ0NvcnJlY3Rpb25QYW5lbCgpIHsgcmV0dXJuIGZhbHNlOyB9CiAjZW5k
aWYKQEAgLTQ4OCw3ICs0ODgsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVNw
ZWxsaW5nVUlXaXRoTWlzc3BlbGxlZFdvcmQoY29uc3QgU3RyaW5nJikgeyB9CiAgICAgdmlydHVh
bCB2b2lkIHNob3dTcGVsbGluZ1VJKGJvb2wpIHsgfQogICAgIHZpcnR1YWwgYm9vbCBzcGVsbGlu
Z1VJSXNTaG93aW5nKCkgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIHZvaWQgZ2V0R3Vl
c3Nlc0ZvcldvcmQoY29uc3QgU3RyaW5nJiwgVmVjdG9yPFN0cmluZz4mKSB7IH0KKyAgICB2aXJ0
dWFsIHZvaWQgZ2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwg
VmVjdG9yPFN0cmluZz4mKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNldElucHV0TWV0aG9k
U3RhdGUoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5wdXRNZXRob2RTdGF0ZShib29sKSB7
IH0KIApJbmRleDogV2ViQ29yZS9tYW51YWwtdGVzdHMvYXV0b2NvcnJlY3Rpb24vZGlzbWlzcy1t
dWx0aXBsZS1ndWVzc2VzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9tYW51YWwtdGVzdHMv
YXV0b2NvcnJlY3Rpb24vZGlzbWlzcy1tdWx0aXBsZS1ndWVzc2VzLmh0bWwJKHJldmlzaW9uIDAp
CisrKyBXZWJDb3JlL21hbnVhbC10ZXN0cy9hdXRvY29ycmVjdGlvbi9kaXNtaXNzLW11bHRpcGxl
LWd1ZXNzZXMuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0OSBAQAorPGh0bWw+Cis8aGVh
ZD4KKworPHN0eWxlPgorLmVkaXRpbmcgeworICAgIGJvcmRlcjogMnB4IHNvbGlkIHJlZDsKKyAg
ICBwYWRkaW5nOiAxMnB4OworICAgIGZvbnQtc2l6ZTogMjRweDsKK30KKzwvc3R5bGU+Cis8c2Ny
aXB0IHNyYz0uLi8uLi8uLi9MYXlvdXRUZXN0cy9lZGl0aW5nL2VkaXRpbmcuanMgbGFuZ3VhZ2U9
IkphdmFTY3JpcHQiIHR5cGU9InRleHQvSmF2YVNjcmlwdCIgPjwvc2NyaXB0PgorCis8c2NyaXB0
PgorZnVuY3Rpb24gZWRpdGluZ1Rlc3QoKSB7CisgICAgdHlwZUNoYXJhY3RlckNvbW1hbmQoJ3Qn
KTsKKyAgICB0eXBlQ2hhcmFjdGVyQ29tbWFuZCgnaCcpOworICAgIHR5cGVDaGFyYWN0ZXJDb21t
YW5kKCdlJyk7CisgICAgdHlwZUNoYXJhY3RlckNvbW1hbmQoJyAnKTsKKyAgICB0eXBlQ2hhcmFj
dGVyQ29tbWFuZCgnbScpOworICAgIHR5cGVDaGFyYWN0ZXJDb21tYW5kKCdlJyk7CisgICAgdHlw
ZUNoYXJhY3RlckNvbW1hbmQoJ3MnKTsKKyAgICB0eXBlQ2hhcmFjdGVyQ29tbWFuZCgnYScpOwor
ICAgIHR5cGVDaGFyYWN0ZXJDb21tYW5kKCdlJyk7CisgICAgdHlwZUNoYXJhY3RlckNvbW1hbmQo
J2cnKTsKKyAgICB0eXBlQ2hhcmFjdGVyQ29tbWFuZCgnZScpOworICAgIHR5cGVDaGFyYWN0ZXJD
b21tYW5kKCdlJyk7CisgICAgdHlwZUNoYXJhY3RlckNvbW1hbmQoJyAnKTsKKyAgICBleGVjTW92
ZVNlbGVjdGlvbkJhY2t3YXJkQnlDaGFyYWN0ZXJDb21tYW5kKCk7Cit9CisKKzwvc2NyaXB0Pgor
Cis8dGl0bGU+RGlzbWlzcyBNdWx0aXBsZSBHdWVzc2VzIFRlc3Q8L3RpdGxlPgorPC9oZWFkPgor
PGJvZHk+Cis8ZGl2PjxwPlRoaXMgdGVzdCB2ZXJpZmllcyB0aGF0IHByZXNzaW5nIEVTQyBrZXkg
ZGl1c21pc3NlcyBtdWx0aXBsZSBndWVzc2VzIHBhbmVsIGNvcnJlY3RseTwvcD4KKzxwPkFmdGVy
IHNlZWluZyB0aGUgcGFuZWwgd2l0aCBtdWx0aXBsZSBjYW5kaWRhdGVzLCBwcmVzc2luZyBFU0Mg
a2V5IHRvIGRpc21pc3MgdGhlIHBhbmVsLjwvcD4KKzxwICBzdHlsZT0iY29sb3I6Z3JlZW4iPk5v
dGUsIHRoaXMgdGVzdCBjYW4gZmFpbCBkdWUgdG8gdXNlciBzcGVjaWZpYyBzcGVsbCBjaGVja2lu
ZyBkYXRhLiBUbyBmaXggdGhpcywgcmVtb3ZlIGFsbCBmaWxlcyBpbiB+L0xpYnJhcnkvU3BlbGxp
bmcsIHRoZW4ga2lsbCBBcHBsZVNwZWxsLnNlcnZpY2UgcHJvY2Vzcy48L3A+Cis8ZGl2IGNvbnRl
bnRlZGl0YWJsZSBpZD0icm9vdCIgY2xhc3M9ImVkaXRpbmciPgorPHNwYW4gaWQ9InRlc3QiPjwv
c3Bhbj4KKzwvZGl2PgorCisKKzxzY3JpcHQ+CitydW5FZGl0aW5nVGVzdCgpOworPC9zY3JpcHQ+
CisKKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IFdlYkNvcmUvbWFudWFsLXRlc3RzL2F1dG9jb3Jy
ZWN0aW9uL3NlbGVjdC1mcm9tLW11bHRpcGxlLWd1ZXNzZXMuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL21hbnVhbC10ZXN0cy9hdXRvY29ycmVjdGlvbi9zZWxlY3QtZnJvbS1tdWx0aXBsZS1n
dWVzc2VzLmh0bWwJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL21hbnVhbC10ZXN0cy9hdXRvY29y
cmVjdGlvbi9zZWxlY3QtZnJvbS1tdWx0aXBsZS1ndWVzc2VzLmh0bWwJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsNDkgQEAKKzxodG1sPgorPGhlYWQ+CisKKzxzdHlsZT4KKy5lZGl0aW5nIHsKKyAg
ICBib3JkZXI6IDJweCBzb2xpZCByZWQ7CisgICAgcGFkZGluZzogMTJweDsKKyAgICBmb250LXNp
emU6IDI0cHg7Cit9Cis8L3N0eWxlPgorPHNjcmlwdCBzcmM9Li4vLi4vLi4vTGF5b3V0VGVzdHMv
ZWRpdGluZy9lZGl0aW5nLmpzIGxhbmd1YWdlPSJKYXZhU2NyaXB0IiB0eXBlPSJ0ZXh0L0phdmFT
Y3JpcHQiID48L3NjcmlwdD4KKworPHNjcmlwdD4KK2Z1bmN0aW9uIGVkaXRpbmdUZXN0KCkgewor
ICAgIHR5cGVDaGFyYWN0ZXJDb21tYW5kKCd0Jyk7CisgICAgdHlwZUNoYXJhY3RlckNvbW1hbmQo
J2gnKTsKKyAgICB0eXBlQ2hhcmFjdGVyQ29tbWFuZCgnZScpOworICAgIHR5cGVDaGFyYWN0ZXJD
b21tYW5kKCcgJyk7CisgICAgdHlwZUNoYXJhY3RlckNvbW1hbmQoJ20nKTsKKyAgICB0eXBlQ2hh
cmFjdGVyQ29tbWFuZCgnZScpOworICAgIHR5cGVDaGFyYWN0ZXJDb21tYW5kKCdzJyk7CisgICAg
dHlwZUNoYXJhY3RlckNvbW1hbmQoJ2EnKTsKKyAgICB0eXBlQ2hhcmFjdGVyQ29tbWFuZCgnZScp
OworICAgIHR5cGVDaGFyYWN0ZXJDb21tYW5kKCdnJyk7CisgICAgdHlwZUNoYXJhY3RlckNvbW1h
bmQoJ2UnKTsKKyAgICB0eXBlQ2hhcmFjdGVyQ29tbWFuZCgnZScpOworICAgIHR5cGVDaGFyYWN0
ZXJDb21tYW5kKCcgJyk7CisgICAgZXhlY01vdmVTZWxlY3Rpb25CYWNrd2FyZEJ5Q2hhcmFjdGVy
Q29tbWFuZCgpOworfQorCis8L3NjcmlwdD4KKworPHRpdGxlPlNlbGVjdCBGcm9tIE11bHRpcGxl
IEd1ZXNzZXMgVGVzdDwvdGl0bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXY+PHA+VGhpcyB0ZXN0
IHZlcmlmaWVzIHRoYXQgbXVsdGlwbGUgZ3Vlc3NlcyBvbiBtaXNwZWxsZWQgd29yZCBpcyB3b3Jr
aW5nIGNvcnJlY3RseTwvcD4KKzxwPkFmdGVyIHNlZWluZyB0aGUgcGFuZWwgd2l0aCBtdWx0aXBs
ZSBjYW5kaWRhdGVzLCB1c2UgbGVmdCBhbmQvb3IgcmlnaHQgYXJyb3cga2V5IHRvIHNlbGVjdCB0
aGUgZGVzaXJlZCBjYW5kaWRhdGUsIGFuZCB0aGVuIHVzZSByZXR1cm4ga2V5IHRvIGNvbmZpcm0u
IFlvdSBjYW4gYWxzbyB1c2UgdGhpcyB0ZXN0IHRvIHRlc3QgdGhhdCBwcmVzc2luZyBFU0Mga2V5
IHdpbGwgZGlzbWlzcyB0aGUgcGFuZWwuPC9wPgorPHAgIHN0eWxlPSJjb2xvcjpncmVlbiI+Tm90
ZSwgdGhpcyB0ZXN0IGNhbiBmYWlsIGR1ZSB0byB1c2VyIHNwZWNpZmljIHNwZWxsIGNoZWNraW5n
IGRhdGEuIFRvIGZpeCB0aGlzLCByZW1vdmUgYWxsIGZpbGVzIGluIH4vTGlicmFyeS9TcGVsbGlu
ZywgdGhlbiBraWxsIEFwcGxlU3BlbGwuc2VydmljZSBwcm9jZXNzLjwvcD4KKzxkaXYgY29udGVu
dGVkaXRhYmxlIGlkPSJyb290IiBjbGFzcz0iZWRpdGluZyI+Cis8c3BhbiBpZD0idGVzdCI+PC9z
cGFuPgorPC9kaXY+CisKKworPHNjcmlwdD4KK3J1bkVkaXRpbmdUZXN0KCk7Cis8L3NjcmlwdD4K
KworPC9ib2R5PgorPC9odG1sPgpJbmRleDogV2ViQ29yZS9wYWdlL0VkaXRvckNsaWVudC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9FZGl0b3JDbGllbnQuaAkocmV2aXNpb24gNzI4MjUp
CisrKyBXZWJDb3JlL3BhZ2UvRWRpdG9yQ2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTE5MCw3
ICsxOTAsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogI2lmIFNVUFBPUlRfQVVUT0NPUlJFQ1RJT05f
UEFORUwKLSAgICB2aXJ0dWFsIHZvaWQgc2hvd0NvcnJlY3Rpb25QYW5lbChDb3JyZWN0aW9uUGFu
ZWxJbmZvOjpQYW5lbFR5cGUsIGNvbnN0IEZsb2F0UmVjdCYgYm91bmRpbmdCb3hPZlJlcGxhY2Vk
U3RyaW5nLCBjb25zdCBTdHJpbmcmIHJlcGxhY2VkU3RyaW5nLCBjb25zdCBTdHJpbmcmIHJlcGxh
Y21lbnRTdHJpbmcsIEVkaXRvciopID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2hvd0NvcnJlY3Rp
b25QYW5lbChDb3JyZWN0aW9uUGFuZWxJbmZvOjpQYW5lbFR5cGUsIGNvbnN0IEZsb2F0UmVjdCYg
Ym91bmRpbmdCb3hPZlJlcGxhY2VkU3RyaW5nLCBjb25zdCBTdHJpbmcmIHJlcGxhY2VkU3RyaW5n
LCBjb25zdCBTdHJpbmcmIHJlcGxhY21lbnRTdHJpbmcsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBh
bHRlcm5hdGl2ZVJlcGxhY2VtZW50U3RyaW5ncywgRWRpdG9yKikgPSAwOwogICAgIHZpcnR1YWwg
dm9pZCBkaXNtaXNzQ29ycmVjdGlvblBhbmVsKENvcnJlY3Rpb25XYXNSZWplY3RlZE9yTm90KSA9
IDA7CiAgICAgdmlydHVhbCBib29sIGlzU2hvd2luZ0NvcnJlY3Rpb25QYW5lbCgpID0gMDsKICNl
bmRpZgpAQCAtMTk5LDcgKzE5OSw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRl
U3BlbGxpbmdVSVdpdGhNaXNzcGVsbGVkV29yZChjb25zdCBTdHJpbmcmKSA9IDA7CiAgICAgdmly
dHVhbCB2b2lkIHNob3dTcGVsbGluZ1VJKGJvb2wgc2hvdykgPSAwOwogICAgIHZpcnR1YWwgYm9v
bCBzcGVsbGluZ1VJSXNTaG93aW5nKCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBnZXRHdWVzc2Vz
Rm9yV29yZChjb25zdCBTdHJpbmcmLCBWZWN0b3I8U3RyaW5nPiYgZ3Vlc3NlcykgPSAwOworICAg
IC8vIEZvciBzcGVsbGNoZWNrZXJzIHRoYXQgc3VwcG9ydCBtdWx0aXBsZSBsYW5ndWFnZXMsIGl0
J3Mgb2Z0ZW4gaW1wb3J0YW50IHRvIGJlIGFibGUgdG8gaWRlbnRpZnkgdGhlIGxhbmd1YWdlIGlu
IG9yZGVyIHRvIHByb3ZpZGUgbW9yZSBhY2N1cmF0ZSBjb3JyZWN0aW9uIHN1Z2dlc3Rpb25zLiBD
YWxsZXIgY2FuIHBhc3MgaW4gbW9yZSB0ZXh0IGluICJjb250ZXh0IiB0byBhaWQgc3VjaCBzcGVs
bGNoZWNrZXJzIG9uIGxhbmd1YWdlIGlkZW50aWZpY2F0aW9uLiBOb3JhbWxseSBpdCdzIHRoZSB0
ZXh0IHN1cnJvdW5kaW5nIHRoZSAid29yZCIgZm9yIHdoaWNoIHdlIGFyZSBnZXR0aW5nIGNvcnJl
Y3Rpb24gc3VnZ2VzdGlvbnMuCisgICAgdmlydHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNv
bnN0IFN0cmluZyYgd29yZCwgY29uc3QgU3RyaW5nJiBjb250ZXh0LCBWZWN0b3I8U3RyaW5nPiYg
Z3Vlc3NlcykgPSAwOwogICAgIHZpcnR1YWwgdm9pZCB3aWxsU2V0SW5wdXRNZXRob2RTdGF0ZSgp
ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5wdXRNZXRob2RTdGF0ZShib29sIGVuYWJsZWQp
ID0gMDsKIH07CkluZGV4OiBXZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQy
L0NoYW5nZUxvZwkocmV2aXNpb24gNzI4MjUpCisrKyBXZWJLaXQyL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDEwLTExLTI5ICBKaWEgUHUgIDxqcHVAYXBwbGUu
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN1
cHBvcnQgbXVsdGlwbGUgY29ycmVjdGlvbiBjYW5kaWRhdGVzIHBhbmVsIGZvciBtaXNzcGVsbGVk
IHdvcmQgb24gTWFjIE9TIFguCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD01MDEzNworICAgICAgICA8cmRhcjovL3Byb2JsZW0vODU2ODA1OT4KKworICAg
ICAgICBBZG9wdGVkIG5ldyBmdW5jdGlvbiBzaWduYXR1cmVzIGRlZmluZWQgaW4gYmFzZSBjbGFz
cy4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRWRpdG9yQ2xpZW50OjpnZXRHdWVzc2VzRm9yV29y
ZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQu
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJFZGl0b3JDbGll
bnRNYWMubW06CisgICAgICAgIChXZWJLaXQ6OldlYkVkaXRvckNsaWVudDo6c2hvd0NvcnJlY3Rp
b25QYW5lbCk6CisKIDIwMTAtMTEtMjkgIEJhbGF6cyBLZWxlbWVuICA8a2JhbGF6c0B3ZWJraXQu
b3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gUm9iZW4uCkluZGV4OiBXZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcAko
cmV2aXNpb24gNzI4MjUpCisrKyBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
RWRpdG9yQ2xpZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzkzLDcgKzM5Myw3IEBAIGJvb2wg
V2ViRWRpdG9yQ2xpZW50OjpzcGVsbGluZ1VJSXNTaG93aW4KICAgICByZXR1cm4gZmFsc2U7CiB9
CiAKLXZvaWQgV2ViRWRpdG9yQ2xpZW50OjpnZXRHdWVzc2VzRm9yV29yZChjb25zdCBTdHJpbmcm
LCBWZWN0b3I8U3RyaW5nPiYpCit2b2lkIFdlYkVkaXRvckNsaWVudDo6Z2V0R3Vlc3Nlc0Zvcldv
cmQoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgVmVjdG9yPFN0cmluZz4mKQogewogICAg
IG5vdEltcGxlbWVudGVkKCk7CiB9CkluZGV4OiBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCShyZXZpc2lvbiA3MjgyNSkKKysrIFdl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMTMwLDExICsxMzAsMTEgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQg
dXBkYXRlU3BlbGxpbmdVSVdpdGhNaXNzcGVsbGVkV29yZChjb25zdCBTdHJpbmcmKTsKICAgICB2
aXJ0dWFsIHZvaWQgc2hvd1NwZWxsaW5nVUkoYm9vbCBzaG93KTsKICAgICB2aXJ0dWFsIGJvb2wg
c3BlbGxpbmdVSUlzU2hvd2luZygpOwotICAgIHZpcnR1YWwgdm9pZCBnZXRHdWVzc2VzRm9yV29y
ZChjb25zdCBTdHJpbmcmLCBWZWN0b3I8U3RyaW5nPiYgZ3Vlc3Nlcyk7CisgICAgdmlydHVhbCB2
b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYgd29yZCwgY29uc3QgU3RyaW5nJiBj
b250ZXh0LCBWZWN0b3I8U3RyaW5nPiYgZ3Vlc3Nlcyk7CiAgICAgdmlydHVhbCB2b2lkIHdpbGxT
ZXRJbnB1dE1ldGhvZFN0YXRlKCk7CiAgICAgdmlydHVhbCB2b2lkIHNldElucHV0TWV0aG9kU3Rh
dGUoYm9vbCBlbmFibGVkKTsKICNpZiBQTEFURk9STShNQUMpICYmICFkZWZpbmVkKEJVSUxESU5H
X09OX1RJR0VSKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChC
VUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCi0gICAgdmlydHVhbCB2b2lkIHNob3dDb3JyZWN0aW9u
UGFuZWwoV2ViQ29yZTo6Q29ycmVjdGlvblBhbmVsSW5mbzo6UGFuZWxUeXBlLCBjb25zdCBXZWJD
b3JlOjpGbG9hdFJlY3QmIGJvdW5kaW5nQm94T2ZSZXBsYWNlZFN0cmluZywgY29uc3QgU3RyaW5n
JiByZXBsYWNlZFN0cmluZywgY29uc3QgU3RyaW5nJiByZXBsYWNlbWVudFN0cmluZywgV2ViQ29y
ZTo6RWRpdG9yKik7CisgICAgdmlydHVhbCB2b2lkIHNob3dDb3JyZWN0aW9uUGFuZWwoV2ViQ29y
ZTo6Q29ycmVjdGlvblBhbmVsSW5mbzo6UGFuZWxUeXBlLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJl
Y3QmIGJvdW5kaW5nQm94T2ZSZXBsYWNlZFN0cmluZywgY29uc3QgU3RyaW5nJiByZXBsYWNlZFN0
cmluZywgY29uc3QgU3RyaW5nJiByZXBsYWNlbWVudFN0cmluZywgY29uc3QgVmVjdG9yPFN0cmlu
Zz4mIGFsdGVybmF0aXZlUmVwbGFjZW1lbnRTdHJpbmdzLCBXZWJDb3JlOjpFZGl0b3IqKTsKICAg
ICB2aXJ0dWFsIHZvaWQgZGlzbWlzc0NvcnJlY3Rpb25QYW5lbChXZWJDb3JlOjpDb3JyZWN0aW9u
V2FzUmVqZWN0ZWRPck5vdCk7CiAgICAgdmlydHVhbCBib29sIGlzU2hvd2luZ0NvcnJlY3Rpb25Q
YW5lbCgpOwogI2VuZGlmCkluZGV4OiBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
bWFjL1dlYkVkaXRvckNsaWVudE1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkVkaXRvckNsaWVudE1hYy5tbQkocmV2aXNpb24gNzI4
MjUpCisrKyBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkVkaXRvckNs
aWVudE1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtMjIzLDcgKzIyMyw3IEBAIHZvaWQgV2ViRWRp
dG9yQ2xpZW50OjpjaGVja1RleHRPZlBhcmFncmEKICNlbmRpZgogCiAjaWYgIWRlZmluZWQoQlVJ
TERJTkdfT05fVElHRVIpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZp
bmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKLXZvaWQgV2ViRWRpdG9yQ2xpZW50OjpzaG93
Q29ycmVjdGlvblBhbmVsKFdlYkNvcmU6OkNvcnJlY3Rpb25QYW5lbEluZm86OlBhbmVsVHlwZSB0
eXBlLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGJvdW5kaW5nQm94T2ZSZXBsYWNlZFN0cmlu
ZywgY29uc3QgV1RGOjpTdHJpbmcmIHJlcGxhY2VkU3RyaW5nLCBjb25zdCBXVEY6OlN0cmluZyYg
cmVwbGFjZW1lbnRTdHJpbmcsIFdlYkNvcmU6OkVkaXRvciopCit2b2lkIFdlYkVkaXRvckNsaWVu
dDo6c2hvd0NvcnJlY3Rpb25QYW5lbChXZWJDb3JlOjpDb3JyZWN0aW9uUGFuZWxJbmZvOjpQYW5l
bFR5cGUgdHlwZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBib3VuZGluZ0JveE9mUmVwbGFj
ZWRTdHJpbmcsIGNvbnN0IFdURjo6U3RyaW5nJiByZXBsYWNlZFN0cmluZywgY29uc3QgV1RGOjpT
dHJpbmcmIHJlcGxhY2VtZW50U3RyaW5nLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgYWx0ZXJuYXRp
dmVSZXBsYWNlbWVudFN0cmluZ3MsIFdlYkNvcmU6OkVkaXRvciopCiB7CiAgICAgbm90SW1wbGVt
ZW50ZWQoKTsKIH0KSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gNzI4MjUpCisrKyBXZWJLaXQv
Y2hyb21pdW0vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTAt
MTEtMjkgIEppYSBQdSAgPGpwdUBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgU3VwcG9ydCBtdWx0aXBsZSBjb3JyZWN0aW9uIGNhbmRp
ZGF0ZXMgcGFuZWwgZm9yIG1pc3NwZWxsZWQgd29yZCBvbiBNYWMgT1MgWC4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUwMTM3CisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS84NTY4MDU5PgorCisgICAgICAgIEFkb3B0ZWQgbmV3IGZ1bmN0aW9uIHNpZ25h
dHVyZSBkZWZpbmVkIGluIGJhc2UgY2xhc3MuCisKKyAgICAgICAgKiBzcmMvRWRpdG9yQ2xpZW50
SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudEltcGw6OmdldEd1ZXNzZXNG
b3JXb3JkKToKKyAgICAgICAgKiBzcmMvRWRpdG9yQ2xpZW50SW1wbC5oOgorCiAyMDEwLTExLTI5
ICBBbmRyZXkgS29zeWFrb3YgIDxjYXNlcUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgRGFyaW4gRmlzaGVyLgpJbmRleDogV2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGll
bnRJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRvckNsaWVu
dEltcGwuY3BwCShyZXZpc2lvbiA3MjgyNSkKKysrIFdlYktpdC9jaHJvbWl1bS9zcmMvRWRpdG9y
Q2xpZW50SW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTkyOSw3ICs5MjksOCBAQCBib29sIEVk
aXRvckNsaWVudEltcGw6OnNwZWxsaW5nVUlJc1Nob3dpCiAgICAgcmV0dXJuIGZhbHNlOwogfQog
Ci12b2lkIEVkaXRvckNsaWVudEltcGw6OmdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYs
Cit2b2lkIEVkaXRvckNsaWVudEltcGw6OmdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYg
d29yZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU3Ry
aW5nJiBjb250ZXh0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBX
VEY6OlZlY3RvcjxTdHJpbmc+JiBndWVzc2VzKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7Cklu
ZGV4OiBXZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRvckNsaWVudEltcGwuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRvckNsaWVudEltcGwuaAkocmV2aXNpb24gNzI4MjUp
CisrKyBXZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRvckNsaWVudEltcGwuaAkod29ya2luZyBjb3B5
KQpAQCAtMTA3LDYgKzEwNyw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2hvd1NwZWxs
aW5nVUkoYm9vbCBzaG93KTsKICAgICB2aXJ0dWFsIGJvb2wgc3BlbGxpbmdVSUlzU2hvd2luZygp
OwogICAgIHZpcnR1YWwgdm9pZCBnZXRHdWVzc2VzRm9yV29yZChjb25zdCBXVEY6OlN0cmluZyYg
d29yZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgV1RGOjpTdHJp
bmcmIGNvbnRleHQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdURjo6VmVj
dG9yPFdURjo6U3RyaW5nPiYgZ3Vlc3Nlcyk7CiAgICAgdmlydHVhbCB2b2lkIHdpbGxTZXRJbnB1
dE1ldGhvZFN0YXRlKCk7CiAgICAgdmlydHVhbCB2b2lkIHNldElucHV0TWV0aG9kU3RhdGUoYm9v
bCBlbmFibGVkKTsKSW5kZXg6IFdlYktpdC9lZmwvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YktpdC9lZmwvQ2hhbmdlTG9nCShyZXZpc2lvbiA3MjgyNSkKKysrIFdlYktpdC9lZmwvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTAtMTEtMjkgIEppYSBQdSAg
PGpwdUBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgU3VwcG9ydCBtdWx0aXBsZSBjb3JyZWN0aW9uIGNhbmRpZGF0ZXMgcGFuZWwgZm9y
IG1pc3NwZWxsZWQgd29yZCBvbiBNYWMgT1MgWC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTUwMTM3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NTY4
MDU5PgorCisgICAgICAgIEFkb3B0ZWQgbmV3IGZ1bmN0aW9uIHNpZ25hdHVyZSBkZWZpbmVkIGlu
IGJhc2UgY2xhc3MuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRFZmwu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50RWZsOjpnZXRHdWVzc2VzRm9yV29y
ZCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50RWZsLmg6CisKIDIwMTAt
MTEtMjIgIEFsZXggR3JpbG8gIDxhYmdyaWxvQHByb2Z1c2lvbi5tb2JpPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuLgpJbmRleDogV2ViS2l0L2VmbC9X
ZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRFZmwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9l
ZmwvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50RWZsLmNwcAkocmV2aXNpb24gNzI4MjUpCisr
KyBXZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEVmbC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTQ4OCw3ICs0ODgsNyBAQCBib29sIEVkaXRvckNsaWVudEVmbDo6c3BlbGxpbmdV
SUlzU2hvd2luCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi12b2lkIEVkaXRvckNsaWVudEVmbDo6
Z2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgU3RyaW5nJiwgVmVjdG9yPFN0cmluZz4mKQordm9pZCBF
ZGl0b3JDbGllbnRFZmw6OmdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYgd29yZCwgY29u
c3QgU3RyaW5nJiBjb250ZXh0LCBWZWN0b3I8U3RyaW5nPiYgZ3Vlc3NlcykKIHsKICAgICBub3RJ
bXBsZW1lbnRlZCgpOwogfQpJbmRleDogV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JD
bGllbnRFZmwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0VkaXRv
ckNsaWVudEVmbC5oCShyZXZpc2lvbiA3MjgyNSkKKysrIFdlYktpdC9lZmwvV2ViQ29yZVN1cHBv
cnQvRWRpdG9yQ2xpZW50RWZsLmgJKHdvcmtpbmcgY29weSkKQEAgLTExMCw3ICsxMTAsNyBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVNwZWxsaW5nVUlXaXRoTWlzc3BlbGxlZFdv
cmQoY29uc3QgU3RyaW5nJik7CiAgICAgdmlydHVhbCB2b2lkIHNob3dTcGVsbGluZ1VJKGJvb2wg
c2hvdyk7CiAgICAgdmlydHVhbCBib29sIHNwZWxsaW5nVUlJc1Nob3dpbmcoKTsKLSAgICB2aXJ0
dWFsIHZvaWQgZ2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgU3RyaW5nJiwgV1RGOjpWZWN0b3I8U3Ry
aW5nPiYgZ3Vlc3Nlcyk7CisgICAgdmlydHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0
IFN0cmluZyYgd29yZCwgY29uc3QgU3RyaW5nJiBjb250ZXh0LCBXVEY6OlZlY3RvcjxTdHJpbmc+
JiBndWVzc2VzKTsKICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNldElucHV0TWV0aG9kU3RhdGUoKTsK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5wdXRNZXRob2RTdGF0ZShib29sIGVuYWJsZWQpOwogCklu
ZGV4OiBXZWJLaXQvZ3RrL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL0NoYW5n
ZUxvZwkocmV2aXNpb24gNzI4MjUpCisrKyBXZWJLaXQvZ3RrL0NoYW5nZUxvZwkod29ya2luZyBj
b3B5KQpAQCAtMSwzICsxLDE3IEBACisyMDEwLTExLTI5ICBKaWEgUHUgIDxqcHVAYXBwbGUuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN1cHBv
cnQgbXVsdGlwbGUgY29ycmVjdGlvbiBjYW5kaWRhdGVzIHBhbmVsIGZvciBtaXNzcGVsbGVkIHdv
cmQgb24gTWFjIE9TIFguCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD01MDEzNworICAgICAgICA8cmRhcjovL3Byb2JsZW0vODU2ODA1OT4KKworICAgICAg
ICBBZG9wdGVkIG5ldyBmdW5jdGlvbiBzaWduYXR1cmUgZGVmaW5lZCBpbiBiYXNlIGNsYXNzLgor
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6RWRpdG9yQ2xpZW50OjpnZXRHdWVzc2VzRm9yV29yZCk6CisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmg6CisKIDIwMTAtMTEtMjkgIENhcmxvcyBHYXJj
aWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFhh
biBMb3Blei4KSW5kZXg6IFdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3Rr
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVu
dEd0ay5jcHAJKHJldmlzaW9uIDcyODI1KQorKysgV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9F
ZGl0b3JDbGllbnRHdGsuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDA4LDcgKzEwMDgsNyBAQCBi
b29sIEVkaXRvckNsaWVudDo6c3BlbGxpbmdVSUlzU2hvd2luZygpCiAgICAgcmV0dXJuIGZhbHNl
OwogfQogCi12b2lkIEVkaXRvckNsaWVudDo6Z2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgU3RyaW5n
JiB3b3JkLCBXVEY6OlZlY3RvcjxTdHJpbmc+JiBndWVzc2VzKQordm9pZCBFZGl0b3JDbGllbnQ6
OmdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYgd29yZCwgY29uc3QgU3RyaW5nJiBjb250
ZXh0LCBXVEY6OlZlY3RvcjxTdHJpbmc+JiBndWVzc2VzKQogewogICAgIEdTTGlzdCogZGljdHMg
PSB3ZWJraXRfd2ViX3NldHRpbmdzX2dldF9lbmNoYW50X2RpY3RzKG1fd2ViVmlldyk7CiAgICAg
Z3Vlc3Nlcy5jbGVhcigpOwpJbmRleDogV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JD
bGllbnRHdGsuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0VkaXRv
ckNsaWVudEd0ay5oCShyZXZpc2lvbiA3MjgyNSkKKysrIFdlYktpdC9ndGsvV2ViQ29yZVN1cHBv
cnQvRWRpdG9yQ2xpZW50R3RrLmgJKHdvcmtpbmcgY29weSkKQEAgLTEyOSw3ICsxMjksNyBAQCBu
YW1lc3BhY2UgV2ViS2l0IHsKICAgICAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVNwZWxsaW5nVUlX
aXRoTWlzc3BlbGxlZFdvcmQoY29uc3QgV1RGOjpTdHJpbmcmKTsKICAgICAgICAgdmlydHVhbCB2
b2lkIHNob3dTcGVsbGluZ1VJKGJvb2wgc2hvdyk7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBzcGVs
bGluZ1VJSXNTaG93aW5nKCk7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBnZXRHdWVzc2VzRm9yV29y
ZChjb25zdCBXVEY6OlN0cmluZyYsIFdURjo6VmVjdG9yPFdURjo6U3RyaW5nPiYgZ3Vlc3Nlcyk7
CisgICAgICAgIHZpcnR1YWwgdm9pZCBnZXRHdWVzc2VzRm9yV29yZChjb25zdCBXVEY6OlN0cmlu
ZyYgd29yZCwgY29uc3QgV1RGOjpTdHJpbmcmIGNvbnRleHQsIFdURjo6VmVjdG9yPFdURjo6U3Ry
aW5nPiYgZ3Vlc3Nlcyk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCB3aWxsU2V0SW5wdXRNZXRob2RT
dGF0ZSgpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5wdXRNZXRob2RTdGF0ZShib29sIGVu
YWJsZWQpOwogCkluZGV4OiBXZWJLaXQvaGFpa3UvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YktpdC9oYWlrdS9DaGFuZ2VMb2cJKHJldmlzaW9uIDcyODI1KQorKysgV2ViS2l0L2hhaWt1L0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBACisyMDEwLTExLTI5ICBKaWEg
UHUgIDxqcHVAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFN1cHBvcnQgbXVsdGlwbGUgY29ycmVjdGlvbiBjYW5kaWRhdGVzIHBhbmVs
IGZvciBtaXNzcGVsbGVkIHdvcmQgb24gTWFjIE9TIFguCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MDEzNworICAgICAgICA8cmRhcjovL3Byb2JsZW0v
ODU2ODA1OT4KKworICAgICAgICBBZG9wdGVkIG5ldyBmdW5jdGlvbiBzaWduYXR1cmUgZGVmaW5l
ZCBpbiBiYXNlIGNsYXNzLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50
SGFpa3UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50SGFpa3U6OmdldEd1ZXNz
ZXNGb3JXb3JkKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRIYWlrdS5o
OgorCiAyMDEwLTExLTA4ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpJbmRleDogV2ViS2l0L2hhaWt1L1dlYkNv
cmVTdXBwb3J0L0VkaXRvckNsaWVudEhhaWt1LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvaGFp
a3UvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50SGFpa3UuY3BwCShyZXZpc2lvbiA3MjgyNSkK
KysrIFdlYktpdC9oYWlrdS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRIYWlrdS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTQ2MSw3ICs0NjEsNyBAQCBib29sIEVkaXRvckNsaWVudEhhaWt1Ojpz
cGVsbGluZ1VJSXNTaG93CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi12b2lkIEVkaXRvckNsaWVu
dEhhaWt1OjpnZXRHdWVzc2VzRm9yV29yZChjb25zdCBTdHJpbmcmLCBWZWN0b3I8U3RyaW5nPiYp
Cit2b2lkIEVkaXRvckNsaWVudEhhaWt1OjpnZXRHdWVzc2VzRm9yV29yZChjb25zdCBTdHJpbmcm
IHdvcmQsIGNvbnN0IFN0cmluZyYgY29udGV4dCwgVmVjdG9yPFN0cmluZz4mIGd1ZXNzZXMpCiB7
CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KSW5kZXg6IFdlYktpdC9oYWlrdS9XZWJDb3JlU3Vw
cG9ydC9FZGl0b3JDbGllbnRIYWlrdS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9oYWlrdS9XZWJD
b3JlU3VwcG9ydC9FZGl0b3JDbGllbnRIYWlrdS5oCShyZXZpc2lvbiA3MjgyNSkKKysrIFdlYktp
dC9oYWlrdS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRIYWlrdS5oCSh3b3JraW5nIGNvcHkp
CkBAIC0xMDcsNyArMTA3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFs
IHZvaWQgdXBkYXRlU3BlbGxpbmdVSVdpdGhNaXNzcGVsbGVkV29yZChjb25zdCBTdHJpbmcmKTsK
ICAgICAgICAgdmlydHVhbCB2b2lkIHNob3dTcGVsbGluZ1VJKGJvb2wgc2hvdyk7CiAgICAgICAg
IHZpcnR1YWwgYm9vbCBzcGVsbGluZ1VJSXNTaG93aW5nKCk7Ci0gICAgICAgIHZpcnR1YWwgdm9p
ZCBnZXRHdWVzc2VzRm9yV29yZChjb25zdCBTdHJpbmcmLCBWZWN0b3I8U3RyaW5nPiYgZ3Vlc3Nl
cyk7CisgICAgICAgIHZpcnR1YWwgdm9pZCBnZXRHdWVzc2VzRm9yV29yZChjb25zdCBTdHJpbmcm
IHdvcmQsIGNvbnN0IFN0cmluZyYgY29udGV4dCwgVmVjdG9yPFN0cmluZz4mIGd1ZXNzZXMpOwog
ICAgICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNldElucHV0TWV0aG9kU3RhdGUoKTsKICAgICAgICAg
dmlydHVhbCB2b2lkIHNldElucHV0TWV0aG9kU3RhdGUoYm9vbCBlbmFibGVkKTsKIApJbmRleDog
V2ViS2l0L21hYy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L21hYy9DaGFuZ2VMb2cJ
KHJldmlzaW9uIDcyODI1KQorKysgV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkK
QEAgLTEsMyArMSwyMSBAQAorMjAxMC0xMS0yOSAgSmlhIFB1ICA8anB1QGFwcGxlLmNvbT4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdXBwb3J0IG11
bHRpcGxlIGNvcnJlY3Rpb24gY2FuZGlkYXRlcyBwYW5lbCBmb3IgbWlzc3BlbGxlZCB3b3JkIG9u
IE1hYyBPUyBYLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NTAxMzcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg1NjgwNTk+CisKKyAgICAgICAgVGhp
cyBwYXRjaCBpcyBmb3Igc3VwcG9ydGluZyBtdWx0aXBsZSBjb3JyZWN0aW9uIHN1Z2dlc3Rpb24g
cGFuZWwgb24gTWFjIE9TIFguCisgICAgICAgIFRoZSBiZWhhdmlvciBhbmQgaW1wbGVtZW50YXRp
b24gaXMgc2ltaWxhciB0byB0aGF0IG9mIHJldmVyc2lvbiBjYW5kaWF0ZSBwYW5lbC4KKworICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oOiBBZG9wdGVkIG5ldyBzaWdu
YXR1cmVzIGRlZmluZWQgaW4gYmFzZSBjbGFzcy4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L1dlYkVkaXRvckNsaWVudC5tbTogIEFkb3B0ZWQgbmV3IHNpZ25hdHVyZXMgZGVmaW5lZCBpbiBi
YXNlIGNsYXNzLgorICAgICAgICAgIEFkZGVkIGNvZGUgdG8gaGFuZGxlIG5ldyBtdWx0aXBsZSBz
dWdnZXN0aW9uIGNhbmlkYXRlIHBhbmVsIHR5cGUuCisgICAgICAgIChXZWJFZGl0b3JDbGllbnQ6
OnNob3dDb3JyZWN0aW9uUGFuZWwpOgorICAgICAgICAoV2ViRWRpdG9yQ2xpZW50OjpnZXRHdWVz
c2VzRm9yV29yZCk6CisKIDIwMTAtMTEtMjIgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgVG9ueSBDaGFuZy4KSW5kZXg6IFdlYktpdC9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAkocmV2aXNpb24gNzI4MjUpCisrKyBX
ZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCSh3b3JraW5nIGNvcHkp
CkBAIC0xMjksMTEgKzEyOSwxMSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVNw
ZWxsaW5nVUlXaXRoTWlzc3BlbGxlZFdvcmQoY29uc3QgV1RGOjpTdHJpbmcmKTsKICAgICB2aXJ0
dWFsIHZvaWQgc2hvd1NwZWxsaW5nVUkoYm9vbCBzaG93KTsKICAgICB2aXJ0dWFsIGJvb2wgc3Bl
bGxpbmdVSUlzU2hvd2luZygpOwotICAgIHZpcnR1YWwgdm9pZCBnZXRHdWVzc2VzRm9yV29yZChj
b25zdCBXVEY6OlN0cmluZyYsIFdURjo6VmVjdG9yPFdURjo6U3RyaW5nPiYgZ3Vlc3Nlcyk7Cisg
ICAgdmlydHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFdURjo6U3RyaW5nJiB3b3Jk
LCBjb25zdCBXVEY6OlN0cmluZyYgY29udGV4dCwgV1RGOjpWZWN0b3I8V1RGOjpTdHJpbmc+JiBn
dWVzc2VzKTsKICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNldElucHV0TWV0aG9kU3RhdGUoKTsKICAg
ICB2aXJ0dWFsIHZvaWQgc2V0SW5wdXRNZXRob2RTdGF0ZShib29sIGVuYWJsZWQpOwogI2lmICFk
ZWZpbmVkKEJVSUxESU5HX09OX1RJR0VSKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJE
KSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCi0gICAgdmlydHVhbCB2b2lk
IHNob3dDb3JyZWN0aW9uUGFuZWwoV2ViQ29yZTo6Q29ycmVjdGlvblBhbmVsSW5mbzo6UGFuZWxU
eXBlLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGJvdW5kaW5nQm94T2ZSZXBsYWNlZFN0cmlu
ZywgY29uc3QgV1RGOjpTdHJpbmcmIHJlcGxhY2VkU3RyaW5nLCBjb25zdCBXVEY6OlN0cmluZyYg
cmVwbGFjZW1lbnRTdHJpbmcsIFdlYkNvcmU6OkVkaXRvciopOworICAgIHZpcnR1YWwgdm9pZCBz
aG93Q29ycmVjdGlvblBhbmVsKFdlYkNvcmU6OkNvcnJlY3Rpb25QYW5lbEluZm86OlBhbmVsVHlw
ZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBib3VuZGluZ0JveE9mUmVwbGFjZWRTdHJpbmcs
IGNvbnN0IFdURjo6U3RyaW5nJiByZXBsYWNlZFN0cmluZywgY29uc3QgV1RGOjpTdHJpbmcmIHJl
cGxhY2VtZW50U3RyaW5nLCBjb25zdCBXVEY6OlZlY3RvcjxXVEY6OlN0cmluZz4mIGFsdGVybmF0
aXZlUmVwbGFjZW1lbnRTdHJpbmdzLCBXZWJDb3JlOjpFZGl0b3IqKTsKICAgICB2aXJ0dWFsIHZv
aWQgZGlzbWlzc0NvcnJlY3Rpb25QYW5lbChXZWJDb3JlOjpDb3JyZWN0aW9uV2FzUmVqZWN0ZWRP
ck5vdCk7CiAgICAgdmlydHVhbCBib29sIGlzU2hvd2luZ0NvcnJlY3Rpb25QYW5lbCgpOwogI2Vu
ZGlmCkluZGV4OiBXZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5t
bQkocmV2aXNpb24gNzI4MjUpCisrKyBXZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRv
ckNsaWVudC5tbQkod29ya2luZyBjb3B5KQpAQCAtNzcsNiArNzcsMjAgQEAgdXNpbmcgbmFtZXNw
YWNlIFdURjsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAorc3RhdGljIE5TQ29ycmVj
dGlvbkJ1YmJsZVR5cGUgY29ycmVjdGlvbkJ1YmJsZVR5cGVGb3JDb3JyZWN0aW9uUGFuZWxUeXBl
KENvcnJlY3Rpb25QYW5lbEluZm86OlBhbmVsVHlwZSBwYW5lbFR5cGUpCit7CisgICAgc3dpdGNo
IChwYW5lbFR5cGUpIHsKKyAgICBjYXNlIENvcnJlY3Rpb25QYW5lbEluZm86OlBhbmVsVHlwZUNv
cnJlY3Rpb246CisgICAgICAgIHJldHVybiBOU0NvcnJlY3Rpb25CdWJibGVUeXBlQ29ycmVjdGlv
bjsKKyAgICBjYXNlIENvcnJlY3Rpb25QYW5lbEluZm86OlBhbmVsVHlwZVJldmVyc2lvbjoKKyAg
ICAgICAgcmV0dXJuIE5TQ29ycmVjdGlvbkJ1YmJsZVR5cGVSZXZlcnNpb247CisgICAgY2FzZSBD
b3JyZWN0aW9uUGFuZWxJbmZvOjpQYW5lbFR5cGVTcGVsbGluZ1N1Z2dlc3Rpb25zOgorICAgICAg
ICByZXR1cm4gTlNDb3JyZWN0aW9uQnViYmxlVHlwZUd1ZXNzZXM7CisgICAgfQorICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBOU0NvcnJlY3Rpb25CdWJibGVUeXBlQ29ycmVj
dGlvbjsKK30KKwogQGludGVyZmFjZSBOU0F0dHJpYnV0ZWRTdHJpbmcgKFdlYk5TQXR0cmlidXRl
ZFN0cmluZ0RldGFpbHMpCiAtIChpZClfaW5pdFdpdGhET01SYW5nZTooRE9NUmFuZ2UqKXJhbmdl
OwogLSAoRE9NRG9jdW1lbnRGcmFnbWVudCopX2RvY3VtZW50RnJvbVJhbmdlOihOU1JhbmdlKXJh
bmdlIGRvY3VtZW50OihET01Eb2N1bWVudCopZG9jdW1lbnQgZG9jdW1lbnRBdHRyaWJ1dGVzOihO
U0RpY3Rpb25hcnkgKilkaWN0IHN1YnJlc291cmNlczooTlNBcnJheSAqKilzdWJyZXNvdXJjZXM7
CkBAIC04NTYsNyArODcwLDcgQEAgdm9pZCBXZWJFZGl0b3JDbGllbnQ6OnVwZGF0ZVNwZWxsaW5n
VUlXaQogfQogCiAjaWYgIWRlZmluZWQoQlVJTERJTkdfT05fVElHRVIpICYmICFkZWZpbmVkKEJV
SUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkK
LXZvaWQgV2ViRWRpdG9yQ2xpZW50OjpzaG93Q29ycmVjdGlvblBhbmVsKFdlYkNvcmU6OkNvcnJl
Y3Rpb25QYW5lbEluZm86OlBhbmVsVHlwZSBwYW5lbFR5cGUsIGNvbnN0IEZsb2F0UmVjdCYgYm91
bmRpbmdCb3hPZlJlcGxhY2VkU3RyaW5nLCBjb25zdCBTdHJpbmcmIHJlcGxhY2VkU3RyaW5nLCBj
b25zdCBTdHJpbmcmIHJlcGxhY2VtZW50U3RyaW5nLCBFZGl0b3IqIGVkaXRvcikgewordm9pZCBX
ZWJFZGl0b3JDbGllbnQ6OnNob3dDb3JyZWN0aW9uUGFuZWwoV2ViQ29yZTo6Q29ycmVjdGlvblBh
bmVsSW5mbzo6UGFuZWxUeXBlIHBhbmVsVHlwZSwgY29uc3QgRmxvYXRSZWN0JiBib3VuZGluZ0Jv
eE9mUmVwbGFjZWRTdHJpbmcsIGNvbnN0IFN0cmluZyYgcmVwbGFjZWRTdHJpbmcsIGNvbnN0IFN0
cmluZyYgcmVwbGFjZW1lbnRTdHJpbmcsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBhbHRlcm5hdGl2
ZVJlcGxhY2VtZW50U3RyaW5ncywgRWRpdG9yKiBlZGl0b3IpIHsKICAgICBkaXNtaXNzQ29ycmVj
dGlvblBhbmVsKFdlYkNvcmU6OkNvcnJlY3Rpb25XYXNOb3RSZWplY3RlZCk7CiAKICAgICBOU1Jl
Y3QgYm91bmRpbmdCb3hBc05TUmVjdCA9IGJvdW5kaW5nQm94T2ZSZXBsYWNlZFN0cmluZzsKQEAg
LTg2OCwxNCArODgyLDM3IEBAIHZvaWQgV2ViRWRpdG9yQ2xpZW50OjpzaG93Q29ycmVjdGlvblBh
bmUKICAgICBOU1N0cmluZyAqcmVwbGFjZW1lbnRTdHJpbmdBc05TU3RyaW5nID0gcmVwbGFjZW1l
bnRTdHJpbmc7CiAKICAgICBtX2NvcnJlY3Rpb25QYW5lbElzU2hvd24gPSBZRVM7Ci0gICAgTlND
b3JyZWN0aW9uQnViYmxlVHlwZSBidWJibGVUeXBlID0gcGFuZWxUeXBlID09IFdlYkNvcmU6OkNv
cnJlY3Rpb25QYW5lbEluZm86OlBhbmVsVHlwZUNvcnJlY3Rpb24gPyBOU0NvcnJlY3Rpb25CdWJi
bGVUeXBlQ29ycmVjdGlvbiA6IE5TQ29ycmVjdGlvbkJ1YmJsZVR5cGVSZXZlcnNpb247Ci0gICAg
W1tOU1NwZWxsQ2hlY2tlciBzaGFyZWRTcGVsbENoZWNrZXJdIHNob3dDb3JyZWN0aW9uQnViYmxl
T2ZUeXBlOmJ1YmJsZVR5cGUgcHJpbWFyeVN0cmluZzpyZXBsYWNlbWVudFN0cmluZ0FzTlNTdHJp
bmcgYWx0ZXJuYXRpdmVTdHJpbmdzOm5pbCBmb3JTdHJpbmdJblJlY3Q6Ym91bmRpbmdCb3hBc05T
UmVjdCB2aWV3Om1fd2ViVmlldyBjb21wbGV0aW9uSGFuZGxlcjpeKE5TU3RyaW5nICphY2NlcHRl
ZFN0cmluZykgewotICAgICAgICBpZiAoIWFjY2VwdGVkU3RyaW5nICYmIGJ1YmJsZVR5cGUgPT0g
TlNDb3JyZWN0aW9uQnViYmxlVHlwZUNvcnJlY3Rpb24pIHsKLSAgICAgICAgICAgIFtbTlNTcGVs
bENoZWNrZXIgc2hhcmVkU3BlbGxDaGVja2VyXSByZWNvcmRSZXNwb25zZTpOU0NvcnJlY3Rpb25S
ZXNwb25zZVJlamVjdGVkIHRvQ29ycmVjdGlvbjpyZXBsYWNlbWVudFN0cmluZ0FzTlNTdHJpbmcg
Zm9yV29yZDpyZXBsYWNlZFN0cmluZ0FzTlNTdHJpbmcgbGFuZ3VhZ2U6bmlsIGluU3BlbGxEb2N1
bWVudFdpdGhUYWc6W21fd2ViVmlldyBzcGVsbENoZWNrZXJEb2N1bWVudFRhZ11dOwotICAgICAg
ICAgICAgZWRpdG9yLT5oYW5kbGVSZWplY3RlZENvcnJlY3Rpb24oKTsKLSAgICAgICAgfSBlbHNl
IGlmIChhY2NlcHRlZFN0cmluZyAmJiBidWJibGVUeXBlID09IE5TQ29ycmVjdGlvbkJ1YmJsZVR5
cGVSZXZlcnNpb24pIHsKLSAgICAgICAgICAgIFtbTlNTcGVsbENoZWNrZXIgc2hhcmVkU3BlbGxD
aGVja2VyXSByZWNvcmRSZXNwb25zZTpOU0NvcnJlY3Rpb25SZXNwb25zZVJldmVydGVkIHRvQ29y
cmVjdGlvbjpyZXBsYWNlZFN0cmluZ0FzTlNTdHJpbmcgZm9yV29yZDpyZXBsYWNlbWVudFN0cmlu
Z0FzTlNTdHJpbmcgbGFuZ3VhZ2U6bmlsIGluU3BlbGxEb2N1bWVudFdpdGhUYWc6W21fd2ViVmll
dyBzcGVsbENoZWNrZXJEb2N1bWVudFRhZ11dOwotICAgICAgICAgICAgZWRpdG9yLT5oYW5kbGVS
ZWplY3RlZENvcnJlY3Rpb24oKTsKKyAgICBOU0NvcnJlY3Rpb25CdWJibGVUeXBlIGJ1YmJsZVR5
cGUgPSBjb3JyZWN0aW9uQnViYmxlVHlwZUZvckNvcnJlY3Rpb25QYW5lbFR5cGUocGFuZWxUeXBl
KTsKKyAgICBOU011dGFibGVBcnJheSAqYWx0ZXJuYXRpdmVTdHJpbmdzID0gbmlsOworICAgIGlm
ICghYWx0ZXJuYXRpdmVSZXBsYWNlbWVudFN0cmluZ3MuaXNFbXB0eSgpKSB7CisgICAgICAgIHNp
emVfdCBzaXplID0gYWx0ZXJuYXRpdmVSZXBsYWNlbWVudFN0cmluZ3Muc2l6ZSgpOworICAgICAg
ICBhbHRlcm5hdGl2ZVN0cmluZ3MgPSBbTlNNdXRhYmxlQXJyYXkgYXJyYXlXaXRoQ2FwYWNpdHk6
c2l6ZV07CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZTsgKytpKQorICAgICAg
ICAgICAgW2FsdGVybmF0aXZlU3RyaW5ncyBhZGRPYmplY3Q6KE5TU3RyaW5nKilhbHRlcm5hdGl2
ZVJlcGxhY2VtZW50U3RyaW5nc1tpXV07CisgICAgfQorCisgICAgW1tOU1NwZWxsQ2hlY2tlciBz
aGFyZWRTcGVsbENoZWNrZXJdIHNob3dDb3JyZWN0aW9uQnViYmxlT2ZUeXBlOmJ1YmJsZVR5cGUg
cHJpbWFyeVN0cmluZzpyZXBsYWNlbWVudFN0cmluZ0FzTlNTdHJpbmcgYWx0ZXJuYXRpdmVTdHJp
bmdzOmFsdGVybmF0aXZlU3RyaW5ncyBmb3JTdHJpbmdJblJlY3Q6Ym91bmRpbmdCb3hBc05TUmVj
dCB2aWV3Om1fd2ViVmlldyBjb21wbGV0aW9uSGFuZGxlcjpeKE5TU3RyaW5nICphY2NlcHRlZFN0
cmluZykgeworICAgICAgICBzd2l0Y2ggKGJ1YmJsZVR5cGUpIHsKKyAgICAgICAgICAgIGNhc2Ug
TlNDb3JyZWN0aW9uQnViYmxlVHlwZUNvcnJlY3Rpb246CisgICAgICAgICAgICAgICAgaWYgKCFh
Y2NlcHRlZFN0cmluZykgeworICAgICAgICAgICAgICAgICAgICBbW05TU3BlbGxDaGVja2VyIHNo
YXJlZFNwZWxsQ2hlY2tlcl0gcmVjb3JkUmVzcG9uc2U6TlNDb3JyZWN0aW9uUmVzcG9uc2VSZWpl
Y3RlZCB0b0NvcnJlY3Rpb246cmVwbGFjZW1lbnRTdHJpbmdBc05TU3RyaW5nIGZvcldvcmQ6cmVw
bGFjZWRTdHJpbmdBc05TU3RyaW5nIGxhbmd1YWdlOm5pbCBpblNwZWxsRG9jdW1lbnRXaXRoVGFn
OlttX3dlYlZpZXcgc3BlbGxDaGVja2VyRG9jdW1lbnRUYWddXTsKKyAgICAgICAgICAgICAgICAg
ICAgZWRpdG9yLT5oYW5kbGVDb3JyZWN0aW9uUGFuZWxSZXN1bHQoU3RyaW5nKCkpOworICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgTlND
b3JyZWN0aW9uQnViYmxlVHlwZVJldmVyc2lvbjoKKyAgICAgICAgICAgICAgICBpZiAoYWNjZXB0
ZWRTdHJpbmcpIHsKKyAgICAgICAgICAgICAgICAgICAgW1tOU1NwZWxsQ2hlY2tlciBzaGFyZWRT
cGVsbENoZWNrZXJdIHJlY29yZFJlc3BvbnNlOk5TQ29ycmVjdGlvblJlc3BvbnNlUmV2ZXJ0ZWQg
dG9Db3JyZWN0aW9uOnJlcGxhY2VkU3RyaW5nQXNOU1N0cmluZyBmb3JXb3JkOnJlcGxhY2VtZW50
U3RyaW5nQXNOU1N0cmluZyBsYW5ndWFnZTpuaWwgaW5TcGVsbERvY3VtZW50V2l0aFRhZzpbbV93
ZWJWaWV3IHNwZWxsQ2hlY2tlckRvY3VtZW50VGFnXV07CisgICAgICAgICAgICAgICAgICAgIGVk
aXRvci0+aGFuZGxlQ29ycmVjdGlvblBhbmVsUmVzdWx0KFN0cmluZygpKTsKKyAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIE5TQ29ycmVj
dGlvbkJ1YmJsZVR5cGVHdWVzc2VzOgorICAgICAgICAgICAgICAgIGlmIChhY2NlcHRlZFN0cmlu
ZykKKyAgICAgICAgICAgICAgICAgICAgW1tOU1NwZWxsQ2hlY2tlciBzaGFyZWRTcGVsbENoZWNr
ZXJdIHJlY29yZFJlc3BvbnNlOk5TQ29ycmVjdGlvblJlc3BvbnNlQWNjZXB0ZWQgdG9Db3JyZWN0
aW9uOmFjY2VwdGVkU3RyaW5nIGZvcldvcmQ6cmVwbGFjZWRTdHJpbmdBc05TU3RyaW5nIGxhbmd1
YWdlOm5pbCBpblNwZWxsRG9jdW1lbnRXaXRoVGFnOlttX3dlYlZpZXcgc3BlbGxDaGVja2VyRG9j
dW1lbnRUYWddXTsKKyAgICAgICAgICAgICAgICBlZGl0b3ItPmhhbmRsZUNvcnJlY3Rpb25QYW5l
bFJlc3VsdChTdHJpbmcoYWNjZXB0ZWRTdHJpbmcpKTsKKyAgICAgICAgICAgICAgICBicmVhazsK
KworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
fQogICAgIH1dOwogfQpAQCAtOTE2LDExICs5NTMsMjAgQEAgYm9vbCBXZWJFZGl0b3JDbGllbnQ6
OnNwZWxsaW5nVUlJc1Nob3dpbgogICAgIHJldHVybiBbW1tOU1NwZWxsQ2hlY2tlciBzaGFyZWRT
cGVsbENoZWNrZXJdIHNwZWxsaW5nUGFuZWxdIGlzVmlzaWJsZV07CiB9CiAKLXZvaWQgV2ViRWRp
dG9yQ2xpZW50OjpnZXRHdWVzc2VzRm9yV29yZChjb25zdCBTdHJpbmcmIHdvcmQsIFdURjo6VmVj
dG9yPFN0cmluZz4mIGd1ZXNzZXMpCi17Ci0gICAgTlNBcnJheSogc3RyaW5nc0FycmF5ID0gW1tO
U1NwZWxsQ2hlY2tlciBzaGFyZWRTcGVsbENoZWNrZXJdIGd1ZXNzZXNGb3JXb3JkOndvcmRdOwot
ICAgIHVuc2lnbmVkIGNvdW50ID0gW3N0cmluZ3NBcnJheSBjb3VudF07Cit2b2lkIFdlYkVkaXRv
ckNsaWVudDo6Z2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgU3RyaW5nJiB3b3JkLCBjb25zdCBTdHJp
bmcmIGNvbnRleHQsIFZlY3RvcjxTdHJpbmc+JiBndWVzc2VzKSB7CiAgICAgZ3Vlc3Nlcy5jbGVh
cigpOworCisgICAgTlNTdHJpbmcqIGxhbmd1YWdlID0gbmlsOworICAgIE5TT3J0aG9ncmFwaHkq
IG9ydGhvZ3JhcGh5ID0gbmlsOworICAgIE5TU3BlbGxDaGVja2VyICpjaGVja2VyID0gW05TU3Bl
bGxDaGVja2VyIHNoYXJlZFNwZWxsQ2hlY2tlcl07CisgICAgaWYgKGNvbnRleHQubGVuZ3RoKCkg
PiAwKSB7CisgICAgICAgIFtjaGVja2VyIGNoZWNrU3RyaW5nOmNvbnRleHQgcmFuZ2U6TlNNYWtl
UmFuZ2UoMCwgY29udGV4dC5sZW5ndGgoKSkgdHlwZXM6TlNUZXh0Q2hlY2tpbmdUeXBlT3J0aG9n
cmFwaHkgb3B0aW9uczowIGluU3BlbGxEb2N1bWVudFdpdGhUYWc6c3BlbGxDaGVja2VyRG9jdW1l
bnRUYWcoKSBvcnRob2dyYXBoeTomb3J0aG9ncmFwaHkgd29yZENvdW50OjBdOworICAgICAgICBs
YW5ndWFnZSA9IFtjaGVja2VyIGxhbmd1YWdlRm9yV29yZFJhbmdlOk5TTWFrZVJhbmdlKDAsIGNv
bnRleHQubGVuZ3RoKCkpIGluU3RyaW5nOmNvbnRleHQgb3J0aG9ncmFwaHk6b3J0aG9ncmFwaHld
OworICAgIH0KKworICAgIE5TQXJyYXkqIHN0cmluZ3NBcnJheSA9IFtjaGVja2VyIGd1ZXNzZXNG
b3JXb3JkUmFuZ2U6TlNNYWtlUmFuZ2UoMCwgd29yZC5sZW5ndGgoKSkgaW5TdHJpbmc6d29yZCBs
YW5ndWFnZTpsYW5ndWFnZSBpblNwZWxsRG9jdW1lbnRXaXRoVGFnOnNwZWxsQ2hlY2tlckRvY3Vt
ZW50VGFnKCldOworICAgIHVuc2lnbmVkIGNvdW50ID0gW3N0cmluZ3NBcnJheSBjb3VudF07CisK
ICAgICBpZiAoY291bnQgPiAwKSB7CiAgICAgICAgIE5TRW51bWVyYXRvciogZW51bWVyYXRvciA9
IFtzdHJpbmdzQXJyYXkgb2JqZWN0RW51bWVyYXRvcl07CiAgICAgICAgIE5TU3RyaW5nKiBzdHJp
bmc7CkluZGV4OiBXZWJLaXQvcXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9xdC9D
aGFuZ2VMb2cJKHJldmlzaW9uIDcyODI1KQorKysgV2ViS2l0L3F0L0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBACisyMDEwLTExLTI5ICBKaWEgUHUgIDxqcHVAYXBwbGUu
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN1
cHBvcnQgbXVsdGlwbGUgY29ycmVjdGlvbiBjYW5kaWRhdGVzIHBhbmVsIGZvciBtaXNzcGVsbGVk
IHdvcmQgb24gTWFjIE9TIFguCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD01MDEzNworICAgICAgICA8cmRhcjovL3Byb2JsZW0vODU2ODA1OT4KKworICAg
ICAgICBBZG9wdGVkIG5ldyBmdW5jdGlvbiBzaWduYXR1cmUgZGVmaW5lZCBpbiBiYXNlIGNsYXNz
LgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50UXQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50UXQ6OmdldEd1ZXNzZXNGb3JXb3JkKToKKyAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRRdC5oOgorCiAyMDEwLTExLTI1ICBOb3JiZXJ0
IExlc2VyICA8bm9yYmVydC5sZXNlckBub2tpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
TGFzemxvIEdvbWJvcy4KSW5kZXg6IFdlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGll
bnRRdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNs
aWVudFF0LmNwcAkocmV2aXNpb24gNzI4MjUpCisrKyBXZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQv
RWRpdG9yQ2xpZW50UXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NTgsNyArNTU4LDcgQEAgYm9v
bCBFZGl0b3JDbGllbnRRdDo6c3BlbGxpbmdVSUlzU2hvd2luZwogICAgIHJldHVybiBmYWxzZTsK
IH0KIAotdm9pZCBFZGl0b3JDbGllbnRRdDo6Z2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgU3RyaW5n
JiwgVmVjdG9yPFN0cmluZz4mKQordm9pZCBFZGl0b3JDbGllbnRRdDo6Z2V0R3Vlc3Nlc0Zvcldv
cmQoY29uc3QgU3RyaW5nJiB3b3JkLCBjb25zdCBTdHJpbmcmIGNvbnRleHQsIFZlY3RvcjxTdHJp
bmc+JiBndWVzc2VzKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CkluZGV4OiBXZWJLaXQv
cXQvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50UXQuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQv
cXQvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50UXQuaAkocmV2aXNpb24gNzI4MjUpCisrKyBX
ZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50UXQuaAkod29ya2luZyBjb3B5KQpA
QCAtMTA0LDcgKzEwNCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlU3BlbGxp
bmdVSVdpdGhNaXNzcGVsbGVkV29yZChjb25zdCBTdHJpbmcmKTsKICAgICB2aXJ0dWFsIHZvaWQg
c2hvd1NwZWxsaW5nVUkoYm9vbCBzaG93KTsKICAgICB2aXJ0dWFsIGJvb2wgc3BlbGxpbmdVSUlz
U2hvd2luZygpOwotICAgIHZpcnR1YWwgdm9pZCBnZXRHdWVzc2VzRm9yV29yZChjb25zdCBTdHJp
bmcmLCBWZWN0b3I8U3RyaW5nPiYgZ3Vlc3Nlcyk7CisgICAgdmlydHVhbCB2b2lkIGdldEd1ZXNz
ZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYgd29yZCwgY29uc3QgU3RyaW5nJiBjb250ZXh0LCBWZWN0
b3I8U3RyaW5nPiYgZ3Vlc3Nlcyk7CiAgICAgdmlydHVhbCB2b2lkIHdpbGxTZXRJbnB1dE1ldGhv
ZFN0YXRlKCk7CiAgICAgdmlydHVhbCB2b2lkIHNldElucHV0TWV0aG9kU3RhdGUoYm9vbCBlbmFi
bGVkKTsKIApJbmRleDogV2ViS2l0L3dpbi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0
L3dpbi9DaGFuZ2VMb2cJKHJldmlzaW9uIDcyODI1KQorKysgV2ViS2l0L3dpbi9DaGFuZ2VMb2cJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNyBAQAorMjAxMC0xMS0yOSAgSmlhIFB1ICA8anB1
QGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBTdXBwb3J0IG11bHRpcGxlIGNvcnJlY3Rpb24gY2FuZGlkYXRlcyBwYW5lbCBmb3IgbWlz
c3BlbGxlZCB3b3JkIG9uIE1hYyBPUyBYLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NTAxMzcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg1NjgwNTk+
CisKKyAgICAgICAgQWRvcHRlZCBuZXcgZnVuY3Rpb24gc2lnbmF0dXJlIGRlZmluZWQgaW4gYmFz
ZSBjbGFzcy4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHA6
CisgICAgICAgIChXZWJFZGl0b3JDbGllbnQ6OmdldEd1ZXNzZXNGb3JXb3JkKToKKyAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaDoKKwogMjAxMC0xMS0yMiAgQWRhbSBS
b2JlbiAgPGFyb2JlbkBhcHBsZS5jb20+CiAKICAgICAgICAgVXNlIHBhdGhzIHJlbGF0aXZlIHRv
ICRXZWJLaXRWU1Byb3BzUmVkaXJlY3Rpb25EaXIgdG8gYWNjZXNzIHNoYXJlZCAudnNwcm9wcyBm
aWxlcwpJbmRleDogV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50
LmNwcAkocmV2aXNpb24gNzI4MjUpCisrKyBXZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkVk
aXRvckNsaWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc1OCw3ICs3NTgsNyBAQCBib29sIFdl
YkVkaXRvckNsaWVudDo6c3BlbGxpbmdVSUlzU2hvd2luCiAgICAgcmV0dXJuICEhc2hvd2luZzsK
IH0KIAotdm9pZCBXZWJFZGl0b3JDbGllbnQ6OmdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmlu
ZyYgd29yZCwgVmVjdG9yPFN0cmluZz4mIGd1ZXNzZXMpCit2b2lkIFdlYkVkaXRvckNsaWVudDo6
Z2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgU3RyaW5nJiB3b3JkLCBjb25zdCBTdHJpbmcmIGNvbnRl
eHQsIFZlY3RvcjxTdHJpbmc+JiBndWVzc2VzKQogewogICAgIGd1ZXNzZXMuY2xlYXIoKTsKIApJ
bmRleDogV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCShyZXZp
c2lvbiA3MjgyNSkKKysrIFdlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50
LmgJKHdvcmtpbmcgY29weSkKQEAgLTEwNyw3ICsxMDcsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCB2b2lkIHVwZGF0ZVNwZWxsaW5nVUlXaXRoTWlzc3BlbGxlZFdvcmQoY29uc3QgV1RGOjpTdHJp
bmcmKTsKICAgICB2aXJ0dWFsIHZvaWQgc2hvd1NwZWxsaW5nVUkoYm9vbCBzaG93KTsKICAgICB2
aXJ0dWFsIGJvb2wgc3BlbGxpbmdVSUlzU2hvd2luZygpOwotICAgIHZpcnR1YWwgdm9pZCBnZXRH
dWVzc2VzRm9yV29yZChjb25zdCBXVEY6OlN0cmluZyYsIFZlY3RvcjxXVEY6OlN0cmluZz4mIGd1
ZXNzZXMpOworICAgIHZpcnR1YWwgdm9pZCBnZXRHdWVzc2VzRm9yV29yZChjb25zdCBXVEY6OlN0
cmluZyYgd29yZCwgY29uc3QgV1RGOjpTdHJpbmcmIGNvbnRleHQsIFdURjo6VmVjdG9yPFdURjo6
U3RyaW5nPiYgZ3Vlc3Nlcyk7CiAKICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNldElucHV0TWV0aG9k
U3RhdGUoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5wdXRNZXRob2RTdGF0ZShib29sKTsKSW5k
ZXg6IFdlYktpdC93aW5jZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3dpbmNlL0No
YW5nZUxvZwkocmV2aXNpb24gNzI4MjUpCisrKyBXZWJLaXQvd2luY2UvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTAtMTEtMjkgIEppYSBQdSAgPGpwdUBhcHBs
ZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
U3VwcG9ydCBtdWx0aXBsZSBjb3JyZWN0aW9uIGNhbmRpZGF0ZXMgcGFuZWwgZm9yIG1pc3NwZWxs
ZWQgd29yZCBvbiBNYWMgT1MgWC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTUwMTM3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NTY4MDU5PgorCisg
ICAgICAgIEFkb3B0ZWQgbmV3IGZ1bmN0aW9uIHNpZ25hdHVyZSBkZWZpbmVkIGluIGJhc2UgY2xh
c3MuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRXaW5DRS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudFdpbkNFOjpnZXRHdWVzc2VzRm9yV29yZCk6Cisg
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50V2luQ0UuaDoKKwogMjAxMC0xMS0x
MyAgUGF0cmljayBHYW5zdGVyZXIgIDxwYXJvZ2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJl
dmlld2VkLCBidWlsZCBmaXggYWZ0ZXIgcjcxNTQxLgpJbmRleDogV2ViS2l0L3dpbmNlL1dlYkNv
cmVTdXBwb3J0L0VkaXRvckNsaWVudFdpbkNFLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvd2lu
Y2UvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50V2luQ0UuY3BwCShyZXZpc2lvbiA3MjgyNSkK
KysrIFdlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRXaW5DRS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTQ4Nyw3ICs0ODcsNyBAQCBib29sIEVkaXRvckNsaWVudFdpbkNFOjpz
cGVsbGluZ1VJSXNTaG93CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi12b2lkIEVkaXRvckNsaWVu
dFdpbkNFOjpnZXRHdWVzc2VzRm9yV29yZChjb25zdCBTdHJpbmcmIHdvcmQsIFdURjo6VmVjdG9y
PFN0cmluZz4mIGd1ZXNzZXMpCit2b2lkIEVkaXRvckNsaWVudFdpbkNFOjpnZXRHdWVzc2VzRm9y
V29yZChjb25zdCBTdHJpbmcmIHdvcmQsIGNvbnN0IFN0cmluZyYgY29udGV4dCwgV1RGOjpWZWN0
b3I8U3RyaW5nPiYgZ3Vlc3NlcykKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQpJbmRleDog
V2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFdpbkNFLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFdpbkNFLmgJKHJl
dmlzaW9uIDcyODI1KQorKysgV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVu
dFdpbkNFLmgJKHdvcmtpbmcgY29weSkKQEAgLTk3LDcgKzk3LDcgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgdm9pZCB1cGRhdGVTcGVsbGluZ1VJV2l0aE1pc3NwZWxsZWRXb3JkKGNvbnN0IFdURjo6
U3RyaW5nJik7CiAgICAgdmlydHVhbCB2b2lkIHNob3dTcGVsbGluZ1VJKGJvb2wpOwogICAgIHZp
cnR1YWwgYm9vbCBzcGVsbGluZ1VJSXNTaG93aW5nKCk7Ci0gICAgdmlydHVhbCB2b2lkIGdldEd1
ZXNzZXNGb3JXb3JkKGNvbnN0IFdURjo6U3RyaW5nJiwgV1RGOjpWZWN0b3I8V1RGOjpTdHJpbmc+
Jik7CisgICAgdmlydHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFdURjo6U3RyaW5n
JiB3b3JkLCBjb25zdCBXVEY6OlN0cmluZyYgY29udGV4dCwgV1RGOjpWZWN0b3I8V1RGOjpTdHJp
bmc+JiBndWVzc2VzKTsKICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNldElucHV0TWV0aG9kU3RhdGUo
KTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5wdXRNZXRob2RTdGF0ZShib29sKTsKIApJbmRleDog
V2ViS2l0L3d4L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvd3gvQ2hhbmdlTG9nCShy
ZXZpc2lvbiA3MjgyNSkKKysrIFdlYktpdC93eC9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAg
LTEsMyArMSwxNyBAQAorMjAxMC0xMS0yOSAgSmlhIFB1ICA8anB1QGFwcGxlLmNvbT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdXBwb3J0IG11bHRp
cGxlIGNvcnJlY3Rpb24gY2FuZGlkYXRlcyBwYW5lbCBmb3IgbWlzc3BlbGxlZCB3b3JkIG9uIE1h
YyBPUyBYLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NTAxMzcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg1NjgwNTk+CisKKyAgICAgICAgQWRvcHRl
ZCBuZXcgZnVuY3Rpb24gc2lnbmF0dXJlIGRlZmluZWQgaW4gYmFzZSBjbGFzcy4KKworICAgICAg
ICAqIFdlYktpdFN1cHBvcnQvRWRpdG9yQ2xpZW50V3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RWRpdG9yQ2xpZW50V3g6OmdldEd1ZXNzZXNGb3JXb3JkKToKKyAgICAgICAgKiBXZWJLaXRTdXBw
b3J0L0VkaXRvckNsaWVudFd4Lmg6CisKIDIwMTAtMTEtMjQgIFBhdHJpY2sgR2Fuc3RlcmVyICA8
cGFyb2dhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQ3NhYmEgT3N6dHJvZ29u
4WMuCkluZGV4OiBXZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9FZGl0b3JDbGllbnRXeC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvRWRpdG9yQ2xpZW50V3guY3BwCShy
ZXZpc2lvbiA3MjgyNSkKKysrIFdlYktpdC93eC9XZWJLaXRTdXBwb3J0L0VkaXRvckNsaWVudFd4
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTQyLDkgKzU0Miw5IEBAIGJvb2wgRWRpdG9yQ2xpZW50
V3g6OnNwZWxsaW5nVUlJc1Nob3dpbmcKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgRWRp
dG9yQ2xpZW50V3g6OmdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYsIFZlY3RvcjxTdHJp
bmc+JiBndWVzc2VzKSAKLXsgCi0gICAgbm90SW1wbGVtZW50ZWQoKTsgCit2b2lkIEVkaXRvckNs
aWVudFd4OjpnZXRHdWVzc2VzRm9yV29yZChjb25zdCBTdHJpbmcmIHdvcmQsIGNvbnN0IFN0cmlu
ZyYgY29udGV4dCwgVmVjdG9yPFN0cmluZz4mIGd1ZXNzZXMpCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKIH0KIAogU3RyaW5nIEVkaXRvckNsaWVudFd4OjpnZXRBdXRvQ29ycmVjdFN1Z2dlc3Rp
b25Gb3JNaXNzcGVsbGVkV29yZChjb25zdCBXVEY6OlN0cmluZyYpCkluZGV4OiBXZWJLaXQvd3gv
V2ViS2l0U3VwcG9ydC9FZGl0b3JDbGllbnRXeC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC93eC9X
ZWJLaXRTdXBwb3J0L0VkaXRvckNsaWVudFd4LmgJKHJldmlzaW9uIDcyODI1KQorKysgV2ViS2l0
L3d4L1dlYktpdFN1cHBvcnQvRWRpdG9yQ2xpZW50V3guaAkod29ya2luZyBjb3B5KQpAQCAtMTA3
LDkgKzEwNyw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlU3BlbGxpbmdVSVdp
dGhNaXNzcGVsbGVkV29yZChjb25zdCBTdHJpbmcmKTsKICAgICB2aXJ0dWFsIHZvaWQgc2hvd1Nw
ZWxsaW5nVUkoYm9vbCBzaG93KTsKICAgICB2aXJ0dWFsIGJvb2wgc3BlbGxpbmdVSUlzU2hvd2lu
ZygpOwotICAgIHZpcnR1YWwgdm9pZCBnZXRHdWVzc2VzRm9yV29yZChjb25zdCBTdHJpbmcmLCBW
ZWN0b3I8U3RyaW5nPiYgZ3Vlc3Nlcyk7CisgICAgdmlydHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JX
b3JkKGNvbnN0IFN0cmluZyYgd29yZCwgY29uc3QgU3RyaW5nJiBjb250ZXh0LCBWZWN0b3I8U3Ry
aW5nPiYgZ3Vlc3Nlcyk7CiAgICAgdmlydHVhbCBTdHJpbmcgZ2V0QXV0b0NvcnJlY3RTdWdnZXN0
aW9uRm9yTWlzc3BlbGxlZFdvcmQoY29uc3QgV1RGOjpTdHJpbmcmKTsKLSAgICAKKwogICAgIHZp
cnR1YWwgdm9pZCB3aWxsU2V0SW5wdXRNZXRob2RTdGF0ZSgpOwogICAgIHZpcnR1YWwgdm9pZCBz
ZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wgZW5hYmxlZCk7CiAKSW5kZXg6IExheW91dFRlc3RzL0No
YW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDcy
ODI1KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEs
MTggQEAKKzIwMTAtMTEtMjkgIEppYSBQdSAgPGpwdUBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3VwcG9ydCBtdWx0aXBsZSBjb3Jy
ZWN0aW9uIGNhbmRpZGF0ZXMgcGFuZWwgZm9yIG1pc3NwZWxsZWQgd29yZCBvbiBNYWMgT1MgWC4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUwMTM3Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NTY4MDU5PgorCisgICAgICAgICogcGxhdGZvcm0vbWFj
LWxlb3BhcmQvU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtc25vd2xlb3BhcmQvU2tp
cHBlZDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtdGlnZXIvU2tpcHBlZDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9tYWMtd2syL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjL2VkaXRpbmcv
c3BlbGxpbmcvZGVsZXRlLWF1dG9jb3JyZWN0ZWQtd29yZC0xLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogcGxhdGZvcm0vbWFjL2VkaXRpbmcvc3BlbGxpbmcvZGVsZXRlLWF1dG9jb3Jy
ZWN0ZWQtd29yZC0xLmh0bWw6IEFkZGVkLgorCiAyMDEwLTExLTI5ICBPamFuIFZhZmFpICA8b2ph
bkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCBidWlsZCBmaXguCkluZGV4OiBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtbGVvcGFyZC9Ta2lwcGVkCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy1sZW9wYXJkL1NraXBwZWQJKHJldmlzaW9uIDcyODI1KQor
KysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLWxlb3BhcmQvU2tpcHBlZAkod29ya2luZyBjb3B5
KQpAQCAtMTA2LDYgKzEwNiw3IEBAIHBsYXRmb3JtL21hYy9lZGl0aW5nL3NwZWxsaW5nL2F1dG9j
b3JyZWMKIHBsYXRmb3JtL21hYy9lZGl0aW5nL3NwZWxsaW5nL2F1dG9jb3JyZWN0aW9uLXJlbW92
aW5nLXVuZGVybGluZS5odG1sCiBwbGF0Zm9ybS9tYWMvZWRpdGluZy9zcGVsbGluZy9hdXRvY29y
cmVjdGlvbi1zaW1wbGUuaHRtbAogcGxhdGZvcm0vbWFjL2VkaXRpbmcvc3BlbGxpbmcvY2xpY2st
YXV0b2NvcnJlY3RlZC13b3JkLmh0bWwKK3BsYXRmb3JtL21hYy9lZGl0aW5nL3NwZWxsaW5nL2Rl
bGV0ZS1hdXRvY29ycmVjdGVkLXdvcmQtMS5odG1sCiBwbGF0Zm9ybS9tYWMvZWRpdGluZy9zcGVs
bGluZy9kZWxldGUtaW50by1hdXRvY29ycmVjdGVkLXdvcmQuaHRtbAogcGxhdGZvcm0vbWFjL2Vk
aXRpbmcvc3BlbGxpbmcvZGVsZXRlLWludG8tbWlzc3BlbGxlZC13b3JkLmh0bWwKIHBsYXRmb3Jt
L21hYy9lZGl0aW5nL3NwZWxsaW5nL2VkaXRpbmctbXVsdGlwbGUtd29yZHMtd2l0aC1tYXJrZXJz
Lmh0bWwKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy1zbm93bGVvcGFyZC9Ta2lwcGVk
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy1zbm93bGVvcGFyZC9Ta2lw
cGVkCShyZXZpc2lvbiA3MjgyNSkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy1zbm93bGVv
cGFyZC9Ta2lwcGVkCSh3b3JraW5nIGNvcHkpCkBAIC0xMzEsNiArMTMxLDcgQEAgcGxhdGZvcm0v
bWFjL2VkaXRpbmcvc3BlbGxpbmcvYXV0b2NvcnJlYwogcGxhdGZvcm0vbWFjL2VkaXRpbmcvc3Bl
bGxpbmcvYXV0b2NvcnJlY3Rpb24tcmVtb3ZpbmctdW5kZXJsaW5lLmh0bWwKIHBsYXRmb3JtL21h
Yy9lZGl0aW5nL3NwZWxsaW5nL2F1dG9jb3JyZWN0aW9uLXNpbXBsZS5odG1sCiBwbGF0Zm9ybS9t
YWMvZWRpdGluZy9zcGVsbGluZy9jbGljay1hdXRvY29ycmVjdGVkLXdvcmQuaHRtbAorcGxhdGZv
cm0vbWFjL2VkaXRpbmcvc3BlbGxpbmcvZGVsZXRlLWF1dG9jb3JyZWN0ZWQtd29yZC0xLmh0bWwK
IHBsYXRmb3JtL21hYy9lZGl0aW5nL3NwZWxsaW5nL2RlbGV0ZS1pbnRvLWF1dG9jb3JyZWN0ZWQt
d29yZC5odG1sCiBwbGF0Zm9ybS9tYWMvZWRpdGluZy9zcGVsbGluZy9kZWxldGUtaW50by1taXNz
cGVsbGVkLXdvcmQuaHRtbAogcGxhdGZvcm0vbWFjL2VkaXRpbmcvc3BlbGxpbmcvZWRpdGluZy1t
dWx0aXBsZS13b3Jkcy13aXRoLW1hcmtlcnMuaHRtbApJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjLXRpZ2VyL1NraXBwZWQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjLXRpZ2VyL1NraXBwZWQJKHJldmlzaW9uIDcyODI1KQorKysgTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjLXRpZ2VyL1NraXBwZWQJKHdvcmtpbmcgY29weSkKQEAgLTIxMSw2ICsyMTEsNyBAQCBw
bGF0Zm9ybS9tYWMvZWRpdGluZy9zcGVsbGluZy9hdXRvY29ycmVjCiBwbGF0Zm9ybS9tYWMvZWRp
dGluZy9zcGVsbGluZy9hdXRvY29ycmVjdGlvbi1yZW1vdmluZy11bmRlcmxpbmUuaHRtbAogcGxh
dGZvcm0vbWFjL2VkaXRpbmcvc3BlbGxpbmcvYXV0b2NvcnJlY3Rpb24tc2ltcGxlLmh0bWwKIHBs
YXRmb3JtL21hYy9lZGl0aW5nL3NwZWxsaW5nL2NsaWNrLWF1dG9jb3JyZWN0ZWQtd29yZC5odG1s
CitwbGF0Zm9ybS9tYWMvZWRpdGluZy9zcGVsbGluZy9kZWxldGUtYXV0b2NvcnJlY3RlZC13b3Jk
LTEuaHRtbAogcGxhdGZvcm0vbWFjL2VkaXRpbmcvc3BlbGxpbmcvZGVsZXRlLWludG8tYXV0b2Nv
cnJlY3RlZC13b3JkLmh0bWwKIHBsYXRmb3JtL21hYy9lZGl0aW5nL3NwZWxsaW5nL2RlbGV0ZS1p
bnRvLW1pc3NwZWxsZWQtd29yZC5odG1sCiBwbGF0Zm9ybS9tYWMvZWRpdGluZy9zcGVsbGluZy9l
ZGl0aW5nLW11bHRpcGxlLXdvcmRzLXdpdGgtbWFya2Vycy5odG1sCkluZGV4OiBMYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMtd2syL1NraXBwZWQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjLXdrMi9Ta2lwcGVkCShyZXZpc2lvbiA3MjgyNSkKKysrIExheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy13azIvU2tpcHBlZAkod29ya2luZyBjb3B5KQpAQCAtNDk0LDYgKzQ5NCw3IEBA
IHBsYXRmb3JtL21hYy9lZGl0aW5nL3NwZWxsaW5nL2F1dG9jb3JyZWMKIHBsYXRmb3JtL21hYy9l
ZGl0aW5nL3NwZWxsaW5nL2F1dG9jb3JyZWN0aW9uLXJlbW92aW5nLXVuZGVybGluZS5odG1sCiBw
bGF0Zm9ybS9tYWMvZWRpdGluZy9zcGVsbGluZy9hdXRvY29ycmVjdGlvbi1zaW1wbGUuaHRtbAog
cGxhdGZvcm0vbWFjL2VkaXRpbmcvc3BlbGxpbmcvY2xpY2stYXV0b2NvcnJlY3RlZC13b3JkLmh0
bWwKK3BsYXRmb3JtL21hYy9lZGl0aW5nL3NwZWxsaW5nL2RlbGV0ZS1hdXRvY29ycmVjdGVkLXdv
cmQtMS5odG1sCiBwbGF0Zm9ybS9tYWMvZWRpdGluZy9zcGVsbGluZy9kZWxldGUtaW50by1hdXRv
Y29ycmVjdGVkLXdvcmQuaHRtbAogcGxhdGZvcm0vbWFjL2VkaXRpbmcvc3BlbGxpbmcvZGVsZXRl
LWludG8tbWlzc3BlbGxlZC13b3JkLmh0bWwKIHBsYXRmb3JtL21hYy9lZGl0aW5nL3NwZWxsaW5n
L2VkaXRpbmctbXVsdGlwbGUtd29yZHMtd2l0aC1tYXJrZXJzLmh0bWwKSW5kZXg6IExheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9lZGl0aW5nL3NwZWxsaW5nL2RlbGV0ZS1hdXRvY29ycmVjdGVkLXdv
cmQtMS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L2VkaXRpbmcvc3BlbGxpbmcvZGVsZXRlLWF1dG9jb3JyZWN0ZWQtd29yZC0xLWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9lZGl0aW5nL3NwZWxs
aW5nL2RlbGV0ZS1hdXRvY29ycmVjdGVkLXdvcmQtMS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsOTcgQEAKK0VESVRJTkcgREVMRUdBVEU6IHNob3VsZEJlZ2luRWRpdGluZ0lu
RE9NUmFuZ2U6cmFuZ2UgZnJvbSAwIG9mIERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRv
IDMgb2YgRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQKK0VESVRJTkcgREVMRUdBVEU6IHdl
YlZpZXdEaWRCZWdpbkVkaXRpbmc6V2ViVmlld0RpZEJlZ2luRWRpdGluZ05vdGlmaWNhdGlvbgor
RURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hh
bmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiBzaG91bGRDaGFuZ2VT
ZWxlY3RlZERPTVJhbmdlOnJhbmdlIGZyb20gMCBvZiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1
bWVudCB0byAwIG9mIERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvRE9NUmFuZ2U6cmFu
Z2UgZnJvbSAxIG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gMSBv
ZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IGFmZmluaXR5Ok5TU2VsZWN0
aW9uQWZmaW5pdHlEb3duc3RyZWFtIHN0aWxsU2VsZWN0aW5nOkZBTFNFCitFRElUSU5HIERFTEVH
QVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25O
b3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2U6V2ViVmlld0Rp
ZENoYW5nZU5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogc2hvdWxkQ2hhbmdlU2VsZWN0
ZWRET01SYW5nZTpyYW5nZSBmcm9tIDEgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNk
b2N1bWVudCB0byAxIG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG9E
T01SYW5nZTpyYW5nZSBmcm9tIDIgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1
bWVudCB0byAyIG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgYWZmaW5p
dHk6TlNTZWxlY3Rpb25BZmZpbml0eURvd25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6RkFMU0UKK0VE
SVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5n
ZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5n
ZTpXZWJWaWV3RGlkQ2hhbmdlTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiBzaG91bGRD
aGFuZ2VTZWxlY3RlZERPTVJhbmdlOnJhbmdlIGZyb20gMiBvZiAjdGV4dCA+IERJViA+IEJPRFkg
PiBIVE1MID4gI2RvY3VtZW50IHRvIDIgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNk
b2N1bWVudCB0b0RPTVJhbmdlOnJhbmdlIGZyb20gMyBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBI
VE1MID4gI2RvY3VtZW50IHRvIDMgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1
bWVudCBhZmZpbml0eTpOU1NlbGVjdGlvbkFmZmluaXR5RG93bnN0cmVhbSBzdGlsbFNlbGVjdGlu
ZzpGQUxTRQorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJW
aWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiB3ZWJW
aWV3RGlkQ2hhbmdlOldlYlZpZXdEaWRDaGFuZ2VOb3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdB
VEU6IHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2U6cmFuZ2UgZnJvbSAzIG9mICN0ZXh0ID4g
RElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gMyBvZiAjdGV4dCA+IERJViA+IEJPRFkg
PiBIVE1MID4gI2RvY3VtZW50IHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSA0IG9mICN0ZXh0ID4gRElW
ID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gNCBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBI
VE1MID4gI2RvY3VtZW50IGFmZmluaXR5Ok5TU2VsZWN0aW9uQWZmaW5pdHlEb3duc3RyZWFtIHN0
aWxsU2VsZWN0aW5nOkZBTFNFCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2Vs
ZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VESVRJTkcgREVM
RUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2U6V2ViVmlld0RpZENoYW5nZU5vdGlmaWNhdGlvbgorRURJ
VElORyBERUxFR0FURTogc2hvdWxkQ2hhbmdlU2VsZWN0ZWRET01SYW5nZTpyYW5nZSBmcm9tIDQg
b2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byA0IG9mICN0ZXh0ID4g
RElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG9ET01SYW5nZTpyYW5nZSBmcm9tIDUgb2Yg
I3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byA1IG9mICN0ZXh0ID4gRElW
ID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgYWZmaW5pdHk6TlNTZWxlY3Rpb25BZmZpbml0eURv
d25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6RkFMU0UKK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdE
aWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgor
RURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZTpXZWJWaWV3RGlkQ2hhbmdlTm90aWZp
Y2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlOnJh
bmdlIGZyb20gNSBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDUg
b2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0b0RPTVJhbmdlOnJhbmdl
IGZyb20gNiBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDYgb2Yg
I3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCBhZmZpbml0eTpOU1NlbGVjdGlv
bkFmZmluaXR5RG93bnN0cmVhbSBzdGlsbFNlbGVjdGluZzpGQUxTRQorRURJVElORyBERUxFR0FU
RTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90
aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlOldlYlZpZXdEaWRD
aGFuZ2VOb3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHNob3VsZENoYW5nZVNlbGVjdGVk
RE9NUmFuZ2U6cmFuZ2UgZnJvbSA2IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9j
dW1lbnQgdG8gNiBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvRE9N
UmFuZ2U6cmFuZ2UgZnJvbSA3IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1l
bnQgdG8gNyBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IGFmZmluaXR5
Ok5TU2VsZWN0aW9uQWZmaW5pdHlEb3duc3RyZWFtIHN0aWxsU2VsZWN0aW5nOkZBTFNFCitFRElU
SU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VT
ZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2U6
V2ViVmlld0RpZENoYW5nZU5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogc2hvdWxkQ2hh
bmdlU2VsZWN0ZWRET01SYW5nZTpyYW5nZSBmcm9tIDcgb2YgI3RleHQgPiBESVYgPiBCT0RZID4g
SFRNTCA+ICNkb2N1bWVudCB0byA3IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9j
dW1lbnQgdG9ET01SYW5nZTpyYW5nZSBmcm9tIDggb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRN
TCA+ICNkb2N1bWVudCB0byA4IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1l
bnQgYWZmaW5pdHk6TlNTZWxlY3Rpb25BZmZpbml0eURvd25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6
RkFMU0UKK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmll
d0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogd2ViVmll
d0RpZENoYW5nZTpXZWJWaWV3RGlkQ2hhbmdlTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRF
OiBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlOnJhbmdlIGZyb20gOCBvZiAjdGV4dCA+IERJ
ViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDggb2YgI3RleHQgPiBESVYgPiBCT0RZID4g
SFRNTCA+ICNkb2N1bWVudCB0b0RPTVJhbmdlOnJhbmdlIGZyb20gOSBvZiAjdGV4dCA+IERJViA+
IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDkgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRN
TCA+ICNkb2N1bWVudCBhZmZpbml0eTpOU1NlbGVjdGlvbkFmZmluaXR5RG93bnN0cmVhbSBzdGls
bFNlbGVjdGluZzpGQUxTRQorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVj
dGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVH
QVRFOiB3ZWJWaWV3RGlkQ2hhbmdlOldlYlZpZXdEaWRDaGFuZ2VOb3RpZmljYXRpb24KK0VESVRJ
TkcgREVMRUdBVEU6IHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2U6cmFuZ2UgZnJvbSA5IG9m
ICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gOSBvZiAjdGV4dCA+IERJ
ViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSAxMCBvZiAj
dGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDEwIG9mICN0ZXh0ID4gRElW
ID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgYWZmaW5pdHk6TlNTZWxlY3Rpb25BZmZpbml0eURv
d25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6RkFMU0UKK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdE
aWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgor
RURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZTpXZWJWaWV3RGlkQ2hhbmdlTm90aWZp
Y2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlOnJh
bmdlIGZyb20gMTAgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byAx
MCBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvRE9NUmFuZ2U6cmFu
Z2UgZnJvbSAxMSBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDEx
IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgYWZmaW5pdHk6TlNTZWxl
Y3Rpb25BZmZpbml0eURvd25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6RkFMU0UKK0VESVRJTkcgREVM
RUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlv
bk5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZTpXZWJWaWV3
RGlkQ2hhbmdlTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiBzaG91bGRDaGFuZ2VTZWxl
Y3RlZERPTVJhbmdlOnJhbmdlIGZyb20gMTEgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+
ICNkb2N1bWVudCB0byAxMSBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50
IHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSAxMiBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4g
I2RvY3VtZW50IHRvIDEyIG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQg
YWZmaW5pdHk6TlNTZWxlY3Rpb25BZmZpbml0eURvd25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6RkFM
U0UKK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0Rp
ZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogd2ViVmlld0Rp
ZENoYW5nZTpXZWJWaWV3RGlkQ2hhbmdlTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiBz
aG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlOnJhbmdlIGZyb20gMTIgb2YgI3RleHQgPiBESVYg
PiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byAxMiBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBI
VE1MID4gI2RvY3VtZW50IHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSAxMyBvZiAjdGV4dCA+IERJViA+
IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDEzIG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhU
TUwgPiAjZG9jdW1lbnQgYWZmaW5pdHk6TlNTZWxlY3Rpb25BZmZpbml0eURvd25zdHJlYW0gc3Rp
bGxTZWxlY3Rpbmc6RkFMU0UKK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxl
Y3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgorRURJVElORyBERUxF
R0FURTogd2ViVmlld0RpZENoYW5nZTpXZWJWaWV3RGlkQ2hhbmdlTm90aWZpY2F0aW9uCitFRElU
SU5HIERFTEVHQVRFOiBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlOnJhbmdlIGZyb20gMTMg
b2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byAxMyBvZiAjdGV4dCA+
IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSA0IG9m
ICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gMTIgb2YgI3RleHQgPiBE
SVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCBhZmZpbml0eTpOU1NlbGVjdGlvbkFmZmluaXR5
RG93bnN0cmVhbSBzdGlsbFNlbGVjdGluZzpGQUxTRQorRURJVElORyBERUxFR0FURTogd2ViVmll
d0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9u
CitFRElUSU5HIERFTEVHQVRFOiBzaG91bGRJbnNlcnRUZXh0Om1lc3NhZ2UgcmVwbGFjaW5nRE9N
UmFuZ2U6cmFuZ2UgZnJvbSA0IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1l
bnQgdG8gMTIgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCBnaXZlbkFj
dGlvbjpXZWJWaWV3SW5zZXJ0QWN0aW9uVHlwZWQKK0VESVRJTkcgREVMRUdBVEU6IHNob3VsZENo
YW5nZVNlbGVjdGVkRE9NUmFuZ2U6cmFuZ2UgZnJvbSA0IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+
IEhUTUwgPiAjZG9jdW1lbnQgdG8gMTIgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNk
b2N1bWVudCB0b0RPTVJhbmdlOnJhbmdlIGZyb20gMTEgb2YgI3RleHQgPiBESVYgPiBCT0RZID4g
SFRNTCA+ICNkb2N1bWVudCB0byAxMSBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2Rv
Y3VtZW50IGFmZmluaXR5Ok5TU2VsZWN0aW9uQWZmaW5pdHlEb3duc3RyZWFtIHN0aWxsU2VsZWN0
aW5nOkZBTFNFCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldl
YlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHdl
YlZpZXdEaWRDaGFuZ2U6V2ViVmlld0RpZENoYW5nZU5vdGlmaWNhdGlvbgorRURJVElORyBERUxF
R0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9u
Tm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiBzaG91bGREZWxldGVET01SYW5nZTpyYW5n
ZSBmcm9tIDExIG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gMTIg
b2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudAorRURJVElORyBERUxFR0FU
RTogc2hvdWxkQ2hhbmdlU2VsZWN0ZWRET01SYW5nZTpyYW5nZSBmcm9tIDExIG9mICN0ZXh0ID4g
RElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gMTEgb2YgI3RleHQgPiBESVYgPiBCT0RZ
ID4gSFRNTCA+ICNkb2N1bWVudCB0b0RPTVJhbmdlOnJhbmdlIGZyb20gMTEgb2YgI3RleHQgPiBE
SVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byAxMSBvZiAjdGV4dCA+IERJViA+IEJPRFkg
PiBIVE1MID4gI2RvY3VtZW50IGFmZmluaXR5Ok5TU2VsZWN0aW9uQWZmaW5pdHlEb3duc3RyZWFt
IHN0aWxsU2VsZWN0aW5nOkZBTFNFCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdl
U2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VESVRJTkcg
REVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2U6V2ViVmlld0RpZENoYW5nZU5vdGlmaWNhdGlvbgor
RURJVElORyBERUxFR0FURTogc2hvdWxkRGVsZXRlRE9NUmFuZ2U6cmFuZ2UgZnJvbSAxMCBvZiAj
dGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDExIG9mICN0ZXh0ID4gRElW
ID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQKK0VESVRJTkcgREVMRUdBVEU6IHNob3VsZENoYW5n
ZVNlbGVjdGVkRE9NUmFuZ2U6cmFuZ2UgZnJvbSAxMCBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBI
VE1MID4gI2RvY3VtZW50IHRvIDEwIG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9j
dW1lbnQgdG9ET01SYW5nZTpyYW5nZSBmcm9tIDEwIG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhU
TUwgPiAjZG9jdW1lbnQgdG8gMTAgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1
bWVudCBhZmZpbml0eTpOU1NlbGVjdGlvbkFmZmluaXR5RG93bnN0cmVhbSBzdGlsbFNlbGVjdGlu
ZzpGQUxTRQorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJW
aWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiB3ZWJW
aWV3RGlkQ2hhbmdlOldlYlZpZXdEaWRDaGFuZ2VOb3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdB
VEU6IHNob3VsZERlbGV0ZURPTVJhbmdlOnJhbmdlIGZyb20gOSBvZiAjdGV4dCA+IERJViA+IEJP
RFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDEwIG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwg
PiAjZG9jdW1lbnQKK0VESVRJTkcgREVMRUdBVEU6IHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFu
Z2U6cmFuZ2UgZnJvbSA5IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQg
dG8gOSBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvRE9NUmFuZ2U6
cmFuZ2UgZnJvbSA5IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8g
OSBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IGFmZmluaXR5Ok5TU2Vs
ZWN0aW9uQWZmaW5pdHlEb3duc3RyZWFtIHN0aWxsU2VsZWN0aW5nOkZBTFNFCitFRElUSU5HIERF
TEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rp
b25Ob3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2U6V2ViVmll
d0RpZENoYW5nZU5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogc2hvdWxkRGVsZXRlRE9N
UmFuZ2U6cmFuZ2UgZnJvbSA4IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1l
bnQgdG8gOSBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50CitFRElUSU5H
IERFTEVHQVRFOiBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlOnJhbmdlIGZyb20gOCBvZiAj
dGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDggb2YgI3RleHQgPiBESVYg
PiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0b0RPTVJhbmdlOnJhbmdlIGZyb20gOCBvZiAjdGV4
dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDggb2YgI3RleHQgPiBESVYgPiBC
T0RZID4gSFRNTCA+ICNkb2N1bWVudCBhZmZpbml0eTpOU1NlbGVjdGlvbkFmZmluaXR5RG93bnN0
cmVhbSBzdGlsbFNlbGVjdGluZzpGQUxTRQorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENo
YW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCitFRElU
SU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlOldlYlZpZXdEaWRDaGFuZ2VOb3RpZmljYXRp
b24KK0VESVRJTkcgREVMRUdBVEU6IHNob3VsZERlbGV0ZURPTVJhbmdlOnJhbmdlIGZyb20gNyBv
ZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDggb2YgI3RleHQgPiBE
SVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudAorRURJVElORyBERUxFR0FURTogc2hvdWxkQ2hh
bmdlU2VsZWN0ZWRET01SYW5nZTpyYW5nZSBmcm9tIDcgb2YgI3RleHQgPiBESVYgPiBCT0RZID4g
SFRNTCA+ICNkb2N1bWVudCB0byA3IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9j
dW1lbnQgdG9ET01SYW5nZTpyYW5nZSBmcm9tIDcgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRN
TCA+ICNkb2N1bWVudCB0byA3IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1l
bnQgYWZmaW5pdHk6TlNTZWxlY3Rpb25BZmZpbml0eURvd25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6
RkFMU0UKK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmll
d0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogd2ViVmll
d0RpZENoYW5nZTpXZWJWaWV3RGlkQ2hhbmdlTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRF
OiBzaG91bGREZWxldGVET01SYW5nZTpyYW5nZSBmcm9tIDYgb2YgI3RleHQgPiBESVYgPiBCT0RZ
ID4gSFRNTCA+ICNkb2N1bWVudCB0byA3IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAj
ZG9jdW1lbnQKK0VESVRJTkcgREVMRUdBVEU6IHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2U6
cmFuZ2UgZnJvbSA2IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8g
NiBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvRE9NUmFuZ2U6cmFu
Z2UgZnJvbSA2IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gNiBv
ZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IGFmZmluaXR5Ok5TU2VsZWN0
aW9uQWZmaW5pdHlEb3duc3RyZWFtIHN0aWxsU2VsZWN0aW5nOkZBTFNFCitFRElUSU5HIERFTEVH
QVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25O
b3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2U6V2ViVmlld0Rp
ZENoYW5nZU5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogc2hvdWxkRGVsZXRlRE9NUmFu
Z2U6cmFuZ2UgZnJvbSA1IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQg
dG8gNiBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50CitFRElUSU5HIERF
TEVHQVRFOiBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlOnJhbmdlIGZyb20gNSBvZiAjdGV4
dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDUgb2YgI3RleHQgPiBESVYgPiBC
T0RZID4gSFRNTCA+ICNkb2N1bWVudCB0b0RPTVJhbmdlOnJhbmdlIGZyb20gNSBvZiAjdGV4dCA+
IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDUgb2YgI3RleHQgPiBESVYgPiBCT0RZ
ID4gSFRNTCA+ICNkb2N1bWVudCBhZmZpbml0eTpOU1NlbGVjdGlvbkFmZmluaXR5RG93bnN0cmVh
bSBzdGlsbFNlbGVjdGluZzpGQUxTRQorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5n
ZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCitFRElUSU5H
IERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlOldlYlZpZXdEaWRDaGFuZ2VOb3RpZmljYXRpb24K
K0VESVRJTkcgREVMRUdBVEU6IHNob3VsZERlbGV0ZURPTVJhbmdlOnJhbmdlIGZyb20gNCBvZiAj
dGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDUgb2YgI3RleHQgPiBESVYg
PiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudAorRURJVElORyBERUxFR0FURTogc2hvdWxkQ2hhbmdl
U2VsZWN0ZWRET01SYW5nZTpyYW5nZSBmcm9tIDQgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRN
TCA+ICNkb2N1bWVudCB0byA0IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1l
bnQgdG9ET01SYW5nZTpyYW5nZSBmcm9tIDQgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+
ICNkb2N1bWVudCB0byA0IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQg
YWZmaW5pdHk6TlNTZWxlY3Rpb25BZmZpbml0eURvd25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6RkFM
U0UKK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0Rp
ZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogd2ViVmlld0Rp
ZENoYW5nZTpXZWJWaWV3RGlkQ2hhbmdlTm90aWZpY2F0aW9uCitsYXllciBhdCAoMCwwKSBzaXpl
IDgwMHg2MDAKKyAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgw
LDApIHNpemUgODAweDYwMAorICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4
NjAwCisgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3ODR4NTg0CisgICAgICBS
ZW5kZXJCbG9jayB7RElWfSBhdCAoMCwwKSBzaXplIDc4NHgxOAorICAgICAgICBSZW5kZXJUZXh0
IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAzOTd4MTgKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCww
KSB3aWR0aCAzOTc6ICJVcG9uIHN1Y2Nlc3MsIHlvdSBzaG91bGQgb25seSBzZWUgdGhlIHdvcmQg
XCJ0aGVcIiBpbiB0ZXh0IGZpZWxkLiIKKyAgICAgIFJlbmRlckJsb2NrIHtQfSBhdCAoMCwzNCkg
c2l6ZSA3ODR4MTggW2NvbG9yPSMwMDgwMDBdCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBh
dCAoMCwwKSBzaXplIDcwMngxOAorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDcw
MjogIk5vdGUsIHRoaXMgdGVzdCBjYW4gZmFpbCBkdWUgdG8gdXNlciBzcGVjaWZpYyBzcGVsbCBj
aGVja2luZyBkYXRhLiBUbyBmaXggdGhpcywgcmVtb3ZlIGFsbCBmaWxlcyBpbiB+L0xpYnJhcnkv
U3BlbGxpbmcuIgorICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsNjgpIHNpemUgNzg0eDU2
IFtib3JkZXI6ICgycHggc29saWQgI0ZGMDAwMCldCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0
fSBhdCAoMTQsMTQpIHNpemUgMzZ4MjgKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMTQsMTQpIHdp
ZHRoIDM2OiAidGhlICIKKyAgICAgICAgUmVuZGVySW5saW5lIHtTUEFOfSBhdCAoMCwwKSBzaXpl
IDB4MjgKK2NhcmV0OiBwb3NpdGlvbiA0IG9mIGNoaWxkIDAgeyN0ZXh0fSBvZiBjaGlsZCA1IHtE
SVZ9IG9mIGJvZHkKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9lZGl0aW5nL3NwZWxs
aW5nL2RlbGV0ZS1hdXRvY29ycmVjdGVkLXdvcmQtMS5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9lZGl0aW5nL3NwZWxsaW5nL2RlbGV0ZS1hdXRvY29ycmVjdGVk
LXdvcmQtMS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Vk
aXRpbmcvc3BlbGxpbmcvZGVsZXRlLWF1dG9jb3JyZWN0ZWQtd29yZC0xLmh0bWwJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsNTYgQEAKKzxodG1sPiAKKzxoZWFkPgorCis8c3R5bGU+CisuZWRpdGlu
ZyB7IAorICAgIGJvcmRlcjogMnB4IHNvbGlkIHJlZDsgCisgICAgcGFkZGluZzogMTJweDsgCisg
ICAgZm9udC1zaXplOiAyNHB4OyAKK30KKzwvc3R5bGU+Cis8c2NyaXB0IHNyYz0uLi8uLi8uLi8u
Li9lZGl0aW5nL2VkaXRpbmcuanMgbGFuZ3VhZ2U9IkphdmFTY3JpcHQiIHR5cGU9InRleHQvSmF2
YVNjcmlwdCIgPjwvc2NyaXB0PgorCis8c2NyaXB0PgorCitmdW5jdGlvbiBlZGl0aW5nVGVzdCgp
IHsKKyAgICB0eXBlQ2hhcmFjdGVyQ29tbWFuZCgndCcpOworICAgIHR5cGVDaGFyYWN0ZXJDb21t
YW5kKCdoJyk7CisgICAgdHlwZUNoYXJhY3RlckNvbW1hbmQoJ2UnKTsKKyAgICB0eXBlQ2hhcmFj
dGVyQ29tbWFuZCgnICcpOworICAgIHR5cGVDaGFyYWN0ZXJDb21tYW5kKCdtJyk7CisgICAgdHlw
ZUNoYXJhY3RlckNvbW1hbmQoJ2UnKTsKKyAgICB0eXBlQ2hhcmFjdGVyQ29tbWFuZCgncycpOwor
ICAgIHR5cGVDaGFyYWN0ZXJDb21tYW5kKCdzJyk7CisgICAgdHlwZUNoYXJhY3RlckNvbW1hbmQo
J2EnKTsKKyAgICB0eXBlQ2hhcmFjdGVyQ29tbWFuZCgnZycpOworICAgIHR5cGVDaGFyYWN0ZXJD
b21tYW5kKCdlJyk7CisgICAgdHlwZUNoYXJhY3RlckNvbW1hbmQoJ2UnKTsKKyAgICB0eXBlQ2hh
cmFjdGVyQ29tbWFuZCgnICcpOworICAgIGV4ZWNEZWxldGVDb21tYW5kKCk7CisgICAgZXhlY0Rl
bGV0ZUNvbW1hbmQoKTsKKyAgICBleGVjRGVsZXRlQ29tbWFuZCgpOworICAgIGV4ZWNEZWxldGVD
b21tYW5kKCk7CisgICAgZXhlY0RlbGV0ZUNvbW1hbmQoKTsKKyAgICBleGVjRGVsZXRlQ29tbWFu
ZCgpOworICAgIGV4ZWNEZWxldGVDb21tYW5kKCk7CisgICAgZXhlY0RlbGV0ZUNvbW1hbmQoKTsK
K30KKworPC9zY3JpcHQ+CisKKzx0aXRsZT5EZWxldGUgQXV0b2NvcnJlY3RlZCBXb3JkIFRlc3Qg
MTwvdGl0bGU+IAorPC9oZWFkPiAKKzxib2R5PgorPGRpdj5VcG9uIHN1Y2Nlc3MsIHlvdSBzaG91
bGQgb25seSBzZWUgdGhlIHdvcmQgInRoZSIgaW4gdGV4dCBmaWVsZC48L2Rpdj4KKzxwICBzdHls
ZT0iY29sb3I6Z3JlZW4iPk5vdGUsIHRoaXMgdGVzdCBjYW4gZmFpbCBkdWUgdG8gdXNlciBzcGVj
aWZpYyBzcGVsbCBjaGVja2luZyBkYXRhLiBUbyBmaXggdGhpcywgcmVtb3ZlIGFsbCBmaWxlcyBp
biB+L0xpYnJhcnkvU3BlbGxpbmcuPC9wPgorPGRpdiBjb250ZW50ZWRpdGFibGUgaWQ9InJvb3Qi
IGNsYXNzPSJlZGl0aW5nIj4KKzxzcGFuIGlkPSJ0ZXN0Ij48L3NwYW4+Cis8L2Rpdj4KKworCis8
c2NyaXB0PgorcnVuRWRpdGluZ1Rlc3QoKTsKKzwvc2NyaXB0PgorCis8L2JvZHk+Cis8L2h0bWw+
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>75071</attachid>
            <date>2010-11-29 15:18:32 -0800</date>
            <delta_ts>2010-11-30 13:05:43 -0800</delta_ts>
            <desc>Proposed patch (v6)</desc>
            <filename>webkit_bug50137.patch</filename>
            <type>text/plain</type>
            <size>75282</size>
            <attacher name="Jia Pu">jiapu.mail</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3MjgyNSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNjMgQEAKKzIwMTAtMTEtMjkgIEppYSBQdSAgPGpwdUBhcHBsZS5jb20+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3VwcG9ydCBtdWx0
aXBsZSBjb3JyZWN0aW9uIGNhbmRpZGF0ZXMgcGFuZWwgZm9yIG1pc3NwZWxsZWQgd29yZCBvbiBN
YWMgT1MgWC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTUwMTM3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NTY4MDU5PgorCisgICAgICAgIFRlc3Q6
IHBsYXRmb3JtL21hYy9lZGl0aW5nL3NwZWxsaW5nL2RlbGV0ZS1hdXRvY29ycmVjdGVkLXdvcmQt
MS5odG1sCisgICAgICAgIE1hbnVhbCB0ZXN0OiBXZWJDb3JlL21hbnVhbC10ZXN0cy9hdXRvY29y
cmVjdGlvbi9kaXNtaXNzLW11bHRpcGxlLWd1ZXNzZXMuaHRtbAorICAgICAgICAgICAgICAgICAg
ICAgV2ViQ29yZS9tYW51YWwtdGVzdHMvYXV0b2NvcnJlY3Rpb24vc2VsZWN0LWZyb20tbXVsdGlw
bGUtZ3Vlc3Nlcy5odG1sCisKKyAgICAgICAgVGhpcyBwYXRjaCBpcyBmb3Igc3VwcG9ydGluZyBt
dWx0aXBsZSBjb3JyZWN0aW9uIHN1Z2dlc3Rpb24gcGFuZWwgb24gTWFjIE9TIFguCisgICAgICAg
IFRoZSBiZWhhdmlvciBhbmQgaW1wbGVtZW50YXRpb24gaXMgc2ltaWxhciB0byB0aGF0IG9mIHJl
dmVyc2lvbiBjYW5kaWF0ZSBwYW5lbC4KKworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOiBBZGRl
ZCBhbmQgcmVtb3ZlZCBzeW1ib2xzLgorCisgICAgICAgICogZWRpdGluZy9Db3JyZWN0aW9uUGFu
ZWxJbmZvLmg6IEFkZGVkIG5ldyBjb3JyZWN0aW9uIHBhbmVsIHR5cGUsIFBhbmVsVHlwZVNwZWxs
aW5nU3VnZ2VzdGlvbnMuCisKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjptYXJrZXJUeXBlc0ZvckF1dG9jb3JyZWN0aW9uKTogQ29udmVuaWVudCBmdW5j
dGlvbiBmb3IgZ2V0dGluZyBtYXJrZXIgdHlwZXMgdG8KKyAgICAgICAgICBiZSBhZGRlZCB0byBh
dXRvY29ycmVjdGVkIHdvcmQuCisgICAgICAgIChXZWJDb3JlOjpib3VuZGluZ0JveEZvclJhbmdl
KTogQ29udmVuaWVudCBmdW5jdGlvbiBmb3IgY2FsY3VsYXRpbmcgdGhlIGJvdW5kaW5nIGJveCBv
ZiBhIHJhbmdlLgorICAgICAgICAoV2ViQ29yZTo6bWFya2VyVHlwZXNGb3JSZXBsYWNlbWVudCk6
IENvbnZlbmllbnQgZnVuY3Rpb24gZm9yIGdldHRpbmcgbWFya2VyIHR5cGVzIHRvCisgICAgICAg
ICAgYmUgYWRkZWQgdG8gd29yZCB0aGF0IGhhcyBiZWVuIHJlcGxhY2VkIGJ5IHZhcmlvdXMgY29y
cmVjdGlvbiBwYW5lbC4KKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6cmVzcG9uZFRvQ2hhbmdl
ZFNlbGVjdGlvbik6IEFkZGVkIGNvZGUgdG8gdHJpZ2dlciB0aW1lciBmb3IgbXVsdGlwbGUKKyAg
ICAgICAgICBzdWdnZXN0aW9uIHBhbmVsLgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpndWVz
c2VzRm9yTWlzc3BlbGxlZFNlbGVjdGlvbik6IEFkb3B0ZWQgbmV3IHNpZ25hdHVyZSBvZiBFZGl0
b3JDbGllbnQ6OmdldEd1ZXNzZXNGb3JXb3JkKCkuCisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6
Om1hcmtNaXNzcGVsbGluZ3NBZnRlclR5cGluZ1RvV29yZCk6IEFkb3B0ZWQgbmV3IHNpZ25hdHVy
ZSBvZiBhcHBseUNvcnJlY3Rpb25QYW5lbEluZm8oKS4KKyAgICAgICAgKFdlYkNvcmU6OkVkaXRv
cjo6bWFya0FsbE1pc3NwZWxsaW5nc0FuZEJhZEdyYW1tYXJJblJhbmdlcyk6IERpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6RWRpdG9yOjpjb3JyZWN0aW9uUGFuZWxUaW1lckZpcmVkKTogQWRkZWQg
Y29kZSB0byBoYW5kbGUgbmV3IG11bHRpcGxlIHN1Z2dlc3Rpb24gcGFuZWwuCisgICAgICAgIChX
ZWJDb3JlOjpFZGl0b3I6OmhhbmRsZUNvcnJlY3Rpb25QYW5lbFJlc3VsdCk6IFJlcGxhY2VkIGhh
bmRsZVJlamVjdGVkQ29ycmVjdGlvbigpLCBzaW5jZQorICAgICAgICAgIHdpdGggbmV3IEFwcEtp
dCBjb3JyZWN0aW9uIHBhbmVsIEFQSSwgbm90IG9ubHkgcmVqZWN0aW9uLCBidXQgYWxzbyBjb25m
aXJtYXRpb24gY2FuIGJlCisgICAgICAgICAgaGFuZGxlZCBpbiBjYWxsYmFjay4KKyAgICAgICAg
KFdlYkNvcmU6OkVkaXRvcjo6c3RvcENvcnJlY3Rpb25QYW5lbFRpbWVyKTogTW92ZWQgdGhlIGNv
ZGUgdGhhdCBjbGVhcnMgY29ycmVjdGlvbiBwYW5lbCBpbmZvCisgICAgICAgICAgZnJvbSBkaXNt
aXNzQ29ycmVjdGlvblBhbmVsKCkgdG8gdGhpcyBmdW5jdGlvbiB0byBmaXggYSBidWcgdGhhdCB3
b3VsZCBvY2N1ciB3aGVuIGRlbGV0aW5nCisgICAgICAgICAgYXV0b2NvcnJlY3RlZCB3b3JkLgor
ICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpkaXNtaXNzQ29ycmVjdGlvblBhbmVsKTogRGl0dG8u
CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OmFwcGx5Q29ycmVjdGlvblBhbmVsSW5mbyk6IEFk
ZGVkIGNvZGUgdG8gaGFuZGxlIG5ldyBtdWx0aXBsZSBzdWdnZXN0aW9uIHBhbmVsLgorCisgICAg
ICAgICogZWRpdGluZy9FZGl0b3IuaDogUmVwbGFjZWQgaGFuZGxlUmVqZWN0ZWRDb3JyZWN0aW9u
KCkgd2l0aCBoYW5kbGVDb3JyZWN0aW9uUGFuZWxSZXN1bHQoKS4KKyAgICAgICAgICBDaGFuZ2Vk
IHRoZSBzaWduYXR1cmUgb2YgYXBwbHlDb3JyZWN0aW9uUGFuZWxJbmZvKCkgdG8gaGFubGRlIG5l
dyBjb3JyZWN0aW9uIHBhbmVsIHR5cGUuCisKKyAgICAgICAgKiBlZGl0aW5nL1RleHRDaGVja2lu
Z0hlbHBlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0Q2hlY2tpbmdIZWxwZXI6Omd1ZXNz
ZXNGb3JNaXNzcGVsbGVkT3JVbmdyYW1tYXRpY2FsUmFuZ2UpOiBBZG9wdGVkIG5ldyBFZGl0b3JD
bGllbnQ6OmdldEd1ZXNzZXNGb3JXb3JkKCkuCisKKyAgICAgICAgKiBlZGl0aW5nL1RleHRDaGVj
a2luZ0hlbHBlci5oOiBNYWRlIHBhcmFncmFwaFJhbmdlKCkgcHVibGljLgorCisgICAgICAgICog
bG9hZGVyL0VtcHR5Q2xpZW50cy5oOgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlFZGl0b3JDbGll
bnQ6OnNob3dDb3JyZWN0aW9uUGFuZWwpOiBBZG9wdGVkIG5ldyBzaWduYXR1cmUgZGVmaW5lZCBp
biBiYXNlIGNsYXNzLgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlFZGl0b3JDbGllbnQ6OmdldEd1
ZXNzZXNGb3JXb3JkKTogRGl0dG8uCisKKyAgICAgICAgKiBtYW51YWwtdGVzdHMvYXV0b2NvcnJl
Y3Rpb24vZGlzbWlzcy1tdWx0aXBsZS1ndWVzc2VzLmh0bWw6IEFkZGVkLgorCisgICAgICAgICog
bWFudWFsLXRlc3RzL2F1dG9jb3JyZWN0aW9uL3NlbGVjdC1mcm9tLW11bHRpcGxlLWd1ZXNzZXMu
aHRtbDogQWRkZWQuCisKKyAgICAgICAgKiBwYWdlL0VkaXRvckNsaWVudC5oOiAgQ2hhbmdlZCBz
aG93Q29ycmVjdGlvblBhbmVsKCkgdG8gYWxsb3cgcGFzc2luZyBtdWx0aXBsZSBjb3JyZWN0aW9u
CisgICAgICAgICAgY2FuZGlkYXRlcy4gQ2hhbmdlZCBnZXRHdWVzc2VzRm9yV29yZCgpIHRvIGFs
bG93IHBhc3NpbmcgaW4gY29udGV4dHVhbCB0ZXh0IGZvciBiZXR0ZXIKKyAgICAgICAgICBjb3Jy
ZWN0aW9uIHN1Z2dlc3Rpb25zIChmb3IgdGhvc2Ugc3BlbGxjaGVja2VycyB0aGF0IHV0aWxpemVz
IHN1Y2ggY29udGV4dHVhbCBpbmZvcm1hdGlvbikuCisKIDIwMTAtMTEtMjkgIERpbWl0cmkgR2xh
emtvdiAgPGRnbGF6a292QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJp
biBBZGxlci4KSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5leHAuaW4KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9XZWJDb3JlLmV4cC5pbgkocmV2aXNpb24gNzI4MjUpCisrKyBXZWJDb3JlL1dlYkNvcmUu
ZXhwLmluCSh3b3JraW5nIGNvcHkpCkBAIC02ODEsMTAgKzY4MSwxMCBAQCBfX1pON1dlYkNvcmU2
RWRpdG9yMjFpc1NlbGVjdGlvbk1pc3NwZWxsCiBfX1pON1dlYkNvcmU2RWRpdG9yMjNzZXRCYXNl
V3JpdGluZ0RpcmVjdGlvbkVOU18xNldyaXRpbmdEaXJlY3Rpb25FCiBfX1pON1dlYkNvcmU2RWRp
dG9yMjRhZHZhbmNlVG9OZXh0TWlzc3BlbGxpbmdFYgogX19aTjdXZWJDb3JlNkVkaXRvcjI0Y29t
cHV0ZUFuZFNldFR5cGluZ1N0eWxlRVBOU18xOUNTU1N0eWxlRGVjbGFyYXRpb25FTlNfMTBFZGl0
QWN0aW9uRQotX19aTjdXZWJDb3JlNkVkaXRvcjI0aGFuZGxlUmVqZWN0ZWRDb3JyZWN0aW9uRXYK
IF9fWk43V2ViQ29yZTZFZGl0b3IyNGlzU2VsZWN0aW9uVW5ncmFtbWF0aWNhbEV2CiBfX1pON1dl
YkNvcmU2RWRpdG9yMjZkZWNyZWFzZVNlbGVjdGlvbkxpc3RMZXZlbEV2CiBfX1pON1dlYkNvcmU2
RWRpdG9yMjZpbmNyZWFzZVNlbGVjdGlvbkxpc3RMZXZlbEV2CitfX1pON1dlYkNvcmU2RWRpdG9y
MjdoYW5kbGVDb3JyZWN0aW9uUGFuZWxSZXN1bHRFUktOM1dURjZTdHJpbmdFCiBfX1pON1dlYkNv
cmU2RWRpdG9yMjljYW5EZWNyZWFzZVNlbGVjdGlvbkxpc3RMZXZlbEV2CiBfX1pON1dlYkNvcmU2
RWRpdG9yMjljYW5JbmNyZWFzZVNlbGVjdGlvbkxpc3RMZXZlbEV2CiBfX1pON1dlYkNvcmU2RWRp
dG9yMzBhcHBseVBhcmFncmFwaFN0eWxlVG9TZWxlY3Rpb25FUE5TXzE5Q1NTU3R5bGVEZWNsYXJh
dGlvbkVOU18xMEVkaXRBY3Rpb25FCkluZGV4OiBXZWJDb3JlL2VkaXRpbmcvQ29ycmVjdGlvblBh
bmVsSW5mby5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZWRpdGluZy9Db3JyZWN0aW9uUGFuZWxJ
bmZvLmgJKHJldmlzaW9uIDcyODI1KQorKysgV2ViQ29yZS9lZGl0aW5nL0NvcnJlY3Rpb25QYW5l
bEluZm8uaAkod29ya2luZyBjb3B5KQpAQCAtNDQsNyArNDQsOCBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiBzdHJ1Y3QgQ29ycmVjdGlvblBhbmVsSW5mbyB7CiAgICAgZW51bSBQYW5lbFR5cGUgewog
ICAgICAgICBQYW5lbFR5cGVDb3JyZWN0aW9uID0gMCwKLSAgICAgICAgUGFuZWxUeXBlUmV2ZXJz
aW9uCisgICAgICAgIFBhbmVsVHlwZVJldmVyc2lvbiwKKyAgICAgICAgUGFuZWxUeXBlU3BlbGxp
bmdTdWdnZXN0aW9ucwogICAgIH07CiAKICAgICBSZWZQdHI8UmFuZ2U+IG1fcmFuZ2VUb0JlUmVw
bGFjZWQ7CkluZGV4OiBXZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAkocmV2aXNpb24gNzI4MjUpCisrKyBXZWJDb3JlL2Vk
aXRpbmcvRWRpdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTIsNiArOTIsMzcgQEAgc3RhdGlj
IGlubGluZSBib29sIGlzQW1iaWd1b3VzQm91bmRhcnlDaAogICAgIHJldHVybiBjaGFyYWN0ZXIg
PT0gJ1wnJyB8fCBjaGFyYWN0ZXIgPT0gcmlnaHRTaW5nbGVRdW90YXRpb25NYXJrIHx8IGNoYXJh
Y3RlciA9PSBoZWJyZXdQdW5jdHVhdGlvbkdlcnNoYXlpbTsKIH0KIAorI2lmIFNVUFBPUlRfQVVU
T0NPUlJFQ1RJT05fUEFORUwKK3N0YXRpYyBjb25zdCBWZWN0b3I8RG9jdW1lbnRNYXJrZXI6Ok1h
cmtlclR5cGU+JiBtYXJrZXJUeXBlc0ZvckF1dG9jb3JyZWN0aW9uKCkKK3sKKyAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKFZlY3RvcjxEb2N1bWVudE1hcmtlcjo6TWFya2VyVHlwZT4sIG1hcmtlclR5
cGVzRm9yQXV0b0NvcnJlY3Rpb24sICgpKTsKKyAgICBpZiAobWFya2VyVHlwZXNGb3JBdXRvQ29y
cmVjdGlvbi5pc0VtcHR5KCkpIHsKKyAgICAgICAgbWFya2VyVHlwZXNGb3JBdXRvQ29ycmVjdGlv
bi5hcHBlbmQoRG9jdW1lbnRNYXJrZXI6OlJlcGxhY2VtZW50KTsKKyAgICAgICAgbWFya2VyVHlw
ZXNGb3JBdXRvQ29ycmVjdGlvbi5hcHBlbmQoRG9jdW1lbnRNYXJrZXI6OkNvcnJlY3Rpb25JbmRp
Y2F0b3IpOworICAgIH0KKyAgICByZXR1cm4gbWFya2VyVHlwZXNGb3JBdXRvQ29ycmVjdGlvbjsK
K30KKworc3RhdGljIEZsb2F0UmVjdCBib3VuZGluZ0JveEZvclJhbmdlKFJhbmdlKiByYW5nZSkK
K3sKKyAgICBWZWN0b3I8RmxvYXRRdWFkPiB0ZXh0UXVhZHM7CisgICAgcmFuZ2UtPmdldEJvcmRl
ckFuZFRleHRRdWFkcyh0ZXh0UXVhZHMpOworICAgIEZsb2F0UmVjdCB0b3RhbEJvdW5kaW5nQm94
OworICAgIHNpemVfdCBzaXplID0gdGV4dFF1YWRzLnNpemUoKTsKKyAgICBmb3IgKHNpemVfdCBp
ID0gMDsgaTwgc2l6ZTsgKytpKQorICAgICAgICB0b3RhbEJvdW5kaW5nQm94LnVuaXRlKHRleHRR
dWFkc1tpXS5ib3VuZGluZ0JveCgpKTsKKyAgICByZXR1cm4gdG90YWxCb3VuZGluZ0JveDsKK30K
KyNlbmRpZiAvLyBTVVBQT1JUX0FVVE9DT1JSRUNUSU9OX1BBTkVMCisKK3N0YXRpYyBjb25zdCBW
ZWN0b3I8RG9jdW1lbnRNYXJrZXI6Ok1hcmtlclR5cGU+JiBtYXJrZXJUeXBlc0ZvclJlcGxhY2Vt
ZW50KCkKK3sKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFZlY3RvcjxEb2N1bWVudE1hcmtlcjo6
TWFya2VyVHlwZT4sIG1hcmtlclR5cGVzRm9yUmVwbGFjZW1lbnQsICgpKTsKKyAgICBpZiAobWFy
a2VyVHlwZXNGb3JSZXBsYWNlbWVudC5pc0VtcHR5KCkpCisgICAgICAgIG1hcmtlclR5cGVzRm9y
UmVwbGFjZW1lbnQuYXBwZW5kKERvY3VtZW50TWFya2VyOjpSZXBsYWNlbWVudCk7CisgICAgcmV0
dXJuIG1hcmtlclR5cGVzRm9yUmVwbGFjZW1lbnQ7Cit9CisKIC8vIFdoZW4gYW4gZXZlbnQgaGFu
ZGxlciBoYXMgbW92ZWQgdGhlIHNlbGVjdGlvbiBvdXRzaWRlIG9mIGEgdGV4dCBjb250cm9sCiAv
LyB3ZSBzaG91bGQgdXNlIHRoZSB0YXJnZXQgY29udHJvbCdzIHNlbGVjdGlvbiBmb3IgdGhpcyBl
ZGl0aW5nIG9wZXJhdGlvbi4KIFZpc2libGVTZWxlY3Rpb24gRWRpdG9yOjpzZWxlY3Rpb25Gb3JD
b21tYW5kKEV2ZW50KiBldmVudCkKQEAgLTUwMCwxMyArNTMxLDE4IEBAIHZvaWQgRWRpdG9yOjpy
ZXNwb25kVG9DaGFuZ2VkU2VsZWN0aW9uKGMKICAgICBzaXplX3QgbWFya2VyQ291bnQgPSBtYXJr
ZXJzLnNpemUoKTsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1hcmtlckNvdW50OyArK2kp
IHsKICAgICAgICAgY29uc3QgRG9jdW1lbnRNYXJrZXImIG1hcmtlciA9IG1hcmtlcnNbaV07Ci0g
ICAgICAgIGlmIChtYXJrZXIudHlwZSA9PSBEb2N1bWVudE1hcmtlcjo6Q29ycmVjdGlvbkluZGlj
YXRvciAmJiBzdGF0aWNfY2FzdDxpbnQ+KG1hcmtlci5lbmRPZmZzZXQpID09IGVuZE9mZnNldCkg
eworICAgICAgICBpZiAoKChtYXJrZXIudHlwZSA9PSBEb2N1bWVudE1hcmtlcjo6Q29ycmVjdGlv
bkluZGljYXRvciAmJiBtYXJrZXIuZGVzY3JpcHRpb24ubGVuZ3RoKCkpIHx8IG1hcmtlci50eXBl
ID09IERvY3VtZW50TWFya2VyOjpTcGVsbGluZykgJiYgc3RhdGljX2Nhc3Q8aW50PihtYXJrZXIu
ZW5kT2Zmc2V0KSA9PSBlbmRPZmZzZXQpIHsKICAgICAgICAgICAgIFJlZlB0cjxSYW5nZT4gd29y
ZFJhbmdlID0gUmFuZ2U6OmNyZWF0ZShmcmFtZSgpLT5kb2N1bWVudCgpLCBub2RlLCBtYXJrZXIu
c3RhcnRPZmZzZXQsIG5vZGUsIG1hcmtlci5lbmRPZmZzZXQpOwogICAgICAgICAgICAgU3RyaW5n
IGN1cnJlbnRXb3JkID0gcGxhaW5UZXh0KHdvcmRSYW5nZS5nZXQoKSk7Ci0gICAgICAgICAgICBp
ZiAoY3VycmVudFdvcmQubGVuZ3RoKCkgPiAwICYmIG1hcmtlci5kZXNjcmlwdGlvbi5sZW5ndGgo
KSA+IDApIHsKKyAgICAgICAgICAgIGlmIChjdXJyZW50V29yZC5sZW5ndGgoKSkgewogICAgICAg
ICAgICAgICAgIG1fY29ycmVjdGlvblBhbmVsSW5mby5tX3JhbmdlVG9CZVJlcGxhY2VkID0gd29y
ZFJhbmdlOwotICAgICAgICAgICAgICAgIG1fY29ycmVjdGlvblBhbmVsSW5mby5tX3JlcGxhY2Vt
ZW50U3RyaW5nID0gbWFya2VyLmRlc2NyaXB0aW9uOwotICAgICAgICAgICAgICAgIHN0YXJ0Q29y
cmVjdGlvblBhbmVsVGltZXIoQ29ycmVjdGlvblBhbmVsSW5mbzo6UGFuZWxUeXBlUmV2ZXJzaW9u
KTsKKyAgICAgICAgICAgICAgICBtX2NvcnJlY3Rpb25QYW5lbEluZm8ubV9yZXBsYWNlZFN0cmlu
ZyA9IGN1cnJlbnRXb3JkOworICAgICAgICAgICAgICAgIGlmIChtYXJrZXIudHlwZSA9PSBEb2N1
bWVudE1hcmtlcjo6U3BlbGxpbmcpCisgICAgICAgICAgICAgICAgICAgIHN0YXJ0Q29ycmVjdGlv
blBhbmVsVGltZXIoQ29ycmVjdGlvblBhbmVsSW5mbzo6UGFuZWxUeXBlU3BlbGxpbmdTdWdnZXN0
aW9ucyk7CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIG1fY29y
cmVjdGlvblBhbmVsSW5mby5tX3JlcGxhY2VtZW50U3RyaW5nID0gbWFya2VyLmRlc2NyaXB0aW9u
OworICAgICAgICAgICAgICAgICAgICBzdGFydENvcnJlY3Rpb25QYW5lbFRpbWVyKENvcnJlY3Rp
b25QYW5lbEluZm86OlBhbmVsVHlwZVJldmVyc2lvbik7CisgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KQEAgLTE5MzIsNyArMTk2
OCw3IEBAIFZlY3RvcjxTdHJpbmc+IEVkaXRvcjo6Z3Vlc3Nlc0Zvck1pc3NwZWwKIAogICAgIFZl
Y3RvcjxTdHJpbmc+IGd1ZXNzZXM7CiAgICAgaWYgKGNsaWVudCgpKQotICAgICAgICBjbGllbnQo
KS0+Z2V0R3Vlc3Nlc0ZvcldvcmQoc2VsZWN0ZWRTdHJpbmcsIGd1ZXNzZXMpOworICAgICAgICBj
bGllbnQoKS0+Z2V0R3Vlc3Nlc0ZvcldvcmQoc2VsZWN0ZWRTdHJpbmcsIFN0cmluZygpLCBndWVz
c2VzKTsKICAgICByZXR1cm4gZ3Vlc3NlczsKIH0KIApAQCAtMjAxOSw3ICsyMDU1LDcgQEAgdm9p
ZCBFZGl0b3I6Om1hcmtNaXNzcGVsbGluZ3NBZnRlclR5cGluZwogICAgICAgICAgICAgZG9BcHBs
eUNvcnJlY3Rpb24gPSBmYWxzZTsKICAgICB9CiAgICAgaWYgKGRvQXBwbHlDb3JyZWN0aW9uKQot
ICAgICAgICBhcHBseUNvcnJlY3Rpb25QYW5lbEluZm8odHJ1ZSk7CisgICAgICAgIGFwcGx5Q29y
cmVjdGlvblBhbmVsSW5mbyhtYXJrZXJUeXBlc0ZvckF1dG9jb3JyZWN0aW9uKCkpOwogICAgIG1f
Y29ycmVjdGlvblBhbmVsSW5mby5tX3JhbmdlVG9CZVJlcGxhY2VkLmNsZWFyKCk7CiAjZWxzZQog
ICAgIFVOVVNFRF9QQVJBTShzZWxlY3Rpb25BZnRlclR5cGluZyk7CkBAIC0yMzQxLDcgKzIzNzcs
NyBAQCB2b2lkIEVkaXRvcjo6bWFya0FsbE1pc3NwZWxsaW5nc0FuZEJhZEdyCiAgICAgICAgICAg
ICAgICAgICAgICAgICBtX2NvcnJlY3Rpb25QYW5lbEluZm8ubV9yZXBsYWNlZFN0cmluZyA9IHJl
cGxhY2VkU3RyaW5nOwogICAgICAgICAgICAgICAgICAgICAgICAgbV9jb3JyZWN0aW9uUGFuZWxJ
bmZvLm1fcmVwbGFjZW1lbnRTdHJpbmcgPSByZXN1bHQtPnJlcGxhY2VtZW50OwogICAgICAgICAg
ICAgICAgICAgICAgICAgbV9jb3JyZWN0aW9uUGFuZWxJbmZvLm1faXNBY3RpdmUgPSB0cnVlOwot
ICAgICAgICAgICAgICAgICAgICAgICAgY2xpZW50KCktPnNob3dDb3JyZWN0aW9uUGFuZWwobV9j
b3JyZWN0aW9uUGFuZWxJbmZvLm1fcGFuZWxUeXBlLCB0b3RhbEJvdW5kaW5nQm94LCBtX2NvcnJl
Y3Rpb25QYW5lbEluZm8ubV9yZXBsYWNlZFN0cmluZywgcmVzdWx0LT5yZXBsYWNlbWVudCwgdGhp
cyk7CisgICAgICAgICAgICAgICAgICAgICAgICBjbGllbnQoKS0+c2hvd0NvcnJlY3Rpb25QYW5l
bChtX2NvcnJlY3Rpb25QYW5lbEluZm8ubV9wYW5lbFR5cGUsIHRvdGFsQm91bmRpbmdCb3gsIG1f
Y29ycmVjdGlvblBhbmVsSW5mby5tX3JlcGxhY2VkU3RyaW5nLCByZXN1bHQtPnJlcGxhY2VtZW50
LCBWZWN0b3I8U3RyaW5nPigpLCB0aGlzKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGRvUmVw
bGFjZW1lbnQgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAgfQogI2VuZGlmCkBAIC0yNDE5
LDM5ICsyNDU1LDY2IEBAIHZvaWQgRWRpdG9yOjptYXJrTWlzc3BlbGxpbmdzQW5kQmFkR3JhbW0K
IHZvaWQgRWRpdG9yOjpjb3JyZWN0aW9uUGFuZWxUaW1lckZpcmVkKFRpbWVyPEVkaXRvcj4qKQog
ewogI2lmIFNVUFBPUlRfQVVUT0NPUlJFQ1RJT05fUEFORUwKLSAgICBpZiAobV9jb3JyZWN0aW9u
UGFuZWxJbmZvLm1fcGFuZWxUeXBlID09IENvcnJlY3Rpb25QYW5lbEluZm86OlBhbmVsVHlwZUNv
cnJlY3Rpb24pIHsKKyAgICBzd2l0Y2ggKG1fY29ycmVjdGlvblBhbmVsSW5mby5tX3BhbmVsVHlw
ZSkgeworICAgIGNhc2UgQ29ycmVjdGlvblBhbmVsSW5mbzo6UGFuZWxUeXBlQ29ycmVjdGlvbjog
ewogICAgICAgICBWaXNpYmxlU2VsZWN0aW9uIHNlbGVjdGlvbihmcmFtZSgpLT5zZWxlY3Rpb24o
KS0+c2VsZWN0aW9uKCkpOwogICAgICAgICBWaXNpYmxlUG9zaXRpb24gc3RhcnQoc2VsZWN0aW9u
LnN0YXJ0KCksIHNlbGVjdGlvbi5hZmZpbml0eSgpKTsKICAgICAgICAgVmlzaWJsZVBvc2l0aW9u
IHAgPSBzdGFydE9mV29yZChzdGFydCwgTGVmdFdvcmRJZk9uQm91bmRhcnkpOwogICAgICAgICBW
aXNpYmxlU2VsZWN0aW9uIGFkamFjZW50V29yZHMgPSBWaXNpYmxlU2VsZWN0aW9uKHAsIHN0YXJ0
KTsKICAgICAgICAgbWFya0FsbE1pc3NwZWxsaW5nc0FuZEJhZEdyYW1tYXJJblJhbmdlcyhNYXJr
U3BlbGxpbmcgfCBTaG93Q29ycmVjdGlvblBhbmVsLCBhZGphY2VudFdvcmRzLnRvTm9ybWFsaXpl
ZFJhbmdlKCkuZ2V0KCksIDApOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIFN0cmluZyBjdXJyZW50
V29yZCA9IHBsYWluVGV4dChtX2NvcnJlY3Rpb25QYW5lbEluZm8ubV9yYW5nZVRvQmVSZXBsYWNl
ZC5nZXQoKSk7Ci0gICAgICAgIFZlY3RvcjxGbG9hdFF1YWQ+IHRleHRRdWFkczsKLSAgICAgICAg
bV9jb3JyZWN0aW9uUGFuZWxJbmZvLm1fcmFuZ2VUb0JlUmVwbGFjZWQtPmdldEJvcmRlckFuZFRl
eHRRdWFkcyh0ZXh0UXVhZHMpOwotICAgICAgICBWZWN0b3I8RmxvYXRRdWFkPjo6Y29uc3RfaXRl
cmF0b3IgZW5kID0gdGV4dFF1YWRzLmVuZCgpOwotICAgICAgICBGbG9hdFJlY3QgdG90YWxCb3Vu
ZGluZ0JveDsKLSAgICAgICAgZm9yIChWZWN0b3I8RmxvYXRRdWFkPjo6Y29uc3RfaXRlcmF0b3Ig
aXQgPSB0ZXh0UXVhZHMuYmVnaW4oKTsgaXQgPCBlbmQ7ICsraXQpCi0gICAgICAgICAgICB0b3Rh
bEJvdW5kaW5nQm94LnVuaXRlKGl0LT5ib3VuZGluZ0JveCgpKTsKKyAgICB9CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgQ29ycmVjdGlvblBhbmVsSW5mbzo6UGFuZWxUeXBlUmV2ZXJzaW9uOiB7
CisgICAgICAgIG1fY29ycmVjdGlvblBhbmVsSW5mby5tX2lzQWN0aXZlID0gdHJ1ZTsKKyAgICAg
ICAgbV9jb3JyZWN0aW9uUGFuZWxJbmZvLm1fcmVwbGFjZWRTdHJpbmcgPSBwbGFpblRleHQobV9j
b3JyZWN0aW9uUGFuZWxJbmZvLm1fcmFuZ2VUb0JlUmVwbGFjZWQuZ2V0KCkpOworICAgICAgICBj
bGllbnQoKS0+c2hvd0NvcnJlY3Rpb25QYW5lbChtX2NvcnJlY3Rpb25QYW5lbEluZm8ubV9wYW5l
bFR5cGUsIGJvdW5kaW5nQm94Rm9yUmFuZ2UobV9jb3JyZWN0aW9uUGFuZWxJbmZvLm1fcmFuZ2VU
b0JlUmVwbGFjZWQuZ2V0KCkpLCBtX2NvcnJlY3Rpb25QYW5lbEluZm8ubV9yZXBsYWNlZFN0cmlu
ZywgbV9jb3JyZWN0aW9uUGFuZWxJbmZvLm1fcmVwbGFjZW1lbnRTdHJpbmcsIFZlY3RvcjxTdHJp
bmc+KCksIHRoaXMpOworICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDb3JyZWN0aW9u
UGFuZWxJbmZvOjpQYW5lbFR5cGVTcGVsbGluZ1N1Z2dlc3Rpb25zOiB7CisgICAgICAgIGlmIChw
bGFpblRleHQobV9jb3JyZWN0aW9uUGFuZWxJbmZvLm1fcmFuZ2VUb0JlUmVwbGFjZWQuZ2V0KCkp
ICE9IG1fY29ycmVjdGlvblBhbmVsSW5mby5tX3JlcGxhY2VkU3RyaW5nKQorICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIFN0cmluZyBwYXJhZ3JhcGhUZXh0ID0gcGxhaW5UZXh0KFRleHRDaGVj
a2luZ1BhcmFncmFwaChtX2NvcnJlY3Rpb25QYW5lbEluZm8ubV9yYW5nZVRvQmVSZXBsYWNlZCku
cGFyYWdyYXBoUmFuZ2UoKS5nZXQoKSk7CisgICAgICAgIFZlY3RvcjxTdHJpbmc+IHN1Z2dlc3Rp
b25zOworICAgICAgICBjbGllbnQoKS0+Z2V0R3Vlc3Nlc0ZvcldvcmQobV9jb3JyZWN0aW9uUGFu
ZWxJbmZvLm1fcmVwbGFjZWRTdHJpbmcsIHBhcmFncmFwaFRleHQsIHN1Z2dlc3Rpb25zKTsKKyAg
ICAgICAgaWYgKHN1Z2dlc3Rpb25zLmlzRW1wdHkoKSkKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBTdHJpbmcgdG9wU3VnZ2VzdGlvbiA9IHN1Z2dlc3Rpb25zLmZpcnN0KCk7CisgICAgICAg
IHN1Z2dlc3Rpb25zLnJlbW92ZSgwKTsKICAgICAgICAgbV9jb3JyZWN0aW9uUGFuZWxJbmZvLm1f
aXNBY3RpdmUgPSB0cnVlOwotICAgICAgICBtX2NvcnJlY3Rpb25QYW5lbEluZm8ubV9yZXBsYWNl
ZFN0cmluZyA9IGN1cnJlbnRXb3JkOwotICAgICAgICBjbGllbnQoKS0+c2hvd0NvcnJlY3Rpb25Q
YW5lbChtX2NvcnJlY3Rpb25QYW5lbEluZm8ubV9wYW5lbFR5cGUsIHRvdGFsQm91bmRpbmdCb3gs
IG1fY29ycmVjdGlvblBhbmVsSW5mby5tX3JlcGxhY2VkU3RyaW5nLCBtX2NvcnJlY3Rpb25QYW5l
bEluZm8ubV9yZXBsYWNlbWVudFN0cmluZywgdGhpcyk7CisgICAgICAgIGNsaWVudCgpLT5zaG93
Q29ycmVjdGlvblBhbmVsKG1fY29ycmVjdGlvblBhbmVsSW5mby5tX3BhbmVsVHlwZSwgYm91bmRp
bmdCb3hGb3JSYW5nZShtX2NvcnJlY3Rpb25QYW5lbEluZm8ubV9yYW5nZVRvQmVSZXBsYWNlZC5n
ZXQoKSksIG1fY29ycmVjdGlvblBhbmVsSW5mby5tX3JlcGxhY2VkU3RyaW5nLCB0b3BTdWdnZXN0
aW9uLCBzdWdnZXN0aW9ucywgdGhpcyk7CisgICAgfQorICAgICAgICBicmVhazsKICAgICB9CiAj
ZW5kaWYKIH0KIAotdm9pZCBFZGl0b3I6OmhhbmRsZVJlamVjdGVkQ29ycmVjdGlvbigpCit2b2lk
IEVkaXRvcjo6aGFuZGxlQ29ycmVjdGlvblBhbmVsUmVzdWx0KGNvbnN0IFN0cmluZyYgY29ycmVj
dGlvbikKIHsKICAgICBSYW5nZSogcmVwbGFjZWRSYW5nZSA9IG1fY29ycmVjdGlvblBhbmVsSW5m
by5tX3JhbmdlVG9CZVJlcGxhY2VkLmdldCgpOwogICAgIGlmICghcmVwbGFjZWRSYW5nZSB8fCBt
X2ZyYW1lLT5kb2N1bWVudCgpICE9IHJlcGxhY2VkUmFuZ2UtPm93bmVyRG9jdW1lbnQoKSkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgaWYgKG1fY29ycmVjdGlvblBhbmVsSW5mby5tX3BhbmVsVHlw
ZSA9PSBDb3JyZWN0aW9uUGFuZWxJbmZvOjpQYW5lbFR5cGVDb3JyZWN0aW9uKQorICAgIFN0cmlu
ZyBjdXJyZW50V29yZCA9IHBsYWluVGV4dChtX2NvcnJlY3Rpb25QYW5lbEluZm8ubV9yYW5nZVRv
QmVSZXBsYWNlZC5nZXQoKSk7CisgICAgLy8gQ2hlY2sgdG8gc2VlIGlmIHRoZSB3b3JkIHdlIGFy
ZSBhYm91dCB0byBjb3JyZWN0IGhhcyBiZWVuIGNoYW5nZWQgYmV0d2VlbiB0aW1lciBmaXJpbmcg
YW5kIGNhbGxiYWNrIGJlaW5nIHRyaWdnZXJlZC4KKyAgICBpZiAoY3VycmVudFdvcmQgIT0gbV9j
b3JyZWN0aW9uUGFuZWxJbmZvLm1fcmVwbGFjZWRTdHJpbmcpCisgICAgICAgIHJldHVybjsKKwor
ICAgIG1fY29ycmVjdGlvblBhbmVsSW5mby5tX2lzQWN0aXZlID0gZmFsc2U7CisKKyAgICBzd2l0
Y2ggKG1fY29ycmVjdGlvblBhbmVsSW5mby5tX3BhbmVsVHlwZSkgeworICAgIGNhc2UgQ29ycmVj
dGlvblBhbmVsSW5mbzo6UGFuZWxUeXBlQ29ycmVjdGlvbjoKICAgICAgICAgcmVwbGFjZWRSYW5n
ZS0+c3RhcnRDb250YWluZXIoKS0+ZG9jdW1lbnQoKS0+bWFya2VycygpLT5hZGRNYXJrZXIocmVw
bGFjZWRSYW5nZSwgRG9jdW1lbnRNYXJrZXI6OlJlamVjdGVkQ29ycmVjdGlvbiwgbV9jb3JyZWN0
aW9uUGFuZWxJbmZvLm1fcmVwbGFjZWRTdHJpbmcpOwotICAgIGVsc2UgewotICAgICAgICBtX2Nv
cnJlY3Rpb25QYW5lbEluZm8ubV9pc0FjdGl2ZSA9IGZhbHNlOwotICAgICAgICBhcHBseUNvcnJl
Y3Rpb25QYW5lbEluZm8oZmFsc2UpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENvcnJlY3Rp
b25QYW5lbEluZm86OlBhbmVsVHlwZVJldmVyc2lvbjoKKyAgICAgICAgYXBwbHlDb3JyZWN0aW9u
UGFuZWxJbmZvKG1hcmtlclR5cGVzRm9yUmVwbGFjZW1lbnQoKSk7CisgICAgY2FzZSBDb3JyZWN0
aW9uUGFuZWxJbmZvOjpQYW5lbFR5cGVTcGVsbGluZ1N1Z2dlc3Rpb25zOgorICAgICAgICBpZiAo
Y29ycmVjdGlvbi5sZW5ndGgoKSkgeworICAgICAgICAgICAgbV9jb3JyZWN0aW9uUGFuZWxJbmZv
Lm1fcmVwbGFjZW1lbnRTdHJpbmcgPSBjb3JyZWN0aW9uOworICAgICAgICAgICAgYXBwbHlDb3Jy
ZWN0aW9uUGFuZWxJbmZvKG1hcmtlclR5cGVzRm9yUmVwbGFjZW1lbnQoKSk7CisgICAgICAgIH0K
KyAgICAgICAgYnJlYWs7CiAgICAgfQorCiAgICAgbV9jb3JyZWN0aW9uUGFuZWxJbmZvLm1fcmFu
Z2VUb0JlUmVwbGFjZWQuY2xlYXIoKTsKIH0KIApAQCAtMjQ3NSw2ICsyNTM4LDcgQEAgdm9pZCBF
ZGl0b3I6OnN0b3BDb3JyZWN0aW9uUGFuZWxUaW1lcigpCiB7CiAjaWYgU1VQUE9SVF9BVVRPQ09S
UkVDVElPTl9QQU5FTAogICAgIG1fY29ycmVjdGlvblBhbmVsVGltZXIuc3RvcCgpOworICAgIG1f
Y29ycmVjdGlvblBhbmVsSW5mby5tX3JhbmdlVG9CZVJlcGxhY2VkLmNsZWFyKCk7CiAjZW5kaWYK
IH0KIApAQCAtMjUwNCw3ICsyNTY4LDYgQEAgdm9pZCBFZGl0b3I6OmRpc21pc3NDb3JyZWN0aW9u
UGFuZWwoQ29ycgogICAgIGlmICghbV9jb3JyZWN0aW9uUGFuZWxJbmZvLm1faXNBY3RpdmUpCiAg
ICAgICAgIHJldHVybjsKICAgICBtX2NvcnJlY3Rpb25QYW5lbEluZm8ubV9pc0FjdGl2ZSA9IGZh
bHNlOwotICAgIG1fY29ycmVjdGlvblBhbmVsSW5mby5tX3JhbmdlVG9CZVJlcGxhY2VkLmNsZWFy
KCk7CiAgICAgaWYgKGNsaWVudCgpKQogICAgICAgICBjbGllbnQoKS0+ZGlzbWlzc0NvcnJlY3Rp
b25QYW5lbChjb3JyZWN0aW9uV2FzUmVqZWN0ZWRPck5vdCk7CiAjZWxzZQpAQCAtMjYwOCw3ICsy
NjcxLDcgQEAgdm9pZCBFZGl0b3I6OnJlbW92ZVNwZWxsQW5kQ29ycmVjdGlvbk1hcgogICAgICAg
ICBkb2N1bWVudC0+bWFya2VycygpLT5yZW1vdmVNYXJrZXJzKHBhaXJJdGVyYXRvci0+Zmlyc3Qu
Z2V0KCksIHBhaXJJdGVyYXRvci0+c2Vjb25kKTsKIH0KIAotdm9pZCBFZGl0b3I6OmFwcGx5Q29y
cmVjdGlvblBhbmVsSW5mbyhib29sIGFkZENvcnJlY3Rpb25JbmRpY2F0b3JNYXJrZXIpCit2b2lk
IEVkaXRvcjo6YXBwbHlDb3JyZWN0aW9uUGFuZWxJbmZvKGNvbnN0IFZlY3RvcjxEb2N1bWVudE1h
cmtlcjo6TWFya2VyVHlwZT4mIG1hcmtlclR5cGVzVG9BZGQpCiB7CiAgICAgaWYgKCFtX2NvcnJl
Y3Rpb25QYW5lbEluZm8ubV9yYW5nZVRvQmVSZXBsYWNlZCkKICAgICAgICAgcmV0dXJuOwpAQCAt
MjY0OSw5ICsyNzEyLDEwIEBAIHZvaWQgRWRpdG9yOjphcHBseUNvcnJlY3Rpb25QYW5lbEluZm8o
Ym8KICAgICAgICAgY2FyZXRQb3NpdGlvbi5tb3ZlVG9PZmZzZXQoY2FyZXRQb3NpdGlvbi5vZmZz
ZXRJbkNvbnRhaW5lck5vZGUoKSArIG1fY29ycmVjdGlvblBhbmVsSW5mby5tX3JlcGxhY2VtZW50
U3RyaW5nLmxlbmd0aCgpIC0gbV9jb3JyZWN0aW9uUGFuZWxJbmZvLm1fcmVwbGFjZWRTdHJpbmcu
bGVuZ3RoKCkpOwogICAgICAgICBzZXRFbmQocGFyYWdyYXBoUmFuZ2VDb250YWluaW5nQ29ycmVj
dGlvbi5nZXQoKSwgZW5kT2ZQYXJhZ3JhcGgoY2FyZXRQb3NpdGlvbikpOwogICAgICAgICBSZWZQ
dHI8UmFuZ2U+IHJlcGxhY2VtZW50UmFuZ2UgPSBUZXh0SXRlcmF0b3I6OnN1YnJhbmdlKHBhcmFn
cmFwaFJhbmdlQ29udGFpbmluZ0NvcnJlY3Rpb24uZ2V0KCksIGNvcnJlY3Rpb25TdGFydE9mZnNl
dEluUGFyYWdyYXBoLCBtX2NvcnJlY3Rpb25QYW5lbEluZm8ubV9yZXBsYWNlbWVudFN0cmluZy5s
ZW5ndGgoKSk7Ci0gICAgICAgIHJlcGxhY2VtZW50UmFuZ2UtPnN0YXJ0Q29udGFpbmVyKCktPmRv
Y3VtZW50KCktPm1hcmtlcnMoKS0+YWRkTWFya2VyKHJlcGxhY2VtZW50UmFuZ2UuZ2V0KCksIERv
Y3VtZW50TWFya2VyOjpSZXBsYWNlbWVudCwgbV9jb3JyZWN0aW9uUGFuZWxJbmZvLm1fcmVwbGFj
ZW1lbnRTdHJpbmcpOwotICAgICAgICBpZiAoYWRkQ29ycmVjdGlvbkluZGljYXRvck1hcmtlcikK
LSAgICAgICAgICAgIHJlcGxhY2VtZW50UmFuZ2UtPnN0YXJ0Q29udGFpbmVyKCktPmRvY3VtZW50
KCktPm1hcmtlcnMoKS0+YWRkTWFya2VyKHJlcGxhY2VtZW50UmFuZ2UuZ2V0KCksIERvY3VtZW50
TWFya2VyOjpDb3JyZWN0aW9uSW5kaWNhdG9yLCBtX2NvcnJlY3Rpb25QYW5lbEluZm8ubV9yZXBs
YWNlZFN0cmluZyk7CisgICAgICAgIERvY3VtZW50TWFya2VyQ29udHJvbGxlciogbWFya2VycyA9
IHJlcGxhY2VtZW50UmFuZ2UtPnN0YXJ0Q29udGFpbmVyKCktPmRvY3VtZW50KCktPm1hcmtlcnMo
KTsKKyAgICAgICAgc2l6ZV90IHNpemUgPSBtYXJrZXJUeXBlc1RvQWRkLnNpemUoKTsKKyAgICAg
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplOyArK2kpCisgICAgICAgICAgICBtYXJrZXJz
LT5hZGRNYXJrZXIocmVwbGFjZW1lbnRSYW5nZS5nZXQoKSwgbWFya2VyVHlwZXNUb0FkZFtpXSwg
bV9jb3JyZWN0aW9uUGFuZWxJbmZvLm1fcmVwbGFjZW1lbnRTdHJpbmcpOwogICAgICAgICBtX2Zy
YW1lLT5zZWxlY3Rpb24oKS0+bW92ZVRvKGNhcmV0UG9zaXRpb24sIGZhbHNlKTsKICAgICB9CiB9
CkluZGV4OiBXZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9l
ZGl0aW5nL0VkaXRvci5oCShyZXZpc2lvbiA3MjgyNSkKKysrIFdlYkNvcmUvZWRpdGluZy9FZGl0
b3IuaAkod29ya2luZyBjb3B5KQpAQCAtMzEzLDcgKzMxMyw4IEBAIHB1YmxpYzoKIAogICAgIHZv
aWQgaGFuZGxlQ2FuY2VsT3BlcmF0aW9uKCk7CiAgICAgdm9pZCBzdGFydENvcnJlY3Rpb25QYW5l
bFRpbWVyKENvcnJlY3Rpb25QYW5lbEluZm86OlBhbmVsVHlwZSk7Ci0gICAgdm9pZCBoYW5kbGVS
ZWplY3RlZENvcnJlY3Rpb24oKTsKKyAgICAvLyBJZiB1c2VyIGNvbmZpcm1lZCBhIGNvcnJlY3Rp
b24gaW4gdGhlIGNvcnJlY3Rpb24gcGFuZWwsIGNvcnJlY3Rpb24gaGFzIG5vbi16ZXJvIGxlbmd0
aCwgb3RoZXJ3aXNlIGl0IG1lYW5zIHRoYXQgdXNlciBoYXMgZGlzbWlzc2VkIHRoZSBwYW5lbC4K
KyAgICB2b2lkIGhhbmRsZUNvcnJlY3Rpb25QYW5lbFJlc3VsdChjb25zdCBTdHJpbmcmIGNvcnJl
Y3Rpb24pOwogICAgIGJvb2wgaXNTaG93aW5nQ29ycmVjdGlvblBhbmVsKCk7CiAKICAgICB2b2lk
IHBhc3RlQXNGcmFnbWVudChQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+LCBib29sIHNtYXJ0
UmVwbGFjZSwgYm9vbCBtYXRjaFN0eWxlKTsKQEAgLTQwNiw3ICs0MDcsNyBAQCBwcml2YXRlOgog
ICAgIE5vZGUqIGZpbmRFdmVudFRhcmdldEZyb21TZWxlY3Rpb24oKSBjb25zdDsKICAgICB2b2lk
IHN0b3BDb3JyZWN0aW9uUGFuZWxUaW1lcigpOwogICAgIHZvaWQgZGlzbWlzc0NvcnJlY3Rpb25Q
YW5lbChDb3JyZWN0aW9uV2FzUmVqZWN0ZWRPck5vdCk7Ci0gICAgdm9pZCBhcHBseUNvcnJlY3Rp
b25QYW5lbEluZm8oYm9vbCBhZGRDb3JyZWN0aW9uSW5kaWNhdG9yTWFya2VyKTsKKyAgICB2b2lk
IGFwcGx5Q29ycmVjdGlvblBhbmVsSW5mbyhjb25zdCBWZWN0b3I8RG9jdW1lbnRNYXJrZXI6Ok1h
cmtlclR5cGU+JiBtYXJrZXJUeXBlc1RvQWRkKTsKIH07CiAKIGlubGluZSB2b2lkIEVkaXRvcjo6
c2V0U3RhcnROZXdLaWxsUmluZ1NlcXVlbmNlKGJvb2wgZmxhZykKSW5kZXg6IFdlYkNvcmUvZWRp
dGluZy9UZXh0Q2hlY2tpbmdIZWxwZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZWRpdGlu
Zy9UZXh0Q2hlY2tpbmdIZWxwZXIuY3BwCShyZXZpc2lvbiA3MjgyNSkKKysrIFdlYkNvcmUvZWRp
dGluZy9UZXh0Q2hlY2tpbmdIZWxwZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NDEsNyArNTQx
LDcgQEAgVmVjdG9yPFN0cmluZz4gVGV4dENoZWNraW5nSGVscGVyOjpndWVzcwogICAgICAgICBp
ZiAocmVzdWx0LT50eXBlID09IFRleHRDaGVja2luZ1R5cGVTcGVsbGluZyAmJiBwYXJhZ3JhcGgu
Y2hlY2tpbmdSYW5nZU1hdGNoZXMocmVzdWx0LT5sb2NhdGlvbiwgcmVzdWx0LT5sZW5ndGgpKSB7
CiAgICAgICAgICAgICBTdHJpbmcgbWlzc3BlbGxlZFdvcmQgPSBwYXJhZ3JhcGguY2hlY2tpbmdT
dWJzdHJpbmcoKTsKICAgICAgICAgICAgIEFTU0VSVChtaXNzcGVsbGVkV29yZC5sZW5ndGgoKSk7
Ci0gICAgICAgICAgICBtX2NsaWVudC0+Z2V0R3Vlc3Nlc0ZvcldvcmQobWlzc3BlbGxlZFdvcmQs
IGd1ZXNzZXMpOworICAgICAgICAgICAgbV9jbGllbnQtPmdldEd1ZXNzZXNGb3JXb3JkKG1pc3Nw
ZWxsZWRXb3JkLCBTdHJpbmcoKSwgZ3Vlc3Nlcyk7CiAgICAgICAgICAgICBtX2NsaWVudC0+dXBk
YXRlU3BlbGxpbmdVSVdpdGhNaXNzcGVsbGVkV29yZChtaXNzcGVsbGVkV29yZCk7CiAgICAgICAg
ICAgICBtaXNzcGVsbGVkID0gdHJ1ZTsKICAgICAgICAgICAgIHJldHVybiBndWVzc2VzOwpJbmRl
eDogV2ViQ29yZS9lZGl0aW5nL1RleHRDaGVja2luZ0hlbHBlci5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvZWRpdGluZy9UZXh0Q2hlY2tpbmdIZWxwZXIuaAkocmV2aXNpb24gNzI4MjUpCisrKyBX
ZWJDb3JlL2VkaXRpbmcvVGV4dENoZWNraW5nSGVscGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTU1
LDExICs1NSwxMSBAQCBwdWJsaWM6CiAgICAgYm9vbCBjaGVja2luZ1JhbmdlTWF0Y2hlcyhpbnQg
bG9jYXRpb24sIGludCBsZW5ndGgpIGNvbnN0IHsgcmV0dXJuIGxvY2F0aW9uID09IGNoZWNraW5n
U3RhcnQoKSAmJiBsZW5ndGggPT0gY2hlY2tpbmdMZW5ndGgoKTsgfQogICAgIGJvb2wgaXNDaGVj
a2luZ1JhbmdlQ292ZXJlZEJ5KGludCBsb2NhdGlvbiwgaW50IGxlbmd0aCkgY29uc3QgeyByZXR1
cm4gbG9jYXRpb24gPD0gY2hlY2tpbmdTdGFydCgpICYmIGxvY2F0aW9uICsgbGVuZ3RoID49IGNo
ZWNraW5nU3RhcnQoKSArIGNoZWNraW5nTGVuZ3RoKCk7IH0KICAgICBib29sIGNoZWNraW5nUmFu
Z2VDb3ZlcnMoaW50IGxvY2F0aW9uLCBpbnQgbGVuZ3RoKSBjb25zdCB7IHJldHVybiBsb2NhdGlv
biA8IGNoZWNraW5nRW5kKCkgJiYgbG9jYXRpb24gKyBsZW5ndGggPiBjaGVja2luZ1N0YXJ0KCk7
IH0KKyAgICBQYXNzUmVmUHRyPFJhbmdlPiBwYXJhZ3JhcGhSYW5nZSgpIGNvbnN0OwogCiBwcml2
YXRlOgogICAgIHZvaWQgaW52YWxpZGF0ZVBhcmFncmFwaFJhbmdlVmFsdWVzKCk7CiAgICAgUGFz
c1JlZlB0cjxSYW5nZT4gY2hlY2tpbmdSYW5nZSgpIGNvbnN0IHsgcmV0dXJuIG1fY2hlY2tpbmdS
YW5nZTsgfQotICAgIFBhc3NSZWZQdHI8UmFuZ2U+IHBhcmFncmFwaFJhbmdlKCkgY29uc3Q7CiAg
ICAgUGFzc1JlZlB0cjxSYW5nZT4gb2Zmc2V0QXNSYW5nZSgpIGNvbnN0OwogICAgIGNvbnN0IFN0
cmluZyYgdGV4dCgpIGNvbnN0OwogCkluZGV4OiBXZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAkocmV2aXNpb24g
NzI4MjUpCisrKyBXZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAkod29ya2luZyBjb3B5KQpA
QCAtNDgwLDcgKzQ4MCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgY2hlY2tUZXh0T2ZQ
YXJhZ3JhcGgoY29uc3QgVUNoYXIqLCBpbnQsIHVpbnQ2NF90LCBWZWN0b3I8VGV4dENoZWNraW5n
UmVzdWx0PiYpIHsgfTsKICNlbmRpZgogI2lmIFNVUFBPUlRfQVVUT0NPUlJFQ1RJT05fUEFORUwK
LSAgICB2aXJ0dWFsIHZvaWQgc2hvd0NvcnJlY3Rpb25QYW5lbChDb3JyZWN0aW9uUGFuZWxJbmZv
OjpQYW5lbFR5cGUsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmlu
ZyYsIEVkaXRvciopIHsgfQorICAgIHZpcnR1YWwgdm9pZCBzaG93Q29ycmVjdGlvblBhbmVsKENv
cnJlY3Rpb25QYW5lbEluZm86OlBhbmVsVHlwZSwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgU3Ry
aW5nJiwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmVjdG9yPFN0cmluZz4mLCBFZGl0b3IqKSB7IH0K
ICAgICB2aXJ0dWFsIHZvaWQgZGlzbWlzc0NvcnJlY3Rpb25QYW5lbChDb3JyZWN0aW9uV2FzUmVq
ZWN0ZWRPck5vdCkgeyB9CiAgICAgdmlydHVhbCBib29sIGlzU2hvd2luZ0NvcnJlY3Rpb25QYW5l
bCgpIHsgcmV0dXJuIGZhbHNlOyB9CiAjZW5kaWYKQEAgLTQ4OCw3ICs0ODgsNyBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVNwZWxsaW5nVUlXaXRoTWlzc3BlbGxlZFdvcmQoY29u
c3QgU3RyaW5nJikgeyB9CiAgICAgdmlydHVhbCB2b2lkIHNob3dTcGVsbGluZ1VJKGJvb2wpIHsg
fQogICAgIHZpcnR1YWwgYm9vbCBzcGVsbGluZ1VJSXNTaG93aW5nKCkgeyByZXR1cm4gZmFsc2U7
IH0KLSAgICB2aXJ0dWFsIHZvaWQgZ2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgU3RyaW5nJiwgVmVj
dG9yPFN0cmluZz4mKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZ2V0R3Vlc3Nlc0ZvcldvcmQoY29u
c3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgVmVjdG9yPFN0cmluZz4mKSB7IH0KICAgICB2aXJ0
dWFsIHZvaWQgd2lsbFNldElucHV0TWV0aG9kU3RhdGUoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQg
c2V0SW5wdXRNZXRob2RTdGF0ZShib29sKSB7IH0KIApJbmRleDogV2ViQ29yZS9tYW51YWwtdGVz
dHMvYXV0b2NvcnJlY3Rpb24vZGlzbWlzcy1tdWx0aXBsZS1ndWVzc2VzLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9tYW51YWwtdGVzdHMvYXV0b2NvcnJlY3Rpb24vZGlzbWlzcy1tdWx0aXBs
ZS1ndWVzc2VzLmh0bWwJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL21hbnVhbC10ZXN0cy9hdXRv
Y29ycmVjdGlvbi9kaXNtaXNzLW11bHRpcGxlLWd1ZXNzZXMuaHRtbAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSw0OSBAQAorPGh0bWw+Cis8aGVhZD4KKworPHN0eWxlPgorLmVkaXRpbmcgeworICAg
IGJvcmRlcjogMnB4IHNvbGlkIHJlZDsKKyAgICBwYWRkaW5nOiAxMnB4OworICAgIGZvbnQtc2l6
ZTogMjRweDsKK30KKzwvc3R5bGU+Cis8c2NyaXB0IHNyYz0uLi8uLi8uLi9MYXlvdXRUZXN0cy9l
ZGl0aW5nL2VkaXRpbmcuanMgbGFuZ3VhZ2U9IkphdmFTY3JpcHQiIHR5cGU9InRleHQvSmF2YVNj
cmlwdCIgPjwvc2NyaXB0PgorCis8c2NyaXB0PgorZnVuY3Rpb24gZWRpdGluZ1Rlc3QoKSB7Cisg
ICAgdHlwZUNoYXJhY3RlckNvbW1hbmQoJ3QnKTsKKyAgICB0eXBlQ2hhcmFjdGVyQ29tbWFuZCgn
aCcpOworICAgIHR5cGVDaGFyYWN0ZXJDb21tYW5kKCdlJyk7CisgICAgdHlwZUNoYXJhY3RlckNv
bW1hbmQoJyAnKTsKKyAgICB0eXBlQ2hhcmFjdGVyQ29tbWFuZCgnbScpOworICAgIHR5cGVDaGFy
YWN0ZXJDb21tYW5kKCdlJyk7CisgICAgdHlwZUNoYXJhY3RlckNvbW1hbmQoJ3MnKTsKKyAgICB0
eXBlQ2hhcmFjdGVyQ29tbWFuZCgnYScpOworICAgIHR5cGVDaGFyYWN0ZXJDb21tYW5kKCdlJyk7
CisgICAgdHlwZUNoYXJhY3RlckNvbW1hbmQoJ2cnKTsKKyAgICB0eXBlQ2hhcmFjdGVyQ29tbWFu
ZCgnZScpOworICAgIHR5cGVDaGFyYWN0ZXJDb21tYW5kKCdlJyk7CisgICAgdHlwZUNoYXJhY3Rl
ckNvbW1hbmQoJyAnKTsKKyAgICBleGVjTW92ZVNlbGVjdGlvbkJhY2t3YXJkQnlDaGFyYWN0ZXJD
b21tYW5kKCk7Cit9CisKKzwvc2NyaXB0PgorCis8dGl0bGU+RGlzbWlzcyBNdWx0aXBsZSBHdWVz
c2VzIFRlc3Q8L3RpdGxlPgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2PjxwPlRoaXMgdGVzdCB2ZXJp
ZmllcyB0aGF0IHByZXNzaW5nIEVTQyBrZXkgZGl1c21pc3NlcyBtdWx0aXBsZSBndWVzc2VzIHBh
bmVsIGNvcnJlY3RseTwvcD4KKzxwPkFmdGVyIHNlZWluZyB0aGUgcGFuZWwgd2l0aCBtdWx0aXBs
ZSBjYW5kaWRhdGVzLCBwcmVzc2luZyBFU0Mga2V5IHRvIGRpc21pc3MgdGhlIHBhbmVsLjwvcD4K
KzxwICBzdHlsZT0iY29sb3I6Z3JlZW4iPk5vdGUsIHRoaXMgdGVzdCBjYW4gZmFpbCBkdWUgdG8g
dXNlciBzcGVjaWZpYyBzcGVsbCBjaGVja2luZyBkYXRhLiBUbyBmaXggdGhpcywgcmVtb3ZlIGFs
bCBmaWxlcyBpbiB+L0xpYnJhcnkvU3BlbGxpbmcsIHRoZW4ga2lsbCBBcHBsZVNwZWxsLnNlcnZp
Y2UgcHJvY2Vzcy48L3A+Cis8ZGl2IGNvbnRlbnRlZGl0YWJsZSBpZD0icm9vdCIgY2xhc3M9ImVk
aXRpbmciPgorPHNwYW4gaWQ9InRlc3QiPjwvc3Bhbj4KKzwvZGl2PgorCisKKzxzY3JpcHQ+City
dW5FZGl0aW5nVGVzdCgpOworPC9zY3JpcHQ+CisKKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IFdl
YkNvcmUvbWFudWFsLXRlc3RzL2F1dG9jb3JyZWN0aW9uL3NlbGVjdC1mcm9tLW11bHRpcGxlLWd1
ZXNzZXMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL21hbnVhbC10ZXN0cy9hdXRvY29ycmVj
dGlvbi9zZWxlY3QtZnJvbS1tdWx0aXBsZS1ndWVzc2VzLmh0bWwJKHJldmlzaW9uIDApCisrKyBX
ZWJDb3JlL21hbnVhbC10ZXN0cy9hdXRvY29ycmVjdGlvbi9zZWxlY3QtZnJvbS1tdWx0aXBsZS1n
dWVzc2VzLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDkgQEAKKzxodG1sPgorPGhlYWQ+
CisKKzxzdHlsZT4KKy5lZGl0aW5nIHsKKyAgICBib3JkZXI6IDJweCBzb2xpZCByZWQ7CisgICAg
cGFkZGluZzogMTJweDsKKyAgICBmb250LXNpemU6IDI0cHg7Cit9Cis8L3N0eWxlPgorPHNjcmlw
dCBzcmM9Li4vLi4vLi4vTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0aW5nLmpzIGxhbmd1YWdlPSJK
YXZhU2NyaXB0IiB0eXBlPSJ0ZXh0L0phdmFTY3JpcHQiID48L3NjcmlwdD4KKworPHNjcmlwdD4K
K2Z1bmN0aW9uIGVkaXRpbmdUZXN0KCkgeworICAgIHR5cGVDaGFyYWN0ZXJDb21tYW5kKCd0Jyk7
CisgICAgdHlwZUNoYXJhY3RlckNvbW1hbmQoJ2gnKTsKKyAgICB0eXBlQ2hhcmFjdGVyQ29tbWFu
ZCgnZScpOworICAgIHR5cGVDaGFyYWN0ZXJDb21tYW5kKCcgJyk7CisgICAgdHlwZUNoYXJhY3Rl
ckNvbW1hbmQoJ20nKTsKKyAgICB0eXBlQ2hhcmFjdGVyQ29tbWFuZCgnZScpOworICAgIHR5cGVD
aGFyYWN0ZXJDb21tYW5kKCdzJyk7CisgICAgdHlwZUNoYXJhY3RlckNvbW1hbmQoJ2EnKTsKKyAg
ICB0eXBlQ2hhcmFjdGVyQ29tbWFuZCgnZScpOworICAgIHR5cGVDaGFyYWN0ZXJDb21tYW5kKCdn
Jyk7CisgICAgdHlwZUNoYXJhY3RlckNvbW1hbmQoJ2UnKTsKKyAgICB0eXBlQ2hhcmFjdGVyQ29t
bWFuZCgnZScpOworICAgIHR5cGVDaGFyYWN0ZXJDb21tYW5kKCcgJyk7CisgICAgZXhlY01vdmVT
ZWxlY3Rpb25CYWNrd2FyZEJ5Q2hhcmFjdGVyQ29tbWFuZCgpOworfQorCis8L3NjcmlwdD4KKwor
PHRpdGxlPlNlbGVjdCBGcm9tIE11bHRpcGxlIEd1ZXNzZXMgVGVzdDwvdGl0bGU+Cis8L2hlYWQ+
Cis8Ym9keT4KKzxkaXY+PHA+VGhpcyB0ZXN0IHZlcmlmaWVzIHRoYXQgbXVsdGlwbGUgZ3Vlc3Nl
cyBvbiBtaXNwZWxsZWQgd29yZCBpcyB3b3JraW5nIGNvcnJlY3RseTwvcD4KKzxwPkFmdGVyIHNl
ZWluZyB0aGUgcGFuZWwgd2l0aCBtdWx0aXBsZSBjYW5kaWRhdGVzLCB1c2UgbGVmdCBhbmQvb3Ig
cmlnaHQgYXJyb3cga2V5IHRvIHNlbGVjdCB0aGUgZGVzaXJlZCBjYW5kaWRhdGUsIGFuZCB0aGVu
IHVzZSByZXR1cm4ga2V5IHRvIGNvbmZpcm0uIFlvdSBjYW4gYWxzbyB1c2UgdGhpcyB0ZXN0IHRv
IHRlc3QgdGhhdCBwcmVzc2luZyBFU0Mga2V5IHdpbGwgZGlzbWlzcyB0aGUgcGFuZWwuPC9wPgor
PHAgIHN0eWxlPSJjb2xvcjpncmVlbiI+Tm90ZSwgdGhpcyB0ZXN0IGNhbiBmYWlsIGR1ZSB0byB1
c2VyIHNwZWNpZmljIHNwZWxsIGNoZWNraW5nIGRhdGEuIFRvIGZpeCB0aGlzLCByZW1vdmUgYWxs
IGZpbGVzIGluIH4vTGlicmFyeS9TcGVsbGluZywgdGhlbiBraWxsIEFwcGxlU3BlbGwuc2Vydmlj
ZSBwcm9jZXNzLjwvcD4KKzxkaXYgY29udGVudGVkaXRhYmxlIGlkPSJyb290IiBjbGFzcz0iZWRp
dGluZyI+Cis8c3BhbiBpZD0idGVzdCI+PC9zcGFuPgorPC9kaXY+CisKKworPHNjcmlwdD4KK3J1
bkVkaXRpbmdUZXN0KCk7Cis8L3NjcmlwdD4KKworPC9ib2R5PgorPC9odG1sPgpJbmRleDogV2Vi
Q29yZS9wYWdlL0VkaXRvckNsaWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9FZGl0
b3JDbGllbnQuaAkocmV2aXNpb24gNzI4MjUpCisrKyBXZWJDb3JlL3BhZ2UvRWRpdG9yQ2xpZW50
LmgJKHdvcmtpbmcgY29weSkKQEAgLTE5MCw3ICsxOTAsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAog
I2lmIFNVUFBPUlRfQVVUT0NPUlJFQ1RJT05fUEFORUwKLSAgICB2aXJ0dWFsIHZvaWQgc2hvd0Nv
cnJlY3Rpb25QYW5lbChDb3JyZWN0aW9uUGFuZWxJbmZvOjpQYW5lbFR5cGUsIGNvbnN0IEZsb2F0
UmVjdCYgYm91bmRpbmdCb3hPZlJlcGxhY2VkU3RyaW5nLCBjb25zdCBTdHJpbmcmIHJlcGxhY2Vk
U3RyaW5nLCBjb25zdCBTdHJpbmcmIHJlcGxhY21lbnRTdHJpbmcsIEVkaXRvciopID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgc2hvd0NvcnJlY3Rpb25QYW5lbChDb3JyZWN0aW9uUGFuZWxJbmZvOjpQ
YW5lbFR5cGUsIGNvbnN0IEZsb2F0UmVjdCYgYm91bmRpbmdCb3hPZlJlcGxhY2VkU3RyaW5nLCBj
b25zdCBTdHJpbmcmIHJlcGxhY2VkU3RyaW5nLCBjb25zdCBTdHJpbmcmIHJlcGxhY21lbnRTdHJp
bmcsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBhbHRlcm5hdGl2ZVJlcGxhY2VtZW50U3RyaW5ncywg
RWRpdG9yKikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaXNtaXNzQ29ycmVjdGlvblBhbmVsKENv
cnJlY3Rpb25XYXNSZWplY3RlZE9yTm90KSA9IDA7CiAgICAgdmlydHVhbCBib29sIGlzU2hvd2lu
Z0NvcnJlY3Rpb25QYW5lbCgpID0gMDsKICNlbmRpZgpAQCAtMTk5LDcgKzE5OSw4IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlU3BlbGxpbmdVSVdpdGhNaXNzcGVsbGVkV29yZChj
b25zdCBTdHJpbmcmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNob3dTcGVsbGluZ1VJKGJvb2wg
c2hvdykgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBzcGVsbGluZ1VJSXNTaG93aW5nKCkgPSAwOwot
ICAgIHZpcnR1YWwgdm9pZCBnZXRHdWVzc2VzRm9yV29yZChjb25zdCBTdHJpbmcmLCBWZWN0b3I8
U3RyaW5nPiYgZ3Vlc3NlcykgPSAwOworICAgIC8vIEZvciBzcGVsbGNoZWNrZXJzIHRoYXQgc3Vw
cG9ydCBtdWx0aXBsZSBsYW5ndWFnZXMsIGl0J3Mgb2Z0ZW4gaW1wb3J0YW50IHRvIGJlIGFibGUg
dG8gaWRlbnRpZnkgdGhlIGxhbmd1YWdlIGluIG9yZGVyIHRvIHByb3ZpZGUgbW9yZSBhY2N1cmF0
ZSBjb3JyZWN0aW9uIHN1Z2dlc3Rpb25zLiBDYWxsZXIgY2FuIHBhc3MgaW4gbW9yZSB0ZXh0IGlu
ICJjb250ZXh0IiB0byBhaWQgc3VjaCBzcGVsbGNoZWNrZXJzIG9uIGxhbmd1YWdlIGlkZW50aWZp
Y2F0aW9uLiBOb3JhbWxseSBpdCdzIHRoZSB0ZXh0IHN1cnJvdW5kaW5nIHRoZSAid29yZCIgZm9y
IHdoaWNoIHdlIGFyZSBnZXR0aW5nIGNvcnJlY3Rpb24gc3VnZ2VzdGlvbnMuCisgICAgdmlydHVh
bCB2b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYgd29yZCwgY29uc3QgU3RyaW5n
JiBjb250ZXh0LCBWZWN0b3I8U3RyaW5nPiYgZ3Vlc3NlcykgPSAwOwogICAgIHZpcnR1YWwgdm9p
ZCB3aWxsU2V0SW5wdXRNZXRob2RTdGF0ZSgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5w
dXRNZXRob2RTdGF0ZShib29sIGVuYWJsZWQpID0gMDsKIH07CkluZGV4OiBXZWJLaXQyL0NoYW5n
ZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL0NoYW5nZUxvZwkocmV2aXNpb24gNzI4MjUpCisr
KyBXZWJLaXQyL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDEw
LTExLTI5ICBKaWEgUHUgIDxqcHVAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFN1cHBvcnQgbXVsdGlwbGUgY29ycmVjdGlvbiBjYW5k
aWRhdGVzIHBhbmVsIGZvciBtaXNzcGVsbGVkIHdvcmQgb24gTWFjIE9TIFguCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MDEzNworICAgICAgICA8cmRh
cjovL3Byb2JsZW0vODU2ODA1OT4KKworICAgICAgICBBZG9wdGVkIG5ldyBmdW5jdGlvbiBzaWdu
YXR1cmVzIGRlZmluZWQgaW4gYmFzZSBjbGFzcy4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRWRp
dG9yQ2xpZW50OjpnZXRHdWVzc2VzRm9yV29yZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L21hYy9XZWJFZGl0b3JDbGllbnRNYWMubW06CisgICAgICAgIChXZWJLaXQ6Oldl
YkVkaXRvckNsaWVudDo6c2hvd0NvcnJlY3Rpb25QYW5lbCk6CisKIDIwMTAtMTEtMjkgIEJhbGF6
cyBLZWxlbWVuICA8a2JhbGF6c0B3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFk
YW0gUm9iZW4uCkluZGV4OiBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRp
dG9yQ2xpZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcAkocmV2aXNpb24gNzI4MjUpCisrKyBXZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMzkzLDcgKzM5Myw3IEBAIGJvb2wgV2ViRWRpdG9yQ2xpZW50OjpzcGVsbGluZ1VJSXNT
aG93aW4KICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgV2ViRWRpdG9yQ2xpZW50OjpnZXRH
dWVzc2VzRm9yV29yZChjb25zdCBTdHJpbmcmLCBWZWN0b3I8U3RyaW5nPiYpCit2b2lkIFdlYkVk
aXRvckNsaWVudDo6Z2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5n
JiwgVmVjdG9yPFN0cmluZz4mKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CkluZGV4OiBX
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVu
dC5oCShyZXZpc2lvbiA3MjgyNSkKKysrIFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJFZGl0b3JDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMTMwLDExICsxMzAsMTEgQEAg
cHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlU3BlbGxpbmdVSVdpdGhNaXNzcGVsbGVk
V29yZChjb25zdCBTdHJpbmcmKTsKICAgICB2aXJ0dWFsIHZvaWQgc2hvd1NwZWxsaW5nVUkoYm9v
bCBzaG93KTsKICAgICB2aXJ0dWFsIGJvb2wgc3BlbGxpbmdVSUlzU2hvd2luZygpOwotICAgIHZp
cnR1YWwgdm9pZCBnZXRHdWVzc2VzRm9yV29yZChjb25zdCBTdHJpbmcmLCBWZWN0b3I8U3RyaW5n
PiYgZ3Vlc3Nlcyk7CisgICAgdmlydHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0
cmluZyYgd29yZCwgY29uc3QgU3RyaW5nJiBjb250ZXh0LCBWZWN0b3I8U3RyaW5nPiYgZ3Vlc3Nl
cyk7CiAgICAgdmlydHVhbCB2b2lkIHdpbGxTZXRJbnB1dE1ldGhvZFN0YXRlKCk7CiAgICAgdmly
dHVhbCB2b2lkIHNldElucHV0TWV0aG9kU3RhdGUoYm9vbCBlbmFibGVkKTsKICNpZiBQTEFURk9S
TShNQUMpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1RJR0VSKSAmJiAhZGVmaW5lZChCVUlMRElO
R19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCi0gICAg
dmlydHVhbCB2b2lkIHNob3dDb3JyZWN0aW9uUGFuZWwoV2ViQ29yZTo6Q29ycmVjdGlvblBhbmVs
SW5mbzo6UGFuZWxUeXBlLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGJvdW5kaW5nQm94T2ZS
ZXBsYWNlZFN0cmluZywgY29uc3QgU3RyaW5nJiByZXBsYWNlZFN0cmluZywgY29uc3QgU3RyaW5n
JiByZXBsYWNlbWVudFN0cmluZywgV2ViQ29yZTo6RWRpdG9yKik7CisgICAgdmlydHVhbCB2b2lk
IHNob3dDb3JyZWN0aW9uUGFuZWwoV2ViQ29yZTo6Q29ycmVjdGlvblBhbmVsSW5mbzo6UGFuZWxU
eXBlLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGJvdW5kaW5nQm94T2ZSZXBsYWNlZFN0cmlu
ZywgY29uc3QgU3RyaW5nJiByZXBsYWNlZFN0cmluZywgY29uc3QgU3RyaW5nJiByZXBsYWNlbWVu
dFN0cmluZywgY29uc3QgVmVjdG9yPFN0cmluZz4mIGFsdGVybmF0aXZlUmVwbGFjZW1lbnRTdHJp
bmdzLCBXZWJDb3JlOjpFZGl0b3IqKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlzbWlzc0NvcnJlY3Rp
b25QYW5lbChXZWJDb3JlOjpDb3JyZWN0aW9uV2FzUmVqZWN0ZWRPck5vdCk7CiAgICAgdmlydHVh
bCBib29sIGlzU2hvd2luZ0NvcnJlY3Rpb25QYW5lbCgpOwogI2VuZGlmCkluZGV4OiBXZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkVkaXRvckNsaWVudE1hYy5tbQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkVkaXRv
ckNsaWVudE1hYy5tbQkocmV2aXNpb24gNzI4MjUpCisrKyBXZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvbWFjL1dlYkVkaXRvckNsaWVudE1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAt
MjIzLDcgKzIyMyw3IEBAIHZvaWQgV2ViRWRpdG9yQ2xpZW50OjpjaGVja1RleHRPZlBhcmFncmEK
ICNlbmRpZgogCiAjaWYgIWRlZmluZWQoQlVJTERJTkdfT05fVElHRVIpICYmICFkZWZpbmVkKEJV
SUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkK
LXZvaWQgV2ViRWRpdG9yQ2xpZW50OjpzaG93Q29ycmVjdGlvblBhbmVsKFdlYkNvcmU6OkNvcnJl
Y3Rpb25QYW5lbEluZm86OlBhbmVsVHlwZSB0eXBlLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3Qm
IGJvdW5kaW5nQm94T2ZSZXBsYWNlZFN0cmluZywgY29uc3QgV1RGOjpTdHJpbmcmIHJlcGxhY2Vk
U3RyaW5nLCBjb25zdCBXVEY6OlN0cmluZyYgcmVwbGFjZW1lbnRTdHJpbmcsIFdlYkNvcmU6OkVk
aXRvciopCit2b2lkIFdlYkVkaXRvckNsaWVudDo6c2hvd0NvcnJlY3Rpb25QYW5lbChXZWJDb3Jl
OjpDb3JyZWN0aW9uUGFuZWxJbmZvOjpQYW5lbFR5cGUgdHlwZSwgY29uc3QgV2ViQ29yZTo6Rmxv
YXRSZWN0JiBib3VuZGluZ0JveE9mUmVwbGFjZWRTdHJpbmcsIGNvbnN0IFdURjo6U3RyaW5nJiBy
ZXBsYWNlZFN0cmluZywgY29uc3QgV1RGOjpTdHJpbmcmIHJlcGxhY2VtZW50U3RyaW5nLCBjb25z
dCBWZWN0b3I8U3RyaW5nPiYgYWx0ZXJuYXRpdmVSZXBsYWNlbWVudFN0cmluZ3MsIFdlYkNvcmU6
OkVkaXRvciopCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KSW5kZXg6IFdlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwko
cmV2aXNpb24gNzI4MjUpCisrKyBXZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTAtMTEtMjkgIEppYSBQdSAgPGpwdUBhcHBsZS5jb20+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3VwcG9y
dCBtdWx0aXBsZSBjb3JyZWN0aW9uIGNhbmRpZGF0ZXMgcGFuZWwgZm9yIG1pc3NwZWxsZWQgd29y
ZCBvbiBNYWMgT1MgWC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTUwMTM3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NTY4MDU5PgorCisgICAgICAg
IEFkb3B0ZWQgbmV3IGZ1bmN0aW9uIHNpZ25hdHVyZSBkZWZpbmVkIGluIGJhc2UgY2xhc3MuCisK
KyAgICAgICAgKiBzcmMvRWRpdG9yQ2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkVk
aXRvckNsaWVudEltcGw6OmdldEd1ZXNzZXNGb3JXb3JkKToKKyAgICAgICAgKiBzcmMvRWRpdG9y
Q2xpZW50SW1wbC5oOgorCiAyMDEwLTExLTI5ICBBbmRyZXkgS29zeWFrb3YgIDxjYXNlcUBjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gRmlzaGVyLgpJbmRleDogV2Vi
S2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGllbnRJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJL
aXQvY2hyb21pdW0vc3JjL0VkaXRvckNsaWVudEltcGwuY3BwCShyZXZpc2lvbiA3MjgyNSkKKysr
IFdlYktpdC9jaHJvbWl1bS9zcmMvRWRpdG9yQ2xpZW50SW1wbC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTkyOSw3ICs5MjksOCBAQCBib29sIEVkaXRvckNsaWVudEltcGw6OnNwZWxsaW5nVUlJc1No
b3dpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi12b2lkIEVkaXRvckNsaWVudEltcGw6OmdldEd1
ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYsCit2b2lkIEVkaXRvckNsaWVudEltcGw6OmdldEd1
ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYgd29yZCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nJiBjb250ZXh0LAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBXVEY6OlZlY3RvcjxTdHJpbmc+JiBndWVzc2VzKQog
ewogICAgIG5vdEltcGxlbWVudGVkKCk7CkluZGV4OiBXZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRv
ckNsaWVudEltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRvckNs
aWVudEltcGwuaAkocmV2aXNpb24gNzI4MjUpCisrKyBXZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRv
ckNsaWVudEltcGwuaAkod29ya2luZyBjb3B5KQpAQCAtMTA3LDYgKzEwNyw3IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIHZvaWQgc2hvd1NwZWxsaW5nVUkoYm9vbCBzaG93KTsKICAgICB2aXJ0dWFs
IGJvb2wgc3BlbGxpbmdVSUlzU2hvd2luZygpOwogICAgIHZpcnR1YWwgdm9pZCBnZXRHdWVzc2Vz
Rm9yV29yZChjb25zdCBXVEY6OlN0cmluZyYgd29yZCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY29uc3QgV1RGOjpTdHJpbmcmIGNvbnRleHQsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFdURjo6VmVjdG9yPFdURjo6U3RyaW5nPiYgZ3Vlc3Nlcyk7CiAg
ICAgdmlydHVhbCB2b2lkIHdpbGxTZXRJbnB1dE1ldGhvZFN0YXRlKCk7CiAgICAgdmlydHVhbCB2
b2lkIHNldElucHV0TWV0aG9kU3RhdGUoYm9vbCBlbmFibGVkKTsKSW5kZXg6IFdlYktpdC9lZmwv
Q2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9lZmwvQ2hhbmdlTG9nCShyZXZpc2lvbiA3
MjgyNSkKKysrIFdlYktpdC9lZmwvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEs
MTcgQEAKKzIwMTAtMTEtMjkgIEppYSBQdSAgPGpwdUBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3VwcG9ydCBtdWx0aXBsZSBjb3Jy
ZWN0aW9uIGNhbmRpZGF0ZXMgcGFuZWwgZm9yIG1pc3NwZWxsZWQgd29yZCBvbiBNYWMgT1MgWC4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUwMTM3Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NTY4MDU5PgorCisgICAgICAgIEFkb3B0ZWQgbmV3IGZ1
bmN0aW9uIHNpZ25hdHVyZSBkZWZpbmVkIGluIGJhc2UgY2xhc3MuCisKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9FZGl0b3JDbGllbnRFZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9y
Q2xpZW50RWZsOjpnZXRHdWVzc2VzRm9yV29yZCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQv
RWRpdG9yQ2xpZW50RWZsLmg6CisKIDIwMTAtMTEtMjIgIEFsZXggR3JpbG8gIDxhYmdyaWxvQHBy
b2Z1c2lvbi5tb2JpPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEtlbm5ldGggUm9oZGUgQ2hyaXN0
aWFuc2VuLgpJbmRleDogV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRFZmwu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50
RWZsLmNwcAkocmV2aXNpb24gNzI4MjUpCisrKyBXZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Vk
aXRvckNsaWVudEVmbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ4OCw3ICs0ODgsNyBAQCBib29s
IEVkaXRvckNsaWVudEVmbDo6c3BlbGxpbmdVSUlzU2hvd2luCiAgICAgcmV0dXJuIGZhbHNlOwog
fQogCi12b2lkIEVkaXRvckNsaWVudEVmbDo6Z2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgU3RyaW5n
JiwgVmVjdG9yPFN0cmluZz4mKQordm9pZCBFZGl0b3JDbGllbnRFZmw6OmdldEd1ZXNzZXNGb3JX
b3JkKGNvbnN0IFN0cmluZyYgd29yZCwgY29uc3QgU3RyaW5nJiBjb250ZXh0LCBWZWN0b3I8U3Ry
aW5nPiYgZ3Vlc3NlcykKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQpJbmRleDogV2ViS2l0
L2VmbC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRFZmwuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJL
aXQvZWZsL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEVmbC5oCShyZXZpc2lvbiA3MjgyNSkK
KysrIFdlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50RWZsLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTExMCw3ICsxMTAsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0
ZVNwZWxsaW5nVUlXaXRoTWlzc3BlbGxlZFdvcmQoY29uc3QgU3RyaW5nJik7CiAgICAgdmlydHVh
bCB2b2lkIHNob3dTcGVsbGluZ1VJKGJvb2wgc2hvdyk7CiAgICAgdmlydHVhbCBib29sIHNwZWxs
aW5nVUlJc1Nob3dpbmcoKTsKLSAgICB2aXJ0dWFsIHZvaWQgZ2V0R3Vlc3Nlc0ZvcldvcmQoY29u
c3QgU3RyaW5nJiwgV1RGOjpWZWN0b3I8U3RyaW5nPiYgZ3Vlc3Nlcyk7CisgICAgdmlydHVhbCB2
b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYgd29yZCwgY29uc3QgU3RyaW5nJiBj
b250ZXh0LCBXVEY6OlZlY3RvcjxTdHJpbmc+JiBndWVzc2VzKTsKICAgICB2aXJ0dWFsIHZvaWQg
d2lsbFNldElucHV0TWV0aG9kU3RhdGUoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5wdXRNZXRo
b2RTdGF0ZShib29sIGVuYWJsZWQpOwogCkluZGV4OiBXZWJLaXQvZ3RrL0NoYW5nZUxvZwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJLaXQvZ3RrL0NoYW5nZUxvZwkocmV2aXNpb24gNzI4MjUpCisrKyBXZWJL
aXQvZ3RrL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBACisyMDEwLTEx
LTI5ICBKaWEgUHUgIDxqcHVAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFN1cHBvcnQgbXVsdGlwbGUgY29ycmVjdGlvbiBjYW5kaWRh
dGVzIHBhbmVsIGZvciBtaXNzcGVsbGVkIHdvcmQgb24gTWFjIE9TIFguCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MDEzNworICAgICAgICA8cmRhcjov
L3Byb2JsZW0vODU2ODA1OT4KKworICAgICAgICBBZG9wdGVkIG5ldyBmdW5jdGlvbiBzaWduYXR1
cmUgZGVmaW5lZCBpbiBiYXNlIGNsYXNzLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRp
dG9yQ2xpZW50R3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50OjpnZXRHdWVz
c2VzRm9yV29yZCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmg6
CisKIDIwMTAtMTEtMjkgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IFhhbiBMb3Blei4KSW5kZXg6IFdlYktpdC9ndGsvV2Vi
Q29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3Rr
L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5jcHAJKHJldmlzaW9uIDcyODI1KQorKysg
V2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xMDA4LDcgKzEwMDgsNyBAQCBib29sIEVkaXRvckNsaWVudDo6c3BlbGxpbmdVSUlz
U2hvd2luZygpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi12b2lkIEVkaXRvckNsaWVudDo6Z2V0
R3Vlc3Nlc0ZvcldvcmQoY29uc3QgU3RyaW5nJiB3b3JkLCBXVEY6OlZlY3RvcjxTdHJpbmc+JiBn
dWVzc2VzKQordm9pZCBFZGl0b3JDbGllbnQ6OmdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmlu
ZyYgd29yZCwgY29uc3QgU3RyaW5nJiBjb250ZXh0LCBXVEY6OlZlY3RvcjxTdHJpbmc+JiBndWVz
c2VzKQogewogICAgIEdTTGlzdCogZGljdHMgPSB3ZWJraXRfd2ViX3NldHRpbmdzX2dldF9lbmNo
YW50X2RpY3RzKG1fd2ViVmlldyk7CiAgICAgZ3Vlc3Nlcy5jbGVhcigpOwpJbmRleDogV2ViS2l0
L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJL
aXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5oCShyZXZpc2lvbiA3MjgyNSkK
KysrIFdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTEyOSw3ICsxMjksNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKICAgICAgICAgdmly
dHVhbCB2b2lkIHVwZGF0ZVNwZWxsaW5nVUlXaXRoTWlzc3BlbGxlZFdvcmQoY29uc3QgV1RGOjpT
dHJpbmcmKTsKICAgICAgICAgdmlydHVhbCB2b2lkIHNob3dTcGVsbGluZ1VJKGJvb2wgc2hvdyk7
CiAgICAgICAgIHZpcnR1YWwgYm9vbCBzcGVsbGluZ1VJSXNTaG93aW5nKCk7Ci0gICAgICAgIHZp
cnR1YWwgdm9pZCBnZXRHdWVzc2VzRm9yV29yZChjb25zdCBXVEY6OlN0cmluZyYsIFdURjo6VmVj
dG9yPFdURjo6U3RyaW5nPiYgZ3Vlc3Nlcyk7CisgICAgICAgIHZpcnR1YWwgdm9pZCBnZXRHdWVz
c2VzRm9yV29yZChjb25zdCBXVEY6OlN0cmluZyYgd29yZCwgY29uc3QgV1RGOjpTdHJpbmcmIGNv
bnRleHQsIFdURjo6VmVjdG9yPFdURjo6U3RyaW5nPiYgZ3Vlc3Nlcyk7CiAgICAgICAgIHZpcnR1
YWwgdm9pZCB3aWxsU2V0SW5wdXRNZXRob2RTdGF0ZSgpOwogICAgICAgICB2aXJ0dWFsIHZvaWQg
c2V0SW5wdXRNZXRob2RTdGF0ZShib29sIGVuYWJsZWQpOwogCkluZGV4OiBXZWJLaXQvaGFpa3Uv
Q2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9oYWlrdS9DaGFuZ2VMb2cJKHJldmlzaW9u
IDcyODI1KQorKysgV2ViS2l0L2hhaWt1L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDE3IEBACisyMDEwLTExLTI5ICBKaWEgUHUgIDxqcHVAYXBwbGUuY29tPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN1cHBvcnQgbXVsdGlwbGUg
Y29ycmVjdGlvbiBjYW5kaWRhdGVzIHBhbmVsIGZvciBtaXNzcGVsbGVkIHdvcmQgb24gTWFjIE9T
IFguCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MDEz
NworICAgICAgICA8cmRhcjovL3Byb2JsZW0vODU2ODA1OT4KKworICAgICAgICBBZG9wdGVkIG5l
dyBmdW5jdGlvbiBzaWduYXR1cmUgZGVmaW5lZCBpbiBiYXNlIGNsYXNzLgorCisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50SGFpa3UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RWRpdG9yQ2xpZW50SGFpa3U6OmdldEd1ZXNzZXNGb3JXb3JkKToKKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9FZGl0b3JDbGllbnRIYWlrdS5oOgorCiAyMDEwLTExLTA4ICBBbGV4ZXkgUHJvc2t1
cnlha292ICA8YXBAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVy
LgpJbmRleDogV2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEhhaWt1LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJLaXQvaGFpa3UvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50
SGFpa3UuY3BwCShyZXZpc2lvbiA3MjgyNSkKKysrIFdlYktpdC9oYWlrdS9XZWJDb3JlU3VwcG9y
dC9FZGl0b3JDbGllbnRIYWlrdS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ2MSw3ICs0NjEsNyBA
QCBib29sIEVkaXRvckNsaWVudEhhaWt1OjpzcGVsbGluZ1VJSXNTaG93CiAgICAgcmV0dXJuIGZh
bHNlOwogfQogCi12b2lkIEVkaXRvckNsaWVudEhhaWt1OjpnZXRHdWVzc2VzRm9yV29yZChjb25z
dCBTdHJpbmcmLCBWZWN0b3I8U3RyaW5nPiYpCit2b2lkIEVkaXRvckNsaWVudEhhaWt1OjpnZXRH
dWVzc2VzRm9yV29yZChjb25zdCBTdHJpbmcmIHdvcmQsIGNvbnN0IFN0cmluZyYgY29udGV4dCwg
VmVjdG9yPFN0cmluZz4mIGd1ZXNzZXMpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KSW5k
ZXg6IFdlYktpdC9oYWlrdS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRIYWlrdS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYktpdC9oYWlrdS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRIYWlrdS5o
CShyZXZpc2lvbiA3MjgyNSkKKysrIFdlYktpdC9oYWlrdS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JD
bGllbnRIYWlrdS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDcsNyArMTA3LDcgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlU3BlbGxpbmdVSVdpdGhNaXNz
cGVsbGVkV29yZChjb25zdCBTdHJpbmcmKTsKICAgICAgICAgdmlydHVhbCB2b2lkIHNob3dTcGVs
bGluZ1VJKGJvb2wgc2hvdyk7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBzcGVsbGluZ1VJSXNTaG93
aW5nKCk7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBnZXRHdWVzc2VzRm9yV29yZChjb25zdCBTdHJp
bmcmLCBWZWN0b3I8U3RyaW5nPiYgZ3Vlc3Nlcyk7CisgICAgICAgIHZpcnR1YWwgdm9pZCBnZXRH
dWVzc2VzRm9yV29yZChjb25zdCBTdHJpbmcmIHdvcmQsIGNvbnN0IFN0cmluZyYgY29udGV4dCwg
VmVjdG9yPFN0cmluZz4mIGd1ZXNzZXMpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNldElu
cHV0TWV0aG9kU3RhdGUoKTsKICAgICAgICAgdmlydHVhbCB2b2lkIHNldElucHV0TWV0aG9kU3Rh
dGUoYm9vbCBlbmFibGVkKTsKIApJbmRleDogV2ViS2l0L21hYy9DaGFuZ2VMb2cKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDcyODI1KQorKysgV2ViS2l0L21h
Yy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMSBAQAorMjAxMC0xMS0yOSAg
SmlhIFB1ICA8anB1QGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBTdXBwb3J0IG11bHRpcGxlIGNvcnJlY3Rpb24gY2FuZGlkYXRlcyBw
YW5lbCBmb3IgbWlzc3BlbGxlZCB3b3JkIG9uIE1hYyBPUyBYLgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTAxMzcKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzg1NjgwNTk+CisKKyAgICAgICAgVGhpcyBwYXRjaCBpcyBmb3Igc3VwcG9ydGluZyBtdWx0
aXBsZSBjb3JyZWN0aW9uIHN1Z2dlc3Rpb24gcGFuZWwgb24gTWFjIE9TIFguCisgICAgICAgIFRo
ZSBiZWhhdmlvciBhbmQgaW1wbGVtZW50YXRpb24gaXMgc2ltaWxhciB0byB0aGF0IG9mIHJldmVy
c2lvbiBjYW5kaWF0ZSBwYW5lbC4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkVkaXRv
ckNsaWVudC5oOiBBZG9wdGVkIG5ldyBzaWduYXR1cmVzIGRlZmluZWQgaW4gYmFzZSBjbGFzcy4K
KworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbTogIEFkb3B0ZWQg
bmV3IHNpZ25hdHVyZXMgZGVmaW5lZCBpbiBiYXNlIGNsYXNzLgorICAgICAgICAgIEFkZGVkIGNv
ZGUgdG8gaGFuZGxlIG5ldyBtdWx0aXBsZSBzdWdnZXN0aW9uIGNhbmlkYXRlIHBhbmVsIHR5cGUu
CisgICAgICAgIChXZWJFZGl0b3JDbGllbnQ6OnNob3dDb3JyZWN0aW9uUGFuZWwpOgorICAgICAg
ICAoV2ViRWRpdG9yQ2xpZW50OjpnZXRHdWVzc2VzRm9yV29yZCk6CisKIDIwMTAtMTEtMjIgIFJ5
b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgVG9u
eSBDaGFuZy4KSW5kZXg6IFdlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGll
bnQuaAkocmV2aXNpb24gNzI4MjUpCisrKyBXZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVk
aXRvckNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMjksMTEgKzEyOSwxMSBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVNwZWxsaW5nVUlXaXRoTWlzc3BlbGxlZFdvcmQoY29u
c3QgV1RGOjpTdHJpbmcmKTsKICAgICB2aXJ0dWFsIHZvaWQgc2hvd1NwZWxsaW5nVUkoYm9vbCBz
aG93KTsKICAgICB2aXJ0dWFsIGJvb2wgc3BlbGxpbmdVSUlzU2hvd2luZygpOwotICAgIHZpcnR1
YWwgdm9pZCBnZXRHdWVzc2VzRm9yV29yZChjb25zdCBXVEY6OlN0cmluZyYsIFdURjo6VmVjdG9y
PFdURjo6U3RyaW5nPiYgZ3Vlc3Nlcyk7CisgICAgdmlydHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JX
b3JkKGNvbnN0IFdURjo6U3RyaW5nJiB3b3JkLCBjb25zdCBXVEY6OlN0cmluZyYgY29udGV4dCwg
V1RGOjpWZWN0b3I8V1RGOjpTdHJpbmc+JiBndWVzc2VzKTsKICAgICB2aXJ0dWFsIHZvaWQgd2ls
bFNldElucHV0TWV0aG9kU3RhdGUoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5wdXRNZXRob2RT
dGF0ZShib29sIGVuYWJsZWQpOwogI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1RJR0VSKSAmJiAh
ZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9X
X0xFT1BBUkQpCi0gICAgdmlydHVhbCB2b2lkIHNob3dDb3JyZWN0aW9uUGFuZWwoV2ViQ29yZTo6
Q29ycmVjdGlvblBhbmVsSW5mbzo6UGFuZWxUeXBlLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3Qm
IGJvdW5kaW5nQm94T2ZSZXBsYWNlZFN0cmluZywgY29uc3QgV1RGOjpTdHJpbmcmIHJlcGxhY2Vk
U3RyaW5nLCBjb25zdCBXVEY6OlN0cmluZyYgcmVwbGFjZW1lbnRTdHJpbmcsIFdlYkNvcmU6OkVk
aXRvciopOworICAgIHZpcnR1YWwgdm9pZCBzaG93Q29ycmVjdGlvblBhbmVsKFdlYkNvcmU6OkNv
cnJlY3Rpb25QYW5lbEluZm86OlBhbmVsVHlwZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBi
b3VuZGluZ0JveE9mUmVwbGFjZWRTdHJpbmcsIGNvbnN0IFdURjo6U3RyaW5nJiByZXBsYWNlZFN0
cmluZywgY29uc3QgV1RGOjpTdHJpbmcmIHJlcGxhY2VtZW50U3RyaW5nLCBjb25zdCBXVEY6OlZl
Y3RvcjxXVEY6OlN0cmluZz4mIGFsdGVybmF0aXZlUmVwbGFjZW1lbnRTdHJpbmdzLCBXZWJDb3Jl
OjpFZGl0b3IqKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlzbWlzc0NvcnJlY3Rpb25QYW5lbChXZWJD
b3JlOjpDb3JyZWN0aW9uV2FzUmVqZWN0ZWRPck5vdCk7CiAgICAgdmlydHVhbCBib29sIGlzU2hv
d2luZ0NvcnJlY3Rpb25QYW5lbCgpOwogI2VuZGlmCkluZGV4OiBXZWJLaXQvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvbWFjL1dlYkNv
cmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbQkocmV2aXNpb24gNzI4MjUpCisrKyBXZWJLaXQv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbQkod29ya2luZyBjb3B5KQpAQCAt
NzcsNiArNzcsMjAgQEAgdXNpbmcgbmFtZXNwYWNlIFdURjsKIAogdXNpbmcgbmFtZXNwYWNlIEhU
TUxOYW1lczsKIAorc3RhdGljIGlubGluZSBOU0NvcnJlY3Rpb25CdWJibGVUeXBlIGNvcnJlY3Rp
b25CdWJibGVUeXBlKENvcnJlY3Rpb25QYW5lbEluZm86OlBhbmVsVHlwZSBwYW5lbFR5cGUpCit7
CisgICAgc3dpdGNoIChwYW5lbFR5cGUpIHsKKyAgICBjYXNlIENvcnJlY3Rpb25QYW5lbEluZm86
OlBhbmVsVHlwZUNvcnJlY3Rpb246CisgICAgICAgIHJldHVybiBOU0NvcnJlY3Rpb25CdWJibGVU
eXBlQ29ycmVjdGlvbjsKKyAgICBjYXNlIENvcnJlY3Rpb25QYW5lbEluZm86OlBhbmVsVHlwZVJl
dmVyc2lvbjoKKyAgICAgICAgcmV0dXJuIE5TQ29ycmVjdGlvbkJ1YmJsZVR5cGVSZXZlcnNpb247
CisgICAgY2FzZSBDb3JyZWN0aW9uUGFuZWxJbmZvOjpQYW5lbFR5cGVTcGVsbGluZ1N1Z2dlc3Rp
b25zOgorICAgICAgICByZXR1cm4gTlNDb3JyZWN0aW9uQnViYmxlVHlwZUd1ZXNzZXM7CisgICAg
fQorICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBOU0NvcnJlY3Rpb25CdWJi
bGVUeXBlQ29ycmVjdGlvbjsKK30KKwogQGludGVyZmFjZSBOU0F0dHJpYnV0ZWRTdHJpbmcgKFdl
Yk5TQXR0cmlidXRlZFN0cmluZ0RldGFpbHMpCiAtIChpZClfaW5pdFdpdGhET01SYW5nZTooRE9N
UmFuZ2UqKXJhbmdlOwogLSAoRE9NRG9jdW1lbnRGcmFnbWVudCopX2RvY3VtZW50RnJvbVJhbmdl
OihOU1JhbmdlKXJhbmdlIGRvY3VtZW50OihET01Eb2N1bWVudCopZG9jdW1lbnQgZG9jdW1lbnRB
dHRyaWJ1dGVzOihOU0RpY3Rpb25hcnkgKilkaWN0IHN1YnJlc291cmNlczooTlNBcnJheSAqKilz
dWJyZXNvdXJjZXM7CkBAIC04NTYsNyArODcwLDcgQEAgdm9pZCBXZWJFZGl0b3JDbGllbnQ6OnVw
ZGF0ZVNwZWxsaW5nVUlXaQogfQogCiAjaWYgIWRlZmluZWQoQlVJTERJTkdfT05fVElHRVIpICYm
ICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NO
T1dfTEVPUEFSRCkKLXZvaWQgV2ViRWRpdG9yQ2xpZW50OjpzaG93Q29ycmVjdGlvblBhbmVsKFdl
YkNvcmU6OkNvcnJlY3Rpb25QYW5lbEluZm86OlBhbmVsVHlwZSBwYW5lbFR5cGUsIGNvbnN0IEZs
b2F0UmVjdCYgYm91bmRpbmdCb3hPZlJlcGxhY2VkU3RyaW5nLCBjb25zdCBTdHJpbmcmIHJlcGxh
Y2VkU3RyaW5nLCBjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50U3RyaW5nLCBFZGl0b3IqIGVkaXRv
cikgewordm9pZCBXZWJFZGl0b3JDbGllbnQ6OnNob3dDb3JyZWN0aW9uUGFuZWwoV2ViQ29yZTo6
Q29ycmVjdGlvblBhbmVsSW5mbzo6UGFuZWxUeXBlIHBhbmVsVHlwZSwgY29uc3QgRmxvYXRSZWN0
JiBib3VuZGluZ0JveE9mUmVwbGFjZWRTdHJpbmcsIGNvbnN0IFN0cmluZyYgcmVwbGFjZWRTdHJp
bmcsIGNvbnN0IFN0cmluZyYgcmVwbGFjZW1lbnRTdHJpbmcsIGNvbnN0IFZlY3RvcjxTdHJpbmc+
JiBhbHRlcm5hdGl2ZVJlcGxhY2VtZW50U3RyaW5ncywgRWRpdG9yKiBlZGl0b3IpIHsKICAgICBk
aXNtaXNzQ29ycmVjdGlvblBhbmVsKFdlYkNvcmU6OkNvcnJlY3Rpb25XYXNOb3RSZWplY3RlZCk7
CiAKICAgICBOU1JlY3QgYm91bmRpbmdCb3hBc05TUmVjdCA9IGJvdW5kaW5nQm94T2ZSZXBsYWNl
ZFN0cmluZzsKQEAgLTg2OCwxNCArODgyLDM0IEBAIHZvaWQgV2ViRWRpdG9yQ2xpZW50OjpzaG93
Q29ycmVjdGlvblBhbmUKICAgICBOU1N0cmluZyAqcmVwbGFjZW1lbnRTdHJpbmdBc05TU3RyaW5n
ID0gcmVwbGFjZW1lbnRTdHJpbmc7CiAKICAgICBtX2NvcnJlY3Rpb25QYW5lbElzU2hvd24gPSBZ
RVM7Ci0gICAgTlNDb3JyZWN0aW9uQnViYmxlVHlwZSBidWJibGVUeXBlID0gcGFuZWxUeXBlID09
IFdlYkNvcmU6OkNvcnJlY3Rpb25QYW5lbEluZm86OlBhbmVsVHlwZUNvcnJlY3Rpb24gPyBOU0Nv
cnJlY3Rpb25CdWJibGVUeXBlQ29ycmVjdGlvbiA6IE5TQ29ycmVjdGlvbkJ1YmJsZVR5cGVSZXZl
cnNpb247Ci0gICAgW1tOU1NwZWxsQ2hlY2tlciBzaGFyZWRTcGVsbENoZWNrZXJdIHNob3dDb3Jy
ZWN0aW9uQnViYmxlT2ZUeXBlOmJ1YmJsZVR5cGUgcHJpbWFyeVN0cmluZzpyZXBsYWNlbWVudFN0
cmluZ0FzTlNTdHJpbmcgYWx0ZXJuYXRpdmVTdHJpbmdzOm5pbCBmb3JTdHJpbmdJblJlY3Q6Ym91
bmRpbmdCb3hBc05TUmVjdCB2aWV3Om1fd2ViVmlldyBjb21wbGV0aW9uSGFuZGxlcjpeKE5TU3Ry
aW5nICphY2NlcHRlZFN0cmluZykgewotICAgICAgICBpZiAoIWFjY2VwdGVkU3RyaW5nICYmIGJ1
YmJsZVR5cGUgPT0gTlNDb3JyZWN0aW9uQnViYmxlVHlwZUNvcnJlY3Rpb24pIHsKLSAgICAgICAg
ICAgIFtbTlNTcGVsbENoZWNrZXIgc2hhcmVkU3BlbGxDaGVja2VyXSByZWNvcmRSZXNwb25zZTpO
U0NvcnJlY3Rpb25SZXNwb25zZVJlamVjdGVkIHRvQ29ycmVjdGlvbjpyZXBsYWNlbWVudFN0cmlu
Z0FzTlNTdHJpbmcgZm9yV29yZDpyZXBsYWNlZFN0cmluZ0FzTlNTdHJpbmcgbGFuZ3VhZ2U6bmls
IGluU3BlbGxEb2N1bWVudFdpdGhUYWc6W21fd2ViVmlldyBzcGVsbENoZWNrZXJEb2N1bWVudFRh
Z11dOwotICAgICAgICAgICAgZWRpdG9yLT5oYW5kbGVSZWplY3RlZENvcnJlY3Rpb24oKTsKLSAg
ICAgICAgfSBlbHNlIGlmIChhY2NlcHRlZFN0cmluZyAmJiBidWJibGVUeXBlID09IE5TQ29ycmVj
dGlvbkJ1YmJsZVR5cGVSZXZlcnNpb24pIHsKLSAgICAgICAgICAgIFtbTlNTcGVsbENoZWNrZXIg
c2hhcmVkU3BlbGxDaGVja2VyXSByZWNvcmRSZXNwb25zZTpOU0NvcnJlY3Rpb25SZXNwb25zZVJl
dmVydGVkIHRvQ29ycmVjdGlvbjpyZXBsYWNlZFN0cmluZ0FzTlNTdHJpbmcgZm9yV29yZDpyZXBs
YWNlbWVudFN0cmluZ0FzTlNTdHJpbmcgbGFuZ3VhZ2U6bmlsIGluU3BlbGxEb2N1bWVudFdpdGhU
YWc6W21fd2ViVmlldyBzcGVsbENoZWNrZXJEb2N1bWVudFRhZ11dOwotICAgICAgICAgICAgZWRp
dG9yLT5oYW5kbGVSZWplY3RlZENvcnJlY3Rpb24oKTsKKyAgICBOU0NvcnJlY3Rpb25CdWJibGVU
eXBlIGJ1YmJsZVR5cGUgPSBjb3JyZWN0aW9uQnViYmxlVHlwZShwYW5lbFR5cGUpOworICAgIE5T
TXV0YWJsZUFycmF5ICphbHRlcm5hdGl2ZVN0cmluZ3MgPSBuaWw7CisgICAgaWYgKCFhbHRlcm5h
dGl2ZVJlcGxhY2VtZW50U3RyaW5ncy5pc0VtcHR5KCkpIHsKKyAgICAgICAgc2l6ZV90IHNpemUg
PSBhbHRlcm5hdGl2ZVJlcGxhY2VtZW50U3RyaW5ncy5zaXplKCk7CisgICAgICAgIGFsdGVybmF0
aXZlU3RyaW5ncyA9IFtOU011dGFibGVBcnJheSBhcnJheVdpdGhDYXBhY2l0eTpzaXplXTsKKyAg
ICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplOyArK2kpCisgICAgICAgICAgICBbYWx0
ZXJuYXRpdmVTdHJpbmdzIGFkZE9iamVjdDooTlNTdHJpbmcqKWFsdGVybmF0aXZlUmVwbGFjZW1l
bnRTdHJpbmdzW2ldXTsKKyAgICB9CisKKyAgICBbW05TU3BlbGxDaGVja2VyIHNoYXJlZFNwZWxs
Q2hlY2tlcl0gc2hvd0NvcnJlY3Rpb25CdWJibGVPZlR5cGU6YnViYmxlVHlwZSBwcmltYXJ5U3Ry
aW5nOnJlcGxhY2VtZW50U3RyaW5nQXNOU1N0cmluZyBhbHRlcm5hdGl2ZVN0cmluZ3M6YWx0ZXJu
YXRpdmVTdHJpbmdzIGZvclN0cmluZ0luUmVjdDpib3VuZGluZ0JveEFzTlNSZWN0IHZpZXc6bV93
ZWJWaWV3IGNvbXBsZXRpb25IYW5kbGVyOl4oTlNTdHJpbmcgKmFjY2VwdGVkU3RyaW5nKSB7Cisg
ICAgICAgIHN3aXRjaCAoYnViYmxlVHlwZSkgeworICAgICAgICBjYXNlIE5TQ29ycmVjdGlvbkJ1
YmJsZVR5cGVDb3JyZWN0aW9uOgorICAgICAgICAgICAgaWYgKCFhY2NlcHRlZFN0cmluZykgewor
ICAgICAgICAgICAgICAgIFtbTlNTcGVsbENoZWNrZXIgc2hhcmVkU3BlbGxDaGVja2VyXSByZWNv
cmRSZXNwb25zZTpOU0NvcnJlY3Rpb25SZXNwb25zZVJlamVjdGVkIHRvQ29ycmVjdGlvbjpyZXBs
YWNlbWVudFN0cmluZ0FzTlNTdHJpbmcgZm9yV29yZDpyZXBsYWNlZFN0cmluZ0FzTlNTdHJpbmcg
bGFuZ3VhZ2U6bmlsIGluU3BlbGxEb2N1bWVudFdpdGhUYWc6W21fd2ViVmlldyBzcGVsbENoZWNr
ZXJEb2N1bWVudFRhZ11dOworICAgICAgICAgICAgICAgIGVkaXRvci0+aGFuZGxlQ29ycmVjdGlv
blBhbmVsUmVzdWx0KFN0cmluZygpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIE5TQ29ycmVjdGlvbkJ1YmJsZVR5cGVSZXZlcnNpb246CisgICAgICAg
ICAgICBpZiAoYWNjZXB0ZWRTdHJpbmcpIHsKKyAgICAgICAgICAgICAgICBbW05TU3BlbGxDaGVj
a2VyIHNoYXJlZFNwZWxsQ2hlY2tlcl0gcmVjb3JkUmVzcG9uc2U6TlNDb3JyZWN0aW9uUmVzcG9u
c2VSZXZlcnRlZCB0b0NvcnJlY3Rpb246cmVwbGFjZWRTdHJpbmdBc05TU3RyaW5nIGZvcldvcmQ6
cmVwbGFjZW1lbnRTdHJpbmdBc05TU3RyaW5nIGxhbmd1YWdlOm5pbCBpblNwZWxsRG9jdW1lbnRX
aXRoVGFnOlttX3dlYlZpZXcgc3BlbGxDaGVja2VyRG9jdW1lbnRUYWddXTsKKyAgICAgICAgICAg
ICAgICBlZGl0b3ItPmhhbmRsZUNvcnJlY3Rpb25QYW5lbFJlc3VsdChTdHJpbmcoKSk7CisgICAg
ICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBOU0NvcnJlY3Rpb25C
dWJibGVUeXBlR3Vlc3NlczoKKyAgICAgICAgICAgIGlmIChhY2NlcHRlZFN0cmluZykKKyAgICAg
ICAgICAgICAgICBbW05TU3BlbGxDaGVja2VyIHNoYXJlZFNwZWxsQ2hlY2tlcl0gcmVjb3JkUmVz
cG9uc2U6TlNDb3JyZWN0aW9uUmVzcG9uc2VBY2NlcHRlZCB0b0NvcnJlY3Rpb246YWNjZXB0ZWRT
dHJpbmcgZm9yV29yZDpyZXBsYWNlZFN0cmluZ0FzTlNTdHJpbmcgbGFuZ3VhZ2U6bmlsIGluU3Bl
bGxEb2N1bWVudFdpdGhUYWc6W21fd2ViVmlldyBzcGVsbENoZWNrZXJEb2N1bWVudFRhZ11dOwor
ICAgICAgICAgICAgZWRpdG9yLT5oYW5kbGVDb3JyZWN0aW9uUGFuZWxSZXN1bHQoU3RyaW5nKGFj
Y2VwdGVkU3RyaW5nKSk7CisgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgIH1dOwog
fQpAQCAtOTE2LDExICs5NTAsMjAgQEAgYm9vbCBXZWJFZGl0b3JDbGllbnQ6OnNwZWxsaW5nVUlJ
c1Nob3dpbgogICAgIHJldHVybiBbW1tOU1NwZWxsQ2hlY2tlciBzaGFyZWRTcGVsbENoZWNrZXJd
IHNwZWxsaW5nUGFuZWxdIGlzVmlzaWJsZV07CiB9CiAKLXZvaWQgV2ViRWRpdG9yQ2xpZW50Ojpn
ZXRHdWVzc2VzRm9yV29yZChjb25zdCBTdHJpbmcmIHdvcmQsIFdURjo6VmVjdG9yPFN0cmluZz4m
IGd1ZXNzZXMpCi17Ci0gICAgTlNBcnJheSogc3RyaW5nc0FycmF5ID0gW1tOU1NwZWxsQ2hlY2tl
ciBzaGFyZWRTcGVsbENoZWNrZXJdIGd1ZXNzZXNGb3JXb3JkOndvcmRdOwotICAgIHVuc2lnbmVk
IGNvdW50ID0gW3N0cmluZ3NBcnJheSBjb3VudF07Cit2b2lkIFdlYkVkaXRvckNsaWVudDo6Z2V0
R3Vlc3Nlc0ZvcldvcmQoY29uc3QgU3RyaW5nJiB3b3JkLCBjb25zdCBTdHJpbmcmIGNvbnRleHQs
IFZlY3RvcjxTdHJpbmc+JiBndWVzc2VzKSB7CiAgICAgZ3Vlc3Nlcy5jbGVhcigpOworCisgICAg
TlNTdHJpbmcqIGxhbmd1YWdlID0gbmlsOworICAgIE5TT3J0aG9ncmFwaHkqIG9ydGhvZ3JhcGh5
ID0gbmlsOworICAgIE5TU3BlbGxDaGVja2VyICpjaGVja2VyID0gW05TU3BlbGxDaGVja2VyIHNo
YXJlZFNwZWxsQ2hlY2tlcl07CisgICAgaWYgKGNvbnRleHQubGVuZ3RoKCkpIHsKKyAgICAgICAg
W2NoZWNrZXIgY2hlY2tTdHJpbmc6Y29udGV4dCByYW5nZTpOU01ha2VSYW5nZSgwLCBjb250ZXh0
Lmxlbmd0aCgpKSB0eXBlczpOU1RleHRDaGVja2luZ1R5cGVPcnRob2dyYXBoeSBvcHRpb25zOjAg
aW5TcGVsbERvY3VtZW50V2l0aFRhZzpzcGVsbENoZWNrZXJEb2N1bWVudFRhZygpIG9ydGhvZ3Jh
cGh5OiZvcnRob2dyYXBoeSB3b3JkQ291bnQ6MF07CisgICAgICAgIGxhbmd1YWdlID0gW2NoZWNr
ZXIgbGFuZ3VhZ2VGb3JXb3JkUmFuZ2U6TlNNYWtlUmFuZ2UoMCwgY29udGV4dC5sZW5ndGgoKSkg
aW5TdHJpbmc6Y29udGV4dCBvcnRob2dyYXBoeTpvcnRob2dyYXBoeV07CisgICAgfQorCisgICAg
TlNBcnJheSogc3RyaW5nc0FycmF5ID0gW2NoZWNrZXIgZ3Vlc3Nlc0ZvcldvcmRSYW5nZTpOU01h
a2VSYW5nZSgwLCB3b3JkLmxlbmd0aCgpKSBpblN0cmluZzp3b3JkIGxhbmd1YWdlOmxhbmd1YWdl
IGluU3BlbGxEb2N1bWVudFdpdGhUYWc6c3BlbGxDaGVja2VyRG9jdW1lbnRUYWcoKV07CisgICAg
dW5zaWduZWQgY291bnQgPSBbc3RyaW5nc0FycmF5IGNvdW50XTsKKwogICAgIGlmIChjb3VudCA+
IDApIHsKICAgICAgICAgTlNFbnVtZXJhdG9yKiBlbnVtZXJhdG9yID0gW3N0cmluZ3NBcnJheSBv
YmplY3RFbnVtZXJhdG9yXTsKICAgICAgICAgTlNTdHJpbmcqIHN0cmluZzsKSW5kZXg6IFdlYktp
dC9xdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3F0L0NoYW5nZUxvZwkocmV2aXNp
b24gNzI4MjUpCisrKyBXZWJLaXQvcXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMTcgQEAKKzIwMTAtMTEtMjkgIEppYSBQdSAgPGpwdUBhcHBsZS5jb20+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3VwcG9ydCBtdWx0aXBsZSBj
b3JyZWN0aW9uIGNhbmRpZGF0ZXMgcGFuZWwgZm9yIG1pc3NwZWxsZWQgd29yZCBvbiBNYWMgT1Mg
WC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUwMTM3
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NTY4MDU5PgorCisgICAgICAgIEFkb3B0ZWQgbmV3
IGZ1bmN0aW9uIHNpZ25hdHVyZSBkZWZpbmVkIGluIGJhc2UgY2xhc3MuCisKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFZGl0
b3JDbGllbnRRdDo6Z2V0R3Vlc3Nlc0ZvcldvcmQpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L0VkaXRvckNsaWVudFF0Lmg6CisKIDIwMTAtMTEtMjUgIE5vcmJlcnQgTGVzZXIgIDxub3JiZXJ0
Lmxlc2VyQG5va2lhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBMYXN6bG8gR29tYm9zLgpJ
bmRleDogV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFF0LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50UXQuY3BwCShyZXZp
c2lvbiA3MjgyNSkKKysrIFdlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRRdC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTU1OCw3ICs1NTgsNyBAQCBib29sIEVkaXRvckNsaWVudFF0
OjpzcGVsbGluZ1VJSXNTaG93aW5nCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi12b2lkIEVkaXRv
ckNsaWVudFF0OjpnZXRHdWVzc2VzRm9yV29yZChjb25zdCBTdHJpbmcmLCBWZWN0b3I8U3RyaW5n
PiYpCit2b2lkIEVkaXRvckNsaWVudFF0OjpnZXRHdWVzc2VzRm9yV29yZChjb25zdCBTdHJpbmcm
IHdvcmQsIGNvbnN0IFN0cmluZyYgY29udGV4dCwgVmVjdG9yPFN0cmluZz4mIGd1ZXNzZXMpCiB7
CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KSW5kZXg6IFdlYktpdC9xdC9XZWJDb3JlU3VwcG9y
dC9FZGl0b3JDbGllbnRRdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9xdC9XZWJDb3JlU3VwcG9y
dC9FZGl0b3JDbGllbnRRdC5oCShyZXZpc2lvbiA3MjgyNSkKKysrIFdlYktpdC9xdC9XZWJDb3Jl
U3VwcG9ydC9FZGl0b3JDbGllbnRRdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDQsNyArMTA0LDcg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVTcGVsbGluZ1VJV2l0aE1pc3NwZWxs
ZWRXb3JkKGNvbnN0IFN0cmluZyYpOwogICAgIHZpcnR1YWwgdm9pZCBzaG93U3BlbGxpbmdVSShi
b29sIHNob3cpOwogICAgIHZpcnR1YWwgYm9vbCBzcGVsbGluZ1VJSXNTaG93aW5nKCk7Ci0gICAg
dmlydHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYsIFZlY3RvcjxTdHJp
bmc+JiBndWVzc2VzKTsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3Qg
U3RyaW5nJiB3b3JkLCBjb25zdCBTdHJpbmcmIGNvbnRleHQsIFZlY3RvcjxTdHJpbmc+JiBndWVz
c2VzKTsKICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNldElucHV0TWV0aG9kU3RhdGUoKTsKICAgICB2
aXJ0dWFsIHZvaWQgc2V0SW5wdXRNZXRob2RTdGF0ZShib29sIGVuYWJsZWQpOwogCkluZGV4OiBX
ZWJLaXQvd2luL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvd2luL0NoYW5nZUxvZwko
cmV2aXNpb24gNzI4MjUpCisrKyBXZWJLaXQvd2luL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDE3IEBACisyMDEwLTExLTI5ICBKaWEgUHUgIDxqcHVAYXBwbGUuY29tPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN1cHBvcnQgbXVs
dGlwbGUgY29ycmVjdGlvbiBjYW5kaWRhdGVzIHBhbmVsIGZvciBtaXNzcGVsbGVkIHdvcmQgb24g
TWFjIE9TIFguCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD01MDEzNworICAgICAgICA8cmRhcjovL3Byb2JsZW0vODU2ODA1OT4KKworICAgICAgICBBZG9w
dGVkIG5ldyBmdW5jdGlvbiBzaWduYXR1cmUgZGVmaW5lZCBpbiBiYXNlIGNsYXNzLgorCisgICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYkVk
aXRvckNsaWVudDo6Z2V0R3Vlc3Nlc0ZvcldvcmQpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L1dlYkVkaXRvckNsaWVudC5oOgorCiAyMDEwLTExLTIyICBBZGFtIFJvYmVuICA8YXJvYmVuQGFw
cGxlLmNvbT4KIAogICAgICAgICBVc2UgcGF0aHMgcmVsYXRpdmUgdG8gJFdlYktpdFZTUHJvcHNS
ZWRpcmVjdGlvbkRpciB0byBhY2Nlc3Mgc2hhcmVkIC52c3Byb3BzIGZpbGVzCkluZGV4OiBXZWJL
aXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCShyZXZpc2lvbiA3
MjgyNSkKKysrIFdlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNzU4LDcgKzc1OCw3IEBAIGJvb2wgV2ViRWRpdG9yQ2xpZW50Ojpz
cGVsbGluZ1VJSXNTaG93aW4KICAgICByZXR1cm4gISFzaG93aW5nOwogfQogCi12b2lkIFdlYkVk
aXRvckNsaWVudDo6Z2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgU3RyaW5nJiB3b3JkLCBWZWN0b3I8
U3RyaW5nPiYgZ3Vlc3NlcykKK3ZvaWQgV2ViRWRpdG9yQ2xpZW50OjpnZXRHdWVzc2VzRm9yV29y
ZChjb25zdCBTdHJpbmcmIHdvcmQsIGNvbnN0IFN0cmluZyYgY29udGV4dCwgVmVjdG9yPFN0cmlu
Zz4mIGd1ZXNzZXMpCiB7CiAgICAgZ3Vlc3Nlcy5jbGVhcigpOwogCkluZGV4OiBXZWJLaXQvd2lu
L1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC93
aW4vV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgJKHJldmlzaW9uIDcyODI1KQorKysg
V2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAkod29ya2luZyBjb3B5
KQpAQCAtMTA3LDcgKzEwNyw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlU3Bl
bGxpbmdVSVdpdGhNaXNzcGVsbGVkV29yZChjb25zdCBXVEY6OlN0cmluZyYpOwogICAgIHZpcnR1
YWwgdm9pZCBzaG93U3BlbGxpbmdVSShib29sIHNob3cpOwogICAgIHZpcnR1YWwgYm9vbCBzcGVs
bGluZ1VJSXNTaG93aW5nKCk7Ci0gICAgdmlydHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNv
bnN0IFdURjo6U3RyaW5nJiwgVmVjdG9yPFdURjo6U3RyaW5nPiYgZ3Vlc3Nlcyk7CisgICAgdmly
dHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFdURjo6U3RyaW5nJiB3b3JkLCBjb25z
dCBXVEY6OlN0cmluZyYgY29udGV4dCwgV1RGOjpWZWN0b3I8V1RGOjpTdHJpbmc+JiBndWVzc2Vz
KTsKIAogICAgIHZpcnR1YWwgdm9pZCB3aWxsU2V0SW5wdXRNZXRob2RTdGF0ZSgpOwogICAgIHZp
cnR1YWwgdm9pZCBzZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wpOwpJbmRleDogV2ViS2l0L3dpbmNl
L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvd2luY2UvQ2hhbmdlTG9nCShyZXZpc2lv
biA3MjgyNSkKKysrIFdlYktpdC93aW5jZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEs
MyArMSwxNyBAQAorMjAxMC0xMS0yOSAgSmlhIFB1ICA8anB1QGFwcGxlLmNvbT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdXBwb3J0IG11bHRpcGxl
IGNvcnJlY3Rpb24gY2FuZGlkYXRlcyBwYW5lbCBmb3IgbWlzc3BlbGxlZCB3b3JkIG9uIE1hYyBP
UyBYLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTAx
MzcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg1NjgwNTk+CisKKyAgICAgICAgQWRvcHRlZCBu
ZXcgZnVuY3Rpb24gc2lnbmF0dXJlIGRlZmluZWQgaW4gYmFzZSBjbGFzcy4KKworICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFdpbkNFLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
RWRpdG9yQ2xpZW50V2luQ0U6OmdldEd1ZXNzZXNGb3JXb3JkKToKKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9FZGl0b3JDbGllbnRXaW5DRS5oOgorCiAyMDEwLTExLTEzICBQYXRyaWNrIEdhbnN0
ZXJlciAgPHBhcm9nYUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIGJ1aWxkIGZp
eCBhZnRlciByNzE1NDEuCkluZGV4OiBXZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvRWRpdG9y
Q2xpZW50V2luQ0UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9y
dC9FZGl0b3JDbGllbnRXaW5DRS5jcHAJKHJldmlzaW9uIDcyODI1KQorKysgV2ViS2l0L3dpbmNl
L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFdpbkNFLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NDg3LDcgKzQ4Nyw3IEBAIGJvb2wgRWRpdG9yQ2xpZW50V2luQ0U6OnNwZWxsaW5nVUlJc1Nob3cK
ICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgRWRpdG9yQ2xpZW50V2luQ0U6OmdldEd1ZXNz
ZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYgd29yZCwgV1RGOjpWZWN0b3I8U3RyaW5nPiYgZ3Vlc3Nl
cykKK3ZvaWQgRWRpdG9yQ2xpZW50V2luQ0U6OmdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmlu
ZyYgd29yZCwgY29uc3QgU3RyaW5nJiBjb250ZXh0LCBXVEY6OlZlY3RvcjxTdHJpbmc+JiBndWVz
c2VzKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CkluZGV4OiBXZWJLaXQvd2luY2UvV2Vi
Q29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50V2luQ0UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvd2lu
Y2UvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50V2luQ0UuaAkocmV2aXNpb24gNzI4MjUpCisr
KyBXZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50V2luQ0UuaAkod29ya2lu
ZyBjb3B5KQpAQCAtOTcsNyArOTcsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0
ZVNwZWxsaW5nVUlXaXRoTWlzc3BlbGxlZFdvcmQoY29uc3QgV1RGOjpTdHJpbmcmKTsKICAgICB2
aXJ0dWFsIHZvaWQgc2hvd1NwZWxsaW5nVUkoYm9vbCk7CiAgICAgdmlydHVhbCBib29sIHNwZWxs
aW5nVUlJc1Nob3dpbmcoKTsKLSAgICB2aXJ0dWFsIHZvaWQgZ2V0R3Vlc3Nlc0ZvcldvcmQoY29u
c3QgV1RGOjpTdHJpbmcmLCBXVEY6OlZlY3RvcjxXVEY6OlN0cmluZz4mKTsKKyAgICB2aXJ0dWFs
IHZvaWQgZ2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgV1RGOjpTdHJpbmcmIHdvcmQsIGNvbnN0IFdU
Rjo6U3RyaW5nJiBjb250ZXh0LCBXVEY6OlZlY3RvcjxXVEY6OlN0cmluZz4mIGd1ZXNzZXMpOwog
ICAgIHZpcnR1YWwgdm9pZCB3aWxsU2V0SW5wdXRNZXRob2RTdGF0ZSgpOwogICAgIHZpcnR1YWwg
dm9pZCBzZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wpOwogCkluZGV4OiBXZWJLaXQvd3gvQ2hhbmdl
TG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYktpdC93eC9DaGFuZ2VMb2cJKHJldmlzaW9uIDcyODI1KQor
KysgV2ViS2l0L3d4L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBACisy
MDEwLTExLTI5ICBKaWEgUHUgIDxqcHVAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN1cHBvcnQgbXVsdGlwbGUgY29ycmVjdGlvbiBj
YW5kaWRhdGVzIHBhbmVsIGZvciBtaXNzcGVsbGVkIHdvcmQgb24gTWFjIE9TIFguCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MDEzNworICAgICAgICA8
cmRhcjovL3Byb2JsZW0vODU2ODA1OT4KKworICAgICAgICBBZG9wdGVkIG5ldyBmdW5jdGlvbiBz
aWduYXR1cmUgZGVmaW5lZCBpbiBiYXNlIGNsYXNzLgorCisgICAgICAgICogV2ViS2l0U3VwcG9y
dC9FZGl0b3JDbGllbnRXeC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3JDbGllbnRXeDo6
Z2V0R3Vlc3Nlc0ZvcldvcmQpOgorICAgICAgICAqIFdlYktpdFN1cHBvcnQvRWRpdG9yQ2xpZW50
V3guaDoKKwogMjAxMC0xMS0yNCAgUGF0cmljayBHYW5zdGVyZXIgIDxwYXJvZ2FAd2Via2l0Lm9y
Zz4KIAogICAgICAgICBSZXZpZXdlZCBieSBDc2FiYSBPc3p0cm9nb27hYy4KSW5kZXg6IFdlYktp
dC93eC9XZWJLaXRTdXBwb3J0L0VkaXRvckNsaWVudFd4LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJL
aXQvd3gvV2ViS2l0U3VwcG9ydC9FZGl0b3JDbGllbnRXeC5jcHAJKHJldmlzaW9uIDcyODI1KQor
KysgV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvRWRpdG9yQ2xpZW50V3guY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC01NDIsOSArNTQyLDkgQEAgYm9vbCBFZGl0b3JDbGllbnRXeDo6c3BlbGxpbmdVSUlz
U2hvd2luZwogICAgIHJldHVybiBmYWxzZTsKIH0KIAotdm9pZCBFZGl0b3JDbGllbnRXeDo6Z2V0
R3Vlc3Nlc0ZvcldvcmQoY29uc3QgU3RyaW5nJiwgVmVjdG9yPFN0cmluZz4mIGd1ZXNzZXMpIAot
eyAKLSAgICBub3RJbXBsZW1lbnRlZCgpOyAKK3ZvaWQgRWRpdG9yQ2xpZW50V3g6OmdldEd1ZXNz
ZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYgd29yZCwgY29uc3QgU3RyaW5nJiBjb250ZXh0LCBWZWN0
b3I8U3RyaW5nPiYgZ3Vlc3NlcykKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCiBTdHJp
bmcgRWRpdG9yQ2xpZW50V3g6OmdldEF1dG9Db3JyZWN0U3VnZ2VzdGlvbkZvck1pc3NwZWxsZWRX
b3JkKGNvbnN0IFdURjo6U3RyaW5nJikKSW5kZXg6IFdlYktpdC93eC9XZWJLaXRTdXBwb3J0L0Vk
aXRvckNsaWVudFd4LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvRWRp
dG9yQ2xpZW50V3guaAkocmV2aXNpb24gNzI4MjUpCisrKyBXZWJLaXQvd3gvV2ViS2l0U3VwcG9y
dC9FZGl0b3JDbGllbnRXeC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDcsOSArMTA3LDkgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVTcGVsbGluZ1VJV2l0aE1pc3NwZWxsZWRXb3Jk
KGNvbnN0IFN0cmluZyYpOwogICAgIHZpcnR1YWwgdm9pZCBzaG93U3BlbGxpbmdVSShib29sIHNo
b3cpOwogICAgIHZpcnR1YWwgYm9vbCBzcGVsbGluZ1VJSXNTaG93aW5nKCk7Ci0gICAgdmlydHVh
bCB2b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYsIFZlY3RvcjxTdHJpbmc+JiBn
dWVzc2VzKTsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgU3RyaW5n
JiB3b3JkLCBjb25zdCBTdHJpbmcmIGNvbnRleHQsIFZlY3RvcjxTdHJpbmc+JiBndWVzc2VzKTsK
ICAgICB2aXJ0dWFsIFN0cmluZyBnZXRBdXRvQ29ycmVjdFN1Z2dlc3Rpb25Gb3JNaXNzcGVsbGVk
V29yZChjb25zdCBXVEY6OlN0cmluZyYpOwotICAgIAorCiAgICAgdmlydHVhbCB2b2lkIHdpbGxT
ZXRJbnB1dE1ldGhvZFN0YXRlKCk7CiAgICAgdmlydHVhbCB2b2lkIHNldElucHV0TWV0aG9kU3Rh
dGUoYm9vbCBlbmFibGVkKTsKIApJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gNzI4MjUpCisrKyBMYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxOCBAQAorMjAxMC0xMS0y
OSAgSmlhIFB1ICA8anB1QGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBTdXBwb3J0IG11bHRpcGxlIGNvcnJlY3Rpb24gY2FuZGlkYXRl
cyBwYW5lbCBmb3IgbWlzc3BlbGxlZCB3b3JkIG9uIE1hYyBPUyBYLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTAxMzcKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzg1NjgwNTk+CisKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtbGVvcGFyZC9Ta2lwcGVk
OgorICAgICAgICAqIHBsYXRmb3JtL21hYy1zbm93bGVvcGFyZC9Ta2lwcGVkOgorICAgICAgICAq
IHBsYXRmb3JtL21hYy10aWdlci9Ta2lwcGVkOgorICAgICAgICAqIHBsYXRmb3JtL21hYy13azIv
U2tpcHBlZDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZWRpdGluZy9zcGVsbGluZy9kZWxldGUt
YXV0b2NvcnJlY3RlZC13b3JkLTEtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9tYWMvZWRpdGluZy9zcGVsbGluZy9kZWxldGUtYXV0b2NvcnJlY3RlZC13b3JkLTEuaHRt
bDogQWRkZWQuCisKIDIwMTAtMTEtMjkgIE9qYW4gVmFmYWkgIDxvamFuQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBVbnJldmlld2VkIGJ1aWxkIGZpeC4KSW5kZXg6IExheW91dFRlc3RzL3BsYXRm
b3JtL21hYy1sZW9wYXJkL1NraXBwZWQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjLWxlb3BhcmQvU2tpcHBlZAkocmV2aXNpb24gNzI4MjUpCisrKyBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMtbGVvcGFyZC9Ta2lwcGVkCSh3b3JraW5nIGNvcHkpCkBAIC0xMDYsNiArMTA2
LDcgQEAgcGxhdGZvcm0vbWFjL2VkaXRpbmcvc3BlbGxpbmcvYXV0b2NvcnJlYwogcGxhdGZvcm0v
bWFjL2VkaXRpbmcvc3BlbGxpbmcvYXV0b2NvcnJlY3Rpb24tcmVtb3ZpbmctdW5kZXJsaW5lLmh0
bWwKIHBsYXRmb3JtL21hYy9lZGl0aW5nL3NwZWxsaW5nL2F1dG9jb3JyZWN0aW9uLXNpbXBsZS5o
dG1sCiBwbGF0Zm9ybS9tYWMvZWRpdGluZy9zcGVsbGluZy9jbGljay1hdXRvY29ycmVjdGVkLXdv
cmQuaHRtbAorcGxhdGZvcm0vbWFjL2VkaXRpbmcvc3BlbGxpbmcvZGVsZXRlLWF1dG9jb3JyZWN0
ZWQtd29yZC0xLmh0bWwKIHBsYXRmb3JtL21hYy9lZGl0aW5nL3NwZWxsaW5nL2RlbGV0ZS1pbnRv
LWF1dG9jb3JyZWN0ZWQtd29yZC5odG1sCiBwbGF0Zm9ybS9tYWMvZWRpdGluZy9zcGVsbGluZy9k
ZWxldGUtaW50by1taXNzcGVsbGVkLXdvcmQuaHRtbAogcGxhdGZvcm0vbWFjL2VkaXRpbmcvc3Bl
bGxpbmcvZWRpdGluZy1tdWx0aXBsZS13b3Jkcy13aXRoLW1hcmtlcnMuaHRtbApJbmRleDogTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXNub3dsZW9wYXJkL1NraXBwZWQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXNub3dsZW9wYXJkL1NraXBwZWQJKHJldmlzaW9uIDcy
ODI1KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXNub3dsZW9wYXJkL1NraXBwZWQJKHdv
cmtpbmcgY29weSkKQEAgLTEzMSw2ICsxMzEsNyBAQCBwbGF0Zm9ybS9tYWMvZWRpdGluZy9zcGVs
bGluZy9hdXRvY29ycmVjCiBwbGF0Zm9ybS9tYWMvZWRpdGluZy9zcGVsbGluZy9hdXRvY29ycmVj
dGlvbi1yZW1vdmluZy11bmRlcmxpbmUuaHRtbAogcGxhdGZvcm0vbWFjL2VkaXRpbmcvc3BlbGxp
bmcvYXV0b2NvcnJlY3Rpb24tc2ltcGxlLmh0bWwKIHBsYXRmb3JtL21hYy9lZGl0aW5nL3NwZWxs
aW5nL2NsaWNrLWF1dG9jb3JyZWN0ZWQtd29yZC5odG1sCitwbGF0Zm9ybS9tYWMvZWRpdGluZy9z
cGVsbGluZy9kZWxldGUtYXV0b2NvcnJlY3RlZC13b3JkLTEuaHRtbAogcGxhdGZvcm0vbWFjL2Vk
aXRpbmcvc3BlbGxpbmcvZGVsZXRlLWludG8tYXV0b2NvcnJlY3RlZC13b3JkLmh0bWwKIHBsYXRm
b3JtL21hYy9lZGl0aW5nL3NwZWxsaW5nL2RlbGV0ZS1pbnRvLW1pc3NwZWxsZWQtd29yZC5odG1s
CiBwbGF0Zm9ybS9tYWMvZWRpdGluZy9zcGVsbGluZy9lZGl0aW5nLW11bHRpcGxlLXdvcmRzLXdp
dGgtbWFya2Vycy5odG1sCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtdGlnZXIvU2tp
cHBlZAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtdGlnZXIvU2tpcHBl
ZAkocmV2aXNpb24gNzI4MjUpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtdGlnZXIvU2tp
cHBlZAkod29ya2luZyBjb3B5KQpAQCAtMjExLDYgKzIxMSw3IEBAIHBsYXRmb3JtL21hYy9lZGl0
aW5nL3NwZWxsaW5nL2F1dG9jb3JyZWMKIHBsYXRmb3JtL21hYy9lZGl0aW5nL3NwZWxsaW5nL2F1
dG9jb3JyZWN0aW9uLXJlbW92aW5nLXVuZGVybGluZS5odG1sCiBwbGF0Zm9ybS9tYWMvZWRpdGlu
Zy9zcGVsbGluZy9hdXRvY29ycmVjdGlvbi1zaW1wbGUuaHRtbAogcGxhdGZvcm0vbWFjL2VkaXRp
bmcvc3BlbGxpbmcvY2xpY2stYXV0b2NvcnJlY3RlZC13b3JkLmh0bWwKK3BsYXRmb3JtL21hYy9l
ZGl0aW5nL3NwZWxsaW5nL2RlbGV0ZS1hdXRvY29ycmVjdGVkLXdvcmQtMS5odG1sCiBwbGF0Zm9y
bS9tYWMvZWRpdGluZy9zcGVsbGluZy9kZWxldGUtaW50by1hdXRvY29ycmVjdGVkLXdvcmQuaHRt
bAogcGxhdGZvcm0vbWFjL2VkaXRpbmcvc3BlbGxpbmcvZGVsZXRlLWludG8tbWlzc3BlbGxlZC13
b3JkLmh0bWwKIHBsYXRmb3JtL21hYy9lZGl0aW5nL3NwZWxsaW5nL2VkaXRpbmctbXVsdGlwbGUt
d29yZHMtd2l0aC1tYXJrZXJzLmh0bWwKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13
azIvU2tpcHBlZAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Nr
aXBwZWQJKHJldmlzaW9uIDcyODI1KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9T
a2lwcGVkCSh3b3JraW5nIGNvcHkpCkBAIC00OTQsNiArNDk0LDcgQEAgcGxhdGZvcm0vbWFjL2Vk
aXRpbmcvc3BlbGxpbmcvYXV0b2NvcnJlYwogcGxhdGZvcm0vbWFjL2VkaXRpbmcvc3BlbGxpbmcv
YXV0b2NvcnJlY3Rpb24tcmVtb3ZpbmctdW5kZXJsaW5lLmh0bWwKIHBsYXRmb3JtL21hYy9lZGl0
aW5nL3NwZWxsaW5nL2F1dG9jb3JyZWN0aW9uLXNpbXBsZS5odG1sCiBwbGF0Zm9ybS9tYWMvZWRp
dGluZy9zcGVsbGluZy9jbGljay1hdXRvY29ycmVjdGVkLXdvcmQuaHRtbAorcGxhdGZvcm0vbWFj
L2VkaXRpbmcvc3BlbGxpbmcvZGVsZXRlLWF1dG9jb3JyZWN0ZWQtd29yZC0xLmh0bWwKIHBsYXRm
b3JtL21hYy9lZGl0aW5nL3NwZWxsaW5nL2RlbGV0ZS1pbnRvLWF1dG9jb3JyZWN0ZWQtd29yZC5o
dG1sCiBwbGF0Zm9ybS9tYWMvZWRpdGluZy9zcGVsbGluZy9kZWxldGUtaW50by1taXNzcGVsbGVk
LXdvcmQuaHRtbAogcGxhdGZvcm0vbWFjL2VkaXRpbmcvc3BlbGxpbmcvZWRpdGluZy1tdWx0aXBs
ZS13b3Jkcy13aXRoLW1hcmtlcnMuaHRtbApJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L2VkaXRpbmcvc3BlbGxpbmcvZGVsZXRlLWF1dG9jb3JyZWN0ZWQtd29yZC0xLWV4cGVjdGVkLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZWRpdGluZy9zcGVsbGlu
Zy9kZWxldGUtYXV0b2NvcnJlY3RlZC13b3JkLTEtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQor
KysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2VkaXRpbmcvc3BlbGxpbmcvZGVsZXRlLWF1dG9j
b3JyZWN0ZWQtd29yZC0xLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw5NyBA
QAorRURJVElORyBERUxFR0FURTogc2hvdWxkQmVnaW5FZGl0aW5nSW5ET01SYW5nZTpyYW5nZSBm
cm9tIDAgb2YgRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gMyBvZiBESVYgPiBCT0RZ
ID4gSFRNTCA+ICNkb2N1bWVudAorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZEJlZ2luRWRp
dGluZzpXZWJWaWV3RGlkQmVnaW5FZGl0aW5nTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRF
OiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3Rp
ZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2U6
cmFuZ2UgZnJvbSAwIG9mIERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDAgb2YgRElW
ID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG9ET01SYW5nZTpyYW5nZSBmcm9tIDEgb2YgI3Rl
eHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byAxIG9mICN0ZXh0ID4gRElWID4g
Qk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgYWZmaW5pdHk6TlNTZWxlY3Rpb25BZmZpbml0eURvd25z
dHJlYW0gc3RpbGxTZWxlY3Rpbmc6RkFMU0UKK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRD
aGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgorRURJ
VElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZTpXZWJWaWV3RGlkQ2hhbmdlTm90aWZpY2F0
aW9uCitFRElUSU5HIERFTEVHQVRFOiBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlOnJhbmdl
IGZyb20gMSBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDEgb2Yg
I3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0b0RPTVJhbmdlOnJhbmdlIGZy
b20gMiBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDIgb2YgI3Rl
eHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCBhZmZpbml0eTpOU1NlbGVjdGlvbkFm
ZmluaXR5RG93bnN0cmVhbSBzdGlsbFNlbGVjdGluZzpGQUxTRQorRURJVElORyBERUxFR0FURTog
d2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZp
Y2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlOldlYlZpZXdEaWRDaGFu
Z2VOb3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHNob3VsZENoYW5nZVNlbGVjdGVkRE9N
UmFuZ2U6cmFuZ2UgZnJvbSAyIG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1l
bnQgdG8gMiBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvRE9NUmFu
Z2U6cmFuZ2UgZnJvbSAzIG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQg
dG8gMyBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IGFmZmluaXR5Ok5T
U2VsZWN0aW9uQWZmaW5pdHlEb3duc3RyZWFtIHN0aWxsU2VsZWN0aW5nOkZBTFNFCitFRElUSU5H
IERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxl
Y3Rpb25Ob3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2U6V2Vi
Vmlld0RpZENoYW5nZU5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogc2hvdWxkQ2hhbmdl
U2VsZWN0ZWRET01SYW5nZTpyYW5nZSBmcm9tIDMgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRN
TCA+ICNkb2N1bWVudCB0byAzIG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1l
bnQgdG9ET01SYW5nZTpyYW5nZSBmcm9tIDQgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+
ICNkb2N1bWVudCB0byA0IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQg
YWZmaW5pdHk6TlNTZWxlY3Rpb25BZmZpbml0eURvd25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6RkFM
U0UKK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0Rp
ZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogd2ViVmlld0Rp
ZENoYW5nZTpXZWJWaWV3RGlkQ2hhbmdlTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiBz
aG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlOnJhbmdlIGZyb20gNCBvZiAjdGV4dCA+IERJViA+
IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDQgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRN
TCA+ICNkb2N1bWVudCB0b0RPTVJhbmdlOnJhbmdlIGZyb20gNSBvZiAjdGV4dCA+IERJViA+IEJP
RFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDUgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+
ICNkb2N1bWVudCBhZmZpbml0eTpOU1NlbGVjdGlvbkFmZmluaXR5RG93bnN0cmVhbSBzdGlsbFNl
bGVjdGluZzpGQUxTRQorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlv
bjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRF
OiB3ZWJWaWV3RGlkQ2hhbmdlOldlYlZpZXdEaWRDaGFuZ2VOb3RpZmljYXRpb24KK0VESVRJTkcg
REVMRUdBVEU6IHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2U6cmFuZ2UgZnJvbSA1IG9mICN0
ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gNSBvZiAjdGV4dCA+IERJViA+
IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSA2IG9mICN0ZXh0
ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gNiBvZiAjdGV4dCA+IERJViA+IEJP
RFkgPiBIVE1MID4gI2RvY3VtZW50IGFmZmluaXR5Ok5TU2VsZWN0aW9uQWZmaW5pdHlEb3duc3Ry
ZWFtIHN0aWxsU2VsZWN0aW5nOkZBTFNFCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hh
bmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VESVRJ
TkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2U6V2ViVmlld0RpZENoYW5nZU5vdGlmaWNhdGlv
bgorRURJVElORyBERUxFR0FURTogc2hvdWxkQ2hhbmdlU2VsZWN0ZWRET01SYW5nZTpyYW5nZSBm
cm9tIDYgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byA2IG9mICN0
ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG9ET01SYW5nZTpyYW5nZSBmcm9t
IDcgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byA3IG9mICN0ZXh0
ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgYWZmaW5pdHk6TlNTZWxlY3Rpb25BZmZp
bml0eURvd25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6RkFMU0UKK0VESVRJTkcgREVMRUdBVEU6IHdl
YlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNh
dGlvbgorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZTpXZWJWaWV3RGlkQ2hhbmdl
Tm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJh
bmdlOnJhbmdlIGZyb20gNyBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50
IHRvIDcgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0b0RPTVJhbmdl
OnJhbmdlIGZyb20gOCBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRv
IDggb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCBhZmZpbml0eTpOU1Nl
bGVjdGlvbkFmZmluaXR5RG93bnN0cmVhbSBzdGlsbFNlbGVjdGluZzpGQUxTRQorRURJVElORyBE
RUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0
aW9uTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlOldlYlZp
ZXdEaWRDaGFuZ2VOb3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHNob3VsZENoYW5nZVNl
bGVjdGVkRE9NUmFuZ2U6cmFuZ2UgZnJvbSA4IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwg
PiAjZG9jdW1lbnQgdG8gOCBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50
IHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSA5IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAj
ZG9jdW1lbnQgdG8gOSBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IGFm
ZmluaXR5Ok5TU2VsZWN0aW9uQWZmaW5pdHlEb3duc3RyZWFtIHN0aWxsU2VsZWN0aW5nOkZBTFNF
CitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRD
aGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRD
aGFuZ2U6V2ViVmlld0RpZENoYW5nZU5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogc2hv
dWxkQ2hhbmdlU2VsZWN0ZWRET01SYW5nZTpyYW5nZSBmcm9tIDkgb2YgI3RleHQgPiBESVYgPiBC
T0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byA5IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwg
PiAjZG9jdW1lbnQgdG9ET01SYW5nZTpyYW5nZSBmcm9tIDEwIG9mICN0ZXh0ID4gRElWID4gQk9E
WSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gMTAgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+
ICNkb2N1bWVudCBhZmZpbml0eTpOU1NlbGVjdGlvbkFmZmluaXR5RG93bnN0cmVhbSBzdGlsbFNl
bGVjdGluZzpGQUxTRQorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlv
bjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRF
OiB3ZWJWaWV3RGlkQ2hhbmdlOldlYlZpZXdEaWRDaGFuZ2VOb3RpZmljYXRpb24KK0VESVRJTkcg
REVMRUdBVEU6IHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2U6cmFuZ2UgZnJvbSAxMCBvZiAj
dGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDEwIG9mICN0ZXh0ID4gRElW
ID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG9ET01SYW5nZTpyYW5nZSBmcm9tIDExIG9mICN0
ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gMTEgb2YgI3RleHQgPiBESVYg
PiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCBhZmZpbml0eTpOU1NlbGVjdGlvbkFmZmluaXR5RG93
bnN0cmVhbSBzdGlsbFNlbGVjdGluZzpGQUxTRQorRURJVElORyBERUxFR0FURTogd2ViVmlld0Rp
ZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCitF
RElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlOldlYlZpZXdEaWRDaGFuZ2VOb3RpZmlj
YXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2U6cmFu
Z2UgZnJvbSAxMSBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDEx
IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG9ET01SYW5nZTpyYW5n
ZSBmcm9tIDEyIG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gMTIg
b2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCBhZmZpbml0eTpOU1NlbGVj
dGlvbkFmZmluaXR5RG93bnN0cmVhbSBzdGlsbFNlbGVjdGluZzpGQUxTRQorRURJVElORyBERUxF
R0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9u
Tm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlOldlYlZpZXdE
aWRDaGFuZ2VOb3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHNob3VsZENoYW5nZVNlbGVj
dGVkRE9NUmFuZ2U6cmFuZ2UgZnJvbSAxMiBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4g
I2RvY3VtZW50IHRvIDEyIG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQg
dG9ET01SYW5nZTpyYW5nZSBmcm9tIDEzIG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAj
ZG9jdW1lbnQgdG8gMTMgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCBh
ZmZpbml0eTpOU1NlbGVjdGlvbkFmZmluaXR5RG93bnN0cmVhbSBzdGlsbFNlbGVjdGluZzpGQUxT
RQorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlk
Q2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlk
Q2hhbmdlOldlYlZpZXdEaWRDaGFuZ2VOb3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHNo
b3VsZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2U6cmFuZ2UgZnJvbSAxMyBvZiAjdGV4dCA+IERJViA+
IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDEzIG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhU
TUwgPiAjZG9jdW1lbnQgdG9ET01SYW5nZTpyYW5nZSBmcm9tIDQgb2YgI3RleHQgPiBESVYgPiBC
T0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byAxMiBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1M
ID4gI2RvY3VtZW50IGFmZmluaXR5Ok5TU2VsZWN0aW9uQWZmaW5pdHlEb3duc3RyZWFtIHN0aWxs
U2VsZWN0aW5nOkZBTFNFCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0
aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdB
VEU6IHNob3VsZEluc2VydFRleHQ6bWVzc2FnZSByZXBsYWNpbmdET01SYW5nZTpyYW5nZSBmcm9t
IDQgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byAxMiBvZiAjdGV4
dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IGdpdmVuQWN0aW9uOldlYlZpZXdJbnNl
cnRBY3Rpb25UeXBlZAorRURJVElORyBERUxFR0FURTogc2hvdWxkQ2hhbmdlU2VsZWN0ZWRET01S
YW5nZTpyYW5nZSBmcm9tIDQgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVu
dCB0byAxMiBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvRE9NUmFu
Z2U6cmFuZ2UgZnJvbSAxMSBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50
IHRvIDExIG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgYWZmaW5pdHk6
TlNTZWxlY3Rpb25BZmZpbml0eURvd25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6RkFMU0UKK0VESVRJ
TkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNl
bGVjdGlvbk5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZTpX
ZWJWaWV3RGlkQ2hhbmdlTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlk
Q2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VE
SVRJTkcgREVMRUdBVEU6IHNob3VsZERlbGV0ZURPTVJhbmdlOnJhbmdlIGZyb20gMTEgb2YgI3Rl
eHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byAxMiBvZiAjdGV4dCA+IERJViA+
IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50CitFRElUSU5HIERFTEVHQVRFOiBzaG91bGRDaGFuZ2VT
ZWxlY3RlZERPTVJhbmdlOnJhbmdlIGZyb20gMTEgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRN
TCA+ICNkb2N1bWVudCB0byAxMSBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3Vt
ZW50IHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSAxMSBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1M
ID4gI2RvY3VtZW50IHRvIDExIG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1l
bnQgYWZmaW5pdHk6TlNTZWxlY3Rpb25BZmZpbml0eURvd25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6
RkFMU0UKK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmll
d0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogd2ViVmll
d0RpZENoYW5nZTpXZWJWaWV3RGlkQ2hhbmdlTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRF
OiBzaG91bGREZWxldGVET01SYW5nZTpyYW5nZSBmcm9tIDEwIG9mICN0ZXh0ID4gRElWID4gQk9E
WSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gMTEgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+
ICNkb2N1bWVudAorRURJVElORyBERUxFR0FURTogc2hvdWxkQ2hhbmdlU2VsZWN0ZWRET01SYW5n
ZTpyYW5nZSBmcm9tIDEwIG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQg
dG8gMTAgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0b0RPTVJhbmdl
OnJhbmdlIGZyb20gMTAgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0
byAxMCBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IGFmZmluaXR5Ok5T
U2VsZWN0aW9uQWZmaW5pdHlEb3duc3RyZWFtIHN0aWxsU2VsZWN0aW5nOkZBTFNFCitFRElUSU5H
IERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxl
Y3Rpb25Ob3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2U6V2Vi
Vmlld0RpZENoYW5nZU5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogc2hvdWxkRGVsZXRl
RE9NUmFuZ2U6cmFuZ2UgZnJvbSA5IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9j
dW1lbnQgdG8gMTAgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudAorRURJ
VElORyBERUxFR0FURTogc2hvdWxkQ2hhbmdlU2VsZWN0ZWRET01SYW5nZTpyYW5nZSBmcm9tIDkg
b2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byA5IG9mICN0ZXh0ID4g
RElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG9ET01SYW5nZTpyYW5nZSBmcm9tIDkgb2Yg
I3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byA5IG9mICN0ZXh0ID4gRElW
ID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgYWZmaW5pdHk6TlNTZWxlY3Rpb25BZmZpbml0eURv
d25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6RkFMU0UKK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdE
aWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgor
RURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZTpXZWJWaWV3RGlkQ2hhbmdlTm90aWZp
Y2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiBzaG91bGREZWxldGVET01SYW5nZTpyYW5nZSBmcm9t
IDggb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byA5IG9mICN0ZXh0
ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQKK0VESVRJTkcgREVMRUdBVEU6IHNob3Vs
ZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2U6cmFuZ2UgZnJvbSA4IG9mICN0ZXh0ID4gRElWID4gQk9E
WSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gOCBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4g
I2RvY3VtZW50IHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSA4IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+
IEhUTUwgPiAjZG9jdW1lbnQgdG8gOCBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2Rv
Y3VtZW50IGFmZmluaXR5Ok5TU2VsZWN0aW9uQWZmaW5pdHlEb3duc3RyZWFtIHN0aWxsU2VsZWN0
aW5nOkZBTFNFCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldl
YlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHdl
YlZpZXdEaWRDaGFuZ2U6V2ViVmlld0RpZENoYW5nZU5vdGlmaWNhdGlvbgorRURJVElORyBERUxF
R0FURTogc2hvdWxkRGVsZXRlRE9NUmFuZ2U6cmFuZ2UgZnJvbSA3IG9mICN0ZXh0ID4gRElWID4g
Qk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gOCBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1M
ID4gI2RvY3VtZW50CitFRElUSU5HIERFTEVHQVRFOiBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJh
bmdlOnJhbmdlIGZyb20gNyBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50
IHRvIDcgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0b0RPTVJhbmdl
OnJhbmdlIGZyb20gNyBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRv
IDcgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCBhZmZpbml0eTpOU1Nl
bGVjdGlvbkFmZmluaXR5RG93bnN0cmVhbSBzdGlsbFNlbGVjdGluZzpGQUxTRQorRURJVElORyBE
RUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0
aW9uTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlOldlYlZp
ZXdEaWRDaGFuZ2VOb3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHNob3VsZERlbGV0ZURP
TVJhbmdlOnJhbmdlIGZyb20gNiBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3Vt
ZW50IHRvIDcgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudAorRURJVElO
RyBERUxFR0FURTogc2hvdWxkQ2hhbmdlU2VsZWN0ZWRET01SYW5nZTpyYW5nZSBmcm9tIDYgb2Yg
I3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byA2IG9mICN0ZXh0ID4gRElW
ID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG9ET01SYW5nZTpyYW5nZSBmcm9tIDYgb2YgI3Rl
eHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byA2IG9mICN0ZXh0ID4gRElWID4g
Qk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgYWZmaW5pdHk6TlNTZWxlY3Rpb25BZmZpbml0eURvd25z
dHJlYW0gc3RpbGxTZWxlY3Rpbmc6RkFMU0UKK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRD
aGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgorRURJ
VElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZTpXZWJWaWV3RGlkQ2hhbmdlTm90aWZpY2F0
aW9uCitFRElUSU5HIERFTEVHQVRFOiBzaG91bGREZWxldGVET01SYW5nZTpyYW5nZSBmcm9tIDUg
b2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byA2IG9mICN0ZXh0ID4g
RElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQKK0VESVRJTkcgREVMRUdBVEU6IHNob3VsZENo
YW5nZVNlbGVjdGVkRE9NUmFuZ2U6cmFuZ2UgZnJvbSA1IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+
IEhUTUwgPiAjZG9jdW1lbnQgdG8gNSBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2Rv
Y3VtZW50IHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSA1IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhU
TUwgPiAjZG9jdW1lbnQgdG8gNSBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3Vt
ZW50IGFmZmluaXR5Ok5TU2VsZWN0aW9uQWZmaW5pdHlEb3duc3RyZWFtIHN0aWxsU2VsZWN0aW5n
OkZBTFNFCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZp
ZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHdlYlZp
ZXdEaWRDaGFuZ2U6V2ViVmlld0RpZENoYW5nZU5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FU
RTogc2hvdWxkRGVsZXRlRE9NUmFuZ2U6cmFuZ2UgZnJvbSA0IG9mICN0ZXh0ID4gRElWID4gQk9E
WSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gNSBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4g
I2RvY3VtZW50CitFRElUSU5HIERFTEVHQVRFOiBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdl
OnJhbmdlIGZyb20gNCBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRv
IDQgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0b0RPTVJhbmdlOnJh
bmdlIGZyb20gNCBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDQg
b2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCBhZmZpbml0eTpOU1NlbGVj
dGlvbkFmZmluaXR5RG93bnN0cmVhbSBzdGlsbFNlbGVjdGluZzpGQUxTRQorRURJVElORyBERUxF
R0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9u
Tm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlOldlYlZpZXdE
aWRDaGFuZ2VOb3RpZmljYXRpb24KK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5k
ZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAw
CisgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgICBSZW5kZXJC
b2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDc4NHg1ODQKKyAgICAgIFJlbmRlckJsb2NrIHtESVZ9
IGF0ICgwLDApIHNpemUgNzg0eDE4CisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCww
KSBzaXplIDM5N3gxOAorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDM5NzogIlVw
b24gc3VjY2VzcywgeW91IHNob3VsZCBvbmx5IHNlZSB0aGUgd29yZCBcInRoZVwiIGluIHRleHQg
ZmllbGQuIgorICAgICAgUmVuZGVyQmxvY2sge1B9IGF0ICgwLDM0KSBzaXplIDc4NHgxOCBbY29s
b3I9IzAwODAwMF0KKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNzAy
eDE4CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNzAyOiAiTm90ZSwgdGhpcyB0
ZXN0IGNhbiBmYWlsIGR1ZSB0byB1c2VyIHNwZWNpZmljIHNwZWxsIGNoZWNraW5nIGRhdGEuIFRv
IGZpeCB0aGlzLCByZW1vdmUgYWxsIGZpbGVzIGluIH4vTGlicmFyeS9TcGVsbGluZy4iCisgICAg
ICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCw2OCkgc2l6ZSA3ODR4NTYgW2JvcmRlcjogKDJweCBz
b2xpZCAjRkYwMDAwKV0KKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgxNCwxNCkgc2l6
ZSAzNngyOAorICAgICAgICAgIHRleHQgcnVuIGF0ICgxNCwxNCkgd2lkdGggMzY6ICJ0aGUgIgor
ICAgICAgICBSZW5kZXJJbmxpbmUge1NQQU59IGF0ICgwLDApIHNpemUgMHgyOAorY2FyZXQ6IHBv
c2l0aW9uIDQgb2YgY2hpbGQgMCB7I3RleHR9IG9mIGNoaWxkIDUge0RJVn0gb2YgYm9keQpJbmRl
eDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2VkaXRpbmcvc3BlbGxpbmcvZGVsZXRlLWF1dG9j
b3JyZWN0ZWQtd29yZC0xLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL2VkaXRpbmcvc3BlbGxpbmcvZGVsZXRlLWF1dG9jb3JyZWN0ZWQtd29yZC0xLmh0bWwJKHJl
dmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZWRpdGluZy9zcGVsbGluZy9k
ZWxldGUtYXV0b2NvcnJlY3RlZC13b3JkLTEuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1
NiBAQAorPGh0bWw+IAorPGhlYWQ+CisKKzxzdHlsZT4KKy5lZGl0aW5nIHsgCisgICAgYm9yZGVy
OiAycHggc29saWQgcmVkOyAKKyAgICBwYWRkaW5nOiAxMnB4OyAKKyAgICBmb250LXNpemU6IDI0
cHg7IAorfQorPC9zdHlsZT4KKzxzY3JpcHQgc3JjPS4uLy4uLy4uLy4uL2VkaXRpbmcvZWRpdGlu
Zy5qcyBsYW5ndWFnZT0iSmF2YVNjcmlwdCIgdHlwZT0idGV4dC9KYXZhU2NyaXB0IiA+PC9zY3Jp
cHQ+CisKKzxzY3JpcHQ+CisKK2Z1bmN0aW9uIGVkaXRpbmdUZXN0KCkgeworICAgIHR5cGVDaGFy
YWN0ZXJDb21tYW5kKCd0Jyk7CisgICAgdHlwZUNoYXJhY3RlckNvbW1hbmQoJ2gnKTsKKyAgICB0
eXBlQ2hhcmFjdGVyQ29tbWFuZCgnZScpOworICAgIHR5cGVDaGFyYWN0ZXJDb21tYW5kKCcgJyk7
CisgICAgdHlwZUNoYXJhY3RlckNvbW1hbmQoJ20nKTsKKyAgICB0eXBlQ2hhcmFjdGVyQ29tbWFu
ZCgnZScpOworICAgIHR5cGVDaGFyYWN0ZXJDb21tYW5kKCdzJyk7CisgICAgdHlwZUNoYXJhY3Rl
ckNvbW1hbmQoJ3MnKTsKKyAgICB0eXBlQ2hhcmFjdGVyQ29tbWFuZCgnYScpOworICAgIHR5cGVD
aGFyYWN0ZXJDb21tYW5kKCdnJyk7CisgICAgdHlwZUNoYXJhY3RlckNvbW1hbmQoJ2UnKTsKKyAg
ICB0eXBlQ2hhcmFjdGVyQ29tbWFuZCgnZScpOworICAgIHR5cGVDaGFyYWN0ZXJDb21tYW5kKCcg
Jyk7CisgICAgZXhlY0RlbGV0ZUNvbW1hbmQoKTsKKyAgICBleGVjRGVsZXRlQ29tbWFuZCgpOwor
ICAgIGV4ZWNEZWxldGVDb21tYW5kKCk7CisgICAgZXhlY0RlbGV0ZUNvbW1hbmQoKTsKKyAgICBl
eGVjRGVsZXRlQ29tbWFuZCgpOworICAgIGV4ZWNEZWxldGVDb21tYW5kKCk7CisgICAgZXhlY0Rl
bGV0ZUNvbW1hbmQoKTsKKyAgICBleGVjRGVsZXRlQ29tbWFuZCgpOworfQorCis8L3NjcmlwdD4K
KworPHRpdGxlPkRlbGV0ZSBBdXRvY29ycmVjdGVkIFdvcmQgVGVzdCAxPC90aXRsZT4gCis8L2hl
YWQ+IAorPGJvZHk+Cis8ZGl2PlVwb24gc3VjY2VzcywgeW91IHNob3VsZCBvbmx5IHNlZSB0aGUg
d29yZCAidGhlIiBpbiB0ZXh0IGZpZWxkLjwvZGl2PgorPHAgIHN0eWxlPSJjb2xvcjpncmVlbiI+
Tm90ZSwgdGhpcyB0ZXN0IGNhbiBmYWlsIGR1ZSB0byB1c2VyIHNwZWNpZmljIHNwZWxsIGNoZWNr
aW5nIGRhdGEuIFRvIGZpeCB0aGlzLCByZW1vdmUgYWxsIGZpbGVzIGluIH4vTGlicmFyeS9TcGVs
bGluZy48L3A+Cis8ZGl2IGNvbnRlbnRlZGl0YWJsZSBpZD0icm9vdCIgY2xhc3M9ImVkaXRpbmci
PgorPHNwYW4gaWQ9InRlc3QiPjwvc3Bhbj4KKzwvZGl2PgorCisKKzxzY3JpcHQ+CitydW5FZGl0
aW5nVGVzdCgpOworPC9zY3JpcHQ+CisKKzwvYm9keT4KKzwvaHRtbD4K
</data>
<flag name="review"
          id="65800"
          type_id="1"
          status="+"
          setter="darin"
    />
    <flag name="commit-queue"
          id="65839"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>75186</attachid>
            <date>2010-11-30 13:05:43 -0800</date>
            <delta_ts>2010-12-01 17:19:27 -0800</delta_ts>
            <desc>Proposed patch (v7)</desc>
            <filename>webkit_bug50137.patch</filename>
            <type>text/plain</type>
            <size>75487</size>
            <attacher name="Jia Pu">jiapu.mail</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3MjgyNSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNjMgQEAKKzIwMTAtMTEtMjkgIEppYSBQdSAgPGpwdUBhcHBsZS5jb20+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3VwcG9ydCBtdWx0
aXBsZSBjb3JyZWN0aW9uIGNhbmRpZGF0ZXMgcGFuZWwgZm9yIG1pc3NwZWxsZWQgd29yZCBvbiBN
YWMgT1MgWC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTUwMTM3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NTY4MDU5PgorCisgICAgICAgIFRlc3Q6
IHBsYXRmb3JtL21hYy9lZGl0aW5nL3NwZWxsaW5nL2RlbGV0ZS1hdXRvY29ycmVjdGVkLXdvcmQt
MS5odG1sCisgICAgICAgIE1hbnVhbCB0ZXN0OiBXZWJDb3JlL21hbnVhbC10ZXN0cy9hdXRvY29y
cmVjdGlvbi9kaXNtaXNzLW11bHRpcGxlLWd1ZXNzZXMuaHRtbAorICAgICAgICAgICAgICAgICAg
ICAgV2ViQ29yZS9tYW51YWwtdGVzdHMvYXV0b2NvcnJlY3Rpb24vc2VsZWN0LWZyb20tbXVsdGlw
bGUtZ3Vlc3Nlcy5odG1sCisKKyAgICAgICAgVGhpcyBwYXRjaCBpcyBmb3Igc3VwcG9ydGluZyBt
dWx0aXBsZSBjb3JyZWN0aW9uIHN1Z2dlc3Rpb24gcGFuZWwgb24gTWFjIE9TIFguCisgICAgICAg
IFRoZSBiZWhhdmlvciBhbmQgaW1wbGVtZW50YXRpb24gaXMgc2ltaWxhciB0byB0aGF0IG9mIHJl
dmVyc2lvbiBjYW5kaWF0ZSBwYW5lbC4KKworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOiBBZGRl
ZCBhbmQgcmVtb3ZlZCBzeW1ib2xzLgorCisgICAgICAgICogZWRpdGluZy9Db3JyZWN0aW9uUGFu
ZWxJbmZvLmg6IEFkZGVkIG5ldyBjb3JyZWN0aW9uIHBhbmVsIHR5cGUsIFBhbmVsVHlwZVNwZWxs
aW5nU3VnZ2VzdGlvbnMuCisKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjptYXJrZXJUeXBlc0ZvckF1dG9jb3JyZWN0aW9uKTogQ29udmVuaWVudCBmdW5j
dGlvbiBmb3IgZ2V0dGluZyBtYXJrZXIgdHlwZXMgdG8KKyAgICAgICAgICBiZSBhZGRlZCB0byBh
dXRvY29ycmVjdGVkIHdvcmQuCisgICAgICAgIChXZWJDb3JlOjpib3VuZGluZ0JveEZvclJhbmdl
KTogQ29udmVuaWVudCBmdW5jdGlvbiBmb3IgY2FsY3VsYXRpbmcgdGhlIGJvdW5kaW5nIGJveCBv
ZiBhIHJhbmdlLgorICAgICAgICAoV2ViQ29yZTo6bWFya2VyVHlwZXNGb3JSZXBsYWNlbWVudCk6
IENvbnZlbmllbnQgZnVuY3Rpb24gZm9yIGdldHRpbmcgbWFya2VyIHR5cGVzIHRvCisgICAgICAg
ICAgYmUgYWRkZWQgdG8gd29yZCB0aGF0IGhhcyBiZWVuIHJlcGxhY2VkIGJ5IHZhcmlvdXMgY29y
cmVjdGlvbiBwYW5lbC4KKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6cmVzcG9uZFRvQ2hhbmdl
ZFNlbGVjdGlvbik6IEFkZGVkIGNvZGUgdG8gdHJpZ2dlciB0aW1lciBmb3IgbXVsdGlwbGUKKyAg
ICAgICAgICBzdWdnZXN0aW9uIHBhbmVsLgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpndWVz
c2VzRm9yTWlzc3BlbGxlZFNlbGVjdGlvbik6IEFkb3B0ZWQgbmV3IHNpZ25hdHVyZSBvZiBFZGl0
b3JDbGllbnQ6OmdldEd1ZXNzZXNGb3JXb3JkKCkuCisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6
Om1hcmtNaXNzcGVsbGluZ3NBZnRlclR5cGluZ1RvV29yZCk6IEFkb3B0ZWQgbmV3IHNpZ25hdHVy
ZSBvZiBhcHBseUNvcnJlY3Rpb25QYW5lbEluZm8oKS4KKyAgICAgICAgKFdlYkNvcmU6OkVkaXRv
cjo6bWFya0FsbE1pc3NwZWxsaW5nc0FuZEJhZEdyYW1tYXJJblJhbmdlcyk6IERpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6RWRpdG9yOjpjb3JyZWN0aW9uUGFuZWxUaW1lckZpcmVkKTogQWRkZWQg
Y29kZSB0byBoYW5kbGUgbmV3IG11bHRpcGxlIHN1Z2dlc3Rpb24gcGFuZWwuCisgICAgICAgIChX
ZWJDb3JlOjpFZGl0b3I6OmhhbmRsZUNvcnJlY3Rpb25QYW5lbFJlc3VsdCk6IFJlcGxhY2VkIGhh
bmRsZVJlamVjdGVkQ29ycmVjdGlvbigpLCBzaW5jZQorICAgICAgICAgIHdpdGggbmV3IEFwcEtp
dCBjb3JyZWN0aW9uIHBhbmVsIEFQSSwgbm90IG9ubHkgcmVqZWN0aW9uLCBidXQgYWxzbyBjb25m
aXJtYXRpb24gY2FuIGJlCisgICAgICAgICAgaGFuZGxlZCBpbiBjYWxsYmFjay4KKyAgICAgICAg
KFdlYkNvcmU6OkVkaXRvcjo6c3RvcENvcnJlY3Rpb25QYW5lbFRpbWVyKTogTW92ZWQgdGhlIGNv
ZGUgdGhhdCBjbGVhcnMgY29ycmVjdGlvbiBwYW5lbCBpbmZvCisgICAgICAgICAgZnJvbSBkaXNt
aXNzQ29ycmVjdGlvblBhbmVsKCkgdG8gdGhpcyBmdW5jdGlvbiB0byBmaXggYSBidWcgdGhhdCB3
b3VsZCBvY2N1ciB3aGVuIGRlbGV0aW5nCisgICAgICAgICAgYXV0b2NvcnJlY3RlZCB3b3JkLgor
ICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpkaXNtaXNzQ29ycmVjdGlvblBhbmVsKTogRGl0dG8u
CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OmFwcGx5Q29ycmVjdGlvblBhbmVsSW5mbyk6IEFk
ZGVkIGNvZGUgdG8gaGFuZGxlIG5ldyBtdWx0aXBsZSBzdWdnZXN0aW9uIHBhbmVsLgorCisgICAg
ICAgICogZWRpdGluZy9FZGl0b3IuaDogUmVwbGFjZWQgaGFuZGxlUmVqZWN0ZWRDb3JyZWN0aW9u
KCkgd2l0aCBoYW5kbGVDb3JyZWN0aW9uUGFuZWxSZXN1bHQoKS4KKyAgICAgICAgICBDaGFuZ2Vk
IHRoZSBzaWduYXR1cmUgb2YgYXBwbHlDb3JyZWN0aW9uUGFuZWxJbmZvKCkgdG8gaGFubGRlIG5l
dyBjb3JyZWN0aW9uIHBhbmVsIHR5cGUuCisKKyAgICAgICAgKiBlZGl0aW5nL1RleHRDaGVja2lu
Z0hlbHBlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0Q2hlY2tpbmdIZWxwZXI6Omd1ZXNz
ZXNGb3JNaXNzcGVsbGVkT3JVbmdyYW1tYXRpY2FsUmFuZ2UpOiBBZG9wdGVkIG5ldyBFZGl0b3JD
bGllbnQ6OmdldEd1ZXNzZXNGb3JXb3JkKCkuCisKKyAgICAgICAgKiBlZGl0aW5nL1RleHRDaGVj
a2luZ0hlbHBlci5oOiBNYWRlIHBhcmFncmFwaFJhbmdlKCkgcHVibGljLgorCisgICAgICAgICog
bG9hZGVyL0VtcHR5Q2xpZW50cy5oOgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlFZGl0b3JDbGll
bnQ6OnNob3dDb3JyZWN0aW9uUGFuZWwpOiBBZG9wdGVkIG5ldyBzaWduYXR1cmUgZGVmaW5lZCBp
biBiYXNlIGNsYXNzLgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlFZGl0b3JDbGllbnQ6OmdldEd1
ZXNzZXNGb3JXb3JkKTogRGl0dG8uCisKKyAgICAgICAgKiBtYW51YWwtdGVzdHMvYXV0b2NvcnJl
Y3Rpb24vZGlzbWlzcy1tdWx0aXBsZS1ndWVzc2VzLmh0bWw6IEFkZGVkLgorCisgICAgICAgICog
bWFudWFsLXRlc3RzL2F1dG9jb3JyZWN0aW9uL3NlbGVjdC1mcm9tLW11bHRpcGxlLWd1ZXNzZXMu
aHRtbDogQWRkZWQuCisKKyAgICAgICAgKiBwYWdlL0VkaXRvckNsaWVudC5oOiAgQ2hhbmdlZCBz
aG93Q29ycmVjdGlvblBhbmVsKCkgdG8gYWxsb3cgcGFzc2luZyBtdWx0aXBsZSBjb3JyZWN0aW9u
CisgICAgICAgICAgY2FuZGlkYXRlcy4gQ2hhbmdlZCBnZXRHdWVzc2VzRm9yV29yZCgpIHRvIGFs
bG93IHBhc3NpbmcgaW4gY29udGV4dHVhbCB0ZXh0IGZvciBiZXR0ZXIKKyAgICAgICAgICBjb3Jy
ZWN0aW9uIHN1Z2dlc3Rpb25zIChmb3IgdGhvc2Ugc3BlbGxjaGVja2VycyB0aGF0IHV0aWxpemVz
IHN1Y2ggY29udGV4dHVhbCBpbmZvcm1hdGlvbikuCisKIDIwMTAtMTEtMjkgIERpbWl0cmkgR2xh
emtvdiAgPGRnbGF6a292QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJp
biBBZGxlci4KSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5leHAuaW4KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9XZWJDb3JlLmV4cC5pbgkocmV2aXNpb24gNzI4MjUpCisrKyBXZWJDb3JlL1dlYkNvcmUu
ZXhwLmluCSh3b3JraW5nIGNvcHkpCkBAIC02ODEsMTAgKzY4MSwxMCBAQCBfX1pON1dlYkNvcmU2
RWRpdG9yMjFpc1NlbGVjdGlvbk1pc3NwZWxsCiBfX1pON1dlYkNvcmU2RWRpdG9yMjNzZXRCYXNl
V3JpdGluZ0RpcmVjdGlvbkVOU18xNldyaXRpbmdEaXJlY3Rpb25FCiBfX1pON1dlYkNvcmU2RWRp
dG9yMjRhZHZhbmNlVG9OZXh0TWlzc3BlbGxpbmdFYgogX19aTjdXZWJDb3JlNkVkaXRvcjI0Y29t
cHV0ZUFuZFNldFR5cGluZ1N0eWxlRVBOU18xOUNTU1N0eWxlRGVjbGFyYXRpb25FTlNfMTBFZGl0
QWN0aW9uRQotX19aTjdXZWJDb3JlNkVkaXRvcjI0aGFuZGxlUmVqZWN0ZWRDb3JyZWN0aW9uRXYK
IF9fWk43V2ViQ29yZTZFZGl0b3IyNGlzU2VsZWN0aW9uVW5ncmFtbWF0aWNhbEV2CiBfX1pON1dl
YkNvcmU2RWRpdG9yMjZkZWNyZWFzZVNlbGVjdGlvbkxpc3RMZXZlbEV2CiBfX1pON1dlYkNvcmU2
RWRpdG9yMjZpbmNyZWFzZVNlbGVjdGlvbkxpc3RMZXZlbEV2CitfX1pON1dlYkNvcmU2RWRpdG9y
MjdoYW5kbGVDb3JyZWN0aW9uUGFuZWxSZXN1bHRFUktOM1dURjZTdHJpbmdFCiBfX1pON1dlYkNv
cmU2RWRpdG9yMjljYW5EZWNyZWFzZVNlbGVjdGlvbkxpc3RMZXZlbEV2CiBfX1pON1dlYkNvcmU2
RWRpdG9yMjljYW5JbmNyZWFzZVNlbGVjdGlvbkxpc3RMZXZlbEV2CiBfX1pON1dlYkNvcmU2RWRp
dG9yMzBhcHBseVBhcmFncmFwaFN0eWxlVG9TZWxlY3Rpb25FUE5TXzE5Q1NTU3R5bGVEZWNsYXJh
dGlvbkVOU18xMEVkaXRBY3Rpb25FCkluZGV4OiBXZWJDb3JlL2VkaXRpbmcvQ29ycmVjdGlvblBh
bmVsSW5mby5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZWRpdGluZy9Db3JyZWN0aW9uUGFuZWxJ
bmZvLmgJKHJldmlzaW9uIDcyODI1KQorKysgV2ViQ29yZS9lZGl0aW5nL0NvcnJlY3Rpb25QYW5l
bEluZm8uaAkod29ya2luZyBjb3B5KQpAQCAtNDQsNyArNDQsOCBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiBzdHJ1Y3QgQ29ycmVjdGlvblBhbmVsSW5mbyB7CiAgICAgZW51bSBQYW5lbFR5cGUgewog
ICAgICAgICBQYW5lbFR5cGVDb3JyZWN0aW9uID0gMCwKLSAgICAgICAgUGFuZWxUeXBlUmV2ZXJz
aW9uCisgICAgICAgIFBhbmVsVHlwZVJldmVyc2lvbiwKKyAgICAgICAgUGFuZWxUeXBlU3BlbGxp
bmdTdWdnZXN0aW9ucwogICAgIH07CiAKICAgICBSZWZQdHI8UmFuZ2U+IG1fcmFuZ2VUb0JlUmVw
bGFjZWQ7CkluZGV4OiBXZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAkocmV2aXNpb24gNzI4MjUpCisrKyBXZWJDb3JlL2Vk
aXRpbmcvRWRpdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTIsNiArOTIsMzcgQEAgc3RhdGlj
IGlubGluZSBib29sIGlzQW1iaWd1b3VzQm91bmRhcnlDaAogICAgIHJldHVybiBjaGFyYWN0ZXIg
PT0gJ1wnJyB8fCBjaGFyYWN0ZXIgPT0gcmlnaHRTaW5nbGVRdW90YXRpb25NYXJrIHx8IGNoYXJh
Y3RlciA9PSBoZWJyZXdQdW5jdHVhdGlvbkdlcnNoYXlpbTsKIH0KIAorI2lmIFNVUFBPUlRfQVVU
T0NPUlJFQ1RJT05fUEFORUwKK3N0YXRpYyBjb25zdCBWZWN0b3I8RG9jdW1lbnRNYXJrZXI6Ok1h
cmtlclR5cGU+JiBtYXJrZXJUeXBlc0ZvckF1dG9jb3JyZWN0aW9uKCkKK3sKKyAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKFZlY3RvcjxEb2N1bWVudE1hcmtlcjo6TWFya2VyVHlwZT4sIG1hcmtlclR5
cGVzRm9yQXV0b0NvcnJlY3Rpb24sICgpKTsKKyAgICBpZiAobWFya2VyVHlwZXNGb3JBdXRvQ29y
cmVjdGlvbi5pc0VtcHR5KCkpIHsKKyAgICAgICAgbWFya2VyVHlwZXNGb3JBdXRvQ29ycmVjdGlv
bi5hcHBlbmQoRG9jdW1lbnRNYXJrZXI6OlJlcGxhY2VtZW50KTsKKyAgICAgICAgbWFya2VyVHlw
ZXNGb3JBdXRvQ29ycmVjdGlvbi5hcHBlbmQoRG9jdW1lbnRNYXJrZXI6OkNvcnJlY3Rpb25JbmRp
Y2F0b3IpOworICAgIH0KKyAgICByZXR1cm4gbWFya2VyVHlwZXNGb3JBdXRvQ29ycmVjdGlvbjsK
K30KKworc3RhdGljIEZsb2F0UmVjdCBib3VuZGluZ0JveEZvclJhbmdlKFJhbmdlKiByYW5nZSkK
K3sKKyAgICBWZWN0b3I8RmxvYXRRdWFkPiB0ZXh0UXVhZHM7CisgICAgcmFuZ2UtPmdldEJvcmRl
ckFuZFRleHRRdWFkcyh0ZXh0UXVhZHMpOworICAgIEZsb2F0UmVjdCB0b3RhbEJvdW5kaW5nQm94
OworICAgIHNpemVfdCBzaXplID0gdGV4dFF1YWRzLnNpemUoKTsKKyAgICBmb3IgKHNpemVfdCBp
ID0gMDsgaTwgc2l6ZTsgKytpKQorICAgICAgICB0b3RhbEJvdW5kaW5nQm94LnVuaXRlKHRleHRR
dWFkc1tpXS5ib3VuZGluZ0JveCgpKTsKKyAgICByZXR1cm4gdG90YWxCb3VuZGluZ0JveDsKK30K
KyNlbmRpZiAvLyBTVVBQT1JUX0FVVE9DT1JSRUNUSU9OX1BBTkVMCisKK3N0YXRpYyBjb25zdCBW
ZWN0b3I8RG9jdW1lbnRNYXJrZXI6Ok1hcmtlclR5cGU+JiBtYXJrZXJUeXBlc0ZvclJlcGxhY2Vt
ZW50KCkKK3sKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFZlY3RvcjxEb2N1bWVudE1hcmtlcjo6
TWFya2VyVHlwZT4sIG1hcmtlclR5cGVzRm9yUmVwbGFjZW1lbnQsICgpKTsKKyAgICBpZiAobWFy
a2VyVHlwZXNGb3JSZXBsYWNlbWVudC5pc0VtcHR5KCkpCisgICAgICAgIG1hcmtlclR5cGVzRm9y
UmVwbGFjZW1lbnQuYXBwZW5kKERvY3VtZW50TWFya2VyOjpSZXBsYWNlbWVudCk7CisgICAgcmV0
dXJuIG1hcmtlclR5cGVzRm9yUmVwbGFjZW1lbnQ7Cit9CisKIC8vIFdoZW4gYW4gZXZlbnQgaGFu
ZGxlciBoYXMgbW92ZWQgdGhlIHNlbGVjdGlvbiBvdXRzaWRlIG9mIGEgdGV4dCBjb250cm9sCiAv
LyB3ZSBzaG91bGQgdXNlIHRoZSB0YXJnZXQgY29udHJvbCdzIHNlbGVjdGlvbiBmb3IgdGhpcyBl
ZGl0aW5nIG9wZXJhdGlvbi4KIFZpc2libGVTZWxlY3Rpb24gRWRpdG9yOjpzZWxlY3Rpb25Gb3JD
b21tYW5kKEV2ZW50KiBldmVudCkKQEAgLTUwMCwxMyArNTMxLDE4IEBAIHZvaWQgRWRpdG9yOjpy
ZXNwb25kVG9DaGFuZ2VkU2VsZWN0aW9uKGMKICAgICBzaXplX3QgbWFya2VyQ291bnQgPSBtYXJr
ZXJzLnNpemUoKTsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1hcmtlckNvdW50OyArK2kp
IHsKICAgICAgICAgY29uc3QgRG9jdW1lbnRNYXJrZXImIG1hcmtlciA9IG1hcmtlcnNbaV07Ci0g
ICAgICAgIGlmIChtYXJrZXIudHlwZSA9PSBEb2N1bWVudE1hcmtlcjo6Q29ycmVjdGlvbkluZGlj
YXRvciAmJiBzdGF0aWNfY2FzdDxpbnQ+KG1hcmtlci5lbmRPZmZzZXQpID09IGVuZE9mZnNldCkg
eworICAgICAgICBpZiAoKChtYXJrZXIudHlwZSA9PSBEb2N1bWVudE1hcmtlcjo6Q29ycmVjdGlv
bkluZGljYXRvciAmJiBtYXJrZXIuZGVzY3JpcHRpb24ubGVuZ3RoKCkpIHx8IG1hcmtlci50eXBl
ID09IERvY3VtZW50TWFya2VyOjpTcGVsbGluZykgJiYgc3RhdGljX2Nhc3Q8aW50PihtYXJrZXIu
ZW5kT2Zmc2V0KSA9PSBlbmRPZmZzZXQpIHsKICAgICAgICAgICAgIFJlZlB0cjxSYW5nZT4gd29y
ZFJhbmdlID0gUmFuZ2U6OmNyZWF0ZShmcmFtZSgpLT5kb2N1bWVudCgpLCBub2RlLCBtYXJrZXIu
c3RhcnRPZmZzZXQsIG5vZGUsIG1hcmtlci5lbmRPZmZzZXQpOwogICAgICAgICAgICAgU3RyaW5n
IGN1cnJlbnRXb3JkID0gcGxhaW5UZXh0KHdvcmRSYW5nZS5nZXQoKSk7Ci0gICAgICAgICAgICBp
ZiAoY3VycmVudFdvcmQubGVuZ3RoKCkgPiAwICYmIG1hcmtlci5kZXNjcmlwdGlvbi5sZW5ndGgo
KSA+IDApIHsKKyAgICAgICAgICAgIGlmIChjdXJyZW50V29yZC5sZW5ndGgoKSkgewogICAgICAg
ICAgICAgICAgIG1fY29ycmVjdGlvblBhbmVsSW5mby5tX3JhbmdlVG9CZVJlcGxhY2VkID0gd29y
ZFJhbmdlOwotICAgICAgICAgICAgICAgIG1fY29ycmVjdGlvblBhbmVsSW5mby5tX3JlcGxhY2Vt
ZW50U3RyaW5nID0gbWFya2VyLmRlc2NyaXB0aW9uOwotICAgICAgICAgICAgICAgIHN0YXJ0Q29y
cmVjdGlvblBhbmVsVGltZXIoQ29ycmVjdGlvblBhbmVsSW5mbzo6UGFuZWxUeXBlUmV2ZXJzaW9u
KTsKKyAgICAgICAgICAgICAgICBtX2NvcnJlY3Rpb25QYW5lbEluZm8ubV9yZXBsYWNlZFN0cmlu
ZyA9IGN1cnJlbnRXb3JkOworICAgICAgICAgICAgICAgIGlmIChtYXJrZXIudHlwZSA9PSBEb2N1
bWVudE1hcmtlcjo6U3BlbGxpbmcpCisgICAgICAgICAgICAgICAgICAgIHN0YXJ0Q29ycmVjdGlv
blBhbmVsVGltZXIoQ29ycmVjdGlvblBhbmVsSW5mbzo6UGFuZWxUeXBlU3BlbGxpbmdTdWdnZXN0
aW9ucyk7CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIG1fY29y
cmVjdGlvblBhbmVsSW5mby5tX3JlcGxhY2VtZW50U3RyaW5nID0gbWFya2VyLmRlc2NyaXB0aW9u
OworICAgICAgICAgICAgICAgICAgICBzdGFydENvcnJlY3Rpb25QYW5lbFRpbWVyKENvcnJlY3Rp
b25QYW5lbEluZm86OlBhbmVsVHlwZVJldmVyc2lvbik7CisgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KQEAgLTE5MzIsNyArMTk2
OCw3IEBAIFZlY3RvcjxTdHJpbmc+IEVkaXRvcjo6Z3Vlc3Nlc0Zvck1pc3NwZWwKIAogICAgIFZl
Y3RvcjxTdHJpbmc+IGd1ZXNzZXM7CiAgICAgaWYgKGNsaWVudCgpKQotICAgICAgICBjbGllbnQo
KS0+Z2V0R3Vlc3Nlc0ZvcldvcmQoc2VsZWN0ZWRTdHJpbmcsIGd1ZXNzZXMpOworICAgICAgICBj
bGllbnQoKS0+Z2V0R3Vlc3Nlc0ZvcldvcmQoc2VsZWN0ZWRTdHJpbmcsIFN0cmluZygpLCBndWVz
c2VzKTsKICAgICByZXR1cm4gZ3Vlc3NlczsKIH0KIApAQCAtMjAxOSw3ICsyMDU1LDcgQEAgdm9p
ZCBFZGl0b3I6Om1hcmtNaXNzcGVsbGluZ3NBZnRlclR5cGluZwogICAgICAgICAgICAgZG9BcHBs
eUNvcnJlY3Rpb24gPSBmYWxzZTsKICAgICB9CiAgICAgaWYgKGRvQXBwbHlDb3JyZWN0aW9uKQot
ICAgICAgICBhcHBseUNvcnJlY3Rpb25QYW5lbEluZm8odHJ1ZSk7CisgICAgICAgIGFwcGx5Q29y
cmVjdGlvblBhbmVsSW5mbyhtYXJrZXJUeXBlc0ZvckF1dG9jb3JyZWN0aW9uKCkpOwogICAgIG1f
Y29ycmVjdGlvblBhbmVsSW5mby5tX3JhbmdlVG9CZVJlcGxhY2VkLmNsZWFyKCk7CiAjZWxzZQog
ICAgIFVOVVNFRF9QQVJBTShzZWxlY3Rpb25BZnRlclR5cGluZyk7CkBAIC0yMzQxLDcgKzIzNzcs
NyBAQCB2b2lkIEVkaXRvcjo6bWFya0FsbE1pc3NwZWxsaW5nc0FuZEJhZEdyCiAgICAgICAgICAg
ICAgICAgICAgICAgICBtX2NvcnJlY3Rpb25QYW5lbEluZm8ubV9yZXBsYWNlZFN0cmluZyA9IHJl
cGxhY2VkU3RyaW5nOwogICAgICAgICAgICAgICAgICAgICAgICAgbV9jb3JyZWN0aW9uUGFuZWxJ
bmZvLm1fcmVwbGFjZW1lbnRTdHJpbmcgPSByZXN1bHQtPnJlcGxhY2VtZW50OwogICAgICAgICAg
ICAgICAgICAgICAgICAgbV9jb3JyZWN0aW9uUGFuZWxJbmZvLm1faXNBY3RpdmUgPSB0cnVlOwot
ICAgICAgICAgICAgICAgICAgICAgICAgY2xpZW50KCktPnNob3dDb3JyZWN0aW9uUGFuZWwobV9j
b3JyZWN0aW9uUGFuZWxJbmZvLm1fcGFuZWxUeXBlLCB0b3RhbEJvdW5kaW5nQm94LCBtX2NvcnJl
Y3Rpb25QYW5lbEluZm8ubV9yZXBsYWNlZFN0cmluZywgcmVzdWx0LT5yZXBsYWNlbWVudCwgdGhp
cyk7CisgICAgICAgICAgICAgICAgICAgICAgICBjbGllbnQoKS0+c2hvd0NvcnJlY3Rpb25QYW5l
bChtX2NvcnJlY3Rpb25QYW5lbEluZm8ubV9wYW5lbFR5cGUsIHRvdGFsQm91bmRpbmdCb3gsIG1f
Y29ycmVjdGlvblBhbmVsSW5mby5tX3JlcGxhY2VkU3RyaW5nLCByZXN1bHQtPnJlcGxhY2VtZW50
LCBWZWN0b3I8U3RyaW5nPigpLCB0aGlzKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGRvUmVw
bGFjZW1lbnQgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAgfQogI2VuZGlmCkBAIC0yNDE5
LDM5ICsyNDU1LDY2IEBAIHZvaWQgRWRpdG9yOjptYXJrTWlzc3BlbGxpbmdzQW5kQmFkR3JhbW0K
IHZvaWQgRWRpdG9yOjpjb3JyZWN0aW9uUGFuZWxUaW1lckZpcmVkKFRpbWVyPEVkaXRvcj4qKQog
ewogI2lmIFNVUFBPUlRfQVVUT0NPUlJFQ1RJT05fUEFORUwKLSAgICBpZiAobV9jb3JyZWN0aW9u
UGFuZWxJbmZvLm1fcGFuZWxUeXBlID09IENvcnJlY3Rpb25QYW5lbEluZm86OlBhbmVsVHlwZUNv
cnJlY3Rpb24pIHsKKyAgICBzd2l0Y2ggKG1fY29ycmVjdGlvblBhbmVsSW5mby5tX3BhbmVsVHlw
ZSkgeworICAgIGNhc2UgQ29ycmVjdGlvblBhbmVsSW5mbzo6UGFuZWxUeXBlQ29ycmVjdGlvbjog
ewogICAgICAgICBWaXNpYmxlU2VsZWN0aW9uIHNlbGVjdGlvbihmcmFtZSgpLT5zZWxlY3Rpb24o
KS0+c2VsZWN0aW9uKCkpOwogICAgICAgICBWaXNpYmxlUG9zaXRpb24gc3RhcnQoc2VsZWN0aW9u
LnN0YXJ0KCksIHNlbGVjdGlvbi5hZmZpbml0eSgpKTsKICAgICAgICAgVmlzaWJsZVBvc2l0aW9u
IHAgPSBzdGFydE9mV29yZChzdGFydCwgTGVmdFdvcmRJZk9uQm91bmRhcnkpOwogICAgICAgICBW
aXNpYmxlU2VsZWN0aW9uIGFkamFjZW50V29yZHMgPSBWaXNpYmxlU2VsZWN0aW9uKHAsIHN0YXJ0
KTsKICAgICAgICAgbWFya0FsbE1pc3NwZWxsaW5nc0FuZEJhZEdyYW1tYXJJblJhbmdlcyhNYXJr
U3BlbGxpbmcgfCBTaG93Q29ycmVjdGlvblBhbmVsLCBhZGphY2VudFdvcmRzLnRvTm9ybWFsaXpl
ZFJhbmdlKCkuZ2V0KCksIDApOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIFN0cmluZyBjdXJyZW50
V29yZCA9IHBsYWluVGV4dChtX2NvcnJlY3Rpb25QYW5lbEluZm8ubV9yYW5nZVRvQmVSZXBsYWNl
ZC5nZXQoKSk7Ci0gICAgICAgIFZlY3RvcjxGbG9hdFF1YWQ+IHRleHRRdWFkczsKLSAgICAgICAg
bV9jb3JyZWN0aW9uUGFuZWxJbmZvLm1fcmFuZ2VUb0JlUmVwbGFjZWQtPmdldEJvcmRlckFuZFRl
eHRRdWFkcyh0ZXh0UXVhZHMpOwotICAgICAgICBWZWN0b3I8RmxvYXRRdWFkPjo6Y29uc3RfaXRl
cmF0b3IgZW5kID0gdGV4dFF1YWRzLmVuZCgpOwotICAgICAgICBGbG9hdFJlY3QgdG90YWxCb3Vu
ZGluZ0JveDsKLSAgICAgICAgZm9yIChWZWN0b3I8RmxvYXRRdWFkPjo6Y29uc3RfaXRlcmF0b3Ig
aXQgPSB0ZXh0UXVhZHMuYmVnaW4oKTsgaXQgPCBlbmQ7ICsraXQpCi0gICAgICAgICAgICB0b3Rh
bEJvdW5kaW5nQm94LnVuaXRlKGl0LT5ib3VuZGluZ0JveCgpKTsKKyAgICB9CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgQ29ycmVjdGlvblBhbmVsSW5mbzo6UGFuZWxUeXBlUmV2ZXJzaW9uOiB7
CisgICAgICAgIG1fY29ycmVjdGlvblBhbmVsSW5mby5tX2lzQWN0aXZlID0gdHJ1ZTsKKyAgICAg
ICAgbV9jb3JyZWN0aW9uUGFuZWxJbmZvLm1fcmVwbGFjZWRTdHJpbmcgPSBwbGFpblRleHQobV9j
b3JyZWN0aW9uUGFuZWxJbmZvLm1fcmFuZ2VUb0JlUmVwbGFjZWQuZ2V0KCkpOworICAgICAgICBj
bGllbnQoKS0+c2hvd0NvcnJlY3Rpb25QYW5lbChtX2NvcnJlY3Rpb25QYW5lbEluZm8ubV9wYW5l
bFR5cGUsIGJvdW5kaW5nQm94Rm9yUmFuZ2UobV9jb3JyZWN0aW9uUGFuZWxJbmZvLm1fcmFuZ2VU
b0JlUmVwbGFjZWQuZ2V0KCkpLCBtX2NvcnJlY3Rpb25QYW5lbEluZm8ubV9yZXBsYWNlZFN0cmlu
ZywgbV9jb3JyZWN0aW9uUGFuZWxJbmZvLm1fcmVwbGFjZW1lbnRTdHJpbmcsIFZlY3RvcjxTdHJp
bmc+KCksIHRoaXMpOworICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDb3JyZWN0aW9u
UGFuZWxJbmZvOjpQYW5lbFR5cGVTcGVsbGluZ1N1Z2dlc3Rpb25zOiB7CisgICAgICAgIGlmIChw
bGFpblRleHQobV9jb3JyZWN0aW9uUGFuZWxJbmZvLm1fcmFuZ2VUb0JlUmVwbGFjZWQuZ2V0KCkp
ICE9IG1fY29ycmVjdGlvblBhbmVsSW5mby5tX3JlcGxhY2VkU3RyaW5nKQorICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIFN0cmluZyBwYXJhZ3JhcGhUZXh0ID0gcGxhaW5UZXh0KFRleHRDaGVj
a2luZ1BhcmFncmFwaChtX2NvcnJlY3Rpb25QYW5lbEluZm8ubV9yYW5nZVRvQmVSZXBsYWNlZCku
cGFyYWdyYXBoUmFuZ2UoKS5nZXQoKSk7CisgICAgICAgIFZlY3RvcjxTdHJpbmc+IHN1Z2dlc3Rp
b25zOworICAgICAgICBjbGllbnQoKS0+Z2V0R3Vlc3Nlc0ZvcldvcmQobV9jb3JyZWN0aW9uUGFu
ZWxJbmZvLm1fcmVwbGFjZWRTdHJpbmcsIHBhcmFncmFwaFRleHQsIHN1Z2dlc3Rpb25zKTsKKyAg
ICAgICAgaWYgKHN1Z2dlc3Rpb25zLmlzRW1wdHkoKSkKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBTdHJpbmcgdG9wU3VnZ2VzdGlvbiA9IHN1Z2dlc3Rpb25zLmZpcnN0KCk7CisgICAgICAg
IHN1Z2dlc3Rpb25zLnJlbW92ZSgwKTsKICAgICAgICAgbV9jb3JyZWN0aW9uUGFuZWxJbmZvLm1f
aXNBY3RpdmUgPSB0cnVlOwotICAgICAgICBtX2NvcnJlY3Rpb25QYW5lbEluZm8ubV9yZXBsYWNl
ZFN0cmluZyA9IGN1cnJlbnRXb3JkOwotICAgICAgICBjbGllbnQoKS0+c2hvd0NvcnJlY3Rpb25Q
YW5lbChtX2NvcnJlY3Rpb25QYW5lbEluZm8ubV9wYW5lbFR5cGUsIHRvdGFsQm91bmRpbmdCb3gs
IG1fY29ycmVjdGlvblBhbmVsSW5mby5tX3JlcGxhY2VkU3RyaW5nLCBtX2NvcnJlY3Rpb25QYW5l
bEluZm8ubV9yZXBsYWNlbWVudFN0cmluZywgdGhpcyk7CisgICAgICAgIGNsaWVudCgpLT5zaG93
Q29ycmVjdGlvblBhbmVsKG1fY29ycmVjdGlvblBhbmVsSW5mby5tX3BhbmVsVHlwZSwgYm91bmRp
bmdCb3hGb3JSYW5nZShtX2NvcnJlY3Rpb25QYW5lbEluZm8ubV9yYW5nZVRvQmVSZXBsYWNlZC5n
ZXQoKSksIG1fY29ycmVjdGlvblBhbmVsSW5mby5tX3JlcGxhY2VkU3RyaW5nLCB0b3BTdWdnZXN0
aW9uLCBzdWdnZXN0aW9ucywgdGhpcyk7CisgICAgfQorICAgICAgICBicmVhazsKICAgICB9CiAj
ZW5kaWYKIH0KIAotdm9pZCBFZGl0b3I6OmhhbmRsZVJlamVjdGVkQ29ycmVjdGlvbigpCit2b2lk
IEVkaXRvcjo6aGFuZGxlQ29ycmVjdGlvblBhbmVsUmVzdWx0KGNvbnN0IFN0cmluZyYgY29ycmVj
dGlvbikKIHsKICAgICBSYW5nZSogcmVwbGFjZWRSYW5nZSA9IG1fY29ycmVjdGlvblBhbmVsSW5m
by5tX3JhbmdlVG9CZVJlcGxhY2VkLmdldCgpOwogICAgIGlmICghcmVwbGFjZWRSYW5nZSB8fCBt
X2ZyYW1lLT5kb2N1bWVudCgpICE9IHJlcGxhY2VkUmFuZ2UtPm93bmVyRG9jdW1lbnQoKSkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgaWYgKG1fY29ycmVjdGlvblBhbmVsSW5mby5tX3BhbmVsVHlw
ZSA9PSBDb3JyZWN0aW9uUGFuZWxJbmZvOjpQYW5lbFR5cGVDb3JyZWN0aW9uKQorICAgIFN0cmlu
ZyBjdXJyZW50V29yZCA9IHBsYWluVGV4dChtX2NvcnJlY3Rpb25QYW5lbEluZm8ubV9yYW5nZVRv
QmVSZXBsYWNlZC5nZXQoKSk7CisgICAgLy8gQ2hlY2sgdG8gc2VlIGlmIHRoZSB3b3JkIHdlIGFy
ZSBhYm91dCB0byBjb3JyZWN0IGhhcyBiZWVuIGNoYW5nZWQgYmV0d2VlbiB0aW1lciBmaXJpbmcg
YW5kIGNhbGxiYWNrIGJlaW5nIHRyaWdnZXJlZC4KKyAgICBpZiAoY3VycmVudFdvcmQgIT0gbV9j
b3JyZWN0aW9uUGFuZWxJbmZvLm1fcmVwbGFjZWRTdHJpbmcpCisgICAgICAgIHJldHVybjsKKwor
ICAgIG1fY29ycmVjdGlvblBhbmVsSW5mby5tX2lzQWN0aXZlID0gZmFsc2U7CisKKyAgICBzd2l0
Y2ggKG1fY29ycmVjdGlvblBhbmVsSW5mby5tX3BhbmVsVHlwZSkgeworICAgIGNhc2UgQ29ycmVj
dGlvblBhbmVsSW5mbzo6UGFuZWxUeXBlQ29ycmVjdGlvbjoKICAgICAgICAgcmVwbGFjZWRSYW5n
ZS0+c3RhcnRDb250YWluZXIoKS0+ZG9jdW1lbnQoKS0+bWFya2VycygpLT5hZGRNYXJrZXIocmVw
bGFjZWRSYW5nZSwgRG9jdW1lbnRNYXJrZXI6OlJlamVjdGVkQ29ycmVjdGlvbiwgbV9jb3JyZWN0
aW9uUGFuZWxJbmZvLm1fcmVwbGFjZWRTdHJpbmcpOwotICAgIGVsc2UgewotICAgICAgICBtX2Nv
cnJlY3Rpb25QYW5lbEluZm8ubV9pc0FjdGl2ZSA9IGZhbHNlOwotICAgICAgICBhcHBseUNvcnJl
Y3Rpb25QYW5lbEluZm8oZmFsc2UpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENvcnJlY3Rp
b25QYW5lbEluZm86OlBhbmVsVHlwZVJldmVyc2lvbjoKKyAgICAgICAgYXBwbHlDb3JyZWN0aW9u
UGFuZWxJbmZvKG1hcmtlclR5cGVzRm9yUmVwbGFjZW1lbnQoKSk7CisgICAgY2FzZSBDb3JyZWN0
aW9uUGFuZWxJbmZvOjpQYW5lbFR5cGVTcGVsbGluZ1N1Z2dlc3Rpb25zOgorICAgICAgICBpZiAo
Y29ycmVjdGlvbi5sZW5ndGgoKSkgeworICAgICAgICAgICAgbV9jb3JyZWN0aW9uUGFuZWxJbmZv
Lm1fcmVwbGFjZW1lbnRTdHJpbmcgPSBjb3JyZWN0aW9uOworICAgICAgICAgICAgYXBwbHlDb3Jy
ZWN0aW9uUGFuZWxJbmZvKG1hcmtlclR5cGVzRm9yUmVwbGFjZW1lbnQoKSk7CisgICAgICAgIH0K
KyAgICAgICAgYnJlYWs7CiAgICAgfQorCiAgICAgbV9jb3JyZWN0aW9uUGFuZWxJbmZvLm1fcmFu
Z2VUb0JlUmVwbGFjZWQuY2xlYXIoKTsKIH0KIApAQCAtMjQ3NSw2ICsyNTM4LDcgQEAgdm9pZCBF
ZGl0b3I6OnN0b3BDb3JyZWN0aW9uUGFuZWxUaW1lcigpCiB7CiAjaWYgU1VQUE9SVF9BVVRPQ09S
UkVDVElPTl9QQU5FTAogICAgIG1fY29ycmVjdGlvblBhbmVsVGltZXIuc3RvcCgpOworICAgIG1f
Y29ycmVjdGlvblBhbmVsSW5mby5tX3JhbmdlVG9CZVJlcGxhY2VkLmNsZWFyKCk7CiAjZW5kaWYK
IH0KIApAQCAtMjUwNCw3ICsyNTY4LDYgQEAgdm9pZCBFZGl0b3I6OmRpc21pc3NDb3JyZWN0aW9u
UGFuZWwoQ29ycgogICAgIGlmICghbV9jb3JyZWN0aW9uUGFuZWxJbmZvLm1faXNBY3RpdmUpCiAg
ICAgICAgIHJldHVybjsKICAgICBtX2NvcnJlY3Rpb25QYW5lbEluZm8ubV9pc0FjdGl2ZSA9IGZh
bHNlOwotICAgIG1fY29ycmVjdGlvblBhbmVsSW5mby5tX3JhbmdlVG9CZVJlcGxhY2VkLmNsZWFy
KCk7CiAgICAgaWYgKGNsaWVudCgpKQogICAgICAgICBjbGllbnQoKS0+ZGlzbWlzc0NvcnJlY3Rp
b25QYW5lbChjb3JyZWN0aW9uV2FzUmVqZWN0ZWRPck5vdCk7CiAjZWxzZQpAQCAtMjYwOCw3ICsy
NjcxLDcgQEAgdm9pZCBFZGl0b3I6OnJlbW92ZVNwZWxsQW5kQ29ycmVjdGlvbk1hcgogICAgICAg
ICBkb2N1bWVudC0+bWFya2VycygpLT5yZW1vdmVNYXJrZXJzKHBhaXJJdGVyYXRvci0+Zmlyc3Qu
Z2V0KCksIHBhaXJJdGVyYXRvci0+c2Vjb25kKTsKIH0KIAotdm9pZCBFZGl0b3I6OmFwcGx5Q29y
cmVjdGlvblBhbmVsSW5mbyhib29sIGFkZENvcnJlY3Rpb25JbmRpY2F0b3JNYXJrZXIpCit2b2lk
IEVkaXRvcjo6YXBwbHlDb3JyZWN0aW9uUGFuZWxJbmZvKGNvbnN0IFZlY3RvcjxEb2N1bWVudE1h
cmtlcjo6TWFya2VyVHlwZT4mIG1hcmtlclR5cGVzVG9BZGQpCiB7CiAgICAgaWYgKCFtX2NvcnJl
Y3Rpb25QYW5lbEluZm8ubV9yYW5nZVRvQmVSZXBsYWNlZCkKICAgICAgICAgcmV0dXJuOwpAQCAt
MjY0OSw5ICsyNzEyLDEwIEBAIHZvaWQgRWRpdG9yOjphcHBseUNvcnJlY3Rpb25QYW5lbEluZm8o
Ym8KICAgICAgICAgY2FyZXRQb3NpdGlvbi5tb3ZlVG9PZmZzZXQoY2FyZXRQb3NpdGlvbi5vZmZz
ZXRJbkNvbnRhaW5lck5vZGUoKSArIG1fY29ycmVjdGlvblBhbmVsSW5mby5tX3JlcGxhY2VtZW50
U3RyaW5nLmxlbmd0aCgpIC0gbV9jb3JyZWN0aW9uUGFuZWxJbmZvLm1fcmVwbGFjZWRTdHJpbmcu
bGVuZ3RoKCkpOwogICAgICAgICBzZXRFbmQocGFyYWdyYXBoUmFuZ2VDb250YWluaW5nQ29ycmVj
dGlvbi5nZXQoKSwgZW5kT2ZQYXJhZ3JhcGgoY2FyZXRQb3NpdGlvbikpOwogICAgICAgICBSZWZQ
dHI8UmFuZ2U+IHJlcGxhY2VtZW50UmFuZ2UgPSBUZXh0SXRlcmF0b3I6OnN1YnJhbmdlKHBhcmFn
cmFwaFJhbmdlQ29udGFpbmluZ0NvcnJlY3Rpb24uZ2V0KCksIGNvcnJlY3Rpb25TdGFydE9mZnNl
dEluUGFyYWdyYXBoLCBtX2NvcnJlY3Rpb25QYW5lbEluZm8ubV9yZXBsYWNlbWVudFN0cmluZy5s
ZW5ndGgoKSk7Ci0gICAgICAgIHJlcGxhY2VtZW50UmFuZ2UtPnN0YXJ0Q29udGFpbmVyKCktPmRv
Y3VtZW50KCktPm1hcmtlcnMoKS0+YWRkTWFya2VyKHJlcGxhY2VtZW50UmFuZ2UuZ2V0KCksIERv
Y3VtZW50TWFya2VyOjpSZXBsYWNlbWVudCwgbV9jb3JyZWN0aW9uUGFuZWxJbmZvLm1fcmVwbGFj
ZW1lbnRTdHJpbmcpOwotICAgICAgICBpZiAoYWRkQ29ycmVjdGlvbkluZGljYXRvck1hcmtlcikK
LSAgICAgICAgICAgIHJlcGxhY2VtZW50UmFuZ2UtPnN0YXJ0Q29udGFpbmVyKCktPmRvY3VtZW50
KCktPm1hcmtlcnMoKS0+YWRkTWFya2VyKHJlcGxhY2VtZW50UmFuZ2UuZ2V0KCksIERvY3VtZW50
TWFya2VyOjpDb3JyZWN0aW9uSW5kaWNhdG9yLCBtX2NvcnJlY3Rpb25QYW5lbEluZm8ubV9yZXBs
YWNlZFN0cmluZyk7CisgICAgICAgIERvY3VtZW50TWFya2VyQ29udHJvbGxlciogbWFya2VycyA9
IHJlcGxhY2VtZW50UmFuZ2UtPnN0YXJ0Q29udGFpbmVyKCktPmRvY3VtZW50KCktPm1hcmtlcnMo
KTsKKyAgICAgICAgc2l6ZV90IHNpemUgPSBtYXJrZXJUeXBlc1RvQWRkLnNpemUoKTsKKyAgICAg
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplOyArK2kpCisgICAgICAgICAgICBtYXJrZXJz
LT5hZGRNYXJrZXIocmVwbGFjZW1lbnRSYW5nZS5nZXQoKSwgbWFya2VyVHlwZXNUb0FkZFtpXSwg
bV9jb3JyZWN0aW9uUGFuZWxJbmZvLm1fcmVwbGFjZW1lbnRTdHJpbmcpOwogICAgICAgICBtX2Zy
YW1lLT5zZWxlY3Rpb24oKS0+bW92ZVRvKGNhcmV0UG9zaXRpb24sIGZhbHNlKTsKICAgICB9CiB9
CkluZGV4OiBXZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9l
ZGl0aW5nL0VkaXRvci5oCShyZXZpc2lvbiA3MjgyNSkKKysrIFdlYkNvcmUvZWRpdGluZy9FZGl0
b3IuaAkod29ya2luZyBjb3B5KQpAQCAtMzEzLDcgKzMxMyw4IEBAIHB1YmxpYzoKIAogICAgIHZv
aWQgaGFuZGxlQ2FuY2VsT3BlcmF0aW9uKCk7CiAgICAgdm9pZCBzdGFydENvcnJlY3Rpb25QYW5l
bFRpbWVyKENvcnJlY3Rpb25QYW5lbEluZm86OlBhbmVsVHlwZSk7Ci0gICAgdm9pZCBoYW5kbGVS
ZWplY3RlZENvcnJlY3Rpb24oKTsKKyAgICAvLyBJZiB1c2VyIGNvbmZpcm1lZCBhIGNvcnJlY3Rp
b24gaW4gdGhlIGNvcnJlY3Rpb24gcGFuZWwsIGNvcnJlY3Rpb24gaGFzIG5vbi16ZXJvIGxlbmd0
aCwgb3RoZXJ3aXNlIGl0IG1lYW5zIHRoYXQgdXNlciBoYXMgZGlzbWlzc2VkIHRoZSBwYW5lbC4K
KyAgICB2b2lkIGhhbmRsZUNvcnJlY3Rpb25QYW5lbFJlc3VsdChjb25zdCBTdHJpbmcmIGNvcnJl
Y3Rpb24pOwogICAgIGJvb2wgaXNTaG93aW5nQ29ycmVjdGlvblBhbmVsKCk7CiAKICAgICB2b2lk
IHBhc3RlQXNGcmFnbWVudChQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+LCBib29sIHNtYXJ0
UmVwbGFjZSwgYm9vbCBtYXRjaFN0eWxlKTsKQEAgLTQwNiw3ICs0MDcsNyBAQCBwcml2YXRlOgog
ICAgIE5vZGUqIGZpbmRFdmVudFRhcmdldEZyb21TZWxlY3Rpb24oKSBjb25zdDsKICAgICB2b2lk
IHN0b3BDb3JyZWN0aW9uUGFuZWxUaW1lcigpOwogICAgIHZvaWQgZGlzbWlzc0NvcnJlY3Rpb25Q
YW5lbChDb3JyZWN0aW9uV2FzUmVqZWN0ZWRPck5vdCk7Ci0gICAgdm9pZCBhcHBseUNvcnJlY3Rp
b25QYW5lbEluZm8oYm9vbCBhZGRDb3JyZWN0aW9uSW5kaWNhdG9yTWFya2VyKTsKKyAgICB2b2lk
IGFwcGx5Q29ycmVjdGlvblBhbmVsSW5mbyhjb25zdCBWZWN0b3I8RG9jdW1lbnRNYXJrZXI6Ok1h
cmtlclR5cGU+JiBtYXJrZXJUeXBlc1RvQWRkKTsKIH07CiAKIGlubGluZSB2b2lkIEVkaXRvcjo6
c2V0U3RhcnROZXdLaWxsUmluZ1NlcXVlbmNlKGJvb2wgZmxhZykKSW5kZXg6IFdlYkNvcmUvZWRp
dGluZy9UZXh0Q2hlY2tpbmdIZWxwZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZWRpdGlu
Zy9UZXh0Q2hlY2tpbmdIZWxwZXIuY3BwCShyZXZpc2lvbiA3MjgyNSkKKysrIFdlYkNvcmUvZWRp
dGluZy9UZXh0Q2hlY2tpbmdIZWxwZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NDEsNyArNTQx
LDcgQEAgVmVjdG9yPFN0cmluZz4gVGV4dENoZWNraW5nSGVscGVyOjpndWVzcwogICAgICAgICBp
ZiAocmVzdWx0LT50eXBlID09IFRleHRDaGVja2luZ1R5cGVTcGVsbGluZyAmJiBwYXJhZ3JhcGgu
Y2hlY2tpbmdSYW5nZU1hdGNoZXMocmVzdWx0LT5sb2NhdGlvbiwgcmVzdWx0LT5sZW5ndGgpKSB7
CiAgICAgICAgICAgICBTdHJpbmcgbWlzc3BlbGxlZFdvcmQgPSBwYXJhZ3JhcGguY2hlY2tpbmdT
dWJzdHJpbmcoKTsKICAgICAgICAgICAgIEFTU0VSVChtaXNzcGVsbGVkV29yZC5sZW5ndGgoKSk7
Ci0gICAgICAgICAgICBtX2NsaWVudC0+Z2V0R3Vlc3Nlc0ZvcldvcmQobWlzc3BlbGxlZFdvcmQs
IGd1ZXNzZXMpOworICAgICAgICAgICAgbV9jbGllbnQtPmdldEd1ZXNzZXNGb3JXb3JkKG1pc3Nw
ZWxsZWRXb3JkLCBTdHJpbmcoKSwgZ3Vlc3Nlcyk7CiAgICAgICAgICAgICBtX2NsaWVudC0+dXBk
YXRlU3BlbGxpbmdVSVdpdGhNaXNzcGVsbGVkV29yZChtaXNzcGVsbGVkV29yZCk7CiAgICAgICAg
ICAgICBtaXNzcGVsbGVkID0gdHJ1ZTsKICAgICAgICAgICAgIHJldHVybiBndWVzc2VzOwpJbmRl
eDogV2ViQ29yZS9lZGl0aW5nL1RleHRDaGVja2luZ0hlbHBlci5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvZWRpdGluZy9UZXh0Q2hlY2tpbmdIZWxwZXIuaAkocmV2aXNpb24gNzI4MjUpCisrKyBX
ZWJDb3JlL2VkaXRpbmcvVGV4dENoZWNraW5nSGVscGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTU1
LDExICs1NSwxMSBAQCBwdWJsaWM6CiAgICAgYm9vbCBjaGVja2luZ1JhbmdlTWF0Y2hlcyhpbnQg
bG9jYXRpb24sIGludCBsZW5ndGgpIGNvbnN0IHsgcmV0dXJuIGxvY2F0aW9uID09IGNoZWNraW5n
U3RhcnQoKSAmJiBsZW5ndGggPT0gY2hlY2tpbmdMZW5ndGgoKTsgfQogICAgIGJvb2wgaXNDaGVj
a2luZ1JhbmdlQ292ZXJlZEJ5KGludCBsb2NhdGlvbiwgaW50IGxlbmd0aCkgY29uc3QgeyByZXR1
cm4gbG9jYXRpb24gPD0gY2hlY2tpbmdTdGFydCgpICYmIGxvY2F0aW9uICsgbGVuZ3RoID49IGNo
ZWNraW5nU3RhcnQoKSArIGNoZWNraW5nTGVuZ3RoKCk7IH0KICAgICBib29sIGNoZWNraW5nUmFu
Z2VDb3ZlcnMoaW50IGxvY2F0aW9uLCBpbnQgbGVuZ3RoKSBjb25zdCB7IHJldHVybiBsb2NhdGlv
biA8IGNoZWNraW5nRW5kKCkgJiYgbG9jYXRpb24gKyBsZW5ndGggPiBjaGVja2luZ1N0YXJ0KCk7
IH0KKyAgICBQYXNzUmVmUHRyPFJhbmdlPiBwYXJhZ3JhcGhSYW5nZSgpIGNvbnN0OwogCiBwcml2
YXRlOgogICAgIHZvaWQgaW52YWxpZGF0ZVBhcmFncmFwaFJhbmdlVmFsdWVzKCk7CiAgICAgUGFz
c1JlZlB0cjxSYW5nZT4gY2hlY2tpbmdSYW5nZSgpIGNvbnN0IHsgcmV0dXJuIG1fY2hlY2tpbmdS
YW5nZTsgfQotICAgIFBhc3NSZWZQdHI8UmFuZ2U+IHBhcmFncmFwaFJhbmdlKCkgY29uc3Q7CiAg
ICAgUGFzc1JlZlB0cjxSYW5nZT4gb2Zmc2V0QXNSYW5nZSgpIGNvbnN0OwogICAgIGNvbnN0IFN0
cmluZyYgdGV4dCgpIGNvbnN0OwogCkluZGV4OiBXZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAkocmV2aXNpb24g
NzI4MjUpCisrKyBXZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAkod29ya2luZyBjb3B5KQpA
QCAtNDgwLDcgKzQ4MCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgY2hlY2tUZXh0T2ZQ
YXJhZ3JhcGgoY29uc3QgVUNoYXIqLCBpbnQsIHVpbnQ2NF90LCBWZWN0b3I8VGV4dENoZWNraW5n
UmVzdWx0PiYpIHsgfTsKICNlbmRpZgogI2lmIFNVUFBPUlRfQVVUT0NPUlJFQ1RJT05fUEFORUwK
LSAgICB2aXJ0dWFsIHZvaWQgc2hvd0NvcnJlY3Rpb25QYW5lbChDb3JyZWN0aW9uUGFuZWxJbmZv
OjpQYW5lbFR5cGUsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmlu
ZyYsIEVkaXRvciopIHsgfQorICAgIHZpcnR1YWwgdm9pZCBzaG93Q29ycmVjdGlvblBhbmVsKENv
cnJlY3Rpb25QYW5lbEluZm86OlBhbmVsVHlwZSwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgU3Ry
aW5nJiwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmVjdG9yPFN0cmluZz4mLCBFZGl0b3IqKSB7IH0K
ICAgICB2aXJ0dWFsIHZvaWQgZGlzbWlzc0NvcnJlY3Rpb25QYW5lbChDb3JyZWN0aW9uV2FzUmVq
ZWN0ZWRPck5vdCkgeyB9CiAgICAgdmlydHVhbCBib29sIGlzU2hvd2luZ0NvcnJlY3Rpb25QYW5l
bCgpIHsgcmV0dXJuIGZhbHNlOyB9CiAjZW5kaWYKQEAgLTQ4OCw3ICs0ODgsNyBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVNwZWxsaW5nVUlXaXRoTWlzc3BlbGxlZFdvcmQoY29u
c3QgU3RyaW5nJikgeyB9CiAgICAgdmlydHVhbCB2b2lkIHNob3dTcGVsbGluZ1VJKGJvb2wpIHsg
fQogICAgIHZpcnR1YWwgYm9vbCBzcGVsbGluZ1VJSXNTaG93aW5nKCkgeyByZXR1cm4gZmFsc2U7
IH0KLSAgICB2aXJ0dWFsIHZvaWQgZ2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgU3RyaW5nJiwgVmVj
dG9yPFN0cmluZz4mKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZ2V0R3Vlc3Nlc0ZvcldvcmQoY29u
c3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgVmVjdG9yPFN0cmluZz4mKSB7IH0KICAgICB2aXJ0
dWFsIHZvaWQgd2lsbFNldElucHV0TWV0aG9kU3RhdGUoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQg
c2V0SW5wdXRNZXRob2RTdGF0ZShib29sKSB7IH0KIApJbmRleDogV2ViQ29yZS9tYW51YWwtdGVz
dHMvYXV0b2NvcnJlY3Rpb24vZGlzbWlzcy1tdWx0aXBsZS1ndWVzc2VzLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9tYW51YWwtdGVzdHMvYXV0b2NvcnJlY3Rpb24vZGlzbWlzcy1tdWx0aXBs
ZS1ndWVzc2VzLmh0bWwJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL21hbnVhbC10ZXN0cy9hdXRv
Y29ycmVjdGlvbi9kaXNtaXNzLW11bHRpcGxlLWd1ZXNzZXMuaHRtbAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSw0OSBAQAorPGh0bWw+Cis8aGVhZD4KKworPHN0eWxlPgorLmVkaXRpbmcgeworICAg
IGJvcmRlcjogMnB4IHNvbGlkIHJlZDsKKyAgICBwYWRkaW5nOiAxMnB4OworICAgIGZvbnQtc2l6
ZTogMjRweDsKK30KKzwvc3R5bGU+Cis8c2NyaXB0IHNyYz0uLi8uLi8uLi9MYXlvdXRUZXN0cy9l
ZGl0aW5nL2VkaXRpbmcuanMgbGFuZ3VhZ2U9IkphdmFTY3JpcHQiIHR5cGU9InRleHQvSmF2YVNj
cmlwdCIgPjwvc2NyaXB0PgorCis8c2NyaXB0PgorZnVuY3Rpb24gZWRpdGluZ1Rlc3QoKSB7Cisg
ICAgdHlwZUNoYXJhY3RlckNvbW1hbmQoJ3QnKTsKKyAgICB0eXBlQ2hhcmFjdGVyQ29tbWFuZCgn
aCcpOworICAgIHR5cGVDaGFyYWN0ZXJDb21tYW5kKCdlJyk7CisgICAgdHlwZUNoYXJhY3RlckNv
bW1hbmQoJyAnKTsKKyAgICB0eXBlQ2hhcmFjdGVyQ29tbWFuZCgnbScpOworICAgIHR5cGVDaGFy
YWN0ZXJDb21tYW5kKCdlJyk7CisgICAgdHlwZUNoYXJhY3RlckNvbW1hbmQoJ3MnKTsKKyAgICB0
eXBlQ2hhcmFjdGVyQ29tbWFuZCgnYScpOworICAgIHR5cGVDaGFyYWN0ZXJDb21tYW5kKCdlJyk7
CisgICAgdHlwZUNoYXJhY3RlckNvbW1hbmQoJ2cnKTsKKyAgICB0eXBlQ2hhcmFjdGVyQ29tbWFu
ZCgnZScpOworICAgIHR5cGVDaGFyYWN0ZXJDb21tYW5kKCdlJyk7CisgICAgdHlwZUNoYXJhY3Rl
ckNvbW1hbmQoJyAnKTsKKyAgICBleGVjTW92ZVNlbGVjdGlvbkJhY2t3YXJkQnlDaGFyYWN0ZXJD
b21tYW5kKCk7Cit9CisKKzwvc2NyaXB0PgorCis8dGl0bGU+RGlzbWlzcyBNdWx0aXBsZSBHdWVz
c2VzIFRlc3Q8L3RpdGxlPgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2PjxwPlRoaXMgdGVzdCB2ZXJp
ZmllcyB0aGF0IHByZXNzaW5nIEVTQyBrZXkgZGl1c21pc3NlcyBtdWx0aXBsZSBndWVzc2VzIHBh
bmVsIGNvcnJlY3RseTwvcD4KKzxwPkFmdGVyIHNlZWluZyB0aGUgcGFuZWwgd2l0aCBtdWx0aXBs
ZSBjYW5kaWRhdGVzLCBwcmVzc2luZyBFU0Mga2V5IHRvIGRpc21pc3MgdGhlIHBhbmVsLjwvcD4K
KzxwICBzdHlsZT0iY29sb3I6Z3JlZW4iPk5vdGUsIHRoaXMgdGVzdCBjYW4gZmFpbCBkdWUgdG8g
dXNlciBzcGVjaWZpYyBzcGVsbCBjaGVja2luZyBkYXRhLiBUbyBmaXggdGhpcywgcmVtb3ZlIGFs
bCBmaWxlcyBpbiB+L0xpYnJhcnkvU3BlbGxpbmcsIHRoZW4ga2lsbCBBcHBsZVNwZWxsLnNlcnZp
Y2UgcHJvY2Vzcy48L3A+Cis8ZGl2IGNvbnRlbnRlZGl0YWJsZSBpZD0icm9vdCIgY2xhc3M9ImVk
aXRpbmciPgorPHNwYW4gaWQ9InRlc3QiPjwvc3Bhbj4KKzwvZGl2PgorCisKKzxzY3JpcHQ+City
dW5FZGl0aW5nVGVzdCgpOworPC9zY3JpcHQ+CisKKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IFdl
YkNvcmUvbWFudWFsLXRlc3RzL2F1dG9jb3JyZWN0aW9uL3NlbGVjdC1mcm9tLW11bHRpcGxlLWd1
ZXNzZXMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL21hbnVhbC10ZXN0cy9hdXRvY29ycmVj
dGlvbi9zZWxlY3QtZnJvbS1tdWx0aXBsZS1ndWVzc2VzLmh0bWwJKHJldmlzaW9uIDApCisrKyBX
ZWJDb3JlL21hbnVhbC10ZXN0cy9hdXRvY29ycmVjdGlvbi9zZWxlY3QtZnJvbS1tdWx0aXBsZS1n
dWVzc2VzLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDkgQEAKKzxodG1sPgorPGhlYWQ+
CisKKzxzdHlsZT4KKy5lZGl0aW5nIHsKKyAgICBib3JkZXI6IDJweCBzb2xpZCByZWQ7CisgICAg
cGFkZGluZzogMTJweDsKKyAgICBmb250LXNpemU6IDI0cHg7Cit9Cis8L3N0eWxlPgorPHNjcmlw
dCBzcmM9Li4vLi4vLi4vTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0aW5nLmpzIGxhbmd1YWdlPSJK
YXZhU2NyaXB0IiB0eXBlPSJ0ZXh0L0phdmFTY3JpcHQiID48L3NjcmlwdD4KKworPHNjcmlwdD4K
K2Z1bmN0aW9uIGVkaXRpbmdUZXN0KCkgeworICAgIHR5cGVDaGFyYWN0ZXJDb21tYW5kKCd0Jyk7
CisgICAgdHlwZUNoYXJhY3RlckNvbW1hbmQoJ2gnKTsKKyAgICB0eXBlQ2hhcmFjdGVyQ29tbWFu
ZCgnZScpOworICAgIHR5cGVDaGFyYWN0ZXJDb21tYW5kKCcgJyk7CisgICAgdHlwZUNoYXJhY3Rl
ckNvbW1hbmQoJ20nKTsKKyAgICB0eXBlQ2hhcmFjdGVyQ29tbWFuZCgnZScpOworICAgIHR5cGVD
aGFyYWN0ZXJDb21tYW5kKCdzJyk7CisgICAgdHlwZUNoYXJhY3RlckNvbW1hbmQoJ2EnKTsKKyAg
ICB0eXBlQ2hhcmFjdGVyQ29tbWFuZCgnZScpOworICAgIHR5cGVDaGFyYWN0ZXJDb21tYW5kKCdn
Jyk7CisgICAgdHlwZUNoYXJhY3RlckNvbW1hbmQoJ2UnKTsKKyAgICB0eXBlQ2hhcmFjdGVyQ29t
bWFuZCgnZScpOworICAgIHR5cGVDaGFyYWN0ZXJDb21tYW5kKCcgJyk7CisgICAgZXhlY01vdmVT
ZWxlY3Rpb25CYWNrd2FyZEJ5Q2hhcmFjdGVyQ29tbWFuZCgpOworfQorCis8L3NjcmlwdD4KKwor
PHRpdGxlPlNlbGVjdCBGcm9tIE11bHRpcGxlIEd1ZXNzZXMgVGVzdDwvdGl0bGU+Cis8L2hlYWQ+
Cis8Ym9keT4KKzxkaXY+PHA+VGhpcyB0ZXN0IHZlcmlmaWVzIHRoYXQgbXVsdGlwbGUgZ3Vlc3Nl
cyBvbiBtaXNwZWxsZWQgd29yZCBpcyB3b3JraW5nIGNvcnJlY3RseTwvcD4KKzxwPkFmdGVyIHNl
ZWluZyB0aGUgcGFuZWwgd2l0aCBtdWx0aXBsZSBjYW5kaWRhdGVzLCB1c2UgbGVmdCBhbmQvb3Ig
cmlnaHQgYXJyb3cga2V5IHRvIHNlbGVjdCB0aGUgZGVzaXJlZCBjYW5kaWRhdGUsIGFuZCB0aGVu
IHVzZSByZXR1cm4ga2V5IHRvIGNvbmZpcm0uIFlvdSBjYW4gYWxzbyB1c2UgdGhpcyB0ZXN0IHRv
IHRlc3QgdGhhdCBwcmVzc2luZyBFU0Mga2V5IHdpbGwgZGlzbWlzcyB0aGUgcGFuZWwuPC9wPgor
PHAgIHN0eWxlPSJjb2xvcjpncmVlbiI+Tm90ZSwgdGhpcyB0ZXN0IGNhbiBmYWlsIGR1ZSB0byB1
c2VyIHNwZWNpZmljIHNwZWxsIGNoZWNraW5nIGRhdGEuIFRvIGZpeCB0aGlzLCByZW1vdmUgYWxs
IGZpbGVzIGluIH4vTGlicmFyeS9TcGVsbGluZywgdGhlbiBraWxsIEFwcGxlU3BlbGwuc2Vydmlj
ZSBwcm9jZXNzLjwvcD4KKzxkaXYgY29udGVudGVkaXRhYmxlIGlkPSJyb290IiBjbGFzcz0iZWRp
dGluZyI+Cis8c3BhbiBpZD0idGVzdCI+PC9zcGFuPgorPC9kaXY+CisKKworPHNjcmlwdD4KK3J1
bkVkaXRpbmdUZXN0KCk7Cis8L3NjcmlwdD4KKworPC9ib2R5PgorPC9odG1sPgpJbmRleDogV2Vi
Q29yZS9wYWdlL0VkaXRvckNsaWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9FZGl0
b3JDbGllbnQuaAkocmV2aXNpb24gNzI4MjUpCisrKyBXZWJDb3JlL3BhZ2UvRWRpdG9yQ2xpZW50
LmgJKHdvcmtpbmcgY29weSkKQEAgLTE5MCw3ICsxOTAsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAog
I2lmIFNVUFBPUlRfQVVUT0NPUlJFQ1RJT05fUEFORUwKLSAgICB2aXJ0dWFsIHZvaWQgc2hvd0Nv
cnJlY3Rpb25QYW5lbChDb3JyZWN0aW9uUGFuZWxJbmZvOjpQYW5lbFR5cGUsIGNvbnN0IEZsb2F0
UmVjdCYgYm91bmRpbmdCb3hPZlJlcGxhY2VkU3RyaW5nLCBjb25zdCBTdHJpbmcmIHJlcGxhY2Vk
U3RyaW5nLCBjb25zdCBTdHJpbmcmIHJlcGxhY21lbnRTdHJpbmcsIEVkaXRvciopID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgc2hvd0NvcnJlY3Rpb25QYW5lbChDb3JyZWN0aW9uUGFuZWxJbmZvOjpQ
YW5lbFR5cGUsIGNvbnN0IEZsb2F0UmVjdCYgYm91bmRpbmdCb3hPZlJlcGxhY2VkU3RyaW5nLCBj
b25zdCBTdHJpbmcmIHJlcGxhY2VkU3RyaW5nLCBjb25zdCBTdHJpbmcmIHJlcGxhY21lbnRTdHJp
bmcsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBhbHRlcm5hdGl2ZVJlcGxhY2VtZW50U3RyaW5ncywg
RWRpdG9yKikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaXNtaXNzQ29ycmVjdGlvblBhbmVsKENv
cnJlY3Rpb25XYXNSZWplY3RlZE9yTm90KSA9IDA7CiAgICAgdmlydHVhbCBib29sIGlzU2hvd2lu
Z0NvcnJlY3Rpb25QYW5lbCgpID0gMDsKICNlbmRpZgpAQCAtMTk5LDcgKzE5OSw4IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlU3BlbGxpbmdVSVdpdGhNaXNzcGVsbGVkV29yZChj
b25zdCBTdHJpbmcmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNob3dTcGVsbGluZ1VJKGJvb2wg
c2hvdykgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBzcGVsbGluZ1VJSXNTaG93aW5nKCkgPSAwOwot
ICAgIHZpcnR1YWwgdm9pZCBnZXRHdWVzc2VzRm9yV29yZChjb25zdCBTdHJpbmcmLCBWZWN0b3I8
U3RyaW5nPiYgZ3Vlc3NlcykgPSAwOworICAgIC8vIEZvciBzcGVsbGNoZWNrZXJzIHRoYXQgc3Vw
cG9ydCBtdWx0aXBsZSBsYW5ndWFnZXMsIGl0J3Mgb2Z0ZW4gaW1wb3J0YW50IHRvIGJlIGFibGUg
dG8gaWRlbnRpZnkgdGhlIGxhbmd1YWdlIGluIG9yZGVyIHRvIHByb3ZpZGUgbW9yZSBhY2N1cmF0
ZSBjb3JyZWN0aW9uIHN1Z2dlc3Rpb25zLiBDYWxsZXIgY2FuIHBhc3MgaW4gbW9yZSB0ZXh0IGlu
ICJjb250ZXh0IiB0byBhaWQgc3VjaCBzcGVsbGNoZWNrZXJzIG9uIGxhbmd1YWdlIGlkZW50aWZp
Y2F0aW9uLiBOb3JhbWxseSBpdCdzIHRoZSB0ZXh0IHN1cnJvdW5kaW5nIHRoZSAid29yZCIgZm9y
IHdoaWNoIHdlIGFyZSBnZXR0aW5nIGNvcnJlY3Rpb24gc3VnZ2VzdGlvbnMuCisgICAgdmlydHVh
bCB2b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYgd29yZCwgY29uc3QgU3RyaW5n
JiBjb250ZXh0LCBWZWN0b3I8U3RyaW5nPiYgZ3Vlc3NlcykgPSAwOwogICAgIHZpcnR1YWwgdm9p
ZCB3aWxsU2V0SW5wdXRNZXRob2RTdGF0ZSgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5w
dXRNZXRob2RTdGF0ZShib29sIGVuYWJsZWQpID0gMDsKIH07CkluZGV4OiBXZWJLaXQyL0NoYW5n
ZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL0NoYW5nZUxvZwkocmV2aXNpb24gNzI4MjUpCisr
KyBXZWJLaXQyL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDEw
LTExLTI5ICBKaWEgUHUgIDxqcHVAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFN1cHBvcnQgbXVsdGlwbGUgY29ycmVjdGlvbiBjYW5k
aWRhdGVzIHBhbmVsIGZvciBtaXNzcGVsbGVkIHdvcmQgb24gTWFjIE9TIFguCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MDEzNworICAgICAgICA8cmRh
cjovL3Byb2JsZW0vODU2ODA1OT4KKworICAgICAgICBBZG9wdGVkIG5ldyBmdW5jdGlvbiBzaWdu
YXR1cmVzIGRlZmluZWQgaW4gYmFzZSBjbGFzcy4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRWRp
dG9yQ2xpZW50OjpnZXRHdWVzc2VzRm9yV29yZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L21hYy9XZWJFZGl0b3JDbGllbnRNYWMubW06CisgICAgICAgIChXZWJLaXQ6Oldl
YkVkaXRvckNsaWVudDo6c2hvd0NvcnJlY3Rpb25QYW5lbCk6CisKIDIwMTAtMTEtMjkgIEJhbGF6
cyBLZWxlbWVuICA8a2JhbGF6c0B3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFk
YW0gUm9iZW4uCkluZGV4OiBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRp
dG9yQ2xpZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcAkocmV2aXNpb24gNzI4MjUpCisrKyBXZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMzkzLDcgKzM5Myw3IEBAIGJvb2wgV2ViRWRpdG9yQ2xpZW50OjpzcGVsbGluZ1VJSXNT
aG93aW4KICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgV2ViRWRpdG9yQ2xpZW50OjpnZXRH
dWVzc2VzRm9yV29yZChjb25zdCBTdHJpbmcmLCBWZWN0b3I8U3RyaW5nPiYpCit2b2lkIFdlYkVk
aXRvckNsaWVudDo6Z2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5n
JiwgVmVjdG9yPFN0cmluZz4mKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CkluZGV4OiBX
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVu
dC5oCShyZXZpc2lvbiA3MjgyNSkKKysrIFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJFZGl0b3JDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMTMwLDExICsxMzAsMTEgQEAg
cHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlU3BlbGxpbmdVSVdpdGhNaXNzcGVsbGVk
V29yZChjb25zdCBTdHJpbmcmKTsKICAgICB2aXJ0dWFsIHZvaWQgc2hvd1NwZWxsaW5nVUkoYm9v
bCBzaG93KTsKICAgICB2aXJ0dWFsIGJvb2wgc3BlbGxpbmdVSUlzU2hvd2luZygpOwotICAgIHZp
cnR1YWwgdm9pZCBnZXRHdWVzc2VzRm9yV29yZChjb25zdCBTdHJpbmcmLCBWZWN0b3I8U3RyaW5n
PiYgZ3Vlc3Nlcyk7CisgICAgdmlydHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0
cmluZyYgd29yZCwgY29uc3QgU3RyaW5nJiBjb250ZXh0LCBWZWN0b3I8U3RyaW5nPiYgZ3Vlc3Nl
cyk7CiAgICAgdmlydHVhbCB2b2lkIHdpbGxTZXRJbnB1dE1ldGhvZFN0YXRlKCk7CiAgICAgdmly
dHVhbCB2b2lkIHNldElucHV0TWV0aG9kU3RhdGUoYm9vbCBlbmFibGVkKTsKICNpZiBQTEFURk9S
TShNQUMpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1RJR0VSKSAmJiAhZGVmaW5lZChCVUlMRElO
R19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCi0gICAg
dmlydHVhbCB2b2lkIHNob3dDb3JyZWN0aW9uUGFuZWwoV2ViQ29yZTo6Q29ycmVjdGlvblBhbmVs
SW5mbzo6UGFuZWxUeXBlLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGJvdW5kaW5nQm94T2ZS
ZXBsYWNlZFN0cmluZywgY29uc3QgU3RyaW5nJiByZXBsYWNlZFN0cmluZywgY29uc3QgU3RyaW5n
JiByZXBsYWNlbWVudFN0cmluZywgV2ViQ29yZTo6RWRpdG9yKik7CisgICAgdmlydHVhbCB2b2lk
IHNob3dDb3JyZWN0aW9uUGFuZWwoV2ViQ29yZTo6Q29ycmVjdGlvblBhbmVsSW5mbzo6UGFuZWxU
eXBlLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGJvdW5kaW5nQm94T2ZSZXBsYWNlZFN0cmlu
ZywgY29uc3QgU3RyaW5nJiByZXBsYWNlZFN0cmluZywgY29uc3QgU3RyaW5nJiByZXBsYWNlbWVu
dFN0cmluZywgY29uc3QgVmVjdG9yPFN0cmluZz4mIGFsdGVybmF0aXZlUmVwbGFjZW1lbnRTdHJp
bmdzLCBXZWJDb3JlOjpFZGl0b3IqKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlzbWlzc0NvcnJlY3Rp
b25QYW5lbChXZWJDb3JlOjpDb3JyZWN0aW9uV2FzUmVqZWN0ZWRPck5vdCk7CiAgICAgdmlydHVh
bCBib29sIGlzU2hvd2luZ0NvcnJlY3Rpb25QYW5lbCgpOwogI2VuZGlmCkluZGV4OiBXZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkVkaXRvckNsaWVudE1hYy5tbQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkVkaXRv
ckNsaWVudE1hYy5tbQkocmV2aXNpb24gNzI4MjUpCisrKyBXZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvbWFjL1dlYkVkaXRvckNsaWVudE1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAt
MjIzLDcgKzIyMyw3IEBAIHZvaWQgV2ViRWRpdG9yQ2xpZW50OjpjaGVja1RleHRPZlBhcmFncmEK
ICNlbmRpZgogCiAjaWYgIWRlZmluZWQoQlVJTERJTkdfT05fVElHRVIpICYmICFkZWZpbmVkKEJV
SUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkK
LXZvaWQgV2ViRWRpdG9yQ2xpZW50OjpzaG93Q29ycmVjdGlvblBhbmVsKFdlYkNvcmU6OkNvcnJl
Y3Rpb25QYW5lbEluZm86OlBhbmVsVHlwZSB0eXBlLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3Qm
IGJvdW5kaW5nQm94T2ZSZXBsYWNlZFN0cmluZywgY29uc3QgV1RGOjpTdHJpbmcmIHJlcGxhY2Vk
U3RyaW5nLCBjb25zdCBXVEY6OlN0cmluZyYgcmVwbGFjZW1lbnRTdHJpbmcsIFdlYkNvcmU6OkVk
aXRvciopCit2b2lkIFdlYkVkaXRvckNsaWVudDo6c2hvd0NvcnJlY3Rpb25QYW5lbChXZWJDb3Jl
OjpDb3JyZWN0aW9uUGFuZWxJbmZvOjpQYW5lbFR5cGUgdHlwZSwgY29uc3QgV2ViQ29yZTo6Rmxv
YXRSZWN0JiBib3VuZGluZ0JveE9mUmVwbGFjZWRTdHJpbmcsIGNvbnN0IFdURjo6U3RyaW5nJiBy
ZXBsYWNlZFN0cmluZywgY29uc3QgV1RGOjpTdHJpbmcmIHJlcGxhY2VtZW50U3RyaW5nLCBjb25z
dCBWZWN0b3I8U3RyaW5nPiYgYWx0ZXJuYXRpdmVSZXBsYWNlbWVudFN0cmluZ3MsIFdlYkNvcmU6
OkVkaXRvciopCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KSW5kZXg6IFdlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwko
cmV2aXNpb24gNzI4MjUpCisrKyBXZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTAtMTEtMjkgIEppYSBQdSAgPGpwdUBhcHBsZS5jb20+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3VwcG9y
dCBtdWx0aXBsZSBjb3JyZWN0aW9uIGNhbmRpZGF0ZXMgcGFuZWwgZm9yIG1pc3NwZWxsZWQgd29y
ZCBvbiBNYWMgT1MgWC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTUwMTM3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NTY4MDU5PgorCisgICAgICAg
IEFkb3B0ZWQgbmV3IGZ1bmN0aW9uIHNpZ25hdHVyZSBkZWZpbmVkIGluIGJhc2UgY2xhc3MuCisK
KyAgICAgICAgKiBzcmMvRWRpdG9yQ2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkVk
aXRvckNsaWVudEltcGw6OmdldEd1ZXNzZXNGb3JXb3JkKToKKyAgICAgICAgKiBzcmMvRWRpdG9y
Q2xpZW50SW1wbC5oOgorCiAyMDEwLTExLTI5ICBBbmRyZXkgS29zeWFrb3YgIDxjYXNlcUBjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gRmlzaGVyLgpJbmRleDogV2Vi
S2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGllbnRJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJL
aXQvY2hyb21pdW0vc3JjL0VkaXRvckNsaWVudEltcGwuY3BwCShyZXZpc2lvbiA3MjgyNSkKKysr
IFdlYktpdC9jaHJvbWl1bS9zcmMvRWRpdG9yQ2xpZW50SW1wbC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTkyOSw3ICs5MjksOCBAQCBib29sIEVkaXRvckNsaWVudEltcGw6OnNwZWxsaW5nVUlJc1No
b3dpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi12b2lkIEVkaXRvckNsaWVudEltcGw6OmdldEd1
ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYsCit2b2lkIEVkaXRvckNsaWVudEltcGw6OmdldEd1
ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYgd29yZCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nJiBjb250ZXh0LAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBXVEY6OlZlY3RvcjxTdHJpbmc+JiBndWVzc2VzKQog
ewogICAgIG5vdEltcGxlbWVudGVkKCk7CkluZGV4OiBXZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRv
ckNsaWVudEltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRvckNs
aWVudEltcGwuaAkocmV2aXNpb24gNzI4MjUpCisrKyBXZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRv
ckNsaWVudEltcGwuaAkod29ya2luZyBjb3B5KQpAQCAtMTA3LDYgKzEwNyw3IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIHZvaWQgc2hvd1NwZWxsaW5nVUkoYm9vbCBzaG93KTsKICAgICB2aXJ0dWFs
IGJvb2wgc3BlbGxpbmdVSUlzU2hvd2luZygpOwogICAgIHZpcnR1YWwgdm9pZCBnZXRHdWVzc2Vz
Rm9yV29yZChjb25zdCBXVEY6OlN0cmluZyYgd29yZCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY29uc3QgV1RGOjpTdHJpbmcmIGNvbnRleHQsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFdURjo6VmVjdG9yPFdURjo6U3RyaW5nPiYgZ3Vlc3Nlcyk7CiAg
ICAgdmlydHVhbCB2b2lkIHdpbGxTZXRJbnB1dE1ldGhvZFN0YXRlKCk7CiAgICAgdmlydHVhbCB2
b2lkIHNldElucHV0TWV0aG9kU3RhdGUoYm9vbCBlbmFibGVkKTsKSW5kZXg6IFdlYktpdC9lZmwv
Q2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9lZmwvQ2hhbmdlTG9nCShyZXZpc2lvbiA3
MjgyNSkKKysrIFdlYktpdC9lZmwvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEs
MTcgQEAKKzIwMTAtMTEtMjkgIEppYSBQdSAgPGpwdUBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3VwcG9ydCBtdWx0aXBsZSBjb3Jy
ZWN0aW9uIGNhbmRpZGF0ZXMgcGFuZWwgZm9yIG1pc3NwZWxsZWQgd29yZCBvbiBNYWMgT1MgWC4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUwMTM3Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NTY4MDU5PgorCisgICAgICAgIEFkb3B0ZWQgbmV3IGZ1
bmN0aW9uIHNpZ25hdHVyZSBkZWZpbmVkIGluIGJhc2UgY2xhc3MuCisKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9FZGl0b3JDbGllbnRFZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9y
Q2xpZW50RWZsOjpnZXRHdWVzc2VzRm9yV29yZCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQv
RWRpdG9yQ2xpZW50RWZsLmg6CisKIDIwMTAtMTEtMjIgIEFsZXggR3JpbG8gIDxhYmdyaWxvQHBy
b2Z1c2lvbi5tb2JpPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEtlbm5ldGggUm9oZGUgQ2hyaXN0
aWFuc2VuLgpJbmRleDogV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRFZmwu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50
RWZsLmNwcAkocmV2aXNpb24gNzI4MjUpCisrKyBXZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Vk
aXRvckNsaWVudEVmbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ4OCw3ICs0ODgsNyBAQCBib29s
IEVkaXRvckNsaWVudEVmbDo6c3BlbGxpbmdVSUlzU2hvd2luCiAgICAgcmV0dXJuIGZhbHNlOwog
fQogCi12b2lkIEVkaXRvckNsaWVudEVmbDo6Z2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgU3RyaW5n
JiwgVmVjdG9yPFN0cmluZz4mKQordm9pZCBFZGl0b3JDbGllbnRFZmw6OmdldEd1ZXNzZXNGb3JX
b3JkKGNvbnN0IFN0cmluZyYgd29yZCwgY29uc3QgU3RyaW5nJiBjb250ZXh0LCBWZWN0b3I8U3Ry
aW5nPiYgZ3Vlc3NlcykKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQpJbmRleDogV2ViS2l0
L2VmbC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRFZmwuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJL
aXQvZWZsL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEVmbC5oCShyZXZpc2lvbiA3MjgyNSkK
KysrIFdlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50RWZsLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTExMCw3ICsxMTAsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0
ZVNwZWxsaW5nVUlXaXRoTWlzc3BlbGxlZFdvcmQoY29uc3QgU3RyaW5nJik7CiAgICAgdmlydHVh
bCB2b2lkIHNob3dTcGVsbGluZ1VJKGJvb2wgc2hvdyk7CiAgICAgdmlydHVhbCBib29sIHNwZWxs
aW5nVUlJc1Nob3dpbmcoKTsKLSAgICB2aXJ0dWFsIHZvaWQgZ2V0R3Vlc3Nlc0ZvcldvcmQoY29u
c3QgU3RyaW5nJiwgV1RGOjpWZWN0b3I8U3RyaW5nPiYgZ3Vlc3Nlcyk7CisgICAgdmlydHVhbCB2
b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYgd29yZCwgY29uc3QgU3RyaW5nJiBj
b250ZXh0LCBXVEY6OlZlY3RvcjxTdHJpbmc+JiBndWVzc2VzKTsKICAgICB2aXJ0dWFsIHZvaWQg
d2lsbFNldElucHV0TWV0aG9kU3RhdGUoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5wdXRNZXRo
b2RTdGF0ZShib29sIGVuYWJsZWQpOwogCkluZGV4OiBXZWJLaXQvZ3RrL0NoYW5nZUxvZwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJLaXQvZ3RrL0NoYW5nZUxvZwkocmV2aXNpb24gNzI4MjUpCisrKyBXZWJL
aXQvZ3RrL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBACisyMDEwLTEx
LTI5ICBKaWEgUHUgIDxqcHVAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFN1cHBvcnQgbXVsdGlwbGUgY29ycmVjdGlvbiBjYW5kaWRh
dGVzIHBhbmVsIGZvciBtaXNzcGVsbGVkIHdvcmQgb24gTWFjIE9TIFguCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MDEzNworICAgICAgICA8cmRhcjov
L3Byb2JsZW0vODU2ODA1OT4KKworICAgICAgICBBZG9wdGVkIG5ldyBmdW5jdGlvbiBzaWduYXR1
cmUgZGVmaW5lZCBpbiBiYXNlIGNsYXNzLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRp
dG9yQ2xpZW50R3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50OjpnZXRHdWVz
c2VzRm9yV29yZCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmg6
CisKIDIwMTAtMTEtMjkgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IFhhbiBMb3Blei4KSW5kZXg6IFdlYktpdC9ndGsvV2Vi
Q29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3Rr
L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5jcHAJKHJldmlzaW9uIDcyODI1KQorKysg
V2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xMDA4LDcgKzEwMDgsNyBAQCBib29sIEVkaXRvckNsaWVudDo6c3BlbGxpbmdVSUlz
U2hvd2luZygpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi12b2lkIEVkaXRvckNsaWVudDo6Z2V0
R3Vlc3Nlc0ZvcldvcmQoY29uc3QgU3RyaW5nJiB3b3JkLCBXVEY6OlZlY3RvcjxTdHJpbmc+JiBn
dWVzc2VzKQordm9pZCBFZGl0b3JDbGllbnQ6OmdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmlu
ZyYgd29yZCwgY29uc3QgU3RyaW5nJiBjb250ZXh0LCBXVEY6OlZlY3RvcjxTdHJpbmc+JiBndWVz
c2VzKQogewogICAgIEdTTGlzdCogZGljdHMgPSB3ZWJraXRfd2ViX3NldHRpbmdzX2dldF9lbmNo
YW50X2RpY3RzKG1fd2ViVmlldyk7CiAgICAgZ3Vlc3Nlcy5jbGVhcigpOwpJbmRleDogV2ViS2l0
L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJL
aXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5oCShyZXZpc2lvbiA3MjgyNSkK
KysrIFdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTEyOSw3ICsxMjksNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKICAgICAgICAgdmly
dHVhbCB2b2lkIHVwZGF0ZVNwZWxsaW5nVUlXaXRoTWlzc3BlbGxlZFdvcmQoY29uc3QgV1RGOjpT
dHJpbmcmKTsKICAgICAgICAgdmlydHVhbCB2b2lkIHNob3dTcGVsbGluZ1VJKGJvb2wgc2hvdyk7
CiAgICAgICAgIHZpcnR1YWwgYm9vbCBzcGVsbGluZ1VJSXNTaG93aW5nKCk7Ci0gICAgICAgIHZp
cnR1YWwgdm9pZCBnZXRHdWVzc2VzRm9yV29yZChjb25zdCBXVEY6OlN0cmluZyYsIFdURjo6VmVj
dG9yPFdURjo6U3RyaW5nPiYgZ3Vlc3Nlcyk7CisgICAgICAgIHZpcnR1YWwgdm9pZCBnZXRHdWVz
c2VzRm9yV29yZChjb25zdCBXVEY6OlN0cmluZyYgd29yZCwgY29uc3QgV1RGOjpTdHJpbmcmIGNv
bnRleHQsIFdURjo6VmVjdG9yPFdURjo6U3RyaW5nPiYgZ3Vlc3Nlcyk7CiAgICAgICAgIHZpcnR1
YWwgdm9pZCB3aWxsU2V0SW5wdXRNZXRob2RTdGF0ZSgpOwogICAgICAgICB2aXJ0dWFsIHZvaWQg
c2V0SW5wdXRNZXRob2RTdGF0ZShib29sIGVuYWJsZWQpOwogCkluZGV4OiBXZWJLaXQvaGFpa3Uv
Q2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9oYWlrdS9DaGFuZ2VMb2cJKHJldmlzaW9u
IDcyODI1KQorKysgV2ViS2l0L2hhaWt1L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDE3IEBACisyMDEwLTExLTI5ICBKaWEgUHUgIDxqcHVAYXBwbGUuY29tPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN1cHBvcnQgbXVsdGlwbGUg
Y29ycmVjdGlvbiBjYW5kaWRhdGVzIHBhbmVsIGZvciBtaXNzcGVsbGVkIHdvcmQgb24gTWFjIE9T
IFguCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MDEz
NworICAgICAgICA8cmRhcjovL3Byb2JsZW0vODU2ODA1OT4KKworICAgICAgICBBZG9wdGVkIG5l
dyBmdW5jdGlvbiBzaWduYXR1cmUgZGVmaW5lZCBpbiBiYXNlIGNsYXNzLgorCisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50SGFpa3UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RWRpdG9yQ2xpZW50SGFpa3U6OmdldEd1ZXNzZXNGb3JXb3JkKToKKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9FZGl0b3JDbGllbnRIYWlrdS5oOgorCiAyMDEwLTExLTA4ICBBbGV4ZXkgUHJvc2t1
cnlha292ICA8YXBAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVy
LgpJbmRleDogV2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEhhaWt1LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJLaXQvaGFpa3UvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50
SGFpa3UuY3BwCShyZXZpc2lvbiA3MjgyNSkKKysrIFdlYktpdC9oYWlrdS9XZWJDb3JlU3VwcG9y
dC9FZGl0b3JDbGllbnRIYWlrdS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ2MSw3ICs0NjEsNyBA
QCBib29sIEVkaXRvckNsaWVudEhhaWt1OjpzcGVsbGluZ1VJSXNTaG93CiAgICAgcmV0dXJuIGZh
bHNlOwogfQogCi12b2lkIEVkaXRvckNsaWVudEhhaWt1OjpnZXRHdWVzc2VzRm9yV29yZChjb25z
dCBTdHJpbmcmLCBWZWN0b3I8U3RyaW5nPiYpCit2b2lkIEVkaXRvckNsaWVudEhhaWt1OjpnZXRH
dWVzc2VzRm9yV29yZChjb25zdCBTdHJpbmcmIHdvcmQsIGNvbnN0IFN0cmluZyYgY29udGV4dCwg
VmVjdG9yPFN0cmluZz4mIGd1ZXNzZXMpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KSW5k
ZXg6IFdlYktpdC9oYWlrdS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRIYWlrdS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYktpdC9oYWlrdS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRIYWlrdS5o
CShyZXZpc2lvbiA3MjgyNSkKKysrIFdlYktpdC9oYWlrdS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JD
bGllbnRIYWlrdS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDcsNyArMTA3LDcgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlU3BlbGxpbmdVSVdpdGhNaXNz
cGVsbGVkV29yZChjb25zdCBTdHJpbmcmKTsKICAgICAgICAgdmlydHVhbCB2b2lkIHNob3dTcGVs
bGluZ1VJKGJvb2wgc2hvdyk7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBzcGVsbGluZ1VJSXNTaG93
aW5nKCk7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBnZXRHdWVzc2VzRm9yV29yZChjb25zdCBTdHJp
bmcmLCBWZWN0b3I8U3RyaW5nPiYgZ3Vlc3Nlcyk7CisgICAgICAgIHZpcnR1YWwgdm9pZCBnZXRH
dWVzc2VzRm9yV29yZChjb25zdCBTdHJpbmcmIHdvcmQsIGNvbnN0IFN0cmluZyYgY29udGV4dCwg
VmVjdG9yPFN0cmluZz4mIGd1ZXNzZXMpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNldElu
cHV0TWV0aG9kU3RhdGUoKTsKICAgICAgICAgdmlydHVhbCB2b2lkIHNldElucHV0TWV0aG9kU3Rh
dGUoYm9vbCBlbmFibGVkKTsKIApJbmRleDogV2ViS2l0L21hYy9DaGFuZ2VMb2cKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDcyODI1KQorKysgV2ViS2l0L21h
Yy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMSBAQAorMjAxMC0xMS0yOSAg
SmlhIFB1ICA8anB1QGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBTdXBwb3J0IG11bHRpcGxlIGNvcnJlY3Rpb24gY2FuZGlkYXRlcyBw
YW5lbCBmb3IgbWlzc3BlbGxlZCB3b3JkIG9uIE1hYyBPUyBYLgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTAxMzcKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzg1NjgwNTk+CisKKyAgICAgICAgVGhpcyBwYXRjaCBpcyBmb3Igc3VwcG9ydGluZyBtdWx0
aXBsZSBjb3JyZWN0aW9uIHN1Z2dlc3Rpb24gcGFuZWwgb24gTWFjIE9TIFguCisgICAgICAgIFRo
ZSBiZWhhdmlvciBhbmQgaW1wbGVtZW50YXRpb24gaXMgc2ltaWxhciB0byB0aGF0IG9mIHJldmVy
c2lvbiBjYW5kaWF0ZSBwYW5lbC4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkVkaXRv
ckNsaWVudC5oOiBBZG9wdGVkIG5ldyBzaWduYXR1cmVzIGRlZmluZWQgaW4gYmFzZSBjbGFzcy4K
KworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbTogIEFkb3B0ZWQg
bmV3IHNpZ25hdHVyZXMgZGVmaW5lZCBpbiBiYXNlIGNsYXNzLgorICAgICAgICAgIEFkZGVkIGNv
ZGUgdG8gaGFuZGxlIG5ldyBtdWx0aXBsZSBzdWdnZXN0aW9uIGNhbmlkYXRlIHBhbmVsIHR5cGUu
CisgICAgICAgIChXZWJFZGl0b3JDbGllbnQ6OnNob3dDb3JyZWN0aW9uUGFuZWwpOgorICAgICAg
ICAoV2ViRWRpdG9yQ2xpZW50OjpnZXRHdWVzc2VzRm9yV29yZCk6CisKIDIwMTAtMTEtMjIgIFJ5
b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgVG9u
eSBDaGFuZy4KSW5kZXg6IFdlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGll
bnQuaAkocmV2aXNpb24gNzI4MjUpCisrKyBXZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVk
aXRvckNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMjksMTEgKzEyOSwxMSBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVNwZWxsaW5nVUlXaXRoTWlzc3BlbGxlZFdvcmQoY29u
c3QgV1RGOjpTdHJpbmcmKTsKICAgICB2aXJ0dWFsIHZvaWQgc2hvd1NwZWxsaW5nVUkoYm9vbCBz
aG93KTsKICAgICB2aXJ0dWFsIGJvb2wgc3BlbGxpbmdVSUlzU2hvd2luZygpOwotICAgIHZpcnR1
YWwgdm9pZCBnZXRHdWVzc2VzRm9yV29yZChjb25zdCBXVEY6OlN0cmluZyYsIFdURjo6VmVjdG9y
PFdURjo6U3RyaW5nPiYgZ3Vlc3Nlcyk7CisgICAgdmlydHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JX
b3JkKGNvbnN0IFdURjo6U3RyaW5nJiB3b3JkLCBjb25zdCBXVEY6OlN0cmluZyYgY29udGV4dCwg
V1RGOjpWZWN0b3I8V1RGOjpTdHJpbmc+JiBndWVzc2VzKTsKICAgICB2aXJ0dWFsIHZvaWQgd2ls
bFNldElucHV0TWV0aG9kU3RhdGUoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5wdXRNZXRob2RT
dGF0ZShib29sIGVuYWJsZWQpOwogI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1RJR0VSKSAmJiAh
ZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9X
X0xFT1BBUkQpCi0gICAgdmlydHVhbCB2b2lkIHNob3dDb3JyZWN0aW9uUGFuZWwoV2ViQ29yZTo6
Q29ycmVjdGlvblBhbmVsSW5mbzo6UGFuZWxUeXBlLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3Qm
IGJvdW5kaW5nQm94T2ZSZXBsYWNlZFN0cmluZywgY29uc3QgV1RGOjpTdHJpbmcmIHJlcGxhY2Vk
U3RyaW5nLCBjb25zdCBXVEY6OlN0cmluZyYgcmVwbGFjZW1lbnRTdHJpbmcsIFdlYkNvcmU6OkVk
aXRvciopOworICAgIHZpcnR1YWwgdm9pZCBzaG93Q29ycmVjdGlvblBhbmVsKFdlYkNvcmU6OkNv
cnJlY3Rpb25QYW5lbEluZm86OlBhbmVsVHlwZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBi
b3VuZGluZ0JveE9mUmVwbGFjZWRTdHJpbmcsIGNvbnN0IFdURjo6U3RyaW5nJiByZXBsYWNlZFN0
cmluZywgY29uc3QgV1RGOjpTdHJpbmcmIHJlcGxhY2VtZW50U3RyaW5nLCBjb25zdCBXVEY6OlZl
Y3RvcjxXVEY6OlN0cmluZz4mIGFsdGVybmF0aXZlUmVwbGFjZW1lbnRTdHJpbmdzLCBXZWJDb3Jl
OjpFZGl0b3IqKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlzbWlzc0NvcnJlY3Rpb25QYW5lbChXZWJD
b3JlOjpDb3JyZWN0aW9uV2FzUmVqZWN0ZWRPck5vdCk7CiAgICAgdmlydHVhbCBib29sIGlzU2hv
d2luZ0NvcnJlY3Rpb25QYW5lbCgpOwogI2VuZGlmCkluZGV4OiBXZWJLaXQvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvbWFjL1dlYkNv
cmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbQkocmV2aXNpb24gNzI4MjUpCisrKyBXZWJLaXQv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbQkod29ya2luZyBjb3B5KQpAQCAt
NzcsNiArNzcsMjIgQEAgdXNpbmcgbmFtZXNwYWNlIFdURjsKIAogdXNpbmcgbmFtZXNwYWNlIEhU
TUxOYW1lczsKIAorI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1RJR0VSKSAmJiAhZGVmaW5lZChC
VUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQp
CitzdGF0aWMgaW5saW5lIE5TQ29ycmVjdGlvbkJ1YmJsZVR5cGUgY29ycmVjdGlvbkJ1YmJsZVR5
cGUoQ29ycmVjdGlvblBhbmVsSW5mbzo6UGFuZWxUeXBlIHBhbmVsVHlwZSkKK3sKKyAgICBzd2l0
Y2ggKHBhbmVsVHlwZSkgeworICAgIGNhc2UgQ29ycmVjdGlvblBhbmVsSW5mbzo6UGFuZWxUeXBl
Q29ycmVjdGlvbjoKKyAgICAgICAgcmV0dXJuIE5TQ29ycmVjdGlvbkJ1YmJsZVR5cGVDb3JyZWN0
aW9uOworICAgIGNhc2UgQ29ycmVjdGlvblBhbmVsSW5mbzo6UGFuZWxUeXBlUmV2ZXJzaW9uOgor
ICAgICAgICByZXR1cm4gTlNDb3JyZWN0aW9uQnViYmxlVHlwZVJldmVyc2lvbjsKKyAgICBjYXNl
IENvcnJlY3Rpb25QYW5lbEluZm86OlBhbmVsVHlwZVNwZWxsaW5nU3VnZ2VzdGlvbnM6CisgICAg
ICAgIHJldHVybiBOU0NvcnJlY3Rpb25CdWJibGVUeXBlR3Vlc3NlczsKKyAgICB9CisgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIE5TQ29ycmVjdGlvbkJ1YmJsZVR5cGVDb3Jy
ZWN0aW9uOworfQorI2VuZGlmCisKIEBpbnRlcmZhY2UgTlNBdHRyaWJ1dGVkU3RyaW5nIChXZWJO
U0F0dHJpYnV0ZWRTdHJpbmdEZXRhaWxzKQogLSAoaWQpX2luaXRXaXRoRE9NUmFuZ2U6KERPTVJh
bmdlKilyYW5nZTsKIC0gKERPTURvY3VtZW50RnJhZ21lbnQqKV9kb2N1bWVudEZyb21SYW5nZToo
TlNSYW5nZSlyYW5nZSBkb2N1bWVudDooRE9NRG9jdW1lbnQqKWRvY3VtZW50IGRvY3VtZW50QXR0
cmlidXRlczooTlNEaWN0aW9uYXJ5ICopZGljdCBzdWJyZXNvdXJjZXM6KE5TQXJyYXkgKiopc3Vi
cmVzb3VyY2VzOwpAQCAtODU2LDcgKzg3Miw3IEBAIHZvaWQgV2ViRWRpdG9yQ2xpZW50Ojp1cGRh
dGVTcGVsbGluZ1VJV2kKIH0KIAogI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1RJR0VSKSAmJiAh
ZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9X
X0xFT1BBUkQpCi12b2lkIFdlYkVkaXRvckNsaWVudDo6c2hvd0NvcnJlY3Rpb25QYW5lbChXZWJD
b3JlOjpDb3JyZWN0aW9uUGFuZWxJbmZvOjpQYW5lbFR5cGUgcGFuZWxUeXBlLCBjb25zdCBGbG9h
dFJlY3QmIGJvdW5kaW5nQm94T2ZSZXBsYWNlZFN0cmluZywgY29uc3QgU3RyaW5nJiByZXBsYWNl
ZFN0cmluZywgY29uc3QgU3RyaW5nJiByZXBsYWNlbWVudFN0cmluZywgRWRpdG9yKiBlZGl0b3Ip
IHsKK3ZvaWQgV2ViRWRpdG9yQ2xpZW50OjpzaG93Q29ycmVjdGlvblBhbmVsKFdlYkNvcmU6OkNv
cnJlY3Rpb25QYW5lbEluZm86OlBhbmVsVHlwZSBwYW5lbFR5cGUsIGNvbnN0IEZsb2F0UmVjdCYg
Ym91bmRpbmdCb3hPZlJlcGxhY2VkU3RyaW5nLCBjb25zdCBTdHJpbmcmIHJlcGxhY2VkU3RyaW5n
LCBjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50U3RyaW5nLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYg
YWx0ZXJuYXRpdmVSZXBsYWNlbWVudFN0cmluZ3MsIEVkaXRvciogZWRpdG9yKSB7CiAgICAgZGlz
bWlzc0NvcnJlY3Rpb25QYW5lbChXZWJDb3JlOjpDb3JyZWN0aW9uV2FzTm90UmVqZWN0ZWQpOwog
CiAgICAgTlNSZWN0IGJvdW5kaW5nQm94QXNOU1JlY3QgPSBib3VuZGluZ0JveE9mUmVwbGFjZWRT
dHJpbmc7CkBAIC04NjgsMTQgKzg4NCwzNCBAQCB2b2lkIFdlYkVkaXRvckNsaWVudDo6c2hvd0Nv
cnJlY3Rpb25QYW5lCiAgICAgTlNTdHJpbmcgKnJlcGxhY2VtZW50U3RyaW5nQXNOU1N0cmluZyA9
IHJlcGxhY2VtZW50U3RyaW5nOwogCiAgICAgbV9jb3JyZWN0aW9uUGFuZWxJc1Nob3duID0gWUVT
OwotICAgIE5TQ29ycmVjdGlvbkJ1YmJsZVR5cGUgYnViYmxlVHlwZSA9IHBhbmVsVHlwZSA9PSBX
ZWJDb3JlOjpDb3JyZWN0aW9uUGFuZWxJbmZvOjpQYW5lbFR5cGVDb3JyZWN0aW9uID8gTlNDb3Jy
ZWN0aW9uQnViYmxlVHlwZUNvcnJlY3Rpb24gOiBOU0NvcnJlY3Rpb25CdWJibGVUeXBlUmV2ZXJz
aW9uOwotICAgIFtbTlNTcGVsbENoZWNrZXIgc2hhcmVkU3BlbGxDaGVja2VyXSBzaG93Q29ycmVj
dGlvbkJ1YmJsZU9mVHlwZTpidWJibGVUeXBlIHByaW1hcnlTdHJpbmc6cmVwbGFjZW1lbnRTdHJp
bmdBc05TU3RyaW5nIGFsdGVybmF0aXZlU3RyaW5nczpuaWwgZm9yU3RyaW5nSW5SZWN0OmJvdW5k
aW5nQm94QXNOU1JlY3QgdmlldzptX3dlYlZpZXcgY29tcGxldGlvbkhhbmRsZXI6XihOU1N0cmlu
ZyAqYWNjZXB0ZWRTdHJpbmcpIHsKLSAgICAgICAgaWYgKCFhY2NlcHRlZFN0cmluZyAmJiBidWJi
bGVUeXBlID09IE5TQ29ycmVjdGlvbkJ1YmJsZVR5cGVDb3JyZWN0aW9uKSB7Ci0gICAgICAgICAg
ICBbW05TU3BlbGxDaGVja2VyIHNoYXJlZFNwZWxsQ2hlY2tlcl0gcmVjb3JkUmVzcG9uc2U6TlND
b3JyZWN0aW9uUmVzcG9uc2VSZWplY3RlZCB0b0NvcnJlY3Rpb246cmVwbGFjZW1lbnRTdHJpbmdB
c05TU3RyaW5nIGZvcldvcmQ6cmVwbGFjZWRTdHJpbmdBc05TU3RyaW5nIGxhbmd1YWdlOm5pbCBp
blNwZWxsRG9jdW1lbnRXaXRoVGFnOlttX3dlYlZpZXcgc3BlbGxDaGVja2VyRG9jdW1lbnRUYWdd
XTsKLSAgICAgICAgICAgIGVkaXRvci0+aGFuZGxlUmVqZWN0ZWRDb3JyZWN0aW9uKCk7Ci0gICAg
ICAgIH0gZWxzZSBpZiAoYWNjZXB0ZWRTdHJpbmcgJiYgYnViYmxlVHlwZSA9PSBOU0NvcnJlY3Rp
b25CdWJibGVUeXBlUmV2ZXJzaW9uKSB7Ci0gICAgICAgICAgICBbW05TU3BlbGxDaGVja2VyIHNo
YXJlZFNwZWxsQ2hlY2tlcl0gcmVjb3JkUmVzcG9uc2U6TlNDb3JyZWN0aW9uUmVzcG9uc2VSZXZl
cnRlZCB0b0NvcnJlY3Rpb246cmVwbGFjZWRTdHJpbmdBc05TU3RyaW5nIGZvcldvcmQ6cmVwbGFj
ZW1lbnRTdHJpbmdBc05TU3RyaW5nIGxhbmd1YWdlOm5pbCBpblNwZWxsRG9jdW1lbnRXaXRoVGFn
OlttX3dlYlZpZXcgc3BlbGxDaGVja2VyRG9jdW1lbnRUYWddXTsKLSAgICAgICAgICAgIGVkaXRv
ci0+aGFuZGxlUmVqZWN0ZWRDb3JyZWN0aW9uKCk7CisgICAgTlNDb3JyZWN0aW9uQnViYmxlVHlw
ZSBidWJibGVUeXBlID0gY29ycmVjdGlvbkJ1YmJsZVR5cGUocGFuZWxUeXBlKTsKKyAgICBOU011
dGFibGVBcnJheSAqYWx0ZXJuYXRpdmVTdHJpbmdzID0gbmlsOworICAgIGlmICghYWx0ZXJuYXRp
dmVSZXBsYWNlbWVudFN0cmluZ3MuaXNFbXB0eSgpKSB7CisgICAgICAgIHNpemVfdCBzaXplID0g
YWx0ZXJuYXRpdmVSZXBsYWNlbWVudFN0cmluZ3Muc2l6ZSgpOworICAgICAgICBhbHRlcm5hdGl2
ZVN0cmluZ3MgPSBbTlNNdXRhYmxlQXJyYXkgYXJyYXlXaXRoQ2FwYWNpdHk6c2l6ZV07CisgICAg
ICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZTsgKytpKQorICAgICAgICAgICAgW2FsdGVy
bmF0aXZlU3RyaW5ncyBhZGRPYmplY3Q6KE5TU3RyaW5nKilhbHRlcm5hdGl2ZVJlcGxhY2VtZW50
U3RyaW5nc1tpXV07CisgICAgfQorCisgICAgW1tOU1NwZWxsQ2hlY2tlciBzaGFyZWRTcGVsbENo
ZWNrZXJdIHNob3dDb3JyZWN0aW9uQnViYmxlT2ZUeXBlOmJ1YmJsZVR5cGUgcHJpbWFyeVN0cmlu
ZzpyZXBsYWNlbWVudFN0cmluZ0FzTlNTdHJpbmcgYWx0ZXJuYXRpdmVTdHJpbmdzOmFsdGVybmF0
aXZlU3RyaW5ncyBmb3JTdHJpbmdJblJlY3Q6Ym91bmRpbmdCb3hBc05TUmVjdCB2aWV3Om1fd2Vi
VmlldyBjb21wbGV0aW9uSGFuZGxlcjpeKE5TU3RyaW5nICphY2NlcHRlZFN0cmluZykgeworICAg
ICAgICBzd2l0Y2ggKGJ1YmJsZVR5cGUpIHsKKyAgICAgICAgY2FzZSBOU0NvcnJlY3Rpb25CdWJi
bGVUeXBlQ29ycmVjdGlvbjoKKyAgICAgICAgICAgIGlmICghYWNjZXB0ZWRTdHJpbmcpIHsKKyAg
ICAgICAgICAgICAgICBbW05TU3BlbGxDaGVja2VyIHNoYXJlZFNwZWxsQ2hlY2tlcl0gcmVjb3Jk
UmVzcG9uc2U6TlNDb3JyZWN0aW9uUmVzcG9uc2VSZWplY3RlZCB0b0NvcnJlY3Rpb246cmVwbGFj
ZW1lbnRTdHJpbmdBc05TU3RyaW5nIGZvcldvcmQ6cmVwbGFjZWRTdHJpbmdBc05TU3RyaW5nIGxh
bmd1YWdlOm5pbCBpblNwZWxsRG9jdW1lbnRXaXRoVGFnOlttX3dlYlZpZXcgc3BlbGxDaGVja2Vy
RG9jdW1lbnRUYWddXTsKKyAgICAgICAgICAgICAgICBlZGl0b3ItPmhhbmRsZUNvcnJlY3Rpb25Q
YW5lbFJlc3VsdChTdHJpbmcoKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSBOU0NvcnJlY3Rpb25CdWJibGVUeXBlUmV2ZXJzaW9uOgorICAgICAgICAg
ICAgaWYgKGFjY2VwdGVkU3RyaW5nKSB7CisgICAgICAgICAgICAgICAgW1tOU1NwZWxsQ2hlY2tl
ciBzaGFyZWRTcGVsbENoZWNrZXJdIHJlY29yZFJlc3BvbnNlOk5TQ29ycmVjdGlvblJlc3BvbnNl
UmV2ZXJ0ZWQgdG9Db3JyZWN0aW9uOnJlcGxhY2VkU3RyaW5nQXNOU1N0cmluZyBmb3JXb3JkOnJl
cGxhY2VtZW50U3RyaW5nQXNOU1N0cmluZyBsYW5ndWFnZTpuaWwgaW5TcGVsbERvY3VtZW50V2l0
aFRhZzpbbV93ZWJWaWV3IHNwZWxsQ2hlY2tlckRvY3VtZW50VGFnXV07CisgICAgICAgICAgICAg
ICAgZWRpdG9yLT5oYW5kbGVDb3JyZWN0aW9uUGFuZWxSZXN1bHQoU3RyaW5nKCkpOworICAgICAg
ICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTlNDb3JyZWN0aW9uQnVi
YmxlVHlwZUd1ZXNzZXM6CisgICAgICAgICAgICBpZiAoYWNjZXB0ZWRTdHJpbmcpCisgICAgICAg
ICAgICAgICAgW1tOU1NwZWxsQ2hlY2tlciBzaGFyZWRTcGVsbENoZWNrZXJdIHJlY29yZFJlc3Bv
bnNlOk5TQ29ycmVjdGlvblJlc3BvbnNlQWNjZXB0ZWQgdG9Db3JyZWN0aW9uOmFjY2VwdGVkU3Ry
aW5nIGZvcldvcmQ6cmVwbGFjZWRTdHJpbmdBc05TU3RyaW5nIGxhbmd1YWdlOm5pbCBpblNwZWxs
RG9jdW1lbnRXaXRoVGFnOlttX3dlYlZpZXcgc3BlbGxDaGVja2VyRG9jdW1lbnRUYWddXTsKKyAg
ICAgICAgICAgIGVkaXRvci0+aGFuZGxlQ29ycmVjdGlvblBhbmVsUmVzdWx0KFN0cmluZyhhY2Nl
cHRlZFN0cmluZykpOworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICB9XTsKIH0K
QEAgLTkxNiwxMSArOTUyLDIyIEBAIGJvb2wgV2ViRWRpdG9yQ2xpZW50OjpzcGVsbGluZ1VJSXNT
aG93aW4KICAgICByZXR1cm4gW1tbTlNTcGVsbENoZWNrZXIgc2hhcmVkU3BlbGxDaGVja2VyXSBz
cGVsbGluZ1BhbmVsXSBpc1Zpc2libGVdOwogfQogCi12b2lkIFdlYkVkaXRvckNsaWVudDo6Z2V0
R3Vlc3Nlc0ZvcldvcmQoY29uc3QgU3RyaW5nJiB3b3JkLCBXVEY6OlZlY3RvcjxTdHJpbmc+JiBn
dWVzc2VzKQotewordm9pZCBXZWJFZGl0b3JDbGllbnQ6OmdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0
IFN0cmluZyYgd29yZCwgY29uc3QgU3RyaW5nJiBjb250ZXh0LCBWZWN0b3I8U3RyaW5nPiYgZ3Vl
c3NlcykgeworICAgIGd1ZXNzZXMuY2xlYXIoKTsKKyNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9U
SUdFUikgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJ
TkdfT05fU05PV19MRU9QQVJEKQorICAgIE5TU3RyaW5nKiBsYW5ndWFnZSA9IG5pbDsKKyAgICBO
U09ydGhvZ3JhcGh5KiBvcnRob2dyYXBoeSA9IG5pbDsKKyAgICBOU1NwZWxsQ2hlY2tlciAqY2hl
Y2tlciA9IFtOU1NwZWxsQ2hlY2tlciBzaGFyZWRTcGVsbENoZWNrZXJdOworICAgIGlmIChjb250
ZXh0Lmxlbmd0aCgpKSB7CisgICAgICAgIFtjaGVja2VyIGNoZWNrU3RyaW5nOmNvbnRleHQgcmFu
Z2U6TlNNYWtlUmFuZ2UoMCwgY29udGV4dC5sZW5ndGgoKSkgdHlwZXM6TlNUZXh0Q2hlY2tpbmdU
eXBlT3J0aG9ncmFwaHkgb3B0aW9uczowIGluU3BlbGxEb2N1bWVudFdpdGhUYWc6c3BlbGxDaGVj
a2VyRG9jdW1lbnRUYWcoKSBvcnRob2dyYXBoeTomb3J0aG9ncmFwaHkgd29yZENvdW50OjBdOwor
ICAgICAgICBsYW5ndWFnZSA9IFtjaGVja2VyIGxhbmd1YWdlRm9yV29yZFJhbmdlOk5TTWFrZVJh
bmdlKDAsIGNvbnRleHQubGVuZ3RoKCkpIGluU3RyaW5nOmNvbnRleHQgb3J0aG9ncmFwaHk6b3J0
aG9ncmFwaHldOworICAgIH0KKyAgICBOU0FycmF5KiBzdHJpbmdzQXJyYXkgPSBbY2hlY2tlciBn
dWVzc2VzRm9yV29yZFJhbmdlOk5TTWFrZVJhbmdlKDAsIHdvcmQubGVuZ3RoKCkpIGluU3RyaW5n
OndvcmQgbGFuZ3VhZ2U6bGFuZ3VhZ2UgaW5TcGVsbERvY3VtZW50V2l0aFRhZzpzcGVsbENoZWNr
ZXJEb2N1bWVudFRhZygpXTsKKyNlbHNlCiAgICAgTlNBcnJheSogc3RyaW5nc0FycmF5ID0gW1tO
U1NwZWxsQ2hlY2tlciBzaGFyZWRTcGVsbENoZWNrZXJdIGd1ZXNzZXNGb3JXb3JkOndvcmRdOwor
I2VuZGlmCiAgICAgdW5zaWduZWQgY291bnQgPSBbc3RyaW5nc0FycmF5IGNvdW50XTsKLSAgICBn
dWVzc2VzLmNsZWFyKCk7CisKICAgICBpZiAoY291bnQgPiAwKSB7CiAgICAgICAgIE5TRW51bWVy
YXRvciogZW51bWVyYXRvciA9IFtzdHJpbmdzQXJyYXkgb2JqZWN0RW51bWVyYXRvcl07CiAgICAg
ICAgIE5TU3RyaW5nKiBzdHJpbmc7CkluZGV4OiBXZWJLaXQvcXQvQ2hhbmdlTG9nCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYktpdC9xdC9DaGFuZ2VMb2cJKHJldmlzaW9uIDcyODI1KQorKysgV2ViS2l0L3F0
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBACisyMDEwLTExLTI5ICBK
aWEgUHUgIDxqcHVAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFN1cHBvcnQgbXVsdGlwbGUgY29ycmVjdGlvbiBjYW5kaWRhdGVzIHBh
bmVsIGZvciBtaXNzcGVsbGVkIHdvcmQgb24gTWFjIE9TIFguCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MDEzNworICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vODU2ODA1OT4KKworICAgICAgICBBZG9wdGVkIG5ldyBmdW5jdGlvbiBzaWduYXR1cmUgZGVm
aW5lZCBpbiBiYXNlIGNsYXNzLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xp
ZW50UXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50UXQ6OmdldEd1ZXNzZXNG
b3JXb3JkKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRRdC5oOgorCiAy
MDEwLTExLTI1ICBOb3JiZXJ0IExlc2VyICA8bm9yYmVydC5sZXNlckBub2tpYS5jb20+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgTGFzemxvIEdvbWJvcy4KSW5kZXg6IFdlYktpdC9xdC9XZWJDb3Jl
U3VwcG9ydC9FZGl0b3JDbGllbnRRdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3F0L1dlYkNv
cmVTdXBwb3J0L0VkaXRvckNsaWVudFF0LmNwcAkocmV2aXNpb24gNzI4MjUpCisrKyBXZWJLaXQv
cXQvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50UXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01
NTgsNyArNTU4LDcgQEAgYm9vbCBFZGl0b3JDbGllbnRRdDo6c3BlbGxpbmdVSUlzU2hvd2luZwog
ICAgIHJldHVybiBmYWxzZTsKIH0KIAotdm9pZCBFZGl0b3JDbGllbnRRdDo6Z2V0R3Vlc3Nlc0Zv
cldvcmQoY29uc3QgU3RyaW5nJiwgVmVjdG9yPFN0cmluZz4mKQordm9pZCBFZGl0b3JDbGllbnRR
dDo6Z2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgU3RyaW5nJiB3b3JkLCBjb25zdCBTdHJpbmcmIGNv
bnRleHQsIFZlY3RvcjxTdHJpbmc+JiBndWVzc2VzKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7
CiB9CkluZGV4OiBXZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50UXQuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50UXQuaAkocmV2
aXNpb24gNzI4MjUpCisrKyBXZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50UXQu
aAkod29ya2luZyBjb3B5KQpAQCAtMTA0LDcgKzEwNCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IHZvaWQgdXBkYXRlU3BlbGxpbmdVSVdpdGhNaXNzcGVsbGVkV29yZChjb25zdCBTdHJpbmcmKTsK
ICAgICB2aXJ0dWFsIHZvaWQgc2hvd1NwZWxsaW5nVUkoYm9vbCBzaG93KTsKICAgICB2aXJ0dWFs
IGJvb2wgc3BlbGxpbmdVSUlzU2hvd2luZygpOwotICAgIHZpcnR1YWwgdm9pZCBnZXRHdWVzc2Vz
Rm9yV29yZChjb25zdCBTdHJpbmcmLCBWZWN0b3I8U3RyaW5nPiYgZ3Vlc3Nlcyk7CisgICAgdmly
dHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYgd29yZCwgY29uc3QgU3Ry
aW5nJiBjb250ZXh0LCBWZWN0b3I8U3RyaW5nPiYgZ3Vlc3Nlcyk7CiAgICAgdmlydHVhbCB2b2lk
IHdpbGxTZXRJbnB1dE1ldGhvZFN0YXRlKCk7CiAgICAgdmlydHVhbCB2b2lkIHNldElucHV0TWV0
aG9kU3RhdGUoYm9vbCBlbmFibGVkKTsKIApJbmRleDogV2ViS2l0L3dpbi9DaGFuZ2VMb2cKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViS2l0L3dpbi9DaGFuZ2VMb2cJKHJldmlzaW9uIDcyODI1KQorKysgV2Vi
S2l0L3dpbi9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNyBAQAorMjAxMC0x
MS0yOSAgSmlhIFB1ICA8anB1QGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBTdXBwb3J0IG11bHRpcGxlIGNvcnJlY3Rpb24gY2FuZGlk
YXRlcyBwYW5lbCBmb3IgbWlzc3BlbGxlZCB3b3JkIG9uIE1hYyBPUyBYLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTAxMzcKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzg1NjgwNTk+CisKKyAgICAgICAgQWRvcHRlZCBuZXcgZnVuY3Rpb24gc2lnbmF0
dXJlIGRlZmluZWQgaW4gYmFzZSBjbGFzcy4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dl
YkVkaXRvckNsaWVudC5jcHA6CisgICAgICAgIChXZWJFZGl0b3JDbGllbnQ6OmdldEd1ZXNzZXNG
b3JXb3JkKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaDoKKwog
MjAxMC0xMS0yMiAgQWRhbSBSb2JlbiAgPGFyb2JlbkBhcHBsZS5jb20+CiAKICAgICAgICAgVXNl
IHBhdGhzIHJlbGF0aXZlIHRvICRXZWJLaXRWU1Byb3BzUmVkaXJlY3Rpb25EaXIgdG8gYWNjZXNz
IHNoYXJlZCAudnNwcm9wcyBmaWxlcwpJbmRleDogV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9X
ZWJFZGl0b3JDbGllbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC93aW4vV2ViQ29yZVN1cHBv
cnQvV2ViRWRpdG9yQ2xpZW50LmNwcAkocmV2aXNpb24gNzI4MjUpCisrKyBXZWJLaXQvd2luL1dl
YkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc1OCw3
ICs3NTgsNyBAQCBib29sIFdlYkVkaXRvckNsaWVudDo6c3BlbGxpbmdVSUlzU2hvd2luCiAgICAg
cmV0dXJuICEhc2hvd2luZzsKIH0KIAotdm9pZCBXZWJFZGl0b3JDbGllbnQ6OmdldEd1ZXNzZXNG
b3JXb3JkKGNvbnN0IFN0cmluZyYgd29yZCwgVmVjdG9yPFN0cmluZz4mIGd1ZXNzZXMpCit2b2lk
IFdlYkVkaXRvckNsaWVudDo6Z2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgU3RyaW5nJiB3b3JkLCBj
b25zdCBTdHJpbmcmIGNvbnRleHQsIFZlY3RvcjxTdHJpbmc+JiBndWVzc2VzKQogewogICAgIGd1
ZXNzZXMuY2xlYXIoKTsKIApJbmRleDogV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0
b3JDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkVk
aXRvckNsaWVudC5oCShyZXZpc2lvbiA3MjgyNSkKKysrIFdlYktpdC93aW4vV2ViQ29yZVN1cHBv
cnQvV2ViRWRpdG9yQ2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTEwNyw3ICsxMDcsNyBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVNwZWxsaW5nVUlXaXRoTWlzc3BlbGxlZFdv
cmQoY29uc3QgV1RGOjpTdHJpbmcmKTsKICAgICB2aXJ0dWFsIHZvaWQgc2hvd1NwZWxsaW5nVUko
Ym9vbCBzaG93KTsKICAgICB2aXJ0dWFsIGJvb2wgc3BlbGxpbmdVSUlzU2hvd2luZygpOwotICAg
IHZpcnR1YWwgdm9pZCBnZXRHdWVzc2VzRm9yV29yZChjb25zdCBXVEY6OlN0cmluZyYsIFZlY3Rv
cjxXVEY6OlN0cmluZz4mIGd1ZXNzZXMpOworICAgIHZpcnR1YWwgdm9pZCBnZXRHdWVzc2VzRm9y
V29yZChjb25zdCBXVEY6OlN0cmluZyYgd29yZCwgY29uc3QgV1RGOjpTdHJpbmcmIGNvbnRleHQs
IFdURjo6VmVjdG9yPFdURjo6U3RyaW5nPiYgZ3Vlc3Nlcyk7CiAKICAgICB2aXJ0dWFsIHZvaWQg
d2lsbFNldElucHV0TWV0aG9kU3RhdGUoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5wdXRNZXRo
b2RTdGF0ZShib29sKTsKSW5kZXg6IFdlYktpdC93aW5jZS9DaGFuZ2VMb2cKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViS2l0L3dpbmNlL0NoYW5nZUxvZwkocmV2aXNpb24gNzI4MjUpCisrKyBXZWJLaXQvd2lu
Y2UvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTAtMTEtMjkg
IEppYSBQdSAgPGpwdUBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgU3VwcG9ydCBtdWx0aXBsZSBjb3JyZWN0aW9uIGNhbmRpZGF0ZXMg
cGFuZWwgZm9yIG1pc3NwZWxsZWQgd29yZCBvbiBNYWMgT1MgWC4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUwMTM3CisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS84NTY4MDU5PgorCisgICAgICAgIEFkb3B0ZWQgbmV3IGZ1bmN0aW9uIHNpZ25hdHVyZSBk
ZWZpbmVkIGluIGJhc2UgY2xhc3MuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JD
bGllbnRXaW5DRS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudFdpbkNFOjpnZXRH
dWVzc2VzRm9yV29yZCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50V2lu
Q0UuaDoKKwogMjAxMC0xMS0xMyAgUGF0cmljayBHYW5zdGVyZXIgIDxwYXJvZ2FAd2Via2l0Lm9y
Zz4KIAogICAgICAgICBVbnJldmlld2VkLCBidWlsZCBmaXggYWZ0ZXIgcjcxNTQxLgpJbmRleDog
V2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFdpbkNFLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50V2luQ0UuY3Bw
CShyZXZpc2lvbiA3MjgyNSkKKysrIFdlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JD
bGllbnRXaW5DRS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ4Nyw3ICs0ODcsNyBAQCBib29sIEVk
aXRvckNsaWVudFdpbkNFOjpzcGVsbGluZ1VJSXNTaG93CiAgICAgcmV0dXJuIGZhbHNlOwogfQog
Ci12b2lkIEVkaXRvckNsaWVudFdpbkNFOjpnZXRHdWVzc2VzRm9yV29yZChjb25zdCBTdHJpbmcm
IHdvcmQsIFdURjo6VmVjdG9yPFN0cmluZz4mIGd1ZXNzZXMpCit2b2lkIEVkaXRvckNsaWVudFdp
bkNFOjpnZXRHdWVzc2VzRm9yV29yZChjb25zdCBTdHJpbmcmIHdvcmQsIGNvbnN0IFN0cmluZyYg
Y29udGV4dCwgV1RGOjpWZWN0b3I8U3RyaW5nPiYgZ3Vlc3NlcykKIHsKICAgICBub3RJbXBsZW1l
bnRlZCgpOwogfQpJbmRleDogV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVu
dFdpbkNFLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0VkaXRv
ckNsaWVudFdpbkNFLmgJKHJldmlzaW9uIDcyODI1KQorKysgV2ViS2l0L3dpbmNlL1dlYkNvcmVT
dXBwb3J0L0VkaXRvckNsaWVudFdpbkNFLmgJKHdvcmtpbmcgY29weSkKQEAgLTk3LDcgKzk3LDcg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVTcGVsbGluZ1VJV2l0aE1pc3NwZWxs
ZWRXb3JkKGNvbnN0IFdURjo6U3RyaW5nJik7CiAgICAgdmlydHVhbCB2b2lkIHNob3dTcGVsbGlu
Z1VJKGJvb2wpOwogICAgIHZpcnR1YWwgYm9vbCBzcGVsbGluZ1VJSXNTaG93aW5nKCk7Ci0gICAg
dmlydHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFdURjo6U3RyaW5nJiwgV1RGOjpW
ZWN0b3I8V1RGOjpTdHJpbmc+Jik7CisgICAgdmlydHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JXb3Jk
KGNvbnN0IFdURjo6U3RyaW5nJiB3b3JkLCBjb25zdCBXVEY6OlN0cmluZyYgY29udGV4dCwgV1RG
OjpWZWN0b3I8V1RGOjpTdHJpbmc+JiBndWVzc2VzKTsKICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNl
dElucHV0TWV0aG9kU3RhdGUoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5wdXRNZXRob2RTdGF0
ZShib29sKTsKIApJbmRleDogV2ViS2l0L3d4L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJL
aXQvd3gvQ2hhbmdlTG9nCShyZXZpc2lvbiA3MjgyNSkKKysrIFdlYktpdC93eC9DaGFuZ2VMb2cJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNyBAQAorMjAxMC0xMS0yOSAgSmlhIFB1ICA8anB1
QGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBTdXBwb3J0IG11bHRpcGxlIGNvcnJlY3Rpb24gY2FuZGlkYXRlcyBwYW5lbCBmb3IgbWlz
c3BlbGxlZCB3b3JkIG9uIE1hYyBPUyBYLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NTAxMzcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg1NjgwNTk+
CisKKyAgICAgICAgQWRvcHRlZCBuZXcgZnVuY3Rpb24gc2lnbmF0dXJlIGRlZmluZWQgaW4gYmFz
ZSBjbGFzcy4KKworICAgICAgICAqIFdlYktpdFN1cHBvcnQvRWRpdG9yQ2xpZW50V3guY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50V3g6OmdldEd1ZXNzZXNGb3JXb3JkKToKKyAg
ICAgICAgKiBXZWJLaXRTdXBwb3J0L0VkaXRvckNsaWVudFd4Lmg6CisKIDIwMTAtMTEtMjQgIFBh
dHJpY2sgR2Fuc3RlcmVyICA8cGFyb2dhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgQ3NhYmEgT3N6dHJvZ29u4WMuCkluZGV4OiBXZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9FZGl0
b3JDbGllbnRXeC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvRWRp
dG9yQ2xpZW50V3guY3BwCShyZXZpc2lvbiA3MjgyNSkKKysrIFdlYktpdC93eC9XZWJLaXRTdXBw
b3J0L0VkaXRvckNsaWVudFd4LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTQyLDkgKzU0Miw5IEBA
IGJvb2wgRWRpdG9yQ2xpZW50V3g6OnNwZWxsaW5nVUlJc1Nob3dpbmcKICAgICByZXR1cm4gZmFs
c2U7CiB9CiAKLXZvaWQgRWRpdG9yQ2xpZW50V3g6OmdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0
cmluZyYsIFZlY3RvcjxTdHJpbmc+JiBndWVzc2VzKSAKLXsgCi0gICAgbm90SW1wbGVtZW50ZWQo
KTsgCit2b2lkIEVkaXRvckNsaWVudFd4OjpnZXRHdWVzc2VzRm9yV29yZChjb25zdCBTdHJpbmcm
IHdvcmQsIGNvbnN0IFN0cmluZyYgY29udGV4dCwgVmVjdG9yPFN0cmluZz4mIGd1ZXNzZXMpCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAogU3RyaW5nIEVkaXRvckNsaWVudFd4OjpnZXRB
dXRvQ29ycmVjdFN1Z2dlc3Rpb25Gb3JNaXNzcGVsbGVkV29yZChjb25zdCBXVEY6OlN0cmluZyYp
CkluZGV4OiBXZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9FZGl0b3JDbGllbnRXeC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYktpdC93eC9XZWJLaXRTdXBwb3J0L0VkaXRvckNsaWVudFd4LmgJKHJldmlzaW9u
IDcyODI1KQorKysgV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvRWRpdG9yQ2xpZW50V3guaAkod29y
a2luZyBjb3B5KQpAQCAtMTA3LDkgKzEwNyw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQg
dXBkYXRlU3BlbGxpbmdVSVdpdGhNaXNzcGVsbGVkV29yZChjb25zdCBTdHJpbmcmKTsKICAgICB2
aXJ0dWFsIHZvaWQgc2hvd1NwZWxsaW5nVUkoYm9vbCBzaG93KTsKICAgICB2aXJ0dWFsIGJvb2wg
c3BlbGxpbmdVSUlzU2hvd2luZygpOwotICAgIHZpcnR1YWwgdm9pZCBnZXRHdWVzc2VzRm9yV29y
ZChjb25zdCBTdHJpbmcmLCBWZWN0b3I8U3RyaW5nPiYgZ3Vlc3Nlcyk7CisgICAgdmlydHVhbCB2
b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYgd29yZCwgY29uc3QgU3RyaW5nJiBj
b250ZXh0LCBWZWN0b3I8U3RyaW5nPiYgZ3Vlc3Nlcyk7CiAgICAgdmlydHVhbCBTdHJpbmcgZ2V0
QXV0b0NvcnJlY3RTdWdnZXN0aW9uRm9yTWlzc3BlbGxlZFdvcmQoY29uc3QgV1RGOjpTdHJpbmcm
KTsKLSAgICAKKwogICAgIHZpcnR1YWwgdm9pZCB3aWxsU2V0SW5wdXRNZXRob2RTdGF0ZSgpOwog
ICAgIHZpcnR1YWwgdm9pZCBzZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wgZW5hYmxlZCk7CiAKSW5k
ZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFu
Z2VMb2cJKHJldmlzaW9uIDcyODI1KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDMgKzEsMTggQEAKKzIwMTAtMTEtMjkgIEppYSBQdSAgPGpwdUBhcHBsZS5j
b20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3Vw
cG9ydCBtdWx0aXBsZSBjb3JyZWN0aW9uIGNhbmRpZGF0ZXMgcGFuZWwgZm9yIG1pc3NwZWxsZWQg
d29yZCBvbiBNYWMgT1MgWC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTUwMTM3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NTY4MDU5PgorCisgICAg
ICAgICogcGxhdGZvcm0vbWFjLWxlb3BhcmQvU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0Zm9ybS9t
YWMtc25vd2xlb3BhcmQvU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtdGlnZXIvU2tp
cHBlZDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtd2syL1NraXBwZWQ6CisgICAgICAgICogcGxh
dGZvcm0vbWFjL2VkaXRpbmcvc3BlbGxpbmcvZGVsZXRlLWF1dG9jb3JyZWN0ZWQtd29yZC0xLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL2VkaXRpbmcvc3BlbGxp
bmcvZGVsZXRlLWF1dG9jb3JyZWN0ZWQtd29yZC0xLmh0bWw6IEFkZGVkLgorCiAyMDEwLTExLTI5
ICBPamFuIFZhZmFpICA8b2phbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCBi
dWlsZCBmaXguCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtbGVvcGFyZC9Ta2lwcGVk
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy1sZW9wYXJkL1NraXBwZWQJ
KHJldmlzaW9uIDcyODI1KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLWxlb3BhcmQvU2tp
cHBlZAkod29ya2luZyBjb3B5KQpAQCAtMTA2LDYgKzEwNiw3IEBAIHBsYXRmb3JtL21hYy9lZGl0
aW5nL3NwZWxsaW5nL2F1dG9jb3JyZWMKIHBsYXRmb3JtL21hYy9lZGl0aW5nL3NwZWxsaW5nL2F1
dG9jb3JyZWN0aW9uLXJlbW92aW5nLXVuZGVybGluZS5odG1sCiBwbGF0Zm9ybS9tYWMvZWRpdGlu
Zy9zcGVsbGluZy9hdXRvY29ycmVjdGlvbi1zaW1wbGUuaHRtbAogcGxhdGZvcm0vbWFjL2VkaXRp
bmcvc3BlbGxpbmcvY2xpY2stYXV0b2NvcnJlY3RlZC13b3JkLmh0bWwKK3BsYXRmb3JtL21hYy9l
ZGl0aW5nL3NwZWxsaW5nL2RlbGV0ZS1hdXRvY29ycmVjdGVkLXdvcmQtMS5odG1sCiBwbGF0Zm9y
bS9tYWMvZWRpdGluZy9zcGVsbGluZy9kZWxldGUtaW50by1hdXRvY29ycmVjdGVkLXdvcmQuaHRt
bAogcGxhdGZvcm0vbWFjL2VkaXRpbmcvc3BlbGxpbmcvZGVsZXRlLWludG8tbWlzc3BlbGxlZC13
b3JkLmh0bWwKIHBsYXRmb3JtL21hYy9lZGl0aW5nL3NwZWxsaW5nL2VkaXRpbmctbXVsdGlwbGUt
d29yZHMtd2l0aC1tYXJrZXJzLmh0bWwKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy1z
bm93bGVvcGFyZC9Ta2lwcGVkCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy1zbm93bGVvcGFyZC9Ta2lwcGVkCShyZXZpc2lvbiA3MjgyNSkKKysrIExheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy1zbm93bGVvcGFyZC9Ta2lwcGVkCSh3b3JraW5nIGNvcHkpCkBAIC0xMzEsNiAr
MTMxLDcgQEAgcGxhdGZvcm0vbWFjL2VkaXRpbmcvc3BlbGxpbmcvYXV0b2NvcnJlYwogcGxhdGZv
cm0vbWFjL2VkaXRpbmcvc3BlbGxpbmcvYXV0b2NvcnJlY3Rpb24tcmVtb3ZpbmctdW5kZXJsaW5l
Lmh0bWwKIHBsYXRmb3JtL21hYy9lZGl0aW5nL3NwZWxsaW5nL2F1dG9jb3JyZWN0aW9uLXNpbXBs
ZS5odG1sCiBwbGF0Zm9ybS9tYWMvZWRpdGluZy9zcGVsbGluZy9jbGljay1hdXRvY29ycmVjdGVk
LXdvcmQuaHRtbAorcGxhdGZvcm0vbWFjL2VkaXRpbmcvc3BlbGxpbmcvZGVsZXRlLWF1dG9jb3Jy
ZWN0ZWQtd29yZC0xLmh0bWwKIHBsYXRmb3JtL21hYy9lZGl0aW5nL3NwZWxsaW5nL2RlbGV0ZS1p
bnRvLWF1dG9jb3JyZWN0ZWQtd29yZC5odG1sCiBwbGF0Zm9ybS9tYWMvZWRpdGluZy9zcGVsbGlu
Zy9kZWxldGUtaW50by1taXNzcGVsbGVkLXdvcmQuaHRtbAogcGxhdGZvcm0vbWFjL2VkaXRpbmcv
c3BlbGxpbmcvZWRpdGluZy1tdWx0aXBsZS13b3Jkcy13aXRoLW1hcmtlcnMuaHRtbApJbmRleDog
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXRpZ2VyL1NraXBwZWQKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXRpZ2VyL1NraXBwZWQJKHJldmlzaW9uIDcyODI1KQorKysg
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXRpZ2VyL1NraXBwZWQJKHdvcmtpbmcgY29weSkKQEAg
LTIxMSw2ICsyMTEsNyBAQCBwbGF0Zm9ybS9tYWMvZWRpdGluZy9zcGVsbGluZy9hdXRvY29ycmVj
CiBwbGF0Zm9ybS9tYWMvZWRpdGluZy9zcGVsbGluZy9hdXRvY29ycmVjdGlvbi1yZW1vdmluZy11
bmRlcmxpbmUuaHRtbAogcGxhdGZvcm0vbWFjL2VkaXRpbmcvc3BlbGxpbmcvYXV0b2NvcnJlY3Rp
b24tc2ltcGxlLmh0bWwKIHBsYXRmb3JtL21hYy9lZGl0aW5nL3NwZWxsaW5nL2NsaWNrLWF1dG9j
b3JyZWN0ZWQtd29yZC5odG1sCitwbGF0Zm9ybS9tYWMvZWRpdGluZy9zcGVsbGluZy9kZWxldGUt
YXV0b2NvcnJlY3RlZC13b3JkLTEuaHRtbAogcGxhdGZvcm0vbWFjL2VkaXRpbmcvc3BlbGxpbmcv
ZGVsZXRlLWludG8tYXV0b2NvcnJlY3RlZC13b3JkLmh0bWwKIHBsYXRmb3JtL21hYy9lZGl0aW5n
L3NwZWxsaW5nL2RlbGV0ZS1pbnRvLW1pc3NwZWxsZWQtd29yZC5odG1sCiBwbGF0Zm9ybS9tYWMv
ZWRpdGluZy9zcGVsbGluZy9lZGl0aW5nLW11bHRpcGxlLXdvcmRzLXdpdGgtbWFya2Vycy5odG1s
CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1NraXBwZWQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9Ta2lwcGVkCShyZXZpc2lvbiA3MjgyNSkK
KysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvU2tpcHBlZAkod29ya2luZyBjb3B5KQpA
QCAtNDk0LDYgKzQ5NCw3IEBAIHBsYXRmb3JtL21hYy9lZGl0aW5nL3NwZWxsaW5nL2F1dG9jb3Jy
ZWMKIHBsYXRmb3JtL21hYy9lZGl0aW5nL3NwZWxsaW5nL2F1dG9jb3JyZWN0aW9uLXJlbW92aW5n
LXVuZGVybGluZS5odG1sCiBwbGF0Zm9ybS9tYWMvZWRpdGluZy9zcGVsbGluZy9hdXRvY29ycmVj
dGlvbi1zaW1wbGUuaHRtbAogcGxhdGZvcm0vbWFjL2VkaXRpbmcvc3BlbGxpbmcvY2xpY2stYXV0
b2NvcnJlY3RlZC13b3JkLmh0bWwKK3BsYXRmb3JtL21hYy9lZGl0aW5nL3NwZWxsaW5nL2RlbGV0
ZS1hdXRvY29ycmVjdGVkLXdvcmQtMS5odG1sCiBwbGF0Zm9ybS9tYWMvZWRpdGluZy9zcGVsbGlu
Zy9kZWxldGUtaW50by1hdXRvY29ycmVjdGVkLXdvcmQuaHRtbAogcGxhdGZvcm0vbWFjL2VkaXRp
bmcvc3BlbGxpbmcvZGVsZXRlLWludG8tbWlzc3BlbGxlZC13b3JkLmh0bWwKIHBsYXRmb3JtL21h
Yy9lZGl0aW5nL3NwZWxsaW5nL2VkaXRpbmctbXVsdGlwbGUtd29yZHMtd2l0aC1tYXJrZXJzLmh0
bWwKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9lZGl0aW5nL3NwZWxsaW5nL2RlbGV0
ZS1hdXRvY29ycmVjdGVkLXdvcmQtMS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL2VkaXRpbmcvc3BlbGxpbmcvZGVsZXRlLWF1dG9jb3JyZWN0ZWQt
d29yZC0xLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9lZGl0aW5nL3NwZWxsaW5nL2RlbGV0ZS1hdXRvY29ycmVjdGVkLXdvcmQtMS1leHBlY3Rl
ZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsOTcgQEAKK0VESVRJTkcgREVMRUdBVEU6IHNo
b3VsZEJlZ2luRWRpdGluZ0luRE9NUmFuZ2U6cmFuZ2UgZnJvbSAwIG9mIERJViA+IEJPRFkgPiBI
VE1MID4gI2RvY3VtZW50IHRvIDMgb2YgRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQKK0VE
SVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRCZWdpbkVkaXRpbmc6V2ViVmlld0RpZEJlZ2luRWRp
dGluZ05vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVj
dGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVH
QVRFOiBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlOnJhbmdlIGZyb20gMCBvZiBESVYgPiBC
T0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byAwIG9mIERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3Vt
ZW50IHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSAxIG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwg
PiAjZG9jdW1lbnQgdG8gMSBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50
IGFmZmluaXR5Ok5TU2VsZWN0aW9uQWZmaW5pdHlEb3duc3RyZWFtIHN0aWxsU2VsZWN0aW5nOkZB
TFNFCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdE
aWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdE
aWRDaGFuZ2U6V2ViVmlld0RpZENoYW5nZU5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTog
c2hvdWxkQ2hhbmdlU2VsZWN0ZWRET01SYW5nZTpyYW5nZSBmcm9tIDEgb2YgI3RleHQgPiBESVYg
PiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byAxIG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhU
TUwgPiAjZG9jdW1lbnQgdG9ET01SYW5nZTpyYW5nZSBmcm9tIDIgb2YgI3RleHQgPiBESVYgPiBC
T0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byAyIG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwg
PiAjZG9jdW1lbnQgYWZmaW5pdHk6TlNTZWxlY3Rpb25BZmZpbml0eURvd25zdHJlYW0gc3RpbGxT
ZWxlY3Rpbmc6RkFMU0UKK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rp
b246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FU
RTogd2ViVmlld0RpZENoYW5nZTpXZWJWaWV3RGlkQ2hhbmdlTm90aWZpY2F0aW9uCitFRElUSU5H
IERFTEVHQVRFOiBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlOnJhbmdlIGZyb20gMiBvZiAj
dGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDIgb2YgI3RleHQgPiBESVYg
PiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0b0RPTVJhbmdlOnJhbmdlIGZyb20gMyBvZiAjdGV4
dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDMgb2YgI3RleHQgPiBESVYgPiBC
T0RZID4gSFRNTCA+ICNkb2N1bWVudCBhZmZpbml0eTpOU1NlbGVjdGlvbkFmZmluaXR5RG93bnN0
cmVhbSBzdGlsbFNlbGVjdGluZzpGQUxTRQorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENo
YW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCitFRElU
SU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlOldlYlZpZXdEaWRDaGFuZ2VOb3RpZmljYXRp
b24KK0VESVRJTkcgREVMRUdBVEU6IHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2U6cmFuZ2Ug
ZnJvbSAzIG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gMyBvZiAj
dGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvRE9NUmFuZ2U6cmFuZ2UgZnJv
bSA0IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gNCBvZiAjdGV4
dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IGFmZmluaXR5Ok5TU2VsZWN0aW9uQWZm
aW5pdHlEb3duc3RyZWFtIHN0aWxsU2VsZWN0aW5nOkZBTFNFCitFRElUSU5HIERFTEVHQVRFOiB3
ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmlj
YXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2U6V2ViVmlld0RpZENoYW5n
ZU5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogc2hvdWxkQ2hhbmdlU2VsZWN0ZWRET01S
YW5nZTpyYW5nZSBmcm9tIDQgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVu
dCB0byA0IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG9ET01SYW5n
ZTpyYW5nZSBmcm9tIDUgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0
byA1IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgYWZmaW5pdHk6TlNT
ZWxlY3Rpb25BZmZpbml0eURvd25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6RkFMU0UKK0VESVRJTkcg
REVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVj
dGlvbk5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZTpXZWJW
aWV3RGlkQ2hhbmdlTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiBzaG91bGRDaGFuZ2VT
ZWxlY3RlZERPTVJhbmdlOnJhbmdlIGZyb20gNSBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1M
ID4gI2RvY3VtZW50IHRvIDUgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVu
dCB0b0RPTVJhbmdlOnJhbmdlIGZyb20gNiBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4g
I2RvY3VtZW50IHRvIDYgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCBh
ZmZpbml0eTpOU1NlbGVjdGlvbkFmZmluaXR5RG93bnN0cmVhbSBzdGlsbFNlbGVjdGluZzpGQUxT
RQorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlk
Q2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlk
Q2hhbmdlOldlYlZpZXdEaWRDaGFuZ2VOb3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHNo
b3VsZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2U6cmFuZ2UgZnJvbSA2IG9mICN0ZXh0ID4gRElWID4g
Qk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gNiBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1M
ID4gI2RvY3VtZW50IHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSA3IG9mICN0ZXh0ID4gRElWID4gQk9E
WSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gNyBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4g
I2RvY3VtZW50IGFmZmluaXR5Ok5TU2VsZWN0aW9uQWZmaW5pdHlEb3duc3RyZWFtIHN0aWxsU2Vs
ZWN0aW5nOkZBTFNFCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9u
OldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6
IHdlYlZpZXdEaWRDaGFuZ2U6V2ViVmlld0RpZENoYW5nZU5vdGlmaWNhdGlvbgorRURJVElORyBE
RUxFR0FURTogc2hvdWxkQ2hhbmdlU2VsZWN0ZWRET01SYW5nZTpyYW5nZSBmcm9tIDcgb2YgI3Rl
eHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byA3IG9mICN0ZXh0ID4gRElWID4g
Qk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG9ET01SYW5nZTpyYW5nZSBmcm9tIDggb2YgI3RleHQg
PiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byA4IG9mICN0ZXh0ID4gRElWID4gQk9E
WSA+IEhUTUwgPiAjZG9jdW1lbnQgYWZmaW5pdHk6TlNTZWxlY3Rpb25BZmZpbml0eURvd25zdHJl
YW0gc3RpbGxTZWxlY3Rpbmc6RkFMU0UKK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFu
Z2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgorRURJVElO
RyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZTpXZWJWaWV3RGlkQ2hhbmdlTm90aWZpY2F0aW9u
CitFRElUSU5HIERFTEVHQVRFOiBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlOnJhbmdlIGZy
b20gOCBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDggb2YgI3Rl
eHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0b0RPTVJhbmdlOnJhbmdlIGZyb20g
OSBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDkgb2YgI3RleHQg
PiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCBhZmZpbml0eTpOU1NlbGVjdGlvbkFmZmlu
aXR5RG93bnN0cmVhbSBzdGlsbFNlbGVjdGluZzpGQUxTRQorRURJVElORyBERUxFR0FURTogd2Vi
Vmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0
aW9uCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlOldlYlZpZXdEaWRDaGFuZ2VO
b3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFu
Z2U6cmFuZ2UgZnJvbSA5IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQg
dG8gOSBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvRE9NUmFuZ2U6
cmFuZ2UgZnJvbSAxMCBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRv
IDEwIG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgYWZmaW5pdHk6TlNT
ZWxlY3Rpb25BZmZpbml0eURvd25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6RkFMU0UKK0VESVRJTkcg
REVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVj
dGlvbk5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZTpXZWJW
aWV3RGlkQ2hhbmdlTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiBzaG91bGRDaGFuZ2VT
ZWxlY3RlZERPTVJhbmdlOnJhbmdlIGZyb20gMTAgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRN
TCA+ICNkb2N1bWVudCB0byAxMCBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3Vt
ZW50IHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSAxMSBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1M
ID4gI2RvY3VtZW50IHRvIDExIG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1l
bnQgYWZmaW5pdHk6TlNTZWxlY3Rpb25BZmZpbml0eURvd25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6
RkFMU0UKK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmll
d0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogd2ViVmll
d0RpZENoYW5nZTpXZWJWaWV3RGlkQ2hhbmdlTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRF
OiBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlOnJhbmdlIGZyb20gMTEgb2YgI3RleHQgPiBE
SVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byAxMSBvZiAjdGV4dCA+IERJViA+IEJPRFkg
PiBIVE1MID4gI2RvY3VtZW50IHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSAxMiBvZiAjdGV4dCA+IERJ
ViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDEyIG9mICN0ZXh0ID4gRElWID4gQk9EWSA+
IEhUTUwgPiAjZG9jdW1lbnQgYWZmaW5pdHk6TlNTZWxlY3Rpb25BZmZpbml0eURvd25zdHJlYW0g
c3RpbGxTZWxlY3Rpbmc6RkFMU0UKK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VT
ZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgorRURJVElORyBE
RUxFR0FURTogd2ViVmlld0RpZENoYW5nZTpXZWJWaWV3RGlkQ2hhbmdlTm90aWZpY2F0aW9uCitF
RElUSU5HIERFTEVHQVRFOiBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlOnJhbmdlIGZyb20g
MTIgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byAxMiBvZiAjdGV4
dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSAx
MyBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDEzIG9mICN0ZXh0
ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgYWZmaW5pdHk6TlNTZWxlY3Rpb25BZmZp
bml0eURvd25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6RkFMU0UKK0VESVRJTkcgREVMRUdBVEU6IHdl
YlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNh
dGlvbgorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZTpXZWJWaWV3RGlkQ2hhbmdl
Tm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJh
bmdlOnJhbmdlIGZyb20gMTMgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVu
dCB0byAxMyBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvRE9NUmFu
Z2U6cmFuZ2UgZnJvbSA0IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQg
dG8gMTIgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCBhZmZpbml0eTpO
U1NlbGVjdGlvbkFmZmluaXR5RG93bnN0cmVhbSBzdGlsbFNlbGVjdGluZzpGQUxTRQorRURJVElO
RyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2Vs
ZWN0aW9uTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiBzaG91bGRJbnNlcnRUZXh0Om1l
c3NhZ2UgcmVwbGFjaW5nRE9NUmFuZ2U6cmFuZ2UgZnJvbSA0IG9mICN0ZXh0ID4gRElWID4gQk9E
WSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gMTIgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+
ICNkb2N1bWVudCBnaXZlbkFjdGlvbjpXZWJWaWV3SW5zZXJ0QWN0aW9uVHlwZWQKK0VESVRJTkcg
REVMRUdBVEU6IHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2U6cmFuZ2UgZnJvbSA0IG9mICN0
ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gMTIgb2YgI3RleHQgPiBESVYg
PiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0b0RPTVJhbmdlOnJhbmdlIGZyb20gMTEgb2YgI3Rl
eHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byAxMSBvZiAjdGV4dCA+IERJViA+
IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IGFmZmluaXR5Ok5TU2VsZWN0aW9uQWZmaW5pdHlEb3du
c3RyZWFtIHN0aWxsU2VsZWN0aW5nOkZBTFNFCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlk
Q2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VE
SVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2U6V2ViVmlld0RpZENoYW5nZU5vdGlmaWNh
dGlvbgorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3
RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiBzaG91bGRE
ZWxldGVET01SYW5nZTpyYW5nZSBmcm9tIDExIG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwg
PiAjZG9jdW1lbnQgdG8gMTIgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVu
dAorRURJVElORyBERUxFR0FURTogc2hvdWxkQ2hhbmdlU2VsZWN0ZWRET01SYW5nZTpyYW5nZSBm
cm9tIDExIG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gMTEgb2Yg
I3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0b0RPTVJhbmdlOnJhbmdlIGZy
b20gMTEgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byAxMSBvZiAj
dGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IGFmZmluaXR5Ok5TU2VsZWN0aW9u
QWZmaW5pdHlEb3duc3RyZWFtIHN0aWxsU2VsZWN0aW5nOkZBTFNFCitFRElUSU5HIERFTEVHQVRF
OiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3Rp
ZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2U6V2ViVmlld0RpZENo
YW5nZU5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogc2hvdWxkRGVsZXRlRE9NUmFuZ2U6
cmFuZ2UgZnJvbSAxMCBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRv
IDExIG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQKK0VESVRJTkcgREVM
RUdBVEU6IHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2U6cmFuZ2UgZnJvbSAxMCBvZiAjdGV4
dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDEwIG9mICN0ZXh0ID4gRElWID4g
Qk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG9ET01SYW5nZTpyYW5nZSBmcm9tIDEwIG9mICN0ZXh0
ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gMTAgb2YgI3RleHQgPiBESVYgPiBC
T0RZID4gSFRNTCA+ICNkb2N1bWVudCBhZmZpbml0eTpOU1NlbGVjdGlvbkFmZmluaXR5RG93bnN0
cmVhbSBzdGlsbFNlbGVjdGluZzpGQUxTRQorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENo
YW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCitFRElU
SU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlOldlYlZpZXdEaWRDaGFuZ2VOb3RpZmljYXRp
b24KK0VESVRJTkcgREVMRUdBVEU6IHNob3VsZERlbGV0ZURPTVJhbmdlOnJhbmdlIGZyb20gOSBv
ZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDEwIG9mICN0ZXh0ID4g
RElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQKK0VESVRJTkcgREVMRUdBVEU6IHNob3VsZENo
YW5nZVNlbGVjdGVkRE9NUmFuZ2U6cmFuZ2UgZnJvbSA5IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+
IEhUTUwgPiAjZG9jdW1lbnQgdG8gOSBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2Rv
Y3VtZW50IHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSA5IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhU
TUwgPiAjZG9jdW1lbnQgdG8gOSBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3Vt
ZW50IGFmZmluaXR5Ok5TU2VsZWN0aW9uQWZmaW5pdHlEb3duc3RyZWFtIHN0aWxsU2VsZWN0aW5n
OkZBTFNFCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZp
ZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHdlYlZp
ZXdEaWRDaGFuZ2U6V2ViVmlld0RpZENoYW5nZU5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FU
RTogc2hvdWxkRGVsZXRlRE9NUmFuZ2U6cmFuZ2UgZnJvbSA4IG9mICN0ZXh0ID4gRElWID4gQk9E
WSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gOSBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4g
I2RvY3VtZW50CitFRElUSU5HIERFTEVHQVRFOiBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdl
OnJhbmdlIGZyb20gOCBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRv
IDggb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0b0RPTVJhbmdlOnJh
bmdlIGZyb20gOCBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDgg
b2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCBhZmZpbml0eTpOU1NlbGVj
dGlvbkFmZmluaXR5RG93bnN0cmVhbSBzdGlsbFNlbGVjdGluZzpGQUxTRQorRURJVElORyBERUxF
R0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9u
Tm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlOldlYlZpZXdE
aWRDaGFuZ2VOb3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHNob3VsZERlbGV0ZURPTVJh
bmdlOnJhbmdlIGZyb20gNyBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50
IHRvIDggb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudAorRURJVElORyBE
RUxFR0FURTogc2hvdWxkQ2hhbmdlU2VsZWN0ZWRET01SYW5nZTpyYW5nZSBmcm9tIDcgb2YgI3Rl
eHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byA3IG9mICN0ZXh0ID4gRElWID4g
Qk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG9ET01SYW5nZTpyYW5nZSBmcm9tIDcgb2YgI3RleHQg
PiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byA3IG9mICN0ZXh0ID4gRElWID4gQk9E
WSA+IEhUTUwgPiAjZG9jdW1lbnQgYWZmaW5pdHk6TlNTZWxlY3Rpb25BZmZpbml0eURvd25zdHJl
YW0gc3RpbGxTZWxlY3Rpbmc6RkFMU0UKK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFu
Z2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgorRURJVElO
RyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZTpXZWJWaWV3RGlkQ2hhbmdlTm90aWZpY2F0aW9u
CitFRElUSU5HIERFTEVHQVRFOiBzaG91bGREZWxldGVET01SYW5nZTpyYW5nZSBmcm9tIDYgb2Yg
I3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byA3IG9mICN0ZXh0ID4gRElW
ID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQKK0VESVRJTkcgREVMRUdBVEU6IHNob3VsZENoYW5n
ZVNlbGVjdGVkRE9NUmFuZ2U6cmFuZ2UgZnJvbSA2IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhU
TUwgPiAjZG9jdW1lbnQgdG8gNiBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3Vt
ZW50IHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSA2IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwg
PiAjZG9jdW1lbnQgdG8gNiBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50
IGFmZmluaXR5Ok5TU2VsZWN0aW9uQWZmaW5pdHlEb3duc3RyZWFtIHN0aWxsU2VsZWN0aW5nOkZB
TFNFCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdE
aWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdE
aWRDaGFuZ2U6V2ViVmlld0RpZENoYW5nZU5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTog
c2hvdWxkRGVsZXRlRE9NUmFuZ2U6cmFuZ2UgZnJvbSA1IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+
IEhUTUwgPiAjZG9jdW1lbnQgdG8gNiBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2Rv
Y3VtZW50CitFRElUSU5HIERFTEVHQVRFOiBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlOnJh
bmdlIGZyb20gNSBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDUg
b2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0b0RPTVJhbmdlOnJhbmdl
IGZyb20gNSBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDUgb2Yg
I3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCBhZmZpbml0eTpOU1NlbGVjdGlv
bkFmZmluaXR5RG93bnN0cmVhbSBzdGlsbFNlbGVjdGluZzpGQUxTRQorRURJVElORyBERUxFR0FU
RTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90
aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlOldlYlZpZXdEaWRD
aGFuZ2VOb3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHNob3VsZERlbGV0ZURPTVJhbmdl
OnJhbmdlIGZyb20gNCBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRv
IDUgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudAorRURJVElORyBERUxF
R0FURTogc2hvdWxkQ2hhbmdlU2VsZWN0ZWRET01SYW5nZTpyYW5nZSBmcm9tIDQgb2YgI3RleHQg
PiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byA0IG9mICN0ZXh0ID4gRElWID4gQk9E
WSA+IEhUTUwgPiAjZG9jdW1lbnQgdG9ET01SYW5nZTpyYW5nZSBmcm9tIDQgb2YgI3RleHQgPiBE
SVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byA0IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+
IEhUTUwgPiAjZG9jdW1lbnQgYWZmaW5pdHk6TlNTZWxlY3Rpb25BZmZpbml0eURvd25zdHJlYW0g
c3RpbGxTZWxlY3Rpbmc6RkFMU0UKK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VT
ZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgorRURJVElORyBE
RUxFR0FURTogd2ViVmlld0RpZENoYW5nZTpXZWJWaWV3RGlkQ2hhbmdlTm90aWZpY2F0aW9uCits
YXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgw
MHg2MDAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJCbG9jayB7SFRNTH0g
YXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6
ZSA3ODR4NTg0CisgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwwKSBzaXplIDc4NHgxOAor
ICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAzOTd4MTgKKyAgICAgICAg
ICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAzOTc6ICJVcG9uIHN1Y2Nlc3MsIHlvdSBzaG91bGQg
b25seSBzZWUgdGhlIHdvcmQgXCJ0aGVcIiBpbiB0ZXh0IGZpZWxkLiIKKyAgICAgIFJlbmRlckJs
b2NrIHtQfSBhdCAoMCwzNCkgc2l6ZSA3ODR4MTggW2NvbG9yPSMwMDgwMDBdCisgICAgICAgIFJl
bmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDcwMngxOAorICAgICAgICAgIHRleHQgcnVu
IGF0ICgwLDApIHdpZHRoIDcwMjogIk5vdGUsIHRoaXMgdGVzdCBjYW4gZmFpbCBkdWUgdG8gdXNl
ciBzcGVjaWZpYyBzcGVsbCBjaGVja2luZyBkYXRhLiBUbyBmaXggdGhpcywgcmVtb3ZlIGFsbCBm
aWxlcyBpbiB+L0xpYnJhcnkvU3BlbGxpbmcuIgorICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQg
KDAsNjgpIHNpemUgNzg0eDU2IFtib3JkZXI6ICgycHggc29saWQgI0ZGMDAwMCldCisgICAgICAg
IFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMTQsMTQpIHNpemUgMzZ4MjgKKyAgICAgICAgICB0ZXh0
IHJ1biBhdCAoMTQsMTQpIHdpZHRoIDM2OiAidGhlICIKKyAgICAgICAgUmVuZGVySW5saW5lIHtT
UEFOfSBhdCAoMCwwKSBzaXplIDB4MjgKK2NhcmV0OiBwb3NpdGlvbiA0IG9mIGNoaWxkIDAgeyN0
ZXh0fSBvZiBjaGlsZCA1IHtESVZ9IG9mIGJvZHkKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9lZGl0aW5nL3NwZWxsaW5nL2RlbGV0ZS1hdXRvY29ycmVjdGVkLXdvcmQtMS5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9lZGl0aW5nL3NwZWxsaW5nL2Rl
bGV0ZS1hdXRvY29ycmVjdGVkLXdvcmQtMS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL2VkaXRpbmcvc3BlbGxpbmcvZGVsZXRlLWF1dG9jb3JyZWN0ZWQtd29y
ZC0xLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTYgQEAKKzxodG1sPiAKKzxoZWFkPgor
Cis8c3R5bGU+CisuZWRpdGluZyB7IAorICAgIGJvcmRlcjogMnB4IHNvbGlkIHJlZDsgCisgICAg
cGFkZGluZzogMTJweDsgCisgICAgZm9udC1zaXplOiAyNHB4OyAKK30KKzwvc3R5bGU+Cis8c2Ny
aXB0IHNyYz0uLi8uLi8uLi8uLi9lZGl0aW5nL2VkaXRpbmcuanMgbGFuZ3VhZ2U9IkphdmFTY3Jp
cHQiIHR5cGU9InRleHQvSmF2YVNjcmlwdCIgPjwvc2NyaXB0PgorCis8c2NyaXB0PgorCitmdW5j
dGlvbiBlZGl0aW5nVGVzdCgpIHsKKyAgICB0eXBlQ2hhcmFjdGVyQ29tbWFuZCgndCcpOworICAg
IHR5cGVDaGFyYWN0ZXJDb21tYW5kKCdoJyk7CisgICAgdHlwZUNoYXJhY3RlckNvbW1hbmQoJ2Un
KTsKKyAgICB0eXBlQ2hhcmFjdGVyQ29tbWFuZCgnICcpOworICAgIHR5cGVDaGFyYWN0ZXJDb21t
YW5kKCdtJyk7CisgICAgdHlwZUNoYXJhY3RlckNvbW1hbmQoJ2UnKTsKKyAgICB0eXBlQ2hhcmFj
dGVyQ29tbWFuZCgncycpOworICAgIHR5cGVDaGFyYWN0ZXJDb21tYW5kKCdzJyk7CisgICAgdHlw
ZUNoYXJhY3RlckNvbW1hbmQoJ2EnKTsKKyAgICB0eXBlQ2hhcmFjdGVyQ29tbWFuZCgnZycpOwor
ICAgIHR5cGVDaGFyYWN0ZXJDb21tYW5kKCdlJyk7CisgICAgdHlwZUNoYXJhY3RlckNvbW1hbmQo
J2UnKTsKKyAgICB0eXBlQ2hhcmFjdGVyQ29tbWFuZCgnICcpOworICAgIGV4ZWNEZWxldGVDb21t
YW5kKCk7CisgICAgZXhlY0RlbGV0ZUNvbW1hbmQoKTsKKyAgICBleGVjRGVsZXRlQ29tbWFuZCgp
OworICAgIGV4ZWNEZWxldGVDb21tYW5kKCk7CisgICAgZXhlY0RlbGV0ZUNvbW1hbmQoKTsKKyAg
ICBleGVjRGVsZXRlQ29tbWFuZCgpOworICAgIGV4ZWNEZWxldGVDb21tYW5kKCk7CisgICAgZXhl
Y0RlbGV0ZUNvbW1hbmQoKTsKK30KKworPC9zY3JpcHQ+CisKKzx0aXRsZT5EZWxldGUgQXV0b2Nv
cnJlY3RlZCBXb3JkIFRlc3QgMTwvdGl0bGU+IAorPC9oZWFkPiAKKzxib2R5PgorPGRpdj5VcG9u
IHN1Y2Nlc3MsIHlvdSBzaG91bGQgb25seSBzZWUgdGhlIHdvcmQgInRoZSIgaW4gdGV4dCBmaWVs
ZC48L2Rpdj4KKzxwICBzdHlsZT0iY29sb3I6Z3JlZW4iPk5vdGUsIHRoaXMgdGVzdCBjYW4gZmFp
bCBkdWUgdG8gdXNlciBzcGVjaWZpYyBzcGVsbCBjaGVja2luZyBkYXRhLiBUbyBmaXggdGhpcywg
cmVtb3ZlIGFsbCBmaWxlcyBpbiB+L0xpYnJhcnkvU3BlbGxpbmcuPC9wPgorPGRpdiBjb250ZW50
ZWRpdGFibGUgaWQ9InJvb3QiIGNsYXNzPSJlZGl0aW5nIj4KKzxzcGFuIGlkPSJ0ZXN0Ij48L3Nw
YW4+Cis8L2Rpdj4KKworCis8c2NyaXB0PgorcnVuRWRpdGluZ1Rlc3QoKTsKKzwvc2NyaXB0Pgor
Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>