<?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>48506</bug_id>
          
          <creation_ts>2010-10-28 04:15:16 -0700</creation_ts>
          <short_desc>Move DeviceOrientationClientMock from LayoutTestController to WebViewHost</short_desc>
          <delta_ts>2010-11-16 02:54:49 -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>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>49069</dependson>
          
          <everconfirmed>0</everconfirmed>
          <reporter name="John Knottenbelt">jknotten</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>hans</cc>
    
    <cc>jorlow</cc>
    
    <cc>steveblock</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>300980</commentid>
    <comment_count>0</comment_count>
    <who name="John Knottenbelt">jknotten</who>
    <bug_when>2010-10-28 04:15:16 -0700</bug_when>
    <thetext>The test fast/dom/DeviceOrientation/no-page-cache.html opens an additional
window which results in a secondary page with its own
DeviceOrientationController. Since DeviceOrientationClientMock maintains a back
pointer to the corresponding WebCore::Page&apos;s DeviceOrientationController, there
should be one DeviceOrientationClientMock per DeviceOrientationController. 

In DumpRenderTree (unlike test_shell) there is only one instance of
LayoutTestController. LayoutTestController owns WebDeviceOrientationClientMock
which owns DeviceOrientationClientMock, so there is only one instance of the
mock that must serve two controllers (in the above test).

There is exactly one WebViewHost instance per WebView (per page). I propose that
we move the mock to WebViewHost, and that
LayoutTestController::setMockOrientation delegates to the TestShell&apos;s primary
WebView.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>301019</commentid>
    <comment_count>1</comment_count>
      <attachid>72178</attachid>
    <who name="John Knottenbelt">jknotten</who>
    <bug_when>2010-10-28 06:04:05 -0700</bug_when>
    <thetext>Created attachment 72178
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>301028</commentid>
    <comment_count>2</comment_count>
      <attachid>72178</attachid>
    <who name="Hans Wennborg">hans</who>
    <bug_when>2010-10-28 06:24:57 -0700</bug_when>
    <thetext>Comment on attachment 72178
Patch

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

This looks fine (assuming the tests still pass of course :), I only have a couple of nits (also I&apos;m not a real reviewer):

&gt; WebCore/ChangeLog:5
&gt; +        Add an assert to check that the DeviceOrientationClient is 

DeviceOrientationClient -&gt; DeviceOrientationClientMock?

&gt; WebKitTools/ChangeLog:6
&gt; +        WebViewHost.

Maybe add a comment that this is to make sure that each Page gets its own client?

&gt; WebKitTools/DumpRenderTree/chromium/LayoutTestController.cpp:1562
&gt; +WebKit::WebDeviceOrientationClientMock* LayoutTestController::deviceOrientationClientMock()

There&apos;s a using directive for the WebKit namespace, so WebKit:: shouldn&apos;t be necessary.

&gt; WebKitTools/DumpRenderTree/chromium/WebViewHost.cpp:1110
&gt; +    PassOwnPtr&lt;WebDeviceOrientationClientMock&gt; deviceOrientationClientMock = m_deviceOrientationClientMock.release();

Should this be a PassOwnPtr? I&apos;m always confused by these smart pointers, but since release() returns a raw pointer, isn&apos;t that what we should use? Steve would know this better than me, I think..</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>301034</commentid>
    <comment_count>3</comment_count>
      <attachid>72178</attachid>
    <who name="John Knottenbelt">jknotten</who>
    <bug_when>2010-10-28 06:41:30 -0700</bug_when>
    <thetext>Comment on attachment 72178
Patch

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

&gt;&gt; WebKitTools/DumpRenderTree/chromium/WebViewHost.cpp:1110
&gt;&gt; +    PassOwnPtr&lt;WebDeviceOrientationClientMock&gt; deviceOrientationClientMock = m_deviceOrientationClientMock.release();
&gt; 
&gt; Should this be a PassOwnPtr? I&apos;m always confused by these smart pointers, but since release() returns a raw pointer, isn&apos;t that what we should use? Steve would know this better than me, I think..

PassOwnPtr will take ownership of the mock, and set the member variable m_deviceOrientationClientMock to 0. The reason for doing this is because the destructor will be invoked and we don&apos;t actually want the mock to be destroyed and reallocated because the WebView() still exists, meaning that the DeviceOrientationController still have a pointer back to the current (Web)DeviceOrientationControllerMock. This means that the address of the DeviceOrientationControllerMock should stay the same. 

I need to talk to Kent Tamura about whether the placement destruction / new is necessary, but in the meantime this should do the trick.

If it is important to reset the state of the mock between tests (the tests run fine without), we should add a reset() method to the mock and call it at the end of this method.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>306718</commentid>
    <comment_count>4</comment_count>
      <attachid>73361</attachid>
    <who name="John Knottenbelt">jknotten</who>
    <bug_when>2010-11-09 04:56:06 -0800</bug_when>
    <thetext>Created attachment 73361
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>306721</commentid>
    <comment_count>5</comment_count>
    <who name="John Knottenbelt">jknotten</who>
    <bug_when>2010-11-09 04:57:00 -0800</bug_when>
    <thetext>WebViewHost::reset() refactored, so no longer need rather strange PassOwnPtr combination.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>306746</commentid>
    <comment_count>6</comment_count>
    <who name="Hans Wennborg">hans</who>
    <bug_when>2010-11-09 06:06:54 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; WebViewHost::reset() refactored, so no longer need rather strange PassOwnPtr combination.

Great!

I believe my first three nits still apply, though ;)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>306765</commentid>
    <comment_count>7</comment_count>
      <attachid>73372</attachid>
    <who name="John Knottenbelt">jknotten</who>
    <bug_when>2010-11-09 07:03:45 -0800</bug_when>
    <thetext>Created attachment 73372
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>307352</commentid>
    <comment_count>8</comment_count>
    <who name="Hans Wennborg">hans</who>
    <bug_when>2010-11-10 07:47:50 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; Created an attachment (id=73372) [details]
&gt; Patch

LGTM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>307866</commentid>
    <comment_count>9</comment_count>
      <attachid>73372</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2010-11-11 06:11:21 -0800</bug_when>
    <thetext>Comment on attachment 73372
Patch

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

&gt; WebKitTools/DumpRenderTree/chromium/LayoutTestController.cpp:1569
&gt; +    return m_shell-&gt;webViewHost()-&gt;deviceOrientationClientMock();

So webViewHost() returns the primary WebView, right? This means that JS calls in all pages will only configure the mock for the main page. Maybe add a comment?

&gt; WebKitTools/DumpRenderTree/chromium/LayoutTestController.h:446
&gt; +    WebKit::WebDeviceOrientationClientMock* deviceOrientationClientMock();

Is there any need for this method if it&apos;s a one-liner and only called once?

&gt; WebKitTools/DumpRenderTree/chromium/WebViewHost.cpp:584
&gt; +WebDeviceOrientationClient* WebViewHost::deviceOrientationClient()

Is this method needed? Can we just use deviceOrientationClientMock()? Where is it called from?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>309303</commentid>
    <comment_count>10</comment_count>
      <attachid>73904</attachid>
    <who name="John Knottenbelt">jknotten</who>
    <bug_when>2010-11-15 09:00:17 -0800</bug_when>
    <thetext>Created attachment 73904
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>309315</commentid>
    <comment_count>11</comment_count>
      <attachid>73904</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-11-15 09:15:40 -0800</bug_when>
    <thetext>Comment on attachment 73904
Patch

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

r=me

&gt; WebCore/platform/mock/DeviceOrientationClientMock.cpp:43
&gt; +    ASSERT(controller);

It&apos;s probably better to keep the m_controler check after

&gt; WebCore/platform/mock/DeviceOrientationClientMock.cpp:-43
&gt; -    ASSERT(m_controller);

I think it&apos;s better to leave this one.

&gt; WebKitTools/ChangeLog:9
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=48506

&quot;&quot;&quot;
Reviewed by

Title
this url

description
&quot;&quot;&quot;

Also describe why it&apos;s a design constraint.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>309325</commentid>
    <comment_count>12</comment_count>
      <attachid>73906</attachid>
    <who name="John Knottenbelt">jknotten</who>
    <bug_when>2010-11-15 09:51:41 -0800</bug_when>
    <thetext>Created attachment 73906
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>309642</commentid>
    <comment_count>13</comment_count>
      <attachid>73906</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-11-16 02:35:52 -0800</bug_when>
    <thetext>Comment on attachment 73906
Patch

lgtm</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>309646</commentid>
    <comment_count>14</comment_count>
      <attachid>73906</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-11-16 02:54:42 -0800</bug_when>
    <thetext>Comment on attachment 73906
Patch

Clearing flags on attachment: 73906

Committed r72071: &lt;http://trac.webkit.org/changeset/72071&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>309647</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-11-16 02:54:49 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>72178</attachid>
            <date>2010-10-28 06:04:05 -0700</date>
            <delta_ts>2010-11-09 04:56:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-48506-20101028140403.patch</filename>
            <type>text/plain</type>
            <size>8870</size>
            <attacher name="John Knottenbelt">jknotten</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZDQ2NGI5YjQxYzIxZTdmZTYyNjgwZDYxYmY4ZjIyYzllOTUxYjMyOC4uZGM4MmM5MmI2M2VlM2Mz
