<?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>53213</bug_id>
          
          <creation_ts>2011-01-26 17:32:14 -0800</creation_ts>
          <short_desc>Refactoring: Extract TextCheckerClient from EditorClient</short_desc>
          <delta_ts>2011-02-15 00:28:41 -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>HTML Editing</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>53212</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Hajime Morrita">morrita</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>buildbot</cc>
    
    <cc>darin</cc>
    
    <cc>dglazkov</cc>
    
    <cc>gustavo</cc>
    
    <cc>kevino</cc>
    
    <cc>mjs</cc>
    
    <cc>rniwa</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>340637</commentid>
    <comment_count>0</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-01-26 17:32:14 -0800</bug_when>
    <thetext>This is required for implement hunspell-based spellchecker.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>340750</commentid>
    <comment_count>1</comment_count>
      <attachid>80300</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-01-27 00:35:48 -0800</bug_when>
    <thetext>Created attachment 80300
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>340752</commentid>
    <comment_count>2</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-01-27 00:41:59 -0800</bug_when>
    <thetext>Hi, Darin, Ryosuke, could you take a look?
The change is the starting point of porting hunspell checker to WebCore (or WebCoreSupport),
which will help many ports.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>340755</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-01-27 00:51:08 -0800</bug_when>
    <thetext>Attachment 80300 did not build on chromium:
Build output: http://queues.webkit.org/results/7540377</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>340756</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-01-27 00:54:13 -0800</bug_when>
    <thetext>Attachment 80300 did not build on gtk:
Build output: http://queues.webkit.org/results/7621356</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>340760</commentid>
    <comment_count>5</comment_count>
      <attachid>80302</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-01-27 00:58:34 -0800</bug_when>
    <thetext>Created attachment 80302
Attempt to fix the build failure</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>340763</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-01-27 01:05:51 -0800</bug_when>
    <thetext>Attachment 80302 did not build on chromium:
Build output: http://queues.webkit.org/results/7535332</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>340764</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-01-27 01:07:02 -0800</bug_when>
    <thetext>Attachment 80302 did not build on gtk:
Build output: http://queues.webkit.org/results/7544351</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>340766</commentid>
    <comment_count>8</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2011-01-27 01:09:40 -0800</bug_when>
    <thetext>Attachment 80300 did not build on win:
Build output: http://queues.webkit.org/results/7578378</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>340768</commentid>
    <comment_count>9</comment_count>
      <attachid>80304</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-01-27 01:12:00 -0800</bug_when>
    <thetext>Created attachment 80304
Another trial...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>340781</commentid>
    <comment_count>10</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2011-01-27 01:36:00 -0800</bug_when>
    <thetext>Attachment 80302 did not build on win:
Build output: http://queues.webkit.org/results/7493380</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>340782</commentid>
    <comment_count>11</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2011-01-27 01:37:05 -0800</bug_when>
    <thetext>Attachment 80304 did not build on win:
Build output: http://queues.webkit.org/results/7598374</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>340816</commentid>
    <comment_count>12</comment_count>
      <attachid>80314</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-01-27 03:35:25 -0800</bug_when>
    <thetext>Created attachment 80314
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>341085</commentid>
    <comment_count>13</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-01-27 15:34:50 -0800</bug_when>
    <thetext>Purple bot looks due to the delay. I think it&apos;s ready for a review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>344551</commentid>
    <comment_count>14</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-02-02 23:57:33 -0800</bug_when>
    <thetext>Could anyone take a look? Any feedback is appreciated.

This is a part of TextChecker sharing effort.
This change will separate platform API (TextCheckerClient) for TextChecker out from EditorClient.
I&apos;ll port hunspell-based spellchecker under WebKit/shared/WebCoreSupport/TextCheckerClientHunspell
once this change land.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>344552</commentid>
    <comment_count>15</comment_count>
      <attachid>80314</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-02-03 00:09:39 -0800</bug_when>
    <thetext>Comment on attachment 80314
Patch

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

&gt; Source/WebCore/page/EditorClient.h:174
&gt;      virtual void updateSpellingUIWithMisspelledWord(const String&amp;) = 0;
&gt;      virtual void showSpellingUI(bool show) = 0;
&gt;      virtual bool spellingUIIsShowing() = 0;

Why are these methods not moved?  I&apos;m having a trouble knowing what&apos;s the boundary between TextCheckingClient and EditorClient.  Could you clarify what you&apos;re trying to accomplish here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>344559</commentid>
    <comment_count>16</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-02-03 00:37:47 -0800</bug_when>
    <thetext>Hi Ryosuke, thank you for your response!

&gt; 
&gt; &gt; Source/WebCore/page/EditorClient.h:174
&gt; &gt;      virtual void updateSpellingUIWithMisspelledWord(const String&amp;) = 0;
&gt; &gt;      virtual void showSpellingUI(bool show) = 0;
&gt; &gt;      virtual bool spellingUIIsShowing() = 0;
&gt; 
&gt; Why are these methods not moved?  I&apos;m having a trouble knowing what&apos;s the boundary between TextCheckingClient and EditorClient.  Could you clarify what you&apos;re trying to accomplish here?

TextCheckingClient is for abstracting out spell-checking backends like Hunspell, not for controlling GUI.
Because methods above are for controlling, GUI (pop up, etc), I left them on EditorClient.

 I assume that Spell-checkers have non-GUI backends, For Hunspell this is true.
NSSpellChecker is also separating its Panel UI to NSPanell instance (NSSpellChecker::spellingPanel).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>344569</commentid>
    <comment_count>17</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-02-03 00:56:07 -0800</bug_when>
    <thetext>(In reply to comment #16)
&gt; TextCheckingClient is for abstracting out spell-checking backends like Hunspell, not for controlling GUI.
&gt; Because methods above are for controlling, GUI (pop up, etc), I left them on EditorClient.
&gt;
&gt;  I assume that Spell-checkers have non-GUI backends, For Hunspell this is true.
&gt; NSSpellChecker is also separating its Panel UI to NSPanell instance (NSSpellChecker::spellingPanel).

Ok.  I think we need to give a better name to the class to reflect this concept.  How about SpellCheckingClient or SpellCheckDelegate?  Delegate might make more semantic sense here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>344587</commentid>
    <comment_count>18</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-02-03 01:35:16 -0800</bug_when>
    <thetext>&gt; Ok.  I think we need to give a better name to the class to reflect this concept.  How about SpellCheckingClient or SpellCheckDelegate?  Delegate might make more semantic sense here.
Hmm...

The name &quot;TextChecker&quot; is actually from Cocoa.
http://codesearch.google.com/codesearch?as_q=NSTextChecker&amp;hl=en&amp;vert=chromium
The class doesn&apos;t only check spelling, but also check the grammar. So TextChecker looks appropriate. 

In my undestanding, &quot;Client&quot; prefix is a standard naming for classes that handle 
client or platform specific behavior. In WebCore, there are no &quot;XxDelegate&quot; class but 
manu &quot;Client&quot; classes. But I&apos;m not sure the convention is appropriate for this case.
What do you think?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>344588</commentid>
    <comment_count>19</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-02-03 01:37:19 -0800</bug_when>
    <thetext>(In reply to comment #18)
&gt; The name &quot;TextChecker&quot; is actually from Cocoa.
&gt; http://codesearch.google.com/codesearch?as_q=NSTextChecker&amp;hl=en&amp;vert=chromium
&gt; The class doesn&apos;t only check spelling, but also check the grammar. So TextChecker looks appropriate. 

Ah I see. I wasn&apos;t aware of this.

&gt; In my undestanding, &quot;Client&quot; prefix is a standard naming for classes that handle 
&gt; client or platform specific behavior. In WebCore, there are no &quot;XxDelegate&quot; class but 
&gt; manu &quot;Client&quot; classes. But I&apos;m not sure the convention is appropriate for this case.
&gt; What do you think?

Ok. I think TextCheckingClient seems fine then.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>344590</commentid>
    <comment_count>20</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-02-03 01:38:24 -0800</bug_when>
    <thetext>(In reply to comment #19)
&gt; Ok. I think TextCheckingClient seems fine then.

Oops, I meant to say TextCheckerClient seems fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>344669</commentid>
    <comment_count>21</comment_count>
      <attachid>80314</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-02-03 06:31:00 -0800</bug_when>
    <thetext>Comment on attachment 80314
Patch

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

&gt; Source/WebCore/WebCore.xcodeproj/project.pbxproj:22447
&gt; +				A7151BD812F1558F005A0F64 /* TextCheckerClient.h in Headers */,

You should put this in the right lexicological order.

&gt; Source/WebCore/loader/EmptyClients.h:396
&gt; -class EmptyEditorClient : public EditorClient {
&gt; +class EmptyEditorClient : public EditorClient, public TextCheckerClient {

I&apos;m not sure if EmptyEditorClient should be both EditorClient and TextCheckerClient.  I think we should have a separate EmptyTextCheckerClient.

&gt; Source/WebCore/page/EditorClient.h:73
&gt; +class TextCheckerClient;

Huh, shouldn&apos;t T come before V?

&gt; Source/WebCore/page/EditorClient.h:163
&gt; +    virtual TextCheckerClient* textChecker() = 0;

Is it common for a client to return another client?  If not, we should probably add textCheckingClient() to Editor, and let Page return TextCheckerClient.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>349580</commentid>
    <comment_count>22</comment_count>
      <attachid>80314</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-02-10 19:43:55 -0800</bug_when>
    <thetext>Comment on attachment 80314
Patch

r- per my comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>350524</commentid>
    <comment_count>23</comment_count>
      <attachid>82286</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-02-13 21:42:11 -0800</bug_when>
    <thetext>Created attachment 82286
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>350526</commentid>
    <comment_count>24</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-02-13 21:51:53 -0800</bug_when>
    <thetext>Ryosuke, thank you for reviewing again and I&apos;m sorry for missing your last feedback.

(In reply to comment #21)
&gt; (From update of attachment 80314 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=80314&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/WebCore.xcodeproj/project.pbxproj:22447
&gt; &gt; +				A7151BD812F1558F005A0F64 /* TextCheckerClient.h in Headers */,
&gt; 
&gt; You should put this in the right lexicological order.
Fixed.

&gt; 
&gt; &gt; Source/WebCore/loader/EmptyClients.h:396
&gt; &gt; -class EmptyEditorClient : public EditorClient {
&gt; &gt; +class EmptyEditorClient : public EditorClient, public TextCheckerClient {
&gt; 
&gt; I&apos;m not sure if EmptyEditorClient should be both EditorClient and TextCheckerClient.  I think we should have a separate EmptyTextCheckerClient.
Defined EmptyTextCheckerClient and return it.

&gt; 
&gt; &gt; Source/WebCore/page/EditorClient.h:73
&gt; &gt; +class TextCheckerClient;
&gt; 
&gt; Huh, shouldn&apos;t T come before V?
Oops. Fixed.

&gt; 
&gt; &gt; Source/WebCore/page/EditorClient.h:163
&gt; &gt; +    virtual TextCheckerClient* textChecker() = 0;
&gt; 
&gt; Is it common for a client to return another client?  If not, we should probably add textCheckingClient() to Editor, and let Page return TextCheckerClient.
There isn&apos;t a common pattern. But here is a reason:
In contrast of other client objects which are owned by Page (PagecClient),
TextCheckerClient is owned by EditorClien   because of compatibility reason. 
(At this time EditorClient and TextChekerClient is a same object.)
If TextCheckerClient implementation is a standalone object, holding it on Page is reasonable.
But splitting not only interface abut also its implementation is too big to change at once.
I&apos;d like to do it after all migration is done if it&apos;s good to do.

&gt; we should probably add textCheckingClient() to Editor
Done this part.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>350616</commentid>
    <comment_count>25</comment_count>
      <attachid>82286</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-02-14 05:51:39 -0800</bug_when>
    <thetext>Comment on attachment 82286
Patch

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

r- for some nits.  Almost there!

&gt; Source/WebCore/ChangeLog:9
&gt; +        spellcheck related API which is splitted 

Typo: splitted should be split. (paste tense and missing period)

&gt; Source/WebCore/accessibility/mac/AccessibilityObjectWrapper.mm:491
&gt; -        client-&gt;checkSpellingOfString(charData, charLength, &amp;misspellingLocation, &amp;misspellingLength);
&gt; +        client-&gt;textChecker()-&gt;checkSpellingOfString(charData, charLength, &amp;misspellingLocation, &amp;misspellingLength);

Given that &quot;client&quot; isn&apos;t used anywhere else, we should be calling Editor::textChecker here.

&gt; Source/WebCore/editing/SpellChecker.cpp:109
&gt; -    m_client-&gt;requestCheckingOfString(this, m_requestSequence, m_requestText);
&gt; +    m_client-&gt;textChecker()-&gt;requestCheckingOfString(this, m_requestSequence, m_requestText);

Should SpellChecker take TextCheckerClient instead of EditorClient (or maybe both)?  It seems odd that this is the only place we access m_client but only thing we do is to obtain its TextCheckerClient.

&gt; Source/WebCore/editing/TextCheckingHelper.cpp:183
&gt; -            m_client-&gt;checkSpellingOfString(chars, len, &amp;misspellingLocation, &amp;misspellingLength);
&gt; +            m_client-&gt;textChecker()-&gt;checkSpellingOfString(chars, len, &amp;misspellingLocation, &amp;misspellingLength);

Same comment about m_client used only to obtain TextCheckerClient.  But I guess calls updateSpellingUIWithGrammarString and updateSpellingUIWithMisspelledWord prevent moving forward her.

&gt; Source/WebCore/platform/text/TextCheckerClient.h:15
&gt; + * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS&apos;&apos; AND ANY
&gt; + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE

We should probably use other version that doesn&apos;t explicitly say Apple since the code in this file has been contributed by Apple, Nokia, &amp; Google.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>351067</commentid>
    <comment_count>26</comment_count>
      <attachid>82409</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-02-14 19:50:53 -0800</bug_when>
    <thetext>Created attachment 82409
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>351071</commentid>
    <comment_count>27</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-02-14 19:57:16 -0800</bug_when>
    <thetext>Hi Ryosuke, thank you for your detailed review!

&gt; &gt; Source/WebCore/ChangeLog:9
&gt; &gt; +        spellcheck related API which is splitted 
&gt; 
&gt; Typo: splitted should be split. (paste tense and missing period)
Fixed. Good catch...

&gt; 
&gt; &gt; Source/WebCore/accessibility/mac/AccessibilityObjectWrapper.mm:491
&gt; &gt; -        client-&gt;checkSpellingOfString(charData, charLength, &amp;misspellingLocation, &amp;misspellingLength);
&gt; &gt; +        client-&gt;textChecker()-&gt;checkSpellingOfString(charData, charLength, &amp;misspellingLocation, &amp;misspellingLength);
&gt; 
&gt; Given that &quot;client&quot; isn&apos;t used anywhere else, we should be calling Editor::textChecker here.
Fixed.

&gt; 
&gt; &gt; Source/WebCore/editing/SpellChecker.cpp:109
&gt; &gt; -    m_client-&gt;requestCheckingOfString(this, m_requestSequence, m_requestText);
&gt; &gt; +    m_client-&gt;textChecker()-&gt;requestCheckingOfString(this, m_requestSequence, m_requestText);
&gt; 
&gt; Should SpellChecker take TextCheckerClient instead of EditorClient (or maybe both)?  It seems odd that this is the only place we access m_client but only thing we do is to obtain its TextCheckerClient.
&gt; 
Good point. Fixed.

&gt; &gt; Source/WebCore/editing/TextCheckingHelper.cpp:183
&gt; &gt; -            m_client-&gt;checkSpellingOfString(chars, len, &amp;misspellingLocation, &amp;misspellingLength);
&gt; &gt; +            m_client-&gt;textChecker()-&gt;checkSpellingOfString(chars, len, &amp;misspellingLocation, &amp;misspellingLength);
&gt; 
&gt; Same comment about m_client used only to obtain TextCheckerClient.  But I guess calls updateSpellingUIWithGrammarString and updateSpellingUIWithMisspelledWord prevent moving forward her.
Yes. actually we/I need to consider the design around TextCheckingHelper and SpellChecker.
I want spell-checking concept out of Editor into its own class, but don&apos;t have clear idea yet.

&gt; 
&gt; &gt; Source/WebCore/platform/text/TextCheckerClient.h:15
&gt; &gt; + * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS&apos;&apos; AND ANY
&gt; &gt; + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
&gt; 
&gt; We should probably use other version that doesn&apos;t explicitly say Apple since the code in this file has been contributed by Apple, Nokia, &amp; Google.
Replaced with &quot;contributors&quot; version.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>351074</commentid>
    <comment_count>28</comment_count>
      <attachid>82409</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-02-14 20:07:43 -0800</bug_when>
    <thetext>Comment on attachment 82409
Patch

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

r=me provided you fix copyright statement &amp; a really long comment as described below.

&gt; Source/WebCore/editing/SpellChecker.cpp:46
&gt; -SpellChecker::SpellChecker(Frame* frame, EditorClient* client)
&gt; +SpellChecker::SpellChecker(Frame* frame, TextCheckerClient* client)

Ah, beautiful! Only one line changed in this file.

&gt; Source/WebCore/platform/text/TextCheckerClient.h:18
&gt; + *     * Neither the name of Google Inc. nor the names of its
&gt; + * contributors may be used to endorse or promote products derived from
&gt; + * this software without specific prior written permission.

Mn... you grabbed a wrong version here.  Take a look at EditingStyle.cpp.

&gt; Source/WebCore/platform/text/TextCheckerClient.h:82
&gt; +    // For spellcheckers that support multiple languages, it&apos;s often important to be able to identify the language in order to provide more accurate correction suggestions. Caller can pass in more text in &quot;context&quot; to aid such spellcheckers on language identification. Noramlly it&apos;s the text surrounding the &quot;word&quot; for which we are getting correction suggestions.

You should split this long sentence into several lines.  On IDEs that permit 1000+ columns per line, this line will be hard to read.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>351132</commentid>
    <comment_count>29</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-02-15 00:28:41 -0800</bug_when>
    <thetext>Committed r78533: &lt;http://trac.webkit.org/changeset/78533&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>80300</attachid>
            <date>2011-01-27 00:35:48 -0800</date>
            <delta_ts>2011-01-27 00:58:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-53213-20110127173546.patch</filename>
            <type>text/plain</type>
            <size>42835</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA0OWI0YWY0YTA1YzNiMTExYWUyODgwMDRjODU5MDk3Nzc3MjJjY2E2Li42
YWU0ODU3ZTEzYzYwZTBlYjg4MzUzNWQ4MmMzMWVmMWQ2MDhiYWFiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsNDIgQEAKKzIwMTEtMDEtMjYgIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5j
b20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVm
YWN0b3Jpbmc6IEV4dHJhY3QgVGV4dENoZWNrZXJDbGllbnQgZnJvbSBFZGl0b3JDbGllbnQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUzMjEzCisgICAg
ICAgIAorICAgICAgICBUaGlzIGlzIHRoZSBmaXJzdCBzdGVwIGZvciBzaGFyaW5nIHNwZWxsLWNo
ZWNraW5nIGNvZGViYXNlCisgICAgICAgIGJldHdlZW4gcG9ydHMuIEEgc3RhbmRhbG9uZSBUZXh0
Q2hlY2tlckNsaWVudCBpbXBsZW1lbnRhdGlvbgorICAgICAgICBzaG91bGQgYmUgZG9uZSBpbiBm
dXR1cmUgY2hhbmdlcy4KKworICAgICAgICBObyBuZXcgdGVzdHMuIE5vIGJlaGF2aW9yYWwgY2hh
bmdlLgorCisgICAgICAgICogR05VbWFrZWZpbGUuYW06CisgICAgICAgICogV2ViQ29yZS5neXBp
OgorICAgICAgICAqIFdlYkNvcmUucHJvOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNv
cmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9BY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlci5t
bToKKyAgICAgICAgKEFYQXR0cmlidXRlU3RyaW5nU2V0U3BlbGxpbmcpOgorICAgICAgICAqIGVk
aXRpbmcvRWRpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6aWdub3JlU3BlbGxp
bmcpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpsZWFyblNwZWxsaW5nKToKKyAgICAgICAg
KFdlYkNvcmU6OkVkaXRvcjo6aXNTZWxlY3Rpb25NaXNzcGVsbGVkKToKKyAgICAgICAgKFdlYkNv
cmU6OkVkaXRvcjo6Z3Vlc3Nlc0Zvck1pc3NwZWxsZWRTZWxlY3Rpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6RWRpdG9yOjptYXJrQWxsTWlzc3BlbGxpbmdzQW5kQmFkR3JhbW1hckluUmFuZ2VzKToK
KyAgICAgICAgKiBlZGl0aW5nL1NwZWxsQ2hlY2tlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
cGVsbENoZWNrZXI6OnJlcXVlc3RDaGVja2luZ0Zvcik6CisgICAgICAgICogZWRpdGluZy9UZXh0
Q2hlY2tpbmdIZWxwZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dENoZWNraW5nSGVscGVy
OjpmaW5kRmlyc3RNaXNzcGVsbGluZyk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0Q2hlY2tpbmdI
ZWxwZXI6OmZpbmRGaXJzdE1pc3NwZWxsaW5nT3JCYWRHcmFtbWFyKToKKyAgICAgICAgKFdlYkNv
cmU6OlRleHRDaGVja2luZ0hlbHBlcjo6ZmluZEZpcnN0QmFkR3JhbW1hcik6CisgICAgICAgIChX
ZWJDb3JlOjpUZXh0Q2hlY2tpbmdIZWxwZXI6Omd1ZXNzZXNGb3JNaXNzcGVsbGVkT3JVbmdyYW1t
YXRpY2FsUmFuZ2UpOgorICAgICAgICAqIGxvYWRlci9FbXB0eUNsaWVudHMuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkVtcHR5RWRpdG9yQ2xpZW50Ojp0ZXh0Q2hlY2tlcik6CisgICAgICAgICogcGFn
ZS9FZGl0b3JDbGllbnQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L1RleHRDaGVja2VyQ2xp
ZW50Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6VGV4dENoZWNrZXJDbGllbnQ6On5UZXh0
Q2hlY2tlckNsaWVudCk6CisgICAgICAgIAogMjAxMS0wMS0yNiAgU2FtIFdlaW5pZyAgPHNhbUB3
ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE1hY2llaiBTdGFjaG93aWFrLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0gYi9Tb3VyY2UvV2ViQ29yZS9H
TlVtYWtlZmlsZS5hbQppbmRleCA5OWVhNDQxMDgwYjI4ZTNjYTZiM2U3MTcyZTEyN2QyY2RkMjRi
YTE1Li41MmQwMjZmYzc3MTYyYjZhOWZmZmIyMThmMDg5NDE2ZDJiNjI0YmRjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVt
YWtlZmlsZS5hbQpAQCAtMjYzMSw2ICsyNjMxLDcgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRCb3VuZGFyaWVzLmNwcCBcCiAJU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0Qm91bmRhcmllcy5oIFwKIAlTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmggXAorCVNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3RleHQvVGV4dENoZWNrZXJDbGllbnQuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vdGV4dC9UZXh0Q29kZWMuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1Rl
eHRDb2RlYy5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRDb2RlY0xhdGlu
MS5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDRhNGUwNGM5ZTBiNDIzZjdmZjI0ZTIzOWU4Mjhk
YzYwZjNkNjMwMTQuLjY3NzE1NDY5YTEyYWQ4YzAzMWEyOWQ5YWJmYTVjMTRlYzg3NmM4MTkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmd5cGkKQEAgLTMzMzEsNiArMzMzMSw3IEBACiAgICAgICAgICAgICAncGxhdGZv
cm0vdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS90ZXh0
L1RleHRCcmVha0l0ZXJhdG9ySUNVLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vdGV4dC9U
ZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVLmgnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL3Rl
eHQvVGV4dENoZWNrZXJDbGllbnQuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vdGV4dC9UZXh0
Q29kZWMuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS90ZXh0L1RleHRDb2RlYy5oJywKICAg
ICAgICAgICAgICdwbGF0Zm9ybS90ZXh0L1RleHRDb2RlY0lDVS5jcHAnLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwpp
bmRleCBlNjRhZTk3YTQ5NjI5YmI5OGNkZDI0NThlZDE2NGJhNTRkYjZlY2ZiLi5hOGJkNGQ1OTU0
YWRhYzgyNGZmMTFlNDQxZjgzMjljODBjZDkxYzlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnBybworKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwpAQCAtMjAzNyw2
ICsyMDM3LDcgQEAgSEVBREVSUyArPSBcCiAgICAgcGFnZS9EcmFnQ29udHJvbGxlci5oIFwKICAg
ICBwYWdlL0V2ZW50SGFuZGxlci5oIFwKICAgICBwYWdlL0V2ZW50U291cmNlLmggXAorICAgIHBh
Z2UvRWRpdG9yQ2xpZW50LmggXAogICAgIHBhZ2UvRm9jdXNDb250cm9sbGVyLmggXAogICAgIHBh
Z2UvRnJhbWUuaCBcCiAgICAgcGFnZS9GcmFtZVRyZWUuaCBcCkBAIC0yMTYxLDYgKzIxNjIsNyBA
QCBIRUFERVJTICs9IFwKICAgICBwbGF0Zm9ybS9LVVJMLmggXAogICAgIHBsYXRmb3JtL0xlbmd0
aC5oIFwKICAgICBwbGF0Zm9ybS90ZXh0L0xpbmVFbmRpbmcuaCBcCisgICAgcGxhdGZvcm0vdGV4
dC9UZXh0Q2hlY2tlckNsaWVudC5oIFwKICAgICBwbGF0Zm9ybS9MaW5rSGFzaC5oIFwKICAgICBw
bGF0Zm9ybS9Mb2dnaW5nLmggXAogICAgIHBsYXRmb3JtL0xhbmd1YWdlLmggXApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCBlMmNlZmEwY2ZiMzBj
ZjM1MDBhMjVhMTYyYWMzOGU1ZjZhYWUwZGRmLi40ODRmNWZkMmUwNzAwNGVjODQzMzU2Zjg5ZGI0
ZmRlMDA2MjhhMjMxIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9X
ZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3Jl
LnZjcHJvagpAQCAtMzAyNjEsNiArMzAyNjEsMTAgQEAKIAkJCQkJPgogCQkJCTwvRmlsZT4KIAkJ
CQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXHRleHRcVGV4dENoZWNrZXJD
bGllbnQuaCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQogCQkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXHBsYXRmb3JtXHRleHRcVGV4dENvZGVjSUNVLmNwcCIKIAkJCQkJPgogCQkJCQk8Rmls
ZUNvbmZpZ3VyYXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCAyZjIyMWZiYzRjMzQ2MzQ3NDY2YzJmZjg5NmVmNTEzZTg2MDA0
YzMzLi44NTAwNTk2YTFkNWUxNGVlMTc4MTRhMjUzOTlmNzRlMjQzNmU3YThiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zMTc0
LDYgKzMxNzQsNyBAQAogCQlBNjIyQThGQzEyMkM0NEE2MDBBNzg1QjMgLyogQmluZGluZ1NlY3Vy
aXR5QmFzZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBNjIyQThGNjEyMkM0NEE2MDBBNzg1QjMgLyogQmluZGluZ1NlY3VyaXR5QmFzZS5jcHAgKi87
IH07CiAJCUE2MjJBOEZEMTIyQzQ0QTYwMEE3ODVCMyAvKiBCaW5kaW5nU2VjdXJpdHlCYXNlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNjIyQThGNzEy
MkM0NEE2MDBBNzg1QjMgLyogQmluZGluZ1NlY3VyaXR5QmFzZS5oICovOyB9OwogCQlBNjIyQThG
RjEyMkM0NEE2MDBBNzg1QjMgLyogR2VuZXJpY0JpbmRpbmcuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE2MjJBOEY5MTIyQzQ0QTYwMEE3ODVCMyAvKiBH
ZW5lcmljQmluZGluZy5oICovOyB9OworCQlBNzE1MUJEODEyRjE1NThGMDA1QTBGNjQgLyogVGV4
dENoZWNrZXJDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEE3MTUxQkQ3MTJGMTU1OEYwMDVBMEY2NCAvKiBUZXh0Q2hlY2tlckNsaWVudC5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE3MTg3NjBF
MEIyQTEyMDEwMEExNkVDRSAvKiBEcmFnQWN0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTcxODc2MEQwQjJBMTIwMTAwQTE2RUNFIC8qIERyYWdB
Y3Rpb25zLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJQTcxODc4OTAwQjJEMDRBQzAwQTE2RUNFIC8qIERyYWdDb250cm9sbGVyTWFjLm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTcxODc4OEYwQjJEMDRB
QzAwQTE2RUNFIC8qIERyYWdDb250cm9sbGVyTWFjLm1tICovOyB9OwogCQlBNzNGOTVGRTEyQzk3
QkZFMDAzMUFBRjkgLyogUm91bmRlZEludFJlY3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTczRjk1RkMxMkM5N0JGRTAwMzFBQUY5IC8qIFJvdW5k
ZWRJbnRSZWN0LmNwcCAqLzsgfTsKQEAgLTk1NjcsNiArOTU2OCw3IEBACiAJCUE2MjJBOEY2MTIy
QzQ0QTYwMEE3ODVCMyAvKiBCaW5kaW5nU2VjdXJpdHlCYXNlLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEJpbmRpbmdTZWN1cml0eUJhc2UuY3BwOyBwYXRoID0gZ2Vu
ZXJpYy9CaW5kaW5nU2VjdXJpdHlCYXNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQTYyMkE4RjcxMjJDNDRBNjAwQTc4NUIzIC8qIEJpbmRpbmdTZWN1cml0eUJhc2UuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQmluZGluZ1NlY3VyaXR5QmFzZS5oOyBwYXRo
ID0gZ2VuZXJpYy9CaW5kaW5nU2VjdXJpdHlCYXNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUE2MjJBOEY5MTIyQzQ0QTYwMEE3ODVCMyAvKiBHZW5lcmljQmluZGluZy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBHZW5lcmljQmluZGluZy5oOyBwYXRoID0gZ2Vu
ZXJpYy9HZW5lcmljQmluZGluZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBNzE1
MUJENzEyRjE1NThGMDA1QTBGNjQgLyogVGV4dENoZWNrZXJDbGllbnQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gVGV4dENoZWNrZXJDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQTcxODc2MEQwQjJBMTIwMTAwQTE2RUNFIC8qIERyYWdBY3Rpb25zLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERyYWdBY3Rpb25zLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3MTg3ODhGMEIyRDA0QUMwMEExNkVDRSAvKiBEcmFnQ29u
dHJvbGxlck1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERy
YWdDb250cm9sbGVyTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzFBNzBD
OTExQUZCMDIwMDA5ODlENkQgLyogSFRNTE1ldGVyRWxlbWVudC5pZGwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gSFRNTE1ldGVyRWxlbWVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC0xNzU4NCw2ICsxNzU4Niw3IEBACiAJCQkJQjJDM0RBMDYwRDAwNkMxRDAwRUY2RjI2IC8q
IFRleHRCcmVha0l0ZXJhdG9yLmggKi8sCiAJCQkJQjJDM0RBMDcwRDAwNkMxRDAwRUY2RjI2IC8q
IFRleHRCcmVha0l0ZXJhdG9ySUNVLmNwcCAqLywKIAkJCQlCMkMzREEwODBEMDA2QzFEMDBFRjZG
MjYgLyogVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVS5oICovLAorCQkJCUE3MTUxQkQ3MTJG
MTU1OEYwMDVBMEY2NCAvKiBUZXh0Q2hlY2tlckNsaWVudC5oICovLAogCQkJCUIyQzNEQTA5MEQw
MDZDMUQwMEVGNkYyNiAvKiBUZXh0Q29kZWMuY3BwICovLAogCQkJCUIyQzNEQTBBMEQwMDZDMUQw
MEVGNkYyNiAvKiBUZXh0Q29kZWMuaCAqLywKIAkJCQlCMkMzREEwQjBEMDA2QzFEMDBFRjZGMjYg
LyogVGV4dENvZGVjSUNVLmNwcCAqLywKQEAgLTIyNDQxLDYgKzIyNDQ0LDcgQEAKIAkJCQk0RjJE
MjA1NDEyRUFFN0IzMDA1QzI4NzQgLyogSW5zcGVjdG9yQWdlbnQuaCBpbiBIZWFkZXJzICovLAog
CQkJCUJDOTU4NUUxMTJGMDk4OTUwMDc1NTgyMSAvKiBQbGF0Zm9ybUdlc3R1cmVFdmVudC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJRTEzNEY1QUIxMkVFMzQzRjAwNEVDNThEIC8qIEludFJlY3RIYXNo
LmggaW4gSGVhZGVycyAqLywKKwkJCQlBNzE1MUJEODEyRjE1NThGMDA1QTBGNjQgLyogVGV4dENo
ZWNrZXJDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3lt
ZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9tYWMvQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlci5tbQpp
bmRleCBjMmUzNzI0ZWQwZTk0NTFlOTI0MWM5MTEzNzEwMTFlNjM1MDdiNzI1Li4zNmEzNjFiN2Y0
N2UxNDBhMjRlZjAyNDM3NTgzZGVlYzAzNzc2OTlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L21hYy9BY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlci5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBl
ci5tbQpAQCAtNTgsNiArNTgsNyBAQAogI2ltcG9ydCAiU2Nyb2xsVmlldy5oIgogI2ltcG9ydCAi
U2VsZWN0aW9uQ29udHJvbGxlci5oIgogI2ltcG9ydCAiU2ltcGxlRm9udERhdGEuaCIKKyNpbXBv
cnQgIlRleHRDaGVja2VyQ2xpZW50LmgiCiAjaW1wb3J0ICJUZXh0SXRlcmF0b3IuaCIKICNpbXBv
cnQgIldlYkNvcmVGcmFtZVZpZXcuaCIKICNpbXBvcnQgIldlYkNvcmVPYmpDRXh0cmFzLmgiCkBA
IC00NDIsNyArNDQzLDcgQEAgc3RhdGljIHZvaWQgQVhBdHRyaWJ1dGVTdHJpbmdTZXRTcGVsbGlu
ZyhOU011dGFibGVBdHRyaWJ1dGVkU3RyaW5nKiBhdHRyU3RyaW5nLAogCiAgICAgICAgIGludCBt
aXNzcGVsbGluZ0xvY2F0aW9uID0gLTE7CiAgICAgICAgIGludCBtaXNzcGVsbGluZ0xlbmd0aCA9
IDA7Ci0gICAgICAgIGNsaWVudC0+Y2hlY2tTcGVsbGluZ09mU3RyaW5nKGNoYXJEYXRhLCBjaGFy
TGVuZ3RoLCAmbWlzc3BlbGxpbmdMb2NhdGlvbiwgJm1pc3NwZWxsaW5nTGVuZ3RoKTsKKyAgICAg
ICAgY2xpZW50LT50ZXh0Q2hlY2tlcigpLT5jaGVja1NwZWxsaW5nT2ZTdHJpbmcoY2hhckRhdGEs
IGNoYXJMZW5ndGgsICZtaXNzcGVsbGluZ0xvY2F0aW9uLCAmbWlzc3BlbGxpbmdMZW5ndGgpOwog
ICAgICAgICBpZiAobWlzc3BlbGxpbmdMb2NhdGlvbiA9PSAtMSB8fCAhbWlzc3BlbGxpbmdMZW5n
dGgpCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0VkaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5j
cHAKaW5kZXggM2FjZWMyN2EzODM0NTVjNTViMzlhMzA5OWI0ZGM3MjA0ZWYyZjA4NS4uYTgxZWJj
OTA0NTY5ZWU1NjA1NTY3MmM2MzAyZGE2OGFkMjA1ZTA5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRp
dG9yLmNwcApAQCAtNjUsNiArNjUsNyBAQAogI2luY2x1ZGUgIk5vZGVMaXN0LmgiCiAjaW5jbHVk
ZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBhc3RlYm9hcmQuaCIKKyNpbmNsdWRlICJUZXh0Q2hlY2tl
ckNsaWVudC5oIgogI2luY2x1ZGUgIlRleHRDaGVja2luZ0hlbHBlci5oIgogI2luY2x1ZGUgIlJl
bW92ZUZvcm1hdENvbW1hbmQuaCIKICNpbmNsdWRlICJSZW5kZXJCbG9jay5oIgpAQCAtMTczNyw3
ICsxNzM4LDcgQEAgdm9pZCBFZGl0b3I6Omlnbm9yZVNwZWxsaW5nKCkKIAogICAgIFN0cmluZyB0
ZXh0ID0gc2VsZWN0ZWRUZXh0KCk7CiAgICAgQVNTRVJUKHRleHQubGVuZ3RoKCkpOwotICAgIGNs
aWVudCgpLT5pZ25vcmVXb3JkSW5TcGVsbERvY3VtZW50KHRleHQpOworICAgIGNsaWVudCgpLT50
ZXh0Q2hlY2tlcigpLT5pZ25vcmVXb3JkSW5TcGVsbERvY3VtZW50KHRleHQpOwogfQogCiB2b2lk
IEVkaXRvcjo6bGVhcm5TcGVsbGluZygpCkBAIC0xNzUwLDcgKzE3NTEsNyBAQCB2b2lkIEVkaXRv
cjo6bGVhcm5TcGVsbGluZygpCiAKICAgICBTdHJpbmcgdGV4dCA9IHNlbGVjdGVkVGV4dCgpOwog
ICAgIEFTU0VSVCh0ZXh0Lmxlbmd0aCgpKTsKLSAgICBjbGllbnQoKS0+bGVhcm5Xb3JkKHRleHQp
OworICAgIGNsaWVudCgpLT50ZXh0Q2hlY2tlcigpLT5sZWFybldvcmQodGV4dCk7CiB9CiAKIHZv
aWQgRWRpdG9yOjphZHZhbmNlVG9OZXh0TWlzc3BlbGxpbmcoYm9vbCBzdGFydEJlZm9yZVNlbGVj
dGlvbikKQEAgLTE5NDAsNyArMTk0MSw3IEBAIGJvb2wgRWRpdG9yOjppc1NlbGVjdGlvbk1pc3Nw
ZWxsZWQoKQogICAgIAogICAgIGludCBtaXNzcGVsbGluZ0xvY2F0aW9uID0gLTE7CiAgICAgaW50
IG1pc3NwZWxsaW5nTGVuZ3RoID0gMDsKLSAgICBjbGllbnQoKS0+Y2hlY2tTcGVsbGluZ09mU3Ry
aW5nKHNlbGVjdGVkU3RyaW5nLmNoYXJhY3RlcnMoKSwgbGVuZ3RoLCAmbWlzc3BlbGxpbmdMb2Nh
dGlvbiwgJm1pc3NwZWxsaW5nTGVuZ3RoKTsKKyAgICBjbGllbnQoKS0+dGV4dENoZWNrZXIoKS0+
Y2hlY2tTcGVsbGluZ09mU3RyaW5nKHNlbGVjdGVkU3RyaW5nLmNoYXJhY3RlcnMoKSwgbGVuZ3Ro
LCAmbWlzc3BlbGxpbmdMb2NhdGlvbiwgJm1pc3NwZWxsaW5nTGVuZ3RoKTsKICAgICAKICAgICAv
LyBUaGUgc2VsZWN0aW9uIG9ubHkgY291bnRzIGFzIG1pc3NwZWxsZWQgaWYgdGhlIHNlbGVjdGVk
IHRleHQgaXMgZXhhY3RseSBvbmUgbWlzc3BlbGxlZCB3b3JkCiAgICAgaWYgKG1pc3NwZWxsaW5n
TGVuZ3RoICE9IGxlbmd0aCkKQEAgLTE5ODQsNyArMTk4NSw3IEBAIFZlY3RvcjxTdHJpbmc+IEVk
aXRvcjo6Z3Vlc3Nlc0Zvck1pc3NwZWxsZWRTZWxlY3Rpb24oKQogCiAgICAgVmVjdG9yPFN0cmlu
Zz4gZ3Vlc3NlczsKICAgICBpZiAoY2xpZW50KCkpCi0gICAgICAgIGNsaWVudCgpLT5nZXRHdWVz
c2VzRm9yV29yZChzZWxlY3RlZFN0cmluZywgU3RyaW5nKCksIGd1ZXNzZXMpOworICAgICAgICBj
bGllbnQoKS0+dGV4dENoZWNrZXIoKS0+Z2V0R3Vlc3Nlc0ZvcldvcmQoc2VsZWN0ZWRTdHJpbmcs
IFN0cmluZygpLCBndWVzc2VzKTsKICAgICByZXR1cm4gZ3Vlc3NlczsKIH0KIApAQCAtMjI4NCw3
ICsyMjg1LDcgQEAgdm9pZCBFZGl0b3I6Om1hcmtBbGxNaXNzcGVsbGluZ3NBbmRCYWRHcmFtbWFy
SW5SYW5nZXMoVGV4dENoZWNraW5nT3B0aW9ucyB0ZXh0Q2gKICAgICAgICAgaWYgKHNob3VsZE1h
cmtTcGVsbGluZyAmJiBpc0F1dG9tYXRpY1NwZWxsaW5nQ29ycmVjdGlvbkVuYWJsZWQoKSkKICAg
ICAgICAgICAgIGNoZWNraW5nVHlwZXMgfD0gVGV4dENoZWNraW5nVHlwZUNvcnJlY3Rpb247CiAg
ICAgfQotICAgIGNsaWVudCgpLT5jaGVja1RleHRPZlBhcmFncmFwaChwYXJhZ3JhcGgudGV4dENo
YXJhY3RlcnMoKSwgcGFyYWdyYXBoLnRleHRMZW5ndGgoKSwgY2hlY2tpbmdUeXBlcywgcmVzdWx0
cyk7CisgICAgY2xpZW50KCktPnRleHRDaGVja2VyKCktPmNoZWNrVGV4dE9mUGFyYWdyYXBoKHBh
cmFncmFwaC50ZXh0Q2hhcmFjdGVycygpLCBwYXJhZ3JhcGgudGV4dExlbmd0aCgpLCBjaGVja2lu
Z1R5cGVzLCByZXN1bHRzKTsKIAogI2lmIFNVUFBPUlRfQVVUT0NPUlJFQ1RJT05fUEFORUwKICAg
ICAvLyBJZiB0aGlzIGNoZWNraW5nIGlzIG9ubHkgZm9yIHNob3dpbmcgY29ycmVjdGlvbiBwYW5l
bCwgd2Ugc2hvdWxkbid0IGJvdGhlciB0byBtYXJrIG1pc3NwZWxsaW5ncy4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BlbGxDaGVja2VyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvU3BlbGxDaGVja2VyLmNwcAppbmRleCBmMTRhNzRkNjc2NDNmMjc4N2M0MGU0MTc4
MGI3Yzc3MWExMzk4YTAzLi5hMTEzZDAyZjIwYTIwN2IxZGFjMzQ0NTU0MzcwNmYyZjIxMjA5NjNi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwZWxsQ2hlY2tlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGVsbENoZWNrZXIuY3BwCkBAIC0zNyw2ICszNyw3
IEBACiAjaW5jbHVkZSAiUmFuZ2UuaCIKICNpbmNsdWRlICJSZW5kZXJPYmplY3QuaCIKICNpbmNs
dWRlICJTZXR0aW5ncy5oIgorI2luY2x1ZGUgIlRleHRDaGVja2VyQ2xpZW50LmgiCiAjaW5jbHVk
ZSAiVGV4dEl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiaHRtbGVkaXRpbmcuaCIKIApAQCAtMTA1LDcg
KzEwNiw3IEBAIHZvaWQgU3BlbGxDaGVja2VyOjpyZXF1ZXN0Q2hlY2tpbmdGb3IoTm9kZSogbm9k
ZSkKIAogICAgIGlmICghaW5pdFJlcXVlc3Qobm9kZSkpCiAgICAgICAgIHJldHVybjsKLSAgICBt
X2NsaWVudC0+cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcodGhpcywgbV9yZXF1ZXN0U2VxdWVuY2Us
IG1fcmVxdWVzdFRleHQpOworICAgIG1fY2xpZW50LT50ZXh0Q2hlY2tlcigpLT5yZXF1ZXN0Q2hl
Y2tpbmdPZlN0cmluZyh0aGlzLCBtX3JlcXVlc3RTZXF1ZW5jZSwgbV9yZXF1ZXN0VGV4dCk7CiB9
CiAKIHN0YXRpYyBib29sIGZvcndhcmRJdGVyYXRvcihQb3NpdGlvbkl0ZXJhdG9yJiBpdGVyYXRv
ciwgaW50IGRpc3RhbmNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0
Q2hlY2tpbmdIZWxwZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0Q2hlY2tpbmdI
ZWxwZXIuY3BwCmluZGV4IGI0NDI5YTY0NmZiYzZiZjY5MjM4MzE4OGVkZTE2NzIyNzFiZTNhYWEu
LmU1NTUzZmQxMDI5MmZlNTg3ZjBlMjMzMGQxNjVlOGUxNzcyOGU0MWQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dENoZWNraW5nSGVscGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1RleHRDaGVja2luZ0hlbHBlci5jcHAKQEAgLTI5LDYgKzI5LDcgQEAK
IAogI2luY2x1ZGUgIkRvY3VtZW50TWFya2VyQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIlJhbmdl
LmgiCisjaW5jbHVkZSAiVGV4dENoZWNrZXJDbGllbnQuaCIKICNpbmNsdWRlICJUZXh0SXRlcmF0
b3IuaCIKICNpbmNsdWRlICJWaXNpYmxlUG9zaXRpb24uaCIKICNpbmNsdWRlICJ2aXNpYmxlX3Vu
aXRzLmgiCkBAIC0xNzksNyArMTgwLDcgQEAgU3RyaW5nIFRleHRDaGVja2luZ0hlbHBlcjo6Zmlu
ZEZpcnN0TWlzc3BlbGxpbmcoaW50JiBmaXJzdE1pc3NwZWxsaW5nT2Zmc2V0LCBib28KICAgICAg
ICAgICAgIAogICAgICAgICAgICAgaW50IG1pc3NwZWxsaW5nTG9jYXRpb24gPSAtMTsKICAgICAg
ICAgICAgIGludCBtaXNzcGVsbGluZ0xlbmd0aCA9IDA7Ci0gICAgICAgICAgICBtX2NsaWVudC0+
Y2hlY2tTcGVsbGluZ09mU3RyaW5nKGNoYXJzLCBsZW4sICZtaXNzcGVsbGluZ0xvY2F0aW9uLCAm
bWlzc3BlbGxpbmdMZW5ndGgpOworICAgICAgICAgICAgbV9jbGllbnQtPnRleHRDaGVja2VyKCkt
PmNoZWNrU3BlbGxpbmdPZlN0cmluZyhjaGFycywgbGVuLCAmbWlzc3BlbGxpbmdMb2NhdGlvbiwg
Jm1pc3NwZWxsaW5nTGVuZ3RoKTsKIAogICAgICAgICAgICAgLy8gNTQ5MDYyNyBzaG93cyB0aGF0
IHRoZXJlIHdhcyBzb21lIGNvZGUgcGF0aCBoZXJlIHdoZXJlIHRoZSBTdHJpbmcgY29uc3RydWN0
b3IgYmVsb3cgY3Jhc2hlcy4KICAgICAgICAgICAgIC8vIFdlIGRvbid0IGtub3cgZXhhY3RseSB3
aGF0IGNvbWJpbmF0aW9uIG9mIGJhZCBpbnB1dCBjYXVzZWQgdGhpcywgc28gd2UncmUgbWFraW5n
IHRoaXMgbXVjaApAQCAtMjc0LDcgKzI3NSw3IEBAIFN0cmluZyBUZXh0Q2hlY2tpbmdIZWxwZXI6
OmZpbmRGaXJzdE1pc3NwZWxsaW5nT3JCYWRHcmFtbWFyKGJvb2wgY2hlY2tHcmFtbWFyLCBiCiAg
ICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgVmVjdG9yPFRleHRDaGVja2luZ1Jlc3Vs
dD4gcmVzdWx0czsKICAgICAgICAgICAgICAgICB1aW50NjRfdCBjaGVja2luZ1R5cGVzID0gY2hl
Y2tHcmFtbWFyID8gKFRleHRDaGVja2luZ1R5cGVTcGVsbGluZyB8IFRleHRDaGVja2luZ1R5cGVH
cmFtbWFyKSA6IFRleHRDaGVja2luZ1R5cGVTcGVsbGluZzsKLSAgICAgICAgICAgICAgICBtX2Ns
aWVudC0+Y2hlY2tUZXh0T2ZQYXJhZ3JhcGgocGFyYWdyYXBoU3RyaW5nLmNoYXJhY3RlcnMoKSwg
cGFyYWdyYXBoU3RyaW5nLmxlbmd0aCgpLCBjaGVja2luZ1R5cGVzLCByZXN1bHRzKTsKKyAgICAg
ICAgICAgICAgICBtX2NsaWVudC0+dGV4dENoZWNrZXIoKS0+Y2hlY2tUZXh0T2ZQYXJhZ3JhcGgo
cGFyYWdyYXBoU3RyaW5nLmNoYXJhY3RlcnMoKSwgcGFyYWdyYXBoU3RyaW5nLmxlbmd0aCgpLCBj
aGVja2luZ1R5cGVzLCByZXN1bHRzKTsKICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAg
ICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcmVzdWx0cy5zaXplKCk7IGkrKykgewogICAgICAg
ICAgICAgICAgICAgICBjb25zdCBUZXh0Q2hlY2tpbmdSZXN1bHQqIHJlc3VsdCA9ICZyZXN1bHRz
W2ldOwpAQCAtNDIyLDcgKzQyMyw3IEBAIFN0cmluZyBUZXh0Q2hlY2tpbmdIZWxwZXI6OmZpbmRG
aXJzdEJhZEdyYW1tYXIoR3JhbW1hckRldGFpbCYgb3V0R3JhbW1hckRldGFpbCwKICAgICAgICAg
VmVjdG9yPEdyYW1tYXJEZXRhaWw+IGdyYW1tYXJEZXRhaWxzOwogICAgICAgICBpbnQgYmFkR3Jh
bW1hclBocmFzZUxvY2F0aW9uID0gLTE7CiAgICAgICAgIGludCBiYWRHcmFtbWFyUGhyYXNlTGVu
Z3RoID0gMDsKLSAgICAgICAgbV9jbGllbnQtPmNoZWNrR3JhbW1hck9mU3RyaW5nKHBhcmFncmFw
aC50ZXh0Q2hhcmFjdGVycygpICsgc3RhcnRPZmZzZXQsIHBhcmFncmFwaC50ZXh0TGVuZ3RoKCkg
LSBzdGFydE9mZnNldCwgZ3JhbW1hckRldGFpbHMsICZiYWRHcmFtbWFyUGhyYXNlTG9jYXRpb24s
ICZiYWRHcmFtbWFyUGhyYXNlTGVuZ3RoKTsKKyAgICAgICAgbV9jbGllbnQtPnRleHRDaGVja2Vy
KCktPmNoZWNrR3JhbW1hck9mU3RyaW5nKHBhcmFncmFwaC50ZXh0Q2hhcmFjdGVycygpICsgc3Rh
cnRPZmZzZXQsIHBhcmFncmFwaC50ZXh0TGVuZ3RoKCkgLSBzdGFydE9mZnNldCwgZ3JhbW1hckRl
dGFpbHMsICZiYWRHcmFtbWFyUGhyYXNlTG9jYXRpb24sICZiYWRHcmFtbWFyUGhyYXNlTGVuZ3Ro
KTsKICAgICAgICAgCiAgICAgICAgIGlmICghYmFkR3JhbW1hclBocmFzZUxlbmd0aCkgewogICAg
ICAgICAgICAgQVNTRVJUKGJhZEdyYW1tYXJQaHJhc2VMb2NhdGlvbiA9PSAtMSk7CkBAIC01MzUs
MTQgKzUzNiwxNCBAQCBWZWN0b3I8U3RyaW5nPiBUZXh0Q2hlY2tpbmdIZWxwZXI6Omd1ZXNzZXNG
b3JNaXNzcGVsbGVkT3JVbmdyYW1tYXRpY2FsUmFuZ2UoYm9vbAogCiAgICAgVmVjdG9yPFRleHRD
aGVja2luZ1Jlc3VsdD4gcmVzdWx0czsKICAgICB1aW50NjRfdCBjaGVja2luZ1R5cGVzID0gY2hl
Y2tHcmFtbWFyID8gKFRleHRDaGVja2luZ1R5cGVTcGVsbGluZyB8IFRleHRDaGVja2luZ1R5cGVH
cmFtbWFyKSA6IFRleHRDaGVja2luZ1R5cGVTcGVsbGluZzsKLSAgICBtX2NsaWVudC0+Y2hlY2tU
ZXh0T2ZQYXJhZ3JhcGgocGFyYWdyYXBoLnRleHRDaGFyYWN0ZXJzKCksIHBhcmFncmFwaC50ZXh0
TGVuZ3RoKCksIGNoZWNraW5nVHlwZXMsIHJlc3VsdHMpOworICAgIG1fY2xpZW50LT50ZXh0Q2hl
Y2tlcigpLT5jaGVja1RleHRPZlBhcmFncmFwaChwYXJhZ3JhcGgudGV4dENoYXJhY3RlcnMoKSwg
cGFyYWdyYXBoLnRleHRMZW5ndGgoKSwgY2hlY2tpbmdUeXBlcywgcmVzdWx0cyk7CiAgICAgCiAg
ICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHJlc3VsdHMuc2l6ZSgpOyBpKyspIHsKICAgICAg
ICAgY29uc3QgVGV4dENoZWNraW5nUmVzdWx0KiByZXN1bHQgPSAmcmVzdWx0c1tpXTsKICAgICAg
ICAgaWYgKHJlc3VsdC0+dHlwZSA9PSBUZXh0Q2hlY2tpbmdUeXBlU3BlbGxpbmcgJiYgcGFyYWdy
YXBoLmNoZWNraW5nUmFuZ2VNYXRjaGVzKHJlc3VsdC0+bG9jYXRpb24sIHJlc3VsdC0+bGVuZ3Ro
KSkgewogICAgICAgICAgICAgU3RyaW5nIG1pc3NwZWxsZWRXb3JkID0gcGFyYWdyYXBoLmNoZWNr
aW5nU3Vic3RyaW5nKCk7CiAgICAgICAgICAgICBBU1NFUlQobWlzc3BlbGxlZFdvcmQubGVuZ3Ro
KCkpOwotICAgICAgICAgICAgbV9jbGllbnQtPmdldEd1ZXNzZXNGb3JXb3JkKG1pc3NwZWxsZWRX
b3JkLCBTdHJpbmcoKSwgZ3Vlc3Nlcyk7CisgICAgICAgICAgICBtX2NsaWVudC0+dGV4dENoZWNr
ZXIoKS0+Z2V0R3Vlc3Nlc0ZvcldvcmQobWlzc3BlbGxlZFdvcmQsIFN0cmluZygpLCBndWVzc2Vz
KTsKICAgICAgICAgICAgIG1fY2xpZW50LT51cGRhdGVTcGVsbGluZ1VJV2l0aE1pc3NwZWxsZWRX
b3JkKG1pc3NwZWxsZWRXb3JkKTsKICAgICAgICAgICAgIG1pc3NwZWxsZWQgPSB0cnVlOwogICAg
ICAgICAgICAgcmV0dXJuIGd1ZXNzZXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRW1wdHlDbGllbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgK
aW5kZXggM2U1OGM3YWZiYmNiM2RlMDU2N2I2ODkyMjgyY2Q3NmE0NDQ2NmRlMS4uNDVkMTBmNTUz
NTAyMjRlMzUyMzYzZTcxYmE3MzZiZWUwNWI5ZWUyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0
eUNsaWVudHMuaApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIkRyYWdDbGllbnQuaCIKICNp
bmNsdWRlICJFZGl0Q29tbWFuZC5oIgogI2luY2x1ZGUgIkVkaXRvckNsaWVudC5oIgorI2luY2x1
ZGUgIlRleHRDaGVja2VyQ2xpZW50LmgiCiAjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCiAjaW5jbHVk
ZSAiRm9jdXNEaXJlY3Rpb24uaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVudC5oIgpAQCAt
MzkyLDcgKzM5Myw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8RnJhbWVOZXR3
b3JraW5nQ29udGV4dD4gY3JlYXRlTmV0d29ya2luZ0NvbnRleHQoKSB7IHJldHVybiBQYXNzUmVm
UHRyPEZyYW1lTmV0d29ya2luZ0NvbnRleHQ+KCk7IH0KIH07CiAKLWNsYXNzIEVtcHR5RWRpdG9y
Q2xpZW50IDogcHVibGljIEVkaXRvckNsaWVudCB7CitjbGFzcyBFbXB0eUVkaXRvckNsaWVudCA6
IHB1YmxpYyBFZGl0b3JDbGllbnQsIHB1YmxpYyBUZXh0Q2hlY2tlckNsaWVudCB7CiAgICAgV1RG
X01BS0VfTk9OQ09QWUFCTEUoRW1wdHlFZGl0b3JDbGllbnQpOyBXVEZfTUFLRV9GQVNUX0FMTE9D
QVRFRDsKIHB1YmxpYzoKICAgICBFbXB0eUVkaXRvckNsaWVudCgpIHsgfQpAQCAtNDg0LDYgKzQ4
NSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNBdXRvbWF0aWNTcGVsbGluZ0NvcnJl
Y3Rpb25FbmFibGVkKCkgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIHZvaWQgdG9nZ2xl
QXV0b21hdGljU3BlbGxpbmdDb3JyZWN0aW9uKCkgeyB9CiAjZW5kaWYKKyAgICBUZXh0Q2hlY2tl
ckNsaWVudCogdGV4dENoZWNrZXIoKSB7IHJldHVybiB0aGlzOyB9CiAgICAgdmlydHVhbCB2b2lk
IGlnbm9yZVdvcmRJblNwZWxsRG9jdW1lbnQoY29uc3QgU3RyaW5nJikgeyB9CiAgICAgdmlydHVh
bCB2b2lkIGxlYXJuV29yZChjb25zdCBTdHJpbmcmKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgY2hl
Y2tTcGVsbGluZ09mU3RyaW5nKGNvbnN0IFVDaGFyKiwgaW50LCBpbnQqLCBpbnQqKSB7IH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRWRpdG9yQ2xpZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0VkaXRvckNsaWVudC5oCmluZGV4IDcxYmEzZGRmOTUyNTk4MTJkNTYyN2NlMTIx
NWEyN2MzNzkzMGUyOWEuLmQyYjRkYTZkZTk4MDUwMjFiNDI1OTEyOGM1ZjU1ZTE2N2EwNWQ3NmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRWRpdG9yQ2xpZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9FZGl0b3JDbGllbnQuaApAQCAtNTgsNiArNTgsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiBjbGFzcyBBcmNoaXZlUmVzb3VyY2U7CiBjbGFzcyBDU1NTdHlsZURlY2xh
cmF0aW9uOwogY2xhc3MgRG9jdW1lbnRGcmFnbWVudDsKK2NsYXNzIEdyYW1tYXJEZXRhaWw7CiBj
bGFzcyBFZGl0Q29tbWFuZDsKIGNsYXNzIEVkaXRvcjsKIGNsYXNzIEVsZW1lbnQ7CkBAIC02OSwz
MiArNzAsOCBAQCBjbGFzcyBSYW5nZTsKIGNsYXNzIFNwZWxsQ2hlY2tlcjsKIGNsYXNzIFZpc2li
bGVTZWxlY3Rpb247CiBjbGFzcyBWaXNpYmxlUG9zaXRpb247CitjbGFzcyBUZXh0Q2hlY2tlckNs
aWVudDsKIAotc3RydWN0IEdyYW1tYXJEZXRhaWwgewotICAgIGludCBsb2NhdGlvbjsKLSAgICBp
bnQgbGVuZ3RoOwotICAgIFZlY3RvcjxTdHJpbmc+IGd1ZXNzZXM7Ci0gICAgU3RyaW5nIHVzZXJE
ZXNjcmlwdGlvbjsKLX07Ci0KLWVudW0gVGV4dENoZWNraW5nVHlwZSB7Ci0gICAgVGV4dENoZWNr
aW5nVHlwZVNwZWxsaW5nICAgID0gMSA8PCAxLAotICAgIFRleHRDaGVja2luZ1R5cGVHcmFtbWFy
ICAgICA9IDEgPDwgMiwKLSAgICBUZXh0Q2hlY2tpbmdUeXBlTGluayAgICAgICAgPSAxIDw8IDUs
Ci0gICAgVGV4dENoZWNraW5nVHlwZVF1b3RlICAgICAgID0gMSA8PCA2LAotICAgIFRleHRDaGVj
a2luZ1R5cGVEYXNoICAgICAgICA9IDEgPDwgNywKLSAgICBUZXh0Q2hlY2tpbmdUeXBlUmVwbGFj
ZW1lbnQgPSAxIDw8IDgsCi0gICAgVGV4dENoZWNraW5nVHlwZUNvcnJlY3Rpb24gID0gMSA8PCA5
Ci19OwotCi1zdHJ1Y3QgVGV4dENoZWNraW5nUmVzdWx0IHsKLSAgICBUZXh0Q2hlY2tpbmdUeXBl
IHR5cGU7Ci0gICAgaW50IGxvY2F0aW9uOwotICAgIGludCBsZW5ndGg7Ci0gICAgVmVjdG9yPEdy
YW1tYXJEZXRhaWw+IGRldGFpbHM7Ci0gICAgU3RyaW5nIHJlcGxhY2VtZW50OwotfTsKLSAKIGNs
YXNzIEVkaXRvckNsaWVudCB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+RWRpdG9yQ2xpZW50KCkg
eyAgfQpAQCAtMTgzLDE0ICsxNjAsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHRvZ2ds
ZUF1dG9tYXRpY1NwZWxsaW5nQ29ycmVjdGlvbigpID0gMDsKICNlbmRpZgogCi0gICAgdmlydHVh
bCB2b2lkIGlnbm9yZVdvcmRJblNwZWxsRG9jdW1lbnQoY29uc3QgU3RyaW5nJikgPSAwOwotICAg
IHZpcnR1YWwgdm9pZCBsZWFybldvcmQoY29uc3QgU3RyaW5nJikgPSAwOwotICAgIHZpcnR1YWwg
dm9pZCBjaGVja1NwZWxsaW5nT2ZTdHJpbmcoY29uc3QgVUNoYXIqLCBpbnQgbGVuZ3RoLCBpbnQq
IG1pc3NwZWxsaW5nTG9jYXRpb24sIGludCogbWlzc3BlbGxpbmdMZW5ndGgpID0gMDsKLSAgICB2
aXJ0dWFsIFN0cmluZyBnZXRBdXRvQ29ycmVjdFN1Z2dlc3Rpb25Gb3JNaXNzcGVsbGVkV29yZChj
b25zdCBTdHJpbmcmIG1pc3NwZWxsZWRXb3JkKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGNoZWNr
R3JhbW1hck9mU3RyaW5nKGNvbnN0IFVDaGFyKiwgaW50IGxlbmd0aCwgVmVjdG9yPEdyYW1tYXJE
ZXRhaWw+JiwgaW50KiBiYWRHcmFtbWFyTG9jYXRpb24sIGludCogYmFkR3JhbW1hckxlbmd0aCkg
PSAwOwotI2lmIFBMQVRGT1JNKE1BQykgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fVElHRVIpICYm
ICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpCi0gICAgdmlydHVhbCB2b2lkIGNoZWNrVGV4
dE9mUGFyYWdyYXBoKGNvbnN0IFVDaGFyKiB0ZXh0LCBpbnQgbGVuZ3RoLCB1aW50NjRfdCBjaGVj
a2luZ1R5cGVzLCBWZWN0b3I8VGV4dENoZWNraW5nUmVzdWx0PiYgcmVzdWx0cykgPSAwOwotI2Vu
ZGlmCisgICAgdmlydHVhbCBUZXh0Q2hlY2tlckNsaWVudCogdGV4dENoZWNrZXIoKSA9IDA7CiAK
ICNpZiBTVVBQT1JUX0FVVE9DT1JSRUNUSU9OX1BBTkVMCiAgICAgdmlydHVhbCB2b2lkIHNob3dD
b3JyZWN0aW9uUGFuZWwoQ29ycmVjdGlvblBhbmVsSW5mbzo6UGFuZWxUeXBlLCBjb25zdCBGbG9h
dFJlY3QmIGJvdW5kaW5nQm94T2ZSZXBsYWNlZFN0cmluZywgY29uc3QgU3RyaW5nJiByZXBsYWNl
ZFN0cmluZywgY29uc3QgU3RyaW5nJiByZXBsYWNtZW50U3RyaW5nLCBjb25zdCBWZWN0b3I8U3Ry
aW5nPiYgYWx0ZXJuYXRpdmVSZXBsYWNlbWVudFN0cmluZ3MsIEVkaXRvciopID0gMDsKQEAgLTIw
MiwxMSArMTcyLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVTcGVsbGluZ1VJ
V2l0aE1pc3NwZWxsZWRXb3JkKGNvbnN0IFN0cmluZyYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQg
c2hvd1NwZWxsaW5nVUkoYm9vbCBzaG93KSA9IDA7CiAgICAgdmlydHVhbCBib29sIHNwZWxsaW5n
VUlJc1Nob3dpbmcoKSA9IDA7Ci0gICAgLy8gRm9yIHNwZWxsY2hlY2tlcnMgdGhhdCBzdXBwb3J0
IG11bHRpcGxlIGxhbmd1YWdlcywgaXQncyBvZnRlbiBpbXBvcnRhbnQgdG8gYmUgYWJsZSB0byBp
ZGVudGlmeSB0aGUgbGFuZ3VhZ2UgaW4gb3JkZXIgdG8gcHJvdmlkZSBtb3JlIGFjY3VyYXRlIGNv
cnJlY3Rpb24gc3VnZ2VzdGlvbnMuIENhbGxlciBjYW4gcGFzcyBpbiBtb3JlIHRleHQgaW4gImNv
bnRleHQiIHRvIGFpZCBzdWNoIHNwZWxsY2hlY2tlcnMgb24gbGFuZ3VhZ2UgaWRlbnRpZmljYXRp
b24uIE5vcmFtbGx5IGl0J3MgdGhlIHRleHQgc3Vycm91bmRpbmcgdGhlICJ3b3JkIiBmb3Igd2hp
Y2ggd2UgYXJlIGdldHRpbmcgY29ycmVjdGlvbiBzdWdnZXN0aW9ucy4KLSAgICB2aXJ0dWFsIHZv
aWQgZ2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgU3RyaW5nJiB3b3JkLCBjb25zdCBTdHJpbmcmIGNv
bnRleHQsIFZlY3RvcjxTdHJpbmc+JiBndWVzc2VzKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHdp
bGxTZXRJbnB1dE1ldGhvZFN0YXRlKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRJbnB1dE1l
dGhvZFN0YXRlKGJvb2wgZW5hYmxlZCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hl
Y2tpbmdPZlN0cmluZyhTcGVsbENoZWNrZXIqLCBpbnQsIGNvbnN0IFN0cmluZyYpID0gMDsKIH07
CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dENoZWNr
ZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dENoZWNrZXJDbGll
bnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5lZGE3NzZjNzg2OTQ5MzZiZjdlNzYxOTQ4NmRmNTY3MmVhMmIxNzVk
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0Q2hl
Y2tlckNsaWVudC5oCkBAIC0wLDAgKzEsODMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYs
IDIwMDcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDA4IE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLwor
CisjaWZuZGVmIFRleHRDaGVja2VyQ2xpZW50X2gKKyNkZWZpbmUgVGV4dENoZWNrZXJDbGllbnRf
aAorCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+Cisj
aW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
Y2xhc3MgU3BlbGxDaGVja2VyOworCitzdHJ1Y3QgR3JhbW1hckRldGFpbCB7CisgICAgaW50IGxv
Y2F0aW9uOworICAgIGludCBsZW5ndGg7CisgICAgVmVjdG9yPFN0cmluZz4gZ3Vlc3NlczsKKyAg
ICBTdHJpbmcgdXNlckRlc2NyaXB0aW9uOworfTsKKworZW51bSBUZXh0Q2hlY2tpbmdUeXBlIHsK
KyAgICBUZXh0Q2hlY2tpbmdUeXBlU3BlbGxpbmcgICAgPSAxIDw8IDEsCisgICAgVGV4dENoZWNr
aW5nVHlwZUdyYW1tYXIgICAgID0gMSA8PCAyLAorICAgIFRleHRDaGVja2luZ1R5cGVMaW5rICAg
ICAgICA9IDEgPDwgNSwKKyAgICBUZXh0Q2hlY2tpbmdUeXBlUXVvdGUgICAgICAgPSAxIDw8IDYs
CisgICAgVGV4dENoZWNraW5nVHlwZURhc2ggICAgICAgID0gMSA8PCA3LAorICAgIFRleHRDaGVj
a2luZ1R5cGVSZXBsYWNlbWVudCA9IDEgPDwgOCwKKyAgICBUZXh0Q2hlY2tpbmdUeXBlQ29ycmVj
dGlvbiAgPSAxIDw8IDkKK307CisKK3N0cnVjdCBUZXh0Q2hlY2tpbmdSZXN1bHQgeworICAgIFRl
eHRDaGVja2luZ1R5cGUgdHlwZTsKKyAgICBpbnQgbG9jYXRpb247CisgICAgaW50IGxlbmd0aDsK
KyAgICBWZWN0b3I8R3JhbW1hckRldGFpbD4gZGV0YWlsczsKKyAgICBTdHJpbmcgcmVwbGFjZW1l
bnQ7Cit9OworCitjbGFzcyBUZXh0Q2hlY2tlckNsaWVudCB7CitwdWJsaWM6CisgICAgdmlydHVh
bCB+VGV4dENoZWNrZXJDbGllbnQoKSB7fQorCisgICAgdmlydHVhbCB2b2lkIGlnbm9yZVdvcmRJ
blNwZWxsRG9jdW1lbnQoY29uc3QgU3RyaW5nJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBsZWFy
bldvcmQoY29uc3QgU3RyaW5nJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjaGVja1NwZWxsaW5n
T2ZTdHJpbmcoY29uc3QgVUNoYXIqLCBpbnQgbGVuZ3RoLCBpbnQqIG1pc3NwZWxsaW5nTG9jYXRp
b24sIGludCogbWlzc3BlbGxpbmdMZW5ndGgpID0gMDsKKyAgICB2aXJ0dWFsIFN0cmluZyBnZXRB
dXRvQ29ycmVjdFN1Z2dlc3Rpb25Gb3JNaXNzcGVsbGVkV29yZChjb25zdCBTdHJpbmcmIG1pc3Nw
ZWxsZWRXb3JkKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNoZWNrR3JhbW1hck9mU3RyaW5nKGNv
bnN0IFVDaGFyKiwgaW50IGxlbmd0aCwgVmVjdG9yPEdyYW1tYXJEZXRhaWw+JiwgaW50KiBiYWRH
cmFtbWFyTG9jYXRpb24sIGludCogYmFkR3JhbW1hckxlbmd0aCkgPSAwOworI2lmIFBMQVRGT1JN
KE1BQykgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fVElHRVIpICYmICFkZWZpbmVkKEJVSUxESU5H
X09OX0xFT1BBUkQpCisgICAgdmlydHVhbCB2b2lkIGNoZWNrVGV4dE9mUGFyYWdyYXBoKGNvbnN0
IFVDaGFyKiB0ZXh0LCBpbnQgbGVuZ3RoLCB1aW50NjRfdCBjaGVja2luZ1R5cGVzLCBWZWN0b3I8
VGV4dENoZWNraW5nUmVzdWx0PiYgcmVzdWx0cykgPSAwOworI2VuZGlmCisKKyAgICAvLyBGb3Ig
c3BlbGxjaGVja2VycyB0aGF0IHN1cHBvcnQgbXVsdGlwbGUgbGFuZ3VhZ2VzLCBpdCdzIG9mdGVu
IGltcG9ydGFudCB0byBiZSBhYmxlIHRvIGlkZW50aWZ5IHRoZSBsYW5ndWFnZSBpbiBvcmRlciB0
byBwcm92aWRlIG1vcmUgYWNjdXJhdGUgY29ycmVjdGlvbiBzdWdnZXN0aW9ucy4gQ2FsbGVyIGNh
biBwYXNzIGluIG1vcmUgdGV4dCBpbiAiY29udGV4dCIgdG8gYWlkIHN1Y2ggc3BlbGxjaGVja2Vy
cyBvbiBsYW5ndWFnZSBpZGVudGlmaWNhdGlvbi4gTm9yYW1sbHkgaXQncyB0aGUgdGV4dCBzdXJy
b3VuZGluZyB0aGUgIndvcmQiIGZvciB3aGljaCB3ZSBhcmUgZ2V0dGluZyBjb3JyZWN0aW9uIHN1
Z2dlc3Rpb25zLgorICAgIHZpcnR1YWwgdm9pZCBnZXRHdWVzc2VzRm9yV29yZChjb25zdCBTdHJp
bmcmIHdvcmQsIGNvbnN0IFN0cmluZyYgY29udGV4dCwgVmVjdG9yPFN0cmluZz4mIGd1ZXNzZXMp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoU3BlbGxDaGVj
a2VyKiwgaW50LCBjb25zdCBTdHJpbmcmKSA9IDA7Cit9OworCit9CisKKyNlbmRpZiAvLyBUZXh0
Q2hlY2tlckNsaWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDMxZjFjNWIzODdi
NjU1NDU3Y2I4Y2E2MDBmOGYxYzYwOWUzZWU3OWQuLjQzYzA2Y2M3MGNhM2ZlMmMyMmE1N2RkNDIx
ZDY0ODNmN2EzY2E3ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIg
QEAKKzIwMTEtMDEtMjYgIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTmVlZCBhIHNob3J0
IGRlc2NyaXB0aW9uIGFuZCBidWcgVVJMIChPT1BTISkKKworICAgICAgICAqIHNyYy9FZGl0b3JD
bGllbnRJbXBsLmg6CisgICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudEltcGw6OnRleHRDaGVr
ZXIpOgorCiAyMDExLTAxLTI2ICBLZW50IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBEaW1pdHJpIEdsYXprb3YuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGllbnRJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9FZGl0b3JDbGllbnRJbXBsLmgKaW5kZXggOWRiZDZhZmIzNzFkNjQxMmEwYWYy
MGU4ZGI3Yjg1MThjNzg4N2UwZS4uNDQ1YjlhYTUwYjRmNzliMWFiMWNjNTM5YzRiYTU5ODg3OWYz
NjhkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRWRpdG9yQ2xpZW50
SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRvckNsaWVudEltcGwu
aApAQCAtMzIsNiArMzIsNyBAQAogI2RlZmluZSBFZGl0b3JDbGllbnRJbXBsX2gKIAogI2luY2x1
ZGUgIkVkaXRvckNsaWVudC5oIgorI2luY2x1ZGUgIlRleHRDaGVja2VyQ2xpZW50LmgiCiAjaW5j
bHVkZSAiVGltZXIuaCIKICNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KIApAQCAtNDIsNyArNDMsNyBA
QCBjbGFzcyBIVE1MSW5wdXRFbGVtZW50OwogbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBXZWJW
aWV3SW1wbDsKIAotY2xhc3MgRWRpdG9yQ2xpZW50SW1wbCA6IHB1YmxpYyBXZWJDb3JlOjpFZGl0
b3JDbGllbnQgeworY2xhc3MgRWRpdG9yQ2xpZW50SW1wbCA6IHB1YmxpYyBXZWJDb3JlOjpFZGl0
b3JDbGllbnQsIHB1YmxpYyBXZWJDb3JlOjpUZXh0Q2hlY2tlckNsaWVudCB7CiBwdWJsaWM6CiAg
ICAgRWRpdG9yQ2xpZW50SW1wbChXZWJWaWV3SW1wbCogd2ViVmlldyk7CiAKQEAgLTExMyw2ICsx
MTQsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldElucHV0TWV0aG9kU3RhdGUoYm9v
bCBlbmFibGVkKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoV2Vi
Q29yZTo6U3BlbGxDaGVja2VyKiwgaW50LCBjb25zdCBXVEY6OlN0cmluZyYpIHt9CiAKKyAgICB2
aXJ0dWFsIFdlYkNvcmU6OlRleHRDaGVja2VyQ2xpZW50KiB0ZXh0Q2hla2VyKCkgeyByZXR1cm4g
dGhpczsgfQorCiAgICAgLy8gU2hvd3MgdGhlIGZvcm0gYXV0b2ZpbGwgcG9wdXAgZm9yIHxub2Rl
fCBpZiBpdCBpcyBhbiBIVE1MSW5wdXRFbGVtZW50IGFuZAogICAgIC8vIGl0IGlzIGVtcHR5LiAg
VGhpcyBpcyBjYWxsZWQgd2hlbiB5b3UgcHJlc3MgdGhlIHVwIG9yIGRvd24gYXJyb3cgaW4gYQog
ICAgIC8vIHRleHQtZmllbGQgb3Igd2hlbiBjbGlja2luZyBhbiBhbHJlYWR5IGZvY3VzZWQgdGV4
dC1maWVsZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwppbmRleCA1ZGNjNWNmMzBlMDM0YTk4NzVlNDA3ZmM0OTFl
Zjc0ZWM1MzhmYzg3Li42YTEwZWFjYTEzOWY1MTFkZGExMWE5YWRjNzVjMmRjYmQ3NmI5MGNkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9lZmwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTEtMDEtMjYgIE1PUklUQSBIYWpp
bWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgTmVlZCBhIHNob3J0IGRlc2NyaXB0aW9uIGFuZCBidWcgVVJMIChP
T1BTISkKKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEVmbC5oOgorICAg
ICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50RWZsOjp0ZXh0Q2hla2VyKToKKwogMjAxMS0wMS0x
NCAgUGF0cmljayBHYW5zdGVyZXIgIDxwYXJvZ2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJl
dmlld2VkLiBUcnkgdG8gZml4IEVGTCBidWlsZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
ZWZsL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEVmbC5oIGIvU291cmNlL1dlYktpdC9lZmwv
V2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50RWZsLmgKaW5kZXggZTI1YjFlNmYwZjI0NGY4YjIy
ZDZjMjAzMmJkNzkzZjdmZWRjNDNjNi4uODU5NzQxMjVjMDE4MDBiNjkxNDNhM2NjNmEyOTI1YTI5
MTQxMGE1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRWRp
dG9yQ2xpZW50RWZsLmgKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRWRp
dG9yQ2xpZW50RWZsLmgKQEAgLTM0LDYgKzM0LDcgQEAKICNkZWZpbmUgRWRpdG9yQ2xpZW50RWZs
X2gKIAogI2luY2x1ZGUgIkVkaXRvckNsaWVudC5oIgorI2luY2x1ZGUgIlRleHRDaGVja2VyQ2xp
ZW50LmgiCiAKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogCkBAIC00Miw3ICs0Myw3IEBAIHR5
cGVkZWYgc3RydWN0IF9FdmFzX09iamVjdCBFdmFzX09iamVjdDsKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIGNsYXNzIFBhZ2U7CiAKLWNsYXNzIEVkaXRvckNsaWVudEVmbCA6IHB1YmxpYyBFZGl0b3JD
bGllbnQgeworY2xhc3MgRWRpdG9yQ2xpZW50RWZsIDogcHVibGljIEVkaXRvckNsaWVudCwgcHVi
bGljIFRleHRDaGVja2VyQ2xpZW50IHsKIHB1YmxpYzoKICAgICBFZGl0b3JDbGllbnRFZmwoRXZh
c19PYmplY3QgKnZpZXcpOwogICAgIH5FZGl0b3JDbGllbnRFZmwoKTsKQEAgLTExNCw2ICsxMTUs
NyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHdpbGxTZXRJbnB1dE1ldGhvZFN0YXRlKCk7
CiAgICAgdmlydHVhbCB2b2lkIHNldElucHV0TWV0aG9kU3RhdGUoYm9vbCBlbmFibGVkKTsKICAg
ICB2aXJ0dWFsIHZvaWQgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoV2ViQ29yZTo6U3BlbGxDaGVj
a2VyKiwgaW50LCBjb25zdCBXVEY6OlN0cmluZyYpIHt9CisgICAgdmlydHVhbCBUZXh0Q2hlY2tl
ckNsaWVudCogdGV4dENoZWtlcigpIHsgcmV0dXJuIHRoaXM7IH0KIAogcHJpdmF0ZToKICAgICBF
dmFzX09iamVjdCAqbV92aWV3OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4IDFmNGUzMWNiMDMyMDUxNDQ5
YTBlNTYwZjcwYzA5Njc0ZjQ5ZmZlODQuLmZlYmIxYTg2NmMxM2RkNDVjMTUwYjZhODM3ZDUzNGE3
N2EyZTQ4OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxMS0wMS0yNiAg
TU9SSVRBIEhhamltZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBOZWVkIGEgc2hvcnQgZGVzY3JpcHRpb24gYW5k
IGJ1ZyBVUkwgKE9PUFMhKQorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50
R3RrLmg6CisgICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudDo6dGV4dENoZWtlcik6CisKIDIw
MTEtMDEtMjYgIE1hcmlvIFNhbmNoZXogUHJhZGEgIDxtc2FuY2hlekBpZ2FsaWEuY29tPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5oIGIvU291cmNlL1dlYktp
dC9ndGsvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmgKaW5kZXggMjE0ZGJkNjZjMWMy
N2Y2YzY4NGY4MmMzZmM3OGYzNDRiYmQ3MDI2MS4uYWRmZDkyZjk0OTZiY2UzZjQ4MzdkYzJjOThm
NjY1M2VmNTk0MzgyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBv
cnQvRWRpdG9yQ2xpZW50R3RrLmgKKysrIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBv
cnQvRWRpdG9yQ2xpZW50R3RrLmgKQEAgLTMyLDYgKzMyLDcgQEAKICNkZWZpbmUgRWRpdG9yQ2xp
ZW50R3RrX2gKIAogI2luY2x1ZGUgIkVkaXRvckNsaWVudC5oIgorI2luY2x1ZGUgIlRleHRDaGVj
a2VyQ2xpZW50LmgiCiAKICNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KICNpbmNsdWRlIDx3dGYvRm9y
d2FyZC5oPgpAQCAtNDcsNyArNDgsNyBAQCBjbGFzcyBLZXlib2FyZEV2ZW50OwogCiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKIAotICAgIGNsYXNzIEVkaXRvckNsaWVudCA6IHB1YmxpYyBXZWJDb3JlOjpF
ZGl0b3JDbGllbnQgeworY2xhc3MgRWRpdG9yQ2xpZW50IDogcHVibGljIFdlYkNvcmU6OkVkaXRv
ckNsaWVudCwgIHB1YmxpYyBXZWJDb3JlOjpUZXh0Q2hlY2tlckNsaWVudCB7CiAgICAgcHJvdGVj
dGVkOgogICAgICAgICBib29sIG1faXNJblJlZG87CiAKQEAgLTEyMCw2ICsxMjEsOCBAQCBuYW1l
c3BhY2UgV2ViS2l0IHsKICAgICAgICAgdmlydHVhbCB2b2lkIHRleHRXaWxsQmVEZWxldGVkSW5U
ZXh0RmllbGQoV2ViQ29yZTo6RWxlbWVudCopOwogICAgICAgICB2aXJ0dWFsIHZvaWQgdGV4dERp
ZENoYW5nZUluVGV4dEFyZWEoV2ViQ29yZTo6RWxlbWVudCopOwogCisgICAgICAgIHZpcnR1YWwg
V2ViQ29yZTo6VGV4dENoZWNrZXJDbGllbnQqIHRleHRDaGVrZXIoKSB7IHJldHVybiB0aGlzOyB9
CisKICAgICAgICAgdmlydHVhbCB2b2lkIGlnbm9yZVdvcmRJblNwZWxsRG9jdW1lbnQoY29uc3Qg
V1RGOjpTdHJpbmcmKTsKICAgICAgICAgdmlydHVhbCB2b2lkIGxlYXJuV29yZChjb25zdCBXVEY6
OlN0cmluZyYpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgY2hlY2tTcGVsbGluZ09mU3RyaW5nKGNv
bnN0IFVDaGFyKiwgaW50IGxlbmd0aCwgaW50KiBtaXNzcGVsbGluZ0xvY2F0aW9uLCBpbnQqIG1p
c3NwZWxsaW5nTGVuZ3RoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvaGFpa3UvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC9oYWlrdS9DaGFuZ2VMb2cKaW5kZXggNDMxNWJiNWU0ZWE5OTNj
ODM5ZTg0ZTNjMzdmZDQyNWU2YTg4MDc4NS4uY2NjZWFjYjFiOTFkMTA1ODcxYzRmYjVlYmYwZmFj
NTViNGNmYTY2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9oYWlrdS9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9oYWlrdS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxMS0w
MS0yNiAgTU9SSVRBIEhhamltZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBOZWVkIGEgc2hvcnQgZGVzY3JpcHRp
b24gYW5kIGJ1ZyBVUkwgKE9PUFMhKQorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRpdG9y
Q2xpZW50SGFpa3UuaDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVudEhhaWt1Ojp0ZXh0
Q2hla2VyKToKKwogMjAxMC0xMi0yMiAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9oYWlrdS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRIYWlrdS5oIGIvU291cmNlL1dlYktp
dC9oYWlrdS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRIYWlrdS5oCmluZGV4IGNhMjcwZTk1
Y2I0MjdhM2VkN2EwNjZmM2VlMzAxMzkzNDllMDQ2OGMuLjJlYmJmNjE0NTRmZjRhNTViYmQwMGJj
Y2Q0MzNkMzJmYzcwNTM5MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvaGFpa3UvV2ViQ29y
ZVN1cHBvcnQvRWRpdG9yQ2xpZW50SGFpa3UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2hhaWt1L1dl
YkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEhhaWt1LmgKQEAgLTMyLDYgKzMyLDcgQEAKICNkZWZp
bmUgRWRpdG9yQ2xpZW50SGFpa3VfSAogCiAjaW5jbHVkZSAiRWRpdG9yQ2xpZW50LmgiCisjaW5j
bHVkZSAiVGV4dENoZWNrZXJDbGllbnQuaCIKICNpbmNsdWRlICJSZWZDb3VudGVkLmgiCiAjaW5j
bHVkZSAiUGFnZS5oIgogCkBAIC00MCw3ICs0MSw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotICAgIGNsYXNzIEVkaXRvckNsaWVudEhhaWt1IDogcHVibGljIEVkaXRvckNsaWVudCB7Citj
bGFzcyBFZGl0b3JDbGllbnRIYWlrdSA6IHB1YmxpYyBFZGl0b3JDbGllbnQsIHB1YmxpYyBUZXh0
Q2hlY2tlckNsaWVudCB7CiAgICAgcHVibGljOgogICAgICAgICBFZGl0b3JDbGllbnRIYWlrdSgp
OwogICAgICAgICB2b2lkIHNldFBhZ2UoIFBhZ2UqIHBhZ2UgKTsKQEAgLTExMSw2ICsxMTIsNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgdm9pZCB3aWxsU2V0SW5wdXRN
ZXRob2RTdGF0ZSgpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5wdXRNZXRob2RTdGF0ZShi
b29sIGVuYWJsZWQpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdENoZWNraW5nT2ZTdHJp
bmcoU3BlbGxDaGVja2VyKiwgaW50LCBjb25zdCBTdHJpbmcmKSB7fQorICAgICAgICB2aXJ0dWFs
IFRleHRDaGVja2VyQ2xpZW50KiB0ZXh0Q2hla2VyKCkgeyByZXR1cm4gdGhpczsgfQogCiAgICAg
ICAgIGJvb2wgaXNFZGl0aW5nKCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
bWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCAxZjRlM2M0
NDNkMzFmNjI4ZjQ3ZjUyZGE0OTQ5YWQwODZjOTUxMjBjLi4xM2QxZDA5NTEzMjcwMWUzNmNkM2Jk
NzRiY2NmYjE2OWI3NzY0ZGJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIw
MTEtMDEtMjYgIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVmYWN0b3Jpbmc6IEV4dHJh
Y3QgVGV4dENoZWNrZXJDbGllbnQgZnJvbSBFZGl0b3JDbGllbnQKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUzMjEzCisKKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaDoKKyAgICAgICAgKFdlYkVkaXRvckNsaWVudDo6dGV4
dENoZWNrZXIpOgorCiAyMDExLTAxLTI1ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4K
IAogICAgICAgICBSZXZpZXdlZCBieSBBbmRlcnMgQ2FybHNzb24uCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaCBiL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCmluZGV4IGQ1YWM4OTFi
N2E2YzBlMGI3MDU4OTI2YjIzMWU4Yjk1ZDllYjk2YzIuLjUzZGEzNmE0MDI5MGUzMWNkMjgyNTAw
ZmZiMWJjNTU4ZDNjMjRlZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCkBAIC0yOSw2ICsyOSw3IEBACiAKICNpbXBvcnQgPFdl
YkNvcmUvRWRpdG9yLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0VkaXRvckNsaWVudC5oPgorI2ltcG9y
dCA8V2ViQ29yZS9UZXh0Q2hlY2tlckNsaWVudC5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5o
PgogI2ltcG9ydCA8d3RmL0ZvcndhcmQuaD4KICNpbXBvcnQgPHd0Zi9WZWN0b3IuaD4KQEAgLTM2
LDcgKzM3LDcgQEAKIEBjbGFzcyBXZWJWaWV3OwogQGNsYXNzIFdlYkVkaXRvclVuZG9UYXJnZXQ7
CiAKLWNsYXNzIFdlYkVkaXRvckNsaWVudCA6IHB1YmxpYyBXZWJDb3JlOjpFZGl0b3JDbGllbnQg
eworY2xhc3MgV2ViRWRpdG9yQ2xpZW50IDogcHVibGljIFdlYkNvcmU6OkVkaXRvckNsaWVudCwg
cHVibGljIFdlYkNvcmU6OlRleHRDaGVja2VyQ2xpZW50IHsKIHB1YmxpYzoKICAgICBXZWJFZGl0
b3JDbGllbnQoV2ViVmlldyAqKTsKICAgICB2aXJ0dWFsIH5XZWJFZGl0b3JDbGllbnQoKTsKQEAg
LTk4LDYgKzk5LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCB0b2dnbGVBdXRvbWF0aWNT
cGVsbGluZ0NvcnJlY3Rpb24oKTsKICNlbmRpZgogCisgICAgVGV4dENoZWNrZXJDbGllbnQqIHRl
eHRDaGVja2VyKCkgeyByZXR1cm4gdGhpczsgfQorCiAgICAgdmlydHVhbCB2b2lkIHJlc3BvbmRU
b0NoYW5nZWRDb250ZW50cygpOwogICAgIHZpcnR1YWwgdm9pZCByZXNwb25kVG9DaGFuZ2VkU2Vs
ZWN0aW9uKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKaW5kZXggYjNmMmIyODMzZWNkODFjNDliNjBkNDllNDIw
NjgzOTQzYjM0MjFlOC4uNjkyODQwNzQ5ZmU3ZDZlMGI1MmY4MzU3N2YyNGUwYThiMWJlOTUxOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9xdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxMS0wMS0yNiAgTU9SSVRBIEhhamlt
ZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBOZWVkIGEgc2hvcnQgZGVzY3JpcHRpb24gYW5kIGJ1ZyBVUkwgKE9P
UFMhKQorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50UXQuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkVkaXRvckNsaWVudFF0Ojp0ZXh0Q2hla2VyKToKKwogMjAxMS0wMS0yNCAg
Q2hyaXMgTWFycmluICA8Y21hcnJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
RXJpYyBTZWlkZWwuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0
L0VkaXRvckNsaWVudFF0LmggYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0VkaXRv
ckNsaWVudFF0LmgKaW5kZXggMWU0MTBlNmQ3ZWQzNGIzOThmZjJlMDBiNjJlNGRlYjkxNzhmNDRj
Zi4uNmMwM2VmZTZmMDMxMDMyMDFiNDE2YThhNmEyMmZlNDZjNmIwNTdlMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRRdC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50UXQuaApAQCAtMzEsNiAr
MzEsNyBAQAogI2RlZmluZSBFZGl0b3JDbGllbnRRdF9oCiAKICNpbmNsdWRlICJFZGl0b3JDbGll
bnQuaCIKKyNpbmNsdWRlICJUZXh0Q2hlY2tlckNsaWVudC5oIgogI2luY2x1ZGUgIlJlZkNvdW50
ZWQuaCIKIAogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CkBAIC0zOSw3ICs0MCw3IEBAIGNsYXNz
IFFXZWJQYWdlOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIEVkaXRvckNsaWVudFF0
IDogcHVibGljIEVkaXRvckNsaWVudCB7CitjbGFzcyBFZGl0b3JDbGllbnRRdCA6IHB1YmxpYyBF
ZGl0b3JDbGllbnQsIHB1YmxpYyBUZXh0Q2hlY2tlckNsaWVudCB7CiBwdWJsaWM6CiAgICAgRWRp
dG9yQ2xpZW50UXQoUVdlYlBhZ2UqIHBhZ2UpOwogICAgIApAQCAtMTA4LDYgKzEwOSw3IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNldElucHV0TWV0aG9kU3RhdGUoKTsKICAgICB2
aXJ0dWFsIHZvaWQgc2V0SW5wdXRNZXRob2RTdGF0ZShib29sIGVuYWJsZWQpOwogICAgIHZpcnR1
YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhTcGVsbENoZWNrZXIqLCBpbnQsIGNvbnN0
IFN0cmluZyYpIHt9CisgICAgdmlydHVhbCBUZXh0Q2hlY2tlckNsaWVudCogdGV4dENoZWtlcigp
IHsgcmV0dXJuIHRoaXM7IH0KIAogICAgIGJvb2wgaXNFZGl0aW5nKCkgY29uc3Q7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvd2luL0No
YW5nZUxvZwppbmRleCAxM2E3OTRhMjkxZWMyNGFmMzI0MDk2MzdiYWM5MGIxMmM0ZGNlMGE4Li4z
ZDJjYTc2MWUzNWFlNDEyMjExZDliMjBmZWUzZWIyNzZmM2RmN2UyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTIgQEAKKzIwMTEtMDEtMjYgIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdv
b2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgTmVlZCBhIHNob3J0IGRlc2NyaXB0aW9uIGFuZCBidWcgVVJMIChPT1BTISkKKworICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oOgorICAgICAgICAoV2ViRWRpdG9y
Q2xpZW50Ojp0ZXh0Q2hla2VyKToKKwogMjAxMS0wMS0yNSAgU3RldmUgRmFsa2VuYnVyZyAgPHNm
YWxrZW5AYXBwbGUuY29tPgogCiAgICAgICAgIFdpbmRvd3MgcHJvZHVjdGlvbiBidWlsZCBmaXgu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JD
bGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVu
dC5oCmluZGV4IDM1OGEzNjU2YTZkZjYwNGIxMjJhMDlkMGQwZWExMDVlYWZhNDg5MTMuLmYyZmI5
ZjZiOTM1MDExYzU1NjIxMjc2YWI0MWFjZDNiNDhhZDM2MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCkBAIC0yOSw2ICsyOSw3
IEBACiAjaW5jbHVkZSAiV2ViS2l0LmgiCiAjcHJhZ21hIHdhcm5pbmcocHVzaCwgMCkKICNpbmNs
dWRlIDxXZWJDb3JlL0VkaXRvckNsaWVudC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvVGV4dENoZWNr
ZXJDbGllbnQuaD4KICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAjcHJhZ21hIHdhcm5pbmcocG9w
KQogCkBAIC0zNiw3ICszNyw3IEBAIGNsYXNzIFdlYlZpZXc7CiBjbGFzcyBXZWJOb3RpZmljYXRp
b247CiBjbGFzcyBXZWJFZGl0b3JVbmRvVGFyZ2V0OwogCi1jbGFzcyBXZWJFZGl0b3JDbGllbnQg
OiBwdWJsaWMgV2ViQ29yZTo6RWRpdG9yQ2xpZW50IHsKK2NsYXNzIFdlYkVkaXRvckNsaWVudCA6
IHB1YmxpYyBXZWJDb3JlOjpFZGl0b3JDbGllbnQsIHB1YmxpYyBXZWJDb3JlOjpUZXh0Q2hlY2tl
ckNsaWVudCB7CiBwdWJsaWM6CiAgICAgV2ViRWRpdG9yQ2xpZW50KFdlYlZpZXcqKTsKICAgICB+
V2ViRWRpdG9yQ2xpZW50KCk7CkBAIC0xMTIsNiArMTEzLDcgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgdm9pZCB3aWxsU2V0SW5wdXRNZXRob2RTdGF0ZSgpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRJ
bnB1dE1ldGhvZFN0YXRlKGJvb2wpOwogICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdP
ZlN0cmluZyhXZWJDb3JlOjpTcGVsbENoZWNrZXIqLCBpbnQsIGNvbnN0IFdURjo6U3RyaW5nJikg
e30KKyAgICB2aXJ0dWFsIFdlYkNvcmU6OlRleHRDaGVja2VyQ2xpZW50KiB0ZXh0Q2hla2VyKCkg
eyByZXR1cm4gdGhpczsgfQogCiBwcml2YXRlOgogICAgIFdlYlZpZXcqIG1fd2ViVmlldzsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC93
aW5jZS9DaGFuZ2VMb2cKaW5kZXggODdjYTI5ZThhYWJmOWJmNDIxMDIwYmVlNWM1YjI2NjQxNzc3
YWNhNS4uZDkzYjY1Mjk0NDBjMjQ0ZjY2MGVmMDQyYjYyZjk2ZTM2NDhkMWY3YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC93aW5j
ZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMS0wMS0yNiAgTU9SSVRBIEhhamltZSAg
PG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBSZWZhY3RvcmluZzogRXh0cmFjdCBUZXh0Q2hlY2tlckNsaWVudCBmcm9t
IEVkaXRvckNsaWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NTMyMTMKKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFdpbkNF
Lmg6CisgICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudFdpbkNFOjp0ZXh0Q2hla2VyKToKKwog
MjAxMS0wMS0yNSAgUGF0cmljayBHYW5zdGVyZXIgIDxwYXJvZ2FAd2Via2l0Lm9yZz4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBBZGFtIFJvYmVuLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93
aW5jZS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRXaW5DRS5oIGIvU291cmNlL1dlYktpdC93
aW5jZS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRXaW5DRS5oCmluZGV4IDhkYjhjMTY4NDYy
ZjhkZGIzYzAwYWM3ZGM0YzFlNzZkY2Q0OWJmYWQuLjI0N2EzNDY4NzUxNjViMWI1NzJmNTUzYThi
YjlmNzAwNWIxZTE0MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1
cHBvcnQvRWRpdG9yQ2xpZW50V2luQ0UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNv
cmVTdXBwb3J0L0VkaXRvckNsaWVudFdpbkNFLmgKQEAgLTI2LDEyICsyNiwxMyBAQAogI2RlZmlu
ZSBFZGl0b3JDbGllbnRXaW5DRV9oCiAKICNpbmNsdWRlICJFZGl0b3JDbGllbnQuaCIKKyNpbmNs
dWRlICJUZXh0Q2hlY2tlckNsaWVudC5oIgogCiBjbGFzcyBXZWJWaWV3OwogCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIAotY2xhc3MgRWRpdG9yQ2xpZW50V2luQ0UgOiBwdWJsaWMgV2ViQ29yZTo6RWRp
dG9yQ2xpZW50IHsKK2NsYXNzIEVkaXRvckNsaWVudFdpbkNFIDogcHVibGljIFdlYkNvcmU6OkVk
aXRvckNsaWVudCwgcHVibGljIFdlYkNvcmU6OlRleHRDaGVja2VyQ2xpZW50IHsKIHB1YmxpYzoK
ICAgICBFZGl0b3JDbGllbnRXaW5DRShXZWJWaWV3Kik7CiAgICAgfkVkaXRvckNsaWVudFdpbkNF
KCk7CkBAIC0xMDEsNiArMTAyLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCB3aWxsU2V0
SW5wdXRNZXRob2RTdGF0ZSgpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRJbnB1dE1ldGhvZFN0YXRl
KGJvb2wpOwogICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhXZWJDb3Jl
OjpTcGVsbENoZWNrZXIqLCBpbnQsIGNvbnN0IFdURjo6U3RyaW5nJikge30KKyAgICB2aXJ0dWFs
IFdlYkNvcmU6OlRleHRDaGVja2VyQ2xpZW50KiB0ZXh0Q2hla2VyKCkgeyByZXR1cm4gdGhpczsg
fQogCiBwcml2YXRlOgogICAgIFdlYlZpZXcqIG1fd2ViVmlldzsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvd3gvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC93eC9DaGFuZ2VMb2cKaW5kZXgg
NDg2MjIyNWU1YmQ0Y2M0ZTNjYzlkZjRjYjA5YWZkYmM4YzE4YTQ2Ni4uNTA0MmI5NDM1OTQwZjY4
OGVmZWQxNGRlYWI5Yjc1MzdhZGVmMTZhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93eC9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC93eC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBA
QAorMjAxMS0wMS0yNiAgTU9SSVRBIEhhamltZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWZhY3RvcmluZzog
RXh0cmFjdCBUZXh0Q2hlY2tlckNsaWVudCBmcm9tIEVkaXRvckNsaWVudAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTMyMTMKKworICAgICAgICAqIFdl
YktpdFN1cHBvcnQvRWRpdG9yQ2xpZW50V3guaDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNs
aWVudFd4Ojp0ZXh0Q2hla2VyKToKKwogMjAxMS0wMS0xNCAgWXV6byBGdWppc2hpbWEgIDx5dXpv
QGdvb2dsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQW50dGkgS29pdmlzdG8uCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvRWRpdG9yQ2xpZW50V3guaCBi
L1NvdXJjZS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9FZGl0b3JDbGllbnRXeC5oCmluZGV4IDdk
YmVlMzFhNWY5NDRhNDhkZGNkMzFkZDViOGE4ZTAyYTUyZTZiZjAuLjRhNjI4YWNkMzBmNjI5ZWY3
ZDdjZDFkYjIxZDQ4ZDI0N2E3OGM5M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd3gvV2Vi
S2l0U3VwcG9ydC9FZGl0b3JDbGllbnRXeC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvd3gvV2ViS2l0
U3VwcG9ydC9FZGl0b3JDbGllbnRXeC5oCkBAIC0zMCwxMyArMzAsMTQgQEAKIAogI2luY2x1ZGUg
IkVkaXRvckNsaWVudC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRlICJUZXh0Q2hlY2tl
ckNsaWVudC5oIgogCiAjaW5jbHVkZSAiV2ViVmlldy5oIgogI2luY2x1ZGUgIldlYkZyYW1lLmgi
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgRWRpdG9yQ2xpZW50V3ggOiBwdWJsaWMg
RWRpdG9yQ2xpZW50IHsKK2NsYXNzIEVkaXRvckNsaWVudFd4IDogcHVibGljIEVkaXRvckNsaWVu
dCwgcHVibGljIFRleHRDaGVja2VyQ2xpZW50IHsKIGZyaWVuZCBjbGFzcyA6Ond4V2ViVmlldzsK
IGZyaWVuZCBjbGFzcyA6Ond4V2ViRnJhbWU7CiAKQEAgLTExMyw2ICsxMTQsNyBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCB2b2lkIHdpbGxTZXRJbnB1dE1ldGhvZFN0YXRlKCk7CiAgICAgdmlydHVh
bCB2b2lkIHNldElucHV0TWV0aG9kU3RhdGUoYm9vbCBlbmFibGVkKTsKICAgICB2aXJ0dWFsIHZv
aWQgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoV2ViQ29yZTo6U3BlbGxDaGVja2VyKiwgaW50LCBj
b25zdCBXVEY6OlN0cmluZyYpIHt9CisgICAgdmlydHVhbCBUZXh0Q2hlY2tlckNsaWVudCogdGV4
dENoZWtlcigpIHsgcmV0dXJuIHRoaXM7IH0KIAogcHJpdmF0ZToKICAgICBQYWdlKiBtX3BhZ2U7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKaW5kZXggNTQ3M2EyM2U2ZTQ2NTQzNDYxYjdkZDE4MmQ2M2JjYmZlYTVlNDFjOC4u
OTI5NDE0ZTQzZTY1MWJhOWY4OTcyOTJjYWU3ZjI4N2MwOTg2NDI3ZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE0IEBACisyMDExLTAxLTI2ICBNT1JJVEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUu
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5l
ZWQgYSBzaG9ydCBkZXNjcmlwdGlvbiBhbmQgYnVnIFVSTCAoT09QUyEpCisKKyAgICAgICAgKiBT
aGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmg6CisgICAgICAgICogVUlQcm9jZXNzL1RleHRD
aGVja2VyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JD
bGllbnQuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViRWRpdG9yQ2xpZW50Ojp0ZXh0Q2hlY2tlcik6
CisKIDIwMTEtMDEtMjYgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBNYWNpZWogU3RhY2hvd2lhay4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9X
ZWJDb3JlQXJndW1lbnRDb2RlcnMuaAppbmRleCA2MmM2OGM3NjFlNWNmYzQwNjVhMWIzNDFmNTNh
NGEyZmU0ZWI1NjYwLi5lNzgwMmMzNzI2ZjJjZTMwY2VkODE0MTIxOWRiODRjMmM5ZTYxOWI4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgK
KysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCkBAIC00
Myw2ICs0Myw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9Qcm90ZWN0aW9uU3BhY2UuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1Jlc291cmNlRXJyb3IuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNl
UmVxdWVzdC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvVGV4dENoZWNrZXJDbGllbnQuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1ZpZXdwb3J0QXJndW1lbnRzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9XaW5k
b3dGZWF0dXJlcy5oPgogI2luY2x1ZGUgPGxpbWl0cz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9UZXh0Q2hlY2tlci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Rl
eHRDaGVja2VyLmgKaW5kZXggZmMzNDdmZTU0N2JkMjc3YTBiZjJjNmY5OTVlMzQ1MTIzODZmZjky
OS4uOTk5N2Q4YmRjOTM2MjE0MDZmOGQ1NDE2YzRiZGU1Mjc2MTMxOTQ0ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1RleHRDaGVja2VyLmgKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1RleHRDaGVja2VyLmgKQEAgLTI3LDYgKzI3LDcgQEAKICNkZWZpbmUgVGV4
dENoZWNrZXJfaAogCiAjaW5jbHVkZSA8V2ViQ29yZS9FZGl0b3JDbGllbnQuaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL1RleHRDaGVja2VyQ2xpZW50Lmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVk
aXRvckNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJFZGl0b3JDbGllbnQuaAppbmRleCA0MGJkOGM2OTMwZDA5OWEwN2ZjMDEwNjEzNDJhMDRlNjA0
OTkyOGZhLi5jNGUwZDAyNWY3MmUwNmY1Y2VlZDk1MTA3MTlmN2U0NDMxM2Y5OWQzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNs
aWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
RWRpdG9yQ2xpZW50LmgKQEAgLTI3LDEyICsyNywxMyBAQAogI2RlZmluZSBXZWJFZGl0b3JDbGll
bnRfaAogCiAjaW5jbHVkZSA8V2ViQ29yZS9FZGl0b3JDbGllbnQuaD4KKyNpbmNsdWRlIDxXZWJD
b3JlL1RleHRDaGVja2VyQ2xpZW50Lmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBX
ZWJQYWdlOwogCi1jbGFzcyBXZWJFZGl0b3JDbGllbnQgOiBwdWJsaWMgV2ViQ29yZTo6RWRpdG9y
Q2xpZW50IHsKK2NsYXNzIFdlYkVkaXRvckNsaWVudCA6IHB1YmxpYyBXZWJDb3JlOjpFZGl0b3JD
bGllbnQsIHB1YmxpYyBXZWJDb3JlOjpUZXh0Q2hlY2tlckNsaWVudCB7CiBwdWJsaWM6CiAgICAg
V2ViRWRpdG9yQ2xpZW50KFdlYlBhZ2UqIHBhZ2UpCiAgICAgICAgIDogbV9wYWdlKHBhZ2UpCkBA
IC0xMjAsNiArMTIxLDggQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgdG9nZ2xlQXV0b21h
dGljU3BlbGxpbmdDb3JyZWN0aW9uKCk7CiAjZW5kaWYKIAorICAgIFRleHRDaGVja2VyQ2xpZW50
KiB0ZXh0Q2hlY2tlcigpIHsgcmV0dXJuIHRoaXM7IH0KKwogICAgIHZpcnR1YWwgdm9pZCBpZ25v
cmVXb3JkSW5TcGVsbERvY3VtZW50KGNvbnN0IFN0cmluZyYpOwogICAgIHZpcnR1YWwgdm9pZCBs
ZWFybldvcmQoY29uc3QgU3RyaW5nJik7CiAgICAgdmlydHVhbCB2b2lkIGNoZWNrU3BlbGxpbmdP
ZlN0cmluZyhjb25zdCBVQ2hhciosIGludCBsZW5ndGgsIGludCogbWlzc3BlbGxpbmdMb2NhdGlv
biwgaW50KiBtaXNzcGVsbGluZ0xlbmd0aCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>80302</attachid>
            <date>2011-01-27 00:58:34 -0800</date>
            <delta_ts>2011-01-27 01:11:55 -0800</delta_ts>
            <desc>Attempt to fix the build failure</desc>
            <filename>bug-53213-20110127175831.patch</filename>
            <type>text/plain</type>
            <size>44115</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA0OWI0YWY0YTA1YzNiMTExYWUyODgwMDRjODU5MDk3Nzc3MjJjY2E2Li45
YWUwMGRjZTRjOGQ2MmJkMjZmMGI5NmJiODFmMGFmYWY5M2FhNjUxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsNDQgQEAKKzIwMTEtMDEtMjYgIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5j
b20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVm
YWN0b3Jpbmc6IEV4dHJhY3QgVGV4dENoZWNrZXJDbGllbnQgZnJvbSBFZGl0b3JDbGllbnQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUzMjEzCisgICAg
ICAgIAorICAgICAgICBDcmVhdGVkIG5ldyBhYnN0cmFjdCBjbGFzcyBUZXh0Q2hlY2tlckNsaWVu
dC4gVGhlIGNsYXNzIGhhcworICAgICAgICBzcGVsbGNoZWNrIHJlbGF0ZWQgQVBJIHdoaWNoIGlz
IHNwbGl0dGVkIAorICAgICAgICBUaGlzIGlzIHRoZSBmaXJzdCBzdGVwIGZvciBzaGFyaW5nIHNw
ZWxsLWNoZWNraW5nIGNvZGViYXNlCisgICAgICAgIGJldHdlZW4gcG9ydHMuIEEgc3RhbmRhbG9u
ZSBUZXh0Q2hlY2tlckNsaWVudCBpbXBsZW1lbnRhdGlvbgorICAgICAgICBzaG91bGQgYmUgZG9u
ZSBpbiBmdXR1cmUgY2hhbmdlcy4KKworICAgICAgICBObyBuZXcgdGVzdHMuIE5vIGJlaGF2aW9y
YWwgY2hhbmdlLgorCisgICAgICAgICogR05VbWFrZWZpbGUuYW06CisgICAgICAgICogV2ViQ29y
ZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUucHJvOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9BY2Nlc3NpYmlsaXR5T2JqZWN0V3Jh
cHBlci5tbToKKyAgICAgICAgKEFYQXR0cmlidXRlU3RyaW5nU2V0U3BlbGxpbmcpOgorICAgICAg
ICAqIGVkaXRpbmcvRWRpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6aWdub3Jl
U3BlbGxpbmcpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpsZWFyblNwZWxsaW5nKToKKyAg
ICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6aXNTZWxlY3Rpb25NaXNzcGVsbGVkKToKKyAgICAgICAg
KFdlYkNvcmU6OkVkaXRvcjo6Z3Vlc3Nlc0Zvck1pc3NwZWxsZWRTZWxlY3Rpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6RWRpdG9yOjptYXJrQWxsTWlzc3BlbGxpbmdzQW5kQmFkR3JhbW1hckluUmFu
Z2VzKToKKyAgICAgICAgKiBlZGl0aW5nL1NwZWxsQ2hlY2tlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTcGVsbENoZWNrZXI6OnJlcXVlc3RDaGVja2luZ0Zvcik6CisgICAgICAgICogZWRpdGlu
Zy9UZXh0Q2hlY2tpbmdIZWxwZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dENoZWNraW5n
SGVscGVyOjpmaW5kRmlyc3RNaXNzcGVsbGluZyk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0Q2hl
Y2tpbmdIZWxwZXI6OmZpbmRGaXJzdE1pc3NwZWxsaW5nT3JCYWRHcmFtbWFyKToKKyAgICAgICAg
KFdlYkNvcmU6OlRleHRDaGVja2luZ0hlbHBlcjo6ZmluZEZpcnN0QmFkR3JhbW1hcik6CisgICAg
ICAgIChXZWJDb3JlOjpUZXh0Q2hlY2tpbmdIZWxwZXI6Omd1ZXNzZXNGb3JNaXNzcGVsbGVkT3JV
bmdyYW1tYXRpY2FsUmFuZ2UpOgorICAgICAgICAqIGxvYWRlci9FbXB0eUNsaWVudHMuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkVtcHR5RWRpdG9yQ2xpZW50Ojp0ZXh0Q2hlY2tlcik6CisgICAgICAg
ICogcGFnZS9FZGl0b3JDbGllbnQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L1RleHRDaGVj
a2VyQ2xpZW50Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6VGV4dENoZWNrZXJDbGllbnQ6
On5UZXh0Q2hlY2tlckNsaWVudCk6CisgICAgICAgIAogMjAxMS0wMS0yNiAgU2FtIFdlaW5pZyAg
PHNhbUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE1hY2llaiBTdGFjaG93aWFr
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0gYi9Tb3VyY2UvV2Vi
Q29yZS9HTlVtYWtlZmlsZS5hbQppbmRleCA5OWVhNDQxMDgwYjI4ZTNjYTZiM2U3MTcyZTEyN2Qy
Y2RkMjRiYTE1Li41MmQwMjZmYzc3MTYyYjZhOWZmZmIyMThmMDg5NDE2ZDJiNjI0YmRjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5hbQpAQCAtMjYzMSw2ICsyNjMxLDcgQEAgd2ViY29yZV9zb3VyY2VzICs9
IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRCb3VuZGFyaWVzLmNwcCBcCiAJ
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0Qm91bmRhcmllcy5oIFwKIAlTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmggXAorCVNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3RleHQvVGV4dENoZWNrZXJDbGllbnQuaCBcCiAJU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vdGV4dC9UZXh0Q29kZWMuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90
ZXh0L1RleHRDb2RlYy5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRDb2Rl
Y0xhdGluMS5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDRhNGUwNGM5ZTBiNDIzZjdmZjI0ZTIz
OWU4MjhkYzYwZjNkNjMwMTQuLjY3NzE1NDY5YTEyYWQ4YzAzMWEyOWQ5YWJmYTVjMTRlYzg3NmM4
MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTMzMzEsNiArMzMzMSw3IEBACiAgICAgICAgICAgICAn
cGxhdGZvcm0vdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5oJywKICAgICAgICAgICAgICdwbGF0Zm9y
bS90ZXh0L1RleHRCcmVha0l0ZXJhdG9ySUNVLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0v
dGV4dC9UZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVLmgnLAorICAgICAgICAgICAgJ3BsYXRm
b3JtL3RleHQvVGV4dENoZWNrZXJDbGllbnQuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vdGV4
dC9UZXh0Q29kZWMuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS90ZXh0L1RleHRDb2RlYy5o
JywKICAgICAgICAgICAgICdwbGF0Zm9ybS90ZXh0L1RleHRDb2RlY0lDVS5jcHAnLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LnBybwppbmRleCBlNjRhZTk3YTQ5NjI5YmI5OGNkZDI0NThlZDE2NGJhNTRkYjZlY2ZiLi5hOGJk
NGQ1OTU0YWRhYzgyNGZmMTFlNDQxZjgzMjljODBjZDkxYzlkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnBybworKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwpAQCAt
MjAzNyw2ICsyMDM3LDcgQEAgSEVBREVSUyArPSBcCiAgICAgcGFnZS9EcmFnQ29udHJvbGxlci5o
IFwKICAgICBwYWdlL0V2ZW50SGFuZGxlci5oIFwKICAgICBwYWdlL0V2ZW50U291cmNlLmggXAor
ICAgIHBhZ2UvRWRpdG9yQ2xpZW50LmggXAogICAgIHBhZ2UvRm9jdXNDb250cm9sbGVyLmggXAog
ICAgIHBhZ2UvRnJhbWUuaCBcCiAgICAgcGFnZS9GcmFtZVRyZWUuaCBcCkBAIC0yMTYxLDYgKzIx
NjIsNyBAQCBIRUFERVJTICs9IFwKICAgICBwbGF0Zm9ybS9LVVJMLmggXAogICAgIHBsYXRmb3Jt
L0xlbmd0aC5oIFwKICAgICBwbGF0Zm9ybS90ZXh0L0xpbmVFbmRpbmcuaCBcCisgICAgcGxhdGZv
cm0vdGV4dC9UZXh0Q2hlY2tlckNsaWVudC5oIFwKICAgICBwbGF0Zm9ybS9MaW5rSGFzaC5oIFwK
ICAgICBwbGF0Zm9ybS9Mb2dnaW5nLmggXAogICAgIHBsYXRmb3JtL0xhbmd1YWdlLmggXApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCBlMmNlZmEw
Y2ZiMzBjZjM1MDBhMjVhMTYyYWMzOGU1ZjZhYWUwZGRmLi40ODRmNWZkMmUwNzAwNGVjODQzMzU2
Zjg5ZGI0ZmRlMDA2MjhhMjMxIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZj
cHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9X
ZWJDb3JlLnZjcHJvagpAQCAtMzAyNjEsNiArMzAyNjEsMTAgQEAKIAkJCQkJPgogCQkJCTwvRmls
ZT4KIAkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXHRleHRcVGV4dENo
ZWNrZXJDbGllbnQuaCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQogCQkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXHRleHRcVGV4dENvZGVjSUNVLmNwcCIKIAkJCQkJPgogCQkJ
CQk8RmlsZUNvbmZpZ3VyYXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAyZjIyMWZiYzRjMzQ2MzQ3NDY2YzJmZjg5NmVmNTEz
ZTg2MDA0YzMzLi44NTAwNTk2YTFkNWUxNGVlMTc4MTRhMjUzOTlmNzRlMjQzNmU3YThiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBA
IC0zMTc0LDYgKzMxNzQsNyBAQAogCQlBNjIyQThGQzEyMkM0NEE2MDBBNzg1QjMgLyogQmluZGlu
Z1NlY3VyaXR5QmFzZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBNjIyQThGNjEyMkM0NEE2MDBBNzg1QjMgLyogQmluZGluZ1NlY3VyaXR5QmFzZS5j
cHAgKi87IH07CiAJCUE2MjJBOEZEMTIyQzQ0QTYwMEE3ODVCMyAvKiBCaW5kaW5nU2VjdXJpdHlC
YXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNjIy
QThGNzEyMkM0NEE2MDBBNzg1QjMgLyogQmluZGluZ1NlY3VyaXR5QmFzZS5oICovOyB9OwogCQlB
NjIyQThGRjEyMkM0NEE2MDBBNzg1QjMgLyogR2VuZXJpY0JpbmRpbmcuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE2MjJBOEY5MTIyQzQ0QTYwMEE3ODVC
MyAvKiBHZW5lcmljQmluZGluZy5oICovOyB9OworCQlBNzE1MUJEODEyRjE1NThGMDA1QTBGNjQg
LyogVGV4dENoZWNrZXJDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEE3MTUxQkQ3MTJGMTU1OEYwMDVBMEY2NCAvKiBUZXh0Q2hlY2tlckNsaWVu
dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE3
MTg3NjBFMEIyQTEyMDEwMEExNkVDRSAvKiBEcmFnQWN0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTcxODc2MEQwQjJBMTIwMTAwQTE2RUNFIC8q
IERyYWdBY3Rpb25zLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJQTcxODc4OTAwQjJEMDRBQzAwQTE2RUNFIC8qIERyYWdDb250cm9sbGVyTWFjLm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTcxODc4OEYw
QjJEMDRBQzAwQTE2RUNFIC8qIERyYWdDb250cm9sbGVyTWFjLm1tICovOyB9OwogCQlBNzNGOTVG
RTEyQzk3QkZFMDAzMUFBRjkgLyogUm91bmRlZEludFJlY3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTczRjk1RkMxMkM5N0JGRTAwMzFBQUY5IC8q
IFJvdW5kZWRJbnRSZWN0LmNwcCAqLzsgfTsKQEAgLTk1NjcsNiArOTU2OCw3IEBACiAJCUE2MjJB
OEY2MTIyQzQ0QTYwMEE3ODVCMyAvKiBCaW5kaW5nU2VjdXJpdHlCYXNlLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEJpbmRpbmdTZWN1cml0eUJhc2UuY3BwOyBwYXRo
ID0gZ2VuZXJpYy9CaW5kaW5nU2VjdXJpdHlCYXNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQTYyMkE4RjcxMjJDNDRBNjAwQTc4NUIzIC8qIEJpbmRpbmdTZWN1cml0eUJhc2Uu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQmluZGluZ1NlY3VyaXR5QmFzZS5o
OyBwYXRoID0gZ2VuZXJpYy9CaW5kaW5nU2VjdXJpdHlCYXNlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUE2MjJBOEY5MTIyQzQ0QTYwMEE3ODVCMyAvKiBHZW5lcmljQmluZGluZy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBHZW5lcmljQmluZGluZy5oOyBwYXRo
ID0gZ2VuZXJpYy9HZW5lcmljQmluZGluZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlBNzE1MUJENzEyRjE1NThGMDA1QTBGNjQgLyogVGV4dENoZWNrZXJDbGllbnQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGV4dENoZWNrZXJDbGllbnQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTcxODc2MEQwQjJBMTIwMTAwQTE2RUNFIC8qIERyYWdBY3Rp
b25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERyYWdBY3Rpb25zLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3MTg3ODhGMEIyRDA0QUMwMEExNkVDRSAvKiBE
cmFnQ29udHJvbGxlck1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IERyYWdDb250cm9sbGVyTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlB
NzFBNzBDOTExQUZCMDIwMDA5ODlENkQgLyogSFRNTE1ldGVyRWxlbWVudC5pZGwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gSFRNTE1ldGVyRWxlbWVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC0xNzU4NCw2ICsxNzU4Niw3IEBACiAJCQkJQjJDM0RBMDYwRDAwNkMxRDAwRUY2
RjI2IC8qIFRleHRCcmVha0l0ZXJhdG9yLmggKi8sCiAJCQkJQjJDM0RBMDcwRDAwNkMxRDAwRUY2
RjI2IC8qIFRleHRCcmVha0l0ZXJhdG9ySUNVLmNwcCAqLywKIAkJCQlCMkMzREEwODBEMDA2QzFE
MDBFRjZGMjYgLyogVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVS5oICovLAorCQkJCUE3MTUx
QkQ3MTJGMTU1OEYwMDVBMEY2NCAvKiBUZXh0Q2hlY2tlckNsaWVudC5oICovLAogCQkJCUIyQzNE
QTA5MEQwMDZDMUQwMEVGNkYyNiAvKiBUZXh0Q29kZWMuY3BwICovLAogCQkJCUIyQzNEQTBBMEQw
MDZDMUQwMEVGNkYyNiAvKiBUZXh0Q29kZWMuaCAqLywKIAkJCQlCMkMzREEwQjBEMDA2QzFEMDBF
RjZGMjYgLyogVGV4dENvZGVjSUNVLmNwcCAqLywKQEAgLTIyNDQxLDYgKzIyNDQ0LDcgQEAKIAkJ
CQk0RjJEMjA1NDEyRUFFN0IzMDA1QzI4NzQgLyogSW5zcGVjdG9yQWdlbnQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJDOTU4NUUxMTJGMDk4OTUwMDc1NTgyMSAvKiBQbGF0Zm9ybUdlc3R1cmVFdmVu
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTEzNEY1QUIxMkVFMzQzRjAwNEVDNThEIC8qIEludFJl
Y3RIYXNoLmggaW4gSGVhZGVycyAqLywKKwkJCQlBNzE1MUJEODEyRjE1NThGMDA1QTBGNjQgLyog
VGV4dENoZWNrZXJDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JE
ZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIubW0gYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBl
ci5tbQppbmRleCBjMmUzNzI0ZWQwZTk0NTFlOTI0MWM5MTEzNzEwMTFlNjM1MDdiNzI1Li4zNmEz
NjFiN2Y0N2UxNDBhMjRlZjAyNDM3NTgzZGVlYzAzNzc2OTlmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlci5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BY2Nlc3NpYmlsaXR5T2JqZWN0
V3JhcHBlci5tbQpAQCAtNTgsNiArNTgsNyBAQAogI2ltcG9ydCAiU2Nyb2xsVmlldy5oIgogI2lt
cG9ydCAiU2VsZWN0aW9uQ29udHJvbGxlci5oIgogI2ltcG9ydCAiU2ltcGxlRm9udERhdGEuaCIK
KyNpbXBvcnQgIlRleHRDaGVja2VyQ2xpZW50LmgiCiAjaW1wb3J0ICJUZXh0SXRlcmF0b3IuaCIK
ICNpbXBvcnQgIldlYkNvcmVGcmFtZVZpZXcuaCIKICNpbXBvcnQgIldlYkNvcmVPYmpDRXh0cmFz
LmgiCkBAIC00NDIsNyArNDQzLDcgQEAgc3RhdGljIHZvaWQgQVhBdHRyaWJ1dGVTdHJpbmdTZXRT
cGVsbGluZyhOU011dGFibGVBdHRyaWJ1dGVkU3RyaW5nKiBhdHRyU3RyaW5nLAogCiAgICAgICAg
IGludCBtaXNzcGVsbGluZ0xvY2F0aW9uID0gLTE7CiAgICAgICAgIGludCBtaXNzcGVsbGluZ0xl
bmd0aCA9IDA7Ci0gICAgICAgIGNsaWVudC0+Y2hlY2tTcGVsbGluZ09mU3RyaW5nKGNoYXJEYXRh
LCBjaGFyTGVuZ3RoLCAmbWlzc3BlbGxpbmdMb2NhdGlvbiwgJm1pc3NwZWxsaW5nTGVuZ3RoKTsK
KyAgICAgICAgY2xpZW50LT50ZXh0Q2hlY2tlcigpLT5jaGVja1NwZWxsaW5nT2ZTdHJpbmcoY2hh
ckRhdGEsIGNoYXJMZW5ndGgsICZtaXNzcGVsbGluZ0xvY2F0aW9uLCAmbWlzc3BlbGxpbmdMZW5n
dGgpOwogICAgICAgICBpZiAobWlzc3BlbGxpbmdMb2NhdGlvbiA9PSAtMSB8fCAhbWlzc3BlbGxp
bmdMZW5ndGgpCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Vk
aXRvci5jcHAKaW5kZXggM2FjZWMyN2EzODM0NTVjNTViMzlhMzA5OWI0ZGM3MjA0ZWYyZjA4NS4u
ZmU3NGFkNjY3ZDUxNjUzNDgwOTMwYTZmZGMyMDA2YjAzYTkzMGI0YyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRWRpdG9yLmNwcApAQCAtNjUsNiArNjUsNyBAQAogI2luY2x1ZGUgIk5vZGVMaXN0LmgiCiAj
aW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBhc3RlYm9hcmQuaCIKKyNpbmNsdWRlICJUZXh0
Q2hlY2tlckNsaWVudC5oIgogI2luY2x1ZGUgIlRleHRDaGVja2luZ0hlbHBlci5oIgogI2luY2x1
ZGUgIlJlbW92ZUZvcm1hdENvbW1hbmQuaCIKICNpbmNsdWRlICJSZW5kZXJCbG9jay5oIgpAQCAt
MTczNyw3ICsxNzM4LDcgQEAgdm9pZCBFZGl0b3I6Omlnbm9yZVNwZWxsaW5nKCkKIAogICAgIFN0
cmluZyB0ZXh0ID0gc2VsZWN0ZWRUZXh0KCk7CiAgICAgQVNTRVJUKHRleHQubGVuZ3RoKCkpOwot
ICAgIGNsaWVudCgpLT5pZ25vcmVXb3JkSW5TcGVsbERvY3VtZW50KHRleHQpOworICAgIGNsaWVu
dCgpLT50ZXh0Q2hlY2tlcigpLT5pZ25vcmVXb3JkSW5TcGVsbERvY3VtZW50KHRleHQpOwogfQog
CiB2b2lkIEVkaXRvcjo6bGVhcm5TcGVsbGluZygpCkBAIC0xNzUwLDcgKzE3NTEsNyBAQCB2b2lk
IEVkaXRvcjo6bGVhcm5TcGVsbGluZygpCiAKICAgICBTdHJpbmcgdGV4dCA9IHNlbGVjdGVkVGV4
dCgpOwogICAgIEFTU0VSVCh0ZXh0Lmxlbmd0aCgpKTsKLSAgICBjbGllbnQoKS0+bGVhcm5Xb3Jk
KHRleHQpOworICAgIGNsaWVudCgpLT50ZXh0Q2hlY2tlcigpLT5sZWFybldvcmQodGV4dCk7CiB9
CiAKIHZvaWQgRWRpdG9yOjphZHZhbmNlVG9OZXh0TWlzc3BlbGxpbmcoYm9vbCBzdGFydEJlZm9y
ZVNlbGVjdGlvbikKQEAgLTE5NDAsNyArMTk0MSw3IEBAIGJvb2wgRWRpdG9yOjppc1NlbGVjdGlv
bk1pc3NwZWxsZWQoKQogICAgIAogICAgIGludCBtaXNzcGVsbGluZ0xvY2F0aW9uID0gLTE7CiAg
ICAgaW50IG1pc3NwZWxsaW5nTGVuZ3RoID0gMDsKLSAgICBjbGllbnQoKS0+Y2hlY2tTcGVsbGlu
Z09mU3RyaW5nKHNlbGVjdGVkU3RyaW5nLmNoYXJhY3RlcnMoKSwgbGVuZ3RoLCAmbWlzc3BlbGxp
bmdMb2NhdGlvbiwgJm1pc3NwZWxsaW5nTGVuZ3RoKTsKKyAgICBjbGllbnQoKS0+dGV4dENoZWNr
ZXIoKS0+Y2hlY2tTcGVsbGluZ09mU3RyaW5nKHNlbGVjdGVkU3RyaW5nLmNoYXJhY3RlcnMoKSwg
bGVuZ3RoLCAmbWlzc3BlbGxpbmdMb2NhdGlvbiwgJm1pc3NwZWxsaW5nTGVuZ3RoKTsKICAgICAK
ICAgICAvLyBUaGUgc2VsZWN0aW9uIG9ubHkgY291bnRzIGFzIG1pc3NwZWxsZWQgaWYgdGhlIHNl
bGVjdGVkIHRleHQgaXMgZXhhY3RseSBvbmUgbWlzc3BlbGxlZCB3b3JkCiAgICAgaWYgKG1pc3Nw
ZWxsaW5nTGVuZ3RoICE9IGxlbmd0aCkKQEAgLTE5ODQsNyArMTk4NSw3IEBAIFZlY3RvcjxTdHJp
bmc+IEVkaXRvcjo6Z3Vlc3Nlc0Zvck1pc3NwZWxsZWRTZWxlY3Rpb24oKQogCiAgICAgVmVjdG9y
PFN0cmluZz4gZ3Vlc3NlczsKICAgICBpZiAoY2xpZW50KCkpCi0gICAgICAgIGNsaWVudCgpLT5n
ZXRHdWVzc2VzRm9yV29yZChzZWxlY3RlZFN0cmluZywgU3RyaW5nKCksIGd1ZXNzZXMpOworICAg
ICAgICBjbGllbnQoKS0+dGV4dENoZWNrZXIoKS0+Z2V0R3Vlc3Nlc0ZvcldvcmQoc2VsZWN0ZWRT
dHJpbmcsIFN0cmluZygpLCBndWVzc2VzKTsKICAgICByZXR1cm4gZ3Vlc3NlczsKIH0KIApAQCAt
MjExNiw3ICsyMTE3LDcgQEAgdm9pZCBFZGl0b3I6Om1hcmtNaXNzcGVsbGluZ3NBZnRlclR5cGlu
Z1RvV29yZChjb25zdCBWaXNpYmxlUG9zaXRpb24gJndvcmRTdGFydCwKICAgICAKICAgICAvLyBH
ZXQgdGhlIG1pc3NwZWxsZWQgd29yZC4KICAgICBjb25zdCBTdHJpbmcgbWlzc3BlbGxlZFdvcmQg
PSBwbGFpblRleHQobWlzc3BlbGxpbmdSYW5nZS5nZXQoKSk7Ci0gICAgU3RyaW5nIGF1dG9jb3Jy
ZWN0ZWRTdHJpbmcgPSBjbGllbnQoKS0+Z2V0QXV0b0NvcnJlY3RTdWdnZXN0aW9uRm9yTWlzc3Bl
bGxlZFdvcmQobWlzc3BlbGxlZFdvcmQpOworICAgIFN0cmluZyBhdXRvY29ycmVjdGVkU3RyaW5n
ID0gY2xpZW50KCktPnRleHRDaGVja2VyKCktPmdldEF1dG9Db3JyZWN0U3VnZ2VzdGlvbkZvck1p
c3NwZWxsZWRXb3JkKG1pc3NwZWxsZWRXb3JkKTsKIAogICAgIC8vIElmIGF1dG9jb3JyZWN0ZWQg
d29yZCBpcyBub24gZW1wdHksIHJlcGxhY2UgdGhlIG1pc3NwZWxsZWQgd29yZCBieSB0aGlzIHdv
cmQuCiAgICAgaWYgKCFhdXRvY29ycmVjdGVkU3RyaW5nLmlzRW1wdHkoKSkgewpAQCAtMjI4NCw3
ICsyMjg1LDcgQEAgdm9pZCBFZGl0b3I6Om1hcmtBbGxNaXNzcGVsbGluZ3NBbmRCYWRHcmFtbWFy
SW5SYW5nZXMoVGV4dENoZWNraW5nT3B0aW9ucyB0ZXh0Q2gKICAgICAgICAgaWYgKHNob3VsZE1h
cmtTcGVsbGluZyAmJiBpc0F1dG9tYXRpY1NwZWxsaW5nQ29ycmVjdGlvbkVuYWJsZWQoKSkKICAg
ICAgICAgICAgIGNoZWNraW5nVHlwZXMgfD0gVGV4dENoZWNraW5nVHlwZUNvcnJlY3Rpb247CiAg
ICAgfQotICAgIGNsaWVudCgpLT5jaGVja1RleHRPZlBhcmFncmFwaChwYXJhZ3JhcGgudGV4dENo
YXJhY3RlcnMoKSwgcGFyYWdyYXBoLnRleHRMZW5ndGgoKSwgY2hlY2tpbmdUeXBlcywgcmVzdWx0
cyk7CisgICAgY2xpZW50KCktPnRleHRDaGVja2VyKCktPmNoZWNrVGV4dE9mUGFyYWdyYXBoKHBh
cmFncmFwaC50ZXh0Q2hhcmFjdGVycygpLCBwYXJhZ3JhcGgudGV4dExlbmd0aCgpLCBjaGVja2lu
Z1R5cGVzLCByZXN1bHRzKTsKIAogI2lmIFNVUFBPUlRfQVVUT0NPUlJFQ1RJT05fUEFORUwKICAg
ICAvLyBJZiB0aGlzIGNoZWNraW5nIGlzIG9ubHkgZm9yIHNob3dpbmcgY29ycmVjdGlvbiBwYW5l
bCwgd2Ugc2hvdWxkbid0IGJvdGhlciB0byBtYXJrIG1pc3NwZWxsaW5ncy4KQEAgLTI0OTMsNyAr
MjQ5NCw3IEBAIHZvaWQgRWRpdG9yOjpjb3JyZWN0aW9uUGFuZWxUaW1lckZpcmVkKFRpbWVyPEVk
aXRvcj4qKQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIFN0cmluZyBwYXJhZ3JhcGhUZXh0
ID0gcGxhaW5UZXh0KFRleHRDaGVja2luZ1BhcmFncmFwaChtX2NvcnJlY3Rpb25QYW5lbEluZm8u
cmFuZ2VUb0JlUmVwbGFjZWQpLnBhcmFncmFwaFJhbmdlKCkuZ2V0KCkpOwogICAgICAgICBWZWN0
b3I8U3RyaW5nPiBzdWdnZXN0aW9uczsKLSAgICAgICAgY2xpZW50KCktPmdldEd1ZXNzZXNGb3JX
b3JkKG1fY29ycmVjdGlvblBhbmVsSW5mby5yZXBsYWNlZFN0cmluZywgcGFyYWdyYXBoVGV4dCwg
c3VnZ2VzdGlvbnMpOworICAgICAgICBjbGllbnQoKS0+dGV4dENoZWNrZXIoKS0+Z2V0R3Vlc3Nl
c0ZvcldvcmQobV9jb3JyZWN0aW9uUGFuZWxJbmZvLnJlcGxhY2VkU3RyaW5nLCBwYXJhZ3JhcGhU
ZXh0LCBzdWdnZXN0aW9ucyk7CiAgICAgICAgIGlmIChzdWdnZXN0aW9ucy5pc0VtcHR5KCkpCiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgU3RyaW5nIHRvcFN1Z2dlc3Rpb24gPSBzdWdnZXN0
aW9ucy5maXJzdCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGVsbENo
ZWNrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGVsbENoZWNrZXIuY3BwCmluZGV4
IGYxNGE3NGQ2NzY0M2YyNzg3YzQwZTQxNzgwYjdjNzcxYTEzOThhMDMuLmExMTNkMDJmMjBhMjA3
YjFkYWMzNDQ1NTQzNzA2ZjJmMjEyMDk2M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvU3BlbGxDaGVja2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwZWxs
Q2hlY2tlci5jcHAKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJSYW5nZS5oIgogI2luY2x1
ZGUgIlJlbmRlck9iamVjdC5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCisjaW5jbHVkZSAiVGV4
dENoZWNrZXJDbGllbnQuaCIKICNpbmNsdWRlICJUZXh0SXRlcmF0b3IuaCIKICNpbmNsdWRlICJo
dG1sZWRpdGluZy5oIgogCkBAIC0xMDUsNyArMTA2LDcgQEAgdm9pZCBTcGVsbENoZWNrZXI6OnJl
cXVlc3RDaGVja2luZ0ZvcihOb2RlKiBub2RlKQogCiAgICAgaWYgKCFpbml0UmVxdWVzdChub2Rl
KSkKICAgICAgICAgcmV0dXJuOwotICAgIG1fY2xpZW50LT5yZXF1ZXN0Q2hlY2tpbmdPZlN0cmlu
Zyh0aGlzLCBtX3JlcXVlc3RTZXF1ZW5jZSwgbV9yZXF1ZXN0VGV4dCk7CisgICAgbV9jbGllbnQt
PnRleHRDaGVja2VyKCktPnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKHRoaXMsIG1fcmVxdWVzdFNl
cXVlbmNlLCBtX3JlcXVlc3RUZXh0KTsKIH0KIAogc3RhdGljIGJvb2wgZm9yd2FyZEl0ZXJhdG9y
KFBvc2l0aW9uSXRlcmF0b3ImIGl0ZXJhdG9yLCBpbnQgZGlzdGFuY2UpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRDaGVja2luZ0hlbHBlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1RleHRDaGVja2luZ0hlbHBlci5jcHAKaW5kZXggYjQ0MjlhNjQ2ZmJjNmJm
NjkyMzgzMTg4ZWRlMTY3MjI3MWJlM2FhYS4uZTU1NTNmZDEwMjkyZmU1ODdmMGUyMzMwZDE2NWU4
ZTE3NzI4ZTQxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0Q2hlY2tp
bmdIZWxwZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dENoZWNraW5nSGVs
cGVyLmNwcApAQCAtMjksNiArMjksNyBAQAogCiAjaW5jbHVkZSAiRG9jdW1lbnRNYXJrZXJDb250
cm9sbGVyLmgiCiAjaW5jbHVkZSAiUmFuZ2UuaCIKKyNpbmNsdWRlICJUZXh0Q2hlY2tlckNsaWVu
dC5oIgogI2luY2x1ZGUgIlRleHRJdGVyYXRvci5oIgogI2luY2x1ZGUgIlZpc2libGVQb3NpdGlv
bi5oIgogI2luY2x1ZGUgInZpc2libGVfdW5pdHMuaCIKQEAgLTE3OSw3ICsxODAsNyBAQCBTdHJp
bmcgVGV4dENoZWNraW5nSGVscGVyOjpmaW5kRmlyc3RNaXNzcGVsbGluZyhpbnQmIGZpcnN0TWlz
c3BlbGxpbmdPZmZzZXQsIGJvbwogICAgICAgICAgICAgCiAgICAgICAgICAgICBpbnQgbWlzc3Bl
bGxpbmdMb2NhdGlvbiA9IC0xOwogICAgICAgICAgICAgaW50IG1pc3NwZWxsaW5nTGVuZ3RoID0g
MDsKLSAgICAgICAgICAgIG1fY2xpZW50LT5jaGVja1NwZWxsaW5nT2ZTdHJpbmcoY2hhcnMsIGxl
biwgJm1pc3NwZWxsaW5nTG9jYXRpb24sICZtaXNzcGVsbGluZ0xlbmd0aCk7CisgICAgICAgICAg
ICBtX2NsaWVudC0+dGV4dENoZWNrZXIoKS0+Y2hlY2tTcGVsbGluZ09mU3RyaW5nKGNoYXJzLCBs
ZW4sICZtaXNzcGVsbGluZ0xvY2F0aW9uLCAmbWlzc3BlbGxpbmdMZW5ndGgpOwogCiAgICAgICAg
ICAgICAvLyA1NDkwNjI3IHNob3dzIHRoYXQgdGhlcmUgd2FzIHNvbWUgY29kZSBwYXRoIGhlcmUg
d2hlcmUgdGhlIFN0cmluZyBjb25zdHJ1Y3RvciBiZWxvdyBjcmFzaGVzLgogICAgICAgICAgICAg
Ly8gV2UgZG9uJ3Qga25vdyBleGFjdGx5IHdoYXQgY29tYmluYXRpb24gb2YgYmFkIGlucHV0IGNh
dXNlZCB0aGlzLCBzbyB3ZSdyZSBtYWtpbmcgdGhpcyBtdWNoCkBAIC0yNzQsNyArMjc1LDcgQEAg
U3RyaW5nIFRleHRDaGVja2luZ0hlbHBlcjo6ZmluZEZpcnN0TWlzc3BlbGxpbmdPckJhZEdyYW1t
YXIoYm9vbCBjaGVja0dyYW1tYXIsIGIKICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAg
ICBWZWN0b3I8VGV4dENoZWNraW5nUmVzdWx0PiByZXN1bHRzOwogICAgICAgICAgICAgICAgIHVp
bnQ2NF90IGNoZWNraW5nVHlwZXMgPSBjaGVja0dyYW1tYXIgPyAoVGV4dENoZWNraW5nVHlwZVNw
ZWxsaW5nIHwgVGV4dENoZWNraW5nVHlwZUdyYW1tYXIpIDogVGV4dENoZWNraW5nVHlwZVNwZWxs
aW5nOwotICAgICAgICAgICAgICAgIG1fY2xpZW50LT5jaGVja1RleHRPZlBhcmFncmFwaChwYXJh
Z3JhcGhTdHJpbmcuY2hhcmFjdGVycygpLCBwYXJhZ3JhcGhTdHJpbmcubGVuZ3RoKCksIGNoZWNr
aW5nVHlwZXMsIHJlc3VsdHMpOworICAgICAgICAgICAgICAgIG1fY2xpZW50LT50ZXh0Q2hlY2tl
cigpLT5jaGVja1RleHRPZlBhcmFncmFwaChwYXJhZ3JhcGhTdHJpbmcuY2hhcmFjdGVycygpLCBw
YXJhZ3JhcGhTdHJpbmcubGVuZ3RoKCksIGNoZWNraW5nVHlwZXMsIHJlc3VsdHMpOwogICAgICAg
ICAgICAgICAgIAogICAgICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCByZXN1
bHRzLnNpemUoKTsgaSsrKSB7CiAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFRleHRDaGVja2lu
Z1Jlc3VsdCogcmVzdWx0ID0gJnJlc3VsdHNbaV07CkBAIC00MjIsNyArNDIzLDcgQEAgU3RyaW5n
IFRleHRDaGVja2luZ0hlbHBlcjo6ZmluZEZpcnN0QmFkR3JhbW1hcihHcmFtbWFyRGV0YWlsJiBv
dXRHcmFtbWFyRGV0YWlsLAogICAgICAgICBWZWN0b3I8R3JhbW1hckRldGFpbD4gZ3JhbW1hckRl
dGFpbHM7CiAgICAgICAgIGludCBiYWRHcmFtbWFyUGhyYXNlTG9jYXRpb24gPSAtMTsKICAgICAg
ICAgaW50IGJhZEdyYW1tYXJQaHJhc2VMZW5ndGggPSAwOwotICAgICAgICBtX2NsaWVudC0+Y2hl
Y2tHcmFtbWFyT2ZTdHJpbmcocGFyYWdyYXBoLnRleHRDaGFyYWN0ZXJzKCkgKyBzdGFydE9mZnNl
dCwgcGFyYWdyYXBoLnRleHRMZW5ndGgoKSAtIHN0YXJ0T2Zmc2V0LCBncmFtbWFyRGV0YWlscywg
JmJhZEdyYW1tYXJQaHJhc2VMb2NhdGlvbiwgJmJhZEdyYW1tYXJQaHJhc2VMZW5ndGgpOworICAg
ICAgICBtX2NsaWVudC0+dGV4dENoZWNrZXIoKS0+Y2hlY2tHcmFtbWFyT2ZTdHJpbmcocGFyYWdy
YXBoLnRleHRDaGFyYWN0ZXJzKCkgKyBzdGFydE9mZnNldCwgcGFyYWdyYXBoLnRleHRMZW5ndGgo
KSAtIHN0YXJ0T2Zmc2V0LCBncmFtbWFyRGV0YWlscywgJmJhZEdyYW1tYXJQaHJhc2VMb2NhdGlv
biwgJmJhZEdyYW1tYXJQaHJhc2VMZW5ndGgpOwogICAgICAgICAKICAgICAgICAgaWYgKCFiYWRH
cmFtbWFyUGhyYXNlTGVuZ3RoKSB7CiAgICAgICAgICAgICBBU1NFUlQoYmFkR3JhbW1hclBocmFz
ZUxvY2F0aW9uID09IC0xKTsKQEAgLTUzNSwxNCArNTM2LDE0IEBAIFZlY3RvcjxTdHJpbmc+IFRl
eHRDaGVja2luZ0hlbHBlcjo6Z3Vlc3Nlc0Zvck1pc3NwZWxsZWRPclVuZ3JhbW1hdGljYWxSYW5n
ZShib29sCiAKICAgICBWZWN0b3I8VGV4dENoZWNraW5nUmVzdWx0PiByZXN1bHRzOwogICAgIHVp
bnQ2NF90IGNoZWNraW5nVHlwZXMgPSBjaGVja0dyYW1tYXIgPyAoVGV4dENoZWNraW5nVHlwZVNw
ZWxsaW5nIHwgVGV4dENoZWNraW5nVHlwZUdyYW1tYXIpIDogVGV4dENoZWNraW5nVHlwZVNwZWxs
aW5nOwotICAgIG1fY2xpZW50LT5jaGVja1RleHRPZlBhcmFncmFwaChwYXJhZ3JhcGgudGV4dENo
YXJhY3RlcnMoKSwgcGFyYWdyYXBoLnRleHRMZW5ndGgoKSwgY2hlY2tpbmdUeXBlcywgcmVzdWx0
cyk7CisgICAgbV9jbGllbnQtPnRleHRDaGVja2VyKCktPmNoZWNrVGV4dE9mUGFyYWdyYXBoKHBh
cmFncmFwaC50ZXh0Q2hhcmFjdGVycygpLCBwYXJhZ3JhcGgudGV4dExlbmd0aCgpLCBjaGVja2lu
Z1R5cGVzLCByZXN1bHRzKTsKICAgICAKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcmVz
dWx0cy5zaXplKCk7IGkrKykgewogICAgICAgICBjb25zdCBUZXh0Q2hlY2tpbmdSZXN1bHQqIHJl
c3VsdCA9ICZyZXN1bHRzW2ldOwogICAgICAgICBpZiAocmVzdWx0LT50eXBlID09IFRleHRDaGVj
a2luZ1R5cGVTcGVsbGluZyAmJiBwYXJhZ3JhcGguY2hlY2tpbmdSYW5nZU1hdGNoZXMocmVzdWx0
LT5sb2NhdGlvbiwgcmVzdWx0LT5sZW5ndGgpKSB7CiAgICAgICAgICAgICBTdHJpbmcgbWlzc3Bl
bGxlZFdvcmQgPSBwYXJhZ3JhcGguY2hlY2tpbmdTdWJzdHJpbmcoKTsKICAgICAgICAgICAgIEFT
U0VSVChtaXNzcGVsbGVkV29yZC5sZW5ndGgoKSk7Ci0gICAgICAgICAgICBtX2NsaWVudC0+Z2V0
R3Vlc3Nlc0ZvcldvcmQobWlzc3BlbGxlZFdvcmQsIFN0cmluZygpLCBndWVzc2VzKTsKKyAgICAg
ICAgICAgIG1fY2xpZW50LT50ZXh0Q2hlY2tlcigpLT5nZXRHdWVzc2VzRm9yV29yZChtaXNzcGVs
bGVkV29yZCwgU3RyaW5nKCksIGd1ZXNzZXMpOwogICAgICAgICAgICAgbV9jbGllbnQtPnVwZGF0
ZVNwZWxsaW5nVUlXaXRoTWlzc3BlbGxlZFdvcmQobWlzc3BlbGxlZFdvcmQpOwogICAgICAgICAg
ICAgbWlzc3BlbGxlZCA9IHRydWU7CiAgICAgICAgICAgICByZXR1cm4gZ3Vlc3NlczsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAppbmRleCAzZTU4YzdhZmJiY2IzZGUwNTY3YjY4OTIy
ODJjZDc2YTQ0NDY2ZGUxLi40NWQxMGY1NTM1MDIyNGUzNTIzNjNlNzFiYTczNmJlZTA1YjllZTI1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCkBAIC0zNyw2ICszNyw3IEBACiAj
aW5jbHVkZSAiRHJhZ0NsaWVudC5oIgogI2luY2x1ZGUgIkVkaXRDb21tYW5kLmgiCiAjaW5jbHVk
ZSAiRWRpdG9yQ2xpZW50LmgiCisjaW5jbHVkZSAiVGV4dENoZWNrZXJDbGllbnQuaCIKICNpbmNs
dWRlICJGbG9hdFJlY3QuaCIKICNpbmNsdWRlICJGb2N1c0RpcmVjdGlvbi5oIgogI2luY2x1ZGUg
IkZyYW1lTG9hZGVyQ2xpZW50LmgiCkBAIC0zOTIsNyArMzkzLDcgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgUGFzc1JlZlB0cjxGcmFtZU5ldHdvcmtpbmdDb250ZXh0PiBjcmVhdGVOZXR3b3JraW5n
Q29udGV4dCgpIHsgcmV0dXJuIFBhc3NSZWZQdHI8RnJhbWVOZXR3b3JraW5nQ29udGV4dD4oKTsg
fQogfTsKIAotY2xhc3MgRW1wdHlFZGl0b3JDbGllbnQgOiBwdWJsaWMgRWRpdG9yQ2xpZW50IHsK
K2NsYXNzIEVtcHR5RWRpdG9yQ2xpZW50IDogcHVibGljIEVkaXRvckNsaWVudCwgcHVibGljIFRl
eHRDaGVja2VyQ2xpZW50IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShFbXB0eUVkaXRvckNs
aWVudCk7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIEVtcHR5RWRpdG9y
Q2xpZW50KCkgeyB9CkBAIC00ODQsNiArNDg1LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9v
bCBpc0F1dG9tYXRpY1NwZWxsaW5nQ29ycmVjdGlvbkVuYWJsZWQoKSB7IHJldHVybiBmYWxzZTsg
fQogICAgIHZpcnR1YWwgdm9pZCB0b2dnbGVBdXRvbWF0aWNTcGVsbGluZ0NvcnJlY3Rpb24oKSB7
IH0KICNlbmRpZgorICAgIFRleHRDaGVja2VyQ2xpZW50KiB0ZXh0Q2hlY2tlcigpIHsgcmV0dXJu
IHRoaXM7IH0KICAgICB2aXJ0dWFsIHZvaWQgaWdub3JlV29yZEluU3BlbGxEb2N1bWVudChjb25z
dCBTdHJpbmcmKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgbGVhcm5Xb3JkKGNvbnN0IFN0cmluZyYp
IHsgfQogICAgIHZpcnR1YWwgdm9pZCBjaGVja1NwZWxsaW5nT2ZTdHJpbmcoY29uc3QgVUNoYXIq
LCBpbnQsIGludCosIGludCopIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9F
ZGl0b3JDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRWRpdG9yQ2xpZW50LmgKaW5kZXgg
NzFiYTNkZGY5NTI1OTgxMmQ1NjI3Y2UxMjE1YTI3YzM3OTMwZTI5YS4uZDJiNGRhNmRlOTgwNTAy
MWI0MjU5MTI4YzVmNTVlMTY3YTA1ZDc2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9FZGl0b3JDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0VkaXRvckNsaWVudC5o
CkBAIC01OCw2ICs1OCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEFyY2hpdmVSZXNv
dXJjZTsKIGNsYXNzIENTU1N0eWxlRGVjbGFyYXRpb247CiBjbGFzcyBEb2N1bWVudEZyYWdtZW50
OworY2xhc3MgR3JhbW1hckRldGFpbDsKIGNsYXNzIEVkaXRDb21tYW5kOwogY2xhc3MgRWRpdG9y
OwogY2xhc3MgRWxlbWVudDsKQEAgLTY5LDMyICs3MCw4IEBAIGNsYXNzIFJhbmdlOwogY2xhc3Mg
U3BlbGxDaGVja2VyOwogY2xhc3MgVmlzaWJsZVNlbGVjdGlvbjsKIGNsYXNzIFZpc2libGVQb3Np
dGlvbjsKK2NsYXNzIFRleHRDaGVja2VyQ2xpZW50OwogCi1zdHJ1Y3QgR3JhbW1hckRldGFpbCB7
Ci0gICAgaW50IGxvY2F0aW9uOwotICAgIGludCBsZW5ndGg7Ci0gICAgVmVjdG9yPFN0cmluZz4g
Z3Vlc3NlczsKLSAgICBTdHJpbmcgdXNlckRlc2NyaXB0aW9uOwotfTsKLQotZW51bSBUZXh0Q2hl
Y2tpbmdUeXBlIHsKLSAgICBUZXh0Q2hlY2tpbmdUeXBlU3BlbGxpbmcgICAgPSAxIDw8IDEsCi0g
ICAgVGV4dENoZWNraW5nVHlwZUdyYW1tYXIgICAgID0gMSA8PCAyLAotICAgIFRleHRDaGVja2lu
Z1R5cGVMaW5rICAgICAgICA9IDEgPDwgNSwKLSAgICBUZXh0Q2hlY2tpbmdUeXBlUXVvdGUgICAg
ICAgPSAxIDw8IDYsCi0gICAgVGV4dENoZWNraW5nVHlwZURhc2ggICAgICAgID0gMSA8PCA3LAot
ICAgIFRleHRDaGVja2luZ1R5cGVSZXBsYWNlbWVudCA9IDEgPDwgOCwKLSAgICBUZXh0Q2hlY2tp
bmdUeXBlQ29ycmVjdGlvbiAgPSAxIDw8IDkKLX07Ci0KLXN0cnVjdCBUZXh0Q2hlY2tpbmdSZXN1
bHQgewotICAgIFRleHRDaGVja2luZ1R5cGUgdHlwZTsKLSAgICBpbnQgbG9jYXRpb247Ci0gICAg
aW50IGxlbmd0aDsKLSAgICBWZWN0b3I8R3JhbW1hckRldGFpbD4gZGV0YWlsczsKLSAgICBTdHJp
bmcgcmVwbGFjZW1lbnQ7Ci19OwotIAogY2xhc3MgRWRpdG9yQ2xpZW50IHsKIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIH5FZGl0b3JDbGllbnQoKSB7ICB9CkBAIC0xODMsMTQgKzE2MCw3IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIHZvaWQgdG9nZ2xlQXV0b21hdGljU3BlbGxpbmdDb3JyZWN0aW9uKCkg
PSAwOwogI2VuZGlmCiAKLSAgICB2aXJ0dWFsIHZvaWQgaWdub3JlV29yZEluU3BlbGxEb2N1bWVu
dChjb25zdCBTdHJpbmcmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGxlYXJuV29yZChjb25zdCBT
dHJpbmcmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGNoZWNrU3BlbGxpbmdPZlN0cmluZyhjb25z
dCBVQ2hhciosIGludCBsZW5ndGgsIGludCogbWlzc3BlbGxpbmdMb2NhdGlvbiwgaW50KiBtaXNz
cGVsbGluZ0xlbmd0aCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGdldEF1dG9Db3JyZWN0U3Vn
Z2VzdGlvbkZvck1pc3NwZWxsZWRXb3JkKGNvbnN0IFN0cmluZyYgbWlzc3BlbGxlZFdvcmQpID0g
MDsKLSAgICB2aXJ0dWFsIHZvaWQgY2hlY2tHcmFtbWFyT2ZTdHJpbmcoY29uc3QgVUNoYXIqLCBp
bnQgbGVuZ3RoLCBWZWN0b3I8R3JhbW1hckRldGFpbD4mLCBpbnQqIGJhZEdyYW1tYXJMb2NhdGlv
biwgaW50KiBiYWRHcmFtbWFyTGVuZ3RoKSA9IDA7Ci0jaWYgUExBVEZPUk0oTUFDKSAmJiAhZGVm
aW5lZChCVUlMRElOR19PTl9USUdFUikgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkK
LSAgICB2aXJ0dWFsIHZvaWQgY2hlY2tUZXh0T2ZQYXJhZ3JhcGgoY29uc3QgVUNoYXIqIHRleHQs
IGludCBsZW5ndGgsIHVpbnQ2NF90IGNoZWNraW5nVHlwZXMsIFZlY3RvcjxUZXh0Q2hlY2tpbmdS
ZXN1bHQ+JiByZXN1bHRzKSA9IDA7Ci0jZW5kaWYKKyAgICB2aXJ0dWFsIFRleHRDaGVja2VyQ2xp
ZW50KiB0ZXh0Q2hlY2tlcigpID0gMDsKIAogI2lmIFNVUFBPUlRfQVVUT0NPUlJFQ1RJT05fUEFO
RUwKICAgICB2aXJ0dWFsIHZvaWQgc2hvd0NvcnJlY3Rpb25QYW5lbChDb3JyZWN0aW9uUGFuZWxJ
bmZvOjpQYW5lbFR5cGUsIGNvbnN0IEZsb2F0UmVjdCYgYm91bmRpbmdCb3hPZlJlcGxhY2VkU3Ry
aW5nLCBjb25zdCBTdHJpbmcmIHJlcGxhY2VkU3RyaW5nLCBjb25zdCBTdHJpbmcmIHJlcGxhY21l
bnRTdHJpbmcsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBhbHRlcm5hdGl2ZVJlcGxhY2VtZW50U3Ry
aW5ncywgRWRpdG9yKikgPSAwOwpAQCAtMjAyLDExICsxNzIsOCBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB2b2lkIHVwZGF0ZVNwZWxsaW5nVUlXaXRoTWlzc3BlbGxlZFdvcmQoY29uc3QgU3RyaW5n
JikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzaG93U3BlbGxpbmdVSShib29sIHNob3cpID0gMDsK
ICAgICB2aXJ0dWFsIGJvb2wgc3BlbGxpbmdVSUlzU2hvd2luZygpID0gMDsKLSAgICAvLyBGb3Ig
c3BlbGxjaGVja2VycyB0aGF0IHN1cHBvcnQgbXVsdGlwbGUgbGFuZ3VhZ2VzLCBpdCdzIG9mdGVu
IGltcG9ydGFudCB0byBiZSBhYmxlIHRvIGlkZW50aWZ5IHRoZSBsYW5ndWFnZSBpbiBvcmRlciB0
byBwcm92aWRlIG1vcmUgYWNjdXJhdGUgY29ycmVjdGlvbiBzdWdnZXN0aW9ucy4gQ2FsbGVyIGNh
biBwYXNzIGluIG1vcmUgdGV4dCBpbiAiY29udGV4dCIgdG8gYWlkIHN1Y2ggc3BlbGxjaGVja2Vy
cyBvbiBsYW5ndWFnZSBpZGVudGlmaWNhdGlvbi4gTm9yYW1sbHkgaXQncyB0aGUgdGV4dCBzdXJy
b3VuZGluZyB0aGUgIndvcmQiIGZvciB3aGljaCB3ZSBhcmUgZ2V0dGluZyBjb3JyZWN0aW9uIHN1
Z2dlc3Rpb25zLgotICAgIHZpcnR1YWwgdm9pZCBnZXRHdWVzc2VzRm9yV29yZChjb25zdCBTdHJp
bmcmIHdvcmQsIGNvbnN0IFN0cmluZyYgY29udGV4dCwgVmVjdG9yPFN0cmluZz4mIGd1ZXNzZXMp
ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNldElucHV0TWV0aG9kU3RhdGUoKSA9IDA7CiAg
ICAgdmlydHVhbCB2b2lkIHNldElucHV0TWV0aG9kU3RhdGUoYm9vbCBlbmFibGVkKSA9IDA7Ci0g
ICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFNwZWxsQ2hlY2tlciosIGlu
dCwgY29uc3QgU3RyaW5nJikgPSAwOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vdGV4dC9UZXh0Q2hlY2tlckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vdGV4dC9UZXh0Q2hlY2tlckNsaWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVkYTc3NmM3ODY5NDkz
NmJmN2U3NjE5NDg2ZGY1NjcyZWEyYjE3NWQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS90ZXh0L1RleHRDaGVja2VyQ2xpZW50LmgKQEAgLTAsMCArMSw4MyBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0
cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgVGV4dENoZWNrZXJDbGllbnRfaAor
I2RlZmluZSBUZXh0Q2hlY2tlckNsaWVudF9oCisKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgor
I2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4K
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTcGVsbENoZWNrZXI7CisKK3N0cnVjdCBH
cmFtbWFyRGV0YWlsIHsKKyAgICBpbnQgbG9jYXRpb247CisgICAgaW50IGxlbmd0aDsKKyAgICBW
ZWN0b3I8U3RyaW5nPiBndWVzc2VzOworICAgIFN0cmluZyB1c2VyRGVzY3JpcHRpb247Cit9Owor
CitlbnVtIFRleHRDaGVja2luZ1R5cGUgeworICAgIFRleHRDaGVja2luZ1R5cGVTcGVsbGluZyAg
ICA9IDEgPDwgMSwKKyAgICBUZXh0Q2hlY2tpbmdUeXBlR3JhbW1hciAgICAgPSAxIDw8IDIsCisg
ICAgVGV4dENoZWNraW5nVHlwZUxpbmsgICAgICAgID0gMSA8PCA1LAorICAgIFRleHRDaGVja2lu
Z1R5cGVRdW90ZSAgICAgICA9IDEgPDwgNiwKKyAgICBUZXh0Q2hlY2tpbmdUeXBlRGFzaCAgICAg
ICAgPSAxIDw8IDcsCisgICAgVGV4dENoZWNraW5nVHlwZVJlcGxhY2VtZW50ID0gMSA8PCA4LAor
ICAgIFRleHRDaGVja2luZ1R5cGVDb3JyZWN0aW9uICA9IDEgPDwgOQorfTsKKworc3RydWN0IFRl
eHRDaGVja2luZ1Jlc3VsdCB7CisgICAgVGV4dENoZWNraW5nVHlwZSB0eXBlOworICAgIGludCBs
b2NhdGlvbjsKKyAgICBpbnQgbGVuZ3RoOworICAgIFZlY3RvcjxHcmFtbWFyRGV0YWlsPiBkZXRh
aWxzOworICAgIFN0cmluZyByZXBsYWNlbWVudDsKK307CisKK2NsYXNzIFRleHRDaGVja2VyQ2xp
ZW50IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5UZXh0Q2hlY2tlckNsaWVudCgpIHt9CisKKyAg
ICB2aXJ0dWFsIHZvaWQgaWdub3JlV29yZEluU3BlbGxEb2N1bWVudChjb25zdCBTdHJpbmcmKSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIGxlYXJuV29yZChjb25zdCBTdHJpbmcmKSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIGNoZWNrU3BlbGxpbmdPZlN0cmluZyhjb25zdCBVQ2hhciosIGludCBsZW5n
dGgsIGludCogbWlzc3BlbGxpbmdMb2NhdGlvbiwgaW50KiBtaXNzcGVsbGluZ0xlbmd0aCkgPSAw
OworICAgIHZpcnR1YWwgU3RyaW5nIGdldEF1dG9Db3JyZWN0U3VnZ2VzdGlvbkZvck1pc3NwZWxs
ZWRXb3JkKGNvbnN0IFN0cmluZyYgbWlzc3BlbGxlZFdvcmQpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgY2hlY2tHcmFtbWFyT2ZTdHJpbmcoY29uc3QgVUNoYXIqLCBpbnQgbGVuZ3RoLCBWZWN0b3I8
R3JhbW1hckRldGFpbD4mLCBpbnQqIGJhZEdyYW1tYXJMb2NhdGlvbiwgaW50KiBiYWRHcmFtbWFy
TGVuZ3RoKSA9IDA7CisjaWYgUExBVEZPUk0oTUFDKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9U
SUdFUikgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkKKyAgICB2aXJ0dWFsIHZvaWQg
Y2hlY2tUZXh0T2ZQYXJhZ3JhcGgoY29uc3QgVUNoYXIqIHRleHQsIGludCBsZW5ndGgsIHVpbnQ2
NF90IGNoZWNraW5nVHlwZXMsIFZlY3RvcjxUZXh0Q2hlY2tpbmdSZXN1bHQ+JiByZXN1bHRzKSA9
IDA7CisjZW5kaWYKKworICAgIC8vIEZvciBzcGVsbGNoZWNrZXJzIHRoYXQgc3VwcG9ydCBtdWx0
aXBsZSBsYW5ndWFnZXMsIGl0J3Mgb2Z0ZW4gaW1wb3J0YW50IHRvIGJlIGFibGUgdG8gaWRlbnRp
ZnkgdGhlIGxhbmd1YWdlIGluIG9yZGVyIHRvIHByb3ZpZGUgbW9yZSBhY2N1cmF0ZSBjb3JyZWN0
aW9uIHN1Z2dlc3Rpb25zLiBDYWxsZXIgY2FuIHBhc3MgaW4gbW9yZSB0ZXh0IGluICJjb250ZXh0
IiB0byBhaWQgc3VjaCBzcGVsbGNoZWNrZXJzIG9uIGxhbmd1YWdlIGlkZW50aWZpY2F0aW9uLiBO
b3JhbWxseSBpdCdzIHRoZSB0ZXh0IHN1cnJvdW5kaW5nIHRoZSAid29yZCIgZm9yIHdoaWNoIHdl
IGFyZSBnZXR0aW5nIGNvcnJlY3Rpb24gc3VnZ2VzdGlvbnMuCisgICAgdmlydHVhbCB2b2lkIGdl
dEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYgd29yZCwgY29uc3QgU3RyaW5nJiBjb250ZXh0
LCBWZWN0b3I8U3RyaW5nPiYgZ3Vlc3NlcykgPSAwOworICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0
Q2hlY2tpbmdPZlN0cmluZyhTcGVsbENoZWNrZXIqLCBpbnQsIGNvbnN0IFN0cmluZyYpID0gMDsK
K307CisKK30KKworI2VuZGlmIC8vIFRleHRDaGVja2VyQ2xpZW50X2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cKaW5kZXggMzFmMWM1YjM4N2I2NTU0NTdjYjhjYTYwMGY4ZjFjNjA5ZTNlZTc5ZC4u
NDNjMDZjYzcwY2EzZmUyYzIyYTU3ZGQ0MjFkNjQ4M2Y3YTNjYTdmMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxMS0wMS0yNiAgTU9SSVRBIEhhamltZSAg
PG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBOZWVkIGEgc2hvcnQgZGVzY3JpcHRpb24gYW5kIGJ1ZyBVUkwgKE9PUFMh
KQorCisgICAgICAgICogc3JjL0VkaXRvckNsaWVudEltcGwuaDoKKyAgICAgICAgKFdlYktpdDo6
RWRpdG9yQ2xpZW50SW1wbDo6dGV4dENoZWtlcik6CisKIDIwMTEtMDEtMjYgIEtlbnQgVGFtdXJh
ICA8dGtlbnRAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERpbWl0cmkgR2xh
emtvdi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRvckNsaWVu
dEltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRvckNsaWVudEltcGwuaApp
bmRleCA5ZGJkNmFmYjM3MWQ2NDEyYTBhZjIwZThkYjdiODUxOGM3ODg3ZTBlLi40NDViOWFhNTBi
NGY3OWIxYWIxY2M1MzljNGJhNTk4ODc5ZjM2OGRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9FZGl0b3JDbGllbnRJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvRWRpdG9yQ2xpZW50SW1wbC5oCkBAIC0zMiw2ICszMiw3IEBACiAjZGVmaW5lIEVk
aXRvckNsaWVudEltcGxfaAogCiAjaW5jbHVkZSAiRWRpdG9yQ2xpZW50LmgiCisjaW5jbHVkZSAi
VGV4dENoZWNrZXJDbGllbnQuaCIKICNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgPHd0Zi9E
ZXF1ZS5oPgogCkBAIC00Miw3ICs0Myw3IEBAIGNsYXNzIEhUTUxJbnB1dEVsZW1lbnQ7CiBuYW1l
c3BhY2UgV2ViS2l0IHsKIGNsYXNzIFdlYlZpZXdJbXBsOwogCi1jbGFzcyBFZGl0b3JDbGllbnRJ
bXBsIDogcHVibGljIFdlYkNvcmU6OkVkaXRvckNsaWVudCB7CitjbGFzcyBFZGl0b3JDbGllbnRJ
bXBsIDogcHVibGljIFdlYkNvcmU6OkVkaXRvckNsaWVudCwgcHVibGljIFdlYkNvcmU6OlRleHRD
aGVja2VyQ2xpZW50IHsKIHB1YmxpYzoKICAgICBFZGl0b3JDbGllbnRJbXBsKFdlYlZpZXdJbXBs
KiB3ZWJWaWV3KTsKIApAQCAtMTEzLDYgKzExNCw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZv
aWQgc2V0SW5wdXRNZXRob2RTdGF0ZShib29sIGVuYWJsZWQpOwogICAgIHZpcnR1YWwgdm9pZCBy
ZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhXZWJDb3JlOjpTcGVsbENoZWNrZXIqLCBpbnQsIGNvbnN0
IFdURjo6U3RyaW5nJikge30KIAorICAgIHZpcnR1YWwgV2ViQ29yZTo6VGV4dENoZWNrZXJDbGll
bnQqIHRleHRDaGVrZXIoKSB7IHJldHVybiB0aGlzOyB9CisKICAgICAvLyBTaG93cyB0aGUgZm9y
bSBhdXRvZmlsbCBwb3B1cCBmb3IgfG5vZGV8IGlmIGl0IGlzIGFuIEhUTUxJbnB1dEVsZW1lbnQg
YW5kCiAgICAgLy8gaXQgaXMgZW1wdHkuICBUaGlzIGlzIGNhbGxlZCB3aGVuIHlvdSBwcmVzcyB0
aGUgdXAgb3IgZG93biBhcnJvdyBpbiBhCiAgICAgLy8gdGV4dC1maWVsZCBvciB3aGVuIGNsaWNr
aW5nIGFuIGFscmVhZHkgZm9jdXNlZCB0ZXh0LWZpZWxkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9lZmwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCmluZGV4IDVk
Y2M1Y2YzMGUwMzRhOTg3NWU0MDdmYzQ5MWVmNzRlYzUzOGZjODcuLjZhMTBlYWNhMTM5ZjUxMWRk
YTExYTlhZGM3NWMyZGNiZDc2YjkwY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBA
QAorMjAxMS0wMS0yNiAgTU9SSVRBIEhhamltZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBOZWVkIGEgc2hvcnQg
ZGVzY3JpcHRpb24gYW5kIGJ1ZyBVUkwgKE9PUFMhKQorCisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvRWRpdG9yQ2xpZW50RWZsLmg6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3JDbGllbnRFZmw6
OnRleHRDaGVrZXIpOgorCiAyMDExLTAxLTE0ICBQYXRyaWNrIEdhbnN0ZXJlciAgPHBhcm9nYUB3
ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQuIFRyeSB0byBmaXggRUZMIGJ1aWxkLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50
RWZsLmggYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRFZmwu
aAppbmRleCBlMjViMWU2ZjBmMjQ0ZjhiMjJkNmMyMDMyYmQ3OTNmN2ZlZGM0M2M2Li44NTk3NDEy
NWMwMTgwMGI2OTE0M2EzY2M2YTI5MjVhMjkxNDEwYTViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRFZmwuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRFZmwuaApAQCAtMzQsNiArMzQsNyBA
QAogI2RlZmluZSBFZGl0b3JDbGllbnRFZmxfaAogCiAjaW5jbHVkZSAiRWRpdG9yQ2xpZW50Lmgi
CisjaW5jbHVkZSAiVGV4dENoZWNrZXJDbGllbnQuaCIKIAogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJk
Lmg+CiAKQEAgLTQyLDcgKzQzLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgX0V2YXNfT2JqZWN0IEV2YXNf
T2JqZWN0OwogbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgUGFnZTsKIAotY2xhc3MgRWRpdG9y
Q2xpZW50RWZsIDogcHVibGljIEVkaXRvckNsaWVudCB7CitjbGFzcyBFZGl0b3JDbGllbnRFZmwg
OiBwdWJsaWMgRWRpdG9yQ2xpZW50LCBwdWJsaWMgVGV4dENoZWNrZXJDbGllbnQgewogcHVibGlj
OgogICAgIEVkaXRvckNsaWVudEVmbChFdmFzX09iamVjdCAqdmlldyk7CiAgICAgfkVkaXRvckNs
aWVudEVmbCgpOwpAQCAtMTE0LDYgKzExNSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQg
d2lsbFNldElucHV0TWV0aG9kU3RhdGUoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5wdXRNZXRo
b2RTdGF0ZShib29sIGVuYWJsZWQpOwogICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdP
ZlN0cmluZyhXZWJDb3JlOjpTcGVsbENoZWNrZXIqLCBpbnQsIGNvbnN0IFdURjo6U3RyaW5nJikg
e30KKyAgICB2aXJ0dWFsIFRleHRDaGVja2VyQ2xpZW50KiB0ZXh0Q2hla2VyKCkgeyByZXR1cm4g
dGhpczsgfQogCiBwcml2YXRlOgogICAgIEV2YXNfT2JqZWN0ICptX3ZpZXc7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VM
b2cKaW5kZXggMWY0ZTMxY2IwMzIwNTE0NDlhMGU1NjBmNzBjMDk2NzRmNDlmZmU4NC4uZmViYjFh
ODY2YzEzZGQ0NWMxNTBiNmE4MzdkNTM0YTc3YTJlNDg4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9ndGsvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDEyIEBACisyMDExLTAxLTI2ICBNT1JJVEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUu
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5l
ZWQgYSBzaG9ydCBkZXNjcmlwdGlvbiBhbmQgYnVnIFVSTCAoT09QUyEpCisKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuaDoKKyAgICAgICAgKFdlYktpdDo6RWRpdG9y
Q2xpZW50Ojp0ZXh0Q2hla2VyKToKKwogMjAxMS0wMS0yNiAgTWFyaW8gU2FuY2hleiBQcmFkYSAg
PG1zYW5jaGV6QGlnYWxpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTWFydGluIFJvYmlu
c29uLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRWRpdG9y
Q2xpZW50R3RrLmggYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGll
bnRHdGsuaAppbmRleCAyMTRkYmQ2NmMxYzI3ZjZjNjg0ZjgyYzNmYzc4ZjM0NGJiZDcwMjYxLi5h
ZGZkOTJmOTQ5NmJjZTNmNDgzN2RjMmM5OGY2NjUzZWY1OTQzODJlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuaApAQCAtMzIsNiAr
MzIsNyBAQAogI2RlZmluZSBFZGl0b3JDbGllbnRHdGtfaAogCiAjaW5jbHVkZSAiRWRpdG9yQ2xp
ZW50LmgiCisjaW5jbHVkZSAiVGV4dENoZWNrZXJDbGllbnQuaCIKIAogI2luY2x1ZGUgPHd0Zi9E
ZXF1ZS5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CkBAIC00Nyw3ICs0OCw3IEBAIGNsYXNz
IEtleWJvYXJkRXZlbnQ7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi0gICAgY2xhc3MgRWRpdG9y
Q2xpZW50IDogcHVibGljIFdlYkNvcmU6OkVkaXRvckNsaWVudCB7CitjbGFzcyBFZGl0b3JDbGll
bnQgOiBwdWJsaWMgV2ViQ29yZTo6RWRpdG9yQ2xpZW50LCAgcHVibGljIFdlYkNvcmU6OlRleHRD
aGVja2VyQ2xpZW50IHsKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIGJvb2wgbV9pc0luUmVkbzsK
IApAQCAtMTIwLDYgKzEyMSw4IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogICAgICAgICB2aXJ0dWFs
IHZvaWQgdGV4dFdpbGxCZURlbGV0ZWRJblRleHRGaWVsZChXZWJDb3JlOjpFbGVtZW50Kik7CiAg
ICAgICAgIHZpcnR1YWwgdm9pZCB0ZXh0RGlkQ2hhbmdlSW5UZXh0QXJlYShXZWJDb3JlOjpFbGVt
ZW50Kik7CiAKKyAgICAgICAgdmlydHVhbCBXZWJDb3JlOjpUZXh0Q2hlY2tlckNsaWVudCogdGV4
dENoZWtlcigpIHsgcmV0dXJuIHRoaXM7IH0KKwogICAgICAgICB2aXJ0dWFsIHZvaWQgaWdub3Jl
V29yZEluU3BlbGxEb2N1bWVudChjb25zdCBXVEY6OlN0cmluZyYpOwogICAgICAgICB2aXJ0dWFs
IHZvaWQgbGVhcm5Xb3JkKGNvbnN0IFdURjo6U3RyaW5nJik7CiAgICAgICAgIHZpcnR1YWwgdm9p
ZCBjaGVja1NwZWxsaW5nT2ZTdHJpbmcoY29uc3QgVUNoYXIqLCBpbnQgbGVuZ3RoLCBpbnQqIG1p
c3NwZWxsaW5nTG9jYXRpb24sIGludCogbWlzc3BlbGxpbmdMZW5ndGgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9oYWlrdS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2hhaWt1L0NoYW5n
ZUxvZwppbmRleCA0MzE1YmI1ZTRlYTk5M2M4MzllODRlM2MzN2ZkNDI1ZTZhODgwNzg1Li5jY2Nl
YWNiMWI5MWQxMDU4NzFjNGZiNWViZjBmYWM1NWI0Y2ZhNjY1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2hhaWt1L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2hhaWt1L0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDEyIEBACisyMDExLTAxLTI2ICBNT1JJVEEgSGFqaW1lICA8bW9ycml0YUBn
b29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIE5lZWQgYSBzaG9ydCBkZXNjcmlwdGlvbiBhbmQgYnVnIFVSTCAoT09QUyEpCisKKyAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRIYWlrdS5oOgorICAgICAgICAoV2ViQ29y
ZTo6RWRpdG9yQ2xpZW50SGFpa3U6OnRleHRDaGVrZXIpOgorCiAyMDEwLTEyLTIyICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNs
aWVudEhhaWt1LmggYi9Tb3VyY2UvV2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNs
aWVudEhhaWt1LmgKaW5kZXggY2EyNzBlOTVjYjQyN2EzZWQ3YTA2NmYzZWUzMDEzOTM0OWUwNDY4
Yy4uMmViYmY2MTQ1NGZmNGE1NWJiZDAwYmNjZDQzM2QzMmZjNzA1MzkxYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9oYWlrdS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRIYWlrdS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvaGFpa3UvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50SGFpa3Uu
aApAQCAtMzIsNiArMzIsNyBAQAogI2RlZmluZSBFZGl0b3JDbGllbnRIYWlrdV9ICiAKICNpbmNs
dWRlICJFZGl0b3JDbGllbnQuaCIKKyNpbmNsdWRlICJUZXh0Q2hlY2tlckNsaWVudC5oIgogI2lu
Y2x1ZGUgIlJlZkNvdW50ZWQuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAKQEAgLTQwLDcgKzQxLDcg
QEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0gICAgY2xhc3MgRWRpdG9yQ2xpZW50SGFpa3Ug
OiBwdWJsaWMgRWRpdG9yQ2xpZW50IHsKK2NsYXNzIEVkaXRvckNsaWVudEhhaWt1IDogcHVibGlj
IEVkaXRvckNsaWVudCwgcHVibGljIFRleHRDaGVja2VyQ2xpZW50IHsKICAgICBwdWJsaWM6CiAg
ICAgICAgIEVkaXRvckNsaWVudEhhaWt1KCk7CiAgICAgICAgIHZvaWQgc2V0UGFnZSggUGFnZSog
cGFnZSApOwpAQCAtMTExLDYgKzExMiw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAg
dmlydHVhbCB2b2lkIHdpbGxTZXRJbnB1dE1ldGhvZFN0YXRlKCk7CiAgICAgICAgIHZpcnR1YWwg
dm9pZCBzZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wgZW5hYmxlZCk7CiAgICAgICAgIHZpcnR1YWwg
dm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhTcGVsbENoZWNrZXIqLCBpbnQsIGNvbnN0IFN0
cmluZyYpIHt9CisgICAgICAgIHZpcnR1YWwgVGV4dENoZWNrZXJDbGllbnQqIHRleHRDaGVrZXIo
KSB7IHJldHVybiB0aGlzOyB9CiAKICAgICAgICAgYm9vbCBpc0VkaXRpbmcoKSBjb25zdDsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9t
YWMvQ2hhbmdlTG9nCmluZGV4IDFmNGUzYzQ0M2QzMWY2MjhmNDdmNTJkYTQ5NDlhZDA4NmM5NTEy
MGMuLjEzZDFkMDk1MTMyNzAxZTM2Y2QzYmQ3NGJjY2ZiMTY5Yjc3NjRkYmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMS0wMS0yNiAgTU9SSVRBIEhhamltZSAgPG1vcnJp
dGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBSZWZhY3RvcmluZzogRXh0cmFjdCBUZXh0Q2hlY2tlckNsaWVudCBmcm9tIEVkaXRv
ckNsaWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NTMyMTMKKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oOgorICAg
ICAgICAoV2ViRWRpdG9yQ2xpZW50Ojp0ZXh0Q2hlY2tlcik6CisKIDIwMTEtMDEtMjUgIERhcmlu
IEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFuZGVycyBD
YXJsc3Nvbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YkVkaXRvckNsaWVudC5oIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRp
dG9yQ2xpZW50LmgKaW5kZXggZDVhYzg5MWI3YTZjMGUwYjcwNTg5MjZiMjMxZThiOTVkOWViOTZj
Mi4uNTNkYTM2YTQwMjkwZTMxY2QyODI1MDBmZmIxYmM1NThkM2MyNGVlYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKKysrIGIv
U291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKQEAgLTI5
LDYgKzI5LDcgQEAKIAogI2ltcG9ydCA8V2ViQ29yZS9FZGl0b3IuaD4KICNpbXBvcnQgPFdlYkNv
cmUvRWRpdG9yQ2xpZW50Lmg+CisjaW1wb3J0IDxXZWJDb3JlL1RleHRDaGVja2VyQ2xpZW50Lmg+
CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CiAjaW1wb3J0IDx3dGYvRm9yd2FyZC5oPgogI2lt
cG9ydCA8d3RmL1ZlY3Rvci5oPgpAQCAtMzYsNyArMzcsNyBAQAogQGNsYXNzIFdlYlZpZXc7CiBA
Y2xhc3MgV2ViRWRpdG9yVW5kb1RhcmdldDsKIAotY2xhc3MgV2ViRWRpdG9yQ2xpZW50IDogcHVi
bGljIFdlYkNvcmU6OkVkaXRvckNsaWVudCB7CitjbGFzcyBXZWJFZGl0b3JDbGllbnQgOiBwdWJs
aWMgV2ViQ29yZTo6RWRpdG9yQ2xpZW50LCBwdWJsaWMgV2ViQ29yZTo6VGV4dENoZWNrZXJDbGll
bnQgewogcHVibGljOgogICAgIFdlYkVkaXRvckNsaWVudChXZWJWaWV3ICopOwogICAgIHZpcnR1
YWwgfldlYkVkaXRvckNsaWVudCgpOwpAQCAtOTgsNiArOTksOCBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB2b2lkIHRvZ2dsZUF1dG9tYXRpY1NwZWxsaW5nQ29ycmVjdGlvbigpOwogI2VuZGlmCiAK
KyAgICBUZXh0Q2hlY2tlckNsaWVudCogdGV4dENoZWNrZXIoKSB7IHJldHVybiB0aGlzOyB9CisK
ICAgICB2aXJ0dWFsIHZvaWQgcmVzcG9uZFRvQ2hhbmdlZENvbnRlbnRzKCk7CiAgICAgdmlydHVh
bCB2b2lkIHJlc3BvbmRUb0NoYW5nZWRTZWxlY3Rpb24oKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwppbmRleCBi
M2YyYjI4MzNlY2Q4MWM0OWI2MGQ0OWU0MjA2ODM5NDNiMzQyMWU4Li42OTI4NDA3NDlmZTdkNmUw
YjUyZjgzNTc3ZjI0ZTBhOGIxYmU5NTE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBA
CisyMDExLTAxLTI2ICBNT1JJVEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29tPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5lZWQgYSBzaG9ydCBk
ZXNjcmlwdGlvbiBhbmQgYnVnIFVSTCAoT09QUyEpCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9FZGl0b3JDbGllbnRRdC5oOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50UXQ6OnRl
eHRDaGVrZXIpOgorCiAyMDExLTAxLTI0ICBDaHJpcyBNYXJyaW4gIDxjbWFycmluQGFwcGxlLmNv
bT4KIAogICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50UXQuaCBiL1NvdXJjZS9XZWJL
aXQvcXQvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50UXQuaAppbmRleCAxZTQxMGU2ZDdlZDM0
YjM5OGZmMmUwMGI2MmU0ZGViOTE3OGY0NGNmLi42YzAzZWZlNmYwMzEwMzIwMWI0MTZhOGE2YTIy
ZmU0NmM2YjA1N2UyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0
L0VkaXRvckNsaWVudFF0LmgKKysrIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9F
ZGl0b3JDbGllbnRRdC5oCkBAIC0zMSw2ICszMSw3IEBACiAjZGVmaW5lIEVkaXRvckNsaWVudFF0
X2gKIAogI2luY2x1ZGUgIkVkaXRvckNsaWVudC5oIgorI2luY2x1ZGUgIlRleHRDaGVja2VyQ2xp
ZW50LmgiCiAjaW5jbHVkZSAiUmVmQ291bnRlZC5oIgogCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQu
aD4KQEAgLTM5LDcgKzQwLDcgQEAgY2xhc3MgUVdlYlBhZ2U7CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotY2xhc3MgRWRpdG9yQ2xpZW50UXQgOiBwdWJsaWMgRWRpdG9yQ2xpZW50IHsKK2NsYXNz
IEVkaXRvckNsaWVudFF0IDogcHVibGljIEVkaXRvckNsaWVudCwgcHVibGljIFRleHRDaGVja2Vy
Q2xpZW50IHsKIHB1YmxpYzoKICAgICBFZGl0b3JDbGllbnRRdChRV2ViUGFnZSogcGFnZSk7CiAg
ICAgCkBAIC0xMDgsNiArMTA5LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCB3aWxsU2V0
SW5wdXRNZXRob2RTdGF0ZSgpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRJbnB1dE1ldGhvZFN0YXRl
KGJvb2wgZW5hYmxlZCk7CiAgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5n
KFNwZWxsQ2hlY2tlciosIGludCwgY29uc3QgU3RyaW5nJikge30KKyAgICB2aXJ0dWFsIFRleHRD
aGVja2VyQ2xpZW50KiB0ZXh0Q2hla2VyKCkgeyByZXR1cm4gdGhpczsgfQogCiAgICAgYm9vbCBp
c0VkaXRpbmcoKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCmluZGV4IDEzYTc5NGEyOTFlYzI0YWYz
MjQwOTYzN2JhYzkwYjEyYzRkY2UwYTguLjNkMmNhNzYxZTM1YWU0MTIyMTFkOWIyMGZlZTNlYjI3
NmYzZGY3ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxMS0wMS0yNiAg
TU9SSVRBIEhhamltZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBOZWVkIGEgc2hvcnQgZGVzY3JpcHRpb24gYW5k
IGJ1ZyBVUkwgKE9PUFMhKQorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xp
ZW50Lmg6CisgICAgICAgIChXZWJFZGl0b3JDbGllbnQ6OnRleHRDaGVrZXIpOgorCiAyMDExLTAx
LTI1ICBTdGV2ZSBGYWxrZW5idXJnICA8c2ZhbGtlbkBhcHBsZS5jb20+CiAKICAgICAgICAgV2lu
ZG93cyBwcm9kdWN0aW9uIGJ1aWxkIGZpeC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2lu
L1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oIGIvU291cmNlL1dlYktpdC93aW4vV2Vi
Q29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKaW5kZXggMzU4YTM2NTZhNmRmNjA0YjEyMmEw
OWQwZDBlYTEwNWVhZmE0ODkxMy4uZjJmYjlmNmI5MzUwMTFjNTU2MjEyNzZhYjQxYWNkM2I0OGFk
MzYwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRWRp
dG9yQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRWRp
dG9yQ2xpZW50LmgKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJXZWJLaXQuaCIKICNwcmFn
bWEgd2FybmluZyhwdXNoLCAwKQogI2luY2x1ZGUgPFdlYkNvcmUvRWRpdG9yQ2xpZW50Lmg+Cisj
aW5jbHVkZSA8V2ViQ29yZS9UZXh0Q2hlY2tlckNsaWVudC5oPgogI2luY2x1ZGUgPHd0Zi9Pd25Q
dHIuaD4KICNwcmFnbWEgd2FybmluZyhwb3ApCiAKQEAgLTM2LDcgKzM3LDcgQEAgY2xhc3MgV2Vi
VmlldzsKIGNsYXNzIFdlYk5vdGlmaWNhdGlvbjsKIGNsYXNzIFdlYkVkaXRvclVuZG9UYXJnZXQ7
CiAKLWNsYXNzIFdlYkVkaXRvckNsaWVudCA6IHB1YmxpYyBXZWJDb3JlOjpFZGl0b3JDbGllbnQg
eworY2xhc3MgV2ViRWRpdG9yQ2xpZW50IDogcHVibGljIFdlYkNvcmU6OkVkaXRvckNsaWVudCwg
cHVibGljIFdlYkNvcmU6OlRleHRDaGVja2VyQ2xpZW50IHsKIHB1YmxpYzoKICAgICBXZWJFZGl0
b3JDbGllbnQoV2ViVmlldyopOwogICAgIH5XZWJFZGl0b3JDbGllbnQoKTsKQEAgLTExMiw2ICsx
MTMsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHdpbGxTZXRJbnB1dE1ldGhvZFN0YXRl
KCk7CiAgICAgdmlydHVhbCB2b2lkIHNldElucHV0TWV0aG9kU3RhdGUoYm9vbCk7CiAgICAgdmly
dHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFdlYkNvcmU6OlNwZWxsQ2hlY2tlcios
IGludCwgY29uc3QgV1RGOjpTdHJpbmcmKSB7fQorICAgIHZpcnR1YWwgV2ViQ29yZTo6VGV4dENo
ZWNrZXJDbGllbnQqIHRleHRDaGVrZXIoKSB7IHJldHVybiB0aGlzOyB9CiAKIHByaXZhdGU6CiAg
ICAgV2ViVmlldyogbV93ZWJWaWV3OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW5jZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZwppbmRleCA4N2NhMjllOGFh
YmY5YmY0MjEwMjBiZWU1YzViMjY2NDE3NzdhY2E1Li5kOTNiNjUyOTQ0MGMyNDRmNjYwZWYwNDJi
NjJmOTZlMzY0OGQxZjdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisy
MDExLTAxLTI2ICBNT1JJVEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29tPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlZmFjdG9yaW5nOiBFeHRy
YWN0IFRleHRDaGVja2VyQ2xpZW50IGZyb20gRWRpdG9yQ2xpZW50CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MzIxMworCisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvRWRpdG9yQ2xpZW50V2luQ0UuaDoKKyAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xp
ZW50V2luQ0U6OnRleHRDaGVrZXIpOgorCiAyMDExLTAxLTI1ICBQYXRyaWNrIEdhbnN0ZXJlciAg
PHBhcm9nYUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gUm9iZW4uCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVu
dFdpbkNFLmggYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVu
dFdpbkNFLmgKaW5kZXggOGRiOGMxNjg0NjJmOGRkYjNjMDBhYzdkYzRjMWU3NmRjZDQ5YmZhZC4u
MjQ3YTM0Njg3NTE2NWIxYjU3MmY1NTNhOGJiOWY3MDA1YjFlMTQyNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRXaW5DRS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50V2luQ0UuaApA
QCAtMjYsMTIgKzI2LDEzIEBACiAjZGVmaW5lIEVkaXRvckNsaWVudFdpbkNFX2gKIAogI2luY2x1
ZGUgIkVkaXRvckNsaWVudC5oIgorI2luY2x1ZGUgIlRleHRDaGVja2VyQ2xpZW50LmgiCiAKIGNs
YXNzIFdlYlZpZXc7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1jbGFzcyBFZGl0b3JDbGllbnRX
aW5DRSA6IHB1YmxpYyBXZWJDb3JlOjpFZGl0b3JDbGllbnQgeworY2xhc3MgRWRpdG9yQ2xpZW50
V2luQ0UgOiBwdWJsaWMgV2ViQ29yZTo6RWRpdG9yQ2xpZW50LCBwdWJsaWMgV2ViQ29yZTo6VGV4
dENoZWNrZXJDbGllbnQgewogcHVibGljOgogICAgIEVkaXRvckNsaWVudFdpbkNFKFdlYlZpZXcq
KTsKICAgICB+RWRpdG9yQ2xpZW50V2luQ0UoKTsKQEAgLTEwMSw2ICsxMDIsNyBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCB2b2lkIHdpbGxTZXRJbnB1dE1ldGhvZFN0YXRlKCk7CiAgICAgdmlydHVh
bCB2b2lkIHNldElucHV0TWV0aG9kU3RhdGUoYm9vbCk7CiAgICAgdmlydHVhbCB2b2lkIHJlcXVl
c3RDaGVja2luZ09mU3RyaW5nKFdlYkNvcmU6OlNwZWxsQ2hlY2tlciosIGludCwgY29uc3QgV1RG
OjpTdHJpbmcmKSB7fQorICAgIHZpcnR1YWwgV2ViQ29yZTo6VGV4dENoZWNrZXJDbGllbnQqIHRl
eHRDaGVrZXIoKSB7IHJldHVybiB0aGlzOyB9CiAKIHByaXZhdGU6CiAgICAgV2ViVmlldyogbV93
ZWJWaWV3OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93eC9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L3d4L0NoYW5nZUxvZwppbmRleCA0ODYyMjI1ZTViZDRjYzRlM2NjOWRmNGNiMDlhZmRi
YzhjMThhNDY2Li41MDQyYjk0MzU5NDBmNjg4ZWZlZDE0ZGVhYjliNzUzN2FkZWYxNmE5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3d4L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3d4
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDExLTAxLTI2ICBNT1JJVEEgSGFqaW1lICA8
bW9ycml0YUBnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFJlZmFjdG9yaW5nOiBFeHRyYWN0IFRleHRDaGVja2VyQ2xpZW50IGZyb20g
RWRpdG9yQ2xpZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD01MzIxMworCisgICAgICAgICogV2ViS2l0U3VwcG9ydC9FZGl0b3JDbGllbnRXeC5oOgor
ICAgICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50V3g6OnRleHRDaGVrZXIpOgorCiAyMDExLTAx
LTE0ICBZdXpvIEZ1amlzaGltYSAgPHl1em9AZ29vZ2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBBbnR0aSBLb2l2aXN0by4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd3gvV2ViS2l0
U3VwcG9ydC9FZGl0b3JDbGllbnRXeC5oIGIvU291cmNlL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0
L0VkaXRvckNsaWVudFd4LmgKaW5kZXggN2RiZWUzMWE1Zjk0NGE0OGRkY2QzMWRkNWI4YThlMDJh
NTJlNmJmMC4uNGE2MjhhY2QzMGY2MjllZjdkN2NkMWRiMjFkNDhkMjQ3YTc4YzkzZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0VkaXRvckNsaWVudFd4LmgKKysr
IGIvU291cmNlL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0VkaXRvckNsaWVudFd4LmgKQEAgLTMw
LDEzICszMCwxNCBAQAogCiAjaW5jbHVkZSAiRWRpdG9yQ2xpZW50LmgiCiAjaW5jbHVkZSAiUGFn
ZS5oIgorI2luY2x1ZGUgIlRleHRDaGVja2VyQ2xpZW50LmgiCiAKICNpbmNsdWRlICJXZWJWaWV3
LmgiCiAjaW5jbHVkZSAiV2ViRnJhbWUuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFz
cyBFZGl0b3JDbGllbnRXeCA6IHB1YmxpYyBFZGl0b3JDbGllbnQgeworY2xhc3MgRWRpdG9yQ2xp
ZW50V3ggOiBwdWJsaWMgRWRpdG9yQ2xpZW50LCBwdWJsaWMgVGV4dENoZWNrZXJDbGllbnQgewog
ZnJpZW5kIGNsYXNzIDo6d3hXZWJWaWV3OwogZnJpZW5kIGNsYXNzIDo6d3hXZWJGcmFtZTsKIApA
QCAtMTEzLDYgKzExNCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNldElucHV0
TWV0aG9kU3RhdGUoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5wdXRNZXRob2RTdGF0ZShib29s
IGVuYWJsZWQpOwogICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhXZWJD
b3JlOjpTcGVsbENoZWNrZXIqLCBpbnQsIGNvbnN0IFdURjo6U3RyaW5nJikge30KKyAgICB2aXJ0
dWFsIFRleHRDaGVja2VyQ2xpZW50KiB0ZXh0Q2hla2VyKCkgeyByZXR1cm4gdGhpczsgfQogCiBw
cml2YXRlOgogICAgIFBhZ2UqIG1fcGFnZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA1NDczYTIzZTZlNDY1NDM0
NjFiN2RkMTgyZDYzYmNiZmVhNWU0MWM4Li45Mjk0MTRlNDNlNjUxYmE5Zjg5NzI5MmNhZTdmMjg3
YzA5ODY0MjdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMDEtMjYgIE1PUklU
QSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgTmVlZCBhIHNob3J0IGRlc2NyaXB0aW9uIGFuZCBidWcg
VVJMIChPT1BTISkKKworICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvVGV4dENoZWNrZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJF
ZGl0b3JDbGllbnQ6OnRleHRDaGVja2VyKToKKwogMjAxMS0wMS0yNiAgU2FtIFdlaW5pZyAgPHNh
bUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE1hY2llaiBTdGFjaG93aWFrLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5o
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCmluZGV4IDYy
YzY4Yzc2MWU1Y2ZjNDA2NWExYjM0MWY1M2E0YTJmZTRlYjU2NjAuLmU3ODAyYzM3MjZmMmNlMzBj
ZWQ4MTQxMjE5ZGI4NGMyYzllNjE5YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzLmgKQEAgLTQzLDYgKzQzLDcgQEAKICNpbmNsdWRlIDxXZWJDb3Jl
L1Byb3RlY3Rpb25TcGFjZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VFcnJvci5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9U
ZXh0Q2hlY2tlckNsaWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVmlld3BvcnRBcmd1bWVudHMu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1dpbmRvd0ZlYXR1cmVzLmg+CiAjaW5jbHVkZSA8bGltaXRz
PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1RleHRDaGVja2VyLmggYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVGV4dENoZWNrZXIuaAppbmRleCBmYzM0N2ZlNTQ3YmQy
NzdhMGJmMmM2Zjk5NWUzNDUxMjM4NmZmOTI5Li45OTk3ZDhiZGM5MzYyMTQwNmY4ZDU0MTZjNGJk
ZTUyNzYxMzE5NDRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVGV4dENo
ZWNrZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVGV4dENoZWNrZXIuaApAQCAt
MjcsNiArMjcsNyBAQAogI2RlZmluZSBUZXh0Q2hlY2tlcl9oCiAKICNpbmNsdWRlIDxXZWJDb3Jl
L0VkaXRvckNsaWVudC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvVGV4dENoZWNrZXJDbGllbnQuaD4K
IAogbmFtZXNwYWNlIFdlYktpdCB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCmluZGV4IDQwYmQ4YzY5
MzBkMDk5YTA3ZmMwMTA2MTM0MmEwNGU2MDQ5OTI4ZmEuLmM0ZTBkMDI1ZjcyZTA2ZjVjZWVkOTUx
MDcxOWY3ZTQ0MzEzZjk5ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaApAQCAtMjcsMTIgKzI3LDEz
IEBACiAjZGVmaW5lIFdlYkVkaXRvckNsaWVudF9oCiAKICNpbmNsdWRlIDxXZWJDb3JlL0VkaXRv
ckNsaWVudC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvVGV4dENoZWNrZXJDbGllbnQuaD4KIAogbmFt
ZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFdlYlBhZ2U7CiAKLWNsYXNzIFdlYkVkaXRvckNsaWVu
dCA6IHB1YmxpYyBXZWJDb3JlOjpFZGl0b3JDbGllbnQgeworY2xhc3MgV2ViRWRpdG9yQ2xpZW50
IDogcHVibGljIFdlYkNvcmU6OkVkaXRvckNsaWVudCwgcHVibGljIFdlYkNvcmU6OlRleHRDaGVj
a2VyQ2xpZW50IHsKIHB1YmxpYzoKICAgICBXZWJFZGl0b3JDbGllbnQoV2ViUGFnZSogcGFnZSkK
ICAgICAgICAgOiBtX3BhZ2UocGFnZSkKQEAgLTEyMCw2ICsxMjEsOCBAQCBwcml2YXRlOgogICAg
IHZpcnR1YWwgdm9pZCB0b2dnbGVBdXRvbWF0aWNTcGVsbGluZ0NvcnJlY3Rpb24oKTsKICNlbmRp
ZgogCisgICAgVGV4dENoZWNrZXJDbGllbnQqIHRleHRDaGVja2VyKCkgeyByZXR1cm4gdGhpczsg
fQorCiAgICAgdmlydHVhbCB2b2lkIGlnbm9yZVdvcmRJblNwZWxsRG9jdW1lbnQoY29uc3QgU3Ry
aW5nJik7CiAgICAgdmlydHVhbCB2b2lkIGxlYXJuV29yZChjb25zdCBTdHJpbmcmKTsKICAgICB2
aXJ0dWFsIHZvaWQgY2hlY2tTcGVsbGluZ09mU3RyaW5nKGNvbnN0IFVDaGFyKiwgaW50IGxlbmd0
aCwgaW50KiBtaXNzcGVsbGluZ0xvY2F0aW9uLCBpbnQqIG1pc3NwZWxsaW5nTGVuZ3RoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>80304</attachid>
            <date>2011-01-27 01:12:00 -0800</date>
            <delta_ts>2011-01-27 03:35:20 -0800</delta_ts>
            <desc>Another trial...</desc>
            <filename>bug-53213-20110127181158.patch</filename>
            <type>text/plain</type>
            <size>44533</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA0OWI0YWY0YTA1YzNiMTExYWUyODgwMDRjODU5MDk3Nzc3MjJjY2E2Li45
YWUwMGRjZTRjOGQ2MmJkMjZmMGI5NmJiODFmMGFmYWY5M2FhNjUxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsNDQgQEAKKzIwMTEtMDEtMjYgIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5j
b20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVm
YWN0b3Jpbmc6IEV4dHJhY3QgVGV4dENoZWNrZXJDbGllbnQgZnJvbSBFZGl0b3JDbGllbnQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUzMjEzCisgICAg
ICAgIAorICAgICAgICBDcmVhdGVkIG5ldyBhYnN0cmFjdCBjbGFzcyBUZXh0Q2hlY2tlckNsaWVu
dC4gVGhlIGNsYXNzIGhhcworICAgICAgICBzcGVsbGNoZWNrIHJlbGF0ZWQgQVBJIHdoaWNoIGlz
IHNwbGl0dGVkIAorICAgICAgICBUaGlzIGlzIHRoZSBmaXJzdCBzdGVwIGZvciBzaGFyaW5nIHNw
ZWxsLWNoZWNraW5nIGNvZGViYXNlCisgICAgICAgIGJldHdlZW4gcG9ydHMuIEEgc3RhbmRhbG9u
ZSBUZXh0Q2hlY2tlckNsaWVudCBpbXBsZW1lbnRhdGlvbgorICAgICAgICBzaG91bGQgYmUgZG9u
ZSBpbiBmdXR1cmUgY2hhbmdlcy4KKworICAgICAgICBObyBuZXcgdGVzdHMuIE5vIGJlaGF2aW9y
YWwgY2hhbmdlLgorCisgICAgICAgICogR05VbWFrZWZpbGUuYW06CisgICAgICAgICogV2ViQ29y
ZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUucHJvOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9BY2Nlc3NpYmlsaXR5T2JqZWN0V3Jh
cHBlci5tbToKKyAgICAgICAgKEFYQXR0cmlidXRlU3RyaW5nU2V0U3BlbGxpbmcpOgorICAgICAg
ICAqIGVkaXRpbmcvRWRpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6aWdub3Jl
U3BlbGxpbmcpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpsZWFyblNwZWxsaW5nKToKKyAg
ICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6aXNTZWxlY3Rpb25NaXNzcGVsbGVkKToKKyAgICAgICAg
KFdlYkNvcmU6OkVkaXRvcjo6Z3Vlc3Nlc0Zvck1pc3NwZWxsZWRTZWxlY3Rpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6RWRpdG9yOjptYXJrQWxsTWlzc3BlbGxpbmdzQW5kQmFkR3JhbW1hckluUmFu
Z2VzKToKKyAgICAgICAgKiBlZGl0aW5nL1NwZWxsQ2hlY2tlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTcGVsbENoZWNrZXI6OnJlcXVlc3RDaGVja2luZ0Zvcik6CisgICAgICAgICogZWRpdGlu
Zy9UZXh0Q2hlY2tpbmdIZWxwZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dENoZWNraW5n
SGVscGVyOjpmaW5kRmlyc3RNaXNzcGVsbGluZyk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0Q2hl
Y2tpbmdIZWxwZXI6OmZpbmRGaXJzdE1pc3NwZWxsaW5nT3JCYWRHcmFtbWFyKToKKyAgICAgICAg
KFdlYkNvcmU6OlRleHRDaGVja2luZ0hlbHBlcjo6ZmluZEZpcnN0QmFkR3JhbW1hcik6CisgICAg
ICAgIChXZWJDb3JlOjpUZXh0Q2hlY2tpbmdIZWxwZXI6Omd1ZXNzZXNGb3JNaXNzcGVsbGVkT3JV
bmdyYW1tYXRpY2FsUmFuZ2UpOgorICAgICAgICAqIGxvYWRlci9FbXB0eUNsaWVudHMuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkVtcHR5RWRpdG9yQ2xpZW50Ojp0ZXh0Q2hlY2tlcik6CisgICAgICAg
ICogcGFnZS9FZGl0b3JDbGllbnQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L1RleHRDaGVj
a2VyQ2xpZW50Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6VGV4dENoZWNrZXJDbGllbnQ6
On5UZXh0Q2hlY2tlckNsaWVudCk6CisgICAgICAgIAogMjAxMS0wMS0yNiAgU2FtIFdlaW5pZyAg
PHNhbUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE1hY2llaiBTdGFjaG93aWFr
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0gYi9Tb3VyY2UvV2Vi
Q29yZS9HTlVtYWtlZmlsZS5hbQppbmRleCA5OWVhNDQxMDgwYjI4ZTNjYTZiM2U3MTcyZTEyN2Qy
Y2RkMjRiYTE1Li41MmQwMjZmYzc3MTYyYjZhOWZmZmIyMThmMDg5NDE2ZDJiNjI0YmRjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5hbQpAQCAtMjYzMSw2ICsyNjMxLDcgQEAgd2ViY29yZV9zb3VyY2VzICs9
IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRCb3VuZGFyaWVzLmNwcCBcCiAJ
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0Qm91bmRhcmllcy5oIFwKIAlTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmggXAorCVNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3RleHQvVGV4dENoZWNrZXJDbGllbnQuaCBcCiAJU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vdGV4dC9UZXh0Q29kZWMuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90
ZXh0L1RleHRDb2RlYy5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRDb2Rl
Y0xhdGluMS5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDRhNGUwNGM5ZTBiNDIzZjdmZjI0ZTIz
OWU4MjhkYzYwZjNkNjMwMTQuLjY3NzE1NDY5YTEyYWQ4YzAzMWEyOWQ5YWJmYTVjMTRlYzg3NmM4
MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTMzMzEsNiArMzMzMSw3IEBACiAgICAgICAgICAgICAn
cGxhdGZvcm0vdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5oJywKICAgICAgICAgICAgICdwbGF0Zm9y
bS90ZXh0L1RleHRCcmVha0l0ZXJhdG9ySUNVLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0v
dGV4dC9UZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVLmgnLAorICAgICAgICAgICAgJ3BsYXRm
b3JtL3RleHQvVGV4dENoZWNrZXJDbGllbnQuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vdGV4
dC9UZXh0Q29kZWMuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS90ZXh0L1RleHRDb2RlYy5o
JywKICAgICAgICAgICAgICdwbGF0Zm9ybS90ZXh0L1RleHRDb2RlY0lDVS5jcHAnLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LnBybwppbmRleCBlNjRhZTk3YTQ5NjI5YmI5OGNkZDI0NThlZDE2NGJhNTRkYjZlY2ZiLi5hOGJk
NGQ1OTU0YWRhYzgyNGZmMTFlNDQxZjgzMjljODBjZDkxYzlkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnBybworKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwpAQCAt
MjAzNyw2ICsyMDM3LDcgQEAgSEVBREVSUyArPSBcCiAgICAgcGFnZS9EcmFnQ29udHJvbGxlci5o
IFwKICAgICBwYWdlL0V2ZW50SGFuZGxlci5oIFwKICAgICBwYWdlL0V2ZW50U291cmNlLmggXAor
ICAgIHBhZ2UvRWRpdG9yQ2xpZW50LmggXAogICAgIHBhZ2UvRm9jdXNDb250cm9sbGVyLmggXAog
ICAgIHBhZ2UvRnJhbWUuaCBcCiAgICAgcGFnZS9GcmFtZVRyZWUuaCBcCkBAIC0yMTYxLDYgKzIx
NjIsNyBAQCBIRUFERVJTICs9IFwKICAgICBwbGF0Zm9ybS9LVVJMLmggXAogICAgIHBsYXRmb3Jt
L0xlbmd0aC5oIFwKICAgICBwbGF0Zm9ybS90ZXh0L0xpbmVFbmRpbmcuaCBcCisgICAgcGxhdGZv
cm0vdGV4dC9UZXh0Q2hlY2tlckNsaWVudC5oIFwKICAgICBwbGF0Zm9ybS9MaW5rSGFzaC5oIFwK
ICAgICBwbGF0Zm9ybS9Mb2dnaW5nLmggXAogICAgIHBsYXRmb3JtL0xhbmd1YWdlLmggXApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCBlMmNlZmEw
Y2ZiMzBjZjM1MDBhMjVhMTYyYWMzOGU1ZjZhYWUwZGRmLi40ODRmNWZkMmUwNzAwNGVjODQzMzU2
Zjg5ZGI0ZmRlMDA2MjhhMjMxIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZj
cHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9X
ZWJDb3JlLnZjcHJvagpAQCAtMzAyNjEsNiArMzAyNjEsMTAgQEAKIAkJCQkJPgogCQkJCTwvRmls
ZT4KIAkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXHRleHRcVGV4dENo
ZWNrZXJDbGllbnQuaCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQogCQkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXHRleHRcVGV4dENvZGVjSUNVLmNwcCIKIAkJCQkJPgogCQkJ
CQk8RmlsZUNvbmZpZ3VyYXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAyZjIyMWZiYzRjMzQ2MzQ3NDY2YzJmZjg5NmVmNTEz
ZTg2MDA0YzMzLi44NTAwNTk2YTFkNWUxNGVlMTc4MTRhMjUzOTlmNzRlMjQzNmU3YThiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBA
IC0zMTc0LDYgKzMxNzQsNyBAQAogCQlBNjIyQThGQzEyMkM0NEE2MDBBNzg1QjMgLyogQmluZGlu
Z1NlY3VyaXR5QmFzZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBNjIyQThGNjEyMkM0NEE2MDBBNzg1QjMgLyogQmluZGluZ1NlY3VyaXR5QmFzZS5j
cHAgKi87IH07CiAJCUE2MjJBOEZEMTIyQzQ0QTYwMEE3ODVCMyAvKiBCaW5kaW5nU2VjdXJpdHlC
YXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNjIy
QThGNzEyMkM0NEE2MDBBNzg1QjMgLyogQmluZGluZ1NlY3VyaXR5QmFzZS5oICovOyB9OwogCQlB
NjIyQThGRjEyMkM0NEE2MDBBNzg1QjMgLyogR2VuZXJpY0JpbmRpbmcuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE2MjJBOEY5MTIyQzQ0QTYwMEE3ODVC
MyAvKiBHZW5lcmljQmluZGluZy5oICovOyB9OworCQlBNzE1MUJEODEyRjE1NThGMDA1QTBGNjQg
LyogVGV4dENoZWNrZXJDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEE3MTUxQkQ3MTJGMTU1OEYwMDVBMEY2NCAvKiBUZXh0Q2hlY2tlckNsaWVu
dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE3
MTg3NjBFMEIyQTEyMDEwMEExNkVDRSAvKiBEcmFnQWN0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTcxODc2MEQwQjJBMTIwMTAwQTE2RUNFIC8q
IERyYWdBY3Rpb25zLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJQTcxODc4OTAwQjJEMDRBQzAwQTE2RUNFIC8qIERyYWdDb250cm9sbGVyTWFjLm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTcxODc4OEYw
QjJEMDRBQzAwQTE2RUNFIC8qIERyYWdDb250cm9sbGVyTWFjLm1tICovOyB9OwogCQlBNzNGOTVG
RTEyQzk3QkZFMDAzMUFBRjkgLyogUm91bmRlZEludFJlY3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTczRjk1RkMxMkM5N0JGRTAwMzFBQUY5IC8q
IFJvdW5kZWRJbnRSZWN0LmNwcCAqLzsgfTsKQEAgLTk1NjcsNiArOTU2OCw3IEBACiAJCUE2MjJB
OEY2MTIyQzQ0QTYwMEE3ODVCMyAvKiBCaW5kaW5nU2VjdXJpdHlCYXNlLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEJpbmRpbmdTZWN1cml0eUJhc2UuY3BwOyBwYXRo
ID0gZ2VuZXJpYy9CaW5kaW5nU2VjdXJpdHlCYXNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQTYyMkE4RjcxMjJDNDRBNjAwQTc4NUIzIC8qIEJpbmRpbmdTZWN1cml0eUJhc2Uu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQmluZGluZ1NlY3VyaXR5QmFzZS5o
OyBwYXRoID0gZ2VuZXJpYy9CaW5kaW5nU2VjdXJpdHlCYXNlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUE2MjJBOEY5MTIyQzQ0QTYwMEE3ODVCMyAvKiBHZW5lcmljQmluZGluZy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBHZW5lcmljQmluZGluZy5oOyBwYXRo
ID0gZ2VuZXJpYy9HZW5lcmljQmluZGluZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlBNzE1MUJENzEyRjE1NThGMDA1QTBGNjQgLyogVGV4dENoZWNrZXJDbGllbnQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGV4dENoZWNrZXJDbGllbnQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTcxODc2MEQwQjJBMTIwMTAwQTE2RUNFIC8qIERyYWdBY3Rp
b25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERyYWdBY3Rpb25zLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3MTg3ODhGMEIyRDA0QUMwMEExNkVDRSAvKiBE
cmFnQ29udHJvbGxlck1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IERyYWdDb250cm9sbGVyTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlB
NzFBNzBDOTExQUZCMDIwMDA5ODlENkQgLyogSFRNTE1ldGVyRWxlbWVudC5pZGwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gSFRNTE1ldGVyRWxlbWVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC0xNzU4NCw2ICsxNzU4Niw3IEBACiAJCQkJQjJDM0RBMDYwRDAwNkMxRDAwRUY2
RjI2IC8qIFRleHRCcmVha0l0ZXJhdG9yLmggKi8sCiAJCQkJQjJDM0RBMDcwRDAwNkMxRDAwRUY2
RjI2IC8qIFRleHRCcmVha0l0ZXJhdG9ySUNVLmNwcCAqLywKIAkJCQlCMkMzREEwODBEMDA2QzFE
MDBFRjZGMjYgLyogVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVS5oICovLAorCQkJCUE3MTUx
QkQ3MTJGMTU1OEYwMDVBMEY2NCAvKiBUZXh0Q2hlY2tlckNsaWVudC5oICovLAogCQkJCUIyQzNE
QTA5MEQwMDZDMUQwMEVGNkYyNiAvKiBUZXh0Q29kZWMuY3BwICovLAogCQkJCUIyQzNEQTBBMEQw
MDZDMUQwMEVGNkYyNiAvKiBUZXh0Q29kZWMuaCAqLywKIAkJCQlCMkMzREEwQjBEMDA2QzFEMDBF
RjZGMjYgLyogVGV4dENvZGVjSUNVLmNwcCAqLywKQEAgLTIyNDQxLDYgKzIyNDQ0LDcgQEAKIAkJ
CQk0RjJEMjA1NDEyRUFFN0IzMDA1QzI4NzQgLyogSW5zcGVjdG9yQWdlbnQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJDOTU4NUUxMTJGMDk4OTUwMDc1NTgyMSAvKiBQbGF0Zm9ybUdlc3R1cmVFdmVu
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTEzNEY1QUIxMkVFMzQzRjAwNEVDNThEIC8qIEludFJl
Y3RIYXNoLmggaW4gSGVhZGVycyAqLywKKwkJCQlBNzE1MUJEODEyRjE1NThGMDA1QTBGNjQgLyog
VGV4dENoZWNrZXJDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JE
ZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIubW0gYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBl
ci5tbQppbmRleCBjMmUzNzI0ZWQwZTk0NTFlOTI0MWM5MTEzNzEwMTFlNjM1MDdiNzI1Li4zNmEz
NjFiN2Y0N2UxNDBhMjRlZjAyNDM3NTgzZGVlYzAzNzc2OTlmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlci5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BY2Nlc3NpYmlsaXR5T2JqZWN0
V3JhcHBlci5tbQpAQCAtNTgsNiArNTgsNyBAQAogI2ltcG9ydCAiU2Nyb2xsVmlldy5oIgogI2lt
cG9ydCAiU2VsZWN0aW9uQ29udHJvbGxlci5oIgogI2ltcG9ydCAiU2ltcGxlRm9udERhdGEuaCIK
KyNpbXBvcnQgIlRleHRDaGVja2VyQ2xpZW50LmgiCiAjaW1wb3J0ICJUZXh0SXRlcmF0b3IuaCIK
ICNpbXBvcnQgIldlYkNvcmVGcmFtZVZpZXcuaCIKICNpbXBvcnQgIldlYkNvcmVPYmpDRXh0cmFz
LmgiCkBAIC00NDIsNyArNDQzLDcgQEAgc3RhdGljIHZvaWQgQVhBdHRyaWJ1dGVTdHJpbmdTZXRT
cGVsbGluZyhOU011dGFibGVBdHRyaWJ1dGVkU3RyaW5nKiBhdHRyU3RyaW5nLAogCiAgICAgICAg
IGludCBtaXNzcGVsbGluZ0xvY2F0aW9uID0gLTE7CiAgICAgICAgIGludCBtaXNzcGVsbGluZ0xl
bmd0aCA9IDA7Ci0gICAgICAgIGNsaWVudC0+Y2hlY2tTcGVsbGluZ09mU3RyaW5nKGNoYXJEYXRh
LCBjaGFyTGVuZ3RoLCAmbWlzc3BlbGxpbmdMb2NhdGlvbiwgJm1pc3NwZWxsaW5nTGVuZ3RoKTsK
KyAgICAgICAgY2xpZW50LT50ZXh0Q2hlY2tlcigpLT5jaGVja1NwZWxsaW5nT2ZTdHJpbmcoY2hh
ckRhdGEsIGNoYXJMZW5ndGgsICZtaXNzcGVsbGluZ0xvY2F0aW9uLCAmbWlzc3BlbGxpbmdMZW5n
dGgpOwogICAgICAgICBpZiAobWlzc3BlbGxpbmdMb2NhdGlvbiA9PSAtMSB8fCAhbWlzc3BlbGxp
bmdMZW5ndGgpCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Vk
aXRvci5jcHAKaW5kZXggM2FjZWMyN2EzODM0NTVjNTViMzlhMzA5OWI0ZGM3MjA0ZWYyZjA4NS4u
ZmU3NGFkNjY3ZDUxNjUzNDgwOTMwYTZmZGMyMDA2YjAzYTkzMGI0YyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRWRpdG9yLmNwcApAQCAtNjUsNiArNjUsNyBAQAogI2luY2x1ZGUgIk5vZGVMaXN0LmgiCiAj
aW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBhc3RlYm9hcmQuaCIKKyNpbmNsdWRlICJUZXh0
Q2hlY2tlckNsaWVudC5oIgogI2luY2x1ZGUgIlRleHRDaGVja2luZ0hlbHBlci5oIgogI2luY2x1
ZGUgIlJlbW92ZUZvcm1hdENvbW1hbmQuaCIKICNpbmNsdWRlICJSZW5kZXJCbG9jay5oIgpAQCAt
MTczNyw3ICsxNzM4LDcgQEAgdm9pZCBFZGl0b3I6Omlnbm9yZVNwZWxsaW5nKCkKIAogICAgIFN0
cmluZyB0ZXh0ID0gc2VsZWN0ZWRUZXh0KCk7CiAgICAgQVNTRVJUKHRleHQubGVuZ3RoKCkpOwot
ICAgIGNsaWVudCgpLT5pZ25vcmVXb3JkSW5TcGVsbERvY3VtZW50KHRleHQpOworICAgIGNsaWVu
dCgpLT50ZXh0Q2hlY2tlcigpLT5pZ25vcmVXb3JkSW5TcGVsbERvY3VtZW50KHRleHQpOwogfQog
CiB2b2lkIEVkaXRvcjo6bGVhcm5TcGVsbGluZygpCkBAIC0xNzUwLDcgKzE3NTEsNyBAQCB2b2lk
IEVkaXRvcjo6bGVhcm5TcGVsbGluZygpCiAKICAgICBTdHJpbmcgdGV4dCA9IHNlbGVjdGVkVGV4
dCgpOwogICAgIEFTU0VSVCh0ZXh0Lmxlbmd0aCgpKTsKLSAgICBjbGllbnQoKS0+bGVhcm5Xb3Jk
KHRleHQpOworICAgIGNsaWVudCgpLT50ZXh0Q2hlY2tlcigpLT5sZWFybldvcmQodGV4dCk7CiB9
CiAKIHZvaWQgRWRpdG9yOjphZHZhbmNlVG9OZXh0TWlzc3BlbGxpbmcoYm9vbCBzdGFydEJlZm9y
ZVNlbGVjdGlvbikKQEAgLTE5NDAsNyArMTk0MSw3IEBAIGJvb2wgRWRpdG9yOjppc1NlbGVjdGlv
bk1pc3NwZWxsZWQoKQogICAgIAogICAgIGludCBtaXNzcGVsbGluZ0xvY2F0aW9uID0gLTE7CiAg
ICAgaW50IG1pc3NwZWxsaW5nTGVuZ3RoID0gMDsKLSAgICBjbGllbnQoKS0+Y2hlY2tTcGVsbGlu
Z09mU3RyaW5nKHNlbGVjdGVkU3RyaW5nLmNoYXJhY3RlcnMoKSwgbGVuZ3RoLCAmbWlzc3BlbGxp
bmdMb2NhdGlvbiwgJm1pc3NwZWxsaW5nTGVuZ3RoKTsKKyAgICBjbGllbnQoKS0+dGV4dENoZWNr
ZXIoKS0+Y2hlY2tTcGVsbGluZ09mU3RyaW5nKHNlbGVjdGVkU3RyaW5nLmNoYXJhY3RlcnMoKSwg
bGVuZ3RoLCAmbWlzc3BlbGxpbmdMb2NhdGlvbiwgJm1pc3NwZWxsaW5nTGVuZ3RoKTsKICAgICAK
ICAgICAvLyBUaGUgc2VsZWN0aW9uIG9ubHkgY291bnRzIGFzIG1pc3NwZWxsZWQgaWYgdGhlIHNl
bGVjdGVkIHRleHQgaXMgZXhhY3RseSBvbmUgbWlzc3BlbGxlZCB3b3JkCiAgICAgaWYgKG1pc3Nw
ZWxsaW5nTGVuZ3RoICE9IGxlbmd0aCkKQEAgLTE5ODQsNyArMTk4NSw3IEBAIFZlY3RvcjxTdHJp
bmc+IEVkaXRvcjo6Z3Vlc3Nlc0Zvck1pc3NwZWxsZWRTZWxlY3Rpb24oKQogCiAgICAgVmVjdG9y
PFN0cmluZz4gZ3Vlc3NlczsKICAgICBpZiAoY2xpZW50KCkpCi0gICAgICAgIGNsaWVudCgpLT5n
ZXRHdWVzc2VzRm9yV29yZChzZWxlY3RlZFN0cmluZywgU3RyaW5nKCksIGd1ZXNzZXMpOworICAg
ICAgICBjbGllbnQoKS0+dGV4dENoZWNrZXIoKS0+Z2V0R3Vlc3Nlc0ZvcldvcmQoc2VsZWN0ZWRT
dHJpbmcsIFN0cmluZygpLCBndWVzc2VzKTsKICAgICByZXR1cm4gZ3Vlc3NlczsKIH0KIApAQCAt
MjExNiw3ICsyMTE3LDcgQEAgdm9pZCBFZGl0b3I6Om1hcmtNaXNzcGVsbGluZ3NBZnRlclR5cGlu
Z1RvV29yZChjb25zdCBWaXNpYmxlUG9zaXRpb24gJndvcmRTdGFydCwKICAgICAKICAgICAvLyBH
ZXQgdGhlIG1pc3NwZWxsZWQgd29yZC4KICAgICBjb25zdCBTdHJpbmcgbWlzc3BlbGxlZFdvcmQg
PSBwbGFpblRleHQobWlzc3BlbGxpbmdSYW5nZS5nZXQoKSk7Ci0gICAgU3RyaW5nIGF1dG9jb3Jy
ZWN0ZWRTdHJpbmcgPSBjbGllbnQoKS0+Z2V0QXV0b0NvcnJlY3RTdWdnZXN0aW9uRm9yTWlzc3Bl
bGxlZFdvcmQobWlzc3BlbGxlZFdvcmQpOworICAgIFN0cmluZyBhdXRvY29ycmVjdGVkU3RyaW5n
ID0gY2xpZW50KCktPnRleHRDaGVja2VyKCktPmdldEF1dG9Db3JyZWN0U3VnZ2VzdGlvbkZvck1p
c3NwZWxsZWRXb3JkKG1pc3NwZWxsZWRXb3JkKTsKIAogICAgIC8vIElmIGF1dG9jb3JyZWN0ZWQg
d29yZCBpcyBub24gZW1wdHksIHJlcGxhY2UgdGhlIG1pc3NwZWxsZWQgd29yZCBieSB0aGlzIHdv
cmQuCiAgICAgaWYgKCFhdXRvY29ycmVjdGVkU3RyaW5nLmlzRW1wdHkoKSkgewpAQCAtMjI4NCw3
ICsyMjg1LDcgQEAgdm9pZCBFZGl0b3I6Om1hcmtBbGxNaXNzcGVsbGluZ3NBbmRCYWRHcmFtbWFy
SW5SYW5nZXMoVGV4dENoZWNraW5nT3B0aW9ucyB0ZXh0Q2gKICAgICAgICAgaWYgKHNob3VsZE1h
cmtTcGVsbGluZyAmJiBpc0F1dG9tYXRpY1NwZWxsaW5nQ29ycmVjdGlvbkVuYWJsZWQoKSkKICAg
ICAgICAgICAgIGNoZWNraW5nVHlwZXMgfD0gVGV4dENoZWNraW5nVHlwZUNvcnJlY3Rpb247CiAg
ICAgfQotICAgIGNsaWVudCgpLT5jaGVja1RleHRPZlBhcmFncmFwaChwYXJhZ3JhcGgudGV4dENo
YXJhY3RlcnMoKSwgcGFyYWdyYXBoLnRleHRMZW5ndGgoKSwgY2hlY2tpbmdUeXBlcywgcmVzdWx0
cyk7CisgICAgY2xpZW50KCktPnRleHRDaGVja2VyKCktPmNoZWNrVGV4dE9mUGFyYWdyYXBoKHBh
cmFncmFwaC50ZXh0Q2hhcmFjdGVycygpLCBwYXJhZ3JhcGgudGV4dExlbmd0aCgpLCBjaGVja2lu
Z1R5cGVzLCByZXN1bHRzKTsKIAogI2lmIFNVUFBPUlRfQVVUT0NPUlJFQ1RJT05fUEFORUwKICAg
ICAvLyBJZiB0aGlzIGNoZWNraW5nIGlzIG9ubHkgZm9yIHNob3dpbmcgY29ycmVjdGlvbiBwYW5l
bCwgd2Ugc2hvdWxkbid0IGJvdGhlciB0byBtYXJrIG1pc3NwZWxsaW5ncy4KQEAgLTI0OTMsNyAr
MjQ5NCw3IEBAIHZvaWQgRWRpdG9yOjpjb3JyZWN0aW9uUGFuZWxUaW1lckZpcmVkKFRpbWVyPEVk
aXRvcj4qKQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIFN0cmluZyBwYXJhZ3JhcGhUZXh0
ID0gcGxhaW5UZXh0KFRleHRDaGVja2luZ1BhcmFncmFwaChtX2NvcnJlY3Rpb25QYW5lbEluZm8u
cmFuZ2VUb0JlUmVwbGFjZWQpLnBhcmFncmFwaFJhbmdlKCkuZ2V0KCkpOwogICAgICAgICBWZWN0
b3I8U3RyaW5nPiBzdWdnZXN0aW9uczsKLSAgICAgICAgY2xpZW50KCktPmdldEd1ZXNzZXNGb3JX
b3JkKG1fY29ycmVjdGlvblBhbmVsSW5mby5yZXBsYWNlZFN0cmluZywgcGFyYWdyYXBoVGV4dCwg
c3VnZ2VzdGlvbnMpOworICAgICAgICBjbGllbnQoKS0+dGV4dENoZWNrZXIoKS0+Z2V0R3Vlc3Nl
c0ZvcldvcmQobV9jb3JyZWN0aW9uUGFuZWxJbmZvLnJlcGxhY2VkU3RyaW5nLCBwYXJhZ3JhcGhU
ZXh0LCBzdWdnZXN0aW9ucyk7CiAgICAgICAgIGlmIChzdWdnZXN0aW9ucy5pc0VtcHR5KCkpCiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgU3RyaW5nIHRvcFN1Z2dlc3Rpb24gPSBzdWdnZXN0
aW9ucy5maXJzdCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGVsbENo
ZWNrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGVsbENoZWNrZXIuY3BwCmluZGV4
IGYxNGE3NGQ2NzY0M2YyNzg3YzQwZTQxNzgwYjdjNzcxYTEzOThhMDMuLmExMTNkMDJmMjBhMjA3
YjFkYWMzNDQ1NTQzNzA2ZjJmMjEyMDk2M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvU3BlbGxDaGVja2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwZWxs
Q2hlY2tlci5jcHAKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJSYW5nZS5oIgogI2luY2x1
ZGUgIlJlbmRlck9iamVjdC5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCisjaW5jbHVkZSAiVGV4
dENoZWNrZXJDbGllbnQuaCIKICNpbmNsdWRlICJUZXh0SXRlcmF0b3IuaCIKICNpbmNsdWRlICJo
dG1sZWRpdGluZy5oIgogCkBAIC0xMDUsNyArMTA2LDcgQEAgdm9pZCBTcGVsbENoZWNrZXI6OnJl
cXVlc3RDaGVja2luZ0ZvcihOb2RlKiBub2RlKQogCiAgICAgaWYgKCFpbml0UmVxdWVzdChub2Rl
KSkKICAgICAgICAgcmV0dXJuOwotICAgIG1fY2xpZW50LT5yZXF1ZXN0Q2hlY2tpbmdPZlN0cmlu
Zyh0aGlzLCBtX3JlcXVlc3RTZXF1ZW5jZSwgbV9yZXF1ZXN0VGV4dCk7CisgICAgbV9jbGllbnQt
PnRleHRDaGVja2VyKCktPnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKHRoaXMsIG1fcmVxdWVzdFNl
cXVlbmNlLCBtX3JlcXVlc3RUZXh0KTsKIH0KIAogc3RhdGljIGJvb2wgZm9yd2FyZEl0ZXJhdG9y
KFBvc2l0aW9uSXRlcmF0b3ImIGl0ZXJhdG9yLCBpbnQgZGlzdGFuY2UpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRDaGVja2luZ0hlbHBlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1RleHRDaGVja2luZ0hlbHBlci5jcHAKaW5kZXggYjQ0MjlhNjQ2ZmJjNmJm
NjkyMzgzMTg4ZWRlMTY3MjI3MWJlM2FhYS4uZTU1NTNmZDEwMjkyZmU1ODdmMGUyMzMwZDE2NWU4
ZTE3NzI4ZTQxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0Q2hlY2tp
bmdIZWxwZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dENoZWNraW5nSGVs
cGVyLmNwcApAQCAtMjksNiArMjksNyBAQAogCiAjaW5jbHVkZSAiRG9jdW1lbnRNYXJrZXJDb250
cm9sbGVyLmgiCiAjaW5jbHVkZSAiUmFuZ2UuaCIKKyNpbmNsdWRlICJUZXh0Q2hlY2tlckNsaWVu
dC5oIgogI2luY2x1ZGUgIlRleHRJdGVyYXRvci5oIgogI2luY2x1ZGUgIlZpc2libGVQb3NpdGlv
bi5oIgogI2luY2x1ZGUgInZpc2libGVfdW5pdHMuaCIKQEAgLTE3OSw3ICsxODAsNyBAQCBTdHJp
bmcgVGV4dENoZWNraW5nSGVscGVyOjpmaW5kRmlyc3RNaXNzcGVsbGluZyhpbnQmIGZpcnN0TWlz
c3BlbGxpbmdPZmZzZXQsIGJvbwogICAgICAgICAgICAgCiAgICAgICAgICAgICBpbnQgbWlzc3Bl
bGxpbmdMb2NhdGlvbiA9IC0xOwogICAgICAgICAgICAgaW50IG1pc3NwZWxsaW5nTGVuZ3RoID0g
MDsKLSAgICAgICAgICAgIG1fY2xpZW50LT5jaGVja1NwZWxsaW5nT2ZTdHJpbmcoY2hhcnMsIGxl
biwgJm1pc3NwZWxsaW5nTG9jYXRpb24sICZtaXNzcGVsbGluZ0xlbmd0aCk7CisgICAgICAgICAg
ICBtX2NsaWVudC0+dGV4dENoZWNrZXIoKS0+Y2hlY2tTcGVsbGluZ09mU3RyaW5nKGNoYXJzLCBs
ZW4sICZtaXNzcGVsbGluZ0xvY2F0aW9uLCAmbWlzc3BlbGxpbmdMZW5ndGgpOwogCiAgICAgICAg
ICAgICAvLyA1NDkwNjI3IHNob3dzIHRoYXQgdGhlcmUgd2FzIHNvbWUgY29kZSBwYXRoIGhlcmUg
d2hlcmUgdGhlIFN0cmluZyBjb25zdHJ1Y3RvciBiZWxvdyBjcmFzaGVzLgogICAgICAgICAgICAg
Ly8gV2UgZG9uJ3Qga25vdyBleGFjdGx5IHdoYXQgY29tYmluYXRpb24gb2YgYmFkIGlucHV0IGNh
dXNlZCB0aGlzLCBzbyB3ZSdyZSBtYWtpbmcgdGhpcyBtdWNoCkBAIC0yNzQsNyArMjc1LDcgQEAg
U3RyaW5nIFRleHRDaGVja2luZ0hlbHBlcjo6ZmluZEZpcnN0TWlzc3BlbGxpbmdPckJhZEdyYW1t
YXIoYm9vbCBjaGVja0dyYW1tYXIsIGIKICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAg
ICBWZWN0b3I8VGV4dENoZWNraW5nUmVzdWx0PiByZXN1bHRzOwogICAgICAgICAgICAgICAgIHVp
bnQ2NF90IGNoZWNraW5nVHlwZXMgPSBjaGVja0dyYW1tYXIgPyAoVGV4dENoZWNraW5nVHlwZVNw
ZWxsaW5nIHwgVGV4dENoZWNraW5nVHlwZUdyYW1tYXIpIDogVGV4dENoZWNraW5nVHlwZVNwZWxs
aW5nOwotICAgICAgICAgICAgICAgIG1fY2xpZW50LT5jaGVja1RleHRPZlBhcmFncmFwaChwYXJh
Z3JhcGhTdHJpbmcuY2hhcmFjdGVycygpLCBwYXJhZ3JhcGhTdHJpbmcubGVuZ3RoKCksIGNoZWNr
aW5nVHlwZXMsIHJlc3VsdHMpOworICAgICAgICAgICAgICAgIG1fY2xpZW50LT50ZXh0Q2hlY2tl
cigpLT5jaGVja1RleHRPZlBhcmFncmFwaChwYXJhZ3JhcGhTdHJpbmcuY2hhcmFjdGVycygpLCBw
YXJhZ3JhcGhTdHJpbmcubGVuZ3RoKCksIGNoZWNraW5nVHlwZXMsIHJlc3VsdHMpOwogICAgICAg
ICAgICAgICAgIAogICAgICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCByZXN1
bHRzLnNpemUoKTsgaSsrKSB7CiAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFRleHRDaGVja2lu
Z1Jlc3VsdCogcmVzdWx0ID0gJnJlc3VsdHNbaV07CkBAIC00MjIsNyArNDIzLDcgQEAgU3RyaW5n
IFRleHRDaGVja2luZ0hlbHBlcjo6ZmluZEZpcnN0QmFkR3JhbW1hcihHcmFtbWFyRGV0YWlsJiBv
dXRHcmFtbWFyRGV0YWlsLAogICAgICAgICBWZWN0b3I8R3JhbW1hckRldGFpbD4gZ3JhbW1hckRl
dGFpbHM7CiAgICAgICAgIGludCBiYWRHcmFtbWFyUGhyYXNlTG9jYXRpb24gPSAtMTsKICAgICAg
ICAgaW50IGJhZEdyYW1tYXJQaHJhc2VMZW5ndGggPSAwOwotICAgICAgICBtX2NsaWVudC0+Y2hl
Y2tHcmFtbWFyT2ZTdHJpbmcocGFyYWdyYXBoLnRleHRDaGFyYWN0ZXJzKCkgKyBzdGFydE9mZnNl
dCwgcGFyYWdyYXBoLnRleHRMZW5ndGgoKSAtIHN0YXJ0T2Zmc2V0LCBncmFtbWFyRGV0YWlscywg
JmJhZEdyYW1tYXJQaHJhc2VMb2NhdGlvbiwgJmJhZEdyYW1tYXJQaHJhc2VMZW5ndGgpOworICAg
ICAgICBtX2NsaWVudC0+dGV4dENoZWNrZXIoKS0+Y2hlY2tHcmFtbWFyT2ZTdHJpbmcocGFyYWdy
YXBoLnRleHRDaGFyYWN0ZXJzKCkgKyBzdGFydE9mZnNldCwgcGFyYWdyYXBoLnRleHRMZW5ndGgo
KSAtIHN0YXJ0T2Zmc2V0LCBncmFtbWFyRGV0YWlscywgJmJhZEdyYW1tYXJQaHJhc2VMb2NhdGlv
biwgJmJhZEdyYW1tYXJQaHJhc2VMZW5ndGgpOwogICAgICAgICAKICAgICAgICAgaWYgKCFiYWRH
cmFtbWFyUGhyYXNlTGVuZ3RoKSB7CiAgICAgICAgICAgICBBU1NFUlQoYmFkR3JhbW1hclBocmFz
ZUxvY2F0aW9uID09IC0xKTsKQEAgLTUzNSwxNCArNTM2LDE0IEBAIFZlY3RvcjxTdHJpbmc+IFRl
eHRDaGVja2luZ0hlbHBlcjo6Z3Vlc3Nlc0Zvck1pc3NwZWxsZWRPclVuZ3JhbW1hdGljYWxSYW5n
ZShib29sCiAKICAgICBWZWN0b3I8VGV4dENoZWNraW5nUmVzdWx0PiByZXN1bHRzOwogICAgIHVp
bnQ2NF90IGNoZWNraW5nVHlwZXMgPSBjaGVja0dyYW1tYXIgPyAoVGV4dENoZWNraW5nVHlwZVNw
ZWxsaW5nIHwgVGV4dENoZWNraW5nVHlwZUdyYW1tYXIpIDogVGV4dENoZWNraW5nVHlwZVNwZWxs
aW5nOwotICAgIG1fY2xpZW50LT5jaGVja1RleHRPZlBhcmFncmFwaChwYXJhZ3JhcGgudGV4dENo
YXJhY3RlcnMoKSwgcGFyYWdyYXBoLnRleHRMZW5ndGgoKSwgY2hlY2tpbmdUeXBlcywgcmVzdWx0
cyk7CisgICAgbV9jbGllbnQtPnRleHRDaGVja2VyKCktPmNoZWNrVGV4dE9mUGFyYWdyYXBoKHBh
cmFncmFwaC50ZXh0Q2hhcmFjdGVycygpLCBwYXJhZ3JhcGgudGV4dExlbmd0aCgpLCBjaGVja2lu
Z1R5cGVzLCByZXN1bHRzKTsKICAgICAKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcmVz
dWx0cy5zaXplKCk7IGkrKykgewogICAgICAgICBjb25zdCBUZXh0Q2hlY2tpbmdSZXN1bHQqIHJl
c3VsdCA9ICZyZXN1bHRzW2ldOwogICAgICAgICBpZiAocmVzdWx0LT50eXBlID09IFRleHRDaGVj
a2luZ1R5cGVTcGVsbGluZyAmJiBwYXJhZ3JhcGguY2hlY2tpbmdSYW5nZU1hdGNoZXMocmVzdWx0
LT5sb2NhdGlvbiwgcmVzdWx0LT5sZW5ndGgpKSB7CiAgICAgICAgICAgICBTdHJpbmcgbWlzc3Bl
bGxlZFdvcmQgPSBwYXJhZ3JhcGguY2hlY2tpbmdTdWJzdHJpbmcoKTsKICAgICAgICAgICAgIEFT
U0VSVChtaXNzcGVsbGVkV29yZC5sZW5ndGgoKSk7Ci0gICAgICAgICAgICBtX2NsaWVudC0+Z2V0
R3Vlc3Nlc0ZvcldvcmQobWlzc3BlbGxlZFdvcmQsIFN0cmluZygpLCBndWVzc2VzKTsKKyAgICAg
ICAgICAgIG1fY2xpZW50LT50ZXh0Q2hlY2tlcigpLT5nZXRHdWVzc2VzRm9yV29yZChtaXNzcGVs
bGVkV29yZCwgU3RyaW5nKCksIGd1ZXNzZXMpOwogICAgICAgICAgICAgbV9jbGllbnQtPnVwZGF0
ZVNwZWxsaW5nVUlXaXRoTWlzc3BlbGxlZFdvcmQobWlzc3BlbGxlZFdvcmQpOwogICAgICAgICAg
ICAgbWlzc3BlbGxlZCA9IHRydWU7CiAgICAgICAgICAgICByZXR1cm4gZ3Vlc3NlczsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAppbmRleCAzZTU4YzdhZmJiY2IzZGUwNTY3YjY4OTIy
ODJjZDc2YTQ0NDY2ZGUxLi40NWQxMGY1NTM1MDIyNGUzNTIzNjNlNzFiYTczNmJlZTA1YjllZTI1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCkBAIC0zNyw2ICszNyw3IEBACiAj
aW5jbHVkZSAiRHJhZ0NsaWVudC5oIgogI2luY2x1ZGUgIkVkaXRDb21tYW5kLmgiCiAjaW5jbHVk
ZSAiRWRpdG9yQ2xpZW50LmgiCisjaW5jbHVkZSAiVGV4dENoZWNrZXJDbGllbnQuaCIKICNpbmNs
dWRlICJGbG9hdFJlY3QuaCIKICNpbmNsdWRlICJGb2N1c0RpcmVjdGlvbi5oIgogI2luY2x1ZGUg
IkZyYW1lTG9hZGVyQ2xpZW50LmgiCkBAIC0zOTIsNyArMzkzLDcgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgUGFzc1JlZlB0cjxGcmFtZU5ldHdvcmtpbmdDb250ZXh0PiBjcmVhdGVOZXR3b3JraW5n
Q29udGV4dCgpIHsgcmV0dXJuIFBhc3NSZWZQdHI8RnJhbWVOZXR3b3JraW5nQ29udGV4dD4oKTsg
fQogfTsKIAotY2xhc3MgRW1wdHlFZGl0b3JDbGllbnQgOiBwdWJsaWMgRWRpdG9yQ2xpZW50IHsK
K2NsYXNzIEVtcHR5RWRpdG9yQ2xpZW50IDogcHVibGljIEVkaXRvckNsaWVudCwgcHVibGljIFRl
eHRDaGVja2VyQ2xpZW50IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShFbXB0eUVkaXRvckNs
aWVudCk7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIEVtcHR5RWRpdG9y
Q2xpZW50KCkgeyB9CkBAIC00ODQsNiArNDg1LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9v
bCBpc0F1dG9tYXRpY1NwZWxsaW5nQ29ycmVjdGlvbkVuYWJsZWQoKSB7IHJldHVybiBmYWxzZTsg
fQogICAgIHZpcnR1YWwgdm9pZCB0b2dnbGVBdXRvbWF0aWNTcGVsbGluZ0NvcnJlY3Rpb24oKSB7
IH0KICNlbmRpZgorICAgIFRleHRDaGVja2VyQ2xpZW50KiB0ZXh0Q2hlY2tlcigpIHsgcmV0dXJu
IHRoaXM7IH0KICAgICB2aXJ0dWFsIHZvaWQgaWdub3JlV29yZEluU3BlbGxEb2N1bWVudChjb25z
dCBTdHJpbmcmKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgbGVhcm5Xb3JkKGNvbnN0IFN0cmluZyYp
IHsgfQogICAgIHZpcnR1YWwgdm9pZCBjaGVja1NwZWxsaW5nT2ZTdHJpbmcoY29uc3QgVUNoYXIq
LCBpbnQsIGludCosIGludCopIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9F
ZGl0b3JDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRWRpdG9yQ2xpZW50LmgKaW5kZXgg
NzFiYTNkZGY5NTI1OTgxMmQ1NjI3Y2UxMjE1YTI3YzM3OTMwZTI5YS4uZDJiNGRhNmRlOTgwNTAy
MWI0MjU5MTI4YzVmNTVlMTY3YTA1ZDc2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9FZGl0b3JDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0VkaXRvckNsaWVudC5o
CkBAIC01OCw2ICs1OCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEFyY2hpdmVSZXNv
dXJjZTsKIGNsYXNzIENTU1N0eWxlRGVjbGFyYXRpb247CiBjbGFzcyBEb2N1bWVudEZyYWdtZW50
OworY2xhc3MgR3JhbW1hckRldGFpbDsKIGNsYXNzIEVkaXRDb21tYW5kOwogY2xhc3MgRWRpdG9y
OwogY2xhc3MgRWxlbWVudDsKQEAgLTY5LDMyICs3MCw4IEBAIGNsYXNzIFJhbmdlOwogY2xhc3Mg
U3BlbGxDaGVja2VyOwogY2xhc3MgVmlzaWJsZVNlbGVjdGlvbjsKIGNsYXNzIFZpc2libGVQb3Np
dGlvbjsKK2NsYXNzIFRleHRDaGVja2VyQ2xpZW50OwogCi1zdHJ1Y3QgR3JhbW1hckRldGFpbCB7
Ci0gICAgaW50IGxvY2F0aW9uOwotICAgIGludCBsZW5ndGg7Ci0gICAgVmVjdG9yPFN0cmluZz4g
Z3Vlc3NlczsKLSAgICBTdHJpbmcgdXNlckRlc2NyaXB0aW9uOwotfTsKLQotZW51bSBUZXh0Q2hl
Y2tpbmdUeXBlIHsKLSAgICBUZXh0Q2hlY2tpbmdUeXBlU3BlbGxpbmcgICAgPSAxIDw8IDEsCi0g
ICAgVGV4dENoZWNraW5nVHlwZUdyYW1tYXIgICAgID0gMSA8PCAyLAotICAgIFRleHRDaGVja2lu
Z1R5cGVMaW5rICAgICAgICA9IDEgPDwgNSwKLSAgICBUZXh0Q2hlY2tpbmdUeXBlUXVvdGUgICAg
ICAgPSAxIDw8IDYsCi0gICAgVGV4dENoZWNraW5nVHlwZURhc2ggICAgICAgID0gMSA8PCA3LAot
ICAgIFRleHRDaGVja2luZ1R5cGVSZXBsYWNlbWVudCA9IDEgPDwgOCwKLSAgICBUZXh0Q2hlY2tp
bmdUeXBlQ29ycmVjdGlvbiAgPSAxIDw8IDkKLX07Ci0KLXN0cnVjdCBUZXh0Q2hlY2tpbmdSZXN1
bHQgewotICAgIFRleHRDaGVja2luZ1R5cGUgdHlwZTsKLSAgICBpbnQgbG9jYXRpb247Ci0gICAg
aW50IGxlbmd0aDsKLSAgICBWZWN0b3I8R3JhbW1hckRldGFpbD4gZGV0YWlsczsKLSAgICBTdHJp
bmcgcmVwbGFjZW1lbnQ7Ci19OwotIAogY2xhc3MgRWRpdG9yQ2xpZW50IHsKIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIH5FZGl0b3JDbGllbnQoKSB7ICB9CkBAIC0xODMsMTQgKzE2MCw3IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIHZvaWQgdG9nZ2xlQXV0b21hdGljU3BlbGxpbmdDb3JyZWN0aW9uKCkg
PSAwOwogI2VuZGlmCiAKLSAgICB2aXJ0dWFsIHZvaWQgaWdub3JlV29yZEluU3BlbGxEb2N1bWVu
dChjb25zdCBTdHJpbmcmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGxlYXJuV29yZChjb25zdCBT
dHJpbmcmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGNoZWNrU3BlbGxpbmdPZlN0cmluZyhjb25z
dCBVQ2hhciosIGludCBsZW5ndGgsIGludCogbWlzc3BlbGxpbmdMb2NhdGlvbiwgaW50KiBtaXNz
cGVsbGluZ0xlbmd0aCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGdldEF1dG9Db3JyZWN0U3Vn
Z2VzdGlvbkZvck1pc3NwZWxsZWRXb3JkKGNvbnN0IFN0cmluZyYgbWlzc3BlbGxlZFdvcmQpID0g
MDsKLSAgICB2aXJ0dWFsIHZvaWQgY2hlY2tHcmFtbWFyT2ZTdHJpbmcoY29uc3QgVUNoYXIqLCBp
bnQgbGVuZ3RoLCBWZWN0b3I8R3JhbW1hckRldGFpbD4mLCBpbnQqIGJhZEdyYW1tYXJMb2NhdGlv
biwgaW50KiBiYWRHcmFtbWFyTGVuZ3RoKSA9IDA7Ci0jaWYgUExBVEZPUk0oTUFDKSAmJiAhZGVm
aW5lZChCVUlMRElOR19PTl9USUdFUikgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkK
LSAgICB2aXJ0dWFsIHZvaWQgY2hlY2tUZXh0T2ZQYXJhZ3JhcGgoY29uc3QgVUNoYXIqIHRleHQs
IGludCBsZW5ndGgsIHVpbnQ2NF90IGNoZWNraW5nVHlwZXMsIFZlY3RvcjxUZXh0Q2hlY2tpbmdS
ZXN1bHQ+JiByZXN1bHRzKSA9IDA7Ci0jZW5kaWYKKyAgICB2aXJ0dWFsIFRleHRDaGVja2VyQ2xp
ZW50KiB0ZXh0Q2hlY2tlcigpID0gMDsKIAogI2lmIFNVUFBPUlRfQVVUT0NPUlJFQ1RJT05fUEFO
RUwKICAgICB2aXJ0dWFsIHZvaWQgc2hvd0NvcnJlY3Rpb25QYW5lbChDb3JyZWN0aW9uUGFuZWxJ
bmZvOjpQYW5lbFR5cGUsIGNvbnN0IEZsb2F0UmVjdCYgYm91bmRpbmdCb3hPZlJlcGxhY2VkU3Ry
aW5nLCBjb25zdCBTdHJpbmcmIHJlcGxhY2VkU3RyaW5nLCBjb25zdCBTdHJpbmcmIHJlcGxhY21l
bnRTdHJpbmcsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBhbHRlcm5hdGl2ZVJlcGxhY2VtZW50U3Ry
aW5ncywgRWRpdG9yKikgPSAwOwpAQCAtMjAyLDExICsxNzIsOCBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB2b2lkIHVwZGF0ZVNwZWxsaW5nVUlXaXRoTWlzc3BlbGxlZFdvcmQoY29uc3QgU3RyaW5n
JikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzaG93U3BlbGxpbmdVSShib29sIHNob3cpID0gMDsK
ICAgICB2aXJ0dWFsIGJvb2wgc3BlbGxpbmdVSUlzU2hvd2luZygpID0gMDsKLSAgICAvLyBGb3Ig
c3BlbGxjaGVja2VycyB0aGF0IHN1cHBvcnQgbXVsdGlwbGUgbGFuZ3VhZ2VzLCBpdCdzIG9mdGVu
IGltcG9ydGFudCB0byBiZSBhYmxlIHRvIGlkZW50aWZ5IHRoZSBsYW5ndWFnZSBpbiBvcmRlciB0
byBwcm92aWRlIG1vcmUgYWNjdXJhdGUgY29ycmVjdGlvbiBzdWdnZXN0aW9ucy4gQ2FsbGVyIGNh
biBwYXNzIGluIG1vcmUgdGV4dCBpbiAiY29udGV4dCIgdG8gYWlkIHN1Y2ggc3BlbGxjaGVja2Vy
cyBvbiBsYW5ndWFnZSBpZGVudGlmaWNhdGlvbi4gTm9yYW1sbHkgaXQncyB0aGUgdGV4dCBzdXJy
b3VuZGluZyB0aGUgIndvcmQiIGZvciB3aGljaCB3ZSBhcmUgZ2V0dGluZyBjb3JyZWN0aW9uIHN1
Z2dlc3Rpb25zLgotICAgIHZpcnR1YWwgdm9pZCBnZXRHdWVzc2VzRm9yV29yZChjb25zdCBTdHJp
bmcmIHdvcmQsIGNvbnN0IFN0cmluZyYgY29udGV4dCwgVmVjdG9yPFN0cmluZz4mIGd1ZXNzZXMp
ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNldElucHV0TWV0aG9kU3RhdGUoKSA9IDA7CiAg
ICAgdmlydHVhbCB2b2lkIHNldElucHV0TWV0aG9kU3RhdGUoYm9vbCBlbmFibGVkKSA9IDA7Ci0g
ICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFNwZWxsQ2hlY2tlciosIGlu
dCwgY29uc3QgU3RyaW5nJikgPSAwOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vdGV4dC9UZXh0Q2hlY2tlckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vdGV4dC9UZXh0Q2hlY2tlckNsaWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVkYTc3NmM3ODY5NDkz
NmJmN2U3NjE5NDg2ZGY1NjcyZWEyYjE3NWQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS90ZXh0L1RleHRDaGVja2VyQ2xpZW50LmgKQEAgLTAsMCArMSw4MyBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0
cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgVGV4dENoZWNrZXJDbGllbnRfaAor
I2RlZmluZSBUZXh0Q2hlY2tlckNsaWVudF9oCisKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgor
I2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4K
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTcGVsbENoZWNrZXI7CisKK3N0cnVjdCBH
cmFtbWFyRGV0YWlsIHsKKyAgICBpbnQgbG9jYXRpb247CisgICAgaW50IGxlbmd0aDsKKyAgICBW
ZWN0b3I8U3RyaW5nPiBndWVzc2VzOworICAgIFN0cmluZyB1c2VyRGVzY3JpcHRpb247Cit9Owor
CitlbnVtIFRleHRDaGVja2luZ1R5cGUgeworICAgIFRleHRDaGVja2luZ1R5cGVTcGVsbGluZyAg
ICA9IDEgPDwgMSwKKyAgICBUZXh0Q2hlY2tpbmdUeXBlR3JhbW1hciAgICAgPSAxIDw8IDIsCisg
ICAgVGV4dENoZWNraW5nVHlwZUxpbmsgICAgICAgID0gMSA8PCA1LAorICAgIFRleHRDaGVja2lu
Z1R5cGVRdW90ZSAgICAgICA9IDEgPDwgNiwKKyAgICBUZXh0Q2hlY2tpbmdUeXBlRGFzaCAgICAg
ICAgPSAxIDw8IDcsCisgICAgVGV4dENoZWNraW5nVHlwZVJlcGxhY2VtZW50ID0gMSA8PCA4LAor
ICAgIFRleHRDaGVja2luZ1R5cGVDb3JyZWN0aW9uICA9IDEgPDwgOQorfTsKKworc3RydWN0IFRl
eHRDaGVja2luZ1Jlc3VsdCB7CisgICAgVGV4dENoZWNraW5nVHlwZSB0eXBlOworICAgIGludCBs
b2NhdGlvbjsKKyAgICBpbnQgbGVuZ3RoOworICAgIFZlY3RvcjxHcmFtbWFyRGV0YWlsPiBkZXRh
aWxzOworICAgIFN0cmluZyByZXBsYWNlbWVudDsKK307CisKK2NsYXNzIFRleHRDaGVja2VyQ2xp
ZW50IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5UZXh0Q2hlY2tlckNsaWVudCgpIHt9CisKKyAg
ICB2aXJ0dWFsIHZvaWQgaWdub3JlV29yZEluU3BlbGxEb2N1bWVudChjb25zdCBTdHJpbmcmKSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIGxlYXJuV29yZChjb25zdCBTdHJpbmcmKSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIGNoZWNrU3BlbGxpbmdPZlN0cmluZyhjb25zdCBVQ2hhciosIGludCBsZW5n
dGgsIGludCogbWlzc3BlbGxpbmdMb2NhdGlvbiwgaW50KiBtaXNzcGVsbGluZ0xlbmd0aCkgPSAw
OworICAgIHZpcnR1YWwgU3RyaW5nIGdldEF1dG9Db3JyZWN0U3VnZ2VzdGlvbkZvck1pc3NwZWxs
ZWRXb3JkKGNvbnN0IFN0cmluZyYgbWlzc3BlbGxlZFdvcmQpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgY2hlY2tHcmFtbWFyT2ZTdHJpbmcoY29uc3QgVUNoYXIqLCBpbnQgbGVuZ3RoLCBWZWN0b3I8
R3JhbW1hckRldGFpbD4mLCBpbnQqIGJhZEdyYW1tYXJMb2NhdGlvbiwgaW50KiBiYWRHcmFtbWFy
TGVuZ3RoKSA9IDA7CisjaWYgUExBVEZPUk0oTUFDKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9U
SUdFUikgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkKKyAgICB2aXJ0dWFsIHZvaWQg
Y2hlY2tUZXh0T2ZQYXJhZ3JhcGgoY29uc3QgVUNoYXIqIHRleHQsIGludCBsZW5ndGgsIHVpbnQ2
NF90IGNoZWNraW5nVHlwZXMsIFZlY3RvcjxUZXh0Q2hlY2tpbmdSZXN1bHQ+JiByZXN1bHRzKSA9
IDA7CisjZW5kaWYKKworICAgIC8vIEZvciBzcGVsbGNoZWNrZXJzIHRoYXQgc3VwcG9ydCBtdWx0
aXBsZSBsYW5ndWFnZXMsIGl0J3Mgb2Z0ZW4gaW1wb3J0YW50IHRvIGJlIGFibGUgdG8gaWRlbnRp
ZnkgdGhlIGxhbmd1YWdlIGluIG9yZGVyIHRvIHByb3ZpZGUgbW9yZSBhY2N1cmF0ZSBjb3JyZWN0
aW9uIHN1Z2dlc3Rpb25zLiBDYWxsZXIgY2FuIHBhc3MgaW4gbW9yZSB0ZXh0IGluICJjb250ZXh0
IiB0byBhaWQgc3VjaCBzcGVsbGNoZWNrZXJzIG9uIGxhbmd1YWdlIGlkZW50aWZpY2F0aW9uLiBO
b3JhbWxseSBpdCdzIHRoZSB0ZXh0IHN1cnJvdW5kaW5nIHRoZSAid29yZCIgZm9yIHdoaWNoIHdl
IGFyZSBnZXR0aW5nIGNvcnJlY3Rpb24gc3VnZ2VzdGlvbnMuCisgICAgdmlydHVhbCB2b2lkIGdl
dEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYgd29yZCwgY29uc3QgU3RyaW5nJiBjb250ZXh0
LCBWZWN0b3I8U3RyaW5nPiYgZ3Vlc3NlcykgPSAwOworICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0
Q2hlY2tpbmdPZlN0cmluZyhTcGVsbENoZWNrZXIqLCBpbnQsIGNvbnN0IFN0cmluZyYpID0gMDsK
K307CisKK30KKworI2VuZGlmIC8vIFRleHRDaGVja2VyQ2xpZW50X2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cKaW5kZXggMzFmMWM1YjM4N2I2NTU0NTdjYjhjYTYwMGY4ZjFjNjA5ZTNlZTc5ZC4u
NjNlYmQyN2M3MDQwYmM0YzUyZjZkMGMzMjI2MWQxM2RkYjQ5ZGZmYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMS0wMS0yNiAgTU9SSVRBIEhhamltZSAg
PG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBSZWZhY3RvcmluZzogRXh0cmFjdCBUZXh0Q2hlY2tlckNsaWVudCBmcm9t
IEVkaXRvckNsaWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NTMyMTMKKworICAgICAgICAqIHNyYy9FZGl0b3JDbGllbnRJbXBsLmg6CisgICAgICAg
IChXZWJLaXQ6OkVkaXRvckNsaWVudEltcGw6OnRleHRDaGVja2VyKToKKwogMjAxMS0wMS0yNiAg
S2VudCBUYW11cmEgIDx0a2VudEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
RGltaXRyaSBHbGF6a292LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
RWRpdG9yQ2xpZW50SW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRWRpdG9yQ2xp
ZW50SW1wbC5oCmluZGV4IDlkYmQ2YWZiMzcxZDY0MTJhMGFmMjBlOGRiN2I4NTE4Yzc4ODdlMGUu
LjE1ZjUzZTIyMTgyNzgwNmY4M2U5OTA2MDAwMDMzY2UzYzg0Y2IyMDcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRvckNsaWVudEltcGwuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGllbnRJbXBsLmgKQEAgLTMyLDYgKzMyLDcgQEAK
ICNkZWZpbmUgRWRpdG9yQ2xpZW50SW1wbF9oCiAKICNpbmNsdWRlICJFZGl0b3JDbGllbnQuaCIK
KyNpbmNsdWRlICJUZXh0Q2hlY2tlckNsaWVudC5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCiAjaW5j
bHVkZSA8d3RmL0RlcXVlLmg+CiAKQEAgLTQyLDcgKzQzLDcgQEAgY2xhc3MgSFRNTElucHV0RWxl
bWVudDsKIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgV2ViVmlld0ltcGw7CiAKLWNsYXNzIEVk
aXRvckNsaWVudEltcGwgOiBwdWJsaWMgV2ViQ29yZTo6RWRpdG9yQ2xpZW50IHsKK2NsYXNzIEVk
aXRvckNsaWVudEltcGwgOiBwdWJsaWMgV2ViQ29yZTo6RWRpdG9yQ2xpZW50LCBwdWJsaWMgV2Vi
Q29yZTo6VGV4dENoZWNrZXJDbGllbnQgewogcHVibGljOgogICAgIEVkaXRvckNsaWVudEltcGwo
V2ViVmlld0ltcGwqIHdlYlZpZXcpOwogCkBAIC0xMTMsNiArMTE0LDggQEAgcHVibGljOgogICAg
IHZpcnR1YWwgdm9pZCBzZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wgZW5hYmxlZCk7CiAgICAgdmly
dHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFdlYkNvcmU6OlNwZWxsQ2hlY2tlcios
IGludCwgY29uc3QgV1RGOjpTdHJpbmcmKSB7fQogCisgICAgdmlydHVhbCBXZWJDb3JlOjpUZXh0
Q2hlY2tlckNsaWVudCogdGV4dENoZWNrZXIoKSB7IHJldHVybiB0aGlzOyB9CisKICAgICAvLyBT
aG93cyB0aGUgZm9ybSBhdXRvZmlsbCBwb3B1cCBmb3IgfG5vZGV8IGlmIGl0IGlzIGFuIEhUTUxJ
bnB1dEVsZW1lbnQgYW5kCiAgICAgLy8gaXQgaXMgZW1wdHkuICBUaGlzIGlzIGNhbGxlZCB3aGVu
IHlvdSBwcmVzcyB0aGUgdXAgb3IgZG93biBhcnJvdyBpbiBhCiAgICAgLy8gdGV4dC1maWVsZCBv
ciB3aGVuIGNsaWNraW5nIGFuIGFscmVhZHkgZm9jdXNlZCB0ZXh0LWZpZWxkLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdl
TG9nCmluZGV4IDVkY2M1Y2YzMGUwMzRhOTg3NWU0MDdmYzQ5MWVmNzRlYzUzOGZjODcuLjgyNDUw
OTFmNzM1MWE5YzE2MGJhNGY3MTQxN2Y1NTFiMDk1NTIwZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvZWZsL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxMyBAQAorMjAxMS0wMS0yNiAgTU9SSVRBIEhhamltZSAgPG1vcnJpdGFAZ29vZ2xl
LmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBS
ZWZhY3RvcmluZzogRXh0cmFjdCBUZXh0Q2hlY2tlckNsaWVudCBmcm9tIEVkaXRvckNsaWVudAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTMyMTMKKwor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEVmbC5oOgorICAgICAgICAoV2Vi
Q29yZTo6RWRpdG9yQ2xpZW50RWZsOjp0ZXh0Q2hlY2tlcik6CisKIDIwMTEtMDEtMTQgIFBhdHJp
Y2sgR2Fuc3RlcmVyICA8cGFyb2dhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZC4g
VHJ5IHRvIGZpeCBFRkwgYnVpbGQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJD
b3JlU3VwcG9ydC9FZGl0b3JDbGllbnRFZmwuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVT
dXBwb3J0L0VkaXRvckNsaWVudEVmbC5oCmluZGV4IGUyNWIxZTZmMGYyNDRmOGIyMmQ2YzIwMzJi
ZDc5M2Y3ZmVkYzQzYzYuLmM3NWVjZDk4YzE4ZjZkYWRiMzA3MTNlZjUyYWU3MjNmYWZjMjIyOGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVu
dEVmbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVu
dEVmbC5oCkBAIC0zNCw2ICszNCw3IEBACiAjZGVmaW5lIEVkaXRvckNsaWVudEVmbF9oCiAKICNp
bmNsdWRlICJFZGl0b3JDbGllbnQuaCIKKyNpbmNsdWRlICJUZXh0Q2hlY2tlckNsaWVudC5oIgog
CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KIApAQCAtNDIsNyArNDMsNyBAQCB0eXBlZGVmIHN0
cnVjdCBfRXZhc19PYmplY3QgRXZhc19PYmplY3Q7CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFz
cyBQYWdlOwogCi1jbGFzcyBFZGl0b3JDbGllbnRFZmwgOiBwdWJsaWMgRWRpdG9yQ2xpZW50IHsK
K2NsYXNzIEVkaXRvckNsaWVudEVmbCA6IHB1YmxpYyBFZGl0b3JDbGllbnQsIHB1YmxpYyBUZXh0
Q2hlY2tlckNsaWVudCB7CiBwdWJsaWM6CiAgICAgRWRpdG9yQ2xpZW50RWZsKEV2YXNfT2JqZWN0
ICp2aWV3KTsKICAgICB+RWRpdG9yQ2xpZW50RWZsKCk7CkBAIC0xMTQsNiArMTE1LDcgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgdm9pZCB3aWxsU2V0SW5wdXRNZXRob2RTdGF0ZSgpOwogICAgIHZp
cnR1YWwgdm9pZCBzZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wgZW5hYmxlZCk7CiAgICAgdmlydHVh
bCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFdlYkNvcmU6OlNwZWxsQ2hlY2tlciosIGlu
dCwgY29uc3QgV1RGOjpTdHJpbmcmKSB7fQorICAgIHZpcnR1YWwgVGV4dENoZWNrZXJDbGllbnQq
IHRleHRDaGVja2VyKCkgeyByZXR1cm4gdGhpczsgfQogCiBwcml2YXRlOgogICAgIEV2YXNfT2Jq
ZWN0ICptX3ZpZXc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggMWY0ZTMxY2IwMzIwNTE0NDlhMGU1NjBm
NzBjMDk2NzRmNDlmZmU4NC4uMjM5MzdlODM2NTg2NzZmYjllZGRmZTYwNDQwZWM1Njc0ZTcyYzNk
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvZ3RrL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDExLTAxLTI2ICBNT1JJVEEg
SGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFJlZmFjdG9yaW5nOiBFeHRyYWN0IFRleHRDaGVja2VyQ2xp
ZW50IGZyb20gRWRpdG9yQ2xpZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD01MzIxMworCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xp
ZW50R3RrLmg6CisgICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudDo6dGV4dENoZWNrZXIpOgor
CiAyMDExLTAxLTI2ICBNYXJpbyBTYW5jaGV6IFByYWRhICA8bXNhbmNoZXpAaWdhbGlhLmNvbT4K
IAogICAgICAgICBSZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuaCBiL1NvdXJjZS9X
ZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5oCmluZGV4IDIxNGRiZDY2
YzFjMjdmNmM2ODRmODJjM2ZjNzhmMzQ0YmJkNzAyNjEuLjFhZjU1ZTY4Y2U3Y2ZiN2EwM2JkYjUx
ZmY3Mjc5MDRlNTVlZjEyOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVT
dXBwb3J0L0VkaXRvckNsaWVudEd0ay5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVT
dXBwb3J0L0VkaXRvckNsaWVudEd0ay5oCkBAIC0zMiw2ICszMiw3IEBACiAjZGVmaW5lIEVkaXRv
ckNsaWVudEd0a19oCiAKICNpbmNsdWRlICJFZGl0b3JDbGllbnQuaCIKKyNpbmNsdWRlICJUZXh0
Q2hlY2tlckNsaWVudC5oIgogCiAjaW5jbHVkZSA8d3RmL0RlcXVlLmg+CiAjaW5jbHVkZSA8d3Rm
L0ZvcndhcmQuaD4KQEAgLTQ3LDcgKzQ4LDcgQEAgY2xhc3MgS2V5Ym9hcmRFdmVudDsKIAogbmFt
ZXNwYWNlIFdlYktpdCB7CiAKLSAgICBjbGFzcyBFZGl0b3JDbGllbnQgOiBwdWJsaWMgV2ViQ29y
ZTo6RWRpdG9yQ2xpZW50IHsKK2NsYXNzIEVkaXRvckNsaWVudCA6IHB1YmxpYyBXZWJDb3JlOjpF
ZGl0b3JDbGllbnQsICBwdWJsaWMgV2ViQ29yZTo6VGV4dENoZWNrZXJDbGllbnQgewogICAgIHBy
b3RlY3RlZDoKICAgICAgICAgYm9vbCBtX2lzSW5SZWRvOwogCkBAIC0xMjAsNiArMTIxLDggQEAg
bmFtZXNwYWNlIFdlYktpdCB7CiAgICAgICAgIHZpcnR1YWwgdm9pZCB0ZXh0V2lsbEJlRGVsZXRl
ZEluVGV4dEZpZWxkKFdlYkNvcmU6OkVsZW1lbnQqKTsKICAgICAgICAgdmlydHVhbCB2b2lkIHRl
eHREaWRDaGFuZ2VJblRleHRBcmVhKFdlYkNvcmU6OkVsZW1lbnQqKTsKIAorICAgICAgICB2aXJ0
dWFsIFdlYkNvcmU6OlRleHRDaGVja2VyQ2xpZW50KiB0ZXh0Q2hlY2tlcigpIHsgcmV0dXJuIHRo
aXM7IH0KKwogICAgICAgICB2aXJ0dWFsIHZvaWQgaWdub3JlV29yZEluU3BlbGxEb2N1bWVudChj
b25zdCBXVEY6OlN0cmluZyYpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgbGVhcm5Xb3JkKGNvbnN0
IFdURjo6U3RyaW5nJik7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBjaGVja1NwZWxsaW5nT2ZTdHJp
bmcoY29uc3QgVUNoYXIqLCBpbnQgbGVuZ3RoLCBpbnQqIG1pc3NwZWxsaW5nTG9jYXRpb24sIGlu
dCogbWlzc3BlbGxpbmdMZW5ndGgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9oYWlrdS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2hhaWt1L0NoYW5nZUxvZwppbmRleCA0MzE1YmI1ZTRl
YTk5M2M4MzllODRlM2MzN2ZkNDI1ZTZhODgwNzg1Li5hMDgzOTZiNjljZWY1YjIyNDY1ZjFhYWI5
ZmYxYzkxZDFkYzI0MmVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2hhaWt1L0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0L2hhaWt1L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisy
MDExLTAxLTI2ICBNT1JJVEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29tPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlZmFjdG9yaW5nOiBFeHRy
YWN0IFRleHRDaGVja2VyQ2xpZW50IGZyb20gRWRpdG9yQ2xpZW50CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MzIxMworCisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvRWRpdG9yQ2xpZW50SGFpa3UuaDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNs
aWVudEhhaWt1Ojp0ZXh0Q2hlY2tlcik6CisKIDIwMTAtMTItMjIgIFNhbSBXZWluaWcgIDxzYW1A
d2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvaGFpa3UvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50SGFpa3Uu
aCBiL1NvdXJjZS9XZWJLaXQvaGFpa3UvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50SGFpa3Uu
aAppbmRleCBjYTI3MGU5NWNiNDI3YTNlZDdhMDY2ZjNlZTMwMTM5MzQ5ZTA0NjhjLi42ZGMzNTBm
MjU0ZjI2M2Q1YzRhMDUwMWZjOGIzNzNlOTljOGNmYWU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEhhaWt1LmgKKysrIGIvU291cmNl
L1dlYktpdC9oYWlrdS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRIYWlrdS5oCkBAIC0zMiw2
ICszMiw3IEBACiAjZGVmaW5lIEVkaXRvckNsaWVudEhhaWt1X0gKIAogI2luY2x1ZGUgIkVkaXRv
ckNsaWVudC5oIgorI2luY2x1ZGUgIlRleHRDaGVja2VyQ2xpZW50LmgiCiAjaW5jbHVkZSAiUmVm
Q291bnRlZC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKIApAQCAtNDAsNyArNDEsNyBAQAogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLSAgICBjbGFzcyBFZGl0b3JDbGllbnRIYWlrdSA6IHB1YmxpYyBF
ZGl0b3JDbGllbnQgeworY2xhc3MgRWRpdG9yQ2xpZW50SGFpa3UgOiBwdWJsaWMgRWRpdG9yQ2xp
ZW50LCBwdWJsaWMgVGV4dENoZWNrZXJDbGllbnQgewogICAgIHB1YmxpYzoKICAgICAgICAgRWRp
dG9yQ2xpZW50SGFpa3UoKTsKICAgICAgICAgdm9pZCBzZXRQYWdlKCBQYWdlKiBwYWdlICk7CkBA
IC0xMTEsNiArMTEyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFsIHZv
aWQgd2lsbFNldElucHV0TWV0aG9kU3RhdGUoKTsKICAgICAgICAgdmlydHVhbCB2b2lkIHNldElu
cHV0TWV0aG9kU3RhdGUoYm9vbCBlbmFibGVkKTsKICAgICAgICAgdmlydHVhbCB2b2lkIHJlcXVl
c3RDaGVja2luZ09mU3RyaW5nKFNwZWxsQ2hlY2tlciosIGludCwgY29uc3QgU3RyaW5nJikge30K
KyAgICAgICAgdmlydHVhbCBUZXh0Q2hlY2tlckNsaWVudCogdGV4dENoZWNrZXIoKSB7IHJldHVy
biB0aGlzOyB9CiAKICAgICAgICAgYm9vbCBpc0VkaXRpbmcoKSBjb25zdDsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdl
TG9nCmluZGV4IDFmNGUzYzQ0M2QzMWY2MjhmNDdmNTJkYTQ5NDlhZDA4NmM5NTEyMGMuLjEzZDFk
MDk1MTMyNzAxZTM2Y2QzYmQ3NGJjY2ZiMTY5Yjc3NjRkYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxMyBAQAorMjAxMS0wMS0yNiAgTU9SSVRBIEhhamltZSAgPG1vcnJpdGFAZ29vZ2xl
LmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBS
ZWZhY3RvcmluZzogRXh0cmFjdCBUZXh0Q2hlY2tlckNsaWVudCBmcm9tIEVkaXRvckNsaWVudAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTMyMTMKKwor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oOgorICAgICAgICAoV2Vi
RWRpdG9yQ2xpZW50Ojp0ZXh0Q2hlY2tlcik6CisKIDIwMTEtMDEtMjUgIERhcmluIEFkbGVyICA8
ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFuZGVycyBDYXJsc3Nvbi4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNs
aWVudC5oIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50
LmgKaW5kZXggZDVhYzg5MWI3YTZjMGUwYjcwNTg5MjZiMjMxZThiOTVkOWViOTZjMi4uNTNkYTM2
YTQwMjkwZTMxY2QyODI1MDBmZmIxYmM1NThkM2MyNGVlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKKysrIGIvU291cmNlL1dl
YktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKQEAgLTI5LDYgKzI5LDcg
QEAKIAogI2ltcG9ydCA8V2ViQ29yZS9FZGl0b3IuaD4KICNpbXBvcnQgPFdlYkNvcmUvRWRpdG9y
Q2xpZW50Lmg+CisjaW1wb3J0IDxXZWJDb3JlL1RleHRDaGVja2VyQ2xpZW50Lmg+CiAjaW1wb3J0
IDx3dGYvUmV0YWluUHRyLmg+CiAjaW1wb3J0IDx3dGYvRm9yd2FyZC5oPgogI2ltcG9ydCA8d3Rm
L1ZlY3Rvci5oPgpAQCAtMzYsNyArMzcsNyBAQAogQGNsYXNzIFdlYlZpZXc7CiBAY2xhc3MgV2Vi
RWRpdG9yVW5kb1RhcmdldDsKIAotY2xhc3MgV2ViRWRpdG9yQ2xpZW50IDogcHVibGljIFdlYkNv
cmU6OkVkaXRvckNsaWVudCB7CitjbGFzcyBXZWJFZGl0b3JDbGllbnQgOiBwdWJsaWMgV2ViQ29y
ZTo6RWRpdG9yQ2xpZW50LCBwdWJsaWMgV2ViQ29yZTo6VGV4dENoZWNrZXJDbGllbnQgewogcHVi
bGljOgogICAgIFdlYkVkaXRvckNsaWVudChXZWJWaWV3ICopOwogICAgIHZpcnR1YWwgfldlYkVk
aXRvckNsaWVudCgpOwpAQCAtOTgsNiArOTksOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lk
IHRvZ2dsZUF1dG9tYXRpY1NwZWxsaW5nQ29ycmVjdGlvbigpOwogI2VuZGlmCiAKKyAgICBUZXh0
Q2hlY2tlckNsaWVudCogdGV4dENoZWNrZXIoKSB7IHJldHVybiB0aGlzOyB9CisKICAgICB2aXJ0
dWFsIHZvaWQgcmVzcG9uZFRvQ2hhbmdlZENvbnRlbnRzKCk7CiAgICAgdmlydHVhbCB2b2lkIHJl
c3BvbmRUb0NoYW5nZWRTZWxlY3Rpb24oKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9x
dC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwppbmRleCBiM2YyYjI4MzNl
Y2Q4MWM0OWI2MGQ0OWU0MjA2ODM5NDNiMzQyMWU4Li40MmRiMDEyNzVmZGEyZTcxN2E0NmFmZmZk
ODliOTBhZDFjMTA5N2VjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDExLTAx
LTI2ICBNT1JJVEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29tPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlZmFjdG9yaW5nOiBFeHRyYWN0IFRl
eHRDaGVja2VyQ2xpZW50IGZyb20gRWRpdG9yQ2xpZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MzIxMworCisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvRWRpdG9yQ2xpZW50UXQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVudFF0Ojp0
ZXh0Q2hlY2tlcik6CisKIDIwMTEtMDEtMjQgIENocmlzIE1hcnJpbiAgPGNtYXJyaW5AYXBwbGUu
Y29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRRdC5oIGIvU291cmNlL1dl
YktpdC9xdC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRRdC5oCmluZGV4IDFlNDEwZTZkN2Vk
MzRiMzk4ZmYyZTAwYjYyZTRkZWI5MTc4ZjQ0Y2YuLmU0MzA1NDRhNjYzOGEyMzBjNWQ0YTM5YzU1
Y2JhYzIxMDYxM2E1NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBv
cnQvRWRpdG9yQ2xpZW50UXQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0
L0VkaXRvckNsaWVudFF0LmgKQEAgLTMxLDYgKzMxLDcgQEAKICNkZWZpbmUgRWRpdG9yQ2xpZW50
UXRfaAogCiAjaW5jbHVkZSAiRWRpdG9yQ2xpZW50LmgiCisjaW5jbHVkZSAiVGV4dENoZWNrZXJD
bGllbnQuaCIKICNpbmNsdWRlICJSZWZDb3VudGVkLmgiCiAKICNpbmNsdWRlIDx3dGYvRm9yd2Fy
ZC5oPgpAQCAtMzksNyArNDAsNyBAQCBjbGFzcyBRV2ViUGFnZTsKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi1jbGFzcyBFZGl0b3JDbGllbnRRdCA6IHB1YmxpYyBFZGl0b3JDbGllbnQgeworY2xh
c3MgRWRpdG9yQ2xpZW50UXQgOiBwdWJsaWMgRWRpdG9yQ2xpZW50LCBwdWJsaWMgVGV4dENoZWNr
ZXJDbGllbnQgewogcHVibGljOgogICAgIEVkaXRvckNsaWVudFF0KFFXZWJQYWdlKiBwYWdlKTsK
ICAgICAKQEAgLTEwOCw2ICsxMDksNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHdpbGxT
ZXRJbnB1dE1ldGhvZFN0YXRlKCk7CiAgICAgdmlydHVhbCB2b2lkIHNldElucHV0TWV0aG9kU3Rh
dGUoYm9vbCBlbmFibGVkKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdENoZWNraW5nT2ZTdHJp
bmcoU3BlbGxDaGVja2VyKiwgaW50LCBjb25zdCBTdHJpbmcmKSB7fQorICAgIHZpcnR1YWwgVGV4
dENoZWNrZXJDbGllbnQqIHRleHRDaGVja2VyKCkgeyByZXR1cm4gdGhpczsgfQogCiAgICAgYm9v
bCBpc0VkaXRpbmcoKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCmluZGV4IDEzYTc5NGEyOTFlYzI0
YWYzMjQwOTYzN2JhYzkwYjEyYzRkY2UwYTguLmExNTI3OWY4ZmQzM2YzZTQ4Y2YwZjlmNjkzYjA0
MDg0Y2Y5NGM0YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMS0wMS0y
NiAgTU9SSVRBIEhhamltZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWZhY3RvcmluZzogRXh0cmFjdCBUZXh0
Q2hlY2tlckNsaWVudCBmcm9tIEVkaXRvckNsaWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTMyMTMKKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L1dlYkVkaXRvckNsaWVudC5oOgorICAgICAgICAoV2ViRWRpdG9yQ2xpZW50Ojp0ZXh0Q2hlY2tl
cik6CisKIDIwMTEtMDEtMjUgIFN0ZXZlIEZhbGtlbmJ1cmcgIDxzZmFsa2VuQGFwcGxlLmNvbT4K
IAogICAgICAgICBXaW5kb3dzIHByb2R1Y3Rpb24gYnVpbGQgZml4LgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmggYi9Tb3VyY2Uv
V2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAppbmRleCAzNThhMzY1
NmE2ZGY2MDRiMTIyYTA5ZDBkMGVhMTA1ZWFmYTQ4OTEzLi40NjlmNzVmMzRlY2FhYjcyNWVlMTdi
OGVlODI0YTg4NjZiMTJlMTk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3Jl
U3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3Jl
U3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIldl
YktpdC5oIgogI3ByYWdtYSB3YXJuaW5nKHB1c2gsIDApCiAjaW5jbHVkZSA8V2ViQ29yZS9FZGl0
b3JDbGllbnQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1RleHRDaGVja2VyQ2xpZW50Lmg+CiAjaW5j
bHVkZSA8d3RmL093blB0ci5oPgogI3ByYWdtYSB3YXJuaW5nKHBvcCkKIApAQCAtMzYsNyArMzcs
NyBAQCBjbGFzcyBXZWJWaWV3OwogY2xhc3MgV2ViTm90aWZpY2F0aW9uOwogY2xhc3MgV2ViRWRp
dG9yVW5kb1RhcmdldDsKIAotY2xhc3MgV2ViRWRpdG9yQ2xpZW50IDogcHVibGljIFdlYkNvcmU6
OkVkaXRvckNsaWVudCB7CitjbGFzcyBXZWJFZGl0b3JDbGllbnQgOiBwdWJsaWMgV2ViQ29yZTo6
RWRpdG9yQ2xpZW50LCBwdWJsaWMgV2ViQ29yZTo6VGV4dENoZWNrZXJDbGllbnQgewogcHVibGlj
OgogICAgIFdlYkVkaXRvckNsaWVudChXZWJWaWV3Kik7CiAgICAgfldlYkVkaXRvckNsaWVudCgp
OwpAQCAtMTEyLDYgKzExMyw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNldElu
cHV0TWV0aG9kU3RhdGUoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5wdXRNZXRob2RTdGF0ZShi
b29sKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoV2ViQ29yZTo6
U3BlbGxDaGVja2VyKiwgaW50LCBjb25zdCBXVEY6OlN0cmluZyYpIHt9CisgICAgdmlydHVhbCBX
ZWJDb3JlOjpUZXh0Q2hlY2tlckNsaWVudCogdGV4dENoZWNrZXIoKSB7IHJldHVybiB0aGlzOyB9
CiAKIHByaXZhdGU6CiAgICAgV2ViVmlldyogbV93ZWJWaWV3OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC93aW5jZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZwpp
bmRleCA4N2NhMjllOGFhYmY5YmY0MjEwMjBiZWU1YzViMjY2NDE3NzdhY2E1Li40NDE1NWE1Mzgw
ZWMyNGJmNTdkOTM3MDk4YmFjNmU2YTc2MjgyYWYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L3dpbmNlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDEzIEBACisyMDExLTAxLTI2ICBNT1JJVEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUu
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJl
ZmFjdG9yaW5nOiBFeHRyYWN0IFRleHRDaGVja2VyQ2xpZW50IGZyb20gRWRpdG9yQ2xpZW50Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MzIxMworCisg
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50V2luQ0UuaDoKKyAgICAgICAgKFdl
YktpdDo6RWRpdG9yQ2xpZW50V2luQ0U6OnRleHRDaGVja2VyKToKKwogMjAxMS0wMS0yNSAgUGF0
cmljayBHYW5zdGVyZXIgIDxwYXJvZ2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBBZGFtIFJvYmVuLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3Vw
cG9ydC9FZGl0b3JDbGllbnRXaW5DRS5oIGIvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3Vw
cG9ydC9FZGl0b3JDbGllbnRXaW5DRS5oCmluZGV4IDhkYjhjMTY4NDYyZjhkZGIzYzAwYWM3ZGM0
YzFlNzZkY2Q0OWJmYWQuLjEyMzM2MDU5OTkxZmQzMTc5MTMxNWY3YWQ4MDIyMDNjMTdkNGE0MmQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xp
ZW50V2luQ0UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0VkaXRv
ckNsaWVudFdpbkNFLmgKQEAgLTI2LDEyICsyNiwxMyBAQAogI2RlZmluZSBFZGl0b3JDbGllbnRX
aW5DRV9oCiAKICNpbmNsdWRlICJFZGl0b3JDbGllbnQuaCIKKyNpbmNsdWRlICJUZXh0Q2hlY2tl
ckNsaWVudC5oIgogCiBjbGFzcyBXZWJWaWV3OwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotY2xh
c3MgRWRpdG9yQ2xpZW50V2luQ0UgOiBwdWJsaWMgV2ViQ29yZTo6RWRpdG9yQ2xpZW50IHsKK2Ns
YXNzIEVkaXRvckNsaWVudFdpbkNFIDogcHVibGljIFdlYkNvcmU6OkVkaXRvckNsaWVudCwgcHVi
bGljIFdlYkNvcmU6OlRleHRDaGVja2VyQ2xpZW50IHsKIHB1YmxpYzoKICAgICBFZGl0b3JDbGll
bnRXaW5DRShXZWJWaWV3Kik7CiAgICAgfkVkaXRvckNsaWVudFdpbkNFKCk7CkBAIC0xMDEsNiAr
MTAyLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCB3aWxsU2V0SW5wdXRNZXRob2RTdGF0
ZSgpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wpOwogICAgIHZp
cnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhXZWJDb3JlOjpTcGVsbENoZWNrZXIq
LCBpbnQsIGNvbnN0IFdURjo6U3RyaW5nJikge30KKyAgICB2aXJ0dWFsIFdlYkNvcmU6OlRleHRD
aGVja2VyQ2xpZW50KiB0ZXh0Q2hlY2tlcigpIHsgcmV0dXJuIHRoaXM7IH0KIAogcHJpdmF0ZToK
ICAgICBXZWJWaWV3KiBtX3dlYlZpZXc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3d4L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvd3gvQ2hhbmdlTG9nCmluZGV4IDQ4NjIyMjVlNWJkNGNj
NGUzY2M5ZGY0Y2IwOWFmZGJjOGMxOGE0NjYuLmZlY2M5OGY1Nzk3N2U5M2U3ZDk4ZTI2M2U4NGZk
MzkxZjI4Njc4ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd3gvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvd3gvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMDEtMjYg
IE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVmYWN0b3Jpbmc6IEV4dHJhY3QgVGV4dENo
ZWNrZXJDbGllbnQgZnJvbSBFZGl0b3JDbGllbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTUzMjEzCisKKyAgICAgICAgKiBXZWJLaXRTdXBwb3J0L0Vk
aXRvckNsaWVudFd4Lmg6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3JDbGllbnRXeDo6dGV4dENo
ZWNrZXIpOgorCiAyMDExLTAxLTE0ICBZdXpvIEZ1amlzaGltYSAgPHl1em9AZ29vZ2xlLmNvbT4K
IAogICAgICAgICBSZXZpZXdlZCBieSBBbnR0aSBLb2l2aXN0by4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9FZGl0b3JDbGllbnRXeC5oIGIvU291cmNlL1dlYktp
dC93eC9XZWJLaXRTdXBwb3J0L0VkaXRvckNsaWVudFd4LmgKaW5kZXggN2RiZWUzMWE1Zjk0NGE0
OGRkY2QzMWRkNWI4YThlMDJhNTJlNmJmMC4uM2M0M2JlN2QyNGE5MmUxMmUwZmM2ODUyZTA3MjMw
Zjc5ZGQwN2RiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0Vk
aXRvckNsaWVudFd4LmgKKysrIGIvU291cmNlL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0VkaXRv
ckNsaWVudFd4LmgKQEAgLTMwLDEzICszMCwxNCBAQAogCiAjaW5jbHVkZSAiRWRpdG9yQ2xpZW50
LmgiCiAjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIlRleHRDaGVja2VyQ2xpZW50LmgiCiAK
ICNpbmNsdWRlICJXZWJWaWV3LmgiCiAjaW5jbHVkZSAiV2ViRnJhbWUuaCIKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCi1jbGFzcyBFZGl0b3JDbGllbnRXeCA6IHB1YmxpYyBFZGl0b3JDbGllbnQg
eworY2xhc3MgRWRpdG9yQ2xpZW50V3ggOiBwdWJsaWMgRWRpdG9yQ2xpZW50LCBwdWJsaWMgVGV4
dENoZWNrZXJDbGllbnQgewogZnJpZW5kIGNsYXNzIDo6d3hXZWJWaWV3OwogZnJpZW5kIGNsYXNz
IDo6d3hXZWJGcmFtZTsKIApAQCAtMTEzLDYgKzExNCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IHZvaWQgd2lsbFNldElucHV0TWV0aG9kU3RhdGUoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5w
dXRNZXRob2RTdGF0ZShib29sIGVuYWJsZWQpOwogICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hl
Y2tpbmdPZlN0cmluZyhXZWJDb3JlOjpTcGVsbENoZWNrZXIqLCBpbnQsIGNvbnN0IFdURjo6U3Ry
aW5nJikge30KKyAgICB2aXJ0dWFsIFRleHRDaGVja2VyQ2xpZW50KiB0ZXh0Q2hlY2tlcigpIHsg
cmV0dXJuIHRoaXM7IH0KIAogcHJpdmF0ZToKICAgICBQYWdlKiBtX3BhZ2U7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5k
ZXggNTQ3M2EyM2U2ZTQ2NTQzNDYxYjdkZDE4MmQ2M2JjYmZlYTVlNDFjOC4uOTI5NDE0ZTQzZTY1
MWJhOWY4OTcyOTJjYWU3ZjI4N2MwOTg2NDI3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBA
CisyMDExLTAxLTI2ICBNT1JJVEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29tPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5lZWQgYSBzaG9ydCBk
ZXNjcmlwdGlvbiBhbmQgYnVnIFVSTCAoT09QUyEpCisKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzLmg6CisgICAgICAgICogVUlQcm9jZXNzL1RleHRDaGVja2VyLmg6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViRWRpdG9yQ2xpZW50Ojp0ZXh0Q2hlY2tlcik6CisKIDIwMTEtMDEt
MjYgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBN
YWNpZWogU3RhY2hvd2lhay4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJD
b3JlQXJndW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1l
bnRDb2RlcnMuaAppbmRleCA2MmM2OGM3NjFlNWNmYzQwNjVhMWIzNDFmNTNhNGEyZmU0ZWI1NjYw
Li5lNzgwMmMzNzI2ZjJjZTMwY2VkODE0MTIxOWRiODRjMmM5ZTYxOWI4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKKysrIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCkBAIC00Myw2ICs0Myw3IEBA
CiAjaW5jbHVkZSA8V2ViQ29yZS9Qcm90ZWN0aW9uU3BhY2UuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1Jlc291cmNlRXJyb3IuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgor
I2luY2x1ZGUgPFdlYkNvcmUvVGV4dENoZWNrZXJDbGllbnQuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1ZpZXdwb3J0QXJndW1lbnRzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9XaW5kb3dGZWF0dXJlcy5o
PgogI2luY2x1ZGUgPGxpbWl0cz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9UZXh0Q2hlY2tlci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1RleHRDaGVja2VyLmgK
aW5kZXggZmMzNDdmZTU0N2JkMjc3YTBiZjJjNmY5OTVlMzQ1MTIzODZmZjkyOS4uOTk5N2Q4YmRj
OTM2MjE0MDZmOGQ1NDE2YzRiZGU1Mjc2MTMxOTQ0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1RleHRDaGVja2VyLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1RleHRDaGVja2VyLmgKQEAgLTI3LDYgKzI3LDcgQEAKICNkZWZpbmUgVGV4dENoZWNrZXJfaAog
CiAjaW5jbHVkZSA8V2ViQ29yZS9FZGl0b3JDbGllbnQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Rl
eHRDaGVja2VyQ2xpZW50Lmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5o
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGll
bnQuaAppbmRleCA0MGJkOGM2OTMwZDA5OWEwN2ZjMDEwNjEzNDJhMDRlNjA0OTkyOGZhLi5jNGUw
ZDAyNWY3MmUwNmY1Y2VlZDk1MTA3MTlmN2U0NDMxM2Y5OWQzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50
LmgKQEAgLTI3LDEyICsyNywxMyBAQAogI2RlZmluZSBXZWJFZGl0b3JDbGllbnRfaAogCiAjaW5j
bHVkZSA8V2ViQ29yZS9FZGl0b3JDbGllbnQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1RleHRDaGVj
a2VyQ2xpZW50Lmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBXZWJQYWdlOwogCi1j
bGFzcyBXZWJFZGl0b3JDbGllbnQgOiBwdWJsaWMgV2ViQ29yZTo6RWRpdG9yQ2xpZW50IHsKK2Ns
YXNzIFdlYkVkaXRvckNsaWVudCA6IHB1YmxpYyBXZWJDb3JlOjpFZGl0b3JDbGllbnQsIHB1Ymxp
YyBXZWJDb3JlOjpUZXh0Q2hlY2tlckNsaWVudCB7CiBwdWJsaWM6CiAgICAgV2ViRWRpdG9yQ2xp
ZW50KFdlYlBhZ2UqIHBhZ2UpCiAgICAgICAgIDogbV9wYWdlKHBhZ2UpCkBAIC0xMjAsNiArMTIx
LDggQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgdG9nZ2xlQXV0b21hdGljU3BlbGxpbmdD
b3JyZWN0aW9uKCk7CiAjZW5kaWYKIAorICAgIFRleHRDaGVja2VyQ2xpZW50KiB0ZXh0Q2hlY2tl
cigpIHsgcmV0dXJuIHRoaXM7IH0KKwogICAgIHZpcnR1YWwgdm9pZCBpZ25vcmVXb3JkSW5TcGVs
bERvY3VtZW50KGNvbnN0IFN0cmluZyYpOwogICAgIHZpcnR1YWwgdm9pZCBsZWFybldvcmQoY29u
c3QgU3RyaW5nJik7CiAgICAgdmlydHVhbCB2b2lkIGNoZWNrU3BlbGxpbmdPZlN0cmluZyhjb25z
dCBVQ2hhciosIGludCBsZW5ndGgsIGludCogbWlzc3BlbGxpbmdMb2NhdGlvbiwgaW50KiBtaXNz
cGVsbGluZ0xlbmd0aCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>80314</attachid>
            <date>2011-01-27 03:35:25 -0800</date>
            <delta_ts>2011-02-13 21:42:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-53213-20110127203523.patch</filename>
            <type>text/plain</type>
            <size>45429</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA0OWI0YWY0YTA1YzNiMTExYWUyODgwMDRjODU5MDk3Nzc3MjJjY2E2Li45
YWUwMGRjZTRjOGQ2MmJkMjZmMGI5NmJiODFmMGFmYWY5M2FhNjUxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsNDQgQEAKKzIwMTEtMDEtMjYgIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5j
b20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVm
YWN0b3Jpbmc6IEV4dHJhY3QgVGV4dENoZWNrZXJDbGllbnQgZnJvbSBFZGl0b3JDbGllbnQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUzMjEzCisgICAg
ICAgIAorICAgICAgICBDcmVhdGVkIG5ldyBhYnN0cmFjdCBjbGFzcyBUZXh0Q2hlY2tlckNsaWVu
dC4gVGhlIGNsYXNzIGhhcworICAgICAgICBzcGVsbGNoZWNrIHJlbGF0ZWQgQVBJIHdoaWNoIGlz
IHNwbGl0dGVkIAorICAgICAgICBUaGlzIGlzIHRoZSBmaXJzdCBzdGVwIGZvciBzaGFyaW5nIHNw
ZWxsLWNoZWNraW5nIGNvZGViYXNlCisgICAgICAgIGJldHdlZW4gcG9ydHMuIEEgc3RhbmRhbG9u
ZSBUZXh0Q2hlY2tlckNsaWVudCBpbXBsZW1lbnRhdGlvbgorICAgICAgICBzaG91bGQgYmUgZG9u
ZSBpbiBmdXR1cmUgY2hhbmdlcy4KKworICAgICAgICBObyBuZXcgdGVzdHMuIE5vIGJlaGF2aW9y
YWwgY2hhbmdlLgorCisgICAgICAgICogR05VbWFrZWZpbGUuYW06CisgICAgICAgICogV2ViQ29y
ZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUucHJvOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9BY2Nlc3NpYmlsaXR5T2JqZWN0V3Jh
cHBlci5tbToKKyAgICAgICAgKEFYQXR0cmlidXRlU3RyaW5nU2V0U3BlbGxpbmcpOgorICAgICAg
ICAqIGVkaXRpbmcvRWRpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6aWdub3Jl
U3BlbGxpbmcpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpsZWFyblNwZWxsaW5nKToKKyAg
ICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6aXNTZWxlY3Rpb25NaXNzcGVsbGVkKToKKyAgICAgICAg
KFdlYkNvcmU6OkVkaXRvcjo6Z3Vlc3Nlc0Zvck1pc3NwZWxsZWRTZWxlY3Rpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6RWRpdG9yOjptYXJrQWxsTWlzc3BlbGxpbmdzQW5kQmFkR3JhbW1hckluUmFu
Z2VzKToKKyAgICAgICAgKiBlZGl0aW5nL1NwZWxsQ2hlY2tlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTcGVsbENoZWNrZXI6OnJlcXVlc3RDaGVja2luZ0Zvcik6CisgICAgICAgICogZWRpdGlu
Zy9UZXh0Q2hlY2tpbmdIZWxwZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dENoZWNraW5n
SGVscGVyOjpmaW5kRmlyc3RNaXNzcGVsbGluZyk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0Q2hl
Y2tpbmdIZWxwZXI6OmZpbmRGaXJzdE1pc3NwZWxsaW5nT3JCYWRHcmFtbWFyKToKKyAgICAgICAg
KFdlYkNvcmU6OlRleHRDaGVja2luZ0hlbHBlcjo6ZmluZEZpcnN0QmFkR3JhbW1hcik6CisgICAg
ICAgIChXZWJDb3JlOjpUZXh0Q2hlY2tpbmdIZWxwZXI6Omd1ZXNzZXNGb3JNaXNzcGVsbGVkT3JV
bmdyYW1tYXRpY2FsUmFuZ2UpOgorICAgICAgICAqIGxvYWRlci9FbXB0eUNsaWVudHMuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkVtcHR5RWRpdG9yQ2xpZW50Ojp0ZXh0Q2hlY2tlcik6CisgICAgICAg
ICogcGFnZS9FZGl0b3JDbGllbnQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L1RleHRDaGVj
a2VyQ2xpZW50Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6VGV4dENoZWNrZXJDbGllbnQ6
On5UZXh0Q2hlY2tlckNsaWVudCk6CisgICAgICAgIAogMjAxMS0wMS0yNiAgU2FtIFdlaW5pZyAg
PHNhbUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE1hY2llaiBTdGFjaG93aWFr
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0gYi9Tb3VyY2UvV2Vi
Q29yZS9HTlVtYWtlZmlsZS5hbQppbmRleCA5OWVhNDQxMDgwYjI4ZTNjYTZiM2U3MTcyZTEyN2Qy
Y2RkMjRiYTE1Li41MmQwMjZmYzc3MTYyYjZhOWZmZmIyMThmMDg5NDE2ZDJiNjI0YmRjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5hbQpAQCAtMjYzMSw2ICsyNjMxLDcgQEAgd2ViY29yZV9zb3VyY2VzICs9
IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRCb3VuZGFyaWVzLmNwcCBcCiAJ
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0Qm91bmRhcmllcy5oIFwKIAlTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmggXAorCVNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3RleHQvVGV4dENoZWNrZXJDbGllbnQuaCBcCiAJU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vdGV4dC9UZXh0Q29kZWMuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90
ZXh0L1RleHRDb2RlYy5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRDb2Rl
Y0xhdGluMS5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDRhNGUwNGM5ZTBiNDIzZjdmZjI0ZTIz
OWU4MjhkYzYwZjNkNjMwMTQuLjY3NzE1NDY5YTEyYWQ4YzAzMWEyOWQ5YWJmYTVjMTRlYzg3NmM4
MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTMzMzEsNiArMzMzMSw3IEBACiAgICAgICAgICAgICAn
cGxhdGZvcm0vdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5oJywKICAgICAgICAgICAgICdwbGF0Zm9y
bS90ZXh0L1RleHRCcmVha0l0ZXJhdG9ySUNVLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0v
dGV4dC9UZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVLmgnLAorICAgICAgICAgICAgJ3BsYXRm
b3JtL3RleHQvVGV4dENoZWNrZXJDbGllbnQuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vdGV4
dC9UZXh0Q29kZWMuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS90ZXh0L1RleHRDb2RlYy5o
JywKICAgICAgICAgICAgICdwbGF0Zm9ybS90ZXh0L1RleHRDb2RlY0lDVS5jcHAnLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LnBybwppbmRleCBlNjRhZTk3YTQ5NjI5YmI5OGNkZDI0NThlZDE2NGJhNTRkYjZlY2ZiLi5hOGJk
NGQ1OTU0YWRhYzgyNGZmMTFlNDQxZjgzMjljODBjZDkxYzlkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnBybworKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwpAQCAt
MjAzNyw2ICsyMDM3LDcgQEAgSEVBREVSUyArPSBcCiAgICAgcGFnZS9EcmFnQ29udHJvbGxlci5o
IFwKICAgICBwYWdlL0V2ZW50SGFuZGxlci5oIFwKICAgICBwYWdlL0V2ZW50U291cmNlLmggXAor
ICAgIHBhZ2UvRWRpdG9yQ2xpZW50LmggXAogICAgIHBhZ2UvRm9jdXNDb250cm9sbGVyLmggXAog
ICAgIHBhZ2UvRnJhbWUuaCBcCiAgICAgcGFnZS9GcmFtZVRyZWUuaCBcCkBAIC0yMTYxLDYgKzIx
NjIsNyBAQCBIRUFERVJTICs9IFwKICAgICBwbGF0Zm9ybS9LVVJMLmggXAogICAgIHBsYXRmb3Jt
L0xlbmd0aC5oIFwKICAgICBwbGF0Zm9ybS90ZXh0L0xpbmVFbmRpbmcuaCBcCisgICAgcGxhdGZv
cm0vdGV4dC9UZXh0Q2hlY2tlckNsaWVudC5oIFwKICAgICBwbGF0Zm9ybS9MaW5rSGFzaC5oIFwK
ICAgICBwbGF0Zm9ybS9Mb2dnaW5nLmggXAogICAgIHBsYXRmb3JtL0xhbmd1YWdlLmggXApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCBlMmNlZmEw
Y2ZiMzBjZjM1MDBhMjVhMTYyYWMzOGU1ZjZhYWUwZGRmLi40ODRmNWZkMmUwNzAwNGVjODQzMzU2
Zjg5ZGI0ZmRlMDA2MjhhMjMxIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZj
cHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9X
ZWJDb3JlLnZjcHJvagpAQCAtMzAyNjEsNiArMzAyNjEsMTAgQEAKIAkJCQkJPgogCQkJCTwvRmls
ZT4KIAkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXHRleHRcVGV4dENo
ZWNrZXJDbGllbnQuaCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQogCQkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXHRleHRcVGV4dENvZGVjSUNVLmNwcCIKIAkJCQkJPgogCQkJ
CQk8RmlsZUNvbmZpZ3VyYXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAyZjIyMWZiYzRjMzQ2MzQ3NDY2YzJmZjg5NmVmNTEz
ZTg2MDA0YzMzLi44NTAwNTk2YTFkNWUxNGVlMTc4MTRhMjUzOTlmNzRlMjQzNmU3YThiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBA
IC0zMTc0LDYgKzMxNzQsNyBAQAogCQlBNjIyQThGQzEyMkM0NEE2MDBBNzg1QjMgLyogQmluZGlu
Z1NlY3VyaXR5QmFzZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBNjIyQThGNjEyMkM0NEE2MDBBNzg1QjMgLyogQmluZGluZ1NlY3VyaXR5QmFzZS5j
cHAgKi87IH07CiAJCUE2MjJBOEZEMTIyQzQ0QTYwMEE3ODVCMyAvKiBCaW5kaW5nU2VjdXJpdHlC
YXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNjIy
QThGNzEyMkM0NEE2MDBBNzg1QjMgLyogQmluZGluZ1NlY3VyaXR5QmFzZS5oICovOyB9OwogCQlB
NjIyQThGRjEyMkM0NEE2MDBBNzg1QjMgLyogR2VuZXJpY0JpbmRpbmcuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE2MjJBOEY5MTIyQzQ0QTYwMEE3ODVC
MyAvKiBHZW5lcmljQmluZGluZy5oICovOyB9OworCQlBNzE1MUJEODEyRjE1NThGMDA1QTBGNjQg
LyogVGV4dENoZWNrZXJDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEE3MTUxQkQ3MTJGMTU1OEYwMDVBMEY2NCAvKiBUZXh0Q2hlY2tlckNsaWVu
dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE3
MTg3NjBFMEIyQTEyMDEwMEExNkVDRSAvKiBEcmFnQWN0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTcxODc2MEQwQjJBMTIwMTAwQTE2RUNFIC8q
IERyYWdBY3Rpb25zLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJQTcxODc4OTAwQjJEMDRBQzAwQTE2RUNFIC8qIERyYWdDb250cm9sbGVyTWFjLm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTcxODc4OEYw
QjJEMDRBQzAwQTE2RUNFIC8qIERyYWdDb250cm9sbGVyTWFjLm1tICovOyB9OwogCQlBNzNGOTVG
RTEyQzk3QkZFMDAzMUFBRjkgLyogUm91bmRlZEludFJlY3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTczRjk1RkMxMkM5N0JGRTAwMzFBQUY5IC8q
IFJvdW5kZWRJbnRSZWN0LmNwcCAqLzsgfTsKQEAgLTk1NjcsNiArOTU2OCw3IEBACiAJCUE2MjJB
OEY2MTIyQzQ0QTYwMEE3ODVCMyAvKiBCaW5kaW5nU2VjdXJpdHlCYXNlLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEJpbmRpbmdTZWN1cml0eUJhc2UuY3BwOyBwYXRo
ID0gZ2VuZXJpYy9CaW5kaW5nU2VjdXJpdHlCYXNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQTYyMkE4RjcxMjJDNDRBNjAwQTc4NUIzIC8qIEJpbmRpbmdTZWN1cml0eUJhc2Uu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQmluZGluZ1NlY3VyaXR5QmFzZS5o
OyBwYXRoID0gZ2VuZXJpYy9CaW5kaW5nU2VjdXJpdHlCYXNlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUE2MjJBOEY5MTIyQzQ0QTYwMEE3ODVCMyAvKiBHZW5lcmljQmluZGluZy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBHZW5lcmljQmluZGluZy5oOyBwYXRo
ID0gZ2VuZXJpYy9HZW5lcmljQmluZGluZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlBNzE1MUJENzEyRjE1NThGMDA1QTBGNjQgLyogVGV4dENoZWNrZXJDbGllbnQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGV4dENoZWNrZXJDbGllbnQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTcxODc2MEQwQjJBMTIwMTAwQTE2RUNFIC8qIERyYWdBY3Rp
b25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERyYWdBY3Rpb25zLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3MTg3ODhGMEIyRDA0QUMwMEExNkVDRSAvKiBE
cmFnQ29udHJvbGxlck1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IERyYWdDb250cm9sbGVyTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlB
NzFBNzBDOTExQUZCMDIwMDA5ODlENkQgLyogSFRNTE1ldGVyRWxlbWVudC5pZGwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gSFRNTE1ldGVyRWxlbWVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC0xNzU4NCw2ICsxNzU4Niw3IEBACiAJCQkJQjJDM0RBMDYwRDAwNkMxRDAwRUY2
RjI2IC8qIFRleHRCcmVha0l0ZXJhdG9yLmggKi8sCiAJCQkJQjJDM0RBMDcwRDAwNkMxRDAwRUY2
RjI2IC8qIFRleHRCcmVha0l0ZXJhdG9ySUNVLmNwcCAqLywKIAkJCQlCMkMzREEwODBEMDA2QzFE
MDBFRjZGMjYgLyogVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVS5oICovLAorCQkJCUE3MTUx
QkQ3MTJGMTU1OEYwMDVBMEY2NCAvKiBUZXh0Q2hlY2tlckNsaWVudC5oICovLAogCQkJCUIyQzNE
QTA5MEQwMDZDMUQwMEVGNkYyNiAvKiBUZXh0Q29kZWMuY3BwICovLAogCQkJCUIyQzNEQTBBMEQw
MDZDMUQwMEVGNkYyNiAvKiBUZXh0Q29kZWMuaCAqLywKIAkJCQlCMkMzREEwQjBEMDA2QzFEMDBF
RjZGMjYgLyogVGV4dENvZGVjSUNVLmNwcCAqLywKQEAgLTIyNDQxLDYgKzIyNDQ0LDcgQEAKIAkJ
CQk0RjJEMjA1NDEyRUFFN0IzMDA1QzI4NzQgLyogSW5zcGVjdG9yQWdlbnQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJDOTU4NUUxMTJGMDk4OTUwMDc1NTgyMSAvKiBQbGF0Zm9ybUdlc3R1cmVFdmVu
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTEzNEY1QUIxMkVFMzQzRjAwNEVDNThEIC8qIEludFJl
Y3RIYXNoLmggaW4gSGVhZGVycyAqLywKKwkJCQlBNzE1MUJEODEyRjE1NThGMDA1QTBGNjQgLyog
VGV4dENoZWNrZXJDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JE
ZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIubW0gYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBl
ci5tbQppbmRleCBjMmUzNzI0ZWQwZTk0NTFlOTI0MWM5MTEzNzEwMTFlNjM1MDdiNzI1Li4zNmEz
NjFiN2Y0N2UxNDBhMjRlZjAyNDM3NTgzZGVlYzAzNzc2OTlmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlci5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BY2Nlc3NpYmlsaXR5T2JqZWN0
V3JhcHBlci5tbQpAQCAtNTgsNiArNTgsNyBAQAogI2ltcG9ydCAiU2Nyb2xsVmlldy5oIgogI2lt
cG9ydCAiU2VsZWN0aW9uQ29udHJvbGxlci5oIgogI2ltcG9ydCAiU2ltcGxlRm9udERhdGEuaCIK
KyNpbXBvcnQgIlRleHRDaGVja2VyQ2xpZW50LmgiCiAjaW1wb3J0ICJUZXh0SXRlcmF0b3IuaCIK
ICNpbXBvcnQgIldlYkNvcmVGcmFtZVZpZXcuaCIKICNpbXBvcnQgIldlYkNvcmVPYmpDRXh0cmFz
LmgiCkBAIC00NDIsNyArNDQzLDcgQEAgc3RhdGljIHZvaWQgQVhBdHRyaWJ1dGVTdHJpbmdTZXRT
cGVsbGluZyhOU011dGFibGVBdHRyaWJ1dGVkU3RyaW5nKiBhdHRyU3RyaW5nLAogCiAgICAgICAg
IGludCBtaXNzcGVsbGluZ0xvY2F0aW9uID0gLTE7CiAgICAgICAgIGludCBtaXNzcGVsbGluZ0xl
bmd0aCA9IDA7Ci0gICAgICAgIGNsaWVudC0+Y2hlY2tTcGVsbGluZ09mU3RyaW5nKGNoYXJEYXRh
LCBjaGFyTGVuZ3RoLCAmbWlzc3BlbGxpbmdMb2NhdGlvbiwgJm1pc3NwZWxsaW5nTGVuZ3RoKTsK
KyAgICAgICAgY2xpZW50LT50ZXh0Q2hlY2tlcigpLT5jaGVja1NwZWxsaW5nT2ZTdHJpbmcoY2hh
ckRhdGEsIGNoYXJMZW5ndGgsICZtaXNzcGVsbGluZ0xvY2F0aW9uLCAmbWlzc3BlbGxpbmdMZW5n
dGgpOwogICAgICAgICBpZiAobWlzc3BlbGxpbmdMb2NhdGlvbiA9PSAtMSB8fCAhbWlzc3BlbGxp
bmdMZW5ndGgpCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Vk
aXRvci5jcHAKaW5kZXggM2FjZWMyN2EzODM0NTVjNTViMzlhMzA5OWI0ZGM3MjA0ZWYyZjA4NS4u
ZmU3NGFkNjY3ZDUxNjUzNDgwOTMwYTZmZGMyMDA2YjAzYTkzMGI0YyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRWRpdG9yLmNwcApAQCAtNjUsNiArNjUsNyBAQAogI2luY2x1ZGUgIk5vZGVMaXN0LmgiCiAj
aW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBhc3RlYm9hcmQuaCIKKyNpbmNsdWRlICJUZXh0
Q2hlY2tlckNsaWVudC5oIgogI2luY2x1ZGUgIlRleHRDaGVja2luZ0hlbHBlci5oIgogI2luY2x1
ZGUgIlJlbW92ZUZvcm1hdENvbW1hbmQuaCIKICNpbmNsdWRlICJSZW5kZXJCbG9jay5oIgpAQCAt
MTczNyw3ICsxNzM4LDcgQEAgdm9pZCBFZGl0b3I6Omlnbm9yZVNwZWxsaW5nKCkKIAogICAgIFN0
cmluZyB0ZXh0ID0gc2VsZWN0ZWRUZXh0KCk7CiAgICAgQVNTRVJUKHRleHQubGVuZ3RoKCkpOwot
ICAgIGNsaWVudCgpLT5pZ25vcmVXb3JkSW5TcGVsbERvY3VtZW50KHRleHQpOworICAgIGNsaWVu
dCgpLT50ZXh0Q2hlY2tlcigpLT5pZ25vcmVXb3JkSW5TcGVsbERvY3VtZW50KHRleHQpOwogfQog
CiB2b2lkIEVkaXRvcjo6bGVhcm5TcGVsbGluZygpCkBAIC0xNzUwLDcgKzE3NTEsNyBAQCB2b2lk
IEVkaXRvcjo6bGVhcm5TcGVsbGluZygpCiAKICAgICBTdHJpbmcgdGV4dCA9IHNlbGVjdGVkVGV4
dCgpOwogICAgIEFTU0VSVCh0ZXh0Lmxlbmd0aCgpKTsKLSAgICBjbGllbnQoKS0+bGVhcm5Xb3Jk
KHRleHQpOworICAgIGNsaWVudCgpLT50ZXh0Q2hlY2tlcigpLT5sZWFybldvcmQodGV4dCk7CiB9
CiAKIHZvaWQgRWRpdG9yOjphZHZhbmNlVG9OZXh0TWlzc3BlbGxpbmcoYm9vbCBzdGFydEJlZm9y
ZVNlbGVjdGlvbikKQEAgLTE5NDAsNyArMTk0MSw3IEBAIGJvb2wgRWRpdG9yOjppc1NlbGVjdGlv
bk1pc3NwZWxsZWQoKQogICAgIAogICAgIGludCBtaXNzcGVsbGluZ0xvY2F0aW9uID0gLTE7CiAg
ICAgaW50IG1pc3NwZWxsaW5nTGVuZ3RoID0gMDsKLSAgICBjbGllbnQoKS0+Y2hlY2tTcGVsbGlu
Z09mU3RyaW5nKHNlbGVjdGVkU3RyaW5nLmNoYXJhY3RlcnMoKSwgbGVuZ3RoLCAmbWlzc3BlbGxp
bmdMb2NhdGlvbiwgJm1pc3NwZWxsaW5nTGVuZ3RoKTsKKyAgICBjbGllbnQoKS0+dGV4dENoZWNr
ZXIoKS0+Y2hlY2tTcGVsbGluZ09mU3RyaW5nKHNlbGVjdGVkU3RyaW5nLmNoYXJhY3RlcnMoKSwg
bGVuZ3RoLCAmbWlzc3BlbGxpbmdMb2NhdGlvbiwgJm1pc3NwZWxsaW5nTGVuZ3RoKTsKICAgICAK
ICAgICAvLyBUaGUgc2VsZWN0aW9uIG9ubHkgY291bnRzIGFzIG1pc3NwZWxsZWQgaWYgdGhlIHNl
bGVjdGVkIHRleHQgaXMgZXhhY3RseSBvbmUgbWlzc3BlbGxlZCB3b3JkCiAgICAgaWYgKG1pc3Nw
ZWxsaW5nTGVuZ3RoICE9IGxlbmd0aCkKQEAgLTE5ODQsNyArMTk4NSw3IEBAIFZlY3RvcjxTdHJp
bmc+IEVkaXRvcjo6Z3Vlc3Nlc0Zvck1pc3NwZWxsZWRTZWxlY3Rpb24oKQogCiAgICAgVmVjdG9y
PFN0cmluZz4gZ3Vlc3NlczsKICAgICBpZiAoY2xpZW50KCkpCi0gICAgICAgIGNsaWVudCgpLT5n
ZXRHdWVzc2VzRm9yV29yZChzZWxlY3RlZFN0cmluZywgU3RyaW5nKCksIGd1ZXNzZXMpOworICAg
ICAgICBjbGllbnQoKS0+dGV4dENoZWNrZXIoKS0+Z2V0R3Vlc3Nlc0ZvcldvcmQoc2VsZWN0ZWRT
dHJpbmcsIFN0cmluZygpLCBndWVzc2VzKTsKICAgICByZXR1cm4gZ3Vlc3NlczsKIH0KIApAQCAt
MjExNiw3ICsyMTE3LDcgQEAgdm9pZCBFZGl0b3I6Om1hcmtNaXNzcGVsbGluZ3NBZnRlclR5cGlu
Z1RvV29yZChjb25zdCBWaXNpYmxlUG9zaXRpb24gJndvcmRTdGFydCwKICAgICAKICAgICAvLyBH
ZXQgdGhlIG1pc3NwZWxsZWQgd29yZC4KICAgICBjb25zdCBTdHJpbmcgbWlzc3BlbGxlZFdvcmQg
PSBwbGFpblRleHQobWlzc3BlbGxpbmdSYW5nZS5nZXQoKSk7Ci0gICAgU3RyaW5nIGF1dG9jb3Jy
ZWN0ZWRTdHJpbmcgPSBjbGllbnQoKS0+Z2V0QXV0b0NvcnJlY3RTdWdnZXN0aW9uRm9yTWlzc3Bl
bGxlZFdvcmQobWlzc3BlbGxlZFdvcmQpOworICAgIFN0cmluZyBhdXRvY29ycmVjdGVkU3RyaW5n
ID0gY2xpZW50KCktPnRleHRDaGVja2VyKCktPmdldEF1dG9Db3JyZWN0U3VnZ2VzdGlvbkZvck1p
c3NwZWxsZWRXb3JkKG1pc3NwZWxsZWRXb3JkKTsKIAogICAgIC8vIElmIGF1dG9jb3JyZWN0ZWQg
d29yZCBpcyBub24gZW1wdHksIHJlcGxhY2UgdGhlIG1pc3NwZWxsZWQgd29yZCBieSB0aGlzIHdv
cmQuCiAgICAgaWYgKCFhdXRvY29ycmVjdGVkU3RyaW5nLmlzRW1wdHkoKSkgewpAQCAtMjI4NCw3
ICsyMjg1LDcgQEAgdm9pZCBFZGl0b3I6Om1hcmtBbGxNaXNzcGVsbGluZ3NBbmRCYWRHcmFtbWFy
SW5SYW5nZXMoVGV4dENoZWNraW5nT3B0aW9ucyB0ZXh0Q2gKICAgICAgICAgaWYgKHNob3VsZE1h
cmtTcGVsbGluZyAmJiBpc0F1dG9tYXRpY1NwZWxsaW5nQ29ycmVjdGlvbkVuYWJsZWQoKSkKICAg
ICAgICAgICAgIGNoZWNraW5nVHlwZXMgfD0gVGV4dENoZWNraW5nVHlwZUNvcnJlY3Rpb247CiAg
ICAgfQotICAgIGNsaWVudCgpLT5jaGVja1RleHRPZlBhcmFncmFwaChwYXJhZ3JhcGgudGV4dENo
YXJhY3RlcnMoKSwgcGFyYWdyYXBoLnRleHRMZW5ndGgoKSwgY2hlY2tpbmdUeXBlcywgcmVzdWx0
cyk7CisgICAgY2xpZW50KCktPnRleHRDaGVja2VyKCktPmNoZWNrVGV4dE9mUGFyYWdyYXBoKHBh
cmFncmFwaC50ZXh0Q2hhcmFjdGVycygpLCBwYXJhZ3JhcGgudGV4dExlbmd0aCgpLCBjaGVja2lu
Z1R5cGVzLCByZXN1bHRzKTsKIAogI2lmIFNVUFBPUlRfQVVUT0NPUlJFQ1RJT05fUEFORUwKICAg
ICAvLyBJZiB0aGlzIGNoZWNraW5nIGlzIG9ubHkgZm9yIHNob3dpbmcgY29ycmVjdGlvbiBwYW5l
bCwgd2Ugc2hvdWxkbid0IGJvdGhlciB0byBtYXJrIG1pc3NwZWxsaW5ncy4KQEAgLTI0OTMsNyAr
MjQ5NCw3IEBAIHZvaWQgRWRpdG9yOjpjb3JyZWN0aW9uUGFuZWxUaW1lckZpcmVkKFRpbWVyPEVk
aXRvcj4qKQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIFN0cmluZyBwYXJhZ3JhcGhUZXh0
ID0gcGxhaW5UZXh0KFRleHRDaGVja2luZ1BhcmFncmFwaChtX2NvcnJlY3Rpb25QYW5lbEluZm8u
cmFuZ2VUb0JlUmVwbGFjZWQpLnBhcmFncmFwaFJhbmdlKCkuZ2V0KCkpOwogICAgICAgICBWZWN0
b3I8U3RyaW5nPiBzdWdnZXN0aW9uczsKLSAgICAgICAgY2xpZW50KCktPmdldEd1ZXNzZXNGb3JX
b3JkKG1fY29ycmVjdGlvblBhbmVsSW5mby5yZXBsYWNlZFN0cmluZywgcGFyYWdyYXBoVGV4dCwg
c3VnZ2VzdGlvbnMpOworICAgICAgICBjbGllbnQoKS0+dGV4dENoZWNrZXIoKS0+Z2V0R3Vlc3Nl
c0ZvcldvcmQobV9jb3JyZWN0aW9uUGFuZWxJbmZvLnJlcGxhY2VkU3RyaW5nLCBwYXJhZ3JhcGhU
ZXh0LCBzdWdnZXN0aW9ucyk7CiAgICAgICAgIGlmIChzdWdnZXN0aW9ucy5pc0VtcHR5KCkpCiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgU3RyaW5nIHRvcFN1Z2dlc3Rpb24gPSBzdWdnZXN0
aW9ucy5maXJzdCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGVsbENo
ZWNrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGVsbENoZWNrZXIuY3BwCmluZGV4
IGYxNGE3NGQ2NzY0M2YyNzg3YzQwZTQxNzgwYjdjNzcxYTEzOThhMDMuLmExMTNkMDJmMjBhMjA3
YjFkYWMzNDQ1NTQzNzA2ZjJmMjEyMDk2M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvU3BlbGxDaGVja2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwZWxs
Q2hlY2tlci5jcHAKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJSYW5nZS5oIgogI2luY2x1
ZGUgIlJlbmRlck9iamVjdC5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCisjaW5jbHVkZSAiVGV4
dENoZWNrZXJDbGllbnQuaCIKICNpbmNsdWRlICJUZXh0SXRlcmF0b3IuaCIKICNpbmNsdWRlICJo
dG1sZWRpdGluZy5oIgogCkBAIC0xMDUsNyArMTA2LDcgQEAgdm9pZCBTcGVsbENoZWNrZXI6OnJl
cXVlc3RDaGVja2luZ0ZvcihOb2RlKiBub2RlKQogCiAgICAgaWYgKCFpbml0UmVxdWVzdChub2Rl
KSkKICAgICAgICAgcmV0dXJuOwotICAgIG1fY2xpZW50LT5yZXF1ZXN0Q2hlY2tpbmdPZlN0cmlu
Zyh0aGlzLCBtX3JlcXVlc3RTZXF1ZW5jZSwgbV9yZXF1ZXN0VGV4dCk7CisgICAgbV9jbGllbnQt
PnRleHRDaGVja2VyKCktPnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKHRoaXMsIG1fcmVxdWVzdFNl
cXVlbmNlLCBtX3JlcXVlc3RUZXh0KTsKIH0KIAogc3RhdGljIGJvb2wgZm9yd2FyZEl0ZXJhdG9y
KFBvc2l0aW9uSXRlcmF0b3ImIGl0ZXJhdG9yLCBpbnQgZGlzdGFuY2UpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRDaGVja2luZ0hlbHBlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1RleHRDaGVja2luZ0hlbHBlci5jcHAKaW5kZXggYjQ0MjlhNjQ2ZmJjNmJm
NjkyMzgzMTg4ZWRlMTY3MjI3MWJlM2FhYS4uZTU1NTNmZDEwMjkyZmU1ODdmMGUyMzMwZDE2NWU4
ZTE3NzI4ZTQxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0Q2hlY2tp
bmdIZWxwZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dENoZWNraW5nSGVs
cGVyLmNwcApAQCAtMjksNiArMjksNyBAQAogCiAjaW5jbHVkZSAiRG9jdW1lbnRNYXJrZXJDb250
cm9sbGVyLmgiCiAjaW5jbHVkZSAiUmFuZ2UuaCIKKyNpbmNsdWRlICJUZXh0Q2hlY2tlckNsaWVu
dC5oIgogI2luY2x1ZGUgIlRleHRJdGVyYXRvci5oIgogI2luY2x1ZGUgIlZpc2libGVQb3NpdGlv
bi5oIgogI2luY2x1ZGUgInZpc2libGVfdW5pdHMuaCIKQEAgLTE3OSw3ICsxODAsNyBAQCBTdHJp
bmcgVGV4dENoZWNraW5nSGVscGVyOjpmaW5kRmlyc3RNaXNzcGVsbGluZyhpbnQmIGZpcnN0TWlz
c3BlbGxpbmdPZmZzZXQsIGJvbwogICAgICAgICAgICAgCiAgICAgICAgICAgICBpbnQgbWlzc3Bl
bGxpbmdMb2NhdGlvbiA9IC0xOwogICAgICAgICAgICAgaW50IG1pc3NwZWxsaW5nTGVuZ3RoID0g
MDsKLSAgICAgICAgICAgIG1fY2xpZW50LT5jaGVja1NwZWxsaW5nT2ZTdHJpbmcoY2hhcnMsIGxl
biwgJm1pc3NwZWxsaW5nTG9jYXRpb24sICZtaXNzcGVsbGluZ0xlbmd0aCk7CisgICAgICAgICAg
ICBtX2NsaWVudC0+dGV4dENoZWNrZXIoKS0+Y2hlY2tTcGVsbGluZ09mU3RyaW5nKGNoYXJzLCBs
ZW4sICZtaXNzcGVsbGluZ0xvY2F0aW9uLCAmbWlzc3BlbGxpbmdMZW5ndGgpOwogCiAgICAgICAg
ICAgICAvLyA1NDkwNjI3IHNob3dzIHRoYXQgdGhlcmUgd2FzIHNvbWUgY29kZSBwYXRoIGhlcmUg
d2hlcmUgdGhlIFN0cmluZyBjb25zdHJ1Y3RvciBiZWxvdyBjcmFzaGVzLgogICAgICAgICAgICAg
Ly8gV2UgZG9uJ3Qga25vdyBleGFjdGx5IHdoYXQgY29tYmluYXRpb24gb2YgYmFkIGlucHV0IGNh
dXNlZCB0aGlzLCBzbyB3ZSdyZSBtYWtpbmcgdGhpcyBtdWNoCkBAIC0yNzQsNyArMjc1LDcgQEAg
U3RyaW5nIFRleHRDaGVja2luZ0hlbHBlcjo6ZmluZEZpcnN0TWlzc3BlbGxpbmdPckJhZEdyYW1t
YXIoYm9vbCBjaGVja0dyYW1tYXIsIGIKICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAg
ICBWZWN0b3I8VGV4dENoZWNraW5nUmVzdWx0PiByZXN1bHRzOwogICAgICAgICAgICAgICAgIHVp
bnQ2NF90IGNoZWNraW5nVHlwZXMgPSBjaGVja0dyYW1tYXIgPyAoVGV4dENoZWNraW5nVHlwZVNw
ZWxsaW5nIHwgVGV4dENoZWNraW5nVHlwZUdyYW1tYXIpIDogVGV4dENoZWNraW5nVHlwZVNwZWxs
aW5nOwotICAgICAgICAgICAgICAgIG1fY2xpZW50LT5jaGVja1RleHRPZlBhcmFncmFwaChwYXJh
Z3JhcGhTdHJpbmcuY2hhcmFjdGVycygpLCBwYXJhZ3JhcGhTdHJpbmcubGVuZ3RoKCksIGNoZWNr
aW5nVHlwZXMsIHJlc3VsdHMpOworICAgICAgICAgICAgICAgIG1fY2xpZW50LT50ZXh0Q2hlY2tl
cigpLT5jaGVja1RleHRPZlBhcmFncmFwaChwYXJhZ3JhcGhTdHJpbmcuY2hhcmFjdGVycygpLCBw
YXJhZ3JhcGhTdHJpbmcubGVuZ3RoKCksIGNoZWNraW5nVHlwZXMsIHJlc3VsdHMpOwogICAgICAg
ICAgICAgICAgIAogICAgICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCByZXN1
bHRzLnNpemUoKTsgaSsrKSB7CiAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFRleHRDaGVja2lu
Z1Jlc3VsdCogcmVzdWx0ID0gJnJlc3VsdHNbaV07CkBAIC00MjIsNyArNDIzLDcgQEAgU3RyaW5n
IFRleHRDaGVja2luZ0hlbHBlcjo6ZmluZEZpcnN0QmFkR3JhbW1hcihHcmFtbWFyRGV0YWlsJiBv
dXRHcmFtbWFyRGV0YWlsLAogICAgICAgICBWZWN0b3I8R3JhbW1hckRldGFpbD4gZ3JhbW1hckRl
dGFpbHM7CiAgICAgICAgIGludCBiYWRHcmFtbWFyUGhyYXNlTG9jYXRpb24gPSAtMTsKICAgICAg
ICAgaW50IGJhZEdyYW1tYXJQaHJhc2VMZW5ndGggPSAwOwotICAgICAgICBtX2NsaWVudC0+Y2hl
Y2tHcmFtbWFyT2ZTdHJpbmcocGFyYWdyYXBoLnRleHRDaGFyYWN0ZXJzKCkgKyBzdGFydE9mZnNl
dCwgcGFyYWdyYXBoLnRleHRMZW5ndGgoKSAtIHN0YXJ0T2Zmc2V0LCBncmFtbWFyRGV0YWlscywg
JmJhZEdyYW1tYXJQaHJhc2VMb2NhdGlvbiwgJmJhZEdyYW1tYXJQaHJhc2VMZW5ndGgpOworICAg
ICAgICBtX2NsaWVudC0+dGV4dENoZWNrZXIoKS0+Y2hlY2tHcmFtbWFyT2ZTdHJpbmcocGFyYWdy
YXBoLnRleHRDaGFyYWN0ZXJzKCkgKyBzdGFydE9mZnNldCwgcGFyYWdyYXBoLnRleHRMZW5ndGgo
KSAtIHN0YXJ0T2Zmc2V0LCBncmFtbWFyRGV0YWlscywgJmJhZEdyYW1tYXJQaHJhc2VMb2NhdGlv
biwgJmJhZEdyYW1tYXJQaHJhc2VMZW5ndGgpOwogICAgICAgICAKICAgICAgICAgaWYgKCFiYWRH
cmFtbWFyUGhyYXNlTGVuZ3RoKSB7CiAgICAgICAgICAgICBBU1NFUlQoYmFkR3JhbW1hclBocmFz
ZUxvY2F0aW9uID09IC0xKTsKQEAgLTUzNSwxNCArNTM2LDE0IEBAIFZlY3RvcjxTdHJpbmc+IFRl
eHRDaGVja2luZ0hlbHBlcjo6Z3Vlc3Nlc0Zvck1pc3NwZWxsZWRPclVuZ3JhbW1hdGljYWxSYW5n
ZShib29sCiAKICAgICBWZWN0b3I8VGV4dENoZWNraW5nUmVzdWx0PiByZXN1bHRzOwogICAgIHVp
bnQ2NF90IGNoZWNraW5nVHlwZXMgPSBjaGVja0dyYW1tYXIgPyAoVGV4dENoZWNraW5nVHlwZVNw
ZWxsaW5nIHwgVGV4dENoZWNraW5nVHlwZUdyYW1tYXIpIDogVGV4dENoZWNraW5nVHlwZVNwZWxs
aW5nOwotICAgIG1fY2xpZW50LT5jaGVja1RleHRPZlBhcmFncmFwaChwYXJhZ3JhcGgudGV4dENo
YXJhY3RlcnMoKSwgcGFyYWdyYXBoLnRleHRMZW5ndGgoKSwgY2hlY2tpbmdUeXBlcywgcmVzdWx0
cyk7CisgICAgbV9jbGllbnQtPnRleHRDaGVja2VyKCktPmNoZWNrVGV4dE9mUGFyYWdyYXBoKHBh
cmFncmFwaC50ZXh0Q2hhcmFjdGVycygpLCBwYXJhZ3JhcGgudGV4dExlbmd0aCgpLCBjaGVja2lu
Z1R5cGVzLCByZXN1bHRzKTsKICAgICAKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcmVz
dWx0cy5zaXplKCk7IGkrKykgewogICAgICAgICBjb25zdCBUZXh0Q2hlY2tpbmdSZXN1bHQqIHJl
c3VsdCA9ICZyZXN1bHRzW2ldOwogICAgICAgICBpZiAocmVzdWx0LT50eXBlID09IFRleHRDaGVj
a2luZ1R5cGVTcGVsbGluZyAmJiBwYXJhZ3JhcGguY2hlY2tpbmdSYW5nZU1hdGNoZXMocmVzdWx0
LT5sb2NhdGlvbiwgcmVzdWx0LT5sZW5ndGgpKSB7CiAgICAgICAgICAgICBTdHJpbmcgbWlzc3Bl
bGxlZFdvcmQgPSBwYXJhZ3JhcGguY2hlY2tpbmdTdWJzdHJpbmcoKTsKICAgICAgICAgICAgIEFT
U0VSVChtaXNzcGVsbGVkV29yZC5sZW5ndGgoKSk7Ci0gICAgICAgICAgICBtX2NsaWVudC0+Z2V0
R3Vlc3Nlc0ZvcldvcmQobWlzc3BlbGxlZFdvcmQsIFN0cmluZygpLCBndWVzc2VzKTsKKyAgICAg
ICAgICAgIG1fY2xpZW50LT50ZXh0Q2hlY2tlcigpLT5nZXRHdWVzc2VzRm9yV29yZChtaXNzcGVs
bGVkV29yZCwgU3RyaW5nKCksIGd1ZXNzZXMpOwogICAgICAgICAgICAgbV9jbGllbnQtPnVwZGF0
ZVNwZWxsaW5nVUlXaXRoTWlzc3BlbGxlZFdvcmQobWlzc3BlbGxlZFdvcmQpOwogICAgICAgICAg
ICAgbWlzc3BlbGxlZCA9IHRydWU7CiAgICAgICAgICAgICByZXR1cm4gZ3Vlc3NlczsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAppbmRleCAzZTU4YzdhZmJiY2IzZGUwNTY3YjY4OTIy
ODJjZDc2YTQ0NDY2ZGUxLi40NWQxMGY1NTM1MDIyNGUzNTIzNjNlNzFiYTczNmJlZTA1YjllZTI1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCkBAIC0zNyw2ICszNyw3IEBACiAj
aW5jbHVkZSAiRHJhZ0NsaWVudC5oIgogI2luY2x1ZGUgIkVkaXRDb21tYW5kLmgiCiAjaW5jbHVk
ZSAiRWRpdG9yQ2xpZW50LmgiCisjaW5jbHVkZSAiVGV4dENoZWNrZXJDbGllbnQuaCIKICNpbmNs
dWRlICJGbG9hdFJlY3QuaCIKICNpbmNsdWRlICJGb2N1c0RpcmVjdGlvbi5oIgogI2luY2x1ZGUg
IkZyYW1lTG9hZGVyQ2xpZW50LmgiCkBAIC0zOTIsNyArMzkzLDcgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgUGFzc1JlZlB0cjxGcmFtZU5ldHdvcmtpbmdDb250ZXh0PiBjcmVhdGVOZXR3b3JraW5n
Q29udGV4dCgpIHsgcmV0dXJuIFBhc3NSZWZQdHI8RnJhbWVOZXR3b3JraW5nQ29udGV4dD4oKTsg
fQogfTsKIAotY2xhc3MgRW1wdHlFZGl0b3JDbGllbnQgOiBwdWJsaWMgRWRpdG9yQ2xpZW50IHsK
K2NsYXNzIEVtcHR5RWRpdG9yQ2xpZW50IDogcHVibGljIEVkaXRvckNsaWVudCwgcHVibGljIFRl
eHRDaGVja2VyQ2xpZW50IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShFbXB0eUVkaXRvckNs
aWVudCk7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIEVtcHR5RWRpdG9y
Q2xpZW50KCkgeyB9CkBAIC00ODQsNiArNDg1LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9v
bCBpc0F1dG9tYXRpY1NwZWxsaW5nQ29ycmVjdGlvbkVuYWJsZWQoKSB7IHJldHVybiBmYWxzZTsg
fQogICAgIHZpcnR1YWwgdm9pZCB0b2dnbGVBdXRvbWF0aWNTcGVsbGluZ0NvcnJlY3Rpb24oKSB7
IH0KICNlbmRpZgorICAgIFRleHRDaGVja2VyQ2xpZW50KiB0ZXh0Q2hlY2tlcigpIHsgcmV0dXJu
IHRoaXM7IH0KICAgICB2aXJ0dWFsIHZvaWQgaWdub3JlV29yZEluU3BlbGxEb2N1bWVudChjb25z
dCBTdHJpbmcmKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgbGVhcm5Xb3JkKGNvbnN0IFN0cmluZyYp
IHsgfQogICAgIHZpcnR1YWwgdm9pZCBjaGVja1NwZWxsaW5nT2ZTdHJpbmcoY29uc3QgVUNoYXIq
LCBpbnQsIGludCosIGludCopIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9F
ZGl0b3JDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRWRpdG9yQ2xpZW50LmgKaW5kZXgg
NzFiYTNkZGY5NTI1OTgxMmQ1NjI3Y2UxMjE1YTI3YzM3OTMwZTI5YS4uZDJiNGRhNmRlOTgwNTAy
MWI0MjU5MTI4YzVmNTVlMTY3YTA1ZDc2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9FZGl0b3JDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0VkaXRvckNsaWVudC5o
CkBAIC01OCw2ICs1OCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEFyY2hpdmVSZXNv
dXJjZTsKIGNsYXNzIENTU1N0eWxlRGVjbGFyYXRpb247CiBjbGFzcyBEb2N1bWVudEZyYWdtZW50
OworY2xhc3MgR3JhbW1hckRldGFpbDsKIGNsYXNzIEVkaXRDb21tYW5kOwogY2xhc3MgRWRpdG9y
OwogY2xhc3MgRWxlbWVudDsKQEAgLTY5LDMyICs3MCw4IEBAIGNsYXNzIFJhbmdlOwogY2xhc3Mg
U3BlbGxDaGVja2VyOwogY2xhc3MgVmlzaWJsZVNlbGVjdGlvbjsKIGNsYXNzIFZpc2libGVQb3Np
dGlvbjsKK2NsYXNzIFRleHRDaGVja2VyQ2xpZW50OwogCi1zdHJ1Y3QgR3JhbW1hckRldGFpbCB7
Ci0gICAgaW50IGxvY2F0aW9uOwotICAgIGludCBsZW5ndGg7Ci0gICAgVmVjdG9yPFN0cmluZz4g
Z3Vlc3NlczsKLSAgICBTdHJpbmcgdXNlckRlc2NyaXB0aW9uOwotfTsKLQotZW51bSBUZXh0Q2hl
Y2tpbmdUeXBlIHsKLSAgICBUZXh0Q2hlY2tpbmdUeXBlU3BlbGxpbmcgICAgPSAxIDw8IDEsCi0g
ICAgVGV4dENoZWNraW5nVHlwZUdyYW1tYXIgICAgID0gMSA8PCAyLAotICAgIFRleHRDaGVja2lu
Z1R5cGVMaW5rICAgICAgICA9IDEgPDwgNSwKLSAgICBUZXh0Q2hlY2tpbmdUeXBlUXVvdGUgICAg
ICAgPSAxIDw8IDYsCi0gICAgVGV4dENoZWNraW5nVHlwZURhc2ggICAgICAgID0gMSA8PCA3LAot
ICAgIFRleHRDaGVja2luZ1R5cGVSZXBsYWNlbWVudCA9IDEgPDwgOCwKLSAgICBUZXh0Q2hlY2tp
bmdUeXBlQ29ycmVjdGlvbiAgPSAxIDw8IDkKLX07Ci0KLXN0cnVjdCBUZXh0Q2hlY2tpbmdSZXN1
bHQgewotICAgIFRleHRDaGVja2luZ1R5cGUgdHlwZTsKLSAgICBpbnQgbG9jYXRpb247Ci0gICAg
aW50IGxlbmd0aDsKLSAgICBWZWN0b3I8R3JhbW1hckRldGFpbD4gZGV0YWlsczsKLSAgICBTdHJp
bmcgcmVwbGFjZW1lbnQ7Ci19OwotIAogY2xhc3MgRWRpdG9yQ2xpZW50IHsKIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIH5FZGl0b3JDbGllbnQoKSB7ICB9CkBAIC0xODMsMTQgKzE2MCw3IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIHZvaWQgdG9nZ2xlQXV0b21hdGljU3BlbGxpbmdDb3JyZWN0aW9uKCkg
PSAwOwogI2VuZGlmCiAKLSAgICB2aXJ0dWFsIHZvaWQgaWdub3JlV29yZEluU3BlbGxEb2N1bWVu
dChjb25zdCBTdHJpbmcmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGxlYXJuV29yZChjb25zdCBT
dHJpbmcmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGNoZWNrU3BlbGxpbmdPZlN0cmluZyhjb25z
dCBVQ2hhciosIGludCBsZW5ndGgsIGludCogbWlzc3BlbGxpbmdMb2NhdGlvbiwgaW50KiBtaXNz
cGVsbGluZ0xlbmd0aCkgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGdldEF1dG9Db3JyZWN0U3Vn
Z2VzdGlvbkZvck1pc3NwZWxsZWRXb3JkKGNvbnN0IFN0cmluZyYgbWlzc3BlbGxlZFdvcmQpID0g
MDsKLSAgICB2aXJ0dWFsIHZvaWQgY2hlY2tHcmFtbWFyT2ZTdHJpbmcoY29uc3QgVUNoYXIqLCBp
bnQgbGVuZ3RoLCBWZWN0b3I8R3JhbW1hckRldGFpbD4mLCBpbnQqIGJhZEdyYW1tYXJMb2NhdGlv
biwgaW50KiBiYWRHcmFtbWFyTGVuZ3RoKSA9IDA7Ci0jaWYgUExBVEZPUk0oTUFDKSAmJiAhZGVm
aW5lZChCVUlMRElOR19PTl9USUdFUikgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkK
LSAgICB2aXJ0dWFsIHZvaWQgY2hlY2tUZXh0T2ZQYXJhZ3JhcGgoY29uc3QgVUNoYXIqIHRleHQs
IGludCBsZW5ndGgsIHVpbnQ2NF90IGNoZWNraW5nVHlwZXMsIFZlY3RvcjxUZXh0Q2hlY2tpbmdS
ZXN1bHQ+JiByZXN1bHRzKSA9IDA7Ci0jZW5kaWYKKyAgICB2aXJ0dWFsIFRleHRDaGVja2VyQ2xp
ZW50KiB0ZXh0Q2hlY2tlcigpID0gMDsKIAogI2lmIFNVUFBPUlRfQVVUT0NPUlJFQ1RJT05fUEFO
RUwKICAgICB2aXJ0dWFsIHZvaWQgc2hvd0NvcnJlY3Rpb25QYW5lbChDb3JyZWN0aW9uUGFuZWxJ
bmZvOjpQYW5lbFR5cGUsIGNvbnN0IEZsb2F0UmVjdCYgYm91bmRpbmdCb3hPZlJlcGxhY2VkU3Ry
aW5nLCBjb25zdCBTdHJpbmcmIHJlcGxhY2VkU3RyaW5nLCBjb25zdCBTdHJpbmcmIHJlcGxhY21l
bnRTdHJpbmcsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBhbHRlcm5hdGl2ZVJlcGxhY2VtZW50U3Ry
aW5ncywgRWRpdG9yKikgPSAwOwpAQCAtMjAyLDExICsxNzIsOCBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB2b2lkIHVwZGF0ZVNwZWxsaW5nVUlXaXRoTWlzc3BlbGxlZFdvcmQoY29uc3QgU3RyaW5n
JikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzaG93U3BlbGxpbmdVSShib29sIHNob3cpID0gMDsK
ICAgICB2aXJ0dWFsIGJvb2wgc3BlbGxpbmdVSUlzU2hvd2luZygpID0gMDsKLSAgICAvLyBGb3Ig
c3BlbGxjaGVja2VycyB0aGF0IHN1cHBvcnQgbXVsdGlwbGUgbGFuZ3VhZ2VzLCBpdCdzIG9mdGVu
IGltcG9ydGFudCB0byBiZSBhYmxlIHRvIGlkZW50aWZ5IHRoZSBsYW5ndWFnZSBpbiBvcmRlciB0
byBwcm92aWRlIG1vcmUgYWNjdXJhdGUgY29ycmVjdGlvbiBzdWdnZXN0aW9ucy4gQ2FsbGVyIGNh
biBwYXNzIGluIG1vcmUgdGV4dCBpbiAiY29udGV4dCIgdG8gYWlkIHN1Y2ggc3BlbGxjaGVja2Vy
cyBvbiBsYW5ndWFnZSBpZGVudGlmaWNhdGlvbi4gTm9yYW1sbHkgaXQncyB0aGUgdGV4dCBzdXJy
b3VuZGluZyB0aGUgIndvcmQiIGZvciB3aGljaCB3ZSBhcmUgZ2V0dGluZyBjb3JyZWN0aW9uIHN1
Z2dlc3Rpb25zLgotICAgIHZpcnR1YWwgdm9pZCBnZXRHdWVzc2VzRm9yV29yZChjb25zdCBTdHJp
bmcmIHdvcmQsIGNvbnN0IFN0cmluZyYgY29udGV4dCwgVmVjdG9yPFN0cmluZz4mIGd1ZXNzZXMp
ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNldElucHV0TWV0aG9kU3RhdGUoKSA9IDA7CiAg
ICAgdmlydHVhbCB2b2lkIHNldElucHV0TWV0aG9kU3RhdGUoYm9vbCBlbmFibGVkKSA9IDA7Ci0g
ICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFNwZWxsQ2hlY2tlciosIGlu
dCwgY29uc3QgU3RyaW5nJikgPSAwOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vdGV4dC9UZXh0Q2hlY2tlckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vdGV4dC9UZXh0Q2hlY2tlckNsaWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVkYTc3NmM3ODY5NDkz
NmJmN2U3NjE5NDg2ZGY1NjcyZWEyYjE3NWQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS90ZXh0L1RleHRDaGVja2VyQ2xpZW50LmgKQEAgLTAsMCArMSw4MyBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0
cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgVGV4dENoZWNrZXJDbGllbnRfaAor
I2RlZmluZSBUZXh0Q2hlY2tlckNsaWVudF9oCisKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgor
I2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4K
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTcGVsbENoZWNrZXI7CisKK3N0cnVjdCBH
cmFtbWFyRGV0YWlsIHsKKyAgICBpbnQgbG9jYXRpb247CisgICAgaW50IGxlbmd0aDsKKyAgICBW
ZWN0b3I8U3RyaW5nPiBndWVzc2VzOworICAgIFN0cmluZyB1c2VyRGVzY3JpcHRpb247Cit9Owor
CitlbnVtIFRleHRDaGVja2luZ1R5cGUgeworICAgIFRleHRDaGVja2luZ1R5cGVTcGVsbGluZyAg
ICA9IDEgPDwgMSwKKyAgICBUZXh0Q2hlY2tpbmdUeXBlR3JhbW1hciAgICAgPSAxIDw8IDIsCisg
ICAgVGV4dENoZWNraW5nVHlwZUxpbmsgICAgICAgID0gMSA8PCA1LAorICAgIFRleHRDaGVja2lu
Z1R5cGVRdW90ZSAgICAgICA9IDEgPDwgNiwKKyAgICBUZXh0Q2hlY2tpbmdUeXBlRGFzaCAgICAg
ICAgPSAxIDw8IDcsCisgICAgVGV4dENoZWNraW5nVHlwZVJlcGxhY2VtZW50ID0gMSA8PCA4LAor
ICAgIFRleHRDaGVja2luZ1R5cGVDb3JyZWN0aW9uICA9IDEgPDwgOQorfTsKKworc3RydWN0IFRl
eHRDaGVja2luZ1Jlc3VsdCB7CisgICAgVGV4dENoZWNraW5nVHlwZSB0eXBlOworICAgIGludCBs
b2NhdGlvbjsKKyAgICBpbnQgbGVuZ3RoOworICAgIFZlY3RvcjxHcmFtbWFyRGV0YWlsPiBkZXRh
aWxzOworICAgIFN0cmluZyByZXBsYWNlbWVudDsKK307CisKK2NsYXNzIFRleHRDaGVja2VyQ2xp
ZW50IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5UZXh0Q2hlY2tlckNsaWVudCgpIHt9CisKKyAg
ICB2aXJ0dWFsIHZvaWQgaWdub3JlV29yZEluU3BlbGxEb2N1bWVudChjb25zdCBTdHJpbmcmKSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIGxlYXJuV29yZChjb25zdCBTdHJpbmcmKSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIGNoZWNrU3BlbGxpbmdPZlN0cmluZyhjb25zdCBVQ2hhciosIGludCBsZW5n
dGgsIGludCogbWlzc3BlbGxpbmdMb2NhdGlvbiwgaW50KiBtaXNzcGVsbGluZ0xlbmd0aCkgPSAw
OworICAgIHZpcnR1YWwgU3RyaW5nIGdldEF1dG9Db3JyZWN0U3VnZ2VzdGlvbkZvck1pc3NwZWxs
ZWRXb3JkKGNvbnN0IFN0cmluZyYgbWlzc3BlbGxlZFdvcmQpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgY2hlY2tHcmFtbWFyT2ZTdHJpbmcoY29uc3QgVUNoYXIqLCBpbnQgbGVuZ3RoLCBWZWN0b3I8
R3JhbW1hckRldGFpbD4mLCBpbnQqIGJhZEdyYW1tYXJMb2NhdGlvbiwgaW50KiBiYWRHcmFtbWFy
TGVuZ3RoKSA9IDA7CisjaWYgUExBVEZPUk0oTUFDKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9U
SUdFUikgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkKKyAgICB2aXJ0dWFsIHZvaWQg
Y2hlY2tUZXh0T2ZQYXJhZ3JhcGgoY29uc3QgVUNoYXIqIHRleHQsIGludCBsZW5ndGgsIHVpbnQ2
NF90IGNoZWNraW5nVHlwZXMsIFZlY3RvcjxUZXh0Q2hlY2tpbmdSZXN1bHQ+JiByZXN1bHRzKSA9
IDA7CisjZW5kaWYKKworICAgIC8vIEZvciBzcGVsbGNoZWNrZXJzIHRoYXQgc3VwcG9ydCBtdWx0
aXBsZSBsYW5ndWFnZXMsIGl0J3Mgb2Z0ZW4gaW1wb3J0YW50IHRvIGJlIGFibGUgdG8gaWRlbnRp
ZnkgdGhlIGxhbmd1YWdlIGluIG9yZGVyIHRvIHByb3ZpZGUgbW9yZSBhY2N1cmF0ZSBjb3JyZWN0
aW9uIHN1Z2dlc3Rpb25zLiBDYWxsZXIgY2FuIHBhc3MgaW4gbW9yZSB0ZXh0IGluICJjb250ZXh0
IiB0byBhaWQgc3VjaCBzcGVsbGNoZWNrZXJzIG9uIGxhbmd1YWdlIGlkZW50aWZpY2F0aW9uLiBO
b3JhbWxseSBpdCdzIHRoZSB0ZXh0IHN1cnJvdW5kaW5nIHRoZSAid29yZCIgZm9yIHdoaWNoIHdl
IGFyZSBnZXR0aW5nIGNvcnJlY3Rpb24gc3VnZ2VzdGlvbnMuCisgICAgdmlydHVhbCB2b2lkIGdl
dEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYgd29yZCwgY29uc3QgU3RyaW5nJiBjb250ZXh0
LCBWZWN0b3I8U3RyaW5nPiYgZ3Vlc3NlcykgPSAwOworICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0
Q2hlY2tpbmdPZlN0cmluZyhTcGVsbENoZWNrZXIqLCBpbnQsIGNvbnN0IFN0cmluZyYpID0gMDsK
K307CisKK30KKworI2VuZGlmIC8vIFRleHRDaGVja2VyQ2xpZW50X2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cKaW5kZXggMzFmMWM1YjM4N2I2NTU0NTdjYjhjYTYwMGY4ZjFjNjA5ZTNlZTc5ZC4u
NjNlYmQyN2M3MDQwYmM0YzUyZjZkMGMzMjI2MWQxM2RkYjQ5ZGZmYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMS0wMS0yNiAgTU9SSVRBIEhhamltZSAg
PG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBSZWZhY3RvcmluZzogRXh0cmFjdCBUZXh0Q2hlY2tlckNsaWVudCBmcm9t
IEVkaXRvckNsaWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NTMyMTMKKworICAgICAgICAqIHNyYy9FZGl0b3JDbGllbnRJbXBsLmg6CisgICAgICAg
IChXZWJLaXQ6OkVkaXRvckNsaWVudEltcGw6OnRleHRDaGVja2VyKToKKwogMjAxMS0wMS0yNiAg
S2VudCBUYW11cmEgIDx0a2VudEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
RGltaXRyaSBHbGF6a292LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
RWRpdG9yQ2xpZW50SW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRWRpdG9yQ2xp
ZW50SW1wbC5oCmluZGV4IDlkYmQ2YWZiMzcxZDY0MTJhMGFmMjBlOGRiN2I4NTE4Yzc4ODdlMGUu
LjE1ZjUzZTIyMTgyNzgwNmY4M2U5OTA2MDAwMDMzY2UzYzg0Y2IyMDcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRvckNsaWVudEltcGwuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGllbnRJbXBsLmgKQEAgLTMyLDYgKzMyLDcgQEAK
ICNkZWZpbmUgRWRpdG9yQ2xpZW50SW1wbF9oCiAKICNpbmNsdWRlICJFZGl0b3JDbGllbnQuaCIK
KyNpbmNsdWRlICJUZXh0Q2hlY2tlckNsaWVudC5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCiAjaW5j
bHVkZSA8d3RmL0RlcXVlLmg+CiAKQEAgLTQyLDcgKzQzLDcgQEAgY2xhc3MgSFRNTElucHV0RWxl
bWVudDsKIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgV2ViVmlld0ltcGw7CiAKLWNsYXNzIEVk
aXRvckNsaWVudEltcGwgOiBwdWJsaWMgV2ViQ29yZTo6RWRpdG9yQ2xpZW50IHsKK2NsYXNzIEVk
aXRvckNsaWVudEltcGwgOiBwdWJsaWMgV2ViQ29yZTo6RWRpdG9yQ2xpZW50LCBwdWJsaWMgV2Vi
Q29yZTo6VGV4dENoZWNrZXJDbGllbnQgewogcHVibGljOgogICAgIEVkaXRvckNsaWVudEltcGwo
V2ViVmlld0ltcGwqIHdlYlZpZXcpOwogCkBAIC0xMTMsNiArMTE0LDggQEAgcHVibGljOgogICAg
IHZpcnR1YWwgdm9pZCBzZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wgZW5hYmxlZCk7CiAgICAgdmly
dHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFdlYkNvcmU6OlNwZWxsQ2hlY2tlcios
IGludCwgY29uc3QgV1RGOjpTdHJpbmcmKSB7fQogCisgICAgdmlydHVhbCBXZWJDb3JlOjpUZXh0
Q2hlY2tlckNsaWVudCogdGV4dENoZWNrZXIoKSB7IHJldHVybiB0aGlzOyB9CisKICAgICAvLyBT
aG93cyB0aGUgZm9ybSBhdXRvZmlsbCBwb3B1cCBmb3IgfG5vZGV8IGlmIGl0IGlzIGFuIEhUTUxJ
bnB1dEVsZW1lbnQgYW5kCiAgICAgLy8gaXQgaXMgZW1wdHkuICBUaGlzIGlzIGNhbGxlZCB3aGVu
IHlvdSBwcmVzcyB0aGUgdXAgb3IgZG93biBhcnJvdyBpbiBhCiAgICAgLy8gdGV4dC1maWVsZCBv
ciB3aGVuIGNsaWNraW5nIGFuIGFscmVhZHkgZm9jdXNlZCB0ZXh0LWZpZWxkLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdl
TG9nCmluZGV4IDVkY2M1Y2YzMGUwMzRhOTg3NWU0MDdmYzQ5MWVmNzRlYzUzOGZjODcuLjgyNDUw
OTFmNzM1MWE5YzE2MGJhNGY3MTQxN2Y1NTFiMDk1NTIwZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvZWZsL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxMyBAQAorMjAxMS0wMS0yNiAgTU9SSVRBIEhhamltZSAgPG1vcnJpdGFAZ29vZ2xl
LmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBS
ZWZhY3RvcmluZzogRXh0cmFjdCBUZXh0Q2hlY2tlckNsaWVudCBmcm9tIEVkaXRvckNsaWVudAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTMyMTMKKwor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEVmbC5oOgorICAgICAgICAoV2Vi
Q29yZTo6RWRpdG9yQ2xpZW50RWZsOjp0ZXh0Q2hlY2tlcik6CisKIDIwMTEtMDEtMTQgIFBhdHJp
Y2sgR2Fuc3RlcmVyICA8cGFyb2dhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZC4g
VHJ5IHRvIGZpeCBFRkwgYnVpbGQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJD
b3JlU3VwcG9ydC9FZGl0b3JDbGllbnRFZmwuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVT
dXBwb3J0L0VkaXRvckNsaWVudEVmbC5oCmluZGV4IGUyNWIxZTZmMGYyNDRmOGIyMmQ2YzIwMzJi
ZDc5M2Y3ZmVkYzQzYzYuLmM3NWVjZDk4YzE4ZjZkYWRiMzA3MTNlZjUyYWU3MjNmYWZjMjIyOGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVu
dEVmbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVu
dEVmbC5oCkBAIC0zNCw2ICszNCw3IEBACiAjZGVmaW5lIEVkaXRvckNsaWVudEVmbF9oCiAKICNp
bmNsdWRlICJFZGl0b3JDbGllbnQuaCIKKyNpbmNsdWRlICJUZXh0Q2hlY2tlckNsaWVudC5oIgog
CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KIApAQCAtNDIsNyArNDMsNyBAQCB0eXBlZGVmIHN0
cnVjdCBfRXZhc19PYmplY3QgRXZhc19PYmplY3Q7CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFz
cyBQYWdlOwogCi1jbGFzcyBFZGl0b3JDbGllbnRFZmwgOiBwdWJsaWMgRWRpdG9yQ2xpZW50IHsK
K2NsYXNzIEVkaXRvckNsaWVudEVmbCA6IHB1YmxpYyBFZGl0b3JDbGllbnQsIHB1YmxpYyBUZXh0
Q2hlY2tlckNsaWVudCB7CiBwdWJsaWM6CiAgICAgRWRpdG9yQ2xpZW50RWZsKEV2YXNfT2JqZWN0
ICp2aWV3KTsKICAgICB+RWRpdG9yQ2xpZW50RWZsKCk7CkBAIC0xMTQsNiArMTE1LDcgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgdm9pZCB3aWxsU2V0SW5wdXRNZXRob2RTdGF0ZSgpOwogICAgIHZp
cnR1YWwgdm9pZCBzZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wgZW5hYmxlZCk7CiAgICAgdmlydHVh
bCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFdlYkNvcmU6OlNwZWxsQ2hlY2tlciosIGlu
dCwgY29uc3QgV1RGOjpTdHJpbmcmKSB7fQorICAgIHZpcnR1YWwgVGV4dENoZWNrZXJDbGllbnQq
IHRleHRDaGVja2VyKCkgeyByZXR1cm4gdGhpczsgfQogCiBwcml2YXRlOgogICAgIEV2YXNfT2Jq
ZWN0ICptX3ZpZXc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggMWY0ZTMxY2IwMzIwNTE0NDlhMGU1NjBm
NzBjMDk2NzRmNDlmZmU4NC4uMjM5MzdlODM2NTg2NzZmYjllZGRmZTYwNDQwZWM1Njc0ZTcyYzNk
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvZ3RrL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDExLTAxLTI2ICBNT1JJVEEg
SGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFJlZmFjdG9yaW5nOiBFeHRyYWN0IFRleHRDaGVja2VyQ2xp
ZW50IGZyb20gRWRpdG9yQ2xpZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD01MzIxMworCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xp
ZW50R3RrLmg6CisgICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudDo6dGV4dENoZWNrZXIpOgor
CiAyMDExLTAxLTI2ICBNYXJpbyBTYW5jaGV6IFByYWRhICA8bXNhbmNoZXpAaWdhbGlhLmNvbT4K
IAogICAgICAgICBSZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuaCBiL1NvdXJjZS9X
ZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5oCmluZGV4IDIxNGRiZDY2
YzFjMjdmNmM2ODRmODJjM2ZjNzhmMzQ0YmJkNzAyNjEuLjFhZjU1ZTY4Y2U3Y2ZiN2EwM2JkYjUx
ZmY3Mjc5MDRlNTVlZjEyOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVT
dXBwb3J0L0VkaXRvckNsaWVudEd0ay5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVT
dXBwb3J0L0VkaXRvckNsaWVudEd0ay5oCkBAIC0zMiw2ICszMiw3IEBACiAjZGVmaW5lIEVkaXRv
ckNsaWVudEd0a19oCiAKICNpbmNsdWRlICJFZGl0b3JDbGllbnQuaCIKKyNpbmNsdWRlICJUZXh0
Q2hlY2tlckNsaWVudC5oIgogCiAjaW5jbHVkZSA8d3RmL0RlcXVlLmg+CiAjaW5jbHVkZSA8d3Rm
L0ZvcndhcmQuaD4KQEAgLTQ3LDcgKzQ4LDcgQEAgY2xhc3MgS2V5Ym9hcmRFdmVudDsKIAogbmFt
ZXNwYWNlIFdlYktpdCB7CiAKLSAgICBjbGFzcyBFZGl0b3JDbGllbnQgOiBwdWJsaWMgV2ViQ29y
ZTo6RWRpdG9yQ2xpZW50IHsKK2NsYXNzIEVkaXRvckNsaWVudCA6IHB1YmxpYyBXZWJDb3JlOjpF
ZGl0b3JDbGllbnQsICBwdWJsaWMgV2ViQ29yZTo6VGV4dENoZWNrZXJDbGllbnQgewogICAgIHBy
b3RlY3RlZDoKICAgICAgICAgYm9vbCBtX2lzSW5SZWRvOwogCkBAIC0xMjAsNiArMTIxLDggQEAg
bmFtZXNwYWNlIFdlYktpdCB7CiAgICAgICAgIHZpcnR1YWwgdm9pZCB0ZXh0V2lsbEJlRGVsZXRl
ZEluVGV4dEZpZWxkKFdlYkNvcmU6OkVsZW1lbnQqKTsKICAgICAgICAgdmlydHVhbCB2b2lkIHRl
eHREaWRDaGFuZ2VJblRleHRBcmVhKFdlYkNvcmU6OkVsZW1lbnQqKTsKIAorICAgICAgICB2aXJ0
dWFsIFdlYkNvcmU6OlRleHRDaGVja2VyQ2xpZW50KiB0ZXh0Q2hlY2tlcigpIHsgcmV0dXJuIHRo
aXM7IH0KKwogICAgICAgICB2aXJ0dWFsIHZvaWQgaWdub3JlV29yZEluU3BlbGxEb2N1bWVudChj
b25zdCBXVEY6OlN0cmluZyYpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgbGVhcm5Xb3JkKGNvbnN0
IFdURjo6U3RyaW5nJik7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBjaGVja1NwZWxsaW5nT2ZTdHJp
bmcoY29uc3QgVUNoYXIqLCBpbnQgbGVuZ3RoLCBpbnQqIG1pc3NwZWxsaW5nTG9jYXRpb24sIGlu
dCogbWlzc3BlbGxpbmdMZW5ndGgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9oYWlrdS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2hhaWt1L0NoYW5nZUxvZwppbmRleCA0MzE1YmI1ZTRl
YTk5M2M4MzllODRlM2MzN2ZkNDI1ZTZhODgwNzg1Li5hMDgzOTZiNjljZWY1YjIyNDY1ZjFhYWI5
ZmYxYzkxZDFkYzI0MmVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2hhaWt1L0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0L2hhaWt1L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisy
MDExLTAxLTI2ICBNT1JJVEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29tPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlZmFjdG9yaW5nOiBFeHRy
YWN0IFRleHRDaGVja2VyQ2xpZW50IGZyb20gRWRpdG9yQ2xpZW50CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MzIxMworCisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvRWRpdG9yQ2xpZW50SGFpa3UuaDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNs
aWVudEhhaWt1Ojp0ZXh0Q2hlY2tlcik6CisKIDIwMTAtMTItMjIgIFNhbSBXZWluaWcgIDxzYW1A
d2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvaGFpa3UvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50SGFpa3Uu
aCBiL1NvdXJjZS9XZWJLaXQvaGFpa3UvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50SGFpa3Uu
aAppbmRleCBjYTI3MGU5NWNiNDI3YTNlZDdhMDY2ZjNlZTMwMTM5MzQ5ZTA0NjhjLi42ZGMzNTBm
MjU0ZjI2M2Q1YzRhMDUwMWZjOGIzNzNlOTljOGNmYWU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEhhaWt1LmgKKysrIGIvU291cmNl
L1dlYktpdC9oYWlrdS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRIYWlrdS5oCkBAIC0zMiw2
ICszMiw3IEBACiAjZGVmaW5lIEVkaXRvckNsaWVudEhhaWt1X0gKIAogI2luY2x1ZGUgIkVkaXRv
ckNsaWVudC5oIgorI2luY2x1ZGUgIlRleHRDaGVja2VyQ2xpZW50LmgiCiAjaW5jbHVkZSAiUmVm
Q291bnRlZC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKIApAQCAtNDAsNyArNDEsNyBAQAogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLSAgICBjbGFzcyBFZGl0b3JDbGllbnRIYWlrdSA6IHB1YmxpYyBF
ZGl0b3JDbGllbnQgeworY2xhc3MgRWRpdG9yQ2xpZW50SGFpa3UgOiBwdWJsaWMgRWRpdG9yQ2xp
ZW50LCBwdWJsaWMgVGV4dENoZWNrZXJDbGllbnQgewogICAgIHB1YmxpYzoKICAgICAgICAgRWRp
dG9yQ2xpZW50SGFpa3UoKTsKICAgICAgICAgdm9pZCBzZXRQYWdlKCBQYWdlKiBwYWdlICk7CkBA
IC0xMTEsNiArMTEyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFsIHZv
aWQgd2lsbFNldElucHV0TWV0aG9kU3RhdGUoKTsKICAgICAgICAgdmlydHVhbCB2b2lkIHNldElu
cHV0TWV0aG9kU3RhdGUoYm9vbCBlbmFibGVkKTsKICAgICAgICAgdmlydHVhbCB2b2lkIHJlcXVl
c3RDaGVja2luZ09mU3RyaW5nKFNwZWxsQ2hlY2tlciosIGludCwgY29uc3QgU3RyaW5nJikge30K
KyAgICAgICAgdmlydHVhbCBUZXh0Q2hlY2tlckNsaWVudCogdGV4dENoZWNrZXIoKSB7IHJldHVy
biB0aGlzOyB9CiAKICAgICAgICAgYm9vbCBpc0VkaXRpbmcoKSBjb25zdDsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdl
TG9nCmluZGV4IDFmNGUzYzQ0M2QzMWY2MjhmNDdmNTJkYTQ5NDlhZDA4NmM5NTEyMGMuLjEzZDFk
MDk1MTMyNzAxZTM2Y2QzYmQ3NGJjY2ZiMTY5Yjc3NjRkYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxMyBAQAorMjAxMS0wMS0yNiAgTU9SSVRBIEhhamltZSAgPG1vcnJpdGFAZ29vZ2xl
LmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBS
ZWZhY3RvcmluZzogRXh0cmFjdCBUZXh0Q2hlY2tlckNsaWVudCBmcm9tIEVkaXRvckNsaWVudAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTMyMTMKKwor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oOgorICAgICAgICAoV2Vi
RWRpdG9yQ2xpZW50Ojp0ZXh0Q2hlY2tlcik6CisKIDIwMTEtMDEtMjUgIERhcmluIEFkbGVyICA8
ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFuZGVycyBDYXJsc3Nvbi4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNs
aWVudC5oIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50
LmgKaW5kZXggZDVhYzg5MWI3YTZjMGUwYjcwNTg5MjZiMjMxZThiOTVkOWViOTZjMi4uNTNkYTM2
YTQwMjkwZTMxY2QyODI1MDBmZmIxYmM1NThkM2MyNGVlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKKysrIGIvU291cmNlL1dl
YktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKQEAgLTI5LDYgKzI5LDcg
QEAKIAogI2ltcG9ydCA8V2ViQ29yZS9FZGl0b3IuaD4KICNpbXBvcnQgPFdlYkNvcmUvRWRpdG9y
Q2xpZW50Lmg+CisjaW1wb3J0IDxXZWJDb3JlL1RleHRDaGVja2VyQ2xpZW50Lmg+CiAjaW1wb3J0
IDx3dGYvUmV0YWluUHRyLmg+CiAjaW1wb3J0IDx3dGYvRm9yd2FyZC5oPgogI2ltcG9ydCA8d3Rm
L1ZlY3Rvci5oPgpAQCAtMzYsNyArMzcsNyBAQAogQGNsYXNzIFdlYlZpZXc7CiBAY2xhc3MgV2Vi
RWRpdG9yVW5kb1RhcmdldDsKIAotY2xhc3MgV2ViRWRpdG9yQ2xpZW50IDogcHVibGljIFdlYkNv
cmU6OkVkaXRvckNsaWVudCB7CitjbGFzcyBXZWJFZGl0b3JDbGllbnQgOiBwdWJsaWMgV2ViQ29y
ZTo6RWRpdG9yQ2xpZW50LCBwdWJsaWMgV2ViQ29yZTo6VGV4dENoZWNrZXJDbGllbnQgewogcHVi
bGljOgogICAgIFdlYkVkaXRvckNsaWVudChXZWJWaWV3ICopOwogICAgIHZpcnR1YWwgfldlYkVk
aXRvckNsaWVudCgpOwpAQCAtOTgsNiArOTksOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lk
IHRvZ2dsZUF1dG9tYXRpY1NwZWxsaW5nQ29ycmVjdGlvbigpOwogI2VuZGlmCiAKKyAgICBUZXh0
Q2hlY2tlckNsaWVudCogdGV4dENoZWNrZXIoKSB7IHJldHVybiB0aGlzOyB9CisKICAgICB2aXJ0
dWFsIHZvaWQgcmVzcG9uZFRvQ2hhbmdlZENvbnRlbnRzKCk7CiAgICAgdmlydHVhbCB2b2lkIHJl
c3BvbmRUb0NoYW5nZWRTZWxlY3Rpb24oKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9x
dC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwppbmRleCBiM2YyYjI4MzNl
Y2Q4MWM0OWI2MGQ0OWU0MjA2ODM5NDNiMzQyMWU4Li40MmRiMDEyNzVmZGEyZTcxN2E0NmFmZmZk
ODliOTBhZDFjMTA5N2VjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDExLTAx
LTI2ICBNT1JJVEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29tPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlZmFjdG9yaW5nOiBFeHRyYWN0IFRl
eHRDaGVja2VyQ2xpZW50IGZyb20gRWRpdG9yQ2xpZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MzIxMworCisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvRWRpdG9yQ2xpZW50UXQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVudFF0Ojp0
ZXh0Q2hlY2tlcik6CisKIDIwMTEtMDEtMjQgIENocmlzIE1hcnJpbiAgPGNtYXJyaW5AYXBwbGUu
Y29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRRdC5oIGIvU291cmNlL1dl
YktpdC9xdC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRRdC5oCmluZGV4IDFlNDEwZTZkN2Vk
MzRiMzk4ZmYyZTAwYjYyZTRkZWI5MTc4ZjQ0Y2YuLmU0MzA1NDRhNjYzOGEyMzBjNWQ0YTM5YzU1
Y2JhYzIxMDYxM2E1NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBv
cnQvRWRpdG9yQ2xpZW50UXQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0
L0VkaXRvckNsaWVudFF0LmgKQEAgLTMxLDYgKzMxLDcgQEAKICNkZWZpbmUgRWRpdG9yQ2xpZW50
UXRfaAogCiAjaW5jbHVkZSAiRWRpdG9yQ2xpZW50LmgiCisjaW5jbHVkZSAiVGV4dENoZWNrZXJD
bGllbnQuaCIKICNpbmNsdWRlICJSZWZDb3VudGVkLmgiCiAKICNpbmNsdWRlIDx3dGYvRm9yd2Fy
ZC5oPgpAQCAtMzksNyArNDAsNyBAQCBjbGFzcyBRV2ViUGFnZTsKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi1jbGFzcyBFZGl0b3JDbGllbnRRdCA6IHB1YmxpYyBFZGl0b3JDbGllbnQgeworY2xh
c3MgRWRpdG9yQ2xpZW50UXQgOiBwdWJsaWMgRWRpdG9yQ2xpZW50LCBwdWJsaWMgVGV4dENoZWNr
ZXJDbGllbnQgewogcHVibGljOgogICAgIEVkaXRvckNsaWVudFF0KFFXZWJQYWdlKiBwYWdlKTsK
ICAgICAKQEAgLTEwOCw2ICsxMDksNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHdpbGxT
ZXRJbnB1dE1ldGhvZFN0YXRlKCk7CiAgICAgdmlydHVhbCB2b2lkIHNldElucHV0TWV0aG9kU3Rh
dGUoYm9vbCBlbmFibGVkKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdENoZWNraW5nT2ZTdHJp
bmcoU3BlbGxDaGVja2VyKiwgaW50LCBjb25zdCBTdHJpbmcmKSB7fQorICAgIHZpcnR1YWwgVGV4
dENoZWNrZXJDbGllbnQqIHRleHRDaGVja2VyKCkgeyByZXR1cm4gdGhpczsgfQogCiAgICAgYm9v
bCBpc0VkaXRpbmcoKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCmluZGV4IDEzYTc5NGEyOTFlYzI0
YWYzMjQwOTYzN2JhYzkwYjEyYzRkY2UwYTguLmExNTI3OWY4ZmQzM2YzZTQ4Y2YwZjlmNjkzYjA0
MDg0Y2Y5NGM0YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMS0wMS0y
NiAgTU9SSVRBIEhhamltZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWZhY3RvcmluZzogRXh0cmFjdCBUZXh0
Q2hlY2tlckNsaWVudCBmcm9tIEVkaXRvckNsaWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTMyMTMKKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L1dlYkVkaXRvckNsaWVudC5oOgorICAgICAgICAoV2ViRWRpdG9yQ2xpZW50Ojp0ZXh0Q2hlY2tl
cik6CisKIDIwMTEtMDEtMjUgIFN0ZXZlIEZhbGtlbmJ1cmcgIDxzZmFsa2VuQGFwcGxlLmNvbT4K
IAogICAgICAgICBXaW5kb3dzIHByb2R1Y3Rpb24gYnVpbGQgZml4LgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmggYi9Tb3VyY2Uv
V2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAppbmRleCAzNThhMzY1
NmE2ZGY2MDRiMTIyYTA5ZDBkMGVhMTA1ZWFmYTQ4OTEzLi40NjlmNzVmMzRlY2FhYjcyNWVlMTdi
OGVlODI0YTg4NjZiMTJlMTk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3Jl
U3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3Jl
U3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIldl
YktpdC5oIgogI3ByYWdtYSB3YXJuaW5nKHB1c2gsIDApCiAjaW5jbHVkZSA8V2ViQ29yZS9FZGl0
b3JDbGllbnQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1RleHRDaGVja2VyQ2xpZW50Lmg+CiAjaW5j
bHVkZSA8d3RmL093blB0ci5oPgogI3ByYWdtYSB3YXJuaW5nKHBvcCkKIApAQCAtMzYsNyArMzcs
NyBAQCBjbGFzcyBXZWJWaWV3OwogY2xhc3MgV2ViTm90aWZpY2F0aW9uOwogY2xhc3MgV2ViRWRp
dG9yVW5kb1RhcmdldDsKIAotY2xhc3MgV2ViRWRpdG9yQ2xpZW50IDogcHVibGljIFdlYkNvcmU6
OkVkaXRvckNsaWVudCB7CitjbGFzcyBXZWJFZGl0b3JDbGllbnQgOiBwdWJsaWMgV2ViQ29yZTo6
RWRpdG9yQ2xpZW50LCBwdWJsaWMgV2ViQ29yZTo6VGV4dENoZWNrZXJDbGllbnQgewogcHVibGlj
OgogICAgIFdlYkVkaXRvckNsaWVudChXZWJWaWV3Kik7CiAgICAgfldlYkVkaXRvckNsaWVudCgp
OwpAQCAtMTEyLDYgKzExMyw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNldElu
cHV0TWV0aG9kU3RhdGUoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5wdXRNZXRob2RTdGF0ZShi
b29sKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoV2ViQ29yZTo6
U3BlbGxDaGVja2VyKiwgaW50LCBjb25zdCBXVEY6OlN0cmluZyYpIHt9CisgICAgdmlydHVhbCBX
ZWJDb3JlOjpUZXh0Q2hlY2tlckNsaWVudCogdGV4dENoZWNrZXIoKSB7IHJldHVybiB0aGlzOyB9
CiAKIHByaXZhdGU6CiAgICAgV2ViVmlldyogbV93ZWJWaWV3OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC93aW5jZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZwpp
bmRleCA4N2NhMjllOGFhYmY5YmY0MjEwMjBiZWU1YzViMjY2NDE3NzdhY2E1Li40NDE1NWE1Mzgw
ZWMyNGJmNTdkOTM3MDk4YmFjNmU2YTc2MjgyYWYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L3dpbmNlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDEzIEBACisyMDExLTAxLTI2ICBNT1JJVEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUu
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJl
ZmFjdG9yaW5nOiBFeHRyYWN0IFRleHRDaGVja2VyQ2xpZW50IGZyb20gRWRpdG9yQ2xpZW50Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MzIxMworCisg
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50V2luQ0UuaDoKKyAgICAgICAgKFdl
YktpdDo6RWRpdG9yQ2xpZW50V2luQ0U6OnRleHRDaGVja2VyKToKKwogMjAxMS0wMS0yNSAgUGF0
cmljayBHYW5zdGVyZXIgIDxwYXJvZ2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBBZGFtIFJvYmVuLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3Vw
cG9ydC9FZGl0b3JDbGllbnRXaW5DRS5oIGIvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3Vw
cG9ydC9FZGl0b3JDbGllbnRXaW5DRS5oCmluZGV4IDhkYjhjMTY4NDYyZjhkZGIzYzAwYWM3ZGM0
YzFlNzZkY2Q0OWJmYWQuLjEyMzM2MDU5OTkxZmQzMTc5MTMxNWY3YWQ4MDIyMDNjMTdkNGE0MmQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xp
ZW50V2luQ0UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0VkaXRv
ckNsaWVudFdpbkNFLmgKQEAgLTI2LDEyICsyNiwxMyBAQAogI2RlZmluZSBFZGl0b3JDbGllbnRX
aW5DRV9oCiAKICNpbmNsdWRlICJFZGl0b3JDbGllbnQuaCIKKyNpbmNsdWRlICJUZXh0Q2hlY2tl
ckNsaWVudC5oIgogCiBjbGFzcyBXZWJWaWV3OwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotY2xh
c3MgRWRpdG9yQ2xpZW50V2luQ0UgOiBwdWJsaWMgV2ViQ29yZTo6RWRpdG9yQ2xpZW50IHsKK2Ns
YXNzIEVkaXRvckNsaWVudFdpbkNFIDogcHVibGljIFdlYkNvcmU6OkVkaXRvckNsaWVudCwgcHVi
bGljIFdlYkNvcmU6OlRleHRDaGVja2VyQ2xpZW50IHsKIHB1YmxpYzoKICAgICBFZGl0b3JDbGll
bnRXaW5DRShXZWJWaWV3Kik7CiAgICAgfkVkaXRvckNsaWVudFdpbkNFKCk7CkBAIC0xMDEsNiAr
MTAyLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCB3aWxsU2V0SW5wdXRNZXRob2RTdGF0
ZSgpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wpOwogICAgIHZp
cnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhXZWJDb3JlOjpTcGVsbENoZWNrZXIq
LCBpbnQsIGNvbnN0IFdURjo6U3RyaW5nJikge30KKyAgICB2aXJ0dWFsIFdlYkNvcmU6OlRleHRD
aGVja2VyQ2xpZW50KiB0ZXh0Q2hlY2tlcigpIHsgcmV0dXJuIHRoaXM7IH0KIAogcHJpdmF0ZToK
ICAgICBXZWJWaWV3KiBtX3dlYlZpZXc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3d4L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvd3gvQ2hhbmdlTG9nCmluZGV4IDQ4NjIyMjVlNWJkNGNj
NGUzY2M5ZGY0Y2IwOWFmZGJjOGMxOGE0NjYuLmZlY2M5OGY1Nzk3N2U5M2U3ZDk4ZTI2M2U4NGZk
MzkxZjI4Njc4ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd3gvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvd3gvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMDEtMjYg
IE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVmYWN0b3Jpbmc6IEV4dHJhY3QgVGV4dENo
ZWNrZXJDbGllbnQgZnJvbSBFZGl0b3JDbGllbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTUzMjEzCisKKyAgICAgICAgKiBXZWJLaXRTdXBwb3J0L0Vk
aXRvckNsaWVudFd4Lmg6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3JDbGllbnRXeDo6dGV4dENo
ZWNrZXIpOgorCiAyMDExLTAxLTE0ICBZdXpvIEZ1amlzaGltYSAgPHl1em9AZ29vZ2xlLmNvbT4K
IAogICAgICAgICBSZXZpZXdlZCBieSBBbnR0aSBLb2l2aXN0by4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9FZGl0b3JDbGllbnRXeC5oIGIvU291cmNlL1dlYktp
dC93eC9XZWJLaXRTdXBwb3J0L0VkaXRvckNsaWVudFd4LmgKaW5kZXggN2RiZWUzMWE1Zjk0NGE0
OGRkY2QzMWRkNWI4YThlMDJhNTJlNmJmMC4uM2M0M2JlN2QyNGE5MmUxMmUwZmM2ODUyZTA3MjMw
Zjc5ZGQwN2RiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0Vk
aXRvckNsaWVudFd4LmgKKysrIGIvU291cmNlL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0VkaXRv
ckNsaWVudFd4LmgKQEAgLTMwLDEzICszMCwxNCBAQAogCiAjaW5jbHVkZSAiRWRpdG9yQ2xpZW50
LmgiCiAjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIlRleHRDaGVja2VyQ2xpZW50LmgiCiAK
ICNpbmNsdWRlICJXZWJWaWV3LmgiCiAjaW5jbHVkZSAiV2ViRnJhbWUuaCIKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCi1jbGFzcyBFZGl0b3JDbGllbnRXeCA6IHB1YmxpYyBFZGl0b3JDbGllbnQg
eworY2xhc3MgRWRpdG9yQ2xpZW50V3ggOiBwdWJsaWMgRWRpdG9yQ2xpZW50LCBwdWJsaWMgVGV4
dENoZWNrZXJDbGllbnQgewogZnJpZW5kIGNsYXNzIDo6d3hXZWJWaWV3OwogZnJpZW5kIGNsYXNz
IDo6d3hXZWJGcmFtZTsKIApAQCAtMTEzLDYgKzExNCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IHZvaWQgd2lsbFNldElucHV0TWV0aG9kU3RhdGUoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5w
dXRNZXRob2RTdGF0ZShib29sIGVuYWJsZWQpOwogICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hl
Y2tpbmdPZlN0cmluZyhXZWJDb3JlOjpTcGVsbENoZWNrZXIqLCBpbnQsIGNvbnN0IFdURjo6U3Ry
aW5nJikge30KKyAgICB2aXJ0dWFsIFRleHRDaGVja2VyQ2xpZW50KiB0ZXh0Q2hlY2tlcigpIHsg
cmV0dXJuIHRoaXM7IH0KIAogcHJpdmF0ZToKICAgICBQYWdlKiBtX3BhZ2U7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5k
ZXggNTQ3M2EyM2U2ZTQ2NTQzNDYxYjdkZDE4MmQ2M2JjYmZlYTVlNDFjOC4uMDBiMjZhNTgzNWVj
OWE0Nzg2ZWQ2MjdiZTlmMDE0YTE0NjNhOWM0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBA
CisyMDExLTAxLTI2ICBNT1JJVEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29tPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5lZWQgYSBzaG9ydCBk
ZXNjcmlwdGlvbiBhbmQgYnVnIFVSTCAoT09QUyEpCisKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzLmg6CisgICAgICAgICogVUlQcm9jZXNzL1RleHRDaGVja2VyLmg6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViRWRpdG9yQ2xpZW50Ojp0ZXh0Q2hlY2tlcik6CisgICAgICAgICog
U2NyaXB0cy93ZWJraXQyL21lc3NhZ2VzLnB5OiBSZS1hcnJhbmdlZCB0aGUgaW5jbHVkZSBmaWxl
CisKIDIwMTEtMDEtMjYgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBNYWNpZWogU3RhY2hvd2lhay4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1NjcmlwdHMvd2Via2l0Mi9tZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Vi
a2l0Mi9tZXNzYWdlcy5weQppbmRleCA1NzNlYTBmNTIzNDI2ZDVjOTY3ZmQxM2FkN2JlM2NiMDZl
ZGUyNjZlLi4zZjlhZmE0NmVhM2IzOTA3NzcwMTI0NjM3YzExZDc4MjczMzg5YWZlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdDIvbWVzc2FnZXMucHkKKysrIGIvU291
cmNlL1dlYktpdDIvU2NyaXB0cy93ZWJraXQyL21lc3NhZ2VzLnB5CkBAIC00MjAsNyArNDIwLDcg
QEAgZGVmIGhlYWRlcnNfZm9yX3R5cGUodHlwZSk6CiAgICAgICAgICdXZWJDb3JlOjpDb21wb3Np
dGlvblVuZGVybGluZSc6ICc8V2ViQ29yZS9FZGl0b3IuaD4nLAogICAgICAgICAnV2ViQ29yZTo6
S2V5cHJlc3NDb21tYW5kJzogJzxXZWJDb3JlL0tleWJvYXJkRXZlbnQuaD4nLAogICAgICAgICAn
V2ViQ29yZTo6UGx1Z2luSW5mbyc6ICc8V2ViQ29yZS9QbHVnaW5EYXRhLmg+JywKLSAgICAgICAg
J1dlYkNvcmU6OlRleHRDaGVja2luZ1Jlc3VsdCc6ICc8V2ViQ29yZS9FZGl0b3JDbGllbnQuaD4n
LAorICAgICAgICAnV2ViQ29yZTo6VGV4dENoZWNraW5nUmVzdWx0JzogJzxXZWJDb3JlL1RleHRD
aGVja2VyQ2xpZW50Lmg+JywKICAgICAgICAgJ1dlYktpdDo6V2ViR2VzdHVyZUV2ZW50JzogJyJX
ZWJFdmVudC5oIicsCiAgICAgICAgICdXZWJLaXQ6OldlYktleWJvYXJkRXZlbnQnOiAnIldlYkV2
ZW50LmgiJywKICAgICAgICAgJ1dlYktpdDo6V2ViTW91c2VFdmVudCc6ICciV2ViRXZlbnQuaCIn
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVy
cy5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCmluZGV4
IDYyYzY4Yzc2MWU1Y2ZjNDA2NWExYjM0MWY1M2E0YTJmZTRlYjU2NjAuLmU3ODAyYzM3MjZmMmNl
MzBjZWQ4MTQxMjE5ZGI4NGMyYzllNjE5YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
V2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKQEAgLTQzLDYgKzQzLDcgQEAKICNpbmNsdWRlIDxXZWJD
b3JlL1Byb3RlY3Rpb25TcGFjZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VFcnJvci5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CisjaW5jbHVkZSA8V2ViQ29y
ZS9UZXh0Q2hlY2tlckNsaWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVmlld3BvcnRBcmd1bWVu
dHMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1dpbmRvd0ZlYXR1cmVzLmg+CiAjaW5jbHVkZSA8bGlt
aXRzPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1RleHRDaGVja2VyLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVGV4dENoZWNrZXIuaAppbmRleCBmYzM0N2ZlNTQ3
YmQyNzdhMGJmMmM2Zjk5NWUzNDUxMjM4NmZmOTI5Li45OTk3ZDhiZGM5MzYyMTQwNmY4ZDU0MTZj
NGJkZTUyNzYxMzE5NDRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVGV4
dENoZWNrZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVGV4dENoZWNrZXIuaApA
QCAtMjcsNiArMjcsNyBAQAogI2RlZmluZSBUZXh0Q2hlY2tlcl9oCiAKICNpbmNsdWRlIDxXZWJD
b3JlL0VkaXRvckNsaWVudC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvVGV4dENoZWNrZXJDbGllbnQu
aD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCmluZGV4IDQwYmQ4
YzY5MzBkMDk5YTA3ZmMwMTA2MTM0MmEwNGU2MDQ5OTI4ZmEuLmM0ZTBkMDI1ZjcyZTA2ZjVjZWVk
OTUxMDcxOWY3ZTQ0MzEzZjk5ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaApAQCAtMjcsMTIgKzI3
LDEzIEBACiAjZGVmaW5lIFdlYkVkaXRvckNsaWVudF9oCiAKICNpbmNsdWRlIDxXZWJDb3JlL0Vk
aXRvckNsaWVudC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvVGV4dENoZWNrZXJDbGllbnQuaD4KIAog
bmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFdlYlBhZ2U7CiAKLWNsYXNzIFdlYkVkaXRvckNs
aWVudCA6IHB1YmxpYyBXZWJDb3JlOjpFZGl0b3JDbGllbnQgeworY2xhc3MgV2ViRWRpdG9yQ2xp
ZW50IDogcHVibGljIFdlYkNvcmU6OkVkaXRvckNsaWVudCwgcHVibGljIFdlYkNvcmU6OlRleHRD
aGVja2VyQ2xpZW50IHsKIHB1YmxpYzoKICAgICBXZWJFZGl0b3JDbGllbnQoV2ViUGFnZSogcGFn
ZSkKICAgICAgICAgOiBtX3BhZ2UocGFnZSkKQEAgLTEyMCw2ICsxMjEsOCBAQCBwcml2YXRlOgog
ICAgIHZpcnR1YWwgdm9pZCB0b2dnbGVBdXRvbWF0aWNTcGVsbGluZ0NvcnJlY3Rpb24oKTsKICNl
bmRpZgogCisgICAgVGV4dENoZWNrZXJDbGllbnQqIHRleHRDaGVja2VyKCkgeyByZXR1cm4gdGhp
czsgfQorCiAgICAgdmlydHVhbCB2b2lkIGlnbm9yZVdvcmRJblNwZWxsRG9jdW1lbnQoY29uc3Qg
U3RyaW5nJik7CiAgICAgdmlydHVhbCB2b2lkIGxlYXJuV29yZChjb25zdCBTdHJpbmcmKTsKICAg
ICB2aXJ0dWFsIHZvaWQgY2hlY2tTcGVsbGluZ09mU3RyaW5nKGNvbnN0IFVDaGFyKiwgaW50IGxl
bmd0aCwgaW50KiBtaXNzcGVsbGluZ0xvY2F0aW9uLCBpbnQqIG1pc3NwZWxsaW5nTGVuZ3RoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>82286</attachid>
            <date>2011-02-13 21:42:11 -0800</date>
            <delta_ts>2011-02-14 19:50:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-53213-20110214144208.patch</filename>
            <type>text/plain</type>
            <size>50156</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogNzg0NTQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2YmU0ODFjN2U2YmE5Yjcw
OGYwM2QzYzY3NGRmZjg4MDk4MGJlZDE2Li4xNzY4OTE3MzgwNzExNTYzODMzMWFmNzE3NGY3NGNm
ZTNiMjg4Y2Y5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTcgQEAKKzIwMTEtMDEtMjYgIE1PUklU
QSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgUmVmYWN0b3Jpbmc6IEV4dHJhY3QgVGV4dENoZWNrZXJD
bGllbnQgZnJvbSBFZGl0b3JDbGllbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTUzMjEzCisgICAgICAgIAorICAgICAgICBDcmVhdGVkIG5ldyBhYnN0
cmFjdCBjbGFzcyBUZXh0Q2hlY2tlckNsaWVudC4gVGhlIGNsYXNzIGhhcworICAgICAgICBzcGVs
bGNoZWNrIHJlbGF0ZWQgQVBJIHdoaWNoIGlzIHNwbGl0dGVkIAorICAgICAgICBUaGlzIGlzIHRo
ZSBmaXJzdCBzdGVwIGZvciBzaGFyaW5nIHNwZWxsLWNoZWNraW5nIGNvZGViYXNlCisgICAgICAg
IGJldHdlZW4gcG9ydHMuIEEgc3RhbmRhbG9uZSBUZXh0Q2hlY2tlckNsaWVudCBpbXBsZW1lbnRh
dGlvbgorICAgICAgICBzaG91bGQgYmUgZG9uZSBpbiBmdXR1cmUgY2hhbmdlcy4KKworICAgICAg
ICBObyBuZXcgdGVzdHMuIE5vIGJlaGF2aW9yYWwgY2hhbmdlLgorCisgICAgICAgICogR05VbWFr
ZWZpbGUuYW06CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUucHJv
OgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5
L21hYy9BY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlci5tbToKKyAgICAgICAgKEFYQXR0cmlidXRl
U3RyaW5nU2V0U3BlbGxpbmcpOgorICAgICAgICAqIGVkaXRpbmcvRWRpdG9yLmNwcDogUmVwbGFj
aW5nIHNvbWUgY2xpZW50KCkgY2FsbCB3aXRoIHRleHRDaGVja2VyKCkuCisgICAgICAgIChXZWJD
b3JlOjpFZGl0b3I6OnRleHRDaGVja2VyKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpFZGl0
b3I6Omlnbm9yZVNwZWxsaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6bGVhcm5TcGVs
bGluZyk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OmlzU2VsZWN0aW9uTWlzc3BlbGxlZCk6
CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6Omd1ZXNzZXNGb3JNaXNzcGVsbGVkU2VsZWN0aW9u
KToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6bWFya01pc3NwZWxsaW5nc0FmdGVyVHlwaW5n
VG9Xb3JkKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6bWFya0FsbE1pc3NwZWxsaW5nc0Fu
ZEJhZEdyYW1tYXJJblJhbmdlcyk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OmNvcnJlY3Rp
b25QYW5lbFRpbWVyRmlyZWQpOgorICAgICAgICAqIGVkaXRpbmcvRWRpdG9yLmg6CisgICAgICAg
ICogZWRpdGluZy9TcGVsbENoZWNrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3BlbGxDaGVj
a2VyOjpyZXF1ZXN0Q2hlY2tpbmdGb3IpOgorICAgICAgICAqIGVkaXRpbmcvVGV4dENoZWNraW5n
SGVscGVyLmNwcDogUmVwbGFjaW5nIHNvbWUgY2xpZW50KCkgY2FsbCB3aXRoIHRleHRDaGVja2Vy
KCkuCisgICAgICAgIChXZWJDb3JlOjpUZXh0Q2hlY2tpbmdIZWxwZXI6OmZpbmRGaXJzdE1pc3Nw
ZWxsaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRDaGVja2luZ0hlbHBlcjo6ZmluZEZpcnN0
TWlzc3BlbGxpbmdPckJhZEdyYW1tYXIpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dENoZWNraW5n
SGVscGVyOjpmaW5kRmlyc3RCYWRHcmFtbWFyKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRDaGVj
a2luZ0hlbHBlcjo6Z3Vlc3Nlc0Zvck1pc3NwZWxsZWRPclVuZ3JhbW1hdGljYWxSYW5nZSk6Cisg
ICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5oOiBBZGRlZCBFbXB0eVRleHRDaGVja2VyQ2xp
ZW50LgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlUZXh0Q2hlY2tlckNsaWVudDo6aWdub3JlV29y
ZEluU3BlbGxEb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpFbXB0eVRleHRDaGVja2VyQ2xp
ZW50OjpsZWFybldvcmQpOgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlUZXh0Q2hlY2tlckNsaWVu
dDo6Y2hlY2tTcGVsbGluZ09mU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5VGV4dENo
ZWNrZXJDbGllbnQ6OmdldEF1dG9Db3JyZWN0U3VnZ2VzdGlvbkZvck1pc3NwZWxsZWRXb3JkKToK
KyAgICAgICAgKFdlYkNvcmU6OkVtcHR5VGV4dENoZWNrZXJDbGllbnQ6OmNoZWNrR3JhbW1hck9m
U3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5VGV4dENoZWNrZXJDbGllbnQ6OmNoZWNr
VGV4dE9mUGFyYWdyYXBoKToKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5VGV4dENoZWNrZXJDbGll
bnQ6OmdldEd1ZXNzZXNGb3JXb3JkKToKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5VGV4dENoZWNr
ZXJDbGllbnQ6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkVt
cHR5RWRpdG9yQ2xpZW50Ojp0ZXh0Q2hlY2tlcik6CisgICAgICAgICogcGFnZS9FZGl0b3JDbGll
bnQuaDogRXh0cmFjdGVkIFRleHRDaGVja2VyQ2xpZW50LgorICAgICAgICAqIHBhZ2UvUGFnZS5o
OgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvVGV4dENoZWNrZXJDbGllbnQuaDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpUZXh0Q2hlY2tlckNsaWVudDo6flRleHRDaGVja2VyQ2xpZW50KToK
KwogMjAxMS0wMi0xMiAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAg
UmV2aWV3ZWQgYnkgQWxleGV5IFByb3NrdXJ5YWtvdi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0dOVW1ha2VmaWxlLmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KaW5kZXgg
NGMzNzg4YmQyMzFkNjMzNjk1OWMwMjE2ZDQ0ZTI5MTI1OThlMmE4Zi4uOWE2YjEzMTUyNDE4NmIx
NzUyNzZhNDBlODE5MmI0ZjBmOWU5OTBiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05V
bWFrZWZpbGUuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KQEAgLTI2NDIs
NiArMjY0Miw3IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vdGV4dC9UZXh0Qm91bmRhcmllcy5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Rl
eHQvVGV4dEJvdW5kYXJpZXMuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0
QnJlYWtJdGVyYXRvci5oIFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRDaGVj
a2VyQ2xpZW50LmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dENvZGVjLmNw
cCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0Q29kZWMuaCBcCiAJU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0Q29kZWNMYXRpbjEuY3BwIFwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lw
aQppbmRleCBlYjgwMTZjNzkwODM3MmQ0ZmRlYWM2OGRlNDIzMWU2Zjk5NTY5ZGE5Li45MjczYzA2
NjM5ZjZmNjI3MDZhOTBmNjNiN2NhN2E1ZTY3MGU3OWY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0z
MzQ0LDYgKzMzNDQsNyBAQAogICAgICAgICAgICAgJ3BsYXRmb3JtL3RleHQvVGV4dEJyZWFrSXRl
cmF0b3IuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vdGV4dC9UZXh0QnJlYWtJdGVyYXRvcklD
VS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL3RleHQvVGV4dEJyZWFrSXRlcmF0b3JJbnRl
cm5hbElDVS5oJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS90ZXh0L1RleHRDaGVja2VyQ2xpZW50
LmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL3RleHQvVGV4dENvZGVjLmNwcCcsCiAgICAgICAg
ICAgICAncGxhdGZvcm0vdGV4dC9UZXh0Q29kZWMuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0v
dGV4dC9UZXh0Q29kZWNJQ1UuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUucHJvIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KaW5kZXggNzQ4YzAzMjYzYTA1Mzhk
ZmNjN2MwY2U4MGIwMGQzNTg3N2FmMmQxYS4uNDc4ZjlhZjY3ZmUxYzdiNjg3YTFkYWIzNjllZDFm
ZGJjYzM5MjMyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KQEAgLTIwNzAsNiArMjA3MCw3IEBAIEhFQURFUlMg
Kz0gXAogICAgIHBhZ2UvRHJhZ0NvbnRyb2xsZXIuaCBcCiAgICAgcGFnZS9FdmVudEhhbmRsZXIu
aCBcCiAgICAgcGFnZS9FdmVudFNvdXJjZS5oIFwKKyAgICBwYWdlL0VkaXRvckNsaWVudC5oIFwK
ICAgICBwYWdlL0ZvY3VzQ29udHJvbGxlci5oIFwKICAgICBwYWdlL0ZyYW1lLmggXAogICAgIHBh
Z2UvRnJhbWVUcmVlLmggXApAQCAtMjE5Myw2ICsyMTk0LDcgQEAgSEVBREVSUyArPSBcCiAgICAg
cGxhdGZvcm0vS1VSTC5oIFwKICAgICBwbGF0Zm9ybS9MZW5ndGguaCBcCiAgICAgcGxhdGZvcm0v
dGV4dC9MaW5lRW5kaW5nLmggXAorICAgIHBsYXRmb3JtL3RleHQvVGV4dENoZWNrZXJDbGllbnQu
aCBcCiAgICAgcGxhdGZvcm0vTGlua0hhc2guaCBcCiAgICAgcGxhdGZvcm0vTG9nZ2luZy5oIFwK
ICAgICBwbGF0Zm9ybS9MYW5ndWFnZS5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3By
b2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggMmE4ZjM0MGE2OTQ5NzA1NzJmYzlhNTUwMDQ4YmYzODNh
ZmM5ZThiNC4uMjg2MTkyNzBmMzk3YTJkZGM3OTlhODc5Y2FjZjZkZGMyYTRhNGU3MCAxMDA3NTUK
LS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTMwMzY5LDYg
KzMwMzY5LDEwIEBACiAJCQkJCT4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKKwkJCQkJUmVsYXRp
dmVQYXRoPSIuLlxwbGF0Zm9ybVx0ZXh0XFRleHRDaGVja2VyQ2xpZW50LmgiCisJCQkJCT4KKwkJ
CQk8L0ZpbGU+CisJCQkJPEZpbGUKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVx0ZXh0
XFRleHRDb2RlY0lDVS5jcHAiCiAJCQkJCT4KIAkJCQkJPEZpbGVDb25maWd1cmF0aW9uCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2og
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
ZmMxNzkyNzBhNDk0ZTdkMjNjNTMyNjU0ZmVhM2FmNDNiNjhlYmUwNi4uNjc2Y2I0YjA1YWNmYzIz
ZmE5OGVhY2E5NzQwYjU2ODQ2ZTIwOTBhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzIxNyw2ICszMjE3LDcgQEAKIAkJQTdE
M0M1MjQwQjU3NkI0QjAwMkNBNDUwIC8qIFBhc3RlYm9hcmRIZWxwZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3RDNDNTIzMEI1NzZCNEIwMDJDQTQ1
MCAvKiBQYXN0ZWJvYXJkSGVscGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJQTdENkIzNDkwRjYxMTA0NTAwQjc5RkQxIC8qIFdvcmtlclNjcmlw
dExvYWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QTdENkIzNDcwRjYxMTA0NTAwQjc5RkQxIC8qIFdvcmtlclNjcmlwdExvYWRlci5oICovOyB9Owog
CQlBN0Q2QjM0QTBGNjExMDQ1MDBCNzlGRDEgLyogV29ya2VyU2NyaXB0TG9hZGVyLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3RDZCMzQ4MEY2MTEw
NDUwMEI3OUZEMSAvKiBXb3JrZXJTY3JpcHRMb2FkZXIuY3BwICovOyB9OworCQlBNzE1MUJEODEy
RjE1NThGMDA1QTBGNjQgLyogVGV4dENoZWNrZXJDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3MTUxQkQ3MTJGMTU1OEYwMDVBMEY2NCAvKiBU
ZXh0Q2hlY2tlckNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCUE3REJGOEREMTI3NjkxOUMwMDZCNjAwOCAvKiBUZXh0Q2hlY2tpbmdIZWxw
ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdE
QkY4REIxMjc2OTE5QzAwNkI2MDA4IC8qIFRleHRDaGVja2luZ0hlbHBlci5jcHAgKi87IH07CiAJ
CUE3REJGOERFMTI3NjkxOUMwMDZCNjAwOCAvKiBUZXh0Q2hlY2tpbmdIZWxwZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3REJGOERDMTI3NjkxOUMw
MDZCNjAwOCAvKiBUZXh0Q2hlY2tpbmdIZWxwZXIuaCAqLzsgfTsKIAkJQTdGMzM4QTMxMUMwRUZD
QTAwQTMyMEE3IC8qIFNoYWRvd0VsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQTdGMzM4QTExMUMwRUZDQTAwQTMyMEE3IC8qIFNoYWRvd0Vs
ZW1lbnQuY3BwICovOyB9OwpAQCAtOTU2OSw2ICs5NTcwLDcgQEAKIAkJQTYyMkE4RjYxMjJDNDRB
NjAwQTc4NUIzIC8qIEJpbmRpbmdTZWN1cml0eUJhc2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBuYW1lID0gQmluZGluZ1NlY3VyaXR5QmFzZS5jcHA7IHBhdGggPSBnZW5lcmlj
L0JpbmRpbmdTZWN1cml0eUJhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlB
NjIyQThGNzEyMkM0NEE2MDBBNzg1QjMgLyogQmluZGluZ1NlY3VyaXR5QmFzZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBCaW5kaW5nU2VjdXJpdHlCYXNlLmg7IHBhdGggPSBn
ZW5lcmljL0JpbmRpbmdTZWN1cml0eUJhc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQTYyMkE4RjkxMjJDNDRBNjAwQTc4NUIzIC8qIEdlbmVyaWNCaW5kaW5nLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEdlbmVyaWNCaW5kaW5nLmg7IHBhdGggPSBnZW5lcmlj
L0dlbmVyaWNCaW5kaW5nLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE3MTUxQkQ3
MTJGMTU1OEYwMDVBMEY2NCAvKiBUZXh0Q2hlY2tlckNsaWVudC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBUZXh0Q2hlY2tlckNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlBNzE4NzYwRDBCMkExMjAxMDBBMTZFQ0UgLyogRHJhZ0FjdGlvbnMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRHJhZ0FjdGlvbnMuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQTcxODc4OEYwQjJEMDRBQzAwQTE2RUNFIC8qIERyYWdDb250cm9s
bGVyTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRHJhZ0Nv
bnRyb2xsZXJNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3MUE3MEM5MTFB
RkIwMjAwMDk4OUQ2RCAvKiBIVE1MTWV0ZXJFbGVtZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBh
dGggPSBIVE1MTWV0ZXJFbGVtZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTE3NTg0LDYgKzE3NTg2LDcgQEAKIAkJCQlCMkMzREEwNjBEMDA2QzFEMDBFRjZGMjYgLyogVGV4
dEJyZWFrSXRlcmF0b3IuaCAqLywKIAkJCQlCMkMzREEwNzBEMDA2QzFEMDBFRjZGMjYgLyogVGV4
dEJyZWFrSXRlcmF0b3JJQ1UuY3BwICovLAogCQkJCUIyQzNEQTA4MEQwMDZDMUQwMEVGNkYyNiAv
KiBUZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVLmggKi8sCisJCQkJQTcxNTFCRDcxMkYxNTU4
RjAwNUEwRjY0IC8qIFRleHRDaGVja2VyQ2xpZW50LmggKi8sCiAJCQkJQjJDM0RBMDkwRDAwNkMx
RDAwRUY2RjI2IC8qIFRleHRDb2RlYy5jcHAgKi8sCiAJCQkJQjJDM0RBMEEwRDAwNkMxRDAwRUY2
RjI2IC8qIFRleHRDb2RlYy5oICovLAogCQkJCUIyQzNEQTBCMEQwMDZDMUQwMEVGNkYyNiAvKiBU
ZXh0Q29kZWNJQ1UuY3BwICovLApAQCAtMjIyMjYsNiArMjIyMjksNyBAQAogCQkJCUIyQzNEQTM0
MEQwMDZDMUQwMEVGNkYyNiAvKiBUZXh0Qm91bmRhcmllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QjJDM0RBMzYwRDAwNkMxRDAwRUY2RjI2IC8qIFRleHRCcmVha0l0ZXJhdG9yLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCMkMzREEzODBEMDA2QzFEMDBFRjZGMjYgLyogVGV4dEJyZWFrSXRlcmF0b3JJ
bnRlcm5hbElDVS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTcxNTFCRDgxMkYxNTU4RjAwNUEwRjY0
IC8qIFRleHRDaGVja2VyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlBN0RCRjhERTEyNzY5
MTlDMDA2QjYwMDggLyogVGV4dENoZWNraW5nSGVscGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlC
MkMzREEzQTBEMDA2QzFEMDBFRjZGMjYgLyogVGV4dENvZGVjLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCMkMzREEzQzBEMDA2QzFEMDBFRjZGMjYgLyogVGV4dENvZGVjSUNVLmggaW4gSGVhZGVycyAq
LywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FjY2Vzc2li
aWxpdHlPYmplY3RXcmFwcGVyLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMv
QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIubW0KaW5kZXggOGZlM2E0OTk4YTI1MDA5NWM0ZTFm
MGVkYWFmNzZhNzVmYTgxZGQ1Mi4uOTI4NDE2NjM2ZDgxYTdiNzYyN2ZmZDk2MTgxODA5ZDdmNjYx
YzFmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQWNjZXNz
aWJpbGl0eU9iamVjdFdyYXBwZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9tYWMvQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIubW0KQEAgLTU4LDYgKzU4LDcgQEAKICNp
bXBvcnQgIlNjcm9sbFZpZXcuaCIKICNpbXBvcnQgIlNlbGVjdGlvbkNvbnRyb2xsZXIuaCIKICNp
bXBvcnQgIlNpbXBsZUZvbnREYXRhLmgiCisjaW1wb3J0ICJUZXh0Q2hlY2tlckNsaWVudC5oIgog
I2ltcG9ydCAiVGV4dEl0ZXJhdG9yLmgiCiAjaW1wb3J0ICJXZWJDb3JlRnJhbWVWaWV3LmgiCiAj
aW1wb3J0ICJXZWJDb3JlT2JqQ0V4dHJhcy5oIgpAQCAtNDg3LDcgKzQ4OCw3IEBAIHN0YXRpYyB2
b2lkIEFYQXR0cmlidXRlU3RyaW5nU2V0U3BlbGxpbmcoTlNNdXRhYmxlQXR0cmlidXRlZFN0cmlu
ZyogYXR0clN0cmluZywKIAogICAgICAgICBpbnQgbWlzc3BlbGxpbmdMb2NhdGlvbiA9IC0xOwog
ICAgICAgICBpbnQgbWlzc3BlbGxpbmdMZW5ndGggPSAwOwotICAgICAgICBjbGllbnQtPmNoZWNr
U3BlbGxpbmdPZlN0cmluZyhjaGFyRGF0YSwgY2hhckxlbmd0aCwgJm1pc3NwZWxsaW5nTG9jYXRp
b24sICZtaXNzcGVsbGluZ0xlbmd0aCk7CisgICAgICAgIGNsaWVudC0+dGV4dENoZWNrZXIoKS0+
Y2hlY2tTcGVsbGluZ09mU3RyaW5nKGNoYXJEYXRhLCBjaGFyTGVuZ3RoLCAmbWlzc3BlbGxpbmdM
b2NhdGlvbiwgJm1pc3NwZWxsaW5nTGVuZ3RoKTsKICAgICAgICAgaWYgKG1pc3NwZWxsaW5nTG9j
YXRpb24gPT0gLTEgfHwgIW1pc3NwZWxsaW5nTGVuZ3RoKQogICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCmluZGV4IDk5NjI0YjMyYjQyZmQwNzdm
M2RjMmE2ZjljNDdhNDJlMDZjNzdlNzUuLjYzODAwZmVkZTYwOWViNzFkYzZhMzdhYmFiNTJlZDBi
ZjA2YTI3ODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKQEAgLTY0LDYgKzY0LDcgQEAK
ICNpbmNsdWRlICJOb2RlTGlzdC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQYXN0
ZWJvYXJkLmgiCisjaW5jbHVkZSAiVGV4dENoZWNrZXJDbGllbnQuaCIKICNpbmNsdWRlICJUZXh0
Q2hlY2tpbmdIZWxwZXIuaCIKICNpbmNsdWRlICJSZW1vdmVGb3JtYXRDb21tYW5kLmgiCiAjaW5j
bHVkZSAiUmVuZGVyQmxvY2suaCIKQEAgLTE3MSw2ICsxNzIsMTQgQEAgRWRpdG9yQ2xpZW50KiBF
ZGl0b3I6OmNsaWVudCgpIGNvbnN0CiAgICAgcmV0dXJuIDA7CiB9CiAKKworVGV4dENoZWNrZXJD
bGllbnQqIEVkaXRvcjo6dGV4dENoZWNrZXIoKSBjb25zdAoreworICAgIGlmIChFZGl0b3JDbGll
bnQqIG93bmVyID0gY2xpZW50KCkpCisgICAgICAgIHJldHVybiBvd25lci0+dGV4dENoZWNrZXIo
KTsKKyAgICByZXR1cm4gMDsKK30KKwogdm9pZCBFZGl0b3I6OmhhbmRsZUtleWJvYXJkRXZlbnQo
S2V5Ym9hcmRFdmVudCogZXZlbnQpCiB7CiAgICAgaWYgKEVkaXRvckNsaWVudCogYyA9IGNsaWVu
dCgpKQpAQCAtMTc0Niw3ICsxNzU1LDcgQEAgdm9pZCBFZGl0b3I6Omlnbm9yZVNwZWxsaW5nKCkK
IAogICAgIFN0cmluZyB0ZXh0ID0gc2VsZWN0ZWRUZXh0KCk7CiAgICAgQVNTRVJUKHRleHQubGVu
Z3RoKCkpOwotICAgIGNsaWVudCgpLT5pZ25vcmVXb3JkSW5TcGVsbERvY3VtZW50KHRleHQpOwor
ICAgIHRleHRDaGVja2VyKCktPmlnbm9yZVdvcmRJblNwZWxsRG9jdW1lbnQodGV4dCk7CiB9CiAK
IHZvaWQgRWRpdG9yOjpsZWFyblNwZWxsaW5nKCkKQEAgLTE3NTksNyArMTc2OCw3IEBAIHZvaWQg
RWRpdG9yOjpsZWFyblNwZWxsaW5nKCkKIAogICAgIFN0cmluZyB0ZXh0ID0gc2VsZWN0ZWRUZXh0
KCk7CiAgICAgQVNTRVJUKHRleHQubGVuZ3RoKCkpOwotICAgIGNsaWVudCgpLT5sZWFybldvcmQo
dGV4dCk7CisgICAgdGV4dENoZWNrZXIoKS0+bGVhcm5Xb3JkKHRleHQpOwogfQogCiB2b2lkIEVk
aXRvcjo6YWR2YW5jZVRvTmV4dE1pc3NwZWxsaW5nKGJvb2wgc3RhcnRCZWZvcmVTZWxlY3Rpb24p
CkBAIC0xOTQ5LDcgKzE5NTgsNyBAQCBib29sIEVkaXRvcjo6aXNTZWxlY3Rpb25NaXNzcGVsbGVk
KCkKICAgICAKICAgICBpbnQgbWlzc3BlbGxpbmdMb2NhdGlvbiA9IC0xOwogICAgIGludCBtaXNz
cGVsbGluZ0xlbmd0aCA9IDA7Ci0gICAgY2xpZW50KCktPmNoZWNrU3BlbGxpbmdPZlN0cmluZyhz
ZWxlY3RlZFN0cmluZy5jaGFyYWN0ZXJzKCksIGxlbmd0aCwgJm1pc3NwZWxsaW5nTG9jYXRpb24s
ICZtaXNzcGVsbGluZ0xlbmd0aCk7CisgICAgdGV4dENoZWNrZXIoKS0+Y2hlY2tTcGVsbGluZ09m
U3RyaW5nKHNlbGVjdGVkU3RyaW5nLmNoYXJhY3RlcnMoKSwgbGVuZ3RoLCAmbWlzc3BlbGxpbmdM
b2NhdGlvbiwgJm1pc3NwZWxsaW5nTGVuZ3RoKTsKICAgICAKICAgICAvLyBUaGUgc2VsZWN0aW9u
IG9ubHkgY291bnRzIGFzIG1pc3NwZWxsZWQgaWYgdGhlIHNlbGVjdGVkIHRleHQgaXMgZXhhY3Rs
eSBvbmUgbWlzc3BlbGxlZCB3b3JkCiAgICAgaWYgKG1pc3NwZWxsaW5nTGVuZ3RoICE9IGxlbmd0
aCkKQEAgLTE5OTMsNyArMjAwMiw3IEBAIFZlY3RvcjxTdHJpbmc+IEVkaXRvcjo6Z3Vlc3Nlc0Zv
ck1pc3NwZWxsZWRTZWxlY3Rpb24oKQogCiAgICAgVmVjdG9yPFN0cmluZz4gZ3Vlc3NlczsKICAg
ICBpZiAoY2xpZW50KCkpCi0gICAgICAgIGNsaWVudCgpLT5nZXRHdWVzc2VzRm9yV29yZChzZWxl
Y3RlZFN0cmluZywgU3RyaW5nKCksIGd1ZXNzZXMpOworICAgICAgICB0ZXh0Q2hlY2tlcigpLT5n
ZXRHdWVzc2VzRm9yV29yZChzZWxlY3RlZFN0cmluZywgU3RyaW5nKCksIGd1ZXNzZXMpOwogICAg
IHJldHVybiBndWVzc2VzOwogfQogCkBAIC0yMTI1LDcgKzIxMzQsNyBAQCB2b2lkIEVkaXRvcjo6
bWFya01pc3NwZWxsaW5nc0FmdGVyVHlwaW5nVG9Xb3JkKGNvbnN0IFZpc2libGVQb3NpdGlvbiAm
d29yZFN0YXJ0LAogICAgIAogICAgIC8vIEdldCB0aGUgbWlzc3BlbGxlZCB3b3JkLgogICAgIGNv
bnN0IFN0cmluZyBtaXNzcGVsbGVkV29yZCA9IHBsYWluVGV4dChtaXNzcGVsbGluZ1JhbmdlLmdl
dCgpKTsKLSAgICBTdHJpbmcgYXV0b2NvcnJlY3RlZFN0cmluZyA9IGNsaWVudCgpLT5nZXRBdXRv
Q29ycmVjdFN1Z2dlc3Rpb25Gb3JNaXNzcGVsbGVkV29yZChtaXNzcGVsbGVkV29yZCk7CisgICAg
U3RyaW5nIGF1dG9jb3JyZWN0ZWRTdHJpbmcgPSB0ZXh0Q2hlY2tlcigpLT5nZXRBdXRvQ29ycmVj
dFN1Z2dlc3Rpb25Gb3JNaXNzcGVsbGVkV29yZChtaXNzcGVsbGVkV29yZCk7CiAKICAgICAvLyBJ
ZiBhdXRvY29ycmVjdGVkIHdvcmQgaXMgbm9uIGVtcHR5LCByZXBsYWNlIHRoZSBtaXNzcGVsbGVk
IHdvcmQgYnkgdGhpcyB3b3JkLgogICAgIGlmICghYXV0b2NvcnJlY3RlZFN0cmluZy5pc0VtcHR5
KCkpIHsKQEAgLTIyOTYsNyArMjMwNSw3IEBAIHZvaWQgRWRpdG9yOjptYXJrQWxsTWlzc3BlbGxp
bmdzQW5kQmFkR3JhbW1hckluUmFuZ2VzKFRleHRDaGVja2luZ09wdGlvbnMgdGV4dENoCiAgICAg
ICAgIGlmIChzaG91bGRNYXJrU3BlbGxpbmcgJiYgaXNBdXRvbWF0aWNTcGVsbGluZ0NvcnJlY3Rp
b25FbmFibGVkKCkpCiAgICAgICAgICAgICBjaGVja2luZ1R5cGVzIHw9IFRleHRDaGVja2luZ1R5
cGVDb3JyZWN0aW9uOwogICAgIH0KLSAgICBjbGllbnQoKS0+Y2hlY2tUZXh0T2ZQYXJhZ3JhcGgo
cGFyYWdyYXBoLnRleHRDaGFyYWN0ZXJzKCksIHBhcmFncmFwaC50ZXh0TGVuZ3RoKCksIGNoZWNr
aW5nVHlwZXMsIHJlc3VsdHMpOworICAgIHRleHRDaGVja2VyKCktPmNoZWNrVGV4dE9mUGFyYWdy
YXBoKHBhcmFncmFwaC50ZXh0Q2hhcmFjdGVycygpLCBwYXJhZ3JhcGgudGV4dExlbmd0aCgpLCBj
aGVja2luZ1R5cGVzLCByZXN1bHRzKTsKIAogI2lmIFNVUFBPUlRfQVVUT0NPUlJFQ1RJT05fUEFO
RUwKICAgICAvLyBJZiB0aGlzIGNoZWNraW5nIGlzIG9ubHkgZm9yIHNob3dpbmcgY29ycmVjdGlv
biBwYW5lbCwgd2Ugc2hvdWxkbid0IGJvdGhlciB0byBtYXJrIG1pc3NwZWxsaW5ncy4KQEAgLTI1
MTAsNyArMjUxOSw3IEBAIHZvaWQgRWRpdG9yOjpjb3JyZWN0aW9uUGFuZWxUaW1lckZpcmVkKFRp
bWVyPEVkaXRvcj4qKQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIFN0cmluZyBwYXJhZ3Jh
cGhUZXh0ID0gcGxhaW5UZXh0KFRleHRDaGVja2luZ1BhcmFncmFwaChtX2NvcnJlY3Rpb25QYW5l
bEluZm8ucmFuZ2VUb0JlUmVwbGFjZWQpLnBhcmFncmFwaFJhbmdlKCkuZ2V0KCkpOwogICAgICAg
ICBWZWN0b3I8U3RyaW5nPiBzdWdnZXN0aW9uczsKLSAgICAgICAgY2xpZW50KCktPmdldEd1ZXNz
ZXNGb3JXb3JkKG1fY29ycmVjdGlvblBhbmVsSW5mby5yZXBsYWNlZFN0cmluZywgcGFyYWdyYXBo
VGV4dCwgc3VnZ2VzdGlvbnMpOworICAgICAgICB0ZXh0Q2hlY2tlcigpLT5nZXRHdWVzc2VzRm9y
V29yZChtX2NvcnJlY3Rpb25QYW5lbEluZm8ucmVwbGFjZWRTdHJpbmcsIHBhcmFncmFwaFRleHQs
IHN1Z2dlc3Rpb25zKTsKICAgICAgICAgaWYgKHN1Z2dlc3Rpb25zLmlzRW1wdHkoKSkgewogICAg
ICAgICAgICAgbV9jb3JyZWN0aW9uUGFuZWxJbmZvLnJhbmdlVG9CZVJlcGxhY2VkLmNsZWFyKCk7
CiAgICAgICAgICAgICBicmVhazsKQEAgLTM1MzMsNSArMzU0Miw0IEBAIGJvb2wgRWRpdG9yOjpz
ZWxlY3Rpb25TdGFydEhhc1NwZWxsaW5nTWFya2VyRm9yKGludCBmcm9tLCBpbnQgbGVuZ3RoKSBj
b25zdAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9FZGl0b3IuaAppbmRleCAwYTA2YTRhZmY2YzdlNGI5MjUyMDc5ODQxMzVhM2I5
NmJkN2MwNTM0Li45MzM1N2UyYWI1ZDk5NDU2MzQ1YmVlMzY2ZjNhNjAwMGQ4NTMwNGU4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRWRpdG9yLmgKQEAgLTYxLDYgKzYxLDcgQEAgY2xhc3MgUGFzdGVib2FyZDsK
IGNsYXNzIFNpbXBsZUZvbnREYXRhOwogY2xhc3MgU3BlbGxDaGVja2VyOwogY2xhc3MgVGV4dDsK
K2NsYXNzIFRleHRDaGVja2VyQ2xpZW50OwogY2xhc3MgVGV4dEV2ZW50OwogCiBzdHJ1Y3QgQ29t
cG9zaXRpb25VbmRlcmxpbmUgewpAQCAtNDI1LDYgKzQyNiw4IEBAIHByaXZhdGU6CiAgICAgdm9p
ZCBkaXNtaXNzQ29ycmVjdGlvblBhbmVsKFJlYXNvbkZvckRpc21pc3NpbmdDb3JyZWN0aW9uUGFu
ZWwpOwogICAgIHZvaWQgYXBwbHlDb3JyZWN0aW9uUGFuZWxJbmZvKGNvbnN0IFZlY3RvcjxEb2N1
bWVudE1hcmtlcjo6TWFya2VyVHlwZT4mIG1hcmtlclR5cGVzVG9BZGQpOwogICAgIHZvaWQgYXBw
bHlBdXRvY29ycmVjdGlvbkJlZm9yZVR5cGluZ0lmQXBwcm9wcmlhdGUoKTsKKworICAgIFRleHRD
aGVja2VyQ2xpZW50KiB0ZXh0Q2hlY2tlcigpIGNvbnN0OwogfTsKIAogaW5saW5lIHZvaWQgRWRp
dG9yOjpzZXRTdGFydE5ld0tpbGxSaW5nU2VxdWVuY2UoYm9vbCBmbGFnKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGVsbENoZWNrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9TcGVsbENoZWNrZXIuY3BwCmluZGV4IGYxNGE3NGQ2NzY0M2YyNzg3YzQwZTQxNzgw
YjdjNzcxYTEzOThhMDMuLmExMTNkMDJmMjBhMjA3YjFkYWMzNDQ1NTQzNzA2ZjJmMjEyMDk2M2Ig
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BlbGxDaGVja2VyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwZWxsQ2hlY2tlci5jcHAKQEAgLTM3LDYgKzM3LDcg
QEAKICNpbmNsdWRlICJSYW5nZS5oIgogI2luY2x1ZGUgIlJlbmRlck9iamVjdC5oIgogI2luY2x1
ZGUgIlNldHRpbmdzLmgiCisjaW5jbHVkZSAiVGV4dENoZWNrZXJDbGllbnQuaCIKICNpbmNsdWRl
ICJUZXh0SXRlcmF0b3IuaCIKICNpbmNsdWRlICJodG1sZWRpdGluZy5oIgogCkBAIC0xMDUsNyAr
MTA2LDcgQEAgdm9pZCBTcGVsbENoZWNrZXI6OnJlcXVlc3RDaGVja2luZ0ZvcihOb2RlKiBub2Rl
KQogCiAgICAgaWYgKCFpbml0UmVxdWVzdChub2RlKSkKICAgICAgICAgcmV0dXJuOwotICAgIG1f
Y2xpZW50LT5yZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyh0aGlzLCBtX3JlcXVlc3RTZXF1ZW5jZSwg
bV9yZXF1ZXN0VGV4dCk7CisgICAgbV9jbGllbnQtPnRleHRDaGVja2VyKCktPnJlcXVlc3RDaGVj
a2luZ09mU3RyaW5nKHRoaXMsIG1fcmVxdWVzdFNlcXVlbmNlLCBtX3JlcXVlc3RUZXh0KTsKIH0K
IAogc3RhdGljIGJvb2wgZm9yd2FyZEl0ZXJhdG9yKFBvc2l0aW9uSXRlcmF0b3ImIGl0ZXJhdG9y
LCBpbnQgZGlzdGFuY2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRD
aGVja2luZ0hlbHBlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRDaGVja2luZ0hl
bHBlci5jcHAKaW5kZXggYjQ0MjlhNjQ2ZmJjNmJmNjkyMzgzMTg4ZWRlMTY3MjI3MWJlM2FhYS4u
ZTU1NTNmZDEwMjkyZmU1ODdmMGUyMzMwZDE2NWU4ZTE3NzI4ZTQxZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0Q2hlY2tpbmdIZWxwZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvVGV4dENoZWNraW5nSGVscGVyLmNwcApAQCAtMjksNiArMjksNyBAQAog
CiAjaW5jbHVkZSAiRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiUmFuZ2Uu
aCIKKyNpbmNsdWRlICJUZXh0Q2hlY2tlckNsaWVudC5oIgogI2luY2x1ZGUgIlRleHRJdGVyYXRv
ci5oIgogI2luY2x1ZGUgIlZpc2libGVQb3NpdGlvbi5oIgogI2luY2x1ZGUgInZpc2libGVfdW5p
dHMuaCIKQEAgLTE3OSw3ICsxODAsNyBAQCBTdHJpbmcgVGV4dENoZWNraW5nSGVscGVyOjpmaW5k
Rmlyc3RNaXNzcGVsbGluZyhpbnQmIGZpcnN0TWlzc3BlbGxpbmdPZmZzZXQsIGJvbwogICAgICAg
ICAgICAgCiAgICAgICAgICAgICBpbnQgbWlzc3BlbGxpbmdMb2NhdGlvbiA9IC0xOwogICAgICAg
ICAgICAgaW50IG1pc3NwZWxsaW5nTGVuZ3RoID0gMDsKLSAgICAgICAgICAgIG1fY2xpZW50LT5j
aGVja1NwZWxsaW5nT2ZTdHJpbmcoY2hhcnMsIGxlbiwgJm1pc3NwZWxsaW5nTG9jYXRpb24sICZt
aXNzcGVsbGluZ0xlbmd0aCk7CisgICAgICAgICAgICBtX2NsaWVudC0+dGV4dENoZWNrZXIoKS0+
Y2hlY2tTcGVsbGluZ09mU3RyaW5nKGNoYXJzLCBsZW4sICZtaXNzcGVsbGluZ0xvY2F0aW9uLCAm
bWlzc3BlbGxpbmdMZW5ndGgpOwogCiAgICAgICAgICAgICAvLyA1NDkwNjI3IHNob3dzIHRoYXQg
dGhlcmUgd2FzIHNvbWUgY29kZSBwYXRoIGhlcmUgd2hlcmUgdGhlIFN0cmluZyBjb25zdHJ1Y3Rv
ciBiZWxvdyBjcmFzaGVzLgogICAgICAgICAgICAgLy8gV2UgZG9uJ3Qga25vdyBleGFjdGx5IHdo
YXQgY29tYmluYXRpb24gb2YgYmFkIGlucHV0IGNhdXNlZCB0aGlzLCBzbyB3ZSdyZSBtYWtpbmcg
dGhpcyBtdWNoCkBAIC0yNzQsNyArMjc1LDcgQEAgU3RyaW5nIFRleHRDaGVja2luZ0hlbHBlcjo6
ZmluZEZpcnN0TWlzc3BlbGxpbmdPckJhZEdyYW1tYXIoYm9vbCBjaGVja0dyYW1tYXIsIGIKICAg
ICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICBWZWN0b3I8VGV4dENoZWNraW5nUmVzdWx0
PiByZXN1bHRzOwogICAgICAgICAgICAgICAgIHVpbnQ2NF90IGNoZWNraW5nVHlwZXMgPSBjaGVj
a0dyYW1tYXIgPyAoVGV4dENoZWNraW5nVHlwZVNwZWxsaW5nIHwgVGV4dENoZWNraW5nVHlwZUdy
YW1tYXIpIDogVGV4dENoZWNraW5nVHlwZVNwZWxsaW5nOwotICAgICAgICAgICAgICAgIG1fY2xp
ZW50LT5jaGVja1RleHRPZlBhcmFncmFwaChwYXJhZ3JhcGhTdHJpbmcuY2hhcmFjdGVycygpLCBw
YXJhZ3JhcGhTdHJpbmcubGVuZ3RoKCksIGNoZWNraW5nVHlwZXMsIHJlc3VsdHMpOworICAgICAg
ICAgICAgICAgIG1fY2xpZW50LT50ZXh0Q2hlY2tlcigpLT5jaGVja1RleHRPZlBhcmFncmFwaChw
YXJhZ3JhcGhTdHJpbmcuY2hhcmFjdGVycygpLCBwYXJhZ3JhcGhTdHJpbmcubGVuZ3RoKCksIGNo
ZWNraW5nVHlwZXMsIHJlc3VsdHMpOwogICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAg
IGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCByZXN1bHRzLnNpemUoKTsgaSsrKSB7CiAgICAgICAg
ICAgICAgICAgICAgIGNvbnN0IFRleHRDaGVja2luZ1Jlc3VsdCogcmVzdWx0ID0gJnJlc3VsdHNb
aV07CkBAIC00MjIsNyArNDIzLDcgQEAgU3RyaW5nIFRleHRDaGVja2luZ0hlbHBlcjo6ZmluZEZp
cnN0QmFkR3JhbW1hcihHcmFtbWFyRGV0YWlsJiBvdXRHcmFtbWFyRGV0YWlsLAogICAgICAgICBW
ZWN0b3I8R3JhbW1hckRldGFpbD4gZ3JhbW1hckRldGFpbHM7CiAgICAgICAgIGludCBiYWRHcmFt
bWFyUGhyYXNlTG9jYXRpb24gPSAtMTsKICAgICAgICAgaW50IGJhZEdyYW1tYXJQaHJhc2VMZW5n
dGggPSAwOwotICAgICAgICBtX2NsaWVudC0+Y2hlY2tHcmFtbWFyT2ZTdHJpbmcocGFyYWdyYXBo
LnRleHRDaGFyYWN0ZXJzKCkgKyBzdGFydE9mZnNldCwgcGFyYWdyYXBoLnRleHRMZW5ndGgoKSAt
IHN0YXJ0T2Zmc2V0LCBncmFtbWFyRGV0YWlscywgJmJhZEdyYW1tYXJQaHJhc2VMb2NhdGlvbiwg
JmJhZEdyYW1tYXJQaHJhc2VMZW5ndGgpOworICAgICAgICBtX2NsaWVudC0+dGV4dENoZWNrZXIo
KS0+Y2hlY2tHcmFtbWFyT2ZTdHJpbmcocGFyYWdyYXBoLnRleHRDaGFyYWN0ZXJzKCkgKyBzdGFy
dE9mZnNldCwgcGFyYWdyYXBoLnRleHRMZW5ndGgoKSAtIHN0YXJ0T2Zmc2V0LCBncmFtbWFyRGV0
YWlscywgJmJhZEdyYW1tYXJQaHJhc2VMb2NhdGlvbiwgJmJhZEdyYW1tYXJQaHJhc2VMZW5ndGgp
OwogICAgICAgICAKICAgICAgICAgaWYgKCFiYWRHcmFtbWFyUGhyYXNlTGVuZ3RoKSB7CiAgICAg
ICAgICAgICBBU1NFUlQoYmFkR3JhbW1hclBocmFzZUxvY2F0aW9uID09IC0xKTsKQEAgLTUzNSwx
NCArNTM2LDE0IEBAIFZlY3RvcjxTdHJpbmc+IFRleHRDaGVja2luZ0hlbHBlcjo6Z3Vlc3Nlc0Zv
ck1pc3NwZWxsZWRPclVuZ3JhbW1hdGljYWxSYW5nZShib29sCiAKICAgICBWZWN0b3I8VGV4dENo
ZWNraW5nUmVzdWx0PiByZXN1bHRzOwogICAgIHVpbnQ2NF90IGNoZWNraW5nVHlwZXMgPSBjaGVj
a0dyYW1tYXIgPyAoVGV4dENoZWNraW5nVHlwZVNwZWxsaW5nIHwgVGV4dENoZWNraW5nVHlwZUdy
YW1tYXIpIDogVGV4dENoZWNraW5nVHlwZVNwZWxsaW5nOwotICAgIG1fY2xpZW50LT5jaGVja1Rl
eHRPZlBhcmFncmFwaChwYXJhZ3JhcGgudGV4dENoYXJhY3RlcnMoKSwgcGFyYWdyYXBoLnRleHRM
ZW5ndGgoKSwgY2hlY2tpbmdUeXBlcywgcmVzdWx0cyk7CisgICAgbV9jbGllbnQtPnRleHRDaGVj
a2VyKCktPmNoZWNrVGV4dE9mUGFyYWdyYXBoKHBhcmFncmFwaC50ZXh0Q2hhcmFjdGVycygpLCBw
YXJhZ3JhcGgudGV4dExlbmd0aCgpLCBjaGVja2luZ1R5cGVzLCByZXN1bHRzKTsKICAgICAKICAg
ICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcmVzdWx0cy5zaXplKCk7IGkrKykgewogICAgICAg
ICBjb25zdCBUZXh0Q2hlY2tpbmdSZXN1bHQqIHJlc3VsdCA9ICZyZXN1bHRzW2ldOwogICAgICAg
ICBpZiAocmVzdWx0LT50eXBlID09IFRleHRDaGVja2luZ1R5cGVTcGVsbGluZyAmJiBwYXJhZ3Jh
cGguY2hlY2tpbmdSYW5nZU1hdGNoZXMocmVzdWx0LT5sb2NhdGlvbiwgcmVzdWx0LT5sZW5ndGgp
KSB7CiAgICAgICAgICAgICBTdHJpbmcgbWlzc3BlbGxlZFdvcmQgPSBwYXJhZ3JhcGguY2hlY2tp
bmdTdWJzdHJpbmcoKTsKICAgICAgICAgICAgIEFTU0VSVChtaXNzcGVsbGVkV29yZC5sZW5ndGgo
KSk7Ci0gICAgICAgICAgICBtX2NsaWVudC0+Z2V0R3Vlc3Nlc0ZvcldvcmQobWlzc3BlbGxlZFdv
cmQsIFN0cmluZygpLCBndWVzc2VzKTsKKyAgICAgICAgICAgIG1fY2xpZW50LT50ZXh0Q2hlY2tl
cigpLT5nZXRHdWVzc2VzRm9yV29yZChtaXNzcGVsbGVkV29yZCwgU3RyaW5nKCksIGd1ZXNzZXMp
OwogICAgICAgICAgICAgbV9jbGllbnQtPnVwZGF0ZVNwZWxsaW5nVUlXaXRoTWlzc3BlbGxlZFdv
cmQobWlzc3BlbGxlZFdvcmQpOwogICAgICAgICAgICAgbWlzc3BlbGxlZCA9IHRydWU7CiAgICAg
ICAgICAgICByZXR1cm4gZ3Vlc3NlczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9FbXB0eUNsaWVudHMuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaApp
bmRleCBlYzc5NDc2YzI4Y2I5YzA1Y2JhMWUzZGU5NTdmZTNlYmNiZDQ3NzA1Li4wZjNkMzFhZTRi
YmNkYjUyN2M5ZjBkY2Q2MGU2ZmE4NTRjZTFiYTc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5
Q2xpZW50cy5oCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiRHJhZ0NsaWVudC5oIgogI2lu
Y2x1ZGUgIkVkaXRDb21tYW5kLmgiCiAjaW5jbHVkZSAiRWRpdG9yQ2xpZW50LmgiCisjaW5jbHVk
ZSAiVGV4dENoZWNrZXJDbGllbnQuaCIKICNpbmNsdWRlICJGbG9hdFJlY3QuaCIKICNpbmNsdWRl
ICJGb2N1c0RpcmVjdGlvbi5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50LmgiCkBAIC0z
OTUsNiArMzk2LDIyIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8RnJhbWVOZXR3
b3JraW5nQ29udGV4dD4gY3JlYXRlTmV0d29ya2luZ0NvbnRleHQoKSB7IHJldHVybiBQYXNzUmVm
UHRyPEZyYW1lTmV0d29ya2luZ0NvbnRleHQ+KCk7IH0KIH07CiAKK2NsYXNzIEVtcHR5VGV4dENo
ZWNrZXJDbGllbnQgOiBwdWJsaWMgVGV4dENoZWNrZXJDbGllbnQgeworcHVibGljOgorICAgIHZp
cnR1YWwgdm9pZCBpZ25vcmVXb3JkSW5TcGVsbERvY3VtZW50KGNvbnN0IFN0cmluZyYpIHsgfQor
ICAgIHZpcnR1YWwgdm9pZCBsZWFybldvcmQoY29uc3QgU3RyaW5nJikgeyB9CisgICAgdmlydHVh
bCB2b2lkIGNoZWNrU3BlbGxpbmdPZlN0cmluZyhjb25zdCBVQ2hhciosIGludCwgaW50KiwgaW50
KikgeyB9CisgICAgdmlydHVhbCBTdHJpbmcgZ2V0QXV0b0NvcnJlY3RTdWdnZXN0aW9uRm9yTWlz
c3BlbGxlZFdvcmQoY29uc3QgU3RyaW5nJikgeyByZXR1cm4gU3RyaW5nKCk7IH0KKyAgICB2aXJ0
dWFsIHZvaWQgY2hlY2tHcmFtbWFyT2ZTdHJpbmcoY29uc3QgVUNoYXIqLCBpbnQsIFZlY3RvcjxH
cmFtbWFyRGV0YWlsPiYsIGludCosIGludCopIHsgfQorCisjaWYgUExBVEZPUk0oTUFDKSAmJiAh
ZGVmaW5lZChCVUlMRElOR19PTl9USUdFUikgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFS
RCkKKyAgICB2aXJ0dWFsIHZvaWQgY2hlY2tUZXh0T2ZQYXJhZ3JhcGgoY29uc3QgVUNoYXIqLCBp
bnQsIHVpbnQ2NF90LCBWZWN0b3I8VGV4dENoZWNraW5nUmVzdWx0PiYpIHsgfTsKKyNlbmRpZgor
CisgICAgdmlydHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYsIGNvbnN0
IFN0cmluZyYsIFZlY3RvcjxTdHJpbmc+JikgeyB9CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RD
aGVja2luZ09mU3RyaW5nKFNwZWxsQ2hlY2tlciosIGludCwgY29uc3QgU3RyaW5nJikgeyB9Cit9
OworCiBjbGFzcyBFbXB0eUVkaXRvckNsaWVudCA6IHB1YmxpYyBFZGl0b3JDbGllbnQgewogICAg
IFdURl9NQUtFX05PTkNPUFlBQkxFKEVtcHR5RWRpdG9yQ2xpZW50KTsgV1RGX01BS0VfRkFTVF9B
TExPQ0FURUQ7CiBwdWJsaWM6CkBAIC00ODcsMTQgKzUwNCw4IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIGJvb2wgaXNBdXRvbWF0aWNTcGVsbGluZ0NvcnJlY3Rpb25FbmFibGVkKCkgeyByZXR1cm4g
ZmFsc2U7IH0KICAgICB2aXJ0dWFsIHZvaWQgdG9nZ2xlQXV0b21hdGljU3BlbGxpbmdDb3JyZWN0
aW9uKCkgeyB9CiAjZW5kaWYKLSAgICB2aXJ0dWFsIHZvaWQgaWdub3JlV29yZEluU3BlbGxEb2N1
bWVudChjb25zdCBTdHJpbmcmKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgbGVhcm5Xb3JkKGNvbnN0
IFN0cmluZyYpIHsgfQotICAgIHZpcnR1YWwgdm9pZCBjaGVja1NwZWxsaW5nT2ZTdHJpbmcoY29u
c3QgVUNoYXIqLCBpbnQsIGludCosIGludCopIHsgfQotICAgIHZpcnR1YWwgU3RyaW5nIGdldEF1
dG9Db3JyZWN0U3VnZ2VzdGlvbkZvck1pc3NwZWxsZWRXb3JkKGNvbnN0IFN0cmluZyYpIHsgcmV0
dXJuIFN0cmluZygpOyB9Ci0gICAgdmlydHVhbCB2b2lkIGNoZWNrR3JhbW1hck9mU3RyaW5nKGNv
bnN0IFVDaGFyKiwgaW50LCBWZWN0b3I8R3JhbW1hckRldGFpbD4mLCBpbnQqLCBpbnQqKSB7IH0K
LSNpZiBQTEFURk9STShNQUMpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1RJR0VSKSAmJiAhZGVm
aW5lZChCVUlMRElOR19PTl9MRU9QQVJEKQotICAgIHZpcnR1YWwgdm9pZCBjaGVja1RleHRPZlBh
cmFncmFwaChjb25zdCBVQ2hhciosIGludCwgdWludDY0X3QsIFZlY3RvcjxUZXh0Q2hlY2tpbmdS
ZXN1bHQ+JikgeyB9OwotI2VuZGlmCisgICAgVGV4dENoZWNrZXJDbGllbnQqIHRleHRDaGVja2Vy
KCkgeyByZXR1cm4gJm1fdGV4dENoZWNrZXJDbGllbnQ7IH0KKwogI2lmIFNVUFBPUlRfQVVUT0NP
UlJFQ1RJT05fUEFORUwKICAgICB2aXJ0dWFsIHZvaWQgc2hvd0NvcnJlY3Rpb25QYW5lbChDb3Jy
ZWN0aW9uUGFuZWxJbmZvOjpQYW5lbFR5cGUsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IFN0cmlu
ZyYsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgRWRpdG9yKikgeyB9CiAg
ICAgdmlydHVhbCB2b2lkIGRpc21pc3NDb3JyZWN0aW9uUGFuZWwoUmVhc29uRm9yRGlzbWlzc2lu
Z0NvcnJlY3Rpb25QYW5lbCkgeyB9CkBAIC01MDQsMTAgKzUxNSwxMiBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCB2b2lkIHVwZGF0ZVNwZWxsaW5nVUlXaXRoTWlzc3BlbGxlZFdvcmQoY29uc3QgU3Ry
aW5nJikgeyB9CiAgICAgdmlydHVhbCB2b2lkIHNob3dTcGVsbGluZ1VJKGJvb2wpIHsgfQogICAg
IHZpcnR1YWwgYm9vbCBzcGVsbGluZ1VJSXNTaG93aW5nKCkgeyByZXR1cm4gZmFsc2U7IH0KLSAg
ICB2aXJ0dWFsIHZvaWQgZ2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgU3RyaW5nJiwgY29uc3QgU3Ry
aW5nJiwgVmVjdG9yPFN0cmluZz4mKSB7IH0KKwogICAgIHZpcnR1YWwgdm9pZCB3aWxsU2V0SW5w
dXRNZXRob2RTdGF0ZSgpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRJbnB1dE1ldGhvZFN0YXRl
KGJvb2wpIHsgfQotICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhTcGVs
bENoZWNrZXIqLCBpbnQsIGNvbnN0IFN0cmluZyYpIHsgfQorCitwcml2YXRlOgorICAgIEVtcHR5
VGV4dENoZWNrZXJDbGllbnQgbV90ZXh0Q2hlY2tlckNsaWVudDsKIH07CiAKICNpZiBFTkFCTEUo
Q09OVEVYVF9NRU5VUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRWRpdG9yQ2xp
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0VkaXRvckNsaWVudC5oCmluZGV4IGM4MDU5MjBl
OWY5MDQ1OTUzNjg1ZDNmNmExMzc4NWQ3NDkwZjU5YmYuLjhmNjliMDZjZGJhMWYzOWVjNDVjYjdj
ODUxNTEzYTM5NDk3NTcyMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRWRpdG9y
Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FZGl0b3JDbGllbnQuaApAQCAtNTgs
NiArNTgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBBcmNoaXZlUmVzb3VyY2U7CiBj
bGFzcyBDU1NTdHlsZURlY2xhcmF0aW9uOwogY2xhc3MgRG9jdW1lbnRGcmFnbWVudDsKK2NsYXNz
IEdyYW1tYXJEZXRhaWw7CiBjbGFzcyBFZGl0Q29tbWFuZDsKIGNsYXNzIEVkaXRvcjsKIGNsYXNz
IEVsZW1lbnQ7CkBAIC02NywzNCArNjgsMTAgQEAgY2xhc3MgS2V5Ym9hcmRFdmVudDsKIGNsYXNz
IE5vZGU7CiBjbGFzcyBSYW5nZTsKIGNsYXNzIFNwZWxsQ2hlY2tlcjsKK2NsYXNzIFRleHRDaGVj
a2VyQ2xpZW50OwogY2xhc3MgVmlzaWJsZVNlbGVjdGlvbjsKIGNsYXNzIFZpc2libGVQb3NpdGlv
bjsKIAotc3RydWN0IEdyYW1tYXJEZXRhaWwgewotICAgIGludCBsb2NhdGlvbjsKLSAgICBpbnQg
bGVuZ3RoOwotICAgIFZlY3RvcjxTdHJpbmc+IGd1ZXNzZXM7Ci0gICAgU3RyaW5nIHVzZXJEZXNj
cmlwdGlvbjsKLX07Ci0KLWVudW0gVGV4dENoZWNraW5nVHlwZSB7Ci0gICAgVGV4dENoZWNraW5n
VHlwZVNwZWxsaW5nICAgID0gMSA8PCAxLAotICAgIFRleHRDaGVja2luZ1R5cGVHcmFtbWFyICAg
ICA9IDEgPDwgMiwKLSAgICBUZXh0Q2hlY2tpbmdUeXBlTGluayAgICAgICAgPSAxIDw8IDUsCi0g
ICAgVGV4dENoZWNraW5nVHlwZVF1b3RlICAgICAgID0gMSA8PCA2LAotICAgIFRleHRDaGVja2lu
Z1R5cGVEYXNoICAgICAgICA9IDEgPDwgNywKLSAgICBUZXh0Q2hlY2tpbmdUeXBlUmVwbGFjZW1l
bnQgPSAxIDw8IDgsCi0gICAgVGV4dENoZWNraW5nVHlwZUNvcnJlY3Rpb24gID0gMSA8PCA5Ci19
OwotCi1zdHJ1Y3QgVGV4dENoZWNraW5nUmVzdWx0IHsKLSAgICBUZXh0Q2hlY2tpbmdUeXBlIHR5
cGU7Ci0gICAgaW50IGxvY2F0aW9uOwotICAgIGludCBsZW5ndGg7Ci0gICAgVmVjdG9yPEdyYW1t
YXJEZXRhaWw+IGRldGFpbHM7Ci0gICAgU3RyaW5nIHJlcGxhY2VtZW50OwotfTsKLSAKIGNsYXNz
IEVkaXRvckNsaWVudCB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+RWRpdG9yQ2xpZW50KCkgeyAg
fQpAQCAtMTc4LDE0ICsxNTUsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHRvZ2dsZUF1
dG9tYXRpY1NwZWxsaW5nQ29ycmVjdGlvbigpID0gMDsKICNlbmRpZgogCi0gICAgdmlydHVhbCB2
b2lkIGlnbm9yZVdvcmRJblNwZWxsRG9jdW1lbnQoY29uc3QgU3RyaW5nJikgPSAwOwotICAgIHZp
cnR1YWwgdm9pZCBsZWFybldvcmQoY29uc3QgU3RyaW5nJikgPSAwOwotICAgIHZpcnR1YWwgdm9p
ZCBjaGVja1NwZWxsaW5nT2ZTdHJpbmcoY29uc3QgVUNoYXIqLCBpbnQgbGVuZ3RoLCBpbnQqIG1p
c3NwZWxsaW5nTG9jYXRpb24sIGludCogbWlzc3BlbGxpbmdMZW5ndGgpID0gMDsKLSAgICB2aXJ0
dWFsIFN0cmluZyBnZXRBdXRvQ29ycmVjdFN1Z2dlc3Rpb25Gb3JNaXNzcGVsbGVkV29yZChjb25z
dCBTdHJpbmcmIG1pc3NwZWxsZWRXb3JkKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGNoZWNrR3Jh
bW1hck9mU3RyaW5nKGNvbnN0IFVDaGFyKiwgaW50IGxlbmd0aCwgVmVjdG9yPEdyYW1tYXJEZXRh
aWw+JiwgaW50KiBiYWRHcmFtbWFyTG9jYXRpb24sIGludCogYmFkR3JhbW1hckxlbmd0aCkgPSAw
OwotI2lmIFBMQVRGT1JNKE1BQykgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fVElHRVIpICYmICFk
ZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpCi0gICAgdmlydHVhbCB2b2lkIGNoZWNrVGV4dE9m
UGFyYWdyYXBoKGNvbnN0IFVDaGFyKiB0ZXh0LCBpbnQgbGVuZ3RoLCB1aW50NjRfdCBjaGVja2lu
Z1R5cGVzLCBWZWN0b3I8VGV4dENoZWNraW5nUmVzdWx0PiYgcmVzdWx0cykgPSAwOwotI2VuZGlm
CisgICAgdmlydHVhbCBUZXh0Q2hlY2tlckNsaWVudCogdGV4dENoZWNrZXIoKSA9IDA7CiAKICNp
ZiBTVVBQT1JUX0FVVE9DT1JSRUNUSU9OX1BBTkVMCiAgICAgdmlydHVhbCB2b2lkIHNob3dDb3Jy
ZWN0aW9uUGFuZWwoQ29ycmVjdGlvblBhbmVsSW5mbzo6UGFuZWxUeXBlLCBjb25zdCBGbG9hdFJl
Y3QmIGJvdW5kaW5nQm94T2ZSZXBsYWNlZFN0cmluZywgY29uc3QgU3RyaW5nJiByZXBsYWNlZFN0
cmluZywgY29uc3QgU3RyaW5nJiByZXBsYWNtZW50U3RyaW5nLCBjb25zdCBWZWN0b3I8U3RyaW5n
PiYgYWx0ZXJuYXRpdmVSZXBsYWNlbWVudFN0cmluZ3MsIEVkaXRvciopID0gMDsKQEAgLTE5Nywx
MSArMTY3LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVTcGVsbGluZ1VJV2l0
aE1pc3NwZWxsZWRXb3JkKGNvbnN0IFN0cmluZyYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2hv
d1NwZWxsaW5nVUkoYm9vbCBzaG93KSA9IDA7CiAgICAgdmlydHVhbCBib29sIHNwZWxsaW5nVUlJ
c1Nob3dpbmcoKSA9IDA7Ci0gICAgLy8gRm9yIHNwZWxsY2hlY2tlcnMgdGhhdCBzdXBwb3J0IG11
bHRpcGxlIGxhbmd1YWdlcywgaXQncyBvZnRlbiBpbXBvcnRhbnQgdG8gYmUgYWJsZSB0byBpZGVu
dGlmeSB0aGUgbGFuZ3VhZ2UgaW4gb3JkZXIgdG8gcHJvdmlkZSBtb3JlIGFjY3VyYXRlIGNvcnJl
Y3Rpb24gc3VnZ2VzdGlvbnMuIENhbGxlciBjYW4gcGFzcyBpbiBtb3JlIHRleHQgaW4gImNvbnRl
eHQiIHRvIGFpZCBzdWNoIHNwZWxsY2hlY2tlcnMgb24gbGFuZ3VhZ2UgaWRlbnRpZmljYXRpb24u
IE5vcmFtbGx5IGl0J3MgdGhlIHRleHQgc3Vycm91bmRpbmcgdGhlICJ3b3JkIiBmb3Igd2hpY2gg
d2UgYXJlIGdldHRpbmcgY29ycmVjdGlvbiBzdWdnZXN0aW9ucy4KLSAgICB2aXJ0dWFsIHZvaWQg
Z2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgU3RyaW5nJiB3b3JkLCBjb25zdCBTdHJpbmcmIGNvbnRl
eHQsIFZlY3RvcjxTdHJpbmc+JiBndWVzc2VzKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHdpbGxT
ZXRJbnB1dE1ldGhvZFN0YXRlKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRJbnB1dE1ldGhv
ZFN0YXRlKGJvb2wgZW5hYmxlZCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tp
bmdPZlN0cmluZyhTcGVsbENoZWNrZXIqLCBpbnQsIGNvbnN0IFN0cmluZyYpID0gMDsKIH07CiAK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlLmgKaW5kZXggMDcxYjE0MjdkNmQ3N2NmOTBiZmY1YzAwNGNkODI5ZmUzMzMw
MGEzMi4uNWU1Y2JhZmYyNjAwZmJmYjQwOWI2N2JiYWFjZDY1NGRjNmQ5YWJmNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlLmgKQEAgLTc1LDcgKzc1LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIFNo
YXJlZEdyYXBoaWNzQ29udGV4dDNEOwogICAgIGNsYXNzIFNwZWVjaElucHV0OwogICAgIGNsYXNz
IFNwZWVjaElucHV0Q2xpZW50OwotCiAjaWYgRU5BQkxFKERPTV9TVE9SQUdFKQogICAgIGNsYXNz
IFN0b3JhZ2VOYW1lc3BhY2U7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3RleHQvVGV4dENoZWNrZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3RleHQvVGV4dENoZWNrZXJDbGllbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZGE3NzZjNzg2OTQ5MzZiZjdl
NzYxOTQ4NmRmNTY3MmVhMmIxNzVkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vdGV4dC9UZXh0Q2hlY2tlckNsaWVudC5oCkBAIC0wLDAgKzEsODMgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDA4IE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vi
c2lkaWFyeSgtaWVzKQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisg
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFRleHRDaGVja2VyQ2xpZW50X2gKKyNkZWZp
bmUgVGV4dENoZWNrZXJDbGllbnRfaAorCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNs
dWRlIDx3dGYvVmVjdG9yLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU3BlbGxDaGVja2VyOworCitzdHJ1Y3QgR3JhbW1h
ckRldGFpbCB7CisgICAgaW50IGxvY2F0aW9uOworICAgIGludCBsZW5ndGg7CisgICAgVmVjdG9y
PFN0cmluZz4gZ3Vlc3NlczsKKyAgICBTdHJpbmcgdXNlckRlc2NyaXB0aW9uOworfTsKKworZW51
bSBUZXh0Q2hlY2tpbmdUeXBlIHsKKyAgICBUZXh0Q2hlY2tpbmdUeXBlU3BlbGxpbmcgICAgPSAx
IDw8IDEsCisgICAgVGV4dENoZWNraW5nVHlwZUdyYW1tYXIgICAgID0gMSA8PCAyLAorICAgIFRl
eHRDaGVja2luZ1R5cGVMaW5rICAgICAgICA9IDEgPDwgNSwKKyAgICBUZXh0Q2hlY2tpbmdUeXBl
UXVvdGUgICAgICAgPSAxIDw8IDYsCisgICAgVGV4dENoZWNraW5nVHlwZURhc2ggICAgICAgID0g
MSA8PCA3LAorICAgIFRleHRDaGVja2luZ1R5cGVSZXBsYWNlbWVudCA9IDEgPDwgOCwKKyAgICBU
ZXh0Q2hlY2tpbmdUeXBlQ29ycmVjdGlvbiAgPSAxIDw8IDkKK307CisKK3N0cnVjdCBUZXh0Q2hl
Y2tpbmdSZXN1bHQgeworICAgIFRleHRDaGVja2luZ1R5cGUgdHlwZTsKKyAgICBpbnQgbG9jYXRp
b247CisgICAgaW50IGxlbmd0aDsKKyAgICBWZWN0b3I8R3JhbW1hckRldGFpbD4gZGV0YWlsczsK
KyAgICBTdHJpbmcgcmVwbGFjZW1lbnQ7Cit9OworCitjbGFzcyBUZXh0Q2hlY2tlckNsaWVudCB7
CitwdWJsaWM6CisgICAgdmlydHVhbCB+VGV4dENoZWNrZXJDbGllbnQoKSB7fQorCisgICAgdmly
dHVhbCB2b2lkIGlnbm9yZVdvcmRJblNwZWxsRG9jdW1lbnQoY29uc3QgU3RyaW5nJikgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCBsZWFybldvcmQoY29uc3QgU3RyaW5nJikgPSAwOworICAgIHZpcnR1
YWwgdm9pZCBjaGVja1NwZWxsaW5nT2ZTdHJpbmcoY29uc3QgVUNoYXIqLCBpbnQgbGVuZ3RoLCBp
bnQqIG1pc3NwZWxsaW5nTG9jYXRpb24sIGludCogbWlzc3BlbGxpbmdMZW5ndGgpID0gMDsKKyAg
ICB2aXJ0dWFsIFN0cmluZyBnZXRBdXRvQ29ycmVjdFN1Z2dlc3Rpb25Gb3JNaXNzcGVsbGVkV29y
ZChjb25zdCBTdHJpbmcmIG1pc3NwZWxsZWRXb3JkKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNo
ZWNrR3JhbW1hck9mU3RyaW5nKGNvbnN0IFVDaGFyKiwgaW50IGxlbmd0aCwgVmVjdG9yPEdyYW1t
YXJEZXRhaWw+JiwgaW50KiBiYWRHcmFtbWFyTG9jYXRpb24sIGludCogYmFkR3JhbW1hckxlbmd0
aCkgPSAwOworI2lmIFBMQVRGT1JNKE1BQykgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fVElHRVIp
ICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpCisgICAgdmlydHVhbCB2b2lkIGNoZWNr
VGV4dE9mUGFyYWdyYXBoKGNvbnN0IFVDaGFyKiB0ZXh0LCBpbnQgbGVuZ3RoLCB1aW50NjRfdCBj
aGVja2luZ1R5cGVzLCBWZWN0b3I8VGV4dENoZWNraW5nUmVzdWx0PiYgcmVzdWx0cykgPSAwOwor
I2VuZGlmCisKKyAgICAvLyBGb3Igc3BlbGxjaGVja2VycyB0aGF0IHN1cHBvcnQgbXVsdGlwbGUg
bGFuZ3VhZ2VzLCBpdCdzIG9mdGVuIGltcG9ydGFudCB0byBiZSBhYmxlIHRvIGlkZW50aWZ5IHRo
ZSBsYW5ndWFnZSBpbiBvcmRlciB0byBwcm92aWRlIG1vcmUgYWNjdXJhdGUgY29ycmVjdGlvbiBz
dWdnZXN0aW9ucy4gQ2FsbGVyIGNhbiBwYXNzIGluIG1vcmUgdGV4dCBpbiAiY29udGV4dCIgdG8g
YWlkIHN1Y2ggc3BlbGxjaGVja2VycyBvbiBsYW5ndWFnZSBpZGVudGlmaWNhdGlvbi4gTm9yYW1s
bHkgaXQncyB0aGUgdGV4dCBzdXJyb3VuZGluZyB0aGUgIndvcmQiIGZvciB3aGljaCB3ZSBhcmUg
Z2V0dGluZyBjb3JyZWN0aW9uIHN1Z2dlc3Rpb25zLgorICAgIHZpcnR1YWwgdm9pZCBnZXRHdWVz
c2VzRm9yV29yZChjb25zdCBTdHJpbmcmIHdvcmQsIGNvbnN0IFN0cmluZyYgY29udGV4dCwgVmVj
dG9yPFN0cmluZz4mIGd1ZXNzZXMpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdENoZWNr
aW5nT2ZTdHJpbmcoU3BlbGxDaGVja2VyKiwgaW50LCBjb25zdCBTdHJpbmcmKSA9IDA7Cit9Owor
Cit9CisKKyNlbmRpZiAvLyBUZXh0Q2hlY2tlckNsaWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nCmluZGV4IDFjYjAwNjhhMjM0YmNlZGNmOGY0MWU5NmJiMGI5MjRjZjZmNzYwMzAuLjcwNGRk
YzYyNGY5NDRiNjM5YjUwOTIzZDAyNThmOGY2MWU5YzI1NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMDEtMjYgIE1PUklUQSBIYWppbWUgIDxtb3Jy
aXRhQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgUmVmYWN0b3Jpbmc6IEV4dHJhY3QgVGV4dENoZWNrZXJDbGllbnQgZnJvbSBFZGl0
b3JDbGllbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTUzMjEzCisKKyAgICAgICAgKiBzcmMvRWRpdG9yQ2xpZW50SW1wbC5oOgorICAgICAgICAoV2Vi
S2l0OjpFZGl0b3JDbGllbnRJbXBsOjp0ZXh0Q2hlY2tlcik6CisKIDIwMTEtMDItMTEgIFpoZW55
YW8gTW8gIDx6bW9AZ29vZ2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBLZW5uZXRoIFJ1
c3NlbGwuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGll
bnRJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGllbnRJbXBsLmgK
aW5kZXggOGM0MGYzYzBkNTU5YWYyOGUwMDIzMWM5NTYyMDI1NjA1YTdhMzAxNy4uYjlmOTY1MTM5
YjU3ZDMwMWJmM2VmZjExNDU1OWY2ODEyYjcxMWZhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvRWRpdG9yQ2xpZW50SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL0VkaXRvckNsaWVudEltcGwuaApAQCAtMzIsNiArMzIsNyBAQAogI2RlZmluZSBF
ZGl0b3JDbGllbnRJbXBsX2gKIAogI2luY2x1ZGUgIkVkaXRvckNsaWVudC5oIgorI2luY2x1ZGUg
IlRleHRDaGVja2VyQ2xpZW50LmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKICNpbmNsdWRlIDx3dGYv
RGVxdWUuaD4KIApAQCAtNDMsNyArNDQsNyBAQCBjbGFzcyBTcGVsbENoZWNrZXI7CiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKIGNsYXNzIFdlYlZpZXdJbXBsOwogCi1jbGFzcyBFZGl0b3JDbGllbnRJbXBs
IDogcHVibGljIFdlYkNvcmU6OkVkaXRvckNsaWVudCB7CitjbGFzcyBFZGl0b3JDbGllbnRJbXBs
IDogcHVibGljIFdlYkNvcmU6OkVkaXRvckNsaWVudCwgcHVibGljIFdlYkNvcmU6OlRleHRDaGVj
a2VyQ2xpZW50IHsKIHB1YmxpYzoKICAgICBFZGl0b3JDbGllbnRJbXBsKFdlYlZpZXdJbXBsKiB3
ZWJWaWV3KTsKIApAQCAtMTE0LDYgKzExNSw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQg
c2V0SW5wdXRNZXRob2RTdGF0ZShib29sIGVuYWJsZWQpOwogICAgIHZpcnR1YWwgdm9pZCByZXF1
ZXN0Q2hlY2tpbmdPZlN0cmluZyhXZWJDb3JlOjpTcGVsbENoZWNrZXIqLCBpbnQsIGNvbnN0IFdU
Rjo6U3RyaW5nJik7CiAKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OlRleHRDaGVja2VyQ2xpZW50KiB0
ZXh0Q2hlY2tlcigpIHsgcmV0dXJuIHRoaXM7IH0KKwogICAgIC8vIFNob3dzIHRoZSBmb3JtIGF1
dG9maWxsIHBvcHVwIGZvciB8bm9kZXwgaWYgaXQgaXMgYW4gSFRNTElucHV0RWxlbWVudCBhbmQK
ICAgICAvLyBpdCBpcyBlbXB0eS4gIFRoaXMgaXMgY2FsbGVkIHdoZW4geW91IHByZXNzIHRoZSB1
cCBvciBkb3duIGFycm93IGluIGEKICAgICAvLyB0ZXh0LWZpZWxkIG9yIHdoZW4gY2xpY2tpbmcg
YW4gYWxyZWFkeSBmb2N1c2VkIHRleHQtZmllbGQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2VmbC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKaW5kZXggMjA2OGNj
YzM3NTkxYzI0MjMwNGJhNzYzNDIzZmRiYzkxNTgwZjk3Zi4uNGIwZjJmOWZlMGYxYjRhNDliOTY5
NzdlODQxZjBlYjZkNGMwMzE3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisy
MDExLTAxLTI2ICBNT1JJVEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29tPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlZmFjdG9yaW5nOiBFeHRy
YWN0IFRleHRDaGVja2VyQ2xpZW50IGZyb20gRWRpdG9yQ2xpZW50CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MzIxMworCisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvRWRpdG9yQ2xpZW50RWZsLmg6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3JDbGll
bnRFZmw6OnRleHRDaGVja2VyKToKKwogMjAxMS0wMi0wOCAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3
ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50RWZsLmggYi9T
b3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRFZmwuaAppbmRleCBl
MjViMWU2ZjBmMjQ0ZjhiMjJkNmMyMDMyYmQ3OTNmN2ZlZGM0M2M2Li5jNzVlY2Q5OGMxOGY2ZGFk
YjMwNzEzZWY1MmFlNzIzZmFmYzIyMjhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9X
ZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRFZmwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9X
ZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRFZmwuaApAQCAtMzQsNiArMzQsNyBAQAogI2RlZmlu
ZSBFZGl0b3JDbGllbnRFZmxfaAogCiAjaW5jbHVkZSAiRWRpdG9yQ2xpZW50LmgiCisjaW5jbHVk
ZSAiVGV4dENoZWNrZXJDbGllbnQuaCIKIAogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAKQEAg
LTQyLDcgKzQzLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgX0V2YXNfT2JqZWN0IEV2YXNfT2JqZWN0Owog
bmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgUGFnZTsKIAotY2xhc3MgRWRpdG9yQ2xpZW50RWZs
IDogcHVibGljIEVkaXRvckNsaWVudCB7CitjbGFzcyBFZGl0b3JDbGllbnRFZmwgOiBwdWJsaWMg
RWRpdG9yQ2xpZW50LCBwdWJsaWMgVGV4dENoZWNrZXJDbGllbnQgewogcHVibGljOgogICAgIEVk
aXRvckNsaWVudEVmbChFdmFzX09iamVjdCAqdmlldyk7CiAgICAgfkVkaXRvckNsaWVudEVmbCgp
OwpAQCAtMTE0LDYgKzExNSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNldElu
cHV0TWV0aG9kU3RhdGUoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5wdXRNZXRob2RTdGF0ZShi
b29sIGVuYWJsZWQpOwogICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhX
ZWJDb3JlOjpTcGVsbENoZWNrZXIqLCBpbnQsIGNvbnN0IFdURjo6U3RyaW5nJikge30KKyAgICB2
aXJ0dWFsIFRleHRDaGVja2VyQ2xpZW50KiB0ZXh0Q2hlY2tlcigpIHsgcmV0dXJuIHRoaXM7IH0K
IAogcHJpdmF0ZToKICAgICBFdmFzX09iamVjdCAqbV92aWV3OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9ndGsvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4
IDJmZWZkNWRjOWM2ODgwNGM5ZDJhZGE1ZTcxMDhlN2FlODE4ZDg2NzYuLjkwYWUxNjcwMDRjODhj
YzcxNWMzNDUzNTAxOTBhNzdiOTc3Y2I4YzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3Rr
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
MyBAQAorMjAxMS0wMS0yNiAgTU9SSVRBIEhhamltZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWZhY3Rvcmlu
ZzogRXh0cmFjdCBUZXh0Q2hlY2tlckNsaWVudCBmcm9tIEVkaXRvckNsaWVudAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTMyMTMKKworICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5oOgorICAgICAgICAoV2ViS2l0OjpFZGl0
b3JDbGllbnQ6OnRleHRDaGVja2VyKToKKwogMjAxMS0wMi0xMSAgU2hlcmlmZiBCb3QgIDx3ZWJr
aXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBv
dXQgcjc4MzMxLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQv
RWRpdG9yQ2xpZW50R3RrLmggYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0
b3JDbGllbnRHdGsuaAppbmRleCAyMTRkYmQ2NmMxYzI3ZjZjNjg0ZjgyYzNmYzc4ZjM0NGJiZDcw
MjYxLi4xYWY1NWU2OGNlN2NmYjdhMDNiZGI1MWZmNzI3OTA0ZTU1ZWYxMjhhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuaApAQCAt
MzIsNiArMzIsNyBAQAogI2RlZmluZSBFZGl0b3JDbGllbnRHdGtfaAogCiAjaW5jbHVkZSAiRWRp
dG9yQ2xpZW50LmgiCisjaW5jbHVkZSAiVGV4dENoZWNrZXJDbGllbnQuaCIKIAogI2luY2x1ZGUg
PHd0Zi9EZXF1ZS5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CkBAIC00Nyw3ICs0OCw3IEBA
IGNsYXNzIEtleWJvYXJkRXZlbnQ7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi0gICAgY2xhc3Mg
RWRpdG9yQ2xpZW50IDogcHVibGljIFdlYkNvcmU6OkVkaXRvckNsaWVudCB7CitjbGFzcyBFZGl0
b3JDbGllbnQgOiBwdWJsaWMgV2ViQ29yZTo6RWRpdG9yQ2xpZW50LCAgcHVibGljIFdlYkNvcmU6
OlRleHRDaGVja2VyQ2xpZW50IHsKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIGJvb2wgbV9pc0lu
UmVkbzsKIApAQCAtMTIwLDYgKzEyMSw4IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogICAgICAgICB2
aXJ0dWFsIHZvaWQgdGV4dFdpbGxCZURlbGV0ZWRJblRleHRGaWVsZChXZWJDb3JlOjpFbGVtZW50
Kik7CiAgICAgICAgIHZpcnR1YWwgdm9pZCB0ZXh0RGlkQ2hhbmdlSW5UZXh0QXJlYShXZWJDb3Jl
OjpFbGVtZW50Kik7CiAKKyAgICAgICAgdmlydHVhbCBXZWJDb3JlOjpUZXh0Q2hlY2tlckNsaWVu
dCogdGV4dENoZWNrZXIoKSB7IHJldHVybiB0aGlzOyB9CisKICAgICAgICAgdmlydHVhbCB2b2lk
IGlnbm9yZVdvcmRJblNwZWxsRG9jdW1lbnQoY29uc3QgV1RGOjpTdHJpbmcmKTsKICAgICAgICAg
dmlydHVhbCB2b2lkIGxlYXJuV29yZChjb25zdCBXVEY6OlN0cmluZyYpOwogICAgICAgICB2aXJ0
dWFsIHZvaWQgY2hlY2tTcGVsbGluZ09mU3RyaW5nKGNvbnN0IFVDaGFyKiwgaW50IGxlbmd0aCwg
aW50KiBtaXNzcGVsbGluZ0xvY2F0aW9uLCBpbnQqIG1pc3NwZWxsaW5nTGVuZ3RoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvaGFpa3UvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9oYWlr
dS9DaGFuZ2VMb2cKaW5kZXggNjY5YWFlNGI1NTkxNmM3MzA4NjRhNWRhN2U2ZTA2Yjg1NzE0YTY2
OS4uNzQwYmI0MDg0NTM5NGNkYTBmNWI3MTUxMjgwZTE0ODAzOGYzODBiNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9oYWlrdS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9oYWlrdS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMS0wMS0yNiAgTU9SSVRBIEhhamltZSAgPG1v
cnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBSZWZhY3RvcmluZzogRXh0cmFjdCBUZXh0Q2hlY2tlckNsaWVudCBmcm9tIEVk
aXRvckNsaWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NTMyMTMKKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEhhaWt1Lmg6
CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3JDbGllbnRIYWlrdTo6dGV4dENoZWNrZXIpOgorCiAy
MDExLTAyLTA4ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2hhaWt1L1dl
YkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEhhaWt1LmggYi9Tb3VyY2UvV2ViS2l0L2hhaWt1L1dl
YkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEhhaWt1LmgKaW5kZXggY2EyNzBlOTVjYjQyN2EzZWQ3
YTA2NmYzZWUzMDEzOTM0OWUwNDY4Yy4uNmRjMzUwZjI1NGYyNjNkNWM0YTA1MDFmYzhiMzczZTk5
YzhjZmFlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9oYWlrdS9XZWJDb3JlU3VwcG9ydC9F
ZGl0b3JDbGllbnRIYWlrdS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvaGFpa3UvV2ViQ29yZVN1cHBv
cnQvRWRpdG9yQ2xpZW50SGFpa3UuaApAQCAtMzIsNiArMzIsNyBAQAogI2RlZmluZSBFZGl0b3JD
bGllbnRIYWlrdV9ICiAKICNpbmNsdWRlICJFZGl0b3JDbGllbnQuaCIKKyNpbmNsdWRlICJUZXh0
Q2hlY2tlckNsaWVudC5oIgogI2luY2x1ZGUgIlJlZkNvdW50ZWQuaCIKICNpbmNsdWRlICJQYWdl
LmgiCiAKQEAgLTQwLDcgKzQxLDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0gICAgY2xh
c3MgRWRpdG9yQ2xpZW50SGFpa3UgOiBwdWJsaWMgRWRpdG9yQ2xpZW50IHsKK2NsYXNzIEVkaXRv
ckNsaWVudEhhaWt1IDogcHVibGljIEVkaXRvckNsaWVudCwgcHVibGljIFRleHRDaGVja2VyQ2xp
ZW50IHsKICAgICBwdWJsaWM6CiAgICAgICAgIEVkaXRvckNsaWVudEhhaWt1KCk7CiAgICAgICAg
IHZvaWQgc2V0UGFnZSggUGFnZSogcGFnZSApOwpAQCAtMTExLDYgKzExMiw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCB2b2lkIHdpbGxTZXRJbnB1dE1ldGhvZFN0YXRl
KCk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBzZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wgZW5hYmxl
ZCk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhTcGVsbENo
ZWNrZXIqLCBpbnQsIGNvbnN0IFN0cmluZyYpIHt9CisgICAgICAgIHZpcnR1YWwgVGV4dENoZWNr
ZXJDbGllbnQqIHRleHRDaGVja2VyKCkgeyByZXR1cm4gdGhpczsgfQogCiAgICAgICAgIGJvb2wg
aXNFZGl0aW5nKCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCA0YTNjNzRmZTgwMDFkMTA4
OGMzMGM5NjAzZWU2OWFjNTk3NTIyYzZkLi5hZmExYzc2OWRjMWZmODlkMWRhMGI2NzE5ODY2YTE1
OWViZThiOTg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMDEtMjYg
IE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVmYWN0b3Jpbmc6IEV4dHJhY3QgVGV4dENo
ZWNrZXJDbGllbnQgZnJvbSBFZGl0b3JDbGllbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTUzMjEzCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9X
ZWJFZGl0b3JDbGllbnQuaDoKKyAgICAgICAgKFdlYkVkaXRvckNsaWVudDo6dGV4dENoZWNrZXIp
OgorCiAyMDExLTAyLTExICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgT2xpdmVyIEh1bnQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCmluZGV4IGQ1YWM4OTFiN2E2YzBlMGI3
MDU4OTI2YjIzMWU4Yjk1ZDllYjk2YzIuLjUzZGEzNmE0MDI5MGUzMWNkMjgyNTAwZmZiMWJjNTU4
ZDNjMjRlZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YkVkaXRvckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YkVkaXRvckNsaWVudC5oCkBAIC0yOSw2ICsyOSw3IEBACiAKICNpbXBvcnQgPFdlYkNvcmUvRWRp
dG9yLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0VkaXRvckNsaWVudC5oPgorI2ltcG9ydCA8V2ViQ29y
ZS9UZXh0Q2hlY2tlckNsaWVudC5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgogI2ltcG9y
dCA8d3RmL0ZvcndhcmQuaD4KICNpbXBvcnQgPHd0Zi9WZWN0b3IuaD4KQEAgLTM2LDcgKzM3LDcg
QEAKIEBjbGFzcyBXZWJWaWV3OwogQGNsYXNzIFdlYkVkaXRvclVuZG9UYXJnZXQ7CiAKLWNsYXNz
IFdlYkVkaXRvckNsaWVudCA6IHB1YmxpYyBXZWJDb3JlOjpFZGl0b3JDbGllbnQgeworY2xhc3Mg
V2ViRWRpdG9yQ2xpZW50IDogcHVibGljIFdlYkNvcmU6OkVkaXRvckNsaWVudCwgcHVibGljIFdl
YkNvcmU6OlRleHRDaGVja2VyQ2xpZW50IHsKIHB1YmxpYzoKICAgICBXZWJFZGl0b3JDbGllbnQo
V2ViVmlldyAqKTsKICAgICB2aXJ0dWFsIH5XZWJFZGl0b3JDbGllbnQoKTsKQEAgLTk4LDYgKzk5
LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCB0b2dnbGVBdXRvbWF0aWNTcGVsbGluZ0Nv
cnJlY3Rpb24oKTsKICNlbmRpZgogCisgICAgVGV4dENoZWNrZXJDbGllbnQqIHRleHRDaGVja2Vy
KCkgeyByZXR1cm4gdGhpczsgfQorCiAgICAgdmlydHVhbCB2b2lkIHJlc3BvbmRUb0NoYW5nZWRD
b250ZW50cygpOwogICAgIHZpcnR1YWwgdm9pZCByZXNwb25kVG9DaGFuZ2VkU2VsZWN0aW9uKCk7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9xdC9DaGFuZ2VMb2cKaW5kZXggZTRjOGNlZjJiYmEwN2ViNmQzN2E0OWEwMzZkOTE5ZWY4Mzlm
NTQ0Yy4uNjM4MWI0NmJhNzQyMTJjMzMxYzAxNTE2YjNhNTg2ZDEzYmRhYjAzNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9xdC9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMS0wMS0yNiAgTU9SSVRBIEhhamltZSAgPG1vcnJp
dGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBSZWZhY3RvcmluZzogRXh0cmFjdCBUZXh0Q2hlY2tlckNsaWVudCBmcm9tIEVkaXRv
ckNsaWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NTMyMTMKKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFF0Lmg6CisgICAg
ICAgIChXZWJDb3JlOjpFZGl0b3JDbGllbnRRdDo6dGV4dENoZWNrZXIpOgorCiAyMDExLTAyLTEx
ICBWaWF0Y2hlc2xhdiBPc3RhcGVua28gIDxvc3RhcGVua28udmlhdGNoZXNsYXZAbm9raWEuY29t
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IFRvciBBcm5lIFZlc3Riw7guCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFF0LmggYi9Tb3VyY2Uv
V2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFF0LmgKaW5kZXggMWU0MTBlNmQ3
ZWQzNGIzOThmZjJlMDBiNjJlNGRlYjkxNzhmNDRjZi4uZTQzMDU0NGE2NjM4YTIzMGM1ZDRhMzlj
NTVjYmFjMjEwNjEzYTU2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3Vw
cG9ydC9FZGl0b3JDbGllbnRRdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBv
cnQvRWRpdG9yQ2xpZW50UXQuaApAQCAtMzEsNiArMzEsNyBAQAogI2RlZmluZSBFZGl0b3JDbGll
bnRRdF9oCiAKICNpbmNsdWRlICJFZGl0b3JDbGllbnQuaCIKKyNpbmNsdWRlICJUZXh0Q2hlY2tl
ckNsaWVudC5oIgogI2luY2x1ZGUgIlJlZkNvdW50ZWQuaCIKIAogI2luY2x1ZGUgPHd0Zi9Gb3J3
YXJkLmg+CkBAIC0zOSw3ICs0MCw3IEBAIGNsYXNzIFFXZWJQYWdlOwogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLWNsYXNzIEVkaXRvckNsaWVudFF0IDogcHVibGljIEVkaXRvckNsaWVudCB7Citj
bGFzcyBFZGl0b3JDbGllbnRRdCA6IHB1YmxpYyBFZGl0b3JDbGllbnQsIHB1YmxpYyBUZXh0Q2hl
Y2tlckNsaWVudCB7CiBwdWJsaWM6CiAgICAgRWRpdG9yQ2xpZW50UXQoUVdlYlBhZ2UqIHBhZ2Up
OwogICAgIApAQCAtMTA4LDYgKzEwOSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgd2ls
bFNldElucHV0TWV0aG9kU3RhdGUoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5wdXRNZXRob2RT
dGF0ZShib29sIGVuYWJsZWQpOwogICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0
cmluZyhTcGVsbENoZWNrZXIqLCBpbnQsIGNvbnN0IFN0cmluZyYpIHt9CisgICAgdmlydHVhbCBU
ZXh0Q2hlY2tlckNsaWVudCogdGV4dENoZWNrZXIoKSB7IHJldHVybiB0aGlzOyB9CiAKICAgICBi
b29sIGlzRWRpdGluZygpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKaW5kZXggYTI0YzA2MWViZTVm
YTZlOGQzM2M0OTk4YTJmNmVmMDhmMmFmNTlkMC4uYjQ1ZmE2NWMwYTFkMDg2MTYxYjRhZmM2NTVl
MzgyYjQxYmY1YjlhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDExLTAx
LTI2ICBNT1JJVEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29tPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlZmFjdG9yaW5nOiBFeHRyYWN0IFRl
eHRDaGVja2VyQ2xpZW50IGZyb20gRWRpdG9yQ2xpZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MzIxMworCisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvV2ViRWRpdG9yQ2xpZW50Lmg6CisgICAgICAgIChXZWJFZGl0b3JDbGllbnQ6OnRleHRDaGVj
a2VyKToKKwogMjAxMS0wMi0xMSAgR2VvZmZyZXkgR2FyZW4gIDxnZ2FyZW5AYXBwbGUuY29tPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IE9saXZlciBIdW50LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0
L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAppbmRleCAzNThhMzY1NmE2ZGY2
MDRiMTIyYTA5ZDBkMGVhMTA1ZWFmYTQ4OTEzLi40NjlmNzVmMzRlY2FhYjcyNWVlMTdiOGVlODI0
YTg4NjZiMTJlMTk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9y
dC9XZWJFZGl0b3JDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9y
dC9XZWJFZGl0b3JDbGllbnQuaApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIldlYktpdC5o
IgogI3ByYWdtYSB3YXJuaW5nKHB1c2gsIDApCiAjaW5jbHVkZSA8V2ViQ29yZS9FZGl0b3JDbGll
bnQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1RleHRDaGVja2VyQ2xpZW50Lmg+CiAjaW5jbHVkZSA8
d3RmL093blB0ci5oPgogI3ByYWdtYSB3YXJuaW5nKHBvcCkKIApAQCAtMzYsNyArMzcsNyBAQCBj
bGFzcyBXZWJWaWV3OwogY2xhc3MgV2ViTm90aWZpY2F0aW9uOwogY2xhc3MgV2ViRWRpdG9yVW5k
b1RhcmdldDsKIAotY2xhc3MgV2ViRWRpdG9yQ2xpZW50IDogcHVibGljIFdlYkNvcmU6OkVkaXRv
ckNsaWVudCB7CitjbGFzcyBXZWJFZGl0b3JDbGllbnQgOiBwdWJsaWMgV2ViQ29yZTo6RWRpdG9y
Q2xpZW50LCBwdWJsaWMgV2ViQ29yZTo6VGV4dENoZWNrZXJDbGllbnQgewogcHVibGljOgogICAg
IFdlYkVkaXRvckNsaWVudChXZWJWaWV3Kik7CiAgICAgfldlYkVkaXRvckNsaWVudCgpOwpAQCAt
MTEyLDYgKzExMyw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNldElucHV0TWV0
aG9kU3RhdGUoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5wdXRNZXRob2RTdGF0ZShib29sKTsK
ICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoV2ViQ29yZTo6U3BlbGxD
aGVja2VyKiwgaW50LCBjb25zdCBXVEY6OlN0cmluZyYpIHt9CisgICAgdmlydHVhbCBXZWJDb3Jl
OjpUZXh0Q2hlY2tlckNsaWVudCogdGV4dENoZWNrZXIoKSB7IHJldHVybiB0aGlzOyB9CiAKIHBy
aXZhdGU6CiAgICAgV2ViVmlldyogbV93ZWJWaWV3OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC93aW5jZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZwppbmRleCA3
N2Q2ZWYzZjJlYjk4NjgyYmFhNzI0M2JmMjMyZTAxMGZiYzUzZjI2Li4zZTMwMDlmZWYwZjgwNzgz
ODJmMWY3MTc2ZTJmYTQyN2JlOGM1NmVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbmNl
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDEzIEBACisyMDExLTAxLTI2ICBNT1JJVEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29tPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlZmFjdG9y
aW5nOiBFeHRyYWN0IFRleHRDaGVja2VyQ2xpZW50IGZyb20gRWRpdG9yQ2xpZW50CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MzIxMworCisgICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50V2luQ0UuaDoKKyAgICAgICAgKFdlYktpdDo6
RWRpdG9yQ2xpZW50V2luQ0U6OnRleHRDaGVja2VyKToKKwogMjAxMS0wMi0xMCAgTmF0ZSBDaGFw
aW4gIDxqYXBoZXRAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFy
dGguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0VkaXRv
ckNsaWVudFdpbkNFLmggYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0VkaXRv
ckNsaWVudFdpbkNFLmgKaW5kZXggOGRiOGMxNjg0NjJmOGRkYjNjMDBhYzdkYzRjMWU3NmRjZDQ5
YmZhZC4uMTIzMzYwNTk5OTFmZDMxNzkxMzE1ZjdhZDgwMjIwM2MxN2Q0YTQyZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRXaW5DRS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50V2lu
Q0UuaApAQCAtMjYsMTIgKzI2LDEzIEBACiAjZGVmaW5lIEVkaXRvckNsaWVudFdpbkNFX2gKIAog
I2luY2x1ZGUgIkVkaXRvckNsaWVudC5oIgorI2luY2x1ZGUgIlRleHRDaGVja2VyQ2xpZW50Lmgi
CiAKIGNsYXNzIFdlYlZpZXc7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1jbGFzcyBFZGl0b3JD
bGllbnRXaW5DRSA6IHB1YmxpYyBXZWJDb3JlOjpFZGl0b3JDbGllbnQgeworY2xhc3MgRWRpdG9y
Q2xpZW50V2luQ0UgOiBwdWJsaWMgV2ViQ29yZTo6RWRpdG9yQ2xpZW50LCBwdWJsaWMgV2ViQ29y
ZTo6VGV4dENoZWNrZXJDbGllbnQgewogcHVibGljOgogICAgIEVkaXRvckNsaWVudFdpbkNFKFdl
YlZpZXcqKTsKICAgICB+RWRpdG9yQ2xpZW50V2luQ0UoKTsKQEAgLTEwMSw2ICsxMDIsNyBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHdpbGxTZXRJbnB1dE1ldGhvZFN0YXRlKCk7CiAgICAg
dmlydHVhbCB2b2lkIHNldElucHV0TWV0aG9kU3RhdGUoYm9vbCk7CiAgICAgdmlydHVhbCB2b2lk
IHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFdlYkNvcmU6OlNwZWxsQ2hlY2tlciosIGludCwgY29u
c3QgV1RGOjpTdHJpbmcmKSB7fQorICAgIHZpcnR1YWwgV2ViQ29yZTo6VGV4dENoZWNrZXJDbGll
bnQqIHRleHRDaGVja2VyKCkgeyByZXR1cm4gdGhpczsgfQogCiBwcml2YXRlOgogICAgIFdlYlZp
ZXcqIG1fd2ViVmlldzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd3gvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC93eC9DaGFuZ2VMb2cKaW5kZXggMTNhYjFiODU5MWY4OGZhZTJkMGE1YTQ1
MmE0MGZjYjA5ZTRiODdlYS4uMDZmYWVhMmQ5NmYwMGIzY2Q2Y2EwOTUwY2QxMjNiYzE3MjdlYmJm
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93eC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC93eC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMS0wMS0yNiAgTU9SSVRBIEhh
amltZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBSZWZhY3RvcmluZzogRXh0cmFjdCBUZXh0Q2hlY2tlckNsaWVu
dCBmcm9tIEVkaXRvckNsaWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NTMyMTMKKworICAgICAgICAqIFdlYktpdFN1cHBvcnQvRWRpdG9yQ2xpZW50
V3guaDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVudFd4Ojp0ZXh0Q2hlY2tlcik6CisK
IDIwMTEtMDItMTAgIE5hdGUgQ2hhcGluICA8amFwaGV0QGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93eC9X
ZWJLaXRTdXBwb3J0L0VkaXRvckNsaWVudFd4LmggYi9Tb3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1
cHBvcnQvRWRpdG9yQ2xpZW50V3guaAppbmRleCA3ZGJlZTMxYTVmOTQ0YTQ4ZGRjZDMxZGQ1Yjhh
OGUwMmE1MmU2YmYwLi4zYzQzYmU3ZDI0YTkyZTEyZTBmYzY4NTJlMDcyMzBmNzlkZDA3ZGJmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvRWRpdG9yQ2xpZW50V3gu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvRWRpdG9yQ2xpZW50V3guaApA
QCAtMzAsMTMgKzMwLDE0IEBACiAKICNpbmNsdWRlICJFZGl0b3JDbGllbnQuaCIKICNpbmNsdWRl
ICJQYWdlLmgiCisjaW5jbHVkZSAiVGV4dENoZWNrZXJDbGllbnQuaCIKIAogI2luY2x1ZGUgIldl
YlZpZXcuaCIKICNpbmNsdWRlICJXZWJGcmFtZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
LWNsYXNzIEVkaXRvckNsaWVudFd4IDogcHVibGljIEVkaXRvckNsaWVudCB7CitjbGFzcyBFZGl0
b3JDbGllbnRXeCA6IHB1YmxpYyBFZGl0b3JDbGllbnQsIHB1YmxpYyBUZXh0Q2hlY2tlckNsaWVu
dCB7CiBmcmllbmQgY2xhc3MgOjp3eFdlYlZpZXc7CiBmcmllbmQgY2xhc3MgOjp3eFdlYkZyYW1l
OwogCkBAIC0xMTMsNiArMTE0LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCB3aWxsU2V0
SW5wdXRNZXRob2RTdGF0ZSgpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRJbnB1dE1ldGhvZFN0YXRl
KGJvb2wgZW5hYmxlZCk7CiAgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5n
KFdlYkNvcmU6OlNwZWxsQ2hlY2tlciosIGludCwgY29uc3QgV1RGOjpTdHJpbmcmKSB7fQorICAg
IHZpcnR1YWwgVGV4dENoZWNrZXJDbGllbnQqIHRleHRDaGVja2VyKCkgeyByZXR1cm4gdGhpczsg
fQogCiBwcml2YXRlOgogICAgIFBhZ2UqIG1fcGFnZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA5ZjkxNmFjODYw
YThhMDE2ZThhN2JhZTE4YWU5NWY4NjEwMDBkZGQ4Li45ODJjZDAzYWZkZjAzNjE1ZTUyNzZjMTNj
YjdlMmFiMTg5MzhkNDEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMDEtMjYg
IE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTmVlZCBhIHNob3J0IGRlc2NyaXB0aW9uIGFu
ZCBidWcgVVJMIChPT1BTISkKKworICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2Rl
cnMuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvVGV4dENoZWNrZXIuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oOgorICAgICAgICAoV2ViS2l0
OjpXZWJFZGl0b3JDbGllbnQ6OnRleHRDaGVja2VyKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dDIvbWVzc2FnZXMucHk6IFJlLWFycmFuZ2VkIHRoZSBpbmNsdWRlIGZpbGUKKwogMjAxMS0wMi0x
MyAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IE1hY2llaiBTdGFjaG93aWFrLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2Ny
aXB0cy93ZWJraXQyL21lc3NhZ2VzLnB5IGIvU291cmNlL1dlYktpdDIvU2NyaXB0cy93ZWJraXQy
L21lc3NhZ2VzLnB5CmluZGV4IDgwMGRjMzliMGZlY2IzOTUxZmRjNWZjNDhkZmUwNGM5MjBiMmNj
MWIuLmY4NDc4NjlmYmQ2OTQ1ZTVlMDJkNDE0NTkyYjdlYmI1NjExODI4NGIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0Mi9tZXNzYWdlcy5weQorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9TY3JpcHRzL3dlYmtpdDIvbWVzc2FnZXMucHkKQEAgLTQyNCw3ICs0MjQsNyBAQCBk
ZWYgaGVhZGVyc19mb3JfdHlwZSh0eXBlKToKICAgICAgICAgJ1dlYkNvcmU6OkNvbXBvc2l0aW9u
VW5kZXJsaW5lJzogJzxXZWJDb3JlL0VkaXRvci5oPicsCiAgICAgICAgICdXZWJDb3JlOjpLZXlw
cmVzc0NvbW1hbmQnOiAnPFdlYkNvcmUvS2V5Ym9hcmRFdmVudC5oPicsCiAgICAgICAgICdXZWJD
b3JlOjpQbHVnaW5JbmZvJzogJzxXZWJDb3JlL1BsdWdpbkRhdGEuaD4nLAotICAgICAgICAnV2Vi
Q29yZTo6VGV4dENoZWNraW5nUmVzdWx0JzogJzxXZWJDb3JlL0VkaXRvckNsaWVudC5oPicsCisg
ICAgICAgICdXZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZXN1bHQnOiAnPFdlYkNvcmUvVGV4dENoZWNr
ZXJDbGllbnQuaD4nLAogICAgICAgICAnV2ViS2l0OjpXZWJHZXN0dXJlRXZlbnQnOiAnIldlYkV2
ZW50LmgiJywKICAgICAgICAgJ1dlYktpdDo6V2ViS2V5Ym9hcmRFdmVudCc6ICciV2ViRXZlbnQu
aCInLAogICAgICAgICAnV2ViS2l0OjpXZWJNb3VzZUV2ZW50JzogJyJXZWJFdmVudC5oIicsCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKaW5kZXggNjJj
NjhjNzYxZTVjZmM0MDY1YTFiMzQxZjUzYTRhMmZlNGViNTY2MC4uZTc4MDJjMzcyNmYyY2UzMGNl
ZDgxNDEyMTlkYjg0YzJjOWU2MTliOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L1dlYkNvcmVBcmd1bWVudENvZGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJD
b3JlQXJndW1lbnRDb2RlcnMuaApAQCAtNDMsNiArNDMsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUv
UHJvdGVjdGlvblNwYWNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUVycm9yLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Rl
eHRDaGVja2VyQ2xpZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9WaWV3cG9ydEFyZ3VtZW50cy5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvV2luZG93RmVhdHVyZXMuaD4KICNpbmNsdWRlIDxsaW1pdHM+
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVGV4dENoZWNrZXIuaCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9UZXh0Q2hlY2tlci5oCmluZGV4IGZjMzQ3ZmU1NDdiZDI3
N2EwYmYyYzZmOTk1ZTM0NTEyMzg2ZmY5MjkuLjk5OTdkOGJkYzkzNjIxNDA2ZjhkNTQxNmM0YmRl
NTI3NjEzMTk0NGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9UZXh0Q2hl
Y2tlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9UZXh0Q2hlY2tlci5oCkBAIC0y
Nyw2ICsyNyw3IEBACiAjZGVmaW5lIFRleHRDaGVja2VyX2gKIAogI2luY2x1ZGUgPFdlYkNvcmUv
RWRpdG9yQ2xpZW50Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9UZXh0Q2hlY2tlckNsaWVudC5oPgog
CiBuYW1lc3BhY2UgV2ViS2l0IHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKaW5kZXggNDBiZDhjNjkz
MGQwOTlhMDdmYzAxMDYxMzQyYTA0ZTYwNDk5MjhmYS4uYzRlMGQwMjVmNzJlMDZmNWNlZWQ5NTEw
NzE5ZjdlNDQzMTNmOTlkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCkBAIC0yNywxMiArMjcsMTMg
QEAKICNkZWZpbmUgV2ViRWRpdG9yQ2xpZW50X2gKIAogI2luY2x1ZGUgPFdlYkNvcmUvRWRpdG9y
Q2xpZW50Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9UZXh0Q2hlY2tlckNsaWVudC5oPgogCiBuYW1l
c3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgV2ViUGFnZTsKIAotY2xhc3MgV2ViRWRpdG9yQ2xpZW50
IDogcHVibGljIFdlYkNvcmU6OkVkaXRvckNsaWVudCB7CitjbGFzcyBXZWJFZGl0b3JDbGllbnQg
OiBwdWJsaWMgV2ViQ29yZTo6RWRpdG9yQ2xpZW50LCBwdWJsaWMgV2ViQ29yZTo6VGV4dENoZWNr
ZXJDbGllbnQgewogcHVibGljOgogICAgIFdlYkVkaXRvckNsaWVudChXZWJQYWdlKiBwYWdlKQog
ICAgICAgICA6IG1fcGFnZShwYWdlKQpAQCAtMTIwLDYgKzEyMSw4IEBAIHByaXZhdGU6CiAgICAg
dmlydHVhbCB2b2lkIHRvZ2dsZUF1dG9tYXRpY1NwZWxsaW5nQ29ycmVjdGlvbigpOwogI2VuZGlm
CiAKKyAgICBUZXh0Q2hlY2tlckNsaWVudCogdGV4dENoZWNrZXIoKSB7IHJldHVybiB0aGlzOyB9
CisKICAgICB2aXJ0dWFsIHZvaWQgaWdub3JlV29yZEluU3BlbGxEb2N1bWVudChjb25zdCBTdHJp
bmcmKTsKICAgICB2aXJ0dWFsIHZvaWQgbGVhcm5Xb3JkKGNvbnN0IFN0cmluZyYpOwogICAgIHZp
cnR1YWwgdm9pZCBjaGVja1NwZWxsaW5nT2ZTdHJpbmcoY29uc3QgVUNoYXIqLCBpbnQgbGVuZ3Ro
LCBpbnQqIG1pc3NwZWxsaW5nTG9jYXRpb24sIGludCogbWlzc3BlbGxpbmdMZW5ndGgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>82409</attachid>
            <date>2011-02-14 19:50:53 -0800</date>
            <delta_ts>2011-02-14 20:07:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-53213-20110215125051.patch</filename>
            <type>text/plain</type>
            <size>52467</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogNzg0NTQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2YmU0ODFjN2U2YmE5Yjcw
OGYwM2QzYzY3NGRmZjg4MDk4MGJlZDE2Li5mZjY3YzExYzRjNDQzODRhZjYxNmExNDIyYzA1YjZl
OTM1YzUwZTgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTcgQEAKKzIwMTEtMDEtMjYgIE1PUklU
QSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgUmVmYWN0b3Jpbmc6IEV4dHJhY3QgVGV4dENoZWNrZXJD
bGllbnQgZnJvbSBFZGl0b3JDbGllbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTUzMjEzCisgICAgICAgIAorICAgICAgICBDcmVhdGVkIG5ldyBhYnN0
cmFjdCBjbGFzcyBUZXh0Q2hlY2tlckNsaWVudC4gVGhlIGNsYXNzIGhhcworICAgICAgICBzcGVs
bGNoZWNrIHJlbGF0ZWQgQVBJIHdoaWNoIGlzIHNwbGl0LgorICAgICAgICBUaGlzIGlzIHRoZSBm
aXJzdCBzdGVwIGZvciBzaGFyaW5nIHNwZWxsLWNoZWNraW5nIGNvZGViYXNlCisgICAgICAgIGJl
dHdlZW4gcG9ydHMuIEEgc3RhbmRhbG9uZSBUZXh0Q2hlY2tlckNsaWVudCBpbXBsZW1lbnRhdGlv
bgorICAgICAgICBzaG91bGQgYmUgZG9uZSBpbiBmdXR1cmUgY2hhbmdlcy4KKworICAgICAgICBO
byBuZXcgdGVzdHMuIE5vIGJlaGF2aW9yYWwgY2hhbmdlLgorCisgICAgICAgICogR05VbWFrZWZp
bGUuYW06CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUucHJvOgor
ICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21h
Yy9BY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlci5tbToKKyAgICAgICAgKEFYQXR0cmlidXRlU3Ry
aW5nU2V0U3BlbGxpbmcpOgorICAgICAgICAqIGVkaXRpbmcvRWRpdG9yLmNwcDogUmVwbGFjaW5n
IHNvbWUgY2xpZW50KCkgY2FsbCB3aXRoIHRleHRDaGVja2VyKCkuCisgICAgICAgIChXZWJDb3Jl
OjpFZGl0b3I6OnRleHRDaGVja2VyKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6
Omlnbm9yZVNwZWxsaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6bGVhcm5TcGVsbGlu
Zyk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OmlzU2VsZWN0aW9uTWlzc3BlbGxlZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpFZGl0b3I6Omd1ZXNzZXNGb3JNaXNzcGVsbGVkU2VsZWN0aW9uKToK
KyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6bWFya01pc3NwZWxsaW5nc0FmdGVyVHlwaW5nVG9X
b3JkKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6bWFya0FsbE1pc3NwZWxsaW5nc0FuZEJh
ZEdyYW1tYXJJblJhbmdlcyk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OmNvcnJlY3Rpb25Q
YW5lbFRpbWVyRmlyZWQpOgorICAgICAgICAqIGVkaXRpbmcvRWRpdG9yLmg6CisgICAgICAgICog
ZWRpdGluZy9TcGVsbENoZWNrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3BlbGxDaGVja2Vy
OjpyZXF1ZXN0Q2hlY2tpbmdGb3IpOgorICAgICAgICAqIGVkaXRpbmcvVGV4dENoZWNraW5nSGVs
cGVyLmNwcDogUmVwbGFjaW5nIHNvbWUgY2xpZW50KCkgY2FsbCB3aXRoIHRleHRDaGVja2VyKCku
CisgICAgICAgIChXZWJDb3JlOjpUZXh0Q2hlY2tpbmdIZWxwZXI6OmZpbmRGaXJzdE1pc3NwZWxs
aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRDaGVja2luZ0hlbHBlcjo6ZmluZEZpcnN0TWlz
c3BlbGxpbmdPckJhZEdyYW1tYXIpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dENoZWNraW5nSGVs
cGVyOjpmaW5kRmlyc3RCYWRHcmFtbWFyKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRDaGVja2lu
Z0hlbHBlcjo6Z3Vlc3Nlc0Zvck1pc3NwZWxsZWRPclVuZ3JhbW1hdGljYWxSYW5nZSk6CisgICAg
ICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5oOiBBZGRlZCBFbXB0eVRleHRDaGVja2VyQ2xpZW50
LgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlUZXh0Q2hlY2tlckNsaWVudDo6aWdub3JlV29yZElu
U3BlbGxEb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpFbXB0eVRleHRDaGVja2VyQ2xpZW50
OjpsZWFybldvcmQpOgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlUZXh0Q2hlY2tlckNsaWVudDo6
Y2hlY2tTcGVsbGluZ09mU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5VGV4dENoZWNr
ZXJDbGllbnQ6OmdldEF1dG9Db3JyZWN0U3VnZ2VzdGlvbkZvck1pc3NwZWxsZWRXb3JkKToKKyAg
ICAgICAgKFdlYkNvcmU6OkVtcHR5VGV4dENoZWNrZXJDbGllbnQ6OmNoZWNrR3JhbW1hck9mU3Ry
aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5VGV4dENoZWNrZXJDbGllbnQ6OmNoZWNrVGV4
dE9mUGFyYWdyYXBoKToKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5VGV4dENoZWNrZXJDbGllbnQ6
OmdldEd1ZXNzZXNGb3JXb3JkKToKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5VGV4dENoZWNrZXJD
bGllbnQ6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5
RWRpdG9yQ2xpZW50Ojp0ZXh0Q2hlY2tlcik6CisgICAgICAgICogcGFnZS9FZGl0b3JDbGllbnQu
aDogRXh0cmFjdGVkIFRleHRDaGVja2VyQ2xpZW50LgorICAgICAgICAqIHBhZ2UvUGFnZS5oOgor
ICAgICAgICAqIHBsYXRmb3JtL3RleHQvVGV4dENoZWNrZXJDbGllbnQuaDogQWRkZWQuCisgICAg
ICAgIChXZWJDb3JlOjpUZXh0Q2hlY2tlckNsaWVudDo6flRleHRDaGVja2VyQ2xpZW50KToKKwog
MjAxMS0wMi0xMiAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgQWxleGV5IFByb3NrdXJ5YWtvdi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0dOVW1ha2VmaWxlLmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KaW5kZXggNGMz
Nzg4YmQyMzFkNjMzNjk1OWMwMjE2ZDQ0ZTI5MTI1OThlMmE4Zi4uOWE2YjEzMTUyNDE4NmIxNzUy
NzZhNDBlODE5MmI0ZjBmOWU5OTBiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFr
ZWZpbGUuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KQEAgLTI2NDIsNiAr
MjY0Miw3IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
dGV4dC9UZXh0Qm91bmRhcmllcy5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQv
VGV4dEJvdW5kYXJpZXMuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0QnJl
YWtJdGVyYXRvci5oIFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRDaGVja2Vy
Q2xpZW50LmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dENvZGVjLmNwcCBc
CiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0Q29kZWMuaCBcCiAJU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0Q29kZWNMYXRpbjEuY3BwIFwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpp
bmRleCBlYjgwMTZjNzkwODM3MmQ0ZmRlYWM2OGRlNDIzMWU2Zjk5NTY5ZGE5Li45MjczYzA2NjM5
ZjZmNjI3MDZhOTBmNjNiN2NhN2E1ZTY3MGU3OWY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0zMzQ0
LDYgKzMzNDQsNyBAQAogICAgICAgICAgICAgJ3BsYXRmb3JtL3RleHQvVGV4dEJyZWFrSXRlcmF0
b3IuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vdGV4dC9UZXh0QnJlYWtJdGVyYXRvcklDVS5j
cHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL3RleHQvVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5h
bElDVS5oJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS90ZXh0L1RleHRDaGVja2VyQ2xpZW50Lmgn
LAogICAgICAgICAgICAgJ3BsYXRmb3JtL3RleHQvVGV4dENvZGVjLmNwcCcsCiAgICAgICAgICAg
ICAncGxhdGZvcm0vdGV4dC9UZXh0Q29kZWMuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vdGV4
dC9UZXh0Q29kZWNJQ1UuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
cHJvIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KaW5kZXggNzQ4YzAzMjYzYTA1MzhkZmNj
N2MwY2U4MGIwMGQzNTg3N2FmMmQxYS4uNDc4ZjlhZjY3ZmUxYzdiNjg3YTFkYWIzNjllZDFmZGJj
YzM5MjMyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KQEAgLTIwNzAsNiArMjA3MCw3IEBAIEhFQURFUlMgKz0g
XAogICAgIHBhZ2UvRHJhZ0NvbnRyb2xsZXIuaCBcCiAgICAgcGFnZS9FdmVudEhhbmRsZXIuaCBc
CiAgICAgcGFnZS9FdmVudFNvdXJjZS5oIFwKKyAgICBwYWdlL0VkaXRvckNsaWVudC5oIFwKICAg
ICBwYWdlL0ZvY3VzQ29udHJvbGxlci5oIFwKICAgICBwYWdlL0ZyYW1lLmggXAogICAgIHBhZ2Uv
RnJhbWVUcmVlLmggXApAQCAtMjE5Myw2ICsyMTk0LDcgQEAgSEVBREVSUyArPSBcCiAgICAgcGxh
dGZvcm0vS1VSTC5oIFwKICAgICBwbGF0Zm9ybS9MZW5ndGguaCBcCiAgICAgcGxhdGZvcm0vdGV4
dC9MaW5lRW5kaW5nLmggXAorICAgIHBsYXRmb3JtL3RleHQvVGV4dENoZWNrZXJDbGllbnQuaCBc
CiAgICAgcGxhdGZvcm0vTGlua0hhc2guaCBcCiAgICAgcGxhdGZvcm0vTG9nZ2luZy5oIFwKICAg
ICBwbGF0Zm9ybS9MYW5ndWFnZS5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ov
V2ViQ29yZS52Y3Byb2oKaW5kZXggMmE4ZjM0MGE2OTQ5NzA1NzJmYzlhNTUwMDQ4YmYzODNhZmM5
ZThiNC4uMjg2MTkyNzBmMzk3YTJkZGM3OTlhODc5Y2FjZjZkZGMyYTRhNGU3MCAxMDA3NTUKLS0t
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTMwMzY5LDYgKzMw
MzY5LDEwIEBACiAJCQkJCT4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxwbGF0Zm9ybVx0ZXh0XFRleHRDaGVja2VyQ2xpZW50LmgiCisJCQkJCT4KKwkJCQk8
L0ZpbGU+CisJCQkJPEZpbGUKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVx0ZXh0XFRl
eHRDb2RlY0lDVS5jcHAiCiAJCQkJCT4KIAkJCQkJPEZpbGVDb25maWd1cmF0aW9uCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZmMx
NzkyNzBhNDk0ZTdkMjNjNTMyNjU0ZmVhM2FmNDNiNjhlYmUwNi4uNjc2Y2I0YjA1YWNmYzIzZmE5
OGVhY2E5NzQwYjU2ODQ2ZTIwOTBhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzIxNyw2ICszMjE3LDcgQEAKIAkJQTdEM0M1
MjQwQjU3NkI0QjAwMkNBNDUwIC8qIFBhc3RlYm9hcmRIZWxwZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3RDNDNTIzMEI1NzZCNEIwMDJDQTQ1MCAv
KiBQYXN0ZWJvYXJkSGVscGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJQTdENkIzNDkwRjYxMTA0NTAwQjc5RkQxIC8qIFdvcmtlclNjcmlwdExv
YWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdE
NkIzNDcwRjYxMTA0NTAwQjc5RkQxIC8qIFdvcmtlclNjcmlwdExvYWRlci5oICovOyB9OwogCQlB
N0Q2QjM0QTBGNjExMDQ1MDBCNzlGRDEgLyogV29ya2VyU2NyaXB0TG9hZGVyLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3RDZCMzQ4MEY2MTEwNDUw
MEI3OUZEMSAvKiBXb3JrZXJTY3JpcHRMb2FkZXIuY3BwICovOyB9OworCQlBNzE1MUJEODEyRjE1
NThGMDA1QTBGNjQgLyogVGV4dENoZWNrZXJDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3MTUxQkQ3MTJGMTU1OEYwMDVBMEY2NCAvKiBUZXh0
Q2hlY2tlckNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCUE3REJGOEREMTI3NjkxOUMwMDZCNjAwOCAvKiBUZXh0Q2hlY2tpbmdIZWxwZXIu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdEQkY4
REIxMjc2OTE5QzAwNkI2MDA4IC8qIFRleHRDaGVja2luZ0hlbHBlci5jcHAgKi87IH07CiAJCUE3
REJGOERFMTI3NjkxOUMwMDZCNjAwOCAvKiBUZXh0Q2hlY2tpbmdIZWxwZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3REJGOERDMTI3NjkxOUMwMDZC
NjAwOCAvKiBUZXh0Q2hlY2tpbmdIZWxwZXIuaCAqLzsgfTsKIAkJQTdGMzM4QTMxMUMwRUZDQTAw
QTMyMEE3IC8qIFNoYWRvd0VsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTdGMzM4QTExMUMwRUZDQTAwQTMyMEE3IC8qIFNoYWRvd0VsZW1l
bnQuY3BwICovOyB9OwpAQCAtOTU2OSw2ICs5NTcwLDcgQEAKIAkJQTYyMkE4RjYxMjJDNDRBNjAw
QTc4NUIzIC8qIEJpbmRpbmdTZWN1cml0eUJhc2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBuYW1lID0gQmluZGluZ1NlY3VyaXR5QmFzZS5jcHA7IHBhdGggPSBnZW5lcmljL0Jp
bmRpbmdTZWN1cml0eUJhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNjIy
QThGNzEyMkM0NEE2MDBBNzg1QjMgLyogQmluZGluZ1NlY3VyaXR5QmFzZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IG5hbWUgPSBCaW5kaW5nU2VjdXJpdHlCYXNlLmg7IHBhdGggPSBnZW5l
cmljL0JpbmRpbmdTZWN1cml0eUJhc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QTYyMkE4RjkxMjJDNDRBNjAwQTc4NUIzIC8qIEdlbmVyaWNCaW5kaW5nLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEdlbmVyaWNCaW5kaW5nLmg7IHBhdGggPSBnZW5lcmljL0dl
bmVyaWNCaW5kaW5nLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE3MTUxQkQ3MTJG
MTU1OEYwMDVBMEY2NCAvKiBUZXh0Q2hlY2tlckNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBUZXh0Q2hlY2tlckNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlBNzE4NzYwRDBCMkExMjAxMDBBMTZFQ0UgLyogRHJhZ0FjdGlvbnMuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRHJhZ0FjdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQTcxODc4OEYwQjJEMDRBQzAwQTE2RUNFIC8qIERyYWdDb250cm9sbGVy
TWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRHJhZ0NvbnRy
b2xsZXJNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3MUE3MEM5MTFBRkIw
MjAwMDk4OUQ2RCAvKiBIVE1MTWV0ZXJFbGVtZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBIVE1MTWV0ZXJFbGVtZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE3
NTg0LDYgKzE3NTg2LDcgQEAKIAkJCQlCMkMzREEwNjBEMDA2QzFEMDBFRjZGMjYgLyogVGV4dEJy
ZWFrSXRlcmF0b3IuaCAqLywKIAkJCQlCMkMzREEwNzBEMDA2QzFEMDBFRjZGMjYgLyogVGV4dEJy
ZWFrSXRlcmF0b3JJQ1UuY3BwICovLAogCQkJCUIyQzNEQTA4MEQwMDZDMUQwMEVGNkYyNiAvKiBU
ZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVLmggKi8sCisJCQkJQTcxNTFCRDcxMkYxNTU4RjAw
NUEwRjY0IC8qIFRleHRDaGVja2VyQ2xpZW50LmggKi8sCiAJCQkJQjJDM0RBMDkwRDAwNkMxRDAw
RUY2RjI2IC8qIFRleHRDb2RlYy5jcHAgKi8sCiAJCQkJQjJDM0RBMEEwRDAwNkMxRDAwRUY2RjI2
IC8qIFRleHRDb2RlYy5oICovLAogCQkJCUIyQzNEQTBCMEQwMDZDMUQwMEVGNkYyNiAvKiBUZXh0
Q29kZWNJQ1UuY3BwICovLApAQCAtMjIyMjYsNiArMjIyMjksNyBAQAogCQkJCUIyQzNEQTM0MEQw
MDZDMUQwMEVGNkYyNiAvKiBUZXh0Qm91bmRhcmllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJD
M0RBMzYwRDAwNkMxRDAwRUY2RjI2IC8qIFRleHRCcmVha0l0ZXJhdG9yLmggaW4gSGVhZGVycyAq
LywKIAkJCQlCMkMzREEzODBEMDA2QzFEMDBFRjZGMjYgLyogVGV4dEJyZWFrSXRlcmF0b3JJbnRl
cm5hbElDVS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTcxNTFCRDgxMkYxNTU4RjAwNUEwRjY0IC8q
IFRleHRDaGVja2VyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlBN0RCRjhERTEyNzY5MTlD
MDA2QjYwMDggLyogVGV4dENoZWNraW5nSGVscGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkMz
REEzQTBEMDA2QzFEMDBFRjZGMjYgLyogVGV4dENvZGVjLmggaW4gSGVhZGVycyAqLywKIAkJCQlC
MkMzREEzQzBEMDA2QzFEMDBFRjZGMjYgLyogVGV4dENvZGVjSUNVLmggaW4gSGVhZGVycyAqLywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FjY2Vzc2liaWxp
dHlPYmplY3RXcmFwcGVyLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQWNj
ZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIubW0KaW5kZXggOGZlM2E0OTk4YTI1MDA5NWM0ZTFmMGVk
YWFmNzZhNzVmYTgxZGQ1Mi4uYTVkZTM1ODVlMGVlMDI2ZjlhMDBlNzM5ZTljOWQ1ZGQ5Mzg2MjEw
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQWNjZXNzaWJp
bGl0eU9iamVjdFdyYXBwZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9t
YWMvQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIubW0KQEAgLTQyLDcgKzQyLDYgQEAKICNpbXBv
cnQgIkFjY2Vzc2liaWxpdHlUYWJsZVJvdy5oIgogI2ltcG9ydCAiQWNjZXNzaWJpbGl0eVRhYmxl
Q29sdW1uLmgiCiAjaW1wb3J0ICJDb2xvck1hYy5oIgotI2ltcG9ydCAiRWRpdG9yQ2xpZW50Lmgi
CiAjaW1wb3J0ICJGcmFtZS5oIgogI2ltcG9ydCAiRnJhbWVMb2FkZXJDbGllbnQuaCIKICNpbXBv
cnQgIkhUTUxBbmNob3JFbGVtZW50LmgiCkBAIC01OCw2ICs1Nyw3IEBACiAjaW1wb3J0ICJTY3Jv
bGxWaWV3LmgiCiAjaW1wb3J0ICJTZWxlY3Rpb25Db250cm9sbGVyLmgiCiAjaW1wb3J0ICJTaW1w
bGVGb250RGF0YS5oIgorI2ltcG9ydCAiVGV4dENoZWNrZXJDbGllbnQuaCIKICNpbXBvcnQgIlRl
eHRJdGVyYXRvci5oIgogI2ltcG9ydCAiV2ViQ29yZUZyYW1lVmlldy5oIgogI2ltcG9ydCAiV2Vi
Q29yZU9iakNFeHRyYXMuaCIKQEAgLTQ4MCwxNCArNDgwLDE0IEBAIHN0YXRpYyB2b2lkIEFYQXR0
cmlidXRlU3RyaW5nU2V0QmxvY2txdW90ZUxldmVsKE5TTXV0YWJsZUF0dHJpYnV0ZWRTdHJpbmcq
IGF0dHJTCiBzdGF0aWMgdm9pZCBBWEF0dHJpYnV0ZVN0cmluZ1NldFNwZWxsaW5nKE5TTXV0YWJs
ZUF0dHJpYnV0ZWRTdHJpbmcqIGF0dHJTdHJpbmcsIE5vZGUqIG5vZGUsIGNvbnN0IFVDaGFyKiBj
aGFycywgaW50IGNoYXJMZW5ndGgsIE5TUmFuZ2UgcmFuZ2UpCiB7CiAgICAgLy8gQ2hlY2sgdGhl
IHNwZWxsaW5nIGRpcmVjdGx5IHNpbmNlIGRvY3VtZW50LT5tYXJrZXJzRm9yTm9kZSgpIGRvZXMg
bm90IHN0b3JlIHRoZSBtaXNzcGVsbGVkIG1hcmtpbmcgd2hlbiB0aGUgY3Vyc29yIGlzIGluIGEg
d29yZC4KLSAgICBFZGl0b3JDbGllbnQqIGNsaWVudCA9IG5vZGUtPmRvY3VtZW50KCktPnBhZ2Uo
KS0+ZWRpdG9yQ2xpZW50KCk7CiAgICAgaW50IGN1cnJlbnRQb3NpdGlvbiA9IDA7CiAgICAgd2hp
bGUgKGNoYXJMZW5ndGggPiAwKSB7CiAgICAgICAgIGNvbnN0IFVDaGFyKiBjaGFyRGF0YSA9IGNo
YXJzICsgY3VycmVudFBvc2l0aW9uOworICAgICAgICBUZXh0Q2hlY2tlckNsaWVudCogY2hlY2tl
ciA9IG5vZGUtPmRvY3VtZW50KCktPmZyYW1lKCktPmVkaXRvcigpLT50ZXh0Q2hlY2tlcigpOwog
CiAgICAgICAgIGludCBtaXNzcGVsbGluZ0xvY2F0aW9uID0gLTE7CiAgICAgICAgIGludCBtaXNz
cGVsbGluZ0xlbmd0aCA9IDA7Ci0gICAgICAgIGNsaWVudC0+Y2hlY2tTcGVsbGluZ09mU3RyaW5n
KGNoYXJEYXRhLCBjaGFyTGVuZ3RoLCAmbWlzc3BlbGxpbmdMb2NhdGlvbiwgJm1pc3NwZWxsaW5n
TGVuZ3RoKTsKKyAgICAgICAgY2hlY2tlci0+Y2hlY2tTcGVsbGluZ09mU3RyaW5nKGNoYXJEYXRh
LCBjaGFyTGVuZ3RoLCAmbWlzc3BlbGxpbmdMb2NhdGlvbiwgJm1pc3NwZWxsaW5nTGVuZ3RoKTsK
ICAgICAgICAgaWYgKG1pc3NwZWxsaW5nTG9jYXRpb24gPT0gLTEgfHwgIW1pc3NwZWxsaW5nTGVu
Z3RoKQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3Iu
Y3BwCmluZGV4IDk5NjI0YjMyYjQyZmQwNzdmM2RjMmE2ZjljNDdhNDJlMDZjNzdlNzUuLmZiZjA2
MTFmOTU4ODg3MWU3ZWMyZWYwZmFmNjJiMGNmZjYwOWU1YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Vk
aXRvci5jcHAKQEAgLTY0LDYgKzY0LDcgQEAKICNpbmNsdWRlICJOb2RlTGlzdC5oIgogI2luY2x1
ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQYXN0ZWJvYXJkLmgiCisjaW5jbHVkZSAiVGV4dENoZWNr
ZXJDbGllbnQuaCIKICNpbmNsdWRlICJUZXh0Q2hlY2tpbmdIZWxwZXIuaCIKICNpbmNsdWRlICJS
ZW1vdmVGb3JtYXRDb21tYW5kLmgiCiAjaW5jbHVkZSAiUmVuZGVyQmxvY2suaCIKQEAgLTE3MSw2
ICsxNzIsMTQgQEAgRWRpdG9yQ2xpZW50KiBFZGl0b3I6OmNsaWVudCgpIGNvbnN0CiAgICAgcmV0
dXJuIDA7CiB9CiAKKworVGV4dENoZWNrZXJDbGllbnQqIEVkaXRvcjo6dGV4dENoZWNrZXIoKSBj
b25zdAoreworICAgIGlmIChFZGl0b3JDbGllbnQqIG93bmVyID0gY2xpZW50KCkpCisgICAgICAg
IHJldHVybiBvd25lci0+dGV4dENoZWNrZXIoKTsKKyAgICByZXR1cm4gMDsKK30KKwogdm9pZCBF
ZGl0b3I6OmhhbmRsZUtleWJvYXJkRXZlbnQoS2V5Ym9hcmRFdmVudCogZXZlbnQpCiB7CiAgICAg
aWYgKEVkaXRvckNsaWVudCogYyA9IGNsaWVudCgpKQpAQCAtMTE1MCw3ICsxMTU5LDcgQEAgRWRp
dG9yOjpFZGl0b3IoRnJhbWUqIGZyYW1lKQogICAgIC8vIFRoaXMgaXMgb2ZmIGJ5IGRlZmF1bHQs
IHNpbmNlIG1vc3QgZWRpdG9ycyB3YW50IHRoaXMgYmVoYXZpb3IgKHRoaXMgbWF0Y2hlcyBJRSBi
dXQgbm90IEZGKS4KICAgICAsIG1fc2hvdWxkU3R5bGVXaXRoQ1NTKGZhbHNlKQogICAgICwgbV9r
aWxsUmluZyhhZG9wdFB0cihuZXcgS2lsbFJpbmcpKQotICAgICwgbV9zcGVsbENoZWNrZXIobmV3
IFNwZWxsQ2hlY2tlcihmcmFtZSwgZnJhbWUtPnBhZ2UoKSA/IGZyYW1lLT5wYWdlKCktPmVkaXRv
ckNsaWVudCgpIDogMCkpCisgICAgLCBtX3NwZWxsQ2hlY2tlcihuZXcgU3BlbGxDaGVja2VyKGZy
YW1lLCBmcmFtZS0+cGFnZSgpID8gZnJhbWUtPnBhZ2UoKS0+ZWRpdG9yQ2xpZW50KCktPnRleHRD
aGVja2VyKCkgOiAwKSkKICAgICAsIG1fY29ycmVjdGlvblBhbmVsVGltZXIodGhpcywgJkVkaXRv
cjo6Y29ycmVjdGlvblBhbmVsVGltZXJGaXJlZCkKICAgICAsIG1fYXJlTWFya2VkVGV4dE1hdGNo
ZXNIaWdobGlnaHRlZChmYWxzZSkKIHsKQEAgLTE3NDYsNyArMTc1NSw3IEBAIHZvaWQgRWRpdG9y
OjppZ25vcmVTcGVsbGluZygpCiAKICAgICBTdHJpbmcgdGV4dCA9IHNlbGVjdGVkVGV4dCgpOwog
ICAgIEFTU0VSVCh0ZXh0Lmxlbmd0aCgpKTsKLSAgICBjbGllbnQoKS0+aWdub3JlV29yZEluU3Bl
bGxEb2N1bWVudCh0ZXh0KTsKKyAgICB0ZXh0Q2hlY2tlcigpLT5pZ25vcmVXb3JkSW5TcGVsbERv
Y3VtZW50KHRleHQpOwogfQogCiB2b2lkIEVkaXRvcjo6bGVhcm5TcGVsbGluZygpCkBAIC0xNzU5
LDcgKzE3NjgsNyBAQCB2b2lkIEVkaXRvcjo6bGVhcm5TcGVsbGluZygpCiAKICAgICBTdHJpbmcg
dGV4dCA9IHNlbGVjdGVkVGV4dCgpOwogICAgIEFTU0VSVCh0ZXh0Lmxlbmd0aCgpKTsKLSAgICBj
bGllbnQoKS0+bGVhcm5Xb3JkKHRleHQpOworICAgIHRleHRDaGVja2VyKCktPmxlYXJuV29yZCh0
ZXh0KTsKIH0KIAogdm9pZCBFZGl0b3I6OmFkdmFuY2VUb05leHRNaXNzcGVsbGluZyhib29sIHN0
YXJ0QmVmb3JlU2VsZWN0aW9uKQpAQCAtMTk0OSw3ICsxOTU4LDcgQEAgYm9vbCBFZGl0b3I6Omlz
U2VsZWN0aW9uTWlzc3BlbGxlZCgpCiAgICAgCiAgICAgaW50IG1pc3NwZWxsaW5nTG9jYXRpb24g
PSAtMTsKICAgICBpbnQgbWlzc3BlbGxpbmdMZW5ndGggPSAwOwotICAgIGNsaWVudCgpLT5jaGVj
a1NwZWxsaW5nT2ZTdHJpbmcoc2VsZWN0ZWRTdHJpbmcuY2hhcmFjdGVycygpLCBsZW5ndGgsICZt
aXNzcGVsbGluZ0xvY2F0aW9uLCAmbWlzc3BlbGxpbmdMZW5ndGgpOworICAgIHRleHRDaGVja2Vy
KCktPmNoZWNrU3BlbGxpbmdPZlN0cmluZyhzZWxlY3RlZFN0cmluZy5jaGFyYWN0ZXJzKCksIGxl
bmd0aCwgJm1pc3NwZWxsaW5nTG9jYXRpb24sICZtaXNzcGVsbGluZ0xlbmd0aCk7CiAgICAgCiAg
ICAgLy8gVGhlIHNlbGVjdGlvbiBvbmx5IGNvdW50cyBhcyBtaXNzcGVsbGVkIGlmIHRoZSBzZWxl
Y3RlZCB0ZXh0IGlzIGV4YWN0bHkgb25lIG1pc3NwZWxsZWQgd29yZAogICAgIGlmIChtaXNzcGVs
bGluZ0xlbmd0aCAhPSBsZW5ndGgpCkBAIC0xOTkzLDcgKzIwMDIsNyBAQCBWZWN0b3I8U3RyaW5n
PiBFZGl0b3I6Omd1ZXNzZXNGb3JNaXNzcGVsbGVkU2VsZWN0aW9uKCkKIAogICAgIFZlY3RvcjxT
dHJpbmc+IGd1ZXNzZXM7CiAgICAgaWYgKGNsaWVudCgpKQotICAgICAgICBjbGllbnQoKS0+Z2V0
R3Vlc3Nlc0ZvcldvcmQoc2VsZWN0ZWRTdHJpbmcsIFN0cmluZygpLCBndWVzc2VzKTsKKyAgICAg
ICAgdGV4dENoZWNrZXIoKS0+Z2V0R3Vlc3Nlc0ZvcldvcmQoc2VsZWN0ZWRTdHJpbmcsIFN0cmlu
ZygpLCBndWVzc2VzKTsKICAgICByZXR1cm4gZ3Vlc3NlczsKIH0KIApAQCAtMjEyNSw3ICsyMTM0
LDcgQEAgdm9pZCBFZGl0b3I6Om1hcmtNaXNzcGVsbGluZ3NBZnRlclR5cGluZ1RvV29yZChjb25z
dCBWaXNpYmxlUG9zaXRpb24gJndvcmRTdGFydCwKICAgICAKICAgICAvLyBHZXQgdGhlIG1pc3Nw
ZWxsZWQgd29yZC4KICAgICBjb25zdCBTdHJpbmcgbWlzc3BlbGxlZFdvcmQgPSBwbGFpblRleHQo
bWlzc3BlbGxpbmdSYW5nZS5nZXQoKSk7Ci0gICAgU3RyaW5nIGF1dG9jb3JyZWN0ZWRTdHJpbmcg
PSBjbGllbnQoKS0+Z2V0QXV0b0NvcnJlY3RTdWdnZXN0aW9uRm9yTWlzc3BlbGxlZFdvcmQobWlz
c3BlbGxlZFdvcmQpOworICAgIFN0cmluZyBhdXRvY29ycmVjdGVkU3RyaW5nID0gdGV4dENoZWNr
ZXIoKS0+Z2V0QXV0b0NvcnJlY3RTdWdnZXN0aW9uRm9yTWlzc3BlbGxlZFdvcmQobWlzc3BlbGxl
ZFdvcmQpOwogCiAgICAgLy8gSWYgYXV0b2NvcnJlY3RlZCB3b3JkIGlzIG5vbiBlbXB0eSwgcmVw
bGFjZSB0aGUgbWlzc3BlbGxlZCB3b3JkIGJ5IHRoaXMgd29yZC4KICAgICBpZiAoIWF1dG9jb3Jy
ZWN0ZWRTdHJpbmcuaXNFbXB0eSgpKSB7CkBAIC0yMjk2LDcgKzIzMDUsNyBAQCB2b2lkIEVkaXRv
cjo6bWFya0FsbE1pc3NwZWxsaW5nc0FuZEJhZEdyYW1tYXJJblJhbmdlcyhUZXh0Q2hlY2tpbmdP
cHRpb25zIHRleHRDaAogICAgICAgICBpZiAoc2hvdWxkTWFya1NwZWxsaW5nICYmIGlzQXV0b21h
dGljU3BlbGxpbmdDb3JyZWN0aW9uRW5hYmxlZCgpKQogICAgICAgICAgICAgY2hlY2tpbmdUeXBl
cyB8PSBUZXh0Q2hlY2tpbmdUeXBlQ29ycmVjdGlvbjsKICAgICB9Ci0gICAgY2xpZW50KCktPmNo
ZWNrVGV4dE9mUGFyYWdyYXBoKHBhcmFncmFwaC50ZXh0Q2hhcmFjdGVycygpLCBwYXJhZ3JhcGgu
dGV4dExlbmd0aCgpLCBjaGVja2luZ1R5cGVzLCByZXN1bHRzKTsKKyAgICB0ZXh0Q2hlY2tlcigp
LT5jaGVja1RleHRPZlBhcmFncmFwaChwYXJhZ3JhcGgudGV4dENoYXJhY3RlcnMoKSwgcGFyYWdy
YXBoLnRleHRMZW5ndGgoKSwgY2hlY2tpbmdUeXBlcywgcmVzdWx0cyk7CiAKICNpZiBTVVBQT1JU
X0FVVE9DT1JSRUNUSU9OX1BBTkVMCiAgICAgLy8gSWYgdGhpcyBjaGVja2luZyBpcyBvbmx5IGZv
ciBzaG93aW5nIGNvcnJlY3Rpb24gcGFuZWwsIHdlIHNob3VsZG4ndCBib3RoZXIgdG8gbWFyayBt
aXNzcGVsbGluZ3MuCkBAIC0yNTEwLDcgKzI1MTksNyBAQCB2b2lkIEVkaXRvcjo6Y29ycmVjdGlv
blBhbmVsVGltZXJGaXJlZChUaW1lcjxFZGl0b3I+KikKICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICBTdHJpbmcgcGFyYWdyYXBoVGV4dCA9IHBsYWluVGV4dChUZXh0Q2hlY2tpbmdQYXJhZ3Jh
cGgobV9jb3JyZWN0aW9uUGFuZWxJbmZvLnJhbmdlVG9CZVJlcGxhY2VkKS5wYXJhZ3JhcGhSYW5n
ZSgpLmdldCgpKTsKICAgICAgICAgVmVjdG9yPFN0cmluZz4gc3VnZ2VzdGlvbnM7Ci0gICAgICAg
IGNsaWVudCgpLT5nZXRHdWVzc2VzRm9yV29yZChtX2NvcnJlY3Rpb25QYW5lbEluZm8ucmVwbGFj
ZWRTdHJpbmcsIHBhcmFncmFwaFRleHQsIHN1Z2dlc3Rpb25zKTsKKyAgICAgICAgdGV4dENoZWNr
ZXIoKS0+Z2V0R3Vlc3Nlc0ZvcldvcmQobV9jb3JyZWN0aW9uUGFuZWxJbmZvLnJlcGxhY2VkU3Ry
aW5nLCBwYXJhZ3JhcGhUZXh0LCBzdWdnZXN0aW9ucyk7CiAgICAgICAgIGlmIChzdWdnZXN0aW9u
cy5pc0VtcHR5KCkpIHsKICAgICAgICAgICAgIG1fY29ycmVjdGlvblBhbmVsSW5mby5yYW5nZVRv
QmVSZXBsYWNlZC5jbGVhcigpOwogICAgICAgICAgICAgYnJlYWs7CkBAIC0zNTMzLDUgKzM1NDIs
NCBAQCBib29sIEVkaXRvcjo6c2VsZWN0aW9uU3RhcnRIYXNTcGVsbGluZ01hcmtlckZvcihpbnQg
ZnJvbSwgaW50IGxlbmd0aCkgY29uc3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLQogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0
b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKaW5kZXggMGEwNmE0YWZmNmM3
ZTRiOTI1MjA3OTg0MTM1YTNiOTZiZDdjMDUzNC4uMDFkYTdiZGUwNThjYzE1YjdjNjBhMzk1NjYy
NjNkZGY1MTJjMWM0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3Iu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCkBAIC02MSw2ICs2MSw3IEBA
IGNsYXNzIFBhc3RlYm9hcmQ7CiBjbGFzcyBTaW1wbGVGb250RGF0YTsKIGNsYXNzIFNwZWxsQ2hl
Y2tlcjsKIGNsYXNzIFRleHQ7CitjbGFzcyBUZXh0Q2hlY2tlckNsaWVudDsKIGNsYXNzIFRleHRF
dmVudDsKIAogc3RydWN0IENvbXBvc2l0aW9uVW5kZXJsaW5lIHsKQEAgLTgzLDYgKzg0LDggQEAg
cHVibGljOgogICAgIH5FZGl0b3IoKTsKIAogICAgIEVkaXRvckNsaWVudCogY2xpZW50KCkgY29u
c3Q7CisgICAgVGV4dENoZWNrZXJDbGllbnQqIHRleHRDaGVja2VyKCkgY29uc3Q7CisKICAgICBG
cmFtZSogZnJhbWUoKSBjb25zdCB7IHJldHVybiBtX2ZyYW1lOyB9CiAgICAgRGVsZXRlQnV0dG9u
Q29udHJvbGxlciogZGVsZXRlQnV0dG9uQ29udHJvbGxlcigpIGNvbnN0IHsgcmV0dXJuIG1fZGVs
ZXRlQnV0dG9uQ29udHJvbGxlci5nZXQoKTsgfQogICAgIEVkaXRDb21tYW5kKiBsYXN0RWRpdENv
bW1hbmQoKSB7IHJldHVybiBtX2xhc3RFZGl0Q29tbWFuZC5nZXQoKTsgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGVsbENoZWNrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9TcGVsbENoZWNrZXIuY3BwCmluZGV4IGYxNGE3NGQ2NzY0M2YyNzg3YzQwZTQxNzgw
YjdjNzcxYTEzOThhMDMuLjc5ODhlNDE2MTBhNTE5YjZhNWNiMjYzMGM2MTBlYmVhOGZhZTVmMjEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BlbGxDaGVja2VyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwZWxsQ2hlY2tlci5jcHAKQEAgLTM3LDEyICszNywx
MyBAQAogI2luY2x1ZGUgIlJhbmdlLmgiCiAjaW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCiAjaW5j
bHVkZSAiU2V0dGluZ3MuaCIKKyNpbmNsdWRlICJUZXh0Q2hlY2tlckNsaWVudC5oIgogI2luY2x1
ZGUgIlRleHRJdGVyYXRvci5oIgogI2luY2x1ZGUgImh0bWxlZGl0aW5nLmgiCiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotU3BlbGxDaGVja2VyOjpTcGVsbENoZWNrZXIoRnJhbWUqIGZyYW1lLCBF
ZGl0b3JDbGllbnQqIGNsaWVudCkKK1NwZWxsQ2hlY2tlcjo6U3BlbGxDaGVja2VyKEZyYW1lKiBm
cmFtZSwgVGV4dENoZWNrZXJDbGllbnQqIGNsaWVudCkKICAgICA6IG1fZnJhbWUoZnJhbWUpCiAg
ICAgLCBtX2NsaWVudChjbGllbnQpCiAgICAgLCBtX3JlcXVlc3RTZXF1ZW5jZSgwKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGVsbENoZWNrZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvU3BlbGxDaGVja2VyLmgKaW5kZXggODFiYjUxOWJmYzE3OTA0NzdhNWFiZjEz
YzZjNTdjNzdlMDEyNmM4Yi4uZDM5NDBlNTA0ZmFhNDZhOTY1YzczODA0YjU5Y2Y3MTFmNzZkY2Jm
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGVsbENoZWNrZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwZWxsQ2hlY2tlci5oCkBAIC0zMSw3ICszMSw3IEBA
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgRWRpdG9yQ2xpZW50OworY2xhc3MgVGV4
dENoZWNrZXJDbGllbnQ7CiBjbGFzcyBGcmFtZTsKIGNsYXNzIE5vZGU7CiAKQEAgLTU3LDcgKzU3
LDcgQEAgcHJpdmF0ZToKIGNsYXNzIFNwZWxsQ2hlY2tlciB7CiAgICAgV1RGX01BS0VfTk9OQ09Q
WUFCTEUoU3BlbGxDaGVja2VyKTsKIHB1YmxpYzoKLSAgICBleHBsaWNpdCBTcGVsbENoZWNrZXIo
RnJhbWUqLCBFZGl0b3JDbGllbnQqKTsKKyAgICBleHBsaWNpdCBTcGVsbENoZWNrZXIoRnJhbWUq
LCBUZXh0Q2hlY2tlckNsaWVudCopOwogICAgIH5TcGVsbENoZWNrZXIoKTsKIAogICAgIGJvb2wg
aXNBc3luY2hyb25vdXNFbmFibGVkKCkgY29uc3Q7CkBAIC03Myw3ICs3Myw3IEBAIHByaXZhdGU6
CiAgICAgdm9pZCBjbGVhclJlcXVlc3QoKTsKIAogICAgIEZyYW1lKiBtX2ZyYW1lOwotICAgIEVk
aXRvckNsaWVudCogbV9jbGllbnQ7CisgICAgVGV4dENoZWNrZXJDbGllbnQqIG1fY2xpZW50Owog
CiAgICAgUmVmUHRyPE5vZGU+IG1fcmVxdWVzdE5vZGU7CiAgICAgU3RyaW5nIG1fcmVxdWVzdFRl
eHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRDaGVja2luZ0hlbHBl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRDaGVja2luZ0hlbHBlci5jcHAKaW5k
ZXggYjQ0MjlhNjQ2ZmJjNmJmNjkyMzgzMTg4ZWRlMTY3MjI3MWJlM2FhYS4uZTU1NTNmZDEwMjky
ZmU1ODdmMGUyMzMwZDE2NWU4ZTE3NzI4ZTQxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9UZXh0Q2hlY2tpbmdIZWxwZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvVGV4dENoZWNraW5nSGVscGVyLmNwcApAQCAtMjksNiArMjksNyBAQAogCiAjaW5jbHVkZSAi
RG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiUmFuZ2UuaCIKKyNpbmNsdWRl
ICJUZXh0Q2hlY2tlckNsaWVudC5oIgogI2luY2x1ZGUgIlRleHRJdGVyYXRvci5oIgogI2luY2x1
ZGUgIlZpc2libGVQb3NpdGlvbi5oIgogI2luY2x1ZGUgInZpc2libGVfdW5pdHMuaCIKQEAgLTE3
OSw3ICsxODAsNyBAQCBTdHJpbmcgVGV4dENoZWNraW5nSGVscGVyOjpmaW5kRmlyc3RNaXNzcGVs
bGluZyhpbnQmIGZpcnN0TWlzc3BlbGxpbmdPZmZzZXQsIGJvbwogICAgICAgICAgICAgCiAgICAg
ICAgICAgICBpbnQgbWlzc3BlbGxpbmdMb2NhdGlvbiA9IC0xOwogICAgICAgICAgICAgaW50IG1p
c3NwZWxsaW5nTGVuZ3RoID0gMDsKLSAgICAgICAgICAgIG1fY2xpZW50LT5jaGVja1NwZWxsaW5n
T2ZTdHJpbmcoY2hhcnMsIGxlbiwgJm1pc3NwZWxsaW5nTG9jYXRpb24sICZtaXNzcGVsbGluZ0xl
bmd0aCk7CisgICAgICAgICAgICBtX2NsaWVudC0+dGV4dENoZWNrZXIoKS0+Y2hlY2tTcGVsbGlu
Z09mU3RyaW5nKGNoYXJzLCBsZW4sICZtaXNzcGVsbGluZ0xvY2F0aW9uLCAmbWlzc3BlbGxpbmdM
ZW5ndGgpOwogCiAgICAgICAgICAgICAvLyA1NDkwNjI3IHNob3dzIHRoYXQgdGhlcmUgd2FzIHNv
bWUgY29kZSBwYXRoIGhlcmUgd2hlcmUgdGhlIFN0cmluZyBjb25zdHJ1Y3RvciBiZWxvdyBjcmFz
aGVzLgogICAgICAgICAgICAgLy8gV2UgZG9uJ3Qga25vdyBleGFjdGx5IHdoYXQgY29tYmluYXRp
b24gb2YgYmFkIGlucHV0IGNhdXNlZCB0aGlzLCBzbyB3ZSdyZSBtYWtpbmcgdGhpcyBtdWNoCkBA
IC0yNzQsNyArMjc1LDcgQEAgU3RyaW5nIFRleHRDaGVja2luZ0hlbHBlcjo6ZmluZEZpcnN0TWlz
c3BlbGxpbmdPckJhZEdyYW1tYXIoYm9vbCBjaGVja0dyYW1tYXIsIGIKICAgICAgICAgICAgICAg
ICAKICAgICAgICAgICAgICAgICBWZWN0b3I8VGV4dENoZWNraW5nUmVzdWx0PiByZXN1bHRzOwog
ICAgICAgICAgICAgICAgIHVpbnQ2NF90IGNoZWNraW5nVHlwZXMgPSBjaGVja0dyYW1tYXIgPyAo
VGV4dENoZWNraW5nVHlwZVNwZWxsaW5nIHwgVGV4dENoZWNraW5nVHlwZUdyYW1tYXIpIDogVGV4
dENoZWNraW5nVHlwZVNwZWxsaW5nOwotICAgICAgICAgICAgICAgIG1fY2xpZW50LT5jaGVja1Rl
eHRPZlBhcmFncmFwaChwYXJhZ3JhcGhTdHJpbmcuY2hhcmFjdGVycygpLCBwYXJhZ3JhcGhTdHJp
bmcubGVuZ3RoKCksIGNoZWNraW5nVHlwZXMsIHJlc3VsdHMpOworICAgICAgICAgICAgICAgIG1f
Y2xpZW50LT50ZXh0Q2hlY2tlcigpLT5jaGVja1RleHRPZlBhcmFncmFwaChwYXJhZ3JhcGhTdHJp
bmcuY2hhcmFjdGVycygpLCBwYXJhZ3JhcGhTdHJpbmcubGVuZ3RoKCksIGNoZWNraW5nVHlwZXMs
IHJlc3VsdHMpOwogICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgIGZvciAodW5zaWdu
ZWQgaSA9IDA7IGkgPCByZXN1bHRzLnNpemUoKTsgaSsrKSB7CiAgICAgICAgICAgICAgICAgICAg
IGNvbnN0IFRleHRDaGVja2luZ1Jlc3VsdCogcmVzdWx0ID0gJnJlc3VsdHNbaV07CkBAIC00MjIs
NyArNDIzLDcgQEAgU3RyaW5nIFRleHRDaGVja2luZ0hlbHBlcjo6ZmluZEZpcnN0QmFkR3JhbW1h
cihHcmFtbWFyRGV0YWlsJiBvdXRHcmFtbWFyRGV0YWlsLAogICAgICAgICBWZWN0b3I8R3JhbW1h
ckRldGFpbD4gZ3JhbW1hckRldGFpbHM7CiAgICAgICAgIGludCBiYWRHcmFtbWFyUGhyYXNlTG9j
YXRpb24gPSAtMTsKICAgICAgICAgaW50IGJhZEdyYW1tYXJQaHJhc2VMZW5ndGggPSAwOwotICAg
ICAgICBtX2NsaWVudC0+Y2hlY2tHcmFtbWFyT2ZTdHJpbmcocGFyYWdyYXBoLnRleHRDaGFyYWN0
ZXJzKCkgKyBzdGFydE9mZnNldCwgcGFyYWdyYXBoLnRleHRMZW5ndGgoKSAtIHN0YXJ0T2Zmc2V0
LCBncmFtbWFyRGV0YWlscywgJmJhZEdyYW1tYXJQaHJhc2VMb2NhdGlvbiwgJmJhZEdyYW1tYXJQ
aHJhc2VMZW5ndGgpOworICAgICAgICBtX2NsaWVudC0+dGV4dENoZWNrZXIoKS0+Y2hlY2tHcmFt
bWFyT2ZTdHJpbmcocGFyYWdyYXBoLnRleHRDaGFyYWN0ZXJzKCkgKyBzdGFydE9mZnNldCwgcGFy
YWdyYXBoLnRleHRMZW5ndGgoKSAtIHN0YXJ0T2Zmc2V0LCBncmFtbWFyRGV0YWlscywgJmJhZEdy
YW1tYXJQaHJhc2VMb2NhdGlvbiwgJmJhZEdyYW1tYXJQaHJhc2VMZW5ndGgpOwogICAgICAgICAK
ICAgICAgICAgaWYgKCFiYWRHcmFtbWFyUGhyYXNlTGVuZ3RoKSB7CiAgICAgICAgICAgICBBU1NF
UlQoYmFkR3JhbW1hclBocmFzZUxvY2F0aW9uID09IC0xKTsKQEAgLTUzNSwxNCArNTM2LDE0IEBA
IFZlY3RvcjxTdHJpbmc+IFRleHRDaGVja2luZ0hlbHBlcjo6Z3Vlc3Nlc0Zvck1pc3NwZWxsZWRP
clVuZ3JhbW1hdGljYWxSYW5nZShib29sCiAKICAgICBWZWN0b3I8VGV4dENoZWNraW5nUmVzdWx0
PiByZXN1bHRzOwogICAgIHVpbnQ2NF90IGNoZWNraW5nVHlwZXMgPSBjaGVja0dyYW1tYXIgPyAo
VGV4dENoZWNraW5nVHlwZVNwZWxsaW5nIHwgVGV4dENoZWNraW5nVHlwZUdyYW1tYXIpIDogVGV4
dENoZWNraW5nVHlwZVNwZWxsaW5nOwotICAgIG1fY2xpZW50LT5jaGVja1RleHRPZlBhcmFncmFw
aChwYXJhZ3JhcGgudGV4dENoYXJhY3RlcnMoKSwgcGFyYWdyYXBoLnRleHRMZW5ndGgoKSwgY2hl
Y2tpbmdUeXBlcywgcmVzdWx0cyk7CisgICAgbV9jbGllbnQtPnRleHRDaGVja2VyKCktPmNoZWNr
VGV4dE9mUGFyYWdyYXBoKHBhcmFncmFwaC50ZXh0Q2hhcmFjdGVycygpLCBwYXJhZ3JhcGgudGV4
dExlbmd0aCgpLCBjaGVja2luZ1R5cGVzLCByZXN1bHRzKTsKICAgICAKICAgICBmb3IgKHVuc2ln
bmVkIGkgPSAwOyBpIDwgcmVzdWx0cy5zaXplKCk7IGkrKykgewogICAgICAgICBjb25zdCBUZXh0
Q2hlY2tpbmdSZXN1bHQqIHJlc3VsdCA9ICZyZXN1bHRzW2ldOwogICAgICAgICBpZiAocmVzdWx0
LT50eXBlID09IFRleHRDaGVja2luZ1R5cGVTcGVsbGluZyAmJiBwYXJhZ3JhcGguY2hlY2tpbmdS
YW5nZU1hdGNoZXMocmVzdWx0LT5sb2NhdGlvbiwgcmVzdWx0LT5sZW5ndGgpKSB7CiAgICAgICAg
ICAgICBTdHJpbmcgbWlzc3BlbGxlZFdvcmQgPSBwYXJhZ3JhcGguY2hlY2tpbmdTdWJzdHJpbmco
KTsKICAgICAgICAgICAgIEFTU0VSVChtaXNzcGVsbGVkV29yZC5sZW5ndGgoKSk7Ci0gICAgICAg
ICAgICBtX2NsaWVudC0+Z2V0R3Vlc3Nlc0ZvcldvcmQobWlzc3BlbGxlZFdvcmQsIFN0cmluZygp
LCBndWVzc2VzKTsKKyAgICAgICAgICAgIG1fY2xpZW50LT50ZXh0Q2hlY2tlcigpLT5nZXRHdWVz
c2VzRm9yV29yZChtaXNzcGVsbGVkV29yZCwgU3RyaW5nKCksIGd1ZXNzZXMpOwogICAgICAgICAg
ICAgbV9jbGllbnQtPnVwZGF0ZVNwZWxsaW5nVUlXaXRoTWlzc3BlbGxlZFdvcmQobWlzc3BlbGxl
ZFdvcmQpOwogICAgICAgICAgICAgbWlzc3BlbGxlZCA9IHRydWU7CiAgICAgICAgICAgICByZXR1
cm4gZ3Vlc3NlczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVu
dHMuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAppbmRleCBlYzc5NDc2
YzI4Y2I5YzA1Y2JhMWUzZGU5NTdmZTNlYmNiZDQ3NzA1Li4wZjNkMzFhZTRiYmNkYjUyN2M5ZjBk
Y2Q2MGU2ZmE4NTRjZTFiYTc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1w
dHlDbGllbnRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCkBA
IC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiRHJhZ0NsaWVudC5oIgogI2luY2x1ZGUgIkVkaXRD
b21tYW5kLmgiCiAjaW5jbHVkZSAiRWRpdG9yQ2xpZW50LmgiCisjaW5jbHVkZSAiVGV4dENoZWNr
ZXJDbGllbnQuaCIKICNpbmNsdWRlICJGbG9hdFJlY3QuaCIKICNpbmNsdWRlICJGb2N1c0RpcmVj
dGlvbi5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50LmgiCkBAIC0zOTUsNiArMzk2LDIy
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8RnJhbWVOZXR3b3JraW5nQ29udGV4
dD4gY3JlYXRlTmV0d29ya2luZ0NvbnRleHQoKSB7IHJldHVybiBQYXNzUmVmUHRyPEZyYW1lTmV0
d29ya2luZ0NvbnRleHQ+KCk7IH0KIH07CiAKK2NsYXNzIEVtcHR5VGV4dENoZWNrZXJDbGllbnQg
OiBwdWJsaWMgVGV4dENoZWNrZXJDbGllbnQgeworcHVibGljOgorICAgIHZpcnR1YWwgdm9pZCBp
Z25vcmVXb3JkSW5TcGVsbERvY3VtZW50KGNvbnN0IFN0cmluZyYpIHsgfQorICAgIHZpcnR1YWwg
dm9pZCBsZWFybldvcmQoY29uc3QgU3RyaW5nJikgeyB9CisgICAgdmlydHVhbCB2b2lkIGNoZWNr
U3BlbGxpbmdPZlN0cmluZyhjb25zdCBVQ2hhciosIGludCwgaW50KiwgaW50KikgeyB9CisgICAg
dmlydHVhbCBTdHJpbmcgZ2V0QXV0b0NvcnJlY3RTdWdnZXN0aW9uRm9yTWlzc3BlbGxlZFdvcmQo
Y29uc3QgU3RyaW5nJikgeyByZXR1cm4gU3RyaW5nKCk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgY2hl
Y2tHcmFtbWFyT2ZTdHJpbmcoY29uc3QgVUNoYXIqLCBpbnQsIFZlY3RvcjxHcmFtbWFyRGV0YWls
PiYsIGludCosIGludCopIHsgfQorCisjaWYgUExBVEZPUk0oTUFDKSAmJiAhZGVmaW5lZChCVUlM
RElOR19PTl9USUdFUikgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkKKyAgICB2aXJ0
dWFsIHZvaWQgY2hlY2tUZXh0T2ZQYXJhZ3JhcGgoY29uc3QgVUNoYXIqLCBpbnQsIHVpbnQ2NF90
LCBWZWN0b3I8VGV4dENoZWNraW5nUmVzdWx0PiYpIHsgfTsKKyNlbmRpZgorCisgICAgdmlydHVh
bCB2b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIFZl
Y3RvcjxTdHJpbmc+JikgeyB9CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3Ry
aW5nKFNwZWxsQ2hlY2tlciosIGludCwgY29uc3QgU3RyaW5nJikgeyB9Cit9OworCiBjbGFzcyBF
bXB0eUVkaXRvckNsaWVudCA6IHB1YmxpYyBFZGl0b3JDbGllbnQgewogICAgIFdURl9NQUtFX05P
TkNPUFlBQkxFKEVtcHR5RWRpdG9yQ2xpZW50KTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBw
dWJsaWM6CkBAIC00ODcsMTQgKzUwNCw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNB
dXRvbWF0aWNTcGVsbGluZ0NvcnJlY3Rpb25FbmFibGVkKCkgeyByZXR1cm4gZmFsc2U7IH0KICAg
ICB2aXJ0dWFsIHZvaWQgdG9nZ2xlQXV0b21hdGljU3BlbGxpbmdDb3JyZWN0aW9uKCkgeyB9CiAj
ZW5kaWYKLSAgICB2aXJ0dWFsIHZvaWQgaWdub3JlV29yZEluU3BlbGxEb2N1bWVudChjb25zdCBT
dHJpbmcmKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgbGVhcm5Xb3JkKGNvbnN0IFN0cmluZyYpIHsg
fQotICAgIHZpcnR1YWwgdm9pZCBjaGVja1NwZWxsaW5nT2ZTdHJpbmcoY29uc3QgVUNoYXIqLCBp
bnQsIGludCosIGludCopIHsgfQotICAgIHZpcnR1YWwgU3RyaW5nIGdldEF1dG9Db3JyZWN0U3Vn
Z2VzdGlvbkZvck1pc3NwZWxsZWRXb3JkKGNvbnN0IFN0cmluZyYpIHsgcmV0dXJuIFN0cmluZygp
OyB9Ci0gICAgdmlydHVhbCB2b2lkIGNoZWNrR3JhbW1hck9mU3RyaW5nKGNvbnN0IFVDaGFyKiwg
aW50LCBWZWN0b3I8R3JhbW1hckRldGFpbD4mLCBpbnQqLCBpbnQqKSB7IH0KLSNpZiBQTEFURk9S
TShNQUMpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1RJR0VSKSAmJiAhZGVmaW5lZChCVUlMRElO
R19PTl9MRU9QQVJEKQotICAgIHZpcnR1YWwgdm9pZCBjaGVja1RleHRPZlBhcmFncmFwaChjb25z
dCBVQ2hhciosIGludCwgdWludDY0X3QsIFZlY3RvcjxUZXh0Q2hlY2tpbmdSZXN1bHQ+JikgeyB9
OwotI2VuZGlmCisgICAgVGV4dENoZWNrZXJDbGllbnQqIHRleHRDaGVja2VyKCkgeyByZXR1cm4g
Jm1fdGV4dENoZWNrZXJDbGllbnQ7IH0KKwogI2lmIFNVUFBPUlRfQVVUT0NPUlJFQ1RJT05fUEFO
RUwKICAgICB2aXJ0dWFsIHZvaWQgc2hvd0NvcnJlY3Rpb25QYW5lbChDb3JyZWN0aW9uUGFuZWxJ
bmZvOjpQYW5lbFR5cGUsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0
cmluZyYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgRWRpdG9yKikgeyB9CiAgICAgdmlydHVhbCB2
b2lkIGRpc21pc3NDb3JyZWN0aW9uUGFuZWwoUmVhc29uRm9yRGlzbWlzc2luZ0NvcnJlY3Rpb25Q
YW5lbCkgeyB9CkBAIC01MDQsMTAgKzUxNSwxMiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lk
IHVwZGF0ZVNwZWxsaW5nVUlXaXRoTWlzc3BlbGxlZFdvcmQoY29uc3QgU3RyaW5nJikgeyB9CiAg
ICAgdmlydHVhbCB2b2lkIHNob3dTcGVsbGluZ1VJKGJvb2wpIHsgfQogICAgIHZpcnR1YWwgYm9v
bCBzcGVsbGluZ1VJSXNTaG93aW5nKCkgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIHZv
aWQgZ2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgVmVjdG9y
PFN0cmluZz4mKSB7IH0KKwogICAgIHZpcnR1YWwgdm9pZCB3aWxsU2V0SW5wdXRNZXRob2RTdGF0
ZSgpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wpIHsgfQot
ICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhTcGVsbENoZWNrZXIqLCBp
bnQsIGNvbnN0IFN0cmluZyYpIHsgfQorCitwcml2YXRlOgorICAgIEVtcHR5VGV4dENoZWNrZXJD
bGllbnQgbV90ZXh0Q2hlY2tlckNsaWVudDsKIH07CiAKICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5V
UykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRWRpdG9yQ2xpZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0VkaXRvckNsaWVudC5oCmluZGV4IGM4MDU5MjBlOWY5MDQ1OTUzNjg1
ZDNmNmExMzc4NWQ3NDkwZjU5YmYuLjhmNjliMDZjZGJhMWYzOWVjNDVjYjdjODUxNTEzYTM5NDk3
NTcyMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRWRpdG9yQ2xpZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9FZGl0b3JDbGllbnQuaApAQCAtNTgsNiArNTgsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBBcmNoaXZlUmVzb3VyY2U7CiBjbGFzcyBDU1NTdHls
ZURlY2xhcmF0aW9uOwogY2xhc3MgRG9jdW1lbnRGcmFnbWVudDsKK2NsYXNzIEdyYW1tYXJEZXRh
aWw7CiBjbGFzcyBFZGl0Q29tbWFuZDsKIGNsYXNzIEVkaXRvcjsKIGNsYXNzIEVsZW1lbnQ7CkBA
IC02NywzNCArNjgsMTAgQEAgY2xhc3MgS2V5Ym9hcmRFdmVudDsKIGNsYXNzIE5vZGU7CiBjbGFz
cyBSYW5nZTsKIGNsYXNzIFNwZWxsQ2hlY2tlcjsKK2NsYXNzIFRleHRDaGVja2VyQ2xpZW50Owog
Y2xhc3MgVmlzaWJsZVNlbGVjdGlvbjsKIGNsYXNzIFZpc2libGVQb3NpdGlvbjsKIAotc3RydWN0
IEdyYW1tYXJEZXRhaWwgewotICAgIGludCBsb2NhdGlvbjsKLSAgICBpbnQgbGVuZ3RoOwotICAg
IFZlY3RvcjxTdHJpbmc+IGd1ZXNzZXM7Ci0gICAgU3RyaW5nIHVzZXJEZXNjcmlwdGlvbjsKLX07
Ci0KLWVudW0gVGV4dENoZWNraW5nVHlwZSB7Ci0gICAgVGV4dENoZWNraW5nVHlwZVNwZWxsaW5n
ICAgID0gMSA8PCAxLAotICAgIFRleHRDaGVja2luZ1R5cGVHcmFtbWFyICAgICA9IDEgPDwgMiwK
LSAgICBUZXh0Q2hlY2tpbmdUeXBlTGluayAgICAgICAgPSAxIDw8IDUsCi0gICAgVGV4dENoZWNr
aW5nVHlwZVF1b3RlICAgICAgID0gMSA8PCA2LAotICAgIFRleHRDaGVja2luZ1R5cGVEYXNoICAg
ICAgICA9IDEgPDwgNywKLSAgICBUZXh0Q2hlY2tpbmdUeXBlUmVwbGFjZW1lbnQgPSAxIDw8IDgs
Ci0gICAgVGV4dENoZWNraW5nVHlwZUNvcnJlY3Rpb24gID0gMSA8PCA5Ci19OwotCi1zdHJ1Y3Qg
VGV4dENoZWNraW5nUmVzdWx0IHsKLSAgICBUZXh0Q2hlY2tpbmdUeXBlIHR5cGU7Ci0gICAgaW50
IGxvY2F0aW9uOwotICAgIGludCBsZW5ndGg7Ci0gICAgVmVjdG9yPEdyYW1tYXJEZXRhaWw+IGRl
dGFpbHM7Ci0gICAgU3RyaW5nIHJlcGxhY2VtZW50OwotfTsKLSAKIGNsYXNzIEVkaXRvckNsaWVu
dCB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+RWRpdG9yQ2xpZW50KCkgeyAgfQpAQCAtMTc4LDE0
ICsxNTUsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHRvZ2dsZUF1dG9tYXRpY1NwZWxs
aW5nQ29ycmVjdGlvbigpID0gMDsKICNlbmRpZgogCi0gICAgdmlydHVhbCB2b2lkIGlnbm9yZVdv
cmRJblNwZWxsRG9jdW1lbnQoY29uc3QgU3RyaW5nJikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBs
ZWFybldvcmQoY29uc3QgU3RyaW5nJikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBjaGVja1NwZWxs
aW5nT2ZTdHJpbmcoY29uc3QgVUNoYXIqLCBpbnQgbGVuZ3RoLCBpbnQqIG1pc3NwZWxsaW5nTG9j
YXRpb24sIGludCogbWlzc3BlbGxpbmdMZW5ndGgpID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBn
ZXRBdXRvQ29ycmVjdFN1Z2dlc3Rpb25Gb3JNaXNzcGVsbGVkV29yZChjb25zdCBTdHJpbmcmIG1p
c3NwZWxsZWRXb3JkKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGNoZWNrR3JhbW1hck9mU3RyaW5n
KGNvbnN0IFVDaGFyKiwgaW50IGxlbmd0aCwgVmVjdG9yPEdyYW1tYXJEZXRhaWw+JiwgaW50KiBi
YWRHcmFtbWFyTG9jYXRpb24sIGludCogYmFkR3JhbW1hckxlbmd0aCkgPSAwOwotI2lmIFBMQVRG
T1JNKE1BQykgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fVElHRVIpICYmICFkZWZpbmVkKEJVSUxE
SU5HX09OX0xFT1BBUkQpCi0gICAgdmlydHVhbCB2b2lkIGNoZWNrVGV4dE9mUGFyYWdyYXBoKGNv
bnN0IFVDaGFyKiB0ZXh0LCBpbnQgbGVuZ3RoLCB1aW50NjRfdCBjaGVja2luZ1R5cGVzLCBWZWN0
b3I8VGV4dENoZWNraW5nUmVzdWx0PiYgcmVzdWx0cykgPSAwOwotI2VuZGlmCisgICAgdmlydHVh
bCBUZXh0Q2hlY2tlckNsaWVudCogdGV4dENoZWNrZXIoKSA9IDA7CiAKICNpZiBTVVBQT1JUX0FV
VE9DT1JSRUNUSU9OX1BBTkVMCiAgICAgdmlydHVhbCB2b2lkIHNob3dDb3JyZWN0aW9uUGFuZWwo
Q29ycmVjdGlvblBhbmVsSW5mbzo6UGFuZWxUeXBlLCBjb25zdCBGbG9hdFJlY3QmIGJvdW5kaW5n
Qm94T2ZSZXBsYWNlZFN0cmluZywgY29uc3QgU3RyaW5nJiByZXBsYWNlZFN0cmluZywgY29uc3Qg
U3RyaW5nJiByZXBsYWNtZW50U3RyaW5nLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgYWx0ZXJuYXRp
dmVSZXBsYWNlbWVudFN0cmluZ3MsIEVkaXRvciopID0gMDsKQEAgLTE5NywxMSArMTY3LDggQEAg
cHVibGljOgogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVTcGVsbGluZ1VJV2l0aE1pc3NwZWxsZWRX
b3JkKGNvbnN0IFN0cmluZyYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2hvd1NwZWxsaW5nVUko
Ym9vbCBzaG93KSA9IDA7CiAgICAgdmlydHVhbCBib29sIHNwZWxsaW5nVUlJc1Nob3dpbmcoKSA9
IDA7Ci0gICAgLy8gRm9yIHNwZWxsY2hlY2tlcnMgdGhhdCBzdXBwb3J0IG11bHRpcGxlIGxhbmd1
YWdlcywgaXQncyBvZnRlbiBpbXBvcnRhbnQgdG8gYmUgYWJsZSB0byBpZGVudGlmeSB0aGUgbGFu
Z3VhZ2UgaW4gb3JkZXIgdG8gcHJvdmlkZSBtb3JlIGFjY3VyYXRlIGNvcnJlY3Rpb24gc3VnZ2Vz
dGlvbnMuIENhbGxlciBjYW4gcGFzcyBpbiBtb3JlIHRleHQgaW4gImNvbnRleHQiIHRvIGFpZCBz
dWNoIHNwZWxsY2hlY2tlcnMgb24gbGFuZ3VhZ2UgaWRlbnRpZmljYXRpb24uIE5vcmFtbGx5IGl0
J3MgdGhlIHRleHQgc3Vycm91bmRpbmcgdGhlICJ3b3JkIiBmb3Igd2hpY2ggd2UgYXJlIGdldHRp
bmcgY29ycmVjdGlvbiBzdWdnZXN0aW9ucy4KLSAgICB2aXJ0dWFsIHZvaWQgZ2V0R3Vlc3Nlc0Zv
cldvcmQoY29uc3QgU3RyaW5nJiB3b3JkLCBjb25zdCBTdHJpbmcmIGNvbnRleHQsIFZlY3RvcjxT
dHJpbmc+JiBndWVzc2VzKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHdpbGxTZXRJbnB1dE1ldGhv
ZFN0YXRlKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wg
ZW5hYmxlZCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhT
cGVsbENoZWNrZXIqLCBpbnQsIGNvbnN0IFN0cmluZyYpID0gMDsKIH07CiAKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
LmgKaW5kZXggMDcxYjE0MjdkNmQ3N2NmOTBiZmY1YzAwNGNkODI5ZmUzMzMwMGEzMi4uNWU1Y2Jh
ZmYyNjAwZmJmYjQwOWI2N2JiYWFjZDY1NGRjNmQ5YWJmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKQEAgLTc1
LDcgKzc1LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIFNoYXJlZEdyYXBoaWNz
Q29udGV4dDNEOwogICAgIGNsYXNzIFNwZWVjaElucHV0OwogICAgIGNsYXNzIFNwZWVjaElucHV0
Q2xpZW50OwotCiAjaWYgRU5BQkxFKERPTV9TVE9SQUdFKQogICAgIGNsYXNzIFN0b3JhZ2VOYW1l
c3BhY2U7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQv
VGV4dENoZWNrZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dENo
ZWNrZXJDbGllbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MGYyYmU0NDk0ZGUwNjNlMTdhNjQ3ZjNmZjY0YzIx
OWZhOTA5N2UyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4
dC9UZXh0Q2hlY2tlckNsaWVudC5oCkBAIC0wLDAgKzEsODkgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMDYsIDIwMDcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDA4IE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVz
KQorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAg
ICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAq
IGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4g
bm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRv
cnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdp
dGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRP
UlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05F
UiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisg
KiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lm
bmRlZiBUZXh0Q2hlY2tlckNsaWVudF9oCisjZGVmaW5lIFRleHRDaGVja2VyQ2xpZW50X2gKKwor
I2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorI2luY2x1
ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IFNwZWxsQ2hlY2tlcjsKKworc3RydWN0IEdyYW1tYXJEZXRhaWwgeworICAgIGludCBsb2NhdGlv
bjsKKyAgICBpbnQgbGVuZ3RoOworICAgIFZlY3RvcjxTdHJpbmc+IGd1ZXNzZXM7CisgICAgU3Ry
aW5nIHVzZXJEZXNjcmlwdGlvbjsKK307CisKK2VudW0gVGV4dENoZWNraW5nVHlwZSB7CisgICAg
VGV4dENoZWNraW5nVHlwZVNwZWxsaW5nICAgID0gMSA8PCAxLAorICAgIFRleHRDaGVja2luZ1R5
cGVHcmFtbWFyICAgICA9IDEgPDwgMiwKKyAgICBUZXh0Q2hlY2tpbmdUeXBlTGluayAgICAgICAg
PSAxIDw8IDUsCisgICAgVGV4dENoZWNraW5nVHlwZVF1b3RlICAgICAgID0gMSA8PCA2LAorICAg
IFRleHRDaGVja2luZ1R5cGVEYXNoICAgICAgICA9IDEgPDwgNywKKyAgICBUZXh0Q2hlY2tpbmdU
eXBlUmVwbGFjZW1lbnQgPSAxIDw8IDgsCisgICAgVGV4dENoZWNraW5nVHlwZUNvcnJlY3Rpb24g
ID0gMSA8PCA5Cit9OworCitzdHJ1Y3QgVGV4dENoZWNraW5nUmVzdWx0IHsKKyAgICBUZXh0Q2hl
Y2tpbmdUeXBlIHR5cGU7CisgICAgaW50IGxvY2F0aW9uOworICAgIGludCBsZW5ndGg7CisgICAg
VmVjdG9yPEdyYW1tYXJEZXRhaWw+IGRldGFpbHM7CisgICAgU3RyaW5nIHJlcGxhY2VtZW50Owor
fTsKKworY2xhc3MgVGV4dENoZWNrZXJDbGllbnQgeworcHVibGljOgorICAgIHZpcnR1YWwgflRl
eHRDaGVja2VyQ2xpZW50KCkge30KKworICAgIHZpcnR1YWwgdm9pZCBpZ25vcmVXb3JkSW5TcGVs
bERvY3VtZW50KGNvbnN0IFN0cmluZyYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgbGVhcm5Xb3Jk
KGNvbnN0IFN0cmluZyYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgY2hlY2tTcGVsbGluZ09mU3Ry
aW5nKGNvbnN0IFVDaGFyKiwgaW50IGxlbmd0aCwgaW50KiBtaXNzcGVsbGluZ0xvY2F0aW9uLCBp
bnQqIG1pc3NwZWxsaW5nTGVuZ3RoKSA9IDA7CisgICAgdmlydHVhbCBTdHJpbmcgZ2V0QXV0b0Nv
cnJlY3RTdWdnZXN0aW9uRm9yTWlzc3BlbGxlZFdvcmQoY29uc3QgU3RyaW5nJiBtaXNzcGVsbGVk
V29yZCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjaGVja0dyYW1tYXJPZlN0cmluZyhjb25zdCBV
Q2hhciosIGludCBsZW5ndGgsIFZlY3RvcjxHcmFtbWFyRGV0YWlsPiYsIGludCogYmFkR3JhbW1h
ckxvY2F0aW9uLCBpbnQqIGJhZEdyYW1tYXJMZW5ndGgpID0gMDsKKyNpZiBQTEFURk9STShNQUMp
ICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1RJR0VSKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9M
RU9QQVJEKQorICAgIHZpcnR1YWwgdm9pZCBjaGVja1RleHRPZlBhcmFncmFwaChjb25zdCBVQ2hh
ciogdGV4dCwgaW50IGxlbmd0aCwgdWludDY0X3QgY2hlY2tpbmdUeXBlcywgVmVjdG9yPFRleHRD
aGVja2luZ1Jlc3VsdD4mIHJlc3VsdHMpID0gMDsKKyNlbmRpZgorCisgICAgLy8gRm9yIHNwZWxs
Y2hlY2tlcnMgdGhhdCBzdXBwb3J0IG11bHRpcGxlIGxhbmd1YWdlcywgaXQncyBvZnRlbiBpbXBv
cnRhbnQgdG8gYmUgYWJsZSB0byBpZGVudGlmeSB0aGUgbGFuZ3VhZ2UgaW4gb3JkZXIgdG8gcHJv
dmlkZSBtb3JlIGFjY3VyYXRlIGNvcnJlY3Rpb24gc3VnZ2VzdGlvbnMuIENhbGxlciBjYW4gcGFz
cyBpbiBtb3JlIHRleHQgaW4gImNvbnRleHQiIHRvIGFpZCBzdWNoIHNwZWxsY2hlY2tlcnMgb24g
bGFuZ3VhZ2UgaWRlbnRpZmljYXRpb24uIE5vcmFtbGx5IGl0J3MgdGhlIHRleHQgc3Vycm91bmRp
bmcgdGhlICJ3b3JkIiBmb3Igd2hpY2ggd2UgYXJlIGdldHRpbmcgY29ycmVjdGlvbiBzdWdnZXN0
aW9ucy4KKyAgICB2aXJ0dWFsIHZvaWQgZ2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgU3RyaW5nJiB3
b3JkLCBjb25zdCBTdHJpbmcmIGNvbnRleHQsIFZlY3RvcjxTdHJpbmc+JiBndWVzc2VzKSA9IDA7
CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFNwZWxsQ2hlY2tlcios
IGludCwgY29uc3QgU3RyaW5nJikgPSAwOworfTsKKworfQorCisjZW5kaWYgLy8gVGV4dENoZWNr
ZXJDbGllbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCAxY2IwMDY4YTIzNGJjZWRj
ZjhmNDFlOTZiYjBiOTI0Y2Y2Zjc2MDMwLi43MDRkZGM2MjRmOTQ0YjYzOWI1MDkyM2QwMjU4Zjhm
NjFlOWMyNTRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisy
MDExLTAxLTI2ICBNT1JJVEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29tPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlZmFjdG9yaW5nOiBFeHRy
YWN0IFRleHRDaGVja2VyQ2xpZW50IGZyb20gRWRpdG9yQ2xpZW50CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MzIxMworCisgICAgICAgICogc3JjL0Vk
aXRvckNsaWVudEltcGwuaDoKKyAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50SW1wbDo6dGV4
dENoZWNrZXIpOgorCiAyMDExLTAyLTExICBaaGVueWFvIE1vICA8em1vQGdvb2dsZS5jb20+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0aCBSdXNzZWxsLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvRWRpdG9yQ2xpZW50SW1wbC5oIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvRWRpdG9yQ2xpZW50SW1wbC5oCmluZGV4IDhjNDBmM2MwZDU1OWFmMjhlMDAy
MzFjOTU2MjAyNTYwNWE3YTMwMTcuLmI5Zjk2NTEzOWI1N2QzMDFiZjNlZmYxMTQ1NTlmNjgxMmI3
MTFmYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRvckNsaWVu
dEltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGllbnRJbXBs
LmgKQEAgLTMyLDYgKzMyLDcgQEAKICNkZWZpbmUgRWRpdG9yQ2xpZW50SW1wbF9oCiAKICNpbmNs
dWRlICJFZGl0b3JDbGllbnQuaCIKKyNpbmNsdWRlICJUZXh0Q2hlY2tlckNsaWVudC5oIgogI2lu
Y2x1ZGUgIlRpbWVyLmgiCiAjaW5jbHVkZSA8d3RmL0RlcXVlLmg+CiAKQEAgLTQzLDcgKzQ0LDcg
QEAgY2xhc3MgU3BlbGxDaGVja2VyOwogbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBXZWJWaWV3
SW1wbDsKIAotY2xhc3MgRWRpdG9yQ2xpZW50SW1wbCA6IHB1YmxpYyBXZWJDb3JlOjpFZGl0b3JD
bGllbnQgeworY2xhc3MgRWRpdG9yQ2xpZW50SW1wbCA6IHB1YmxpYyBXZWJDb3JlOjpFZGl0b3JD
bGllbnQsIHB1YmxpYyBXZWJDb3JlOjpUZXh0Q2hlY2tlckNsaWVudCB7CiBwdWJsaWM6CiAgICAg
RWRpdG9yQ2xpZW50SW1wbChXZWJWaWV3SW1wbCogd2ViVmlldyk7CiAKQEAgLTExNCw2ICsxMTUs
OCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldElucHV0TWV0aG9kU3RhdGUoYm9vbCBl
bmFibGVkKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoV2ViQ29y
ZTo6U3BlbGxDaGVja2VyKiwgaW50LCBjb25zdCBXVEY6OlN0cmluZyYpOwogCisgICAgdmlydHVh
bCBXZWJDb3JlOjpUZXh0Q2hlY2tlckNsaWVudCogdGV4dENoZWNrZXIoKSB7IHJldHVybiB0aGlz
OyB9CisKICAgICAvLyBTaG93cyB0aGUgZm9ybSBhdXRvZmlsbCBwb3B1cCBmb3IgfG5vZGV8IGlm
IGl0IGlzIGFuIEhUTUxJbnB1dEVsZW1lbnQgYW5kCiAgICAgLy8gaXQgaXMgZW1wdHkuICBUaGlz
IGlzIGNhbGxlZCB3aGVuIHlvdSBwcmVzcyB0aGUgdXAgb3IgZG93biBhcnJvdyBpbiBhCiAgICAg
Ly8gdGV4dC1maWVsZCBvciB3aGVuIGNsaWNraW5nIGFuIGFscmVhZHkgZm9jdXNlZCB0ZXh0LWZp
ZWxkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9lZmwvQ2hhbmdlTG9nCmluZGV4IDIwNjhjY2MzNzU5MWMyNDIzMDRiYTc2MzQyM2ZkYmM5
MTU4MGY5N2YuLjRiMGYyZjlmZTBmMWI0YTQ5Yjk2OTc3ZTg0MWYwZWI2ZDRjMDMxNzUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Vm
bC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMS0wMS0yNiAgTU9SSVRBIEhhamltZSAg
PG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBSZWZhY3RvcmluZzogRXh0cmFjdCBUZXh0Q2hlY2tlckNsaWVudCBmcm9t
IEVkaXRvckNsaWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NTMyMTMKKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEVmbC5o
OgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50RWZsOjp0ZXh0Q2hlY2tlcik6CisKIDIw
MTEtMDItMDggIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBFcmljIFNlaWRlbC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNv
cmVTdXBwb3J0L0VkaXRvckNsaWVudEVmbC5oIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1
cHBvcnQvRWRpdG9yQ2xpZW50RWZsLmgKaW5kZXggZTI1YjFlNmYwZjI0NGY4YjIyZDZjMjAzMmJk
NzkzZjdmZWRjNDNjNi4uYzc1ZWNkOThjMThmNmRhZGIzMDcxM2VmNTJhZTcyM2ZhZmMyMjI4ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50
RWZsLmgKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50
RWZsLmgKQEAgLTM0LDYgKzM0LDcgQEAKICNkZWZpbmUgRWRpdG9yQ2xpZW50RWZsX2gKIAogI2lu
Y2x1ZGUgIkVkaXRvckNsaWVudC5oIgorI2luY2x1ZGUgIlRleHRDaGVja2VyQ2xpZW50LmgiCiAK
ICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogCkBAIC00Miw3ICs0Myw3IEBAIHR5cGVkZWYgc3Ry
dWN0IF9FdmFzX09iamVjdCBFdmFzX09iamVjdDsKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNz
IFBhZ2U7CiAKLWNsYXNzIEVkaXRvckNsaWVudEVmbCA6IHB1YmxpYyBFZGl0b3JDbGllbnQgewor
Y2xhc3MgRWRpdG9yQ2xpZW50RWZsIDogcHVibGljIEVkaXRvckNsaWVudCwgcHVibGljIFRleHRD
aGVja2VyQ2xpZW50IHsKIHB1YmxpYzoKICAgICBFZGl0b3JDbGllbnRFZmwoRXZhc19PYmplY3Qg
KnZpZXcpOwogICAgIH5FZGl0b3JDbGllbnRFZmwoKTsKQEAgLTExNCw2ICsxMTUsNyBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCB2b2lkIHdpbGxTZXRJbnB1dE1ldGhvZFN0YXRlKCk7CiAgICAgdmly
dHVhbCB2b2lkIHNldElucHV0TWV0aG9kU3RhdGUoYm9vbCBlbmFibGVkKTsKICAgICB2aXJ0dWFs
IHZvaWQgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoV2ViQ29yZTo6U3BlbGxDaGVja2VyKiwgaW50
LCBjb25zdCBXVEY6OlN0cmluZyYpIHt9CisgICAgdmlydHVhbCBUZXh0Q2hlY2tlckNsaWVudCog
dGV4dENoZWNrZXIoKSB7IHJldHVybiB0aGlzOyB9CiAKIHByaXZhdGU6CiAgICAgRXZhc19PYmpl
Y3QgKm1fdmlldzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCAyZmVmZDVkYzljNjg4MDRjOWQyYWRhNWU3
MTA4ZTdhZTgxOGQ4Njc2Li45MGFlMTY3MDA0Yzg4Y2M3MTVjMzQ1MzUwMTkwYTc3Yjk3N2NiOGM3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9ndGsvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMDEtMjYgIE1PUklUQSBI
YWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgUmVmYWN0b3Jpbmc6IEV4dHJhY3QgVGV4dENoZWNrZXJDbGll
bnQgZnJvbSBFZGl0b3JDbGllbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTUzMjEzCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGll
bnRHdGsuaDoKKyAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50Ojp0ZXh0Q2hlY2tlcik6CisK
IDIwMTEtMDItMTEgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgog
CiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHI3ODMzMS4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5oIGIvU291cmNl
L1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmgKaW5kZXggMjE0ZGJk
NjZjMWMyN2Y2YzY4NGY4MmMzZmM3OGYzNDRiYmQ3MDI2MS4uMWFmNTVlNjhjZTdjZmI3YTAzYmRi
NTFmZjcyNzkwNGU1NWVmMTI4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29y
ZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmgKKysrIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29y
ZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmgKQEAgLTMyLDYgKzMyLDcgQEAKICNkZWZpbmUgRWRp
dG9yQ2xpZW50R3RrX2gKIAogI2luY2x1ZGUgIkVkaXRvckNsaWVudC5oIgorI2luY2x1ZGUgIlRl
eHRDaGVja2VyQ2xpZW50LmgiCiAKICNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KICNpbmNsdWRlIDx3
dGYvRm9yd2FyZC5oPgpAQCAtNDcsNyArNDgsNyBAQCBjbGFzcyBLZXlib2FyZEV2ZW50OwogCiBu
YW1lc3BhY2UgV2ViS2l0IHsKIAotICAgIGNsYXNzIEVkaXRvckNsaWVudCA6IHB1YmxpYyBXZWJD
b3JlOjpFZGl0b3JDbGllbnQgeworY2xhc3MgRWRpdG9yQ2xpZW50IDogcHVibGljIFdlYkNvcmU6
OkVkaXRvckNsaWVudCwgIHB1YmxpYyBXZWJDb3JlOjpUZXh0Q2hlY2tlckNsaWVudCB7CiAgICAg
cHJvdGVjdGVkOgogICAgICAgICBib29sIG1faXNJblJlZG87CiAKQEAgLTEyMCw2ICsxMjEsOCBA
QCBuYW1lc3BhY2UgV2ViS2l0IHsKICAgICAgICAgdmlydHVhbCB2b2lkIHRleHRXaWxsQmVEZWxl
dGVkSW5UZXh0RmllbGQoV2ViQ29yZTo6RWxlbWVudCopOwogICAgICAgICB2aXJ0dWFsIHZvaWQg
dGV4dERpZENoYW5nZUluVGV4dEFyZWEoV2ViQ29yZTo6RWxlbWVudCopOwogCisgICAgICAgIHZp
cnR1YWwgV2ViQ29yZTo6VGV4dENoZWNrZXJDbGllbnQqIHRleHRDaGVja2VyKCkgeyByZXR1cm4g
dGhpczsgfQorCiAgICAgICAgIHZpcnR1YWwgdm9pZCBpZ25vcmVXb3JkSW5TcGVsbERvY3VtZW50
KGNvbnN0IFdURjo6U3RyaW5nJik7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBsZWFybldvcmQoY29u
c3QgV1RGOjpTdHJpbmcmKTsKICAgICAgICAgdmlydHVhbCB2b2lkIGNoZWNrU3BlbGxpbmdPZlN0
cmluZyhjb25zdCBVQ2hhciosIGludCBsZW5ndGgsIGludCogbWlzc3BlbGxpbmdMb2NhdGlvbiwg
aW50KiBtaXNzcGVsbGluZ0xlbmd0aCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2hhaWt1
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvaGFpa3UvQ2hhbmdlTG9nCmluZGV4IDY2OWFhZTRi
NTU5MTZjNzMwODY0YTVkYTdlNmUwNmI4NTcxNGE2NjkuLjc0MGJiNDA4NDUzOTRjZGEwZjViNzE1
MTI4MGUxNDgwMzhmMzgwYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvaGFpa3UvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvaGFpa3UvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAK
KzIwMTEtMDEtMjYgIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVmYWN0b3Jpbmc6IEV4
dHJhY3QgVGV4dENoZWNrZXJDbGllbnQgZnJvbSBFZGl0b3JDbGllbnQKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUzMjEzCisKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9FZGl0b3JDbGllbnRIYWlrdS5oOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9y
Q2xpZW50SGFpa3U6OnRleHRDaGVja2VyKToKKwogMjAxMS0wMi0wOCAgQWRhbSBCYXJ0aCAgPGFi
YXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9oYWlrdS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRI
YWlrdS5oIGIvU291cmNlL1dlYktpdC9oYWlrdS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRI
YWlrdS5oCmluZGV4IGNhMjcwZTk1Y2I0MjdhM2VkN2EwNjZmM2VlMzAxMzkzNDllMDQ2OGMuLjZk
YzM1MGYyNTRmMjYzZDVjNGEwNTAxZmM4YjM3M2U5OWM4Y2ZhZTQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvaGFpa3UvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50SGFpa3UuaAorKysgYi9T
b3VyY2UvV2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEhhaWt1LmgKQEAg
LTMyLDYgKzMyLDcgQEAKICNkZWZpbmUgRWRpdG9yQ2xpZW50SGFpa3VfSAogCiAjaW5jbHVkZSAi
RWRpdG9yQ2xpZW50LmgiCisjaW5jbHVkZSAiVGV4dENoZWNrZXJDbGllbnQuaCIKICNpbmNsdWRl
ICJSZWZDb3VudGVkLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogCkBAIC00MCw3ICs0MSw3IEBACiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotICAgIGNsYXNzIEVkaXRvckNsaWVudEhhaWt1IDogcHVi
bGljIEVkaXRvckNsaWVudCB7CitjbGFzcyBFZGl0b3JDbGllbnRIYWlrdSA6IHB1YmxpYyBFZGl0
b3JDbGllbnQsIHB1YmxpYyBUZXh0Q2hlY2tlckNsaWVudCB7CiAgICAgcHVibGljOgogICAgICAg
ICBFZGl0b3JDbGllbnRIYWlrdSgpOwogICAgICAgICB2b2lkIHNldFBhZ2UoIFBhZ2UqIHBhZ2Ug
KTsKQEAgLTExMSw2ICsxMTIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1
YWwgdm9pZCB3aWxsU2V0SW5wdXRNZXRob2RTdGF0ZSgpOwogICAgICAgICB2aXJ0dWFsIHZvaWQg
c2V0SW5wdXRNZXRob2RTdGF0ZShib29sIGVuYWJsZWQpOwogICAgICAgICB2aXJ0dWFsIHZvaWQg
cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoU3BlbGxDaGVja2VyKiwgaW50LCBjb25zdCBTdHJpbmcm
KSB7fQorICAgICAgICB2aXJ0dWFsIFRleHRDaGVja2VyQ2xpZW50KiB0ZXh0Q2hlY2tlcigpIHsg
cmV0dXJuIHRoaXM7IH0KIAogICAgICAgICBib29sIGlzRWRpdGluZygpIGNvbnN0OwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9D
aGFuZ2VMb2cKaW5kZXggNGEzYzc0ZmU4MDAxZDEwODhjMzBjOTYwM2VlNjlhYzU5NzUyMmM2ZC4u
YWZhMWM3NjlkYzFmZjg5ZDFkYTBiNjcxOTg2NmExNTllYmU4Yjk4NiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDEzIEBACisyMDExLTAxLTI2ICBNT1JJVEEgSGFqaW1lICA8bW9ycml0YUBn
b29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFJlZmFjdG9yaW5nOiBFeHRyYWN0IFRleHRDaGVja2VyQ2xpZW50IGZyb20gRWRpdG9yQ2xp
ZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MzIx
MworCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lmg6CisgICAgICAg
IChXZWJFZGl0b3JDbGllbnQ6OnRleHRDaGVja2VyKToKKwogMjAxMS0wMi0xMSAgR2VvZmZyZXkg
R2FyZW4gIDxnZ2FyZW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE9saXZlciBI
dW50LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRp
dG9yQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JD
bGllbnQuaAppbmRleCBkNWFjODkxYjdhNmMwZTBiNzA1ODkyNmIyMzFlOGI5NWQ5ZWI5NmMyLi41
M2RhMzZhNDAyOTBlMzFjZDI4MjUwMGZmYjFiYzU1OGQzYzI0ZWViIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaApAQCAtMjksNiAr
MjksNyBAQAogCiAjaW1wb3J0IDxXZWJDb3JlL0VkaXRvci5oPgogI2ltcG9ydCA8V2ViQ29yZS9F
ZGl0b3JDbGllbnQuaD4KKyNpbXBvcnQgPFdlYkNvcmUvVGV4dENoZWNrZXJDbGllbnQuaD4KICNp
bXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KICNpbXBvcnQgPHd0Zi9Gb3J3YXJkLmg+CiAjaW1wb3J0
IDx3dGYvVmVjdG9yLmg+CkBAIC0zNiw3ICszNyw3IEBACiBAY2xhc3MgV2ViVmlldzsKIEBjbGFz
cyBXZWJFZGl0b3JVbmRvVGFyZ2V0OwogCi1jbGFzcyBXZWJFZGl0b3JDbGllbnQgOiBwdWJsaWMg
V2ViQ29yZTo6RWRpdG9yQ2xpZW50IHsKK2NsYXNzIFdlYkVkaXRvckNsaWVudCA6IHB1YmxpYyBX
ZWJDb3JlOjpFZGl0b3JDbGllbnQsIHB1YmxpYyBXZWJDb3JlOjpUZXh0Q2hlY2tlckNsaWVudCB7
CiBwdWJsaWM6CiAgICAgV2ViRWRpdG9yQ2xpZW50KFdlYlZpZXcgKik7CiAgICAgdmlydHVhbCB+
V2ViRWRpdG9yQ2xpZW50KCk7CkBAIC05OCw2ICs5OSw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IHZvaWQgdG9nZ2xlQXV0b21hdGljU3BlbGxpbmdDb3JyZWN0aW9uKCk7CiAjZW5kaWYKIAorICAg
IFRleHRDaGVja2VyQ2xpZW50KiB0ZXh0Q2hlY2tlcigpIHsgcmV0dXJuIHRoaXM7IH0KKwogICAg
IHZpcnR1YWwgdm9pZCByZXNwb25kVG9DaGFuZ2VkQ29udGVudHMoKTsKICAgICB2aXJ0dWFsIHZv
aWQgcmVzcG9uZFRvQ2hhbmdlZFNlbGVjdGlvbigpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L3F0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCmluZGV4IGU0Yzhj
ZWYyYmJhMDdlYjZkMzdhNDlhMDM2ZDkxOWVmODM5ZjU0NGMuLjYzODFiNDZiYTc0MjEyYzMzMWMw
MTUxNmIzYTU4NmQxM2JkYWIwMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIw
MTEtMDEtMjYgIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVmYWN0b3Jpbmc6IEV4dHJh
Y3QgVGV4dENoZWNrZXJDbGllbnQgZnJvbSBFZGl0b3JDbGllbnQKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUzMjEzCisKKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9FZGl0b3JDbGllbnRRdC5oOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50
UXQ6OnRleHRDaGVja2VyKToKKwogMjAxMS0wMi0xMSAgVmlhdGNoZXNsYXYgT3N0YXBlbmtvICA8
b3N0YXBlbmtvLnZpYXRjaGVzbGF2QG5va2lhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBU
b3IgQXJuZSBWZXN0YsO4LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3Vw
cG9ydC9FZGl0b3JDbGllbnRRdC5oIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9F
ZGl0b3JDbGllbnRRdC5oCmluZGV4IDFlNDEwZTZkN2VkMzRiMzk4ZmYyZTAwYjYyZTRkZWI5MTc4
ZjQ0Y2YuLmU0MzA1NDRhNjYzOGEyMzBjNWQ0YTM5YzU1Y2JhYzIxMDYxM2E1NjYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50UXQuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFF0LmgKQEAgLTMx
LDYgKzMxLDcgQEAKICNkZWZpbmUgRWRpdG9yQ2xpZW50UXRfaAogCiAjaW5jbHVkZSAiRWRpdG9y
Q2xpZW50LmgiCisjaW5jbHVkZSAiVGV4dENoZWNrZXJDbGllbnQuaCIKICNpbmNsdWRlICJSZWZD
b3VudGVkLmgiCiAKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgpAQCAtMzksNyArNDAsNyBAQCBj
bGFzcyBRV2ViUGFnZTsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBFZGl0b3JDbGll
bnRRdCA6IHB1YmxpYyBFZGl0b3JDbGllbnQgeworY2xhc3MgRWRpdG9yQ2xpZW50UXQgOiBwdWJs
aWMgRWRpdG9yQ2xpZW50LCBwdWJsaWMgVGV4dENoZWNrZXJDbGllbnQgewogcHVibGljOgogICAg
IEVkaXRvckNsaWVudFF0KFFXZWJQYWdlKiBwYWdlKTsKICAgICAKQEAgLTEwOCw2ICsxMDksNyBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHdpbGxTZXRJbnB1dE1ldGhvZFN0YXRlKCk7CiAg
ICAgdmlydHVhbCB2b2lkIHNldElucHV0TWV0aG9kU3RhdGUoYm9vbCBlbmFibGVkKTsKICAgICB2
aXJ0dWFsIHZvaWQgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoU3BlbGxDaGVja2VyKiwgaW50LCBj
b25zdCBTdHJpbmcmKSB7fQorICAgIHZpcnR1YWwgVGV4dENoZWNrZXJDbGllbnQqIHRleHRDaGVj
a2VyKCkgeyByZXR1cm4gdGhpczsgfQogCiAgICAgYm9vbCBpc0VkaXRpbmcoKSBjb25zdDsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC93
aW4vQ2hhbmdlTG9nCmluZGV4IGEyNGMwNjFlYmU1ZmE2ZThkMzNjNDk5OGEyZjZlZjA4ZjJhZjU5
ZDAuLmI0NWZhNjVjMGExZDA4NjE2MWI0YWZjNjU1ZTM4MmI0MWJmNWI5YTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMS0wMS0yNiAgTU9SSVRBIEhhamltZSAgPG1vcnJp
dGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBSZWZhY3RvcmluZzogRXh0cmFjdCBUZXh0Q2hlY2tlckNsaWVudCBmcm9tIEVkaXRv
ckNsaWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NTMyMTMKKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oOgorICAg
ICAgICAoV2ViRWRpdG9yQ2xpZW50Ojp0ZXh0Q2hlY2tlcik6CisKIDIwMTEtMDItMTEgIEdlb2Zm
cmV5IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBPbGl2
ZXIgSHVudC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dl
YkVkaXRvckNsaWVudC5oIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRWRp
dG9yQ2xpZW50LmgKaW5kZXggMzU4YTM2NTZhNmRmNjA0YjEyMmEwOWQwZDBlYTEwNWVhZmE0ODkx
My4uNDY5Zjc1ZjM0ZWNhYWI3MjVlZTE3YjhlZTgyNGE4ODY2YjEyZTE5NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKKysrIGIv
U291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKQEAgLTI5
LDYgKzI5LDcgQEAKICNpbmNsdWRlICJXZWJLaXQuaCIKICNwcmFnbWEgd2FybmluZyhwdXNoLCAw
KQogI2luY2x1ZGUgPFdlYkNvcmUvRWRpdG9yQ2xpZW50Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9U
ZXh0Q2hlY2tlckNsaWVudC5oPgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KICNwcmFnbWEgd2Fy
bmluZyhwb3ApCiAKQEAgLTM2LDcgKzM3LDcgQEAgY2xhc3MgV2ViVmlldzsKIGNsYXNzIFdlYk5v
dGlmaWNhdGlvbjsKIGNsYXNzIFdlYkVkaXRvclVuZG9UYXJnZXQ7CiAKLWNsYXNzIFdlYkVkaXRv
ckNsaWVudCA6IHB1YmxpYyBXZWJDb3JlOjpFZGl0b3JDbGllbnQgeworY2xhc3MgV2ViRWRpdG9y
Q2xpZW50IDogcHVibGljIFdlYkNvcmU6OkVkaXRvckNsaWVudCwgcHVibGljIFdlYkNvcmU6OlRl
eHRDaGVja2VyQ2xpZW50IHsKIHB1YmxpYzoKICAgICBXZWJFZGl0b3JDbGllbnQoV2ViVmlldyop
OwogICAgIH5XZWJFZGl0b3JDbGllbnQoKTsKQEAgLTExMiw2ICsxMTMsNyBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB2b2lkIHdpbGxTZXRJbnB1dE1ldGhvZFN0YXRlKCk7CiAgICAgdmlydHVhbCB2
b2lkIHNldElucHV0TWV0aG9kU3RhdGUoYm9vbCk7CiAgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RD
aGVja2luZ09mU3RyaW5nKFdlYkNvcmU6OlNwZWxsQ2hlY2tlciosIGludCwgY29uc3QgV1RGOjpT
dHJpbmcmKSB7fQorICAgIHZpcnR1YWwgV2ViQ29yZTo6VGV4dENoZWNrZXJDbGllbnQqIHRleHRD
aGVja2VyKCkgeyByZXR1cm4gdGhpczsgfQogCiBwcml2YXRlOgogICAgIFdlYlZpZXcqIG1fd2Vi
VmlldzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC93aW5jZS9DaGFuZ2VMb2cKaW5kZXggNzdkNmVmM2YyZWI5ODY4MmJhYTcyNDNiZjIz
MmUwMTBmYmM1M2YyNi4uM2UzMDA5ZmVmMGY4MDc4MzgyZjFmNzE3NmUyZmE0MjdiZThjNTZlYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC93aW5jZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMS0wMS0yNiAgTU9SSVRB
IEhhamltZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBSZWZhY3RvcmluZzogRXh0cmFjdCBUZXh0Q2hlY2tlckNs
aWVudCBmcm9tIEVkaXRvckNsaWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NTMyMTMKKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNs
aWVudFdpbkNFLmg6CisgICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudFdpbkNFOjp0ZXh0Q2hl
Y2tlcik6CisKIDIwMTEtMDItMTAgIE5hdGUgQ2hhcGluICA8amFwaGV0QGNocm9taXVtLm9yZz4K
IAogICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRXaW5DRS5oIGIvU291cmNlL1dl
YktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRXaW5DRS5oCmluZGV4IDhkYjhj
MTY4NDYyZjhkZGIzYzAwYWM3ZGM0YzFlNzZkY2Q0OWJmYWQuLjEyMzM2MDU5OTkxZmQzMTc5MTMx
NWY3YWQ4MDIyMDNjMTdkNGE0MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luY2UvV2Vi
Q29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50V2luQ0UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbmNl
L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFdpbkNFLmgKQEAgLTI2LDEyICsyNiwxMyBAQAog
I2RlZmluZSBFZGl0b3JDbGllbnRXaW5DRV9oCiAKICNpbmNsdWRlICJFZGl0b3JDbGllbnQuaCIK
KyNpbmNsdWRlICJUZXh0Q2hlY2tlckNsaWVudC5oIgogCiBjbGFzcyBXZWJWaWV3OwogCiBuYW1l
c3BhY2UgV2ViS2l0IHsKIAotY2xhc3MgRWRpdG9yQ2xpZW50V2luQ0UgOiBwdWJsaWMgV2ViQ29y
ZTo6RWRpdG9yQ2xpZW50IHsKK2NsYXNzIEVkaXRvckNsaWVudFdpbkNFIDogcHVibGljIFdlYkNv
cmU6OkVkaXRvckNsaWVudCwgcHVibGljIFdlYkNvcmU6OlRleHRDaGVja2VyQ2xpZW50IHsKIHB1
YmxpYzoKICAgICBFZGl0b3JDbGllbnRXaW5DRShXZWJWaWV3Kik7CiAgICAgfkVkaXRvckNsaWVu
dFdpbkNFKCk7CkBAIC0xMDEsNiArMTAyLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCB3
aWxsU2V0SW5wdXRNZXRob2RTdGF0ZSgpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRJbnB1dE1ldGhv
ZFN0YXRlKGJvb2wpOwogICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhX
ZWJDb3JlOjpTcGVsbENoZWNrZXIqLCBpbnQsIGNvbnN0IFdURjo6U3RyaW5nJikge30KKyAgICB2
aXJ0dWFsIFdlYkNvcmU6OlRleHRDaGVja2VyQ2xpZW50KiB0ZXh0Q2hlY2tlcigpIHsgcmV0dXJu
IHRoaXM7IH0KIAogcHJpdmF0ZToKICAgICBXZWJWaWV3KiBtX3dlYlZpZXc7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L3d4L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvd3gvQ2hhbmdlTG9n
CmluZGV4IDEzYWIxYjg1OTFmODhmYWUyZDBhNWE0NTJhNDBmY2IwOWU0Yjg3ZWEuLjA2ZmFlYTJk
OTZmMDBiM2NkNmNhMDk1MGNkMTIzYmMxNzI3ZWJiZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvd3gvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvd3gvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTMgQEAKKzIwMTEtMDEtMjYgIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVmYWN0
b3Jpbmc6IEV4dHJhY3QgVGV4dENoZWNrZXJDbGllbnQgZnJvbSBFZGl0b3JDbGllbnQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUzMjEzCisKKyAgICAg
ICAgKiBXZWJLaXRTdXBwb3J0L0VkaXRvckNsaWVudFd4Lmg6CisgICAgICAgIChXZWJDb3JlOjpF
ZGl0b3JDbGllbnRXeDo6dGV4dENoZWNrZXIpOgorCiAyMDExLTAyLTEwICBOYXRlIENoYXBpbiAg
PGphcGhldEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9FZGl0b3JDbGllbnRX
eC5oIGIvU291cmNlL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0VkaXRvckNsaWVudFd4LmgKaW5k
ZXggN2RiZWUzMWE1Zjk0NGE0OGRkY2QzMWRkNWI4YThlMDJhNTJlNmJmMC4uM2M0M2JlN2QyNGE5
MmUxMmUwZmM2ODUyZTA3MjMwZjc5ZGQwN2RiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93
eC9XZWJLaXRTdXBwb3J0L0VkaXRvckNsaWVudFd4LmgKKysrIGIvU291cmNlL1dlYktpdC93eC9X
ZWJLaXRTdXBwb3J0L0VkaXRvckNsaWVudFd4LmgKQEAgLTMwLDEzICszMCwxNCBAQAogCiAjaW5j
bHVkZSAiRWRpdG9yQ2xpZW50LmgiCiAjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIlRleHRD
aGVja2VyQ2xpZW50LmgiCiAKICNpbmNsdWRlICJXZWJWaWV3LmgiCiAjaW5jbHVkZSAiV2ViRnJh
bWUuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBFZGl0b3JDbGllbnRXeCA6IHB1
YmxpYyBFZGl0b3JDbGllbnQgeworY2xhc3MgRWRpdG9yQ2xpZW50V3ggOiBwdWJsaWMgRWRpdG9y
Q2xpZW50LCBwdWJsaWMgVGV4dENoZWNrZXJDbGllbnQgewogZnJpZW5kIGNsYXNzIDo6d3hXZWJW
aWV3OwogZnJpZW5kIGNsYXNzIDo6d3hXZWJGcmFtZTsKIApAQCAtMTEzLDYgKzExNCw3IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNldElucHV0TWV0aG9kU3RhdGUoKTsKICAgICB2
aXJ0dWFsIHZvaWQgc2V0SW5wdXRNZXRob2RTdGF0ZShib29sIGVuYWJsZWQpOwogICAgIHZpcnR1
YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhXZWJDb3JlOjpTcGVsbENoZWNrZXIqLCBp
bnQsIGNvbnN0IFdURjo6U3RyaW5nJikge30KKyAgICB2aXJ0dWFsIFRleHRDaGVja2VyQ2xpZW50
KiB0ZXh0Q2hlY2tlcigpIHsgcmV0dXJuIHRoaXM7IH0KIAogcHJpdmF0ZToKICAgICBQYWdlKiBt
X3BhZ2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKaW5kZXggOWY5MTZhYzg2MGE4YTAxNmU4YTdiYWUxOGFlOTVmODYxMDAw
ZGRkOC4uOTgyY2QwM2FmZGYwMzYxNWU1Mjc2YzEzY2I3ZTJhYjE4OTM4ZDQxMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE1IEBACisyMDExLTAxLTI2ICBNT1JJVEEgSGFqaW1lICA8bW9ycml0YUBn
b29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIE5lZWQgYSBzaG9ydCBkZXNjcmlwdGlvbiBhbmQgYnVnIFVSTCAoT09QUyEpCisKKyAgICAg
ICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmg6CisgICAgICAgICogVUlQcm9jZXNz
L1RleHRDaGVja2VyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJF
ZGl0b3JDbGllbnQuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViRWRpdG9yQ2xpZW50Ojp0ZXh0Q2hl
Y2tlcik6CisgICAgICAgICogU2NyaXB0cy93ZWJraXQyL21lc3NhZ2VzLnB5OiBSZS1hcnJhbmdl
ZCB0aGUgaW5jbHVkZSBmaWxlCisKIDIwMTEtMDItMTMgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVy
c2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBNYWNpZWogU3RhY2hvd2lhay4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0Mi9tZXNzYWdlcy5weSBi
L1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0Mi9tZXNzYWdlcy5weQppbmRleCA4MDBkYzM5
YjBmZWNiMzk1MWZkYzVmYzQ4ZGZlMDRjOTIwYjJjYzFiLi5mODQ3ODY5ZmJkNjk0NWU1ZTAyZDQx
NDU5MmI3ZWJiNTYxMTgyODRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dl
YmtpdDIvbWVzc2FnZXMucHkKKysrIGIvU291cmNlL1dlYktpdDIvU2NyaXB0cy93ZWJraXQyL21l
c3NhZ2VzLnB5CkBAIC00MjQsNyArNDI0LDcgQEAgZGVmIGhlYWRlcnNfZm9yX3R5cGUodHlwZSk6
CiAgICAgICAgICdXZWJDb3JlOjpDb21wb3NpdGlvblVuZGVybGluZSc6ICc8V2ViQ29yZS9FZGl0
b3IuaD4nLAogICAgICAgICAnV2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kJzogJzxXZWJDb3JlL0tl
eWJvYXJkRXZlbnQuaD4nLAogICAgICAgICAnV2ViQ29yZTo6UGx1Z2luSW5mbyc6ICc8V2ViQ29y
ZS9QbHVnaW5EYXRhLmg+JywKLSAgICAgICAgJ1dlYkNvcmU6OlRleHRDaGVja2luZ1Jlc3VsdCc6
ICc8V2ViQ29yZS9FZGl0b3JDbGllbnQuaD4nLAorICAgICAgICAnV2ViQ29yZTo6VGV4dENoZWNr
aW5nUmVzdWx0JzogJzxXZWJDb3JlL1RleHRDaGVja2VyQ2xpZW50Lmg+JywKICAgICAgICAgJ1dl
YktpdDo6V2ViR2VzdHVyZUV2ZW50JzogJyJXZWJFdmVudC5oIicsCiAgICAgICAgICdXZWJLaXQ6
OldlYktleWJvYXJkRXZlbnQnOiAnIldlYkV2ZW50LmgiJywKICAgICAgICAgJ1dlYktpdDo6V2Vi
TW91c2VFdmVudCc6ICciV2ViRXZlbnQuaCInLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dl
YkNvcmVBcmd1bWVudENvZGVycy5oCmluZGV4IDYyYzY4Yzc2MWU1Y2ZjNDA2NWExYjM0MWY1M2E0
YTJmZTRlYjU2NjAuLmU3ODAyYzM3MjZmMmNlMzBjZWQ4MTQxMjE5ZGI4NGMyYzllNjE5YjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKQEAgLTQz
LDYgKzQzLDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1Byb3RlY3Rpb25TcGFjZS5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvUmVzb3VyY2VFcnJvci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VS
ZXF1ZXN0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9UZXh0Q2hlY2tlckNsaWVudC5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvVmlld3BvcnRBcmd1bWVudHMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1dpbmRv
d0ZlYXR1cmVzLmg+CiAjaW5jbHVkZSA8bGltaXRzPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1RleHRDaGVja2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVGV4
dENoZWNrZXIuaAppbmRleCBmYzM0N2ZlNTQ3YmQyNzdhMGJmMmM2Zjk5NWUzNDUxMjM4NmZmOTI5
Li45OTk3ZDhiZGM5MzYyMTQwNmY4ZDU0MTZjNGJkZTUyNzYxMzE5NDRmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVGV4dENoZWNrZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvVGV4dENoZWNrZXIuaApAQCAtMjcsNiArMjcsNyBAQAogI2RlZmluZSBUZXh0
Q2hlY2tlcl9oCiAKICNpbmNsdWRlIDxXZWJDb3JlL0VkaXRvckNsaWVudC5oPgorI2luY2x1ZGUg
PFdlYkNvcmUvVGV4dENoZWNrZXJDbGllbnQuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRp
dG9yQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkVkaXRvckNsaWVudC5oCmluZGV4IDQwYmQ4YzY5MzBkMDk5YTA3ZmMwMTA2MTM0MmEwNGU2MDQ5
OTI4ZmEuLmM0ZTBkMDI1ZjcyZTA2ZjVjZWVkOTUxMDcxOWY3ZTQ0MzEzZjk5ZDMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xp
ZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJF
ZGl0b3JDbGllbnQuaApAQCAtMjcsMTIgKzI3LDEzIEBACiAjZGVmaW5lIFdlYkVkaXRvckNsaWVu
dF9oCiAKICNpbmNsdWRlIDxXZWJDb3JlL0VkaXRvckNsaWVudC5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvVGV4dENoZWNrZXJDbGllbnQuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFdl
YlBhZ2U7CiAKLWNsYXNzIFdlYkVkaXRvckNsaWVudCA6IHB1YmxpYyBXZWJDb3JlOjpFZGl0b3JD
bGllbnQgeworY2xhc3MgV2ViRWRpdG9yQ2xpZW50IDogcHVibGljIFdlYkNvcmU6OkVkaXRvckNs
aWVudCwgcHVibGljIFdlYkNvcmU6OlRleHRDaGVja2VyQ2xpZW50IHsKIHB1YmxpYzoKICAgICBX
ZWJFZGl0b3JDbGllbnQoV2ViUGFnZSogcGFnZSkKICAgICAgICAgOiBtX3BhZ2UocGFnZSkKQEAg
LTEyMCw2ICsxMjEsOCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCB0b2dnbGVBdXRvbWF0
aWNTcGVsbGluZ0NvcnJlY3Rpb24oKTsKICNlbmRpZgogCisgICAgVGV4dENoZWNrZXJDbGllbnQq
IHRleHRDaGVja2VyKCkgeyByZXR1cm4gdGhpczsgfQorCiAgICAgdmlydHVhbCB2b2lkIGlnbm9y
ZVdvcmRJblNwZWxsRG9jdW1lbnQoY29uc3QgU3RyaW5nJik7CiAgICAgdmlydHVhbCB2b2lkIGxl
YXJuV29yZChjb25zdCBTdHJpbmcmKTsKICAgICB2aXJ0dWFsIHZvaWQgY2hlY2tTcGVsbGluZ09m
U3RyaW5nKGNvbnN0IFVDaGFyKiwgaW50IGxlbmd0aCwgaW50KiBtaXNzcGVsbGluZ0xvY2F0aW9u
LCBpbnQqIG1pc3NwZWxsaW5nTGVuZ3RoKTsK
</data>
<flag name="review"
          id="74078"
          type_id="1"
          status="+"
          setter="rniwa"
    />
          </attachment>
      

    </bug>

</bugzilla>