<?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>30832</bug_id>
          
          <creation_ts>2009-10-27 13:06:32 -0700</creation_ts>
          <short_desc>Notify the chrome when the focused node has changed.</short_desc>
          <delta_ts>2009-10-30 14:01:06 -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>DOM</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Evan Stade">estade</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>darin</cc>
    
    <cc>eric</cc>
    
    <cc>fishd</cc>
    
    <cc>levin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>158328</commentid>
    <comment_count>0</comment_count>
    <who name="Evan Stade">estade</who>
    <bug_when>2009-10-27 13:06:32 -0700</bug_when>
    <thetext>This is similar to AX code that is already in place, except that this also informs the chrome when there stops being a focused node. This is needed for Chromium to show the anchor for links that have keyboard focus.

chromium side is here: http://codereview.chromium.org/337032

If there is some sort of test I should add for this, I&apos;ll be glad to.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>158793</commentid>
    <comment_count>1</comment_count>
      <attachid>42073</attachid>
    <who name="Evan Stade">estade</who>
    <bug_when>2009-10-28 17:54:46 -0700</bug_when>
    <thetext>Created attachment 42073
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>158797</commentid>
    <comment_count>2</comment_count>
      <attachid>42073</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-10-28 17:58:30 -0700</bug_when>
    <thetext>Comment on attachment 42073
proposed patch

You&apos;ll need to mark patches r=? for them to be reviewed.
See: http://webkit.org/coding/contributing.html

It&apos;s not clear to me why this is not already covered by existing AX apis.

This style is incorrect:
+    if (!focusChangeBlocked) {
+        page()-&gt;chrome()-&gt;focusedNodeChanged(m_focusedNode.get());
+    }
no {} around one-line ifs.

Please explain why no other port needs this/why this can&apos;t be implemented on top of existing AX infrastructure in WebCore/WebKit?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>158801</commentid>
    <comment_count>3</comment_count>
      <attachid>42073</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-10-28 18:03:03 -0700</bug_when>
    <thetext>Comment on attachment 42073
proposed patch

r- for the above mentioned reasons.  Thanks for marking it r? though. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>158804</commentid>
    <comment_count>4</comment_count>
    <who name="Evan Stade">estade</who>
    <bug_when>2009-10-28 18:05:01 -0700</bug_when>
    <thetext>other ports could use it if they wanted to, I suppose. I wasn&apos;t sure they&apos;d want to, since it is similar to the AX code, and I didn&apos;t want to change the way AX worked because of the possibility of ill consequences for those other platforms.

The difference from the AX infrastructure is that AX doesn&apos;t tell us when a node loses focus. (notice difference in the conditional)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>158807</commentid>
    <comment_count>5</comment_count>
      <attachid>42075</attachid>
    <who name="Evan Stade">estade</who>
    <bug_when>2009-10-28 18:20:55 -0700</bug_when>
    <thetext>Created attachment 42075
style fix

also, I don&apos;t view this as an accessibility feature any more than supporting tab to navigate a page is an accessibility feature.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>158820</commentid>
    <comment_count>6</comment_count>
      <attachid>42075</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-10-28 20:22:49 -0700</bug_when>
    <thetext>Comment on attachment 42075
style fix

A general purpose feature like this should not be added inside PLATFORM(CHROMIUM) ifdefs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>158825</commentid>
    <comment_count>7</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2009-10-28 21:21:46 -0700</bug_when>
    <thetext>Please add a bug link to the changelog as well (see other changelog entries).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>158826</commentid>
    <comment_count>8</comment_count>
      <attachid>42075</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2009-10-28 21:23:39 -0700</bug_when>
    <thetext>Comment on attachment 42075
style fix

r- for the two comments above (Darin Adler&apos;s and mine).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>158994</commentid>
    <comment_count>9</comment_count>
      <attachid>42121</attachid>
    <who name="Evan Stade">estade</who>
    <bug_when>2009-10-29 11:47:30 -0700</bug_when>
    <thetext>Created attachment 42121
more fixes

removed PLATFORM defines, added bu number to changelog</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>159226</commentid>
    <comment_count>10</comment_count>
      <attachid>42121</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2009-10-29 22:20:03 -0700</bug_when>
    <thetext>Comment on attachment 42121
more fixes

My only concern is that this will break the builds for non-chromium clients.

I think the easiest way to handle this is to not make this function pure  
   &quot;virtual void focusedNodeChanged(Node*) = 0&quot; 
but I would recommend against this.

The very nice thing about pure methods is that they help ports to quick realize when they got broken by a parameter being added/changed/etc.

So instead it would be *much better* to find each class that derives from ChromeClient and given them a default implementation that does nothing.

With this last change, I think this will be ready to go in.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>159369</commentid>
    <comment_count>11</comment_count>
    <who name="Evan Stade">estade</who>
    <bug_when>2009-10-30 11:02:52 -0700</bug_when>
    <thetext>That the reason I initially ifdefed it to chromium.

Anyway, I think I covered all the ChromeClient implementations that are in the WebKit tree (correct me if I&apos;m wrong). There are only two, EmptyChromeClient and SVGChromeClient (which inherits from the former). All the others are presumably in other repositories (for example, chrome&apos;s is in the chromium tree).

So whoever rolls this change into the chromium tree will need to simultaneously land my chrome-side change (actually I think it would work to land the chrome side change first). I don&apos;t know what the procedure is for other projects. Presumably this will break them and they will promptly realize they need a stub implementation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>159377</commentid>
    <comment_count>12</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2009-10-30 11:25:20 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; Anyway, I think I covered all the ChromeClient implementations that are in the
&gt; WebKit tree (correct me if I&apos;m wrong).

