<?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>123015</bug_id>
          
          <creation_ts>2013-10-18 03:43:01 -0700</creation_ts>
          <short_desc>[GStreamer] webkitwebaudiosrc element needs to emit stream-start, caps and segment events</short_desc>
          <delta_ts>2013-12-06 03:17:36 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Audio</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="Nobody">webkit-unassigned</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>crogers</cc>
    
    <cc>eflews.bot</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jer.noble</cc>
    
    <cc>nick.diego</cc>
    
    <cc>pnormand</cc>
    
    <cc>sergio</cc>
    
    <cc>slomo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>941139</commentid>
    <comment_count>0</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2013-10-18 03:43:01 -0700</bug_when>
    <thetext>With GStreamer 1.2 at least. We now need to send downstream stream-start, caps and segment events along with the first buffers. I started a patch...

Perhaps it would be good to rework the whole playback pipeline:

- make webkitwebsrc a basesrc sub-class
- one webkitwebsrc per WebAudio bus channel
- handle interleaving and wavenc in the pipeline, not in the src element like it&apos;s done currently.

Food for thought :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>941282</commentid>
    <comment_count>1</comment_count>
    <who name="Nick Diego Yamane (diegoyam)">nick.diego</who>
    <bug_when>2013-10-18 11:33:42 -0700</bug_when>
    <thetext>(In reply to comment #0)
&gt; With GStreamer 1.2 at least. We now need to send downstream stream-start, caps and segment events along with the first buffers. I started a patch...
&gt; 
&gt; Perhaps it would be good to rework the whole playback pipeline:

Nice :)

Any chance to make it so that it can be integrated with mediastream pipeline (ongoing work - central pipeline unit) ?

&gt; - make webkitwebsrc a basesrc sub-class
&gt; - one webkitwebsrc per WebAudio bus channel
&gt; - handle interleaving and wavenc in the pipeline, not in the src element like it&apos;s done currently.
&gt; 
&gt; Food for thought :)

Thanks</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>941793</commentid>
    <comment_count>2</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2013-10-21 02:55:05 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; (In reply to comment #0)
&gt; &gt; With GStreamer 1.2 at least. We now need to send downstream stream-start, caps and segment events along with the first buffers. I started a patch...
&gt; &gt; 
&gt; &gt; Perhaps it would be good to rework the whole playback pipeline:
&gt; 
&gt; Nice :)
&gt; 
&gt; Any chance to make it so that it can be integrated with mediastream pipeline (ongoing work - central pipeline unit) ?
&gt; 

I thought you were working on mediastream support? :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>941953</commentid>
    <comment_count>3</comment_count>
    <who name="Nick Diego Yamane (diegoyam)">nick.diego</who>
    <bug_when>2013-10-21 12:02:28 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (In reply to comment #1)
&gt; &gt; (In reply to comment #0)
&gt; &gt; &gt; With GStreamer 1.2 at least. We now need to send downstream stream-start, caps and segment events along with the first buffers. I started a patch...
&gt; &gt; &gt; 
&gt; &gt; &gt; Perhaps it would be good to rework the whole playback pipeline:
&gt; &gt; 
&gt; &gt; Nice :)
&gt; &gt; 
&gt; &gt; Any chance to make it so that it can be integrated with mediastream pipeline (ongoing work - central pipeline unit) ?
&gt; &gt; 
&gt; 
&gt; I thought you were working on mediastream support? :)

Yes, we are. But currently there is no integration between webaudio/mediastream pipelines.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>944450</commentid>
    <comment_count>4</comment_count>
      <attachid>215393</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2013-10-29 09:38:02 -0700</bug_when>
    <thetext>Created attachment 215393
wip patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>948673</commentid>
    <comment_count>5</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2013-11-08 08:40:45 -0800</bug_when>
    <thetext>I reported this in GStreamer&apos;s bugzilla: https://bugzilla.gnome.org/show_bug.cgi?id=711699

OTOH the warnings emitted because our element doesn&apos;t send the events are not fatal but It&apos;d be good to fix anyway.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>949226</commentid>
    <comment_count>6</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2013-11-11 00:08:34 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; I reported this in GStreamer&apos;s bugzilla: https://bugzilla.gnome.org/show_bug.cgi?id=711699
&gt; 

That was fixed and shipped in gst 1.2.1.

&gt; OTOH the warnings emitted because our element doesn&apos;t send the events are not fatal but It&apos;d be good to fix anyway.

I&apos;ll update the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>949231</commentid>
    <comment_count>7</comment_count>
      <attachid>215393</attachid>
    <who name="Sergio Correia (qrwteyrutiyoup)">sergio</who>
    <bug_when>2013-11-11 00:29:38 -0800</bug_when>
    <thetext>Comment on attachment 215393
wip patch

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

&gt; Source/WebCore/platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:402
&gt; +            gchar* queueName = gst_element_get_name(queue);

Maybe you can use GOwnPtr here?

&gt; Source/WebCore/platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:403
&gt; +            gchar* stream_id = g_strdup_printf(&quot;webaudio/%s&quot;, queueName);

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>949232</commentid>
    <comment_count>8</comment_count>
      <attachid>216549</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2013-11-11 00:48:40 -0800</bug_when>
    <thetext>Created attachment 216549
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>949233</commentid>
    <comment_count>9</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2013-11-11 00:51:31 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 215393 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=215393&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:402
&gt; &gt; +            gchar* queueName = gst_element_get_name(queue);
&gt; 
&gt; Maybe you can use GOwnPtr here?
&gt; 
&gt; &gt; Source/WebCore/platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:403
&gt; &gt; +            gchar* stream_id = g_strdup_printf(&quot;webaudio/%s&quot;, queueName);
&gt; 
&gt; Ditto.

That was a WiP patch, not really worth a review, but yes it had a comment about using smart pointers :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>949234</commentid>
    <comment_count>10</comment_count>
      <attachid>216549</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-11-11 00:54:29 -0800</bug_when>
    <thetext>Comment on attachment 216549
patch

Attachment 216549 did not pass efl-ews (efl):
Output: http://webkit-queues.appspot.com/results/22369306</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>949236</commentid>
    <comment_count>11</comment_count>
      <attachid>216550</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2013-11-11 00:56:45 -0800</bug_when>
    <thetext>Created attachment 216550
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>951641</commentid>
    <comment_count>12</comment_count>
      <attachid>216550</attachid>
    <who name="Sebastian Dröge (slomo)">slomo</who>
    <bug_when>2013-11-18 09:53:10 -0800</bug_when>
    <thetext>Comment on attachment 216550
patch

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

Looks good overall IMHO

&gt; Source/WebCore/platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:213
&gt; +    gst_segment_init(priv-&gt;segment, GST_FORMAT_TIME);

You can directly store the segment in the WebKitWebAudioSourcePrivate. No need for another allocation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>952003</commentid>
    <comment_count>13</comment_count>
      <attachid>217279</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2013-11-19 01:36:15 -0800</bug_when>
    <thetext>Created attachment 217279
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>957184</commentid>
    <comment_count>14</comment_count>
      <attachid>217279</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2013-12-06 01:58:52 -0800</bug_when>
    <thetext>Comment on attachment 217279
patch

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

&gt; Source/WebCore/platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:408
&gt; +            GRefPtr&lt;GstElement&gt; queue = gst_pad_get_parent_element(pad);

From http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html, it appears this method returns a fresh reference, so it seems this should be adoptGRef.

&gt; Source/WebCore/platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:409
&gt; +            GRefPtr&lt;GstPad&gt; sinkPad = gst_element_get_static_pad(queue.get(), &quot;sink&quot;);

Ditto.

&gt; Source/WebCore/platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:412
&gt; +            GstEvent* event = gst_event_new_stream_start(streamId.get());

Maybe call this streamStartEvent, just for clarity?

&gt; Source/WebCore/platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:422
&gt; +            GRefPtr&lt;GstCaps&gt; caps = adoptGRef(gst_audio_info_to_caps(&amp;info));

capsWithChannelPosition?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>957193</commentid>
    <comment_count>15</comment_count>
      <attachid>218584</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2013-12-06 02:45:35 -0800</bug_when>
    <thetext>Created attachment 218584
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>957194</commentid>
    <comment_count>16</comment_count>
      <attachid>218584</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2013-12-06 03:01:53 -0800</bug_when>
    <thetext>Comment on attachment 218584
patch

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

&gt; Source/WebCore/platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:266
&gt;  
&gt; +    gst_segment_free(&amp;priv-&gt;segment);
&gt; +

It&apos;s probably a good idea to switch to a smart pointer here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>957195</commentid>
    <comment_count>17</comment_count>
      <attachid>218584</attachid>
    <who name="Sebastian Dröge (slomo)">slomo</who>
    <bug_when>2013-12-06 03:04:14 -0800</bug_when>
    <thetext>Comment on attachment 218584
patch

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

&gt;&gt; Source/WebCore/platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:266
&gt;&gt; +
&gt; 
&gt; It&apos;s probably a good idea to switch to a smart pointer here.

Also this will crash because you free some random memory that you didn&apos;t allocate ;) Just don&apos;t do anything here, the segment does not have any extra allocations</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>957197</commentid>
    <comment_count>18</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2013-12-06 03:09:02 -0800</bug_when>
    <thetext>OMG uncomfortable moment here. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>957199</commentid>
    <comment_count>19</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2013-12-06 03:17:36 -0800</bug_when>
    <thetext>Committed r160216: &lt;http://trac.webkit.org/changeset/160216&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>215393</attachid>
            <date>2013-10-29 09:38:02 -0700</date>
            <delta_ts>2013-11-11 00:48:40 -0800</delta_ts>
            <desc>wip patch</desc>
            <filename>wip-patch.patch</filename>
            <type>text/plain</type>
            <size>3440</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSA4NmFlNTljMTFmOTc1ZDAyNWZjMTZmMDAyM2JkMjAyMTNkZWIxNjc1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBUdWUsIDI5IE9jdCAyMDEzIDE3OjM3OjM4ICswMTAwClN1YmplY3Q6IFtQQVRDSF0g
