<?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>26821</bug_id>
          
          <creation_ts>2009-06-29 17:53:45 -0700</creation_ts>
          <short_desc>REGRESSION(r45285): focus rings are black on windows safari</short_desc>
          <delta_ts>2009-07-06 15:12:16 -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>PC</rep_platform>
          <op_sys>Windows Vista</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>data:text/html,%3Cinput%20autofocus=true%3E</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P1</priority>
          <bug_severity>Critical</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alice Liu">alice.barraclough</reporter>
          <assigned_to name="Alice Liu">alice.barraclough</assigned_to>
          <cc>aroben</cc>
    
    <cc>darin</cc>
    
    <cc>eric</cc>
    
    <cc>fishd</cc>
    
    <cc>hyatt</cc>
    
    <cc>mitz</cc>
    
    <cc>ojan</cc>
    
    <cc>playmobil</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>128929</commentid>
    <comment_count>0</comment_count>
    <who name="Alice Liu">alice.barraclough</who>
    <bug_when>2009-06-29 17:53:45 -0700</bug_when>
    <thetext>due to http://trac.webkit.org/changeset/45285, focus rings are now black on windows safari instead of aqua.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>128933</commentid>
    <comment_count>1</comment_count>
    <who name="Alice Liu">alice.barraclough</who>
    <bug_when>2009-06-29 17:58:22 -0700</bug_when>
    <thetext>&lt;rdar://problem/7018252&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>128935</commentid>
    <comment_count>2</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2009-06-29 18:04:09 -0700</bug_when>
    <thetext>*** Bug 26822 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>128937</commentid>
    <comment_count>3</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2009-06-29 18:04:13 -0700</bug_when>
    <thetext>*** Bug 26823 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>128938</commentid>
    <comment_count>4</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-06-29 18:04:42 -0700</bug_when>
    <thetext>Seems easy enough to fix.  RenderThemeWin or RenderThemeSafari just need a focusRingColor method if they don&apos;t have one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>129128</commentid>
    <comment_count>5</comment_count>
    <who name="Alice Liu">alice.barraclough</who>
    <bug_when>2009-06-30 12:04:55 -0700</bug_when>
    <thetext>It looks like the focusRingColor needs to stay in RenderThemeSafari to make pixel tests on Windows pass, and we also need focusRingColor to be added to RenderThemeWin to address this bug.  Do we have an alternative to duplicating RenderThemeSafari::focusRingColor into RenderThemeWin?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>129160</commentid>
    <comment_count>6</comment_count>
      <attachid>32094</attachid>
    <who name="Alice Liu">alice.barraclough</who>
    <bug_when>2009-06-30 14:18:08 -0700</bug_when>
    <thetext>Created attachment 32094
patch - just duplicates what is in RenderThemeSafari</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>129162</commentid>
    <comment_count>7</comment_count>
      <attachid>32094</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-06-30 14:21:01 -0700</bug_when>
    <thetext>Comment on attachment 32094
patch - just duplicates what is in RenderThemeSafari

Shouldn&apos;t SafariThemeWin use whatever the system theme focus color is?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>129200</commentid>
    <comment_count>8</comment_count>
      <attachid>32094</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2009-06-30 15:53:08 -0700</bug_when>
    <thetext>Comment on attachment 32094
patch - just duplicates what is in RenderThemeSafari

I agree with Eric that RenderThemeWin should probably just use the system focus ring color. RenderThemeWin has no knowledge of SafariTheme currently, and that&apos;s a good thing.

I can think of a few options for getting the behavior we want in Safari:

1) Add a preference that says &quot;use RenderThemeSafari for the focus ring color even though we use RenderThemeWin for everything else&quot;. Safari would set this preference when it launches.
2) Add a call to set a custom focus ring color. Safari would call this, passing the focus ring color from SafariTheme.

I&apos;m not sure which I think is better. I think I have a slight preference for (2).

What do you think, Alice?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>129201</commentid>
    <comment_count>9</comment_count>
      <attachid>32094</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2009-06-30 15:53:37 -0700</bug_when>
    <thetext>Comment on attachment 32094
patch - just duplicates what is in RenderThemeSafari

I guess I&apos;ll r- this for now while we work out what we want the solution to look like.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>129205</commentid>
    <comment_count>10</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-06-30 16:06:11 -0700</bug_when>
    <thetext>There already is code to support a custom focus ring color.  At least for Chromium tests.  So option #2 should already work.  Chromium sets a custom focus ring color when running the layout tests in order to match Safari results, iirc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>129209</commentid>
    <comment_count>11</comment_count>
    <who name="Alice Liu">alice.barraclough</who>
    <bug_when>2009-06-30 16:20:14 -0700</bug_when>
    <thetext>(2) (In reply to comment #8)
&gt; 2) Add a call to set a custom focus ring color. Safari would call this, passing
&gt; the focus ring color from SafariTheme.

so this has to run through RenderThemeWin::focusRingColor, doesn&apos;t it?
When the focusRingColor is asked for in CSSSylteSelector::getColorFromPrimitiveValue(), as of r45285, the defaultTheme is asked to provide this color. 

as (2) is described i&apos;m confused how RenderThemeWin::focusRingColor will play its role.  </thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>129212</commentid>
    <comment_count>12</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-06-30 16:29:33 -0700</bug_when>
    <thetext>I would think we could make Chromium&apos;s &quot;custom focus ring color&quot; implementation more general to cover this case:

5	Color RenderThemeChromiumMac::focusRingColor() const 
 	176	{ 
 	177	    if (ChromiumBridge::layoutTestMode()) 
 	178	        return oldAquaFocusRingColor(); 
 	179	 
 	180	    return systemColor(CSSValueWebkitFocusRingColor); 
 	181	} 

But maybe I&apos;m over-engineering the problem here.  Chromium could certainly change to call a special &quot;set custom focus ring color&quot; perference instead of having a ChromiumBridge method to check &quot;testing mode&quot;.

I think to fix the regression it&apos;s easiest to add &quot;custom focus ring color&quot; support just to RenderThemeWin.  Someone else can come back and make it more general in a second pass.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>129213</commentid>
    <comment_count>13</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2009-06-30 16:31:53 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; (2) (In reply to comment #8)
&gt; &gt; 2) Add a call to set a custom focus ring color. Safari would call this, passing
&gt; &gt; the focus ring color from SafariTheme.
&gt; 
&gt; so this has to run through RenderThemeWin::focusRingColor, doesn&apos;t it?
&gt; When the focusRingColor is asked for in
&gt; CSSSylteSelector::getColorFromPrimitiveValue(), as of r45285, the defaultTheme
&gt; is asked to provide this color. 
&gt; 
&gt; as (2) is described i&apos;m confused how RenderThemeWin::focusRingColor will play
&gt; its role.  

