<?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>25197</bug_id>
          
          <creation_ts>2009-04-14 17:58:30 -0700</creation_ts>
          <short_desc>implement orientation and aspect-ratio media queries</short_desc>
          <delta_ts>2009-05-14 16:15:13 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dean Jackson">dino</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>117549</commentid>
    <comment_count>0</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2009-04-14 17:58:30 -0700</bug_when>
    <thetext>http://www.w3.org/TR/css3-mediaqueries/#orientation

We don&apos;t yet implement orientation and aspect-ratio

&lt;rdar://problem/6791666&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>117651</commentid>
    <comment_count>1</comment_count>
      <attachid>29512</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2009-04-15 12:40:18 -0700</bug_when>
    <thetext>Created attachment 29512
patch

obviously patch needs PNG pixel results too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>117653</commentid>
    <comment_count>2</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2009-04-15 12:45:50 -0700</bug_when>
    <thetext>Hmmm.. Firefox reevaluates media queries as the page resizes.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>117709</commentid>
    <comment_count>3</comment_count>
      <attachid>29524</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2009-04-15 19:44:02 -0700</bug_when>
    <thetext>Created attachment 29524
patch now does live updating

patch now links up viewport changes to re-evaluation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>120907</commentid>
    <comment_count>4</comment_count>
      <attachid>29524</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-05-12 11:16:12 -0700</bug_when>
    <thetext>Comment on attachment 29524
patch now does live updating

