<?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>66819</bug_id>
          
          <creation_ts>2011-08-23 16:15:21 -0700</creation_ts>
          <short_desc>Web Inspector: Directional arrow on element info box looks terrible</short_desc>
          <delta_ts>2011-08-25 03:33:14 -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>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</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>66926</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Matt Lilek">dev+webkit</reporter>
          <assigned_to name="Alexander Pavlov (apavlov)">apavlov</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>psolanki</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>455794</commentid>
    <comment_count>0</comment_count>
    <who name="Matt Lilek">dev+webkit</who>
    <bug_when>2011-08-23 16:15:21 -0700</bug_when>
    <thetext>The new little directional arrow on the yellow box that contains the name, ID, class and dimensions of a DOM node is very poorly drawn.

1) The bottom left portion should be shifted over by 1px so the first pixel doesn&apos;t draw on top of the box&apos;s border.
2) The tip is obnoxious.  Far too large.
3) The bottom right side draws on top of the box&apos;s border, as well as an extra pixel with it too.
4) The bottom right side needs to be shifted to avoid the same problem as (1).

Why was this even changed?  Just because callout arrows are in vogue doesn&apos;t mean every last UI element on every platform needs it.  It looks kind of ridiculous.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>455795</commentid>
    <comment_count>1</comment_count>
      <attachid>104926</attachid>
    <who name="Matt Lilek">dev+webkit</who>
    <bug_when>2011-08-23 16:16:02 -0700</bug_when>
    <thetext>Created attachment 104926
Screenshot</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>455993</commentid>
    <comment_count>2</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-08-24 00:29:24 -0700</bug_when>
    <thetext>There were three requests / problems this change was addressing:

a. Numerous users requested that different colors are used for padding/margin/etc.
b. Title was rendered with plain monospace (different from elements panel), no color coding was used
c. Title box was aligned with the margin box and for small elements it resulted in the confusion: &quot;does it overlap margin&quot;?

(In reply to comment #0)
&gt; The new little directional arrow on the yellow box that contains the name, ID, class and dimensions of a DOM node is very poorly drawn.
&gt; 1) The bottom left portion should be shifted over by 1px so the first pixel doesn&apos;t draw on top of the box&apos;s border.

+1, definitely requires fixing.

&gt; 2) The tip is obnoxious.  Far too large.

+1, Mac OS port problem, we are using smaller fonts on Mac, should be reflected in the title box.

&gt; 3) The bottom right side draws on top of the box&apos;s border, as well as an extra pixel with it too.

+1, will fix.


&gt; 4) The bottom right side needs to be shifted to avoid the same problem as (1).

+1, will fix.
&gt; 
&gt; Why was this even changed?  Just because callout arrows are in vogue doesn&apos;t mean every last UI element on every platform needs it.  It looks kind of ridiculous.

The reason behind the change is (c) from above. If you have an idea on how to make it more transparent / make arrow less rediculous, please let us know.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456109</commentid>
    <comment_count>3</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2011-08-24 08:17:07 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; c. Title box was aligned with the margin box and for small elements it resulted in the confusion: &quot;does it overlap margin&quot;?

&gt; &gt; Why was this even changed?  Just because callout arrows are in vogue doesn&apos;t mean every last UI element on every platform needs it.  It looks kind of ridiculous.
&gt; 
&gt; The reason behind the change is (c) from above. If you have an idea on how to make it more transparent / make arrow less rediculous, please let us know.

Another data point: in a few places across the Web Inspector UI, we use a popover which is exactly a callout with an arrow, having a similar appearance, so this concept is familiar to our users.

In addition to the point (c) from Pavel, some people (especially when the info box was just introduced) claimed that they were unable to see the [border of an] adjoining element above/below the selected one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456116</commentid>
    <comment_count>4</comment_count>
      <attachid>105003</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2011-08-24 08:41:01 -0700</bug_when>
    <thetext>Created attachment 105003
[PATCH] Suggested fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456149</commentid>
    <comment_count>5</comment_count>
      <attachid>105010</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2011-08-24 09:52:38 -0700</bug_when>
    <thetext>Created attachment 105010
[PATCH] Remove unnecessary adjustment term</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456152</commentid>
    <comment_count>6</comment_count>
      <attachid>105011</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2011-08-24 10:04:46 -0700</bug_when>
    <thetext>Created attachment 105011
[PATCH] Remove unnecessary path clipping</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456681</commentid>
    <comment_count>7</comment_count>
      <attachid>105011</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-08-25 00:03:24 -0700</bug_when>
    <thetext>Comment on attachment 105011
[PATCH] Remove unnecessary path clipping

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

&gt; Source/WebCore/inspector/DOMNodeHighlighter.cpp:336
&gt; +        for (int i = 0; i &lt; 8; ++i)

Translating canvas 0.5, 0.5 would effectively do the same thing, but in a more elegant manner.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456729</commentid>
    <comment_count>8</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2011-08-25 02:53:09 -0700</bug_when>
    <thetext>Committed r93768: &lt;http://trac.webkit.org/changeset/93768&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456736</commentid>
    <comment_count>9</comment_count>
      <attachid>105153</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2011-08-25 03:06:47 -0700</bug_when>
    <thetext>Created attachment 105153
[PATCH] Patch for landing (EWS check)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456742</commentid>
    <comment_count>10</comment_count>
      <attachid>105156</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2011-08-25 03:10:54 -0700</bug_when>
    <thetext>Created attachment 105156
[PATCH] For EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456743</commentid>
    <comment_count>11</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2011-08-25 03:12:21 -0700</bug_when>
    <thetext>Rolled out by r93770</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456747</commentid>
    <comment_count>12</comment_count>
      <attachid>105158</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2011-08-25 03:17:29 -0700</bug_when>
    <thetext>Created attachment 105158
[PATCH] For EWS (bug reopened)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456751</commentid>
    <comment_count>13</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2011-08-25 03:31:09 -0700</bug_when>
    <thetext>Committed r93772: &lt;http://trac.webkit.org/changeset/93772&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456752</commentid>
    <comment_count>14</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2011-08-25 03:33:14 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 105011 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=105011&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/inspector/DOMNodeHighlighter.cpp:336
&gt; &gt; +        for (int i = 0; i &lt; 8; ++i)
&gt; 
&gt; Translating canvas 0.5, 0.5 would effectively do the same thing, but in a more elegant manner.

Landed a variation of patch 105011 with this suggested change applied.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>104926</attachid>
            <date>2011-08-23 16:16:02 -0700</date>
            <delta_ts>2011-08-23 16:16:02 -0700</delta_ts>
            <desc>Screenshot</desc>
            <filename>Screenshot-Big.png</filename>
            <type>image/png</type>
            <size>13792</size>
            <attacher name="Matt Lilek">dev+webkit</attacher>
            
              <data encoding="base64">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
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>105003</attachid>
            <date>2011-08-24 08:41:01 -0700</date>
            <delta_ts>2011-08-24 09:52:38 -0700</delta_ts>
            <desc>[PATCH] Suggested fix</desc>
            <filename>highlightfix.patch</filename>
            <type>text/plain</type>
            <size>9491</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">Y29tbWl0IDUzNjZhYjI2ZTc0MjIyNmI2OTNlMjQwY2YwNTRmNjVkNzM3YmY3YTQKQXV0aG9yOiBB
