<?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>106021</bug_id>
          
          <creation_ts>2013-01-03 10:14:42 -0800</creation_ts>
          <short_desc>[Chromium] Add support for emulating legacy Android WebView &apos;UseWideViewport&apos; setting</short_desc>
          <delta_ts>2013-03-05 14:12:53 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Android</rep_platform>
          <op_sys>Android</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mikhail Naganov">mnaganov</reporter>
          <assigned_to name="Mikhail Naganov">mnaganov</assigned_to>
          <cc>abarth</cc>
    
    <cc>aelias</cc>
    
    <cc>benm</cc>
    
    <cc>dglazkov</cc>
    
    <cc>fsamuel</cc>
    
    <cc>jamesr</cc>
    
    <cc>laszlo.gombos</cc>
    
    <cc>noel.gordon</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>799446</commentid>
    <comment_count>0</comment_count>
    <who name="Mikhail Naganov">mnaganov</who>
    <bug_when>2013-01-03 10:14:42 -0800</bug_when>
    <thetext>Android WebView contains a setting called &apos;UseWideViewport&apos;. It is processed in the following way: if the value is &apos;false&apos;, then page&apos;s &apos;meta viewport&apos; tag is ignored and layout width is set to the device width in CSS pixels. If the value is &apos;true&apos;, then if the page doesn&apos;t have the &apos;meta viewport&apos; tag, layout width is set to 980px, otherwise the specified width value is used.

The current code of Chromium port has a boolean setting named &apos;viewportEnabled&apos;. Setting it to &apos;true&apos; produces behavior similar to having &apos;UseWideViewport&apos; set to &apos;true&apos;. But having &apos;viewportEnabled&apos; set to &apos;false&apos; sets layout width to the device width in physical pixels. To overcome this, we can convert &apos;viewportEnabled&apos; into a 3-way switch, where the new 3rd value specifies to ignore page&apos;s &apos;meta viewport&apos; tag, but set layout width to the device width in CSS pixels.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>799450</commentid>
    <comment_count>1</comment_count>
      <attachid>181184</attachid>
    <who name="Mikhail Naganov">mnaganov</who>
    <bug_when>2013-01-03 10:17:48 -0800</bug_when>
    <thetext>Created attachment 181184
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>799522</commentid>
    <comment_count>2</comment_count>
      <attachid>181184</attachid>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2013-01-03 11:39:59 -0800</bug_when>
    <thetext>Comment on attachment 181184
WIP

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

I don&apos;t think we need a third value.  Just make the &quot;disabled&quot; setting have the behavior you want.  I don&apos;t see any significant difference between what WebView wants and the desktop behavior.  The issue is just confused because of deviceScaleFactor coordinate space issues.  This will get cleaned up and converged between platforms over time when we move to applying device scale factor in the compositor on Android as well.  (Currently, Android&apos;s WebViewImpl::m_size is in physical pixels but ChromeOS&apos;s is in CSS pixels.)

&gt; Source/WebKit/chromium/src/ChromeClientImpl.cpp:639
&gt; +        effectiveFallbackWidth = std::max(settings-&gt;layoutFallbackWidth(), dpiIndependentViewportWidth);

Are you sure settings-&gt;layoutFallbackWidth() ends up being 980 since you never set it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>800237</commentid>
    <comment_count>3</comment_count>
      <attachid>181307</attachid>
    <who name="Mikhail Naganov">mnaganov</who>
    <bug_when>2013-01-04 09:04:29 -0800</bug_when>
    <thetext>Created attachment 181307
Patch

Thanks for the suggestion, Alexandre! I&apos;ve updated the patch.

As for the fallback setting code I&apos;m removing -- the default value for &apos;LayoutFallbackWidth&apos; is set in Source/WebCore/page/Settings.in to 980. The code I&apos;m removing actually violates the usage pattern of WebCore settings, as they should be updated by the embedder. For example, in the case when the embedder sets LayoutFallbackWidth to a non-default value, the aforementioned code will just reset it with its own value, which seems to be unacceptable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>800428</commentid>
    <comment_count>4</comment_count>
      <attachid>181307</attachid>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2013-01-04 11:26:19 -0800</bug_when>
    <thetext>Comment on attachment 181307
Patch

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

&gt; Source/WebKit/chromium/src/ChromeClientImpl.cpp:634
&gt; +    int dpiIndependentViewportWidth = m_webView-&gt;size().width / devicePixelRatio;

For this, please add a new method:

FloatSize WebViewImpl::dpiIndependentSize() const;

And this method should return just m_size if the setting applyDeviceScaleInCompositor is true.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>801260</commentid>
    <comment_count>5</comment_count>
      <attachid>181500</attachid>
    <who name="Mikhail Naganov">mnaganov</who>
    <bug_when>2013-01-07 06:40:02 -0800</bug_when>
    <thetext>Created attachment 181500
Factored out dpiIndependentSize

&gt; For this, please add a new method:
&gt;
&gt; FloatSize WebViewImpl::dpiIndependentSize() const;
&gt;
&gt; And this method should return just m_size if the setting applyDeviceScaleInCompositor is true.

Done. But I can&apos;t add it to the WebView.h interface since FloatSize is a WebCore type. There is no corresponding type in the public API. The closest ones are WebFloatPoint and WebFloatRect. Do you think it&apos;s OK to leave this method to be impl-only? Or perhaps we should clamp up floats and return WebSize?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>801334</commentid>
    <comment_count>6</comment_count>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2013-01-07 09:24:51 -0800</bug_when>
    <thetext>Let&apos;s leave it WebViewImpl-only (and non-virtual) as it&apos;s not for use from the Chromium tree.

Adding abarth@ for WebKit review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>801503</commentid>
    <comment_count>7</comment_count>
      <attachid>181500</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-01-07 11:52:46 -0800</bug_when>
    <thetext>Comment on attachment 181500
Factored out dpiIndependentSize

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

&gt; Source/WebKit/chromium/src/ChromeClientImpl.cpp:637
&gt; +        Settings* settings = m_webView-&gt;page()-&gt;settings();

I&apos;d skip creating this temporary.  There isn&apos;t an 80 column limit in WebKit.

&gt; Source/WebKit/chromium/src/WebViewImpl.cpp:3125
&gt; +WebCore::FloatSize WebViewImpl::dpiIndependentSize() const

The term dpiIndependent is confusing to me.  Is there some terminology on http://trac.webkit.org/wiki/ScalesAndZooms that accurately captures what you&apos;re trying to express here?  For example, is this quantity a number of physical pixels, logical pixels, or CSS pixels?

In general, I&apos;d like to remove the notion of &quot;DPI&quot; from this code as much as possible.  We should be talking in terms of scale factors between different coordinate spaces.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>801541</commentid>
    <comment_count>8</comment_count>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2013-01-07 12:19:31 -0800</bug_when>
    <thetext>It&apos;s &quot;logical pixels&quot;.  We can change it to logicalSize() if you prefer.

We haven&apos;t been using the term &quot;logical pixels&quot; anywhere outside that document yet.  In Chromium land it&apos;s called &quot;DIP pixels&quot; (for Device Independent Pixels).

Note that this is somewhat transitional, as I&apos;m hoping that eventually we can move to a model where WebKit doesn&apos;t hear about physical pixels at all.  Chromium would tell it everything in logical pixels and CC would take care the conversion to physical pixels.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>801548</commentid>
    <comment_count>9</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-01-07 12:33:13 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; It&apos;s &quot;logical pixels&quot;.  We can change it to logicalSize() if you prefer.
&gt; 
&gt; We haven&apos;t been using the term &quot;logical pixels&quot; anywhere outside that document yet.  In Chromium land it&apos;s called &quot;DIP pixels&quot; (for Device Independent Pixels).

Maybe it would be easier to name &quot;logical pixels&quot; to &quot;DIP pixels&quot; in the ScalesAndZooms page instead?

&gt; Note that this is somewhat transitional, as I&apos;m hoping that eventually we can move to a model where WebKit doesn&apos;t hear about physical pixels at all.  Chromium would tell it everything in logical pixels and CC would take care the conversion to physical pixels.

Understood.  I would still like to use a consistent terminology even during the transition.  I don&apos;t have much of an opinion about what that terminology should be, I&apos;d like to be consistent.  :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>801550</commentid>
    <comment_count>10</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-01-07 12:33:45 -0800</bug_when>
    <thetext>&gt; Maybe it would be easier to name &quot;logical pixels&quot; to &quot;DIP pixels&quot; in the ScalesAndZooms page instead?

s/name/change/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>801554</commentid>
    <comment_count>11</comment_count>
      <attachid>181500</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-01-07 12:35:37 -0800</bug_when>
    <thetext>Comment on attachment 181500
Factored out dpiIndependentSize

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

Seems fine apart from naming nits.

&gt; Source/WebKit/chromium/src/WebViewImpl.cpp:-1592
&gt; -        const int standardFallbackWidth = 980;
&gt; -        int dpiIndependentViewportWidth = newSize.width / page()-&gt;deviceScaleFactor();
&gt; -        settings()-&gt;setLayoutFallbackWidth(std::max(standardFallbackWidth, dpiIndependentViewportWidth));

What happened to this code?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>801560</commentid>
    <comment_count>12</comment_count>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2013-01-07 12:41:45 -0800</bug_when>
    <thetext>OK, let&apos;s go with DIPSize() as that will be clearer to ChromeOS folks, and change the doc.  Actually, it seems that DIP stands for Density Independent Pixel.

&gt; &gt; Source/WebKit/chromium/src/WebViewImpl.cpp:-1592
&gt; &gt; -        const int standardFallbackWidth = 980;
&gt; &gt; -        int dpiIndependentViewportWidth = newSize.width / page()-&gt;deviceScaleFactor();
&gt; &gt; -        settings()-&gt;setLayoutFallbackWidth(std::max(standardFallbackWidth, dpiIndependentViewportWidth));
&gt; 
&gt; What happened to this code?

It&apos;s no longer needed, since it turns out that our only use of layoutFallbackWidth was in dispatchViewportPropertiesDidChange anyway.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>802173</commentid>
    <comment_count>13</comment_count>
      <attachid>181677</attachid>
    <who name="Mikhail Naganov">mnaganov</who>
    <bug_when>2013-01-08 02:50:13 -0800</bug_when>
    <thetext>Created attachment 181677
Comments addressed

I addressed all the comments and renamed &quot;logical pixels&quot; to &quot;DIP pixels&quot; on the wiki page</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>802415</commentid>
    <comment_count>14</comment_count>
      <attachid>181677</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-01-08 11:15:46 -0800</bug_when>
    <thetext>Comment on attachment 181677
Comments addressed

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

&gt; Source/WebKit/chromium/src/WebViewImpl.cpp:3123
&gt; +WebCore::FloatSize WebViewImpl::DIPSize() const

nit: DIPSize -&gt; dipSize

WebKit uses lower case for initial acronyms.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>803140</commentid>
    <comment_count>15</comment_count>
      <attachid>181874</attachid>
    <who name="Mikhail Naganov">mnaganov</who>
    <bug_when>2013-01-09 01:35:10 -0800</bug_when>
    <thetext>Created attachment 181874
s/DIPSize/dipSize/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>803146</commentid>
    <comment_count>16</comment_count>
    <who name="Mikhail Naganov">mnaganov</who>
    <bug_when>2013-01-09 01:39:33 -0800</bug_when>
    <thetext>Committed r139177: &lt;http://trac.webkit.org/changeset/139177&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>803225</commentid>
    <comment_count>17</comment_count>
    <who name="noel gordon">noel.gordon</who>
    <bug_when>2013-01-09 04:30:34 -0800</bug_when>
    <thetext>http://build.webkit.org/builders/Chromium%20Win%20Release%20%28Tests%29/builds/32529

