<?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>73099</bug_id>
          
          <creation_ts>2011-11-24 15:18:59 -0800</creation_ts>
          <short_desc>Web Inspector: Unsafe cross origin access errors should show stack trace in console.</short_desc>
          <delta_ts>2012-01-18 13:55:29 -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>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>76566</dependson>
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Vsevolod Vlasov">vsevik</reporter>
          <assigned_to name="Vsevolod Vlasov">vsevik</assigned_to>
          <cc>abarth</cc>
    
    <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>gustavo.noronha</cc>
    
    <cc>gustavo</cc>
    
    <cc>japhet</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>ojan</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>sam</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>508908</commentid>
    <comment_count>0</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2011-11-24 15:18:59 -0800</bug_when>
    <thetext>Upstreaming https://code.google.com/p/chromium/issues/detail?id=88885</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>508911</commentid>
    <comment_count>1</comment_count>
      <attachid>116551</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2011-11-24 15:22:57 -0800</bug_when>
    <thetext>Created attachment 116551
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>508912</commentid>
    <comment_count>2</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2011-11-24 15:24:46 -0800</bug_when>
    <thetext>I am going to add some more tests to check each scenario that was touched by this patch, but I&apos;d like to get some early feedback on the overall implementation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>508938</commentid>
    <comment_count>3</comment_count>
      <attachid>116551</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-11-24 21:16:54 -0800</bug_when>
    <thetext>Comment on attachment 116551
Patch

Oh, wow.  This is really exciting!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>508946</commentid>
    <comment_count>4</comment_count>
      <attachid>116551</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-11-24 21:35:18 -0800</bug_when>
    <thetext>Comment on attachment 116551
Patch

My only complaint is that this idiom takes too many lines to write.  Aside from that, this is great.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>508967</commentid>
    <comment_count>5</comment_count>
      <attachid>116551</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-11-24 22:41:49 -0800</bug_when>
    <thetext>Comment on attachment 116551
Patch

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

&gt; Source/WebCore/bindings/v8/V8Proxy.cpp:166
&gt; +    if (stackTrace &amp;&amp; stackTrace-&gt;size() &gt; 0) {

Sounds like console could figure it out by itsef. See ConsoleMessage.cpp line #50. Reusing it will address Adam&apos;s concern.

&gt; Source/WebCore/page/DOMWindow.cpp:928
&gt; +            if (stackTrace &amp;&amp; stackTrace-&gt;size() &gt; 0) {

ditto

&gt; Source/WebCore/page/DOMWindow.cpp:1785
&gt; +    if (stackTrace &amp;&amp; stackTrace-&gt;size() &gt; 0) {

ditto

&gt; Source/WebCore/xml/XMLHttpRequest.cpp:840
&gt; +    if (m_stackTrace &amp;&amp; m_stackTrace-&gt;size() &gt; 0) {

ditto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>509186</commentid>
    <comment_count>6</comment_count>
      <attachid>116627</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2011-11-25 08:28:19 -0800</bug_when>
    <thetext>Created attachment 116627
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>509188</commentid>
    <comment_count>7</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2011-11-25 08:30:11 -0800</bug_when>
    <thetext>Please note that fixing console output (stdout/stderr) is out of the scope of this change. That would require a lot of tests rebaseline and I am not sure how much this is needed. This patch only passes callStack through to inspector.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>510440</commentid>
    <comment_count>8</comment_count>
      <attachid>116627</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2011-11-28 20:27:54 -0800</bug_when>
    <thetext>Comment on attachment 116627
Patch

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

&gt; Source/WebCore/bindings/v8/V8Proxy.cpp:172
&gt; +    addMessageToConsole(page, str, kSourceID, kLineNumber, stackTrace);

You could release the stackTrace here, since addMessageToConsole takes a PassRefPtr.

&gt; Source/WebCore/page/DOMWindow.cpp:143
&gt; +    PassRefPtr&lt;ScriptCallStack&gt; stackTrace() const { return m_stackTrace; }

This should return a raw pointer, since you are not relinquishing the ref.

&gt; Source/WebCore/page/DOMWindow.cpp:908
&gt; +    // Capture stack trace only when inspector front-end is loaded as it may be time consuming.
&gt; +    RefPtr&lt;ScriptCallStack&gt; stackTrace;
&gt; +    if (InspectorInstrumentation::hasFrontends())
&gt; +        stackTrace = createScriptCallStack(ScriptCallStack::maxCallStackSizeToCapture, true);

In other places, I believe we used settings()-&gt;developerExtrasEnabled() for this check.

&gt; Source/WebCore/page/DOMWindow.cpp:911
&gt; +    PostMessageTimer* timer = new PostMessageTimer(this, message, sourceOrigin, source, channels.release(), target.get(), stackTrace);

This could use stackTrace.release().

&gt; Source/WebCore/page/DOMWindow.cpp:925
&gt; +            RefPtr&lt;ScriptCallStack&gt; stackTrace = timer-&gt;stackTrace();

There doesn&apos;t seem to be a good reason to put this in a RefPtr, since you never use it.

&gt; Source/WebCore/page/DOMWindow.cpp:1778
&gt;      // FIXME: Add arguments so that we can provide a correct source URL and line number.
&gt; -    console()-&gt;addMessage(JSMessageSource, LogMessageType, ErrorMessageLevel, message, 1, String());
&gt; +    RefPtr&lt;ScriptCallStack&gt; stackTrace = createScriptCallStack(ScriptCallStack::maxCallStackSizeToCapture, true);
&gt; +    console()-&gt;addMessage(JSMessageSource, LogMessageType, ErrorMessageLevel, message, 1, String(), stackTrace);

If we have a stack track, can we also have the URL and line number?

&gt; Source/WebCore/xml/XMLHttpRequest.cpp:483
&gt; +    // Capture stack trace only when inspector front-end is loaded as it may be time consuming.
&gt; +    if (InspectorInstrumentation::hasFrontends())
&gt; +        m_stackTrace = createScriptCallStack(ScriptCallStack::maxCallStackSizeToCapture, true);

Same comment as about about settings()-&gt;developerExtrasEnabled()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>510441</commentid>
    <comment_count>9</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2011-11-28 20:28:26 -0800</bug_when>
    <thetext>Please also make sure this works of JSC.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>510521</commentid>
    <comment_count>10</comment_count>
      <attachid>116627</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-11-28 23:06:39 -0800</bug_when>
    <thetext>Comment on attachment 116627
Patch

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

&gt; Source/WebCore/page/DOMWindow.cpp:907
&gt; +    if (InspectorInstrumentation::hasFrontends())

There is Console::shouldCaptureFullStackTrace which is used to decide whether we should capture current stack trace for console messages. developerExtrasEnabled() may be added there if needed, but there should be a single place where we chose to capture stack trace.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>511650</commentid>
    <comment_count>11</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2011-11-30 05:02:00 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 116627 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=116627&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/bindings/v8/V8Proxy.cpp:172
&gt; &gt; +    addMessageToConsole(page, str, kSourceID, kLineNumber, stackTrace);
&gt; 
&gt; You could release the stackTrace here, since addMessageToConsole takes a PassRefPtr.
Done.

&gt; &gt; Source/WebCore/page/DOMWindow.cpp:143
&gt; &gt; +    PassRefPtr&lt;ScriptCallStack&gt; stackTrace() const { return m_stackTrace; }
&gt; 
&gt; This should return a raw pointer, since you are not relinquishing the ref.
Done.

&gt; &gt; Source/WebCore/page/DOMWindow.cpp:908
&gt; &gt; +    // Capture stack trace only when inspector front-end is loaded as it may be time consuming.
&gt; &gt; +    RefPtr&lt;ScriptCallStack&gt; stackTrace;
&gt; &gt; +    if (InspectorInstrumentation::hasFrontends())
&gt; &gt; +        stackTrace = createScriptCallStack(ScriptCallStack::maxCallStackSizeToCapture, true);
&gt; 
&gt; In other places, I believe we used settings()-&gt;developerExtrasEnabled() for this check.
It is not enough to have developer extras enabled here. We don&apos;t want to capture stack trace unless inspector front-end is open.

&gt; &gt; Source/WebCore/page/DOMWindow.cpp:911
&gt; &gt; +    PostMessageTimer* timer = new PostMessageTimer(this, message, sourceOrigin, source, channels.release(), target.get(), stackTrace);
&gt; 
&gt; This could use stackTrace.release().
Done.

&gt; &gt; Source/WebCore/page/DOMWindow.cpp:925
&gt; &gt; +            RefPtr&lt;ScriptCallStack&gt; stackTrace = timer-&gt;stackTrace();
&gt; 
&gt; There doesn&apos;t seem to be a good reason to put this in a RefPtr, since you never use it.
Removed this line.

&gt; Please also make sure this works of JSC.
Unfortunately it does not. Once https://bugs.webkit.org/show_bug.cgi?id=40118 is fixed it will work as will some other features that need stack trace. Looks like something is going on there so hopefully it will be resolved soon.

&gt; &gt; Source/WebCore/page/DOMWindow.cpp:1778
&gt; &gt;      // FIXME: Add arguments so that we can provide a correct source URL and line number.
&gt; &gt; -    console()-&gt;addMessage(JSMessageSource, LogMessageType, ErrorMessageLevel, message, 1, String());
&gt; &gt; +    RefPtr&lt;ScriptCallStack&gt; stackTrace = createScriptCallStack(ScriptCallStack::maxCallStackSizeToCapture, true);
&gt; &gt; +    console()-&gt;addMessage(JSMessageSource, LogMessageType, ErrorMessageLevel, message, 1, String(), stackTrace);
&gt; 
&gt; If we have a stack track, can we also have the URL and line number?
Currently we have this logic for extracting url and line number from stack trace for inspector console only: http://codesearch.google.com/codesearch#OAMlx_jo-ck/src/third_party/WebKit/Source/WebCore/inspector/ConsoleMessage.cpp&amp;l=70
As I mentioned above, I am not sure how much this is needed for stderr.
We can put it Console.cpp:
http://codesearch.google.com/codesearch#OAMlx_jo-ck/src/third_party/WebKit/Source/WebCore/page/Console.cpp&amp;exact_package=chromium&amp;q=console.cpp&amp;type=cs&amp;l=156
but that would require a lot of tests rebaseline and what is worse, since we don&apos;t have stack traces in JSC yet, custom expectations for chromium for a huge amount of tests.
I suggest we do that in a separate patch once JSC have createScriptCallStack() implemented.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>511653</commentid>
    <comment_count>12</comment_count>
      <attachid>117173</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2011-11-30 05:07:27 -0800</bug_when>
    <thetext>Created attachment 117173
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512622</commentid>
    <comment_count>13</comment_count>
      <attachid>117173</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-12-01 01:37:28 -0800</bug_when>
    <thetext>Comment on attachment 117173
Patch

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

Passing the line number along with the stack is a bit confusing. I&apos;d suggest that you introduce Console::addErrorMessage() receiving the stack trace only (no explicit location). You could assign one to XMLHttpRequest from within bindings instead of setting the line number. Sounds like all other call sites are falling back to the default values in either case.

&gt; Source/WebCore/page/DOMWindow.cpp:928
&gt; +            console()-&gt;addMessage(JSMessageSource, LogMessageType, ErrorMessageLevel, message, 0, String(), timer-&gt;stackTrace());

Should it be &quot;0&quot;?

&gt; Source/WebCore/page/DOMWindow.cpp:1778
&gt; +    console()-&gt;addMessage(JSMessageSource, LogMessageType, ErrorMessageLevel, message, 1, String(), stackTrace.release());

Or &quot;1&quot; ?

&gt; Source/WebCore/xml/XMLHttpRequest.cpp:163
&gt; +    , m_lastSendLineNumber(1)

I.e. why did this change?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>517330</commentid>
    <comment_count>14</comment_count>
      <attachid>118371</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2011-12-08 05:34:09 -0800</bug_when>
    <thetext>Created attachment 118371
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>517332</commentid>
    <comment_count>15</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2011-12-08 05:36:16 -0800</bug_when>
    <thetext>This patch keeps zeros and ones in console messages the same as they were before.
I also filed https://bugs.webkit.org/show_bug.cgi?id=74075 and uploaded a patch that makes use of ones as the default line number consistent there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>517334</commentid>
    <comment_count>16</comment_count>
      <attachid>118371</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2011-12-08 05:38:38 -0800</bug_when>
    <thetext>Comment on attachment 118371
Patch

Attachment 118371 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/10809219</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>517339</commentid>
    <comment_count>17</comment_count>
      <attachid>118371</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-12-08 05:41:53 -0800</bug_when>
    <thetext>Comment on attachment 118371
Patch

Attachment 118371 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/10809222</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>517340</commentid>
    <comment_count>18</comment_count>
      <attachid>118371</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2011-12-08 05:41:57 -0800</bug_when>
    <thetext>Comment on attachment 118371
Patch

Attachment 118371 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/10790224</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>517351</commentid>
    <comment_count>19</comment_count>
      <attachid>118376</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2011-12-08 05:59:41 -0800</bug_when>
    <thetext>Created attachment 118376
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>517382</commentid>
    <comment_count>20</comment_count>
      <attachid>118376</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-12-08 06:53:38 -0800</bug_when>
    <thetext>Comment on attachment 118376
Patch

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

&gt; Source/WebCore/bindings/js/JSXMLHttpRequestCustom.cpp:41
&gt; +#include &quot;ScriptCallStack.h&quot;

Please mind the alphabetic order

&gt; Source/WebCore/bindings/js/JSXMLHttpRequestCustom.cpp:118
&gt; +    impl()-&gt;setCallStack(createScriptCallStack(exec));

I think createScriptCallStack is a bad name for the method, sorry I missed the moment it got landed. You should explicitly state that the stack depth depends on the inspector front-end existence.

&gt; Source/WebCore/bindings/v8/V8Proxy.cpp:166
&gt; +    RefPtr&lt;ScriptCallStack&gt; stackTrace = createScriptCallStack(ScriptCallStack::maxCallStackSizeToCapture, true);

I don&apos;t see a corresponding change to JSC. Is this a part of a different change? You should probably limit the scope of this change to XHR and keep symmetry here.

&gt; Source/WebCore/xml/XMLHttpRequest.h:128
&gt; +    void setCallStack(PassRefPtr&lt;ScriptCallStack&gt;);

setLastSendCallStack ?

&gt; Source/WebCore/xml/XMLHttpRequest.h:228
&gt; +    RefPtr&lt;ScriptCallStack&gt; m_callStack;

m_lastSendCallStack</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>517763</commentid>
    <comment_count>21</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2011-12-08 13:57:45 -0800</bug_when>
    <thetext>(In reply to comment #20)
&gt; (From update of attachment 118376 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=118376&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/bindings/js/JSXMLHttpRequestCustom.cpp:118
&gt; &gt; +    impl()-&gt;setCallStack(createScriptCallStack(exec));
&gt; 
&gt; I think createScriptCallStack is a bad name for the method, sorry I missed the moment it got landed. You should explicitly state that the stack depth depends on the inspector front-end existence.
XHR changes are moved out to a separate patch.

&gt; 
&gt; &gt; Source/WebCore/bindings/v8/V8Proxy.cpp:166
&gt; &gt; +    RefPtr&lt;ScriptCallStack&gt; stackTrace = createScriptCallStack(ScriptCallStack::maxCallStackSizeToCapture, true);
&gt; 
&gt; I don&apos;t see a corresponding change to JSC. Is this a part of a different change? You should probably limit the scope of this change to XHR and keep symmetry here.
JSC uses DOMWindow-&gt;printErrorMessage() to report unsafe cross origin access from bindings.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>517766</commentid>
    <comment_count>22</comment_count>
      <attachid>118463</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2011-12-08 14:01:51 -0800</bug_when>
    <thetext>Created attachment 118463
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>517797</commentid>
    <comment_count>23</comment_count>
      <attachid>118463</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-12-08 14:28:18 -0800</bug_when>
    <thetext>Comment on attachment 118463
Patch

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

&gt; Source/WebCore/page/DOMWindow.cpp:909
&gt; +        stackTrace = createScriptCallStack(ScriptCallStack::maxCallStackSizeToCapture, true);

Should we use createScriptCallStackForInspector here?

&gt; Source/WebCore/page/DOMWindow.cpp:928
&gt; +            console()-&gt;addMessage(JSMessageSource, LogMessageType, ErrorMessageLevel, message, 0, String(), timer-&gt;stackTrace());

Please file a bug requesting to introduce addMessage that would only accept message and stack (with no line number and url). I guess you are not doing it here in order not to update expectations, right?

&gt; Source/WebCore/page/DOMWindow.cpp:1779
&gt; +    RefPtr&lt;ScriptCallStack&gt; stackTrace = createScriptCallStack(ScriptCallStack::maxCallStackSizeToCapture, true);

Should we use createScriptCallStackForInspector here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>517798</commentid>
    <comment_count>24</comment_count>
      <attachid>118463</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-12-08 14:29:26 -0800</bug_when>
    <thetext>Comment on attachment 118463
Patch

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

&gt; Source/WebCore/loader/FrameLoader.cpp:-1566
&gt; -    Settings* settings = targetFrame-&gt;settings();

Why did this change?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>537791</commentid>
    <comment_count>25</comment_count>
      <attachid>122905</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-01-18 05:35:09 -0800</bug_when>
    <thetext>Created attachment 122905
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>537796</commentid>
    <comment_count>26</comment_count>
      <attachid>122905</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-01-18 05:44:28 -0800</bug_when>
    <thetext>Comment on attachment 122905
Patch

Clearing r?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>537800</commentid>
    <comment_count>27</comment_count>
      <attachid>122907</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-01-18 05:51:03 -0800</bug_when>
    <thetext>Created attachment 122907
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>537802</commentid>
    <comment_count>28</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-01-18 05:51:39 -0800</bug_when>
    <thetext>(In reply to comment #23)
&gt; (From update of attachment 118463 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=118463&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/page/DOMWindow.cpp:909
&gt; &gt; +        stackTrace = createScriptCallStack(ScriptCallStack::maxCallStackSizeToCapture, true);
&gt; 
&gt; Should we use createScriptCallStackForInspector here?

I don&apos;t think so. This code is called even when there wasn&apos;t any error and saving even one frame from call stack when there inspector is not open could be bad for performance.

&gt; &gt; Source/WebCore/page/DOMWindow.cpp:928
&gt; &gt; +            console()-&gt;addMessage(JSMessageSource, LogMessageType, ErrorMessageLevel, message, 0, String(), timer-&gt;stackTrace());
&gt; 
&gt; Please file a bug requesting to introduce addMessage that would only accept message and stack (with no line number and url). I guess you are not doing it here in order not to update expectations, right?

I&apos;ve added methods taking only message and call stack to both Console and ScriptExecutionContext. Expectations will not be updated because line number reported in expectations is never based on information from call stack.

&gt; &gt; Source/WebCore/page/DOMWindow.cpp:1779
&gt; &gt; +    RefPtr&lt;ScriptCallStack&gt; stackTrace = createScriptCallStack(ScriptCallStack::maxCallStackSizeToCapture, true);
&gt; 
&gt; Should we use createScriptCallStackForInspector here?

Done.

(In reply to comment #24)
&gt; (From update of attachment 118463 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=118463&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/loader/FrameLoader.cpp:-1566
&gt; &gt; -    Settings* settings = targetFrame-&gt;settings();
&gt; 
&gt; Why did this change?

This is done in DOMWindow::printErrorMessage.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>537822</commentid>
    <comment_count>29</comment_count>
      <attachid>122907</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-01-18 06:21:12 -0800</bug_when>
    <thetext>Comment on attachment 122907
Patch

Attachment 122907 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/11211600</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>537826</commentid>
    <comment_count>30</comment_count>
      <attachid>122907</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-01-18 06:24:45 -0800</bug_when>
    <thetext>Comment on attachment 122907
Patch

Attachment 122907 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/11284168</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>537846</commentid>
    <comment_count>31</comment_count>
      <attachid>122907</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-01-18 07:17:54 -0800</bug_when>
    <thetext>Comment on attachment 122907
Patch

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

r- since breaking the build badly.

&gt; Source/WebCore/page/DOMWindow.cpp:1724
&gt; +    console()-&gt;addMessage(JSMessageSource, LogMessageType, ErrorMessageLevel, message, stackTrace.release());

Please capture the full stack here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>537861</commentid>
    <comment_count>32</comment_count>
      <attachid>122928</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-01-18 07:28:18 -0800</bug_when>
    <thetext>Created attachment 122928
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>537874</commentid>
    <comment_count>33</comment_count>
      <attachid>122928</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2012-01-18 07:43:24 -0800</bug_when>
    <thetext>Comment on attachment 122928
Patch

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

&gt; Source/WebCore/bindings/v8/V8Proxy.cpp:147
&gt; +    sourceDocument-&gt;addConsoleMessage(JSMessageSource, LogMessageType, ErrorMessageLevel, str, stackTrace.release());

Please file a bug for JSC.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>537890</commentid>
    <comment_count>34</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-01-18 08:39:51 -0800</bug_when>
    <thetext>(In reply to comment #33)
&gt; (From update of attachment 122928 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=122928&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/bindings/v8/V8Proxy.cpp:147
&gt; &gt; +    sourceDocument-&gt;addConsoleMessage(JSMessageSource, LogMessageType, ErrorMessageLevel, str, stackTrace.release());
&gt; 
&gt; Please file a bug for JSC.

I don&apos;t see any JSC specific handling of unsafe access error reporting.
Looks like JSC is using WebCore methods to report errors, like here: http://goo.gl/OAxcS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>537904</commentid>
    <comment_count>35</comment_count>
      <attachid>122907</attachid>
    <who name="Collabora GTK+ EWS bot">gustavo.noronha</who>
    <bug_when>2012-01-18 09:07:54 -0800</bug_when>
    <thetext>Comment on attachment 122907
Patch

Attachment 122907 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/11194203</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>538089</commentid>
    <comment_count>36</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-01-18 12:59:33 -0800</bug_when>
    <thetext>Committed r105310: &lt;http://trac.webkit.org/changeset/105310&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>116551</attachid>
            <date>2011-11-24 15:22:57 -0800</date>
            <delta_ts>2011-11-25 08:28:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73099-20111125032255.patch</filename>
            <type>text/plain</type>
            <size>21403</size>
            <attacher name="Vsevolod Vlasov">vsevik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAxMTQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzU4ZjM1ZTFjODY1NWMy
ZGU3YWViZTkxOWY1ZjE3NzBkNzJlYjcxZC4uNGNlN2VlYzBhNTZlZjc3ZmE4NzgxYTRmZDFiNzll
MjlmMzI0MThjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDExLTExLTI0ICBWc2V2
b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IFVuc2FmZSBjcm9zcyBvcmlnaW4gYWNjZXNzIGVycm9ycyBzaG91bGQgc2hvdyBzdGFjayB0
cmFjZSBpbiBjb25zb2xlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NzMwOTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4UHJveHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6YWRk
TWVzc2FnZVRvQ29uc29sZSk6CisgICAgICAgIChXZWJDb3JlOjpsb2dJbmZvKToKKyAgICAgICAg
KFdlYkNvcmU6OlY4UHJveHk6OnJlcG9ydFVuc2FmZUFjY2Vzc1RvKToKKyAgICAgICAgKiBwYWdl
L0RPTVdpbmRvdy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQb3N0TWVzc2FnZVRpbWVyOjpQb3N0
TWVzc2FnZVRpbWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlBvc3RNZXNzYWdlVGltZXI6OnN0YWNr
VHJhY2UpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93Ojpwb3N0TWVzc2FnZSk6CisgICAg
ICAgIChXZWJDb3JlOjpET01XaW5kb3c6OnBvc3RNZXNzYWdlVGltZXJGaXJlZCk6CisgICAgICAg
IChXZWJDb3JlOjpET01XaW5kb3c6OnByaW50RXJyb3JNZXNzYWdlKToKKyAgICAgICAgKiB4bWwv
WE1MSHR0cFJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6OlhN
TEh0dHBSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0Ojppbml0U2Vu
ZCk6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6bGFzdFNlbmRVUkwpOgorICAg
ICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6Omxhc3RTZW5kTGluZU51bWJlcik6CisgICAg
ICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6cmVwb3J0VW5zYWZlVXNhZ2UpOgorICAgICAg
ICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6OnNldFJlcXVlc3RIZWFkZXIpOgorICAgICAgICAo
V2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6OmdldFJlc3BvbnNlSGVhZGVyKToKKyAgICAgICAgKFdl
YkNvcmU6OlhNTEh0dHBSZXF1ZXN0OjpkaWRGYWlsKToKKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0
dHBSZXF1ZXN0OjpkaWRGaW5pc2hMb2FkaW5nKToKKyAgICAgICAgKiB4bWwvWE1MSHR0cFJlcXVl
c3QuaDoKKwogMjAxMS0xMS0yNCAgSm9zaHVhIEJlbGwgIDxqc2JlbGxAY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIEluZGV4ZWREQjogSW5kZXhlcyBzaG91bGQgYmUgc2Vjb25kYXJpbHkgc29ydGVk
IG9uIHByaW1hcnkga2V5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9W
OFByb3h5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4UHJveHkuY3BwCmluZGV4
IDhmZmQxYzFiZmM4NDljNjNlY2E0Y2YzODcyOTQzM2Y0M2E2NWJiMTcuLjIyY2M5MzZhZDQ1YjY2
NjdjNjc4MmFkODIzMzMzOTYxMGQ5OTc2YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L1Y4UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4
UHJveHkuY3BwCkBAIC00Niw2ICs0Niw4IEBACiAjaW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3VwcG9ydC5o
IgorI2luY2x1ZGUgIlNjcmlwdENhbGxTdGFjay5oIgorI2luY2x1ZGUgIlNjcmlwdENhbGxTdGFj
a0ZhY3RvcnkuaCIKICNpbmNsdWRlICJTY3JpcHRTb3VyY2VDb2RlLmgiCiAjaW5jbHVkZSAiU2Vj
dXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgpAQCAtMTIwLDExICsxMjIsMTEg
QEAgdHlwZWRlZiBIYXNoTWFwPE5vZGUqLCB2ODo6T2JqZWN0Kj4gRE9NTm9kZU1hcDsKIHR5cGVk
ZWYgSGFzaE1hcDx2b2lkKiwgdjg6Ok9iamVjdCo+IERPTU9iamVjdE1hcDsKIHR5cGVkZWYgSGFz
aE1hcDxpbnQsIHY4OjpGdW5jdGlvblRlbXBsYXRlKj4gRnVuY3Rpb25UZW1wbGF0ZU1hcDsKIAot
c3RhdGljIHZvaWQgYWRkTWVzc2FnZVRvQ29uc29sZShQYWdlKiBwYWdlLCBjb25zdCBTdHJpbmcm
IG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgc291cmNlSUQsIHVuc2lnbmVkIGxpbmVOdW1iZXIpCitz
dGF0aWMgdm9pZCBhZGRNZXNzYWdlVG9Db25zb2xlKFBhZ2UqIHBhZ2UsIGNvbnN0IFN0cmluZyYg
bWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VJRCwgdW5zaWduZWQgbGluZU51bWJlciwgUGFz
c1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IHN0YWNrVHJhY2UpCiB7CiAgICAgQVNTRVJUKHBhZ2Up
OwogICAgIENvbnNvbGUqIGNvbnNvbGUgPSBwYWdlLT5tYWluRnJhbWUoKS0+ZG9tV2luZG93KCkt
PmNvbnNvbGUoKTsKLSAgICBjb25zb2xlLT5hZGRNZXNzYWdlKEpTTWVzc2FnZVNvdXJjZSwgTG9n
TWVzc2FnZVR5cGUsIEVycm9yTWVzc2FnZUxldmVsLCBtZXNzYWdlLCBsaW5lTnVtYmVyLCBzb3Vy
Y2VJRCk7CisgICAgY29uc29sZS0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIExvZ01lc3Nh
Z2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgbWVzc2FnZSwgbGluZU51bWJlciwgc291cmNlSUQs
IHN0YWNrVHJhY2UpOwogfQogCiB2b2lkIGxvZ0luZm8oRnJhbWUqIGZyYW1lLCBjb25zdCBTdHJp
bmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgdXJsKQpAQCAtMTMyLDcgKzEzNCw3IEBAIHZvaWQg
bG9nSW5mbyhGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5n
JiB1cmwpCiAgICAgUGFnZSogcGFnZSA9IGZyYW1lLT5wYWdlKCk7CiAgICAgaWYgKCFwYWdlKQog
ICAgICAgICByZXR1cm47Ci0gICAgYWRkTWVzc2FnZVRvQ29uc29sZShwYWdlLCBtZXNzYWdlLCB1
cmwsIDApOworICAgIGFkZE1lc3NhZ2VUb0NvbnNvbGUocGFnZSwgbWVzc2FnZSwgdXJsLCAwLCAw
KTsKIH0KIAogdm9pZCBWOFByb3h5OjpyZXBvcnRVbnNhZmVBY2Nlc3NUbyhGcmFtZSogdGFyZ2V0
KQpAQCAtMTU4LDE0ICsxNjAsMTggQEAgdm9pZCBWOFByb3h5OjpyZXBvcnRVbnNhZmVBY2Nlc3NU
byhGcmFtZSogdGFyZ2V0KQogICAgIFN0cmluZyBzdHIgPSAiVW5zYWZlIEphdmFTY3JpcHQgYXR0
ZW1wdCB0byBhY2Nlc3MgZnJhbWUgd2l0aCBVUkwgIiArIHRhcmdldERvY3VtZW50LT51cmwoKS5z
dHJpbmcoKSArCiAgICAgICAgICAgICAgICAgICIgZnJvbSBmcmFtZSB3aXRoIFVSTCAiICsgc291
cmNlRG9jdW1lbnQtPnVybCgpLnN0cmluZygpICsgIi4gRG9tYWlucywgcHJvdG9jb2xzIGFuZCBw
b3J0cyBtdXN0IG1hdGNoLlxuIjsKIAotICAgIC8vIEJ1aWxkIGEgY29uc29sZSBtZXNzYWdlIHdp
dGggZmFrZSBzb3VyY2UgSUQgYW5kIGxpbmUgbnVtYmVyLgotICAgIGNvbnN0IFN0cmluZyBrU291
cmNlSUQgPSAiIjsKLSAgICBjb25zdCBpbnQga0xpbmVOdW1iZXIgPSAxOworICAgIFJlZlB0cjxT
Y3JpcHRDYWxsU3RhY2s+IHN0YWNrVHJhY2UgPSBjcmVhdGVTY3JpcHRDYWxsU3RhY2soU2NyaXB0
Q2FsbFN0YWNrOjptYXhDYWxsU3RhY2tTaXplVG9DYXB0dXJlLCB0cnVlKTsKKyAgICBTdHJpbmcg
c291cmNlVVJMOworICAgIGludCBsaW5lTnVtYmVyID0gMDsKKyAgICBpZiAoc3RhY2tUcmFjZSAm
JiBzdGFja1RyYWNlLT5zaXplKCkgPiAwKSB7CisgICAgICAgIHNvdXJjZVVSTCA9IHN0YWNrVHJh
Y2UtPmF0KDApLnNvdXJjZVVSTCgpOworICAgICAgICBsaW5lTnVtYmVyID0gc3RhY2tUcmFjZS0+
YXQoMCkubGluZU51bWJlcigpOworICAgIH0KIAogICAgIC8vIE5PVEU6IFNhZmFyaSBwcmludHMg
dGhlIG1lc3NhZ2UgaW4gdGhlIHRhcmdldCBwYWdlLCBidXQgaXQgc2VlbXMgbGlrZQogICAgIC8v
IGl0IHNob3VsZCBiZSBpbiB0aGUgc291cmNlIHBhZ2UuIEV2ZW4gZm9yIGRlbGF5ZWQgbWVzc2Fn
ZXMsIHdlIHB1dCBpdCBpbgogICAgIC8vIHRoZSBzb3VyY2UgcGFnZS4KLSAgICBhZGRNZXNzYWdl
VG9Db25zb2xlKHBhZ2UsIHN0ciwga1NvdXJjZUlELCBrTGluZU51bWJlcik7CisgICAgYWRkTWVz
c2FnZVRvQ29uc29sZShwYWdlLCBzdHIsIHNvdXJjZVVSTCwgbGluZU51bWJlciwgc3RhY2tUcmFj
ZSk7CiB9CiAKIHN0YXRpYyB2b2lkIGhhbmRsZUZhdGFsRXJyb3JJblY4KCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RE9NV2luZG93LmNwcAppbmRleCA5NTk5ZThkNmJhM2JjNjQ2OTliOGM1YTc4YzQzNGUzYjc3MzVj
MDU1Li5jYjhmYmRkN2YwZGYwODg0OGJmNDU4MjFjOTcxOTkxOTczNDVhN2VlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9ET01XaW5kb3cuY3BwCkBAIC04MSw2ICs4MSw4IEBACiAjaW5jbHVkZSAiUGxhdGZvcm1T
Y3JlZW4uaCIKICNpbmNsdWRlICJTY2hlZHVsZWRBY3Rpb24uaCIKICNpbmNsdWRlICJTY3JlZW4u
aCIKKyNpbmNsdWRlICJTY3JpcHRDYWxsU3RhY2suaCIKKyNpbmNsdWRlICJTY3JpcHRDYWxsU3Rh
Y2tGYWN0b3J5LmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJTZXJp
YWxpemVkU2NyaXB0VmFsdWUuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgpAQCAtMTIxLDEzICsx
MjMsMTQgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBQb3N0TWVzc2FnZVRpbWVyIDog
cHVibGljIFRpbWVyQmFzZSB7CiBwdWJsaWM6Ci0gICAgUG9zdE1lc3NhZ2VUaW1lcihET01XaW5k
b3cqIHdpbmRvdywgUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IG1lc3NhZ2UsIGNv
bnN0IFN0cmluZyYgc291cmNlT3JpZ2luLCBQYXNzUmVmUHRyPERPTVdpbmRvdz4gc291cmNlLCBQ
YXNzT3duUHRyPE1lc3NhZ2VQb3J0Q2hhbm5lbEFycmF5PiBjaGFubmVscywgU2VjdXJpdHlPcmln
aW4qIHRhcmdldE9yaWdpbikKKyAgICBQb3N0TWVzc2FnZVRpbWVyKERPTVdpbmRvdyogd2luZG93
LCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gbWVzc2FnZSwgY29uc3QgU3RyaW5n
JiBzb3VyY2VPcmlnaW4sIFBhc3NSZWZQdHI8RE9NV2luZG93PiBzb3VyY2UsIFBhc3NPd25QdHI8
TWVzc2FnZVBvcnRDaGFubmVsQXJyYXk+IGNoYW5uZWxzLCBTZWN1cml0eU9yaWdpbiogdGFyZ2V0
T3JpZ2luLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gc3RhY2tUcmFjZSkKICAgICAgICAg
OiBtX3dpbmRvdyh3aW5kb3cpCiAgICAgICAgICwgbV9tZXNzYWdlKG1lc3NhZ2UpCiAgICAgICAg
ICwgbV9vcmlnaW4oc291cmNlT3JpZ2luKQogICAgICAgICAsIG1fc291cmNlKHNvdXJjZSkKICAg
ICAgICAgLCBtX2NoYW5uZWxzKGNoYW5uZWxzKQogICAgICAgICAsIG1fdGFyZ2V0T3JpZ2luKHRh
cmdldE9yaWdpbikKKyAgICAgICAgLCBtX3N0YWNrVHJhY2Uoc3RhY2tUcmFjZSkKICAgICB7CiAg
ICAgfQogCkBAIC0xMzcsNiArMTQwLDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gTWVzc2Fn
ZUV2ZW50OjpjcmVhdGUobWVzc2FnZVBvcnRzLnJlbGVhc2UoKSwgbV9tZXNzYWdlLCBtX29yaWdp
biwgIiIsIG1fc291cmNlKTsKICAgICB9CiAgICAgU2VjdXJpdHlPcmlnaW4qIHRhcmdldE9yaWdp
bigpIGNvbnN0IHsgcmV0dXJuIG1fdGFyZ2V0T3JpZ2luLmdldCgpOyB9CisgICAgUGFzc1JlZlB0
cjxTY3JpcHRDYWxsU3RhY2s+IHN0YWNrVHJhY2UoKSBjb25zdCB7IHJldHVybiBtX3N0YWNrVHJh
Y2U7IH0KIAogcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZmlyZWQoKQpAQCAtMTUxLDYgKzE1
NSw3IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPERPTVdpbmRvdz4gbV9zb3VyY2U7CiAgICAgT3du
UHRyPE1lc3NhZ2VQb3J0Q2hhbm5lbEFycmF5PiBtX2NoYW5uZWxzOwogICAgIFJlZlB0cjxTZWN1
cml0eU9yaWdpbj4gbV90YXJnZXRPcmlnaW47CisgICAgUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4g
bV9zdGFja1RyYWNlOwogfTsKIAogdHlwZWRlZiBIYXNoQ291bnRlZFNldDxET01XaW5kb3cqPiBE
T01XaW5kb3dTZXQ7CkBAIC04OTcsOCArOTAyLDEzIEBAIHZvaWQgRE9NV2luZG93Ojpwb3N0TWVz
c2FnZShQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gbWVzc2FnZSwgY29uc3QgTWVz
CiAgICAgICAgIHJldHVybjsKICAgICBTdHJpbmcgc291cmNlT3JpZ2luID0gc291cmNlRG9jdW1l
bnQtPnNlY3VyaXR5T3JpZ2luKCktPnRvU3RyaW5nKCk7CiAKKyAgICAvLyBDYXB0dXJlIHN0YWNr
IHRyYWNlIG9ubHkgd2hlbiBpbnNwZWN0b3IgZnJvbnQtZW5kIGlzIGxvYWRlZCBhcyBpdCBtYXkg
YmUgdGltZSBjb25zdW1pbmcuCisgICAgUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gc3RhY2tUcmFj
ZTsKKyAgICBpZiAoSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpoYXNGcm9udGVuZHMoKSkKKyAg
ICAgICAgc3RhY2tUcmFjZSA9IGNyZWF0ZVNjcmlwdENhbGxTdGFjayhTY3JpcHRDYWxsU3RhY2s6
Om1heENhbGxTdGFja1NpemVUb0NhcHR1cmUsIHRydWUpOworCiAgICAgLy8gU2NoZWR1bGUgdGhl
IG1lc3NhZ2UuCi0gICAgUG9zdE1lc3NhZ2VUaW1lciogdGltZXIgPSBuZXcgUG9zdE1lc3NhZ2VU
aW1lcih0aGlzLCBtZXNzYWdlLCBzb3VyY2VPcmlnaW4sIHNvdXJjZSwgY2hhbm5lbHMucmVsZWFz
ZSgpLCB0YXJnZXQuZ2V0KCkpOworICAgIFBvc3RNZXNzYWdlVGltZXIqIHRpbWVyID0gbmV3IFBv
c3RNZXNzYWdlVGltZXIodGhpcywgbWVzc2FnZSwgc291cmNlT3JpZ2luLCBzb3VyY2UsIGNoYW5u
ZWxzLnJlbGVhc2UoKSwgdGFyZ2V0LmdldCgpLCBzdGFja1RyYWNlKTsKICAgICB0aW1lci0+c3Rh
cnRPbmVTaG90KDApOwogfQogCkBAIC05MTIsOSArOTIyLDE2IEBAIHZvaWQgRE9NV2luZG93Ojpw
b3N0TWVzc2FnZVRpbWVyRmlyZWQoUGFzc093blB0cjxQb3N0TWVzc2FnZVRpbWVyPiB0KQogICAg
IGlmICh0aW1lci0+dGFyZ2V0T3JpZ2luKCkpIHsKICAgICAgICAgLy8gQ2hlY2sgdGFyZ2V0IG9y
aWdpbiBub3cgc2luY2UgdGhlIHRhcmdldCBkb2N1bWVudCBtYXkgaGF2ZSBjaGFuZ2VkIHNpbmNl
IHRoZSBzaW1lciB3YXMgc2NoZWR1bGVkLgogICAgICAgICBpZiAoIXRpbWVyLT50YXJnZXRPcmln
aW4oKS0+aXNTYW1lU2NoZW1lSG9zdFBvcnQoZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSkp
IHsKKyAgICAgICAgICAgIFJlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IHN0YWNrVHJhY2UgPSB0aW1l
ci0+c3RhY2tUcmFjZSgpOworICAgICAgICAgICAgU3RyaW5nIHNvdXJjZVVSTDsKKyAgICAgICAg
ICAgIGludCBsaW5lTnVtYmVyID0gMDsKKyAgICAgICAgICAgIGlmIChzdGFja1RyYWNlICYmIHN0
YWNrVHJhY2UtPnNpemUoKSA+IDApIHsKKyAgICAgICAgICAgICAgICBzb3VyY2VVUkwgPSBzdGFj
a1RyYWNlLT5hdCgwKS5zb3VyY2VVUkwoKTsKKyAgICAgICAgICAgICAgICBsaW5lTnVtYmVyID0g
c3RhY2tUcmFjZS0+YXQoMCkubGluZU51bWJlcigpOworICAgICAgICAgICAgfQogICAgICAgICAg
ICAgU3RyaW5nIG1lc3NhZ2UgPSAiVW5hYmxlIHRvIHBvc3QgbWVzc2FnZSB0byAiICsgdGltZXIt
PnRhcmdldE9yaWdpbigpLT50b1N0cmluZygpICsKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIi4gUmVjaXBpZW50IGhhcyBvcmlnaW4gIiArIGRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2lu
KCktPnRvU3RyaW5nKCkgKyAiLlxuIjsKLSAgICAgICAgICAgIGNvbnNvbGUoKS0+YWRkTWVzc2Fn
ZShKU01lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgbWVz
c2FnZSwgMCwgU3RyaW5nKCkpOworICAgICAgICAgICAgY29uc29sZSgpLT5hZGRNZXNzYWdlKEpT
TWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIEVycm9yTWVzc2FnZUxldmVsLCBtZXNzYWdl
LCBsaW5lTnVtYmVyLCBzb3VyY2VVUkwsIHN0YWNrVHJhY2UpOwogICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICB9CiAgICAgfQpAQCAtMTc2Miw4ICsxNzc5LDE0IEBAIHZvaWQgRE9NV2luZG93
OjpwcmludEVycm9yTWVzc2FnZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiAgICAgaWYgKHNldHRp
bmdzLT5wcml2YXRlQnJvd3NpbmdFbmFibGVkKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIC8v
IEZJWE1FOiBBZGQgYXJndW1lbnRzIHNvIHRoYXQgd2UgY2FuIHByb3ZpZGUgYSBjb3JyZWN0IHNv
dXJjZSBVUkwgYW5kIGxpbmUgbnVtYmVyLgotICAgIGNvbnNvbGUoKS0+YWRkTWVzc2FnZShKU01l
c3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgbWVzc2FnZSwg
MSwgU3RyaW5nKCkpOworICAgIFJlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IHN0YWNrVHJhY2UgPSBj
cmVhdGVTY3JpcHRDYWxsU3RhY2soU2NyaXB0Q2FsbFN0YWNrOjptYXhDYWxsU3RhY2tTaXplVG9D
YXB0dXJlLCB0cnVlKTsKKyAgICBTdHJpbmcgc291cmNlVVJMOworICAgIGludCBsaW5lTnVtYmVy
ID0gMDsKKyAgICBpZiAoc3RhY2tUcmFjZSAmJiBzdGFja1RyYWNlLT5zaXplKCkgPiAwKSB7Cisg
ICAgICAgIHNvdXJjZVVSTCA9IHN0YWNrVHJhY2UtPmF0KDApLnNvdXJjZVVSTCgpOworICAgICAg
ICBsaW5lTnVtYmVyID0gc3RhY2tUcmFjZS0+YXQoMCkubGluZU51bWJlcigpOworICAgIH0KKyAg
ICBjb25zb2xlKCktPmFkZE1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwg
RXJyb3JNZXNzYWdlTGV2ZWwsIG1lc3NhZ2UsIGxpbmVOdW1iZXIsIHNvdXJjZVVSTCwgc3RhY2tU
cmFjZSk7CiB9CiAKIFN0cmluZyBET01XaW5kb3c6OmNyb3NzRG9tYWluQWNjZXNzRXJyb3JNZXNz
YWdlKERPTVdpbmRvdyogYWN0aXZlV2luZG93KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
eG1sL1hNTEh0dHBSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVz
dC5jcHAKaW5kZXggNmM0OGFmZDc0ODg5MDUzMDIzYzQzYThhZDlkYmM3YThkZjg1NGM5Ni4uZDVj
MmJmNTBmMTE5ZTY1NjNiYjgzNTkzZmY3YjMzZTBjMGIyOGIxYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwv
WE1MSHR0cFJlcXVlc3QuY3BwCkBAIC00Miw2ICs0Miw3IEBACiAjaW5jbHVkZSAiUmVzb3VyY2VF
cnJvci5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIlNjcmlwdENh
bGxTdGFjay5oIgorI2luY2x1ZGUgIlNjcmlwdENhbGxTdGFja0ZhY3RvcnkuaCIKICNpbmNsdWRl
ICJTY3JpcHRQcm9maWxlLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRl
ICJTZXR0aW5ncy5oIgpAQCAtMTYxLDYgKzE2Miw3IEBAIFhNTEh0dHBSZXF1ZXN0OjpYTUxIdHRw
UmVxdWVzdChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRyPFNlY3Vy
CiAgICAgLCBtX3JlY2VpdmVkTGVuZ3RoKDApCiAgICAgLCBtX2xhc3RTZW5kTGluZU51bWJlcigw
KQogICAgICwgbV9leGNlcHRpb25Db2RlKDApCisgICAgLCBtX3N0YWNrVHJhY2UoMCkKICAgICAs
IG1fcHJvZ3Jlc3NFdmVudFRocm90dGxlKHRoaXMpCiAgICAgLCBtX3Jlc3BvbnNlVHlwZUNvZGUo
UmVzcG9uc2VUeXBlRGVmYXVsdCkKICAgICAsIG1fc2VjdXJpdHlPcmlnaW4oc2VjdXJpdHlPcmln
aW4pCkBAIC00NzUsNiArNDc3LDExIEBAIGJvb2wgWE1MSHR0cFJlcXVlc3Q6OmluaXRTZW5kKEV4
Y2VwdGlvbkNvZGUmIGVjKQogICAgIH0KIAogICAgIG1fZXJyb3IgPSBmYWxzZTsKKworICAgIC8v
IENhcHR1cmUgc3RhY2sgdHJhY2Ugb25seSB3aGVuIGluc3BlY3RvciBmcm9udC1lbmQgaXMgbG9h
ZGVkIGFzIGl0IG1heSBiZSB0aW1lIGNvbnN1bWluZy4KKyAgICBpZiAoSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjpoYXNGcm9udGVuZHMoKSkKKyAgICAgICAgbV9zdGFja1RyYWNlID0gY3JlYXRl
U2NyaXB0Q2FsbFN0YWNrKFNjcmlwdENhbGxTdGFjazo6bWF4Q2FsbFN0YWNrU2l6ZVRvQ2FwdHVy
ZSwgdHJ1ZSk7CisKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtODA4LDEzICs4MTUsMzMgQEAg
dm9pZCBYTUxIdHRwUmVxdWVzdDo6b3ZlcnJpZGVNaW1lVHlwZShjb25zdCBTdHJpbmcmIG92ZXJy
aWRlKQogICAgIG1fbWltZVR5cGVPdmVycmlkZSA9IG92ZXJyaWRlOwogfQogCi1zdGF0aWMgdm9p
ZCByZXBvcnRVbnNhZmVVc2FnZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25z
dCBTdHJpbmcmIG1lc3NhZ2UpCitTdHJpbmcgWE1MSHR0cFJlcXVlc3Q6Omxhc3RTZW5kVVJMKCkg
Y29uc3QKK3sKKyAgICBpZiAobV9zdGFja1RyYWNlICYmIG1fc3RhY2tUcmFjZS0+c2l6ZSgpID4g
MCkKKyAgICAgICAgcmV0dXJuIG1fc3RhY2tUcmFjZS0+YXQoMCkuc291cmNlVVJMKCk7CisgICAg
cmV0dXJuIG1fbGFzdFNlbmRVUkw7Cit9CisKK3Vuc2lnbmVkIFhNTEh0dHBSZXF1ZXN0OjpsYXN0
U2VuZExpbmVOdW1iZXIoKSBjb25zdAogeworICAgIGlmIChtX3N0YWNrVHJhY2UgJiYgbV9zdGFj
a1RyYWNlLT5zaXplKCkgPiAwKQorICAgICAgICByZXR1cm4gbV9zdGFja1RyYWNlLT5hdCgwKS5s
aW5lTnVtYmVyKCk7CisgICAgcmV0dXJuIG1fbGFzdFNlbmRMaW5lTnVtYmVyOworfQorCit2b2lk
IFhNTEh0dHBSZXF1ZXN0OjpyZXBvcnRVbnNhZmVVc2FnZShjb25zdCBTdHJpbmcmIG1lc3NhZ2Up
IGNvbnN0Cit7CisgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCA9IHNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKTsKICAgICBpZiAoIWNvbnRleHQpCiAgICAgICAgIHJldHVybjsKLSAg
ICAvLyBGSVhNRTogSXQncyBub3QgZ29vZCB0byByZXBvcnQgdGhlIGJhZCB1c2FnZSB3aXRob3V0
IGluZGljYXRpbmcgd2hhdCBzb3VyY2UgbGluZSBpdCBjYW1lIGZyb20uCi0gICAgLy8gV2Ugc2hv
dWxkIHBhc3MgYWRkaXRpb25hbCBwYXJhbWV0ZXJzIHNvIHdlIGNhbiB0ZWxsIHRoZSBjb25zb2xl
IHdoZXJlIHRoZSBtaXN0YWtlIG9jY3VycmVkLgotICAgIGNvbnRleHQtPmFkZENvbnNvbGVNZXNz
YWdlKEpTTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIEVycm9yTWVzc2FnZUxldmVsLCBt
ZXNzYWdlKTsKKworICAgIFN0cmluZyBzb3VyY2VVUkw7CisgICAgaW50IGxpbmVOdW1iZXIgPSAw
OworICAgIGlmIChtX3N0YWNrVHJhY2UgJiYgbV9zdGFja1RyYWNlLT5zaXplKCkgPiAwKSB7Cisg
ICAgICAgIHNvdXJjZVVSTCA9IG1fc3RhY2tUcmFjZS0+YXQoMCkuc291cmNlVVJMKCk7CisgICAg
ICAgIGxpbmVOdW1iZXIgPSBtX3N0YWNrVHJhY2UtPmF0KDApLmxpbmVOdW1iZXIoKTsKKyAgICB9
CisgICAgY29udGV4dC0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBl
LCBFcnJvck1lc3NhZ2VMZXZlbCwgbWVzc2FnZSwgbGFzdFNlbmRMaW5lTnVtYmVyKCksIGxhc3RT
ZW5kVVJMKCksIG1fc3RhY2tUcmFjZSk7CiB9CiAKIHZvaWQgWE1MSHR0cFJlcXVlc3Q6OnNldFJl
cXVlc3RIZWFkZXIoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHZhbHVl
LCBFeGNlcHRpb25Db2RlJiBlYykKQEAgLTgzNiw3ICs4NjMsNyBAQCB2b2lkIFhNTEh0dHBSZXF1
ZXN0OjpzZXRSZXF1ZXN0SGVhZGVyKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgY29uc3QgU3Ry
aW5nJiB2YQogCiAgICAgLy8gQSBwcml2aWxlZ2VkIHNjcmlwdCAoZS5nLiBhIERhc2hib2FyZCB3
aWRnZXQpIGNhbiBzZXQgYW55IGhlYWRlcnMuCiAgICAgaWYgKCFzZWN1cml0eU9yaWdpbigpLT5j
YW5Mb2FkTG9jYWxSZXNvdXJjZXMoKSAmJiAhaXNBbGxvd2VkSFRUUEhlYWRlcihuYW1lKSkgewot
ICAgICAgICByZXBvcnRVbnNhZmVVc2FnZShzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksICJSZWZ1
c2VkIHRvIHNldCB1bnNhZmUgaGVhZGVyIFwiIiArIG5hbWUgKyAiXCIiKTsKKyAgICAgICAgcmVw
b3J0VW5zYWZlVXNhZ2UoIlJlZnVzZWQgdG8gc2V0IHVuc2FmZSBoZWFkZXIgXCIiICsgbmFtZSAr
ICJcIiIpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC04OTgsMTIgKzkyNSwxMiBAQCBT
dHJpbmcgWE1MSHR0cFJlcXVlc3Q6OmdldFJlc3BvbnNlSGVhZGVyKGNvbnN0IEF0b21pY1N0cmlu
ZyYgbmFtZSwgRXhjZXB0aW9uQ29kZQogCiAgICAgLy8gU2VlIGNvbW1lbnQgaW4gZ2V0QWxsUmVz
cG9uc2VIZWFkZXJzIGFib3ZlLgogICAgIGlmIChpc1NldENvb2tpZUhlYWRlcihuYW1lKSAmJiAh
c2VjdXJpdHlPcmlnaW4oKS0+Y2FuTG9hZExvY2FsUmVzb3VyY2VzKCkpIHsKLSAgICAgICAgcmVw
b3J0VW5zYWZlVXNhZ2Uoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCAiUmVmdXNlZCB0byBnZXQg
dW5zYWZlIGhlYWRlciBcIiIgKyBuYW1lICsgIlwiIik7CisgICAgICAgIHJlcG9ydFVuc2FmZVVz
YWdlKCJSZWZ1c2VkIHRvIGdldCB1bnNhZmUgaGVhZGVyIFwiIiArIG5hbWUgKyAiXCIiKTsKICAg
ICAgICAgcmV0dXJuIFN0cmluZygpOwogICAgIH0KIAogICAgIGlmICghbV9zYW1lT3JpZ2luUmVx
dWVzdCAmJiAhaXNPbkFjY2Vzc0NvbnRyb2xSZXNwb25zZUhlYWRlcldoaXRlbGlzdChuYW1lKSkg
ewotICAgICAgICByZXBvcnRVbnNhZmVVc2FnZShzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksICJS
ZWZ1c2VkIHRvIGdldCB1bnNhZmUgaGVhZGVyIFwiIiArIG5hbWUgKyAiXCIiKTsKKyAgICAgICAg
cmVwb3J0VW5zYWZlVXNhZ2UoIlJlZnVzZWQgdG8gZ2V0IHVuc2FmZSBoZWFkZXIgXCIiICsgbmFt
ZSArICJcIiIpOwogICAgICAgICByZXR1cm4gU3RyaW5nKCk7CiAgICAgfQogICAgIHJldHVybiBt
X3Jlc3BvbnNlLmh0dHBIZWFkZXJGaWVsZChuYW1lKTsKQEAgLTk3MSw3ICs5OTgsNyBAQCB2b2lk
IFhNTEh0dHBSZXF1ZXN0OjpkaWRGYWlsKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQogCiAg
ICAgLy8gTmV0d29yayBmYWlsdXJlcyBhcmUgYWxyZWFkeSByZXBvcnRlZCB0byBXZWIgSW5zcGVj
dG9yIGJ5IFJlc291cmNlTG9hZGVyLgogICAgIGlmIChlcnJvci5kb21haW4oKSA9PSBlcnJvckRv
bWFpbldlYktpdEludGVybmFsKQotICAgICAgICByZXBvcnRVbnNhZmVVc2FnZShzY3JpcHRFeGVj
dXRpb25Db250ZXh0KCksICJYTUxIdHRwUmVxdWVzdCBjYW5ub3QgbG9hZCAiICsgZXJyb3IuZmFp
bGluZ1VSTCgpICsgIi4gIiArIGVycm9yLmxvY2FsaXplZERlc2NyaXB0aW9uKCkpOworICAgICAg
ICByZXBvcnRVbnNhZmVVc2FnZSgiWE1MSHR0cFJlcXVlc3QgY2Fubm90IGxvYWQgIiArIGVycm9y
LmZhaWxpbmdVUkwoKSArICIuICIgKyBlcnJvci5sb2NhbGl6ZWREZXNjcmlwdGlvbigpKTsKIAog
ICAgIG1fZXhjZXB0aW9uQ29kZSA9IFhNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uOjpORVRXT1JLX0VS
UjsKICAgICBuZXR3b3JrRXJyb3IoKTsKQEAgLTk5OCw4ICsxMDI1LDcgQEAgdm9pZCBYTUxIdHRw
UmVxdWVzdDo6ZGlkRmluaXNoTG9hZGluZyh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGRvdWJs
ZSkKICNpZiBFTkFCTEUoWEhSX1JFU1BPTlNFX0JMT0IpCiAgICAgLy8gRklYTUU6IFNldCBtX3Jl
c3BvbnNlQmxvYiB0byBzb21ldGhpbmcgaGVyZSBpbiB0aGUgUmVzcG9uc2VUeXBlQmxvYiBjYXNl
LgogI2VuZGlmCi0KLSAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnJlc291cmNlUmV0cmll
dmVkQnlYTUxIdHRwUmVxdWVzdChzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIGlkZW50aWZpZXIs
IG1fcmVzcG9uc2VCdWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpLCBtX3VybCwgbV9s
YXN0U2VuZFVSTCwgbV9sYXN0U2VuZExpbmVOdW1iZXIpOworICAgIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6cmVzb3VyY2VSZXRyaWV2ZWRCeVhNTEh0dHBSZXF1ZXN0KHNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKSwgaWRlbnRpZmllciwgbV9yZXNwb25zZUJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2
ZUNhcGFjaXR5KCksIG1fdXJsLCBsYXN0U2VuZFVSTCgpLCBsYXN0U2VuZExpbmVOdW1iZXIoKSk7
CiAKICAgICBib29sIGhhZExvYWRlciA9IG1fbG9hZGVyOwogICAgIG1fbG9hZGVyID0gMDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5oIGIvU291cmNlL1dl
YkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmgKaW5kZXggNjcxOTI1ZTM3MGZkMjkzOTFiYmE3YmMz
NDMyYzYxNzFmYjU1ODIwMC4uOTI3NTJhNTcwOTA2M2FmMTkyNTAzYWM4ODNlNWEwYmQ5Y2VjMWJh
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmgKKysrIGIv
U291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmgKQEAgLTQwLDYgKzQwLDcgQEAgY2xh
c3MgQmxvYjsKIGNsYXNzIERvY3VtZW50OwogY2xhc3MgRE9NRm9ybURhdGE7CiBjbGFzcyBSZXNv
dXJjZVJlcXVlc3Q7CitjbGFzcyBTY3JpcHRDYWxsU3RhY2s7CiBjbGFzcyBTZWN1cml0eU9yaWdp
bjsKIGNsYXNzIFNoYXJlZEJ1ZmZlcjsKIGNsYXNzIFRleHRSZXNvdXJjZURlY29kZXI7CkBAIC0x
ODMsNiArMTg0LDEwIEBAIHByaXZhdGU6CiAgICAgdm9pZCBuZXR3b3JrRXJyb3IoKTsKICAgICB2
b2lkIGFib3J0RXJyb3IoKTsKIAorICAgIFN0cmluZyBsYXN0U2VuZFVSTCgpIGNvbnN0OworICAg
IHVuc2lnbmVkIGxhc3RTZW5kTGluZU51bWJlcigpIGNvbnN0OworICAgIHZvaWQgcmVwb3J0VW5z
YWZlVXNhZ2UoY29uc3QgU3RyaW5nJiBtZXNzYWdlKSBjb25zdDsKKwogICAgIE93blB0cjxYTUxI
dHRwUmVxdWVzdFVwbG9hZD4gbV91cGxvYWQ7CiAKICAgICBLVVJMIG1fdXJsOwpAQCAtMjI0LDYg
KzIyOSw3IEBAIHByaXZhdGU6CiAgICAgdW5zaWduZWQgbV9sYXN0U2VuZExpbmVOdW1iZXI7CiAg
ICAgU3RyaW5nIG1fbGFzdFNlbmRVUkw7CiAgICAgRXhjZXB0aW9uQ29kZSBtX2V4Y2VwdGlvbkNv
ZGU7CisgICAgUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gbV9zdGFja1RyYWNlOwogCiAgICAgRXZl
bnRUYXJnZXREYXRhIG1fZXZlbnRUYXJnZXREYXRhOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNDZhYTRkZjgxYmNhZjFl
ZTg4YTcwZTNkMGQ5ZDEwNDdjY2MzOWFmMy4uZWY2MzI0NjRjNWM5ZGMzMjZhYzY2NGRmYjQ3Y2Zl
NmY3YjNkNjI2MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDExLTExLTI0ICBWc2V2b2xvZCBW
bGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFVu
c2FmZSBjcm9zcyBvcmlnaW4gYWNjZXNzIGVycm9ycyBzaG91bGQgc2hvdyBzdGFjayB0cmFjZSBp
biBjb25zb2xlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NzMwOTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUteGhyLWxvZ2dpbmctZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmstcHJlZmxpZ2h0LW9wdGlv
bnMtZXhwZWN0ZWQudHh0OgorCiAyMDExLTExLTI0ICBKb3NodWEgQmVsbCAgPGpzYmVsbEBjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgSW5kZXhlZERCOiBJbmRleGVzIHNob3VsZCBiZSBzZWNvbmRh
cmlseSBzb3J0ZWQgb24gcHJpbWFyeSBrZXkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUteGhyLWxvZ2dpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29uc29sZS14aHItbG9nZ2luZy1leHBlY3RlZC50
eHQKaW5kZXggMDQ1MGMwYzQyNjZhYjNhZTg3YzZiNWZiNWY4MTI0NzdhNDE4ODE3OS4uMDg3MmVj
N2VhODE1M2JhMmJmNTQxMzdkNGNlNmI3Y2U4YzM0ODY4OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29uc29sZS14aHItbG9nZ2luZy1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29uc29sZS14aHItbG9nZ2lu
Zy1leHBlY3RlZC50eHQKQEAgLTIsMTIgKzIsMTIgQEAgQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEw
OiBzZW5kaW5nIGEgJXMgcmVxdWVzdCB0byAlcwogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEwOiBz
ZW5kaW5nIGEgJXMgcmVxdWVzdCB0byAlcwogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEwOiBzZW5k
aW5nIGEgJXMgcmVxdWVzdCB0byAlcwogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEwOiBzZW5kaW5n
IGEgJXMgcmVxdWVzdCB0byAlcwotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE6IFhNTEh0dHBSZXF1
ZXN0IGNhbm5vdCBsb2FkIGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2Vz
L3hoci1leGlzdHMuaHRtbC4gT3JpZ2luIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMCBpcyBub3QgYWxs
b3dlZCBieSBBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4uCitDT05TT0xFIE1FU1NBR0U6IGxp
bmUgMzk6IFhNTEh0dHBSZXF1ZXN0IGNhbm5vdCBsb2FkIGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9p
bnNwZWN0b3IvcmVzb3VyY2VzL3hoci1leGlzdHMuaHRtbC4gT3JpZ2luIGh0dHA6Ly8xMjcuMC4w
LjE6ODAwMCBpcyBub3QgYWxsb3dlZCBieSBBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4uCiBD
T05TT0xFIE1FU1NBR0U6IGxpbmUgMTA6IHNlbmRpbmcgYSAlcyByZXF1ZXN0IHRvICVzCiBDT05T
T0xFIE1FU1NBR0U6IGxpbmUgMTA6IHNlbmRpbmcgYSAlcyByZXF1ZXN0IHRvICVzCiBDT05TT0xF
IE1FU1NBR0U6IGxpbmUgMTA6IHNlbmRpbmcgYSAlcyByZXF1ZXN0IHRvICVzCiBDT05TT0xFIE1F
U1NBR0U6IGxpbmUgMTA6IHNlbmRpbmcgYSAlcyByZXF1ZXN0IHRvICVzCi1DT05TT0xFIE1FU1NB
R0U6IGxpbmUgMTogWE1MSHR0cFJlcXVlc3QgY2Fubm90IGxvYWQgaHR0cDovL2xvY2FsaG9zdDo4
MDAwL2luc3BlY3Rvci9yZXNvdXJjZXMveGhyLWV4aXN0cy5odG1sLiBPcmlnaW4gaHR0cDovLzEy
Ny4wLjAuMTo4MDAwIGlzIG5vdCBhbGxvd2VkIGJ5IEFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdp
bi4KK0NPTlNPTEUgTUVTU0FHRTogbGluZSAzOTogWE1MSHR0cFJlcXVlc3QgY2Fubm90IGxvYWQg
aHR0cDovL2xvY2FsaG9zdDo4MDAwL2luc3BlY3Rvci9yZXNvdXJjZXMveGhyLWV4aXN0cy5odG1s
LiBPcmlnaW4gaHR0cDovLzEyNy4wLjAuMTo4MDAwIGlzIG5vdCBhbGxvd2VkIGJ5IEFjY2Vzcy1D
b250cm9sLUFsbG93LU9yaWdpbi4KIFRlc3RzIHRoYXQgWE1MSHR0cFJlcXVlc3QgTG9nZ2luZyB3
b3JrcyB3aGVuIEVuYWJsZWQgYW5kIGRvZXNuJ3Qgc2hvdyBsb2dzIHdoZW4gRGlzYWJsZWQuCiAK
IGNvbnNvbGUteGhyLWxvZ2dpbmcuaHRtbDoxMHNlbmRpbmcgYSBHRVQgcmVxdWVzdCB0byByZXNv
dXJjZXMveGhyLWV4aXN0cy5odG1sCkBAIC0xOCwxMSArMTgsMTEgQEAgWEhSIGZpbmlzaGVkIGxv
YWRpbmc6ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlcy94aHItZG9l
cy1ub3QtZXgKIGNvbnNvbGUteGhyLWxvZ2dpbmcuaHRtbDoxMHNlbmRpbmcgYSBQT1NUIHJlcXVl
c3QgdG8gcmVzb3VyY2VzL3Bvc3QtdGFyZ2V0LmNnaQogWEhSIGZpbmlzaGVkIGxvYWRpbmc6ICJo
dHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlcy9wb3N0LXRhcmdldC5jZ2ki
LgogY29uc29sZS14aHItbG9nZ2luZy5odG1sOjEwc2VuZGluZyBhIEdFVCByZXF1ZXN0IHRvIGh0
dHA6Ly9sb2NhbGhvc3Q6ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2VzL3hoci1leGlzdHMuaHRtbAot
WE1MSHR0cFJlcXVlc3QgY2Fubm90IGxvYWQgaHR0cDovL2xvY2FsaG9zdDo4MDAwL2luc3BlY3Rv
ci9yZXNvdXJjZXMveGhyLWV4aXN0cy5odG1sLiBPcmlnaW4gaHR0cDovLzEyNy4wLjAuMTo4MDAw
IGlzIG5vdCBhbGxvd2VkIGJ5IEFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbi4KK25ldHdvcmst
dGVzdC5qczozOVhNTEh0dHBSZXF1ZXN0IGNhbm5vdCBsb2FkIGh0dHA6Ly9sb2NhbGhvc3Q6ODAw
MC9pbnNwZWN0b3IvcmVzb3VyY2VzL3hoci1leGlzdHMuaHRtbC4gT3JpZ2luIGh0dHA6Ly8xMjcu
MC4wLjE6ODAwMCBpcyBub3QgYWxsb3dlZCBieSBBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4u
CiBjb25zb2xlLXhoci1sb2dnaW5nLmh0bWw6MTBzZW5kaW5nIGEgR0VUIHJlcXVlc3QgdG8gcmVz
b3VyY2VzL3hoci1leGlzdHMuaHRtbAogY29uc29sZS14aHItbG9nZ2luZy5odG1sOjEwc2VuZGlu
ZyBhIEdFVCByZXF1ZXN0IHRvIHJlc291cmNlcy94aHItZG9lcy1ub3QtZXhpc3QuaHRtbAogR0VU
IGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2VzL3hoci1kb2VzLW5vdC1l
eGlzdC5odG1sIDQwNCAoTm90IEZvdW5kKQogY29uc29sZS14aHItbG9nZ2luZy5odG1sOjEwc2Vu
ZGluZyBhIFBPU1QgcmVxdWVzdCB0byByZXNvdXJjZXMvcG9zdC10YXJnZXQuY2dpCiBjb25zb2xl
LXhoci1sb2dnaW5nLmh0bWw6MTBzZW5kaW5nIGEgR0VUIHJlcXVlc3QgdG8gaHR0cDovL2xvY2Fs
aG9zdDo4MDAwL2luc3BlY3Rvci9yZXNvdXJjZXMveGhyLWV4aXN0cy5odG1sCi1YTUxIdHRwUmVx
dWVzdCBjYW5ub3QgbG9hZCBodHRwOi8vbG9jYWxob3N0OjgwMDAvaW5zcGVjdG9yL3Jlc291cmNl
cy94aHItZXhpc3RzLmh0bWwuIE9yaWdpbiBodHRwOi8vMTI3LjAuMC4xOjgwMDAgaXMgbm90IGFs
bG93ZWQgYnkgQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luLgorbmV0d29yay10ZXN0LmpzOjM5
WE1MSHR0cFJlcXVlc3QgY2Fubm90IGxvYWQgaHR0cDovL2xvY2FsaG9zdDo4MDAwL2luc3BlY3Rv
ci9yZXNvdXJjZXMveGhyLWV4aXN0cy5odG1sLiBPcmlnaW4gaHR0cDovLzEyNy4wLjAuMTo4MDAw
IGlzIG5vdCBhbGxvd2VkIGJ5IEFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbi4KIApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay1wcmVmbGlnaHQt
b3B0aW9ucy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9u
ZXR3b3JrLXByZWZsaWdodC1vcHRpb25zLWV4cGVjdGVkLnR4dAppbmRleCA4NDZlNmU2NWNkOTA0
MGY4NDcyYmE4NWY2YmUwM2NkNGU1NmMxOThmLi43NjgwYWM0MzEyZWEzMjgxYjNlOWY4NDRjMTFk
MDMyOThhZTg0YmMzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rv
ci9uZXR3b3JrLXByZWZsaWdodC1vcHRpb25zLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrLXByZWZsaWdodC1vcHRpb25zLWV4cGVjdGVk
LnR4dApAQCAtMSw3ICsxLDcgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxOiBYTUxIdHRwUmVx
dWVzdCBjYW5ub3QgbG9hZCBodHRwOi8vbG9jYWxob3N0OjgwMDAvaW5zcGVjdG9yL3Jlc291cmNl
cy9jb3JzLXRhcmdldC5waHA/ZGVueT15ZXMuIE9yaWdpbiBodHRwOi8vMTI3LjAuMC4xOjgwMDAg
aXMgbm90IGFsbG93ZWQgYnkgQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luLgotQ09OU09MRSBN
RVNTQUdFOiBsaW5lIDE6IFhNTEh0dHBSZXF1ZXN0IGNhbm5vdCBsb2FkIGh0dHA6Ly9sb2NhbGhv
c3Q6ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2VzL2NvcnMtdGFyZ2V0LnBocD9kZW55PXllcy4gT3Jp
Z2luIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMCBpcyBub3QgYWxsb3dlZCBieSBBY2Nlc3MtQ29udHJv
bC1BbGxvdy1PcmlnaW4uCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTogWE1MSHR0cFJlcXVlc3Qg
Y2Fubm90IGxvYWQgaHR0cDovL2xvY2FsaG9zdDo4MDAwL2luc3BlY3Rvci9yZXNvdXJjZXMvY29y
cy10YXJnZXQucGhwP2Rlbnk9eWVzLiBPcmlnaW4gaHR0cDovLzEyNy4wLjAuMTo4MDAwIGlzIG5v
dCBhbGxvd2VkIGJ5IEFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbi4KLUNPTlNPTEUgTUVTU0FH
RTogbGluZSAxOiBYTUxIdHRwUmVxdWVzdCBjYW5ub3QgbG9hZCBodHRwOi8vbG9jYWxob3N0Ojgw
MDAvaW5zcGVjdG9yL3Jlc291cmNlcy9jb3JzLXRhcmdldC5waHA/ZGVueT15ZXMuIE9yaWdpbiBo
dHRwOi8vMTI3LjAuMC4xOjgwMDAgaXMgbm90IGFsbG93ZWQgYnkgQWNjZXNzLUNvbnRyb2wtQWxs
b3ctT3JpZ2luLgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDIwOiBYTUxIdHRwUmVxdWVzdCBjYW5u
b3QgbG9hZCBodHRwOi8vbG9jYWxob3N0OjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlcy9jb3JzLXRh
cmdldC5waHA/ZGVueT15ZXMuIE9yaWdpbiBodHRwOi8vMTI3LjAuMC4xOjgwMDAgaXMgbm90IGFs
bG93ZWQgYnkgQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luLgorQ09OU09MRSBNRVNTQUdFOiBs
aW5lIDIwOiBYTUxIdHRwUmVxdWVzdCBjYW5ub3QgbG9hZCBodHRwOi8vbG9jYWxob3N0OjgwMDAv
aW5zcGVjdG9yL3Jlc291cmNlcy9jb3JzLXRhcmdldC5waHA/ZGVueT15ZXMuIE9yaWdpbiBodHRw
Oi8vMTI3LjAuMC4xOjgwMDAgaXMgbm90IGFsbG93ZWQgYnkgQWNjZXNzLUNvbnRyb2wtQWxsb3ct
T3JpZ2luLgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDIwOiBYTUxIdHRwUmVxdWVzdCBjYW5ub3Qg
bG9hZCBodHRwOi8vbG9jYWxob3N0OjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlcy9jb3JzLXRhcmdl
dC5waHA/ZGVueT15ZXMuIE9yaWdpbiBodHRwOi8vMTI3LjAuMC4xOjgwMDAgaXMgbm90IGFsbG93
ZWQgYnkgQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luLgorQ09OU09MRSBNRVNTQUdFOiBsaW5l
IDIwOiBYTUxIdHRwUmVxdWVzdCBjYW5ub3QgbG9hZCBodHRwOi8vbG9jYWxob3N0OjgwMDAvaW5z
cGVjdG9yL3Jlc291cmNlcy9jb3JzLXRhcmdldC5waHA/ZGVueT15ZXMuIE9yaWdpbiBodHRwOi8v
MTI3LjAuMC4xOjgwMDAgaXMgbm90IGFsbG93ZWQgYnkgQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3Jp
Z2luLgogVGVzdHMgdGhhdCBwcmVmbGlnaHQgT1BUSU9OUyByZXF1ZXN0cyBhcHBlYXIgaW4gTmV0
d29yayByZXNvdXJjZXMKIAogQnVnIDYzNzEyCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>116627</attachid>
            <date>2011-11-25 08:28:19 -0800</date>
            <delta_ts>2011-11-30 05:07:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73099-20111125202816.patch</filename>
            <type>text/plain</type>
            <size>24654</size>
            <attacher name="Vsevolod Vlasov">vsevik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAxMTYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjM4MDVlMDhmMWFjMmVh
ZTE5NWVkYjg1OWU5NTdiMDkxNmJkZjgxNC4uNzk4ZGI2MDI4MDAwMTQ5NWZlY2Q4ZGY1MjdmMDk3
ZGQ5YjUzNmI1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDExLTExLTI1ICBWc2V2
b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IFVuc2FmZSBjcm9zcyBvcmlnaW4gYWNjZXNzIGVycm9ycyBzaG91bGQgc2hvdyBzdGFjayB0
cmFjZSBpbiBjb25zb2xlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NzMwOTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBUZXN0OiBodHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLWNyb3NzLW9yaWdpbi1p
ZnJhbWUtbG9nZ2luZy5odG1sCisKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOFByb3h5LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OmFkZE1lc3NhZ2VUb0NvbnNvbGUpOgorICAgICAgICAoV2ViQ29y
ZTo6bG9nSW5mbyk6CisgICAgICAgIChXZWJDb3JlOjpWOFByb3h5OjpyZXBvcnRVbnNhZmVBY2Nl
c3NUbyk6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkZyYW1lTG9hZGVyOjpzaG91bGRBbGxvd05hdmlnYXRpb24pOgorICAgICAgICAqIHBhZ2Uv
RE9NV2luZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBvc3RNZXNzYWdlVGltZXI6OlBvc3RN
ZXNzYWdlVGltZXIpOgorICAgICAgICAoV2ViQ29yZTo6UG9zdE1lc3NhZ2VUaW1lcjo6c3RhY2tU
cmFjZSk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OnBvc3RNZXNzYWdlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6cG9zdE1lc3NhZ2VUaW1lckZpcmVkKToKKyAgICAgICAg
KFdlYkNvcmU6OkRPTVdpbmRvdzo6cHJpbnRFcnJvck1lc3NhZ2UpOgorICAgICAgICAqIHhtbC9Y
TUxIdHRwUmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6WE1M
SHR0cFJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6OmluaXRTZW5k
KToKKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0OjpyZXBvcnRVbnNhZmVVc2FnZSk6
CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6c2V0UmVxdWVzdEhlYWRlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6Z2V0UmVzcG9uc2VIZWFkZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6OmRpZEZhaWwpOgorICAgICAgICAoV2ViQ29y
ZTo6WE1MSHR0cFJlcXVlc3Q6OmRpZEZpbmlzaExvYWRpbmcpOgorICAgICAgICAqIHhtbC9YTUxI
dHRwUmVxdWVzdC5oOgorCiAyMDExLTExLTI1ICBXZWkgQ2hhcmxlcyAgPGNoYXJsZXMud2VpQHRv
cmNobW9iaWxlLmNvbS5jbj4KIAogICAgICAgICBVcHN0cmVhbSB0aGUgUU5YL1JJTSBzcGVjaWZp
YyBIaXN0b3J5SXRlbVZpZXdTdGF0ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvVjhQcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFByb3h5LmNw
cAppbmRleCA4ZmZkMWMxYmZjODQ5YzYzZWNhNGNmMzg3Mjk0MzNmNDNhNjViYjE3Li45NmY3NDBi
NTliNTEwYTc0YzQyMmQ5MzJhM2U4M2Q3N2UyNWNlZjNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9WOFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9WOFByb3h5LmNwcApAQCAtNDYsNiArNDYsOCBAQAogI2luY2x1ZGUgIkluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN1
cHBvcnQuaCIKKyNpbmNsdWRlICJTY3JpcHRDYWxsU3RhY2suaCIKKyNpbmNsdWRlICJTY3JpcHRD
YWxsU3RhY2tGYWN0b3J5LmgiCiAjaW5jbHVkZSAiU2NyaXB0U291cmNlQ29kZS5oIgogI2luY2x1
ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKQEAgLTEyMCwxMSAr
MTIyLDExIEBAIHR5cGVkZWYgSGFzaE1hcDxOb2RlKiwgdjg6Ok9iamVjdCo+IERPTU5vZGVNYXA7
CiB0eXBlZGVmIEhhc2hNYXA8dm9pZCosIHY4OjpPYmplY3QqPiBET01PYmplY3RNYXA7CiB0eXBl
ZGVmIEhhc2hNYXA8aW50LCB2ODo6RnVuY3Rpb25UZW1wbGF0ZSo+IEZ1bmN0aW9uVGVtcGxhdGVN
YXA7CiAKLXN0YXRpYyB2b2lkIGFkZE1lc3NhZ2VUb0NvbnNvbGUoUGFnZSogcGFnZSwgY29uc3Qg
U3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZUlELCB1bnNpZ25lZCBsaW5lTnVt
YmVyKQorc3RhdGljIHZvaWQgYWRkTWVzc2FnZVRvQ29uc29sZShQYWdlKiBwYWdlLCBjb25zdCBT
dHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgc291cmNlSUQsIHVuc2lnbmVkIGxpbmVOdW1i
ZXIsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBzdGFja1RyYWNlKQogewogICAgIEFTU0VS
VChwYWdlKTsKICAgICBDb25zb2xlKiBjb25zb2xlID0gcGFnZS0+bWFpbkZyYW1lKCktPmRvbVdp
bmRvdygpLT5jb25zb2xlKCk7Ci0gICAgY29uc29sZS0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3Vy
Y2UsIExvZ01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgbWVzc2FnZSwgbGluZU51bWJl
ciwgc291cmNlSUQpOworICAgIGNvbnNvbGUtPmFkZE1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBM
b2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsIG1lc3NhZ2UsIGxpbmVOdW1iZXIsIHNv
dXJjZUlELCBzdGFja1RyYWNlKTsKIH0KIAogdm9pZCBsb2dJbmZvKEZyYW1lKiBmcmFtZSwgY29u
c3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHVybCkKQEAgLTEzMiw3ICsxMzQsNyBA
QCB2b2lkIGxvZ0luZm8oRnJhbWUqIGZyYW1lLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0
IFN0cmluZyYgdXJsKQogICAgIFBhZ2UqIHBhZ2UgPSBmcmFtZS0+cGFnZSgpOwogICAgIGlmICgh
cGFnZSkKICAgICAgICAgcmV0dXJuOwotICAgIGFkZE1lc3NhZ2VUb0NvbnNvbGUocGFnZSwgbWVz
c2FnZSwgdXJsLCAwKTsKKyAgICBhZGRNZXNzYWdlVG9Db25zb2xlKHBhZ2UsIG1lc3NhZ2UsIHVy
bCwgMCwgMCk7CiB9CiAKIHZvaWQgVjhQcm94eTo6cmVwb3J0VW5zYWZlQWNjZXNzVG8oRnJhbWUq
IHRhcmdldCkKQEAgLTE2MiwxMCArMTY0LDEyIEBAIHZvaWQgVjhQcm94eTo6cmVwb3J0VW5zYWZl
QWNjZXNzVG8oRnJhbWUqIHRhcmdldCkKICAgICBjb25zdCBTdHJpbmcga1NvdXJjZUlEID0gIiI7
CiAgICAgY29uc3QgaW50IGtMaW5lTnVtYmVyID0gMTsKIAorICAgIFJlZlB0cjxTY3JpcHRDYWxs
U3RhY2s+IHN0YWNrVHJhY2UgPSBjcmVhdGVTY3JpcHRDYWxsU3RhY2soU2NyaXB0Q2FsbFN0YWNr
OjptYXhDYWxsU3RhY2tTaXplVG9DYXB0dXJlLCB0cnVlKTsKKwogICAgIC8vIE5PVEU6IFNhZmFy
aSBwcmludHMgdGhlIG1lc3NhZ2UgaW4gdGhlIHRhcmdldCBwYWdlLCBidXQgaXQgc2VlbXMgbGlr
ZQogICAgIC8vIGl0IHNob3VsZCBiZSBpbiB0aGUgc291cmNlIHBhZ2UuIEV2ZW4gZm9yIGRlbGF5
ZWQgbWVzc2FnZXMsIHdlIHB1dCBpdCBpbgogICAgIC8vIHRoZSBzb3VyY2UgcGFnZS4KLSAgICBh
ZGRNZXNzYWdlVG9Db25zb2xlKHBhZ2UsIHN0ciwga1NvdXJjZUlELCBrTGluZU51bWJlcik7Cisg
ICAgYWRkTWVzc2FnZVRvQ29uc29sZShwYWdlLCBzdHIsIGtTb3VyY2VJRCwga0xpbmVOdW1iZXIs
IHN0YWNrVHJhY2UpOwogfQogCiBzdGF0aWMgdm9pZCBoYW5kbGVGYXRhbEVycm9ySW5WOCgpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRleCAxNTg5MzhlYzQ4NGUyZmYwM2I5
YTIyYTU0ZDVhZWI0ZDJiMWZjOTg3Li43NzkyYzk5OGVlMWI3MmY2NjJjZDIyYmMyMTg2NGZhODUy
NjlhNmU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKQEAgLTg2LDkgKzg2
LDExIEBACiAjaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGUuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJl
cXVlc3QuaCIKICNpbmNsdWRlICJTY2hlbWVSZWdpc3RyeS5oIgotI2luY2x1ZGUgIlNjcm9sbEFu
aW1hdG9yLmgiCisjaW5jbHVkZSAiU2NyaXB0Q2FsbFN0YWNrLmgiCisjaW5jbHVkZSAiU2NyaXB0
Q2FsbFN0YWNrRmFjdG9yeS5oIgogI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKICNpbmNs
dWRlICJTY3JpcHRTb3VyY2VDb2RlLmgiCisjaW5jbHVkZSAiU2Nyb2xsQW5pbWF0b3IuaCIKICNp
bmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlNlY3VyaXR5UG9saWN5LmgiCiAj
aW5jbHVkZSAiU2VnbWVudGVkU3RyaW5nLmgiCkBAIC0xNTYzLDggKzE1NjUsMTAgQEAgYm9vbCBG
cmFtZUxvYWRlcjo6c2hvdWxkQWxsb3dOYXZpZ2F0aW9uKEZyYW1lKiB0YXJnZXRGcmFtZSkgY29u
c3QKICAgICAgICAgU3RyaW5nIG1lc3NhZ2UgPSAiVW5zYWZlIEphdmFTY3JpcHQgYXR0ZW1wdCB0
byBpbml0aWF0ZSBhIG5hdmlnYXRpb24gY2hhbmdlIGZvciBmcmFtZSB3aXRoIFVSTCAiICsKICAg
ICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXREb2N1bWVudC0+dXJsKCkuc3RyaW5nKCkgKyAi
IGZyb20gZnJhbWUgd2l0aCBVUkwgIiArIGFjdGl2ZURvY3VtZW50LT51cmwoKS5zdHJpbmcoKSAr
ICIuXG4iOwogCisgICAgICAgIFJlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IHN0YWNrVHJhY2UgPSBj
cmVhdGVTY3JpcHRDYWxsU3RhY2soU2NyaXB0Q2FsbFN0YWNrOjptYXhDYWxsU3RhY2tTaXplVG9D
YXB0dXJlLCB0cnVlKTsKKwogICAgICAgICAvLyBGSVhNRTogc2hvdWxkIHdlIHByaW50IHRvIHRo
ZSBjb25zb2xlIG9mIHRoZSBhY3RpdmVGcmFtZSBhcyB3ZWxsPwotICAgICAgICB0YXJnZXRGcmFt
ZS0+ZG9tV2luZG93KCktPmNvbnNvbGUoKS0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIExv
Z01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgbWVzc2FnZSwgMSwgU3RyaW5nKCkpOwor
ICAgICAgICB0YXJnZXRGcmFtZS0+ZG9tV2luZG93KCktPmNvbnNvbGUoKS0+YWRkTWVzc2FnZShK
U01lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgbWVzc2Fn
ZSwgMSwgU3RyaW5nKCksIHN0YWNrVHJhY2UpOwogICAgIH0KICAgICAKICAgICByZXR1cm4gZmFs
c2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKaW5kZXggOTU5OWU4ZDZiYTNiYzY0Njk5Yjhj
NWE3OGM0MzRlM2I3NzM1YzA1NS4uODdjZWUxZjU4MjAxODdiNjIxYjg0MjQ2YzQzYjI5Y2VkMTAz
NDY2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcApAQCAtODEsNiArODEsOCBAQAogI2lu
Y2x1ZGUgIlBsYXRmb3JtU2NyZWVuLmgiCiAjaW5jbHVkZSAiU2NoZWR1bGVkQWN0aW9uLmgiCiAj
aW5jbHVkZSAiU2NyZWVuLmgiCisjaW5jbHVkZSAiU2NyaXB0Q2FsbFN0YWNrLmgiCisjaW5jbHVk
ZSAiU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgi
CiAjaW5jbHVkZSAiU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3Mu
aCIKQEAgLTEyMSwxMyArMTIzLDE0IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgUG9z
dE1lc3NhZ2VUaW1lciA6IHB1YmxpYyBUaW1lckJhc2UgewogcHVibGljOgotICAgIFBvc3RNZXNz
YWdlVGltZXIoRE9NV2luZG93KiB3aW5kb3csIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZh
bHVlPiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZU9yaWdpbiwgUGFzc1JlZlB0cjxET01X
aW5kb3c+IHNvdXJjZSwgUGFzc093blB0cjxNZXNzYWdlUG9ydENoYW5uZWxBcnJheT4gY2hhbm5l
bHMsIFNlY3VyaXR5T3JpZ2luKiB0YXJnZXRPcmlnaW4pCisgICAgUG9zdE1lc3NhZ2VUaW1lcihE
T01XaW5kb3cqIHdpbmRvdywgUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IG1lc3Nh
Z2UsIGNvbnN0IFN0cmluZyYgc291cmNlT3JpZ2luLCBQYXNzUmVmUHRyPERPTVdpbmRvdz4gc291
cmNlLCBQYXNzT3duUHRyPE1lc3NhZ2VQb3J0Q2hhbm5lbEFycmF5PiBjaGFubmVscywgU2VjdXJp
dHlPcmlnaW4qIHRhcmdldE9yaWdpbiwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IHN0YWNr
VHJhY2UpCiAgICAgICAgIDogbV93aW5kb3cod2luZG93KQogICAgICAgICAsIG1fbWVzc2FnZSht
ZXNzYWdlKQogICAgICAgICAsIG1fb3JpZ2luKHNvdXJjZU9yaWdpbikKICAgICAgICAgLCBtX3Nv
dXJjZShzb3VyY2UpCiAgICAgICAgICwgbV9jaGFubmVscyhjaGFubmVscykKICAgICAgICAgLCBt
X3RhcmdldE9yaWdpbih0YXJnZXRPcmlnaW4pCisgICAgICAgICwgbV9zdGFja1RyYWNlKHN0YWNr
VHJhY2UpCiAgICAgewogICAgIH0KIApAQCAtMTM3LDYgKzE0MCw3IEBAIHB1YmxpYzoKICAgICAg
ICAgcmV0dXJuIE1lc3NhZ2VFdmVudDo6Y3JlYXRlKG1lc3NhZ2VQb3J0cy5yZWxlYXNlKCksIG1f
bWVzc2FnZSwgbV9vcmlnaW4sICIiLCBtX3NvdXJjZSk7CiAgICAgfQogICAgIFNlY3VyaXR5T3Jp
Z2luKiB0YXJnZXRPcmlnaW4oKSBjb25zdCB7IHJldHVybiBtX3RhcmdldE9yaWdpbi5nZXQoKTsg
fQorICAgIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBzdGFja1RyYWNlKCkgY29uc3QgeyBy
ZXR1cm4gbV9zdGFja1RyYWNlOyB9CiAKIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGZpcmVk
KCkKQEAgLTE1MSw2ICsxNTUsNyBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxET01XaW5kb3c+IG1f
c291cmNlOwogICAgIE93blB0cjxNZXNzYWdlUG9ydENoYW5uZWxBcnJheT4gbV9jaGFubmVsczsK
ICAgICBSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IG1fdGFyZ2V0T3JpZ2luOworICAgIFJlZlB0cjxT
Y3JpcHRDYWxsU3RhY2s+IG1fc3RhY2tUcmFjZTsKIH07CiAKIHR5cGVkZWYgSGFzaENvdW50ZWRT
ZXQ8RE9NV2luZG93Kj4gRE9NV2luZG93U2V0OwpAQCAtODk3LDggKzkwMiwxMyBAQCB2b2lkIERP
TVdpbmRvdzo6cG9zdE1lc3NhZ2UoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IG1l
c3NhZ2UsIGNvbnN0IE1lcwogICAgICAgICByZXR1cm47CiAgICAgU3RyaW5nIHNvdXJjZU9yaWdp
biA9IHNvdXJjZURvY3VtZW50LT5zZWN1cml0eU9yaWdpbigpLT50b1N0cmluZygpOwogCisgICAg
Ly8gQ2FwdHVyZSBzdGFjayB0cmFjZSBvbmx5IHdoZW4gaW5zcGVjdG9yIGZyb250LWVuZCBpcyBs
b2FkZWQgYXMgaXQgbWF5IGJlIHRpbWUgY29uc3VtaW5nLgorICAgIFJlZlB0cjxTY3JpcHRDYWxs
U3RhY2s+IHN0YWNrVHJhY2U7CisgICAgaWYgKEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6aGFz
RnJvbnRlbmRzKCkpCisgICAgICAgIHN0YWNrVHJhY2UgPSBjcmVhdGVTY3JpcHRDYWxsU3RhY2so
U2NyaXB0Q2FsbFN0YWNrOjptYXhDYWxsU3RhY2tTaXplVG9DYXB0dXJlLCB0cnVlKTsKKwogICAg
IC8vIFNjaGVkdWxlIHRoZSBtZXNzYWdlLgotICAgIFBvc3RNZXNzYWdlVGltZXIqIHRpbWVyID0g
bmV3IFBvc3RNZXNzYWdlVGltZXIodGhpcywgbWVzc2FnZSwgc291cmNlT3JpZ2luLCBzb3VyY2Us
IGNoYW5uZWxzLnJlbGVhc2UoKSwgdGFyZ2V0LmdldCgpKTsKKyAgICBQb3N0TWVzc2FnZVRpbWVy
KiB0aW1lciA9IG5ldyBQb3N0TWVzc2FnZVRpbWVyKHRoaXMsIG1lc3NhZ2UsIHNvdXJjZU9yaWdp
biwgc291cmNlLCBjaGFubmVscy5yZWxlYXNlKCksIHRhcmdldC5nZXQoKSwgc3RhY2tUcmFjZSk7
CiAgICAgdGltZXItPnN0YXJ0T25lU2hvdCgwKTsKIH0KIApAQCAtOTEyLDkgKzkyMiwxMCBAQCB2
b2lkIERPTVdpbmRvdzo6cG9zdE1lc3NhZ2VUaW1lckZpcmVkKFBhc3NPd25QdHI8UG9zdE1lc3Nh
Z2VUaW1lcj4gdCkKICAgICBpZiAodGltZXItPnRhcmdldE9yaWdpbigpKSB7CiAgICAgICAgIC8v
IENoZWNrIHRhcmdldCBvcmlnaW4gbm93IHNpbmNlIHRoZSB0YXJnZXQgZG9jdW1lbnQgbWF5IGhh
dmUgY2hhbmdlZCBzaW5jZSB0aGUgc2ltZXIgd2FzIHNjaGVkdWxlZC4KICAgICAgICAgaWYgKCF0
aW1lci0+dGFyZ2V0T3JpZ2luKCktPmlzU2FtZVNjaGVtZUhvc3RQb3J0KGRvY3VtZW50KCktPnNl
Y3VyaXR5T3JpZ2luKCkpKSB7CisgICAgICAgICAgICBSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBz
dGFja1RyYWNlID0gdGltZXItPnN0YWNrVHJhY2UoKTsKICAgICAgICAgICAgIFN0cmluZyBtZXNz
YWdlID0gIlVuYWJsZSB0byBwb3N0IG1lc3NhZ2UgdG8gIiArIHRpbWVyLT50YXJnZXRPcmlnaW4o
KS0+dG9TdHJpbmcoKSArCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIuIFJlY2lwaWVu
dCBoYXMgb3JpZ2luICIgKyBkb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLT50b1N0cmluZygp
ICsgIi5cbiI7Ci0gICAgICAgICAgICBjb25zb2xlKCktPmFkZE1lc3NhZ2UoSlNNZXNzYWdlU291
cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsIG1lc3NhZ2UsIDAsIFN0cmlu
ZygpKTsKKyAgICAgICAgICAgIGNvbnNvbGUoKS0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2Us
IExvZ01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgbWVzc2FnZSwgMCwgU3RyaW5nKCks
IHRpbWVyLT5zdGFja1RyYWNlKCkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAg
ICAgfQpAQCAtMTc2Myw3ICsxNzc0LDggQEAgdm9pZCBET01XaW5kb3c6OnByaW50RXJyb3JNZXNz
YWdlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8gRklY
TUU6IEFkZCBhcmd1bWVudHMgc28gdGhhdCB3ZSBjYW4gcHJvdmlkZSBhIGNvcnJlY3Qgc291cmNl
IFVSTCBhbmQgbGluZSBudW1iZXIuCi0gICAgY29uc29sZSgpLT5hZGRNZXNzYWdlKEpTTWVzc2Fn
ZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIEVycm9yTWVzc2FnZUxldmVsLCBtZXNzYWdlLCAxLCBT
dHJpbmcoKSk7CisgICAgUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gc3RhY2tUcmFjZSA9IGNyZWF0
ZVNjcmlwdENhbGxTdGFjayhTY3JpcHRDYWxsU3RhY2s6Om1heENhbGxTdGFja1NpemVUb0NhcHR1
cmUsIHRydWUpOworICAgIGNvbnNvbGUoKS0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIExv
Z01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgbWVzc2FnZSwgMSwgU3RyaW5nKCksIHN0
YWNrVHJhY2UpOwogfQogCiBTdHJpbmcgRE9NV2luZG93Ojpjcm9zc0RvbWFpbkFjY2Vzc0Vycm9y
TWVzc2FnZShET01XaW5kb3cqIGFjdGl2ZVdpbmRvdykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJl
cXVlc3QuY3BwCmluZGV4IDZjNDhhZmQ3NDg4OTA1MzAyM2M0M2E4YWQ5ZGJjN2E4ZGY4NTRjOTYu
Ljg5NjIxNWExOTJmOWE2M2EwZWQ0MTkwZjg0NzY1MDk5OWRkN2IxMTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
eG1sL1hNTEh0dHBSZXF1ZXN0LmNwcApAQCAtNDIsNiArNDIsNyBAQAogI2luY2x1ZGUgIlJlc291
cmNlRXJyb3IuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJTY3Jp
cHRDYWxsU3RhY2suaCIKKyNpbmNsdWRlICJTY3JpcHRDYWxsU3RhY2tGYWN0b3J5LmgiCiAjaW5j
bHVkZSAiU2NyaXB0UHJvZmlsZS5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5j
bHVkZSAiU2V0dGluZ3MuaCIKQEAgLTE1OSw4ICsxNjAsOSBAQCBYTUxIdHRwUmVxdWVzdDo6WE1M
SHR0cFJlcXVlc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxT
ZWN1cgogICAgICwgbV91cGxvYWRDb21wbGV0ZShmYWxzZSkKICAgICAsIG1fc2FtZU9yaWdpblJl
cXVlc3QodHJ1ZSkKICAgICAsIG1fcmVjZWl2ZWRMZW5ndGgoMCkKLSAgICAsIG1fbGFzdFNlbmRM
aW5lTnVtYmVyKDApCisgICAgLCBtX2xhc3RTZW5kTGluZU51bWJlcigxKQogICAgICwgbV9leGNl
cHRpb25Db2RlKDApCisgICAgLCBtX3N0YWNrVHJhY2UoMCkKICAgICAsIG1fcHJvZ3Jlc3NFdmVu
dFRocm90dGxlKHRoaXMpCiAgICAgLCBtX3Jlc3BvbnNlVHlwZUNvZGUoUmVzcG9uc2VUeXBlRGVm
YXVsdCkKICAgICAsIG1fc2VjdXJpdHlPcmlnaW4oc2VjdXJpdHlPcmlnaW4pCkBAIC00NzUsNiAr
NDc3LDExIEBAIGJvb2wgWE1MSHR0cFJlcXVlc3Q6OmluaXRTZW5kKEV4Y2VwdGlvbkNvZGUmIGVj
KQogICAgIH0KIAogICAgIG1fZXJyb3IgPSBmYWxzZTsKKworICAgIC8vIENhcHR1cmUgc3RhY2sg
dHJhY2Ugb25seSB3aGVuIGluc3BlY3RvciBmcm9udC1lbmQgaXMgbG9hZGVkIGFzIGl0IG1heSBi
ZSB0aW1lIGNvbnN1bWluZy4KKyAgICBpZiAoSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpoYXNG
cm9udGVuZHMoKSkKKyAgICAgICAgbV9zdGFja1RyYWNlID0gY3JlYXRlU2NyaXB0Q2FsbFN0YWNr
KFNjcmlwdENhbGxTdGFjazo6bWF4Q2FsbFN0YWNrU2l6ZVRvQ2FwdHVyZSwgdHJ1ZSk7CisKICAg
ICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtODA4LDEzICs4MTUsMTMgQEAgdm9pZCBYTUxIdHRwUmVx
dWVzdDo6b3ZlcnJpZGVNaW1lVHlwZShjb25zdCBTdHJpbmcmIG92ZXJyaWRlKQogICAgIG1fbWlt
ZVR5cGVPdmVycmlkZSA9IG92ZXJyaWRlOwogfQogCi1zdGF0aWMgdm9pZCByZXBvcnRVbnNhZmVV
c2FnZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIG1lc3Nh
Z2UpCit2b2lkIFhNTEh0dHBSZXF1ZXN0OjpyZXBvcnRVbnNhZmVVc2FnZShjb25zdCBTdHJpbmcm
IG1lc3NhZ2UpIGNvbnN0CiB7CisgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCA9
IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKICAgICBpZiAoIWNvbnRleHQpCiAgICAgICAgIHJl
dHVybjsKLSAgICAvLyBGSVhNRTogSXQncyBub3QgZ29vZCB0byByZXBvcnQgdGhlIGJhZCB1c2Fn
ZSB3aXRob3V0IGluZGljYXRpbmcgd2hhdCBzb3VyY2UgbGluZSBpdCBjYW1lIGZyb20uCi0gICAg
Ly8gV2Ugc2hvdWxkIHBhc3MgYWRkaXRpb25hbCBwYXJhbWV0ZXJzIHNvIHdlIGNhbiB0ZWxsIHRo
ZSBjb25zb2xlIHdoZXJlIHRoZSBtaXN0YWtlIG9jY3VycmVkLgotICAgIGNvbnRleHQtPmFkZENv
bnNvbGVNZXNzYWdlKEpTTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIEVycm9yTWVzc2Fn
ZUxldmVsLCBtZXNzYWdlKTsKKworICAgIGNvbnRleHQtPmFkZE1lc3NhZ2UoSlNNZXNzYWdlU291
cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsIG1lc3NhZ2UsIG1fbGFzdFNl
bmRMaW5lTnVtYmVyLCBtX2xhc3RTZW5kVVJMLCBtX3N0YWNrVHJhY2UpOwogfQogCiB2b2lkIFhN
TEh0dHBSZXF1ZXN0OjpzZXRSZXF1ZXN0SGVhZGVyKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwg
Y29uc3QgU3RyaW5nJiB2YWx1ZSwgRXhjZXB0aW9uQ29kZSYgZWMpCkBAIC04MzYsNyArODQzLDcg
QEAgdm9pZCBYTUxIdHRwUmVxdWVzdDo6c2V0UmVxdWVzdEhlYWRlcihjb25zdCBBdG9taWNTdHJp
bmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmEKIAogICAgIC8vIEEgcHJpdmlsZWdlZCBzY3JpcHQg
KGUuZy4gYSBEYXNoYm9hcmQgd2lkZ2V0KSBjYW4gc2V0IGFueSBoZWFkZXJzLgogICAgIGlmICgh
c2VjdXJpdHlPcmlnaW4oKS0+Y2FuTG9hZExvY2FsUmVzb3VyY2VzKCkgJiYgIWlzQWxsb3dlZEhU
VFBIZWFkZXIobmFtZSkpIHsKLSAgICAgICAgcmVwb3J0VW5zYWZlVXNhZ2Uoc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpLCAiUmVmdXNlZCB0byBzZXQgdW5zYWZlIGhlYWRlciBcIiIgKyBuYW1lICsg
IlwiIik7CisgICAgICAgIHJlcG9ydFVuc2FmZVVzYWdlKCJSZWZ1c2VkIHRvIHNldCB1bnNhZmUg
aGVhZGVyIFwiIiArIG5hbWUgKyAiXCIiKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAt
ODk4LDEyICs5MDUsMTIgQEAgU3RyaW5nIFhNTEh0dHBSZXF1ZXN0OjpnZXRSZXNwb25zZUhlYWRl
cihjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIEV4Y2VwdGlvbkNvZGUKIAogICAgIC8vIFNlZSBj
b21tZW50IGluIGdldEFsbFJlc3BvbnNlSGVhZGVycyBhYm92ZS4KICAgICBpZiAoaXNTZXRDb29r
aWVIZWFkZXIobmFtZSkgJiYgIXNlY3VyaXR5T3JpZ2luKCktPmNhbkxvYWRMb2NhbFJlc291cmNl
cygpKSB7Ci0gICAgICAgIHJlcG9ydFVuc2FmZVVzYWdlKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KSwgIlJlZnVzZWQgdG8gZ2V0IHVuc2FmZSBoZWFkZXIgXCIiICsgbmFtZSArICJcIiIpOworICAg
ICAgICByZXBvcnRVbnNhZmVVc2FnZSgiUmVmdXNlZCB0byBnZXQgdW5zYWZlIGhlYWRlciBcIiIg
KyBuYW1lICsgIlwiIik7CiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKICAgICB9CiAKICAgICBp
ZiAoIW1fc2FtZU9yaWdpblJlcXVlc3QgJiYgIWlzT25BY2Nlc3NDb250cm9sUmVzcG9uc2VIZWFk
ZXJXaGl0ZWxpc3QobmFtZSkpIHsKLSAgICAgICAgcmVwb3J0VW5zYWZlVXNhZ2Uoc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpLCAiUmVmdXNlZCB0byBnZXQgdW5zYWZlIGhlYWRlciBcIiIgKyBuYW1l
ICsgIlwiIik7CisgICAgICAgIHJlcG9ydFVuc2FmZVVzYWdlKCJSZWZ1c2VkIHRvIGdldCB1bnNh
ZmUgaGVhZGVyIFwiIiArIG5hbWUgKyAiXCIiKTsKICAgICAgICAgcmV0dXJuIFN0cmluZygpOwog
ICAgIH0KICAgICByZXR1cm4gbV9yZXNwb25zZS5odHRwSGVhZGVyRmllbGQobmFtZSk7CkBAIC05
NzEsNyArOTc4LDcgQEAgdm9pZCBYTUxIdHRwUmVxdWVzdDo6ZGlkRmFpbChjb25zdCBSZXNvdXJj
ZUVycm9yJiBlcnJvcikKIAogICAgIC8vIE5ldHdvcmsgZmFpbHVyZXMgYXJlIGFscmVhZHkgcmVw
b3J0ZWQgdG8gV2ViIEluc3BlY3RvciBieSBSZXNvdXJjZUxvYWRlci4KICAgICBpZiAoZXJyb3Iu
ZG9tYWluKCkgPT0gZXJyb3JEb21haW5XZWJLaXRJbnRlcm5hbCkKLSAgICAgICAgcmVwb3J0VW5z
YWZlVXNhZ2Uoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCAiWE1MSHR0cFJlcXVlc3QgY2Fubm90
IGxvYWQgIiArIGVycm9yLmZhaWxpbmdVUkwoKSArICIuICIgKyBlcnJvci5sb2NhbGl6ZWREZXNj
cmlwdGlvbigpKTsKKyAgICAgICAgcmVwb3J0VW5zYWZlVXNhZ2UoIlhNTEh0dHBSZXF1ZXN0IGNh
bm5vdCBsb2FkICIgKyBlcnJvci5mYWlsaW5nVVJMKCkgKyAiLiAiICsgZXJyb3IubG9jYWxpemVk
RGVzY3JpcHRpb24oKSk7CiAKICAgICBtX2V4Y2VwdGlvbkNvZGUgPSBYTUxIdHRwUmVxdWVzdEV4
Y2VwdGlvbjo6TkVUV09SS19FUlI7CiAgICAgbmV0d29ya0Vycm9yKCk7CkBAIC05OTgsNyArMTAw
NSw2IEBAIHZvaWQgWE1MSHR0cFJlcXVlc3Q6OmRpZEZpbmlzaExvYWRpbmcodW5zaWduZWQgbG9u
ZyBpZGVudGlmaWVyLCBkb3VibGUpCiAjaWYgRU5BQkxFKFhIUl9SRVNQT05TRV9CTE9CKQogICAg
IC8vIEZJWE1FOiBTZXQgbV9yZXNwb25zZUJsb2IgdG8gc29tZXRoaW5nIGhlcmUgaW4gdGhlIFJl
c3BvbnNlVHlwZUJsb2IgY2FzZS4KICNlbmRpZgotCiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uOjpyZXNvdXJjZVJldHJpZXZlZEJ5WE1MSHR0cFJlcXVlc3Qoc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpLCBpZGVudGlmaWVyLCBtX3Jlc3BvbnNlQnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2Fw
YWNpdHkoKSwgbV91cmwsIG1fbGFzdFNlbmRVUkwsIG1fbGFzdFNlbmRMaW5lTnVtYmVyKTsKIAog
ICAgIGJvb2wgaGFkTG9hZGVyID0gbV9sb2FkZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS94bWwvWE1MSHR0cFJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVz
dC5oCmluZGV4IDY3MTkyNWUzNzBmZDI5MzkxYmJhN2JjMzQzMmM2MTcxZmI1NTgyMDAuLjkwNWJm
ZjhhMTViNjI1ZWI5NmMzZDdkYzk0MTBlY2UzYjhmOTY1NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxI
dHRwUmVxdWVzdC5oCkBAIC00MCw2ICs0MCw3IEBAIGNsYXNzIEJsb2I7CiBjbGFzcyBEb2N1bWVu
dDsKIGNsYXNzIERPTUZvcm1EYXRhOwogY2xhc3MgUmVzb3VyY2VSZXF1ZXN0OworY2xhc3MgU2Ny
aXB0Q2FsbFN0YWNrOwogY2xhc3MgU2VjdXJpdHlPcmlnaW47CiBjbGFzcyBTaGFyZWRCdWZmZXI7
CiBjbGFzcyBUZXh0UmVzb3VyY2VEZWNvZGVyOwpAQCAtMTgzLDYgKzE4NCw4IEBAIHByaXZhdGU6
CiAgICAgdm9pZCBuZXR3b3JrRXJyb3IoKTsKICAgICB2b2lkIGFib3J0RXJyb3IoKTsKIAorICAg
IHZvaWQgcmVwb3J0VW5zYWZlVXNhZ2UoY29uc3QgU3RyaW5nJiBtZXNzYWdlKSBjb25zdDsKKwog
ICAgIE93blB0cjxYTUxIdHRwUmVxdWVzdFVwbG9hZD4gbV91cGxvYWQ7CiAKICAgICBLVVJMIG1f
dXJsOwpAQCAtMjI0LDYgKzIyNyw3IEBAIHByaXZhdGU6CiAgICAgdW5zaWduZWQgbV9sYXN0U2Vu
ZExpbmVOdW1iZXI7CiAgICAgU3RyaW5nIG1fbGFzdFNlbmRVUkw7CiAgICAgRXhjZXB0aW9uQ29k
ZSBtX2V4Y2VwdGlvbkNvZGU7CisgICAgUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gbV9zdGFja1Ry
YWNlOwogCiAgICAgRXZlbnRUYXJnZXREYXRhIG1fZXZlbnRUYXJnZXREYXRhOwogCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
OTdhYTVhMGI4MWEzZmU2NmMwMzE1YjRmOGQ3YWE3ZmNlNTBlNjU2YS4uMmZjZmE5ODg4NDcwZjA2
ZTA4ZmY5ZTE2ZTJjZTgzMTQ1MmMyNTdlYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDExLTEx
LTI1ICBWc2V2b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdl
YiBJbnNwZWN0b3I6IFVuc2FmZSBjcm9zcyBvcmlnaW4gYWNjZXNzIGVycm9ycyBzaG91bGQgc2hv
dyBzdGFjayB0cmFjZSBpbiBjb25zb2xlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NzMwOTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtY3Jvc3Mtb3Jp
Z2luLWlmcmFtZS1sb2dnaW5nLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90
ZXN0cy9pbnNwZWN0b3IvY29uc29sZS1jcm9zcy1vcmlnaW4taWZyYW1lLWxvZ2dpbmcuaHRtbDog
QWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2Nyb3NzLW9y
aWdpbi1pZnJhbWUuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vaHR0
cC90ZXN0cy9pbnNwZWN0b3IvY29uc29sZS1jcm9zcy1vcmlnaW4taWZyYW1lLWxvZ2dpbmctZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9odHRwL3Rlc3Rz
L2luc3BlY3Rvci9jb25zb2xlLXhoci1sb2dnaW5nLWV4cGVjdGVkLnR4dDogQWRkZWQuCisKIDIw
MTEtMTEtMjUgIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBnb29nbGUuY29tPgogCiAgICAgICAg
IFdlYiBJbnNwZWN0b3I6IHJlc291cmNlLXRyZWUtZXJyb3JzLXJlbG9hZC5odG1sIGlzIGZsYWt5
LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29uc29sZS1j
cm9zcy1vcmlnaW4taWZyYW1lLWxvZ2dpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9pbnNwZWN0b3IvY29uc29sZS1jcm9zcy1vcmlnaW4taWZyYW1lLWxvZ2dpbmctZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFlNTEyNjRjMDdmYmU0NzY3MjhjZjA5NWNiYjQ1MmUxYTU5
M2Q3MjQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rv
ci9jb25zb2xlLWNyb3NzLW9yaWdpbi1pZnJhbWUtbG9nZ2luZy1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwxNiBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE6IFVuc2FmZSBKYXZhU2NyaXB0IGF0
dGVtcHQgdG8gYWNjZXNzIGZyYW1lIHdpdGggVVJMIGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9pbnNw
ZWN0b3IvcmVzb3VyY2VzL2Nyb3NzLW9yaWdpbi1pZnJhbWUuaHRtbCBmcm9tIGZyYW1lIHdpdGgg
VVJMIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3IvY29uc29sZS1jcm9zcy1vcmlnaW4t
aWZyYW1lLWxvZ2dpbmcuaHRtbC4gRG9tYWlucywgcHJvdG9jb2xzIGFuZCBwb3J0cyBtdXN0IG1h
dGNoLgorCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTogVW5zYWZlIEphdmFTY3JpcHQgYXR0ZW1w
dCB0byBhY2Nlc3MgZnJhbWUgd2l0aCBVUkwgaHR0cDovL2xvY2FsaG9zdDo4MDAwL2luc3BlY3Rv
ci9yZXNvdXJjZXMvY3Jvc3Mtb3JpZ2luLWlmcmFtZS5odG1sIGZyb20gZnJhbWUgd2l0aCBVUkwg
aHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9jb25zb2xlLWNyb3NzLW9yaWdpbi1pZnJh
bWUtbG9nZ2luZy5odG1sLiBEb21haW5zLCBwcm90b2NvbHMgYW5kIHBvcnRzIG11c3QgbWF0Y2gu
CisKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAwOiBVbmFibGUgdG8gcG9zdCBtZXNzYWdlIHRvIGh0
dHA6Ly8xMjcuMC4wLjE6ODAwMC4gUmVjaXBpZW50IGhhcyBvcmlnaW4gaHR0cDovL2xvY2FsaG9z
dDo4MDAwLgorCitUZXN0cyB0aGF0IGNyb3NzIG9yaWdpbiBlcnJvcnMgYXJlIGxvZ2dlZCB3aXRo
IHNvdXJjZSB1cmwgYW5kIGxpbmUgbnVtYmVyLgorCisKK1Vuc2FmZSBKYXZhU2NyaXB0IGF0dGVt
cHQgdG8gYWNjZXNzIGZyYW1lIHdpdGggVVJMIGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9pbnNwZWN0
b3IvcmVzb3VyY2VzL2Nyb3NzLW9yaWdpbi1pZnJhbWUuaHRtbCBmcm9tIGZyYW1lIHdpdGggVVJM
IGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3IvY29uc29sZS1jcm9zcy1vcmlnaW4taWZy
YW1lLWxvZ2dpbmcuaHRtbC4gRG9tYWlucywgcHJvdG9jb2xzIGFuZCBwb3J0cyBtdXN0IG1hdGNo
LgorCitVbnNhZmUgSmF2YVNjcmlwdCBhdHRlbXB0IHRvIGFjY2VzcyBmcmFtZSB3aXRoIFVSTCBo
dHRwOi8vbG9jYWxob3N0OjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlcy9jcm9zcy1vcmlnaW4taWZy
YW1lLmh0bWwgZnJvbSBmcmFtZSB3aXRoIFVSTCBodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVj
dG9yL2NvbnNvbGUtY3Jvc3Mtb3JpZ2luLWlmcmFtZS1sb2dnaW5nLmh0bWwuIERvbWFpbnMsIHBy
b3RvY29scyBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KKworVW5hYmxlIHRvIHBvc3QgbWVzc2FnZSB0
byBodHRwOi8vMTI3LjAuMC4xOjgwMDAuIFJlY2lwaWVudCBoYXMgb3JpZ2luIGh0dHA6Ly9sb2Nh
bGhvc3Q6ODAwMC4KKworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci9jb25zb2xlLWNyb3NzLW9yaWdpbi1pZnJhbWUtbG9nZ2luZy5odG1sIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29uc29sZS1jcm9zcy1vcmlnaW4taWZyYW1lLWxvZ2dp
bmcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi41N2QyMWE1MWVjMzI2MDE0NGQ0YWNkNmJhMDM4ZjM5ZmNhYTc4
NDFjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
Y29uc29sZS1jcm9zcy1vcmlnaW4taWZyYW1lLWxvZ2dpbmcuaHRtbApAQCAtMCwwICsxLDUwIEBA
Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Imluc3BlY3Rvci10ZXN0LmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSJjb25zb2xlLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1
bmN0aW9uIGFjY2Vzc0ZyYW1lKCkKK3sKKyAgICAvLyBTaG91bGQgZmFpbC4KKyAgICB2YXIgaG9z
dCA9IGZyYW1lc1swXS5sb2NhdGlvbi5ob3N0OworCisgICAgLy8gU2hvdWxkIGZhaWwuCisgICAg
ZnJhbWVzWzBdLmxvY2F0aW9uLnJlbG9hZCgpOworCisgICAgLy8gU2hvdWxkIGZhaWwuCisgICAg
ZnJhbWVzWzBdLnBvc3RNZXNzYWdlKCJmYWlsIiwgImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIpOwor
fQorCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICB2YXIgZmluaXNoQXR0ZW1wdHNMZWZ0ID0gNDsK
KyAgICBJbnNwZWN0b3JUZXN0LmFkZENvbnNvbGVTbmlmZmVyKG1heWJlRmluaXNoLCB0cnVlKTsK
KyAgICBDb25zb2xlQWdlbnQuc2V0TW9uaXRvcmluZ1hIUkVuYWJsZWQodHJ1ZSwgc3RlcDEpOwor
CisgICAgZnVuY3Rpb24gc3RlcDEoKQorICAgIHsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFs
dWF0ZUluUGFnZSgiYWNjZXNzRnJhbWUoKSIsIG1heWJlRmluaXNoKTsKKyAgICB9CisKKyAgICBm
dW5jdGlvbiBtYXliZUZpbmlzaCgpCisgICAgeworICAgICAgICAtLWZpbmlzaEF0dGVtcHRzTGVm
dDsKKyAgICAgICAgaWYgKGZpbmlzaEF0dGVtcHRzTGVmdCkKKyAgICAgICAgICAgIHJldHVybjsK
KworICAgICAgICBDb25zb2xlQWdlbnQuc2V0TW9uaXRvcmluZ1hIUkVuYWJsZWQoZmFsc2UsIGZp
bmlzaCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gZmluaXNoKCkKKyAgICB7CisgICAgICAgIElu
c3BlY3RvclRlc3QuZHVtcENvbnNvbGVNZXNzYWdlcygpOworICAgICAgICBJbnNwZWN0b3JUZXN0
LmNvbXBsZXRlVGVzdCgpOworICAgIH0KK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25s
b2FkPSJydW5UZXN0KCkiPgorPHA+VGVzdHMgdGhhdCBjcm9zcyBvcmlnaW4gZXJyb3JzIGFyZSBs
b2dnZWQgd2l0aCBzb3VyY2UgdXJsIGFuZCBsaW5lIG51bWJlci48L3A+Cis8aWZyYW1lIHNyYz0i
aHR0cDovL2xvY2FsaG9zdDo4MDAwL2luc3BlY3Rvci9yZXNvdXJjZXMvY3Jvc3Mtb3JpZ2luLWlm
cmFtZS5odG1sIj48L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9jcm9zcy1vcmlnaW4taWZyYW1l
Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvY3Jvc3Mt
b3JpZ2luLWlmcmFtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ1MGI5NmFmNGY3NDllMGJkZmZlOWMzMzRl
ODZiNmNmOTRhMDMzNmUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2luc3BlY3Rvci9yZXNvdXJjZXMvY3Jvc3Mtb3JpZ2luLWlmcmFtZS5odG1sCkBAIC0wLDAgKzEs
NyBAQAorPGh0bWw+Cis8aGVhZD4KKzwvaGVhZD4KKzxib2R5PgorICA8cD5Dcm9zcyBvcmlnaW4g
ZnJhbWUuPHA+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLWNyb3NzLW9yaWdpbi1p
ZnJhbWUtbG9nZ2luZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLWNyb3NzLW9yaWdpbi1pZnJhbWUtbG9nZ2lu
Zy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTVkMDhjYjVjMTQ3ZDljNjU5MTA5YTE4MDYxMzdh
MGQzNTY1NTRiMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtY3Jvc3Mtb3JpZ2luLWlmcmFtZS1sb2dn
aW5nLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE2IEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUg
MTogVW5zYWZlIEphdmFTY3JpcHQgYXR0ZW1wdCB0byBhY2Nlc3MgZnJhbWUgd2l0aCBVUkwgaHR0
cDovL2xvY2FsaG9zdDo4MDAwL2luc3BlY3Rvci9yZXNvdXJjZXMvY3Jvc3Mtb3JpZ2luLWlmcmFt
ZS5odG1sIGZyb20gZnJhbWUgd2l0aCBVUkwgaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rv
ci9jb25zb2xlLWNyb3NzLW9yaWdpbi1pZnJhbWUtbG9nZ2luZy5odG1sLiBEb21haW5zLCBwcm90
b2NvbHMgYW5kIHBvcnRzIG11c3QgbWF0Y2guCisKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxOiBV
bnNhZmUgSmF2YVNjcmlwdCBhdHRlbXB0IHRvIGFjY2VzcyBmcmFtZSB3aXRoIFVSTCBodHRwOi8v
bG9jYWxob3N0OjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlcy9jcm9zcy1vcmlnaW4taWZyYW1lLmh0
bWwgZnJvbSBmcmFtZSB3aXRoIFVSTCBodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL2Nv
bnNvbGUtY3Jvc3Mtb3JpZ2luLWlmcmFtZS1sb2dnaW5nLmh0bWwuIERvbWFpbnMsIHByb3RvY29s
cyBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KKworQ09OU09MRSBNRVNTQUdFOiBsaW5lIDA6IFVuYWJs
ZSB0byBwb3N0IG1lc3NhZ2UgdG8gaHR0cDovLzEyNy4wLjAuMTo4MDAwLiBSZWNpcGllbnQgaGFz
IG9yaWdpbiBodHRwOi8vbG9jYWxob3N0OjgwMDAuCisKK1Rlc3RzIHRoYXQgY3Jvc3Mgb3JpZ2lu
IGVycm9ycyBhcmUgbG9nZ2VkIHdpdGggc291cmNlIHVybCBhbmQgbGluZSBudW1iZXIuCisKKwor
Y29uc29sZS1jcm9zcy1vcmlnaW4taWZyYW1lLWxvZ2dpbmcuaHRtbDo5VW5zYWZlIEphdmFTY3Jp
cHQgYXR0ZW1wdCB0byBhY2Nlc3MgZnJhbWUgd2l0aCBVUkwgaHR0cDovL2xvY2FsaG9zdDo4MDAw
L2luc3BlY3Rvci9yZXNvdXJjZXMvY3Jvc3Mtb3JpZ2luLWlmcmFtZS5odG1sIGZyb20gZnJhbWUg
d2l0aCBVUkwgaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9jb25zb2xlLWNyb3NzLW9y
aWdpbi1pZnJhbWUtbG9nZ2luZy5odG1sLiBEb21haW5zLCBwcm90b2NvbHMgYW5kIHBvcnRzIG11
c3QgbWF0Y2guCisKK2NvbnNvbGUtY3Jvc3Mtb3JpZ2luLWlmcmFtZS1sb2dnaW5nLmh0bWw6MTJV
bnNhZmUgSmF2YVNjcmlwdCBhdHRlbXB0IHRvIGFjY2VzcyBmcmFtZSB3aXRoIFVSTCBodHRwOi8v
bG9jYWxob3N0OjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlcy9jcm9zcy1vcmlnaW4taWZyYW1lLmh0
bWwgZnJvbSBmcmFtZSB3aXRoIFVSTCBodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL2Nv
bnNvbGUtY3Jvc3Mtb3JpZ2luLWlmcmFtZS1sb2dnaW5nLmh0bWwuIERvbWFpbnMsIHByb3RvY29s
cyBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KKworY29uc29sZS1jcm9zcy1vcmlnaW4taWZyYW1lLWxv
Z2dpbmcuaHRtbDoxNVVuYWJsZSB0byBwb3N0IG1lc3NhZ2UgdG8gaHR0cDovLzEyNy4wLjAuMTo4
MDAwLiBSZWNpcGllbnQgaGFzIG9yaWdpbiBodHRwOi8vbG9jYWxob3N0OjgwMDAuCisKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vaHR0cC90ZXN0cy9pbnNwZWN0
b3IvY29uc29sZS14aHItbG9nZ2luZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLXhoci1sb2dnaW5nLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4yMTAzZjA0MGJlOTU1NGM2ZTBlMzYyMzA2ZmFlNmE3YjAwM2Y2
ZWU1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vaHR0
cC90ZXN0cy9pbnNwZWN0b3IvY29uc29sZS14aHItbG9nZ2luZy1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwyOCBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEwOiBzZW5kaW5nIGEgJXMgcmVxdWVz
dCB0byAlcworQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEwOiBzZW5kaW5nIGEgJXMgcmVxdWVzdCB0
byAlcworQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEwOiBzZW5kaW5nIGEgJXMgcmVxdWVzdCB0byAl
cworQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEwOiBzZW5kaW5nIGEgJXMgcmVxdWVzdCB0byAlcwor
Q09OU09MRSBNRVNTQUdFOiBsaW5lIDE6IFhNTEh0dHBSZXF1ZXN0IGNhbm5vdCBsb2FkIGh0dHA6
Ly9sb2NhbGhvc3Q6ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2VzL3hoci1leGlzdHMuaHRtbC4gT3Jp
Z2luIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMCBpcyBub3QgYWxsb3dlZCBieSBBY2Nlc3MtQ29udHJv
bC1BbGxvdy1PcmlnaW4uCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTA6IHNlbmRpbmcgYSAlcyBy
ZXF1ZXN0IHRvICVzCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTA6IHNlbmRpbmcgYSAlcyByZXF1
ZXN0IHRvICVzCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTA6IHNlbmRpbmcgYSAlcyByZXF1ZXN0
IHRvICVzCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTA6IHNlbmRpbmcgYSAlcyByZXF1ZXN0IHRv
ICVzCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTogWE1MSHR0cFJlcXVlc3QgY2Fubm90IGxvYWQg
aHR0cDovL2xvY2FsaG9zdDo4MDAwL2luc3BlY3Rvci9yZXNvdXJjZXMveGhyLWV4aXN0cy5odG1s
LiBPcmlnaW4gaHR0cDovLzEyNy4wLjAuMTo4MDAwIGlzIG5vdCBhbGxvd2VkIGJ5IEFjY2Vzcy1D
b250cm9sLUFsbG93LU9yaWdpbi4KK1Rlc3RzIHRoYXQgWE1MSHR0cFJlcXVlc3QgTG9nZ2luZyB3
b3JrcyB3aGVuIEVuYWJsZWQgYW5kIGRvZXNuJ3Qgc2hvdyBsb2dzIHdoZW4gRGlzYWJsZWQuCisK
K2NvbnNvbGUteGhyLWxvZ2dpbmcuaHRtbDoxMHNlbmRpbmcgYSBHRVQgcmVxdWVzdCB0byByZXNv
dXJjZXMveGhyLWV4aXN0cy5odG1sCitYSFIgZmluaXNoZWQgbG9hZGluZzogImh0dHA6Ly8xMjcu
MC4wLjE6ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2VzL3hoci1leGlzdHMuaHRtbCIuCitjb25zb2xl
LXhoci1sb2dnaW5nLmh0bWw6MTBzZW5kaW5nIGEgR0VUIHJlcXVlc3QgdG8gcmVzb3VyY2VzL3ho
ci1kb2VzLW5vdC1leGlzdC5odG1sCitHRVQgaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rv
ci9yZXNvdXJjZXMveGhyLWRvZXMtbm90LWV4aXN0Lmh0bWwgNDA0IChOb3QgRm91bmQpCitYSFIg
ZmluaXNoZWQgbG9hZGluZzogImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3IvcmVzb3Vy
Y2VzL3hoci1kb2VzLW5vdC1leGlzdC5odG1sIi4KK2NvbnNvbGUteGhyLWxvZ2dpbmcuaHRtbDox
MHNlbmRpbmcgYSBQT1NUIHJlcXVlc3QgdG8gcmVzb3VyY2VzL3Bvc3QtdGFyZ2V0LmNnaQorWEhS
IGZpbmlzaGVkIGxvYWRpbmc6ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL3Jlc291
cmNlcy9wb3N0LXRhcmdldC5jZ2kiLgorY29uc29sZS14aHItbG9nZ2luZy5odG1sOjEwc2VuZGlu
ZyBhIEdFVCByZXF1ZXN0IHRvIGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9pbnNwZWN0b3IvcmVzb3Vy
Y2VzL3hoci1leGlzdHMuaHRtbAorbmV0d29yay10ZXN0LmpzOjM5WE1MSHR0cFJlcXVlc3QgY2Fu
bm90IGxvYWQgaHR0cDovL2xvY2FsaG9zdDo4MDAwL2luc3BlY3Rvci9yZXNvdXJjZXMveGhyLWV4
aXN0cy5odG1sLiBPcmlnaW4gaHR0cDovLzEyNy4wLjAuMTo4MDAwIGlzIG5vdCBhbGxvd2VkIGJ5
IEFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbi4KK2NvbnNvbGUteGhyLWxvZ2dpbmcuaHRtbDox
MHNlbmRpbmcgYSBHRVQgcmVxdWVzdCB0byByZXNvdXJjZXMveGhyLWV4aXN0cy5odG1sCitjb25z
b2xlLXhoci1sb2dnaW5nLmh0bWw6MTBzZW5kaW5nIGEgR0VUIHJlcXVlc3QgdG8gcmVzb3VyY2Vz
L3hoci1kb2VzLW5vdC1leGlzdC5odG1sCitHRVQgaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3Bl
Y3Rvci9yZXNvdXJjZXMveGhyLWRvZXMtbm90LWV4aXN0Lmh0bWwgNDA0IChOb3QgRm91bmQpCitj
b25zb2xlLXhoci1sb2dnaW5nLmh0bWw6MTBzZW5kaW5nIGEgUE9TVCByZXF1ZXN0IHRvIHJlc291
cmNlcy9wb3N0LXRhcmdldC5jZ2kKK2NvbnNvbGUteGhyLWxvZ2dpbmcuaHRtbDoxMHNlbmRpbmcg
YSBHRVQgcmVxdWVzdCB0byBodHRwOi8vbG9jYWxob3N0OjgwMDAvaW5zcGVjdG9yL3Jlc291cmNl
cy94aHItZXhpc3RzLmh0bWwKK25ldHdvcmstdGVzdC5qczozOVhNTEh0dHBSZXF1ZXN0IGNhbm5v
dCBsb2FkIGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2VzL3hoci1leGlz
dHMuaHRtbC4gT3JpZ2luIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMCBpcyBub3QgYWxsb3dlZCBieSBB
Y2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4uCisK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>117173</attachid>
            <date>2011-11-30 05:07:27 -0800</date>
            <delta_ts>2011-12-08 05:33:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73099-20111130170725.patch</filename>
            <type>text/plain</type>
            <size>28476</size>
            <attacher name="Vsevolod Vlasov">vsevik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAxMzg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzE0MzY2Yjk4YmQwZWFm
YzM5NDM0OGJkNTNkNTE3NTg2YThhNWQxMi4uNWZiNzUxNTlhMzk3MDk2ODczMjQwYzM2YjRiYjA5
MzQwZjA1MmJhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDExLTExLTMwICBWc2V2
b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IFVuc2FmZSBjcm9zcyBvcmlnaW4gYWNjZXNzIGVycm9ycyBzaG91bGQgc2hvdyBzdGFjayB0
cmFjZSBpbiBjb25zb2xlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NzMwOTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBUZXN0OiBodHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLWNyb3NzLW9yaWdpbi1p
ZnJhbWUtbG9nZ2luZy5odG1sCisKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOFByb3h5LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OmFkZE1lc3NhZ2VUb0NvbnNvbGUpOgorICAgICAgICAoV2ViQ29y
ZTo6bG9nSW5mbyk6CisgICAgICAgIChXZWJDb3JlOjpWOFByb3h5OjpyZXBvcnRVbnNhZmVBY2Nl
c3NUbyk6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkZyYW1lTG9hZGVyOjpzaG91bGRBbGxvd05hdmlnYXRpb24pOgorICAgICAgICAqIHBhZ2Uv
RE9NV2luZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBvc3RNZXNzYWdlVGltZXI6OlBvc3RN
ZXNzYWdlVGltZXIpOgorICAgICAgICAoV2ViQ29yZTo6UG9zdE1lc3NhZ2VUaW1lcjo6c3RhY2tU
cmFjZSk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OnBvc3RNZXNzYWdlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6cG9zdE1lc3NhZ2VUaW1lckZpcmVkKToKKyAgICAgICAg
KFdlYkNvcmU6OkRPTVdpbmRvdzo6cHJpbnRFcnJvck1lc3NhZ2UpOgorICAgICAgICAqIHhtbC9Y
TUxIdHRwUmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6WE1M
SHR0cFJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6OmluaXRTZW5k
KToKKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0OjpyZXBvcnRVbnNhZmVVc2FnZSk6
CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6c2V0UmVxdWVzdEhlYWRlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6Z2V0UmVzcG9uc2VIZWFkZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6OmRpZEZhaWwpOgorICAgICAgICAoV2ViQ29y
ZTo6WE1MSHR0cFJlcXVlc3Q6OmRpZEZpbmlzaExvYWRpbmcpOgorICAgICAgICAqIHhtbC9YTUxI
dHRwUmVxdWVzdC5oOgorCiAyMDExLTExLTI5ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJj
aWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLiBGaXggdGhlIEdUSysgcG9ydCBi
dWlsZCBhZnRlciByMTAxMzA3LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
djgvVjhQcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFByb3h5LmNwcApp
bmRleCA4ZmZkMWMxYmZjODQ5YzYzZWNhNGNmMzg3Mjk0MzNmNDNhNjViYjE3Li43YTQxOGJjNDc4
NzY4OWIxZWJhMjVkMzBjMTg2YzFjZWNkOWEyOWVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9WOFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92
OC9WOFByb3h5LmNwcApAQCAtNDYsNiArNDYsOCBAQAogI2luY2x1ZGUgIkluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN1cHBv
cnQuaCIKKyNpbmNsdWRlICJTY3JpcHRDYWxsU3RhY2suaCIKKyNpbmNsdWRlICJTY3JpcHRDYWxs
U3RhY2tGYWN0b3J5LmgiCiAjaW5jbHVkZSAiU2NyaXB0U291cmNlQ29kZS5oIgogI2luY2x1ZGUg
IlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKQEAgLTEyMCwxMSArMTIy
LDExIEBAIHR5cGVkZWYgSGFzaE1hcDxOb2RlKiwgdjg6Ok9iamVjdCo+IERPTU5vZGVNYXA7CiB0
eXBlZGVmIEhhc2hNYXA8dm9pZCosIHY4OjpPYmplY3QqPiBET01PYmplY3RNYXA7CiB0eXBlZGVm
IEhhc2hNYXA8aW50LCB2ODo6RnVuY3Rpb25UZW1wbGF0ZSo+IEZ1bmN0aW9uVGVtcGxhdGVNYXA7
CiAKLXN0YXRpYyB2b2lkIGFkZE1lc3NhZ2VUb0NvbnNvbGUoUGFnZSogcGFnZSwgY29uc3QgU3Ry
aW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZUlELCB1bnNpZ25lZCBsaW5lTnVtYmVy
KQorc3RhdGljIHZvaWQgYWRkTWVzc2FnZVRvQ29uc29sZShQYWdlKiBwYWdlLCBjb25zdCBTdHJp
bmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgc291cmNlSUQsIHVuc2lnbmVkIGxpbmVOdW1iZXIs
IFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBzdGFja1RyYWNlKQogewogICAgIEFTU0VSVChw
YWdlKTsKICAgICBDb25zb2xlKiBjb25zb2xlID0gcGFnZS0+bWFpbkZyYW1lKCktPmRvbVdpbmRv
dygpLT5jb25zb2xlKCk7Ci0gICAgY29uc29sZS0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2Us
IExvZ01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgbWVzc2FnZSwgbGluZU51bWJlciwg
c291cmNlSUQpOworICAgIGNvbnNvbGUtPmFkZE1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBMb2dN
ZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsIG1lc3NhZ2UsIGxpbmVOdW1iZXIsIHNvdXJj
ZUlELCBzdGFja1RyYWNlKTsKIH0KIAogdm9pZCBsb2dJbmZvKEZyYW1lKiBmcmFtZSwgY29uc3Qg
U3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHVybCkKQEAgLTEzMiw3ICsxMzQsNyBAQCB2
b2lkIGxvZ0luZm8oRnJhbWUqIGZyYW1lLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0
cmluZyYgdXJsKQogICAgIFBhZ2UqIHBhZ2UgPSBmcmFtZS0+cGFnZSgpOwogICAgIGlmICghcGFn
ZSkKICAgICAgICAgcmV0dXJuOwotICAgIGFkZE1lc3NhZ2VUb0NvbnNvbGUocGFnZSwgbWVzc2Fn
ZSwgdXJsLCAwKTsKKyAgICBhZGRNZXNzYWdlVG9Db25zb2xlKHBhZ2UsIG1lc3NhZ2UsIHVybCwg
MCwgMCk7CiB9CiAKIHZvaWQgVjhQcm94eTo6cmVwb3J0VW5zYWZlQWNjZXNzVG8oRnJhbWUqIHRh
cmdldCkKQEAgLTE2MiwxMCArMTY0LDEyIEBAIHZvaWQgVjhQcm94eTo6cmVwb3J0VW5zYWZlQWNj
ZXNzVG8oRnJhbWUqIHRhcmdldCkKICAgICBjb25zdCBTdHJpbmcga1NvdXJjZUlEID0gIiI7CiAg
ICAgY29uc3QgaW50IGtMaW5lTnVtYmVyID0gMTsKIAorICAgIFJlZlB0cjxTY3JpcHRDYWxsU3Rh
Y2s+IHN0YWNrVHJhY2UgPSBjcmVhdGVTY3JpcHRDYWxsU3RhY2soU2NyaXB0Q2FsbFN0YWNrOjpt
YXhDYWxsU3RhY2tTaXplVG9DYXB0dXJlLCB0cnVlKTsKKwogICAgIC8vIE5PVEU6IFNhZmFyaSBw
cmludHMgdGhlIG1lc3NhZ2UgaW4gdGhlIHRhcmdldCBwYWdlLCBidXQgaXQgc2VlbXMgbGlrZQog
ICAgIC8vIGl0IHNob3VsZCBiZSBpbiB0aGUgc291cmNlIHBhZ2UuIEV2ZW4gZm9yIGRlbGF5ZWQg
bWVzc2FnZXMsIHdlIHB1dCBpdCBpbgogICAgIC8vIHRoZSBzb3VyY2UgcGFnZS4KLSAgICBhZGRN
ZXNzYWdlVG9Db25zb2xlKHBhZ2UsIHN0ciwga1NvdXJjZUlELCBrTGluZU51bWJlcik7CisgICAg
YWRkTWVzc2FnZVRvQ29uc29sZShwYWdlLCBzdHIsIGtTb3VyY2VJRCwga0xpbmVOdW1iZXIsIHN0
YWNrVHJhY2UucmVsZWFzZSgpKTsKIH0KIAogc3RhdGljIHZvaWQgaGFuZGxlRmF0YWxFcnJvcklu
VjgoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKaW5kZXggMTU4OTM4ZWM0ODRl
MmZmMDNiOWEyMmE1NGQ1YWViNGQyYjFmYzk4Ny4uOTI5OThiOWFiMTI4NjJkOTFjNTIwODhmODVi
N2Q2MDU3OWE2ZjY0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9h
ZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC04
Niw5ICs4NiwxMSBAQAogI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlLmgiCiAjaW5jbHVkZSAiUmVz
b3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiU2NoZW1lUmVnaXN0cnkuaCIKLSNpbmNsdWRlICJT
Y3JvbGxBbmltYXRvci5oIgorI2luY2x1ZGUgIlNjcmlwdENhbGxTdGFjay5oIgorI2luY2x1ZGUg
IlNjcmlwdENhbGxTdGFja0ZhY3RvcnkuaCIKICNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgi
CiAjaW5jbHVkZSAiU2NyaXB0U291cmNlQ29kZS5oIgorI2luY2x1ZGUgIlNjcm9sbEFuaW1hdG9y
LmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJTZWN1cml0eVBvbGlj
eS5oIgogI2luY2x1ZGUgIlNlZ21lbnRlZFN0cmluZy5oIgpAQCAtMTU2Myw4ICsxNTY1LDEwIEBA
IGJvb2wgRnJhbWVMb2FkZXI6OnNob3VsZEFsbG93TmF2aWdhdGlvbihGcmFtZSogdGFyZ2V0RnJh
bWUpIGNvbnN0CiAgICAgICAgIFN0cmluZyBtZXNzYWdlID0gIlVuc2FmZSBKYXZhU2NyaXB0IGF0
dGVtcHQgdG8gaW5pdGlhdGUgYSBuYXZpZ2F0aW9uIGNoYW5nZSBmb3IgZnJhbWUgd2l0aCBVUkwg
IiArCiAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0RG9jdW1lbnQtPnVybCgpLnN0cmlu
ZygpICsgIiBmcm9tIGZyYW1lIHdpdGggVVJMICIgKyBhY3RpdmVEb2N1bWVudC0+dXJsKCkuc3Ry
aW5nKCkgKyAiLlxuIjsKIAorICAgICAgICBSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBzdGFja1Ry
YWNlID0gY3JlYXRlU2NyaXB0Q2FsbFN0YWNrKFNjcmlwdENhbGxTdGFjazo6bWF4Q2FsbFN0YWNr
U2l6ZVRvQ2FwdHVyZSwgdHJ1ZSk7CisKICAgICAgICAgLy8gRklYTUU6IHNob3VsZCB3ZSBwcmlu
dCB0byB0aGUgY29uc29sZSBvZiB0aGUgYWN0aXZlRnJhbWUgYXMgd2VsbD8KLSAgICAgICAgdGFy
Z2V0RnJhbWUtPmRvbVdpbmRvdygpLT5jb25zb2xlKCktPmFkZE1lc3NhZ2UoSlNNZXNzYWdlU291
cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsIG1lc3NhZ2UsIDEsIFN0cmlu
ZygpKTsKKyAgICAgICAgdGFyZ2V0RnJhbWUtPmRvbVdpbmRvdygpLT5jb25zb2xlKCktPmFkZE1l
c3NhZ2UoSlNNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWws
IG1lc3NhZ2UsIDEsIFN0cmluZygpLCBzdGFja1RyYWNlLnJlbGVhc2UoKSk7CiAgICAgfQogICAg
IAogICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9N
V2luZG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAppbmRleCA2OTQ4
OGM5YTQwYWMxNmI4NTM5MzBmZDViZWI4YzVmN2M4NWY1ODRiLi44NzBmOWYwY2M5NTY0ODgyMjBk
YzI4YTYwMTEwZDQ0ZGFjN2M0NWZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RP
TVdpbmRvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCkBAIC04
Miw2ICs4Miw4IEBACiAjaW5jbHVkZSAiUGxhdGZvcm1TY3JlZW4uaCIKICNpbmNsdWRlICJTY2hl
ZHVsZWRBY3Rpb24uaCIKICNpbmNsdWRlICJTY3JlZW4uaCIKKyNpbmNsdWRlICJTY3JpcHRDYWxs
U3RhY2suaCIKKyNpbmNsdWRlICJTY3JpcHRDYWxsU3RhY2tGYWN0b3J5LmgiCiAjaW5jbHVkZSAi
U2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKICNp
bmNsdWRlICJTZXR0aW5ncy5oIgpAQCAtMTIyLDEzICsxMjQsMTQgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBjbGFzcyBQb3N0TWVzc2FnZVRpbWVyIDogcHVibGljIFRpbWVyQmFzZSB7CiBwdWJs
aWM6Ci0gICAgUG9zdE1lc3NhZ2VUaW1lcihET01XaW5kb3cqIHdpbmRvdywgUGFzc1JlZlB0cjxT
ZXJpYWxpemVkU2NyaXB0VmFsdWU+IG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgc291cmNlT3JpZ2lu
LCBQYXNzUmVmUHRyPERPTVdpbmRvdz4gc291cmNlLCBQYXNzT3duUHRyPE1lc3NhZ2VQb3J0Q2hh
bm5lbEFycmF5PiBjaGFubmVscywgU2VjdXJpdHlPcmlnaW4qIHRhcmdldE9yaWdpbikKKyAgICBQ
b3N0TWVzc2FnZVRpbWVyKERPTVdpbmRvdyogd2luZG93LCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZT4gbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VPcmlnaW4sIFBhc3NSZWZQ
dHI8RE9NV2luZG93PiBzb3VyY2UsIFBhc3NPd25QdHI8TWVzc2FnZVBvcnRDaGFubmVsQXJyYXk+
IGNoYW5uZWxzLCBTZWN1cml0eU9yaWdpbiogdGFyZ2V0T3JpZ2luLCBQYXNzUmVmUHRyPFNjcmlw
dENhbGxTdGFjaz4gc3RhY2tUcmFjZSkKICAgICAgICAgOiBtX3dpbmRvdyh3aW5kb3cpCiAgICAg
ICAgICwgbV9tZXNzYWdlKG1lc3NhZ2UpCiAgICAgICAgICwgbV9vcmlnaW4oc291cmNlT3JpZ2lu
KQogICAgICAgICAsIG1fc291cmNlKHNvdXJjZSkKICAgICAgICAgLCBtX2NoYW5uZWxzKGNoYW5u
ZWxzKQogICAgICAgICAsIG1fdGFyZ2V0T3JpZ2luKHRhcmdldE9yaWdpbikKKyAgICAgICAgLCBt
X3N0YWNrVHJhY2Uoc3RhY2tUcmFjZSkKICAgICB7CiAgICAgfQogCkBAIC0xMzgsNiArMTQxLDcg
QEAgcHVibGljOgogICAgICAgICByZXR1cm4gTWVzc2FnZUV2ZW50OjpjcmVhdGUobWVzc2FnZVBv
cnRzLnJlbGVhc2UoKSwgbV9tZXNzYWdlLCBtX29yaWdpbiwgIiIsIG1fc291cmNlKTsKICAgICB9
CiAgICAgU2VjdXJpdHlPcmlnaW4qIHRhcmdldE9yaWdpbigpIGNvbnN0IHsgcmV0dXJuIG1fdGFy
Z2V0T3JpZ2luLmdldCgpOyB9CisgICAgU2NyaXB0Q2FsbFN0YWNrKiBzdGFja1RyYWNlKCkgY29u
c3QgeyByZXR1cm4gbV9zdGFja1RyYWNlLmdldCgpOyB9CiAKIHByaXZhdGU6CiAgICAgdmlydHVh
bCB2b2lkIGZpcmVkKCkKQEAgLTE1Miw2ICsxNTYsNyBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxE
T01XaW5kb3c+IG1fc291cmNlOwogICAgIE93blB0cjxNZXNzYWdlUG9ydENoYW5uZWxBcnJheT4g
bV9jaGFubmVsczsKICAgICBSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IG1fdGFyZ2V0T3JpZ2luOwor
ICAgIFJlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IG1fc3RhY2tUcmFjZTsKIH07CiAKIHR5cGVkZWYg
SGFzaENvdW50ZWRTZXQ8RE9NV2luZG93Kj4gRE9NV2luZG93U2V0OwpAQCAtODk4LDggKzkwMywx
MyBAQCB2b2lkIERPTVdpbmRvdzo6cG9zdE1lc3NhZ2UoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2Ny
aXB0VmFsdWU+IG1lc3NhZ2UsIGNvbnN0IE1lcwogICAgICAgICByZXR1cm47CiAgICAgU3RyaW5n
IHNvdXJjZU9yaWdpbiA9IHNvdXJjZURvY3VtZW50LT5zZWN1cml0eU9yaWdpbigpLT50b1N0cmlu
ZygpOwogCisgICAgLy8gQ2FwdHVyZSBzdGFjayB0cmFjZSBvbmx5IHdoZW4gaW5zcGVjdG9yIGZy
b250LWVuZCBpcyBsb2FkZWQgYXMgaXQgbWF5IGJlIHRpbWUgY29uc3VtaW5nLgorICAgIFJlZlB0
cjxTY3JpcHRDYWxsU3RhY2s+IHN0YWNrVHJhY2U7CisgICAgaWYgKEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6aGFzRnJvbnRlbmRzKCkpCisgICAgICAgIHN0YWNrVHJhY2UgPSBjcmVhdGVTY3Jp
cHRDYWxsU3RhY2soU2NyaXB0Q2FsbFN0YWNrOjptYXhDYWxsU3RhY2tTaXplVG9DYXB0dXJlLCB0
cnVlKTsKKwogICAgIC8vIFNjaGVkdWxlIHRoZSBtZXNzYWdlLgotICAgIFBvc3RNZXNzYWdlVGlt
ZXIqIHRpbWVyID0gbmV3IFBvc3RNZXNzYWdlVGltZXIodGhpcywgbWVzc2FnZSwgc291cmNlT3Jp
Z2luLCBzb3VyY2UsIGNoYW5uZWxzLnJlbGVhc2UoKSwgdGFyZ2V0LmdldCgpKTsKKyAgICBQb3N0
TWVzc2FnZVRpbWVyKiB0aW1lciA9IG5ldyBQb3N0TWVzc2FnZVRpbWVyKHRoaXMsIG1lc3NhZ2Us
IHNvdXJjZU9yaWdpbiwgc291cmNlLCBjaGFubmVscy5yZWxlYXNlKCksIHRhcmdldC5nZXQoKSwg
c3RhY2tUcmFjZS5yZWxlYXNlKCkpOwogICAgIHRpbWVyLT5zdGFydE9uZVNob3QoMCk7CiB9CiAK
QEAgLTkxNSw3ICs5MjUsNyBAQCB2b2lkIERPTVdpbmRvdzo6cG9zdE1lc3NhZ2VUaW1lckZpcmVk
KFBhc3NPd25QdHI8UG9zdE1lc3NhZ2VUaW1lcj4gdCkKICAgICAgICAgaWYgKCF0aW1lci0+dGFy
Z2V0T3JpZ2luKCktPmlzU2FtZVNjaGVtZUhvc3RQb3J0KGRvY3VtZW50KCktPnNlY3VyaXR5T3Jp
Z2luKCkpKSB7CiAgICAgICAgICAgICBTdHJpbmcgbWVzc2FnZSA9ICJVbmFibGUgdG8gcG9zdCBt
ZXNzYWdlIHRvICIgKyB0aW1lci0+dGFyZ2V0T3JpZ2luKCktPnRvU3RyaW5nKCkgKwogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAiLiBSZWNpcGllbnQgaGFzIG9yaWdpbiAiICsgZG9jdW1l
bnQoKS0+c2VjdXJpdHlPcmlnaW4oKS0+dG9TdHJpbmcoKSArICIuXG4iOwotICAgICAgICAgICAg
Y29uc29sZSgpLT5hZGRNZXNzYWdlKEpTTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIEVy
cm9yTWVzc2FnZUxldmVsLCBtZXNzYWdlLCAwLCBTdHJpbmcoKSk7CisgICAgICAgICAgICBjb25z
b2xlKCktPmFkZE1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JN
ZXNzYWdlTGV2ZWwsIG1lc3NhZ2UsIDAsIFN0cmluZygpLCB0aW1lci0+c3RhY2tUcmFjZSgpKTsK
ICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgIH0KQEAgLTE3NjQsNyArMTc3NCw4
IEBAIHZvaWQgRE9NV2luZG93OjpwcmludEVycm9yTWVzc2FnZShjb25zdCBTdHJpbmcmIG1lc3Nh
Z2UpCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIEZJWE1FOiBBZGQgYXJndW1lbnRzIHNvIHRo
YXQgd2UgY2FuIHByb3ZpZGUgYSBjb3JyZWN0IHNvdXJjZSBVUkwgYW5kIGxpbmUgbnVtYmVyLgot
ICAgIGNvbnNvbGUoKS0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBl
LCBFcnJvck1lc3NhZ2VMZXZlbCwgbWVzc2FnZSwgMSwgU3RyaW5nKCkpOworICAgIFJlZlB0cjxT
Y3JpcHRDYWxsU3RhY2s+IHN0YWNrVHJhY2UgPSBjcmVhdGVTY3JpcHRDYWxsU3RhY2soU2NyaXB0
Q2FsbFN0YWNrOjptYXhDYWxsU3RhY2tTaXplVG9DYXB0dXJlLCB0cnVlKTsKKyAgICBjb25zb2xl
KCktPmFkZE1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNz
YWdlTGV2ZWwsIG1lc3NhZ2UsIDEsIFN0cmluZygpLCBzdGFja1RyYWNlLnJlbGVhc2UoKSk7CiB9
CiAKIFN0cmluZyBET01XaW5kb3c6OmNyb3NzRG9tYWluQWNjZXNzRXJyb3JNZXNzYWdlKERPTVdp
bmRvdyogYWN0aXZlV2luZG93KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0
dHBSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKaW5k
ZXggMDRkOTI3ZWRjYTE0YTcwYjIxOWRjYTQ2MGRmNjNkNDZlNmNmNTA5OC4uYzU1ZTNmZDBjZTYy
ZjBlYWEzNzUxMjBjOThlZDFjYzZlMTg3MzEwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
eG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJl
cXVlc3QuY3BwCkBAIC00MSw2ICs0MSw3IEBACiAjaW5jbHVkZSAiUmVzb3VyY2VFcnJvci5oIgog
I2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIlNjcmlwdENhbGxTdGFjay5o
IgorI2luY2x1ZGUgIlNjcmlwdENhbGxTdGFja0ZhY3RvcnkuaCIKICNpbmNsdWRlICJTY3JpcHRQ
cm9maWxlLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJTZXR0aW5n
cy5oIgpAQCAtMTU5LDcgKzE2MCw3IEBAIFhNTEh0dHBSZXF1ZXN0OjpYTUxIdHRwUmVxdWVzdChT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRyPFNlY3VyCiAgICAgLCBt
X3VwbG9hZENvbXBsZXRlKGZhbHNlKQogICAgICwgbV9zYW1lT3JpZ2luUmVxdWVzdCh0cnVlKQog
ICAgICwgbV9yZWNlaXZlZExlbmd0aCgwKQotICAgICwgbV9sYXN0U2VuZExpbmVOdW1iZXIoMCkK
KyAgICAsIG1fbGFzdFNlbmRMaW5lTnVtYmVyKDEpCiAgICAgLCBtX2V4Y2VwdGlvbkNvZGUoMCkK
ICAgICAsIG1fcHJvZ3Jlc3NFdmVudFRocm90dGxlKHRoaXMpCiAgICAgLCBtX3Jlc3BvbnNlVHlw
ZUNvZGUoUmVzcG9uc2VUeXBlRGVmYXVsdCkKQEAgLTQ3NSw2ICs0NzYsMTEgQEAgYm9vbCBYTUxI
dHRwUmVxdWVzdDo6aW5pdFNlbmQoRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgfQogCiAgICAgbV9l
cnJvciA9IGZhbHNlOworCisgICAgLy8gRm9yIGFzeW5jaHJvbm91cyByZXF1ZXN0cyB3ZSBuZWVk
IHRvIGNhcHR1cmUgc3RhY2sgdHJhY2UgZWFybHkgYW5kIG9ubHkgd2hlbiBpbnNwZWN0b3IgZnJv
bnQtZW5kIGlzIGxvYWRlZCBhcyBpdCBtYXkgYmUgdGltZSBjb25zdW1pbmcuCisgICAgaWYgKG1f
YXN5bmMgJiYgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpoYXNGcm9udGVuZHMoKSkKKyAgICAg
ICAgbV9sYXN0U2VuZFN0YWNrVHJhY2UgPSBjcmVhdGVTY3JpcHRDYWxsU3RhY2soU2NyaXB0Q2Fs
bFN0YWNrOjptYXhDYWxsU3RhY2tTaXplVG9DYXB0dXJlLCB0cnVlKTsKKwogICAgIHJldHVybiB0
cnVlOwogfQogCkBAIC04MDgsMTMgKzgxNCwxNyBAQCB2b2lkIFhNTEh0dHBSZXF1ZXN0OjpvdmVy
cmlkZU1pbWVUeXBlKGNvbnN0IFN0cmluZyYgb3ZlcnJpZGUpCiAgICAgbV9taW1lVHlwZU92ZXJy
aWRlID0gb3ZlcnJpZGU7CiB9CiAKLXN0YXRpYyB2b2lkIHJlcG9ydFVuc2FmZVVzYWdlKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKK3ZvaWQg
WE1MSHR0cFJlcXVlc3Q6OnJlcG9ydFVuc2FmZVVzYWdlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkg
Y29uc3QKIHsKKyAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0ID0gc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpOwogICAgIGlmICghY29udGV4dCkKICAgICAgICAgcmV0dXJuOwotICAg
IC8vIEZJWE1FOiBJdCdzIG5vdCBnb29kIHRvIHJlcG9ydCB0aGUgYmFkIHVzYWdlIHdpdGhvdXQg
aW5kaWNhdGluZyB3aGF0IHNvdXJjZSBsaW5lIGl0IGNhbWUgZnJvbS4KLSAgICAvLyBXZSBzaG91
bGQgcGFzcyBhZGRpdGlvbmFsIHBhcmFtZXRlcnMgc28gd2UgY2FuIHRlbGwgdGhlIGNvbnNvbGUg
d2hlcmUgdGhlIG1pc3Rha2Ugb2NjdXJyZWQuCi0gICAgY29udGV4dC0+YWRkQ29uc29sZU1lc3Nh
Z2UoSlNNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsIG1l
c3NhZ2UpOworCisgICAgUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gc3RhY2tUcmFjZSA9IG1fbGFz
dFNlbmRTdGFja1RyYWNlOworICAgIC8vIENhcHR1cmUgc3RhY2sgdHJhY2Ugb25seSB3aGVuIGlu
c3BlY3RvciBmcm9udC1lbmQgaXMgbG9hZGVkIGFzIGl0IG1heSBiZSB0aW1lIGNvbnN1bWluZy4K
KyAgICBpZiAoIXN0YWNrVHJhY2UgJiYgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpoYXNGcm9u
dGVuZHMoKSkKKyAgICAgICAgc3RhY2tUcmFjZSA9IGNyZWF0ZVNjcmlwdENhbGxTdGFjayhTY3Jp
cHRDYWxsU3RhY2s6Om1heENhbGxTdGFja1NpemVUb0NhcHR1cmUsIHRydWUpOworICAgIGNvbnRl
eHQtPmFkZE1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNz
YWdlTGV2ZWwsIG1lc3NhZ2UsIG1fbGFzdFNlbmRMaW5lTnVtYmVyLCBtX2xhc3RTZW5kVVJMLCBz
dGFja1RyYWNlLnJlbGVhc2UoKSk7CiB9CiAKIHZvaWQgWE1MSHR0cFJlcXVlc3Q6OnNldFJlcXVl
c3RIZWFkZXIoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHZhbHVlLCBF
eGNlcHRpb25Db2RlJiBlYykKQEAgLTgzNiw3ICs4NDYsNyBAQCB2b2lkIFhNTEh0dHBSZXF1ZXN0
OjpzZXRSZXF1ZXN0SGVhZGVyKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5n
JiB2YQogCiAgICAgLy8gQSBwcml2aWxlZ2VkIHNjcmlwdCAoZS5nLiBhIERhc2hib2FyZCB3aWRn
ZXQpIGNhbiBzZXQgYW55IGhlYWRlcnMuCiAgICAgaWYgKCFzZWN1cml0eU9yaWdpbigpLT5jYW5M
b2FkTG9jYWxSZXNvdXJjZXMoKSAmJiAhaXNBbGxvd2VkSFRUUEhlYWRlcihuYW1lKSkgewotICAg
ICAgICByZXBvcnRVbnNhZmVVc2FnZShzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksICJSZWZ1c2Vk
IHRvIHNldCB1bnNhZmUgaGVhZGVyIFwiIiArIG5hbWUgKyAiXCIiKTsKKyAgICAgICAgcmVwb3J0
VW5zYWZlVXNhZ2UoIlJlZnVzZWQgdG8gc2V0IHVuc2FmZSBoZWFkZXIgXCIiICsgbmFtZSArICJc
IiIpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC04OTgsMTIgKzkwOCwxMiBAQCBTdHJp
bmcgWE1MSHR0cFJlcXVlc3Q6OmdldFJlc3BvbnNlSGVhZGVyKGNvbnN0IEF0b21pY1N0cmluZyYg
bmFtZSwgRXhjZXB0aW9uQ29kZQogCiAgICAgLy8gU2VlIGNvbW1lbnQgaW4gZ2V0QWxsUmVzcG9u
c2VIZWFkZXJzIGFib3ZlLgogICAgIGlmIChpc1NldENvb2tpZUhlYWRlcihuYW1lKSAmJiAhc2Vj
dXJpdHlPcmlnaW4oKS0+Y2FuTG9hZExvY2FsUmVzb3VyY2VzKCkpIHsKLSAgICAgICAgcmVwb3J0
VW5zYWZlVXNhZ2Uoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCAiUmVmdXNlZCB0byBnZXQgdW5z
YWZlIGhlYWRlciBcIiIgKyBuYW1lICsgIlwiIik7CisgICAgICAgIHJlcG9ydFVuc2FmZVVzYWdl
KCJSZWZ1c2VkIHRvIGdldCB1bnNhZmUgaGVhZGVyIFwiIiArIG5hbWUgKyAiXCIiKTsKICAgICAg
ICAgcmV0dXJuIFN0cmluZygpOwogICAgIH0KIAogICAgIGlmICghbV9zYW1lT3JpZ2luUmVxdWVz
dCAmJiAhaXNPbkFjY2Vzc0NvbnRyb2xSZXNwb25zZUhlYWRlcldoaXRlbGlzdChuYW1lKSkgewot
ICAgICAgICByZXBvcnRVbnNhZmVVc2FnZShzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksICJSZWZ1
c2VkIHRvIGdldCB1bnNhZmUgaGVhZGVyIFwiIiArIG5hbWUgKyAiXCIiKTsKKyAgICAgICAgcmVw
b3J0VW5zYWZlVXNhZ2UoIlJlZnVzZWQgdG8gZ2V0IHVuc2FmZSBoZWFkZXIgXCIiICsgbmFtZSAr
ICJcIiIpOwogICAgICAgICByZXR1cm4gU3RyaW5nKCk7CiAgICAgfQogICAgIHJldHVybiBtX3Jl
c3BvbnNlLmh0dHBIZWFkZXJGaWVsZChuYW1lKTsKQEAgLTk3MSw3ICs5ODEsNyBAQCB2b2lkIFhN
TEh0dHBSZXF1ZXN0OjpkaWRGYWlsKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQogCiAgICAg
Ly8gTmV0d29yayBmYWlsdXJlcyBhcmUgYWxyZWFkeSByZXBvcnRlZCB0byBXZWIgSW5zcGVjdG9y
IGJ5IFJlc291cmNlTG9hZGVyLgogICAgIGlmIChlcnJvci5kb21haW4oKSA9PSBlcnJvckRvbWFp
bldlYktpdEludGVybmFsKQotICAgICAgICByZXBvcnRVbnNhZmVVc2FnZShzY3JpcHRFeGVjdXRp
b25Db250ZXh0KCksICJYTUxIdHRwUmVxdWVzdCBjYW5ub3QgbG9hZCAiICsgZXJyb3IuZmFpbGlu
Z1VSTCgpICsgIi4gIiArIGVycm9yLmxvY2FsaXplZERlc2NyaXB0aW9uKCkpOworICAgICAgICBy
ZXBvcnRVbnNhZmVVc2FnZSgiWE1MSHR0cFJlcXVlc3QgY2Fubm90IGxvYWQgIiArIGVycm9yLmZh
aWxpbmdVUkwoKSArICIuICIgKyBlcnJvci5sb2NhbGl6ZWREZXNjcmlwdGlvbigpKTsKIAogICAg
IG1fZXhjZXB0aW9uQ29kZSA9IFhNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uOjpORVRXT1JLX0VSUjsK
ICAgICBuZXR3b3JrRXJyb3IoKTsKQEAgLTk5OCw3ICsxMDA4LDYgQEAgdm9pZCBYTUxIdHRwUmVx
dWVzdDo6ZGlkRmluaXNoTG9hZGluZyh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGRvdWJsZSkK
ICNpZiBFTkFCTEUoWEhSX1JFU1BPTlNFX0JMT0IpCiAgICAgLy8gRklYTUU6IFNldCBtX3Jlc3Bv
bnNlQmxvYiB0byBzb21ldGhpbmcgaGVyZSBpbiB0aGUgUmVzcG9uc2VUeXBlQmxvYiBjYXNlLgog
I2VuZGlmCi0KICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnJlc291cmNlUmV0cmlldmVk
QnlYTUxIdHRwUmVxdWVzdChzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIGlkZW50aWZpZXIsIG1f
cmVzcG9uc2VCdWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpLCBtX3VybCwgbV9sYXN0
U2VuZFVSTCwgbV9sYXN0U2VuZExpbmVOdW1iZXIpOwogCiAgICAgYm9vbCBoYWRMb2FkZXIgPSBt
X2xvYWRlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5o
IGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmgKaW5kZXggNjcxOTI1ZTM3MGZk
MjkzOTFiYmE3YmMzNDMyYzYxNzFmYjU1ODIwMC4uZWQ4ZTgyZTMzNGI3NGJkYTJlMWI3NTI3YWVh
YTM2N2MxYzg3MmYyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1
ZXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmgKQEAgLTQwLDYg
KzQwLDcgQEAgY2xhc3MgQmxvYjsKIGNsYXNzIERvY3VtZW50OwogY2xhc3MgRE9NRm9ybURhdGE7
CiBjbGFzcyBSZXNvdXJjZVJlcXVlc3Q7CitjbGFzcyBTY3JpcHRDYWxsU3RhY2s7CiBjbGFzcyBT
ZWN1cml0eU9yaWdpbjsKIGNsYXNzIFNoYXJlZEJ1ZmZlcjsKIGNsYXNzIFRleHRSZXNvdXJjZURl
Y29kZXI7CkBAIC0xODMsNiArMTg0LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIG5ldHdvcmtFcnJv
cigpOwogICAgIHZvaWQgYWJvcnRFcnJvcigpOwogCisgICAgdm9pZCByZXBvcnRVbnNhZmVVc2Fn
ZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UpIGNvbnN0OworCiAgICAgT3duUHRyPFhNTEh0dHBSZXF1
ZXN0VXBsb2FkPiBtX3VwbG9hZDsKIAogICAgIEtVUkwgbV91cmw7CkBAIC0yMjQsNiArMjI3LDcg
QEAgcHJpdmF0ZToKICAgICB1bnNpZ25lZCBtX2xhc3RTZW5kTGluZU51bWJlcjsKICAgICBTdHJp
bmcgbV9sYXN0U2VuZFVSTDsKICAgICBFeGNlcHRpb25Db2RlIG1fZXhjZXB0aW9uQ29kZTsKKyAg
ICBSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBtX2xhc3RTZW5kU3RhY2tUcmFjZTsKIAogICAgIEV2
ZW50VGFyZ2V0RGF0YSBtX2V2ZW50VGFyZ2V0RGF0YTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGE3ZDQ2ZDVkODA2M2Fl
NGEzMmMwOGQxYTNlM2FjMDlkZGI5ZTU5MGUuLjRjODJjMjI4MDg3MTEwYzc3ODExNzZhZTIzMDJh
ODgxYTQ3ODhiYTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMS0xMS0zMCAgVnNldm9sb2Qg
Vmxhc292ICA8dnNldmlrQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBV
bnNhZmUgY3Jvc3Mgb3JpZ2luIGFjY2VzcyBlcnJvcnMgc2hvdWxkIHNob3cgc3RhY2sgdHJhY2Ug
aW4gY29uc29sZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTczMDk5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLWNyb3NzLW9yaWdpbi1pZnJhbWUtbG9n
Z2luZy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9y
L2NvbnNvbGUtY3Jvc3Mtb3JpZ2luLWlmcmFtZS1sb2dnaW5nLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUteGhyLWxvZ2dpbmctZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUteGhyLWxvZ2dpbmcuaHRt
bDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvY3Jvc3Mtb3JpZ2lu
LWlmcmFtZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9odHRwL3Rl
c3RzL2luc3BlY3Rvci9jb25zb2xlLWNyb3NzLW9yaWdpbi1pZnJhbWUtbG9nZ2luZy1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL2NvbnNvbGUteGhyLWxvZ2dpbmctZXhwZWN0ZWQudHh0OiBDb3BpZWQgZnJvbSBMYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLXhoci1sb2dnaW5nLWV4cGVjdGVk
LnR4dC4KKwogMjAxMS0xMS0yOSAgU3RlcGhlbiBXaGl0ZSAgPHNlbm9yYmxhbmNvQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIFVucmV2aWV3ZWQ7IG5ldyBiYXNlbGluZXMgZm9y
IG5ldyB0ZXN0IGFkZGVkIGluIHIxMDEzMjUuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLWNyb3NzLW9yaWdpbi1pZnJhbWUtbG9nZ2luZy1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLWNyb3Nz
LW9yaWdpbi1pZnJhbWUtbG9nZ2luZy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWU1MTI2NGMw
N2ZiZTQ3NjcyOGNmMDk1Y2JiNDUyZTFhNTkzZDcyNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtY3Jvc3Mtb3JpZ2luLWlmcmFtZS1s
b2dnaW5nLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE2IEBACitDT05TT0xFIE1FU1NBR0U6IGxp
bmUgMTogVW5zYWZlIEphdmFTY3JpcHQgYXR0ZW1wdCB0byBhY2Nlc3MgZnJhbWUgd2l0aCBVUkwg
aHR0cDovL2xvY2FsaG9zdDo4MDAwL2luc3BlY3Rvci9yZXNvdXJjZXMvY3Jvc3Mtb3JpZ2luLWlm
cmFtZS5odG1sIGZyb20gZnJhbWUgd2l0aCBVUkwgaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3Bl
Y3Rvci9jb25zb2xlLWNyb3NzLW9yaWdpbi1pZnJhbWUtbG9nZ2luZy5odG1sLiBEb21haW5zLCBw
cm90b2NvbHMgYW5kIHBvcnRzIG11c3QgbWF0Y2guCisKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAx
OiBVbnNhZmUgSmF2YVNjcmlwdCBhdHRlbXB0IHRvIGFjY2VzcyBmcmFtZSB3aXRoIFVSTCBodHRw
Oi8vbG9jYWxob3N0OjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlcy9jcm9zcy1vcmlnaW4taWZyYW1l
Lmh0bWwgZnJvbSBmcmFtZSB3aXRoIFVSTCBodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9y
L2NvbnNvbGUtY3Jvc3Mtb3JpZ2luLWlmcmFtZS1sb2dnaW5nLmh0bWwuIERvbWFpbnMsIHByb3Rv
Y29scyBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KKworQ09OU09MRSBNRVNTQUdFOiBsaW5lIDA6IFVu
YWJsZSB0byBwb3N0IG1lc3NhZ2UgdG8gaHR0cDovLzEyNy4wLjAuMTo4MDAwLiBSZWNpcGllbnQg
aGFzIG9yaWdpbiBodHRwOi8vbG9jYWxob3N0OjgwMDAuCisKK1Rlc3RzIHRoYXQgY3Jvc3Mgb3Jp
Z2luIGVycm9ycyBhcmUgbG9nZ2VkIHdpdGggc291cmNlIHVybCBhbmQgbGluZSBudW1iZXIuCisK
KworVW5zYWZlIEphdmFTY3JpcHQgYXR0ZW1wdCB0byBhY2Nlc3MgZnJhbWUgd2l0aCBVUkwgaHR0
cDovL2xvY2FsaG9zdDo4MDAwL2luc3BlY3Rvci9yZXNvdXJjZXMvY3Jvc3Mtb3JpZ2luLWlmcmFt
ZS5odG1sIGZyb20gZnJhbWUgd2l0aCBVUkwgaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rv
ci9jb25zb2xlLWNyb3NzLW9yaWdpbi1pZnJhbWUtbG9nZ2luZy5odG1sLiBEb21haW5zLCBwcm90
b2NvbHMgYW5kIHBvcnRzIG11c3QgbWF0Y2guCisKK1Vuc2FmZSBKYXZhU2NyaXB0IGF0dGVtcHQg
dG8gYWNjZXNzIGZyYW1lIHdpdGggVVJMIGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9pbnNwZWN0b3Iv
cmVzb3VyY2VzL2Nyb3NzLW9yaWdpbi1pZnJhbWUuaHRtbCBmcm9tIGZyYW1lIHdpdGggVVJMIGh0
dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3IvY29uc29sZS1jcm9zcy1vcmlnaW4taWZyYW1l
LWxvZ2dpbmcuaHRtbC4gRG9tYWlucywgcHJvdG9jb2xzIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgor
CitVbmFibGUgdG8gcG9zdCBtZXNzYWdlIHRvIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC4gUmVjaXBp
ZW50IGhhcyBvcmlnaW4gaHR0cDovL2xvY2FsaG9zdDo4MDAwLgorCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtY3Jvc3Mtb3JpZ2luLWlmcmFt
ZS1sb2dnaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xl
LWNyb3NzLW9yaWdpbi1pZnJhbWUtbG9nZ2luZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU3ZDIxYTUxZWMz
MjYwMTQ0ZDRhY2Q2YmEwMzhmMzlmY2FhNzg0MWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLWNyb3NzLW9yaWdpbi1pZnJhbWUtbG9n
Z2luZy5odG1sCkBAIC0wLDAgKzEsNTAgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0i
aW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9ImNvbnNvbGUtdGVzdC5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gYWNjZXNzRnJhbWUoKQoreworICAgIC8v
IFNob3VsZCBmYWlsLgorICAgIHZhciBob3N0ID0gZnJhbWVzWzBdLmxvY2F0aW9uLmhvc3Q7CisK
KyAgICAvLyBTaG91bGQgZmFpbC4KKyAgICBmcmFtZXNbMF0ubG9jYXRpb24ucmVsb2FkKCk7CisK
KyAgICAvLyBTaG91bGQgZmFpbC4KKyAgICBmcmFtZXNbMF0ucG9zdE1lc3NhZ2UoImZhaWwiLCAi
aHR0cDovLzEyNy4wLjAuMTo4MDAwIik7Cit9CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIHZh
ciBmaW5pc2hBdHRlbXB0c0xlZnQgPSA0OworICAgIEluc3BlY3RvclRlc3QuYWRkQ29uc29sZVNu
aWZmZXIobWF5YmVGaW5pc2gsIHRydWUpOworICAgIENvbnNvbGVBZ2VudC5zZXRNb25pdG9yaW5n
WEhSRW5hYmxlZCh0cnVlLCBzdGVwMSk7CisKKyAgICBmdW5jdGlvbiBzdGVwMSgpCisgICAgewor
ICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJhY2Nlc3NGcmFtZSgpIiwgbWF5
YmVGaW5pc2gpOworICAgIH0KKworICAgIGZ1bmN0aW9uIG1heWJlRmluaXNoKCkKKyAgICB7Cisg
ICAgICAgIC0tZmluaXNoQXR0ZW1wdHNMZWZ0OworICAgICAgICBpZiAoZmluaXNoQXR0ZW1wdHNM
ZWZ0KQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIENvbnNvbGVBZ2VudC5zZXRNb25p
dG9yaW5nWEhSRW5hYmxlZChmYWxzZSwgZmluaXNoKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBm
aW5pc2goKQorICAgIHsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wQ29uc29sZU1lc3NhZ2Vz
KCk7CisgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7CisgICAgfQorfQorPC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8cD5UZXN0cyB0aGF0
IGNyb3NzIG9yaWdpbiBlcnJvcnMgYXJlIGxvZ2dlZCB3aXRoIHNvdXJjZSB1cmwgYW5kIGxpbmUg
bnVtYmVyLjwvcD4KKzxpZnJhbWUgc3JjPSJodHRwOi8vbG9jYWxob3N0OjgwMDAvaW5zcGVjdG9y
L3Jlc291cmNlcy9jcm9zcy1vcmlnaW4taWZyYW1lLmh0bWwiPjwvaWZyYW1lPgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29u
c29sZS14aHItbG9nZ2luZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2lu
c3BlY3Rvci9jb25zb2xlLXhoci1sb2dnaW5nLWV4cGVjdGVkLnR4dAppbmRleCAwNDUwYzBjNDI2
NmFiM2FlODdjNmI1ZmI1ZjgxMjQ3N2E0MTg4MTc5Li5lMmFiNzdiZjdhYmY4ODMyNGYyZWVmMDQx
N2Q5ZGU3MmU3YjZiY2Q2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci9jb25zb2xlLXhoci1sb2dnaW5nLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLXhoci1sb2dnaW5nLWV4cGVjdGVkLnR4dApAQCAt
MSw4ICsxLDEwIEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTogUmVmdXNlZCB0byBzZXQgdW5z
YWZlIGhlYWRlciAib3JpZ2luIgogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEwOiBzZW5kaW5nIGEg
JXMgcmVxdWVzdCB0byAlcwogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEwOiBzZW5kaW5nIGEgJXMg
cmVxdWVzdCB0byAlcwogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEwOiBzZW5kaW5nIGEgJXMgcmVx
dWVzdCB0byAlcwogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEwOiBzZW5kaW5nIGEgJXMgcmVxdWVz
dCB0byAlcwogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE6IFhNTEh0dHBSZXF1ZXN0IGNhbm5vdCBs
b2FkIGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2VzL3hoci1leGlzdHMu
aHRtbC4gT3JpZ2luIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMCBpcyBub3QgYWxsb3dlZCBieSBBY2Nl
c3MtQ29udHJvbC1BbGxvdy1PcmlnaW4uCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTogUmVmdXNl
ZCB0byBzZXQgdW5zYWZlIGhlYWRlciAib3JpZ2luIgogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEw
OiBzZW5kaW5nIGEgJXMgcmVxdWVzdCB0byAlcwogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEwOiBz
ZW5kaW5nIGEgJXMgcmVxdWVzdCB0byAlcwogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEwOiBzZW5k
aW5nIGEgJXMgcmVxdWVzdCB0byAlcwpAQCAtMTAsNiArMTIsNyBAQCBDT05TT0xFIE1FU1NBR0U6
IGxpbmUgMTA6IHNlbmRpbmcgYSAlcyByZXF1ZXN0IHRvICVzCiBDT05TT0xFIE1FU1NBR0U6IGxp
bmUgMTogWE1MSHR0cFJlcXVlc3QgY2Fubm90IGxvYWQgaHR0cDovL2xvY2FsaG9zdDo4MDAwL2lu
c3BlY3Rvci9yZXNvdXJjZXMveGhyLWV4aXN0cy5odG1sLiBPcmlnaW4gaHR0cDovLzEyNy4wLjAu
MTo4MDAwIGlzIG5vdCBhbGxvd2VkIGJ5IEFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbi4KIFRl
c3RzIHRoYXQgWE1MSHR0cFJlcXVlc3QgTG9nZ2luZyB3b3JrcyB3aGVuIEVuYWJsZWQgYW5kIGRv
ZXNuJ3Qgc2hvdyBsb2dzIHdoZW4gRGlzYWJsZWQuCiAKK1JlZnVzZWQgdG8gc2V0IHVuc2FmZSBo
ZWFkZXIgIm9yaWdpbiIKIGNvbnNvbGUteGhyLWxvZ2dpbmcuaHRtbDoxMHNlbmRpbmcgYSBHRVQg
cmVxdWVzdCB0byByZXNvdXJjZXMveGhyLWV4aXN0cy5odG1sCiBYSFIgZmluaXNoZWQgbG9hZGlu
ZzogImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2VzL3hoci1leGlzdHMu
aHRtbCIuCiBjb25zb2xlLXhoci1sb2dnaW5nLmh0bWw6MTBzZW5kaW5nIGEgR0VUIHJlcXVlc3Qg
dG8gcmVzb3VyY2VzL3hoci1kb2VzLW5vdC1leGlzdC5odG1sCkBAIC0xOSw2ICsyMiw3IEBAIGNv
bnNvbGUteGhyLWxvZ2dpbmcuaHRtbDoxMHNlbmRpbmcgYSBQT1NUIHJlcXVlc3QgdG8gcmVzb3Vy
Y2VzL3Bvc3QtdGFyZ2V0LmNnaQogWEhSIGZpbmlzaGVkIGxvYWRpbmc6ICJodHRwOi8vMTI3LjAu
MC4xOjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlcy9wb3N0LXRhcmdldC5jZ2kiLgogY29uc29sZS14
aHItbG9nZ2luZy5odG1sOjEwc2VuZGluZyBhIEdFVCByZXF1ZXN0IHRvIGh0dHA6Ly9sb2NhbGhv
c3Q6ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2VzL3hoci1leGlzdHMuaHRtbAogWE1MSHR0cFJlcXVl
c3QgY2Fubm90IGxvYWQgaHR0cDovL2xvY2FsaG9zdDo4MDAwL2luc3BlY3Rvci9yZXNvdXJjZXMv
eGhyLWV4aXN0cy5odG1sLiBPcmlnaW4gaHR0cDovLzEyNy4wLjAuMTo4MDAwIGlzIG5vdCBhbGxv
d2VkIGJ5IEFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbi4KK1JlZnVzZWQgdG8gc2V0IHVuc2Fm
ZSBoZWFkZXIgIm9yaWdpbiIKIGNvbnNvbGUteGhyLWxvZ2dpbmcuaHRtbDoxMHNlbmRpbmcgYSBH
RVQgcmVxdWVzdCB0byByZXNvdXJjZXMveGhyLWV4aXN0cy5odG1sCiBjb25zb2xlLXhoci1sb2dn
aW5nLmh0bWw6MTBzZW5kaW5nIGEgR0VUIHJlcXVlc3QgdG8gcmVzb3VyY2VzL3hoci1kb2VzLW5v
dC1leGlzdC5odG1sCiBHRVQgaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9yZXNvdXJj
ZXMveGhyLWRvZXMtbm90LWV4aXN0Lmh0bWwgNDA0IChOb3QgRm91bmQpCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLXhoci1sb2dnaW5nLmh0bWwg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLXhoci1sb2dnaW5nLmh0
bWwKaW5kZXggNzljYWI2ODQ3MDMyMGJkN2Q3OGIwYzNjNmQ2MWQzOTE3Yjk4ZTYxNS4uNjdmMWUy
NDRkYThlOWJjZjI5NWIxYjM3YmE1YTc5MjdiMDVhZGQ1NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29uc29sZS14aHItbG9nZ2luZy5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUteGhyLWxvZ2dpbmcuaHRtbApA
QCAtMTMsNiArMTMsMTAgQEAgZnVuY3Rpb24gcmVxdWVzdEhlbHBlcihtZXRob2QsIHVybCkKIAog
ZnVuY3Rpb24gbWFrZVJlcXVlc3RzKCkKIHsKKyAgICB2YXIgeGhyID0gbmV3IFhNTEh0dHBSZXF1
ZXN0KCk7CisgICAgeGhyLm9wZW4oIkdFVCIsICJyZXNvdXJjZXMveGhyLWV4aXN0cy5odG1sIiwg
ZmFsc2UpOworICAgIHhoci5zZXRSZXF1ZXN0SGVhZGVyKCJvcmlnaW4iLCAiRk9SQklEREVOIik7
CisKICAgICAvLyAxLiBQYWdlIHRoYXQgZXhpc3RzLgogICAgIHJlcXVlc3RIZWxwZXIoIkdFVCIs
ICJyZXNvdXJjZXMveGhyLWV4aXN0cy5odG1sIik7CiAgICAgLy8gMi4gUGFnZSB0aGF0IGRvZXNu
J3QgZXhpc3QuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9y
ZXNvdXJjZXMvY3Jvc3Mtb3JpZ2luLWlmcmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2Nyb3NzLW9yaWdpbi1pZnJhbWUuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5kNTBiOTZhZjRmNzQ5ZTBiZGZmZTljMzM0ZTg2YjZjZjk0YTAzMzZlCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2Nyb3NzLW9y
aWdpbi1pZnJhbWUuaHRtbApAQCAtMCwwICsxLDcgQEAKKzxodG1sPgorPGhlYWQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKyAgPHA+Q3Jvc3Mgb3JpZ2luIGZyYW1lLjxwPgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvY29uc29sZS1jcm9zcy1vcmlnaW4taWZyYW1lLWxvZ2dpbmctZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29uc29s
ZS1jcm9zcy1vcmlnaW4taWZyYW1lLWxvZ2dpbmctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk1
ZDA4Y2I1YzE0N2Q5YzY1OTEwOWExODA2MTM3YTBkMzU2NTU0YjMKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25z
b2xlLWNyb3NzLW9yaWdpbi1pZnJhbWUtbG9nZ2luZy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwx
NiBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE6IFVuc2FmZSBKYXZhU2NyaXB0IGF0dGVtcHQg
dG8gYWNjZXNzIGZyYW1lIHdpdGggVVJMIGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9pbnNwZWN0b3Iv
cmVzb3VyY2VzL2Nyb3NzLW9yaWdpbi1pZnJhbWUuaHRtbCBmcm9tIGZyYW1lIHdpdGggVVJMIGh0
dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3IvY29uc29sZS1jcm9zcy1vcmlnaW4taWZyYW1l
LWxvZ2dpbmcuaHRtbC4gRG9tYWlucywgcHJvdG9jb2xzIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgor
CitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTogVW5zYWZlIEphdmFTY3JpcHQgYXR0ZW1wdCB0byBh
Y2Nlc3MgZnJhbWUgd2l0aCBVUkwgaHR0cDovL2xvY2FsaG9zdDo4MDAwL2luc3BlY3Rvci9yZXNv
dXJjZXMvY3Jvc3Mtb3JpZ2luLWlmcmFtZS5odG1sIGZyb20gZnJhbWUgd2l0aCBVUkwgaHR0cDov
LzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9jb25zb2xlLWNyb3NzLW9yaWdpbi1pZnJhbWUtbG9n
Z2luZy5odG1sLiBEb21haW5zLCBwcm90b2NvbHMgYW5kIHBvcnRzIG11c3QgbWF0Y2guCisKK0NP
TlNPTEUgTUVTU0FHRTogbGluZSAwOiBVbmFibGUgdG8gcG9zdCBtZXNzYWdlIHRvIGh0dHA6Ly8x
MjcuMC4wLjE6ODAwMC4gUmVjaXBpZW50IGhhcyBvcmlnaW4gaHR0cDovL2xvY2FsaG9zdDo4MDAw
LgorCitUZXN0cyB0aGF0IGNyb3NzIG9yaWdpbiBlcnJvcnMgYXJlIGxvZ2dlZCB3aXRoIHNvdXJj
ZSB1cmwgYW5kIGxpbmUgbnVtYmVyLgorCisKK2NvbnNvbGUtY3Jvc3Mtb3JpZ2luLWlmcmFtZS1s
b2dnaW5nLmh0bWw6OVVuc2FmZSBKYXZhU2NyaXB0IGF0dGVtcHQgdG8gYWNjZXNzIGZyYW1lIHdp
dGggVVJMIGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2VzL2Nyb3NzLW9y
aWdpbi1pZnJhbWUuaHRtbCBmcm9tIGZyYW1lIHdpdGggVVJMIGh0dHA6Ly8xMjcuMC4wLjE6ODAw
MC9pbnNwZWN0b3IvY29uc29sZS1jcm9zcy1vcmlnaW4taWZyYW1lLWxvZ2dpbmcuaHRtbC4gRG9t
YWlucywgcHJvdG9jb2xzIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgorCitjb25zb2xlLWNyb3NzLW9y
aWdpbi1pZnJhbWUtbG9nZ2luZy5odG1sOjEyVW5zYWZlIEphdmFTY3JpcHQgYXR0ZW1wdCB0byBh
Y2Nlc3MgZnJhbWUgd2l0aCBVUkwgaHR0cDovL2xvY2FsaG9zdDo4MDAwL2luc3BlY3Rvci9yZXNv
dXJjZXMvY3Jvc3Mtb3JpZ2luLWlmcmFtZS5odG1sIGZyb20gZnJhbWUgd2l0aCBVUkwgaHR0cDov
LzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9jb25zb2xlLWNyb3NzLW9yaWdpbi1pZnJhbWUtbG9n
Z2luZy5odG1sLiBEb21haW5zLCBwcm90b2NvbHMgYW5kIHBvcnRzIG11c3QgbWF0Y2guCisKK2Nv
bnNvbGUtY3Jvc3Mtb3JpZ2luLWlmcmFtZS1sb2dnaW5nLmh0bWw6MTVVbmFibGUgdG8gcG9zdCBt
ZXNzYWdlIHRvIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC4gUmVjaXBpZW50IGhhcyBvcmlnaW4gaHR0
cDovL2xvY2FsaG9zdDo4MDAwLgorCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUteGhyLWxvZ2dpbmctZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vaHR0cC90ZXN0cy9pbnNwZWN0
b3IvY29uc29sZS14aHItbG9nZ2luZy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjRiMDRhYjJk
YmMwZjUyZDRmOTM1YTYxZTAxZDc3ZTdjNTdkODhjNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUteGhy
LWxvZ2dpbmctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzIgQEAKK0NPTlNPTEUgTUVTU0FHRTog
bGluZSAxOiBSZWZ1c2VkIHRvIHNldCB1bnNhZmUgaGVhZGVyICJvcmlnaW4iCitDT05TT0xFIE1F
U1NBR0U6IGxpbmUgMTA6IHNlbmRpbmcgYSAlcyByZXF1ZXN0IHRvICVzCitDT05TT0xFIE1FU1NB
R0U6IGxpbmUgMTA6IHNlbmRpbmcgYSAlcyByZXF1ZXN0IHRvICVzCitDT05TT0xFIE1FU1NBR0U6
IGxpbmUgMTA6IHNlbmRpbmcgYSAlcyByZXF1ZXN0IHRvICVzCitDT05TT0xFIE1FU1NBR0U6IGxp
bmUgMTA6IHNlbmRpbmcgYSAlcyByZXF1ZXN0IHRvICVzCitDT05TT0xFIE1FU1NBR0U6IGxpbmUg
MTogWE1MSHR0cFJlcXVlc3QgY2Fubm90IGxvYWQgaHR0cDovL2xvY2FsaG9zdDo4MDAwL2luc3Bl
Y3Rvci9yZXNvdXJjZXMveGhyLWV4aXN0cy5odG1sLiBPcmlnaW4gaHR0cDovLzEyNy4wLjAuMTo4
MDAwIGlzIG5vdCBhbGxvd2VkIGJ5IEFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbi4KK0NPTlNP
TEUgTUVTU0FHRTogbGluZSAxOiBSZWZ1c2VkIHRvIHNldCB1bnNhZmUgaGVhZGVyICJvcmlnaW4i
CitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTA6IHNlbmRpbmcgYSAlcyByZXF1ZXN0IHRvICVzCitD
T05TT0xFIE1FU1NBR0U6IGxpbmUgMTA6IHNlbmRpbmcgYSAlcyByZXF1ZXN0IHRvICVzCitDT05T
T0xFIE1FU1NBR0U6IGxpbmUgMTA6IHNlbmRpbmcgYSAlcyByZXF1ZXN0IHRvICVzCitDT05TT0xF
IE1FU1NBR0U6IGxpbmUgMTA6IHNlbmRpbmcgYSAlcyByZXF1ZXN0IHRvICVzCitDT05TT0xFIE1F
U1NBR0U6IGxpbmUgMTogWE1MSHR0cFJlcXVlc3QgY2Fubm90IGxvYWQgaHR0cDovL2xvY2FsaG9z
dDo4MDAwL2luc3BlY3Rvci9yZXNvdXJjZXMveGhyLWV4aXN0cy5odG1sLiBPcmlnaW4gaHR0cDov
LzEyNy4wLjAuMTo4MDAwIGlzIG5vdCBhbGxvd2VkIGJ5IEFjY2Vzcy1Db250cm9sLUFsbG93LU9y
aWdpbi4KK1Rlc3RzIHRoYXQgWE1MSHR0cFJlcXVlc3QgTG9nZ2luZyB3b3JrcyB3aGVuIEVuYWJs
ZWQgYW5kIGRvZXNuJ3Qgc2hvdyBsb2dzIHdoZW4gRGlzYWJsZWQuCisKK2NvbnNvbGUteGhyLWxv
Z2dpbmcuaHRtbDoxOFJlZnVzZWQgdG8gc2V0IHVuc2FmZSBoZWFkZXIgIm9yaWdpbiIKK2NvbnNv
bGUteGhyLWxvZ2dpbmcuaHRtbDoxMHNlbmRpbmcgYSBHRVQgcmVxdWVzdCB0byByZXNvdXJjZXMv
eGhyLWV4aXN0cy5odG1sCitYSFIgZmluaXNoZWQgbG9hZGluZzogImh0dHA6Ly8xMjcuMC4wLjE6
ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2VzL3hoci1leGlzdHMuaHRtbCIuCitjb25zb2xlLXhoci1s
b2dnaW5nLmh0bWw6MTBzZW5kaW5nIGEgR0VUIHJlcXVlc3QgdG8gcmVzb3VyY2VzL3hoci1kb2Vz
LW5vdC1leGlzdC5odG1sCitHRVQgaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9yZXNv
dXJjZXMveGhyLWRvZXMtbm90LWV4aXN0Lmh0bWwgNDA0IChOb3QgRm91bmQpCitYSFIgZmluaXNo
ZWQgbG9hZGluZzogImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2VzL3ho
ci1kb2VzLW5vdC1leGlzdC5odG1sIi4KK2NvbnNvbGUteGhyLWxvZ2dpbmcuaHRtbDoxMHNlbmRp
bmcgYSBQT1NUIHJlcXVlc3QgdG8gcmVzb3VyY2VzL3Bvc3QtdGFyZ2V0LmNnaQorWEhSIGZpbmlz
aGVkIGxvYWRpbmc6ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlcy9w
b3N0LXRhcmdldC5jZ2kiLgorY29uc29sZS14aHItbG9nZ2luZy5odG1sOjEwc2VuZGluZyBhIEdF
VCByZXF1ZXN0IHRvIGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2VzL3ho
ci1leGlzdHMuaHRtbAorbmV0d29yay10ZXN0LmpzOjM5WE1MSHR0cFJlcXVlc3QgY2Fubm90IGxv
YWQgaHR0cDovL2xvY2FsaG9zdDo4MDAwL2luc3BlY3Rvci9yZXNvdXJjZXMveGhyLWV4aXN0cy5o
dG1sLiBPcmlnaW4gaHR0cDovLzEyNy4wLjAuMTo4MDAwIGlzIG5vdCBhbGxvd2VkIGJ5IEFjY2Vz
cy1Db250cm9sLUFsbG93LU9yaWdpbi4KK2NvbnNvbGUteGhyLWxvZ2dpbmcuaHRtbDoxOFJlZnVz
ZWQgdG8gc2V0IHVuc2FmZSBoZWFkZXIgIm9yaWdpbiIKK2NvbnNvbGUteGhyLWxvZ2dpbmcuaHRt
bDoxMHNlbmRpbmcgYSBHRVQgcmVxdWVzdCB0byByZXNvdXJjZXMveGhyLWV4aXN0cy5odG1sCitj
b25zb2xlLXhoci1sb2dnaW5nLmh0bWw6MTBzZW5kaW5nIGEgR0VUIHJlcXVlc3QgdG8gcmVzb3Vy
Y2VzL3hoci1kb2VzLW5vdC1leGlzdC5odG1sCitHRVQgaHR0cDovLzEyNy4wLjAuMTo4MDAwL2lu
c3BlY3Rvci9yZXNvdXJjZXMveGhyLWRvZXMtbm90LWV4aXN0Lmh0bWwgNDA0IChOb3QgRm91bmQp
Citjb25zb2xlLXhoci1sb2dnaW5nLmh0bWw6MTBzZW5kaW5nIGEgUE9TVCByZXF1ZXN0IHRvIHJl
c291cmNlcy9wb3N0LXRhcmdldC5jZ2kKK2NvbnNvbGUteGhyLWxvZ2dpbmcuaHRtbDoxMHNlbmRp
bmcgYSBHRVQgcmVxdWVzdCB0byBodHRwOi8vbG9jYWxob3N0OjgwMDAvaW5zcGVjdG9yL3Jlc291
cmNlcy94aHItZXhpc3RzLmh0bWwKK25ldHdvcmstdGVzdC5qczozOVhNTEh0dHBSZXF1ZXN0IGNh
bm5vdCBsb2FkIGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2VzL3hoci1l
eGlzdHMuaHRtbC4gT3JpZ2luIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMCBpcyBub3QgYWxsb3dlZCBi
eSBBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4uCisK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>118371</attachid>
            <date>2011-12-08 05:34:09 -0800</date>
            <delta_ts>2011-12-08 05:59:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73099-20111208173407.patch</filename>
            <type>text/plain</type>
            <size>45237</size>
            <attacher name="Vsevolod Vlasov">vsevik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAyMzMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2ZkYTQzZWNlYWUyNmUx
NjExZDQwZmVmNTEwNWUwYmU5ZmEyNWIyMC4uYmNmMWU4NGY3ZWRmYzZlN2QzMDU1MWNhNzk3MGZi
Y2FlNzYwNTZkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDExLTEyLTA4ICBWc2V2
b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IFVuc2FmZSBjcm9zcyBvcmlnaW4gYWNjZXNzIGVycm9ycyBzaG91bGQgc2hvdyBzdGFjayB0
cmFjZSBpbiBjb25zb2xlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NzMwOTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBUZXN0OiBodHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLWNyb3NzLW9yaWdpbi1p
ZnJhbWUtbG9nZ2luZy5odG1sCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1
ZXN0Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTWE1MSHR0cFJlcXVlc3Q6OnNlbmQp
OgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4UHJveHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
YWRkTWVzc2FnZVRvQ29uc29sZSk6CisgICAgICAgIChXZWJDb3JlOjpsb2dJbmZvKToKKyAgICAg
ICAgKFdlYkNvcmU6OlY4UHJveHk6OnJlcG9ydFVuc2FmZUFjY2Vzc1RvKToKKyAgICAgICAgKiBi
aW5kaW5ncy92OC9jdXN0b20vVjhYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpWOFhNTEh0dHBSZXF1ZXN0OjpzZW5kQ2FsbGJhY2spOgorICAgICAgICAqIGluc3Bl
Y3Rvci9Db25zb2xlTWVzc2FnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb25zb2xlTWVzc2Fn
ZTo6Q29uc29sZU1lc3NhZ2UpOgorICAgICAgICAqIGluc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5o
OgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDb25zb2xlQWdlbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29uc29sZUFnZW50OjplbmFibGUpOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9yQ29uc29sZUFnZW50OjpyZXNvdXJjZVJldHJpZXZlZEJ5WE1MSHR0cFJl
cXVlc3QpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDb25zb2xlQWdlbnQuaDoKKyAg
ICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ29uc29sZUluc3RydW1lbnRhdGlvbi5oOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpyZXNvdXJjZVJldHJpZXZl
ZEJ5WE1MSHR0cFJlcXVlc3QpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
OjpyZXNvdXJjZVJldHJpZXZlZEJ5WE1MSHR0cFJlcXVlc3RJbXBsKToKKyAgICAgICAgKiBpbnNw
ZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmg6CisgICAgICAgICogbG9hZGVyL0ZyYW1l
TG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpzaG91bGRBbGxvd05h
dmlnYXRpb24pOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlBvc3RNZXNzYWdlVGltZXI6OlBvc3RNZXNzYWdlVGltZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6UG9zdE1lc3NhZ2VUaW1lcjo6c3RhY2tUcmFjZSk6CisgICAgICAgIChXZWJDb3JlOjpET01X
aW5kb3c6OnBvc3RNZXNzYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6cG9zdE1l
c3NhZ2VUaW1lckZpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6cHJpbnRFcnJv
ck1lc3NhZ2UpOgorICAgICAgICAqIHhtbC9YTUxIdHRwUmVxdWVzdC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6WE1MSHR0cFJlcXVlc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6WE1MSHR0cFJlcXVlc3Q6OnNldENhbGxTdGFjayk6CisgICAgICAgIChXZWJDb3JlOjpYTUxI
dHRwUmVxdWVzdDo6aW5pdFNlbmQpOgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6
OnJlcG9ydFVuc2FmZVVzYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0Ojpz
ZXRSZXF1ZXN0SGVhZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0OjpnZXRS
ZXNwb25zZUhlYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6ZGlkRmFp
bCk6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6ZGlkRmluaXNoTG9hZGluZyk6
CisgICAgICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0Lmg6CisgICAgICAgICogeG1sL1hNTEh0dHBS
ZXF1ZXN0LmlkbDoKKwogMjAxMS0xMi0wOCAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJv
dEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEwMjMyMS4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RD
dXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdEN1
c3RvbS5jcHAKaW5kZXggM2FiMjA3ZWIyYTY0MzljMjQxNjU0YjU1YTIxMTkxYzI4YzU1MGIwNi4u
NGI3OWM4ZjgyMDM0YzY4ZTU2ZTQxYWZiZTBhZmMyYmI4MzQxMzViZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAKQEAg
LTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIkhUTUxE
b2N1bWVudC5oIgogI2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIgorI2luY2x1
ZGUgIlNjcmlwdENhbGxTdGFja0ZhY3RvcnkuaCIKICNpbmNsdWRlICJKU0FycmF5QnVmZmVyLmgi
CiAjaW5jbHVkZSAiSlNCbG9iLmgiCiAjaW5jbHVkZSAiSlNET01Gb3JtRGF0YS5oIgpAQCAtMTEz
LDYgKzExNCw4IEBAIEpTVmFsdWUgSlNYTUxIdHRwUmVxdWVzdDo6c2VuZChFeGVjU3RhdGUqIGV4
ZWMpCiB7CiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsU2VuZFhNTEh0dHBSZXF1
ZXN0KGltcGwoKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBpbXBsKCktPnVybCgpKTsKIAor
ICAgIGltcGwoKS0+c2V0Q2FsbFN0YWNrKGNyZWF0ZVNjcmlwdENhbGxTdGFjayhleGVjKSk7CisK
ICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKICAgICBpZiAoIWV4ZWMtPmFyZ3VtZW50Q291bnQo
KSkKICAgICAgICAgaW1wbCgpLT5zZW5kKGVjKTsKQEAgLTEzMiwxNCArMTM1LDYgQEAgSlNWYWx1
ZSBKU1hNTEh0dHBSZXF1ZXN0OjpzZW5kKEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgICAgIGlt
cGwoKS0+c2VuZCh1c3RyaW5nVG9TdHJpbmcodmFsLnRvU3RyaW5nKGV4ZWMpKSwgZWMpOwogICAg
IH0KIAotICAgIGludCBzaWduZWRMaW5lTnVtYmVyOwotICAgIGludHB0cl90IHNvdXJjZUlEOwot
ICAgIFVTdHJpbmcgc291cmNlVVJMOwotICAgIEpTVmFsdWUgZnVuY3Rpb247Ci0gICAgZXhlYy0+
aW50ZXJwcmV0ZXIoKS0+cmV0cmlldmVMYXN0Q2FsbGVyKGV4ZWMsIHNpZ25lZExpbmVOdW1iZXIs
IHNvdXJjZUlELCBzb3VyY2VVUkwsIGZ1bmN0aW9uKTsKLSAgICBpbXBsKCktPnNldExhc3RTZW5k
TGluZU51bWJlcihzaWduZWRMaW5lTnVtYmVyID49IDAgPyBzaWduZWRMaW5lTnVtYmVyIDogMCk7
Ci0gICAgaW1wbCgpLT5zZXRMYXN0U2VuZFVSTCh1c3RyaW5nVG9TdHJpbmcoc291cmNlVVJMKSk7
Ci0KICAgICBzZXRET01FeGNlcHRpb24oZXhlYywgZWMpOwogICAgIHJldHVybiBqc1VuZGVmaW5l
ZCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFByb3h5LmNwcAppbmRleCAwNTc2MjI4
NmFiMjZmMjFmYTcxYWZmNjRjZmJiYmZlMTcxNmEzNWQ0Li41MzU1YzNlMjU2NzZiNjgwOTkxNWNj
YWJlODgwYjBmNWM3ODViOGQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92
OC9WOFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFByb3h5LmNw
cApAQCAtNDUsNiArNDUsOCBAQAogI2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5o
IgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN1cHBvcnQuaCIKKyNpbmNs
dWRlICJTY3JpcHRDYWxsU3RhY2suaCIKKyNpbmNsdWRlICJTY3JpcHRDYWxsU3RhY2tGYWN0b3J5
LmgiCiAjaW5jbHVkZSAiU2NyaXB0U291cmNlQ29kZS5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3Jp
Z2luLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKQEAgLTExOSwxMSArMTIxLDExIEBAIHR5cGVk
ZWYgSGFzaE1hcDxOb2RlKiwgdjg6Ok9iamVjdCo+IERPTU5vZGVNYXA7CiB0eXBlZGVmIEhhc2hN
YXA8dm9pZCosIHY4OjpPYmplY3QqPiBET01PYmplY3RNYXA7CiB0eXBlZGVmIEhhc2hNYXA8aW50
LCB2ODo6RnVuY3Rpb25UZW1wbGF0ZSo+IEZ1bmN0aW9uVGVtcGxhdGVNYXA7CiAKLXN0YXRpYyB2
b2lkIGFkZE1lc3NhZ2VUb0NvbnNvbGUoUGFnZSogcGFnZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdl
LCBjb25zdCBTdHJpbmcmIHNvdXJjZUlELCB1bnNpZ25lZCBsaW5lTnVtYmVyKQorc3RhdGljIHZv
aWQgYWRkTWVzc2FnZVRvQ29uc29sZShQYWdlKiBwYWdlLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2Us
IGNvbnN0IFN0cmluZyYgc291cmNlSUQsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIFBhc3NSZWZQdHI8
U2NyaXB0Q2FsbFN0YWNrPiBzdGFja1RyYWNlKQogewogICAgIEFTU0VSVChwYWdlKTsKICAgICBD
b25zb2xlKiBjb25zb2xlID0gcGFnZS0+bWFpbkZyYW1lKCktPmRvbVdpbmRvdygpLT5jb25zb2xl
KCk7Ci0gICAgY29uc29sZS0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VU
eXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgbWVzc2FnZSwgbGluZU51bWJlciwgc291cmNlSUQpOwor
ICAgIGNvbnNvbGUtPmFkZE1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwg
RXJyb3JNZXNzYWdlTGV2ZWwsIG1lc3NhZ2UsIGxpbmVOdW1iZXIsIHNvdXJjZUlELCBzdGFja1Ry
YWNlKTsKIH0KIAogdm9pZCBsb2dJbmZvKEZyYW1lKiBmcmFtZSwgY29uc3QgU3RyaW5nJiBtZXNz
YWdlLCBjb25zdCBTdHJpbmcmIHVybCkKQEAgLTEzMSw3ICsxMzMsNyBAQCB2b2lkIGxvZ0luZm8o
RnJhbWUqIGZyYW1lLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgdXJsKQog
ICAgIFBhZ2UqIHBhZ2UgPSBmcmFtZS0+cGFnZSgpOwogICAgIGlmICghcGFnZSkKICAgICAgICAg
cmV0dXJuOwotICAgIGFkZE1lc3NhZ2VUb0NvbnNvbGUocGFnZSwgbWVzc2FnZSwgdXJsLCAwKTsK
KyAgICBhZGRNZXNzYWdlVG9Db25zb2xlKHBhZ2UsIG1lc3NhZ2UsIHVybCwgMCwgMCk7CiB9CiAK
IHZvaWQgVjhQcm94eTo6cmVwb3J0VW5zYWZlQWNjZXNzVG8oRnJhbWUqIHRhcmdldCkKQEAgLTE2
MSwxMCArMTYzLDEyIEBAIHZvaWQgVjhQcm94eTo6cmVwb3J0VW5zYWZlQWNjZXNzVG8oRnJhbWUq
IHRhcmdldCkKICAgICBjb25zdCBTdHJpbmcga1NvdXJjZUlEID0gIiI7CiAgICAgY29uc3QgaW50
IGtMaW5lTnVtYmVyID0gMTsKIAorICAgIFJlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IHN0YWNrVHJh
Y2UgPSBjcmVhdGVTY3JpcHRDYWxsU3RhY2soU2NyaXB0Q2FsbFN0YWNrOjptYXhDYWxsU3RhY2tT
aXplVG9DYXB0dXJlLCB0cnVlKTsKKwogICAgIC8vIE5PVEU6IFNhZmFyaSBwcmludHMgdGhlIG1l
c3NhZ2UgaW4gdGhlIHRhcmdldCBwYWdlLCBidXQgaXQgc2VlbXMgbGlrZQogICAgIC8vIGl0IHNo
b3VsZCBiZSBpbiB0aGUgc291cmNlIHBhZ2UuIEV2ZW4gZm9yIGRlbGF5ZWQgbWVzc2FnZXMsIHdl
IHB1dCBpdCBpbgogICAgIC8vIHRoZSBzb3VyY2UgcGFnZS4KLSAgICBhZGRNZXNzYWdlVG9Db25z
b2xlKHBhZ2UsIHN0ciwga1NvdXJjZUlELCBrTGluZU51bWJlcik7CisgICAgYWRkTWVzc2FnZVRv
Q29uc29sZShwYWdlLCBzdHIsIGtTb3VyY2VJRCwga0xpbmVOdW1iZXIsIHN0YWNrVHJhY2UucmVs
ZWFzZSgpKTsKIH0KIAogc3RhdGljIHZvaWQgaGFuZGxlRmF0YWxFcnJvckluVjgoKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4WE1MSHR0cFJlcXVlc3RD
dXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4WE1MSHR0cFJl
cXVlc3RDdXN0b20uY3BwCmluZGV4IDgyMWE1YzVkYjk5ZTI4ODM2MzkzMWUxMWNiNmMwYTUxZjcz
M2RkMGEuLjA1MWZmZGVlMjdhMjZmYWNjZTQ1M2JkZTIyZGVjODA5NTYyMTVjYzMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFhNTEh0dHBSZXF1ZXN0Q3Vz
dG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhYTUxIdHRw
UmVxdWVzdEN1c3RvbS5jcHAKQEAgLTM1LDYgKzM1LDggQEAKICNpbmNsdWRlICJEb2N1bWVudC5o
IgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
LmgiCisjaW5jbHVkZSAiU2NyaXB0Q2FsbFN0YWNrLmgiCisjaW5jbHVkZSAiU2NyaXB0Q2FsbFN0
YWNrRmFjdG9yeS5oIgogI2luY2x1ZGUgIlY4QXJyYXlCdWZmZXIuaCIKICNpbmNsdWRlICJWOEJp
bmRpbmcuaCIKICNpbmNsdWRlICJWOEJsb2IuaCIKQEAgLTE3Miw2ICsxNzQsOCBAQCB2ODo6SGFu
ZGxlPHY4OjpWYWx1ZT4gVjhYTUxIdHRwUmVxdWVzdDo6c2VuZENhbGxiYWNrKGNvbnN0IHY4OjpB
cmd1bWVudHMmIGFyZ3MpCiAKICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxTZW5k
WE1MSHR0cFJlcXVlc3QoeG1sSHR0cFJlcXVlc3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwg
eG1sSHR0cFJlcXVlc3QtPnVybCgpKTsKIAorICAgIHhtbEh0dHBSZXF1ZXN0LT5zZXRDYWxsU3Rh
Y2soY3JlYXRlU2NyaXB0Q2FsbFN0YWNrKCkpOworCiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7
CiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAxKQogICAgICAgICB4bWxIdHRwUmVxdWVzdC0+c2Vu
ZChlYyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvQ29uc29sZU1lc3Nh
Z2UuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0NvbnNvbGVNZXNzYWdlLmNwcAppbmRl
eCBlMTZhNzJlYTY2NjUwNWM3NzNjNGUxOGJlMjVmY2U0YmU0MGNkZmE0Li4xNTAzMmFmYjZhNGEy
YjYzZjM0MWJlZDM1NzM5ZjVkZTBjN2M2ZGM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9Db25zb2xlTWVzc2FnZS5jcHAKQEAgLTQ1LDcgKzQ1LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi1Db25zb2xlTWVzc2FnZTo6Q29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzLCBN
ZXNzYWdlVHlwZSB0LCBNZXNzYWdlTGV2ZWwgbCwgY29uc3QgU3RyaW5nJiBtLCB1bnNpZ25lZCBs
aSwgY29uc3QgU3RyaW5nJiB1LCBjb25zdCBTdHJpbmcmIHJlcXVlc3RJZCkKK0NvbnNvbGVNZXNz
YWdlOjpDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlIHMsIE1lc3NhZ2VUeXBlIHQsIE1lc3Nh
Z2VMZXZlbCBsLCBjb25zdCBTdHJpbmcmIG0sIHVuc2lnbmVkIGxpLCBjb25zdCBTdHJpbmcmIHUp
CiAgICAgOiBtX3NvdXJjZShzKQogICAgICwgbV90eXBlKHQpCiAgICAgLCBtX2xldmVsKGwpCkBA
IC01MywxMSArNTMsMTAgQEAgQ29uc29sZU1lc3NhZ2U6OkNvbnNvbGVNZXNzYWdlKE1lc3NhZ2VT
b3VyY2UgcywgTWVzc2FnZVR5cGUgdCwgTWVzc2FnZUxldmVsIGwsIGMKICAgICAsIG1fbGluZShs
aSkKICAgICAsIG1fdXJsKHUpCiAgICAgLCBtX3JlcGVhdENvdW50KDEpCi0gICAgLCBtX3JlcXVl
c3RJZChyZXF1ZXN0SWQpCiB7CiB9CiAKLUNvbnNvbGVNZXNzYWdlOjpDb25zb2xlTWVzc2FnZShN
ZXNzYWdlU291cmNlIHMsIE1lc3NhZ2VUeXBlIHQsIE1lc3NhZ2VMZXZlbCBsLCBjb25zdCBTdHJp
bmcmIG0sIFBhc3NSZWZQdHI8U2NyaXB0QXJndW1lbnRzPiBhcmd1bWVudHMsIFBhc3NSZWZQdHI8
U2NyaXB0Q2FsbFN0YWNrPiBjYWxsU3RhY2spCitDb25zb2xlTWVzc2FnZTo6Q29uc29sZU1lc3Nh
Z2UoTWVzc2FnZVNvdXJjZSBzLCBNZXNzYWdlVHlwZSB0LCBNZXNzYWdlTGV2ZWwgbCwgY29uc3Qg
U3RyaW5nJiBtLCBQYXNzUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4gYXJndW1lbnRzLCBQYXNzUmVm
UHRyPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0YWNrLCBjb25zdCBTdHJpbmcmIHJlcXVlc3RJZCkK
ICAgICA6IG1fc291cmNlKHMpCiAgICAgLCBtX3R5cGUodCkKICAgICAsIG1fbGV2ZWwobCkKQEAg
LTY2LDYgKzY1LDcgQEAgQ29uc29sZU1lc3NhZ2U6OkNvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3Vy
Y2UgcywgTWVzc2FnZVR5cGUgdCwgTWVzc2FnZUxldmVsIGwsIGMKICAgICAsIG1fbGluZSgwKQog
ICAgICwgbV91cmwoKQogICAgICwgbV9yZXBlYXRDb3VudCgxKQorICAgICwgbV9yZXF1ZXN0SWQo
cmVxdWVzdElkKQogewogICAgIGlmIChjYWxsU3RhY2sgJiYgY2FsbFN0YWNrLT5zaXplKCkpIHsK
ICAgICAgICAgY29uc3QgU2NyaXB0Q2FsbEZyYW1lJiBmcmFtZSA9IGNhbGxTdGFjay0+YXQoMCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuaCBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5oCmluZGV4IDg4MzU0ZDBm
MDI0YWEwNTRmNDA0NTk4NWJmNjhiM2ViMmQwZWE4MTIuLjRhMWIzYjJmMTIyYzc3Y2M2MDcyZWY0
ZTFkMmMwMGVjZmExOTZhZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9D
b25zb2xlTWVzc2FnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Db25zb2xlTWVz
c2FnZS5oCkBAIC01MSw4ICs1MSw4IEBAIGNsYXNzIFNjcmlwdFZhbHVlOwogY2xhc3MgQ29uc29s
ZU1lc3NhZ2UgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKENvbnNvbGVNZXNzYWdlKTsgV1RG
X01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgQ29uc29sZU1lc3NhZ2UoTWVzc2Fn
ZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtLCB1bnNp
Z25lZCBsaSwgY29uc3QgU3RyaW5nJiB1LCBjb25zdCBTdHJpbmcmIHJlcXVlc3RJZCA9IFN0cmlu
ZygpKTsKLSAgICBDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdlVHlwZSwgTWVz
c2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG0sIFBhc3NSZWZQdHI8U2NyaXB0QXJndW1lbnRzPiwg
UGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+KTsKKyAgICBDb25zb2xlTWVzc2FnZShNZXNzYWdl
U291cmNlLCBNZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG0sIHVuc2ln
bmVkIGxpLCBjb25zdCBTdHJpbmcmIHUpOworICAgIENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3Vy
Y2UsIE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbSwgUGFzc1JlZlB0
cjxTY3JpcHRBcmd1bWVudHM+LCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4sIGNvbnN0IFN0
cmluZyYgcmVxdWVzdElkID0gU3RyaW5nKCkpOwogICAgIENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VT
b3VyY2UsIE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbSwgY29uc3Qg
U3RyaW5nJiByZXNwb25zZVVybCwgY29uc3QgU3RyaW5nJiByZXF1ZXN0SWQpOwogICAgIH5Db25z
b2xlTWVzc2FnZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yQ29uc29sZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JDb25zb2xlQWdlbnQuY3BwCmluZGV4IDYzYmM4MzBiNGE4YjU3ZWUwMTc4YTQxZTg2NTBlMmU0
YTgwNjAxYmQuLjE0Nzg5NTcxYTA5YmZhMTM1MmRkODU4ODhjOTc2NjhjMjJlOWQ2ZTMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb25zb2xlQWdlbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb25zb2xlQWdlbnQuY3Bw
CkBAIC03OSw3ICs3OSw3IEBAIHZvaWQgSW5zcGVjdG9yQ29uc29sZUFnZW50OjplbmFibGUoRXJy
b3JTdHJpbmcqKQogICAgIG1fc3RhdGUtPnNldEJvb2xlYW4oQ29uc29sZUFnZW50U3RhdGU6OmNv
bnNvbGVNZXNzYWdlc0VuYWJsZWQsIHRydWUpOwogCiAgICAgaWYgKG1fZXhwaXJlZENvbnNvbGVN
ZXNzYWdlQ291bnQpIHsKLSAgICAgICAgQ29uc29sZU1lc3NhZ2UgZXhwaXJlZE1lc3NhZ2UoT3Ro
ZXJNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgV2FybmluZ01lc3NhZ2VMZXZlbCwgU3Ry
aW5nOjpmb3JtYXQoIiVkIGNvbnNvbGUgbWVzc2FnZXMgYXJlIG5vdCBzaG93bi4iLCBtX2V4cGly
ZWRDb25zb2xlTWVzc2FnZUNvdW50KSwgMCwgIiIsICIiKTsKKyAgICAgICAgQ29uc29sZU1lc3Nh
Z2UgZXhwaXJlZE1lc3NhZ2UoT3RoZXJNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgV2Fy
bmluZ01lc3NhZ2VMZXZlbCwgU3RyaW5nOjpmb3JtYXQoIiVkIGNvbnNvbGUgbWVzc2FnZXMgYXJl
IG5vdCBzaG93bi4iLCBtX2V4cGlyZWRDb25zb2xlTWVzc2FnZUNvdW50KSwgMCwgIiIpOwogICAg
ICAgICBleHBpcmVkTWVzc2FnZS5hZGRUb0Zyb250ZW5kKG1fZnJvbnRlbmQsIG1faW5qZWN0ZWRT
Y3JpcHRNYW5hZ2VyKTsKICAgICB9CiAKQEAgLTIwNywxNyArMjA3LDE1IEBAIHZvaWQgSW5zcGVj
dG9yQ29uc29sZUFnZW50OjpmcmFtZVdpbmRvd0Rpc2NhcmRlZChET01XaW5kb3cqIHdpbmRvdykK
ICAgICBtX2luamVjdGVkU2NyaXB0TWFuYWdlci0+ZGlzY2FyZEluamVjdGVkU2NyaXB0c0Zvcih3
aW5kb3cpOwogfQogCi12b2lkIEluc3BlY3RvckNvbnNvbGVBZ2VudDo6cmVzb3VyY2VSZXRyaWV2
ZWRCeVhNTEh0dHBSZXF1ZXN0KHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgU3RyaW5n
JiB1cmwsIGNvbnN0IFN0cmluZyYgc2VuZFVSTCwgdW5zaWduZWQgc2VuZExpbmVOdW1iZXIpCit2
b2lkIEluc3BlY3RvckNvbnNvbGVBZ2VudDo6cmVzb3VyY2VSZXRyaWV2ZWRCeVhNTEh0dHBSZXF1
ZXN0KHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB1cmwsIFBhc3NSZWZQ
dHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxsU3RhY2spCiB7CiAgICAgaWYgKCFkZXZlbG9wZXJFeHRy
YXNFbmFibGVkKCkpCiAgICAgICAgIHJldHVybjsKICAgICBpZiAobV9mcm9udGVuZCAmJiBtX3N0
YXRlLT5nZXRCb29sZWFuKENvbnNvbGVBZ2VudFN0YXRlOjptb25pdG9yaW5nWEhSKSkgewogICAg
ICAgICBTdHJpbmcgbWVzc2FnZSA9ICJYSFIgZmluaXNoZWQgbG9hZGluZzogXCIiICsgdXJsICsg
IlwiLiI7CiAgICAgICAgIFN0cmluZyByZXF1ZXN0SWQgPSBJZGVudGlmaWVyc0ZhY3Rvcnk6OnJl
cXVlc3RJZChpZGVudGlmaWVyKTsKLSAgICAgICAgYWRkQ29uc29sZU1lc3NhZ2UoYWRvcHRQdHIo
bmV3IENvbnNvbGVNZXNzYWdlKE5ldHdvcmtNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwg
TG9nTWVzc2FnZUxldmVsLCBtZXNzYWdlLCBzZW5kTGluZU51bWJlciwgc2VuZFVSTCwgcmVxdWVz
dElkKSkpOworICAgICAgICBhZGRDb25zb2xlTWVzc2FnZShhZG9wdFB0cihuZXcgQ29uc29sZU1l
c3NhZ2UoTmV0d29ya01lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBMb2dNZXNzYWdlTGV2
ZWwsIG1lc3NhZ2UsIDAsIGNhbGxTdGFjaywgcmVxdWVzdElkKSkpOwogICAgIH0KLQotCiB9CiAK
IHZvaWQgSW5zcGVjdG9yQ29uc29sZUFnZW50OjpkaWRSZWNlaXZlUmVzcG9uc2UodW5zaWduZWQg
bG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb25zb2xlQWdlbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb25zb2xlQWdlbnQuaAppbmRleCA3
NjM1YTY5NmM2YWU4N2VlYjAzOWRkNDViMWE1NzljODViMWUxOTM0Li43NzFhYjU5MmU4MDlkMjhm
ZGVlYzEzYzI3NGMwOWMxOGU4ODEzZDE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yQ29uc29sZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckNvbnNvbGVBZ2VudC5oCkBAIC03Niw3ICs3Niw3IEBAIHB1YmxpYzoKIAog
ICAgIHZvaWQgZnJhbWVXaW5kb3dEaXNjYXJkZWQoRE9NV2luZG93Kik7CiAKLSAgICB2b2lkIHJl
c291cmNlUmV0cmlldmVkQnlYTUxIdHRwUmVxdWVzdCh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIs
IGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIHNlbmRVUkwsIHVuc2lnbmVkIHNlbmRM
aW5lTnVtYmVyKTsKKyAgICB2b2lkIHJlc291cmNlUmV0cmlldmVkQnlYTUxIdHRwUmVxdWVzdCh1
bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgdXJsLCBQYXNzUmVmUHRyPFNj
cmlwdENhbGxTdGFjaz4pOwogICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKHVuc2lnbmVkIGxv
bmcgaWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwogICAgIHZvaWQgZGlkRmFp
bExvYWRpbmcodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZUVycm9yJik7
CiAjaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29uc29sZUluc3RydW1lbnRhdGlvbi5oIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnNvbGVJbnN0cnVtZW50YXRpb24uaAppbmRl
eCBlNjNjNzEyOGQ1MzMyZWYyNjRjMTg4ZmEwYTRlN2U3MTMxZGQ0MmNmLi4yNGEzOGE2MDQ3NDE3
N2Y5ZjUxZDMxZWY2MTRjZjMwNTQ0OGM2YWFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yQ29uc29sZUluc3RydW1lbnRhdGlvbi5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb25zb2xlSW5zdHJ1bWVudGF0aW9uLmgKQEAgLTM5
LDYgKzM5LDE0IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAoraW5saW5lIHZvaWQgSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjpyZXNvdXJjZVJldHJpZXZlZEJ5WE1MSHR0cFJlcXVlc3QoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBj
b25zdCBTdHJpbmcmIHNvdXJjZVN0cmluZywgY29uc3QgU3RyaW5nJiB1cmwsIFBhc3NSZWZQdHI8
U2NyaXB0Q2FsbFN0YWNrPiBjYWxsU3RhY2spCit7CisjaWYgRU5BQkxFKElOU1BFQ1RPUikKKyAg
ICBpZiAoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cyA9IGluc3RydW1l
bnRpbmdBZ2VudHNGb3JDb250ZXh0KGNvbnRleHQpKQorICAgICAgICByZXNvdXJjZVJldHJpZXZl
ZEJ5WE1MSHR0cFJlcXVlc3RJbXBsKGluc3RydW1lbnRpbmdBZ2VudHMsIGlkZW50aWZpZXIsIHNv
dXJjZVN0cmluZywgdXJsLCBjYWxsU3RhY2spOworI2VuZGlmCit9CisKIGlubGluZSB2b2lkIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6YWRkTWVzc2FnZVRvQ29uc29sZShQYWdlKiBwYWdlLCBN
ZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZVR5cGUgdHlwZSwgTWVzc2FnZUxldmVsIGxldmVs
LCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIFBhc3NSZWZQdHI8U2NyaXB0QXJndW1lbnRzPiBhcmd1
bWVudHMsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxsU3RhY2spCiB7CiAjaWYgRU5B
QkxFKElOU1BFQ1RPUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbi5jcHAKaW5kZXggZDc4OTQyMmFhMjBjYTkzYmQ2ODg1YTlhMzQ2
OGEwNGU0NWFmYWVjOC4uNWRiN2Y3MDM0MDUxMzFkMzI1NmVjMDJhOWI0OWQwNjFhODhiNTFlNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRh
dGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1l
bnRhdGlvbi5jcHAKQEAgLTU1MywxMCArNTUzLDEwIEBAIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uOjpkaWRGYWlsTG9hZGluZ0ltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVu
CiAgICAgICAgIGNvbnNvbGVBZ2VudC0+ZGlkRmFpbExvYWRpbmcoaWRlbnRpZmllciwgZXJyb3Ip
OyAvLyBUaGlzIHNob3VsZCBjb21lIEFGVEVSIHJlc291cmNlIG5vdGlmaWNhdGlvbiwgZnJvbnQt
ZW5kIHJlbGllcyBvbiB0aGlzLgogfQogCi12b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
cmVzb3VyY2VSZXRyaWV2ZWRCeVhNTEh0dHBSZXF1ZXN0SW1wbChJbnN0cnVtZW50aW5nQWdlbnRz
KiBpbnN0cnVtZW50aW5nQWdlbnRzLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFN0
cmluZyYgc291cmNlU3RyaW5nLCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiBzZW5k
VVJMLCB1bnNpZ25lZCBzZW5kTGluZU51bWJlcikKK3ZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uOjpyZXNvdXJjZVJldHJpZXZlZEJ5WE1MSHR0cFJlcXVlc3RJbXBsKEluc3RydW1lbnRpbmdB
Z2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29u
c3QgU3RyaW5nJiBzb3VyY2VTdHJpbmcsIGNvbnN0IFN0cmluZyYgdXJsLCBQYXNzUmVmUHRyPFNj
cmlwdENhbGxTdGFjaz4gY2FsbFN0YWNrKQogewogICAgIGlmIChJbnNwZWN0b3JDb25zb2xlQWdl
bnQqIGNvbnNvbGVBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMtPmluc3BlY3RvckNvbnNvbGVB
Z2VudCgpKQotICAgICAgICBjb25zb2xlQWdlbnQtPnJlc291cmNlUmV0cmlldmVkQnlYTUxIdHRw
UmVxdWVzdChpZGVudGlmaWVyLCB1cmwsIHNlbmRVUkwsIHNlbmRMaW5lTnVtYmVyKTsKKyAgICAg
ICAgY29uc29sZUFnZW50LT5yZXNvdXJjZVJldHJpZXZlZEJ5WE1MSHR0cFJlcXVlc3QoaWRlbnRp
ZmllciwgdXJsLCBjYWxsU3RhY2spOwogICAgIGlmIChJbnNwZWN0b3JSZXNvdXJjZUFnZW50KiBy
ZXNvdXJjZUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yUmVzb3VyY2VBZ2Vu
dCgpKQogICAgICAgICByZXNvdXJjZUFnZW50LT5zZXRJbml0aWFsWEhSQ29udGVudChpZGVudGlm
aWVyLCBzb3VyY2VTdHJpbmcpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCmluZGV4IGExZTg5OTI0NmI0ZTVlZDVmMjFiMzI0
NTFlODY2MTJiYWEwMmUxZTkuLmZjNWU5MTUwOWQyZTkyMmUwYzkwOTJjYTZmYzQ0ODZhZDUzMTdl
ZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uLmgKQEAgLTEzNCw3ICsxMzQsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQg
ZGlkUmVjZWl2ZURhdGEoRnJhbWUqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IGNo
YXIqIGRhdGEsIGludCBkYXRhTGVuZ3RoLCBpbnQgZW5jb2RlZERhdGFMZW5ndGgpOwogICAgIHN0
YXRpYyB2b2lkIGRpZEZpbmlzaExvYWRpbmcoRnJhbWUqLCBEb2N1bWVudExvYWRlciosIHVuc2ln
bmVkIGxvbmcgaWRlbnRpZmllciwgZG91YmxlIGZpbmlzaFRpbWUpOwogICAgIHN0YXRpYyB2b2lk
IGRpZEZhaWxMb2FkaW5nKEZyYW1lKiwgRG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nIGlk
ZW50aWZpZXIsIGNvbnN0IFJlc291cmNlRXJyb3ImKTsKLSAgICBzdGF0aWMgdm9pZCByZXNvdXJj
ZVJldHJpZXZlZEJ5WE1MSHR0cFJlcXVlc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIHVuc2ln
bmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBzb3VyY2VTdHJpbmcsIGNvbnN0IFN0
cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIHNlbmRVUkwsIHVuc2lnbmVkIHNlbmRMaW5lTnVtYmVy
KTsKKyAgICBzdGF0aWMgdm9pZCByZXNvdXJjZVJldHJpZXZlZEJ5WE1MSHR0cFJlcXVlc3QoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgU3Ry
aW5nJiBzb3VyY2VTdHJpbmcsIGNvbnN0IFN0cmluZyYgdXJsLCBQYXNzUmVmUHRyPFNjcmlwdENh
bGxTdGFjaz4pOwogICAgIHN0YXRpYyB2b2lkIGRpZFJlY2VpdmVYSFJSZXNwb25zZShTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyKTsKICAgICBzdGF0aWMg
dm9pZCB3aWxsTG9hZFhIUlN5bmNocm9ub3VzbHkoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOwog
ICAgIHN0YXRpYyB2b2lkIGRpZExvYWRYSFJTeW5jaHJvbm91c2x5KFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqKTsKQEAgLTI3NSw3ICsyNzUsNyBAQCBwcml2YXRlOgogICAgIHN0YXRpYyB2b2lkIGRp
ZFJlY2VpdmVEYXRhSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiwgdW5zaWduZWQgbG9uZyBpZGVu
dGlmaWVyLCBjb25zdCBjaGFyKiBkYXRhLCBpbnQgZGF0YUxlbmd0aCwgaW50IGVuY29kZWREYXRh
TGVuZ3RoKTsKICAgICBzdGF0aWMgdm9pZCBkaWRGaW5pc2hMb2FkaW5nSW1wbChJbnN0cnVtZW50
aW5nQWdlbnRzKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBEb2N1bWVudExvYWRlciosIGRv
dWJsZSBmaW5pc2hUaW1lKTsKICAgICBzdGF0aWMgdm9pZCBkaWRGYWlsTG9hZGluZ0ltcGwoSW5z
dHJ1bWVudGluZ0FnZW50cyosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgRG9jdW1lbnRMb2Fk
ZXIqLCBjb25zdCBSZXNvdXJjZUVycm9yJik7Ci0gICAgc3RhdGljIHZvaWQgcmVzb3VyY2VSZXRy
aWV2ZWRCeVhNTEh0dHBSZXF1ZXN0SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiwgdW5zaWduZWQg
bG9uZyBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVN0cmluZywgY29uc3QgU3RyaW5n
JiB1cmwsIGNvbnN0IFN0cmluZyYgc2VuZFVSTCwgdW5zaWduZWQgc2VuZExpbmVOdW1iZXIpOwor
ICAgIHN0YXRpYyB2b2lkIHJlc291cmNlUmV0cmlldmVkQnlYTUxIdHRwUmVxdWVzdEltcGwoSW5z
dHJ1bWVudGluZ0FnZW50cyosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgU3RyaW5n
JiBzb3VyY2VTdHJpbmcsIGNvbnN0IFN0cmluZyYgdXJsLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxT
dGFjaz4pOwogICAgIHN0YXRpYyB2b2lkIGRpZFJlY2VpdmVYSFJSZXNwb25zZUltcGwoSW5zdHJ1
bWVudGluZ0FnZW50cyosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllcik7CiAgICAgc3RhdGljIHZv
aWQgd2lsbExvYWRYSFJTeW5jaHJvbm91c2x5SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKik7CiAg
ICAgc3RhdGljIHZvaWQgZGlkTG9hZFhIUlN5bmNocm9ub3VzbHlJbXBsKEluc3RydW1lbnRpbmdB
Z2VudHMqKTsKQEAgLTgzMywxNCArODMzLDYgQEAgaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjpkaWRGYWlsTG9hZGluZyhGcmFtZSogZnJhbWUsIERvY3VtZW50TG9hZGUKICNl
bmRpZgogfQogCi1pbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnJlc291cmNl
UmV0cmlldmVkQnlYTUxIdHRwUmVxdWVzdChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0
LCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgc291cmNlU3RyaW5nLCBj
b25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiBzZW5kVVJMLCB1bnNpZ25lZCBzZW5kTGlu
ZU51bWJlcikKLXsKLSNpZiBFTkFCTEUoSU5TUEVDVE9SKQotICAgIGlmIChJbnN0cnVtZW50aW5n
QWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzID0gaW5zdHJ1bWVudGluZ0FnZW50c0ZvckNvbnRl
eHQoY29udGV4dCkpCi0gICAgICAgIHJlc291cmNlUmV0cmlldmVkQnlYTUxIdHRwUmVxdWVzdElt
cGwoaW5zdHJ1bWVudGluZ0FnZW50cywgaWRlbnRpZmllciwgc291cmNlU3RyaW5nLCB1cmwsIHNl
bmRVUkwsIHNlbmRMaW5lTnVtYmVyKTsKLSNlbmRpZgotfQotCiBpbmxpbmUgdm9pZCBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OmRpZFJlY2VpdmVYSFJSZXNwb25zZShTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiBjb250ZXh0LCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIpCiB7CiAjaWYgRU5BQkxF
KElOU1BFQ1RPUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCmluZGV4IGM0YjA3
ZTY4ZDExNTdjZjk1MjdiZjBmYmVkNWZjN2VjMDlhYjc5YmQuLjNkZDQxODhjOTg2MGUzMjBlMTc0
ZmY0MDQ2OGE3MmI0OWJjZjJhNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9G
cmFtZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNw
cApAQCAtODcsOSArODcsMTEgQEAKICNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZS5oIgogI2luY2x1
ZGUgIlJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIlNjaGVtZVJlZ2lzdHJ5LmgiCi0jaW5j
bHVkZSAiU2Nyb2xsQW5pbWF0b3IuaCIKKyNpbmNsdWRlICJTY3JpcHRDYWxsU3RhY2suaCIKKyNp
bmNsdWRlICJTY3JpcHRDYWxsU3RhY2tGYWN0b3J5LmgiCiAjaW5jbHVkZSAiU2NyaXB0Q29udHJv
bGxlci5oIgogI2luY2x1ZGUgIlNjcmlwdFNvdXJjZUNvZGUuaCIKKyNpbmNsdWRlICJTY3JvbGxB
bmltYXRvci5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiU2VjdXJp
dHlQb2xpY3kuaCIKICNpbmNsdWRlICJTZWdtZW50ZWRTdHJpbmcuaCIKQEAgLTE1NzAsOCArMTU3
MiwxMCBAQCBib29sIEZyYW1lTG9hZGVyOjpzaG91bGRBbGxvd05hdmlnYXRpb24oRnJhbWUqIHRh
cmdldEZyYW1lKSBjb25zdAogICAgICAgICBTdHJpbmcgbWVzc2FnZSA9ICJVbnNhZmUgSmF2YVNj
cmlwdCBhdHRlbXB0IHRvIGluaXRpYXRlIGEgbmF2aWdhdGlvbiBjaGFuZ2UgZm9yIGZyYW1lIHdp
dGggVVJMICIgKwogICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldERvY3VtZW50LT51cmwo
KS5zdHJpbmcoKSArICIgZnJvbSBmcmFtZSB3aXRoIFVSTCAiICsgYWN0aXZlRG9jdW1lbnQtPnVy
bCgpLnN0cmluZygpICsgIi5cbiI7CiAKKyAgICAgICAgUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4g
c3RhY2tUcmFjZSA9IGNyZWF0ZVNjcmlwdENhbGxTdGFjayhTY3JpcHRDYWxsU3RhY2s6Om1heENh
bGxTdGFja1NpemVUb0NhcHR1cmUsIHRydWUpOworCiAgICAgICAgIC8vIEZJWE1FOiBzaG91bGQg
d2UgcHJpbnQgdG8gdGhlIGNvbnNvbGUgb2YgdGhlIGFjdGl2ZUZyYW1lIGFzIHdlbGw/Ci0gICAg
ICAgIHRhcmdldEZyYW1lLT5kb21XaW5kb3coKS0+Y29uc29sZSgpLT5hZGRNZXNzYWdlKEpTTWVz
c2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIEVycm9yTWVzc2FnZUxldmVsLCBtZXNzYWdlLCAx
LCBTdHJpbmcoKSk7CisgICAgICAgIHRhcmdldEZyYW1lLT5kb21XaW5kb3coKS0+Y29uc29sZSgp
LT5hZGRNZXNzYWdlKEpTTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIEVycm9yTWVzc2Fn
ZUxldmVsLCBtZXNzYWdlLCAxLCBTdHJpbmcoKSwgc3RhY2tUcmFjZS5yZWxlYXNlKCkpOwogICAg
IH0KICAgICAKICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0RPTVdpbmRvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKaW5k
ZXggNTcxMmQ2NmYzNGY4ZmU4Yjc4NjdmNDE1M2Y4YjAyZmU5ZmMyOWE2Yy4uOGY0YTk0NTk2Yjll
ODc1NmFlYTY5YTQ2MmEyNDAzMjBlMzBlZDY2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9ET01XaW5kb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNw
cApAQCAtODIsNiArODIsOCBAQAogI2luY2x1ZGUgIlBsYXRmb3JtU2NyZWVuLmgiCiAjaW5jbHVk
ZSAiU2NoZWR1bGVkQWN0aW9uLmgiCiAjaW5jbHVkZSAiU2NyZWVuLmgiCisjaW5jbHVkZSAiU2Ny
aXB0Q2FsbFN0YWNrLmgiCisjaW5jbHVkZSAiU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5oIgogI2lu
Y2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiU2VyaWFsaXplZFNjcmlwdFZhbHVl
LmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKQEAgLTEyMiwxMyArMTI0LDE0IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogY2xhc3MgUG9zdE1lc3NhZ2VUaW1lciA6IHB1YmxpYyBUaW1lckJhc2Ug
ewogcHVibGljOgotICAgIFBvc3RNZXNzYWdlVGltZXIoRE9NV2luZG93KiB3aW5kb3csIFBhc3NS
ZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJj
ZU9yaWdpbiwgUGFzc1JlZlB0cjxET01XaW5kb3c+IHNvdXJjZSwgUGFzc093blB0cjxNZXNzYWdl
UG9ydENoYW5uZWxBcnJheT4gY2hhbm5lbHMsIFNlY3VyaXR5T3JpZ2luKiB0YXJnZXRPcmlnaW4p
CisgICAgUG9zdE1lc3NhZ2VUaW1lcihET01XaW5kb3cqIHdpbmRvdywgUGFzc1JlZlB0cjxTZXJp
YWxpemVkU2NyaXB0VmFsdWU+IG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgc291cmNlT3JpZ2luLCBQ
YXNzUmVmUHRyPERPTVdpbmRvdz4gc291cmNlLCBQYXNzT3duUHRyPE1lc3NhZ2VQb3J0Q2hhbm5l
bEFycmF5PiBjaGFubmVscywgU2VjdXJpdHlPcmlnaW4qIHRhcmdldE9yaWdpbiwgUGFzc1JlZlB0
cjxTY3JpcHRDYWxsU3RhY2s+IHN0YWNrVHJhY2UpCiAgICAgICAgIDogbV93aW5kb3cod2luZG93
KQogICAgICAgICAsIG1fbWVzc2FnZShtZXNzYWdlKQogICAgICAgICAsIG1fb3JpZ2luKHNvdXJj
ZU9yaWdpbikKICAgICAgICAgLCBtX3NvdXJjZShzb3VyY2UpCiAgICAgICAgICwgbV9jaGFubmVs
cyhjaGFubmVscykKICAgICAgICAgLCBtX3RhcmdldE9yaWdpbih0YXJnZXRPcmlnaW4pCisgICAg
ICAgICwgbV9zdGFja1RyYWNlKHN0YWNrVHJhY2UpCiAgICAgewogICAgIH0KIApAQCAtMTM4LDYg
KzE0MSw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIE1lc3NhZ2VFdmVudDo6Y3JlYXRlKG1l
c3NhZ2VQb3J0cy5yZWxlYXNlKCksIG1fbWVzc2FnZSwgbV9vcmlnaW4sICIiLCBtX3NvdXJjZSk7
CiAgICAgfQogICAgIFNlY3VyaXR5T3JpZ2luKiB0YXJnZXRPcmlnaW4oKSBjb25zdCB7IHJldHVy
biBtX3RhcmdldE9yaWdpbi5nZXQoKTsgfQorICAgIFNjcmlwdENhbGxTdGFjayogc3RhY2tUcmFj
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhY2tUcmFjZS5nZXQoKTsgfQogCiBwcml2YXRlOgogICAg
IHZpcnR1YWwgdm9pZCBmaXJlZCgpCkBAIC0xNTIsNiArMTU2LDcgQEAgcHJpdmF0ZToKICAgICBS
ZWZQdHI8RE9NV2luZG93PiBtX3NvdXJjZTsKICAgICBPd25QdHI8TWVzc2FnZVBvcnRDaGFubmVs
QXJyYXk+IG1fY2hhbm5lbHM7CiAgICAgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBtX3RhcmdldE9y
aWdpbjsKKyAgICBSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBtX3N0YWNrVHJhY2U7CiB9OwogCiB0
eXBlZGVmIEhhc2hDb3VudGVkU2V0PERPTVdpbmRvdyo+IERPTVdpbmRvd1NldDsKQEAgLTg5OCw4
ICs5MDMsMTMgQEAgdm9pZCBET01XaW5kb3c6OnBvc3RNZXNzYWdlKFBhc3NSZWZQdHI8U2VyaWFs
aXplZFNjcmlwdFZhbHVlPiBtZXNzYWdlLCBjb25zdCBNZXMKICAgICAgICAgcmV0dXJuOwogICAg
IFN0cmluZyBzb3VyY2VPcmlnaW4gPSBzb3VyY2VEb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKS0+
dG9TdHJpbmcoKTsKIAorICAgIC8vIENhcHR1cmUgc3RhY2sgdHJhY2Ugb25seSB3aGVuIGluc3Bl
Y3RvciBmcm9udC1lbmQgaXMgbG9hZGVkIGFzIGl0IG1heSBiZSB0aW1lIGNvbnN1bWluZy4KKyAg
ICBSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBzdGFja1RyYWNlOworICAgIGlmIChJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb246Omhhc0Zyb250ZW5kcygpKQorICAgICAgICBzdGFja1RyYWNlID0gY3Jl
YXRlU2NyaXB0Q2FsbFN0YWNrKFNjcmlwdENhbGxTdGFjazo6bWF4Q2FsbFN0YWNrU2l6ZVRvQ2Fw
dHVyZSwgdHJ1ZSk7CisKICAgICAvLyBTY2hlZHVsZSB0aGUgbWVzc2FnZS4KLSAgICBQb3N0TWVz
c2FnZVRpbWVyKiB0aW1lciA9IG5ldyBQb3N0TWVzc2FnZVRpbWVyKHRoaXMsIG1lc3NhZ2UsIHNv
dXJjZU9yaWdpbiwgc291cmNlLCBjaGFubmVscy5yZWxlYXNlKCksIHRhcmdldC5nZXQoKSk7Cisg
ICAgUG9zdE1lc3NhZ2VUaW1lciogdGltZXIgPSBuZXcgUG9zdE1lc3NhZ2VUaW1lcih0aGlzLCBt
ZXNzYWdlLCBzb3VyY2VPcmlnaW4sIHNvdXJjZSwgY2hhbm5lbHMucmVsZWFzZSgpLCB0YXJnZXQu
Z2V0KCksIHN0YWNrVHJhY2UucmVsZWFzZSgpKTsKICAgICB0aW1lci0+c3RhcnRPbmVTaG90KDAp
OwogfQogCkBAIC05MTUsNyArOTI1LDcgQEAgdm9pZCBET01XaW5kb3c6OnBvc3RNZXNzYWdlVGlt
ZXJGaXJlZChQYXNzT3duUHRyPFBvc3RNZXNzYWdlVGltZXI+IHQpCiAgICAgICAgIGlmICghdGlt
ZXItPnRhcmdldE9yaWdpbigpLT5pc1NhbWVTY2hlbWVIb3N0UG9ydChkb2N1bWVudCgpLT5zZWN1
cml0eU9yaWdpbigpKSkgewogICAgICAgICAgICAgU3RyaW5nIG1lc3NhZ2UgPSAiVW5hYmxlIHRv
IHBvc3QgbWVzc2FnZSB0byAiICsgdGltZXItPnRhcmdldE9yaWdpbigpLT50b1N0cmluZygpICsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi4gUmVjaXBpZW50IGhhcyBvcmlnaW4gIiAr
IGRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCktPnRvU3RyaW5nKCkgKyAiLlxuIjsKLSAgICAg
ICAgICAgIGNvbnNvbGUoKS0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VU
eXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgbWVzc2FnZSwgMCwgU3RyaW5nKCkpOworICAgICAgICAg
ICAgY29uc29sZSgpLT5hZGRNZXNzYWdlKEpTTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUs
IEVycm9yTWVzc2FnZUxldmVsLCBtZXNzYWdlLCAwLCBTdHJpbmcoKSwgdGltZXItPnN0YWNrVHJh
Y2UoKSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICB9CkBAIC0xNzY2LDcg
KzE3NzYsOCBAQCB2b2lkIERPTVdpbmRvdzo6cHJpbnRFcnJvck1lc3NhZ2UoY29uc3QgU3RyaW5n
JiBtZXNzYWdlKQogICAgICAgICByZXR1cm47CiAKICAgICAvLyBGSVhNRTogQWRkIGFyZ3VtZW50
cyBzbyB0aGF0IHdlIGNhbiBwcm92aWRlIGEgY29ycmVjdCBzb3VyY2UgVVJMIGFuZCBsaW5lIG51
bWJlci4KLSAgICBjb25zb2xlKCktPmFkZE1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBMb2dNZXNz
YWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsIG1lc3NhZ2UsIDEsIFN0cmluZygpKTsKKyAgICBS
ZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBzdGFja1RyYWNlID0gY3JlYXRlU2NyaXB0Q2FsbFN0YWNr
KFNjcmlwdENhbGxTdGFjazo6bWF4Q2FsbFN0YWNrU2l6ZVRvQ2FwdHVyZSwgdHJ1ZSk7CisgICAg
Y29uc29sZSgpLT5hZGRNZXNzYWdlKEpTTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIEVy
cm9yTWVzc2FnZUxldmVsLCBtZXNzYWdlLCAxLCBTdHJpbmcoKSwgc3RhY2tUcmFjZS5yZWxlYXNl
KCkpOwogfQogCiBTdHJpbmcgRE9NV2luZG93Ojpjcm9zc0RvbWFpbkFjY2Vzc0Vycm9yTWVzc2Fn
ZShET01XaW5kb3cqIGFjdGl2ZVdpbmRvdykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3ht
bC9YTUxIdHRwUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3Qu
Y3BwCmluZGV4IDA1OTBhNDNkNjU1N2ZiYzUwNWRlZjAwNjBkNTJjYWM5MmQyZGZlYjguLmUxNzFk
NmZiNGY1ZWI3MDMwYzQ1NmQ3N2YxODRiMTA0ZmQyZWY0ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hN
TEh0dHBSZXF1ZXN0LmNwcApAQCAtMzYsNyArMzYsNyBAQAogI2luY2x1ZGUgIkZpbGUuaCIKICNp
bmNsdWRlICJIVFRQUGFyc2Vycy5oIgogI2luY2x1ZGUgIkhUVFBWYWxpZGF0aW9uLmgiCi0jaW5j
bHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgiCisjaW5jbHVkZSAiSW5zcGVjdG9yQ29u
c29sZUluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIk1lbW9yeUNhY2hlLmgiCiAjaW5jbHVk
ZSAiUmVzb3VyY2VFcnJvci5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgpAQCAtMTU5
LDcgKzE1OSw2IEBAIFhNTEh0dHBSZXF1ZXN0OjpYTUxIdHRwUmVxdWVzdChTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRyPFNlY3VyCiAgICAgLCBtX3VwbG9hZENvbXBs
ZXRlKGZhbHNlKQogICAgICwgbV9zYW1lT3JpZ2luUmVxdWVzdCh0cnVlKQogICAgICwgbV9yZWNl
aXZlZExlbmd0aCgwKQotICAgICwgbV9sYXN0U2VuZExpbmVOdW1iZXIoMCkKICAgICAsIG1fZXhj
ZXB0aW9uQ29kZSgwKQogICAgICwgbV9wcm9ncmVzc0V2ZW50VGhyb3R0bGUodGhpcykKICAgICAs
IG1fcmVzcG9uc2VUeXBlQ29kZShSZXNwb25zZVR5cGVEZWZhdWx0KQpAQCAtMzEzLDYgKzMxMiwx
MSBAQCBTdHJpbmcgWE1MSHR0cFJlcXVlc3Q6OnJlc3BvbnNlVHlwZSgpCiAgICAgcmV0dXJuICIi
OwogfQogCit2b2lkIFhNTEh0dHBSZXF1ZXN0OjpzZXRDYWxsU3RhY2soUGFzc1JlZlB0cjxTY3Jp
cHRDYWxsU3RhY2s+IGNhbGxTdGFjaykKK3sKKyAgICBtX2NhbGxTdGFjayA9IGNhbGxTdGFjazsK
K30KKwogWE1MSHR0cFJlcXVlc3RVcGxvYWQqIFhNTEh0dHBSZXF1ZXN0Ojp1cGxvYWQoKQogewog
ICAgIGlmICghbV91cGxvYWQpCkBAIC04MDgsMTYgKzgxMiwxOSBAQCB2b2lkIFhNTEh0dHBSZXF1
ZXN0OjpvdmVycmlkZU1pbWVUeXBlKGNvbnN0IFN0cmluZyYgb3ZlcnJpZGUpCiAgICAgbV9taW1l
VHlwZU92ZXJyaWRlID0gb3ZlcnJpZGU7CiB9CiAKLXN0YXRpYyB2b2lkIHJlcG9ydFVuc2FmZVVz
YWdlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IFN0cmluZyYgbWVzc2Fn
ZSkKK3ZvaWQgWE1MSHR0cFJlcXVlc3Q6OnJlcG9ydFVuc2FmZVVzYWdlKGNvbnN0IFN0cmluZyYg
bWVzc2FnZSkgY29uc3QKIHsKKyAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0ID0g
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwogICAgIGlmICghY29udGV4dCkKICAgICAgICAgcmV0
dXJuOworCiAgICAgLy8gRklYTUU6IEl0J3Mgbm90IGdvb2QgdG8gcmVwb3J0IHRoZSBiYWQgdXNh
Z2Ugd2l0aG91dCBpbmRpY2F0aW5nIHdoYXQgc291cmNlIGxpbmUgaXQgY2FtZSBmcm9tLgogICAg
IC8vIFdlIHNob3VsZCBwYXNzIGFkZGl0aW9uYWwgcGFyYW1ldGVycyBzbyB3ZSBjYW4gdGVsbCB0
aGUgY29uc29sZSB3aGVyZSB0aGUgbWlzdGFrZSBvY2N1cnJlZC4KLSAgICBjb250ZXh0LT5hZGRD
b25zb2xlTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBFcnJvck1lc3Nh
Z2VMZXZlbCwgbWVzc2FnZSk7CisgICAgLy8gV2hlbiB1bnNhZmUgdXNhZ2UgaXMgcmVwb3J0ZWQg
b24gVjggb3IgZnJvbSBzZW5kKCkgb3Igc2VuZCBjYWxsYmFjayBvbiBKU0MsIGxpbmVOdW1iZXIg
YW5kIHVybCBhcmUgYXZhaWxhYmxlIGZyb20gdGhlIGNhbGwgc3RhY2sgdGhvdWdoLgorICAgIGNv
bnRleHQtPmFkZE1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JN
ZXNzYWdlTGV2ZWwsIG1lc3NhZ2UsIDEsIFN0cmluZygpLCBtX2NhbGxTdGFjayk7CiB9CiAKLXZv
aWQgWE1MSHR0cFJlcXVlc3Q6OnNldFJlcXVlc3RIZWFkZXIoY29uc3QgQXRvbWljU3RyaW5nJiBu
YW1lLCBjb25zdCBTdHJpbmcmIHZhbHVlLCBFeGNlcHRpb25Db2RlJiBlYykKK3ZvaWQgWE1MSHR0
cFJlcXVlc3Q6OnNldFJlcXVlc3RIZWFkZXIoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBjb25z
dCBTdHJpbmcmIHZhbHVlLCBQYXNzUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4sIFBhc3NSZWZQdHI8
U2NyaXB0Q2FsbFN0YWNrPiBjYWxsU3RhY2ssIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIGlm
IChtX3N0YXRlICE9IE9QRU5FRCB8fCBtX2xvYWRlcikgewogI2lmIEVOQUJMRShEQVNIQk9BUkRf
U1VQUE9SVCkKQEAgLTgzNiw3ICs4NDMsOCBAQCB2b2lkIFhNTEh0dHBSZXF1ZXN0OjpzZXRSZXF1
ZXN0SGVhZGVyKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB2YQogCiAg
ICAgLy8gQSBwcml2aWxlZ2VkIHNjcmlwdCAoZS5nLiBhIERhc2hib2FyZCB3aWRnZXQpIGNhbiBz
ZXQgYW55IGhlYWRlcnMuCiAgICAgaWYgKCFzZWN1cml0eU9yaWdpbigpLT5jYW5Mb2FkTG9jYWxS
ZXNvdXJjZXMoKSAmJiAhaXNBbGxvd2VkSFRUUEhlYWRlcihuYW1lKSkgewotICAgICAgICByZXBv
cnRVbnNhZmVVc2FnZShzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksICJSZWZ1c2VkIHRvIHNldCB1
bnNhZmUgaGVhZGVyIFwiIiArIG5hbWUgKyAiXCIiKTsKKyAgICAgICAgc2V0Q2FsbFN0YWNrKGNh
bGxTdGFjayk7CisgICAgICAgIHJlcG9ydFVuc2FmZVVzYWdlKCJSZWZ1c2VkIHRvIHNldCB1bnNh
ZmUgaGVhZGVyIFwiIiArIG5hbWUgKyAiXCIiKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApA
QCAtODk4LDEyICs5MDYsMTIgQEAgU3RyaW5nIFhNTEh0dHBSZXF1ZXN0OjpnZXRSZXNwb25zZUhl
YWRlcihjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIEV4Y2VwdGlvbkNvZGUKIAogICAgIC8vIFNl
ZSBjb21tZW50IGluIGdldEFsbFJlc3BvbnNlSGVhZGVycyBhYm92ZS4KICAgICBpZiAoaXNTZXRD
b29raWVIZWFkZXIobmFtZSkgJiYgIXNlY3VyaXR5T3JpZ2luKCktPmNhbkxvYWRMb2NhbFJlc291
cmNlcygpKSB7Ci0gICAgICAgIHJlcG9ydFVuc2FmZVVzYWdlKHNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKSwgIlJlZnVzZWQgdG8gZ2V0IHVuc2FmZSBoZWFkZXIgXCIiICsgbmFtZSArICJcIiIpOwor
ICAgICAgICByZXBvcnRVbnNhZmVVc2FnZSgiUmVmdXNlZCB0byBnZXQgdW5zYWZlIGhlYWRlciBc
IiIgKyBuYW1lICsgIlwiIik7CiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKICAgICB9CiAKICAg
ICBpZiAoIW1fc2FtZU9yaWdpblJlcXVlc3QgJiYgIWlzT25BY2Nlc3NDb250cm9sUmVzcG9uc2VI
ZWFkZXJXaGl0ZWxpc3QobmFtZSkpIHsKLSAgICAgICAgcmVwb3J0VW5zYWZlVXNhZ2Uoc2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpLCAiUmVmdXNlZCB0byBnZXQgdW5zYWZlIGhlYWRlciBcIiIgKyBu
YW1lICsgIlwiIik7CisgICAgICAgIHJlcG9ydFVuc2FmZVVzYWdlKCJSZWZ1c2VkIHRvIGdldCB1
bnNhZmUgaGVhZGVyIFwiIiArIG5hbWUgKyAiXCIiKTsKICAgICAgICAgcmV0dXJuIFN0cmluZygp
OwogICAgIH0KICAgICByZXR1cm4gbV9yZXNwb25zZS5odHRwSGVhZGVyRmllbGQobmFtZSk7CkBA
IC05NzEsNyArOTc5LDcgQEAgdm9pZCBYTUxIdHRwUmVxdWVzdDo6ZGlkRmFpbChjb25zdCBSZXNv
dXJjZUVycm9yJiBlcnJvcikKIAogICAgIC8vIE5ldHdvcmsgZmFpbHVyZXMgYXJlIGFscmVhZHkg
cmVwb3J0ZWQgdG8gV2ViIEluc3BlY3RvciBieSBSZXNvdXJjZUxvYWRlci4KICAgICBpZiAoZXJy
b3IuZG9tYWluKCkgPT0gZXJyb3JEb21haW5XZWJLaXRJbnRlcm5hbCkKLSAgICAgICAgcmVwb3J0
VW5zYWZlVXNhZ2Uoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCAiWE1MSHR0cFJlcXVlc3QgY2Fu
bm90IGxvYWQgIiArIGVycm9yLmZhaWxpbmdVUkwoKSArICIuICIgKyBlcnJvci5sb2NhbGl6ZWRE
ZXNjcmlwdGlvbigpKTsKKyAgICAgICAgcmVwb3J0VW5zYWZlVXNhZ2UoIlhNTEh0dHBSZXF1ZXN0
IGNhbm5vdCBsb2FkICIgKyBlcnJvci5mYWlsaW5nVVJMKCkgKyAiLiAiICsgZXJyb3IubG9jYWxp
emVkRGVzY3JpcHRpb24oKSk7CiAKICAgICBtX2V4Y2VwdGlvbkNvZGUgPSBYTUxIdHRwUmVxdWVz
dEV4Y2VwdGlvbjo6TkVUV09SS19FUlI7CiAgICAgbmV0d29ya0Vycm9yKCk7CkBAIC05OTgsOCAr
MTAwNiw3IEBAIHZvaWQgWE1MSHR0cFJlcXVlc3Q6OmRpZEZpbmlzaExvYWRpbmcodW5zaWduZWQg
bG9uZyBpZGVudGlmaWVyLCBkb3VibGUpCiAjaWYgRU5BQkxFKFhIUl9SRVNQT05TRV9CTE9CKQog
ICAgIC8vIEZJWE1FOiBTZXQgbV9yZXNwb25zZUJsb2IgdG8gc29tZXRoaW5nIGhlcmUgaW4gdGhl
IFJlc3BvbnNlVHlwZUJsb2IgY2FzZS4KICNlbmRpZgotCi0gICAgSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uOjpyZXNvdXJjZVJldHJpZXZlZEJ5WE1MSHR0cFJlcXVlc3Qoc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpLCBpZGVudGlmaWVyLCBtX3Jlc3BvbnNlQnVpbGRlci50b1N0cmluZ1ByZXNlcnZl
Q2FwYWNpdHkoKSwgbV91cmwsIG1fbGFzdFNlbmRVUkwsIG1fbGFzdFNlbmRMaW5lTnVtYmVyKTsK
KyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnJlc291cmNlUmV0cmlldmVkQnlYTUxIdHRw
UmVxdWVzdChzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIGlkZW50aWZpZXIsIG1fcmVzcG9uc2VC
dWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpLCBtX3VybCwgbV9jYWxsU3RhY2spOwog
CiAgICAgYm9vbCBoYWRMb2FkZXIgPSBtX2xvYWRlcjsKICAgICBtX2xvYWRlciA9IDA7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaCBiL1NvdXJjZS9XZWJD
b3JlL3htbC9YTUxIdHRwUmVxdWVzdC5oCmluZGV4IDY3MTkyNWUzNzBmZDI5MzkxYmJhN2JjMzQz
MmM2MTcxZmI1NTgyMDAuLjQyZTMxMGMwMjAxYzc5ZjczNGQ4YzgyODhmN2FhMDM4OTkzN2Q4NmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5oCkBAIC00MCw2ICs0MCw4IEBAIGNsYXNz
IEJsb2I7CiBjbGFzcyBEb2N1bWVudDsKIGNsYXNzIERPTUZvcm1EYXRhOwogY2xhc3MgUmVzb3Vy
Y2VSZXF1ZXN0OworY2xhc3MgU2NyaXB0QXJndW1lbnRzOworY2xhc3MgU2NyaXB0Q2FsbFN0YWNr
OwogY2xhc3MgU2VjdXJpdHlPcmlnaW47CiBjbGFzcyBTaGFyZWRCdWZmZXI7CiBjbGFzcyBUZXh0
UmVzb3VyY2VEZWNvZGVyOwpAQCAtOTgsNyArMTAwLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2Vu
ZChET01Gb3JtRGF0YSosIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIHNlbmQoQXJyYXlCdWZm
ZXIqLCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBhYm9ydCgpOwotICAgIHZvaWQgc2V0UmVx
dWVzdEhlYWRlcihjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWUs
IEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2b2lkIHNldFJlcXVlc3RIZWFkZXIoY29uc3QgQXRvbWlj
U3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHZhbHVlLCBQYXNzUmVmUHRyPFNjcmlwdEFyZ3Vt
ZW50cz4sIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiwgRXhjZXB0aW9uQ29kZSYpOwogICAg
IHZvaWQgb3ZlcnJpZGVNaW1lVHlwZShjb25zdCBTdHJpbmcmIG92ZXJyaWRlKTsKICAgICBTdHJp
bmcgZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKEV4Y2VwdGlvbkNvZGUmKSBjb25zdDsKICAgICBTdHJp
bmcgZ2V0UmVzcG9uc2VIZWFkZXIoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBFeGNlcHRpb25D
b2RlJikgY29uc3Q7CkBAIC0xMjMsOCArMTI1LDcgQEAgcHVibGljOgogICAgIEFycmF5QnVmZmVy
KiByZXNwb25zZUFycmF5QnVmZmVyKEV4Y2VwdGlvbkNvZGUmKTsKICAgICBBcnJheUJ1ZmZlciog
b3B0aW9uYWxSZXNwb25zZUFycmF5QnVmZmVyKCkgY29uc3QgeyByZXR1cm4gbV9yZXNwb25zZUFy
cmF5QnVmZmVyLmdldCgpOyB9CiAKLSAgICB2b2lkIHNldExhc3RTZW5kTGluZU51bWJlcih1bnNp
Z25lZCBsaW5lTnVtYmVyKSB7IG1fbGFzdFNlbmRMaW5lTnVtYmVyID0gbGluZU51bWJlcjsgfQot
ICAgIHZvaWQgc2V0TGFzdFNlbmRVUkwoY29uc3QgU3RyaW5nJiB1cmwpIHsgbV9sYXN0U2VuZFVS
TCA9IHVybDsgfQorICAgIHZvaWQgc2V0Q2FsbFN0YWNrKFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0
YWNrPik7CiAKICAgICBYTUxIdHRwUmVxdWVzdFVwbG9hZCogdXBsb2FkKCk7CiAgICAgWE1MSHR0
cFJlcXVlc3RVcGxvYWQqIG9wdGlvbmFsVXBsb2FkKCkgY29uc3QgeyByZXR1cm4gbV91cGxvYWQu
Z2V0KCk7IH0KQEAgLTE4Myw2ICsxODQsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgbmV0d29ya0Vy
cm9yKCk7CiAgICAgdm9pZCBhYm9ydEVycm9yKCk7CiAKKyAgICB2b2lkIHJlcG9ydFVuc2FmZVVz
YWdlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkgY29uc3Q7CisKICAgICBPd25QdHI8WE1MSHR0cFJl
cXVlc3RVcGxvYWQ+IG1fdXBsb2FkOwogCiAgICAgS1VSTCBtX3VybDsKQEAgLTIyMSw5ICsyMjQs
OCBAQCBwcml2YXRlOgogICAgIC8vIFVzZWQgZm9yIG9ucHJvZ3Jlc3MgdHJhY2tpbmcKICAgICBs
b25nIGxvbmcgbV9yZWNlaXZlZExlbmd0aDsKIAotICAgIHVuc2lnbmVkIG1fbGFzdFNlbmRMaW5l
TnVtYmVyOwotICAgIFN0cmluZyBtX2xhc3RTZW5kVVJMOwogICAgIEV4Y2VwdGlvbkNvZGUgbV9l
eGNlcHRpb25Db2RlOworICAgIFJlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IG1fY2FsbFN0YWNrOwog
CiAgICAgRXZlbnRUYXJnZXREYXRhIG1fZXZlbnRUYXJnZXREYXRhOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaWRsIGIvU291cmNlL1dlYkNvcmUveG1s
L1hNTEh0dHBSZXF1ZXN0LmlkbAppbmRleCA4MjZkMTAxMjY3YmQwZGQ5YzUyM2QyYzk1ZTI3ODIz
N2NkN2RhZmQ1Li42NTNkZjE2MWMwMWJhMDgxNDc1ODdmZjBmOThiOWI3NjE3MGQ2YWVjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaWRsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5pZGwKQEAgLTY3LDcgKzY3LDcgQEAgbW9kdWxl
IHhtbCB7CiAgICAgICAgIFtDdXN0b21dIHZvaWQgb3BlbihpbiBET01TdHJpbmcgbWV0aG9kLCBp
biBET01TdHJpbmcgdXJsLCBpbiBbT3B0aW9uYWxdIGJvb2xlYW4gYXN5bmMsIGluIFtPcHRpb25h
bF0gRE9NU3RyaW5nIHVzZXIsIGluIFtPcHRpb25hbF0gRE9NU3RyaW5nIHBhc3N3b3JkKQogICAg
ICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKLSAgICAgICAgdm9pZCBzZXRSZXF1ZXN0
SGVhZGVyKGluIERPTVN0cmluZyBoZWFkZXIsIGluIERPTVN0cmluZyB2YWx1ZSkKKyAgICAgICAg
W0N1c3RvbUFyZ3VtZW50SGFuZGxpbmddIHZvaWQgc2V0UmVxdWVzdEhlYWRlcihpbiBET01TdHJp
bmcgaGVhZGVyLCBpbiBET01TdHJpbmcgdmFsdWUpCiAgICAgICAgICAgICByYWlzZXMoRE9NRXhj
ZXB0aW9uKTsKIAogICAgICAgICBbQ3VzdG9tXSB2b2lkIHNlbmQoKQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDY4MTY3OTQ3
ZjRjNWU0NDFjODA1ZGQ1NTFlNDVjZDhiOGYzNjhjODAuLjAyN2QwN2U4ZDM3MzkyZDhlZDRiODBh
YzhlMjQxYTk1NmFhYTI2MDEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMS0xMi0wOCAgVnNl
dm9sb2QgVmxhc292ICA8dnNldmlrQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVj
dG9yOiBVbnNhZmUgY3Jvc3Mgb3JpZ2luIGFjY2VzcyBlcnJvcnMgc2hvdWxkIHNob3cgc3RhY2sg
dHJhY2UgaW4gY29uc29sZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTczMDk5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLWNyb3NzLW9yaWdpbi1pZnJh
bWUtbG9nZ2luZy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5z
cGVjdG9yL2NvbnNvbGUtY3Jvc3Mtb3JpZ2luLWlmcmFtZS1sb2dnaW5nLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUteGhyLWxvZ2dpbmctZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUteGhyLWxvZ2dp
bmcuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvY3Jvc3Mt
b3JpZ2luLWlmcmFtZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9o
dHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLWNyb3NzLW9yaWdpbi1pZnJhbWUtbG9nZ2luZy1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL2h0dHAvdGVz
dHMvaW5zcGVjdG9yL2NvbnNvbGUteGhyLWxvZ2dpbmctZXhwZWN0ZWQudHh0OiBDb3BpZWQgZnJv
bSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLXhoci1sb2dnaW5nLWV4
cGVjdGVkLnR4dC4KKwogMjAxMS0xMi0wOCAgVGFrYXNoaSBUb3lvc2hpbWEgIDx0b3lvc2hpbUBj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgRml4IGZhaWxlZCBsYXlvdXQgdGVzdCwgYnVmZmVyZWRB
bW91bnQtYWZ0ZXItY2xvc2UtaW4tYnVzeS5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLWNyb3NzLW9yaWdpbi1pZnJhbWUtbG9nZ2luZy1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLWNy
b3NzLW9yaWdpbi1pZnJhbWUtbG9nZ2luZy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWU1MTI2
NGMwN2ZiZTQ3NjcyOGNmMDk1Y2JiNDUyZTFhNTkzZDcyNAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtY3Jvc3Mtb3JpZ2luLWlmcmFt
ZS1sb2dnaW5nLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE2IEBACitDT05TT0xFIE1FU1NBR0U6
IGxpbmUgMTogVW5zYWZlIEphdmFTY3JpcHQgYXR0ZW1wdCB0byBhY2Nlc3MgZnJhbWUgd2l0aCBV
UkwgaHR0cDovL2xvY2FsaG9zdDo4MDAwL2luc3BlY3Rvci9yZXNvdXJjZXMvY3Jvc3Mtb3JpZ2lu
LWlmcmFtZS5odG1sIGZyb20gZnJhbWUgd2l0aCBVUkwgaHR0cDovLzEyNy4wLjAuMTo4MDAwL2lu
c3BlY3Rvci9jb25zb2xlLWNyb3NzLW9yaWdpbi1pZnJhbWUtbG9nZ2luZy5odG1sLiBEb21haW5z
LCBwcm90b2NvbHMgYW5kIHBvcnRzIG11c3QgbWF0Y2guCisKK0NPTlNPTEUgTUVTU0FHRTogbGlu
ZSAxOiBVbnNhZmUgSmF2YVNjcmlwdCBhdHRlbXB0IHRvIGFjY2VzcyBmcmFtZSB3aXRoIFVSTCBo
dHRwOi8vbG9jYWxob3N0OjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlcy9jcm9zcy1vcmlnaW4taWZy
YW1lLmh0bWwgZnJvbSBmcmFtZSB3aXRoIFVSTCBodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVj
dG9yL2NvbnNvbGUtY3Jvc3Mtb3JpZ2luLWlmcmFtZS1sb2dnaW5nLmh0bWwuIERvbWFpbnMsIHBy
b3RvY29scyBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KKworQ09OU09MRSBNRVNTQUdFOiBsaW5lIDA6
IFVuYWJsZSB0byBwb3N0IG1lc3NhZ2UgdG8gaHR0cDovLzEyNy4wLjAuMTo4MDAwLiBSZWNpcGll
bnQgaGFzIG9yaWdpbiBodHRwOi8vbG9jYWxob3N0OjgwMDAuCisKK1Rlc3RzIHRoYXQgY3Jvc3Mg
b3JpZ2luIGVycm9ycyBhcmUgbG9nZ2VkIHdpdGggc291cmNlIHVybCBhbmQgbGluZSBudW1iZXIu
CisKKworVW5zYWZlIEphdmFTY3JpcHQgYXR0ZW1wdCB0byBhY2Nlc3MgZnJhbWUgd2l0aCBVUkwg
aHR0cDovL2xvY2FsaG9zdDo4MDAwL2luc3BlY3Rvci9yZXNvdXJjZXMvY3Jvc3Mtb3JpZ2luLWlm
cmFtZS5odG1sIGZyb20gZnJhbWUgd2l0aCBVUkwgaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3Bl
Y3Rvci9jb25zb2xlLWNyb3NzLW9yaWdpbi1pZnJhbWUtbG9nZ2luZy5odG1sLiBEb21haW5zLCBw
cm90b2NvbHMgYW5kIHBvcnRzIG11c3QgbWF0Y2guCisKK1Vuc2FmZSBKYXZhU2NyaXB0IGF0dGVt
cHQgdG8gYWNjZXNzIGZyYW1lIHdpdGggVVJMIGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9pbnNwZWN0
b3IvcmVzb3VyY2VzL2Nyb3NzLW9yaWdpbi1pZnJhbWUuaHRtbCBmcm9tIGZyYW1lIHdpdGggVVJM
IGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3IvY29uc29sZS1jcm9zcy1vcmlnaW4taWZy
YW1lLWxvZ2dpbmcuaHRtbC4gRG9tYWlucywgcHJvdG9jb2xzIGFuZCBwb3J0cyBtdXN0IG1hdGNo
LgorCitVbmFibGUgdG8gcG9zdCBtZXNzYWdlIHRvIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC4gUmVj
aXBpZW50IGhhcyBvcmlnaW4gaHR0cDovL2xvY2FsaG9zdDo4MDAwLgorCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtY3Jvc3Mtb3JpZ2luLWlm
cmFtZS1sb2dnaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25z
b2xlLWNyb3NzLW9yaWdpbi1pZnJhbWUtbG9nZ2luZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU3ZDIxYTUx
ZWMzMjYwMTQ0ZDRhY2Q2YmEwMzhmMzlmY2FhNzg0MWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLWNyb3NzLW9yaWdpbi1pZnJhbWUt
bG9nZ2luZy5odG1sCkBAIC0wLDAgKzEsNTAgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNy
Yz0iaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9ImNvbnNvbGUtdGVz
dC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gYWNjZXNzRnJhbWUoKQoreworICAg
IC8vIFNob3VsZCBmYWlsLgorICAgIHZhciBob3N0ID0gZnJhbWVzWzBdLmxvY2F0aW9uLmhvc3Q7
CisKKyAgICAvLyBTaG91bGQgZmFpbC4KKyAgICBmcmFtZXNbMF0ubG9jYXRpb24ucmVsb2FkKCk7
CisKKyAgICAvLyBTaG91bGQgZmFpbC4KKyAgICBmcmFtZXNbMF0ucG9zdE1lc3NhZ2UoImZhaWwi
LCAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIik7Cit9CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAg
IHZhciBmaW5pc2hBdHRlbXB0c0xlZnQgPSA0OworICAgIEluc3BlY3RvclRlc3QuYWRkQ29uc29s
ZVNuaWZmZXIobWF5YmVGaW5pc2gsIHRydWUpOworICAgIENvbnNvbGVBZ2VudC5zZXRNb25pdG9y
aW5nWEhSRW5hYmxlZCh0cnVlLCBzdGVwMSk7CisKKyAgICBmdW5jdGlvbiBzdGVwMSgpCisgICAg
eworICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJhY2Nlc3NGcmFtZSgpIiwg
bWF5YmVGaW5pc2gpOworICAgIH0KKworICAgIGZ1bmN0aW9uIG1heWJlRmluaXNoKCkKKyAgICB7
CisgICAgICAgIC0tZmluaXNoQXR0ZW1wdHNMZWZ0OworICAgICAgICBpZiAoZmluaXNoQXR0ZW1w
dHNMZWZ0KQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIENvbnNvbGVBZ2VudC5zZXRN
b25pdG9yaW5nWEhSRW5hYmxlZChmYWxzZSwgZmluaXNoKTsKKyAgICB9CisKKyAgICBmdW5jdGlv
biBmaW5pc2goKQorICAgIHsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wQ29uc29sZU1lc3Nh
Z2VzKCk7CisgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7CisgICAgfQorfQor
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8cD5UZXN0cyB0
aGF0IGNyb3NzIG9yaWdpbiBlcnJvcnMgYXJlIGxvZ2dlZCB3aXRoIHNvdXJjZSB1cmwgYW5kIGxp
bmUgbnVtYmVyLjwvcD4KKzxpZnJhbWUgc3JjPSJodHRwOi8vbG9jYWxob3N0OjgwMDAvaW5zcGVj
dG9yL3Jlc291cmNlcy9jcm9zcy1vcmlnaW4taWZyYW1lLmh0bWwiPjwvaWZyYW1lPgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
Y29uc29sZS14aHItbG9nZ2luZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2luc3BlY3Rvci9jb25zb2xlLXhoci1sb2dnaW5nLWV4cGVjdGVkLnR4dAppbmRleCAwNDUwYzBj
NDI2NmFiM2FlODdjNmI1ZmI1ZjgxMjQ3N2E0MTg4MTc5Li5lMmFiNzdiZjdhYmY4ODMyNGYyZWVm
MDQxN2Q5ZGU3MmU3YjZiY2Q2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2lu
c3BlY3Rvci9jb25zb2xlLXhoci1sb2dnaW5nLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLXhoci1sb2dnaW5nLWV4cGVjdGVkLnR4dApA
QCAtMSw4ICsxLDEwIEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTogUmVmdXNlZCB0byBzZXQg
dW5zYWZlIGhlYWRlciAib3JpZ2luIgogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEwOiBzZW5kaW5n
IGEgJXMgcmVxdWVzdCB0byAlcwogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEwOiBzZW5kaW5nIGEg
JXMgcmVxdWVzdCB0byAlcwogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEwOiBzZW5kaW5nIGEgJXMg
cmVxdWVzdCB0byAlcwogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEwOiBzZW5kaW5nIGEgJXMgcmVx
dWVzdCB0byAlcwogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE6IFhNTEh0dHBSZXF1ZXN0IGNhbm5v
dCBsb2FkIGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2VzL3hoci1leGlz
dHMuaHRtbC4gT3JpZ2luIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMCBpcyBub3QgYWxsb3dlZCBieSBB
Y2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4uCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTogUmVm
dXNlZCB0byBzZXQgdW5zYWZlIGhlYWRlciAib3JpZ2luIgogQ09OU09MRSBNRVNTQUdFOiBsaW5l
IDEwOiBzZW5kaW5nIGEgJXMgcmVxdWVzdCB0byAlcwogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEw
OiBzZW5kaW5nIGEgJXMgcmVxdWVzdCB0byAlcwogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEwOiBz
ZW5kaW5nIGEgJXMgcmVxdWVzdCB0byAlcwpAQCAtMTAsNiArMTIsNyBAQCBDT05TT0xFIE1FU1NB
R0U6IGxpbmUgMTA6IHNlbmRpbmcgYSAlcyByZXF1ZXN0IHRvICVzCiBDT05TT0xFIE1FU1NBR0U6
IGxpbmUgMTogWE1MSHR0cFJlcXVlc3QgY2Fubm90IGxvYWQgaHR0cDovL2xvY2FsaG9zdDo4MDAw
L2luc3BlY3Rvci9yZXNvdXJjZXMveGhyLWV4aXN0cy5odG1sLiBPcmlnaW4gaHR0cDovLzEyNy4w
LjAuMTo4MDAwIGlzIG5vdCBhbGxvd2VkIGJ5IEFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbi4K
IFRlc3RzIHRoYXQgWE1MSHR0cFJlcXVlc3QgTG9nZ2luZyB3b3JrcyB3aGVuIEVuYWJsZWQgYW5k
IGRvZXNuJ3Qgc2hvdyBsb2dzIHdoZW4gRGlzYWJsZWQuCiAKK1JlZnVzZWQgdG8gc2V0IHVuc2Fm
ZSBoZWFkZXIgIm9yaWdpbiIKIGNvbnNvbGUteGhyLWxvZ2dpbmcuaHRtbDoxMHNlbmRpbmcgYSBH
RVQgcmVxdWVzdCB0byByZXNvdXJjZXMveGhyLWV4aXN0cy5odG1sCiBYSFIgZmluaXNoZWQgbG9h
ZGluZzogImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2VzL3hoci1leGlz
dHMuaHRtbCIuCiBjb25zb2xlLXhoci1sb2dnaW5nLmh0bWw6MTBzZW5kaW5nIGEgR0VUIHJlcXVl
c3QgdG8gcmVzb3VyY2VzL3hoci1kb2VzLW5vdC1leGlzdC5odG1sCkBAIC0xOSw2ICsyMiw3IEBA
IGNvbnNvbGUteGhyLWxvZ2dpbmcuaHRtbDoxMHNlbmRpbmcgYSBQT1NUIHJlcXVlc3QgdG8gcmVz
b3VyY2VzL3Bvc3QtdGFyZ2V0LmNnaQogWEhSIGZpbmlzaGVkIGxvYWRpbmc6ICJodHRwOi8vMTI3
LjAuMC4xOjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlcy9wb3N0LXRhcmdldC5jZ2kiLgogY29uc29s
ZS14aHItbG9nZ2luZy5odG1sOjEwc2VuZGluZyBhIEdFVCByZXF1ZXN0IHRvIGh0dHA6Ly9sb2Nh
bGhvc3Q6ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2VzL3hoci1leGlzdHMuaHRtbAogWE1MSHR0cFJl
cXVlc3QgY2Fubm90IGxvYWQgaHR0cDovL2xvY2FsaG9zdDo4MDAwL2luc3BlY3Rvci9yZXNvdXJj
ZXMveGhyLWV4aXN0cy5odG1sLiBPcmlnaW4gaHR0cDovLzEyNy4wLjAuMTo4MDAwIGlzIG5vdCBh
bGxvd2VkIGJ5IEFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbi4KK1JlZnVzZWQgdG8gc2V0IHVu
c2FmZSBoZWFkZXIgIm9yaWdpbiIKIGNvbnNvbGUteGhyLWxvZ2dpbmcuaHRtbDoxMHNlbmRpbmcg
YSBHRVQgcmVxdWVzdCB0byByZXNvdXJjZXMveGhyLWV4aXN0cy5odG1sCiBjb25zb2xlLXhoci1s
b2dnaW5nLmh0bWw6MTBzZW5kaW5nIGEgR0VUIHJlcXVlc3QgdG8gcmVzb3VyY2VzL3hoci1kb2Vz
LW5vdC1leGlzdC5odG1sCiBHRVQgaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9yZXNv
dXJjZXMveGhyLWRvZXMtbm90LWV4aXN0Lmh0bWwgNDA0IChOb3QgRm91bmQpCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLXhoci1sb2dnaW5nLmh0
bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLXhoci1sb2dnaW5n
Lmh0bWwKaW5kZXggNzljYWI2ODQ3MDMyMGJkN2Q3OGIwYzNjNmQ2MWQzOTE3Yjk4ZTYxNS4uNjdm
MWUyNDRkYThlOWJjZjI5NWIxYjM3YmE1YTc5MjdiMDVhZGQ1NiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29uc29sZS14aHItbG9nZ2luZy5odG1sCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUteGhyLWxvZ2dpbmcuaHRt
bApAQCAtMTMsNiArMTMsMTAgQEAgZnVuY3Rpb24gcmVxdWVzdEhlbHBlcihtZXRob2QsIHVybCkK
IAogZnVuY3Rpb24gbWFrZVJlcXVlc3RzKCkKIHsKKyAgICB2YXIgeGhyID0gbmV3IFhNTEh0dHBS
ZXF1ZXN0KCk7CisgICAgeGhyLm9wZW4oIkdFVCIsICJyZXNvdXJjZXMveGhyLWV4aXN0cy5odG1s
IiwgZmFsc2UpOworICAgIHhoci5zZXRSZXF1ZXN0SGVhZGVyKCJvcmlnaW4iLCAiRk9SQklEREVO
Iik7CisKICAgICAvLyAxLiBQYWdlIHRoYXQgZXhpc3RzLgogICAgIHJlcXVlc3RIZWxwZXIoIkdF
VCIsICJyZXNvdXJjZXMveGhyLWV4aXN0cy5odG1sIik7CiAgICAgLy8gMi4gUGFnZSB0aGF0IGRv
ZXNuJ3QgZXhpc3QuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rv
ci9yZXNvdXJjZXMvY3Jvc3Mtb3JpZ2luLWlmcmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2Nyb3NzLW9yaWdpbi1pZnJhbWUuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5kNTBiOTZhZjRmNzQ5ZTBiZGZmZTljMzM0ZTg2YjZjZjk0YTAzMzZlCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2Nyb3Nz
LW9yaWdpbi1pZnJhbWUuaHRtbApAQCAtMCwwICsxLDcgQEAKKzxodG1sPgorPGhlYWQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKyAgPHA+Q3Jvc3Mgb3JpZ2luIGZyYW1lLjxwPgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vaHR0cC90ZXN0cy9p
bnNwZWN0b3IvY29uc29sZS1jcm9zcy1vcmlnaW4taWZyYW1lLWxvZ2dpbmctZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29u
c29sZS1jcm9zcy1vcmlnaW4taWZyYW1lLWxvZ2dpbmctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
Ljk1ZDA4Y2I1YzE0N2Q5YzY1OTEwOWExODA2MTM3YTBkMzU2NTU0YjMKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9odHRwL3Rlc3RzL2luc3BlY3Rvci9j
b25zb2xlLWNyb3NzLW9yaWdpbi1pZnJhbWUtbG9nZ2luZy1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwxNiBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE6IFVuc2FmZSBKYXZhU2NyaXB0IGF0dGVt
cHQgdG8gYWNjZXNzIGZyYW1lIHdpdGggVVJMIGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9pbnNwZWN0
b3IvcmVzb3VyY2VzL2Nyb3NzLW9yaWdpbi1pZnJhbWUuaHRtbCBmcm9tIGZyYW1lIHdpdGggVVJM
IGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3IvY29uc29sZS1jcm9zcy1vcmlnaW4taWZy
YW1lLWxvZ2dpbmcuaHRtbC4gRG9tYWlucywgcHJvdG9jb2xzIGFuZCBwb3J0cyBtdXN0IG1hdGNo
LgorCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTogVW5zYWZlIEphdmFTY3JpcHQgYXR0ZW1wdCB0
byBhY2Nlc3MgZnJhbWUgd2l0aCBVUkwgaHR0cDovL2xvY2FsaG9zdDo4MDAwL2luc3BlY3Rvci9y
ZXNvdXJjZXMvY3Jvc3Mtb3JpZ2luLWlmcmFtZS5odG1sIGZyb20gZnJhbWUgd2l0aCBVUkwgaHR0
cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9jb25zb2xlLWNyb3NzLW9yaWdpbi1pZnJhbWUt
bG9nZ2luZy5odG1sLiBEb21haW5zLCBwcm90b2NvbHMgYW5kIHBvcnRzIG11c3QgbWF0Y2guCisK
K0NPTlNPTEUgTUVTU0FHRTogbGluZSAwOiBVbmFibGUgdG8gcG9zdCBtZXNzYWdlIHRvIGh0dHA6
Ly8xMjcuMC4wLjE6ODAwMC4gUmVjaXBpZW50IGhhcyBvcmlnaW4gaHR0cDovL2xvY2FsaG9zdDo4
MDAwLgorCitUZXN0cyB0aGF0IGNyb3NzIG9yaWdpbiBlcnJvcnMgYXJlIGxvZ2dlZCB3aXRoIHNv
dXJjZSB1cmwgYW5kIGxpbmUgbnVtYmVyLgorCisKK2NvbnNvbGUtY3Jvc3Mtb3JpZ2luLWlmcmFt
ZS1sb2dnaW5nLmh0bWw6OVVuc2FmZSBKYXZhU2NyaXB0IGF0dGVtcHQgdG8gYWNjZXNzIGZyYW1l
IHdpdGggVVJMIGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2VzL2Nyb3Nz
LW9yaWdpbi1pZnJhbWUuaHRtbCBmcm9tIGZyYW1lIHdpdGggVVJMIGh0dHA6Ly8xMjcuMC4wLjE6
ODAwMC9pbnNwZWN0b3IvY29uc29sZS1jcm9zcy1vcmlnaW4taWZyYW1lLWxvZ2dpbmcuaHRtbC4g
RG9tYWlucywgcHJvdG9jb2xzIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgorCitjb25zb2xlLWNyb3Nz
LW9yaWdpbi1pZnJhbWUtbG9nZ2luZy5odG1sOjEyVW5zYWZlIEphdmFTY3JpcHQgYXR0ZW1wdCB0
byBhY2Nlc3MgZnJhbWUgd2l0aCBVUkwgaHR0cDovL2xvY2FsaG9zdDo4MDAwL2luc3BlY3Rvci9y
ZXNvdXJjZXMvY3Jvc3Mtb3JpZ2luLWlmcmFtZS5odG1sIGZyb20gZnJhbWUgd2l0aCBVUkwgaHR0
cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9jb25zb2xlLWNyb3NzLW9yaWdpbi1pZnJhbWUt
bG9nZ2luZy5odG1sLiBEb21haW5zLCBwcm90b2NvbHMgYW5kIHBvcnRzIG11c3QgbWF0Y2guCisK
K2NvbnNvbGUtY3Jvc3Mtb3JpZ2luLWlmcmFtZS1sb2dnaW5nLmh0bWw6MTVVbmFibGUgdG8gcG9z
dCBtZXNzYWdlIHRvIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC4gUmVjaXBpZW50IGhhcyBvcmlnaW4g
aHR0cDovL2xvY2FsaG9zdDo4MDAwLgorCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUteGhyLWxvZ2dpbmctZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvY29uc29sZS14aHItbG9nZ2luZy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjRiMDRh
YjJkYmMwZjUyZDRmOTM1YTYxZTAxZDc3ZTdjNTdkODhjNgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUt
eGhyLWxvZ2dpbmctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzIgQEAKK0NPTlNPTEUgTUVTU0FH
RTogbGluZSAxOiBSZWZ1c2VkIHRvIHNldCB1bnNhZmUgaGVhZGVyICJvcmlnaW4iCitDT05TT0xF
IE1FU1NBR0U6IGxpbmUgMTA6IHNlbmRpbmcgYSAlcyByZXF1ZXN0IHRvICVzCitDT05TT0xFIE1F
U1NBR0U6IGxpbmUgMTA6IHNlbmRpbmcgYSAlcyByZXF1ZXN0IHRvICVzCitDT05TT0xFIE1FU1NB
R0U6IGxpbmUgMTA6IHNlbmRpbmcgYSAlcyByZXF1ZXN0IHRvICVzCitDT05TT0xFIE1FU1NBR0U6
IGxpbmUgMTA6IHNlbmRpbmcgYSAlcyByZXF1ZXN0IHRvICVzCitDT05TT0xFIE1FU1NBR0U6IGxp
bmUgMTogWE1MSHR0cFJlcXVlc3QgY2Fubm90IGxvYWQgaHR0cDovL2xvY2FsaG9zdDo4MDAwL2lu
c3BlY3Rvci9yZXNvdXJjZXMveGhyLWV4aXN0cy5odG1sLiBPcmlnaW4gaHR0cDovLzEyNy4wLjAu
MTo4MDAwIGlzIG5vdCBhbGxvd2VkIGJ5IEFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbi4KK0NP
TlNPTEUgTUVTU0FHRTogbGluZSAxOiBSZWZ1c2VkIHRvIHNldCB1bnNhZmUgaGVhZGVyICJvcmln
aW4iCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTA6IHNlbmRpbmcgYSAlcyByZXF1ZXN0IHRvICVz
CitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTA6IHNlbmRpbmcgYSAlcyByZXF1ZXN0IHRvICVzCitD
T05TT0xFIE1FU1NBR0U6IGxpbmUgMTA6IHNlbmRpbmcgYSAlcyByZXF1ZXN0IHRvICVzCitDT05T
T0xFIE1FU1NBR0U6IGxpbmUgMTA6IHNlbmRpbmcgYSAlcyByZXF1ZXN0IHRvICVzCitDT05TT0xF
IE1FU1NBR0U6IGxpbmUgMTogWE1MSHR0cFJlcXVlc3QgY2Fubm90IGxvYWQgaHR0cDovL2xvY2Fs
aG9zdDo4MDAwL2luc3BlY3Rvci9yZXNvdXJjZXMveGhyLWV4aXN0cy5odG1sLiBPcmlnaW4gaHR0
cDovLzEyNy4wLjAuMTo4MDAwIGlzIG5vdCBhbGxvd2VkIGJ5IEFjY2Vzcy1Db250cm9sLUFsbG93
LU9yaWdpbi4KK1Rlc3RzIHRoYXQgWE1MSHR0cFJlcXVlc3QgTG9nZ2luZyB3b3JrcyB3aGVuIEVu
YWJsZWQgYW5kIGRvZXNuJ3Qgc2hvdyBsb2dzIHdoZW4gRGlzYWJsZWQuCisKK2NvbnNvbGUteGhy
LWxvZ2dpbmcuaHRtbDoxOFJlZnVzZWQgdG8gc2V0IHVuc2FmZSBoZWFkZXIgIm9yaWdpbiIKK2Nv
bnNvbGUteGhyLWxvZ2dpbmcuaHRtbDoxMHNlbmRpbmcgYSBHRVQgcmVxdWVzdCB0byByZXNvdXJj
ZXMveGhyLWV4aXN0cy5odG1sCitYSFIgZmluaXNoZWQgbG9hZGluZzogImh0dHA6Ly8xMjcuMC4w
LjE6ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2VzL3hoci1leGlzdHMuaHRtbCIuCitjb25zb2xlLXho
ci1sb2dnaW5nLmh0bWw6MTBzZW5kaW5nIGEgR0VUIHJlcXVlc3QgdG8gcmVzb3VyY2VzL3hoci1k
b2VzLW5vdC1leGlzdC5odG1sCitHRVQgaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9y
ZXNvdXJjZXMveGhyLWRvZXMtbm90LWV4aXN0Lmh0bWwgNDA0IChOb3QgRm91bmQpCitYSFIgZmlu
aXNoZWQgbG9hZGluZzogImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2Vz
L3hoci1kb2VzLW5vdC1leGlzdC5odG1sIi4KK2NvbnNvbGUteGhyLWxvZ2dpbmcuaHRtbDoxMHNl
bmRpbmcgYSBQT1NUIHJlcXVlc3QgdG8gcmVzb3VyY2VzL3Bvc3QtdGFyZ2V0LmNnaQorWEhSIGZp
bmlzaGVkIGxvYWRpbmc6ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL3Jlc291cmNl
cy9wb3N0LXRhcmdldC5jZ2kiLgorY29uc29sZS14aHItbG9nZ2luZy5odG1sOjEwc2VuZGluZyBh
IEdFVCByZXF1ZXN0IHRvIGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2Vz
L3hoci1leGlzdHMuaHRtbAorbmV0d29yay10ZXN0LmpzOjM5WE1MSHR0cFJlcXVlc3QgY2Fubm90
IGxvYWQgaHR0cDovL2xvY2FsaG9zdDo4MDAwL2luc3BlY3Rvci9yZXNvdXJjZXMveGhyLWV4aXN0
cy5odG1sLiBPcmlnaW4gaHR0cDovLzEyNy4wLjAuMTo4MDAwIGlzIG5vdCBhbGxvd2VkIGJ5IEFj
Y2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbi4KK2NvbnNvbGUteGhyLWxvZ2dpbmcuaHRtbDoxOFJl
ZnVzZWQgdG8gc2V0IHVuc2FmZSBoZWFkZXIgIm9yaWdpbiIKK2NvbnNvbGUteGhyLWxvZ2dpbmcu
aHRtbDoxMHNlbmRpbmcgYSBHRVQgcmVxdWVzdCB0byByZXNvdXJjZXMveGhyLWV4aXN0cy5odG1s
Citjb25zb2xlLXhoci1sb2dnaW5nLmh0bWw6MTBzZW5kaW5nIGEgR0VUIHJlcXVlc3QgdG8gcmVz
b3VyY2VzL3hoci1kb2VzLW5vdC1leGlzdC5odG1sCitHRVQgaHR0cDovLzEyNy4wLjAuMTo4MDAw
L2luc3BlY3Rvci9yZXNvdXJjZXMveGhyLWRvZXMtbm90LWV4aXN0Lmh0bWwgNDA0IChOb3QgRm91
bmQpCitjb25zb2xlLXhoci1sb2dnaW5nLmh0bWw6MTBzZW5kaW5nIGEgUE9TVCByZXF1ZXN0IHRv
IHJlc291cmNlcy9wb3N0LXRhcmdldC5jZ2kKK2NvbnNvbGUteGhyLWxvZ2dpbmcuaHRtbDoxMHNl
bmRpbmcgYSBHRVQgcmVxdWVzdCB0byBodHRwOi8vbG9jYWxob3N0OjgwMDAvaW5zcGVjdG9yL3Jl
c291cmNlcy94aHItZXhpc3RzLmh0bWwKK25ldHdvcmstdGVzdC5qczozOVhNTEh0dHBSZXF1ZXN0
IGNhbm5vdCBsb2FkIGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2VzL3ho
ci1leGlzdHMuaHRtbC4gT3JpZ2luIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMCBpcyBub3QgYWxsb3dl
ZCBieSBBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4uCisK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>118376</attachid>
            <date>2011-12-08 05:59:41 -0800</date>
            <delta_ts>2011-12-08 14:01:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73099-20111208175938.patch</filename>
            <type>text/plain</type>
            <size>45267</size>
            <attacher name="Vsevolod Vlasov">vsevik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAyMzMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2ZkYTQzZWNlYWUyNmUx
NjExZDQwZmVmNTEwNWUwYmU5ZmEyNWIyMC4uYmNmMWU4NGY3ZWRmYzZlN2QzMDU1MWNhNzk3MGZi
Y2FlNzYwNTZkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDExLTEyLTA4ICBWc2V2
b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IFVuc2FmZSBjcm9zcyBvcmlnaW4gYWNjZXNzIGVycm9ycyBzaG91bGQgc2hvdyBzdGFjayB0
cmFjZSBpbiBjb25zb2xlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NzMwOTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBUZXN0OiBodHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLWNyb3NzLW9yaWdpbi1p
ZnJhbWUtbG9nZ2luZy5odG1sCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1
ZXN0Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTWE1MSHR0cFJlcXVlc3Q6OnNlbmQp
OgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4UHJveHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
YWRkTWVzc2FnZVRvQ29uc29sZSk6CisgICAgICAgIChXZWJDb3JlOjpsb2dJbmZvKToKKyAgICAg
ICAgKFdlYkNvcmU6OlY4UHJveHk6OnJlcG9ydFVuc2FmZUFjY2Vzc1RvKToKKyAgICAgICAgKiBi
aW5kaW5ncy92OC9jdXN0b20vVjhYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpWOFhNTEh0dHBSZXF1ZXN0OjpzZW5kQ2FsbGJhY2spOgorICAgICAgICAqIGluc3Bl
Y3Rvci9Db25zb2xlTWVzc2FnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb25zb2xlTWVzc2Fn
ZTo6Q29uc29sZU1lc3NhZ2UpOgorICAgICAgICAqIGluc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5o
OgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDb25zb2xlQWdlbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29uc29sZUFnZW50OjplbmFibGUpOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9yQ29uc29sZUFnZW50OjpyZXNvdXJjZVJldHJpZXZlZEJ5WE1MSHR0cFJl
cXVlc3QpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDb25zb2xlQWdlbnQuaDoKKyAg
ICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ29uc29sZUluc3RydW1lbnRhdGlvbi5oOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpyZXNvdXJjZVJldHJpZXZl
ZEJ5WE1MSHR0cFJlcXVlc3QpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
OjpyZXNvdXJjZVJldHJpZXZlZEJ5WE1MSHR0cFJlcXVlc3RJbXBsKToKKyAgICAgICAgKiBpbnNw
ZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmg6CisgICAgICAgICogbG9hZGVyL0ZyYW1l
TG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpzaG91bGRBbGxvd05h
dmlnYXRpb24pOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlBvc3RNZXNzYWdlVGltZXI6OlBvc3RNZXNzYWdlVGltZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6UG9zdE1lc3NhZ2VUaW1lcjo6c3RhY2tUcmFjZSk6CisgICAgICAgIChXZWJDb3JlOjpET01X
aW5kb3c6OnBvc3RNZXNzYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6cG9zdE1l
c3NhZ2VUaW1lckZpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6cHJpbnRFcnJv
ck1lc3NhZ2UpOgorICAgICAgICAqIHhtbC9YTUxIdHRwUmVxdWVzdC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6WE1MSHR0cFJlcXVlc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6WE1MSHR0cFJlcXVlc3Q6OnNldENhbGxTdGFjayk6CisgICAgICAgIChXZWJDb3JlOjpYTUxI
dHRwUmVxdWVzdDo6aW5pdFNlbmQpOgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6
OnJlcG9ydFVuc2FmZVVzYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0Ojpz
ZXRSZXF1ZXN0SGVhZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0OjpnZXRS
ZXNwb25zZUhlYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6ZGlkRmFp
bCk6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6ZGlkRmluaXNoTG9hZGluZyk6
CisgICAgICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0Lmg6CisgICAgICAgICogeG1sL1hNTEh0dHBS
ZXF1ZXN0LmlkbDoKKwogMjAxMS0xMi0wOCAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJv
dEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEwMjMyMS4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RD
dXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdEN1
c3RvbS5jcHAKaW5kZXggM2FiMjA3ZWIyYTY0MzljMjQxNjU0YjU1YTIxMTkxYzI4YzU1MGIwNi4u
ZGUwNjA5ODgyZDIwYjc4Yjk1ODZlZTMzN2JiNDA1MjYwOTZiNmIxOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAKQEAg
LTM4LDYgKzM4LDggQEAKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIkhUTUxE
b2N1bWVudC5oIgogI2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIgorI2luY2x1
ZGUgIlNjcmlwdENhbGxTdGFjay5oIgorI2luY2x1ZGUgIlNjcmlwdENhbGxTdGFja0ZhY3Rvcnku
aCIKICNpbmNsdWRlICJKU0FycmF5QnVmZmVyLmgiCiAjaW5jbHVkZSAiSlNCbG9iLmgiCiAjaW5j
bHVkZSAiSlNET01Gb3JtRGF0YS5oIgpAQCAtMTEzLDYgKzExNSw4IEBAIEpTVmFsdWUgSlNYTUxI
dHRwUmVxdWVzdDo6c2VuZChFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjp3aWxsU2VuZFhNTEh0dHBSZXF1ZXN0KGltcGwoKS0+c2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpLCBpbXBsKCktPnVybCgpKTsKIAorICAgIGltcGwoKS0+c2V0Q2FsbFN0YWNrKGNy
ZWF0ZVNjcmlwdENhbGxTdGFjayhleGVjKSk7CisKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsK
ICAgICBpZiAoIWV4ZWMtPmFyZ3VtZW50Q291bnQoKSkKICAgICAgICAgaW1wbCgpLT5zZW5kKGVj
KTsKQEAgLTEzMiwxNCArMTM2LDYgQEAgSlNWYWx1ZSBKU1hNTEh0dHBSZXF1ZXN0OjpzZW5kKEV4
ZWNTdGF0ZSogZXhlYykKICAgICAgICAgICAgIGltcGwoKS0+c2VuZCh1c3RyaW5nVG9TdHJpbmco
dmFsLnRvU3RyaW5nKGV4ZWMpKSwgZWMpOwogICAgIH0KIAotICAgIGludCBzaWduZWRMaW5lTnVt
YmVyOwotICAgIGludHB0cl90IHNvdXJjZUlEOwotICAgIFVTdHJpbmcgc291cmNlVVJMOwotICAg
IEpTVmFsdWUgZnVuY3Rpb247Ci0gICAgZXhlYy0+aW50ZXJwcmV0ZXIoKS0+cmV0cmlldmVMYXN0
Q2FsbGVyKGV4ZWMsIHNpZ25lZExpbmVOdW1iZXIsIHNvdXJjZUlELCBzb3VyY2VVUkwsIGZ1bmN0
aW9uKTsKLSAgICBpbXBsKCktPnNldExhc3RTZW5kTGluZU51bWJlcihzaWduZWRMaW5lTnVtYmVy
ID49IDAgPyBzaWduZWRMaW5lTnVtYmVyIDogMCk7Ci0gICAgaW1wbCgpLT5zZXRMYXN0U2VuZFVS
TCh1c3RyaW5nVG9TdHJpbmcoc291cmNlVVJMKSk7Ci0KICAgICBzZXRET01FeGNlcHRpb24oZXhl
YywgZWMpOwogICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvdjgvVjhQcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9WOFByb3h5LmNwcAppbmRleCAwNTc2MjI4NmFiMjZmMjFmYTcxYWZmNjRjZmJiYmZlMTcx
NmEzNWQ0Li41MzU1YzNlMjU2NzZiNjgwOTkxNWNjYWJlODgwYjBmNWM3ODViOGQ1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFByb3h5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9WOFByb3h5LmNwcApAQCAtNDUsNiArNDUsOCBAQAogI2luY2x1
ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNs
dWRlICJQbGF0Zm9ybVN1cHBvcnQuaCIKKyNpbmNsdWRlICJTY3JpcHRDYWxsU3RhY2suaCIKKyNp
bmNsdWRlICJTY3JpcHRDYWxsU3RhY2tGYWN0b3J5LmgiCiAjaW5jbHVkZSAiU2NyaXB0U291cmNl
Q29kZS5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3Mu
aCIKQEAgLTExOSwxMSArMTIxLDExIEBAIHR5cGVkZWYgSGFzaE1hcDxOb2RlKiwgdjg6Ok9iamVj
dCo+IERPTU5vZGVNYXA7CiB0eXBlZGVmIEhhc2hNYXA8dm9pZCosIHY4OjpPYmplY3QqPiBET01P
YmplY3RNYXA7CiB0eXBlZGVmIEhhc2hNYXA8aW50LCB2ODo6RnVuY3Rpb25UZW1wbGF0ZSo+IEZ1
bmN0aW9uVGVtcGxhdGVNYXA7CiAKLXN0YXRpYyB2b2lkIGFkZE1lc3NhZ2VUb0NvbnNvbGUoUGFn
ZSogcGFnZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZUlELCB1
bnNpZ25lZCBsaW5lTnVtYmVyKQorc3RhdGljIHZvaWQgYWRkTWVzc2FnZVRvQ29uc29sZShQYWdl
KiBwYWdlLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgc291cmNlSUQsIHVu
c2lnbmVkIGxpbmVOdW1iZXIsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBzdGFja1RyYWNl
KQogewogICAgIEFTU0VSVChwYWdlKTsKICAgICBDb25zb2xlKiBjb25zb2xlID0gcGFnZS0+bWFp
bkZyYW1lKCktPmRvbVdpbmRvdygpLT5jb25zb2xlKCk7Ci0gICAgY29uc29sZS0+YWRkTWVzc2Fn
ZShKU01lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgbWVz
c2FnZSwgbGluZU51bWJlciwgc291cmNlSUQpOworICAgIGNvbnNvbGUtPmFkZE1lc3NhZ2UoSlNN
ZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsIG1lc3NhZ2Us
IGxpbmVOdW1iZXIsIHNvdXJjZUlELCBzdGFja1RyYWNlKTsKIH0KIAogdm9pZCBsb2dJbmZvKEZy
YW1lKiBmcmFtZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHVybCkKQEAg
LTEzMSw3ICsxMzMsNyBAQCB2b2lkIGxvZ0luZm8oRnJhbWUqIGZyYW1lLCBjb25zdCBTdHJpbmcm
IG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgdXJsKQogICAgIFBhZ2UqIHBhZ2UgPSBmcmFtZS0+cGFn
ZSgpOwogICAgIGlmICghcGFnZSkKICAgICAgICAgcmV0dXJuOwotICAgIGFkZE1lc3NhZ2VUb0Nv
bnNvbGUocGFnZSwgbWVzc2FnZSwgdXJsLCAwKTsKKyAgICBhZGRNZXNzYWdlVG9Db25zb2xlKHBh
Z2UsIG1lc3NhZ2UsIHVybCwgMCwgMCk7CiB9CiAKIHZvaWQgVjhQcm94eTo6cmVwb3J0VW5zYWZl
QWNjZXNzVG8oRnJhbWUqIHRhcmdldCkKQEAgLTE2MSwxMCArMTYzLDEyIEBAIHZvaWQgVjhQcm94
eTo6cmVwb3J0VW5zYWZlQWNjZXNzVG8oRnJhbWUqIHRhcmdldCkKICAgICBjb25zdCBTdHJpbmcg
a1NvdXJjZUlEID0gIiI7CiAgICAgY29uc3QgaW50IGtMaW5lTnVtYmVyID0gMTsKIAorICAgIFJl
ZlB0cjxTY3JpcHRDYWxsU3RhY2s+IHN0YWNrVHJhY2UgPSBjcmVhdGVTY3JpcHRDYWxsU3RhY2so
U2NyaXB0Q2FsbFN0YWNrOjptYXhDYWxsU3RhY2tTaXplVG9DYXB0dXJlLCB0cnVlKTsKKwogICAg
IC8vIE5PVEU6IFNhZmFyaSBwcmludHMgdGhlIG1lc3NhZ2UgaW4gdGhlIHRhcmdldCBwYWdlLCBi
dXQgaXQgc2VlbXMgbGlrZQogICAgIC8vIGl0IHNob3VsZCBiZSBpbiB0aGUgc291cmNlIHBhZ2Uu
IEV2ZW4gZm9yIGRlbGF5ZWQgbWVzc2FnZXMsIHdlIHB1dCBpdCBpbgogICAgIC8vIHRoZSBzb3Vy
Y2UgcGFnZS4KLSAgICBhZGRNZXNzYWdlVG9Db25zb2xlKHBhZ2UsIHN0ciwga1NvdXJjZUlELCBr
TGluZU51bWJlcik7CisgICAgYWRkTWVzc2FnZVRvQ29uc29sZShwYWdlLCBzdHIsIGtTb3VyY2VJ
RCwga0xpbmVOdW1iZXIsIHN0YWNrVHJhY2UucmVsZWFzZSgpKTsKIH0KIAogc3RhdGljIHZvaWQg
aGFuZGxlRmF0YWxFcnJvckluVjgoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvY3VzdG9tL1Y4WE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvY3VzdG9tL1Y4WE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwCmluZGV4IDgyMWE1
YzVkYjk5ZTI4ODM2MzkzMWUxMWNiNmMwYTUxZjczM2RkMGEuLjA1MWZmZGVlMjdhMjZmYWNjZTQ1
M2JkZTIyZGVjODA5NTYyMTVjYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L2N1c3RvbS9WOFhNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9jdXN0b20vVjhYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAKQEAgLTM1LDYg
KzM1LDggQEAKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5j
bHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgiCisjaW5jbHVkZSAiU2NyaXB0Q2FsbFN0
YWNrLmgiCisjaW5jbHVkZSAiU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5oIgogI2luY2x1ZGUgIlY4
QXJyYXlCdWZmZXIuaCIKICNpbmNsdWRlICJWOEJpbmRpbmcuaCIKICNpbmNsdWRlICJWOEJsb2Iu
aCIKQEAgLTE3Miw2ICsxNzQsOCBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhYTUxIdHRwUmVx
dWVzdDo6c2VuZENhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiAKICAgICBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxTZW5kWE1MSHR0cFJlcXVlc3QoeG1sSHR0cFJlcXVl
c3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgeG1sSHR0cFJlcXVlc3QtPnVybCgpKTsKIAor
ICAgIHhtbEh0dHBSZXF1ZXN0LT5zZXRDYWxsU3RhY2soY3JlYXRlU2NyaXB0Q2FsbFN0YWNrKCkp
OworCiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAx
KQogICAgICAgICB4bWxIdHRwUmVxdWVzdC0+c2VuZChlYyk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0NvbnNvbGVNZXNzYWdlLmNwcAppbmRleCBlMTZhNzJlYTY2NjUwNWM3NzNjNGUxOGJl
MjVmY2U0YmU0MGNkZmE0Li4xNTAzMmFmYjZhNGEyYjYzZjM0MWJlZDM1NzM5ZjVkZTBjN2M2ZGM1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5jcHAKQEAgLTQ1
LDcgKzQ1LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1Db25zb2xlTWVzc2FnZTo6Q29u
c29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzLCBNZXNzYWdlVHlwZSB0LCBNZXNzYWdlTGV2ZWwg
bCwgY29uc3QgU3RyaW5nJiBtLCB1bnNpZ25lZCBsaSwgY29uc3QgU3RyaW5nJiB1LCBjb25zdCBT
dHJpbmcmIHJlcXVlc3RJZCkKK0NvbnNvbGVNZXNzYWdlOjpDb25zb2xlTWVzc2FnZShNZXNzYWdl
U291cmNlIHMsIE1lc3NhZ2VUeXBlIHQsIE1lc3NhZ2VMZXZlbCBsLCBjb25zdCBTdHJpbmcmIG0s
IHVuc2lnbmVkIGxpLCBjb25zdCBTdHJpbmcmIHUpCiAgICAgOiBtX3NvdXJjZShzKQogICAgICwg
bV90eXBlKHQpCiAgICAgLCBtX2xldmVsKGwpCkBAIC01MywxMSArNTMsMTAgQEAgQ29uc29sZU1l
c3NhZ2U6OkNvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2UgcywgTWVzc2FnZVR5cGUgdCwgTWVz
c2FnZUxldmVsIGwsIGMKICAgICAsIG1fbGluZShsaSkKICAgICAsIG1fdXJsKHUpCiAgICAgLCBt
X3JlcGVhdENvdW50KDEpCi0gICAgLCBtX3JlcXVlc3RJZChyZXF1ZXN0SWQpCiB7CiB9CiAKLUNv
bnNvbGVNZXNzYWdlOjpDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlIHMsIE1lc3NhZ2VUeXBl
IHQsIE1lc3NhZ2VMZXZlbCBsLCBjb25zdCBTdHJpbmcmIG0sIFBhc3NSZWZQdHI8U2NyaXB0QXJn
dW1lbnRzPiBhcmd1bWVudHMsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxsU3RhY2sp
CitDb25zb2xlTWVzc2FnZTo6Q29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzLCBNZXNzYWdl
VHlwZSB0LCBNZXNzYWdlTGV2ZWwgbCwgY29uc3QgU3RyaW5nJiBtLCBQYXNzUmVmUHRyPFNjcmlw
dEFyZ3VtZW50cz4gYXJndW1lbnRzLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0
YWNrLCBjb25zdCBTdHJpbmcmIHJlcXVlc3RJZCkKICAgICA6IG1fc291cmNlKHMpCiAgICAgLCBt
X3R5cGUodCkKICAgICAsIG1fbGV2ZWwobCkKQEAgLTY2LDYgKzY1LDcgQEAgQ29uc29sZU1lc3Nh
Z2U6OkNvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2UgcywgTWVzc2FnZVR5cGUgdCwgTWVzc2Fn
ZUxldmVsIGwsIGMKICAgICAsIG1fbGluZSgwKQogICAgICwgbV91cmwoKQogICAgICwgbV9yZXBl
YXRDb3VudCgxKQorICAgICwgbV9yZXF1ZXN0SWQocmVxdWVzdElkKQogewogICAgIGlmIChjYWxs
U3RhY2sgJiYgY2FsbFN0YWNrLT5zaXplKCkpIHsKICAgICAgICAgY29uc3QgU2NyaXB0Q2FsbEZy
YW1lJiBmcmFtZSA9IGNhbGxTdGFjay0+YXQoMCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9D
b25zb2xlTWVzc2FnZS5oCmluZGV4IDg4MzU0ZDBmMDI0YWEwNTRmNDA0NTk4NWJmNjhiM2ViMmQw
ZWE4MTIuLjRhMWIzYjJmMTIyYzc3Y2M2MDcyZWY0ZTFkMmMwMGVjZmExOTZhZWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5oCkBAIC01MSw4ICs1MSw4IEBAIGNs
YXNzIFNjcmlwdFZhbHVlOwogY2xhc3MgQ29uc29sZU1lc3NhZ2UgewogICAgIFdURl9NQUtFX05P
TkNPUFlBQkxFKENvbnNvbGVNZXNzYWdlKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJs
aWM6Ci0gICAgQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3Nh
Z2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtLCB1bnNpZ25lZCBsaSwgY29uc3QgU3RyaW5nJiB1LCBj
b25zdCBTdHJpbmcmIHJlcXVlc3RJZCA9IFN0cmluZygpKTsKLSAgICBDb25zb2xlTWVzc2FnZShN
ZXNzYWdlU291cmNlLCBNZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG0s
IFBhc3NSZWZQdHI8U2NyaXB0QXJndW1lbnRzPiwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+
KTsKKyAgICBDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdlVHlwZSwgTWVzc2Fn
ZUxldmVsLCBjb25zdCBTdHJpbmcmIG0sIHVuc2lnbmVkIGxpLCBjb25zdCBTdHJpbmcmIHUpOwor
ICAgIENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2
ZWwsIGNvbnN0IFN0cmluZyYgbSwgUGFzc1JlZlB0cjxTY3JpcHRBcmd1bWVudHM+LCBQYXNzUmVm
UHRyPFNjcmlwdENhbGxTdGFjaz4sIGNvbnN0IFN0cmluZyYgcmVxdWVzdElkID0gU3RyaW5nKCkp
OwogICAgIENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VUeXBlLCBNZXNzYWdl
TGV2ZWwsIGNvbnN0IFN0cmluZyYgbSwgY29uc3QgU3RyaW5nJiByZXNwb25zZVVybCwgY29uc3Qg
U3RyaW5nJiByZXF1ZXN0SWQpOwogICAgIH5Db25zb2xlTWVzc2FnZSgpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29uc29sZUFnZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb25zb2xlQWdlbnQuY3BwCmluZGV4IDYz
YmM4MzBiNGE4YjU3ZWUwMTc4YTQxZTg2NTBlMmU0YTgwNjAxYmQuLjE0Nzg5NTcxYTA5YmZhMTM1
MmRkODU4ODhjOTc2NjhjMjJlOWQ2ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JDb25zb2xlQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JDb25zb2xlQWdlbnQuY3BwCkBAIC03OSw3ICs3OSw3IEBAIHZvaWQgSW5z
cGVjdG9yQ29uc29sZUFnZW50OjplbmFibGUoRXJyb3JTdHJpbmcqKQogICAgIG1fc3RhdGUtPnNl
dEJvb2xlYW4oQ29uc29sZUFnZW50U3RhdGU6OmNvbnNvbGVNZXNzYWdlc0VuYWJsZWQsIHRydWUp
OwogCiAgICAgaWYgKG1fZXhwaXJlZENvbnNvbGVNZXNzYWdlQ291bnQpIHsKLSAgICAgICAgQ29u
c29sZU1lc3NhZ2UgZXhwaXJlZE1lc3NhZ2UoT3RoZXJNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdl
VHlwZSwgV2FybmluZ01lc3NhZ2VMZXZlbCwgU3RyaW5nOjpmb3JtYXQoIiVkIGNvbnNvbGUgbWVz
c2FnZXMgYXJlIG5vdCBzaG93bi4iLCBtX2V4cGlyZWRDb25zb2xlTWVzc2FnZUNvdW50KSwgMCwg
IiIsICIiKTsKKyAgICAgICAgQ29uc29sZU1lc3NhZ2UgZXhwaXJlZE1lc3NhZ2UoT3RoZXJNZXNz
YWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgV2FybmluZ01lc3NhZ2VMZXZlbCwgU3RyaW5nOjpm
b3JtYXQoIiVkIGNvbnNvbGUgbWVzc2FnZXMgYXJlIG5vdCBzaG93bi4iLCBtX2V4cGlyZWRDb25z
b2xlTWVzc2FnZUNvdW50KSwgMCwgIiIpOwogICAgICAgICBleHBpcmVkTWVzc2FnZS5hZGRUb0Zy
b250ZW5kKG1fZnJvbnRlbmQsIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKTsKICAgICB9CiAKQEAg
LTIwNywxNyArMjA3LDE1IEBAIHZvaWQgSW5zcGVjdG9yQ29uc29sZUFnZW50OjpmcmFtZVdpbmRv
d0Rpc2NhcmRlZChET01XaW5kb3cqIHdpbmRvdykKICAgICBtX2luamVjdGVkU2NyaXB0TWFuYWdl
ci0+ZGlzY2FyZEluamVjdGVkU2NyaXB0c0Zvcih3aW5kb3cpOwogfQogCi12b2lkIEluc3BlY3Rv
ckNvbnNvbGVBZ2VudDo6cmVzb3VyY2VSZXRyaWV2ZWRCeVhNTEh0dHBSZXF1ZXN0KHVuc2lnbmVk
IGxvbmcgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgc2VuZFVS
TCwgdW5zaWduZWQgc2VuZExpbmVOdW1iZXIpCit2b2lkIEluc3BlY3RvckNvbnNvbGVBZ2VudDo6
cmVzb3VyY2VSZXRyaWV2ZWRCeVhNTEh0dHBSZXF1ZXN0KHVuc2lnbmVkIGxvbmcgaWRlbnRpZmll
ciwgY29uc3QgU3RyaW5nJiB1cmwsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxsU3Rh
Y2spCiB7CiAgICAgaWYgKCFkZXZlbG9wZXJFeHRyYXNFbmFibGVkKCkpCiAgICAgICAgIHJldHVy
bjsKICAgICBpZiAobV9mcm9udGVuZCAmJiBtX3N0YXRlLT5nZXRCb29sZWFuKENvbnNvbGVBZ2Vu
dFN0YXRlOjptb25pdG9yaW5nWEhSKSkgewogICAgICAgICBTdHJpbmcgbWVzc2FnZSA9ICJYSFIg
ZmluaXNoZWQgbG9hZGluZzogXCIiICsgdXJsICsgIlwiLiI7CiAgICAgICAgIFN0cmluZyByZXF1
ZXN0SWQgPSBJZGVudGlmaWVyc0ZhY3Rvcnk6OnJlcXVlc3RJZChpZGVudGlmaWVyKTsKLSAgICAg
ICAgYWRkQ29uc29sZU1lc3NhZ2UoYWRvcHRQdHIobmV3IENvbnNvbGVNZXNzYWdlKE5ldHdvcmtN
ZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgTG9nTWVzc2FnZUxldmVsLCBtZXNzYWdlLCBz
ZW5kTGluZU51bWJlciwgc2VuZFVSTCwgcmVxdWVzdElkKSkpOworICAgICAgICBhZGRDb25zb2xl
TWVzc2FnZShhZG9wdFB0cihuZXcgQ29uc29sZU1lc3NhZ2UoTmV0d29ya01lc3NhZ2VTb3VyY2Us
IExvZ01lc3NhZ2VUeXBlLCBMb2dNZXNzYWdlTGV2ZWwsIG1lc3NhZ2UsIDAsIGNhbGxTdGFjaywg
cmVxdWVzdElkKSkpOwogICAgIH0KLQotCiB9CiAKIHZvaWQgSW5zcGVjdG9yQ29uc29sZUFnZW50
OjpkaWRSZWNlaXZlUmVzcG9uc2UodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNv
dXJjZVJlc3BvbnNlJiByZXNwb25zZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JDb25zb2xlQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JDb25zb2xlQWdlbnQuaAppbmRleCA3NjM1YTY5NmM2YWU4N2VlYjAzOWRkNDViMWE1
NzljODViMWUxOTM0Li43NzFhYjU5MmU4MDlkMjhmZGVlYzEzYzI3NGMwOWMxOGU4ODEzZDE1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29uc29sZUFnZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnNvbGVBZ2VudC5o
CkBAIC03Niw3ICs3Niw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZnJhbWVXaW5kb3dEaXNjYXJk
ZWQoRE9NV2luZG93Kik7CiAKLSAgICB2b2lkIHJlc291cmNlUmV0cmlldmVkQnlYTUxIdHRwUmVx
dWVzdCh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBT
dHJpbmcmIHNlbmRVUkwsIHVuc2lnbmVkIHNlbmRMaW5lTnVtYmVyKTsKKyAgICB2b2lkIHJlc291
cmNlUmV0cmlldmVkQnlYTUxIdHRwUmVxdWVzdCh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNv
bnN0IFN0cmluZyYgdXJsLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4pOwogICAgIHZvaWQg
ZGlkUmVjZWl2ZVJlc3BvbnNlKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgUmVzb3Vy
Y2VSZXNwb25zZSYpOwogICAgIHZvaWQgZGlkRmFpbExvYWRpbmcodW5zaWduZWQgbG9uZyBpZGVu
dGlmaWVyLCBjb25zdCBSZXNvdXJjZUVycm9yJik7CiAjaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVC
VUdHRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29u
c29sZUluc3RydW1lbnRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckNvbnNvbGVJbnN0cnVtZW50YXRpb24uaAppbmRleCBlNjNjNzEyOGQ1MzMyZWYyNjRjMTg4ZmEw
YTRlN2U3MTMxZGQ0MmNmLi4yNGEzOGE2MDQ3NDE3N2Y5ZjUxZDMxZWY2MTRjZjMwNTQ0OGM2YWFk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29uc29sZUlu
c3RydW1lbnRhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JD
b25zb2xlSW5zdHJ1bWVudGF0aW9uLmgKQEAgLTM5LDYgKzM5LDE0IEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAoraW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpyZXNvdXJj
ZVJldHJpZXZlZEJ5WE1MSHR0cFJlcXVlc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4
dCwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVN0cmluZywg
Y29uc3QgU3RyaW5nJiB1cmwsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxsU3RhY2sp
Cit7CisjaWYgRU5BQkxFKElOU1BFQ1RPUikKKyAgICBpZiAoSW5zdHJ1bWVudGluZ0FnZW50cyog
aW5zdHJ1bWVudGluZ0FnZW50cyA9IGluc3RydW1lbnRpbmdBZ2VudHNGb3JDb250ZXh0KGNvbnRl
eHQpKQorICAgICAgICByZXNvdXJjZVJldHJpZXZlZEJ5WE1MSHR0cFJlcXVlc3RJbXBsKGluc3Ry
dW1lbnRpbmdBZ2VudHMsIGlkZW50aWZpZXIsIHNvdXJjZVN0cmluZywgdXJsLCBjYWxsU3RhY2sp
OworI2VuZGlmCit9CisKIGlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6YWRk
TWVzc2FnZVRvQ29uc29sZShQYWdlKiBwYWdlLCBNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2Fn
ZVR5cGUgdHlwZSwgTWVzc2FnZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIFBh
c3NSZWZQdHI8U2NyaXB0QXJndW1lbnRzPiBhcmd1bWVudHMsIFBhc3NSZWZQdHI8U2NyaXB0Q2Fs
bFN0YWNrPiBjYWxsU3RhY2spCiB7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKaW5k
ZXggZDc4OTQyMmFhMjBjYTkzYmQ2ODg1YTlhMzQ2OGEwNGU0NWFmYWVjOC4uNWRiN2Y3MDM0MDUx
MzFkMzI1NmVjMDJhOWI0OWQwNjFhODhiNTFlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKQEAgLTU1MywxMCArNTUz
LDEwIEBAIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRGYWlsTG9hZGluZ0ltcGwo
SW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVuCiAgICAgICAgIGNvbnNvbGVBZ2VudC0+ZGlk
RmFpbExvYWRpbmcoaWRlbnRpZmllciwgZXJyb3IpOyAvLyBUaGlzIHNob3VsZCBjb21lIEFGVEVS
IHJlc291cmNlIG5vdGlmaWNhdGlvbiwgZnJvbnQtZW5kIHJlbGllcyBvbiB0aGlzLgogfQogCi12
b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6cmVzb3VyY2VSZXRyaWV2ZWRCeVhNTEh0dHBS
ZXF1ZXN0SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCB1bnNp
Z25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgc291cmNlU3RyaW5nLCBjb25zdCBT
dHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiBzZW5kVVJMLCB1bnNpZ25lZCBzZW5kTGluZU51bWJl
cikKK3ZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpyZXNvdXJjZVJldHJpZXZlZEJ5WE1M
SHR0cFJlcXVlc3RJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMs
IHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBzb3VyY2VTdHJpbmcsIGNv
bnN0IFN0cmluZyYgdXJsLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0YWNrKQog
ewogICAgIGlmIChJbnNwZWN0b3JDb25zb2xlQWdlbnQqIGNvbnNvbGVBZ2VudCA9IGluc3RydW1l
bnRpbmdBZ2VudHMtPmluc3BlY3RvckNvbnNvbGVBZ2VudCgpKQotICAgICAgICBjb25zb2xlQWdl
bnQtPnJlc291cmNlUmV0cmlldmVkQnlYTUxIdHRwUmVxdWVzdChpZGVudGlmaWVyLCB1cmwsIHNl
bmRVUkwsIHNlbmRMaW5lTnVtYmVyKTsKKyAgICAgICAgY29uc29sZUFnZW50LT5yZXNvdXJjZVJl
dHJpZXZlZEJ5WE1MSHR0cFJlcXVlc3QoaWRlbnRpZmllciwgdXJsLCBjYWxsU3RhY2spOwogICAg
IGlmIChJbnNwZWN0b3JSZXNvdXJjZUFnZW50KiByZXNvdXJjZUFnZW50ID0gaW5zdHJ1bWVudGlu
Z0FnZW50cy0+aW5zcGVjdG9yUmVzb3VyY2VBZ2VudCgpKQogICAgICAgICByZXNvdXJjZUFnZW50
LT5zZXRJbml0aWFsWEhSQ29udGVudChpZGVudGlmaWVyLCBzb3VyY2VTdHJpbmcpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlv
bi5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5o
CmluZGV4IGExZTg5OTI0NmI0ZTVlZDVmMjFiMzI0NTFlODY2MTJiYWEwMmUxZTkuLmZjNWU5MTUw
OWQyZTkyMmUwYzkwOTJjYTZmYzQ0ODZhZDUzMTdlZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgKQEAgLTEzNCw3ICsxMzQs
NyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgZGlkUmVjZWl2ZURhdGEoRnJhbWUqLCB1bnNp
Z25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IGNoYXIqIGRhdGEsIGludCBkYXRhTGVuZ3RoLCBp
bnQgZW5jb2RlZERhdGFMZW5ndGgpOwogICAgIHN0YXRpYyB2b2lkIGRpZEZpbmlzaExvYWRpbmco
RnJhbWUqLCBEb2N1bWVudExvYWRlciosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgZG91Ymxl
IGZpbmlzaFRpbWUpOwogICAgIHN0YXRpYyB2b2lkIGRpZEZhaWxMb2FkaW5nKEZyYW1lKiwgRG9j
dW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlRXJy
b3ImKTsKLSAgICBzdGF0aWMgdm9pZCByZXNvdXJjZVJldHJpZXZlZEJ5WE1MSHR0cFJlcXVlc3Qo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3Qg
U3RyaW5nJiBzb3VyY2VTdHJpbmcsIGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIHNl
bmRVUkwsIHVuc2lnbmVkIHNlbmRMaW5lTnVtYmVyKTsKKyAgICBzdGF0aWMgdm9pZCByZXNvdXJj
ZVJldHJpZXZlZEJ5WE1MSHR0cFJlcXVlc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIHVuc2ln
bmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBzb3VyY2VTdHJpbmcsIGNvbnN0IFN0
cmluZyYgdXJsLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4pOwogICAgIHN0YXRpYyB2b2lk
IGRpZFJlY2VpdmVYSFJSZXNwb25zZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgdW5zaWduZWQg
bG9uZyBpZGVudGlmaWVyKTsKICAgICBzdGF0aWMgdm9pZCB3aWxsTG9hZFhIUlN5bmNocm9ub3Vz
bHkoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOwogICAgIHN0YXRpYyB2b2lkIGRpZExvYWRYSFJT
eW5jaHJvbm91c2x5KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsKQEAgLTI3NSw3ICsyNzUsNyBA
QCBwcml2YXRlOgogICAgIHN0YXRpYyB2b2lkIGRpZFJlY2VpdmVEYXRhSW1wbChJbnN0cnVtZW50
aW5nQWdlbnRzKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBjaGFyKiBkYXRhLCBp
bnQgZGF0YUxlbmd0aCwgaW50IGVuY29kZWREYXRhTGVuZ3RoKTsKICAgICBzdGF0aWMgdm9pZCBk
aWRGaW5pc2hMb2FkaW5nSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiwgdW5zaWduZWQgbG9uZyBp
ZGVudGlmaWVyLCBEb2N1bWVudExvYWRlciosIGRvdWJsZSBmaW5pc2hUaW1lKTsKICAgICBzdGF0
aWMgdm9pZCBkaWRGYWlsTG9hZGluZ0ltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIHVuc2lnbmVk
IGxvbmcgaWRlbnRpZmllciwgRG9jdW1lbnRMb2FkZXIqLCBjb25zdCBSZXNvdXJjZUVycm9yJik7
Ci0gICAgc3RhdGljIHZvaWQgcmVzb3VyY2VSZXRyaWV2ZWRCeVhNTEh0dHBSZXF1ZXN0SW1wbChJ
bnN0cnVtZW50aW5nQWdlbnRzKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBTdHJp
bmcmIHNvdXJjZVN0cmluZywgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgc2VuZFVS
TCwgdW5zaWduZWQgc2VuZExpbmVOdW1iZXIpOworICAgIHN0YXRpYyB2b2lkIHJlc291cmNlUmV0
cmlldmVkQnlYTUxIdHRwUmVxdWVzdEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIHVuc2lnbmVk
IGxvbmcgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBzb3VyY2VTdHJpbmcsIGNvbnN0IFN0cmlu
ZyYgdXJsLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4pOwogICAgIHN0YXRpYyB2b2lkIGRp
ZFJlY2VpdmVYSFJSZXNwb25zZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIHVuc2lnbmVkIGxv
bmcgaWRlbnRpZmllcik7CiAgICAgc3RhdGljIHZvaWQgd2lsbExvYWRYSFJTeW5jaHJvbm91c2x5
SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKik7CiAgICAgc3RhdGljIHZvaWQgZGlkTG9hZFhIUlN5
bmNocm9ub3VzbHlJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqKTsKQEAgLTgzMywxNCArODMzLDYg
QEAgaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRGYWlsTG9hZGluZyhG
cmFtZSogZnJhbWUsIERvY3VtZW50TG9hZGUKICNlbmRpZgogfQogCi1pbmxpbmUgdm9pZCBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OnJlc291cmNlUmV0cmlldmVkQnlYTUxIdHRwUmVxdWVzdChT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIs
IGNvbnN0IFN0cmluZyYgc291cmNlU3RyaW5nLCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3Ry
aW5nJiBzZW5kVVJMLCB1bnNpZ25lZCBzZW5kTGluZU51bWJlcikKLXsKLSNpZiBFTkFCTEUoSU5T
UEVDVE9SKQotICAgIGlmIChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRz
ID0gaW5zdHJ1bWVudGluZ0FnZW50c0ZvckNvbnRleHQoY29udGV4dCkpCi0gICAgICAgIHJlc291
cmNlUmV0cmlldmVkQnlYTUxIdHRwUmVxdWVzdEltcGwoaW5zdHJ1bWVudGluZ0FnZW50cywgaWRl
bnRpZmllciwgc291cmNlU3RyaW5nLCB1cmwsIHNlbmRVUkwsIHNlbmRMaW5lTnVtYmVyKTsKLSNl
bmRpZgotfQotCiBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFJlY2Vp
dmVYSFJSZXNwb25zZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCB1bnNpZ25lZCBs
b25nIGlkZW50aWZpZXIpCiB7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRnJhbWVMb2FkZXIuY3BwCmluZGV4IGM0YjA3ZTY4ZDExNTdjZjk1MjdiZjBmYmVkNWZjN2Vj
MDlhYjc5YmQuLjNkZDQxODhjOTg2MGUzMjBlMTc0ZmY0MDQ2OGE3MmI0OWJjZjJhNDkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcApAQCAtODcsOSArODcsMTEgQEAKICNpbmNs
dWRlICJSZXNvdXJjZUhhbmRsZS5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgogI2lu
Y2x1ZGUgIlNjaGVtZVJlZ2lzdHJ5LmgiCi0jaW5jbHVkZSAiU2Nyb2xsQW5pbWF0b3IuaCIKKyNp
bmNsdWRlICJTY3JpcHRDYWxsU3RhY2suaCIKKyNpbmNsdWRlICJTY3JpcHRDYWxsU3RhY2tGYWN0
b3J5LmgiCiAjaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIlNjcmlwdFNv
dXJjZUNvZGUuaCIKKyNpbmNsdWRlICJTY3JvbGxBbmltYXRvci5oIgogI2luY2x1ZGUgIlNlY3Vy
aXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlQb2xpY3kuaCIKICNpbmNsdWRlICJTZWdt
ZW50ZWRTdHJpbmcuaCIKQEAgLTE1NzAsOCArMTU3MiwxMCBAQCBib29sIEZyYW1lTG9hZGVyOjpz
aG91bGRBbGxvd05hdmlnYXRpb24oRnJhbWUqIHRhcmdldEZyYW1lKSBjb25zdAogICAgICAgICBT
dHJpbmcgbWVzc2FnZSA9ICJVbnNhZmUgSmF2YVNjcmlwdCBhdHRlbXB0IHRvIGluaXRpYXRlIGEg
bmF2aWdhdGlvbiBjaGFuZ2UgZm9yIGZyYW1lIHdpdGggVVJMICIgKwogICAgICAgICAgICAgICAg
ICAgICAgICAgIHRhcmdldERvY3VtZW50LT51cmwoKS5zdHJpbmcoKSArICIgZnJvbSBmcmFtZSB3
aXRoIFVSTCAiICsgYWN0aXZlRG9jdW1lbnQtPnVybCgpLnN0cmluZygpICsgIi5cbiI7CiAKKyAg
ICAgICAgUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gc3RhY2tUcmFjZSA9IGNyZWF0ZVNjcmlwdENh
bGxTdGFjayhTY3JpcHRDYWxsU3RhY2s6Om1heENhbGxTdGFja1NpemVUb0NhcHR1cmUsIHRydWUp
OworCiAgICAgICAgIC8vIEZJWE1FOiBzaG91bGQgd2UgcHJpbnQgdG8gdGhlIGNvbnNvbGUgb2Yg
dGhlIGFjdGl2ZUZyYW1lIGFzIHdlbGw/Ci0gICAgICAgIHRhcmdldEZyYW1lLT5kb21XaW5kb3co
KS0+Y29uc29sZSgpLT5hZGRNZXNzYWdlKEpTTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUs
IEVycm9yTWVzc2FnZUxldmVsLCBtZXNzYWdlLCAxLCBTdHJpbmcoKSk7CisgICAgICAgIHRhcmdl
dEZyYW1lLT5kb21XaW5kb3coKS0+Y29uc29sZSgpLT5hZGRNZXNzYWdlKEpTTWVzc2FnZVNvdXJj
ZSwgTG9nTWVzc2FnZVR5cGUsIEVycm9yTWVzc2FnZUxldmVsLCBtZXNzYWdlLCAxLCBTdHJpbmco
KSwgc3RhY2tUcmFjZS5yZWxlYXNlKCkpOwogICAgIH0KICAgICAKICAgICByZXR1cm4gZmFsc2U7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKaW5kZXggNTcxMmQ2NmYzNGY4ZmU4Yjc4NjdmNDE1
M2Y4YjAyZmU5ZmMyOWE2Yy4uOGY0YTk0NTk2YjllODc1NmFlYTY5YTQ2MmEyNDAzMjBlMzBlZDY2
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcApAQCAtODIsNiArODIsOCBAQAogI2luY2x1
ZGUgIlBsYXRmb3JtU2NyZWVuLmgiCiAjaW5jbHVkZSAiU2NoZWR1bGVkQWN0aW9uLmgiCiAjaW5j
bHVkZSAiU2NyZWVuLmgiCisjaW5jbHVkZSAiU2NyaXB0Q2FsbFN0YWNrLmgiCisjaW5jbHVkZSAi
U2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAj
aW5jbHVkZSAiU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIK
QEAgLTEyMiwxMyArMTI0LDE0IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgUG9zdE1l
c3NhZ2VUaW1lciA6IHB1YmxpYyBUaW1lckJhc2UgewogcHVibGljOgotICAgIFBvc3RNZXNzYWdl
VGltZXIoRE9NV2luZG93KiB3aW5kb3csIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVl
PiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZU9yaWdpbiwgUGFzc1JlZlB0cjxET01XaW5k
b3c+IHNvdXJjZSwgUGFzc093blB0cjxNZXNzYWdlUG9ydENoYW5uZWxBcnJheT4gY2hhbm5lbHMs
IFNlY3VyaXR5T3JpZ2luKiB0YXJnZXRPcmlnaW4pCisgICAgUG9zdE1lc3NhZ2VUaW1lcihET01X
aW5kb3cqIHdpbmRvdywgUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IG1lc3NhZ2Us
IGNvbnN0IFN0cmluZyYgc291cmNlT3JpZ2luLCBQYXNzUmVmUHRyPERPTVdpbmRvdz4gc291cmNl
LCBQYXNzT3duUHRyPE1lc3NhZ2VQb3J0Q2hhbm5lbEFycmF5PiBjaGFubmVscywgU2VjdXJpdHlP
cmlnaW4qIHRhcmdldE9yaWdpbiwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IHN0YWNrVHJh
Y2UpCiAgICAgICAgIDogbV93aW5kb3cod2luZG93KQogICAgICAgICAsIG1fbWVzc2FnZShtZXNz
YWdlKQogICAgICAgICAsIG1fb3JpZ2luKHNvdXJjZU9yaWdpbikKICAgICAgICAgLCBtX3NvdXJj
ZShzb3VyY2UpCiAgICAgICAgICwgbV9jaGFubmVscyhjaGFubmVscykKICAgICAgICAgLCBtX3Rh
cmdldE9yaWdpbih0YXJnZXRPcmlnaW4pCisgICAgICAgICwgbV9zdGFja1RyYWNlKHN0YWNrVHJh
Y2UpCiAgICAgewogICAgIH0KIApAQCAtMTM4LDYgKzE0MSw3IEBAIHB1YmxpYzoKICAgICAgICAg
cmV0dXJuIE1lc3NhZ2VFdmVudDo6Y3JlYXRlKG1lc3NhZ2VQb3J0cy5yZWxlYXNlKCksIG1fbWVz
c2FnZSwgbV9vcmlnaW4sICIiLCBtX3NvdXJjZSk7CiAgICAgfQogICAgIFNlY3VyaXR5T3JpZ2lu
KiB0YXJnZXRPcmlnaW4oKSBjb25zdCB7IHJldHVybiBtX3RhcmdldE9yaWdpbi5nZXQoKTsgfQor
ICAgIFNjcmlwdENhbGxTdGFjayogc3RhY2tUcmFjZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhY2tU
cmFjZS5nZXQoKTsgfQogCiBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBmaXJlZCgpCkBAIC0x
NTIsNiArMTU2LDcgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8RE9NV2luZG93PiBtX3NvdXJjZTsK
ICAgICBPd25QdHI8TWVzc2FnZVBvcnRDaGFubmVsQXJyYXk+IG1fY2hhbm5lbHM7CiAgICAgUmVm
UHRyPFNlY3VyaXR5T3JpZ2luPiBtX3RhcmdldE9yaWdpbjsKKyAgICBSZWZQdHI8U2NyaXB0Q2Fs
bFN0YWNrPiBtX3N0YWNrVHJhY2U7CiB9OwogCiB0eXBlZGVmIEhhc2hDb3VudGVkU2V0PERPTVdp
bmRvdyo+IERPTVdpbmRvd1NldDsKQEAgLTg5OCw4ICs5MDMsMTMgQEAgdm9pZCBET01XaW5kb3c6
OnBvc3RNZXNzYWdlKFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBtZXNzYWdlLCBj
b25zdCBNZXMKICAgICAgICAgcmV0dXJuOwogICAgIFN0cmluZyBzb3VyY2VPcmlnaW4gPSBzb3Vy
Y2VEb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKS0+dG9TdHJpbmcoKTsKIAorICAgIC8vIENhcHR1
cmUgc3RhY2sgdHJhY2Ugb25seSB3aGVuIGluc3BlY3RvciBmcm9udC1lbmQgaXMgbG9hZGVkIGFz
IGl0IG1heSBiZSB0aW1lIGNvbnN1bWluZy4KKyAgICBSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBz
dGFja1RyYWNlOworICAgIGlmIChJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246Omhhc0Zyb250ZW5k
cygpKQorICAgICAgICBzdGFja1RyYWNlID0gY3JlYXRlU2NyaXB0Q2FsbFN0YWNrKFNjcmlwdENh
bGxTdGFjazo6bWF4Q2FsbFN0YWNrU2l6ZVRvQ2FwdHVyZSwgdHJ1ZSk7CisKICAgICAvLyBTY2hl
ZHVsZSB0aGUgbWVzc2FnZS4KLSAgICBQb3N0TWVzc2FnZVRpbWVyKiB0aW1lciA9IG5ldyBQb3N0
TWVzc2FnZVRpbWVyKHRoaXMsIG1lc3NhZ2UsIHNvdXJjZU9yaWdpbiwgc291cmNlLCBjaGFubmVs
cy5yZWxlYXNlKCksIHRhcmdldC5nZXQoKSk7CisgICAgUG9zdE1lc3NhZ2VUaW1lciogdGltZXIg
PSBuZXcgUG9zdE1lc3NhZ2VUaW1lcih0aGlzLCBtZXNzYWdlLCBzb3VyY2VPcmlnaW4sIHNvdXJj
ZSwgY2hhbm5lbHMucmVsZWFzZSgpLCB0YXJnZXQuZ2V0KCksIHN0YWNrVHJhY2UucmVsZWFzZSgp
KTsKICAgICB0aW1lci0+c3RhcnRPbmVTaG90KDApOwogfQogCkBAIC05MTUsNyArOTI1LDcgQEAg
dm9pZCBET01XaW5kb3c6OnBvc3RNZXNzYWdlVGltZXJGaXJlZChQYXNzT3duUHRyPFBvc3RNZXNz
YWdlVGltZXI+IHQpCiAgICAgICAgIGlmICghdGltZXItPnRhcmdldE9yaWdpbigpLT5pc1NhbWVT
Y2hlbWVIb3N0UG9ydChkb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpKSkgewogICAgICAgICAg
ICAgU3RyaW5nIG1lc3NhZ2UgPSAiVW5hYmxlIHRvIHBvc3QgbWVzc2FnZSB0byAiICsgdGltZXIt
PnRhcmdldE9yaWdpbigpLT50b1N0cmluZygpICsKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIi4gUmVjaXBpZW50IGhhcyBvcmlnaW4gIiArIGRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2lu
KCktPnRvU3RyaW5nKCkgKyAiLlxuIjsKLSAgICAgICAgICAgIGNvbnNvbGUoKS0+YWRkTWVzc2Fn
ZShKU01lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgbWVz
c2FnZSwgMCwgU3RyaW5nKCkpOworICAgICAgICAgICAgY29uc29sZSgpLT5hZGRNZXNzYWdlKEpT
TWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIEVycm9yTWVzc2FnZUxldmVsLCBtZXNzYWdl
LCAwLCBTdHJpbmcoKSwgdGltZXItPnN0YWNrVHJhY2UoKSk7CiAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIH0KICAgICB9CkBAIC0xNzY2LDcgKzE3NzYsOCBAQCB2b2lkIERPTVdpbmRvdzo6
cHJpbnRFcnJvck1lc3NhZ2UoY29uc3QgU3RyaW5nJiBtZXNzYWdlKQogICAgICAgICByZXR1cm47
CiAKICAgICAvLyBGSVhNRTogQWRkIGFyZ3VtZW50cyBzbyB0aGF0IHdlIGNhbiBwcm92aWRlIGEg
Y29ycmVjdCBzb3VyY2UgVVJMIGFuZCBsaW5lIG51bWJlci4KLSAgICBjb25zb2xlKCktPmFkZE1l
c3NhZ2UoSlNNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWws
IG1lc3NhZ2UsIDEsIFN0cmluZygpKTsKKyAgICBSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBzdGFj
a1RyYWNlID0gY3JlYXRlU2NyaXB0Q2FsbFN0YWNrKFNjcmlwdENhbGxTdGFjazo6bWF4Q2FsbFN0
YWNrU2l6ZVRvQ2FwdHVyZSwgdHJ1ZSk7CisgICAgY29uc29sZSgpLT5hZGRNZXNzYWdlKEpTTWVz
c2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIEVycm9yTWVzc2FnZUxldmVsLCBtZXNzYWdlLCAx
LCBTdHJpbmcoKSwgc3RhY2tUcmFjZS5yZWxlYXNlKCkpOwogfQogCiBTdHJpbmcgRE9NV2luZG93
Ojpjcm9zc0RvbWFpbkFjY2Vzc0Vycm9yTWVzc2FnZShET01XaW5kb3cqIGFjdGl2ZVdpbmRvdykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCmluZGV4IDA1OTBhNDNkNjU1N2ZiYzUw
NWRlZjAwNjBkNTJjYWM5MmQyZGZlYjguLmUxNzFkNmZiNGY1ZWI3MDMwYzQ1NmQ3N2YxODRiMTA0
ZmQyZWY0ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcApAQCAtMzYsNyAr
MzYsNyBAQAogI2luY2x1ZGUgIkZpbGUuaCIKICNpbmNsdWRlICJIVFRQUGFyc2Vycy5oIgogI2lu
Y2x1ZGUgIkhUVFBWYWxpZGF0aW9uLmgiCi0jaW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uLmgiCisjaW5jbHVkZSAiSW5zcGVjdG9yQ29uc29sZUluc3RydW1lbnRhdGlvbi5oIgogI2lu
Y2x1ZGUgIk1lbW9yeUNhY2hlLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VFcnJvci5oIgogI2luY2x1
ZGUgIlJlc291cmNlUmVxdWVzdC5oIgpAQCAtMTU5LDcgKzE1OSw2IEBAIFhNTEh0dHBSZXF1ZXN0
OjpYTUxIdHRwUmVxdWVzdChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzUmVm
UHRyPFNlY3VyCiAgICAgLCBtX3VwbG9hZENvbXBsZXRlKGZhbHNlKQogICAgICwgbV9zYW1lT3Jp
Z2luUmVxdWVzdCh0cnVlKQogICAgICwgbV9yZWNlaXZlZExlbmd0aCgwKQotICAgICwgbV9sYXN0
U2VuZExpbmVOdW1iZXIoMCkKICAgICAsIG1fZXhjZXB0aW9uQ29kZSgwKQogICAgICwgbV9wcm9n
cmVzc0V2ZW50VGhyb3R0bGUodGhpcykKICAgICAsIG1fcmVzcG9uc2VUeXBlQ29kZShSZXNwb25z
ZVR5cGVEZWZhdWx0KQpAQCAtMzEzLDYgKzMxMiwxMSBAQCBTdHJpbmcgWE1MSHR0cFJlcXVlc3Q6
OnJlc3BvbnNlVHlwZSgpCiAgICAgcmV0dXJuICIiOwogfQogCit2b2lkIFhNTEh0dHBSZXF1ZXN0
OjpzZXRDYWxsU3RhY2soUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFjaykKK3sK
KyAgICBtX2NhbGxTdGFjayA9IGNhbGxTdGFjazsKK30KKwogWE1MSHR0cFJlcXVlc3RVcGxvYWQq
IFhNTEh0dHBSZXF1ZXN0Ojp1cGxvYWQoKQogewogICAgIGlmICghbV91cGxvYWQpCkBAIC04MDgs
MTYgKzgxMiwxOSBAQCB2b2lkIFhNTEh0dHBSZXF1ZXN0OjpvdmVycmlkZU1pbWVUeXBlKGNvbnN0
IFN0cmluZyYgb3ZlcnJpZGUpCiAgICAgbV9taW1lVHlwZU92ZXJyaWRlID0gb3ZlcnJpZGU7CiB9
CiAKLXN0YXRpYyB2b2lkIHJlcG9ydFVuc2FmZVVzYWdlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
IGNvbnRleHQsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKK3ZvaWQgWE1MSHR0cFJlcXVlc3Q6OnJl
cG9ydFVuc2FmZVVzYWdlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkgY29uc3QKIHsKKyAgICBTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0ID0gc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwog
ICAgIGlmICghY29udGV4dCkKICAgICAgICAgcmV0dXJuOworCiAgICAgLy8gRklYTUU6IEl0J3Mg
bm90IGdvb2QgdG8gcmVwb3J0IHRoZSBiYWQgdXNhZ2Ugd2l0aG91dCBpbmRpY2F0aW5nIHdoYXQg
c291cmNlIGxpbmUgaXQgY2FtZSBmcm9tLgogICAgIC8vIFdlIHNob3VsZCBwYXNzIGFkZGl0aW9u
YWwgcGFyYW1ldGVycyBzbyB3ZSBjYW4gdGVsbCB0aGUgY29uc29sZSB3aGVyZSB0aGUgbWlzdGFr
ZSBvY2N1cnJlZC4KLSAgICBjb250ZXh0LT5hZGRDb25zb2xlTWVzc2FnZShKU01lc3NhZ2VTb3Vy
Y2UsIExvZ01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgbWVzc2FnZSk7CisgICAgLy8g
V2hlbiB1bnNhZmUgdXNhZ2UgaXMgcmVwb3J0ZWQgb24gVjggb3IgZnJvbSBzZW5kKCkgb3Igc2Vu
ZCBjYWxsYmFjayBvbiBKU0MsIGxpbmVOdW1iZXIgYW5kIHVybCBhcmUgYXZhaWxhYmxlIGZyb20g
dGhlIGNhbGwgc3RhY2sgdGhvdWdoLgorICAgIGNvbnRleHQtPmFkZE1lc3NhZ2UoSlNNZXNzYWdl
U291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsIG1lc3NhZ2UsIDEsIFN0
cmluZygpLCBtX2NhbGxTdGFjayk7CiB9CiAKLXZvaWQgWE1MSHR0cFJlcXVlc3Q6OnNldFJlcXVl
c3RIZWFkZXIoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHZhbHVlLCBF
eGNlcHRpb25Db2RlJiBlYykKK3ZvaWQgWE1MSHR0cFJlcXVlc3Q6OnNldFJlcXVlc3RIZWFkZXIo
Y29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHZhbHVlLCBQYXNzUmVmUHRy
PFNjcmlwdEFyZ3VtZW50cz4sIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxsU3RhY2ss
IEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIGlmIChtX3N0YXRlICE9IE9QRU5FRCB8fCBtX2xv
YWRlcikgewogI2lmIEVOQUJMRShEQVNIQk9BUkRfU1VQUE9SVCkKQEAgLTgzNiw3ICs4NDMsOCBA
QCB2b2lkIFhNTEh0dHBSZXF1ZXN0OjpzZXRSZXF1ZXN0SGVhZGVyKGNvbnN0IEF0b21pY1N0cmlu
ZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB2YQogCiAgICAgLy8gQSBwcml2aWxlZ2VkIHNjcmlwdCAo
ZS5nLiBhIERhc2hib2FyZCB3aWRnZXQpIGNhbiBzZXQgYW55IGhlYWRlcnMuCiAgICAgaWYgKCFz
ZWN1cml0eU9yaWdpbigpLT5jYW5Mb2FkTG9jYWxSZXNvdXJjZXMoKSAmJiAhaXNBbGxvd2VkSFRU
UEhlYWRlcihuYW1lKSkgewotICAgICAgICByZXBvcnRVbnNhZmVVc2FnZShzY3JpcHRFeGVjdXRp
b25Db250ZXh0KCksICJSZWZ1c2VkIHRvIHNldCB1bnNhZmUgaGVhZGVyIFwiIiArIG5hbWUgKyAi
XCIiKTsKKyAgICAgICAgc2V0Q2FsbFN0YWNrKGNhbGxTdGFjayk7CisgICAgICAgIHJlcG9ydFVu
c2FmZVVzYWdlKCJSZWZ1c2VkIHRvIHNldCB1bnNhZmUgaGVhZGVyIFwiIiArIG5hbWUgKyAiXCIi
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtODk4LDEyICs5MDYsMTIgQEAgU3RyaW5n
IFhNTEh0dHBSZXF1ZXN0OjpnZXRSZXNwb25zZUhlYWRlcihjb25zdCBBdG9taWNTdHJpbmcmIG5h
bWUsIEV4Y2VwdGlvbkNvZGUKIAogICAgIC8vIFNlZSBjb21tZW50IGluIGdldEFsbFJlc3BvbnNl
SGVhZGVycyBhYm92ZS4KICAgICBpZiAoaXNTZXRDb29raWVIZWFkZXIobmFtZSkgJiYgIXNlY3Vy
aXR5T3JpZ2luKCktPmNhbkxvYWRMb2NhbFJlc291cmNlcygpKSB7Ci0gICAgICAgIHJlcG9ydFVu
c2FmZVVzYWdlKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgIlJlZnVzZWQgdG8gZ2V0IHVuc2Fm
ZSBoZWFkZXIgXCIiICsgbmFtZSArICJcIiIpOworICAgICAgICByZXBvcnRVbnNhZmVVc2FnZSgi
UmVmdXNlZCB0byBnZXQgdW5zYWZlIGhlYWRlciBcIiIgKyBuYW1lICsgIlwiIik7CiAgICAgICAg
IHJldHVybiBTdHJpbmcoKTsKICAgICB9CiAKICAgICBpZiAoIW1fc2FtZU9yaWdpblJlcXVlc3Qg
JiYgIWlzT25BY2Nlc3NDb250cm9sUmVzcG9uc2VIZWFkZXJXaGl0ZWxpc3QobmFtZSkpIHsKLSAg
ICAgICAgcmVwb3J0VW5zYWZlVXNhZ2Uoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCAiUmVmdXNl
ZCB0byBnZXQgdW5zYWZlIGhlYWRlciBcIiIgKyBuYW1lICsgIlwiIik7CisgICAgICAgIHJlcG9y
dFVuc2FmZVVzYWdlKCJSZWZ1c2VkIHRvIGdldCB1bnNhZmUgaGVhZGVyIFwiIiArIG5hbWUgKyAi
XCIiKTsKICAgICAgICAgcmV0dXJuIFN0cmluZygpOwogICAgIH0KICAgICByZXR1cm4gbV9yZXNw
b25zZS5odHRwSGVhZGVyRmllbGQobmFtZSk7CkBAIC05NzEsNyArOTc5LDcgQEAgdm9pZCBYTUxI
dHRwUmVxdWVzdDo6ZGlkRmFpbChjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKIAogICAgIC8v
IE5ldHdvcmsgZmFpbHVyZXMgYXJlIGFscmVhZHkgcmVwb3J0ZWQgdG8gV2ViIEluc3BlY3RvciBi
eSBSZXNvdXJjZUxvYWRlci4KICAgICBpZiAoZXJyb3IuZG9tYWluKCkgPT0gZXJyb3JEb21haW5X
ZWJLaXRJbnRlcm5hbCkKLSAgICAgICAgcmVwb3J0VW5zYWZlVXNhZ2Uoc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpLCAiWE1MSHR0cFJlcXVlc3QgY2Fubm90IGxvYWQgIiArIGVycm9yLmZhaWxpbmdV
UkwoKSArICIuICIgKyBlcnJvci5sb2NhbGl6ZWREZXNjcmlwdGlvbigpKTsKKyAgICAgICAgcmVw
b3J0VW5zYWZlVXNhZ2UoIlhNTEh0dHBSZXF1ZXN0IGNhbm5vdCBsb2FkICIgKyBlcnJvci5mYWls
aW5nVVJMKCkgKyAiLiAiICsgZXJyb3IubG9jYWxpemVkRGVzY3JpcHRpb24oKSk7CiAKICAgICBt
X2V4Y2VwdGlvbkNvZGUgPSBYTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbjo6TkVUV09SS19FUlI7CiAg
ICAgbmV0d29ya0Vycm9yKCk7CkBAIC05OTgsOCArMTAwNiw3IEBAIHZvaWQgWE1MSHR0cFJlcXVl
c3Q6OmRpZEZpbmlzaExvYWRpbmcodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBkb3VibGUpCiAj
aWYgRU5BQkxFKFhIUl9SRVNQT05TRV9CTE9CKQogICAgIC8vIEZJWE1FOiBTZXQgbV9yZXNwb25z
ZUJsb2IgdG8gc29tZXRoaW5nIGhlcmUgaW4gdGhlIFJlc3BvbnNlVHlwZUJsb2IgY2FzZS4KICNl
bmRpZgotCi0gICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpyZXNvdXJjZVJldHJpZXZlZEJ5
WE1MSHR0cFJlcXVlc3Qoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBpZGVudGlmaWVyLCBtX3Jl
c3BvbnNlQnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKSwgbV91cmwsIG1fbGFzdFNl
bmRVUkwsIG1fbGFzdFNlbmRMaW5lTnVtYmVyKTsKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b246OnJlc291cmNlUmV0cmlldmVkQnlYTUxIdHRwUmVxdWVzdChzY3JpcHRFeGVjdXRpb25Db250
ZXh0KCksIGlkZW50aWZpZXIsIG1fcmVzcG9uc2VCdWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBh
Y2l0eSgpLCBtX3VybCwgbV9jYWxsU3RhY2spOwogCiAgICAgYm9vbCBoYWRMb2FkZXIgPSBtX2xv
YWRlcjsKICAgICBtX2xvYWRlciA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwv
WE1MSHR0cFJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5oCmlu
ZGV4IDY3MTkyNWUzNzBmZDI5MzkxYmJhN2JjMzQzMmM2MTcxZmI1NTgyMDAuLjQyZTMxMGMwMjAx
Yzc5ZjczNGQ4YzgyODhmN2FhMDM4OTkzN2Q4NmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3htbC9YTUxIdHRwUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVx
dWVzdC5oCkBAIC00MCw2ICs0MCw4IEBAIGNsYXNzIEJsb2I7CiBjbGFzcyBEb2N1bWVudDsKIGNs
YXNzIERPTUZvcm1EYXRhOwogY2xhc3MgUmVzb3VyY2VSZXF1ZXN0OworY2xhc3MgU2NyaXB0QXJn
dW1lbnRzOworY2xhc3MgU2NyaXB0Q2FsbFN0YWNrOwogY2xhc3MgU2VjdXJpdHlPcmlnaW47CiBj
bGFzcyBTaGFyZWRCdWZmZXI7CiBjbGFzcyBUZXh0UmVzb3VyY2VEZWNvZGVyOwpAQCAtOTgsNyAr
MTAwLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2VuZChET01Gb3JtRGF0YSosIEV4Y2VwdGlvbkNv
ZGUmKTsKICAgICB2b2lkIHNlbmQoQXJyYXlCdWZmZXIqLCBFeGNlcHRpb25Db2RlJik7CiAgICAg
dm9pZCBhYm9ydCgpOwotICAgIHZvaWQgc2V0UmVxdWVzdEhlYWRlcihjb25zdCBBdG9taWNTdHJp
bmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWUsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2b2lk
IHNldFJlcXVlc3RIZWFkZXIoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcm
IHZhbHVlLCBQYXNzUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4sIFBhc3NSZWZQdHI8U2NyaXB0Q2Fs
bFN0YWNrPiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgb3ZlcnJpZGVNaW1lVHlwZShjb25z
dCBTdHJpbmcmIG92ZXJyaWRlKTsKICAgICBTdHJpbmcgZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKEV4
Y2VwdGlvbkNvZGUmKSBjb25zdDsKICAgICBTdHJpbmcgZ2V0UmVzcG9uc2VIZWFkZXIoY29uc3Qg
QXRvbWljU3RyaW5nJiBuYW1lLCBFeGNlcHRpb25Db2RlJikgY29uc3Q7CkBAIC0xMjMsOCArMTI1
LDcgQEAgcHVibGljOgogICAgIEFycmF5QnVmZmVyKiByZXNwb25zZUFycmF5QnVmZmVyKEV4Y2Vw
dGlvbkNvZGUmKTsKICAgICBBcnJheUJ1ZmZlciogb3B0aW9uYWxSZXNwb25zZUFycmF5QnVmZmVy
KCkgY29uc3QgeyByZXR1cm4gbV9yZXNwb25zZUFycmF5QnVmZmVyLmdldCgpOyB9CiAKLSAgICB2
b2lkIHNldExhc3RTZW5kTGluZU51bWJlcih1bnNpZ25lZCBsaW5lTnVtYmVyKSB7IG1fbGFzdFNl
bmRMaW5lTnVtYmVyID0gbGluZU51bWJlcjsgfQotICAgIHZvaWQgc2V0TGFzdFNlbmRVUkwoY29u
c3QgU3RyaW5nJiB1cmwpIHsgbV9sYXN0U2VuZFVSTCA9IHVybDsgfQorICAgIHZvaWQgc2V0Q2Fs
bFN0YWNrKFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPik7CiAKICAgICBYTUxIdHRwUmVxdWVz
dFVwbG9hZCogdXBsb2FkKCk7CiAgICAgWE1MSHR0cFJlcXVlc3RVcGxvYWQqIG9wdGlvbmFsVXBs
b2FkKCkgY29uc3QgeyByZXR1cm4gbV91cGxvYWQuZ2V0KCk7IH0KQEAgLTE4Myw2ICsxODQsOCBA
QCBwcml2YXRlOgogICAgIHZvaWQgbmV0d29ya0Vycm9yKCk7CiAgICAgdm9pZCBhYm9ydEVycm9y
KCk7CiAKKyAgICB2b2lkIHJlcG9ydFVuc2FmZVVzYWdlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkg
Y29uc3Q7CisKICAgICBPd25QdHI8WE1MSHR0cFJlcXVlc3RVcGxvYWQ+IG1fdXBsb2FkOwogCiAg
ICAgS1VSTCBtX3VybDsKQEAgLTIyMSw5ICsyMjQsOCBAQCBwcml2YXRlOgogICAgIC8vIFVzZWQg
Zm9yIG9ucHJvZ3Jlc3MgdHJhY2tpbmcKICAgICBsb25nIGxvbmcgbV9yZWNlaXZlZExlbmd0aDsK
IAotICAgIHVuc2lnbmVkIG1fbGFzdFNlbmRMaW5lTnVtYmVyOwotICAgIFN0cmluZyBtX2xhc3RT
ZW5kVVJMOwogICAgIEV4Y2VwdGlvbkNvZGUgbV9leGNlcHRpb25Db2RlOworICAgIFJlZlB0cjxT
Y3JpcHRDYWxsU3RhY2s+IG1fY2FsbFN0YWNrOwogCiAgICAgRXZlbnRUYXJnZXREYXRhIG1fZXZl
bnRUYXJnZXREYXRhOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJl
cXVlc3QuaWRsIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmlkbAppbmRleCA4
MjZkMTAxMjY3YmQwZGQ5YzUyM2QyYzk1ZTI3ODIzN2NkN2RhZmQ1Li42NTNkZjE2MWMwMWJhMDgx
NDc1ODdmZjBmOThiOWI3NjE3MGQ2YWVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwv
WE1MSHR0cFJlcXVlc3QuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVz
dC5pZGwKQEAgLTY3LDcgKzY3LDcgQEAgbW9kdWxlIHhtbCB7CiAgICAgICAgIFtDdXN0b21dIHZv
aWQgb3BlbihpbiBET01TdHJpbmcgbWV0aG9kLCBpbiBET01TdHJpbmcgdXJsLCBpbiBbT3B0aW9u
YWxdIGJvb2xlYW4gYXN5bmMsIGluIFtPcHRpb25hbF0gRE9NU3RyaW5nIHVzZXIsIGluIFtPcHRp
b25hbF0gRE9NU3RyaW5nIHBhc3N3b3JkKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlv
bik7CiAKLSAgICAgICAgdm9pZCBzZXRSZXF1ZXN0SGVhZGVyKGluIERPTVN0cmluZyBoZWFkZXIs
IGluIERPTVN0cmluZyB2YWx1ZSkKKyAgICAgICAgW0N1c3RvbUFyZ3VtZW50SGFuZGxpbmddIHZv
aWQgc2V0UmVxdWVzdEhlYWRlcihpbiBET01TdHJpbmcgaGVhZGVyLCBpbiBET01TdHJpbmcgdmFs
dWUpCiAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKIAogICAgICAgICBbQ3VzdG9t
XSB2b2lkIHNlbmQoKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDY4MTY3OTQ3ZjRjNWU0NDFjODA1ZGQ1NTFlNDVjZDhiOGYz
NjhjODAuLjAyN2QwN2U4ZDM3MzkyZDhlZDRiODBhYzhlMjQxYTk1NmFhYTI2MDEgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxOCBAQAorMjAxMS0xMi0wOCAgVnNldm9sb2QgVmxhc292ICA8dnNldmlrQGNocm9t
aXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBVbnNhZmUgY3Jvc3Mgb3JpZ2luIGFj
Y2VzcyBlcnJvcnMgc2hvdWxkIHNob3cgc3RhY2sgdHJhY2UgaW4gY29uc29sZS4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTczMDk5CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3Bl
Y3Rvci9jb25zb2xlLWNyb3NzLW9yaWdpbi1pZnJhbWUtbG9nZ2luZy1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtY3Jvc3Mtb3JpZ2lu
LWlmcmFtZS1sb2dnaW5nLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVj
dG9yL2NvbnNvbGUteGhyLWxvZ2dpbmctZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvdGVz
dHMvaW5zcGVjdG9yL2NvbnNvbGUteGhyLWxvZ2dpbmcuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rl
c3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvY3Jvc3Mtb3JpZ2luLWlmcmFtZS5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xl
LWNyb3NzLW9yaWdpbi1pZnJhbWUtbG9nZ2luZy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL2Nocm9taXVtL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUteGhyLWxv
Z2dpbmctZXhwZWN0ZWQudHh0OiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2lu
c3BlY3Rvci9jb25zb2xlLXhoci1sb2dnaW5nLWV4cGVjdGVkLnR4dC4KKwogMjAxMS0xMi0wOCAg
VGFrYXNoaSBUb3lvc2hpbWEgIDx0b3lvc2hpbUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgRml4
IGZhaWxlZCBsYXlvdXQgdGVzdCwgYnVmZmVyZWRBbW91bnQtYWZ0ZXItY2xvc2UtaW4tYnVzeS5o
dG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xl
LWNyb3NzLW9yaWdpbi1pZnJhbWUtbG9nZ2luZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLWNyb3NzLW9yaWdpbi1pZnJhbWUtbG9nZ2luZy1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWU1MTI2NGMwN2ZiZTQ3NjcyOGNmMDk1Y2JiNDUyZTFh
NTkzZDcyNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVj
dG9yL2NvbnNvbGUtY3Jvc3Mtb3JpZ2luLWlmcmFtZS1sb2dnaW5nLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDE2IEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTogVW5zYWZlIEphdmFTY3JpcHQg
YXR0ZW1wdCB0byBhY2Nlc3MgZnJhbWUgd2l0aCBVUkwgaHR0cDovL2xvY2FsaG9zdDo4MDAwL2lu
c3BlY3Rvci9yZXNvdXJjZXMvY3Jvc3Mtb3JpZ2luLWlmcmFtZS5odG1sIGZyb20gZnJhbWUgd2l0
aCBVUkwgaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9jb25zb2xlLWNyb3NzLW9yaWdp
bi1pZnJhbWUtbG9nZ2luZy5odG1sLiBEb21haW5zLCBwcm90b2NvbHMgYW5kIHBvcnRzIG11c3Qg
bWF0Y2guCisKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxOiBVbnNhZmUgSmF2YVNjcmlwdCBhdHRl
bXB0IHRvIGFjY2VzcyBmcmFtZSB3aXRoIFVSTCBodHRwOi8vbG9jYWxob3N0OjgwMDAvaW5zcGVj
dG9yL3Jlc291cmNlcy9jcm9zcy1vcmlnaW4taWZyYW1lLmh0bWwgZnJvbSBmcmFtZSB3aXRoIFVS
TCBodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL2NvbnNvbGUtY3Jvc3Mtb3JpZ2luLWlm
cmFtZS1sb2dnaW5nLmh0bWwuIERvbWFpbnMsIHByb3RvY29scyBhbmQgcG9ydHMgbXVzdCBtYXRj
aC4KKworQ09OU09MRSBNRVNTQUdFOiBsaW5lIDA6IFVuYWJsZSB0byBwb3N0IG1lc3NhZ2UgdG8g
aHR0cDovLzEyNy4wLjAuMTo4MDAwLiBSZWNpcGllbnQgaGFzIG9yaWdpbiBodHRwOi8vbG9jYWxo
b3N0OjgwMDAuCisKK1Rlc3RzIHRoYXQgY3Jvc3Mgb3JpZ2luIGVycm9ycyBhcmUgbG9nZ2VkIHdp
dGggc291cmNlIHVybCBhbmQgbGluZSBudW1iZXIuCisKKworVW5zYWZlIEphdmFTY3JpcHQgYXR0
ZW1wdCB0byBhY2Nlc3MgZnJhbWUgd2l0aCBVUkwgaHR0cDovL2xvY2FsaG9zdDo4MDAwL2luc3Bl
Y3Rvci9yZXNvdXJjZXMvY3Jvc3Mtb3JpZ2luLWlmcmFtZS5odG1sIGZyb20gZnJhbWUgd2l0aCBV
UkwgaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9jb25zb2xlLWNyb3NzLW9yaWdpbi1p
ZnJhbWUtbG9nZ2luZy5odG1sLiBEb21haW5zLCBwcm90b2NvbHMgYW5kIHBvcnRzIG11c3QgbWF0
Y2guCisKK1Vuc2FmZSBKYXZhU2NyaXB0IGF0dGVtcHQgdG8gYWNjZXNzIGZyYW1lIHdpdGggVVJM
IGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2VzL2Nyb3NzLW9yaWdpbi1p
ZnJhbWUuaHRtbCBmcm9tIGZyYW1lIHdpdGggVVJMIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNw
ZWN0b3IvY29uc29sZS1jcm9zcy1vcmlnaW4taWZyYW1lLWxvZ2dpbmcuaHRtbC4gRG9tYWlucywg
cHJvdG9jb2xzIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgorCitVbmFibGUgdG8gcG9zdCBtZXNzYWdl
IHRvIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC4gUmVjaXBpZW50IGhhcyBvcmlnaW4gaHR0cDovL2xv
Y2FsaG9zdDo4MDAwLgorCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL2NvbnNvbGUtY3Jvc3Mtb3JpZ2luLWlmcmFtZS1sb2dnaW5nLmh0bWwgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLWNyb3NzLW9yaWdpbi1pZnJhbWUtbG9n
Z2luZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU3ZDIxYTUxZWMzMjYwMTQ0ZDRhY2Q2YmEwMzhmMzlmY2Fh
Nzg0MWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rv
ci9jb25zb2xlLWNyb3NzLW9yaWdpbi1pZnJhbWUtbG9nZ2luZy5odG1sCkBAIC0wLDAgKzEsNTAg
QEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iaW5zcGVjdG9yLXRlc3QuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9ImNvbnNvbGUtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0Pgor
ZnVuY3Rpb24gYWNjZXNzRnJhbWUoKQoreworICAgIC8vIFNob3VsZCBmYWlsLgorICAgIHZhciBo
b3N0ID0gZnJhbWVzWzBdLmxvY2F0aW9uLmhvc3Q7CisKKyAgICAvLyBTaG91bGQgZmFpbC4KKyAg
ICBmcmFtZXNbMF0ubG9jYXRpb24ucmVsb2FkKCk7CisKKyAgICAvLyBTaG91bGQgZmFpbC4KKyAg
ICBmcmFtZXNbMF0ucG9zdE1lc3NhZ2UoImZhaWwiLCAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIik7
Cit9CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIHZhciBmaW5pc2hBdHRlbXB0c0xlZnQgPSA0
OworICAgIEluc3BlY3RvclRlc3QuYWRkQ29uc29sZVNuaWZmZXIobWF5YmVGaW5pc2gsIHRydWUp
OworICAgIENvbnNvbGVBZ2VudC5zZXRNb25pdG9yaW5nWEhSRW5hYmxlZCh0cnVlLCBzdGVwMSk7
CisKKyAgICBmdW5jdGlvbiBzdGVwMSgpCisgICAgeworICAgICAgICBJbnNwZWN0b3JUZXN0LmV2
YWx1YXRlSW5QYWdlKCJhY2Nlc3NGcmFtZSgpIiwgbWF5YmVGaW5pc2gpOworICAgIH0KKworICAg
IGZ1bmN0aW9uIG1heWJlRmluaXNoKCkKKyAgICB7CisgICAgICAgIC0tZmluaXNoQXR0ZW1wdHNM
ZWZ0OworICAgICAgICBpZiAoZmluaXNoQXR0ZW1wdHNMZWZ0KQorICAgICAgICAgICAgcmV0dXJu
OworCisgICAgICAgIENvbnNvbGVBZ2VudC5zZXRNb25pdG9yaW5nWEhSRW5hYmxlZChmYWxzZSwg
ZmluaXNoKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBmaW5pc2goKQorICAgIHsKKyAgICAgICAg
SW5zcGVjdG9yVGVzdC5kdW1wQ29uc29sZU1lc3NhZ2VzKCk7CisgICAgICAgIEluc3BlY3RvclRl
c3QuY29tcGxldGVUZXN0KCk7CisgICAgfQorfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBv
bmxvYWQ9InJ1blRlc3QoKSI+Cis8cD5UZXN0cyB0aGF0IGNyb3NzIG9yaWdpbiBlcnJvcnMgYXJl
IGxvZ2dlZCB3aXRoIHNvdXJjZSB1cmwgYW5kIGxpbmUgbnVtYmVyLjwvcD4KKzxpZnJhbWUgc3Jj
PSJodHRwOi8vbG9jYWxob3N0OjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlcy9jcm9zcy1vcmlnaW4t
aWZyYW1lLmh0bWwiPjwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29uc29sZS14aHItbG9nZ2luZy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLXhoci1sb2dn
aW5nLWV4cGVjdGVkLnR4dAppbmRleCAwNDUwYzBjNDI2NmFiM2FlODdjNmI1ZmI1ZjgxMjQ3N2E0
MTg4MTc5Li5lMmFiNzdiZjdhYmY4ODMyNGYyZWVmMDQxN2Q5ZGU3MmU3YjZiY2Q2IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLXhoci1sb2dnaW5n
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25z
b2xlLXhoci1sb2dnaW5nLWV4cGVjdGVkLnR4dApAQCAtMSw4ICsxLDEwIEBACitDT05TT0xFIE1F
U1NBR0U6IGxpbmUgMTogUmVmdXNlZCB0byBzZXQgdW5zYWZlIGhlYWRlciAib3JpZ2luIgogQ09O
U09MRSBNRVNTQUdFOiBsaW5lIDEwOiBzZW5kaW5nIGEgJXMgcmVxdWVzdCB0byAlcwogQ09OU09M
RSBNRVNTQUdFOiBsaW5lIDEwOiBzZW5kaW5nIGEgJXMgcmVxdWVzdCB0byAlcwogQ09OU09MRSBN
RVNTQUdFOiBsaW5lIDEwOiBzZW5kaW5nIGEgJXMgcmVxdWVzdCB0byAlcwogQ09OU09MRSBNRVNT
QUdFOiBsaW5lIDEwOiBzZW5kaW5nIGEgJXMgcmVxdWVzdCB0byAlcwogQ09OU09MRSBNRVNTQUdF
OiBsaW5lIDE6IFhNTEh0dHBSZXF1ZXN0IGNhbm5vdCBsb2FkIGh0dHA6Ly9sb2NhbGhvc3Q6ODAw
MC9pbnNwZWN0b3IvcmVzb3VyY2VzL3hoci1leGlzdHMuaHRtbC4gT3JpZ2luIGh0dHA6Ly8xMjcu
MC4wLjE6ODAwMCBpcyBub3QgYWxsb3dlZCBieSBBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4u
CitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTogUmVmdXNlZCB0byBzZXQgdW5zYWZlIGhlYWRlciAi
b3JpZ2luIgogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEwOiBzZW5kaW5nIGEgJXMgcmVxdWVzdCB0
byAlcwogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEwOiBzZW5kaW5nIGEgJXMgcmVxdWVzdCB0byAl
cwogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEwOiBzZW5kaW5nIGEgJXMgcmVxdWVzdCB0byAlcwpA
QCAtMTAsNiArMTIsNyBAQCBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTA6IHNlbmRpbmcgYSAlcyBy
ZXF1ZXN0IHRvICVzCiBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTogWE1MSHR0cFJlcXVlc3QgY2Fu
bm90IGxvYWQgaHR0cDovL2xvY2FsaG9zdDo4MDAwL2luc3BlY3Rvci9yZXNvdXJjZXMveGhyLWV4
aXN0cy5odG1sLiBPcmlnaW4gaHR0cDovLzEyNy4wLjAuMTo4MDAwIGlzIG5vdCBhbGxvd2VkIGJ5
IEFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbi4KIFRlc3RzIHRoYXQgWE1MSHR0cFJlcXVlc3Qg
TG9nZ2luZyB3b3JrcyB3aGVuIEVuYWJsZWQgYW5kIGRvZXNuJ3Qgc2hvdyBsb2dzIHdoZW4gRGlz
YWJsZWQuCiAKK1JlZnVzZWQgdG8gc2V0IHVuc2FmZSBoZWFkZXIgIm9yaWdpbiIKIGNvbnNvbGUt
eGhyLWxvZ2dpbmcuaHRtbDoxMHNlbmRpbmcgYSBHRVQgcmVxdWVzdCB0byByZXNvdXJjZXMveGhy
LWV4aXN0cy5odG1sCiBYSFIgZmluaXNoZWQgbG9hZGluZzogImh0dHA6Ly8xMjcuMC4wLjE6ODAw
MC9pbnNwZWN0b3IvcmVzb3VyY2VzL3hoci1leGlzdHMuaHRtbCIuCiBjb25zb2xlLXhoci1sb2dn
aW5nLmh0bWw6MTBzZW5kaW5nIGEgR0VUIHJlcXVlc3QgdG8gcmVzb3VyY2VzL3hoci1kb2VzLW5v
dC1leGlzdC5odG1sCkBAIC0xOSw2ICsyMiw3IEBAIGNvbnNvbGUteGhyLWxvZ2dpbmcuaHRtbDox
MHNlbmRpbmcgYSBQT1NUIHJlcXVlc3QgdG8gcmVzb3VyY2VzL3Bvc3QtdGFyZ2V0LmNnaQogWEhS
IGZpbmlzaGVkIGxvYWRpbmc6ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL3Jlc291
cmNlcy9wb3N0LXRhcmdldC5jZ2kiLgogY29uc29sZS14aHItbG9nZ2luZy5odG1sOjEwc2VuZGlu
ZyBhIEdFVCByZXF1ZXN0IHRvIGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9pbnNwZWN0b3IvcmVzb3Vy
Y2VzL3hoci1leGlzdHMuaHRtbAogWE1MSHR0cFJlcXVlc3QgY2Fubm90IGxvYWQgaHR0cDovL2xv
Y2FsaG9zdDo4MDAwL2luc3BlY3Rvci9yZXNvdXJjZXMveGhyLWV4aXN0cy5odG1sLiBPcmlnaW4g
aHR0cDovLzEyNy4wLjAuMTo4MDAwIGlzIG5vdCBhbGxvd2VkIGJ5IEFjY2Vzcy1Db250cm9sLUFs
bG93LU9yaWdpbi4KK1JlZnVzZWQgdG8gc2V0IHVuc2FmZSBoZWFkZXIgIm9yaWdpbiIKIGNvbnNv
bGUteGhyLWxvZ2dpbmcuaHRtbDoxMHNlbmRpbmcgYSBHRVQgcmVxdWVzdCB0byByZXNvdXJjZXMv
eGhyLWV4aXN0cy5odG1sCiBjb25zb2xlLXhoci1sb2dnaW5nLmh0bWw6MTBzZW5kaW5nIGEgR0VU
IHJlcXVlc3QgdG8gcmVzb3VyY2VzL3hoci1kb2VzLW5vdC1leGlzdC5odG1sCiBHRVQgaHR0cDov
LzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9yZXNvdXJjZXMveGhyLWRvZXMtbm90LWV4aXN0Lmh0
bWwgNDA0IChOb3QgRm91bmQpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2lu
c3BlY3Rvci9jb25zb2xlLXhoci1sb2dnaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2luc3BlY3Rvci9jb25zb2xlLXhoci1sb2dnaW5nLmh0bWwKaW5kZXggNzljYWI2ODQ3MDMyMGJk
N2Q3OGIwYzNjNmQ2MWQzOTE3Yjk4ZTYxNS4uNjdmMWUyNDRkYThlOWJjZjI5NWIxYjM3YmE1YTc5
MjdiMDVhZGQ1NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
Y29uc29sZS14aHItbG9nZ2luZy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL2NvbnNvbGUteGhyLWxvZ2dpbmcuaHRtbApAQCAtMTMsNiArMTMsMTAgQEAgZnVuY3Rp
b24gcmVxdWVzdEhlbHBlcihtZXRob2QsIHVybCkKIAogZnVuY3Rpb24gbWFrZVJlcXVlc3RzKCkK
IHsKKyAgICB2YXIgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7CisgICAgeGhyLm9wZW4oIkdF
VCIsICJyZXNvdXJjZXMveGhyLWV4aXN0cy5odG1sIiwgZmFsc2UpOworICAgIHhoci5zZXRSZXF1
ZXN0SGVhZGVyKCJvcmlnaW4iLCAiRk9SQklEREVOIik7CisKICAgICAvLyAxLiBQYWdlIHRoYXQg
ZXhpc3RzLgogICAgIHJlcXVlc3RIZWxwZXIoIkdFVCIsICJyZXNvdXJjZXMveGhyLWV4aXN0cy5o
dG1sIik7CiAgICAgLy8gMi4gUGFnZSB0aGF0IGRvZXNuJ3QgZXhpc3QuCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvY3Jvc3Mtb3JpZ2luLWlm
cmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2Ny
b3NzLW9yaWdpbi1pZnJhbWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNTBiOTZhZjRmNzQ5ZTBiZGZmZTlj
MzM0ZTg2YjZjZjk0YTAzMzZlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2Nyb3NzLW9yaWdpbi1pZnJhbWUuaHRtbApAQCAtMCww
ICsxLDcgQEAKKzxodG1sPgorPGhlYWQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgPHA+Q3Jvc3Mgb3Jp
Z2luIGZyYW1lLjxwPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0vaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29uc29sZS1jcm9zcy1vcmln
aW4taWZyYW1lLWxvZ2dpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0vaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29uc29sZS1jcm9zcy1vcmlnaW4taWZyYW1lLWxv
Z2dpbmctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk1ZDA4Y2I1YzE0N2Q5YzY1OTEwOWExODA2
MTM3YTBkMzU2NTU0YjMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLWNyb3NzLW9yaWdpbi1pZnJhbWUt
bG9nZ2luZy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNiBAQAorQ09OU09MRSBNRVNTQUdFOiBs
aW5lIDE6IFVuc2FmZSBKYXZhU2NyaXB0IGF0dGVtcHQgdG8gYWNjZXNzIGZyYW1lIHdpdGggVVJM
IGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2VzL2Nyb3NzLW9yaWdpbi1p
ZnJhbWUuaHRtbCBmcm9tIGZyYW1lIHdpdGggVVJMIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNw
ZWN0b3IvY29uc29sZS1jcm9zcy1vcmlnaW4taWZyYW1lLWxvZ2dpbmcuaHRtbC4gRG9tYWlucywg
cHJvdG9jb2xzIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgorCitDT05TT0xFIE1FU1NBR0U6IGxpbmUg
MTogVW5zYWZlIEphdmFTY3JpcHQgYXR0ZW1wdCB0byBhY2Nlc3MgZnJhbWUgd2l0aCBVUkwgaHR0
cDovL2xvY2FsaG9zdDo4MDAwL2luc3BlY3Rvci9yZXNvdXJjZXMvY3Jvc3Mtb3JpZ2luLWlmcmFt
ZS5odG1sIGZyb20gZnJhbWUgd2l0aCBVUkwgaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rv
ci9jb25zb2xlLWNyb3NzLW9yaWdpbi1pZnJhbWUtbG9nZ2luZy5odG1sLiBEb21haW5zLCBwcm90
b2NvbHMgYW5kIHBvcnRzIG11c3QgbWF0Y2guCisKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAwOiBV
bmFibGUgdG8gcG9zdCBtZXNzYWdlIHRvIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC4gUmVjaXBpZW50
IGhhcyBvcmlnaW4gaHR0cDovL2xvY2FsaG9zdDo4MDAwLgorCitUZXN0cyB0aGF0IGNyb3NzIG9y
aWdpbiBlcnJvcnMgYXJlIGxvZ2dlZCB3aXRoIHNvdXJjZSB1cmwgYW5kIGxpbmUgbnVtYmVyLgor
CisKK2NvbnNvbGUtY3Jvc3Mtb3JpZ2luLWlmcmFtZS1sb2dnaW5nLmh0bWw6OVVuc2FmZSBKYXZh
U2NyaXB0IGF0dGVtcHQgdG8gYWNjZXNzIGZyYW1lIHdpdGggVVJMIGh0dHA6Ly9sb2NhbGhvc3Q6
ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2VzL2Nyb3NzLW9yaWdpbi1pZnJhbWUuaHRtbCBmcm9tIGZy
YW1lIHdpdGggVVJMIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3IvY29uc29sZS1jcm9z
cy1vcmlnaW4taWZyYW1lLWxvZ2dpbmcuaHRtbC4gRG9tYWlucywgcHJvdG9jb2xzIGFuZCBwb3J0
cyBtdXN0IG1hdGNoLgorCitjb25zb2xlLWNyb3NzLW9yaWdpbi1pZnJhbWUtbG9nZ2luZy5odG1s
OjEyVW5zYWZlIEphdmFTY3JpcHQgYXR0ZW1wdCB0byBhY2Nlc3MgZnJhbWUgd2l0aCBVUkwgaHR0
cDovL2xvY2FsaG9zdDo4MDAwL2luc3BlY3Rvci9yZXNvdXJjZXMvY3Jvc3Mtb3JpZ2luLWlmcmFt
ZS5odG1sIGZyb20gZnJhbWUgd2l0aCBVUkwgaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rv
ci9jb25zb2xlLWNyb3NzLW9yaWdpbi1pZnJhbWUtbG9nZ2luZy5odG1sLiBEb21haW5zLCBwcm90
b2NvbHMgYW5kIHBvcnRzIG11c3QgbWF0Y2guCisKK2NvbnNvbGUtY3Jvc3Mtb3JpZ2luLWlmcmFt
ZS1sb2dnaW5nLmh0bWw6MTVVbmFibGUgdG8gcG9zdCBtZXNzYWdlIHRvIGh0dHA6Ly8xMjcuMC4w
LjE6ODAwMC4gUmVjaXBpZW50IGhhcyBvcmlnaW4gaHR0cDovL2xvY2FsaG9zdDo4MDAwLgorCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL2NvbnNvbGUteGhyLWxvZ2dpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0vaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29uc29sZS14aHItbG9nZ2luZy1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjRiMDRhYjJkYmMwZjUyZDRmOTM1YTYxZTAxZDc3ZTdj
NTdkODhjNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
L2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUteGhyLWxvZ2dpbmctZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMzIgQEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxOiBSZWZ1c2VkIHRvIHNldCB1
bnNhZmUgaGVhZGVyICJvcmlnaW4iCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTA6IHNlbmRpbmcg
YSAlcyByZXF1ZXN0IHRvICVzCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTA6IHNlbmRpbmcgYSAl
cyByZXF1ZXN0IHRvICVzCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTA6IHNlbmRpbmcgYSAlcyBy
ZXF1ZXN0IHRvICVzCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTA6IHNlbmRpbmcgYSAlcyByZXF1
ZXN0IHRvICVzCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTogWE1MSHR0cFJlcXVlc3QgY2Fubm90
IGxvYWQgaHR0cDovL2xvY2FsaG9zdDo4MDAwL2luc3BlY3Rvci9yZXNvdXJjZXMveGhyLWV4aXN0
cy5odG1sLiBPcmlnaW4gaHR0cDovLzEyNy4wLjAuMTo4MDAwIGlzIG5vdCBhbGxvd2VkIGJ5IEFj
Y2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbi4KK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxOiBSZWZ1
c2VkIHRvIHNldCB1bnNhZmUgaGVhZGVyICJvcmlnaW4iCitDT05TT0xFIE1FU1NBR0U6IGxpbmUg
MTA6IHNlbmRpbmcgYSAlcyByZXF1ZXN0IHRvICVzCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTA6
IHNlbmRpbmcgYSAlcyByZXF1ZXN0IHRvICVzCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTA6IHNl
bmRpbmcgYSAlcyByZXF1ZXN0IHRvICVzCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTA6IHNlbmRp
bmcgYSAlcyByZXF1ZXN0IHRvICVzCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTogWE1MSHR0cFJl
cXVlc3QgY2Fubm90IGxvYWQgaHR0cDovL2xvY2FsaG9zdDo4MDAwL2luc3BlY3Rvci9yZXNvdXJj
ZXMveGhyLWV4aXN0cy5odG1sLiBPcmlnaW4gaHR0cDovLzEyNy4wLjAuMTo4MDAwIGlzIG5vdCBh
bGxvd2VkIGJ5IEFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbi4KK1Rlc3RzIHRoYXQgWE1MSHR0
cFJlcXVlc3QgTG9nZ2luZyB3b3JrcyB3aGVuIEVuYWJsZWQgYW5kIGRvZXNuJ3Qgc2hvdyBsb2dz
IHdoZW4gRGlzYWJsZWQuCisKK2NvbnNvbGUteGhyLWxvZ2dpbmcuaHRtbDoxOFJlZnVzZWQgdG8g
c2V0IHVuc2FmZSBoZWFkZXIgIm9yaWdpbiIKK2NvbnNvbGUteGhyLWxvZ2dpbmcuaHRtbDoxMHNl
bmRpbmcgYSBHRVQgcmVxdWVzdCB0byByZXNvdXJjZXMveGhyLWV4aXN0cy5odG1sCitYSFIgZmlu
aXNoZWQgbG9hZGluZzogImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2Vz
L3hoci1leGlzdHMuaHRtbCIuCitjb25zb2xlLXhoci1sb2dnaW5nLmh0bWw6MTBzZW5kaW5nIGEg
R0VUIHJlcXVlc3QgdG8gcmVzb3VyY2VzL3hoci1kb2VzLW5vdC1leGlzdC5odG1sCitHRVQgaHR0
cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9yZXNvdXJjZXMveGhyLWRvZXMtbm90LWV4aXN0
Lmh0bWwgNDA0IChOb3QgRm91bmQpCitYSFIgZmluaXNoZWQgbG9hZGluZzogImh0dHA6Ly8xMjcu
MC4wLjE6ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2VzL3hoci1kb2VzLW5vdC1leGlzdC5odG1sIi4K
K2NvbnNvbGUteGhyLWxvZ2dpbmcuaHRtbDoxMHNlbmRpbmcgYSBQT1NUIHJlcXVlc3QgdG8gcmVz
b3VyY2VzL3Bvc3QtdGFyZ2V0LmNnaQorWEhSIGZpbmlzaGVkIGxvYWRpbmc6ICJodHRwOi8vMTI3
LjAuMC4xOjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlcy9wb3N0LXRhcmdldC5jZ2kiLgorY29uc29s
ZS14aHItbG9nZ2luZy5odG1sOjEwc2VuZGluZyBhIEdFVCByZXF1ZXN0IHRvIGh0dHA6Ly9sb2Nh
bGhvc3Q6ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2VzL3hoci1leGlzdHMuaHRtbAorbmV0d29yay10
ZXN0LmpzOjM5WE1MSHR0cFJlcXVlc3QgY2Fubm90IGxvYWQgaHR0cDovL2xvY2FsaG9zdDo4MDAw
L2luc3BlY3Rvci9yZXNvdXJjZXMveGhyLWV4aXN0cy5odG1sLiBPcmlnaW4gaHR0cDovLzEyNy4w
LjAuMTo4MDAwIGlzIG5vdCBhbGxvd2VkIGJ5IEFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbi4K
K2NvbnNvbGUteGhyLWxvZ2dpbmcuaHRtbDoxOFJlZnVzZWQgdG8gc2V0IHVuc2FmZSBoZWFkZXIg
Im9yaWdpbiIKK2NvbnNvbGUteGhyLWxvZ2dpbmcuaHRtbDoxMHNlbmRpbmcgYSBHRVQgcmVxdWVz
dCB0byByZXNvdXJjZXMveGhyLWV4aXN0cy5odG1sCitjb25zb2xlLXhoci1sb2dnaW5nLmh0bWw6
MTBzZW5kaW5nIGEgR0VUIHJlcXVlc3QgdG8gcmVzb3VyY2VzL3hoci1kb2VzLW5vdC1leGlzdC5o
dG1sCitHRVQgaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9yZXNvdXJjZXMveGhyLWRv
ZXMtbm90LWV4aXN0Lmh0bWwgNDA0IChOb3QgRm91bmQpCitjb25zb2xlLXhoci1sb2dnaW5nLmh0
bWw6MTBzZW5kaW5nIGEgUE9TVCByZXF1ZXN0IHRvIHJlc291cmNlcy9wb3N0LXRhcmdldC5jZ2kK
K2NvbnNvbGUteGhyLWxvZ2dpbmcuaHRtbDoxMHNlbmRpbmcgYSBHRVQgcmVxdWVzdCB0byBodHRw
Oi8vbG9jYWxob3N0OjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlcy94aHItZXhpc3RzLmh0bWwKK25l
dHdvcmstdGVzdC5qczozOVhNTEh0dHBSZXF1ZXN0IGNhbm5vdCBsb2FkIGh0dHA6Ly9sb2NhbGhv
c3Q6ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2VzL3hoci1leGlzdHMuaHRtbC4gT3JpZ2luIGh0dHA6
Ly8xMjcuMC4wLjE6ODAwMCBpcyBub3QgYWxsb3dlZCBieSBBY2Nlc3MtQ29udHJvbC1BbGxvdy1P
cmlnaW4uCisK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>118463</attachid>
            <date>2011-12-08 14:01:51 -0800</date>
            <delta_ts>2012-01-18 05:34:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73099-20111209020149.patch</filename>
            <type>text/plain</type>
            <size>16589</size>
            <attacher name="Vsevolod Vlasov">vsevik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAyMzc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzZmYzEzNWQzZmNkMDFm
NzI5YTIwZDI4OWJkNGU0OTE4YTAyZTYxZC4uNmU0MjkxNjVjZjY1YTA2YjdmYWVmZjYxNGQxYjBl
YmRlMGRmMTI5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI3IEBACiAyMDExLTEyLTA4ICBWc2V2
b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgogCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IFVuc2FmZSBjcm9zcyBvcmlnaW4gYWNjZXNzIGVycm9ycyBzaG91bGQgc2hvdyBzdGFjayB0
cmFjZSBpbiBjb25zb2xlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NzMwOTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBUZXN0OiBodHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLWNyb3NzLW9yaWdpbi1p
ZnJhbWUtbG9nZ2luZy5odG1sCisKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOFByb3h5LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OmFkZE1lc3NhZ2VUb0NvbnNvbGUpOgorICAgICAgICAoV2ViQ29y
ZTo6bG9nSW5mbyk6CisgICAgICAgIChXZWJDb3JlOjpWOFByb3h5OjpyZXBvcnRVbnNhZmVBY2Nl
c3NUbyk6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkZyYW1lTG9hZGVyOjpzaG91bGRBbGxvd05hdmlnYXRpb24pOgorICAgICAgICAqIHBhZ2Uv
RE9NV2luZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBvc3RNZXNzYWdlVGltZXI6OlBvc3RN
ZXNzYWdlVGltZXIpOgorICAgICAgICAoV2ViQ29yZTo6UG9zdE1lc3NhZ2VUaW1lcjo6c3RhY2tU
cmFjZSk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OnBvc3RNZXNzYWdlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6cG9zdE1lc3NhZ2VUaW1lckZpcmVkKToKKyAgICAgICAg
KFdlYkNvcmU6OkRPTVdpbmRvdzo6cHJpbnRFcnJvck1lc3NhZ2UpOgorCisyMDExLTEyLTA4ICBW
c2V2b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgorCiAgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IFhNTEh0dHBSZXF1ZXN0IHVuc2FmZSBjcm9zcyBvcmlnaW4gYWNjZXNzIGVycm9ycyBm
b3Igc2hvdWxkIHNob3cgc3RhY2sgdHJhY2UgaW4gY29uc29sZS4KICAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc0MTE1CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4UHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvVjhQcm94eS5jcHAKaW5kZXggMDU3NjIyODZhYjI2ZjIxZmE3MWFmZjY0Y2ZiYmJmZTE3
MTZhMzVkNC4uNTM1NWMzZTI1Njc2YjY4MDk5MTVjY2FiZTg4MGIwZjVjNzg1YjhkNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhQcm94eS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvdjgvVjhQcm94eS5jcHAKQEAgLTQ1LDYgKzQ1LDggQEAKICNpbmNs
dWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5j
bHVkZSAiUGxhdGZvcm1TdXBwb3J0LmgiCisjaW5jbHVkZSAiU2NyaXB0Q2FsbFN0YWNrLmgiCisj
aW5jbHVkZSAiU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5oIgogI2luY2x1ZGUgIlNjcmlwdFNvdXJj
ZUNvZGUuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlNldHRpbmdz
LmgiCkBAIC0xMTksMTEgKzEyMSwxMSBAQCB0eXBlZGVmIEhhc2hNYXA8Tm9kZSosIHY4OjpPYmpl
Y3QqPiBET01Ob2RlTWFwOwogdHlwZWRlZiBIYXNoTWFwPHZvaWQqLCB2ODo6T2JqZWN0Kj4gRE9N
T2JqZWN0TWFwOwogdHlwZWRlZiBIYXNoTWFwPGludCwgdjg6OkZ1bmN0aW9uVGVtcGxhdGUqPiBG
dW5jdGlvblRlbXBsYXRlTWFwOwogCi1zdGF0aWMgdm9pZCBhZGRNZXNzYWdlVG9Db25zb2xlKFBh
Z2UqIHBhZ2UsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VJRCwg
dW5zaWduZWQgbGluZU51bWJlcikKK3N0YXRpYyB2b2lkIGFkZE1lc3NhZ2VUb0NvbnNvbGUoUGFn
ZSogcGFnZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZUlELCB1
bnNpZ25lZCBsaW5lTnVtYmVyLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gc3RhY2tUcmFj
ZSkKIHsKICAgICBBU1NFUlQocGFnZSk7CiAgICAgQ29uc29sZSogY29uc29sZSA9IHBhZ2UtPm1h
aW5GcmFtZSgpLT5kb21XaW5kb3coKS0+Y29uc29sZSgpOwotICAgIGNvbnNvbGUtPmFkZE1lc3Nh
Z2UoSlNNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsIG1l
c3NhZ2UsIGxpbmVOdW1iZXIsIHNvdXJjZUlEKTsKKyAgICBjb25zb2xlLT5hZGRNZXNzYWdlKEpT
TWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIEVycm9yTWVzc2FnZUxldmVsLCBtZXNzYWdl
LCBsaW5lTnVtYmVyLCBzb3VyY2VJRCwgc3RhY2tUcmFjZSk7CiB9CiAKIHZvaWQgbG9nSW5mbyhG
cmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiB1cmwpCkBA
IC0xMzEsNyArMTMzLDcgQEAgdm9pZCBsb2dJbmZvKEZyYW1lKiBmcmFtZSwgY29uc3QgU3RyaW5n
JiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHVybCkKICAgICBQYWdlKiBwYWdlID0gZnJhbWUtPnBh
Z2UoKTsKICAgICBpZiAoIXBhZ2UpCiAgICAgICAgIHJldHVybjsKLSAgICBhZGRNZXNzYWdlVG9D
b25zb2xlKHBhZ2UsIG1lc3NhZ2UsIHVybCwgMCk7CisgICAgYWRkTWVzc2FnZVRvQ29uc29sZShw
YWdlLCBtZXNzYWdlLCB1cmwsIDAsIDApOwogfQogCiB2b2lkIFY4UHJveHk6OnJlcG9ydFVuc2Fm
ZUFjY2Vzc1RvKEZyYW1lKiB0YXJnZXQpCkBAIC0xNjEsMTAgKzE2MywxMiBAQCB2b2lkIFY4UHJv
eHk6OnJlcG9ydFVuc2FmZUFjY2Vzc1RvKEZyYW1lKiB0YXJnZXQpCiAgICAgY29uc3QgU3RyaW5n
IGtTb3VyY2VJRCA9ICIiOwogICAgIGNvbnN0IGludCBrTGluZU51bWJlciA9IDE7CiAKKyAgICBS
ZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBzdGFja1RyYWNlID0gY3JlYXRlU2NyaXB0Q2FsbFN0YWNr
KFNjcmlwdENhbGxTdGFjazo6bWF4Q2FsbFN0YWNrU2l6ZVRvQ2FwdHVyZSwgdHJ1ZSk7CisKICAg
ICAvLyBOT1RFOiBTYWZhcmkgcHJpbnRzIHRoZSBtZXNzYWdlIGluIHRoZSB0YXJnZXQgcGFnZSwg
YnV0IGl0IHNlZW1zIGxpa2UKICAgICAvLyBpdCBzaG91bGQgYmUgaW4gdGhlIHNvdXJjZSBwYWdl
LiBFdmVuIGZvciBkZWxheWVkIG1lc3NhZ2VzLCB3ZSBwdXQgaXQgaW4KICAgICAvLyB0aGUgc291
cmNlIHBhZ2UuCi0gICAgYWRkTWVzc2FnZVRvQ29uc29sZShwYWdlLCBzdHIsIGtTb3VyY2VJRCwg
a0xpbmVOdW1iZXIpOworICAgIGFkZE1lc3NhZ2VUb0NvbnNvbGUocGFnZSwgc3RyLCBrU291cmNl
SUQsIGtMaW5lTnVtYmVyLCBzdGFja1RyYWNlLnJlbGVhc2UoKSk7CiB9CiAKIHN0YXRpYyB2b2lk
IGhhbmRsZUZhdGFsRXJyb3JJblY4KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9GcmFtZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3Bw
CmluZGV4IGM0YjA3ZTY4ZDExNTdjZjk1MjdiZjBmYmVkNWZjN2VjMDlhYjc5YmQuLmYzZThiMGVk
ZWExOTY0NmU0MGE0ZGNkNWJlM2Q1ODI2ZTk0ZmEwZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Zy
YW1lTG9hZGVyLmNwcApAQCAtODcsOSArODcsMTEgQEAKICNpbmNsdWRlICJSZXNvdXJjZUhhbmRs
ZS5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIlNjaGVtZVJlZ2lz
dHJ5LmgiCi0jaW5jbHVkZSAiU2Nyb2xsQW5pbWF0b3IuaCIKKyNpbmNsdWRlICJTY3JpcHRDYWxs
U3RhY2suaCIKKyNpbmNsdWRlICJTY3JpcHRDYWxsU3RhY2tGYWN0b3J5LmgiCiAjaW5jbHVkZSAi
U2NyaXB0Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIlNjcmlwdFNvdXJjZUNvZGUuaCIKKyNpbmNs
dWRlICJTY3JvbGxBbmltYXRvci5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5j
bHVkZSAiU2VjdXJpdHlQb2xpY3kuaCIKICNpbmNsdWRlICJTZWdtZW50ZWRTdHJpbmcuaCIKQEAg
LTE1NjMsMTcgKzE1NjUsMTQgQEAgYm9vbCBGcmFtZUxvYWRlcjo6c2hvdWxkQWxsb3dOYXZpZ2F0
aW9uKEZyYW1lKiB0YXJnZXRGcmFtZSkgY29uc3QKICAgICBpZiAoY2FuQWNjZXNzQW5jZXN0b3Io
YWN0aXZlU2VjdXJpdHlPcmlnaW4sIHRhcmdldEZyYW1lKSkKICAgICAgICAgcmV0dXJuIHRydWU7
CiAKLSAgICBTZXR0aW5ncyogc2V0dGluZ3MgPSB0YXJnZXRGcmFtZS0+c2V0dGluZ3MoKTsKLSAg
ICBpZiAoc2V0dGluZ3MgJiYgIXNldHRpbmdzLT5wcml2YXRlQnJvd3NpbmdFbmFibGVkKCkpIHsK
LSAgICAgICAgRG9jdW1lbnQqIHRhcmdldERvY3VtZW50ID0gdGFyZ2V0RnJhbWUtPmRvY3VtZW50
KCk7Ci0gICAgICAgIC8vIEZJWE1FOiB0aGlzIGVycm9yIG1lc3NhZ2Ugc2hvdWxkIGNvbnRhaW4g
bW9yZSBzcGVjaWZpY3Mgb2Ygd2h5IHRoZSBuYXZpZ2F0aW9uIGNoYW5nZSBpcyBub3QgYWxsb3dl
ZC4KLSAgICAgICAgU3RyaW5nIG1lc3NhZ2UgPSAiVW5zYWZlIEphdmFTY3JpcHQgYXR0ZW1wdCB0
byBpbml0aWF0ZSBhIG5hdmlnYXRpb24gY2hhbmdlIGZvciBmcmFtZSB3aXRoIFVSTCAiICsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXREb2N1bWVudC0+dXJsKCkuc3RyaW5nKCkgKyAi
IGZyb20gZnJhbWUgd2l0aCBVUkwgIiArIGFjdGl2ZURvY3VtZW50LT51cmwoKS5zdHJpbmcoKSAr
ICIuXG4iOworICAgIERvY3VtZW50KiB0YXJnZXREb2N1bWVudCA9IHRhcmdldEZyYW1lLT5kb2N1
bWVudCgpOworICAgIC8vIEZJWE1FOiB0aGlzIGVycm9yIG1lc3NhZ2Ugc2hvdWxkIGNvbnRhaW4g
bW9yZSBzcGVjaWZpY3Mgb2Ygd2h5IHRoZSBuYXZpZ2F0aW9uIGNoYW5nZSBpcyBub3QgYWxsb3dl
ZC4KKyAgICBTdHJpbmcgbWVzc2FnZSA9ICJVbnNhZmUgSmF2YVNjcmlwdCBhdHRlbXB0IHRvIGlu
aXRpYXRlIGEgbmF2aWdhdGlvbiBjaGFuZ2UgZm9yIGZyYW1lIHdpdGggVVJMICIgKworICAgICAg
ICAgICAgICAgICAgICAgdGFyZ2V0RG9jdW1lbnQtPnVybCgpLnN0cmluZygpICsgIiBmcm9tIGZy
YW1lIHdpdGggVVJMICIgKyBhY3RpdmVEb2N1bWVudC0+dXJsKCkuc3RyaW5nKCkgKyAiLlxuIjsK
KworICAgIC8vIEZJWE1FOiBzaG91bGQgd2UgcHJpbnQgdG8gdGhlIGNvbnNvbGUgb2YgdGhlIGFj
dGl2ZUZyYW1lIGFzIHdlbGw/CisgICAgdGFyZ2V0RnJhbWUtPmRvbVdpbmRvdygpLT5wcmludEVy
cm9yTWVzc2FnZShtZXNzYWdlKTsKIAotICAgICAgICAvLyBGSVhNRTogc2hvdWxkIHdlIHByaW50
IHRvIHRoZSBjb25zb2xlIG9mIHRoZSBhY3RpdmVGcmFtZSBhcyB3ZWxsPwotICAgICAgICB0YXJn
ZXRGcmFtZS0+ZG9tV2luZG93KCktPmNvbnNvbGUoKS0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3Vy
Y2UsIExvZ01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgbWVzc2FnZSwgMSwgU3RyaW5n
KCkpOwotICAgIH0KLSAgICAKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9N
V2luZG93LmNwcAppbmRleCA1NzEyZDY2ZjM0ZjhmZThiNzg2N2Y0MTUzZjhiMDJmZTlmYzI5YTZj
Li44ZjRhOTQ1OTZiOWU4NzU2YWVhNjlhNDYyYTI0MDMyMGUzMGVkNjZmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9ET01XaW5kb3cuY3BwCkBAIC04Miw2ICs4Miw4IEBACiAjaW5jbHVkZSAiUGxhdGZvcm1TY3Jl
ZW4uaCIKICNpbmNsdWRlICJTY2hlZHVsZWRBY3Rpb24uaCIKICNpbmNsdWRlICJTY3JlZW4uaCIK
KyNpbmNsdWRlICJTY3JpcHRDYWxsU3RhY2suaCIKKyNpbmNsdWRlICJTY3JpcHRDYWxsU3RhY2tG
YWN0b3J5LmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJTZXJpYWxp
emVkU2NyaXB0VmFsdWUuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgpAQCAtMTIyLDEzICsxMjQs
MTQgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBQb3N0TWVzc2FnZVRpbWVyIDogcHVi
bGljIFRpbWVyQmFzZSB7CiBwdWJsaWM6Ci0gICAgUG9zdE1lc3NhZ2VUaW1lcihET01XaW5kb3cq
IHdpbmRvdywgUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IG1lc3NhZ2UsIGNvbnN0
IFN0cmluZyYgc291cmNlT3JpZ2luLCBQYXNzUmVmUHRyPERPTVdpbmRvdz4gc291cmNlLCBQYXNz
T3duUHRyPE1lc3NhZ2VQb3J0Q2hhbm5lbEFycmF5PiBjaGFubmVscywgU2VjdXJpdHlPcmlnaW4q
IHRhcmdldE9yaWdpbikKKyAgICBQb3N0TWVzc2FnZVRpbWVyKERPTVdpbmRvdyogd2luZG93LCBQ
YXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBz
b3VyY2VPcmlnaW4sIFBhc3NSZWZQdHI8RE9NV2luZG93PiBzb3VyY2UsIFBhc3NPd25QdHI8TWVz
c2FnZVBvcnRDaGFubmVsQXJyYXk+IGNoYW5uZWxzLCBTZWN1cml0eU9yaWdpbiogdGFyZ2V0T3Jp
Z2luLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gc3RhY2tUcmFjZSkKICAgICAgICAgOiBt
X3dpbmRvdyh3aW5kb3cpCiAgICAgICAgICwgbV9tZXNzYWdlKG1lc3NhZ2UpCiAgICAgICAgICwg
bV9vcmlnaW4oc291cmNlT3JpZ2luKQogICAgICAgICAsIG1fc291cmNlKHNvdXJjZSkKICAgICAg
ICAgLCBtX2NoYW5uZWxzKGNoYW5uZWxzKQogICAgICAgICAsIG1fdGFyZ2V0T3JpZ2luKHRhcmdl
dE9yaWdpbikKKyAgICAgICAgLCBtX3N0YWNrVHJhY2Uoc3RhY2tUcmFjZSkKICAgICB7CiAgICAg
fQogCkBAIC0xMzgsNiArMTQxLDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gTWVzc2FnZUV2
ZW50OjpjcmVhdGUobWVzc2FnZVBvcnRzLnJlbGVhc2UoKSwgbV9tZXNzYWdlLCBtX29yaWdpbiwg
IiIsIG1fc291cmNlKTsKICAgICB9CiAgICAgU2VjdXJpdHlPcmlnaW4qIHRhcmdldE9yaWdpbigp
IGNvbnN0IHsgcmV0dXJuIG1fdGFyZ2V0T3JpZ2luLmdldCgpOyB9CisgICAgU2NyaXB0Q2FsbFN0
YWNrKiBzdGFja1RyYWNlKCkgY29uc3QgeyByZXR1cm4gbV9zdGFja1RyYWNlLmdldCgpOyB9CiAK
IHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGZpcmVkKCkKQEAgLTE1Miw2ICsxNTYsNyBAQCBw
cml2YXRlOgogICAgIFJlZlB0cjxET01XaW5kb3c+IG1fc291cmNlOwogICAgIE93blB0cjxNZXNz
YWdlUG9ydENoYW5uZWxBcnJheT4gbV9jaGFubmVsczsKICAgICBSZWZQdHI8U2VjdXJpdHlPcmln
aW4+IG1fdGFyZ2V0T3JpZ2luOworICAgIFJlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IG1fc3RhY2tU
cmFjZTsKIH07CiAKIHR5cGVkZWYgSGFzaENvdW50ZWRTZXQ8RE9NV2luZG93Kj4gRE9NV2luZG93
U2V0OwpAQCAtODk4LDggKzkwMywxMyBAQCB2b2lkIERPTVdpbmRvdzo6cG9zdE1lc3NhZ2UoUGFz
c1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IG1lc3NhZ2UsIGNvbnN0IE1lcwogICAgICAg
ICByZXR1cm47CiAgICAgU3RyaW5nIHNvdXJjZU9yaWdpbiA9IHNvdXJjZURvY3VtZW50LT5zZWN1
cml0eU9yaWdpbigpLT50b1N0cmluZygpOwogCisgICAgLy8gQ2FwdHVyZSBzdGFjayB0cmFjZSBv
bmx5IHdoZW4gaW5zcGVjdG9yIGZyb250LWVuZCBpcyBsb2FkZWQgYXMgaXQgbWF5IGJlIHRpbWUg
Y29uc3VtaW5nLgorICAgIFJlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IHN0YWNrVHJhY2U7CisgICAg
aWYgKEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6aGFzRnJvbnRlbmRzKCkpCisgICAgICAgIHN0
YWNrVHJhY2UgPSBjcmVhdGVTY3JpcHRDYWxsU3RhY2soU2NyaXB0Q2FsbFN0YWNrOjptYXhDYWxs
U3RhY2tTaXplVG9DYXB0dXJlLCB0cnVlKTsKKwogICAgIC8vIFNjaGVkdWxlIHRoZSBtZXNzYWdl
LgotICAgIFBvc3RNZXNzYWdlVGltZXIqIHRpbWVyID0gbmV3IFBvc3RNZXNzYWdlVGltZXIodGhp
cywgbWVzc2FnZSwgc291cmNlT3JpZ2luLCBzb3VyY2UsIGNoYW5uZWxzLnJlbGVhc2UoKSwgdGFy
Z2V0LmdldCgpKTsKKyAgICBQb3N0TWVzc2FnZVRpbWVyKiB0aW1lciA9IG5ldyBQb3N0TWVzc2Fn
ZVRpbWVyKHRoaXMsIG1lc3NhZ2UsIHNvdXJjZU9yaWdpbiwgc291cmNlLCBjaGFubmVscy5yZWxl
YXNlKCksIHRhcmdldC5nZXQoKSwgc3RhY2tUcmFjZS5yZWxlYXNlKCkpOwogICAgIHRpbWVyLT5z
dGFydE9uZVNob3QoMCk7CiB9CiAKQEAgLTkxNSw3ICs5MjUsNyBAQCB2b2lkIERPTVdpbmRvdzo6
cG9zdE1lc3NhZ2VUaW1lckZpcmVkKFBhc3NPd25QdHI8UG9zdE1lc3NhZ2VUaW1lcj4gdCkKICAg
ICAgICAgaWYgKCF0aW1lci0+dGFyZ2V0T3JpZ2luKCktPmlzU2FtZVNjaGVtZUhvc3RQb3J0KGRv
Y3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCkpKSB7CiAgICAgICAgICAgICBTdHJpbmcgbWVzc2Fn
ZSA9ICJVbmFibGUgdG8gcG9zdCBtZXNzYWdlIHRvICIgKyB0aW1lci0+dGFyZ2V0T3JpZ2luKCkt
PnRvU3RyaW5nKCkgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLiBSZWNpcGllbnQg
aGFzIG9yaWdpbiAiICsgZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKS0+dG9TdHJpbmcoKSAr
ICIuXG4iOwotICAgICAgICAgICAgY29uc29sZSgpLT5hZGRNZXNzYWdlKEpTTWVzc2FnZVNvdXJj
ZSwgTG9nTWVzc2FnZVR5cGUsIEVycm9yTWVzc2FnZUxldmVsLCBtZXNzYWdlLCAwLCBTdHJpbmco
KSk7CisgICAgICAgICAgICBjb25zb2xlKCktPmFkZE1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBM
b2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsIG1lc3NhZ2UsIDAsIFN0cmluZygpLCB0
aW1lci0+c3RhY2tUcmFjZSgpKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAg
IH0KQEAgLTE3NjYsNyArMTc3Niw4IEBAIHZvaWQgRE9NV2luZG93OjpwcmludEVycm9yTWVzc2Fn
ZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIEZJWE1F
OiBBZGQgYXJndW1lbnRzIHNvIHRoYXQgd2UgY2FuIHByb3ZpZGUgYSBjb3JyZWN0IHNvdXJjZSBV
UkwgYW5kIGxpbmUgbnVtYmVyLgotICAgIGNvbnNvbGUoKS0+YWRkTWVzc2FnZShKU01lc3NhZ2VT
b3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgbWVzc2FnZSwgMSwgU3Ry
aW5nKCkpOworICAgIFJlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IHN0YWNrVHJhY2UgPSBjcmVhdGVT
Y3JpcHRDYWxsU3RhY2soU2NyaXB0Q2FsbFN0YWNrOjptYXhDYWxsU3RhY2tTaXplVG9DYXB0dXJl
LCB0cnVlKTsKKyAgICBjb25zb2xlKCktPmFkZE1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBMb2dN
ZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsIG1lc3NhZ2UsIDEsIFN0cmluZygpLCBzdGFj
a1RyYWNlLnJlbGVhc2UoKSk7CiB9CiAKIFN0cmluZyBET01XaW5kb3c6OmNyb3NzRG9tYWluQWNj
ZXNzRXJyb3JNZXNzYWdlKERPTVdpbmRvdyogYWN0aXZlV2luZG93KQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDlhZmNhZGY2
NzE1NzY1ZmIyZTdhM2Q2ZmYwMWZiNTYyMGJmZmY0NDUuLjE0OTJiN2FhNzNhM2JmZWM1MmFiMDk5
YzNjOGVhYTQxMTY2NjQ5YmIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsNSArMSwxNyBAQAogMjAxMS0xMi0wOCAgVnNl
dm9sb2QgVmxhc292ICA8dnNldmlrQGNocm9taXVtLm9yZz4KIAorICAgICAgICBXZWIgSW5zcGVj
dG9yOiBVbnNhZmUgY3Jvc3Mgb3JpZ2luIGFjY2VzcyBlcnJvcnMgc2hvdWxkIHNob3cgc3RhY2sg
dHJhY2UgaW4gY29uc29sZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTczMDk5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLWNyb3NzLW9yaWdpbi1pZnJh
bWUtbG9nZ2luZy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5z
cGVjdG9yL2NvbnNvbGUtY3Jvc3Mtb3JpZ2luLWlmcmFtZS1sb2dnaW5nLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9jcm9zcy1vcmlnaW4taWZy
YW1lLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL2NvbnNvbGUtY3Jvc3Mtb3JpZ2luLWlmcmFtZS1sb2dnaW5nLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisKKzIwMTEtMTItMDggIFZzZXZvbG9kIFZsYXNvdiAgPHZzZXZpa0BjaHJvbWl1
bS5vcmc+CisKICAgICAgICAgV2ViIEluc3BlY3RvcjogWE1MSHR0cFJlcXVlc3QgdW5zYWZlIGNy
b3NzIG9yaWdpbiBhY2Nlc3MgZXJyb3JzIGZvciBzaG91bGQgc2hvdyBzdGFjayB0cmFjZSBpbiBj
b25zb2xlLgogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NzQxMTUKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29u
c29sZS1jcm9zcy1vcmlnaW4taWZyYW1lLWxvZ2dpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29uc29sZS1jcm9zcy1vcmlnaW4taWZyYW1lLWxvZ2dp
bmctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFlNTEyNjRjMDdmYmU0NzY3MjhjZjA5NWNiYjQ1
MmUxYTU5M2Q3MjQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2lu
c3BlY3Rvci9jb25zb2xlLWNyb3NzLW9yaWdpbi1pZnJhbWUtbG9nZ2luZy1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwxNiBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE6IFVuc2FmZSBKYXZhU2Ny
aXB0IGF0dGVtcHQgdG8gYWNjZXNzIGZyYW1lIHdpdGggVVJMIGh0dHA6Ly9sb2NhbGhvc3Q6ODAw
MC9pbnNwZWN0b3IvcmVzb3VyY2VzL2Nyb3NzLW9yaWdpbi1pZnJhbWUuaHRtbCBmcm9tIGZyYW1l
IHdpdGggVVJMIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3IvY29uc29sZS1jcm9zcy1v
cmlnaW4taWZyYW1lLWxvZ2dpbmcuaHRtbC4gRG9tYWlucywgcHJvdG9jb2xzIGFuZCBwb3J0cyBt
dXN0IG1hdGNoLgorCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTogVW5zYWZlIEphdmFTY3JpcHQg
YXR0ZW1wdCB0byBhY2Nlc3MgZnJhbWUgd2l0aCBVUkwgaHR0cDovL2xvY2FsaG9zdDo4MDAwL2lu
c3BlY3Rvci9yZXNvdXJjZXMvY3Jvc3Mtb3JpZ2luLWlmcmFtZS5odG1sIGZyb20gZnJhbWUgd2l0
aCBVUkwgaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9jb25zb2xlLWNyb3NzLW9yaWdp
bi1pZnJhbWUtbG9nZ2luZy5odG1sLiBEb21haW5zLCBwcm90b2NvbHMgYW5kIHBvcnRzIG11c3Qg
bWF0Y2guCisKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAwOiBVbmFibGUgdG8gcG9zdCBtZXNzYWdl
IHRvIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC4gUmVjaXBpZW50IGhhcyBvcmlnaW4gaHR0cDovL2xv
Y2FsaG9zdDo4MDAwLgorCitUZXN0cyB0aGF0IGNyb3NzIG9yaWdpbiBlcnJvcnMgYXJlIGxvZ2dl
ZCB3aXRoIHNvdXJjZSB1cmwgYW5kIGxpbmUgbnVtYmVyLgorCisKK1Vuc2FmZSBKYXZhU2NyaXB0
IGF0dGVtcHQgdG8gYWNjZXNzIGZyYW1lIHdpdGggVVJMIGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9p
bnNwZWN0b3IvcmVzb3VyY2VzL2Nyb3NzLW9yaWdpbi1pZnJhbWUuaHRtbCBmcm9tIGZyYW1lIHdp
dGggVVJMIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3IvY29uc29sZS1jcm9zcy1vcmln
aW4taWZyYW1lLWxvZ2dpbmcuaHRtbC4gRG9tYWlucywgcHJvdG9jb2xzIGFuZCBwb3J0cyBtdXN0
IG1hdGNoLgorCitVbnNhZmUgSmF2YVNjcmlwdCBhdHRlbXB0IHRvIGFjY2VzcyBmcmFtZSB3aXRo
IFVSTCBodHRwOi8vbG9jYWxob3N0OjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlcy9jcm9zcy1vcmln
aW4taWZyYW1lLmh0bWwgZnJvbSBmcmFtZSB3aXRoIFVSTCBodHRwOi8vMTI3LjAuMC4xOjgwMDAv
aW5zcGVjdG9yL2NvbnNvbGUtY3Jvc3Mtb3JpZ2luLWlmcmFtZS1sb2dnaW5nLmh0bWwuIERvbWFp
bnMsIHByb3RvY29scyBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KKworVW5hYmxlIHRvIHBvc3QgbWVz
c2FnZSB0byBodHRwOi8vMTI3LjAuMC4xOjgwMDAuIFJlY2lwaWVudCBoYXMgb3JpZ2luIGh0dHA6
Ly9sb2NhbGhvc3Q6ODAwMC4KKworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2luc3BlY3Rvci9jb25zb2xlLWNyb3NzLW9yaWdpbi1pZnJhbWUtbG9nZ2luZy5odG1sIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29uc29sZS1jcm9zcy1vcmlnaW4taWZyYW1l
LWxvZ2dpbmcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41N2QyMWE1MWVjMzI2MDE0NGQ0YWNkNmJhMDM4ZjM5
ZmNhYTc4NDFjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvY29uc29sZS1jcm9zcy1vcmlnaW4taWZyYW1lLWxvZ2dpbmcuaHRtbApAQCAtMCwwICsx
LDUwIEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Imluc3BlY3Rvci10ZXN0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJjb25zb2xlLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlw
dD4KK2Z1bmN0aW9uIGFjY2Vzc0ZyYW1lKCkKK3sKKyAgICAvLyBTaG91bGQgZmFpbC4KKyAgICB2
YXIgaG9zdCA9IGZyYW1lc1swXS5sb2NhdGlvbi5ob3N0OworCisgICAgLy8gU2hvdWxkIGZhaWwu
CisgICAgZnJhbWVzWzBdLmxvY2F0aW9uLnJlbG9hZCgpOworCisgICAgLy8gU2hvdWxkIGZhaWwu
CisgICAgZnJhbWVzWzBdLnBvc3RNZXNzYWdlKCJmYWlsIiwgImh0dHA6Ly8xMjcuMC4wLjE6ODAw
MCIpOworfQorCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICB2YXIgZmluaXNoQXR0ZW1wdHNMZWZ0
ID0gNDsKKyAgICBJbnNwZWN0b3JUZXN0LmFkZENvbnNvbGVTbmlmZmVyKG1heWJlRmluaXNoLCB0
cnVlKTsKKyAgICBDb25zb2xlQWdlbnQuc2V0TW9uaXRvcmluZ1hIUkVuYWJsZWQodHJ1ZSwgc3Rl
cDEpOworCisgICAgZnVuY3Rpb24gc3RlcDEoKQorICAgIHsKKyAgICAgICAgSW5zcGVjdG9yVGVz
dC5ldmFsdWF0ZUluUGFnZSgiYWNjZXNzRnJhbWUoKSIsIG1heWJlRmluaXNoKTsKKyAgICB9CisK
KyAgICBmdW5jdGlvbiBtYXliZUZpbmlzaCgpCisgICAgeworICAgICAgICAtLWZpbmlzaEF0dGVt
cHRzTGVmdDsKKyAgICAgICAgaWYgKGZpbmlzaEF0dGVtcHRzTGVmdCkKKyAgICAgICAgICAgIHJl
dHVybjsKKworICAgICAgICBDb25zb2xlQWdlbnQuc2V0TW9uaXRvcmluZ1hIUkVuYWJsZWQoZmFs
c2UsIGZpbmlzaCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gZmluaXNoKCkKKyAgICB7CisgICAg
ICAgIEluc3BlY3RvclRlc3QuZHVtcENvbnNvbGVNZXNzYWdlcygpOworICAgICAgICBJbnNwZWN0
b3JUZXN0LmNvbXBsZXRlVGVzdCgpOworICAgIH0KK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPHA+VGVzdHMgdGhhdCBjcm9zcyBvcmlnaW4gZXJyb3Jz
IGFyZSBsb2dnZWQgd2l0aCBzb3VyY2UgdXJsIGFuZCBsaW5lIG51bWJlci48L3A+Cis8aWZyYW1l
IHNyYz0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL2luc3BlY3Rvci9yZXNvdXJjZXMvY3Jvc3Mtb3Jp
Z2luLWlmcmFtZS5odG1sIj48L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9jcm9zcy1vcmlnaW4t
aWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMv
Y3Jvc3Mtb3JpZ2luLWlmcmFtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ1MGI5NmFmNGY3NDllMGJkZmZl
OWMzMzRlODZiNmNmOTRhMDMzNmUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvY3Jvc3Mtb3JpZ2luLWlmcmFtZS5odG1sCkBAIC0w
LDAgKzEsNyBAQAorPGh0bWw+Cis8aGVhZD4KKzwvaGVhZD4KKzxib2R5PgorICA8cD5Dcm9zcyBv
cmlnaW4gZnJhbWUuPHA+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLWNyb3NzLW9y
aWdpbi1pZnJhbWUtbG9nZ2luZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLWNyb3NzLW9yaWdpbi1pZnJhbWUt
bG9nZ2luZy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTVkMDhjYjVjMTQ3ZDljNjU5MTA5YTE4
MDYxMzdhMGQzNTY1NTRiMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtY3Jvc3Mtb3JpZ2luLWlmcmFt
ZS1sb2dnaW5nLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE2IEBACitDT05TT0xFIE1FU1NBR0U6
IGxpbmUgMTogVW5zYWZlIEphdmFTY3JpcHQgYXR0ZW1wdCB0byBhY2Nlc3MgZnJhbWUgd2l0aCBV
UkwgaHR0cDovL2xvY2FsaG9zdDo4MDAwL2luc3BlY3Rvci9yZXNvdXJjZXMvY3Jvc3Mtb3JpZ2lu
LWlmcmFtZS5odG1sIGZyb20gZnJhbWUgd2l0aCBVUkwgaHR0cDovLzEyNy4wLjAuMTo4MDAwL2lu
c3BlY3Rvci9jb25zb2xlLWNyb3NzLW9yaWdpbi1pZnJhbWUtbG9nZ2luZy5odG1sLiBEb21haW5z
LCBwcm90b2NvbHMgYW5kIHBvcnRzIG11c3QgbWF0Y2guCisKK0NPTlNPTEUgTUVTU0FHRTogbGlu
ZSAxOiBVbnNhZmUgSmF2YVNjcmlwdCBhdHRlbXB0IHRvIGFjY2VzcyBmcmFtZSB3aXRoIFVSTCBo
dHRwOi8vbG9jYWxob3N0OjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlcy9jcm9zcy1vcmlnaW4taWZy
YW1lLmh0bWwgZnJvbSBmcmFtZSB3aXRoIFVSTCBodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVj
dG9yL2NvbnNvbGUtY3Jvc3Mtb3JpZ2luLWlmcmFtZS1sb2dnaW5nLmh0bWwuIERvbWFpbnMsIHBy
b3RvY29scyBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KKworQ09OU09MRSBNRVNTQUdFOiBsaW5lIDA6
IFVuYWJsZSB0byBwb3N0IG1lc3NhZ2UgdG8gaHR0cDovLzEyNy4wLjAuMTo4MDAwLiBSZWNpcGll
bnQgaGFzIG9yaWdpbiBodHRwOi8vbG9jYWxob3N0OjgwMDAuCisKK1Rlc3RzIHRoYXQgY3Jvc3Mg
b3JpZ2luIGVycm9ycyBhcmUgbG9nZ2VkIHdpdGggc291cmNlIHVybCBhbmQgbGluZSBudW1iZXIu
CisKKworY29uc29sZS1jcm9zcy1vcmlnaW4taWZyYW1lLWxvZ2dpbmcuaHRtbDo5VW5zYWZlIEph
dmFTY3JpcHQgYXR0ZW1wdCB0byBhY2Nlc3MgZnJhbWUgd2l0aCBVUkwgaHR0cDovL2xvY2FsaG9z
dDo4MDAwL2luc3BlY3Rvci9yZXNvdXJjZXMvY3Jvc3Mtb3JpZ2luLWlmcmFtZS5odG1sIGZyb20g
ZnJhbWUgd2l0aCBVUkwgaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9jb25zb2xlLWNy
b3NzLW9yaWdpbi1pZnJhbWUtbG9nZ2luZy5odG1sLiBEb21haW5zLCBwcm90b2NvbHMgYW5kIHBv
cnRzIG11c3QgbWF0Y2guCisKK2NvbnNvbGUtY3Jvc3Mtb3JpZ2luLWlmcmFtZS1sb2dnaW5nLmh0
bWw6MTJVbnNhZmUgSmF2YVNjcmlwdCBhdHRlbXB0IHRvIGFjY2VzcyBmcmFtZSB3aXRoIFVSTCBo
dHRwOi8vbG9jYWxob3N0OjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlcy9jcm9zcy1vcmlnaW4taWZy
YW1lLmh0bWwgZnJvbSBmcmFtZSB3aXRoIFVSTCBodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVj
dG9yL2NvbnNvbGUtY3Jvc3Mtb3JpZ2luLWlmcmFtZS1sb2dnaW5nLmh0bWwuIERvbWFpbnMsIHBy
b3RvY29scyBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KKworY29uc29sZS1jcm9zcy1vcmlnaW4taWZy
YW1lLWxvZ2dpbmcuaHRtbDoxNVVuYWJsZSB0byBwb3N0IG1lc3NhZ2UgdG8gaHR0cDovLzEyNy4w
LjAuMTo4MDAwLiBSZWNpcGllbnQgaGFzIG9yaWdpbiBodHRwOi8vbG9jYWxob3N0OjgwMDAuCisK
Kwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>122905</attachid>
            <date>2012-01-18 05:35:09 -0800</date>
            <delta_ts>2012-01-18 05:50:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73099-20120118173507.patch</filename>
            <type>text/plain</type>
            <size>19291</size>
            <attacher name="Vsevolod Vlasov">vsevik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1MjQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDNiYmQ5NTIzZTYxMTI0
YjVkYTI1ZWI4MTRkNzQ0ODgzMmM2MGRhMS4uNWE1MmY1NjQ3OTUxZDRmOWYyNDQzM2M1OTM4NzY5
ZDUwYmRlZjdiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEyLTAxLTE4ICBWc2V2
b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IFVuc2FmZSBjcm9zcyBvcmlnaW4gYWNjZXNzIGVycm9ycyBzaG91bGQgc2hvdyBzdGFjayB0
cmFjZSBpbiBjb25zb2xlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NzMwOTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBUZXN0OiBodHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLWNyb3NzLW9yaWdpbi1p
ZnJhbWUtbG9nZ2luZy5odG1sCisKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOFByb3h5LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlY4UHJveHk6OnJlcG9ydFVuc2FmZUFjY2Vzc1RvKToKKyAgICAg
ICAgKiBkb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
Y3JpcHRFeGVjdXRpb25Db250ZXh0OjphZGRDb25zb2xlTWVzc2FnZSk6CisgICAgICAgICogZG9t
L1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaDoKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OnNob3VsZEFsbG93TmF2aWdhdGlv
bik6CisgICAgICAgICogcGFnZS9Db25zb2xlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnNv
bGU6OmFkZE1lc3NhZ2UpOgorICAgICAgICAqIHBhZ2UvQ29uc29sZS5oOgorICAgICAgICAqIHBh
Z2UvRE9NV2luZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBvc3RNZXNzYWdlVGltZXI6OlBv
c3RNZXNzYWdlVGltZXIpOgorICAgICAgICAoV2ViQ29yZTo6UG9zdE1lc3NhZ2VUaW1lcjo6c3Rh
Y2tUcmFjZSk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OnBvc3RNZXNzYWdlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6cG9zdE1lc3NhZ2VUaW1lckZpcmVkKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6cHJpbnRFcnJvck1lc3NhZ2UpOgorCiAyMDEyLTAxLTE4
ICBTaGlueWEgS2F3YW5ha2EgIDxzaGlueWFrQGdvb2dsZS5jb20+CiAKICAgICAgICAgTW92ZSBT
aGFkb3dDb250ZW50RWxlbWVudCBmcm9tIGRvbS8gdG8gaHRtbC8gYW5kIG1ha2UgU2hhZG93Q29u
dGVudEVsZW1lbnQgc3ViY2xhc3Mgb2YgSFRNTEVsZW1lbnQuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9WOFByb3h5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L1Y4UHJveHkuY3BwCmluZGV4IDBkOTYwMDdjOGVkYmM3YzIxZWRhNGIzZGRkNmYyNmNlOTEx
M2NmYWEuLjNhYWYwYjBmNzI2Zjc2NDA4MmJmOTc0M2EzYmM1ODNhOWYzY2VhZmIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4UHJveHkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4UHJveHkuY3BwCkBAIC00Myw2ICs0Myw4IEBACiAjaW5jbHVk
ZSAiSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb24uaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN1cHBvcnQuaCIKKyNpbmNsdWRlICJT
Y3JpcHRDYWxsU3RhY2suaCIKKyNpbmNsdWRlICJTY3JpcHRDYWxsU3RhY2tGYWN0b3J5LmgiCiAj
aW5jbHVkZSAiU2NyaXB0U291cmNlQ29kZS5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgi
CiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKQEAgLTEzNywxMCArMTM5LDEyIEBAIHZvaWQgVjhQcm94
eTo6cmVwb3J0VW5zYWZlQWNjZXNzVG8oRnJhbWUqIHRhcmdldCkKICAgICBTdHJpbmcgc3RyID0g
IlVuc2FmZSBKYXZhU2NyaXB0IGF0dGVtcHQgdG8gYWNjZXNzIGZyYW1lIHdpdGggVVJMICIgKyB0
YXJnZXREb2N1bWVudC0+dXJsKCkuc3RyaW5nKCkgKwogICAgICAgICAgICAgICAgICAiIGZyb20g
ZnJhbWUgd2l0aCBVUkwgIiArIHNvdXJjZURvY3VtZW50LT51cmwoKS5zdHJpbmcoKSArICIuIERv
bWFpbnMsIHByb3RvY29scyBhbmQgcG9ydHMgbXVzdCBtYXRjaC5cbiI7CiAKKyAgICBSZWZQdHI8
U2NyaXB0Q2FsbFN0YWNrPiBzdGFja1RyYWNlID0gY3JlYXRlU2NyaXB0Q2FsbFN0YWNrKFNjcmlw
dENhbGxTdGFjazo6bWF4Q2FsbFN0YWNrU2l6ZVRvQ2FwdHVyZSwgdHJ1ZSk7CisKICAgICAvLyBO
T1RFOiBTYWZhcmkgcHJpbnRzIHRoZSBtZXNzYWdlIGluIHRoZSB0YXJnZXQgcGFnZSwgYnV0IGl0
IHNlZW1zIGxpa2UKICAgICAvLyBpdCBzaG91bGQgYmUgaW4gdGhlIHNvdXJjZSBwYWdlLiBFdmVu
IGZvciBkZWxheWVkIG1lc3NhZ2VzLCB3ZSBwdXQgaXQgaW4KICAgICAvLyB0aGUgc291cmNlIHBh
Z2UuCi0gICAgc291cmNlRG9jdW1lbnQtPmFkZENvbnNvbGVNZXNzYWdlKEpTTWVzc2FnZVNvdXJj
ZSwgTG9nTWVzc2FnZVR5cGUsIEVycm9yTWVzc2FnZUxldmVsLCBzdHIpOworICAgIHNvdXJjZURv
Y3VtZW50LT5hZGRDb25zb2xlTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBl
LCBFcnJvck1lc3NhZ2VMZXZlbCwgc3RyLCBzdGFja1RyYWNlLnJlbGVhc2UoKSk7CiB9CiAKIHN0
YXRpYyB2b2lkIGhhbmRsZUZhdGFsRXJyb3JJblY4KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9T
Y3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcAppbmRleCAxMWYxYTk4NzRlYjEyMTkxNmViZGE3YTg2
MjhhNzA4MDRmOTdlMDA0Li5lZjA2YzI5ZWNiOTVlYmEwZDg2OGIxY2EzZjIyYzI4N2Q5NjY5NzI0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwCkBA
IC0zMzIsNiArMzMyLDEyIEBAIHZvaWQgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6YWRkQ29uc29s
ZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VUeXBlCiAgICAgYWRkTWVzc2Fn
ZShzb3VyY2UsIHR5cGUsIGxldmVsLCBtZXNzYWdlLCBzb3VyY2VVUkwsIGxpbmVOdW1iZXIsIGNh
bGxTdGFjayk7CiB9CiAKK3ZvaWQgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6YWRkQ29uc29sZU1l
c3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VUeXBlIHR5cGUsIE1lc3NhZ2VMZXZl
bCBsZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFj
az4gY2FsbFN0YWNrKQoreworICAgIGFkZE1lc3NhZ2Uoc291cmNlLCB0eXBlLCBsZXZlbCwgbWVz
c2FnZSwgU3RyaW5nKCksIDAsIGNhbGxTdGFjayk7Cit9CisKKwogYm9vbCBTY3JpcHRFeGVjdXRp
b25Db250ZXh0OjpkaXNwYXRjaEVycm9yRXZlbnQoY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2Us
IGludCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCkKIHsKICAgICBFdmVudFRh
cmdldCogdGFyZ2V0ID0gZXJyb3JFdmVudFRhcmdldCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9T
Y3JpcHRFeGVjdXRpb25Db250ZXh0LmgKaW5kZXggN2E4OWI4OTcyNzA3ZDA3YWUyZGZiY2Y0YzQ1
NGFhYzQyZTY4N2NkNS4uZDc0NzIwM2NjMWI1YmQyYWE4YWIzODNjMWYzMGZlZmQ3YTQxMzEwYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oCkBAIC05Myw2
ICs5Myw3IEBAIHB1YmxpYzoKICAgICBib29sIHNhbml0aXplU2NyaXB0RXJyb3IoU3RyaW5nJiBl
cnJvck1lc3NhZ2UsIGludCYgbGluZU51bWJlciwgU3RyaW5nJiBzb3VyY2VVUkwpOwogICAgIHZv
aWQgcmVwb3J0RXhjZXB0aW9uKGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBpbnQgbGluZU51
bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNr
Pik7CiAgICAgdm9pZCBhZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdlVHlw
ZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgc291
cmNlVVJMID0gU3RyaW5nKCksIHVuc2lnbmVkIGxpbmVOdW1iZXIgPSAwLCBQYXNzUmVmUHRyPFNj
cmlwdENhbGxTdGFjaz4gPSAwKTsKKyAgICB2b2lkIGFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VT
b3VyY2UsIE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwg
UGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+KTsKIAogICAgIC8vIEFjdGl2ZSBvYmplY3RzIGFy
ZSBub3QgZ2FyYmFnZSBjb2xsZWN0ZWQgZXZlbiBpZiBpbmFjY2Vzc2libGUsIGUuZy4gYmVjYXVz
ZSB0aGVpciBhY3Rpdml0eSBtYXkgcmVzdWx0IGluIGNhbGxiYWNrcyBiZWluZyBpbnZva2VkLgog
ICAgIGJvb2wgY2FuU3VzcGVuZEFjdGl2ZURPTU9iamVjdHMoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RnJhbWVMb2FkZXIuY3BwCmluZGV4IGVjNzM4ODk1ODY3NGJlNzNiMGUyNTZmYjhkNjljNGJhYWM4
M2QxNTAuLmRjZjM4NDViZDE4YjBlZGIxMmZlOWJmNWU0NjU5NWZmNGVjYWJhOGYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcApAQCAtODcsOSArODcsMTEgQEAKICNpbmNsdWRl
ICJSZXNvdXJjZUhhbmRsZS5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1
ZGUgIlNjaGVtZVJlZ2lzdHJ5LmgiCi0jaW5jbHVkZSAiU2Nyb2xsQW5pbWF0b3IuaCIKKyNpbmNs
dWRlICJTY3JpcHRDYWxsU3RhY2suaCIKKyNpbmNsdWRlICJTY3JpcHRDYWxsU3RhY2tGYWN0b3J5
LmgiCiAjaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIlNjcmlwdFNvdXJj
ZUNvZGUuaCIKKyNpbmNsdWRlICJTY3JvbGxBbmltYXRvci5oIgogI2luY2x1ZGUgIlNlY3VyaXR5
T3JpZ2luLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlQb2xpY3kuaCIKICNpbmNsdWRlICJTZWdtZW50
ZWRTdHJpbmcuaCIKQEAgLTE1NjAsMTcgKzE1NjIsMTQgQEAgYm9vbCBGcmFtZUxvYWRlcjo6c2hv
dWxkQWxsb3dOYXZpZ2F0aW9uKEZyYW1lKiB0YXJnZXRGcmFtZSkgY29uc3QKICAgICBpZiAoY2Fu
QWNjZXNzQW5jZXN0b3IoYWN0aXZlU2VjdXJpdHlPcmlnaW4sIHRhcmdldEZyYW1lKSkKICAgICAg
ICAgcmV0dXJuIHRydWU7CiAKLSAgICBTZXR0aW5ncyogc2V0dGluZ3MgPSB0YXJnZXRGcmFtZS0+
c2V0dGluZ3MoKTsKLSAgICBpZiAoc2V0dGluZ3MgJiYgIXNldHRpbmdzLT5wcml2YXRlQnJvd3Np
bmdFbmFibGVkKCkpIHsKLSAgICAgICAgRG9jdW1lbnQqIHRhcmdldERvY3VtZW50ID0gdGFyZ2V0
RnJhbWUtPmRvY3VtZW50KCk7Ci0gICAgICAgIC8vIEZJWE1FOiB0aGlzIGVycm9yIG1lc3NhZ2Ug
c2hvdWxkIGNvbnRhaW4gbW9yZSBzcGVjaWZpY3Mgb2Ygd2h5IHRoZSBuYXZpZ2F0aW9uIGNoYW5n
ZSBpcyBub3QgYWxsb3dlZC4KLSAgICAgICAgU3RyaW5nIG1lc3NhZ2UgPSAiVW5zYWZlIEphdmFT
Y3JpcHQgYXR0ZW1wdCB0byBpbml0aWF0ZSBhIG5hdmlnYXRpb24gY2hhbmdlIGZvciBmcmFtZSB3
aXRoIFVSTCAiICsKLSAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXREb2N1bWVudC0+dXJs
KCkuc3RyaW5nKCkgKyAiIGZyb20gZnJhbWUgd2l0aCBVUkwgIiArIGFjdGl2ZURvY3VtZW50LT51
cmwoKS5zdHJpbmcoKSArICIuXG4iOworICAgIERvY3VtZW50KiB0YXJnZXREb2N1bWVudCA9IHRh
cmdldEZyYW1lLT5kb2N1bWVudCgpOworICAgIC8vIEZJWE1FOiB0aGlzIGVycm9yIG1lc3NhZ2Ug
c2hvdWxkIGNvbnRhaW4gbW9yZSBzcGVjaWZpY3Mgb2Ygd2h5IHRoZSBuYXZpZ2F0aW9uIGNoYW5n
ZSBpcyBub3QgYWxsb3dlZC4KKyAgICBTdHJpbmcgbWVzc2FnZSA9ICJVbnNhZmUgSmF2YVNjcmlw
dCBhdHRlbXB0IHRvIGluaXRpYXRlIGEgbmF2aWdhdGlvbiBjaGFuZ2UgZm9yIGZyYW1lIHdpdGgg
VVJMICIgKworICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0RG9jdW1lbnQtPnVybCgpLnN0cmlu
ZygpICsgIiBmcm9tIGZyYW1lIHdpdGggVVJMICIgKyBhY3RpdmVEb2N1bWVudC0+dXJsKCkuc3Ry
aW5nKCkgKyAiLlxuIjsKKworICAgIC8vIEZJWE1FOiBzaG91bGQgd2UgcHJpbnQgdG8gdGhlIGNv
bnNvbGUgb2YgdGhlIGFjdGl2ZUZyYW1lIGFzIHdlbGw/CisgICAgdGFyZ2V0RnJhbWUtPmRvbVdp
bmRvdygpLT5wcmludEVycm9yTWVzc2FnZShtZXNzYWdlKTsKIAotICAgICAgICAvLyBGSVhNRTog
c2hvdWxkIHdlIHByaW50IHRvIHRoZSBjb25zb2xlIG9mIHRoZSBhY3RpdmVGcmFtZSBhcyB3ZWxs
PwotICAgICAgICB0YXJnZXRGcmFtZS0+ZG9tV2luZG93KCktPmNvbnNvbGUoKS0+YWRkTWVzc2Fn
ZShKU01lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgbWVz
c2FnZSk7Ci0gICAgfQotICAgIAogICAgIHJldHVybiBmYWxzZTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9Db25zb2xlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29u
c29sZS5jcHAKaW5kZXggN2Y2ZDE4ODkyNjk4Zjc0NjhlMDVjNjkyYTAyODkwYmRkOTFiMGY0ZS4u
MjRlMTNhNWZkYmE1MzAxYmI3NTI5NGNlMzQwYjVhMGZlYWQyNDllNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9Db25zb2xlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nv
bnNvbGUuY3BwCkBAIC0xMjgsNiArMTI4LDEzIEBAIHN0YXRpYyB2b2lkIHByaW50TWVzc2FnZVNv
dXJjZUFuZExldmVsUHJlZml4KE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlTGV2ZWwKICAg
ICBwcmludGYoIiVzICVzOiIsIHNvdXJjZVN0cmluZywgbGV2ZWxTdHJpbmcpOwogfQogCit2b2lk
IGFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgY29u
c3QgU3RyaW5nJiBtZXNzYWdlLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4pOworCit2b2lk
IENvbnNvbGU6OmFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VUeXBlIHR5
cGUsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBQYXNzUmVmUHRy
PFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0YWNrKQoreworICAgIGFkZE1lc3NhZ2Uoc291cmNlLCB0
eXBlLCBsZXZlbCwgbWVzc2FnZSwgU3RyaW5nKCksIDAsIGNhbGxTdGFjayk7Cit9CisKIHZvaWQg
Q29uc29sZTo6YWRkTWVzc2FnZShNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZVR5cGUgdHlw
ZSwgTWVzc2FnZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmlu
ZyYgc291cmNlVVJMLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxT
dGFjaz4gY2FsbFN0YWNrKQogewogICAgIFBhZ2UqIHBhZ2UgPSB0aGlzLT5wYWdlKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnNvbGUuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvQ29uc29sZS5oCmluZGV4IDRjM2E0ZjhmZTQxODM4Njg1NjM5YTA3NmQ1NmJmNDA0OTE4YTdi
NmIuLmYzMGQxOTFhOGMxY2RmZTE5ZDM5NTVmMzdjYmJiMzQwMGMyYzZkY2QgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29uc29sZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
Q29uc29sZS5oCkBAIC01Niw2ICs1Niw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5Db25zb2xl
KCk7CiAKICAgICB2b2lkIGFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1l
c3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVS
TCA9IFN0cmluZygpLCB1bnNpZ25lZCBsaW5lTnVtYmVyID0gMCwgUGFzc1JlZlB0cjxTY3JpcHRD
YWxsU3RhY2s+ID0gMCk7CisgICAgdm9pZCBhZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3Nh
Z2VUeXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgUGFzc1JlZlB0cjxT
Y3JpcHRDYWxsU3RhY2s+KTsKIAogICAgIHZvaWQgZGVidWcoUGFzc1JlZlB0cjxTY3JpcHRBcmd1
bWVudHM+LCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4pOwogICAgIHZvaWQgZXJyb3IoUGFz
c1JlZlB0cjxTY3JpcHRBcmd1bWVudHM+LCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4pOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCmluZGV4IDI5Y2NmYjFkZWNhODVjM2QwYWEyMDZmODZm
NTBjNGJkYjgyZDg2OWMuLjMxYTZkYTUyZmEwNTE2MjhkMjAxN2Q5ZTg4MzkxNzFjYjQ0ZDIxM2Eg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKQEAgLTgzLDYgKzgzLDggQEAKICNpbmNsdWRl
ICJQbGF0Zm9ybVNjcmVlbi5oIgogI2luY2x1ZGUgIlNjaGVkdWxlZEFjdGlvbi5oIgogI2luY2x1
ZGUgIlNjcmVlbi5oIgorI2luY2x1ZGUgIlNjcmlwdENhbGxTdGFjay5oIgorI2luY2x1ZGUgIlNj
cmlwdENhbGxTdGFja0ZhY3RvcnkuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2lu
Y2x1ZGUgIlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCkBA
IC0xMjMsMTMgKzEyNSwxNCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFBvc3RNZXNz
YWdlVGltZXIgOiBwdWJsaWMgVGltZXJCYXNlIHsKIHB1YmxpYzoKLSAgICBQb3N0TWVzc2FnZVRp
bWVyKERPTVdpbmRvdyogd2luZG93LCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4g
bWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VPcmlnaW4sIFBhc3NSZWZQdHI8RE9NV2luZG93
PiBzb3VyY2UsIFBhc3NPd25QdHI8TWVzc2FnZVBvcnRDaGFubmVsQXJyYXk+IGNoYW5uZWxzLCBT
ZWN1cml0eU9yaWdpbiogdGFyZ2V0T3JpZ2luKQorICAgIFBvc3RNZXNzYWdlVGltZXIoRE9NV2lu
ZG93KiB3aW5kb3csIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBtZXNzYWdlLCBj
b25zdCBTdHJpbmcmIHNvdXJjZU9yaWdpbiwgUGFzc1JlZlB0cjxET01XaW5kb3c+IHNvdXJjZSwg
UGFzc093blB0cjxNZXNzYWdlUG9ydENoYW5uZWxBcnJheT4gY2hhbm5lbHMsIFNlY3VyaXR5T3Jp
Z2luKiB0YXJnZXRPcmlnaW4sIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBzdGFja1RyYWNl
KQogICAgICAgICA6IG1fd2luZG93KHdpbmRvdykKICAgICAgICAgLCBtX21lc3NhZ2UobWVzc2Fn
ZSkKICAgICAgICAgLCBtX29yaWdpbihzb3VyY2VPcmlnaW4pCiAgICAgICAgICwgbV9zb3VyY2Uo
c291cmNlKQogICAgICAgICAsIG1fY2hhbm5lbHMoY2hhbm5lbHMpCiAgICAgICAgICwgbV90YXJn
ZXRPcmlnaW4odGFyZ2V0T3JpZ2luKQorICAgICAgICAsIG1fc3RhY2tUcmFjZShzdGFja1RyYWNl
KQogICAgIHsKICAgICB9CiAKQEAgLTEzOSw2ICsxNDIsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJl
dHVybiBNZXNzYWdlRXZlbnQ6OmNyZWF0ZShtZXNzYWdlUG9ydHMucmVsZWFzZSgpLCBtX21lc3Nh
Z2UsIG1fb3JpZ2luLCAiIiwgbV9zb3VyY2UpOwogICAgIH0KICAgICBTZWN1cml0eU9yaWdpbiog
dGFyZ2V0T3JpZ2luKCkgY29uc3QgeyByZXR1cm4gbV90YXJnZXRPcmlnaW4uZ2V0KCk7IH0KKyAg
ICBTY3JpcHRDYWxsU3RhY2sqIHN0YWNrVHJhY2UoKSBjb25zdCB7IHJldHVybiBtX3N0YWNrVHJh
Y2UuZ2V0KCk7IH0KIAogcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZmlyZWQoKQpAQCAtMTUz
LDYgKzE1Nyw3IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPERPTVdpbmRvdz4gbV9zb3VyY2U7CiAg
ICAgT3duUHRyPE1lc3NhZ2VQb3J0Q2hhbm5lbEFycmF5PiBtX2NoYW5uZWxzOwogICAgIFJlZlB0
cjxTZWN1cml0eU9yaWdpbj4gbV90YXJnZXRPcmlnaW47CisgICAgUmVmUHRyPFNjcmlwdENhbGxT
dGFjaz4gbV9zdGFja1RyYWNlOwogfTsKIAogdHlwZWRlZiBIYXNoQ291bnRlZFNldDxET01XaW5k
b3cqPiBET01XaW5kb3dTZXQ7CkBAIC04NTgsOCArODYzLDEzIEBAIHZvaWQgRE9NV2luZG93Ojpw
b3N0TWVzc2FnZShQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gbWVzc2FnZSwgY29u
c3QgTWVzCiAgICAgICAgIHJldHVybjsKICAgICBTdHJpbmcgc291cmNlT3JpZ2luID0gc291cmNl
RG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2luKCktPnRvU3RyaW5nKCk7CiAKKyAgICAvLyBDYXB0dXJl
IHN0YWNrIHRyYWNlIG9ubHkgd2hlbiBpbnNwZWN0b3IgZnJvbnQtZW5kIGlzIGxvYWRlZCBhcyBp
dCBtYXkgYmUgdGltZSBjb25zdW1pbmcuCisgICAgUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gc3Rh
Y2tUcmFjZTsKKyAgICBpZiAoSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpoYXNGcm9udGVuZHMo
KSkKKyAgICAgICAgc3RhY2tUcmFjZSA9IGNyZWF0ZVNjcmlwdENhbGxTdGFjayhTY3JpcHRDYWxs
U3RhY2s6Om1heENhbGxTdGFja1NpemVUb0NhcHR1cmUsIHRydWUpOworCiAgICAgLy8gU2NoZWR1
bGUgdGhlIG1lc3NhZ2UuCi0gICAgUG9zdE1lc3NhZ2VUaW1lciogdGltZXIgPSBuZXcgUG9zdE1l
c3NhZ2VUaW1lcih0aGlzLCBtZXNzYWdlLCBzb3VyY2VPcmlnaW4sIHNvdXJjZSwgY2hhbm5lbHMu
cmVsZWFzZSgpLCB0YXJnZXQuZ2V0KCkpOworICAgIFBvc3RNZXNzYWdlVGltZXIqIHRpbWVyID0g
bmV3IFBvc3RNZXNzYWdlVGltZXIodGhpcywgbWVzc2FnZSwgc291cmNlT3JpZ2luLCBzb3VyY2Us
IGNoYW5uZWxzLnJlbGVhc2UoKSwgdGFyZ2V0LmdldCgpLCBzdGFja1RyYWNlLnJlbGVhc2UoKSk7
CiAgICAgdGltZXItPnN0YXJ0T25lU2hvdCgwKTsKIH0KIApAQCAtODgzLDcgKzg5Myw3IEBAIHZv
aWQgRE9NV2luZG93Ojpwb3N0TWVzc2FnZVRpbWVyRmlyZWQoUGFzc093blB0cjxQb3N0TWVzc2Fn
ZVRpbWVyPiB0KQogICAgICAgICBpZiAoIXRpbWVyLT50YXJnZXRPcmlnaW4oKS0+aXNTYW1lU2No
ZW1lSG9zdFBvcnQoZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSkpIHsKICAgICAgICAgICAg
IFN0cmluZyBtZXNzYWdlID0gIlVuYWJsZSB0byBwb3N0IG1lc3NhZ2UgdG8gIiArIHRpbWVyLT50
YXJnZXRPcmlnaW4oKS0+dG9TdHJpbmcoKSArCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICIuIFJlY2lwaWVudCBoYXMgb3JpZ2luICIgKyBkb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigp
LT50b1N0cmluZygpICsgIi5cbiI7Ci0gICAgICAgICAgICBjb25zb2xlKCktPmFkZE1lc3NhZ2Uo
SlNNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsIG1lc3Nh
Z2UpOworICAgICAgICAgICAgY29uc29sZSgpLT5hZGRNZXNzYWdlKEpTTWVzc2FnZVNvdXJjZSwg
TG9nTWVzc2FnZVR5cGUsIEVycm9yTWVzc2FnZUxldmVsLCBtZXNzYWdlLCB0aW1lci0+c3RhY2tU
cmFjZSgpKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgIH0KQEAgLTE3MTAs
NyArMTcyMCw4IEBAIHZvaWQgRE9NV2luZG93OjpwcmludEVycm9yTWVzc2FnZShjb25zdCBTdHJp
bmcmIG1lc3NhZ2UpCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIEZJWE1FOiBBZGQgYXJndW1l
bnRzIHNvIHRoYXQgd2UgY2FuIHByb3ZpZGUgYSBjb3JyZWN0IHNvdXJjZSBVUkwgYW5kIGxpbmUg
bnVtYmVyLgotICAgIGNvbnNvbGUoKS0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIExvZ01l
c3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgbWVzc2FnZSk7CisgICAgUmVmUHRyPFNjcmlw
dENhbGxTdGFjaz4gc3RhY2tUcmFjZSA9IGNyZWF0ZVNjcmlwdENhbGxTdGFjayhTY3JpcHRDYWxs
U3RhY2s6Om1heENhbGxTdGFja1NpemVUb0NhcHR1cmUsIHRydWUpOworICAgIGNvbnNvbGUoKS0+
YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VM
ZXZlbCwgbWVzc2FnZSwgc3RhY2tUcmFjZS5yZWxlYXNlKCkpOwogfQogCiBTdHJpbmcgRE9NV2lu
ZG93Ojpjcm9zc0RvbWFpbkFjY2Vzc0Vycm9yTWVzc2FnZShET01XaW5kb3cqIGFjdGl2ZVdpbmRv
dykKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwppbmRleCA4Njc2ZDY3ZDEzMjM1ZTg0MjA5NjE2NTQ5MGM0NjE3ZmFjMDQ5OTVlLi41ZjMx
OTkzM2ViMmY1OWQ3ZTU3YjczMTQ3MjM0NDMwM2RkZDc3Y2NhIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUg
QEAKKzIwMTItMDEtMTggIFZzZXZvbG9kIFZsYXNvdiAgPHZzZXZpa0BjaHJvbWl1bS5vcmc+CisK
KyAgICAgICAgV2ViIEluc3BlY3RvcjogVW5zYWZlIGNyb3NzIG9yaWdpbiBhY2Nlc3MgZXJyb3Jz
IHNob3VsZCBzaG93IHN0YWNrIHRyYWNlIGluIGNvbnNvbGUuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzA5OQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29uc29s
ZS1jcm9zcy1vcmlnaW4taWZyYW1lLWxvZ2dpbmctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLWNyb3NzLW9yaWdpbi1pZnJhbWUtbG9n
Z2luZy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJj
ZXMvY3Jvc3Mtb3JpZ2luLWlmcmFtZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9j
aHJvbWl1bS9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLWNyb3NzLW9yaWdpbi1pZnJhbWUt
bG9nZ2luZy1leHBlY3RlZC50eHQ6IEFkZGVkLgorCiAyMDEyLTAxLTE4ICBTaGlueWEgS2F3YW5h
a2EgIDxzaGlueWFrQGdvb2dsZS5jb20+CiAKICAgICAgICAgTW92ZSBTaGFkb3dDb250ZW50RWxl
bWVudCBmcm9tIGRvbS8gdG8gaHRtbC8gYW5kIG1ha2UgU2hhZG93Q29udGVudEVsZW1lbnQgc3Vi
Y2xhc3Mgb2YgSFRNTEVsZW1lbnQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2luc3BlY3Rvci9jb25zb2xlLWNyb3NzLW9yaWdpbi1pZnJhbWUtbG9nZ2luZy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLWNyb3NzLW9yaWdp
bi1pZnJhbWUtbG9nZ2luZy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTk4OTZlYzRkZDlmY2I3
Zjg2YzllZDRlYzgwNTc2NTY1NDQzZDNkYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtY3Jvc3Mtb3JpZ2luLWlmcmFtZS1sb2dnaW5n
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE2IEBACitDT05TT0xFIE1FU1NBR0U6IFVuc2FmZSBK
YXZhU2NyaXB0IGF0dGVtcHQgdG8gYWNjZXNzIGZyYW1lIHdpdGggVVJMIGh0dHA6Ly9sb2NhbGhv
c3Q6ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2VzL2Nyb3NzLW9yaWdpbi1pZnJhbWUuaHRtbCBmcm9t
IGZyYW1lIHdpdGggVVJMIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3IvY29uc29sZS1j
cm9zcy1vcmlnaW4taWZyYW1lLWxvZ2dpbmcuaHRtbC4gRG9tYWlucywgcHJvdG9jb2xzIGFuZCBw
b3J0cyBtdXN0IG1hdGNoLgorCitDT05TT0xFIE1FU1NBR0U6IFVuc2FmZSBKYXZhU2NyaXB0IGF0
dGVtcHQgdG8gYWNjZXNzIGZyYW1lIHdpdGggVVJMIGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9pbnNw
ZWN0b3IvcmVzb3VyY2VzL2Nyb3NzLW9yaWdpbi1pZnJhbWUuaHRtbCBmcm9tIGZyYW1lIHdpdGgg
VVJMIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3IvY29uc29sZS1jcm9zcy1vcmlnaW4t
aWZyYW1lLWxvZ2dpbmcuaHRtbC4gRG9tYWlucywgcHJvdG9jb2xzIGFuZCBwb3J0cyBtdXN0IG1h
dGNoLgorCitDT05TT0xFIE1FU1NBR0U6IFVuYWJsZSB0byBwb3N0IG1lc3NhZ2UgdG8gaHR0cDov
LzEyNy4wLjAuMTo4MDAwLiBSZWNpcGllbnQgaGFzIG9yaWdpbiBodHRwOi8vbG9jYWxob3N0Ojgw
MDAuCisKK1Rlc3RzIHRoYXQgY3Jvc3Mgb3JpZ2luIGVycm9ycyBhcmUgbG9nZ2VkIHdpdGggc291
cmNlIHVybCBhbmQgbGluZSBudW1iZXIuCisKKworVW5zYWZlIEphdmFTY3JpcHQgYXR0ZW1wdCB0
byBhY2Nlc3MgZnJhbWUgd2l0aCBVUkwgaHR0cDovL2xvY2FsaG9zdDo4MDAwL2luc3BlY3Rvci9y
ZXNvdXJjZXMvY3Jvc3Mtb3JpZ2luLWlmcmFtZS5odG1sIGZyb20gZnJhbWUgd2l0aCBVUkwgaHR0
cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9jb25zb2xlLWNyb3NzLW9yaWdpbi1pZnJhbWUt
bG9nZ2luZy5odG1sLiBEb21haW5zLCBwcm90b2NvbHMgYW5kIHBvcnRzIG11c3QgbWF0Y2guCisK
K1Vuc2FmZSBKYXZhU2NyaXB0IGF0dGVtcHQgdG8gYWNjZXNzIGZyYW1lIHdpdGggVVJMIGh0dHA6
Ly9sb2NhbGhvc3Q6ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2VzL2Nyb3NzLW9yaWdpbi1pZnJhbWUu
aHRtbCBmcm9tIGZyYW1lIHdpdGggVVJMIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3Iv
Y29uc29sZS1jcm9zcy1vcmlnaW4taWZyYW1lLWxvZ2dpbmcuaHRtbC4gRG9tYWlucywgcHJvdG9j
b2xzIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgorCitVbmFibGUgdG8gcG9zdCBtZXNzYWdlIHRvIGh0
dHA6Ly8xMjcuMC4wLjE6ODAwMC4gUmVjaXBpZW50IGhhcyBvcmlnaW4gaHR0cDovL2xvY2FsaG9z
dDo4MDAwLgorCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L2NvbnNvbGUtY3Jvc3Mtb3JpZ2luLWlmcmFtZS1sb2dnaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLWNyb3NzLW9yaWdpbi1pZnJhbWUtbG9nZ2luZy5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjU3ZDIxYTUxZWMzMjYwMTQ0ZDRhY2Q2YmEwMzhmMzlmY2FhNzg0MWMK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25z
b2xlLWNyb3NzLW9yaWdpbi1pZnJhbWUtbG9nZ2luZy5odG1sCkBAIC0wLDAgKzEsNTAgQEAKKzxo
dG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9ImNvbnNvbGUtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rp
b24gYWNjZXNzRnJhbWUoKQoreworICAgIC8vIFNob3VsZCBmYWlsLgorICAgIHZhciBob3N0ID0g
ZnJhbWVzWzBdLmxvY2F0aW9uLmhvc3Q7CisKKyAgICAvLyBTaG91bGQgZmFpbC4KKyAgICBmcmFt
ZXNbMF0ubG9jYXRpb24ucmVsb2FkKCk7CisKKyAgICAvLyBTaG91bGQgZmFpbC4KKyAgICBmcmFt
ZXNbMF0ucG9zdE1lc3NhZ2UoImZhaWwiLCAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIik7Cit9CisK
K2Z1bmN0aW9uIHRlc3QoKQoreworICAgIHZhciBmaW5pc2hBdHRlbXB0c0xlZnQgPSA0OworICAg
IEluc3BlY3RvclRlc3QuYWRkQ29uc29sZVNuaWZmZXIobWF5YmVGaW5pc2gsIHRydWUpOworICAg
IENvbnNvbGVBZ2VudC5zZXRNb25pdG9yaW5nWEhSRW5hYmxlZCh0cnVlLCBzdGVwMSk7CisKKyAg
ICBmdW5jdGlvbiBzdGVwMSgpCisgICAgeworICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRl
SW5QYWdlKCJhY2Nlc3NGcmFtZSgpIiwgbWF5YmVGaW5pc2gpOworICAgIH0KKworICAgIGZ1bmN0
aW9uIG1heWJlRmluaXNoKCkKKyAgICB7CisgICAgICAgIC0tZmluaXNoQXR0ZW1wdHNMZWZ0Owor
ICAgICAgICBpZiAoZmluaXNoQXR0ZW1wdHNMZWZ0KQorICAgICAgICAgICAgcmV0dXJuOworCisg
ICAgICAgIENvbnNvbGVBZ2VudC5zZXRNb25pdG9yaW5nWEhSRW5hYmxlZChmYWxzZSwgZmluaXNo
KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBmaW5pc2goKQorICAgIHsKKyAgICAgICAgSW5zcGVj
dG9yVGVzdC5kdW1wQ29uc29sZU1lc3NhZ2VzKCk7CisgICAgICAgIEluc3BlY3RvclRlc3QuY29t
cGxldGVUZXN0KCk7CisgICAgfQorfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9
InJ1blRlc3QoKSI+Cis8cD5UZXN0cyB0aGF0IGNyb3NzIG9yaWdpbiBlcnJvcnMgYXJlIGxvZ2dl
ZCB3aXRoIHNvdXJjZSB1cmwgYW5kIGxpbmUgbnVtYmVyLjwvcD4KKzxpZnJhbWUgc3JjPSJodHRw
Oi8vbG9jYWxob3N0OjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlcy9jcm9zcy1vcmlnaW4taWZyYW1l
Lmh0bWwiPjwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2Nyb3NzLW9yaWdpbi1pZnJhbWUuaHRt
bCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9jcm9zcy1vcmln
aW4taWZyYW1lLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDUwYjk2YWY0Zjc0OWUwYmRmZmU5YzMzNGU4NmI2
Y2Y5NGEwMzM2ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL3Jlc291cmNlcy9jcm9zcy1vcmlnaW4taWZyYW1lLmh0bWwKQEAgLTAsMCArMSw3IEBA
Cis8aHRtbD4KKzxoZWFkPgorPC9oZWFkPgorPGJvZHk+CisgIDxwPkNyb3NzIG9yaWdpbiBmcmFt
ZS48cD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtY3Jvc3Mtb3JpZ2luLWlmcmFt
ZS1sb2dnaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2h0
dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtY3Jvc3Mtb3JpZ2luLWlmcmFtZS1sb2dnaW5nLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNjk2ZWE4OWJiYWZiYWE5OTc0YjY1MzFjYjkzNjk4ZWFi
ZTc2OWNiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0v
aHR0cC90ZXN0cy9pbnNwZWN0b3IvY29uc29sZS1jcm9zcy1vcmlnaW4taWZyYW1lLWxvZ2dpbmct
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTYgQEAKK0NPTlNPTEUgTUVTU0FHRTogVW5zYWZlIEph
dmFTY3JpcHQgYXR0ZW1wdCB0byBhY2Nlc3MgZnJhbWUgd2l0aCBVUkwgaHR0cDovL2xvY2FsaG9z
dDo4MDAwL2luc3BlY3Rvci9yZXNvdXJjZXMvY3Jvc3Mtb3JpZ2luLWlmcmFtZS5odG1sIGZyb20g
ZnJhbWUgd2l0aCBVUkwgaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9jb25zb2xlLWNy
b3NzLW9yaWdpbi1pZnJhbWUtbG9nZ2luZy5odG1sLiBEb21haW5zLCBwcm90b2NvbHMgYW5kIHBv
cnRzIG11c3QgbWF0Y2guCisKK0NPTlNPTEUgTUVTU0FHRTogVW5zYWZlIEphdmFTY3JpcHQgYXR0
ZW1wdCB0byBhY2Nlc3MgZnJhbWUgd2l0aCBVUkwgaHR0cDovL2xvY2FsaG9zdDo4MDAwL2luc3Bl
Y3Rvci9yZXNvdXJjZXMvY3Jvc3Mtb3JpZ2luLWlmcmFtZS5odG1sIGZyb20gZnJhbWUgd2l0aCBV
UkwgaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9jb25zb2xlLWNyb3NzLW9yaWdpbi1p
ZnJhbWUtbG9nZ2luZy5odG1sLiBEb21haW5zLCBwcm90b2NvbHMgYW5kIHBvcnRzIG11c3QgbWF0
Y2guCisKK0NPTlNPTEUgTUVTU0FHRTogVW5hYmxlIHRvIHBvc3QgbWVzc2FnZSB0byBodHRwOi8v
MTI3LjAuMC4xOjgwMDAuIFJlY2lwaWVudCBoYXMgb3JpZ2luIGh0dHA6Ly9sb2NhbGhvc3Q6ODAw
MC4KKworVGVzdHMgdGhhdCBjcm9zcyBvcmlnaW4gZXJyb3JzIGFyZSBsb2dnZWQgd2l0aCBzb3Vy
Y2UgdXJsIGFuZCBsaW5lIG51bWJlci4KKworCitjb25zb2xlLWNyb3NzLW9yaWdpbi1pZnJhbWUt
bG9nZ2luZy5odG1sOjlVbnNhZmUgSmF2YVNjcmlwdCBhdHRlbXB0IHRvIGFjY2VzcyBmcmFtZSB3
aXRoIFVSTCBodHRwOi8vbG9jYWxob3N0OjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlcy9jcm9zcy1v
cmlnaW4taWZyYW1lLmh0bWwgZnJvbSBmcmFtZSB3aXRoIFVSTCBodHRwOi8vMTI3LjAuMC4xOjgw
MDAvaW5zcGVjdG9yL2NvbnNvbGUtY3Jvc3Mtb3JpZ2luLWlmcmFtZS1sb2dnaW5nLmh0bWwuIERv
bWFpbnMsIHByb3RvY29scyBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KKworY29uc29sZS1jcm9zcy1v
cmlnaW4taWZyYW1lLWxvZ2dpbmcuaHRtbDoxMlVuc2FmZSBKYXZhU2NyaXB0IGF0dGVtcHQgdG8g
YWNjZXNzIGZyYW1lIHdpdGggVVJMIGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9pbnNwZWN0b3IvcmVz
b3VyY2VzL2Nyb3NzLW9yaWdpbi1pZnJhbWUuaHRtbCBmcm9tIGZyYW1lIHdpdGggVVJMIGh0dHA6
Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3IvY29uc29sZS1jcm9zcy1vcmlnaW4taWZyYW1lLWxv
Z2dpbmcuaHRtbC4gRG9tYWlucywgcHJvdG9jb2xzIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgorCitj
b25zb2xlLWNyb3NzLW9yaWdpbi1pZnJhbWUtbG9nZ2luZy5odG1sOjE1VW5hYmxlIHRvIHBvc3Qg
bWVzc2FnZSB0byBodHRwOi8vMTI3LjAuMC4xOjgwMDAuIFJlY2lwaWVudCBoYXMgb3JpZ2luIGh0
dHA6Ly9sb2NhbGhvc3Q6ODAwMC4KKworCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>122907</attachid>
            <date>2012-01-18 05:51:03 -0800</date>
            <delta_ts>2012-01-18 09:07:54 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73099-20120118175100.patch</filename>
            <type>text/plain</type>
            <size>19255</size>
            <attacher name="Vsevolod Vlasov">vsevik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1MjQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDNiYmQ5NTIzZTYxMTI0
YjVkYTI1ZWI4MTRkNzQ0ODgzMmM2MGRhMS4uNWE1MmY1NjQ3OTUxZDRmOWYyNDQzM2M1OTM4NzY5
ZDUwYmRlZjdiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEyLTAxLTE4ICBWc2V2
b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IFVuc2FmZSBjcm9zcyBvcmlnaW4gYWNjZXNzIGVycm9ycyBzaG91bGQgc2hvdyBzdGFjayB0
cmFjZSBpbiBjb25zb2xlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NzMwOTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBUZXN0OiBodHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLWNyb3NzLW9yaWdpbi1p
ZnJhbWUtbG9nZ2luZy5odG1sCisKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOFByb3h5LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlY4UHJveHk6OnJlcG9ydFVuc2FmZUFjY2Vzc1RvKToKKyAgICAg
ICAgKiBkb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
Y3JpcHRFeGVjdXRpb25Db250ZXh0OjphZGRDb25zb2xlTWVzc2FnZSk6CisgICAgICAgICogZG9t
L1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaDoKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OnNob3VsZEFsbG93TmF2aWdhdGlv
bik6CisgICAgICAgICogcGFnZS9Db25zb2xlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnNv
bGU6OmFkZE1lc3NhZ2UpOgorICAgICAgICAqIHBhZ2UvQ29uc29sZS5oOgorICAgICAgICAqIHBh
Z2UvRE9NV2luZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBvc3RNZXNzYWdlVGltZXI6OlBv
c3RNZXNzYWdlVGltZXIpOgorICAgICAgICAoV2ViQ29yZTo6UG9zdE1lc3NhZ2VUaW1lcjo6c3Rh
Y2tUcmFjZSk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OnBvc3RNZXNzYWdlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6cG9zdE1lc3NhZ2VUaW1lckZpcmVkKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6cHJpbnRFcnJvck1lc3NhZ2UpOgorCiAyMDEyLTAxLTE4
ICBTaGlueWEgS2F3YW5ha2EgIDxzaGlueWFrQGdvb2dsZS5jb20+CiAKICAgICAgICAgTW92ZSBT
aGFkb3dDb250ZW50RWxlbWVudCBmcm9tIGRvbS8gdG8gaHRtbC8gYW5kIG1ha2UgU2hhZG93Q29u
dGVudEVsZW1lbnQgc3ViY2xhc3Mgb2YgSFRNTEVsZW1lbnQuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9WOFByb3h5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L1Y4UHJveHkuY3BwCmluZGV4IDBkOTYwMDdjOGVkYmM3YzIxZWRhNGIzZGRkNmYyNmNlOTEx
M2NmYWEuLjNhYWYwYjBmNzI2Zjc2NDA4MmJmOTc0M2EzYmM1ODNhOWYzY2VhZmIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4UHJveHkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4UHJveHkuY3BwCkBAIC00Myw2ICs0Myw4IEBACiAjaW5jbHVk
ZSAiSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb24uaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN1cHBvcnQuaCIKKyNpbmNsdWRlICJT
Y3JpcHRDYWxsU3RhY2suaCIKKyNpbmNsdWRlICJTY3JpcHRDYWxsU3RhY2tGYWN0b3J5LmgiCiAj
aW5jbHVkZSAiU2NyaXB0U291cmNlQ29kZS5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgi
CiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKQEAgLTEzNywxMCArMTM5LDEyIEBAIHZvaWQgVjhQcm94
eTo6cmVwb3J0VW5zYWZlQWNjZXNzVG8oRnJhbWUqIHRhcmdldCkKICAgICBTdHJpbmcgc3RyID0g
IlVuc2FmZSBKYXZhU2NyaXB0IGF0dGVtcHQgdG8gYWNjZXNzIGZyYW1lIHdpdGggVVJMICIgKyB0
YXJnZXREb2N1bWVudC0+dXJsKCkuc3RyaW5nKCkgKwogICAgICAgICAgICAgICAgICAiIGZyb20g
ZnJhbWUgd2l0aCBVUkwgIiArIHNvdXJjZURvY3VtZW50LT51cmwoKS5zdHJpbmcoKSArICIuIERv
bWFpbnMsIHByb3RvY29scyBhbmQgcG9ydHMgbXVzdCBtYXRjaC5cbiI7CiAKKyAgICBSZWZQdHI8
U2NyaXB0Q2FsbFN0YWNrPiBzdGFja1RyYWNlID0gY3JlYXRlU2NyaXB0Q2FsbFN0YWNrKFNjcmlw
dENhbGxTdGFjazo6bWF4Q2FsbFN0YWNrU2l6ZVRvQ2FwdHVyZSwgdHJ1ZSk7CisKICAgICAvLyBO
T1RFOiBTYWZhcmkgcHJpbnRzIHRoZSBtZXNzYWdlIGluIHRoZSB0YXJnZXQgcGFnZSwgYnV0IGl0
IHNlZW1zIGxpa2UKICAgICAvLyBpdCBzaG91bGQgYmUgaW4gdGhlIHNvdXJjZSBwYWdlLiBFdmVu
IGZvciBkZWxheWVkIG1lc3NhZ2VzLCB3ZSBwdXQgaXQgaW4KICAgICAvLyB0aGUgc291cmNlIHBh
Z2UuCi0gICAgc291cmNlRG9jdW1lbnQtPmFkZENvbnNvbGVNZXNzYWdlKEpTTWVzc2FnZVNvdXJj
ZSwgTG9nTWVzc2FnZVR5cGUsIEVycm9yTWVzc2FnZUxldmVsLCBzdHIpOworICAgIHNvdXJjZURv
Y3VtZW50LT5hZGRDb25zb2xlTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBl
LCBFcnJvck1lc3NhZ2VMZXZlbCwgc3RyLCBzdGFja1RyYWNlLnJlbGVhc2UoKSk7CiB9CiAKIHN0
YXRpYyB2b2lkIGhhbmRsZUZhdGFsRXJyb3JJblY4KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9T
Y3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcAppbmRleCAxMWYxYTk4NzRlYjEyMTkxNmViZGE3YTg2
MjhhNzA4MDRmOTdlMDA0Li5lZjA2YzI5ZWNiOTVlYmEwZDg2OGIxY2EzZjIyYzI4N2Q5NjY5NzI0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwCkBA
IC0zMzIsNiArMzMyLDEyIEBAIHZvaWQgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6YWRkQ29uc29s
ZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VUeXBlCiAgICAgYWRkTWVzc2Fn
ZShzb3VyY2UsIHR5cGUsIGxldmVsLCBtZXNzYWdlLCBzb3VyY2VVUkwsIGxpbmVOdW1iZXIsIGNh
bGxTdGFjayk7CiB9CiAKK3ZvaWQgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6YWRkQ29uc29sZU1l
c3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VUeXBlIHR5cGUsIE1lc3NhZ2VMZXZl
bCBsZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFj
az4gY2FsbFN0YWNrKQoreworICAgIGFkZE1lc3NhZ2Uoc291cmNlLCB0eXBlLCBsZXZlbCwgbWVz
c2FnZSwgU3RyaW5nKCksIDAsIGNhbGxTdGFjayk7Cit9CisKKwogYm9vbCBTY3JpcHRFeGVjdXRp
b25Db250ZXh0OjpkaXNwYXRjaEVycm9yRXZlbnQoY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2Us
IGludCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCkKIHsKICAgICBFdmVudFRh
cmdldCogdGFyZ2V0ID0gZXJyb3JFdmVudFRhcmdldCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9T
Y3JpcHRFeGVjdXRpb25Db250ZXh0LmgKaW5kZXggN2E4OWI4OTcyNzA3ZDA3YWUyZGZiY2Y0YzQ1
NGFhYzQyZTY4N2NkNS4uZDc0NzIwM2NjMWI1YmQyYWE4YWIzODNjMWYzMGZlZmQ3YTQxMzEwYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oCkBAIC05Myw2
ICs5Myw3IEBAIHB1YmxpYzoKICAgICBib29sIHNhbml0aXplU2NyaXB0RXJyb3IoU3RyaW5nJiBl
cnJvck1lc3NhZ2UsIGludCYgbGluZU51bWJlciwgU3RyaW5nJiBzb3VyY2VVUkwpOwogICAgIHZv
aWQgcmVwb3J0RXhjZXB0aW9uKGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBpbnQgbGluZU51
bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNr
Pik7CiAgICAgdm9pZCBhZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdlVHlw
ZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgc291
cmNlVVJMID0gU3RyaW5nKCksIHVuc2lnbmVkIGxpbmVOdW1iZXIgPSAwLCBQYXNzUmVmUHRyPFNj
cmlwdENhbGxTdGFjaz4gPSAwKTsKKyAgICB2b2lkIGFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VT
b3VyY2UsIE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwg
UGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+KTsKIAogICAgIC8vIEFjdGl2ZSBvYmplY3RzIGFy
ZSBub3QgZ2FyYmFnZSBjb2xsZWN0ZWQgZXZlbiBpZiBpbmFjY2Vzc2libGUsIGUuZy4gYmVjYXVz
ZSB0aGVpciBhY3Rpdml0eSBtYXkgcmVzdWx0IGluIGNhbGxiYWNrcyBiZWluZyBpbnZva2VkLgog
ICAgIGJvb2wgY2FuU3VzcGVuZEFjdGl2ZURPTU9iamVjdHMoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RnJhbWVMb2FkZXIuY3BwCmluZGV4IGVjNzM4ODk1ODY3NGJlNzNiMGUyNTZmYjhkNjljNGJhYWM4
M2QxNTAuLmRjZjM4NDViZDE4YjBlZGIxMmZlOWJmNWU0NjU5NWZmNGVjYWJhOGYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcApAQCAtODcsOSArODcsMTEgQEAKICNpbmNsdWRl
ICJSZXNvdXJjZUhhbmRsZS5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1
ZGUgIlNjaGVtZVJlZ2lzdHJ5LmgiCi0jaW5jbHVkZSAiU2Nyb2xsQW5pbWF0b3IuaCIKKyNpbmNs
dWRlICJTY3JpcHRDYWxsU3RhY2suaCIKKyNpbmNsdWRlICJTY3JpcHRDYWxsU3RhY2tGYWN0b3J5
LmgiCiAjaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIlNjcmlwdFNvdXJj
ZUNvZGUuaCIKKyNpbmNsdWRlICJTY3JvbGxBbmltYXRvci5oIgogI2luY2x1ZGUgIlNlY3VyaXR5
T3JpZ2luLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlQb2xpY3kuaCIKICNpbmNsdWRlICJTZWdtZW50
ZWRTdHJpbmcuaCIKQEAgLTE1NjAsMTcgKzE1NjIsMTQgQEAgYm9vbCBGcmFtZUxvYWRlcjo6c2hv
dWxkQWxsb3dOYXZpZ2F0aW9uKEZyYW1lKiB0YXJnZXRGcmFtZSkgY29uc3QKICAgICBpZiAoY2Fu
QWNjZXNzQW5jZXN0b3IoYWN0aXZlU2VjdXJpdHlPcmlnaW4sIHRhcmdldEZyYW1lKSkKICAgICAg
ICAgcmV0dXJuIHRydWU7CiAKLSAgICBTZXR0aW5ncyogc2V0dGluZ3MgPSB0YXJnZXRGcmFtZS0+
c2V0dGluZ3MoKTsKLSAgICBpZiAoc2V0dGluZ3MgJiYgIXNldHRpbmdzLT5wcml2YXRlQnJvd3Np
bmdFbmFibGVkKCkpIHsKLSAgICAgICAgRG9jdW1lbnQqIHRhcmdldERvY3VtZW50ID0gdGFyZ2V0
RnJhbWUtPmRvY3VtZW50KCk7Ci0gICAgICAgIC8vIEZJWE1FOiB0aGlzIGVycm9yIG1lc3NhZ2Ug
c2hvdWxkIGNvbnRhaW4gbW9yZSBzcGVjaWZpY3Mgb2Ygd2h5IHRoZSBuYXZpZ2F0aW9uIGNoYW5n
ZSBpcyBub3QgYWxsb3dlZC4KLSAgICAgICAgU3RyaW5nIG1lc3NhZ2UgPSAiVW5zYWZlIEphdmFT
Y3JpcHQgYXR0ZW1wdCB0byBpbml0aWF0ZSBhIG5hdmlnYXRpb24gY2hhbmdlIGZvciBmcmFtZSB3
aXRoIFVSTCAiICsKLSAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXREb2N1bWVudC0+dXJs
KCkuc3RyaW5nKCkgKyAiIGZyb20gZnJhbWUgd2l0aCBVUkwgIiArIGFjdGl2ZURvY3VtZW50LT51
cmwoKS5zdHJpbmcoKSArICIuXG4iOworICAgIERvY3VtZW50KiB0YXJnZXREb2N1bWVudCA9IHRh
cmdldEZyYW1lLT5kb2N1bWVudCgpOworICAgIC8vIEZJWE1FOiB0aGlzIGVycm9yIG1lc3NhZ2Ug
c2hvdWxkIGNvbnRhaW4gbW9yZSBzcGVjaWZpY3Mgb2Ygd2h5IHRoZSBuYXZpZ2F0aW9uIGNoYW5n
ZSBpcyBub3QgYWxsb3dlZC4KKyAgICBTdHJpbmcgbWVzc2FnZSA9ICJVbnNhZmUgSmF2YVNjcmlw
dCBhdHRlbXB0IHRvIGluaXRpYXRlIGEgbmF2aWdhdGlvbiBjaGFuZ2UgZm9yIGZyYW1lIHdpdGgg
VVJMICIgKworICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0RG9jdW1lbnQtPnVybCgpLnN0cmlu
ZygpICsgIiBmcm9tIGZyYW1lIHdpdGggVVJMICIgKyBhY3RpdmVEb2N1bWVudC0+dXJsKCkuc3Ry
aW5nKCkgKyAiLlxuIjsKKworICAgIC8vIEZJWE1FOiBzaG91bGQgd2UgcHJpbnQgdG8gdGhlIGNv
bnNvbGUgb2YgdGhlIGFjdGl2ZUZyYW1lIGFzIHdlbGw/CisgICAgdGFyZ2V0RnJhbWUtPmRvbVdp
bmRvdygpLT5wcmludEVycm9yTWVzc2FnZShtZXNzYWdlKTsKIAotICAgICAgICAvLyBGSVhNRTog
c2hvdWxkIHdlIHByaW50IHRvIHRoZSBjb25zb2xlIG9mIHRoZSBhY3RpdmVGcmFtZSBhcyB3ZWxs
PwotICAgICAgICB0YXJnZXRGcmFtZS0+ZG9tV2luZG93KCktPmNvbnNvbGUoKS0+YWRkTWVzc2Fn
ZShKU01lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgbWVz
c2FnZSk7Ci0gICAgfQotICAgIAogICAgIHJldHVybiBmYWxzZTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9Db25zb2xlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29u
c29sZS5jcHAKaW5kZXggN2Y2ZDE4ODkyNjk4Zjc0NjhlMDVjNjkyYTAyODkwYmRkOTFiMGY0ZS4u
MjRlMTNhNWZkYmE1MzAxYmI3NTI5NGNlMzQwYjVhMGZlYWQyNDllNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9Db25zb2xlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nv
bnNvbGUuY3BwCkBAIC0xMjgsNiArMTI4LDEzIEBAIHN0YXRpYyB2b2lkIHByaW50TWVzc2FnZVNv
dXJjZUFuZExldmVsUHJlZml4KE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlTGV2ZWwKICAg
ICBwcmludGYoIiVzICVzOiIsIHNvdXJjZVN0cmluZywgbGV2ZWxTdHJpbmcpOwogfQogCit2b2lk
IGFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgY29u
c3QgU3RyaW5nJiBtZXNzYWdlLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4pOworCit2b2lk
IENvbnNvbGU6OmFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VUeXBlIHR5
cGUsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBQYXNzUmVmUHRy
PFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0YWNrKQoreworICAgIGFkZE1lc3NhZ2Uoc291cmNlLCB0
eXBlLCBsZXZlbCwgbWVzc2FnZSwgU3RyaW5nKCksIDAsIGNhbGxTdGFjayk7Cit9CisKIHZvaWQg
Q29uc29sZTo6YWRkTWVzc2FnZShNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZVR5cGUgdHlw
ZSwgTWVzc2FnZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmlu
ZyYgc291cmNlVVJMLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxT
dGFjaz4gY2FsbFN0YWNrKQogewogICAgIFBhZ2UqIHBhZ2UgPSB0aGlzLT5wYWdlKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnNvbGUuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvQ29uc29sZS5oCmluZGV4IDRjM2E0ZjhmZTQxODM4Njg1NjM5YTA3NmQ1NmJmNDA0OTE4YTdi
NmIuLmYzMGQxOTFhOGMxY2RmZTE5ZDM5NTVmMzdjYmJiMzQwMGMyYzZkY2QgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29uc29sZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
Q29uc29sZS5oCkBAIC01Niw2ICs1Niw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5Db25zb2xl
KCk7CiAKICAgICB2b2lkIGFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1l
c3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVS
TCA9IFN0cmluZygpLCB1bnNpZ25lZCBsaW5lTnVtYmVyID0gMCwgUGFzc1JlZlB0cjxTY3JpcHRD
YWxsU3RhY2s+ID0gMCk7CisgICAgdm9pZCBhZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3Nh
Z2VUeXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgUGFzc1JlZlB0cjxT
Y3JpcHRDYWxsU3RhY2s+KTsKIAogICAgIHZvaWQgZGVidWcoUGFzc1JlZlB0cjxTY3JpcHRBcmd1
bWVudHM+LCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4pOwogICAgIHZvaWQgZXJyb3IoUGFz
c1JlZlB0cjxTY3JpcHRBcmd1bWVudHM+LCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4pOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCmluZGV4IDI5Y2NmYjFkZWNhODVjM2QwYWEyMDZmODZm
NTBjNGJkYjgyZDg2OWMuLjMxODI5OTVmMmViNjYzYTJmYTg5NzllYmU4NDcwYTE0YzQxN2IxYzAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKQEAgLTgzLDYgKzgzLDggQEAKICNpbmNsdWRl
ICJQbGF0Zm9ybVNjcmVlbi5oIgogI2luY2x1ZGUgIlNjaGVkdWxlZEFjdGlvbi5oIgogI2luY2x1
ZGUgIlNjcmVlbi5oIgorI2luY2x1ZGUgIlNjcmlwdENhbGxTdGFjay5oIgorI2luY2x1ZGUgIlNj
cmlwdENhbGxTdGFja0ZhY3RvcnkuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2lu
Y2x1ZGUgIlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCkBA
IC0xMjMsMTMgKzEyNSwxNCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFBvc3RNZXNz
YWdlVGltZXIgOiBwdWJsaWMgVGltZXJCYXNlIHsKIHB1YmxpYzoKLSAgICBQb3N0TWVzc2FnZVRp
bWVyKERPTVdpbmRvdyogd2luZG93LCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4g
bWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VPcmlnaW4sIFBhc3NSZWZQdHI8RE9NV2luZG93
PiBzb3VyY2UsIFBhc3NPd25QdHI8TWVzc2FnZVBvcnRDaGFubmVsQXJyYXk+IGNoYW5uZWxzLCBT
ZWN1cml0eU9yaWdpbiogdGFyZ2V0T3JpZ2luKQorICAgIFBvc3RNZXNzYWdlVGltZXIoRE9NV2lu
ZG93KiB3aW5kb3csIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBtZXNzYWdlLCBj
b25zdCBTdHJpbmcmIHNvdXJjZU9yaWdpbiwgUGFzc1JlZlB0cjxET01XaW5kb3c+IHNvdXJjZSwg
UGFzc093blB0cjxNZXNzYWdlUG9ydENoYW5uZWxBcnJheT4gY2hhbm5lbHMsIFNlY3VyaXR5T3Jp
Z2luKiB0YXJnZXRPcmlnaW4sIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBzdGFja1RyYWNl
KQogICAgICAgICA6IG1fd2luZG93KHdpbmRvdykKICAgICAgICAgLCBtX21lc3NhZ2UobWVzc2Fn
ZSkKICAgICAgICAgLCBtX29yaWdpbihzb3VyY2VPcmlnaW4pCiAgICAgICAgICwgbV9zb3VyY2Uo
c291cmNlKQogICAgICAgICAsIG1fY2hhbm5lbHMoY2hhbm5lbHMpCiAgICAgICAgICwgbV90YXJn
ZXRPcmlnaW4odGFyZ2V0T3JpZ2luKQorICAgICAgICAsIG1fc3RhY2tUcmFjZShzdGFja1RyYWNl
KQogICAgIHsKICAgICB9CiAKQEAgLTEzOSw2ICsxNDIsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJl
dHVybiBNZXNzYWdlRXZlbnQ6OmNyZWF0ZShtZXNzYWdlUG9ydHMucmVsZWFzZSgpLCBtX21lc3Nh
Z2UsIG1fb3JpZ2luLCAiIiwgbV9zb3VyY2UpOwogICAgIH0KICAgICBTZWN1cml0eU9yaWdpbiog
dGFyZ2V0T3JpZ2luKCkgY29uc3QgeyByZXR1cm4gbV90YXJnZXRPcmlnaW4uZ2V0KCk7IH0KKyAg
ICBTY3JpcHRDYWxsU3RhY2sqIHN0YWNrVHJhY2UoKSBjb25zdCB7IHJldHVybiBtX3N0YWNrVHJh
Y2UuZ2V0KCk7IH0KIAogcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZmlyZWQoKQpAQCAtMTUz
LDYgKzE1Nyw3IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPERPTVdpbmRvdz4gbV9zb3VyY2U7CiAg
ICAgT3duUHRyPE1lc3NhZ2VQb3J0Q2hhbm5lbEFycmF5PiBtX2NoYW5uZWxzOwogICAgIFJlZlB0
cjxTZWN1cml0eU9yaWdpbj4gbV90YXJnZXRPcmlnaW47CisgICAgUmVmUHRyPFNjcmlwdENhbGxT
dGFjaz4gbV9zdGFja1RyYWNlOwogfTsKIAogdHlwZWRlZiBIYXNoQ291bnRlZFNldDxET01XaW5k
b3cqPiBET01XaW5kb3dTZXQ7CkBAIC04NTgsOCArODYzLDEzIEBAIHZvaWQgRE9NV2luZG93Ojpw
b3N0TWVzc2FnZShQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gbWVzc2FnZSwgY29u
c3QgTWVzCiAgICAgICAgIHJldHVybjsKICAgICBTdHJpbmcgc291cmNlT3JpZ2luID0gc291cmNl
RG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2luKCktPnRvU3RyaW5nKCk7CiAKKyAgICAvLyBDYXB0dXJl
IHN0YWNrIHRyYWNlIG9ubHkgd2hlbiBpbnNwZWN0b3IgZnJvbnQtZW5kIGlzIGxvYWRlZCBhcyBp
dCBtYXkgYmUgdGltZSBjb25zdW1pbmcuCisgICAgUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gc3Rh
Y2tUcmFjZTsKKyAgICBpZiAoSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpoYXNGcm9udGVuZHMo
KSkKKyAgICAgICAgc3RhY2tUcmFjZSA9IGNyZWF0ZVNjcmlwdENhbGxTdGFjayhTY3JpcHRDYWxs
U3RhY2s6Om1heENhbGxTdGFja1NpemVUb0NhcHR1cmUsIHRydWUpOworCiAgICAgLy8gU2NoZWR1
bGUgdGhlIG1lc3NhZ2UuCi0gICAgUG9zdE1lc3NhZ2VUaW1lciogdGltZXIgPSBuZXcgUG9zdE1l
c3NhZ2VUaW1lcih0aGlzLCBtZXNzYWdlLCBzb3VyY2VPcmlnaW4sIHNvdXJjZSwgY2hhbm5lbHMu
cmVsZWFzZSgpLCB0YXJnZXQuZ2V0KCkpOworICAgIFBvc3RNZXNzYWdlVGltZXIqIHRpbWVyID0g
bmV3IFBvc3RNZXNzYWdlVGltZXIodGhpcywgbWVzc2FnZSwgc291cmNlT3JpZ2luLCBzb3VyY2Us
IGNoYW5uZWxzLnJlbGVhc2UoKSwgdGFyZ2V0LmdldCgpLCBzdGFja1RyYWNlLnJlbGVhc2UoKSk7
CiAgICAgdGltZXItPnN0YXJ0T25lU2hvdCgwKTsKIH0KIApAQCAtODgzLDcgKzg5Myw3IEBAIHZv
aWQgRE9NV2luZG93Ojpwb3N0TWVzc2FnZVRpbWVyRmlyZWQoUGFzc093blB0cjxQb3N0TWVzc2Fn
ZVRpbWVyPiB0KQogICAgICAgICBpZiAoIXRpbWVyLT50YXJnZXRPcmlnaW4oKS0+aXNTYW1lU2No
ZW1lSG9zdFBvcnQoZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSkpIHsKICAgICAgICAgICAg
IFN0cmluZyBtZXNzYWdlID0gIlVuYWJsZSB0byBwb3N0IG1lc3NhZ2UgdG8gIiArIHRpbWVyLT50
YXJnZXRPcmlnaW4oKS0+dG9TdHJpbmcoKSArCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICIuIFJlY2lwaWVudCBoYXMgb3JpZ2luICIgKyBkb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigp
LT50b1N0cmluZygpICsgIi5cbiI7Ci0gICAgICAgICAgICBjb25zb2xlKCktPmFkZE1lc3NhZ2Uo
SlNNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsIG1lc3Nh
Z2UpOworICAgICAgICAgICAgY29uc29sZSgpLT5hZGRNZXNzYWdlKEpTTWVzc2FnZVNvdXJjZSwg
TG9nTWVzc2FnZVR5cGUsIEVycm9yTWVzc2FnZUxldmVsLCBtZXNzYWdlLCB0aW1lci0+c3RhY2tU
cmFjZSgpKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgIH0KQEAgLTE3MTAs
NyArMTcyMCw4IEBAIHZvaWQgRE9NV2luZG93OjpwcmludEVycm9yTWVzc2FnZShjb25zdCBTdHJp
bmcmIG1lc3NhZ2UpCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIEZJWE1FOiBBZGQgYXJndW1l
bnRzIHNvIHRoYXQgd2UgY2FuIHByb3ZpZGUgYSBjb3JyZWN0IHNvdXJjZSBVUkwgYW5kIGxpbmUg
bnVtYmVyLgotICAgIGNvbnNvbGUoKS0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIExvZ01l
c3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgbWVzc2FnZSk7CisgICAgUmVmUHRyPFNjcmlw
dENhbGxTdGFjaz4gc3RhY2tUcmFjZSA9IGNyZWF0ZVNjcmlwdENhbGxTdGFja0Zvckluc3BlY3Rv
cigpOworICAgIGNvbnNvbGUoKS0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIExvZ01lc3Nh
Z2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgbWVzc2FnZSwgc3RhY2tUcmFjZS5yZWxlYXNlKCkp
OwogfQogCiBTdHJpbmcgRE9NV2luZG93Ojpjcm9zc0RvbWFpbkFjY2Vzc0Vycm9yTWVzc2FnZShE
T01XaW5kb3cqIGFjdGl2ZVdpbmRvdykKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA4Njc2ZDY3ZDEzMjM1ZTg0MjA5NjE2NTQ5
MGM0NjE3ZmFjMDQ5OTVlLi41ZjMxOTkzM2ViMmY1OWQ3ZTU3YjczMTQ3MjM0NDMwM2RkZDc3Y2Nh
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMDEtMTggIFZzZXZvbG9kIFZsYXNvdiAgPHZz
ZXZpa0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogVW5zYWZlIGNyb3Nz
IG9yaWdpbiBhY2Nlc3MgZXJyb3JzIHNob3VsZCBzaG93IHN0YWNrIHRyYWNlIGluIGNvbnNvbGUu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzA5OQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaHR0cC90
ZXN0cy9pbnNwZWN0b3IvY29uc29sZS1jcm9zcy1vcmlnaW4taWZyYW1lLWxvZ2dpbmctZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLWNy
b3NzLW9yaWdpbi1pZnJhbWUtbG9nZ2luZy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvY3Jvc3Mtb3JpZ2luLWlmcmFtZS5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xl
LWNyb3NzLW9yaWdpbi1pZnJhbWUtbG9nZ2luZy1leHBlY3RlZC50eHQ6IEFkZGVkLgorCiAyMDEy
LTAxLTE4ICBTaGlueWEgS2F3YW5ha2EgIDxzaGlueWFrQGdvb2dsZS5jb20+CiAKICAgICAgICAg
TW92ZSBTaGFkb3dDb250ZW50RWxlbWVudCBmcm9tIGRvbS8gdG8gaHRtbC8gYW5kIG1ha2UgU2hh
ZG93Q29udGVudEVsZW1lbnQgc3ViY2xhc3Mgb2YgSFRNTEVsZW1lbnQuCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLWNyb3NzLW9yaWdpbi1pZnJh
bWUtbG9nZ2luZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rv
ci9jb25zb2xlLWNyb3NzLW9yaWdpbi1pZnJhbWUtbG9nZ2luZy1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uOTk4OTZlYzRkZDlmY2I3Zjg2YzllZDRlYzgwNTc2NTY1NDQzZDNkYQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtY3Jvc3Mt
b3JpZ2luLWlmcmFtZS1sb2dnaW5nLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE2IEBACitDT05T
T0xFIE1FU1NBR0U6IFVuc2FmZSBKYXZhU2NyaXB0IGF0dGVtcHQgdG8gYWNjZXNzIGZyYW1lIHdp
dGggVVJMIGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2VzL2Nyb3NzLW9y
aWdpbi1pZnJhbWUuaHRtbCBmcm9tIGZyYW1lIHdpdGggVVJMIGh0dHA6Ly8xMjcuMC4wLjE6ODAw
MC9pbnNwZWN0b3IvY29uc29sZS1jcm9zcy1vcmlnaW4taWZyYW1lLWxvZ2dpbmcuaHRtbC4gRG9t
YWlucywgcHJvdG9jb2xzIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgorCitDT05TT0xFIE1FU1NBR0U6
IFVuc2FmZSBKYXZhU2NyaXB0IGF0dGVtcHQgdG8gYWNjZXNzIGZyYW1lIHdpdGggVVJMIGh0dHA6
Ly9sb2NhbGhvc3Q6ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2VzL2Nyb3NzLW9yaWdpbi1pZnJhbWUu
aHRtbCBmcm9tIGZyYW1lIHdpdGggVVJMIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3Iv
Y29uc29sZS1jcm9zcy1vcmlnaW4taWZyYW1lLWxvZ2dpbmcuaHRtbC4gRG9tYWlucywgcHJvdG9j
b2xzIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgorCitDT05TT0xFIE1FU1NBR0U6IFVuYWJsZSB0byBw
b3N0IG1lc3NhZ2UgdG8gaHR0cDovLzEyNy4wLjAuMTo4MDAwLiBSZWNpcGllbnQgaGFzIG9yaWdp
biBodHRwOi8vbG9jYWxob3N0OjgwMDAuCisKK1Rlc3RzIHRoYXQgY3Jvc3Mgb3JpZ2luIGVycm9y
cyBhcmUgbG9nZ2VkIHdpdGggc291cmNlIHVybCBhbmQgbGluZSBudW1iZXIuCisKKworVW5zYWZl
IEphdmFTY3JpcHQgYXR0ZW1wdCB0byBhY2Nlc3MgZnJhbWUgd2l0aCBVUkwgaHR0cDovL2xvY2Fs
aG9zdDo4MDAwL2luc3BlY3Rvci9yZXNvdXJjZXMvY3Jvc3Mtb3JpZ2luLWlmcmFtZS5odG1sIGZy
b20gZnJhbWUgd2l0aCBVUkwgaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9jb25zb2xl
LWNyb3NzLW9yaWdpbi1pZnJhbWUtbG9nZ2luZy5odG1sLiBEb21haW5zLCBwcm90b2NvbHMgYW5k
IHBvcnRzIG11c3QgbWF0Y2guCisKK1Vuc2FmZSBKYXZhU2NyaXB0IGF0dGVtcHQgdG8gYWNjZXNz
IGZyYW1lIHdpdGggVVJMIGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2Vz
L2Nyb3NzLW9yaWdpbi1pZnJhbWUuaHRtbCBmcm9tIGZyYW1lIHdpdGggVVJMIGh0dHA6Ly8xMjcu
MC4wLjE6ODAwMC9pbnNwZWN0b3IvY29uc29sZS1jcm9zcy1vcmlnaW4taWZyYW1lLWxvZ2dpbmcu
aHRtbC4gRG9tYWlucywgcHJvdG9jb2xzIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgorCitVbmFibGUg
dG8gcG9zdCBtZXNzYWdlIHRvIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC4gUmVjaXBpZW50IGhhcyBv
cmlnaW4gaHR0cDovL2xvY2FsaG9zdDo4MDAwLgorCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtY3Jvc3Mtb3JpZ2luLWlmcmFtZS1sb2dnaW5n
Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLWNyb3NzLW9y
aWdpbi1pZnJhbWUtbG9nZ2luZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU3ZDIxYTUxZWMzMjYwMTQ0ZDRh
Y2Q2YmEwMzhmMzlmY2FhNzg0MWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLWNyb3NzLW9yaWdpbi1pZnJhbWUtbG9nZ2luZy5odG1s
CkBAIC0wLDAgKzEsNTAgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iaW5zcGVjdG9y
LXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9ImNvbnNvbGUtdGVzdC5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gYWNjZXNzRnJhbWUoKQoreworICAgIC8vIFNob3VsZCBm
YWlsLgorICAgIHZhciBob3N0ID0gZnJhbWVzWzBdLmxvY2F0aW9uLmhvc3Q7CisKKyAgICAvLyBT
aG91bGQgZmFpbC4KKyAgICBmcmFtZXNbMF0ubG9jYXRpb24ucmVsb2FkKCk7CisKKyAgICAvLyBT
aG91bGQgZmFpbC4KKyAgICBmcmFtZXNbMF0ucG9zdE1lc3NhZ2UoImZhaWwiLCAiaHR0cDovLzEy
Ny4wLjAuMTo4MDAwIik7Cit9CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIHZhciBmaW5pc2hB
dHRlbXB0c0xlZnQgPSA0OworICAgIEluc3BlY3RvclRlc3QuYWRkQ29uc29sZVNuaWZmZXIobWF5
YmVGaW5pc2gsIHRydWUpOworICAgIENvbnNvbGVBZ2VudC5zZXRNb25pdG9yaW5nWEhSRW5hYmxl
ZCh0cnVlLCBzdGVwMSk7CisKKyAgICBmdW5jdGlvbiBzdGVwMSgpCisgICAgeworICAgICAgICBJ
bnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJhY2Nlc3NGcmFtZSgpIiwgbWF5YmVGaW5pc2gp
OworICAgIH0KKworICAgIGZ1bmN0aW9uIG1heWJlRmluaXNoKCkKKyAgICB7CisgICAgICAgIC0t
ZmluaXNoQXR0ZW1wdHNMZWZ0OworICAgICAgICBpZiAoZmluaXNoQXR0ZW1wdHNMZWZ0KQorICAg
ICAgICAgICAgcmV0dXJuOworCisgICAgICAgIENvbnNvbGVBZ2VudC5zZXRNb25pdG9yaW5nWEhS
RW5hYmxlZChmYWxzZSwgZmluaXNoKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBmaW5pc2goKQor
ICAgIHsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wQ29uc29sZU1lc3NhZ2VzKCk7CisgICAg
ICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7CisgICAgfQorfQorPC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8cD5UZXN0cyB0aGF0IGNyb3NzIG9y
aWdpbiBlcnJvcnMgYXJlIGxvZ2dlZCB3aXRoIHNvdXJjZSB1cmwgYW5kIGxpbmUgbnVtYmVyLjwv
cD4KKzxpZnJhbWUgc3JjPSJodHRwOi8vbG9jYWxob3N0OjgwMDAvaW5zcGVjdG9yL3Jlc291cmNl
cy9jcm9zcy1vcmlnaW4taWZyYW1lLmh0bWwiPjwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2Ny
b3NzLW9yaWdpbi1pZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L3Jlc291cmNlcy9jcm9zcy1vcmlnaW4taWZyYW1lLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDUwYjk2YWY0
Zjc0OWUwYmRmZmU5YzMzNGU4NmI2Y2Y5NGEwMzM2ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9jcm9zcy1vcmlnaW4taWZyYW1l
Lmh0bWwKQEAgLTAsMCArMSw3IEBACis8aHRtbD4KKzxoZWFkPgorPC9oZWFkPgorPGJvZHk+Cisg
IDxwPkNyb3NzIG9yaWdpbiBmcmFtZS48cD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNv
bGUtY3Jvc3Mtb3JpZ2luLWlmcmFtZS1sb2dnaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtY3Jvc3Mtb3Jp
Z2luLWlmcmFtZS1sb2dnaW5nLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNjk2ZWE4OWJiYWZi
YWE5OTc0YjY1MzFjYjkzNjk4ZWFiZTc2OWNiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0vaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29uc29sZS1jcm9zcy1v
cmlnaW4taWZyYW1lLWxvZ2dpbmctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTYgQEAKK0NPTlNP
TEUgTUVTU0FHRTogVW5zYWZlIEphdmFTY3JpcHQgYXR0ZW1wdCB0byBhY2Nlc3MgZnJhbWUgd2l0
aCBVUkwgaHR0cDovL2xvY2FsaG9zdDo4MDAwL2luc3BlY3Rvci9yZXNvdXJjZXMvY3Jvc3Mtb3Jp
Z2luLWlmcmFtZS5odG1sIGZyb20gZnJhbWUgd2l0aCBVUkwgaHR0cDovLzEyNy4wLjAuMTo4MDAw
L2luc3BlY3Rvci9jb25zb2xlLWNyb3NzLW9yaWdpbi1pZnJhbWUtbG9nZ2luZy5odG1sLiBEb21h
aW5zLCBwcm90b2NvbHMgYW5kIHBvcnRzIG11c3QgbWF0Y2guCisKK0NPTlNPTEUgTUVTU0FHRTog
VW5zYWZlIEphdmFTY3JpcHQgYXR0ZW1wdCB0byBhY2Nlc3MgZnJhbWUgd2l0aCBVUkwgaHR0cDov
L2xvY2FsaG9zdDo4MDAwL2luc3BlY3Rvci9yZXNvdXJjZXMvY3Jvc3Mtb3JpZ2luLWlmcmFtZS5o
dG1sIGZyb20gZnJhbWUgd2l0aCBVUkwgaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9j
b25zb2xlLWNyb3NzLW9yaWdpbi1pZnJhbWUtbG9nZ2luZy5odG1sLiBEb21haW5zLCBwcm90b2Nv
bHMgYW5kIHBvcnRzIG11c3QgbWF0Y2guCisKK0NPTlNPTEUgTUVTU0FHRTogVW5hYmxlIHRvIHBv
c3QgbWVzc2FnZSB0byBodHRwOi8vMTI3LjAuMC4xOjgwMDAuIFJlY2lwaWVudCBoYXMgb3JpZ2lu
IGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC4KKworVGVzdHMgdGhhdCBjcm9zcyBvcmlnaW4gZXJyb3Jz
IGFyZSBsb2dnZWQgd2l0aCBzb3VyY2UgdXJsIGFuZCBsaW5lIG51bWJlci4KKworCitjb25zb2xl
LWNyb3NzLW9yaWdpbi1pZnJhbWUtbG9nZ2luZy5odG1sOjlVbnNhZmUgSmF2YVNjcmlwdCBhdHRl
bXB0IHRvIGFjY2VzcyBmcmFtZSB3aXRoIFVSTCBodHRwOi8vbG9jYWxob3N0OjgwMDAvaW5zcGVj
dG9yL3Jlc291cmNlcy9jcm9zcy1vcmlnaW4taWZyYW1lLmh0bWwgZnJvbSBmcmFtZSB3aXRoIFVS
TCBodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL2NvbnNvbGUtY3Jvc3Mtb3JpZ2luLWlm
cmFtZS1sb2dnaW5nLmh0bWwuIERvbWFpbnMsIHByb3RvY29scyBhbmQgcG9ydHMgbXVzdCBtYXRj
aC4KKworY29uc29sZS1jcm9zcy1vcmlnaW4taWZyYW1lLWxvZ2dpbmcuaHRtbDoxMlVuc2FmZSBK
YXZhU2NyaXB0IGF0dGVtcHQgdG8gYWNjZXNzIGZyYW1lIHdpdGggVVJMIGh0dHA6Ly9sb2NhbGhv
c3Q6ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2VzL2Nyb3NzLW9yaWdpbi1pZnJhbWUuaHRtbCBmcm9t
IGZyYW1lIHdpdGggVVJMIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3IvY29uc29sZS1j
cm9zcy1vcmlnaW4taWZyYW1lLWxvZ2dpbmcuaHRtbC4gRG9tYWlucywgcHJvdG9jb2xzIGFuZCBw
b3J0cyBtdXN0IG1hdGNoLgorCitjb25zb2xlLWNyb3NzLW9yaWdpbi1pZnJhbWUtbG9nZ2luZy5o
dG1sOjE1VW5hYmxlIHRvIHBvc3QgbWVzc2FnZSB0byBodHRwOi8vMTI3LjAuMC4xOjgwMDAuIFJl
Y2lwaWVudCBoYXMgb3JpZ2luIGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC4KKworCg==
</data>
<flag name="review"
          id="123834"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
    <flag name="commit-queue"
          id="123845"
          type_id="3"
          status="-"
          setter="pfeldman"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>122928</attachid>
            <date>2012-01-18 07:28:18 -0800</date>
            <delta_ts>2012-01-18 07:43:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73099-20120118192816.patch</filename>
            <type>text/plain</type>
            <size>19230</size>
            <attacher name="Vsevolod Vlasov">vsevik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1MjcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTYxYTQ0MjcwNjhjODQy
MjU4ZWIwYThkMzYyYzI3MTM0NjRiMmRiNS4uN2U4NjVhMTI1OThiZDk0ODkzMWIyNTRlMzAyM2Nm
YWI0MzY5NTFjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEyLTAxLTE4ICBWc2V2
b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IFVuc2FmZSBjcm9zcyBvcmlnaW4gYWNjZXNzIGVycm9ycyBzaG91bGQgc2hvdyBzdGFjayB0
cmFjZSBpbiBjb25zb2xlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NzMwOTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBUZXN0OiBodHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLWNyb3NzLW9yaWdpbi1p
ZnJhbWUtbG9nZ2luZy5odG1sCisKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOFByb3h5LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlY4UHJveHk6OnJlcG9ydFVuc2FmZUFjY2Vzc1RvKToKKyAgICAg
ICAgKiBkb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
Y3JpcHRFeGVjdXRpb25Db250ZXh0OjphZGRDb25zb2xlTWVzc2FnZSk6CisgICAgICAgICogZG9t
L1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaDoKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OnNob3VsZEFsbG93TmF2aWdhdGlv
bik6CisgICAgICAgICogcGFnZS9Db25zb2xlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnNv
bGU6OmFkZE1lc3NhZ2UpOgorICAgICAgICAqIHBhZ2UvQ29uc29sZS5oOgorICAgICAgICAqIHBh
Z2UvRE9NV2luZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBvc3RNZXNzYWdlVGltZXI6OlBv
c3RNZXNzYWdlVGltZXIpOgorICAgICAgICAoV2ViQ29yZTo6UG9zdE1lc3NhZ2VUaW1lcjo6c3Rh
Y2tUcmFjZSk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OnBvc3RNZXNzYWdlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6cG9zdE1lc3NhZ2VUaW1lckZpcmVkKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6cHJpbnRFcnJvck1lc3NhZ2UpOgorCiAyMDEyLTAxLTE3
ICBWc2V2b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJ
bnNwZWN0b3I6IEVuYWJsZSBzdXBwb3J0IGZvciBPcGVuIFNjcmlwdCBkaWFsb2cgYmFzZWQgb24g
RmlsdGVyZWRJdGVtU2VsZWN0aW9uRGlhbG9nLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvVjhQcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFBy
b3h5LmNwcAppbmRleCAwZDk2MDA3YzhlZGJjN2MyMWVkYTRiM2RkZDZmMjZjZTkxMTNjZmFhLi4z
YWFmMGIwZjcyNmY3NjQwODJiZjk3NDNhM2JjNTgzYTlmM2NlYWZiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9WOFByb3h5LmNwcApAQCAtNDMsNiArNDMsOCBAQAogI2luY2x1ZGUgIklEQkZh
Y3RvcnlCYWNrZW5kSW50ZXJmYWNlLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdXBwb3J0LmgiCisjaW5jbHVkZSAiU2NyaXB0Q2Fs
bFN0YWNrLmgiCisjaW5jbHVkZSAiU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5oIgogI2luY2x1ZGUg
IlNjcmlwdFNvdXJjZUNvZGUuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1
ZGUgIlNldHRpbmdzLmgiCkBAIC0xMzcsMTAgKzEzOSwxMiBAQCB2b2lkIFY4UHJveHk6OnJlcG9y
dFVuc2FmZUFjY2Vzc1RvKEZyYW1lKiB0YXJnZXQpCiAgICAgU3RyaW5nIHN0ciA9ICJVbnNhZmUg
SmF2YVNjcmlwdCBhdHRlbXB0IHRvIGFjY2VzcyBmcmFtZSB3aXRoIFVSTCAiICsgdGFyZ2V0RG9j
dW1lbnQtPnVybCgpLnN0cmluZygpICsKICAgICAgICAgICAgICAgICAgIiBmcm9tIGZyYW1lIHdp
dGggVVJMICIgKyBzb3VyY2VEb2N1bWVudC0+dXJsKCkuc3RyaW5nKCkgKyAiLiBEb21haW5zLCBw
cm90b2NvbHMgYW5kIHBvcnRzIG11c3QgbWF0Y2guXG4iOwogCisgICAgUmVmUHRyPFNjcmlwdENh
bGxTdGFjaz4gc3RhY2tUcmFjZSA9IGNyZWF0ZVNjcmlwdENhbGxTdGFjayhTY3JpcHRDYWxsU3Rh
Y2s6Om1heENhbGxTdGFja1NpemVUb0NhcHR1cmUsIHRydWUpOworCiAgICAgLy8gTk9URTogU2Fm
YXJpIHByaW50cyB0aGUgbWVzc2FnZSBpbiB0aGUgdGFyZ2V0IHBhZ2UsIGJ1dCBpdCBzZWVtcyBs
aWtlCiAgICAgLy8gaXQgc2hvdWxkIGJlIGluIHRoZSBzb3VyY2UgcGFnZS4gRXZlbiBmb3IgZGVs
YXllZCBtZXNzYWdlcywgd2UgcHV0IGl0IGluCiAgICAgLy8gdGhlIHNvdXJjZSBwYWdlLgotICAg
IHNvdXJjZURvY3VtZW50LT5hZGRDb25zb2xlTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIExvZ01l
c3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgc3RyKTsKKyAgICBzb3VyY2VEb2N1bWVudC0+
YWRkQ29uc29sZU1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JN
ZXNzYWdlTGV2ZWwsIHN0ciwgc3RhY2tUcmFjZS5yZWxlYXNlKCkpOwogfQogCiBzdGF0aWMgdm9p
ZCBoYW5kbGVGYXRhbEVycm9ySW5WOCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
U2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dC5jcHAKaW5kZXggMTFmMWE5ODc0ZWIxMjE5MTZlYmRhN2E4NjI4YTcwODA0
Zjk3ZTAwNC4uZWYwNmMyOWVjYjk1ZWJhMGQ4NjhiMWNhM2YyMmMyODdkOTY2OTcyNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcApAQCAtMzMyLDYg
KzMzMiwxMiBAQCB2b2lkIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmFkZENvbnNvbGVNZXNzYWdl
KE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlVHlwZQogICAgIGFkZE1lc3NhZ2Uoc291cmNl
LCB0eXBlLCBsZXZlbCwgbWVzc2FnZSwgc291cmNlVVJMLCBsaW5lTnVtYmVyLCBjYWxsU3RhY2sp
OwogfQogCit2b2lkIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmFkZENvbnNvbGVNZXNzYWdlKE1l
c3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlVHlwZSB0eXBlLCBNZXNzYWdlTGV2ZWwgbGV2ZWws
IGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxT
dGFjaykKK3sKKyAgICBhZGRNZXNzYWdlKHNvdXJjZSwgdHlwZSwgbGV2ZWwsIG1lc3NhZ2UsIFN0
cmluZygpLCAwLCBjYWxsU3RhY2spOworfQorCisKIGJvb2wgU2NyaXB0RXhlY3V0aW9uQ29udGV4
dDo6ZGlzcGF0Y2hFcnJvckV2ZW50KGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBpbnQgbGlu
ZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwpCiB7CiAgICAgRXZlbnRUYXJnZXQqIHRh
cmdldCA9IGVycm9yRXZlbnRUYXJnZXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dC5oCmluZGV4IDdhODliODk3MjcwN2QwN2FlMmRmYmNmNGM0NTRhYWM0MmU2
ODdjZDUuLmQ3NDcyMDNjYzFiNWJkMmFhOGFiMzgzYzFmMzBmZWZkN2E0MTMxMGIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaApAQCAtOTMsNiArOTMsNyBA
QCBwdWJsaWM6CiAgICAgYm9vbCBzYW5pdGl6ZVNjcmlwdEVycm9yKFN0cmluZyYgZXJyb3JNZXNz
YWdlLCBpbnQmIGxpbmVOdW1iZXIsIFN0cmluZyYgc291cmNlVVJMKTsKICAgICB2b2lkIHJlcG9y
dEV4Y2VwdGlvbihjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgaW50IGxpbmVOdW1iZXIsIGNv
bnN0IFN0cmluZyYgc291cmNlVVJMLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4pOwogICAg
IHZvaWQgYWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3Nh
Z2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCA9
IFN0cmluZygpLCB1bnNpZ25lZCBsaW5lTnVtYmVyID0gMCwgUGFzc1JlZlB0cjxTY3JpcHRDYWxs
U3RhY2s+ID0gMCk7CisgICAgdm9pZCBhZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlLCBN
ZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIFBhc3NSZWZQ
dHI8U2NyaXB0Q2FsbFN0YWNrPik7CiAKICAgICAvLyBBY3RpdmUgb2JqZWN0cyBhcmUgbm90IGdh
cmJhZ2UgY29sbGVjdGVkIGV2ZW4gaWYgaW5hY2Nlc3NpYmxlLCBlLmcuIGJlY2F1c2UgdGhlaXIg
YWN0aXZpdHkgbWF5IHJlc3VsdCBpbiBjYWxsYmFja3MgYmVpbmcgaW52b2tlZC4KICAgICBib29s
IGNhblN1c3BlbmRBY3RpdmVET01PYmplY3RzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9h
ZGVyLmNwcAppbmRleCBlYzczODg5NTg2NzRiZTczYjBlMjU2ZmI4ZDY5YzRiYWFjODNkMTUwLi5k
Y2YzODQ1YmQxOGIwZWRiMTJmZTliZjVlNDY1OTVmZjRlY2FiYThmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9GcmFtZUxvYWRlci5jcHAKQEAgLTg3LDkgKzg3LDExIEBACiAjaW5jbHVkZSAiUmVzb3Vy
Y2VIYW5kbGUuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJTY2hl
bWVSZWdpc3RyeS5oIgotI2luY2x1ZGUgIlNjcm9sbEFuaW1hdG9yLmgiCisjaW5jbHVkZSAiU2Ny
aXB0Q2FsbFN0YWNrLmgiCisjaW5jbHVkZSAiU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5oIgogI2lu
Y2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJTY3JpcHRTb3VyY2VDb2RlLmgi
CisjaW5jbHVkZSAiU2Nyb2xsQW5pbWF0b3IuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5o
IgogI2luY2x1ZGUgIlNlY3VyaXR5UG9saWN5LmgiCiAjaW5jbHVkZSAiU2VnbWVudGVkU3RyaW5n
LmgiCkBAIC0xNTYwLDE3ICsxNTYyLDE0IEBAIGJvb2wgRnJhbWVMb2FkZXI6OnNob3VsZEFsbG93
TmF2aWdhdGlvbihGcmFtZSogdGFyZ2V0RnJhbWUpIGNvbnN0CiAgICAgaWYgKGNhbkFjY2Vzc0Fu
Y2VzdG9yKGFjdGl2ZVNlY3VyaXR5T3JpZ2luLCB0YXJnZXRGcmFtZSkpCiAgICAgICAgIHJldHVy
biB0cnVlOwogCi0gICAgU2V0dGluZ3MqIHNldHRpbmdzID0gdGFyZ2V0RnJhbWUtPnNldHRpbmdz
KCk7Ci0gICAgaWYgKHNldHRpbmdzICYmICFzZXR0aW5ncy0+cHJpdmF0ZUJyb3dzaW5nRW5hYmxl
ZCgpKSB7Ci0gICAgICAgIERvY3VtZW50KiB0YXJnZXREb2N1bWVudCA9IHRhcmdldEZyYW1lLT5k
b2N1bWVudCgpOwotICAgICAgICAvLyBGSVhNRTogdGhpcyBlcnJvciBtZXNzYWdlIHNob3VsZCBj
b250YWluIG1vcmUgc3BlY2lmaWNzIG9mIHdoeSB0aGUgbmF2aWdhdGlvbiBjaGFuZ2UgaXMgbm90
IGFsbG93ZWQuCi0gICAgICAgIFN0cmluZyBtZXNzYWdlID0gIlVuc2FmZSBKYXZhU2NyaXB0IGF0
dGVtcHQgdG8gaW5pdGlhdGUgYSBuYXZpZ2F0aW9uIGNoYW5nZSBmb3IgZnJhbWUgd2l0aCBVUkwg
IiArCi0gICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0RG9jdW1lbnQtPnVybCgpLnN0cmlu
ZygpICsgIiBmcm9tIGZyYW1lIHdpdGggVVJMICIgKyBhY3RpdmVEb2N1bWVudC0+dXJsKCkuc3Ry
aW5nKCkgKyAiLlxuIjsKKyAgICBEb2N1bWVudCogdGFyZ2V0RG9jdW1lbnQgPSB0YXJnZXRGcmFt
ZS0+ZG9jdW1lbnQoKTsKKyAgICAvLyBGSVhNRTogdGhpcyBlcnJvciBtZXNzYWdlIHNob3VsZCBj
b250YWluIG1vcmUgc3BlY2lmaWNzIG9mIHdoeSB0aGUgbmF2aWdhdGlvbiBjaGFuZ2UgaXMgbm90
IGFsbG93ZWQuCisgICAgU3RyaW5nIG1lc3NhZ2UgPSAiVW5zYWZlIEphdmFTY3JpcHQgYXR0ZW1w
dCB0byBpbml0aWF0ZSBhIG5hdmlnYXRpb24gY2hhbmdlIGZvciBmcmFtZSB3aXRoIFVSTCAiICsK
KyAgICAgICAgICAgICAgICAgICAgIHRhcmdldERvY3VtZW50LT51cmwoKS5zdHJpbmcoKSArICIg
ZnJvbSBmcmFtZSB3aXRoIFVSTCAiICsgYWN0aXZlRG9jdW1lbnQtPnVybCgpLnN0cmluZygpICsg
Ii5cbiI7CisKKyAgICAvLyBGSVhNRTogc2hvdWxkIHdlIHByaW50IHRvIHRoZSBjb25zb2xlIG9m
IHRoZSBhY3RpdmVGcmFtZSBhcyB3ZWxsPworICAgIHRhcmdldEZyYW1lLT5kb21XaW5kb3coKS0+
cHJpbnRFcnJvck1lc3NhZ2UobWVzc2FnZSk7CiAKLSAgICAgICAgLy8gRklYTUU6IHNob3VsZCB3
ZSBwcmludCB0byB0aGUgY29uc29sZSBvZiB0aGUgYWN0aXZlRnJhbWUgYXMgd2VsbD8KLSAgICAg
ICAgdGFyZ2V0RnJhbWUtPmRvbVdpbmRvdygpLT5jb25zb2xlKCktPmFkZE1lc3NhZ2UoSlNNZXNz
YWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsIG1lc3NhZ2UpOwot
ICAgIH0KLSAgICAKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvQ29uc29sZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnNvbGUuY3Bw
CmluZGV4IDdmNmQxODg5MjY5OGY3NDY4ZTA1YzY5MmEwMjg5MGJkZDkxYjBmNGUuLjI0ZTEzYTVm
ZGJhNTMwMWJiNzUyOTRjZTM0MGI1YTBmZWFkMjQ5ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvQ29uc29sZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db25zb2xlLmNw
cApAQCAtMTI4LDYgKzEyOCwxMyBAQCBzdGF0aWMgdm9pZCBwcmludE1lc3NhZ2VTb3VyY2VBbmRM
ZXZlbFByZWZpeChNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZUxldmVsCiAgICAgcHJpbnRm
KCIlcyAlczoiLCBzb3VyY2VTdHJpbmcsIGxldmVsU3RyaW5nKTsKIH0KIAordm9pZCBhZGRNZXNz
YWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmlu
ZyYgbWVzc2FnZSwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+KTsKKwordm9pZCBDb25zb2xl
OjphZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlVHlwZSB0eXBlLCBNZXNz
YWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgUGFzc1JlZlB0cjxTY3JpcHRD
YWxsU3RhY2s+IGNhbGxTdGFjaykKK3sKKyAgICBhZGRNZXNzYWdlKHNvdXJjZSwgdHlwZSwgbGV2
ZWwsIG1lc3NhZ2UsIFN0cmluZygpLCAwLCBjYWxsU3RhY2spOworfQorCiB2b2lkIENvbnNvbGU6
OmFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VUeXBlIHR5cGUsIE1lc3Nh
Z2VMZXZlbCBsZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJj
ZVVSTCwgdW5zaWduZWQgbGluZU51bWJlciwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNh
bGxTdGFjaykKIHsKICAgICBQYWdlKiBwYWdlID0gdGhpcy0+cGFnZSgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9Db25zb2xlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnNv
bGUuaAppbmRleCA0YzNhNGY4ZmU0MTgzODY4NTYzOWEwNzZkNTZiZjQwNDkxOGE3YjZiLi5mMzBk
MTkxYThjMWNkZmUxOWQzOTU1ZjM3Y2JiYjM0MDBjMmM2ZGNkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0NvbnNvbGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnNvbGUu
aApAQCAtNTYsNiArNTYsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+Q29uc29sZSgpOwogCiAg
ICAgdm9pZCBhZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2
ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwgPSBTdHJp
bmcoKSwgdW5zaWduZWQgbGluZU51bWJlciA9IDAsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNr
PiA9IDApOworICAgIHZvaWQgYWRkTWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdlVHlwZSwg
TWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIFBhc3NSZWZQdHI8U2NyaXB0Q2Fs
bFN0YWNrPik7CiAKICAgICB2b2lkIGRlYnVnKFBhc3NSZWZQdHI8U2NyaXB0QXJndW1lbnRzPiwg
UGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+KTsKICAgICB2b2lkIGVycm9yKFBhc3NSZWZQdHI8
U2NyaXB0QXJndW1lbnRzPiwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+KTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRE9NV2luZG93LmNwcAppbmRleCAyOWNjZmIxZGVjYTg1YzNkMGFhMjA2Zjg2ZjUwYzRiZGI4
MmQ4NjljLi4zMWE2ZGE1MmZhMDUxNjI4ZDIwMTdkOWU4ODM5MTcxY2I0NGQyMTNhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9ET01XaW5kb3cuY3BwCkBAIC04Myw2ICs4Myw4IEBACiAjaW5jbHVkZSAiUGxhdGZv
cm1TY3JlZW4uaCIKICNpbmNsdWRlICJTY2hlZHVsZWRBY3Rpb24uaCIKICNpbmNsdWRlICJTY3Jl
ZW4uaCIKKyNpbmNsdWRlICJTY3JpcHRDYWxsU3RhY2suaCIKKyNpbmNsdWRlICJTY3JpcHRDYWxs
U3RhY2tGYWN0b3J5LmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJT
ZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgpAQCAtMTIzLDEz
ICsxMjUsMTQgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBQb3N0TWVzc2FnZVRpbWVy
IDogcHVibGljIFRpbWVyQmFzZSB7CiBwdWJsaWM6Ci0gICAgUG9zdE1lc3NhZ2VUaW1lcihET01X
aW5kb3cqIHdpbmRvdywgUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IG1lc3NhZ2Us
IGNvbnN0IFN0cmluZyYgc291cmNlT3JpZ2luLCBQYXNzUmVmUHRyPERPTVdpbmRvdz4gc291cmNl
LCBQYXNzT3duUHRyPE1lc3NhZ2VQb3J0Q2hhbm5lbEFycmF5PiBjaGFubmVscywgU2VjdXJpdHlP
cmlnaW4qIHRhcmdldE9yaWdpbikKKyAgICBQb3N0TWVzc2FnZVRpbWVyKERPTVdpbmRvdyogd2lu
ZG93LCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gbWVzc2FnZSwgY29uc3QgU3Ry
aW5nJiBzb3VyY2VPcmlnaW4sIFBhc3NSZWZQdHI8RE9NV2luZG93PiBzb3VyY2UsIFBhc3NPd25Q
dHI8TWVzc2FnZVBvcnRDaGFubmVsQXJyYXk+IGNoYW5uZWxzLCBTZWN1cml0eU9yaWdpbiogdGFy
Z2V0T3JpZ2luLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gc3RhY2tUcmFjZSkKICAgICAg
ICAgOiBtX3dpbmRvdyh3aW5kb3cpCiAgICAgICAgICwgbV9tZXNzYWdlKG1lc3NhZ2UpCiAgICAg
ICAgICwgbV9vcmlnaW4oc291cmNlT3JpZ2luKQogICAgICAgICAsIG1fc291cmNlKHNvdXJjZSkK
ICAgICAgICAgLCBtX2NoYW5uZWxzKGNoYW5uZWxzKQogICAgICAgICAsIG1fdGFyZ2V0T3JpZ2lu
KHRhcmdldE9yaWdpbikKKyAgICAgICAgLCBtX3N0YWNrVHJhY2Uoc3RhY2tUcmFjZSkKICAgICB7
CiAgICAgfQogCkBAIC0xMzksNiArMTQyLDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gTWVz
c2FnZUV2ZW50OjpjcmVhdGUobWVzc2FnZVBvcnRzLnJlbGVhc2UoKSwgbV9tZXNzYWdlLCBtX29y
aWdpbiwgIiIsIG1fc291cmNlKTsKICAgICB9CiAgICAgU2VjdXJpdHlPcmlnaW4qIHRhcmdldE9y
aWdpbigpIGNvbnN0IHsgcmV0dXJuIG1fdGFyZ2V0T3JpZ2luLmdldCgpOyB9CisgICAgU2NyaXB0
Q2FsbFN0YWNrKiBzdGFja1RyYWNlKCkgY29uc3QgeyByZXR1cm4gbV9zdGFja1RyYWNlLmdldCgp
OyB9CiAKIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGZpcmVkKCkKQEAgLTE1Myw2ICsxNTcs
NyBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxET01XaW5kb3c+IG1fc291cmNlOwogICAgIE93blB0
cjxNZXNzYWdlUG9ydENoYW5uZWxBcnJheT4gbV9jaGFubmVsczsKICAgICBSZWZQdHI8U2VjdXJp
dHlPcmlnaW4+IG1fdGFyZ2V0T3JpZ2luOworICAgIFJlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IG1f
c3RhY2tUcmFjZTsKIH07CiAKIHR5cGVkZWYgSGFzaENvdW50ZWRTZXQ8RE9NV2luZG93Kj4gRE9N
V2luZG93U2V0OwpAQCAtODU4LDggKzg2MywxMyBAQCB2b2lkIERPTVdpbmRvdzo6cG9zdE1lc3Nh
Z2UoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IG1lc3NhZ2UsIGNvbnN0IE1lcwog
ICAgICAgICByZXR1cm47CiAgICAgU3RyaW5nIHNvdXJjZU9yaWdpbiA9IHNvdXJjZURvY3VtZW50
LT5zZWN1cml0eU9yaWdpbigpLT50b1N0cmluZygpOwogCisgICAgLy8gQ2FwdHVyZSBzdGFjayB0
cmFjZSBvbmx5IHdoZW4gaW5zcGVjdG9yIGZyb250LWVuZCBpcyBsb2FkZWQgYXMgaXQgbWF5IGJl
IHRpbWUgY29uc3VtaW5nLgorICAgIFJlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IHN0YWNrVHJhY2U7
CisgICAgaWYgKEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6aGFzRnJvbnRlbmRzKCkpCisgICAg
ICAgIHN0YWNrVHJhY2UgPSBjcmVhdGVTY3JpcHRDYWxsU3RhY2soU2NyaXB0Q2FsbFN0YWNrOjpt
YXhDYWxsU3RhY2tTaXplVG9DYXB0dXJlLCB0cnVlKTsKKwogICAgIC8vIFNjaGVkdWxlIHRoZSBt
ZXNzYWdlLgotICAgIFBvc3RNZXNzYWdlVGltZXIqIHRpbWVyID0gbmV3IFBvc3RNZXNzYWdlVGlt
ZXIodGhpcywgbWVzc2FnZSwgc291cmNlT3JpZ2luLCBzb3VyY2UsIGNoYW5uZWxzLnJlbGVhc2Uo
KSwgdGFyZ2V0LmdldCgpKTsKKyAgICBQb3N0TWVzc2FnZVRpbWVyKiB0aW1lciA9IG5ldyBQb3N0
TWVzc2FnZVRpbWVyKHRoaXMsIG1lc3NhZ2UsIHNvdXJjZU9yaWdpbiwgc291cmNlLCBjaGFubmVs
cy5yZWxlYXNlKCksIHRhcmdldC5nZXQoKSwgc3RhY2tUcmFjZS5yZWxlYXNlKCkpOwogICAgIHRp
bWVyLT5zdGFydE9uZVNob3QoMCk7CiB9CiAKQEAgLTg4Myw3ICs4OTMsNyBAQCB2b2lkIERPTVdp
bmRvdzo6cG9zdE1lc3NhZ2VUaW1lckZpcmVkKFBhc3NPd25QdHI8UG9zdE1lc3NhZ2VUaW1lcj4g
dCkKICAgICAgICAgaWYgKCF0aW1lci0+dGFyZ2V0T3JpZ2luKCktPmlzU2FtZVNjaGVtZUhvc3RQ
b3J0KGRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCkpKSB7CiAgICAgICAgICAgICBTdHJpbmcg
bWVzc2FnZSA9ICJVbmFibGUgdG8gcG9zdCBtZXNzYWdlIHRvICIgKyB0aW1lci0+dGFyZ2V0T3Jp
Z2luKCktPnRvU3RyaW5nKCkgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLiBSZWNp
cGllbnQgaGFzIG9yaWdpbiAiICsgZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKS0+dG9TdHJp
bmcoKSArICIuXG4iOwotICAgICAgICAgICAgY29uc29sZSgpLT5hZGRNZXNzYWdlKEpTTWVzc2Fn
ZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIEVycm9yTWVzc2FnZUxldmVsLCBtZXNzYWdlKTsKKyAg
ICAgICAgICAgIGNvbnNvbGUoKS0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIExvZ01lc3Nh
Z2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgbWVzc2FnZSwgdGltZXItPnN0YWNrVHJhY2UoKSk7
CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICB9CkBAIC0xNzEwLDcgKzE3MjAs
OCBAQCB2b2lkIERPTVdpbmRvdzo6cHJpbnRFcnJvck1lc3NhZ2UoY29uc3QgU3RyaW5nJiBtZXNz
YWdlKQogICAgICAgICByZXR1cm47CiAKICAgICAvLyBGSVhNRTogQWRkIGFyZ3VtZW50cyBzbyB0
aGF0IHdlIGNhbiBwcm92aWRlIGEgY29ycmVjdCBzb3VyY2UgVVJMIGFuZCBsaW5lIG51bWJlci4K
LSAgICBjb25zb2xlKCktPmFkZE1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlw
ZSwgRXJyb3JNZXNzYWdlTGV2ZWwsIG1lc3NhZ2UpOworICAgIFJlZlB0cjxTY3JpcHRDYWxsU3Rh
Y2s+IHN0YWNrVHJhY2UgPSBjcmVhdGVTY3JpcHRDYWxsU3RhY2soU2NyaXB0Q2FsbFN0YWNrOjpt
YXhDYWxsU3RhY2tTaXplVG9DYXB0dXJlLCB0cnVlKTsKKyAgICBjb25zb2xlKCktPmFkZE1lc3Nh
Z2UoSlNNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsIG1l
c3NhZ2UsIHN0YWNrVHJhY2UucmVsZWFzZSgpKTsKIH0KIAogU3RyaW5nIERPTVdpbmRvdzo6Y3Jv
c3NEb21haW5BY2Nlc3NFcnJvck1lc3NhZ2UoRE9NV2luZG93KiBhY3RpdmVXaW5kb3cpCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5k
ZXggNDVkYmI4ZTIzZGVkYjNlZGIzZjUzMTIyNDlhZmNhZDFlNDZlYjM3ZS4uM2IxZjI2ODQ2N2Q4
NjlkMGUyN2I3ZTJjZDk1MGJhNTY5Yzg5N2E5MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEy
LTAxLTE4ICBWc2V2b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgorCisgICAgICAg
IFdlYiBJbnNwZWN0b3I6IFVuc2FmZSBjcm9zcyBvcmlnaW4gYWNjZXNzIGVycm9ycyBzaG91bGQg
c2hvdyBzdGFjayB0cmFjZSBpbiBjb25zb2xlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMwOTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtY3Jvc3Mt
b3JpZ2luLWlmcmFtZS1sb2dnaW5nLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0
cC90ZXN0cy9pbnNwZWN0b3IvY29uc29sZS1jcm9zcy1vcmlnaW4taWZyYW1lLWxvZ2dpbmcuaHRt
bDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2Nyb3Nz
LW9yaWdpbi1pZnJhbWUuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0v
aHR0cC90ZXN0cy9pbnNwZWN0b3IvY29uc29sZS1jcm9zcy1vcmlnaW4taWZyYW1lLWxvZ2dpbmct
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKwogMjAxMi0wMS0xOCAgR2Fib3IgUmFwY3NhbnlpICA8cmdh
Ym9yQHdlYmtpdC5vcmc+CiAKICAgICAgICAgW1F0XSBVcGRhdGUgYW5vdGhlciBTVkcgZXhwZWN0
ZWQgYWZ0ZXIgcjEwNTI0Ny4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL2NvbnNvbGUtY3Jvc3Mtb3JpZ2luLWlmcmFtZS1sb2dnaW5nLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtY3Jvc3Mtb3JpZ2luLWlm
cmFtZS1sb2dnaW5nLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45OTg5NmVjNGRkOWZjYjdmODZj
OWVkNGVjODA1NzY1NjU0NDNkM2RhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9pbnNwZWN0b3IvY29uc29sZS1jcm9zcy1vcmlnaW4taWZyYW1lLWxvZ2dpbmctZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTYgQEAKK0NPTlNPTEUgTUVTU0FHRTogVW5zYWZlIEphdmFT
Y3JpcHQgYXR0ZW1wdCB0byBhY2Nlc3MgZnJhbWUgd2l0aCBVUkwgaHR0cDovL2xvY2FsaG9zdDo4
MDAwL2luc3BlY3Rvci9yZXNvdXJjZXMvY3Jvc3Mtb3JpZ2luLWlmcmFtZS5odG1sIGZyb20gZnJh
bWUgd2l0aCBVUkwgaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9jb25zb2xlLWNyb3Nz
LW9yaWdpbi1pZnJhbWUtbG9nZ2luZy5odG1sLiBEb21haW5zLCBwcm90b2NvbHMgYW5kIHBvcnRz
IG11c3QgbWF0Y2guCisKK0NPTlNPTEUgTUVTU0FHRTogVW5zYWZlIEphdmFTY3JpcHQgYXR0ZW1w
dCB0byBhY2Nlc3MgZnJhbWUgd2l0aCBVUkwgaHR0cDovL2xvY2FsaG9zdDo4MDAwL2luc3BlY3Rv
ci9yZXNvdXJjZXMvY3Jvc3Mtb3JpZ2luLWlmcmFtZS5odG1sIGZyb20gZnJhbWUgd2l0aCBVUkwg
aHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9jb25zb2xlLWNyb3NzLW9yaWdpbi1pZnJh
bWUtbG9nZ2luZy5odG1sLiBEb21haW5zLCBwcm90b2NvbHMgYW5kIHBvcnRzIG11c3QgbWF0Y2gu
CisKK0NPTlNPTEUgTUVTU0FHRTogVW5hYmxlIHRvIHBvc3QgbWVzc2FnZSB0byBodHRwOi8vMTI3
LjAuMC4xOjgwMDAuIFJlY2lwaWVudCBoYXMgb3JpZ2luIGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC4K
KworVGVzdHMgdGhhdCBjcm9zcyBvcmlnaW4gZXJyb3JzIGFyZSBsb2dnZWQgd2l0aCBzb3VyY2Ug
dXJsIGFuZCBsaW5lIG51bWJlci4KKworCitVbnNhZmUgSmF2YVNjcmlwdCBhdHRlbXB0IHRvIGFj
Y2VzcyBmcmFtZSB3aXRoIFVSTCBodHRwOi8vbG9jYWxob3N0OjgwMDAvaW5zcGVjdG9yL3Jlc291
cmNlcy9jcm9zcy1vcmlnaW4taWZyYW1lLmh0bWwgZnJvbSBmcmFtZSB3aXRoIFVSTCBodHRwOi8v
MTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL2NvbnNvbGUtY3Jvc3Mtb3JpZ2luLWlmcmFtZS1sb2dn
aW5nLmh0bWwuIERvbWFpbnMsIHByb3RvY29scyBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KKworVW5z
YWZlIEphdmFTY3JpcHQgYXR0ZW1wdCB0byBhY2Nlc3MgZnJhbWUgd2l0aCBVUkwgaHR0cDovL2xv
Y2FsaG9zdDo4MDAwL2luc3BlY3Rvci9yZXNvdXJjZXMvY3Jvc3Mtb3JpZ2luLWlmcmFtZS5odG1s
IGZyb20gZnJhbWUgd2l0aCBVUkwgaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9jb25z
b2xlLWNyb3NzLW9yaWdpbi1pZnJhbWUtbG9nZ2luZy5odG1sLiBEb21haW5zLCBwcm90b2NvbHMg
YW5kIHBvcnRzIG11c3QgbWF0Y2guCisKK1VuYWJsZSB0byBwb3N0IG1lc3NhZ2UgdG8gaHR0cDov
LzEyNy4wLjAuMTo4MDAwLiBSZWNpcGllbnQgaGFzIG9yaWdpbiBodHRwOi8vbG9jYWxob3N0Ojgw
MDAuCisKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29u
c29sZS1jcm9zcy1vcmlnaW4taWZyYW1lLWxvZ2dpbmcuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtY3Jvc3Mtb3JpZ2luLWlmcmFtZS1sb2dnaW5nLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNTdkMjFhNTFlYzMyNjAxNDRkNGFjZDZiYTAzOGYzOWZjYWE3ODQxYwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUt
Y3Jvc3Mtb3JpZ2luLWlmcmFtZS1sb2dnaW5nLmh0bWwKQEAgLTAsMCArMSw1MCBAQAorPGh0bWw+
Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSJpbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iY29uc29sZS10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitmdW5jdGlvbiBh
Y2Nlc3NGcmFtZSgpCit7CisgICAgLy8gU2hvdWxkIGZhaWwuCisgICAgdmFyIGhvc3QgPSBmcmFt
ZXNbMF0ubG9jYXRpb24uaG9zdDsKKworICAgIC8vIFNob3VsZCBmYWlsLgorICAgIGZyYW1lc1sw
XS5sb2NhdGlvbi5yZWxvYWQoKTsKKworICAgIC8vIFNob3VsZCBmYWlsLgorICAgIGZyYW1lc1sw
XS5wb3N0TWVzc2FnZSgiZmFpbCIsICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiKTsKK30KKworZnVu
Y3Rpb24gdGVzdCgpCit7CisgICAgdmFyIGZpbmlzaEF0dGVtcHRzTGVmdCA9IDQ7CisgICAgSW5z
cGVjdG9yVGVzdC5hZGRDb25zb2xlU25pZmZlcihtYXliZUZpbmlzaCwgdHJ1ZSk7CisgICAgQ29u
c29sZUFnZW50LnNldE1vbml0b3JpbmdYSFJFbmFibGVkKHRydWUsIHN0ZXAxKTsKKworICAgIGZ1
bmN0aW9uIHN0ZXAxKCkKKyAgICB7CisgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBh
Z2UoImFjY2Vzc0ZyYW1lKCkiLCBtYXliZUZpbmlzaCk7CisgICAgfQorCisgICAgZnVuY3Rpb24g
bWF5YmVGaW5pc2goKQorICAgIHsKKyAgICAgICAgLS1maW5pc2hBdHRlbXB0c0xlZnQ7CisgICAg
ICAgIGlmIChmaW5pc2hBdHRlbXB0c0xlZnQpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAg
ICAgQ29uc29sZUFnZW50LnNldE1vbml0b3JpbmdYSFJFbmFibGVkKGZhbHNlLCBmaW5pc2gpOwor
ICAgIH0KKworICAgIGZ1bmN0aW9uIGZpbmlzaCgpCisgICAgeworICAgICAgICBJbnNwZWN0b3JU
ZXN0LmR1bXBDb25zb2xlTWVzc2FnZXMoKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0
ZVRlc3QoKTsKKyAgICB9Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVu
VGVzdCgpIj4KKzxwPlRlc3RzIHRoYXQgY3Jvc3Mgb3JpZ2luIGVycm9ycyBhcmUgbG9nZ2VkIHdp
dGggc291cmNlIHVybCBhbmQgbGluZSBudW1iZXIuPC9wPgorPGlmcmFtZSBzcmM9Imh0dHA6Ly9s
b2NhbGhvc3Q6ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2VzL2Nyb3NzLW9yaWdpbi1pZnJhbWUuaHRt
bCI+PC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvY3Jvc3Mtb3JpZ2luLWlmcmFtZS5odG1sIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2Nyb3NzLW9yaWdpbi1p
ZnJhbWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNTBiOTZhZjRmNzQ5ZTBiZGZmZTljMzM0ZTg2YjZjZjk0
YTAzMzZlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0
b3IvcmVzb3VyY2VzL2Nyb3NzLW9yaWdpbi1pZnJhbWUuaHRtbApAQCAtMCwwICsxLDcgQEAKKzxo
dG1sPgorPGhlYWQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgPHA+Q3Jvc3Mgb3JpZ2luIGZyYW1lLjxw
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0vaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29uc29sZS1jcm9zcy1vcmlnaW4taWZyYW1lLWxv
Z2dpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vaHR0cC90
ZXN0cy9pbnNwZWN0b3IvY29uc29sZS1jcm9zcy1vcmlnaW4taWZyYW1lLWxvZ2dpbmctZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjA2OTZlYTg5YmJhZmJhYTk5NzRiNjUzMWNiOTM2OThlYWJlNzY5
Y2IKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9odHRw
L3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLWNyb3NzLW9yaWdpbi1pZnJhbWUtbG9nZ2luZy1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwxNiBAQAorQ09OU09MRSBNRVNTQUdFOiBVbnNhZmUgSmF2YVNj
cmlwdCBhdHRlbXB0IHRvIGFjY2VzcyBmcmFtZSB3aXRoIFVSTCBodHRwOi8vbG9jYWxob3N0Ojgw
MDAvaW5zcGVjdG9yL3Jlc291cmNlcy9jcm9zcy1vcmlnaW4taWZyYW1lLmh0bWwgZnJvbSBmcmFt
ZSB3aXRoIFVSTCBodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL2NvbnNvbGUtY3Jvc3Mt
b3JpZ2luLWlmcmFtZS1sb2dnaW5nLmh0bWwuIERvbWFpbnMsIHByb3RvY29scyBhbmQgcG9ydHMg
bXVzdCBtYXRjaC4KKworQ09OU09MRSBNRVNTQUdFOiBVbnNhZmUgSmF2YVNjcmlwdCBhdHRlbXB0
IHRvIGFjY2VzcyBmcmFtZSB3aXRoIFVSTCBodHRwOi8vbG9jYWxob3N0OjgwMDAvaW5zcGVjdG9y
L3Jlc291cmNlcy9jcm9zcy1vcmlnaW4taWZyYW1lLmh0bWwgZnJvbSBmcmFtZSB3aXRoIFVSTCBo
dHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL2NvbnNvbGUtY3Jvc3Mtb3JpZ2luLWlmcmFt
ZS1sb2dnaW5nLmh0bWwuIERvbWFpbnMsIHByb3RvY29scyBhbmQgcG9ydHMgbXVzdCBtYXRjaC4K
KworQ09OU09MRSBNRVNTQUdFOiBVbmFibGUgdG8gcG9zdCBtZXNzYWdlIHRvIGh0dHA6Ly8xMjcu
MC4wLjE6ODAwMC4gUmVjaXBpZW50IGhhcyBvcmlnaW4gaHR0cDovL2xvY2FsaG9zdDo4MDAwLgor
CitUZXN0cyB0aGF0IGNyb3NzIG9yaWdpbiBlcnJvcnMgYXJlIGxvZ2dlZCB3aXRoIHNvdXJjZSB1
cmwgYW5kIGxpbmUgbnVtYmVyLgorCisKK2NvbnNvbGUtY3Jvc3Mtb3JpZ2luLWlmcmFtZS1sb2dn
aW5nLmh0bWw6OVVuc2FmZSBKYXZhU2NyaXB0IGF0dGVtcHQgdG8gYWNjZXNzIGZyYW1lIHdpdGgg
VVJMIGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2VzL2Nyb3NzLW9yaWdp
bi1pZnJhbWUuaHRtbCBmcm9tIGZyYW1lIHdpdGggVVJMIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9p
bnNwZWN0b3IvY29uc29sZS1jcm9zcy1vcmlnaW4taWZyYW1lLWxvZ2dpbmcuaHRtbC4gRG9tYWlu
cywgcHJvdG9jb2xzIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgorCitjb25zb2xlLWNyb3NzLW9yaWdp
bi1pZnJhbWUtbG9nZ2luZy5odG1sOjEyVW5zYWZlIEphdmFTY3JpcHQgYXR0ZW1wdCB0byBhY2Nl
c3MgZnJhbWUgd2l0aCBVUkwgaHR0cDovL2xvY2FsaG9zdDo4MDAwL2luc3BlY3Rvci9yZXNvdXJj
ZXMvY3Jvc3Mtb3JpZ2luLWlmcmFtZS5odG1sIGZyb20gZnJhbWUgd2l0aCBVUkwgaHR0cDovLzEy
Ny4wLjAuMTo4MDAwL2luc3BlY3Rvci9jb25zb2xlLWNyb3NzLW9yaWdpbi1pZnJhbWUtbG9nZ2lu
Zy5odG1sLiBEb21haW5zLCBwcm90b2NvbHMgYW5kIHBvcnRzIG11c3QgbWF0Y2guCisKK2NvbnNv
bGUtY3Jvc3Mtb3JpZ2luLWlmcmFtZS1sb2dnaW5nLmh0bWw6MTVVbmFibGUgdG8gcG9zdCBtZXNz
YWdlIHRvIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC4gUmVjaXBpZW50IGhhcyBvcmlnaW4gaHR0cDov
L2xvY2FsaG9zdDo4MDAwLgorCisK
</data>

          </attachment>
      

    </bug>

</bugzilla>