bGV4YW5kZXIgUGF2bG92IDxhcGF2bG92QGNocm9taXVtLm9yZz4KRGF0ZTogICBXZWQgQXVnIDI0
IDE4OjE3OjQxIDIwMTEgKzA0MDAKCiAgICBGaXgKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTY0ZDZlYS4uYWM4
NWIwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDExLTA4LTI0ICBBbGV4YW5kZXIg
UGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rvcjog
RGlyZWN0aW9uYWwgYXJyb3cgb24gZWxlbWVudCBpbmZvIGJveCBsb29rcyB0ZXJyaWJsZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY4MTkKKworICAg
ICAgICBCZWF1dGlmeSB0aGUgdG9vbHRpcCBhcnJvdywgZ2l2ZSBpdCBhIGJldHRlciBhbGlnbm1l
bnQgaW4gc29tZSBlZGdlIGNhc2VzLAorICAgICAgICBhbmQgZml4IHRoZSB0b29sdGlwIGZvbnQg
b24gTWFjcy4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIGluc3BlY3Rvci9ET01Ob2RlSGlnaGxpZ2h0ZXIuY3BwOgorCiAyMDExLTA4LTI0ICBQYXZl
bCBGZWxkbWFuICA8cGZlbGRtYW5AZ29vZ2xlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9y
OiBjbGVhclBzZXVkb1N0YXRlIHNob3VsZCByZXRhaW4gRWxlbWVudCB3aGlsZSBjbGVhcmluZwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0RPTU5vZGVIaWdobGlnaHRlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvRE9NTm9kZUhpZ2hsaWdodGVyLmNwcAppbmRl
eCA3OWZlMzQyLi5mNWUzOWIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
RE9NTm9kZUhpZ2hsaWdodGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvRE9N
Tm9kZUhpZ2hsaWdodGVyLmNwcApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIkZyYW1lLmgi
CiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCisj
aW5jbHVkZSAiR3JhcGhpY3NUeXBlcy5oIgogI2luY2x1ZGUgIk5vZGUuaCIKICNpbmNsdWRlICJQ
YWdlLmgiCiAjaW5jbHVkZSAiUmFuZ2UuaCIKQEAgLTQ5LDE0ICs1MCwyMSBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIG5hbWVzcGFjZSB7CiAKKyNpZiBPUyhXSU5ET1dTKQorc3RhdGljIGNvbnN0
IHVuc2lnbmVkIGZvbnRIZWlnaHRQeCA9IDEyOworI2VsaWYgT1MoVU5JWCkKK3N0YXRpYyBjb25z
dCB1bnNpZ25lZCBmb250SGVpZ2h0UHggPSAxMTsKKyNlbGlmIE9TKE1BQ19PU19YKQorc3RhdGlj
IGNvbnN0IHVuc2lnbmVkIGZvbnRIZWlnaHRQeCA9IDExOworI2VuZGlmCisKIGNvbnN0IHN0YXRp
YyBpbnQgcmVjdEluZmxhdGVQeCA9IDQ7Ci1jb25zdCBzdGF0aWMgaW50IGZvbnRIZWlnaHRQeCA9
IDEyOwogY29uc3Qgc3RhdGljIGludCBib3JkZXJXaWR0aFB4ID0gMTsKIGNvbnN0IHN0YXRpYyBp
bnQgdG9vbHRpcFBhZGRpbmcgPSA0OwogCiBjb25zdCBzdGF0aWMgaW50IGFycm93VGlwT2Zmc2V0
ID0gMjA7Ci1jb25zdCBzdGF0aWMgaW50IGFycm93SGVpZ2h0ID0gNzsKLWNvbnN0IHN0YXRpYyBp
bnQgYXJyb3dIYWxmV2lkdGggPSA3OworY29uc3Qgc3RhdGljIGZsb2F0IGFycm93SGVpZ2h0ID0g
NyArIC4yNTsgLy8gQW4gYWRqdXN0bWVudCB0ZXJtIHRvIGF2b2lkIGZpbGwvc3Ryb2tlIGFydGlm
YWN0cy4KK2NvbnN0IHN0YXRpYyBmbG9hdCBhcnJvd0hhbGZXaWR0aCA9IDc7CiAKIFBhdGggcXVh
ZFRvUGF0aChjb25zdCBGbG9hdFF1YWQmIHF1YWQpCiB7CkBAIC0xNTMsNDMgKzE2MSw0OSBAQCBp
bnQgZHJhd1N1YnN0cmluZyhjb25zdCBUZXh0UnVuJiBnbG9iYWxUZXh0UnVuLCBpbnQgb2Zmc2V0
LCBpbnQgbGVuZ3RoLCBjb25zdCBDbwogICAgIHJldHVybiBvZmZzZXQgKyBsZW5ndGg7CiB9CiAK
LWludCBjYWxjdWxhdGVBcnJvd1RpcFgoY29uc3QgTGF5b3V0UmVjdCYgYW5jaG9yQm94LCBjb25z
dCBMYXlvdXRSZWN0JiB0aXRsZVJlY3QpCitmbG9hdCBjYWxjdWxhdGVBcnJvd1RpcFgoY29uc3Qg
TGF5b3V0UmVjdCYgYW5jaG9yQm94LCBjb25zdCBMYXlvdXRSZWN0JiB0aXRsZVJlY3QpCiB7Ci0g
ICAgaW50IGFuY2hvclggPSBhbmNob3JCb3gueCgpOwotCi0gICAgLy8gQ2hlY2sgZm9yIGhlYXZp
bHkgbWlzYWxpZ25lZCB0b29sdGlwIGZpcnN0LgotICAgIGlmICh0aXRsZVJlY3QueCgpID4gYW5j
aG9yQm94Lm1heFgoKSkKLSAgICAgICAgcmV0dXJuIHRpdGxlUmVjdC54KCkgKyBhcnJvd0hhbGZX
aWR0aDsKKyAgICBjb25zdCBzdGF0aWMgaW50IGFuY2hvclRpcE9mZnNldFB4ID0gMjsKIAotICAg
IGlmICh0aXRsZVJlY3QubWF4WCgpIDwgYW5jaG9yWCkKLSAgICAgICAgcmV0dXJuIHRpdGxlUmVj
dC5tYXhYKCkgLSBhcnJvd0hhbGZXaWR0aDsKKyAgICBpbnQgbWluWCA9IHRpdGxlUmVjdC54KCkg
KyBhcnJvd0hhbGZXaWR0aDsKKyAgICBpbnQgbWF4WCA9IHRpdGxlUmVjdC5tYXhYKCkgLSBhcnJv
d0hhbGZXaWR0aDsKKyAgICBpbnQgYW5jaG9yWCA9IGFuY2hvckJveC54KCk7CisgICAgaW50IGFu
Y2hvck1heFggPSBhbmNob3JCb3gubWF4WCgpOwogCi0gICAgaW50IHggPSB0aXRsZVJlY3QueCgp
ICsgYXJyb3dUaXBPZmZzZXQ7CisgICAgaW50IHggPSB0aXRsZVJlY3QueCgpICsgYXJyb3dUaXBP
ZmZzZXQ7IC8vIERlZmF1bHQgdG9vbHRpcCBwb3NpdGlvbi4KICAgICBpZiAoeCA8IGFuY2hvclgp
Ci0gICAgICAgIHggPSBhbmNob3JYICsgYXJyb3dUaXBPZmZzZXQ7Ci0gICAgaWYgKHggPiB0aXRs
ZVJlY3QubWF4WCgpIC0gYXJyb3dIYWxmV2lkdGgpCi0gICAgICAgIHggPSB0aXRsZVJlY3QubWF4
WCgpIC0gYXJyb3dIYWxmV2lkdGg7CisgICAgICAgIHggPSBhbmNob3JYICsgYW5jaG9yVGlwT2Zm
c2V0UHg7CisgICAgZWxzZSBpZiAoeCA+IGFuY2hvck1heFgpCisgICAgICAgIHggPSBhbmNob3JN
YXhYIC0gYW5jaG9yVGlwT2Zmc2V0UHg7CisKKyAgICBpZiAoeCA8IG1pblgpCisgICAgICAgIHgg
PSBtaW5YOworICAgIGVsc2UgaWYgKHggPiBtYXhYKQorICAgICAgICB4ID0gbWF4WDsKIAogICAg
IHJldHVybiB4OwogfQogCi12b2lkIHNldFVwRm9udEZhbWlsaWVzKEZvbnREZXNjcmlwdGlvbiYg
Zm9udERlc2NyaXB0aW9uLCBXZWJDb3JlOjpTZXR0aW5ncyogc2V0dGluZ3MpCit2b2lkIHNldFVw
Rm9udERlc2NyaXB0aW9uKEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uLCBXZWJDb3Jl
OjpTZXR0aW5ncyogc2V0dGluZ3MpCiB7CiAjZGVmaW5lIFRPT0xUSVBfRk9OVF9GQU1JTElFUyhz
aXplLCAuLi4pIFwKLXN0YXRpYyB1bnNpZ25lZCB0b29sdGlwRm9udEZhY2VTaXplID0gc2l6ZTtc
CitzdGF0aWMgY29uc3QgdW5zaWduZWQgdG9vbHRpcEZvbnRGYWNlU2l6ZSA9IHNpemU7XAogc3Rh
dGljIGNvbnN0IEF0b21pY1N0cmluZyogdG9vbHRpcEZvbnRGYWNlW3NpemVdID0geyBfX1ZBX0FS
R1NfXyB9OwogCiAjaWYgT1MoV0lORE9XUykKIFRPT0xUSVBfRk9OVF9GQU1JTElFUygyLCBuZXcg
QXRvbWljU3RyaW5nKCJDb25zb2xhcyIpLCBuZXcgQXRvbWljU3RyaW5nKCJMdWNpZGEgQ29uc29s
ZSIpKQotI2VsaWYgT1MoVU5JWCkKLVRPT0xUSVBfRk9OVF9GQU1JTElFUygxLCBuZXcgQXRvbWlj
U3RyaW5nKCJkZWphdnUgc2FucyBtb25vIikpCiAjZWxpZiBPUyhNQUNfT1NfWCkKIFRPT0xUSVBf
Rk9OVF9GQU1JTElFUygyLCBuZXcgQXRvbWljU3RyaW5nKCJNZW5sbyIpLCBuZXcgQXRvbWljU3Ry
aW5nKCJNb25hY28iKSkKKyNlbGlmIE9TKFVOSVgpCitUT09MVElQX0ZPTlRfRkFNSUxJRVMoMSwg
bmV3IEF0b21pY1N0cmluZygiZGVqYXZ1IHNhbnMgbW9ubyIpKQogI2VuZGlmCiAvLyBJbiB0aGUg
ZGVmYXVsdCBjYXNlLCB3ZSBnZXQgdGhlIHNldHRpbmdzLXByb3ZpZGVkIG1vbm9zcGFjZSBmb250
LgogCiAjdW5kZWYgVE9PTFRJUF9GT05UX0ZBTUlMSUVTCiAKKyAgICBmb250RGVzY3JpcHRpb24u
c2V0UmVuZGVyaW5nTW9kZShzZXR0aW5ncy0+Zm9udFJlbmRlcmluZ01vZGUoKSk7CisgICAgZm9u
dERlc2NyaXB0aW9uLnNldENvbXB1dGVkU2l6ZShmb250SGVpZ2h0UHgpOworCiAgICAgY29uc3Qg
QXRvbWljU3RyaW5nJiBmaXhlZEZvbnRGYW1pbHkgPSBzZXR0aW5ncy0+Zml4ZWRGb250RmFtaWx5
KCk7CiAgICAgaWYgKCFmaXhlZEZvbnRGYW1pbHkuaXNFbXB0eSgpKSB7CiAgICAgICAgIGZvbnRE
ZXNjcmlwdGlvbi5zZXRHZW5lcmljRmFtaWx5KEZvbnREZXNjcmlwdGlvbjo6TW9ub3NwYWNlRmFt
aWx5KTsKQEAgLTIxNiw3ICsyMzAsNyBAQCBUT09MVElQX0ZPTlRfRkFNSUxJRVMoMiwgbmV3IEF0
b21pY1N0cmluZygiTWVubG8iKSwgbmV3IEF0b21pY1N0cmluZygiTW9uYWNvIikpCiB2b2lkIGRy
YXdFbGVtZW50VGl0bGUoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBOb2RlKiBub2RlLCBjb25z
dCBMYXlvdXRSZWN0JiBib3VuZGluZ0JveCwgY29uc3QgTGF5b3V0UmVjdCYgYW5jaG9yQm94LCBj
b25zdCBGbG9hdFJlY3QmIG92ZXJsYXlSZWN0LCBXZWJDb3JlOjpTZXR0aW5ncyogc2V0dGluZ3Mp
CiB7CiAKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKENvbG9yLCBiYWNrZ3JvdW5kQ29sb3IsICgy
NTUsIDI1NSwgMTk0LCAyNTUpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKENvbG9yLCBiYWNr
Z3JvdW5kQ29sb3IsICgyNTUsIDI1NSwgMTk0KSk7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChD
b2xvciwgdGFnQ29sb3IsICgxMzYsIDE4LCAxMjgpKTsgLy8gU2FtZSBhcyAud2Via2l0LWh0bWwt
dGFnLgogICAgIERFRklORV9TVEFUSUNfTE9DQUwoQ29sb3IsIGF0dHJDb2xvciwgKDI2LCAyNiwg
MTY2KSk7IC8vIFNhbWUgYXMgLndlYmtpdC1odG1sLWF0dHJpYnV0ZS12YWx1ZS4KICAgICBERUZJ
TkVfU1RBVElDX0xPQ0FMKENvbG9yLCBub3JtYWxDb2xvciwgKENvbG9yOjpibGFjaykpOwpAQCAt
MjY1LDkgKzI3OSw3IEBAIHZvaWQgZHJhd0VsZW1lbnRUaXRsZShHcmFwaGljc0NvbnRleHQmIGNv
bnRleHQsIE5vZGUqIG5vZGUsIGNvbnN0IExheW91dFJlY3QmIGJvCiAgICAgbm9kZVRpdGxlICs9
IGhlaWdodE51bWJlclBhcnQgKyBweFN0cmluZzsKIAogICAgIEZvbnREZXNjcmlwdGlvbiBkZXNj
OwotICAgIGRlc2Muc2V0UmVuZGVyaW5nTW9kZShzZXR0aW5ncy0+Zm9udFJlbmRlcmluZ01vZGUo
KSk7Ci0gICAgZGVzYy5zZXRDb21wdXRlZFNpemUoZm9udEhlaWdodFB4KTsKLSAgICBzZXRVcEZv
bnRGYW1pbGllcyhkZXNjLCBzZXR0aW5ncyk7CisgICAgc2V0VXBGb250RGVzY3JpcHRpb24oZGVz
Yywgc2V0dGluZ3MpOwogICAgIEZvbnQgZm9udCA9IEZvbnQoZGVzYywgMCwgMCk7CiAgICAgZm9u
dC51cGRhdGUoMCk7CiAKQEAgLTI4Miw3ICsyOTQsNyBAQCB2b2lkIGRyYXdFbGVtZW50VGl0bGUo
R3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBOb2RlKiBub2RlLCBjb25zdCBMYXlvdXRSZWN0JiBi
bwogICAgIExheW91dFVuaXQgZHkgPSBib3JkZXJXaWR0aFB4OwogCiAgICAgLy8gSWYgdGhlIHRp
cCBzdGlja3MgYmV5b25kIHRoZSByaWdodCBvZiBvdmVybGF5UmVjdCwgcmlnaHQtYWxpZ24gdGhl
IHRpcCB3aXRoIHRoZSBzYWlkIGJvdW5kYXJ5LgotICAgIGlmICh0aXRsZVJlY3QubWF4WCgpID4g
b3ZlcmxheVJlY3QubWF4WCgpKQorICAgIGlmICh0aXRsZVJlY3QubWF4WCgpICsgZHggPiBvdmVy
bGF5UmVjdC5tYXhYKCkpCiAgICAgICAgIGR4ID0gb3ZlcmxheVJlY3QubWF4WCgpIC0gdGl0bGVS
ZWN0Lm1heFgoKTsKIAogICAgIC8vIElmIHRoZSB0aXAgc3RpY2tzIGJleW9uZCB0aGUgbGVmdCBv
ZiBvdmVybGF5UmVjdCwgbGVmdC1hbGlnbiB0aGUgdGlwIHdpdGggdGhlIHNhaWQgYm91bmRhcnku
CkBAIC0yOTAsNyArMzAyLDcgQEAgdm9pZCBkcmF3RWxlbWVudFRpdGxlKEdyYXBoaWNzQ29udGV4
dCYgY29udGV4dCwgTm9kZSogbm9kZSwgY29uc3QgTGF5b3V0UmVjdCYgYm8KICAgICAgICAgZHgg
PSBvdmVybGF5UmVjdC54KCkgLSB0aXRsZVJlY3QueCgpIC0gYm9yZGVyV2lkdGhQeDsKIAogICAg
IC8vIElmIHRoZSB0aXAgc3RpY2tzIGJleW9uZCB0aGUgYm90dG9tIG9mIG92ZXJsYXlSZWN0LCBz
aG93IHRoZSB0aXAgYXQgdG9wIG9mIGJvdW5kaW5nIGJveC4KLSAgICBpZiAodGl0bGVSZWN0Lm1h
eFkoKSA+IG92ZXJsYXlSZWN0Lm1heFkoKSkgeworICAgIGlmICh0aXRsZVJlY3QubWF4WSgpICsg
ZHkgPiBvdmVybGF5UmVjdC5tYXhZKCkpIHsKICAgICAgICAgZHkgPSBhbmNob3JCb3gueSgpIC0g
dGl0bGVSZWN0Lm1heFkoKSAtIGJvcmRlcldpZHRoUHg7CiAgICAgICAgIC8vIElmIHRoZSB0aXAg
c3RpbGwgc3RpY2tzIGJleW9uZCB0aGUgYm90dG9tIG9mIG92ZXJsYXlSZWN0LCBib3R0b20tYWxp
Z24gdGhlIHRpcCB3aXRoIHRoZSBzYWlkIGJvdW5kYXJ5LgogICAgICAgICBpZiAodGl0bGVSZWN0
Lm1heFkoKSArIGR5ID4gb3ZlcmxheVJlY3QubWF4WSgpKQpAQCAtMzA2LDI2ICszMTgsNDAgQEAg
dm9pZCBkcmF3RWxlbWVudFRpdGxlKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgTm9kZSogbm9k
ZSwgY29uc3QgTGF5b3V0UmVjdCYgYm8KICAgICBib29sIGlzQXJyb3dBdFRvcCA9IHRpdGxlUmVj
dC55KCkgPiBhbmNob3JCb3gueSgpOwogICAgIHRpdGxlUmVjdC5tb3ZlKDAsIHRvb2x0aXBQYWRk
aW5nICogKGlzQXJyb3dBdFRvcCA/IDEgOiAtMSkpOwogCi0gICAgY29udGV4dC5zZXRTdHJva2VD
b2xvcihweEFuZEJvcmRlckNvbG9yLCBDb2xvclNwYWNlRGV2aWNlUkdCKTsKLSAgICBjb250ZXh0
LnNldFN0cm9rZVRoaWNrbmVzcyhib3JkZXJXaWR0aFB4KTsKLSAgICBjb250ZXh0LnNldEZpbGxD
b2xvcihiYWNrZ3JvdW5kQ29sb3IsIENvbG9yU3BhY2VEZXZpY2VSR0IpOwotICAgIGNvbnRleHQu
ZHJhd1JlY3QodGl0bGVSZWN0KTsKLQogICAgIHsKLSAgICAgICAgaW50IGFycm93VGlwWCA9IGNh
bGN1bGF0ZUFycm93VGlwWChhbmNob3JCb3gsIHRpdGxlUmVjdCk7Ci0gICAgICAgIEZsb2F0UG9p
bnQgYXJyb3dQb2ludHNbM107Ci0gICAgICAgIGZsb2F0IGFycm93QmFzZVkgPSBpc0Fycm93QXRU
b3AgPyB0aXRsZVJlY3QueSgpIDogdGl0bGVSZWN0Lm1heFkoKTsKLSAgICAgICAgYXJyb3dQb2lu
dHNbMF0gPSBGbG9hdFBvaW50KGFycm93VGlwWCAtIGFycm93SGFsZldpZHRoLCBhcnJvd0Jhc2VZ
KTsKLSAgICAgICAgYXJyb3dQb2ludHNbMV0gPSBGbG9hdFBvaW50KGFycm93VGlwWCwgYXJyb3dC
YXNlWSArIGFycm93SGVpZ2h0ICogKGlzQXJyb3dBdFRvcCA/IC0xIDogMSkpOwotICAgICAgICBh
cnJvd1BvaW50c1syXSA9IEZsb2F0UG9pbnQoYXJyb3dUaXBYICsgYXJyb3dIYWxmV2lkdGgsIGFy
cm93QmFzZVkpOwotICAgICAgICBjb250ZXh0LmRyYXdDb252ZXhQb2x5Z29uKDMsIGFycm93UG9p
bnRzKTsKLQotICAgICAgICBjb250ZXh0LnNldFN0cm9rZUNvbG9yKGJhY2tncm91bmRDb2xvciwg
Q29sb3JTcGFjZURldmljZVJHQik7CisgICAgICAgIGZsb2F0IGFycm93VGlwWCA9IGNhbGN1bGF0
ZUFycm93VGlwWChhbmNob3JCb3gsIHRpdGxlUmVjdCk7CisgICAgICAgIGludCBhcnJvd0Jhc2VZ
ID0gaXNBcnJvd0F0VG9wID8gdGl0bGVSZWN0LnkoKSA6IHRpdGxlUmVjdC5tYXhZKCk7CisgICAg
ICAgIGludCBhcnJvd09wcG9zaXRlWSA9IGlzQXJyb3dBdFRvcCA/IHRpdGxlUmVjdC5tYXhZKCkg
OiB0aXRsZVJlY3QueSgpOworCisgICAgICAgIEZsb2F0UG9pbnQgcG9pbnRzWzhdOworICAgICAg
ICBwb2ludHNbMF0gPSBGbG9hdFBvaW50KGFycm93VGlwWCAtIGFycm93SGFsZldpZHRoLCBhcnJv
d0Jhc2VZKTsKKyAgICAgICAgcG9pbnRzWzFdID0gRmxvYXRQb2ludChhcnJvd1RpcFgsIGFycm93
QmFzZVkgKyBhcnJvd0hlaWdodCAqIChpc0Fycm93QXRUb3AgPyAtMSA6IDEpKTsKKyAgICAgICAg
cG9pbnRzWzJdID0gRmxvYXRQb2ludChhcnJvd1RpcFggKyBhcnJvd0hhbGZXaWR0aCwgYXJyb3dC
YXNlWSk7CisgICAgICAgIHBvaW50c1szXSA9IEZsb2F0UG9pbnQodGl0bGVSZWN0Lm1heFgoKSwg
YXJyb3dCYXNlWSk7CisgICAgICAgIHBvaW50c1s0XSA9IEZsb2F0UG9pbnQodGl0bGVSZWN0Lm1h
eFgoKSwgYXJyb3dPcHBvc2l0ZVkpOworICAgICAgICBwb2ludHNbNV0gPSBGbG9hdFBvaW50KHRp
dGxlUmVjdC54KCksIGFycm93T3Bwb3NpdGVZKTsKKyAgICAgICAgcG9pbnRzWzZdID0gRmxvYXRQ
b2ludCh0aXRsZVJlY3QueCgpLCBhcnJvd0Jhc2VZKTsKKyAgICAgICAgcG9pbnRzWzddID0gcG9p
bnRzWzBdOworCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgODsgKytpKQorICAgICAgICAg
ICAgcG9pbnRzW2ldLm1vdmUoMC41LCAwLjUpOworCisgICAgICAgIFBhdGggcGF0aDsKKyAgICAg
ICAgcGF0aC5tb3ZlVG8ocG9pbnRzWzBdKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDE7IGkgPCA4
OyArK2kpCisgICAgICAgICAgICBwYXRoLmFkZExpbmVUbyhwb2ludHNbaV0pOworCisgICAgICAg
IGNvbnRleHQuc2V0U3Ryb2tlQ29sb3IocHhBbmRCb3JkZXJDb2xvciwgQ29sb3JTcGFjZURldmlj
ZVJHQik7CiAgICAgICAgIGNvbnRleHQuc2V0RmlsbENvbG9yKGJhY2tncm91bmRDb2xvciwgQ29s
b3JTcGFjZURldmljZVJHQik7Ci0gICAgICAgIGNvbnRleHQuc2V0U3Ryb2tlVGhpY2tuZXNzKGJv
cmRlcldpZHRoUHggKyAxKTsKLSAgICAgICAgTGF5b3V0UG9pbnQgc3RhcnRQb2ludCA9IExheW91
dFBvaW50KGFycm93UG9pbnRzWzBdLngoKSArIDEsIGFycm93UG9pbnRzWzBdLnkoKSk7Ci0gICAg
ICAgIExheW91dFBvaW50IGVuZFBvaW50ID0gTGF5b3V0UG9pbnQoYXJyb3dQb2ludHNbMl0ueCgp
IC0gMSwgYXJyb3dQb2ludHNbMl0ueSgpKTsKLSAgICAgICAgY29udGV4dC5kcmF3TGluZShzdGFy
dFBvaW50LCBlbmRQb2ludCk7CisgICAgICAgIGNvbnRleHQuc2V0U3Ryb2tlVGhpY2tuZXNzKGJv
cmRlcldpZHRoUHgpOworICAgICAgICBib29sIHdhc0FudGlhbGlhc2VkID0gY29udGV4dC5zaG91
bGRBbnRpYWxpYXMoKTsKKyAgICAgICAgY29udGV4dC5zZXRTaG91bGRBbnRpYWxpYXMoZmFsc2Up
OworICAgICAgICBjb250ZXh0LnNhdmUoKTsKKyAgICAgICAgY29udGV4dC5jbGlwUGF0aChwYXRo
LCBSVUxFX05PTlpFUk8pOworICAgICAgICBjb250ZXh0LmZpbGxQYXRoKHBhdGgpOworICAgICAg
ICBjb250ZXh0LnJlc3RvcmUoKTsKKyAgICAgICAgY29udGV4dC5zdHJva2VQYXRoKHBhdGgpOwor
ICAgICAgICBjb250ZXh0LnNldFNob3VsZEFudGlhbGlhcyh3YXNBbnRpYWxpYXNlZCk7CiAgICAg
fQogCiAgICAgaW50IGN1cnJlbnRQb3MgPSAwOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>105010</attachid>
            <date>2011-08-24 09:52:38 -0700</date>
            <delta_ts>2011-08-24 10:04:46 -0700</delta_ts>
            <desc>[PATCH] Remove unnecessary adjustment term</desc>
            <filename>highlightfix.patch</filename>
            <type>text/plain</type>
            <size>9251</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">Y29tbWl0IGE3ZjRhMGUzNWMzM2E5MzRmY2Y0YjViNjI2ZGZkYTdkZTk3Njk5N2EKQXV0aG9yOiBB