d2lwIHBhdGNoCgotLS0KIC4uLi9nc3RyZWFtZXIvV2ViS2l0V2ViQXVkaW9Tb3VyY2VHU3RyZWFt
ZXIuY3BwICAgIHwgMzUgKysrKysrKysrKysrKysrKysrKysrLQogMSBmaWxlIGNoYW5nZWQsIDM0
IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvV2ViS2l0V2ViQXVkaW9Tb3VyY2VHU3RyZWFtZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL1dlYktpdFdlYkF1
ZGlvU291cmNlR1N0cmVhbWVyLmNwcAppbmRleCA1NWRiZWQ0Li41NjE0NjQ0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvV2ViS2l0V2ViQXVkaW9T
b3VyY2VHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dz
dHJlYW1lci9XZWJLaXRXZWJBdWRpb1NvdXJjZUdTdHJlYW1lci5jcHAKQEAgLTczLDYgKzczLDkg
QEAgc3RydWN0IF9XZWJLaXRXZWJBdWRpb1NvdXJjZVByaXZhdGUgewogCiAgICAgR1NMaXN0KiBw
YWRzOyAvLyBMaXN0IG9mIHF1ZXVlIHNpbmsgcGFkcy4gT25lIHF1ZXVlIGZvciBlYWNoIHBsYW5h
ciBhdWRpbyBjaGFubmVsLgogICAgIEdzdFBhZCogc291cmNlUGFkOyAvLyBzcmMgcGFkIG9mIHRo
ZSBlbGVtZW50LCBpbnRlcmxlYXZlZCB3YXYgZGF0YSBpcyBwdXNoZWQgdG8gaXQuCisKKyAgICBi
b29sIG5ld1N0cmVhbUV2ZW50UGVuZGluZzsKKyAgICBHc3RTZWdtZW50KiBzZWdtZW50OwogfTsK
IAogZW51bSB7CkBAIC0yMDUsNiArMjA4LDEwIEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfYXVk
aW9fc3JjX2luaXQoV2ViS2l0V2ViQXVkaW9TcmMqIHNyYykKICAgICBwcml2LT5wcm92aWRlciA9
IDA7CiAgICAgcHJpdi0+YnVzID0gMDsKIAorICAgIHByaXYtPm5ld1N0cmVhbUV2ZW50UGVuZGlu
ZyA9IHRydWU7CisgICAgcHJpdi0+c2VnbWVudCA9IGdzdF9zZWdtZW50X25ldygpOworICAgIGdz
dF9zZWdtZW50X2luaXQocHJpdi0+c2VnbWVudCwgR1NUX0ZPUk1BVF9USU1FKTsKKwogI2lmZGVm
IEdTVF9BUElfVkVSU0lPTl8xCiAgICAgZ19yZWNfbXV0ZXhfaW5pdCgmcHJpdi0+bXV0ZXgpOwog
ICAgIHByaXYtPnRhc2sgPSBnc3RfdGFza19uZXcocmVpbnRlcnByZXRfY2FzdDxHc3RUYXNrRnVu
Y3Rpb24+KHdlYktpdFdlYkF1ZGlvU3JjTG9vcCksIHNyYywgMCk7CkBAIC0zODcsMTEgKzM5NCwz
NyBAQCBzdGF0aWMgdm9pZCB3ZWJLaXRXZWJBdWRpb1NyY0xvb3AoV2ViS2l0V2ViQXVkaW9TcmMq
IHNyYykKICAgICAgICAgZ3N0X2J1ZmZlcl9zZXRfY2FwcyhjaGFubmVsQnVmZmVyLCBtb25vQ2Fw
cy5nZXQoKSk7CiAjZW5kaWYKIAorICAgICAgICAvLyBTZW5kIHN0cmVhbS1zdGFydCwgc2VnbWVu
dCBhbmQgY2FwcyBldmVudHMgZG93bnN0cmVhbSwgYWxvbmcgd2l0aCB0aGUgZmlyc3QgYnVmZmVy
LgorICAgICAgICBpZiAocHJpdi0+bmV3U3RyZWFtRXZlbnRQZW5kaW5nKSB7CisgICAgICAgICAg
ICAvLyBUT0RPOiBSZWZQdHJzLCBSZWZQdHJzIGV2ZXJ5d2hlcmUuLi4KKyAgICAgICAgICAgIEdz
dEVsZW1lbnQqIHF1ZXVlID0gZ3N0X3BhZF9nZXRfcGFyZW50X2VsZW1lbnQocGFkKTsKKyAgICAg
ICAgICAgIEdzdFBhZCogc2lua1BhZCA9IGdzdF9lbGVtZW50X2dldF9zdGF0aWNfcGFkKHF1ZXVl
LCAic2luayIpOworICAgICAgICAgICAgZ2NoYXIqIHF1ZXVlTmFtZSA9IGdzdF9lbGVtZW50X2dl
dF9uYW1lKHF1ZXVlKTsKKyAgICAgICAgICAgIGdjaGFyKiBzdHJlYW1faWQgPSBnX3N0cmR1cF9w
cmludGYoIndlYmF1ZGlvLyVzIiwgcXVldWVOYW1lKTsKKyAgICAgICAgICAgIEdzdEV2ZW50KiBl
dmVudCA9IGdzdF9ldmVudF9uZXdfc3RyZWFtX3N0YXJ0IChzdHJlYW1faWQpOworICAgICAgICAg
ICAgZ3N0X3BhZF9zZW5kX2V2ZW50KHNpbmtQYWQsIGV2ZW50KTsKKyAgICAgICAgICAgIEdSZWZQ
dHI8R3N0Q2Fwcz4gbW9ub0NhcHMgPSBhZG9wdEdSZWYoZ2V0R1N0cmVhbWVyTW9ub0F1ZGlvQ2Fw
cyhwcml2LT5zYW1wbGVSYXRlKSk7CisgICAgICAgICAgICBHc3RBdWRpb0luZm8gaW5mbzsKKyAg
ICAgICAgICAgIGdzdF9hdWRpb19pbmZvX2Zyb21fY2FwcygmaW5mbywgbW9ub0NhcHMuZ2V0KCkp
OworICAgICAgICAgICAgR1NUX0FVRElPX0lORk9fUE9TSVRJT04oJmluZm8sIDApID0gd2ViS2l0
V2ViQXVkaW9HU3RyZWFtZXJDaGFubmVsUG9zaXRpb24oaSk7CisgICAgICAgICAgICBHUmVmUHRy
PEdzdENhcHM+IGNhcHMgPSBhZG9wdEdSZWYoZ3N0X2F1ZGlvX2luZm9fdG9fY2FwcygmaW5mbykp
OworICAgICAgICAgICAgR3N0RXZlbnQqIGNhcHNFdmVudCA9IGdzdF9ldmVudF9uZXdfY2Fwcyhj
YXBzLmdldCgpKTsKKyAgICAgICAgICAgIGdzdF9wYWRfc2VuZF9ldmVudChzaW5rUGFkLCBjYXBz
RXZlbnQpOworICAgICAgICAgICAgR3N0RXZlbnQqIHNlZ21lbnRFdmVudCA9IGdzdF9ldmVudF9u
ZXdfc2VnbWVudChwcml2LT5zZWdtZW50KTsKKyAgICAgICAgICAgIGdzdF9wYWRfc2VuZF9ldmVu
dChzaW5rUGFkLCBzZWdtZW50RXZlbnQpOworICAgICAgICAgICAgZ19mcmVlIChzdHJlYW1faWQp
OworICAgICAgICAgICAgZ19mcmVlIChxdWV1ZU5hbWUpOworICAgICAgICAgICAgZ3N0X29iamVj
dF91bnJlZihxdWV1ZSk7CisgICAgICAgICAgICBnc3Rfb2JqZWN0X3VucmVmKHNpbmtQYWQpOwor
ICAgICAgICB9CisKICAgICAgICAgR3N0Rmxvd1JldHVybiByZXQgPSBnc3RfcGFkX2NoYWluKHBh
ZCwgY2hhbm5lbEJ1ZmZlcik7CiAgICAgICAgIGlmIChyZXQgIT0gR1NUX0ZMT1dfT0spCi0gICAg
ICAgICAgICBHU1RfRUxFTUVOVF9FUlJPUihzcmMsIENPUkUsIFBBRCwgKCJJbnRlcm5hbCBXZWJB
dWRpb1NyYyBlcnJvciIpLCAoIkZhaWxlZCB0byBwdXNoIGJ1ZmZlciBvbiAlczolcyIsIEdTVF9E
RUJVR19QQURfTkFNRShwYWQpKSk7CisgICAgICAgICAgICBHU1RfRUxFTUVOVF9FUlJPUihzcmMs
IENPUkUsIFBBRCwgKCJJbnRlcm5hbCBXZWJBdWRpb1NyYyBlcnJvciIpLCAoIkZhaWxlZCB0byBw
dXNoIGJ1ZmZlciBvbiAlczolcyBmbG93OiAlcyIsIEdTVF9ERUJVR19QQURfTkFNRShwYWQpLCBn
c3RfZmxvd19nZXRfbmFtZShyZXQpKSk7CiAgICAgfQogCisgICAgcHJpdi0+bmV3U3RyZWFtRXZl
bnRQZW5kaW5nID0gZmFsc2U7CisKICAgICBnX3NsaXN0X2ZyZWUoY2hhbm5lbEJ1ZmZlckxpc3Qp
OwogfQogCi0tIAoxLjguNC5yYzM=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>216549</attachid>
            <date>2013-11-11 00:48:40 -0800</date>
            <delta_ts>2013-11-11 00:56:45 -0800</delta_ts>
            <desc>patch</desc>
            <filename>patch.patch</filename>
            <type>text/plain</type>
            <size>6206</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSBkODY0Zjk0N2Q2OWJkNDljNTYxMzYxN2U5NmUzYTNkNTExYzFmZDE1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBNb24sIDExIE5vdiAyMDEzIDA5OjI0OjI2ICswMTAwClN1YmplY3Q6IFtQQVRDSF0g