NWI0Yzg3YjQzZjA0YjUzNTQyOGQzYTIxMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMC0xMC0yOCAgSm9o
biBLbm90dGVuYmVsdCAgPGprbm90dGVuQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYW4gYXNzZXJ0IHRvIGNoZWNrIHRo
YXQgdGhlIERldmljZU9yaWVudGF0aW9uQ2xpZW50IGlzIAorICAgICAgICB1c2VkIGJ5IG9ubHkg
b25lIGNvbnRyb2xsZXIuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD00ODUwNgorCisgICAgICAgICogcGxhdGZvcm0vbW9jay9EZXZpY2VPcmllbnRhdGlv
bkNsaWVudE1vY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25DbGll
bnRNb2NrOjpzZXRDb250cm9sbGVyKToKKwogMjAxMC0xMC0yOCAgUGFzY2FsIE1hc3NpbWlubyAg
PHBhc2NhbC5tYXNzaW1pbm9AZ21haWwuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFkYW0g
QmFydGguCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL21vY2svRGV2aWNlT3JpZW50YXRp
b25DbGllbnRNb2NrLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9EZXZpY2VPcmllbnRhdGlv
bkNsaWVudE1vY2suY3BwCmluZGV4IGMyYzkzMTZmNjg5YzZjMWJjNTVhYjNiMmRjMDFmZDkzZTkw
OThhOWEuLjZjYWEyMGEyMWMxMjA0M2FlZmFkOGRlYWU2NjUxYTExZGRmYWFiZjkgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9EZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2suY3Bw
CisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9EZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2su
Y3BwCkBAIC0zOSw4ICszOSw5IEBAIERldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jazo6RGV2aWNl
T3JpZW50YXRpb25DbGllbnRNb2NrKCkKIAogdm9pZCBEZXZpY2VPcmllbnRhdGlvbkNsaWVudE1v
Y2s6OnNldENvbnRyb2xsZXIoRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKiBjb250cm9sbGVy
KQogeworICAgIEFTU0VSVCghbV9jb250cm9sbGVyKTsKKyAgICBBU1NFUlQoY29udHJvbGxlcik7
CiAgICAgbV9jb250cm9sbGVyID0gY29udHJvbGxlcjsKLSAgICBBU1NFUlQobV9jb250cm9sbGVy
KTsKIH0KIAogdm9pZCBEZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2s6OnN0YXJ0VXBkYXRpbmco
KQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nIGIvV2ViS2l0VG9vbHMvQ2hhbmdl
TG9nCmluZGV4IDJmMDI4OTk2NDFkMDY0YjI1YmYyYWE5ZTE3YmJkYTNiMzIxMGU3ZDkuLmQ5MDM3
N2I2ZTkxOGZhZjcxZWQxOWQ3MmFiNjgzZDQwYjBkN2IyOTIgMTAwNjQ0Ci0tLSBhL1dlYktpdFRv
b2xzL0NoYW5nZUxvZworKysgYi9XZWJLaXRUb29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBA
QAorMjAxMC0xMC0yOCAgSm9obiBLbm90dGVuYmVsdCAgPGprbm90dGVuQGNocm9taXVtLm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3ZlIERl
dmljZU9yaWVudGF0aW9uQ2xpZW50TW9jayBmcm9tIExheW91dFRlc3RDb250cm9sbGVyIHRvCisg
ICAgICAgIFdlYlZpZXdIb3N0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NDg1MDYKKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xh
eW91dFRlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpz
ZXRNb2NrRGV2aWNlT3JpZW50YXRpb24pOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6
OmRldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jayk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHA6CisgICAgICAgIChXZWJWaWV3SG9zdDo6ZGV2aWNl
T3JpZW50YXRpb25DbGllbnRNb2NrKToKKyAgICAgICAgKFdlYlZpZXdIb3N0OjpkZXZpY2VPcmll
bnRhdGlvbkNsaWVudCk6CisgICAgICAgIChXZWJWaWV3SG9zdDo6cmVzZXQpOgorICAgICAgICAq
IER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0Lmg6CisKIDIwMTAtMTAtMjcgIEVy
aWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFkYW0g
QmFydGguCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9M
YXlvdXRUZXN0Q29udHJvbGxlci5jcHAgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKaW5kZXggMWE2MTg3ZWI0ZWZkNmQ1OGU1NzU1
NThjYzE4MDk4MTcwYjQ2ODQ3ZC4uY2Y3MjAzZDk0ODUwOGJkNzNhYjQwNDA3N2E1OTliMWM3NWVk
YTFjMCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5
b3V0VGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2No
cm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcApAQCAtMTQ5Nyw5ICsxNDk3LDcgQEAgdm9p
ZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0TW9ja0RldmljZU9yaWVudGF0aW9uKGNvbnN0IENw
cEFyZ3VtZW50TGlzdCYgYXJndW0KICAgICAgICAgcmV0dXJuOwogCiAgICAgV2ViRGV2aWNlT3Jp
ZW50YXRpb24gb3JpZW50YXRpb24oYXJndW1lbnRzWzBdLnRvQm9vbGVhbigpLCBhcmd1bWVudHNb
MV0udG9Eb3VibGUoKSwgYXJndW1lbnRzWzJdLnRvQm9vbGVhbigpLCBhcmd1bWVudHNbM10udG9E
b3VibGUoKSwgYXJndW1lbnRzWzRdLnRvQm9vbGVhbigpLCBhcmd1bWVudHNbNV0udG9Eb3VibGUo
KSk7Ci0KLSAgICBBU1NFUlQobV9kZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2spOwotICAgIG1f
ZGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrLT5zZXRPcmllbnRhdGlvbihvcmllbnRhdGlvbik7
CisgICAgZGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrKCktPnNldE9yaWVudGF0aW9uKG9yaWVu
dGF0aW9uKTsKIH0KIAogdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0R2VvbG9jYXRpb25Q
ZXJtaXNzaW9uKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW50KiBy
ZXN1bHQpCkBAIC0xNTYxLDExICsxNTU5LDkgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6
bWFya2VyVGV4dEZvckxpc3RJdGVtKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJncywgQ3AKICAg
ICAgICAgcmVzdWx0LT5zZXQoZWxlbWVudC5kb2N1bWVudCgpLmZyYW1lKCktPm1hcmtlclRleHRG
b3JMaXN0SXRlbShlbGVtZW50KS51dGY4KCkpOwogfQogCi1XZWJEZXZpY2VPcmllbnRhdGlvbkNs
aWVudCogTGF5b3V0VGVzdENvbnRyb2xsZXI6OmRldmljZU9yaWVudGF0aW9uQ2xpZW50KCkKK1dl
YktpdDo6V2ViRGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrKiBMYXlvdXRUZXN0Q29udHJvbGxl
cjo6ZGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrKCkKIHsKLSAgICBpZiAoIW1fZGV2aWNlT3Jp
ZW50YXRpb25DbGllbnRNb2NrLmdldCgpKQotICAgICAgICBtX2RldmljZU9yaWVudGF0aW9uQ2xp
ZW50TW9jay5zZXQoV2ViRGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrOjpjcmVhdGUoKSk7Ci0g
ICAgcmV0dXJuIG1fZGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrLmdldCgpOworICAgIHJldHVy
biBtX3NoZWxsLT53ZWJWaWV3SG9zdCgpLT5kZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2soKTsK
IH0KIAogdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6aGFzU3BlbGxpbmdNYXJrZXIoY29uc3Qg
Q3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENwcFZhcmlhbnQqIHJlc3VsdCkKZGlmZiAtLWdp
dCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9s
bGVyLmggYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29u
dHJvbGxlci5oCmluZGV4IGZjMTY4Mjc0MWI3Mjg2MWQ4MzU4MGU4OTNmNjBlZWJiYjU3NTUzMTEu
LjdjNzk4NWIxZWE5ZTJlYzBlMmU4MjJkN2VmY2QwZDYyNTFiMWNkMTMgMTAwNjQ0Ci0tLSBhL1dl
YktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmgK
KysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRy
b2xsZXIuaApAQCAtNDksNyArNDksNiBAQAogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KIAogbmFt
ZXNwYWNlIFdlYktpdCB7Ci1jbGFzcyBXZWJEZXZpY2VPcmllbnRhdGlvbkNsaWVudDsKIGNsYXNz
IFdlYkRldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jazsKIGNsYXNzIFdlYlNwZWVjaElucHV0Q29u
dHJvbGxlcjsKIGNsYXNzIFdlYlNwZWVjaElucHV0Q29udHJvbGxlck1vY2s7CkBAIC0zNDAsNyAr
MzM5LDYgQEAgcHVibGljOgogICAgIHZvaWQgc2V0V29ya1F1ZXVlRnJvemVuKGJvb2wgZnJvemVu
KSB7IG1fd29ya1F1ZXVlLnNldEZyb3plbihmcm96ZW4pOyB9CiAKICAgICBXZWJLaXQ6OldlYlNw
ZWVjaElucHV0Q29udHJvbGxlciogc3BlZWNoSW5wdXRDb250cm9sbGVyKFdlYktpdDo6V2ViU3Bl
ZWNoSW5wdXRMaXN0ZW5lciopOwotICAgIFdlYktpdDo6V2ViRGV2aWNlT3JpZW50YXRpb25DbGll
bnQqIGRldmljZU9yaWVudGF0aW9uQ2xpZW50KCk7CiAgICAgYm9vbCBzaG91bGREdW1wQXNUZXh0
KCkgeyByZXR1cm4gbV9kdW1wQXNUZXh0OyB9CiAgICAgYm9vbCBzaG91bGREdW1wRWRpdGluZ0Nh
bGxiYWNrcygpIHsgcmV0dXJuIG1fZHVtcEVkaXRpbmdDYWxsYmFja3M7IH0KICAgICBib29sIHNo
b3VsZER1bXBGcmFtZUxvYWRDYWxsYmFja3MoKSB7IHJldHVybiBtX2R1bXBGcmFtZUxvYWRDYWxs
YmFja3M7IH0KQEAgLTQ0NSw2ICs0NDMsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgc3VzcGVuZEFu
aW1hdGlvbnMoKTsKICAgICB2b2lkIHJlc3VtZUFuaW1hdGlvbnMoKTsKIAorICAgIFdlYktpdDo6
V2ViRGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrKiBkZXZpY2VPcmllbnRhdGlvbkNsaWVudE1v
Y2soKTsKKwogICAgIC8vIFVzZWQgZm9yIHRlc3QgdGltZW91dHMuCiAgICAgVGFza0xpc3QgbV90
YXNrTGlzdDsKIApAQCAtNTQ1LDggKzU0NSw2IEBAIHByaXZhdGU6CiAgICAgV2ViS2l0OjpXZWJV
UkwgbV91c2VyU3R5bGVTaGVldExvY2F0aW9uOwogCiAgICAgT3duUHRyPFdlYktpdDo6V2ViU3Bl
ZWNoSW5wdXRDb250cm9sbGVyTW9jaz4gbV9zcGVlY2hJbnB1dENvbnRyb2xsZXJNb2NrOwotCi0g
ICAgT3duUHRyPFdlYktpdDo6V2ViRGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrPiBtX2Rldmlj
ZU9yaWVudGF0aW9uQ2xpZW50TW9jazsKIH07CiAKICNlbmRpZiAvLyBMYXlvdXRUZXN0Q29udHJv
bGxlcl9oCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9X
ZWJWaWV3SG9zdC5jcHAgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJW
aWV3SG9zdC5jcHAKaW5kZXggOTc2NzYwNWY0NmZhYjU1OGRiMjhhMzc2ZWRmODIwYmU2NjkxMzIy
NC4uZmQyMGNkYzc4NTkxYTJjMDMwOWVjNzg0MTllZTJhNGYxOWRkOThlMCAxMDA2NDQKLS0tIGEv
V2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuY3BwCisrKyBi
L1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNwcApAQCAt
MzksNiArMzksNyBAQAogI2luY2x1ZGUgIldlYkNvbnNvbGVNZXNzYWdlLmgiCiAjaW5jbHVkZSAi
V2ViQ29udGV4dE1lbnVEYXRhLmgiCiAjaW5jbHVkZSAiV2ViRGF0YVNvdXJjZS5oIgorI2luY2x1
ZGUgIldlYkRldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jay5oIgogI2luY2x1ZGUgIldlYkRyYWdE
YXRhLmgiCiAjaW5jbHVkZSAiV2ViRWxlbWVudC5oIgogI2luY2x1ZGUgIldlYkZyYW1lLmgiCkBA
IC01NzMsOSArNTc0LDE2IEBAIFdlYlNwZWVjaElucHV0Q29udHJvbGxlciogV2ViVmlld0hvc3Q6
OnNwZWVjaElucHV0Q29udHJvbGxlcihXZWJLaXQ6OldlYlNwZWVjaEluCiAgICAgcmV0dXJuIG1f
c2hlbGwtPmxheW91dFRlc3RDb250cm9sbGVyKCktPnNwZWVjaElucHV0Q29udHJvbGxlcihsaXN0
ZW5lcik7CiB9CiAKLVdlYktpdDo6V2ViRGV2aWNlT3JpZW50YXRpb25DbGllbnQqIFdlYlZpZXdI
b3N0OjpkZXZpY2VPcmllbnRhdGlvbkNsaWVudCgpCitXZWJEZXZpY2VPcmllbnRhdGlvbkNsaWVu
dE1vY2sqIFdlYlZpZXdIb3N0OjpkZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2soKQogewotICAg
IHJldHVybiBtX3NoZWxsLT5sYXlvdXRUZXN0Q29udHJvbGxlcigpLT5kZXZpY2VPcmllbnRhdGlv
bkNsaWVudCgpOworICAgIGlmICghbV9kZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2suZ2V0KCkp
CisgICAgICAgIG1fZGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrLnNldChXZWJEZXZpY2VPcmll
bnRhdGlvbkNsaWVudE1vY2s6OmNyZWF0ZSgpKTsKKyAgICByZXR1cm4gbV9kZXZpY2VPcmllbnRh
dGlvbkNsaWVudE1vY2suZ2V0KCk7Cit9CisKK1dlYkRldmljZU9yaWVudGF0aW9uQ2xpZW50KiBX
ZWJWaWV3SG9zdDo6ZGV2aWNlT3JpZW50YXRpb25DbGllbnQoKQoreworICAgIHJldHVybiBkZXZp
Y2VPcmllbnRhdGlvbkNsaWVudE1vY2soKTsKIH0KIAogLy8gV2ViV2lkZ2V0Q2xpZW50IC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBA
IC0xMDk5LDEyICsxMTA3LDE0IEBAIFdlYldpZGdldCogV2ViVmlld0hvc3Q6OndlYldpZGdldCgp
IGNvbnN0CiB2b2lkIFdlYlZpZXdIb3N0OjpyZXNldCgpCiB7CiAgICAgLy8gRG8gYSBsaXR0bGUg
cGxhY2VtZW50IG5ldyBkYW5jZS4uLgorICAgIFBhc3NPd25QdHI8V2ViRGV2aWNlT3JpZW50YXRp
b25DbGllbnRNb2NrPiBkZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2sgPSBtX2RldmljZU9yaWVu
dGF0aW9uQ2xpZW50TW9jay5yZWxlYXNlKCk7CiAgICAgVGVzdFNoZWxsKiBzaGVsbCA9IG1fc2hl
bGw7CiAgICAgV2ViV2lkZ2V0KiB3aWRnZXQgPSBtX3dlYldpZGdldDsKICAgICB0aGlzLT5+V2Vi
Vmlld0hvc3QoKTsKICAgICBuZXcgKHRoaXMpIFdlYlZpZXdIb3N0KHNoZWxsKTsKICAgICBzZXRX
ZWJXaWRnZXQod2lkZ2V0KTsKICAgICB3ZWJWaWV3KCktPm1haW5GcmFtZSgpLT5zZXROYW1lKFdl
YlN0cmluZygpKTsKKyAgICBtX2RldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jayA9IGRldmljZU9y
aWVudGF0aW9uQ2xpZW50TW9jazsKIH0KIAogdm9pZCBXZWJWaWV3SG9zdDo6c2V0U2VsZWN0VHJh
aWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChib29sIGVuYWJsZWQpCmRpZmYgLS1naXQgYS9XZWJLaXRU
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5oIGIvV2ViS2l0VG9vbHMv
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuaAppbmRleCBlYTcwNTc0NWQ5MzVi
NGRlNjUyYjA4YzRjMTc0N2UwYzc5NzgyNDNlLi45ZTBlZDBjNDU3ZjViZmM0OGIxNmRiMDA0MTky
MTZlY2E2MmQ5NjI4IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9XZWJWaWV3SG9zdC5oCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL1dlYlZpZXdIb3N0LmgKQEAgLTQ3LDYgKzQ3LDcgQEAgY2xhc3MgVGVzdFNoZWxsOwogbmFt
ZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBXZWJGcmFtZTsKIGNsYXNzIFdlYkRldmljZU9yaWVudGF0
aW9uQ2xpZW50OworY2xhc3MgV2ViRGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrOwogY2xhc3Mg
V2ViR2VvbG9jYXRpb25TZXJ2aWNlTW9jazsKIGNsYXNzIFdlYlNwZWVjaElucHV0Q29udHJvbGxl
cjsKIGNsYXNzIFdlYlNwZWVjaElucHV0TGlzdGVuZXI7CkBAIC0xOTMsNiArMTk0LDggQEAgY2xh
c3MgV2ViVmlld0hvc3QgOiBwdWJsaWMgV2ViS2l0OjpXZWJWaWV3Q2xpZW50LCBwdWJsaWMgV2Vi
S2l0OjpXZWJGcmFtZUNsaWVudCwKICAgICB2aXJ0dWFsIHZvaWQgZGlkUnVuSW5zZWN1cmVDb250
ZW50KFdlYktpdDo6V2ViRnJhbWUqLCBjb25zdCBXZWJLaXQ6OldlYlNlY3VyaXR5T3JpZ2luJik7
CiAgICAgdmlydHVhbCBib29sIGFsbG93U2NyaXB0KFdlYktpdDo6V2ViRnJhbWUqLCBib29sIGVu
YWJsZWRQZXJTZXR0aW5ncyk7CiAKKyAgICBXZWJLaXQ6OldlYkRldmljZU9yaWVudGF0aW9uQ2xp
ZW50TW9jayogZGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrKCk7CisKIHByaXZhdGU6CiAgICAg
TGF5b3V0VGVzdENvbnRyb2xsZXIqIGxheW91dFRlc3RDb250cm9sbGVyKCkgY29uc3Q7CiAKQEAg
LTI5Nyw2ICszMDAsOCBAQCBwcml2YXRlOgogICAgIE93blB0cjxXZWJLaXQ6OldlYkdlb2xvY2F0
aW9uU2VydmljZU1vY2s+IG1fZ2VvbG9jYXRpb25TZXJ2aWNlTW9jazsKICNlbmRpZgogCisgICAg
T3duUHRyPFdlYktpdDo6V2ViRGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrPiBtX2RldmljZU9y
aWVudGF0aW9uQ2xpZW50TW9jazsKKwogICAgIE93blB0cjxUZXN0TmF2aWdhdGlvbkNvbnRyb2xs
ZXIqPiBtX25hdmlnYXRpb25Db250cm9sbGVyOwogfTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>73361</attachid>
            <date>2010-11-09 04:56:06 -0800</date>
            <delta_ts>2010-11-09 07:03:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-48506-20101109125604.patch</filename>
            <type>text/plain</type>
            <size>8331</size>
            <attacher name="John Knottenbelt">jknotten</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