git grep &quot;public WebCore::ChromeClient&quot;
   WebKit/gtk/WebCoreSupport/ChromeClientGtk.h:    class ChromeClient : public WebCore::ChromeClient { 
   WebKit/mac/WebCoreSupport/WebChromeClient.h:class WebChromeClient : public WebCore::ChromeClient {
   WebKit/win/WebCoreSupport/WebChromeClient.h:class WebChromeClient : public WebCore::ChromeClient {

git grep &quot;public ChromeClient&quot;
   WebCore/loader/EmptyClients.h:class EmptyChromeClient : public ChromeClient {
   WebCore/page/chromium/ChromeClientChromium.h:    class ChromeClientChromium : public ChromeClient {
   WebKit/haiku/WebCoreSupport/ChromeClientHaiku.h:    class ChromeClientHaiku : public ChromeClient {
   WebKit/qt/WebCoreSupport/ChromeClientQt.h:    class ChromeClientQt : public ChromeClient
   WebKit/wx/WebKitSupport/ChromeClientWx.h:class ChromeClientWx : public ChromeClient {

It looks like there are at 8, so your patch is missing 6 of them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>159379</commentid>
    <comment_count>13</comment_count>
    <who name="Evan Stade">estade</who>
    <bug_when>2009-10-30 11:29:05 -0700</bug_when>
    <thetext>ah, I stupidly grepped in WebCore/ only. Patch coming up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>159389</commentid>
    <comment_count>14</comment_count>
      <attachid>42224</attachid>
    <who name="Evan Stade">estade</who>
    <bug_when>2009-10-30 11:58:24 -0700</bug_when>
    <thetext>Created attachment 42224
stubs

I&apos;m not sure what the convention is for all the various ChangeLog entries. I copied the same message into all of them. Would it be better to put &quot;add a stub implementation of a ChromeClient function&quot;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>159392</commentid>
    <comment_count>15</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-10-30 12:11:29 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; I&apos;m not sure what the convention is for all the various ChangeLog entries. I
&gt; copied the same message into all of them. Would it be better to put &quot;add a stub
&gt; implementation of a ChromeClient function&quot;?

Yes, I think so.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>159394</commentid>
    <comment_count>16</comment_count>
      <attachid>42224</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-10-30 12:13:02 -0700</bug_when>
    <thetext>Comment on attachment 42224
stubs

I don&apos;t think we need notImplemented() inside any of these functions. That&apos;s only there when we know we need to add code, but this is a case where an empty function is probably OK for most ports at least at first. There&apos;s not necessarily anything to implement.

Patch seems fine, r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>159395</commentid>
    <comment_count>17</comment_count>
      <attachid>42225</attachid>
    <who name="Evan Stade">estade</who>
    <bug_when>2009-10-30 12:13:41 -0700</bug_when>
    <thetext>Created attachment 42225
changelog desc changed

done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>159398</commentid>
    <comment_count>18</comment_count>
      <attachid>42225</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2009-10-30 12:15:28 -0700</bug_when>
    <thetext>Comment on attachment 42225
changelog desc changed

I&apos;ll land it and remove the notImplemented(); from the stub functions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>159435</commentid>
    <comment_count>19</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2009-10-30 14:01:06 -0700</bug_when>
    <thetext>Committed as http://trac.webkit.org/changeset/50351</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>42073</attachid>
            <date>2009-10-28 17:54:46 -0700</date>
            <delta_ts>2009-10-28 18:20:55 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>kbf.diff</filename>
            <type>text/plain</type>
            <size>4060</size>
            <attacher name="Evan Stade">estade</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1MDE2OCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjIgQEAKKzIwMDktMTAtMjcgIEV2YW4gU3RhZGUgIDxlc3RhZGVAY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5v
dGlmeSB0aGUgY2hyb21lIHdoZW4gdGhlIGZvY3VzZWQgbm9kZSBoYXMgY2hhbmdlZC4KKworICAg
ICAgICBUaGlzIGlzIHNpbWlsYXIgdG8gQVggY29kZSB0aGF0IGlzIGFscmVhZHkgaW4gcGxhY2Us
IGV4Y2VwdCB0aGF0IHRoaXMgYWxzbyBpbmZvcm1zIHRoZQorICAgICAgICBjaHJvbWUgd2hlbiB0
aGVyZSBzdG9wcyBiZWluZyBhIGZvY3VzZWQgbm9kZS4gVGhpcyBpcyBuZWVkZWQgZm9yIENocm9t
aXVtIHRvIHNob3cgdGhlCisgICAgICAgIGFuY2hvciBmb3IgbGlua3MgdGhhdCBoYXZlIGtleWJv
YXJkIGZvY3VzLgorCisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50OjpzZXRGb2N1c2VkTm9kZSk6CisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xp
ZW50cy5oOgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlDaHJvbWVDbGllbnQ6OmZvY3VzZWROb2Rl
Q2hhbmdlZCk6CisgICAgICAgICogcGFnZS9DaHJvbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q2hyb21lOjpmb2N1c2VkTm9kZUNoYW5nZWQpOgorICAgICAgICAqIHBhZ2UvQ2hyb21lLmg6Cisg
ICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDoKKwogMjAwOS0xMC0yNyAgSm9zZXBoIFBlY29y
YXJvICA8am9lcGVja0B3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFRpbW90aHkg
SGF0Y2hlci4KSW5kZXg6IFdlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAJKHJldmlzaW9uIDUwMTY3KQorKysgV2ViQ29yZS9kb20v
RG9jdW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNzQxLDYgKzI3NDEsMTAgQEAgYm9vbCBE
b2N1bWVudDo6c2V0Rm9jdXNlZE5vZGUoUGFzc1JlZlB0cgogCiAgICAgICAgIGF4T2JqZWN0Q2Fj
aGUoKS0+aGFuZGxlRm9jdXNlZFVJRWxlbWVudENoYW5nZWQob2xkRm9jdXNlZFJlbmRlcmVyLCBu
ZXdGb2N1c2VkUmVuZGVyZXIpOwogICAgIH0KKyNlbGlmIFBMQVRGT1JNKENIUk9NSVVNKQorICAg
IGlmICghZm9jdXNDaGFuZ2VCbG9ja2VkKSB7CisgICAgICAgIHBhZ2UoKS0+Y2hyb21lKCktPmZv
Y3VzZWROb2RlQ2hhbmdlZChtX2ZvY3VzZWROb2RlLmdldCgpKTsKKyAgICB9CiAjZW5kaWYKIAog
U2V0Rm9jdXNlZE5vZGVEb25lOgpJbmRleDogV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgJKHJldmlzaW9uIDUw
MTY3KQorKysgV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgJKHdvcmtpbmcgY29weSkKQEAg
LTc2LDYgKzc2LDEwIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgY2FuVGFrZUZvY3VzKEZv
Y3VzRGlyZWN0aW9uKSB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgdm9pZCB0YWtlRm9j
dXMoRm9jdXNEaXJlY3Rpb24pIHsgfQogCisjaWYgUExBVEZPUk0oQ0hST01JVU0pCisgICAgdmly
dHVhbCB2b2lkIGZvY3VzZWROb2RlQ2hhbmdlZChOb2RlKikgeyB9CisjZW5kaWYKKwogICAgIHZp
cnR1YWwgUGFnZSogY3JlYXRlV2luZG93KEZyYW1lKiwgY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYs
IGNvbnN0IFdpbmRvd0ZlYXR1cmVzJikgeyByZXR1cm4gMDsgfQogICAgIHZpcnR1YWwgdm9pZCBz
aG93KCkgeyB9CiAKSW5kZXg6IFdlYkNvcmUvcGFnZS9DaHJvbWUuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvcGFnZS9DaHJvbWUuY3BwCShyZXZpc2lvbiA1MDE2NykKKysrIFdlYkNvcmUvcGFn
ZS9DaHJvbWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNDcsNiArMTQ3LDEzIEBAIHZvaWQgQ2hy
b21lOjp0YWtlRm9jdXMoRm9jdXNEaXJlY3Rpb24gZGkKICAgICBtX2NsaWVudC0+dGFrZUZvY3Vz
KGRpcmVjdGlvbik7CiB9CiAKKyNpZiBQTEFURk9STShDSFJPTUlVTSkKK3ZvaWQgQ2hyb21lOjpm
b2N1c2VkTm9kZUNoYW5nZWQoTm9kZSogbm9kZSkgY29uc3QKK3sKKyAgICBtX2NsaWVudC0+Zm9j
dXNlZE5vZGVDaGFuZ2VkKG5vZGUpOworfQorI2VuZGlmCisKIFBhZ2UqIENocm9tZTo6Y3JlYXRl
V2luZG93KEZyYW1lKiBmcmFtZSwgY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYgcmVxdWVzdCwgY29u
c3QgV2luZG93RmVhdHVyZXMmIGZlYXR1cmVzKSBjb25zdAogewogICAgIFBhZ2UqIG5ld1BhZ2Ug
PSBtX2NsaWVudC0+Y3JlYXRlV2luZG93KGZyYW1lLCByZXF1ZXN0LCBmZWF0dXJlcyk7CkluZGV4
OiBXZWJDb3JlL3BhZ2UvQ2hyb21lLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL0Nocm9t
ZS5oCShyZXZpc2lvbiA1MDE2NykKKysrIFdlYkNvcmUvcGFnZS9DaHJvbWUuaAkod29ya2luZyBj
b3B5KQpAQCAtNDIsNiArNDIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgR2Vv
bG9jYXRpb247CiAgICAgY2xhc3MgSGl0VGVzdFJlc3VsdDsKICAgICBjbGFzcyBJbnRSZWN0Owor
ICAgIGNsYXNzIE5vZGU7CiAgICAgY2xhc3MgUGFnZTsKICAgICBjbGFzcyBTdHJpbmc7CiAjaWYg
RU5BQkxFKE5PVElGSUNBVElPTlMpCkBAIC04Miw2ICs4MywxMCBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAgICAgICAgIGJvb2wgY2FuVGFrZUZvY3VzKEZvY3VzRGlyZWN0aW9uKSBjb25zdDsKICAg
ICAgICAgdm9pZCB0YWtlRm9jdXMoRm9jdXNEaXJlY3Rpb24pIGNvbnN0OwogCisjaWYgUExBVEZP
Uk0oQ0hST01JVU0pCisgICAgICAgIHZvaWQgZm9jdXNlZE5vZGVDaGFuZ2VkKE5vZGUqKSBjb25z
dDsKKyNlbmRpZgorCiAgICAgICAgIFBhZ2UqIGNyZWF0ZVdpbmRvdyhGcmFtZSosIGNvbnN0IEZy
YW1lTG9hZFJlcXVlc3QmLCBjb25zdCBXaW5kb3dGZWF0dXJlcyYpIGNvbnN0OwogICAgICAgICB2
b2lkIHNob3coKSBjb25zdDsKIApJbmRleDogV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAkocmV2aXNpb24gNTAxNjcp
CisrKyBXZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTgzLDYg
KzgzLDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCBib29sIGNhblRh
a2VGb2N1cyhGb2N1c0RpcmVjdGlvbikgPSAwOwogICAgICAgICB2aXJ0dWFsIHZvaWQgdGFrZUZv
Y3VzKEZvY3VzRGlyZWN0aW9uKSA9IDA7CiAKKyNpZiBQTEFURk9STShDSFJPTUlVTSkKKyAgICAg
ICAgdmlydHVhbCB2b2lkIGZvY3VzZWROb2RlQ2hhbmdlZChOb2RlKikgPSAwOworI2VuZGlmCisK
ICAgICAgICAgLy8gVGhlIEZyYW1lIHBvaW50ZXIgcHJvdmlkZXMgdGhlIENocm9tZUNsaWVudCB3
aXRoIGNvbnRleHQgYWJvdXQgd2hpY2gKICAgICAgICAgLy8gRnJhbWUgd2FudHMgdG8gY3JlYXRl
IHRoZSBuZXcgUGFnZS4gIEFsc28sIHRoZSBuZXdseSBjcmVhdGVkIHdpbmRvdwogICAgICAgICAv
LyBzaG91bGQgbm90IGJlIHNob3duIHRvIHRoZSB1c2VyIHVudGlsIHRoZSBDaHJvbWVDbGllbnQg
b2YgdGhlIG5ld2x5Cg==
</data>
<flag name="review"
          id="23575"
          type_id="1"
          status="-"
          setter="eric"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>42075</attachid>
            <date>2009-10-28 18:20:55 -0700</date>
            <delta_ts>2009-10-29 11:47:30 -0700</delta_ts>
            <desc>style fix</desc>
            <filename>kbf.diff</filename>
            <type>text/plain</type>
            <size>4050</size>
            <attacher name="Evan Stade">estade</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1MDE2OCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjIgQEAKKzIwMDktMTAtMjcgIEV2YW4gU3RhZGUgIDxlc3RhZGVAY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5v
dGlmeSB0aGUgY2hyb21lIHdoZW4gdGhlIGZvY3VzZWQgbm9kZSBoYXMgY2hhbmdlZC4KKworICAg
ICAgICBUaGlzIGlzIHNpbWlsYXIgdG8gQVggY29kZSB0aGF0IGlzIGFscmVhZHkgaW4gcGxhY2Us
IGV4Y2VwdCB0aGF0IHRoaXMgYWxzbyBpbmZvcm1zIHRoZQorICAgICAgICBjaHJvbWUgd2hlbiB0
aGVyZSBzdG9wcyBiZWluZyBhIGZvY3VzZWQgbm9kZS4gVGhpcyBpcyBuZWVkZWQgZm9yIENocm9t
aXVtIHRvIHNob3cgdGhlCisgICAgICAgIGFuY2hvciBmb3IgbGlua3MgdGhhdCBoYXZlIGtleWJv
YXJkIGZvY3VzLgorCisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50OjpzZXRGb2N1c2VkTm9kZSk6CisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xp
ZW50cy5oOgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlDaHJvbWVDbGllbnQ6OmZvY3VzZWROb2Rl
Q2hhbmdlZCk6CisgICAgICAgICogcGFnZS9DaHJvbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q2hyb21lOjpmb2N1c2VkTm9kZUNoYW5nZWQpOgorICAgICAgICAqIHBhZ2UvQ2hyb21lLmg6Cisg
ICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDoKKwogMjAwOS0xMC0yNyAgSm9zZXBoIFBlY29y
YXJvICA8am9lcGVja0B3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFRpbW90aHkg
SGF0Y2hlci4KSW5kZXg6IFdlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAJKHJldmlzaW9uIDUwMTY3KQorKysgV2ViQ29yZS9kb20v
RG9jdW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNzQxLDYgKzI3NDEsOSBAQCBib29sIERv
Y3VtZW50OjpzZXRGb2N1c2VkTm9kZShQYXNzUmVmUHRyCiAKICAgICAgICAgYXhPYmplY3RDYWNo
ZSgpLT5oYW5kbGVGb2N1c2VkVUlFbGVtZW50Q2hhbmdlZChvbGRGb2N1c2VkUmVuZGVyZXIsIG5l
d0ZvY3VzZWRSZW5kZXJlcik7CiAgICAgfQorI2VsaWYgUExBVEZPUk0oQ0hST01JVU0pCisgICAg
aWYgKCFmb2N1c0NoYW5nZUJsb2NrZWQpCisgICAgICAgIHBhZ2UoKS0+Y2hyb21lKCktPmZvY3Vz
ZWROb2RlQ2hhbmdlZChtX2ZvY3VzZWROb2RlLmdldCgpKTsKICNlbmRpZgogCiBTZXRGb2N1c2Vk
Tm9kZURvbmU6CkluZGV4OiBXZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAkocmV2aXNpb24gNTAxNjcpCisrKyBX
ZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAkod29ya2luZyBjb3B5KQpAQCAtNzYsNiArNzYs
MTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBjYW5UYWtlRm9jdXMoRm9jdXNEaXJlY3Rp
b24pIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCB2b2lkIHRha2VGb2N1cyhGb2N1c0Rp
cmVjdGlvbikgeyB9CiAKKyNpZiBQTEFURk9STShDSFJPTUlVTSkKKyAgICB2aXJ0dWFsIHZvaWQg
Zm9jdXNlZE5vZGVDaGFuZ2VkKE5vZGUqKSB7IH0KKyNlbmRpZgorCiAgICAgdmlydHVhbCBQYWdl
KiBjcmVhdGVXaW5kb3coRnJhbWUqLCBjb25zdCBGcmFtZUxvYWRSZXF1ZXN0JiwgY29uc3QgV2lu
ZG93RmVhdHVyZXMmKSB7IHJldHVybiAwOyB9CiAgICAgdmlydHVhbCB2b2lkIHNob3coKSB7IH0K
IApJbmRleDogV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9w
YWdlL0Nocm9tZS5jcHAJKHJldmlzaW9uIDUwMTY3KQorKysgV2ViQ29yZS9wYWdlL0Nocm9tZS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTE0Nyw2ICsxNDcsMTMgQEAgdm9pZCBDaHJvbWU6OnRha2VG
b2N1cyhGb2N1c0RpcmVjdGlvbiBkaQogICAgIG1fY2xpZW50LT50YWtlRm9jdXMoZGlyZWN0aW9u
KTsKIH0KIAorI2lmIFBMQVRGT1JNKENIUk9NSVVNKQordm9pZCBDaHJvbWU6OmZvY3VzZWROb2Rl
Q2hhbmdlZChOb2RlKiBub2RlKSBjb25zdAoreworICAgIG1fY2xpZW50LT5mb2N1c2VkTm9kZUNo
YW5nZWQobm9kZSk7Cit9CisjZW5kaWYKKwogUGFnZSogQ2hyb21lOjpjcmVhdGVXaW5kb3coRnJh
bWUqIGZyYW1lLCBjb25zdCBGcmFtZUxvYWRSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBXaW5kb3dG
ZWF0dXJlcyYgZmVhdHVyZXMpIGNvbnN0CiB7CiAgICAgUGFnZSogbmV3UGFnZSA9IG1fY2xpZW50
LT5jcmVhdGVXaW5kb3coZnJhbWUsIHJlcXVlc3QsIGZlYXR1cmVzKTsKSW5kZXg6IFdlYkNvcmUv
cGFnZS9DaHJvbWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvQ2hyb21lLmgJKHJldmlz
aW9uIDUwMTY3KQorKysgV2ViQ29yZS9wYWdlL0Nocm9tZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00
Miw2ICs0Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBHZW9sb2NhdGlvbjsK
ICAgICBjbGFzcyBIaXRUZXN0UmVzdWx0OwogICAgIGNsYXNzIEludFJlY3Q7CisgICAgY2xhc3Mg
Tm9kZTsKICAgICBjbGFzcyBQYWdlOwogICAgIGNsYXNzIFN0cmluZzsKICNpZiBFTkFCTEUoTk9U
SUZJQ0FUSU9OUykKQEAgLTgyLDYgKzgzLDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAg
ICAgYm9vbCBjYW5UYWtlRm9jdXMoRm9jdXNEaXJlY3Rpb24pIGNvbnN0OwogICAgICAgICB2b2lk
IHRha2VGb2N1cyhGb2N1c0RpcmVjdGlvbikgY29uc3Q7CiAKKyNpZiBQTEFURk9STShDSFJPTUlV
TSkKKyAgICAgICAgdm9pZCBmb2N1c2VkTm9kZUNoYW5nZWQoTm9kZSopIGNvbnN0OworI2VuZGlm
CisKICAgICAgICAgUGFnZSogY3JlYXRlV2luZG93KEZyYW1lKiwgY29uc3QgRnJhbWVMb2FkUmVx
dWVzdCYsIGNvbnN0IFdpbmRvd0ZlYXR1cmVzJikgY29uc3Q7CiAgICAgICAgIHZvaWQgc2hvdygp
IGNvbnN0OwogCkluZGV4OiBXZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCShyZXZpc2lvbiA1MDE2NykKKysrIFdlYkNv
cmUvcGFnZS9DaHJvbWVDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtODMsNiArODMsMTAgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFsIGJvb2wgY2FuVGFrZUZvY3VzKEZv
Y3VzRGlyZWN0aW9uKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCB0YWtlRm9jdXMoRm9jdXNE
aXJlY3Rpb24pID0gMDsKIAorI2lmIFBMQVRGT1JNKENIUk9NSVVNKQorICAgICAgICB2aXJ0dWFs
IHZvaWQgZm9jdXNlZE5vZGVDaGFuZ2VkKE5vZGUqKSA9IDA7CisjZW5kaWYKKwogICAgICAgICAv
LyBUaGUgRnJhbWUgcG9pbnRlciBwcm92aWRlcyB0aGUgQ2hyb21lQ2xpZW50IHdpdGggY29udGV4
dCBhYm91dCB3aGljaAogICAgICAgICAvLyBGcmFtZSB3YW50cyB0byBjcmVhdGUgdGhlIG5ldyBQ
YWdlLiAgQWxzbywgdGhlIG5ld2x5IGNyZWF0ZWQgd2luZG93CiAgICAgICAgIC8vIHNob3VsZCBu
b3QgYmUgc2hvd24gdG8gdGhlIHVzZXIgdW50aWwgdGhlIENocm9tZUNsaWVudCBvZiB0aGUgbmV3
bHkK
</data>
<flag name="review"
          id="23577"
          type_id="1"
          status="-"
          setter="levin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>42121</attachid>
            <date>2009-10-29 11:47:30 -0700</date>
            <delta_ts>2009-10-30 11:58:24 -0700</delta_ts>
            <desc>more fixes</desc>
            <filename>kbf.diff</filename>
            <type>text/plain</type>
            <size>3975</size>
            <attacher name="Evan Stade">estade</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1MDE2OCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjMgQEAKKzIwMDktMTAtMjcgIEV2YW4gU3RhZGUgIDxlc3RhZGVAY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5v
dGlmeSB0aGUgY2hyb21lIHdoZW4gdGhlIGZvY3VzZWQgbm9kZSBoYXMgY2hhbmdlZC4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMwODMyCisKKyAgICAg
ICAgVGhpcyBpcyBzaW1pbGFyIHRvIEFYIGNvZGUgdGhhdCBpcyBhbHJlYWR5IGluIHBsYWNlLCBl
eGNlcHQgdGhhdCB0aGlzIGFsc28gaW5mb3JtcyB0aGUKKyAgICAgICAgY2hyb21lIHdoZW4gdGhl
cmUgc3RvcHMgYmVpbmcgYSBmb2N1c2VkIG5vZGUuIFRoaXMgaXMgbmVlZGVkIGZvciBhIGJyb3dz
ZXIgdG8gc2hvdyB0aGUKKyAgICAgICAgYW5jaG9yIGZvciBsaW5rcyB0aGF0IGhhdmUga2V5Ym9h
cmQgZm9jdXMuCisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RG9jdW1lbnQ6OnNldEZvY3VzZWROb2RlKToKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGll
bnRzLmg6CisgICAgICAgIChXZWJDb3JlOjpFbXB0eUNocm9tZUNsaWVudDo6Zm9jdXNlZE5vZGVD
aGFuZ2VkKToKKyAgICAgICAgKiBwYWdlL0Nocm9tZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpD
aHJvbWU6OmZvY3VzZWROb2RlQ2hhbmdlZCk6CisgICAgICAgICogcGFnZS9DaHJvbWUuaDoKKyAg
ICAgICAgKiBwYWdlL0Nocm9tZUNsaWVudC5oOgorCiAyMDA5LTEwLTI3ICBKb3NlcGggUGVjb3Jh
cm8gIDxqb2VwZWNrQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgVGltb3RoeSBI
YXRjaGVyLgpJbmRleDogV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcAkocmV2aXNpb24gNTAxNjcpCisrKyBXZWJDb3JlL2RvbS9E
b2N1bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3NDIsNiArMjc0Miw4IEBAIGJvb2wgRG9j
dW1lbnQ6OnNldEZvY3VzZWROb2RlKFBhc3NSZWZQdHIKICAgICAgICAgYXhPYmplY3RDYWNoZSgp
LT5oYW5kbGVGb2N1c2VkVUlFbGVtZW50Q2hhbmdlZChvbGRGb2N1c2VkUmVuZGVyZXIsIG5ld0Zv
Y3VzZWRSZW5kZXJlcik7CiAgICAgfQogI2VuZGlmCisgICAgaWYgKCFmb2N1c0NoYW5nZUJsb2Nr
ZWQpCisgICAgICAgIHBhZ2UoKS0+Y2hyb21lKCktPmZvY3VzZWROb2RlQ2hhbmdlZChtX2ZvY3Vz
ZWROb2RlLmdldCgpKTsKIAogU2V0Rm9jdXNlZE5vZGVEb25lOgogICAgIHVwZGF0ZVN0eWxlSWZO
ZWVkZWQoKTsKSW5kZXg6IFdlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCShyZXZpc2lvbiA1MDE2NykKKysrIFdl
YkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCSh3b3JraW5nIGNvcHkpCkBAIC03Niw2ICs3Niw4
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgY2FuVGFrZUZvY3VzKEZvY3VzRGlyZWN0aW9u
KSB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgdm9pZCB0YWtlRm9jdXMoRm9jdXNEaXJl
Y3Rpb24pIHsgfQogCisgICAgdmlydHVhbCB2b2lkIGZvY3VzZWROb2RlQ2hhbmdlZChOb2RlKikg
eyB9CisKICAgICB2aXJ0dWFsIFBhZ2UqIGNyZWF0ZVdpbmRvdyhGcmFtZSosIGNvbnN0IEZyYW1l
TG9hZFJlcXVlc3QmLCBjb25zdCBXaW5kb3dGZWF0dXJlcyYpIHsgcmV0dXJuIDA7IH0KICAgICB2
aXJ0dWFsIHZvaWQgc2hvdygpIHsgfQogCkluZGV4OiBXZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcAkocmV2aXNpb24gNTAxNjcpCisr
KyBXZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTQ3LDYgKzE0Nywx
MSBAQCB2b2lkIENocm9tZTo6dGFrZUZvY3VzKEZvY3VzRGlyZWN0aW9uIGRpCiAgICAgbV9jbGll
bnQtPnRha2VGb2N1cyhkaXJlY3Rpb24pOwogfQogCit2b2lkIENocm9tZTo6Zm9jdXNlZE5vZGVD
aGFuZ2VkKE5vZGUqIG5vZGUpIGNvbnN0Cit7CisgICAgbV9jbGllbnQtPmZvY3VzZWROb2RlQ2hh
bmdlZChub2RlKTsKK30KKwogUGFnZSogQ2hyb21lOjpjcmVhdGVXaW5kb3coRnJhbWUqIGZyYW1l
LCBjb25zdCBGcmFtZUxvYWRSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBXaW5kb3dGZWF0dXJlcyYg
ZmVhdHVyZXMpIGNvbnN0CiB7CiAgICAgUGFnZSogbmV3UGFnZSA9IG1fY2xpZW50LT5jcmVhdGVX
aW5kb3coZnJhbWUsIHJlcXVlc3QsIGZlYXR1cmVzKTsKSW5kZXg6IFdlYkNvcmUvcGFnZS9DaHJv
bWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvQ2hyb21lLmgJKHJldmlzaW9uIDUwMTY3
KQorKysgV2ViQ29yZS9wYWdlL0Nocm9tZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00Miw2ICs0Miw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBHZW9sb2NhdGlvbjsKICAgICBjbGFz
cyBIaXRUZXN0UmVzdWx0OwogICAgIGNsYXNzIEludFJlY3Q7CisgICAgY2xhc3MgTm9kZTsKICAg
ICBjbGFzcyBQYWdlOwogICAgIGNsYXNzIFN0cmluZzsKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9O
UykKQEAgLTgyLDYgKzgzLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBib29sIGNh
blRha2VGb2N1cyhGb2N1c0RpcmVjdGlvbikgY29uc3Q7CiAgICAgICAgIHZvaWQgdGFrZUZvY3Vz
KEZvY3VzRGlyZWN0aW9uKSBjb25zdDsKIAorICAgICAgICB2b2lkIGZvY3VzZWROb2RlQ2hhbmdl
ZChOb2RlKikgY29uc3Q7CisKICAgICAgICAgUGFnZSogY3JlYXRlV2luZG93KEZyYW1lKiwgY29u
c3QgRnJhbWVMb2FkUmVxdWVzdCYsIGNvbnN0IFdpbmRvd0ZlYXR1cmVzJikgY29uc3Q7CiAgICAg
ICAgIHZvaWQgc2hvdygpIGNvbnN0OwogCkluZGV4OiBXZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCShyZXZpc2lvbiA1
MDE2NykKKysrIFdlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAt
ODMsNiArODMsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBj
YW5UYWtlRm9jdXMoRm9jdXNEaXJlY3Rpb24pID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lkIHRh
a2VGb2N1cyhGb2N1c0RpcmVjdGlvbikgPSAwOwogCisgICAgICAgIHZpcnR1YWwgdm9pZCBmb2N1
c2VkTm9kZUNoYW5nZWQoTm9kZSopID0gMDsKKwogICAgICAgICAvLyBUaGUgRnJhbWUgcG9pbnRl
ciBwcm92aWRlcyB0aGUgQ2hyb21lQ2xpZW50IHdpdGggY29udGV4dCBhYm91dCB3aGljaAogICAg
ICAgICAvLyBGcmFtZSB3YW50cyB0byBjcmVhdGUgdGhlIG5ldyBQYWdlLiAgQWxzbywgdGhlIG5l
d2x5IGNyZWF0ZWQgd2luZG93CiAgICAgICAgIC8vIHNob3VsZCBub3QgYmUgc2hvd24gdG8gdGhl
IHVzZXIgdW50aWwgdGhlIENocm9tZUNsaWVudCBvZiB0aGUgbmV3bHkK
</data>
<flag name="review"
          id="23623"
          type_id="1"
          status="-"
          setter="levin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>42224</attachid>
            <date>2009-10-30 11:58:24 -0700</date>
            <delta_ts>2009-10-30 12:13:41 -0700</delta_ts>
            <desc>stubs</desc>
            <filename>kbf.diff</filename>
            <type>text/plain</type>
            <size>16151</size>
            <attacher name="Evan Stade">estade</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1MDM0NykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjMgQEAKKzIwMDktMTAtMzAgIEV2YW4gU3RhZGUgIDxlc3RhZGVAY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5v
dGlmeSB0aGUgY2hyb21lIHdoZW4gdGhlIGZvY3VzZWQgbm9kZSBoYXMgY2hhbmdlZC4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMwODMyCisKKyAgICAg
ICAgVGhpcyBpcyBzaW1pbGFyIHRvIEFYIGNvZGUgdGhhdCBpcyBhbHJlYWR5IGluIHBsYWNlLCBl
eGNlcHQgdGhhdCB0aGlzIGFsc28gaW5mb3JtcyB0aGUKKyAgICAgICAgY2hyb21lIHdoZW4gdGhl
cmUgc3RvcHMgYmVpbmcgYSBmb2N1c2VkIG5vZGUuIFRoaXMgaXMgbmVlZGVkIGZvciBhIGJyb3dz
ZXIgdG8gc2hvdyB0aGUKKyAgICAgICAgYW5jaG9yIGZvciBsaW5rcyB0aGF0IGhhdmUga2V5Ym9h
cmQgZm9jdXMuCisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RG9jdW1lbnQ6OnNldEZvY3VzZWROb2RlKToKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGll
bnRzLmg6CisgICAgICAgIChXZWJDb3JlOjpFbXB0eUNocm9tZUNsaWVudDo6Zm9jdXNlZE5vZGVD
aGFuZ2VkKToKKyAgICAgICAgKiBwYWdlL0Nocm9tZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpD
aHJvbWU6OmZvY3VzZWROb2RlQ2hhbmdlZCk6CisgICAgICAgICogcGFnZS9DaHJvbWUuaDoKKyAg
ICAgICAgKiBwYWdlL0Nocm9tZUNsaWVudC5oOgorCiAyMDA5LTEwLTMwICBEbWl0cnkgVGl0b3Yg
IDxkaW1pY2hAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERpbWl0cmkgR2xh
emtvdi4KSW5kZXg6IFdlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL2RvbS9Eb2N1bWVudC5jcHAJKHJldmlzaW9uIDUwMTY3KQorKysgV2ViQ29yZS9kb20vRG9j
dW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNzQyLDYgKzI3NDIsOCBAQCBib29sIERvY3Vt
ZW50OjpzZXRGb2N1c2VkTm9kZShQYXNzUmVmUHRyCiAgICAgICAgIGF4T2JqZWN0Q2FjaGUoKS0+
aGFuZGxlRm9jdXNlZFVJRWxlbWVudENoYW5nZWQob2xkRm9jdXNlZFJlbmRlcmVyLCBuZXdGb2N1
c2VkUmVuZGVyZXIpOwogICAgIH0KICNlbmRpZgorICAgIGlmICghZm9jdXNDaGFuZ2VCbG9ja2Vk
KQorICAgICAgICBwYWdlKCktPmNocm9tZSgpLT5mb2N1c2VkTm9kZUNoYW5nZWQobV9mb2N1c2Vk
Tm9kZS5nZXQoKSk7CiAKIFNldEZvY3VzZWROb2RlRG9uZToKICAgICB1cGRhdGVTdHlsZUlmTmVl
ZGVkKCk7CkluZGV4OiBXZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAkocmV2aXNpb24gNTAxNjcpCisrKyBXZWJD
b3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAkod29ya2luZyBjb3B5KQpAQCAtNzYsNiArNzYsOCBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGNhblRha2VGb2N1cyhGb2N1c0RpcmVjdGlvbikg
eyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIHZvaWQgdGFrZUZvY3VzKEZvY3VzRGlyZWN0
aW9uKSB7IH0KIAorICAgIHZpcnR1YWwgdm9pZCBmb2N1c2VkTm9kZUNoYW5nZWQoTm9kZSopIHsg
fQorCiAgICAgdmlydHVhbCBQYWdlKiBjcmVhdGVXaW5kb3coRnJhbWUqLCBjb25zdCBGcmFtZUxv
YWRSZXF1ZXN0JiwgY29uc3QgV2luZG93RmVhdHVyZXMmKSB7IHJldHVybiAwOyB9CiAgICAgdmly
dHVhbCB2b2lkIHNob3coKSB7IH0KIApJbmRleDogV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAJKHJldmlzaW9uIDUwMTY3KQorKysg
V2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0Nyw2ICsxNDcsMTEg
QEAgdm9pZCBDaHJvbWU6OnRha2VGb2N1cyhGb2N1c0RpcmVjdGlvbiBkaQogICAgIG1fY2xpZW50
LT50YWtlRm9jdXMoZGlyZWN0aW9uKTsKIH0KIAordm9pZCBDaHJvbWU6OmZvY3VzZWROb2RlQ2hh
bmdlZChOb2RlKiBub2RlKSBjb25zdAoreworICAgIG1fY2xpZW50LT5mb2N1c2VkTm9kZUNoYW5n
ZWQobm9kZSk7Cit9CisKIFBhZ2UqIENocm9tZTo6Y3JlYXRlV2luZG93KEZyYW1lKiBmcmFtZSwg
Y29uc3QgRnJhbWVMb2FkUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgV2luZG93RmVhdHVyZXMmIGZl
YXR1cmVzKSBjb25zdAogewogICAgIFBhZ2UqIG5ld1BhZ2UgPSBtX2NsaWVudC0+Y3JlYXRlV2lu
ZG93KGZyYW1lLCByZXF1ZXN0LCBmZWF0dXJlcyk7CkluZGV4OiBXZWJDb3JlL3BhZ2UvQ2hyb21l
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL0Nocm9tZS5oCShyZXZpc2lvbiA1MDE2NykK
KysrIFdlYkNvcmUvcGFnZS9DaHJvbWUuaAkod29ya2luZyBjb3B5KQpAQCAtNDIsNiArNDIsNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgR2VvbG9jYXRpb247CiAgICAgY2xhc3Mg
SGl0VGVzdFJlc3VsdDsKICAgICBjbGFzcyBJbnRSZWN0OworICAgIGNsYXNzIE5vZGU7CiAgICAg
Y2xhc3MgUGFnZTsKICAgICBjbGFzcyBTdHJpbmc7CiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMp
CkBAIC04Miw2ICs4Myw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgYm9vbCBjYW5U
YWtlRm9jdXMoRm9jdXNEaXJlY3Rpb24pIGNvbnN0OwogICAgICAgICB2b2lkIHRha2VGb2N1cyhG
b2N1c0RpcmVjdGlvbikgY29uc3Q7CiAKKyAgICAgICAgdm9pZCBmb2N1c2VkTm9kZUNoYW5nZWQo
Tm9kZSopIGNvbnN0OworCiAgICAgICAgIFBhZ2UqIGNyZWF0ZVdpbmRvdyhGcmFtZSosIGNvbnN0
IEZyYW1lTG9hZFJlcXVlc3QmLCBjb25zdCBXaW5kb3dGZWF0dXJlcyYpIGNvbnN0OwogICAgICAg
ICB2b2lkIHNob3coKSBjb25zdDsKIApJbmRleDogV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAkocmV2aXNpb24gNTAx
NjcpCisrKyBXZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTgz
LDYgKzgzLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFsIGJvb2wgY2Fu
VGFrZUZvY3VzKEZvY3VzRGlyZWN0aW9uKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCB0YWtl
Rm9jdXMoRm9jdXNEaXJlY3Rpb24pID0gMDsKIAorICAgICAgICB2aXJ0dWFsIHZvaWQgZm9jdXNl
ZE5vZGVDaGFuZ2VkKE5vZGUqKSA9IDA7CisKICAgICAgICAgLy8gVGhlIEZyYW1lIHBvaW50ZXIg
cHJvdmlkZXMgdGhlIENocm9tZUNsaWVudCB3aXRoIGNvbnRleHQgYWJvdXQgd2hpY2gKICAgICAg
ICAgLy8gRnJhbWUgd2FudHMgdG8gY3JlYXRlIHRoZSBuZXcgUGFnZS4gIEFsc28sIHRoZSBuZXds
eSBjcmVhdGVkIHdpbmRvdwogICAgICAgICAvLyBzaG91bGQgbm90IGJlIHNob3duIHRvIHRoZSB1
c2VyIHVudGlsIHRoZSBDaHJvbWVDbGllbnQgb2YgdGhlIG5ld2x5CkluZGV4OiBXZWJLaXQvZ3Rr
L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL0NoYW5nZUxvZwkocmV2aXNpb24g
NTAzNDcpCisrKyBXZWJLaXQvZ3RrL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsx
LDE4IEBACisyMDA5LTEwLTMwICBFdmFuIFN0YWRlICA8ZXN0YWRlQGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBOb3RpZnkgdGhl
IGNocm9tZSB3aGVuIHRoZSBmb2N1c2VkIG5vZGUgaGFzIGNoYW5nZWQuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMDgzMgorCisgICAgICAgIFRoaXMg
aXMgc2ltaWxhciB0byBBWCBjb2RlIHRoYXQgaXMgYWxyZWFkeSBpbiBwbGFjZSwgZXhjZXB0IHRo
YXQgdGhpcyBhbHNvIGluZm9ybXMgdGhlCisgICAgICAgIGNocm9tZSB3aGVuIHRoZXJlIHN0b3Bz
IGJlaW5nIGEgZm9jdXNlZCBub2RlLiBUaGlzIGlzIG5lZWRlZCBmb3IgYSBicm93c2VyIHRvIHNo
b3cgdGhlCisgICAgICAgIGFuY2hvciBmb3IgbGlua3MgdGhhdCBoYXZlIGtleWJvYXJkIGZvY3Vz
LgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50Ojpmb2N1c05vZGVDaGFuZ2VkKToKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaDoKKwogMjAwOS0xMC0yOSAgR3VzdGF2byBO
b3JvbmhhIFNpbHZhICA8Z3VzdGF2by5ub3JvbmhhQGNvbGxhYm9yYS5jby51az4KIAogICAgICAg
ICBVbnJldmlld2VkLiBUcml2aWFsIGZpeCAtIG1vdmUgcHVibGljIEFQSSBkZWNsYXJhdGlvbiBp
bnRvIHRoZQpJbmRleDogV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50
R3RrLmNwcAkocmV2aXNpb24gNTAxNjcpCisrKyBXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0No
cm9tZUNsaWVudEd0ay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI0Miw2ICsyNDIsMTAgQEAgdm9p
ZCBDaHJvbWVDbGllbnQ6OnRha2VGb2N1cyhGb2N1c0RpcmVjdAogICAgIHVuZm9jdXMoKTsKIH0K
IAordm9pZCBDaHJvbWVDbGllbnQ6OmZvY3VzTm9kZUNoYW5nZWQoTm9kZSopCit7Cit9CisKIGJv
b2wgQ2hyb21lQ2xpZW50OjpjYW5SdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoKQogewogICAg
IHJldHVybiB0cnVlOwpJbmRleDogV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGll
bnRHdGsuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNs
aWVudEd0ay5oCShyZXZpc2lvbiA1MDE2NykKKysrIFdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQv
Q2hyb21lQ2xpZW50R3RrLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDYgKzQ3LDggQEAgbmFtZXNw
YWNlIFdlYktpdCB7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBjYW5UYWtlRm9jdXMoV2ViQ29yZTo6
Rm9jdXNEaXJlY3Rpb24pOwogICAgICAgICB2aXJ0dWFsIHZvaWQgdGFrZUZvY3VzKFdlYkNvcmU6
OkZvY3VzRGlyZWN0aW9uKTsKIAorICAgICAgICB2aXJ0dWFsIHZvaWQgZm9jdXNlZE5vZGVDaGFu
Z2VkKFdlYkNvcmU6Ok5vZGUqKTsKKwogICAgICAgICB2aXJ0dWFsIFdlYkNvcmU6OlBhZ2UqIGNy
ZWF0ZVdpbmRvdyhXZWJDb3JlOjpGcmFtZSosIGNvbnN0IFdlYkNvcmU6OkZyYW1lTG9hZFJlcXVl
c3QmLCBjb25zdCBXZWJDb3JlOjpXaW5kb3dGZWF0dXJlcyYpOwogICAgICAgICB2aXJ0dWFsIHZv
aWQgc2hvdygpOwogCkluZGV4OiBXZWJLaXQvaGFpa3UvQ2hhbmdlTG9nCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYktpdC9oYWlrdS9DaGFuZ2VMb2cJKHJldmlzaW9uIDUwMzQ3KQorKysgV2ViS2l0L2hhaWt1
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBACisyMDA5LTEwLTMwICBF
dmFuIFN0YWRlICA8ZXN0YWRlQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBOb3RpZnkgdGhlIGNocm9tZSB3aGVuIHRoZSBmb2N1
c2VkIG5vZGUgaGFzIGNoYW5nZWQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0zMDgzMgorCisgICAgICAgIFRoaXMgaXMgc2ltaWxhciB0byBBWCBjb2Rl
IHRoYXQgaXMgYWxyZWFkeSBpbiBwbGFjZSwgZXhjZXB0IHRoYXQgdGhpcyBhbHNvIGluZm9ybXMg
dGhlCisgICAgICAgIGNocm9tZSB3aGVuIHRoZXJlIHN0b3BzIGJlaW5nIGEgZm9jdXNlZCBub2Rl
LiBUaGlzIGlzIG5lZWRlZCBmb3IgYSBicm93c2VyIHRvIHNob3cgdGhlCisgICAgICAgIGFuY2hv
ciBmb3IgbGlua3MgdGhhdCBoYXZlIGtleWJvYXJkIGZvY3VzLgorCisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvQ2hyb21lQ2xpZW50SGFpa3UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21l
Q2xpZW50SGFpa3U6OmZvY3VzTm9kZUNoYW5nZWQpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L0Nocm9tZUNsaWVudEhhaWt1Lmg6CisKIDIwMDktMTAtMDcgIEFkYW0gQmFydGggIDxhYmFydGhA
d2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KSW5kZXg6IFdl
YktpdC9oYWlrdS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRIYWlrdS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEhhaWt1LmNwcAko
cmV2aXNpb24gNTAxNjcpCisrKyBXZWJLaXQvaGFpa3UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xp
ZW50SGFpa3UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05OCw2ICs5OCwxMSBAQCB2b2lkIENocm9t
ZUNsaWVudEhhaWt1Ojp0YWtlRm9jdXMoRm9jdXNECiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0K
IAordm9pZCBDaHJvbWVDbGllbnRIYWlrdTo6Zm9jdXNOb2RlQ2hhbmdlZChOb2RlKikKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworfQorCiBQYWdlKiBDaHJvbWVDbGllbnRIYWlrdTo6Y3JlYXRl
V2luZG93KEZyYW1lKiwgY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6Oldp
bmRvd0ZlYXR1cmVzJikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwpJbmRleDogV2ViS2l0L2hh
aWt1L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEhhaWt1LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
S2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEhhaWt1LmgJKHJldmlzaW9uIDUw
MTY3KQorKysgV2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEhhaWt1LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTU3LDYgKzU3LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
ICAgICBib29sIGNhblRha2VGb2N1cyhGb2N1c0RpcmVjdGlvbik7CiAgICAgICAgIHZvaWQgdGFr
ZUZvY3VzKEZvY3VzRGlyZWN0aW9uKTsKIAorICAgICAgICB2b2lkIGZvY3VzZWROb2RlQ2hhbmdl
ZChOb2RlKik7CisKICAgICAgICAgUGFnZSogY3JlYXRlV2luZG93KEZyYW1lKiwgY29uc3QgRnJh
bWVMb2FkUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OldpbmRvd0ZlYXR1cmVzJik7CiAgICAgICAg
IFBhZ2UqIGNyZWF0ZU1vZGFsRGlhbG9nKEZyYW1lKiwgY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYp
OwogICAgICAgICB2b2lkIHNob3coKTsKSW5kZXg6IFdlYktpdC9tYWMvQ2hhbmdlTG9nCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYktpdC9tYWMvQ2hhbmdlTG9nCShyZXZpc2lvbiA1MDM0NykKKysrIFdlYktp
dC9tYWMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTggQEAKKzIwMDktMTAt
MzAgIEV2YW4gU3RhZGUgIDxlc3RhZGVAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vdGlmeSB0aGUgY2hyb21lIHdoZW4gdGhl
IGZvY3VzZWQgbm9kZSBoYXMgY2hhbmdlZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTMwODMyCisKKyAgICAgICAgVGhpcyBpcyBzaW1pbGFyIHRvIEFY
IGNvZGUgdGhhdCBpcyBhbHJlYWR5IGluIHBsYWNlLCBleGNlcHQgdGhhdCB0aGlzIGFsc28gaW5m
b3JtcyB0aGUKKyAgICAgICAgY2hyb21lIHdoZW4gdGhlcmUgc3RvcHMgYmVpbmcgYSBmb2N1c2Vk
IG5vZGUuIFRoaXMgaXMgbmVlZGVkIGZvciBhIGJyb3dzZXIgdG8gc2hvdyB0aGUKKyAgICAgICAg
YW5jaG9yIGZvciBsaW5rcyB0aGF0IGhhdmUga2V5Ym9hcmQgZm9jdXMuCisKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQubW06CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OmZvY3VzTm9k
ZUNoYW5nZWQpOgorCiAyMDA5LTEwLTMwICBSb2xhbmQgU3RlaW5lciAgPHJvbGFuZHN0ZWluZXJA
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgpJbmRleDog
V2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCShyZXZpc2lvbiA1
MDE2NykKKysrIFdlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgJKHdv
cmtpbmcgY29weSkKQEAgLTUzLDYgKzUzLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBj
YW5UYWtlRm9jdXMoV2ViQ29yZTo6Rm9jdXNEaXJlY3Rpb24pOwogICAgIHZpcnR1YWwgdm9pZCB0
YWtlRm9jdXMoV2ViQ29yZTo6Rm9jdXNEaXJlY3Rpb24pOwogCisgICAgdmlydHVhbCB2b2lkIGZv
Y3VzZWROb2RlQ2hhbmdlZChXZWJDb3JlOjpOb2RlKik7CisKICAgICB2aXJ0dWFsIFdlYkNvcmU6
OlBhZ2UqIGNyZWF0ZVdpbmRvdyhXZWJDb3JlOjpGcmFtZSosIGNvbnN0IFdlYkNvcmU6OkZyYW1l
TG9hZFJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpXaW5kb3dGZWF0dXJlcyYpOwogICAgIHZpcnR1
YWwgdm9pZCBzaG93KCk7CiAKSW5kZXg6IFdlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50Lm1tCShyZXZpc2lvbiA1MDE2NykKKysrIFdlYktpdC9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xNzIsNiArMTcyLDEw
IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50Ojp0YWtlRm9jdXMoRm9jdXNEaXIKICAgICB9CiB9CiAK
K3ZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpmb2N1c05vZGVDaGFuZ2VkKE5vZGUqKQoreworfQorCiBQ
YWdlKiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVdpbmRvdyhGcmFtZSogZnJhbWUsIGNvbnN0IEZy
YW1lTG9hZFJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFdpbmRvd0ZlYXR1cmVzJiBmZWF0dXJlcykK
IHsKICAgICBOU1VSTFJlcXVlc3QgKlVSTFJlcXVlc3QgPSBuaWw7CkluZGV4OiBXZWJLaXQvcXQv
Q2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9xdC9DaGFuZ2VMb2cJKHJldmlzaW9uIDUw
MzQ3KQorKysgV2ViS2l0L3F0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE4
IEBACisyMDA5LTEwLTMwICBFdmFuIFN0YWRlICA8ZXN0YWRlQGNocm9taXVtLm9yZz4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBOb3RpZnkgdGhlIGNo
cm9tZSB3aGVuIHRoZSBmb2N1c2VkIG5vZGUgaGFzIGNoYW5nZWQuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMDgzMgorCisgICAgICAgIFRoaXMgaXMg
c2ltaWxhciB0byBBWCBjb2RlIHRoYXQgaXMgYWxyZWFkeSBpbiBwbGFjZSwgZXhjZXB0IHRoYXQg
dGhpcyBhbHNvIGluZm9ybXMgdGhlCisgICAgICAgIGNocm9tZSB3aGVuIHRoZXJlIHN0b3BzIGJl
aW5nIGEgZm9jdXNlZCBub2RlLiBUaGlzIGlzIG5lZWRlZCBmb3IgYSBicm93c2VyIHRvIHNob3cg
dGhlCisgICAgICAgIGFuY2hvciBmb3IgbGlua3MgdGhhdCBoYXZlIGtleWJvYXJkIGZvY3VzLgor
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q2hyb21lQ2xpZW50UXQ6OmZvY3VzTm9kZUNoYW5nZWQpOgorICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0Lmg6CisKIDIwMDktMTAtMzAgIEpvY2VseW4gVHVy
Y290dGUgIDxqb2NlbHluLnR1cmNvdHRlQG5va2lhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBUb3IgQXJuZSBWZXN0YsO4LgpJbmRleDogV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9t
ZUNsaWVudFF0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hy
b21lQ2xpZW50UXQuY3BwCShyZXZpc2lvbiA1MDE2NykKKysrIFdlYktpdC9xdC9XZWJDb3JlU3Vw
cG9ydC9DaHJvbWVDbGllbnRRdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0MSw2ICsxNDEsMTEg
QEAgdm9pZCBDaHJvbWVDbGllbnRRdDo6dGFrZUZvY3VzKEZvY3VzRGlyZQogfQogCiAKK3ZvaWQg
Q2hyb21lQ2xpZW50UXQ6OmZvY3VzTm9kZUNoYW5nZWQoV2ViQ29yZTo6Tm9kZSopCit7Cit9CisK
KwogUGFnZSogQ2hyb21lQ2xpZW50UXQ6OmNyZWF0ZVdpbmRvdyhGcmFtZSosIGNvbnN0IEZyYW1l
TG9hZFJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFdpbmRvd0ZlYXR1cmVzJiBmZWF0dXJlcykKIHsK
ICAgICBRV2ViUGFnZSAqbmV3UGFnZSA9IG1fd2ViUGFnZS0+Y3JlYXRlV2luZG93KGZlYXR1cmVz
LmRpYWxvZyA/IFFXZWJQYWdlOjpXZWJNb2RhbERpYWxvZyA6IFFXZWJQYWdlOjpXZWJCcm93c2Vy
V2luZG93KTsKSW5kZXg6IFdlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5o
CShyZXZpc2lvbiA1MDE2NykKKysrIFdlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGll
bnRRdC5oCSh3b3JraW5nIGNvcHkpCkBAIC02Myw2ICs2Myw4IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICAgICAgdmlydHVhbCBib29sIGNhblRha2VGb2N1cyhGb2N1c0RpcmVjdGlvbik7CiAg
ICAgICAgIHZpcnR1YWwgdm9pZCB0YWtlRm9jdXMoRm9jdXNEaXJlY3Rpb24pOwogCisgICAgICAg
IHZpcnR1YWwgdm9pZCBmb2N1c2VkTm9kZUNoYW5nZWQoTm9kZSopOworCiAgICAgICAgIHZpcnR1
YWwgUGFnZSogY3JlYXRlV2luZG93KEZyYW1lKiwgY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYsIGNv
bnN0IFdpbmRvd0ZlYXR1cmVzJik7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBzaG93KCk7CiAKSW5k
ZXg6IFdlYktpdC93aW4vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC93aW4vQ2hhbmdl
TG9nCShyZXZpc2lvbiA1MDM0NykKKysrIFdlYktpdC93aW4vQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMTggQEAKKzIwMDktMTAtMzAgIEV2YW4gU3RhZGUgIDxlc3RhZGVAY2hy
b21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIE5vdGlmeSB0aGUgY2hyb21lIHdoZW4gdGhlIGZvY3VzZWQgbm9kZSBoYXMgY2hhbmdlZC4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMwODMyCisK
KyAgICAgICAgVGhpcyBpcyBzaW1pbGFyIHRvIEFYIGNvZGUgdGhhdCBpcyBhbHJlYWR5IGluIHBs
YWNlLCBleGNlcHQgdGhhdCB0aGlzIGFsc28gaW5mb3JtcyB0aGUKKyAgICAgICAgY2hyb21lIHdo
ZW4gdGhlcmUgc3RvcHMgYmVpbmcgYSBmb2N1c2VkIG5vZGUuIFRoaXMgaXMgbmVlZGVkIGZvciBh
IGJyb3dzZXIgdG8gc2hvdyB0aGUKKyAgICAgICAgYW5jaG9yIGZvciBsaW5rcyB0aGF0IGhhdmUg
a2V5Ym9hcmQgZm9jdXMuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuY3BwOgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50Ojpmb2N1c05vZGVDaGFuZ2VkKToKKyAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKwogMjAwOS0xMC0zMCAg
Um9sYW5kIFN0ZWluZXIgIDxyb2xhbmRzdGVpbmVyQGNocm9taXVtLm9yZz4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KSW5kZXg6IFdlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvd2luL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5jcHAJKHJldmlzaW9uIDUwMTY3KQorKysgV2ViS2l0L3dpbi9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNTYs
NiArMTU2LDEwIEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50Ojp0YWtlRm9jdXMoRm9jdXNEaXIKICAg
ICB9CiB9CiAKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpmb2N1c05vZGVDaGFuZ2VkKE5vZGUqKQor
eworfQorCiBzdGF0aWMgQ09NUHRyPElQcm9wZXJ0eUJhZz4gY3JlYXRlV2luZG93RmVhdHVyZXNQ
cm9wZXJ0eUJhZyhjb25zdCBXaW5kb3dGZWF0dXJlcyYgZmVhdHVyZXMpCiB7CiAgICAgSGFzaE1h
cDxTdHJpbmcsIENPTVZhcmlhbnQ+IG1hcDsKSW5kZXg6IFdlYktpdC93aW4vV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3dpbi9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuaAkocmV2aXNpb24gNTAxNjcpCisrKyBXZWJLaXQvd2luL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC01NSw2ICs1
NSw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgY2FuVGFrZUZvY3VzKFdlYkNvcmU6OkZv
Y3VzRGlyZWN0aW9uKTsKICAgICB2aXJ0dWFsIHZvaWQgdGFrZUZvY3VzKFdlYkNvcmU6OkZvY3Vz
RGlyZWN0aW9uKTsKIAorICAgIHZpcnR1YWwgdm9pZCBmb2N1c2VkTm9kZUNoYW5nZWQoV2ViQ29y
ZTo6Tm9kZSopOworCiAgICAgdmlydHVhbCBXZWJDb3JlOjpQYWdlKiBjcmVhdGVXaW5kb3coV2Vi
Q29yZTo6RnJhbWUqLCBjb25zdCBXZWJDb3JlOjpGcmFtZUxvYWRSZXF1ZXN0JiwgY29uc3QgV2Vi
Q29yZTo6V2luZG93RmVhdHVyZXMmKTsKICAgICB2aXJ0dWFsIHZvaWQgc2hvdygpOwogCkluZGV4
OiBXZWJLaXQvd3gvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC93eC9DaGFuZ2VMb2cJ
KHJldmlzaW9uIDUwMzQ3KQorKysgV2ViS2l0L3d4L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDE4IEBACisyMDA5LTEwLTMwICBFdmFuIFN0YWRlICA8ZXN0YWRlQGNocm9taXVt
Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBO
b3RpZnkgdGhlIGNocm9tZSB3aGVuIHRoZSBmb2N1c2VkIG5vZGUgaGFzIGNoYW5nZWQuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMDgzMgorCisgICAg
ICAgIFRoaXMgaXMgc2ltaWxhciB0byBBWCBjb2RlIHRoYXQgaXMgYWxyZWFkeSBpbiBwbGFjZSwg
ZXhjZXB0IHRoYXQgdGhpcyBhbHNvIGluZm9ybXMgdGhlCisgICAgICAgIGNocm9tZSB3aGVuIHRo
ZXJlIHN0b3BzIGJlaW5nIGEgZm9jdXNlZCBub2RlLiBUaGlzIGlzIG5lZWRlZCBmb3IgYSBicm93
c2VyIHRvIHNob3cgdGhlCisgICAgICAgIGFuY2hvciBmb3IgbGlua3MgdGhhdCBoYXZlIGtleWJv
YXJkIGZvY3VzLgorCisgICAgICAgICogV2ViS2l0U3VwcG9ydC9DaHJvbWVDbGllbnRXeC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRXeDo6Zm9jdXNOb2RlQ2hhbmdlZCk6Cisg
ICAgICAgICogV2ViS2l0U3VwcG9ydC9DaHJvbWVDbGllbnRXeC5oOgorCiAyMDA5LTEwLTIzICBL
ZXZpbiBPbGxpdmllciAgPGtldmlub0B0aGVvbGxpdmllcnMuY29tPgogCiAgICAgICAgIHd4IGJ1
aWxkIGZpeC4gVXBkYXRlIHRoZSBnbG9iYWxPYmplY3QgY2FsbHMgYWZ0ZXIgY2hhbmdlcy4KSW5k
ZXg6IFdlYktpdC93eC9XZWJLaXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9DaHJvbWVDbGllbnRXeC5jcHAJKHJldmlzaW9u
IDUwMTY3KQorKysgV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xMTEsNiArMTExLDEwIEBAIHZvaWQgQ2hyb21lQ2xpZW50V3g6OnRh
a2VGb2N1cyhGb2N1c0RpcmUKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCit2b2lkIENocm9t
ZUNsaWVudFd4Ojpmb2N1c05vZGVDaGFuZ2VkKE5vZGUqKQoreworICAgIG5vdEltcGxlbWVudGVk
KCk7Cit9CiAKIFBhZ2UqIENocm9tZUNsaWVudFd4OjpjcmVhdGVXaW5kb3coRnJhbWUqLCBjb25z
dCBGcmFtZUxvYWRSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBXaW5kb3dGZWF0dXJlcyYpCiB7Cklu
ZGV4OiBXZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9DaHJvbWVDbGllbnRXeC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYktpdC93eC9XZWJLaXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4LmgJKHJldmlzaW9uIDUw
MTY3KQorKysgV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guaAkod29ya2lu
ZyBjb3B5KQpAQCAtNTQsNiArNTQsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGNhblRh
a2VGb2N1cyhGb2N1c0RpcmVjdGlvbik7CiAgICAgdmlydHVhbCB2b2lkIHRha2VGb2N1cyhGb2N1
c0RpcmVjdGlvbik7CiAKKyAgICB2aXJ0dWFsIHZvaWQgZm9jdXNlZE5vZGVDaGFuZ2VkKE5vZGUq
KTsKKwogICAgIHZpcnR1YWwgUGFnZSogY3JlYXRlV2luZG93KEZyYW1lKiwgY29uc3QgRnJhbWVM
b2FkUmVxdWVzdCYsIGNvbnN0IFdpbmRvd0ZlYXR1cmVzJik7CiAgICAgdmlydHVhbCBQYWdlKiBj
cmVhdGVNb2RhbERpYWxvZyhGcmFtZSosIGNvbnN0IEZyYW1lTG9hZFJlcXVlc3QmKTsKICAgICB2
aXJ0dWFsIHZvaWQgc2hvdygpOwo=
</data>
<flag name="review"
          id="23728"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>42225</attachid>
            <date>2009-10-30 12:13:41 -0700</date>
            <delta_ts>2009-10-30 12:15:27 -0700</delta_ts>
            <desc>changelog desc changed</desc>
            <filename>kbf.diff</filename>
            <type>text/plain</type>
            <size>15107</size>
            <attacher name="Evan Stade">estade</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1MDM0NykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjMgQEAKKzIwMDktMTAtMzAgIEV2YW4gU3RhZGUgIDxlc3RhZGVAY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5v
dGlmeSB0aGUgY2hyb21lIHdoZW4gdGhlIGZvY3VzZWQgbm9kZSBoYXMgY2hhbmdlZC4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMwODMyCisKKyAgICAg
ICAgVGhpcyBpcyBzaW1pbGFyIHRvIEFYIGNvZGUgdGhhdCBpcyBhbHJlYWR5IGluIHBsYWNlLCBl
eGNlcHQgdGhhdCB0aGlzIGFsc28gaW5mb3JtcyB0aGUKKyAgICAgICAgY2hyb21lIHdoZW4gdGhl
cmUgc3RvcHMgYmVpbmcgYSBmb2N1c2VkIG5vZGUuIFRoaXMgaXMgbmVlZGVkIGZvciBhIGJyb3dz
ZXIgdG8gc2hvdyB0aGUKKyAgICAgICAgYW5jaG9yIGZvciBsaW5rcyB0aGF0IGhhdmUga2V5Ym9h
cmQgZm9jdXMuCisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RG9jdW1lbnQ6OnNldEZvY3VzZWROb2RlKToKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGll
bnRzLmg6CisgICAgICAgIChXZWJDb3JlOjpFbXB0eUNocm9tZUNsaWVudDo6Zm9jdXNlZE5vZGVD
aGFuZ2VkKToKKyAgICAgICAgKiBwYWdlL0Nocm9tZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpD
aHJvbWU6OmZvY3VzZWROb2RlQ2hhbmdlZCk6CisgICAgICAgICogcGFnZS9DaHJvbWUuaDoKKyAg
ICAgICAgKiBwYWdlL0Nocm9tZUNsaWVudC5oOgorCiAyMDA5LTEwLTMwICBEbWl0cnkgVGl0b3Yg
IDxkaW1pY2hAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERpbWl0cmkgR2xh
emtvdi4KSW5kZXg6IFdlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL2RvbS9Eb2N1bWVudC5jcHAJKHJldmlzaW9uIDUwMTY3KQorKysgV2ViQ29yZS9kb20vRG9j
dW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNzQyLDYgKzI3NDIsOCBAQCBib29sIERvY3Vt
ZW50OjpzZXRGb2N1c2VkTm9kZShQYXNzUmVmUHRyCiAgICAgICAgIGF4T2JqZWN0Q2FjaGUoKS0+
aGFuZGxlRm9jdXNlZFVJRWxlbWVudENoYW5nZWQob2xkRm9jdXNlZFJlbmRlcmVyLCBuZXdGb2N1
c2VkUmVuZGVyZXIpOwogICAgIH0KICNlbmRpZgorICAgIGlmICghZm9jdXNDaGFuZ2VCbG9ja2Vk
KQorICAgICAgICBwYWdlKCktPmNocm9tZSgpLT5mb2N1c2VkTm9kZUNoYW5nZWQobV9mb2N1c2Vk
Tm9kZS5nZXQoKSk7CiAKIFNldEZvY3VzZWROb2RlRG9uZToKICAgICB1cGRhdGVTdHlsZUlmTmVl
ZGVkKCk7CkluZGV4OiBXZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAkocmV2aXNpb24gNTAxNjcpCisrKyBXZWJD
b3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAkod29ya2luZyBjb3B5KQpAQCAtNzYsNiArNzYsOCBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGNhblRha2VGb2N1cyhGb2N1c0RpcmVjdGlvbikg
eyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIHZvaWQgdGFrZUZvY3VzKEZvY3VzRGlyZWN0
aW9uKSB7IH0KIAorICAgIHZpcnR1YWwgdm9pZCBmb2N1c2VkTm9kZUNoYW5nZWQoTm9kZSopIHsg
fQorCiAgICAgdmlydHVhbCBQYWdlKiBjcmVhdGVXaW5kb3coRnJhbWUqLCBjb25zdCBGcmFtZUxv
YWRSZXF1ZXN0JiwgY29uc3QgV2luZG93RmVhdHVyZXMmKSB7IHJldHVybiAwOyB9CiAgICAgdmly
dHVhbCB2b2lkIHNob3coKSB7IH0KIApJbmRleDogV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAJKHJldmlzaW9uIDUwMTY3KQorKysg
V2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0Nyw2ICsxNDcsMTEg
QEAgdm9pZCBDaHJvbWU6OnRha2VGb2N1cyhGb2N1c0RpcmVjdGlvbiBkaQogICAgIG1fY2xpZW50
LT50YWtlRm9jdXMoZGlyZWN0aW9uKTsKIH0KIAordm9pZCBDaHJvbWU6OmZvY3VzZWROb2RlQ2hh
bmdlZChOb2RlKiBub2RlKSBjb25zdAoreworICAgIG1fY2xpZW50LT5mb2N1c2VkTm9kZUNoYW5n
ZWQobm9kZSk7Cit9CisKIFBhZ2UqIENocm9tZTo6Y3JlYXRlV2luZG93KEZyYW1lKiBmcmFtZSwg
Y29uc3QgRnJhbWVMb2FkUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgV2luZG93RmVhdHVyZXMmIGZl
YXR1cmVzKSBjb25zdAogewogICAgIFBhZ2UqIG5ld1BhZ2UgPSBtX2NsaWVudC0+Y3JlYXRlV2lu
ZG93KGZyYW1lLCByZXF1ZXN0LCBmZWF0dXJlcyk7CkluZGV4OiBXZWJDb3JlL3BhZ2UvQ2hyb21l
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL0Nocm9tZS5oCShyZXZpc2lvbiA1MDE2NykK
KysrIFdlYkNvcmUvcGFnZS9DaHJvbWUuaAkod29ya2luZyBjb3B5KQpAQCAtNDIsNiArNDIsNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgR2VvbG9jYXRpb247CiAgICAgY2xhc3Mg
SGl0VGVzdFJlc3VsdDsKICAgICBjbGFzcyBJbnRSZWN0OworICAgIGNsYXNzIE5vZGU7CiAgICAg
Y2xhc3MgUGFnZTsKICAgICBjbGFzcyBTdHJpbmc7CiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMp
CkBAIC04Miw2ICs4Myw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgYm9vbCBjYW5U
YWtlRm9jdXMoRm9jdXNEaXJlY3Rpb24pIGNvbnN0OwogICAgICAgICB2b2lkIHRha2VGb2N1cyhG
b2N1c0RpcmVjdGlvbikgY29uc3Q7CiAKKyAgICAgICAgdm9pZCBmb2N1c2VkTm9kZUNoYW5nZWQo
Tm9kZSopIGNvbnN0OworCiAgICAgICAgIFBhZ2UqIGNyZWF0ZVdpbmRvdyhGcmFtZSosIGNvbnN0
IEZyYW1lTG9hZFJlcXVlc3QmLCBjb25zdCBXaW5kb3dGZWF0dXJlcyYpIGNvbnN0OwogICAgICAg
ICB2b2lkIHNob3coKSBjb25zdDsKIApJbmRleDogV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAkocmV2aXNpb24gNTAx
NjcpCisrKyBXZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTgz
LDYgKzgzLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFsIGJvb2wgY2Fu
VGFrZUZvY3VzKEZvY3VzRGlyZWN0aW9uKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCB0YWtl
Rm9jdXMoRm9jdXNEaXJlY3Rpb24pID0gMDsKIAorICAgICAgICB2aXJ0dWFsIHZvaWQgZm9jdXNl
ZE5vZGVDaGFuZ2VkKE5vZGUqKSA9IDA7CisKICAgICAgICAgLy8gVGhlIEZyYW1lIHBvaW50ZXIg
cHJvdmlkZXMgdGhlIENocm9tZUNsaWVudCB3aXRoIGNvbnRleHQgYWJvdXQgd2hpY2gKICAgICAg
ICAgLy8gRnJhbWUgd2FudHMgdG8gY3JlYXRlIHRoZSBuZXcgUGFnZS4gIEFsc28sIHRoZSBuZXds
eSBjcmVhdGVkIHdpbmRvdwogICAgICAgICAvLyBzaG91bGQgbm90IGJlIHNob3duIHRvIHRoZSB1
c2VyIHVudGlsIHRoZSBDaHJvbWVDbGllbnQgb2YgdGhlIG5ld2x5CkluZGV4OiBXZWJLaXQvZ3Rr
L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL0NoYW5nZUxvZwkocmV2aXNpb24g
NTAzNDcpCisrKyBXZWJLaXQvZ3RrL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsx
LDE2IEBACisyMDA5LTEwLTMwICBFdmFuIFN0YWRlICA8ZXN0YWRlQGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBOb3RpZnkgdGhl
IGNocm9tZSB3aGVuIHRoZSBmb2N1c2VkIG5vZGUgaGFzIGNoYW5nZWQuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMDgzMgorCisgICAgICAgIEFkZGVk
IHN0dWIgaW1wbGVtZW50YXRpb24gZm9yIG5ldyBDaHJvbWVDbGllbnQgZnVuY3Rpb24uCisKKyAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpDaHJvbWVDbGllbnQ6OmZvY3VzZWROb2RlQ2hhbmdlZCk6CisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmg6CisKIDIwMDktMTAtMjkgIEd1c3Rhdm8gTm9yb25o
YSBTaWx2YSAgPGd1c3Rhdm8ubm9yb25oYUBjb2xsYWJvcmEuY28udWs+CiAKICAgICAgICAgVW5y
ZXZpZXdlZC4gVHJpdmlhbCBmaXggLSBtb3ZlIHB1YmxpYyBBUEkgZGVjbGFyYXRpb24gaW50byB0
aGUKSW5kZXg6IFdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5j
cHAJKHJldmlzaW9uIDUwMTY3KQorKysgV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVD
bGllbnRHdGsuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNDIsNiArMjQyLDEwIEBAIHZvaWQgQ2hy
b21lQ2xpZW50Ojp0YWtlRm9jdXMoRm9jdXNEaXJlY3QKICAgICB1bmZvY3VzKCk7CiB9CiAKK3Zv
aWQgQ2hyb21lQ2xpZW50Ojpmb2N1c2VkTm9kZUNoYW5nZWQoTm9kZSopCit7Cit9CisKIGJvb2wg
Q2hyb21lQ2xpZW50OjpjYW5SdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoKQogewogICAgIHJl
dHVybiB0cnVlOwpJbmRleDogV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRH
dGsuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVu
dEd0ay5oCShyZXZpc2lvbiA1MDE2NykKKysrIFdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hy
b21lQ2xpZW50R3RrLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDYgKzQ3LDggQEAgbmFtZXNwYWNl
IFdlYktpdCB7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBjYW5UYWtlRm9jdXMoV2ViQ29yZTo6Rm9j
dXNEaXJlY3Rpb24pOwogICAgICAgICB2aXJ0dWFsIHZvaWQgdGFrZUZvY3VzKFdlYkNvcmU6OkZv
Y3VzRGlyZWN0aW9uKTsKIAorICAgICAgICB2aXJ0dWFsIHZvaWQgZm9jdXNlZE5vZGVDaGFuZ2Vk
KFdlYkNvcmU6Ok5vZGUqKTsKKwogICAgICAgICB2aXJ0dWFsIFdlYkNvcmU6OlBhZ2UqIGNyZWF0
ZVdpbmRvdyhXZWJDb3JlOjpGcmFtZSosIGNvbnN0IFdlYkNvcmU6OkZyYW1lTG9hZFJlcXVlc3Qm
LCBjb25zdCBXZWJDb3JlOjpXaW5kb3dGZWF0dXJlcyYpOwogICAgICAgICB2aXJ0dWFsIHZvaWQg
c2hvdygpOwogCkluZGV4OiBXZWJLaXQvaGFpa3UvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YktpdC9oYWlrdS9DaGFuZ2VMb2cJKHJldmlzaW9uIDUwMzQ3KQorKysgV2ViS2l0L2hhaWt1L0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDA5LTEwLTMwICBFdmFu
IFN0YWRlICA8ZXN0YWRlQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBOb3RpZnkgdGhlIGNocm9tZSB3aGVuIHRoZSBmb2N1c2Vk
IG5vZGUgaGFzIGNoYW5nZWQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0zMDgzMgorCisgICAgICAgIEFkZGVkIHN0dWIgaW1wbGVtZW50YXRpb24gZm9y
IG5ldyBDaHJvbWVDbGllbnQgZnVuY3Rpb24uCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9D
aHJvbWVDbGllbnRIYWlrdS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRIYWlr
dTo6Zm9jdXNlZE5vZGVDaGFuZ2VkKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVD
bGllbnRIYWlrdS5oOgorCiAyMDA5LTEwLTA3ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCkluZGV4OiBXZWJLaXQvaGFp
a3UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50SGFpa3UuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YktpdC9oYWlrdS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRIYWlrdS5jcHAJKHJldmlzaW9u
IDUwMTY3KQorKysgV2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEhhaWt1
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTgsNiArOTgsMTEgQEAgdm9pZCBDaHJvbWVDbGllbnRI
YWlrdTo6dGFrZUZvY3VzKEZvY3VzRAogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKK3ZvaWQg
Q2hyb21lQ2xpZW50SGFpa3U6OmZvY3VzZWROb2RlQ2hhbmdlZChOb2RlKikKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworfQorCiBQYWdlKiBDaHJvbWVDbGllbnRIYWlrdTo6Y3JlYXRlV2luZG93
KEZyYW1lKiwgY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OldpbmRvd0Zl
YXR1cmVzJikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwpJbmRleDogV2ViS2l0L2hhaWt1L1dl
YkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEhhaWt1LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2hh
aWt1L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEhhaWt1LmgJKHJldmlzaW9uIDUwMTY3KQor
KysgV2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEhhaWt1LmgJKHdvcmtp
bmcgY29weSkKQEAgLTU3LDYgKzU3LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBi
b29sIGNhblRha2VGb2N1cyhGb2N1c0RpcmVjdGlvbik7CiAgICAgICAgIHZvaWQgdGFrZUZvY3Vz
KEZvY3VzRGlyZWN0aW9uKTsKIAorICAgICAgICB2b2lkIGZvY3VzZWROb2RlQ2hhbmdlZChOb2Rl
Kik7CisKICAgICAgICAgUGFnZSogY3JlYXRlV2luZG93KEZyYW1lKiwgY29uc3QgRnJhbWVMb2Fk
UmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OldpbmRvd0ZlYXR1cmVzJik7CiAgICAgICAgIFBhZ2Uq
IGNyZWF0ZU1vZGFsRGlhbG9nKEZyYW1lKiwgY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYpOwogICAg
ICAgICB2b2lkIHNob3coKTsKSW5kZXg6IFdlYktpdC9tYWMvQ2hhbmdlTG9nCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYktpdC9tYWMvQ2hhbmdlTG9nCShyZXZpc2lvbiA1MDM0NykKKysrIFdlYktpdC9tYWMv
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIwMDktMTAtMzAgIEV2
YW4gU3RhZGUgIDxlc3RhZGVAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vdGlmeSB0aGUgY2hyb21lIHdoZW4gdGhlIGZvY3Vz
ZWQgbm9kZSBoYXMgY2hhbmdlZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTMwODMyCisKKyAgICAgICAgQWRkZWQgc3R1YiBpbXBsZW1lbnRhdGlvbiBm
b3IgbmV3IENocm9tZUNsaWVudCBmdW5jdGlvbi4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5tbToKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6Zm9jdXNlZE5vZGVDaGFuZ2VkKToK
KwogMjAwOS0xMC0zMCAgUm9sYW5kIFN0ZWluZXIgIDxyb2xhbmRzdGVpbmVyQGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KSW5kZXg6IFdlYktpdC9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAkocmV2aXNpb24gNTAxNjcpCisrKyBX
ZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCSh3b3JraW5nIGNvcHkp
CkBAIC01Myw2ICs1Myw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgY2FuVGFrZUZvY3Vz
KFdlYkNvcmU6OkZvY3VzRGlyZWN0aW9uKTsKICAgICB2aXJ0dWFsIHZvaWQgdGFrZUZvY3VzKFdl
YkNvcmU6OkZvY3VzRGlyZWN0aW9uKTsKIAorICAgIHZpcnR1YWwgdm9pZCBmb2N1c2VkTm9kZUNo
YW5nZWQoV2ViQ29yZTo6Tm9kZSopOworCiAgICAgdmlydHVhbCBXZWJDb3JlOjpQYWdlKiBjcmVh
dGVXaW5kb3coV2ViQ29yZTo6RnJhbWUqLCBjb25zdCBXZWJDb3JlOjpGcmFtZUxvYWRSZXF1ZXN0
JiwgY29uc3QgV2ViQ29yZTo6V2luZG93RmVhdHVyZXMmKTsKICAgICB2aXJ0dWFsIHZvaWQgc2hv
dygpOwogCkluZGV4OiBXZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5t
bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5tbQkocmV2aXNpb24gNTAxNjcpCisrKyBXZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5tbQkod29ya2luZyBjb3B5KQpAQCAtMTcyLDYgKzE3MiwxMCBAQCB2b2lkIFdl
YkNocm9tZUNsaWVudDo6dGFrZUZvY3VzKEZvY3VzRGlyCiAgICAgfQogfQogCit2b2lkIFdlYkNo
cm9tZUNsaWVudDo6Zm9jdXNlZE5vZGVDaGFuZ2VkKE5vZGUqKQoreworfQorCiBQYWdlKiBXZWJD
aHJvbWVDbGllbnQ6OmNyZWF0ZVdpbmRvdyhGcmFtZSogZnJhbWUsIGNvbnN0IEZyYW1lTG9hZFJl
cXVlc3QmIHJlcXVlc3QsIGNvbnN0IFdpbmRvd0ZlYXR1cmVzJiBmZWF0dXJlcykKIHsKICAgICBO
U1VSTFJlcXVlc3QgKlVSTFJlcXVlc3QgPSBuaWw7CkluZGV4OiBXZWJLaXQvcXQvQ2hhbmdlTG9n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYktpdC9xdC9DaGFuZ2VMb2cJKHJldmlzaW9uIDUwMzQ3KQorKysg
V2ViS2l0L3F0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDA5
LTEwLTMwICBFdmFuIFN0YWRlICA8ZXN0YWRlQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBOb3RpZnkgdGhlIGNocm9tZSB3aGVu
IHRoZSBmb2N1c2VkIG5vZGUgaGFzIGNoYW5nZWQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMDgzMgorCisgICAgICAgIEFkZGVkIHN0dWIgaW1wbGVt
ZW50YXRpb24gZm9yIG5ldyBDaHJvbWVDbGllbnQgZnVuY3Rpb24uCisKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVD
bGllbnRRdDo6Zm9jdXNlZE5vZGVDaGFuZ2VkKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9D
aHJvbWVDbGllbnRRdC5oOgorCiAyMDA5LTEwLTMwICBKb2NlbHluIFR1cmNvdHRlICA8am9jZWx5
bi50dXJjb3R0ZUBub2tpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgVG9yIEFybmUgVmVz
dGLDuC4KSW5kZXg6IFdlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNw
cAkocmV2aXNpb24gNTAxNjcpCisrKyBXZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xp
ZW50UXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNDEsNiArMTQxLDExIEBAIHZvaWQgQ2hyb21l
Q2xpZW50UXQ6OnRha2VGb2N1cyhGb2N1c0RpcmUKIH0KIAogCit2b2lkIENocm9tZUNsaWVudFF0
Ojpmb2N1c2VkTm9kZUNoYW5nZWQoV2ViQ29yZTo6Tm9kZSopCit7Cit9CisKKwogUGFnZSogQ2hy
b21lQ2xpZW50UXQ6OmNyZWF0ZVdpbmRvdyhGcmFtZSosIGNvbnN0IEZyYW1lTG9hZFJlcXVlc3Qm
IHJlcXVlc3QsIGNvbnN0IFdpbmRvd0ZlYXR1cmVzJiBmZWF0dXJlcykKIHsKICAgICBRV2ViUGFn
ZSAqbmV3UGFnZSA9IG1fd2ViUGFnZS0+Y3JlYXRlV2luZG93KGZlYXR1cmVzLmRpYWxvZyA/IFFX
ZWJQYWdlOjpXZWJNb2RhbERpYWxvZyA6IFFXZWJQYWdlOjpXZWJCcm93c2VyV2luZG93KTsKSW5k
ZXg6IFdlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oCShyZXZpc2lvbiA1
MDE2NykKKysrIFdlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC02Myw2ICs2Myw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAg
dmlydHVhbCBib29sIGNhblRha2VGb2N1cyhGb2N1c0RpcmVjdGlvbik7CiAgICAgICAgIHZpcnR1
YWwgdm9pZCB0YWtlRm9jdXMoRm9jdXNEaXJlY3Rpb24pOwogCisgICAgICAgIHZpcnR1YWwgdm9p
ZCBmb2N1c2VkTm9kZUNoYW5nZWQoTm9kZSopOworCiAgICAgICAgIHZpcnR1YWwgUGFnZSogY3Jl
YXRlV2luZG93KEZyYW1lKiwgY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYsIGNvbnN0IFdpbmRvd0Zl
YXR1cmVzJik7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBzaG93KCk7CiAKSW5kZXg6IFdlYktpdC93
aW4vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC93aW4vQ2hhbmdlTG9nCShyZXZpc2lv
biA1MDM0NykKKysrIFdlYktpdC93aW4vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMTYgQEAKKzIwMDktMTAtMzAgIEV2YW4gU3RhZGUgIDxlc3RhZGVAY2hyb21pdW0ub3JnPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vdGlmeSB0
aGUgY2hyb21lIHdoZW4gdGhlIGZvY3VzZWQgbm9kZSBoYXMgY2hhbmdlZC4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMwODMyCisKKyAgICAgICAgQWRk
ZWQgc3R1YiBpbXBsZW1lbnRhdGlvbiBmb3IgbmV3IENocm9tZUNsaWVudCBmdW5jdGlvbi4KKwor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAgICAgIChX
ZWJDaHJvbWVDbGllbnQ6OmZvY3VzZWROb2RlQ2hhbmdlZCk6CisgICAgICAgICogV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisKIDIwMDktMTAtMzAgIFJvbGFuZCBTdGVpbmVyICA8
cm9sYW5kc3RlaW5lckBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBT
ZWlkZWwuCkluZGV4OiBXZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuY3BwCShyZXZpc2lvbiA1MDE2NykKKysrIFdlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTU2LDYgKzE1NiwxMCBAQCB2b2lk
IFdlYkNocm9tZUNsaWVudDo6dGFrZUZvY3VzKEZvY3VzRGlyCiAgICAgfQogfQogCit2b2lkIFdl
YkNocm9tZUNsaWVudDo6Zm9jdXNlZE5vZGVDaGFuZ2VkKE5vZGUqKQoreworfQorCiBzdGF0aWMg
Q09NUHRyPElQcm9wZXJ0eUJhZz4gY3JlYXRlV2luZG93RmVhdHVyZXNQcm9wZXJ0eUJhZyhjb25z
dCBXaW5kb3dGZWF0dXJlcyYgZmVhdHVyZXMpCiB7CiAgICAgSGFzaE1hcDxTdHJpbmcsIENPTVZh
cmlhbnQ+IG1hcDsKSW5kZXg6IFdlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuaAkocmV2aXNpb24gNTAxNjcpCisrKyBXZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC01NSw2ICs1NSw4IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIGJvb2wgY2FuVGFrZUZvY3VzKFdlYkNvcmU6OkZvY3VzRGlyZWN0aW9uKTsK
ICAgICB2aXJ0dWFsIHZvaWQgdGFrZUZvY3VzKFdlYkNvcmU6OkZvY3VzRGlyZWN0aW9uKTsKIAor
ICAgIHZpcnR1YWwgdm9pZCBmb2N1c2VkTm9kZUNoYW5nZWQoV2ViQ29yZTo6Tm9kZSopOworCiAg
ICAgdmlydHVhbCBXZWJDb3JlOjpQYWdlKiBjcmVhdGVXaW5kb3coV2ViQ29yZTo6RnJhbWUqLCBj
b25zdCBXZWJDb3JlOjpGcmFtZUxvYWRSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6V2luZG93RmVh
dHVyZXMmKTsKICAgICB2aXJ0dWFsIHZvaWQgc2hvdygpOwogCkluZGV4OiBXZWJLaXQvd3gvQ2hh
bmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC93eC9DaGFuZ2VMb2cJKHJldmlzaW9uIDUwMzQ3
KQorKysgV2ViS2l0L3d4L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBA
CisyMDA5LTEwLTMwICBFdmFuIFN0YWRlICA8ZXN0YWRlQGNocm9taXVtLm9yZz4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBOb3RpZnkgdGhlIGNocm9t
ZSB3aGVuIHRoZSBmb2N1c2VkIG5vZGUgaGFzIGNoYW5nZWQuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMDgzMgorCisgICAgICAgIEFkZGVkIHN0dWIg
aW1wbGVtZW50YXRpb24gZm9yIG5ldyBDaHJvbWVDbGllbnQgZnVuY3Rpb24uCisKKyAgICAgICAg
KiBXZWJLaXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNo
cm9tZUNsaWVudFd4Ojpmb2N1c2VkTm9kZUNoYW5nZWQpOgorICAgICAgICAqIFdlYktpdFN1cHBv
cnQvQ2hyb21lQ2xpZW50V3guaDoKKwogMjAwOS0xMC0yMyAgS2V2aW4gT2xsaXZpZXIgIDxrZXZp
bm9AdGhlb2xsaXZpZXJzLmNvbT4KIAogICAgICAgICB3eCBidWlsZCBmaXguIFVwZGF0ZSB0aGUg
Z2xvYmFsT2JqZWN0IGNhbGxzIGFmdGVyIGNoYW5nZXMuCkluZGV4OiBXZWJLaXQvd3gvV2ViS2l0
U3VwcG9ydC9DaHJvbWVDbGllbnRXeC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3d4L1dlYktp
dFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guY3BwCShyZXZpc2lvbiA1MDE2NykKKysrIFdlYktpdC93
eC9XZWJLaXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTEx
LDYgKzExMSwxMCBAQCB2b2lkIENocm9tZUNsaWVudFd4Ojp0YWtlRm9jdXMoRm9jdXNEaXJlCiAg
ICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAordm9pZCBDaHJvbWVDbGllbnRXeDo6Zm9jdXNlZE5v
ZGVDaGFuZ2VkKE5vZGUqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CiAKIFBhZ2UqIENo
cm9tZUNsaWVudFd4OjpjcmVhdGVXaW5kb3coRnJhbWUqLCBjb25zdCBGcmFtZUxvYWRSZXF1ZXN0
JiByZXF1ZXN0LCBjb25zdCBXaW5kb3dGZWF0dXJlcyYpCiB7CkluZGV4OiBXZWJLaXQvd3gvV2Vi
S2l0U3VwcG9ydC9DaHJvbWVDbGllbnRXeC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC93eC9XZWJL
aXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4LmgJKHJldmlzaW9uIDUwMTY3KQorKysgV2ViS2l0L3d4
L1dlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guaAkod29ya2luZyBjb3B5KQpAQCAtNTQsNiAr
NTQsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGNhblRha2VGb2N1cyhGb2N1c0RpcmVj
dGlvbik7CiAgICAgdmlydHVhbCB2b2lkIHRha2VGb2N1cyhGb2N1c0RpcmVjdGlvbik7CiAKKyAg
ICB2aXJ0dWFsIHZvaWQgZm9jdXNlZE5vZGVDaGFuZ2VkKE5vZGUqKTsKKwogICAgIHZpcnR1YWwg
UGFnZSogY3JlYXRlV2luZG93KEZyYW1lKiwgY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYsIGNvbnN0
IFdpbmRvd0ZlYXR1cmVzJik7CiAgICAgdmlydHVhbCBQYWdlKiBjcmVhdGVNb2RhbERpYWxvZyhG
cmFtZSosIGNvbnN0IEZyYW1lTG9hZFJlcXVlc3QmKTsKICAgICB2aXJ0dWFsIHZvaWQgc2hvdygp
Owo=
</data>
<flag name="review"
          id="23729"
          type_id="1"
          status="+"
          setter="levin"
    />
    <flag name="commit-queue"
          id="23731"
          type_id="3"
          status="-"
          setter="levin"
    />
          </attachment>
      

    </bug>

</bugzilla>