bGV4YW5kZXIgUGF2bG92IDxhcGF2bG92QGNocm9taXVtLm9yZz4KRGF0ZTogICBXZWQgQXVnIDI0
IDE4OjE3OjQxIDIwMTEgKzA0MDAKCiAgICBGaXgKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTY0ZDZlYS4uYWM4
NWIwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDExLTA4LTI0ICBBbGV4YW5kZXIg
UGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rvcjog
RGlyZWN0aW9uYWwgYXJyb3cgb24gZWxlbWVudCBpbmZvIGJveCBsb29rcyB0ZXJyaWJsZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY4MTkKKworICAg
ICAgICBCZWF1dGlmeSB0aGUgdG9vbHRpcCBhcnJvdywgZ2l2ZSBpdCBhIGJldHRlciBhbGlnbm1l
bnQgaW4gc29tZSBlZGdlIGNhc2VzLAorICAgICAgICBhbmQgZml4IHRoZSB0b29sdGlwIGZvbnQg
b24gTWFjcy4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIGluc3BlY3Rvci9ET01Ob2RlSGlnaGxpZ2h0ZXIuY3BwOgorCiAyMDExLTA4LTI0ICBQYXZl
bCBGZWxkbWFuICA8cGZlbGRtYW5AZ29vZ2xlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9y
OiBjbGVhclBzZXVkb1N0YXRlIHNob3VsZCByZXRhaW4gRWxlbWVudCB3aGlsZSBjbGVhcmluZwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0RPTU5vZGVIaWdobGlnaHRlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvRE9NTm9kZUhpZ2hsaWdodGVyLmNwcAppbmRl
eCA3OWZlMzQyLi4wZTAwNTI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
RE9NTm9kZUhpZ2hsaWdodGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvRE9N
Tm9kZUhpZ2hsaWdodGVyLmNwcApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIkZyYW1lLmgi
CiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCisj
aW5jbHVkZSAiR3JhcGhpY3NUeXBlcy5oIgogI2luY2x1ZGUgIk5vZGUuaCIKICNpbmNsdWRlICJQ
YWdlLmgiCiAjaW5jbHVkZSAiUmFuZ2UuaCIKQEAgLTQ5LDE0ICs1MCwyMSBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIG5hbWVzcGFjZSB7CiAKKyNpZiBPUyhXSU5ET1dTKQorc3RhdGljIGNvbnN0
IHVuc2lnbmVkIGZvbnRIZWlnaHRQeCA9IDEyOworI2VsaWYgT1MoVU5JWCkKK3N0YXRpYyBjb25z
dCB1bnNpZ25lZCBmb250SGVpZ2h0UHggPSAxMTsKKyNlbGlmIE9TKE1BQ19PU19YKQorc3RhdGlj
IGNvbnN0IHVuc2lnbmVkIGZvbnRIZWlnaHRQeCA9IDExOworI2VuZGlmCisKIGNvbnN0IHN0YXRp
YyBpbnQgcmVjdEluZmxhdGVQeCA9IDQ7Ci1jb25zdCBzdGF0aWMgaW50IGZvbnRIZWlnaHRQeCA9
IDEyOwogY29uc3Qgc3RhdGljIGludCBib3JkZXJXaWR0aFB4ID0gMTsKIGNvbnN0IHN0YXRpYyBp
bnQgdG9vbHRpcFBhZGRpbmcgPSA0OwogCiBjb25zdCBzdGF0aWMgaW50IGFycm93VGlwT2Zmc2V0
ID0gMjA7Ci1jb25zdCBzdGF0aWMgaW50IGFycm93SGVpZ2h0ID0gNzsKLWNvbnN0IHN0YXRpYyBp
bnQgYXJyb3dIYWxmV2lkdGggPSA3OworY29uc3Qgc3RhdGljIGZsb2F0IGFycm93SGVpZ2h0ID0g
NzsKK2NvbnN0IHN0YXRpYyBmbG9hdCBhcnJvd0hhbGZXaWR0aCA9IDc7CiAKIFBhdGggcXVhZFRv
UGF0aChjb25zdCBGbG9hdFF1YWQmIHF1YWQpCiB7CkBAIC0xNTMsNDMgKzE2MSw0OSBAQCBpbnQg
ZHJhd1N1YnN0cmluZyhjb25zdCBUZXh0UnVuJiBnbG9iYWxUZXh0UnVuLCBpbnQgb2Zmc2V0LCBp
bnQgbGVuZ3RoLCBjb25zdCBDbwogICAgIHJldHVybiBvZmZzZXQgKyBsZW5ndGg7CiB9CiAKLWlu
dCBjYWxjdWxhdGVBcnJvd1RpcFgoY29uc3QgTGF5b3V0UmVjdCYgYW5jaG9yQm94LCBjb25zdCBM
YXlvdXRSZWN0JiB0aXRsZVJlY3QpCitmbG9hdCBjYWxjdWxhdGVBcnJvd1RpcFgoY29uc3QgTGF5
b3V0UmVjdCYgYW5jaG9yQm94LCBjb25zdCBMYXlvdXRSZWN0JiB0aXRsZVJlY3QpCiB7Ci0gICAg
aW50IGFuY2hvclggPSBhbmNob3JCb3gueCgpOworICAgIGNvbnN0IHN0YXRpYyBpbnQgYW5jaG9y
VGlwT2Zmc2V0UHggPSAyOwogCi0gICAgLy8gQ2hlY2sgZm9yIGhlYXZpbHkgbWlzYWxpZ25lZCB0
b29sdGlwIGZpcnN0LgotICAgIGlmICh0aXRsZVJlY3QueCgpID4gYW5jaG9yQm94Lm1heFgoKSkK
LSAgICAgICAgcmV0dXJuIHRpdGxlUmVjdC54KCkgKyBhcnJvd0hhbGZXaWR0aDsKLQotICAgIGlm
ICh0aXRsZVJlY3QubWF4WCgpIDwgYW5jaG9yWCkKLSAgICAgICAgcmV0dXJuIHRpdGxlUmVjdC5t
YXhYKCkgLSBhcnJvd0hhbGZXaWR0aDsKKyAgICBpbnQgbWluWCA9IHRpdGxlUmVjdC54KCkgKyBh
cnJvd0hhbGZXaWR0aDsKKyAgICBpbnQgbWF4WCA9IHRpdGxlUmVjdC5tYXhYKCkgLSBhcnJvd0hh
bGZXaWR0aDsKKyAgICBpbnQgYW5jaG9yWCA9IGFuY2hvckJveC54KCk7CisgICAgaW50IGFuY2hv
ck1heFggPSBhbmNob3JCb3gubWF4WCgpOwogCi0gICAgaW50IHggPSB0aXRsZVJlY3QueCgpICsg
YXJyb3dUaXBPZmZzZXQ7CisgICAgaW50IHggPSB0aXRsZVJlY3QueCgpICsgYXJyb3dUaXBPZmZz
ZXQ7IC8vIERlZmF1bHQgdG9vbHRpcCBwb3NpdGlvbi4KICAgICBpZiAoeCA8IGFuY2hvclgpCi0g
ICAgICAgIHggPSBhbmNob3JYICsgYXJyb3dUaXBPZmZzZXQ7Ci0gICAgaWYgKHggPiB0aXRsZVJl
Y3QubWF4WCgpIC0gYXJyb3dIYWxmV2lkdGgpCi0gICAgICAgIHggPSB0aXRsZVJlY3QubWF4WCgp
IC0gYXJyb3dIYWxmV2lkdGg7CisgICAgICAgIHggPSBhbmNob3JYICsgYW5jaG9yVGlwT2Zmc2V0
UHg7CisgICAgZWxzZSBpZiAoeCA+IGFuY2hvck1heFgpCisgICAgICAgIHggPSBhbmNob3JNYXhY
IC0gYW5jaG9yVGlwT2Zmc2V0UHg7CisKKyAgICBpZiAoeCA8IG1pblgpCisgICAgICAgIHggPSBt
aW5YOworICAgIGVsc2UgaWYgKHggPiBtYXhYKQorICAgICAgICB4ID0gbWF4WDsKIAogICAgIHJl
dHVybiB4OwogfQogCi12b2lkIHNldFVwRm9udEZhbWlsaWVzKEZvbnREZXNjcmlwdGlvbiYgZm9u
dERlc2NyaXB0aW9uLCBXZWJDb3JlOjpTZXR0aW5ncyogc2V0dGluZ3MpCit2b2lkIHNldFVwRm9u
dERlc2NyaXB0aW9uKEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uLCBXZWJDb3JlOjpT
ZXR0aW5ncyogc2V0dGluZ3MpCiB7CiAjZGVmaW5lIFRPT0xUSVBfRk9OVF9GQU1JTElFUyhzaXpl
LCAuLi4pIFwKLXN0YXRpYyB1bnNpZ25lZCB0b29sdGlwRm9udEZhY2VTaXplID0gc2l6ZTtcCitz
dGF0aWMgY29uc3QgdW5zaWduZWQgdG9vbHRpcEZvbnRGYWNlU2l6ZSA9IHNpemU7XAogc3RhdGlj
IGNvbnN0IEF0b21pY1N0cmluZyogdG9vbHRpcEZvbnRGYWNlW3NpemVdID0geyBfX1ZBX0FSR1Nf
XyB9OwogCiAjaWYgT1MoV0lORE9XUykKIFRPT0xUSVBfRk9OVF9GQU1JTElFUygyLCBuZXcgQXRv
bWljU3RyaW5nKCJDb25zb2xhcyIpLCBuZXcgQXRvbWljU3RyaW5nKCJMdWNpZGEgQ29uc29sZSIp
KQotI2VsaWYgT1MoVU5JWCkKLVRPT0xUSVBfRk9OVF9GQU1JTElFUygxLCBuZXcgQXRvbWljU3Ry
aW5nKCJkZWphdnUgc2FucyBtb25vIikpCiAjZWxpZiBPUyhNQUNfT1NfWCkKIFRPT0xUSVBfRk9O
VF9GQU1JTElFUygyLCBuZXcgQXRvbWljU3RyaW5nKCJNZW5sbyIpLCBuZXcgQXRvbWljU3RyaW5n
KCJNb25hY28iKSkKKyNlbGlmIE9TKFVOSVgpCitUT09MVElQX0ZPTlRfRkFNSUxJRVMoMSwgbmV3
IEF0b21pY1N0cmluZygiZGVqYXZ1IHNhbnMgbW9ubyIpKQogI2VuZGlmCiAvLyBJbiB0aGUgZGVm
YXVsdCBjYXNlLCB3ZSBnZXQgdGhlIHNldHRpbmdzLXByb3ZpZGVkIG1vbm9zcGFjZSBmb250Lgog
CiAjdW5kZWYgVE9PTFRJUF9GT05UX0ZBTUlMSUVTCiAKKyAgICBmb250RGVzY3JpcHRpb24uc2V0
UmVuZGVyaW5nTW9kZShzZXR0aW5ncy0+Zm9udFJlbmRlcmluZ01vZGUoKSk7CisgICAgZm9udERl
c2NyaXB0aW9uLnNldENvbXB1dGVkU2l6ZShmb250SGVpZ2h0UHgpOworCiAgICAgY29uc3QgQXRv
bWljU3RyaW5nJiBmaXhlZEZvbnRGYW1pbHkgPSBzZXR0aW5ncy0+Zml4ZWRGb250RmFtaWx5KCk7
CiAgICAgaWYgKCFmaXhlZEZvbnRGYW1pbHkuaXNFbXB0eSgpKSB7CiAgICAgICAgIGZvbnREZXNj
cmlwdGlvbi5zZXRHZW5lcmljRmFtaWx5KEZvbnREZXNjcmlwdGlvbjo6TW9ub3NwYWNlRmFtaWx5
KTsKQEAgLTIxNiw3ICsyMzAsNyBAQCBUT09MVElQX0ZPTlRfRkFNSUxJRVMoMiwgbmV3IEF0b21p
Y1N0cmluZygiTWVubG8iKSwgbmV3IEF0b21pY1N0cmluZygiTW9uYWNvIikpCiB2b2lkIGRyYXdF
bGVtZW50VGl0bGUoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBOb2RlKiBub2RlLCBjb25zdCBM
YXlvdXRSZWN0JiBib3VuZGluZ0JveCwgY29uc3QgTGF5b3V0UmVjdCYgYW5jaG9yQm94LCBjb25z
dCBGbG9hdFJlY3QmIG92ZXJsYXlSZWN0LCBXZWJDb3JlOjpTZXR0aW5ncyogc2V0dGluZ3MpCiB7
CiAKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKENvbG9yLCBiYWNrZ3JvdW5kQ29sb3IsICgyNTUs
IDI1NSwgMTk0LCAyNTUpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKENvbG9yLCBiYWNrZ3Jv
dW5kQ29sb3IsICgyNTUsIDI1NSwgMTk0KSk7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChDb2xv
ciwgdGFnQ29sb3IsICgxMzYsIDE4LCAxMjgpKTsgLy8gU2FtZSBhcyAud2Via2l0LWh0bWwtdGFn
LgogICAgIERFRklORV9TVEFUSUNfTE9DQUwoQ29sb3IsIGF0dHJDb2xvciwgKDI2LCAyNiwgMTY2
KSk7IC8vIFNhbWUgYXMgLndlYmtpdC1odG1sLWF0dHJpYnV0ZS12YWx1ZS4KICAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKENvbG9yLCBub3JtYWxDb2xvciwgKENvbG9yOjpibGFjaykpOwpAQCAtMjY1
LDkgKzI3OSw3IEBAIHZvaWQgZHJhd0VsZW1lbnRUaXRsZShHcmFwaGljc0NvbnRleHQmIGNvbnRl
eHQsIE5vZGUqIG5vZGUsIGNvbnN0IExheW91dFJlY3QmIGJvCiAgICAgbm9kZVRpdGxlICs9IGhl
aWdodE51bWJlclBhcnQgKyBweFN0cmluZzsKIAogICAgIEZvbnREZXNjcmlwdGlvbiBkZXNjOwot
ICAgIGRlc2Muc2V0UmVuZGVyaW5nTW9kZShzZXR0aW5ncy0+Zm9udFJlbmRlcmluZ01vZGUoKSk7
Ci0gICAgZGVzYy5zZXRDb21wdXRlZFNpemUoZm9udEhlaWdodFB4KTsKLSAgICBzZXRVcEZvbnRG
YW1pbGllcyhkZXNjLCBzZXR0aW5ncyk7CisgICAgc2V0VXBGb250RGVzY3JpcHRpb24oZGVzYywg
c2V0dGluZ3MpOwogICAgIEZvbnQgZm9udCA9IEZvbnQoZGVzYywgMCwgMCk7CiAgICAgZm9udC51
cGRhdGUoMCk7CiAKQEAgLTI4Miw3ICsyOTQsNyBAQCB2b2lkIGRyYXdFbGVtZW50VGl0bGUoR3Jh
cGhpY3NDb250ZXh0JiBjb250ZXh0LCBOb2RlKiBub2RlLCBjb25zdCBMYXlvdXRSZWN0JiBibwog
ICAgIExheW91dFVuaXQgZHkgPSBib3JkZXJXaWR0aFB4OwogCiAgICAgLy8gSWYgdGhlIHRpcCBz
dGlja3MgYmV5b25kIHRoZSByaWdodCBvZiBvdmVybGF5UmVjdCwgcmlnaHQtYWxpZ24gdGhlIHRp
cCB3aXRoIHRoZSBzYWlkIGJvdW5kYXJ5LgotICAgIGlmICh0aXRsZVJlY3QubWF4WCgpID4gb3Zl
cmxheVJlY3QubWF4WCgpKQorICAgIGlmICh0aXRsZVJlY3QubWF4WCgpICsgZHggPiBvdmVybGF5
UmVjdC5tYXhYKCkpCiAgICAgICAgIGR4ID0gb3ZlcmxheVJlY3QubWF4WCgpIC0gdGl0bGVSZWN0
Lm1heFgoKTsKIAogICAgIC8vIElmIHRoZSB0aXAgc3RpY2tzIGJleW9uZCB0aGUgbGVmdCBvZiBv
dmVybGF5UmVjdCwgbGVmdC1hbGlnbiB0aGUgdGlwIHdpdGggdGhlIHNhaWQgYm91bmRhcnkuCkBA
IC0yOTAsNyArMzAyLDcgQEAgdm9pZCBkcmF3RWxlbWVudFRpdGxlKEdyYXBoaWNzQ29udGV4dCYg
Y29udGV4dCwgTm9kZSogbm9kZSwgY29uc3QgTGF5b3V0UmVjdCYgYm8KICAgICAgICAgZHggPSBv
dmVybGF5UmVjdC54KCkgLSB0aXRsZVJlY3QueCgpIC0gYm9yZGVyV2lkdGhQeDsKIAogICAgIC8v
IElmIHRoZSB0aXAgc3RpY2tzIGJleW9uZCB0aGUgYm90dG9tIG9mIG92ZXJsYXlSZWN0LCBzaG93
IHRoZSB0aXAgYXQgdG9wIG9mIGJvdW5kaW5nIGJveC4KLSAgICBpZiAodGl0bGVSZWN0Lm1heFko
KSA+IG92ZXJsYXlSZWN0Lm1heFkoKSkgeworICAgIGlmICh0aXRsZVJlY3QubWF4WSgpICsgZHkg
PiBvdmVybGF5UmVjdC5tYXhZKCkpIHsKICAgICAgICAgZHkgPSBhbmNob3JCb3gueSgpIC0gdGl0
bGVSZWN0Lm1heFkoKSAtIGJvcmRlcldpZHRoUHg7CiAgICAgICAgIC8vIElmIHRoZSB0aXAgc3Rp
bGwgc3RpY2tzIGJleW9uZCB0aGUgYm90dG9tIG9mIG92ZXJsYXlSZWN0LCBib3R0b20tYWxpZ24g
dGhlIHRpcCB3aXRoIHRoZSBzYWlkIGJvdW5kYXJ5LgogICAgICAgICBpZiAodGl0bGVSZWN0Lm1h
eFkoKSArIGR5ID4gb3ZlcmxheVJlY3QubWF4WSgpKQpAQCAtMzA2LDI2ICszMTgsMzYgQEAgdm9p
ZCBkcmF3RWxlbWVudFRpdGxlKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgTm9kZSogbm9kZSwg
Y29uc3QgTGF5b3V0UmVjdCYgYm8KICAgICBib29sIGlzQXJyb3dBdFRvcCA9IHRpdGxlUmVjdC55
KCkgPiBhbmNob3JCb3gueSgpOwogICAgIHRpdGxlUmVjdC5tb3ZlKDAsIHRvb2x0aXBQYWRkaW5n
ICogKGlzQXJyb3dBdFRvcCA/IDEgOiAtMSkpOwogCi0gICAgY29udGV4dC5zZXRTdHJva2VDb2xv
cihweEFuZEJvcmRlckNvbG9yLCBDb2xvclNwYWNlRGV2aWNlUkdCKTsKLSAgICBjb250ZXh0LnNl
dFN0cm9rZVRoaWNrbmVzcyhib3JkZXJXaWR0aFB4KTsKLSAgICBjb250ZXh0LnNldEZpbGxDb2xv
cihiYWNrZ3JvdW5kQ29sb3IsIENvbG9yU3BhY2VEZXZpY2VSR0IpOwotICAgIGNvbnRleHQuZHJh
d1JlY3QodGl0bGVSZWN0KTsKLQogICAgIHsKLSAgICAgICAgaW50IGFycm93VGlwWCA9IGNhbGN1
bGF0ZUFycm93VGlwWChhbmNob3JCb3gsIHRpdGxlUmVjdCk7Ci0gICAgICAgIEZsb2F0UG9pbnQg
YXJyb3dQb2ludHNbM107Ci0gICAgICAgIGZsb2F0IGFycm93QmFzZVkgPSBpc0Fycm93QXRUb3Ag
PyB0aXRsZVJlY3QueSgpIDogdGl0bGVSZWN0Lm1heFkoKTsKLSAgICAgICAgYXJyb3dQb2ludHNb
MF0gPSBGbG9hdFBvaW50KGFycm93VGlwWCAtIGFycm93SGFsZldpZHRoLCBhcnJvd0Jhc2VZKTsK
LSAgICAgICAgYXJyb3dQb2ludHNbMV0gPSBGbG9hdFBvaW50KGFycm93VGlwWCwgYXJyb3dCYXNl
WSArIGFycm93SGVpZ2h0ICogKGlzQXJyb3dBdFRvcCA/IC0xIDogMSkpOwotICAgICAgICBhcnJv
d1BvaW50c1syXSA9IEZsb2F0UG9pbnQoYXJyb3dUaXBYICsgYXJyb3dIYWxmV2lkdGgsIGFycm93
QmFzZVkpOwotICAgICAgICBjb250ZXh0LmRyYXdDb252ZXhQb2x5Z29uKDMsIGFycm93UG9pbnRz
KTsKLQotICAgICAgICBjb250ZXh0LnNldFN0cm9rZUNvbG9yKGJhY2tncm91bmRDb2xvciwgQ29s
b3JTcGFjZURldmljZVJHQik7CisgICAgICAgIGZsb2F0IGFycm93VGlwWCA9IGNhbGN1bGF0ZUFy
cm93VGlwWChhbmNob3JCb3gsIHRpdGxlUmVjdCk7CisgICAgICAgIGludCBhcnJvd0Jhc2VZID0g
aXNBcnJvd0F0VG9wID8gdGl0bGVSZWN0LnkoKSA6IHRpdGxlUmVjdC5tYXhZKCk7CisgICAgICAg
IGludCBhcnJvd09wcG9zaXRlWSA9IGlzQXJyb3dBdFRvcCA/IHRpdGxlUmVjdC5tYXhZKCkgOiB0
aXRsZVJlY3QueSgpOworCisgICAgICAgIEZsb2F0UG9pbnQgcG9pbnRzWzhdOworICAgICAgICBw
b2ludHNbMF0gPSBGbG9hdFBvaW50KGFycm93VGlwWCAtIGFycm93SGFsZldpZHRoLCBhcnJvd0Jh
c2VZKTsKKyAgICAgICAgcG9pbnRzWzFdID0gRmxvYXRQb2ludChhcnJvd1RpcFgsIGFycm93QmFz
ZVkgKyBhcnJvd0hlaWdodCAqIChpc0Fycm93QXRUb3AgPyAtMSA6IDEpKTsKKyAgICAgICAgcG9p
bnRzWzJdID0gRmxvYXRQb2ludChhcnJvd1RpcFggKyBhcnJvd0hhbGZXaWR0aCwgYXJyb3dCYXNl
WSk7CisgICAgICAgIHBvaW50c1szXSA9IEZsb2F0UG9pbnQodGl0bGVSZWN0Lm1heFgoKSwgYXJy
b3dCYXNlWSk7CisgICAgICAgIHBvaW50c1s0XSA9IEZsb2F0UG9pbnQodGl0bGVSZWN0Lm1heFgo
KSwgYXJyb3dPcHBvc2l0ZVkpOworICAgICAgICBwb2ludHNbNV0gPSBGbG9hdFBvaW50KHRpdGxl
UmVjdC54KCksIGFycm93T3Bwb3NpdGVZKTsKKyAgICAgICAgcG9pbnRzWzZdID0gRmxvYXRQb2lu
dCh0aXRsZVJlY3QueCgpLCBhcnJvd0Jhc2VZKTsKKyAgICAgICAgcG9pbnRzWzddID0gcG9pbnRz
WzBdOworCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgODsgKytpKQorICAgICAgICAgICAg
cG9pbnRzW2ldLm1vdmUoMC41LCAwLjUpOworCisgICAgICAgIFBhdGggcGF0aDsKKyAgICAgICAg
cGF0aC5tb3ZlVG8ocG9pbnRzWzBdKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDE7IGkgPCA4OyAr
K2kpCisgICAgICAgICAgICBwYXRoLmFkZExpbmVUbyhwb2ludHNbaV0pOworCisgICAgICAgIGNv
bnRleHQuc2V0U3Ryb2tlQ29sb3IocHhBbmRCb3JkZXJDb2xvciwgQ29sb3JTcGFjZURldmljZVJH
Qik7CiAgICAgICAgIGNvbnRleHQuc2V0RmlsbENvbG9yKGJhY2tncm91bmRDb2xvciwgQ29sb3JT
cGFjZURldmljZVJHQik7Ci0gICAgICAgIGNvbnRleHQuc2V0U3Ryb2tlVGhpY2tuZXNzKGJvcmRl
cldpZHRoUHggKyAxKTsKLSAgICAgICAgTGF5b3V0UG9pbnQgc3RhcnRQb2ludCA9IExheW91dFBv
aW50KGFycm93UG9pbnRzWzBdLngoKSArIDEsIGFycm93UG9pbnRzWzBdLnkoKSk7Ci0gICAgICAg
IExheW91dFBvaW50IGVuZFBvaW50ID0gTGF5b3V0UG9pbnQoYXJyb3dQb2ludHNbMl0ueCgpIC0g
MSwgYXJyb3dQb2ludHNbMl0ueSgpKTsKLSAgICAgICAgY29udGV4dC5kcmF3TGluZShzdGFydFBv
aW50LCBlbmRQb2ludCk7CisgICAgICAgIGNvbnRleHQuc2V0U3Ryb2tlVGhpY2tuZXNzKGJvcmRl
cldpZHRoUHgpOworICAgICAgICBjb250ZXh0LmNsaXBQYXRoKHBhdGgsIFJVTEVfTk9OWkVSTyk7
CisgICAgICAgIGNvbnRleHQuZmlsbFBhdGgocGF0aCk7CisgICAgICAgIGNvbnRleHQucmVzdG9y
ZSgpOworICAgICAgICBjb250ZXh0LnN0cm9rZVBhdGgocGF0aCk7CiAgICAgfQogCiAgICAgaW50
IGN1cnJlbnRQb3MgPSAwOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>105011</attachid>
            <date>2011-08-24 10:04:46 -0700</date>
            <delta_ts>2011-08-25 03:06:47 -0700</delta_ts>
            <desc>[PATCH] Remove unnecessary path clipping</desc>
            <filename>highlightfix.patch</filename>
            <type>text/plain</type>
            <size>9176</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">Y29tbWl0IGI3YmZiNTJkYmRhY2Y5ZTFkZGI3MTU1ZTkzYWQzMjUwMGZhOWEzODgKQXV0aG9yOiBB