YWI4Mjg3YTJiYjY3M2ExNGU2NjZiMGQ1Y2UzNDZhZThhYjc5M2UwMi4uMzIzNmI1NTg2OGVlMGU1
ZWJlNzcxNjYzMjMxOTEwMDAyMGZlNmUyYyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMC0xMS0wOCAgSm9o
biBLbm90dGVuYmVsdCAgPGprbm90dGVuQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYW4gYXNzZXJ0IHRvIGNoZWNrIHRo
YXQgdGhlIERldmljZU9yaWVudGF0aW9uQ2xpZW50IGlzIAorICAgICAgICB1c2VkIGJ5IG9ubHkg
b25lIGNvbnRyb2xsZXIuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD00ODUwNgorCisgICAgICAgICogcGxhdGZvcm0vbW9jay9EZXZpY2VPcmllbnRhdGlv
bkNsaWVudE1vY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25DbGll
bnRNb2NrOjpzZXRDb250cm9sbGVyKToKKwogMjAxMC0xMS0wOSAgQ2hyaXMgUm9nZXJzICA8Y3Jv
Z2Vyc0Bnb29nbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEtlbm5ldGggUnVzc2VsbC4K
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9EZXZpY2VPcmllbnRhdGlvbkNsaWVu
dE1vY2suY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL0RldmljZU9yaWVudGF0aW9uQ2xpZW50
TW9jay5jcHAKaW5kZXggYzJjOTMxNmY2ODljNmMxYmM1NWFiM2IyZGMwMWZkOTNlOTA5OGE5YS4u
NmNhYTIwYTIxYzEyMDQzYWVmYWQ4ZGVhZTY2NTFhMTFkZGZhYWJmOSAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9wbGF0Zm9ybS9tb2NrL0RldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jay5jcHAKKysrIGIv
V2ViQ29yZS9wbGF0Zm9ybS9tb2NrL0RldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jay5jcHAKQEAg
LTM5LDggKzM5LDkgQEAgRGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrOjpEZXZpY2VPcmllbnRh
dGlvbkNsaWVudE1vY2soKQogCiB2b2lkIERldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jazo6c2V0
Q29udHJvbGxlcihEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIqIGNvbnRyb2xsZXIpCiB7Cisg
ICAgQVNTRVJUKCFtX2NvbnRyb2xsZXIpOworICAgIEFTU0VSVChjb250cm9sbGVyKTsKICAgICBt
X2NvbnRyb2xsZXIgPSBjb250cm9sbGVyOwotICAgIEFTU0VSVChtX2NvbnRyb2xsZXIpOwogfQog
CiB2b2lkIERldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jazo6c3RhcnRVcGRhdGluZygpCmRpZmYg
LS1naXQgYS9XZWJLaXRUb29scy9DaGFuZ2VMb2cgYi9XZWJLaXRUb29scy9DaGFuZ2VMb2cKaW5k
ZXggYzg4Y2UzZWQ3OWNiYjlhZmJhNTczYTZlYjFiZDMwZDAwNTlhOTZhZi4uNzlhMTI4MDQzZTNl
NjJmOWIzZmM3NTI0OWEzYWFjNTllODM3MGY4NyAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvQ2hh
bmdlTG9nCisrKyBiL1dlYktpdFRvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDEw
LTExLTA4ICBKb2huIEtub3R0ZW5iZWx0ICA8amtub3R0ZW5AY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmUgRGV2aWNlT3Jp
ZW50YXRpb25DbGllbnRNb2NrIGZyb20gTGF5b3V0VGVzdENvbnRyb2xsZXIgdG8KKyAgICAgICAg
V2ViVmlld0hvc3QuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD00ODUwNgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVz
dENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldE1vY2tE
ZXZpY2VPcmllbnRhdGlvbik6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6ZGV2aWNl
T3JpZW50YXRpb25DbGllbnRNb2NrKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL1dlYlZpZXdIb3N0LmNwcDoKKyAgICAgICAgKFdlYlZpZXdIb3N0OjpkZXZpY2VPcmllbnRh
dGlvbkNsaWVudE1vY2spOgorICAgICAgICAoV2ViVmlld0hvc3Q6OmRldmljZU9yaWVudGF0aW9u
Q2xpZW50KToKKyAgICAgICAgKFdlYlZpZXdIb3N0OjpyZXNldCk6CisgICAgICAgICogRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuaDoKKwogMjAxMC0xMS0wOCAgTmljb2xhcyBE
dWZyZXNuZSAgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcCBiL1dlYktpdFRvb2xz
L0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAppbmRleCA1
YjBjODQ0MmNkMmMwMjhiMDg2NmZjNmEzODVjYTIwYTRiMTdhYTcyLi40NTVkY2IyNWU3N2NkNzdj
NjIwYjZiODZjZjBjZTRlODAyOGQwYTk2IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKKysrIGIvV2ViS2l0VG9v
bHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCkBAIC0x
NTAyLDkgKzE1MDIsNyBAQCB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRNb2NrRGV2aWNl
T3JpZW50YXRpb24oY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bQogICAgICAgICByZXR1cm47
CiAKICAgICBXZWJEZXZpY2VPcmllbnRhdGlvbiBvcmllbnRhdGlvbihhcmd1bWVudHNbMF0udG9C
b29sZWFuKCksIGFyZ3VtZW50c1sxXS50b0RvdWJsZSgpLCBhcmd1bWVudHNbMl0udG9Cb29sZWFu
KCksIGFyZ3VtZW50c1szXS50b0RvdWJsZSgpLCBhcmd1bWVudHNbNF0udG9Cb29sZWFuKCksIGFy
Z3VtZW50c1s1XS50b0RvdWJsZSgpKTsKLQotICAgIEFTU0VSVChtX2RldmljZU9yaWVudGF0aW9u
Q2xpZW50TW9jayk7Ci0gICAgbV9kZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2stPnNldE9yaWVu
dGF0aW9uKG9yaWVudGF0aW9uKTsKKyAgICBkZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2soKS0+
c2V0T3JpZW50YXRpb24ob3JpZW50YXRpb24pOwogfQogCiB2b2lkIExheW91dFRlc3RDb250cm9s
bGVyOjpzZXRHZW9sb2NhdGlvblBlcm1pc3Npb24oY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1
bWVudHMsIENwcFZhcmlhbnQqIHJlc3VsdCkKQEAgLTE1NjYsMTEgKzE1NjQsOSBAQCB2b2lkIExh
eW91dFRlc3RDb250cm9sbGVyOjptYXJrZXJUZXh0Rm9yTGlzdEl0ZW0oY29uc3QgQ3BwQXJndW1l
bnRMaXN0JiBhcmdzLCBDcAogICAgICAgICByZXN1bHQtPnNldChlbGVtZW50LmRvY3VtZW50KCku
ZnJhbWUoKS0+bWFya2VyVGV4dEZvckxpc3RJdGVtKGVsZW1lbnQpLnV0ZjgoKSk7CiB9CiAKLVdl
YkRldmljZU9yaWVudGF0aW9uQ2xpZW50KiBMYXlvdXRUZXN0Q29udHJvbGxlcjo6ZGV2aWNlT3Jp
ZW50YXRpb25DbGllbnQoKQorV2ViS2l0OjpXZWJEZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2sq
IExheW91dFRlc3RDb250cm9sbGVyOjpkZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2soKQogewot
ICAgIGlmICghbV9kZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2suZ2V0KCkpCi0gICAgICAgIG1f
ZGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrLnNldChXZWJEZXZpY2VPcmllbnRhdGlvbkNsaWVu
dE1vY2s6OmNyZWF0ZSgpKTsKLSAgICByZXR1cm4gbV9kZXZpY2VPcmllbnRhdGlvbkNsaWVudE1v
Y2suZ2V0KCk7CisgICAgcmV0dXJuIG1fc2hlbGwtPndlYlZpZXdIb3N0KCktPmRldmljZU9yaWVu
dGF0aW9uQ2xpZW50TW9jaygpOwogfQogCiB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpoYXNT
cGVsbGluZ01hcmtlcihjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFu
dCogcmVzdWx0KQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuaCBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2No
cm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmgKaW5kZXggZmMxNjgyNzQxYjcyODYxZDgzNTgw
ZTg5M2Y2MGVlYmJiNTc1NTMxMS4uN2M3OTg1YjFlYTllMmVjMGUyZTgyMmQ3ZWZjZDBkNjI1MWIx
Y2QxMyAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5
b3V0VGVzdENvbnRyb2xsZXIuaAorKysgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCkBAIC00OSw3ICs0OSw2IEBACiAjaW5jbHVkZSA8
d3RmL093blB0ci5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKLWNsYXNzIFdlYkRldmljZU9yaWVu
dGF0aW9uQ2xpZW50OwogY2xhc3MgV2ViRGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrOwogY2xh
c3MgV2ViU3BlZWNoSW5wdXRDb250cm9sbGVyOwogY2xhc3MgV2ViU3BlZWNoSW5wdXRDb250cm9s
bGVyTW9jazsKQEAgLTM0MCw3ICszMzksNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRXb3JrUXVl
dWVGcm96ZW4oYm9vbCBmcm96ZW4pIHsgbV93b3JrUXVldWUuc2V0RnJvemVuKGZyb3plbik7IH0K
IAogICAgIFdlYktpdDo6V2ViU3BlZWNoSW5wdXRDb250cm9sbGVyKiBzcGVlY2hJbnB1dENvbnRy
b2xsZXIoV2ViS2l0OjpXZWJTcGVlY2hJbnB1dExpc3RlbmVyKik7Ci0gICAgV2ViS2l0OjpXZWJE
ZXZpY2VPcmllbnRhdGlvbkNsaWVudCogZGV2aWNlT3JpZW50YXRpb25DbGllbnQoKTsKICAgICBi
b29sIHNob3VsZER1bXBBc1RleHQoKSB7IHJldHVybiBtX2R1bXBBc1RleHQ7IH0KICAgICBib29s
IHNob3VsZER1bXBFZGl0aW5nQ2FsbGJhY2tzKCkgeyByZXR1cm4gbV9kdW1wRWRpdGluZ0NhbGxi
YWNrczsgfQogICAgIGJvb2wgc2hvdWxkRHVtcEZyYW1lTG9hZENhbGxiYWNrcygpIHsgcmV0dXJu
IG1fZHVtcEZyYW1lTG9hZENhbGxiYWNrczsgfQpAQCAtNDQ1LDYgKzQ0Myw4IEBAIHByaXZhdGU6
CiAgICAgdm9pZCBzdXNwZW5kQW5pbWF0aW9ucygpOwogICAgIHZvaWQgcmVzdW1lQW5pbWF0aW9u
cygpOwogCisgICAgV2ViS2l0OjpXZWJEZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2sqIGRldmlj
ZU9yaWVudGF0aW9uQ2xpZW50TW9jaygpOworCiAgICAgLy8gVXNlZCBmb3IgdGVzdCB0aW1lb3V0
cy4KICAgICBUYXNrTGlzdCBtX3Rhc2tMaXN0OwogCkBAIC01NDUsOCArNTQ1LDYgQEAgcHJpdmF0
ZToKICAgICBXZWJLaXQ6OldlYlVSTCBtX3VzZXJTdHlsZVNoZWV0TG9jYXRpb247CiAKICAgICBP
d25QdHI8V2ViS2l0OjpXZWJTcGVlY2hJbnB1dENvbnRyb2xsZXJNb2NrPiBtX3NwZWVjaElucHV0
Q29udHJvbGxlck1vY2s7Ci0KLSAgICBPd25QdHI8V2ViS2l0OjpXZWJEZXZpY2VPcmllbnRhdGlv
bkNsaWVudE1vY2s+IG1fZGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrOwogfTsKIAogI2VuZGlm
IC8vIExheW91dFRlc3RDb250cm9sbGVyX2gKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNwcCBiL1dlYktpdFRvb2xzL0R1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNwcAppbmRleCAwZGM1N2VmNmE3ZjVhYjIwOGJi
NzFlMjU0YjYzYjZhMjI2MDU2ZWE5Li5jNzc1MDUwZjgzNjQ0Y2FmMTU3MjE4MjdkYzA3OTZlM2U5
OTM1MjQ4IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9X
ZWJWaWV3SG9zdC5jcHAKKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
V2ViVmlld0hvc3QuY3BwCkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSAiV2ViQ29uc29sZU1l
c3NhZ2UuaCIKICNpbmNsdWRlICJXZWJDb250ZXh0TWVudURhdGEuaCIKICNpbmNsdWRlICJXZWJE
YXRhU291cmNlLmgiCisjaW5jbHVkZSAiV2ViRGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrLmgi
CiAjaW5jbHVkZSAiV2ViRHJhZ0RhdGEuaCIKICNpbmNsdWRlICJXZWJFbGVtZW50LmgiCiAjaW5j
bHVkZSAiV2ViRnJhbWUuaCIKQEAgLTU3Myw5ICs1NzQsMTYgQEAgV2ViU3BlZWNoSW5wdXRDb250
cm9sbGVyKiBXZWJWaWV3SG9zdDo6c3BlZWNoSW5wdXRDb250cm9sbGVyKFdlYktpdDo6V2ViU3Bl
ZWNoSW4KICAgICByZXR1cm4gbV9zaGVsbC0+bGF5b3V0VGVzdENvbnRyb2xsZXIoKS0+c3BlZWNo
SW5wdXRDb250cm9sbGVyKGxpc3RlbmVyKTsKIH0KIAotV2ViS2l0OjpXZWJEZXZpY2VPcmllbnRh
dGlvbkNsaWVudCogV2ViVmlld0hvc3Q6OmRldmljZU9yaWVudGF0aW9uQ2xpZW50KCkKK1dlYkRl
dmljZU9yaWVudGF0aW9uQ2xpZW50TW9jayogV2ViVmlld0hvc3Q6OmRldmljZU9yaWVudGF0aW9u
Q2xpZW50TW9jaygpCiB7Ci0gICAgcmV0dXJuIG1fc2hlbGwtPmxheW91dFRlc3RDb250cm9sbGVy
KCktPmRldmljZU9yaWVudGF0aW9uQ2xpZW50KCk7CisgICAgaWYgKCFtX2RldmljZU9yaWVudGF0
aW9uQ2xpZW50TW9jay5nZXQoKSkKKyAgICAgICAgbV9kZXZpY2VPcmllbnRhdGlvbkNsaWVudE1v
Y2suc2V0KFdlYkRldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jazo6Y3JlYXRlKCkpOworICAgIHJl
dHVybiBtX2RldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jay5nZXQoKTsKK30KKworV2ViRGV2aWNl
T3JpZW50YXRpb25DbGllbnQqIFdlYlZpZXdIb3N0OjpkZXZpY2VPcmllbnRhdGlvbkNsaWVudCgp
Cit7CisgICAgcmV0dXJuIGRldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jaygpOwogfQogCiAvLyBX
ZWJXaWRnZXRDbGllbnQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVl
L2Nocm9taXVtL1dlYlZpZXdIb3N0LmggYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9XZWJWaWV3SG9zdC5oCmluZGV4IGYyMWU2NjM3ZmE1ZmNiMDU2MThiMjM3NTA3NzI0MmFk
NDY1M2NmYTMuLmJjNWE5YmNkNThiMTcxYjU5MDRiM2Y4MTFmYzM1MzE1ZGI0YjNlMGQgMTAwNjQ0
Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmgK
KysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuaApA
QCAtNDcsNiArNDcsNyBAQCBjbGFzcyBUZXN0U2hlbGw7CiBuYW1lc3BhY2UgV2ViS2l0IHsKIGNs
YXNzIFdlYkZyYW1lOwogY2xhc3MgV2ViRGV2aWNlT3JpZW50YXRpb25DbGllbnQ7CitjbGFzcyBX
ZWJEZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2s7CiBjbGFzcyBXZWJHZW9sb2NhdGlvblNlcnZp
Y2VNb2NrOwogY2xhc3MgV2ViU3BlZWNoSW5wdXRDb250cm9sbGVyOwogY2xhc3MgV2ViU3BlZWNo
SW5wdXRMaXN0ZW5lcjsKQEAgLTE5NSw2ICsxOTYsOCBAQCBjbGFzcyBXZWJWaWV3SG9zdCA6IHB1
YmxpYyBXZWJLaXQ6OldlYlZpZXdDbGllbnQsIHB1YmxpYyBXZWJLaXQ6OldlYkZyYW1lQ2xpZW50
LAogICAgIHZpcnR1YWwgYm9vbCBhbGxvd1NjcmlwdChXZWJLaXQ6OldlYkZyYW1lKiwgYm9vbCBl
bmFibGVkUGVyU2V0dGluZ3MpOwogICAgIHZpcnR1YWwgdm9pZCBvcGVuRmlsZVN5c3RlbShXZWJL
aXQ6OldlYkZyYW1lKiwgV2ViS2l0OjpXZWJGaWxlU3lzdGVtOjpUeXBlLCBsb25nIGxvbmcgc2l6
ZSwgYm9vbCBjcmVhdGUsIFdlYktpdDo6V2ViRmlsZVN5c3RlbUNhbGxiYWNrcyopOwogCisgICAg
V2ViS2l0OjpXZWJEZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2sqIGRldmljZU9yaWVudGF0aW9u
Q2xpZW50TW9jaygpOworCiBwcml2YXRlOgogICAgIExheW91dFRlc3RDb250cm9sbGVyKiBsYXlv
dXRUZXN0Q29udHJvbGxlcigpIGNvbnN0OwogCkBAIC0yOTksNiArMzAyLDggQEAgcHJpdmF0ZToK
ICAgICBPd25QdHI8V2ViS2l0OjpXZWJHZW9sb2NhdGlvblNlcnZpY2VNb2NrPiBtX2dlb2xvY2F0
aW9uU2VydmljZU1vY2s7CiAjZW5kaWYKIAorICAgIE93blB0cjxXZWJLaXQ6OldlYkRldmljZU9y
aWVudGF0aW9uQ2xpZW50TW9jaz4gbV9kZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2s7CisKICAg
ICBPd25QdHI8VGVzdE5hdmlnYXRpb25Db250cm9sbGVyKj4gbV9uYXZpZ2F0aW9uQ29udHJvbGxl
cjsKIH07CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>73372</attachid>
            <date>2010-11-09 07:03:45 -0800</date>
            <delta_ts>2010-11-15 09:00:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-48506-20101109150343.patch</filename>
            <type>text/plain</type>
            <size>8545</size>
            <attacher name="John Knottenbelt">jknotten</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