&gt; +static bool orientationMediaFeatureEval(CSSValue* value, RenderStyle*, Frame* frame, MediaFeaturePrefix)
&gt; +{
&gt; +    if (value) {

An early return if !(value) would make the code simpler.

&gt; +        FrameView* view = frame-&gt;view();
&gt; +        int width = view-&gt;layoutWidth();
&gt; +        int height = view-&gt;layoutHeight();
&gt; +        if (width &gt; height) // Square viewport is portrait
&gt; +            return &quot;landscape&quot; == static_cast&lt;CSSPrimitiveValue*&gt;(value)-&gt;getStringValue();
&gt; +        else
&gt; +            return &quot;portrait&quot; == static_cast&lt;CSSPrimitiveValue*&gt;(value)-&gt;getStringValue();

Don&apos;t use &apos;else&apos; after &apos;return&apos;.

&gt; +static bool aspect_ratioMediaFeatureEval(CSSValue* value, RenderStyle*, Frame* frame, MediaFeaturePrefix op)
&gt; +{
&gt; +    if (value) {

Prefer early return.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>121402</commentid>
    <comment_count>5</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2009-05-14 16:15:13 -0700</bug_when>
    <thetext>Committed r43739
	M	WebCore/ChangeLog
	M	WebCore/css/MediaQueryExp.h
	M	WebCore/css/MediaFeatureNames.h
	M	WebCore/css/MediaQueryEvaluator.cpp
	A	LayoutTests/platform/mac/fast/media/mq-aspect-ratio-expected.checksum
	A	LayoutTests/platform/mac/fast/media/mq-orientation-expected.png
	A	LayoutTests/platform/mac/fast/media/mq-orientation-expected.txt
	A	LayoutTests/platform/mac/fast/media/mq-aspect-ratio-expected.png
	A	LayoutTests/platform/mac/fast/media/mq-orientation-expected.checksum
	A	LayoutTests/platform/mac/fast/media/mq-aspect-ratio-expected.txt
	M	LayoutTests/ChangeLog
	A	LayoutTests/fast/media/mq-orientation.html
	A	LayoutTests/fast/media/mq-aspect-ratio.html

with early return fix, and no else</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>29512</attachid>
            <date>2009-04-15 12:40:18 -0700</date>
            <delta_ts>2009-04-15 19:44:02 -0700</delta_ts>
            <desc>patch</desc>
            <filename>mq.patch</filename>
            <type>text/plain</type>
            <size>9859</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA5ODYwNTk0Li42OGE4MjYwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMDktMDQt
MTUgIERlYW4gSmFja3NvbiAgPGRpbm9AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yNTE5NworCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBhc3BlY3QtcmF0aW8g
YW5kIG9yaWVudGF0aW9uCisgICAgICAgIG1lZGlhIHF1ZXJpZXMuCisKKyAgICAgICAgKiBmYXN0
L21lZGlhL21xLWFzcGVjdC1yYXRpby5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L21lZGlh
L21xLW9yaWVudGF0aW9uLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9mYXN0
L21lZGlhL21xLWFzcGVjdC1yYXRpby1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBs
YXRmb3JtL21hYy9mYXN0L21lZGlhL21xLW9yaWVudGF0aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisKIDIwMDktMDQtMTQgIEFkYW0gUm9iZW4gIDxhcm9iZW5AYXBwbGUuY29tPgogCiAgICAgICAg
IFNraXAgYW5vdGhlciB0ZXN0IHRoYXQgc29tZXRpbWVzIHRpbWVzIG91dCBvbiBXaW5kb3dzCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21xLWFzcGVjdC1yYXRpby5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tcS1hc3BlY3QtcmF0aW8uaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi5jOGExNjBlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9tZWRpYS9tcS1hc3BlY3QtcmF0aW8uaHRtbApAQCAtMCwwICsxLDI2IEBACis8
aHRtbD4KKzxoZWFkPgorPHRpdGxlPkNTUzMgbWVkaWEgcXVlcnkgdGVzdDogbWVkaWEgcXVlcnkg
dGVzdGluZyBhc3BlY3QtcmF0aW8gZmVhdHVyZS48L3RpdGxlPgorPHN0eWxlIHR5cGU9InRleHQv
Y3NzIj4KK0BtZWRpYSBzY3JlZW4gYW5kIChhc3BlY3QtcmF0aW86ODAwLzYwMCkgeworI2EgeyBj
b2xvcjogZ3JlZW4gfQorfQorQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi1hc3BlY3QtcmF0aW86MS8x
KSB7CisjYiB7IGNvbG9yOiBncmVlbiB9Cit9CitAbWVkaWEgc2NyZWVuIGFuZCAobWF4LWFzcGVj
dC1yYXRpbzoxLzEpIHsKKyNjIHsgY29sb3I6IGdyZWVuIH0KK30KK0BtZWRpYSBzY3JlZW4gYW5k
IChtaW4tYXNwZWN0LXJhdGlvOjE2LzkpIHsKKyNkIHsgY29sb3I6IGdyZWVuIH0KK30KKzwvc3R5
bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgPHAgaWQ9ImEiPlRoaXMgdGV4dCBzaG91bGQgYmUgZ3Jl
ZW4gaWYgdGhlIHZpZXdwb3J0IGlzIDgwMDo2MDAgcmF0aW8uIFRoaXMgaXMgdW5saWtlbHkgdG8g
aGFwcGVuCisgICAgYnkgY2hhbmNlLCBidXQgdGhlIGxheW91dCB0ZXN0aW5nIHNldHMgdGhpcyBz
aXplPC9wPgorICA8cCBpZD0iYiI+VGhpcyB0ZXh0IHNob3VsZCBiZSBncmVlbiBpZiB0aGUgdmll
d3BvcnQgaXMgbGFuZHNjYXBlIChtaW5pbXVtIGFzcGVjdCByYXRpbyBvZiAxOjEpLjwvcD4KKyAg
PHAgaWQ9ImMiPlRoaXMgdGV4dCBzaG91bGQgYmUgZ3JlZW4gaWYgdGhlIHZpZXdwb3J0IGlzIHBv
cnRyYWl0IChtYXhpbXVtIGFzcGVjdCByYXRpbyBvZiAxOjEpLjwvcD4KKyAgPHAgaWQ9ImQiPlRo
aXMgdGV4dCBzaG91bGQgYmUgZ3JlZW4gaWYgdGhlIHZpZXdwb3J0IGFzcGVjdCByYXRpbyBpcyBn
cmVhdGVyIHRoYW4gMTY6OS48L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L21lZGlhL21xLW9yaWVudGF0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L21lZGlhL21xLW9yaWVudGF0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uZDg3YWQ1MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEv
bXEtb3JpZW50YXRpb24uaHRtbApAQCAtMCwwICsxLDE4IEBACis8aHRtbD4KKzxoZWFkPgorPHRp
dGxlPkNTUzMgbWVkaWEgcXVlcnkgdGVzdDogbWVkaWEgcXVlcnkgdGVzdGluZyBvcmllbnRhdGlv
biBmZWF0dXJlLjwvdGl0bGU+Cis8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorQG1lZGlhIHNjcmVl
biBhbmQgKG9yaWVudGF0aW9uOnBvcnRyYWl0KSB7CisjYSB7IGNvbG9yOiBncmVlbiB9Cit9CitA
bWVkaWEgc2NyZWVuIGFuZCAob3JpZW50YXRpb246bGFuZHNjYXBlKSB7CisjYiB7IGNvbG9yOiBn
cmVlbiB9Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+CisgIDxwIGlkPSJhIj5UaGlzIHRl
eHQgc2hvdWxkIGJlIGdyZWVuIGlmIHRoZSB2aWV3cG9ydCBpcyBwb3J0cmFpdC48L3A+CisgIDxw
IGlkPSJiIj5UaGlzIHRleHQgc2hvdWxkIGJlIGdyZWVuIGlmIHRoZSB2aWV3cG9ydCBpcyBsYW5k
c2NhcGUuPC9wPgorICA8cD5PYnZpb3VzbHksIGF0IGxlYXN0IG9uZSBzaG91bGQgYmUgZ3JlZW4s
IGJ1dCBuZXZlciBib3RoLiBTcXVhcmUgaXMgcG9ydHJhaXQuPC9wPgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvbWVkaWEvbXEtYXNw
ZWN0LXJhdGlvLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L21l
ZGlhL21xLWFzcGVjdC1yYXRpby1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uNTE1MmUxNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9mYXN0L21lZGlhL21xLWFzcGVjdC1yYXRpby1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwxOSBAQAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlclZpZXcgYXQgKDAs
MCkgc2l6ZSA4MDB4NjAwCitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyQmxv
Y2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDYwMAorICAgIFJlbmRlckJvZHkge0JPRFl9IGF0
ICg4LDgpIHNpemUgNzg0eDU3NgorICAgICAgUmVuZGVyQmxvY2sge1B9IGF0ICgwLDApIHNpemUg
Nzg0eDM2IFtjb2xvcj0jMDA4MDAwXQorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAs
MCkgc2l6ZSA3NjJ4MzYKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA1MzI6ICJU
aGlzIHRleHQgc2hvdWxkIGJlIGdyZWVuIGlmIHRoZSB2aWV3cG9ydCBpcyA4MDA6NjAwIHJhdGlv
LiBUaGlzIGlzIHVubGlrZWx5IHRvIGhhcHBlbiAiCisgICAgICAgICAgdGV4dCBydW4gYXQgKDUz
MiwwKSB3aWR0aCAyMzA6ICJieSBjaGFuY2UsIGJ1dCB0aGUgbGF5b3V0IHRlc3Rpbmcgc2V0cyIK
KyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwxOCkgd2lkdGggNTA6ICJ0aGlzIHNpemUiCisgICAg
ICBSZW5kZXJCbG9jayB7UH0gYXQgKDAsNTIpIHNpemUgNzg0eDE4IFtjb2xvcj0jMDA4MDAwXQor
ICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA1Mjl4MTgKKyAgICAgICAg
ICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA1Mjk6ICJUaGlzIHRleHQgc2hvdWxkIGJlIGdyZWVu
IGlmIHRoZSB2aWV3cG9ydCBpcyBsYW5kc2NhcGUgKG1pbmltdW0gYXNwZWN0IHJhdGlvIG9mIDE6
MSkuIgorICAgICAgUmVuZGVyQmxvY2sge1B9IGF0ICgwLDg2KSBzaXplIDc4NHgxOAorICAgICAg
ICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA1MTV4MTgKKyAgICAgICAgICB0ZXh0
IHJ1biBhdCAoMCwwKSB3aWR0aCA1MTU6ICJUaGlzIHRleHQgc2hvdWxkIGJlIGdyZWVuIGlmIHRo
ZSB2aWV3cG9ydCBpcyBwb3J0cmFpdCAobWF4aW11bSBhc3BlY3QgcmF0aW8gb2YgMToxKS4iCisg
ICAgICBSZW5kZXJCbG9jayB7UH0gYXQgKDAsMTIwKSBzaXplIDc4NHgxOAorICAgICAgICBSZW5k
ZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0NTh4MTgKKyAgICAgICAgICB0ZXh0IHJ1biBh
dCAoMCwwKSB3aWR0aCA0NTg6ICJUaGlzIHRleHQgc2hvdWxkIGJlIGdyZWVuIGlmIHRoZSB2aWV3
cG9ydCBhc3BlY3QgcmF0aW8gaXMgZ3JlYXRlciB0aGFuIDE2OjkuIgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvbWVkaWEvbXEtb3JpZW50YXRpb24tZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvbWVkaWEvbXEtb3JpZW50YXRpb24t
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE0MjBhYzYK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9tZWRpYS9t
cS1vcmllbnRhdGlvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorbGF5ZXIgYXQgKDAs
MCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCitsYXll
ciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNp
emUgODAweDYwMAorICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNzg0eDU3Ngor
ICAgICAgUmVuZGVyQmxvY2sge1B9IGF0ICgwLDApIHNpemUgNzg0eDE4CisgICAgICAgIFJlbmRl
clRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDMyMngxOAorICAgICAgICAgIHRleHQgcnVuIGF0
ICgwLDApIHdpZHRoIDMyMjogIlRoaXMgdGV4dCBzaG91bGQgYmUgZ3JlZW4gaWYgdGhlIHZpZXdw
b3J0IGlzIHBvcnRyYWl0LiIKKyAgICAgIFJlbmRlckJsb2NrIHtQfSBhdCAoMCwzNCkgc2l6ZSA3
ODR4MTggW2NvbG9yPSMwMDgwMDBdCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCww
KSBzaXplIDMzOXgxOAorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDMzOTogIlRo
aXMgdGV4dCBzaG91bGQgYmUgZ3JlZW4gaWYgdGhlIHZpZXdwb3J0IGlzIGxhbmRzY2FwZS4iCisg
ICAgICBSZW5kZXJCbG9jayB7UH0gYXQgKDAsNjgpIHNpemUgNzg0eDE4CisgICAgICAgIFJlbmRl
clRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDQ2NngxOAorICAgICAgICAgIHRleHQgcnVuIGF0
ICgwLDApIHdpZHRoIDQ2NjogIk9idmlvdXNseSwgYXQgbGVhc3Qgb25lIHNob3VsZCBiZSBncmVl
biwgYnV0IG5ldmVyIGJvdGguIFNxdWFyZSBpcyBwb3J0cmFpdC4iCmRpZmYgLS1naXQgYS9XZWJD
b3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGY3ZDEyY2MuLmZjOTkzNzUg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjIgQEAKKzIwMDktMDQtMTUgIERlYW4gSmFja3NvbiAgPGRpbm9AYXBwbGUuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNTE5NworCisgICAgICAgIEFkZCBz
dXBwb3J0IGZvciBhc3BlY3QtcmF0aW8gYW5kIG9yaWVudGF0aW9uCisgICAgICAgIG1lZGlhIHF1
ZXJpZXMuCisKKyAgICAgICAgVGVzdHM6IGZhc3QvbWVkaWEvbXEtYXNwZWN0LXJhdGlvLmh0bWwK
KyAgICAgICAgICAgICAgIGZhc3QvbWVkaWEvbXEtb3JpZW50YXRpb24uaHRtbAorCisgICAgICAg
ICogY3NzL01lZGlhRmVhdHVyZU5hbWVzLmg6CisgICAgICAgICogY3NzL01lZGlhUXVlcnlFdmFs
dWF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6b3JpZW50YXRpb25NZWRpYUZlYXR1cmVFdmFs
KToKKyAgICAgICAgKFdlYkNvcmU6OmFzcGVjdF9yYXRpb01lZGlhRmVhdHVyZUV2YWwpOgorICAg
ICAgICAoV2ViQ29yZTo6bWluX2FzcGVjdF9yYXRpb01lZGlhRmVhdHVyZUV2YWwpOgorICAgICAg
ICAoV2ViQ29yZTo6bWF4X2FzcGVjdF9yYXRpb01lZGlhRmVhdHVyZUV2YWwpOgorCiAyMDA5LTA0
LTE0ICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CiAKICAgICAgICAgVXNlZCBz
dm4gbWVyZ2UgLXI0MjUyOTo0MjUyOCB0byByb2xsIG91dCBteSBsYXN0IHBhdGNoIGJlY2F1c2Ug
aXQgYnJva2UKZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL01lZGlhRmVhdHVyZU5hbWVzLmggYi9X
ZWJDb3JlL2Nzcy9NZWRpYUZlYXR1cmVOYW1lcy5oCmluZGV4IGJlYTJiOGEuLjUxOTY1ODYgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL01lZGlhRmVhdHVyZU5hbWVzLmgKKysrIGIvV2ViQ29yZS9j
c3MvTWVkaWFGZWF0dXJlTmFtZXMuaApAQCAtMzMsMTEgKzMzLDE0IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICBtYWNybyhtb25vY2hyb21lLCAibW9ub2Nocm9tZSIpIFwKICAgICBtYWNybyho
ZWlnaHQsICJoZWlnaHQiKSBcCiAgICAgbWFjcm8od2lkdGgsICJ3aWR0aCIpIFwKKyAgICBtYWNy
byhvcmllbnRhdGlvbiwgIm9yaWVudGF0aW9uIikgXAorICAgIG1hY3JvKGFzcGVjdF9yYXRpbywg
ImFzcGVjdC1yYXRpbyIpIFwKICAgICBtYWNybyhkZXZpY2VfYXNwZWN0X3JhdGlvLCAiZGV2aWNl
LWFzcGVjdC1yYXRpbyIpIFwKICAgICBtYWNybyhkZXZpY2VfcGl4ZWxfcmF0aW8sICItd2Via2l0
LWRldmljZS1waXhlbC1yYXRpbyIpIFwKICAgICBtYWNybyhkZXZpY2VfaGVpZ2h0LCAiZGV2aWNl
LWhlaWdodCIpIFwKICAgICBtYWNybyhkZXZpY2Vfd2lkdGgsICJkZXZpY2Utd2lkdGgiKSBcCiAg
ICAgbWFjcm8obWF4X2NvbG9yLCAibWF4LWNvbG9yIikgXAorICAgIG1hY3JvKG1heF9hc3BlY3Rf
cmF0aW8sICJtYXgtYXNwZWN0LXJhdGlvIikgXAogICAgIG1hY3JvKG1heF9kZXZpY2VfYXNwZWN0
X3JhdGlvLCAibWF4LWRldmljZS1hc3BlY3QtcmF0aW8iKSBcCiAgICAgbWFjcm8obWF4X2Rldmlj
ZV9waXhlbF9yYXRpbywgIi13ZWJraXQtbWF4LWRldmljZS1waXhlbC1yYXRpbyIpIFwKICAgICBt
YWNybyhtYXhfZGV2aWNlX2hlaWdodCwgIm1heC1kZXZpY2UtaGVpZ2h0IikgXApAQCAtNDYsNiAr
NDksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgbWFjcm8obWF4X21vbm9jaHJvbWUsICJt
YXgtbW9ub2Nocm9tZSIpIFwKICAgICBtYWNybyhtYXhfd2lkdGgsICJtYXgtd2lkdGgiKSBcCiAg
ICAgbWFjcm8obWluX2NvbG9yLCAibWluLWNvbG9yIikgXAorICAgIG1hY3JvKG1pbl9hc3BlY3Rf
cmF0aW8sICJtaW4tYXNwZWN0LXJhdGlvIikgXAogICAgIG1hY3JvKG1pbl9kZXZpY2VfYXNwZWN0
X3JhdGlvLCAibWluLWRldmljZS1hc3BlY3QtcmF0aW8iKSBcCiAgICAgbWFjcm8obWluX2Rldmlj
ZV9waXhlbF9yYXRpbywgIi13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbyIpIFwKICAgICBt
YWNybyhtaW5fZGV2aWNlX2hlaWdodCwgIm1pbi1kZXZpY2UtaGVpZ2h0IikgXApkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHAgYi9XZWJDb3JlL2Nzcy9NZWRp
YVF1ZXJ5RXZhbHVhdG9yLmNwcAppbmRleCA0MjY4ZDhjLi40NWM3ZDNiIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcAorKysgYi9XZWJDb3JlL2Nzcy9NZWRp
YVF1ZXJ5RXZhbHVhdG9yLmNwcApAQCAtMjMwLDYgKzIzMCw0MSBAQCBzdGF0aWMgYm9vbCBtb25v
Y2hyb21lTWVkaWFGZWF0dXJlRXZhbChDU1NWYWx1ZSogdmFsdWUsIFJlbmRlclN0eWxlKiBzdHls
ZSwgRnJhbQogICAgIHJldHVybiBjb2xvck1lZGlhRmVhdHVyZUV2YWwodmFsdWUsIHN0eWxlLCBm
cmFtZSwgb3ApOwogfQogCitzdGF0aWMgYm9vbCBvcmllbnRhdGlvbk1lZGlhRmVhdHVyZUV2YWwo
Q1NTVmFsdWUqIHZhbHVlLCBSZW5kZXJTdHlsZSosIEZyYW1lKiBmcmFtZSwgTWVkaWFGZWF0dXJl
UHJlZml4KQoreworICAgIGlmICh2YWx1ZSkgeworICAgICAgICBGcmFtZVZpZXcqIHZpZXcgPSBm
cmFtZS0+dmlldygpOworICAgICAgICBpbnQgd2lkdGggPSB2aWV3LT5sYXlvdXRXaWR0aCgpOwor
ICAgICAgICBpbnQgaGVpZ2h0ID0gdmlldy0+bGF5b3V0SGVpZ2h0KCk7CisgICAgICAgIGlmICh3
aWR0aCA+IGhlaWdodCkgLy8gU3F1YXJlIHZpZXdwb3J0IGlzIHBvcnRyYWl0CisgICAgICAgICAg
ICByZXR1cm4gImxhbmRzY2FwZSIgPT0gc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih2
YWx1ZSktPmdldFN0cmluZ1ZhbHVlKCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJldHVy
biAicG9ydHJhaXQiID09IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFsdWUpLT5n
ZXRTdHJpbmdWYWx1ZSgpOworICAgIH0KKyAgICAKKyAgICAvLyBBIG1pc3NpbmcgcGFyYW1ldGVy
IHNob3VsZCBmYWlsCisgICAgcmV0dXJuIGZhbHNlOworfQorICAgIAorc3RhdGljIGJvb2wgYXNw
ZWN0X3JhdGlvTWVkaWFGZWF0dXJlRXZhbChDU1NWYWx1ZSogdmFsdWUsIFJlbmRlclN0eWxlKiwg
RnJhbWUqIGZyYW1lLCBNZWRpYUZlYXR1cmVQcmVmaXggb3ApCit7CisgICAgaWYgKHZhbHVlKSB7
CisgICAgICAgIEZyYW1lVmlldyogdmlldyA9IGZyYW1lLT52aWV3KCk7CisgICAgICAgIGludCB3
aWR0aCA9IHZpZXctPmxheW91dFdpZHRoKCk7CisgICAgICAgIGludCBoZWlnaHQgPSB2aWV3LT5s
YXlvdXRIZWlnaHQoKTsKKyAgICAgICAgaW50IGggPSAwOworICAgICAgICBpbnQgdiA9IDA7Cisg
ICAgICAgIGlmIChwYXJzZUFzcGVjdFJhdGlvKHZhbHVlLCBoLCB2KSkKKyAgICAgICAgICAgIHJl
dHVybiB2ICE9IDAgICYmIGNvbXBhcmVWYWx1ZSh3aWR0aCAqIHYsIGhlaWdodCAqIGgsIG9wKTsK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICAKKyAgICAvLyAoeyxtaW4tLG1heC19
YXNwZWN0LXJhdGlvKQorICAgIC8vIGFzc3VtZSBpZiB3ZSBoYXZlIGEgZGV2aWNlLCBpdHMgYXNw
ZWN0IHJhdGlvIGlzIG5vbi16ZXJvCisgICAgcmV0dXJuIHRydWU7Cit9CisKIHN0YXRpYyBib29s
IGRldmljZV9hc3BlY3RfcmF0aW9NZWRpYUZlYXR1cmVFdmFsKENTU1ZhbHVlKiB2YWx1ZSwgUmVu
ZGVyU3R5bGUqLCBGcmFtZSogZnJhbWUsIE1lZGlhRmVhdHVyZVByZWZpeCBvcCkKIHsKICAgICBp
ZiAodmFsdWUpIHsKQEAgLTMyOCw2ICszNjMsMTYgQEAgc3RhdGljIGJvb2wgbWF4X21vbm9jaHJv
bWVNZWRpYUZlYXR1cmVFdmFsKENTU1ZhbHVlKiB2YWx1ZSwgUmVuZGVyU3R5bGUqIHN0eWxlLAog
ICAgIHJldHVybiBtb25vY2hyb21lTWVkaWFGZWF0dXJlRXZhbCh2YWx1ZSwgc3R5bGUsIGZyYW1l
LCBNYXhQcmVmaXgpOwogfQogCitzdGF0aWMgYm9vbCBtaW5fYXNwZWN0X3JhdGlvTWVkaWFGZWF0
dXJlRXZhbChDU1NWYWx1ZSogdmFsdWUsIFJlbmRlclN0eWxlKiBzdHlsZSwgRnJhbWUqIGZyYW1l
LCBNZWRpYUZlYXR1cmVQcmVmaXgpCit7CisgICAgcmV0dXJuIGFzcGVjdF9yYXRpb01lZGlhRmVh
dHVyZUV2YWwodmFsdWUsIHN0eWxlLCBmcmFtZSwgTWluUHJlZml4KTsKK30KKworc3RhdGljIGJv
b2wgbWF4X2FzcGVjdF9yYXRpb01lZGlhRmVhdHVyZUV2YWwoQ1NTVmFsdWUqIHZhbHVlLCBSZW5k
ZXJTdHlsZSogc3R5bGUsIEZyYW1lKiBmcmFtZSwgTWVkaWFGZWF0dXJlUHJlZml4KQoreworICAg
IHJldHVybiBhc3BlY3RfcmF0aW9NZWRpYUZlYXR1cmVFdmFsKHZhbHVlLCBzdHlsZSwgZnJhbWUs
IE1heFByZWZpeCk7Cit9CisKIHN0YXRpYyBib29sIG1pbl9kZXZpY2VfYXNwZWN0X3JhdGlvTWVk
aWFGZWF0dXJlRXZhbChDU1NWYWx1ZSogdmFsdWUsIFJlbmRlclN0eWxlKiBzdHlsZSwgRnJhbWUq
IGZyYW1lLCBNZWRpYUZlYXR1cmVQcmVmaXgpCiB7CiAgICAgcmV0dXJuIGRldmljZV9hc3BlY3Rf
cmF0aW9NZWRpYUZlYXR1cmVFdmFsKHZhbHVlLCBzdHlsZSwgZnJhbWUsIE1pblByZWZpeCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>29524</attachid>
            <date>2009-04-15 19:44:02 -0700</date>
            <delta_ts>2009-05-12 11:16:12 -0700</delta_ts>
            <desc>patch now does live updating</desc>
            <filename>mq.patch</filename>
            <type>text/plain</type>
            <size>11252</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2MmIyNmEyLi5lZDUzZTY4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMDktMDQt
MTUgIERlYW4gSmFja3NvbiAgPGRpbm9AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yNTE5NworCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBhc3BlY3QtcmF0aW8g
YW5kIG9yaWVudGF0aW9uCisgICAgICAgIG1lZGlhIHF1ZXJpZXMuCisKKyAgICAgICAgKiBmYXN0
L21lZGlhL21xLWFzcGVjdC1yYXRpby5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L21lZGlh
L21xLW9yaWVudGF0aW9uLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9mYXN0
L21lZGlhL21xLWFzcGVjdC1yYXRpby1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBs
YXRmb3JtL21hYy9mYXN0L21lZGlhL21xLW9yaWVudGF0aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisKIDIwMDktMDQtMTUgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CiAK
ICAgICAgICAgRml4IGluY29ycmVjdCBleHBlY3RlZCByZXN1bHQuCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L21lZGlhL21xLWFzcGVjdC1yYXRpby5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9tZWRpYS9tcS1hc3BlY3QtcmF0aW8uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi5jOGExNjBlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRp
YS9tcS1hc3BlY3QtcmF0aW8uaHRtbApAQCAtMCwwICsxLDI2IEBACis8aHRtbD4KKzxoZWFkPgor
PHRpdGxlPkNTUzMgbWVkaWEgcXVlcnkgdGVzdDogbWVkaWEgcXVlcnkgdGVzdGluZyBhc3BlY3Qt
cmF0aW8gZmVhdHVyZS48L3RpdGxlPgorPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KK0BtZWRpYSBz
Y3JlZW4gYW5kIChhc3BlY3QtcmF0aW86ODAwLzYwMCkgeworI2EgeyBjb2xvcjogZ3JlZW4gfQor
fQorQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi1hc3BlY3QtcmF0aW86MS8xKSB7CisjYiB7IGNvbG9y
OiBncmVlbiB9Cit9CitAbWVkaWEgc2NyZWVuIGFuZCAobWF4LWFzcGVjdC1yYXRpbzoxLzEpIHsK
KyNjIHsgY29sb3I6IGdyZWVuIH0KK30KK0BtZWRpYSBzY3JlZW4gYW5kIChtaW4tYXNwZWN0LXJh
dGlvOjE2LzkpIHsKKyNkIHsgY29sb3I6IGdyZWVuIH0KK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8
Ym9keT4KKyAgPHAgaWQ9ImEiPlRoaXMgdGV4dCBzaG91bGQgYmUgZ3JlZW4gaWYgdGhlIHZpZXdw
b3J0IGlzIDgwMDo2MDAgcmF0aW8uIFRoaXMgaXMgdW5saWtlbHkgdG8gaGFwcGVuCisgICAgYnkg
Y2hhbmNlLCBidXQgdGhlIGxheW91dCB0ZXN0aW5nIHNldHMgdGhpcyBzaXplPC9wPgorICA8cCBp
ZD0iYiI+VGhpcyB0ZXh0IHNob3VsZCBiZSBncmVlbiBpZiB0aGUgdmlld3BvcnQgaXMgbGFuZHNj
YXBlIChtaW5pbXVtIGFzcGVjdCByYXRpbyBvZiAxOjEpLjwvcD4KKyAgPHAgaWQ9ImMiPlRoaXMg
dGV4dCBzaG91bGQgYmUgZ3JlZW4gaWYgdGhlIHZpZXdwb3J0IGlzIHBvcnRyYWl0IChtYXhpbXVt
IGFzcGVjdCByYXRpbyBvZiAxOjEpLjwvcD4KKyAgPHAgaWQ9ImQiPlRoaXMgdGV4dCBzaG91bGQg
YmUgZ3JlZW4gaWYgdGhlIHZpZXdwb3J0IGFzcGVjdCByYXRpbyBpcyBncmVhdGVyIHRoYW4gMTY6
OS48L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21l
ZGlhL21xLW9yaWVudGF0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21xLW9yaWVu
dGF0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDg3YWQ1MAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbXEtb3JpZW50YXRpb24u
aHRtbApAQCAtMCwwICsxLDE4IEBACis8aHRtbD4KKzxoZWFkPgorPHRpdGxlPkNTUzMgbWVkaWEg
cXVlcnkgdGVzdDogbWVkaWEgcXVlcnkgdGVzdGluZyBvcmllbnRhdGlvbiBmZWF0dXJlLjwvdGl0
bGU+Cis8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorQG1lZGlhIHNjcmVlbiBhbmQgKG9yaWVudGF0
aW9uOnBvcnRyYWl0KSB7CisjYSB7IGNvbG9yOiBncmVlbiB9Cit9CitAbWVkaWEgc2NyZWVuIGFu
ZCAob3JpZW50YXRpb246bGFuZHNjYXBlKSB7CisjYiB7IGNvbG9yOiBncmVlbiB9Cit9Cis8L3N0
eWxlPgorPC9oZWFkPgorPGJvZHk+CisgIDxwIGlkPSJhIj5UaGlzIHRleHQgc2hvdWxkIGJlIGdy
ZWVuIGlmIHRoZSB2aWV3cG9ydCBpcyBwb3J0cmFpdC48L3A+CisgIDxwIGlkPSJiIj5UaGlzIHRl
eHQgc2hvdWxkIGJlIGdyZWVuIGlmIHRoZSB2aWV3cG9ydCBpcyBsYW5kc2NhcGUuPC9wPgorICA8
cD5PYnZpb3VzbHksIGF0IGxlYXN0IG9uZSBzaG91bGQgYmUgZ3JlZW4sIGJ1dCBuZXZlciBib3Ro
LiBTcXVhcmUgaXMgcG9ydHJhaXQuPC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvbWVkaWEvbXEtYXNwZWN0LXJhdGlvLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L21lZGlhL21xLWFzcGVjdC1y
YXRpby1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTE1
MmUxNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L21l
ZGlhL21xLWFzcGVjdC1yYXRpby1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxOSBAQAorbGF5ZXIg
YXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAw
CitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgw
LDApIHNpemUgODAweDYwMAorICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNzg0
eDU3NgorICAgICAgUmVuZGVyQmxvY2sge1B9IGF0ICgwLDApIHNpemUgNzg0eDM2IFtjb2xvcj0j
MDA4MDAwXQorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA3NjJ4MzYK
KyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA1MzI6ICJUaGlzIHRleHQgc2hvdWxk
IGJlIGdyZWVuIGlmIHRoZSB2aWV3cG9ydCBpcyA4MDA6NjAwIHJhdGlvLiBUaGlzIGlzIHVubGlr
ZWx5IHRvIGhhcHBlbiAiCisgICAgICAgICAgdGV4dCBydW4gYXQgKDUzMiwwKSB3aWR0aCAyMzA6
ICJieSBjaGFuY2UsIGJ1dCB0aGUgbGF5b3V0IHRlc3Rpbmcgc2V0cyIKKyAgICAgICAgICB0ZXh0
IHJ1biBhdCAoMCwxOCkgd2lkdGggNTA6ICJ0aGlzIHNpemUiCisgICAgICBSZW5kZXJCbG9jayB7
UH0gYXQgKDAsNTIpIHNpemUgNzg0eDE4IFtjb2xvcj0jMDA4MDAwXQorICAgICAgICBSZW5kZXJU
ZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA1Mjl4MTgKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAo
MCwwKSB3aWR0aCA1Mjk6ICJUaGlzIHRleHQgc2hvdWxkIGJlIGdyZWVuIGlmIHRoZSB2aWV3cG9y
dCBpcyBsYW5kc2NhcGUgKG1pbmltdW0gYXNwZWN0IHJhdGlvIG9mIDE6MSkuIgorICAgICAgUmVu
ZGVyQmxvY2sge1B9IGF0ICgwLDg2KSBzaXplIDc4NHgxOAorICAgICAgICBSZW5kZXJUZXh0IHsj
dGV4dH0gYXQgKDAsMCkgc2l6ZSA1MTV4MTgKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3
aWR0aCA1MTU6ICJUaGlzIHRleHQgc2hvdWxkIGJlIGdyZWVuIGlmIHRoZSB2aWV3cG9ydCBpcyBw
b3J0cmFpdCAobWF4aW11bSBhc3BlY3QgcmF0aW8gb2YgMToxKS4iCisgICAgICBSZW5kZXJCbG9j
ayB7UH0gYXQgKDAsMTIwKSBzaXplIDc4NHgxOAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0g
YXQgKDAsMCkgc2l6ZSA0NTh4MTgKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0
NTg6ICJUaGlzIHRleHQgc2hvdWxkIGJlIGdyZWVuIGlmIHRoZSB2aWV3cG9ydCBhc3BlY3QgcmF0
aW8gaXMgZ3JlYXRlciB0aGFuIDE2OjkuIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjL2Zhc3QvbWVkaWEvbXEtb3JpZW50YXRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL2Zhc3QvbWVkaWEvbXEtb3JpZW50YXRpb24tZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE0MjBhYzYKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9tZWRpYS9tcS1vcmllbnRhdGlvbi1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAw
CisgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCitsYXllciBhdCAoMCwwKSBzaXpl
IDgwMHg2MDAKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDYwMAorICAg
IFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNzg0eDU3NgorICAgICAgUmVuZGVyQmxv
Y2sge1B9IGF0ICgwLDApIHNpemUgNzg0eDE4CisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBh
dCAoMCwwKSBzaXplIDMyMngxOAorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDMy
MjogIlRoaXMgdGV4dCBzaG91bGQgYmUgZ3JlZW4gaWYgdGhlIHZpZXdwb3J0IGlzIHBvcnRyYWl0
LiIKKyAgICAgIFJlbmRlckJsb2NrIHtQfSBhdCAoMCwzNCkgc2l6ZSA3ODR4MTggW2NvbG9yPSMw
MDgwMDBdCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDMzOXgxOAor
ICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDMzOTogIlRoaXMgdGV4dCBzaG91bGQg
YmUgZ3JlZW4gaWYgdGhlIHZpZXdwb3J0IGlzIGxhbmRzY2FwZS4iCisgICAgICBSZW5kZXJCbG9j
ayB7UH0gYXQgKDAsNjgpIHNpemUgNzg0eDE4CisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBh
dCAoMCwwKSBzaXplIDQ2NngxOAorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDQ2
NjogIk9idmlvdXNseSwgYXQgbGVhc3Qgb25lIHNob3VsZCBiZSBncmVlbiwgYnV0IG5ldmVyIGJv
dGguIFNxdWFyZSBpcyBwb3J0cmFpdC4iCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBi
L1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDgxNWFhNDUuLjQ4ZjZkYjYgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAK
KzIwMDktMDQtMTUgIERlYW4gSmFja3NvbiAgPGRpbm9AYXBwbGUuY29tPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yNTE5NworCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBhc3Bl
Y3QtcmF0aW8gYW5kIG9yaWVudGF0aW9uCisgICAgICAgIG1lZGlhIHF1ZXJpZXMuCisKKyAgICAg
ICAgVGVzdHM6IGZhc3QvbWVkaWEvbXEtYXNwZWN0LXJhdGlvLmh0bWwKKyAgICAgICAgICAgICAg
IGZhc3QvbWVkaWEvbXEtb3JpZW50YXRpb24uaHRtbAorCisgICAgICAgICogY3NzL01lZGlhRmVh
dHVyZU5hbWVzLmg6CisgICAgICAgICogY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6b3JpZW50YXRpb25NZWRpYUZlYXR1cmVFdmFsKToKKyAgICAgICAgKFdl
YkNvcmU6OmFzcGVjdF9yYXRpb01lZGlhRmVhdHVyZUV2YWwpOgorICAgICAgICAoV2ViQ29yZTo6
bWluX2FzcGVjdF9yYXRpb01lZGlhRmVhdHVyZUV2YWwpOgorICAgICAgICAoV2ViQ29yZTo6bWF4
X2FzcGVjdF9yYXRpb01lZGlhRmVhdHVyZUV2YWwpOgorICAgICAgICAgICAgLSBldmFsdWF0aW9u
IG1ldGhvZHMKKyAgICAgICAgKiBjc3MvTWVkaWFRdWVyeUV4cC5oOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFRdWVyeUV4cDo6aXNWaWV3cG9ydERlcGVuZGVudCk6CisgICAgICAgICAgICAtIG1h
a2Ugc3VyZSB2aWV3cG9ydCBjaGFuZ2VzIHRyaWdnZXIgZXZhbHVhdGlvbgorCiAyMDA5LTA0LTE1
ICBFcmljIFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBT
aW1vbiBGcmFzZXIuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9NZWRpYUZlYXR1cmVOYW1lcy5o
IGIvV2ViQ29yZS9jc3MvTWVkaWFGZWF0dXJlTmFtZXMuaAppbmRleCBiZWEyYjhhLi41MTk2NTg2
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nzcy9NZWRpYUZlYXR1cmVOYW1lcy5oCisrKyBiL1dlYkNv
cmUvY3NzL01lZGlhRmVhdHVyZU5hbWVzLmgKQEAgLTMzLDExICszMywxNCBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgbWFjcm8obW9ub2Nocm9tZSwgIm1vbm9jaHJvbWUiKSBcCiAgICAgbWFj
cm8oaGVpZ2h0LCAiaGVpZ2h0IikgXAogICAgIG1hY3JvKHdpZHRoLCAid2lkdGgiKSBcCisgICAg
bWFjcm8ob3JpZW50YXRpb24sICJvcmllbnRhdGlvbiIpIFwKKyAgICBtYWNybyhhc3BlY3RfcmF0
aW8sICJhc3BlY3QtcmF0aW8iKSBcCiAgICAgbWFjcm8oZGV2aWNlX2FzcGVjdF9yYXRpbywgImRl
dmljZS1hc3BlY3QtcmF0aW8iKSBcCiAgICAgbWFjcm8oZGV2aWNlX3BpeGVsX3JhdGlvLCAiLXdl
YmtpdC1kZXZpY2UtcGl4ZWwtcmF0aW8iKSBcCiAgICAgbWFjcm8oZGV2aWNlX2hlaWdodCwgImRl
dmljZS1oZWlnaHQiKSBcCiAgICAgbWFjcm8oZGV2aWNlX3dpZHRoLCAiZGV2aWNlLXdpZHRoIikg
XAogICAgIG1hY3JvKG1heF9jb2xvciwgIm1heC1jb2xvciIpIFwKKyAgICBtYWNybyhtYXhfYXNw
ZWN0X3JhdGlvLCAibWF4LWFzcGVjdC1yYXRpbyIpIFwKICAgICBtYWNybyhtYXhfZGV2aWNlX2Fz
cGVjdF9yYXRpbywgIm1heC1kZXZpY2UtYXNwZWN0LXJhdGlvIikgXAogICAgIG1hY3JvKG1heF9k
ZXZpY2VfcGl4ZWxfcmF0aW8sICItd2Via2l0LW1heC1kZXZpY2UtcGl4ZWwtcmF0aW8iKSBcCiAg
ICAgbWFjcm8obWF4X2RldmljZV9oZWlnaHQsICJtYXgtZGV2aWNlLWhlaWdodCIpIFwKQEAgLTQ2
LDYgKzQ5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIG1hY3JvKG1heF9tb25vY2hyb21l
LCAibWF4LW1vbm9jaHJvbWUiKSBcCiAgICAgbWFjcm8obWF4X3dpZHRoLCAibWF4LXdpZHRoIikg
XAogICAgIG1hY3JvKG1pbl9jb2xvciwgIm1pbi1jb2xvciIpIFwKKyAgICBtYWNybyhtaW5fYXNw
ZWN0X3JhdGlvLCAibWluLWFzcGVjdC1yYXRpbyIpIFwKICAgICBtYWNybyhtaW5fZGV2aWNlX2Fz
cGVjdF9yYXRpbywgIm1pbi1kZXZpY2UtYXNwZWN0LXJhdGlvIikgXAogICAgIG1hY3JvKG1pbl9k
ZXZpY2VfcGl4ZWxfcmF0aW8sICItd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW8iKSBcCiAg
ICAgbWFjcm8obWluX2RldmljZV9oZWlnaHQsICJtaW4tZGV2aWNlLWhlaWdodCIpIFwKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwIGIvV2ViQ29yZS9jc3Mv
TWVkaWFRdWVyeUV2YWx1YXRvci5jcHAKaW5kZXggNDI2OGQ4Yy4uZDZlNmY1YiAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHAKKysrIGIvV2ViQ29yZS9jc3Mv
TWVkaWFRdWVyeUV2YWx1YXRvci5jcHAKQEAgLTIzMCw2ICsyMzAsNDAgQEAgc3RhdGljIGJvb2wg
bW9ub2Nocm9tZU1lZGlhRmVhdHVyZUV2YWwoQ1NTVmFsdWUqIHZhbHVlLCBSZW5kZXJTdHlsZSog
c3R5bGUsIEZyYW0KICAgICByZXR1cm4gY29sb3JNZWRpYUZlYXR1cmVFdmFsKHZhbHVlLCBzdHls
ZSwgZnJhbWUsIG9wKTsKIH0KIAorc3RhdGljIGJvb2wgb3JpZW50YXRpb25NZWRpYUZlYXR1cmVF
dmFsKENTU1ZhbHVlKiB2YWx1ZSwgUmVuZGVyU3R5bGUqLCBGcmFtZSogZnJhbWUsIE1lZGlhRmVh
dHVyZVByZWZpeCkKK3sKKyAgICBpZiAodmFsdWUpIHsKKyAgICAgICAgRnJhbWVWaWV3KiB2aWV3
ID0gZnJhbWUtPnZpZXcoKTsKKyAgICAgICAgaW50IHdpZHRoID0gdmlldy0+bGF5b3V0V2lkdGgo
KTsKKyAgICAgICAgaW50IGhlaWdodCA9IHZpZXctPmxheW91dEhlaWdodCgpOworICAgICAgICBp
ZiAod2lkdGggPiBoZWlnaHQpIC8vIFNxdWFyZSB2aWV3cG9ydCBpcyBwb3J0cmFpdAorICAgICAg
ICAgICAgcmV0dXJuICJsYW5kc2NhcGUiID09IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVl
Kj4odmFsdWUpLT5nZXRTdHJpbmdWYWx1ZSgpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBy
ZXR1cm4gInBvcnRyYWl0IiA9PSBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVl
KS0+Z2V0U3RyaW5nVmFsdWUoKTsKKyAgICB9CisgICAgCisgICAgLy8gQSBtaXNzaW5nIHBhcmFt
ZXRlciBzaG91bGQgZmFpbAorICAgIHJldHVybiBmYWxzZTsKK30KKyAgICAKK3N0YXRpYyBib29s
IGFzcGVjdF9yYXRpb01lZGlhRmVhdHVyZUV2YWwoQ1NTVmFsdWUqIHZhbHVlLCBSZW5kZXJTdHls
ZSosIEZyYW1lKiBmcmFtZSwgTWVkaWFGZWF0dXJlUHJlZml4IG9wKQoreworICAgIGlmICh2YWx1
ZSkgeworICAgICAgICBGcmFtZVZpZXcqIHZpZXcgPSBmcmFtZS0+dmlldygpOworICAgICAgICBp
bnQgd2lkdGggPSB2aWV3LT5sYXlvdXRXaWR0aCgpOworICAgICAgICBpbnQgaGVpZ2h0ID0gdmll
dy0+bGF5b3V0SGVpZ2h0KCk7CisgICAgICAgIGludCBoID0gMDsKKyAgICAgICAgaW50IHYgPSAw
OworICAgICAgICBpZiAocGFyc2VBc3BlY3RSYXRpbyh2YWx1ZSwgaCwgdikpCisgICAgICAgICAg
ICByZXR1cm4gdiAhPSAwICAmJiBjb21wYXJlVmFsdWUod2lkdGggKiB2LCBoZWlnaHQgKiBoLCBv
cCk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgCisgICAgLy8gKHssbWluLSxt
YXgtfWFzcGVjdC1yYXRpbykKKyAgICAvLyBhc3N1bWUgaWYgd2UgaGF2ZSBhIGRldmljZSwgaXRz
IGFzcGVjdCByYXRpbyBpcyBub24temVybworICAgIHJldHVybiB0cnVlOworfQorCiBzdGF0aWMg
Ym9vbCBkZXZpY2VfYXNwZWN0X3JhdGlvTWVkaWFGZWF0dXJlRXZhbChDU1NWYWx1ZSogdmFsdWUs
IFJlbmRlclN0eWxlKiwgRnJhbWUqIGZyYW1lLCBNZWRpYUZlYXR1cmVQcmVmaXggb3ApCiB7CiAg
ICAgaWYgKHZhbHVlKSB7CkBAIC0zMjgsNiArMzYyLDE2IEBAIHN0YXRpYyBib29sIG1heF9tb25v
Y2hyb21lTWVkaWFGZWF0dXJlRXZhbChDU1NWYWx1ZSogdmFsdWUsIFJlbmRlclN0eWxlKiBzdHls
ZSwKICAgICByZXR1cm4gbW9ub2Nocm9tZU1lZGlhRmVhdHVyZUV2YWwodmFsdWUsIHN0eWxlLCBm
cmFtZSwgTWF4UHJlZml4KTsKIH0KIAorc3RhdGljIGJvb2wgbWluX2FzcGVjdF9yYXRpb01lZGlh
RmVhdHVyZUV2YWwoQ1NTVmFsdWUqIHZhbHVlLCBSZW5kZXJTdHlsZSogc3R5bGUsIEZyYW1lKiBm
cmFtZSwgTWVkaWFGZWF0dXJlUHJlZml4KQoreworICAgIHJldHVybiBhc3BlY3RfcmF0aW9NZWRp
YUZlYXR1cmVFdmFsKHZhbHVlLCBzdHlsZSwgZnJhbWUsIE1pblByZWZpeCk7Cit9CisKK3N0YXRp
YyBib29sIG1heF9hc3BlY3RfcmF0aW9NZWRpYUZlYXR1cmVFdmFsKENTU1ZhbHVlKiB2YWx1ZSwg
UmVuZGVyU3R5bGUqIHN0eWxlLCBGcmFtZSogZnJhbWUsIE1lZGlhRmVhdHVyZVByZWZpeCkKK3sK
KyAgICByZXR1cm4gYXNwZWN0X3JhdGlvTWVkaWFGZWF0dXJlRXZhbCh2YWx1ZSwgc3R5bGUsIGZy
YW1lLCBNYXhQcmVmaXgpOworfQorCiBzdGF0aWMgYm9vbCBtaW5fZGV2aWNlX2FzcGVjdF9yYXRp
b01lZGlhRmVhdHVyZUV2YWwoQ1NTVmFsdWUqIHZhbHVlLCBSZW5kZXJTdHlsZSogc3R5bGUsIEZy
YW1lKiBmcmFtZSwgTWVkaWFGZWF0dXJlUHJlZml4KQogewogICAgIHJldHVybiBkZXZpY2VfYXNw
ZWN0X3JhdGlvTWVkaWFGZWF0dXJlRXZhbCh2YWx1ZSwgc3R5bGUsIGZyYW1lLCBNaW5QcmVmaXgp
OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV4cC5oIGIvV2ViQ29yZS9jc3Mv
TWVkaWFRdWVyeUV4cC5oCmluZGV4IGRhYWUyMzIuLjMwMzZkMDQgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvY3NzL01lZGlhUXVlcnlFeHAuaAorKysgYi9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXhwLmgK
QEAgLTU3LDcgKzU3LDExIEBAIHB1YmxpYzoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBtX21lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6bWlu
X3dpZHRoTWVkaWFGZWF0dXJlIHx8CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbV9tZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6Om1pbl9oZWln
aHRNZWRpYUZlYXR1cmUgfHwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBtX21lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6bWF4X3dpZHRoTWVk
aWFGZWF0dXJlIHx8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbV9tZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6Om1heF9oZWlnaHRNZWRpYUZl
YXR1cmU7IH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBt
X21lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6bWF4X2hlaWdodE1lZGlhRmVhdHVy
ZSB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fbWVk
aWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjpvcmllbnRhdGlvbk1lZGlhRmVhdHVyZSB8
fAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fbWVkaWFG
ZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjphc3BlY3RfcmF0aW9NZWRpYUZlYXR1cmUgfHwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX21lZGlhRmVh
dHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6bWluX2FzcGVjdF9yYXRpb01lZGlhRmVhdHVyZSB8
fAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fbWVkaWFG
ZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjptYXhfYXNwZWN0X3JhdGlvTWVkaWFGZWF0dXJl
OyAgfQogcHJpdmF0ZToKICAgICBBdG9taWNTdHJpbmcgbV9tZWRpYUZlYXR1cmU7CiAgICAgUmVm
UHRyPENTU1ZhbHVlPiBtX3ZhbHVlOwo=
</data>
<flag name="review"
          id="14724"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>