bGV4YW5kZXIgUGF2bG92IDxhcGF2bG92QGNocm9taXVtLm9yZz4KRGF0ZTogICBXZWQgQXVnIDI0
IDE4OjE3OjQxIDIwMTEgKzA0MDAKCiAgICBGaXgKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTY0ZDZlYS4uYWM4
NWIwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDExLTA4LTI0ICBBbGV4YW5kZXIg
UGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rvcjog
RGlyZWN0aW9uYWwgYXJyb3cgb24gZWxlbWVudCBpbmZvIGJveCBsb29rcyB0ZXJyaWJsZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY4MTkKKworICAg
ICAgICBCZWF1dGlmeSB0aGUgdG9vbHRpcCBhcnJvdywgZ2l2ZSBpdCBhIGJldHRlciBhbGlnbm1l
bnQgaW4gc29tZSBlZGdlIGNhc2VzLAorICAgICAgICBhbmQgZml4IHRoZSB0b29sdGlwIGZvbnQg
b24gTWFjcy4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIGluc3BlY3Rvci9ET01Ob2RlSGlnaGxpZ2h0ZXIuY3BwOgorCiAyMDExLTA4LTI0ICBQYXZl
bCBGZWxkbWFuICA8cGZlbGRtYW5AZ29vZ2xlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9y
OiBjbGVhclBzZXVkb1N0YXRlIHNob3VsZCByZXRhaW4gRWxlbWVudCB3aGlsZSBjbGVhcmluZwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0RPTU5vZGVIaWdobGlnaHRlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvRE9NTm9kZUhpZ2hsaWdodGVyLmNwcAppbmRl
eCA3OWZlMzQyLi4yZWM1ODRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
RE9NTm9kZUhpZ2hsaWdodGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvRE9N
Tm9kZUhpZ2hsaWdodGVyLmNwcApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIkZyYW1lLmgi
CiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCisj
aW5jbHVkZSAiR3JhcGhpY3NUeXBlcy5oIgogI2luY2x1ZGUgIk5vZGUuaCIKICNpbmNsdWRlICJQ
YWdlLmgiCiAjaW5jbHVkZSAiUmFuZ2UuaCIKQEAgLTQ5LDE0ICs1MCwyMSBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIG5hbWVzcGFjZSB7CiAKKyNpZiBPUyhXSU5ET1dTKQorc3RhdGljIGNvbnN0
IHVuc2lnbmVkIGZvbnRIZWlnaHRQeCA9IDEyOworI2VsaWYgT1MoVU5JWCkKK3N0YXRpYyBjb25z
dCB1bnNpZ25lZCBmb250SGVpZ2h0UHggPSAxMTsKKyNlbGlmIE9TKE1BQ19PU19YKQorc3RhdGlj
IGNvbnN0IHVuc2lnbmVkIGZvbnRIZWlnaHRQeCA9IDExOworI2VuZGlmCisKIGNvbnN0IHN0YXRp
YyBpbnQgcmVjdEluZmxhdGVQeCA9IDQ7Ci1jb25zdCBzdGF0aWMgaW50IGZvbnRIZWlnaHRQeCA9
IDEyOwogY29uc3Qgc3RhdGljIGludCBib3JkZXJXaWR0aFB4ID0gMTsKIGNvbnN0IHN0YXRpYyBp
bnQgdG9vbHRpcFBhZGRpbmcgPSA0OwogCiBjb25zdCBzdGF0aWMgaW50IGFycm93VGlwT2Zmc2V0
ID0gMjA7Ci1jb25zdCBzdGF0aWMgaW50IGFycm93SGVpZ2h0ID0gNzsKLWNvbnN0IHN0YXRpYyBp
bnQgYXJyb3dIYWxmV2lkdGggPSA3OworY29uc3Qgc3RhdGljIGZsb2F0IGFycm93SGVpZ2h0ID0g
NzsKK2NvbnN0IHN0YXRpYyBmbG9hdCBhcnJvd0hhbGZXaWR0aCA9IDc7CiAKIFBhdGggcXVhZFRv
UGF0aChjb25zdCBGbG9hdFF1YWQmIHF1YWQpCiB7CkBAIC0xNTMsNDMgKzE2MSw0OSBAQCBpbnQg
ZHJhd1N1YnN0cmluZyhjb25zdCBUZXh0UnVuJiBnbG9iYWxUZXh0UnVuLCBpbnQgb2Zmc2V0LCBp
bnQgbGVuZ3RoLCBjb25zdCBDbwogICAgIHJldHVybiBvZmZzZXQgKyBsZW5ndGg7CiB9CiAKLWlu
dCBjYWxjdWxhdGVBcnJvd1RpcFgoY29uc3QgTGF5b3V0UmVjdCYgYW5jaG9yQm94LCBjb25zdCBM
YXlvdXRSZWN0JiB0aXRsZVJlY3QpCitmbG9hdCBjYWxjdWxhdGVBcnJvd1RpcFgoY29uc3QgTGF5
b3V0UmVjdCYgYW5jaG9yQm94LCBjb25zdCBMYXlvdXRSZWN0JiB0aXRsZVJlY3QpCiB7Ci0gICAg
aW50IGFuY2hvclggPSBhbmNob3JCb3gueCgpOworICAgIGNvbnN0IHN0YXRpYyBpbnQgYW5jaG9y
VGlwT2Zmc2V0UHggPSAyOwogCi0gICAgLy8gQ2hlY2sgZm9yIGhlYXZpbHkgbWlzYWxpZ25lZCB0
b29sdGlwIGZpcnN0LgotICAgIGlmICh0aXRsZVJlY3QueCgpID4gYW5jaG9yQm94Lm1heFgoKSkK
LSAgICAgICAgcmV0dXJuIHRpdGxlUmVjdC54KCkgKyBhcnJvd0hhbGZXaWR0aDsKLQotICAgIGlm
ICh0aXRsZVJlY3QubWF4WCgpIDwgYW5jaG9yWCkKLSAgICAgICAgcmV0dXJuIHRpdGxlUmVjdC5t
YXhYKCkgLSBhcnJvd0hhbGZXaWR0aDsKKyAgICBpbnQgbWluWCA9IHRpdGxlUmVjdC54KCkgKyBh
cnJvd0hhbGZXaWR0aDsKKyAgICBpbnQgbWF4WCA9IHRpdGxlUmVjdC5tYXhYKCkgLSBhcnJvd0hh
bGZXaWR0aDsKKyAgICBpbnQgYW5jaG9yWCA9IGFuY2hvckJveC54KCk7CisgICAgaW50IGFuY2hv
ck1heFggPSBhbmNob3JCb3gubWF4WCgpOwogCi0gICAgaW50IHggPSB0aXRsZVJlY3QueCgpICsg
YXJyb3dUaXBPZmZzZXQ7CisgICAgaW50IHggPSB0aXRsZVJlY3QueCgpICsgYXJyb3dUaXBPZmZz
ZXQ7IC8vIERlZmF1bHQgdG9vbHRpcCBwb3NpdGlvbi4KICAgICBpZiAoeCA8IGFuY2hvclgpCi0g
ICAgICAgIHggPSBhbmNob3JYICsgYXJyb3dUaXBPZmZzZXQ7Ci0gICAgaWYgKHggPiB0aXRsZVJl
Y3QubWF4WCgpIC0gYXJyb3dIYWxmV2lkdGgpCi0gICAgICAgIHggPSB0aXRsZVJlY3QubWF4WCgp
IC0gYXJyb3dIYWxmV2lkdGg7CisgICAgICAgIHggPSBhbmNob3JYICsgYW5jaG9yVGlwT2Zmc2V0
UHg7CisgICAgZWxzZSBpZiAoeCA+IGFuY2hvck1heFgpCisgICAgICAgIHggPSBhbmNob3JNYXhY
IC0gYW5jaG9yVGlwT2Zmc2V0UHg7CisKKyAgICBpZiAoeCA8IG1pblgpCisgICAgICAgIHggPSBt
aW5YOworICAgIGVsc2UgaWYgKHggPiBtYXhYKQorICAgICAgICB4ID0gbWF4WDsKIAogICAgIHJl
dHVybiB4OwogfQogCi12b2lkIHNldFVwRm9udEZhbWlsaWVzKEZvbnREZXNjcmlwdGlvbiYgZm9u
dERlc2NyaXB0aW9uLCBXZWJDb3JlOjpTZXR0aW5ncyogc2V0dGluZ3MpCit2b2lkIHNldFVwRm9u
dERlc2NyaXB0aW9uKEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uLCBXZWJDb3JlOjpT
ZXR0aW5ncyogc2V0dGluZ3MpCiB7CiAjZGVmaW5lIFRPT0xUSVBfRk9OVF9GQU1JTElFUyhzaXpl
LCAuLi4pIFwKLXN0YXRpYyB1bnNpZ25lZCB0b29sdGlwRm9udEZhY2VTaXplID0gc2l6ZTtcCitz
dGF0aWMgY29uc3QgdW5zaWduZWQgdG9vbHRpcEZvbnRGYWNlU2l6ZSA9IHNpemU7XAogc3RhdGlj
IGNvbnN0IEF0b21pY1N0cmluZyogdG9vbHRpcEZvbnRGYWNlW3NpemVdID0geyBfX1ZBX0FSR1Nf
XyB9OwogCiAjaWYgT1MoV0lORE9XUykKIFRPT0xUSVBfRk9OVF9GQU1JTElFUygyLCBuZXcgQXRv
bWljU3RyaW5nKCJDb25zb2xhcyIpLCBuZXcgQXRvbWljU3RyaW5nKCJMdWNpZGEgQ29uc29sZSIp
KQotI2VsaWYgT1MoVU5JWCkKLVRPT0xUSVBfRk9OVF9GQU1JTElFUygxLCBuZXcgQXRvbWljU3Ry
aW5nKCJkZWphdnUgc2FucyBtb25vIikpCiAjZWxpZiBPUyhNQUNfT1NfWCkKIFRPT0xUSVBfRk9O
VF9GQU1JTElFUygyLCBuZXcgQXRvbWljU3RyaW5nKCJNZW5sbyIpLCBuZXcgQXRvbWljU3RyaW5n
KCJNb25hY28iKSkKKyNlbGlmIE9TKFVOSVgpCitUT09MVElQX0ZPTlRfRkFNSUxJRVMoMSwgbmV3
IEF0b21pY1N0cmluZygiZGVqYXZ1IHNhbnMgbW9ubyIpKQogI2VuZGlmCiAvLyBJbiB0aGUgZGVm
YXVsdCBjYXNlLCB3ZSBnZXQgdGhlIHNldHRpbmdzLXByb3ZpZGVkIG1vbm9zcGFjZSBmb250Lgog
CiAjdW5kZWYgVE9PTFRJUF9GT05UX0ZBTUlMSUVTCiAKKyAgICBmb250RGVzY3JpcHRpb24uc2V0
UmVuZGVyaW5nTW9kZShzZXR0aW5ncy0+Zm9udFJlbmRlcmluZ01vZGUoKSk7CisgICAgZm9udERl
c2NyaXB0aW9uLnNldENvbXB1dGVkU2l6ZShmb250SGVpZ2h0UHgpOworCiAgICAgY29uc3QgQXRv
bWljU3RyaW5nJiBmaXhlZEZvbnRGYW1pbHkgPSBzZXR0aW5ncy0+Zml4ZWRGb250RmFtaWx5KCk7
CiAgICAgaWYgKCFmaXhlZEZvbnRGYW1pbHkuaXNFbXB0eSgpKSB7CiAgICAgICAgIGZvbnREZXNj
cmlwdGlvbi5zZXRHZW5lcmljRmFtaWx5KEZvbnREZXNjcmlwdGlvbjo6TW9ub3NwYWNlRmFtaWx5
KTsKQEAgLTIxNiw3ICsyMzAsNyBAQCBUT09MVElQX0ZPTlRfRkFNSUxJRVMoMiwgbmV3IEF0b21p
Y1N0cmluZygiTWVubG8iKSwgbmV3IEF0b21pY1N0cmluZygiTW9uYWNvIikpCiB2b2lkIGRyYXdF
bGVtZW50VGl0bGUoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBOb2RlKiBub2RlLCBjb25zdCBM
YXlvdXRSZWN0JiBib3VuZGluZ0JveCwgY29uc3QgTGF5b3V0UmVjdCYgYW5jaG9yQm94LCBjb25z
dCBGbG9hdFJlY3QmIG92ZXJsYXlSZWN0LCBXZWJDb3JlOjpTZXR0aW5ncyogc2V0dGluZ3MpCiB7
CiAKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKENvbG9yLCBiYWNrZ3JvdW5kQ29sb3IsICgyNTUs
IDI1NSwgMTk0LCAyNTUpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKENvbG9yLCBiYWNrZ3Jv
dW5kQ29sb3IsICgyNTUsIDI1NSwgMTk0KSk7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChDb2xv
ciwgdGFnQ29sb3IsICgxMzYsIDE4LCAxMjgpKTsgLy8gU2FtZSBhcyAud2Via2l0LWh0bWwtdGFn
LgogICAgIERFRklORV9TVEFUSUNfTE9DQUwoQ29sb3IsIGF0dHJDb2xvciwgKDI2LCAyNiwgMTY2
KSk7IC8vIFNhbWUgYXMgLndlYmtpdC1odG1sLWF0dHJpYnV0ZS12YWx1ZS4KICAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKENvbG9yLCBub3JtYWxDb2xvciwgKENvbG9yOjpibGFjaykpOwpAQCAtMjY1
LDkgKzI3OSw3IEBAIHZvaWQgZHJhd0VsZW1lbnRUaXRsZShHcmFwaGljc0NvbnRleHQmIGNvbnRl
eHQsIE5vZGUqIG5vZGUsIGNvbnN0IExheW91dFJlY3QmIGJvCiAgICAgbm9kZVRpdGxlICs9IGhl
aWdodE51bWJlclBhcnQgKyBweFN0cmluZzsKIAogICAgIEZvbnREZXNjcmlwdGlvbiBkZXNjOwot
ICAgIGRlc2Muc2V0UmVuZGVyaW5nTW9kZShzZXR0aW5ncy0+Zm9udFJlbmRlcmluZ01vZGUoKSk7
Ci0gICAgZGVzYy5zZXRDb21wdXRlZFNpemUoZm9udEhlaWdodFB4KTsKLSAgICBzZXRVcEZvbnRG
YW1pbGllcyhkZXNjLCBzZXR0aW5ncyk7CisgICAgc2V0VXBGb250RGVzY3JpcHRpb24oZGVzYywg
c2V0dGluZ3MpOwogICAgIEZvbnQgZm9udCA9IEZvbnQoZGVzYywgMCwgMCk7CiAgICAgZm9udC51
cGRhdGUoMCk7CiAKQEAgLTI4Miw3ICsyOTQsNyBAQCB2b2lkIGRyYXdFbGVtZW50VGl0bGUoR3Jh
cGhpY3NDb250ZXh0JiBjb250ZXh0LCBOb2RlKiBub2RlLCBjb25zdCBMYXlvdXRSZWN0JiBibwog
ICAgIExheW91dFVuaXQgZHkgPSBib3JkZXJXaWR0aFB4OwogCiAgICAgLy8gSWYgdGhlIHRpcCBz
dGlja3MgYmV5b25kIHRoZSByaWdodCBvZiBvdmVybGF5UmVjdCwgcmlnaHQtYWxpZ24gdGhlIHRp
cCB3aXRoIHRoZSBzYWlkIGJvdW5kYXJ5LgotICAgIGlmICh0aXRsZVJlY3QubWF4WCgpID4gb3Zl
cmxheVJlY3QubWF4WCgpKQorICAgIGlmICh0aXRsZVJlY3QubWF4WCgpICsgZHggPiBvdmVybGF5
UmVjdC5tYXhYKCkpCiAgICAgICAgIGR4ID0gb3ZlcmxheVJlY3QubWF4WCgpIC0gdGl0bGVSZWN0
Lm1heFgoKTsKIAogICAgIC8vIElmIHRoZSB0aXAgc3RpY2tzIGJleW9uZCB0aGUgbGVmdCBvZiBv
dmVybGF5UmVjdCwgbGVmdC1hbGlnbiB0aGUgdGlwIHdpdGggdGhlIHNhaWQgYm91bmRhcnkuCkBA
IC0yOTAsNyArMzAyLDcgQEAgdm9pZCBkcmF3RWxlbWVudFRpdGxlKEdyYXBoaWNzQ29udGV4dCYg
Y29udGV4dCwgTm9kZSogbm9kZSwgY29uc3QgTGF5b3V0UmVjdCYgYm8KICAgICAgICAgZHggPSBv
dmVybGF5UmVjdC54KCkgLSB0aXRsZVJlY3QueCgpIC0gYm9yZGVyV2lkdGhQeDsKIAogICAgIC8v
IElmIHRoZSB0aXAgc3RpY2tzIGJleW9uZCB0aGUgYm90dG9tIG9mIG92ZXJsYXlSZWN0LCBzaG93
IHRoZSB0aXAgYXQgdG9wIG9mIGJvdW5kaW5nIGJveC4KLSAgICBpZiAodGl0bGVSZWN0Lm1heFko
KSA+IG92ZXJsYXlSZWN0Lm1heFkoKSkgeworICAgIGlmICh0aXRsZVJlY3QubWF4WSgpICsgZHkg
PiBvdmVybGF5UmVjdC5tYXhZKCkpIHsKICAgICAgICAgZHkgPSBhbmNob3JCb3gueSgpIC0gdGl0
bGVSZWN0Lm1heFkoKSAtIGJvcmRlcldpZHRoUHg7CiAgICAgICAgIC8vIElmIHRoZSB0aXAgc3Rp
bGwgc3RpY2tzIGJleW9uZCB0aGUgYm90dG9tIG9mIG92ZXJsYXlSZWN0LCBib3R0b20tYWxpZ24g
dGhlIHRpcCB3aXRoIHRoZSBzYWlkIGJvdW5kYXJ5LgogICAgICAgICBpZiAodGl0bGVSZWN0Lm1h
eFkoKSArIGR5ID4gb3ZlcmxheVJlY3QubWF4WSgpKQpAQCAtMzA2LDI2ICszMTgsMzQgQEAgdm9p
ZCBkcmF3RWxlbWVudFRpdGxlKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgTm9kZSogbm9kZSwg
Y29uc3QgTGF5b3V0UmVjdCYgYm8KICAgICBib29sIGlzQXJyb3dBdFRvcCA9IHRpdGxlUmVjdC55
KCkgPiBhbmNob3JCb3gueSgpOwogICAgIHRpdGxlUmVjdC5tb3ZlKDAsIHRvb2x0aXBQYWRkaW5n
ICogKGlzQXJyb3dBdFRvcCA/IDEgOiAtMSkpOwogCi0gICAgY29udGV4dC5zZXRTdHJva2VDb2xv
cihweEFuZEJvcmRlckNvbG9yLCBDb2xvclNwYWNlRGV2aWNlUkdCKTsKLSAgICBjb250ZXh0LnNl
dFN0cm9rZVRoaWNrbmVzcyhib3JkZXJXaWR0aFB4KTsKLSAgICBjb250ZXh0LnNldEZpbGxDb2xv
cihiYWNrZ3JvdW5kQ29sb3IsIENvbG9yU3BhY2VEZXZpY2VSR0IpOwotICAgIGNvbnRleHQuZHJh
d1JlY3QodGl0bGVSZWN0KTsKLQogICAgIHsKLSAgICAgICAgaW50IGFycm93VGlwWCA9IGNhbGN1
bGF0ZUFycm93VGlwWChhbmNob3JCb3gsIHRpdGxlUmVjdCk7Ci0gICAgICAgIEZsb2F0UG9pbnQg
YXJyb3dQb2ludHNbM107Ci0gICAgICAgIGZsb2F0IGFycm93QmFzZVkgPSBpc0Fycm93QXRUb3Ag
PyB0aXRsZVJlY3QueSgpIDogdGl0bGVSZWN0Lm1heFkoKTsKLSAgICAgICAgYXJyb3dQb2ludHNb
MF0gPSBGbG9hdFBvaW50KGFycm93VGlwWCAtIGFycm93SGFsZldpZHRoLCBhcnJvd0Jhc2VZKTsK
LSAgICAgICAgYXJyb3dQb2ludHNbMV0gPSBGbG9hdFBvaW50KGFycm93VGlwWCwgYXJyb3dCYXNl
WSArIGFycm93SGVpZ2h0ICogKGlzQXJyb3dBdFRvcCA/IC0xIDogMSkpOwotICAgICAgICBhcnJv
d1BvaW50c1syXSA9IEZsb2F0UG9pbnQoYXJyb3dUaXBYICsgYXJyb3dIYWxmV2lkdGgsIGFycm93
QmFzZVkpOwotICAgICAgICBjb250ZXh0LmRyYXdDb252ZXhQb2x5Z29uKDMsIGFycm93UG9pbnRz
KTsKLQotICAgICAgICBjb250ZXh0LnNldFN0cm9rZUNvbG9yKGJhY2tncm91bmRDb2xvciwgQ29s
b3JTcGFjZURldmljZVJHQik7CisgICAgICAgIGZsb2F0IGFycm93VGlwWCA9IGNhbGN1bGF0ZUFy
cm93VGlwWChhbmNob3JCb3gsIHRpdGxlUmVjdCk7CisgICAgICAgIGludCBhcnJvd0Jhc2VZID0g
aXNBcnJvd0F0VG9wID8gdGl0bGVSZWN0LnkoKSA6IHRpdGxlUmVjdC5tYXhZKCk7CisgICAgICAg
IGludCBhcnJvd09wcG9zaXRlWSA9IGlzQXJyb3dBdFRvcCA/IHRpdGxlUmVjdC5tYXhZKCkgOiB0
aXRsZVJlY3QueSgpOworCisgICAgICAgIEZsb2F0UG9pbnQgcG9pbnRzWzhdOworICAgICAgICBw
b2ludHNbMF0gPSBGbG9hdFBvaW50KGFycm93VGlwWCAtIGFycm93SGFsZldpZHRoLCBhcnJvd0Jh
c2VZKTsKKyAgICAgICAgcG9pbnRzWzFdID0gRmxvYXRQb2ludChhcnJvd1RpcFgsIGFycm93QmFz
ZVkgKyBhcnJvd0hlaWdodCAqIChpc0Fycm93QXRUb3AgPyAtMSA6IDEpKTsKKyAgICAgICAgcG9p
bnRzWzJdID0gRmxvYXRQb2ludChhcnJvd1RpcFggKyBhcnJvd0hhbGZXaWR0aCwgYXJyb3dCYXNl
WSk7CisgICAgICAgIHBvaW50c1szXSA9IEZsb2F0UG9pbnQodGl0bGVSZWN0Lm1heFgoKSwgYXJy
b3dCYXNlWSk7CisgICAgICAgIHBvaW50c1s0XSA9IEZsb2F0UG9pbnQodGl0bGVSZWN0Lm1heFgo
KSwgYXJyb3dPcHBvc2l0ZVkpOworICAgICAgICBwb2ludHNbNV0gPSBGbG9hdFBvaW50KHRpdGxl
UmVjdC54KCksIGFycm93T3Bwb3NpdGVZKTsKKyAgICAgICAgcG9pbnRzWzZdID0gRmxvYXRQb2lu
dCh0aXRsZVJlY3QueCgpLCBhcnJvd0Jhc2VZKTsKKyAgICAgICAgcG9pbnRzWzddID0gcG9pbnRz
WzBdOworCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgODsgKytpKQorICAgICAgICAgICAg
cG9pbnRzW2ldLm1vdmUoMC41LCAwLjUpOworCisgICAgICAgIFBhdGggcGF0aDsKKyAgICAgICAg
cGF0aC5tb3ZlVG8ocG9pbnRzWzBdKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDE7IGkgPCA4OyAr
K2kpCisgICAgICAgICAgICBwYXRoLmFkZExpbmVUbyhwb2ludHNbaV0pOworCisgICAgICAgIGNv
bnRleHQuc2V0U3Ryb2tlQ29sb3IocHhBbmRCb3JkZXJDb2xvciwgQ29sb3JTcGFjZURldmljZVJH
Qik7CiAgICAgICAgIGNvbnRleHQuc2V0RmlsbENvbG9yKGJhY2tncm91bmRDb2xvciwgQ29sb3JT
cGFjZURldmljZVJHQik7Ci0gICAgICAgIGNvbnRleHQuc2V0U3Ryb2tlVGhpY2tuZXNzKGJvcmRl
cldpZHRoUHggKyAxKTsKLSAgICAgICAgTGF5b3V0UG9pbnQgc3RhcnRQb2ludCA9IExheW91dFBv
aW50KGFycm93UG9pbnRzWzBdLngoKSArIDEsIGFycm93UG9pbnRzWzBdLnkoKSk7Ci0gICAgICAg
IExheW91dFBvaW50IGVuZFBvaW50ID0gTGF5b3V0UG9pbnQoYXJyb3dQb2ludHNbMl0ueCgpIC0g
MSwgYXJyb3dQb2ludHNbMl0ueSgpKTsKLSAgICAgICAgY29udGV4dC5kcmF3TGluZShzdGFydFBv
aW50LCBlbmRQb2ludCk7CisgICAgICAgIGNvbnRleHQuc2V0U3Ryb2tlVGhpY2tuZXNzKGJvcmRl
cldpZHRoUHgpOworICAgICAgICBjb250ZXh0LmZpbGxQYXRoKHBhdGgpOworICAgICAgICBjb250
ZXh0LnN0cm9rZVBhdGgocGF0aCk7CiAgICAgfQogCiAgICAgaW50IGN1cnJlbnRQb3MgPSAwOwo=
</data>
<flag name="review"
          id="101041"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>105153</attachid>
            <date>2011-08-25 03:06:47 -0700</date>
            <delta_ts>2011-08-25 03:10:54 -0700</delta_ts>
            <desc>[PATCH] Patch for landing (EWS check)</desc>
            <filename>highlightfix.patch</filename>
            <type>text/plain</type>
            <size>9186</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">Y29tbWl0IGUzODlmNzkyYzcyNjA5MzYyMjMwNDM4NzlhMDFhNzlkOTlmYjMyYjkKQXV0aG9yOiBh