YWI4Mjg3YTJiYjY3M2ExNGU2NjZiMGQ1Y2UzNDZhZThhYjc5M2UwMi4uNjJjZTc1OTljYTJkZTMz
YTg3MDRiNTk3MzE2MWMzNmFiMGEyMzkyYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMC0xMS0wOCAgSm9o
biBLbm90dGVuYmVsdCAgPGprbm90dGVuQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYW4gYXNzZXJ0IHRvIGNoZWNrIHRo
YXQgdGhlIERldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jayBpcworICAgICAgICB1c2VkIGJ5IG9u
bHkgb25lIGNvbnRyb2xsZXIuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD00ODUwNgorCisgICAgICAgICogcGxhdGZvcm0vbW9jay9EZXZpY2VPcmllbnRh
dGlvbkNsaWVudE1vY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25D
bGllbnRNb2NrOjpzZXRDb250cm9sbGVyKToKKwogMjAxMC0xMS0wOSAgQ2hyaXMgUm9nZXJzICA8
Y3JvZ2Vyc0Bnb29nbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEtlbm5ldGggUnVzc2Vs
bC4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9EZXZpY2VPcmllbnRhdGlvbkNs
aWVudE1vY2suY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL0RldmljZU9yaWVudGF0aW9uQ2xp
ZW50TW9jay5jcHAKaW5kZXggYzJjOTMxNmY2ODljNmMxYmM1NWFiM2IyZGMwMWZkOTNlOTA5OGE5
YS4uNmNhYTIwYTIxYzEyMDQzYWVmYWQ4ZGVhZTY2NTFhMTFkZGZhYWJmOSAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9wbGF0Zm9ybS9tb2NrL0RldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jay5jcHAKKysr
IGIvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL0RldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jay5jcHAK
QEAgLTM5LDggKzM5LDkgQEAgRGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrOjpEZXZpY2VPcmll
bnRhdGlvbkNsaWVudE1vY2soKQogCiB2b2lkIERldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jazo6
c2V0Q29udHJvbGxlcihEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIqIGNvbnRyb2xsZXIpCiB7
CisgICAgQVNTRVJUKCFtX2NvbnRyb2xsZXIpOworICAgIEFTU0VSVChjb250cm9sbGVyKTsKICAg
ICBtX2NvbnRyb2xsZXIgPSBjb250cm9sbGVyOwotICAgIEFTU0VSVChtX2NvbnRyb2xsZXIpOwog
fQogCiB2b2lkIERldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jazo6c3RhcnRVcGRhdGluZygpCmRp
ZmYgLS1naXQgYS9XZWJLaXRUb29scy9DaGFuZ2VMb2cgYi9XZWJLaXRUb29scy9DaGFuZ2VMb2cK
aW5kZXggYzg4Y2UzZWQ3OWNiYjlhZmJhNTczYTZlYjFiZDMwZDAwNTlhOTZhZi4uZTZmZGQ4NGM4
ZDc4ZGM3Njc2YzRhNmE5MDFlYzE3OWFjYzU3MmMwNyAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMv
Q2hhbmdlTG9nCisrKyBiL1dlYktpdFRvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisy
MDEwLTExLTA4ICBKb2huIEtub3R0ZW5iZWx0ICA8amtub3R0ZW5AY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmUgRGV2aWNl
T3JpZW50YXRpb25DbGllbnRNb2NrIGZyb20gTGF5b3V0VGVzdENvbnRyb2xsZXIgdG8KKyAgICAg
ICAgV2ViVmlld0hvc3QuIFRoaXMgaXMgdG8gZW5zdXJlIHRoYXQgdGhlcmUgaXMgb25lIG1vY2sg
cGVyIHBhZ2UKKyAgICAgICAgV2ViVmlldyAvIFdlYlZpZXdIb3N0LCB3aGljaCBpcyBhIGRlc2ln
biBjb25zdHJhaW50IG9mIHRoZQorICAgICAgICBEZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2su
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00ODUwNgor
CisgICAgICAgIFRlc3Q6IGZhc3QvZG9tL0RldmljZU9yaWVudGF0aW9uL25vLXBhZ2UtY2FjaGUu
aHRtbAorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRy
b2xsZXIuY3BwOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldE1vY2tEZXZpY2VP
cmllbnRhdGlvbik6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6ZGV2aWNlT3JpZW50
YXRpb25DbGllbnRNb2NrKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlv
dXRUZXN0Q29udHJvbGxlci5oOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dl
YlZpZXdIb3N0LmNwcDoKKyAgICAgICAgKFdlYlZpZXdIb3N0OjpkZXZpY2VPcmllbnRhdGlvbkNs
aWVudE1vY2spOgorICAgICAgICAoV2ViVmlld0hvc3Q6OmRldmljZU9yaWVudGF0aW9uQ2xpZW50
KToKKyAgICAgICAgKFdlYlZpZXdIb3N0OjpyZXNldCk6CisgICAgICAgICogRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuaDoKKwogMjAxMC0xMS0wOCAgTmljb2xhcyBEdWZyZXNu
ZSAgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IE1hcnRpbiBSb2JpbnNvbi4KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJU
cmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcCBiL1dlYktpdFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAppbmRleCA1YjBjODQ0
MmNkMmMwMjhiMDg2NmZjNmEzODVjYTIwYTRiMTdhYTcyLi5hZWExODVmYzU4OTk0OGRkNjczNDJm
ZjZkZDliNWMwMmQ0NTQzYTc3IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKKysrIGIvV2ViS2l0VG9vbHMvRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCkBAIC0xNTAyLDkg
KzE1MDIsNyBAQCB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRNb2NrRGV2aWNlT3JpZW50
YXRpb24oY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bQogICAgICAgICByZXR1cm47CiAKICAg
ICBXZWJEZXZpY2VPcmllbnRhdGlvbiBvcmllbnRhdGlvbihhcmd1bWVudHNbMF0udG9Cb29sZWFu
KCksIGFyZ3VtZW50c1sxXS50b0RvdWJsZSgpLCBhcmd1bWVudHNbMl0udG9Cb29sZWFuKCksIGFy
Z3VtZW50c1szXS50b0RvdWJsZSgpLCBhcmd1bWVudHNbNF0udG9Cb29sZWFuKCksIGFyZ3VtZW50
c1s1XS50b0RvdWJsZSgpKTsKLQotICAgIEFTU0VSVChtX2RldmljZU9yaWVudGF0aW9uQ2xpZW50
TW9jayk7Ci0gICAgbV9kZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2stPnNldE9yaWVudGF0aW9u
KG9yaWVudGF0aW9uKTsKKyAgICBkZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2soKS0+c2V0T3Jp
ZW50YXRpb24ob3JpZW50YXRpb24pOwogfQogCiB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpz
ZXRHZW9sb2NhdGlvblBlcm1pc3Npb24oY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMs
IENwcFZhcmlhbnQqIHJlc3VsdCkKQEAgLTE1NjYsMTEgKzE1NjQsOSBAQCB2b2lkIExheW91dFRl
c3RDb250cm9sbGVyOjptYXJrZXJUZXh0Rm9yTGlzdEl0ZW0oY29uc3QgQ3BwQXJndW1lbnRMaXN0
JiBhcmdzLCBDcAogICAgICAgICByZXN1bHQtPnNldChlbGVtZW50LmRvY3VtZW50KCkuZnJhbWUo
KS0+bWFya2VyVGV4dEZvckxpc3RJdGVtKGVsZW1lbnQpLnV0ZjgoKSk7CiB9CiAKLVdlYkRldmlj
ZU9yaWVudGF0aW9uQ2xpZW50KiBMYXlvdXRUZXN0Q29udHJvbGxlcjo6ZGV2aWNlT3JpZW50YXRp
b25DbGllbnQoKQorV2ViRGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrKiBMYXlvdXRUZXN0Q29u
dHJvbGxlcjo6ZGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrKCkKIHsKLSAgICBpZiAoIW1fZGV2
aWNlT3JpZW50YXRpb25DbGllbnRNb2NrLmdldCgpKQotICAgICAgICBtX2RldmljZU9yaWVudGF0
aW9uQ2xpZW50TW9jay5zZXQoV2ViRGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrOjpjcmVhdGUo
KSk7Ci0gICAgcmV0dXJuIG1fZGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrLmdldCgpOworICAg
IHJldHVybiBtX3NoZWxsLT53ZWJWaWV3SG9zdCgpLT5kZXZpY2VPcmllbnRhdGlvbkNsaWVudE1v
Y2soKTsKIH0KIAogdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6aGFzU3BlbGxpbmdNYXJrZXIo
Y29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENwcFZhcmlhbnQqIHJlc3VsdCkKZGlm
ZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RD
b250cm9sbGVyLmggYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRU
ZXN0Q29udHJvbGxlci5oCmluZGV4IGZjMTY4Mjc0MWI3Mjg2MWQ4MzU4MGU4OTNmNjBlZWJiYjU3
NTUzMTEuLjdjNzk4NWIxZWE5ZTJlYzBlMmU4MjJkN2VmY2QwZDYyNTFiMWNkMTMgMTAwNjQ0Ci0t
LSBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9s
bGVyLmgKKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVz
dENvbnRyb2xsZXIuaApAQCAtNDksNyArNDksNiBAQAogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4K
IAogbmFtZXNwYWNlIFdlYktpdCB7Ci1jbGFzcyBXZWJEZXZpY2VPcmllbnRhdGlvbkNsaWVudDsK
IGNsYXNzIFdlYkRldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jazsKIGNsYXNzIFdlYlNwZWVjaElu
cHV0Q29udHJvbGxlcjsKIGNsYXNzIFdlYlNwZWVjaElucHV0Q29udHJvbGxlck1vY2s7CkBAIC0z
NDAsNyArMzM5LDYgQEAgcHVibGljOgogICAgIHZvaWQgc2V0V29ya1F1ZXVlRnJvemVuKGJvb2wg
ZnJvemVuKSB7IG1fd29ya1F1ZXVlLnNldEZyb3plbihmcm96ZW4pOyB9CiAKICAgICBXZWJLaXQ6
OldlYlNwZWVjaElucHV0Q29udHJvbGxlciogc3BlZWNoSW5wdXRDb250cm9sbGVyKFdlYktpdDo6
V2ViU3BlZWNoSW5wdXRMaXN0ZW5lciopOwotICAgIFdlYktpdDo6V2ViRGV2aWNlT3JpZW50YXRp
b25DbGllbnQqIGRldmljZU9yaWVudGF0aW9uQ2xpZW50KCk7CiAgICAgYm9vbCBzaG91bGREdW1w
QXNUZXh0KCkgeyByZXR1cm4gbV9kdW1wQXNUZXh0OyB9CiAgICAgYm9vbCBzaG91bGREdW1wRWRp
dGluZ0NhbGxiYWNrcygpIHsgcmV0dXJuIG1fZHVtcEVkaXRpbmdDYWxsYmFja3M7IH0KICAgICBi
b29sIHNob3VsZER1bXBGcmFtZUxvYWRDYWxsYmFja3MoKSB7IHJldHVybiBtX2R1bXBGcmFtZUxv
YWRDYWxsYmFja3M7IH0KQEAgLTQ0NSw2ICs0NDMsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgc3Vz
cGVuZEFuaW1hdGlvbnMoKTsKICAgICB2b2lkIHJlc3VtZUFuaW1hdGlvbnMoKTsKIAorICAgIFdl
YktpdDo6V2ViRGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrKiBkZXZpY2VPcmllbnRhdGlvbkNs
aWVudE1vY2soKTsKKwogICAgIC8vIFVzZWQgZm9yIHRlc3QgdGltZW91dHMuCiAgICAgVGFza0xp
c3QgbV90YXNrTGlzdDsKIApAQCAtNTQ1LDggKzU0NSw2IEBAIHByaXZhdGU6CiAgICAgV2ViS2l0
OjpXZWJVUkwgbV91c2VyU3R5bGVTaGVldExvY2F0aW9uOwogCiAgICAgT3duUHRyPFdlYktpdDo6
V2ViU3BlZWNoSW5wdXRDb250cm9sbGVyTW9jaz4gbV9zcGVlY2hJbnB1dENvbnRyb2xsZXJNb2Nr
OwotCi0gICAgT3duUHRyPFdlYktpdDo6V2ViRGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrPiBt
X2RldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jazsKIH07CiAKICNlbmRpZiAvLyBMYXlvdXRUZXN0
Q29udHJvbGxlcl9oCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9XZWJWaWV3SG9zdC5jcHAgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9XZWJWaWV3SG9zdC5jcHAKaW5kZXggMGRjNTdlZjZhN2Y1YWIyMDhiYjcxZTI1NGI2M2I2YTIy
NjA1NmVhOS4uYzc3NTA1MGY4MzY0NGNhZjE1NzIxODI3ZGMwNzk2ZTNlOTkzNTI0OCAxMDA2NDQK
LS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuY3Bw
CisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNw
cApAQCAtMzksNiArMzksNyBAQAogI2luY2x1ZGUgIldlYkNvbnNvbGVNZXNzYWdlLmgiCiAjaW5j
bHVkZSAiV2ViQ29udGV4dE1lbnVEYXRhLmgiCiAjaW5jbHVkZSAiV2ViRGF0YVNvdXJjZS5oIgor
I2luY2x1ZGUgIldlYkRldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jay5oIgogI2luY2x1ZGUgIldl
YkRyYWdEYXRhLmgiCiAjaW5jbHVkZSAiV2ViRWxlbWVudC5oIgogI2luY2x1ZGUgIldlYkZyYW1l
LmgiCkBAIC01NzMsOSArNTc0LDE2IEBAIFdlYlNwZWVjaElucHV0Q29udHJvbGxlciogV2ViVmll
d0hvc3Q6OnNwZWVjaElucHV0Q29udHJvbGxlcihXZWJLaXQ6OldlYlNwZWVjaEluCiAgICAgcmV0
dXJuIG1fc2hlbGwtPmxheW91dFRlc3RDb250cm9sbGVyKCktPnNwZWVjaElucHV0Q29udHJvbGxl
cihsaXN0ZW5lcik7CiB9CiAKLVdlYktpdDo6V2ViRGV2aWNlT3JpZW50YXRpb25DbGllbnQqIFdl
YlZpZXdIb3N0OjpkZXZpY2VPcmllbnRhdGlvbkNsaWVudCgpCitXZWJEZXZpY2VPcmllbnRhdGlv
bkNsaWVudE1vY2sqIFdlYlZpZXdIb3N0OjpkZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2soKQog
ewotICAgIHJldHVybiBtX3NoZWxsLT5sYXlvdXRUZXN0Q29udHJvbGxlcigpLT5kZXZpY2VPcmll
bnRhdGlvbkNsaWVudCgpOworICAgIGlmICghbV9kZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2su
Z2V0KCkpCisgICAgICAgIG1fZGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrLnNldChXZWJEZXZp
Y2VPcmllbnRhdGlvbkNsaWVudE1vY2s6OmNyZWF0ZSgpKTsKKyAgICByZXR1cm4gbV9kZXZpY2VP
cmllbnRhdGlvbkNsaWVudE1vY2suZ2V0KCk7Cit9CisKK1dlYkRldmljZU9yaWVudGF0aW9uQ2xp
ZW50KiBXZWJWaWV3SG9zdDo6ZGV2aWNlT3JpZW50YXRpb25DbGllbnQoKQoreworICAgIHJldHVy
biBkZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2soKTsKIH0KIAogLy8gV2ViV2lkZ2V0Q2xpZW50
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJW
aWV3SG9zdC5oIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hv
c3QuaAppbmRleCBmMjFlNjYzN2ZhNWZjYjA1NjE4YjIzNzUwNzcyNDJhZDQ2NTNjZmEzLi5iYzVh
OWJjZDU4YjE3MWI1OTA0YjNmODExZmMzNTMxNWRiNGIzZTBkIDEwMDY0NAotLS0gYS9XZWJLaXRU
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5oCisrKyBiL1dlYktpdFRv
b2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmgKQEAgLTQ3LDYgKzQ3LDcg
QEAgY2xhc3MgVGVzdFNoZWxsOwogbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBXZWJGcmFtZTsK
IGNsYXNzIFdlYkRldmljZU9yaWVudGF0aW9uQ2xpZW50OworY2xhc3MgV2ViRGV2aWNlT3JpZW50
YXRpb25DbGllbnRNb2NrOwogY2xhc3MgV2ViR2VvbG9jYXRpb25TZXJ2aWNlTW9jazsKIGNsYXNz
IFdlYlNwZWVjaElucHV0Q29udHJvbGxlcjsKIGNsYXNzIFdlYlNwZWVjaElucHV0TGlzdGVuZXI7
CkBAIC0xOTUsNiArMTk2LDggQEAgY2xhc3MgV2ViVmlld0hvc3QgOiBwdWJsaWMgV2ViS2l0OjpX
ZWJWaWV3Q2xpZW50LCBwdWJsaWMgV2ViS2l0OjpXZWJGcmFtZUNsaWVudCwKICAgICB2aXJ0dWFs
IGJvb2wgYWxsb3dTY3JpcHQoV2ViS2l0OjpXZWJGcmFtZSosIGJvb2wgZW5hYmxlZFBlclNldHRp
bmdzKTsKICAgICB2aXJ0dWFsIHZvaWQgb3BlbkZpbGVTeXN0ZW0oV2ViS2l0OjpXZWJGcmFtZSos
IFdlYktpdDo6V2ViRmlsZVN5c3RlbTo6VHlwZSwgbG9uZyBsb25nIHNpemUsIGJvb2wgY3JlYXRl
LCBXZWJLaXQ6OldlYkZpbGVTeXN0ZW1DYWxsYmFja3MqKTsKIAorICAgIFdlYktpdDo6V2ViRGV2
aWNlT3JpZW50YXRpb25DbGllbnRNb2NrKiBkZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2soKTsK
KwogcHJpdmF0ZToKICAgICBMYXlvdXRUZXN0Q29udHJvbGxlciogbGF5b3V0VGVzdENvbnRyb2xs
ZXIoKSBjb25zdDsKIApAQCAtMjk5LDYgKzMwMiw4IEBAIHByaXZhdGU6CiAgICAgT3duUHRyPFdl
YktpdDo6V2ViR2VvbG9jYXRpb25TZXJ2aWNlTW9jaz4gbV9nZW9sb2NhdGlvblNlcnZpY2VNb2Nr
OwogI2VuZGlmCiAKKyAgICBPd25QdHI8V2ViS2l0OjpXZWJEZXZpY2VPcmllbnRhdGlvbkNsaWVu
dE1vY2s+IG1fZGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrOworCiAgICAgT3duUHRyPFRlc3RO
YXZpZ2F0aW9uQ29udHJvbGxlcio+IG1fbmF2aWdhdGlvbkNvbnRyb2xsZXI7CiB9OwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>73904</attachid>
            <date>2010-11-15 09:00:17 -0800</date>
            <delta_ts>2010-11-15 09:51:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-48506-20101115170014.patch</filename>
            <type>text/plain</type>
            <size>8563</size>
            <attacher name="John Knottenbelt">jknotten</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MDdkNDY0ZDk1MjY3NGU1NjlmN2ZmZDUyMjQ1NDU3MDY5NmE5MzNkMi4uZGIxZTdjMjI2YmJiZTlm