cGF0Y2gKCi0tLQogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfCAxOSArKysrKysrKysrCiAuLi4vZ3N0cmVhbWVyL1dlYktpdFdlYkF1ZGlvU291cmNl
R1N0cmVhbWVyLmNwcCAgICB8IDQ0ICsrKysrKysrKysrKysrKysrKysrKy0KIDIgZmlsZXMgY2hh
bmdlZCwgNjEgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjg4
NmJmNS4uYTkxOWU3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEzLTExLTExICBQ
aGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1N0cmVh
bWVyXSB3ZWJraXR3ZWJhdWRpb3NyYyBlbGVtZW50IG5lZWRzIHRvIGVtaXQgc3RyZWFtLXN0YXJ0
LCBjYXBzIGFuZCBzZWdtZW50IGV2ZW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTIzMDE1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgV2hlbiB0aGUgc291cmNlIGVsZW1lbnQgc3RhcnRzIGVtaXR0aW5n
IGJ1ZmZlcnMgc2VuZCBhbG9uZyB2YXJpb3VzCisgICAgICAgIGV2ZW50cyB0byBub3RpZnkgZG93
bnN0cmVhbSBlbGVtZW50cy4KKworICAgICAgICBObyBuZXcgdGVzdHMsIGNoYW5nZSBjb3ZlcmVk
IGJ5IGV4aXN0aW5nIHdlYmF1ZGlvIHRlc3RzLgorCisgICAgICAgICogcGxhdGZvcm0vYXVkaW8v
Z3N0cmVhbWVyL1dlYktpdFdlYkF1ZGlvU291cmNlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKHdl
YmtpdF93ZWJfYXVkaW9fc3JjX2luaXQpOiBJbml0aWFsaXplIHNlZ21lbnQuCisgICAgICAgICh3
ZWJLaXRXZWJBdWRpb1NyY0NvbnN0cnVjdGVkKTogR2l2ZSBhbiBleHBsaWNpdCBuYW1lIHRvIGVh
Y2gKKyAgICAgICAgcXVldWUgYWRkZWQgaW4gZnJvbnQgb2YgdGhlIGludGVybGVhdmUgZWxlbWVu
dC4KKyAgICAgICAgKHdlYktpdFdlYkF1ZGlvU3JjTG9vcCk6IEJlZm9yZSBzZW5kaW5nIHRoZSBm
aXJzdCBidWZmZXJzIHB1c2gKKyAgICAgICAgc3RyZWFtLXN0YXJ0LCBjYXBzIGFuZCBzZWdtZW50
IGV2ZW50cyBvbiBlYWNoIHF1ZXVlJ3Mgc2lua3BhZC4KKwogMjAxMy0xMS0xMCAgQW5kcmVhcyBL
bGluZyAgPGFrbGluZ0BhcHBsZS5jb20+CiAKICAgICAgICAgU2hyaW5rIFJlbmRlcklubGluZS4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9XZWJL
aXRXZWJBdWRpb1NvdXJjZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9nc3RyZWFtZXIvV2ViS2l0V2ViQXVkaW9Tb3VyY2VHU3RyZWFtZXIuY3BwCmluZGV4IDU1
ZGJlZDQuLjRiZTJlZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L2dzdHJlYW1lci9XZWJLaXRXZWJBdWRpb1NvdXJjZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL1dlYktpdFdlYkF1ZGlvU291cmNlR1N0
cmVhbWVyLmNwcApAQCAtNzMsNiArNzMsOSBAQCBzdHJ1Y3QgX1dlYktpdFdlYkF1ZGlvU291cmNl
UHJpdmF0ZSB7CiAKICAgICBHU0xpc3QqIHBhZHM7IC8vIExpc3Qgb2YgcXVldWUgc2luayBwYWRz
LiBPbmUgcXVldWUgZm9yIGVhY2ggcGxhbmFyIGF1ZGlvIGNoYW5uZWwuCiAgICAgR3N0UGFkKiBz
b3VyY2VQYWQ7IC8vIHNyYyBwYWQgb2YgdGhlIGVsZW1lbnQsIGludGVybGVhdmVkIHdhdiBkYXRh
IGlzIHB1c2hlZCB0byBpdC4KKworICAgIGJvb2wgbmV3U3RyZWFtRXZlbnRQZW5kaW5nOworICAg
IEdzdFNlZ21lbnQqIHNlZ21lbnQ7CiB9OwogCiBlbnVtIHsKQEAgLTIwNSw2ICsyMDgsMTAgQEAg
c3RhdGljIHZvaWQgd2Via2l0X3dlYl9hdWRpb19zcmNfaW5pdChXZWJLaXRXZWJBdWRpb1NyYyog
c3JjKQogICAgIHByaXYtPnByb3ZpZGVyID0gMDsKICAgICBwcml2LT5idXMgPSAwOwogCisgICAg
cHJpdi0+bmV3U3RyZWFtRXZlbnRQZW5kaW5nID0gdHJ1ZTsKKyAgICBwcml2LT5zZWdtZW50ID0g
Z3N0X3NlZ21lbnRfbmV3KCk7CisgICAgZ3N0X3NlZ21lbnRfaW5pdChwcml2LT5zZWdtZW50LCBH
U1RfRk9STUFUX1RJTUUpOworCiAjaWZkZWYgR1NUX0FQSV9WRVJTSU9OXzEKICAgICBnX3JlY19t
dXRleF9pbml0KCZwcml2LT5tdXRleCk7CiAgICAgcHJpdi0+dGFzayA9IGdzdF90YXNrX25ldyhy
ZWludGVycHJldF9jYXN0PEdzdFRhc2tGdW5jdGlvbj4od2ViS2l0V2ViQXVkaW9TcmNMb29wKSwg
c3JjLCAwKTsKQEAgLTI0NCw3ICsyNTEsOCBAQCBzdGF0aWMgdm9pZCB3ZWJLaXRXZWJBdWRpb1Ny
Y0NvbnN0cnVjdGVkKEdPYmplY3QqIG9iamVjdCkKICAgICAvLyBGb3IgZWFjaCBjaGFubmVsIG9m
IHRoZSBidXMgY3JlYXRlIGEgbmV3IHVwc3RyZWFtIGJyYW5jaCBmb3IgaW50ZXJsZWF2ZSwgbGlr
ZToKICAgICAvLyBxdWV1ZSAhIGNhcHNmaWx0ZXIgISBhdWRpb2NvbnZlcnQuIHdoaWNoIGlzIHBs
dWdnZWQgdG8gYSBuZXcgaW50ZXJsZWF2ZSByZXF1ZXN0IHNpbmtwYWQuCiAgICAgZm9yICh1bnNp
Z25lZCBjaGFubmVsSW5kZXggPSAwOyBjaGFubmVsSW5kZXggPCBwcml2LT5idXMtPm51bWJlck9m
Q2hhbm5lbHMoKTsgY2hhbm5lbEluZGV4KyspIHsKLSAgICAgICAgR3N0RWxlbWVudCogcXVldWUg
PSBnc3RfZWxlbWVudF9mYWN0b3J5X21ha2UoInF1ZXVlIiwgMCk7CisgICAgICAgIEdPd25QdHI8
Z2NoYXI+IHF1ZXVlTmFtZShnX3N0cmR1cF9wcmludGYoIndlYmF1ZGlvUXVldWUldSIsIGNoYW5u
ZWxJbmRleCkpOworICAgICAgICBHc3RFbGVtZW50KiBxdWV1ZSA9IGdzdF9lbGVtZW50X2ZhY3Rv
cnlfbWFrZSgicXVldWUiLCBxdWV1ZU5hbWUuZ2V0KCkpOwogICAgICAgICBHc3RFbGVtZW50KiBj
YXBzZmlsdGVyID0gZ3N0X2VsZW1lbnRfZmFjdG9yeV9tYWtlKCJjYXBzZmlsdGVyIiwgMCk7CiAg
ICAgICAgIEdzdEVsZW1lbnQqIGF1ZGlvY29udmVydCA9IGdzdF9lbGVtZW50X2ZhY3RvcnlfbWFr
ZSgiYXVkaW9jb252ZXJ0IiwgMCk7CiAKQEAgLTM3NSw2ICszODMsMTMgQEAgc3RhdGljIHZvaWQg
d2ViS2l0V2ViQXVkaW9TcmNMb29wKFdlYktpdFdlYkF1ZGlvU3JjKiBzcmMpCiAKICAgICBHU0xp
c3QqIHBhZHNJdCA9IHByaXYtPnBhZHM7CiAgICAgR1NMaXN0KiBidWZmZXJzSXQgPSBjaGFubmVs
QnVmZmVyTGlzdDsKKworI2lmIEdTVF9DSEVDS19WRVJTSU9OKDEsIDIsIDApCisgICAgZ3VpbnQg
Z3JvdXBJZCA9IDA7CisgICAgaWYgKHByaXYtPm5ld1N0cmVhbUV2ZW50UGVuZGluZykKKyAgICAg
ICAgZ3JvdXBJZCA9IGdzdF91dGlsX2dyb3VwX2lkX25leHQoKTsKKyNlbmRpZgorCiAgICAgZm9y
IChpID0gMDsgcGFkc0l0ICYmIGJ1ZmZlcnNJdDsgcGFkc0l0ID0gZ19zbGlzdF9uZXh0KHBhZHNJ
dCksIGJ1ZmZlcnNJdCA9IGdfc2xpc3RfbmV4dChidWZmZXJzSXQpLCArK2kpIHsKICAgICAgICAg
R3N0UGFkKiBwYWQgPSBzdGF0aWNfY2FzdDxHc3RQYWQqPihwYWRzSXQtPmRhdGEpOwogICAgICAg
ICBHc3RCdWZmZXIqIGNoYW5uZWxCdWZmZXIgPSBzdGF0aWNfY2FzdDxHc3RCdWZmZXIqPihidWZm
ZXJzSXQtPmRhdGEpOwpAQCAtMzg3LDExICs0MDIsMzUgQEAgc3RhdGljIHZvaWQgd2ViS2l0V2Vi
QXVkaW9TcmNMb29wKFdlYktpdFdlYkF1ZGlvU3JjKiBzcmMpCiAgICAgICAgIGdzdF9idWZmZXJf
c2V0X2NhcHMoY2hhbm5lbEJ1ZmZlciwgbW9ub0NhcHMuZ2V0KCkpOwogI2VuZGlmCiAKKyAgICAg
ICAgLy8gU2VuZCBzdHJlYW0tc3RhcnQsIHNlZ21lbnQgYW5kIGNhcHMgZXZlbnRzIGRvd25zdHJl
YW0sIGFsb25nIHdpdGggdGhlIGZpcnN0IGJ1ZmZlci4KKyAgICAgICAgaWYgKHByaXYtPm5ld1N0
cmVhbUV2ZW50UGVuZGluZykgeworICAgICAgICAgICAgR1JlZlB0cjxHc3RFbGVtZW50PiBxdWV1
ZSA9IGdzdF9wYWRfZ2V0X3BhcmVudF9lbGVtZW50KHBhZCk7CisgICAgICAgICAgICBHUmVmUHRy
PEdzdFBhZD4gc2lua1BhZCA9IGdzdF9lbGVtZW50X2dldF9zdGF0aWNfcGFkKHF1ZXVlLmdldCgp
LCAic2luayIpOworICAgICAgICAgICAgR093blB0cjxnY2hhcj4gcXVldWVOYW1lKGdzdF9lbGVt
ZW50X2dldF9uYW1lKHF1ZXVlLmdldCgpKSk7CisgICAgICAgICAgICBHT3duUHRyPGdjaGFyPiBz
dHJlYW1JZChnX3N0cmR1cF9wcmludGYoIndlYmF1ZGlvLyVzIiwgcXVldWVOYW1lLmdldCgpKSk7
CisgICAgICAgICAgICBHc3RFdmVudCogZXZlbnQgPSBnc3RfZXZlbnRfbmV3X3N0cmVhbV9zdGFy
dChzdHJlYW1JZC5nZXQoKSk7CisjaWYgR1NUX0NIRUNLX1ZFUlNJT04oMSwgMiwgMCkKKyAgICAg
ICAgICAgIGdzdF9ldmVudF9zZXRfZ3JvdXBfaWQoZXZlbnQsIGdyb3VwSWQpOworI2VuZGlmCisg
ICAgICAgICAgICBnc3RfcGFkX3NlbmRfZXZlbnQoc2lua1BhZC5nZXQoKSwgZXZlbnQpOworCisg
ICAgICAgICAgICBHUmVmUHRyPEdzdENhcHM+IG1vbm9DYXBzID0gYWRvcHRHUmVmKGdldEdTdHJl
YW1lck1vbm9BdWRpb0NhcHMocHJpdi0+c2FtcGxlUmF0ZSkpOworICAgICAgICAgICAgR3N0QXVk
aW9JbmZvIGluZm87CisgICAgICAgICAgICBnc3RfYXVkaW9faW5mb19mcm9tX2NhcHMoJmluZm8s
IG1vbm9DYXBzLmdldCgpKTsKKyAgICAgICAgICAgIEdTVF9BVURJT19JTkZPX1BPU0lUSU9OKCZp
bmZvLCAwKSA9IHdlYktpdFdlYkF1ZGlvR1N0cmVhbWVyQ2hhbm5lbFBvc2l0aW9uKGkpOworICAg
ICAgICAgICAgR1JlZlB0cjxHc3RDYXBzPiBjYXBzID0gYWRvcHRHUmVmKGdzdF9hdWRpb19pbmZv
X3RvX2NhcHMoJmluZm8pKTsKKyAgICAgICAgICAgIGdzdF9wYWRfc2VuZF9ldmVudChzaW5rUGFk
LmdldCgpLCBnc3RfZXZlbnRfbmV3X2NhcHMoY2Fwcy5nZXQoKSkpOworCisgICAgICAgICAgICBn
c3RfcGFkX3NlbmRfZXZlbnQoc2lua1BhZC5nZXQoKSwgZ3N0X2V2ZW50X25ld19zZWdtZW50KHBy
aXYtPnNlZ21lbnQpKTsKKyAgICAgICAgfQorCiAgICAgICAgIEdzdEZsb3dSZXR1cm4gcmV0ID0g
Z3N0X3BhZF9jaGFpbihwYWQsIGNoYW5uZWxCdWZmZXIpOwogICAgICAgICBpZiAocmV0ICE9IEdT
VF9GTE9XX09LKQotICAgICAgICAgICAgR1NUX0VMRU1FTlRfRVJST1Ioc3JjLCBDT1JFLCBQQUQs
ICgiSW50ZXJuYWwgV2ViQXVkaW9TcmMgZXJyb3IiKSwgKCJGYWlsZWQgdG8gcHVzaCBidWZmZXIg
b24gJXM6JXMiLCBHU1RfREVCVUdfUEFEX05BTUUocGFkKSkpOworICAgICAgICAgICAgR1NUX0VM
RU1FTlRfRVJST1Ioc3JjLCBDT1JFLCBQQUQsICgiSW50ZXJuYWwgV2ViQXVkaW9TcmMgZXJyb3Ii
KSwgKCJGYWlsZWQgdG8gcHVzaCBidWZmZXIgb24gJXM6JXMgZmxvdzogJXMiLCBHU1RfREVCVUdf
UEFEX05BTUUocGFkKSwgZ3N0X2Zsb3dfZ2V0X25hbWUocmV0KSkpOwogICAgIH0KIAorICAgIHBy
aXYtPm5ld1N0cmVhbUV2ZW50UGVuZGluZyA9IGZhbHNlOworCiAgICAgZ19zbGlzdF9mcmVlKGNo
YW5uZWxCdWZmZXJMaXN0KTsKIH0KIApAQCAtNDMwLDYgKzQ2OSw3IEBAIHN0YXRpYyBHc3RTdGF0
ZUNoYW5nZVJldHVybiB3ZWJLaXRXZWJBdWRpb1NyY0NoYW5nZVN0YXRlKEdzdEVsZW1lbnQqIGVs
ZW1lbnQsIEdzCiAgICAgICAgICAgICByZXR1cm5WYWx1ZSA9IEdTVF9TVEFURV9DSEFOR0VfRkFJ
TFVSRTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBHU1RfU1RBVEVfQ0hBTkdFX1BBVVNFRF9U
T19SRUFEWToKKyAgICAgICAgcHJpdi0+bmV3U3RyZWFtRXZlbnRQZW5kaW5nID0gdHJ1ZTsKICAg
ICAgICAgR1NUX0RFQlVHX09CSkVDVChzcmMsICJQQVVTRUQtPlJFQURZIik7CiAgICAgICAgIGlm
ICghZ3N0X3Rhc2tfam9pbihzcmMtPnByaXYtPnRhc2suZ2V0KCkpKQogICAgICAgICAgICAgcmV0
dXJuVmFsdWUgPSBHU1RfU1RBVEVfQ0hBTkdFX0ZBSUxVUkU7Ci0tIAoxLjguNC5yYzM=
</data>
<flag name="commit-queue"
          id="239531"
          type_id="3"
          status="-"
          setter="eflews.bot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>216550</attachid>
            <date>2013-11-11 00:56:45 -0800</date>
            <delta_ts>2013-11-19 01:36:15 -0800</delta_ts>
            <desc>patch</desc>
            <filename>patch.patch</filename>
            <type>text/plain</type>
            <size>6211</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSBlOTI0MmExNDEzZGFjYWYwY2FiMjBhZTkxMDgzMWNmMDQ2MTA1YjI0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBNb24sIDExIE5vdiAyMDEzIDA5OjI0OjI2ICswMTAwClN1YmplY3Q6IFtQQVRDSF0g
