<?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>109794</bug_id>
          
          <creation_ts>2013-02-14 01:34:00 -0800</creation_ts>
          <short_desc>[WK2][EFL] Eliminate access to WK2 C++ internals from ewk_view functions</short_desc>
          <delta_ts>2013-02-19 08:49:54 -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>
          
          <blocked>107657</blocked>
    
    <blocked>107662</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mikhail Pozdnyakov">mikhail.pozdnyakov</reporter>
          <assigned_to name="Mikhail Pozdnyakov">mikhail.pozdnyakov</assigned_to>
          <cc>andersca</cc>
    
    <cc>cdumez</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kenneth</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>rakuco</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>832840</commentid>
    <comment_count>0</comment_count>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2013-02-14 01:34:00 -0800</bug_when>
    <thetext>SSIA.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832862</commentid>
    <comment_count>1</comment_count>
      <attachid>188291</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2013-02-14 01:58:56 -0800</bug_when>
    <thetext>Created attachment 188291
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832864</commentid>
    <comment_count>2</comment_count>
      <attachid>188293</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2013-02-14 02:02:40 -0800</bug_when>
    <thetext>Created attachment 188293
patch

Removed extra line and pending space</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832895</commentid>
    <comment_count>3</comment_count>
      <attachid>188293</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-02-14 03:16:07 -0800</bug_when>
    <thetext>Comment on attachment 188293
patch

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

&gt; Source/WebKit2/UIProcess/API/C/efl/WKView.cpp:113
&gt; +    return toImpl(viewRef)-&gt;requestExitFullScreen();

return statement in void function.

&gt; Source/WebKit2/UIProcess/API/C/efl/WKView.cpp:116
&gt; +    return 0;

Ditto.

&gt; Source/WebKit2/UIProcess/API/efl/EwkView.cpp:746
&gt; +void EwkView::feedTouchEvent(Ewk_Touch_Event_Type type, const Eina_List* points, const Evas_Modifier* modifiers)

Feels like this may be a WebView method, except for the argument types.

&gt; Source/WebKit2/UIProcess/API/efl/EwkView.cpp:748
&gt; +    page()-&gt;handleTouchEvent(NativeWebTouchEvent(type, points, modifiers, transformFromScene(), transformToScreen(), ecore_time_get()));

Page proxy should really not be used in EwkView, which is why I think this should be on WebView side.

&gt; Source/WebKit2/UIProcess/API/efl/ewk_view.cpp:446
&gt; +    toImpl(impl-&gt;wkPage())-&gt;setPaginationMode(static_cast&lt;WebCore::Pagination::Mode&gt;(mode));

WKPageSetPaginationMode() ?

&gt; Source/WebKit2/UIProcess/API/efl/ewk_view.cpp:455
&gt; +    return static_cast&lt;Ewk_Pagination_Mode&gt;(toImpl(impl-&gt;wkPage())-&gt;paginationMode());

WKPageGetPaginationMode() ?

&gt; Source/WebKit2/UIProcess/API/efl/ewk_view.cpp:-472
&gt; -    return false;

We should keep returning false if FULLSCREEN_API is disabled.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832902</commentid>
    <comment_count>4</comment_count>
      <attachid>188293</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2013-02-14 03:32:01 -0800</bug_when>
    <thetext>Comment on attachment 188293
patch

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

&gt; Source/WebKit2/ChangeLog:24
&gt; +            Added feedTouchEvent() method so that: at fisrt ewk_view_feed_touch_event()

first*

&gt; Source/WebKit2/UIProcess/API/C/efl/WKView.cpp:108
&gt; +
&gt; +bool WKViewGetMainFrameInViewSourceMode(WKViewRef viewRef)
&gt; +{
&gt; +    return toImpl(viewRef)-&gt;mainFrameInViewSourceMode();
&gt; +}

Does &quot;mainframe&quot; add any value here? 

WKViewSetShowAsSource?