OTgxMzBiMGI5YTIwOThkMzgyMGJhNjY4NyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMC0xMS0wOCAgSm9o
biBLbm90dGVuYmVsdCAgPGprbm90dGVuQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYW4gYXNzZXJ0IHRvIGNoZWNrIHRo
YXQgdGhlIERldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jayBpcworICAgICAgICB1c2VkIGJ5IG9u
bHkgb25lIGNvbnRyb2xsZXIuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD00ODUwNgorCisgICAgICAgICogcGxhdGZvcm0vbW9jay9EZXZpY2VPcmllbnRh
dGlvbkNsaWVudE1vY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25D
bGllbnRNb2NrOjpzZXRDb250cm9sbGVyKToKKwogMjAxMC0xMS0xNSAgUGF0cmljayBHYW5zdGVy
ZXIgIDxwYXJvZ2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBNYXJ0aW4gUm9i
aW5zb24uCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL21vY2svRGV2aWNlT3JpZW50YXRp
b25DbGllbnRNb2NrLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9EZXZpY2VPcmllbnRhdGlv
bkNsaWVudE1vY2suY3BwCmluZGV4IGMyYzkzMTZmNjg5YzZjMWJjNTVhYjNiMmRjMDFmZDkzZTkw
OThhOWEuLjZjYWEyMGEyMWMxMjA0M2FlZmFkOGRlYWU2NjUxYTExZGRmYWFiZjkgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9EZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2suY3Bw
CisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9EZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2su
Y3BwCkBAIC0zOSw4ICszOSw5IEBAIERldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jazo6RGV2aWNl
T3JpZW50YXRpb25DbGllbnRNb2NrKCkKIAogdm9pZCBEZXZpY2VPcmllbnRhdGlvbkNsaWVudE1v
Y2s6OnNldENvbnRyb2xsZXIoRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKiBjb250cm9sbGVy
KQogeworICAgIEFTU0VSVCghbV9jb250cm9sbGVyKTsKKyAgICBBU1NFUlQoY29udHJvbGxlcik7
CiAgICAgbV9jb250cm9sbGVyID0gY29udHJvbGxlcjsKLSAgICBBU1NFUlQobV9jb250cm9sbGVy
KTsKIH0KIAogdm9pZCBEZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2s6OnN0YXJ0VXBkYXRpbmco
KQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nIGIvV2ViS2l0VG9vbHMvQ2hhbmdl
TG9nCmluZGV4IGQxZDA1N2U3MDM4ZDZhZDg2ZWZkNDQzMTdkMTk0MjMwNDAyZDNiMjcuLjc1Y2E0
ZTY4ODczNzIxNmNmOWNjZWNlN2E3ZDQzM2FlNWViMzIxMTUgMTAwNjQ0Ci0tLSBhL1dlYktpdFRv
b2xzL0NoYW5nZUxvZworKysgYi9XZWJLaXRUb29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBA
QAorMjAxMC0xMS0wOCAgSm9obiBLbm90dGVuYmVsdCAgPGprbm90dGVuQGNocm9taXVtLm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3ZlIERl
dmljZU9yaWVudGF0aW9uQ2xpZW50TW9jayBmcm9tIExheW91dFRlc3RDb250cm9sbGVyIHRvCisg
ICAgICAgIFdlYlZpZXdIb3N0LiBUaGlzIGlzIHRvIGVuc3VyZSB0aGF0IHRoZXJlIGlzIG9uZSBt
b2NrIHBlciBwYWdlCisgICAgICAgIFdlYlZpZXcgLyBXZWJWaWV3SG9zdCwgd2hpY2ggaXMgYSBk
ZXNpZ24gY29uc3RyYWludCBvZiB0aGUKKyAgICAgICAgRGV2aWNlT3JpZW50YXRpb25DbGllbnRN
b2NrLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDg1
MDYKKworICAgICAgICBUZXN0OiBmYXN0L2RvbS9EZXZpY2VPcmllbnRhdGlvbi9uby1wYWdlLWNh
Y2hlLmh0bWwKKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RD
b250cm9sbGVyLmNwcDoKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpzZXRNb2NrRGV2
aWNlT3JpZW50YXRpb24pOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OmRldmljZU9y
aWVudGF0aW9uQ2xpZW50TW9jayk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
TGF5b3V0VGVzdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9XZWJWaWV3SG9zdC5jcHA6CisgICAgICAgIChXZWJWaWV3SG9zdDo6ZGV2aWNlT3JpZW50YXRp
b25DbGllbnRNb2NrKToKKyAgICAgICAgKFdlYlZpZXdIb3N0OjpkZXZpY2VPcmllbnRhdGlvbkNs
aWVudCk6CisgICAgICAgIChXZWJWaWV3SG9zdDo6cmVzZXQpOgorICAgICAgICAqIER1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0Lmg6CisKIDIwMTAtMTEtMTUgIEJlbmphbWluIFBv
dWxhaW4gIDxiZW5qYW1pbi5wb3VsYWluQG5va2lhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBBbmRyZWFzIEtsaW5nLgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IDViMGM4NDQyY2Qy
YzAyOGIwODY2ZmM2YTM4NWNhMjBhNGIxN2FhNzIuLjM4NmJiYTM0MDQ0MmZkNjg4YTA0OWJiZjQ2
OGExMjg4ZjBlODczN2QgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2No
cm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAorKysgYi9XZWJLaXRUb29scy9EdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKQEAgLTE1MDIsOSArMTUw
MiwxMCBAQCB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRNb2NrRGV2aWNlT3JpZW50YXRp
b24oY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bQogICAgICAgICByZXR1cm47CiAKICAgICBX
ZWJEZXZpY2VPcmllbnRhdGlvbiBvcmllbnRhdGlvbihhcmd1bWVudHNbMF0udG9Cb29sZWFuKCks
IGFyZ3VtZW50c1sxXS50b0RvdWJsZSgpLCBhcmd1bWVudHNbMl0udG9Cb29sZWFuKCksIGFyZ3Vt
ZW50c1szXS50b0RvdWJsZSgpLCBhcmd1bWVudHNbNF0udG9Cb29sZWFuKCksIGFyZ3VtZW50c1s1
XS50b0RvdWJsZSgpKTsKLQotICAgIEFTU0VSVChtX2RldmljZU9yaWVudGF0aW9uQ2xpZW50TW9j
ayk7Ci0gICAgbV9kZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2stPnNldE9yaWVudGF0aW9uKG9y
aWVudGF0aW9uKTsKKyAgICAvLyBOb3RlIHRoYXQgd2Ugb25seSBjYWxsIHNldE9yaWVudGF0aW9u
IG9uIHRoZSBtYWluIHBhZ2UncyBtb2NrIHNpbmNlIHRoaXMgaXMgYWxsIHRoYXQgdGhlCisgICAg
Ly8gdGVzdHMgcmVxdWlyZS4gSWYgbmVjZXNzYXJ5LCB3ZSBjb3VsZCBnZXQgYSBsaXN0IG9mIFdl
YlZpZXdIb3N0cyBmcm9tIHRoZSBUZXN0U2hlbGwgYW5kCisgICAgLy8gY2FsbCBzZXRPcmllbnRh
dGlvbiBvbiBlYWNoIERldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jay4KKyAgICBtX3NoZWxsLT53
ZWJWaWV3SG9zdCgpLT5kZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2soKS0+c2V0T3JpZW50YXRp
b24ob3JpZW50YXRpb24pOwogfQogCiB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRHZW9s
b2NhdGlvblBlcm1pc3Npb24oY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENwcFZh
cmlhbnQqIHJlc3VsdCkKQEAgLTE1NjYsMTMgKzE1NjcsNiBAQCB2b2lkIExheW91dFRlc3RDb250
cm9sbGVyOjptYXJrZXJUZXh0Rm9yTGlzdEl0ZW0oY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmdz
LCBDcAogICAgICAgICByZXN1bHQtPnNldChlbGVtZW50LmRvY3VtZW50KCkuZnJhbWUoKS0+bWFy
a2VyVGV4dEZvckxpc3RJdGVtKGVsZW1lbnQpLnV0ZjgoKSk7CiB9CiAKLVdlYkRldmljZU9yaWVu
dGF0aW9uQ2xpZW50KiBMYXlvdXRUZXN0Q29udHJvbGxlcjo6ZGV2aWNlT3JpZW50YXRpb25DbGll
bnQoKQotewotICAgIGlmICghbV9kZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2suZ2V0KCkpCi0g
ICAgICAgIG1fZGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrLnNldChXZWJEZXZpY2VPcmllbnRh
dGlvbkNsaWVudE1vY2s6OmNyZWF0ZSgpKTsKLSAgICByZXR1cm4gbV9kZXZpY2VPcmllbnRhdGlv
bkNsaWVudE1vY2suZ2V0KCk7Ci19Ci0KIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6Omhhc1Nw
ZWxsaW5nTWFya2VyKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW50
KiByZXN1bHQpCiB7CiAgICAgaWYgKGFyZ3VtZW50cy5zaXplKCkgPCAyIHx8ICFhcmd1bWVudHNb
MF0uaXNOdW1iZXIoKSB8fCAhYXJndW1lbnRzWzFdLmlzTnVtYmVyKCkpCmRpZmYgLS1naXQgYS9X
ZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5o
IGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xs
ZXIuaAppbmRleCBmYzE2ODI3NDFiNzI4NjFkODM1ODBlODkzZjYwZWViYmI1NzU1MzExLi42MmY0
NzNjN2U5MTBlM2Q3N2NhMDZjYjU0YjU0OTMxMGEwMzdkMjRiIDEwMDY0NAotLS0gYS9XZWJLaXRU
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCisrKyBi
L1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVy
LmgKQEAgLTQ5LDggKzQ5LDYgQEAKICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAKIG5hbWVzcGFj
ZSBXZWJLaXQgewotY2xhc3MgV2ViRGV2aWNlT3JpZW50YXRpb25DbGllbnQ7Ci1jbGFzcyBXZWJE
ZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2s7CiBjbGFzcyBXZWJTcGVlY2hJbnB1dENvbnRyb2xs
ZXI7CiBjbGFzcyBXZWJTcGVlY2hJbnB1dENvbnRyb2xsZXJNb2NrOwogY2xhc3MgV2ViU3BlZWNo
SW5wdXRMaXN0ZW5lcjsKQEAgLTM0MCw3ICszMzgsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRX
b3JrUXVldWVGcm96ZW4oYm9vbCBmcm96ZW4pIHsgbV93b3JrUXVldWUuc2V0RnJvemVuKGZyb3pl
bik7IH0KIAogICAgIFdlYktpdDo6V2ViU3BlZWNoSW5wdXRDb250cm9sbGVyKiBzcGVlY2hJbnB1
dENvbnRyb2xsZXIoV2ViS2l0OjpXZWJTcGVlY2hJbnB1dExpc3RlbmVyKik7Ci0gICAgV2ViS2l0
OjpXZWJEZXZpY2VPcmllbnRhdGlvbkNsaWVudCogZGV2aWNlT3JpZW50YXRpb25DbGllbnQoKTsK
ICAgICBib29sIHNob3VsZER1bXBBc1RleHQoKSB7IHJldHVybiBtX2R1bXBBc1RleHQ7IH0KICAg
ICBib29sIHNob3VsZER1bXBFZGl0aW5nQ2FsbGJhY2tzKCkgeyByZXR1cm4gbV9kdW1wRWRpdGlu
Z0NhbGxiYWNrczsgfQogICAgIGJvb2wgc2hvdWxkRHVtcEZyYW1lTG9hZENhbGxiYWNrcygpIHsg
cmV0dXJuIG1fZHVtcEZyYW1lTG9hZENhbGxiYWNrczsgfQpAQCAtNTQ1LDggKzU0Miw2IEBAIHBy
aXZhdGU6CiAgICAgV2ViS2l0OjpXZWJVUkwgbV91c2VyU3R5bGVTaGVldExvY2F0aW9uOwogCiAg
ICAgT3duUHRyPFdlYktpdDo6V2ViU3BlZWNoSW5wdXRDb250cm9sbGVyTW9jaz4gbV9zcGVlY2hJ
bnB1dENvbnRyb2xsZXJNb2NrOwotCi0gICAgT3duUHRyPFdlYktpdDo6V2ViRGV2aWNlT3JpZW50
YXRpb25DbGllbnRNb2NrPiBtX2RldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jazsKIH07CiAKICNl
bmRpZiAvLyBMYXlvdXRUZXN0Q29udHJvbGxlcl9oCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHAgYi9XZWJLaXRUb29scy9EdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHAKaW5kZXggM2YxMjZiZTgzNzJkN2M4
ZmRkZTZlZTA0ZTEyNTNkYzM4MmM3NWI5ZS4uYzRlNGE3NjMzMGY5ZTVlY2IyOGY5ZDA1ODVlMzQ5
MGFkNmM4NDg1NCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vV2ViVmlld0hvc3QuY3BwCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL1dlYlZpZXdIb3N0LmNwcApAQCAtMzksNiArMzksNyBAQAogI2luY2x1ZGUgIldlYkNvbnNv
bGVNZXNzYWdlLmgiCiAjaW5jbHVkZSAiV2ViQ29udGV4dE1lbnVEYXRhLmgiCiAjaW5jbHVkZSAi
V2ViRGF0YVNvdXJjZS5oIgorI2luY2x1ZGUgIldlYkRldmljZU9yaWVudGF0aW9uQ2xpZW50TW9j
ay5oIgogI2luY2x1ZGUgIldlYkRyYWdEYXRhLmgiCiAjaW5jbHVkZSAiV2ViRWxlbWVudC5oIgog
I2luY2x1ZGUgIldlYkZyYW1lLmgiCkBAIC01ODMsOSArNTg0LDE2IEBAIFdlYlNwZWVjaElucHV0
Q29udHJvbGxlciogV2ViVmlld0hvc3Q6OnNwZWVjaElucHV0Q29udHJvbGxlcihXZWJLaXQ6Oldl
YlNwZWVjaEluCiAgICAgcmV0dXJuIG1fc2hlbGwtPmxheW91dFRlc3RDb250cm9sbGVyKCktPnNw
ZWVjaElucHV0Q29udHJvbGxlcihsaXN0ZW5lcik7CiB9CiAKLVdlYktpdDo6V2ViRGV2aWNlT3Jp
ZW50YXRpb25DbGllbnQqIFdlYlZpZXdIb3N0OjpkZXZpY2VPcmllbnRhdGlvbkNsaWVudCgpCitX
ZWJEZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2sqIFdlYlZpZXdIb3N0OjpkZXZpY2VPcmllbnRh
dGlvbkNsaWVudE1vY2soKQogewotICAgIHJldHVybiBtX3NoZWxsLT5sYXlvdXRUZXN0Q29udHJv
bGxlcigpLT5kZXZpY2VPcmllbnRhdGlvbkNsaWVudCgpOworICAgIGlmICghbV9kZXZpY2VPcmll
bnRhdGlvbkNsaWVudE1vY2suZ2V0KCkpCisgICAgICAgIG1fZGV2aWNlT3JpZW50YXRpb25DbGll
bnRNb2NrLnNldChXZWJEZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2s6OmNyZWF0ZSgpKTsKKyAg
ICByZXR1cm4gbV9kZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2suZ2V0KCk7Cit9CisKK1dlYkRl
dmljZU9yaWVudGF0aW9uQ2xpZW50KiBXZWJWaWV3SG9zdDo6ZGV2aWNlT3JpZW50YXRpb25DbGll
bnQoKQoreworICAgIHJldHVybiBkZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2soKTsKIH0KIAog
Ly8gV2ViV2lkZ2V0Q2xpZW50IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5oIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vV2ViVmlld0hvc3QuaAppbmRleCAyMTNjZjNkYjI3MGM2ZDNjZjBjYzliNDI2MzY4
MTNiNjk2M2Q0MDliLi41ZmMwMGYxNGI2YWFhNTU3NzExZWFiYmIwNWIyZTEwODE2OTJkOTI3IDEw
MDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9z
dC5oCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0
LmgKQEAgLTQ3LDYgKzQ3LDcgQEAgY2xhc3MgVGVzdFNoZWxsOwogbmFtZXNwYWNlIFdlYktpdCB7
CiBjbGFzcyBXZWJGcmFtZTsKIGNsYXNzIFdlYkRldmljZU9yaWVudGF0aW9uQ2xpZW50OworY2xh
c3MgV2ViRGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrOwogY2xhc3MgV2ViR2VvbG9jYXRpb25T
ZXJ2aWNlTW9jazsKIGNsYXNzIFdlYlNwZWVjaElucHV0Q29udHJvbGxlcjsKIGNsYXNzIFdlYlNw
ZWVjaElucHV0TGlzdGVuZXI7CkBAIC0xOTksNiArMjAwLDggQEAgY2xhc3MgV2ViVmlld0hvc3Qg
OiBwdWJsaWMgV2ViS2l0OjpXZWJWaWV3Q2xpZW50LCBwdWJsaWMgV2ViS2l0OjpXZWJGcmFtZUNs
aWVudCwKICAgICB2aXJ0dWFsIGJvb2wgYWxsb3dTY3JpcHQoV2ViS2l0OjpXZWJGcmFtZSosIGJv
b2wgZW5hYmxlZFBlclNldHRpbmdzKTsKICAgICB2aXJ0dWFsIHZvaWQgb3BlbkZpbGVTeXN0ZW0o
V2ViS2l0OjpXZWJGcmFtZSosIFdlYktpdDo6V2ViRmlsZVN5c3RlbTo6VHlwZSwgbG9uZyBsb25n
IHNpemUsIGJvb2wgY3JlYXRlLCBXZWJLaXQ6OldlYkZpbGVTeXN0ZW1DYWxsYmFja3MqKTsKIAor
ICAgIFdlYktpdDo6V2ViRGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrKiBkZXZpY2VPcmllbnRh
dGlvbkNsaWVudE1vY2soKTsKKwogcHJpdmF0ZToKICAgICBMYXlvdXRUZXN0Q29udHJvbGxlciog
bGF5b3V0VGVzdENvbnRyb2xsZXIoKSBjb25zdDsKIApAQCAtMzA1LDYgKzMwOCw4IEBAIHByaXZh
dGU6CiAgICAgT3duUHRyPFdlYktpdDo6V2ViR2VvbG9jYXRpb25TZXJ2aWNlTW9jaz4gbV9nZW9s
b2NhdGlvblNlcnZpY2VNb2NrOwogI2VuZGlmCiAKKyAgICBPd25QdHI8V2ViS2l0OjpXZWJEZXZp
Y2VPcmllbnRhdGlvbkNsaWVudE1vY2s+IG1fZGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrOwor
CiAgICAgT3duUHRyPFRlc3ROYXZpZ2F0aW9uQ29udHJvbGxlcio+IG1fbmF2aWdhdGlvbkNvbnRy
b2xsZXI7CiB9OwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>73906</attachid>
            <date>2010-11-15 09:51:41 -0800</date>
            <delta_ts>2010-11-16 02:54:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-48506-20101115175139.patch</filename>
            <type>text/plain</type>
            <size>8802</size>
            <attacher name="John Knottenbelt">jknotten</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MDdkNDY0ZDk1MjY3NGU1NjlmN2ZmZDUyMjQ1NDU3MDY5NmE5MzNkMi4uYjgxYjY5ZWU0YWEwMjc1