getColorFromPrimitiveValue could be the place where the custom color is retrieved. If no custom color is specified, then it would ask the defaultTheme. Doing it this way would make it work for all platforms, and maybe could replace Chromium&apos;s special test mode flag.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>129214</commentid>
    <comment_count>14</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2009-06-30 16:33:17 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; (In reply to comment #11)
&gt; &gt; (2) (In reply to comment #8)
&gt; &gt; &gt; 2) Add a call to set a custom focus ring color. Safari would call this, passing
&gt; &gt; &gt; the focus ring color from SafariTheme.
&gt; &gt; 
&gt; &gt; so this has to run through RenderThemeWin::focusRingColor, doesn&apos;t it?
&gt; &gt; When the focusRingColor is asked for in
&gt; &gt; CSSSylteSelector::getColorFromPrimitiveValue(), as of r45285, the defaultTheme
&gt; &gt; is asked to provide this color. 
&gt; &gt; 
&gt; &gt; as (2) is described i&apos;m confused how RenderThemeWin::focusRingColor will play
&gt; &gt; its role.  
&gt; 
&gt; getColorFromPrimitiveValue could be the place where the custom color is
&gt; retrieved. If no custom color is specified, then it would ask the defaultTheme.
&gt; Doing it this way would make it work for all platforms, and maybe could replace
&gt; Chromium&apos;s special test mode flag.

Another option would be to move the implementation of focusRingColor into the base RenderTheme class. That function would basically do:

return customFocusRingColor ? customFocusRingColor : platformFocusRingColor()

And platformFocusRingColor() would do exactly what focusRingColor() does today.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>129220</commentid>
    <comment_count>15</comment_count>
    <who name="Alice Liu">alice.barraclough</who>
    <bug_when>2009-06-30 17:05:46 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; 
&gt; Another option would be to move the implementation of focusRingColor into the
&gt; base RenderTheme class. That function would basically do:
&gt; 
&gt; return customFocusRingColor ? customFocusRingColor : platformFocusRingColor()
&gt; 
&gt; And platformFocusRingColor() would do exactly what focusRingColor() does today.
&gt; 

Just so i&apos;m clear, is RenderThemeChromiumMac the only subclass that would want to set this custom color, that is, in the case of ChromiumBridge::layoutTestMode() ?
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>129780</commentid>
    <comment_count>16</comment_count>
    <who name="Jeremy Moskovich">playmobil</who>
    <bug_when>2009-07-04 04:37:36 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; Just so i&apos;m clear, is RenderThemeChromiumMac the only subclass that would want
&gt; to set this custom color, that is, in the case of
&gt; ChromiumBridge::layoutTestMode() ?

(sorry for not commenting earlier, but I&apos;ve been travelling :( )

Not sure if this answers your question, but to the best of my knowledge, there&apos;s no way to tell from inside WebKit whether you&apos;re running in layout test mode, in the Chromium port ChromiumBridge::layoutTestMode() gives this information.

The Mac port of Chromium aims to reuse the expected pixel results checked into the tree and thus the focus ring color needs to match that used in the Mac version of WebKit i.e. the behavior of RenderThemeMac.

RenderThemeMac in turn uses a fixed focus ring color in layout test mode, rather than a color corrected focus ring color as is used in normal operation (which to my understanding can change arbitrarily) in order to guarantee a consistent focus ring color in pixel tests regardless of the system the tests are run on.

RenderThemeMac uses a function defined in ColorMac that&apos;s toggled by DRT via an accessor method in WebView in order to signal that we&apos;re in layout test mode so it can use the &quot;fixed&quot; focus ring color.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>129795</commentid>
    <comment_count>17</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-07-04 10:35:31 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; (In reply to comment #15)

@jeremy:

I believe the model which is being proposed above would involve the embedding app setting a custom focus ring color used to override the normal platform one.  If chromium used this same code path, then test_shell would also set a custom override color when running in &quot;layout test mode&quot;.  DumpRenderTree on windows has the same need.  It wants to use the RenderThemeWin, but override the focus ring color to match the Mac (assuming I&apos;m understanding aroben and aliu correctly).  So it seems like there is code to be shared here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>129796</commentid>
    <comment_count>18</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-07-04 10:36:40 -0700</bug_when>
    <thetext>I would argue that we should fix the regression in whatever way necessary for Safari-Win and Chroimium can come along later and do the code sharing.  ChromiumBridge isn&apos;t in the WebKit tree, so it&apos;s impossible for webkit folks to do any related refactoring.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>129985</commentid>
    <comment_count>19</comment_count>
      <attachid>32312</attachid>
    <who name="Alice Liu">alice.barraclough</who>
    <bug_when>2009-07-06 13:26:44 -0700</bug_when>
    <thetext>Created attachment 32312
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>129991</commentid>
    <comment_count>20</comment_count>
      <attachid>32312</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-07-06 13:38:37 -0700</bug_when>
    <thetext>Comment on attachment 32312
patch

Color has no destructor, but there still may be an issue with using a global Color object.  You&apos;d have to ask Darin.  Certainly the constructor for customFocusRingColor will run at library load time and that could slow down startup.

I think I would have used a class static instead of a file static, but I&apos;m not sure that that would work around the load-time contructor issue, just would have been different encapsulation of the data.

The approach in general looks fine. I would have probably used an if with early return for:
+    return customFocusRingColor.isValid() ? customFocusRingColor : defaultTheme()-&gt;platformFocusRingColor();
instead of a ternary operator.

platform seems a bit strange of a name for the focusRingColor since it&apos;s not necessarily platform specific (as is the case with RenderThemeSafari).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>129992</commentid>
    <comment_count>21</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-07-06 13:39:00 -0700</bug_when>
    <thetext>Thanks for taking this on, Alice.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>129993</commentid>
    <comment_count>22</comment_count>
      <attachid>32312</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-07-06 13:39:37 -0700</bug_when>
    <thetext>Comment on attachment 32312
patch

Looks good.

&gt; +static Color customFocusRingColor;

This would fail on Mac (scripts would catch it around link time) because it creates a constructor that runs at framework load time and a destructor that runs at exit time. For an example of the correct idiom for this type of thing, you could look at a function like keepAliveSet() in Frame.cpp that shows how to use DEFINE_STATIC_LOCAL to avoid the exit-time destructor and a function to avoid a load-time constructor.

&gt; +void RenderTheme::setCustomFocusRingColor(Color c)

We&apos;d typically use &quot;const Color&amp;&quot; as the type for the argument to avoid copying the color.

&gt; +    virtual Color platformFocusRingColor() const { return Color(); }

I think platformFocusRingColor should probably be pure virtual instead of returning a transparent color. Or it could return opaque black?

review- because of the load-time and exit-time issue</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>130031</commentid>
    <comment_count>23</comment_count>
      <attachid>32330</attachid>
    <who name="Alice Liu">alice.barraclough</who>
    <bug_when>2009-07-06 15:01:29 -0700</bug_when>
    <thetext>Created attachment 32330
patch, without global initializers, compiles on mac and win

I did consider making platformFocusRingColor pure virtual, but doing it that way would have required RenderThemeWin to provide an implementation, and i wasn&apos;t convinced that providing an invalid or black color there would have better than providing an invalid or black color in RenderTheme::platformFocusRingColor along with the possible confusion about why RenderThemeWin isn&apos;t appearing to provide an aqua-looking color.  In this patch I did change to black as you suggested.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>130032</commentid>
    <comment_count>24</comment_count>
      <attachid>32330</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-07-06 15:02:53 -0700</bug_when>
    <thetext>Comment on attachment 32330
patch, without global initializers, compiles on mac and win

&gt; +    Color&amp; color = customFocusRingColor();
&gt; +    color = c;

Could just be done like this:

    customFocusRingColor() = c;

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>130034</commentid>
    <comment_count>25</comment_count>
    <who name="Alice Liu">alice.barraclough</who>
    <bug_when>2009-07-06 15:12:16 -0700</bug_when>
    <thetext>Sending        WebCore/ChangeLog
Sending        WebCore/WebCore.order
Sending        WebCore/css/CSSStyleSelector.cpp
Sending        WebCore/platform/graphics/Color.h
Sending        WebCore/rendering/RenderTheme.cpp
Sending        WebCore/rendering/RenderTheme.h
Sending        WebCore/rendering/RenderThemeChromiumMac.h
Sending        WebCore/rendering/RenderThemeChromiumMac.mm
Sending        WebCore/rendering/RenderThemeChromiumSkia.cpp
Sending        WebCore/rendering/RenderThemeChromiumSkia.h
Sending        WebCore/rendering/RenderThemeMac.h
Sending        WebCore/rendering/RenderThemeMac.mm
Sending        WebCore/rendering/RenderThemeSafari.cpp
Sending        WebCore/rendering/RenderThemeSafari.h
Transmitting file data ..............
Committed revision 45569.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>32094</attachid>
            <date>2009-06-30 14:18:08 -0700</date>
            <delta_ts>2009-07-06 13:26:44 -0700</delta_ts>
            <desc>patch - just duplicates what is in RenderThemeSafari</desc>
            <filename>blackfocusring.txt</filename>
            <type>text/plain</type>
            <size>3505</size>
            <attacher name="Alice Liu">alice.barraclough</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDQ1MzYw
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMDktMDYt
MzAgIEFsaWNlIExpdSAgPGFsaWNlLmxpdUBhcHBsZS5jb20+CisKKyAgICAgICAgRml4IGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNjgyMQorICAgICAgICBSRUdSRVNT
SU9OKHI0NTI4NSk6IGZvY3VzIHJpbmdzIGFyZSBibGFjayBvbiB3aW5kb3dzIHNhZmFyaQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIGFkZGl0aW9u
YWwgdGVzdHMgYWRkZWQuIFBpeGVsIHRlc3RzIHdvdWxkIGhhdmUgY2F1Z2h0IHRoZSByZWdyZXNz
aW9uCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVXaW4uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6bWFrZVJHQkFGcm9tQ0dDb2xvcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJU
aGVtZVdpbjo6Zm9jdXNSaW5nQ29sb3IpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVt
ZVdpbi5oOgorCiAyMDA5LTA2LTI5ICBOYXRlIENoYXBpbiAgPGphcGhldEBjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGltaXRyaSBHbGF6a292LgpJbmRleDogcmVuZGVyaW5n
L1JlbmRlclRoZW1lV2luLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSByZW5kZXJpbmcvUmVuZGVyVGhlbWVX
aW4uY3BwCShyZXZpc2lvbiA0NTM0OCkKKysrIHJlbmRlcmluZy9SZW5kZXJUaGVtZVdpbi5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTMxLDYgKzMxLDggQEAKICNpbmNsdWRlICJTb2Z0TGlua2luZy5o
IgogI2luY2x1ZGUgIlN5c3RlbUluZm8uaCIKICNpbmNsdWRlICJVc2VyQWdlbnRTdHlsZVNoZWV0
cy5oIgorI2luY2x1ZGUgPFNhZmFyaVRoZW1lL1NhZmFyaVRoZW1lLmg+CisjaW5jbHVkZSA8Q29y
ZUdyYXBoaWNzL0NHQ29sb3IuaD4KIAogI2lmIEVOQUJMRShWSURFTykKICNpbmNsdWRlICJSZW5k
ZXJNZWRpYUNvbnRyb2xzLmgiCkBAIC05OCwxNCArMTAwLDMyIEBAIFNPRlRfTElOSyh1eHRoZW1l
LCBEcmF3VGhlbWVCYWNrZ3JvdW5kLCAKIFNPRlRfTElOSyh1eHRoZW1lLCBJc1RoZW1lQWN0aXZl
LCBCT09MLCBXSU5BUEksICgpLCAoKSkKIFNPRlRfTElOSyh1eHRoZW1lLCBJc1RoZW1lQmFja2dy
b3VuZFBhcnRpYWxseVRyYW5zcGFyZW50LCBCT09MLCBXSU5BUEksIChIQU5ETEUgaFRoZW1lLCBp
bnQgaVBhcnRJZCwgaW50IGlTdGF0ZUlkKSwgKGhUaGVtZSwgaVBhcnRJZCwgaVN0YXRlSWQpKQog
CisjaWYgIWRlZmluZWQoTkRFQlVHKSAmJiBkZWZpbmVkKFVTRV9ERUJVR19TQUZBUklfVEhFTUUp
CitTT0ZUX0xJTktfREVCVUdfTElCUkFSWShTYWZhcmlUaGVtZSkKKyNlbHNlCitTT0ZUX0xJTktf
TElCUkFSWShTYWZhcmlUaGVtZSkKKyNlbmRpZgorU09GVF9MSU5LX09QVElPTkFMKFNhZmFyaVRo
ZW1lLCBTVENvcHlUaGVtZUNvbG9yLCBDR0NvbG9yUmVmLCBBUElFTlRSWSwgKHVuc2lnbmVkIGNv
bG9yLCBTYWZhcmlUaGVtZTo6VGhlbWVDb250cm9sU3RhdGUpKTsKKwogc3RhdGljIGJvb2wgaGF2
ZVRoZW1lOwogCiBzdGF0aWMgY29uc3QgdW5zaWduZWQgdmlzdGFNZW51TGlzdEJ1dHRvbk91dHNl
dCA9IDE7CiAKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7Cit1c2luZyBuYW1lc3BhY2UgU2FmYXJpVGhl
bWU7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorc3RhdGljIGNvbnN0IHVuc2lnbmVkIHN0Rm9j
dXNSaW5nQ29sb3JJRCA9IDQ7CisKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBhcXVhRm9jdXNSaW5n
Q29sb3IgPSAweEZGN0RBREQ5OworCitzdGF0aWMgUkdCQTMyIG1ha2VSR0JBRnJvbUNHQ29sb3Io
Q0dDb2xvclJlZiBjb2xvcikKK3sKKyAgICBjb25zdCBDR0Zsb2F0KiBjb21wb25lbnRzID0gQ0dD
b2xvckdldENvbXBvbmVudHMoY29sb3IpOworICAgIHJldHVybiBtYWtlUkdCQSgyNTUgKiBjb21w
b25lbnRzWzBdLCAyNTUgKiBjb21wb25lbnRzWzFdLCAyNTUgKiBjb21wb25lbnRzWzJdLCAyNTUg
KiBjb21wb25lbnRzWzNdKTsKK30KKwogLy8gVGhpcyBpcyB0aGUgZml4ZWQgd2lkdGggSUUgYW5k
IEZpcmVmb3ggdXNlIGZvciBidXR0b25zIG9uIGRyb3Bkb3duIG1lbnVzCiBzdGF0aWMgY29uc3Qg
aW50IGRyb3BEb3duQnV0dG9uV2lkdGggPSAxNzsKIApAQCAtMzY3LDYgKzM4NywyMiBAQCBib29s
IFJlbmRlclRoZW1lV2luOjpzdXBwb3J0c0ZvY3VzUmluZyhjCiAgICAgcmV0dXJuIHN1cHBvcnRz
Rm9jdXMoc3R5bGUtPmFwcGVhcmFuY2UoKSk7CiB9CiAKK0NvbG9yIFJlbmRlclRoZW1lV2luOjpm
b2N1c1JpbmdDb2xvcigpIGNvbnN0Cit7CisgICAgc3RhdGljIENvbG9yIGZvY3VzUmluZ0NvbG9y
OworCisgICAgaWYgKCFmb2N1c1JpbmdDb2xvci5pc1ZhbGlkKCkpIHsKKyAgICAgICAgaWYgKFNU
Q29weVRoZW1lQ29sb3JQdHIoKSkgeworICAgICAgICAgICAgUmV0YWluUHRyPENHQ29sb3JSZWY+
IGNvbG9yKEFkb3B0Q0YsIFNUQ29weVRoZW1lQ29sb3JQdHIoKShzdEZvY3VzUmluZ0NvbG9ySUQs
IFNhZmFyaVRoZW1lOjpBY3RpdmVTdGF0ZSkpOworICAgICAgICAgICAgcmV0dXJuIG1ha2VSR0JB
RnJvbUNHQ29sb3IoY29sb3IuZ2V0KCkpOworICAgICAgICB9CisgICAgICAgIGlmICghZm9jdXNS
aW5nQ29sb3IuaXNWYWxpZCgpKQorICAgICAgICAgICAgZm9jdXNSaW5nQ29sb3IgPSBhcXVhRm9j
dXNSaW5nQ29sb3I7CisgICAgfQorCisgICAgcmV0dXJuIGZvY3VzUmluZ0NvbG9yOworfQorCiB1
bnNpZ25lZCBSZW5kZXJUaGVtZVdpbjo6ZGV0ZXJtaW5lQ2xhc3NpY1N0YXRlKFJlbmRlck9iamVj
dCogbykKIHsKICAgICB1bnNpZ25lZCBzdGF0ZSA9IDA7CkluZGV4OiByZW5kZXJpbmcvUmVuZGVy
VGhlbWVXaW4uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSByZW5kZXJpbmcvUmVuZGVyVGhlbWVXaW4uaAkocmV2
aXNpb24gNDUzNDgpCisrKyByZW5kZXJpbmcvUmVuZGVyVGhlbWVXaW4uaAkod29ya2luZyBjb3B5
KQpAQCAtMTIzLDYgKzEyMyw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBzZXRXZWJLaXRJ
c0JlaW5nVW5sb2FkZWQoKTsKIAogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0ZvY3VzUmluZyhj
b25zdCBSZW5kZXJTdHlsZSopIGNvbnN0OworICAgIHZpcnR1YWwgQ29sb3IgZm9jdXNSaW5nQ29s
b3IoKSBjb25zdDsKIAogI2lmIEVOQUJMRShWSURFTykKICAgICB2aXJ0dWFsIGJvb2wgcGFpbnRN
ZWRpYUZ1bGxzY3JlZW5CdXR0b24oUmVuZGVyT2JqZWN0KiwgY29uc3QgUmVuZGVyT2JqZWN0OjpQ
YWludEluZm8mLCBjb25zdCBJbnRSZWN0Jik7Cg==
</data>
<flag name="review"
          id="16611"
          type_id="1"
          status="-"
          setter="aroben"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>32312</attachid>
            <date>2009-07-06 13:26:44 -0700</date>
            <delta_ts>2009-07-06 15:01:29 -0700</delta_ts>
            <desc>patch</desc>
            <filename>focusRingColor-patch.txt</filename>
            <type>text/plain</type>
            <size>10851</size>
            <attacher name="Alice Liu">alice.barraclough</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0NTU2MCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNDUgQEAKKzIwMDktMDctMDYgIEFsaWNlIExpdSAgPGFsaWNlLmxpdUBhcHBsZS5j
b20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUkVH
UkVTU0lPTihyNDUyODUpOiBmb2N1cyByaW5ncyBhcmUgYmxhY2sgb24gd2luZG93cyBzYWZhcmkK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI2ODIxCisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MDE4MjUyPgorCisgICAgICAgIEFkZCBhIG1lY2hhbmlz
bSBmb3Igc2V0dGluZyBhIGN1c3RvbSBmb2N1cyByaW5nIGNvbG9yLCBhbmQgcmVsb2NhdGUgdGhl
IAorICAgICAgICBkZXRlcm1pbmF0aW9uIG9mIGZvY3VzIHJpbmcgY29sb3IgdG8gYmFzZSBjbGFz
cyBSZW5kZXJUaGVtZS4KKworICAgICAgICBObyBuZXcgdGVzdHMuICBBbHJlYWR5LWV4aXN0aW5n
IHRlc3RzIHJ1biBpbiBwaXhlbCBtb2RlIHdvdWxkIGhhdmUgY2F1Z2h0IHRoaXMgcmVncmVzc2lv
bgorCisgICAgICAgICogY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Q1NTU3R5bGVTZWxlY3Rvcjo6Z2V0Q29sb3JGcm9tUHJpbWl0aXZlVmFsdWUpOiBNb3ZlIHRo
ZSByZXNwb25zaWJpbGl0eQorICAgICAgICBvZiBkZXRlcm1pbmluZyBmb2N1cyBjb2xvciB0byBi
YXNlIGNsYXNzIFJlbmRlclRoZW1lLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6c2V0Q3VzdG9tRm9jdXNSaW5nQ29s
b3IpOiBBZGRlZAorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6OmZvY3VzUmluZ0NvbG9y
KTogVXNlIGN1c3RvbSBjb2xvciBvdmVyIHBsYXRmb3JtIGNvbG9yLgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJUaGVtZS5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6OnBsYXRm
b3JtRm9jdXNSaW5nQ29sb3IpOiBkZWZhdWx0IGltcGxlbWVudGF0aW9uLCBpbnZhbGlkIENvbG9y
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lU2FmYXJpLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclRoZW1lOjp0aGVtZUZvclBhZ2UpOiBDaXJjdW1zdGFuY2VzIHRoYXQgbGVh
ZCB0byByZXR1cm5pbmcgdGhlIFJlbmRlclRoZW1lV2luCisgICAgICAgIGFyZSB0aGUgc2FtZSB1
bmRlciB3aGljaCB3ZSB3YW50IHRvIHVzZSB0aGUgZm9jdXMgcmluZyBjb2xvciBmcm9tIFNhZmFy
aVRoZW1lLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVTYWZhcmk6OnBsYXRmb3JtRm9j
dXNSaW5nQ29sb3IpOiBSZW5hbWVkIGZyb20gZm9jdXNSaW5nQ29sb3IKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyVGhlbWVTYWZhcmkuaDoKKworICAgICAgICBSZW5hbWluZyBmb2N1c1JpbmdD
b2xvciB0byBwbGF0Zm9ybUZvY3VzUmluZ0NvbG9yIGluIHRoZXNlIGZpbGVzOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtTWFjLmg6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlclRoZW1lQ2hyb21pdW1NYWMubW06CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVt
ZUNocm9taXVtTWFjOjpwbGF0Zm9ybUZvY3VzUmluZ0NvbG9yKToKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyVGhlbWVDaHJvbWl1bVNraWEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
VGhlbWVDaHJvbWl1bVNraWE6OnBsYXRmb3JtRm9jdXNSaW5nQ29sb3IpOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtU2tpYS5oOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJUaGVtZU1hYy5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybUZvY3VzUmluZ0NvbG9y
KToKKworICAgICAgICBDbGVhbnVwIGxlZnRvdmVyIGZyb20gcmVtb3ZhbCBvZiBXZWJDb3JlOjpD
b2xvciBpbiByNDUyODUgaW4gdGhlc2UgZmlsZXM6CisgICAgICAgICogV2ViQ29yZS5vcmRlcjoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5oOgorCiAyMDA5LTA3LTA2ICBOYXRl
IENoYXBpbiAgPGphcGhldEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGF2
aWQgTGV2aW4uCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUub3JkZXIKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9XZWJDb3JlLm9yZGVyCShyZXZpc2lvbiA0NTU2MCkKKysrIFdlYkNvcmUvV2ViQ29yZS5v
cmRlcgkod29ya2luZyBjb3B5KQpAQCAtMzc5Myw3ICszNzkzLDYgQEAgX19aTjdXZWJDb3JlN1VJ
RXZlbnREMEV2CiBfX1pON1dlYkNvcmU1RXZlbnREMkV2CiBfX1pON1dlYkNvcmUxM0NvbnRhaW5l
ck5vZGU4c2V0Rm9jdXNFYgogX19aTjdXZWJDb3JlNE5vZGU4c2V0Rm9jdXNFYgotX19aTjdXZWJD
b3JlMTRmb2N1c1JpbmdDb2xvckV2CiArW1dlYkNvcmVDb250cm9sVGludE9ic2VydmVyIGNvbnRy
b2xUaW50RGlkQ2hhbmdlXQogX19aTjdXZWJDb3JlMjZ1c2VzVGVzdE1vZGVGb2N1c1JpbmdDb2xv
ckV2CiBfX1pOSzdXZWJDb3JlMTRTVkdSZW5kZXJTdHlsZTE3aW5oZXJpdGVkTm90RXF1YWxFUEtT
MF8KSW5kZXg6IFdlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCShyZXZpc2lvbiA0NTU2MCkKKysrIFdl
YkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NzQzLDcg
KzU3NDMsNyBAQCBDb2xvciBDU1NTdHlsZVNlbGVjdG9yOjpnZXRDb2xvckZyb21QcmltCiAgICAg
ICAgIH0gZWxzZSBpZiAoaWRlbnQgPT0gQ1NTVmFsdWVXZWJraXRBY3RpdmVsaW5rKQogICAgICAg
ICAgICAgY29sID0gbV9lbGVtZW50LT5kb2N1bWVudCgpLT5hY3RpdmVMaW5rQ29sb3IoKTsKICAg
ICAgICAgZWxzZSBpZiAoaWRlbnQgPT0gQ1NTVmFsdWVXZWJraXRGb2N1c1JpbmdDb2xvcikKLSAg
ICAgICAgICAgIGNvbCA9IFJlbmRlclRoZW1lOjpkZWZhdWx0VGhlbWUoKS0+Zm9jdXNSaW5nQ29s
b3IoKTsKKyAgICAgICAgICAgIGNvbCA9IFJlbmRlclRoZW1lOjpmb2N1c1JpbmdDb2xvcigpOwog
ICAgICAgICBlbHNlIGlmIChpZGVudCA9PSBDU1NWYWx1ZUN1cnJlbnRjb2xvcikKICAgICAgICAg
ICAgIGNvbCA9IG1fc3R5bGUtPmNvbG9yKCk7CiAgICAgICAgIGVsc2UKSW5kZXg6IFdlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0NvbG9yLmgJKHJldmlzaW9uIDQ1NTYwKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Db2xvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNDUsNyArMTQ1LDYgQEAgaW5saW5l
IGJvb2wgb3BlcmF0b3IhPShjb25zdCBDb2xvciYgYSwgYwogICAgIHJldHVybiAhKGEgPT0gYik7
CiB9CiAKLUNvbG9yIGZvY3VzUmluZ0NvbG9yKCk7CiBDb2xvciBjb2xvckZyb21QcmVtdWx0aXBs
aWVkQVJHQih1bnNpZ25lZCk7CiB1bnNpZ25lZCBwcmVtdWx0aXBsaWVkQVJHQkZyb21Db2xvcihj
b25zdCBDb2xvciYpOwogCkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwCShyZXZpc2lv
biA0NTU2MCkKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNDAsNiArNDAsOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK3N0YXRpYyBD
b2xvciBjdXN0b21Gb2N1c1JpbmdDb2xvcjsKKwogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsK
IAogUmVuZGVyVGhlbWU6OlJlbmRlclRoZW1lKCkKQEAgLTg1Myw5ICs4NTUsMTQgQEAgQ29sb3Ig
UmVuZGVyVGhlbWU6OnBsYXRmb3JtSW5hY3RpdmVUZXh0UwogICAgIHJldHVybiBDb2xvcigyNTUs
IDI1NSwgMCk7IC8vIFllbGxvdy4KIH0KIAotQ29sb3IgUmVuZGVyVGhlbWU6OmZvY3VzUmluZ0Nv
bG9yKCkgY29uc3QKK3ZvaWQgUmVuZGVyVGhlbWU6OnNldEN1c3RvbUZvY3VzUmluZ0NvbG9yKENv
bG9yIGMpCit7CisgICAgY3VzdG9tRm9jdXNSaW5nQ29sb3IgPSBjOworfQorCitDb2xvciBSZW5k
ZXJUaGVtZTo6Zm9jdXNSaW5nQ29sb3IoKQogewotICAgIHJldHVybiBDb2xvcigwLCAwLCAwKTsg
Ly8gQmxhY2suCisgICAgcmV0dXJuIGN1c3RvbUZvY3VzUmluZ0NvbG9yLmlzVmFsaWQoKSA/IGN1
c3RvbUZvY3VzUmluZ0NvbG9yIDogZGVmYXVsdFRoZW1lKCktPnBsYXRmb3JtRm9jdXNSaW5nQ29s
b3IoKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGhlbWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
aGVtZS5oCShyZXZpc2lvbiA0NTU2MCkKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1l
LmgJKHdvcmtpbmcgY29weSkKQEAgLTEzNyw3ICsxMzcsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCBDb2xvciBwbGF0Zm9ybUFjdGl2ZVRleHRTZWFyY2hIaWdobGlnaHRDb2xvcigpIGNvbnN0Owog
ICAgIHZpcnR1YWwgQ29sb3IgcGxhdGZvcm1JbmFjdGl2ZVRleHRTZWFyY2hIaWdobGlnaHRDb2xv
cigpIGNvbnN0OwogCi0gICAgdmlydHVhbCBDb2xvciBmb2N1c1JpbmdDb2xvcigpIGNvbnN0Owor
ICAgIHN0YXRpYyBDb2xvciBmb2N1c1JpbmdDb2xvcigpOworICAgIHZpcnR1YWwgQ29sb3IgcGxh
dGZvcm1Gb2N1c1JpbmdDb2xvcigpIGNvbnN0IHsgcmV0dXJuIENvbG9yKCk7IH0KKyAgICBzdGF0
aWMgdm9pZCBzZXRDdXN0b21Gb2N1c1JpbmdDb2xvcihDb2xvcik7CiAKICAgICB2aXJ0dWFsIHZv
aWQgcGxhdGZvcm1Db2xvcnNEaWRDaGFuZ2UoKTsKIApJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGhlbWVDaHJvbWl1bU1hYy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRoZW1lQ2hyb21pdW1NYWMuaAkocmV2aXNpb24gNDU1NjApCisrKyBXZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtTWFjLmgJKHdvcmtpbmcgY29weSkKQEAgLTY0LDcg
KzY0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFsIENvbG9yIHBsYXRm
b3JtSW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoKSBjb25zdDsKICAgICAgICAgdmly
dHVhbCBDb2xvciBhY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKCkgY29uc3Q7
CiAKLSAgICAgICAgdmlydHVhbCBDb2xvciBmb2N1c1JpbmdDb2xvcigpIGNvbnN0OworICAgICAg
ICB2aXJ0dWFsIENvbG9yIHBsYXRmb3JtRm9jdXNSaW5nQ29sb3IoKSBjb25zdDsKICAgICAgICAg
CiAgICAgICAgIHZpcnR1YWwgdm9pZCBwbGF0Zm9ybUNvbG9yc0RpZENoYW5nZSgpOwogCkluZGV4
OiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtTWFjLm1tCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1NYWMubW0JKHJldmlzaW9u
IDQ1NTYwKQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bU1hYy5tbQko
d29ya2luZyBjb3B5KQpAQCAtMTcyLDcgKzE3Miw3IEBAIENvbG9yIFJlbmRlclRoZW1lQ2hyb21p
dW1NYWM6OmFjdGl2ZUxpc3QKICAgICByZXR1cm4gQ29sb3Ioc3RhdGljX2Nhc3Q8aW50PigyNTUu
MCAqIFtjb2xvciByZWRDb21wb25lbnRdKSwgc3RhdGljX2Nhc3Q8aW50PigyNTUuMCAqIFtjb2xv
ciBncmVlbkNvbXBvbmVudF0pLCBzdGF0aWNfY2FzdDxpbnQ+KDI1NS4wICogW2NvbG9yIGJsdWVD
b21wb25lbnRdKSk7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lQ2hyb21pdW1NYWM6OmZvY3VzUmlu
Z0NvbG9yKCkgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lQ2hyb21pdW1NYWM6OnBsYXRmb3JtRm9j
dXNSaW5nQ29sb3IoKSBjb25zdAogewogICAgIGlmIChDaHJvbWl1bUJyaWRnZTo6bGF5b3V0VGVz
dE1vZGUoKSkKICAgICAgICAgcmV0dXJuIG9sZEFxdWFGb2N1c1JpbmdDb2xvcigpOwpJbmRleDog
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bVNraWEuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1Ta2lhLmNwcAkocmV2aXNp
b24gNDU1NjApCisrKyBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtU2tpYS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTE2Miw3ICsxNjIsNyBAQCBDb2xvciBSZW5kZXJUaGVtZUNo
cm9taXVtU2tpYTo6cGxhdGZvcm1JCiAgICAgcmV0dXJuIENvbG9yKDB4MzIsIDB4MzIsIDB4MzIp
OwogfQogCi1Db2xvciBSZW5kZXJUaGVtZUNocm9taXVtU2tpYTo6Zm9jdXNSaW5nQ29sb3IoKSBj
b25zdAorQ29sb3IgUmVuZGVyVGhlbWVDaHJvbWl1bVNraWE6OnBsYXRmb3JtRm9jdXNSaW5nQ29s
b3IoKSBjb25zdAogewogICAgIHN0YXRpYyBDb2xvciBmb2N1c1JpbmdDb2xvcigyMjksIDE1MSwg
MCwgMjU1KTsKICAgICByZXR1cm4gZm9jdXNSaW5nQ29sb3I7CkluZGV4OiBXZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUaGVtZUNocm9taXVtU2tpYS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1Ta2lhLmgJKHJldmlzaW9uIDQ1NTYwKQorKysgV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bVNraWEuaAkod29ya2luZyBjb3B5KQpA
QCAtNTQsNyArNTQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgQ29s
b3IgcGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcigpIGNvbnN0OwogICAg
ICAgICB2aXJ0dWFsIENvbG9yIHBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9y
KCkgY29uc3Q7CiAgICAgICAgIHZpcnR1YWwgQ29sb3IgcGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlv
bkZvcmVncm91bmRDb2xvcigpIGNvbnN0OwotICAgICAgICB2aXJ0dWFsIENvbG9yIGZvY3VzUmlu
Z0NvbG9yKCkgY29uc3Q7CisgICAgICAgIHZpcnR1YWwgQ29sb3IgcGxhdGZvcm1Gb2N1c1JpbmdD
b2xvcigpIGNvbnN0OwogCiAgICAgICAgIC8vIFRvIGNoYW5nZSB0aGUgYmxpbmsgaW50ZXJ2YWws
IG92ZXJyaWRlIGNhcmV0QmxpbmtJbnRlcnZhbEludGVybmFsIGluc3RlYWQgb2YgdGhpcyBvbmUg
c28gdGhhdCB3ZSBtYXkgc2hhcmUgbGF5b3V0IHRlc3QgY29kZSBhbiBpbnRlcmNlcHRzLgogICAg
ICAgICB2aXJ0dWFsIGRvdWJsZSBjYXJldEJsaW5rSW50ZXJ2YWwoKSBjb25zdDsKSW5kZXg6IFdl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMuaAkocmV2aXNpb24gNDU1NjApCisrKyBXZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUaGVtZU1hYy5oCSh3b3JraW5nIGNvcHkpCkBAIC01OCw3ICs1OCw3IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIENvbG9yIHBsYXRmb3JtQWN0aXZlTGlzdEJveFNlbGVjdGlv
bkZvcmVncm91bmRDb2xvcigpIGNvbnN0OwogICAgIHZpcnR1YWwgQ29sb3IgcGxhdGZvcm1JbmFj
dGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoKSBjb25zdDsKICAgICB2aXJ0dWFs
IENvbG9yIHBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKCkg
Y29uc3Q7Ci0gICAgdmlydHVhbCBDb2xvciBmb2N1c1JpbmdDb2xvcigpIGNvbnN0OworICAgIHZp
cnR1YWwgQ29sb3IgcGxhdGZvcm1Gb2N1c1JpbmdDb2xvcigpIGNvbnN0OwogCiAgICAgdmlydHVh
bCBTY3JvbGxiYXJDb250cm9sU2l6ZSBzY3JvbGxiYXJDb250cm9sU2l6ZUZvclBhcnQoQ29udHJv
bFBhcnQpIHsgcmV0dXJuIFNtYWxsU2Nyb2xsYmFyOyB9CiAgICAgCkluZGV4OiBXZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUaGVtZU1hYy5tbQkocmV2aXNpb24gNDU1NjApCisrKyBXZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUaGVtZU1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtMTU3LDcgKzE1Nyw3IEBAIENv
bG9yIFJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybUluYWN0aXZlTGkKICAgICByZXR1cm4gQ29sb3I6
OmJsYWNrOwogfQogCi1Db2xvciBSZW5kZXJUaGVtZU1hYzo6Zm9jdXNSaW5nQ29sb3IoKSBjb25z
dAorQ29sb3IgUmVuZGVyVGhlbWVNYWM6OnBsYXRmb3JtRm9jdXNSaW5nQ29sb3IoKSBjb25zdAog
ewogICAgIGlmICh1c2VzVGVzdE1vZGVGb2N1c1JpbmdDb2xvcigpKQogICAgICAgICByZXR1cm4g
b2xkQXF1YUZvY3VzUmluZ0NvbG9yKCk7CkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
aGVtZVNhZmFyaS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhl
bWVTYWZhcmkuY3BwCShyZXZpc2lvbiA0NTU2MCkKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRoZW1lU2FmYXJpLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzksOCArNzksMTAgQEAgUGFzc1Jl
ZlB0cjxSZW5kZXJUaGVtZT4gUmVuZGVyVGhlbWU6OnRoZQogICAgIC8vIEZJWE1FOiBUaGlzIGlz
IGNhbGxlZCBiZWZvcmUgU2V0dGluZ3MgaGFzIGJlZW4gaW5pdGlhbGl6ZWQgYnkgV2ViS2l0LCBz
byB3aWxsIHJldHVybiBhCiAgICAgLy8gcG90ZW50aWFsbHkgd3JvbmcgYW5zd2VyIHRoZSB2ZXJ5
IGZpcnN0IHRpbWUgaXQncyBjYWxsZWQgKHNlZQogICAgIC8vIDxodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjY0OTM+KS4KLSAgICBpZiAoU2V0dGluZ3M6OnNob3VsZFBh
aW50TmF0aXZlQ29udHJvbHMoKSkKKyAgICBpZiAoU2V0dGluZ3M6OnNob3VsZFBhaW50TmF0aXZl
Q29udHJvbHMoKSkgeworICAgICAgICBSZW5kZXJUaGVtZTo6c2V0Q3VzdG9tRm9jdXNSaW5nQ29s
b3Ioc2FmYXJpVGhlbWUtPnBsYXRmb3JtRm9jdXNSaW5nQ29sb3IoKSk7CiAgICAgICAgIHJldHVy
biB3aW5kb3dzVGhlbWU7IC8vIGtlZXAgdGhlIHJlZmVyZW5jZSBvZiBvbmUuCisgICAgfQogICAg
IHJldHVybiBzYWZhcmlUaGVtZTsgLy8ga2VlcCB0aGUgcmVmZXJlbmNlIG9mIG9uZS4KIH0KIApA
QCAtMTYwLDcgKzE2Miw3IEBAIENvbG9yIFJlbmRlclRoZW1lU2FmYXJpOjphY3RpdmVMaXN0Qm94
U2UKICAgICByZXR1cm4gQ29sb3IoNTYsIDExNywgMjE1KTsKIH0KIAotQ29sb3IgUmVuZGVyVGhl
bWVTYWZhcmk6OmZvY3VzUmluZ0NvbG9yKCkgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lU2FmYXJp
OjpwbGF0Zm9ybUZvY3VzUmluZ0NvbG9yKCkgY29uc3QKIHsKICAgICBzdGF0aWMgQ29sb3IgZm9j
dXNSaW5nQ29sb3I7CiAKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lU2FmYXJp
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVTYWZhcmkuaAko
cmV2aXNpb24gNDU1NjApCisrKyBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZVNhZmFyaS5o
CSh3b3JraW5nIGNvcHkpCkBAIC02OSw3ICs2OSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIENv
bG9yIHBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoKSBjb25zdDsKICAg
ICB2aXJ0dWFsIENvbG9yIGFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoKSBj
b25zdDsKIAotICAgIHZpcnR1YWwgQ29sb3IgZm9jdXNSaW5nQ29sb3IoKSBjb25zdDsKKyAgICB2
aXJ0dWFsIENvbG9yIHBsYXRmb3JtRm9jdXNSaW5nQ29sb3IoKSBjb25zdDsKIAogICAgIC8vIFN5
c3RlbSBmb250cy4KICAgICB2aXJ0dWFsIHZvaWQgc3lzdGVtRm9udChpbnQgcHJvcElkLCBGb250
RGVzY3JpcHRpb24mKSBjb25zdDsK
</data>
<flag name="review"
          id="16775"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>32330</attachid>
            <date>2009-07-06 15:01:29 -0700</date>
            <delta_ts>2009-07-06 15:02:53 -0700</delta_ts>
            <desc>patch, without global initializers, compiles on mac and win</desc>
            <filename>focusRingColor-patch.txt</filename>
            <type>text/plain</type>
            <size>11089</size>
            <attacher name="Alice Liu">alice.barraclough</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0NTU2NikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNDYgQEAKKzIwMDktMDctMDYgIEFsaWNlIExpdSAgPGFsaWNlLmxpdUBhcHBsZS5j
b20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgUkVHUkVT
U0lPTihyNDUyODUpOiBmb2N1cyByaW5ncyBhcmUgYmxhY2sgb24gd2luZG93cyBzYWZhcmkKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI2ODIxCisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS83MDE4MjUyPgorCisgICAgICAgIEFkZCBhIG1lY2hhbmlzbSBm
b3Igc2V0dGluZyBhIGN1c3RvbSBmb2N1cyByaW5nIGNvbG9yLCBhbmQgcmVsb2NhdGUgdGhlIAor
ICAgICAgICBkZXRlcm1pbmF0aW9uIG9mIGZvY3VzIHJpbmcgY29sb3IgdG8gYmFzZSBjbGFzcyBS
ZW5kZXJUaGVtZS4KKworICAgICAgICBObyBuZXcgdGVzdHMuICBBbHJlYWR5LWV4aXN0aW5nIHRl
c3RzIHJ1biBpbiBwaXhlbCBtb2RlIHdvdWxkIGhhdmUgY2F1Z2h0IHRoaXMgcmVncmVzc2lvbgor
CisgICAgICAgICogY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTU3R5bGVTZWxlY3Rvcjo6Z2V0Q29sb3JGcm9tUHJpbWl0aXZlVmFsdWUpOiBNb3ZlIHRoZSBy
ZXNwb25zaWJpbGl0eQorICAgICAgICBvZiBkZXRlcm1pbmluZyBmb2N1cyBjb2xvciB0byBiYXNl
IGNsYXNzIFJlbmRlclRoZW1lLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpjdXN0b21Gb2N1c1JpbmdDb2xvcik6IEFkZGVkIHN0YXRpYyBs
b2NhbC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpzZXRDdXN0b21Gb2N1c1JpbmdD
b2xvcik6IEFkZGVkCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6Zm9jdXNSaW5nQ29s
b3IpOiBVc2UgY3VzdG9tIGNvbG9yIG92ZXIgcGxhdGZvcm0gY29sb3IuCisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlclRoZW1lLmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6cGxh
dGZvcm1Gb2N1c1JpbmdDb2xvcik6IGRlZmF1bHQgaW1wbGVtZW50YXRpb24sIGJsYWNrIGNvbG9y
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lU2FmYXJpLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclRoZW1lOjp0aGVtZUZvclBhZ2UpOiBDaXJjdW1zdGFuY2VzIHRoYXQgbGVh
ZCB0byByZXR1cm5pbmcgdGhlIFJlbmRlclRoZW1lV2luCisgICAgICAgIGFyZSB0aGUgc2FtZSB1
bmRlciB3aGljaCB3ZSB3YW50IHRvIHVzZSB0aGUgZm9jdXMgcmluZyBjb2xvciBmcm9tIFNhZmFy
aVRoZW1lLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVTYWZhcmk6OnBsYXRmb3JtRm9j
dXNSaW5nQ29sb3IpOiBSZW5hbWVkIGZyb20gZm9jdXNSaW5nQ29sb3IKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyVGhlbWVTYWZhcmkuaDoKKworICAgICAgICBSZW5hbWluZyBmb2N1c1JpbmdD
b2xvciB0byBwbGF0Zm9ybUZvY3VzUmluZ0NvbG9yIGluIHRoZXNlIGZpbGVzOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtTWFjLmg6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlclRoZW1lQ2hyb21pdW1NYWMubW06CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVt
ZUNocm9taXVtTWFjOjpwbGF0Zm9ybUZvY3VzUmluZ0NvbG9yKToKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyVGhlbWVDaHJvbWl1bVNraWEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
VGhlbWVDaHJvbWl1bVNraWE6OnBsYXRmb3JtRm9jdXNSaW5nQ29sb3IpOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtU2tpYS5oOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJUaGVtZU1hYy5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybUZvY3VzUmluZ0NvbG9y
KToKKworICAgICAgICBDbGVhbnVwIGxlZnRvdmVyIGZyb20gcmVtb3ZhbCBvZiBXZWJDb3JlOjpD
b2xvciBpbiByNDUyODUgaW4gdGhlc2UgZmlsZXM6CisgICAgICAgICogV2ViQ29yZS5vcmRlcjoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5oOgorCiAyMDA5LTA3LTA2ICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
QWRlbGUgUGV0ZXJzb24uCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUub3JkZXIKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9XZWJDb3JlLm9yZGVyCShyZXZpc2lvbiA0NTU2MCkKKysrIFdlYkNvcmUvV2Vi
Q29yZS5vcmRlcgkod29ya2luZyBjb3B5KQpAQCAtMzc5Myw3ICszNzkzLDYgQEAgX19aTjdXZWJD
b3JlN1VJRXZlbnREMEV2CiBfX1pON1dlYkNvcmU1RXZlbnREMkV2CiBfX1pON1dlYkNvcmUxM0Nv
bnRhaW5lck5vZGU4c2V0Rm9jdXNFYgogX19aTjdXZWJDb3JlNE5vZGU4c2V0Rm9jdXNFYgotX19a
TjdXZWJDb3JlMTRmb2N1c1JpbmdDb2xvckV2CiArW1dlYkNvcmVDb250cm9sVGludE9ic2VydmVy
IGNvbnRyb2xUaW50RGlkQ2hhbmdlXQogX19aTjdXZWJDb3JlMjZ1c2VzVGVzdE1vZGVGb2N1c1Jp
bmdDb2xvckV2CiBfX1pOSzdXZWJDb3JlMTRTVkdSZW5kZXJTdHlsZTE3aW5oZXJpdGVkTm90RXF1
YWxFUEtTMF8KSW5kZXg6IFdlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCShyZXZpc2lvbiA0NTU2MCkK
KysrIFdlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01
NzQzLDcgKzU3NDMsNyBAQCBDb2xvciBDU1NTdHlsZVNlbGVjdG9yOjpnZXRDb2xvckZyb21Qcmlt
CiAgICAgICAgIH0gZWxzZSBpZiAoaWRlbnQgPT0gQ1NTVmFsdWVXZWJraXRBY3RpdmVsaW5rKQog
ICAgICAgICAgICAgY29sID0gbV9lbGVtZW50LT5kb2N1bWVudCgpLT5hY3RpdmVMaW5rQ29sb3Io
KTsKICAgICAgICAgZWxzZSBpZiAoaWRlbnQgPT0gQ1NTVmFsdWVXZWJraXRGb2N1c1JpbmdDb2xv
cikKLSAgICAgICAgICAgIGNvbCA9IFJlbmRlclRoZW1lOjpkZWZhdWx0VGhlbWUoKS0+Zm9jdXNS
aW5nQ29sb3IoKTsKKyAgICAgICAgICAgIGNvbCA9IFJlbmRlclRoZW1lOjpmb2N1c1JpbmdDb2xv
cigpOwogICAgICAgICBlbHNlIGlmIChpZGVudCA9PSBDU1NWYWx1ZUN1cnJlbnRjb2xvcikKICAg
ICAgICAgICAgIGNvbCA9IG1fc3R5bGUtPmNvbG9yKCk7CiAgICAgICAgIGVsc2UKSW5kZXg6IFdl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0NvbG9yLmgJKHJldmlzaW9uIDQ1NTYwKQorKysgV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9Db2xvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNDUsNyArMTQ1LDYgQEAg
aW5saW5lIGJvb2wgb3BlcmF0b3IhPShjb25zdCBDb2xvciYgYSwgYwogICAgIHJldHVybiAhKGEg
PT0gYik7CiB9CiAKLUNvbG9yIGZvY3VzUmluZ0NvbG9yKCk7CiBDb2xvciBjb2xvckZyb21QcmVt
dWx0aXBsaWVkQVJHQih1bnNpZ25lZCk7CiB1bnNpZ25lZCBwcmVtdWx0aXBsaWVkQVJHQkZyb21D
b2xvcihjb25zdCBDb2xvciYpOwogCkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVt
ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwCShy
ZXZpc2lvbiA0NTU2MCkKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNDIsNiArNDIsMTIgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiB1c2lu
ZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCitzdGF0aWMgQ29sb3ImIGN1c3RvbUZvY3VzUmluZ0Nv
bG9yKCkKK3sKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKENvbG9yLCBjb2xvciwgKCkpOworICAg
IHJldHVybiBjb2xvcjsKK30KKwogUmVuZGVyVGhlbWU6OlJlbmRlclRoZW1lKCkKICNpZiBVU0Uo
TkVXX1RIRU1FKQogICAgIDogbV90aGVtZShwbGF0Zm9ybVRoZW1lKCkpCkBAIC04NTMsOSArODU5
LDE1IEBAIENvbG9yIFJlbmRlclRoZW1lOjpwbGF0Zm9ybUluYWN0aXZlVGV4dFMKICAgICByZXR1
cm4gQ29sb3IoMjU1LCAyNTUsIDApOyAvLyBZZWxsb3cuCiB9CiAKLUNvbG9yIFJlbmRlclRoZW1l
Ojpmb2N1c1JpbmdDb2xvcigpIGNvbnN0Cit2b2lkIFJlbmRlclRoZW1lOjpzZXRDdXN0b21Gb2N1
c1JpbmdDb2xvcihjb25zdCBDb2xvciYgYykKK3sKKyAgICBDb2xvciYgY29sb3IgPSBjdXN0b21G
b2N1c1JpbmdDb2xvcigpOworICAgIGNvbG9yID0gYzsKK30KKworQ29sb3IgUmVuZGVyVGhlbWU6
OmZvY3VzUmluZ0NvbG9yKCkKIHsKLSAgICByZXR1cm4gQ29sb3IoMCwgMCwgMCk7IC8vIEJsYWNr
LgorICAgIHJldHVybiBjdXN0b21Gb2N1c1JpbmdDb2xvcigpLmlzVmFsaWQoKSA/IGN1c3RvbUZv
Y3VzUmluZ0NvbG9yKCkgOiBkZWZhdWx0VGhlbWUoKS0+cGxhdGZvcm1Gb2N1c1JpbmdDb2xvcigp
OwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUaGVtZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1l
LmgJKHJldmlzaW9uIDQ1NTYwKQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuaAko
d29ya2luZyBjb3B5KQpAQCAtMTM3LDcgKzEzNyw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIENv
bG9yIHBsYXRmb3JtQWN0aXZlVGV4dFNlYXJjaEhpZ2hsaWdodENvbG9yKCkgY29uc3Q7CiAgICAg
dmlydHVhbCBDb2xvciBwbGF0Zm9ybUluYWN0aXZlVGV4dFNlYXJjaEhpZ2hsaWdodENvbG9yKCkg
Y29uc3Q7CiAKLSAgICB2aXJ0dWFsIENvbG9yIGZvY3VzUmluZ0NvbG9yKCkgY29uc3Q7CisgICAg
c3RhdGljIENvbG9yIGZvY3VzUmluZ0NvbG9yKCk7CisgICAgdmlydHVhbCBDb2xvciBwbGF0Zm9y
bUZvY3VzUmluZ0NvbG9yKCkgY29uc3QgeyByZXR1cm4gQ29sb3IoMCwgMCwgMCk7IH0KKyAgICBz
dGF0aWMgdm9pZCBzZXRDdXN0b21Gb2N1c1JpbmdDb2xvcihjb25zdCBDb2xvciYpOwogCiAgICAg
dmlydHVhbCB2b2lkIHBsYXRmb3JtQ29sb3JzRGlkQ2hhbmdlKCk7CiAKSW5kZXg6IFdlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1NYWMuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtTWFjLmgJKHJldmlzaW9uIDQ1NTYwKQorKysg
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bU1hYy5oCSh3b3JraW5nIGNvcHkp
CkBAIC02NCw3ICs2NCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCBD
b2xvciBwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKCkgY29uc3Q7CiAg
ICAgICAgIHZpcnR1YWwgQ29sb3IgYWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xv
cigpIGNvbnN0OwogCi0gICAgICAgIHZpcnR1YWwgQ29sb3IgZm9jdXNSaW5nQ29sb3IoKSBjb25z
dDsKKyAgICAgICAgdmlydHVhbCBDb2xvciBwbGF0Zm9ybUZvY3VzUmluZ0NvbG9yKCkgY29uc3Q7
CiAgICAgICAgIAogICAgICAgICB2aXJ0dWFsIHZvaWQgcGxhdGZvcm1Db2xvcnNEaWRDaGFuZ2Uo
KTsKIApJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bU1hYy5tbQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtTWFjLm1t
CShyZXZpc2lvbiA0NTU2MCkKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21p
dW1NYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTE3Miw3ICsxNzIsNyBAQCBDb2xvciBSZW5kZXJU
aGVtZUNocm9taXVtTWFjOjphY3RpdmVMaXN0CiAgICAgcmV0dXJuIENvbG9yKHN0YXRpY19jYXN0
PGludD4oMjU1LjAgKiBbY29sb3IgcmVkQ29tcG9uZW50XSksIHN0YXRpY19jYXN0PGludD4oMjU1
LjAgKiBbY29sb3IgZ3JlZW5Db21wb25lbnRdKSwgc3RhdGljX2Nhc3Q8aW50PigyNTUuMCAqIFtj
b2xvciBibHVlQ29tcG9uZW50XSkpOwogfQogCi1Db2xvciBSZW5kZXJUaGVtZUNocm9taXVtTWFj
Ojpmb2N1c1JpbmdDb2xvcigpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZUNocm9taXVtTWFjOjpw
bGF0Zm9ybUZvY3VzUmluZ0NvbG9yKCkgY29uc3QKIHsKICAgICBpZiAoQ2hyb21pdW1CcmlkZ2U6
OmxheW91dFRlc3RNb2RlKCkpCiAgICAgICAgIHJldHVybiBvbGRBcXVhRm9jdXNSaW5nQ29sb3Io
KTsKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1Ta2lhLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtU2tpYS5j
cHAJKHJldmlzaW9uIDQ1NTYwKQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJv
bWl1bVNraWEuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNjIsNyArMTYyLDcgQEAgQ29sb3IgUmVu
ZGVyVGhlbWVDaHJvbWl1bVNraWE6OnBsYXRmb3JtSQogICAgIHJldHVybiBDb2xvcigweDMyLCAw
eDMyLCAweDMyKTsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWVDaHJvbWl1bVNraWE6OmZvY3VzUmlu
Z0NvbG9yKCkgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lQ2hyb21pdW1Ta2lhOjpwbGF0Zm9ybUZv
Y3VzUmluZ0NvbG9yKCkgY29uc3QKIHsKICAgICBzdGF0aWMgQ29sb3IgZm9jdXNSaW5nQ29sb3Io
MjI5LCAxNTEsIDAsIDI1NSk7CiAgICAgcmV0dXJuIGZvY3VzUmluZ0NvbG9yOwpJbmRleDogV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bVNraWEuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtU2tpYS5oCShyZXZpc2lvbiA0NTU2
MCkKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1Ta2lhLmgJKHdvcmtp
bmcgY29weSkKQEAgLTU0LDcgKzU0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2
aXJ0dWFsIENvbG9yIHBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoKSBj
b25zdDsKICAgICAgICAgdmlydHVhbCBDb2xvciBwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkZvcmVn
cm91bmRDb2xvcigpIGNvbnN0OwogICAgICAgICB2aXJ0dWFsIENvbG9yIHBsYXRmb3JtSW5hY3Rp
dmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoKSBjb25zdDsKLSAgICAgICAgdmlydHVhbCBDb2xv
ciBmb2N1c1JpbmdDb2xvcigpIGNvbnN0OworICAgICAgICB2aXJ0dWFsIENvbG9yIHBsYXRmb3Jt
Rm9jdXNSaW5nQ29sb3IoKSBjb25zdDsKIAogICAgICAgICAvLyBUbyBjaGFuZ2UgdGhlIGJsaW5r
IGludGVydmFsLCBvdmVycmlkZSBjYXJldEJsaW5rSW50ZXJ2YWxJbnRlcm5hbCBpbnN0ZWFkIG9m
IHRoaXMgb25lIHNvIHRoYXQgd2UgbWF5IHNoYXJlIGxheW91dCB0ZXN0IGNvZGUgYW4gaW50ZXJj
ZXB0cy4KICAgICAgICAgdmlydHVhbCBkb3VibGUgY2FyZXRCbGlua0ludGVydmFsKCkgY29uc3Q7
CkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLmgJKHJldmlzaW9uIDQ1NTYwKQorKysg
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMuaAkod29ya2luZyBjb3B5KQpAQCAtNTgs
NyArNTgsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBDb2xvciBwbGF0Zm9ybUFjdGl2ZUxpc3RC
b3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoKSBjb25zdDsKICAgICB2aXJ0dWFsIENvbG9yIHBs
YXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKCkgY29uc3Q7CiAg
ICAgdmlydHVhbCBDb2xvciBwbGF0Zm9ybUluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91
bmRDb2xvcigpIGNvbnN0OwotICAgIHZpcnR1YWwgQ29sb3IgZm9jdXNSaW5nQ29sb3IoKSBjb25z
dDsKKyAgICB2aXJ0dWFsIENvbG9yIHBsYXRmb3JtRm9jdXNSaW5nQ29sb3IoKSBjb25zdDsKIAog
ICAgIHZpcnR1YWwgU2Nyb2xsYmFyQ29udHJvbFNpemUgc2Nyb2xsYmFyQ29udHJvbFNpemVGb3JQ
YXJ0KENvbnRyb2xQYXJ0KSB7IHJldHVybiBTbWFsbFNjcm9sbGJhcjsgfQogICAgIApJbmRleDog
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0JKHJldmlzaW9uIDQ1NTYwKQorKysgV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTE1Nyw3ICsx
NTcsNyBAQCBDb2xvciBSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1JbmFjdGl2ZUxpCiAgICAgcmV0
dXJuIENvbG9yOjpibGFjazsKIH0KIAotQ29sb3IgUmVuZGVyVGhlbWVNYWM6OmZvY3VzUmluZ0Nv
bG9yKCkgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybUZvY3VzUmluZ0NvbG9y
KCkgY29uc3QKIHsKICAgICBpZiAodXNlc1Rlc3RNb2RlRm9jdXNSaW5nQ29sb3IoKSkKICAgICAg
ICAgcmV0dXJuIG9sZEFxdWFGb2N1c1JpbmdDb2xvcigpOwpJbmRleDogV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGhlbWVTYWZhcmkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRoZW1lU2FmYXJpLmNwcAkocmV2aXNpb24gNDU1NjApCisrKyBXZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUaGVtZVNhZmFyaS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc5LDggKzc5LDEw
IEBAIFBhc3NSZWZQdHI8UmVuZGVyVGhlbWU+IFJlbmRlclRoZW1lOjp0aGUKICAgICAvLyBGSVhN
RTogVGhpcyBpcyBjYWxsZWQgYmVmb3JlIFNldHRpbmdzIGhhcyBiZWVuIGluaXRpYWxpemVkIGJ5
IFdlYktpdCwgc28gd2lsbCByZXR1cm4gYQogICAgIC8vIHBvdGVudGlhbGx5IHdyb25nIGFuc3dl
ciB0aGUgdmVyeSBmaXJzdCB0aW1lIGl0J3MgY2FsbGVkIChzZWUKICAgICAvLyA8aHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI2NDkzPikuCi0gICAgaWYgKFNldHRpbmdz
OjpzaG91bGRQYWludE5hdGl2ZUNvbnRyb2xzKCkpCisgICAgaWYgKFNldHRpbmdzOjpzaG91bGRQ
YWludE5hdGl2ZUNvbnRyb2xzKCkpIHsKKyAgICAgICAgUmVuZGVyVGhlbWU6OnNldEN1c3RvbUZv
Y3VzUmluZ0NvbG9yKHNhZmFyaVRoZW1lLT5wbGF0Zm9ybUZvY3VzUmluZ0NvbG9yKCkpOwogICAg
ICAgICByZXR1cm4gd2luZG93c1RoZW1lOyAvLyBrZWVwIHRoZSByZWZlcmVuY2Ugb2Ygb25lLgor
ICAgIH0KICAgICByZXR1cm4gc2FmYXJpVGhlbWU7IC8vIGtlZXAgdGhlIHJlZmVyZW5jZSBvZiBv
bmUuCiB9CiAKQEAgLTE2MCw3ICsxNjIsNyBAQCBDb2xvciBSZW5kZXJUaGVtZVNhZmFyaTo6YWN0
aXZlTGlzdEJveFNlCiAgICAgcmV0dXJuIENvbG9yKDU2LCAxMTcsIDIxNSk7CiB9CiAKLUNvbG9y
IFJlbmRlclRoZW1lU2FmYXJpOjpmb2N1c1JpbmdDb2xvcigpIGNvbnN0CitDb2xvciBSZW5kZXJU
aGVtZVNhZmFyaTo6cGxhdGZvcm1Gb2N1c1JpbmdDb2xvcigpIGNvbnN0CiB7CiAgICAgc3RhdGlj
IENvbG9yIGZvY3VzUmluZ0NvbG9yOwogCkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
aGVtZVNhZmFyaS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1l
U2FmYXJpLmgJKHJldmlzaW9uIDQ1NTYwKQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhl
bWVTYWZhcmkuaAkod29ya2luZyBjb3B5KQpAQCAtNjksNyArNjksNyBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCBDb2xvciBwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKCkg
Y29uc3Q7CiAgICAgdmlydHVhbCBDb2xvciBhY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3Vu
ZENvbG9yKCkgY29uc3Q7CiAKLSAgICB2aXJ0dWFsIENvbG9yIGZvY3VzUmluZ0NvbG9yKCkgY29u
c3Q7CisgICAgdmlydHVhbCBDb2xvciBwbGF0Zm9ybUZvY3VzUmluZ0NvbG9yKCkgY29uc3Q7CiAK
ICAgICAvLyBTeXN0ZW0gZm9udHMuCiAgICAgdmlydHVhbCB2b2lkIHN5c3RlbUZvbnQoaW50IHBy
b3BJZCwgRm9udERlc2NyaXB0aW9uJikgY29uc3Q7Cg==
</data>
<flag name="review"
          id="16791"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>