cGF2bG92QGNocm9taXVtLm9yZyA8YXBhdmxvdkBjaHJvbWl1bS5vcmdAMjY4ZjQ1Y2MtY2QwOS0w
NDEwLWFiM2MtZDUyNjkxYjRkYmZjPgpEYXRlOiAgIFRodSBBdWcgMjUgMDk6NTI6NDggMjAxMSAr
MDAwMAoKICAgIEZpeAoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBkZDk3MzlmLi4wZDhlNWY4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMDgtMjQgIEFsZXhhbmRlciBQYXZsb3YgIDxhcGF2bG92
QGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBEaXJlY3Rpb25hbCBhcnJv
dyBvbiBlbGVtZW50IGluZm8gYm94IGxvb2tzIHRlcnJpYmxlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NjgxOQorCisgICAgICAgIEJlYXV0aWZ5IHRo
ZSB0b29sdGlwIGFycm93LCBnaXZlIGl0IGEgYmV0dGVyIGFsaWdubWVudCBpbiBzb21lIGVkZ2Ug
Y2FzZXMsCisgICAgICAgIGFuZCBmaXggdGhlIHRvb2x0aXAgZm9udCBvbiBNYWNzLgorCisgICAg
ICAgIFJldmlld2VkIGJ5IFBhdmVsIEZlbGRtYW4uCisKKyAgICAgICAgKiBpbnNwZWN0b3IvRE9N
Tm9kZUhpZ2hsaWdodGVyLmNwcDoKKwogMjAxMS0wOC0yNSAgWXV0YSBLaXRhbXVyYSAgPHl1dGFr
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBMZXQgTWVzc2FnZUV2ZW50LmRhdGEgaG9sZCBTZXJp
YWxpemVkU2NyaXB0VmFsdWUgb3IgU3RyaW5nIHNlbGVjdGl2ZWx5CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvRE9NTm9kZUhpZ2hsaWdodGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9ET01Ob2RlSGlnaGxpZ2h0ZXIuY3BwCmluZGV4IDc5ZmUzNDIuLjc4NjFl
MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9ET01Ob2RlSGlnaGxpZ2h0
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9ET01Ob2RlSGlnaGxpZ2h0ZXIu
Y3BwCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFt
ZVZpZXcuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKKyNpbmNsdWRlICJHcmFwaGlj
c1R5cGVzLmgiCiAjaW5jbHVkZSAiTm9kZS5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRl
ICJSYW5nZS5oIgpAQCAtNDksMTQgKzUwLDE5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogbmFt
ZXNwYWNlIHsKIAorI2lmIE9TKFdJTkRPV1MpCitzdGF0aWMgY29uc3QgdW5zaWduZWQgZm9udEhl
aWdodFB4ID0gMTI7CisjZWxpZiBPUyhNQUNfT1NfWCkgfHwgT1MoVU5JWCkKK3N0YXRpYyBjb25z
dCB1bnNpZ25lZCBmb250SGVpZ2h0UHggPSAxMTsKKyNlbmRpZgorCiBjb25zdCBzdGF0aWMgaW50
IHJlY3RJbmZsYXRlUHggPSA0OwotY29uc3Qgc3RhdGljIGludCBmb250SGVpZ2h0UHggPSAxMjsK
IGNvbnN0IHN0YXRpYyBpbnQgYm9yZGVyV2lkdGhQeCA9IDE7CiBjb25zdCBzdGF0aWMgaW50IHRv
b2x0aXBQYWRkaW5nID0gNDsKIAogY29uc3Qgc3RhdGljIGludCBhcnJvd1RpcE9mZnNldCA9IDIw
OwotY29uc3Qgc3RhdGljIGludCBhcnJvd0hlaWdodCA9IDc7Ci1jb25zdCBzdGF0aWMgaW50IGFy
cm93SGFsZldpZHRoID0gNzsKK2NvbnN0IHN0YXRpYyBmbG9hdCBhcnJvd0hlaWdodCA9IDc7Citj
b25zdCBzdGF0aWMgZmxvYXQgYXJyb3dIYWxmV2lkdGggPSA3OwogCiBQYXRoIHF1YWRUb1BhdGgo
Y29uc3QgRmxvYXRRdWFkJiBxdWFkKQogewpAQCAtMTUzLDQzICsxNTksNDkgQEAgaW50IGRyYXdT
dWJzdHJpbmcoY29uc3QgVGV4dFJ1biYgZ2xvYmFsVGV4dFJ1biwgaW50IG9mZnNldCwgaW50IGxl
bmd0aCwgY29uc3QgQ28KICAgICByZXR1cm4gb2Zmc2V0ICsgbGVuZ3RoOwogfQogCi1pbnQgY2Fs
Y3VsYXRlQXJyb3dUaXBYKGNvbnN0IExheW91dFJlY3QmIGFuY2hvckJveCwgY29uc3QgTGF5b3V0
UmVjdCYgdGl0bGVSZWN0KQorZmxvYXQgY2FsY3VsYXRlQXJyb3dUaXBYKGNvbnN0IExheW91dFJl
Y3QmIGFuY2hvckJveCwgY29uc3QgTGF5b3V0UmVjdCYgdGl0bGVSZWN0KQogewotICAgIGludCBh
bmNob3JYID0gYW5jaG9yQm94LngoKTsKKyAgICBjb25zdCBzdGF0aWMgaW50IGFuY2hvclRpcE9m
ZnNldFB4ID0gMjsKIAotICAgIC8vIENoZWNrIGZvciBoZWF2aWx5IG1pc2FsaWduZWQgdG9vbHRp
cCBmaXJzdC4KLSAgICBpZiAodGl0bGVSZWN0LngoKSA+IGFuY2hvckJveC5tYXhYKCkpCi0gICAg
ICAgIHJldHVybiB0aXRsZVJlY3QueCgpICsgYXJyb3dIYWxmV2lkdGg7Ci0KLSAgICBpZiAodGl0
bGVSZWN0Lm1heFgoKSA8IGFuY2hvclgpCi0gICAgICAgIHJldHVybiB0aXRsZVJlY3QubWF4WCgp
IC0gYXJyb3dIYWxmV2lkdGg7CisgICAgaW50IG1pblggPSB0aXRsZVJlY3QueCgpICsgYXJyb3dI
YWxmV2lkdGg7CisgICAgaW50IG1heFggPSB0aXRsZVJlY3QubWF4WCgpIC0gYXJyb3dIYWxmV2lk
dGg7CisgICAgaW50IGFuY2hvclggPSBhbmNob3JCb3gueCgpOworICAgIGludCBhbmNob3JNYXhY
ID0gYW5jaG9yQm94Lm1heFgoKTsKIAotICAgIGludCB4ID0gdGl0bGVSZWN0LngoKSArIGFycm93
VGlwT2Zmc2V0OworICAgIGludCB4ID0gdGl0bGVSZWN0LngoKSArIGFycm93VGlwT2Zmc2V0OyAv
LyBEZWZhdWx0IHRvb2x0aXAgcG9zaXRpb24uCiAgICAgaWYgKHggPCBhbmNob3JYKQotICAgICAg
ICB4ID0gYW5jaG9yWCArIGFycm93VGlwT2Zmc2V0OwotICAgIGlmICh4ID4gdGl0bGVSZWN0Lm1h
eFgoKSAtIGFycm93SGFsZldpZHRoKQotICAgICAgICB4ID0gdGl0bGVSZWN0Lm1heFgoKSAtIGFy
cm93SGFsZldpZHRoOworICAgICAgICB4ID0gYW5jaG9yWCArIGFuY2hvclRpcE9mZnNldFB4Owor
ICAgIGVsc2UgaWYgKHggPiBhbmNob3JNYXhYKQorICAgICAgICB4ID0gYW5jaG9yTWF4WCAtIGFu
Y2hvclRpcE9mZnNldFB4OworCisgICAgaWYgKHggPCBtaW5YKQorICAgICAgICB4ID0gbWluWDsK
KyAgICBlbHNlIGlmICh4ID4gbWF4WCkKKyAgICAgICAgeCA9IG1heFg7CiAKICAgICByZXR1cm4g
eDsKIH0KIAotdm9pZCBzZXRVcEZvbnRGYW1pbGllcyhGb250RGVzY3JpcHRpb24mIGZvbnREZXNj
cmlwdGlvbiwgV2ViQ29yZTo6U2V0dGluZ3MqIHNldHRpbmdzKQordm9pZCBzZXRVcEZvbnREZXNj
cmlwdGlvbihGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbiwgV2ViQ29yZTo6U2V0dGlu
Z3MqIHNldHRpbmdzKQogewogI2RlZmluZSBUT09MVElQX0ZPTlRfRkFNSUxJRVMoc2l6ZSwgLi4u
KSBcCi1zdGF0aWMgdW5zaWduZWQgdG9vbHRpcEZvbnRGYWNlU2l6ZSA9IHNpemU7XAorc3RhdGlj
IGNvbnN0IHVuc2lnbmVkIHRvb2x0aXBGb250RmFjZVNpemUgPSBzaXplO1wKIHN0YXRpYyBjb25z
dCBBdG9taWNTdHJpbmcqIHRvb2x0aXBGb250RmFjZVtzaXplXSA9IHsgX19WQV9BUkdTX18gfTsK
IAogI2lmIE9TKFdJTkRPV1MpCiBUT09MVElQX0ZPTlRfRkFNSUxJRVMoMiwgbmV3IEF0b21pY1N0
cmluZygiQ29uc29sYXMiKSwgbmV3IEF0b21pY1N0cmluZygiTHVjaWRhIENvbnNvbGUiKSkKLSNl
bGlmIE9TKFVOSVgpCi1UT09MVElQX0ZPTlRfRkFNSUxJRVMoMSwgbmV3IEF0b21pY1N0cmluZygi
ZGVqYXZ1IHNhbnMgbW9ubyIpKQogI2VsaWYgT1MoTUFDX09TX1gpCiBUT09MVElQX0ZPTlRfRkFN
SUxJRVMoMiwgbmV3IEF0b21pY1N0cmluZygiTWVubG8iKSwgbmV3IEF0b21pY1N0cmluZygiTW9u
YWNvIikpCisjZWxpZiBPUyhVTklYKQorVE9PTFRJUF9GT05UX0ZBTUlMSUVTKDEsIG5ldyBBdG9t
aWNTdHJpbmcoImRlamF2dSBzYW5zIG1vbm8iKSkKICNlbmRpZgogLy8gSW4gdGhlIGRlZmF1bHQg
Y2FzZSwgd2UgZ2V0IHRoZSBzZXR0aW5ncy1wcm92aWRlZCBtb25vc3BhY2UgZm9udC4KIAogI3Vu
ZGVmIFRPT0xUSVBfRk9OVF9GQU1JTElFUwogCisgICAgZm9udERlc2NyaXB0aW9uLnNldFJlbmRl
cmluZ01vZGUoc2V0dGluZ3MtPmZvbnRSZW5kZXJpbmdNb2RlKCkpOworICAgIGZvbnREZXNjcmlw
dGlvbi5zZXRDb21wdXRlZFNpemUoZm9udEhlaWdodFB4KTsKKwogICAgIGNvbnN0IEF0b21pY1N0
cmluZyYgZml4ZWRGb250RmFtaWx5ID0gc2V0dGluZ3MtPmZpeGVkRm9udEZhbWlseSgpOwogICAg
IGlmICghZml4ZWRGb250RmFtaWx5LmlzRW1wdHkoKSkgewogICAgICAgICBmb250RGVzY3JpcHRp
b24uc2V0R2VuZXJpY0ZhbWlseShGb250RGVzY3JpcHRpb246Ok1vbm9zcGFjZUZhbWlseSk7CkBA
IC0yMTYsNyArMjI4LDcgQEAgVE9PTFRJUF9GT05UX0ZBTUlMSUVTKDIsIG5ldyBBdG9taWNTdHJp
bmcoIk1lbmxvIiksIG5ldyBBdG9taWNTdHJpbmcoIk1vbmFjbyIpKQogdm9pZCBkcmF3RWxlbWVu
dFRpdGxlKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgTm9kZSogbm9kZSwgY29uc3QgTGF5b3V0
UmVjdCYgYm91bmRpbmdCb3gsIGNvbnN0IExheW91dFJlY3QmIGFuY2hvckJveCwgY29uc3QgRmxv
YXRSZWN0JiBvdmVybGF5UmVjdCwgV2ViQ29yZTo6U2V0dGluZ3MqIHNldHRpbmdzKQogewogCi0g
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChDb2xvciwgYmFja2dyb3VuZENvbG9yLCAoMjU1LCAyNTUs
IDE5NCwgMjU1KSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChDb2xvciwgYmFja2dyb3VuZENv
bG9yLCAoMjU1LCAyNTUsIDE5NCkpOwogICAgIERFRklORV9TVEFUSUNfTE9DQUwoQ29sb3IsIHRh
Z0NvbG9yLCAoMTM2LCAxOCwgMTI4KSk7IC8vIFNhbWUgYXMgLndlYmtpdC1odG1sLXRhZy4KICAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKENvbG9yLCBhdHRyQ29sb3IsICgyNiwgMjYsIDE2NikpOyAv
LyBTYW1lIGFzIC53ZWJraXQtaHRtbC1hdHRyaWJ1dGUtdmFsdWUuCiAgICAgREVGSU5FX1NUQVRJ
Q19MT0NBTChDb2xvciwgbm9ybWFsQ29sb3IsIChDb2xvcjo6YmxhY2spKTsKQEAgLTI2NSw5ICsy
NzcsNyBAQCB2b2lkIGRyYXdFbGVtZW50VGl0bGUoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBO
b2RlKiBub2RlLCBjb25zdCBMYXlvdXRSZWN0JiBibwogICAgIG5vZGVUaXRsZSArPSBoZWlnaHRO
dW1iZXJQYXJ0ICsgcHhTdHJpbmc7CiAKICAgICBGb250RGVzY3JpcHRpb24gZGVzYzsKLSAgICBk
ZXNjLnNldFJlbmRlcmluZ01vZGUoc2V0dGluZ3MtPmZvbnRSZW5kZXJpbmdNb2RlKCkpOwotICAg
IGRlc2Muc2V0Q29tcHV0ZWRTaXplKGZvbnRIZWlnaHRQeCk7Ci0gICAgc2V0VXBGb250RmFtaWxp
ZXMoZGVzYywgc2V0dGluZ3MpOworICAgIHNldFVwRm9udERlc2NyaXB0aW9uKGRlc2MsIHNldHRp
bmdzKTsKICAgICBGb250IGZvbnQgPSBGb250KGRlc2MsIDAsIDApOwogICAgIGZvbnQudXBkYXRl
KDApOwogCkBAIC0yODIsNyArMjkyLDcgQEAgdm9pZCBkcmF3RWxlbWVudFRpdGxlKEdyYXBoaWNz
Q29udGV4dCYgY29udGV4dCwgTm9kZSogbm9kZSwgY29uc3QgTGF5b3V0UmVjdCYgYm8KICAgICBM
YXlvdXRVbml0IGR5ID0gYm9yZGVyV2lkdGhQeDsKIAogICAgIC8vIElmIHRoZSB0aXAgc3RpY2tz
IGJleW9uZCB0aGUgcmlnaHQgb2Ygb3ZlcmxheVJlY3QsIHJpZ2h0LWFsaWduIHRoZSB0aXAgd2l0
aCB0aGUgc2FpZCBib3VuZGFyeS4KLSAgICBpZiAodGl0bGVSZWN0Lm1heFgoKSA+IG92ZXJsYXlS
ZWN0Lm1heFgoKSkKKyAgICBpZiAodGl0bGVSZWN0Lm1heFgoKSArIGR4ID4gb3ZlcmxheVJlY3Qu
bWF4WCgpKQogICAgICAgICBkeCA9IG92ZXJsYXlSZWN0Lm1heFgoKSAtIHRpdGxlUmVjdC5tYXhY
KCk7CiAKICAgICAvLyBJZiB0aGUgdGlwIHN0aWNrcyBiZXlvbmQgdGhlIGxlZnQgb2Ygb3Zlcmxh
eVJlY3QsIGxlZnQtYWxpZ24gdGhlIHRpcCB3aXRoIHRoZSBzYWlkIGJvdW5kYXJ5LgpAQCAtMjkw
LDcgKzMwMCw3IEBAIHZvaWQgZHJhd0VsZW1lbnRUaXRsZShHcmFwaGljc0NvbnRleHQmIGNvbnRl
eHQsIE5vZGUqIG5vZGUsIGNvbnN0IExheW91dFJlY3QmIGJvCiAgICAgICAgIGR4ID0gb3Zlcmxh
eVJlY3QueCgpIC0gdGl0bGVSZWN0LngoKSAtIGJvcmRlcldpZHRoUHg7CiAKICAgICAvLyBJZiB0
aGUgdGlwIHN0aWNrcyBiZXlvbmQgdGhlIGJvdHRvbSBvZiBvdmVybGF5UmVjdCwgc2hvdyB0aGUg
dGlwIGF0IHRvcCBvZiBib3VuZGluZyBib3guCi0gICAgaWYgKHRpdGxlUmVjdC5tYXhZKCkgPiBv
dmVybGF5UmVjdC5tYXhZKCkpIHsKKyAgICBpZiAodGl0bGVSZWN0Lm1heFkoKSArIGR5ID4gb3Zl
cmxheVJlY3QubWF4WSgpKSB7CiAgICAgICAgIGR5ID0gYW5jaG9yQm94LnkoKSAtIHRpdGxlUmVj
dC5tYXhZKCkgLSBib3JkZXJXaWR0aFB4OwogICAgICAgICAvLyBJZiB0aGUgdGlwIHN0aWxsIHN0
aWNrcyBiZXlvbmQgdGhlIGJvdHRvbSBvZiBvdmVybGF5UmVjdCwgYm90dG9tLWFsaWduIHRoZSB0
aXAgd2l0aCB0aGUgc2FpZCBib3VuZGFyeS4KICAgICAgICAgaWYgKHRpdGxlUmVjdC5tYXhZKCkg
KyBkeSA+IG92ZXJsYXlSZWN0Lm1heFkoKSkKQEAgLTMwNiwyNiArMzE2LDM0IEBAIHZvaWQgZHJh
d0VsZW1lbnRUaXRsZShHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIE5vZGUqIG5vZGUsIGNvbnN0
IExheW91dFJlY3QmIGJvCiAgICAgYm9vbCBpc0Fycm93QXRUb3AgPSB0aXRsZVJlY3QueSgpID4g
YW5jaG9yQm94LnkoKTsKICAgICB0aXRsZVJlY3QubW92ZSgwLCB0b29sdGlwUGFkZGluZyAqIChp
c0Fycm93QXRUb3AgPyAxIDogLTEpKTsKIAotICAgIGNvbnRleHQuc2V0U3Ryb2tlQ29sb3IocHhB
bmRCb3JkZXJDb2xvciwgQ29sb3JTcGFjZURldmljZVJHQik7Ci0gICAgY29udGV4dC5zZXRTdHJv
a2VUaGlja25lc3MoYm9yZGVyV2lkdGhQeCk7Ci0gICAgY29udGV4dC5zZXRGaWxsQ29sb3IoYmFj
a2dyb3VuZENvbG9yLCBDb2xvclNwYWNlRGV2aWNlUkdCKTsKLSAgICBjb250ZXh0LmRyYXdSZWN0
KHRpdGxlUmVjdCk7Ci0KICAgICB7Ci0gICAgICAgIGludCBhcnJvd1RpcFggPSBjYWxjdWxhdGVB
cnJvd1RpcFgoYW5jaG9yQm94LCB0aXRsZVJlY3QpOwotICAgICAgICBGbG9hdFBvaW50IGFycm93
UG9pbnRzWzNdOwotICAgICAgICBmbG9hdCBhcnJvd0Jhc2VZID0gaXNBcnJvd0F0VG9wID8gdGl0
bGVSZWN0LnkoKSA6IHRpdGxlUmVjdC5tYXhZKCk7Ci0gICAgICAgIGFycm93UG9pbnRzWzBdID0g
RmxvYXRQb2ludChhcnJvd1RpcFggLSBhcnJvd0hhbGZXaWR0aCwgYXJyb3dCYXNlWSk7Ci0gICAg
ICAgIGFycm93UG9pbnRzWzFdID0gRmxvYXRQb2ludChhcnJvd1RpcFgsIGFycm93QmFzZVkgKyBh
cnJvd0hlaWdodCAqIChpc0Fycm93QXRUb3AgPyAtMSA6IDEpKTsKLSAgICAgICAgYXJyb3dQb2lu
dHNbMl0gPSBGbG9hdFBvaW50KGFycm93VGlwWCArIGFycm93SGFsZldpZHRoLCBhcnJvd0Jhc2VZ
KTsKLSAgICAgICAgY29udGV4dC5kcmF3Q29udmV4UG9seWdvbigzLCBhcnJvd1BvaW50cyk7Ci0K
LSAgICAgICAgY29udGV4dC5zZXRTdHJva2VDb2xvcihiYWNrZ3JvdW5kQ29sb3IsIENvbG9yU3Bh
Y2VEZXZpY2VSR0IpOworICAgICAgICBmbG9hdCBhcnJvd1RpcFggPSBjYWxjdWxhdGVBcnJvd1Rp
cFgoYW5jaG9yQm94LCB0aXRsZVJlY3QpOworICAgICAgICBpbnQgYXJyb3dCYXNlWSA9IGlzQXJy
b3dBdFRvcCA/IHRpdGxlUmVjdC55KCkgOiB0aXRsZVJlY3QubWF4WSgpOworICAgICAgICBpbnQg
YXJyb3dPcHBvc2l0ZVkgPSBpc0Fycm93QXRUb3AgPyB0aXRsZVJlY3QubWF4WSgpIDogdGl0bGVS
ZWN0LnkoKTsKKworICAgICAgICBGbG9hdFBvaW50IHBvaW50c1s4XTsKKyAgICAgICAgcG9pbnRz
WzBdID0gRmxvYXRQb2ludChhcnJvd1RpcFggLSBhcnJvd0hhbGZXaWR0aCwgYXJyb3dCYXNlWSk7
CisgICAgICAgIHBvaW50c1sxXSA9IEZsb2F0UG9pbnQoYXJyb3dUaXBYLCBhcnJvd0Jhc2VZICsg
YXJyb3dIZWlnaHQgKiAoaXNBcnJvd0F0VG9wID8gLTEgOiAxKSk7CisgICAgICAgIHBvaW50c1sy
XSA9IEZsb2F0UG9pbnQoYXJyb3dUaXBYICsgYXJyb3dIYWxmV2lkdGgsIGFycm93QmFzZVkpOwor
ICAgICAgICBwb2ludHNbM10gPSBGbG9hdFBvaW50KHRpdGxlUmVjdC5tYXhYKCksIGFycm93QmFz
ZVkpOworICAgICAgICBwb2ludHNbNF0gPSBGbG9hdFBvaW50KHRpdGxlUmVjdC5tYXhYKCksIGFy
cm93T3Bwb3NpdGVZKTsKKyAgICAgICAgcG9pbnRzWzVdID0gRmxvYXRQb2ludCh0aXRsZVJlY3Qu
eCgpLCBhcnJvd09wcG9zaXRlWSk7CisgICAgICAgIHBvaW50c1s2XSA9IEZsb2F0UG9pbnQodGl0
bGVSZWN0LngoKSwgYXJyb3dCYXNlWSk7CisgICAgICAgIHBvaW50c1s3XSA9IHBvaW50c1swXTsK
KworICAgICAgICBQYXRoIHBhdGg7CisgICAgICAgIHBhdGgubW92ZVRvKHBvaW50c1swXSk7Cisg
ICAgICAgIGZvciAoaW50IGkgPSAxOyBpIDwgODsgKytpKQorICAgICAgICAgICAgcGF0aC5hZGRM
aW5lVG8ocG9pbnRzW2ldKTsKKworICAgICAgICBjb250ZXh0LnNhdmUoKTsKKyAgICAgICAgY29u
dGV4dC50cmFuc2xhdGUoMC41ZiwgMC41Zik7CisgICAgICAgIGNvbnRleHQuc2V0U3Ryb2tlQ29s
b3IocHhBbmRCb3JkZXJDb2xvciwgQ29sb3JTcGFjZURldmljZVJHQik7CiAgICAgICAgIGNvbnRl
eHQuc2V0RmlsbENvbG9yKGJhY2tncm91bmRDb2xvciwgQ29sb3JTcGFjZURldmljZVJHQik7Ci0g
ICAgICAgIGNvbnRleHQuc2V0U3Ryb2tlVGhpY2tuZXNzKGJvcmRlcldpZHRoUHggKyAxKTsKLSAg
ICAgICAgTGF5b3V0UG9pbnQgc3RhcnRQb2ludCA9IExheW91dFBvaW50KGFycm93UG9pbnRzWzBd
LngoKSArIDEsIGFycm93UG9pbnRzWzBdLnkoKSk7Ci0gICAgICAgIExheW91dFBvaW50IGVuZFBv
aW50ID0gTGF5b3V0UG9pbnQoYXJyb3dQb2ludHNbMl0ueCgpIC0gMSwgYXJyb3dQb2ludHNbMl0u
eSgpKTsKLSAgICAgICAgY29udGV4dC5kcmF3TGluZShzdGFydFBvaW50LCBlbmRQb2ludCk7Cisg
ICAgICAgIGNvbnRleHQuc2V0U3Ryb2tlVGhpY2tuZXNzKGJvcmRlcldpZHRoUHgpOworICAgICAg
ICBjb250ZXh0LmZpbGxQYXRoKHBhdGgpOworICAgICAgICBjb250ZXh0LnN0cm9rZVBhdGgocGF0
aCk7CisgICAgICAgIGNvbnRleHQucmVzdG9yZSgpOwogICAgIH0KIAogICAgIGludCBjdXJyZW50
UG9zID0gMDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>105156</attachid>
            <date>2011-08-25 03:10:54 -0700</date>
            <delta_ts>2011-08-25 03:17:29 -0700</delta_ts>
            <desc>[PATCH] For EWS</desc>
            <filename>highlightfix.patch</filename>
            <type>text/plain</type>
            <size>9165</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">Y29tbWl0IDIwNDNmMTBiZDg3NGRlMDI4ZjBmYmUzMzk4NzM0NDZhNjRhNzZlNGIKQXV0aG9yOiBh