cGF0Y2gKCi0tLQogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfCAxOSArKysrKysrKysrCiAuLi4vZ3N0cmVhbWVyL1dlYktpdFdlYkF1ZGlvU291cmNl
R1N0cmVhbWVyLmNwcCAgICB8IDQ0ICsrKysrKysrKysrKysrKysrKysrKy0KIDIgZmlsZXMgY2hh
bmdlZCwgNjEgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjg4
NmJmNS4uYTkxOWU3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEzLTExLTExICBQ
aGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1N0cmVh
bWVyXSB3ZWJraXR3ZWJhdWRpb3NyYyBlbGVtZW50IG5lZWRzIHRvIGVtaXQgc3RyZWFtLXN0YXJ0
LCBjYXBzIGFuZCBzZWdtZW50IGV2ZW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTIzMDE1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgV2hlbiB0aGUgc291cmNlIGVsZW1lbnQgc3RhcnRzIGVtaXR0aW5n
IGJ1ZmZlcnMgc2VuZCBhbG9uZyB2YXJpb3VzCisgICAgICAgIGV2ZW50cyB0byBub3RpZnkgZG93
bnN0cmVhbSBlbGVtZW50cy4KKworICAgICAgICBObyBuZXcgdGVzdHMsIGNoYW5nZSBjb3ZlcmVk
IGJ5IGV4aXN0aW5nIHdlYmF1ZGlvIHRlc3RzLgorCisgICAgICAgICogcGxhdGZvcm0vYXVkaW8v
Z3N0cmVhbWVyL1dlYktpdFdlYkF1ZGlvU291cmNlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKHdl
YmtpdF93ZWJfYXVkaW9fc3JjX2luaXQpOiBJbml0aWFsaXplIHNlZ21lbnQuCisgICAgICAgICh3
ZWJLaXRXZWJBdWRpb1NyY0NvbnN0cnVjdGVkKTogR2l2ZSBhbiBleHBsaWNpdCBuYW1lIHRvIGVh
Y2gKKyAgICAgICAgcXVldWUgYWRkZWQgaW4gZnJvbnQgb2YgdGhlIGludGVybGVhdmUgZWxlbWVu
dC4KKyAgICAgICAgKHdlYktpdFdlYkF1ZGlvU3JjTG9vcCk6IEJlZm9yZSBzZW5kaW5nIHRoZSBm
aXJzdCBidWZmZXJzIHB1c2gKKyAgICAgICAgc3RyZWFtLXN0YXJ0LCBjYXBzIGFuZCBzZWdtZW50
IGV2ZW50cyBvbiBlYWNoIHF1ZXVlJ3Mgc2lua3BhZC4KKwogMjAxMy0xMS0xMCAgQW5kcmVhcyBL
bGluZyAgPGFrbGluZ0BhcHBsZS5jb20+CiAKICAgICAgICAgU2hyaW5rIFJlbmRlcklubGluZS4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9XZWJL
aXRXZWJBdWRpb1NvdXJjZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9nc3RyZWFtZXIvV2ViS2l0V2ViQXVkaW9Tb3VyY2VHU3RyZWFtZXIuY3BwCmluZGV4IDU1
ZGJlZDQuLjFjOTBkYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L2dzdHJlYW1lci9XZWJLaXRXZWJBdWRpb1NvdXJjZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL1dlYktpdFdlYkF1ZGlvU291cmNlR1N0
cmVhbWVyLmNwcApAQCAtNzMsNiArNzMsOSBAQCBzdHJ1Y3QgX1dlYktpdFdlYkF1ZGlvU291cmNl
UHJpdmF0ZSB7CiAKICAgICBHU0xpc3QqIHBhZHM7IC8vIExpc3Qgb2YgcXVldWUgc2luayBwYWRz
LiBPbmUgcXVldWUgZm9yIGVhY2ggcGxhbmFyIGF1ZGlvIGNoYW5uZWwuCiAgICAgR3N0UGFkKiBz
b3VyY2VQYWQ7IC8vIHNyYyBwYWQgb2YgdGhlIGVsZW1lbnQsIGludGVybGVhdmVkIHdhdiBkYXRh
IGlzIHB1c2hlZCB0byBpdC4KKworICAgIGJvb2wgbmV3U3RyZWFtRXZlbnRQZW5kaW5nOworICAg
IEdzdFNlZ21lbnQqIHNlZ21lbnQ7CiB9OwogCiBlbnVtIHsKQEAgLTIwNSw2ICsyMDgsMTAgQEAg
c3RhdGljIHZvaWQgd2Via2l0X3dlYl9hdWRpb19zcmNfaW5pdChXZWJLaXRXZWJBdWRpb1NyYyog
c3JjKQogICAgIHByaXYtPnByb3ZpZGVyID0gMDsKICAgICBwcml2LT5idXMgPSAwOwogCisgICAg
cHJpdi0+bmV3U3RyZWFtRXZlbnRQZW5kaW5nID0gdHJ1ZTsKKyAgICBwcml2LT5zZWdtZW50ID0g
Z3N0X3NlZ21lbnRfbmV3KCk7CisgICAgZ3N0X3NlZ21lbnRfaW5pdChwcml2LT5zZWdtZW50LCBH
U1RfRk9STUFUX1RJTUUpOworCiAjaWZkZWYgR1NUX0FQSV9WRVJTSU9OXzEKICAgICBnX3JlY19t
dXRleF9pbml0KCZwcml2LT5tdXRleCk7CiAgICAgcHJpdi0+dGFzayA9IGdzdF90YXNrX25ldyhy
ZWludGVycHJldF9jYXN0PEdzdFRhc2tGdW5jdGlvbj4od2ViS2l0V2ViQXVkaW9TcmNMb29wKSwg
c3JjLCAwKTsKQEAgLTI0NCw3ICsyNTEsOCBAQCBzdGF0aWMgdm9pZCB3ZWJLaXRXZWJBdWRpb1Ny
Y0NvbnN0cnVjdGVkKEdPYmplY3QqIG9iamVjdCkKICAgICAvLyBGb3IgZWFjaCBjaGFubmVsIG9m
IHRoZSBidXMgY3JlYXRlIGEgbmV3IHVwc3RyZWFtIGJyYW5jaCBmb3IgaW50ZXJsZWF2ZSwgbGlr
ZToKICAgICAvLyBxdWV1ZSAhIGNhcHNmaWx0ZXIgISBhdWRpb2NvbnZlcnQuIHdoaWNoIGlzIHBs
dWdnZWQgdG8gYSBuZXcgaW50ZXJsZWF2ZSByZXF1ZXN0IHNpbmtwYWQuCiAgICAgZm9yICh1bnNp
Z25lZCBjaGFubmVsSW5kZXggPSAwOyBjaGFubmVsSW5kZXggPCBwcml2LT5idXMtPm51bWJlck9m
Q2hhbm5lbHMoKTsgY2hhbm5lbEluZGV4KyspIHsKLSAgICAgICAgR3N0RWxlbWVudCogcXVldWUg
PSBnc3RfZWxlbWVudF9mYWN0b3J5X21ha2UoInF1ZXVlIiwgMCk7CisgICAgICAgIEdPd25QdHI8
Z2NoYXI+IHF1ZXVlTmFtZShnX3N0cmR1cF9wcmludGYoIndlYmF1ZGlvUXVldWUldSIsIGNoYW5u
ZWxJbmRleCkpOworICAgICAgICBHc3RFbGVtZW50KiBxdWV1ZSA9IGdzdF9lbGVtZW50X2ZhY3Rv
cnlfbWFrZSgicXVldWUiLCBxdWV1ZU5hbWUuZ2V0KCkpOwogICAgICAgICBHc3RFbGVtZW50KiBj
YXBzZmlsdGVyID0gZ3N0X2VsZW1lbnRfZmFjdG9yeV9tYWtlKCJjYXBzZmlsdGVyIiwgMCk7CiAg
ICAgICAgIEdzdEVsZW1lbnQqIGF1ZGlvY29udmVydCA9IGdzdF9lbGVtZW50X2ZhY3RvcnlfbWFr
ZSgiYXVkaW9jb252ZXJ0IiwgMCk7CiAKQEAgLTM3NSw2ICszODMsMTMgQEAgc3RhdGljIHZvaWQg
d2ViS2l0V2ViQXVkaW9TcmNMb29wKFdlYktpdFdlYkF1ZGlvU3JjKiBzcmMpCiAKICAgICBHU0xp
c3QqIHBhZHNJdCA9IHByaXYtPnBhZHM7CiAgICAgR1NMaXN0KiBidWZmZXJzSXQgPSBjaGFubmVs
QnVmZmVyTGlzdDsKKworI2lmIEdTVF9DSEVDS19WRVJTSU9OKDEsIDIsIDApCisgICAgZ3VpbnQg
Z3JvdXBJZCA9IDA7CisgICAgaWYgKHByaXYtPm5ld1N0cmVhbUV2ZW50UGVuZGluZykKKyAgICAg
ICAgZ3JvdXBJZCA9IGdzdF91dGlsX2dyb3VwX2lkX25leHQoKTsKKyNlbmRpZgorCiAgICAgZm9y
IChpID0gMDsgcGFkc0l0ICYmIGJ1ZmZlcnNJdDsgcGFkc0l0ID0gZ19zbGlzdF9uZXh0KHBhZHNJ
dCksIGJ1ZmZlcnNJdCA9IGdfc2xpc3RfbmV4dChidWZmZXJzSXQpLCArK2kpIHsKICAgICAgICAg
R3N0UGFkKiBwYWQgPSBzdGF0aWNfY2FzdDxHc3RQYWQqPihwYWRzSXQtPmRhdGEpOwogICAgICAg
ICBHc3RCdWZmZXIqIGNoYW5uZWxCdWZmZXIgPSBzdGF0aWNfY2FzdDxHc3RCdWZmZXIqPihidWZm
ZXJzSXQtPmRhdGEpOwpAQCAtMzg3LDExICs0MDIsMzUgQEAgc3RhdGljIHZvaWQgd2ViS2l0V2Vi
QXVkaW9TcmNMb29wKFdlYktpdFdlYkF1ZGlvU3JjKiBzcmMpCiAgICAgICAgIGdzdF9idWZmZXJf
c2V0X2NhcHMoY2hhbm5lbEJ1ZmZlciwgbW9ub0NhcHMuZ2V0KCkpOwogI2VuZGlmCiAKKyAgICAg
ICAgLy8gU2VuZCBzdHJlYW0tc3RhcnQsIHNlZ21lbnQgYW5kIGNhcHMgZXZlbnRzIGRvd25zdHJl
YW0sIGFsb25nIHdpdGggdGhlIGZpcnN0IGJ1ZmZlci4KKyAgICAgICAgaWYgKHByaXYtPm5ld1N0
cmVhbUV2ZW50UGVuZGluZykgeworICAgICAgICAgICAgR1JlZlB0cjxHc3RFbGVtZW50PiBxdWV1
ZSA9IGdzdF9wYWRfZ2V0X3BhcmVudF9lbGVtZW50KHBhZCk7CisgICAgICAgICAgICBHUmVmUHRy
PEdzdFBhZD4gc2lua1BhZCA9IGdzdF9lbGVtZW50X2dldF9zdGF0aWNfcGFkKHF1ZXVlLmdldCgp
LCAic2luayIpOworICAgICAgICAgICAgR093blB0cjxnY2hhcj4gcXVldWVOYW1lKGdzdF9lbGVt
ZW50X2dldF9uYW1lKHF1ZXVlLmdldCgpKSk7CisgICAgICAgICAgICBHT3duUHRyPGdjaGFyPiBz
dHJlYW1JZChnX3N0cmR1cF9wcmludGYoIndlYmF1ZGlvLyVzIiwgcXVldWVOYW1lLmdldCgpKSk7
CisgICAgICAgICAgICBHc3RFdmVudCogZXZlbnQgPSBnc3RfZXZlbnRfbmV3X3N0cmVhbV9zdGFy
dChzdHJlYW1JZC5nZXQoKSk7CisjaWYgR1NUX0NIRUNLX1ZFUlNJT04oMSwgMiwgMCkKKyAgICAg
ICAgICAgIGdzdF9ldmVudF9zZXRfZ3JvdXBfaWQoZXZlbnQsIGdyb3VwSWQpOworI2VuZGlmCisg
ICAgICAgICAgICBnc3RfcGFkX3NlbmRfZXZlbnQoc2lua1BhZC5nZXQoKSwgZXZlbnQpOworCisg
ICAgICAgICAgICBHUmVmUHRyPEdzdENhcHM+IG1vbm9DYXBzID0gYWRvcHRHUmVmKGdldEdTdHJl
YW1lck1vbm9BdWRpb0NhcHMocHJpdi0+c2FtcGxlUmF0ZSkpOworICAgICAgICAgICAgR3N0QXVk
aW9JbmZvIGluZm87CisgICAgICAgICAgICBnc3RfYXVkaW9faW5mb19mcm9tX2NhcHMoJmluZm8s
IG1vbm9DYXBzLmdldCgpKTsKKyAgICAgICAgICAgIEdTVF9BVURJT19JTkZPX1BPU0lUSU9OKCZp
bmZvLCAwKSA9IHdlYktpdFdlYkF1ZGlvR1N0cmVhbWVyQ2hhbm5lbFBvc2l0aW9uKGkpOworICAg
ICAgICAgICAgR1JlZlB0cjxHc3RDYXBzPiBjYXBzID0gYWRvcHRHUmVmKGdzdF9hdWRpb19pbmZv
X3RvX2NhcHMoJmluZm8pKTsKKyAgICAgICAgICAgIGdzdF9wYWRfc2VuZF9ldmVudChzaW5rUGFk
LmdldCgpLCBnc3RfZXZlbnRfbmV3X2NhcHMoY2Fwcy5nZXQoKSkpOworCisgICAgICAgICAgICBn
c3RfcGFkX3NlbmRfZXZlbnQoc2lua1BhZC5nZXQoKSwgZ3N0X2V2ZW50X25ld19zZWdtZW50KHBy
aXYtPnNlZ21lbnQpKTsKKyAgICAgICAgfQorCiAgICAgICAgIEdzdEZsb3dSZXR1cm4gcmV0ID0g
Z3N0X3BhZF9jaGFpbihwYWQsIGNoYW5uZWxCdWZmZXIpOwogICAgICAgICBpZiAocmV0ICE9IEdT
VF9GTE9XX09LKQotICAgICAgICAgICAgR1NUX0VMRU1FTlRfRVJST1Ioc3JjLCBDT1JFLCBQQUQs
ICgiSW50ZXJuYWwgV2ViQXVkaW9TcmMgZXJyb3IiKSwgKCJGYWlsZWQgdG8gcHVzaCBidWZmZXIg
b24gJXM6JXMiLCBHU1RfREVCVUdfUEFEX05BTUUocGFkKSkpOworICAgICAgICAgICAgR1NUX0VM
RU1FTlRfRVJST1Ioc3JjLCBDT1JFLCBQQUQsICgiSW50ZXJuYWwgV2ViQXVkaW9TcmMgZXJyb3Ii
KSwgKCJGYWlsZWQgdG8gcHVzaCBidWZmZXIgb24gJXM6JXMgZmxvdzogJXMiLCBHU1RfREVCVUdf
UEFEX05BTUUocGFkKSwgZ3N0X2Zsb3dfZ2V0X25hbWUocmV0KSkpOwogICAgIH0KIAorICAgIHBy
aXYtPm5ld1N0cmVhbUV2ZW50UGVuZGluZyA9IGZhbHNlOworCiAgICAgZ19zbGlzdF9mcmVlKGNo
YW5uZWxCdWZmZXJMaXN0KTsKIH0KIApAQCAtNDMwLDYgKzQ2OSw3IEBAIHN0YXRpYyBHc3RTdGF0
ZUNoYW5nZVJldHVybiB3ZWJLaXRXZWJBdWRpb1NyY0NoYW5nZVN0YXRlKEdzdEVsZW1lbnQqIGVs
ZW1lbnQsIEdzCiAgICAgICAgICAgICByZXR1cm5WYWx1ZSA9IEdTVF9TVEFURV9DSEFOR0VfRkFJ
TFVSRTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBHU1RfU1RBVEVfQ0hBTkdFX1BBVVNFRF9U
T19SRUFEWToKKyAgICAgICAgc3JjLT5wcml2LT5uZXdTdHJlYW1FdmVudFBlbmRpbmcgPSB0cnVl
OwogICAgICAgICBHU1RfREVCVUdfT0JKRUNUKHNyYywgIlBBVVNFRC0+UkVBRFkiKTsKICAgICAg
ICAgaWYgKCFnc3RfdGFza19qb2luKHNyYy0+cHJpdi0+dGFzay5nZXQoKSkpCiAgICAgICAgICAg
ICByZXR1cm5WYWx1ZSA9IEdTVF9TVEFURV9DSEFOR0VfRkFJTFVSRTsKLS0gCjEuOC40LnJjMw==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>217279</attachid>
            <date>2013-11-19 01:36:15 -0800</date>
            <delta_ts>2013-12-06 02:45:35 -0800</delta_ts>
            <desc>patch</desc>
            <filename>patch.patch</filename>
            <type>text/plain</type>
            <size>6508</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSA2YjM5ZWNhZDdjZGFiZjRmODBkZTdkMThmMjVmYWIyYWY0NGE0MjFkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBNb24sIDExIE5vdiAyMDEzIDA5OjI0OjI2ICswMTAwClN1YmplY3Q6IFtQQVRDSF0g
