<?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>91611</bug_id>
          
          <creation_ts>2012-07-18 03:46:08 -0700</creation_ts>
          <short_desc>[GStreamer] Stopping playback of html5 media when receiving a higher priority audio event needs implementation</short_desc>
          <delta_ts>2013-04-01 07:26:29 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Platform</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Philippe Normand">pnormand</reporter>
          <assigned_to name="Xabier Rodríguez Calvar">calvaris</assigned_to>
          <cc>buildbot</cc>
    
    <cc>calvaris</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>guijemont</cc>
    
    <cc>gustavo</cc>
    
    <cc>jer.noble</cc>
    
    <cc>menard</cc>
    
    <cc>mrobinson</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>rego+ews</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>672212</commentid>
    <comment_count>0</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-07-18 03:46:08 -0700</bug_when>
    <thetext>We need to support the request-state GstMessage in the MediaPlayerPrivateGStreamer backend so as to play/pause our pipeline upon downstream request.

http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#gst-message-new-request-state

Any takers? Please raise your hand :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>673524</commentid>
    <comment_count>1</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2012-07-19 08:12:30 -0700</bug_when>
    <thetext>I can give it a try.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691471</commentid>
    <comment_count>2</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2012-08-09 09:03:27 -0700</bug_when>
    <thetext>Interesting finding. I added the hook to the message and we were not receiving it so I had a look Rhythmbox. There is no trace of that message in their code and the developers told me they do not manage it. I compiled it and hooked to gst_element_set_state when getting a call in rhythmbox and this is what I saw:


(gdb) bt
#0  gst_element_set_state (element=0x1826710, state=GST_STATE_PAUSED) at gstelement.c:2614
#1  0x00007ffff7f7badc in start_state_change (mp=0x43da60, state=GST_STATE_PAUSED, action=STOP_TICK_TIMER) at rb-player-gst.c:383
#2  0x00007ffff7f7d394 in impl_pause (player=0x43da60) at rb-player-gst.c:874
#3  0x00007ffff7f77e3c in rb_player_pause (player=0x43da60) at rb-player.c:450
#4  0x00007ffff7ee943a in rb_shell_player_playpause (player=0x738160, unused=0, error=0x0) at rb-shell-player.c:2381
#5  0x00007ffff7eeb2eb in rb_shell_player_pause (player=0x738160, error=0x0) at rb-shell-player.c:3240
#6  0x00007fffd09bd47c in media_player_key_pressed (proxy=0xd78100, sender=0x14840f0 &quot;:1.5&quot;, signal=0x1435220 &quot;MediaPlayerKeyPressed&quot;, parameters=0x19f0230, plugin=0xd7fb70) at rb-mmkeys-plugin.c:120
#7  0x00007fffed7637bc in ffi_call_unix64 () from /usr/lib/x86_64-linux-gnu/libffi.so.5
#8  0x00007fffed763237 in ffi_call () from /usr/lib/x86_64-linux-gnu/libffi.so.5
#9  0x00007fffedf8709b in g_cclosure_marshal_generic () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#10 0x00007fffedf86724 in g_closure_invoke () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#11 0x00007fffedf977b0 in ?? () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#12 0x00007fffedf9f72c in g_signal_emit_valist () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#13 0x00007fffedf9f8c2 in g_signal_emit () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#14 0x00007fffee9dff14 in ?? () from /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
#15 0x00007fffee9cfbe5 in ?? () from /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
#16 0x00007fffed4ab205 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#17 0x00007fffed4ab538 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#18 0x00007fffed4ab5f4 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#19 0x00007fffee9b238c in g_application_run () from /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
#20 0x000000000040151f in main (argc=1, argv=0x7fffffffd848) at main.c:98

What rhythmbox seems to receive is a press of the multimedia key and not a request for a state change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691476</commentid>
    <comment_count>3</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2012-08-09 09:06:17 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; What rhythmbox seems to receive is a press of the multimedia key and not a request for a state change.

This makes me think if we might be taking the wrong approach here. We might want to hook to this message and pause anyway, but if we want to really stop in gnome 3, we&apos;d need to hook to that key and pause, or at least reinject that message to the pipeline.

Comments are welcome.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>692595</commentid>
    <comment_count>4</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2012-08-10 09:18:48 -0700</bug_when>
    <thetext>After running rhythmbox and totem at the same time and receiving a call and activating debug in pulseaudio I saw that the messages were being sent.

Aug 10 17:36:45 localhost pulseaudio[31056]: [pulseaudio] module-role-cork.c: Found a &apos;phone&apos; stream that will trigger the auto-cork.
Aug 10 17:36:45 localhost pulseaudio[31056]: [pulseaudio] module-role-cork.c: Found a &apos;music&apos; stream that should be corked/muted.
Aug 10 17:36:45 localhost pulseaudio[31056]: [pulseaudio] module-role-cork.c: Found a &apos;video&apos; stream that should be corked/muted.

I also saw there were not being received at the other side. I thought that the problem was setting the role [1] and so it seems because after setting that, gst-launch stopped. We need to set the role when playing. There is API for that in GStreamer so it will be next step.

[1] http://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/Developer/Clients/ApplicationProperties</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>695127</commentid>
    <comment_count>5</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2012-08-14 10:32:04 -0700</bug_when>
    <thetext>The problem was assigning the role. Now we receive the message and we can stop the pipeline. I need to ensure that the patch does not break any test, though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>698101</commentid>
    <comment_count>6</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2012-08-17 02:45:49 -0700</bug_when>
    <thetext>I have the patch and no new tests are broken. Now I am writing the test.

Eric, Philippe suggested me to CC you about the way to implement the test. As we need a way to inject the event, he thought that the best could be adding a new vmethod to MediaPlayerClient and implement it in HTMLMediaElement for this and do stuff in the internals to be able to call it from the javascript test code. What do you think?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>698144</commentid>
    <comment_count>7</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-08-17 03:22:02 -0700</bug_when>
    <thetext>Just to add some more context, the use-case is that a multimedia  application requiring exclusive use of the audio device can request other running applications to temporarily suspend their media playback.

In GNOME for instance the video chat application typically requests such use and asks other applications, via PulseAudio to pause their playback.

Maybe this would make sense on Mac OSX as well, from a user-perspective? I have no idea how this would be technically possible though.

So we&apos;re asking if it would be possible to slightly extend the MediaPlayerClient interface in order to write a test for this feature we&apos;d like to support in the GStreamer MediaPlayerPrivate backend.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>698173</commentid>
    <comment_count>8</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2012-08-17 03:58:36 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; So we&apos;re asking if it would be possible to slightly extend the MediaPlayerClient interface in order to write a test for this feature we&apos;d like to support in the GStreamer MediaPlayerPrivate backend.

We could name it like requestStopByHigherPrioStream . In the case of our port this only makes sense for the testing but in any other ports it could make sense for functionality too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838192</commentid>
    <comment_count>9</comment_count>
      <attachid>189467</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2013-02-21 00:46:51 -0800</bug_when>
    <thetext>Created attachment 189467
First approach

Eric, I have a first version of the patch for you to have a look at the the changes I propose to carry on with the task. It basically adds methods at the media element and the cascade to the port private parts to inject the stop event and it&apos;s added to the Internals to call it from javascript.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838550</commentid>
    <comment_count>10</comment_count>
      <attachid>189551</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2013-02-21 10:22:46 -0800</bug_when>
    <thetext>Created attachment 189551
Patch

Now the test is working and the expectation is created too. I still need to add expectations for the other ports.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838568</commentid>
    <comment_count>11</comment_count>
      <attachid>189551</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2013-02-21 10:39:50 -0800</bug_when>
    <thetext>Comment on attachment 189551
Patch

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

&gt; Source/WebCore/testing/Internals.idl:253
&gt; +    void stopElementByHigherPrioAudioStream(in Node node);

This seems a poor name for this method (and throughout the call chain down to MediaPlayerPrivate).   How about &quot;simulateAudioInterruption()&quot;?

&gt; Source/WebCore/testing/Internals.cpp:2006
&gt; +void Internals::stopElementByHigherPrioAudioStream(Node *node)
&gt; +{
&gt; +    HTMLMediaElement* element = toMediaElement(node);
&gt; +    element-&gt;stopByHigherPrioAudioStream();
&gt; +}

Rather than exposing this method on HMTLMediaElement, this could be:

HTMLMediaElement* element = toMediaElement(node);
element-&gt;player()-&gt;simulateAudioInterruption();

&gt; Source/WebCore/html/HTMLMediaElement.h:348
&gt; +    virtual void stopByHigherPrioAudioStream();
&gt; +

Then this would be unnecessary.

&gt; Source/WebCore/html/HTMLMediaElement.cpp:4871
&gt; +void HTMLMediaElement::stopByHigherPrioAudioStream()
&gt; +{
&gt; +    if (!m_player)
&gt; +        return;
&gt; +    m_player-&gt;stopByHigherPrioAudioStream();
&gt; +}
&gt; +

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838571</commentid>
    <comment_count>12</comment_count>
      <attachid>189551</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2013-02-21 10:44:07 -0800</bug_when>
    <thetext>Comment on attachment 189551
Patch

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

Since this touches platform-independent code, I&apos;ll remove the [GStreamer] tag.

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:1079
&gt; +        // We consider a state change when going to GST_STATE_PLAYING
&gt; +        // or to GST_STATE_PAUSED from GST_STATE_PLAYING. We also
&gt; +        // consider GST_STATE_NULL because playbin2 can avoid
&gt; +        // reporting state changes when transitioning to
&gt; +        // GST_STATE_NULL but we do not consider GST_STATE_READY
&gt; +        // because if it is now GST_STATE_READY it means that it has
&gt; +        // already transitioned through GST_STATE_PAUSED and that&apos;s
&gt; +        // already contemplated.
&gt; +        if ((m_previousState == GST_STATE_PAUSED
&gt; +            &amp;&amp; state == GST_STATE_PLAYING)
&gt; +            || ((state == GST_STATE_PAUSED || state == GST_STATE_NULL)
&gt; +                &amp;&amp; m_previousState == GST_STATE_PLAYING)) {
&gt; +            shouldUpdatePlaybackState = true;
&gt; +            m_previousState = state;
&gt; +            LOG_MEDIA_MESSAGE(&quot;State change to %s completed&quot;,
&gt; +                gst_element_state_get_name(m_previousState));
&gt; +        }

It&apos;s okay for lines to be longer than 80 characters. In WebKit a good target is 120 characters.

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:1579
&gt; +    GstElement * playBin = m_playBin.get();

Watch the style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838594</commentid>
    <comment_count>13</comment_count>
      <attachid>189551</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-21 11:07:16 -0800</bug_when>
    <thetext>Comment on attachment 189551
Patch

Attachment 189551 did not pass mac-wk2-ews (mac-wk2):
Output: http://queues.webkit.org/results/16695201

New failing tests:
media/media-higher-prio-audio-stream.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838611</commentid>
    <comment_count>14</comment_count>
      <attachid>189551</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-21 11:17:24 -0800</bug_when>
    <thetext>Comment on attachment 189551
Patch

Attachment 189551 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/16698175

New failing tests:
media/media-higher-prio-audio-stream.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839521</commentid>
    <comment_count>15</comment_count>
      <attachid>189551</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-22 05:54:47 -0800</bug_when>
    <thetext>Comment on attachment 189551
Patch

Attachment 189551 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/16692856

New failing tests:
media/media-higher-prio-audio-stream.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839557</commentid>
    <comment_count>16</comment_count>
      <attachid>189770</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2013-02-22 07:14:08 -0800</bug_when>
    <thetext>Created attachment 189770
Patch

Changed according to the comments and added expectations for Mac, Chromium and Qt. I would need some help to flag the tests in Qt because I don&apos;t know the qt subports that are not running GStreamer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839563</commentid>
    <comment_count>17</comment_count>
      <attachid>189770</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2013-02-22 07:31:12 -0800</bug_when>
    <thetext>Comment on attachment 189770
Patch

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

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:145
&gt; +    g_setenv(&quot;PULSE_PROP_media.role&quot;, &quot;video&quot;, TRUE);

I&apos;m not sure, we, as a library for applications, should set an environment variable. IMHO it should be done on application side and from the test program.

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:723
&gt; +            LOG_MEDIA_MESSAGE(&quot;%s Requested state change to %s&quot;, gst_element_get_name(GST_MESSAGE_SRC(message)),

Perhaps rephrase a bit the beginning. &quot;Element %s requested ...&quot;

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:1073
&gt; +            LOG_MEDIA_MESSAGE(&quot;State change to %s completed&quot;,
&gt; +                gst_element_state_get_name(m_previousState));

Make this one line please.

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:1150
&gt; +        LOG_MEDIA_MESSAGE(&quot;State changed to %s&quot;,
&gt; +            gst_element_state_get_name(state));

Ditto

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:1575
&gt; +    GstBus* bus = gst_pipeline_get_bus(GST_PIPELINE(playBin));

Please use webkitGstPipelineGetBus().

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:1577
&gt; +    GstMessage* message = gst_message_new_request_state(GST_OBJECT(playBin),
&gt; +        GST_STATE_PAUSED);

Please make this one line.

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:1578
&gt; +    gst_bus_post(bus, message);

Why not use gst_element_post_message()?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839594</commentid>
    <comment_count>18</comment_count>
      <attachid>189770</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2013-02-22 08:29:51 -0800</bug_when>
    <thetext>Comment on attachment 189770
Patch

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

&gt; Source/WebCore/ChangeLog:5
&gt; +        Downstream state change request support for the GStreamer backend
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=91611
&gt; +

This title tells me nothing about what the change does. Please add a sentence or two describing what you are changing and why.

&gt; Source/WebCore/platform/graphics/MediaPlayerPrivate.h:192
&gt; +    virtual void simulateAudioInterruption() { }

I don&apos;t like that this adds a method to every HTMLMediaElement, every MediaPlayer, and every MediaPlayerPrivate for this platform specific test. Is there any other way to test this feature? If not, I am not sure the test is worth the ancillary cost.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839660</commentid>
    <comment_count>19</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2013-02-22 09:37:08 -0800</bug_when>
    <thetext>Perhaps the API additions can be guarded with if USE(GSTREAMER). Would that be ok Eric?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839678</commentid>
    <comment_count>20</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2013-02-22 09:57:31 -0800</bug_when>
    <thetext>(In reply to comment #19)
&gt; Perhaps the API additions can be guarded with if USE(GSTREAMER). Would that be ok Eric?

That seems reasonable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>840851</commentid>
    <comment_count>21</comment_count>
      <attachid>190026</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2013-02-25 03:55:07 -0800</bug_when>
    <thetext>Created attachment 190026
Patch

Updated Qt expectations, made suggested style changes, added #if guards to avoid the MediaPlayer being added to non GStreamer ports, changed to use gst_element_post_message and not setting the media role as environment variable, but as media stream properties on pulsesink.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>840857</commentid>
    <comment_count>22</comment_count>
      <attachid>190026</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2013-02-25 04:07:36 -0800</bug_when>
    <thetext>Comment on attachment 190026
Patch

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

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:1521
&gt; -    GstElement* sink = gst_element_factory_make(&quot;autoaudiosink&quot;, 0);
&gt; +    GstElement* sink = gst_element_factory_make(&quot;pulsesink&quot;, 0);

I think autoaudiosink does more than checking it can create pulsesink. We should rely on autoaudiosink as much as possible.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>840858</commentid>
    <comment_count>23</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2013-02-25 04:08:22 -0800</bug_when>
    <thetext>The patch needs to be rebased too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>843814</commentid>
    <comment_count>24</comment_count>
      <attachid>190026</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2013-02-28 00:14:32 -0800</bug_when>
    <thetext>Comment on attachment 190026
Patch

r- for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>844017</commentid>
    <comment_count>25</comment_count>
      <attachid>190026</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2013-02-28 05:50:32 -0800</bug_when>
    <thetext>Comment on attachment 190026
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:1521
&gt;&gt; +    GstElement* sink = gst_element_factory_make(&quot;pulsesink&quot;, 0);
&gt; 
&gt; I think autoaudiosink does more than checking it can create pulsesink. We should rely on autoaudiosink as much as possible.

Well, on second thought, perhaps it&apos;s better to go this way.

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:1526
&gt; +        GstStructure* structure = gst_structure_new(&quot;stream-properties&quot;, &quot;media.role&quot;, G_TYPE_STRING, &quot;video&quot;, NULL);

This should be set only if the client ::mediaPlayerIsVideo() returns true (eg, we deal with a &lt;video&gt; element). Otherwise we could set the role to &quot;music&quot;, would that work?

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:1527
&gt; +        g_object_set(sink, &quot;stream-properties&quot;, structure, NULL);

Is the structure copied? If so it needs to be freed. Can you double-check this please?

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:1580
&gt; +    GstMessage* message = gst_message_new_request_state(GST_OBJECT(playBin),
&gt; +        GST_STATE_PAUSED);

Can this be a single line please? :)

&gt; Source/WebCore/testing/Internals.cpp:2016
&gt; +void Internals::simulateAudioInterruption(Node *node)
&gt; +{
&gt; +#if USE(GSTREAMER)

Perhaps the #if should wrap the whole method.

&gt; Source/WebCore/testing/Internals.h:293
&gt; +    void simulateAudioInterruption(Node*);

And have this protected by an ifdef.

&gt; Source/WebCore/testing/Internals.idl:254
&gt; +    void simulateAudioInterruption(in Node node);

[Conditional=USE_GSTREAMER] ? Needs to be double-checked :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>847898</commentid>
    <comment_count>26</comment_count>
      <attachid>191531</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2013-03-05 12:06:23 -0800</bug_when>
    <thetext>Created attachment 191531
Patch

Changed style suggestions, not using pulsesink by default but hooking to child-added signal in autoaudiosink to set the properties, and properly unrefing the properties after setting them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>847907</commentid>
    <comment_count>27</comment_count>
      <attachid>191531</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2013-03-05 12:19:02 -0800</bug_when>
    <thetext>Comment on attachment 191531
Patch

Incorrect freeing method</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>848624</commentid>
    <comment_count>28</comment_count>
      <attachid>191684</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2013-03-06 01:30:04 -0800</bug_when>
    <thetext>Created attachment 191684
Patch

Rebased and changed the structure freeing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>848650</commentid>
    <comment_count>29</comment_count>
      <attachid>191684</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-03-06 02:05:00 -0800</bug_when>
    <thetext>Comment on attachment 191684
Patch

Attachment 191684 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-commit-queue.appspot.com/results/17031090</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>848903</commentid>
    <comment_count>30</comment_count>
      <attachid>191684</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2013-03-06 08:56:01 -0800</bug_when>
    <thetext>Comment on attachment 191684
Patch

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

It looks good but there are various small issues to fix-up

&gt; Source/WebCore/ChangeLog:8
&gt; +        updated accodingly.

typo: accordingly

&gt; Source/WebCore/ChangeLog:10
&gt; +        Added a method to be able to inject the message in the pipeline

What about, &quot;A method was added in the MediaPlayer class to allow  the  the test runner to simulate an audio interruption&quot; ?

&gt; Source/WebCore/ChangeLog:23
&gt; +        delegate on the private to stop because of a stream with bigger

What about: New method delegating an audio interruption to the private backend to simulate the use-case where an external application needs exclusive access to the audio device.

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:126
&gt; +    if (g_strcmp0(G_OBJECT_TYPE_NAME(object), &quot;GstPulseSink&quot;))

Hum that doesn&apos;t handle the case where g_strcmp0 returns -1.

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:1539
&gt; +    g_signal_connect(sink, &quot;child-added&quot;, G_CALLBACK(setAudioStreamProperties), this);

It&apos;d be nice to disconnect from this signal once the properties were set and in the destructor, just in case :)

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:1590
&gt; +    GstElement* playBin = m_playBin.get();
&gt; +    GstMessage* message = gst_message_new_request_state(GST_OBJECT(playBin), GST_STATE_PAUSED);
&gt; +    gst_element_post_message(playBin, message);

Nit: no need for a playBin variable.

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:124
&gt; +    static void setAudioStreamProperties(GstChildProxy*, GObject*, gchar* name,
&gt; +        MediaPlayerPrivateGStreamer* self);

Can this be one line?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>849954</commentid>
    <comment_count>31</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2013-03-07 04:18:54 -0800</bug_when>
    <thetext>(In reply to comment #30)
&gt; &gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:1539
&gt; &gt; +    g_signal_connect(sink, &quot;child-added&quot;, G_CALLBACK(setAudioStreamProperties), this);
&gt; 
&gt; It&apos;d be nice to disconnect from this signal once the properties were set and in the destructor, just in case :)

I cannot disconnect the signal when receiving it because then, if the pipeline is restarted, we loose those props.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>849956</commentid>
    <comment_count>32</comment_count>
      <attachid>191967</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2013-03-07 04:27:45 -0800</bug_when>
    <thetext>Created attachment 191967
Patch

Changes suggested by Phil</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>849959</commentid>
    <comment_count>33</comment_count>
      <attachid>191967</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2013-03-07 04:33:02 -0800</bug_when>
    <thetext>Comment on attachment 191967
Patch

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

&gt; Source/WebCore/ChangeLog:23
&gt; +        (WebCore::MediaPlayer::simulateAudioInterruption): Added to
&gt; +        delegate on the private to stop because of a stream with bigger
&gt; +        priority.

Can this be reworded a bit like suggested in the previous review?

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:1545
&gt; +    g_signal_connect(sink, &quot;child-added&quot;, G_CALLBACK(setAudioStreamProperties), this);

No need to explicitly disconnect from this signal at least in the dtor?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>850521</commentid>
    <comment_count>34</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2013-03-07 15:16:32 -0800</bug_when>
    <thetext>(In reply to comment #33)
&gt; (From update of attachment 191967 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=191967&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:23
&gt; &gt; +        (WebCore::MediaPlayer::simulateAudioInterruption): Added to
&gt; &gt; +        delegate on the private to stop because of a stream with bigger
&gt; &gt; +        priority.
&gt; 
&gt; Can this be reworded a bit like suggested in the previous review?

Yeah, I had missed that.

&gt; &gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:1545
&gt; &gt; +    g_signal_connect(sink, &quot;child-added&quot;, G_CALLBACK(setAudioStreamProperties), this);
&gt; 
&gt; No need to explicitly disconnect from this signal at least in the dtor?

It&apos;s already done.

I also forgot to test the code in GStreamer 0.10.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>854229</commentid>
    <comment_count>35</comment_count>
      <attachid>192906</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2013-03-13 05:46:19 -0700</bug_when>
    <thetext>Created attachment 192906
Patch

Changed according to Phil&apos;s comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>854271</commentid>
    <comment_count>36</comment_count>
      <attachid>192906</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2013-03-13 06:58:01 -0700</bug_when>
    <thetext>Comment on attachment 192906
Patch

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

One last iteration is needed I think ;)

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:117
&gt; +static void setAudioStreamPropertiesCallback(GstChildProxy* proxy, GObject* object, gchar* name,

proxy is unused, so no need to give it a name. Same for the &quot;name&quot; variable.

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:1548
&gt; +    if (m_autoAudioSink)

Can this really happen?

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:1558
&gt; +    g_signal_connect(sink, &quot;child-added&quot;, reinterpret_cast&lt;GCallback&gt;(setAudioStreamPropertiesCallback), this);

Nit: we use the G_CALLBACK in other places I think.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>855152</commentid>
    <comment_count>37</comment_count>
      <attachid>193111</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2013-03-14 05:53:00 -0700</bug_when>
    <thetext>Created attachment 193111
Patch

Changed according to Phil&apos;s comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>855185</commentid>
    <comment_count>38</comment_count>
      <attachid>193111</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-14 07:41:33 -0700</bug_when>
    <thetext>Comment on attachment 193111
Patch

Clearing flags on attachment: 193111

Committed r145811: &lt;http://trac.webkit.org/changeset/145811&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>855186</commentid>
    <comment_count>39</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-14 07:41:40 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>855259</commentid>
    <comment_count>40</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2013-03-14 09:46:13 -0700</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>855260</commentid>
    <comment_count>41</comment_count>
      <attachid>193140</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2013-03-14 09:46:18 -0700</bug_when>
    <thetext>Created attachment 193140
Patch

Adding guards for ENABLE(VIDEO). This should fix qt minimal bot</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>855266</commentid>
    <comment_count>42</comment_count>
      <attachid>193140</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2013-03-14 09:50:21 -0700</bug_when>
    <thetext>Comment on attachment 193140
Patch

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

&gt; Source/WebCore/platform/graphics/MediaPlayer.cpp:1147
&gt; +#if ENABLE(VIDEO) &amp;&amp; USE(GSTREAMER)

Not needed.

&gt; Source/WebCore/platform/graphics/MediaPlayer.h:465
&gt; +#if ENABLE(VIDEO) &amp;&amp; USE(GSTREAMER)

Ditto

&gt; Source/WebCore/platform/graphics/MediaPlayerPrivate.h:191
&gt; +#if ENABLE(VIDEO) &amp;&amp; USE(GSTREAMER)

Ditto

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:1601
&gt; +#if ENABLE(VIDEO)

This is not needed.

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:93
&gt; +#if ENABLE(VIDEO)

Ditto

&gt; Source/WebCore/testing/Internals.cpp:54
&gt; +#if ENABLE(VIDEO) &amp;&amp; USE(GSTREAMER)

only ENABLE(VIDEO) is needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>855285</commentid>
    <comment_count>43</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2013-03-14 10:15:47 -0700</bug_when>
    <thetext>Build problem is being managed in bug 112358. Closing this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>865963</commentid>
    <comment_count>44</comment_count>
      <attachid>192906</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2013-03-28 18:59:21 -0700</bug_when>
    <thetext>Comment on attachment 192906
Patch

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

&gt; Source/WebCore/platform/graphics/MediaPlayer.h:467
&gt; +#if USE(GSTREAMER)
&gt; +    virtual void simulateAudioInterruption();
&gt; +#endif

Why is this virtual?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>866089</commentid>
    <comment_count>45</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2013-03-29 05:19:04 -0700</bug_when>
    <thetext>(In reply to comment #44)
&gt; (From update of attachment 192906 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=192906&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/MediaPlayer.h:467
&gt; &gt; +#if USE(GSTREAMER)
&gt; &gt; +    virtual void simulateAudioInterruption();
&gt; &gt; +#endif
&gt; 
&gt; Why is this virtual?

I just assumed somebody might want to redefine it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>866193</commentid>
    <comment_count>46</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2013-03-29 08:51:47 -0700</bug_when>
    <thetext>(In reply to comment #45)
&gt; (In reply to comment #44)
&gt; &gt; (From update of attachment 192906 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=192906&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/platform/graphics/MediaPlayer.h:467
&gt; &gt; &gt; +#if USE(GSTREAMER)
&gt; &gt; &gt; +    virtual void simulateAudioInterruption();
&gt; &gt; &gt; +#endif
&gt; &gt; 
&gt; &gt; Why is this virtual?
&gt; 
&gt; I just assumed somebody might want to redefine it.

There are no classes that subclass MediaPlayer, so the only other virtual method in the class is the destructor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>867020</commentid>
    <comment_count>47</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2013-04-01 03:38:16 -0700</bug_when>
    <thetext>(In reply to comment #46)
&gt; (In reply to comment #45)
&gt; &gt; (In reply to comment #44)
&gt; &gt; &gt; (From update of attachment 192906 [details] [details] [details])
&gt; &gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=192906&amp;action=review
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Source/WebCore/platform/graphics/MediaPlayer.h:467
&gt; &gt; &gt; &gt; +#if USE(GSTREAMER)
&gt; &gt; &gt; &gt; +    virtual void simulateAudioInterruption();
&gt; &gt; &gt; &gt; +#endif
&gt; &gt; &gt; 
&gt; &gt; &gt; Why is this virtual?
&gt; &gt; 
&gt; &gt; I just assumed somebody might want to redefine it.
&gt; 
&gt; There are no classes that subclass MediaPlayer, so the only other virtual method in the class is the destructor.

Ok, I can submit a patch for this, but I think this is not urgent. I guess I can do it after bug 112548, right?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>867110</commentid>
    <comment_count>48</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2013-04-01 07:26:29 -0700</bug_when>
    <thetext>(In reply to comment #47)
&gt; (In reply to comment #46)
&gt; &gt; (In reply to comment #45)
&gt; &gt; &gt; (In reply to comment #44)
&gt; &gt; &gt; &gt; (From update of attachment 192906 [details] [details] [details] [details])
&gt; &gt; &gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=192906&amp;action=review
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; Source/WebCore/platform/graphics/MediaPlayer.h:467
&gt; &gt; &gt; &gt; &gt; +#if USE(GSTREAMER)
&gt; &gt; &gt; &gt; &gt; +    virtual void simulateAudioInterruption();
&gt; &gt; &gt; &gt; &gt; +#endif
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Why is this virtual?
&gt; &gt; &gt; 
&gt; &gt; &gt; I just assumed somebody might want to redefine it.
&gt; &gt; 
&gt; &gt; There are no classes that subclass MediaPlayer, so the only other virtual method in the class is the destructor.
&gt; 
&gt; Ok, I can submit a patch for this, but I think this is not urgent. I guess I can do it after bug 112548, right?

That sounds fine.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189467</attachid>
            <date>2013-02-21 00:46:51 -0800</date>
            <delta_ts>2013-02-21 10:22:43 -0800</delta_ts>
            <desc>First approach</desc>
            <filename>bug-91611-20130221094310.patch</filename>
            <type>text/plain</type>
            <size>15695</size>
            <attacher name="Xabier Rodríguez Calvar">calvaris</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzNTYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjlmZTk4NWEwMDg5YWYx
NzMzNDZhYjk0ODhmZGRhMWRkYjgzNTlkNC4uNjMyN2JmZTQwN2YzYjkzNGQwMGE3ZjcwMzE0ZjM0
ZmY1YWFjMDAzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDEzLTAyLTIxICBYYWJp
ZXIgUm9kcmlndWV6IENhbHZhciAgPGNhbHZhcmlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dT
dHJlYW1lcl0gRG93bnN0cmVhbSBzdGF0ZSBjaGFuZ2UgcmVxdWVzdCBzdXBwb3J0CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MTYxMQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IG1lZGlhL21lZGlh
LWhpZ2hlci1wcmlvLWF1ZGlvLXN0cmVhbS5odG1sCisKKyAgICAgICAgKiBodG1sL0hUTUxNZWRp
YUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6c3RvcEJ5
SGlnaGVyUHJpb0F1ZGlvU3RyZWFtKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIGh0
bWwvSFRNTE1lZGlhRWxlbWVudC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlh
UGxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpzdG9wQnlIaWdoZXJQ
cmlvQXVkaW9TdHJlYW0pOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvTWVkaWFQbGF5ZXIuaDoKKyAgICAgICAgKE1lZGlhUGxheWVyKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaDoKKyAgICAgICAgKE1lZGlh
UGxheWVyUHJpdmF0ZUludGVyZmFjZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclBy
aXZhdGVJbnRlcmZhY2U6OnN0b3BCeUhpZ2hlclByaW9BdWRpb1N0cmVhbSk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjppbml0aWFsaXplR1N0cmVhbWVyQW5kUmVnaXN0ZXJXZWJL
aXRFbGVtZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXI6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmNoYW5nZVBpcGVsaW5lU3RhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpoYW5kbGVNZXNzYWdlKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyLmg6CisgICAgICAgIChNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIpOgorICAgICAg
ICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6
c3RvcEVsZW1lbnRCeUhpZ2hlclByaW9BdWRpb1N0cmVhbSk6CisgICAgICAgIChXZWJDb3JlKToK
KyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5oOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJu
YWxzLmlkbDoKKwogMjAxMy0wMi0yMCAgRXJpYyBTZWlkZWwgIDxlcmljQHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgV2ViVlRUUGFyc2VyIGNvcGllcyBjaGFyYWN0ZXIgYnVmZmVyIG1vcmUgb2Z0ZW4g
dGhhbiBuZWNlc3NhcnkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlh
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmlu
ZGV4IDJiYzRlNmIxNDFlNWExNTZmODUxZDljZWVmOTFhYmJjMTJhMGM0OWYuLjQ3NDY1MDJhMTU2
N2FiNzk4ZTI1NWI2ZjVlMmJjNmU5N2FmODJlZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TWVkaWFFbGVtZW50LmNwcApAQCAtNDg2Miw1ICs0ODYyLDEyIEBAIHZvaWQgSFRNTE1lZGlhRWxl
bWVudDo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5m
bykgY29uCiAKIH0KIAordm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzdG9wQnlIaWdoZXJQcmlvQXVk
aW9TdHJlYW0oKQoreworICAgIGlmICghbV9wbGF5ZXIpCisgICAgICAgIHJldHVybjsKKyAgICBt
X3BsYXllci0+c3RvcEJ5SGlnaGVyUHJpb0F1ZGlvU3RyZWFtKCk7Cit9CisKIH0KICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAppbmRleCBmYTFlM2YyODRlZTE5NmJm
YjIxYzIyYTRmOGY3MTcyZTQzMTYwZDQ1Li4zM2Y1ZGE1MTg2MzE5MThlMTgwNWQwYjZiMGEyMzJj
MGJkOTE5YjViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaApAQCAtMzQ0
LDYgKzM0NCw4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCByZXBvcnRNZW1vcnlVc2Fn
ZShNZW1vcnlPYmplY3RJbmZvKikgY29uc3Q7CiAKKyAgICB2aXJ0dWFsIHZvaWQgc3RvcEJ5SGln
aGVyUHJpb0F1ZGlvU3RyZWFtKCk7CisKIHByb3RlY3RlZDoKICAgICBIVE1MTWVkaWFFbGVtZW50
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCosIGJvb2wpOwogICAgIHZpcnR1YWwgfkhU
TUxNZWRpYUVsZW1lbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL01lZGlhUGxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L01lZGlhUGxheWVyLmNwcAppbmRleCAwYjI1NDRmOTIxNjE4ZjJlMTMxMDU4OWIwOTZhNjFmOGIw
NWY2OTkxLi41NWI4MmU5OTE5ZTA1OWRkOTk1OWMyZGUwYzZkNjkwODExYTA4OTU1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCkBAIC0x
MTY1LDYgKzExNjUsMTQgQEAgdm9pZCBNZWRpYVBsYXllcjo6cmVxdWVyeU1lZGlhRW5naW5lcygp
CiAgICAgaW5zdGFsbGVkTWVkaWFFbmdpbmVzKFJlcXVlcnlFbmdpbmVzKTsKIH0KIAordm9pZCBN
ZWRpYVBsYXllcjo6c3RvcEJ5SGlnaGVyUHJpb0F1ZGlvU3RyZWFtKCkKK3sKKyAgICBpZiAoIW1f
cHJpdmF0ZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9wcml2YXRlLT5zdG9wQnlIaWdoZXJQ
cmlvQXVkaW9TdHJlYW0oKTsKK30KKwogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCmluZGV4IDYzY2UwOWY3OWI4NmY0YmIwODBm
OWE3OTM2Mjk4MTQ3NzZlYTc4MTcuLmJjODY5ZGVkMjE5MjYwMWQ2NWY5Yzc1OTYwNmIwN2E0ZWIz
OWU1MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlh
UGxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5
ZXIuaApAQCAtNDU1LDYgKzQ1NSw4IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyB2b2lkIHJlcXVl
cnlNZWRpYUVuZ2luZXMoKTsKIAorICAgIHZpcnR1YWwgdm9pZCBzdG9wQnlIaWdoZXJQcmlvQXVk
aW9TdHJlYW0oKTsKKwogcHJpdmF0ZToKICAgICBNZWRpYVBsYXllcihNZWRpYVBsYXllckNsaWVu
dCopOwogICAgIHZvaWQgbG9hZFdpdGhOZXh0TWVkaWFFbmdpbmUoTWVkaWFQbGF5ZXJGYWN0b3J5
Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBs
YXllclByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxh
eWVyUHJpdmF0ZS5oCmluZGV4IDVjNjY3NGQyZDNhNjM4Y2EzMDYxZDNmOTIyOWFhYWRmMjJhYTc4
NDAuLmEzOWY5ZmI2NTFkYTUyMzUxYzE5OTg4ODY2NDk3NDFlNzQ0YmQzZDMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5o
CkBAIC0xODgsNiArMTg4LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCByZXF1aXJlc1Rl
eHRUcmFja1JlcHJlc2VudGF0aW9uKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0
dWFsIHZvaWQgc2V0VGV4dFRyYWNrUmVwcmVzZW50YXRpb24oVGV4dFRyYWNrUmVwcmVzZW50YXRp
b24qKSB7IH0KICNlbmRpZgorCisgICAgdmlydHVhbCB2b2lkIHN0b3BCeUhpZ2hlclByaW9BdWRp
b1N0cmVhbSgpIHsgfQogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyLmNwcAppbmRleCAyYWRmZTc0ZmJkYjFmOGIyNjAzNzNiMWQ0NmExYzA4NTFj
NTc0NjQwLi5hYjlkMzBhNjBjYzY2ODZlMDcyOWYyM2NlMmM1MjMwNzY2ZjZkYjdhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtMTQyLDYg
KzE0Miw4IEBAIGJvb2wgaW5pdGlhbGl6ZUdTdHJlYW1lckFuZFJlZ2lzdGVyV2ViS2l0RWxlbWVu
dHMoKQogICAgICAgICByZXR1cm4gZ3N0X2VsZW1lbnRfcmVnaXN0ZXIoMCwgIndlYmtpdHdlYnNy
YyIsIEdTVF9SQU5LX1BSSU1BUlkgKyAxMDAsIFdFQktJVF9UWVBFX1dFQl9TUkMpOwogICAgIH0K
IAorICAgIGdfc2V0ZW52KCJQVUxTRV9QUk9QX21lZGlhLnJvbGUiLCAidmlkZW8iLCBUUlVFKTsK
KwogICAgIHJldHVybiB0cnVlOwogfQogCkBAIC0xODcsNiArMTg5LDcgQEAgTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIoTWVkaWFQbGF5ZXIq
IHBsYXllcikKICAgICAsIG1fdG90YWxCeXRlcygtMSkKICAgICAsIG1fb3JpZ2luYWxQcmVsb2Fk
V2FzQXV0b0FuZFdhc092ZXJyaWRkZW4oZmFsc2UpCiAgICAgLCBtX3ByZXNlcnZlc1BpdGNoKGZh
bHNlKQorICAgICwgbV9wcmV2aW91c1N0YXRlKEdTVF9TVEFURV9WT0lEX1BFTkRJTkcpCiB7CiB9
CiAKQEAgLTMxNywxNyArMzIwLDE2IEBAIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
OjpjaGFuZ2VQaXBlbGluZVN0YXRlKEdzdFN0YXRlIG5ld1N0YXRlKQogewogICAgIEFTU0VSVChu
ZXdTdGF0ZSA9PSBHU1RfU1RBVEVfUExBWUlORyB8fCBuZXdTdGF0ZSA9PSBHU1RfU1RBVEVfUEFV
U0VEKTsKIAotICAgIEdzdFN0YXRlIGN1cnJlbnRTdGF0ZTsKICAgICBHc3RTdGF0ZSBwZW5kaW5n
OwogCi0gICAgZ3N0X2VsZW1lbnRfZ2V0X3N0YXRlKG1fcGxheUJpbi5nZXQoKSwgJmN1cnJlbnRT
dGF0ZSwgJnBlbmRpbmcsIDApOwotICAgIExPR19NRURJQV9NRVNTQUdFKCJDdXJyZW50IHN0YXRl
OiAlcywgcGVuZGluZzogJXMiLCBnc3RfZWxlbWVudF9zdGF0ZV9nZXRfbmFtZShjdXJyZW50U3Rh
dGUpLCBnc3RfZWxlbWVudF9zdGF0ZV9nZXRfbmFtZShwZW5kaW5nKSk7Ci0gICAgaWYgKGN1cnJl
bnRTdGF0ZSA9PSBuZXdTdGF0ZSB8fCBwZW5kaW5nID09IG5ld1N0YXRlKQorICAgIGdzdF9lbGVt
ZW50X2dldF9zdGF0ZShtX3BsYXlCaW4uZ2V0KCksICZtX3ByZXZpb3VzU3RhdGUsICZwZW5kaW5n
LCAwKTsKKyAgICBMT0dfTUVESUFfTUVTU0FHRSgiQ3VycmVudCBzdGF0ZTogJXMsIGludGVuZGVk
ICVzLCBwZW5kaW5nOiAlcyIsIGdzdF9lbGVtZW50X3N0YXRlX2dldF9uYW1lKG1fcHJldmlvdXNT
dGF0ZSksIGdzdF9lbGVtZW50X3N0YXRlX2dldF9uYW1lKG5ld1N0YXRlKSwgZ3N0X2VsZW1lbnRf
c3RhdGVfZ2V0X25hbWUocGVuZGluZykpOworICAgIGlmIChtX3ByZXZpb3VzU3RhdGUgPT0gbmV3
U3RhdGUgfHwgcGVuZGluZyA9PSBuZXdTdGF0ZSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAg
ICBHc3RTdGF0ZUNoYW5nZVJldHVybiBzZXRTdGF0ZVJlc3VsdCA9IGdzdF9lbGVtZW50X3NldF9z
dGF0ZShtX3BsYXlCaW4uZ2V0KCksIG5ld1N0YXRlKTsKICAgICBHc3RTdGF0ZSBwYXVzZWRPclBs
YXlpbmcgPSBuZXdTdGF0ZSA9PSBHU1RfU1RBVEVfUExBWUlORyA/IEdTVF9TVEFURV9QQVVTRUQg
OiBHU1RfU1RBVEVfUExBWUlORzsKLSAgICBpZiAoY3VycmVudFN0YXRlICE9IHBhdXNlZE9yUGxh
eWluZyAmJiBzZXRTdGF0ZVJlc3VsdCA9PSBHU1RfU1RBVEVfQ0hBTkdFX0ZBSUxVUkUpIHsKKyAg
ICBpZiAobV9wcmV2aW91c1N0YXRlICE9IHBhdXNlZE9yUGxheWluZyAmJiBzZXRTdGF0ZVJlc3Vs
dCA9PSBHU1RfU1RBVEVfQ0hBTkdFX0ZBSUxVUkUpIHsKICAgICAgICAgbG9hZGluZ0ZhaWxlZChN
ZWRpYVBsYXllcjo6RW1wdHkpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQpAQCAtNjI3
LDYgKzYyOSw3IEBAIGdib29sZWFuIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6aGFuZGxl
TWVzc2FnZShHc3RNZXNzYWdlKiBtZXNzYWdlKQogICAgIGJvb2wgaXNzdWVFcnJvciA9IHRydWU7
CiAgICAgYm9vbCBhdHRlbXB0TmV4dExvY2F0aW9uID0gZmFsc2U7CiAgICAgY29uc3QgR3N0U3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUgPSBnc3RfbWVzc2FnZV9nZXRfc3RydWN0dXJlKG1lc3NhZ2UpOwor
ICAgIEdzdFN0YXRlIHJlcXVlc3RlZFN0YXRlOwogCiAgICAgaWYgKHN0cnVjdHVyZSkgewogICAg
ICAgICBjb25zdCBnY2hhciogbWVzc2FnZVR5cGVOYW1lID0gZ3N0X3N0cnVjdHVyZV9nZXRfbmFt
ZShzdHJ1Y3R1cmUpOwpAQCAtNzEzLDYgKzcxNiwxNyBAQCBnYm9vbGVhbiBNZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXI6OmhhbmRsZU1lc3NhZ2UoR3N0TWVzc2FnZSogbWVzc2FnZSkKICAgICAg
ICAgTE9HX01FRElBX01FU1NBR0UoIkR1cmF0aW9uIGNoYW5nZWQiKTsKICAgICAgICAgZHVyYXRp
b25DaGFuZ2VkKCk7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgR1NUX01FU1NBR0VfUkVRVUVT
VF9TVEFURToKKyAgICAgICAgZ3N0X21lc3NhZ2VfcGFyc2VfcmVxdWVzdF9zdGF0ZShtZXNzYWdl
LCAmcmVxdWVzdGVkU3RhdGUpOworICAgICAgICBMT0dfTUVESUFfTUVTU0FHRSgiJXMgUmVxdWVz
dGVkIHN0YXRlIGNoYW5nZSB0byAlcyIsIGdzdF9lbGVtZW50X2dldF9uYW1lKEdTVF9NRVNTQUdF
X1NSQyhtZXNzYWdlKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgIGdzdF9lbGVtZW50X3N0
YXRlX2dldF9uYW1lKHJlcXVlc3RlZFN0YXRlKSk7CisgICAgICAgIGlmIChyZXF1ZXN0ZWRTdGF0
ZSA8IG1fcHJldmlvdXNTdGF0ZSkgeworICAgICAgICAgICAgTE9HX01FRElBX01FU1NBR0UoIkNo
YW5naW5nIHN0YXRlIHRvICVzIGZyb20gJXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZ3N0X2VsZW1lbnRfc3RhdGVfZ2V0X25hbWUocmVxdWVzdGVkU3RhdGUpLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZ3N0X2VsZW1lbnRfc3RhdGVfZ2V0X25hbWUobV9wcmV2aW91
c1N0YXRlKSk7CisgICAgICAgICAgICBjaGFuZ2VQaXBlbGluZVN0YXRlKHJlcXVlc3RlZFN0YXRl
KTsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAgICBMT0df
TUVESUFfTUVTU0FHRSgiVW5oYW5kbGVkIEdTdHJlYW1lciBtZXNzYWdlIHR5cGU6ICVzIiwKICAg
ICAgICAgICAgICAgICAgICAgR1NUX01FU1NBR0VfVFlQRV9OQU1FKG1lc3NhZ2UpKTsKQEAgLTk2
Miw2ICs5NzYsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6dXBkYXRlU3Rh
dGVzKCkKICAgICAgICAgJnN0YXRlLCAmcGVuZGluZywgMjUwICogR1NUX05TRUNPTkQpOwogCiAg
ICAgYm9vbCBzaG91bGRVcGRhdGVBZnRlclNlZWsgPSBmYWxzZTsKKyAgICBib29sIHNob3VsZFVw
ZGF0ZVBsYXliYWNrU3RhdGUgPSBmYWxzZTsKICAgICBzd2l0Y2ggKHJldCkgewogICAgIGNhc2Ug
R1NUX1NUQVRFX0NIQU5HRV9TVUNDRVNTOgogICAgICAgICBMT0dfTUVESUFfTUVTU0FHRSgiU3Rh
dGU6ICVzLCBwZW5kaW5nOiAlcyIsCkBAIC0xMDQ4LDYgKzEwNjMsMjQgQEAgdm9pZCBNZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXI6OnVwZGF0ZVN0YXRlcygpCiAgICAgICAgICAgICBtX3NlZWtp
bmcgPSBmYWxzZTsKICAgICAgICAgfQogCisgICAgICAgIC8vIFdlIGNvbnNpZGVyIGEgc3RhdGUg
Y2hhbmdlIHdoZW4gZ29pbmcgdG8gR1NUX1NUQVRFX1BMQVlJTkcKKyAgICAgICAgLy8gb3IgdG8g
R1NUX1NUQVRFX1BBVVNFRCBmcm9tIEdTVF9TVEFURV9QTEFZSU5HLiBXZSBhbHNvCisgICAgICAg
IC8vIGNvbnNpZGVyIEdTVF9TVEFURV9OVUxMIGJlY2F1c2UgcGxheWJpbjIgY2FuIGF2b2lkCisg
ICAgICAgIC8vIHJlcG9ydGluZyBzdGF0ZSBjaGFuZ2VzIHdoZW4gdHJhbnNpdGlvbmluZyB0bwor
ICAgICAgICAvLyBHU1RfU1RBVEVfTlVMTCBidXQgd2UgZG8gbm90IGNvbnNpZGVyIEdTVF9TVEFU
RV9SRUFEWQorICAgICAgICAvLyBiZWNhdXNlIGlmIGl0IGlzIG5vdyBHU1RfU1RBVEVfUkVBRFkg
aXQgbWVhbnMgdGhhdCBpdCBoYXMKKyAgICAgICAgLy8gYWxyZWFkeSB0cmFuc2l0aW9uZWQgdGhy
b3VnaCBHU1RfU1RBVEVfUEFVU0VEIGFuZCB0aGF0J3MKKyAgICAgICAgLy8gYWxyZWFkeSBjb250
ZW1wbGF0ZWQuCisgICAgICAgIGlmICgobV9wcmV2aW91c1N0YXRlID09IEdTVF9TVEFURV9QQVVT
RUQKKyAgICAgICAgICAgICAmJiBzdGF0ZSA9PSBHU1RfU1RBVEVfUExBWUlORykKKyAgICAgICAg
ICAgIHx8ICgoc3RhdGUgPT0gR1NUX1NUQVRFX1BBVVNFRCB8fCBzdGF0ZSA9PSBHU1RfU1RBVEVf
TlVMTCkKKyAgICAgICAgICAgICAgICAmJiBtX3ByZXZpb3VzU3RhdGUgPT0gR1NUX1NUQVRFX1BM
QVlJTkcpKSB7CisgICAgICAgICAgICBzaG91bGRVcGRhdGVQbGF5YmFja1N0YXRlID0gdHJ1ZTsK
KyAgICAgICAgICAgIG1fcHJldmlvdXNTdGF0ZSA9IHN0YXRlOworICAgICAgICAgICAgTE9HX01F
RElBX01FU1NBR0UoIlN0YXRlIGNoYW5nZSBjb21wbGV0ZWQgdG8gJXMiLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZ3N0X2VsZW1lbnRfc3RhdGVfZ2V0X25hbWUobV9wcmV2aW91c1N0
YXRlKSk7CisgICAgICAgIH0KKwogICAgICAgICBicmVhazsKICAgICBjYXNlIEdTVF9TVEFURV9D
SEFOR0VfQVNZTkM6CiAgICAgICAgIExPR19NRURJQV9NRVNTQUdFKCJBc3luYzogU3RhdGU6ICVz
LCBwZW5kaW5nOiAlcyIsCkBAIC0xMTIwLDYgKzExNTMsMTEgQEAgdm9pZCBNZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXI6OnVwZGF0ZVN0YXRlcygpCiAgICAgaWYgKHNob3VsZFVwZGF0ZUFmdGVy
U2VlaykKICAgICAgICAgdGltZUNoYW5nZWQoKTsKIAorICAgIGlmIChzaG91bGRVcGRhdGVQbGF5
YmFja1N0YXRlKSB7CisgICAgICAgIExPR19NRURJQV9NRVNTQUdFKCJTdGF0ZSBjaGFuZ2VkIHRv
ICVzIiwKKyAgICAgICAgICAgIGdzdF9lbGVtZW50X3N0YXRlX2dldF9uYW1lKHN0YXRlKSk7Cisg
ICAgICAgIG1fcGxheWVyLT5wbGF5YmFja1N0YXRlQ2hhbmdlZCgpOworICAgIH0KICAgICBpZiAo
bV9uZXR3b3JrU3RhdGUgIT0gb2xkTmV0d29ya1N0YXRlKSB7CiAgICAgICAgIExPR19NRURJQV9N
RVNTQUdFKCJOZXR3b3JrIFN0YXRlIENoYW5nZWQgZnJvbSAldSB0byAldSIsCiAgICAgICAgICAg
ICBvbGROZXR3b3JrU3RhdGUsIG1fbmV0d29ya1N0YXRlKTsKQEAgLTE1MzksNiArMTU3NywxOCBA
QCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y3JlYXRlR1NUUGxheUJpbigpCiAg
ICAgY3JlYXRlQXVkaW9TaW5rKCk7CiB9CiAKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyOjpzdG9wQnlIaWdoZXJQcmlvQXVkaW9TdHJlYW0oKQoreworICAgIExPR19NRURJQV9NRVNT
QUdFKCJFbWl0dGluZyBHU1RfTUVTU0FHRV9SRVFVRVNUX1NUQVRFIHdpdGggIgorICAgICAgICAg
ICAgICAgICAgICAgICJHU1RfU1RBVEVfUEFVU0VEIGluIHRoZSBhdWRpbyBzaW5rIik7CisgICAg
R3N0RWxlbWVudCAqcGxheUJpbiA9IG1fcGxheUJpbi5nZXQoKTsKKyAgICBHc3RCdXMqIGJ1cyA9
IGdzdF9waXBlbGluZV9nZXRfYnVzKEdTVF9QSVBFTElORShwbGF5QmluKSk7CisgICAgR3N0TWVz
c2FnZSAqbWVzc2FnZSA9IGdzdF9tZXNzYWdlX25ld19yZXF1ZXN0X3N0YXRlKEdTVF9PQkpFQ1Qo
cGxheUJpbiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEdTVF9TVEFURV9QQVVTRUQpOworICAgIGdzdF9idXNfcG9zdChidXMsIG1lc3Nh
Z2UpOworICAgIGdzdF9tZXNzYWdlX3VucmVmKG1lc3NhZ2UpOworfQorCiB9CiAKICNlbmRpZiAv
LyBVU0UoR1NUUkVBTUVSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lci5oCmluZGV4IDhhMWZkNDg2MDU0MjRiNTEwMWYwNDllMWZkMDVjNTBlYzEwYTY0MGUuLmZh
M2FiZjc0YjNlMDMwZjZlYzU0ZDJmYTZmYmNjYzYxZDA3ODIyZWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgKQEAgLTg4LDYgKzg4LDggQEAgcHVibGlj
OgogICAgIHZvaWQgc291cmNlQ2hhbmdlZCgpOwogICAgIEdzdEVsZW1lbnQqIGF1ZGlvU2luaygp
IGNvbnN0OwogCisgICAgdm9pZCBzdG9wQnlIaWdoZXJQcmlvQXVkaW9TdHJlYW0oKTsKKwogcHJp
dmF0ZToKICAgICBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIoTWVkaWFQbGF5ZXIqKTsKIApA
QCAtMTUzLDYgKzE1NSw3IEBAIHByaXZhdGU6CiAgICAgS1VSTCBtX3VybDsKICAgICBib29sIG1f
b3JpZ2luYWxQcmVsb2FkV2FzQXV0b0FuZFdhc092ZXJyaWRkZW47CiAgICAgYm9vbCBtX3ByZXNl
cnZlc1BpdGNoOworICAgIEdzdFN0YXRlIG1fcHJldmlvdXNTdGF0ZTsKIH07CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCAzODM0NDEwOTE2MzAxMjkzN2M5ZjU1NWMw
ZTU3Mjg0OTM4ZjNmZmE3Li4xNjc0YTkzMGE2OWI2ZjA0MDY4YzRiMjRhOGNjYmU3ZWU0ZjVkYmZm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC00OCw2ICs0OCw3IEBACiAj
aW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKICNpbmNsdWRlICJIVE1M
Q29udGVudEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MTWVkaWFFbGVtZW50LmgiCiAjaW5jbHVk
ZSAiSFRNTElucHV0RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUg
IkhUTUxUZXh0QXJlYUVsZW1lbnQuaCIKQEAgLTE5OTgsNCArMTk5OSwxMCBAQCB2b2lkIEludGVy
bmFsczo6aW5pdGlhbGl6ZU1vY2tDRE0oKQogfQogI2VuZGlmCiAKK3ZvaWQgSW50ZXJuYWxzOjpz
dG9wRWxlbWVudEJ5SGlnaGVyUHJpb0F1ZGlvU3RyZWFtKE5vZGUgKm5vZGUpCit7CisgICAgSFRN
TE1lZGlhRWxlbWVudCogZWxlbWVudCA9IHRvTWVkaWFFbGVtZW50KG5vZGUpOworICAgIGVsZW1l
bnQtPnN0b3BCeUhpZ2hlclByaW9BdWRpb1N0cmVhbSgpOworfQorCiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuaAppbmRleCAzY2FkYTE5YzMzYmM2OGEzMTg5ODE5NGQyOGZjOGE5MzU4OTk4
Nzc5Li42MjAzMmFjMDVlNWFlZTYyZWQ0ZWJkOWViMDNlYTNlMzYwZDQ5NmFmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmgKQEAgLTI4OSw2ICsyODksOCBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBlbmFibGVNb2NrU3BlZWNoU3ludGhlc2l6ZXIoKTsKICNlbmRpZgogICAgICAgICAgICAgICAg
ICAgICAKKyAgICB2b2lkIHN0b3BFbGVtZW50QnlIaWdoZXJQcmlvQXVkaW9TdHJlYW0oTm9kZSop
OworCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IEludGVybmFscyhEb2N1bWVudCopOwogICAgIERv
Y3VtZW50KiBjb250ZXh0RG9jdW1lbnQoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmlkbAppbmRleCA4NWVmZDk0NWJkOTU3Nzc5YWVjZjQyZDEzOTkwYzA0ODQyMTgzOTc0Li44
ZDM1OWJjMDI1ZDMzZTM4M2I1NTQyNDg1MWU4ZGQ0ZmRmY2IxYzVlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbHMuaWRsCkBAIC0yNTAsNiArMjUwLDggQEAKIAogICAgIHZvaWQgc2V0VXNl
c092ZXJsYXlTY3JvbGxiYXJzKGluIGJvb2xlYW4gZW5hYmxlZCk7CiAKKyAgICB2b2lkIHN0b3BF
bGVtZW50QnlIaWdoZXJQcmlvQXVkaW9TdHJlYW0oaW4gTm9kZSBub2RlKTsKKwogICAgIFtDb25k
aXRpb25hbD1FTkNSWVBURURfTUVESUFfVjJdIHZvaWQgaW5pdGlhbGl6ZU1vY2tDRE0oKTsKICAg
ICAKICAgICBbQ29uZGl0aW9uYWw9U1BFRUNIX1NZTlRIRVNJU10gdm9pZCBlbmFibGVNb2NrU3Bl
ZWNoU3ludGhlc2l6ZXIoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA2MWM0OTRkNjlmZTgxZDNmNjZkZTI5OWEyYzk5ZWJi
OTc1MTRiN2Q0Li4xNjg0M2Q3NDM0ZTE3ODhhOGIxZTk5ODkzOGQ4MTM3M2E5NWI3NmZlIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTIgQEAKKzIwMTMtMDItMjEgIFhhYmllciBSb2RyaWd1ZXogQ2FsdmFyICA8
Y2FsdmFyaXNAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1N0cmVhbWVyXSBEb3duc3RyZWFtIHN0
YXRlIGNoYW5nZSByZXF1ZXN0IHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTkxNjExCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBtZWRpYS9tZWRpYS1oaWdoZXItcHJpby1hdWRpby1zdHJlYW0u
aHRtbDogQWRkZWQuCisKIDIwMTMtMDItMjAgIE1pa2UgV2VzdCAgPG1rd3N0QGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBNb3VzZXVwIGV2ZW50IGRvZXMgbm90IGZpcmUgb24gU2Nyb2xsIEJhcgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtaGlnaGVyLXByaW8tYXVkaW8tc3Ry
ZWFtLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1oaWdoZXItcHJpby1hdWRpby1zdHJl
YW0uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi43MjYzOWUzYjc0OWUzZTU2M2FkMjczZjFlN2FiNmVmMWU4Y2Yw
OGU2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtaGlnaGVyLXBy
aW8tYXVkaW8tc3RyZWFtLmh0bWwKQEAgLTAsMCArMSw0NiBAQAorPCFET0NUWVBFIGh0bWw+Cis8
aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHNjcmlwdCBzcmM9bWVkaWEtZmlsZS5qcz48L3Nj
cmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9dmlkZW8tdGVzdC5qcz48L3NjcmlwdD4KKworICAg
ICAgICA8c2NyaXB0PgorICAgICAgICAgICAgdmFyIG1lZGlhRWxlbWVudDsKKworICAgICAgICAg
ICAgZnVuY3Rpb24gc3RhcnQoKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIG1lZGlh
RWxlbWVudCA9IG5ldyBBdWRpbygpOworICAgICAgICAgICAgICAgIHdhaXRGb3JFdmVudCgnZXJy
b3InKTsKKyAgICAgICAgICAgICAgICB3YWl0Rm9yRXZlbnQoJ2xvYWRlZG1ldGFkYXRhJyk7Cisg
ICAgICAgICAgICAgICAgd2FpdEZvckV2ZW50KCdjYW5wbGF5Jyk7CisgICAgICAgICAgICAgICAg
d2FpdEZvckV2ZW50KCdwbGF5Jyk7CisgICAgICAgICAgICAgICAgd2FpdEZvckV2ZW50KCdwbGF5
aW5nJywgaW5qZWN0RXZlbnQpOworICAgICAgICAgICAgICAgIG1lZGlhRWxlbWVudC5zcmMgPSBm
aW5kTWVkaWFGaWxlKCdhdWRpbycsICdjb250ZW50L3Rlc3QnKTsKKyAgICAgICAgICAgICAgICBt
ZWRpYUVsZW1lbnQucGxheSgpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmdW5jdGlv
biBpbmplY3RFdmVudCgpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdGVzdEV4cGVj
dGVkKCJtZWRpYUVsZW1lbnQucGF1c2VkIiwgZmFsc2UpOworCisgICAgICAgICAgICAgICAgaW50
ZXJuYWxzLnN0b3BFbGVtZW50QnlIaWdoZXJQcmlvQXVkaW9TdHJlYW0obWVkaWFFbGVtZW50KTsK
KyAgICAgICAgICAgICAgICB3YWl0Rm9yRXZlbnQoInBhdXNlZCIsIHBhdXNlZCk7CisgICAgICAg
ICAgICB9CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIHBhdXNlZCgpCisgICAgICAgICAgICB7Cisg
ICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJtZWRpYUVsZW1lbnQucGF1c2VkIiwgdHJ1ZSk7
CisgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJtZWRpYUVsZW1lbnQuZW5kZWQiLCBmYWxz
ZSk7CisgICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCIiKTsKKyAgICAgICAgICAgICAgICBl
bmRUZXN0KCk7CisgICAgICAgICAgICB9CisgICAgICAgIDwvc2NyaXB0PgorICAgIDwvaGVhZD4K
KyAgICA8Ym9keSBvbmxvYWQ9InN0YXJ0KCkiPgorICAgICAgICA8cD48Yj5UZXN0IHBhdXNlZCBi
eTo8L2I+CisgICAgICAgIDxvbD4KKyAgICAgICAgICAgIDxsaT5HZXR0aW5nIGEgaGlnaGVyIHBy
aW9yaXR5IGF1ZGlvIHN0cmVhbS48L2xpPgorICAgICAgICA8L29sPgorICAgICAgICA8L3A+Cisg
ICAgPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189551</attachid>
            <date>2013-02-21 10:22:46 -0800</date>
            <delta_ts>2013-02-22 07:14:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-91611-20130221191906.patch</filename>
            <type>text/plain</type>
            <size>16854</size>
            <attacher name="Xabier Rodríguez Calvar">calvaris</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzNTkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzNjN2Q5MzVkNzAyMTZm
NDk5MTc5YzZlZjM0MTlmZGI1YjYyY2MyZC4uZjYzYzY3MmFkZTViOTdlNjAyYzI2ZGU5YjRmYWNl
NjZjNDJkYTRmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDEzLTAyLTIxICBYYWJp
ZXIgUm9kcmlndWV6IENhbHZhciAgPGNhbHZhcmlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dT
dHJlYW1lcl0gRG93bnN0cmVhbSBzdGF0ZSBjaGFuZ2UgcmVxdWVzdCBzdXBwb3J0CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MTYxMQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IG1lZGlhL21lZGlh
LWhpZ2hlci1wcmlvLWF1ZGlvLXN0cmVhbS5odG1sCisKKyAgICAgICAgKiBodG1sL0hUTUxNZWRp
YUVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpzdG9wQnlI
aWdoZXJQcmlvQXVkaW9TdHJlYW0pOiBBZGRlZCB0bworICAgICAgICBkZWxlZ2F0ZSBvbiB0aGUg
bWVkaWEgcGxheWVyIHRvIHN0b3AgYmVjYXVzZSBvZiBhIHN0cmVhbSB3aXRoCisgICAgICAgIGJp
Z2dlciBwcmlvcml0eS4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAoTWVkaWFQbGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFQbGF5ZXI6OnN0b3BCeUhpZ2hlclByaW9BdWRpb1N0cmVhbSk6IEFkZGVkIHRvCisgICAgICAg
IGRlbGVnYXRlIG9uIHRoZSBwcml2YXRlIHRvIHN0b3AgYmVjYXVzZSBvZiBhIHN0cmVhbSB3aXRo
IGJpZ2dlcgorICAgICAgICBwcmlvcml0eS4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9N
ZWRpYVBsYXllclByaXZhdGUuaDoKKyAgICAgICAgKE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFj
ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U6OnN0b3BC
eUhpZ2hlclByaW9BdWRpb1N0cmVhbSk6CisgICAgICAgIEFkZGVkIGRlZmF1bHQgZW1wdHkgbWV0
aG9kIGluIHRoZSBjb21tb24gcHJpdmF0ZSBoZWFkZXIuCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjppbml0aWFsaXplR1N0cmVhbWVyQW5kUmVnaXN0ZXJXZWJLaXRFbGVtZW50cyk6
IFNldHRpbmcKKyAgICAgICAgdGhlIHB1bHNlIHJvbGUgdG8gZ2V0IHRoZSByZXF1ZXN0IHN0YXRl
IGV2ZW50cyBmcm9tIHB1bHNlc2luay4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lcjo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyKToKKyAgICAgICAgSW5p
dGlhbGl6YXRpb24gb2YgdGhlIG5ldyBhdHRyaWJ1dGUKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y2hhbmdlUGlwZWxpbmVTdGF0ZSk6CisgICAgICAgIEtl
ZXBpbmcgdGhlIGN1cnJlbnQgc3RhdGUuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXI6OmhhbmRsZU1lc3NhZ2UpOiBSZWFjdGluZyB0bworICAgICAgICB0aGUg
UkVRVUVTVF9TVEFURSBtZXNzYWdlCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXI6OnVwZGF0ZVN0YXRlcyk6IEF2b2lkaW5nCisgICAgICAgIHVwZGF0aW5nIHRo
ZSBzdGF0ZSB0d2ljZS4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lcjo6c3RvcEJ5SGlnaGVyUHJpb0F1ZGlvU3RyZWFtKToKKyAgICAgICAgQWRkZWQuIEluamVj
dHMgdGhlIFJFUVVFU1RfU1RBVEUgbWVzc2FnZSB0byB0aGUgcGlwZWxpbmUuCisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5o
OgorICAgICAgICAoTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyKTogQWRkZWQgbmV3IG1ldGhv
ZCBhbmQgYXR0cmlidXRlLgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmlkbDoKKyAgICAg
ICAgKiB0ZXN0aW5nL0ludGVybmFscy5oOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNw
cDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpzdG9w
RWxlbWVudEJ5SGlnaGVyUHJpb0F1ZGlvU3RyZWFtKTogQWRkZWQgdG8KKyAgICAgICAgY2FsbCB0
aGUgbWV0aG9kIHRvIHN0b3AgdGhlIGVsZW1lbnQgYmVjYXVzZSBvZiBhIGhpZ2hlciBwcmlvCisg
ICAgICAgIHN0cmVhbSBhdCB0aGUgdGVzdHMuCisKIDIwMTMtMDItMjEgIEFsYmVydG8gR2FyY2lh
ICA8YWxiZ2FyY2lhQHJpbS5jb20+CiAKICAgICAgICAgW0JsYWNrQmVycnldIEZpeCBhY2Nlc3Mg
dG8gUmVzb3VyY2VIYW5kbGU6OmNvbnRleHQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVs
ZW1lbnQuY3BwCmluZGV4IDJiYzRlNmIxNDFlNWExNTZmODUxZDljZWVmOTFhYmJjMTJhMGM0OWYu
LjQ3NDY1MDJhMTU2N2FiNzk4ZTI1NWI2ZjVlMmJjNmU5N2FmODJlZDQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtNDg2Miw1ICs0ODYyLDEyIEBAIHZvaWQg
SFRNTE1lZGlhRWxlbWVudDo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVt
b3J5T2JqZWN0SW5mbykgY29uCiAKIH0KIAordm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzdG9wQnlI
aWdoZXJQcmlvQXVkaW9TdHJlYW0oKQoreworICAgIGlmICghbV9wbGF5ZXIpCisgICAgICAgIHJl
dHVybjsKKyAgICBtX3BsYXllci0+c3RvcEJ5SGlnaGVyUHJpb0F1ZGlvU3RyZWFtKCk7Cit9CisK
IH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVt
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAppbmRleCBmYTFl
M2YyODRlZTE5NmJmYjIxYzIyYTRmOGY3MTcyZTQzMTYwZDQ1Li4zM2Y1ZGE1MTg2MzE5MThlMTgw
NWQwYjZiMGEyMzJjMGJkOTE5YjViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxNZWRpYUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1l
bnQuaApAQCAtMzQ0LDYgKzM0NCw4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCByZXBv
cnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29uc3Q7CiAKKyAgICB2aXJ0dWFsIHZv
aWQgc3RvcEJ5SGlnaGVyUHJpb0F1ZGlvU3RyZWFtKCk7CisKIHByb3RlY3RlZDoKICAgICBIVE1M
TWVkaWFFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCosIGJvb2wpOwogICAg
IHZpcnR1YWwgfkhUTUxNZWRpYUVsZW1lbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAppbmRleCAwYjI1NDRmOTIxNjE4ZjJlMTMxMDU4
OWIwOTZhNjFmOGIwNWY2OTkxLi41NWI4MmU5OTE5ZTA1OWRkOTk1OWMyZGUwYzZkNjkwODExYTA4
OTU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBs
YXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5
ZXIuY3BwCkBAIC0xMTY1LDYgKzExNjUsMTQgQEAgdm9pZCBNZWRpYVBsYXllcjo6cmVxdWVyeU1l
ZGlhRW5naW5lcygpCiAgICAgaW5zdGFsbGVkTWVkaWFFbmdpbmVzKFJlcXVlcnlFbmdpbmVzKTsK
IH0KIAordm9pZCBNZWRpYVBsYXllcjo6c3RvcEJ5SGlnaGVyUHJpb0F1ZGlvU3RyZWFtKCkKK3sK
KyAgICBpZiAoIW1fcHJpdmF0ZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9wcml2YXRlLT5z
dG9wQnlIaWdoZXJQcmlvQXVkaW9TdHJlYW0oKTsKK30KKwogfQogCiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCmluZGV4IDYzY2UwOWY3
OWI4NmY0YmIwODBmOWE3OTM2Mjk4MTQ3NzZlYTc4MTcuLmJjODY5ZGVkMjE5MjYwMWQ2NWY5Yzc1
OTYwNmIwN2E0ZWIzOWU1MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL01lZGlhUGxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvTWVkaWFQbGF5ZXIuaApAQCAtNDU1LDYgKzQ1NSw4IEBAIHB1YmxpYzoKIAogICAgIHN0YXRp
YyB2b2lkIHJlcXVlcnlNZWRpYUVuZ2luZXMoKTsKIAorICAgIHZpcnR1YWwgdm9pZCBzdG9wQnlI
aWdoZXJQcmlvQXVkaW9TdHJlYW0oKTsKKwogcHJpdmF0ZToKICAgICBNZWRpYVBsYXllcihNZWRp
YVBsYXllckNsaWVudCopOwogICAgIHZvaWQgbG9hZFdpdGhOZXh0TWVkaWFFbmdpbmUoTWVkaWFQ
bGF5ZXJGYWN0b3J5Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9NZWRpYVBsYXllclByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oCmluZGV4IDVjNjY3NGQyZDNhNjM4Y2EzMDYxZDNmOTIy
OWFhYWRmMjJhYTc4NDAuLmEzOWY5ZmI2NTFkYTUyMzUxYzE5OTg4ODY2NDk3NDFlNzQ0YmQzZDMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVy
UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxh
eWVyUHJpdmF0ZS5oCkBAIC0xODgsNiArMTg4LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9v
bCByZXF1aXJlc1RleHRUcmFja1JlcHJlc2VudGF0aW9uKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7
IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0VGV4dFRyYWNrUmVwcmVzZW50YXRpb24oVGV4dFRyYWNr
UmVwcmVzZW50YXRpb24qKSB7IH0KICNlbmRpZgorCisgICAgdmlydHVhbCB2b2lkIHN0b3BCeUhp
Z2hlclByaW9BdWRpb1N0cmVhbSgpIHsgfQogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCAyYWRmZTc0ZmJkYjFmOGIyNjAzNzNi
MWQ0NmExYzA4NTFjNTc0NjQwLi45ODc3ZGUzOThiOTVhNDM3ZGQxZTVlNWZiMGI3NDA4ZjI5ZTM5
ZWY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNw
cApAQCAtMTQyLDYgKzE0Miw4IEBAIGJvb2wgaW5pdGlhbGl6ZUdTdHJlYW1lckFuZFJlZ2lzdGVy
V2ViS2l0RWxlbWVudHMoKQogICAgICAgICByZXR1cm4gZ3N0X2VsZW1lbnRfcmVnaXN0ZXIoMCwg
IndlYmtpdHdlYnNyYyIsIEdTVF9SQU5LX1BSSU1BUlkgKyAxMDAsIFdFQktJVF9UWVBFX1dFQl9T
UkMpOwogICAgIH0KIAorICAgIGdfc2V0ZW52KCJQVUxTRV9QUk9QX21lZGlhLnJvbGUiLCAidmlk
ZW8iLCBUUlVFKTsKKwogICAgIHJldHVybiB0cnVlOwogfQogCkBAIC0xODcsNiArMTg5LDcgQEAg
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIo
TWVkaWFQbGF5ZXIqIHBsYXllcikKICAgICAsIG1fdG90YWxCeXRlcygtMSkKICAgICAsIG1fb3Jp
Z2luYWxQcmVsb2FkV2FzQXV0b0FuZFdhc092ZXJyaWRkZW4oZmFsc2UpCiAgICAgLCBtX3ByZXNl
cnZlc1BpdGNoKGZhbHNlKQorICAgICwgbV9wcmV2aW91c1N0YXRlKEdTVF9TVEFURV9WT0lEX1BF
TkRJTkcpCiB7CiB9CiAKQEAgLTMxNywxNyArMzIwLDE2IEBAIGJvb2wgTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyOjpjaGFuZ2VQaXBlbGluZVN0YXRlKEdzdFN0YXRlIG5ld1N0YXRlKQogewog
ICAgIEFTU0VSVChuZXdTdGF0ZSA9PSBHU1RfU1RBVEVfUExBWUlORyB8fCBuZXdTdGF0ZSA9PSBH
U1RfU1RBVEVfUEFVU0VEKTsKIAotICAgIEdzdFN0YXRlIGN1cnJlbnRTdGF0ZTsKICAgICBHc3RT
dGF0ZSBwZW5kaW5nOwogCi0gICAgZ3N0X2VsZW1lbnRfZ2V0X3N0YXRlKG1fcGxheUJpbi5nZXQo
KSwgJmN1cnJlbnRTdGF0ZSwgJnBlbmRpbmcsIDApOwotICAgIExPR19NRURJQV9NRVNTQUdFKCJD
dXJyZW50IHN0YXRlOiAlcywgcGVuZGluZzogJXMiLCBnc3RfZWxlbWVudF9zdGF0ZV9nZXRfbmFt
ZShjdXJyZW50U3RhdGUpLCBnc3RfZWxlbWVudF9zdGF0ZV9nZXRfbmFtZShwZW5kaW5nKSk7Ci0g
ICAgaWYgKGN1cnJlbnRTdGF0ZSA9PSBuZXdTdGF0ZSB8fCBwZW5kaW5nID09IG5ld1N0YXRlKQor
ICAgIGdzdF9lbGVtZW50X2dldF9zdGF0ZShtX3BsYXlCaW4uZ2V0KCksICZtX3ByZXZpb3VzU3Rh
dGUsICZwZW5kaW5nLCAwKTsKKyAgICBMT0dfTUVESUFfTUVTU0FHRSgiQ3VycmVudCBzdGF0ZTog
JXMsIGludGVuZGVkICVzLCBwZW5kaW5nOiAlcyIsIGdzdF9lbGVtZW50X3N0YXRlX2dldF9uYW1l
KG1fcHJldmlvdXNTdGF0ZSksIGdzdF9lbGVtZW50X3N0YXRlX2dldF9uYW1lKG5ld1N0YXRlKSwg
Z3N0X2VsZW1lbnRfc3RhdGVfZ2V0X25hbWUocGVuZGluZykpOworICAgIGlmIChtX3ByZXZpb3Vz
U3RhdGUgPT0gbmV3U3RhdGUgfHwgcGVuZGluZyA9PSBuZXdTdGF0ZSkKICAgICAgICAgcmV0dXJu
IHRydWU7CiAKICAgICBHc3RTdGF0ZUNoYW5nZVJldHVybiBzZXRTdGF0ZVJlc3VsdCA9IGdzdF9l
bGVtZW50X3NldF9zdGF0ZShtX3BsYXlCaW4uZ2V0KCksIG5ld1N0YXRlKTsKICAgICBHc3RTdGF0
ZSBwYXVzZWRPclBsYXlpbmcgPSBuZXdTdGF0ZSA9PSBHU1RfU1RBVEVfUExBWUlORyA/IEdTVF9T
VEFURV9QQVVTRUQgOiBHU1RfU1RBVEVfUExBWUlORzsKLSAgICBpZiAoY3VycmVudFN0YXRlICE9
IHBhdXNlZE9yUGxheWluZyAmJiBzZXRTdGF0ZVJlc3VsdCA9PSBHU1RfU1RBVEVfQ0hBTkdFX0ZB
SUxVUkUpIHsKKyAgICBpZiAobV9wcmV2aW91c1N0YXRlICE9IHBhdXNlZE9yUGxheWluZyAmJiBz
ZXRTdGF0ZVJlc3VsdCA9PSBHU1RfU1RBVEVfQ0hBTkdFX0ZBSUxVUkUpIHsKICAgICAgICAgbG9h
ZGluZ0ZhaWxlZChNZWRpYVBsYXllcjo6RW1wdHkpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgfQpAQCAtNjI3LDYgKzYyOSw3IEBAIGdib29sZWFuIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lcjo6aGFuZGxlTWVzc2FnZShHc3RNZXNzYWdlKiBtZXNzYWdlKQogICAgIGJvb2wgaXNzdWVF
cnJvciA9IHRydWU7CiAgICAgYm9vbCBhdHRlbXB0TmV4dExvY2F0aW9uID0gZmFsc2U7CiAgICAg
Y29uc3QgR3N0U3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBnc3RfbWVzc2FnZV9nZXRfc3RydWN0dXJl
KG1lc3NhZ2UpOworICAgIEdzdFN0YXRlIHJlcXVlc3RlZFN0YXRlOwogCiAgICAgaWYgKHN0cnVj
dHVyZSkgewogICAgICAgICBjb25zdCBnY2hhciogbWVzc2FnZVR5cGVOYW1lID0gZ3N0X3N0cnVj
dHVyZV9nZXRfbmFtZShzdHJ1Y3R1cmUpOwpAQCAtNzEzLDYgKzcxNiwxNCBAQCBnYm9vbGVhbiBN
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmhhbmRsZU1lc3NhZ2UoR3N0TWVzc2FnZSogbWVz
c2FnZSkKICAgICAgICAgTE9HX01FRElBX01FU1NBR0UoIkR1cmF0aW9uIGNoYW5nZWQiKTsKICAg
ICAgICAgZHVyYXRpb25DaGFuZ2VkKCk7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgR1NUX01F
U1NBR0VfUkVRVUVTVF9TVEFURToKKyAgICAgICAgZ3N0X21lc3NhZ2VfcGFyc2VfcmVxdWVzdF9z
dGF0ZShtZXNzYWdlLCAmcmVxdWVzdGVkU3RhdGUpOworICAgICAgICBpZiAocmVxdWVzdGVkU3Rh
dGUgPCBtX3ByZXZpb3VzU3RhdGUpIHsKKyAgICAgICAgICAgIExPR19NRURJQV9NRVNTQUdFKCIl
cyBSZXF1ZXN0ZWQgc3RhdGUgY2hhbmdlIHRvICVzIiwgZ3N0X2VsZW1lbnRfZ2V0X25hbWUoR1NU
X01FU1NBR0VfU1JDKG1lc3NhZ2UpKSwKKyAgICAgICAgICAgICAgICBnc3RfZWxlbWVudF9zdGF0
ZV9nZXRfbmFtZShyZXF1ZXN0ZWRTdGF0ZSkpOworICAgICAgICAgICAgY2hhbmdlUGlwZWxpbmVT
dGF0ZShyZXF1ZXN0ZWRTdGF0ZSk7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CiAgICAgZGVm
YXVsdDoKICAgICAgICAgTE9HX01FRElBX01FU1NBR0UoIlVuaGFuZGxlZCBHU3RyZWFtZXIgbWVz
c2FnZSB0eXBlOiAlcyIsCiAgICAgICAgICAgICAgICAgICAgIEdTVF9NRVNTQUdFX1RZUEVfTkFN
RShtZXNzYWdlKSk7CkBAIC05NjIsNiArOTczLDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXI6OnVwZGF0ZVN0YXRlcygpCiAgICAgICAgICZzdGF0ZSwgJnBlbmRpbmcsIDI1MCAq
IEdTVF9OU0VDT05EKTsKIAogICAgIGJvb2wgc2hvdWxkVXBkYXRlQWZ0ZXJTZWVrID0gZmFsc2U7
CisgICAgYm9vbCBzaG91bGRVcGRhdGVQbGF5YmFja1N0YXRlID0gZmFsc2U7CiAgICAgc3dpdGNo
IChyZXQpIHsKICAgICBjYXNlIEdTVF9TVEFURV9DSEFOR0VfU1VDQ0VTUzoKICAgICAgICAgTE9H
X01FRElBX01FU1NBR0UoIlN0YXRlOiAlcywgcGVuZGluZzogJXMiLApAQCAtMTA0OCw2ICsxMDYw
LDI0IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjp1cGRhdGVTdGF0ZXMoKQog
ICAgICAgICAgICAgbV9zZWVraW5nID0gZmFsc2U7CiAgICAgICAgIH0KIAorICAgICAgICAvLyBX
ZSBjb25zaWRlciBhIHN0YXRlIGNoYW5nZSB3aGVuIGdvaW5nIHRvIEdTVF9TVEFURV9QTEFZSU5H
CisgICAgICAgIC8vIG9yIHRvIEdTVF9TVEFURV9QQVVTRUQgZnJvbSBHU1RfU1RBVEVfUExBWUlO
Ry4gV2UgYWxzbworICAgICAgICAvLyBjb25zaWRlciBHU1RfU1RBVEVfTlVMTCBiZWNhdXNlIHBs
YXliaW4yIGNhbiBhdm9pZAorICAgICAgICAvLyByZXBvcnRpbmcgc3RhdGUgY2hhbmdlcyB3aGVu
IHRyYW5zaXRpb25pbmcgdG8KKyAgICAgICAgLy8gR1NUX1NUQVRFX05VTEwgYnV0IHdlIGRvIG5v
dCBjb25zaWRlciBHU1RfU1RBVEVfUkVBRFkKKyAgICAgICAgLy8gYmVjYXVzZSBpZiBpdCBpcyBu
b3cgR1NUX1NUQVRFX1JFQURZIGl0IG1lYW5zIHRoYXQgaXQgaGFzCisgICAgICAgIC8vIGFscmVh
ZHkgdHJhbnNpdGlvbmVkIHRocm91Z2ggR1NUX1NUQVRFX1BBVVNFRCBhbmQgdGhhdCdzCisgICAg
ICAgIC8vIGFscmVhZHkgY29udGVtcGxhdGVkLgorICAgICAgICBpZiAoKG1fcHJldmlvdXNTdGF0
ZSA9PSBHU1RfU1RBVEVfUEFVU0VECisgICAgICAgICAgICAmJiBzdGF0ZSA9PSBHU1RfU1RBVEVf
UExBWUlORykKKyAgICAgICAgICAgIHx8ICgoc3RhdGUgPT0gR1NUX1NUQVRFX1BBVVNFRCB8fCBz
dGF0ZSA9PSBHU1RfU1RBVEVfTlVMTCkKKyAgICAgICAgICAgICAgICAmJiBtX3ByZXZpb3VzU3Rh
dGUgPT0gR1NUX1NUQVRFX1BMQVlJTkcpKSB7CisgICAgICAgICAgICBzaG91bGRVcGRhdGVQbGF5
YmFja1N0YXRlID0gdHJ1ZTsKKyAgICAgICAgICAgIG1fcHJldmlvdXNTdGF0ZSA9IHN0YXRlOwor
ICAgICAgICAgICAgTE9HX01FRElBX01FU1NBR0UoIlN0YXRlIGNoYW5nZSB0byAlcyBjb21wbGV0
ZWQiLAorICAgICAgICAgICAgICAgIGdzdF9lbGVtZW50X3N0YXRlX2dldF9uYW1lKG1fcHJldmlv
dXNTdGF0ZSkpOworICAgICAgICB9CisKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBHU1RfU1RB
VEVfQ0hBTkdFX0FTWU5DOgogICAgICAgICBMT0dfTUVESUFfTUVTU0FHRSgiQXN5bmM6IFN0YXRl
OiAlcywgcGVuZGluZzogJXMiLApAQCAtMTEyMCw2ICsxMTUwLDExIEBAIHZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyOjp1cGRhdGVTdGF0ZXMoKQogICAgIGlmIChzaG91bGRVcGRhdGVB
ZnRlclNlZWspCiAgICAgICAgIHRpbWVDaGFuZ2VkKCk7CiAKKyAgICBpZiAoc2hvdWxkVXBkYXRl
UGxheWJhY2tTdGF0ZSkgeworICAgICAgICBMT0dfTUVESUFfTUVTU0FHRSgiU3RhdGUgY2hhbmdl
ZCB0byAlcyIsCisgICAgICAgICAgICBnc3RfZWxlbWVudF9zdGF0ZV9nZXRfbmFtZShzdGF0ZSkp
OworICAgICAgICBtX3BsYXllci0+cGxheWJhY2tTdGF0ZUNoYW5nZWQoKTsKKyAgICB9CiAgICAg
aWYgKG1fbmV0d29ya1N0YXRlICE9IG9sZE5ldHdvcmtTdGF0ZSkgewogICAgICAgICBMT0dfTUVE
SUFfTUVTU0FHRSgiTmV0d29yayBTdGF0ZSBDaGFuZ2VkIGZyb20gJXUgdG8gJXUiLAogICAgICAg
ICAgICAgb2xkTmV0d29ya1N0YXRlLCBtX25ldHdvcmtTdGF0ZSk7CkBAIC0xNTM5LDYgKzE1NzQs
MTYgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmNyZWF0ZUdTVFBsYXlCaW4o
KQogICAgIGNyZWF0ZUF1ZGlvU2luaygpOwogfQogCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lcjo6c3RvcEJ5SGlnaGVyUHJpb0F1ZGlvU3RyZWFtKCkKK3sKKyAgICBHc3RFbGVtZW50
ICogcGxheUJpbiA9IG1fcGxheUJpbi5nZXQoKTsKKyAgICBHc3RCdXMqIGJ1cyA9IGdzdF9waXBl
bGluZV9nZXRfYnVzKEdTVF9QSVBFTElORShwbGF5QmluKSk7CisgICAgR3N0TWVzc2FnZSAqIG1l
c3NhZ2UgPSBnc3RfbWVzc2FnZV9uZXdfcmVxdWVzdF9zdGF0ZShHU1RfT0JKRUNUKHBsYXlCaW4p
LAorICAgICAgICBHU1RfU1RBVEVfUEFVU0VEKTsKKyAgICBnc3RfYnVzX3Bvc3QoYnVzLCBtZXNz
YWdlKTsKKyAgICBnc3Rfb2JqZWN0X3VucmVmKGJ1cyk7Cit9CisKIH0KIAogI2VuZGlmIC8vIFVT
RShHU1RSRUFNRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
LmgKaW5kZXggOGExZmQ0ODYwNTQyNGI1MTAxZjA0OWUxZmQwNWM1MGVjMTBhNjQwZS4uZmEzYWJm
NzRiM2UwMzBmNmVjNTRkMmZhNmZiY2NjNjFkMDc4MjJlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9N
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaApAQCAtODgsNiArODgsOCBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBzb3VyY2VDaGFuZ2VkKCk7CiAgICAgR3N0RWxlbWVudCogYXVkaW9TaW5rKCkgY29u
c3Q7CiAKKyAgICB2b2lkIHN0b3BCeUhpZ2hlclByaW9BdWRpb1N0cmVhbSgpOworCiBwcml2YXRl
OgogICAgIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcihNZWRpYVBsYXllciopOwogCkBAIC0x
NTMsNiArMTU1LDcgQEAgcHJpdmF0ZToKICAgICBLVVJMIG1fdXJsOwogICAgIGJvb2wgbV9vcmln
aW5hbFByZWxvYWRXYXNBdXRvQW5kV2FzT3ZlcnJpZGRlbjsKICAgICBib29sIG1fcHJlc2VydmVz
UGl0Y2g7CisgICAgR3N0U3RhdGUgbV9wcmV2aW91c1N0YXRlOwogfTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IDM4MzQ0MTA5MTYzMDEyOTM3YzlmNTU1YzBlNTcy
ODQ5MzhmM2ZmYTcuLmNiYzQ4NTQwMGVjMDc3ZWI0NGM5MmU4Y2Y2MzEzYjBiZThmZjUyMDQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTQ5LDYgKzQ5LDcgQEAKICNpbmNs
dWRlICJGcmFtZVZpZXcuaCIKICNpbmNsdWRlICJIVE1MQ29udGVudEVsZW1lbnQuaCIKICNpbmNs
dWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTE1lZGlhRWxlbWVudC5oIgog
I2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIkhUTUxUZXh0QXJlYUVsZW1lbnQuaCIK
ICNpbmNsdWRlICJIaXN0b3J5SXRlbS5oIgpAQCAtMTk5OCw0ICsxOTk5LDEwIEBAIHZvaWQgSW50
ZXJuYWxzOjppbml0aWFsaXplTW9ja0NETSgpCiB9CiAjZW5kaWYKIAordm9pZCBJbnRlcm5hbHM6
OnN0b3BFbGVtZW50QnlIaWdoZXJQcmlvQXVkaW9TdHJlYW0oTm9kZSAqbm9kZSkKK3sKKyAgICBI
VE1MTWVkaWFFbGVtZW50KiBlbGVtZW50ID0gdG9NZWRpYUVsZW1lbnQobm9kZSk7CisgICAgZWxl
bWVudC0+c3RvcEJ5SGlnaGVyUHJpb0F1ZGlvU3RyZWFtKCk7Cit9CisKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5oCmluZGV4IDNjYWRhMTljMzNiYzY4YTMxODk4MTk0ZDI4ZmM4YTkzNTg5
OTg3NzkuLjYyMDMyYWMwNWU1YWVlNjJlZDRlYmQ5ZWIwM2VhM2UzNjBkNDk2YWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuaApAQCAtMjg5LDYgKzI4OSw4IEBAIHB1YmxpYzoKICAgICB2
b2lkIGVuYWJsZU1vY2tTcGVlY2hTeW50aGVzaXplcigpOwogI2VuZGlmCiAgICAgICAgICAgICAg
ICAgICAgIAorICAgIHZvaWQgc3RvcEVsZW1lbnRCeUhpZ2hlclByaW9BdWRpb1N0cmVhbShOb2Rl
Kik7CisKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgSW50ZXJuYWxzKERvY3VtZW50Kik7CiAgICAg
RG9jdW1lbnQqIGNvbnRleHREb2N1bWVudCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuaWRsCmluZGV4IDg1ZWZkOTQ1YmQ5NTc3NzlhZWNmNDJkMTM5OTBjMDQ4NDIxODM5NzQu
LjhkMzU5YmMwMjVkMzNlMzgzYjU1NDI0ODUxZThkZDRmZGZjYjFjNWUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5pZGwKQEAgLTI1MCw2ICsyNTAsOCBAQAogCiAgICAgdm9pZCBzZXRV
c2VzT3ZlcmxheVNjcm9sbGJhcnMoaW4gYm9vbGVhbiBlbmFibGVkKTsKIAorICAgIHZvaWQgc3Rv
cEVsZW1lbnRCeUhpZ2hlclByaW9BdWRpb1N0cmVhbShpbiBOb2RlIG5vZGUpOworCiAgICAgW0Nv
bmRpdGlvbmFsPUVOQ1JZUFRFRF9NRURJQV9WMl0gdm9pZCBpbml0aWFsaXplTW9ja0NETSgpOwog
ICAgIAogICAgIFtDb25kaXRpb25hbD1TUEVFQ0hfU1lOVEhFU0lTXSB2b2lkIGVuYWJsZU1vY2tT
cGVlY2hTeW50aGVzaXplcigpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGIzYWVhOTE5ZGY5N2Y1ODljMTQyNDk0NjM1ZmIx
OWI4Yjk2MjZhMjYuLjJkMjY4NmMyYmRlOTczNmI4MzY5NzE1MTZkNmJhNjc2YzA3YjExY2MgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMy0wMi0yMSAgWGFiaWVyIFJvZHJpZ3VleiBDYWx2YXIg
IDxjYWx2YXJpc0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtHU3RyZWFtZXJdIERvd25zdHJlYW0g
c3RhdGUgY2hhbmdlIHJlcXVlc3Qgc3VwcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTE2MTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIG1lZGlhL21lZGlhLWhpZ2hlci1wcmlvLWF1ZGlvLXN0cmVh
bS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIG1lZGlhL21lZGlhLWhpZ2hlci1wcmlv
LWF1ZGlvLXN0cmVhbS5odG1sOiBBZGRlZC4KKwogMjAxMy0wMi0yMSAgU2hlcmlmZiBCb3QgIDx3
ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGlu
ZyBvdXQgcjE0MzU4MS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21lZGlhLWhpZ2hl
ci1wcmlvLWF1ZGlvLXN0cmVhbS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS9tZWRp
YS1oaWdoZXItcHJpby1hdWRpby1zdHJlYW0tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJhZWI5
NTI1NzI0MGQyMWFlYTMxNjg4MmE3MmUxOTI0MzFlNmRiOTcKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1oaWdoZXItcHJpby1hdWRpby1zdHJlYW0tZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMTIgQEAKK1Rlc3QgcGF1c2VkIGJ5OgorCitHZXR0aW5nIGEgaGlnaGVy
IHByaW9yaXR5IGF1ZGlvIHN0cmVhbS4KK1RoaXMgdGVzdCBkb2VzIG5vdCB3b3JrIGluIHRoZSBs
YXVuY2hlcnMsIG9ubHkgd2l0aCB0aGUgdGVzdCBydW5uZXJzLgorRVZFTlQocGxheWluZykKK0VY
UEVDVEVEIChtZWRpYUVsZW1lbnQucGF1c2VkID09ICdmYWxzZScpIE9LCitFVkVOVChwYXVzZSkK
K0VYUEVDVEVEIChtZWRpYUVsZW1lbnQucGF1c2VkID09ICd0cnVlJykgT0sKK0VYUEVDVEVEICht
ZWRpYUVsZW1lbnQuZW5kZWQgPT0gJ2ZhbHNlJykgT0sKKworRU5EIE9GIFRFU1QKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtaGlnaGVyLXByaW8tYXVkaW8tc3RyZWFtLmh0
bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1oaWdoZXItcHJpby1hdWRpby1zdHJlYW0uaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4xNzA5M2Q0NTgyM2UxY2IxY2MwYmU5NmIzNGU3MTM4MzJmNDRhMDdhCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtaGlnaGVyLXByaW8tYXVk
aW8tc3RyZWFtLmh0bWwKQEAgLTAsMCArMSw0NiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KyAgICA8aGVhZD4KKyAgICAgICAgPHNjcmlwdCBzcmM9bWVkaWEtZmlsZS5qcz48L3NjcmlwdD4K
KyAgICAgICAgPHNjcmlwdCBzcmM9dmlkZW8tdGVzdC5qcz48L3NjcmlwdD4KKworICAgICAgICA8
c2NyaXB0PgorICAgICAgICAgICAgdmFyIG1lZGlhRWxlbWVudDsKKworICAgICAgICAgICAgZnVu
Y3Rpb24gc3RhcnQoKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIG1lZGlhRWxlbWVu
dCA9IG5ldyBBdWRpbygpOworCisgICAgICAgICAgICAgICAgd2FpdEZvckV2ZW50KCdlcnJvcicp
OworICAgICAgICAgICAgICAgIHdhaXRGb3JFdmVudCgncGxheWluZycsIHBsYXlpbmcpOworCisg
ICAgICAgICAgICAgICAgbWVkaWFFbGVtZW50LnNyYyA9IGZpbmRNZWRpYUZpbGUoJ2F1ZGlvJywg
J2NvbnRlbnQvdGVzdCcpOworICAgICAgICAgICAgICAgIG1lZGlhRWxlbWVudC5wbGF5KCk7Cisg
ICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIHBsYXlpbmcoKQorICAgICAgICAg
ICAgeworICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgibWVkaWFFbGVtZW50LnBhdXNlZCIs
IGZhbHNlKTsKKyAgICAgICAgICAgICAgICB3YWl0Rm9yRXZlbnQoJ3BhdXNlJywgcGF1c2VkKTsK
KyAgICAgICAgICAgICAgICBpbnRlcm5hbHMuc3RvcEVsZW1lbnRCeUhpZ2hlclByaW9BdWRpb1N0
cmVhbShtZWRpYUVsZW1lbnQpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmdW5jdGlv
biBwYXVzZWQoKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgi
bWVkaWFFbGVtZW50LnBhdXNlZCIsIHRydWUpOworICAgICAgICAgICAgICAgIHRlc3RFeHBlY3Rl
ZCgibWVkaWFFbGVtZW50LmVuZGVkIiwgZmFsc2UpOworICAgICAgICAgICAgICAgIGNvbnNvbGVX
cml0ZSgiIik7CisgICAgICAgICAgICAgICAgZW5kVGVzdCgpOworICAgICAgICAgICAgfQorICAg
ICAgICA8L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHkgb25sb2FkPSJzdGFydCgpIj4K
KyAgICAgICAgPHA+PGI+VGVzdCBwYXVzZWQgYnk6PC9iPgorICAgICAgICA8b2w+CisgICAgICAg
ICAgICA8bGk+R2V0dGluZyBhIGhpZ2hlciBwcmlvcml0eSBhdWRpbyBzdHJlYW0uPC9saT4KKyAg
ICAgICAgICAgIDxsaT5UaGlzIHRlc3QgZG9lcyBub3Qgd29yayBpbiB0aGUgbGF1bmNoZXJzLCBv
bmx5IHdpdGgKKyAgICAgICAgICAgIHRoZSB0ZXN0IHJ1bm5lcnMuPC9saT4KKyAgICAgICAgPC9v
bD4KKyAgICAgICAgPC9wPgorICAgIDwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189770</attachid>
            <date>2013-02-22 07:14:08 -0800</date>
            <delta_ts>2013-02-25 03:55:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-91611-20130222161027.patch</filename>
            <type>text/plain</type>
            <size>17828</size>
            <attacher name="Xabier Rodríguez Calvar">calvaris</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzNjg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTkwMjQ2NzA0NWZiOGI2
ZGFhNThlOGI3Yjc0MTAwODkwNDZiOWVkNS4uYTIxZjAxMmZmNzAyNzUxNDJiYzBkNWQ1Y2VlYmQw
OThmOWZhODYzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDEzLTAyLTIyICBYYWJp
ZXIgUm9kcmlndWV6IENhbHZhciAgPGNhbHZhcmlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgRG93
bnN0cmVhbSBzdGF0ZSBjaGFuZ2UgcmVxdWVzdCBzdXBwb3J0IGZvciB0aGUgR1N0cmVhbWVyIGJh
Y2tlbmQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkx
NjExCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVz
dDogbWVkaWEvbWVkaWEtaGlnaGVyLXByaW8tYXVkaW8tc3RyZWFtLmh0bWwKKworICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvTWVkaWFQbGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChNZWRp
YVBsYXllcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllcjo6c2ltdWxhdGVBdWRpb0lu
dGVycnVwdGlvbik6IEFkZGVkIHRvCisgICAgICAgIGRlbGVnYXRlIG9uIHRoZSBwcml2YXRlIHRv
IHN0b3AgYmVjYXVzZSBvZiBhIHN0cmVhbSB3aXRoIGJpZ2dlcgorICAgICAgICBwcmlvcml0eS4K
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaDoKKyAgICAg
ICAgKE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVBsYXllclByaXZhdGVJbnRlcmZhY2U6OnNpbXVsYXRlQXVkaW9JbnRlcnJ1cHRpb24pOgorICAg
ICAgICBBZGRlZCBkZWZhdWx0IGVtcHR5IG1ldGhvZCBpbiB0aGUgY29tbW9uIHByaXZhdGUgaGVh
ZGVyLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6aW5pdGlhbGl6ZUdTdHJlYW1l
ckFuZFJlZ2lzdGVyV2ViS2l0RWxlbWVudHMpOiBTZXR0aW5nCisgICAgICAgIHRoZSBwdWxzZSBy
b2xlIHRvIGdldCB0aGUgcmVxdWVzdCBzdGF0ZSBldmVudHMgZnJvbSBwdWxzZXNpbmsuCisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6Ok1lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lcik6CisgICAgICAgIEluaXRpYWxpemF0aW9uIG9mIHRoZSBuZXcgYXR0cmli
dXRlCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmNoYW5n
ZVBpcGVsaW5lU3RhdGUpOgorICAgICAgICBLZWVwaW5nIHRoZSBjdXJyZW50IHN0YXRlLgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpoYW5kbGVNZXNzYWdl
KTogUmVhY3RpbmcgdG8KKyAgICAgICAgdGhlIFJFUVVFU1RfU1RBVEUgbWVzc2FnZQorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjp1cGRhdGVTdGF0ZXMpOiBB
dm9pZGluZworICAgICAgICB1cGRhdGluZyB0aGUgc3RhdGUgdHdpY2UuCisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnNpbXVsYXRlQXVkaW9JbnRlcnJ1cHRp
b24pOgorICAgICAgICBBZGRlZC4gSW5qZWN0cyB0aGUgUkVRVUVTVF9TVEFURSBtZXNzYWdlIHRv
IHRoZSBwaXBlbGluZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmg6CisgICAgICAgIChNZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXIpOiBBZGRlZCBuZXcgbWV0aG9kIGFuZCBhdHRyaWJ1dGUuCisgICAgICAgICogdGVz
dGluZy9JbnRlcm5hbHMuaWRsOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmg6CisgICAg
ICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
IChXZWJDb3JlOjpJbnRlcm5hbHM6OnNpbXVsYXRlQXVkaW9JbnRlcnJ1cHRpb24pOiBBZGRlZCB0
bworICAgICAgICBjYWxsIHRoZSBtZXRob2QgdG8gc3RvcCB0aGUgZWxlbWVudCBiZWNhdXNlIG9m
IGEgaGlnaGVyIHByaW8KKyAgICAgICAgc3RyZWFtIGF0IHRoZSB0ZXN0cy4KKwogMjAxMy0wMi0y
MSAgR3J6ZWdvcnogQ3phamtvd3NraSAgPGcuY3phamtvd3NraUBzYW1zdW5nLmNvbT4KIAogICAg
ICAgICBBbGxvdyB0byByZXRyaWV2ZSB0aGUgcmVxdWVzdCBkYXRhIGZyb20gYWJzdHJhY3QgVGV4
dENoZWNraW5nUmVxdWVzdCB0byBiZSBhY2Nlc3NpYmxlIGZvciBXSzIKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAppbmRleCAwYjI1NDRmOTIx
NjE4ZjJlMTMxMDU4OWIwOTZhNjFmOGIwNWY2OTkxLi4wZDcwZTU1MTJjOTlkNDk5MmIxMGVhNzlk
NTcxMGJlNGI0ZDU3YmI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9NZWRpYVBsYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvTWVkaWFQbGF5ZXIuY3BwCkBAIC0xMTY1LDYgKzExNjUsMTQgQEAgdm9pZCBNZWRpYVBsYXll
cjo6cmVxdWVyeU1lZGlhRW5naW5lcygpCiAgICAgaW5zdGFsbGVkTWVkaWFFbmdpbmVzKFJlcXVl
cnlFbmdpbmVzKTsKIH0KIAordm9pZCBNZWRpYVBsYXllcjo6c2ltdWxhdGVBdWRpb0ludGVycnVw
dGlvbigpCit7CisgICAgaWYgKCFtX3ByaXZhdGUpCisgICAgICAgIHJldHVybjsKKworICAgIG1f
cHJpdmF0ZS0+c2ltdWxhdGVBdWRpb0ludGVycnVwdGlvbigpOworfQorCiB9CiAKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKaW5kZXgg
NjNjZTA5Zjc5Yjg2ZjRiYjA4MGY5YTc5MzYyOTgxNDc3NmVhNzgxNy4uMDk1ZTA2OWU0Y2YyMTZl
M2M4YjdmODEzN2Q0ZDU0NWJhYmEwMzgyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9NZWRpYVBsYXllci5oCkBAIC00NTUsNiArNDU1LDggQEAgcHVibGljOgogCiAg
ICAgc3RhdGljIHZvaWQgcmVxdWVyeU1lZGlhRW5naW5lcygpOwogCisgICAgdmlydHVhbCB2b2lk
IHNpbXVsYXRlQXVkaW9JbnRlcnJ1cHRpb24oKTsKKwogcHJpdmF0ZToKICAgICBNZWRpYVBsYXll
cihNZWRpYVBsYXllckNsaWVudCopOwogICAgIHZvaWQgbG9hZFdpdGhOZXh0TWVkaWFFbmdpbmUo
TWVkaWFQbGF5ZXJGYWN0b3J5Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oCmluZGV4IDVjNjY3NGQyZDNhNjM4Y2EzMDYx
ZDNmOTIyOWFhYWRmMjJhYTc4NDAuLmJhZDU3ZDdmMTA3NGMzZjBjZGM3M2M2YTJhMzlmMDM4Yjkw
NzQ0YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlh
UGxheWVyUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01l
ZGlhUGxheWVyUHJpdmF0ZS5oCkBAIC0xODgsNiArMTg4LDggQEAgcHVibGljOgogICAgIHZpcnR1
YWwgYm9vbCByZXF1aXJlc1RleHRUcmFja1JlcHJlc2VudGF0aW9uKCkgY29uc3QgeyByZXR1cm4g
ZmFsc2U7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0VGV4dFRyYWNrUmVwcmVzZW50YXRpb24oVGV4
dFRyYWNrUmVwcmVzZW50YXRpb24qKSB7IH0KICNlbmRpZgorCisgICAgdmlydHVhbCB2b2lkIHNp
bXVsYXRlQXVkaW9JbnRlcnJ1cHRpb24oKSB7IH0KIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKaW5kZXggMmFkZmU3NGZiZGIxZjhiMjYw
MzczYjFkNDZhMWMwODUxYzU3NDY0MC4uMTEyNTdhZjI5NWFmMWNmMWYwNzdmNjVjZWRlZThiZDA2
MWQyNTY0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
ci5jcHAKQEAgLTE0Miw2ICsxNDIsOCBAQCBib29sIGluaXRpYWxpemVHU3RyZWFtZXJBbmRSZWdp
c3RlcldlYktpdEVsZW1lbnRzKCkKICAgICAgICAgcmV0dXJuIGdzdF9lbGVtZW50X3JlZ2lzdGVy
KDAsICJ3ZWJraXR3ZWJzcmMiLCBHU1RfUkFOS19QUklNQVJZICsgMTAwLCBXRUJLSVRfVFlQRV9X
RUJfU1JDKTsKICAgICB9CiAKKyAgICBnX3NldGVudigiUFVMU0VfUFJPUF9tZWRpYS5yb2xlIiwg
InZpZGVvIiwgVFJVRSk7CisKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtMTg3LDYgKzE4OSw3
IEBAIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyKE1lZGlhUGxheWVyKiBwbGF5ZXIpCiAgICAgLCBtX3RvdGFsQnl0ZXMoLTEpCiAgICAgLCBt
X29yaWdpbmFsUHJlbG9hZFdhc0F1dG9BbmRXYXNPdmVycmlkZGVuKGZhbHNlKQogICAgICwgbV9w
cmVzZXJ2ZXNQaXRjaChmYWxzZSkKKyAgICAsIG1fcHJldmlvdXNTdGF0ZShHU1RfU1RBVEVfVk9J
RF9QRU5ESU5HKQogewogfQogCkBAIC0zMTcsMTcgKzMyMCwxNyBAQCBib29sIE1lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lcjo6Y2hhbmdlUGlwZWxpbmVTdGF0ZShHc3RTdGF0ZSBuZXdTdGF0ZSkK
IHsKICAgICBBU1NFUlQobmV3U3RhdGUgPT0gR1NUX1NUQVRFX1BMQVlJTkcgfHwgbmV3U3RhdGUg
PT0gR1NUX1NUQVRFX1BBVVNFRCk7CiAKLSAgICBHc3RTdGF0ZSBjdXJyZW50U3RhdGU7CiAgICAg
R3N0U3RhdGUgcGVuZGluZzsKIAotICAgIGdzdF9lbGVtZW50X2dldF9zdGF0ZShtX3BsYXlCaW4u
Z2V0KCksICZjdXJyZW50U3RhdGUsICZwZW5kaW5nLCAwKTsKLSAgICBMT0dfTUVESUFfTUVTU0FH
RSgiQ3VycmVudCBzdGF0ZTogJXMsIHBlbmRpbmc6ICVzIiwgZ3N0X2VsZW1lbnRfc3RhdGVfZ2V0
X25hbWUoY3VycmVudFN0YXRlKSwgZ3N0X2VsZW1lbnRfc3RhdGVfZ2V0X25hbWUocGVuZGluZykp
OwotICAgIGlmIChjdXJyZW50U3RhdGUgPT0gbmV3U3RhdGUgfHwgcGVuZGluZyA9PSBuZXdTdGF0
ZSkKKyAgICBnc3RfZWxlbWVudF9nZXRfc3RhdGUobV9wbGF5QmluLmdldCgpLCAmbV9wcmV2aW91
c1N0YXRlLCAmcGVuZGluZywgMCk7CisgICAgTE9HX01FRElBX01FU1NBR0UoIkN1cnJlbnQgc3Rh
dGU6ICVzLCBpbnRlbmRlZCAlcywgcGVuZGluZzogJXMiLCBnc3RfZWxlbWVudF9zdGF0ZV9nZXRf
bmFtZShtX3ByZXZpb3VzU3RhdGUpLAorICAgICAgICBnc3RfZWxlbWVudF9zdGF0ZV9nZXRfbmFt
ZShuZXdTdGF0ZSksIGdzdF9lbGVtZW50X3N0YXRlX2dldF9uYW1lKHBlbmRpbmcpKTsKKyAgICBp
ZiAobV9wcmV2aW91c1N0YXRlID09IG5ld1N0YXRlIHx8IHBlbmRpbmcgPT0gbmV3U3RhdGUpCiAg
ICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgR3N0U3RhdGVDaGFuZ2VSZXR1cm4gc2V0U3RhdGVS
ZXN1bHQgPSBnc3RfZWxlbWVudF9zZXRfc3RhdGUobV9wbGF5QmluLmdldCgpLCBuZXdTdGF0ZSk7
CiAgICAgR3N0U3RhdGUgcGF1c2VkT3JQbGF5aW5nID0gbmV3U3RhdGUgPT0gR1NUX1NUQVRFX1BM
QVlJTkcgPyBHU1RfU1RBVEVfUEFVU0VEIDogR1NUX1NUQVRFX1BMQVlJTkc7Ci0gICAgaWYgKGN1
cnJlbnRTdGF0ZSAhPSBwYXVzZWRPclBsYXlpbmcgJiYgc2V0U3RhdGVSZXN1bHQgPT0gR1NUX1NU
QVRFX0NIQU5HRV9GQUlMVVJFKSB7CisgICAgaWYgKG1fcHJldmlvdXNTdGF0ZSAhPSBwYXVzZWRP
clBsYXlpbmcgJiYgc2V0U3RhdGVSZXN1bHQgPT0gR1NUX1NUQVRFX0NIQU5HRV9GQUlMVVJFKSB7
CiAgICAgICAgIGxvYWRpbmdGYWlsZWQoTWVkaWFQbGF5ZXI6OkVtcHR5KTsKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgIH0KQEAgLTYyNyw2ICs2MzAsNyBAQCBnYm9vbGVhbiBNZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXI6OmhhbmRsZU1lc3NhZ2UoR3N0TWVzc2FnZSogbWVzc2FnZSkKICAg
ICBib29sIGlzc3VlRXJyb3IgPSB0cnVlOwogICAgIGJvb2wgYXR0ZW1wdE5leHRMb2NhdGlvbiA9
IGZhbHNlOwogICAgIGNvbnN0IEdzdFN0cnVjdHVyZSogc3RydWN0dXJlID0gZ3N0X21lc3NhZ2Vf
Z2V0X3N0cnVjdHVyZShtZXNzYWdlKTsKKyAgICBHc3RTdGF0ZSByZXF1ZXN0ZWRTdGF0ZTsKIAog
ICAgIGlmIChzdHJ1Y3R1cmUpIHsKICAgICAgICAgY29uc3QgZ2NoYXIqIG1lc3NhZ2VUeXBlTmFt
ZSA9IGdzdF9zdHJ1Y3R1cmVfZ2V0X25hbWUoc3RydWN0dXJlKTsKQEAgLTcxMyw2ICs3MTcsMTQg
QEAgZ2Jvb2xlYW4gTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpoYW5kbGVNZXNzYWdlKEdz
dE1lc3NhZ2UqIG1lc3NhZ2UpCiAgICAgICAgIExPR19NRURJQV9NRVNTQUdFKCJEdXJhdGlvbiBj
aGFuZ2VkIik7CiAgICAgICAgIGR1cmF0aW9uQ2hhbmdlZCgpOwogICAgICAgICBicmVhazsKKyAg
ICBjYXNlIEdTVF9NRVNTQUdFX1JFUVVFU1RfU1RBVEU6CisgICAgICAgIGdzdF9tZXNzYWdlX3Bh
cnNlX3JlcXVlc3Rfc3RhdGUobWVzc2FnZSwgJnJlcXVlc3RlZFN0YXRlKTsKKyAgICAgICAgaWYg
KHJlcXVlc3RlZFN0YXRlIDwgbV9wcmV2aW91c1N0YXRlKSB7CisgICAgICAgICAgICBMT0dfTUVE
SUFfTUVTU0FHRSgiJXMgUmVxdWVzdGVkIHN0YXRlIGNoYW5nZSB0byAlcyIsIGdzdF9lbGVtZW50
X2dldF9uYW1lKEdTVF9NRVNTQUdFX1NSQyhtZXNzYWdlKSksCisgICAgICAgICAgICAgICAgZ3N0
X2VsZW1lbnRfc3RhdGVfZ2V0X25hbWUocmVxdWVzdGVkU3RhdGUpKTsKKyAgICAgICAgICAgIGNo
YW5nZVBpcGVsaW5lU3RhdGUocmVxdWVzdGVkU3RhdGUpOworICAgICAgICB9CisgICAgICAgIGJy
ZWFrOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIExPR19NRURJQV9NRVNTQUdFKCJVbmhhbmRsZWQg
R1N0cmVhbWVyIG1lc3NhZ2UgdHlwZTogJXMiLAogICAgICAgICAgICAgICAgICAgICBHU1RfTUVT
U0FHRV9UWVBFX05BTUUobWVzc2FnZSkpOwpAQCAtOTYyLDYgKzk3NCw3IEBAIHZvaWQgTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyOjp1cGRhdGVTdGF0ZXMoKQogICAgICAgICAmc3RhdGUsICZw
ZW5kaW5nLCAyNTAgKiBHU1RfTlNFQ09ORCk7CiAKICAgICBib29sIHNob3VsZFVwZGF0ZUFmdGVy
U2VlayA9IGZhbHNlOworICAgIGJvb2wgc2hvdWxkVXBkYXRlUGxheWJhY2tTdGF0ZSA9IGZhbHNl
OwogICAgIHN3aXRjaCAocmV0KSB7CiAgICAgY2FzZSBHU1RfU1RBVEVfQ0hBTkdFX1NVQ0NFU1M6
CiAgICAgICAgIExPR19NRURJQV9NRVNTQUdFKCJTdGF0ZTogJXMsIHBlbmRpbmc6ICVzIiwKQEAg
LTEwNDgsNiArMTA2MSwxOCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6dXBk
YXRlU3RhdGVzKCkKICAgICAgICAgICAgIG1fc2Vla2luZyA9IGZhbHNlOwogICAgICAgICB9CiAK
KyAgICAgICAgLy8gV2UgY29uc2lkZXIgYSBzdGF0ZSBjaGFuZ2Ugd2hlbiBnb2luZyB0byBHU1Rf
U1RBVEVfUExBWUlORyBvciB0byBHU1RfU1RBVEVfUEFVU0VEIGZyb20gR1NUX1NUQVRFX1BMQVlJ
TkcuIFdlCisgICAgICAgIC8vIGFsc28gY29uc2lkZXIgR1NUX1NUQVRFX05VTEwgYmVjYXVzZSBw
bGF5YmluMiBjYW4gYXZvaWQgcmVwb3J0aW5nIHN0YXRlIGNoYW5nZXMgd2hlbiB0cmFuc2l0aW9u
aW5nIHRvCisgICAgICAgIC8vIEdTVF9TVEFURV9OVUxMIGJ1dCB3ZSBkbyBub3QgY29uc2lkZXIg
R1NUX1NUQVRFX1JFQURZIGJlY2F1c2UgaWYgaXQgaXMgbm93IEdTVF9TVEFURV9SRUFEWSBpdCBt
ZWFucyB0aGF0IGl0CisgICAgICAgIC8vIGhhcyBhbHJlYWR5IHRyYW5zaXRpb25lZCB0aHJvdWdo
IEdTVF9TVEFURV9QQVVTRUQgYW5kIHRoYXQncyBhbHJlYWR5IGNvbnRlbXBsYXRlZC4KKyAgICAg
ICAgaWYgKChtX3ByZXZpb3VzU3RhdGUgPT0gR1NUX1NUQVRFX1BBVVNFRCAmJiBzdGF0ZSA9PSBH
U1RfU1RBVEVfUExBWUlORykKKyAgICAgICAgICAgIHx8ICgoc3RhdGUgPT0gR1NUX1NUQVRFX1BB
VVNFRCB8fCBzdGF0ZSA9PSBHU1RfU1RBVEVfTlVMTCkgJiYgbV9wcmV2aW91c1N0YXRlID09IEdT
VF9TVEFURV9QTEFZSU5HKSkgeworICAgICAgICAgICAgc2hvdWxkVXBkYXRlUGxheWJhY2tTdGF0
ZSA9IHRydWU7CisgICAgICAgICAgICBtX3ByZXZpb3VzU3RhdGUgPSBzdGF0ZTsKKyAgICAgICAg
ICAgIExPR19NRURJQV9NRVNTQUdFKCJTdGF0ZSBjaGFuZ2UgdG8gJXMgY29tcGxldGVkIiwKKyAg
ICAgICAgICAgICAgICBnc3RfZWxlbWVudF9zdGF0ZV9nZXRfbmFtZShtX3ByZXZpb3VzU3RhdGUp
KTsKKyAgICAgICAgfQorCiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgR1NUX1NUQVRFX0NIQU5H
RV9BU1lOQzoKICAgICAgICAgTE9HX01FRElBX01FU1NBR0UoIkFzeW5jOiBTdGF0ZTogJXMsIHBl
bmRpbmc6ICVzIiwKQEAgLTExMjAsNiArMTE0NSwxMSBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lcjo6dXBkYXRlU3RhdGVzKCkKICAgICBpZiAoc2hvdWxkVXBkYXRlQWZ0ZXJTZWVr
KQogICAgICAgICB0aW1lQ2hhbmdlZCgpOwogCisgICAgaWYgKHNob3VsZFVwZGF0ZVBsYXliYWNr
U3RhdGUpIHsKKyAgICAgICAgTE9HX01FRElBX01FU1NBR0UoIlN0YXRlIGNoYW5nZWQgdG8gJXMi
LAorICAgICAgICAgICAgZ3N0X2VsZW1lbnRfc3RhdGVfZ2V0X25hbWUoc3RhdGUpKTsKKyAgICAg
ICAgbV9wbGF5ZXItPnBsYXliYWNrU3RhdGVDaGFuZ2VkKCk7CisgICAgfQogICAgIGlmIChtX25l
dHdvcmtTdGF0ZSAhPSBvbGROZXR3b3JrU3RhdGUpIHsKICAgICAgICAgTE9HX01FRElBX01FU1NB
R0UoIk5ldHdvcmsgU3RhdGUgQ2hhbmdlZCBmcm9tICV1IHRvICV1IiwKICAgICAgICAgICAgIG9s
ZE5ldHdvcmtTdGF0ZSwgbV9uZXR3b3JrU3RhdGUpOwpAQCAtMTUzOSw2ICsxNTY5LDE2IEBAIHZv
aWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpjcmVhdGVHU1RQbGF5QmluKCkKICAgICBj
cmVhdGVBdWRpb1NpbmsoKTsKIH0KIAordm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6
OnNpbXVsYXRlQXVkaW9JbnRlcnJ1cHRpb24oKQoreworICAgIEdzdEVsZW1lbnQqIHBsYXlCaW4g
PSBtX3BsYXlCaW4uZ2V0KCk7CisgICAgR3N0QnVzKiBidXMgPSBnc3RfcGlwZWxpbmVfZ2V0X2J1
cyhHU1RfUElQRUxJTkUocGxheUJpbikpOworICAgIEdzdE1lc3NhZ2UqIG1lc3NhZ2UgPSBnc3Rf
bWVzc2FnZV9uZXdfcmVxdWVzdF9zdGF0ZShHU1RfT0JKRUNUKHBsYXlCaW4pLAorICAgICAgICBH
U1RfU1RBVEVfUEFVU0VEKTsKKyAgICBnc3RfYnVzX3Bvc3QoYnVzLCBtZXNzYWdlKTsKKyAgICBn
c3Rfb2JqZWN0X3VucmVmKGJ1cyk7Cit9CisKIH0KIAogI2VuZGlmIC8vIFVTRShHU1RSRUFNRVIp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgKaW5kZXggOGEx
ZmQ0ODYwNTQyNGI1MTAxZjA0OWUxZmQwNWM1MGVjMTBhNjQwZS4uYmYwYTRlNTQ2ZjcyMGRkYjI5
N2Y3NzhiZTFiNGMwOTQ5MmUyNTMyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXIuaApAQCAtODgsNiArODgsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzb3Vy
Y2VDaGFuZ2VkKCk7CiAgICAgR3N0RWxlbWVudCogYXVkaW9TaW5rKCkgY29uc3Q7CiAKKyAgICB2
b2lkIHNpbXVsYXRlQXVkaW9JbnRlcnJ1cHRpb24oKTsKKwogcHJpdmF0ZToKICAgICBNZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXIoTWVkaWFQbGF5ZXIqKTsKIApAQCAtMTUzLDYgKzE1NSw3IEBA
IHByaXZhdGU6CiAgICAgS1VSTCBtX3VybDsKICAgICBib29sIG1fb3JpZ2luYWxQcmVsb2FkV2Fz
QXV0b0FuZFdhc092ZXJyaWRkZW47CiAgICAgYm9vbCBtX3ByZXNlcnZlc1BpdGNoOworICAgIEdz
dFN0YXRlIG1fcHJldmlvdXNTdGF0ZTsKIH07CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmNwcAppbmRleCAzODM0NDEwOTE2MzAxMjkzN2M5ZjU1NWMwZTU3Mjg0OTM4ZjNmZmE3Li5l
NTYzNjlmZDJiZjkxOWYwNWM4YmFmZjA3YTBiMDNhNDI3ZTJhYjA3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbHMuY3BwCkBAIC00OSw2ICs0OSw3IEBACiAjaW5jbHVkZSAiRnJhbWVWaWV3
LmgiCiAjaW5jbHVkZSAiSFRNTENvbnRlbnRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTElucHV0
RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxNZWRpYUVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1M
TmFtZXMuaCIKICNpbmNsdWRlICJIVE1MVGV4dEFyZWFFbGVtZW50LmgiCiAjaW5jbHVkZSAiSGlz
dG9yeUl0ZW0uaCIKQEAgLTE5OTgsNCArMTk5OSwxMCBAQCB2b2lkIEludGVybmFsczo6aW5pdGlh
bGl6ZU1vY2tDRE0oKQogfQogI2VuZGlmCiAKK3ZvaWQgSW50ZXJuYWxzOjpzaW11bGF0ZUF1ZGlv
SW50ZXJydXB0aW9uKE5vZGUgKm5vZGUpCit7CisgICAgSFRNTE1lZGlhRWxlbWVudCogZWxlbWVu
dCA9IHRvTWVkaWFFbGVtZW50KG5vZGUpOworICAgIGVsZW1lbnQtPnBsYXllcigpLT5zaW11bGF0
ZUF1ZGlvSW50ZXJydXB0aW9uKCk7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5o
CmluZGV4IDNjYWRhMTljMzNiYzY4YTMxODk4MTk0ZDI4ZmM4YTkzNTg5OTg3NzkuLmNjYTgxNGIz
NWY0NDMwNTYxM2NlMTNkYWU1Yzk4YjVkNjQ1MmFjNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuaApAQCAtMjg5LDYgKzI4OSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGVuYWJsZU1vY2tT
cGVlY2hTeW50aGVzaXplcigpOwogI2VuZGlmCiAgICAgICAgICAgICAgICAgICAgIAorICAgIHZv
aWQgc2ltdWxhdGVBdWRpb0ludGVycnVwdGlvbihOb2RlKik7CisKIHByaXZhdGU6CiAgICAgZXhw
bGljaXQgSW50ZXJuYWxzKERvY3VtZW50Kik7CiAgICAgRG9jdW1lbnQqIGNvbnRleHREb2N1bWVu
dCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
aWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCmluZGV4IDg1ZWZkOTQ1
YmQ5NTc3NzlhZWNmNDJkMTM5OTBjMDQ4NDIxODM5NzQuLjE0NTEyYWJhZjc0ZDZjMDM2ZDAzYjk5
MWI0Nzc1MTMyOGQ5OGEwNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKQEAg
LTI1MCw2ICsyNTAsOCBAQAogCiAgICAgdm9pZCBzZXRVc2VzT3ZlcmxheVNjcm9sbGJhcnMoaW4g
Ym9vbGVhbiBlbmFibGVkKTsKIAorICAgIHZvaWQgc2ltdWxhdGVBdWRpb0ludGVycnVwdGlvbihp
biBOb2RlIG5vZGUpOworCiAgICAgW0NvbmRpdGlvbmFsPUVOQ1JZUFRFRF9NRURJQV9WMl0gdm9p
ZCBpbml0aWFsaXplTW9ja0NETSgpOwogICAgIAogICAgIFtDb25kaXRpb25hbD1TUEVFQ0hfU1lO
VEhFU0lTXSB2b2lkIGVuYWJsZU1vY2tTcGVlY2hTeW50aGVzaXplcigpOwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGQ3YTFk
YjkzMzc2YjE2NWFlN2MzNjY5NmE4OTg5YTE2NGViNjk4YjQuLjdiZTAyZTFkNzdkNGEyMjMxNDhi
YzgyYTA0ZDFhZTcwNzczMzE5MzEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZwor
KysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMy0wMi0yMiAg
WGFiaWVyIFJvZHJpZ3VleiBDYWx2YXIgIDxjYWx2YXJpc0BpZ2FsaWEuY29tPgorCisgICAgICAg
IERvd25zdHJlYW0gc3RhdGUgY2hhbmdlIHJlcXVlc3Qgc3VwcG9ydCBmb3IgdGhlIEdTdHJlYW1l
ciBiYWNrZW5kCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD05MTYxMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogbWVkaWEvbWVkaWEtaGlnaGVyLXByaW8tYXVkaW8tc3RyZWFtLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogbWVkaWEvbWVkaWEtaGlnaGVyLXByaW8tYXVkaW8tc3RyZWFtLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnM6IFNr
aXBwZWQgdGhlIG5ldyB0ZXN0LgorICAgICAgICAqIHBsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRp
b25zOiBTa2lwcGVkIHRoZSBuZXcgdGVzdC4KKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9UZXN0RXhw
ZWN0YXRpb25zOiBTa2lwcGVkIHRoZSBuZXcgdGVzdC4KKwogMjAxMy0wMi0yMSAgUnlvc3VrZSBO
aXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBBZGQgZmFpbGluZyB0ZXN0IGV4cGVj
dGF0aW9ucyBmb3IgYnVncyAxMTA1NTQgYW5kIDExMDU1NS4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL21lZGlhL21lZGlhLWhpZ2hlci1wcmlvLWF1ZGlvLXN0cmVhbS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1oaWdoZXItcHJpby1hdWRpby1zdHJlYW0tZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmJhZWI5NTI1NzI0MGQyMWFlYTMxNjg4MmE3MmUxOTI0MzFlNmRiOTcK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1oaWdoZXItcHJpby1h
dWRpby1zdHJlYW0tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK1Rlc3QgcGF1c2VkIGJ5
OgorCitHZXR0aW5nIGEgaGlnaGVyIHByaW9yaXR5IGF1ZGlvIHN0cmVhbS4KK1RoaXMgdGVzdCBk
b2VzIG5vdCB3b3JrIGluIHRoZSBsYXVuY2hlcnMsIG9ubHkgd2l0aCB0aGUgdGVzdCBydW5uZXJz
LgorRVZFTlQocGxheWluZykKK0VYUEVDVEVEIChtZWRpYUVsZW1lbnQucGF1c2VkID09ICdmYWxz
ZScpIE9LCitFVkVOVChwYXVzZSkKK0VYUEVDVEVEIChtZWRpYUVsZW1lbnQucGF1c2VkID09ICd0
cnVlJykgT0sKK0VYUEVDVEVEIChtZWRpYUVsZW1lbnQuZW5kZWQgPT0gJ2ZhbHNlJykgT0sKKwor
RU5EIE9GIFRFU1QKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtaGlnaGVy
LXByaW8tYXVkaW8tc3RyZWFtLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1oaWdoZXIt
cHJpby1hdWRpby1zdHJlYW0uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NTdiMTczYmNlM2UyMWZlYjRlYTEy
YWM5MTc5NDI5YTI5MWRkMzIwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEv
bWVkaWEtaGlnaGVyLXByaW8tYXVkaW8tc3RyZWFtLmh0bWwKQEAgLTAsMCArMSw0NiBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHNjcmlwdCBzcmM9bWVk
aWEtZmlsZS5qcz48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9dmlkZW8tdGVzdC5qcz48
L3NjcmlwdD4KKworICAgICAgICA8c2NyaXB0PgorICAgICAgICAgICAgdmFyIG1lZGlhRWxlbWVu
dDsKKworICAgICAgICAgICAgZnVuY3Rpb24gc3RhcnQoKQorICAgICAgICAgICAgeworICAgICAg
ICAgICAgICAgIG1lZGlhRWxlbWVudCA9IG5ldyBBdWRpbygpOworCisgICAgICAgICAgICAgICAg
d2FpdEZvckV2ZW50KCdlcnJvcicpOworICAgICAgICAgICAgICAgIHdhaXRGb3JFdmVudCgncGxh
eWluZycsIHBsYXlpbmcpOworCisgICAgICAgICAgICAgICAgbWVkaWFFbGVtZW50LnNyYyA9IGZp
bmRNZWRpYUZpbGUoJ2F1ZGlvJywgJ2NvbnRlbnQvdGVzdCcpOworICAgICAgICAgICAgICAgIG1l
ZGlhRWxlbWVudC5wbGF5KCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZ1bmN0aW9u
IHBsYXlpbmcoKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgi
bWVkaWFFbGVtZW50LnBhdXNlZCIsIGZhbHNlKTsKKyAgICAgICAgICAgICAgICB3YWl0Rm9yRXZl
bnQoJ3BhdXNlJywgcGF1c2VkKTsKKyAgICAgICAgICAgICAgICBpbnRlcm5hbHMuc2ltdWxhdGVB
dWRpb0ludGVycnVwdGlvbihtZWRpYUVsZW1lbnQpOworICAgICAgICAgICAgfQorCisgICAgICAg
ICAgICBmdW5jdGlvbiBwYXVzZWQoKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHRl
c3RFeHBlY3RlZCgibWVkaWFFbGVtZW50LnBhdXNlZCIsIHRydWUpOworICAgICAgICAgICAgICAg
IHRlc3RFeHBlY3RlZCgibWVkaWFFbGVtZW50LmVuZGVkIiwgZmFsc2UpOworICAgICAgICAgICAg
ICAgIGNvbnNvbGVXcml0ZSgiIik7CisgICAgICAgICAgICAgICAgZW5kVGVzdCgpOworICAgICAg
ICAgICAgfQorICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHkgb25sb2Fk
PSJzdGFydCgpIj4KKyAgICAgICAgPHA+PGI+VGVzdCBwYXVzZWQgYnk6PC9iPgorICAgICAgICA8
b2w+CisgICAgICAgICAgICA8bGk+R2V0dGluZyBhIGhpZ2hlciBwcmlvcml0eSBhdWRpbyBzdHJl
YW0uPC9saT4KKyAgICAgICAgICAgIDxsaT5UaGlzIHRlc3QgZG9lcyBub3Qgd29yayBpbiB0aGUg
bGF1bmNoZXJzLCBvbmx5IHdpdGgKKyAgICAgICAgICAgIHRoZSB0ZXN0IHJ1bm5lcnMuPC9saT4K
KyAgICAgICAgPC9vbD4KKyAgICAgICAgPC9wPgorICAgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDhiMDA3
YjkyZWQyOGJkMzRmN2U3NzA4NWY2MDQ4ZGRiNzFmYmFiYWYuLmQzNzBlMDgzNDkwNDVkNWY1NWIy
OWU5MzI4NTk2YjE2NDJkNTQ1MGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0vVGVzdEV4cGVjdGF0aW9ucwpAQCAtNDQxNiwzICs0NDE2LDYgQEAgd2Via2l0Lm9yZy9iLzEw
OTk5NCBbIE1hYyBXaW4gXSBjc3MyLjEvMjAxMTAzMjMvcmVwbGFjZWQtZWxlbWVudHMtMDAxLmh0
bSBbIEZhaWwKIHdlYmtpdC5vcmcvYi8xMDk5OTQgWyBNYWMgV2luIF0gZmFzdC9mb3Jtcy9idXR0
b24tZ2VuZXJhdGVkLWNvbnRlbnQuaHRtbCBbIEZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzEwOTk5
NCBbIE1hYyBXaW4gXSBmYXN0L2Zvcm1zL3NlbGVjdC1iYXNlbGluZS5odG1sIFsgRmFpbHVyZSBd
CiB3ZWJraXQub3JnL2IvMTA5OTk0IFsgTWFjIFdpbiBdIHRhYmxlcy9tb3ppbGxhL2J1Z3MvYnVn
OTI2NDctMi5odG1sIFsgRmFpbHVyZSBdCisKKyMgRmVhdHVyZSBub3QgaW1wbGVtZW50ZWQKK3dl
YmtpdC5vcmcvYi85MTYxMSBtZWRpYS9tZWRpYS1oaWdoZXItcHJpby1hdWRpby1zdHJlYW0uaHRt
bCBbIFNraXAgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBl
Y3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwppbmRl
eCAyZjEyNGQxNDkyYmFmNWE3ZWNmNWQ4OTEzNDE4YjU1ZDE1YjU3NWY5Li4wZTkxMGYyNTUzZGM4
YTg2NWEzNTExNDY0NWYzZGE0YjgyMGE1ZTk5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
VGVzdEV4cGVjdGF0aW9ucwpAQCAtMTQ0MywzICsxNDQzLDYgQEAgd2Via2l0Lm9yZy9iLzEwOTk5
NCB0YWJsZXMvbW96aWxsYS9idWdzL2J1ZzkyNjQ3LTIuaHRtbCBbIEZhaWx1cmUgXQogd2Via2l0
Lm9yZy9iLzExMDU1NCBodHRwL3Rlc3RzL3NlY3VyaXR5L2ZlZWQtdXJscy1mcm9tLXJlbW90ZS5o
dG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMTEwNTU1IGZhc3QvY2FudmFzL2NhbnZhcy1j
dXJyZW50UGF0aC5odG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMTEwNTU1IGZhc3QvY2Fu
dmFzL2NhbnZhcy1wYXRoLWNvbnN0cnVjdG9ycy5odG1sIFsgRmFpbHVyZSBdCisKKyMgRmVhdHVy
ZSBub3QgaW1wbGVtZW50ZWQKK3dlYmtpdC5vcmcvYi85MTYxMSBtZWRpYS9tZWRpYS1oaWdoZXIt
cHJpby1hdWRpby1zdHJlYW0uaHRtbCBbIFNraXAgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vcXQvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1Rl
c3RFeHBlY3RhdGlvbnMKaW5kZXggYmQ4MDBiMWI3MDE2MTg0NjlkZjQyMTgyNWQzZTQ0OGUxYjA5
NGZkNC4uOTQzNTFmYzQyMzg4YTZjN2Y5ODc2YTAzNzE5MWFkOGYxOWEzNDFjMiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9xdC9UZXN0RXhwZWN0YXRpb25zCkBAIC0yNjc0LDMgKzI2NzQsNiBAQCB3
ZWJraXQub3JnL2IvMTA5OTk0IGZhc3QvZm9ybXMvYnV0dG9uLWdlbmVyYXRlZC1jb250ZW50Lmh0
bWwgWyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8xMDk5OTQgZmFzdC9mb3Jtcy9zZWxlY3QtYmFz
ZWxpbmUuaHRtbCBbIEZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzEwOTk5NCBzdmcvY3VzdG9tL2Zv
cmVpZ24tb2JqZWN0LXNrZXcuc3ZnIFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMTA5OTk0IHRh
Ymxlcy9tb3ppbGxhL2J1Z3MvYnVnOTI2NDctMi5odG1sIFsgRmFpbHVyZSBdCisKKyMgRmVhdHVy
ZSBub3QgaW1wbGVtZW50ZWQKK3dlYmtpdC5vcmcvYi85MTYxMSBbIE1hYyBXaW4gXSBtZWRpYS9t
ZWRpYS1oaWdoZXItcHJpby1hdWRpby1zdHJlYW0uaHRtbCBbIFNraXAgXQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190026</attachid>
            <date>2013-02-25 03:55:07 -0800</date>
            <delta_ts>2013-03-05 12:06:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-91611-20130225125122.patch</filename>
            <type>text/plain</type>
            <size>18997</size>
            <attacher name="Xabier Rodríguez Calvar">calvaris</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzODg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDIxMWFhMWEyNjNhYWNi
ZDgyNDIyODJlZDYxZjRiYWMyZjZhZWFmZC4uNTA0Yzk0YTAxZDAxMjEzNjA3Y2RjODAxODY4MTk4
YmM5MTA3YzYxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDEzLTAyLTI1ICBYYWJp
ZXIgUm9kcmlndWV6IENhbHZhciAgPGNhbHZhcmlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dT
dHJlYW1lcl0gU3RvcHBpbmcgcGxheWJhY2sgb2YgaHRtbDUgbWVkaWEgd2hlbiByZWNlaXZpbmcg
YSBoaWdoZXIgcHJpb3JpdHkgYXVkaW8gZXZlbnQgbmVlZHMgaW1wbGVtZW50YXRpb24KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkxNjExCisKKyAgICAg
ICAgUmVhY3QgdG8gUkVRVUVTVF9TVEFURSBHU3RyZWFtZXIgbWVzc2FnZSB0byBzdG9wIHRoZSBw
aXBlbGluZSB3aGVuCisgICAgICAgIGEgaGlnaGVyIHByaW9yaXR5IHN0cmVhbSBpcyBwbGF5ZWQu
IFdoZW4gdGhpcyBoYXBwZW5zLCBzdGF0ZXMgYXJlCisgICAgICAgIHVwZGF0ZWQgYWNjb2Rpbmds
eS4KKworICAgICAgICBBZGRlZCBhIG1ldGhvZCB0byBiZSBhYmxlIHRvIGluamVjdCB0aGUgbWVz
c2FnZSBpbiB0aGUgcGlwZWxpbmUKKyAgICAgICAgZnJvbSB0aGUgSW50ZXJuYWxzIChvbmx5IGZv
ciBwb3J0cyB1c2luZyBHU3RyZWFtZXIpIGluIG9yZGVyIHRvIGJlCisgICAgICAgIHVzZWQgaW4g
dGhlIHRlc3RzLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRlc3Q6IG1lZGlhL21lZGlhLWhpZ2hlci1wcmlvLWF1ZGlvLXN0cmVhbS5odG1sCisKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAoTWVkaWFQbGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OnNpbXVsYXRl
QXVkaW9JbnRlcnJ1cHRpb24pOiBBZGRlZCB0bworICAgICAgICBkZWxlZ2F0ZSBvbiB0aGUgcHJp
dmF0ZSB0byBzdG9wIGJlY2F1c2Ugb2YgYSBzdHJlYW0gd2l0aCBiaWdnZXIKKyAgICAgICAgcHJp
b3JpdHkuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmg6
CisgICAgICAgIChNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2UpOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlOjpzaW11bGF0ZUF1ZGlvSW50ZXJydXB0aW9u
KToKKyAgICAgICAgQWRkZWQgZGVmYXVsdCBlbXB0eSBtZXRob2QgaW4gdGhlIGNvbW1vbiBwcml2
YXRlIGhlYWRlci4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmluaXRpYWxpemVH
U3RyZWFtZXJBbmRSZWdpc3RlcldlYktpdEVsZW1lbnRzKTogU2V0dGluZworICAgICAgICB0aGUg
cHVsc2Ugcm9sZSB0byBnZXQgdGhlIHJlcXVlc3Qgc3RhdGUgZXZlbnRzIGZyb20gcHVsc2VzaW5r
LgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpNZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXIpOgorICAgICAgICBJbml0aWFsaXphdGlvbiBvZiB0aGUgbmV3
IGF0dHJpYnV0ZQorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
OjpjaGFuZ2VQaXBlbGluZVN0YXRlKToKKyAgICAgICAgS2VlcGluZyB0aGUgY3VycmVudCBzdGF0
ZS4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6aGFuZGxl
TWVzc2FnZSk6IFJlYWN0aW5nIHRvCisgICAgICAgIHRoZSBSRVFVRVNUX1NUQVRFIG1lc3NhZ2UK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6dXBkYXRlU3Rh
dGVzKTogQXZvaWRpbmcKKyAgICAgICAgdXBkYXRpbmcgdGhlIHN0YXRlIHR3aWNlLgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpzaW11bGF0ZUF1ZGlvSW50
ZXJydXB0aW9uKToKKyAgICAgICAgQWRkZWQuIEluamVjdHMgdGhlIFJFUVVFU1RfU1RBVEUgbWVz
c2FnZSB0byB0aGUgcGlwZWxpbmUuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oOgorICAgICAgICAoTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyKTogQWRkZWQgbmV3IG1ldGhvZCBhbmQgYXR0cmlidXRlLgorICAgICAg
ICAqIHRlc3RpbmcvSW50ZXJuYWxzLmlkbDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5o
OgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgor
ICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpzaW11bGF0ZUF1ZGlvSW50ZXJydXB0aW9uKTog
QWRkZWQgdG8KKyAgICAgICAgY2FsbCB0aGUgbWV0aG9kIHRvIHN0b3AgdGhlIGVsZW1lbnQgYmVj
YXVzZSBvZiBhIGhpZ2hlciBwcmlvCisgICAgICAgIHN0cmVhbSBhdCB0aGUgdGVzdHMuCisKIDIw
MTMtMDItMjQgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgW01hY10gY2xlYW51cCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24gYW5kIEluYmFu
ZFRleHRUcmFja1ByaXZhdGVBVkYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL01lZGlhUGxheWVyLmNwcAppbmRleCAzNmUyMGY1MTM0MTlhYjA2ZjhjZDIxNjBhNTcxNTk2
Nzc3ODRkN2EyLi45MDQ2OTRmZWQ2M2IxZjNiOTA1YjJlMTM3ODJkNDM5MWM4MTdlODllIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCkBA
IC0xMTI2LDYgKzExMjYsMTYgQEAgdm9pZCBNZWRpYVBsYXllcjo6cmVxdWVyeU1lZGlhRW5naW5l
cygpCiAgICAgaW5zdGFsbGVkTWVkaWFFbmdpbmVzKFJlcXVlcnlFbmdpbmVzKTsKIH0KIAorI2lm
IFVTRShHU1RSRUFNRVIpCit2b2lkIE1lZGlhUGxheWVyOjpzaW11bGF0ZUF1ZGlvSW50ZXJydXB0
aW9uKCkKK3sKKyAgICBpZiAoIW1fcHJpdmF0ZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9w
cml2YXRlLT5zaW11bGF0ZUF1ZGlvSW50ZXJydXB0aW9uKCk7Cit9CisjZW5kaWYKKwogfQogCiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlh
UGxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5o
CmluZGV4IDEyMzJhNGQ5NDliMDk3ODA1YmZhZmMyNTgxYTgzNDYxNTJjYTBkNWYuLmZhZjQ2Nzg4
YTg1OTRlYjI1YzNkZmVlZjIwODQwNGIwMjZhZWYzNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaApAQCAtNDM3LDYgKzQzNywxMCBAQCBwdWJs
aWM6CiAKICAgICBzdGF0aWMgdm9pZCByZXF1ZXJ5TWVkaWFFbmdpbmVzKCk7CiAKKyNpZiBVU0Uo
R1NUUkVBTUVSKQorICAgIHZpcnR1YWwgdm9pZCBzaW11bGF0ZUF1ZGlvSW50ZXJydXB0aW9uKCk7
CisjZW5kaWYKKwogcHJpdmF0ZToKICAgICBNZWRpYVBsYXllcihNZWRpYVBsYXllckNsaWVudCop
OwogICAgIHZvaWQgbG9hZFdpdGhOZXh0TWVkaWFFbmdpbmUoTWVkaWFQbGF5ZXJGYWN0b3J5Kik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXll
clByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVy
UHJpdmF0ZS5oCmluZGV4IDFmM2YzZTEwYTg3YzkzOTU3NWIzYmM3NzczOGJjMTI4ODBkMWE1NDQu
LjRmODNkNjEzOTIwMWRiMmFiOWIzYmFiMjIyZTdiMWIzMTM0Njc2NmYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oCkBA
IC0xODAsNiArMTgwLDEwIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgcmVxdWlyZXNUZXh0
VHJhY2tSZXByZXNlbnRhdGlvbigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVh
bCB2b2lkIHNldFRleHRUcmFja1JlcHJlc2VudGF0aW9uKFRleHRUcmFja1JlcHJlc2VudGF0aW9u
KikgeyB9CiAjZW5kaWYKKworI2lmIFVTRShHU1RSRUFNRVIpCisgICAgdmlydHVhbCB2b2lkIHNp
bXVsYXRlQXVkaW9JbnRlcnJ1cHRpb24oKSB7IH0KKyNlbmRpZgogfTsKIAogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCAyYWRmZTc0ZmJk
YjFmOGIyNjAzNzNiMWQ0NmExYzA4NTFjNTc0NjQwLi41YjAzMjg2YmZjMWNhOWRmYTc5NmRlNmUy
ZmExMGU4ZTQ3NTM4MjBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyLmNwcApAQCAtMTg3LDYgKzE4Nyw3IEBAIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lcjo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyKE1lZGlhUGxheWVyKiBwbGF5ZXIpCiAg
ICAgLCBtX3RvdGFsQnl0ZXMoLTEpCiAgICAgLCBtX29yaWdpbmFsUHJlbG9hZFdhc0F1dG9BbmRX
YXNPdmVycmlkZGVuKGZhbHNlKQogICAgICwgbV9wcmVzZXJ2ZXNQaXRjaChmYWxzZSkKKyAgICAs
IG1fcHJldmlvdXNTdGF0ZShHU1RfU1RBVEVfVk9JRF9QRU5ESU5HKQogewogfQogCkBAIC0zMTcs
MTcgKzMxOCwxNyBAQCBib29sIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y2hhbmdlUGlw
ZWxpbmVTdGF0ZShHc3RTdGF0ZSBuZXdTdGF0ZSkKIHsKICAgICBBU1NFUlQobmV3U3RhdGUgPT0g
R1NUX1NUQVRFX1BMQVlJTkcgfHwgbmV3U3RhdGUgPT0gR1NUX1NUQVRFX1BBVVNFRCk7CiAKLSAg
ICBHc3RTdGF0ZSBjdXJyZW50U3RhdGU7CiAgICAgR3N0U3RhdGUgcGVuZGluZzsKIAotICAgIGdz
dF9lbGVtZW50X2dldF9zdGF0ZShtX3BsYXlCaW4uZ2V0KCksICZjdXJyZW50U3RhdGUsICZwZW5k
aW5nLCAwKTsKLSAgICBMT0dfTUVESUFfTUVTU0FHRSgiQ3VycmVudCBzdGF0ZTogJXMsIHBlbmRp
bmc6ICVzIiwgZ3N0X2VsZW1lbnRfc3RhdGVfZ2V0X25hbWUoY3VycmVudFN0YXRlKSwgZ3N0X2Vs
ZW1lbnRfc3RhdGVfZ2V0X25hbWUocGVuZGluZykpOwotICAgIGlmIChjdXJyZW50U3RhdGUgPT0g
bmV3U3RhdGUgfHwgcGVuZGluZyA9PSBuZXdTdGF0ZSkKKyAgICBnc3RfZWxlbWVudF9nZXRfc3Rh
dGUobV9wbGF5QmluLmdldCgpLCAmbV9wcmV2aW91c1N0YXRlLCAmcGVuZGluZywgMCk7CisgICAg
TE9HX01FRElBX01FU1NBR0UoIkN1cnJlbnQgc3RhdGU6ICVzLCBpbnRlbmRlZCAlcywgcGVuZGlu
ZzogJXMiLCBnc3RfZWxlbWVudF9zdGF0ZV9nZXRfbmFtZShtX3ByZXZpb3VzU3RhdGUpLAorICAg
ICAgICBnc3RfZWxlbWVudF9zdGF0ZV9nZXRfbmFtZShuZXdTdGF0ZSksIGdzdF9lbGVtZW50X3N0
YXRlX2dldF9uYW1lKHBlbmRpbmcpKTsKKyAgICBpZiAobV9wcmV2aW91c1N0YXRlID09IG5ld1N0
YXRlIHx8IHBlbmRpbmcgPT0gbmV3U3RhdGUpCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAg
R3N0U3RhdGVDaGFuZ2VSZXR1cm4gc2V0U3RhdGVSZXN1bHQgPSBnc3RfZWxlbWVudF9zZXRfc3Rh
dGUobV9wbGF5QmluLmdldCgpLCBuZXdTdGF0ZSk7CiAgICAgR3N0U3RhdGUgcGF1c2VkT3JQbGF5
aW5nID0gbmV3U3RhdGUgPT0gR1NUX1NUQVRFX1BMQVlJTkcgPyBHU1RfU1RBVEVfUEFVU0VEIDog
R1NUX1NUQVRFX1BMQVlJTkc7Ci0gICAgaWYgKGN1cnJlbnRTdGF0ZSAhPSBwYXVzZWRPclBsYXlp
bmcgJiYgc2V0U3RhdGVSZXN1bHQgPT0gR1NUX1NUQVRFX0NIQU5HRV9GQUlMVVJFKSB7CisgICAg
aWYgKG1fcHJldmlvdXNTdGF0ZSAhPSBwYXVzZWRPclBsYXlpbmcgJiYgc2V0U3RhdGVSZXN1bHQg
PT0gR1NUX1NUQVRFX0NIQU5HRV9GQUlMVVJFKSB7CiAgICAgICAgIGxvYWRpbmdGYWlsZWQoTWVk
aWFQbGF5ZXI6OkVtcHR5KTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KQEAgLTYyNyw2
ICs2MjgsNyBAQCBnYm9vbGVhbiBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmhhbmRsZU1l
c3NhZ2UoR3N0TWVzc2FnZSogbWVzc2FnZSkKICAgICBib29sIGlzc3VlRXJyb3IgPSB0cnVlOwog
ICAgIGJvb2wgYXR0ZW1wdE5leHRMb2NhdGlvbiA9IGZhbHNlOwogICAgIGNvbnN0IEdzdFN0cnVj
dHVyZSogc3RydWN0dXJlID0gZ3N0X21lc3NhZ2VfZ2V0X3N0cnVjdHVyZShtZXNzYWdlKTsKKyAg
ICBHc3RTdGF0ZSByZXF1ZXN0ZWRTdGF0ZTsKIAogICAgIGlmIChzdHJ1Y3R1cmUpIHsKICAgICAg
ICAgY29uc3QgZ2NoYXIqIG1lc3NhZ2VUeXBlTmFtZSA9IGdzdF9zdHJ1Y3R1cmVfZ2V0X25hbWUo
c3RydWN0dXJlKTsKQEAgLTcxMyw2ICs3MTUsMTQgQEAgZ2Jvb2xlYW4gTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyOjpoYW5kbGVNZXNzYWdlKEdzdE1lc3NhZ2UqIG1lc3NhZ2UpCiAgICAgICAg
IExPR19NRURJQV9NRVNTQUdFKCJEdXJhdGlvbiBjaGFuZ2VkIik7CiAgICAgICAgIGR1cmF0aW9u
Q2hhbmdlZCgpOwogICAgICAgICBicmVhazsKKyAgICBjYXNlIEdTVF9NRVNTQUdFX1JFUVVFU1Rf
U1RBVEU6CisgICAgICAgIGdzdF9tZXNzYWdlX3BhcnNlX3JlcXVlc3Rfc3RhdGUobWVzc2FnZSwg
JnJlcXVlc3RlZFN0YXRlKTsKKyAgICAgICAgaWYgKHJlcXVlc3RlZFN0YXRlIDwgbV9wcmV2aW91
c1N0YXRlKSB7CisgICAgICAgICAgICBMT0dfTUVESUFfTUVTU0FHRSgiRWxlbWVudCAlcyByZXF1
ZXN0ZWQgc3RhdGUgY2hhbmdlIHRvICVzIiwgZ3N0X2VsZW1lbnRfZ2V0X25hbWUoR1NUX01FU1NB
R0VfU1JDKG1lc3NhZ2UpKSwKKyAgICAgICAgICAgICAgICBnc3RfZWxlbWVudF9zdGF0ZV9nZXRf
bmFtZShyZXF1ZXN0ZWRTdGF0ZSkpOworICAgICAgICAgICAgY2hhbmdlUGlwZWxpbmVTdGF0ZShy
ZXF1ZXN0ZWRTdGF0ZSk7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoK
ICAgICAgICAgTE9HX01FRElBX01FU1NBR0UoIlVuaGFuZGxlZCBHU3RyZWFtZXIgbWVzc2FnZSB0
eXBlOiAlcyIsCiAgICAgICAgICAgICAgICAgICAgIEdTVF9NRVNTQUdFX1RZUEVfTkFNRShtZXNz
YWdlKSk7CkBAIC05NjIsNiArOTcyLDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXI6OnVwZGF0ZVN0YXRlcygpCiAgICAgICAgICZzdGF0ZSwgJnBlbmRpbmcsIDI1MCAqIEdTVF9O
U0VDT05EKTsKIAogICAgIGJvb2wgc2hvdWxkVXBkYXRlQWZ0ZXJTZWVrID0gZmFsc2U7CisgICAg
Ym9vbCBzaG91bGRVcGRhdGVQbGF5YmFja1N0YXRlID0gZmFsc2U7CiAgICAgc3dpdGNoIChyZXQp
IHsKICAgICBjYXNlIEdTVF9TVEFURV9DSEFOR0VfU1VDQ0VTUzoKICAgICAgICAgTE9HX01FRElB
X01FU1NBR0UoIlN0YXRlOiAlcywgcGVuZGluZzogJXMiLApAQCAtMTA0OCw2ICsxMDU5LDE3IEBA
IHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjp1cGRhdGVTdGF0ZXMoKQogICAgICAg
ICAgICAgbV9zZWVraW5nID0gZmFsc2U7CiAgICAgICAgIH0KIAorICAgICAgICAvLyBXZSBjb25z
aWRlciBhIHN0YXRlIGNoYW5nZSB3aGVuIGdvaW5nIHRvIEdTVF9TVEFURV9QTEFZSU5HIG9yIHRv
IEdTVF9TVEFURV9QQVVTRUQgZnJvbSBHU1RfU1RBVEVfUExBWUlORy4gV2UKKyAgICAgICAgLy8g
YWxzbyBjb25zaWRlciBHU1RfU1RBVEVfTlVMTCBiZWNhdXNlIHBsYXliaW4yIGNhbiBhdm9pZCBy
ZXBvcnRpbmcgc3RhdGUgY2hhbmdlcyB3aGVuIHRyYW5zaXRpb25pbmcgdG8KKyAgICAgICAgLy8g
R1NUX1NUQVRFX05VTEwgYnV0IHdlIGRvIG5vdCBjb25zaWRlciBHU1RfU1RBVEVfUkVBRFkgYmVj
YXVzZSBpZiBpdCBpcyBub3cgR1NUX1NUQVRFX1JFQURZIGl0IG1lYW5zIHRoYXQgaXQKKyAgICAg
ICAgLy8gaGFzIGFscmVhZHkgdHJhbnNpdGlvbmVkIHRocm91Z2ggR1NUX1NUQVRFX1BBVVNFRCBh
bmQgdGhhdCdzIGFscmVhZHkgY29udGVtcGxhdGVkLgorICAgICAgICBpZiAoKG1fcHJldmlvdXNT
dGF0ZSA9PSBHU1RfU1RBVEVfUEFVU0VEICYmIHN0YXRlID09IEdTVF9TVEFURV9QTEFZSU5HKQor
ICAgICAgICAgICAgfHwgKChzdGF0ZSA9PSBHU1RfU1RBVEVfUEFVU0VEIHx8IHN0YXRlID09IEdT
VF9TVEFURV9OVUxMKSAmJiBtX3ByZXZpb3VzU3RhdGUgPT0gR1NUX1NUQVRFX1BMQVlJTkcpKSB7
CisgICAgICAgICAgICBzaG91bGRVcGRhdGVQbGF5YmFja1N0YXRlID0gdHJ1ZTsKKyAgICAgICAg
ICAgIG1fcHJldmlvdXNTdGF0ZSA9IHN0YXRlOworICAgICAgICAgICAgTE9HX01FRElBX01FU1NB
R0UoIlN0YXRlIGNoYW5nZSB0byAlcyBjb21wbGV0ZWQiLCBnc3RfZWxlbWVudF9zdGF0ZV9nZXRf
bmFtZShtX3ByZXZpb3VzU3RhdGUpKTsKKyAgICAgICAgfQorCiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgR1NUX1NUQVRFX0NIQU5HRV9BU1lOQzoKICAgICAgICAgTE9HX01FRElBX01FU1NBR0Uo
IkFzeW5jOiBTdGF0ZTogJXMsIHBlbmRpbmc6ICVzIiwKQEAgLTExMjAsNiArMTE0MiwxMCBAQCB2
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6dXBkYXRlU3RhdGVzKCkKICAgICBpZiAo
c2hvdWxkVXBkYXRlQWZ0ZXJTZWVrKQogICAgICAgICB0aW1lQ2hhbmdlZCgpOwogCisgICAgaWYg
KHNob3VsZFVwZGF0ZVBsYXliYWNrU3RhdGUpIHsKKyAgICAgICAgTE9HX01FRElBX01FU1NBR0Uo
IlN0YXRlIGNoYW5nZWQgdG8gJXMiLCBnc3RfZWxlbWVudF9zdGF0ZV9nZXRfbmFtZShzdGF0ZSkp
OworICAgICAgICBtX3BsYXllci0+cGxheWJhY2tTdGF0ZUNoYW5nZWQoKTsKKyAgICB9CiAgICAg
aWYgKG1fbmV0d29ya1N0YXRlICE9IG9sZE5ldHdvcmtTdGF0ZSkgewogICAgICAgICBMT0dfTUVE
SUFfTUVTU0FHRSgiTmV0d29yayBTdGF0ZSBDaGFuZ2VkIGZyb20gJXUgdG8gJXUiLAogICAgICAg
ICAgICAgb2xkTmV0d29ya1N0YXRlLCBtX25ldHdvcmtTdGF0ZSk7CkBAIC0xNDkyLDcgKzE1MTgs
MTUgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmNyZWF0ZUF1ZGlvU2luaygp
CiAKICAgICBHc3RFbGVtZW50KiBjb252ZXJ0ID0gZ3N0X2VsZW1lbnRfZmFjdG9yeV9tYWtlKCJh
dWRpb2NvbnZlcnQiLCAwKTsKICAgICBHc3RFbGVtZW50KiByZXNhbXBsZSA9IGdzdF9lbGVtZW50
X2ZhY3RvcnlfbWFrZSgiYXVkaW9yZXNhbXBsZSIsIDApOwotICAgIEdzdEVsZW1lbnQqIHNpbmsg
PSBnc3RfZWxlbWVudF9mYWN0b3J5X21ha2UoImF1dG9hdWRpb3NpbmsiLCAwKTsKKyAgICBHc3RF
bGVtZW50KiBzaW5rID0gZ3N0X2VsZW1lbnRfZmFjdG9yeV9tYWtlKCJwdWxzZXNpbmsiLCAwKTsK
KworICAgIC8vIFdlIHRyeSB0byBpbnN0YW50aWF0ZSBwdWxzZXNpbmsgdG8gc2V0IHRoZSBtZWRp
YSByb2xlIGluIG9yZGVyIHRvIGdldCB0aGUgUkVRVUVTVF9TVEFURSBtZXNzYWdlcyBmcm9tIHRo
ZSByaW5nLgorICAgIC8vIElmIG5vdCwgd2UgZmFsbCBiYWNrIHRvIHRoZSBkZWZhdWx0IGF1ZGlv
IHNpbmsgYW5kIGxvc2UgdGhlIGZlYXR1cmUuCisgICAgaWYgKHNpbmspIHsKKyAgICAgICAgR3N0
U3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBnc3Rfc3RydWN0dXJlX25ldygic3RyZWFtLXByb3BlcnRp
ZXMiLCAibWVkaWEucm9sZSIsIEdfVFlQRV9TVFJJTkcsICJ2aWRlbyIsIE5VTEwpOworICAgICAg
ICBnX29iamVjdF9zZXQoc2luaywgInN0cmVhbS1wcm9wZXJ0aWVzIiwgc3RydWN0dXJlLCBOVUxM
KTsKKyAgICB9IGVsc2UKKyAgICAgICAgc2luayA9IGdzdF9lbGVtZW50X2ZhY3RvcnlfbWFrZSgi
YXV0b2F1ZGlvc2luayIsIDApOwogCiAgICAgR3N0RWxlbWVudCogYXVkaW9TaW5rID0gZ3N0X2Jp
bl9uZXcoImF1ZGlvLXNpbmsiKTsKICAgICBnc3RfYmluX2FkZF9tYW55KEdTVF9CSU4oYXVkaW9T
aW5rKSwgc2NhbGUsIGNvbnZlcnQsIHJlc2FtcGxlLCBzaW5rLCBOVUxMKTsKQEAgLTE1MzksNiAr
MTU3MywxNCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y3JlYXRlR1NUUGxh
eUJpbigpCiAgICAgY3JlYXRlQXVkaW9TaW5rKCk7CiB9CiAKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyOjpzaW11bGF0ZUF1ZGlvSW50ZXJydXB0aW9uKCkKK3sKKyAgICBHc3RFbGVt
ZW50KiBwbGF5QmluID0gbV9wbGF5QmluLmdldCgpOworICAgIEdzdE1lc3NhZ2UqIG1lc3NhZ2Ug
PSBnc3RfbWVzc2FnZV9uZXdfcmVxdWVzdF9zdGF0ZShHU1RfT0JKRUNUKHBsYXlCaW4pLAorICAg
ICAgICBHU1RfU1RBVEVfUEFVU0VEKTsKKyAgICBnc3RfZWxlbWVudF9wb3N0X21lc3NhZ2UocGxh
eUJpbiwgbWVzc2FnZSk7Cit9CisKIH0KIAogI2VuZGlmIC8vIFVTRShHU1RSRUFNRVIpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgKaW5kZXggOGExZmQ0ODYw
NTQyNGI1MTAxZjA0OWUxZmQwNWM1MGVjMTBhNjQwZS4uYmYwYTRlNTQ2ZjcyMGRkYjI5N2Y3Nzhi
ZTFiNGMwOTQ5MmUyNTMyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXIuaApAQCAtODgsNiArODgsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzb3VyY2VDaGFu
Z2VkKCk7CiAgICAgR3N0RWxlbWVudCogYXVkaW9TaW5rKCkgY29uc3Q7CiAKKyAgICB2b2lkIHNp
bXVsYXRlQXVkaW9JbnRlcnJ1cHRpb24oKTsKKwogcHJpdmF0ZToKICAgICBNZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXIoTWVkaWFQbGF5ZXIqKTsKIApAQCAtMTUzLDYgKzE1NSw3IEBAIHByaXZh
dGU6CiAgICAgS1VSTCBtX3VybDsKICAgICBib29sIG1fb3JpZ2luYWxQcmVsb2FkV2FzQXV0b0Fu
ZFdhc092ZXJyaWRkZW47CiAgICAgYm9vbCBtX3ByZXNlcnZlc1BpdGNoOworICAgIEdzdFN0YXRl
IG1fcHJldmlvdXNTdGF0ZTsKIH07CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNw
cAppbmRleCBjZjU2ZjMxZmNhZWM4ZGE3YmRiOWIzOTFhMzBhNzAzOTUwMDUzMWIwLi40NGU3Zjc1
ZTc1NDRjYzEwODk4NGRkMTZiNzQ5MDg1MTAzNGM5NTFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuY3BwCkBAIC00OSw2ICs0OSw3IEBACiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAj
aW5jbHVkZSAiSFRNTENvbnRlbnRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVu
dC5oIgorI2luY2x1ZGUgIkhUTUxNZWRpYUVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMu
aCIKICNpbmNsdWRlICJIVE1MVGV4dEFyZWFFbGVtZW50LmgiCiAjaW5jbHVkZSAiSGlzdG9yeUl0
ZW0uaCIKQEAgLTIwMTAsNCArMjAxMSwxMiBAQCB2b2lkIEludGVybmFsczo6aW5pdGlhbGl6ZU1v
Y2tDRE0oKQogfQogI2VuZGlmCiAKK3ZvaWQgSW50ZXJuYWxzOjpzaW11bGF0ZUF1ZGlvSW50ZXJy
dXB0aW9uKE5vZGUgKm5vZGUpCit7CisjaWYgVVNFKEdTVFJFQU1FUikKKyAgICBIVE1MTWVkaWFF
bGVtZW50KiBlbGVtZW50ID0gdG9NZWRpYUVsZW1lbnQobm9kZSk7CisgICAgZWxlbWVudC0+cGxh
eWVyKCktPnNpbXVsYXRlQXVkaW9JbnRlcnJ1cHRpb24oKTsKKyNlbmRpZgorfQorCiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oIGIvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuaAppbmRleCBjYzNiYWU2NmFkZmU2ZjU2YzEwZWM0YjQ3ZTkz
ZDI2OTJlNTNhYWQ1Li5mYzgyNDRiNzA1MjcwYmJiZmVkZDFmOTBmMjRlY2NlM2M1NWE3OTBkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKQEAgLTI5MCw2ICsyOTAsOCBAQCBwdWJsaWM6
CiAgICAgdm9pZCBlbmFibGVNb2NrU3BlZWNoU3ludGhlc2l6ZXIoKTsKICNlbmRpZgogICAgICAg
ICAgICAgICAgICAgICAKKyAgICB2b2lkIHNpbXVsYXRlQXVkaW9JbnRlcnJ1cHRpb24oTm9kZSop
OworCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IEludGVybmFscyhEb2N1bWVudCopOwogICAgIERv
Y3VtZW50KiBjb250ZXh0RG9jdW1lbnQoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmlkbAppbmRleCBmYjA2MDA5OGE5ZmIzYTlmOTIxZjk2NWUzYWFiMzM1ZmU3NDIzNTIxLi4y
YWU5NTU4OTkzNzU0MTVkMzFiNDA3NjI1N2RiZDJhYjM3NDhhMWUwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbHMuaWRsCkBAIC0yNTEsNiArMjUxLDggQEAKIAogICAgIHZvaWQgc2V0VXNl
c092ZXJsYXlTY3JvbGxiYXJzKGluIGJvb2xlYW4gZW5hYmxlZCk7CiAKKyAgICB2b2lkIHNpbXVs
YXRlQXVkaW9JbnRlcnJ1cHRpb24oaW4gTm9kZSBub2RlKTsKKwogICAgIFtDb25kaXRpb25hbD1F
TkNSWVBURURfTUVESUFfVjJdIHZvaWQgaW5pdGlhbGl6ZU1vY2tDRE0oKTsKICAgICAKICAgICBb
Q29uZGl0aW9uYWw9U1BFRUNIX1NZTlRIRVNJU10gdm9pZCBlbmFibGVNb2NrU3BlZWNoU3ludGhl
c2l6ZXIoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwppbmRleCA4ZmJjNTdjZjJjOGYxMzI3ZTg2YjBlNGY5MjhlYTg4ZjIzZjg0YWI1
Li4wZmZmNDA0YmE1Njc0YzAxZDc3ZTFkZmIxNmNmMGYzM2QzMDEwOTE0IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjAgQEAKKzIwMTMtMDItMjUgIFhhYmllciBSb2RyaWd1ZXogQ2FsdmFyICA8Y2FsdmFyaXNA
aWdhbGlhLmNvbT4KKworICAgICAgICBbR1N0cmVhbWVyXSBTdG9wcGluZyBwbGF5YmFjayBvZiBo
dG1sNSBtZWRpYSB3aGVuIHJlY2VpdmluZyBhIGhpZ2hlciBwcmlvcml0eSBhdWRpbyBldmVudCBu
ZWVkcyBpbXBsZW1lbnRhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9OTE2MTEKKworICAgICAgICBDcmVhdGVkIHRlc3QsIGV4cGVjdGVkIHJlc3Vs
dCBhbmQgdXBkYXRlZCBvdGhlciBwb3J0cworICAgICAgICBleHBlY3RhdGlvbnMuCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBtZWRpYS9tZWRpYS1o
aWdoZXItcHJpby1hdWRpby1zdHJlYW0tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBt
ZWRpYS9tZWRpYS1oaWdoZXItcHJpby1hdWRpby1zdHJlYW0uaHRtbDogQWRkZWQuCisgICAgICAg
ICogcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9uczogU2tpcHBlZCB0aGUgbmV3IHRl
c3QuCisgICAgICAgICogcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnM6IFNraXBwZWQgdGhl
IG5ldyB0ZXN0LgorICAgICAgICAqIHBsYXRmb3JtL3F0L1Rlc3RFeHBlY3RhdGlvbnM6IFNraXBw
ZWQgdGhlIG5ldyB0ZXN0IGZvciBNYWMgYW5kCisgICAgICAgIFdpbi4KKwogMjAxMy0wMi0yNCAg
S2lob25nIEt3b24gIDxraWhvbmcua3dvbkBzYW1zdW5nLmNvbT4KIAogICAgICAgICBBZGQgYW4g
QVNTRVJUIHRvIGRpZENoYW5nZURldmljZVByb3hpbWl0eQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvbWVkaWEvbWVkaWEtaGlnaGVyLXByaW8tYXVkaW8tc3RyZWFtLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL21lZGlhL21lZGlhLWhpZ2hlci1wcmlvLWF1ZGlvLXN0cmVhbS1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYmFlYjk1MjU3MjQwZDIxYWVhMzE2ODgyYTcyZTE5MjQzMWU2ZGI5Nwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlhL21lZGlhLWhpZ2hlci1wcmlvLWF1
ZGlvLXN0cmVhbS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorVGVzdCBwYXVzZWQgYnk6
CisKK0dldHRpbmcgYSBoaWdoZXIgcHJpb3JpdHkgYXVkaW8gc3RyZWFtLgorVGhpcyB0ZXN0IGRv
ZXMgbm90IHdvcmsgaW4gdGhlIGxhdW5jaGVycywgb25seSB3aXRoIHRoZSB0ZXN0IHJ1bm5lcnMu
CitFVkVOVChwbGF5aW5nKQorRVhQRUNURUQgKG1lZGlhRWxlbWVudC5wYXVzZWQgPT0gJ2ZhbHNl
JykgT0sKK0VWRU5UKHBhdXNlKQorRVhQRUNURUQgKG1lZGlhRWxlbWVudC5wYXVzZWQgPT0gJ3Ry
dWUnKSBPSworRVhQRUNURUQgKG1lZGlhRWxlbWVudC5lbmRlZCA9PSAnZmFsc2UnKSBPSworCitF
TkQgT0YgVEVTVAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1oaWdoZXIt
cHJpby1hdWRpby1zdHJlYW0uaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL21lZGlhLWhpZ2hlci1w
cmlvLWF1ZGlvLXN0cmVhbS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg1N2IxNzNiY2UzZTIxZmViNGVhMTJh
YzkxNzk0MjlhMjkxZGQzMjAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9t
ZWRpYS1oaWdoZXItcHJpby1hdWRpby1zdHJlYW0uaHRtbApAQCAtMCwwICsxLDQ2IEBACis8IURP
Q1RZUEUgaHRtbD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8c2NyaXB0IHNyYz1tZWRp
YS1maWxlLmpzPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz12aWRlby10ZXN0LmpzPjwv
c2NyaXB0PgorCisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAgICB2YXIgbWVkaWFFbGVtZW50
OworCisgICAgICAgICAgICBmdW5jdGlvbiBzdGFydCgpCisgICAgICAgICAgICB7CisgICAgICAg
ICAgICAgICAgbWVkaWFFbGVtZW50ID0gbmV3IEF1ZGlvKCk7CisKKyAgICAgICAgICAgICAgICB3
YWl0Rm9yRXZlbnQoJ2Vycm9yJyk7CisgICAgICAgICAgICAgICAgd2FpdEZvckV2ZW50KCdwbGF5
aW5nJywgcGxheWluZyk7CisKKyAgICAgICAgICAgICAgICBtZWRpYUVsZW1lbnQuc3JjID0gZmlu
ZE1lZGlhRmlsZSgnYXVkaW8nLCAnY29udGVudC90ZXN0Jyk7CisgICAgICAgICAgICAgICAgbWVk
aWFFbGVtZW50LnBsYXkoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZnVuY3Rpb24g
cGxheWluZygpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJt
ZWRpYUVsZW1lbnQucGF1c2VkIiwgZmFsc2UpOworICAgICAgICAgICAgICAgIHdhaXRGb3JFdmVu
dCgncGF1c2UnLCBwYXVzZWQpOworICAgICAgICAgICAgICAgIGludGVybmFscy5zaW11bGF0ZUF1
ZGlvSW50ZXJydXB0aW9uKG1lZGlhRWxlbWVudCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAg
ICAgIGZ1bmN0aW9uIHBhdXNlZCgpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdGVz
dEV4cGVjdGVkKCJtZWRpYUVsZW1lbnQucGF1c2VkIiwgdHJ1ZSk7CisgICAgICAgICAgICAgICAg
dGVzdEV4cGVjdGVkKCJtZWRpYUVsZW1lbnQuZW5kZWQiLCBmYWxzZSk7CisgICAgICAgICAgICAg
ICAgY29uc29sZVdyaXRlKCIiKTsKKyAgICAgICAgICAgICAgICBlbmRUZXN0KCk7CisgICAgICAg
ICAgICB9CisgICAgICAgIDwvc2NyaXB0PgorICAgIDwvaGVhZD4KKyAgICA8Ym9keSBvbmxvYWQ9
InN0YXJ0KCkiPgorICAgICAgICA8cD48Yj5UZXN0IHBhdXNlZCBieTo8L2I+CisgICAgICAgIDxv
bD4KKyAgICAgICAgICAgIDxsaT5HZXR0aW5nIGEgaGlnaGVyIHByaW9yaXR5IGF1ZGlvIHN0cmVh
bS48L2xpPgorICAgICAgICAgICAgPGxpPlRoaXMgdGVzdCBkb2VzIG5vdCB3b3JrIGluIHRoZSBs
YXVuY2hlcnMsIG9ubHkgd2l0aAorICAgICAgICAgICAgdGhlIHRlc3QgcnVubmVycy48L2xpPgor
ICAgICAgICA8L29sPgorICAgICAgICA8L3A+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggYzgxZGE4
OTY0NmQ3OWUzYmVjMGVjMzI3M2Y2YTQ0OThhZTFhMTdhNS4uYTdjODY0Yjg2ZjY4ZWEyMDJiZDI3
MmNiODVjYjBkZWU2MjE2YmY4OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0vVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS9UZXN0RXhwZWN0YXRpb25zCkBAIC00NDExLDMgKzQ0MTEsNSBAQCB3ZWJraXQub3JnL2IvMTEw
MjQ3IFsgRGVidWcgXSBmYXN0L3dvcmtlcnMvc3RvcmFnZS9pbnRlcnJ1cHQtZGF0YWJhc2UuaHRt
bCBbIFBhcwogCiB3ZWJraXQub3JnL2IvMTEwNTY4IFsgTW91bnRhaW5MaW9uIF0gZmFzdC9tdWx0
aWNvbC9uZXdtdWx0aWNvbC9wb3NpdGlvbmVkLXNwbGl0Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJl
IF0KIAorIyBGZWF0dXJlIG5vdCBpbXBsZW1lbnRlZAord2Via2l0Lm9yZy9iLzkxNjExIG1lZGlh
L21lZGlhLWhpZ2hlci1wcmlvLWF1ZGlvLXN0cmVhbS5odG1sIFsgU2tpcCBdCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDVmZjkyZjdmMDM0MzgyMjU3ZTli
OGE1NjBmZTViNDk4MTRjMjU0M2EuLjFlNDllZTI3MzcwOWJkMjE5ODY3MTY0MGVkY2M4ZDA3MzI1
YzE4MDYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRp
b25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCkBAIC0x
NDM3LDMgKzE0MzcsNiBAQCB3ZWJraXQub3JnL2IvMTEwMTg2IGluc3BlY3Rvci1wcm90b2NvbC9w
YWdlL2phdmFzY3JpcHREaWFsb2dFdmVudHMuaHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzEx
MDU1NCBodHRwL3Rlc3RzL3NlY3VyaXR5L2ZlZWQtdXJscy1mcm9tLXJlbW90ZS5odG1sIFsgRmFp
bHVyZSBdCiB3ZWJraXQub3JnL2IvMTEwNTU1IGZhc3QvY2FudmFzL2NhbnZhcy1jdXJyZW50UGF0
aC5odG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMTEwNTU1IGZhc3QvY2FudmFzL2NhbnZh
cy1wYXRoLWNvbnN0cnVjdG9ycy5odG1sIFsgRmFpbHVyZSBdCisKKyMgRmVhdHVyZSBub3QgaW1w
bGVtZW50ZWQKK3dlYmtpdC5vcmcvYi85MTYxMSBtZWRpYS9tZWRpYS1oaWdoZXItcHJpby1hdWRp
by1zdHJlYW0uaHRtbCBbIFNraXAgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
cXQvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1Rlc3RFeHBlY3Rh
dGlvbnMKaW5kZXggMGM0M2RiYTk4YmM0MjI3ZjZmYjRhNjEyNTRkNzY5Zjg1ZWM5NWYwMC4uNzQy
ODBiODRjYmY4ZDY3OTRmNDU2OTUwOGM4YjAxNWJkYjhmZTBjYiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vcXQvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9xdC9UZXN0RXhwZWN0YXRpb25zCkBAIC0yNjcyLDMgKzI2NzIsNiBAQCB3ZWJraXQub3Jn
L2IvMTEwNDQyIHN2Zy9hcy1iYWNrZ3JvdW5kLWltYWdlL3N2Zy10cmFuc2Zvcm1lZC1iYWNrZ3Jv
dW5kLmh0bWwgWyBTawogIyBbUXRdIFJFR1JFU1NJT04ocjE0MzY1NCk6IHNvbWUgZmFzdC9qcyB0
ZXN0IGNyYXNoZXMgb24gMzIgYml0IGJ1aWxkCiB3ZWJraXQub3JnL2IvMTEwNTkwIGZhc3QvanMv
cmVncmVzcy9IYXNoTWFwLXN0cmluZy1wdXQtZ2V0LWl0ZXJhdGUuaHRtbCBbIFNraXAgXQogd2Vi
a2l0Lm9yZy9iLzExMDU5MCBmYXN0L2pzL2RmZy12YWx1ZS10by1pbnQzMi13aXRoLXNpZGUtZWZm
ZWN0Lmh0bWwgWyBTa2lwIF0KKworIyBGZWF0dXJlIG5vdCBpbXBsZW1lbnRlZAord2Via2l0Lm9y
Zy9iLzkxNjExIFsgTWFjIFdpbiBdIG1lZGlhL21lZGlhLWhpZ2hlci1wcmlvLWF1ZGlvLXN0cmVh
bS5odG1sIFsgU2tpcCBdCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>191531</attachid>
            <date>2013-03-05 12:06:23 -0800</date>
            <delta_ts>2013-03-06 01:29:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-91611-20130305210229.patch</filename>
            <type>text/plain</type>
            <size>20334</size>
            <attacher name="Xabier Rodríguez Calvar">calvaris</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0NzIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjE5MjA3Mjg4ZWNiMGVl
NTE0YzJmYmFlNTk2OWQ0NzY2Mzk1NzFmNS4uM2I5N2JmNzc2MTc3ZGZjOGQ5ZmQ4ZWY5OGEwZjM5
MWM3OGQzY2Q0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDEzLTAzLTA1ICBYYWJp
ZXIgUm9kcmlndWV6IENhbHZhciAgPGNhbHZhcmlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dT
dHJlYW1lcl0gU3RvcHBpbmcgcGxheWJhY2sgb2YgaHRtbDUgbWVkaWEgd2hlbiByZWNlaXZpbmcg
YSBoaWdoZXIgcHJpb3JpdHkgYXVkaW8gZXZlbnQgbmVlZHMgaW1wbGVtZW50YXRpb24KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkxNjExCisKKyAgICAg
ICAgUmVhY3QgdG8gUkVRVUVTVF9TVEFURSBHU3RyZWFtZXIgbWVzc2FnZSB0byBzdG9wIHRoZSBw
aXBlbGluZSB3aGVuCisgICAgICAgIGEgaGlnaGVyIHByaW9yaXR5IHN0cmVhbSBpcyBwbGF5ZWQu
IFdoZW4gdGhpcyBoYXBwZW5zLCBzdGF0ZXMgYXJlCisgICAgICAgIHVwZGF0ZWQgYWNjb2Rpbmds
eS4KKworICAgICAgICBBZGRlZCBhIG1ldGhvZCB0byBiZSBhYmxlIHRvIGluamVjdCB0aGUgbWVz
c2FnZSBpbiB0aGUgcGlwZWxpbmUKKyAgICAgICAgZnJvbSB0aGUgSW50ZXJuYWxzIChvbmx5IGZv
ciBwb3J0cyB1c2luZyBHU3RyZWFtZXIpIGluIG9yZGVyIHRvIGJlCisgICAgICAgIHVzZWQgaW4g
dGhlIHRlc3RzLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRlc3Q6IG1lZGlhL21lZGlhLWhpZ2hlci1wcmlvLWF1ZGlvLXN0cmVhbS5odG1sCisKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAoTWVkaWFQbGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OnNpbXVsYXRl
QXVkaW9JbnRlcnJ1cHRpb24pOiBBZGRlZCB0bworICAgICAgICBkZWxlZ2F0ZSBvbiB0aGUgcHJp
dmF0ZSB0byBzdG9wIGJlY2F1c2Ugb2YgYSBzdHJlYW0gd2l0aCBiaWdnZXIKKyAgICAgICAgcHJp
b3JpdHkuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmg6
CisgICAgICAgIChNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2UpOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlOjpzaW11bGF0ZUF1ZGlvSW50ZXJydXB0aW9u
KToKKyAgICAgICAgQWRkZWQgZGVmYXVsdCBlbXB0eSBtZXRob2QgaW4gdGhlIGNvbW1vbiBwcml2
YXRlIGhlYWRlci4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpjcmVhdGVBdWRpb1NpbmspOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpzZXRBdWRpb1N0
cmVhbVByb3BlcnRpZXMpOgorICAgICAgICBIb29rZWQgdG8gY2hpbGQtYWRkZWQgc2lnbmFsIG9u
IHRoZSBhdWRpbyBzaW5rLCBzZXRzIHRoZSBzdHJlYW0KKyAgICAgICAgcHJvcGVydGllcy4KKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6TWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyKToKKyAgICAgICAgSW5pdGlhbGl6ZXMgdGhlIG5ldyBhdHRyaWJ1dGUu
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmNoYW5nZVBp
cGVsaW5lU3RhdGUpOgorICAgICAgICBDaGFuZ2VkIGxvZ2dpbmcuCisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmhhbmRsZU1lc3NhZ2UpOiBSZWFjdGluZyB0
bworICAgICAgICB0aGUgUkVRVUVTVF9TVEFURSBtZXNzYWdlLgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpzaW11bGF0ZUF1ZGlvSW50ZXJydXB0aW9uKToK
KyAgICAgICAgQWRkZWQuIEluamVjdHMgdGhlIFJFUVVFU1RfU1RBVEUgbWVzc2FnZSB0byB0aGUg
cGlwZWxpbmUuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6
OnVwZGF0ZVN0YXRlcyk6IFVwZGF0aW5nIHRoZQorICAgICAgICBwbGF5YmFjayBzdGF0ZSBpZiBS
RVFVRVNUX1NUQVRFLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXIuaDoKKyAgICAgICAgKE1lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lcik6IEFkZGVkIG5ldyBtZXRob2QgYW5kIGF0dHJpYnV0ZS4KKyAgICAgICAgKiB0ZXN0
aW5nL0ludGVybmFscy5oOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmlkbDoKKyAgICAg
ICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAg
KFdlYkNvcmU6OkludGVybmFsczo6c2ltdWxhdGVBdWRpb0ludGVycnVwdGlvbik6IEFkZGVkIHRv
IGNhbGwgdGhlCisgICAgICAgIG1ldGhvZCB0byBzdG9wIHRoZSBlbGVtZW50IGJlY2F1c2Ugb2Yg
YSBoaWdoZXIgcHJpbyBzdHJlYW0gYXQgdGhlCisgICAgICAgIHRlc3RzLgorCiAyMDEzLTAzLTA0
ICBDaHJpcyBSb2dlcnMgIDxjcm9nZXJzQGdvb2dsZS5jb20+CiAKICAgICAgICAgQWRkIGF1ZGlv
IGhhcmR3YXJlIHN1cHBvcnQgZm9yIG11bHRpLWNoYW5uZWwgb3V0cHV0IGJ5IGltcGxlbWVudGlu
ZyBBdWRpb0Rlc3RpbmF0aW9uTm9kZS5tYXhDaGFubmVsQ291bnQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAppbmRleCBmMGIxODJkMjQwMzRi
Mjk3ZmJkNzc5ODI1YjQ1NGZhZTI1NTIyNWEzLi4wZTY5ZWFkMzI1MThhMTQyZmIyN2ZiMDkzOTNk
OTZjMGQyNzA4ZWZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9NZWRpYVBsYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
TWVkaWFQbGF5ZXIuY3BwCkBAIC0xMTI3LDYgKzExMjcsMTYgQEAgdm9pZCBNZWRpYVBsYXllcjo6
cmVzZXRNZWRpYUVuZ2luZXMoKQogICAgIGluc3RhbGxlZE1lZGlhRW5naW5lcyhSZXNldEVuZ2lu
ZXMpOwogfQogCisjaWYgVVNFKEdTVFJFQU1FUikKK3ZvaWQgTWVkaWFQbGF5ZXI6OnNpbXVsYXRl
QXVkaW9JbnRlcnJ1cHRpb24oKQoreworICAgIGlmICghbV9wcml2YXRlKQorICAgICAgICByZXR1
cm47CisKKyAgICBtX3ByaXZhdGUtPnNpbXVsYXRlQXVkaW9JbnRlcnJ1cHRpb24oKTsKK30KKyNl
bmRpZgorCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvTWVkaWFQbGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L01lZGlhUGxheWVyLmgKaW5kZXggOWU1NmNiODE1N2Q2NmJhYzhkNDRiNzIwMDJhYmViODJkMTUw
Yjg4Ni4uYWY2N2RlNTY4NTA2YzY4MzkwYTZkZWRhYmZhYzE3ZDFlZjBkMjBhYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCkBAIC00MzcsNiAr
NDM3LDEwIEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyB2b2lkIHJlc2V0TWVkaWFFbmdpbmVzKCk7
CiAKKyNpZiBVU0UoR1NUUkVBTUVSKQorICAgIHZpcnR1YWwgdm9pZCBzaW11bGF0ZUF1ZGlvSW50
ZXJydXB0aW9uKCk7CisjZW5kaWYKKwogcHJpdmF0ZToKICAgICBNZWRpYVBsYXllcihNZWRpYVBs
YXllckNsaWVudCopOwogICAgIHZvaWQgbG9hZFdpdGhOZXh0TWVkaWFFbmdpbmUoTWVkaWFQbGF5
ZXJGYWN0b3J5Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9NZWRpYVBsYXllclByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L01lZGlhUGxheWVyUHJpdmF0ZS5oCmluZGV4IDFmM2YzZTEwYTg3YzkzOTU3NWIzYmM3NzczOGJj
MTI4ODBkMWE1NDQuLjRmODNkNjEzOTIwMWRiMmFiOWIzYmFiMjIyZTdiMWIzMTM0Njc2NmYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJp
dmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVy
UHJpdmF0ZS5oCkBAIC0xODAsNiArMTgwLDEwIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wg
cmVxdWlyZXNUZXh0VHJhY2tSZXByZXNlbnRhdGlvbigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9
CiAgICAgdmlydHVhbCB2b2lkIHNldFRleHRUcmFja1JlcHJlc2VudGF0aW9uKFRleHRUcmFja1Jl
cHJlc2VudGF0aW9uKikgeyB9CiAjZW5kaWYKKworI2lmIFVTRShHU1RSRUFNRVIpCisgICAgdmly
dHVhbCB2b2lkIHNpbXVsYXRlQXVkaW9JbnRlcnJ1cHRpb24oKSB7IH0KKyNlbmRpZgogfTsKIAog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRl
eCAyYWRmZTc0ZmJkYjFmOGIyNjAzNzNiMWQ0NmExYzA4NTFjNTc0NjQwLi42NTIxNDY4Yzk4MzJj
YjcxMjdlMzA2ZWUzZjg3NzQ1ZTg2Njg2YmFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtMTIwLDYgKzEyMCwyMCBAQCBzdGF0aWMgZ2Jv
b2xlYW4gbWVkaWFQbGF5ZXJQcml2YXRlVmlkZW9DaGFuZ2VUaW1lb3V0Q2FsbGJhY2soTWVkaWFQ
bGF5ZXJQcml2YXRlRwogICAgIHJldHVybiBGQUxTRTsKIH0KIAordm9pZCBNZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXI6OnNldEF1ZGlvU3RyZWFtUHJvcGVydGllcyhHc3RDaGlsZFByb3h5KiBw
cm94eSwgR09iamVjdCogb2JqZWN0LCBnY2hhciogbmFtZSwKKyAgICBNZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXIqIHNlbGYpCit7CisgICAgaWYgKGdfc3RyY21wMChHX09CSkVDVF9UWVBFX05B
TUUob2JqZWN0KSwgIkdzdFB1bHNlU2luayIpKQorICAgICAgICByZXR1cm47CisKKyAgICBjb25z
dCBjaGFyKiByb2xlID0gc2VsZi0+bV9wbGF5ZXItPm1lZGlhUGxheWVyQ2xpZW50KCkgJiYgc2Vs
Zi0+bV9wbGF5ZXItPm1lZGlhUGxheWVyQ2xpZW50KCktPm1lZGlhUGxheWVySXNWaWRlbygpCisg
ICAgICAgID8gInZpZGVvIiA6ICJtdXNpYyI7CisgICAgR3N0U3RydWN0dXJlKiBzdHJ1Y3R1cmUg
PSBnc3Rfc3RydWN0dXJlX25ldygic3RyZWFtLXByb3BlcnRpZXMiLCAibWVkaWEucm9sZSIsIEdf
VFlQRV9TVFJJTkcsIHJvbGUsIE5VTEwpOworICAgIGdfb2JqZWN0X3NldChvYmplY3QsICJzdHJl
YW0tcHJvcGVydGllcyIsIHN0cnVjdHVyZSwgTlVMTCk7CisgICAgZ3N0X29iamVjdF91bnJlZihz
dHJ1Y3R1cmUpOworICAgIExPR19NRURJQV9NRVNTQUdFKCJTZXQgbWVkaWEucm9sZSBhcyAlcyBh
dCAlcyIsIHJvbGUsIGdzdF9lbGVtZW50X2dldF9uYW1lKEdTVF9FTEVNRU5UKG9iamVjdCkpKTsK
K30KKwogUGFzc093blB0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IE1lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lcjo6Y3JlYXRlKE1lZGlhUGxheWVyKiBwbGF5ZXIpCiB7CiAgICAgcmV0
dXJuIGFkb3B0UHRyKG5ldyBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIocGxheWVyKSk7CkBA
IC0xODcsNiArMjAxLDcgQEAgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpNZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXIoTWVkaWFQbGF5ZXIqIHBsYXllcikKICAgICAsIG1fdG90YWxCeXRl
cygtMSkKICAgICAsIG1fb3JpZ2luYWxQcmVsb2FkV2FzQXV0b0FuZFdhc092ZXJyaWRkZW4oZmFs
c2UpCiAgICAgLCBtX3ByZXNlcnZlc1BpdGNoKGZhbHNlKQorICAgICwgbV9yZXF1ZXN0ZWRTdGF0
ZShHU1RfU1RBVEVfVk9JRF9QRU5ESU5HKQogewogfQogCkBAIC0zMjEsOSArMzM2LDE0IEBAIGJv
b2wgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpjaGFuZ2VQaXBlbGluZVN0YXRlKEdzdFN0
YXRlIG5ld1N0YXRlKQogICAgIEdzdFN0YXRlIHBlbmRpbmc7CiAKICAgICBnc3RfZWxlbWVudF9n
ZXRfc3RhdGUobV9wbGF5QmluLmdldCgpLCAmY3VycmVudFN0YXRlLCAmcGVuZGluZywgMCk7Ci0g
ICAgTE9HX01FRElBX01FU1NBR0UoIkN1cnJlbnQgc3RhdGU6ICVzLCBwZW5kaW5nOiAlcyIsIGdz
dF9lbGVtZW50X3N0YXRlX2dldF9uYW1lKGN1cnJlbnRTdGF0ZSksIGdzdF9lbGVtZW50X3N0YXRl
X2dldF9uYW1lKHBlbmRpbmcpKTsKLSAgICBpZiAoY3VycmVudFN0YXRlID09IG5ld1N0YXRlIHx8
IHBlbmRpbmcgPT0gbmV3U3RhdGUpCisgICAgaWYgKGN1cnJlbnRTdGF0ZSA9PSBuZXdTdGF0ZSB8
fCBwZW5kaW5nID09IG5ld1N0YXRlKSB7CisgICAgICAgIExPR19NRURJQV9NRVNTQUdFKCJSZWpl
Y3RlZCBzdGF0ZSBjaGFuZ2UgdG8gJXMgZnJvbSAlcyB3aXRoICVzIHBlbmRpbmciLCBnc3RfZWxl
bWVudF9zdGF0ZV9nZXRfbmFtZShuZXdTdGF0ZSksCisgICAgICAgICAgICBnc3RfZWxlbWVudF9z
dGF0ZV9nZXRfbmFtZShjdXJyZW50U3RhdGUpLCBnc3RfZWxlbWVudF9zdGF0ZV9nZXRfbmFtZShw
ZW5kaW5nKSk7CiAgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIExPR19NRURJQV9N
RVNTQUdFKCJDaGFuZ2luZyBzdGF0ZSBjaGFuZ2UgdG8gJXMgZnJvbSAlcyB3aXRoICVzIHBlbmRp
bmciLCBnc3RfZWxlbWVudF9zdGF0ZV9nZXRfbmFtZShuZXdTdGF0ZSksCisgICAgICAgIGdzdF9l
bGVtZW50X3N0YXRlX2dldF9uYW1lKGN1cnJlbnRTdGF0ZSksIGdzdF9lbGVtZW50X3N0YXRlX2dl
dF9uYW1lKHBlbmRpbmcpKTsKIAogICAgIEdzdFN0YXRlQ2hhbmdlUmV0dXJuIHNldFN0YXRlUmVz
dWx0ID0gZ3N0X2VsZW1lbnRfc2V0X3N0YXRlKG1fcGxheUJpbi5nZXQoKSwgbmV3U3RhdGUpOwog
ICAgIEdzdFN0YXRlIHBhdXNlZE9yUGxheWluZyA9IG5ld1N0YXRlID09IEdTVF9TVEFURV9QTEFZ
SU5HID8gR1NUX1NUQVRFX1BBVVNFRCA6IEdTVF9TVEFURV9QTEFZSU5HOwpAQCAtNjI3LDYgKzY0
Nyw3IEBAIGdib29sZWFuIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6aGFuZGxlTWVzc2Fn
ZShHc3RNZXNzYWdlKiBtZXNzYWdlKQogICAgIGJvb2wgaXNzdWVFcnJvciA9IHRydWU7CiAgICAg
Ym9vbCBhdHRlbXB0TmV4dExvY2F0aW9uID0gZmFsc2U7CiAgICAgY29uc3QgR3N0U3RydWN0dXJl
KiBzdHJ1Y3R1cmUgPSBnc3RfbWVzc2FnZV9nZXRfc3RydWN0dXJlKG1lc3NhZ2UpOworICAgIEdz
dFN0YXRlIHJlcXVlc3RlZFN0YXRlLCBjdXJyZW50U3RhdGU7CiAKICAgICBpZiAoc3RydWN0dXJl
KSB7CiAgICAgICAgIGNvbnN0IGdjaGFyKiBtZXNzYWdlVHlwZU5hbWUgPSBnc3Rfc3RydWN0dXJl
X2dldF9uYW1lKHN0cnVjdHVyZSk7CkBAIC02OTIsMTIgKzcxMywxMiBAQCBnYm9vbGVhbiBNZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmhhbmRsZU1lc3NhZ2UoR3N0TWVzc2FnZSogbWVzc2Fn
ZSkKICAgICAgICAgICAgIHVwZGF0ZVN0YXRlcygpOwogCiAgICAgICAgICAgICAvLyBDb25zdHJ1
Y3QgYSBmaWxlbmFtZSBmb3IgdGhlIGdyYXBodml6IGRvdCBmaWxlIG91dHB1dC4KLSAgICAgICAg
ICAgIEdzdFN0YXRlIG9sZFN0YXRlLCBuZXdTdGF0ZTsKLSAgICAgICAgICAgIGdzdF9tZXNzYWdl
X3BhcnNlX3N0YXRlX2NoYW5nZWQobWVzc2FnZSwgJm9sZFN0YXRlLCAmbmV3U3RhdGUsIDApOwor
ICAgICAgICAgICAgR3N0U3RhdGUgbmV3U3RhdGU7CisgICAgICAgICAgICBnc3RfbWVzc2FnZV9w
YXJzZV9zdGF0ZV9jaGFuZ2VkKG1lc3NhZ2UsICZjdXJyZW50U3RhdGUsICZuZXdTdGF0ZSwgMCk7
CiAKICAgICAgICAgICAgIENTdHJpbmcgZG90RmlsZU5hbWUgPSBTdHJpbmc6OmZvcm1hdCgid2Vi
a2l0LXZpZGVvLiVzXyVzIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBnc3RfZWxlbWVudF9zdGF0ZV9nZXRfbmFtZShvbGRTdGF0ZSksCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3N0X2VsZW1lbnRfc3Rh
dGVfZ2V0X25hbWUobmV3U3RhdGUpKS51dGY4KCk7CisgICAgICAgICAgICAgICAgZ3N0X2VsZW1l
bnRfc3RhdGVfZ2V0X25hbWUoY3VycmVudFN0YXRlKSwKKyAgICAgICAgICAgICAgICBnc3RfZWxl
bWVudF9zdGF0ZV9nZXRfbmFtZShuZXdTdGF0ZSkpLnV0ZjgoKTsKIAogICAgICAgICAgICAgR1NU
X0RFQlVHX0JJTl9UT19ET1RfRklMRV9XSVRIX1RTKEdTVF9CSU4obV9wbGF5QmluLmdldCgpKSwg
R1NUX0RFQlVHX0dSQVBIX1NIT1dfQUxMLCBkb3RGaWxlTmFtZS5kYXRhKCkpOwogICAgICAgICB9
CkBAIC03MTMsNiArNzM0LDE2IEBAIGdib29sZWFuIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
cjo6aGFuZGxlTWVzc2FnZShHc3RNZXNzYWdlKiBtZXNzYWdlKQogICAgICAgICBMT0dfTUVESUFf
TUVTU0FHRSgiRHVyYXRpb24gY2hhbmdlZCIpOwogICAgICAgICBkdXJhdGlvbkNoYW5nZWQoKTsK
ICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBHU1RfTUVTU0FHRV9SRVFVRVNUX1NUQVRFOgorICAg
ICAgICBnc3RfbWVzc2FnZV9wYXJzZV9yZXF1ZXN0X3N0YXRlKG1lc3NhZ2UsICZyZXF1ZXN0ZWRT
dGF0ZSk7CisgICAgICAgIGdzdF9lbGVtZW50X2dldF9zdGF0ZShtX3BsYXlCaW4uZ2V0KCksICZj
dXJyZW50U3RhdGUsIE5VTEwsIDI1MCk7CisgICAgICAgIGlmIChyZXF1ZXN0ZWRTdGF0ZSA8IGN1
cnJlbnRTdGF0ZSkgeworICAgICAgICAgICAgTE9HX01FRElBX01FU1NBR0UoIkVsZW1lbnQgJXMg
cmVxdWVzdGVkIHN0YXRlIGNoYW5nZSB0byAlcyIsIGdzdF9lbGVtZW50X2dldF9uYW1lKEdTVF9N
RVNTQUdFX1NSQyhtZXNzYWdlKSksCisgICAgICAgICAgICAgICAgZ3N0X2VsZW1lbnRfc3RhdGVf
Z2V0X25hbWUocmVxdWVzdGVkU3RhdGUpKTsKKyAgICAgICAgICAgIG1fcmVxdWVzdGVkU3RhdGUg
PSByZXF1ZXN0ZWRTdGF0ZTsKKyAgICAgICAgICAgIGNoYW5nZVBpcGVsaW5lU3RhdGUocmVxdWVz
dGVkU3RhdGUpOworICAgICAgICB9CisgICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CiAgICAg
ICAgIExPR19NRURJQV9NRVNTQUdFKCJVbmhhbmRsZWQgR1N0cmVhbWVyIG1lc3NhZ2UgdHlwZTog
JXMiLAogICAgICAgICAgICAgICAgICAgICBHU1RfTUVTU0FHRV9UWVBFX05BTUUobWVzc2FnZSkp
OwpAQCAtOTYyLDYgKzk5Myw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjp1
cGRhdGVTdGF0ZXMoKQogICAgICAgICAmc3RhdGUsICZwZW5kaW5nLCAyNTAgKiBHU1RfTlNFQ09O
RCk7CiAKICAgICBib29sIHNob3VsZFVwZGF0ZUFmdGVyU2VlayA9IGZhbHNlOworICAgIGJvb2wg
c2hvdWxkVXBkYXRlUGxheWJhY2tTdGF0ZSA9IGZhbHNlOwogICAgIHN3aXRjaCAocmV0KSB7CiAg
ICAgY2FzZSBHU1RfU1RBVEVfQ0hBTkdFX1NVQ0NFU1M6CiAgICAgICAgIExPR19NRURJQV9NRVNT
QUdFKCJTdGF0ZTogJXMsIHBlbmRpbmc6ICVzIiwKQEAgLTEwNDgsNiArMTA4MCwxMSBAQCB2b2lk
IE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6dXBkYXRlU3RhdGVzKCkKICAgICAgICAgICAg
IG1fc2Vla2luZyA9IGZhbHNlOwogICAgICAgICB9CiAKKyAgICAgICAgaWYgKG1fcmVxdWVzdGVk
U3RhdGUgPT0gR1NUX1NUQVRFX1BBVVNFRCAmJiBzdGF0ZSA9PSBHU1RfU1RBVEVfUEFVU0VEKSB7
CisgICAgICAgICAgICBzaG91bGRVcGRhdGVQbGF5YmFja1N0YXRlID0gdHJ1ZTsKKyAgICAgICAg
ICAgIExPR19NRURJQV9NRVNTQUdFKCJSZXF1ZXN0ZWQgc3RhdGUgY2hhbmdlIHRvICVzIHdhcyBj
b21wbGV0ZWQiLCBnc3RfZWxlbWVudF9zdGF0ZV9nZXRfbmFtZShzdGF0ZSkpOworICAgICAgICB9
CisKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBHU1RfU1RBVEVfQ0hBTkdFX0FTWU5DOgogICAg
ICAgICBMT0dfTUVESUFfTUVTU0FHRSgiQXN5bmM6IFN0YXRlOiAlcywgcGVuZGluZzogJXMiLApA
QCAtMTExNCwxMiArMTE1MSwxNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6
dXBkYXRlU3RhdGVzKCkKICAgICAgICAgYnJlYWs7CiAgICAgfQogCisgICAgbV9yZXF1ZXN0ZWRT
dGF0ZSA9IEdTVF9TVEFURV9WT0lEX1BFTkRJTkc7CisKICAgICBpZiAoc2Vla2luZygpKQogICAg
ICAgICBtX3JlYWR5U3RhdGUgPSBNZWRpYVBsYXllcjo6SGF2ZU5vdGhpbmc7CiAKICAgICBpZiAo
c2hvdWxkVXBkYXRlQWZ0ZXJTZWVrKQogICAgICAgICB0aW1lQ2hhbmdlZCgpOwogCisgICAgaWYg
KHNob3VsZFVwZGF0ZVBsYXliYWNrU3RhdGUpCisgICAgICAgIG1fcGxheWVyLT5wbGF5YmFja1N0
YXRlQ2hhbmdlZCgpOworCiAgICAgaWYgKG1fbmV0d29ya1N0YXRlICE9IG9sZE5ldHdvcmtTdGF0
ZSkgewogICAgICAgICBMT0dfTUVESUFfTUVTU0FHRSgiTmV0d29yayBTdGF0ZSBDaGFuZ2VkIGZy
b20gJXUgdG8gJXUiLAogICAgICAgICAgICAgb2xkTmV0d29ya1N0YXRlLCBtX25ldHdvcmtTdGF0
ZSk7CkBAIC0xNDk0LDYgKzE1MzYsOCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
cjo6Y3JlYXRlQXVkaW9TaW5rKCkKICAgICBHc3RFbGVtZW50KiByZXNhbXBsZSA9IGdzdF9lbGVt
ZW50X2ZhY3RvcnlfbWFrZSgiYXVkaW9yZXNhbXBsZSIsIDApOwogICAgIEdzdEVsZW1lbnQqIHNp
bmsgPSBnc3RfZWxlbWVudF9mYWN0b3J5X21ha2UoImF1dG9hdWRpb3NpbmsiLCAwKTsKIAorICAg
IGdfc2lnbmFsX2Nvbm5lY3Qoc2luaywgImNoaWxkLWFkZGVkIiwgR19DQUxMQkFDSyhzZXRBdWRp
b1N0cmVhbVByb3BlcnRpZXMpLCB0aGlzKTsKKwogICAgIEdzdEVsZW1lbnQqIGF1ZGlvU2luayA9
IGdzdF9iaW5fbmV3KCJhdWRpby1zaW5rIik7CiAgICAgZ3N0X2Jpbl9hZGRfbWFueShHU1RfQklO
KGF1ZGlvU2luayksIHNjYWxlLCBjb252ZXJ0LCByZXNhbXBsZSwgc2luaywgTlVMTCk7CiAKQEAg
LTE1MzksNiArMTU4MywxMyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y3Jl
YXRlR1NUUGxheUJpbigpCiAgICAgY3JlYXRlQXVkaW9TaW5rKCk7CiB9CiAKK3ZvaWQgTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpzaW11bGF0ZUF1ZGlvSW50ZXJydXB0aW9uKCkKK3sKKyAg
ICBHc3RFbGVtZW50KiBwbGF5QmluID0gbV9wbGF5QmluLmdldCgpOworICAgIEdzdE1lc3NhZ2Uq
IG1lc3NhZ2UgPSBnc3RfbWVzc2FnZV9uZXdfcmVxdWVzdF9zdGF0ZShHU1RfT0JKRUNUKHBsYXlC
aW4pLCBHU1RfU1RBVEVfUEFVU0VEKTsKKyAgICBnc3RfZWxlbWVudF9wb3N0X21lc3NhZ2UocGxh
eUJpbiwgbWVzc2FnZSk7Cit9CisKIH0KIAogI2VuZGlmIC8vIFVTRShHU1RSRUFNRVIpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgKaW5kZXggOGExZmQ0ODYw
NTQyNGI1MTAxZjA0OWUxZmQwNWM1MGVjMTBhNjQwZS4uMDYxYzc3YTU0NGZhZTUyNzQ0NjQ4Njlm
NDcxNWQ3ZDU3Zjg2MmQ1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXIuaApAQCAtODgsNiArODgsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzb3VyY2VDaGFu
Z2VkKCk7CiAgICAgR3N0RWxlbWVudCogYXVkaW9TaW5rKCkgY29uc3Q7CiAKKyAgICB2b2lkIHNp
bXVsYXRlQXVkaW9JbnRlcnJ1cHRpb24oKTsKKwogcHJpdmF0ZToKICAgICBNZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXIoTWVkaWFQbGF5ZXIqKTsKIApAQCAtMTE4LDYgKzEyMCw5IEBAIHByaXZh
dGU6CiAgICAgdmlydHVhbCBTdHJpbmcgZW5naW5lRGVzY3JpcHRpb24oKSBjb25zdCB7IHJldHVy
biAiR1N0cmVhbWVyIjsgfQogICAgIHZpcnR1YWwgYm9vbCBpc0xpdmVTdHJlYW0oKSBjb25zdCB7
IHJldHVybiBtX2lzU3RyZWFtaW5nOyB9CiAKKyAgICBzdGF0aWMgdm9pZCBzZXRBdWRpb1N0cmVh
bVByb3BlcnRpZXMoR3N0Q2hpbGRQcm94eSosIEdPYmplY3QqLCBnY2hhciogbmFtZSwKKyAgICAg
ICAgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyKiBzZWxmKTsKKwogcHJpdmF0ZToKICAgICBH
UmVmUHRyPEdzdEVsZW1lbnQ+IG1fcGxheUJpbjsKICAgICBHUmVmUHRyPEdzdEVsZW1lbnQ+IG1f
c291cmNlOwpAQCAtMTUzLDYgKzE1OCw3IEBAIHByaXZhdGU6CiAgICAgS1VSTCBtX3VybDsKICAg
ICBib29sIG1fb3JpZ2luYWxQcmVsb2FkV2FzQXV0b0FuZFdhc092ZXJyaWRkZW47CiAgICAgYm9v
bCBtX3ByZXNlcnZlc1BpdGNoOworICAgIEdzdFN0YXRlIG1fcmVxdWVzdGVkU3RhdGU7CiB9Owog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggZDFhN2U5OTM5YTc5YjM2
NjkzODA2NGI5NDQ3MjA2ODY3NTcwYzE1ZS4uOWRjNTE2NTI0ZTA5ODJkYmYzM2FmZWI5NmVjYjQy
NTg4ZmNmZTMxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtNTAsNiAr
NTAsNyBAQAogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgogI2luY2x1ZGUgIkhUTUxDb250ZW50RWxl
bWVudC5oIgogI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MTWVk
aWFFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSFRNTFRleHRB
cmVhRWxlbWVudC5oIgogI2luY2x1ZGUgIkhpc3RvcnlJdGVtLmgiCkBAIC0yMDQxLDQgKzIwNDIs
MTIgQEAgU3RyaW5nIEludGVybmFsczo6bWFya2VyVGV4dEZvckxpc3RJdGVtKEVsZW1lbnQqIGVs
ZW1lbnQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgIHJldHVybiBXZWJDb3JlOjptYXJrZXJUZXh0
Rm9yTGlzdEl0ZW0oZWxlbWVudCk7CiB9CiAKK3ZvaWQgSW50ZXJuYWxzOjpzaW11bGF0ZUF1ZGlv
SW50ZXJydXB0aW9uKE5vZGUgKm5vZGUpCit7CisjaWYgVVNFKEdTVFJFQU1FUikKKyAgICBIVE1M
TWVkaWFFbGVtZW50KiBlbGVtZW50ID0gdG9NZWRpYUVsZW1lbnQobm9kZSk7CisgICAgZWxlbWVu
dC0+cGxheWVyKCktPnNpbXVsYXRlQXVkaW9JbnRlcnJ1cHRpb24oKTsKKyNlbmRpZgorfQorCiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oIGIvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAppbmRleCBlZWMzODNhNWQwMzg2OTkyMDRhNDVh
OWZkZDQyMzhhZWM2MjVlNzA2Li5jZGEwMGRkMDdlODI5YTkzMWY1NjZhM2ViNDAzNDg5MGViOTJk
ZjBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKQEAgLTI5NSw2ICsyOTUsOCBAQCBw
dWJsaWM6CiAgICAgdm9pZCBlbmFibGVNb2NrU3BlZWNoU3ludGhlc2l6ZXIoKTsKICNlbmRpZgog
ICAgICAgICAgICAgICAgICAgICAKKyAgICB2b2lkIHNpbXVsYXRlQXVkaW9JbnRlcnJ1cHRpb24o
Tm9kZSopOworCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IEludGVybmFscyhEb2N1bWVudCopOwog
ICAgIERvY3VtZW50KiBjb250ZXh0RG9jdW1lbnQoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmlkbAppbmRleCAzNzJiMDk4NjJhNjIwNjlhZjY0ZjUyMDY0NmUwNThkMzg2ZmY5
ZWQ1Li41MmU1Y2FlMGQwZDNjOTQyNzA4MGYyMjEyZjA4OTU1MjFhZmRiZTI0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKKysrIGIvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCkBAIC0yNTUsNiArMjU1LDggQEAKIAogICAgIHZvaWQg
c2V0VXNlc092ZXJsYXlTY3JvbGxiYXJzKGluIGJvb2xlYW4gZW5hYmxlZCk7CiAKKyAgICB2b2lk
IHNpbXVsYXRlQXVkaW9JbnRlcnJ1cHRpb24oaW4gTm9kZSBub2RlKTsKKwogICAgIFtDb25kaXRp
b25hbD1FTkNSWVBURURfTUVESUFfVjJdIHZvaWQgaW5pdGlhbGl6ZU1vY2tDRE0oKTsKIAogICAg
IFtDb25kaXRpb25hbD1TUEVFQ0hfU1lOVEhFU0lTXSB2b2lkIGVuYWJsZU1vY2tTcGVlY2hTeW50
aGVzaXplcigpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCmluZGV4IDVkNTlhZGVlOGJkM2ZhNWI2YTYzY2I4MGRmNWNiY2Q1MGZiYTc3
NzAuLmUyZjgzNDg1OTExNjk5NjhkOTFjOTRkZjk2ZGExNTYyZmIyMGYwODcgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMCBAQAorMjAxMy0wMy0wNSAgWGFiaWVyIFJvZHJpZ3VleiBDYWx2YXIgIDxjYWx2YXJp
c0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtHU3RyZWFtZXJdIFN0b3BwaW5nIHBsYXliYWNrIG9m
IGh0bWw1IG1lZGlhIHdoZW4gcmVjZWl2aW5nIGEgaGlnaGVyIHByaW9yaXR5IGF1ZGlvIGV2ZW50
IG5lZWRzIGltcGxlbWVudGF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD05MTYxMQorCisgICAgICAgIENyZWF0ZWQgdGVzdCwgZXhwZWN0ZWQgcmVz
dWx0IGFuZCB1cGRhdGVkIG90aGVyIHBvcnRzCisgICAgICAgIGV4cGVjdGF0aW9ucy4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIG1lZGlhL21lZGlh
LWhpZ2hlci1wcmlvLWF1ZGlvLXN0cmVhbS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IG1lZGlhL21lZGlhLWhpZ2hlci1wcmlvLWF1ZGlvLXN0cmVhbS5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zOiBTa2lwcGVkIHRoZSBuZXcg
dGVzdC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9uczogU2tpcHBlZCB0
aGUgbmV3IHRlc3QuCisgICAgICAgICogcGxhdGZvcm0vcXQvVGVzdEV4cGVjdGF0aW9uczogU2tp
cHBlZCB0aGUgbmV3IHRlc3QgZm9yIE1hYyBhbmQKKyAgICAgICAgV2luLgorCiAyMDEzLTAzLTA0
ICBLaW51a28gWWFzdWRhICA8a2ludWtvQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZWJhc2Vs
aW5lIDQgdmlydHVhbC9zb2Z0d2FyZWNvbXBvc2l0aW5nIHRlc3RzLgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvbWVkaWEvbWVkaWEtaGlnaGVyLXByaW8tYXVkaW8tc3RyZWFtLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL21lZGlhL21lZGlhLWhpZ2hlci1wcmlvLWF1ZGlvLXN0cmVhbS1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYmFlYjk1MjU3MjQwZDIxYWVhMzE2ODgyYTcyZTE5MjQzMWU2
ZGI5NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlhL21lZGlhLWhpZ2hlci1w
cmlvLWF1ZGlvLXN0cmVhbS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorVGVzdCBwYXVz
ZWQgYnk6CisKK0dldHRpbmcgYSBoaWdoZXIgcHJpb3JpdHkgYXVkaW8gc3RyZWFtLgorVGhpcyB0
ZXN0IGRvZXMgbm90IHdvcmsgaW4gdGhlIGxhdW5jaGVycywgb25seSB3aXRoIHRoZSB0ZXN0IHJ1
bm5lcnMuCitFVkVOVChwbGF5aW5nKQorRVhQRUNURUQgKG1lZGlhRWxlbWVudC5wYXVzZWQgPT0g
J2ZhbHNlJykgT0sKK0VWRU5UKHBhdXNlKQorRVhQRUNURUQgKG1lZGlhRWxlbWVudC5wYXVzZWQg
PT0gJ3RydWUnKSBPSworRVhQRUNURUQgKG1lZGlhRWxlbWVudC5lbmRlZCA9PSAnZmFsc2UnKSBP
SworCitFTkQgT0YgVEVTVAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1o
aWdoZXItcHJpby1hdWRpby1zdHJlYW0uaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL21lZGlhLWhp
Z2hlci1wcmlvLWF1ZGlvLXN0cmVhbS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg1N2IxNzNiY2UzZTIxZmVi
NGVhMTJhYzkxNzk0MjlhMjkxZGQzMjAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9t
ZWRpYS9tZWRpYS1oaWdoZXItcHJpby1hdWRpby1zdHJlYW0uaHRtbApAQCAtMCwwICsxLDQ2IEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8c2NyaXB0IHNy
Yz1tZWRpYS1maWxlLmpzPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz12aWRlby10ZXN0
LmpzPjwvc2NyaXB0PgorCisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAgICB2YXIgbWVkaWFF
bGVtZW50OworCisgICAgICAgICAgICBmdW5jdGlvbiBzdGFydCgpCisgICAgICAgICAgICB7Cisg
ICAgICAgICAgICAgICAgbWVkaWFFbGVtZW50ID0gbmV3IEF1ZGlvKCk7CisKKyAgICAgICAgICAg
ICAgICB3YWl0Rm9yRXZlbnQoJ2Vycm9yJyk7CisgICAgICAgICAgICAgICAgd2FpdEZvckV2ZW50
KCdwbGF5aW5nJywgcGxheWluZyk7CisKKyAgICAgICAgICAgICAgICBtZWRpYUVsZW1lbnQuc3Jj
ID0gZmluZE1lZGlhRmlsZSgnYXVkaW8nLCAnY29udGVudC90ZXN0Jyk7CisgICAgICAgICAgICAg
ICAgbWVkaWFFbGVtZW50LnBsYXkoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZnVu
Y3Rpb24gcGxheWluZygpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdGVzdEV4cGVj
dGVkKCJtZWRpYUVsZW1lbnQucGF1c2VkIiwgZmFsc2UpOworICAgICAgICAgICAgICAgIHdhaXRG
b3JFdmVudCgncGF1c2UnLCBwYXVzZWQpOworICAgICAgICAgICAgICAgIGludGVybmFscy5zaW11
bGF0ZUF1ZGlvSW50ZXJydXB0aW9uKG1lZGlhRWxlbWVudCk7CisgICAgICAgICAgICB9CisKKyAg
ICAgICAgICAgIGZ1bmN0aW9uIHBhdXNlZCgpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAg
ICAgdGVzdEV4cGVjdGVkKCJtZWRpYUVsZW1lbnQucGF1c2VkIiwgdHJ1ZSk7CisgICAgICAgICAg
ICAgICAgdGVzdEV4cGVjdGVkKCJtZWRpYUVsZW1lbnQuZW5kZWQiLCBmYWxzZSk7CisgICAgICAg
ICAgICAgICAgY29uc29sZVdyaXRlKCIiKTsKKyAgICAgICAgICAgICAgICBlbmRUZXN0KCk7Cisg
ICAgICAgICAgICB9CisgICAgICAgIDwvc2NyaXB0PgorICAgIDwvaGVhZD4KKyAgICA8Ym9keSBv
bmxvYWQ9InN0YXJ0KCkiPgorICAgICAgICA8cD48Yj5UZXN0IHBhdXNlZCBieTo8L2I+CisgICAg
ICAgIDxvbD4KKyAgICAgICAgICAgIDxsaT5HZXR0aW5nIGEgaGlnaGVyIHByaW9yaXR5IGF1ZGlv
IHN0cmVhbS48L2xpPgorICAgICAgICAgICAgPGxpPlRoaXMgdGVzdCBkb2VzIG5vdCB3b3JrIGlu
IHRoZSBsYXVuY2hlcnMsIG9ubHkgd2l0aAorICAgICAgICAgICAgdGhlIHRlc3QgcnVubmVycy48
L2xpPgorICAgICAgICA8L29sPgorICAgICAgICA8L3A+CisgICAgPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9u
cyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXgg
ZThlMjUxMWFjZjMxYzQ1Mjg4YzBhYmU3NjUwNDQ4Mjc0NDk1ZTc1ZS4uMzFjNjVmNWIwZmM3OGE0
ZTU4NjA2YTEzMGU1OGI1MzQzNDUzMjBhYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zCkBAIC00NDEyLDMgKzQ0MTIsNiBAQCBjcmJ1Zy5jb20v
MTc5NTAzIHBsYXRmb3JtL2Nocm9taXVtL3ZpcnR1YWwvZ3B1L2Zhc3QvY2FudmFzL3dlYmdsL29l
cy10ZXh0dXJlLWhhbAogIyBUaGVzZSB0ZXN0IGFyZSBmYWlsaW5nIHNpbmNlIHIxNDQ1MTkKIHdl
YmtpdC5vcmcvYi8xMDk3NjkgWyBNYWMgXSBmYXN0L2V2ZW50cy90b3VjaC9nZXN0dXJlL3RvdWNo
LWdlc3R1cmUtbm9zY3JvbGwtYm9keS15aGlkZGVuLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmtpdC5v
cmcvYi8xMDk3NjkgWyBNYWMgXSBmYXN0L2V2ZW50cy90b3VjaC9nZXN0dXJlL3RvdWNoLWdlc3R1
cmUtbm9zY3JvbGwtYm9keS1wcm9wYWdhdGVkLmh0bWwgWyBGYWlsdXJlIF0gCisKKyMgRmVhdHVy
ZSBub3QgaW1wbGVtZW50ZWQKK3dlYmtpdC5vcmcvYi85MTYxMSBtZWRpYS9tZWRpYS1oaWdoZXIt
cHJpby1hdWRpby1zdHJlYW0uaHRtbCBbIFNraXAgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
VGVzdEV4cGVjdGF0aW9ucwppbmRleCA2YzBjYzBjZDQ3OTFmMzMxZTBkNGNjMjJlNTk1MGM1OWI0
NTA0MGYzLi43ZDJmMTVmZTYxNGI4ZTdiMmYyYmQ0M2M0MzhlZDMxZmQ2Yjk4ZTI0IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTQ0NiwzICsxNDQ2LDYg
QEAgd2Via2l0Lm9yZy9iLzExMDY1NCBjc3MzL2ZsZXhib3gvYnV0dG9uLmh0bWwgWyBGYWlsdXJl
IF0KIAogIyBOZWVkIHN1cHBvcnQgZm9yIFJlc291cmNlSGFuZGxlOjpkaWRDaGFuZ2VQcmlvcml0
eSBhbmQgRFJUIHN1cHBvcnQKIHdlYmtpdC5vcmcvYi8xMTEwMTYgaHR0cC90ZXN0cy9sb2FkaW5n
L3Byb21vdGUtaW1nLXByZWxvYWQtcHJpb3JpdHkuaHRtbCBbIEZhaWx1cmUgXQorCisjIEZlYXR1
cmUgbm90IGltcGxlbWVudGVkCit3ZWJraXQub3JnL2IvOTE2MTEgbWVkaWEvbWVkaWEtaGlnaGVy
LXByaW8tYXVkaW8tc3RyZWFtLmh0bWwgWyBTa2lwIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL3F0L1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9U
ZXN0RXhwZWN0YXRpb25zCmluZGV4IGRkMWNmZWI4MDE4Y2U0YTY0MDdhNTQ3OTQwM2ZlNWEwZWM3
MWI0YTEuLjdjN2YwOTVhZjE3Y2IwOWJiOTBkNWMxYjJkMjkyODRhMDllMmU1N2EgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vcXQvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMjY3MywzICsyNjczLDYgQEAg
d2Via2l0Lm9yZy9iLzExMDY1NCBjc3MzL2ZsZXhib3gvYnV0dG9uLmh0bWwgWyBGYWlsdXJlIF0K
IAogIyBOZWVkIHN1cHBvcnQgZm9yIFJlc291cmNlSGFuZGxlOjpkaWRDaGFuZ2VQcmlvcml0eSBh
bmQgRFJUIHN1cHBvcnQKIHdlYmtpdC5vcmcvYi8xMTEwMTYgaHR0cC90ZXN0cy9sb2FkaW5nL3By
b21vdGUtaW1nLXByZWxvYWQtcHJpb3JpdHkuaHRtbCBbIEZhaWx1cmUgXQorCisjIEZlYXR1cmUg
bm90IGltcGxlbWVudGVkCit3ZWJraXQub3JnL2IvOTE2MTEgWyBNYWMgV2luIF0gbWVkaWEvbWVk
aWEtaGlnaGVyLXByaW8tYXVkaW8tc3RyZWFtLmh0bWwgWyBTa2lwIF0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>191684</attachid>
            <date>2013-03-06 01:30:04 -0800</date>
            <delta_ts>2013-03-07 04:27:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-91611-20130306102608.patch</filename>
            <type>text/plain</type>
            <size>20314</size>
            <attacher name="Xabier Rodríguez Calvar">calvaris</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0ODg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGYzZTA0NzcyYzM0NDVh
YmFlYmIxYzQxYThiNjkyNDFhZjFkZTczMS4uN2I1NWU0NTllYTYxODM3ODgxYjg3NWYwOGFjZTE4
ODUxODJkZjQyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDEzLTAzLTA2ICBYYWJp
ZXIgUm9kcmlndWV6IENhbHZhciAgPGNhbHZhcmlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dT
dHJlYW1lcl0gU3RvcHBpbmcgcGxheWJhY2sgb2YgaHRtbDUgbWVkaWEgd2hlbiByZWNlaXZpbmcg
YSBoaWdoZXIgcHJpb3JpdHkgYXVkaW8gZXZlbnQgbmVlZHMgaW1wbGVtZW50YXRpb24KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkxNjExCisKKyAgICAg
ICAgUmVhY3QgdG8gUkVRVUVTVF9TVEFURSBHU3RyZWFtZXIgbWVzc2FnZSB0byBzdG9wIHRoZSBw
aXBlbGluZSB3aGVuCisgICAgICAgIGEgaGlnaGVyIHByaW9yaXR5IHN0cmVhbSBpcyBwbGF5ZWQu
IFdoZW4gdGhpcyBoYXBwZW5zLCBzdGF0ZXMgYXJlCisgICAgICAgIHVwZGF0ZWQgYWNjb2Rpbmds
eS4KKworICAgICAgICBBZGRlZCBhIG1ldGhvZCB0byBiZSBhYmxlIHRvIGluamVjdCB0aGUgbWVz
c2FnZSBpbiB0aGUgcGlwZWxpbmUKKyAgICAgICAgZnJvbSB0aGUgSW50ZXJuYWxzIChvbmx5IGZv
ciBwb3J0cyB1c2luZyBHU3RyZWFtZXIpIGluIG9yZGVyIHRvIGJlCisgICAgICAgIHVzZWQgaW4g
dGhlIHRlc3RzLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRlc3Q6IG1lZGlhL21lZGlhLWhpZ2hlci1wcmlvLWF1ZGlvLXN0cmVhbS5odG1sCisKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAoTWVkaWFQbGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OnNpbXVsYXRl
QXVkaW9JbnRlcnJ1cHRpb24pOiBBZGRlZCB0bworICAgICAgICBkZWxlZ2F0ZSBvbiB0aGUgcHJp
dmF0ZSB0byBzdG9wIGJlY2F1c2Ugb2YgYSBzdHJlYW0gd2l0aCBiaWdnZXIKKyAgICAgICAgcHJp
b3JpdHkuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmg6
CisgICAgICAgIChNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2UpOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlOjpzaW11bGF0ZUF1ZGlvSW50ZXJydXB0aW9u
KToKKyAgICAgICAgQWRkZWQgZGVmYXVsdCBlbXB0eSBtZXRob2QgaW4gdGhlIGNvbW1vbiBwcml2
YXRlIGhlYWRlci4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpjcmVhdGVBdWRpb1NpbmspOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpzZXRBdWRpb1N0
cmVhbVByb3BlcnRpZXMpOgorICAgICAgICBIb29rZWQgdG8gY2hpbGQtYWRkZWQgc2lnbmFsIG9u
IHRoZSBhdWRpbyBzaW5rLCBzZXRzIHRoZSBzdHJlYW0KKyAgICAgICAgcHJvcGVydGllcy4KKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6TWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyKToKKyAgICAgICAgSW5pdGlhbGl6ZXMgdGhlIG5ldyBhdHRyaWJ1dGUu
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmNoYW5nZVBp
cGVsaW5lU3RhdGUpOgorICAgICAgICBDaGFuZ2VkIGxvZ2dpbmcuCisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmhhbmRsZU1lc3NhZ2UpOiBSZWFjdGluZyB0
bworICAgICAgICB0aGUgUkVRVUVTVF9TVEFURSBtZXNzYWdlLgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpzaW11bGF0ZUF1ZGlvSW50ZXJydXB0aW9uKToK
KyAgICAgICAgQWRkZWQuIEluamVjdHMgdGhlIFJFUVVFU1RfU1RBVEUgbWVzc2FnZSB0byB0aGUg
cGlwZWxpbmUuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6
OnVwZGF0ZVN0YXRlcyk6IFVwZGF0aW5nIHRoZQorICAgICAgICBwbGF5YmFjayBzdGF0ZSBpZiBS
RVFVRVNUX1NUQVRFLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXIuaDoKKyAgICAgICAgKE1lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lcik6IEFkZGVkIG5ldyBtZXRob2QgYW5kIGF0dHJpYnV0ZS4KKyAgICAgICAgKiB0ZXN0
aW5nL0ludGVybmFscy5oOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmlkbDoKKyAgICAg
ICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAg
KFdlYkNvcmU6OkludGVybmFsczo6c2ltdWxhdGVBdWRpb0ludGVycnVwdGlvbik6IEFkZGVkIHRv
IGNhbGwgdGhlCisgICAgICAgIG1ldGhvZCB0byBzdG9wIHRoZSBlbGVtZW50IGJlY2F1c2Ugb2Yg
YSBoaWdoZXIgcHJpbyBzdHJlYW0gYXQgdGhlCisgICAgICAgIHRlc3RzLgorCiAyMDEzLTAzLTA1
ICBDc2FiYSBPc3p0cm9nb27DoWMgIDxvc3N5QHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZp
ZXdlZCBidWlsZGZpeCBhZnRlciByMTQ0Nzg3LiBBZGQgbWlzc2luZyBVU0UoR1JBUEhJQ1NfU1VS
RkFDRSkgZ3VhcmRzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvTWVkaWFQbGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVk
aWFQbGF5ZXIuY3BwCmluZGV4IGYwYjE4MmQyNDAzNGIyOTdmYmQ3Nzk4MjViNDU0ZmFlMjU1MjI1
YTMuLjBlNjllYWQzMjUxOGExNDJmYjI3ZmIwOTM5M2Q5NmMwZDI3MDhlZmEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKQEAgLTExMjcs
NiArMTEyNywxNiBAQCB2b2lkIE1lZGlhUGxheWVyOjpyZXNldE1lZGlhRW5naW5lcygpCiAgICAg
aW5zdGFsbGVkTWVkaWFFbmdpbmVzKFJlc2V0RW5naW5lcyk7CiB9CiAKKyNpZiBVU0UoR1NUUkVB
TUVSKQordm9pZCBNZWRpYVBsYXllcjo6c2ltdWxhdGVBdWRpb0ludGVycnVwdGlvbigpCit7Cisg
ICAgaWYgKCFtX3ByaXZhdGUpCisgICAgICAgIHJldHVybjsKKworICAgIG1fcHJpdmF0ZS0+c2lt
dWxhdGVBdWRpb0ludGVycnVwdGlvbigpOworfQorI2VuZGlmCisKIH0KIAogI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAppbmRleCA5ZTU2
Y2I4MTU3ZDY2YmFjOGQ0NGI3MjAwMmFiZWI4MmQxNTBiODg2Li5hZjY3ZGU1Njg1MDZjNjgzOTBh
NmRlZGFiZmFjMTdkMWVmMGQyMGFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9NZWRpYVBsYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL01lZGlhUGxheWVyLmgKQEAgLTQzNyw2ICs0MzcsMTAgQEAgcHVibGljOgogCiAgICAg
c3RhdGljIHZvaWQgcmVzZXRNZWRpYUVuZ2luZXMoKTsKIAorI2lmIFVTRShHU1RSRUFNRVIpCisg
ICAgdmlydHVhbCB2b2lkIHNpbXVsYXRlQXVkaW9JbnRlcnJ1cHRpb24oKTsKKyNlbmRpZgorCiBw
cml2YXRlOgogICAgIE1lZGlhUGxheWVyKE1lZGlhUGxheWVyQ2xpZW50Kik7CiAgICAgdm9pZCBs
b2FkV2l0aE5leHRNZWRpYUVuZ2luZShNZWRpYVBsYXllckZhY3RvcnkqKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKaW5k
ZXggMWYzZjNlMTBhODdjOTM5NTc1YjNiYzc3NzM4YmMxMjg4MGQxYTU0NC4uNGY4M2Q2MTM5MjAx
ZGIyYWI5YjNiYWIyMjJlN2IxYjMxMzQ2NzY2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKQEAgLTE4MCw2ICsxODAs
MTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCByZXF1aXJlc1RleHRUcmFja1JlcHJlc2Vu
dGF0aW9uKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0VGV4
dFRyYWNrUmVwcmVzZW50YXRpb24oVGV4dFRyYWNrUmVwcmVzZW50YXRpb24qKSB7IH0KICNlbmRp
ZgorCisjaWYgVVNFKEdTVFJFQU1FUikKKyAgICB2aXJ0dWFsIHZvaWQgc2ltdWxhdGVBdWRpb0lu
dGVycnVwdGlvbigpIHsgfQorI2VuZGlmCiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IDJhZGZlNzRmYmRiMWY4YjI2MDM3M2Ix
ZDQ2YTFjMDg1MWM1NzQ2NDAuLjFjZjQ5OTVhOWM1MWI2NWVmNTA0NjUzNTc1ZTZmN2JmN2ZiYWU4
M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3Bw
CkBAIC0xMjAsNiArMTIwLDIwIEBAIHN0YXRpYyBnYm9vbGVhbiBtZWRpYVBsYXllclByaXZhdGVW
aWRlb0NoYW5nZVRpbWVvdXRDYWxsYmFjayhNZWRpYVBsYXllclByaXZhdGVHCiAgICAgcmV0dXJu
IEZBTFNFOwogfQogCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6c2V0QXVkaW9T
dHJlYW1Qcm9wZXJ0aWVzKEdzdENoaWxkUHJveHkqIHByb3h5LCBHT2JqZWN0KiBvYmplY3QsIGdj
aGFyKiBuYW1lLAorICAgIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lciogc2VsZikKK3sKKyAg
ICBpZiAoZ19zdHJjbXAwKEdfT0JKRUNUX1RZUEVfTkFNRShvYmplY3QpLCAiR3N0UHVsc2VTaW5r
IikpCisgICAgICAgIHJldHVybjsKKworICAgIGNvbnN0IGNoYXIqIHJvbGUgPSBzZWxmLT5tX3Bs
YXllci0+bWVkaWFQbGF5ZXJDbGllbnQoKSAmJiBzZWxmLT5tX3BsYXllci0+bWVkaWFQbGF5ZXJD
bGllbnQoKS0+bWVkaWFQbGF5ZXJJc1ZpZGVvKCkKKyAgICAgICAgPyAidmlkZW8iIDogIm11c2lj
IjsKKyAgICBHc3RTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IGdzdF9zdHJ1Y3R1cmVfbmV3KCJzdHJl
YW0tcHJvcGVydGllcyIsICJtZWRpYS5yb2xlIiwgR19UWVBFX1NUUklORywgcm9sZSwgTlVMTCk7
CisgICAgZ19vYmplY3Rfc2V0KG9iamVjdCwgInN0cmVhbS1wcm9wZXJ0aWVzIiwgc3RydWN0dXJl
LCBOVUxMKTsKKyAgICBnc3Rfc3RydWN0dXJlX2ZyZWUoc3RydWN0dXJlKTsKKyAgICBMT0dfTUVE
SUFfTUVTU0FHRSgiU2V0IG1lZGlhLnJvbGUgYXMgJXMgYXQgJXMiLCByb2xlLCBnc3RfZWxlbWVu
dF9nZXRfbmFtZShHU1RfRUxFTUVOVChvYmplY3QpKSk7Cit9CisKIFBhc3NPd25QdHI8TWVkaWFQ
bGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmNyZWF0
ZShNZWRpYVBsYXllciogcGxheWVyKQogewogICAgIHJldHVybiBhZG9wdFB0cihuZXcgTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyKHBsYXllcikpOwpAQCAtMTg3LDYgKzIwMSw3IEBAIE1lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyKE1lZGlh
UGxheWVyKiBwbGF5ZXIpCiAgICAgLCBtX3RvdGFsQnl0ZXMoLTEpCiAgICAgLCBtX29yaWdpbmFs
UHJlbG9hZFdhc0F1dG9BbmRXYXNPdmVycmlkZGVuKGZhbHNlKQogICAgICwgbV9wcmVzZXJ2ZXNQ
aXRjaChmYWxzZSkKKyAgICAsIG1fcmVxdWVzdGVkU3RhdGUoR1NUX1NUQVRFX1ZPSURfUEVORElO
RykKIHsKIH0KIApAQCAtMzIxLDkgKzMzNiwxNCBAQCBib29sIE1lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lcjo6Y2hhbmdlUGlwZWxpbmVTdGF0ZShHc3RTdGF0ZSBuZXdTdGF0ZSkKICAgICBHc3RT
dGF0ZSBwZW5kaW5nOwogCiAgICAgZ3N0X2VsZW1lbnRfZ2V0X3N0YXRlKG1fcGxheUJpbi5nZXQo
KSwgJmN1cnJlbnRTdGF0ZSwgJnBlbmRpbmcsIDApOwotICAgIExPR19NRURJQV9NRVNTQUdFKCJD
dXJyZW50IHN0YXRlOiAlcywgcGVuZGluZzogJXMiLCBnc3RfZWxlbWVudF9zdGF0ZV9nZXRfbmFt
ZShjdXJyZW50U3RhdGUpLCBnc3RfZWxlbWVudF9zdGF0ZV9nZXRfbmFtZShwZW5kaW5nKSk7Ci0g
ICAgaWYgKGN1cnJlbnRTdGF0ZSA9PSBuZXdTdGF0ZSB8fCBwZW5kaW5nID09IG5ld1N0YXRlKQor
ICAgIGlmIChjdXJyZW50U3RhdGUgPT0gbmV3U3RhdGUgfHwgcGVuZGluZyA9PSBuZXdTdGF0ZSkg
eworICAgICAgICBMT0dfTUVESUFfTUVTU0FHRSgiUmVqZWN0ZWQgc3RhdGUgY2hhbmdlIHRvICVz
IGZyb20gJXMgd2l0aCAlcyBwZW5kaW5nIiwgZ3N0X2VsZW1lbnRfc3RhdGVfZ2V0X25hbWUobmV3
U3RhdGUpLAorICAgICAgICAgICAgZ3N0X2VsZW1lbnRfc3RhdGVfZ2V0X25hbWUoY3VycmVudFN0
YXRlKSwgZ3N0X2VsZW1lbnRfc3RhdGVfZ2V0X25hbWUocGVuZGluZykpOwogICAgICAgICByZXR1
cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBMT0dfTUVESUFfTUVTU0FHRSgiQ2hhbmdpbmcgc3RhdGUg
Y2hhbmdlIHRvICVzIGZyb20gJXMgd2l0aCAlcyBwZW5kaW5nIiwgZ3N0X2VsZW1lbnRfc3RhdGVf
Z2V0X25hbWUobmV3U3RhdGUpLAorICAgICAgICBnc3RfZWxlbWVudF9zdGF0ZV9nZXRfbmFtZShj
dXJyZW50U3RhdGUpLCBnc3RfZWxlbWVudF9zdGF0ZV9nZXRfbmFtZShwZW5kaW5nKSk7CiAKICAg
ICBHc3RTdGF0ZUNoYW5nZVJldHVybiBzZXRTdGF0ZVJlc3VsdCA9IGdzdF9lbGVtZW50X3NldF9z
dGF0ZShtX3BsYXlCaW4uZ2V0KCksIG5ld1N0YXRlKTsKICAgICBHc3RTdGF0ZSBwYXVzZWRPclBs
YXlpbmcgPSBuZXdTdGF0ZSA9PSBHU1RfU1RBVEVfUExBWUlORyA/IEdTVF9TVEFURV9QQVVTRUQg
OiBHU1RfU1RBVEVfUExBWUlORzsKQEAgLTYyNyw2ICs2NDcsNyBAQCBnYm9vbGVhbiBNZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXI6OmhhbmRsZU1lc3NhZ2UoR3N0TWVzc2FnZSogbWVzc2FnZSkK
ICAgICBib29sIGlzc3VlRXJyb3IgPSB0cnVlOwogICAgIGJvb2wgYXR0ZW1wdE5leHRMb2NhdGlv
biA9IGZhbHNlOwogICAgIGNvbnN0IEdzdFN0cnVjdHVyZSogc3RydWN0dXJlID0gZ3N0X21lc3Nh
Z2VfZ2V0X3N0cnVjdHVyZShtZXNzYWdlKTsKKyAgICBHc3RTdGF0ZSByZXF1ZXN0ZWRTdGF0ZSwg
Y3VycmVudFN0YXRlOwogCiAgICAgaWYgKHN0cnVjdHVyZSkgewogICAgICAgICBjb25zdCBnY2hh
ciogbWVzc2FnZVR5cGVOYW1lID0gZ3N0X3N0cnVjdHVyZV9nZXRfbmFtZShzdHJ1Y3R1cmUpOwpA
QCAtNjkyLDEyICs3MTMsMTIgQEAgZ2Jvb2xlYW4gTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
OjpoYW5kbGVNZXNzYWdlKEdzdE1lc3NhZ2UqIG1lc3NhZ2UpCiAgICAgICAgICAgICB1cGRhdGVT
dGF0ZXMoKTsKIAogICAgICAgICAgICAgLy8gQ29uc3RydWN0IGEgZmlsZW5hbWUgZm9yIHRoZSBn
cmFwaHZpeiBkb3QgZmlsZSBvdXRwdXQuCi0gICAgICAgICAgICBHc3RTdGF0ZSBvbGRTdGF0ZSwg
bmV3U3RhdGU7Ci0gICAgICAgICAgICBnc3RfbWVzc2FnZV9wYXJzZV9zdGF0ZV9jaGFuZ2VkKG1l
c3NhZ2UsICZvbGRTdGF0ZSwgJm5ld1N0YXRlLCAwKTsKKyAgICAgICAgICAgIEdzdFN0YXRlIG5l
d1N0YXRlOworICAgICAgICAgICAgZ3N0X21lc3NhZ2VfcGFyc2Vfc3RhdGVfY2hhbmdlZChtZXNz
YWdlLCAmY3VycmVudFN0YXRlLCAmbmV3U3RhdGUsIDApOwogCiAgICAgICAgICAgICBDU3RyaW5n
IGRvdEZpbGVOYW1lID0gU3RyaW5nOjpmb3JtYXQoIndlYmtpdC12aWRlby4lc18lcyIsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3N0X2VsZW1lbnRf
c3RhdGVfZ2V0X25hbWUob2xkU3RhdGUpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGdzdF9lbGVtZW50X3N0YXRlX2dldF9uYW1lKG5ld1N0YXRlKSku
dXRmOCgpOworICAgICAgICAgICAgICAgIGdzdF9lbGVtZW50X3N0YXRlX2dldF9uYW1lKGN1cnJl
bnRTdGF0ZSksCisgICAgICAgICAgICAgICAgZ3N0X2VsZW1lbnRfc3RhdGVfZ2V0X25hbWUobmV3
U3RhdGUpKS51dGY4KCk7CiAKICAgICAgICAgICAgIEdTVF9ERUJVR19CSU5fVE9fRE9UX0ZJTEVf
V0lUSF9UUyhHU1RfQklOKG1fcGxheUJpbi5nZXQoKSksIEdTVF9ERUJVR19HUkFQSF9TSE9XX0FM
TCwgZG90RmlsZU5hbWUuZGF0YSgpKTsKICAgICAgICAgfQpAQCAtNzEzLDYgKzczNCwxNiBAQCBn
Ym9vbGVhbiBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmhhbmRsZU1lc3NhZ2UoR3N0TWVz
c2FnZSogbWVzc2FnZSkKICAgICAgICAgTE9HX01FRElBX01FU1NBR0UoIkR1cmF0aW9uIGNoYW5n
ZWQiKTsKICAgICAgICAgZHVyYXRpb25DaGFuZ2VkKCk7CiAgICAgICAgIGJyZWFrOworICAgIGNh
c2UgR1NUX01FU1NBR0VfUkVRVUVTVF9TVEFURToKKyAgICAgICAgZ3N0X21lc3NhZ2VfcGFyc2Vf
cmVxdWVzdF9zdGF0ZShtZXNzYWdlLCAmcmVxdWVzdGVkU3RhdGUpOworICAgICAgICBnc3RfZWxl
bWVudF9nZXRfc3RhdGUobV9wbGF5QmluLmdldCgpLCAmY3VycmVudFN0YXRlLCBOVUxMLCAyNTAp
OworICAgICAgICBpZiAocmVxdWVzdGVkU3RhdGUgPCBjdXJyZW50U3RhdGUpIHsKKyAgICAgICAg
ICAgIExPR19NRURJQV9NRVNTQUdFKCJFbGVtZW50ICVzIHJlcXVlc3RlZCBzdGF0ZSBjaGFuZ2Ug
dG8gJXMiLCBnc3RfZWxlbWVudF9nZXRfbmFtZShHU1RfTUVTU0FHRV9TUkMobWVzc2FnZSkpLAor
ICAgICAgICAgICAgICAgIGdzdF9lbGVtZW50X3N0YXRlX2dldF9uYW1lKHJlcXVlc3RlZFN0YXRl
KSk7CisgICAgICAgICAgICBtX3JlcXVlc3RlZFN0YXRlID0gcmVxdWVzdGVkU3RhdGU7CisgICAg
ICAgICAgICBjaGFuZ2VQaXBlbGluZVN0YXRlKHJlcXVlc3RlZFN0YXRlKTsKKyAgICAgICAgfQor
ICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAgICBMT0dfTUVESUFfTUVTU0FHRSgi
VW5oYW5kbGVkIEdTdHJlYW1lciBtZXNzYWdlIHR5cGU6ICVzIiwKICAgICAgICAgICAgICAgICAg
ICAgR1NUX01FU1NBR0VfVFlQRV9OQU1FKG1lc3NhZ2UpKTsKQEAgLTk2Miw2ICs5OTMsNyBAQCB2
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6dXBkYXRlU3RhdGVzKCkKICAgICAgICAg
JnN0YXRlLCAmcGVuZGluZywgMjUwICogR1NUX05TRUNPTkQpOwogCiAgICAgYm9vbCBzaG91bGRV
cGRhdGVBZnRlclNlZWsgPSBmYWxzZTsKKyAgICBib29sIHNob3VsZFVwZGF0ZVBsYXliYWNrU3Rh
dGUgPSBmYWxzZTsKICAgICBzd2l0Y2ggKHJldCkgewogICAgIGNhc2UgR1NUX1NUQVRFX0NIQU5H
RV9TVUNDRVNTOgogICAgICAgICBMT0dfTUVESUFfTUVTU0FHRSgiU3RhdGU6ICVzLCBwZW5kaW5n
OiAlcyIsCkBAIC0xMDQ4LDYgKzEwODAsMTEgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXI6OnVwZGF0ZVN0YXRlcygpCiAgICAgICAgICAgICBtX3NlZWtpbmcgPSBmYWxzZTsKICAg
ICAgICAgfQogCisgICAgICAgIGlmIChtX3JlcXVlc3RlZFN0YXRlID09IEdTVF9TVEFURV9QQVVT
RUQgJiYgc3RhdGUgPT0gR1NUX1NUQVRFX1BBVVNFRCkgeworICAgICAgICAgICAgc2hvdWxkVXBk
YXRlUGxheWJhY2tTdGF0ZSA9IHRydWU7CisgICAgICAgICAgICBMT0dfTUVESUFfTUVTU0FHRSgi
UmVxdWVzdGVkIHN0YXRlIGNoYW5nZSB0byAlcyB3YXMgY29tcGxldGVkIiwgZ3N0X2VsZW1lbnRf
c3RhdGVfZ2V0X25hbWUoc3RhdGUpKTsKKyAgICAgICAgfQorCiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgR1NUX1NUQVRFX0NIQU5HRV9BU1lOQzoKICAgICAgICAgTE9HX01FRElBX01FU1NBR0Uo
IkFzeW5jOiBTdGF0ZTogJXMsIHBlbmRpbmc6ICVzIiwKQEAgLTExMTQsMTIgKzExNTEsMTcgQEAg
dm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnVwZGF0ZVN0YXRlcygpCiAgICAgICAg
IGJyZWFrOwogICAgIH0KIAorICAgIG1fcmVxdWVzdGVkU3RhdGUgPSBHU1RfU1RBVEVfVk9JRF9Q
RU5ESU5HOworCiAgICAgaWYgKHNlZWtpbmcoKSkKICAgICAgICAgbV9yZWFkeVN0YXRlID0gTWVk
aWFQbGF5ZXI6OkhhdmVOb3RoaW5nOwogCiAgICAgaWYgKHNob3VsZFVwZGF0ZUFmdGVyU2VlaykK
ICAgICAgICAgdGltZUNoYW5nZWQoKTsKIAorICAgIGlmIChzaG91bGRVcGRhdGVQbGF5YmFja1N0
YXRlKQorICAgICAgICBtX3BsYXllci0+cGxheWJhY2tTdGF0ZUNoYW5nZWQoKTsKKwogICAgIGlm
IChtX25ldHdvcmtTdGF0ZSAhPSBvbGROZXR3b3JrU3RhdGUpIHsKICAgICAgICAgTE9HX01FRElB
X01FU1NBR0UoIk5ldHdvcmsgU3RhdGUgQ2hhbmdlZCBmcm9tICV1IHRvICV1IiwKICAgICAgICAg
ICAgIG9sZE5ldHdvcmtTdGF0ZSwgbV9uZXR3b3JrU3RhdGUpOwpAQCAtMTQ5NCw2ICsxNTM2LDgg
QEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmNyZWF0ZUF1ZGlvU2luaygpCiAg
ICAgR3N0RWxlbWVudCogcmVzYW1wbGUgPSBnc3RfZWxlbWVudF9mYWN0b3J5X21ha2UoImF1ZGlv
cmVzYW1wbGUiLCAwKTsKICAgICBHc3RFbGVtZW50KiBzaW5rID0gZ3N0X2VsZW1lbnRfZmFjdG9y
eV9tYWtlKCJhdXRvYXVkaW9zaW5rIiwgMCk7CiAKKyAgICBnX3NpZ25hbF9jb25uZWN0KHNpbmss
ICJjaGlsZC1hZGRlZCIsIEdfQ0FMTEJBQ0soc2V0QXVkaW9TdHJlYW1Qcm9wZXJ0aWVzKSwgdGhp
cyk7CisKICAgICBHc3RFbGVtZW50KiBhdWRpb1NpbmsgPSBnc3RfYmluX25ldygiYXVkaW8tc2lu
ayIpOwogICAgIGdzdF9iaW5fYWRkX21hbnkoR1NUX0JJTihhdWRpb1NpbmspLCBzY2FsZSwgY29u
dmVydCwgcmVzYW1wbGUsIHNpbmssIE5VTEwpOwogCkBAIC0xNTM5LDYgKzE1ODMsMTMgQEAgdm9p
ZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmNyZWF0ZUdTVFBsYXlCaW4oKQogICAgIGNy
ZWF0ZUF1ZGlvU2luaygpOwogfQogCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6
c2ltdWxhdGVBdWRpb0ludGVycnVwdGlvbigpCit7CisgICAgR3N0RWxlbWVudCogcGxheUJpbiA9
IG1fcGxheUJpbi5nZXQoKTsKKyAgICBHc3RNZXNzYWdlKiBtZXNzYWdlID0gZ3N0X21lc3NhZ2Vf
bmV3X3JlcXVlc3Rfc3RhdGUoR1NUX09CSkVDVChwbGF5QmluKSwgR1NUX1NUQVRFX1BBVVNFRCk7
CisgICAgZ3N0X2VsZW1lbnRfcG9zdF9tZXNzYWdlKHBsYXlCaW4sIG1lc3NhZ2UpOworfQorCiB9
CiAKICNlbmRpZiAvLyBVU0UoR1NUUkVBTUVSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lci5oCmluZGV4IDhhMWZkNDg2MDU0MjRiNTEwMWYwNDllMWZkMDVjNTBl
YzEwYTY0MGUuLjA2MWM3N2E1NDRmYWU1Mjc0NDY0ODY5ZjQ3MTVkN2Q1N2Y4NjJkNTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgKQEAgLTg4LDYgKzg4
LDggQEAgcHVibGljOgogICAgIHZvaWQgc291cmNlQ2hhbmdlZCgpOwogICAgIEdzdEVsZW1lbnQq
IGF1ZGlvU2luaygpIGNvbnN0OwogCisgICAgdm9pZCBzaW11bGF0ZUF1ZGlvSW50ZXJydXB0aW9u
KCk7CisKIHByaXZhdGU6CiAgICAgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyKE1lZGlhUGxh
eWVyKik7CiAKQEAgLTExOCw2ICsxMjAsOSBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgU3RyaW5n
IGVuZ2luZURlc2NyaXB0aW9uKCkgY29uc3QgeyByZXR1cm4gIkdTdHJlYW1lciI7IH0KICAgICB2
aXJ0dWFsIGJvb2wgaXNMaXZlU3RyZWFtKCkgY29uc3QgeyByZXR1cm4gbV9pc1N0cmVhbWluZzsg
fQogCisgICAgc3RhdGljIHZvaWQgc2V0QXVkaW9TdHJlYW1Qcm9wZXJ0aWVzKEdzdENoaWxkUHJv
eHkqLCBHT2JqZWN0KiwgZ2NoYXIqIG5hbWUsCisgICAgICAgIE1lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lciogc2VsZik7CisKIHByaXZhdGU6CiAgICAgR1JlZlB0cjxHc3RFbGVtZW50PiBtX3Bs
YXlCaW47CiAgICAgR1JlZlB0cjxHc3RFbGVtZW50PiBtX3NvdXJjZTsKQEAgLTE1Myw2ICsxNTgs
NyBAQCBwcml2YXRlOgogICAgIEtVUkwgbV91cmw7CiAgICAgYm9vbCBtX29yaWdpbmFsUHJlbG9h
ZFdhc0F1dG9BbmRXYXNPdmVycmlkZGVuOwogICAgIGJvb2wgbV9wcmVzZXJ2ZXNQaXRjaDsKKyAg
ICBHc3RTdGF0ZSBtX3JlcXVlc3RlZFN0YXRlOwogfTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuY3BwCmluZGV4IGQxYTdlOTkzOWE3OWIzNjY5MzgwNjRiOTQ0NzIwNjg2NzU3MGMx
NWUuLjlkYzUxNjUyNGUwOTgyZGJmMzNhZmViOTZlY2I0MjU4OGZjZmUzMTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTUwLDYgKzUwLDcgQEAKICNpbmNsdWRlICJGcmFt
ZVZpZXcuaCIKICNpbmNsdWRlICJIVE1MQ29udGVudEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1M
SW5wdXRFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTE1lZGlhRWxlbWVudC5oIgogI2luY2x1ZGUg
IkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIkhUTUxUZXh0QXJlYUVsZW1lbnQuaCIKICNpbmNsdWRl
ICJIaXN0b3J5SXRlbS5oIgpAQCAtMjA0MSw0ICsyMDQyLDEyIEBAIFN0cmluZyBJbnRlcm5hbHM6
Om1hcmtlclRleHRGb3JMaXN0SXRlbShFbGVtZW50KiBlbGVtZW50LCBFeGNlcHRpb25Db2RlJiBl
YykKICAgICByZXR1cm4gV2ViQ29yZTo6bWFya2VyVGV4dEZvckxpc3RJdGVtKGVsZW1lbnQpOwog
fQogCit2b2lkIEludGVybmFsczo6c2ltdWxhdGVBdWRpb0ludGVycnVwdGlvbihOb2RlICpub2Rl
KQoreworI2lmIFVTRShHU1RSRUFNRVIpCisgICAgSFRNTE1lZGlhRWxlbWVudCogZWxlbWVudCA9
IHRvTWVkaWFFbGVtZW50KG5vZGUpOworICAgIGVsZW1lbnQtPnBsYXllcigpLT5zaW11bGF0ZUF1
ZGlvSW50ZXJydXB0aW9uKCk7CisjZW5kaWYKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmgKaW5kZXggZWVjMzgzYTVkMDM4Njk5MjA0YTQ1YTlmZGQ0MjM4YWVjNjI1ZTcwNi4uY2Rh
MDBkZDA3ZTgyOWE5MzFmNTY2YTNlYjQwMzQ4OTBlYjkyZGYwZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5oCkBAIC0yOTUsNiArMjk1LDggQEAgcHVibGljOgogICAgIHZvaWQgZW5hYmxl
TW9ja1NwZWVjaFN5bnRoZXNpemVyKCk7CiAjZW5kaWYKICAgICAgICAgICAgICAgICAgICAgCisg
ICAgdm9pZCBzaW11bGF0ZUF1ZGlvSW50ZXJydXB0aW9uKE5vZGUqKTsKKwogcHJpdmF0ZToKICAg
ICBleHBsaWNpdCBJbnRlcm5hbHMoRG9jdW1lbnQqKTsKICAgICBEb2N1bWVudCogY29udGV4dERv
Y3VtZW50KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFscy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKaW5kZXggMzcy
YjA5ODYyYTYyMDY5YWY2NGY1MjA2NDZlMDU4ZDM4NmZmOWVkNS4uNTJlNWNhZTBkMGQzYzk0Mjcw
ODBmMjIxMmYwODk1NTIxYWZkYmUyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlk
bApAQCAtMjU1LDYgKzI1NSw4IEBACiAKICAgICB2b2lkIHNldFVzZXNPdmVybGF5U2Nyb2xsYmFy
cyhpbiBib29sZWFuIGVuYWJsZWQpOwogCisgICAgdm9pZCBzaW11bGF0ZUF1ZGlvSW50ZXJydXB0
aW9uKGluIE5vZGUgbm9kZSk7CisKICAgICBbQ29uZGl0aW9uYWw9RU5DUllQVEVEX01FRElBX1Yy
XSB2b2lkIGluaXRpYWxpemVNb2NrQ0RNKCk7CiAKICAgICBbQ29uZGl0aW9uYWw9U1BFRUNIX1NZ
TlRIRVNJU10gdm9pZCBlbmFibGVNb2NrU3BlZWNoU3ludGhlc2l6ZXIoKTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA0NTYz
N2IyMGZjODIwN2FjMTU4ODU4MGU4Nzk3OTFlZDFkYzYzOWM4Li5iNWUzZjNlODE3YmZhMGVmMmVm
MjNlMjRkNDk1ZTVhYmViOGE3Y2FkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTMtMDMtMDYg
IFhhYmllciBSb2RyaWd1ZXogQ2FsdmFyICA8Y2FsdmFyaXNAaWdhbGlhLmNvbT4KKworICAgICAg
ICBbR1N0cmVhbWVyXSBTdG9wcGluZyBwbGF5YmFjayBvZiBodG1sNSBtZWRpYSB3aGVuIHJlY2Vp
dmluZyBhIGhpZ2hlciBwcmlvcml0eSBhdWRpbyBldmVudCBuZWVkcyBpbXBsZW1lbnRhdGlvbgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTE2MTEKKwor
ICAgICAgICBDcmVhdGVkIHRlc3QsIGV4cGVjdGVkIHJlc3VsdCBhbmQgdXBkYXRlZCBvdGhlciBw
b3J0cworICAgICAgICBleHBlY3RhdGlvbnMuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBtZWRpYS9tZWRpYS1oaWdoZXItcHJpby1hdWRpby1zdHJl
YW0tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBtZWRpYS9tZWRpYS1oaWdoZXItcHJp
by1hdWRpby1zdHJlYW0uaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0v
VGVzdEV4cGVjdGF0aW9uczogU2tpcHBlZCB0aGUgbmV3IHRlc3QuCisgICAgICAgICogcGxhdGZv
cm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnM6IFNraXBwZWQgdGhlIG5ldyB0ZXN0LgorICAgICAgICAq
IHBsYXRmb3JtL3F0L1Rlc3RFeHBlY3RhdGlvbnM6IFNraXBwZWQgdGhlIG5ldyB0ZXN0IGZvciBN
YWMgYW5kCisgICAgICAgIFdpbi4KKwogMjAxMy0wMy0wNSAgQ2xhdWRpbyBTYWF2ZWRyYSAgPGNz
YWF2ZWRyYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIE1ha2UgdG9nZ2xlLXVubGluay5odG1sIHRl
c3QgTWFjIHNwZWNpZmljIGJlaGF2aW91cgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEv
bWVkaWEtaGlnaGVyLXByaW8tYXVkaW8tc3RyZWFtLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L21lZGlhL21lZGlhLWhpZ2hlci1wcmlvLWF1ZGlvLXN0cmVhbS1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYmFlYjk1MjU3MjQwZDIxYWVhMzE2ODgyYTcyZTE5MjQzMWU2ZGI5NwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlhL21lZGlhLWhpZ2hlci1wcmlvLWF1ZGlvLXN0cmVh
bS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorVGVzdCBwYXVzZWQgYnk6CisKK0dldHRp
bmcgYSBoaWdoZXIgcHJpb3JpdHkgYXVkaW8gc3RyZWFtLgorVGhpcyB0ZXN0IGRvZXMgbm90IHdv
cmsgaW4gdGhlIGxhdW5jaGVycywgb25seSB3aXRoIHRoZSB0ZXN0IHJ1bm5lcnMuCitFVkVOVChw
bGF5aW5nKQorRVhQRUNURUQgKG1lZGlhRWxlbWVudC5wYXVzZWQgPT0gJ2ZhbHNlJykgT0sKK0VW
RU5UKHBhdXNlKQorRVhQRUNURUQgKG1lZGlhRWxlbWVudC5wYXVzZWQgPT0gJ3RydWUnKSBPSwor
RVhQRUNURUQgKG1lZGlhRWxlbWVudC5lbmRlZCA9PSAnZmFsc2UnKSBPSworCitFTkQgT0YgVEVT
VAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1oaWdoZXItcHJpby1hdWRp
by1zdHJlYW0uaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL21lZGlhLWhpZ2hlci1wcmlvLWF1ZGlv
LXN0cmVhbS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg1N2IxNzNiY2UzZTIxZmViNGVhMTJhYzkxNzk0Mjlh
MjkxZGQzMjAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1oaWdo
ZXItcHJpby1hdWRpby1zdHJlYW0uaHRtbApAQCAtMCwwICsxLDQ2IEBACis8IURPQ1RZUEUgaHRt
bD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8c2NyaXB0IHNyYz1tZWRpYS1maWxlLmpz
Pjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz12aWRlby10ZXN0LmpzPjwvc2NyaXB0Pgor
CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAgICB2YXIgbWVkaWFFbGVtZW50OworCisgICAg
ICAgICAgICBmdW5jdGlvbiBzdGFydCgpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAg
bWVkaWFFbGVtZW50ID0gbmV3IEF1ZGlvKCk7CisKKyAgICAgICAgICAgICAgICB3YWl0Rm9yRXZl
bnQoJ2Vycm9yJyk7CisgICAgICAgICAgICAgICAgd2FpdEZvckV2ZW50KCdwbGF5aW5nJywgcGxh
eWluZyk7CisKKyAgICAgICAgICAgICAgICBtZWRpYUVsZW1lbnQuc3JjID0gZmluZE1lZGlhRmls
ZSgnYXVkaW8nLCAnY29udGVudC90ZXN0Jyk7CisgICAgICAgICAgICAgICAgbWVkaWFFbGVtZW50
LnBsYXkoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZnVuY3Rpb24gcGxheWluZygp
CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJtZWRpYUVsZW1l
bnQucGF1c2VkIiwgZmFsc2UpOworICAgICAgICAgICAgICAgIHdhaXRGb3JFdmVudCgncGF1c2Un
LCBwYXVzZWQpOworICAgICAgICAgICAgICAgIGludGVybmFscy5zaW11bGF0ZUF1ZGlvSW50ZXJy
dXB0aW9uKG1lZGlhRWxlbWVudCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZ1bmN0
aW9uIHBhdXNlZCgpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVk
KCJtZWRpYUVsZW1lbnQucGF1c2VkIiwgdHJ1ZSk7CisgICAgICAgICAgICAgICAgdGVzdEV4cGVj
dGVkKCJtZWRpYUVsZW1lbnQuZW5kZWQiLCBmYWxzZSk7CisgICAgICAgICAgICAgICAgY29uc29s
ZVdyaXRlKCIiKTsKKyAgICAgICAgICAgICAgICBlbmRUZXN0KCk7CisgICAgICAgICAgICB9Cisg
ICAgICAgIDwvc2NyaXB0PgorICAgIDwvaGVhZD4KKyAgICA8Ym9keSBvbmxvYWQ9InN0YXJ0KCki
PgorICAgICAgICA8cD48Yj5UZXN0IHBhdXNlZCBieTo8L2I+CisgICAgICAgIDxvbD4KKyAgICAg
ICAgICAgIDxsaT5HZXR0aW5nIGEgaGlnaGVyIHByaW9yaXR5IGF1ZGlvIHN0cmVhbS48L2xpPgor
ICAgICAgICAgICAgPGxpPlRoaXMgdGVzdCBkb2VzIG5vdCB3b3JrIGluIHRoZSBsYXVuY2hlcnMs
IG9ubHkgd2l0aAorICAgICAgICAgICAgdGhlIHRlc3QgcnVubmVycy48L2xpPgorICAgICAgICA8
L29sPgorICAgICAgICA8L3A+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggNjY5OWU4ODg3YmRlYzll
NWZhNTRmYmVjNmRlOTM4NWIwN2IwOWFjNC4uMGU1MWQ1NzYxYTQ3YzNhYjU4NDQxZDU5NmQwZDA3
NGMwOThhNGYyYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vVGVz
dEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhw
ZWN0YXRpb25zCkBAIC00NDE3LDMgKzQ0MTcsNiBAQCB3ZWJraXQub3JnL2IvMTExNTE0IFsgTWFj
IF0gcGx1Z2lucy9wbHVnaW4tY2xpcC1zdWJmcmFtZS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQu
b3JnL2IvMTExNTE4IFsgTGludXggV2luIE1hYyBdIGh0dHAvdGVzdHMvbWlzYy9kZWxldGUtZnJh
bWUtZHVyaW5nLXJlYWR5c3RhdGVjaGFuZ2Utd2l0aC1nYy1hZnRlci12aWRlby1yZW1vdmFsLmh0
bWwgWyBDcmFzaCBdCiAKIHdlYmtpdC5vcmcvYi8xMTE1MjQgWyBEZWJ1ZyBXaW4gTWFjIF0gZmFz
dC9kb20vSFRNTERvY3VtZW50L2RvY3VtZW50LXNwZWNpYWwtcHJvcGVydGllcy5odG1sIFsgUGFz
cyBUaW1lb3V0IF0KKworIyBGZWF0dXJlIG5vdCBpbXBsZW1lbnRlZAord2Via2l0Lm9yZy9iLzkx
NjExIG1lZGlhL21lZGlhLWhpZ2hlci1wcmlvLWF1ZGlvLXN0cmVhbS5odG1sIFsgU2tpcCBdCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDk2MTg5NDg3Y2I1
NmQxNTY4YzMwY2Y5MzU5MjQ3NTZjMDM5NDA3NzguLjBmYTBjZGUxMjk2ZjA0NTkzNGJkNTVhNjMz
ZDhjZjk1OGE0YmEyNzUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0
RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRp
b25zCkBAIC0xNDM2LDMgKzE0MzYsNiBAQCB3ZWJraXQub3JnL2IvMTEwNjU0IGNzczMvZmxleGJv
eC9idXR0b24uaHRtbCBbIEZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzExMTAxNiBodHRwL3Rlc3Rz
L2xvYWRpbmcvcHJvbW90ZS1pbWctcHJlbG9hZC1wcmlvcml0eS5odG1sIFsgRmFpbHVyZSBdCiAK
IHdlYmtpdC5vcmcvYi8xMTE1MjEgZWRpdGluZy9zZWxlY3Rpb24vc2VsZWN0aW9uLWludmFsaWQt
b2Zmc2V0Lmh0bWwgWyBDcmFzaCBQYXNzIF0KKworIyBGZWF0dXJlIG5vdCBpbXBsZW1lbnRlZAor
d2Via2l0Lm9yZy9iLzkxNjExIG1lZGlhL21lZGlhLWhpZ2hlci1wcmlvLWF1ZGlvLXN0cmVhbS5o
dG1sIFsgU2tpcCBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9UZXN0RXhw
ZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvVGVzdEV4cGVjdGF0aW9ucwppbmRl
eCA3MGExOGJlZDVjNjBhZDM5Zjc4NzgyMzFlNjc2ZTIyZmE0ZDIzMjlhLi5kZjQzY2ZkZmZmYzQy
NTVkZDNhNGQwNjJjMDg3YzI3Y2Y3NzI0MTA4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9xdC9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1Rl
c3RFeHBlY3RhdGlvbnMKQEAgLTI2NjgsMyArMjY2OCw2IEBAIHdlYmtpdC5vcmcvYi8xMTA2NTQg
Y3NzMy9mbGV4Ym94L2J1dHRvbi5odG1sIFsgRmFpbHVyZSBdCiAKICMgTmVlZCBzdXBwb3J0IGZv
ciBSZXNvdXJjZUhhbmRsZTo6ZGlkQ2hhbmdlUHJpb3JpdHkgYW5kIERSVCBzdXBwb3J0CiB3ZWJr
aXQub3JnL2IvMTExMDE2IGh0dHAvdGVzdHMvbG9hZGluZy9wcm9tb3RlLWltZy1wcmVsb2FkLXBy
aW9yaXR5Lmh0bWwgWyBGYWlsdXJlIF0KKworIyBGZWF0dXJlIG5vdCBpbXBsZW1lbnRlZAord2Vi
a2l0Lm9yZy9iLzkxNjExIFsgTWFjIFdpbiBdIG1lZGlhL21lZGlhLWhpZ2hlci1wcmlvLWF1ZGlv
LXN0cmVhbS5odG1sIFsgU2tpcCBdCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>191967</attachid>
            <date>2013-03-07 04:27:45 -0800</date>
            <delta_ts>2013-03-13 05:46:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-91611-20130307132348.patch</filename>
            <type>text/plain</type>
            <size>20937</size>
            <attacher name="Xabier Rodríguez Calvar">calvaris</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ1MDU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmJlYmIxN2UzMGUwZWNk
NDIyNzhjMGRlNmMyOGE3M2E5YWQ4YzRhMy4uZTQ4MGM1MGYzMzUzNGJkMWYzYmEwMzg5MDAzYjJk
YjQwZTQxMGMzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDEzLTAzLTA3ICBYYWJp
ZXIgUm9kcmlndWV6IENhbHZhciAgPGNhbHZhcmlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dT
dHJlYW1lcl0gU3RvcHBpbmcgcGxheWJhY2sgb2YgaHRtbDUgbWVkaWEgd2hlbiByZWNlaXZpbmcg
YSBoaWdoZXIgcHJpb3JpdHkgYXVkaW8gZXZlbnQgbmVlZHMgaW1wbGVtZW50YXRpb24KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkxNjExCisKKyAgICAg
ICAgUmVhY3QgdG8gUkVRVUVTVF9TVEFURSBHU3RyZWFtZXIgbWVzc2FnZSB0byBzdG9wIHRoZSBw
aXBlbGluZSB3aGVuCisgICAgICAgIGEgaGlnaGVyIHByaW9yaXR5IHN0cmVhbSBpcyBwbGF5ZWQu
IFdoZW4gdGhpcyBoYXBwZW5zLCBzdGF0ZXMgYXJlCisgICAgICAgIHVwZGF0ZWQgYWNjb3JkaW5n
bHkuCisKKyAgICAgICAgQSBtZXRob2Qgd2FzIGFkZGVkIGluIHRoZSBNZWRpYVBsYXllciBjbGFz
cyBhbmQgaW50ZXJuYWxzIHRvIGFsbG93CisgICAgICAgIHRoZSB0aGUgdGVzdCBydW5uZXIgdG8g
c2ltdWxhdGUgYW4gYXVkaW8gaW50ZXJydXB0aW9uLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IG1lZGlhL21lZGlhLWhpZ2hlci1wcmlvLWF1
ZGlvLXN0cmVhbS5odG1sCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXll
ci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAoTWVkaWFQbGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFQbGF5ZXI6OnNpbXVsYXRlQXVkaW9JbnRlcnJ1cHRpb24pOiBBZGRlZCB0bworICAgICAg
ICBkZWxlZ2F0ZSBvbiB0aGUgcHJpdmF0ZSB0byBzdG9wIGJlY2F1c2Ugb2YgYSBzdHJlYW0gd2l0
aCBiaWdnZXIKKyAgICAgICAgcHJpb3JpdHkuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
TWVkaWFQbGF5ZXJQcml2YXRlLmg6CisgICAgICAgIChNZWRpYVBsYXllclByaXZhdGVJbnRlcmZh
Y2UpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlOjpzaW11
bGF0ZUF1ZGlvSW50ZXJydXB0aW9uKToKKyAgICAgICAgQWRkZWQgZGVmYXVsdCBlbXB0eSBtZXRo
b2QgaW4gdGhlIGNvbW1vbiBwcml2YXRlIGhlYWRlci4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
OjpjcmVhdGVBdWRpb1NpbmspOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyOjpzZXRBdWRpb1N0cmVhbVByb3BlcnRpZXMpOgorICAgICAgICBIb29rZWQgdG8g
Y2hpbGQtYWRkZWQgc2lnbmFsIG9uIHRoZSBhdWRpbyBzaW5rLCBzZXRzIHRoZSBzdHJlYW0KKyAg
ICAgICAgcHJvcGVydGllcy4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lcjo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyKToKKyAgICAgICAgSW5pdGlhbGl6
ZXMgdGhlIG5ldyBhdHRyaWJ1dGUuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXI6On5NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIpOgorICAgICAgICBEaXNj
b25uZWN0cyBhdXRvYXVkaW9zaW5rIHNpZ25hbC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y2hhbmdlUGlwZWxpbmVTdGF0ZSk6CisgICAgICAgIENoYW5n
ZWQgbG9nZ2luZy4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
cjo6aGFuZGxlTWVzc2FnZSk6IFJlYWN0aW5nIHRvCisgICAgICAgIHRoZSBSRVFVRVNUX1NUQVRF
IG1lc3NhZ2UuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6
OnNpbXVsYXRlQXVkaW9JbnRlcnJ1cHRpb24pOgorICAgICAgICBBZGRlZC4gSW5qZWN0cyB0aGUg
UkVRVUVTVF9TVEFURSBtZXNzYWdlIHRvIHRoZSBwaXBlbGluZS4KKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6dXBkYXRlU3RhdGVzKTogVXBkYXRpbmcgdGhl
CisgICAgICAgIHBsYXliYWNrIHN0YXRlIGlmIFJFUVVFU1RfU1RBVEUuCisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oOgor
ICAgICAgICAoTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyKTogQWRkZWQgbmV3IG1ldGhvZCBh
bmQgYXR0cmlidXRlLgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAgICog
dGVzdGluZy9JbnRlcm5hbHMuaWRsOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoK
KyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpzaW11bGF0
ZUF1ZGlvSW50ZXJydXB0aW9uKTogQWRkZWQgdG8gY2FsbCB0aGUKKyAgICAgICAgbWV0aG9kIHRv
IHN0b3AgdGhlIGVsZW1lbnQgYmVjYXVzZSBvZiBhIGhpZ2hlciBwcmlvIHN0cmVhbSBhdCB0aGUK
KyAgICAgICAgdGVzdHMuCisKIDIwMTMtMDMtMDcgIEFuZHJleSBMdXNobmlrb3YgIDxsdXNobmlr
b3ZAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFtBQ0VdIGFkZCBleHBl
cmltZW50YWwgYnJlYWtwb2ludCBzdXBwb3J0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKaW5kZXggZjBiMTgyZDI0MDM0YjI5N2ZiZDc3OTgy
NWI0NTRmYWUyNTUyMjVhMy4uMGU2OWVhZDMyNTE4YTE0MmZiMjdmYjA5MzkzZDk2YzBkMjcwOGVm
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVy
LmNwcApAQCAtMTEyNyw2ICsxMTI3LDE2IEBAIHZvaWQgTWVkaWFQbGF5ZXI6OnJlc2V0TWVkaWFF
bmdpbmVzKCkKICAgICBpbnN0YWxsZWRNZWRpYUVuZ2luZXMoUmVzZXRFbmdpbmVzKTsKIH0KIAor
I2lmIFVTRShHU1RSRUFNRVIpCit2b2lkIE1lZGlhUGxheWVyOjpzaW11bGF0ZUF1ZGlvSW50ZXJy
dXB0aW9uKCkKK3sKKyAgICBpZiAoIW1fcHJpdmF0ZSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
bV9wcml2YXRlLT5zaW11bGF0ZUF1ZGlvSW50ZXJydXB0aW9uKCk7Cit9CisjZW5kaWYKKwogfQog
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01l
ZGlhUGxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXll
ci5oCmluZGV4IDllNTZjYjgxNTdkNjZiYWM4ZDQ0YjcyMDAyYWJlYjgyZDE1MGI4ODYuLmFmNjdk
ZTU2ODUwNmM2ODM5MGE2ZGVkYWJmYWMxN2QxZWYwZDIwYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaApAQCAtNDM3LDYgKzQzNywxMCBAQCBw
dWJsaWM6CiAKICAgICBzdGF0aWMgdm9pZCByZXNldE1lZGlhRW5naW5lcygpOwogCisjaWYgVVNF
KEdTVFJFQU1FUikKKyAgICB2aXJ0dWFsIHZvaWQgc2ltdWxhdGVBdWRpb0ludGVycnVwdGlvbigp
OworI2VuZGlmCisKIHByaXZhdGU6CiAgICAgTWVkaWFQbGF5ZXIoTWVkaWFQbGF5ZXJDbGllbnQq
KTsKICAgICB2b2lkIGxvYWRXaXRoTmV4dE1lZGlhRW5naW5lKE1lZGlhUGxheWVyRmFjdG9yeSop
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5
ZXJQcml2YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXll
clByaXZhdGUuaAppbmRleCAxZjNmM2UxMGE4N2M5Mzk1NzViM2JjNzc3MzhiYzEyODgwZDFhNTQ0
Li40ZjgzZDYxMzkyMDFkYjJhYjliM2JhYjIyMmU3YjFiMzEzNDY3NjZmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaApA
QCAtMTgwLDYgKzE4MCwxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHJlcXVpcmVzVGV4
dFRyYWNrUmVwcmVzZW50YXRpb24oKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1
YWwgdm9pZCBzZXRUZXh0VHJhY2tSZXByZXNlbnRhdGlvbihUZXh0VHJhY2tSZXByZXNlbnRhdGlv
biopIHsgfQogI2VuZGlmCisKKyNpZiBVU0UoR1NUUkVBTUVSKQorICAgIHZpcnR1YWwgdm9pZCBz
aW11bGF0ZUF1ZGlvSW50ZXJydXB0aW9uKCkgeyB9CisjZW5kaWYKIH07CiAKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKaW5kZXggMmFkZmU3NGZi
ZGIxZjhiMjYwMzczYjFkNDZhMWMwODUxYzU3NDY0MC4uYTZlNmMyNTllNzIyNTVmMWE3MWQ3OGQ1
MTYxMmFmYWIzYzYzODYxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lci5jcHAKQEAgLTEyMCw2ICsxMjAsMjAgQEAgc3RhdGljIGdib29sZWFuIG1lZGlh
UGxheWVyUHJpdmF0ZVZpZGVvQ2hhbmdlVGltZW91dENhbGxiYWNrKE1lZGlhUGxheWVyUHJpdmF0
ZUcKICAgICByZXR1cm4gRkFMU0U7CiB9CiAKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyOjpzZXRBdWRpb1N0cmVhbVByb3BlcnRpZXMoR3N0Q2hpbGRQcm94eSogcHJveHksIEdPYmpl
Y3QqIG9iamVjdCwgZ2NoYXIqIG5hbWUsCisgICAgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
KiBzZWxmKQoreworICAgIGlmIChnX3N0cmNtcDAoR19PQkpFQ1RfVFlQRV9OQU1FKG9iamVjdCks
ICJHc3RQdWxzZVNpbmsiKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgY29uc3QgY2hhciogcm9s
ZSA9IHNlbGYtPm1fcGxheWVyLT5tZWRpYVBsYXllckNsaWVudCgpICYmIHNlbGYtPm1fcGxheWVy
LT5tZWRpYVBsYXllckNsaWVudCgpLT5tZWRpYVBsYXllcklzVmlkZW8oKQorICAgICAgICA/ICJ2
aWRlbyIgOiAibXVzaWMiOworICAgIEdzdFN0cnVjdHVyZSogc3RydWN0dXJlID0gZ3N0X3N0cnVj
dHVyZV9uZXcoInN0cmVhbS1wcm9wZXJ0aWVzIiwgIm1lZGlhLnJvbGUiLCBHX1RZUEVfU1RSSU5H
LCByb2xlLCBOVUxMKTsKKyAgICBnX29iamVjdF9zZXQob2JqZWN0LCAic3RyZWFtLXByb3BlcnRp
ZXMiLCBzdHJ1Y3R1cmUsIE5VTEwpOworICAgIGdzdF9zdHJ1Y3R1cmVfZnJlZShzdHJ1Y3R1cmUp
OworICAgIExPR19NRURJQV9NRVNTQUdFKCJTZXQgbWVkaWEucm9sZSBhcyAlcyBhdCAlcyIsIHJv
bGUsIGdzdF9lbGVtZW50X2dldF9uYW1lKEdTVF9FTEVNRU5UKG9iamVjdCkpKTsKK30KKwogUGFz
c093blB0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IE1lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lcjo6Y3JlYXRlKE1lZGlhUGxheWVyKiBwbGF5ZXIpCiB7CiAgICAgcmV0dXJuIGFkb3B0
UHRyKG5ldyBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIocGxheWVyKSk7CkBAIC0xODcsNiAr
MjAxLDcgQEAgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpNZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXIoTWVkaWFQbGF5ZXIqIHBsYXllcikKICAgICAsIG1fdG90YWxCeXRlcygtMSkKICAg
ICAsIG1fb3JpZ2luYWxQcmVsb2FkV2FzQXV0b0FuZFdhc092ZXJyaWRkZW4oZmFsc2UpCiAgICAg
LCBtX3ByZXNlcnZlc1BpdGNoKGZhbHNlKQorICAgICwgbV9yZXF1ZXN0ZWRTdGF0ZShHU1RfU1RB
VEVfVk9JRF9QRU5ESU5HKQogewogfQogCkBAIC0yMDAsNiArMjE1LDEwIEBAIE1lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lcjo6fk1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcigpCiAgICAgICAg
IG1fbWVkaWFMb2NhdGlvbnMgPSAwOwogICAgIH0KIAorICAgIGlmIChtX2F1dG9BdWRpb1Npbmsp
CisgICAgICAgIGdfc2lnbmFsX2hhbmRsZXJzX2Rpc2Nvbm5lY3RfYnlfZnVuYyhHX09CSkVDVCht
X2F1dG9BdWRpb1NpbmsuZ2V0KCkpLAorICAgICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDxncG9p
bnRlcj4oTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpzZXRBdWRpb1N0cmVhbVByb3BlcnRp
ZXMpLCB0aGlzKTsKKwogICAgIGlmIChtX3BsYXlCaW4pIHsKICAgICAgICAgR1JlZlB0cjxHc3RC
dXM+IGJ1cyA9IHdlYmtpdEdzdFBpcGVsaW5lR2V0QnVzKEdTVF9QSVBFTElORShtX3BsYXlCaW4u
Z2V0KCkpKTsKICAgICAgICAgQVNTRVJUKGJ1cyk7CkBAIC0zMjEsOSArMzQwLDE0IEBAIGJvb2wg
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpjaGFuZ2VQaXBlbGluZVN0YXRlKEdzdFN0YXRl
IG5ld1N0YXRlKQogICAgIEdzdFN0YXRlIHBlbmRpbmc7CiAKICAgICBnc3RfZWxlbWVudF9nZXRf
c3RhdGUobV9wbGF5QmluLmdldCgpLCAmY3VycmVudFN0YXRlLCAmcGVuZGluZywgMCk7Ci0gICAg
TE9HX01FRElBX01FU1NBR0UoIkN1cnJlbnQgc3RhdGU6ICVzLCBwZW5kaW5nOiAlcyIsIGdzdF9l
bGVtZW50X3N0YXRlX2dldF9uYW1lKGN1cnJlbnRTdGF0ZSksIGdzdF9lbGVtZW50X3N0YXRlX2dl
dF9uYW1lKHBlbmRpbmcpKTsKLSAgICBpZiAoY3VycmVudFN0YXRlID09IG5ld1N0YXRlIHx8IHBl
bmRpbmcgPT0gbmV3U3RhdGUpCisgICAgaWYgKGN1cnJlbnRTdGF0ZSA9PSBuZXdTdGF0ZSB8fCBw
ZW5kaW5nID09IG5ld1N0YXRlKSB7CisgICAgICAgIExPR19NRURJQV9NRVNTQUdFKCJSZWplY3Rl
ZCBzdGF0ZSBjaGFuZ2UgdG8gJXMgZnJvbSAlcyB3aXRoICVzIHBlbmRpbmciLCBnc3RfZWxlbWVu
dF9zdGF0ZV9nZXRfbmFtZShuZXdTdGF0ZSksCisgICAgICAgICAgICBnc3RfZWxlbWVudF9zdGF0
ZV9nZXRfbmFtZShjdXJyZW50U3RhdGUpLCBnc3RfZWxlbWVudF9zdGF0ZV9nZXRfbmFtZShwZW5k
aW5nKSk7CiAgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIExPR19NRURJQV9NRVNT
QUdFKCJDaGFuZ2luZyBzdGF0ZSBjaGFuZ2UgdG8gJXMgZnJvbSAlcyB3aXRoICVzIHBlbmRpbmci
LCBnc3RfZWxlbWVudF9zdGF0ZV9nZXRfbmFtZShuZXdTdGF0ZSksCisgICAgICAgIGdzdF9lbGVt
ZW50X3N0YXRlX2dldF9uYW1lKGN1cnJlbnRTdGF0ZSksIGdzdF9lbGVtZW50X3N0YXRlX2dldF9u
YW1lKHBlbmRpbmcpKTsKIAogICAgIEdzdFN0YXRlQ2hhbmdlUmV0dXJuIHNldFN0YXRlUmVzdWx0
ID0gZ3N0X2VsZW1lbnRfc2V0X3N0YXRlKG1fcGxheUJpbi5nZXQoKSwgbmV3U3RhdGUpOwogICAg
IEdzdFN0YXRlIHBhdXNlZE9yUGxheWluZyA9IG5ld1N0YXRlID09IEdTVF9TVEFURV9QTEFZSU5H
ID8gR1NUX1NUQVRFX1BBVVNFRCA6IEdTVF9TVEFURV9QTEFZSU5HOwpAQCAtNjI3LDYgKzY1MSw3
IEBAIGdib29sZWFuIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6aGFuZGxlTWVzc2FnZShH
c3RNZXNzYWdlKiBtZXNzYWdlKQogICAgIGJvb2wgaXNzdWVFcnJvciA9IHRydWU7CiAgICAgYm9v
bCBhdHRlbXB0TmV4dExvY2F0aW9uID0gZmFsc2U7CiAgICAgY29uc3QgR3N0U3RydWN0dXJlKiBz
dHJ1Y3R1cmUgPSBnc3RfbWVzc2FnZV9nZXRfc3RydWN0dXJlKG1lc3NhZ2UpOworICAgIEdzdFN0
YXRlIHJlcXVlc3RlZFN0YXRlLCBjdXJyZW50U3RhdGU7CiAKICAgICBpZiAoc3RydWN0dXJlKSB7
CiAgICAgICAgIGNvbnN0IGdjaGFyKiBtZXNzYWdlVHlwZU5hbWUgPSBnc3Rfc3RydWN0dXJlX2dl
dF9uYW1lKHN0cnVjdHVyZSk7CkBAIC02OTIsMTIgKzcxNywxMiBAQCBnYm9vbGVhbiBNZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXI6OmhhbmRsZU1lc3NhZ2UoR3N0TWVzc2FnZSogbWVzc2FnZSkK
ICAgICAgICAgICAgIHVwZGF0ZVN0YXRlcygpOwogCiAgICAgICAgICAgICAvLyBDb25zdHJ1Y3Qg
YSBmaWxlbmFtZSBmb3IgdGhlIGdyYXBodml6IGRvdCBmaWxlIG91dHB1dC4KLSAgICAgICAgICAg
IEdzdFN0YXRlIG9sZFN0YXRlLCBuZXdTdGF0ZTsKLSAgICAgICAgICAgIGdzdF9tZXNzYWdlX3Bh
cnNlX3N0YXRlX2NoYW5nZWQobWVzc2FnZSwgJm9sZFN0YXRlLCAmbmV3U3RhdGUsIDApOworICAg
ICAgICAgICAgR3N0U3RhdGUgbmV3U3RhdGU7CisgICAgICAgICAgICBnc3RfbWVzc2FnZV9wYXJz
ZV9zdGF0ZV9jaGFuZ2VkKG1lc3NhZ2UsICZjdXJyZW50U3RhdGUsICZuZXdTdGF0ZSwgMCk7CiAK
ICAgICAgICAgICAgIENTdHJpbmcgZG90RmlsZU5hbWUgPSBTdHJpbmc6OmZvcm1hdCgid2Via2l0
LXZpZGVvLiVzXyVzIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBnc3RfZWxlbWVudF9zdGF0ZV9nZXRfbmFtZShvbGRTdGF0ZSksCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3N0X2VsZW1lbnRfc3RhdGVf
Z2V0X25hbWUobmV3U3RhdGUpKS51dGY4KCk7CisgICAgICAgICAgICAgICAgZ3N0X2VsZW1lbnRf
c3RhdGVfZ2V0X25hbWUoY3VycmVudFN0YXRlKSwKKyAgICAgICAgICAgICAgICBnc3RfZWxlbWVu
dF9zdGF0ZV9nZXRfbmFtZShuZXdTdGF0ZSkpLnV0ZjgoKTsKIAogICAgICAgICAgICAgR1NUX0RF
QlVHX0JJTl9UT19ET1RfRklMRV9XSVRIX1RTKEdTVF9CSU4obV9wbGF5QmluLmdldCgpKSwgR1NU
X0RFQlVHX0dSQVBIX1NIT1dfQUxMLCBkb3RGaWxlTmFtZS5kYXRhKCkpOwogICAgICAgICB9CkBA
IC03MTMsNiArNzM4LDE2IEBAIGdib29sZWFuIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6
aGFuZGxlTWVzc2FnZShHc3RNZXNzYWdlKiBtZXNzYWdlKQogICAgICAgICBMT0dfTUVESUFfTUVT
U0FHRSgiRHVyYXRpb24gY2hhbmdlZCIpOwogICAgICAgICBkdXJhdGlvbkNoYW5nZWQoKTsKICAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBHU1RfTUVTU0FHRV9SRVFVRVNUX1NUQVRFOgorICAgICAg
ICBnc3RfbWVzc2FnZV9wYXJzZV9yZXF1ZXN0X3N0YXRlKG1lc3NhZ2UsICZyZXF1ZXN0ZWRTdGF0
ZSk7CisgICAgICAgIGdzdF9lbGVtZW50X2dldF9zdGF0ZShtX3BsYXlCaW4uZ2V0KCksICZjdXJy
ZW50U3RhdGUsIE5VTEwsIDI1MCk7CisgICAgICAgIGlmIChyZXF1ZXN0ZWRTdGF0ZSA8IGN1cnJl
bnRTdGF0ZSkgeworICAgICAgICAgICAgTE9HX01FRElBX01FU1NBR0UoIkVsZW1lbnQgJXMgcmVx
dWVzdGVkIHN0YXRlIGNoYW5nZSB0byAlcyIsIGdzdF9lbGVtZW50X2dldF9uYW1lKEdTVF9NRVNT
QUdFX1NSQyhtZXNzYWdlKSksCisgICAgICAgICAgICAgICAgZ3N0X2VsZW1lbnRfc3RhdGVfZ2V0
X25hbWUocmVxdWVzdGVkU3RhdGUpKTsKKyAgICAgICAgICAgIG1fcmVxdWVzdGVkU3RhdGUgPSBy
ZXF1ZXN0ZWRTdGF0ZTsKKyAgICAgICAgICAgIGNoYW5nZVBpcGVsaW5lU3RhdGUocmVxdWVzdGVk
U3RhdGUpOworICAgICAgICB9CisgICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CiAgICAgICAg
IExPR19NRURJQV9NRVNTQUdFKCJVbmhhbmRsZWQgR1N0cmVhbWVyIG1lc3NhZ2UgdHlwZTogJXMi
LAogICAgICAgICAgICAgICAgICAgICBHU1RfTUVTU0FHRV9UWVBFX05BTUUobWVzc2FnZSkpOwpA
QCAtOTYyLDYgKzk5Nyw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjp1cGRh
dGVTdGF0ZXMoKQogICAgICAgICAmc3RhdGUsICZwZW5kaW5nLCAyNTAgKiBHU1RfTlNFQ09ORCk7
CiAKICAgICBib29sIHNob3VsZFVwZGF0ZUFmdGVyU2VlayA9IGZhbHNlOworICAgIGJvb2wgc2hv
dWxkVXBkYXRlUGxheWJhY2tTdGF0ZSA9IGZhbHNlOwogICAgIHN3aXRjaCAocmV0KSB7CiAgICAg
Y2FzZSBHU1RfU1RBVEVfQ0hBTkdFX1NVQ0NFU1M6CiAgICAgICAgIExPR19NRURJQV9NRVNTQUdF
KCJTdGF0ZTogJXMsIHBlbmRpbmc6ICVzIiwKQEAgLTEwNDgsNiArMTA4NCwxMSBAQCB2b2lkIE1l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6dXBkYXRlU3RhdGVzKCkKICAgICAgICAgICAgIG1f
c2Vla2luZyA9IGZhbHNlOwogICAgICAgICB9CiAKKyAgICAgICAgaWYgKG1fcmVxdWVzdGVkU3Rh
dGUgPT0gR1NUX1NUQVRFX1BBVVNFRCAmJiBzdGF0ZSA9PSBHU1RfU1RBVEVfUEFVU0VEKSB7Cisg
ICAgICAgICAgICBzaG91bGRVcGRhdGVQbGF5YmFja1N0YXRlID0gdHJ1ZTsKKyAgICAgICAgICAg
IExPR19NRURJQV9NRVNTQUdFKCJSZXF1ZXN0ZWQgc3RhdGUgY2hhbmdlIHRvICVzIHdhcyBjb21w
bGV0ZWQiLCBnc3RfZWxlbWVudF9zdGF0ZV9nZXRfbmFtZShzdGF0ZSkpOworICAgICAgICB9CisK
ICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBHU1RfU1RBVEVfQ0hBTkdFX0FTWU5DOgogICAgICAg
ICBMT0dfTUVESUFfTUVTU0FHRSgiQXN5bmM6IFN0YXRlOiAlcywgcGVuZGluZzogJXMiLApAQCAt
MTExNCwxMiArMTE1NSwxNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6dXBk
YXRlU3RhdGVzKCkKICAgICAgICAgYnJlYWs7CiAgICAgfQogCisgICAgbV9yZXF1ZXN0ZWRTdGF0
ZSA9IEdTVF9TVEFURV9WT0lEX1BFTkRJTkc7CisKICAgICBpZiAoc2Vla2luZygpKQogICAgICAg
ICBtX3JlYWR5U3RhdGUgPSBNZWRpYVBsYXllcjo6SGF2ZU5vdGhpbmc7CiAKICAgICBpZiAoc2hv
dWxkVXBkYXRlQWZ0ZXJTZWVrKQogICAgICAgICB0aW1lQ2hhbmdlZCgpOwogCisgICAgaWYgKHNo
b3VsZFVwZGF0ZVBsYXliYWNrU3RhdGUpCisgICAgICAgIG1fcGxheWVyLT5wbGF5YmFja1N0YXRl
Q2hhbmdlZCgpOworCiAgICAgaWYgKG1fbmV0d29ya1N0YXRlICE9IG9sZE5ldHdvcmtTdGF0ZSkg
ewogICAgICAgICBMT0dfTUVESUFfTUVTU0FHRSgiTmV0d29yayBTdGF0ZSBDaGFuZ2VkIGZyb20g
JXUgdG8gJXUiLAogICAgICAgICAgICAgb2xkTmV0d29ya1N0YXRlLCBtX25ldHdvcmtTdGF0ZSk7
CkBAIC0xNDk0LDYgKzE1NDAsMTAgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6
OmNyZWF0ZUF1ZGlvU2luaygpCiAgICAgR3N0RWxlbWVudCogcmVzYW1wbGUgPSBnc3RfZWxlbWVu
dF9mYWN0b3J5X21ha2UoImF1ZGlvcmVzYW1wbGUiLCAwKTsKICAgICBHc3RFbGVtZW50KiBzaW5r
ID0gZ3N0X2VsZW1lbnRfZmFjdG9yeV9tYWtlKCJhdXRvYXVkaW9zaW5rIiwgMCk7CiAKKyAgICBt
X2F1dG9BdWRpb1NpbmsgPSBzaW5rOworCisgICAgZ19zaWduYWxfY29ubmVjdChzaW5rLCAiY2hp
bGQtYWRkZWQiLCBHX0NBTExCQUNLKHNldEF1ZGlvU3RyZWFtUHJvcGVydGllcyksIHRoaXMpOwor
CiAgICAgR3N0RWxlbWVudCogYXVkaW9TaW5rID0gZ3N0X2Jpbl9uZXcoImF1ZGlvLXNpbmsiKTsK
ICAgICBnc3RfYmluX2FkZF9tYW55KEdTVF9CSU4oYXVkaW9TaW5rKSwgc2NhbGUsIGNvbnZlcnQs
IHJlc2FtcGxlLCBzaW5rLCBOVUxMKTsKIApAQCAtMTUzOSw2ICsxNTg5LDEyIEBAIHZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpjcmVhdGVHU1RQbGF5QmluKCkKICAgICBjcmVhdGVB
dWRpb1NpbmsoKTsKIH0KIAordm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnNpbXVs
YXRlQXVkaW9JbnRlcnJ1cHRpb24oKQoreworICAgIEdzdE1lc3NhZ2UqIG1lc3NhZ2UgPSBnc3Rf
bWVzc2FnZV9uZXdfcmVxdWVzdF9zdGF0ZShHU1RfT0JKRUNUKG1fcGxheUJpbi5nZXQoKSksIEdT
VF9TVEFURV9QQVVTRUQpOworICAgIGdzdF9lbGVtZW50X3Bvc3RfbWVzc2FnZShtX3BsYXlCaW4u
Z2V0KCksIG1lc3NhZ2UpOworfQorCiB9CiAKICNlbmRpZiAvLyBVU0UoR1NUUkVBTUVSKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oCmluZGV4IDhhMWZkNDg2
MDU0MjRiNTEwMWYwNDllMWZkMDVjNTBlYzEwYTY0MGUuLmY0M2E2YzU3MmU5NTdkZjdhNmRlOGM2
ODEwZjQzZGRkNDFiZmExZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyLmgKQEAgLTg4LDYgKzg4LDggQEAgcHVibGljOgogICAgIHZvaWQgc291cmNlQ2hh
bmdlZCgpOwogICAgIEdzdEVsZW1lbnQqIGF1ZGlvU2luaygpIGNvbnN0OwogCisgICAgdm9pZCBz
aW11bGF0ZUF1ZGlvSW50ZXJydXB0aW9uKCk7CisKIHByaXZhdGU6CiAgICAgTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyKE1lZGlhUGxheWVyKik7CiAKQEAgLTExOCw2ICsxMjAsOSBAQCBwcml2
YXRlOgogICAgIHZpcnR1YWwgU3RyaW5nIGVuZ2luZURlc2NyaXB0aW9uKCkgY29uc3QgeyByZXR1
cm4gIkdTdHJlYW1lciI7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNMaXZlU3RyZWFtKCkgY29uc3Qg
eyByZXR1cm4gbV9pc1N0cmVhbWluZzsgfQogCisgICAgc3RhdGljIHZvaWQgc2V0QXVkaW9TdHJl
YW1Qcm9wZXJ0aWVzKEdzdENoaWxkUHJveHkqLCBHT2JqZWN0KiwgZ2NoYXIqIG5hbWUsCisgICAg
ICAgIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lciogc2VsZik7CisKIHByaXZhdGU6CiAgICAg
R1JlZlB0cjxHc3RFbGVtZW50PiBtX3BsYXlCaW47CiAgICAgR1JlZlB0cjxHc3RFbGVtZW50PiBt
X3NvdXJjZTsKQEAgLTE1Myw2ICsxNTgsOCBAQCBwcml2YXRlOgogICAgIEtVUkwgbV91cmw7CiAg
ICAgYm9vbCBtX29yaWdpbmFsUHJlbG9hZFdhc0F1dG9BbmRXYXNPdmVycmlkZGVuOwogICAgIGJv
b2wgbV9wcmVzZXJ2ZXNQaXRjaDsKKyAgICBHc3RTdGF0ZSBtX3JlcXVlc3RlZFN0YXRlOworICAg
IEdSZWZQdHI8R3N0RWxlbWVudD4gbV9hdXRvQXVkaW9TaW5rOwogfTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IDJkOTcwNjRmNDQ5NmFhNWY3NGE5YjJhOGEwMDdj
NWIwNjU2Y2E3OTUuLjg3NTEyNTRmZGFlNWI2MTM5OTA5NzNjZDRmMGQ0NTIzMGY5OTFlMzkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTUwLDYgKzUwLDcgQEAKICNpbmNs
dWRlICJGcmFtZVZpZXcuaCIKICNpbmNsdWRlICJIVE1MQ29udGVudEVsZW1lbnQuaCIKICNpbmNs
dWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTE1lZGlhRWxlbWVudC5oIgog
I2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIkhUTUxUZXh0QXJlYUVsZW1lbnQuaCIK
ICNpbmNsdWRlICJIaXN0b3J5SXRlbS5oIgpAQCAtMjA1NSw0ICsyMDU2LDE0IEBAIFN0cmluZyBJ
bnRlcm5hbHM6Om1hcmtlclRleHRGb3JMaXN0SXRlbShFbGVtZW50KiBlbGVtZW50LCBFeGNlcHRp
b25Db2RlJiBlYykKICAgICByZXR1cm4gV2ViQ29yZTo6bWFya2VyVGV4dEZvckxpc3RJdGVtKGVs
ZW1lbnQpOwogfQogCit2b2lkIEludGVybmFsczo6c2ltdWxhdGVBdWRpb0ludGVycnVwdGlvbihO
b2RlKiBub2RlKQoreworI2lmIFVTRShHU1RSRUFNRVIpCisgICAgSFRNTE1lZGlhRWxlbWVudCog
ZWxlbWVudCA9IHRvTWVkaWFFbGVtZW50KG5vZGUpOworICAgIGVsZW1lbnQtPnBsYXllcigpLT5z
aW11bGF0ZUF1ZGlvSW50ZXJydXB0aW9uKCk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShub2Rl
KTsKKyNlbmRpZgorfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAppbmRleCBjM2Rm
OTczYjgxNGNlYzgwMjg0NzkzNzJmODBhNDAwMWM4ZGJjNTgyLi4xODVjNWY5YTBjODRlODc4NmFl
N2Q3ZjU0NzVmOTEwNjAwMmY1N2NlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKQEAg
LTI5Niw2ICsyOTYsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBlbmFibGVNb2NrU3BlZWNoU3ludGhl
c2l6ZXIoKTsKICNlbmRpZgogICAgICAgICAgICAgICAgICAgICAKKyAgICB2b2lkIHNpbXVsYXRl
QXVkaW9JbnRlcnJ1cHRpb24oTm9kZSopOworCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IEludGVy
bmFscyhEb2N1bWVudCopOwogICAgIERvY3VtZW50KiBjb250ZXh0RG9jdW1lbnQoKSBjb25zdDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAppbmRleCA1ZjRiMWFhM2UxNzlhNzM3NDY1
ZmYyOTU4NTljNzEzMDk3MjhiMzY5Li4xODUzNzljYmU1NDU1YTE4OGFlNjA1Y2IzNGNkMWMxNTA0
Y2QxYzJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwK
KysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCkBAIC0yNTYsNiArMjU2
LDggQEAKIAogICAgIHZvaWQgc2V0VXNlc092ZXJsYXlTY3JvbGxiYXJzKGluIGJvb2xlYW4gZW5h
YmxlZCk7CiAKKyAgICB2b2lkIHNpbXVsYXRlQXVkaW9JbnRlcnJ1cHRpb24oaW4gTm9kZSBub2Rl
KTsKKwogICAgIFtDb25kaXRpb25hbD1FTkNSWVBURURfTUVESUFfVjJdIHZvaWQgaW5pdGlhbGl6
ZU1vY2tDRE0oKTsKIAogICAgIFtDb25kaXRpb25hbD1TUEVFQ0hfU1lOVEhFU0lTXSB2b2lkIGVu
YWJsZU1vY2tTcGVlY2hTeW50aGVzaXplcigpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGQyMTA5MmY3NjUwNjgyYjUxNmVk
YzQ5N2E4OTNlOTc5MjZhY2QxMzcuLmZmNzI5NGRlN2JkMjFlYjk2NzIxYzZlMTVkZjk2OWY4ODZj
ODJkZjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMy0wMy0wNyAgWGFiaWVyIFJvZHJpZ3Vl
eiBDYWx2YXIgIDxjYWx2YXJpc0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtHU3RyZWFtZXJdIFN0
b3BwaW5nIHBsYXliYWNrIG9mIGh0bWw1IG1lZGlhIHdoZW4gcmVjZWl2aW5nIGEgaGlnaGVyIHBy
aW9yaXR5IGF1ZGlvIGV2ZW50IG5lZWRzIGltcGxlbWVudGF0aW9uCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MTYxMQorCisgICAgICAgIENyZWF0ZWQg
dGVzdCwgZXhwZWN0ZWQgcmVzdWx0IGFuZCB1cGRhdGVkIG90aGVyIHBvcnRzCisgICAgICAgIGV4
cGVjdGF0aW9ucy4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIG1lZGlhL21lZGlhLWhpZ2hlci1wcmlvLWF1ZGlvLXN0cmVhbS1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIG1lZGlhL21lZGlhLWhpZ2hlci1wcmlvLWF1ZGlvLXN0cmVhbS5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25z
OiBTa2lwcGVkIHRoZSBuZXcgdGVzdC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvVGVzdEV4cGVj
dGF0aW9uczogU2tpcHBlZCB0aGUgbmV3IHRlc3QuCisgICAgICAgICogcGxhdGZvcm0vcXQvVGVz
dEV4cGVjdGF0aW9uczogU2tpcHBlZCB0aGUgbmV3IHRlc3QgZm9yIE1hYyBhbmQKKyAgICAgICAg
V2luLgorCiAyMDEzLTAzLTA3ICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CiAK
ICAgICAgICAgV2ViIEluc3BlY3RvcjogaWRlbnRpZnkgbGF5ZXJzIGZvciBDU1MgZ2VuZXJhdGVk
IGNvbnRlbnQgaW4gTGF5ZXJUcmVlQWdlbnQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlh
L21lZGlhLWhpZ2hlci1wcmlvLWF1ZGlvLXN0cmVhbS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9tZWRpYS9tZWRpYS1oaWdoZXItcHJpby1hdWRpby1zdHJlYW0tZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmJhZWI5NTI1NzI0MGQyMWFlYTMxNjg4MmE3MmUxOTI0MzFlNmRiOTcKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1oaWdoZXItcHJpby1hdWRpby1zdHJl
YW0tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK1Rlc3QgcGF1c2VkIGJ5OgorCitHZXR0
aW5nIGEgaGlnaGVyIHByaW9yaXR5IGF1ZGlvIHN0cmVhbS4KK1RoaXMgdGVzdCBkb2VzIG5vdCB3
b3JrIGluIHRoZSBsYXVuY2hlcnMsIG9ubHkgd2l0aCB0aGUgdGVzdCBydW5uZXJzLgorRVZFTlQo
cGxheWluZykKK0VYUEVDVEVEIChtZWRpYUVsZW1lbnQucGF1c2VkID09ICdmYWxzZScpIE9LCitF
VkVOVChwYXVzZSkKK0VYUEVDVEVEIChtZWRpYUVsZW1lbnQucGF1c2VkID09ICd0cnVlJykgT0sK
K0VYUEVDVEVEIChtZWRpYUVsZW1lbnQuZW5kZWQgPT0gJ2ZhbHNlJykgT0sKKworRU5EIE9GIFRF
U1QKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtaGlnaGVyLXByaW8tYXVk
aW8tc3RyZWFtLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1oaWdoZXItcHJpby1hdWRp
by1zdHJlYW0uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NTdiMTczYmNlM2UyMWZlYjRlYTEyYWM5MTc5NDI5
YTI5MWRkMzIwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtaGln
aGVyLXByaW8tYXVkaW8tc3RyZWFtLmh0bWwKQEAgLTAsMCArMSw0NiBAQAorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHNjcmlwdCBzcmM9bWVkaWEtZmlsZS5q
cz48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9dmlkZW8tdGVzdC5qcz48L3NjcmlwdD4K
KworICAgICAgICA8c2NyaXB0PgorICAgICAgICAgICAgdmFyIG1lZGlhRWxlbWVudDsKKworICAg
ICAgICAgICAgZnVuY3Rpb24gc3RhcnQoKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAg
IG1lZGlhRWxlbWVudCA9IG5ldyBBdWRpbygpOworCisgICAgICAgICAgICAgICAgd2FpdEZvckV2
ZW50KCdlcnJvcicpOworICAgICAgICAgICAgICAgIHdhaXRGb3JFdmVudCgncGxheWluZycsIHBs
YXlpbmcpOworCisgICAgICAgICAgICAgICAgbWVkaWFFbGVtZW50LnNyYyA9IGZpbmRNZWRpYUZp
bGUoJ2F1ZGlvJywgJ2NvbnRlbnQvdGVzdCcpOworICAgICAgICAgICAgICAgIG1lZGlhRWxlbWVu
dC5wbGF5KCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIHBsYXlpbmco
KQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgibWVkaWFFbGVt
ZW50LnBhdXNlZCIsIGZhbHNlKTsKKyAgICAgICAgICAgICAgICB3YWl0Rm9yRXZlbnQoJ3BhdXNl
JywgcGF1c2VkKTsKKyAgICAgICAgICAgICAgICBpbnRlcm5hbHMuc2ltdWxhdGVBdWRpb0ludGVy
cnVwdGlvbihtZWRpYUVsZW1lbnQpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmdW5j
dGlvbiBwYXVzZWQoKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHRlc3RFeHBlY3Rl
ZCgibWVkaWFFbGVtZW50LnBhdXNlZCIsIHRydWUpOworICAgICAgICAgICAgICAgIHRlc3RFeHBl
Y3RlZCgibWVkaWFFbGVtZW50LmVuZGVkIiwgZmFsc2UpOworICAgICAgICAgICAgICAgIGNvbnNv
bGVXcml0ZSgiIik7CisgICAgICAgICAgICAgICAgZW5kVGVzdCgpOworICAgICAgICAgICAgfQor
ICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHkgb25sb2FkPSJzdGFydCgp
Ij4KKyAgICAgICAgPHA+PGI+VGVzdCBwYXVzZWQgYnk6PC9iPgorICAgICAgICA8b2w+CisgICAg
ICAgICAgICA8bGk+R2V0dGluZyBhIGhpZ2hlciBwcmlvcml0eSBhdWRpbyBzdHJlYW0uPC9saT4K
KyAgICAgICAgICAgIDxsaT5UaGlzIHRlc3QgZG9lcyBub3Qgd29yayBpbiB0aGUgbGF1bmNoZXJz
LCBvbmx5IHdpdGgKKyAgICAgICAgICAgIHRoZSB0ZXN0IHJ1bm5lcnMuPC9saT4KKyAgICAgICAg
PC9vbD4KKyAgICAgICAgPC9wPgorICAgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDEyMWY1ZjIxNDhhMzc5
YWY0NTgwZTI3MDNkZjBlN2ZkYTNjOGFiZWUuLmRmM2U3ZDczNDU2MTQ1ZmI5ODFiYmEwOTk0NjZm
OTJlODA0MjBkZjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rl
c3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4
cGVjdGF0aW9ucwpAQCAtNDQ1OCwzICs0NDU4LDYgQEAgd2Via2l0Lm9yZy9iLzEwNzYwMSBmdWxs
c2NyZWVuL3ZpZGVvLWN1cnNvci1hdXRvLWhpZGUuaHRtbCBbIEZhaWx1cmUgXQogd2Via2l0Lm9y
Zy9iLzExMTY0OSBbIE1hYyBXaW4gTGludXggXSBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50
cy9pbnRlcmNlcHQtcG9zdG1lc3NhZ2UuaHRtbCBbIFNsb3cgXQogCiB3ZWJraXQub3JnL2IvMTEx
NjY3IFsgRGVidWcgV2luIF0gbWVkaWEvZW5jcnlwdGVkLW1lZGlhL2VuY3J5cHRlZC1tZWRpYS1l
dmVudHMuaHRtbCBbIFBhc3MgVGltZW91dCBdCisKKyMgRmVhdHVyZSBub3QgaW1wbGVtZW50ZWQK
K3dlYmtpdC5vcmcvYi85MTYxMSBtZWRpYS9tZWRpYS1oaWdoZXItcHJpby1hdWRpby1zdHJlYW0u
aHRtbCBbIFNraXAgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RF
eHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwpp
bmRleCBmNWY5YzRmYjYxMGQ4M2E5ODcxZTM0YTU1ZWQzOTE5ODM5MmU0NWZiLi4zMDcyNjJjNGQ4
ZjBkY2JjZDc5ZTZkNDg3M2MzM2ExMDdhZTMyY2M5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTQ0NywzICsxNDQ3LDUgQEAgd2Via2l0Lm9yZy9iLzEx
MTY0NyBzcHV0bmlrL0NvbmZvcm1hbmNlLzA3X0xleGljYWxfQ29udmVudGlvbnMvNy44X0xpdGVy
YWxzLzcuOC4KIHdlYmtpdC5vcmcvYi8xMTE2NTAgaHR0cC90ZXN0cy9jb29raWVzL3RoaXJkLXBh
cnR5LWNvb2tpZS1yZWxheGluZy5odG1sIFsgRmFpbHVyZSBQYXNzIF0KIHdlYmtpdC5vcmcvYi8x
MTE2NTAgaHR0cC90ZXN0cy9jb29raWVzL3RoaXJkLXBhcnR5LWNvb2tpZS1hY2NlcHQtcG9saWN5
Lmh0bWwgWyBGYWlsdXJlIFBhc3MgXQogCisjIEZlYXR1cmUgbm90IGltcGxlbWVudGVkCit3ZWJr
aXQub3JnL2IvOTE2MTEgbWVkaWEvbWVkaWEtaGlnaGVyLXByaW8tYXVkaW8tc3RyZWFtLmh0bWwg
WyBTa2lwIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1Rlc3RFeHBlY3Rh
dGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGMz
YjZlMTIwMDYxNzczOThhNmQ4NjRlNGE3ZGE1YmI3NzVlMzZhYmMuLjIzMzlkYmY5MTcxMDY3ZjNh
ZTZiNjY0MjcxOTFlMDY1ZTZlNzM2MTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L3F0L1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvVGVzdEV4
cGVjdGF0aW9ucwpAQCAtMjY3NSwzICsyNjc1LDYgQEAgd2Via2l0Lm9yZy9iLzExMDY1NCBjc3Mz
L2ZsZXhib3gvYnV0dG9uLmh0bWwgWyBGYWlsdXJlIF0KIAogIyBOZWVkIHN1cHBvcnQgZm9yIFJl
c291cmNlSGFuZGxlOjpkaWRDaGFuZ2VQcmlvcml0eSBhbmQgRFJUIHN1cHBvcnQKIHdlYmtpdC5v
cmcvYi8xMTEwMTYgaHR0cC90ZXN0cy9sb2FkaW5nL3Byb21vdGUtaW1nLXByZWxvYWQtcHJpb3Jp
dHkuaHRtbCBbIEZhaWx1cmUgXQorCisjIEZlYXR1cmUgbm90IGltcGxlbWVudGVkCit3ZWJraXQu
b3JnL2IvOTE2MTEgWyBNYWMgV2luIF0gbWVkaWEvbWVkaWEtaGlnaGVyLXByaW8tYXVkaW8tc3Ry
ZWFtLmh0bWwgWyBTa2lwIF0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>192906</attachid>
            <date>2013-03-13 05:46:19 -0700</date>
            <delta_ts>2013-03-28 18:59:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-91611-20130313134214.patch</filename>
            <type>text/plain</type>
            <size>21874</size>
            <attacher name="Xabier Rodríguez Calvar">calvaris</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ1Njg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2JhZjM1YzQ5M2I3MmM5
MDMzZjcwMDFjZDlhMmUwYTc2NDdlMzZmYS4uYmUxYjQzMjMyZjRkMzUyOTVhNjEyMTY2NmNkODVh
MTQ5ZGNkOGVkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYwIEBACisyMDEzLTAzLTEzICBYYWJp
ZXIgUm9kcmlndWV6IENhbHZhciAgPGNhbHZhcmlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dT
dHJlYW1lcl0gU3RvcHBpbmcgcGxheWJhY2sgb2YgaHRtbDUgbWVkaWEgd2hlbiByZWNlaXZpbmcg
YSBoaWdoZXIgcHJpb3JpdHkgYXVkaW8gZXZlbnQgbmVlZHMgaW1wbGVtZW50YXRpb24KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkxNjExCisKKyAgICAg
ICAgUmVhY3QgdG8gUkVRVUVTVF9TVEFURSBHU3RyZWFtZXIgbWVzc2FnZSB0byBzdG9wIHRoZSBw
aXBlbGluZSB3aGVuCisgICAgICAgIGEgaGlnaGVyIHByaW9yaXR5IHN0cmVhbSBpcyBwbGF5ZWQu
IFdoZW4gdGhpcyBoYXBwZW5zLCBzdGF0ZXMgYXJlCisgICAgICAgIHVwZGF0ZWQgYWNjb3JkaW5n
bHkuCisKKyAgICAgICAgQSBtZXRob2Qgd2FzIGFkZGVkIGluIHRoZSBNZWRpYVBsYXllciBjbGFz
cyBhbmQgaW50ZXJuYWxzIHRvIGFsbG93CisgICAgICAgIHRoZSB0aGUgdGVzdCBydW5uZXIgdG8g
c2ltdWxhdGUgYW4gYXVkaW8gaW50ZXJydXB0aW9uLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IG1lZGlhL21lZGlhLWhpZ2hlci1wcmlvLWF1
ZGlvLXN0cmVhbS5odG1sCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXll
ci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAoTWVkaWFQbGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFQbGF5ZXI6OnNpbXVsYXRlQXVkaW9JbnRlcnJ1cHRpb24pOiBOZXcgbWV0aG9kCisgICAg
ICAgIGRlbGVnYXRpbmcgYW4gYXVkaW8gaW50ZXJydXB0aW9uIHRvIHRoZSBwcml2YXRlIGJhY2tl
bmQgdG8KKyAgICAgICAgc2ltdWxhdGUgdGhlIHVzZS1jYXNlIHdoZXJlIGFuIGV4dGVybmFsIGFw
cGxpY2F0aW9uIG5lZWRzCisgICAgICAgIGV4Y2x1c2l2ZSBhY2Nlc3MgdG8gdGhlIGF1ZGlvIGRl
dmljZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaDoK
KyAgICAgICAgKE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZSk6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U6OnNpbXVsYXRlQXVkaW9JbnRlcnJ1cHRpb24p
OgorICAgICAgICBBZGRlZCBkZWZhdWx0IGVtcHR5IG1ldGhvZCBpbiB0aGUgY29tbW9uIHByaXZh
dGUgaGVhZGVyLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmNyZWF0ZUF1ZGlvU2luayk6Cisg
ICAgICAgIChXZWJDb3JlOjpzZXRBdWRpb1N0cmVhbVByb3BlcnRpZXNDYWxsYmFjayk6IEhvb2tl
ZCB0byBjaGlsZC1hZGRlZAorICAgICAgICBzaWduYWwgb24gdGhlIGF1ZGlvIHNpbmssIGRlbGVn
YXRlcyBvbiBzZXRBdWRpb1N0cmVhbVByb3BlcnRpZXMuCisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnNldEF1ZGlvU3RyZWFtUHJvcGVydGllcyk6CisgICAg
ICAgIFNldHMgdGhlIGF1ZGlvIHN0cmVhbSBwcm9wZXJ0aWVzLgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIp
OgorICAgICAgICBJbml0aWFsaXplcyB0aGUgbmV3IGF0dHJpYnV0ZS4KKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6fk1lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lcik6CisgICAgICAgIERpc2Nvbm5lY3RzIGF1dG9hdWRpb3Npbmsgc2lnbmFsLgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpjaGFuZ2VQaXBlbGluZVN0
YXRlKToKKyAgICAgICAgQ2hhbmdlZCBsb2dnaW5nLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpoYW5kbGVNZXNzYWdlKTogUmVhY3RpbmcgdG8KKyAgICAg
ICAgdGhlIFJFUVVFU1RfU1RBVEUgbWVzc2FnZS4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lcjo6c2ltdWxhdGVBdWRpb0ludGVycnVwdGlvbik6CisgICAgICAg
IEFkZGVkLiBJbmplY3RzIHRoZSBSRVFVRVNUX1NUQVRFIG1lc3NhZ2UgdG8gdGhlIHBpcGVsaW5l
LgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjp1cGRhdGVT
dGF0ZXMpOiBVcGRhdGluZyB0aGUKKyAgICAgICAgcGxheWJhY2sgc3RhdGUgaWYgUkVRVUVTVF9T
VEFURS4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyLmg6CisgICAgICAgIChNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIp
OiBBZGRlZCBuZXcgbWV0aG9kIGFuZCBhdHRyaWJ1dGUuCisgICAgICAgICogdGVzdGluZy9JbnRl
cm5hbHMuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5pZGw6CisgICAgICAgICogdGVz
dGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3Jl
OjpJbnRlcm5hbHM6OnNpbXVsYXRlQXVkaW9JbnRlcnJ1cHRpb24pOiBBZGRlZCB0byBjYWxsIHRo
ZQorICAgICAgICBtZXRob2QgdG8gc3RvcCB0aGUgZWxlbWVudCBiZWNhdXNlIG9mIGEgaGlnaGVy
IHByaW8gc3RyZWFtIGF0IHRoZQorICAgICAgICB0ZXN0cy4KKwogMjAxMy0wMy0xMiAgQW50dGkg
S29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgQmFzaWMgY2hpbGQgb2JzY3Vy
YXRpb24gdGVzdCBmb3IgYmFja2dyb3VuZHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAppbmRleCA3Yzk0YjJiOTQ5NjA4Y2EzZDg5MmFmYzk2
NGUwN2IxZjBjNThjYmY2Li44OWM1YmE1YTMzYjlhOWRhYjdlZjI4Njg5NGY5Mzk3MzM1NDNlODQx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXll
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIu
Y3BwCkBAIC0xMTQ0LDYgKzExNDQsMTYgQEAgdm9pZCBNZWRpYVBsYXllcjo6cmVzZXRNZWRpYUVu
Z2luZXMoKQogICAgIGluc3RhbGxlZE1lZGlhRW5naW5lcyhSZXNldEVuZ2luZXMpOwogfQogCisj
aWYgVVNFKEdTVFJFQU1FUikKK3ZvaWQgTWVkaWFQbGF5ZXI6OnNpbXVsYXRlQXVkaW9JbnRlcnJ1
cHRpb24oKQoreworICAgIGlmICghbV9wcml2YXRlKQorICAgICAgICByZXR1cm47CisKKyAgICBt
X3ByaXZhdGUtPnNpbXVsYXRlQXVkaW9JbnRlcnJ1cHRpb24oKTsKK30KKyNlbmRpZgorCiB9CiAK
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVk
aWFQbGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVy
LmgKaW5kZXggOTk0YzhjZGM1OTI3ZjM1ZDYyMzk5OTEyN2RmOWM4NWUyNmIzMzlkMC4uODZlYTQw
Mjc4YzI0NTZkZmQzOTFkNTQ0ZGZkYzEyODU0NWU3M2VmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCkBAIC00NjIsNiArNDYyLDEwIEBAIHB1
YmxpYzoKICAgICBQYXNzUmVmUHRyPFBsYXRmb3JtVGV4dFRyYWNrTWVudUludGVyZmFjZT4gdGV4
dFRyYWNrTWVudSgpOwogI2VuZGlmCiAKKyNpZiBVU0UoR1NUUkVBTUVSKQorICAgIHZpcnR1YWwg
dm9pZCBzaW11bGF0ZUF1ZGlvSW50ZXJydXB0aW9uKCk7CisjZW5kaWYKKwogcHJpdmF0ZToKICAg
ICBNZWRpYVBsYXllcihNZWRpYVBsYXllckNsaWVudCopOwogICAgIHZvaWQgbG9hZFdpdGhOZXh0
TWVkaWFFbmdpbmUoTWVkaWFQbGF5ZXJGYWN0b3J5Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oCmluZGV4IDg1N2I0OTU1
MmU4OTc4OWFiZDFkN2Q4OWI5ZmZjYjMzNDlmMTdjNDQuLmI3OTcwOWQ1Mzc1ZDU5MzE1YzY2OWU3
MmQyMzQ1ZDNmNDIwNDhmYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oCkBAIC0xODgsNiArMTg4LDkgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxQbGF0Zm9ybVRleHRUcmFja01lbnVJbnRlcmZhY2U+
IHRleHRUcmFja01lbnUoKSB7IHJldHVybiAwOyB9CiAjZW5kaWYKIAorI2lmIFVTRShHU1RSRUFN
RVIpCisgICAgdmlydHVhbCB2b2lkIHNpbXVsYXRlQXVkaW9JbnRlcnJ1cHRpb24oKSB7IH0KKyNl
bmRpZgogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyLmNwcAppbmRleCAyYWRmZTc0ZmJkYjFmOGIyNjAzNzNiMWQ0NmExYzA4NTFjNTc0NjQwLi44
M2JkZDIyNDBhZDdjMTFmNDRiMDU2NmQyMzllMTE0NzEzZWZlNDIwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtMTEzLDYgKzExMywxNiBA
QCBzdGF0aWMgZ2Jvb2xlYW4gbWVkaWFQbGF5ZXJQcml2YXRlQXVkaW9DaGFuZ2VUaW1lb3V0Q2Fs
bGJhY2soTWVkaWFQbGF5ZXJQcml2YXRlRwogICAgIHJldHVybiBGQUxTRTsKIH0KIAorI2lmZGVm
IEdTVF9BUElfVkVSU0lPTl8xCitzdGF0aWMgdm9pZCBzZXRBdWRpb1N0cmVhbVByb3BlcnRpZXND
YWxsYmFjayhHc3RDaGlsZFByb3h5KiBwcm94eSwgR09iamVjdCogb2JqZWN0LCBnY2hhciogbmFt
ZSwKKyAgICBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIqIHBsYXllcikKKyNlbHNlCitzdGF0
aWMgdm9pZCBzZXRBdWRpb1N0cmVhbVByb3BlcnRpZXNDYWxsYmFjayhHc3RDaGlsZFByb3h5KiBw
cm94eSwgR09iamVjdCogb2JqZWN0LCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIqIHBsYXll
cikKKyNlbmRpZgoreworICAgIHBsYXllci0+c2V0QXVkaW9TdHJlYW1Qcm9wZXJ0aWVzKG9iamVj
dCk7Cit9CisKIHN0YXRpYyBnYm9vbGVhbiBtZWRpYVBsYXllclByaXZhdGVWaWRlb0NoYW5nZVRp
bWVvdXRDYWxsYmFjayhNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIqIHBsYXllcikKIHsKICAg
ICAvLyBUaGlzIGlzIHRoZSBjYWxsYmFjayBvZiB0aGUgdGltZW91dCBzb3VyY2UgY3JlYXRlZCBp
biA6OnZpZGVvQ2hhbmdlZC4KQEAgLTEyMCw2ICsxMzAsMTkgQEAgc3RhdGljIGdib29sZWFuIG1l
ZGlhUGxheWVyUHJpdmF0ZVZpZGVvQ2hhbmdlVGltZW91dENhbGxiYWNrKE1lZGlhUGxheWVyUHJp
dmF0ZUcKICAgICByZXR1cm4gRkFMU0U7CiB9CiAKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyOjpzZXRBdWRpb1N0cmVhbVByb3BlcnRpZXMoR09iamVjdCogb2JqZWN0KQoreworICAg
IGlmIChnX3N0cmNtcDAoR19PQkpFQ1RfVFlQRV9OQU1FKG9iamVjdCksICJHc3RQdWxzZVNpbmsi
KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgY29uc3QgY2hhciogcm9sZSA9IG1fcGxheWVyLT5t
ZWRpYVBsYXllckNsaWVudCgpICYmIG1fcGxheWVyLT5tZWRpYVBsYXllckNsaWVudCgpLT5tZWRp
YVBsYXllcklzVmlkZW8oKQorICAgICAgICA/ICJ2aWRlbyIgOiAibXVzaWMiOworICAgIEdzdFN0
cnVjdHVyZSogc3RydWN0dXJlID0gZ3N0X3N0cnVjdHVyZV9uZXcoInN0cmVhbS1wcm9wZXJ0aWVz
IiwgIm1lZGlhLnJvbGUiLCBHX1RZUEVfU1RSSU5HLCByb2xlLCBOVUxMKTsKKyAgICBnX29iamVj
dF9zZXQob2JqZWN0LCAic3RyZWFtLXByb3BlcnRpZXMiLCBzdHJ1Y3R1cmUsIE5VTEwpOworICAg
IGdzdF9zdHJ1Y3R1cmVfZnJlZShzdHJ1Y3R1cmUpOworICAgIExPR19NRURJQV9NRVNTQUdFKCJT
ZXQgbWVkaWEucm9sZSBhcyAlcyBhdCAlcyIsIHJvbGUsIGdzdF9lbGVtZW50X2dldF9uYW1lKEdT
VF9FTEVNRU5UKG9iamVjdCkpKTsKK30KKwogUGFzc093blB0cjxNZWRpYVBsYXllclByaXZhdGVJ
bnRlcmZhY2U+IE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y3JlYXRlKE1lZGlhUGxheWVy
KiBwbGF5ZXIpCiB7CiAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBNZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXIocGxheWVyKSk7CkBAIC0xODcsNiArMjEwLDcgQEAgTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIoTWVkaWFQbGF5ZXIqIHBsYXll
cikKICAgICAsIG1fdG90YWxCeXRlcygtMSkKICAgICAsIG1fb3JpZ2luYWxQcmVsb2FkV2FzQXV0
b0FuZFdhc092ZXJyaWRkZW4oZmFsc2UpCiAgICAgLCBtX3ByZXNlcnZlc1BpdGNoKGZhbHNlKQor
ICAgICwgbV9yZXF1ZXN0ZWRTdGF0ZShHU1RfU1RBVEVfVk9JRF9QRU5ESU5HKQogewogfQogCkBA
IC0yMDAsNiArMjI0LDEwIEBAIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6fk1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lcigpCiAgICAgICAgIG1fbWVkaWFMb2NhdGlvbnMgPSAwOwogICAg
IH0KIAorICAgIGlmIChtX2F1dG9BdWRpb1NpbmspCisgICAgICAgIGdfc2lnbmFsX2hhbmRsZXJz
X2Rpc2Nvbm5lY3RfYnlfZnVuYyhHX09CSkVDVChtX2F1dG9BdWRpb1NpbmsuZ2V0KCkpLAorICAg
ICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDxncG9pbnRlcj4oc2V0QXVkaW9TdHJlYW1Qcm9wZXJ0
aWVzQ2FsbGJhY2spLCB0aGlzKTsKKwogICAgIGlmIChtX3BsYXlCaW4pIHsKICAgICAgICAgR1Jl
ZlB0cjxHc3RCdXM+IGJ1cyA9IHdlYmtpdEdzdFBpcGVsaW5lR2V0QnVzKEdTVF9QSVBFTElORSht
X3BsYXlCaW4uZ2V0KCkpKTsKICAgICAgICAgQVNTRVJUKGJ1cyk7CkBAIC0zMjEsOSArMzQ5LDE0
IEBAIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpjaGFuZ2VQaXBlbGluZVN0YXRl
KEdzdFN0YXRlIG5ld1N0YXRlKQogICAgIEdzdFN0YXRlIHBlbmRpbmc7CiAKICAgICBnc3RfZWxl
bWVudF9nZXRfc3RhdGUobV9wbGF5QmluLmdldCgpLCAmY3VycmVudFN0YXRlLCAmcGVuZGluZywg
MCk7Ci0gICAgTE9HX01FRElBX01FU1NBR0UoIkN1cnJlbnQgc3RhdGU6ICVzLCBwZW5kaW5nOiAl
cyIsIGdzdF9lbGVtZW50X3N0YXRlX2dldF9uYW1lKGN1cnJlbnRTdGF0ZSksIGdzdF9lbGVtZW50
X3N0YXRlX2dldF9uYW1lKHBlbmRpbmcpKTsKLSAgICBpZiAoY3VycmVudFN0YXRlID09IG5ld1N0
YXRlIHx8IHBlbmRpbmcgPT0gbmV3U3RhdGUpCisgICAgaWYgKGN1cnJlbnRTdGF0ZSA9PSBuZXdT
dGF0ZSB8fCBwZW5kaW5nID09IG5ld1N0YXRlKSB7CisgICAgICAgIExPR19NRURJQV9NRVNTQUdF
KCJSZWplY3RlZCBzdGF0ZSBjaGFuZ2UgdG8gJXMgZnJvbSAlcyB3aXRoICVzIHBlbmRpbmciLCBn
c3RfZWxlbWVudF9zdGF0ZV9nZXRfbmFtZShuZXdTdGF0ZSksCisgICAgICAgICAgICBnc3RfZWxl
bWVudF9zdGF0ZV9nZXRfbmFtZShjdXJyZW50U3RhdGUpLCBnc3RfZWxlbWVudF9zdGF0ZV9nZXRf
bmFtZShwZW5kaW5nKSk7CiAgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIExPR19N
RURJQV9NRVNTQUdFKCJDaGFuZ2luZyBzdGF0ZSBjaGFuZ2UgdG8gJXMgZnJvbSAlcyB3aXRoICVz
IHBlbmRpbmciLCBnc3RfZWxlbWVudF9zdGF0ZV9nZXRfbmFtZShuZXdTdGF0ZSksCisgICAgICAg
IGdzdF9lbGVtZW50X3N0YXRlX2dldF9uYW1lKGN1cnJlbnRTdGF0ZSksIGdzdF9lbGVtZW50X3N0
YXRlX2dldF9uYW1lKHBlbmRpbmcpKTsKIAogICAgIEdzdFN0YXRlQ2hhbmdlUmV0dXJuIHNldFN0
YXRlUmVzdWx0ID0gZ3N0X2VsZW1lbnRfc2V0X3N0YXRlKG1fcGxheUJpbi5nZXQoKSwgbmV3U3Rh
dGUpOwogICAgIEdzdFN0YXRlIHBhdXNlZE9yUGxheWluZyA9IG5ld1N0YXRlID09IEdTVF9TVEFU
RV9QTEFZSU5HID8gR1NUX1NUQVRFX1BBVVNFRCA6IEdTVF9TVEFURV9QTEFZSU5HOwpAQCAtNjI3
LDYgKzY2MCw3IEBAIGdib29sZWFuIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6aGFuZGxl
TWVzc2FnZShHc3RNZXNzYWdlKiBtZXNzYWdlKQogICAgIGJvb2wgaXNzdWVFcnJvciA9IHRydWU7
CiAgICAgYm9vbCBhdHRlbXB0TmV4dExvY2F0aW9uID0gZmFsc2U7CiAgICAgY29uc3QgR3N0U3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUgPSBnc3RfbWVzc2FnZV9nZXRfc3RydWN0dXJlKG1lc3NhZ2UpOwor
ICAgIEdzdFN0YXRlIHJlcXVlc3RlZFN0YXRlLCBjdXJyZW50U3RhdGU7CiAKICAgICBpZiAoc3Ry
dWN0dXJlKSB7CiAgICAgICAgIGNvbnN0IGdjaGFyKiBtZXNzYWdlVHlwZU5hbWUgPSBnc3Rfc3Ry
dWN0dXJlX2dldF9uYW1lKHN0cnVjdHVyZSk7CkBAIC02OTIsMTIgKzcyNiwxMiBAQCBnYm9vbGVh
biBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmhhbmRsZU1lc3NhZ2UoR3N0TWVzc2FnZSog
bWVzc2FnZSkKICAgICAgICAgICAgIHVwZGF0ZVN0YXRlcygpOwogCiAgICAgICAgICAgICAvLyBD
b25zdHJ1Y3QgYSBmaWxlbmFtZSBmb3IgdGhlIGdyYXBodml6IGRvdCBmaWxlIG91dHB1dC4KLSAg
ICAgICAgICAgIEdzdFN0YXRlIG9sZFN0YXRlLCBuZXdTdGF0ZTsKLSAgICAgICAgICAgIGdzdF9t
ZXNzYWdlX3BhcnNlX3N0YXRlX2NoYW5nZWQobWVzc2FnZSwgJm9sZFN0YXRlLCAmbmV3U3RhdGUs
IDApOworICAgICAgICAgICAgR3N0U3RhdGUgbmV3U3RhdGU7CisgICAgICAgICAgICBnc3RfbWVz
c2FnZV9wYXJzZV9zdGF0ZV9jaGFuZ2VkKG1lc3NhZ2UsICZjdXJyZW50U3RhdGUsICZuZXdTdGF0
ZSwgMCk7CiAKICAgICAgICAgICAgIENTdHJpbmcgZG90RmlsZU5hbWUgPSBTdHJpbmc6OmZvcm1h
dCgid2Via2l0LXZpZGVvLiVzXyVzIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBnc3RfZWxlbWVudF9zdGF0ZV9nZXRfbmFtZShvbGRTdGF0ZSksCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3N0X2VsZW1l
bnRfc3RhdGVfZ2V0X25hbWUobmV3U3RhdGUpKS51dGY4KCk7CisgICAgICAgICAgICAgICAgZ3N0
X2VsZW1lbnRfc3RhdGVfZ2V0X25hbWUoY3VycmVudFN0YXRlKSwKKyAgICAgICAgICAgICAgICBn
c3RfZWxlbWVudF9zdGF0ZV9nZXRfbmFtZShuZXdTdGF0ZSkpLnV0ZjgoKTsKIAogICAgICAgICAg
ICAgR1NUX0RFQlVHX0JJTl9UT19ET1RfRklMRV9XSVRIX1RTKEdTVF9CSU4obV9wbGF5QmluLmdl
dCgpKSwgR1NUX0RFQlVHX0dSQVBIX1NIT1dfQUxMLCBkb3RGaWxlTmFtZS5kYXRhKCkpOwogICAg
ICAgICB9CkBAIC03MTMsNiArNzQ3LDE2IEBAIGdib29sZWFuIE1lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lcjo6aGFuZGxlTWVzc2FnZShHc3RNZXNzYWdlKiBtZXNzYWdlKQogICAgICAgICBMT0df
TUVESUFfTUVTU0FHRSgiRHVyYXRpb24gY2hhbmdlZCIpOwogICAgICAgICBkdXJhdGlvbkNoYW5n
ZWQoKTsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBHU1RfTUVTU0FHRV9SRVFVRVNUX1NUQVRF
OgorICAgICAgICBnc3RfbWVzc2FnZV9wYXJzZV9yZXF1ZXN0X3N0YXRlKG1lc3NhZ2UsICZyZXF1
ZXN0ZWRTdGF0ZSk7CisgICAgICAgIGdzdF9lbGVtZW50X2dldF9zdGF0ZShtX3BsYXlCaW4uZ2V0
KCksICZjdXJyZW50U3RhdGUsIE5VTEwsIDI1MCk7CisgICAgICAgIGlmIChyZXF1ZXN0ZWRTdGF0
ZSA8IGN1cnJlbnRTdGF0ZSkgeworICAgICAgICAgICAgTE9HX01FRElBX01FU1NBR0UoIkVsZW1l
bnQgJXMgcmVxdWVzdGVkIHN0YXRlIGNoYW5nZSB0byAlcyIsIGdzdF9lbGVtZW50X2dldF9uYW1l
KEdTVF9NRVNTQUdFX1NSQyhtZXNzYWdlKSksCisgICAgICAgICAgICAgICAgZ3N0X2VsZW1lbnRf
c3RhdGVfZ2V0X25hbWUocmVxdWVzdGVkU3RhdGUpKTsKKyAgICAgICAgICAgIG1fcmVxdWVzdGVk
U3RhdGUgPSByZXF1ZXN0ZWRTdGF0ZTsKKyAgICAgICAgICAgIGNoYW5nZVBpcGVsaW5lU3RhdGUo
cmVxdWVzdGVkU3RhdGUpOworICAgICAgICB9CisgICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6
CiAgICAgICAgIExPR19NRURJQV9NRVNTQUdFKCJVbmhhbmRsZWQgR1N0cmVhbWVyIG1lc3NhZ2Ug
dHlwZTogJXMiLAogICAgICAgICAgICAgICAgICAgICBHU1RfTUVTU0FHRV9UWVBFX05BTUUobWVz
c2FnZSkpOwpAQCAtOTYyLDYgKzEwMDYsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lcjo6dXBkYXRlU3RhdGVzKCkKICAgICAgICAgJnN0YXRlLCAmcGVuZGluZywgMjUwICogR1NU
X05TRUNPTkQpOwogCiAgICAgYm9vbCBzaG91bGRVcGRhdGVBZnRlclNlZWsgPSBmYWxzZTsKKyAg
ICBib29sIHNob3VsZFVwZGF0ZVBsYXliYWNrU3RhdGUgPSBmYWxzZTsKICAgICBzd2l0Y2ggKHJl
dCkgewogICAgIGNhc2UgR1NUX1NUQVRFX0NIQU5HRV9TVUNDRVNTOgogICAgICAgICBMT0dfTUVE
SUFfTUVTU0FHRSgiU3RhdGU6ICVzLCBwZW5kaW5nOiAlcyIsCkBAIC0xMDQ4LDYgKzEwOTMsMTEg
QEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnVwZGF0ZVN0YXRlcygpCiAgICAg
ICAgICAgICBtX3NlZWtpbmcgPSBmYWxzZTsKICAgICAgICAgfQogCisgICAgICAgIGlmIChtX3Jl
cXVlc3RlZFN0YXRlID09IEdTVF9TVEFURV9QQVVTRUQgJiYgc3RhdGUgPT0gR1NUX1NUQVRFX1BB
VVNFRCkgeworICAgICAgICAgICAgc2hvdWxkVXBkYXRlUGxheWJhY2tTdGF0ZSA9IHRydWU7Cisg
ICAgICAgICAgICBMT0dfTUVESUFfTUVTU0FHRSgiUmVxdWVzdGVkIHN0YXRlIGNoYW5nZSB0byAl
cyB3YXMgY29tcGxldGVkIiwgZ3N0X2VsZW1lbnRfc3RhdGVfZ2V0X25hbWUoc3RhdGUpKTsKKyAg
ICAgICAgfQorCiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgR1NUX1NUQVRFX0NIQU5HRV9BU1lO
QzoKICAgICAgICAgTE9HX01FRElBX01FU1NBR0UoIkFzeW5jOiBTdGF0ZTogJXMsIHBlbmRpbmc6
ICVzIiwKQEAgLTExMTQsMTIgKzExNjQsMTcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXI6OnVwZGF0ZVN0YXRlcygpCiAgICAgICAgIGJyZWFrOwogICAgIH0KIAorICAgIG1fcmVx
dWVzdGVkU3RhdGUgPSBHU1RfU1RBVEVfVk9JRF9QRU5ESU5HOworCiAgICAgaWYgKHNlZWtpbmco
KSkKICAgICAgICAgbV9yZWFkeVN0YXRlID0gTWVkaWFQbGF5ZXI6OkhhdmVOb3RoaW5nOwogCiAg
ICAgaWYgKHNob3VsZFVwZGF0ZUFmdGVyU2VlaykKICAgICAgICAgdGltZUNoYW5nZWQoKTsKIAor
ICAgIGlmIChzaG91bGRVcGRhdGVQbGF5YmFja1N0YXRlKQorICAgICAgICBtX3BsYXllci0+cGxh
eWJhY2tTdGF0ZUNoYW5nZWQoKTsKKwogICAgIGlmIChtX25ldHdvcmtTdGF0ZSAhPSBvbGROZXR3
b3JrU3RhdGUpIHsKICAgICAgICAgTE9HX01FRElBX01FU1NBR0UoIk5ldHdvcmsgU3RhdGUgQ2hh
bmdlZCBmcm9tICV1IHRvICV1IiwKICAgICAgICAgICAgIG9sZE5ldHdvcmtTdGF0ZSwgbV9uZXR3
b3JrU3RhdGUpOwpAQCAtMTQ5MCwxMCArMTU0NSwxOCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lcjo6Y3JlYXRlQXVkaW9TaW5rKCkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAor
ICAgIGlmIChtX2F1dG9BdWRpb1NpbmspCisgICAgICAgIGdfc2lnbmFsX2hhbmRsZXJzX2Rpc2Nv
bm5lY3RfYnlfZnVuYyhHX09CSkVDVChtX2F1dG9BdWRpb1NpbmsuZ2V0KCkpLAorICAgICAgICAg
ICAgcmVpbnRlcnByZXRfY2FzdDxncG9pbnRlcj4oc2V0QXVkaW9TdHJlYW1Qcm9wZXJ0aWVzQ2Fs
bGJhY2spLCB0aGlzKTsKKwogICAgIEdzdEVsZW1lbnQqIGNvbnZlcnQgPSBnc3RfZWxlbWVudF9m
YWN0b3J5X21ha2UoImF1ZGlvY29udmVydCIsIDApOwogICAgIEdzdEVsZW1lbnQqIHJlc2FtcGxl
ID0gZ3N0X2VsZW1lbnRfZmFjdG9yeV9tYWtlKCJhdWRpb3Jlc2FtcGxlIiwgMCk7CiAgICAgR3N0
RWxlbWVudCogc2luayA9IGdzdF9lbGVtZW50X2ZhY3RvcnlfbWFrZSgiYXV0b2F1ZGlvc2luayIs
IDApOwogCisgICAgbV9hdXRvQXVkaW9TaW5rID0gc2luazsKKworICAgIGdfc2lnbmFsX2Nvbm5l
Y3Qoc2luaywgImNoaWxkLWFkZGVkIiwgcmVpbnRlcnByZXRfY2FzdDxHQ2FsbGJhY2s+KHNldEF1
ZGlvU3RyZWFtUHJvcGVydGllc0NhbGxiYWNrKSwgdGhpcyk7CisKICAgICBHc3RFbGVtZW50KiBh
dWRpb1NpbmsgPSBnc3RfYmluX25ldygiYXVkaW8tc2luayIpOwogICAgIGdzdF9iaW5fYWRkX21h
bnkoR1NUX0JJTihhdWRpb1NpbmspLCBzY2FsZSwgY29udmVydCwgcmVzYW1wbGUsIHNpbmssIE5V
TEwpOwogCkBAIC0xNTM5LDYgKzE2MDIsMTIgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXI6OmNyZWF0ZUdTVFBsYXlCaW4oKQogICAgIGNyZWF0ZUF1ZGlvU2luaygpOwogfQogCit2
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6c2ltdWxhdGVBdWRpb0ludGVycnVwdGlv
bigpCit7CisgICAgR3N0TWVzc2FnZSogbWVzc2FnZSA9IGdzdF9tZXNzYWdlX25ld19yZXF1ZXN0
X3N0YXRlKEdTVF9PQkpFQ1QobV9wbGF5QmluLmdldCgpKSwgR1NUX1NUQVRFX1BBVVNFRCk7Cisg
ICAgZ3N0X2VsZW1lbnRfcG9zdF9tZXNzYWdlKG1fcGxheUJpbi5nZXQoKSwgbWVzc2FnZSk7Cit9
CisKIH0KIAogI2VuZGlmIC8vIFVTRShHU1RSRUFNRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgKaW5kZXggOGExZmQ0ODYwNTQyNGI1MTAxZjA0OWUxZmQw
NWM1MGVjMTBhNjQwZS4uMmJiZDhkMzI4NTRhMTgxOTYyMDNhZjExNmRjZGM1NmY2MDA3ZmUyYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaApAQCAtODgs
NiArODgsMTAgQEAgcHVibGljOgogICAgIHZvaWQgc291cmNlQ2hhbmdlZCgpOwogICAgIEdzdEVs
ZW1lbnQqIGF1ZGlvU2luaygpIGNvbnN0OwogCisgICAgdm9pZCBzZXRBdWRpb1N0cmVhbVByb3Bl
cnRpZXMoR09iamVjdCopOworCisgICAgdm9pZCBzaW11bGF0ZUF1ZGlvSW50ZXJydXB0aW9uKCk7
CisKIHByaXZhdGU6CiAgICAgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyKE1lZGlhUGxheWVy
Kik7CiAKQEAgLTE1Myw2ICsxNTcsOCBAQCBwcml2YXRlOgogICAgIEtVUkwgbV91cmw7CiAgICAg
Ym9vbCBtX29yaWdpbmFsUHJlbG9hZFdhc0F1dG9BbmRXYXNPdmVycmlkZGVuOwogICAgIGJvb2wg
bV9wcmVzZXJ2ZXNQaXRjaDsKKyAgICBHc3RTdGF0ZSBtX3JlcXVlc3RlZFN0YXRlOworICAgIEdS
ZWZQdHI8R3N0RWxlbWVudD4gbV9hdXRvQXVkaW9TaW5rOwogfTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IDZjYjE0Njc1ZDQxZWY0OTAzMjRmOTM5M2YzYTRhNmY2
ZGQ4ZmQwMzMuLmNjODQ5ZjVkYWYxZGNlNmE4YjhkZThjYThhNmRlOGQxMmQ0ZDZiMzIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTUwLDYgKzUwLDcgQEAKICNpbmNsdWRl
ICJGcmFtZVZpZXcuaCIKICNpbmNsdWRlICJIVE1MQ29udGVudEVsZW1lbnQuaCIKICNpbmNsdWRl
ICJIVE1MSW5wdXRFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTE1lZGlhRWxlbWVudC5oIgogI2lu
Y2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIkhUTUxUZXh0QXJlYUVsZW1lbnQuaCIKICNp
bmNsdWRlICJIaXN0b3J5SXRlbS5oIgpAQCAtMjA1Nyw0ICsyMDU4LDE0IEBAIFN0cmluZyBJbnRl
cm5hbHM6Om1hcmtlclRleHRGb3JMaXN0SXRlbShFbGVtZW50KiBlbGVtZW50LCBFeGNlcHRpb25D
b2RlJiBlYykKICAgICByZXR1cm4gV2ViQ29yZTo6bWFya2VyVGV4dEZvckxpc3RJdGVtKGVsZW1l
bnQpOwogfQogCit2b2lkIEludGVybmFsczo6c2ltdWxhdGVBdWRpb0ludGVycnVwdGlvbihOb2Rl
KiBub2RlKQoreworI2lmIFVTRShHU1RSRUFNRVIpCisgICAgSFRNTE1lZGlhRWxlbWVudCogZWxl
bWVudCA9IHRvTWVkaWFFbGVtZW50KG5vZGUpOworICAgIGVsZW1lbnQtPnBsYXllcigpLT5zaW11
bGF0ZUF1ZGlvSW50ZXJydXB0aW9uKCk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShub2RlKTsK
KyNlbmRpZgorfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFscy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAppbmRleCBjMWFjMmJi
NjMyMWQ4NTUyNGZlMTk3YTQyOTJjZDdhMGI3NGVmY2NmLi44ZmY5ZTllZjllZGU1Yjg2NzRkZjNl
NDczOWI0ZWVkYTBjMDM0NTBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKQEAgLTI5
Niw2ICsyOTYsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBlbmFibGVNb2NrU3BlZWNoU3ludGhlc2l6
ZXIoKTsKICNlbmRpZgogICAgICAgICAgICAgICAgICAgICAKKyAgICB2b2lkIHNpbXVsYXRlQXVk
aW9JbnRlcnJ1cHRpb24oTm9kZSopOworCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IEludGVybmFs
cyhEb2N1bWVudCopOwogICAgIERvY3VtZW50KiBjb250ZXh0RG9jdW1lbnQoKSBjb25zdDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAppbmRleCA5MzA0OGQ3N2I0Y2MzZjM3ZmU3YzRm
ZTUwOWNlY2UwMWExOTdhYzgwLi5jMmIwYmUxMzRiZmE4ZDY4YjE1YjMxMjE4ZDBlM2EwM2JjYThk
ZDVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKKysr
IGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCkBAIC0yNTcsNiArMjU3LDgg
QEAKIAogICAgIHZvaWQgc2V0VXNlc092ZXJsYXlTY3JvbGxiYXJzKGluIGJvb2xlYW4gZW5hYmxl
ZCk7CiAKKyAgICB2b2lkIHNpbXVsYXRlQXVkaW9JbnRlcnJ1cHRpb24oaW4gTm9kZSBub2RlKTsK
KwogICAgIFtDb25kaXRpb25hbD1FTkNSWVBURURfTUVESUFfVjJdIHZvaWQgaW5pdGlhbGl6ZU1v
Y2tDRE0oKTsKIAogICAgIFtDb25kaXRpb25hbD1TUEVFQ0hfU1lOVEhFU0lTXSB2b2lkIGVuYWJs
ZU1vY2tTcGVlY2hTeW50aGVzaXplcigpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGYyNjVmNTdhOTc2YmQ3ZWI5ZTA3ODBk
NmZmZjA2ZDcyYmU5MTFiZGIuLjM1ZDk0NzdlY2ZlNmQ5MmQ4Yjc4NjI4ZmFhZjZjM2JiNjY3NmE1
ZDIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMy0wMy0xMyAgWGFiaWVyIFJvZHJpZ3VleiBD
YWx2YXIgIDxjYWx2YXJpc0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtHU3RyZWFtZXJdIFN0b3Bw
aW5nIHBsYXliYWNrIG9mIGh0bWw1IG1lZGlhIHdoZW4gcmVjZWl2aW5nIGEgaGlnaGVyIHByaW9y
aXR5IGF1ZGlvIGV2ZW50IG5lZWRzIGltcGxlbWVudGF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MTYxMQorCisgICAgICAgIENyZWF0ZWQgdGVz
dCwgZXhwZWN0ZWQgcmVzdWx0IGFuZCB1cGRhdGVkIG90aGVyIHBvcnRzCisgICAgICAgIGV4cGVj
dGF0aW9ucy4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIG1lZGlhL21lZGlhLWhpZ2hlci1wcmlvLWF1ZGlvLXN0cmVhbS1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIG1lZGlhL21lZGlhLWhpZ2hlci1wcmlvLWF1ZGlvLXN0cmVhbS5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zOiBT
a2lwcGVkIHRoZSBuZXcgdGVzdC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0
aW9uczogU2tpcHBlZCB0aGUgbmV3IHRlc3QuCisgICAgICAgICogcGxhdGZvcm0vcXQvVGVzdEV4
cGVjdGF0aW9uczogU2tpcHBlZCB0aGUgbmV3IHRlc3QgZm9yIE1hYyBhbmQKKyAgICAgICAgV2lu
LgorCiAyMDEzLTAzLTEzICDDgWTDoW0gS2FsbGFpICA8a2FkYW1AaW5mLnUtc3plZ2VkLmh1Pgog
CiAgICAgICAgIFtRdF0gVW5yZXZpZXdlZCBnYXJkZW5pbmcuCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9tZWRpYS9tZWRpYS1oaWdoZXItcHJpby1hdWRpby1zdHJlYW0tZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtaGlnaGVyLXByaW8tYXVkaW8tc3RyZWFtLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5iYWViOTUyNTcyNDBkMjFhZWEzMTY4ODJhNzJlMTkyNDMxZTZkYjk3
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtaGlnaGVyLXByaW8t
YXVkaW8tc3RyZWFtLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitUZXN0IHBhdXNlZCBi
eToKKworR2V0dGluZyBhIGhpZ2hlciBwcmlvcml0eSBhdWRpbyBzdHJlYW0uCitUaGlzIHRlc3Qg
ZG9lcyBub3Qgd29yayBpbiB0aGUgbGF1bmNoZXJzLCBvbmx5IHdpdGggdGhlIHRlc3QgcnVubmVy
cy4KK0VWRU5UKHBsYXlpbmcpCitFWFBFQ1RFRCAobWVkaWFFbGVtZW50LnBhdXNlZCA9PSAnZmFs
c2UnKSBPSworRVZFTlQocGF1c2UpCitFWFBFQ1RFRCAobWVkaWFFbGVtZW50LnBhdXNlZCA9PSAn
dHJ1ZScpIE9LCitFWFBFQ1RFRCAobWVkaWFFbGVtZW50LmVuZGVkID09ICdmYWxzZScpIE9LCisK
K0VORCBPRiBURVNUCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21lZGlhLWhpZ2hl
ci1wcmlvLWF1ZGlvLXN0cmVhbS5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtaGlnaGVy
LXByaW8tYXVkaW8tc3RyZWFtLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODU3YjE3M2JjZTNlMjFmZWI0ZWEx
MmFjOTE3OTQyOWEyOTFkZDMyMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlh
L21lZGlhLWhpZ2hlci1wcmlvLWF1ZGlvLXN0cmVhbS5odG1sCkBAIC0wLDAgKzEsNDYgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDxzY3JpcHQgc3JjPW1l
ZGlhLWZpbGUuanM+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPXZpZGVvLXRlc3QuanM+
PC9zY3JpcHQ+CisKKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgICAgIHZhciBtZWRpYUVsZW1l
bnQ7CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIHN0YXJ0KCkKKyAgICAgICAgICAgIHsKKyAgICAg
ICAgICAgICAgICBtZWRpYUVsZW1lbnQgPSBuZXcgQXVkaW8oKTsKKworICAgICAgICAgICAgICAg
IHdhaXRGb3JFdmVudCgnZXJyb3InKTsKKyAgICAgICAgICAgICAgICB3YWl0Rm9yRXZlbnQoJ3Bs
YXlpbmcnLCBwbGF5aW5nKTsKKworICAgICAgICAgICAgICAgIG1lZGlhRWxlbWVudC5zcmMgPSBm
aW5kTWVkaWFGaWxlKCdhdWRpbycsICdjb250ZW50L3Rlc3QnKTsKKyAgICAgICAgICAgICAgICBt
ZWRpYUVsZW1lbnQucGxheSgpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmdW5jdGlv
biBwbGF5aW5nKCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQo
Im1lZGlhRWxlbWVudC5wYXVzZWQiLCBmYWxzZSk7CisgICAgICAgICAgICAgICAgd2FpdEZvckV2
ZW50KCdwYXVzZScsIHBhdXNlZCk7CisgICAgICAgICAgICAgICAgaW50ZXJuYWxzLnNpbXVsYXRl
QXVkaW9JbnRlcnJ1cHRpb24obWVkaWFFbGVtZW50KTsKKyAgICAgICAgICAgIH0KKworICAgICAg
ICAgICAgZnVuY3Rpb24gcGF1c2VkKCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICB0
ZXN0RXhwZWN0ZWQoIm1lZGlhRWxlbWVudC5wYXVzZWQiLCB0cnVlKTsKKyAgICAgICAgICAgICAg
ICB0ZXN0RXhwZWN0ZWQoIm1lZGlhRWxlbWVudC5lbmRlZCIsIGZhbHNlKTsKKyAgICAgICAgICAg
ICAgICBjb25zb2xlV3JpdGUoIiIpOworICAgICAgICAgICAgICAgIGVuZFRlc3QoKTsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9oZWFkPgorICAgIDxib2R5IG9ubG9h
ZD0ic3RhcnQoKSI+CisgICAgICAgIDxwPjxiPlRlc3QgcGF1c2VkIGJ5OjwvYj4KKyAgICAgICAg
PG9sPgorICAgICAgICAgICAgPGxpPkdldHRpbmcgYSBoaWdoZXIgcHJpb3JpdHkgYXVkaW8gc3Ry
ZWFtLjwvbGk+CisgICAgICAgICAgICA8bGk+VGhpcyB0ZXN0IGRvZXMgbm90IHdvcmsgaW4gdGhl
IGxhdW5jaGVycywgb25seSB3aXRoCisgICAgICAgICAgICB0aGUgdGVzdCBydW5uZXJzLjwvbGk+
CisgICAgICAgIDwvb2w+CisgICAgICAgIDwvcD4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucwppbmRleCAxMWJi
YzU4OTRhNzkwZTdiZmRmNDYwNjM2OTQ5ZDMyNjMzMThhMzZmLi43ZGE1NzM1ZjMyYmMxZDEzZjZm
ZWEwOTE0NjEzOTEwYzQzOTU4MDNiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTQ0NzAsMyArNDQ3MCw2IEBAIHdlYmtpdC5vcmcvYi8x
MTIxOTMgZmFzdC9kb20vV2luZG93L3dpbmRvdy1wb3N0bWVzc2FnZS1jbG9uZS5odG1sIFsgRmFp
bHVyZSBQYXNzCiB3ZWJraXQub3JnL2IvMTEyMjE5IGZhc3QvbGF5ZXJzL25vLWNsaXBwaW5nLW92
ZXJmbG93LWhpZGRlbi1hZGRlZC1hZnRlci10cmFuc2Zvcm0uaHRtbCBbIEltYWdlT25seUZhaWx1
cmUgUGFzcyBdCiB3ZWJraXQub3JnL2IvMTEyMjE5IGZhc3QvbGF5ZXJzL25vLWNsaXBwaW5nLW92
ZXJmbG93LWhpZGRlbi1oYXJkd2FyZS1hY2NlbGVyYXRpb24uaHRtbCBbIEltYWdlT25seUZhaWx1
cmUgUGFzcyBdCiB3ZWJraXQub3JnL2IvMTEyMjE5IGZhc3QvbGF5ZXJzL25vLWNsaXBwaW5nLW92
ZXJmbG93LWhpZGRlbi1hZGRlZC1hZnRlci10cmFuc2l0aW9uLmh0bWwgWyBJbWFnZU9ubHlGYWls
dXJlIFBhc3MgXQorCisjIEZlYXR1cmUgbm90IGltcGxlbWVudGVkCit3ZWJraXQub3JnL2IvOTE2
MTEgbWVkaWEvbWVkaWEtaGlnaGVyLXByaW8tYXVkaW8tc3RyZWFtLmh0bWwgWyBTa2lwIF0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMzZmNzExOTcwZTk3
YmQ3MGRlODU4NzRmOTIyMDQ3MjQxNjkwNGJjZS4uYmM5N2Y2YWE1ZmRjM2JkYmMyNjllZjQyMWJk
YTlhNTk1NDk0NTYxYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RF
eHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlv
bnMKQEAgLTE0NzgsMyArMTQ3OCw2IEBAIHdlYmtpdC5vcmcvYi8xMTIxNzYgZmFzdC9jc3Mvc3Rp
Y2t5L2lubGluZS1zdGlja3ktYWJzcG9zLWNoaWxkLmh0bWwgWyBJbWFnZU9ubHlGCiAjIE9uY2Ug
dGhlIGJ1ZyAxMTIxNzYgaXMgZml4ZWQsIHBvdGVudGlhbGx5IHJlc3RvcmUgdGhlIGZvbGxvd2lu
ZyB0ZXN0IGV4cGVjdGF0aW9ucy4KICMgd2Via2l0Lm9yZy9iLzEwNTk5OCBbIExpb24gUmVsZWFz
ZSBdIGZhc3QvY3NzL3N0aWNreS9pbmxpbmUtc3RpY2t5LWFic3Bvcy1jaGlsZC5odG1sIFsgSW1h
Z2VPbmx5RmFpbHVyZSBdCiAjIHdlYmtpdC5vcmcvYi8xMDU5OTggWyBNb3VudGFpbkxpb24gRGVi
dWcgXSBmYXN0L2Nzcy9zdGlja3kvaW5saW5lLXN0aWNreS1hYnNwb3MtY2hpbGQuaHRtbCBbIElt
YWdlT25seUZhaWx1cmUgUGFzcyBdCisKKyMgRmVhdHVyZSBub3QgaW1wbGVtZW50ZWQKK3dlYmtp
dC5vcmcvYi85MTYxMSBtZWRpYS9tZWRpYS1oaWdoZXItcHJpby1hdWRpby1zdHJlYW0uaHRtbCBb
IFNraXAgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvVGVzdEV4cGVjdGF0
aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggNjk2
MTFmNjU3NWZiYjJmMzhkOWQ0N2E3YzY5MTZiMjY4ZmVjNDI1ZC4uZDEyZDQwZDgyN2ZmYWE2MjA1
MzQwYTUwZjU1OWY5ZGJiOTJhNzQyYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
cXQvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9UZXN0RXhw
ZWN0YXRpb25zCkBAIC0yNjgzLDMgKzI2ODMsNiBAQCB3ZWJraXQub3JnL2IvMTA5MTc5IGNvbXBv
c2l0aW5nL3RyYW5zaXRpb25zL3RyYW5zZm9ybS1vbi1sYXJnZS1sYXllci5odG1sIFsgSW1hZwog
CiAjIFtRdF0gVHdvIHRlc3RzIGhpdCBhc3NlcnRpb24gZmFpbCBhZnRlciByMTQwOTk5Lgogd2Vi
a2l0Lm9yZy9iLzEwODI1NyBjb21wb3NpdGluZy9vdmVyZmxvdy9jb21wb3NpdGVkLXNjcm9sbGlu
Zy1jcmVhdGVzLWEtc3RhY2tpbmctY29udGFpbmVyLmh0bWwgWyBTa2lwIF0KKworIyBGZWF0dXJl
IG5vdCBpbXBsZW1lbnRlZAord2Via2l0Lm9yZy9iLzkxNjExIFsgTWFjIFdpbiBdIG1lZGlhL21l
ZGlhLWhpZ2hlci1wcmlvLWF1ZGlvLXN0cmVhbS5odG1sIFsgU2tpcCBdCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>193111</attachid>
            <date>2013-03-14 05:53:00 -0700</date>
            <delta_ts>2013-03-14 09:46:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-91611-20130314134855.patch</filename>
            <type>text/plain</type>
            <size>21552</size>
            <attacher name="Xabier Rodríguez Calvar">calvaris</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ1ODAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWY2OGY1ZmYxYjhiOGM3
MzI4M2Y0YjI4YTEyZTg3YTdjY2Y5NGQwYi4uYTBmODA1OTc1MmQwZTI4OTJjMjQyZjA4ZmZjZTQ1
ZTkzZWYxMDAzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYwIEBACisyMDEzLTAzLTE0ICBYYWJp
ZXIgUm9kcmlndWV6IENhbHZhciAgPGNhbHZhcmlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dT
dHJlYW1lcl0gU3RvcHBpbmcgcGxheWJhY2sgb2YgaHRtbDUgbWVkaWEgd2hlbiByZWNlaXZpbmcg
YSBoaWdoZXIgcHJpb3JpdHkgYXVkaW8gZXZlbnQgbmVlZHMgaW1wbGVtZW50YXRpb24KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkxNjExCisKKyAgICAg
ICAgUmVhY3QgdG8gUkVRVUVTVF9TVEFURSBHU3RyZWFtZXIgbWVzc2FnZSB0byBzdG9wIHRoZSBw
aXBlbGluZSB3aGVuCisgICAgICAgIGEgaGlnaGVyIHByaW9yaXR5IHN0cmVhbSBpcyBwbGF5ZWQu
IFdoZW4gdGhpcyBoYXBwZW5zLCBzdGF0ZXMgYXJlCisgICAgICAgIHVwZGF0ZWQgYWNjb3JkaW5n
bHkuCisKKyAgICAgICAgQSBtZXRob2Qgd2FzIGFkZGVkIGluIHRoZSBNZWRpYVBsYXllciBjbGFz
cyBhbmQgaW50ZXJuYWxzIHRvIGFsbG93CisgICAgICAgIHRoZSB0aGUgdGVzdCBydW5uZXIgdG8g
c2ltdWxhdGUgYW4gYXVkaW8gaW50ZXJydXB0aW9uLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IG1lZGlhL21lZGlhLWhpZ2hlci1wcmlvLWF1
ZGlvLXN0cmVhbS5odG1sCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXll
ci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAoTWVkaWFQbGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFQbGF5ZXI6OnNpbXVsYXRlQXVkaW9JbnRlcnJ1cHRpb24pOiBOZXcgbWV0aG9kCisgICAg
ICAgIGRlbGVnYXRpbmcgYW4gYXVkaW8gaW50ZXJydXB0aW9uIHRvIHRoZSBwcml2YXRlIGJhY2tl
bmQgdG8KKyAgICAgICAgc2ltdWxhdGUgdGhlIHVzZS1jYXNlIHdoZXJlIGFuIGV4dGVybmFsIGFw
cGxpY2F0aW9uIG5lZWRzCisgICAgICAgIGV4Y2x1c2l2ZSBhY2Nlc3MgdG8gdGhlIGF1ZGlvIGRl
dmljZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaDoK
KyAgICAgICAgKE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZSk6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U6OnNpbXVsYXRlQXVkaW9JbnRlcnJ1cHRpb24p
OgorICAgICAgICBBZGRlZCBkZWZhdWx0IGVtcHR5IG1ldGhvZCBpbiB0aGUgY29tbW9uIHByaXZh
dGUgaGVhZGVyLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmNyZWF0ZUF1ZGlvU2luayk6Cisg
ICAgICAgIChXZWJDb3JlOjpzZXRBdWRpb1N0cmVhbVByb3BlcnRpZXNDYWxsYmFjayk6IEhvb2tl
ZCB0byBjaGlsZC1hZGRlZAorICAgICAgICBzaWduYWwgb24gdGhlIGF1ZGlvIHNpbmssIGRlbGVn
YXRlcyBvbiBzZXRBdWRpb1N0cmVhbVByb3BlcnRpZXMuCisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnNldEF1ZGlvU3RyZWFtUHJvcGVydGllcyk6CisgICAg
ICAgIFNldHMgdGhlIGF1ZGlvIHN0cmVhbSBwcm9wZXJ0aWVzLgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIp
OgorICAgICAgICBJbml0aWFsaXplcyB0aGUgbmV3IGF0dHJpYnV0ZS4KKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6fk1lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lcik6CisgICAgICAgIERpc2Nvbm5lY3RzIGF1dG9hdWRpb3Npbmsgc2lnbmFsLgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpjaGFuZ2VQaXBlbGluZVN0
YXRlKToKKyAgICAgICAgQ2hhbmdlZCBsb2dnaW5nLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpoYW5kbGVNZXNzYWdlKTogUmVhY3RpbmcgdG8KKyAgICAg
ICAgdGhlIFJFUVVFU1RfU1RBVEUgbWVzc2FnZS4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lcjo6c2ltdWxhdGVBdWRpb0ludGVycnVwdGlvbik6CisgICAgICAg
IEFkZGVkLiBJbmplY3RzIHRoZSBSRVFVRVNUX1NUQVRFIG1lc3NhZ2UgdG8gdGhlIHBpcGVsaW5l
LgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjp1cGRhdGVT
dGF0ZXMpOiBVcGRhdGluZyB0aGUKKyAgICAgICAgcGxheWJhY2sgc3RhdGUgaWYgUkVRVUVTVF9T
VEFURS4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyLmg6CisgICAgICAgIChNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIp
OiBBZGRlZCBuZXcgbWV0aG9kIGFuZCBhdHRyaWJ1dGUuCisgICAgICAgICogdGVzdGluZy9JbnRl
cm5hbHMuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5pZGw6CisgICAgICAgICogdGVz
dGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3Jl
OjpJbnRlcm5hbHM6OnNpbXVsYXRlQXVkaW9JbnRlcnJ1cHRpb24pOiBBZGRlZCB0byBjYWxsIHRo
ZQorICAgICAgICBtZXRob2QgdG8gc3RvcCB0aGUgZWxlbWVudCBiZWNhdXNlIG9mIGEgaGlnaGVy
IHByaW8gc3RyZWFtIGF0IHRoZQorICAgICAgICB0ZXN0cy4KKwogMjAxMy0wMy0xNCAgU2VyZ2lv
IFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KIAogICAgICAgICBFbXB0eSBsaXN0
IGl0ZW1zIGFmdGVyIGRyYWcmZHJvcCBpbiBjb250ZW50RWRpdGFibGUgZGl2cwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCmluZGV4IDdjOTRi
MmI5NDk2MDhjYTNkODkyYWZjOTY0ZTA3YjFmMGM1OGNiZjYuLjg5YzViYTVhMzNiOWE5ZGFiN2Vm
Mjg2ODk0ZjkzOTczMzU0M2U4NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9NZWRpYVBsYXllci5jcHAKQEAgLTExNDQsNiArMTE0NCwxNiBAQCB2b2lkIE1lZGlh
UGxheWVyOjpyZXNldE1lZGlhRW5naW5lcygpCiAgICAgaW5zdGFsbGVkTWVkaWFFbmdpbmVzKFJl
c2V0RW5naW5lcyk7CiB9CiAKKyNpZiBVU0UoR1NUUkVBTUVSKQordm9pZCBNZWRpYVBsYXllcjo6
c2ltdWxhdGVBdWRpb0ludGVycnVwdGlvbigpCit7CisgICAgaWYgKCFtX3ByaXZhdGUpCisgICAg
ICAgIHJldHVybjsKKworICAgIG1fcHJpdmF0ZS0+c2ltdWxhdGVBdWRpb0ludGVycnVwdGlvbigp
OworfQorI2VuZGlmCisKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAppbmRleCA5OTRjOGNkYzU5MjdmMzVkNjIzOTk5MTI3ZGY5
Yzg1ZTI2YjMzOWQwLi44NmVhNDAyNzhjMjQ1NmRmZDM5MWQ1NDRkZmRjMTI4NTQ1ZTczZWY3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKQEAg
LTQ2Miw2ICs0NjIsMTAgQEAgcHVibGljOgogICAgIFBhc3NSZWZQdHI8UGxhdGZvcm1UZXh0VHJh
Y2tNZW51SW50ZXJmYWNlPiB0ZXh0VHJhY2tNZW51KCk7CiAjZW5kaWYKIAorI2lmIFVTRShHU1RS
RUFNRVIpCisgICAgdmlydHVhbCB2b2lkIHNpbXVsYXRlQXVkaW9JbnRlcnJ1cHRpb24oKTsKKyNl
bmRpZgorCiBwcml2YXRlOgogICAgIE1lZGlhUGxheWVyKE1lZGlhUGxheWVyQ2xpZW50Kik7CiAg
ICAgdm9pZCBsb2FkV2l0aE5leHRNZWRpYUVuZ2luZShNZWRpYVBsYXllckZhY3RvcnkqKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJp
dmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2
YXRlLmgKaW5kZXggODU3YjQ5NTUyZTg5Nzg5YWJkMWQ3ZDg5YjlmZmNiMzM0OWYxN2M0NC4uYjc5
NzA5ZDUzNzVkNTkzMTVjNjY5ZTcyZDIzNDVkM2Y0MjA0OGZiYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKQEAgLTE4
OCw2ICsxODgsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFBsYXRmb3JtVGV4
dFRyYWNrTWVudUludGVyZmFjZT4gdGV4dFRyYWNrTWVudSgpIHsgcmV0dXJuIDA7IH0KICNlbmRp
ZgogCisjaWYgVVNFKEdTVFJFQU1FUikKKyAgICB2aXJ0dWFsIHZvaWQgc2ltdWxhdGVBdWRpb0lu
dGVycnVwdGlvbigpIHsgfQorI2VuZGlmCiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IDJhZGZlNzRmYmRiMWY4YjI2MDM3M2Ix
ZDQ2YTFjMDg1MWM1NzQ2NDAuLjViZDU0ZmMxZWFkYTg1OGUwMWFiYmY5MjQxYzU3MjljZjc0ZTcy
NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3Bw
CkBAIC0xMTMsNiArMTEzLDE2IEBAIHN0YXRpYyBnYm9vbGVhbiBtZWRpYVBsYXllclByaXZhdGVB
dWRpb0NoYW5nZVRpbWVvdXRDYWxsYmFjayhNZWRpYVBsYXllclByaXZhdGVHCiAgICAgcmV0dXJu
IEZBTFNFOwogfQogCisjaWZkZWYgR1NUX0FQSV9WRVJTSU9OXzEKK3N0YXRpYyB2b2lkIHNldEF1
ZGlvU3RyZWFtUHJvcGVydGllc0NhbGxiYWNrKEdzdENoaWxkUHJveHkqLCBHT2JqZWN0KiBvYmpl
Y3QsIGdjaGFyKiwKKyAgICBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIqIHBsYXllcikKKyNl
bHNlCitzdGF0aWMgdm9pZCBzZXRBdWRpb1N0cmVhbVByb3BlcnRpZXNDYWxsYmFjayhHc3RDaGls
ZFByb3h5KiwgR09iamVjdCogb2JqZWN0LCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIqIHBs
YXllcikKKyNlbmRpZgoreworICAgIHBsYXllci0+c2V0QXVkaW9TdHJlYW1Qcm9wZXJ0aWVzKG9i
amVjdCk7Cit9CisKIHN0YXRpYyBnYm9vbGVhbiBtZWRpYVBsYXllclByaXZhdGVWaWRlb0NoYW5n
ZVRpbWVvdXRDYWxsYmFjayhNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIqIHBsYXllcikKIHsK
ICAgICAvLyBUaGlzIGlzIHRoZSBjYWxsYmFjayBvZiB0aGUgdGltZW91dCBzb3VyY2UgY3JlYXRl
ZCBpbiA6OnZpZGVvQ2hhbmdlZC4KQEAgLTEyMCw2ICsxMzAsMTkgQEAgc3RhdGljIGdib29sZWFu
IG1lZGlhUGxheWVyUHJpdmF0ZVZpZGVvQ2hhbmdlVGltZW91dENhbGxiYWNrKE1lZGlhUGxheWVy
UHJpdmF0ZUcKICAgICByZXR1cm4gRkFMU0U7CiB9CiAKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyOjpzZXRBdWRpb1N0cmVhbVByb3BlcnRpZXMoR09iamVjdCogb2JqZWN0KQorewor
ICAgIGlmIChnX3N0cmNtcDAoR19PQkpFQ1RfVFlQRV9OQU1FKG9iamVjdCksICJHc3RQdWxzZVNp
bmsiKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgY29uc3QgY2hhciogcm9sZSA9IG1fcGxheWVy
LT5tZWRpYVBsYXllckNsaWVudCgpICYmIG1fcGxheWVyLT5tZWRpYVBsYXllckNsaWVudCgpLT5t
ZWRpYVBsYXllcklzVmlkZW8oKQorICAgICAgICA/ICJ2aWRlbyIgOiAibXVzaWMiOworICAgIEdz
dFN0cnVjdHVyZSogc3RydWN0dXJlID0gZ3N0X3N0cnVjdHVyZV9uZXcoInN0cmVhbS1wcm9wZXJ0
aWVzIiwgIm1lZGlhLnJvbGUiLCBHX1RZUEVfU1RSSU5HLCByb2xlLCBOVUxMKTsKKyAgICBnX29i
amVjdF9zZXQob2JqZWN0LCAic3RyZWFtLXByb3BlcnRpZXMiLCBzdHJ1Y3R1cmUsIE5VTEwpOwor
ICAgIGdzdF9zdHJ1Y3R1cmVfZnJlZShzdHJ1Y3R1cmUpOworICAgIExPR19NRURJQV9NRVNTQUdF
KCJTZXQgbWVkaWEucm9sZSBhcyAlcyBhdCAlcyIsIHJvbGUsIGdzdF9lbGVtZW50X2dldF9uYW1l
KEdTVF9FTEVNRU5UKG9iamVjdCkpKTsKK30KKwogUGFzc093blB0cjxNZWRpYVBsYXllclByaXZh
dGVJbnRlcmZhY2U+IE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y3JlYXRlKE1lZGlhUGxh
eWVyKiBwbGF5ZXIpCiB7CiAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBNZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXIocGxheWVyKSk7CkBAIC0xODcsNiArMjEwLDcgQEAgTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIoTWVkaWFQbGF5ZXIqIHBs
YXllcikKICAgICAsIG1fdG90YWxCeXRlcygtMSkKICAgICAsIG1fb3JpZ2luYWxQcmVsb2FkV2Fz
QXV0b0FuZFdhc092ZXJyaWRkZW4oZmFsc2UpCiAgICAgLCBtX3ByZXNlcnZlc1BpdGNoKGZhbHNl
KQorICAgICwgbV9yZXF1ZXN0ZWRTdGF0ZShHU1RfU1RBVEVfVk9JRF9QRU5ESU5HKQogewogfQog
CkBAIC0yMDAsNiArMjI0LDEwIEBAIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6fk1lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lcigpCiAgICAgICAgIG1fbWVkaWFMb2NhdGlvbnMgPSAwOwog
ICAgIH0KIAorICAgIGlmIChtX2F1dG9BdWRpb1NpbmspCisgICAgICAgIGdfc2lnbmFsX2hhbmRs
ZXJzX2Rpc2Nvbm5lY3RfYnlfZnVuYyhHX09CSkVDVChtX2F1dG9BdWRpb1NpbmsuZ2V0KCkpLAor
ICAgICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDxncG9pbnRlcj4oc2V0QXVkaW9TdHJlYW1Qcm9w
ZXJ0aWVzQ2FsbGJhY2spLCB0aGlzKTsKKwogICAgIGlmIChtX3BsYXlCaW4pIHsKICAgICAgICAg
R1JlZlB0cjxHc3RCdXM+IGJ1cyA9IHdlYmtpdEdzdFBpcGVsaW5lR2V0QnVzKEdTVF9QSVBFTElO
RShtX3BsYXlCaW4uZ2V0KCkpKTsKICAgICAgICAgQVNTRVJUKGJ1cyk7CkBAIC0zMjEsOSArMzQ5
LDE0IEBAIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpjaGFuZ2VQaXBlbGluZVN0
YXRlKEdzdFN0YXRlIG5ld1N0YXRlKQogICAgIEdzdFN0YXRlIHBlbmRpbmc7CiAKICAgICBnc3Rf
ZWxlbWVudF9nZXRfc3RhdGUobV9wbGF5QmluLmdldCgpLCAmY3VycmVudFN0YXRlLCAmcGVuZGlu
ZywgMCk7Ci0gICAgTE9HX01FRElBX01FU1NBR0UoIkN1cnJlbnQgc3RhdGU6ICVzLCBwZW5kaW5n
OiAlcyIsIGdzdF9lbGVtZW50X3N0YXRlX2dldF9uYW1lKGN1cnJlbnRTdGF0ZSksIGdzdF9lbGVt
ZW50X3N0YXRlX2dldF9uYW1lKHBlbmRpbmcpKTsKLSAgICBpZiAoY3VycmVudFN0YXRlID09IG5l
d1N0YXRlIHx8IHBlbmRpbmcgPT0gbmV3U3RhdGUpCisgICAgaWYgKGN1cnJlbnRTdGF0ZSA9PSBu
ZXdTdGF0ZSB8fCBwZW5kaW5nID09IG5ld1N0YXRlKSB7CisgICAgICAgIExPR19NRURJQV9NRVNT
QUdFKCJSZWplY3RlZCBzdGF0ZSBjaGFuZ2UgdG8gJXMgZnJvbSAlcyB3aXRoICVzIHBlbmRpbmci
LCBnc3RfZWxlbWVudF9zdGF0ZV9nZXRfbmFtZShuZXdTdGF0ZSksCisgICAgICAgICAgICBnc3Rf
ZWxlbWVudF9zdGF0ZV9nZXRfbmFtZShjdXJyZW50U3RhdGUpLCBnc3RfZWxlbWVudF9zdGF0ZV9n
ZXRfbmFtZShwZW5kaW5nKSk7CiAgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIExP
R19NRURJQV9NRVNTQUdFKCJDaGFuZ2luZyBzdGF0ZSBjaGFuZ2UgdG8gJXMgZnJvbSAlcyB3aXRo
ICVzIHBlbmRpbmciLCBnc3RfZWxlbWVudF9zdGF0ZV9nZXRfbmFtZShuZXdTdGF0ZSksCisgICAg
ICAgIGdzdF9lbGVtZW50X3N0YXRlX2dldF9uYW1lKGN1cnJlbnRTdGF0ZSksIGdzdF9lbGVtZW50
X3N0YXRlX2dldF9uYW1lKHBlbmRpbmcpKTsKIAogICAgIEdzdFN0YXRlQ2hhbmdlUmV0dXJuIHNl
dFN0YXRlUmVzdWx0ID0gZ3N0X2VsZW1lbnRfc2V0X3N0YXRlKG1fcGxheUJpbi5nZXQoKSwgbmV3
U3RhdGUpOwogICAgIEdzdFN0YXRlIHBhdXNlZE9yUGxheWluZyA9IG5ld1N0YXRlID09IEdTVF9T
VEFURV9QTEFZSU5HID8gR1NUX1NUQVRFX1BBVVNFRCA6IEdTVF9TVEFURV9QTEFZSU5HOwpAQCAt
NjI3LDYgKzY2MCw3IEBAIGdib29sZWFuIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6aGFu
ZGxlTWVzc2FnZShHc3RNZXNzYWdlKiBtZXNzYWdlKQogICAgIGJvb2wgaXNzdWVFcnJvciA9IHRy
dWU7CiAgICAgYm9vbCBhdHRlbXB0TmV4dExvY2F0aW9uID0gZmFsc2U7CiAgICAgY29uc3QgR3N0
U3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBnc3RfbWVzc2FnZV9nZXRfc3RydWN0dXJlKG1lc3NhZ2Up
OworICAgIEdzdFN0YXRlIHJlcXVlc3RlZFN0YXRlLCBjdXJyZW50U3RhdGU7CiAKICAgICBpZiAo
c3RydWN0dXJlKSB7CiAgICAgICAgIGNvbnN0IGdjaGFyKiBtZXNzYWdlVHlwZU5hbWUgPSBnc3Rf
c3RydWN0dXJlX2dldF9uYW1lKHN0cnVjdHVyZSk7CkBAIC02OTIsMTIgKzcyNiwxMiBAQCBnYm9v
bGVhbiBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmhhbmRsZU1lc3NhZ2UoR3N0TWVzc2Fn
ZSogbWVzc2FnZSkKICAgICAgICAgICAgIHVwZGF0ZVN0YXRlcygpOwogCiAgICAgICAgICAgICAv
LyBDb25zdHJ1Y3QgYSBmaWxlbmFtZSBmb3IgdGhlIGdyYXBodml6IGRvdCBmaWxlIG91dHB1dC4K
LSAgICAgICAgICAgIEdzdFN0YXRlIG9sZFN0YXRlLCBuZXdTdGF0ZTsKLSAgICAgICAgICAgIGdz
dF9tZXNzYWdlX3BhcnNlX3N0YXRlX2NoYW5nZWQobWVzc2FnZSwgJm9sZFN0YXRlLCAmbmV3U3Rh
dGUsIDApOworICAgICAgICAgICAgR3N0U3RhdGUgbmV3U3RhdGU7CisgICAgICAgICAgICBnc3Rf
bWVzc2FnZV9wYXJzZV9zdGF0ZV9jaGFuZ2VkKG1lc3NhZ2UsICZjdXJyZW50U3RhdGUsICZuZXdT
dGF0ZSwgMCk7CiAKICAgICAgICAgICAgIENTdHJpbmcgZG90RmlsZU5hbWUgPSBTdHJpbmc6OmZv
cm1hdCgid2Via2l0LXZpZGVvLiVzXyVzIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBnc3RfZWxlbWVudF9zdGF0ZV9nZXRfbmFtZShvbGRTdGF0ZSks
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3N0X2Vs
ZW1lbnRfc3RhdGVfZ2V0X25hbWUobmV3U3RhdGUpKS51dGY4KCk7CisgICAgICAgICAgICAgICAg
Z3N0X2VsZW1lbnRfc3RhdGVfZ2V0X25hbWUoY3VycmVudFN0YXRlKSwKKyAgICAgICAgICAgICAg
ICBnc3RfZWxlbWVudF9zdGF0ZV9nZXRfbmFtZShuZXdTdGF0ZSkpLnV0ZjgoKTsKIAogICAgICAg
ICAgICAgR1NUX0RFQlVHX0JJTl9UT19ET1RfRklMRV9XSVRIX1RTKEdTVF9CSU4obV9wbGF5Qmlu
LmdldCgpKSwgR1NUX0RFQlVHX0dSQVBIX1NIT1dfQUxMLCBkb3RGaWxlTmFtZS5kYXRhKCkpOwog
ICAgICAgICB9CkBAIC03MTMsNiArNzQ3LDE2IEBAIGdib29sZWFuIE1lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lcjo6aGFuZGxlTWVzc2FnZShHc3RNZXNzYWdlKiBtZXNzYWdlKQogICAgICAgICBM
T0dfTUVESUFfTUVTU0FHRSgiRHVyYXRpb24gY2hhbmdlZCIpOwogICAgICAgICBkdXJhdGlvbkNo
YW5nZWQoKTsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBHU1RfTUVTU0FHRV9SRVFVRVNUX1NU
QVRFOgorICAgICAgICBnc3RfbWVzc2FnZV9wYXJzZV9yZXF1ZXN0X3N0YXRlKG1lc3NhZ2UsICZy
ZXF1ZXN0ZWRTdGF0ZSk7CisgICAgICAgIGdzdF9lbGVtZW50X2dldF9zdGF0ZShtX3BsYXlCaW4u
Z2V0KCksICZjdXJyZW50U3RhdGUsIE5VTEwsIDI1MCk7CisgICAgICAgIGlmIChyZXF1ZXN0ZWRT
dGF0ZSA8IGN1cnJlbnRTdGF0ZSkgeworICAgICAgICAgICAgTE9HX01FRElBX01FU1NBR0UoIkVs
ZW1lbnQgJXMgcmVxdWVzdGVkIHN0YXRlIGNoYW5nZSB0byAlcyIsIGdzdF9lbGVtZW50X2dldF9u
YW1lKEdTVF9NRVNTQUdFX1NSQyhtZXNzYWdlKSksCisgICAgICAgICAgICAgICAgZ3N0X2VsZW1l
bnRfc3RhdGVfZ2V0X25hbWUocmVxdWVzdGVkU3RhdGUpKTsKKyAgICAgICAgICAgIG1fcmVxdWVz
dGVkU3RhdGUgPSByZXF1ZXN0ZWRTdGF0ZTsKKyAgICAgICAgICAgIGNoYW5nZVBpcGVsaW5lU3Rh
dGUocmVxdWVzdGVkU3RhdGUpOworICAgICAgICB9CisgICAgICAgIGJyZWFrOwogICAgIGRlZmF1
bHQ6CiAgICAgICAgIExPR19NRURJQV9NRVNTQUdFKCJVbmhhbmRsZWQgR1N0cmVhbWVyIG1lc3Nh
Z2UgdHlwZTogJXMiLAogICAgICAgICAgICAgICAgICAgICBHU1RfTUVTU0FHRV9UWVBFX05BTUUo
bWVzc2FnZSkpOwpAQCAtOTYyLDYgKzEwMDYsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lcjo6dXBkYXRlU3RhdGVzKCkKICAgICAgICAgJnN0YXRlLCAmcGVuZGluZywgMjUwICog
R1NUX05TRUNPTkQpOwogCiAgICAgYm9vbCBzaG91bGRVcGRhdGVBZnRlclNlZWsgPSBmYWxzZTsK
KyAgICBib29sIHNob3VsZFVwZGF0ZVBsYXliYWNrU3RhdGUgPSBmYWxzZTsKICAgICBzd2l0Y2gg
KHJldCkgewogICAgIGNhc2UgR1NUX1NUQVRFX0NIQU5HRV9TVUNDRVNTOgogICAgICAgICBMT0df
TUVESUFfTUVTU0FHRSgiU3RhdGU6ICVzLCBwZW5kaW5nOiAlcyIsCkBAIC0xMDQ4LDYgKzEwOTMs
MTEgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnVwZGF0ZVN0YXRlcygpCiAg
ICAgICAgICAgICBtX3NlZWtpbmcgPSBmYWxzZTsKICAgICAgICAgfQogCisgICAgICAgIGlmICht
X3JlcXVlc3RlZFN0YXRlID09IEdTVF9TVEFURV9QQVVTRUQgJiYgc3RhdGUgPT0gR1NUX1NUQVRF
X1BBVVNFRCkgeworICAgICAgICAgICAgc2hvdWxkVXBkYXRlUGxheWJhY2tTdGF0ZSA9IHRydWU7
CisgICAgICAgICAgICBMT0dfTUVESUFfTUVTU0FHRSgiUmVxdWVzdGVkIHN0YXRlIGNoYW5nZSB0
byAlcyB3YXMgY29tcGxldGVkIiwgZ3N0X2VsZW1lbnRfc3RhdGVfZ2V0X25hbWUoc3RhdGUpKTsK
KyAgICAgICAgfQorCiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgR1NUX1NUQVRFX0NIQU5HRV9B
U1lOQzoKICAgICAgICAgTE9HX01FRElBX01FU1NBR0UoIkFzeW5jOiBTdGF0ZTogJXMsIHBlbmRp
bmc6ICVzIiwKQEAgLTExMTQsMTIgKzExNjQsMTcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXI6OnVwZGF0ZVN0YXRlcygpCiAgICAgICAgIGJyZWFrOwogICAgIH0KIAorICAgIG1f
cmVxdWVzdGVkU3RhdGUgPSBHU1RfU1RBVEVfVk9JRF9QRU5ESU5HOworCiAgICAgaWYgKHNlZWtp
bmcoKSkKICAgICAgICAgbV9yZWFkeVN0YXRlID0gTWVkaWFQbGF5ZXI6OkhhdmVOb3RoaW5nOwog
CiAgICAgaWYgKHNob3VsZFVwZGF0ZUFmdGVyU2VlaykKICAgICAgICAgdGltZUNoYW5nZWQoKTsK
IAorICAgIGlmIChzaG91bGRVcGRhdGVQbGF5YmFja1N0YXRlKQorICAgICAgICBtX3BsYXllci0+
cGxheWJhY2tTdGF0ZUNoYW5nZWQoKTsKKwogICAgIGlmIChtX25ldHdvcmtTdGF0ZSAhPSBvbGRO
ZXR3b3JrU3RhdGUpIHsKICAgICAgICAgTE9HX01FRElBX01FU1NBR0UoIk5ldHdvcmsgU3RhdGUg
Q2hhbmdlZCBmcm9tICV1IHRvICV1IiwKICAgICAgICAgICAgIG9sZE5ldHdvcmtTdGF0ZSwgbV9u
ZXR3b3JrU3RhdGUpOwpAQCAtMTQ5NCw2ICsxNTQ5LDEwIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyOjpjcmVhdGVBdWRpb1NpbmsoKQogICAgIEdzdEVsZW1lbnQqIHJlc2FtcGxl
ID0gZ3N0X2VsZW1lbnRfZmFjdG9yeV9tYWtlKCJhdWRpb3Jlc2FtcGxlIiwgMCk7CiAgICAgR3N0
RWxlbWVudCogc2luayA9IGdzdF9lbGVtZW50X2ZhY3RvcnlfbWFrZSgiYXV0b2F1ZGlvc2luayIs
IDApOwogCisgICAgbV9hdXRvQXVkaW9TaW5rID0gc2luazsKKworICAgIGdfc2lnbmFsX2Nvbm5l
Y3Qoc2luaywgImNoaWxkLWFkZGVkIiwgR19DQUxMQkFDSyhzZXRBdWRpb1N0cmVhbVByb3BlcnRp
ZXNDYWxsYmFjayksIHRoaXMpOworCiAgICAgR3N0RWxlbWVudCogYXVkaW9TaW5rID0gZ3N0X2Jp
bl9uZXcoImF1ZGlvLXNpbmsiKTsKICAgICBnc3RfYmluX2FkZF9tYW55KEdTVF9CSU4oYXVkaW9T
aW5rKSwgc2NhbGUsIGNvbnZlcnQsIHJlc2FtcGxlLCBzaW5rLCBOVUxMKTsKIApAQCAtMTUzOSw2
ICsxNTk4LDEyIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpjcmVhdGVHU1RQ
bGF5QmluKCkKICAgICBjcmVhdGVBdWRpb1NpbmsoKTsKIH0KIAordm9pZCBNZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXI6OnNpbXVsYXRlQXVkaW9JbnRlcnJ1cHRpb24oKQoreworICAgIEdzdE1l
c3NhZ2UqIG1lc3NhZ2UgPSBnc3RfbWVzc2FnZV9uZXdfcmVxdWVzdF9zdGF0ZShHU1RfT0JKRUNU
KG1fcGxheUJpbi5nZXQoKSksIEdTVF9TVEFURV9QQVVTRUQpOworICAgIGdzdF9lbGVtZW50X3Bv
c3RfbWVzc2FnZShtX3BsYXlCaW4uZ2V0KCksIG1lc3NhZ2UpOworfQorCiB9CiAKICNlbmRpZiAv
LyBVU0UoR1NUUkVBTUVSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lci5oCmluZGV4IDhhMWZkNDg2MDU0MjRiNTEwMWYwNDllMWZkMDVjNTBlYzEwYTY0MGUuLjJi
YmQ4ZDMyODU0YTE4MTk2MjAzYWYxMTZkY2RjNTZmNjAwN2ZlMmIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgKQEAgLTg4LDYgKzg4LDEwIEBAIHB1Ymxp
YzoKICAgICB2b2lkIHNvdXJjZUNoYW5nZWQoKTsKICAgICBHc3RFbGVtZW50KiBhdWRpb1Npbmso
KSBjb25zdDsKIAorICAgIHZvaWQgc2V0QXVkaW9TdHJlYW1Qcm9wZXJ0aWVzKEdPYmplY3QqKTsK
KworICAgIHZvaWQgc2ltdWxhdGVBdWRpb0ludGVycnVwdGlvbigpOworCiBwcml2YXRlOgogICAg
IE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcihNZWRpYVBsYXllciopOwogCkBAIC0xNTMsNiAr
MTU3LDggQEAgcHJpdmF0ZToKICAgICBLVVJMIG1fdXJsOwogICAgIGJvb2wgbV9vcmlnaW5hbFBy
ZWxvYWRXYXNBdXRvQW5kV2FzT3ZlcnJpZGRlbjsKICAgICBib29sIG1fcHJlc2VydmVzUGl0Y2g7
CisgICAgR3N0U3RhdGUgbV9yZXF1ZXN0ZWRTdGF0ZTsKKyAgICBHUmVmUHRyPEdzdEVsZW1lbnQ+
IG1fYXV0b0F1ZGlvU2luazsKIH07CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNw
cAppbmRleCBjMDM3NTMzNzM5ZjVhMDM1OTk2NGMzODIxYTM5ZjFiNDY5NGNkZjlmLi4wYzI0ZmIy
YzMxMzIxNGMzMTc0MjFhZDYyYzhiZTMzNzM4YTU3NjIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuY3BwCkBAIC01MSw2ICs1MSw3IEBACiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAj
aW5jbHVkZSAiSFRNTENvbnRlbnRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVu
dC5oIgorI2luY2x1ZGUgIkhUTUxNZWRpYUVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMu
aCIKICNpbmNsdWRlICJIVE1MVGV4dEFyZWFFbGVtZW50LmgiCiAjaW5jbHVkZSAiSGlzdG9yeUl0
ZW0uaCIKQEAgLTIwNzEsNCArMjA3MiwxNCBAQCBTdHJpbmcgSW50ZXJuYWxzOjpnZXRJbWFnZVNv
dXJjZVVSTChFbGVtZW50KiBlbGVtZW50LCBFeGNlcHRpb25Db2RlJiBlYykKICAgICByZXR1cm4g
ZWxlbWVudC0+aW1hZ2VTb3VyY2VVUkwoKTsKIH0KIAordm9pZCBJbnRlcm5hbHM6OnNpbXVsYXRl
QXVkaW9JbnRlcnJ1cHRpb24oTm9kZSogbm9kZSkKK3sKKyNpZiBVU0UoR1NUUkVBTUVSKQorICAg
IEhUTUxNZWRpYUVsZW1lbnQqIGVsZW1lbnQgPSB0b01lZGlhRWxlbWVudChub2RlKTsKKyAgICBl
bGVtZW50LT5wbGF5ZXIoKS0+c2ltdWxhdGVBdWRpb0ludGVycnVwdGlvbigpOworI2Vsc2UKKyAg
ICBVTlVTRURfUEFSQU0obm9kZSk7CisjZW5kaWYKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmgKaW5kZXggMjg4M2ZhZTlhOTRmYThjYjRiZmJiYTZlMTkwNmQ2ZGQ5NGFmOTA2ZS4u
M2ZkYjNiY2Y1MjQzZDdmYTA3ODI5OTFhZjc5Y2E3NDdlMzVmMTY5MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5oCkBAIC0zMDAsNiArMzAwLDggQEAgcHVibGljOgogCiAgICAgU3RyaW5n
IGdldEltYWdlU291cmNlVVJMKEVsZW1lbnQqLCBFeGNlcHRpb25Db2RlJik7CiAgICAgICAgICAg
ICAgICAgICAgIAorICAgIHZvaWQgc2ltdWxhdGVBdWRpb0ludGVycnVwdGlvbihOb2RlKik7CisK
IHByaXZhdGU6CiAgICAgZXhwbGljaXQgSW50ZXJuYWxzKERvY3VtZW50Kik7CiAgICAgRG9jdW1l
bnQqIGNvbnRleHREb2N1bWVudCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
aWRsCmluZGV4IDZmYzI2YTY3YjRiNTk4ZDZlYzA5NTk5NjBmZjAxM2MyNTM1YzRjOTcuLjM2MjBk
MGVlNTE3ZDliYzk3OTc1ZGYwOGZhMDE0YjFjMjc5Yzg5MmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5pZGwKQEAgLTI1OSw2ICsyNTksOCBAQAogCiAgICAgdm9pZCBmb3JjZVJlbG9h
ZChpbiBib29sZWFuIGVuZFRvRW5kKTsKIAorICAgIHZvaWQgc2ltdWxhdGVBdWRpb0ludGVycnVw
dGlvbihpbiBOb2RlIG5vZGUpOworCiAgICAgW0NvbmRpdGlvbmFsPUVOQ1JZUFRFRF9NRURJQV9W
Ml0gdm9pZCBpbml0aWFsaXplTW9ja0NETSgpOwogCiAgICAgW0NvbmRpdGlvbmFsPVNQRUVDSF9T
WU5USEVTSVNdIHZvaWQgZW5hYmxlTW9ja1NwZWVjaFN5bnRoZXNpemVyKCk7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOTA4
NmNlOTA5ZDQ4ZjhmNGMwZWFkOGM3YzJjOWYyYzYzYjQyYzA4OC4uYTY5Y2M2MTIzOWQ5YjI4Y2Uy
MjIyYzVmMTc0OWQ1MGY5Nzg5MGQ5YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEzLTAzLTE0
ICBYYWJpZXIgUm9kcmlndWV6IENhbHZhciAgPGNhbHZhcmlzQGlnYWxpYS5jb20+CisKKyAgICAg
ICAgW0dTdHJlYW1lcl0gU3RvcHBpbmcgcGxheWJhY2sgb2YgaHRtbDUgbWVkaWEgd2hlbiByZWNl
aXZpbmcgYSBoaWdoZXIgcHJpb3JpdHkgYXVkaW8gZXZlbnQgbmVlZHMgaW1wbGVtZW50YXRpb24K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkxNjExCisK
KyAgICAgICAgQ3JlYXRlZCB0ZXN0LCBleHBlY3RlZCByZXN1bHQgYW5kIHVwZGF0ZWQgb3RoZXIg
cG9ydHMKKyAgICAgICAgZXhwZWN0YXRpb25zLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogbWVkaWEvbWVkaWEtaGlnaGVyLXByaW8tYXVkaW8tc3Ry
ZWFtLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogbWVkaWEvbWVkaWEtaGlnaGVyLXBy
aW8tYXVkaW8tc3RyZWFtLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVt
L1Rlc3RFeHBlY3RhdGlvbnM6IFNraXBwZWQgdGhlIG5ldyB0ZXN0LgorICAgICAgICAqIHBsYXRm
b3JtL21hYy9UZXN0RXhwZWN0YXRpb25zOiBTa2lwcGVkIHRoZSBuZXcgdGVzdC4KKyAgICAgICAg
KiBwbGF0Zm9ybS9xdC9UZXN0RXhwZWN0YXRpb25zOiBTa2lwcGVkIHRoZSBuZXcgdGVzdCBmb3Ig
TWFjIGFuZAorICAgICAgICBXaW4uCisKIDIwMTMtMDMtMTQgIFpvbHRhbiBBcnZhaSAgPHphcnZh
aUBpbmYudS1zemVnZWQuaHU+CiAKICAgICAgICAgW1F0XSBVbnJldmlld2VkIGdhcmRlbmluZy4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21lZGlhLWhpZ2hlci1wcmlvLWF1ZGlvLXN0
cmVhbS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1oaWdoZXItcHJpby1h
dWRpby1zdHJlYW0tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJhZWI5NTI1NzI0MGQyMWFlYTMx
Njg4MmE3MmUxOTI0MzFlNmRiOTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRp
YS9tZWRpYS1oaWdoZXItcHJpby1hdWRpby1zdHJlYW0tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MTIgQEAKK1Rlc3QgcGF1c2VkIGJ5OgorCitHZXR0aW5nIGEgaGlnaGVyIHByaW9yaXR5IGF1ZGlv
IHN0cmVhbS4KK1RoaXMgdGVzdCBkb2VzIG5vdCB3b3JrIGluIHRoZSBsYXVuY2hlcnMsIG9ubHkg
d2l0aCB0aGUgdGVzdCBydW5uZXJzLgorRVZFTlQocGxheWluZykKK0VYUEVDVEVEIChtZWRpYUVs
ZW1lbnQucGF1c2VkID09ICdmYWxzZScpIE9LCitFVkVOVChwYXVzZSkKK0VYUEVDVEVEIChtZWRp
YUVsZW1lbnQucGF1c2VkID09ICd0cnVlJykgT0sKK0VYUEVDVEVEIChtZWRpYUVsZW1lbnQuZW5k
ZWQgPT0gJ2ZhbHNlJykgT0sKKworRU5EIE9GIFRFU1QKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvbWVkaWEvbWVkaWEtaGlnaGVyLXByaW8tYXVkaW8tc3RyZWFtLmh0bWwgYi9MYXlvdXRUZXN0
cy9tZWRpYS9tZWRpYS1oaWdoZXItcHJpby1hdWRpby1zdHJlYW0uaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44
NTdiMTczYmNlM2UyMWZlYjRlYTEyYWM5MTc5NDI5YTI5MWRkMzIwCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtaGlnaGVyLXByaW8tYXVkaW8tc3RyZWFtLmh0bWwK
QEAgLTAsMCArMSw0NiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAg
ICAgICAgPHNjcmlwdCBzcmM9bWVkaWEtZmlsZS5qcz48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlw
dCBzcmM9dmlkZW8tdGVzdC5qcz48L3NjcmlwdD4KKworICAgICAgICA8c2NyaXB0PgorICAgICAg
ICAgICAgdmFyIG1lZGlhRWxlbWVudDsKKworICAgICAgICAgICAgZnVuY3Rpb24gc3RhcnQoKQor
ICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIG1lZGlhRWxlbWVudCA9IG5ldyBBdWRpbygp
OworCisgICAgICAgICAgICAgICAgd2FpdEZvckV2ZW50KCdlcnJvcicpOworICAgICAgICAgICAg
ICAgIHdhaXRGb3JFdmVudCgncGxheWluZycsIHBsYXlpbmcpOworCisgICAgICAgICAgICAgICAg
bWVkaWFFbGVtZW50LnNyYyA9IGZpbmRNZWRpYUZpbGUoJ2F1ZGlvJywgJ2NvbnRlbnQvdGVzdCcp
OworICAgICAgICAgICAgICAgIG1lZGlhRWxlbWVudC5wbGF5KCk7CisgICAgICAgICAgICB9CisK
KyAgICAgICAgICAgIGZ1bmN0aW9uIHBsYXlpbmcoKQorICAgICAgICAgICAgeworICAgICAgICAg
ICAgICAgIHRlc3RFeHBlY3RlZCgibWVkaWFFbGVtZW50LnBhdXNlZCIsIGZhbHNlKTsKKyAgICAg
ICAgICAgICAgICB3YWl0Rm9yRXZlbnQoJ3BhdXNlJywgcGF1c2VkKTsKKyAgICAgICAgICAgICAg
ICBpbnRlcm5hbHMuc2ltdWxhdGVBdWRpb0ludGVycnVwdGlvbihtZWRpYUVsZW1lbnQpOworICAg
ICAgICAgICAgfQorCisgICAgICAgICAgICBmdW5jdGlvbiBwYXVzZWQoKQorICAgICAgICAgICAg
eworICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgibWVkaWFFbGVtZW50LnBhdXNlZCIsIHRy
dWUpOworICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgibWVkaWFFbGVtZW50LmVuZGVkIiwg
ZmFsc2UpOworICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiIik7CisgICAgICAgICAgICAg
ICAgZW5kVGVzdCgpOworICAgICAgICAgICAgfQorICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2hl
YWQ+CisgICAgPGJvZHkgb25sb2FkPSJzdGFydCgpIj4KKyAgICAgICAgPHA+PGI+VGVzdCBwYXVz
ZWQgYnk6PC9iPgorICAgICAgICA8b2w+CisgICAgICAgICAgICA8bGk+R2V0dGluZyBhIGhpZ2hl
ciBwcmlvcml0eSBhdWRpbyBzdHJlYW0uPC9saT4KKyAgICAgICAgICAgIDxsaT5UaGlzIHRlc3Qg
ZG9lcyBub3Qgd29yayBpbiB0aGUgbGF1bmNoZXJzLCBvbmx5IHdpdGgKKyAgICAgICAgICAgIHRo
ZSB0ZXN0IHJ1bm5lcnMuPC9saT4KKyAgICAgICAgPC9vbD4KKyAgICAgICAgPC9wPgorICAgIDwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
L1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhw
ZWN0YXRpb25zCmluZGV4IDBkNWY5MDhiNzdlYjMzODc1NzZhOTg3N2MyM2M3YTJjZTcyNWI2Zjgu
LjMxMGI3MDg2NWNlM2I4N2E5NDZkNGQ5MTk5ODE5MjhjMmNjM2M1NDggMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucwpAQCAtNDQ1MywzICs0NDUz
LDYgQEAgd2Via2l0Lm9yZy9iLzExMjE5MyBmYXN0L2RvbS9XaW5kb3cvd2luZG93LXBvc3RtZXNz
YWdlLWNsb25lLmh0bWwgWyBGYWlsdXJlIFBhc3MKIHdlYmtpdC5vcmcvYi8xMTIyMTkgZmFzdC9s
YXllcnMvbm8tY2xpcHBpbmctb3ZlcmZsb3ctaGlkZGVuLWFkZGVkLWFmdGVyLXRyYW5zZm9ybS5o
dG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBQYXNzIF0KIHdlYmtpdC5vcmcvYi8xMTIyMTkgZmFzdC9s
YXllcnMvbm8tY2xpcHBpbmctb3ZlcmZsb3ctaGlkZGVuLWhhcmR3YXJlLWFjY2VsZXJhdGlvbi5o
dG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBQYXNzIF0KIHdlYmtpdC5vcmcvYi8xMTIyMTkgZmFzdC9s
YXllcnMvbm8tY2xpcHBpbmctb3ZlcmZsb3ctaGlkZGVuLWFkZGVkLWFmdGVyLXRyYW5zaXRpb24u
aHRtbCBbIEltYWdlT25seUZhaWx1cmUgUGFzcyBdCisKKyMgRmVhdHVyZSBub3QgaW1wbGVtZW50
ZWQKK3dlYmtpdC5vcmcvYi85MTYxMSBtZWRpYS9tZWRpYS1oaWdoZXItcHJpby1hdWRpby1zdHJl
YW0uaHRtbCBbIFNraXAgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rl
c3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9u
cwppbmRleCAzYzQ3MzA2ZTE0ZjQ5NzJhN2ZjYjhjMzc1YWVkMTI4MTVhMzVmY2U1Li5lMzRkN2I2
OTM3OTg3OTY2NTBhZmM5YWZjMDc5NGM3ZTFkMTNhNzc1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTQ4MCwzICsxNDgwLDYgQEAgd2Via2l0Lm9yZy9i
LzExMjE3NiBmYXN0L2Nzcy9zdGlja3kvaW5saW5lLXN0aWNreS1hYnNwb3MtY2hpbGQuaHRtbCBb
IEltYWdlT25seUYKICMgT25jZSB0aGUgYnVnIDExMjE3NiBpcyBmaXhlZCwgcG90ZW50aWFsbHkg
cmVzdG9yZSB0aGUgZm9sbG93aW5nIHRlc3QgZXhwZWN0YXRpb25zLgogIyB3ZWJraXQub3JnL2Iv
MTA1OTk4IFsgTGlvbiBSZWxlYXNlIF0gZmFzdC9jc3Mvc3RpY2t5L2lubGluZS1zdGlja3ktYWJz
cG9zLWNoaWxkLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KICMgd2Via2l0Lm9yZy9iLzEwNTk5
OCBbIE1vdW50YWluTGlvbiBEZWJ1ZyBdIGZhc3QvY3NzL3N0aWNreS9pbmxpbmUtc3RpY2t5LWFi
c3Bvcy1jaGlsZC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBQYXNzIF0KKworIyBGZWF0dXJlIG5v
dCBpbXBsZW1lbnRlZAord2Via2l0Lm9yZy9iLzkxNjExIG1lZGlhL21lZGlhLWhpZ2hlci1wcmlv
LWF1ZGlvLXN0cmVhbS5odG1sIFsgU2tpcCBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9xdC9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvVGVzdEV4
cGVjdGF0aW9ucwppbmRleCBlMWE4MGY3OTVjMzQzZTAwNTAyYjk4MDEyNGU3ODI3MDRiYzkwZWRm
Li5kM2MxMGRiMmUzZWIwNWNjMmRmMGMwYjQ0OGZmY2M1NjA0YTc0ZjYwIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL3F0L1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTI2OTIsMyArMjY5Miw2IEBAIHdlYmtp
dC5vcmcvYi8xMDkxNzkgY29tcG9zaXRpbmcvdHJhbnNpdGlvbnMvdHJhbnNmb3JtLW9uLWxhcmdl
LWxheWVyLmh0bWwgWyBJbWFnCiAKICMgW1F0XSBUd28gdGVzdHMgaGl0IGFzc2VydGlvbiBmYWls
IGFmdGVyIHIxNDA5OTkuCiB3ZWJraXQub3JnL2IvMTA4MjU3IGNvbXBvc2l0aW5nL292ZXJmbG93
L2NvbXBvc2l0ZWQtc2Nyb2xsaW5nLWNyZWF0ZXMtYS1zdGFja2luZy1jb250YWluZXIuaHRtbCBb
IFNraXAgXQorCisjIEZlYXR1cmUgbm90IGltcGxlbWVudGVkCit3ZWJraXQub3JnL2IvOTE2MTEg
WyBNYWMgV2luIF0gbWVkaWEvbWVkaWEtaGlnaGVyLXByaW8tYXVkaW8tc3RyZWFtLmh0bWwgWyBT
a2lwIF0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>193140</attachid>
            <date>2013-03-14 09:46:18 -0700</date>
            <delta_ts>2013-03-14 09:50:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-91611-20130314174214.patch</filename>
            <type>text/plain</type>
            <size>5967</size>
            <attacher name="Xabier Rodríguez Calvar">calvaris</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ1ODExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDkyMzQ1ZTQ5ZWRlODA2
ODI3OTIwNTNiMzY5NzczNWNhNjQ4M2VjNy4uN2Y4ZmNlZmQ2N2E1M2I4MGQ5MDUxYTdmNmZkMWY3
ZDlmYjRjMDQyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMyw2ICszLDE1IEBACiAgICAgICAgIFtHU3RyZWFt
ZXJdIFN0b3BwaW5nIHBsYXliYWNrIG9mIGh0bWw1IG1lZGlhIHdoZW4gcmVjZWl2aW5nIGEgaGln
aGVyIHByaW9yaXR5IGF1ZGlvIGV2ZW50IG5lZWRzIGltcGxlbWVudGF0aW9uCiAgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MTYxMQogCisgICAgICAgIEd1
YXJkZWQgdGVzdGluZyBtZXRob2RzIHdpdGggI2lmIEVOQUJMRShWSURFTykuCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKzIwMTMtMDMtMTQgIFhhYmllciBSb2RyaWd1
ZXogQ2FsdmFyICA8Y2FsdmFyaXNAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1N0cmVhbWVyXSBT
dG9wcGluZyBwbGF5YmFjayBvZiBodG1sNSBtZWRpYSB3aGVuIHJlY2VpdmluZyBhIGhpZ2hlciBw
cmlvcml0eSBhdWRpbyBldmVudCBuZWVkcyBpbXBsZW1lbnRhdGlvbgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTE2MTEKKwogICAgICAgICBSZWFjdCB0
byBSRVFVRVNUX1NUQVRFIEdTdHJlYW1lciBtZXNzYWdlIHRvIHN0b3AgdGhlIHBpcGVsaW5lIHdo
ZW4KICAgICAgICAgYSBoaWdoZXIgcHJpb3JpdHkgc3RyZWFtIGlzIHBsYXllZC4gV2hlbiB0aGlz
IGhhcHBlbnMsIHN0YXRlcyBhcmUKICAgICAgICAgdXBkYXRlZCBhY2NvcmRpbmdseS4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAppbmRleCA4
OWM1YmE1YTMzYjlhOWRhYjdlZjI4Njg5NGY5Mzk3MzM1NDNlODQxLi5lYjA3YTRlNjkyY2NiYmNm
NTgwNDA5MTIwNGU5YzM1MTBkZTQ2ODY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCkBAIC0xMTQ0LDcgKzExNDQsNyBAQCB2b2lkIE1l
ZGlhUGxheWVyOjpyZXNldE1lZGlhRW5naW5lcygpCiAgICAgaW5zdGFsbGVkTWVkaWFFbmdpbmVz
KFJlc2V0RW5naW5lcyk7CiB9CiAKLSNpZiBVU0UoR1NUUkVBTUVSKQorI2lmIEVOQUJMRShWSURF
TykgJiYgVVNFKEdTVFJFQU1FUikKIHZvaWQgTWVkaWFQbGF5ZXI6OnNpbXVsYXRlQXVkaW9JbnRl
cnJ1cHRpb24oKQogewogICAgIGlmICghbV9wcml2YXRlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKaW5kZXggODZlYTQwMjc4YzI0NTZkZmQzOTFk
NTQ0ZGZkYzEyODU0NWU3M2VmNy4uZWU2NDZlZTY3NGQ2NWNjNTUzNDJmMTczZWExODMzNGRmNjBl
YmQxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQ
bGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXll
ci5oCkBAIC00NjIsNyArNDYyLDcgQEAgcHVibGljOgogICAgIFBhc3NSZWZQdHI8UGxhdGZvcm1U
ZXh0VHJhY2tNZW51SW50ZXJmYWNlPiB0ZXh0VHJhY2tNZW51KCk7CiAjZW5kaWYKIAotI2lmIFVT
RShHU1RSRUFNRVIpCisjaWYgRU5BQkxFKFZJREVPKSAmJiBVU0UoR1NUUkVBTUVSKQogICAgIHZp
cnR1YWwgdm9pZCBzaW11bGF0ZUF1ZGlvSW50ZXJydXB0aW9uKCk7CiAjZW5kaWYKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRl
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUu
aAppbmRleCBiNzk3MDlkNTM3NWQ1OTMxNWM2NjllNzJkMjM0NWQzZjQyMDQ4ZmJiLi5mYmQyYTIy
M2RjNmJkY2QwNmYwMTQ4NGM3NzY3NTI3Yjk2MGU2MmM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaApAQCAtMTg4LDcg
KzE4OCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8UGxhdGZvcm1UZXh0VHJh
Y2tNZW51SW50ZXJmYWNlPiB0ZXh0VHJhY2tNZW51KCkgeyByZXR1cm4gMDsgfQogI2VuZGlmCiAK
LSNpZiBVU0UoR1NUUkVBTUVSKQorI2lmIEVOQUJMRShWSURFTykgJiYgVVNFKEdTVFJFQU1FUikK
ICAgICB2aXJ0dWFsIHZvaWQgc2ltdWxhdGVBdWRpb0ludGVycnVwdGlvbigpIHsgfQogI2VuZGlm
CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApp
bmRleCA1YmQ1NGZjMWVhZGE4NThlMDFhYmJmOTI0MWM1NzI5Y2Y3NGU3MjZkLi42YjU5NzFhZGY5
MDcyZDI4N2UzNzMxNDAwNWZjNjEyMGQyNTQ3NTZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtMTU5OCwxMSArMTU5OCwxMyBAQCB2b2lk
IE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y3JlYXRlR1NUUGxheUJpbigpCiAgICAgY3Jl
YXRlQXVkaW9TaW5rKCk7CiB9CiAKKyNpZiBFTkFCTEUoVklERU8pCiB2b2lkIE1lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lcjo6c2ltdWxhdGVBdWRpb0ludGVycnVwdGlvbigpCiB7CiAgICAgR3N0
TWVzc2FnZSogbWVzc2FnZSA9IGdzdF9tZXNzYWdlX25ld19yZXF1ZXN0X3N0YXRlKEdTVF9PQkpF
Q1QobV9wbGF5QmluLmdldCgpKSwgR1NUX1NUQVRFX1BBVVNFRCk7CiAgICAgZ3N0X2VsZW1lbnRf
cG9zdF9tZXNzYWdlKG1fcGxheUJpbi5nZXQoKSwgbWVzc2FnZSk7CiB9CisjZW5kaWYKIAogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgKaW5kZXggMmJi
ZDhkMzI4NTRhMTgxOTYyMDNhZjExNmRjZGM1NmY2MDA3ZmUyYi4uMzMzZDAzMjJjNWQxYjllOTJk
ZjUwYzNkMDQ2YzBjOWFhNjEyNTEyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXIuaApAQCAtOTAsNyArOTAsOSBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNl
dEF1ZGlvU3RyZWFtUHJvcGVydGllcyhHT2JqZWN0Kik7CiAKKyNpZiBFTkFCTEUoVklERU8pCiAg
ICAgdm9pZCBzaW11bGF0ZUF1ZGlvSW50ZXJydXB0aW9uKCk7CisjZW5kaWYKIAogcHJpdmF0ZToK
ICAgICBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIoTWVkaWFQbGF5ZXIqKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCAwYzI0ZmIyYzMxMzIxNGMzMTc0MjFhZDYyYzhi
ZTMzNzM4YTU3NjIyLi40NTdiMmIxNWZkYjM4NTc4ZGI3YzJmNjdkMzM5MTk1NzI0Y2NkMGQxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC01MSw3ICs1MSw5IEBACiAjaW5j
bHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiSFRNTENvbnRlbnRFbGVtZW50LmgiCiAjaW5j
bHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgorI2lmIEVOQUJMRShWSURFTykgJiYgVVNFKEdTVFJF
QU1FUikKICNpbmNsdWRlICJIVE1MTWVkaWFFbGVtZW50LmgiCisjZW5kaWYKICNpbmNsdWRlICJI
VE1MTmFtZXMuaCIKICNpbmNsdWRlICJIVE1MVGV4dEFyZWFFbGVtZW50LmgiCiAjaW5jbHVkZSAi
SGlzdG9yeUl0ZW0uaCIKQEAgLTIwNzIsNiArMjA3NCw3IEBAIFN0cmluZyBJbnRlcm5hbHM6Omdl
dEltYWdlU291cmNlVVJMKEVsZW1lbnQqIGVsZW1lbnQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAg
IHJldHVybiBlbGVtZW50LT5pbWFnZVNvdXJjZVVSTCgpOwogfQogCisjaWYgRU5BQkxFKFZJREVP
KQogdm9pZCBJbnRlcm5hbHM6OnNpbXVsYXRlQXVkaW9JbnRlcnJ1cHRpb24oTm9kZSogbm9kZSkK
IHsKICNpZiBVU0UoR1NUUkVBTUVSKQpAQCAtMjA4MSw1ICsyMDg0LDYgQEAgdm9pZCBJbnRlcm5h
bHM6OnNpbXVsYXRlQXVkaW9JbnRlcnJ1cHRpb24oTm9kZSogbm9kZSkKICAgICBVTlVTRURfUEFS
QU0obm9kZSk7CiAjZW5kaWYKIH0KKyNlbmRpZgogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuaAppbmRleCAzZmRiM2JjZjUyNDNkN2ZhMDc4Mjk5MWFmNzljYTc0N2UzNWYxNjkwLi5mYzE4
YzM3YjVkYjM5MDA0ZDUxYjU3NmQzZDcxNDlmM2NmYTQyNGQzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmgKQEAgLTI5OSw4ICsyOTksMTAgQEAgcHVibGljOgogI2VuZGlmCiAKICAgICBT
dHJpbmcgZ2V0SW1hZ2VTb3VyY2VVUkwoRWxlbWVudCosIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICAg
ICAgICAgICAgICAgICAgCisKKyNpZiBFTkFCTEUoVklERU8pCiAgICAgdm9pZCBzaW11bGF0ZUF1
ZGlvSW50ZXJydXB0aW9uKE5vZGUqKTsKKyNlbmRpZgogCiBwcml2YXRlOgogICAgIGV4cGxpY2l0
IEludGVybmFscyhEb2N1bWVudCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCmlu
ZGV4IDM2MjBkMGVlNTE3ZDliYzk3OTc1ZGYwOGZhMDE0YjFjMjc5Yzg5MmUuLmFkZWIxMDBjMGJj
NjQ1NzM0ZDE3MDg4YTczMzM3YWU4ZmE2MDUzOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFscy5pZGwKQEAgLTI1OSw3ICsyNTksNyBAQAogCiAgICAgdm9pZCBmb3JjZVJlbG9hZChpbiBi
b29sZWFuIGVuZFRvRW5kKTsKIAotICAgIHZvaWQgc2ltdWxhdGVBdWRpb0ludGVycnVwdGlvbihp
biBOb2RlIG5vZGUpOworICAgIFtDb25kaXRpb25hbD1WSURFT10gdm9pZCBzaW11bGF0ZUF1ZGlv
SW50ZXJydXB0aW9uKGluIE5vZGUgbm9kZSk7CiAKICAgICBbQ29uZGl0aW9uYWw9RU5DUllQVEVE
X01FRElBX1YyXSB2b2lkIGluaXRpYWxpemVNb2NrQ0RNKCk7CiAK
</data>
<flag name="review"
          id="214570"
          type_id="1"
          status="-"
          setter="pnormand"
    />
          </attachment>
      

    </bug>

</bugzilla>