cGF2bG92QGNocm9taXVtLm9yZyA8YXBhdmxvdkBjaHJvbWl1bS5vcmdAMjY4ZjQ1Y2MtY2QwOS0w
NDEwLWFiM2MtZDUyNjkxYjRkYmZjPgpEYXRlOiAgIFRodSBBdWcgMjUgMDk6NTI6NDggMjAxMSAr
MDAwMAoKICAgIEZpeAoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBjMDYwMDY2Li4wNWI1ZjgxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMDgtMjQgIEFsZXhhbmRlciBQYXZsb3YgIDxhcGF2bG92
QGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBEaXJlY3Rpb25hbCBhcnJv
dyBvbiBlbGVtZW50IGluZm8gYm94IGxvb2tzIHRlcnJpYmxlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NjgxOQorCisgICAgICAgIEJlYXV0aWZ5IHRo
ZSB0b29sdGlwIGFycm93LCBnaXZlIGl0IGEgYmV0dGVyIGFsaWdubWVudCBpbiBzb21lIGVkZ2Ug
Y2FzZXMsCisgICAgICAgIGFuZCBmaXggdGhlIHRvb2x0aXAgZm9udCBvbiBNYWNzLgorCisgICAg
ICAgIFJldmlld2VkIGJ5IFBhdmVsIEZlbGRtYW4uCisKKyAgICAgICAgKiBpbnNwZWN0b3IvRE9N
Tm9kZUhpZ2hsaWdodGVyLmNwcDoKKwogMjAxMS0wOC0yNSAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxk
bWFuQGdvb2dsZS5jb20+CiAKICAgICAgICAgTm90IHJldmlld2VkOiByb2xsb3V0IHI5Mzc2OCBm
b3IgYnJlYWtpbmcgYnVpbGQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
RE9NTm9kZUhpZ2hsaWdodGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9ET01Ob2Rl
SGlnaGxpZ2h0ZXIuY3BwCmluZGV4IDc5ZmUzNDIuLjc4NjFlMzYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9ET01Ob2RlSGlnaGxpZ2h0ZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9ET01Ob2RlSGlnaGxpZ2h0ZXIuY3BwCkBAIC0zNyw2ICszNyw3IEBA
CiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKICNpbmNsdWRlICJH
cmFwaGljc0NvbnRleHQuaCIKKyNpbmNsdWRlICJHcmFwaGljc1R5cGVzLmgiCiAjaW5jbHVkZSAi
Tm9kZS5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJSYW5nZS5oIgpAQCAtNDksMTQg
KzUwLDE5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogbmFtZXNwYWNlIHsKIAorI2lmIE9TKFdJ
TkRPV1MpCitzdGF0aWMgY29uc3QgdW5zaWduZWQgZm9udEhlaWdodFB4ID0gMTI7CisjZWxpZiBP
UyhNQUNfT1NfWCkgfHwgT1MoVU5JWCkKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBmb250SGVpZ2h0
UHggPSAxMTsKKyNlbmRpZgorCiBjb25zdCBzdGF0aWMgaW50IHJlY3RJbmZsYXRlUHggPSA0Owot
Y29uc3Qgc3RhdGljIGludCBmb250SGVpZ2h0UHggPSAxMjsKIGNvbnN0IHN0YXRpYyBpbnQgYm9y
ZGVyV2lkdGhQeCA9IDE7CiBjb25zdCBzdGF0aWMgaW50IHRvb2x0aXBQYWRkaW5nID0gNDsKIAog
Y29uc3Qgc3RhdGljIGludCBhcnJvd1RpcE9mZnNldCA9IDIwOwotY29uc3Qgc3RhdGljIGludCBh
cnJvd0hlaWdodCA9IDc7Ci1jb25zdCBzdGF0aWMgaW50IGFycm93SGFsZldpZHRoID0gNzsKK2Nv
bnN0IHN0YXRpYyBmbG9hdCBhcnJvd0hlaWdodCA9IDc7Citjb25zdCBzdGF0aWMgZmxvYXQgYXJy
b3dIYWxmV2lkdGggPSA3OwogCiBQYXRoIHF1YWRUb1BhdGgoY29uc3QgRmxvYXRRdWFkJiBxdWFk
KQogewpAQCAtMTUzLDQzICsxNTksNDkgQEAgaW50IGRyYXdTdWJzdHJpbmcoY29uc3QgVGV4dFJ1
biYgZ2xvYmFsVGV4dFJ1biwgaW50IG9mZnNldCwgaW50IGxlbmd0aCwgY29uc3QgQ28KICAgICBy
ZXR1cm4gb2Zmc2V0ICsgbGVuZ3RoOwogfQogCi1pbnQgY2FsY3VsYXRlQXJyb3dUaXBYKGNvbnN0
IExheW91dFJlY3QmIGFuY2hvckJveCwgY29uc3QgTGF5b3V0UmVjdCYgdGl0bGVSZWN0KQorZmxv
YXQgY2FsY3VsYXRlQXJyb3dUaXBYKGNvbnN0IExheW91dFJlY3QmIGFuY2hvckJveCwgY29uc3Qg
TGF5b3V0UmVjdCYgdGl0bGVSZWN0KQogewotICAgIGludCBhbmNob3JYID0gYW5jaG9yQm94Lngo
KTsKKyAgICBjb25zdCBzdGF0aWMgaW50IGFuY2hvclRpcE9mZnNldFB4ID0gMjsKIAotICAgIC8v
IENoZWNrIGZvciBoZWF2aWx5IG1pc2FsaWduZWQgdG9vbHRpcCBmaXJzdC4KLSAgICBpZiAodGl0
bGVSZWN0LngoKSA+IGFuY2hvckJveC5tYXhYKCkpCi0gICAgICAgIHJldHVybiB0aXRsZVJlY3Qu
eCgpICsgYXJyb3dIYWxmV2lkdGg7Ci0KLSAgICBpZiAodGl0bGVSZWN0Lm1heFgoKSA8IGFuY2hv
clgpCi0gICAgICAgIHJldHVybiB0aXRsZVJlY3QubWF4WCgpIC0gYXJyb3dIYWxmV2lkdGg7Cisg
ICAgaW50IG1pblggPSB0aXRsZVJlY3QueCgpICsgYXJyb3dIYWxmV2lkdGg7CisgICAgaW50IG1h
eFggPSB0aXRsZVJlY3QubWF4WCgpIC0gYXJyb3dIYWxmV2lkdGg7CisgICAgaW50IGFuY2hvclgg
PSBhbmNob3JCb3gueCgpOworICAgIGludCBhbmNob3JNYXhYID0gYW5jaG9yQm94Lm1heFgoKTsK
IAotICAgIGludCB4ID0gdGl0bGVSZWN0LngoKSArIGFycm93VGlwT2Zmc2V0OworICAgIGludCB4
ID0gdGl0bGVSZWN0LngoKSArIGFycm93VGlwT2Zmc2V0OyAvLyBEZWZhdWx0IHRvb2x0aXAgcG9z
aXRpb24uCiAgICAgaWYgKHggPCBhbmNob3JYKQotICAgICAgICB4ID0gYW5jaG9yWCArIGFycm93
VGlwT2Zmc2V0OwotICAgIGlmICh4ID4gdGl0bGVSZWN0Lm1heFgoKSAtIGFycm93SGFsZldpZHRo
KQotICAgICAgICB4ID0gdGl0bGVSZWN0Lm1heFgoKSAtIGFycm93SGFsZldpZHRoOworICAgICAg
ICB4ID0gYW5jaG9yWCArIGFuY2hvclRpcE9mZnNldFB4OworICAgIGVsc2UgaWYgKHggPiBhbmNo
b3JNYXhYKQorICAgICAgICB4ID0gYW5jaG9yTWF4WCAtIGFuY2hvclRpcE9mZnNldFB4OworCisg
ICAgaWYgKHggPCBtaW5YKQorICAgICAgICB4ID0gbWluWDsKKyAgICBlbHNlIGlmICh4ID4gbWF4
WCkKKyAgICAgICAgeCA9IG1heFg7CiAKICAgICByZXR1cm4geDsKIH0KIAotdm9pZCBzZXRVcEZv
bnRGYW1pbGllcyhGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbiwgV2ViQ29yZTo6U2V0
dGluZ3MqIHNldHRpbmdzKQordm9pZCBzZXRVcEZvbnREZXNjcmlwdGlvbihGb250RGVzY3JpcHRp
b24mIGZvbnREZXNjcmlwdGlvbiwgV2ViQ29yZTo6U2V0dGluZ3MqIHNldHRpbmdzKQogewogI2Rl
ZmluZSBUT09MVElQX0ZPTlRfRkFNSUxJRVMoc2l6ZSwgLi4uKSBcCi1zdGF0aWMgdW5zaWduZWQg
dG9vbHRpcEZvbnRGYWNlU2l6ZSA9IHNpemU7XAorc3RhdGljIGNvbnN0IHVuc2lnbmVkIHRvb2x0
aXBGb250RmFjZVNpemUgPSBzaXplO1wKIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcqIHRvb2x0
aXBGb250RmFjZVtzaXplXSA9IHsgX19WQV9BUkdTX18gfTsKIAogI2lmIE9TKFdJTkRPV1MpCiBU
T09MVElQX0ZPTlRfRkFNSUxJRVMoMiwgbmV3IEF0b21pY1N0cmluZygiQ29uc29sYXMiKSwgbmV3
IEF0b21pY1N0cmluZygiTHVjaWRhIENvbnNvbGUiKSkKLSNlbGlmIE9TKFVOSVgpCi1UT09MVElQ
X0ZPTlRfRkFNSUxJRVMoMSwgbmV3IEF0b21pY1N0cmluZygiZGVqYXZ1IHNhbnMgbW9ubyIpKQog
I2VsaWYgT1MoTUFDX09TX1gpCiBUT09MVElQX0ZPTlRfRkFNSUxJRVMoMiwgbmV3IEF0b21pY1N0
cmluZygiTWVubG8iKSwgbmV3IEF0b21pY1N0cmluZygiTW9uYWNvIikpCisjZWxpZiBPUyhVTklY
KQorVE9PTFRJUF9GT05UX0ZBTUlMSUVTKDEsIG5ldyBBdG9taWNTdHJpbmcoImRlamF2dSBzYW5z
IG1vbm8iKSkKICNlbmRpZgogLy8gSW4gdGhlIGRlZmF1bHQgY2FzZSwgd2UgZ2V0IHRoZSBzZXR0
aW5ncy1wcm92aWRlZCBtb25vc3BhY2UgZm9udC4KIAogI3VuZGVmIFRPT0xUSVBfRk9OVF9GQU1J
TElFUwogCisgICAgZm9udERlc2NyaXB0aW9uLnNldFJlbmRlcmluZ01vZGUoc2V0dGluZ3MtPmZv
bnRSZW5kZXJpbmdNb2RlKCkpOworICAgIGZvbnREZXNjcmlwdGlvbi5zZXRDb21wdXRlZFNpemUo
Zm9udEhlaWdodFB4KTsKKwogICAgIGNvbnN0IEF0b21pY1N0cmluZyYgZml4ZWRGb250RmFtaWx5
ID0gc2V0dGluZ3MtPmZpeGVkRm9udEZhbWlseSgpOwogICAgIGlmICghZml4ZWRGb250RmFtaWx5
LmlzRW1wdHkoKSkgewogICAgICAgICBmb250RGVzY3JpcHRpb24uc2V0R2VuZXJpY0ZhbWlseShG
b250RGVzY3JpcHRpb246Ok1vbm9zcGFjZUZhbWlseSk7CkBAIC0yMTYsNyArMjI4LDcgQEAgVE9P
TFRJUF9GT05UX0ZBTUlMSUVTKDIsIG5ldyBBdG9taWNTdHJpbmcoIk1lbmxvIiksIG5ldyBBdG9t
aWNTdHJpbmcoIk1vbmFjbyIpKQogdm9pZCBkcmF3RWxlbWVudFRpdGxlKEdyYXBoaWNzQ29udGV4
dCYgY29udGV4dCwgTm9kZSogbm9kZSwgY29uc3QgTGF5b3V0UmVjdCYgYm91bmRpbmdCb3gsIGNv
bnN0IExheW91dFJlY3QmIGFuY2hvckJveCwgY29uc3QgRmxvYXRSZWN0JiBvdmVybGF5UmVjdCwg
V2ViQ29yZTo6U2V0dGluZ3MqIHNldHRpbmdzKQogewogCi0gICAgREVGSU5FX1NUQVRJQ19MT0NB
TChDb2xvciwgYmFja2dyb3VuZENvbG9yLCAoMjU1LCAyNTUsIDE5NCwgMjU1KSk7CisgICAgREVG
SU5FX1NUQVRJQ19MT0NBTChDb2xvciwgYmFja2dyb3VuZENvbG9yLCAoMjU1LCAyNTUsIDE5NCkp
OwogICAgIERFRklORV9TVEFUSUNfTE9DQUwoQ29sb3IsIHRhZ0NvbG9yLCAoMTM2LCAxOCwgMTI4
KSk7IC8vIFNhbWUgYXMgLndlYmtpdC1odG1sLXRhZy4KICAgICBERUZJTkVfU1RBVElDX0xPQ0FM
KENvbG9yLCBhdHRyQ29sb3IsICgyNiwgMjYsIDE2NikpOyAvLyBTYW1lIGFzIC53ZWJraXQtaHRt
bC1hdHRyaWJ1dGUtdmFsdWUuCiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChDb2xvciwgbm9ybWFs
Q29sb3IsIChDb2xvcjo6YmxhY2spKTsKQEAgLTI2NSw5ICsyNzcsNyBAQCB2b2lkIGRyYXdFbGVt
ZW50VGl0bGUoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBOb2RlKiBub2RlLCBjb25zdCBMYXlv
dXRSZWN0JiBibwogICAgIG5vZGVUaXRsZSArPSBoZWlnaHROdW1iZXJQYXJ0ICsgcHhTdHJpbmc7
CiAKICAgICBGb250RGVzY3JpcHRpb24gZGVzYzsKLSAgICBkZXNjLnNldFJlbmRlcmluZ01vZGUo
c2V0dGluZ3MtPmZvbnRSZW5kZXJpbmdNb2RlKCkpOwotICAgIGRlc2Muc2V0Q29tcHV0ZWRTaXpl
KGZvbnRIZWlnaHRQeCk7Ci0gICAgc2V0VXBGb250RmFtaWxpZXMoZGVzYywgc2V0dGluZ3MpOwor
ICAgIHNldFVwRm9udERlc2NyaXB0aW9uKGRlc2MsIHNldHRpbmdzKTsKICAgICBGb250IGZvbnQg
PSBGb250KGRlc2MsIDAsIDApOwogICAgIGZvbnQudXBkYXRlKDApOwogCkBAIC0yODIsNyArMjky
LDcgQEAgdm9pZCBkcmF3RWxlbWVudFRpdGxlKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgTm9k
ZSogbm9kZSwgY29uc3QgTGF5b3V0UmVjdCYgYm8KICAgICBMYXlvdXRVbml0IGR5ID0gYm9yZGVy
V2lkdGhQeDsKIAogICAgIC8vIElmIHRoZSB0aXAgc3RpY2tzIGJleW9uZCB0aGUgcmlnaHQgb2Yg
b3ZlcmxheVJlY3QsIHJpZ2h0LWFsaWduIHRoZSB0aXAgd2l0aCB0aGUgc2FpZCBib3VuZGFyeS4K
LSAgICBpZiAodGl0bGVSZWN0Lm1heFgoKSA+IG92ZXJsYXlSZWN0Lm1heFgoKSkKKyAgICBpZiAo
dGl0bGVSZWN0Lm1heFgoKSArIGR4ID4gb3ZlcmxheVJlY3QubWF4WCgpKQogICAgICAgICBkeCA9
IG92ZXJsYXlSZWN0Lm1heFgoKSAtIHRpdGxlUmVjdC5tYXhYKCk7CiAKICAgICAvLyBJZiB0aGUg
dGlwIHN0aWNrcyBiZXlvbmQgdGhlIGxlZnQgb2Ygb3ZlcmxheVJlY3QsIGxlZnQtYWxpZ24gdGhl
IHRpcCB3aXRoIHRoZSBzYWlkIGJvdW5kYXJ5LgpAQCAtMjkwLDcgKzMwMCw3IEBAIHZvaWQgZHJh
d0VsZW1lbnRUaXRsZShHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIE5vZGUqIG5vZGUsIGNvbnN0
IExheW91dFJlY3QmIGJvCiAgICAgICAgIGR4ID0gb3ZlcmxheVJlY3QueCgpIC0gdGl0bGVSZWN0
LngoKSAtIGJvcmRlcldpZHRoUHg7CiAKICAgICAvLyBJZiB0aGUgdGlwIHN0aWNrcyBiZXlvbmQg
dGhlIGJvdHRvbSBvZiBvdmVybGF5UmVjdCwgc2hvdyB0aGUgdGlwIGF0IHRvcCBvZiBib3VuZGlu
ZyBib3guCi0gICAgaWYgKHRpdGxlUmVjdC5tYXhZKCkgPiBvdmVybGF5UmVjdC5tYXhZKCkpIHsK
KyAgICBpZiAodGl0bGVSZWN0Lm1heFkoKSArIGR5ID4gb3ZlcmxheVJlY3QubWF4WSgpKSB7CiAg
ICAgICAgIGR5ID0gYW5jaG9yQm94LnkoKSAtIHRpdGxlUmVjdC5tYXhZKCkgLSBib3JkZXJXaWR0
aFB4OwogICAgICAgICAvLyBJZiB0aGUgdGlwIHN0aWxsIHN0aWNrcyBiZXlvbmQgdGhlIGJvdHRv
bSBvZiBvdmVybGF5UmVjdCwgYm90dG9tLWFsaWduIHRoZSB0aXAgd2l0aCB0aGUgc2FpZCBib3Vu
ZGFyeS4KICAgICAgICAgaWYgKHRpdGxlUmVjdC5tYXhZKCkgKyBkeSA+IG92ZXJsYXlSZWN0Lm1h
eFkoKSkKQEAgLTMwNiwyNiArMzE2LDM0IEBAIHZvaWQgZHJhd0VsZW1lbnRUaXRsZShHcmFwaGlj
c0NvbnRleHQmIGNvbnRleHQsIE5vZGUqIG5vZGUsIGNvbnN0IExheW91dFJlY3QmIGJvCiAgICAg
Ym9vbCBpc0Fycm93QXRUb3AgPSB0aXRsZVJlY3QueSgpID4gYW5jaG9yQm94LnkoKTsKICAgICB0
aXRsZVJlY3QubW92ZSgwLCB0b29sdGlwUGFkZGluZyAqIChpc0Fycm93QXRUb3AgPyAxIDogLTEp
KTsKIAotICAgIGNvbnRleHQuc2V0U3Ryb2tlQ29sb3IocHhBbmRCb3JkZXJDb2xvciwgQ29sb3JT
cGFjZURldmljZVJHQik7Ci0gICAgY29udGV4dC5zZXRTdHJva2VUaGlja25lc3MoYm9yZGVyV2lk
dGhQeCk7Ci0gICAgY29udGV4dC5zZXRGaWxsQ29sb3IoYmFja2dyb3VuZENvbG9yLCBDb2xvclNw
YWNlRGV2aWNlUkdCKTsKLSAgICBjb250ZXh0LmRyYXdSZWN0KHRpdGxlUmVjdCk7Ci0KICAgICB7
Ci0gICAgICAgIGludCBhcnJvd1RpcFggPSBjYWxjdWxhdGVBcnJvd1RpcFgoYW5jaG9yQm94LCB0
aXRsZVJlY3QpOwotICAgICAgICBGbG9hdFBvaW50IGFycm93UG9pbnRzWzNdOwotICAgICAgICBm
bG9hdCBhcnJvd0Jhc2VZID0gaXNBcnJvd0F0VG9wID8gdGl0bGVSZWN0LnkoKSA6IHRpdGxlUmVj
dC5tYXhZKCk7Ci0gICAgICAgIGFycm93UG9pbnRzWzBdID0gRmxvYXRQb2ludChhcnJvd1RpcFgg
LSBhcnJvd0hhbGZXaWR0aCwgYXJyb3dCYXNlWSk7Ci0gICAgICAgIGFycm93UG9pbnRzWzFdID0g
RmxvYXRQb2ludChhcnJvd1RpcFgsIGFycm93QmFzZVkgKyBhcnJvd0hlaWdodCAqIChpc0Fycm93
QXRUb3AgPyAtMSA6IDEpKTsKLSAgICAgICAgYXJyb3dQb2ludHNbMl0gPSBGbG9hdFBvaW50KGFy
cm93VGlwWCArIGFycm93SGFsZldpZHRoLCBhcnJvd0Jhc2VZKTsKLSAgICAgICAgY29udGV4dC5k
cmF3Q29udmV4UG9seWdvbigzLCBhcnJvd1BvaW50cyk7Ci0KLSAgICAgICAgY29udGV4dC5zZXRT
dHJva2VDb2xvcihiYWNrZ3JvdW5kQ29sb3IsIENvbG9yU3BhY2VEZXZpY2VSR0IpOworICAgICAg
ICBmbG9hdCBhcnJvd1RpcFggPSBjYWxjdWxhdGVBcnJvd1RpcFgoYW5jaG9yQm94LCB0aXRsZVJl
Y3QpOworICAgICAgICBpbnQgYXJyb3dCYXNlWSA9IGlzQXJyb3dBdFRvcCA/IHRpdGxlUmVjdC55
KCkgOiB0aXRsZVJlY3QubWF4WSgpOworICAgICAgICBpbnQgYXJyb3dPcHBvc2l0ZVkgPSBpc0Fy
cm93QXRUb3AgPyB0aXRsZVJlY3QubWF4WSgpIDogdGl0bGVSZWN0LnkoKTsKKworICAgICAgICBG
bG9hdFBvaW50IHBvaW50c1s4XTsKKyAgICAgICAgcG9pbnRzWzBdID0gRmxvYXRQb2ludChhcnJv
d1RpcFggLSBhcnJvd0hhbGZXaWR0aCwgYXJyb3dCYXNlWSk7CisgICAgICAgIHBvaW50c1sxXSA9
IEZsb2F0UG9pbnQoYXJyb3dUaXBYLCBhcnJvd0Jhc2VZICsgYXJyb3dIZWlnaHQgKiAoaXNBcnJv
d0F0VG9wID8gLTEgOiAxKSk7CisgICAgICAgIHBvaW50c1syXSA9IEZsb2F0UG9pbnQoYXJyb3dU
aXBYICsgYXJyb3dIYWxmV2lkdGgsIGFycm93QmFzZVkpOworICAgICAgICBwb2ludHNbM10gPSBG
bG9hdFBvaW50KHRpdGxlUmVjdC5tYXhYKCksIGFycm93QmFzZVkpOworICAgICAgICBwb2ludHNb
NF0gPSBGbG9hdFBvaW50KHRpdGxlUmVjdC5tYXhYKCksIGFycm93T3Bwb3NpdGVZKTsKKyAgICAg
ICAgcG9pbnRzWzVdID0gRmxvYXRQb2ludCh0aXRsZVJlY3QueCgpLCBhcnJvd09wcG9zaXRlWSk7
CisgICAgICAgIHBvaW50c1s2XSA9IEZsb2F0UG9pbnQodGl0bGVSZWN0LngoKSwgYXJyb3dCYXNl
WSk7CisgICAgICAgIHBvaW50c1s3XSA9IHBvaW50c1swXTsKKworICAgICAgICBQYXRoIHBhdGg7
CisgICAgICAgIHBhdGgubW92ZVRvKHBvaW50c1swXSk7CisgICAgICAgIGZvciAoaW50IGkgPSAx
OyBpIDwgODsgKytpKQorICAgICAgICAgICAgcGF0aC5hZGRMaW5lVG8ocG9pbnRzW2ldKTsKKwor
ICAgICAgICBjb250ZXh0LnNhdmUoKTsKKyAgICAgICAgY29udGV4dC50cmFuc2xhdGUoMC41Ziwg
MC41Zik7CisgICAgICAgIGNvbnRleHQuc2V0U3Ryb2tlQ29sb3IocHhBbmRCb3JkZXJDb2xvciwg
Q29sb3JTcGFjZURldmljZVJHQik7CiAgICAgICAgIGNvbnRleHQuc2V0RmlsbENvbG9yKGJhY2tn
cm91bmRDb2xvciwgQ29sb3JTcGFjZURldmljZVJHQik7Ci0gICAgICAgIGNvbnRleHQuc2V0U3Ry
b2tlVGhpY2tuZXNzKGJvcmRlcldpZHRoUHggKyAxKTsKLSAgICAgICAgTGF5b3V0UG9pbnQgc3Rh
cnRQb2ludCA9IExheW91dFBvaW50KGFycm93UG9pbnRzWzBdLngoKSArIDEsIGFycm93UG9pbnRz
WzBdLnkoKSk7Ci0gICAgICAgIExheW91dFBvaW50IGVuZFBvaW50ID0gTGF5b3V0UG9pbnQoYXJy
b3dQb2ludHNbMl0ueCgpIC0gMSwgYXJyb3dQb2ludHNbMl0ueSgpKTsKLSAgICAgICAgY29udGV4
dC5kcmF3TGluZShzdGFydFBvaW50LCBlbmRQb2ludCk7CisgICAgICAgIGNvbnRleHQuc2V0U3Ry
b2tlVGhpY2tuZXNzKGJvcmRlcldpZHRoUHgpOworICAgICAgICBjb250ZXh0LmZpbGxQYXRoKHBh
dGgpOworICAgICAgICBjb250ZXh0LnN0cm9rZVBhdGgocGF0aCk7CisgICAgICAgIGNvbnRleHQu
cmVzdG9yZSgpOwogICAgIH0KIAogICAgIGludCBjdXJyZW50UG9zID0gMDsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>105158</attachid>
            <date>2011-08-25 03:17:29 -0700</date>
            <delta_ts>2011-08-25 03:32:23 -0700</delta_ts>
            <desc>[PATCH] For EWS (bug reopened)</desc>
            <filename>highlightfix.patch</filename>
            <type>text/plain</type>
            <size>9165</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">Y29tbWl0IDIwNDNmMTBiZDg3NGRlMDI4ZjBmYmUzMzk4NzM0NDZhNjRhNzZlNGIKQXV0aG9yOiBh