viewport webkit-unit-tests started failing with this change, expected?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>803232</commentid>
    <comment_count>18</comment_count>
    <who name="Mikhail Naganov">mnaganov</who>
    <bug_when>2013-01-09 04:45:44 -0800</bug_when>
    <thetext>(In reply to comment #17)
&gt; http://build.webkit.org/builders/Chromium%20Win%20Release%20%28Tests%29/builds/32529
&gt; 
&gt; viewport webkit-unit-tests started failing with this change, expected?

Thanks for a heads-up! Perhaps, the test needs some adjustment. Let me check that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>803293</commentid>
    <comment_count>19</comment_count>
    <who name="Mikhail Naganov">mnaganov</who>
    <bug_when>2013-01-09 06:31:03 -0800</bug_when>
    <thetext>I&apos;ve made a speculative fix to WebFrameTest.DivAutoZoomParamsTest by moving the line that enables fixed layout after lines that set size and scale of the WebView:

http://trac.webkit.org/changeset/139187

Although, I must admit, I don&apos;t know all the scenarios of viewport and fixed layout usage. The change that I&apos;ve made to ChromeClientImpl makes dispatchViewportPropertiesDidChange to be executed when &apos;enableViewport&apos; is false. In Chrome for Android, we have both viewport and fixed layout enabled, while WebFrameTests only enable fixed layout.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>181184</attachid>
            <date>2013-01-03 10:17:48 -0800</date>
            <delta_ts>2013-01-04 09:04:29 -0800</delta_ts>
            <desc>WIP</desc>
            <filename>wk-106021.patch</filename>
            <type>text/plain</type>
            <size>9017</size>
            <attacher name="Mikhail Naganov">mnaganov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggYmEzMmJiMC4uNTRhYWZlMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxMy0wMS0wMyAgTWlraGFpbCBO
YWdhbm92ICA8bW5hZ2Fub3ZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtDaHJvbWl1bV0gQWRk
IHN1cHBvcnQgZm9yIGVtdWxhdGluZyBsZWdhY3kgQW5kcm9pZCBXZWJWaWV3ICdVc2VXaWRlVmll
d3BvcnQnIHNldHRpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEwNjAyMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogcHVibGljL1dlYlNldHRpbmdzLmg6CisgICAgICAgIChXZWJTZXR0aW5ncyk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlNldHRpbmdzOjp2aWV3cG9ydEVuYWJsZWQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJTZXR0aW5nczo6c2V0Vmlld3BvcnRFbmFibGVkKToKKyAgICAgICAgKiBzcmMv
Q2hyb21lQ2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudEltcGw6
OmRpc3BhdGNoVmlld3BvcnRQcm9wZXJ0aWVzRGlkQ2hhbmdlKToKKyAgICAgICAgKiBzcmMvV2Vi
U2V0dGluZ3NJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViU2V0dGluZ3NJbXBsOjpXZWJT
ZXR0aW5nc0ltcGwpOgorICAgICAgICAoV2ViS2l0OjpXZWJTZXR0aW5nc0ltcGw6OnNldFZpZXdw
b3J0TW9kZSk6CisgICAgICAgICogc3JjL1dlYlNldHRpbmdzSW1wbC5oOgorICAgICAgICAoV2Vi
S2l0OjpXZWJTZXR0aW5nc0ltcGw6OnZpZXdwb3J0TW9kZSk6CisgICAgICAgIChXZWJTZXR0aW5n
c0ltcGwpOgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYlZpZXdJbXBsOjpyZXNpemUpOgorCiAyMDEzLTAxLTAyICBLZW5uZXRoIFJ1c3NlbGwgIDxr
YnJAZ29vZ2xlLmNvbT4KIAogICAgICAgICBbY2hyb21pdW1dIENyZWF0aW9uIG9mIGRlZGljYXRl
ZCB3b3JrZXJzIChpc29sYXRlcykgbGVha3MgcmVmZXJlbmNlIHRvIEhUTUxEb2N1bWVudApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2V0dGluZ3MuaCBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNldHRpbmdzLmgKaW5kZXggZGQ4MDRmNS4u
YTc4NmFkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2V0
dGluZ3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTZXR0aW5ncy5o
CkBAIC01MCw5ICs1MCwxNCBAQCBwdWJsaWM6CiAgICAgICAgIEVkaXRpbmdCZWhhdmlvcldpbiwK
ICAgICAgICAgRWRpdGluZ0JlaGF2aW9yVW5peAogICAgIH07CisgICAgZW51bSBWaWV3cG9ydE1v
ZGUgeworICAgICAgICBWaWV3cG9ydERpc2FibGVkLAorICAgICAgICBWaWV3cG9ydERpc2FibGVk
VXNlU2NhbGVkV2lkdGgsCisgICAgICAgIFZpZXdwb3J0RW5hYmxlZCwKKyAgICB9OwogCiAgICAg
dmlydHVhbCBib29sIHNjcm9sbEFuaW1hdG9yRW5hYmxlZCgpIGNvbnN0ID0gMDsKLSAgICB2aXJ0
dWFsIGJvb2wgdmlld3BvcnRFbmFibGVkKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgVmlld3Bv
cnRNb2RlIHZpZXdwb3J0TW9kZSgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0QWNj
ZWxlcmF0ZWQyZENhbnZhc0VuYWJsZWQoYm9vbCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRB
Y2NlbGVyYXRlZEFuaW1hdGlvbkVuYWJsZWQoYm9vbCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBz
ZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZChib29sKSA9IDA7CkBAIC0xNjMsNyArMTY4
LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRVc2VzRW5jb2RpbmdEZXRlY3Rvcihi
b29sKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldFVzZXNQYWdlQ2FjaGUoYm9vbCkgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCBzZXRWYWxpZGF0aW9uTWVzc2FnZVRpbWVyTWFnbmlmaWNhdGlvbihp
bnQpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0Vmlld3BvcnRFbmFibGVkKGJvb2wpID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgc2V0Vmlld3BvcnRNb2RlKFZpZXdwb3J0TW9kZSkgPSAwOwogICAg
IHZpcnR1YWwgdm9pZCBzZXRWaXN1YWxXb3JkTW92ZW1lbnRFbmFibGVkKGJvb2wpID0gMDsKICAg
ICB2aXJ0dWFsIHZvaWQgc2V0V2ViQXVkaW9FbmFibGVkKGJvb2wpID0gMDsKICAgICB2aXJ0dWFs
IHZvaWQgc2V0V2ViR0xFcnJvcnNUb0NvbnNvbGVFbmFibGVkKGJvb2wpID0gMDsKQEAgLTE3Niw2
ICsxODEsMTAgQEAgcHVibGljOgogICAgIC8vIERFUFJFQ0FURUQKICAgICB2b2lkIHNldEV4cGVy
aW1lbnRhbENTU1JlZ2lvbnNFbmFibGVkKGJvb2wpIHsgfQogCisgICAgLy8gREVQUkVDQVRFRAor
ICAgIGJvb2wgdmlld3BvcnRFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gdmlld3BvcnRNb2RlKCkg
PT0gVmlld3BvcnRFbmFibGVkOyB9CisgICAgdm9pZCBzZXRWaWV3cG9ydEVuYWJsZWQoYm9vbCBl
bmFibGVkKSB7IHNldFZpZXdwb3J0TW9kZShlbmFibGVkID8gVmlld3BvcnRFbmFibGVkIDogVmll
d3BvcnREaXNhYmxlZCk7IH0KKwogcHJvdGVjdGVkOgogICAgIH5XZWJTZXR0aW5ncygpIHsgfQog
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudElt
cGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAK
aW5kZXggMjFkYmY0MC4uNGRhYTAxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAKQEAgLTYyMCw3ICs2MjAsNyBAQCB2b2lkIENocm9tZUNs
aWVudEltcGw6OnNldFRvb2xUaXAoY29uc3QgU3RyaW5nJiB0b29sdGlwVGV4dCwgVGV4dERpcmVj
dGlvbiBkaXIpCiB2b2lkIENocm9tZUNsaWVudEltcGw6OmRpc3BhdGNoVmlld3BvcnRQcm9wZXJ0
aWVzRGlkQ2hhbmdlKGNvbnN0IFZpZXdwb3J0QXJndW1lbnRzJiBhcmd1bWVudHMpIGNvbnN0CiB7
CiAjaWYgRU5BQkxFKFZJRVdQT1JUKQotICAgIGlmICghbV93ZWJWaWV3LT5zZXR0aW5ncygpLT52
aWV3cG9ydEVuYWJsZWQoKSB8fCAhbV93ZWJWaWV3LT5pc0ZpeGVkTGF5b3V0TW9kZUVuYWJsZWQo
KSB8fCAhbV93ZWJWaWV3LT5jbGllbnQoKSB8fCAhbV93ZWJWaWV3LT5wYWdlKCkpCisgICAgaWYg
KG1fd2ViVmlldy0+c2V0dGluZ3MoKS0+dmlld3BvcnRNb2RlKCkgPT0gV2ViU2V0dGluZ3M6OlZp
ZXdwb3J0RGlzYWJsZWQgfHwgIW1fd2ViVmlldy0+aXNGaXhlZExheW91dE1vZGVFbmFibGVkKCkg
fHwgIW1fd2ViVmlldy0+Y2xpZW50KCkgfHwgIW1fd2ViVmlldy0+cGFnZSgpKQogICAgICAgICBy
ZXR1cm47CiAKICAgICBXZWJWaWV3Q2xpZW50KiBjbGllbnQgPSBtX3dlYlZpZXctPmNsaWVudCgp
OwpAQCAtNjMxLDkgKzYzMSwyMCBAQCB2b2lkIENocm9tZUNsaWVudEltcGw6OmRpc3BhdGNoVmll
d3BvcnRQcm9wZXJ0aWVzRGlkQ2hhbmdlKGNvbnN0IFZpZXdwb3J0QXJndW1lbgogCiAgICAgU2V0
dGluZ3MqIHNldHRpbmdzID0gbV93ZWJWaWV3LT5wYWdlKCktPnNldHRpbmdzKCk7CiAgICAgZmxv
YXQgZGV2aWNlUGl4ZWxSYXRpbyA9IGNsaWVudC0+c2NyZWVuSW5mbygpLmRldmljZVNjYWxlRmFj
dG9yOworICAgIGludCBkcGlJbmRlcGVuZGVudFZpZXdwb3J0V2lkdGggPSBtX3dlYlZpZXctPnNp
emUoKS53aWR0aCAvIGRldmljZVBpeGVsUmF0aW87CisgICAgVmlld3BvcnRBcmd1bWVudHMgZWZm
ZWN0aXZlVmlld3BvcnRBcmd1bWVudHM7CisgICAgaW50IGVmZmVjdGl2ZUZhbGxiYWNrV2lkdGg7
CisgICAgaWYgKG1fd2ViVmlldy0+c2V0dGluZ3MoKS0+dmlld3BvcnRNb2RlKCkgPT0gV2ViU2V0
dGluZ3M6OlZpZXdwb3J0RW5hYmxlZCkgeworICAgICAgICBlZmZlY3RpdmVWaWV3cG9ydEFyZ3Vt
ZW50cyA9IGFyZ3VtZW50czsKKyAgICAgICAgZWZmZWN0aXZlRmFsbGJhY2tXaWR0aCA9IHN0ZDo6
bWF4KHNldHRpbmdzLT5sYXlvdXRGYWxsYmFja1dpZHRoKCksIGRwaUluZGVwZW5kZW50Vmlld3Bv
cnRXaWR0aCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgLy8gV2ViU2V0dGluZ3M6OlZpZXdwb3J0
RGlzYWJsZWRVc2VTY2FsZWRXaWR0aAorICAgICAgICBlZmZlY3RpdmVWaWV3cG9ydEFyZ3VtZW50
cyA9IFZpZXdwb3J0QXJndW1lbnRzKCk7CisgICAgICAgIGVmZmVjdGl2ZUZhbGxiYWNrV2lkdGgg
PSBkcGlJbmRlcGVuZGVudFZpZXdwb3J0V2lkdGg7CisgICAgfQogICAgIC8vIENhbGwgdGhlIGNv
bW1vbiB2aWV3cG9ydCBjb21wdXRpbmcgbG9naWMgaW4gVmlld3BvcnRBcmd1bWVudHMuY3BwLgog
ICAgIFZpZXdwb3J0QXR0cmlidXRlcyBjb21wdXRlZCA9IGNvbXB1dGVWaWV3cG9ydEF0dHJpYnV0
ZXMoCi0gICAgICAgIGFyZ3VtZW50cywgc2V0dGluZ3MtPmxheW91dEZhbGxiYWNrV2lkdGgoKSwg
ZGV2aWNlU2l6ZS53aWR0aCwgZGV2aWNlU2l6ZS5oZWlnaHQsCisgICAgICAgIGVmZmVjdGl2ZVZp
ZXdwb3J0QXJndW1lbnRzLCBlZmZlY3RpdmVGYWxsYmFja1dpZHRoLCBkZXZpY2VTaXplLndpZHRo
LCBkZXZpY2VTaXplLmhlaWdodCwKICAgICAgICAgZGV2aWNlUGl4ZWxSYXRpbywgSW50U2l6ZShk
ZXZpY2VTaXplLndpZHRoLCBkZXZpY2VTaXplLmhlaWdodCkpOwogCiAgICAgcmVzdHJpY3RTY2Fs
ZUZhY3RvclRvSW5pdGlhbFNjYWxlSWZOb3RVc2VyU2NhbGFibGUoY29tcHV0ZWQpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5jcHAKaW5kZXggZjYyMTcx
OC4uNDcxMWNkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0
dGluZ3NJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5n
c0ltcGwuY3BwCkBAIC01Myw3ICs1Myw3IEBAIFdlYlNldHRpbmdzSW1wbDo6V2ViU2V0dGluZ3NJ
bXBsKFNldHRpbmdzKiBzZXR0aW5ncykKICAgICAsIG1fc2hvd1BhaW50UmVjdHMoZmFsc2UpCiAg
ICAgLCBtX3JlbmRlclZTeW5jRW5hYmxlZCh0cnVlKQogICAgICwgbV9sb3dMYXRlbmN5UmVuZGVy
aW5nRW5hYmxlZChmYWxzZSkKLSAgICAsIG1fdmlld3BvcnRFbmFibGVkKGZhbHNlKQorICAgICwg
bV92aWV3cG9ydE1vZGUoVmlld3BvcnREaXNhYmxlZCkKICAgICAsIG1fYXBwbHlEZXZpY2VTY2Fs
ZUZhY3RvckluQ29tcG9zaXRvcihmYWxzZSkKICAgICAsIG1fZ2VzdHVyZVRhcEhpZ2hsaWdodEVu
YWJsZWQodHJ1ZSkKICAgICAsIG1fYXV0b1pvb21Gb2N1c2VkTm9kZVRvTGVnaWJsZVNjYWxlKGZh
bHNlKQpAQCAtNjg0LDkgKzY4NCw5IEBAIHZvaWQgV2ViU2V0dGluZ3NJbXBsOjpzZXRGaXhlZFBv
c2l0aW9uQ3JlYXRlc1N0YWNraW5nQ29udGV4dChib29sIGNyZWF0ZXMpCiAgICAgbV9zZXR0aW5n
cy0+c2V0Rml4ZWRQb3NpdGlvbkNyZWF0ZXNTdGFja2luZ0NvbnRleHQoY3JlYXRlcyk7CiB9CiAK
LXZvaWQgV2ViU2V0dGluZ3NJbXBsOjpzZXRWaWV3cG9ydEVuYWJsZWQoYm9vbCBlbmFibGVkKQor
dm9pZCBXZWJTZXR0aW5nc0ltcGw6OnNldFZpZXdwb3J0TW9kZShXZWJTZXR0aW5nczo6Vmlld3Bv
cnRNb2RlIHZpZXdwb3J0TW9kZSkKIHsKLSAgICBtX3ZpZXdwb3J0RW5hYmxlZCA9IGVuYWJsZWQ7
CisgICAgbV92aWV3cG9ydE1vZGUgPSB2aWV3cG9ydE1vZGU7CiB9CiAKIHZvaWQgV2ViU2V0dGlu
Z3NJbXBsOjpzZXREZWZhdWx0VGlsZVNpemUoV2ViU2l6ZSBzaXplKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmggYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuaAppbmRleCAxOGZiYzJhLi5kMjk2ZGMxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuaApAQCAtNDYs
NyArNDYsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGJvb2wgZGV2aWNlU3VwcG9ydHNUb3Vj
aCgpOwogICAgIHZpcnR1YWwgYm9vbCBzY3JvbGxBbmltYXRvckVuYWJsZWQoKSBjb25zdDsKLSAg
ICB2aXJ0dWFsIGJvb2wgdmlld3BvcnRFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV92aWV3cG9y
dEVuYWJsZWQ7IH0KKyAgICB2aXJ0dWFsIFZpZXdwb3J0TW9kZSB2aWV3cG9ydE1vZGUoKSBjb25z
dCB7IHJldHVybiBtX3ZpZXdwb3J0TW9kZTsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRBY2NlbGVy
YXRlZDJkQ2FudmFzRW5hYmxlZChib29sKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0QWNjZWxlcmF0
ZWRBbmltYXRpb25FbmFibGVkKGJvb2wpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRBY2NlbGVyYXRl
ZENvbXBvc2l0aW5nRW5hYmxlZChib29sKTsKQEAgLTE2MCw3ICsxNjAsNyBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB2b2lkIHNldFVzZXNFbmNvZGluZ0RldGVjdG9yKGJvb2wpOwogICAgIHZpcnR1
YWwgdm9pZCBzZXRVc2VzUGFnZUNhY2hlKGJvb2wpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRWYWxp
ZGF0aW9uTWVzc2FnZVRpbWVyTWFnbmlmaWNhdGlvbihpbnQpOwotICAgIHZpcnR1YWwgdm9pZCBz
ZXRWaWV3cG9ydEVuYWJsZWQoYm9vbCk7CisgICAgdmlydHVhbCB2b2lkIHNldFZpZXdwb3J0TW9k
ZShWaWV3cG9ydE1vZGUpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRWaXN1YWxXb3JkTW92ZW1lbnRF
bmFibGVkKGJvb2wpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRXZWJBdWRpb0VuYWJsZWQoYm9vbCk7
CiAgICAgdmlydHVhbCB2b2lkIHNldFdlYkdMRXJyb3JzVG9Db25zb2xlRW5hYmxlZChib29sKTsK
QEAgLTE4OSw3ICsxODksNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9zaG93UGFpbnRSZWN0czsK
ICAgICBib29sIG1fcmVuZGVyVlN5bmNFbmFibGVkOwogICAgIGJvb2wgbV9sb3dMYXRlbmN5UmVu
ZGVyaW5nRW5hYmxlZDsKLSAgICBib29sIG1fdmlld3BvcnRFbmFibGVkOworICAgIFZpZXdwb3J0
TW9kZSBtX3ZpZXdwb3J0TW9kZTsKICAgICBib29sIG1fYXBwbHlEZXZpY2VTY2FsZUZhY3Rvcklu
Q29tcG9zaXRvcjsKICAgICBib29sIG1fZ2VzdHVyZVRhcEhpZ2hsaWdodEVuYWJsZWQ7CiAgICAg
Ym9vbCBtX2F1dG9ab29tRm9jdXNlZE5vZGVUb0xlZ2libGVTY2FsZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAppbmRleCBhMDVjMmYwLi5mNDI5ODRjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCkBAIC0xNTgyLDE1ICsx
NTgyLDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6cmVzaXplKGNvbnN0IFdlYlNpemUmIG5ld1NpemUp
CiAgICAgbV9zaXplID0gbmV3U2l6ZTsKIAogI2lmIEVOQUJMRShWSUVXUE9SVCkKLSAgICBpZiAo
c2V0dGluZ3MoKS0+dmlld3BvcnRFbmFibGVkKCkpIHsKLSAgICAgICAgLy8gRmFsbGJhY2sgd2lk
dGggaXMgdXNlZCB0byBsYXlvdXQgc2l0ZXMgZGVzaWduZWQgZm9yIGRlc2t0b3AuIFRoZQotICAg
ICAgICAvLyBjb252ZW50aW9uYWwgc2l6ZSB1c2VkIGJ5IGFsbCBtb2JpbGUgYnJvd3NlcnMgaXMg
OTgwLiBXaGVuIGEgbW9iaWxlCi0gICAgICAgIC8vIGRldmljZSBoYXMgYSBwYXJ0aWN1bGFybHkg
d2lkZSBzY3JlZW4gKHN1Y2ggYXMgYSAxMCIgdGFibGV0IGhlbGQgaW4KLSAgICAgICAgLy8gbGFu
ZHNjYXBlKSwgaXQgY2FuIGJlIGxhcmdlci4KLSAgICAgICAgY29uc3QgaW50IHN0YW5kYXJkRmFs
bGJhY2tXaWR0aCA9IDk4MDsKLSAgICAgICAgaW50IGRwaUluZGVwZW5kZW50Vmlld3BvcnRXaWR0
aCA9IG5ld1NpemUud2lkdGggLyBwYWdlKCktPmRldmljZVNjYWxlRmFjdG9yKCk7Ci0gICAgICAg
IHNldHRpbmdzKCktPnNldExheW91dEZhbGxiYWNrV2lkdGgoc3RkOjptYXgoc3RhbmRhcmRGYWxs
YmFja1dpZHRoLCBkcGlJbmRlcGVuZGVudFZpZXdwb3J0V2lkdGgpKTsKLQorICAgIGlmIChzZXR0
aW5ncygpLT52aWV3cG9ydE1vZGUoKSAhPSBXZWJTZXR0aW5nczo6Vmlld3BvcnREaXNhYmxlZCkg
ewogICAgICAgICBWaWV3cG9ydEFyZ3VtZW50cyB2aWV3cG9ydEFyZ3VtZW50cyA9IG1haW5GcmFt
ZUltcGwoKS0+ZnJhbWUoKS0+ZG9jdW1lbnQoKS0+dmlld3BvcnRBcmd1bWVudHMoKTsKICAgICAg
ICAgbV9wYWdlLT5jaHJvbWUoKS0+Y2xpZW50KCktPmRpc3BhdGNoVmlld3BvcnRQcm9wZXJ0aWVz
RGlkQ2hhbmdlKHZpZXdwb3J0QXJndW1lbnRzKTsKICAgICB9CkBAIC0xNjA2LDcgKzE1OTgsNyBA
QCB2b2lkIFdlYlZpZXdJbXBsOjpyZXNpemUoY29uc3QgV2ViU2l6ZSYgbmV3U2l6ZSkKICAgICB9
CiAKICNpZiBFTkFCTEUoVklFV1BPUlQpCi0gICAgaWYgKHNldHRpbmdzKCktPnZpZXdwb3J0RW5h
YmxlZCgpKSB7CisgICAgaWYgKHNldHRpbmdzKCktPnZpZXdwb3J0TW9kZSgpICE9IFdlYlNldHRp
bmdzOjpWaWV3cG9ydERpc2FibGVkKSB7CiAgICAgICAgIC8vIFJlbGF5b3V0IGltbWVkaWF0ZWx5
IHRvIG9idGFpbiB0aGUgbmV3IGNvbnRlbnQgd2lkdGgsIHdoaWNoIGlzIG5lZWRlZAogICAgICAg
ICAvLyB0byBjYWxjdWxhdGUgdGhlIG1pbmltdW0gc2NhbGUgbGltaXQuCiAgICAgICAgIHZpZXct
PmxheW91dCgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>181307</attachid>
            <date>2013-01-04 09:04:29 -0800</date>
            <delta_ts>2013-01-07 06:40:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>wk-106021.patch</filename>
            <type>text/plain</type>
            <size>4713</size>
            <attacher name="Mikhail Naganov">mnaganov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggZGUwNzk3Yi4uOTU4OWQ3ZGUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTMtMDEtMDQgIE1pa2hhaWwg
TmFnYW5vdiAgPG1uYWdhbm92QGNocm9taXVtLm9yZz4KKworICAgICAgICBbQ2hyb21pdW1dIFdo
ZW4gdmlld3BvcnQgaXMgZGlzYWJsZWQsIHVzZSBkaXNwbGF5IHdpZHRoIGluIENTUyBwaXhlbHMg
Zm9yIGZhbGxiYWNrIHdpZHRoCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMDYwMjEKKworICAgICAgICBUaGlzIGlzIHRvIGVtdWxhdGUgJ1VzZVdpZGVW
aWV3cG9ydCcgc2V0dGluZyBvZiBBbmRyb2lkIFdlYlZpZXcgcHJvcGVybHkuCisgICAgICAgICdV
c2VXaWRlVmlld3BvcnQnIG5vdyBjb3JyZXNwb25kcyB0byB0aGUgJ3ZpZXdwb3J0RW5hYmxlZCcg
c2V0dGluZy4KKyAgICAgICAgV2hlbiB0aGUgdmFsdWUgaXMgZmFsc2UsICJtZXRhIHZpZXdwb3J0
IiB0YWcgaXMgaWdub3JlZCwgYW5kIHdoZW4gY2FsY3VsYXRpbmcKKyAgICAgICAgbGF5b3V0IHdp
ZHRoLCBkaXNwbGF5IHdpZHRoIGluIENTUyBwaXhlbHMgaXMgdXNlZC4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHNyYy9DaHJvbWVDbGllbnRJbXBs
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50SW1wbDo6ZGlzcGF0Y2hWaWV3cG9y
dFByb3BlcnRpZXNEaWRDaGFuZ2UpOgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpyZXNpemUpOgorCiAyMDEzLTAxLTAzICBTYW1p
IEt5b3N0aWxhICA8c2t5b3N0aWxAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0g
UmVuYW1lIGxvdyBsYXRlbmN5IHJlbmRlcmluZyBtb2RlIHNldHRpbmcgdG8gdnN5bmMgbm90aWZp
Y2F0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGll
bnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwu
Y3BwCmluZGV4IDIxZGJmNDAuLmY5NzY1MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwCkBAIC02MjAsNyArNjIwLDcgQEAgdm9pZCBDaHJv
bWVDbGllbnRJbXBsOjpzZXRUb29sVGlwKGNvbnN0IFN0cmluZyYgdG9vbHRpcFRleHQsIFRleHRE
aXJlY3Rpb24gZGlyKQogdm9pZCBDaHJvbWVDbGllbnRJbXBsOjpkaXNwYXRjaFZpZXdwb3J0UHJv
cGVydGllc0RpZENoYW5nZShjb25zdCBWaWV3cG9ydEFyZ3VtZW50cyYgYXJndW1lbnRzKSBjb25z
dAogewogI2lmIEVOQUJMRShWSUVXUE9SVCkKLSAgICBpZiAoIW1fd2ViVmlldy0+c2V0dGluZ3Mo
KS0+dmlld3BvcnRFbmFibGVkKCkgfHwgIW1fd2ViVmlldy0+aXNGaXhlZExheW91dE1vZGVFbmFi
bGVkKCkgfHwgIW1fd2ViVmlldy0+Y2xpZW50KCkgfHwgIW1fd2ViVmlldy0+cGFnZSgpKQorICAg
IGlmICghbV93ZWJWaWV3LT5pc0ZpeGVkTGF5b3V0TW9kZUVuYWJsZWQoKSB8fCAhbV93ZWJWaWV3
LT5jbGllbnQoKSB8fCAhbV93ZWJWaWV3LT5wYWdlKCkpCiAgICAgICAgIHJldHVybjsKIAogICAg
IFdlYlZpZXdDbGllbnQqIGNsaWVudCA9IG1fd2ViVmlldy0+Y2xpZW50KCk7CkBAIC02MzEsOSAr
NjMxLDIyIEBAIHZvaWQgQ2hyb21lQ2xpZW50SW1wbDo6ZGlzcGF0Y2hWaWV3cG9ydFByb3BlcnRp
ZXNEaWRDaGFuZ2UoY29uc3QgVmlld3BvcnRBcmd1bWVuCiAKICAgICBTZXR0aW5ncyogc2V0dGlu
Z3MgPSBtX3dlYlZpZXctPnBhZ2UoKS0+c2V0dGluZ3MoKTsKICAgICBmbG9hdCBkZXZpY2VQaXhl
bFJhdGlvID0gY2xpZW50LT5zY3JlZW5JbmZvKCkuZGV2aWNlU2NhbGVGYWN0b3I7CisgICAgaW50
IGRwaUluZGVwZW5kZW50Vmlld3BvcnRXaWR0aCA9IG1fd2ViVmlldy0+c2l6ZSgpLndpZHRoIC8g
ZGV2aWNlUGl4ZWxSYXRpbzsKKyAgICBWaWV3cG9ydEFyZ3VtZW50cyBlZmZlY3RpdmVWaWV3cG9y
dEFyZ3VtZW50czsKKyAgICBpbnQgZWZmZWN0aXZlRmFsbGJhY2tXaWR0aDsKKyAgICBpZiAobV93
ZWJWaWV3LT5zZXR0aW5ncygpLT52aWV3cG9ydEVuYWJsZWQoKSkgeworICAgICAgICBlZmZlY3Rp
dmVWaWV3cG9ydEFyZ3VtZW50cyA9IGFyZ3VtZW50czsKKyAgICAgICAgZWZmZWN0aXZlRmFsbGJh
Y2tXaWR0aCA9IHN0ZDo6bWF4KHNldHRpbmdzLT5sYXlvdXRGYWxsYmFja1dpZHRoKCksIGRwaUlu
ZGVwZW5kZW50Vmlld3BvcnRXaWR0aCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgLy8gVGhpcyBp
cyBmb3IgQW5kcm9pZFdlYlZpZXcgdG8gdXNlIGxheW91dCB3aWR0aCBpbiBDU1MgcGl4ZWxzLgor
ICAgICAgICAvLyBPbmNlIFdlYlZpZXdJbXBsIG9uIEFuZHJvaWQgd2lsbCBzdGFydCB1c2luZyBD
U1MgcGl4ZWxzIHNpemUsCisgICAgICAgIC8vIGRpc3BhdGNoVmlld3BvcnRQcm9wZXJ0aWVzRGlk
Q2hhbmdlIGNhbiBiYWlsIG91dCB3aGVuIHZpZXdwb3J0IGlzIGRpc2FibGVkLgorICAgICAgICBl
ZmZlY3RpdmVWaWV3cG9ydEFyZ3VtZW50cyA9IFZpZXdwb3J0QXJndW1lbnRzKCk7CisgICAgICAg
IGVmZmVjdGl2ZUZhbGxiYWNrV2lkdGggPSBkcGlJbmRlcGVuZGVudFZpZXdwb3J0V2lkdGg7Cisg
ICAgfQogICAgIC8vIENhbGwgdGhlIGNvbW1vbiB2aWV3cG9ydCBjb21wdXRpbmcgbG9naWMgaW4g
Vmlld3BvcnRBcmd1bWVudHMuY3BwLgogICAgIFZpZXdwb3J0QXR0cmlidXRlcyBjb21wdXRlZCA9
IGNvbXB1dGVWaWV3cG9ydEF0dHJpYnV0ZXMoCi0gICAgICAgIGFyZ3VtZW50cywgc2V0dGluZ3Mt
PmxheW91dEZhbGxiYWNrV2lkdGgoKSwgZGV2aWNlU2l6ZS53aWR0aCwgZGV2aWNlU2l6ZS5oZWln
aHQsCisgICAgICAgIGVmZmVjdGl2ZVZpZXdwb3J0QXJndW1lbnRzLCBlZmZlY3RpdmVGYWxsYmFj
a1dpZHRoLCBkZXZpY2VTaXplLndpZHRoLCBkZXZpY2VTaXplLmhlaWdodCwKICAgICAgICAgZGV2
aWNlUGl4ZWxSYXRpbywgSW50U2l6ZShkZXZpY2VTaXplLndpZHRoLCBkZXZpY2VTaXplLmhlaWdo
dCkpOwogCiAgICAgcmVzdHJpY3RTY2FsZUZhY3RvclRvSW5pdGlhbFNjYWxlSWZOb3RVc2VyU2Nh
bGFibGUoY29tcHV0ZWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViVmlld0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwu
Y3BwCmluZGV4IDdlMmIyNzUuLjg1MmY4ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJWaWV3SW1wbC5jcHAKQEAgLTE1ODIsMTggKzE1ODIsOCBAQCB2b2lkIFdlYlZpZXdJbXBs
OjpyZXNpemUoY29uc3QgV2ViU2l6ZSYgbmV3U2l6ZSkKICAgICBtX3NpemUgPSBuZXdTaXplOwog
CiAjaWYgRU5BQkxFKFZJRVdQT1JUKQotICAgIGlmIChzZXR0aW5ncygpLT52aWV3cG9ydEVuYWJs
ZWQoKSkgewotICAgICAgICAvLyBGYWxsYmFjayB3aWR0aCBpcyB1c2VkIHRvIGxheW91dCBzaXRl
cyBkZXNpZ25lZCBmb3IgZGVza3RvcC4gVGhlCi0gICAgICAgIC8vIGNvbnZlbnRpb25hbCBzaXpl
IHVzZWQgYnkgYWxsIG1vYmlsZSBicm93c2VycyBpcyA5ODAuIFdoZW4gYSBtb2JpbGUKLSAgICAg
ICAgLy8gZGV2aWNlIGhhcyBhIHBhcnRpY3VsYXJseSB3aWRlIHNjcmVlbiAoc3VjaCBhcyBhIDEw
IiB0YWJsZXQgaGVsZCBpbgotICAgICAgICAvLyBsYW5kc2NhcGUpLCBpdCBjYW4gYmUgbGFyZ2Vy
LgotICAgICAgICBjb25zdCBpbnQgc3RhbmRhcmRGYWxsYmFja1dpZHRoID0gOTgwOwotICAgICAg
ICBpbnQgZHBpSW5kZXBlbmRlbnRWaWV3cG9ydFdpZHRoID0gbmV3U2l6ZS53aWR0aCAvIHBhZ2Uo
KS0+ZGV2aWNlU2NhbGVGYWN0b3IoKTsKLSAgICAgICAgc2V0dGluZ3MoKS0+c2V0TGF5b3V0RmFs
bGJhY2tXaWR0aChzdGQ6Om1heChzdGFuZGFyZEZhbGxiYWNrV2lkdGgsIGRwaUluZGVwZW5kZW50
Vmlld3BvcnRXaWR0aCkpOwotCi0gICAgICAgIFZpZXdwb3J0QXJndW1lbnRzIHZpZXdwb3J0QXJn
dW1lbnRzID0gbWFpbkZyYW1lSW1wbCgpLT5mcmFtZSgpLT5kb2N1bWVudCgpLT52aWV3cG9ydEFy
Z3VtZW50cygpOwotICAgICAgICBtX3BhZ2UtPmNocm9tZSgpLT5jbGllbnQoKS0+ZGlzcGF0Y2hW
aWV3cG9ydFByb3BlcnRpZXNEaWRDaGFuZ2Uodmlld3BvcnRBcmd1bWVudHMpOwotICAgIH0KKyAg
ICBWaWV3cG9ydEFyZ3VtZW50cyB2aWV3cG9ydEFyZ3VtZW50cyA9IG1haW5GcmFtZUltcGwoKS0+
ZnJhbWUoKS0+ZG9jdW1lbnQoKS0+dmlld3BvcnRBcmd1bWVudHMoKTsKKyAgICBtX3BhZ2UtPmNo
cm9tZSgpLT5jbGllbnQoKS0+ZGlzcGF0Y2hWaWV3cG9ydFByb3BlcnRpZXNEaWRDaGFuZ2Uodmll
d3BvcnRBcmd1bWVudHMpOwogI2VuZGlmCiAKICAgICBXZWJEZXZUb29sc0FnZW50UHJpdmF0ZSog
YWdlbnRQcml2YXRlID0gZGV2VG9vbHNBZ2VudFByaXZhdGUoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>181500</attachid>
            <date>2013-01-07 06:40:02 -0800</date>
            <delta_ts>2013-01-08 02:50:13 -0800</delta_ts>
            <desc>Factored out dpiIndependentSize</desc>
            <filename>wk-106021.patch</filename>
            <type>text/plain</type>
            <size>6607</size>
            <attacher name="Mikhail Naganov">mnaganov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggYTMyY2ExYi4uZDI2NzU4OSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxMy0wMS0wNyAgTWlraGFpbCBO
YWdhbm92ICA8bW5hZ2Fub3ZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtDaHJvbWl1bV0gV2hl
biB2aWV3cG9ydCBpcyBkaXNhYmxlZCwgdXNlIGRpc3BsYXkgd2lkdGggaW4gQ1NTIHBpeGVscyBm
b3IgdGhlIGZhbGxiYWNrIHdpZHRoCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMDYwMjEKKworICAgICAgICBUaGlzIGlzIHRvIGVtdWxhdGUgJ1VzZVdp
ZGVWaWV3cG9ydCcgc2V0dGluZyBvZiBBbmRyb2lkIFdlYlZpZXcgcHJvcGVybHkuCisgICAgICAg
ICdVc2VXaWRlVmlld3BvcnQnIG5vdyBjb3JyZXNwb25kcyB0byB0aGUgJ3ZpZXdwb3J0RW5hYmxl
ZCcgc2V0dGluZy4KKyAgICAgICAgV2hlbiB0aGUgdmFsdWUgaXMgZmFsc2UsICJtZXRhIHZpZXdw
b3J0IiB0YWcgaXMgaWdub3JlZCwgYW5kIHdoZW4gY2FsY3VsYXRpbmcKKyAgICAgICAgbGF5b3V0
IHdpZHRoLCBkaXNwbGF5IHdpZHRoIGluIENTUyBwaXhlbHMgaXMgdXNlZC4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHNyYy9DaHJvbWVDbGllbnRJ
bXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50SW1wbDo6ZGlzcGF0Y2hWaWV3
cG9ydFByb3BlcnRpZXNEaWRDaGFuZ2UpOgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpyZXNpemUpOgorICAgICAgICAoV2ViS2l0
OjpXZWJWaWV3SW1wbDo6ZHBpSW5kZXBlbmRlbnRTaXplKToKKyAgICAgICAgKFdlYktpdCk6Cisg
ICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAg
KFdlYlZpZXdJbXBsKToKKwogMjAxMy0wMS0wNSAgQWxlYyBGbGV0dCAgPGFsZWNmbGV0dEBjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgSW5kZXhlZERCOiBNaWdyYXRlIGJhY2tlbmQgT2JqZWN0U3Rv
cmUgY2FsbHMgdG8gdXNlIHRyYW5zYWN0aW9uIGlkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwCmluZGV4IDIxZGJmNDAuLmQ1NTQzYzQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwCkBAIC02
MjAsNyArNjIwLDcgQEAgdm9pZCBDaHJvbWVDbGllbnRJbXBsOjpzZXRUb29sVGlwKGNvbnN0IFN0
cmluZyYgdG9vbHRpcFRleHQsIFRleHREaXJlY3Rpb24gZGlyKQogdm9pZCBDaHJvbWVDbGllbnRJ
bXBsOjpkaXNwYXRjaFZpZXdwb3J0UHJvcGVydGllc0RpZENoYW5nZShjb25zdCBWaWV3cG9ydEFy
Z3VtZW50cyYgYXJndW1lbnRzKSBjb25zdAogewogI2lmIEVOQUJMRShWSUVXUE9SVCkKLSAgICBp
ZiAoIW1fd2ViVmlldy0+c2V0dGluZ3MoKS0+dmlld3BvcnRFbmFibGVkKCkgfHwgIW1fd2ViVmll
dy0+aXNGaXhlZExheW91dE1vZGVFbmFibGVkKCkgfHwgIW1fd2ViVmlldy0+Y2xpZW50KCkgfHwg
IW1fd2ViVmlldy0+cGFnZSgpKQorICAgIGlmICghbV93ZWJWaWV3LT5pc0ZpeGVkTGF5b3V0TW9k
ZUVuYWJsZWQoKSB8fCAhbV93ZWJWaWV3LT5jbGllbnQoKSB8fCAhbV93ZWJWaWV3LT5wYWdlKCkp
CiAgICAgICAgIHJldHVybjsKIAogICAgIFdlYlZpZXdDbGllbnQqIGNsaWVudCA9IG1fd2ViVmll
dy0+Y2xpZW50KCk7CkBAIC02MjksMTEgKzYyOSwyNCBAQCB2b2lkIENocm9tZUNsaWVudEltcGw6
OmRpc3BhdGNoVmlld3BvcnRQcm9wZXJ0aWVzRGlkQ2hhbmdlKGNvbnN0IFZpZXdwb3J0QXJndW1l
bgogICAgIGlmICghZGV2aWNlU2l6ZS53aWR0aCB8fCAhZGV2aWNlU2l6ZS5oZWlnaHQpCiAgICAg
ICAgIHJldHVybjsKIAotICAgIFNldHRpbmdzKiBzZXR0aW5ncyA9IG1fd2ViVmlldy0+cGFnZSgp
LT5zZXR0aW5ncygpOworICAgIGludCBkcGlJbmRlcGVuZGVudFZpZXdwb3J0V2lkdGggPSBtX3dl
YlZpZXctPmRwaUluZGVwZW5kZW50U2l6ZSgpLndpZHRoKCk7CisgICAgVmlld3BvcnRBcmd1bWVu
dHMgZWZmZWN0aXZlVmlld3BvcnRBcmd1bWVudHM7CisgICAgaW50IGVmZmVjdGl2ZUZhbGxiYWNr
V2lkdGg7CisgICAgaWYgKG1fd2ViVmlldy0+c2V0dGluZ3MoKS0+dmlld3BvcnRFbmFibGVkKCkp
IHsKKyAgICAgICAgZWZmZWN0aXZlVmlld3BvcnRBcmd1bWVudHMgPSBhcmd1bWVudHM7CisgICAg
ICAgIFNldHRpbmdzKiBzZXR0aW5ncyA9IG1fd2ViVmlldy0+cGFnZSgpLT5zZXR0aW5ncygpOwor
ICAgICAgICBlZmZlY3RpdmVGYWxsYmFja1dpZHRoID0gc3RkOjptYXgoc2V0dGluZ3MtPmxheW91
dEZhbGxiYWNrV2lkdGgoKSwgZHBpSW5kZXBlbmRlbnRWaWV3cG9ydFdpZHRoKTsKKyAgICB9IGVs
c2UgeworICAgICAgICAvLyBUaGlzIGlzIGZvciBBbmRyb2lkV2ViVmlldyB0byB1c2UgbGF5b3V0
IHdpZHRoIGluIENTUyBwaXhlbHMuCisgICAgICAgIC8vIE9uY2UgV2ViVmlld0ltcGwgb24gQW5k
cm9pZCB3aWxsIHN0YXJ0IHVzaW5nIENTUyBwaXhlbHMgc2l6ZSwKKyAgICAgICAgLy8gZGlzcGF0
Y2hWaWV3cG9ydFByb3BlcnRpZXNEaWRDaGFuZ2UgY2FuIGJhaWwgb3V0IHdoZW4gdmlld3BvcnQg
aXMgZGlzYWJsZWQuCisgICAgICAgIGVmZmVjdGl2ZVZpZXdwb3J0QXJndW1lbnRzID0gVmlld3Bv
cnRBcmd1bWVudHMoKTsKKyAgICAgICAgZWZmZWN0aXZlRmFsbGJhY2tXaWR0aCA9IGRwaUluZGVw
ZW5kZW50Vmlld3BvcnRXaWR0aDsKKyAgICB9CiAgICAgZmxvYXQgZGV2aWNlUGl4ZWxSYXRpbyA9
IGNsaWVudC0+c2NyZWVuSW5mbygpLmRldmljZVNjYWxlRmFjdG9yOwogICAgIC8vIENhbGwgdGhl
IGNvbW1vbiB2aWV3cG9ydCBjb21wdXRpbmcgbG9naWMgaW4gVmlld3BvcnRBcmd1bWVudHMuY3Bw
LgogICAgIFZpZXdwb3J0QXR0cmlidXRlcyBjb21wdXRlZCA9IGNvbXB1dGVWaWV3cG9ydEF0dHJp
YnV0ZXMoCi0gICAgICAgIGFyZ3VtZW50cywgc2V0dGluZ3MtPmxheW91dEZhbGxiYWNrV2lkdGgo
KSwgZGV2aWNlU2l6ZS53aWR0aCwgZGV2aWNlU2l6ZS5oZWlnaHQsCisgICAgICAgIGVmZmVjdGl2
ZVZpZXdwb3J0QXJndW1lbnRzLCBlZmZlY3RpdmVGYWxsYmFja1dpZHRoLCBkZXZpY2VTaXplLndp
ZHRoLCBkZXZpY2VTaXplLmhlaWdodCwKICAgICAgICAgZGV2aWNlUGl4ZWxSYXRpbywgSW50U2l6
ZShkZXZpY2VTaXplLndpZHRoLCBkZXZpY2VTaXplLmhlaWdodCkpOwogCiAgICAgcmVzdHJpY3RT
Y2FsZUZhY3RvclRvSW5pdGlhbFNjYWxlSWZOb3RVc2VyU2NhbGFibGUoY29tcHV0ZWQpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCmluZGV4IGQ0ZmNjNGMuLjU3
NzFlYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBs
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKQEAg
LTE1ODIsMTggKzE1ODIsOCBAQCB2b2lkIFdlYlZpZXdJbXBsOjpyZXNpemUoY29uc3QgV2ViU2l6
ZSYgbmV3U2l6ZSkKICAgICBtX3NpemUgPSBuZXdTaXplOwogCiAjaWYgRU5BQkxFKFZJRVdQT1JU
KQotICAgIGlmIChzZXR0aW5ncygpLT52aWV3cG9ydEVuYWJsZWQoKSkgewotICAgICAgICAvLyBG
YWxsYmFjayB3aWR0aCBpcyB1c2VkIHRvIGxheW91dCBzaXRlcyBkZXNpZ25lZCBmb3IgZGVza3Rv
cC4gVGhlCi0gICAgICAgIC8vIGNvbnZlbnRpb25hbCBzaXplIHVzZWQgYnkgYWxsIG1vYmlsZSBi
cm93c2VycyBpcyA5ODAuIFdoZW4gYSBtb2JpbGUKLSAgICAgICAgLy8gZGV2aWNlIGhhcyBhIHBh
cnRpY3VsYXJseSB3aWRlIHNjcmVlbiAoc3VjaCBhcyBhIDEwIiB0YWJsZXQgaGVsZCBpbgotICAg
ICAgICAvLyBsYW5kc2NhcGUpLCBpdCBjYW4gYmUgbGFyZ2VyLgotICAgICAgICBjb25zdCBpbnQg
c3RhbmRhcmRGYWxsYmFja1dpZHRoID0gOTgwOwotICAgICAgICBpbnQgZHBpSW5kZXBlbmRlbnRW
aWV3cG9ydFdpZHRoID0gbmV3U2l6ZS53aWR0aCAvIHBhZ2UoKS0+ZGV2aWNlU2NhbGVGYWN0b3Io
KTsKLSAgICAgICAgc2V0dGluZ3MoKS0+c2V0TGF5b3V0RmFsbGJhY2tXaWR0aChzdGQ6Om1heChz
dGFuZGFyZEZhbGxiYWNrV2lkdGgsIGRwaUluZGVwZW5kZW50Vmlld3BvcnRXaWR0aCkpOwotCi0g
ICAgICAgIFZpZXdwb3J0QXJndW1lbnRzIHZpZXdwb3J0QXJndW1lbnRzID0gbWFpbkZyYW1lSW1w
bCgpLT5mcmFtZSgpLT5kb2N1bWVudCgpLT52aWV3cG9ydEFyZ3VtZW50cygpOwotICAgICAgICBt
X3BhZ2UtPmNocm9tZSgpLT5jbGllbnQoKS0+ZGlzcGF0Y2hWaWV3cG9ydFByb3BlcnRpZXNEaWRD
aGFuZ2Uodmlld3BvcnRBcmd1bWVudHMpOwotICAgIH0KKyAgICBWaWV3cG9ydEFyZ3VtZW50cyB2
aWV3cG9ydEFyZ3VtZW50cyA9IG1haW5GcmFtZUltcGwoKS0+ZnJhbWUoKS0+ZG9jdW1lbnQoKS0+
dmlld3BvcnRBcmd1bWVudHMoKTsKKyAgICBtX3BhZ2UtPmNocm9tZSgpLT5jbGllbnQoKS0+ZGlz
cGF0Y2hWaWV3cG9ydFByb3BlcnRpZXNEaWRDaGFuZ2Uodmlld3BvcnRBcmd1bWVudHMpOwogI2Vu
ZGlmCiAKICAgICBXZWJEZXZUb29sc0FnZW50UHJpdmF0ZSogYWdlbnRQcml2YXRlID0gZGV2VG9v
bHNBZ2VudFByaXZhdGUoKTsKQEAgLTMxMzIsNiArMzEyMiwxNSBAQCB2b2lkIFdlYlZpZXdJbXBs
OjpzZXRGaXhlZExheW91dFNpemUoY29uc3QgV2ViU2l6ZSYgbGF5b3V0U2l6ZSkKICAgICBmcmFt
ZS0+dmlldygpLT5zZXRGaXhlZExheW91dFNpemUobGF5b3V0U2l6ZSk7CiB9CiAKK1dlYkNvcmU6
OkZsb2F0U2l6ZSBXZWJWaWV3SW1wbDo6ZHBpSW5kZXBlbmRlbnRTaXplKCkgY29uc3QKK3sKKyAg
ICBpZiAoIXBhZ2UoKSB8fCBtX3dlYlNldHRpbmdzLT5hcHBseURldmljZVNjYWxlRmFjdG9ySW5D
b21wb3NpdG9yKCkpCisgICAgICAgIHJldHVybiBGbG9hdFNpemUobV9zaXplLndpZHRoLCBtX3Np
emUuaGVpZ2h0KTsKKworICAgIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yID0gcGFnZSgpLT5kZXZp
Y2VTY2FsZUZhY3RvcigpOworICAgIHJldHVybiBGbG9hdFNpemUobV9zaXplLndpZHRoIC8gZGV2
aWNlU2NhbGVGYWN0b3IsIG1fc2l6ZS5oZWlnaHQgLyBkZXZpY2VTY2FsZUZhY3Rvcik7Cit9CisK
IHZvaWQgV2ViVmlld0ltcGw6OnBlcmZvcm1NZWRpYVBsYXllckFjdGlvbihjb25zdCBXZWJNZWRp
YVBsYXllckFjdGlvbiYgYWN0aW9uLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnN0IFdlYlBvaW50JiBsb2NhdGlvbikKIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJWaWV3SW1wbC5oCmluZGV4IDAwNjFiZjIuLmU5NTE2ODcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgKKysrIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaApAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1
ZGUgIkNvbnRleHRNZW51Q2xpZW50SW1wbC5oIgogI2luY2x1ZGUgIkRyYWdDbGllbnRJbXBsLmgi
CiAjaW5jbHVkZSAiRWRpdG9yQ2xpZW50SW1wbC5oIgorI2luY2x1ZGUgIkZsb2F0U2l6ZS5oIgog
I2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dDNELmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NMYXllci5o
IgogI2luY2x1ZGUgIkluc3BlY3RvckNsaWVudEltcGwuaCIKQEAgLTY0LDYgKzY1LDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQ2hyb21pdW1EYXRhT2JqZWN0OwogY2xhc3MgQ29sb3I7
CiBjbGFzcyBEb2N1bWVudExvYWRlcjsKK2NsYXNzIEZsb2F0U2l6ZTsKIGNsYXNzIEZyYW1lOwog
Y2xhc3MgR3JhcGhpY3NDb250ZXh0M0Q7CiBjbGFzcyBIaXN0b3J5SXRlbTsKQEAgLTIzOSw2ICsy
NDEsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGVuYWJsZUZpeGVkTGF5b3V0TW9kZShi
b29sIGVuYWJsZSk7CiAgICAgdmlydHVhbCBXZWJTaXplIGZpeGVkTGF5b3V0U2l6ZSgpIGNvbnN0
OwogICAgIHZpcnR1YWwgdm9pZCBzZXRGaXhlZExheW91dFNpemUoY29uc3QgV2ViU2l6ZSYpOwor
ICAgIHZpcnR1YWwgV2ViQ29yZTo6RmxvYXRTaXplIGRwaUluZGVwZW5kZW50U2l6ZSgpIGNvbnN0
OwogICAgIHZpcnR1YWwgdm9pZCBlbmFibGVBdXRvUmVzaXplTW9kZSgKICAgICAgICAgY29uc3Qg
V2ViU2l6ZSYgbWluU2l6ZSwKICAgICAgICAgY29uc3QgV2ViU2l6ZSYgbWF4U2l6ZSk7Cg==
</data>
<flag name="review"
          id="199152"
          type_id="1"
          status="+"
          setter="abarth"
    />
    <flag name="commit-queue"
          id="199153"
          type_id="3"
          status="-"
          setter="abarth"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>181677</attachid>
            <date>2013-01-08 02:50:13 -0800</date>
            <delta_ts>2013-01-09 01:35:10 -0800</delta_ts>
            <desc>Comments addressed</desc>
            <filename>wk-106021.patch</filename>
            <type>text/plain</type>
            <size>6502</size>
            <attacher name="Mikhail Naganov">mnaganov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggYzExOWVhZi4uN2U0ODYzYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxMy0wMS0wOCAgTWlraGFpbCBO
YWdhbm92ICA8bW5hZ2Fub3ZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtDaHJvbWl1bV0gV2hl
biB2aWV3cG9ydCBpcyBkaXNhYmxlZCwgdXNlIGRpc3BsYXkgd2lkdGggaW4gRElQIHBpeGVscyBm
b3IgdGhlIGZhbGxiYWNrIHdpZHRoCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMDYwMjEKKworICAgICAgICBUaGlzIGlzIHRvIGVtdWxhdGUgJ1VzZVdp
ZGVWaWV3cG9ydCcgc2V0dGluZyBvZiBBbmRyb2lkIFdlYlZpZXcgcHJvcGVybHkuCisgICAgICAg
ICdVc2VXaWRlVmlld3BvcnQnIG5vdyBjb3JyZXNwb25kcyB0byB0aGUgJ3ZpZXdwb3J0RW5hYmxl
ZCcgc2V0dGluZy4KKyAgICAgICAgV2hlbiB0aGUgdmFsdWUgaXMgZmFsc2UsICJtZXRhIHZpZXdw
b3J0IiB0YWcgaXMgaWdub3JlZCwgYW5kIHdoZW4gY2FsY3VsYXRpbmcKKyAgICAgICAgbGF5b3V0
IHdpZHRoLCBkaXNwbGF5IHdpZHRoIGluIERJUCBwaXhlbHMgaXMgdXNlZC4KKworICAgICAgICBS
ZXZpZXdlZCBieSBBZGFtIEJhcnRoLgorCisgICAgICAgICogc3JjL0Nocm9tZUNsaWVudEltcGwu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnRJbXBsOjpkaXNwYXRjaFZpZXdwb3J0
UHJvcGVydGllc0RpZENoYW5nZSk6CisgICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnJlc2l6ZSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlZpZXdJbXBsOjpESVBTaXplKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICogc3JjL1dl
YlZpZXdJbXBsLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYlZpZXdJbXBsKToK
KwogMjAxMy0wMS0wOCAgU3RldmUgQmxvY2sgIDxzdGV2ZWJsb2NrQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBSZW5hbWUgJ0ludFNpemUgdG9TaXplKGNvbnN0IEludFBvaW50JiknIHRvICd0b0lu
dFNpemUnCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGll
bnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwu
Y3BwCmluZGV4IDIxZGJmNDAuLmNiOTcxNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwCkBAIC02MjAsNyArNjIwLDcgQEAgdm9pZCBDaHJv
bWVDbGllbnRJbXBsOjpzZXRUb29sVGlwKGNvbnN0IFN0cmluZyYgdG9vbHRpcFRleHQsIFRleHRE
aXJlY3Rpb24gZGlyKQogdm9pZCBDaHJvbWVDbGllbnRJbXBsOjpkaXNwYXRjaFZpZXdwb3J0UHJv
cGVydGllc0RpZENoYW5nZShjb25zdCBWaWV3cG9ydEFyZ3VtZW50cyYgYXJndW1lbnRzKSBjb25z
dAogewogI2lmIEVOQUJMRShWSUVXUE9SVCkKLSAgICBpZiAoIW1fd2ViVmlldy0+c2V0dGluZ3Mo
KS0+dmlld3BvcnRFbmFibGVkKCkgfHwgIW1fd2ViVmlldy0+aXNGaXhlZExheW91dE1vZGVFbmFi
bGVkKCkgfHwgIW1fd2ViVmlldy0+Y2xpZW50KCkgfHwgIW1fd2ViVmlldy0+cGFnZSgpKQorICAg
IGlmICghbV93ZWJWaWV3LT5pc0ZpeGVkTGF5b3V0TW9kZUVuYWJsZWQoKSB8fCAhbV93ZWJWaWV3
LT5jbGllbnQoKSB8fCAhbV93ZWJWaWV3LT5wYWdlKCkpCiAgICAgICAgIHJldHVybjsKIAogICAg
IFdlYlZpZXdDbGllbnQqIGNsaWVudCA9IG1fd2ViVmlldy0+Y2xpZW50KCk7CkBAIC02MjksMTEg
KzYyOSwyMyBAQCB2b2lkIENocm9tZUNsaWVudEltcGw6OmRpc3BhdGNoVmlld3BvcnRQcm9wZXJ0
aWVzRGlkQ2hhbmdlKGNvbnN0IFZpZXdwb3J0QXJndW1lbgogICAgIGlmICghZGV2aWNlU2l6ZS53
aWR0aCB8fCAhZGV2aWNlU2l6ZS5oZWlnaHQpCiAgICAgICAgIHJldHVybjsKIAotICAgIFNldHRp
bmdzKiBzZXR0aW5ncyA9IG1fd2ViVmlldy0+cGFnZSgpLT5zZXR0aW5ncygpOworICAgIGludCB2
aWV3cG9ydFdpZHRoSW5ESVBzID0gbV93ZWJWaWV3LT5ESVBTaXplKCkud2lkdGgoKTsKKyAgICBW
aWV3cG9ydEFyZ3VtZW50cyBlZmZlY3RpdmVWaWV3cG9ydEFyZ3VtZW50czsKKyAgICBpbnQgZWZm
ZWN0aXZlRmFsbGJhY2tXaWR0aDsKKyAgICBpZiAobV93ZWJWaWV3LT5zZXR0aW5ncygpLT52aWV3
cG9ydEVuYWJsZWQoKSkgeworICAgICAgICBlZmZlY3RpdmVWaWV3cG9ydEFyZ3VtZW50cyA9IGFy
Z3VtZW50czsKKyAgICAgICAgZWZmZWN0aXZlRmFsbGJhY2tXaWR0aCA9IHN0ZDo6bWF4KG1fd2Vi
Vmlldy0+cGFnZSgpLT5zZXR0aW5ncygpLT5sYXlvdXRGYWxsYmFja1dpZHRoKCksIHZpZXdwb3J0
V2lkdGhJbkRJUHMpOworICAgIH0gZWxzZSB7CisgICAgICAgIC8vIFRoaXMgaXMgZm9yIEFuZHJv
aWQgV2ViVmlldyB0byB1c2UgbGF5b3V0IHdpZHRoIGluIGRldmljZS1pbmRlcGVuZGVudCBwaXhl
bHMuCisgICAgICAgIC8vIE9uY2UgV2ViVmlld0ltcGwgb24gQW5kcm9pZCB3aWxsIHN0YXJ0IHVz
aW5nIERJUCBwaXhlbHMgc2l6ZSwKKyAgICAgICAgLy8gZGlzcGF0Y2hWaWV3cG9ydFByb3BlcnRp
ZXNEaWRDaGFuZ2UgY2FuIGJhaWwgb3V0IHdoZW4gdmlld3BvcnQgaXMgZGlzYWJsZWQuCisgICAg
ICAgIGVmZmVjdGl2ZVZpZXdwb3J0QXJndW1lbnRzID0gVmlld3BvcnRBcmd1bWVudHMoKTsKKyAg
ICAgICAgZWZmZWN0aXZlRmFsbGJhY2tXaWR0aCA9IHZpZXdwb3J0V2lkdGhJbkRJUHM7CisgICAg
fQogICAgIGZsb2F0IGRldmljZVBpeGVsUmF0aW8gPSBjbGllbnQtPnNjcmVlbkluZm8oKS5kZXZp
Y2VTY2FsZUZhY3RvcjsKICAgICAvLyBDYWxsIHRoZSBjb21tb24gdmlld3BvcnQgY29tcHV0aW5n
IGxvZ2ljIGluIFZpZXdwb3J0QXJndW1lbnRzLmNwcC4KICAgICBWaWV3cG9ydEF0dHJpYnV0ZXMg
Y29tcHV0ZWQgPSBjb21wdXRlVmlld3BvcnRBdHRyaWJ1dGVzKAotICAgICAgICBhcmd1bWVudHMs
IHNldHRpbmdzLT5sYXlvdXRGYWxsYmFja1dpZHRoKCksIGRldmljZVNpemUud2lkdGgsIGRldmlj
ZVNpemUuaGVpZ2h0LAorICAgICAgICBlZmZlY3RpdmVWaWV3cG9ydEFyZ3VtZW50cywgZWZmZWN0
aXZlRmFsbGJhY2tXaWR0aCwgZGV2aWNlU2l6ZS53aWR0aCwgZGV2aWNlU2l6ZS5oZWlnaHQsCiAg
ICAgICAgIGRldmljZVBpeGVsUmF0aW8sIEludFNpemUoZGV2aWNlU2l6ZS53aWR0aCwgZGV2aWNl
U2l6ZS5oZWlnaHQpKTsKIAogICAgIHJlc3RyaWN0U2NhbGVGYWN0b3JUb0luaXRpYWxTY2FsZUlm
Tm90VXNlclNjYWxhYmxlKGNvbXB1dGVkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YlZpZXdJbXBsLmNwcAppbmRleCAxNWMyNTI1Li4xYjQ3YWEzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCkBAIC0xNTgwLDE4ICsxNTgwLDggQEAgdm9pZCBX
ZWJWaWV3SW1wbDo6cmVzaXplKGNvbnN0IFdlYlNpemUmIG5ld1NpemUpCiAgICAgbV9zaXplID0g
bmV3U2l6ZTsKIAogI2lmIEVOQUJMRShWSUVXUE9SVCkKLSAgICBpZiAoc2V0dGluZ3MoKS0+dmll
d3BvcnRFbmFibGVkKCkpIHsKLSAgICAgICAgLy8gRmFsbGJhY2sgd2lkdGggaXMgdXNlZCB0byBs
YXlvdXQgc2l0ZXMgZGVzaWduZWQgZm9yIGRlc2t0b3AuIFRoZQotICAgICAgICAvLyBjb252ZW50
aW9uYWwgc2l6ZSB1c2VkIGJ5IGFsbCBtb2JpbGUgYnJvd3NlcnMgaXMgOTgwLiBXaGVuIGEgbW9i
aWxlCi0gICAgICAgIC8vIGRldmljZSBoYXMgYSBwYXJ0aWN1bGFybHkgd2lkZSBzY3JlZW4gKHN1
Y2ggYXMgYSAxMCIgdGFibGV0IGhlbGQgaW4KLSAgICAgICAgLy8gbGFuZHNjYXBlKSwgaXQgY2Fu
IGJlIGxhcmdlci4KLSAgICAgICAgY29uc3QgaW50IHN0YW5kYXJkRmFsbGJhY2tXaWR0aCA9IDk4
MDsKLSAgICAgICAgaW50IGRwaUluZGVwZW5kZW50Vmlld3BvcnRXaWR0aCA9IG5ld1NpemUud2lk
dGggLyBwYWdlKCktPmRldmljZVNjYWxlRmFjdG9yKCk7Ci0gICAgICAgIHNldHRpbmdzKCktPnNl
dExheW91dEZhbGxiYWNrV2lkdGgoc3RkOjptYXgoc3RhbmRhcmRGYWxsYmFja1dpZHRoLCBkcGlJ
bmRlcGVuZGVudFZpZXdwb3J0V2lkdGgpKTsKLQotICAgICAgICBWaWV3cG9ydEFyZ3VtZW50cyB2
aWV3cG9ydEFyZ3VtZW50cyA9IG1haW5GcmFtZUltcGwoKS0+ZnJhbWUoKS0+ZG9jdW1lbnQoKS0+
dmlld3BvcnRBcmd1bWVudHMoKTsKLSAgICAgICAgbV9wYWdlLT5jaHJvbWUoKS0+Y2xpZW50KCkt
PmRpc3BhdGNoVmlld3BvcnRQcm9wZXJ0aWVzRGlkQ2hhbmdlKHZpZXdwb3J0QXJndW1lbnRzKTsK
LSAgICB9CisgICAgVmlld3BvcnRBcmd1bWVudHMgdmlld3BvcnRBcmd1bWVudHMgPSBtYWluRnJh
bWVJbXBsKCktPmZyYW1lKCktPmRvY3VtZW50KCktPnZpZXdwb3J0QXJndW1lbnRzKCk7CisgICAg
bV9wYWdlLT5jaHJvbWUoKS0+Y2xpZW50KCktPmRpc3BhdGNoVmlld3BvcnRQcm9wZXJ0aWVzRGlk
Q2hhbmdlKHZpZXdwb3J0QXJndW1lbnRzKTsKICNlbmRpZgogCiAgICAgV2ViRGV2VG9vbHNBZ2Vu
dFByaXZhdGUqIGFnZW50UHJpdmF0ZSA9IGRldlRvb2xzQWdlbnRQcml2YXRlKCk7CkBAIC0zMTMw
LDYgKzMxMjAsMTUgQEAgdm9pZCBXZWJWaWV3SW1wbDo6c2V0Rml4ZWRMYXlvdXRTaXplKGNvbnN0
IFdlYlNpemUmIGxheW91dFNpemUpCiAgICAgZnJhbWUtPnZpZXcoKS0+c2V0Rml4ZWRMYXlvdXRT
aXplKGxheW91dFNpemUpOwogfQogCitXZWJDb3JlOjpGbG9hdFNpemUgV2ViVmlld0ltcGw6OkRJ
UFNpemUoKSBjb25zdAoreworICAgIGlmICghcGFnZSgpIHx8IG1fd2ViU2V0dGluZ3MtPmFwcGx5
RGV2aWNlU2NhbGVGYWN0b3JJbkNvbXBvc2l0b3IoKSkKKyAgICAgICAgcmV0dXJuIEZsb2F0U2l6
ZShtX3NpemUud2lkdGgsIG1fc2l6ZS5oZWlnaHQpOworCisgICAgZmxvYXQgZGV2aWNlU2NhbGVG
YWN0b3IgPSBwYWdlKCktPmRldmljZVNjYWxlRmFjdG9yKCk7CisgICAgcmV0dXJuIEZsb2F0U2l6
ZShtX3NpemUud2lkdGggLyBkZXZpY2VTY2FsZUZhY3RvciwgbV9zaXplLmhlaWdodCAvIGRldmlj
ZVNjYWxlRmFjdG9yKTsKK30KKwogdm9pZCBXZWJWaWV3SW1wbDo6cGVyZm9ybU1lZGlhUGxheWVy
QWN0aW9uKGNvbnN0IFdlYk1lZGlhUGxheWVyQWN0aW9uJiBhY3Rpb24sCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgV2ViUG9pbnQmIGxvY2F0aW9uKQog
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaCBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgKaW5kZXggYjVlMDIxMi4u
NmNmMGQwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0lt
cGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCkBAIC0z
NSw2ICszNSw3IEBACiAjaW5jbHVkZSAiQ29udGV4dE1lbnVDbGllbnRJbXBsLmgiCiAjaW5jbHVk
ZSAiRHJhZ0NsaWVudEltcGwuaCIKICNpbmNsdWRlICJFZGl0b3JDbGllbnRJbXBsLmgiCisjaW5j
bHVkZSAiRmxvYXRTaXplLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0M0QuaCIKICNpbmNs
dWRlICJHcmFwaGljc0xheWVyLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yQ2xpZW50SW1wbC5oIgpA
QCAtNjQsNiArNjUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBDaHJvbWl1bURhdGFP
YmplY3Q7CiBjbGFzcyBDb2xvcjsKIGNsYXNzIERvY3VtZW50TG9hZGVyOworY2xhc3MgRmxvYXRT
aXplOwogY2xhc3MgRnJhbWU7CiBjbGFzcyBHcmFwaGljc0NvbnRleHQzRDsKIGNsYXNzIEhpc3Rv
cnlJdGVtOwpAQCAtMjM4LDYgKzI0MCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZW5h
YmxlRml4ZWRMYXlvdXRNb2RlKGJvb2wgZW5hYmxlKTsKICAgICB2aXJ0dWFsIFdlYlNpemUgZml4
ZWRMYXlvdXRTaXplKCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHNldEZpeGVkTGF5b3V0U2l6
ZShjb25zdCBXZWJTaXplJik7CisgICAgdmlydHVhbCBXZWJDb3JlOjpGbG9hdFNpemUgRElQU2l6
ZSgpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBlbmFibGVBdXRvUmVzaXplTW9kZSgKICAgICAg
ICAgY29uc3QgV2ViU2l6ZSYgbWluU2l6ZSwKICAgICAgICAgY29uc3QgV2ViU2l6ZSYgbWF4U2l6
ZSk7Cg==
</data>
<flag name="review"
          id="199388"
          type_id="1"
          status="+"
          setter="abarth"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>181874</attachid>
            <date>2013-01-09 01:35:10 -0800</date>
            <delta_ts>2013-01-09 01:35:10 -0800</delta_ts>
            <desc>s/DIPSize/dipSize/</desc>
            <filename>wk-106021.patch</filename>
            <type>text/plain</type>
            <size>6502</size>
            <attacher name="Mikhail Naganov">mnaganov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggYzExOWVhZi4uZTk3OGQ3OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxMy0wMS0wOCAgTWlraGFpbCBO
YWdhbm92ICA8bW5hZ2Fub3ZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtDaHJvbWl1bV0gV2hl
biB2aWV3cG9ydCBpcyBkaXNhYmxlZCwgdXNlIGRpc3BsYXkgd2lkdGggaW4gRElQIHBpeGVscyBm
b3IgdGhlIGZhbGxiYWNrIHdpZHRoCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMDYwMjEKKworICAgICAgICBUaGlzIGlzIHRvIGVtdWxhdGUgJ1VzZVdp
ZGVWaWV3cG9ydCcgc2V0dGluZyBvZiBBbmRyb2lkIFdlYlZpZXcgcHJvcGVybHkuCisgICAgICAg
ICdVc2VXaWRlVmlld3BvcnQnIG5vdyBjb3JyZXNwb25kcyB0byB0aGUgJ3ZpZXdwb3J0RW5hYmxl
ZCcgc2V0dGluZy4KKyAgICAgICAgV2hlbiB0aGUgdmFsdWUgaXMgZmFsc2UsICJtZXRhIHZpZXdw
b3J0IiB0YWcgaXMgaWdub3JlZCwgYW5kIHdoZW4gY2FsY3VsYXRpbmcKKyAgICAgICAgbGF5b3V0
IHdpZHRoLCBkaXNwbGF5IHdpZHRoIGluIERJUCBwaXhlbHMgaXMgdXNlZC4KKworICAgICAgICBS
ZXZpZXdlZCBieSBBZGFtIEJhcnRoLgorCisgICAgICAgICogc3JjL0Nocm9tZUNsaWVudEltcGwu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnRJbXBsOjpkaXNwYXRjaFZpZXdwb3J0
UHJvcGVydGllc0RpZENoYW5nZSk6CisgICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnJlc2l6ZSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlZpZXdJbXBsOjpkaXBTaXplKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICogc3JjL1dl
YlZpZXdJbXBsLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYlZpZXdJbXBsKToK
KwogMjAxMy0wMS0wOCAgU3RldmUgQmxvY2sgIDxzdGV2ZWJsb2NrQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBSZW5hbWUgJ0ludFNpemUgdG9TaXplKGNvbnN0IEludFBvaW50JiknIHRvICd0b0lu
dFNpemUnCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGll
bnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwu
Y3BwCmluZGV4IDIxZGJmNDAuLmYwMTg3NDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwCkBAIC02MjAsNyArNjIwLDcgQEAgdm9pZCBDaHJv
bWVDbGllbnRJbXBsOjpzZXRUb29sVGlwKGNvbnN0IFN0cmluZyYgdG9vbHRpcFRleHQsIFRleHRE
aXJlY3Rpb24gZGlyKQogdm9pZCBDaHJvbWVDbGllbnRJbXBsOjpkaXNwYXRjaFZpZXdwb3J0UHJv
cGVydGllc0RpZENoYW5nZShjb25zdCBWaWV3cG9ydEFyZ3VtZW50cyYgYXJndW1lbnRzKSBjb25z
dAogewogI2lmIEVOQUJMRShWSUVXUE9SVCkKLSAgICBpZiAoIW1fd2ViVmlldy0+c2V0dGluZ3Mo
KS0+dmlld3BvcnRFbmFibGVkKCkgfHwgIW1fd2ViVmlldy0+aXNGaXhlZExheW91dE1vZGVFbmFi
bGVkKCkgfHwgIW1fd2ViVmlldy0+Y2xpZW50KCkgfHwgIW1fd2ViVmlldy0+cGFnZSgpKQorICAg
IGlmICghbV93ZWJWaWV3LT5pc0ZpeGVkTGF5b3V0TW9kZUVuYWJsZWQoKSB8fCAhbV93ZWJWaWV3
LT5jbGllbnQoKSB8fCAhbV93ZWJWaWV3LT5wYWdlKCkpCiAgICAgICAgIHJldHVybjsKIAogICAg
IFdlYlZpZXdDbGllbnQqIGNsaWVudCA9IG1fd2ViVmlldy0+Y2xpZW50KCk7CkBAIC02MjksMTEg
KzYyOSwyMyBAQCB2b2lkIENocm9tZUNsaWVudEltcGw6OmRpc3BhdGNoVmlld3BvcnRQcm9wZXJ0
aWVzRGlkQ2hhbmdlKGNvbnN0IFZpZXdwb3J0QXJndW1lbgogICAgIGlmICghZGV2aWNlU2l6ZS53
aWR0aCB8fCAhZGV2aWNlU2l6ZS5oZWlnaHQpCiAgICAgICAgIHJldHVybjsKIAotICAgIFNldHRp
bmdzKiBzZXR0aW5ncyA9IG1fd2ViVmlldy0+cGFnZSgpLT5zZXR0aW5ncygpOworICAgIGludCB2
aWV3cG9ydFdpZHRoSW5ESVBzID0gbV93ZWJWaWV3LT5kaXBTaXplKCkud2lkdGgoKTsKKyAgICBW
aWV3cG9ydEFyZ3VtZW50cyBlZmZlY3RpdmVWaWV3cG9ydEFyZ3VtZW50czsKKyAgICBpbnQgZWZm
ZWN0aXZlRmFsbGJhY2tXaWR0aDsKKyAgICBpZiAobV93ZWJWaWV3LT5zZXR0aW5ncygpLT52aWV3
cG9ydEVuYWJsZWQoKSkgeworICAgICAgICBlZmZlY3RpdmVWaWV3cG9ydEFyZ3VtZW50cyA9IGFy
Z3VtZW50czsKKyAgICAgICAgZWZmZWN0aXZlRmFsbGJhY2tXaWR0aCA9IHN0ZDo6bWF4KG1fd2Vi
Vmlldy0+cGFnZSgpLT5zZXR0aW5ncygpLT5sYXlvdXRGYWxsYmFja1dpZHRoKCksIHZpZXdwb3J0
V2lkdGhJbkRJUHMpOworICAgIH0gZWxzZSB7CisgICAgICAgIC8vIFRoaXMgaXMgZm9yIEFuZHJv
aWQgV2ViVmlldyB0byB1c2UgbGF5b3V0IHdpZHRoIGluIGRldmljZS1pbmRlcGVuZGVudCBwaXhl
bHMuCisgICAgICAgIC8vIE9uY2UgV2ViVmlld0ltcGwgb24gQW5kcm9pZCB3aWxsIHN0YXJ0IHVz
aW5nIERJUCBwaXhlbHMgc2l6ZSwKKyAgICAgICAgLy8gZGlzcGF0Y2hWaWV3cG9ydFByb3BlcnRp
ZXNEaWRDaGFuZ2UgY2FuIGJhaWwgb3V0IHdoZW4gdmlld3BvcnQgaXMgZGlzYWJsZWQuCisgICAg
ICAgIGVmZmVjdGl2ZVZpZXdwb3J0QXJndW1lbnRzID0gVmlld3BvcnRBcmd1bWVudHMoKTsKKyAg
ICAgICAgZWZmZWN0aXZlRmFsbGJhY2tXaWR0aCA9IHZpZXdwb3J0V2lkdGhJbkRJUHM7CisgICAg
fQogICAgIGZsb2F0IGRldmljZVBpeGVsUmF0aW8gPSBjbGllbnQtPnNjcmVlbkluZm8oKS5kZXZp
Y2VTY2FsZUZhY3RvcjsKICAgICAvLyBDYWxsIHRoZSBjb21tb24gdmlld3BvcnQgY29tcHV0aW5n
IGxvZ2ljIGluIFZpZXdwb3J0QXJndW1lbnRzLmNwcC4KICAgICBWaWV3cG9ydEF0dHJpYnV0ZXMg
Y29tcHV0ZWQgPSBjb21wdXRlVmlld3BvcnRBdHRyaWJ1dGVzKAotICAgICAgICBhcmd1bWVudHMs
IHNldHRpbmdzLT5sYXlvdXRGYWxsYmFja1dpZHRoKCksIGRldmljZVNpemUud2lkdGgsIGRldmlj
ZVNpemUuaGVpZ2h0LAorICAgICAgICBlZmZlY3RpdmVWaWV3cG9ydEFyZ3VtZW50cywgZWZmZWN0
aXZlRmFsbGJhY2tXaWR0aCwgZGV2aWNlU2l6ZS53aWR0aCwgZGV2aWNlU2l6ZS5oZWlnaHQsCiAg
ICAgICAgIGRldmljZVBpeGVsUmF0aW8sIEludFNpemUoZGV2aWNlU2l6ZS53aWR0aCwgZGV2aWNl
U2l6ZS5oZWlnaHQpKTsKIAogICAgIHJlc3RyaWN0U2NhbGVGYWN0b3JUb0luaXRpYWxTY2FsZUlm
Tm90VXNlclNjYWxhYmxlKGNvbXB1dGVkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YlZpZXdJbXBsLmNwcAppbmRleCAxNWMyNTI1Li40YmZkNTVlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCkBAIC0xNTgwLDE4ICsxNTgwLDggQEAgdm9pZCBX
ZWJWaWV3SW1wbDo6cmVzaXplKGNvbnN0IFdlYlNpemUmIG5ld1NpemUpCiAgICAgbV9zaXplID0g
bmV3U2l6ZTsKIAogI2lmIEVOQUJMRShWSUVXUE9SVCkKLSAgICBpZiAoc2V0dGluZ3MoKS0+dmll
d3BvcnRFbmFibGVkKCkpIHsKLSAgICAgICAgLy8gRmFsbGJhY2sgd2lkdGggaXMgdXNlZCB0byBs
YXlvdXQgc2l0ZXMgZGVzaWduZWQgZm9yIGRlc2t0b3AuIFRoZQotICAgICAgICAvLyBjb252ZW50
aW9uYWwgc2l6ZSB1c2VkIGJ5IGFsbCBtb2JpbGUgYnJvd3NlcnMgaXMgOTgwLiBXaGVuIGEgbW9i
aWxlCi0gICAgICAgIC8vIGRldmljZSBoYXMgYSBwYXJ0aWN1bGFybHkgd2lkZSBzY3JlZW4gKHN1
Y2ggYXMgYSAxMCIgdGFibGV0IGhlbGQgaW4KLSAgICAgICAgLy8gbGFuZHNjYXBlKSwgaXQgY2Fu
IGJlIGxhcmdlci4KLSAgICAgICAgY29uc3QgaW50IHN0YW5kYXJkRmFsbGJhY2tXaWR0aCA9IDk4
MDsKLSAgICAgICAgaW50IGRwaUluZGVwZW5kZW50Vmlld3BvcnRXaWR0aCA9IG5ld1NpemUud2lk
dGggLyBwYWdlKCktPmRldmljZVNjYWxlRmFjdG9yKCk7Ci0gICAgICAgIHNldHRpbmdzKCktPnNl
dExheW91dEZhbGxiYWNrV2lkdGgoc3RkOjptYXgoc3RhbmRhcmRGYWxsYmFja1dpZHRoLCBkcGlJ
bmRlcGVuZGVudFZpZXdwb3J0V2lkdGgpKTsKLQotICAgICAgICBWaWV3cG9ydEFyZ3VtZW50cyB2
aWV3cG9ydEFyZ3VtZW50cyA9IG1haW5GcmFtZUltcGwoKS0+ZnJhbWUoKS0+ZG9jdW1lbnQoKS0+
dmlld3BvcnRBcmd1bWVudHMoKTsKLSAgICAgICAgbV9wYWdlLT5jaHJvbWUoKS0+Y2xpZW50KCkt
PmRpc3BhdGNoVmlld3BvcnRQcm9wZXJ0aWVzRGlkQ2hhbmdlKHZpZXdwb3J0QXJndW1lbnRzKTsK
LSAgICB9CisgICAgVmlld3BvcnRBcmd1bWVudHMgdmlld3BvcnRBcmd1bWVudHMgPSBtYWluRnJh
bWVJbXBsKCktPmZyYW1lKCktPmRvY3VtZW50KCktPnZpZXdwb3J0QXJndW1lbnRzKCk7CisgICAg
bV9wYWdlLT5jaHJvbWUoKS0+Y2xpZW50KCktPmRpc3BhdGNoVmlld3BvcnRQcm9wZXJ0aWVzRGlk
Q2hhbmdlKHZpZXdwb3J0QXJndW1lbnRzKTsKICNlbmRpZgogCiAgICAgV2ViRGV2VG9vbHNBZ2Vu
dFByaXZhdGUqIGFnZW50UHJpdmF0ZSA9IGRldlRvb2xzQWdlbnRQcml2YXRlKCk7CkBAIC0zMTMw
LDYgKzMxMjAsMTUgQEAgdm9pZCBXZWJWaWV3SW1wbDo6c2V0Rml4ZWRMYXlvdXRTaXplKGNvbnN0
IFdlYlNpemUmIGxheW91dFNpemUpCiAgICAgZnJhbWUtPnZpZXcoKS0+c2V0Rml4ZWRMYXlvdXRT
aXplKGxheW91dFNpemUpOwogfQogCitXZWJDb3JlOjpGbG9hdFNpemUgV2ViVmlld0ltcGw6OmRp
cFNpemUoKSBjb25zdAoreworICAgIGlmICghcGFnZSgpIHx8IG1fd2ViU2V0dGluZ3MtPmFwcGx5
RGV2aWNlU2NhbGVGYWN0b3JJbkNvbXBvc2l0b3IoKSkKKyAgICAgICAgcmV0dXJuIEZsb2F0U2l6
ZShtX3NpemUud2lkdGgsIG1fc2l6ZS5oZWlnaHQpOworCisgICAgZmxvYXQgZGV2aWNlU2NhbGVG
YWN0b3IgPSBwYWdlKCktPmRldmljZVNjYWxlRmFjdG9yKCk7CisgICAgcmV0dXJuIEZsb2F0U2l6
ZShtX3NpemUud2lkdGggLyBkZXZpY2VTY2FsZUZhY3RvciwgbV9zaXplLmhlaWdodCAvIGRldmlj
ZVNjYWxlRmFjdG9yKTsKK30KKwogdm9pZCBXZWJWaWV3SW1wbDo6cGVyZm9ybU1lZGlhUGxheWVy
QWN0aW9uKGNvbnN0IFdlYk1lZGlhUGxheWVyQWN0aW9uJiBhY3Rpb24sCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgV2ViUG9pbnQmIGxvY2F0aW9uKQog
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaCBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgKaW5kZXggYjVlMDIxMi4u
ZDczNTk4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0lt
cGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCkBAIC0z
NSw2ICszNSw3IEBACiAjaW5jbHVkZSAiQ29udGV4dE1lbnVDbGllbnRJbXBsLmgiCiAjaW5jbHVk
ZSAiRHJhZ0NsaWVudEltcGwuaCIKICNpbmNsdWRlICJFZGl0b3JDbGllbnRJbXBsLmgiCisjaW5j
bHVkZSAiRmxvYXRTaXplLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0M0QuaCIKICNpbmNs
dWRlICJHcmFwaGljc0xheWVyLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yQ2xpZW50SW1wbC5oIgpA
QCAtNjQsNiArNjUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBDaHJvbWl1bURhdGFP
YmplY3Q7CiBjbGFzcyBDb2xvcjsKIGNsYXNzIERvY3VtZW50TG9hZGVyOworY2xhc3MgRmxvYXRT
aXplOwogY2xhc3MgRnJhbWU7CiBjbGFzcyBHcmFwaGljc0NvbnRleHQzRDsKIGNsYXNzIEhpc3Rv
cnlJdGVtOwpAQCAtMjM4LDYgKzI0MCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZW5h
YmxlRml4ZWRMYXlvdXRNb2RlKGJvb2wgZW5hYmxlKTsKICAgICB2aXJ0dWFsIFdlYlNpemUgZml4
ZWRMYXlvdXRTaXplKCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHNldEZpeGVkTGF5b3V0U2l6
ZShjb25zdCBXZWJTaXplJik7CisgICAgdmlydHVhbCBXZWJDb3JlOjpGbG9hdFNpemUgZGlwU2l6
ZSgpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBlbmFibGVBdXRvUmVzaXplTW9kZSgKICAgICAg
ICAgY29uc3QgV2ViU2l6ZSYgbWluU2l6ZSwKICAgICAgICAgY29uc3QgV2ViU2l6ZSYgbWF4U2l6
ZSk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>