&gt; Source/WebKit2/UIProcess/API/C/efl/WKView.cpp:111
&gt; +
&gt; +void WKViewRequestExitFullScreen(WKViewRef viewRef)
&gt; +{

How does this integrate with the WK C api for fullscreen?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832916</commentid>
    <comment_count>5</comment_count>
      <attachid>188293</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2013-02-14 03:53:25 -0800</bug_when>
    <thetext>Comment on attachment 188293
patch

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

&gt;&gt; Source/WebKit2/UIProcess/API/C/efl/WKView.cpp:113
&gt;&gt; +    return toImpl(viewRef)-&gt;requestExitFullScreen();
&gt; 
&gt; return statement in void function.

oops. my bad :/

&gt;&gt; Source/WebKit2/UIProcess/API/efl/EwkView.cpp:746
&gt;&gt; +void EwkView::feedTouchEvent(Ewk_Touch_Event_Type type, const Eina_List* points, const Evas_Modifier* modifiers)
&gt; 
&gt; Feels like this may be a WebView method, except for the argument types.

yeah, but this has to be solved further, together with the rest event handling.

&gt;&gt; Source/WebKit2/UIProcess/API/efl/EwkView.cpp:748
&gt;&gt; +    page()-&gt;handleTouchEvent(NativeWebTouchEvent(type, points, modifiers, transformFromScene(), transformToScreen(), ecore_time_get()));
&gt; 
&gt; Page proxy should really not be used in EwkView, which is why I think this should be on WebView side.

We do not have C API for event objects so far..

&gt;&gt; Source/WebKit2/UIProcess/API/efl/ewk_view.cpp:446
&gt;&gt; +    toImpl(impl-&gt;wkPage())-&gt;setPaginationMode(static_cast&lt;WebCore::Pagination::Mode&gt;(mode));
&gt; 
&gt; WKPageSetPaginationMode() ?

I did not dare to use this as this function as WKPageSetPaginationMode is from WKPagePrivate, there is probably a reason for not exposing it.

&gt;&gt; Source/WebKit2/UIProcess/API/efl/ewk_view.cpp:455
&gt;&gt; +    return static_cast&lt;Ewk_Pagination_Mode&gt;(toImpl(impl-&gt;wkPage())-&gt;paginationMode());
&gt; 
&gt; WKPageGetPaginationMode() ?

ditto.

&gt;&gt; Source/WebKit2/UIProcess/API/efl/ewk_view.cpp:-472
&gt;&gt; -    return false;
&gt; 
&gt; We should keep returning false if FULLSCREEN_API is disabled.

yeah.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832924</commentid>
    <comment_count>6</comment_count>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2013-02-14 03:58:06 -0800</bug_when>
    <thetext>&gt; &gt; Source/WebKit2/UIProcess/API/C/efl/WKView.cpp:108
&gt; &gt; +
&gt; &gt; +bool WKViewGetMainFrameInViewSourceMode(WKViewRef viewRef)
&gt; &gt; +{
&gt; &gt; +    return toImpl(viewRef)-&gt;mainFrameInViewSourceMode();
&gt; &gt; +}
&gt; 
&gt; Does &quot;mainframe&quot; add any value here? 
&gt; 
&gt; WKViewSetShowAsSource?
could be WKViewGetShowsAsSource, to be consistent with WKViewGetDrawsBackground and so on.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832939</commentid>
    <comment_count>7</comment_count>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2013-02-14 04:17:28 -0800</bug_when>
    <thetext>&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/C/efl/WKView.cpp:111
&gt; &gt; +
&gt; &gt; +void WKViewRequestExitFullScreen(WKViewRef viewRef)
&gt; &gt; +{
&gt; 
&gt; How does this integrate with the WK C api for fullscreen?
Do we have C api for fullscreen? I can see only WKFullScreenClientGtk, however RequestExitFullScreen seems to be rather functionality of view I guess.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832954</commentid>
    <comment_count>8</comment_count>
      <attachid>188319</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2013-02-14 04:35:16 -0800</bug_when>
    <thetext>Created attachment 188319
patch v2

Took comments from Chris and Kenneth into consideration.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>833958</commentid>
    <comment_count>9</comment_count>
      <attachid>188319</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2013-02-15 06:34:05 -0800</bug_when>
    <thetext>Comment on attachment 188319
patch v2

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

Looks fine

&gt; Source/WebKit2/UIProcess/API/C/efl/WKView.cpp:111
&gt; +
&gt; +void WKViewRequestExitFullScreen(WKViewRef viewRef)
&gt; +{

when does the UA/browser request to exit the fullscreen? How is this supposed to work?

&gt; Source/WebKit2/UIProcess/API/efl/ewk_view.cpp:445
&gt; +    // FIXME: move to exported C WKPage API when it appears.

appears?

&gt; Source/WebKit2/UIProcess/API/efl/ewk_view.cpp:517
&gt; +    WKPageGetContentsAsMHTMLData(impl-&gt;wkPage(), false, context, ewkViewPageContentsCallback);

Content* no?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>833961</commentid>
    <comment_count>10</comment_count>
      <attachid>188319</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-02-15 06:36:02 -0800</bug_when>
    <thetext>Comment on attachment 188319
patch v2

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

&gt;&gt; Source/WebKit2/UIProcess/API/C/efl/WKView.cpp:111
&gt;&gt; +{
&gt; 
&gt; when does the UA/browser request to exit the fullscreen? How is this supposed to work?

When the content requested full screen mode via full screen API, and we switch to full screen. If the user press &quot;ESC&quot; key, the browser will request to exit fullscreen using this API. You can test in our MiniBrowser.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>833962</commentid>
    <comment_count>11</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2013-02-15 06:37:07 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 188319 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=188319&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebKit2/UIProcess/API/C/efl/WKView.cpp:111
&gt; &gt;&gt; +{
&gt; &gt; 
&gt; &gt; when does the UA/browser request to exit the fullscreen? How is this supposed to work?
&gt; 
&gt; When the content requested full screen mode via full screen API, and we switch to full screen. If the user press &quot;ESC&quot; key, the browser will request to exit fullscreen using this API. You can test in our MiniBrowser.

As it is a request can the content actually ignore this and not exit? or is this just so that JS etc can act on exiting?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>833971</commentid>
    <comment_count>12</comment_count>
      <attachid>188319</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-02-15 06:45:25 -0800</bug_when>
    <thetext>Comment on attachment 188319
patch v2

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

&gt;&gt;&gt;&gt; Source/WebKit2/UIProcess/API/C/efl/WKView.cpp:111
&gt;&gt;&gt;&gt; +{
&gt;&gt;&gt; 
&gt;&gt;&gt; when does the UA/browser request to exit the fullscreen? How is this supposed to work?
&gt;&gt; 
&gt;&gt; When the content requested full screen mode via full screen API, and we switch to full screen. If the user press &quot;ESC&quot; key, the browser will request to exit fullscreen using this API. You can test in our MiniBrowser.
&gt; 
&gt; As it is a request can the content actually ignore this and not exit? or is this just so that JS etc can act on exiting?

To my knowledge, this is so that doc.fullscreenEnabled is updated and so that a fullscreenchange event is fired. CSS style may also change depending on fullscreen state. It is not technically a request, we should probably call it &quot;WKViewExitFullScreen()&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835361</commentid>
    <comment_count>13</comment_count>
      <attachid>188855</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2013-02-18 05:02:15 -0800</bug_when>
    <thetext>Created attachment 188855
patch v3

WKViewRequestExitFullScreen -&gt; WKViewExitFullScreen</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835367</commentid>
    <comment_count>14</comment_count>
      <attachid>188855</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-02-18 05:09:07 -0800</bug_when>
    <thetext>Comment on attachment 188855
patch v3

Attachment 188855 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/16613156</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835377</commentid>
    <comment_count>15</comment_count>
      <attachid>188858</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2013-02-18 05:21:26 -0800</bug_when>
    <thetext>Created attachment 188858
patch v4

rebased</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835387</commentid>
    <comment_count>16</comment_count>
      <attachid>188858</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2013-02-18 05:29:17 -0800</bug_when>
    <thetext>Comment on attachment 188858
patch v4

LGTM</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836440</commentid>
    <comment_count>17</comment_count>
      <attachid>188858</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-19 08:49:49 -0800</bug_when>
    <thetext>Comment on attachment 188858
patch v4

Clearing flags on attachment: 188858

Committed r143339: &lt;http://trac.webkit.org/changeset/143339&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836441</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-19 08:49:54 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188291</attachid>
            <date>2013-02-14 01:58:56 -0800</date>
            <delta_ts>2013-02-14 02:02:40 -0800</delta_ts>
            <desc>patch</desc>
            <filename>bug109794</filename>
            <type>text/plain</type>
            <size>12713</size>
            <attacher name="Mikhail Pozdnyakov">mikhail.pozdnyakov</attacher>
            
              <data encoding="base64">Y29tbWl0IGM2NjY3MmQ2ZjU0NmNkY2ExYzZkOWYzMDM0MzA4MjI3NDQ2YzNjMzAKQXV0aG9yOiBN
aWtoYWlsIFBvemRueWFrb3YgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CkRhdGU6ICAg
VGh1IEZlYiAxNCAxMTo1MTozNCAyMDEzICswMjAwCgogICAgYnVnMTA5Nzk0CgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmlu
ZGV4IGMwODY4NWUuLjU1NzI1MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NSBAQAorMjAxMy0w
Mi0xNCAgTWlraGFpbCBQb3pkbnlha292ICA8bWlraGFpbC5wb3pkbnlha292QGludGVsLmNvbT4K
KworICAgICAgICBbV0syXVtFRkxdIEVsaW1pbmF0ZSBhY2Nlc3MgdG8gV0syIEMrKyBpbnRlcm5h
bHMgZnJvbSBld2tfdmlldyBmdW5jdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEwOTc5NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL2VmbC9XS1ZpZXcuY3BwOgorICAg
ICAgICAoV0tWaWV3U2V0TWFpbkZyYW1lSW5WaWV3U291cmNlTW9kZSk6CisgICAgICAgIChXS1Zp
ZXdHZXRNYWluRnJhbWVJblZpZXdTb3VyY2VNb2RlKToKKworICAgICAgICAgICAgQWRkZWQgbmV3
IFdLVmlldyBBUEkgdG8gd3JhcCBXZWJQYWdlUHJveHk6OnNldE1haW5GcmFtZUluVmlld1NvdXJj
ZU1vZGUoKQorICAgICAgICAgICAgYW5kIFdlYlBhZ2VQcm94eTo6bWFpbkZyYW1lSW5WaWV3U291
cmNlTW9kZSgpIGNhbGxzLgorCisgICAgICAgIChXS1ZpZXdSZXF1ZXN0RXhpdEZ1bGxTY3JlZW4p
OgorCisgICAgICAgICAgICBBZGRlZCBuZXcgV0tWaWV3IEFQSSB0byB3cmFwIFdlYkZ1bGxTY3Jl
ZW5NYW5hZ2VyUHJveHk6OnJlcXVlc3RFeGl0RnVsbFNjcmVlbigpCisgICAgICAgICAgICBjYWxs
cworCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL2VmbC9XS1ZpZXcuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmNwcDoKKyAgICAgICAgKEV3a1ZpZXc6OmZlZWRUb3Vj
aEV2ZW50KTogCisKKyAgICAgICAgICAgIEFkZGVkIGZlZWRUb3VjaEV2ZW50KCkgbWV0aG9kIHNv
IHRoYXQ6IGF0IGZpc3J0IGV3a192aWV3X2ZlZWRfdG91Y2hfZXZlbnQoKQorICAgICAgICAgICAg
aXMgbm90IGludm9rZWQgZnJvbSBFd2tWaWV3IGNsYXNzLCBzZWNvbmRseSBld2tfdmlld19mZWVk
X3RvdWNoX2V2ZW50KCkgZG9lcworICAgICAgICAgICAgbm90IGFjY2VzcyBXZWJQYWdlIGluc3Rh
bmNlIGRpcmVjdGx5LgorCisgICAgICAgIChFd2tWaWV3OjpmZWVkVG91Y2hFdmVudHMpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuaDoKKyAgICAgICAgKEV3a1ZpZXcpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmNwcDoKKyAgICAgICAgKGV3a192
aWV3X2ZlZWRfdG91Y2hfZXZlbnQpOgorICAgICAgICAoZXdrX3ZpZXdfcGFnaW5hdGlvbl9tb2Rl
X3NldCk6CisgICAgICAgIChld2tfdmlld19wYWdpbmF0aW9uX21vZGVfZ2V0KToKKyAgICAgICAg
KGV3a192aWV3X2Z1bGxzY3JlZW5fZXhpdCk6CisgICAgICAgIChld2tWaWV3UGFnZUNvbnRlbnRz
Q2FsbGJhY2spOgorICAgICAgICAoZXdrX3ZpZXdfcGFnZV9jb250ZW50c19nZXQpOgorICAgICAg
ICAoZXdrX3ZpZXdfc291cmNlX21vZGVfc2V0KToKKyAgICAgICAgKGV3a192aWV3X3NvdXJjZV9t
b2RlX2dldCk6CisKKyAgICAgICAgICAgIFRob3NlIGFyZSBub3cgdXNpbmcgZXhwb3J0ZWQgQyBB
UEkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvZWZsL1dlYlZpZXcuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJWaWV3OjpzZXRNYWluRnJhbWVJblZpZXdTb3VyY2VNb2RlKToKKyAgICAgICAgKFdl
YktpdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXc6Om1haW5GcmFtZUluVmlld1NvdXJjZU1v
ZGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3OjpyZXF1ZXN0RXhpdEZ1bGxTY3JlZW4pOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9lZmwvV2ViVmlldy5oOgorICAgICAgICAoV2ViVmlldyk6CisK
KyAgICAgICAgICAgIEFkZGVkIFdlYlZpZXcgbWV0aG9kcyB0byBzdXBwb3J0IGFkZGVkIFdLVmll
dyBBUEkuCisKIDIwMTMtMDItMTMgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNv
bT4KIAogICAgICAgICBSZW1vdmUgU3RyaW5nUGFpclZlY3RvcgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL2VmbC9XS1ZpZXcuY3BwIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9DL2VmbC9XS1ZpZXcuY3BwCmluZGV4IDIxMGYyZTIuLjg3OTc2YTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9lZmwvV0tWaWV3LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvZWZsL1dLVmlldy5jcHAKQEAgLTk3
LDYgKzk3LDI2IEBAIHZvaWQgV0tWaWV3UmVzdW1lQWN0aXZlRE9NT2JqZWN0c0FuZEFuaW1hdGlv
bnMoV0tWaWV3UmVmIHZpZXdSZWYpCiAgICAgdG9JbXBsKHZpZXdSZWYpLT5yZXN1bWVBY3RpdmVE
T01PYmplY3RzQW5kQW5pbWF0aW9ucygpOwogfQogCit2b2lkIFdLVmlld1NldE1haW5GcmFtZUlu
Vmlld1NvdXJjZU1vZGUoV0tWaWV3UmVmIHZpZXdSZWYsIGJvb2wgZmxhZykKK3sKKyAgICB0b0lt
cGwodmlld1JlZiktPnNldE1haW5GcmFtZUluVmlld1NvdXJjZU1vZGUoZmxhZyk7Cit9CisKK2Jv
b2wgV0tWaWV3R2V0TWFpbkZyYW1lSW5WaWV3U291cmNlTW9kZShXS1ZpZXdSZWYgdmlld1JlZikK
K3sKKyAgICByZXR1cm4gdG9JbXBsKHZpZXdSZWYpLT5tYWluRnJhbWVJblZpZXdTb3VyY2VNb2Rl
KCk7Cit9CisKK3ZvaWQgV0tWaWV3UmVxdWVzdEV4aXRGdWxsU2NyZWVuKFdLVmlld1JlZiB2aWV3
UmVmKQoreworI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKKyAgICByZXR1cm4gdG9JbXBsKHZp
ZXdSZWYpLT5yZXF1ZXN0RXhpdEZ1bGxTY3JlZW4oKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFN
KHZpZXdSZWYpOworICAgIHJldHVybiAwOworI2VuZGlmCit9CisKIEV2YXNfT2JqZWN0KiBXS1Zp
ZXdHZXRFdmFzT2JqZWN0KFdLVmlld1JlZiB2aWV3UmVmKQogewogICAgIHJldHVybiB0b0ltcGwo
dmlld1JlZiktPmV2YXNPYmplY3QoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9lZmwvV0tWaWV3LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
ZWZsL1dLVmlldy5oCmluZGV4IDMyNTQ2YzYuLmRlY2U1ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9lZmwvV0tWaWV3LmgKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9DL2VmbC9XS1ZpZXcuaApAQCAtNzAsNiArNzAsMTEgQEAgV0tfRVhQT1JU
IGJvb2wgV0tWaWV3R2V0RHJhd3NUcmFuc3BhcmVudEJhY2tncm91bmQoV0tWaWV3UmVmKTsKIFdL
X0VYUE9SVCB2b2lkIFdLVmlld1N1c3BlbmRBY3RpdmVET01PYmplY3RzQW5kQW5pbWF0aW9ucyhX
S1ZpZXdSZWYpOwogV0tfRVhQT1JUIHZvaWQgV0tWaWV3UmVzdW1lQWN0aXZlRE9NT2JqZWN0c0Fu
ZEFuaW1hdGlvbnMoV0tWaWV3UmVmKTsKIAorV0tfRVhQT1JUIHZvaWQgV0tWaWV3U2V0TWFpbkZy
YW1lSW5WaWV3U291cmNlTW9kZShXS1ZpZXdSZWYsIGJvb2wpOworV0tfRVhQT1JUIGJvb2wgV0tW
aWV3R2V0TWFpbkZyYW1lSW5WaWV3U291cmNlTW9kZShXS1ZpZXdSZWYpOworCitXS19FWFBPUlQg
dm9pZCBXS1ZpZXdSZXF1ZXN0RXhpdEZ1bGxTY3JlZW4oV0tWaWV3UmVmKTsKKwogLy8gRklYTUU6
IFRoZSBsb25nIHRlcm0gcGxhbiBpcyB0byBnZXQgcmlkIG9mIHRoaXMsIHNvIGtlZXAgdXNhZ2Ug
dG8gYSBiYXJlIG1pbmltdW0uCiBXS19FWFBPUlQgRXZhc19PYmplY3QqIFdLVmlld0dldEV2YXNP
YmplY3QoV0tWaWV3UmVmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9lZmwvRXdrVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9F
d2tWaWV3LmNwcAppbmRleCBmZTk0YTFmLi5mZWEyZDY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmNwcApAQCAtNzQzLDYgKzc0MywxMSBAQCB2b2lkIEV3
a1ZpZXc6OnNldE1vdXNlRXZlbnRzRW5hYmxlZChib29sIGVuYWJsZWQpCiB9CiAKICNpZiBFTkFC
TEUoVE9VQ0hfRVZFTlRTKQordm9pZCBFd2tWaWV3OjpmZWVkVG91Y2hFdmVudChFd2tfVG91Y2hf
RXZlbnRfVHlwZSB0eXBlLCBjb25zdCBFaW5hX0xpc3QqIHBvaW50cywgY29uc3QgRXZhc19Nb2Rp
ZmllciogbW9kaWZpZXJzKQoreworICAgIHBhZ2UoKS0+aGFuZGxlVG91Y2hFdmVudChOYXRpdmVX
ZWJUb3VjaEV2ZW50KHR5cGUsIHBvaW50cywgbW9kaWZpZXJzLCB0cmFuc2Zvcm1Gcm9tU2NlbmUo
KSwgdHJhbnNmb3JtVG9TY3JlZW4oKSwgZWNvcmVfdGltZV9nZXQoKSkpOworfQorCiB2b2lkIEV3
a1ZpZXc6OnNldFRvdWNoRXZlbnRzRW5hYmxlZChib29sIGVuYWJsZWQpCiB7CiAgICAgaWYgKG1f
dG91Y2hFdmVudHNFbmFibGVkID09IGVuYWJsZWQpCkBAIC0xMzAzLDcgKzEzMDgsNyBAQCB2b2lk
IEV3a1ZpZXc6OmZlZWRUb3VjaEV2ZW50cyhFd2tfVG91Y2hfRXZlbnRfVHlwZSB0eXBlKQogICAg
ICAgICBwb2ludHMgPSBlaW5hX2xpc3RfYXBwZW5kKHBvaW50cywgcG9pbnQpOwogICAgIH0KIAot
ICAgIGV3a192aWV3X2ZlZWRfdG91Y2hfZXZlbnQobV9ldmFzT2JqZWN0LCB0eXBlLCBwb2ludHMs
IGV2YXNfa2V5X21vZGlmaWVyX2dldChzZC0+YmFzZS5ldmFzKSk7CisgICAgZmVlZFRvdWNoRXZl
bnQodHlwZSwgcG9pbnRzLCBldmFzX2tleV9tb2RpZmllcl9nZXQoc2QtPmJhc2UuZXZhcykpOwog
CiAgICAgdm9pZCogZGF0YTsKICAgICBFSU5BX0xJU1RfRlJFRShwb2ludHMsIGRhdGEpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmgKaW5kZXggNmZjYzVjYy4uMjY0
Y2I5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmll
dy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuaApAQCAt
MTU5LDYgKzE1OSw3IEBAIHB1YmxpYzoKICAgICBib29sIG1vdXNlRXZlbnRzRW5hYmxlZCgpIGNv
bnN0IHsgcmV0dXJuIG1fbW91c2VFdmVudHNFbmFibGVkOyB9CiAgICAgdm9pZCBzZXRNb3VzZUV2
ZW50c0VuYWJsZWQoYm9vbCBlbmFibGVkKTsKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQorICAg
IHZvaWQgZmVlZFRvdWNoRXZlbnQoRXdrX1RvdWNoX0V2ZW50X1R5cGUgdHlwZSwgY29uc3QgRWlu
YV9MaXN0KiBwb2ludHMsIGNvbnN0IEV2YXNfTW9kaWZpZXIqIG1vZGlmaWVycyk7CiAgICAgYm9v
bCB0b3VjaEV2ZW50c0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX3RvdWNoRXZlbnRzRW5hYmxl
ZDsgfQogICAgIHZvaWQgc2V0VG91Y2hFdmVudHNFbmFibGVkKGJvb2wgZW5hYmxlZCk7CiAjZW5k
aWYKQEAgLTI1NCw3ICsyNTUsNyBAQCBwcml2YXRlOgogICAgIHN0YXRpYyBFaW5hX0Jvb2wgaGFu
ZGxlRXdrVmlld0tleURvd24oRXdrX1ZpZXdfU21hcnRfRGF0YSogc21hcnREYXRhLCBjb25zdCBF
dmFzX0V2ZW50X0tleV9Eb3duKiBkb3duRXZlbnQpOwogICAgIHN0YXRpYyBFaW5hX0Jvb2wgaGFu
ZGxlRXdrVmlld0tleVVwKEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSwgY29uc3QgRXZh
c19FdmVudF9LZXlfVXAqIHVwRXZlbnQpOwogCi0jaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKKyNp
ZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKSAgICAKICAgICB2b2lkIGZlZWRUb3VjaEV2ZW50cyhFd2tf
VG91Y2hfRXZlbnRfVHlwZSB0eXBlKTsKICAgICBzdGF0aWMgdm9pZCBoYW5kbGVUb3VjaERvd24o
dm9pZCogZGF0YSwgRXZhcyosIEV2YXNfT2JqZWN0Kiwgdm9pZCogZXZlbnRJbmZvKTsKICAgICBz
dGF0aWMgdm9pZCBoYW5kbGVUb3VjaFVwKHZvaWQqIGRhdGEsIEV2YXMqLCBFdmFzX09iamVjdCos
IHZvaWQqIGV2ZW50SW5mbyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2VmbC9ld2tfdmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9l
d2tfdmlldy5jcHAKaW5kZXggODYzYmU0OC4uZWM0MzFkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmNwcApAQCAtMzEsMTkgKzMxLDYgQEAKICNpbmNs
dWRlICJQYWdlVUlDbGllbnRFZmwuaCIKICNpbmNsdWRlICJQYWdlVmlld3BvcnRDb250cm9sbGVy
LmgiCiAjaW5jbHVkZSAiUGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudEVmbC5oIgotI2luY2x1
ZGUgIldLQVBJQ2FzdC5oIgotI2luY2x1ZGUgIldLRWluYVNoYXJlZFN0cmluZy5oIgotI2luY2x1
ZGUgIldLRmluZE9wdGlvbnMuaCIKLSNpbmNsdWRlICJXS0luc3BlY3Rvci5oIgotI2luY2x1ZGUg
IldLUmV0YWluUHRyLmgiCi0jaW5jbHVkZSAiV0tTdHJpbmcuaCIKLSNpbmNsdWRlICJXS1VSTC5o
IgotI2luY2x1ZGUgIldLVmlldy5oIgotI2luY2x1ZGUgIldlYkNvbnRleHQuaCIKLSNpbmNsdWRl
ICJXZWJEYXRhLmgiCi0jaW5jbHVkZSAiV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5oIgotI2lu
Y2x1ZGUgIldlYlBhZ2VHcm91cC5oIgotI2luY2x1ZGUgIldlYlByZWZlcmVuY2VzLmgiCiAjaW5j
bHVkZSAiZXdrX2JhY2tfZm9yd2FyZF9saXN0X3ByaXZhdGUuaCIKICNpbmNsdWRlICJld2tfY29u
dGV4dC5oIgogI2luY2x1ZGUgImV3a19jb250ZXh0X3ByaXZhdGUuaCIKQEAgLTUxLDcgKzM4LDE2
IEBACiAjaW5jbHVkZSAiZXdrX3ByaXZhdGUuaCIKICNpbmNsdWRlICJld2tfc2V0dGluZ3NfcHJp
dmF0ZS5oIgogI2luY2x1ZGUgPEVjb3JlX0V2YXMuaD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLQVBJ
Q2FzdC5oPgorI2luY2x1ZGUgPFdlYktpdDIvV0tEYXRhLmg+CisjaW5jbHVkZSA8V2ViS2l0Mi9X
S0VpbmFTaGFyZWRTdHJpbmcuaD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLRmluZE9wdGlvbnMuaD4K
KyNpbmNsdWRlIDxXZWJLaXQyL1dLSW5zcGVjdG9yLmg+CiAjaW5jbHVkZSA8V2ViS2l0Mi9XS1Bh
Z2VHcm91cC5oPgorI2luY2x1ZGUgPFdlYktpdDIvV0tSZXRhaW5QdHIuaD4KKyNpbmNsdWRlIDxX
ZWJLaXQyL1dLU3RyaW5nLmg+CisjaW5jbHVkZSA8V2ViS2l0Mi9XS1VSTC5oPgorI2luY2x1ZGUg
PFdlYktpdDIvV0tWaWV3Lmg+CiAjaW5jbHVkZSA8d3RmL1VudXNlZFBhcmFtLmg+CiAjaW5jbHVk
ZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCkBAIC0zNjUsNyArMzYxLDcgQEAgRWluYV9Cb29sIGV3
a192aWV3X2ZlZWRfdG91Y2hfZXZlbnQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIEV3a19Ub3VjaF9F
dmVudF9UeXBlIHQKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwocG9pbnRzLCBm
YWxzZSk7CiAgICAgRVdLX1ZJRVdfSU1QTF9HRVRfT1JfUkVUVVJOKGV3a1ZpZXcsIGltcGwsIGZh
bHNlKTsKIAotICAgIGltcGwtPnBhZ2UoKS0+aGFuZGxlVG91Y2hFdmVudChOYXRpdmVXZWJUb3Vj
aEV2ZW50KHR5cGUsIHBvaW50cywgbW9kaWZpZXJzLCBpbXBsLT50cmFuc2Zvcm1Gcm9tU2NlbmUo
KSwgaW1wbC0+dHJhbnNmb3JtVG9TY3JlZW4oKSwgZWNvcmVfdGltZV9nZXQoKSkpOworICAgIGlt
cGwtPmZlZWRUb3VjaEV2ZW50KHR5cGUsIHBvaW50cywgbW9kaWZpZXJzKTsKIAogICAgIHJldHVy
biB0cnVlOwogI2Vsc2UKQEAgLTQ0Niw4ICs0NDIsOCBAQCBDT01QSUxFX0FTU0VSVF9NQVRDSElO
R19FTlVNKEVXS19QQUdJTkFUSU9OX01PREVfQk9UVE9NX1RPX1RPUCwgV2ViQ29yZTo6UGFnaW5h
dAogRWluYV9Cb29sIGV3a192aWV3X3BhZ2luYXRpb25fbW9kZV9zZXQoRXZhc19PYmplY3QqIGV3
a1ZpZXcsIEV3a19QYWdpbmF0aW9uX01vZGUgbW9kZSkKIHsKICAgICBFV0tfVklFV19JTVBMX0dF
VF9PUl9SRVRVUk4oZXdrVmlldywgaW1wbCwgZmFsc2UpOwotICAgIAotICAgIGltcGwtPnBhZ2Uo
KS0+c2V0UGFnaW5hdGlvbk1vZGUoc3RhdGljX2Nhc3Q8V2ViQ29yZTo6UGFnaW5hdGlvbjo6TW9k
ZT4obW9kZSkpOworICAgIC8vIEZJWE1FOiBtb3ZlIHRvIEMgV0tQYWdlIEFQSSB3aGVuIGl0IGFw
cGVhcnMuCisgICAgdG9JbXBsKGltcGwtPndrUGFnZSgpKS0+c2V0UGFnaW5hdGlvbk1vZGUoc3Rh
dGljX2Nhc3Q8V2ViQ29yZTo6UGFnaW5hdGlvbjo6TW9kZT4obW9kZSkpOwogCiAgICAgcmV0dXJu
IHRydWU7CiB9CkBAIC00NTUsMjIgKzQ1MSwxNyBAQCBFaW5hX0Jvb2wgZXdrX3ZpZXdfcGFnaW5h
dGlvbl9tb2RlX3NldChFdmFzX09iamVjdCogZXdrVmlldywgRXdrX1BhZ2luYXRpb25fTW9kZQog
RXdrX1BhZ2luYXRpb25fTW9kZSBld2tfdmlld19wYWdpbmF0aW9uX21vZGVfZ2V0KGNvbnN0IEV2
YXNfT2JqZWN0KiBld2tWaWV3KQogewogICAgIEVXS19WSUVXX0lNUExfR0VUX09SX1JFVFVSTihl
d2tWaWV3LCBpbXBsLCBFV0tfUEFHSU5BVElPTl9NT0RFX0lOVkFMSUQpOwotCi0gICAgcmV0dXJu
IHN0YXRpY19jYXN0PEV3a19QYWdpbmF0aW9uX01vZGU+KGltcGwtPnBhZ2UoKS0+cGFnaW5hdGlv
bk1vZGUoKSk7CisgICAgLy8gRklYTUU6IG1vdmUgdG8gQyBXS1BhZ2UgQVBJIHdoZW4gaXQgYXBw
ZWFycy4KKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RXdrX1BhZ2luYXRpb25fTW9kZT4odG9JbXBs
KGltcGwtPndrUGFnZSgpKS0+cGFnaW5hdGlvbk1vZGUoKSk7CiB9CiAKIEVpbmFfQm9vbCBld2tf
dmlld19mdWxsc2NyZWVuX2V4aXQoRXZhc19PYmplY3QqIGV3a1ZpZXcpCiB7Ci0jaWYgRU5BQkxF
KEZVTExTQ1JFRU5fQVBJKQogICAgIEVXS19WSUVXX0lNUExfR0VUX09SX1JFVFVSTihld2tWaWV3
LCBpbXBsLCBmYWxzZSk7CiAKLSAgICBpbXBsLT5wYWdlKCktPmZ1bGxTY3JlZW5NYW5hZ2VyKCkt
PnJlcXVlc3RFeGl0RnVsbFNjcmVlbigpOworICAgIFdLVmlld1JlcXVlc3RFeGl0RnVsbFNjcmVl
bihpbXBsLT53a1ZpZXcoKSk7CiAKICAgICByZXR1cm4gdHJ1ZTsKLSNlbHNlCi0gICAgVU5VU0VE
X1BBUkFNKGV3a1ZpZXcpOwotICAgIHJldHVybiBmYWxzZTsKLSNlbmRpZgogfQogCiB2b2lkIGV3
a192aWV3X2RyYXdzX3BhZ2VfYmFja2dyb3VuZF9zZXQoRXZhc19PYmplY3QgKmV3a1ZpZXcsIEVp
bmFfQm9vbCBlbmFibGVkKQpAQCAtNDk5LDkgKzQ5MCw4IEBAIHN0YXRpYyB2b2lkIGV3a1ZpZXdQ
YWdlQ29udGVudHNDYWxsYmFjayhXS0RhdGFSZWYgd2tEYXRhLCBXS0Vycm9yUmVmLCB2b2lkKiBj
b250CiB7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk4oY29udGV4dCk7CiAKLSAgICBS
ZWZQdHI8V2ViRGF0YT4gd2ViRGF0YSA9IHRvSW1wbCh3a0RhdGEpOwogICAgIEV3a19QYWdlX0Nv
bnRlbnRzX0NvbnRleHQqIGNvbnRlbnRzQ29udGV4dD0gc3RhdGljX2Nhc3Q8RXdrX1BhZ2VfQ29u
dGVudHNfQ29udGV4dCo+KGNvbnRleHQpOwotICAgIGNvbnRlbnRzQ29udGV4dC0+Y2FsbGJhY2so
Y29udGVudHNDb250ZXh0LT50eXBlLCByZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPih3ZWJE
YXRhLT5ieXRlcygpKSk7CisgICAgY29udGVudHNDb250ZXh0LT5jYWxsYmFjayhjb250ZW50c0Nv
bnRleHQtPnR5cGUsIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KFdLRGF0YUdldEJ5dGVz
KHdrRGF0YSkpKTsKIAogICAgIGRlbGV0ZSBjb250ZW50c0NvbnRleHQ7CiB9CkBAIC01MTksNyAr
NTA5LDcgQEAgRWluYV9Cb29sIGV3a192aWV3X3BhZ2VfY29udGVudHNfZ2V0KGNvbnN0IEV2YXNf
T2JqZWN0KiBld2tWaWV3LCBFd2tfUGFnZV9Db250ZW4KICAgICBjb250ZXh0LT50eXBlID0gdHlw
ZTsKICAgICBjb250ZXh0LT5jYWxsYmFjayA9IGNhbGxiYWNrOwogCi0gICAgaW1wbC0+cGFnZSgp
LT5nZXRDb250ZW50c0FzTUhUTUxEYXRhKERhdGFDYWxsYmFjazo6Y3JlYXRlKGNvbnRleHQsIGV3
a1ZpZXdQYWdlQ29udGVudHNDYWxsYmFjayksIGZhbHNlKTsKKyAgICBXS1BhZ2VHZXRDb250ZW50
c0FzTUhUTUxEYXRhKGltcGwtPndrUGFnZSgpLCBmYWxzZSwgY29udGV4dCwgZXdrVmlld1BhZ2VD
b250ZW50c0NhbGxiYWNrKTsKIAogICAgIHJldHVybiB0cnVlOwogfQpAQCAtNTI4LDcgKzUxOCw3
IEBAIEVpbmFfQm9vbCBld2tfdmlld19zb3VyY2VfbW9kZV9zZXQoRXZhc19PYmplY3QqIGV3a1Zp
ZXcsIEVpbmFfQm9vbCBlbmFibGVkKQogewogICAgIEVXS19WSUVXX0lNUExfR0VUX09SX1JFVFVS
Tihld2tWaWV3LCBpbXBsLCBmYWxzZSk7CiAKLSAgICBpbXBsLT5wYWdlKCktPnNldE1haW5GcmFt
ZUluVmlld1NvdXJjZU1vZGUoZW5hYmxlZCk7CisgICAgV0tWaWV3U2V0TWFpbkZyYW1lSW5WaWV3
U291cmNlTW9kZShpbXBsLT53a1ZpZXcoKSwgZW5hYmxlZCk7CiAKICAgICByZXR1cm4gdHJ1ZTsK
IH0KQEAgLTUzNyw1ICs1MjcsNSBAQCBFaW5hX0Jvb2wgZXdrX3ZpZXdfc291cmNlX21vZGVfZ2V0
KGNvbnN0IEV2YXNfT2JqZWN0KiBld2tWaWV3KQogewogICAgIEVXS19WSUVXX0lNUExfR0VUX09S
X1JFVFVSTihld2tWaWV3LCBpbXBsLCBmYWxzZSk7CiAKLSAgICByZXR1cm4gaW1wbC0+cGFnZSgp
LT5tYWluRnJhbWVJblZpZXdTb3VyY2VNb2RlKCk7CisgICAgcmV0dXJuIFdLVmlld0dldE1haW5G
cmFtZUluVmlld1NvdXJjZU1vZGUoaW1wbC0+d2tWaWV3KCkpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9lZmwvV2ViVmlldy5jcHAKaW5kZXggODcxZGZjMy4uYThhZGUzMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJWaWV3LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYlZpZXcuY3BwCkBAIC05Nyw2ICs5NywyMyBAQCB2b2lk
IFdlYlZpZXc6OnJlc3VtZUFjdGl2ZURPTU9iamVjdHNBbmRBbmltYXRpb25zKCkKICAgICBtX3dl
YlBhZ2VQcm94eS0+cmVzdW1lQWN0aXZlRE9NT2JqZWN0c0FuZEFuaW1hdGlvbnMoKTsKIH0KIAor
dm9pZCBXZWJWaWV3OjpzZXRNYWluRnJhbWVJblZpZXdTb3VyY2VNb2RlKGJvb2wgbWFpbkZyYW1l
SW5WaWV3U291cmNlTW9kZSkKK3sKKyAgICBtX3dlYlBhZ2VQcm94eS0+c2V0TWFpbkZyYW1lSW5W
aWV3U291cmNlTW9kZShtYWluRnJhbWVJblZpZXdTb3VyY2VNb2RlKTsKK30KKworYm9vbCBXZWJW
aWV3OjptYWluRnJhbWVJblZpZXdTb3VyY2VNb2RlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV93
ZWJQYWdlUHJveHktPm1haW5GcmFtZUluVmlld1NvdXJjZU1vZGUoKTsKK30KKworI2lmIEVOQUJM
RShGVUxMU0NSRUVOX0FQSSkKK3ZvaWQgV2ViVmlldzo6cmVxdWVzdEV4aXRGdWxsU2NyZWVuKCkK
K3sKKyAgICBtX3dlYlBhZ2VQcm94eS0+ZnVsbFNjcmVlbk1hbmFnZXIoKS0+cmVxdWVzdEV4aXRG
dWxsU2NyZWVuKCk7Cit9CisjZW5kaWYKKwogdm9pZCBXZWJWaWV3Ojppbml0aWFsaXplQ2xpZW50
KGNvbnN0IFdLVmlld0NsaWVudCogY2xpZW50KQogewogICAgIG1fY2xpZW50LmluaXRpYWxpemUo
Y2xpZW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViVmll
dy5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJWaWV3LmgKaW5kZXggNGI1NmI4
NS4uMmIyZmY4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJW
aWV3LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJWaWV3LmgKQEAgLTU3
LDExICs1NywxOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzdXNwZW5kQWN0aXZlRE9NT2JqZWN0c0Fu
ZEFuaW1hdGlvbnMoKTsKICAgICB2b2lkIHJlc3VtZUFjdGl2ZURPTU9iamVjdHNBbmRBbmltYXRp
b25zKCk7CiAKKyAgICB2b2lkIHNldE1haW5GcmFtZUluVmlld1NvdXJjZU1vZGUoYm9vbCk7Cisg
ICAgYm9vbCBtYWluRnJhbWVJblZpZXdTb3VyY2VNb2RlKCkgY29uc3Q7CisKKyNpZiBFTkFCTEUo
RlVMTFNDUkVFTl9BUEkpCisgICAgdm9pZCByZXF1ZXN0RXhpdEZ1bGxTY3JlZW4oKTsKKyNlbmRp
ZgorCiAgICAgLy8gVmlldyBjbGllbnQuCiAgICAgdm9pZCBpbml0aWFsaXplQ2xpZW50KGNvbnN0
IFdLVmlld0NsaWVudCopOwogICAgIHZvaWQgc2V0Vmlld05lZWRzRGlzcGxheShjb25zdCBXZWJD
b3JlOjpJbnRSZWN0Jik7CiAgICAgdm9pZCBkaWRDaGFuZ2VDb250ZW50c1NpemUoY29uc3QgV2Vi
Q29yZTo6SW50U2l6ZSYpOwogCisKICAgICAvLyBGSVhNRTogUmVtb3ZlIHdoZW4gcG9zc2libGUu
CiAgICAgRXZhc19PYmplY3QqIGV2YXNPYmplY3QoKSB7IHJldHVybiBtX2V2YXNPYmplY3Q7IH0K
ICAgICBXZWJQYWdlUHJveHkqIHBhZ2UoKSB7IHJldHVybiBtX3dlYlBhZ2VQcm94eS5nZXQoKTsg
fQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188293</attachid>
            <date>2013-02-14 02:02:40 -0800</date>
            <delta_ts>2013-02-14 04:35:16 -0800</delta_ts>
            <desc>patch</desc>
            <filename>bug109794</filename>
            <type>text/plain</type>
            <size>11969</size>
            <attacher name="Mikhail Pozdnyakov">mikhail.pozdnyakov</attacher>
            
              <data encoding="base64">Y29tbWl0IGE2N2M0OTZiZDA3YWE0NjA2NDNiNzRhZjhkZDcyMzE2NzYzOGExYTUKQXV0aG9yOiBN
aWtoYWlsIFBvemRueWFrb3YgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CkRhdGU6ICAg
VGh1IEZlYiAxNCAxMTo1MTozNCAyMDEzICswMjAwCgogICAgYnVnMTA5Nzk0CgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmlu
ZGV4IGMwODY4NWUuLjU1NzI1MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NSBAQAorMjAxMy0w
Mi0xNCAgTWlraGFpbCBQb3pkbnlha292ICA8bWlraGFpbC5wb3pkbnlha292QGludGVsLmNvbT4K
KworICAgICAgICBbV0syXVtFRkxdIEVsaW1pbmF0ZSBhY2Nlc3MgdG8gV0syIEMrKyBpbnRlcm5h
bHMgZnJvbSBld2tfdmlldyBmdW5jdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEwOTc5NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL2VmbC9XS1ZpZXcuY3BwOgorICAg
ICAgICAoV0tWaWV3U2V0TWFpbkZyYW1lSW5WaWV3U291cmNlTW9kZSk6CisgICAgICAgIChXS1Zp
ZXdHZXRNYWluRnJhbWVJblZpZXdTb3VyY2VNb2RlKToKKworICAgICAgICAgICAgQWRkZWQgbmV3
IFdLVmlldyBBUEkgdG8gd3JhcCBXZWJQYWdlUHJveHk6OnNldE1haW5GcmFtZUluVmlld1NvdXJj
ZU1vZGUoKQorICAgICAgICAgICAgYW5kIFdlYlBhZ2VQcm94eTo6bWFpbkZyYW1lSW5WaWV3U291
cmNlTW9kZSgpIGNhbGxzLgorCisgICAgICAgIChXS1ZpZXdSZXF1ZXN0RXhpdEZ1bGxTY3JlZW4p
OgorCisgICAgICAgICAgICBBZGRlZCBuZXcgV0tWaWV3IEFQSSB0byB3cmFwIFdlYkZ1bGxTY3Jl
ZW5NYW5hZ2VyUHJveHk6OnJlcXVlc3RFeGl0RnVsbFNjcmVlbigpCisgICAgICAgICAgICBjYWxs
cworCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL2VmbC9XS1ZpZXcuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmNwcDoKKyAgICAgICAgKEV3a1ZpZXc6OmZlZWRUb3Vj
aEV2ZW50KTogCisKKyAgICAgICAgICAgIEFkZGVkIGZlZWRUb3VjaEV2ZW50KCkgbWV0aG9kIHNv
IHRoYXQ6IGF0IGZpc3J0IGV3a192aWV3X2ZlZWRfdG91Y2hfZXZlbnQoKQorICAgICAgICAgICAg
aXMgbm90IGludm9rZWQgZnJvbSBFd2tWaWV3IGNsYXNzLCBzZWNvbmRseSBld2tfdmlld19mZWVk
X3RvdWNoX2V2ZW50KCkgZG9lcworICAgICAgICAgICAgbm90IGFjY2VzcyBXZWJQYWdlIGluc3Rh
bmNlIGRpcmVjdGx5LgorCisgICAgICAgIChFd2tWaWV3OjpmZWVkVG91Y2hFdmVudHMpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuaDoKKyAgICAgICAgKEV3a1ZpZXcpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmNwcDoKKyAgICAgICAgKGV3a192
aWV3X2ZlZWRfdG91Y2hfZXZlbnQpOgorICAgICAgICAoZXdrX3ZpZXdfcGFnaW5hdGlvbl9tb2Rl
X3NldCk6CisgICAgICAgIChld2tfdmlld19wYWdpbmF0aW9uX21vZGVfZ2V0KToKKyAgICAgICAg
KGV3a192aWV3X2Z1bGxzY3JlZW5fZXhpdCk6CisgICAgICAgIChld2tWaWV3UGFnZUNvbnRlbnRz
Q2FsbGJhY2spOgorICAgICAgICAoZXdrX3ZpZXdfcGFnZV9jb250ZW50c19nZXQpOgorICAgICAg
ICAoZXdrX3ZpZXdfc291cmNlX21vZGVfc2V0KToKKyAgICAgICAgKGV3a192aWV3X3NvdXJjZV9t
b2RlX2dldCk6CisKKyAgICAgICAgICAgIFRob3NlIGFyZSBub3cgdXNpbmcgZXhwb3J0ZWQgQyBB
UEkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvZWZsL1dlYlZpZXcuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJWaWV3OjpzZXRNYWluRnJhbWVJblZpZXdTb3VyY2VNb2RlKToKKyAgICAgICAgKFdl
YktpdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXc6Om1haW5GcmFtZUluVmlld1NvdXJjZU1v
ZGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3OjpyZXF1ZXN0RXhpdEZ1bGxTY3JlZW4pOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9lZmwvV2ViVmlldy5oOgorICAgICAgICAoV2ViVmlldyk6CisK
KyAgICAgICAgICAgIEFkZGVkIFdlYlZpZXcgbWV0aG9kcyB0byBzdXBwb3J0IGFkZGVkIFdLVmll
dyBBUEkuCisKIDIwMTMtMDItMTMgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNv
bT4KIAogICAgICAgICBSZW1vdmUgU3RyaW5nUGFpclZlY3RvcgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL2VmbC9XS1ZpZXcuY3BwIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9DL2VmbC9XS1ZpZXcuY3BwCmluZGV4IDIxMGYyZTIuLjg3OTc2YTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9lZmwvV0tWaWV3LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvZWZsL1dLVmlldy5jcHAKQEAgLTk3
LDYgKzk3LDI2IEBAIHZvaWQgV0tWaWV3UmVzdW1lQWN0aXZlRE9NT2JqZWN0c0FuZEFuaW1hdGlv
bnMoV0tWaWV3UmVmIHZpZXdSZWYpCiAgICAgdG9JbXBsKHZpZXdSZWYpLT5yZXN1bWVBY3RpdmVE
T01PYmplY3RzQW5kQW5pbWF0aW9ucygpOwogfQogCit2b2lkIFdLVmlld1NldE1haW5GcmFtZUlu
Vmlld1NvdXJjZU1vZGUoV0tWaWV3UmVmIHZpZXdSZWYsIGJvb2wgZmxhZykKK3sKKyAgICB0b0lt
cGwodmlld1JlZiktPnNldE1haW5GcmFtZUluVmlld1NvdXJjZU1vZGUoZmxhZyk7Cit9CisKK2Jv
b2wgV0tWaWV3R2V0TWFpbkZyYW1lSW5WaWV3U291cmNlTW9kZShXS1ZpZXdSZWYgdmlld1JlZikK
K3sKKyAgICByZXR1cm4gdG9JbXBsKHZpZXdSZWYpLT5tYWluRnJhbWVJblZpZXdTb3VyY2VNb2Rl
KCk7Cit9CisKK3ZvaWQgV0tWaWV3UmVxdWVzdEV4aXRGdWxsU2NyZWVuKFdLVmlld1JlZiB2aWV3
UmVmKQoreworI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKKyAgICByZXR1cm4gdG9JbXBsKHZp
ZXdSZWYpLT5yZXF1ZXN0RXhpdEZ1bGxTY3JlZW4oKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFN
KHZpZXdSZWYpOworICAgIHJldHVybiAwOworI2VuZGlmCit9CisKIEV2YXNfT2JqZWN0KiBXS1Zp
ZXdHZXRFdmFzT2JqZWN0KFdLVmlld1JlZiB2aWV3UmVmKQogewogICAgIHJldHVybiB0b0ltcGwo
dmlld1JlZiktPmV2YXNPYmplY3QoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9lZmwvV0tWaWV3LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
ZWZsL1dLVmlldy5oCmluZGV4IDMyNTQ2YzYuLmRlY2U1ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9lZmwvV0tWaWV3LmgKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9DL2VmbC9XS1ZpZXcuaApAQCAtNzAsNiArNzAsMTEgQEAgV0tfRVhQT1JU
IGJvb2wgV0tWaWV3R2V0RHJhd3NUcmFuc3BhcmVudEJhY2tncm91bmQoV0tWaWV3UmVmKTsKIFdL
X0VYUE9SVCB2b2lkIFdLVmlld1N1c3BlbmRBY3RpdmVET01PYmplY3RzQW5kQW5pbWF0aW9ucyhX
S1ZpZXdSZWYpOwogV0tfRVhQT1JUIHZvaWQgV0tWaWV3UmVzdW1lQWN0aXZlRE9NT2JqZWN0c0Fu
ZEFuaW1hdGlvbnMoV0tWaWV3UmVmKTsKIAorV0tfRVhQT1JUIHZvaWQgV0tWaWV3U2V0TWFpbkZy
YW1lSW5WaWV3U291cmNlTW9kZShXS1ZpZXdSZWYsIGJvb2wpOworV0tfRVhQT1JUIGJvb2wgV0tW
aWV3R2V0TWFpbkZyYW1lSW5WaWV3U291cmNlTW9kZShXS1ZpZXdSZWYpOworCitXS19FWFBPUlQg
dm9pZCBXS1ZpZXdSZXF1ZXN0RXhpdEZ1bGxTY3JlZW4oV0tWaWV3UmVmKTsKKwogLy8gRklYTUU6
IFRoZSBsb25nIHRlcm0gcGxhbiBpcyB0byBnZXQgcmlkIG9mIHRoaXMsIHNvIGtlZXAgdXNhZ2Ug
dG8gYSBiYXJlIG1pbmltdW0uCiBXS19FWFBPUlQgRXZhc19PYmplY3QqIFdLVmlld0dldEV2YXNP
YmplY3QoV0tWaWV3UmVmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9lZmwvRXdrVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9F
d2tWaWV3LmNwcAppbmRleCBmZTk0YTFmLi5mZWEyZDY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmNwcApAQCAtNzQzLDYgKzc0MywxMSBAQCB2b2lkIEV3
a1ZpZXc6OnNldE1vdXNlRXZlbnRzRW5hYmxlZChib29sIGVuYWJsZWQpCiB9CiAKICNpZiBFTkFC
TEUoVE9VQ0hfRVZFTlRTKQordm9pZCBFd2tWaWV3OjpmZWVkVG91Y2hFdmVudChFd2tfVG91Y2hf
RXZlbnRfVHlwZSB0eXBlLCBjb25zdCBFaW5hX0xpc3QqIHBvaW50cywgY29uc3QgRXZhc19Nb2Rp
ZmllciogbW9kaWZpZXJzKQoreworICAgIHBhZ2UoKS0+aGFuZGxlVG91Y2hFdmVudChOYXRpdmVX
ZWJUb3VjaEV2ZW50KHR5cGUsIHBvaW50cywgbW9kaWZpZXJzLCB0cmFuc2Zvcm1Gcm9tU2NlbmUo
KSwgdHJhbnNmb3JtVG9TY3JlZW4oKSwgZWNvcmVfdGltZV9nZXQoKSkpOworfQorCiB2b2lkIEV3
a1ZpZXc6OnNldFRvdWNoRXZlbnRzRW5hYmxlZChib29sIGVuYWJsZWQpCiB7CiAgICAgaWYgKG1f
dG91Y2hFdmVudHNFbmFibGVkID09IGVuYWJsZWQpCkBAIC0xMzAzLDcgKzEzMDgsNyBAQCB2b2lk
IEV3a1ZpZXc6OmZlZWRUb3VjaEV2ZW50cyhFd2tfVG91Y2hfRXZlbnRfVHlwZSB0eXBlKQogICAg
ICAgICBwb2ludHMgPSBlaW5hX2xpc3RfYXBwZW5kKHBvaW50cywgcG9pbnQpOwogICAgIH0KIAot
ICAgIGV3a192aWV3X2ZlZWRfdG91Y2hfZXZlbnQobV9ldmFzT2JqZWN0LCB0eXBlLCBwb2ludHMs
IGV2YXNfa2V5X21vZGlmaWVyX2dldChzZC0+YmFzZS5ldmFzKSk7CisgICAgZmVlZFRvdWNoRXZl
bnQodHlwZSwgcG9pbnRzLCBldmFzX2tleV9tb2RpZmllcl9nZXQoc2QtPmJhc2UuZXZhcykpOwog
CiAgICAgdm9pZCogZGF0YTsKICAgICBFSU5BX0xJU1RfRlJFRShwb2ludHMsIGRhdGEpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmgKaW5kZXggNmZjYzVjYy4uMzcy
ZjMxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmll
dy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuaApAQCAt
MTU5LDYgKzE1OSw3IEBAIHB1YmxpYzoKICAgICBib29sIG1vdXNlRXZlbnRzRW5hYmxlZCgpIGNv
bnN0IHsgcmV0dXJuIG1fbW91c2VFdmVudHNFbmFibGVkOyB9CiAgICAgdm9pZCBzZXRNb3VzZUV2
ZW50c0VuYWJsZWQoYm9vbCBlbmFibGVkKTsKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQorICAg
IHZvaWQgZmVlZFRvdWNoRXZlbnQoRXdrX1RvdWNoX0V2ZW50X1R5cGUgdHlwZSwgY29uc3QgRWlu
YV9MaXN0KiBwb2ludHMsIGNvbnN0IEV2YXNfTW9kaWZpZXIqIG1vZGlmaWVycyk7CiAgICAgYm9v
bCB0b3VjaEV2ZW50c0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX3RvdWNoRXZlbnRzRW5hYmxl
ZDsgfQogICAgIHZvaWQgc2V0VG91Y2hFdmVudHNFbmFibGVkKGJvb2wgZW5hYmxlZCk7CiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmNwcAppbmRl
eCA4NjNiZTQ4Li5lYzQzMWQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2VmbC9ld2tfdmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9l
ZmwvZXdrX3ZpZXcuY3BwCkBAIC0zMSwxOSArMzEsNiBAQAogI2luY2x1ZGUgIlBhZ2VVSUNsaWVu
dEVmbC5oIgogI2luY2x1ZGUgIlBhZ2VWaWV3cG9ydENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJQ
YWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50RWZsLmgiCi0jaW5jbHVkZSAiV0tBUElDYXN0Lmgi
Ci0jaW5jbHVkZSAiV0tFaW5hU2hhcmVkU3RyaW5nLmgiCi0jaW5jbHVkZSAiV0tGaW5kT3B0aW9u
cy5oIgotI2luY2x1ZGUgIldLSW5zcGVjdG9yLmgiCi0jaW5jbHVkZSAiV0tSZXRhaW5QdHIuaCIK
LSNpbmNsdWRlICJXS1N0cmluZy5oIgotI2luY2x1ZGUgIldLVVJMLmgiCi0jaW5jbHVkZSAiV0tW
aWV3LmgiCi0jaW5jbHVkZSAiV2ViQ29udGV4dC5oIgotI2luY2x1ZGUgIldlYkRhdGEuaCIKLSNp
bmNsdWRlICJXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5LmgiCi0jaW5jbHVkZSAiV2ViUGFnZUdy
b3VwLmgiCi0jaW5jbHVkZSAiV2ViUHJlZmVyZW5jZXMuaCIKICNpbmNsdWRlICJld2tfYmFja19m
b3J3YXJkX2xpc3RfcHJpdmF0ZS5oIgogI2luY2x1ZGUgImV3a19jb250ZXh0LmgiCiAjaW5jbHVk
ZSAiZXdrX2NvbnRleHRfcHJpdmF0ZS5oIgpAQCAtNTEsNyArMzgsMTYgQEAKICNpbmNsdWRlICJl
d2tfcHJpdmF0ZS5oIgogI2luY2x1ZGUgImV3a19zZXR0aW5nc19wcml2YXRlLmgiCiAjaW5jbHVk
ZSA8RWNvcmVfRXZhcy5oPgorI2luY2x1ZGUgPFdlYktpdDIvV0tBUElDYXN0Lmg+CisjaW5jbHVk
ZSA8V2ViS2l0Mi9XS0RhdGEuaD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLRWluYVNoYXJlZFN0cmlu
Zy5oPgorI2luY2x1ZGUgPFdlYktpdDIvV0tGaW5kT3B0aW9ucy5oPgorI2luY2x1ZGUgPFdlYktp
dDIvV0tJbnNwZWN0b3IuaD4KICNpbmNsdWRlIDxXZWJLaXQyL1dLUGFnZUdyb3VwLmg+CisjaW5j
bHVkZSA8V2ViS2l0Mi9XS1JldGFpblB0ci5oPgorI2luY2x1ZGUgPFdlYktpdDIvV0tTdHJpbmcu
aD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLVVJMLmg+CisjaW5jbHVkZSA8V2ViS2l0Mi9XS1ZpZXcu
aD4KICNpbmNsdWRlIDx3dGYvVW51c2VkUGFyYW0uaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3Ry
aW5nLmg+CiAKQEAgLTM2NSw3ICszNjEsNyBAQCBFaW5hX0Jvb2wgZXdrX3ZpZXdfZmVlZF90b3Vj
aF9ldmVudChFdmFzX09iamVjdCogZXdrVmlldywgRXdrX1RvdWNoX0V2ZW50X1R5cGUgdAogICAg
IEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChwb2ludHMsIGZhbHNlKTsKICAgICBFV0tf
VklFV19JTVBMX0dFVF9PUl9SRVRVUk4oZXdrVmlldywgaW1wbCwgZmFsc2UpOwogCi0gICAgaW1w
bC0+cGFnZSgpLT5oYW5kbGVUb3VjaEV2ZW50KE5hdGl2ZVdlYlRvdWNoRXZlbnQodHlwZSwgcG9p
bnRzLCBtb2RpZmllcnMsIGltcGwtPnRyYW5zZm9ybUZyb21TY2VuZSgpLCBpbXBsLT50cmFuc2Zv
cm1Ub1NjcmVlbigpLCBlY29yZV90aW1lX2dldCgpKSk7CisgICAgaW1wbC0+ZmVlZFRvdWNoRXZl
bnQodHlwZSwgcG9pbnRzLCBtb2RpZmllcnMpOwogCiAgICAgcmV0dXJuIHRydWU7CiAjZWxzZQpA
QCAtNDQ2LDggKzQ0Miw4IEBAIENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oRVdLX1BBR0lO
QVRJT05fTU9ERV9CT1RUT01fVE9fVE9QLCBXZWJDb3JlOjpQYWdpbmF0CiBFaW5hX0Jvb2wgZXdr
X3ZpZXdfcGFnaW5hdGlvbl9tb2RlX3NldChFdmFzX09iamVjdCogZXdrVmlldywgRXdrX1BhZ2lu
YXRpb25fTW9kZSBtb2RlKQogewogICAgIEVXS19WSUVXX0lNUExfR0VUX09SX1JFVFVSTihld2tW
aWV3LCBpbXBsLCBmYWxzZSk7Ci0gICAgCi0gICAgaW1wbC0+cGFnZSgpLT5zZXRQYWdpbmF0aW9u
TW9kZShzdGF0aWNfY2FzdDxXZWJDb3JlOjpQYWdpbmF0aW9uOjpNb2RlPihtb2RlKSk7CisgICAg
Ly8gRklYTUU6IG1vdmUgdG8gQyBXS1BhZ2UgQVBJIHdoZW4gaXQgYXBwZWFycy4KKyAgICB0b0lt
cGwoaW1wbC0+d2tQYWdlKCkpLT5zZXRQYWdpbmF0aW9uTW9kZShzdGF0aWNfY2FzdDxXZWJDb3Jl
OjpQYWdpbmF0aW9uOjpNb2RlPihtb2RlKSk7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTQ1
NSwyMiArNDUxLDE3IEBAIEVpbmFfQm9vbCBld2tfdmlld19wYWdpbmF0aW9uX21vZGVfc2V0KEV2
YXNfT2JqZWN0KiBld2tWaWV3LCBFd2tfUGFnaW5hdGlvbl9Nb2RlCiBFd2tfUGFnaW5hdGlvbl9N
b2RlIGV3a192aWV3X3BhZ2luYXRpb25fbW9kZV9nZXQoY29uc3QgRXZhc19PYmplY3QqIGV3a1Zp
ZXcpCiB7CiAgICAgRVdLX1ZJRVdfSU1QTF9HRVRfT1JfUkVUVVJOKGV3a1ZpZXcsIGltcGwsIEVX
S19QQUdJTkFUSU9OX01PREVfSU5WQUxJRCk7Ci0KLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RXdr
X1BhZ2luYXRpb25fTW9kZT4oaW1wbC0+cGFnZSgpLT5wYWdpbmF0aW9uTW9kZSgpKTsKKyAgICAv
LyBGSVhNRTogbW92ZSB0byBDIFdLUGFnZSBBUEkgd2hlbiBpdCBhcHBlYXJzLgorICAgIHJldHVy
biBzdGF0aWNfY2FzdDxFd2tfUGFnaW5hdGlvbl9Nb2RlPih0b0ltcGwoaW1wbC0+d2tQYWdlKCkp
LT5wYWdpbmF0aW9uTW9kZSgpKTsKIH0KIAogRWluYV9Cb29sIGV3a192aWV3X2Z1bGxzY3JlZW5f
ZXhpdChFdmFzX09iamVjdCogZXdrVmlldykKIHsKLSNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkp
CiAgICAgRVdLX1ZJRVdfSU1QTF9HRVRfT1JfUkVUVVJOKGV3a1ZpZXcsIGltcGwsIGZhbHNlKTsK
IAotICAgIGltcGwtPnBhZ2UoKS0+ZnVsbFNjcmVlbk1hbmFnZXIoKS0+cmVxdWVzdEV4aXRGdWxs
U2NyZWVuKCk7CisgICAgV0tWaWV3UmVxdWVzdEV4aXRGdWxsU2NyZWVuKGltcGwtPndrVmlldygp
KTsKIAogICAgIHJldHVybiB0cnVlOwotI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0oZXdrVmlldyk7
Ci0gICAgcmV0dXJuIGZhbHNlOwotI2VuZGlmCiB9CiAKIHZvaWQgZXdrX3ZpZXdfZHJhd3NfcGFn
ZV9iYWNrZ3JvdW5kX3NldChFdmFzX09iamVjdCAqZXdrVmlldywgRWluYV9Cb29sIGVuYWJsZWQp
CkBAIC00OTksOSArNDkwLDggQEAgc3RhdGljIHZvaWQgZXdrVmlld1BhZ2VDb250ZW50c0NhbGxi
YWNrKFdLRGF0YVJlZiB3a0RhdGEsIFdLRXJyb3JSZWYsIHZvaWQqIGNvbnQKIHsKICAgICBFSU5B
X1NBRkVUWV9PTl9OVUxMX1JFVFVSTihjb250ZXh0KTsKIAotICAgIFJlZlB0cjxXZWJEYXRhPiB3
ZWJEYXRhID0gdG9JbXBsKHdrRGF0YSk7CiAgICAgRXdrX1BhZ2VfQ29udGVudHNfQ29udGV4dCog
Y29udGVudHNDb250ZXh0PSBzdGF0aWNfY2FzdDxFd2tfUGFnZV9Db250ZW50c19Db250ZXh0Kj4o
Y29udGV4dCk7Ci0gICAgY29udGVudHNDb250ZXh0LT5jYWxsYmFjayhjb250ZW50c0NvbnRleHQt
PnR5cGUsIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KHdlYkRhdGEtPmJ5dGVzKCkpKTsK
KyAgICBjb250ZW50c0NvbnRleHQtPmNhbGxiYWNrKGNvbnRlbnRzQ29udGV4dC0+dHlwZSwgcmVp
bnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oV0tEYXRhR2V0Qnl0ZXMod2tEYXRhKSkpOwogCiAg
ICAgZGVsZXRlIGNvbnRlbnRzQ29udGV4dDsKIH0KQEAgLTUxOSw3ICs1MDksNyBAQCBFaW5hX0Jv
b2wgZXdrX3ZpZXdfcGFnZV9jb250ZW50c19nZXQoY29uc3QgRXZhc19PYmplY3QqIGV3a1ZpZXcs
IEV3a19QYWdlX0NvbnRlbgogICAgIGNvbnRleHQtPnR5cGUgPSB0eXBlOwogICAgIGNvbnRleHQt
PmNhbGxiYWNrID0gY2FsbGJhY2s7CiAKLSAgICBpbXBsLT5wYWdlKCktPmdldENvbnRlbnRzQXNN
SFRNTERhdGEoRGF0YUNhbGxiYWNrOjpjcmVhdGUoY29udGV4dCwgZXdrVmlld1BhZ2VDb250ZW50
c0NhbGxiYWNrKSwgZmFsc2UpOworICAgIFdLUGFnZUdldENvbnRlbnRzQXNNSFRNTERhdGEoaW1w
bC0+d2tQYWdlKCksIGZhbHNlLCBjb250ZXh0LCBld2tWaWV3UGFnZUNvbnRlbnRzQ2FsbGJhY2sp
OwogCiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC01MjgsNyArNTE4LDcgQEAgRWluYV9Cb29sIGV3
a192aWV3X3NvdXJjZV9tb2RlX3NldChFdmFzX09iamVjdCogZXdrVmlldywgRWluYV9Cb29sIGVu
YWJsZWQpCiB7CiAgICAgRVdLX1ZJRVdfSU1QTF9HRVRfT1JfUkVUVVJOKGV3a1ZpZXcsIGltcGws
IGZhbHNlKTsKIAotICAgIGltcGwtPnBhZ2UoKS0+c2V0TWFpbkZyYW1lSW5WaWV3U291cmNlTW9k
ZShlbmFibGVkKTsKKyAgICBXS1ZpZXdTZXRNYWluRnJhbWVJblZpZXdTb3VyY2VNb2RlKGltcGwt
PndrVmlldygpLCBlbmFibGVkKTsKIAogICAgIHJldHVybiB0cnVlOwogfQpAQCAtNTM3LDUgKzUy
Nyw1IEBAIEVpbmFfQm9vbCBld2tfdmlld19zb3VyY2VfbW9kZV9nZXQoY29uc3QgRXZhc19PYmpl
Y3QqIGV3a1ZpZXcpCiB7CiAgICAgRVdLX1ZJRVdfSU1QTF9HRVRfT1JfUkVUVVJOKGV3a1ZpZXcs
IGltcGwsIGZhbHNlKTsKIAotICAgIHJldHVybiBpbXBsLT5wYWdlKCktPm1haW5GcmFtZUluVmll
d1NvdXJjZU1vZGUoKTsKKyAgICByZXR1cm4gV0tWaWV3R2V0TWFpbkZyYW1lSW5WaWV3U291cmNl
TW9kZShpbXBsLT53a1ZpZXcoKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvZWZsL1dlYlZpZXcuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJW
aWV3LmNwcAppbmRleCA4NzFkZmMzLi5hOGFkZTMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvZWZsL1dlYlZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9lZmwvV2ViVmlldy5jcHAKQEAgLTk3LDYgKzk3LDIzIEBAIHZvaWQgV2ViVmlldzo6cmVzdW1l
QWN0aXZlRE9NT2JqZWN0c0FuZEFuaW1hdGlvbnMoKQogICAgIG1fd2ViUGFnZVByb3h5LT5yZXN1
bWVBY3RpdmVET01PYmplY3RzQW5kQW5pbWF0aW9ucygpOwogfQogCit2b2lkIFdlYlZpZXc6OnNl
dE1haW5GcmFtZUluVmlld1NvdXJjZU1vZGUoYm9vbCBtYWluRnJhbWVJblZpZXdTb3VyY2VNb2Rl
KQoreworICAgIG1fd2ViUGFnZVByb3h5LT5zZXRNYWluRnJhbWVJblZpZXdTb3VyY2VNb2RlKG1h
aW5GcmFtZUluVmlld1NvdXJjZU1vZGUpOworfQorCitib29sIFdlYlZpZXc6Om1haW5GcmFtZUlu
Vmlld1NvdXJjZU1vZGUoKSBjb25zdAoreworICAgIHJldHVybiBtX3dlYlBhZ2VQcm94eS0+bWFp
bkZyYW1lSW5WaWV3U291cmNlTW9kZSgpOworfQorCisjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJ
KQordm9pZCBXZWJWaWV3OjpyZXF1ZXN0RXhpdEZ1bGxTY3JlZW4oKQoreworICAgIG1fd2ViUGFn
ZVByb3h5LT5mdWxsU2NyZWVuTWFuYWdlcigpLT5yZXF1ZXN0RXhpdEZ1bGxTY3JlZW4oKTsKK30K
KyNlbmRpZgorCiB2b2lkIFdlYlZpZXc6OmluaXRpYWxpemVDbGllbnQoY29uc3QgV0tWaWV3Q2xp
ZW50KiBjbGllbnQpCiB7CiAgICAgbV9jbGllbnQuaW5pdGlhbGl6ZShjbGllbnQpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJWaWV3LmggYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvZWZsL1dlYlZpZXcuaAppbmRleCA0YjU2Yjg1Li45OWE2MzlkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYlZpZXcuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYlZpZXcuaApAQCAtNTcsNiArNTcsMTMgQEAgcHVi
bGljOgogICAgIHZvaWQgc3VzcGVuZEFjdGl2ZURPTU9iamVjdHNBbmRBbmltYXRpb25zKCk7CiAg
ICAgdm9pZCByZXN1bWVBY3RpdmVET01PYmplY3RzQW5kQW5pbWF0aW9ucygpOwogCisgICAgdm9p
ZCBzZXRNYWluRnJhbWVJblZpZXdTb3VyY2VNb2RlKGJvb2wpOworICAgIGJvb2wgbWFpbkZyYW1l
SW5WaWV3U291cmNlTW9kZSgpIGNvbnN0OworCisjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQor
ICAgIHZvaWQgcmVxdWVzdEV4aXRGdWxsU2NyZWVuKCk7CisjZW5kaWYKKwogICAgIC8vIFZpZXcg
Y2xpZW50LgogICAgIHZvaWQgaW5pdGlhbGl6ZUNsaWVudChjb25zdCBXS1ZpZXdDbGllbnQqKTsK
ICAgICB2b2lkIHNldFZpZXdOZWVkc0Rpc3BsYXkoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188319</attachid>
            <date>2013-02-14 04:35:16 -0800</date>
            <delta_ts>2013-02-18 05:02:15 -0800</delta_ts>
            <desc>patch v2</desc>
            <filename>bug109794_v2</filename>
            <type>text/plain</type>
            <size>11679</size>
            <attacher name="Mikhail Pozdnyakov">mikhail.pozdnyakov</attacher>
            
              <data encoding="base64">Y29tbWl0IGJhODcwOGY1MDFmNTU1MjY2YzlmZWYwZTk5MDIyZjE4ODFmY2IyZmUKQXV0aG9yOiBN
aWtoYWlsIFBvemRueWFrb3YgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CkRhdGU6ICAg
VGh1IEZlYiAxNCAxMTo1MTozNCAyMDEzICswMjAwCgogICAgYnVnMTA5Nzk0CgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmlu
ZGV4IGMwODY4NWUuLmJlNDc5MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NSBAQAorMjAxMy0w
Mi0xNCAgTWlraGFpbCBQb3pkbnlha292ICA8bWlraGFpbC5wb3pkbnlha292QGludGVsLmNvbT4K
KworICAgICAgICBbV0syXVtFRkxdIEVsaW1pbmF0ZSBhY2Nlc3MgdG8gV0syIEMrKyBpbnRlcm5h
bHMgZnJvbSBld2tfdmlldyBmdW5jdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEwOTc5NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL2VmbC9XS1ZpZXcuY3BwOgorICAg
ICAgICAoV0tWaWV3U2V0U2hvd3NBc1NvdXJjZSk6CisgICAgICAgIChXS1ZpZXdHZXRTaG93c0Fz
U291cmNlKToKKworICAgICAgICAgICAgQWRkZWQgbmV3IFdLVmlldyBBUEkgdG8gd3JhcCBXZWJQ
YWdlUHJveHk6OnNldE1haW5GcmFtZUluVmlld1NvdXJjZU1vZGUoKQorICAgICAgICAgICAgYW5k
IFdlYlBhZ2VQcm94eTo6bWFpbkZyYW1lSW5WaWV3U291cmNlTW9kZSgpIGNhbGxzLgorCisgICAg
ICAgIChXS1ZpZXdSZXF1ZXN0RXhpdEZ1bGxTY3JlZW4pOgorCisgICAgICAgICAgICBBZGRlZCBu
ZXcgV0tWaWV3IEFQSSB0byB3cmFwIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk6OnJlcXVlc3RF
eGl0RnVsbFNjcmVlbigpCisgICAgICAgICAgICBjYWxscy4KKworICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvQy9lZmwvV0tWaWV3Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmll
dy5jcHA6CisgICAgICAgIChFd2tWaWV3OjpmZWVkVG91Y2hFdmVudCk6CisKKyAgICAgICAgICAg
IEFkZGVkIGZlZWRUb3VjaEV2ZW50KCkgbWV0aG9kIHNvIHRoYXQ6IGF0IGZpcnN0IGV3a192aWV3
X2ZlZWRfdG91Y2hfZXZlbnQoKQorICAgICAgICAgICAgaXMgbm90IGludm9rZWQgZnJvbSBFd2tW
aWV3IGNsYXNzLCBzZWNvbmRseSBld2tfdmlld19mZWVkX3RvdWNoX2V2ZW50KCkgZG9lcworICAg
ICAgICAgICAgbm90IGFjY2VzcyBXZWJQYWdlIGluc3RhbmNlIGRpcmVjdGx5LgorCisgICAgICAg
IChFd2tWaWV3OjpmZWVkVG91Y2hFdmVudHMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZs
L0V3a1ZpZXcuaDoKKyAgICAgICAgKEV3a1ZpZXcpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
ZWZsL2V3a192aWV3LmNwcDoKKyAgICAgICAgKGV3a192aWV3X2ZlZWRfdG91Y2hfZXZlbnQpOgor
ICAgICAgICAoZXdrX3ZpZXdfcGFnaW5hdGlvbl9tb2RlX3NldCk6CisgICAgICAgIChld2tfdmll
d19wYWdpbmF0aW9uX21vZGVfZ2V0KToKKyAgICAgICAgKGV3a192aWV3X2Z1bGxzY3JlZW5fZXhp
dCk6CisgICAgICAgIChld2tWaWV3UGFnZUNvbnRlbnRzQ2FsbGJhY2spOgorICAgICAgICAoZXdr
X3ZpZXdfcGFnZV9jb250ZW50c19nZXQpOgorICAgICAgICAoZXdrX3ZpZXdfc291cmNlX21vZGVf
c2V0KToKKyAgICAgICAgKGV3a192aWV3X3NvdXJjZV9tb2RlX2dldCk6CisKKyAgICAgICAgICAg
IFRob3NlIGFyZSBub3cgdXNpbmcgZXhwb3J0ZWQgQyBBUEkuCisKKyAgICAgICAgKiBVSVByb2Nl
c3MvZWZsL1dlYlZpZXcuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3OjpzZXRTaG93c0Fz
U291cmNlKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXc6OnNo
b3dzQXNTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3OjpyZXF1ZXN0RXhpdEZ1bGxT
Y3JlZW4pOgorICAgICAgICAqIFVJUHJvY2Vzcy9lZmwvV2ViVmlldy5oOgorICAgICAgICAoV2Vi
Vmlldyk6CisKKyAgICAgICAgICAgIEFkZGVkIFdlYlZpZXcgbWV0aG9kcyB0byBzdXBwb3J0IGFk
ZGVkIFdLVmlldyBBUEkuCisKIDIwMTMtMDItMTMgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2Nh
QGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgU3RyaW5nUGFpclZlY3RvcgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL2VmbC9XS1ZpZXcuY3BwIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL2VmbC9XS1ZpZXcuY3BwCmluZGV4IDIxMGYyZTIuLmEz
YjQ0MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9lZmwvV0tW
aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvZWZsL1dLVmlldy5j
cHAKQEAgLTk3LDYgKzk3LDI1IEBAIHZvaWQgV0tWaWV3UmVzdW1lQWN0aXZlRE9NT2JqZWN0c0Fu
ZEFuaW1hdGlvbnMoV0tWaWV3UmVmIHZpZXdSZWYpCiAgICAgdG9JbXBsKHZpZXdSZWYpLT5yZXN1
bWVBY3RpdmVET01PYmplY3RzQW5kQW5pbWF0aW9ucygpOwogfQogCit2b2lkIFdLVmlld1NldFNo
b3dzQXNTb3VyY2UoV0tWaWV3UmVmIHZpZXdSZWYsIGJvb2wgZmxhZykKK3sKKyAgICB0b0ltcGwo
dmlld1JlZiktPnNldFNob3dzQXNTb3VyY2UoZmxhZyk7Cit9CisKK2Jvb2wgV0tWaWV3R2V0U2hv
d3NBc1NvdXJjZShXS1ZpZXdSZWYgdmlld1JlZikKK3sKKyAgICByZXR1cm4gdG9JbXBsKHZpZXdS
ZWYpLT5zaG93c0FzU291cmNlKCk7Cit9CisKK3ZvaWQgV0tWaWV3UmVxdWVzdEV4aXRGdWxsU2Ny
ZWVuKFdLVmlld1JlZiB2aWV3UmVmKQoreworI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKKyAg
ICB0b0ltcGwodmlld1JlZiktPnJlcXVlc3RFeGl0RnVsbFNjcmVlbigpOworI2Vsc2UKKyAgICBV
TlVTRURfUEFSQU0odmlld1JlZik7CisjZW5kaWYKK30KKwogRXZhc19PYmplY3QqIFdLVmlld0dl
dEV2YXNPYmplY3QoV0tWaWV3UmVmIHZpZXdSZWYpCiB7CiAgICAgcmV0dXJuIHRvSW1wbCh2aWV3
UmVmKS0+ZXZhc09iamVjdCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL2VmbC9XS1ZpZXcuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9lZmwv
V0tWaWV3LmgKaW5kZXggMzI1NDZjNi4uOTlmOTNkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9DL2VmbC9XS1ZpZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0MvZWZsL1dLVmlldy5oCkBAIC03MCw2ICs3MCwxMSBAQCBXS19FWFBPUlQgYm9v
bCBXS1ZpZXdHZXREcmF3c1RyYW5zcGFyZW50QmFja2dyb3VuZChXS1ZpZXdSZWYpOwogV0tfRVhQ
T1JUIHZvaWQgV0tWaWV3U3VzcGVuZEFjdGl2ZURPTU9iamVjdHNBbmRBbmltYXRpb25zKFdLVmll
d1JlZik7CiBXS19FWFBPUlQgdm9pZCBXS1ZpZXdSZXN1bWVBY3RpdmVET01PYmplY3RzQW5kQW5p
bWF0aW9ucyhXS1ZpZXdSZWYpOwogCitXS19FWFBPUlQgdm9pZCBXS1ZpZXdTZXRTaG93c0FzU291
cmNlKFdLVmlld1JlZiwgYm9vbCk7CitXS19FWFBPUlQgYm9vbCBXS1ZpZXdHZXRTaG93c0FzU291
cmNlKFdLVmlld1JlZik7CisKK1dLX0VYUE9SVCB2b2lkIFdLVmlld1JlcXVlc3RFeGl0RnVsbFNj
cmVlbihXS1ZpZXdSZWYpOworCiAvLyBGSVhNRTogVGhlIGxvbmcgdGVybSBwbGFuIGlzIHRvIGdl
dCByaWQgb2YgdGhpcywgc28ga2VlcCB1c2FnZSB0byBhIGJhcmUgbWluaW11bS4KIFdLX0VYUE9S
VCBFdmFzX09iamVjdCogV0tWaWV3R2V0RXZhc09iamVjdChXS1ZpZXdSZWYpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuY3BwCmluZGV4IGZlOTRhMWYuLmZl
YTJkNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1Zp
ZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuY3Bw
CkBAIC03NDMsNiArNzQzLDExIEBAIHZvaWQgRXdrVmlldzo6c2V0TW91c2VFdmVudHNFbmFibGVk
KGJvb2wgZW5hYmxlZCkKIH0KIAogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCit2b2lkIEV3a1Zp
ZXc6OmZlZWRUb3VjaEV2ZW50KEV3a19Ub3VjaF9FdmVudF9UeXBlIHR5cGUsIGNvbnN0IEVpbmFf
TGlzdCogcG9pbnRzLCBjb25zdCBFdmFzX01vZGlmaWVyKiBtb2RpZmllcnMpCit7CisgICAgcGFn
ZSgpLT5oYW5kbGVUb3VjaEV2ZW50KE5hdGl2ZVdlYlRvdWNoRXZlbnQodHlwZSwgcG9pbnRzLCBt
b2RpZmllcnMsIHRyYW5zZm9ybUZyb21TY2VuZSgpLCB0cmFuc2Zvcm1Ub1NjcmVlbigpLCBlY29y
ZV90aW1lX2dldCgpKSk7Cit9CisKIHZvaWQgRXdrVmlldzo6c2V0VG91Y2hFdmVudHNFbmFibGVk
KGJvb2wgZW5hYmxlZCkKIHsKICAgICBpZiAobV90b3VjaEV2ZW50c0VuYWJsZWQgPT0gZW5hYmxl
ZCkKQEAgLTEzMDMsNyArMTMwOCw3IEBAIHZvaWQgRXdrVmlldzo6ZmVlZFRvdWNoRXZlbnRzKEV3
a19Ub3VjaF9FdmVudF9UeXBlIHR5cGUpCiAgICAgICAgIHBvaW50cyA9IGVpbmFfbGlzdF9hcHBl
bmQocG9pbnRzLCBwb2ludCk7CiAgICAgfQogCi0gICAgZXdrX3ZpZXdfZmVlZF90b3VjaF9ldmVu
dChtX2V2YXNPYmplY3QsIHR5cGUsIHBvaW50cywgZXZhc19rZXlfbW9kaWZpZXJfZ2V0KHNkLT5i
YXNlLmV2YXMpKTsKKyAgICBmZWVkVG91Y2hFdmVudCh0eXBlLCBwb2ludHMsIGV2YXNfa2V5X21v
ZGlmaWVyX2dldChzZC0+YmFzZS5ldmFzKSk7CiAKICAgICB2b2lkKiBkYXRhOwogICAgIEVJTkFf
TElTVF9GUkVFKHBvaW50cywgZGF0YSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZWZsL0V3a1ZpZXcuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZs
L0V3a1ZpZXcuaAppbmRleCA2ZmNjNWNjLi4zNzJmMzEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9lZmwvRXdrVmlldy5oCkBAIC0xNTksNiArMTU5LDcgQEAgcHVibGljOgogICAg
IGJvb2wgbW91c2VFdmVudHNFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9tb3VzZUV2ZW50c0Vu
YWJsZWQ7IH0KICAgICB2b2lkIHNldE1vdXNlRXZlbnRzRW5hYmxlZChib29sIGVuYWJsZWQpOwog
I2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCisgICAgdm9pZCBmZWVkVG91Y2hFdmVudChFd2tfVG91
Y2hfRXZlbnRfVHlwZSB0eXBlLCBjb25zdCBFaW5hX0xpc3QqIHBvaW50cywgY29uc3QgRXZhc19N
b2RpZmllciogbW9kaWZpZXJzKTsKICAgICBib29sIHRvdWNoRXZlbnRzRW5hYmxlZCgpIGNvbnN0
IHsgcmV0dXJuIG1fdG91Y2hFdmVudHNFbmFibGVkOyB9CiAgICAgdm9pZCBzZXRUb3VjaEV2ZW50
c0VuYWJsZWQoYm9vbCBlbmFibGVkKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9lZmwvZXdrX3ZpZXcuY3BwCmluZGV4IDg2M2JlNDguLjA1MmI0Y2IgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5jcHAKQEAgLTMxLDE5ICsz
MSw2IEBACiAjaW5jbHVkZSAiUGFnZVVJQ2xpZW50RWZsLmgiCiAjaW5jbHVkZSAiUGFnZVZpZXdw
b3J0Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIlBhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRF
ZmwuaCIKLSNpbmNsdWRlICJXS0FQSUNhc3QuaCIKLSNpbmNsdWRlICJXS0VpbmFTaGFyZWRTdHJp
bmcuaCIKLSNpbmNsdWRlICJXS0ZpbmRPcHRpb25zLmgiCi0jaW5jbHVkZSAiV0tJbnNwZWN0b3Iu
aCIKLSNpbmNsdWRlICJXS1JldGFpblB0ci5oIgotI2luY2x1ZGUgIldLU3RyaW5nLmgiCi0jaW5j
bHVkZSAiV0tVUkwuaCIKLSNpbmNsdWRlICJXS1ZpZXcuaCIKLSNpbmNsdWRlICJXZWJDb250ZXh0
LmgiCi0jaW5jbHVkZSAiV2ViRGF0YS5oIgotI2luY2x1ZGUgIldlYkZ1bGxTY3JlZW5NYW5hZ2Vy
UHJveHkuaCIKLSNpbmNsdWRlICJXZWJQYWdlR3JvdXAuaCIKLSNpbmNsdWRlICJXZWJQcmVmZXJl
bmNlcy5oIgogI2luY2x1ZGUgImV3a19iYWNrX2ZvcndhcmRfbGlzdF9wcml2YXRlLmgiCiAjaW5j
bHVkZSAiZXdrX2NvbnRleHQuaCIKICNpbmNsdWRlICJld2tfY29udGV4dF9wcml2YXRlLmgiCkBA
IC01MSw3ICszOCwxNiBAQAogI2luY2x1ZGUgImV3a19wcml2YXRlLmgiCiAjaW5jbHVkZSAiZXdr
X3NldHRpbmdzX3ByaXZhdGUuaCIKICNpbmNsdWRlIDxFY29yZV9FdmFzLmg+CisjaW5jbHVkZSA8
V2ViS2l0Mi9XS0FQSUNhc3QuaD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLRGF0YS5oPgorI2luY2x1
ZGUgPFdlYktpdDIvV0tFaW5hU2hhcmVkU3RyaW5nLmg+CisjaW5jbHVkZSA8V2ViS2l0Mi9XS0Zp
bmRPcHRpb25zLmg+CisjaW5jbHVkZSA8V2ViS2l0Mi9XS0luc3BlY3Rvci5oPgogI2luY2x1ZGUg
PFdlYktpdDIvV0tQYWdlR3JvdXAuaD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLUmV0YWluUHRyLmg+
CisjaW5jbHVkZSA8V2ViS2l0Mi9XS1N0cmluZy5oPgorI2luY2x1ZGUgPFdlYktpdDIvV0tVUkwu
aD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLVmlldy5oPgogI2luY2x1ZGUgPHd0Zi9VbnVzZWRQYXJh
bS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIApAQCAtMzY1LDcgKzM2MSw3IEBA
IEVpbmFfQm9vbCBld2tfdmlld19mZWVkX3RvdWNoX2V2ZW50KEV2YXNfT2JqZWN0KiBld2tWaWV3
LCBFd2tfVG91Y2hfRXZlbnRfVHlwZSB0CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5f
VkFMKHBvaW50cywgZmFsc2UpOwogICAgIEVXS19WSUVXX0lNUExfR0VUX09SX1JFVFVSTihld2tW
aWV3LCBpbXBsLCBmYWxzZSk7CiAKLSAgICBpbXBsLT5wYWdlKCktPmhhbmRsZVRvdWNoRXZlbnQo
TmF0aXZlV2ViVG91Y2hFdmVudCh0eXBlLCBwb2ludHMsIG1vZGlmaWVycywgaW1wbC0+dHJhbnNm
b3JtRnJvbVNjZW5lKCksIGltcGwtPnRyYW5zZm9ybVRvU2NyZWVuKCksIGVjb3JlX3RpbWVfZ2V0
KCkpKTsKKyAgICBpbXBsLT5mZWVkVG91Y2hFdmVudCh0eXBlLCBwb2ludHMsIG1vZGlmaWVycyk7
CiAKICAgICByZXR1cm4gdHJ1ZTsKICNlbHNlCkBAIC00NDYsOCArNDQyLDggQEAgQ09NUElMRV9B
U1NFUlRfTUFUQ0hJTkdfRU5VTShFV0tfUEFHSU5BVElPTl9NT0RFX0JPVFRPTV9UT19UT1AsIFdl
YkNvcmU6OlBhZ2luYXQKIEVpbmFfQm9vbCBld2tfdmlld19wYWdpbmF0aW9uX21vZGVfc2V0KEV2
YXNfT2JqZWN0KiBld2tWaWV3LCBFd2tfUGFnaW5hdGlvbl9Nb2RlIG1vZGUpCiB7CiAgICAgRVdL
X1ZJRVdfSU1QTF9HRVRfT1JfUkVUVVJOKGV3a1ZpZXcsIGltcGwsIGZhbHNlKTsKLSAgICAKLSAg
ICBpbXBsLT5wYWdlKCktPnNldFBhZ2luYXRpb25Nb2RlKHN0YXRpY19jYXN0PFdlYkNvcmU6OlBh
Z2luYXRpb246Ok1vZGU+KG1vZGUpKTsKKyAgICAvLyBGSVhNRTogbW92ZSB0byBleHBvcnRlZCBD
IFdLUGFnZSBBUEkgd2hlbiBpdCBhcHBlYXJzLgorICAgIHRvSW1wbChpbXBsLT53a1BhZ2UoKSkt
PnNldFBhZ2luYXRpb25Nb2RlKHN0YXRpY19jYXN0PFdlYkNvcmU6OlBhZ2luYXRpb246Ok1vZGU+
KG1vZGUpKTsKIAogICAgIHJldHVybiB0cnVlOwogfQpAQCAtNDU1LDggKzQ1MSw4IEBAIEVpbmFf
Qm9vbCBld2tfdmlld19wYWdpbmF0aW9uX21vZGVfc2V0KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBF
d2tfUGFnaW5hdGlvbl9Nb2RlCiBFd2tfUGFnaW5hdGlvbl9Nb2RlIGV3a192aWV3X3BhZ2luYXRp
b25fbW9kZV9nZXQoY29uc3QgRXZhc19PYmplY3QqIGV3a1ZpZXcpCiB7CiAgICAgRVdLX1ZJRVdf
SU1QTF9HRVRfT1JfUkVUVVJOKGV3a1ZpZXcsIGltcGwsIEVXS19QQUdJTkFUSU9OX01PREVfSU5W
QUxJRCk7Ci0KLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RXdrX1BhZ2luYXRpb25fTW9kZT4oaW1w
bC0+cGFnZSgpLT5wYWdpbmF0aW9uTW9kZSgpKTsKKyAgICAvLyBGSVhNRTogbW92ZSB0byBleHBv
cnRlZCBDIFdLUGFnZSBBUEkgd2hlbiBpdCBhcHBlYXJzLgorICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxFd2tfUGFnaW5hdGlvbl9Nb2RlPih0b0ltcGwoaW1wbC0+d2tQYWdlKCkpLT5wYWdpbmF0aW9u
TW9kZSgpKTsKIH0KIAogRWluYV9Cb29sIGV3a192aWV3X2Z1bGxzY3JlZW5fZXhpdChFdmFzX09i
amVjdCogZXdrVmlldykKQEAgLTQ2NCw3ICs0NjAsNyBAQCBFaW5hX0Jvb2wgZXdrX3ZpZXdfZnVs
bHNjcmVlbl9leGl0KEV2YXNfT2JqZWN0KiBld2tWaWV3KQogI2lmIEVOQUJMRShGVUxMU0NSRUVO
X0FQSSkKICAgICBFV0tfVklFV19JTVBMX0dFVF9PUl9SRVRVUk4oZXdrVmlldywgaW1wbCwgZmFs
c2UpOwogCi0gICAgaW1wbC0+cGFnZSgpLT5mdWxsU2NyZWVuTWFuYWdlcigpLT5yZXF1ZXN0RXhp
dEZ1bGxTY3JlZW4oKTsKKyAgICBXS1ZpZXdSZXF1ZXN0RXhpdEZ1bGxTY3JlZW4oaW1wbC0+d2tW
aWV3KCkpOwogCiAgICAgcmV0dXJuIHRydWU7CiAjZWxzZQpAQCAtNDk5LDkgKzQ5NSw4IEBAIHN0
YXRpYyB2b2lkIGV3a1ZpZXdQYWdlQ29udGVudHNDYWxsYmFjayhXS0RhdGFSZWYgd2tEYXRhLCBX
S0Vycm9yUmVmLCB2b2lkKiBjb250CiB7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk4o
Y29udGV4dCk7CiAKLSAgICBSZWZQdHI8V2ViRGF0YT4gd2ViRGF0YSA9IHRvSW1wbCh3a0RhdGEp
OwogICAgIEV3a19QYWdlX0NvbnRlbnRzX0NvbnRleHQqIGNvbnRlbnRzQ29udGV4dD0gc3RhdGlj
X2Nhc3Q8RXdrX1BhZ2VfQ29udGVudHNfQ29udGV4dCo+KGNvbnRleHQpOwotICAgIGNvbnRlbnRz
Q29udGV4dC0+Y2FsbGJhY2soY29udGVudHNDb250ZXh0LT50eXBlLCByZWludGVycHJldF9jYXN0
PGNvbnN0IGNoYXIqPih3ZWJEYXRhLT5ieXRlcygpKSk7CisgICAgY29udGVudHNDb250ZXh0LT5j
YWxsYmFjayhjb250ZW50c0NvbnRleHQtPnR5cGUsIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hh
cio+KFdLRGF0YUdldEJ5dGVzKHdrRGF0YSkpKTsKIAogICAgIGRlbGV0ZSBjb250ZW50c0NvbnRl
eHQ7CiB9CkBAIC01MTksNyArNTE0LDcgQEAgRWluYV9Cb29sIGV3a192aWV3X3BhZ2VfY29udGVu
dHNfZ2V0KGNvbnN0IEV2YXNfT2JqZWN0KiBld2tWaWV3LCBFd2tfUGFnZV9Db250ZW4KICAgICBj
b250ZXh0LT50eXBlID0gdHlwZTsKICAgICBjb250ZXh0LT5jYWxsYmFjayA9IGNhbGxiYWNrOwog
Ci0gICAgaW1wbC0+cGFnZSgpLT5nZXRDb250ZW50c0FzTUhUTUxEYXRhKERhdGFDYWxsYmFjazo6
Y3JlYXRlKGNvbnRleHQsIGV3a1ZpZXdQYWdlQ29udGVudHNDYWxsYmFjayksIGZhbHNlKTsKKyAg
ICBXS1BhZ2VHZXRDb250ZW50c0FzTUhUTUxEYXRhKGltcGwtPndrUGFnZSgpLCBmYWxzZSwgY29u
dGV4dCwgZXdrVmlld1BhZ2VDb250ZW50c0NhbGxiYWNrKTsKIAogICAgIHJldHVybiB0cnVlOwog
fQpAQCAtNTI4LDcgKzUyMyw3IEBAIEVpbmFfQm9vbCBld2tfdmlld19zb3VyY2VfbW9kZV9zZXQo
RXZhc19PYmplY3QqIGV3a1ZpZXcsIEVpbmFfQm9vbCBlbmFibGVkKQogewogICAgIEVXS19WSUVX
X0lNUExfR0VUX09SX1JFVFVSTihld2tWaWV3LCBpbXBsLCBmYWxzZSk7CiAKLSAgICBpbXBsLT5w
YWdlKCktPnNldE1haW5GcmFtZUluVmlld1NvdXJjZU1vZGUoZW5hYmxlZCk7CisgICAgV0tWaWV3
U2V0U2hvd3NBc1NvdXJjZShpbXBsLT53a1ZpZXcoKSwgZW5hYmxlZCk7CiAKICAgICByZXR1cm4g
dHJ1ZTsKIH0KQEAgLTUzNyw1ICs1MzIsNSBAQCBFaW5hX0Jvb2wgZXdrX3ZpZXdfc291cmNlX21v
ZGVfZ2V0KGNvbnN0IEV2YXNfT2JqZWN0KiBld2tWaWV3KQogewogICAgIEVXS19WSUVXX0lNUExf
R0VUX09SX1JFVFVSTihld2tWaWV3LCBpbXBsLCBmYWxzZSk7CiAKLSAgICByZXR1cm4gaW1wbC0+
cGFnZSgpLT5tYWluRnJhbWVJblZpZXdTb3VyY2VNb2RlKCk7CisgICAgcmV0dXJuIFdLVmlld0dl
dFNob3dzQXNTb3VyY2UoaW1wbC0+d2tWaWV3KCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL2VmbC9XZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9lZmwvV2ViVmlldy5jcHAKaW5kZXggODcxZGZjMy4uZjMxZDE2OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvZWZsL1dlYlZpZXcuY3BwCkBAIC05Nyw2ICs5NywyMyBAQCB2b2lkIFdlYlZp
ZXc6OnJlc3VtZUFjdGl2ZURPTU9iamVjdHNBbmRBbmltYXRpb25zKCkKICAgICBtX3dlYlBhZ2VQ
cm94eS0+cmVzdW1lQWN0aXZlRE9NT2JqZWN0c0FuZEFuaW1hdGlvbnMoKTsKIH0KIAordm9pZCBX
ZWJWaWV3OjpzZXRTaG93c0FzU291cmNlKGJvb2wgc2hvd3NBc1NvdXJjZSkKK3sKKyAgICBtX3dl
YlBhZ2VQcm94eS0+c2V0TWFpbkZyYW1lSW5WaWV3U291cmNlTW9kZShzaG93c0FzU291cmNlKTsK
K30KKworYm9vbCBXZWJWaWV3OjpzaG93c0FzU291cmNlKCkgY29uc3QKK3sKKyAgICByZXR1cm4g
bV93ZWJQYWdlUHJveHktPm1haW5GcmFtZUluVmlld1NvdXJjZU1vZGUoKTsKK30KKworI2lmIEVO
QUJMRShGVUxMU0NSRUVOX0FQSSkKK3ZvaWQgV2ViVmlldzo6cmVxdWVzdEV4aXRGdWxsU2NyZWVu
KCkKK3sKKyAgICBtX3dlYlBhZ2VQcm94eS0+ZnVsbFNjcmVlbk1hbmFnZXIoKS0+cmVxdWVzdEV4
aXRGdWxsU2NyZWVuKCk7Cit9CisjZW5kaWYKKwogdm9pZCBXZWJWaWV3Ojppbml0aWFsaXplQ2xp
ZW50KGNvbnN0IFdLVmlld0NsaWVudCogY2xpZW50KQogewogICAgIG1fY2xpZW50LmluaXRpYWxp
emUoY2xpZW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2Vi
Vmlldy5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJWaWV3LmgKaW5kZXggNGI1
NmI4NS4uOTcyYjllMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9X
ZWJWaWV3LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJWaWV3LmgKQEAg
LTU3LDYgKzU3LDEzIEBAIHB1YmxpYzoKICAgICB2b2lkIHN1c3BlbmRBY3RpdmVET01PYmplY3Rz
QW5kQW5pbWF0aW9ucygpOwogICAgIHZvaWQgcmVzdW1lQWN0aXZlRE9NT2JqZWN0c0FuZEFuaW1h
dGlvbnMoKTsKIAorICAgIHZvaWQgc2V0U2hvd3NBc1NvdXJjZShib29sKTsKKyAgICBib29sIHNo
b3dzQXNTb3VyY2UoKSBjb25zdDsKKworI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKKyAgICB2
b2lkIHJlcXVlc3RFeGl0RnVsbFNjcmVlbigpOworI2VuZGlmCisKICAgICAvLyBWaWV3IGNsaWVu
dC4KICAgICB2b2lkIGluaXRpYWxpemVDbGllbnQoY29uc3QgV0tWaWV3Q2xpZW50Kik7CiAgICAg
dm9pZCBzZXRWaWV3TmVlZHNEaXNwbGF5KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188855</attachid>
            <date>2013-02-18 05:02:15 -0800</date>
            <delta_ts>2013-02-18 05:21:26 -0800</delta_ts>
            <desc>patch v3</desc>
            <filename>bug109794_v3</filename>
            <type>text/plain</type>
            <size>11596</size>
            <attacher name="Mikhail Pozdnyakov">mikhail.pozdnyakov</attacher>
            
              <data encoding="base64">Y29tbWl0IDgzYTMwYWU4MzQ4Y2I0ODAwMjA2MDcwZjIzNzAxZGRlZjQ2MzRhNGMKQXV0aG9yOiBN
aWtoYWlsIFBvemRueWFrb3YgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CkRhdGU6ICAg
TW9uIEZlYiAxOCAxNDo1NTo1NyAyMDEzICswMjAwCgogICAgYnVnMTA5Nzk0CgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmlu
ZGV4IDZjMzAxYWIuLjQ2ZDgyNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NSBAQAorMjAxMy0w
Mi0xOCAgTWlraGFpbCBQb3pkbnlha292ICA8bWlraGFpbC5wb3pkbnlha292QGludGVsLmNvbT4K
KworICAgICAgICBbV0syXVtFRkxdIEVsaW1pbmF0ZSBhY2Nlc3MgdG8gV0syIEMrKyBpbnRlcm5h
bHMgZnJvbSBld2tfdmlldyBmdW5jdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEwOTc5NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL2VmbC9XS1ZpZXcuY3BwOgorICAg
ICAgICAoV0tWaWV3U2V0U2hvd3NBc1NvdXJjZSk6CisgICAgICAgIChXS1ZpZXdHZXRTaG93c0Fz
U291cmNlKToKKworICAgICAgICAgICAgQWRkZWQgbmV3IFdLVmlldyBBUEkgdG8gd3JhcCBXZWJQ
YWdlUHJveHk6OnNldE1haW5GcmFtZUluVmlld1NvdXJjZU1vZGUoKQorICAgICAgICAgICAgYW5k
IFdlYlBhZ2VQcm94eTo6bWFpbkZyYW1lSW5WaWV3U291cmNlTW9kZSgpIGNhbGxzLgorCisgICAg
ICAgIChXS1ZpZXdFeGl0RnVsbFNjcmVlbik6CisKKyAgICAgICAgICAgIEFkZGVkIG5ldyBXS1Zp
ZXcgQVBJIHRvIHdyYXAgV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6ZXhpdEZ1bGxTY3JlZW4o
KQorICAgICAgICAgICAgY2FsbHMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvZWZsL1dL
Vmlldy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuY3BwOgorICAgICAg
ICAoRXdrVmlldzo6ZmVlZFRvdWNoRXZlbnQpOgorCisgICAgICAgICAgICBBZGRlZCBmZWVkVG91
Y2hFdmVudCgpIG1ldGhvZCBzbyB0aGF0OiBhdCBmaXJzdCBld2tfdmlld19mZWVkX3RvdWNoX2V2
ZW50KCkKKyAgICAgICAgICAgIGlzIG5vdCBpbnZva2VkIGZyb20gRXdrVmlldyBjbGFzcywgc2Vj
b25kbHkgZXdrX3ZpZXdfZmVlZF90b3VjaF9ldmVudCgpIGRvZXMKKyAgICAgICAgICAgIG5vdCBh
Y2Nlc3MgV2ViUGFnZSBpbnN0YW5jZSBkaXJlY3RseS4KKworICAgICAgICAoRXdrVmlldzo6ZmVl
ZFRvdWNoRXZlbnRzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3Lmg6Cisg
ICAgICAgIChFd2tWaWV3KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5j
cHA6CisgICAgICAgIChld2tfdmlld19mZWVkX3RvdWNoX2V2ZW50KToKKyAgICAgICAgKGV3a192
aWV3X3BhZ2luYXRpb25fbW9kZV9zZXQpOgorICAgICAgICAoZXdrX3ZpZXdfcGFnaW5hdGlvbl9t
b2RlX2dldCk6CisgICAgICAgIChld2tfdmlld19mdWxsc2NyZWVuX2V4aXQpOgorICAgICAgICAo
ZXdrVmlld1BhZ2VDb250ZW50c0NhbGxiYWNrKToKKyAgICAgICAgKGV3a192aWV3X3BhZ2VfY29u
dGVudHNfZ2V0KToKKyAgICAgICAgKGV3a192aWV3X3NvdXJjZV9tb2RlX3NldCk6CisgICAgICAg
IChld2tfdmlld19zb3VyY2VfbW9kZV9nZXQpOgorCisgICAgICAgICAgICBUaG9zZSBhcmUgbm93
IHVzaW5nIGV4cG9ydGVkIEMgQVBJLgorCisgICAgICAgICogVUlQcm9jZXNzL2VmbC9XZWJWaWV3
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViVmlldzo6c2V0U2hvd3NBc1NvdXJjZSk6CisgICAg
ICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3OjpzaG93c0FzU291cmNlKToK
KyAgICAgICAgKFdlYktpdDo6V2ViVmlldzo6cmVxdWVzdEV4aXRGdWxsU2NyZWVuKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvZWZsL1dlYlZpZXcuaDoKKyAgICAgICAgKFdlYlZpZXcpOgorCisgICAg
ICAgICAgICBBZGRlZCBXZWJWaWV3IG1ldGhvZHMgdG8gc3VwcG9ydCBhZGRlZCBXS1ZpZXcgQVBJ
LgorCiAyMDEzLTAyLTE4ICBHcnplZ29yeiBDemFqa293c2tpICA8Zy5jemFqa293c2tpQHNhbXN1
bmcuY29tPgogCiAgICAgICAgIFtXSzJdW0VGTF0gVW5pZmllZCB0ZXh0IGNoZWNrZXIgaW1wbGVt
ZW50YXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9lZmwv
V0tWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9lZmwvV0tWaWV3LmNw
cAppbmRleCAyMTBmMmUyLi43NmVkOWRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0MvZWZsL1dLVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL2VmbC9XS1ZpZXcuY3BwCkBAIC05Nyw2ICs5NywyNSBAQCB2b2lkIFdLVmlld1Jlc3Vt
ZUFjdGl2ZURPTU9iamVjdHNBbmRBbmltYXRpb25zKFdLVmlld1JlZiB2aWV3UmVmKQogICAgIHRv
SW1wbCh2aWV3UmVmKS0+cmVzdW1lQWN0aXZlRE9NT2JqZWN0c0FuZEFuaW1hdGlvbnMoKTsKIH0K
IAordm9pZCBXS1ZpZXdTZXRTaG93c0FzU291cmNlKFdLVmlld1JlZiB2aWV3UmVmLCBib29sIGZs
YWcpCit7CisgICAgdG9JbXBsKHZpZXdSZWYpLT5zZXRTaG93c0FzU291cmNlKGZsYWcpOworfQor
Citib29sIFdLVmlld0dldFNob3dzQXNTb3VyY2UoV0tWaWV3UmVmIHZpZXdSZWYpCit7CisgICAg
cmV0dXJuIHRvSW1wbCh2aWV3UmVmKS0+c2hvd3NBc1NvdXJjZSgpOworfQorCit2b2lkIFdLVmll
d0V4aXRGdWxsU2NyZWVuKFdLVmlld1JlZiB2aWV3UmVmKQoreworI2lmIEVOQUJMRShGVUxMU0NS
RUVOX0FQSSkKKyAgICB0b0ltcGwodmlld1JlZiktPmV4aXRGdWxsU2NyZWVuKCk7CisjZWxzZQor
ICAgIFVOVVNFRF9QQVJBTSh2aWV3UmVmKTsKKyNlbmRpZgorfQorCiBFdmFzX09iamVjdCogV0tW
aWV3R2V0RXZhc09iamVjdChXS1ZpZXdSZWYgdmlld1JlZikKIHsKICAgICByZXR1cm4gdG9JbXBs
KHZpZXdSZWYpLT5ldmFzT2JqZWN0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0MvZWZsL1dLVmlldy5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L2VmbC9XS1ZpZXcuaAppbmRleCAzMjU0NmM2Li5iNDJiMjI3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvZWZsL1dLVmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy9lZmwvV0tWaWV3LmgKQEAgLTcwLDYgKzcwLDExIEBAIFdLX0VYUE9S
VCBib29sIFdLVmlld0dldERyYXdzVHJhbnNwYXJlbnRCYWNrZ3JvdW5kKFdLVmlld1JlZik7CiBX
S19FWFBPUlQgdm9pZCBXS1ZpZXdTdXNwZW5kQWN0aXZlRE9NT2JqZWN0c0FuZEFuaW1hdGlvbnMo
V0tWaWV3UmVmKTsKIFdLX0VYUE9SVCB2b2lkIFdLVmlld1Jlc3VtZUFjdGl2ZURPTU9iamVjdHNB
bmRBbmltYXRpb25zKFdLVmlld1JlZik7CiAKK1dLX0VYUE9SVCB2b2lkIFdLVmlld1NldFNob3dz
QXNTb3VyY2UoV0tWaWV3UmVmLCBib29sKTsKK1dLX0VYUE9SVCBib29sIFdLVmlld0dldFNob3dz
QXNTb3VyY2UoV0tWaWV3UmVmKTsKKworV0tfRVhQT1JUIHZvaWQgV0tWaWV3RXhpdEZ1bGxTY3Jl
ZW4oV0tWaWV3UmVmKTsKKwogLy8gRklYTUU6IFRoZSBsb25nIHRlcm0gcGxhbiBpcyB0byBnZXQg
cmlkIG9mIHRoaXMsIHNvIGtlZXAgdXNhZ2UgdG8gYSBiYXJlIG1pbmltdW0uCiBXS19FWFBPUlQg
RXZhc19PYmplY3QqIFdLVmlld0dldEV2YXNPYmplY3QoV0tWaWV3UmVmKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmNwcAppbmRleCA3M2EwY2Y1Li5mZTFj
Y2ZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmNwcApA
QCAtNzQ4LDYgKzc0OCwxMSBAQCB2b2lkIEV3a1ZpZXc6OnNldE1vdXNlRXZlbnRzRW5hYmxlZChi
b29sIGVuYWJsZWQpCiB9CiAKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQordm9pZCBFd2tWaWV3
OjpmZWVkVG91Y2hFdmVudChFd2tfVG91Y2hfRXZlbnRfVHlwZSB0eXBlLCBjb25zdCBFaW5hX0xp
c3QqIHBvaW50cywgY29uc3QgRXZhc19Nb2RpZmllciogbW9kaWZpZXJzKQoreworICAgIHBhZ2Uo
KS0+aGFuZGxlVG91Y2hFdmVudChOYXRpdmVXZWJUb3VjaEV2ZW50KHR5cGUsIHBvaW50cywgbW9k
aWZpZXJzLCB0cmFuc2Zvcm1Gcm9tU2NlbmUoKSwgdHJhbnNmb3JtVG9TY3JlZW4oKSwgZWNvcmVf
dGltZV9nZXQoKSkpOworfQorCiB2b2lkIEV3a1ZpZXc6OnNldFRvdWNoRXZlbnRzRW5hYmxlZChi
b29sIGVuYWJsZWQpCiB7CiAgICAgaWYgKG1fdG91Y2hFdmVudHNFbmFibGVkID09IGVuYWJsZWQp
CkBAIC0xMjk5LDcgKzEzMDQsNyBAQCB2b2lkIEV3a1ZpZXc6OmZlZWRUb3VjaEV2ZW50cyhFd2tf
VG91Y2hfRXZlbnRfVHlwZSB0eXBlKQogICAgICAgICBwb2ludHMgPSBlaW5hX2xpc3RfYXBwZW5k
KHBvaW50cywgcG9pbnQpOwogICAgIH0KIAotICAgIGV3a192aWV3X2ZlZWRfdG91Y2hfZXZlbnQo
bV9ldmFzT2JqZWN0LCB0eXBlLCBwb2ludHMsIGV2YXNfa2V5X21vZGlmaWVyX2dldChzZC0+YmFz
ZS5ldmFzKSk7CisgICAgZmVlZFRvdWNoRXZlbnQodHlwZSwgcG9pbnRzLCBldmFzX2tleV9tb2Rp
Zmllcl9nZXQoc2QtPmJhc2UuZXZhcykpOwogCiAgICAgdm9pZCogZGF0YTsKICAgICBFSU5BX0xJ
U1RfRlJFRShwb2ludHMsIGRhdGEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2VmbC9Fd2tWaWV3LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9F
d2tWaWV3LmgKaW5kZXggNzQ3OTk4Yi4uMzc5ZDZjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZWZsL0V3a1ZpZXcuaApAQCAtMTU4LDYgKzE1OCw3IEBAIHB1YmxpYzoKICAgICBi
b29sIG1vdXNlRXZlbnRzRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fbW91c2VFdmVudHNFbmFi
bGVkOyB9CiAgICAgdm9pZCBzZXRNb3VzZUV2ZW50c0VuYWJsZWQoYm9vbCBlbmFibGVkKTsKICNp
ZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQorICAgIHZvaWQgZmVlZFRvdWNoRXZlbnQoRXdrX1RvdWNo
X0V2ZW50X1R5cGUgdHlwZSwgY29uc3QgRWluYV9MaXN0KiBwb2ludHMsIGNvbnN0IEV2YXNfTW9k
aWZpZXIqIG1vZGlmaWVycyk7CiAgICAgYm9vbCB0b3VjaEV2ZW50c0VuYWJsZWQoKSBjb25zdCB7
IHJldHVybiBtX3RvdWNoRXZlbnRzRW5hYmxlZDsgfQogICAgIHZvaWQgc2V0VG91Y2hFdmVudHNF
bmFibGVkKGJvb2wgZW5hYmxlZCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL2V3a192aWV3LmNwcAppbmRleCBjOTFkN2I4Li40ZjFhMTMxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuY3BwCkBAIC0zMCwxOSArMzAs
NiBAQAogI2luY2x1ZGUgIlBhZ2VVSUNsaWVudEVmbC5oIgogI2luY2x1ZGUgIlBhZ2VWaWV3cG9y
dENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50RWZs
LmgiCi0jaW5jbHVkZSAiV0tBUElDYXN0LmgiCi0jaW5jbHVkZSAiV0tFaW5hU2hhcmVkU3RyaW5n
LmgiCi0jaW5jbHVkZSAiV0tGaW5kT3B0aW9ucy5oIgotI2luY2x1ZGUgIldLSW5zcGVjdG9yLmgi
Ci0jaW5jbHVkZSAiV0tSZXRhaW5QdHIuaCIKLSNpbmNsdWRlICJXS1N0cmluZy5oIgotI2luY2x1
ZGUgIldLVVJMLmgiCi0jaW5jbHVkZSAiV0tWaWV3LmgiCi0jaW5jbHVkZSAiV2ViQ29udGV4dC5o
IgotI2luY2x1ZGUgIldlYkRhdGEuaCIKLSNpbmNsdWRlICJXZWJGdWxsU2NyZWVuTWFuYWdlclBy
b3h5LmgiCi0jaW5jbHVkZSAiV2ViUGFnZUdyb3VwLmgiCi0jaW5jbHVkZSAiV2ViUHJlZmVyZW5j
ZXMuaCIKICNpbmNsdWRlICJld2tfYmFja19mb3J3YXJkX2xpc3RfcHJpdmF0ZS5oIgogI2luY2x1
ZGUgImV3a19jb250ZXh0LmgiCiAjaW5jbHVkZSAiZXdrX2NvbnRleHRfcHJpdmF0ZS5oIgpAQCAt
NTAsNyArMzcsMTYgQEAKICNpbmNsdWRlICJld2tfcHJpdmF0ZS5oIgogI2luY2x1ZGUgImV3a19z
ZXR0aW5nc19wcml2YXRlLmgiCiAjaW5jbHVkZSA8RWNvcmVfRXZhcy5oPgorI2luY2x1ZGUgPFdl
YktpdDIvV0tBUElDYXN0Lmg+CisjaW5jbHVkZSA8V2ViS2l0Mi9XS0RhdGEuaD4KKyNpbmNsdWRl
IDxXZWJLaXQyL1dLRWluYVNoYXJlZFN0cmluZy5oPgorI2luY2x1ZGUgPFdlYktpdDIvV0tGaW5k
T3B0aW9ucy5oPgorI2luY2x1ZGUgPFdlYktpdDIvV0tJbnNwZWN0b3IuaD4KICNpbmNsdWRlIDxX
ZWJLaXQyL1dLUGFnZUdyb3VwLmg+CisjaW5jbHVkZSA8V2ViS2l0Mi9XS1JldGFpblB0ci5oPgor
I2luY2x1ZGUgPFdlYktpdDIvV0tTdHJpbmcuaD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLVVJMLmg+
CisjaW5jbHVkZSA8V2ViS2l0Mi9XS1ZpZXcuaD4KICNpbmNsdWRlIDx3dGYvVW51c2VkUGFyYW0u
aD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKQEAgLTM3Niw3ICszNzIsNyBAQCBF
aW5hX0Jvb2wgZXdrX3ZpZXdfZmVlZF90b3VjaF9ldmVudChFdmFzX09iamVjdCogZXdrVmlldywg
RXdrX1RvdWNoX0V2ZW50X1R5cGUgdAogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZB
TChwb2ludHMsIGZhbHNlKTsKICAgICBFV0tfVklFV19JTVBMX0dFVF9PUl9SRVRVUk4oZXdrVmll
dywgaW1wbCwgZmFsc2UpOwogCi0gICAgaW1wbC0+cGFnZSgpLT5oYW5kbGVUb3VjaEV2ZW50KE5h
dGl2ZVdlYlRvdWNoRXZlbnQodHlwZSwgcG9pbnRzLCBtb2RpZmllcnMsIGltcGwtPnRyYW5zZm9y
bUZyb21TY2VuZSgpLCBpbXBsLT50cmFuc2Zvcm1Ub1NjcmVlbigpLCBlY29yZV90aW1lX2dldCgp
KSk7CisgICAgaW1wbC0+ZmVlZFRvdWNoRXZlbnQodHlwZSwgcG9pbnRzLCBtb2RpZmllcnMpOwog
CiAgICAgcmV0dXJuIHRydWU7CiAjZWxzZQpAQCAtNDU3LDggKzQ1Myw4IEBAIENPTVBJTEVfQVNT
RVJUX01BVENISU5HX0VOVU0oRVdLX1BBR0lOQVRJT05fTU9ERV9CT1RUT01fVE9fVE9QLCBXZWJD
b3JlOjpQYWdpbmF0CiBFaW5hX0Jvb2wgZXdrX3ZpZXdfcGFnaW5hdGlvbl9tb2RlX3NldChFdmFz
X09iamVjdCogZXdrVmlldywgRXdrX1BhZ2luYXRpb25fTW9kZSBtb2RlKQogewogICAgIEVXS19W
SUVXX0lNUExfR0VUX09SX1JFVFVSTihld2tWaWV3LCBpbXBsLCBmYWxzZSk7Ci0gICAgCi0gICAg
aW1wbC0+cGFnZSgpLT5zZXRQYWdpbmF0aW9uTW9kZShzdGF0aWNfY2FzdDxXZWJDb3JlOjpQYWdp
bmF0aW9uOjpNb2RlPihtb2RlKSk7CisgICAgLy8gRklYTUU6IG1vdmUgdG8gZXhwb3J0ZWQgQyBX
S1BhZ2UgQVBJIHdoZW4gaXQgYXBwZWFycy4KKyAgICB0b0ltcGwoaW1wbC0+d2tQYWdlKCkpLT5z
ZXRQYWdpbmF0aW9uTW9kZShzdGF0aWNfY2FzdDxXZWJDb3JlOjpQYWdpbmF0aW9uOjpNb2RlPiht
b2RlKSk7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTQ2Niw4ICs0NjIsOCBAQCBFaW5hX0Jv
b2wgZXdrX3ZpZXdfcGFnaW5hdGlvbl9tb2RlX3NldChFdmFzX09iamVjdCogZXdrVmlldywgRXdr
X1BhZ2luYXRpb25fTW9kZQogRXdrX1BhZ2luYXRpb25fTW9kZSBld2tfdmlld19wYWdpbmF0aW9u
X21vZGVfZ2V0KGNvbnN0IEV2YXNfT2JqZWN0KiBld2tWaWV3KQogewogICAgIEVXS19WSUVXX0lN
UExfR0VUX09SX1JFVFVSTihld2tWaWV3LCBpbXBsLCBFV0tfUEFHSU5BVElPTl9NT0RFX0lOVkFM
SUQpOwotCi0gICAgcmV0dXJuIHN0YXRpY19jYXN0PEV3a19QYWdpbmF0aW9uX01vZGU+KGltcGwt
PnBhZ2UoKS0+cGFnaW5hdGlvbk1vZGUoKSk7CisgICAgLy8gRklYTUU6IG1vdmUgdG8gZXhwb3J0
ZWQgQyBXS1BhZ2UgQVBJIHdoZW4gaXQgYXBwZWFycy4KKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
RXdrX1BhZ2luYXRpb25fTW9kZT4odG9JbXBsKGltcGwtPndrUGFnZSgpKS0+cGFnaW5hdGlvbk1v
ZGUoKSk7CiB9CiAKIEVpbmFfQm9vbCBld2tfdmlld19mdWxsc2NyZWVuX2V4aXQoRXZhc19PYmpl
Y3QqIGV3a1ZpZXcpCkBAIC00NzUsNyArNDcxLDcgQEAgRWluYV9Cb29sIGV3a192aWV3X2Z1bGxz
Y3JlZW5fZXhpdChFdmFzX09iamVjdCogZXdrVmlldykKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9B
UEkpCiAgICAgRVdLX1ZJRVdfSU1QTF9HRVRfT1JfUkVUVVJOKGV3a1ZpZXcsIGltcGwsIGZhbHNl
KTsKIAotICAgIGltcGwtPnBhZ2UoKS0+ZnVsbFNjcmVlbk1hbmFnZXIoKS0+cmVxdWVzdEV4aXRG
dWxsU2NyZWVuKCk7CisgICAgV0tWaWV3RXhpdEZ1bGxTY3JlZW4oaW1wbC0+d2tWaWV3KCkpOwog
CiAgICAgcmV0dXJuIHRydWU7CiAjZWxzZQpAQCAtNTEwLDkgKzUwNiw4IEBAIHN0YXRpYyB2b2lk
IGV3a1ZpZXdQYWdlQ29udGVudHNDYWxsYmFjayhXS0RhdGFSZWYgd2tEYXRhLCBXS0Vycm9yUmVm
LCB2b2lkKiBjb250CiB7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk4oY29udGV4dCk7
CiAKLSAgICBSZWZQdHI8V2ViRGF0YT4gd2ViRGF0YSA9IHRvSW1wbCh3a0RhdGEpOwogICAgIEV3
a19QYWdlX0NvbnRlbnRzX0NvbnRleHQqIGNvbnRlbnRzQ29udGV4dD0gc3RhdGljX2Nhc3Q8RXdr
X1BhZ2VfQ29udGVudHNfQ29udGV4dCo+KGNvbnRleHQpOwotICAgIGNvbnRlbnRzQ29udGV4dC0+
Y2FsbGJhY2soY29udGVudHNDb250ZXh0LT50eXBlLCByZWludGVycHJldF9jYXN0PGNvbnN0IGNo
YXIqPih3ZWJEYXRhLT5ieXRlcygpKSk7CisgICAgY29udGVudHNDb250ZXh0LT5jYWxsYmFjayhj
b250ZW50c0NvbnRleHQtPnR5cGUsIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KFdLRGF0
YUdldEJ5dGVzKHdrRGF0YSkpKTsKIAogICAgIGRlbGV0ZSBjb250ZW50c0NvbnRleHQ7CiB9CkBA
IC01MzAsNyArNTI1LDcgQEAgRWluYV9Cb29sIGV3a192aWV3X3BhZ2VfY29udGVudHNfZ2V0KGNv
bnN0IEV2YXNfT2JqZWN0KiBld2tWaWV3LCBFd2tfUGFnZV9Db250ZW4KICAgICBjb250ZXh0LT50
eXBlID0gdHlwZTsKICAgICBjb250ZXh0LT5jYWxsYmFjayA9IGNhbGxiYWNrOwogCi0gICAgaW1w
bC0+cGFnZSgpLT5nZXRDb250ZW50c0FzTUhUTUxEYXRhKERhdGFDYWxsYmFjazo6Y3JlYXRlKGNv
bnRleHQsIGV3a1ZpZXdQYWdlQ29udGVudHNDYWxsYmFjayksIGZhbHNlKTsKKyAgICBXS1BhZ2VH
ZXRDb250ZW50c0FzTUhUTUxEYXRhKGltcGwtPndrUGFnZSgpLCBmYWxzZSwgY29udGV4dCwgZXdr
Vmlld1BhZ2VDb250ZW50c0NhbGxiYWNrKTsKIAogICAgIHJldHVybiB0cnVlOwogfQpAQCAtNTM5
LDcgKzUzNCw3IEBAIEVpbmFfQm9vbCBld2tfdmlld19zb3VyY2VfbW9kZV9zZXQoRXZhc19PYmpl
Y3QqIGV3a1ZpZXcsIEVpbmFfQm9vbCBlbmFibGVkKQogewogICAgIEVXS19WSUVXX0lNUExfR0VU
X09SX1JFVFVSTihld2tWaWV3LCBpbXBsLCBmYWxzZSk7CiAKLSAgICBpbXBsLT5wYWdlKCktPnNl
dE1haW5GcmFtZUluVmlld1NvdXJjZU1vZGUoZW5hYmxlZCk7CisgICAgV0tWaWV3U2V0U2hvd3NB
c1NvdXJjZShpbXBsLT53a1ZpZXcoKSwgZW5hYmxlZCk7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0K
QEAgLTU0OCw1ICs1NDMsNSBAQCBFaW5hX0Jvb2wgZXdrX3ZpZXdfc291cmNlX21vZGVfZ2V0KGNv
bnN0IEV2YXNfT2JqZWN0KiBld2tWaWV3KQogewogICAgIEVXS19WSUVXX0lNUExfR0VUX09SX1JF
VFVSTihld2tWaWV3LCBpbXBsLCBmYWxzZSk7CiAKLSAgICByZXR1cm4gaW1wbC0+cGFnZSgpLT5t
YWluRnJhbWVJblZpZXdTb3VyY2VNb2RlKCk7CisgICAgcmV0dXJuIFdLVmlld0dldFNob3dzQXNT
b3VyY2UoaW1wbC0+d2tWaWV3KCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL2VmbC9XZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2Vi
Vmlldy5jcHAKaW5kZXggM2FiNGZkNC4uN2ZmMzM0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL2VmbC9XZWJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvZWZsL1dlYlZpZXcuY3BwCkBAIC0xMTgsNiArMTE4LDIzIEBAIHZvaWQgV2ViVmlldzo6cmVz
dW1lQWN0aXZlRE9NT2JqZWN0c0FuZEFuaW1hdGlvbnMoKQogICAgIG1fcGFnZS0+cmVzdW1lQWN0
aXZlRE9NT2JqZWN0c0FuZEFuaW1hdGlvbnMoKTsKIH0KIAordm9pZCBXZWJWaWV3OjpzZXRTaG93
c0FzU291cmNlKGJvb2wgc2hvd3NBc1NvdXJjZSkKK3sKKyAgICBtX3dlYlBhZ2VQcm94eS0+c2V0
TWFpbkZyYW1lSW5WaWV3U291cmNlTW9kZShzaG93c0FzU291cmNlKTsKK30KKworYm9vbCBXZWJW
aWV3OjpzaG93c0FzU291cmNlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV93ZWJQYWdlUHJveHkt
Pm1haW5GcmFtZUluVmlld1NvdXJjZU1vZGUoKTsKK30KKworI2lmIEVOQUJMRShGVUxMU0NSRUVO
X0FQSSkKK3ZvaWQgV2ViVmlldzo6ZXhpdEZ1bGxTY3JlZW4oKQoreworICAgIG1fd2ViUGFnZVBy
b3h5LT5mdWxsU2NyZWVuTWFuYWdlcigpLT5yZXF1ZXN0RXhpdEZ1bGxTY3JlZW4oKTsKK30KKyNl
bmRpZgorCiB2b2lkIFdlYlZpZXc6OmluaXRpYWxpemVDbGllbnQoY29uc3QgV0tWaWV3Q2xpZW50
KiBjbGllbnQpCiB7CiAgICAgbV9jbGllbnQuaW5pdGlhbGl6ZShjbGllbnQpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJWaWV3LmggYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvZWZsL1dlYlZpZXcuaAppbmRleCBhYjIyOGIwLi40NGVlOWQ3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYlZpZXcuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYlZpZXcuaApAQCAtNjQsNiArNjQsMTMgQEAgcHVibGlj
OgogICAgIHZvaWQgc3VzcGVuZEFjdGl2ZURPTU9iamVjdHNBbmRBbmltYXRpb25zKCk7CiAgICAg
dm9pZCByZXN1bWVBY3RpdmVET01PYmplY3RzQW5kQW5pbWF0aW9ucygpOwogCisgICAgdm9pZCBz
ZXRTaG93c0FzU291cmNlKGJvb2wpOworICAgIGJvb2wgc2hvd3NBc1NvdXJjZSgpIGNvbnN0Owor
CisjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQorICAgIHZvaWQgZXhpdEZ1bGxTY3JlZW4oKTsK
KyNlbmRpZgorCiAgICAgLy8gVmlldyBjbGllbnQuCiAgICAgdm9pZCBpbml0aWFsaXplQ2xpZW50
KGNvbnN0IFdLVmlld0NsaWVudCopOwogCg==
</data>
<flag name="commit-queue"
          id="209092"
          type_id="3"
          status="-"
          setter="eflews.bot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188858</attachid>
            <date>2013-02-18 05:21:26 -0800</date>
            <delta_ts>2013-02-19 08:49:49 -0800</delta_ts>
            <desc>patch v4</desc>
            <filename>bug109794_v4</filename>
            <type>text/plain</type>
            <size>11565</size>
            <attacher name="Mikhail Pozdnyakov">mikhail.pozdnyakov</attacher>
            
              <data encoding="base64">Y29tbWl0IDg1MTAzZjU4YTk4MjFmMGE5ZWU2OGE4YTQ4MmUwMDBkOGQ2ZGIwZTAKQXV0aG9yOiBN
aWtoYWlsIFBvemRueWFrb3YgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CkRhdGU6ICAg
TW9uIEZlYiAxOCAxNDo1NTo1NyAyMDEzICswMjAwCgogICAgYnVnMTA5Nzk0CgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmlu
ZGV4IDZjMzAxYWIuLjhkZGE2YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NSBAQAorMjAxMy0w
Mi0xOCAgTWlraGFpbCBQb3pkbnlha292ICA8bWlraGFpbC5wb3pkbnlha292QGludGVsLmNvbT4K
KworICAgICAgICBbV0syXVtFRkxdIEVsaW1pbmF0ZSBhY2Nlc3MgdG8gV0syIEMrKyBpbnRlcm5h
bHMgZnJvbSBld2tfdmlldyBmdW5jdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEwOTc5NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL2VmbC9XS1ZpZXcuY3BwOgorICAg
ICAgICAoV0tWaWV3U2V0U2hvd3NBc1NvdXJjZSk6CisgICAgICAgIChXS1ZpZXdHZXRTaG93c0Fz
U291cmNlKToKKworICAgICAgICAgICAgQWRkZWQgbmV3IFdLVmlldyBBUEkgdG8gd3JhcCBXZWJQ
YWdlUHJveHk6OnNldE1haW5GcmFtZUluVmlld1NvdXJjZU1vZGUoKQorICAgICAgICAgICAgYW5k
IFdlYlBhZ2VQcm94eTo6bWFpbkZyYW1lSW5WaWV3U291cmNlTW9kZSgpIGNhbGxzLgorCisgICAg
ICAgIChXS1ZpZXdFeGl0RnVsbFNjcmVlbik6CisKKyAgICAgICAgICAgIEFkZGVkIG5ldyBXS1Zp
ZXcgQVBJIHRvIHdyYXAgV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6ZXhpdEZ1bGxTY3JlZW4o
KQorICAgICAgICAgICAgY2FsbHMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvZWZsL1dL
Vmlldy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuY3BwOgorICAgICAg
ICAoRXdrVmlldzo6ZmVlZFRvdWNoRXZlbnQpOgorCisgICAgICAgICAgICBBZGRlZCBmZWVkVG91
Y2hFdmVudCgpIG1ldGhvZCBzbyB0aGF0OiBhdCBmaXJzdCBld2tfdmlld19mZWVkX3RvdWNoX2V2
ZW50KCkKKyAgICAgICAgICAgIGlzIG5vdCBpbnZva2VkIGZyb20gRXdrVmlldyBjbGFzcywgc2Vj
b25kbHkgZXdrX3ZpZXdfZmVlZF90b3VjaF9ldmVudCgpIGRvZXMKKyAgICAgICAgICAgIG5vdCBh
Y2Nlc3MgV2ViUGFnZSBpbnN0YW5jZSBkaXJlY3RseS4KKworICAgICAgICAoRXdrVmlldzo6ZmVl
ZFRvdWNoRXZlbnRzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3Lmg6Cisg
ICAgICAgIChFd2tWaWV3KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5j
cHA6CisgICAgICAgIChld2tfdmlld19mZWVkX3RvdWNoX2V2ZW50KToKKyAgICAgICAgKGV3a192
aWV3X3BhZ2luYXRpb25fbW9kZV9zZXQpOgorICAgICAgICAoZXdrX3ZpZXdfcGFnaW5hdGlvbl9t
b2RlX2dldCk6CisgICAgICAgIChld2tfdmlld19mdWxsc2NyZWVuX2V4aXQpOgorICAgICAgICAo
ZXdrVmlld1BhZ2VDb250ZW50c0NhbGxiYWNrKToKKyAgICAgICAgKGV3a192aWV3X3BhZ2VfY29u
dGVudHNfZ2V0KToKKyAgICAgICAgKGV3a192aWV3X3NvdXJjZV9tb2RlX3NldCk6CisgICAgICAg
IChld2tfdmlld19zb3VyY2VfbW9kZV9nZXQpOgorCisgICAgICAgICAgICBUaG9zZSBhcmUgbm93
IHVzaW5nIGV4cG9ydGVkIEMgQVBJLgorCisgICAgICAgICogVUlQcm9jZXNzL2VmbC9XZWJWaWV3
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViVmlldzo6c2V0U2hvd3NBc1NvdXJjZSk6CisgICAg
ICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3OjpzaG93c0FzU291cmNlKToK
KyAgICAgICAgKFdlYktpdDo6V2ViVmlldzo6ZXhpdEZ1bGxTY3JlZW4pOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9lZmwvV2ViVmlldy5oOgorICAgICAgICAoV2ViVmlldyk6CisKKyAgICAgICAgICAg
IEFkZGVkIFdlYlZpZXcgbWV0aG9kcyB0byBzdXBwb3J0IGFkZGVkIFdLVmlldyBBUEkuCisKIDIw
MTMtMDItMTggIEdyemVnb3J6IEN6YWprb3dza2kgIDxnLmN6YWprb3dza2lAc2Ftc3VuZy5jb20+
CiAKICAgICAgICAgW1dLMl1bRUZMXSBVbmlmaWVkIHRleHQgY2hlY2tlciBpbXBsZW1lbnRhdGlv
bgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL2VmbC9XS1ZpZXcu
Y3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL2VmbC9XS1ZpZXcuY3BwCmluZGV4
IDIxMGYyZTIuLjc2ZWQ5ZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQy9lZmwvV0tWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
ZWZsL1dLVmlldy5jcHAKQEAgLTk3LDYgKzk3LDI1IEBAIHZvaWQgV0tWaWV3UmVzdW1lQWN0aXZl
RE9NT2JqZWN0c0FuZEFuaW1hdGlvbnMoV0tWaWV3UmVmIHZpZXdSZWYpCiAgICAgdG9JbXBsKHZp
ZXdSZWYpLT5yZXN1bWVBY3RpdmVET01PYmplY3RzQW5kQW5pbWF0aW9ucygpOwogfQogCit2b2lk
IFdLVmlld1NldFNob3dzQXNTb3VyY2UoV0tWaWV3UmVmIHZpZXdSZWYsIGJvb2wgZmxhZykKK3sK
KyAgICB0b0ltcGwodmlld1JlZiktPnNldFNob3dzQXNTb3VyY2UoZmxhZyk7Cit9CisKK2Jvb2wg
V0tWaWV3R2V0U2hvd3NBc1NvdXJjZShXS1ZpZXdSZWYgdmlld1JlZikKK3sKKyAgICByZXR1cm4g
dG9JbXBsKHZpZXdSZWYpLT5zaG93c0FzU291cmNlKCk7Cit9CisKK3ZvaWQgV0tWaWV3RXhpdEZ1
bGxTY3JlZW4oV0tWaWV3UmVmIHZpZXdSZWYpCit7CisjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJ
KQorICAgIHRvSW1wbCh2aWV3UmVmKS0+ZXhpdEZ1bGxTY3JlZW4oKTsKKyNlbHNlCisgICAgVU5V
U0VEX1BBUkFNKHZpZXdSZWYpOworI2VuZGlmCit9CisKIEV2YXNfT2JqZWN0KiBXS1ZpZXdHZXRF
dmFzT2JqZWN0KFdLVmlld1JlZiB2aWV3UmVmKQogewogICAgIHJldHVybiB0b0ltcGwodmlld1Jl
ZiktPmV2YXNPYmplY3QoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQy9lZmwvV0tWaWV3LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvZWZsL1dL
Vmlldy5oCmluZGV4IDMyNTQ2YzYuLmI0MmIyMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy9lZmwvV0tWaWV3LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9DL2VmbC9XS1ZpZXcuaApAQCAtNzAsNiArNzAsMTEgQEAgV0tfRVhQT1JUIGJvb2wg
V0tWaWV3R2V0RHJhd3NUcmFuc3BhcmVudEJhY2tncm91bmQoV0tWaWV3UmVmKTsKIFdLX0VYUE9S
VCB2b2lkIFdLVmlld1N1c3BlbmRBY3RpdmVET01PYmplY3RzQW5kQW5pbWF0aW9ucyhXS1ZpZXdS
ZWYpOwogV0tfRVhQT1JUIHZvaWQgV0tWaWV3UmVzdW1lQWN0aXZlRE9NT2JqZWN0c0FuZEFuaW1h
dGlvbnMoV0tWaWV3UmVmKTsKIAorV0tfRVhQT1JUIHZvaWQgV0tWaWV3U2V0U2hvd3NBc1NvdXJj
ZShXS1ZpZXdSZWYsIGJvb2wpOworV0tfRVhQT1JUIGJvb2wgV0tWaWV3R2V0U2hvd3NBc1NvdXJj
ZShXS1ZpZXdSZWYpOworCitXS19FWFBPUlQgdm9pZCBXS1ZpZXdFeGl0RnVsbFNjcmVlbihXS1Zp
ZXdSZWYpOworCiAvLyBGSVhNRTogVGhlIGxvbmcgdGVybSBwbGFuIGlzIHRvIGdldCByaWQgb2Yg
dGhpcywgc28ga2VlcCB1c2FnZSB0byBhIGJhcmUgbWluaW11bS4KIFdLX0VYUE9SVCBFdmFzX09i
amVjdCogV0tWaWV3R2V0RXZhc09iamVjdChXS1ZpZXdSZWYpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuY3BwCmluZGV4IDczYTBjZjUuLmZlMWNjZmIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuY3BwCkBAIC03NDgs
NiArNzQ4LDExIEBAIHZvaWQgRXdrVmlldzo6c2V0TW91c2VFdmVudHNFbmFibGVkKGJvb2wgZW5h
YmxlZCkKIH0KIAogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCit2b2lkIEV3a1ZpZXc6OmZlZWRU
b3VjaEV2ZW50KEV3a19Ub3VjaF9FdmVudF9UeXBlIHR5cGUsIGNvbnN0IEVpbmFfTGlzdCogcG9p
bnRzLCBjb25zdCBFdmFzX01vZGlmaWVyKiBtb2RpZmllcnMpCit7CisgICAgcGFnZSgpLT5oYW5k
bGVUb3VjaEV2ZW50KE5hdGl2ZVdlYlRvdWNoRXZlbnQodHlwZSwgcG9pbnRzLCBtb2RpZmllcnMs
IHRyYW5zZm9ybUZyb21TY2VuZSgpLCB0cmFuc2Zvcm1Ub1NjcmVlbigpLCBlY29yZV90aW1lX2dl
dCgpKSk7Cit9CisKIHZvaWQgRXdrVmlldzo6c2V0VG91Y2hFdmVudHNFbmFibGVkKGJvb2wgZW5h
YmxlZCkKIHsKICAgICBpZiAobV90b3VjaEV2ZW50c0VuYWJsZWQgPT0gZW5hYmxlZCkKQEAgLTEy
OTksNyArMTMwNCw3IEBAIHZvaWQgRXdrVmlldzo6ZmVlZFRvdWNoRXZlbnRzKEV3a19Ub3VjaF9F
dmVudF9UeXBlIHR5cGUpCiAgICAgICAgIHBvaW50cyA9IGVpbmFfbGlzdF9hcHBlbmQocG9pbnRz
LCBwb2ludCk7CiAgICAgfQogCi0gICAgZXdrX3ZpZXdfZmVlZF90b3VjaF9ldmVudChtX2V2YXNP
YmplY3QsIHR5cGUsIHBvaW50cywgZXZhc19rZXlfbW9kaWZpZXJfZ2V0KHNkLT5iYXNlLmV2YXMp
KTsKKyAgICBmZWVkVG91Y2hFdmVudCh0eXBlLCBwb2ludHMsIGV2YXNfa2V5X21vZGlmaWVyX2dl
dChzZC0+YmFzZS5ldmFzKSk7CiAKICAgICB2b2lkKiBkYXRhOwogICAgIEVJTkFfTElTVF9GUkVF
KHBvaW50cywgZGF0YSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
ZWZsL0V3a1ZpZXcuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcu
aAppbmRleCA3NDc5OThiLi4zNzlkNmNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9lZmwvRXdrVmlldy5oCkBAIC0xNTgsNiArMTU4LDcgQEAgcHVibGljOgogICAgIGJvb2wgbW91
c2VFdmVudHNFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9tb3VzZUV2ZW50c0VuYWJsZWQ7IH0K
ICAgICB2b2lkIHNldE1vdXNlRXZlbnRzRW5hYmxlZChib29sIGVuYWJsZWQpOwogI2lmIEVOQUJM
RShUT1VDSF9FVkVOVFMpCisgICAgdm9pZCBmZWVkVG91Y2hFdmVudChFd2tfVG91Y2hfRXZlbnRf
VHlwZSB0eXBlLCBjb25zdCBFaW5hX0xpc3QqIHBvaW50cywgY29uc3QgRXZhc19Nb2RpZmllciog
bW9kaWZpZXJzKTsKICAgICBib29sIHRvdWNoRXZlbnRzRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJu
IG1fdG91Y2hFdmVudHNFbmFibGVkOyB9CiAgICAgdm9pZCBzZXRUb3VjaEV2ZW50c0VuYWJsZWQo
Ym9vbCBlbmFibGVkKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9lZmwvZXdrX3ZpZXcuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9l
ZmwvZXdrX3ZpZXcuY3BwCmluZGV4IGM5MWQ3YjguLjRmMWExMzEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5jcHAKQEAgLTMwLDE5ICszMCw2IEBACiAj
aW5jbHVkZSAiUGFnZVVJQ2xpZW50RWZsLmgiCiAjaW5jbHVkZSAiUGFnZVZpZXdwb3J0Q29udHJv
bGxlci5oIgogI2luY2x1ZGUgIlBhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRFZmwuaCIKLSNp
bmNsdWRlICJXS0FQSUNhc3QuaCIKLSNpbmNsdWRlICJXS0VpbmFTaGFyZWRTdHJpbmcuaCIKLSNp
bmNsdWRlICJXS0ZpbmRPcHRpb25zLmgiCi0jaW5jbHVkZSAiV0tJbnNwZWN0b3IuaCIKLSNpbmNs
dWRlICJXS1JldGFpblB0ci5oIgotI2luY2x1ZGUgIldLU3RyaW5nLmgiCi0jaW5jbHVkZSAiV0tV
UkwuaCIKLSNpbmNsdWRlICJXS1ZpZXcuaCIKLSNpbmNsdWRlICJXZWJDb250ZXh0LmgiCi0jaW5j
bHVkZSAiV2ViRGF0YS5oIgotI2luY2x1ZGUgIldlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkuaCIK
LSNpbmNsdWRlICJXZWJQYWdlR3JvdXAuaCIKLSNpbmNsdWRlICJXZWJQcmVmZXJlbmNlcy5oIgog
I2luY2x1ZGUgImV3a19iYWNrX2ZvcndhcmRfbGlzdF9wcml2YXRlLmgiCiAjaW5jbHVkZSAiZXdr
X2NvbnRleHQuaCIKICNpbmNsdWRlICJld2tfY29udGV4dF9wcml2YXRlLmgiCkBAIC01MCw3ICsz
NywxNiBAQAogI2luY2x1ZGUgImV3a19wcml2YXRlLmgiCiAjaW5jbHVkZSAiZXdrX3NldHRpbmdz
X3ByaXZhdGUuaCIKICNpbmNsdWRlIDxFY29yZV9FdmFzLmg+CisjaW5jbHVkZSA8V2ViS2l0Mi9X
S0FQSUNhc3QuaD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLRGF0YS5oPgorI2luY2x1ZGUgPFdlYktp
dDIvV0tFaW5hU2hhcmVkU3RyaW5nLmg+CisjaW5jbHVkZSA8V2ViS2l0Mi9XS0ZpbmRPcHRpb25z
Lmg+CisjaW5jbHVkZSA8V2ViS2l0Mi9XS0luc3BlY3Rvci5oPgogI2luY2x1ZGUgPFdlYktpdDIv
V0tQYWdlR3JvdXAuaD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLUmV0YWluUHRyLmg+CisjaW5jbHVk
ZSA8V2ViS2l0Mi9XS1N0cmluZy5oPgorI2luY2x1ZGUgPFdlYktpdDIvV0tVUkwuaD4KKyNpbmNs
dWRlIDxXZWJLaXQyL1dLVmlldy5oPgogI2luY2x1ZGUgPHd0Zi9VbnVzZWRQYXJhbS5oPgogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIApAQCAtMzc2LDcgKzM3Miw3IEBAIEVpbmFfQm9v
bCBld2tfdmlld19mZWVkX3RvdWNoX2V2ZW50KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBFd2tfVG91
Y2hfRXZlbnRfVHlwZSB0CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHBvaW50
cywgZmFsc2UpOwogICAgIEVXS19WSUVXX0lNUExfR0VUX09SX1JFVFVSTihld2tWaWV3LCBpbXBs
LCBmYWxzZSk7CiAKLSAgICBpbXBsLT5wYWdlKCktPmhhbmRsZVRvdWNoRXZlbnQoTmF0aXZlV2Vi
VG91Y2hFdmVudCh0eXBlLCBwb2ludHMsIG1vZGlmaWVycywgaW1wbC0+dHJhbnNmb3JtRnJvbVNj
ZW5lKCksIGltcGwtPnRyYW5zZm9ybVRvU2NyZWVuKCksIGVjb3JlX3RpbWVfZ2V0KCkpKTsKKyAg
ICBpbXBsLT5mZWVkVG91Y2hFdmVudCh0eXBlLCBwb2ludHMsIG1vZGlmaWVycyk7CiAKICAgICBy
ZXR1cm4gdHJ1ZTsKICNlbHNlCkBAIC00NTcsOCArNDUzLDggQEAgQ09NUElMRV9BU1NFUlRfTUFU
Q0hJTkdfRU5VTShFV0tfUEFHSU5BVElPTl9NT0RFX0JPVFRPTV9UT19UT1AsIFdlYkNvcmU6OlBh
Z2luYXQKIEVpbmFfQm9vbCBld2tfdmlld19wYWdpbmF0aW9uX21vZGVfc2V0KEV2YXNfT2JqZWN0
KiBld2tWaWV3LCBFd2tfUGFnaW5hdGlvbl9Nb2RlIG1vZGUpCiB7CiAgICAgRVdLX1ZJRVdfSU1Q
TF9HRVRfT1JfUkVUVVJOKGV3a1ZpZXcsIGltcGwsIGZhbHNlKTsKLSAgICAKLSAgICBpbXBsLT5w
YWdlKCktPnNldFBhZ2luYXRpb25Nb2RlKHN0YXRpY19jYXN0PFdlYkNvcmU6OlBhZ2luYXRpb246
Ok1vZGU+KG1vZGUpKTsKKyAgICAvLyBGSVhNRTogbW92ZSB0byBleHBvcnRlZCBDIFdLUGFnZSBB
UEkgd2hlbiBpdCBhcHBlYXJzLgorICAgIHRvSW1wbChpbXBsLT53a1BhZ2UoKSktPnNldFBhZ2lu
YXRpb25Nb2RlKHN0YXRpY19jYXN0PFdlYkNvcmU6OlBhZ2luYXRpb246Ok1vZGU+KG1vZGUpKTsK
IAogICAgIHJldHVybiB0cnVlOwogfQpAQCAtNDY2LDggKzQ2Miw4IEBAIEVpbmFfQm9vbCBld2tf
dmlld19wYWdpbmF0aW9uX21vZGVfc2V0KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBFd2tfUGFnaW5h
dGlvbl9Nb2RlCiBFd2tfUGFnaW5hdGlvbl9Nb2RlIGV3a192aWV3X3BhZ2luYXRpb25fbW9kZV9n
ZXQoY29uc3QgRXZhc19PYmplY3QqIGV3a1ZpZXcpCiB7CiAgICAgRVdLX1ZJRVdfSU1QTF9HRVRf
T1JfUkVUVVJOKGV3a1ZpZXcsIGltcGwsIEVXS19QQUdJTkFUSU9OX01PREVfSU5WQUxJRCk7Ci0K
LSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RXdrX1BhZ2luYXRpb25fTW9kZT4oaW1wbC0+cGFnZSgp
LT5wYWdpbmF0aW9uTW9kZSgpKTsKKyAgICAvLyBGSVhNRTogbW92ZSB0byBleHBvcnRlZCBDIFdL
UGFnZSBBUEkgd2hlbiBpdCBhcHBlYXJzLgorICAgIHJldHVybiBzdGF0aWNfY2FzdDxFd2tfUGFn
aW5hdGlvbl9Nb2RlPih0b0ltcGwoaW1wbC0+d2tQYWdlKCkpLT5wYWdpbmF0aW9uTW9kZSgpKTsK
IH0KIAogRWluYV9Cb29sIGV3a192aWV3X2Z1bGxzY3JlZW5fZXhpdChFdmFzX09iamVjdCogZXdr
VmlldykKQEAgLTQ3NSw3ICs0NzEsNyBAQCBFaW5hX0Jvb2wgZXdrX3ZpZXdfZnVsbHNjcmVlbl9l
eGl0KEV2YXNfT2JqZWN0KiBld2tWaWV3KQogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKICAg
ICBFV0tfVklFV19JTVBMX0dFVF9PUl9SRVRVUk4oZXdrVmlldywgaW1wbCwgZmFsc2UpOwogCi0g
ICAgaW1wbC0+cGFnZSgpLT5mdWxsU2NyZWVuTWFuYWdlcigpLT5yZXF1ZXN0RXhpdEZ1bGxTY3Jl
ZW4oKTsKKyAgICBXS1ZpZXdFeGl0RnVsbFNjcmVlbihpbXBsLT53a1ZpZXcoKSk7CiAKICAgICBy
ZXR1cm4gdHJ1ZTsKICNlbHNlCkBAIC01MTAsOSArNTA2LDggQEAgc3RhdGljIHZvaWQgZXdrVmll
d1BhZ2VDb250ZW50c0NhbGxiYWNrKFdLRGF0YVJlZiB3a0RhdGEsIFdLRXJyb3JSZWYsIHZvaWQq
IGNvbnQKIHsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTihjb250ZXh0KTsKIAotICAg
IFJlZlB0cjxXZWJEYXRhPiB3ZWJEYXRhID0gdG9JbXBsKHdrRGF0YSk7CiAgICAgRXdrX1BhZ2Vf
Q29udGVudHNfQ29udGV4dCogY29udGVudHNDb250ZXh0PSBzdGF0aWNfY2FzdDxFd2tfUGFnZV9D
b250ZW50c19Db250ZXh0Kj4oY29udGV4dCk7Ci0gICAgY29udGVudHNDb250ZXh0LT5jYWxsYmFj
ayhjb250ZW50c0NvbnRleHQtPnR5cGUsIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KHdl
YkRhdGEtPmJ5dGVzKCkpKTsKKyAgICBjb250ZW50c0NvbnRleHQtPmNhbGxiYWNrKGNvbnRlbnRz
Q29udGV4dC0+dHlwZSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oV0tEYXRhR2V0Qnl0
ZXMod2tEYXRhKSkpOwogCiAgICAgZGVsZXRlIGNvbnRlbnRzQ29udGV4dDsKIH0KQEAgLTUzMCw3
ICs1MjUsNyBAQCBFaW5hX0Jvb2wgZXdrX3ZpZXdfcGFnZV9jb250ZW50c19nZXQoY29uc3QgRXZh
c19PYmplY3QqIGV3a1ZpZXcsIEV3a19QYWdlX0NvbnRlbgogICAgIGNvbnRleHQtPnR5cGUgPSB0
eXBlOwogICAgIGNvbnRleHQtPmNhbGxiYWNrID0gY2FsbGJhY2s7CiAKLSAgICBpbXBsLT5wYWdl
KCktPmdldENvbnRlbnRzQXNNSFRNTERhdGEoRGF0YUNhbGxiYWNrOjpjcmVhdGUoY29udGV4dCwg
ZXdrVmlld1BhZ2VDb250ZW50c0NhbGxiYWNrKSwgZmFsc2UpOworICAgIFdLUGFnZUdldENvbnRl
bnRzQXNNSFRNTERhdGEoaW1wbC0+d2tQYWdlKCksIGZhbHNlLCBjb250ZXh0LCBld2tWaWV3UGFn
ZUNvbnRlbnRzQ2FsbGJhY2spOwogCiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC01MzksNyArNTM0
LDcgQEAgRWluYV9Cb29sIGV3a192aWV3X3NvdXJjZV9tb2RlX3NldChFdmFzX09iamVjdCogZXdr
VmlldywgRWluYV9Cb29sIGVuYWJsZWQpCiB7CiAgICAgRVdLX1ZJRVdfSU1QTF9HRVRfT1JfUkVU
VVJOKGV3a1ZpZXcsIGltcGwsIGZhbHNlKTsKIAotICAgIGltcGwtPnBhZ2UoKS0+c2V0TWFpbkZy
YW1lSW5WaWV3U291cmNlTW9kZShlbmFibGVkKTsKKyAgICBXS1ZpZXdTZXRTaG93c0FzU291cmNl
KGltcGwtPndrVmlldygpLCBlbmFibGVkKTsKIAogICAgIHJldHVybiB0cnVlOwogfQpAQCAtNTQ4
LDUgKzU0Myw1IEBAIEVpbmFfQm9vbCBld2tfdmlld19zb3VyY2VfbW9kZV9nZXQoY29uc3QgRXZh
c19PYmplY3QqIGV3a1ZpZXcpCiB7CiAgICAgRVdLX1ZJRVdfSU1QTF9HRVRfT1JfUkVUVVJOKGV3
a1ZpZXcsIGltcGwsIGZhbHNlKTsKIAotICAgIHJldHVybiBpbXBsLT5wYWdlKCktPm1haW5GcmFt
ZUluVmlld1NvdXJjZU1vZGUoKTsKKyAgICByZXR1cm4gV0tWaWV3R2V0U2hvd3NBc1NvdXJjZShp
bXBsLT53a1ZpZXcoKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
ZWZsL1dlYlZpZXcuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJWaWV3LmNw
cAppbmRleCAzYWI0ZmQ0Li43ZWM4N2I5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvZWZsL1dlYlZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwv
V2ViVmlldy5jcHAKQEAgLTExOCw2ICsxMTgsMjMgQEAgdm9pZCBXZWJWaWV3OjpyZXN1bWVBY3Rp
dmVET01PYmplY3RzQW5kQW5pbWF0aW9ucygpCiAgICAgbV9wYWdlLT5yZXN1bWVBY3RpdmVET01P
YmplY3RzQW5kQW5pbWF0aW9ucygpOwogfQogCit2b2lkIFdlYlZpZXc6OnNldFNob3dzQXNTb3Vy
Y2UoYm9vbCBzaG93c0FzU291cmNlKQoreworICAgIG1fcGFnZS0+c2V0TWFpbkZyYW1lSW5WaWV3
U291cmNlTW9kZShzaG93c0FzU291cmNlKTsKK30KKworYm9vbCBXZWJWaWV3OjpzaG93c0FzU291
cmNlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wYWdlLT5tYWluRnJhbWVJblZpZXdTb3VyY2VN
b2RlKCk7Cit9CisKKyNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCit2b2lkIFdlYlZpZXc6OmV4
aXRGdWxsU2NyZWVuKCkKK3sKKyAgICBtX3BhZ2UtPmZ1bGxTY3JlZW5NYW5hZ2VyKCktPnJlcXVl
c3RFeGl0RnVsbFNjcmVlbigpOworfQorI2VuZGlmCisKIHZvaWQgV2ViVmlldzo6aW5pdGlhbGl6
ZUNsaWVudChjb25zdCBXS1ZpZXdDbGllbnQqIGNsaWVudCkKIHsKICAgICBtX2NsaWVudC5pbml0
aWFsaXplKGNsaWVudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZs
L1dlYlZpZXcuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViVmlldy5oCmluZGV4
IGFiMjI4YjAuLjQ0ZWU5ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9l
ZmwvV2ViVmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViVmlldy5o
CkBAIC02NCw2ICs2NCwxMyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzdXNwZW5kQWN0aXZlRE9NT2Jq
ZWN0c0FuZEFuaW1hdGlvbnMoKTsKICAgICB2b2lkIHJlc3VtZUFjdGl2ZURPTU9iamVjdHNBbmRB
bmltYXRpb25zKCk7CiAKKyAgICB2b2lkIHNldFNob3dzQXNTb3VyY2UoYm9vbCk7CisgICAgYm9v
bCBzaG93c0FzU291cmNlKCkgY29uc3Q7CisKKyNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCisg
ICAgdm9pZCBleGl0RnVsbFNjcmVlbigpOworI2VuZGlmCisKICAgICAvLyBWaWV3IGNsaWVudC4K
ICAgICB2b2lkIGluaXRpYWxpemVDbGllbnQoY29uc3QgV0tWaWV3Q2xpZW50Kik7CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>