cGF0Y2gKCi0tLQogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfCAxOSArKysrKysrKysKIC4uLi9nc3RyZWFtZXIvV2ViS2l0V2ViQXVkaW9Tb3VyY2VH
U3RyZWFtZXIuY3BwICAgIHwgNDUgKysrKysrKysrKysrKysrKysrKysrLQogMiBmaWxlcyBjaGFu
Z2VkLCA2MiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBlN2M1
YWY2Li4wZGVjMmQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTMtMTEtMTEgIFBo
aWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgorCisgICAgICAgIFtHU3RyZWFt
ZXJdIHdlYmtpdHdlYmF1ZGlvc3JjIGVsZW1lbnQgbmVlZHMgdG8gZW1pdCBzdHJlYW0tc3RhcnQs
IGNhcHMgYW5kIHNlZ21lbnQgZXZlbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMjMwMTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBXaGVuIHRoZSBzb3VyY2UgZWxlbWVudCBzdGFydHMgZW1pdHRpbmcg
YnVmZmVycyBzZW5kIGFsb25nIHZhcmlvdXMKKyAgICAgICAgZXZlbnRzIHRvIG5vdGlmeSBkb3du
c3RyZWFtIGVsZW1lbnRzLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgY2hhbmdlIGNvdmVyZWQg
YnkgZXhpc3Rpbmcgd2ViYXVkaW8gdGVzdHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9n
c3RyZWFtZXIvV2ViS2l0V2ViQXVkaW9Tb3VyY2VHU3RyZWFtZXIuY3BwOgorICAgICAgICAod2Vi
a2l0X3dlYl9hdWRpb19zcmNfaW5pdCk6IEluaXRpYWxpemUgc2VnbWVudC4KKyAgICAgICAgKHdl
YktpdFdlYkF1ZGlvU3JjQ29uc3RydWN0ZWQpOiBHaXZlIGFuIGV4cGxpY2l0IG5hbWUgdG8gZWFj
aAorICAgICAgICBxdWV1ZSBhZGRlZCBpbiBmcm9udCBvZiB0aGUgaW50ZXJsZWF2ZSBlbGVtZW50
LgorICAgICAgICAod2ViS2l0V2ViQXVkaW9TcmNMb29wKTogQmVmb3JlIHNlbmRpbmcgdGhlIGZp
cnN0IGJ1ZmZlcnMgcHVzaAorICAgICAgICBzdHJlYW0tc3RhcnQsIGNhcHMgYW5kIHNlZ21lbnQg
ZXZlbnRzIG9uIGVhY2ggcXVldWUncyBzaW5rcGFkLgorCiAyMDEzLTExLTE4ICBDb21taXQgUXVl
dWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xs
aW5nIG91dCByMTU5NDU1LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vZ3N0cmVhbWVyL1dlYktpdFdlYkF1ZGlvU291cmNlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9XZWJLaXRXZWJBdWRpb1NvdXJjZUdTdHJl
YW1lci5jcHAKaW5kZXggNTVkYmVkNC4uZWNkMGQyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL1dlYktpdFdlYkF1ZGlvU291cmNlR1N0cmVhbWVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvV2ViS2l0
V2ViQXVkaW9Tb3VyY2VHU3RyZWFtZXIuY3BwCkBAIC03Myw2ICs3Myw5IEBAIHN0cnVjdCBfV2Vi
S2l0V2ViQXVkaW9Tb3VyY2VQcml2YXRlIHsKIAogICAgIEdTTGlzdCogcGFkczsgLy8gTGlzdCBv
ZiBxdWV1ZSBzaW5rIHBhZHMuIE9uZSBxdWV1ZSBmb3IgZWFjaCBwbGFuYXIgYXVkaW8gY2hhbm5l
bC4KICAgICBHc3RQYWQqIHNvdXJjZVBhZDsgLy8gc3JjIHBhZCBvZiB0aGUgZWxlbWVudCwgaW50
ZXJsZWF2ZWQgd2F2IGRhdGEgaXMgcHVzaGVkIHRvIGl0LgorCisgICAgYm9vbCBuZXdTdHJlYW1F
dmVudFBlbmRpbmc7CisgICAgR3N0U2VnbWVudCBzZWdtZW50OwogfTsKIAogZW51bSB7CkBAIC0y
MDUsNiArMjA4LDkgQEAgc3RhdGljIHZvaWQgd2Via2l0X3dlYl9hdWRpb19zcmNfaW5pdChXZWJL
aXRXZWJBdWRpb1NyYyogc3JjKQogICAgIHByaXYtPnByb3ZpZGVyID0gMDsKICAgICBwcml2LT5i
dXMgPSAwOwogCisgICAgcHJpdi0+bmV3U3RyZWFtRXZlbnRQZW5kaW5nID0gdHJ1ZTsKKyAgICBn
c3Rfc2VnbWVudF9pbml0KCZwcml2LT5zZWdtZW50LCBHU1RfRk9STUFUX1RJTUUpOworCiAjaWZk
ZWYgR1NUX0FQSV9WRVJTSU9OXzEKICAgICBnX3JlY19tdXRleF9pbml0KCZwcml2LT5tdXRleCk7
CiAgICAgcHJpdi0+dGFzayA9IGdzdF90YXNrX25ldyhyZWludGVycHJldF9jYXN0PEdzdFRhc2tG
dW5jdGlvbj4od2ViS2l0V2ViQXVkaW9TcmNMb29wKSwgc3JjLCAwKTsKQEAgLTI0NCw3ICsyNTAs
OCBAQCBzdGF0aWMgdm9pZCB3ZWJLaXRXZWJBdWRpb1NyY0NvbnN0cnVjdGVkKEdPYmplY3QqIG9i
amVjdCkKICAgICAvLyBGb3IgZWFjaCBjaGFubmVsIG9mIHRoZSBidXMgY3JlYXRlIGEgbmV3IHVw
c3RyZWFtIGJyYW5jaCBmb3IgaW50ZXJsZWF2ZSwgbGlrZToKICAgICAvLyBxdWV1ZSAhIGNhcHNm
aWx0ZXIgISBhdWRpb2NvbnZlcnQuIHdoaWNoIGlzIHBsdWdnZWQgdG8gYSBuZXcgaW50ZXJsZWF2
ZSByZXF1ZXN0IHNpbmtwYWQuCiAgICAgZm9yICh1bnNpZ25lZCBjaGFubmVsSW5kZXggPSAwOyBj
aGFubmVsSW5kZXggPCBwcml2LT5idXMtPm51bWJlck9mQ2hhbm5lbHMoKTsgY2hhbm5lbEluZGV4
KyspIHsKLSAgICAgICAgR3N0RWxlbWVudCogcXVldWUgPSBnc3RfZWxlbWVudF9mYWN0b3J5X21h
a2UoInF1ZXVlIiwgMCk7CisgICAgICAgIEdPd25QdHI8Z2NoYXI+IHF1ZXVlTmFtZShnX3N0cmR1
cF9wcmludGYoIndlYmF1ZGlvUXVldWUldSIsIGNoYW5uZWxJbmRleCkpOworICAgICAgICBHc3RF
bGVtZW50KiBxdWV1ZSA9IGdzdF9lbGVtZW50X2ZhY3RvcnlfbWFrZSgicXVldWUiLCBxdWV1ZU5h
bWUuZ2V0KCkpOwogICAgICAgICBHc3RFbGVtZW50KiBjYXBzZmlsdGVyID0gZ3N0X2VsZW1lbnRf
ZmFjdG9yeV9tYWtlKCJjYXBzZmlsdGVyIiwgMCk7CiAgICAgICAgIEdzdEVsZW1lbnQqIGF1ZGlv
Y29udmVydCA9IGdzdF9lbGVtZW50X2ZhY3RvcnlfbWFrZSgiYXVkaW9jb252ZXJ0IiwgMCk7CiAK
QEAgLTI5Miw2ICsyOTksOCBAQCBzdGF0aWMgdm9pZCB3ZWJLaXRXZWJBdWRpb1NyY0ZpbmFsaXpl
KEdPYmplY3QqIG9iamVjdCkKIAogICAgIGdfc2xpc3RfZnJlZV9mdWxsKHByaXYtPnBhZHMsIHJl
aW50ZXJwcmV0X2Nhc3Q8R0Rlc3Ryb3lOb3RpZnk+KGdzdF9vYmplY3RfdW5yZWYpKTsKIAorICAg
IGdzdF9zZWdtZW50X2ZyZWUoJnByaXYtPnNlZ21lbnQpOworCiAgICAgcHJpdi0+fldlYktpdFdl
YkF1ZGlvU291cmNlUHJpdmF0ZSgpOwogICAgIEdTVF9DQUxMX1BBUkVOVChHX09CSkVDVF9DTEFT
UywgZmluYWxpemUsICgoR09iamVjdCogKShzcmMpKSk7CiB9CkBAIC0zNzUsNiArMzg0LDEzIEBA
IHN0YXRpYyB2b2lkIHdlYktpdFdlYkF1ZGlvU3JjTG9vcChXZWJLaXRXZWJBdWRpb1NyYyogc3Jj
KQogCiAgICAgR1NMaXN0KiBwYWRzSXQgPSBwcml2LT5wYWRzOwogICAgIEdTTGlzdCogYnVmZmVy
c0l0ID0gY2hhbm5lbEJ1ZmZlckxpc3Q7CisKKyNpZiBHU1RfQ0hFQ0tfVkVSU0lPTigxLCAyLCAw
KQorICAgIGd1aW50IGdyb3VwSWQgPSAwOworICAgIGlmIChwcml2LT5uZXdTdHJlYW1FdmVudFBl
bmRpbmcpCisgICAgICAgIGdyb3VwSWQgPSBnc3RfdXRpbF9ncm91cF9pZF9uZXh0KCk7CisjZW5k
aWYKKwogICAgIGZvciAoaSA9IDA7IHBhZHNJdCAmJiBidWZmZXJzSXQ7IHBhZHNJdCA9IGdfc2xp
c3RfbmV4dChwYWRzSXQpLCBidWZmZXJzSXQgPSBnX3NsaXN0X25leHQoYnVmZmVyc0l0KSwgKytp
KSB7CiAgICAgICAgIEdzdFBhZCogcGFkID0gc3RhdGljX2Nhc3Q8R3N0UGFkKj4ocGFkc0l0LT5k
YXRhKTsKICAgICAgICAgR3N0QnVmZmVyKiBjaGFubmVsQnVmZmVyID0gc3RhdGljX2Nhc3Q8R3N0
QnVmZmVyKj4oYnVmZmVyc0l0LT5kYXRhKTsKQEAgLTM4NywxMSArNDAzLDM1IEBAIHN0YXRpYyB2
b2lkIHdlYktpdFdlYkF1ZGlvU3JjTG9vcChXZWJLaXRXZWJBdWRpb1NyYyogc3JjKQogICAgICAg
ICBnc3RfYnVmZmVyX3NldF9jYXBzKGNoYW5uZWxCdWZmZXIsIG1vbm9DYXBzLmdldCgpKTsKICNl
bmRpZgogCisgICAgICAgIC8vIFNlbmQgc3RyZWFtLXN0YXJ0LCBzZWdtZW50IGFuZCBjYXBzIGV2
ZW50cyBkb3duc3RyZWFtLCBhbG9uZyB3aXRoIHRoZSBmaXJzdCBidWZmZXIuCisgICAgICAgIGlm
IChwcml2LT5uZXdTdHJlYW1FdmVudFBlbmRpbmcpIHsKKyAgICAgICAgICAgIEdSZWZQdHI8R3N0
RWxlbWVudD4gcXVldWUgPSBnc3RfcGFkX2dldF9wYXJlbnRfZWxlbWVudChwYWQpOworICAgICAg
ICAgICAgR1JlZlB0cjxHc3RQYWQ+IHNpbmtQYWQgPSBnc3RfZWxlbWVudF9nZXRfc3RhdGljX3Bh
ZChxdWV1ZS5nZXQoKSwgInNpbmsiKTsKKyAgICAgICAgICAgIEdPd25QdHI8Z2NoYXI+IHF1ZXVl
TmFtZShnc3RfZWxlbWVudF9nZXRfbmFtZShxdWV1ZS5nZXQoKSkpOworICAgICAgICAgICAgR093
blB0cjxnY2hhcj4gc3RyZWFtSWQoZ19zdHJkdXBfcHJpbnRmKCJ3ZWJhdWRpby8lcyIsIHF1ZXVl
TmFtZS5nZXQoKSkpOworICAgICAgICAgICAgR3N0RXZlbnQqIGV2ZW50ID0gZ3N0X2V2ZW50X25l
d19zdHJlYW1fc3RhcnQoc3RyZWFtSWQuZ2V0KCkpOworI2lmIEdTVF9DSEVDS19WRVJTSU9OKDEs
IDIsIDApCisgICAgICAgICAgICBnc3RfZXZlbnRfc2V0X2dyb3VwX2lkKGV2ZW50LCBncm91cElk
KTsKKyNlbmRpZgorICAgICAgICAgICAgZ3N0X3BhZF9zZW5kX2V2ZW50KHNpbmtQYWQuZ2V0KCks
IGV2ZW50KTsKKworICAgICAgICAgICAgR1JlZlB0cjxHc3RDYXBzPiBtb25vQ2FwcyA9IGFkb3B0
R1JlZihnZXRHU3RyZWFtZXJNb25vQXVkaW9DYXBzKHByaXYtPnNhbXBsZVJhdGUpKTsKKyAgICAg
ICAgICAgIEdzdEF1ZGlvSW5mbyBpbmZvOworICAgICAgICAgICAgZ3N0X2F1ZGlvX2luZm9fZnJv
bV9jYXBzKCZpbmZvLCBtb25vQ2Fwcy5nZXQoKSk7CisgICAgICAgICAgICBHU1RfQVVESU9fSU5G
T19QT1NJVElPTigmaW5mbywgMCkgPSB3ZWJLaXRXZWJBdWRpb0dTdHJlYW1lckNoYW5uZWxQb3Np
dGlvbihpKTsKKyAgICAgICAgICAgIEdSZWZQdHI8R3N0Q2Fwcz4gY2FwcyA9IGFkb3B0R1JlZihn
c3RfYXVkaW9faW5mb190b19jYXBzKCZpbmZvKSk7CisgICAgICAgICAgICBnc3RfcGFkX3NlbmRf
ZXZlbnQoc2lua1BhZC5nZXQoKSwgZ3N0X2V2ZW50X25ld19jYXBzKGNhcHMuZ2V0KCkpKTsKKwor
ICAgICAgICAgICAgZ3N0X3BhZF9zZW5kX2V2ZW50KHNpbmtQYWQuZ2V0KCksIGdzdF9ldmVudF9u
ZXdfc2VnbWVudCgmcHJpdi0+c2VnbWVudCkpOworICAgICAgICB9CisKICAgICAgICAgR3N0Rmxv
d1JldHVybiByZXQgPSBnc3RfcGFkX2NoYWluKHBhZCwgY2hhbm5lbEJ1ZmZlcik7CiAgICAgICAg
IGlmIChyZXQgIT0gR1NUX0ZMT1dfT0spCi0gICAgICAgICAgICBHU1RfRUxFTUVOVF9FUlJPUihz
cmMsIENPUkUsIFBBRCwgKCJJbnRlcm5hbCBXZWJBdWRpb1NyYyBlcnJvciIpLCAoIkZhaWxlZCB0
byBwdXNoIGJ1ZmZlciBvbiAlczolcyIsIEdTVF9ERUJVR19QQURfTkFNRShwYWQpKSk7CisgICAg
ICAgICAgICBHU1RfRUxFTUVOVF9FUlJPUihzcmMsIENPUkUsIFBBRCwgKCJJbnRlcm5hbCBXZWJB
dWRpb1NyYyBlcnJvciIpLCAoIkZhaWxlZCB0byBwdXNoIGJ1ZmZlciBvbiAlczolcyBmbG93OiAl
cyIsIEdTVF9ERUJVR19QQURfTkFNRShwYWQpLCBnc3RfZmxvd19nZXRfbmFtZShyZXQpKSk7CiAg
ICAgfQogCisgICAgcHJpdi0+bmV3U3RyZWFtRXZlbnRQZW5kaW5nID0gZmFsc2U7CisKICAgICBn
X3NsaXN0X2ZyZWUoY2hhbm5lbEJ1ZmZlckxpc3QpOwogfQogCkBAIC00MzAsNiArNDcwLDcgQEAg
c3RhdGljIEdzdFN0YXRlQ2hhbmdlUmV0dXJuIHdlYktpdFdlYkF1ZGlvU3JjQ2hhbmdlU3RhdGUo
R3N0RWxlbWVudCogZWxlbWVudCwgR3MKICAgICAgICAgICAgIHJldHVyblZhbHVlID0gR1NUX1NU
QVRFX0NIQU5HRV9GQUlMVVJFOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEdTVF9TVEFURV9D
SEFOR0VfUEFVU0VEX1RPX1JFQURZOgorICAgICAgICBzcmMtPnByaXYtPm5ld1N0cmVhbUV2ZW50
UGVuZGluZyA9IHRydWU7CiAgICAgICAgIEdTVF9ERUJVR19PQkpFQ1Qoc3JjLCAiUEFVU0VELT5S
RUFEWSIpOwogICAgICAgICBpZiAoIWdzdF90YXNrX2pvaW4oc3JjLT5wcml2LT50YXNrLmdldCgp
KSkKICAgICAgICAgICAgIHJldHVyblZhbHVlID0gR1NUX1NUQVRFX0NIQU5HRV9GQUlMVVJFOwot
LSAKMS44LjQuMw==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>218584</attachid>
            <date>2013-12-06 02:45:35 -0800</date>
            <delta_ts>2013-12-06 03:04:14 -0800</delta_ts>
            <desc>patch</desc>
            <filename>patch.patch</filename>
            <type>text/plain</type>
            <size>6450</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSBhNzYxY2IyODU1NDcyNDc4MzdmMDY4MjYxMzNmZjJlYmFlNmJkYjYxIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBNb24sIDExIE5vdiAyMDEzIDA5OjI0OjI2ICswMTAwClN1YmplY3Q6IFtQQVRDSF0g
