<?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>101659</bug_id>
          
          <creation_ts>2012-11-08 15:58:10 -0800</creation_ts>
          <short_desc>[EFL][WK2] [AC] Black screen when applications use software backend.</short_desc>
          <delta_ts>2012-11-12 09:35:26 -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>WebKit EFL</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>
          <dependson>101389</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryuan Choi">ryuan.choi</reporter>
          <assigned_to name="Yael">yael</assigned_to>
          <cc>cdumez</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>joone</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>noam</cc>
    
    <cc>ostap73</cc>
    
    <cc>rakuco</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yael</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>762273</commentid>
    <comment_count>0</comment_count>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2012-11-08 15:58:10 -0800</bug_when>
    <thetext>Although applications should use opengl_XXX as evas backends
to use weblgl, accelerated compositing and GL related features,
We should have fallback mechanism for the applications which uses S/W backend.

Now, Efl applications on linux use software_x11 as a default backend.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763702</commentid>
    <comment_count>1</comment_count>
      <attachid>173465</attachid>
    <who name="Yael">yael</who>
    <bug_when>2012-11-10 12:36:25 -0800</bug_when>
    <thetext>Created attachment 173465
Patch

Create a setting that allows applications to fallback to the software path of TextureMapper. The setting is only supported if TextureMapper was not created yet and does not allow to switch afterwards. (It asserts in debug and is ignored in release mode).

Applications that want to use the software_x11 evas engine can do so if they set the new setting.
Detection of the engine will be done in https://bugs.webkit.org/show_bug.cgi?id=101389 .</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763703</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-10 12:39:37 -0800</bug_when>
    <thetext>Attachment 173465 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebKit2/ChangeLog&apos;, u&apos;Source/WebKit...&quot; exit_code: 1
Source/WebKit2/UIProcess/API/efl/EwkViewImpl.cpp:96:  One line control clauses should not use braces.  [whitespace/braces] [4]
Total errors found: 1 in 8 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763704</commentid>
    <comment_count>3</comment_count>
      <attachid>173466</attachid>
    <who name="Yael">yael</who>
    <bug_when>2012-11-10 12:44:45 -0800</bug_when>
    <thetext>Created attachment 173466
Patch

Fix style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763753</commentid>
    <comment_count>4</comment_count>
      <attachid>173466</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-11-10 15:58:11 -0800</bug_when>
    <thetext>Comment on attachment 173466
Patch

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

&gt; Source/WebKit2/UIProcess/API/efl/ewk_settings.h:363
&gt; +EAPI Eina_Bool ewk_settings_hardware_acceleration_set(Ewk_Settings *settings, RenderingMode mode);

Weird name &quot;hardware acceleration set == software&quot; that is not really hardware accelerated.

Why not rendering_mode_set(settings, OpenGL);

In what way is this different than setting the engine? Tha is not clear to people</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763754</commentid>
    <comment_count>5</comment_count>
    <who name="Yael">yael</who>
    <bug_when>2012-11-10 16:02:17 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 173466 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=173466&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/efl/ewk_settings.h:363
&gt; &gt; +EAPI Eina_Bool ewk_settings_hardware_acceleration_set(Ewk_Settings *settings, RenderingMode mode);
&gt; 
&gt; Weird name &quot;hardware acceleration set == software&quot; that is not really hardware accelerated.
&gt; 
&gt; Why not rendering_mode_set(settings, OpenGL);
&gt; 
ok.
&gt; In what way is this different than setting the engine? Tha is not clear to people
I thought we wanted the engine to be transparent to WebKit, no?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763758</commentid>
    <comment_count>6</comment_count>
    <who name="Yael">yael</who>
    <bug_when>2012-11-10 16:27:12 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #4)