cGF2bG92QGNocm9taXVtLm9yZyA8YXBhdmxvdkBjaHJvbWl1bS5vcmdAMjY4ZjQ1Y2MtY2QwOS0w
NDEwLWFiM2MtZDUyNjkxYjRkYmZjPgpEYXRlOiAgIFRodSBBdWcgMjUgMDk6NTI6NDggMjAxMSAr
MDAwMAoKICAgIEZpeAoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBjMDYwMDY2Li4wNWI1ZjgxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMDgtMjQgIEFsZXhhbmRlciBQYXZsb3YgIDxhcGF2bG92
QGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBEaXJlY3Rpb25hbCBhcnJv
dyBvbiBlbGVtZW50IGluZm8gYm94IGxvb2tzIHRlcnJpYmxlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NjgxOQorCisgICAgICAgIEJlYXV0aWZ5IHRo
ZSB0b29sdGlwIGFycm93LCBnaXZlIGl0IGEgYmV0dGVyIGFsaWdubWVudCBpbiBzb21lIGVkZ2Ug
Y2FzZXMsCisgICAgICAgIGFuZCBmaXggdGhlIHRvb2x0aXAgZm9udCBvbiBNYWNzLgorCisgICAg
ICAgIFJldmlld2VkIGJ5IFBhdmVsIEZlbGRtYW4uCisKKyAgICAgICAgKiBpbnNwZWN0b3IvRE9N
Tm9kZUhpZ2hsaWdodGVyLmNwcDoKKwogMjAxMS0wOC0yNSAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxk
bWFuQGdvb2dsZS5jb20+CiAKICAgICAgICAgTm90IHJldmlld2VkOiByb2xsb3V0IHI5Mzc2OCBm
b3IgYnJlYWtpbmcgYnVpbGQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
RE9NTm9kZUhpZ2hsaWdodGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9ET01Ob2Rl
SGlnaGxpZ2h0ZXIuY3BwCmluZGV4IDc5ZmUzNDIuLjc4NjFlMzYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9ET01Ob2RlSGlnaGxpZ2h0ZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9ET01Ob2RlSGlnaGxpZ2h0ZXIuY3BwCkBAIC0zNyw2ICszNyw3IEBA
CiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKICNpbmNsdWRlICJH
cmFwaGljc0NvbnRleHQuaCIKKyNpbmNsdWRlICJHcmFwaGljc1R5cGVzLmgiCiAjaW5jbHVkZSAi
Tm9kZS5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJSYW5nZS5oIgpAQCAtNDksMTQg
KzUwLDE5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogbmFtZXNwYWNlIHsKIAorI2lmIE9TKFdJ
TkRPV1MpCitzdGF0aWMgY29uc3QgdW5zaWduZWQgZm9udEhlaWdodFB4ID0gMTI7CisjZWxpZiBP
UyhNQUNfT1NfWCkgfHwgT1MoVU5JWCkKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBmb250SGVpZ2h0
UHggPSAxMTsKKyNlbmRpZgorCiBjb25zdCBzdGF0aWMgaW50IHJlY3RJbmZsYXRlUHggPSA0Owot
Y29uc3Qgc3RhdGljIGludCBmb250SGVpZ2h0UHggPSAxMjsKIGNvbnN0IHN0YXRpYyBpbnQgYm9y
ZGVyV2lkdGhQeCA9IDE7CiBjb25zdCBzdGF0aWMgaW50IHRvb2x0aXBQYWRkaW5nID0gNDsKIAog
Y29uc3Qgc3RhdGljIGludCBhcnJvd1RpcE9mZnNldCA9IDIwOwotY29uc3Qgc3RhdGljIGludCBh
cnJvd0hlaWdodCA9IDc7Ci1jb25zdCBzdGF0aWMgaW50IGFycm93SGFsZldpZHRoID0gNzsKK2Nv
bnN0IHN0YXRpYyBmbG9hdCBhcnJvd0hlaWdodCA9IDc7Citjb25zdCBzdGF0aWMgZmxvYXQgYXJy
b3dIYWxmV2lkdGggPSA3OwogCiBQYXRoIHF1YWRUb1BhdGgoY29uc3QgRmxvYXRRdWFkJiBxdWFk
KQogewpAQCAtMTUzLDQzICsxNTksNDkgQEAgaW50IGRyYXdTdWJzdHJpbmcoY29uc3QgVGV4dFJ1
biYgZ2xvYmFsVGV4dFJ1biwgaW50IG9mZnNldCwgaW50IGxlbmd0aCwgY29uc3QgQ28KICAgICBy
ZXR1cm4gb2Zmc2V0ICsgbGVuZ3RoOwogfQogCi1pbnQgY2FsY3VsYXRlQXJyb3dUaXBYKGNvbnN0
IExheW91dFJlY3QmIGFuY2hvckJveCwgY29uc3QgTGF5b3V0UmVjdCYgdGl0bGVSZWN0KQorZmxv
YXQgY2FsY3VsYXRlQXJyb3dUaXBYKGNvbnN0IExheW91dFJlY3QmIGFuY2hvckJveCwgY29uc3Qg
TGF5b3V0UmVjdCYgdGl0bGVSZWN0KQogewotICAgIGludCBhbmNob3JYID0gYW5jaG9yQm94Lngo
KTsKKyAgICBjb25zdCBzdGF0aWMgaW50IGFuY2hvclRpcE9mZnNldFB4ID0gMjsKIAotICAgIC8v
IENoZWNrIGZvciBoZWF2aWx5IG1pc2FsaWduZWQgdG9vbHRpcCBmaXJzdC4KLSAgICBpZiAodGl0
bGVSZWN0LngoKSA+IGFuY2hvckJveC5tYXhYKCkpCi0gICAgICAgIHJldHVybiB0aXRsZVJlY3Qu
eCgpICsgYXJyb3dIYWxmV2lkdGg7Ci0KLSAgICBpZiAodGl0bGVSZWN0Lm1heFgoKSA8IGFuY2hv
clgpCi0gICAgICAgIHJldHVybiB0aXRsZVJlY3QubWF4WCgpIC0gYXJyb3dIYWxmV2lkdGg7Cisg
ICAgaW50IG1pblggPSB0aXRsZVJlY3QueCgpICsgYXJyb3dIYWxmV2lkdGg7CisgICAgaW50IG1h
eFggPSB0aXRsZVJlY3QubWF4WCgpIC0gYXJyb3dIYWxmV2lkdGg7CisgICAgaW50IGFuY2hvclgg
PSBhbmNob3JCb3gueCgpOworICAgIGludCBhbmNob3JNYXhYID0gYW5jaG9yQm94Lm1heFgoKTsK
IAotICAgIGludCB4ID0gdGl0bGVSZWN0LngoKSArIGFycm93VGlwT2Zmc2V0OworICAgIGludCB4
ID0gdGl0bGVSZWN0LngoKSArIGFycm93VGlwT2Zmc2V0OyAvLyBEZWZhdWx0IHRvb2x0aXAgcG9z
aXRpb24uCiAgICAgaWYgKHggPCBhbmNob3JYKQotICAgICAgICB4ID0gYW5jaG9yWCArIGFycm93
VGlwT2Zmc2V0OwotICAgIGlmICh4ID4gdGl0bGVSZWN0Lm1heFgoKSAtIGFycm93SGFsZldpZHRo
KQotICAgICAgICB4ID0gdGl0bGVSZWN0Lm1heFgoKSAtIGFycm93SGFsZldpZHRoOworICAgICAg
ICB4ID0gYW5jaG9yWCArIGFuY2hvclRpcE9mZnNldFB4OworICAgIGVsc2UgaWYgKHggPiBhbmNo
b3JNYXhYKQorICAgICAgICB4ID0gYW5jaG9yTWF4WCAtIGFuY2hvclRpcE9mZnNldFB4OworCisg
ICAgaWYgKHggPCBtaW5YKQorICAgICAgICB4ID0gbWluWDsKKyAgICBlbHNlIGlmICh4ID4gbWF4
WCkKKyAgICAgICAgeCA9IG1heFg7CiAKICAgICByZXR1cm4geDsKIH0KIAotdm9pZCBzZXRVcEZv
bnRGYW1pbGllcyhGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbiwgV2ViQ29yZTo6U2V0
dGluZ3MqIHNldHRpbmdzKQordm9pZCBzZXRVcEZvbnREZXNjcmlwdGlvbihGb250RGVzY3JpcHRp
b24mIGZvbnREZXNjcmlwdGlvbiwgV2ViQ29yZTo6U2V0dGluZ3MqIHNldHRpbmdzKQogewogI2Rl
ZmluZSBUT09MVElQX0ZPTlRfRkFNSUxJRVMoc2l6ZSwgLi4uKSBcCi1zdGF0aWMgdW5zaWduZWQg
dG9vbHRpcEZvbnRGYWNlU2l6ZSA9IHNpemU7XAorc3RhdGljIGNvbnN0IHVuc2lnbmVkIHRvb2x0
aXBGb250RmFjZVNpemUgPSBzaXplO1wKIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcqIHRvb2x0
aXBGb250RmFjZVtzaXplXSA9IHsgX19WQV9BUkdTX18gfTsKIAogI2lmIE9TKFdJTkRPV1MpCiBU
T09MVElQX0ZPTlRfRkFNSUxJRVMoMiwgbmV3IEF0b21pY1N0cmluZygiQ29uc29sYXMiKSwgbmV3
IEF0b21pY1N0cmluZygiTHVjaWRhIENvbnNvbGUiKSkKLSNlbGlmIE9TKFVOSVgpCi1UT09MVElQ
X0ZPTlRfRkFNSUxJRVMoMSwgbmV3IEF0b21pY1N0cmluZygiZGVqYXZ1IHNhbnMgbW9ubyIpKQog
I2VsaWYgT1MoTUFDX09TX1gpCiBUT09MVElQX0ZPTlRfRkFNSUxJRVMoMiwgbmV3IEF0b21pY1N0
cmluZygiTWVubG8iKSwgbmV3IEF0b21pY1N0cmluZygiTW9uYWNvIikpCisjZWxpZiBPUyhVTklY
KQorVE9PTFRJUF9GT05UX0ZBTUlMSUVTKDEsIG5ldyBBdG9taWNTdHJpbmcoImRlamF2dSBzYW5z
IG1vbm8iKSkKICNlbmRpZgogLy8gSW4gdGhlIGRlZmF1bHQgY2FzZSwgd2UgZ2V0IHRoZSBzZXR0
aW5ncy1wcm92aWRlZCBtb25vc3BhY2UgZm9udC4KIAogI3VuZGVmIFRPT0xUSVBfRk9OVF9GQU1J
TElFUwogCisgICAgZm9udERlc2NyaXB0aW9uLnNldFJlbmRlcmluZ01vZGUoc2V0dGluZ3MtPmZv
bnRSZW5kZXJpbmdNb2RlKCkpOworICAgIGZvbnREZXNjcmlwdGlvbi5zZXRDb21wdXRlZFNpemUo
Zm9udEhlaWdodFB4KTsKKwogICAgIGNvbnN0IEF0b21pY1N0cmluZyYgZml4ZWRGb250RmFtaWx5
ID0gc2V0dGluZ3MtPmZpeGVkRm9udEZhbWlseSgpOwogICAgIGlmICghZml4ZWRGb250RmFtaWx5
LmlzRW1wdHkoKSkgewogICAgICAgICBmb250RGVzY3JpcHRpb24uc2V0R2VuZXJpY0ZhbWlseShG
b250RGVzY3JpcHRpb246Ok1vbm9zcGFjZUZhbWlseSk7CkBAIC0yMTYsNyArMjI4LDcgQEAgVE9P
TFRJUF9GT05UX0ZBTUlMSUVTKDIsIG5ldyBBdG9taWNTdHJpbmcoIk1lbmxvIiksIG5ldyBBdG9t
aWNTdHJpbmcoIk1vbmFjbyIpKQogdm9pZCBkcmF3RWxlbWVudFRpdGxlKEdyYXBoaWNzQ29udGV4
dCYgY29udGV4dCwgTm9kZSogbm9kZSwgY29uc3QgTGF5b3V0UmVjdCYgYm91bmRpbmdCb3gsIGNv
bnN0IExheW91dFJlY3QmIGFuY2hvckJveCwgY29uc3QgRmxvYXRSZWN0JiBvdmVybGF5UmVjdCwg
V2ViQ29yZTo6U2V0dGluZ3MqIHNldHRpbmdzKQogewogCi0gICAgREVGSU5FX1NUQVRJQ19MT0NB
TChDb2xvciwgYmFja2dyb3VuZENvbG9yLCAoMjU1LCAyNTUsIDE5NCwgMjU1KSk7CisgICAgREVG
SU5FX1NUQVRJQ19MT0NBTChDb2xvciwgYmFja2dyb3VuZENvbG9yLCAoMjU1LCAyNTUsIDE5NCkp
OwogICAgIERFRklORV9TVEFUSUNfTE9DQUwoQ29sb3IsIHRhZ0NvbG9yLCAoMTM2LCAxOCwgMTI4
KSk7IC8vIFNhbWUgYXMgLndlYmtpdC1odG1sLXRhZy4KICAgICBERUZJTkVfU1RBVElDX0xPQ0FM
KENvbG9yLCBhdHRyQ29sb3IsICgyNiwgMjYsIDE2NikpOyAvLyBTYW1lIGFzIC53ZWJraXQtaHRt
bC1hdHRyaWJ1dGUtdmFsdWUuCiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChDb2xvciwgbm9ybWFs
Q29sb3IsIChDb2xvcjo6YmxhY2spKTsKQEAgLTI2NSw5ICsyNzcsNyBAQCB2b2lkIGRyYXdFbGVt
ZW50VGl0bGUoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBOb2RlKiBub2RlLCBjb25zdCBMYXlv
dXRSZWN0JiBibwogICAgIG5vZGVUaXRsZSArPSBoZWlnaHROdW1iZXJQYXJ0ICsgcHhTdHJpbmc7
CiAKICAgICBGb250RGVzY3JpcHRpb24gZGVzYzsKLSAgICBkZXNjLnNldFJlbmRlcmluZ01vZGUo
c2V0dGluZ3MtPmZvbnRSZW5kZXJpbmdNb2RlKCkpOwotICAgIGRlc2Muc2V0Q29tcHV0ZWRTaXpl
KGZvbnRIZWlnaHRQeCk7Ci0gICAgc2V0VXBGb250RmFtaWxpZXMoZGVzYywgc2V0dGluZ3MpOwor
ICAgIHNldFVwRm9udERlc2NyaXB0aW9uKGRlc2MsIHNldHRpbmdzKTsKICAgICBGb250IGZvbnQg
PSBGb250KGRlc2MsIDAsIDApOwogICAgIGZvbnQudXBkYXRlKDApOwogCkBAIC0yODIsNyArMjky
LDcgQEAgdm9pZCBkcmF3RWxlbWVudFRpdGxlKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgTm9k
ZSogbm9kZSwgY29uc3QgTGF5b3V0UmVjdCYgYm8KICAgICBMYXlvdXRVbml0IGR5ID0gYm9yZGVy
V2lkdGhQeDsKIAogICAgIC8vIElmIHRoZSB0aXAgc3RpY2tzIGJleW9uZCB0aGUgcmlnaHQgb2Yg
b3ZlcmxheVJlY3QsIHJpZ2h0LWFsaWduIHRoZSB0aXAgd2l0aCB0aGUgc2FpZCBib3VuZGFyeS4K
LSAgICBpZiAodGl0bGVSZWN0Lm1heFgoKSA+IG92ZXJsYXlSZWN0Lm1heFgoKSkKKyAgICBpZiAo
dGl0bGVSZWN0Lm1heFgoKSArIGR4ID4gb3ZlcmxheVJlY3QubWF4WCgpKQogICAgICAgICBkeCA9
IG92ZXJsYXlSZWN0Lm1heFgoKSAtIHRpdGxlUmVjdC5tYXhYKCk7CiAKICAgICAvLyBJZiB0aGUg
dGlwIHN0aWNrcyBiZXlvbmQgdGhlIGxlZnQgb2Ygb3ZlcmxheVJlY3QsIGxlZnQtYWxpZ24gdGhl
IHRpcCB3aXRoIHRoZSBzYWlkIGJvdW5kYXJ5LgpAQCAtMjkwLDcgKzMwMCw3IEBAIHZvaWQgZHJh
d0VsZW1lbnRUaXRsZShHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIE5vZGUqIG5vZGUsIGNvbnN0
IExheW91dFJlY3QmIGJvCiAgICAgICAgIGR4ID0gb3ZlcmxheVJlY3QueCgpIC0gdGl0bGVSZWN0
LngoKSAtIGJvcmRlcldpZHRoUHg7CiAKICAgICAvLyBJZiB0aGUgdGlwIHN0aWNrcyBiZXlvbmQg
dGhlIGJvdHRvbSBvZiBvdmVybGF5UmVjdCwgc2hvdyB0aGUgdGlwIGF0IHRvcCBvZiBib3VuZGlu
ZyBib3guCi0gICAgaWYgKHRpdGxlUmVjdC5tYXhZKCkgPiBvdmVybGF5UmVjdC5tYXhZKCkpIHsK
KyAgICBpZiAodGl0bGVSZWN0Lm1heFkoKSArIGR5ID4gb3ZlcmxheVJlY3QubWF4WSgpKSB7CiAg
ICAgICAgIGR5ID0gYW5jaG9yQm94LnkoKSAtIHRpdGxlUmVjdC5tYXhZKCkgLSBib3JkZXJXaWR0
aFB4OwogICAgICAgICAvLyBJZiB0aGUgdGlwIHN0aWxsIHN0aWNrcyBiZXlvbmQgdGhlIGJvdHRv
bSBvZiBvdmVybGF5UmVjdCwgYm90dG9tLWFsaWduIHRoZSB0aXAgd2l0aCB0aGUgc2FpZCBib3Vu
ZGFyeS4KICAgICAgICAgaWYgKHRpdGxlUmVjdC5tYXhZKCkgKyBkeSA+IG92ZXJsYXlSZWN0Lm1h
eFkoKSkKQEAgLTMwNiwyNiArMzE2LDM0IEBAIHZvaWQgZHJhd0VsZW1lbnRUaXRsZShHcmFwaGlj
c0NvbnRleHQmIGNvbnRleHQsIE5vZGUqIG5vZGUsIGNvbnN0IExheW91dFJlY3QmIGJvCiAgICAg
Ym9vbCBpc0Fycm93QXRUb3AgPSB0aXRsZVJlY3QueSgpID4gYW5jaG9yQm94LnkoKTsKICAgICB0
aXRsZVJlY3QubW92ZSgwLCB0b29sdGlwUGFkZGluZyAqIChpc0Fycm93QXRUb3AgPyAxIDogLTEp
KTsKIAotICAgIGNvbnRleHQuc2V0U3Ryb2tlQ29sb3IocHhBbmRCb3JkZXJDb2xvciwgQ29sb3JT
cGFjZURldmljZVJHQik7Ci0gICAgY29udGV4dC5zZXRTdHJva2VUaGlja25lc3MoYm9yZGVyV2lk
dGhQeCk7Ci0gICAgY29udGV4dC5zZXRGaWxsQ29sb3IoYmFja2dyb3VuZENvbG9yLCBDb2xvclNw
YWNlRGV2aWNlUkdCKTsKLSAgICBjb250ZXh0LmRyYXdSZWN0KHRpdGxlUmVjdCk7Ci0KICAgICB7
Ci0gICAgICAgIGludCBhcnJvd1RpcFggPSBjYWxjdWxhdGVBcnJvd1RpcFgoYW5jaG9yQm94LCB0
aXRsZVJlY3QpOwotICAgICAgICBGbG9hdFBvaW50IGFycm93UG9pbnRzWzNdOwotICAgICAgICBm
bG9hdCBhcnJvd0Jhc2VZID0gaXNBcnJvd0F0VG9wID8gdGl0bGVSZWN0LnkoKSA6IHRpdGxlUmVj
dC5tYXhZKCk7Ci0gICAgICAgIGFycm93UG9pbnRzWzBdID0gRmxvYXRQb2ludChhcnJvd1RpcFgg
LSBhcnJvd0hhbGZXaWR0aCwgYXJyb3dCYXNlWSk7Ci0gICAgICAgIGFycm93UG9pbnRzWzFdID0g
RmxvYXRQb2ludChhcnJvd1RpcFgsIGFycm93QmFzZVkgKyBhcnJvd0hlaWdodCAqIChpc0Fycm93
QXRUb3AgPyAtMSA6IDEpKTsKLSAgICAgICAgYXJyb3dQb2ludHNbMl0gPSBGbG9hdFBvaW50KGFy
cm93VGlwWCArIGFycm93SGFsZldpZHRoLCBhcnJvd0Jhc2VZKTsKLSAgICAgICAgY29udGV4dC5k
cmF3Q29udmV4UG9seWdvbigzLCBhcnJvd1BvaW50cyk7Ci0KLSAgICAgICAgY29udGV4dC5zZXRT
dHJva2VDb2xvcihiYWNrZ3JvdW5kQ29sb3IsIENvbG9yU3BhY2VEZXZpY2VSR0IpOworICAgICAg
ICBmbG9hdCBhcnJvd1RpcFggPSBjYWxjdWxhdGVBcnJvd1RpcFgoYW5jaG9yQm94LCB0aXRsZVJl
Y3QpOworICAgICAgICBpbnQgYXJyb3dCYXNlWSA9IGlzQXJyb3dBdFRvcCA/IHRpdGxlUmVjdC55
KCkgOiB0aXRsZVJlY3QubWF4WSgpOworICAgICAgICBpbnQgYXJyb3dPcHBvc2l0ZVkgPSBpc0Fy
cm93QXRUb3AgPyB0aXRsZVJlY3QubWF4WSgpIDogdGl0bGVSZWN0LnkoKTsKKworICAgICAgICBG
bG9hdFBvaW50IHBvaW50c1s4XTsKKyAgICAgICAgcG9pbnRzWzBdID0gRmxvYXRQb2ludChhcnJv
d1RpcFggLSBhcnJvd0hhbGZXaWR0aCwgYXJyb3dCYXNlWSk7CisgICAgICAgIHBvaW50c1sxXSA9
IEZsb2F0UG9pbnQoYXJyb3dUaXBYLCBhcnJvd0Jhc2VZICsgYXJyb3dIZWlnaHQgKiAoaXNBcnJv
d0F0VG9wID8gLTEgOiAxKSk7CisgICAgICAgIHBvaW50c1syXSA9IEZsb2F0UG9pbnQoYXJyb3dU
aXBYICsgYXJyb3dIYWxmV2lkdGgsIGFycm93QmFzZVkpOworICAgICAgICBwb2ludHNbM10gPSBG
bG9hdFBvaW50KHRpdGxlUmVjdC5tYXhYKCksIGFycm93QmFzZVkpOworICAgICAgICBwb2ludHNb
NF0gPSBGbG9hdFBvaW50KHRpdGxlUmVjdC5tYXhYKCksIGFycm93T3Bwb3NpdGVZKTsKKyAgICAg
ICAgcG9pbnRzWzVdID0gRmxvYXRQb2ludCh0aXRsZVJlY3QueCgpLCBhcnJvd09wcG9zaXRlWSk7
CisgICAgICAgIHBvaW50c1s2XSA9IEZsb2F0UG9pbnQodGl0bGVSZWN0LngoKSwgYXJyb3dCYXNl
WSk7CisgICAgICAgIHBvaW50c1s3XSA9IHBvaW50c1swXTsKKworICAgICAgICBQYXRoIHBhdGg7
CisgICAgICAgIHBhdGgubW92ZVRvKHBvaW50c1swXSk7CisgICAgICAgIGZvciAoaW50IGkgPSAx
OyBpIDwgODsgKytpKQorICAgICAgICAgICAgcGF0aC5hZGRMaW5lVG8ocG9pbnRzW2ldKTsKKwor
ICAgICAgICBjb250ZXh0LnNhdmUoKTsKKyAgICAgICAgY29udGV4dC50cmFuc2xhdGUoMC41Ziwg
MC41Zik7CisgICAgICAgIGNvbnRleHQuc2V0U3Ryb2tlQ29sb3IocHhBbmRCb3JkZXJDb2xvciwg
Q29sb3JTcGFjZURldmljZVJHQik7CiAgICAgICAgIGNvbnRleHQuc2V0RmlsbENvbG9yKGJhY2tn
cm91bmRDb2xvciwgQ29sb3JTcGFjZURldmljZVJHQik7Ci0gICAgICAgIGNvbnRleHQuc2V0U3Ry
b2tlVGhpY2tuZXNzKGJvcmRlcldpZHRoUHggKyAxKTsKLSAgICAgICAgTGF5b3V0UG9pbnQgc3Rh
cnRQb2ludCA9IExheW91dFBvaW50KGFycm93UG9pbnRzWzBdLngoKSArIDEsIGFycm93UG9pbnRz
WzBdLnkoKSk7Ci0gICAgICAgIExheW91dFBvaW50IGVuZFBvaW50ID0gTGF5b3V0UG9pbnQoYXJy
b3dQb2ludHNbMl0ueCgpIC0gMSwgYXJyb3dQb2ludHNbMl0ueSgpKTsKLSAgICAgICAgY29udGV4
dC5kcmF3TGluZShzdGFydFBvaW50LCBlbmRQb2ludCk7CisgICAgICAgIGNvbnRleHQuc2V0U3Ry
b2tlVGhpY2tuZXNzKGJvcmRlcldpZHRoUHgpOworICAgICAgICBjb250ZXh0LmZpbGxQYXRoKHBh
dGgpOworICAgICAgICBjb250ZXh0LnN0cm9rZVBhdGgocGF0aCk7CisgICAgICAgIGNvbnRleHQu
cmVzdG9yZSgpOwogICAgIH0KIAogICAgIGludCBjdXJyZW50UG9zID0gMDsK
</data>

          </attachment>
      

    </bug>

</bugzilla>