cGF0Y2gKCi0tLQogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfCAxOSArKysrKysrKysKIC4uLi9nc3RyZWFtZXIvV2ViS2l0V2ViQXVkaW9Tb3VyY2VH
U3RyZWFtZXIuY3BwICAgIHwgNDUgKysrKysrKysrKysrKysrKysrKysrLQogMiBmaWxlcyBjaGFu
Z2VkLCA2MiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA4NmNl
YzYxLi4wM2JhMzNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTMtMTEtMTEgIFBo
aWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgorCisgICAgICAgIFtHU3RyZWFt
ZXJdIHdlYmtpdHdlYmF1ZGlvc3JjIGVsZW1lbnQgbmVlZHMgdG8gZW1pdCBzdHJlYW0tc3RhcnQs
IGNhcHMgYW5kIHNlZ21lbnQgZXZlbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMjMwMTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBXaGVuIHRoZSBzb3VyY2UgZWxlbWVudCBzdGFydHMgZW1pdHRpbmcg
YnVmZmVycyBzZW5kIGFsb25nIHZhcmlvdXMKKyAgICAgICAgZXZlbnRzIHRvIG5vdGlmeSBkb3du
c3RyZWFtIGVsZW1lbnRzLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgY2hhbmdlIGNvdmVyZWQg
YnkgZXhpc3Rpbmcgd2ViYXVkaW8gdGVzdHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9n
c3RyZWFtZXIvV2ViS2l0V2ViQXVkaW9Tb3VyY2VHU3RyZWFtZXIuY3BwOgorICAgICAgICAod2Vi
a2l0X3dlYl9hdWRpb19zcmNfaW5pdCk6IEluaXRpYWxpemUgc2VnbWVudC4KKyAgICAgICAgKHdl
YktpdFdlYkF1ZGlvU3JjQ29uc3RydWN0ZWQpOiBHaXZlIGFuIGV4cGxpY2l0IG5hbWUgdG8gZWFj
aAorICAgICAgICBxdWV1ZSBhZGRlZCBpbiBmcm9udCBvZiB0aGUgaW50ZXJsZWF2ZSBlbGVtZW50
LgorICAgICAgICAod2ViS2l0V2ViQXVkaW9TcmNMb29wKTogQmVmb3JlIHNlbmRpbmcgdGhlIGZp
cnN0IGJ1ZmZlcnMgcHVzaAorICAgICAgICBzdHJlYW0tc3RhcnQsIGNhcHMgYW5kIHNlZ21lbnQg
ZXZlbnRzIG9uIGVhY2ggcXVldWUncyBzaW5rcGFkLgorCiAyMDEzLTEyLTA1ICBQaGlsaXBwZSBO
b3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1N0cmVhbWVyXSBBdWRp
by9WaWRlbyBzaW5rIG1hbmFnZW1lbnQgaXMgaW5jb2hlcmVudApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL1dlYktpdFdlYkF1ZGlvU291cmNlR1N0
cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9XZWJL
aXRXZWJBdWRpb1NvdXJjZUdTdHJlYW1lci5jcHAKaW5kZXggNzdiZjkyMC4uYzQyNGE1ZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL1dlYktpdFdl
YkF1ZGlvU291cmNlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9nc3RyZWFtZXIvV2ViS2l0V2ViQXVkaW9Tb3VyY2VHU3RyZWFtZXIuY3BwCkBAIC02MCw2
ICs2MCw5IEBAIHN0cnVjdCBfV2ViS2l0V2ViQXVkaW9Tb3VyY2VQcml2YXRlIHsKIAogICAgIEdT
TGlzdCogcGFkczsgLy8gTGlzdCBvZiBxdWV1ZSBzaW5rIHBhZHMuIE9uZSBxdWV1ZSBmb3IgZWFj
aCBwbGFuYXIgYXVkaW8gY2hhbm5lbC4KICAgICBHc3RQYWQqIHNvdXJjZVBhZDsgLy8gc3JjIHBh
ZCBvZiB0aGUgZWxlbWVudCwgaW50ZXJsZWF2ZWQgd2F2IGRhdGEgaXMgcHVzaGVkIHRvIGl0Lgor
CisgICAgYm9vbCBuZXdTdHJlYW1FdmVudFBlbmRpbmc7CisgICAgR3N0U2VnbWVudCBzZWdtZW50
OwogfTsKIAogZW51bSB7CkBAIC0xODEsNiArMTg0LDkgQEAgc3RhdGljIHZvaWQgd2Via2l0X3dl
Yl9hdWRpb19zcmNfaW5pdChXZWJLaXRXZWJBdWRpb1NyYyogc3JjKQogICAgIHByaXYtPnByb3Zp
ZGVyID0gMDsKICAgICBwcml2LT5idXMgPSAwOwogCisgICAgcHJpdi0+bmV3U3RyZWFtRXZlbnRQ
ZW5kaW5nID0gdHJ1ZTsKKyAgICBnc3Rfc2VnbWVudF9pbml0KCZwcml2LT5zZWdtZW50LCBHU1Rf
Rk9STUFUX1RJTUUpOworCiAgICAgZ19yZWNfbXV0ZXhfaW5pdCgmcHJpdi0+bXV0ZXgpOwogICAg
IHByaXYtPnRhc2sgPSBnc3RfdGFza19uZXcocmVpbnRlcnByZXRfY2FzdDxHc3RUYXNrRnVuY3Rp
b24+KHdlYktpdFdlYkF1ZGlvU3JjTG9vcCksIHNyYywgMCk7CiAKQEAgLTIxNSw3ICsyMjEsOCBA
QCBzdGF0aWMgdm9pZCB3ZWJLaXRXZWJBdWRpb1NyY0NvbnN0cnVjdGVkKEdPYmplY3QqIG9iamVj
dCkKICAgICAvLyBGb3IgZWFjaCBjaGFubmVsIG9mIHRoZSBidXMgY3JlYXRlIGEgbmV3IHVwc3Ry
ZWFtIGJyYW5jaCBmb3IgaW50ZXJsZWF2ZSwgbGlrZToKICAgICAvLyBxdWV1ZSAhIGNhcHNmaWx0
ZXIgISBhdWRpb2NvbnZlcnQuIHdoaWNoIGlzIHBsdWdnZWQgdG8gYSBuZXcgaW50ZXJsZWF2ZSBy
ZXF1ZXN0IHNpbmtwYWQuCiAgICAgZm9yICh1bnNpZ25lZCBjaGFubmVsSW5kZXggPSAwOyBjaGFu
bmVsSW5kZXggPCBwcml2LT5idXMtPm51bWJlck9mQ2hhbm5lbHMoKTsgY2hhbm5lbEluZGV4Kysp
IHsKLSAgICAgICAgR3N0RWxlbWVudCogcXVldWUgPSBnc3RfZWxlbWVudF9mYWN0b3J5X21ha2Uo
InF1ZXVlIiwgMCk7CisgICAgICAgIEdPd25QdHI8Z2NoYXI+IHF1ZXVlTmFtZShnX3N0cmR1cF9w
cmludGYoIndlYmF1ZGlvUXVldWUldSIsIGNoYW5uZWxJbmRleCkpOworICAgICAgICBHc3RFbGVt
ZW50KiBxdWV1ZSA9IGdzdF9lbGVtZW50X2ZhY3RvcnlfbWFrZSgicXVldWUiLCBxdWV1ZU5hbWUu
Z2V0KCkpOwogICAgICAgICBHc3RFbGVtZW50KiBjYXBzZmlsdGVyID0gZ3N0X2VsZW1lbnRfZmFj
dG9yeV9tYWtlKCJjYXBzZmlsdGVyIiwgMCk7CiAgICAgICAgIEdzdEVsZW1lbnQqIGF1ZGlvY29u
dmVydCA9IGdzdF9lbGVtZW50X2ZhY3RvcnlfbWFrZSgiYXVkaW9jb252ZXJ0IiwgMCk7CiAKQEAg
LTI1NSw2ICsyNjIsOCBAQCBzdGF0aWMgdm9pZCB3ZWJLaXRXZWJBdWRpb1NyY0ZpbmFsaXplKEdP
YmplY3QqIG9iamVjdCkKIAogICAgIGdfc2xpc3RfZnJlZV9mdWxsKHByaXYtPnBhZHMsIHJlaW50
ZXJwcmV0X2Nhc3Q8R0Rlc3Ryb3lOb3RpZnk+KGdzdF9vYmplY3RfdW5yZWYpKTsKIAorICAgIGdz
dF9zZWdtZW50X2ZyZWUoJnByaXYtPnNlZ21lbnQpOworCiAgICAgcHJpdi0+fldlYktpdFdlYkF1
ZGlvU291cmNlUHJpdmF0ZSgpOwogICAgIEdTVF9DQUxMX1BBUkVOVChHX09CSkVDVF9DTEFTUywg
ZmluYWxpemUsICgoR09iamVjdCogKShzcmMpKSk7CiB9CkBAIC0zMzQsMTUgKzM0Myw0NiBAQCBz
dGF0aWMgdm9pZCB3ZWJLaXRXZWJBdWRpb1NyY0xvb3AoV2ViS2l0V2ViQXVkaW9TcmMqIHNyYykK
IAogICAgIEdTTGlzdCogcGFkc0l0ID0gcHJpdi0+cGFkczsKICAgICBHU0xpc3QqIGJ1ZmZlcnNJ
dCA9IGNoYW5uZWxCdWZmZXJMaXN0OworCisjaWYgR1NUX0NIRUNLX1ZFUlNJT04oMSwgMiwgMCkK
KyAgICBndWludCBncm91cElkID0gMDsKKyAgICBpZiAocHJpdi0+bmV3U3RyZWFtRXZlbnRQZW5k
aW5nKQorICAgICAgICBncm91cElkID0gZ3N0X3V0aWxfZ3JvdXBfaWRfbmV4dCgpOworI2VuZGlm
CisKICAgICBmb3IgKGkgPSAwOyBwYWRzSXQgJiYgYnVmZmVyc0l0OyBwYWRzSXQgPSBnX3NsaXN0
X25leHQocGFkc0l0KSwgYnVmZmVyc0l0ID0gZ19zbGlzdF9uZXh0KGJ1ZmZlcnNJdCksICsraSkg
ewogICAgICAgICBHc3RQYWQqIHBhZCA9IHN0YXRpY19jYXN0PEdzdFBhZCo+KHBhZHNJdC0+ZGF0
YSk7CiAgICAgICAgIEdzdEJ1ZmZlciogY2hhbm5lbEJ1ZmZlciA9IHN0YXRpY19jYXN0PEdzdEJ1
ZmZlcio+KGJ1ZmZlcnNJdC0+ZGF0YSk7CiAKKyAgICAgICAgLy8gU2VuZCBzdHJlYW0tc3RhcnQs
IHNlZ21lbnQgYW5kIGNhcHMgZXZlbnRzIGRvd25zdHJlYW0sIGFsb25nIHdpdGggdGhlIGZpcnN0
IGJ1ZmZlci4KKyAgICAgICAgaWYgKHByaXYtPm5ld1N0cmVhbUV2ZW50UGVuZGluZykgeworICAg
ICAgICAgICAgR1JlZlB0cjxHc3RFbGVtZW50PiBxdWV1ZSA9IGFkb3B0R1JlZihnc3RfcGFkX2dl
dF9wYXJlbnRfZWxlbWVudChwYWQpKTsKKyAgICAgICAgICAgIEdSZWZQdHI8R3N0UGFkPiBzaW5r
UGFkID0gYWRvcHRHUmVmKGdzdF9lbGVtZW50X2dldF9zdGF0aWNfcGFkKHF1ZXVlLmdldCgpLCAi
c2luayIpKTsKKyAgICAgICAgICAgIEdPd25QdHI8Z2NoYXI+IHF1ZXVlTmFtZShnc3RfZWxlbWVu
dF9nZXRfbmFtZShxdWV1ZS5nZXQoKSkpOworICAgICAgICAgICAgR093blB0cjxnY2hhcj4gc3Ry
ZWFtSWQoZ19zdHJkdXBfcHJpbnRmKCJ3ZWJhdWRpby8lcyIsIHF1ZXVlTmFtZS5nZXQoKSkpOwor
ICAgICAgICAgICAgR3N0RXZlbnQqIHN0cmVhbVN0YXJ0RXZlbnQgPSBnc3RfZXZlbnRfbmV3X3N0
cmVhbV9zdGFydChzdHJlYW1JZC5nZXQoKSk7CisjaWYgR1NUX0NIRUNLX1ZFUlNJT04oMSwgMiwg
MCkKKyAgICAgICAgICAgIGdzdF9ldmVudF9zZXRfZ3JvdXBfaWQoc3RyZWFtU3RhcnRFdmVudCwg
Z3JvdXBJZCk7CisjZW5kaWYKKyAgICAgICAgICAgIGdzdF9wYWRfc2VuZF9ldmVudChzaW5rUGFk
LmdldCgpLCBzdHJlYW1TdGFydEV2ZW50KTsKKworICAgICAgICAgICAgR1JlZlB0cjxHc3RDYXBz
PiBtb25vQ2FwcyA9IGFkb3B0R1JlZihnZXRHU3RyZWFtZXJNb25vQXVkaW9DYXBzKHByaXYtPnNh
bXBsZVJhdGUpKTsKKyAgICAgICAgICAgIEdzdEF1ZGlvSW5mbyBpbmZvOworICAgICAgICAgICAg
Z3N0X2F1ZGlvX2luZm9fZnJvbV9jYXBzKCZpbmZvLCBtb25vQ2Fwcy5nZXQoKSk7CisgICAgICAg
ICAgICBHU1RfQVVESU9fSU5GT19QT1NJVElPTigmaW5mbywgMCkgPSB3ZWJLaXRXZWJBdWRpb0dT
dHJlYW1lckNoYW5uZWxQb3NpdGlvbihpKTsKKyAgICAgICAgICAgIEdSZWZQdHI8R3N0Q2Fwcz4g
Y2Fwc1dpdGhDaGFubmVsUG9zaXRpb24gPSBhZG9wdEdSZWYoZ3N0X2F1ZGlvX2luZm9fdG9fY2Fw
cygmaW5mbykpOworICAgICAgICAgICAgZ3N0X3BhZF9zZW5kX2V2ZW50KHNpbmtQYWQuZ2V0KCks
IGdzdF9ldmVudF9uZXdfY2FwcyhjYXBzV2l0aENoYW5uZWxQb3NpdGlvbi5nZXQoKSkpOworCisg
ICAgICAgICAgICBnc3RfcGFkX3NlbmRfZXZlbnQoc2lua1BhZC5nZXQoKSwgZ3N0X2V2ZW50X25l
d19zZWdtZW50KCZwcml2LT5zZWdtZW50KSk7CisgICAgICAgIH0KKwogICAgICAgICBHc3RGbG93
UmV0dXJuIHJldCA9IGdzdF9wYWRfY2hhaW4ocGFkLCBjaGFubmVsQnVmZmVyKTsKICAgICAgICAg
aWYgKHJldCAhPSBHU1RfRkxPV19PSykKLSAgICAgICAgICAgIEdTVF9FTEVNRU5UX0VSUk9SKHNy
YywgQ09SRSwgUEFELCAoIkludGVybmFsIFdlYkF1ZGlvU3JjIGVycm9yIiksICgiRmFpbGVkIHRv
IHB1c2ggYnVmZmVyIG9uICVzOiVzIiwgR1NUX0RFQlVHX1BBRF9OQU1FKHBhZCkpKTsKKyAgICAg
ICAgICAgIEdTVF9FTEVNRU5UX0VSUk9SKHNyYywgQ09SRSwgUEFELCAoIkludGVybmFsIFdlYkF1
ZGlvU3JjIGVycm9yIiksICgiRmFpbGVkIHRvIHB1c2ggYnVmZmVyIG9uICVzOiVzIGZsb3c6ICVz
IiwgR1NUX0RFQlVHX1BBRF9OQU1FKHBhZCksIGdzdF9mbG93X2dldF9uYW1lKHJldCkpKTsKICAg
ICB9CiAKKyAgICBwcml2LT5uZXdTdHJlYW1FdmVudFBlbmRpbmcgPSBmYWxzZTsKKwogICAgIGdf
c2xpc3RfZnJlZShjaGFubmVsQnVmZmVyTGlzdCk7CiB9CiAKQEAgLTM4MSw2ICs0MjEsNyBAQCBz
dGF0aWMgR3N0U3RhdGVDaGFuZ2VSZXR1cm4gd2ViS2l0V2ViQXVkaW9TcmNDaGFuZ2VTdGF0ZShH
c3RFbGVtZW50KiBlbGVtZW50LCBHcwogICAgICAgICAgICAgcmV0dXJuVmFsdWUgPSBHU1RfU1RB
VEVfQ0hBTkdFX0ZBSUxVUkU7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgR1NUX1NUQVRFX0NI
QU5HRV9QQVVTRURfVE9fUkVBRFk6CisgICAgICAgIHNyYy0+cHJpdi0+bmV3U3RyZWFtRXZlbnRQ
ZW5kaW5nID0gdHJ1ZTsKICAgICAgICAgR1NUX0RFQlVHX09CSkVDVChzcmMsICJQQVVTRUQtPlJF
QURZIik7CiAgICAgICAgIGlmICghZ3N0X3Rhc2tfam9pbihzcmMtPnByaXYtPnRhc2suZ2V0KCkp
KQogICAgICAgICAgICAgcmV0dXJuVmFsdWUgPSBHU1RfU1RBVEVfQ0hBTkdFX0ZBSUxVUkU7Ci0t
IAoxLjguNC4z
</data>
<flag name="review"
          id="242052"
          type_id="1"
          status="+"
          setter="mrobinson"
    />
          </attachment>
      

    </bug>

</bugzilla>