&gt; &gt; (From update of attachment 173466 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=173466&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebKit2/UIProcess/API/efl/ewk_settings.h:363
&gt; &gt; &gt; +EAPI Eina_Bool ewk_settings_hardware_acceleration_set(Ewk_Settings *settings, RenderingMode mode);
&gt; &gt; 
&gt; &gt; Weird name &quot;hardware acceleration set == software&quot; that is not really hardware accelerated.
&gt; &gt; 
&gt; &gt; Why not rendering_mode_set(settings, OpenGL);
&gt; &gt; 
&gt; ok.
&gt; &gt; In what way is this different than setting the engine? Tha is not clear to people
&gt; I thought we wanted the engine to be transparent to WebKit, no?

I could easily add a test for opengl engine, if that is what people prefer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763767</commentid>
    <comment_count>7</comment_count>
      <attachid>173482</attachid>
    <who name="Yael">yael</who>
    <bug_when>2012-11-10 19:00:35 -0800</bug_when>
    <thetext>Created attachment 173482
Patch

Remove the setting and silently fallback to software rendering if opengl is not available.
Also fixed some bugs like disable webGl and reset the software path after a web process crash.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763768</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-10 19:05:34 -0800</bug_when>
    <thetext>Attachment 173482 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebKit2/ChangeLog&apos;, u&apos;Source/WebKit...&quot; exit_code: 1
Source/WebKit2/UIProcess/efl/PageClientBase.cpp:72:  Local variables should never be PassOwnPtr (see http://webkit.org/coding/RefPtr.html).  [readability/pass_ptr] [5]
Total errors found: 1 in 6 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763810</commentid>
    <comment_count>9</comment_count>
      <attachid>173482</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-11-11 04:01:59 -0800</bug_when>
    <thetext>Comment on attachment 173482
Patch

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

&gt; Source/WebKit2/UIProcess/API/efl/EwkViewImpl.cpp:87
&gt; +cairo_t* createCairoContext(Ewk_View_Smart_Data* sd)
&gt; +{

I think chris made a class with similar methods

&gt; Source/WebKit2/UIProcess/API/efl/EwkViewImpl.cpp:106
&gt; +void freeCairoContext(cairo_t* graphicsContext)
&gt; +{
&gt; +    cairo_surface_t* surface = cairo_get_target(graphicsContext);
&gt; +    cairo_destroy(graphicsContext);
&gt; +    cairo_surface_finish(surface);
&gt; +}

and there is no OwnPtr for this one? like there is for cairo_surface_t ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763813</commentid>
    <comment_count>10</comment_count>
      <attachid>173482</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-11-11 04:17:06 -0800</bug_when>
    <thetext>Comment on attachment 173482
Patch

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

&gt;&gt; Source/WebKit2/UIProcess/API/efl/EwkViewImpl.cpp:87
&gt;&gt; +{
&gt; 
&gt; I think chris made a class with similar methods

Source/WebCore/platform/graphics/efl/CairoUtilitiesEfl.h

&gt; Source/WebKit2/UIProcess/API/efl/EwkViewImpl.cpp:97
&gt; +    cairo_t* graphicsContext = cairo_create(surface);

Looks to me that cairo_surface_destroy() should be called on surface after this. Or even better, let&apos;s use a RefPtr&lt;cairo_surface_t&gt; earlier to avoid such problem.

&gt;&gt; Source/WebKit2/UIProcess/API/efl/EwkViewImpl.cpp:106
&gt;&gt; +}
&gt; 
&gt; and there is no OwnPtr for this one? like there is for cairo_surface_t ?

There is RefPtr&lt;cairo_t&gt;

&gt; Source/WebKit2/UIProcess/API/efl/EwkViewImpl.cpp:363
&gt; +        cairo_t* graphicsContext = createCairoContext(sd);

RefPtr ?

&gt; Source/WebKit2/UIProcess/API/efl/EwkViewImpl.cpp:656
&gt; +    if (m_hardwareAccelerationEnabled) {

I think we should use the return early approach like in the rest of WebKit.

&gt; Source/WebKit2/UIProcess/API/efl/EwkViewImpl.h:202
&gt; +    bool hardwareAccelerationEnabled() { return m_hardwareAccelerationEnabled; }

method should be const</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763889</commentid>
    <comment_count>11</comment_count>
    <who name="Yael">yael</who>
    <bug_when>2012-11-11 14:43:00 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 173482 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=173482&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebKit2/UIProcess/API/efl/EwkViewImpl.cpp:87
&gt; &gt;&gt; +{
&gt; &gt; 
&gt; &gt; I think chris made a class with similar methods
&gt; 
&gt; Source/WebCore/platform/graphics/efl/CairoUtilitiesEfl.h
&gt; 
Thanks for the tio, I&apos;ll look into that
&gt; &gt; Source/WebKit2/UIProcess/API/efl/EwkViewImpl.cpp:97
&gt; &gt; +    cairo_t* graphicsContext = cairo_create(surface);
&gt; 
&gt; Looks to me that cairo_surface_destroy() should be called on surface after this. Or even better, let&apos;s use a RefPtr&lt;cairo_surface_t&gt; earlier to avoid such problem.
&gt; 
It is called in freeCairoContext()
&gt; &gt;&gt; Source/WebKit2/UIProcess/API/efl/EwkViewImpl.cpp:106
&gt; &gt;&gt; +}
&gt; &gt; 
&gt; &gt; and there is no OwnPtr for this one? like there is for cairo_surface_t ?
&gt; 
&gt; There is RefPtr&lt;cairo_t&gt;
&gt; 
ok
&gt; &gt; Source/WebKit2/UIProcess/API/efl/EwkViewImpl.cpp:363
&gt; &gt; +        cairo_t* graphicsContext = createCairoContext(sd);
&gt; 
&gt; RefPtr ?
&gt; 
ok
&gt; &gt; Source/WebKit2/UIProcess/API/efl/EwkViewImpl.cpp:656
&gt; &gt; +    if (m_hardwareAccelerationEnabled) {
&gt; 
&gt; I think we should use the return early approach like in the rest of WebKit.
&gt; 
We still need to call setRenderActive. I&apos;ll see if I can move that call.
&gt; &gt; Source/WebKit2/UIProcess/API/efl/EwkViewImpl.h:202
&gt; &gt; +    bool hardwareAccelerationEnabled() { return m_hardwareAccelerationEnabled; }
&gt; 
&gt; method should be const
ok</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763901</commentid>
    <comment_count>12</comment_count>
    <who name="Yael">yael</who>
    <bug_when>2012-11-11 15:45:23 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; (From update of attachment 173482 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=173482&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/efl/EwkViewImpl.cpp:87
&gt; &gt; +cairo_t* createCairoContext(Ewk_View_Smart_Data* sd)
&gt; &gt; +{
&gt; 
&gt; I think chris made a class with similar methods
&gt; 
Thanks for the tip. Chris&apos;s methods don&apos;t exactly match what I need, so I will move the Cairo related code to there.

&gt; &gt; Source/WebKit2/UIProcess/API/efl/EwkViewImpl.cpp:106
&gt; &gt; +void freeCairoContext(cairo_t* graphicsContext)
&gt; &gt; +{
&gt; &gt; +    cairo_surface_t* surface = cairo_get_target(graphicsContext);
&gt; &gt; +    cairo_destroy(graphicsContext);
&gt; &gt; +    cairo_surface_finish(surface);
&gt; &gt; +}
&gt; 
&gt; and there is no OwnPtr for this one? like there is for cairo_surface_t ?
Will change that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763922</commentid>
    <comment_count>13</comment_count>
      <attachid>173525</attachid>
    <who name="Yael">yael</who>
    <bug_when>2012-11-11 16:22:46 -0800</bug_when>
    <thetext>Created attachment 173525
Patch

Address comment #9 and comment #10.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763923</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-11 16:28:14 -0800</bug_when>
    <thetext>Attachment 173525 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1
Source/WebKit2/UIProcess/efl/PageClientBase.cpp:72:  Local variables should never be PassOwnPtr (see http://webkit.org/coding/RefPtr.html).  [readability/pass_ptr] [5]
Total errors found: 1 in 9 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763956</commentid>
    <comment_count>15</comment_count>
      <attachid>173525</attachid>
    <who name="Viatcheslav Ostapenko">ostap73</who>
    <bug_when>2012-11-11 18:19:42 -0800</bug_when>
    <thetext>Comment on attachment 173525
Patch

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

&gt;&gt; Source/WebKit2/UIProcess/efl/PageClientBase.cpp:72
&gt;&gt; +    PassOwnPtr&lt;DrawingAreaProxy&gt; drawingArea = DrawingAreaProxyImpl::create(m_viewImpl-&gt;page());
&gt; 
&gt; Local variables should never be PassOwnPtr (see http://webkit.org/coding/RefPtr.html).  [readability/pass_ptr] [5]

Yael, I think it should be OwnPtr&lt;DrawingAreaProxy&gt; drawingArea here and you have to do drawingArea.release() when return.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764034</commentid>
    <comment_count>16</comment_count>
      <attachid>173482</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-11-11 22:00:48 -0800</bug_when>
    <thetext>Comment on attachment 173482
Patch

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

&gt;&gt;&gt; Source/WebKit2/UIProcess/API/efl/EwkViewImpl.cpp:97
&gt;&gt;&gt; +    cairo_t* graphicsContext = cairo_create(surface);
&gt;&gt; 
&gt;&gt; Looks to me that cairo_surface_destroy() should be called on surface after this. Or even better, let&apos;s use a RefPtr&lt;cairo_surface_t&gt; earlier to avoid such problem.
&gt; 
&gt; It is called in freeCairoContext()

This is still not nice. The documentation for cairo_create() says:
&quot;This function references target, so you can immediately call cairo_surface_destroy() on it if you don&apos;t need to maintain a separate reference to it.&quot;

We are not keeping a reference to the surface so we should undef it directly here. The cairo_surface_finish(surface) call in freeCairoContext will then become useless because cairo_destroy() will undef the surface and its refcount will hit 0.
Also note that freeCairoContext()  will probably go away when you switch to smart pointers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764039</commentid>
    <comment_count>17</comment_count>
      <attachid>173525</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-11-11 22:13:54 -0800</bug_when>
    <thetext>Comment on attachment 173525
Patch

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

&gt; Source/WebKit2/UIProcess/API/efl/EwkViewImpl.cpp:345
&gt; +        RefPtr&lt;cairo_t&gt; graphicsContext = cairo_create(surface.get());

Missing adoptRef() it seems. BTW, should&apos;t we keep it as a class member? I don&apos;t think renderer-&gt;paintToGraphicsContext(graphicsContext.get()) will ref it.

&gt; Source/WebKit2/UIProcess/API/efl/EwkViewImpl.cpp:346
&gt; +        if (!graphicsContext)

Useless NULL check, the doc says &quot;This function never returns NULL. &quot;

&gt;&gt;&gt; Source/WebKit2/UIProcess/efl/PageClientBase.cpp:72
&gt;&gt;&gt; +    PassOwnPtr&lt;DrawingAreaProxy&gt; drawingArea = DrawingAreaProxyImpl::create(m_viewImpl-&gt;page());
&gt;&gt; 
&gt;&gt; Local variables should never be PassOwnPtr (see http://webkit.org/coding/RefPtr.html).  [readability/pass_ptr] [5]
&gt; 
&gt; Yael, I think it should be OwnPtr&lt;DrawingAreaProxy&gt; drawingArea here and you have to do drawingArea.release() when return.

Right.

&gt; Source/WebCore/platform/graphics/efl/CairoUtilitiesEfl.cpp:109
&gt; +PassRefPtr&lt;cairo_surface_t&gt; createSurfaceForImage(Evas_Object *image)

Star on wrong side

&gt; Source/WebCore/platform/graphics/efl/CairoUtilitiesEfl.cpp:127
&gt; +    return surface;

you are supposed to release() here I believe.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764304</commentid>
    <comment_count>18</comment_count>
    <who name="Yael">yael</who>
    <bug_when>2012-11-12 05:29:27 -0800</bug_when>
    <thetext>(In reply to comment #17)
&gt; (From update of attachment 173525 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=173525&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/efl/EwkViewImpl.cpp:345
&gt; &gt; +        RefPtr&lt;cairo_t&gt; graphicsContext = cairo_create(surface.get());
&gt; 
&gt; Missing adoptRef() it seems. BTW, should&apos;t we keep it as a class member? I don&apos;t think renderer-&gt;paintToGraphicsContext(graphicsContext.get()) will ref it.
&gt; 
adoptRef is oly needed if the create method return a raw pointer but it doesn&apos;t. The adoptRef is inside the create method.
&gt; &gt; Source/WebKit2/UIProcess/API/efl/EwkViewImpl.cpp:346
&gt; &gt; +        if (!graphicsContext)
&gt; 
&gt; Useless NULL check, the doc says &quot;This function never returns NULL. &quot;
&gt; 
ok
&gt; &gt;&gt;&gt; Source/WebKit2/UIProcess/efl/PageClientBase.cpp:72
&gt; &gt;&gt;&gt; +    PassOwnPtr&lt;DrawingAreaProxy&gt; drawingArea = DrawingAreaProxyImpl::create(m_viewImpl-&gt;page());
&gt; &gt;&gt; 
&gt; &gt;&gt; Local variables should never be PassOwnPtr (see http://webkit.org/coding/RefPtr.html).  [readability/pass_ptr] [5]
&gt; &gt; 
&gt; &gt; Yael, I think it should be OwnPtr&lt;DrawingAreaProxy&gt; drawingArea here and you have to do drawingArea.release() when return.
&gt; 
&gt; Right.
&gt; 
ok
&gt; &gt; Source/WebCore/platform/graphics/efl/CairoUtilitiesEfl.cpp:109
&gt; &gt; +PassRefPtr&lt;cairo_surface_t&gt; createSurfaceForImage(Evas_Object *image)
&gt; 
&gt; Star on wrong side
&gt; 
ok
&gt; &gt; Source/WebCore/platform/graphics/efl/CairoUtilitiesEfl.cpp:127
&gt; &gt; +    return surface;
&gt; 
&gt; you are supposed to release() here I believe.
This method is not returning a raw pointer. It returns PassRefPtr, so I believe it is correct as it is now. Please refer to your method right above the new one. It does exactly the same.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764308</commentid>
    <comment_count>19</comment_count>
      <attachid>173525</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-11-12 05:33:31 -0800</bug_when>
    <thetext>Comment on attachment 173525
Patch

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

&gt;&gt;&gt; Source/WebKit2/UIProcess/API/efl/EwkViewImpl.cpp:345
&gt;&gt;&gt; +        RefPtr&lt;cairo_t&gt; graphicsContext = cairo_create(surface.get());
&gt;&gt; 
&gt;&gt; Missing adoptRef() it seems. BTW, should&apos;t we keep it as a class member? I don&apos;t think renderer-&gt;paintToGraphicsContext(graphicsContext.get()) will ref it.
&gt; 
&gt; adoptRef is oly needed if the create method return a raw pointer but it doesn&apos;t. The adoptRef is inside the create method.

Well, cairo_create() is a cairo function so it returns a raw pointer, right? :)

&gt;&gt;&gt; Source/WebCore/platform/graphics/efl/CairoUtilitiesEfl.cpp:127
&gt;&gt;&gt; +    return surface;
&gt;&gt; 
&gt;&gt; you are supposed to release() here I believe.
&gt; 
&gt; This method is not returning a raw pointer. It returns PassRefPtr, so I believe it is correct as it is now. Please refer to your method right above the new one. It does exactly the same.

release() does not return a raw pointer, it returns a PassRefPtr. If you don&apos;t call release() when returning here the ref count will be 2 instead of 1. I still believe this code is incorrect. You pass ownership to the caller so you should call release().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764310</commentid>
    <comment_count>20</comment_count>
    <who name="Yael">yael</who>
    <bug_when>2012-11-12 05:35:59 -0800</bug_when>
    <thetext>(In reply to comment #19)
&gt; (From update of attachment 173525 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=173525&amp;action=review
&gt; 
&gt; &gt;&gt;&gt; Source/WebKit2/UIProcess/API/efl/EwkViewImpl.cpp:345
&gt; &gt;&gt;&gt; +        RefPtr&lt;cairo_t&gt; graphicsContext = cairo_create(surface.get());
&gt; &gt;&gt; 
&gt; &gt;&gt; Missing adoptRef() it seems. BTW, should&apos;t we keep it as a class member? I don&apos;t think renderer-&gt;paintToGraphicsContext(graphicsContext.get()) will ref it.
&gt; &gt; 
&gt; &gt; adoptRef is oly needed if the create method return a raw pointer but it doesn&apos;t. The adoptRef is inside the create method.
&gt; 
&gt; Well, cairo_create() is a cairo function so it returns a raw pointer, right? :)
&gt; 
I meant createSurfaceForImage, not cairo_create
&gt; &gt;&gt;&gt; Source/WebCore/platform/graphics/efl/CairoUtilitiesEfl.cpp:127
&gt; &gt;&gt;&gt; +    return surface;
&gt; &gt;&gt; 
&gt; &gt;&gt; you are supposed to release() here I believe.
&gt; &gt; 
&gt; &gt; This method is not returning a raw pointer. It returns PassRefPtr, so I believe it is correct as it is now. Please refer to your method right above the new one. It does exactly the same.
&gt; 
&gt; release() does not return a raw pointer, it returns a PassRefPtr. If you don&apos;t call release() when returning here the ref count will be 2 instead of 1. I still believe this code is incorrect. You pass ownership to the caller so you should call release().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764312</commentid>
    <comment_count>21</comment_count>
      <attachid>173525</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-11-12 05:39:31 -0800</bug_when>
    <thetext>Comment on attachment 173525
Patch

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

&gt;&gt;&gt;&gt;&gt; Source/WebKit2/UIProcess/API/efl/EwkViewImpl.cpp:345
&gt;&gt;&gt;&gt;&gt; +        RefPtr&lt;cairo_t&gt; graphicsContext = cairo_create(surface.get());
&gt;&gt;&gt;&gt; 
&gt;&gt;&gt;&gt; Missing adoptRef() it seems. BTW, should&apos;t we keep it as a class member? I don&apos;t think renderer-&gt;paintToGraphicsContext(graphicsContext.get()) will ref it.
&gt;&gt;&gt; 
&gt;&gt;&gt; adoptRef is oly needed if the create method return a raw pointer but it doesn&apos;t. The adoptRef is inside the create method.
&gt;&gt; 
&gt;&gt; Well, cairo_create() is a cairo function so it returns a raw pointer, right? :)
&gt; 
&gt; I meant createSurfaceForImage, not cairo_create

Ok, my comment is about the cairo_create() line so I still think the comment is valid and adoptRef() is missing.

&gt;&gt;&gt;&gt;&gt; Source/WebCore/platform/graphics/efl/CairoUtilitiesEfl.cpp:127
&gt;&gt;&gt;&gt;&gt; +    return surface;
&gt;&gt;&gt;&gt; 
&gt;&gt;&gt;&gt; you are supposed to release() here I believe.
&gt;&gt;&gt; 
&gt;&gt;&gt; This method is not returning a raw pointer. It returns PassRefPtr, so I believe it is correct as it is now. Please refer to your method right above the new one. It does exactly the same.
&gt;&gt; 
&gt;&gt; release() does not return a raw pointer, it returns a PassRefPtr. If you don&apos;t call release() when returning here the ref count will be 2 instead of 1. I still believe this code is incorrect. You pass ownership to the caller so you should call release().
&gt; 
&gt; 

BTW, the methods above are not really mine, I merely moved existing functions to this new file I created. And you are right that createSurfaceForBackingStore() above is not releasing, which is wrong (we should fix that). Note that the evasObjectFromCairoImageSurface() method is correctly releasing though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764332</commentid>
    <comment_count>22</comment_count>
      <attachid>173634</attachid>
    <who name="Yael">yael</who>
    <bug_when>2012-11-12 06:12:16 -0800</bug_when>
    <thetext>Created attachment 173634
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764333</commentid>
    <comment_count>23</comment_count>
    <who name="Yael">yael</who>
    <bug_when>2012-11-12 06:12:44 -0800</bug_when>
    <thetext>(In reply to comment #22)
&gt; Created an attachment (id=173634) [details]
&gt; Patch

Address comment #15 and comment #17.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764342</commentid>
    <comment_count>24</comment_count>
      <attachid>173634</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-11-12 06:19:23 -0800</bug_when>
    <thetext>Comment on attachment 173634
Patch

LGTM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764352</commentid>
    <comment_count>25</comment_count>
      <attachid>173634</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-11-12 06:30:27 -0800</bug_when>
    <thetext>Comment on attachment 173634
Patch

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

&gt; Source/WebKit2/UIProcess/API/efl/EwkViewImpl.cpp:131
&gt; +    , m_hardwareAccelerationEnabled(true)

why not just isHardwareAccelerated(? It is not a setting right?

&gt; Source/WebKit2/UIProcess/API/efl/EwkViewImpl.cpp:349
&gt; +        evas_object_image_data_update_add(sd-&gt;image, 0, 0, viewport.width(), viewport.height());

why is this 0, 0 ? when the above uses viewport.x() etc

&gt; Source/WebKit2/UIProcess/CoordinatedGraphics/LayerTreeRenderer.h:104
&gt; +        // The acceleration mode can be set only before TextureMapper was created.

*is*</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764368</commentid>
    <comment_count>26</comment_count>
    <who name="Yael">yael</who>
    <bug_when>2012-11-12 06:49:49 -0800</bug_when>
    <thetext>(In reply to comment #25)
&gt; (From update of attachment 173634 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=173634&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/efl/EwkViewImpl.cpp:131
&gt; &gt; +    , m_hardwareAccelerationEnabled(true)
&gt; 
&gt; why not just isHardwareAccelerated(? It is not a setting right?
&gt; 
ok
&gt; &gt; Source/WebKit2/UIProcess/API/efl/EwkViewImpl.cpp:349
&gt; &gt; +        evas_object_image_data_update_add(sd-&gt;image, 0, 0, viewport.width(), viewport.height());
&gt; 
&gt; why is this 0, 0 ? when the above uses viewport.x() etc
&gt; 
When using openGl, the Gl surface is n the coordinates of the parent. i.e. it includes the URL bar.
When not using a Gl surface, the coordinates are view coordinates.
&gt; &gt; Source/WebKit2/UIProcess/CoordinatedGraphics/LayerTreeRenderer.h:104
&gt; &gt; +        // The acceleration mode can be set only before TextureMapper was created.
&gt; 
&gt; *is*
ok</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764450</commentid>
    <comment_count>27</comment_count>
      <attachid>173651</attachid>
    <who name="Yael">yael</who>
    <bug_when>2012-11-12 08:24:06 -0800</bug_when>
    <thetext>Created attachment 173651
Patch for landing.

Approved by Kenneth on irc:

[10:40] &lt;yael&gt; kenneth_: Since the last issues are so minor, are you ready to r+ it?
[10:41] &lt;kenneth_&gt; r=me
[10:47] &lt;yael&gt; kenneth_: I think you need to add that to the bug ?
[10:48] &lt;kenneth_&gt; not if you write it and cq+ :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764495</commentid>
    <comment_count>28</comment_count>
      <attachid>173651</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-12 09:35:19 -0800</bug_when>
    <thetext>Comment on attachment 173651
Patch for landing.

Clearing flags on attachment: 173651

Committed r134247: &lt;http://trac.webkit.org/changeset/134247&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764496</commentid>
    <comment_count>29</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-12 09:35:26 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173465</attachid>
            <date>2012-11-10 12:36:25 -0800</date>
            <delta_ts>2012-11-10 12:44:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>101659.patch</filename>
            <type>text/plain</type>
            <size>10482</size>
            <attacher name="Yael">yael</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19zZXR0aW5ncy5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19zZXR0aW5n
cy5oCShyZXZpc2lvbiAxMzQwNjIpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Vm
bC9ld2tfc2V0dGluZ3MuaAkod29ya2luZyBjb3B5KQpAQCAtNTEsNiArNTEsMTAgQEAKICAqLwog
dHlwZWRlZiB2b2lkICgqRXdrX1NldHRpbmdzX0NvbnRpbnVvdXNfU3BlbGxfQ2hlY2tpbmdfQ2hh
bmdlX0NiKShFaW5hX0Jvb2wgZW5hYmxlKTsKIAordHlwZWRlZiBlbnVtIHsKKyAgICBTb2Z0d2Fy
ZVJlbmRlcmluZywKKyAgICBPcGVuR0xSZW5kZXJpbmcKK30gUmVuZGVyaW5nTW9kZTsKIAogLyoq
CiAgKiBFbmFibGVzL2Rpc2FibGVzIHRoZSBKYXZhc2NyaXB0IEZ1bGxzY3JlZW4gQVBJLiBUaGUg
SmF2YXNjcmlwdCBBUEkgYWxsb3dzCkBAIC0zNDUsNiArMzQ5LDE5IEBACiAgKi8KIEVBUEkgdW5z
aWduZWQgZXdrX3NldHRpbmdzX3ByZWZlcnJlZF9taW5pbXVtX2NvbnRlbnRzX3dpZHRoX2dldChj
b25zdCBFd2tfU2V0dGluZ3MgKnNldHRpbmdzKTsKIAorLyoqCisgKiBFbmFibGVzL2Rpc2FibGVz
IHVzZSBvZiBoYXJkd2FyZSBhY2NlbGVyYXRpb24uIFRoaXMgc2V0dGluZyBzaG91bGQgYmUgc2V0
IHRvIFNvZnR3YXJlUmVuZGVuaW5nIGlmIHNvZnR3YXJlIHBhdGggaXMgZGVzaXJlZC4KKyAqCisg
KiBCeSBkZWZhdWx0LCBoYXJkd2FyZSBhY2NlbGVyYXRpb24gaXMgZW5hYmxlZCB3aXRoIE9wZW5H
TC4KKyAqCisgKiBAcGFyYW0gc2V0dGluZ3Mgc2V0dGluZ3Mgb2JqZWN0IHRvIHNldCBoYXJkd2Fy
ZSBhY2NlbGVyYXRpb24KKyAqIEBwYXJhbSBtb2RlIEBjIE9wZW5HTFJlbmRlcmluZyB0byBlbmFi
bGUgaGFyZHdhcmUgYWNjZWxlcmF0aW9uIHdpdGggT3BlbkdMCisgKiAgICAgICAgICAgICAgICAg
IEBjIFNvZnR3YXJlUmVuZGVyaW5nIHRvIGRpc2FibGUKKyAqCisgKiBAcmV0dXJuIEBjIEVJTkFf
VFJVRSBvbiBzdWNjZXNzIG9yIEBjIEVJTkFfRkFMU0Ugb24gZmFpbHVyZQorICovCitFQVBJIEVp
bmFfQm9vbCBld2tfc2V0dGluZ3NfaGFyZHdhcmVfYWNjZWxlcmF0aW9uX3NldChFd2tfU2V0dGlu
Z3MgKnNldHRpbmdzLCBSZW5kZXJpbmdNb2RlIG1vZGUpOworCiAjaWZkZWYgX19jcGx1c3BsdXMK
IH0KICNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3Nl
dHRpbmdzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Vm
bC9ld2tfc2V0dGluZ3MuY3BwCShyZXZpc2lvbiAxMzQwNjIpCisrKyBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC9ld2tfc2V0dGluZ3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMDIs
MyArMzAyLDEyIEBACiAKICAgICByZXR1cm4gc2V0dGluZ3MtPnByZWZlcmVuY2VzKCktPmxheW91
dEZhbGxiYWNrV2lkdGgoKTsKIH0KKworRUFQSSBFaW5hX0Jvb2wgZXdrX3NldHRpbmdzX2hhcmR3
YXJlX2FjY2VsZXJhdGlvbl9zZXQoRXdrX1NldHRpbmdzICpzZXR0aW5ncywgUmVuZGVyaW5nTW9k
ZSBtb2RlKQoreworICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChzZXR0aW5ncywg
ZmFsc2UpOworCisgICAgc2V0dGluZ3MtPnZpZXcoKS0+c2V0SGFyZHdhcmVBY2NlbGVyYXRpb24o
bW9kZSA9PSBPcGVuR0xSZW5kZXJpbmcpOworCisgICAgcmV0dXJuIHRydWU7Cit9CkluZGV4OiBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3SW1wbC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlld0ltcGwuY3BwCShy
ZXZpc2lvbiAxMzQwNjIpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tW
aWV3SW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU1LDYgKzU1LDcgQEAKICNpbmNsdWRlIDxF
Y29yZV9YLmg+CiAjaW5jbHVkZSA8RWRqZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ3Vyc29yLmg+
CisjaW5jbHVkZSA8Y2Fpcm8uaD4KIAogI2lmIEVOQUJMRShWSUJSQVRJT04pCiAjaW5jbHVkZSAi
VmlicmF0aW9uQ2xpZW50RWZsLmgiCkBAIC04Miw2ICs4MywyOSBAQAogICAgIHJldHVybiBtYXA7
CiB9CiAKK2NhaXJvX3QqIGNyZWF0ZUNhaXJvQ29udGV4dChFd2tfVmlld19TbWFydF9EYXRhKiBz
ZCkKK3sKKyAgICBFdmFzX0Nvb3JkIHdpZHRoLCBoZWlnaHQ7CisgICAgdWludDhfdCogcGl4ZWxz
ID0gc3RhdGljX2Nhc3Q8dWludDhfdCo+KGV2YXNfb2JqZWN0X2ltYWdlX2RhdGFfZ2V0KHNkLT5p
bWFnZSwgdHJ1ZSkpOworICAgIGV2YXNfb2JqZWN0X2ltYWdlX3NpemVfZ2V0KHNkLT5pbWFnZSwg
JndpZHRoLCAmaGVpZ2h0KTsKKworICAgIGNhaXJvX3N1cmZhY2VfdCogc3VyZmFjZSA9IGNhaXJv
X2ltYWdlX3N1cmZhY2VfY3JlYXRlX2Zvcl9kYXRhKHBpeGVscywgQ0FJUk9fRk9STUFUX0FSR0Iz
Miwgd2lkdGgsIGhlaWdodCwgNCAqIHdpZHRoKTsKKyAgICBjYWlyb19zdGF0dXNfdCBzdGF0dXMg
PSBjYWlyb19zdXJmYWNlX3N0YXR1cyhzdXJmYWNlKTsKKyAgICBpZiAoc3RhdHVzICE9IENBSVJP
X1NUQVRVU19TVUNDRVNTKSB7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIGNhaXJv
X3QqIGdyYXBoaWNzQ29udGV4dCA9IGNhaXJvX2NyZWF0ZShzdXJmYWNlKTsKKyAgICByZXR1cm4g
Z3JhcGhpY3NDb250ZXh0OworfQorCit2b2lkIGZyZWVDYWlyb0NvbnRleHQoY2Fpcm9fdCogZ3Jh
cGhpY3NDb250ZXh0KQoreworICAgIGNhaXJvX3N1cmZhY2VfdCogc3VyZmFjZSA9IGNhaXJvX2dl
dF90YXJnZXQoZ3JhcGhpY3NDb250ZXh0KTsKKyAgICBjYWlyb19kZXN0cm95KGdyYXBoaWNzQ29u
dGV4dCk7CisgICAgY2Fpcm9fc3VyZmFjZV9maW5pc2goc3VyZmFjZSk7Cit9CisKIHZvaWQgRXdr
Vmlld0ltcGw6OmFkZFRvUGFnZVZpZXdNYXAoRXdrVmlld0ltcGwqIHZpZXdJbXBsKQogewogICAg
IFBhZ2VWaWV3TWFwOjpBZGRSZXN1bHQgcmVzdWx0ID0gcGFnZVZpZXdNYXAoKS5hZGQodmlld0lt
cGwtPndrUGFnZSgpLCB2aWV3SW1wbC0+dmlldygpKTsKQEAgLTEyNyw2ICsxNTEsNyBAQAogI2Vu
ZGlmCiAgICAgLCBtX2Rpc3BsYXlUaW1lcih0aGlzLCAmRXdrVmlld0ltcGw6OmRpc3BsYXlUaW1l
ckZpcmVkKQogICAgICwgbV9pbnB1dE1ldGhvZENvbnRleHQoSW5wdXRNZXRob2RDb250ZXh0RWZs
OjpjcmVhdGUodGhpcywgc21hcnREYXRhKCktPmJhc2UuZXZhcykpCisgICAgLCBtX2hhcmR3YXJl
QWNjZWxlcmF0aW9uRW5hYmxlZCh0cnVlKQogewogICAgIEFTU0VSVChtX3ZpZXcpOwogICAgIEFT
U0VSVChtX2NvbnRleHQpOwpAQCAtMzMyLDEwICszNTcsMTcgQEAKICAgICBMYXllclRyZWVSZW5k
ZXJlciogcmVuZGVyZXIgPSBwYWdlKCktPmRyYXdpbmdBcmVhKCktPmxheWVyVHJlZUNvb3JkaW5h
dG9yUHJveHkoKS0+bGF5ZXJUcmVlUmVuZGVyZXIoKTsKICAgICByZW5kZXJlci0+c2V0QWN0aXZl
KHRydWUpOwogICAgIHJlbmRlcmVyLT5zeW5jUmVtb3RlQ29udGVudCgpOwotCi0gICAgcmVuZGVy
ZXItPnBhaW50VG9DdXJyZW50R0xDb250ZXh0KHRyYW5zZm9ybVRvU2NlbmUoKS50b1RyYW5zZm9y
bWF0aW9uTWF0cml4KCksIC8qIG9wYWNpdHkgKi8gMSwgdmlld3BvcnQpOwotCi0gICAgZXZhc19v
YmplY3RfaW1hZ2VfZGF0YV91cGRhdGVfYWRkKHNkLT5pbWFnZSwgdmlld3BvcnQueCgpLCB2aWV3
cG9ydC55KCksIHZpZXdwb3J0LndpZHRoKCksIHZpZXdwb3J0LmhlaWdodCgpKTsKKyAgICBpZiAo
bV9oYXJkd2FyZUFjY2VsZXJhdGlvbkVuYWJsZWQpIHsKKyAgICAgICAgcmVuZGVyZXItPnBhaW50
VG9DdXJyZW50R0xDb250ZXh0KHRyYW5zZm9ybVRvU2NlbmUoKS50b1RyYW5zZm9ybWF0aW9uTWF0
cml4KCksIC8qIG9wYWNpdHkgKi8gMSwgdmlld3BvcnQpOworICAgICAgICBldmFzX29iamVjdF9p
bWFnZV9kYXRhX3VwZGF0ZV9hZGQoc2QtPmltYWdlLCB2aWV3cG9ydC54KCksIHZpZXdwb3J0Lnko
KSwgdmlld3BvcnQud2lkdGgoKSwgdmlld3BvcnQuaGVpZ2h0KCkpOworICAgIH0gZWxzZSB7Cisg
ICAgICAgIGNhaXJvX3QqIGdyYXBoaWNzQ29udGV4dCA9IGNyZWF0ZUNhaXJvQ29udGV4dChzZCk7
CisgICAgICAgIGlmICghZ3JhcGhpY3NDb250ZXh0KQorICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICByZW5kZXJlci0+cGFpbnRUb0dyYXBoaWNzQ29udGV4dChncmFwaGljc0NvbnRleHQpOwor
ICAgICAgICBldmFzX29iamVjdF9pbWFnZV9kYXRhX3VwZGF0ZV9hZGQoc2QtPmltYWdlLCAwLCAw
LCB2aWV3cG9ydC53aWR0aCgpLCB2aWV3cG9ydC5oZWlnaHQoKSk7CisgICAgICAgIGZyZWVDYWly
b0NvbnRleHQoZ3JhcGhpY3NDb250ZXh0KTsKKyAgICB9CiAjZW5kaWYKIH0KIApAQCAtNTY2LDYg
KzU5OCw5IEBACiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogYm9vbCBFd2tWaWV3
SW1wbDo6Y3JlYXRlR0xTdXJmYWNlKGNvbnN0IEludFNpemUmIHZpZXdTaXplKQogeworICAgIGlm
ICghbV9oYXJkd2FyZUFjY2VsZXJhdGlvbkVuYWJsZWQpCisgICAgICAgIHJldHVybiB0cnVlOwor
CiAgICAgaWYgKCFtX2V2YXNHTCkgewogICAgICAgICBFdmFzKiBldmFzID0gZXZhc19vYmplY3Rf
ZXZhc19nZXQobV92aWV3KTsKICAgICAgICAgbV9ldmFzR0wgPSBhZG9wdFB0cihldmFzX2dsX25l
dyhldmFzKSk7CkBAIC02MTAsMTAgKzY0NSwxMiBAQAogCiBib29sIEV3a1ZpZXdJbXBsOjplbnRl
ckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKCkKIHsKLSAgICBpZiAoIW1fZXZhc0dMU3VyZmFj
ZSkgewotICAgICAgICBpZiAoIWNyZWF0ZUdMU3VyZmFjZShzaXplKCkpKSB7Ci0gICAgICAgICAg
ICBXQVJOKCJGYWlsZWQgdG8gY3JlYXRlIEdMU3VyZmFjZS4iKTsKLSAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICBpZiAobV9oYXJkd2FyZUFjY2VsZXJhdGlvbkVuYWJsZWQpIHsKKyAgICAg
ICAgaWYgKCFtX2V2YXNHTFN1cmZhY2UpIHsKKyAgICAgICAgICAgIGlmICghY3JlYXRlR0xTdXJm
YWNlKHNpemUoKSkpIHsKKyAgICAgICAgICAgICAgICBXQVJOKCJGYWlsZWQgdG8gY3JlYXRlIEdM
U3VyZmFjZS4iKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9
CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTg5NiwzICs5MzMsMTAgQEAKIAogICAgIHZpZXdJbXBs
LT5pbmZvcm1JY29uQ2hhbmdlKCk7CiB9CisKK3ZvaWQgRXdrVmlld0ltcGw6OnNldEhhcmR3YXJl
QWNjZWxlcmF0aW9uKGJvb2wgZW5hYmxlKQoreworICAgIG1faGFyZHdhcmVBY2NlbGVyYXRpb25F
bmFibGVkID0gZW5hYmxlOworICAgIHBhZ2UoKS0+ZHJhd2luZ0FyZWEoKS0+bGF5ZXJUcmVlQ29v
cmRpbmF0b3JQcm94eSgpLT5sYXllclRyZWVSZW5kZXJlcigpLT5zZXRBY2NlbGVyYXRpb25Nb2Rl
KGVuYWJsZSA/IFRleHR1cmVNYXBwZXI6Ok9wZW5HTE1vZGUgOiBUZXh0dXJlTWFwcGVyOjpTb2Z0
d2FyZU1vZGUpOworfQorCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9l
d2tfc2V0dGluZ3NfcHJpdmF0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZWZsL2V3a19zZXR0aW5nc19wcml2YXRlLmgJKHJldmlzaW9uIDEzNDA2MikKKysr
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19zZXR0aW5nc19wcml2YXRlLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTQ3LDYgKzQ3LDggQEAKICAgICBjb25zdCBXZWJLaXQ6OldlYlBy
ZWZlcmVuY2VzKiBwcmVmZXJlbmNlcygpIGNvbnN0OwogICAgIFdlYktpdDo6V2ViUHJlZmVyZW5j
ZXMqIHByZWZlcmVuY2VzKCk7CiAKKyAgICBFd2tWaWV3SW1wbCogdmlldygpIHsgcmV0dXJuIG1f
dmlld0ltcGw7IH0KKwogcHJpdmF0ZToKICAgICBleHBsaWNpdCBFd2tfU2V0dGluZ3MoRXdrVmll
d0ltcGwqIHZpZXdJbXBsKQogICAgICAgICA6IG1fdmlld0ltcGwodmlld0ltcGwpCkluZGV4OiBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3SW1wbC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXdJbXBsLmgJKHJldmlz
aW9uIDEzNDA2MikKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXdJ
bXBsLmgJKHdvcmtpbmcgY29weSkKQEAgLTE5OSw2ICsxOTksOCBAQAogICAgIC8vIEZJWE1FOiBu
ZWVkcyByZWZhY3RvcmluZyAoc3BsaXQgY2FsbGJhY2sgaW52b2tlKQogICAgIHZvaWQgaW5mb3Jt
VVJMQ2hhbmdlKCk7CiAKKyAgICB2b2lkIHNldEhhcmR3YXJlQWNjZWxlcmF0aW9uKGJvb2wgZW5h
YmxlKTsKKwogcHJpdmF0ZToKICAgICBpbmxpbmUgRXdrX1ZpZXdfU21hcnRfRGF0YSogc21hcnRE
YXRhKCkgY29uc3Q7CiAgICAgdm9pZCBkaXNwbGF5VGltZXJGaXJlZChXZWJDb3JlOjpUaW1lcjxF
d2tWaWV3SW1wbD4qKTsKQEAgLTI1NSw2ICsyNTcsNyBAQAogICAgIE93blB0cjxFd2tfUG9wdXBf
TWVudT4gbV9wb3B1cE1lbnU7CiAgICAgT3duUHRyPFdlYktpdDo6SW5wdXRNZXRob2RDb250ZXh0
RWZsPiBtX2lucHV0TWV0aG9kQ29udGV4dDsKICAgICBPd25QdHI8RXdrX0NvbG9yX1BpY2tlcj4g
bV9jb2xvclBpY2tlcjsKKyAgICBib29sIG1faGFyZHdhcmVBY2NlbGVyYXRpb25FbmFibGVkOwog
fTsKIAogI2VuZGlmIC8vIEV3a1ZpZXdJbXBsX2gKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZVJlbmRlcmVyLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRy
ZWVSZW5kZXJlci5jcHAJKHJldmlzaW9uIDEzNDA2MikKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZVJlbmRlcmVyLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtOTIsNiArOTIsNyBAQAogI2lmIEVOQUJMRShSRVFVRVNUX0FOSU1BVElPTl9GUkFN
RSkKICAgICAsIG1fYW5pbWF0aW9uRnJhbWVSZXF1ZXN0ZWQoZmFsc2UpCiAjZW5kaWYKKyAgICAs
IG1fYWNjZWxlcmF0aW9uTW9kZShUZXh0dXJlTWFwcGVyOjpPcGVuR0xNb2RlKQogewogfQogCkBA
IC00NTQsNyArNDU1LDcgQEAKICAgICBpZiAobV9yb290TGF5ZXIpCiAgICAgICAgIHJldHVybjsK
ICAgICBpZiAoIW1fdGV4dHVyZU1hcHBlcikgewotICAgICAgICBtX3RleHR1cmVNYXBwZXIgPSBU
ZXh0dXJlTWFwcGVyOjpjcmVhdGUoVGV4dHVyZU1hcHBlcjo6T3BlbkdMTW9kZSk7CisgICAgICAg
IG1fdGV4dHVyZU1hcHBlciA9IFRleHR1cmVNYXBwZXI6OmNyZWF0ZShtX2FjY2VsZXJhdGlvbk1v
ZGUpOwogICAgICAgICBzdGF0aWNfY2FzdDxUZXh0dXJlTWFwcGVyR0wqPihtX3RleHR1cmVNYXBw
ZXIuZ2V0KCkpLT5zZXRFbmFibGVFZGdlRGlzdGFuY2VBbnRpYWxpYXNpbmcodHJ1ZSk7CiAgICAg
fQogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9M
YXllclRyZWVSZW5kZXJlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZVJlbmRlcmVyLmgJKHJldmlzaW9uIDEzNDA2
MikKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVy
VHJlZVJlbmRlcmVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTk5LDYgKzk5LDEyIEBACiAgICAgdm9p
ZCBhbmltYXRpb25GcmFtZVJlYWR5KCk7CiAjZW5kaWYKIAorICAgIHZvaWQgc2V0QWNjZWxlcmF0
aW9uTW9kZShXZWJDb3JlOjpUZXh0dXJlTWFwcGVyOjpBY2NlbGVyYXRpb25Nb2RlIG1vZGUpCisg
ICAgeworICAgICAgICAvLyBUaGUgYWNjZWxlcmF0aW9uIG1vZGUgY2FuIGJlIHNldCBvbmx5IGJl
Zm9yZSBUZXh0dXJlTWFwcGVyIHdhcyBjcmVhdGVkLgorICAgICAgICBBU1NFUlQoIW1fdGV4dHVy
ZU1hcHBlcik7CisgICAgICAgIG1fYWNjZWxlcmF0aW9uTW9kZSA9IG1vZGU7CisgICAgfQogcHJp
dmF0ZToKICAgICBQYXNzT3duUHRyPFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI+IGNyZWF0ZUxheWVy
KFdlYkxheWVySUQpOwogCkBAIC0xNTMsNiArMTU5LDcgQEAKICNpZiBFTkFCTEUoUkVRVUVTVF9B
TklNQVRJT05fRlJBTUUpCiAgICAgYm9vbCBtX2FuaW1hdGlvbkZyYW1lUmVxdWVzdGVkOwogI2Vu
ZGlmCisgICAgV2ViQ29yZTo6VGV4dHVyZU1hcHBlcjo6QWNjZWxlcmF0aW9uTW9kZSBtX2FjY2Vs
ZXJhdGlvbk1vZGU7CiB9OwogCiB9OwpJbmRleDogU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkocmV2aXNpb24gMTM0MDYyKQor
KysgU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzcg
QEAKKzIwMTItMTEtMTAgIFlhZWwgQWhhcm9uICA8eWFlbC5haGFyb25AaW50ZWwuY29tPgorCisg
ICAgICAgIFtFRkxdW1dLMl1bQUNdIEJsYWNrIHNjcmVlbiB3aGVuIGFwcGxpY2F0aW9ucyB1c2Ug
c29mdHdhcmUgYmFja2VuZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEwMTY1OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIENyZWF0ZSBhIHNldHRpbmcgdGhhdCBhbGxvd3MgYXBwbGljYXRpb25zIHRvIGZh
bGxiYWNrIHRvIHRoZSBzb2Z0d2FyZSBwYXRoCisgICAgICAgIG9mIFRleHR1cmVNYXBwZXIuIFRo
ZSBzZXR0aW5nIGlzIG9ubHkgc3VwcG9ydGVkIGlmIFRleHR1cmVNYXBwZXIgd2FzIG5vdAorICAg
ICAgICBjcmVhdGVkIHlldCBhbmQgZG9lcyBub3QgYWxsb3cgdG8gc3dpdGNoIGFmdGVyd2FyZHMu
CisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3SW1wbC5jcHA6CisgICAgICAg
IChjcmVhdGVDYWlyb0NvbnRleHQpOgorICAgICAgICAoZnJlZUNhaXJvQ29udGV4dCk6CisgICAg
ICAgIChFd2tWaWV3SW1wbDo6RXdrVmlld0ltcGwpOgorICAgICAgICAoRXdrVmlld0ltcGw6OmRp
c3BsYXlUaW1lckZpcmVkKToKKyAgICAgICAgKEV3a1ZpZXdJbXBsOjpjcmVhdGVHTFN1cmZhY2Up
OgorICAgICAgICAoRXdrVmlld0ltcGw6OmVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUp
OgorICAgICAgICAoRXdrVmlld0ltcGw6OnNldEhhcmR3YXJlQWNjZWxlcmF0aW9uKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3SW1wbC5oOgorICAgICAgICAoRXdrVmlld0lt
cGwpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19zZXR0aW5ncy5jcHA6CisgICAg
ICAgIChld2tfc2V0dGluZ3NfaGFyZHdhcmVfYWNjZWxlcmF0aW9uX3NldCk6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9lZmwvZXdrX3NldHRpbmdzLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9lZmwvZXdrX3NldHRpbmdzX3ByaXZhdGUuaDoKKyAgICAgICAgKEV3a19TZXR0aW5nczo6dmll
dyk6CisgICAgICAgIChFd2tfU2V0dGluZ3MpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db29yZGlu
YXRlZEdyYXBoaWNzL0xheWVyVHJlZVJlbmRlcmVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TGF5
ZXJUcmVlUmVuZGVyZXI6OkxheWVyVHJlZVJlbmRlcmVyKToKKyAgICAgICAgKFdlYktpdDo6TGF5
ZXJUcmVlUmVuZGVyZXI6OmVuc3VyZVJvb3RMYXllcik6CisgICAgICAgICogVUlQcm9jZXNzL0Nv
b3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlUmVuZGVyZXIuaDoKKyAgICAgICAgKFdlYktpdDo6
TGF5ZXJUcmVlUmVuZGVyZXI6OnNldEFjY2VsZXJhdGlvbk1vZGUpOgorICAgICAgICAoTGF5ZXJU
cmVlUmVuZGVyZXIpOgorCiAyMDEyLTExLTA5ICBwZWF2b0BvdXRsb29rLmNvbSAgPHBlYXZvQG91
dGxvb2suY29tPgogCiAgICAgICAgIFdpbkNhaXJvIGJ1aWxkIGZhaWxzIHRvIGxpbmsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173466</attachid>
            <date>2012-11-10 12:44:45 -0800</date>
            <delta_ts>2012-11-10 19:00:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>101659.patch</filename>
            <type>text/plain</type>
            <size>10473</size>
            <attacher name="Yael">yael</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXdJbXBsLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlld0ltcGwu
aAkocmV2aXNpb24gMTM0MDYyKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwv
RXdrVmlld0ltcGwuaAkod29ya2luZyBjb3B5KQpAQCAtMTk5LDYgKzE5OSw4IEBACiAgICAgLy8g
RklYTUU6IG5lZWRzIHJlZmFjdG9yaW5nIChzcGxpdCBjYWxsYmFjayBpbnZva2UpCiAgICAgdm9p
ZCBpbmZvcm1VUkxDaGFuZ2UoKTsKIAorICAgIHZvaWQgc2V0SGFyZHdhcmVBY2NlbGVyYXRpb24o
Ym9vbCBlbmFibGUpOworCiBwcml2YXRlOgogICAgIGlubGluZSBFd2tfVmlld19TbWFydF9EYXRh
KiBzbWFydERhdGEoKSBjb25zdDsKICAgICB2b2lkIGRpc3BsYXlUaW1lckZpcmVkKFdlYkNvcmU6
OlRpbWVyPEV3a1ZpZXdJbXBsPiopOwpAQCAtMjU1LDYgKzI1Nyw3IEBACiAgICAgT3duUHRyPEV3
a19Qb3B1cF9NZW51PiBtX3BvcHVwTWVudTsKICAgICBPd25QdHI8V2ViS2l0OjpJbnB1dE1ldGhv
ZENvbnRleHRFZmw+IG1faW5wdXRNZXRob2RDb250ZXh0OwogICAgIE93blB0cjxFd2tfQ29sb3Jf
UGlja2VyPiBtX2NvbG9yUGlja2VyOworICAgIGJvb2wgbV9oYXJkd2FyZUFjY2VsZXJhdGlvbkVu
YWJsZWQ7CiB9OwogCiAjZW5kaWYgLy8gRXdrVmlld0ltcGxfaApJbmRleDogU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3NldHRpbmdzLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3NldHRpbmdzLmgJKHJldmlzaW9uIDEzNDA2
MikKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19zZXR0aW5ncy5oCSh3
b3JraW5nIGNvcHkpCkBAIC01MSw2ICs1MSwxMCBAQAogICovCiB0eXBlZGVmIHZvaWQgKCpFd2tf
U2V0dGluZ3NfQ29udGludW91c19TcGVsbF9DaGVja2luZ19DaGFuZ2VfQ2IpKEVpbmFfQm9vbCBl
bmFibGUpOwogCit0eXBlZGVmIGVudW0geworICAgIFNvZnR3YXJlUmVuZGVyaW5nLAorICAgIE9w
ZW5HTFJlbmRlcmluZworfSBSZW5kZXJpbmdNb2RlOwogCiAvKioKICAqIEVuYWJsZXMvZGlzYWJs
ZXMgdGhlIEphdmFzY3JpcHQgRnVsbHNjcmVlbiBBUEkuIFRoZSBKYXZhc2NyaXB0IEFQSSBhbGxv
d3MKQEAgLTM0NSw2ICszNDksMTkgQEAKICAqLwogRUFQSSB1bnNpZ25lZCBld2tfc2V0dGluZ3Nf
cHJlZmVycmVkX21pbmltdW1fY29udGVudHNfd2lkdGhfZ2V0KGNvbnN0IEV3a19TZXR0aW5ncyAq
c2V0dGluZ3MpOwogCisvKioKKyAqIEVuYWJsZXMvZGlzYWJsZXMgdXNlIG9mIGhhcmR3YXJlIGFj
Y2VsZXJhdGlvbi4gVGhpcyBzZXR0aW5nIHNob3VsZCBiZSBzZXQgdG8gU29mdHdhcmVSZW5kZW5p
bmcgaWYgc29mdHdhcmUgcGF0aCBpcyBkZXNpcmVkLgorICoKKyAqIEJ5IGRlZmF1bHQsIGhhcmR3
YXJlIGFjY2VsZXJhdGlvbiBpcyBlbmFibGVkIHdpdGggT3BlbkdMLgorICoKKyAqIEBwYXJhbSBz
ZXR0aW5ncyBzZXR0aW5ncyBvYmplY3QgdG8gc2V0IGhhcmR3YXJlIGFjY2VsZXJhdGlvbgorICog
QHBhcmFtIG1vZGUgQGMgT3BlbkdMUmVuZGVyaW5nIHRvIGVuYWJsZSBoYXJkd2FyZSBhY2NlbGVy
YXRpb24gd2l0aCBPcGVuR0wKKyAqICAgICAgICAgICAgICAgICAgQGMgU29mdHdhcmVSZW5kZXJp
bmcgdG8gZGlzYWJsZQorICoKKyAqIEByZXR1cm4gQGMgRUlOQV9UUlVFIG9uIHN1Y2Nlc3Mgb3Ig
QGMgRUlOQV9GQUxTRSBvbiBmYWlsdXJlCisgKi8KK0VBUEkgRWluYV9Cb29sIGV3a19zZXR0aW5n
c19oYXJkd2FyZV9hY2NlbGVyYXRpb25fc2V0KEV3a19TZXR0aW5ncyAqc2V0dGluZ3MsIFJlbmRl
cmluZ01vZGUgbW9kZSk7CisKICNpZmRlZiBfX2NwbHVzcGx1cwogfQogI2VuZGlmCkluZGV4OiBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfc2V0dGluZ3MuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19zZXR0aW5ncy5jcHAJ
KHJldmlzaW9uIDEzNDA2MikKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3
a19zZXR0aW5ncy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwMiwzICszMDIsMTIgQEAKIAogICAg
IHJldHVybiBzZXR0aW5ncy0+cHJlZmVyZW5jZXMoKS0+bGF5b3V0RmFsbGJhY2tXaWR0aCgpOwog
fQorCitFQVBJIEVpbmFfQm9vbCBld2tfc2V0dGluZ3NfaGFyZHdhcmVfYWNjZWxlcmF0aW9uX3Nl
dChFd2tfU2V0dGluZ3MgKnNldHRpbmdzLCBSZW5kZXJpbmdNb2RlIG1vZGUpCit7CisgICAgRUlO
QV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNldHRpbmdzLCBmYWxzZSk7CisKKyAgICBzZXR0
aW5ncy0+dmlldygpLT5zZXRIYXJkd2FyZUFjY2VsZXJhdGlvbihtb2RlID09IE9wZW5HTFJlbmRl
cmluZyk7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZWZsL0V3a1ZpZXdJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3SW1wbC5jcHAJKHJldmlzaW9uIDEzNDA2MikKKysr
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXdJbXBsLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNTUsNiArNTUsNyBAQAogI2luY2x1ZGUgPEVjb3JlX1guaD4KICNpbmNsdWRl
IDxFZGplLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9DdXJzb3IuaD4KKyNpbmNsdWRlIDxjYWlyby5o
PgogCiAjaWYgRU5BQkxFKFZJQlJBVElPTikKICNpbmNsdWRlICJWaWJyYXRpb25DbGllbnRFZmwu
aCIKQEAgLTgyLDYgKzgzLDI4IEBACiAgICAgcmV0dXJuIG1hcDsKIH0KIAorY2Fpcm9fdCogY3Jl
YXRlQ2Fpcm9Db250ZXh0KEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNkKQoreworICAgIEV2YXNfQ29v
cmQgd2lkdGgsIGhlaWdodDsKKyAgICB1aW50OF90KiBwaXhlbHMgPSBzdGF0aWNfY2FzdDx1aW50
OF90Kj4oZXZhc19vYmplY3RfaW1hZ2VfZGF0YV9nZXQoc2QtPmltYWdlLCB0cnVlKSk7CisgICAg
ZXZhc19vYmplY3RfaW1hZ2Vfc2l6ZV9nZXQoc2QtPmltYWdlLCAmd2lkdGgsICZoZWlnaHQpOwor
CisgICAgY2Fpcm9fc3VyZmFjZV90KiBzdXJmYWNlID0gY2Fpcm9faW1hZ2Vfc3VyZmFjZV9jcmVh
dGVfZm9yX2RhdGEocGl4ZWxzLCBDQUlST19GT1JNQVRfQVJHQjMyLCB3aWR0aCwgaGVpZ2h0LCA0
ICogd2lkdGgpOworICAgIGNhaXJvX3N0YXR1c190IHN0YXR1cyA9IGNhaXJvX3N1cmZhY2Vfc3Rh
dHVzKHN1cmZhY2UpOworICAgIGlmIChzdGF0dXMgIT0gQ0FJUk9fU1RBVFVTX1NVQ0NFU1MpCisg
ICAgICAgIHJldHVybiAwOworCisgICAgY2Fpcm9fdCogZ3JhcGhpY3NDb250ZXh0ID0gY2Fpcm9f
Y3JlYXRlKHN1cmZhY2UpOworICAgIHJldHVybiBncmFwaGljc0NvbnRleHQ7Cit9CisKK3ZvaWQg
ZnJlZUNhaXJvQ29udGV4dChjYWlyb190KiBncmFwaGljc0NvbnRleHQpCit7CisgICAgY2Fpcm9f
c3VyZmFjZV90KiBzdXJmYWNlID0gY2Fpcm9fZ2V0X3RhcmdldChncmFwaGljc0NvbnRleHQpOwor
ICAgIGNhaXJvX2Rlc3Ryb3koZ3JhcGhpY3NDb250ZXh0KTsKKyAgICBjYWlyb19zdXJmYWNlX2Zp
bmlzaChzdXJmYWNlKTsKK30KKwogdm9pZCBFd2tWaWV3SW1wbDo6YWRkVG9QYWdlVmlld01hcChF
d2tWaWV3SW1wbCogdmlld0ltcGwpCiB7CiAgICAgUGFnZVZpZXdNYXA6OkFkZFJlc3VsdCByZXN1
bHQgPSBwYWdlVmlld01hcCgpLmFkZCh2aWV3SW1wbC0+d2tQYWdlKCksIHZpZXdJbXBsLT52aWV3
KCkpOwpAQCAtMTI3LDYgKzE1MCw3IEBACiAjZW5kaWYKICAgICAsIG1fZGlzcGxheVRpbWVyKHRo
aXMsICZFd2tWaWV3SW1wbDo6ZGlzcGxheVRpbWVyRmlyZWQpCiAgICAgLCBtX2lucHV0TWV0aG9k
Q29udGV4dChJbnB1dE1ldGhvZENvbnRleHRFZmw6OmNyZWF0ZSh0aGlzLCBzbWFydERhdGEoKS0+
YmFzZS5ldmFzKSkKKyAgICAsIG1faGFyZHdhcmVBY2NlbGVyYXRpb25FbmFibGVkKHRydWUpCiB7
CiAgICAgQVNTRVJUKG1fdmlldyk7CiAgICAgQVNTRVJUKG1fY29udGV4dCk7CkBAIC0zMzIsMTAg
KzM1NiwxNyBAQAogICAgIExheWVyVHJlZVJlbmRlcmVyKiByZW5kZXJlciA9IHBhZ2UoKS0+ZHJh
d2luZ0FyZWEoKS0+bGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eSgpLT5sYXllclRyZWVSZW5kZXJl
cigpOwogICAgIHJlbmRlcmVyLT5zZXRBY3RpdmUodHJ1ZSk7CiAgICAgcmVuZGVyZXItPnN5bmNS
ZW1vdGVDb250ZW50KCk7Ci0KLSAgICByZW5kZXJlci0+cGFpbnRUb0N1cnJlbnRHTENvbnRleHQo
dHJhbnNmb3JtVG9TY2VuZSgpLnRvVHJhbnNmb3JtYXRpb25NYXRyaXgoKSwgLyogb3BhY2l0eSAq
LyAxLCB2aWV3cG9ydCk7Ci0KLSAgICBldmFzX29iamVjdF9pbWFnZV9kYXRhX3VwZGF0ZV9hZGQo
c2QtPmltYWdlLCB2aWV3cG9ydC54KCksIHZpZXdwb3J0LnkoKSwgdmlld3BvcnQud2lkdGgoKSwg
dmlld3BvcnQuaGVpZ2h0KCkpOworICAgIGlmIChtX2hhcmR3YXJlQWNjZWxlcmF0aW9uRW5hYmxl
ZCkgeworICAgICAgICByZW5kZXJlci0+cGFpbnRUb0N1cnJlbnRHTENvbnRleHQodHJhbnNmb3Jt
VG9TY2VuZSgpLnRvVHJhbnNmb3JtYXRpb25NYXRyaXgoKSwgLyogb3BhY2l0eSAqLyAxLCB2aWV3
cG9ydCk7CisgICAgICAgIGV2YXNfb2JqZWN0X2ltYWdlX2RhdGFfdXBkYXRlX2FkZChzZC0+aW1h
Z2UsIHZpZXdwb3J0LngoKSwgdmlld3BvcnQueSgpLCB2aWV3cG9ydC53aWR0aCgpLCB2aWV3cG9y
dC5oZWlnaHQoKSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgY2Fpcm9fdCogZ3JhcGhpY3NDb250
ZXh0ID0gY3JlYXRlQ2Fpcm9Db250ZXh0KHNkKTsKKyAgICAgICAgaWYgKCFncmFwaGljc0NvbnRl
eHQpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIHJlbmRlcmVyLT5wYWludFRvR3JhcGhp
Y3NDb250ZXh0KGdyYXBoaWNzQ29udGV4dCk7CisgICAgICAgIGV2YXNfb2JqZWN0X2ltYWdlX2Rh
dGFfdXBkYXRlX2FkZChzZC0+aW1hZ2UsIDAsIDAsIHZpZXdwb3J0LndpZHRoKCksIHZpZXdwb3J0
LmhlaWdodCgpKTsKKyAgICAgICAgZnJlZUNhaXJvQ29udGV4dChncmFwaGljc0NvbnRleHQpOwor
ICAgIH0KICNlbmRpZgogfQogCkBAIC01NjYsNiArNTk3LDkgQEAKICNpZiBVU0UoQUNDRUxFUkFU
RURfQ09NUE9TSVRJTkcpCiBib29sIEV3a1ZpZXdJbXBsOjpjcmVhdGVHTFN1cmZhY2UoY29uc3Qg
SW50U2l6ZSYgdmlld1NpemUpCiB7CisgICAgaWYgKCFtX2hhcmR3YXJlQWNjZWxlcmF0aW9uRW5h
YmxlZCkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKICAgICBpZiAoIW1fZXZhc0dMKSB7CiAgICAg
ICAgIEV2YXMqIGV2YXMgPSBldmFzX29iamVjdF9ldmFzX2dldChtX3ZpZXcpOwogICAgICAgICBt
X2V2YXNHTCA9IGFkb3B0UHRyKGV2YXNfZ2xfbmV3KGV2YXMpKTsKQEAgLTYxMCwxMCArNjQ0LDEy
IEBACiAKIGJvb2wgRXdrVmlld0ltcGw6OmVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUo
KQogewotICAgIGlmICghbV9ldmFzR0xTdXJmYWNlKSB7Ci0gICAgICAgIGlmICghY3JlYXRlR0xT
dXJmYWNlKHNpemUoKSkpIHsKLSAgICAgICAgICAgIFdBUk4oIkZhaWxlZCB0byBjcmVhdGUgR0xT
dXJmYWNlLiIpOwotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmIChtX2hhcmR3YXJl
QWNjZWxlcmF0aW9uRW5hYmxlZCkgeworICAgICAgICBpZiAoIW1fZXZhc0dMU3VyZmFjZSkgewor
ICAgICAgICAgICAgaWYgKCFjcmVhdGVHTFN1cmZhY2Uoc2l6ZSgpKSkgeworICAgICAgICAgICAg
ICAgIFdBUk4oIkZhaWxlZCB0byBjcmVhdGUgR0xTdXJmYWNlLiIpOworICAgICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KIApAQCAtODk2
LDMgKzkzMiwxMCBAQAogCiAgICAgdmlld0ltcGwtPmluZm9ybUljb25DaGFuZ2UoKTsKIH0KKwor
dm9pZCBFd2tWaWV3SW1wbDo6c2V0SGFyZHdhcmVBY2NlbGVyYXRpb24oYm9vbCBlbmFibGUpCit7
CisgICAgbV9oYXJkd2FyZUFjY2VsZXJhdGlvbkVuYWJsZWQgPSBlbmFibGU7CisgICAgcGFnZSgp
LT5kcmF3aW5nQXJlYSgpLT5sYXllclRyZWVDb29yZGluYXRvclByb3h5KCktPmxheWVyVHJlZVJl
bmRlcmVyKCktPnNldEFjY2VsZXJhdGlvbk1vZGUoZW5hYmxlID8gVGV4dHVyZU1hcHBlcjo6T3Bl
bkdMTW9kZSA6IFRleHR1cmVNYXBwZXI6OlNvZnR3YXJlTW9kZSk7Cit9CisKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19zZXR0aW5nc19wcml2YXRlLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3NldHRpbmdzX3By
aXZhdGUuaAkocmV2aXNpb24gMTM0MDYyKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9lZmwvZXdrX3NldHRpbmdzX3ByaXZhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtNDcsNiArNDcs
OCBAQAogICAgIGNvbnN0IFdlYktpdDo6V2ViUHJlZmVyZW5jZXMqIHByZWZlcmVuY2VzKCkgY29u
c3Q7CiAgICAgV2ViS2l0OjpXZWJQcmVmZXJlbmNlcyogcHJlZmVyZW5jZXMoKTsKIAorICAgIEV3
a1ZpZXdJbXBsKiB2aWV3KCkgeyByZXR1cm4gbV92aWV3SW1wbDsgfQorCiBwcml2YXRlOgogICAg
IGV4cGxpY2l0IEV3a19TZXR0aW5ncyhFd2tWaWV3SW1wbCogdmlld0ltcGwpCiAgICAgICAgIDog
bV92aWV3SW1wbCh2aWV3SW1wbCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29y
ZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZVJlbmRlcmVyLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVSZW5kZXJl
ci5jcHAJKHJldmlzaW9uIDEzNDA2MikKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29y
ZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZVJlbmRlcmVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
OTIsNiArOTIsNyBAQAogI2lmIEVOQUJMRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRSkKICAgICAs
IG1fYW5pbWF0aW9uRnJhbWVSZXF1ZXN0ZWQoZmFsc2UpCiAjZW5kaWYKKyAgICAsIG1fYWNjZWxl
cmF0aW9uTW9kZShUZXh0dXJlTWFwcGVyOjpPcGVuR0xNb2RlKQogewogfQogCkBAIC00NTQsNyAr
NDU1LDcgQEAKICAgICBpZiAobV9yb290TGF5ZXIpCiAgICAgICAgIHJldHVybjsKICAgICBpZiAo
IW1fdGV4dHVyZU1hcHBlcikgewotICAgICAgICBtX3RleHR1cmVNYXBwZXIgPSBUZXh0dXJlTWFw
cGVyOjpjcmVhdGUoVGV4dHVyZU1hcHBlcjo6T3BlbkdMTW9kZSk7CisgICAgICAgIG1fdGV4dHVy
ZU1hcHBlciA9IFRleHR1cmVNYXBwZXI6OmNyZWF0ZShtX2FjY2VsZXJhdGlvbk1vZGUpOwogICAg
ICAgICBzdGF0aWNfY2FzdDxUZXh0dXJlTWFwcGVyR0wqPihtX3RleHR1cmVNYXBwZXIuZ2V0KCkp
LT5zZXRFbmFibGVFZGdlRGlzdGFuY2VBbnRpYWxpYXNpbmcodHJ1ZSk7CiAgICAgfQogCkluZGV4
OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVS
ZW5kZXJlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGlu
YXRlZEdyYXBoaWNzL0xheWVyVHJlZVJlbmRlcmVyLmgJKHJldmlzaW9uIDEzNDA2MikKKysrIFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZVJlbmRl
cmVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTk5LDYgKzk5LDEyIEBACiAgICAgdm9pZCBhbmltYXRp
b25GcmFtZVJlYWR5KCk7CiAjZW5kaWYKIAorICAgIHZvaWQgc2V0QWNjZWxlcmF0aW9uTW9kZShX
ZWJDb3JlOjpUZXh0dXJlTWFwcGVyOjpBY2NlbGVyYXRpb25Nb2RlIG1vZGUpCisgICAgeworICAg
ICAgICAvLyBUaGUgYWNjZWxlcmF0aW9uIG1vZGUgY2FuIGJlIHNldCBvbmx5IGJlZm9yZSBUZXh0
dXJlTWFwcGVyIHdhcyBjcmVhdGVkLgorICAgICAgICBBU1NFUlQoIW1fdGV4dHVyZU1hcHBlcik7
CisgICAgICAgIG1fYWNjZWxlcmF0aW9uTW9kZSA9IG1vZGU7CisgICAgfQogcHJpdmF0ZToKICAg
ICBQYXNzT3duUHRyPFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI+IGNyZWF0ZUxheWVyKFdlYkxheWVy
SUQpOwogCkBAIC0xNTMsNiArMTU5LDcgQEAKICNpZiBFTkFCTEUoUkVRVUVTVF9BTklNQVRJT05f
RlJBTUUpCiAgICAgYm9vbCBtX2FuaW1hdGlvbkZyYW1lUmVxdWVzdGVkOwogI2VuZGlmCisgICAg
V2ViQ29yZTo6VGV4dHVyZU1hcHBlcjo6QWNjZWxlcmF0aW9uTW9kZSBtX2FjY2VsZXJhdGlvbk1v
ZGU7CiB9OwogCiB9OwpJbmRleDogU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkocmV2aXNpb24gMTM0MDYyKQorKysgU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzcgQEAKKzIwMTIt
MTEtMTAgIFlhZWwgQWhhcm9uICA8eWFlbC5haGFyb25AaW50ZWwuY29tPgorCisgICAgICAgIFtF
RkxdW1dLMl1bQUNdIEJsYWNrIHNjcmVlbiB3aGVuIGFwcGxpY2F0aW9ucyB1c2Ugc29mdHdhcmUg
YmFja2VuZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEwMTY1OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IENyZWF0ZSBhIHNldHRpbmcgdGhhdCBhbGxvd3MgYXBwbGljYXRpb25zIHRvIGZhbGxiYWNrIHRv
IHRoZSBzb2Z0d2FyZSBwYXRoCisgICAgICAgIG9mIFRleHR1cmVNYXBwZXIuIFRoZSBzZXR0aW5n
IGlzIG9ubHkgc3VwcG9ydGVkIGlmIFRleHR1cmVNYXBwZXIgd2FzIG5vdAorICAgICAgICBjcmVh
dGVkIHlldCBhbmQgZG9lcyBub3QgYWxsb3cgdG8gc3dpdGNoIGFmdGVyd2FyZHMuCisKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3SW1wbC5jcHA6CisgICAgICAgIChjcmVhdGVD
YWlyb0NvbnRleHQpOgorICAgICAgICAoZnJlZUNhaXJvQ29udGV4dCk6CisgICAgICAgIChFd2tW
aWV3SW1wbDo6RXdrVmlld0ltcGwpOgorICAgICAgICAoRXdrVmlld0ltcGw6OmRpc3BsYXlUaW1l
ckZpcmVkKToKKyAgICAgICAgKEV3a1ZpZXdJbXBsOjpjcmVhdGVHTFN1cmZhY2UpOgorICAgICAg
ICAoRXdrVmlld0ltcGw6OmVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUpOgorICAgICAg
ICAoRXdrVmlld0ltcGw6OnNldEhhcmR3YXJlQWNjZWxlcmF0aW9uKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL2VmbC9Fd2tWaWV3SW1wbC5oOgorICAgICAgICAoRXdrVmlld0ltcGwpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19zZXR0aW5ncy5jcHA6CisgICAgICAgIChld2tf
c2V0dGluZ3NfaGFyZHdhcmVfYWNjZWxlcmF0aW9uX3NldCk6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9lZmwvZXdrX3NldHRpbmdzLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdr
X3NldHRpbmdzX3ByaXZhdGUuaDoKKyAgICAgICAgKEV3a19TZXR0aW5nczo6dmlldyk6CisgICAg
ICAgIChFd2tfU2V0dGluZ3MpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBo
aWNzL0xheWVyVHJlZVJlbmRlcmVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlUmVu
ZGVyZXI6OkxheWVyVHJlZVJlbmRlcmVyKToKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlUmVu
ZGVyZXI6OmVuc3VyZVJvb3RMYXllcik6CisgICAgICAgICogVUlQcm9jZXNzL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvTGF5ZXJUcmVlUmVuZGVyZXIuaDoKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVl
UmVuZGVyZXI6OnNldEFjY2VsZXJhdGlvbk1vZGUpOgorICAgICAgICAoTGF5ZXJUcmVlUmVuZGVy
ZXIpOgorCiAyMDEyLTExLTA5ICBwZWF2b0BvdXRsb29rLmNvbSAgPHBlYXZvQG91dGxvb2suY29t
PgogCiAgICAgICAgIFdpbkNhaXJvIGJ1aWxkIGZhaWxzIHRvIGxpbmsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173482</attachid>
            <date>2012-11-10 19:00:35 -0800</date>
            <delta_ts>2012-11-11 22:00:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>101659.patch</filename>
            <type>text/plain</type>
            <size>9300</size>
            <attacher name="Yael">yael</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXdJbXBsLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3SW1w
bC5jcHAJKHJldmlzaW9uIDEzNDA2MikKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
ZWZsL0V3a1ZpZXdJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTUsNiArNTUsNyBAQAogI2lu
Y2x1ZGUgPEVjb3JlX1guaD4KICNpbmNsdWRlIDxFZGplLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9D
dXJzb3IuaD4KKyNpbmNsdWRlIDxjYWlyby5oPgogCiAjaWYgRU5BQkxFKFZJQlJBVElPTikKICNp
bmNsdWRlICJWaWJyYXRpb25DbGllbnRFZmwuaCIKQEAgLTgyLDYgKzgzLDI4IEBACiAgICAgcmV0
dXJuIG1hcDsKIH0KIAorY2Fpcm9fdCogY3JlYXRlQ2Fpcm9Db250ZXh0KEV3a19WaWV3X1NtYXJ0
X0RhdGEqIHNkKQoreworICAgIEV2YXNfQ29vcmQgd2lkdGgsIGhlaWdodDsKKyAgICB1aW50OF90
KiBwaXhlbHMgPSBzdGF0aWNfY2FzdDx1aW50OF90Kj4oZXZhc19vYmplY3RfaW1hZ2VfZGF0YV9n
ZXQoc2QtPmltYWdlLCB0cnVlKSk7CisgICAgZXZhc19vYmplY3RfaW1hZ2Vfc2l6ZV9nZXQoc2Qt
PmltYWdlLCAmd2lkdGgsICZoZWlnaHQpOworCisgICAgY2Fpcm9fc3VyZmFjZV90KiBzdXJmYWNl
ID0gY2Fpcm9faW1hZ2Vfc3VyZmFjZV9jcmVhdGVfZm9yX2RhdGEocGl4ZWxzLCBDQUlST19GT1JN
QVRfQVJHQjMyLCB3aWR0aCwgaGVpZ2h0LCA0ICogd2lkdGgpOworICAgIGNhaXJvX3N0YXR1c190
IHN0YXR1cyA9IGNhaXJvX3N1cmZhY2Vfc3RhdHVzKHN1cmZhY2UpOworICAgIGlmIChzdGF0dXMg
IT0gQ0FJUk9fU1RBVFVTX1NVQ0NFU1MpCisgICAgICAgIHJldHVybiAwOworCisgICAgY2Fpcm9f
dCogZ3JhcGhpY3NDb250ZXh0ID0gY2Fpcm9fY3JlYXRlKHN1cmZhY2UpOworICAgIHJldHVybiBn
cmFwaGljc0NvbnRleHQ7Cit9CisKK3ZvaWQgZnJlZUNhaXJvQ29udGV4dChjYWlyb190KiBncmFw
aGljc0NvbnRleHQpCit7CisgICAgY2Fpcm9fc3VyZmFjZV90KiBzdXJmYWNlID0gY2Fpcm9fZ2V0
X3RhcmdldChncmFwaGljc0NvbnRleHQpOworICAgIGNhaXJvX2Rlc3Ryb3koZ3JhcGhpY3NDb250
ZXh0KTsKKyAgICBjYWlyb19zdXJmYWNlX2ZpbmlzaChzdXJmYWNlKTsKK30KKwogdm9pZCBFd2tW
aWV3SW1wbDo6YWRkVG9QYWdlVmlld01hcChFd2tWaWV3SW1wbCogdmlld0ltcGwpCiB7CiAgICAg
UGFnZVZpZXdNYXA6OkFkZFJlc3VsdCByZXN1bHQgPSBwYWdlVmlld01hcCgpLmFkZCh2aWV3SW1w
bC0+d2tQYWdlKCksIHZpZXdJbXBsLT52aWV3KCkpOwpAQCAtMTI3LDYgKzE1MCw3IEBACiAjZW5k
aWYKICAgICAsIG1fZGlzcGxheVRpbWVyKHRoaXMsICZFd2tWaWV3SW1wbDo6ZGlzcGxheVRpbWVy
RmlyZWQpCiAgICAgLCBtX2lucHV0TWV0aG9kQ29udGV4dChJbnB1dE1ldGhvZENvbnRleHRFZmw6
OmNyZWF0ZSh0aGlzLCBzbWFydERhdGEoKS0+YmFzZS5ldmFzKSkKKyAgICAsIG1faGFyZHdhcmVB
Y2NlbGVyYXRpb25FbmFibGVkKHRydWUpCiB7CiAgICAgQVNTRVJUKG1fdmlldyk7CiAgICAgQVNT
RVJUKG1fY29udGV4dCk7CkBAIC0zMzIsMTAgKzM1NiwyMCBAQAogICAgIExheWVyVHJlZVJlbmRl
cmVyKiByZW5kZXJlciA9IHBhZ2UoKS0+ZHJhd2luZ0FyZWEoKS0+bGF5ZXJUcmVlQ29vcmRpbmF0
b3JQcm94eSgpLT5sYXllclRyZWVSZW5kZXJlcigpOwogICAgIHJlbmRlcmVyLT5zZXRBY3RpdmUo
dHJ1ZSk7CiAgICAgcmVuZGVyZXItPnN5bmNSZW1vdGVDb250ZW50KCk7CisgICAgaWYgKG1faGFy
ZHdhcmVBY2NlbGVyYXRpb25FbmFibGVkKSB7CisgICAgICAgIHJlbmRlcmVyLT5wYWludFRvQ3Vy
cmVudEdMQ29udGV4dCh0cmFuc2Zvcm1Ub1NjZW5lKCkudG9UcmFuc2Zvcm1hdGlvbk1hdHJpeCgp
LCAvKiBvcGFjaXR5ICovIDEsIHZpZXdwb3J0KTsKKyAgICAgICAgZXZhc19vYmplY3RfaW1hZ2Vf
ZGF0YV91cGRhdGVfYWRkKHNkLT5pbWFnZSwgdmlld3BvcnQueCgpLCB2aWV3cG9ydC55KCksIHZp
ZXdwb3J0LndpZHRoKCksIHZpZXdwb3J0LmhlaWdodCgpKTsKKyAgICB9IGVsc2UgeworICAgICAg
ICBjYWlyb190KiBncmFwaGljc0NvbnRleHQgPSBjcmVhdGVDYWlyb0NvbnRleHQoc2QpOworICAg
ICAgICBpZiAoIWdyYXBoaWNzQ29udGV4dCkKKyAgICAgICAgICAgIHJldHVybjsKIAotICAgIHJl
bmRlcmVyLT5wYWludFRvQ3VycmVudEdMQ29udGV4dCh0cmFuc2Zvcm1Ub1NjZW5lKCkudG9UcmFu
c2Zvcm1hdGlvbk1hdHJpeCgpLCAvKiBvcGFjaXR5ICovIDEsIHZpZXdwb3J0KTsKLQotICAgIGV2
YXNfb2JqZWN0X2ltYWdlX2RhdGFfdXBkYXRlX2FkZChzZC0+aW1hZ2UsIHZpZXdwb3J0LngoKSwg
dmlld3BvcnQueSgpLCB2aWV3cG9ydC53aWR0aCgpLCB2aWV3cG9ydC5oZWlnaHQoKSk7CisgICAg
ICAgIGNhaXJvX3RyYW5zbGF0ZShncmFwaGljc0NvbnRleHQsIC1tX3Njcm9sbFBvc2l0aW9uLngo
KSwgLW1fc2Nyb2xsUG9zaXRpb24ueSgpKTsKKyAgICAgICAgY2Fpcm9fc2NhbGUoZ3JhcGhpY3ND
b250ZXh0LCBtX3NjYWxlRmFjdG9yLCBtX3NjYWxlRmFjdG9yKTsKKyAgICAgICAgcmVuZGVyZXIt
PnBhaW50VG9HcmFwaGljc0NvbnRleHQoZ3JhcGhpY3NDb250ZXh0KTsKKyAgICAgICAgZXZhc19v
YmplY3RfaW1hZ2VfZGF0YV91cGRhdGVfYWRkKHNkLT5pbWFnZSwgMCwgMCwgdmlld3BvcnQud2lk
dGgoKSwgdmlld3BvcnQuaGVpZ2h0KCkpOworICAgICAgICBmcmVlQ2Fpcm9Db250ZXh0KGdyYXBo
aWNzQ29udGV4dCk7CisgICAgfQogI2VuZGlmCiB9CiAKQEAgLTU2NiwxMSArNjAwLDIwIEBACiAj
aWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogYm9vbCBFd2tWaWV3SW1wbDo6Y3JlYXRl
R0xTdXJmYWNlKGNvbnN0IEludFNpemUmIHZpZXdTaXplKQogeworICAgIGlmICghbV9oYXJkd2Fy
ZUFjY2VsZXJhdGlvbkVuYWJsZWQpCisgICAgICAgIHJldHVybiB0cnVlOworCiAgICAgaWYgKCFt
X2V2YXNHTCkgewogICAgICAgICBFdmFzKiBldmFzID0gZXZhc19vYmplY3RfZXZhc19nZXQobV92
aWV3KTsKICAgICAgICAgbV9ldmFzR0wgPSBhZG9wdFB0cihldmFzX2dsX25ldyhldmFzKSk7Ci0g
ICAgICAgIGlmICghbV9ldmFzR0wpCisgICAgICAgIGlmICghbV9ldmFzR0wpIHsKKyAgICAgICAg
ICAgIG1faGFyZHdhcmVBY2NlbGVyYXRpb25FbmFibGVkID0gZmFsc2U7CisgICAgICAgICAgICBw
YWdlKCktPmRyYXdpbmdBcmVhKCktPmxheWVyVHJlZUNvb3JkaW5hdG9yUHJveHkoKS0+bGF5ZXJU
cmVlUmVuZGVyZXIoKS0+c2V0QWNjZWxlcmF0aW9uTW9kZShUZXh0dXJlTWFwcGVyOjpTb2Z0d2Fy
ZU1vZGUpOworI2lmIEVOQUJMRShXRUJHTCkKKyAgICAgICAgICAgIG1fcGFnZVByb3h5LT5wYWdl
R3JvdXAoKS0+cHJlZmVyZW5jZXMoKS0+c2V0V2ViR0xFbmFibGVkKGZhbHNlKTsKKyNlbmRpZgog
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CiAgICAgfQogCiAgICAgaWYgKCFt
X2V2YXNHTENvbnRleHQpIHsKQEAgLTYxMCwxMCArNjUzLDEyIEBACiAKIGJvb2wgRXdrVmlld0lt
cGw6OmVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoKQogewotICAgIGlmICghbV9ldmFz
R0xTdXJmYWNlKSB7Ci0gICAgICAgIGlmICghY3JlYXRlR0xTdXJmYWNlKHNpemUoKSkpIHsKLSAg
ICAgICAgICAgIFdBUk4oIkZhaWxlZCB0byBjcmVhdGUgR0xTdXJmYWNlLiIpOwotICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIGlmIChtX2hhcmR3YXJlQWNjZWxlcmF0aW9uRW5hYmxlZCkg
eworICAgICAgICBpZiAoIW1fZXZhc0dMU3VyZmFjZSkgeworICAgICAgICAgICAgaWYgKCFjcmVh
dGVHTFN1cmZhY2Uoc2l6ZSgpKSkgeworICAgICAgICAgICAgICAgIFdBUk4oIkZhaWxlZCB0byBj
cmVhdGUgR0xTdXJmYWNlLiIpOworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAg
ICAgICAgIH0KICAgICAgICAgfQogICAgIH0KIApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9lZmwvRXdrVmlld0ltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3SW1wbC5oCShyZXZpc2lvbiAxMzQwNjIpCisrKyBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3SW1wbC5oCSh3b3JraW5nIGNvcHkp
CkBAIC0xOTksNiArMTk5LDggQEAKICAgICAvLyBGSVhNRTogbmVlZHMgcmVmYWN0b3JpbmcgKHNw
bGl0IGNhbGxiYWNrIGludm9rZSkKICAgICB2b2lkIGluZm9ybVVSTENoYW5nZSgpOwogCisgICAg
Ym9vbCBoYXJkd2FyZUFjY2VsZXJhdGlvbkVuYWJsZWQoKSB7IHJldHVybiBtX2hhcmR3YXJlQWNj
ZWxlcmF0aW9uRW5hYmxlZDsgfQorCiBwcml2YXRlOgogICAgIGlubGluZSBFd2tfVmlld19TbWFy
dF9EYXRhKiBzbWFydERhdGEoKSBjb25zdDsKICAgICB2b2lkIGRpc3BsYXlUaW1lckZpcmVkKFdl
YkNvcmU6OlRpbWVyPEV3a1ZpZXdJbXBsPiopOwpAQCAtMjU1LDYgKzI1Nyw3IEBACiAgICAgT3du
UHRyPEV3a19Qb3B1cF9NZW51PiBtX3BvcHVwTWVudTsKICAgICBPd25QdHI8V2ViS2l0OjpJbnB1
dE1ldGhvZENvbnRleHRFZmw+IG1faW5wdXRNZXRob2RDb250ZXh0OwogICAgIE93blB0cjxFd2tf
Q29sb3JfUGlja2VyPiBtX2NvbG9yUGlja2VyOworICAgIGJvb2wgbV9oYXJkd2FyZUFjY2VsZXJh
dGlvbkVuYWJsZWQ7CiB9OwogCiAjZW5kaWYgLy8gRXdrVmlld0ltcGxfaApJbmRleDogU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL2VmbC9QYWdlQ2xpZW50QmFzZS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9QYWdlQ2xpZW50QmFzZS5jcHAJKHJldmlzaW9u
IDEzNDA2MikKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFnZUNsaWVudEJhc2Uu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw4ICsyOSwxMSBAQAogI2luY2x1ZGUgIkRyYXdpbmdB
cmVhUHJveHlJbXBsLmgiCiAjaW5jbHVkZSAiRXdrVmlld0ltcGwuaCIKICNpbmNsdWRlICJJbnB1
dE1ldGhvZENvbnRleHRFZmwuaCIKKyNpbmNsdWRlICJMYXllclRyZWVDb29yZGluYXRvclByb3h5
LmgiCisjaW5jbHVkZSAiTGF5ZXJUcmVlUmVuZGVyZXIuaCIKICNpbmNsdWRlICJOYXRpdmVXZWJL
ZXlib2FyZEV2ZW50LmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKyNpbmNsdWRlICJU
ZXh0dXJlTWFwcGVyLmgiCiAjaW5jbHVkZSAiV2ViQ29udGV4dC5oIgogI2luY2x1ZGUgIldlYkNv
bnRleHRNZW51UHJveHkuaCIKICNpbmNsdWRlICJXZWJQYWdlR3JvdXAuaCIKQEAgLTY2LDcgKzY5
LDEyIEBACiAvLyBQYWdlQ2xpZW50CiBQYXNzT3duUHRyPERyYXdpbmdBcmVhUHJveHk+IFBhZ2VD
bGllbnRCYXNlOjpjcmVhdGVEcmF3aW5nQXJlYVByb3h5KCkKIHsKLSAgICByZXR1cm4gRHJhd2lu
Z0FyZWFQcm94eUltcGw6OmNyZWF0ZShtX3ZpZXdJbXBsLT5wYWdlKCkpOworICAgIFBhc3NPd25Q
dHI8RHJhd2luZ0FyZWFQcm94eT4gZHJhd2luZ0FyZWEgPSBEcmF3aW5nQXJlYVByb3h5SW1wbDo6
Y3JlYXRlKG1fdmlld0ltcGwtPnBhZ2UoKSk7CisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lU
SU5HKQorICAgIGlmICghbV92aWV3SW1wbC0+aGFyZHdhcmVBY2NlbGVyYXRpb25FbmFibGVkKCkp
CisgICAgICAgIGRyYXdpbmdBcmVhLT5sYXllclRyZWVDb29yZGluYXRvclByb3h5KCktPmxheWVy
VHJlZVJlbmRlcmVyKCktPnNldEFjY2VsZXJhdGlvbk1vZGUoVGV4dHVyZU1hcHBlcjo6U29mdHdh
cmVNb2RlKTsKKyNlbmRpZgorICAgIHJldHVybiBkcmF3aW5nQXJlYTsKIH0KIAogdm9pZCBQYWdl
Q2xpZW50QmFzZTo6c2V0Vmlld05lZWRzRGlzcGxheShjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBy
ZWN0KQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3Mv
TGF5ZXJUcmVlUmVuZGVyZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZVJlbmRlcmVyLmNwcAkocmV2aXNpb24g
MTM0MDYyKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3Mv
TGF5ZXJUcmVlUmVuZGVyZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05Miw2ICs5Miw3IEBACiAj
aWYgRU5BQkxFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKQogICAgICwgbV9hbmltYXRpb25GcmFt
ZVJlcXVlc3RlZChmYWxzZSkKICNlbmRpZgorICAgICwgbV9hY2NlbGVyYXRpb25Nb2RlKFRleHR1
cmVNYXBwZXI6Ok9wZW5HTE1vZGUpCiB7CiB9CiAKQEAgLTQ1NCw3ICs0NTUsNyBAQAogICAgIGlm
IChtX3Jvb3RMYXllcikKICAgICAgICAgcmV0dXJuOwogICAgIGlmICghbV90ZXh0dXJlTWFwcGVy
KSB7Ci0gICAgICAgIG1fdGV4dHVyZU1hcHBlciA9IFRleHR1cmVNYXBwZXI6OmNyZWF0ZShUZXh0
dXJlTWFwcGVyOjpPcGVuR0xNb2RlKTsKKyAgICAgICAgbV90ZXh0dXJlTWFwcGVyID0gVGV4dHVy
ZU1hcHBlcjo6Y3JlYXRlKG1fYWNjZWxlcmF0aW9uTW9kZSk7CiAgICAgICAgIHN0YXRpY19jYXN0
PFRleHR1cmVNYXBwZXJHTCo+KG1fdGV4dHVyZU1hcHBlci5nZXQoKSktPnNldEVuYWJsZUVkZ2VE
aXN0YW5jZUFudGlhbGlhc2luZyh0cnVlKTsKICAgICB9CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZVJlbmRlcmVyLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5
ZXJUcmVlUmVuZGVyZXIuaAkocmV2aXNpb24gMTM0MDYyKQorKysgU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlUmVuZGVyZXIuaAkod29ya2luZyBj
b3B5KQpAQCAtOTksNiArOTksMTIgQEAKICAgICB2b2lkIGFuaW1hdGlvbkZyYW1lUmVhZHkoKTsK
ICNlbmRpZgogCisgICAgdm9pZCBzZXRBY2NlbGVyYXRpb25Nb2RlKFdlYkNvcmU6OlRleHR1cmVN
YXBwZXI6OkFjY2VsZXJhdGlvbk1vZGUgbW9kZSkKKyAgICB7CisgICAgICAgIC8vIFRoZSBhY2Nl
bGVyYXRpb24gbW9kZSBjYW4gYmUgc2V0IG9ubHkgYmVmb3JlIFRleHR1cmVNYXBwZXIgd2FzIGNy
ZWF0ZWQuCisgICAgICAgIEFTU0VSVCghbV90ZXh0dXJlTWFwcGVyKTsKKyAgICAgICAgbV9hY2Nl
bGVyYXRpb25Nb2RlID0gbW9kZTsKKyAgICB9CiBwcml2YXRlOgogICAgIFBhc3NPd25QdHI8V2Vi
Q29yZTo6R3JhcGhpY3NMYXllcj4gY3JlYXRlTGF5ZXIoV2ViTGF5ZXJJRCk7CiAKQEAgLTE1Myw2
ICsxNTksNyBAQAogI2lmIEVOQUJMRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRSkKICAgICBib29s
IG1fYW5pbWF0aW9uRnJhbWVSZXF1ZXN0ZWQ7CiAjZW5kaWYKKyAgICBXZWJDb3JlOjpUZXh0dXJl
TWFwcGVyOjpBY2NlbGVyYXRpb25Nb2RlIG1fYWNjZWxlcmF0aW9uTW9kZTsKIH07CiAKIH07Cklu
ZGV4OiBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMzQxNjcpCisrKyBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwzMiBAQAorMjAxMi0xMS0xMCAgWWFlbCBBaGFy
b24gIDx5YWVsLmFoYXJvbkBpbnRlbC5jb20+CisKKyAgICAgICAgW0VGTF1bV0syXVtBQ10gQmxh
Y2sgc2NyZWVuIHdoZW4gYXBwbGljYXRpb25zIHVzZSBzb2Z0d2FyZSBiYWNrZW5kLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxNjU5CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSWYgY3JlYXRpbmcgb3Bl
bkdMIGNvbnRleHQgZmFpbHMsIGF1dG9tYXRpY2FsbHkgZmFsbGJhY2sgdG8gc29mdHdhcmUgcmVu
ZGVyaW5nLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlld0ltcGwuY3BwOgor
ICAgICAgICAoY3JlYXRlQ2Fpcm9Db250ZXh0KToKKyAgICAgICAgKGZyZWVDYWlyb0NvbnRleHQp
OgorICAgICAgICAoRXdrVmlld0ltcGw6OkV3a1ZpZXdJbXBsKToKKyAgICAgICAgKEV3a1ZpZXdJ
bXBsOjpkaXNwbGF5VGltZXJGaXJlZCk6CisgICAgICAgIChFd2tWaWV3SW1wbDo6Y3JlYXRlR0xT
dXJmYWNlKToKKyAgICAgICAgKEV3a1ZpZXdJbXBsOjplbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRp
bmdNb2RlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3SW1wbC5oOgorICAg
ICAgICAoV2ViS2l0KToKKyAgICAgICAgKEV3a1ZpZXdJbXBsOjpoYXJkd2FyZUFjY2VsZXJhdGlv
bkVuYWJsZWQpOgorICAgICAgICAoRXdrVmlld0ltcGwpOgorICAgICAgICAqIFVJUHJvY2Vzcy9D
b29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZVJlbmRlcmVyLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6TGF5ZXJUcmVlUmVuZGVyZXI6OkxheWVyVHJlZVJlbmRlcmVyKToKKyAgICAgICAgKFdlYktp
dDo6TGF5ZXJUcmVlUmVuZGVyZXI6OmVuc3VyZVJvb3RMYXllcik6CisgICAgICAgICogVUlQcm9j
ZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlUmVuZGVyZXIuaDoKKyAgICAgICAgKFdl
YktpdDo6TGF5ZXJUcmVlUmVuZGVyZXI6OnNldEFjY2VsZXJhdGlvbk1vZGUpOgorICAgICAgICAo
TGF5ZXJUcmVlUmVuZGVyZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9lZmwvUGFnZUNsaWVudEJh
c2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50QmFzZTo6Y3JlYXRlRHJhd2luZ0Fy
ZWFQcm94eSk6CisKIDIwMTItMTEtMTAgIFplbm8gQWxiaXNzZXIgIDx6ZW5vQHdlYmtpdC5vcmc+
CiAKICAgICAgICAgW1F0XVtXSzJdIFVzZSBRTGlicmFyeUluZm8gdG8gc2VhcmNoIGZvciBleGVj
dXRhYmxlcy4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173525</attachid>
            <date>2012-11-11 16:22:46 -0800</date>
            <delta_ts>2012-11-12 07:57:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>101659.patch</filename>
            <type>text/plain</type>
            <size>11006</size>
            <attacher name="Yael">yael</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXdJbXBsLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlld0ltcGwu
aAkocmV2aXNpb24gMTM0MDYyKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwv
RXdrVmlld0ltcGwuaAkod29ya2luZyBjb3B5KQpAQCAtMTk5LDYgKzE5OSw4IEBACiAgICAgLy8g
RklYTUU6IG5lZWRzIHJlZmFjdG9yaW5nIChzcGxpdCBjYWxsYmFjayBpbnZva2UpCiAgICAgdm9p
ZCBpbmZvcm1VUkxDaGFuZ2UoKTsKIAorICAgIGJvb2wgaGFyZHdhcmVBY2NlbGVyYXRpb25FbmFi
bGVkKCkgY29uc3QgeyByZXR1cm4gbV9oYXJkd2FyZUFjY2VsZXJhdGlvbkVuYWJsZWQ7IH0KKwog
cHJpdmF0ZToKICAgICBpbmxpbmUgRXdrX1ZpZXdfU21hcnRfRGF0YSogc21hcnREYXRhKCkgY29u
c3Q7CiAgICAgdm9pZCBkaXNwbGF5VGltZXJGaXJlZChXZWJDb3JlOjpUaW1lcjxFd2tWaWV3SW1w
bD4qKTsKQEAgLTI1NSw2ICsyNTcsNyBAQAogICAgIE93blB0cjxFd2tfUG9wdXBfTWVudT4gbV9w
b3B1cE1lbnU7CiAgICAgT3duUHRyPFdlYktpdDo6SW5wdXRNZXRob2RDb250ZXh0RWZsPiBtX2lu
cHV0TWV0aG9kQ29udGV4dDsKICAgICBPd25QdHI8RXdrX0NvbG9yX1BpY2tlcj4gbV9jb2xvclBp
Y2tlcjsKKyAgICBib29sIG1faGFyZHdhcmVBY2NlbGVyYXRpb25FbmFibGVkOwogfTsKIAogI2Vu
ZGlmIC8vIEV3a1ZpZXdJbXBsX2gKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
ZWZsL0V3a1ZpZXdJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2VmbC9Fd2tWaWV3SW1wbC5jcHAJKHJldmlzaW9uIDEzNDA2MikKKysrIFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXdJbXBsLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNTQsNiArNTQsNyBAQAogI2luY2x1ZGUgPEVjb3JlX0V2YXMuaD4KICNpbmNsdWRlIDxFY29y
ZV9YLmg+CiAjaW5jbHVkZSA8RWRqZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvQ2Fpcm9VdGlsaXRp
ZXNFZmwuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0N1cnNvci5oPgogCiAjaWYgRU5BQkxFKFZJQlJB
VElPTikKQEAgLTEyNyw2ICsxMjgsNyBAQAogI2VuZGlmCiAgICAgLCBtX2Rpc3BsYXlUaW1lcih0
aGlzLCAmRXdrVmlld0ltcGw6OmRpc3BsYXlUaW1lckZpcmVkKQogICAgICwgbV9pbnB1dE1ldGhv
ZENvbnRleHQoSW5wdXRNZXRob2RDb250ZXh0RWZsOjpjcmVhdGUodGhpcywgc21hcnREYXRhKCkt
PmJhc2UuZXZhcykpCisgICAgLCBtX2hhcmR3YXJlQWNjZWxlcmF0aW9uRW5hYmxlZCh0cnVlKQog
ewogICAgIEFTU0VSVChtX3ZpZXcpOwogICAgIEFTU0VSVChtX2NvbnRleHQpOwpAQCAtMzMyLDEw
ICszMzQsMjMgQEAKICAgICBMYXllclRyZWVSZW5kZXJlciogcmVuZGVyZXIgPSBwYWdlKCktPmRy
YXdpbmdBcmVhKCktPmxheWVyVHJlZUNvb3JkaW5hdG9yUHJveHkoKS0+bGF5ZXJUcmVlUmVuZGVy
ZXIoKTsKICAgICByZW5kZXJlci0+c2V0QWN0aXZlKHRydWUpOwogICAgIHJlbmRlcmVyLT5zeW5j
UmVtb3RlQ29udGVudCgpOworICAgIGlmIChtX2hhcmR3YXJlQWNjZWxlcmF0aW9uRW5hYmxlZCkg
eworICAgICAgICByZW5kZXJlci0+cGFpbnRUb0N1cnJlbnRHTENvbnRleHQodHJhbnNmb3JtVG9T
Y2VuZSgpLnRvVHJhbnNmb3JtYXRpb25NYXRyaXgoKSwgLyogb3BhY2l0eSAqLyAxLCB2aWV3cG9y
dCk7CisgICAgICAgIGV2YXNfb2JqZWN0X2ltYWdlX2RhdGFfdXBkYXRlX2FkZChzZC0+aW1hZ2Us
IHZpZXdwb3J0LngoKSwgdmlld3BvcnQueSgpLCB2aWV3cG9ydC53aWR0aCgpLCB2aWV3cG9ydC5o
ZWlnaHQoKSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgUmVmUHRyPGNhaXJvX3N1cmZhY2VfdD4g
c3VyZmFjZSA9IGNyZWF0ZVN1cmZhY2VGb3JJbWFnZShzZC0+aW1hZ2UpOworICAgICAgICBpZiAo
IXN1cmZhY2UpCisgICAgICAgICAgICByZXR1cm47CiAKLSAgICByZW5kZXJlci0+cGFpbnRUb0N1
cnJlbnRHTENvbnRleHQodHJhbnNmb3JtVG9TY2VuZSgpLnRvVHJhbnNmb3JtYXRpb25NYXRyaXgo
KSwgLyogb3BhY2l0eSAqLyAxLCB2aWV3cG9ydCk7CisgICAgICAgIFJlZlB0cjxjYWlyb190PiBn
cmFwaGljc0NvbnRleHQgPSBjYWlyb19jcmVhdGUoc3VyZmFjZS5nZXQoKSk7CisgICAgICAgIGlm
ICghZ3JhcGhpY3NDb250ZXh0KQorICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgZXZhc19vYmpl
Y3RfaW1hZ2VfZGF0YV91cGRhdGVfYWRkKHNkLT5pbWFnZSwgdmlld3BvcnQueCgpLCB2aWV3cG9y
dC55KCksIHZpZXdwb3J0LndpZHRoKCksIHZpZXdwb3J0LmhlaWdodCgpKTsKKyAgICAgICAgY2Fp
cm9fdHJhbnNsYXRlKGdyYXBoaWNzQ29udGV4dC5nZXQoKSwgLW1fc2Nyb2xsUG9zaXRpb24ueCgp
LCAtbV9zY3JvbGxQb3NpdGlvbi55KCkpOworICAgICAgICBjYWlyb19zY2FsZShncmFwaGljc0Nv
bnRleHQuZ2V0KCksIG1fc2NhbGVGYWN0b3IsIG1fc2NhbGVGYWN0b3IpOworICAgICAgICByZW5k
ZXJlci0+cGFpbnRUb0dyYXBoaWNzQ29udGV4dChncmFwaGljc0NvbnRleHQuZ2V0KCkpOworICAg
ICAgICBldmFzX29iamVjdF9pbWFnZV9kYXRhX3VwZGF0ZV9hZGQoc2QtPmltYWdlLCAwLCAwLCB2
aWV3cG9ydC53aWR0aCgpLCB2aWV3cG9ydC5oZWlnaHQoKSk7CisgICAgfQogI2VuZGlmCiB9CiAK
QEAgLTU2NiwxMSArNTgxLDIwIEBACiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQog
Ym9vbCBFd2tWaWV3SW1wbDo6Y3JlYXRlR0xTdXJmYWNlKGNvbnN0IEludFNpemUmIHZpZXdTaXpl
KQogeworICAgIGlmICghbV9oYXJkd2FyZUFjY2VsZXJhdGlvbkVuYWJsZWQpCisgICAgICAgIHJl
dHVybiB0cnVlOworCiAgICAgaWYgKCFtX2V2YXNHTCkgewogICAgICAgICBFdmFzKiBldmFzID0g
ZXZhc19vYmplY3RfZXZhc19nZXQobV92aWV3KTsKICAgICAgICAgbV9ldmFzR0wgPSBhZG9wdFB0
cihldmFzX2dsX25ldyhldmFzKSk7Ci0gICAgICAgIGlmICghbV9ldmFzR0wpCisgICAgICAgIGlm
ICghbV9ldmFzR0wpIHsKKyAgICAgICAgICAgIG1faGFyZHdhcmVBY2NlbGVyYXRpb25FbmFibGVk
ID0gZmFsc2U7CisgICAgICAgICAgICBwYWdlKCktPmRyYXdpbmdBcmVhKCktPmxheWVyVHJlZUNv
b3JkaW5hdG9yUHJveHkoKS0+bGF5ZXJUcmVlUmVuZGVyZXIoKS0+c2V0QWNjZWxlcmF0aW9uTW9k
ZShUZXh0dXJlTWFwcGVyOjpTb2Z0d2FyZU1vZGUpOworI2lmIEVOQUJMRShXRUJHTCkKKyAgICAg
ICAgICAgIG1fcGFnZVByb3h5LT5wYWdlR3JvdXAoKS0+cHJlZmVyZW5jZXMoKS0+c2V0V2ViR0xF
bmFibGVkKGZhbHNlKTsKKyNlbmRpZgogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAg
ICB9CiAgICAgfQogCiAgICAgaWYgKCFtX2V2YXNHTENvbnRleHQpIHsKQEAgLTYxMCwxMCArNjM0
LDEyIEBACiAKIGJvb2wgRXdrVmlld0ltcGw6OmVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01v
ZGUoKQogewotICAgIGlmICghbV9ldmFzR0xTdXJmYWNlKSB7Ci0gICAgICAgIGlmICghY3JlYXRl
R0xTdXJmYWNlKHNpemUoKSkpIHsKLSAgICAgICAgICAgIFdBUk4oIkZhaWxlZCB0byBjcmVhdGUg
R0xTdXJmYWNlLiIpOwotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmIChtX2hhcmR3
YXJlQWNjZWxlcmF0aW9uRW5hYmxlZCkgeworICAgICAgICBpZiAoIW1fZXZhc0dMU3VyZmFjZSkg
eworICAgICAgICAgICAgaWYgKCFjcmVhdGVHTFN1cmZhY2Uoc2l6ZSgpKSkgeworICAgICAgICAg
ICAgICAgIFdBUk4oIkZhaWxlZCB0byBjcmVhdGUgR0xTdXJmYWNlLiIpOworICAgICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KIApJbmRl
eDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9QYWdlQ2xpZW50QmFzZS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9QYWdlQ2xpZW50QmFzZS5jcHAJ
KHJldmlzaW9uIDEzNDA2MikKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFnZUNs
aWVudEJhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw4ICsyOSwxMSBAQAogI2luY2x1ZGUg
IkRyYXdpbmdBcmVhUHJveHlJbXBsLmgiCiAjaW5jbHVkZSAiRXdrVmlld0ltcGwuaCIKICNpbmNs
dWRlICJJbnB1dE1ldGhvZENvbnRleHRFZmwuaCIKKyNpbmNsdWRlICJMYXllclRyZWVDb29yZGlu
YXRvclByb3h5LmgiCisjaW5jbHVkZSAiTGF5ZXJUcmVlUmVuZGVyZXIuaCIKICNpbmNsdWRlICJO
YXRpdmVXZWJLZXlib2FyZEV2ZW50LmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKyNp
bmNsdWRlICJUZXh0dXJlTWFwcGVyLmgiCiAjaW5jbHVkZSAiV2ViQ29udGV4dC5oIgogI2luY2x1
ZGUgIldlYkNvbnRleHRNZW51UHJveHkuaCIKICNpbmNsdWRlICJXZWJQYWdlR3JvdXAuaCIKQEAg
LTY2LDcgKzY5LDEyIEBACiAvLyBQYWdlQ2xpZW50CiBQYXNzT3duUHRyPERyYXdpbmdBcmVhUHJv
eHk+IFBhZ2VDbGllbnRCYXNlOjpjcmVhdGVEcmF3aW5nQXJlYVByb3h5KCkKIHsKLSAgICByZXR1
cm4gRHJhd2luZ0FyZWFQcm94eUltcGw6OmNyZWF0ZShtX3ZpZXdJbXBsLT5wYWdlKCkpOworICAg
IFBhc3NPd25QdHI8RHJhd2luZ0FyZWFQcm94eT4gZHJhd2luZ0FyZWEgPSBEcmF3aW5nQXJlYVBy
b3h5SW1wbDo6Y3JlYXRlKG1fdmlld0ltcGwtPnBhZ2UoKSk7CisjaWYgVVNFKEFDQ0VMRVJBVEVE
X0NPTVBPU0lUSU5HKQorICAgIGlmICghbV92aWV3SW1wbC0+aGFyZHdhcmVBY2NlbGVyYXRpb25F
bmFibGVkKCkpCisgICAgICAgIGRyYXdpbmdBcmVhLT5sYXllclRyZWVDb29yZGluYXRvclByb3h5
KCktPmxheWVyVHJlZVJlbmRlcmVyKCktPnNldEFjY2VsZXJhdGlvbk1vZGUoVGV4dHVyZU1hcHBl
cjo6U29mdHdhcmVNb2RlKTsKKyNlbmRpZgorICAgIHJldHVybiBkcmF3aW5nQXJlYTsKIH0KIAog
dm9pZCBQYWdlQ2xpZW50QmFzZTo6c2V0Vmlld05lZWRzRGlzcGxheShjb25zdCBXZWJDb3JlOjpJ
bnRSZWN0JiByZWN0KQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvTGF5ZXJUcmVlUmVuZGVyZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZVJlbmRlcmVyLmNwcAko
cmV2aXNpb24gMTM0MDYyKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvTGF5ZXJUcmVlUmVuZGVyZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05Miw2ICs5
Miw3IEBACiAjaWYgRU5BQkxFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKQogICAgICwgbV9hbmlt
YXRpb25GcmFtZVJlcXVlc3RlZChmYWxzZSkKICNlbmRpZgorICAgICwgbV9hY2NlbGVyYXRpb25N
b2RlKFRleHR1cmVNYXBwZXI6Ok9wZW5HTE1vZGUpCiB7CiB9CiAKQEAgLTQ1NCw3ICs0NTUsNyBA
QAogICAgIGlmIChtX3Jvb3RMYXllcikKICAgICAgICAgcmV0dXJuOwogICAgIGlmICghbV90ZXh0
dXJlTWFwcGVyKSB7Ci0gICAgICAgIG1fdGV4dHVyZU1hcHBlciA9IFRleHR1cmVNYXBwZXI6OmNy
ZWF0ZShUZXh0dXJlTWFwcGVyOjpPcGVuR0xNb2RlKTsKKyAgICAgICAgbV90ZXh0dXJlTWFwcGVy
ID0gVGV4dHVyZU1hcHBlcjo6Y3JlYXRlKG1fYWNjZWxlcmF0aW9uTW9kZSk7CiAgICAgICAgIHN0
YXRpY19jYXN0PFRleHR1cmVNYXBwZXJHTCo+KG1fdGV4dHVyZU1hcHBlci5nZXQoKSktPnNldEVu
YWJsZUVkZ2VEaXN0YW5jZUFudGlhbGlhc2luZyh0cnVlKTsKICAgICB9CiAKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZVJlbmRlcmVy
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvTGF5ZXJUcmVlUmVuZGVyZXIuaAkocmV2aXNpb24gMTM0MDYyKQorKysgU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlUmVuZGVyZXIuaAko
d29ya2luZyBjb3B5KQpAQCAtOTksNiArOTksMTIgQEAKICAgICB2b2lkIGFuaW1hdGlvbkZyYW1l
UmVhZHkoKTsKICNlbmRpZgogCisgICAgdm9pZCBzZXRBY2NlbGVyYXRpb25Nb2RlKFdlYkNvcmU6
OlRleHR1cmVNYXBwZXI6OkFjY2VsZXJhdGlvbk1vZGUgbW9kZSkKKyAgICB7CisgICAgICAgIC8v
IFRoZSBhY2NlbGVyYXRpb24gbW9kZSBjYW4gYmUgc2V0IG9ubHkgYmVmb3JlIFRleHR1cmVNYXBw
ZXIgd2FzIGNyZWF0ZWQuCisgICAgICAgIEFTU0VSVCghbV90ZXh0dXJlTWFwcGVyKTsKKyAgICAg
ICAgbV9hY2NlbGVyYXRpb25Nb2RlID0gbW9kZTsKKyAgICB9CiBwcml2YXRlOgogICAgIFBhc3NP
d25QdHI8V2ViQ29yZTo6R3JhcGhpY3NMYXllcj4gY3JlYXRlTGF5ZXIoV2ViTGF5ZXJJRCk7CiAK
QEAgLTE1Myw2ICsxNTksNyBAQAogI2lmIEVOQUJMRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRSkK
ICAgICBib29sIG1fYW5pbWF0aW9uRnJhbWVSZXF1ZXN0ZWQ7CiAjZW5kaWYKKyAgICBXZWJDb3Jl
OjpUZXh0dXJlTWFwcGVyOjpBY2NlbGVyYXRpb25Nb2RlIG1fYWNjZWxlcmF0aW9uTW9kZTsKIH07
CiAKIH07CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMzQxNzcpCisrKyBTb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyOSBAQAorMjAxMi0xMS0xMSAg
WWFlbCBBaGFyb24gIDx5YWVsLmFoYXJvbkBpbnRlbC5jb20+CisKKyAgICAgICAgW0VGTF1bV0sy
XVtBQ10gQmxhY2sgc2NyZWVuIHdoZW4gYXBwbGljYXRpb25zIHVzZSBzb2Z0d2FyZSBiYWNrZW5k
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxNjU5
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSWYgY3Jl
YXRpbmcgb3BlbkdMIGNvbnRleHQgZmFpbHMsIGF1dG9tYXRpY2FsbHkgZmFsbGJhY2sgdG8gc29m
dHdhcmUgcmVuZGVyaW5nLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlld0lt
cGwuY3BwOgorICAgICAgICAoRXdrVmlld0ltcGw6OkV3a1ZpZXdJbXBsKToKKyAgICAgICAgKEV3
a1ZpZXdJbXBsOjpkaXNwbGF5VGltZXJGaXJlZCk6CisgICAgICAgIChFd2tWaWV3SW1wbDo6Y3Jl
YXRlR0xTdXJmYWNlKToKKyAgICAgICAgKEV3a1ZpZXdJbXBsOjplbnRlckFjY2VsZXJhdGVkQ29t
cG9zaXRpbmdNb2RlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3SW1wbC5o
OgorICAgICAgICAoRXdrVmlld0ltcGw6OmhhcmR3YXJlQWNjZWxlcmF0aW9uRW5hYmxlZCk6Cisg
ICAgICAgIChFd2tWaWV3SW1wbCk6CisgICAgICAgICogVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvTGF5ZXJUcmVlUmVuZGVyZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVS
ZW5kZXJlcjo6TGF5ZXJUcmVlUmVuZGVyZXIpOgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVS
ZW5kZXJlcjo6ZW5zdXJlUm9vdExheWVyKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29vcmRpbmF0
ZWRHcmFwaGljcy9MYXllclRyZWVSZW5kZXJlci5oOgorICAgICAgICAoV2ViS2l0OjpMYXllclRy
ZWVSZW5kZXJlcjo6c2V0QWNjZWxlcmF0aW9uTW9kZSk6CisgICAgICAgIChMYXllclRyZWVSZW5k
ZXJlcik6CisgICAgICAgICogVUlQcm9jZXNzL2VmbC9QYWdlQ2xpZW50QmFzZS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRCYXNlOjpjcmVhdGVEcmF3aW5nQXJlYVByb3h5KToKKwog
MjAxMi0xMS0xMSAgS2VuaWNoaSBJc2hpYmFzaGkgIDxiYXNoaUBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgV1RGU3RyaW5nOjp1dGY4KCkgc2hvdWxkIGhhdmUgYSBtb2RlIG9mIGNvbnZlcnNpb24g
dG8gdXNlIHJlcGxhY2VtZW50IGNoYXJhY3RlcgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZWZsL0NhaXJvVXRpbGl0aWVzRWZsLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZmwvQ2Fpcm9VdGlsaXRpZXNFZmwuY3BwCShy
ZXZpc2lvbiAxMzQwNjIpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZmwv
Q2Fpcm9VdGlsaXRpZXNFZmwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDYsNCArMTA2LDI1IEBA
CiAgICAgcmV0dXJuIHN1cmZhY2U7CiB9CiAKK1Bhc3NSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiBj
cmVhdGVTdXJmYWNlRm9ySW1hZ2UoRXZhc19PYmplY3QgKmltYWdlKQoreworICAgIEFTU0VSVChp
bWFnZSk7CisKKyAgICBFdmFzX0Nvb3JkIHdpZHRoOworICAgIEV2YXNfQ29vcmQgaGVpZ2h0Owor
ICAgIGV2YXNfb2JqZWN0X2ltYWdlX3NpemVfZ2V0KGltYWdlLCAmd2lkdGgsICZoZWlnaHQpOwor
ICAgIEFTU0VSVCh3aWR0aCA+IDAgJiYgaGVpZ2h0ID4gMCk7CisKKyAgICB1bnNpZ25lZCBjaGFy
KiBidWZmZXIgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZCBjaGFyKj4oY29uc3RfY2FzdDx2b2lkKj4o
ZXZhc19vYmplY3RfaW1hZ2VfZGF0YV9nZXQoaW1hZ2UsIHRydWUpKSk7CisgICAgUmVmUHRyPGNh
aXJvX3N1cmZhY2VfdD4gc3VyZmFjZSA9IGFkb3B0UmVmKGNhaXJvX2ltYWdlX3N1cmZhY2VfY3Jl
YXRlX2Zvcl9kYXRhKGJ1ZmZlciwgQ0FJUk9fRk9STUFUX0FSR0IzMiwgd2lkdGgsIGhlaWdodCwg
d2lkdGggKiA0KSk7CisKKyAgICBjYWlyb19zdGF0dXNfdCBzdGF0dXMgPSBjYWlyb19zdXJmYWNl
X3N0YXR1cyhzdXJmYWNlLmdldCgpKTsKKyAgICBpZiAoc3RhdHVzICE9IENBSVJPX1NUQVRVU19T
VUNDRVNTKSB7CisgICAgICAgIEVJTkFfTE9HX0VSUigiQ291bGQgbm90IGNyZWF0ZSBjYWlybyBz
dXJmYWNlOiAlcyIsIGNhaXJvX3N0YXR1c190b19zdHJpbmcoc3RhdHVzKSk7CisgICAgICAgIHJl
dHVybiAwOworICAgIH0KKworICAgIHJldHVybiBzdXJmYWNlOwogfQorCit9CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZmwvQ2Fpcm9VdGlsaXRpZXNFZmwuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZmwvQ2Fpcm9VdGls
aXRpZXNFZmwuaAkocmV2aXNpb24gMTM0MDYyKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZWZsL0NhaXJvVXRpbGl0aWVzRWZsLmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDYg
KzMxLDcgQEAKIAogUGFzc1JlZlB0cjxFdmFzX09iamVjdD4gZXZhc09iamVjdEZyb21DYWlyb0lt
YWdlU3VyZmFjZShFdmFzKiBjYW52YXMsIGNhaXJvX3N1cmZhY2VfdCopOwogUGFzc1JlZlB0cjxj
YWlyb19zdXJmYWNlX3Q+IGNyZWF0ZVN1cmZhY2VGb3JCYWNraW5nU3RvcmUoRWNvcmVfRXZhcyog
ZWUpOworUGFzc1JlZlB0cjxjYWlyb19zdXJmYWNlX3Q+IGNyZWF0ZVN1cmZhY2VGb3JJbWFnZShF
dmFzX09iamVjdCogaW1hZ2UpOwogCiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzNDE3
NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsx
LDIwIEBACisyMDEyLTExLTExICBZYWVsIEFoYXJvbiAgPHlhZWwuYWhhcm9uQGludGVsLmNvbT4K
KworICAgICAgICBbRUZMXVtXSzJdW0FDXSBCbGFjayBzY3JlZW4gd2hlbiBhcHBsaWNhdGlvbnMg
dXNlIHNvZnR3YXJlIGJhY2tlbmQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMDE2NTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBZGQgYSB1dGlsaXR5IG1ldGhvZCB0byBjcmVhdGUgYSBjYWlyb19zdXJm
YWNlX3QgZnJvbSBhIGdpdmVuIEV2YXNfT2JqZWN0X0ltYWdlLgorCisgICAgICAgIE5vIG5ldyB0
ZXN0cy4gV2lsbCBiZSBjb3ZlcmVkIHdoZW4gcnVubmluZyBleGlzdGluZyB0ZXN0cyB3aXRob3V0
IGVuYWJsaW5nIG9wZW5HTC4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2VmbC9DYWly
b1V0aWxpdGllc0VmbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVTdXJmYWNlRm9ySW1h
Z2UpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZWZs
L0NhaXJvVXRpbGl0aWVzRWZsLmg6CisgICAgICAgIChXZWJDb3JlKToKKwogMjAxMi0xMS0xMCAg
U2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBTYXZlIG9u
ZSBjYWxsIHRvIGNvbnRhaW5lckZvclJlcGFpbnQoKSB3aGVuIHVwZGF0aW5nIGxheWVyIHBvc2l0
aW9ucwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173634</attachid>
            <date>2012-11-12 06:12:16 -0800</date>
            <delta_ts>2012-11-12 08:24:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>101659.patch</filename>
            <type>text/plain</type>
            <size>11032</size>
            <attacher name="Yael">yael</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXdJbXBsLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3SW1w
bC5jcHAJKHJldmlzaW9uIDEzNDA2MikKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
ZWZsL0V3a1ZpZXdJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTQsNiArNTQsNyBAQAogI2lu
Y2x1ZGUgPEVjb3JlX0V2YXMuaD4KICNpbmNsdWRlIDxFY29yZV9YLmg+CiAjaW5jbHVkZSA8RWRq
ZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvQ2Fpcm9VdGlsaXRpZXNFZmwuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL0N1cnNvci5oPgogCiAjaWYgRU5BQkxFKFZJQlJBVElPTikKQEAgLTEyNyw2ICsxMjgs
NyBAQAogI2VuZGlmCiAgICAgLCBtX2Rpc3BsYXlUaW1lcih0aGlzLCAmRXdrVmlld0ltcGw6OmRp
c3BsYXlUaW1lckZpcmVkKQogICAgICwgbV9pbnB1dE1ldGhvZENvbnRleHQoSW5wdXRNZXRob2RD
b250ZXh0RWZsOjpjcmVhdGUodGhpcywgc21hcnREYXRhKCktPmJhc2UuZXZhcykpCisgICAgLCBt
X2hhcmR3YXJlQWNjZWxlcmF0aW9uRW5hYmxlZCh0cnVlKQogewogICAgIEFTU0VSVChtX3ZpZXcp
OwogICAgIEFTU0VSVChtX2NvbnRleHQpOwpAQCAtMzMyLDEwICszMzQsMjAgQEAKICAgICBMYXll
clRyZWVSZW5kZXJlciogcmVuZGVyZXIgPSBwYWdlKCktPmRyYXdpbmdBcmVhKCktPmxheWVyVHJl
ZUNvb3JkaW5hdG9yUHJveHkoKS0+bGF5ZXJUcmVlUmVuZGVyZXIoKTsKICAgICByZW5kZXJlci0+
c2V0QWN0aXZlKHRydWUpOwogICAgIHJlbmRlcmVyLT5zeW5jUmVtb3RlQ29udGVudCgpOworICAg
IGlmIChtX2hhcmR3YXJlQWNjZWxlcmF0aW9uRW5hYmxlZCkgeworICAgICAgICByZW5kZXJlci0+
cGFpbnRUb0N1cnJlbnRHTENvbnRleHQodHJhbnNmb3JtVG9TY2VuZSgpLnRvVHJhbnNmb3JtYXRp
b25NYXRyaXgoKSwgLyogb3BhY2l0eSAqLyAxLCB2aWV3cG9ydCk7CisgICAgICAgIGV2YXNfb2Jq
ZWN0X2ltYWdlX2RhdGFfdXBkYXRlX2FkZChzZC0+aW1hZ2UsIHZpZXdwb3J0LngoKSwgdmlld3Bv
cnQueSgpLCB2aWV3cG9ydC53aWR0aCgpLCB2aWV3cG9ydC5oZWlnaHQoKSk7CisgICAgfSBlbHNl
IHsKKyAgICAgICAgUmVmUHRyPGNhaXJvX3N1cmZhY2VfdD4gc3VyZmFjZSA9IGNyZWF0ZVN1cmZh
Y2VGb3JJbWFnZShzZC0+aW1hZ2UpOworICAgICAgICBpZiAoIXN1cmZhY2UpCisgICAgICAgICAg
ICByZXR1cm47CiAKLSAgICByZW5kZXJlci0+cGFpbnRUb0N1cnJlbnRHTENvbnRleHQodHJhbnNm
b3JtVG9TY2VuZSgpLnRvVHJhbnNmb3JtYXRpb25NYXRyaXgoKSwgLyogb3BhY2l0eSAqLyAxLCB2
aWV3cG9ydCk7Ci0KLSAgICBldmFzX29iamVjdF9pbWFnZV9kYXRhX3VwZGF0ZV9hZGQoc2QtPmlt
YWdlLCB2aWV3cG9ydC54KCksIHZpZXdwb3J0LnkoKSwgdmlld3BvcnQud2lkdGgoKSwgdmlld3Bv
cnQuaGVpZ2h0KCkpOworICAgICAgICBSZWZQdHI8Y2Fpcm9fdD4gZ3JhcGhpY3NDb250ZXh0ID0g
YWRvcHRSZWYoY2Fpcm9fY3JlYXRlKHN1cmZhY2UuZ2V0KCkpKTsKKyAgICAgICAgY2Fpcm9fdHJh
bnNsYXRlKGdyYXBoaWNzQ29udGV4dC5nZXQoKSwgLW1fc2Nyb2xsUG9zaXRpb24ueCgpLCAtbV9z
Y3JvbGxQb3NpdGlvbi55KCkpOworICAgICAgICBjYWlyb19zY2FsZShncmFwaGljc0NvbnRleHQu
Z2V0KCksIG1fc2NhbGVGYWN0b3IsIG1fc2NhbGVGYWN0b3IpOworICAgICAgICByZW5kZXJlci0+
cGFpbnRUb0dyYXBoaWNzQ29udGV4dChncmFwaGljc0NvbnRleHQuZ2V0KCkpOworICAgICAgICBl
dmFzX29iamVjdF9pbWFnZV9kYXRhX3VwZGF0ZV9hZGQoc2QtPmltYWdlLCAwLCAwLCB2aWV3cG9y
dC53aWR0aCgpLCB2aWV3cG9ydC5oZWlnaHQoKSk7CisgICAgfQogI2VuZGlmCiB9CiAKQEAgLTU2
NiwxMSArNTc4LDIwIEBACiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogYm9vbCBF
d2tWaWV3SW1wbDo6Y3JlYXRlR0xTdXJmYWNlKGNvbnN0IEludFNpemUmIHZpZXdTaXplKQogewor
ICAgIGlmICghbV9oYXJkd2FyZUFjY2VsZXJhdGlvbkVuYWJsZWQpCisgICAgICAgIHJldHVybiB0
cnVlOworCiAgICAgaWYgKCFtX2V2YXNHTCkgewogICAgICAgICBFdmFzKiBldmFzID0gZXZhc19v
YmplY3RfZXZhc19nZXQobV92aWV3KTsKICAgICAgICAgbV9ldmFzR0wgPSBhZG9wdFB0cihldmFz
X2dsX25ldyhldmFzKSk7Ci0gICAgICAgIGlmICghbV9ldmFzR0wpCisgICAgICAgIGlmICghbV9l
dmFzR0wpIHsKKyAgICAgICAgICAgIG1faGFyZHdhcmVBY2NlbGVyYXRpb25FbmFibGVkID0gZmFs
c2U7CisgICAgICAgICAgICBwYWdlKCktPmRyYXdpbmdBcmVhKCktPmxheWVyVHJlZUNvb3JkaW5h
dG9yUHJveHkoKS0+bGF5ZXJUcmVlUmVuZGVyZXIoKS0+c2V0QWNjZWxlcmF0aW9uTW9kZShUZXh0
dXJlTWFwcGVyOjpTb2Z0d2FyZU1vZGUpOworI2lmIEVOQUJMRShXRUJHTCkKKyAgICAgICAgICAg
IG1fcGFnZVByb3h5LT5wYWdlR3JvdXAoKS0+cHJlZmVyZW5jZXMoKS0+c2V0V2ViR0xFbmFibGVk
KGZhbHNlKTsKKyNlbmRpZgogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CiAg
ICAgfQogCiAgICAgaWYgKCFtX2V2YXNHTENvbnRleHQpIHsKQEAgLTYxMCw2ICs2MzEsMTEgQEAK
IAogYm9vbCBFd2tWaWV3SW1wbDo6ZW50ZXJBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSgpCiB7
CisgICAgcGFnZSgpLT5kcmF3aW5nQXJlYSgpLT5sYXllclRyZWVDb29yZGluYXRvclByb3h5KCkt
PmxheWVyVHJlZVJlbmRlcmVyKCktPnNldEFjdGl2ZSh0cnVlKTsKKworICAgIGlmICghbV9oYXJk
d2FyZUFjY2VsZXJhdGlvbkVuYWJsZWQpCisgICAgICAgIHJldHVybiB0cnVlOworCiAgICAgaWYg
KCFtX2V2YXNHTFN1cmZhY2UpIHsKICAgICAgICAgaWYgKCFjcmVhdGVHTFN1cmZhY2Uoc2l6ZSgp
KSkgewogICAgICAgICAgICAgV0FSTigiRmFpbGVkIHRvIGNyZWF0ZSBHTFN1cmZhY2UuIik7CkBA
IC02MTcsNyArNjQzLDYgQEAKICAgICAgICAgfQogICAgIH0KIAotICAgIHBhZ2UoKS0+ZHJhd2lu
Z0FyZWEoKS0+bGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eSgpLT5sYXllclRyZWVSZW5kZXJlcigp
LT5zZXRBY3RpdmUodHJ1ZSk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXdJbXBsLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlld0ltcGwuaAkocmV2aXNpb24gMTM0
MDYyKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlld0ltcGwuaAko
d29ya2luZyBjb3B5KQpAQCAtMTk5LDYgKzE5OSw4IEBACiAgICAgLy8gRklYTUU6IG5lZWRzIHJl
ZmFjdG9yaW5nIChzcGxpdCBjYWxsYmFjayBpbnZva2UpCiAgICAgdm9pZCBpbmZvcm1VUkxDaGFu
Z2UoKTsKIAorICAgIGJvb2wgaGFyZHdhcmVBY2NlbGVyYXRpb25FbmFibGVkKCkgY29uc3QgeyBy
ZXR1cm4gbV9oYXJkd2FyZUFjY2VsZXJhdGlvbkVuYWJsZWQ7IH0KKwogcHJpdmF0ZToKICAgICBp
bmxpbmUgRXdrX1ZpZXdfU21hcnRfRGF0YSogc21hcnREYXRhKCkgY29uc3Q7CiAgICAgdm9pZCBk
aXNwbGF5VGltZXJGaXJlZChXZWJDb3JlOjpUaW1lcjxFd2tWaWV3SW1wbD4qKTsKQEAgLTI1NSw2
ICsyNTcsNyBAQAogICAgIE93blB0cjxFd2tfUG9wdXBfTWVudT4gbV9wb3B1cE1lbnU7CiAgICAg
T3duUHRyPFdlYktpdDo6SW5wdXRNZXRob2RDb250ZXh0RWZsPiBtX2lucHV0TWV0aG9kQ29udGV4
dDsKICAgICBPd25QdHI8RXdrX0NvbG9yX1BpY2tlcj4gbV9jb2xvclBpY2tlcjsKKyAgICBib29s
IG1faGFyZHdhcmVBY2NlbGVyYXRpb25FbmFibGVkOwogfTsKIAogI2VuZGlmIC8vIEV3a1ZpZXdJ
bXBsX2gKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFnZUNsaWVudEJhc2Uu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFnZUNsaWVu
dEJhc2UuY3BwCShyZXZpc2lvbiAxMzQwNjIpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
ZWZsL1BhZ2VDbGllbnRCYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjksOCArMjksMTEgQEAK
ICNpbmNsdWRlICJEcmF3aW5nQXJlYVByb3h5SW1wbC5oIgogI2luY2x1ZGUgIkV3a1ZpZXdJbXBs
LmgiCiAjaW5jbHVkZSAiSW5wdXRNZXRob2RDb250ZXh0RWZsLmgiCisjaW5jbHVkZSAiTGF5ZXJU
cmVlQ29vcmRpbmF0b3JQcm94eS5oIgorI2luY2x1ZGUgIkxheWVyVHJlZVJlbmRlcmVyLmgiCiAj
aW5jbHVkZSAiTmF0aXZlV2ViS2V5Ym9hcmRFdmVudC5oIgogI2luY2x1ZGUgIk5vdEltcGxlbWVu
dGVkLmgiCisjaW5jbHVkZSAiVGV4dHVyZU1hcHBlci5oIgogI2luY2x1ZGUgIldlYkNvbnRleHQu
aCIKICNpbmNsdWRlICJXZWJDb250ZXh0TWVudVByb3h5LmgiCiAjaW5jbHVkZSAiV2ViUGFnZUdy
b3VwLmgiCkBAIC02Niw3ICs2OSwxMiBAQAogLy8gUGFnZUNsaWVudAogUGFzc093blB0cjxEcmF3
aW5nQXJlYVByb3h5PiBQYWdlQ2xpZW50QmFzZTo6Y3JlYXRlRHJhd2luZ0FyZWFQcm94eSgpCiB7
Ci0gICAgcmV0dXJuIERyYXdpbmdBcmVhUHJveHlJbXBsOjpjcmVhdGUobV92aWV3SW1wbC0+cGFn
ZSgpKTsKKyAgICBPd25QdHI8RHJhd2luZ0FyZWFQcm94eT4gZHJhd2luZ0FyZWEgPSBEcmF3aW5n
QXJlYVByb3h5SW1wbDo6Y3JlYXRlKG1fdmlld0ltcGwtPnBhZ2UoKSk7CisjaWYgVVNFKEFDQ0VM
RVJBVEVEX0NPTVBPU0lUSU5HKQorICAgIGlmICghbV92aWV3SW1wbC0+aGFyZHdhcmVBY2NlbGVy
YXRpb25FbmFibGVkKCkpCisgICAgICAgIGRyYXdpbmdBcmVhLT5sYXllclRyZWVDb29yZGluYXRv
clByb3h5KCktPmxheWVyVHJlZVJlbmRlcmVyKCktPnNldEFjY2VsZXJhdGlvbk1vZGUoVGV4dHVy
ZU1hcHBlcjo6U29mdHdhcmVNb2RlKTsKKyNlbmRpZgorICAgIHJldHVybiBkcmF3aW5nQXJlYS5y
ZWxlYXNlKCk7CiB9CiAKIHZvaWQgUGFnZUNsaWVudEJhc2U6OnNldFZpZXdOZWVkc0Rpc3BsYXko
Y29uc3QgV2ViQ29yZTo6SW50UmVjdCYgcmVjdCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZVJlbmRlcmVyLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVl
UmVuZGVyZXIuaAkocmV2aXNpb24gMTM0MDYyKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlUmVuZGVyZXIuaAkod29ya2luZyBjb3B5KQpA
QCAtOTksNiArOTksMTIgQEAKICAgICB2b2lkIGFuaW1hdGlvbkZyYW1lUmVhZHkoKTsKICNlbmRp
ZgogCisgICAgdm9pZCBzZXRBY2NlbGVyYXRpb25Nb2RlKFdlYkNvcmU6OlRleHR1cmVNYXBwZXI6
OkFjY2VsZXJhdGlvbk1vZGUgbW9kZSkKKyAgICB7CisgICAgICAgIC8vIFRoZSBhY2NlbGVyYXRp
b24gbW9kZSBjYW4gYmUgc2V0IG9ubHkgYmVmb3JlIFRleHR1cmVNYXBwZXIgd2FzIGNyZWF0ZWQu
CisgICAgICAgIEFTU0VSVCghbV90ZXh0dXJlTWFwcGVyKTsKKyAgICAgICAgbV9hY2NlbGVyYXRp
b25Nb2RlID0gbW9kZTsKKyAgICB9CiBwcml2YXRlOgogICAgIFBhc3NPd25QdHI8V2ViQ29yZTo6
R3JhcGhpY3NMYXllcj4gY3JlYXRlTGF5ZXIoV2ViTGF5ZXJJRCk7CiAKQEAgLTE1Myw2ICsxNTks
NyBAQAogI2lmIEVOQUJMRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRSkKICAgICBib29sIG1fYW5p
bWF0aW9uRnJhbWVSZXF1ZXN0ZWQ7CiAjZW5kaWYKKyAgICBXZWJDb3JlOjpUZXh0dXJlTWFwcGVy
OjpBY2NlbGVyYXRpb25Nb2RlIG1fYWNjZWxlcmF0aW9uTW9kZTsKIH07CiAKIH07CkluZGV4OiBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVSZW5k
ZXJlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5h
dGVkR3JhcGhpY3MvTGF5ZXJUcmVlUmVuZGVyZXIuY3BwCShyZXZpc2lvbiAxMzQwNjIpCisrKyBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVSZW5k
ZXJlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTkyLDYgKzkyLDcgQEAKICNpZiBFTkFCTEUoUkVR
VUVTVF9BTklNQVRJT05fRlJBTUUpCiAgICAgLCBtX2FuaW1hdGlvbkZyYW1lUmVxdWVzdGVkKGZh
bHNlKQogI2VuZGlmCisgICAgLCBtX2FjY2VsZXJhdGlvbk1vZGUoVGV4dHVyZU1hcHBlcjo6T3Bl
bkdMTW9kZSkKIHsKIH0KIApAQCAtNDU0LDcgKzQ1NSw3IEBACiAgICAgaWYgKG1fcm9vdExheWVy
KQogICAgICAgICByZXR1cm47CiAgICAgaWYgKCFtX3RleHR1cmVNYXBwZXIpIHsKLSAgICAgICAg
bV90ZXh0dXJlTWFwcGVyID0gVGV4dHVyZU1hcHBlcjo6Y3JlYXRlKFRleHR1cmVNYXBwZXI6Ok9w
ZW5HTE1vZGUpOworICAgICAgICBtX3RleHR1cmVNYXBwZXIgPSBUZXh0dXJlTWFwcGVyOjpjcmVh
dGUobV9hY2NlbGVyYXRpb25Nb2RlKTsKICAgICAgICAgc3RhdGljX2Nhc3Q8VGV4dHVyZU1hcHBl
ckdMKj4obV90ZXh0dXJlTWFwcGVyLmdldCgpKS0+c2V0RW5hYmxlRWRnZURpc3RhbmNlQW50aWFs
aWFzaW5nKHRydWUpOwogICAgIH0KIApJbmRleDogU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkocmV2aXNpb24gMTM0MTc3KQor
KysgU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjkg
QEAKKzIwMTItMTEtMTEgIFlhZWwgQWhhcm9uICA8eWFlbC5haGFyb25AaW50ZWwuY29tPgorCisg
ICAgICAgIFtFRkxdW1dLMl1bQUNdIEJsYWNrIHNjcmVlbiB3aGVuIGFwcGxpY2F0aW9ucyB1c2Ug
c29mdHdhcmUgYmFja2VuZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEwMTY1OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIElmIGNyZWF0aW5nIG9wZW5HTCBjb250ZXh0IGZhaWxzLCBhdXRvbWF0aWNhbGx5
IGZhbGxiYWNrIHRvIHNvZnR3YXJlIHJlbmRlcmluZy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvZWZsL0V3a1ZpZXdJbXBsLmNwcDoKKyAgICAgICAgKEV3a1ZpZXdJbXBsOjpFd2tWaWV3SW1w
bCk6CisgICAgICAgIChFd2tWaWV3SW1wbDo6ZGlzcGxheVRpbWVyRmlyZWQpOgorICAgICAgICAo
RXdrVmlld0ltcGw6OmNyZWF0ZUdMU3VyZmFjZSk6CisgICAgICAgIChFd2tWaWV3SW1wbDo6ZW50
ZXJBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9l
ZmwvRXdrVmlld0ltcGwuaDoKKyAgICAgICAgKEV3a1ZpZXdJbXBsOjpoYXJkd2FyZUFjY2VsZXJh
dGlvbkVuYWJsZWQpOgorICAgICAgICAoRXdrVmlld0ltcGwpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZVJlbmRlcmVyLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6TGF5ZXJUcmVlUmVuZGVyZXI6OkxheWVyVHJlZVJlbmRlcmVyKToKKyAgICAgICAgKFdl
YktpdDo6TGF5ZXJUcmVlUmVuZGVyZXI6OmVuc3VyZVJvb3RMYXllcik6CisgICAgICAgICogVUlQ
cm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlUmVuZGVyZXIuaDoKKyAgICAgICAg
KFdlYktpdDo6TGF5ZXJUcmVlUmVuZGVyZXI6OnNldEFjY2VsZXJhdGlvbk1vZGUpOgorICAgICAg
ICAoTGF5ZXJUcmVlUmVuZGVyZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9lZmwvUGFnZUNsaWVu
dEJhc2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50QmFzZTo6Y3JlYXRlRHJhd2lu
Z0FyZWFQcm94eSk6CisKIDIwMTItMTEtMTEgIEtlbmljaGkgSXNoaWJhc2hpICA8YmFzaGlAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFdURlN0cmluZzo6dXRmOCgpIHNob3VsZCBoYXZlIGEgbW9k
ZSBvZiBjb252ZXJzaW9uIHRvIHVzZSByZXBsYWNlbWVudCBjaGFyYWN0ZXIKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cJKHJldmlzaW9uIDEzNDE3NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBACisyMDEyLTExLTExICBZYWVsIEFoYXJvbiAgPHlhZWwu
YWhhcm9uQGludGVsLmNvbT4KKworICAgICAgICBbRUZMXVtXSzJdW0FDXSBCbGFjayBzY3JlZW4g
d2hlbiBhcHBsaWNhdGlvbnMgdXNlIHNvZnR3YXJlIGJhY2tlbmQuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDE2NTkKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSB1dGlsaXR5IG1ldGhvZCB0byBj
cmVhdGUgYSBjYWlyb19zdXJmYWNlX3QgZnJvbSBhIGdpdmVuIEV2YXNfT2JqZWN0X0ltYWdlLgor
CisgICAgICAgIE5vIG5ldyB0ZXN0cy4gV2lsbCBiZSBjb3ZlcmVkIHdoZW4gcnVubmluZyBleGlz
dGluZyB0ZXN0cyB3aXRob3V0IGVuYWJsaW5nIG9wZW5HTC4KKworICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2VmbC9DYWlyb1V0aWxpdGllc0VmbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpj
cmVhdGVTdXJmYWNlRm9ySW1hZ2UpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvZWZsL0NhaXJvVXRpbGl0aWVzRWZsLmg6CisgICAgICAgIChXZWJDb3Jl
KToKKwogMjAxMi0xMS0xMCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4K
IAogICAgICAgICBTYXZlIG9uZSBjYWxsIHRvIGNvbnRhaW5lckZvclJlcGFpbnQoKSB3aGVuIHVw
ZGF0aW5nIGxheWVyIHBvc2l0aW9ucwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZWZsL0NhaXJvVXRpbGl0aWVzRWZsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWZsL0NhaXJvVXRpbGl0aWVzRWZsLmgJKHJldmlzaW9uIDEz
NDA2MikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VmbC9DYWlyb1V0aWxp
dGllc0VmbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw3IEBACiAKIFBhc3NSZWZQdHI8
RXZhc19PYmplY3Q+IGV2YXNPYmplY3RGcm9tQ2Fpcm9JbWFnZVN1cmZhY2UoRXZhcyogY2FudmFz
LCBjYWlyb19zdXJmYWNlX3QqKTsKIFBhc3NSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiBjcmVhdGVT
dXJmYWNlRm9yQmFja2luZ1N0b3JlKEVjb3JlX0V2YXMqIGVlKTsKK1Bhc3NSZWZQdHI8Y2Fpcm9f
c3VyZmFjZV90PiBjcmVhdGVTdXJmYWNlRm9ySW1hZ2UoRXZhc19PYmplY3QqIGltYWdlKTsKIAog
fQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZmwvQ2Fpcm9VdGls
aXRpZXNFZmwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2VmbC9DYWlyb1V0aWxpdGllc0VmbC5jcHAJKHJldmlzaW9uIDEzNDA2MikKKysrIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VmbC9DYWlyb1V0aWxpdGllc0VmbC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTEwNiw0ICsxMDYsMjUgQEAKICAgICByZXR1cm4gc3VyZmFjZTsKIH0K
IAorUGFzc1JlZlB0cjxjYWlyb19zdXJmYWNlX3Q+IGNyZWF0ZVN1cmZhY2VGb3JJbWFnZShFdmFz
X09iamVjdCogaW1hZ2UpCit7CisgICAgQVNTRVJUKGltYWdlKTsKKworICAgIEV2YXNfQ29vcmQg
d2lkdGg7CisgICAgRXZhc19Db29yZCBoZWlnaHQ7CisgICAgZXZhc19vYmplY3RfaW1hZ2Vfc2l6
ZV9nZXQoaW1hZ2UsICZ3aWR0aCwgJmhlaWdodCk7CisgICAgQVNTRVJUKHdpZHRoID4gMCAmJiBo
ZWlnaHQgPiAwKTsKKworICAgIHVuc2lnbmVkIGNoYXIqIGJ1ZmZlciA9IHN0YXRpY19jYXN0PHVu
c2lnbmVkIGNoYXIqPihjb25zdF9jYXN0PHZvaWQqPihldmFzX29iamVjdF9pbWFnZV9kYXRhX2dl
dChpbWFnZSwgdHJ1ZSkpKTsKKyAgICBSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiBzdXJmYWNlID0g
YWRvcHRSZWYoY2Fpcm9faW1hZ2Vfc3VyZmFjZV9jcmVhdGVfZm9yX2RhdGEoYnVmZmVyLCBDQUlS
T19GT1JNQVRfQVJHQjMyLCB3aWR0aCwgaGVpZ2h0LCB3aWR0aCAqIDQpKTsKKworICAgIGNhaXJv
X3N0YXR1c190IHN0YXR1cyA9IGNhaXJvX3N1cmZhY2Vfc3RhdHVzKHN1cmZhY2UuZ2V0KCkpOwor
ICAgIGlmIChzdGF0dXMgIT0gQ0FJUk9fU1RBVFVTX1NVQ0NFU1MpIHsKKyAgICAgICAgRUlOQV9M
T0dfRVJSKCJDb3VsZCBub3QgY3JlYXRlIGNhaXJvIHN1cmZhY2U6ICVzIiwgY2Fpcm9fc3RhdHVz
X3RvX3N0cmluZyhzdGF0dXMpKTsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgcmV0
dXJuIHN1cmZhY2UucmVsZWFzZSgpOwogfQorCit9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173651</attachid>
            <date>2012-11-12 08:24:06 -0800</date>
            <delta_ts>2012-11-12 09:35:19 -0800</delta_ts>
            <desc>Patch for landing.</desc>
            <filename>101659.patch</filename>
            <type>text/plain</type>
            <size>11208</size>
            <attacher name="Yael">yael</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VmbC9DYWlyb1V0aWxpdGll
c0VmbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZWZsL0NhaXJvVXRpbGl0aWVzRWZsLmNwcAkocmV2aXNpb24gMTM0MDYyKQorKysgU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWZsL0NhaXJvVXRpbGl0aWVzRWZsLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMTA2LDQgKzEwNiwyNSBAQAogICAgIHJldHVybiBzdXJmYWNlOwogfQogCitQ
YXNzUmVmUHRyPGNhaXJvX3N1cmZhY2VfdD4gY3JlYXRlU3VyZmFjZUZvckltYWdlKEV2YXNfT2Jq
ZWN0KiBpbWFnZSkKK3sKKyAgICBBU1NFUlQoaW1hZ2UpOworCisgICAgRXZhc19Db29yZCB3aWR0
aDsKKyAgICBFdmFzX0Nvb3JkIGhlaWdodDsKKyAgICBldmFzX29iamVjdF9pbWFnZV9zaXplX2dl
dChpbWFnZSwgJndpZHRoLCAmaGVpZ2h0KTsKKyAgICBBU1NFUlQod2lkdGggPiAwICYmIGhlaWdo
dCA+IDApOworCisgICAgdW5zaWduZWQgY2hhciogYnVmZmVyID0gc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQgY2hhcio+KGNvbnN0X2Nhc3Q8dm9pZCo+KGV2YXNfb2JqZWN0X2ltYWdlX2RhdGFfZ2V0KGlt
YWdlLCB0cnVlKSkpOworICAgIFJlZlB0cjxjYWlyb19zdXJmYWNlX3Q+IHN1cmZhY2UgPSBhZG9w
dFJlZihjYWlyb19pbWFnZV9zdXJmYWNlX2NyZWF0ZV9mb3JfZGF0YShidWZmZXIsIENBSVJPX0ZP
Uk1BVF9BUkdCMzIsIHdpZHRoLCBoZWlnaHQsIHdpZHRoICogNCkpOworCisgICAgY2Fpcm9fc3Rh
dHVzX3Qgc3RhdHVzID0gY2Fpcm9fc3VyZmFjZV9zdGF0dXMoc3VyZmFjZS5nZXQoKSk7CisgICAg
aWYgKHN0YXR1cyAhPSBDQUlST19TVEFUVVNfU1VDQ0VTUykgeworICAgICAgICBFSU5BX0xPR19F
UlIoIkNvdWxkIG5vdCBjcmVhdGUgY2Fpcm8gc3VyZmFjZTogJXMiLCBjYWlyb19zdGF0dXNfdG9f
c3RyaW5nKHN0YXR1cykpOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICByZXR1cm4g
c3VyZmFjZS5yZWxlYXNlKCk7CiB9CisKK30KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2VmbC9DYWlyb1V0aWxpdGllc0VmbC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VmbC9DYWlyb1V0aWxpdGllc0VmbC5oCShyZXZpc2lv
biAxMzQwNjIpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZmwvQ2Fpcm9V
dGlsaXRpZXNFZmwuaAkod29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEsNyBAQAogCiBQYXNzUmVm
UHRyPEV2YXNfT2JqZWN0PiBldmFzT2JqZWN0RnJvbUNhaXJvSW1hZ2VTdXJmYWNlKEV2YXMqIGNh
bnZhcywgY2Fpcm9fc3VyZmFjZV90Kik7CiBQYXNzUmVmUHRyPGNhaXJvX3N1cmZhY2VfdD4gY3Jl
YXRlU3VyZmFjZUZvckJhY2tpbmdTdG9yZShFY29yZV9FdmFzKiBlZSk7CitQYXNzUmVmUHRyPGNh
aXJvX3N1cmZhY2VfdD4gY3JlYXRlU3VyZmFjZUZvckltYWdlKEV2YXNfT2JqZWN0KiBpbWFnZSk7
CiAKIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTM0MTc3KQorKysgU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTItMTEtMTEg
IFlhZWwgQWhhcm9uICA8eWFlbC5haGFyb25AaW50ZWwuY29tPgorCisgICAgICAgIFtFRkxdW1dL
Ml1bQUNdIEJsYWNrIHNjcmVlbiB3aGVuIGFwcGxpY2F0aW9ucyB1c2Ugc29mdHdhcmUgYmFja2Vu
ZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTY1
OQorCisgICAgICAgIFJldmlld2VkIGJ5IEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuLgorCisg
ICAgICAgIEFkZCBhIHV0aWxpdHkgbWV0aG9kIHRvIGNyZWF0ZSBhIGNhaXJvX3N1cmZhY2VfdCBm
cm9tIGEgZ2l2ZW4gRXZhc19PYmplY3RfSW1hZ2UuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiBX
aWxsIGJlIGNvdmVyZWQgd2hlbiBydW5uaW5nIGV4aXN0aW5nIHRlc3RzIHdpdGhvdXQgZW5hYmxp
bmcgb3BlbkdMLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZWZsL0NhaXJvVXRpbGl0
aWVzRWZsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVN1cmZhY2VGb3JJbWFnZSk6Cisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9lZmwvQ2Fpcm9V
dGlsaXRpZXNFZmwuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorCiAyMDEyLTExLTEwICBTaW1vbiBG
cmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFNhdmUgb25lIGNhbGwg
dG8gY29udGFpbmVyRm9yUmVwYWludCgpIHdoZW4gdXBkYXRpbmcgbGF5ZXIgcG9zaXRpb25zCklu
ZGV4OiBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMzQxNzcpCisrKyBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyOSBAQAorMjAxMi0xMS0xMSAgWWFlbCBBaGFy
b24gIDx5YWVsLmFoYXJvbkBpbnRlbC5jb20+CisKKyAgICAgICAgW0VGTF1bV0syXVtBQ10gQmxh
Y2sgc2NyZWVuIHdoZW4gYXBwbGljYXRpb25zIHVzZSBzb2Z0d2FyZSBiYWNrZW5kLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxNjU5CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4uCisKKyAgICAgICAgSWYg
Y3JlYXRpbmcgb3BlbkdMIGNvbnRleHQgZmFpbHMsIGF1dG9tYXRpY2FsbHkgZmFsbGJhY2sgdG8g
c29mdHdhcmUgcmVuZGVyaW5nLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmll
d0ltcGwuY3BwOgorICAgICAgICAoRXdrVmlld0ltcGw6OkV3a1ZpZXdJbXBsKToKKyAgICAgICAg
KEV3a1ZpZXdJbXBsOjpkaXNwbGF5VGltZXJGaXJlZCk6CisgICAgICAgIChFd2tWaWV3SW1wbDo6
Y3JlYXRlR0xTdXJmYWNlKToKKyAgICAgICAgKEV3a1ZpZXdJbXBsOjplbnRlckFjY2VsZXJhdGVk
Q29tcG9zaXRpbmdNb2RlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3SW1w
bC5oOgorICAgICAgICAoRXdrVmlld0ltcGw6OmhhcmR3YXJlQWNjZWxlcmF0aW9uRW5hYmxlZCk6
CisgICAgICAgIChFd2tWaWV3SW1wbCk6CisgICAgICAgICogVUlQcm9jZXNzL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvTGF5ZXJUcmVlUmVuZGVyZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpMYXllclRy
ZWVSZW5kZXJlcjo6TGF5ZXJUcmVlUmVuZGVyZXIpOgorICAgICAgICAoV2ViS2l0OjpMYXllclRy
ZWVSZW5kZXJlcjo6ZW5zdXJlUm9vdExheWVyKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29vcmRp
bmF0ZWRHcmFwaGljcy9MYXllclRyZWVSZW5kZXJlci5oOgorICAgICAgICAoV2ViS2l0OjpMYXll
clRyZWVSZW5kZXJlcjo6c2V0QWNjZWxlcmF0aW9uTW9kZSk6CisgICAgICAgIChMYXllclRyZWVS
ZW5kZXJlcik6CisgICAgICAgICogVUlQcm9jZXNzL2VmbC9QYWdlQ2xpZW50QmFzZS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRCYXNlOjpjcmVhdGVEcmF3aW5nQXJlYVByb3h5KToK
KwogMjAxMi0xMS0xMSAgS2VuaWNoaSBJc2hpYmFzaGkgIDxiYXNoaUBjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgV1RGU3RyaW5nOjp1dGY4KCkgc2hvdWxkIGhhdmUgYSBtb2RlIG9mIGNvbnZlcnNp
b24gdG8gdXNlIHJlcGxhY2VtZW50IGNoYXJhY3RlcgpJbmRleDogU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9lZmwvRXdrVmlld0ltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXdJbXBsLmNwcAkocmV2aXNpb24gMTM0MDYyKQor
KysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlld0ltcGwuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC01NCw2ICs1NCw3IEBACiAjaW5jbHVkZSA8RWNvcmVfRXZhcy5oPgogI2lu
Y2x1ZGUgPEVjb3JlX1guaD4KICNpbmNsdWRlIDxFZGplLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9D
YWlyb1V0aWxpdGllc0VmbC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ3Vyc29yLmg+CiAKICNpZiBF
TkFCTEUoVklCUkFUSU9OKQpAQCAtMTI3LDYgKzEyOCw3IEBACiAjZW5kaWYKICAgICAsIG1fZGlz
cGxheVRpbWVyKHRoaXMsICZFd2tWaWV3SW1wbDo6ZGlzcGxheVRpbWVyRmlyZWQpCiAgICAgLCBt
X2lucHV0TWV0aG9kQ29udGV4dChJbnB1dE1ldGhvZENvbnRleHRFZmw6OmNyZWF0ZSh0aGlzLCBz
bWFydERhdGEoKS0+YmFzZS5ldmFzKSkKKyAgICAsIG1faXNIYXJkd2FyZUFjY2VsZXJhdGVkKHRy
dWUpCiB7CiAgICAgQVNTRVJUKG1fdmlldyk7CiAgICAgQVNTRVJUKG1fY29udGV4dCk7CkBAIC0z
MzIsMTAgKzMzNCwyMiBAQAogICAgIExheWVyVHJlZVJlbmRlcmVyKiByZW5kZXJlciA9IHBhZ2Uo
KS0+ZHJhd2luZ0FyZWEoKS0+bGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eSgpLT5sYXllclRyZWVS
ZW5kZXJlcigpOwogICAgIHJlbmRlcmVyLT5zZXRBY3RpdmUodHJ1ZSk7CiAgICAgcmVuZGVyZXIt
PnN5bmNSZW1vdGVDb250ZW50KCk7CisgICAgaWYgKG1faXNIYXJkd2FyZUFjY2VsZXJhdGVkKSB7
CisgICAgICAgIHJlbmRlcmVyLT5wYWludFRvQ3VycmVudEdMQ29udGV4dCh0cmFuc2Zvcm1Ub1Nj
ZW5lKCkudG9UcmFuc2Zvcm1hdGlvbk1hdHJpeCgpLCAvKiBvcGFjaXR5ICovIDEsIHZpZXdwb3J0
KTsKKyAgICAgICAgLy8gc2QtPmltYWdlIGlzIHRpZWQgdG8gYSBuYXRpdmUgc3VyZmFjZS4gVGhl
IG5hdGl2ZSBzdXJmYWNlIGlzIGluIHRoZSBwYXJlbnQncyBjb29yZGluYXRlcywKKyAgICAgICAg
Ly8gc28gd2UgbmVlZCB0byBhY2NvdW50IGZvciB0aGUgdmlld3BvcnQgcG9zaXRpb24gd2hlbiBj
YWxsaW5nIGV2YXNfb2JqZWN0X2ltYWdlX2RhdGFfdXBkYXRlX2FkZC4KKyAgICAgICAgZXZhc19v
YmplY3RfaW1hZ2VfZGF0YV91cGRhdGVfYWRkKHNkLT5pbWFnZSwgdmlld3BvcnQueCgpLCB2aWV3
cG9ydC55KCksIHZpZXdwb3J0LndpZHRoKCksIHZpZXdwb3J0LmhlaWdodCgpKTsKKyAgICB9IGVs
c2UgeworICAgICAgICBSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiBzdXJmYWNlID0gY3JlYXRlU3Vy
ZmFjZUZvckltYWdlKHNkLT5pbWFnZSk7CisgICAgICAgIGlmICghc3VyZmFjZSkKKyAgICAgICAg
ICAgIHJldHVybjsKIAotICAgIHJlbmRlcmVyLT5wYWludFRvQ3VycmVudEdMQ29udGV4dCh0cmFu
c2Zvcm1Ub1NjZW5lKCkudG9UcmFuc2Zvcm1hdGlvbk1hdHJpeCgpLCAvKiBvcGFjaXR5ICovIDEs
IHZpZXdwb3J0KTsKLQotICAgIGV2YXNfb2JqZWN0X2ltYWdlX2RhdGFfdXBkYXRlX2FkZChzZC0+
aW1hZ2UsIHZpZXdwb3J0LngoKSwgdmlld3BvcnQueSgpLCB2aWV3cG9ydC53aWR0aCgpLCB2aWV3
cG9ydC5oZWlnaHQoKSk7CisgICAgICAgIFJlZlB0cjxjYWlyb190PiBncmFwaGljc0NvbnRleHQg
PSBhZG9wdFJlZihjYWlyb19jcmVhdGUoc3VyZmFjZS5nZXQoKSkpOworICAgICAgICBjYWlyb190
cmFuc2xhdGUoZ3JhcGhpY3NDb250ZXh0LmdldCgpLCAtbV9zY3JvbGxQb3NpdGlvbi54KCksIC1t
X3Njcm9sbFBvc2l0aW9uLnkoKSk7CisgICAgICAgIGNhaXJvX3NjYWxlKGdyYXBoaWNzQ29udGV4
dC5nZXQoKSwgbV9zY2FsZUZhY3RvciwgbV9zY2FsZUZhY3Rvcik7CisgICAgICAgIHJlbmRlcmVy
LT5wYWludFRvR3JhcGhpY3NDb250ZXh0KGdyYXBoaWNzQ29udGV4dC5nZXQoKSk7CisgICAgICAg
IGV2YXNfb2JqZWN0X2ltYWdlX2RhdGFfdXBkYXRlX2FkZChzZC0+aW1hZ2UsIDAsIDAsIHZpZXdw
b3J0LndpZHRoKCksIHZpZXdwb3J0LmhlaWdodCgpKTsKKyAgICB9CiAjZW5kaWYKIH0KIApAQCAt
NTY2LDExICs1ODAsMjAgQEAKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiBib29s
IEV3a1ZpZXdJbXBsOjpjcmVhdGVHTFN1cmZhY2UoY29uc3QgSW50U2l6ZSYgdmlld1NpemUpCiB7
CisgICAgaWYgKCFtX2lzSGFyZHdhcmVBY2NlbGVyYXRlZCkKKyAgICAgICAgcmV0dXJuIHRydWU7
CisKICAgICBpZiAoIW1fZXZhc0dMKSB7CiAgICAgICAgIEV2YXMqIGV2YXMgPSBldmFzX29iamVj
dF9ldmFzX2dldChtX3ZpZXcpOwogICAgICAgICBtX2V2YXNHTCA9IGFkb3B0UHRyKGV2YXNfZ2xf
bmV3KGV2YXMpKTsKLSAgICAgICAgaWYgKCFtX2V2YXNHTCkKKyAgICAgICAgaWYgKCFtX2V2YXNH
TCkgeworICAgICAgICAgICAgbV9pc0hhcmR3YXJlQWNjZWxlcmF0ZWQgPSBmYWxzZTsKKyAgICAg
ICAgICAgIHBhZ2UoKS0+ZHJhd2luZ0FyZWEoKS0+bGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eSgp
LT5sYXllclRyZWVSZW5kZXJlcigpLT5zZXRBY2NlbGVyYXRpb25Nb2RlKFRleHR1cmVNYXBwZXI6
OlNvZnR3YXJlTW9kZSk7CisjaWYgRU5BQkxFKFdFQkdMKQorICAgICAgICAgICAgbV9wYWdlUHJv
eHktPnBhZ2VHcm91cCgpLT5wcmVmZXJlbmNlcygpLT5zZXRXZWJHTEVuYWJsZWQoZmFsc2UpOwor
I2VuZGlmCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KICAgICB9CiAKICAg
ICBpZiAoIW1fZXZhc0dMQ29udGV4dCkgewpAQCAtNjEwLDYgKzYzMywxMSBAQAogCiBib29sIEV3
a1ZpZXdJbXBsOjplbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKCkKIHsKKyAgICBwYWdl
KCktPmRyYXdpbmdBcmVhKCktPmxheWVyVHJlZUNvb3JkaW5hdG9yUHJveHkoKS0+bGF5ZXJUcmVl
UmVuZGVyZXIoKS0+c2V0QWN0aXZlKHRydWUpOworCisgICAgaWYgKCFtX2lzSGFyZHdhcmVBY2Nl
bGVyYXRlZCkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKICAgICBpZiAoIW1fZXZhc0dMU3VyZmFj
ZSkgewogICAgICAgICBpZiAoIWNyZWF0ZUdMU3VyZmFjZShzaXplKCkpKSB7CiAgICAgICAgICAg
ICBXQVJOKCJGYWlsZWQgdG8gY3JlYXRlIEdMU3VyZmFjZS4iKTsKQEAgLTYxNyw3ICs2NDUsNiBA
QAogICAgICAgICB9CiAgICAgfQogCi0gICAgcGFnZSgpLT5kcmF3aW5nQXJlYSgpLT5sYXllclRy
ZWVDb29yZGluYXRvclByb3h5KCktPmxheWVyVHJlZVJlbmRlcmVyKCktPnNldEFjdGl2ZSh0cnVl
KTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9lZmwvRXdrVmlld0ltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2VmbC9Fd2tWaWV3SW1wbC5oCShyZXZpc2lvbiAxMzQwNjIpCisrKyBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3SW1wbC5oCSh3b3JraW5nIGNvcHkpCkBA
IC0xOTksNiArMTk5LDggQEAKICAgICAvLyBGSVhNRTogbmVlZHMgcmVmYWN0b3JpbmcgKHNwbGl0
IGNhbGxiYWNrIGludm9rZSkKICAgICB2b2lkIGluZm9ybVVSTENoYW5nZSgpOwogCisgICAgYm9v
bCBpc0hhcmR3YXJlQWNjZWxlcmF0ZWQoKSBjb25zdCB7IHJldHVybiBtX2lzSGFyZHdhcmVBY2Nl
bGVyYXRlZDsgfQorCiBwcml2YXRlOgogICAgIGlubGluZSBFd2tfVmlld19TbWFydF9EYXRhKiBz
bWFydERhdGEoKSBjb25zdDsKICAgICB2b2lkIGRpc3BsYXlUaW1lckZpcmVkKFdlYkNvcmU6OlRp
bWVyPEV3a1ZpZXdJbXBsPiopOwpAQCAtMjU1LDYgKzI1Nyw3IEBACiAgICAgT3duUHRyPEV3a19Q
b3B1cF9NZW51PiBtX3BvcHVwTWVudTsKICAgICBPd25QdHI8V2ViS2l0OjpJbnB1dE1ldGhvZENv
bnRleHRFZmw+IG1faW5wdXRNZXRob2RDb250ZXh0OwogICAgIE93blB0cjxFd2tfQ29sb3JfUGlj
a2VyPiBtX2NvbG9yUGlja2VyOworICAgIGJvb2wgbV9pc0hhcmR3YXJlQWNjZWxlcmF0ZWQ7CiB9
OwogCiAjZW5kaWYgLy8gRXdrVmlld0ltcGxfaApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL2VmbC9QYWdlQ2xpZW50QmFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL2VmbC9QYWdlQ2xpZW50QmFzZS5jcHAJKHJldmlzaW9uIDEzNDA2MikKKysrIFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFnZUNsaWVudEJhc2UuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0yOSw4ICsyOSwxMSBAQAogI2luY2x1ZGUgIkRyYXdpbmdBcmVhUHJveHlJbXBsLmgi
CiAjaW5jbHVkZSAiRXdrVmlld0ltcGwuaCIKICNpbmNsdWRlICJJbnB1dE1ldGhvZENvbnRleHRF
ZmwuaCIKKyNpbmNsdWRlICJMYXllclRyZWVDb29yZGluYXRvclByb3h5LmgiCisjaW5jbHVkZSAi
TGF5ZXJUcmVlUmVuZGVyZXIuaCIKICNpbmNsdWRlICJOYXRpdmVXZWJLZXlib2FyZEV2ZW50Lmgi
CiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKyNpbmNsdWRlICJUZXh0dXJlTWFwcGVyLmgi
CiAjaW5jbHVkZSAiV2ViQ29udGV4dC5oIgogI2luY2x1ZGUgIldlYkNvbnRleHRNZW51UHJveHku
aCIKICNpbmNsdWRlICJXZWJQYWdlR3JvdXAuaCIKQEAgLTY2LDcgKzY5LDEyIEBACiAvLyBQYWdl
Q2xpZW50CiBQYXNzT3duUHRyPERyYXdpbmdBcmVhUHJveHk+IFBhZ2VDbGllbnRCYXNlOjpjcmVh
dGVEcmF3aW5nQXJlYVByb3h5KCkKIHsKLSAgICByZXR1cm4gRHJhd2luZ0FyZWFQcm94eUltcGw6
OmNyZWF0ZShtX3ZpZXdJbXBsLT5wYWdlKCkpOworICAgIE93blB0cjxEcmF3aW5nQXJlYVByb3h5
PiBkcmF3aW5nQXJlYSA9IERyYXdpbmdBcmVhUHJveHlJbXBsOjpjcmVhdGUobV92aWV3SW1wbC0+
cGFnZSgpKTsKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisgICAgaWYgKCFtX3Zp
ZXdJbXBsLT5pc0hhcmR3YXJlQWNjZWxlcmF0ZWQoKSkKKyAgICAgICAgZHJhd2luZ0FyZWEtPmxh
eWVyVHJlZUNvb3JkaW5hdG9yUHJveHkoKS0+bGF5ZXJUcmVlUmVuZGVyZXIoKS0+c2V0QWNjZWxl
cmF0aW9uTW9kZShUZXh0dXJlTWFwcGVyOjpTb2Z0d2FyZU1vZGUpOworI2VuZGlmCisgICAgcmV0
dXJuIGRyYXdpbmdBcmVhLnJlbGVhc2UoKTsKIH0KIAogdm9pZCBQYWdlQ2xpZW50QmFzZTo6c2V0
Vmlld05lZWRzRGlzcGxheShjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiByZWN0KQpJbmRleDogU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlUmVuZGVy
ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRl
ZEdyYXBoaWNzL0xheWVyVHJlZVJlbmRlcmVyLmNwcAkocmV2aXNpb24gMTM0MDYyKQorKysgU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlUmVuZGVy
ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05Miw2ICs5Miw3IEBACiAjaWYgRU5BQkxFKFJFUVVF
U1RfQU5JTUFUSU9OX0ZSQU1FKQogICAgICwgbV9hbmltYXRpb25GcmFtZVJlcXVlc3RlZChmYWxz
ZSkKICNlbmRpZgorICAgICwgbV9hY2NlbGVyYXRpb25Nb2RlKFRleHR1cmVNYXBwZXI6Ok9wZW5H
TE1vZGUpCiB7CiB9CiAKQEAgLTQ1NCw3ICs0NTUsNyBAQAogICAgIGlmIChtX3Jvb3RMYXllcikK
ICAgICAgICAgcmV0dXJuOwogICAgIGlmICghbV90ZXh0dXJlTWFwcGVyKSB7Ci0gICAgICAgIG1f
dGV4dHVyZU1hcHBlciA9IFRleHR1cmVNYXBwZXI6OmNyZWF0ZShUZXh0dXJlTWFwcGVyOjpPcGVu
R0xNb2RlKTsKKyAgICAgICAgbV90ZXh0dXJlTWFwcGVyID0gVGV4dHVyZU1hcHBlcjo6Y3JlYXRl
KG1fYWNjZWxlcmF0aW9uTW9kZSk7CiAgICAgICAgIHN0YXRpY19jYXN0PFRleHR1cmVNYXBwZXJH
TCo+KG1fdGV4dHVyZU1hcHBlci5nZXQoKSktPnNldEVuYWJsZUVkZ2VEaXN0YW5jZUFudGlhbGlh
c2luZyh0cnVlKTsKICAgICB9CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29y
ZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZVJlbmRlcmVyLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlUmVuZGVyZXIu
aAkocmV2aXNpb24gMTM0MDYyKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5h
dGVkR3JhcGhpY3MvTGF5ZXJUcmVlUmVuZGVyZXIuaAkod29ya2luZyBjb3B5KQpAQCAtOTksNiAr
OTksMTIgQEAKICAgICB2b2lkIGFuaW1hdGlvbkZyYW1lUmVhZHkoKTsKICNlbmRpZgogCisgICAg
dm9pZCBzZXRBY2NlbGVyYXRpb25Nb2RlKFdlYkNvcmU6OlRleHR1cmVNYXBwZXI6OkFjY2VsZXJh
dGlvbk1vZGUgbW9kZSkKKyAgICB7CisgICAgICAgIC8vIFRoZSBhY2NlbGVyYXRpb24gbW9kZSBp
cyBzZXQgb25seSBiZWZvcmUgVGV4dHVyZU1hcHBlciB3YXMgY3JlYXRlZC4KKyAgICAgICAgQVNT
RVJUKCFtX3RleHR1cmVNYXBwZXIpOworICAgICAgICBtX2FjY2VsZXJhdGlvbk1vZGUgPSBtb2Rl
OworICAgIH0KIHByaXZhdGU6CiAgICAgUGFzc093blB0cjxXZWJDb3JlOjpHcmFwaGljc0xheWVy
PiBjcmVhdGVMYXllcihXZWJMYXllcklEKTsKIApAQCAtMTUzLDYgKzE1OSw3IEBACiAjaWYgRU5B
QkxFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKQogICAgIGJvb2wgbV9hbmltYXRpb25GcmFtZVJl
cXVlc3RlZDsKICNlbmRpZgorICAgIFdlYkNvcmU6OlRleHR1cmVNYXBwZXI6OkFjY2VsZXJhdGlv
bk1vZGUgbV9hY2NlbGVyYXRpb25Nb2RlOwogfTsKIAogfTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>