OTQwYmZiOTdhMTAyYTdjYmE2NTVhNDU0YiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMC0xMS0wOCAgSm9o
biBLbm90dGVuYmVsdCAgPGprbm90dGVuQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdl
ZCBieSBKZXJlbXkgT3Jsb3cuCisKKyAgICAgICAgQXNzZXJ0IHRoYXQgRGV2aWNlT3JpZW50YXRp
b25DbGllbnRNb2NrIGlzIHVzZWQgYnkgb25seSBvbmUgY29udHJvbGxlci4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ4NTA2CisKKyAgICAgICAgVGhp
cyBpcyBhIGRlc2lnbiBjb25zdHJhaW50IG9mIHRoZSBEZXZpY2VPcmllbnRhdGlvbkNsaWVudE1v
Y2sgYmVjYXVzZSB0aGUKKyAgICAgICAgbV9jb250cm9sbGVyIGZpZWxkIGNhbiBvbmx5IHN0b3Jl
IGEgcG9pbnRlciB0byBhIHNpbmdsZSBpbnN0YW5jZSBvZiB0aGUKKyAgICAgICAgY29ycmVzcG9u
ZGluZyBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9t
b2NrL0RldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpE
ZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2s6OnNldENvbnRyb2xsZXIpOgorCiAyMDEwLTExLTE1
ICBQYXRyaWNrIEdhbnN0ZXJlciAgPHBhcm9nYUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vbW9j
ay9EZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2suY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9tb2Nr
L0RldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jay5jcHAKaW5kZXggYzJjOTMxNmY2ODljNmMxYmM1
NWFiM2IyZGMwMWZkOTNlOTA5OGE5YS4uMmZhNWFjYmVlZmVjOGZjMzU3NGZhMTIxY2JkMTU4OGFk
MGRhNzY2YyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL0RldmljZU9yaWVudGF0
aW9uQ2xpZW50TW9jay5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL0RldmljZU9yaWVu
dGF0aW9uQ2xpZW50TW9jay5jcHAKQEAgLTM5LDYgKzM5LDcgQEAgRGV2aWNlT3JpZW50YXRpb25D
bGllbnRNb2NrOjpEZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2soKQogCiB2b2lkIERldmljZU9y
aWVudGF0aW9uQ2xpZW50TW9jazo6c2V0Q29udHJvbGxlcihEZXZpY2VPcmllbnRhdGlvbkNvbnRy
b2xsZXIqIGNvbnRyb2xsZXIpCiB7CisgICAgQVNTRVJUKCFtX2NvbnRyb2xsZXIpOwogICAgIG1f
Y29udHJvbGxlciA9IGNvbnRyb2xsZXI7CiAgICAgQVNTRVJUKG1fY29udHJvbGxlcik7CiB9CmRp
ZmYgLS1naXQgYS9XZWJLaXRUb29scy9DaGFuZ2VMb2cgYi9XZWJLaXRUb29scy9DaGFuZ2VMb2cK
aW5kZXggZDFkMDU3ZTcwMzhkNmFkODZlZmQ0NDMxN2QxOTQyMzA0MDJkM2IyNy4uZGQxYjIzMWIx
ZjYyYzEyYmE2NWY3OGU0NDlmMTliZjU2NGZiZWRhNyAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMv
Q2hhbmdlTG9nCisrKyBiL1dlYktpdFRvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisy
MDEwLTExLTA4ICBKb2huIEtub3R0ZW5iZWx0ICA8amtub3R0ZW5AY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IEplcmVteSBPcmxvdy4KKworICAgICAgICBNb3ZlIERldmljZU9y
aWVudGF0aW9uQ2xpZW50TW9jayBmcm9tIExheW91dFRlc3RDb250cm9sbGVyIHRvIFdlYlZpZXdI
b3N0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDg1
MDYKKworICAgICAgICBUaGlzIGVuc3VyZXMgdGhhdCB0aGVyZSBpcyBvbmUgbW9jayBwZXIgcGFn
ZSBXZWJWaWV3IC8gV2ViVmlld0hvc3QuIFRoaXMgaXMgYQorICAgICAgICBkZXNpZ24gY29uc3Ry
YWludCBvZiB0aGUgRGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrIGJlY2F1c2UgdGhlIG1fY29u
dHJvbGxlcgorICAgICAgICBmaWVsZCBjYW4gb25seSBzdG9yZSBhIHBvaW50ZXIgdG8gYSBzaW5n
bGUgaW5zdGFuY2Ugb2YgdGhlIGNvcnJlc3BvbmRpbmcKKyAgICAgICAgRGV2aWNlT3JpZW50YXRp
b25Db250cm9sbGVyLgorCisgICAgICAgIFRlc3Q6IGZhc3QvZG9tL0RldmljZU9yaWVudGF0aW9u
L25vLXBhZ2UtY2FjaGUuaHRtbAorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
TGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6
OnNldE1vY2tEZXZpY2VPcmllbnRhdGlvbik6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxl
cjo6ZGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oOgorICAgICAgICAqIER1bXBSZW5kZXJU
cmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNwcDoKKyAgICAgICAgKFdlYlZpZXdIb3N0OjpkZXZp
Y2VPcmllbnRhdGlvbkNsaWVudE1vY2spOgorICAgICAgICAoV2ViVmlld0hvc3Q6OmRldmljZU9y
aWVudGF0aW9uQ2xpZW50KToKKyAgICAgICAgKFdlYlZpZXdIb3N0OjpyZXNldCk6CisgICAgICAg
ICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuaDoKKwogMjAxMC0xMS0xNSAg
QmVuamFtaW4gUG91bGFpbiAgPGJlbmphbWluLnBvdWxhaW5Abm9raWEuY29tPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IEFuZHJlYXMgS2xpbmcuCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAgYi9XZWJLaXRUb29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKaW5kZXgg
NWIwYzg0NDJjZDJjMDI4YjA4NjZmYzZhMzg1Y2EyMGE0YjE3YWE3Mi4uMzg2YmJhMzQwNDQyZmQ2
ODhhMDQ5YmJmNDY4YTEyODhmMGU4NzM3ZCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1dlYktpdFRv
b2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcApAQCAt
MTUwMiw5ICsxNTAyLDEwIEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldE1vY2tEZXZp
Y2VPcmllbnRhdGlvbihjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtCiAgICAgICAgIHJldHVy
bjsKIAogICAgIFdlYkRldmljZU9yaWVudGF0aW9uIG9yaWVudGF0aW9uKGFyZ3VtZW50c1swXS50
b0Jvb2xlYW4oKSwgYXJndW1lbnRzWzFdLnRvRG91YmxlKCksIGFyZ3VtZW50c1syXS50b0Jvb2xl
YW4oKSwgYXJndW1lbnRzWzNdLnRvRG91YmxlKCksIGFyZ3VtZW50c1s0XS50b0Jvb2xlYW4oKSwg
YXJndW1lbnRzWzVdLnRvRG91YmxlKCkpOwotCi0gICAgQVNTRVJUKG1fZGV2aWNlT3JpZW50YXRp
b25DbGllbnRNb2NrKTsKLSAgICBtX2RldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jay0+c2V0T3Jp
ZW50YXRpb24ob3JpZW50YXRpb24pOworICAgIC8vIE5vdGUgdGhhdCB3ZSBvbmx5IGNhbGwgc2V0
T3JpZW50YXRpb24gb24gdGhlIG1haW4gcGFnZSdzIG1vY2sgc2luY2UgdGhpcyBpcyBhbGwgdGhh
dCB0aGUKKyAgICAvLyB0ZXN0cyByZXF1aXJlLiBJZiBuZWNlc3NhcnksIHdlIGNvdWxkIGdldCBh
IGxpc3Qgb2YgV2ViVmlld0hvc3RzIGZyb20gdGhlIFRlc3RTaGVsbCBhbmQKKyAgICAvLyBjYWxs
IHNldE9yaWVudGF0aW9uIG9uIGVhY2ggRGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrLgorICAg
IG1fc2hlbGwtPndlYlZpZXdIb3N0KCktPmRldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jaygpLT5z
ZXRPcmllbnRhdGlvbihvcmllbnRhdGlvbik7CiB9CiAKIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xs
ZXI6OnNldEdlb2xvY2F0aW9uUGVybWlzc2lvbihjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3Vt
ZW50cywgQ3BwVmFyaWFudCogcmVzdWx0KQpAQCAtMTU2NiwxMyArMTU2Nyw2IEBAIHZvaWQgTGF5
b3V0VGVzdENvbnRyb2xsZXI6Om1hcmtlclRleHRGb3JMaXN0SXRlbShjb25zdCBDcHBBcmd1bWVu
dExpc3QmIGFyZ3MsIENwCiAgICAgICAgIHJlc3VsdC0+c2V0KGVsZW1lbnQuZG9jdW1lbnQoKS5m
cmFtZSgpLT5tYXJrZXJUZXh0Rm9yTGlzdEl0ZW0oZWxlbWVudCkudXRmOCgpKTsKIH0KIAotV2Vi
RGV2aWNlT3JpZW50YXRpb25DbGllbnQqIExheW91dFRlc3RDb250cm9sbGVyOjpkZXZpY2VPcmll
bnRhdGlvbkNsaWVudCgpCi17Ci0gICAgaWYgKCFtX2RldmljZU9yaWVudGF0aW9uQ2xpZW50TW9j
ay5nZXQoKSkKLSAgICAgICAgbV9kZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2suc2V0KFdlYkRl
dmljZU9yaWVudGF0aW9uQ2xpZW50TW9jazo6Y3JlYXRlKCkpOwotICAgIHJldHVybiBtX2Rldmlj
ZU9yaWVudGF0aW9uQ2xpZW50TW9jay5nZXQoKTsKLX0KLQogdm9pZCBMYXlvdXRUZXN0Q29udHJv
bGxlcjo6aGFzU3BlbGxpbmdNYXJrZXIoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMs
IENwcFZhcmlhbnQqIHJlc3VsdCkKIHsKICAgICBpZiAoYXJndW1lbnRzLnNpemUoKSA8IDIgfHwg
IWFyZ3VtZW50c1swXS5pc051bWJlcigpIHx8ICFhcmd1bWVudHNbMV0uaXNOdW1iZXIoKSkKZGlm
ZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RD
b250cm9sbGVyLmggYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRU
ZXN0Q29udHJvbGxlci5oCmluZGV4IGZjMTY4Mjc0MWI3Mjg2MWQ4MzU4MGU4OTNmNjBlZWJiYjU3
NTUzMTEuLjYyZjQ3M2M3ZTkxMGUzZDc3Y2EwNmNiNTRiNTQ5MzEwYTAzN2QyNGIgMTAwNjQ0Ci0t
LSBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9s
bGVyLmgKKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVz
dENvbnRyb2xsZXIuaApAQCAtNDksOCArNDksNiBAQAogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4K
IAogbmFtZXNwYWNlIFdlYktpdCB7Ci1jbGFzcyBXZWJEZXZpY2VPcmllbnRhdGlvbkNsaWVudDsK
LWNsYXNzIFdlYkRldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jazsKIGNsYXNzIFdlYlNwZWVjaElu
cHV0Q29udHJvbGxlcjsKIGNsYXNzIFdlYlNwZWVjaElucHV0Q29udHJvbGxlck1vY2s7CiBjbGFz
cyBXZWJTcGVlY2hJbnB1dExpc3RlbmVyOwpAQCAtMzQwLDcgKzMzOCw2IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHNldFdvcmtRdWV1ZUZyb3plbihib29sIGZyb3plbikgeyBtX3dvcmtRdWV1ZS5zZXRG
cm96ZW4oZnJvemVuKTsgfQogCiAgICAgV2ViS2l0OjpXZWJTcGVlY2hJbnB1dENvbnRyb2xsZXIq
IHNwZWVjaElucHV0Q29udHJvbGxlcihXZWJLaXQ6OldlYlNwZWVjaElucHV0TGlzdGVuZXIqKTsK
LSAgICBXZWJLaXQ6OldlYkRldmljZU9yaWVudGF0aW9uQ2xpZW50KiBkZXZpY2VPcmllbnRhdGlv
bkNsaWVudCgpOwogICAgIGJvb2wgc2hvdWxkRHVtcEFzVGV4dCgpIHsgcmV0dXJuIG1fZHVtcEFz
VGV4dDsgfQogICAgIGJvb2wgc2hvdWxkRHVtcEVkaXRpbmdDYWxsYmFja3MoKSB7IHJldHVybiBt
X2R1bXBFZGl0aW5nQ2FsbGJhY2tzOyB9CiAgICAgYm9vbCBzaG91bGREdW1wRnJhbWVMb2FkQ2Fs
bGJhY2tzKCkgeyByZXR1cm4gbV9kdW1wRnJhbWVMb2FkQ2FsbGJhY2tzOyB9CkBAIC01NDUsOCAr
NTQyLDYgQEAgcHJpdmF0ZToKICAgICBXZWJLaXQ6OldlYlVSTCBtX3VzZXJTdHlsZVNoZWV0TG9j
YXRpb247CiAKICAgICBPd25QdHI8V2ViS2l0OjpXZWJTcGVlY2hJbnB1dENvbnRyb2xsZXJNb2Nr
PiBtX3NwZWVjaElucHV0Q29udHJvbGxlck1vY2s7Ci0KLSAgICBPd25QdHI8V2ViS2l0OjpXZWJE
ZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2s+IG1fZGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2Nr
OwogfTsKIAogI2VuZGlmIC8vIExheW91dFRlc3RDb250cm9sbGVyX2gKZGlmZiAtLWdpdCBhL1dl
YktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNwcCBiL1dlYktp
dFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNwcAppbmRleCAzZjEy
NmJlODM3MmQ3YzhmZGRlNmVlMDRlMTI1M2RjMzgyYzc1YjllLi5jNGU0YTc2MzMwZjllNWVjYjI4
ZjlkMDU4NWUzNDkwYWQ2Yzg0ODU0IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHAKKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuY3BwCkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVk
ZSAiV2ViQ29uc29sZU1lc3NhZ2UuaCIKICNpbmNsdWRlICJXZWJDb250ZXh0TWVudURhdGEuaCIK
ICNpbmNsdWRlICJXZWJEYXRhU291cmNlLmgiCisjaW5jbHVkZSAiV2ViRGV2aWNlT3JpZW50YXRp
b25DbGllbnRNb2NrLmgiCiAjaW5jbHVkZSAiV2ViRHJhZ0RhdGEuaCIKICNpbmNsdWRlICJXZWJF
bGVtZW50LmgiCiAjaW5jbHVkZSAiV2ViRnJhbWUuaCIKQEAgLTU4Myw5ICs1ODQsMTYgQEAgV2Vi
U3BlZWNoSW5wdXRDb250cm9sbGVyKiBXZWJWaWV3SG9zdDo6c3BlZWNoSW5wdXRDb250cm9sbGVy
KFdlYktpdDo6V2ViU3BlZWNoSW4KICAgICByZXR1cm4gbV9zaGVsbC0+bGF5b3V0VGVzdENvbnRy
b2xsZXIoKS0+c3BlZWNoSW5wdXRDb250cm9sbGVyKGxpc3RlbmVyKTsKIH0KIAotV2ViS2l0OjpX
ZWJEZXZpY2VPcmllbnRhdGlvbkNsaWVudCogV2ViVmlld0hvc3Q6OmRldmljZU9yaWVudGF0aW9u
Q2xpZW50KCkKK1dlYkRldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jayogV2ViVmlld0hvc3Q6OmRl
dmljZU9yaWVudGF0aW9uQ2xpZW50TW9jaygpCiB7Ci0gICAgcmV0dXJuIG1fc2hlbGwtPmxheW91
dFRlc3RDb250cm9sbGVyKCktPmRldmljZU9yaWVudGF0aW9uQ2xpZW50KCk7CisgICAgaWYgKCFt
X2RldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jay5nZXQoKSkKKyAgICAgICAgbV9kZXZpY2VPcmll
bnRhdGlvbkNsaWVudE1vY2suc2V0KFdlYkRldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jazo6Y3Jl
YXRlKCkpOworICAgIHJldHVybiBtX2RldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jay5nZXQoKTsK
K30KKworV2ViRGV2aWNlT3JpZW50YXRpb25DbGllbnQqIFdlYlZpZXdIb3N0OjpkZXZpY2VPcmll
bnRhdGlvbkNsaWVudCgpCit7CisgICAgcmV0dXJuIGRldmljZU9yaWVudGF0aW9uQ2xpZW50TW9j
aygpOwogfQogCiAvLyBXZWJXaWRnZXRDbGllbnQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xz
L0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmggYi9XZWJLaXRUb29scy9EdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5oCmluZGV4IDIxM2NmM2RiMjcwYzZkM2Nm
MGNjOWI0MjYzNjgxM2I2OTYzZDQwOWIuLjVmYzAwZjE0YjZhYWE1NTc3MTFlYWJiYjA1YjJlMTA4
MTY5MmQ5MjcgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L1dlYlZpZXdIb3N0LmgKKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
V2ViVmlld0hvc3QuaApAQCAtNDcsNiArNDcsNyBAQCBjbGFzcyBUZXN0U2hlbGw7CiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKIGNsYXNzIFdlYkZyYW1lOwogY2xhc3MgV2ViRGV2aWNlT3JpZW50YXRpb25D
bGllbnQ7CitjbGFzcyBXZWJEZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2s7CiBjbGFzcyBXZWJH
ZW9sb2NhdGlvblNlcnZpY2VNb2NrOwogY2xhc3MgV2ViU3BlZWNoSW5wdXRDb250cm9sbGVyOwog
Y2xhc3MgV2ViU3BlZWNoSW5wdXRMaXN0ZW5lcjsKQEAgLTE5OSw2ICsyMDAsOCBAQCBjbGFzcyBX
ZWJWaWV3SG9zdCA6IHB1YmxpYyBXZWJLaXQ6OldlYlZpZXdDbGllbnQsIHB1YmxpYyBXZWJLaXQ6
OldlYkZyYW1lQ2xpZW50LAogICAgIHZpcnR1YWwgYm9vbCBhbGxvd1NjcmlwdChXZWJLaXQ6Oldl
YkZyYW1lKiwgYm9vbCBlbmFibGVkUGVyU2V0dGluZ3MpOwogICAgIHZpcnR1YWwgdm9pZCBvcGVu
RmlsZVN5c3RlbShXZWJLaXQ6OldlYkZyYW1lKiwgV2ViS2l0OjpXZWJGaWxlU3lzdGVtOjpUeXBl
LCBsb25nIGxvbmcgc2l6ZSwgYm9vbCBjcmVhdGUsIFdlYktpdDo6V2ViRmlsZVN5c3RlbUNhbGxi
YWNrcyopOwogCisgICAgV2ViS2l0OjpXZWJEZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2sqIGRl
dmljZU9yaWVudGF0aW9uQ2xpZW50TW9jaygpOworCiBwcml2YXRlOgogICAgIExheW91dFRlc3RD
b250cm9sbGVyKiBsYXlvdXRUZXN0Q29udHJvbGxlcigpIGNvbnN0OwogCkBAIC0zMDUsNiArMzA4
LDggQEAgcHJpdmF0ZToKICAgICBPd25QdHI8V2ViS2l0OjpXZWJHZW9sb2NhdGlvblNlcnZpY2VN
b2NrPiBtX2dlb2xvY2F0aW9uU2VydmljZU1vY2s7CiAjZW5kaWYKIAorICAgIE93blB0cjxXZWJL
aXQ6OldlYkRldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jaz4gbV9kZXZpY2VPcmllbnRhdGlvbkNs
aWVudE1vY2s7CisKICAgICBPd25QdHI8VGVzdE5hdmlnYXRpb25Db250cm9sbGVyKj4gbV9uYXZp
Z2F0aW9uQ29udHJvbGxlcjsKIH07CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>