<?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>34464</bug_id>
          
          <creation_ts>2010-02-01 21:02:30 -0800</creation_ts>
          <short_desc>[Chromium] Chromium should receive checkbox state changes</short_desc>
          <delta_ts>2010-02-09 20:02:07 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Accessibility</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Guillory">ctguil</reporter>
          <assigned_to name="Chris Guillory">ctguil</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>ctguil</cc>
    
    <cc>dglazkov</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>fishd</cc>
    
    <cc>klinktech</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>186787</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Guillory">ctguil</who>
    <bug_when>2010-02-01 21:02:30 -0800</bug_when>
    <thetext>Ensure that chromium gets notified of AXCheckedStateChanged events so it can send the MSAA event EVENT_OBJECT_STATECHANGE.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>187005</commentid>
    <comment_count>1</comment_count>
      <attachid>47942</attachid>
    <who name="Chris Guillory">ctguil</who>
    <bug_when>2010-02-02 09:40:30 -0800</bug_when>
    <thetext>Created attachment 47942
[Chromium] Notify Chromium of state change notifications.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>187009</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-02-02 09:45:33 -0800</bug_when>
    <thetext>Attachment 47942 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
WebCore/platform/chromium/ChromiumBridge.h:53:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 1


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>187018</commentid>
    <comment_count>3</comment_count>
      <attachid>47945</attachid>
    <who name="Chris Guillory">ctguil</who>
    <bug_when>2010-02-02 09:56:25 -0800</bug_when>
    <thetext>Created attachment 47945
Notify Chromium of state change notifications. 

Code in WebKit\WebCore\platform\chromium\ChromiumBridge.h was indented inside of a namespace.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>187081</commentid>
    <comment_count>4</comment_count>
    <who name="Chris Guillory">ctguil</who>
    <bug_when>2010-02-02 11:52:55 -0800</bug_when>
    <thetext>This change needs to be committed with a parallel change in Chromium. As I understand it this should NOT be added to the commit-queue as both changes are needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>187268</commentid>
    <comment_count>5</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-02-02 22:30:44 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; This change needs to be committed with a parallel change in Chromium. As I
&gt; understand it this should NOT be added to the commit-queue as both changes are
&gt; needed.

Hi Chris,

Is it possible to break this change up into two parts so that you can avoid the need for a two-sided patch landing?  Generally speaking, we try to preserve the old API while introducing the new side-by-side.  Then, once Chromium adopts the new API, we can go back to WebKit and remove the old API.  Is that possible in this case?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>187271</commentid>
    <comment_count>6</comment_count>
      <attachid>47945</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-02-02 22:45:49 -0800</bug_when>
    <thetext>Comment on attachment 47945
Notify Chromium of state change notifications. 

&gt; Index: WebCore/ChangeLog

&gt; +        [Chromium] Notify ChromiumBridge of state change notifications.
&gt; +        Bug: https://bugs.webkit.org/show_bug.cgi?id=34464

nit: people generally do not add the &quot;Bug: &quot; label like that.  Just the URL is enough.


&gt; +
&gt; +        No new tests needed. Added virtual function with empty default implementation.
&gt; +
&gt; +        * Makefile:

^^^ This patch doesn&apos;t seem to include any changes to Makefile


&gt; +        * accessibility/chromium/AXObjectCacheChromium.cpp:
&gt; +        (WebCore::AXObjectCache::postPlatformNotification):
&gt; +        * platform/chromium/ChromiumBridge.h:

^^^ This ChangeLog seems inconsistent with the patch.


&gt; Index: WebCore/accessibility/chromium/AXObjectCacheChromium.cpp
...
&gt; -void AXObjectCache::postPlatformNotification(AccessibilityObject*, AXNotification)
&gt; +void AXObjectCache::postPlatformNotification(AccessibilityObject* obj, AXNotification notification)
&gt;  {
&gt; +    ChromiumBridge::postPlatformNotification(obj, notification);

Since your implementation of this ChromiumBridge method involves simply
calling back up to the WebViewClient, I think it would be better to put
that code here and skip defining a new ChromiumBridge method.

I would consider adding a method to ChromeClientChromium for this.  I
also think that it should have a more descriptive name than
postPlatformNotification.  &quot;changeStateAccessibilityObject&quot; sounds a
bit awkward to me.  How about didChangeAccessibilityObjectState?

In general, ChromiumBridge methods should only exist to help with the
implementation of code under WebCore/platform.  (There are numerous
exceptions that violate this rule and should be cleaned up.)

For example, if you find yourself dealing with Document or Frame in
ChromiumBridge, then you know it is the wrong place for the code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>187447</commentid>
    <comment_count>7</comment_count>
    <who name="Chris Guillory">ctguil</who>
    <bug_when>2010-02-03 11:20:07 -0800</bug_when>
    <thetext>Hi Darin,

Thanks for the review. I believe I incorrectly stated that this change required two-sided patch landing. It should just require one change in WebKit followed by one change in Chromium. Chromium will build fine with just the change in WebKit since the virtual method added to WebViewClient provides a default implementation.

I&apos;ve moved the new function from ChromiumBridge to ChromeClientChromium and given it a better name. I&apos;ll send out the new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>187470</commentid>
    <comment_count>8</comment_count>
      <attachid>48059</attachid>
    <who name="Chris Guillory">ctguil</who>
    <bug_when>2010-02-03 12:29:59 -0800</bug_when>
    <thetext>Created attachment 48059
Patch updated with comments from Darin</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>187471</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-02-03 12:33:46 -0800</bug_when>
    <thetext>Attachment 48059 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
WebKit/chromium/src/ChromeClientImpl.cpp:662:  One or more unexpected \r (^M) found; better to use only a \n  [whitespace/carriage_return] [1]
Suppressing further [whitespace/carriage_return] reports for this file.
WebCore/accessibility/chromium/AXObjectCacheChromium.cpp:30:  One or more unexpected \r (^M) found; better to use only a \n  [whitespace/carriage_return] [1]
Suppressing further [whitespace/carriage_return] reports for this file.
Total errors found: 27


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>187487</commentid>
    <comment_count>10</comment_count>
      <attachid>48063</attachid>
    <who name="Chris Guillory">ctguil</who>
    <bug_when>2010-02-03 13:13:01 -0800</bug_when>
    <thetext>Created attachment 48063
Fixing style - line endings.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>187637</commentid>
    <comment_count>11</comment_count>
      <attachid>48063</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-02-03 22:55:32 -0800</bug_when>
    <thetext>Comment on attachment 48063
Fixing style - line endings.

&gt; Index: WebCore/ChangeLog
...
&gt; +
&gt; +        No new tests.

^^^ please delete the line that says &quot;No new tests.&quot;

That is in the template to provide a suggestion to you that you
should consider creating new tests :-)

(For this change, I don&apos;t think a new test is needed.)


&gt; Index: WebCore/accessibility/chromium/AXObjectCacheChromium.cpp

&gt; +static ChromeClientChromium* toChromeClientChromium(Widget* widget)

This function should be changed to take a FrameView* as a parameter.
Then you can avoid having to check if the widget is a FrameView :-)


&gt; Index: WebKit/chromium/public/WebViewClient.h
...
&gt; +    // Notifies embedder that the state of an accessibility object has changed.
&gt; +    virtual void accessibilityObjectStateDidChange(const WebAccessibilityObject&amp;) { }

I previously suggested didChangeAccessibilityObjectState to match
the naming conventions of other methods found in WebViewClient.h.

Unless you feel strongly about this, I think we should go with
that instead (for consistency).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>187871</commentid>
    <comment_count>12</comment_count>
      <attachid>48157</attachid>
    <who name="Chris Guillory">ctguil</who>
    <bug_when>2010-02-04 11:22:46 -0800</bug_when>
    <thetext>Created attachment 48157
Updated with more comments from Darin

Removed no new tests.

toChromeClientChromium now takes a FrameView*. :)

I don&apos;t feel strongly about the name. Changed to didChangeAccessibilityObjectState.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>187882</commentid>
    <comment_count>13</comment_count>
      <attachid>48157</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-02-04 11:40:06 -0800</bug_when>
    <thetext>Comment on attachment 48157
Updated with more comments from Darin

&gt; Index: WebCore/accessibility/chromium/AXObjectCacheChromium.cpp
...
&gt; +void AXObjectCache::postPlatformNotification(AccessibilityObject* obj, AXNotification notification)
&gt;  {
&gt; +    if (!obj || !obj-&gt;documentFrameView() || notification != AXObjectCache::AXCheckedStateChanged)

nit: since you are within the namespace of AXObjectCache, there is no need
to use AXObjectCache::


otherwise, r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>187892</commentid>
    <comment_count>14</comment_count>
      <attachid>48159</attachid>
    <who name="Chris Guillory">ctguil</who>
    <bug_when>2010-02-04 12:10:54 -0800</bug_when>
    <thetext>Created attachment 48159
Removed unneeded AXObjectCache::

Fixed the copy paste error.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>187896</commentid>
    <comment_count>15</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-02-04 12:17:11 -0800</bug_when>
    <thetext>Landed as http://trac.webkit.org/changeset/54364</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>187898</commentid>
    <comment_count>16</comment_count>
      <attachid>48159</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-02-04 12:17:58 -0800</bug_when>
    <thetext>Comment on attachment 48159
Removed unneeded AXObjectCache::

Thanks for updating the patch.  I actually made the change
locally and committed.  Same result :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>188445</commentid>
    <comment_count>17</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2010-02-06 12:18:59 -0800</bug_when>
    <thetext>Committed r54466: &lt;http://trac.webkit.org/changeset/54466&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>188447</commentid>
    <comment_count>18</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2010-02-06 12:20:52 -0800</bug_when>
    <thetext>Rolled out, because it introduced ASSERTs. Needs more lovin&apos;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>188787</commentid>
    <comment_count>19</comment_count>
      <attachid>48157</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-02-08 15:12:49 -0800</bug_when>
    <thetext>Comment on attachment 48157
Updated with more comments from Darin

Cleared Darin Fisher&apos;s review+ from obsolete attachment 48157 so that this bug does not appear in http://webkit.org/pending-commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>188803</commentid>
    <comment_count>20</comment_count>
      <attachid>48159</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-02-08 15:28:56 -0800</bug_when>
    <thetext>Comment on attachment 48159
Removed unneeded AXObjectCache::

Looks like this got rolled out?  Marking r-.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>188817</commentid>
    <comment_count>21</comment_count>
      <attachid>48374</attachid>
    <who name="Chris Guillory">ctguil</who>
    <bug_when>2010-02-08 16:18:09 -0800</bug_when>
    <thetext>Created attachment 48374
Added the !obj-&gt;document() to fix debug ASSERTS

Verified by running chromium webkit layout tests in debug mode.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>189218</commentid>
    <comment_count>22</comment_count>
      <attachid>48374</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-02-09 20:01:54 -0800</bug_when>
    <thetext>Comment on attachment 48374
Added the !obj-&gt;document() to fix debug ASSERTS

Clearing flags on attachment: 48374

Committed r54584: &lt;http://trac.webkit.org/changeset/54584&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>189219</commentid>
    <comment_count>23</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-02-09 20:02:07 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>47942</attachid>
            <date>2010-02-02 09:40:30 -0800</date>
            <delta_ts>2010-02-02 09:56:25 -0800</delta_ts>
            <desc>[Chromium] Notify Chromium of state change notifications.</desc>
            <filename>MyPatch.txt</filename>
            <type>text/plain</type>
            <size>7359</size>
            <attacher name="Chris Guillory">ctguil</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViQ29yZS9DaGFuZ2VM
b2cJKHJldmlzaW9uIDU0MjQxKQorKysgV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkK
QEAgLTEsMyArMSwxNyBAQAorMjAxMC0wMi0wMiAgQ2hyaXMgR3VpbGxvcnkgIDxjdGd1aWxAZ29v
Z2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBbQ2hyb21pdW1dIE5vdGlmeSBDaHJvbWl1bUJyaWRnZSBvZiBzdGF0ZSBjaGFuZ2Ugbm90aWZp
Y2F0aW9ucy4KKyAgICAgICAgQnVnOiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MzQ0NjQKKworICAgICAgICBObyBuZXcgdGVzdHMgbmVlZGVkLiBBZGRlZCB2aXJ0dWFs
IGZ1bmN0aW9uIHdpdGggZW1wdHkgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbi4KKworICAgICAgICAq
IE1ha2VmaWxlOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvY2hyb21pdW0vQVhPYmplY3RDYWNo
ZUNocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RQbGF0
Zm9ybU5vdGlmaWNhdGlvbik6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vQ2hyb21pdW1C
cmlkZ2UuaDoKKwogMjAxMC0wMi0wMiAgQWxleGFuZGVyIFBhdmxvdiAgPGFwYXZsb3ZAY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFBhdmVsIEZlbGRtYW4uCkluZGV4OiBXZWJD
b3JlL2FjY2Vzc2liaWxpdHkvY2hyb21pdW0vQVhPYmplY3RDYWNoZUNocm9taXVtLmNwcA0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQ0KLS0tIFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9jaHJvbWl1bS9BWE9iamVjdENhY2hl
Q2hyb21pdW0uY3BwCShyZXZpc2lvbiA1NDI0MSkKKysrIFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9j
aHJvbWl1bS9BWE9iamVjdENhY2hlQ2hyb21pdW0uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2
ICsyOCw3IEBACiAjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogCiAjaW5jbHVkZSAiQWNjZXNz
aWJpbGl0eU9iamVjdC5oIgorI2luY2x1ZGUgIkNocm9taXVtQnJpZGdlLmgiCiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIApAQCAtNDMsOCArNDQsOSBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OmF0dGFj
aFdyYXBwZXIoQWNjZXNzCiAgICAgLy8gSW4gQ2hyb21pdW0sIEFjY2Vzc2liaWxpdHlPYmplY3Rz
IGFyZSB3cmFwcGVkIGxhemlseS4KIH0KIAotdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0UGxhdGZv
cm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYTm90aWZpY2F0aW9uKQordm9p
ZCBBWE9iamVjdENhY2hlOjpwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9i
amVjdCogb2JqLCBBWE5vdGlmaWNhdGlvbiBub3RpZmljYXRpb24pCiB7CisgICAgQ2hyb21pdW1C
cmlkZ2U6OnBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmosIG5vdGlmaWNhdGlvbik7CiB9CiAK
IHZvaWQgQVhPYmplY3RDYWNoZTo6aGFuZGxlRm9jdXNlZFVJRWxlbWVudENoYW5nZWQoUmVuZGVy
T2JqZWN0KiwgUmVuZGVyT2JqZWN0KikKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0v
Q2hyb21pdW1CcmlkZ2UuaA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vY2hyb21p
dW0vQ2hyb21pdW1CcmlkZ2UuaAkocmV2aXNpb24gNTQyNDEpCisrKyBXZWJDb3JlL3BsYXRmb3Jt
L2Nocm9taXVtL0Nocm9taXVtQnJpZGdlLmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDYgKzMxLDcg
QEAKICNpZm5kZWYgQ2hyb21pdW1CcmlkZ2VfaAogI2RlZmluZSBDaHJvbWl1bUJyaWRnZV9oCiAK
KyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiRmlsZVN5c3RlbS5oIgogI2lu
Y2x1ZGUgIkltYWdlU291cmNlLmgiCiAjaW5jbHVkZSAiTGlua0hhc2guaCIKQEAgLTQ5LDYgKzUw
LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgSEZPTlRfXyogSEZPTlQ7CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAorICAgIGNsYXNzIEFjY2Vzc2liaWxpdHlPYmplY3Q7CiAgICAgY2xhc3MgQ29sb3I7CiAg
ICAgY2xhc3MgQ3Vyc29yOwogICAgIGNsYXNzIERvY3VtZW50OwpAQCAtMjE3LDYgKzIxOSw5IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgLy8gV2lkZ2V0IC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICAgICAgc3Rh
dGljIHZvaWQgd2lkZ2V0U2V0Q3Vyc29yKFdpZGdldCosIGNvbnN0IEN1cnNvciYpOwogICAgICAg
ICBzdGF0aWMgdm9pZCB3aWRnZXRTZXRGb2N1cyhXaWRnZXQqKTsKKworICAgICAgICAvLyBBY2Nl
c3NpYmlsaXR5IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQorICAgICAgICBzdGF0aWMgdm9pZCBwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNj
ZXNzaWJpbGl0eU9iamVjdCogb2JqLCBBWE9iamVjdENhY2hlOjpBWE5vdGlmaWNhdGlvbiBub3Rp
ZmljYXRpb24pOwogICAgIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCShyZXZpc2lvbiA1NDI0MSkKKysrIFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHdv
cmtpbmcgY29weSkKQEAgLTEsMyArMSwyMiBAQAorMjAxMC0wMi0wMiAgQ2hyaXMgR3VpbGxvcnkg
IDxjdGd1aWxAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBbQ2hyb21pdW1dIE5vdGlmeSBXZWJWaWV3Q2xpZW50IG9mIHN0YXRlIGNo
YW5nZSBub3RpZmljYXRpb25zLgorICAgICAgICBCdWc6IGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0zNDQ2NAorCisgICAgICAgICogZ3lwX3dlYmtpdDoKKyAgICAgICAg
KiBwdWJsaWMvV2ViVmlld0NsaWVudC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3Q2xpZW50
OjpjaGFuZ2VTdGF0ZUFjY2Vzc2liaWxpdHlPYmplY3QpOgorICAgICAgICAqIHNyYy9DaHJvbWl1
bUJyaWRnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b1dlYlZpZXdDbGllbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6Q2hyb21pdW1CcmlkZ2U6OnNjcmVlbkRlcHRoKToKKyAgICAgICAgKFdlYkNv
cmU6OkNocm9taXVtQnJpZGdlOjpzY3JlZW5EZXB0aFBlckNvbXBvbmVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpDaHJvbWl1bUJyaWRnZTo6c2NyZWVuSXNNb25vY2hyb21lKToKKyAgICAgICAgKFdl
YkNvcmU6OkNocm9taXVtQnJpZGdlOjpzY3JlZW5SZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNo
cm9taXVtQnJpZGdlOjpzY3JlZW5BdmFpbGFibGVSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNo
cm9taXVtQnJpZGdlOjpwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24pOgorCiAyMDEwLTAyLTAyICBZ
dXJ5IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IFBhdmVsIEZlbGRtYW4uCkluZGV4OiBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXdD
bGllbnQuaA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlld0Ns
aWVudC5oCShyZXZpc2lvbiA1NDI0MSkKKysrIFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmll
d0NsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNTEsNiArMjUxLDcgQEAgcHVibGljOgogICAg
IC8vIE5vdGlmaWVzIGVtYmVkZGVyIHRoYXQgdGhlIGZvY3VzIGhhcyBjaGFuZ2VkIHRvIHRoZSBn
aXZlbgogICAgIC8vIGFjY2Vzc2liaWxpdHkgb2JqZWN0LgogICAgIHZpcnR1YWwgdm9pZCBmb2N1
c0FjY2Vzc2liaWxpdHlPYmplY3QoY29uc3QgV2ViQWNjZXNzaWJpbGl0eU9iamVjdCYpIHsgfQor
ICAgIHZpcnR1YWwgdm9pZCBjaGFuZ2VTdGF0ZUFjY2Vzc2liaWxpdHlPYmplY3QoY29uc3QgV2Vi
QWNjZXNzaWJpbGl0eU9iamVjdCYpIHsgfQogCiAKICAgICAvLyBEZXZlbG9wZXIgdG9vbHMgLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KSW5kZXg6
IFdlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21pdW1CcmlkZ2UuY3BwDQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0g
V2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWl1bUJyaWRnZS5jcHAJKHJldmlzaW9uIDU0MjQxKQor
KysgV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWl1bUJyaWRnZS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTM1LDYgKzM1LDcgQEAKIAogI2luY2x1ZGUgIkNocm9tZS5oIgogI2luY2x1ZGUgIkNocm9t
ZUNsaWVudEltcGwuaCIKKyNpbmNsdWRlICJXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0LmgiCiAjaW5j
bHVkZSAiV2ViQ2xpcGJvYXJkLmgiCiAjaW5jbHVkZSAiV2ViQ29va2llLmgiCiAjaW5jbHVkZSAi
V2ViQ3Vyc29ySW5mby5oIgpAQCAtMTA0LDcgKzEwNSw3IEBAIHN0YXRpYyBDaHJvbWVDbGllbnRJ
bXBsKiB0b0Nocm9tZUNsaWVudEkKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q2hyb21lQ2xpZW50
SW1wbCo+KHBhZ2UtPmNocm9tZSgpLT5jbGllbnQoKSk7CiB9CiAKLXN0YXRpYyBXZWJXaWRnZXRD
bGllbnQqIHRvV2ViV2lkZ2V0Q2xpZW50KFdpZGdldCogd2lkZ2V0KQorc3RhdGljIFdlYlZpZXdD
bGllbnQqIHRvV2ViVmlld0NsaWVudChXaWRnZXQqIHdpZGdldCkKIHsKICAgICBDaHJvbWVDbGll
bnRJbXBsKiBjaHJvbWVDbGllbnRJbXBsID0gdG9DaHJvbWVDbGllbnRJbXBsKHdpZGdldCk7CiAg
ICAgaWYgKCFjaHJvbWVDbGllbnRJbXBsIHx8ICFjaHJvbWVDbGllbnRJbXBsLT53ZWJWaWV3KCkp
CkBAIC02MzAsNyArNjMxLDcgQEAgaW50IENocm9taXVtQnJpZGdlOjptZW1vcnlVc2FnZU1CKCkK
IAogaW50IENocm9taXVtQnJpZGdlOjpzY3JlZW5EZXB0aChXaWRnZXQqIHdpZGdldCkKIHsKLSAg
ICBXZWJXaWRnZXRDbGllbnQqIGNsaWVudCA9IHRvV2ViV2lkZ2V0Q2xpZW50KHdpZGdldCk7Cisg
ICAgV2ViV2lkZ2V0Q2xpZW50KiBjbGllbnQgPSB0b1dlYlZpZXdDbGllbnQod2lkZ2V0KTsKICAg
ICBpZiAoIWNsaWVudCkKICAgICAgICAgcmV0dXJuIDA7CiAgICAgcmV0dXJuIGNsaWVudC0+c2Ny
ZWVuSW5mbygpLmRlcHRoOwpAQCAtNjM4LDcgKzYzOSw3IEBAIGludCBDaHJvbWl1bUJyaWRnZTo6
c2NyZWVuRGVwdGgoV2lkZ2V0KiAKIAogaW50IENocm9taXVtQnJpZGdlOjpzY3JlZW5EZXB0aFBl
ckNvbXBvbmVudChXaWRnZXQqIHdpZGdldCkKIHsKLSAgICBXZWJXaWRnZXRDbGllbnQqIGNsaWVu
dCA9IHRvV2ViV2lkZ2V0Q2xpZW50KHdpZGdldCk7CisgICAgV2ViV2lkZ2V0Q2xpZW50KiBjbGll
bnQgPSB0b1dlYlZpZXdDbGllbnQod2lkZ2V0KTsKICAgICBpZiAoIWNsaWVudCkKICAgICAgICAg
cmV0dXJuIDA7CiAgICAgcmV0dXJuIGNsaWVudC0+c2NyZWVuSW5mbygpLmRlcHRoUGVyQ29tcG9u
ZW50OwpAQCAtNjQ2LDcgKzY0Nyw3IEBAIGludCBDaHJvbWl1bUJyaWRnZTo6c2NyZWVuRGVwdGhQ
ZXJDb21wb24KIAogYm9vbCBDaHJvbWl1bUJyaWRnZTo6c2NyZWVuSXNNb25vY2hyb21lKFdpZGdl
dCogd2lkZ2V0KQogewotICAgIFdlYldpZGdldENsaWVudCogY2xpZW50ID0gdG9XZWJXaWRnZXRD
bGllbnQod2lkZ2V0KTsKKyAgICBXZWJXaWRnZXRDbGllbnQqIGNsaWVudCA9IHRvV2ViVmlld0Ns
aWVudCh3aWRnZXQpOwogICAgIGlmICghY2xpZW50KQogICAgICAgICByZXR1cm4gMDsKICAgICBy
ZXR1cm4gY2xpZW50LT5zY3JlZW5JbmZvKCkuaXNNb25vY2hyb21lOwpAQCAtNjU0LDcgKzY1NSw3
IEBAIGJvb2wgQ2hyb21pdW1CcmlkZ2U6OnNjcmVlbklzTW9ub2Nocm9tZSgKIAogSW50UmVjdCBD
aHJvbWl1bUJyaWRnZTo6c2NyZWVuUmVjdChXaWRnZXQqIHdpZGdldCkKIHsKLSAgICBXZWJXaWRn
ZXRDbGllbnQqIGNsaWVudCA9IHRvV2ViV2lkZ2V0Q2xpZW50KHdpZGdldCk7CisgICAgV2ViV2lk
Z2V0Q2xpZW50KiBjbGllbnQgPSB0b1dlYlZpZXdDbGllbnQod2lkZ2V0KTsKICAgICBpZiAoIWNs
aWVudCkKICAgICAgICAgcmV0dXJuIEludFJlY3QoKTsKICAgICByZXR1cm4gY2xpZW50LT5zY3Jl
ZW5JbmZvKCkucmVjdDsKQEAgLTY2Miw3ICs2NjMsNyBAQCBJbnRSZWN0IENocm9taXVtQnJpZGdl
OjpzY3JlZW5SZWN0KFdpZGdlCiAKIEludFJlY3QgQ2hyb21pdW1CcmlkZ2U6OnNjcmVlbkF2YWls
YWJsZVJlY3QoV2lkZ2V0KiB3aWRnZXQpCiB7Ci0gICAgV2ViV2lkZ2V0Q2xpZW50KiBjbGllbnQg
PSB0b1dlYldpZGdldENsaWVudCh3aWRnZXQpOworICAgIFdlYldpZGdldENsaWVudCogY2xpZW50
ID0gdG9XZWJWaWV3Q2xpZW50KHdpZGdldCk7CiAgICAgaWYgKCFjbGllbnQpCiAgICAgICAgIHJl
dHVybiBJbnRSZWN0KCk7CiAgICAgcmV0dXJuIGNsaWVudC0+c2NyZWVuSW5mbygpLmF2YWlsYWJs
ZVJlY3Q7CkBAIC02OTMsNCArNjk0LDE0IEBAIFdvcmtlckNvbnRleHRQcm94eSogV29ya2VyQ29u
dGV4dFByb3h5OjoKICAgICByZXR1cm4gV2ViV29ya2VyQ2xpZW50SW1wbDo6Y3JlYXRlV29ya2Vy
Q29udGV4dFByb3h5KHdvcmtlcik7CiB9CiAKK3ZvaWQgQ2hyb21pdW1CcmlkZ2U6OnBvc3RQbGF0
Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFYT2JqZWN0Q2FjaGU6
OkFYTm90aWZpY2F0aW9uIG5vdGlmaWNhdGlvbikKK3sKKyAgICBpZiAoIW9iaiB8fCAhb2JqLT5k
b2N1bWVudEZyYW1lVmlldygpIHx8IG5vdGlmaWNhdGlvbiAhPSBBWE9iamVjdENhY2hlOjpBWENo
ZWNrZWRTdGF0ZUNoYW5nZWQpCisgICAgICAgIHJldHVybjsKKworICAgIFdlYlZpZXdDbGllbnQq
IGNsaWVudCA9IHRvV2ViVmlld0NsaWVudChvYmotPmRvY3VtZW50RnJhbWVWaWV3KCkpOworICAg
IGlmIChjbGllbnQpCisgICAgICAgIGNsaWVudC0+Y2hhbmdlU3RhdGVBY2Nlc3NpYmlsaXR5T2Jq
ZWN0KFdlYkFjY2Vzc2liaWxpdHlPYmplY3Qob2JqKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>47945</attachid>
            <date>2010-02-02 09:56:25 -0800</date>
            <delta_ts>2010-02-03 12:29:59 -0800</delta_ts>
            <desc>Notify Chromium of state change notifications. </desc>
            <filename>MyPatch.txt</filename>
            <type>text/plain</type>
            <size>23775</size>
            <attacher name="Chris Guillory">ctguil</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViQ29yZS9DaGFuZ2VM
b2cJKHJldmlzaW9uIDU0MjQxKQorKysgV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkK
QEAgLTEsMyArMSwxNyBAQAorMjAxMC0wMi0wMiAgQ2hyaXMgR3VpbGxvcnkgIDxjdGd1aWxAZ29v
Z2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBbQ2hyb21pdW1dIE5vdGlmeSBDaHJvbWl1bUJyaWRnZSBvZiBzdGF0ZSBjaGFuZ2Ugbm90aWZp
Y2F0aW9ucy4KKyAgICAgICAgQnVnOiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MzQ0NjQKKworICAgICAgICBObyBuZXcgdGVzdHMgbmVlZGVkLiBBZGRlZCB2aXJ0dWFs
IGZ1bmN0aW9uIHdpdGggZW1wdHkgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbi4KKworICAgICAgICAq
IE1ha2VmaWxlOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvY2hyb21pdW0vQVhPYmplY3RDYWNo
ZUNocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RQbGF0
Zm9ybU5vdGlmaWNhdGlvbik6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vQ2hyb21pdW1C
cmlkZ2UuaDoKKwogMjAxMC0wMi0wMiAgQWxleGFuZGVyIFBhdmxvdiAgPGFwYXZsb3ZAY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFBhdmVsIEZlbGRtYW4uCkluZGV4OiBXZWJD
b3JlL2FjY2Vzc2liaWxpdHkvY2hyb21pdW0vQVhPYmplY3RDYWNoZUNocm9taXVtLmNwcA0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQ0KLS0tIFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9jaHJvbWl1bS9BWE9iamVjdENhY2hl
Q2hyb21pdW0uY3BwCShyZXZpc2lvbiA1NDI0MSkKKysrIFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9j
aHJvbWl1bS9BWE9iamVjdENhY2hlQ2hyb21pdW0uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2
ICsyOCw3IEBACiAjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogCiAjaW5jbHVkZSAiQWNjZXNz
aWJpbGl0eU9iamVjdC5oIgorI2luY2x1ZGUgIkNocm9taXVtQnJpZGdlLmgiCiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIApAQCAtNDMsOCArNDQsOSBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OmF0dGFj
aFdyYXBwZXIoQWNjZXNzCiAgICAgLy8gSW4gQ2hyb21pdW0sIEFjY2Vzc2liaWxpdHlPYmplY3Rz
IGFyZSB3cmFwcGVkIGxhemlseS4KIH0KIAotdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0UGxhdGZv
cm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYTm90aWZpY2F0aW9uKQordm9p
ZCBBWE9iamVjdENhY2hlOjpwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9i
amVjdCogb2JqLCBBWE5vdGlmaWNhdGlvbiBub3RpZmljYXRpb24pCiB7CisgICAgQ2hyb21pdW1C
cmlkZ2U6OnBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmosIG5vdGlmaWNhdGlvbik7CiB9CiAK
IHZvaWQgQVhPYmplY3RDYWNoZTo6aGFuZGxlRm9jdXNlZFVJRWxlbWVudENoYW5nZWQoUmVuZGVy
T2JqZWN0KiwgUmVuZGVyT2JqZWN0KikKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0v
Q2hyb21pdW1CcmlkZ2UuaA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vY2hyb21p
dW0vQ2hyb21pdW1CcmlkZ2UuaAkocmV2aXNpb24gNTQyNDEpCisrKyBXZWJDb3JlL3BsYXRmb3Jt
L2Nocm9taXVtL0Nocm9taXVtQnJpZGdlLmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDYgKzMxLDcg
QEAKICNpZm5kZWYgQ2hyb21pdW1CcmlkZ2VfaAogI2RlZmluZSBDaHJvbWl1bUJyaWRnZV9oCiAK
KyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiRmlsZVN5c3RlbS5oIgogI2lu
Y2x1ZGUgIkltYWdlU291cmNlLmgiCiAjaW5jbHVkZSAiTGlua0hhc2guaCIKQEAgLTQ5LDE3NSAr
NTAsMTc5IEBAIHR5cGVkZWYgc3RydWN0IEhGT05UX18qIEhGT05UOwogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLSAgICBjbGFzcyBDb2xvcjsKLSAgICBjbGFzcyBDdXJzb3I7Ci0gICAgY2xhc3Mg
RG9jdW1lbnQ7Ci0gICAgY2xhc3MgRnJhbWU7Ci0gICAgY2xhc3MgR3JhcGhpY3NDb250ZXh0Owot
ICAgIGNsYXNzIEltYWdlOwotICAgIGNsYXNzIEludFJlY3Q7Ci0gICAgY2xhc3MgS1VSTDsKLSAg
ICBjbGFzcyBTdHJpbmc7Ci0gICAgY2xhc3MgV2lkZ2V0OwotCi0gICAgc3RydWN0IENvb2tpZTsK
LSAgICBzdHJ1Y3QgUGx1Z2luSW5mbzsKLQotICAgIC8vIEFuIGludGVyZmFjZSB0byB0aGUgZW1i
ZWRkaW5nIGxheWVyLCB3aGljaCBoYXMgdGhlIGFiaWxpdHkgdG8gYW5zd2VyCi0gICAgLy8gcXVl
c3Rpb25zIGFib3V0IHRoZSBzeXN0ZW0gYW5kIHNvIG9uLi4uCi0KLSAgICBjbGFzcyBDaHJvbWl1
bUJyaWRnZSB7Ci0gICAgcHVibGljOgotICAgICAgICAvLyBDbGlwYm9hcmQgLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICAgICAgICBz
dGF0aWMgYm9vbCBjbGlwYm9hcmRJc0Zvcm1hdEF2YWlsYWJsZShQYXN0ZWJvYXJkUHJpdmF0ZTo6
Q2xpcGJvYXJkRm9ybWF0LCBQYXN0ZWJvYXJkUHJpdmF0ZTo6Q2xpcGJvYXJkQnVmZmVyKTsKLQot
ICAgICAgICBzdGF0aWMgU3RyaW5nIGNsaXBib2FyZFJlYWRQbGFpblRleHQoUGFzdGVib2FyZFBy
aXZhdGU6OkNsaXBib2FyZEJ1ZmZlcik7Ci0gICAgICAgIHN0YXRpYyB2b2lkIGNsaXBib2FyZFJl
YWRIVE1MKFBhc3RlYm9hcmRQcml2YXRlOjpDbGlwYm9hcmRCdWZmZXIsIFN0cmluZyosIEtVUkwq
KTsKLQotICAgICAgICAvLyBPbmx5IHRoZSBjbGlwYm9hcmRSZWFkIGZ1bmN0aW9ucyB0YWtlIGEg
YnVmZmVyIGFyZ3VtZW50IGJlY2F1c2UgCi0gICAgICAgIC8vIENocm9taXVtIGN1cnJlbnRseSB1
c2VzIGEgZGlmZmVyZW50IHRlY2huaXF1ZSB0byB3cml0ZSB0byBhbHRlcm5hdGUKLSAgICAgICAg
Ly8gY2xpcGJvYXJkIGJ1ZmZlcnMuCi0gICAgICAgIHN0YXRpYyB2b2lkIGNsaXBib2FyZFdyaXRl
U2VsZWN0aW9uKGNvbnN0IFN0cmluZyYsIGNvbnN0IEtVUkwmLCBjb25zdCBTdHJpbmcmLCBib29s
KTsKLSAgICAgICAgc3RhdGljIHZvaWQgY2xpcGJvYXJkV3JpdGVQbGFpblRleHQoY29uc3QgU3Ry
aW5nJik7Ci0gICAgICAgIHN0YXRpYyB2b2lkIGNsaXBib2FyZFdyaXRlVVJMKGNvbnN0IEtVUkwm
LCBjb25zdCBTdHJpbmcmKTsKLSAgICAgICAgc3RhdGljIHZvaWQgY2xpcGJvYXJkV3JpdGVJbWFn
ZShOYXRpdmVJbWFnZVB0ciwgY29uc3QgS1VSTCYsIGNvbnN0IFN0cmluZyYpOwotCi0gICAgICAg
IC8vIENvb2tpZXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCi0gICAgICAgIHN0YXRpYyB2b2lkIHNldENvb2tpZXMoY29uc3QgS1VS
TCYgdXJsLCBjb25zdCBLVVJMJiBmaXJzdFBhcnR5Rm9yQ29va2llcywgY29uc3QgU3RyaW5nJiB2
YWx1ZSk7Ci0gICAgICAgIHN0YXRpYyBTdHJpbmcgY29va2llcyhjb25zdCBLVVJMJiB1cmwsIGNv
bnN0IEtVUkwmIGZpcnN0UGFydHlGb3JDb29raWVzKTsKLSAgICAgICAgc3RhdGljIGJvb2wgcmF3
Q29va2llcyhjb25zdCBLVVJMJiB1cmwsIGNvbnN0IEtVUkwmIGZpcnN0UGFydHlGb3JDb29raWVz
LCBWZWN0b3I8Q29va2llPiopOwotICAgICAgICBzdGF0aWMgdm9pZCBkZWxldGVDb29raWUoY29u
c3QgS1VSTCYgdXJsLCBjb25zdCBTdHJpbmcmIGNvb2tpZU5hbWUpOwotICAgICAgICBzdGF0aWMg
Ym9vbCBjb29raWVzRW5hYmxlZChjb25zdCBLVVJMJiB1cmwsIGNvbnN0IEtVUkwmIGZpcnN0UGFy
dHlGb3JDb29raWVzKTsKLQotICAgICAgICAvLyBETlMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICAgICAgICBzdGF0aWMg
dm9pZCBwcmVmZXRjaEROUyhjb25zdCBTdHJpbmcmIGhvc3RuYW1lKTsKLQotICAgICAgICAvLyBG
aWxlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQotICAgICAgICBzdGF0aWMgYm9vbCBmaWxlRXhpc3RzKGNvbnN0IFN0cmluZyYp
OwotICAgICAgICBzdGF0aWMgYm9vbCBkZWxldGVGaWxlKGNvbnN0IFN0cmluZyYpOwotICAgICAg
ICBzdGF0aWMgYm9vbCBkZWxldGVFbXB0eURpcmVjdG9yeShjb25zdCBTdHJpbmcmKTsKLSAgICAg
ICAgc3RhdGljIGJvb2wgZ2V0RmlsZVNpemUoY29uc3QgU3RyaW5nJiwgbG9uZyBsb25nJiByZXN1
bHQpOwotICAgICAgICBzdGF0aWMgYm9vbCBnZXRGaWxlTW9kaWZpY2F0aW9uVGltZShjb25zdCBT
dHJpbmcmLCB0aW1lX3QmIHJlc3VsdCk7Ci0gICAgICAgIHN0YXRpYyBTdHJpbmcgZGlyZWN0b3J5
TmFtZShjb25zdCBTdHJpbmcmIHBhdGgpOwotICAgICAgICBzdGF0aWMgU3RyaW5nIHBhdGhCeUFw
cGVuZGluZ0NvbXBvbmVudChjb25zdCBTdHJpbmcmIHBhdGgsIGNvbnN0IFN0cmluZyYgY29tcG9u
ZW50KTsKLSAgICAgICAgc3RhdGljIGJvb2wgbWFrZUFsbERpcmVjdG9yaWVzKGNvbnN0IFN0cmlu
ZyYgcGF0aCk7Ci0gICAgICAgIHN0YXRpYyBTdHJpbmcgZ2V0QWJzb2x1dGVQYXRoKGNvbnN0IFN0
cmluZyYpOwotICAgICAgICBzdGF0aWMgYm9vbCBpc0RpcmVjdG9yeShjb25zdCBTdHJpbmcmKTsK
LSAgICAgICAgc3RhdGljIEtVUkwgZmlsZVBhdGhUb1VSTChjb25zdCBTdHJpbmcmKTsKK2NsYXNz
IEFjY2Vzc2liaWxpdHlPYmplY3Q7CitjbGFzcyBDb2xvcjsKK2NsYXNzIEN1cnNvcjsKK2NsYXNz
IERvY3VtZW50OworY2xhc3MgRnJhbWU7CitjbGFzcyBHcmFwaGljc0NvbnRleHQ7CitjbGFzcyBJ
bWFnZTsKK2NsYXNzIEludFJlY3Q7CitjbGFzcyBLVVJMOworY2xhc3MgU3RyaW5nOworY2xhc3Mg
V2lkZ2V0OworCitzdHJ1Y3QgQ29va2llOworc3RydWN0IFBsdWdpbkluZm87CisKKy8vIEFuIGlu
dGVyZmFjZSB0byB0aGUgZW1iZWRkaW5nIGxheWVyLCB3aGljaCBoYXMgdGhlIGFiaWxpdHkgdG8g
YW5zd2VyCisvLyBxdWVzdGlvbnMgYWJvdXQgdGhlIHN5c3RlbSBhbmQgc28gb24uLi4KKworY2xh
c3MgQ2hyb21pdW1CcmlkZ2UgeworcHVibGljOgorICAgIC8vIENsaXBib2FyZCAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgc3Rh
dGljIGJvb2wgY2xpcGJvYXJkSXNGb3JtYXRBdmFpbGFibGUoUGFzdGVib2FyZFByaXZhdGU6OkNs
aXBib2FyZEZvcm1hdCwgUGFzdGVib2FyZFByaXZhdGU6OkNsaXBib2FyZEJ1ZmZlcik7CisKKyAg
ICBzdGF0aWMgU3RyaW5nIGNsaXBib2FyZFJlYWRQbGFpblRleHQoUGFzdGVib2FyZFByaXZhdGU6
OkNsaXBib2FyZEJ1ZmZlcik7CisgICAgc3RhdGljIHZvaWQgY2xpcGJvYXJkUmVhZEhUTUwoUGFz
dGVib2FyZFByaXZhdGU6OkNsaXBib2FyZEJ1ZmZlciwgU3RyaW5nKiwgS1VSTCopOworCisgICAg
Ly8gT25seSB0aGUgY2xpcGJvYXJkUmVhZCBmdW5jdGlvbnMgdGFrZSBhIGJ1ZmZlciBhcmd1bWVu
dCBiZWNhdXNlIAorICAgIC8vIENocm9taXVtIGN1cnJlbnRseSB1c2VzIGEgZGlmZmVyZW50IHRl
Y2huaXF1ZSB0byB3cml0ZSB0byBhbHRlcm5hdGUKKyAgICAvLyBjbGlwYm9hcmQgYnVmZmVycy4K
KyAgICBzdGF0aWMgdm9pZCBjbGlwYm9hcmRXcml0ZVNlbGVjdGlvbihjb25zdCBTdHJpbmcmLCBj
b25zdCBLVVJMJiwgY29uc3QgU3RyaW5nJiwgYm9vbCk7CisgICAgc3RhdGljIHZvaWQgY2xpcGJv
YXJkV3JpdGVQbGFpblRleHQoY29uc3QgU3RyaW5nJik7CisgICAgc3RhdGljIHZvaWQgY2xpcGJv
YXJkV3JpdGVVUkwoY29uc3QgS1VSTCYsIGNvbnN0IFN0cmluZyYpOworICAgIHN0YXRpYyB2b2lk
IGNsaXBib2FyZFdyaXRlSW1hZ2UoTmF0aXZlSW1hZ2VQdHIsIGNvbnN0IEtVUkwmLCBjb25zdCBT
dHJpbmcmKTsKKworICAgIC8vIENvb2tpZXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgc3RhdGljIHZvaWQgc2V0Q29va2ll
cyhjb25zdCBLVVJMJiB1cmwsIGNvbnN0IEtVUkwmIGZpcnN0UGFydHlGb3JDb29raWVzLCBjb25z
dCBTdHJpbmcmIHZhbHVlKTsKKyAgICBzdGF0aWMgU3RyaW5nIGNvb2tpZXMoY29uc3QgS1VSTCYg
dXJsLCBjb25zdCBLVVJMJiBmaXJzdFBhcnR5Rm9yQ29va2llcyk7CisgICAgc3RhdGljIGJvb2wg
cmF3Q29va2llcyhjb25zdCBLVVJMJiB1cmwsIGNvbnN0IEtVUkwmIGZpcnN0UGFydHlGb3JDb29r
aWVzLCBWZWN0b3I8Q29va2llPiopOworICAgIHN0YXRpYyB2b2lkIGRlbGV0ZUNvb2tpZShjb25z
dCBLVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgY29va2llTmFtZSk7CisgICAgc3RhdGljIGJvb2wg
Y29va2llc0VuYWJsZWQoY29uc3QgS1VSTCYgdXJsLCBjb25zdCBLVVJMJiBmaXJzdFBhcnR5Rm9y
Q29va2llcyk7CisKKyAgICAvLyBETlMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIHN0YXRpYyB2b2lkIHByZWZldGNo
RE5TKGNvbnN0IFN0cmluZyYgaG9zdG5hbWUpOworCisgICAgLy8gRmlsZSAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICBz
dGF0aWMgYm9vbCBmaWxlRXhpc3RzKGNvbnN0IFN0cmluZyYpOworICAgIHN0YXRpYyBib29sIGRl
bGV0ZUZpbGUoY29uc3QgU3RyaW5nJik7CisgICAgc3RhdGljIGJvb2wgZGVsZXRlRW1wdHlEaXJl
Y3RvcnkoY29uc3QgU3RyaW5nJik7CisgICAgc3RhdGljIGJvb2wgZ2V0RmlsZVNpemUoY29uc3Qg
U3RyaW5nJiwgbG9uZyBsb25nJiByZXN1bHQpOworICAgIHN0YXRpYyBib29sIGdldEZpbGVNb2Rp
ZmljYXRpb25UaW1lKGNvbnN0IFN0cmluZyYsIHRpbWVfdCYgcmVzdWx0KTsKKyAgICBzdGF0aWMg
U3RyaW5nIGRpcmVjdG9yeU5hbWUoY29uc3QgU3RyaW5nJiBwYXRoKTsKKyAgICBzdGF0aWMgU3Ry
aW5nIHBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChjb25zdCBTdHJpbmcmIHBhdGgsIGNvbnN0IFN0
cmluZyYgY29tcG9uZW50KTsKKyAgICBzdGF0aWMgYm9vbCBtYWtlQWxsRGlyZWN0b3JpZXMoY29u
c3QgU3RyaW5nJiBwYXRoKTsKKyAgICBzdGF0aWMgU3RyaW5nIGdldEFic29sdXRlUGF0aChjb25z
dCBTdHJpbmcmKTsKKyAgICBzdGF0aWMgYm9vbCBpc0RpcmVjdG9yeShjb25zdCBTdHJpbmcmKTsK
KyAgICBzdGF0aWMgS1VSTCBmaWxlUGF0aFRvVVJMKGNvbnN0IFN0cmluZyYpOwogCi0gICAgICAg
IC8vIEZvbnQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCisgICAgLy8gRm9udCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICNpZiBPUyhXSU5ET1dTKQotICAg
ICAgICBzdGF0aWMgYm9vbCBlbnN1cmVGb250TG9hZGVkKEhGT05UIGZvbnQpOworICAgIHN0YXRp
YyBib29sIGVuc3VyZUZvbnRMb2FkZWQoSEZPTlQgZm9udCk7CiAjZW5kaWYKICNpZiBPUyhMSU5V
WCkKLSAgICAgICAgc3RhdGljIFN0cmluZyBnZXRGb250RmFtaWx5Rm9yQ2hhcmFjdGVycyhjb25z
dCBVQ2hhciosIHNpemVfdCBudW1DaGFyYWN0ZXJzKTsKKyAgICBzdGF0aWMgU3RyaW5nIGdldEZv
bnRGYW1pbHlGb3JDaGFyYWN0ZXJzKGNvbnN0IFVDaGFyKiwgc2l6ZV90IG51bUNoYXJhY3RlcnMp
OwogI2VuZGlmCiAKLSAgICAgICAgLy8gRm9ybXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgICAgICAgc3RhdGljIHZvaWQg
bm90aWZ5Rm9ybVN0YXRlQ2hhbmdlZChjb25zdCBEb2N1bWVudCopOworICAgIC8vIEZvcm1zIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCisgICAgc3RhdGljIHZvaWQgbm90aWZ5Rm9ybVN0YXRlQ2hhbmdlZChjb25zdCBEb2N1bWVu
dCopOwogCi0gICAgICAgIC8vIEhUTUw1IERCIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gSFRNTDUgREIgLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICNpZiBF
TkFCTEUoREFUQUJBU0UpCi0gICAgICAgIC8vIFJldHVybnMgYSBoYW5kbGUgdG8gdGhlIERCIGZp
bGUgYW5kIG9vcHRpb25hbGx5IGEgaGFuZGxlIHRvIGl0cyBjb250YWluaW5nIGRpcmVjdG9yeQot
ICAgICAgICBzdGF0aWMgUGxhdGZvcm1GaWxlSGFuZGxlIGRhdGFiYXNlT3BlbkZpbGUoY29uc3Qg
U3RyaW5nJiB2ZnNGbGVOYW1lLCBpbnQgZGVzaXJlZEZsYWdzLCBQbGF0Zm9ybUZpbGVIYW5kbGUq
IGRpckhhbmRsZSA9IDApOwotICAgICAgICAvLyBSZXR1cm5zIGEgU1FMaXRlIGNvZGUgKFNRTElU
RV9PSyA9IDAsIG9uIHN1Y2Nlc3MpCi0gICAgICAgIHN0YXRpYyBpbnQgZGF0YWJhc2VEZWxldGVG
aWxlKGNvbnN0IFN0cmluZyYgdmZzRmlsZU5hbWUsIGJvb2wgc3luY0RpciA9IGZhbHNlKTsKLSAg
ICAgICAgLy8gUmV0dXJucyB0aGUgYXR0cmlidXRlcyBvZiB0aGUgREIgZmlsZQotICAgICAgICBz
dGF0aWMgbG9uZyBkYXRhYmFzZUdldEZpbGVBdHRyaWJ1dGVzKGNvbnN0IFN0cmluZyYgdmZzRmls
ZU5hbWUpOwotICAgICAgICAvLyBSZXR1cm5zIHRoZSBzaXplIG9mIHRoZSBEQiBmaWxlCi0gICAg
ICAgIHN0YXRpYyBsb25nIGxvbmcgZGF0YWJhc2VHZXRGaWxlU2l6ZShjb25zdCBTdHJpbmcmIHZm
c0ZpbGVOYW1lKTsKLSNlbmRpZgotCi0gICAgICAgIC8vIEphdmFTY3JpcHQgLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgICAgIHN0
YXRpYyB2b2lkIG5vdGlmeUpTT3V0T2ZNZW1vcnkoRnJhbWUqKTsKLSAgICAgICAgc3RhdGljIGJv
b2wgYWxsb3dTY3JpcHREZXNwaXRlU2V0dGluZ3MoY29uc3QgS1VSTCYgZG9jdW1lbnRVUkwpOwot
Ci0gICAgICAgIC8vIEtleWdlbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgICAgIHN0YXRpYyBTdHJpbmcgc2lnbmVkUHVi
bGljS2V5QW5kQ2hhbGxlbmdlU3RyaW5nKHVuc2lnbmVkIGtleVNpemVJbmRleCwgY29uc3QgU3Ry
aW5nJiBjaGFsbGVuZ2UsIGNvbnN0IEtVUkwmIHVybCk7Ci0KLSAgICAgICAgLy8gTGFuZ3VhZ2Ug
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KLSAgICAgICAgc3RhdGljIFN0cmluZyBjb21wdXRlZERlZmF1bHRMYW5ndWFnZSgpOwotCi0g
ICAgICAgIC8vIExheW91dFRlc3RNb2RlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgICAgIHN0YXRpYyBib29sIGxheW91dFRlc3RNb2Rl
KCk7Ci0KLSAgICAgICAgLy8gTWVtb3J5IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgICAgICAgLy8gUmV0dXJucyB0aGUgY3Vy
cmVudCBzcGFjZSBhbGxvY2F0ZWQgZm9yIHRoZSBwYWdlZmlsZSwgaW4gTUIuCi0gICAgICAgIC8v
IFRoYXQgaXMgY29tbWl0dGVkIHNpemUgZm9yIFdpbmRvd3MgYW5kIHZpcnR1YWwgbWVtb3J5IHNp
emUgZm9yIFBPU0lYCi0gICAgICAgIHN0YXRpYyBpbnQgbWVtb3J5VXNhZ2VNQigpOwotCi0gICAg
ICAgIC8vIE1pbWVUeXBlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgICAgIHN0YXRpYyBib29sIGlzU3VwcG9ydGVkSW1hZ2VN
SU1FVHlwZShjb25zdCBTdHJpbmcmIG1pbWVUeXBlKTsKLSAgICAgICAgc3RhdGljIGJvb2wgaXNT
dXBwb3J0ZWRKYXZhU2NyaXB0TUlNRVR5cGUoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSk7Ci0gICAg
ICAgIHN0YXRpYyBib29sIGlzU3VwcG9ydGVkTm9uSW1hZ2VNSU1FVHlwZShjb25zdCBTdHJpbmcm
IG1pbWVUeXBlKTsKLSAgICAgICAgc3RhdGljIFN0cmluZyBtaW1lVHlwZUZvckV4dGVuc2lvbihj
b25zdCBTdHJpbmcmIGZpbGVFeHRlbnNpb24pOwotICAgICAgICBzdGF0aWMgU3RyaW5nIG1pbWVU
eXBlRnJvbUZpbGUoY29uc3QgU3RyaW5nJiBmaWxlUGF0aCk7Ci0gICAgICAgIHN0YXRpYyBTdHJp
bmcgcHJlZmVycmVkRXh0ZW5zaW9uRm9yTUlNRVR5cGUoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSk7
Ci0KLSAgICAgICAgLy8gUGx1Z2luIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgICAgICAgc3RhdGljIGJvb2wgcGx1Z2lucyhi
b29sIHJlZnJlc2gsIFZlY3RvcjxQbHVnaW5JbmZvKj4qKTsKLSAgICAgICAgc3RhdGljIE5QT2Jq
ZWN0KiBwbHVnaW5TY3JpcHRhYmxlT2JqZWN0KFdpZGdldCopOwotICAgICAgICBzdGF0aWMgYm9v
bCBwb3B1cHNBbGxvd2VkKE5QUCk7Ci0KLSAgICAgICAgLy8gUmVzb3VyY2VzIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgICAgICAg
c3RhdGljIFBhc3NSZWZQdHI8SW1hZ2U+IGxvYWRQbGF0Zm9ybUltYWdlUmVzb3VyY2UoY29uc3Qg
Y2hhciogbmFtZSk7Ci0KLSAgICAgICAgLy8gU2FuZGJveCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgICAgICAgc3RhdGljIGJv
b2wgc2FuZGJveEVuYWJsZWQoKTsKLQotICAgICAgICAvLyBTY3JlZW4gLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICAgICAgICBz
dGF0aWMgaW50IHNjcmVlbkRlcHRoKFdpZGdldCopOwotICAgICAgICBzdGF0aWMgaW50IHNjcmVl
bkRlcHRoUGVyQ29tcG9uZW50KFdpZGdldCopOwotICAgICAgICBzdGF0aWMgYm9vbCBzY3JlZW5J
c01vbm9jaHJvbWUoV2lkZ2V0Kik7Ci0gICAgICAgIHN0YXRpYyBJbnRSZWN0IHNjcmVlblJlY3Qo
V2lkZ2V0Kik7Ci0gICAgICAgIHN0YXRpYyBJbnRSZWN0IHNjcmVlbkF2YWlsYWJsZVJlY3QoV2lk
Z2V0Kik7Ci0KLSAgICAgICAgLy8gU2hhcmVkVGltZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgICAgICAgc3RhdGljIHZvaWQgc2V0
U2hhcmVkVGltZXJGaXJlZEZ1bmN0aW9uKHZvaWQgKCpmdW5jKSgpKTsKLSAgICAgICAgc3RhdGlj
IHZvaWQgc2V0U2hhcmVkVGltZXJGaXJlVGltZShkb3VibGUgZmlyZVRpbWUpOwotICAgICAgICBz
dGF0aWMgdm9pZCBzdG9wU2hhcmVkVGltZXIoKTsKLQotICAgICAgICAvLyBTdGF0c0NvdW50ZXJz
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQot
ICAgICAgICBzdGF0aWMgdm9pZCBkZWNyZW1lbnRTdGF0c0NvdW50ZXIoY29uc3QgY2hhciogbmFt
ZSk7Ci0gICAgICAgIHN0YXRpYyB2b2lkIGluY3JlbWVudFN0YXRzQ291bnRlcihjb25zdCBjaGFy
KiBuYW1lKTsKKyAgICAvLyBSZXR1cm5zIGEgaGFuZGxlIHRvIHRoZSBEQiBmaWxlIGFuZCBvb3B0
aW9uYWxseSBhIGhhbmRsZSB0byBpdHMgY29udGFpbmluZyBkaXJlY3RvcnkKKyAgICBzdGF0aWMg
UGxhdGZvcm1GaWxlSGFuZGxlIGRhdGFiYXNlT3BlbkZpbGUoY29uc3QgU3RyaW5nJiB2ZnNGbGVO
YW1lLCBpbnQgZGVzaXJlZEZsYWdzLCBQbGF0Zm9ybUZpbGVIYW5kbGUqIGRpckhhbmRsZSA9IDAp
OworICAgIC8vIFJldHVybnMgYSBTUUxpdGUgY29kZSAoU1FMSVRFX09LID0gMCwgb24gc3VjY2Vz
cykKKyAgICBzdGF0aWMgaW50IGRhdGFiYXNlRGVsZXRlRmlsZShjb25zdCBTdHJpbmcmIHZmc0Zp
bGVOYW1lLCBib29sIHN5bmNEaXIgPSBmYWxzZSk7CisgICAgLy8gUmV0dXJucyB0aGUgYXR0cmli
dXRlcyBvZiB0aGUgREIgZmlsZQorICAgIHN0YXRpYyBsb25nIGRhdGFiYXNlR2V0RmlsZUF0dHJp
YnV0ZXMoY29uc3QgU3RyaW5nJiB2ZnNGaWxlTmFtZSk7CisgICAgLy8gUmV0dXJucyB0aGUgc2l6
ZSBvZiB0aGUgREIgZmlsZQorICAgIHN0YXRpYyBsb25nIGxvbmcgZGF0YWJhc2VHZXRGaWxlU2l6
ZShjb25zdCBTdHJpbmcmIHZmc0ZpbGVOYW1lKTsKKyNlbmRpZgorCisgICAgLy8gSmF2YVNjcmlw
dCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KKyAgICBzdGF0aWMgdm9pZCBub3RpZnlKU091dE9mTWVtb3J5KEZyYW1lKik7CisgICAgc3Rh
dGljIGJvb2wgYWxsb3dTY3JpcHREZXNwaXRlU2V0dGluZ3MoY29uc3QgS1VSTCYgZG9jdW1lbnRV
UkwpOworCisgICAgLy8gS2V5Z2VuIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICBzdGF0aWMgU3RyaW5nIHNpZ25lZFB1Ymxp
Y0tleUFuZENoYWxsZW5nZVN0cmluZyh1bnNpZ25lZCBrZXlTaXplSW5kZXgsIGNvbnN0IFN0cmlu
ZyYgY2hhbGxlbmdlLCBjb25zdCBLVVJMJiB1cmwpOworCisgICAgLy8gTGFuZ3VhZ2UgLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAg
ICBzdGF0aWMgU3RyaW5nIGNvbXB1dGVkRGVmYXVsdExhbmd1YWdlKCk7CisKKyAgICAvLyBMYXlv
dXRUZXN0TW9kZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQorICAgIHN0YXRpYyBib29sIGxheW91dFRlc3RNb2RlKCk7CisKKyAgICAvLyBNZW1v
cnkgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQorICAgIC8vIFJldHVybnMgdGhlIGN1cnJlbnQgc3BhY2UgYWxsb2NhdGVkIGZvciB0
aGUgcGFnZWZpbGUsIGluIE1CLgorICAgIC8vIFRoYXQgaXMgY29tbWl0dGVkIHNpemUgZm9yIFdp
bmRvd3MgYW5kIHZpcnR1YWwgbWVtb3J5IHNpemUgZm9yIFBPU0lYCisgICAgc3RhdGljIGludCBt
ZW1vcnlVc2FnZU1CKCk7CisKKyAgICAvLyBNaW1lVHlwZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIHN0YXRpYyBib29sIGlz
U3VwcG9ydGVkSW1hZ2VNSU1FVHlwZShjb25zdCBTdHJpbmcmIG1pbWVUeXBlKTsKKyAgICBzdGF0
aWMgYm9vbCBpc1N1cHBvcnRlZEphdmFTY3JpcHRNSU1FVHlwZShjb25zdCBTdHJpbmcmIG1pbWVU
eXBlKTsKKyAgICBzdGF0aWMgYm9vbCBpc1N1cHBvcnRlZE5vbkltYWdlTUlNRVR5cGUoY29uc3Qg
U3RyaW5nJiBtaW1lVHlwZSk7CisgICAgc3RhdGljIFN0cmluZyBtaW1lVHlwZUZvckV4dGVuc2lv
bihjb25zdCBTdHJpbmcmIGZpbGVFeHRlbnNpb24pOworICAgIHN0YXRpYyBTdHJpbmcgbWltZVR5
cGVGcm9tRmlsZShjb25zdCBTdHJpbmcmIGZpbGVQYXRoKTsKKyAgICBzdGF0aWMgU3RyaW5nIHBy
ZWZlcnJlZEV4dGVuc2lvbkZvck1JTUVUeXBlKGNvbnN0IFN0cmluZyYgbWltZVR5cGUpOworCisg
ICAgLy8gUGx1Z2luIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KKyAgICBzdGF0aWMgYm9vbCBwbHVnaW5zKGJvb2wgcmVmcmVzaCwg
VmVjdG9yPFBsdWdpbkluZm8qPiopOworICAgIHN0YXRpYyBOUE9iamVjdCogcGx1Z2luU2NyaXB0
YWJsZU9iamVjdChXaWRnZXQqKTsKKyAgICBzdGF0aWMgYm9vbCBwb3B1cHNBbGxvd2VkKE5QUCk7
CisKKyAgICAvLyBSZXNvdXJjZXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPEltYWdlPiBsb2Fk
UGxhdGZvcm1JbWFnZVJlc291cmNlKGNvbnN0IGNoYXIqIG5hbWUpOworCisgICAgLy8gU2FuZGJv
eCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KKyAgICBzdGF0aWMgYm9vbCBzYW5kYm94RW5hYmxlZCgpOworCisgICAgLy8gU2NyZWVu
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KKyAgICBzdGF0aWMgaW50IHNjcmVlbkRlcHRoKFdpZGdldCopOworICAgIHN0YXRpYyBp
bnQgc2NyZWVuRGVwdGhQZXJDb21wb25lbnQoV2lkZ2V0Kik7CisgICAgc3RhdGljIGJvb2wgc2Ny
ZWVuSXNNb25vY2hyb21lKFdpZGdldCopOworICAgIHN0YXRpYyBJbnRSZWN0IHNjcmVlblJlY3Qo
V2lkZ2V0Kik7CisgICAgc3RhdGljIEludFJlY3Qgc2NyZWVuQXZhaWxhYmxlUmVjdChXaWRnZXQq
KTsKKworICAgIC8vIFNoYXJlZFRpbWVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgc3RhdGljIHZvaWQgc2V0U2hhcmVkVGltZXJG
aXJlZEZ1bmN0aW9uKHZvaWQgKCpmdW5jKSgpKTsKKyAgICBzdGF0aWMgdm9pZCBzZXRTaGFyZWRU
aW1lckZpcmVUaW1lKGRvdWJsZSBmaXJlVGltZSk7CisgICAgc3RhdGljIHZvaWQgc3RvcFNoYXJl
ZFRpbWVyKCk7CisKKyAgICAvLyBTdGF0c0NvdW50ZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIHN0YXRpYyB2b2lkIGRlY3JlbWVu
dFN0YXRzQ291bnRlcihjb25zdCBjaGFyKiBuYW1lKTsKKyAgICBzdGF0aWMgdm9pZCBpbmNyZW1l
bnRTdGF0c0NvdW50ZXIoY29uc3QgY2hhciogbmFtZSk7CiAKLSAgICAgICAgLy8gU3VkZGVuIFRl
cm1pbmF0aW9uCi0gICAgICAgIHN0YXRpYyB2b2lkIHN1ZGRlblRlcm1pbmF0aW9uQ2hhbmdlZChi
b29sIGVuYWJsZWQpOworICAgIC8vIFN1ZGRlbiBUZXJtaW5hdGlvbgorICAgIHN0YXRpYyB2b2lk
IHN1ZGRlblRlcm1pbmF0aW9uQ2hhbmdlZChib29sIGVuYWJsZWQpOwogCi0gICAgICAgIC8vIFN5
c3RlbVRpbWUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCi0gICAgICAgIHN0YXRpYyBkb3VibGUgY3VycmVudFRpbWUoKTsKKyAgICAvLyBT
eXN0ZW1UaW1lIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQorICAgIHN0YXRpYyBkb3VibGUgY3VycmVudFRpbWUoKTsKIAotICAgICAgICAv
LyBUaGVtaW5nIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQorICAgIC8vIFRoZW1pbmcgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAjaWYgT1MoV0lORE9XUykKLSAgICAg
ICAgc3RhdGljIHZvaWQgcGFpbnRCdXR0b24oCi0gICAgICAgICAgICBHcmFwaGljc0NvbnRleHQq
LCBpbnQgcGFydCwgaW50IHN0YXRlLCBpbnQgY2xhc3NpY1N0YXRlLCBjb25zdCBJbnRSZWN0Jik7
Ci0gICAgICAgIHN0YXRpYyB2b2lkIHBhaW50TWVudUxpc3QoCi0gICAgICAgICAgICBHcmFwaGlj
c0NvbnRleHQqLCBpbnQgcGFydCwgaW50IHN0YXRlLCBpbnQgY2xhc3NpY1N0YXRlLCBjb25zdCBJ
bnRSZWN0Jik7Ci0gICAgICAgIHN0YXRpYyB2b2lkIHBhaW50U2Nyb2xsYmFyQXJyb3coCi0gICAg
ICAgICAgICBHcmFwaGljc0NvbnRleHQqLCBpbnQgc3RhdGUsIGludCBjbGFzc2ljU3RhdGUsIGNv
bnN0IEludFJlY3QmKTsKLSAgICAgICAgc3RhdGljIHZvaWQgcGFpbnRTY3JvbGxiYXJUaHVtYigK
LSAgICAgICAgICAgIEdyYXBoaWNzQ29udGV4dCosIGludCBwYXJ0LCBpbnQgc3RhdGUsIGludCBj
bGFzc2ljU3RhdGUsIGNvbnN0IEludFJlY3QmKTsKLSAgICAgICAgc3RhdGljIHZvaWQgcGFpbnRT
Y3JvbGxiYXJUcmFjaygKLSAgICAgICAgICAgIEdyYXBoaWNzQ29udGV4dCosIGludCBwYXJ0LCBp
bnQgc3RhdGUsIGludCBjbGFzc2ljU3RhdGUsIGNvbnN0IEludFJlY3QmLCBjb25zdCBJbnRSZWN0
JiBhbGlnblJlY3QpOwotICAgICAgICBzdGF0aWMgdm9pZCBwYWludFRleHRGaWVsZCgKLSAgICAg
ICAgICAgIEdyYXBoaWNzQ29udGV4dCosIGludCBwYXJ0LCBpbnQgc3RhdGUsIGludCBjbGFzc2lj
U3RhdGUsIGNvbnN0IEludFJlY3QmLCBjb25zdCBDb2xvciYsIGJvb2wgZmlsbENvbnRlbnRBcmVh
LCBib29sIGRyYXdFZGdlcyk7Ci0gICAgICAgIHN0YXRpYyB2b2lkIHBhaW50VHJhY2tiYXIoCi0g
ICAgICAgICAgICBHcmFwaGljc0NvbnRleHQqLCBpbnQgcGFydCwgaW50IHN0YXRlLCBpbnQgY2xh
c3NpY1N0YXRlLCBjb25zdCBJbnRSZWN0Jik7Ci0jZW5kaWYKLQotICAgICAgICAvLyBUcmFjZSBF
dmVudCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQotICAgICAgICBzdGF0aWMgdm9pZCB0cmFjZUV2ZW50QmVnaW4oY29uc3QgY2hhciogbmFt
ZSwgdm9pZCogaWQsIGNvbnN0IGNoYXIqIGV4dHJhKTsKLSAgICAgICAgc3RhdGljIHZvaWQgdHJh
Y2VFdmVudEVuZChjb25zdCBjaGFyKiBuYW1lLCB2b2lkKiBpZCwgY29uc3QgY2hhciogZXh0cmEp
OwotCi0gICAgICAgIC8vIFZpc2l0ZWQgbGlua3MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgICAgIHN0YXRpYyBMaW5rSGFzaCB2aXNp
dGVkTGlua0hhc2goY29uc3QgVUNoYXIqIHVybCwgdW5zaWduZWQgbGVuZ3RoKTsKLSAgICAgICAg
c3RhdGljIExpbmtIYXNoIHZpc2l0ZWRMaW5rSGFzaChjb25zdCBLVVJMJiBiYXNlLCBjb25zdCBB
dG9taWNTdHJpbmcmIGF0dHJpYnV0ZVVSTCk7Ci0gICAgICAgIHN0YXRpYyBib29sIGlzTGlua1Zp
c2l0ZWQoTGlua0hhc2gpOwotCi0gICAgICAgIC8vIFdpZGdldCAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgICAgIHN0YXRp
YyB2b2lkIHdpZGdldFNldEN1cnNvcihXaWRnZXQqLCBjb25zdCBDdXJzb3ImKTsKLSAgICAgICAg
c3RhdGljIHZvaWQgd2lkZ2V0U2V0Rm9jdXMoV2lkZ2V0Kik7Ci0gICAgfTsKKyAgICBzdGF0aWMg
dm9pZCBwYWludEJ1dHRvbigKKyAgICAgICAgR3JhcGhpY3NDb250ZXh0KiwgaW50IHBhcnQsIGlu
dCBzdGF0ZSwgaW50IGNsYXNzaWNTdGF0ZSwgY29uc3QgSW50UmVjdCYpOworICAgIHN0YXRpYyB2
b2lkIHBhaW50TWVudUxpc3QoCisgICAgICAgIEdyYXBoaWNzQ29udGV4dCosIGludCBwYXJ0LCBp
bnQgc3RhdGUsIGludCBjbGFzc2ljU3RhdGUsIGNvbnN0IEludFJlY3QmKTsKKyAgICBzdGF0aWMg
dm9pZCBwYWludFNjcm9sbGJhckFycm93KAorICAgICAgICBHcmFwaGljc0NvbnRleHQqLCBpbnQg
c3RhdGUsIGludCBjbGFzc2ljU3RhdGUsIGNvbnN0IEludFJlY3QmKTsKKyAgICBzdGF0aWMgdm9p
ZCBwYWludFNjcm9sbGJhclRodW1iKAorICAgICAgICBHcmFwaGljc0NvbnRleHQqLCBpbnQgcGFy
dCwgaW50IHN0YXRlLCBpbnQgY2xhc3NpY1N0YXRlLCBjb25zdCBJbnRSZWN0Jik7CisgICAgc3Rh
dGljIHZvaWQgcGFpbnRTY3JvbGxiYXJUcmFjaygKKyAgICAgICAgR3JhcGhpY3NDb250ZXh0Kiwg
aW50IHBhcnQsIGludCBzdGF0ZSwgaW50IGNsYXNzaWNTdGF0ZSwgY29uc3QgSW50UmVjdCYsIGNv
bnN0IEludFJlY3QmIGFsaWduUmVjdCk7CisgICAgc3RhdGljIHZvaWQgcGFpbnRUZXh0RmllbGQo
CisgICAgICAgIEdyYXBoaWNzQ29udGV4dCosIGludCBwYXJ0LCBpbnQgc3RhdGUsIGludCBjbGFz
c2ljU3RhdGUsIGNvbnN0IEludFJlY3QmLCBjb25zdCBDb2xvciYsIGJvb2wgZmlsbENvbnRlbnRB
cmVhLCBib29sIGRyYXdFZGdlcyk7CisgICAgc3RhdGljIHZvaWQgcGFpbnRUcmFja2JhcigKKyAg
ICAgICAgR3JhcGhpY3NDb250ZXh0KiwgaW50IHBhcnQsIGludCBzdGF0ZSwgaW50IGNsYXNzaWNT
dGF0ZSwgY29uc3QgSW50UmVjdCYpOworI2VuZGlmCisKKyAgICAvLyBUcmFjZSBFdmVudCAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAg
IHN0YXRpYyB2b2lkIHRyYWNlRXZlbnRCZWdpbihjb25zdCBjaGFyKiBuYW1lLCB2b2lkKiBpZCwg
Y29uc3QgY2hhciogZXh0cmEpOworICAgIHN0YXRpYyB2b2lkIHRyYWNlRXZlbnRFbmQoY29uc3Qg
Y2hhciogbmFtZSwgdm9pZCogaWQsIGNvbnN0IGNoYXIqIGV4dHJhKTsKKworICAgIC8vIFZpc2l0
ZWQgbGlua3MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCisgICAgc3RhdGljIExpbmtIYXNoIHZpc2l0ZWRMaW5rSGFzaChjb25zdCBVQ2hhciog
dXJsLCB1bnNpZ25lZCBsZW5ndGgpOworICAgIHN0YXRpYyBMaW5rSGFzaCB2aXNpdGVkTGlua0hh
c2goY29uc3QgS1VSTCYgYmFzZSwgY29uc3QgQXRvbWljU3RyaW5nJiBhdHRyaWJ1dGVVUkwpOwor
ICAgIHN0YXRpYyBib29sIGlzTGlua1Zpc2l0ZWQoTGlua0hhc2gpOworCisgICAgLy8gV2lkZ2V0
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KKyAgICBzdGF0aWMgdm9pZCB3aWRnZXRTZXRDdXJzb3IoV2lkZ2V0KiwgY29uc3QgQ3Vy
c29yJik7CisgICAgc3RhdGljIHZvaWQgd2lkZ2V0U2V0Rm9jdXMoV2lkZ2V0Kik7CisKKyAgICAv
LyBBY2Nlc3NpYmlsaXR5IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQorICAgIHN0YXRpYyB2b2lkIHBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihB
Y2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFYT2JqZWN0Q2FjaGU6OkFYTm90aWZpY2F0aW9uIG5v
dGlmaWNhdGlvbik7Cit9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKSW5kZXg6IFdlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCShyZXZpc2lvbiA1NDI0MSkKKysrIFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHdv
cmtpbmcgY29weSkKQEAgLTEsMyArMSwyMiBAQAorMjAxMC0wMi0wMiAgQ2hyaXMgR3VpbGxvcnkg
IDxjdGd1aWxAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBbQ2hyb21pdW1dIE5vdGlmeSBXZWJWaWV3Q2xpZW50IG9mIHN0YXRlIGNo
YW5nZSBub3RpZmljYXRpb25zLgorICAgICAgICBCdWc6IGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0zNDQ2NAorCisgICAgICAgICogZ3lwX3dlYmtpdDoKKyAgICAgICAg
KiBwdWJsaWMvV2ViVmlld0NsaWVudC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3Q2xpZW50
OjpjaGFuZ2VTdGF0ZUFjY2Vzc2liaWxpdHlPYmplY3QpOgorICAgICAgICAqIHNyYy9DaHJvbWl1
bUJyaWRnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b1dlYlZpZXdDbGllbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6Q2hyb21pdW1CcmlkZ2U6OnNjcmVlbkRlcHRoKToKKyAgICAgICAgKFdlYkNv
cmU6OkNocm9taXVtQnJpZGdlOjpzY3JlZW5EZXB0aFBlckNvbXBvbmVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpDaHJvbWl1bUJyaWRnZTo6c2NyZWVuSXNNb25vY2hyb21lKToKKyAgICAgICAgKFdl
YkNvcmU6OkNocm9taXVtQnJpZGdlOjpzY3JlZW5SZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNo
cm9taXVtQnJpZGdlOjpzY3JlZW5BdmFpbGFibGVSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNo
cm9taXVtQnJpZGdlOjpwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24pOgorCiAyMDEwLTAyLTAyICBZ
dXJ5IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IFBhdmVsIEZlbGRtYW4uCkluZGV4OiBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXdD
bGllbnQuaA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlld0Ns
aWVudC5oCShyZXZpc2lvbiA1NDI0MSkKKysrIFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmll
d0NsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNTEsNiArMjUxLDcgQEAgcHVibGljOgogICAg
IC8vIE5vdGlmaWVzIGVtYmVkZGVyIHRoYXQgdGhlIGZvY3VzIGhhcyBjaGFuZ2VkIHRvIHRoZSBn
aXZlbgogICAgIC8vIGFjY2Vzc2liaWxpdHkgb2JqZWN0LgogICAgIHZpcnR1YWwgdm9pZCBmb2N1
c0FjY2Vzc2liaWxpdHlPYmplY3QoY29uc3QgV2ViQWNjZXNzaWJpbGl0eU9iamVjdCYpIHsgfQor
ICAgIHZpcnR1YWwgdm9pZCBjaGFuZ2VTdGF0ZUFjY2Vzc2liaWxpdHlPYmplY3QoY29uc3QgV2Vi
QWNjZXNzaWJpbGl0eU9iamVjdCYpIHsgfQogCiAKICAgICAvLyBEZXZlbG9wZXIgdG9vbHMgLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KSW5kZXg6
IFdlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21pdW1CcmlkZ2UuY3BwDQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0g
V2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWl1bUJyaWRnZS5jcHAJKHJldmlzaW9uIDU0MjQxKQor
KysgV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWl1bUJyaWRnZS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTM1LDYgKzM1LDcgQEAKIAogI2luY2x1ZGUgIkNocm9tZS5oIgogI2luY2x1ZGUgIkNocm9t
ZUNsaWVudEltcGwuaCIKKyNpbmNsdWRlICJXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0LmgiCiAjaW5j
bHVkZSAiV2ViQ2xpcGJvYXJkLmgiCiAjaW5jbHVkZSAiV2ViQ29va2llLmgiCiAjaW5jbHVkZSAi
V2ViQ3Vyc29ySW5mby5oIgpAQCAtMTA0LDcgKzEwNSw3IEBAIHN0YXRpYyBDaHJvbWVDbGllbnRJ
bXBsKiB0b0Nocm9tZUNsaWVudEkKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q2hyb21lQ2xpZW50
SW1wbCo+KHBhZ2UtPmNocm9tZSgpLT5jbGllbnQoKSk7CiB9CiAKLXN0YXRpYyBXZWJXaWRnZXRD
bGllbnQqIHRvV2ViV2lkZ2V0Q2xpZW50KFdpZGdldCogd2lkZ2V0KQorc3RhdGljIFdlYlZpZXdD
bGllbnQqIHRvV2ViVmlld0NsaWVudChXaWRnZXQqIHdpZGdldCkKIHsKICAgICBDaHJvbWVDbGll
bnRJbXBsKiBjaHJvbWVDbGllbnRJbXBsID0gdG9DaHJvbWVDbGllbnRJbXBsKHdpZGdldCk7CiAg
ICAgaWYgKCFjaHJvbWVDbGllbnRJbXBsIHx8ICFjaHJvbWVDbGllbnRJbXBsLT53ZWJWaWV3KCkp
CkBAIC02MzAsNyArNjMxLDcgQEAgaW50IENocm9taXVtQnJpZGdlOjptZW1vcnlVc2FnZU1CKCkK
IAogaW50IENocm9taXVtQnJpZGdlOjpzY3JlZW5EZXB0aChXaWRnZXQqIHdpZGdldCkKIHsKLSAg
ICBXZWJXaWRnZXRDbGllbnQqIGNsaWVudCA9IHRvV2ViV2lkZ2V0Q2xpZW50KHdpZGdldCk7Cisg
ICAgV2ViV2lkZ2V0Q2xpZW50KiBjbGllbnQgPSB0b1dlYlZpZXdDbGllbnQod2lkZ2V0KTsKICAg
ICBpZiAoIWNsaWVudCkKICAgICAgICAgcmV0dXJuIDA7CiAgICAgcmV0dXJuIGNsaWVudC0+c2Ny
ZWVuSW5mbygpLmRlcHRoOwpAQCAtNjM4LDcgKzYzOSw3IEBAIGludCBDaHJvbWl1bUJyaWRnZTo6
c2NyZWVuRGVwdGgoV2lkZ2V0KiAKIAogaW50IENocm9taXVtQnJpZGdlOjpzY3JlZW5EZXB0aFBl
ckNvbXBvbmVudChXaWRnZXQqIHdpZGdldCkKIHsKLSAgICBXZWJXaWRnZXRDbGllbnQqIGNsaWVu
dCA9IHRvV2ViV2lkZ2V0Q2xpZW50KHdpZGdldCk7CisgICAgV2ViV2lkZ2V0Q2xpZW50KiBjbGll
bnQgPSB0b1dlYlZpZXdDbGllbnQod2lkZ2V0KTsKICAgICBpZiAoIWNsaWVudCkKICAgICAgICAg
cmV0dXJuIDA7CiAgICAgcmV0dXJuIGNsaWVudC0+c2NyZWVuSW5mbygpLmRlcHRoUGVyQ29tcG9u
ZW50OwpAQCAtNjQ2LDcgKzY0Nyw3IEBAIGludCBDaHJvbWl1bUJyaWRnZTo6c2NyZWVuRGVwdGhQ
ZXJDb21wb24KIAogYm9vbCBDaHJvbWl1bUJyaWRnZTo6c2NyZWVuSXNNb25vY2hyb21lKFdpZGdl
dCogd2lkZ2V0KQogewotICAgIFdlYldpZGdldENsaWVudCogY2xpZW50ID0gdG9XZWJXaWRnZXRD
bGllbnQod2lkZ2V0KTsKKyAgICBXZWJXaWRnZXRDbGllbnQqIGNsaWVudCA9IHRvV2ViVmlld0Ns
aWVudCh3aWRnZXQpOwogICAgIGlmICghY2xpZW50KQogICAgICAgICByZXR1cm4gMDsKICAgICBy
ZXR1cm4gY2xpZW50LT5zY3JlZW5JbmZvKCkuaXNNb25vY2hyb21lOwpAQCAtNjU0LDcgKzY1NSw3
IEBAIGJvb2wgQ2hyb21pdW1CcmlkZ2U6OnNjcmVlbklzTW9ub2Nocm9tZSgKIAogSW50UmVjdCBD
aHJvbWl1bUJyaWRnZTo6c2NyZWVuUmVjdChXaWRnZXQqIHdpZGdldCkKIHsKLSAgICBXZWJXaWRn
ZXRDbGllbnQqIGNsaWVudCA9IHRvV2ViV2lkZ2V0Q2xpZW50KHdpZGdldCk7CisgICAgV2ViV2lk
Z2V0Q2xpZW50KiBjbGllbnQgPSB0b1dlYlZpZXdDbGllbnQod2lkZ2V0KTsKICAgICBpZiAoIWNs
aWVudCkKICAgICAgICAgcmV0dXJuIEludFJlY3QoKTsKICAgICByZXR1cm4gY2xpZW50LT5zY3Jl
ZW5JbmZvKCkucmVjdDsKQEAgLTY2Miw3ICs2NjMsNyBAQCBJbnRSZWN0IENocm9taXVtQnJpZGdl
OjpzY3JlZW5SZWN0KFdpZGdlCiAKIEludFJlY3QgQ2hyb21pdW1CcmlkZ2U6OnNjcmVlbkF2YWls
YWJsZVJlY3QoV2lkZ2V0KiB3aWRnZXQpCiB7Ci0gICAgV2ViV2lkZ2V0Q2xpZW50KiBjbGllbnQg
PSB0b1dlYldpZGdldENsaWVudCh3aWRnZXQpOworICAgIFdlYldpZGdldENsaWVudCogY2xpZW50
ID0gdG9XZWJWaWV3Q2xpZW50KHdpZGdldCk7CiAgICAgaWYgKCFjbGllbnQpCiAgICAgICAgIHJl
dHVybiBJbnRSZWN0KCk7CiAgICAgcmV0dXJuIGNsaWVudC0+c2NyZWVuSW5mbygpLmF2YWlsYWJs
ZVJlY3Q7CkBAIC02OTMsNCArNjk0LDE0IEBAIFdvcmtlckNvbnRleHRQcm94eSogV29ya2VyQ29u
dGV4dFByb3h5OjoKICAgICByZXR1cm4gV2ViV29ya2VyQ2xpZW50SW1wbDo6Y3JlYXRlV29ya2Vy
Q29udGV4dFByb3h5KHdvcmtlcik7CiB9CiAKK3ZvaWQgQ2hyb21pdW1CcmlkZ2U6OnBvc3RQbGF0
Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFYT2JqZWN0Q2FjaGU6
OkFYTm90aWZpY2F0aW9uIG5vdGlmaWNhdGlvbikKK3sKKyAgICBpZiAoIW9iaiB8fCAhb2JqLT5k
b2N1bWVudEZyYW1lVmlldygpIHx8IG5vdGlmaWNhdGlvbiAhPSBBWE9iamVjdENhY2hlOjpBWENo
ZWNrZWRTdGF0ZUNoYW5nZWQpCisgICAgICAgIHJldHVybjsKKworICAgIFdlYlZpZXdDbGllbnQq
IGNsaWVudCA9IHRvV2ViVmlld0NsaWVudChvYmotPmRvY3VtZW50RnJhbWVWaWV3KCkpOworICAg
IGlmIChjbGllbnQpCisgICAgICAgIGNsaWVudC0+Y2hhbmdlU3RhdGVBY2Nlc3NpYmlsaXR5T2Jq
ZWN0KFdlYkFjY2Vzc2liaWxpdHlPYmplY3Qob2JqKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUK
</data>
<flag name="review"
          id="30523"
          type_id="1"
          status="-"
          setter="fishd"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>48059</attachid>
            <date>2010-02-03 12:29:59 -0800</date>
            <delta_ts>2010-02-03 13:13:01 -0800</delta_ts>
            <desc>Patch updated with comments from Darin</desc>
            <filename>StateChange.patch</filename>
            <type>text/plain</type>
            <size>7465</size>
            <attacher name="Chris Guillory">ctguil</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViQ29yZS9DaGFuZ2VM
b2cJKHJldmlzaW9uIDU0MjkyKQorKysgV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkK
QEAgLTEsMyArMSwxOCBAQAorMjAxMC0wMi0wMyAgQ2hyaXMgR3VpbGxvcnkgIDxjaHJpcy5ndWls
bG9yeUBnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFtDaHJvbWl1bV0gTm90aWZ5IENocm9tZUNsaWVudENocm9taXVtIG9mIHN0YXRl
IGNoYW5nZSBub3RpZmljYXRpb25zLgorICAgICAgICAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM0NDY0CisKKyAgICAgICAgTm8gbmV3IHRlc3RzLgor
CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9jaHJvbWl1bS9BWE9iamVjdENhY2hlQ2hyb21pdW0u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9DaHJvbWVDbGllbnRDaHJvbWl1bSk6CisgICAgICAg
IChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24pOgorICAg
ICAgICAqIHBhZ2UvY2hyb21pdW0vQ2hyb21lQ2xpZW50Q2hyb21pdW0uaDoKKwogMjAxMC0wMi0w
MyAgRHJldyBXaWxzb24gIDxhdHdpbHNvbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgQWxleGV5IFByb3NrdXJ5YWtvdi4KSW5kZXg6IFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9j
aHJvbWl1bS9BWE9iamVjdENhY2hlQ2hyb21pdW0uY3BwDQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L2Nocm9taXVtL0FYT2JqZWN0Q2FjaGVDaHJvbWl1bS5jcHAJKHJldmlz
aW9uIDU0MjQ1KQorKysgV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2Nocm9taXVtL0FYT2JqZWN0Q2Fj
aGVDaHJvbWl1bS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2LDExICsyNiwzMCBAQAogCiAjaW5j
bHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgotCiAjaW5jbHVkZSAi
QWNjZXNzaWJpbGl0eU9iamVjdC5oIgorI2luY2x1ZGUgIkNocm9tZS5oIgorI2luY2x1ZGUgIkNo
cm9tZUNsaWVudENocm9taXVtLmgiDQorI2luY2x1ZGUgIkZyYW1lVmlldy5oIgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKK3N0YXRpYyBDaHJvbWVDbGllbnRDaHJvbWl1bSogdG9DaHJvbWVDbGll
bnRDaHJvbWl1bShXaWRnZXQqIHdpZGdldCkNCit7DQorICAgIEZyYW1lVmlldyogdmlldzsNCisg
ICAgaWYgKHdpZGdldC0+aXNGcmFtZVZpZXcoKSkNCisgICAgICAgIHZpZXcgPSBzdGF0aWNfY2Fz
dDxGcmFtZVZpZXcqPih3aWRnZXQpOw0KKyAgICBlbHNlIGlmICh3aWRnZXQtPnBhcmVudCgpICYm
IHdpZGdldC0+cGFyZW50KCktPmlzRnJhbWVWaWV3KCkpDQorICAgICAgICB2aWV3ID0gc3RhdGlj
X2Nhc3Q8RnJhbWVWaWV3Kj4od2lkZ2V0LT5wYXJlbnQoKSk7DQorICAgIGVsc2UNCisgICAgICAg
IHJldHVybiAwOw0KKw0KKyAgICBQYWdlKiBwYWdlID0gdmlldy0+ZnJhbWUoKSA/IHZpZXctPmZy
YW1lKCktPnBhZ2UoKSA6IDA7DQorICAgIGlmICghcGFnZSkNCisgICAgICAgIHJldHVybiAwOw0K
Kw0KKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q2hyb21lQ2xpZW50Q2hyb21pdW0qPihwYWdlLT5j
aHJvbWUoKS0+Y2xpZW50KCkpOw0KK30KKwogdm9pZCBBWE9iamVjdENhY2hlOjpkZXRhY2hXcmFw
cGVyKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaikKIHsKICAgICAvLyBJbiBDaHJvbWl1bSwgQWNj
ZXNzaWJpbGl0eU9iamVjdHMgYXJlIHdyYXBwZWQgbGF6aWx5LgpAQCAtNDMsOCArNjIsMTQgQEAg
dm9pZCBBWE9iamVjdENhY2hlOjphdHRhY2hXcmFwcGVyKEFjY2VzcwogICAgIC8vIEluIENocm9t
aXVtLCBBY2Nlc3NpYmlsaXR5T2JqZWN0cyBhcmUgd3JhcHBlZCBsYXppbHkuCiB9CiAKLXZvaWQg
QVhPYmplY3RDYWNoZTo6cG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmpl
Y3QqLCBBWE5vdGlmaWNhdGlvbikKLXsKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFBsYXRmb3Jt
Tm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiwgQVhOb3RpZmljYXRpb24gbm90
aWZpY2F0aW9uKQ0KK3sNCisgICAgaWYgKCFvYmogfHwgIW9iai0+ZG9jdW1lbnRGcmFtZVZpZXco
KSB8fCBub3RpZmljYXRpb24gIT0gQVhPYmplY3RDYWNoZTo6QVhDaGVja2VkU3RhdGVDaGFuZ2Vk
KQ0KKyAgICAgICAgcmV0dXJuOw0KKw0KKyAgICBDaHJvbWVDbGllbnRDaHJvbWl1bSogY2xpZW50
ID0gdG9DaHJvbWVDbGllbnRDaHJvbWl1bShvYmotPmRvY3VtZW50RnJhbWVWaWV3KCkpOw0KKyAg
ICBpZiAoY2xpZW50KQ0KKyAgICAgICAgY2xpZW50LT5hY2Nlc3NpYmlsaXR5T2JqZWN0U3RhdGVE
aWRDaGFuZ2Uob2JqKTsNCiB9CiAKIHZvaWQgQVhPYmplY3RDYWNoZTo6aGFuZGxlRm9jdXNlZFVJ
RWxlbWVudENoYW5nZWQoUmVuZGVyT2JqZWN0KiwgUmVuZGVyT2JqZWN0KikKSW5kZXg6IFdlYkNv
cmUvcGFnZS9jaHJvbWl1bS9DaHJvbWVDbGllbnRDaHJvbWl1bS5oDQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0g
V2ViQ29yZS9wYWdlL2Nocm9taXVtL0Nocm9tZUNsaWVudENocm9taXVtLmgJKHJldmlzaW9uIDU0
MjQ1KQorKysgV2ViQ29yZS9wYWdlL2Nocm9taXVtL0Nocm9tZUNsaWVudENocm9taXVtLmgJKHdv
cmtpbmcgY29weSkKQEAgLTM1LDIwICszNSwyNSBAQAogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLSAgICBjbGFzcyBJbnRSZWN0OwotICAgIGNsYXNzIFBv
cHVwQ29udGFpbmVyOwogCi0gICAgLy8gQ29udGFpbnMgQ2hyb21pdW0tc3BlY2lmaWMgZXh0ZW5z
aW9ucyB0byB0aGUgQ2hyb21lQ2xpZW50LiAgT25seSBwdXQKLSAgICAvLyB0aGluZ3MgaGVyZSB0
aGF0IGRvbid0IG1ha2Ugc2Vuc2UgZm9yIG90aGVyIHBvcnRzLgotICAgIGNsYXNzIENocm9tZUNs
aWVudENocm9taXVtIDogcHVibGljIENocm9tZUNsaWVudCB7Ci0gICAgcHVibGljOgotICAgICAg
ICAvLyBOb3RpZmllcyB0aGUgY2xpZW50IG9mIGEgbmV3IHBvcHVwIHdpZGdldC4gIFRoZSBjbGll
bnQgc2hvdWxkIHBsYWNlCi0gICAgICAgIC8vIGFuZCBzaXplIHRoZSB3aWRnZXQgd2l0aCB0aGUg
Z2l2ZW4gYm91bmRzLCByZWxhdGl2ZSB0byB0aGUgc2NyZWVuLgotICAgICAgICAvLyBJZiBoYW5k
bGVFeHRlcm5hbCBpcyB0cnVlLCB0aGVuIGRyYXdpbmcgYW5kIGlucHV0IGhhbmRsaW5nIGZvciB0
aGUKLSAgICAgICAgLy8gcG9wdXAgd2lsbCBiZSBoYW5kbGVkIGJ5IHRoZSBleHRlcm5hbCBlbWJl
ZGRlci4KLSAgICAgICAgdmlydHVhbCB2b2lkIHBvcHVwT3BlbmVkKFBvcHVwQ29udGFpbmVyKiBw
b3B1cENvbnRhaW5lciwgY29uc3QgSW50UmVjdCYgYm91bmRzLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYm9vbCBmb2N1c09uU2hvdywgYm9vbCBoYW5kbGVFeHRlcm5hbCkgPSAw
OwotICAgIH07CitjbGFzcyBBY2Nlc3NpYmlsaXR5T2JqZWN0OworY2xhc3MgSW50UmVjdDsKK2Ns
YXNzIFBvcHVwQ29udGFpbmVyOworCisvLyBDb250YWlucyBDaHJvbWl1bS1zcGVjaWZpYyBleHRl
bnNpb25zIHRvIHRoZSBDaHJvbWVDbGllbnQuICBPbmx5IHB1dAorLy8gdGhpbmdzIGhlcmUgdGhh
dCBkb24ndCBtYWtlIHNlbnNlIGZvciBvdGhlciBwb3J0cy4KK2NsYXNzIENocm9tZUNsaWVudENo
cm9taXVtIDogcHVibGljIENocm9tZUNsaWVudCB7CitwdWJsaWM6CisgICAgLy8gTm90aWZpZXMg
dGhlIGNsaWVudCBvZiBhIG5ldyBwb3B1cCB3aWRnZXQuICBUaGUgY2xpZW50IHNob3VsZCBwbGFj
ZQorICAgIC8vIGFuZCBzaXplIHRoZSB3aWRnZXQgd2l0aCB0aGUgZ2l2ZW4gYm91bmRzLCByZWxh
dGl2ZSB0byB0aGUgc2NyZWVuLgorICAgIC8vIElmIGhhbmRsZUV4dGVybmFsIGlzIHRydWUsIHRo
ZW4gZHJhd2luZyBhbmQgaW5wdXQgaGFuZGxpbmcgZm9yIHRoZQorICAgIC8vIHBvcHVwIHdpbGwg
YmUgaGFuZGxlZCBieSB0aGUgZXh0ZXJuYWwgZW1iZWRkZXIuCisgICAgdmlydHVhbCB2b2lkIHBv
cHVwT3BlbmVkKFBvcHVwQ29udGFpbmVyKiBwb3B1cENvbnRhaW5lciwgY29uc3QgSW50UmVjdCYg
Ym91bmRzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIGZvY3VzT25TaG93LCBi
b29sIGhhbmRsZUV4dGVybmFsKSA9IDA7CisKKyAgICAvLyBOb3RpZmllcyBlbWJlZGRlciB0aGF0
IHRoZSBzdGF0ZSBvZiBhbiBhY2Nlc3NpYmlsaXR5IG9iamVjdCBoYXMgY2hhbmdlZC4KKyAgICB2
aXJ0dWFsIHZvaWQgYWNjZXNzaWJpbGl0eU9iamVjdFN0YXRlRGlkQ2hhbmdlKEFjY2Vzc2liaWxp
dHlPYmplY3QqKSA9IDA7Cit9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKSW5kZXg6IFdl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCShyZXZpc2lvbiA1NDI5MikKKysrIFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNiBAQAorMjAxMC0wMi0wMyAgQ2hyaXMgR3VpbGxv
cnkgIDxjaHJpcy5ndWlsbG9yeUBnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFtDaHJvbWl1bV0gQWRkIGZ1bmN0aW9uIGZvciBhY2Nl
c3NpYmlsaXR5IG9iamVjdCBzdGF0ZSBjaGFuZ2Ugbm90aWZpY2F0aW9ucy4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM0NDY0CisKKyAgICAgICAgKiBw
dWJsaWMvV2ViVmlld0NsaWVudC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3Q2xpZW50Ojph
Y2Nlc3NpYmlsaXR5T2JqZWN0U3RhdGVEaWRDaGFuZ2UpOgorICAgICAgICAqIHNyYy9DaHJvbWVD
bGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50SW1wbDo6YWNjZXNz
aWJpbGl0eU9iamVjdFN0YXRlRGlkQ2hhbmdlKToKKyAgICAgICAgKiBzcmMvQ2hyb21lQ2xpZW50
SW1wbC5oOgorCiAyMDEwLTAyLTAzICBEcmV3IFdpbHNvbiAgPGF0d2lsc29uQGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBSZXZpZXdlZCBieSBBbGV4ZXkgUHJvc2t1cnlha292LgpJbmRleDogV2Vi
S2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xpZW50LmgNCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJL
aXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXdDbGllbnQuaAkocmV2aXNpb24gNTQyNDUpCisrKyBX
ZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXdDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAt
MjUyLDYgKzI1Miw5IEBAIHB1YmxpYzoKICAgICAvLyBhY2Nlc3NpYmlsaXR5IG9iamVjdC4KICAg
ICB2aXJ0dWFsIHZvaWQgZm9jdXNBY2Nlc3NpYmlsaXR5T2JqZWN0KGNvbnN0IFdlYkFjY2Vzc2li
aWxpdHlPYmplY3QmKSB7IH0KIAorICAgIC8vIE5vdGlmaWVzIGVtYmVkZGVyIHRoYXQgdGhlIHN0
YXRlIG9mIGFuIGFjY2Vzc2liaWxpdHkgb2JqZWN0IGhhcyBjaGFuZ2VkLgorICAgIHZpcnR1YWwg
dm9pZCBhY2Nlc3NpYmlsaXR5T2JqZWN0U3RhdGVEaWRDaGFuZ2UoY29uc3QgV2ViQWNjZXNzaWJp
bGl0eU9iamVjdCYpIHsgfQorCiAKICAgICAvLyBEZXZlbG9wZXIgdG9vbHMgLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIApJbmRleDogV2ViS2l0
L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcA0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYktp
dC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAJKHJldmlzaW9uIDU0MjQ1KQorKysg
V2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNjU5LDYgKzY1OSwxMyBAQCB2b2lkIENocm9tZUNsaWVudEltcGw6OmdldFBvcHVwTWVudUlu
Zm8oCiAgICAgaW5mby0+aXRlbXMuc3dhcChvdXRwdXRJdGVtcyk7CiB9CiAKK3ZvaWQgQ2hyb21l
Q2xpZW50SW1wbDo6YWNjZXNzaWJpbGl0eU9iamVjdFN0YXRlRGlkQ2hhbmdlKEFjY2Vzc2liaWxp
dHlPYmplY3QqIG9iaikNCit7DQorICAgIC8vIEFsZXJ0IGFzc2lzdGl2ZSB0ZWNobm9sb2d5IGFi
b3V0IHRoZSBhY2Nlc3NpYmlsaXR5IG9iamVjdCBzdGF0ZSBjaGFuZ2UNCisgICAgaWYgKG9iaikN
CisgICAgICAgIG1fd2ViVmlldy0+Y2xpZW50KCktPmFjY2Vzc2liaWxpdHlPYmplY3RTdGF0ZURp
ZENoYW5nZShXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0KG9iaikpOw0KK30NCisKICNpZiBFTkFCTEUo
Tk9USUZJQ0FUSU9OUykKIE5vdGlmaWNhdGlvblByZXNlbnRlciogQ2hyb21lQ2xpZW50SW1wbDo6
bm90aWZpY2F0aW9uUHJlc2VudGVyKCkgY29uc3QKIHsKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9z
cmMvQ2hyb21lQ2xpZW50SW1wbC5oDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0L2Nocm9taXVtL3Ny
Yy9DaHJvbWVDbGllbnRJbXBsLmgJKHJldmlzaW9uIDU0MjQ1KQorKysgV2ViS2l0L2Nocm9taXVt
L3NyYy9DaHJvbWVDbGllbnRJbXBsLmgJKHdvcmtpbmcgY29weSkKQEAgLTM0LDYgKzM0LDcgQEAK
ICNpbmNsdWRlICJDaHJvbWVDbGllbnRDaHJvbWl1bS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CitjbGFzcyBBY2Nlc3NpYmlsaXR5T2JqZWN0OwogY2xhc3MgSFRNTFBhcnNlclF1aXJrczsKIGNs
YXNzIFBvcHVwQ29udGFpbmVyOwogY2xhc3MgU2VjdXJpdHlPcmlnaW47CkBAIC0xMzIsNiArMTMz
LDcgQEAgcHVibGljOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBXZWJDb3Jl
OjpJbnRSZWN0JiBib3VuZHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgYWN0
aXZhdGFibGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgaGFuZGxlRXh0ZXJu
YWxseSk7CisgICAgdmlydHVhbCB2b2lkIGFjY2Vzc2liaWxpdHlPYmplY3RTdGF0ZURpZENoYW5n
ZShXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0Kik7CiAKICAgICAvLyBDaHJvbWVDbGllbnRJ
bXBsOgogICAgIHZvaWQgc2V0Q3Vyc29yKGNvbnN0IFdlYkN1cnNvckluZm8mIGN1cnNvcik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>48063</attachid>
            <date>2010-02-03 13:13:01 -0800</date>
            <delta_ts>2010-02-04 11:22:46 -0800</delta_ts>
            <desc>Fixing style - line endings.</desc>
            <filename>StateChange.patch</filename>
            <type>text/plain</type>
            <size>7421</size>
            <attacher name="Chris Guillory">ctguil</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NDI5MikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTggQEAKKzIwMTAtMDItMDMgIENocmlzIEd1aWxsb3J5ICA8Y2hyaXMuZ3VpbGxv
cnlAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBbQ2hyb21pdW1dIE5vdGlmeSBDaHJvbWVDbGllbnRDaHJvbWl1bSBvZiBzdGF0ZSBj
aGFuZ2Ugbm90aWZpY2F0aW9ucy4KKyAgICAgICAgCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNDQ2NAorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4KKwor
ICAgICAgICAqIGFjY2Vzc2liaWxpdHkvY2hyb21pdW0vQVhPYmplY3RDYWNoZUNocm9taXVtLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OnRvQ2hyb21lQ2xpZW50Q2hyb21pdW0pOgorICAgICAgICAo
V2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAg
ICAgKiBwYWdlL2Nocm9taXVtL0Nocm9tZUNsaWVudENocm9taXVtLmg6CisKIDIwMTAtMDItMDMg
IERyZXcgV2lsc29uICA8YXR3aWxzb25AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IEFsZXhleSBQcm9za3VyeWFrb3YuCkluZGV4OiBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvY2hy
b21pdW0vQVhPYmplY3RDYWNoZUNocm9taXVtLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvY2hyb21pdW0vQVhPYmplY3RDYWNoZUNocm9taXVtLmNwcAkocmV2aXNpb24g
NTQyNDUpCisrKyBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvY2hyb21pdW0vQVhPYmplY3RDYWNoZUNo
cm9taXVtLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYsMTEgKzI2LDMwIEBACiAKICNpbmNsdWRl
ICJjb25maWcuaCIKICNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCi0KICNpbmNsdWRlICJBY2Nl
c3NpYmlsaXR5T2JqZWN0LmgiCisjaW5jbHVkZSAiQ2hyb21lLmgiCisjaW5jbHVkZSAiQ2hyb21l
Q2xpZW50Q2hyb21pdW0uaCIKKyNpbmNsdWRlICJGcmFtZVZpZXcuaCIKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCitzdGF0aWMgQ2hyb21lQ2xpZW50Q2hyb21pdW0qIHRvQ2hyb21lQ2xpZW50Q2hy
b21pdW0oV2lkZ2V0KiB3aWRnZXQpCit7CisgICAgRnJhbWVWaWV3KiB2aWV3OworICAgIGlmICh3
aWRnZXQtPmlzRnJhbWVWaWV3KCkpCisgICAgICAgIHZpZXcgPSBzdGF0aWNfY2FzdDxGcmFtZVZp
ZXcqPih3aWRnZXQpOworICAgIGVsc2UgaWYgKHdpZGdldC0+cGFyZW50KCkgJiYgd2lkZ2V0LT5w
YXJlbnQoKS0+aXNGcmFtZVZpZXcoKSkKKyAgICAgICAgdmlldyA9IHN0YXRpY19jYXN0PEZyYW1l
Vmlldyo+KHdpZGdldC0+cGFyZW50KCkpOworICAgIGVsc2UKKyAgICAgICAgcmV0dXJuIDA7CisK
KyAgICBQYWdlKiBwYWdlID0gdmlldy0+ZnJhbWUoKSA/IHZpZXctPmZyYW1lKCktPnBhZ2UoKSA6
IDA7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm4gMDsKKworICAgIHJldHVybiBzdGF0
aWNfY2FzdDxDaHJvbWVDbGllbnRDaHJvbWl1bSo+KHBhZ2UtPmNocm9tZSgpLT5jbGllbnQoKSk7
Cit9CisKIHZvaWQgQVhPYmplY3RDYWNoZTo6ZGV0YWNoV3JhcHBlcihBY2Nlc3NpYmlsaXR5T2Jq
ZWN0KiBvYmopCiB7CiAgICAgLy8gSW4gQ2hyb21pdW0sIEFjY2Vzc2liaWxpdHlPYmplY3RzIGFy
ZSB3cmFwcGVkIGxhemlseS4KQEAgLTQzLDggKzYyLDE0IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6
YXR0YWNoV3JhcHBlcihBY2Nlc3MKICAgICAvLyBJbiBDaHJvbWl1bSwgQWNjZXNzaWJpbGl0eU9i
amVjdHMgYXJlIHdyYXBwZWQgbGF6aWx5LgogfQogCi12b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RQ
bGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhOb3RpZmljYXRpb24p
Ci17Cit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3Np
YmlsaXR5T2JqZWN0KiBvYmosIEFYTm90aWZpY2F0aW9uIG5vdGlmaWNhdGlvbikKK3sKKyAgICBp
ZiAoIW9iaiB8fCAhb2JqLT5kb2N1bWVudEZyYW1lVmlldygpIHx8IG5vdGlmaWNhdGlvbiAhPSBB
WE9iamVjdENhY2hlOjpBWENoZWNrZWRTdGF0ZUNoYW5nZWQpCisgICAgICAgIHJldHVybjsKKwor
ICAgIENocm9tZUNsaWVudENocm9taXVtKiBjbGllbnQgPSB0b0Nocm9tZUNsaWVudENocm9taXVt
KG9iai0+ZG9jdW1lbnRGcmFtZVZpZXcoKSk7CisgICAgaWYgKGNsaWVudCkKKyAgICAgICAgY2xp
ZW50LT5hY2Nlc3NpYmlsaXR5T2JqZWN0U3RhdGVEaWRDaGFuZ2Uob2JqKTsKIH0KIAogdm9pZCBB
WE9iamVjdENhY2hlOjpoYW5kbGVGb2N1c2VkVUlFbGVtZW50Q2hhbmdlZChSZW5kZXJPYmplY3Qq
LCBSZW5kZXJPYmplY3QqKQpJbmRleDogV2ViQ29yZS9wYWdlL2Nocm9taXVtL0Nocm9tZUNsaWVu
dENocm9taXVtLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL2Nocm9taXVtL0Nocm9tZUNs
aWVudENocm9taXVtLmgJKHJldmlzaW9uIDU0MjQ1KQorKysgV2ViQ29yZS9wYWdlL2Nocm9taXVt
L0Nocm9tZUNsaWVudENocm9taXVtLmgJKHdvcmtpbmcgY29weSkKQEAgLTM1LDIwICszNSwyNSBA
QAogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLSAgICBj
bGFzcyBJbnRSZWN0OwotICAgIGNsYXNzIFBvcHVwQ29udGFpbmVyOwogCi0gICAgLy8gQ29udGFp
bnMgQ2hyb21pdW0tc3BlY2lmaWMgZXh0ZW5zaW9ucyB0byB0aGUgQ2hyb21lQ2xpZW50LiAgT25s
eSBwdXQKLSAgICAvLyB0aGluZ3MgaGVyZSB0aGF0IGRvbid0IG1ha2Ugc2Vuc2UgZm9yIG90aGVy
IHBvcnRzLgotICAgIGNsYXNzIENocm9tZUNsaWVudENocm9taXVtIDogcHVibGljIENocm9tZUNs
aWVudCB7Ci0gICAgcHVibGljOgotICAgICAgICAvLyBOb3RpZmllcyB0aGUgY2xpZW50IG9mIGEg
bmV3IHBvcHVwIHdpZGdldC4gIFRoZSBjbGllbnQgc2hvdWxkIHBsYWNlCi0gICAgICAgIC8vIGFu
ZCBzaXplIHRoZSB3aWRnZXQgd2l0aCB0aGUgZ2l2ZW4gYm91bmRzLCByZWxhdGl2ZSB0byB0aGUg
c2NyZWVuLgotICAgICAgICAvLyBJZiBoYW5kbGVFeHRlcm5hbCBpcyB0cnVlLCB0aGVuIGRyYXdp
bmcgYW5kIGlucHV0IGhhbmRsaW5nIGZvciB0aGUKLSAgICAgICAgLy8gcG9wdXAgd2lsbCBiZSBo
YW5kbGVkIGJ5IHRoZSBleHRlcm5hbCBlbWJlZGRlci4KLSAgICAgICAgdmlydHVhbCB2b2lkIHBv
cHVwT3BlbmVkKFBvcHVwQ29udGFpbmVyKiBwb3B1cENvbnRhaW5lciwgY29uc3QgSW50UmVjdCYg
Ym91bmRzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBmb2N1c09uU2hv
dywgYm9vbCBoYW5kbGVFeHRlcm5hbCkgPSAwOwotICAgIH07CitjbGFzcyBBY2Nlc3NpYmlsaXR5
T2JqZWN0OworY2xhc3MgSW50UmVjdDsKK2NsYXNzIFBvcHVwQ29udGFpbmVyOworCisvLyBDb250
YWlucyBDaHJvbWl1bS1zcGVjaWZpYyBleHRlbnNpb25zIHRvIHRoZSBDaHJvbWVDbGllbnQuICBP
bmx5IHB1dAorLy8gdGhpbmdzIGhlcmUgdGhhdCBkb24ndCBtYWtlIHNlbnNlIGZvciBvdGhlciBw
b3J0cy4KK2NsYXNzIENocm9tZUNsaWVudENocm9taXVtIDogcHVibGljIENocm9tZUNsaWVudCB7
CitwdWJsaWM6CisgICAgLy8gTm90aWZpZXMgdGhlIGNsaWVudCBvZiBhIG5ldyBwb3B1cCB3aWRn
ZXQuICBUaGUgY2xpZW50IHNob3VsZCBwbGFjZQorICAgIC8vIGFuZCBzaXplIHRoZSB3aWRnZXQg
d2l0aCB0aGUgZ2l2ZW4gYm91bmRzLCByZWxhdGl2ZSB0byB0aGUgc2NyZWVuLgorICAgIC8vIElm
IGhhbmRsZUV4dGVybmFsIGlzIHRydWUsIHRoZW4gZHJhd2luZyBhbmQgaW5wdXQgaGFuZGxpbmcg
Zm9yIHRoZQorICAgIC8vIHBvcHVwIHdpbGwgYmUgaGFuZGxlZCBieSB0aGUgZXh0ZXJuYWwgZW1i
ZWRkZXIuCisgICAgdmlydHVhbCB2b2lkIHBvcHVwT3BlbmVkKFBvcHVwQ29udGFpbmVyKiBwb3B1
cENvbnRhaW5lciwgY29uc3QgSW50UmVjdCYgYm91bmRzLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBib29sIGZvY3VzT25TaG93LCBib29sIGhhbmRsZUV4dGVybmFsKSA9IDA7CisKKyAg
ICAvLyBOb3RpZmllcyBlbWJlZGRlciB0aGF0IHRoZSBzdGF0ZSBvZiBhbiBhY2Nlc3NpYmlsaXR5
IG9iamVjdCBoYXMgY2hhbmdlZC4KKyAgICB2aXJ0dWFsIHZvaWQgYWNjZXNzaWJpbGl0eU9iamVj
dFN0YXRlRGlkQ2hhbmdlKEFjY2Vzc2liaWxpdHlPYmplY3QqKSA9IDA7Cit9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCiAKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gNTQyOTIpCisrKyBX
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAK
KzIwMTAtMDItMDMgIENocmlzIEd1aWxsb3J5ICA8Y2hyaXMuZ3VpbGxvcnlAZ29vZ2xlLmNvbT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbQ2hyb21p
dW1dIEFkZCBmdW5jdGlvbiBmb3IgYWNjZXNzaWJpbGl0eSBvYmplY3Qgc3RhdGUgY2hhbmdlIG5v
dGlmaWNhdGlvbnMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0zNDQ2NAorCisgICAgICAgICogcHVibGljL1dlYlZpZXdDbGllbnQuaDoKKyAgICAgICAg
KFdlYktpdDo6V2ViVmlld0NsaWVudDo6YWNjZXNzaWJpbGl0eU9iamVjdFN0YXRlRGlkQ2hhbmdl
KToKKyAgICAgICAgKiBzcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6
OkNocm9tZUNsaWVudEltcGw6OmFjY2Vzc2liaWxpdHlPYmplY3RTdGF0ZURpZENoYW5nZSk6Cisg
ICAgICAgICogc3JjL0Nocm9tZUNsaWVudEltcGwuaDoKKwogMjAxMC0wMi0wMyAgRHJldyBXaWxz
b24gIDxhdHdpbHNvbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWxleGV5
IFByb3NrdXJ5YWtvdi4KSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlld0NsaWVu
dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlld0NsaWVudC5o
CShyZXZpc2lvbiA1NDI0NSkKKysrIFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlld0NsaWVu
dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNTIsNiArMjUyLDkgQEAgcHVibGljOgogICAgIC8vIGFj
Y2Vzc2liaWxpdHkgb2JqZWN0LgogICAgIHZpcnR1YWwgdm9pZCBmb2N1c0FjY2Vzc2liaWxpdHlP
YmplY3QoY29uc3QgV2ViQWNjZXNzaWJpbGl0eU9iamVjdCYpIHsgfQogCisgICAgLy8gTm90aWZp
ZXMgZW1iZWRkZXIgdGhhdCB0aGUgc3RhdGUgb2YgYW4gYWNjZXNzaWJpbGl0eSBvYmplY3QgaGFz
IGNoYW5nZWQuCisgICAgdmlydHVhbCB2b2lkIGFjY2Vzc2liaWxpdHlPYmplY3RTdGF0ZURpZENo
YW5nZShjb25zdCBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0JikgeyB9CisKIAogICAgIC8vIERldmVs
b3BlciB0b29scyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQogCkluZGV4OiBXZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAJ
KHJldmlzaW9uIDU0MjQ1KQorKysgV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBs
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjU5LDYgKzY1OSwxMyBAQCB2b2lkIENocm9tZUNsaWVu
dEltcGw6OmdldFBvcHVwTWVudUluZm8oCiAgICAgaW5mby0+aXRlbXMuc3dhcChvdXRwdXRJdGVt
cyk7CiB9CiAKK3ZvaWQgQ2hyb21lQ2xpZW50SW1wbDo6YWNjZXNzaWJpbGl0eU9iamVjdFN0YXRl
RGlkQ2hhbmdlKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaikKK3sKKyAgICAvLyBBbGVydCBhc3Np
c3RpdmUgdGVjaG5vbG9neSBhYm91dCB0aGUgYWNjZXNzaWJpbGl0eSBvYmplY3Qgc3RhdGUgY2hh
bmdlCisgICAgaWYgKG9iaikKKyAgICAgICAgbV93ZWJWaWV3LT5jbGllbnQoKS0+YWNjZXNzaWJp
bGl0eU9iamVjdFN0YXRlRGlkQ2hhbmdlKFdlYkFjY2Vzc2liaWxpdHlPYmplY3Qob2JqKSk7Cit9
CisKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKIE5vdGlmaWNhdGlvblByZXNlbnRlciogQ2hy
b21lQ2xpZW50SW1wbDo6bm90aWZpY2F0aW9uUHJlc2VudGVyKCkgY29uc3QKIHsKSW5kZXg6IFdl
YktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktp
dC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5oCShyZXZpc2lvbiA1NDI0NSkKKysrIFdl
YktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0z
NCw2ICszNCw3IEBACiAjaW5jbHVkZSAiQ2hyb21lQ2xpZW50Q2hyb21pdW0uaCIKIAogbmFtZXNw
YWNlIFdlYkNvcmUgeworY2xhc3MgQWNjZXNzaWJpbGl0eU9iamVjdDsKIGNsYXNzIEhUTUxQYXJz
ZXJRdWlya3M7CiBjbGFzcyBQb3B1cENvbnRhaW5lcjsKIGNsYXNzIFNlY3VyaXR5T3JpZ2luOwpA
QCAtMTMyLDYgKzEzMyw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29uc3QgV2ViQ29yZTo6SW50UmVjdCYgYm91bmRzLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBib29sIGFjdGl2YXRhYmxlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29s
IGhhbmRsZUV4dGVybmFsbHkpOworICAgIHZpcnR1YWwgdm9pZCBhY2Nlc3NpYmlsaXR5T2JqZWN0
U3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdCopOwogCiAgICAgLy8g
Q2hyb21lQ2xpZW50SW1wbDoKICAgICB2b2lkIHNldEN1cnNvcihjb25zdCBXZWJDdXJzb3JJbmZv
JiBjdXJzb3IpOwo=
</data>
<flag name="review"
          id="30680"
          type_id="1"
          status="-"
          setter="fishd"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>48157</attachid>
            <date>2010-02-04 11:22:46 -0800</date>
            <delta_ts>2010-02-08 15:12:48 -0800</delta_ts>
            <desc>Updated with more comments from Darin</desc>
            <filename>StateChange.patch</filename>
            <type>text/plain</type>
            <size>7132</size>
            <attacher name="Chris Guillory">ctguil</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NDM1OCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTYgQEAKKzIwMTAtMDItMDQgIENocmlzIEd1aWxsb3J5ICA8Y2hyaXMuZ3VpbGxv
cnlAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBbQ2hyb21pdW1dIE5vdGlmeSBDaHJvbWVDbGllbnRDaHJvbWl1bSBvZiBzdGF0ZSBj
aGFuZ2Ugbm90aWZpY2F0aW9ucy4KKyAgICAgICAgCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNDQ2NAorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9j
aHJvbWl1bS9BWE9iamVjdENhY2hlQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9D
aHJvbWVDbGllbnRDaHJvbWl1bSk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpw
b3N0UGxhdGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAqIHBhZ2UvY2hyb21pdW0vQ2hyb21l
Q2xpZW50Q2hyb21pdW0uaDoKKwogMjAxMC0wMi0wNCAgSm9zw6kgTWlsbMOhbiBTb3RvICA8am1p
bGxhbkBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFhhbiBMb3Blei4KSW5kZXg6
IFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9jaHJvbWl1bS9BWE9iamVjdENhY2hlQ2hyb21pdW0uY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9jaHJvbWl1bS9BWE9iamVjdENh
Y2hlQ2hyb21pdW0uY3BwCShyZXZpc2lvbiA1NDI0NSkKKysrIFdlYkNvcmUvYWNjZXNzaWJpbGl0
eS9jaHJvbWl1bS9BWE9iamVjdENhY2hlQ2hyb21pdW0uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0y
NiwxMSArMjYsMjIgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkFYT2JqZWN0
Q2FjaGUuaCIKLQogI2luY2x1ZGUgIkFjY2Vzc2liaWxpdHlPYmplY3QuaCIKKyNpbmNsdWRlICJD
aHJvbWUuaCIKKyNpbmNsdWRlICJDaHJvbWVDbGllbnRDaHJvbWl1bS5oIgorI2luY2x1ZGUgIkZy
YW1lVmlldy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK3N0YXRpYyBDaHJvbWVDbGllbnRD
aHJvbWl1bSogdG9DaHJvbWVDbGllbnRDaHJvbWl1bShGcmFtZVZpZXcqIHZpZXcpCit7CisgICAg
UGFnZSogcGFnZSA9IHZpZXctPmZyYW1lKCkgPyB2aWV3LT5mcmFtZSgpLT5wYWdlKCkgOiAwOwor
ICAgIGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8Q2hyb21lQ2xpZW50Q2hyb21pdW0qPihwYWdlLT5jaHJvbWUoKS0+Y2xpZW50KCkpOworfQor
CiB2b2lkIEFYT2JqZWN0Q2FjaGU6OmRldGFjaFdyYXBwZXIoQWNjZXNzaWJpbGl0eU9iamVjdCog
b2JqKQogewogICAgIC8vIEluIENocm9taXVtLCBBY2Nlc3NpYmlsaXR5T2JqZWN0cyBhcmUgd3Jh
cHBlZCBsYXppbHkuCkBAIC00Myw4ICs1NCwxNCBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OmF0dGFj
aFdyYXBwZXIoQWNjZXNzCiAgICAgLy8gSW4gQ2hyb21pdW0sIEFjY2Vzc2liaWxpdHlPYmplY3Rz
IGFyZSB3cmFwcGVkIGxhemlseS4KIH0KIAotdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0UGxhdGZv
cm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYTm90aWZpY2F0aW9uKQordm9p
ZCBBWE9iamVjdENhY2hlOjpwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9i
amVjdCogb2JqLCBBWE5vdGlmaWNhdGlvbiBub3RpZmljYXRpb24pCiB7CisgICAgaWYgKCFvYmog
fHwgIW9iai0+ZG9jdW1lbnRGcmFtZVZpZXcoKSB8fCBub3RpZmljYXRpb24gIT0gQVhPYmplY3RD
YWNoZTo6QVhDaGVja2VkU3RhdGVDaGFuZ2VkKQorICAgICAgICByZXR1cm47CisKKyAgICBDaHJv
bWVDbGllbnRDaHJvbWl1bSogY2xpZW50ID0gdG9DaHJvbWVDbGllbnRDaHJvbWl1bShvYmotPmRv
Y3VtZW50RnJhbWVWaWV3KCkpOworICAgIGlmIChjbGllbnQpCisgICAgICAgIGNsaWVudC0+ZGlk
Q2hhbmdlQWNjZXNzaWJpbGl0eU9iamVjdFN0YXRlKG9iaik7CiB9CiAKIHZvaWQgQVhPYmplY3RD
YWNoZTo6aGFuZGxlRm9jdXNlZFVJRWxlbWVudENoYW5nZWQoUmVuZGVyT2JqZWN0KiwgUmVuZGVy
T2JqZWN0KikKSW5kZXg6IFdlYkNvcmUvcGFnZS9jaHJvbWl1bS9DaHJvbWVDbGllbnRDaHJvbWl1
bS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9jaHJvbWl1bS9DaHJvbWVDbGllbnRDaHJv
bWl1bS5oCShyZXZpc2lvbiA1NDI0NSkKKysrIFdlYkNvcmUvcGFnZS9jaHJvbWl1bS9DaHJvbWVD
bGllbnRDaHJvbWl1bS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNSwyMCArMzUsMjUgQEAKICNpbmNs
dWRlIDx3dGYvRm9yd2FyZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci0gICAgY2xhc3MgSW50
UmVjdDsKLSAgICBjbGFzcyBQb3B1cENvbnRhaW5lcjsKIAotICAgIC8vIENvbnRhaW5zIENocm9t
aXVtLXNwZWNpZmljIGV4dGVuc2lvbnMgdG8gdGhlIENocm9tZUNsaWVudC4gIE9ubHkgcHV0Ci0g
ICAgLy8gdGhpbmdzIGhlcmUgdGhhdCBkb24ndCBtYWtlIHNlbnNlIGZvciBvdGhlciBwb3J0cy4K
LSAgICBjbGFzcyBDaHJvbWVDbGllbnRDaHJvbWl1bSA6IHB1YmxpYyBDaHJvbWVDbGllbnQgewot
ICAgIHB1YmxpYzoKLSAgICAgICAgLy8gTm90aWZpZXMgdGhlIGNsaWVudCBvZiBhIG5ldyBwb3B1
cCB3aWRnZXQuICBUaGUgY2xpZW50IHNob3VsZCBwbGFjZQotICAgICAgICAvLyBhbmQgc2l6ZSB0
aGUgd2lkZ2V0IHdpdGggdGhlIGdpdmVuIGJvdW5kcywgcmVsYXRpdmUgdG8gdGhlIHNjcmVlbi4K
LSAgICAgICAgLy8gSWYgaGFuZGxlRXh0ZXJuYWwgaXMgdHJ1ZSwgdGhlbiBkcmF3aW5nIGFuZCBp
bnB1dCBoYW5kbGluZyBmb3IgdGhlCi0gICAgICAgIC8vIHBvcHVwIHdpbGwgYmUgaGFuZGxlZCBi
eSB0aGUgZXh0ZXJuYWwgZW1iZWRkZXIuCi0gICAgICAgIHZpcnR1YWwgdm9pZCBwb3B1cE9wZW5l
ZChQb3B1cENvbnRhaW5lciogcG9wdXBDb250YWluZXIsIGNvbnN0IEludFJlY3QmIGJvdW5kcywK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgZm9jdXNPblNob3csIGJvb2wg
aGFuZGxlRXh0ZXJuYWwpID0gMDsKLSAgICB9OworY2xhc3MgQWNjZXNzaWJpbGl0eU9iamVjdDsK
K2NsYXNzIEludFJlY3Q7CitjbGFzcyBQb3B1cENvbnRhaW5lcjsKKworLy8gQ29udGFpbnMgQ2hy
b21pdW0tc3BlY2lmaWMgZXh0ZW5zaW9ucyB0byB0aGUgQ2hyb21lQ2xpZW50LiAgT25seSBwdXQK
Ky8vIHRoaW5ncyBoZXJlIHRoYXQgZG9uJ3QgbWFrZSBzZW5zZSBmb3Igb3RoZXIgcG9ydHMuCitj
bGFzcyBDaHJvbWVDbGllbnRDaHJvbWl1bSA6IHB1YmxpYyBDaHJvbWVDbGllbnQgeworcHVibGlj
OgorICAgIC8vIE5vdGlmaWVzIHRoZSBjbGllbnQgb2YgYSBuZXcgcG9wdXAgd2lkZ2V0LiAgVGhl
IGNsaWVudCBzaG91bGQgcGxhY2UKKyAgICAvLyBhbmQgc2l6ZSB0aGUgd2lkZ2V0IHdpdGggdGhl
IGdpdmVuIGJvdW5kcywgcmVsYXRpdmUgdG8gdGhlIHNjcmVlbi4KKyAgICAvLyBJZiBoYW5kbGVF
eHRlcm5hbCBpcyB0cnVlLCB0aGVuIGRyYXdpbmcgYW5kIGlucHV0IGhhbmRsaW5nIGZvciB0aGUK
KyAgICAvLyBwb3B1cCB3aWxsIGJlIGhhbmRsZWQgYnkgdGhlIGV4dGVybmFsIGVtYmVkZGVyLgor
ICAgIHZpcnR1YWwgdm9pZCBwb3B1cE9wZW5lZChQb3B1cENvbnRhaW5lciogcG9wdXBDb250YWlu
ZXIsIGNvbnN0IEludFJlY3QmIGJvdW5kcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Ym9vbCBmb2N1c09uU2hvdywgYm9vbCBoYW5kbGVFeHRlcm5hbCkgPSAwOworCisgICAgLy8gTm90
aWZpZXMgZW1iZWRkZXIgdGhhdCB0aGUgc3RhdGUgb2YgYW4gYWNjZXNzaWJpbGl0eSBvYmplY3Qg
aGFzIGNoYW5nZWQuCisgICAgdmlydHVhbCB2b2lkIGRpZENoYW5nZUFjY2Vzc2liaWxpdHlPYmpl
Y3RTdGF0ZShBY2Nlc3NpYmlsaXR5T2JqZWN0KikgPSAwOworfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQogCkluZGV4OiBXZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHJldmlzaW9uIDU0MzU4KQorKysgV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBACisyMDEwLTAy
LTA0ICBDaHJpcyBHdWlsbG9yeSAgPGNocmlzLmd1aWxsb3J5QGdvb2dsZS5jb20+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0Nocm9taXVtXSBBZGQg
ZnVuY3Rpb24gZm9yIGFjY2Vzc2liaWxpdHkgb2JqZWN0IHN0YXRlIGNoYW5nZSBub3RpZmljYXRp
b25zLgorICAgICAgICAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTM0NDY0CisKKyAgICAgICAgKiBwdWJsaWMvV2ViVmlld0NsaWVudC5oOgorICAgICAg
ICAoV2ViS2l0OjpXZWJWaWV3Q2xpZW50OjpkaWRDaGFuZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0U3Rh
dGUpOgorICAgICAgICAqIHNyYy9DaHJvbWVDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6Q2hyb21lQ2xpZW50SW1wbDo6ZGlkQ2hhbmdlQWNjZXNzaWJpbGl0eU9iamVjdFN0YXRlKToK
KyAgICAgICAgKiBzcmMvQ2hyb21lQ2xpZW50SW1wbC5oOgorCiAyMDEwLTAyLTA0ICBOYXRlIENo
YXBpbiAgPGphcGhldEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGltaXRy
aSBHbGF6a292LgpJbmRleDogV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xpZW50LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xpZW50LmgJKHJl
dmlzaW9uIDU0MjQ1KQorKysgV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xpZW50LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTI1Miw2ICsyNTIsOSBAQCBwdWJsaWM6CiAgICAgLy8gYWNjZXNz
aWJpbGl0eSBvYmplY3QuCiAgICAgdmlydHVhbCB2b2lkIGZvY3VzQWNjZXNzaWJpbGl0eU9iamVj
dChjb25zdCBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0JikgeyB9CiAKKyAgICAvLyBOb3RpZmllcyBl
bWJlZGRlciB0aGF0IHRoZSBzdGF0ZSBvZiBhbiBhY2Nlc3NpYmlsaXR5IG9iamVjdCBoYXMgY2hh
bmdlZC4KKyAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlQWNjZXNzaWJpbGl0eU9iamVjdFN0YXRl
KGNvbnN0IFdlYkFjY2Vzc2liaWxpdHlPYmplY3QmKSB7IH0KKwogCiAgICAgLy8gRGV2ZWxvcGVy
IHRvb2xzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCiAKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcAkocmV2
aXNpb24gNTQyNDUpCisrKyBXZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC02NTksNiArNjU5LDEzIEBAIHZvaWQgQ2hyb21lQ2xpZW50SW1w
bDo6Z2V0UG9wdXBNZW51SW5mbygKICAgICBpbmZvLT5pdGVtcy5zd2FwKG91dHB1dEl0ZW1zKTsK
IH0KIAordm9pZCBDaHJvbWVDbGllbnRJbXBsOjpkaWRDaGFuZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0
U3RhdGUoQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqKQoreworICAgIC8vIEFsZXJ0IGFzc2lzdGl2
ZSB0ZWNobm9sb2d5IGFib3V0IHRoZSBhY2Nlc3NpYmlsaXR5IG9iamVjdCBzdGF0ZSBjaGFuZ2UK
KyAgICBpZiAob2JqKQorICAgICAgICBtX3dlYlZpZXctPmNsaWVudCgpLT5kaWRDaGFuZ2VBY2Nl
c3NpYmlsaXR5T2JqZWN0U3RhdGUoV2ViQWNjZXNzaWJpbGl0eU9iamVjdChvYmopKTsKK30KKwog
I2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQogTm90aWZpY2F0aW9uUHJlc2VudGVyKiBDaHJvbWVD
bGllbnRJbXBsOjpub3RpZmljYXRpb25QcmVzZW50ZXIoKSBjb25zdAogewpJbmRleDogV2ViS2l0
L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2No
cm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmgJKHJldmlzaW9uIDU0MjQ1KQorKysgV2ViS2l0
L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmgJKHdvcmtpbmcgY29weSkKQEAgLTM0LDYg
KzM0LDcgQEAKICNpbmNsdWRlICJDaHJvbWVDbGllbnRDaHJvbWl1bS5oIgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CitjbGFzcyBBY2Nlc3NpYmlsaXR5T2JqZWN0OwogY2xhc3MgSFRNTFBhcnNlclF1
aXJrczsKIGNsYXNzIFBvcHVwQ29udGFpbmVyOwogY2xhc3MgU2VjdXJpdHlPcmlnaW47CkBAIC0x
MzIsNiArMTMzLDcgQEAgcHVibGljOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z
dCBXZWJDb3JlOjpJbnRSZWN0JiBib3VuZHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGJvb2wgYWN0aXZhdGFibGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgaGFu
ZGxlRXh0ZXJuYWxseSk7CisgICAgdmlydHVhbCB2b2lkIGRpZENoYW5nZUFjY2Vzc2liaWxpdHlP
YmplY3RTdGF0ZShXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0Kik7CiAKICAgICAvLyBDaHJv
bWVDbGllbnRJbXBsOgogICAgIHZvaWQgc2V0Q3Vyc29yKGNvbnN0IFdlYkN1cnNvckluZm8mIGN1
cnNvcik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>48159</attachid>
            <date>2010-02-04 12:10:54 -0800</date>
            <delta_ts>2010-02-08 16:18:09 -0800</delta_ts>
            <desc>Removed unneeded AXObjectCache::</desc>
            <filename>StateChange.patch</filename>
            <type>text/plain</type>
            <size>7131</size>
            <attacher name="Chris Guillory">ctguil</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NDM2MSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTYgQEAKKzIwMTAtMDItMDQgIENocmlzIEd1aWxsb3J5ICA8Y2hyaXMuZ3VpbGxv
cnlAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBbQ2hyb21pdW1dIE5vdGlmeSBDaHJvbWVDbGllbnRDaHJvbWl1bSBvZiBzdGF0ZSBj
aGFuZ2Ugbm90aWZpY2F0aW9ucy4KKyAgICAgICAgCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNDQ2NAorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9j
aHJvbWl1bS9BWE9iamVjdENhY2hlQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9D
aHJvbWVDbGllbnRDaHJvbWl1bSk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpw
b3N0UGxhdGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAqIHBhZ2UvY2hyb21pdW0vQ2hyb21l
Q2xpZW50Q2hyb21pdW0uaDoKKwogMjAxMC0wMi0wNCAgU3RlcGhlbiBXaGl0ZSAgPHNlbm9yYmxh
bmNvQGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCBidWlsZCBmaXggZm9yIENo
cm9taXVtLgpJbmRleDogV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2Nocm9taXVtL0FYT2JqZWN0Q2Fj
aGVDaHJvbWl1bS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2Nocm9t
aXVtL0FYT2JqZWN0Q2FjaGVDaHJvbWl1bS5jcHAJKHJldmlzaW9uIDU0MjQ1KQorKysgV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L2Nocm9taXVtL0FYT2JqZWN0Q2FjaGVDaHJvbWl1bS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTI2LDExICsyNiwyMiBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5j
bHVkZSAiQVhPYmplY3RDYWNoZS5oIgotCiAjaW5jbHVkZSAiQWNjZXNzaWJpbGl0eU9iamVjdC5o
IgorI2luY2x1ZGUgIkNocm9tZS5oIgorI2luY2x1ZGUgIkNocm9tZUNsaWVudENocm9taXVtLmgi
CisjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorc3RhdGlj
IENocm9tZUNsaWVudENocm9taXVtKiB0b0Nocm9tZUNsaWVudENocm9taXVtKEZyYW1lVmlldyog
dmlldykKK3sKKyAgICBQYWdlKiBwYWdlID0gdmlldy0+ZnJhbWUoKSA/IHZpZXctPmZyYW1lKCkt
PnBhZ2UoKSA6IDA7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm4gMDsKKworICAgIHJl
dHVybiBzdGF0aWNfY2FzdDxDaHJvbWVDbGllbnRDaHJvbWl1bSo+KHBhZ2UtPmNocm9tZSgpLT5j
bGllbnQoKSk7Cit9CisKIHZvaWQgQVhPYmplY3RDYWNoZTo6ZGV0YWNoV3JhcHBlcihBY2Nlc3Np
YmlsaXR5T2JqZWN0KiBvYmopCiB7CiAgICAgLy8gSW4gQ2hyb21pdW0sIEFjY2Vzc2liaWxpdHlP
YmplY3RzIGFyZSB3cmFwcGVkIGxhemlseS4KQEAgLTQzLDggKzU0LDE0IEBAIHZvaWQgQVhPYmpl
Y3RDYWNoZTo6YXR0YWNoV3JhcHBlcihBY2Nlc3MKICAgICAvLyBJbiBDaHJvbWl1bSwgQWNjZXNz
aWJpbGl0eU9iamVjdHMgYXJlIHdyYXBwZWQgbGF6aWx5LgogfQogCi12b2lkIEFYT2JqZWN0Q2Fj
aGU6OnBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhOb3Rp
ZmljYXRpb24pCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihB
Y2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFYTm90aWZpY2F0aW9uIG5vdGlmaWNhdGlvbikKIHsK
KyAgICBpZiAoIW9iaiB8fCAhb2JqLT5kb2N1bWVudEZyYW1lVmlldygpIHx8IG5vdGlmaWNhdGlv
biAhPSBBWENoZWNrZWRTdGF0ZUNoYW5nZWQpCisgICAgICAgIHJldHVybjsKKworICAgIENocm9t
ZUNsaWVudENocm9taXVtKiBjbGllbnQgPSB0b0Nocm9tZUNsaWVudENocm9taXVtKG9iai0+ZG9j
dW1lbnRGcmFtZVZpZXcoKSk7CisgICAgaWYgKGNsaWVudCkKKyAgICAgICAgY2xpZW50LT5kaWRD
aGFuZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0U3RhdGUob2JqKTsKIH0KIAogdm9pZCBBWE9iamVjdENh
Y2hlOjpoYW5kbGVGb2N1c2VkVUlFbGVtZW50Q2hhbmdlZChSZW5kZXJPYmplY3QqLCBSZW5kZXJP
YmplY3QqKQpJbmRleDogV2ViQ29yZS9wYWdlL2Nocm9taXVtL0Nocm9tZUNsaWVudENocm9taXVt
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL2Nocm9taXVtL0Nocm9tZUNsaWVudENocm9t
aXVtLmgJKHJldmlzaW9uIDU0MjQ1KQorKysgV2ViQ29yZS9wYWdlL2Nocm9taXVtL0Nocm9tZUNs
aWVudENocm9taXVtLmgJKHdvcmtpbmcgY29weSkKQEAgLTM1LDIwICszNSwyNSBAQAogI2luY2x1
ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLSAgICBjbGFzcyBJbnRS
ZWN0OwotICAgIGNsYXNzIFBvcHVwQ29udGFpbmVyOwogCi0gICAgLy8gQ29udGFpbnMgQ2hyb21p
dW0tc3BlY2lmaWMgZXh0ZW5zaW9ucyB0byB0aGUgQ2hyb21lQ2xpZW50LiAgT25seSBwdXQKLSAg
ICAvLyB0aGluZ3MgaGVyZSB0aGF0IGRvbid0IG1ha2Ugc2Vuc2UgZm9yIG90aGVyIHBvcnRzLgot
ICAgIGNsYXNzIENocm9tZUNsaWVudENocm9taXVtIDogcHVibGljIENocm9tZUNsaWVudCB7Ci0g
ICAgcHVibGljOgotICAgICAgICAvLyBOb3RpZmllcyB0aGUgY2xpZW50IG9mIGEgbmV3IHBvcHVw
IHdpZGdldC4gIFRoZSBjbGllbnQgc2hvdWxkIHBsYWNlCi0gICAgICAgIC8vIGFuZCBzaXplIHRo
ZSB3aWRnZXQgd2l0aCB0aGUgZ2l2ZW4gYm91bmRzLCByZWxhdGl2ZSB0byB0aGUgc2NyZWVuLgot
ICAgICAgICAvLyBJZiBoYW5kbGVFeHRlcm5hbCBpcyB0cnVlLCB0aGVuIGRyYXdpbmcgYW5kIGlu
cHV0IGhhbmRsaW5nIGZvciB0aGUKLSAgICAgICAgLy8gcG9wdXAgd2lsbCBiZSBoYW5kbGVkIGJ5
IHRoZSBleHRlcm5hbCBlbWJlZGRlci4KLSAgICAgICAgdmlydHVhbCB2b2lkIHBvcHVwT3BlbmVk
KFBvcHVwQ29udGFpbmVyKiBwb3B1cENvbnRhaW5lciwgY29uc3QgSW50UmVjdCYgYm91bmRzLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBmb2N1c09uU2hvdywgYm9vbCBo
YW5kbGVFeHRlcm5hbCkgPSAwOwotICAgIH07CitjbGFzcyBBY2Nlc3NpYmlsaXR5T2JqZWN0Owor
Y2xhc3MgSW50UmVjdDsKK2NsYXNzIFBvcHVwQ29udGFpbmVyOworCisvLyBDb250YWlucyBDaHJv
bWl1bS1zcGVjaWZpYyBleHRlbnNpb25zIHRvIHRoZSBDaHJvbWVDbGllbnQuICBPbmx5IHB1dAor
Ly8gdGhpbmdzIGhlcmUgdGhhdCBkb24ndCBtYWtlIHNlbnNlIGZvciBvdGhlciBwb3J0cy4KK2Ns
YXNzIENocm9tZUNsaWVudENocm9taXVtIDogcHVibGljIENocm9tZUNsaWVudCB7CitwdWJsaWM6
CisgICAgLy8gTm90aWZpZXMgdGhlIGNsaWVudCBvZiBhIG5ldyBwb3B1cCB3aWRnZXQuICBUaGUg
Y2xpZW50IHNob3VsZCBwbGFjZQorICAgIC8vIGFuZCBzaXplIHRoZSB3aWRnZXQgd2l0aCB0aGUg
Z2l2ZW4gYm91bmRzLCByZWxhdGl2ZSB0byB0aGUgc2NyZWVuLgorICAgIC8vIElmIGhhbmRsZUV4
dGVybmFsIGlzIHRydWUsIHRoZW4gZHJhd2luZyBhbmQgaW5wdXQgaGFuZGxpbmcgZm9yIHRoZQor
ICAgIC8vIHBvcHVwIHdpbGwgYmUgaGFuZGxlZCBieSB0aGUgZXh0ZXJuYWwgZW1iZWRkZXIuCisg
ICAgdmlydHVhbCB2b2lkIHBvcHVwT3BlbmVkKFBvcHVwQ29udGFpbmVyKiBwb3B1cENvbnRhaW5l
ciwgY29uc3QgSW50UmVjdCYgYm91bmRzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBi
b29sIGZvY3VzT25TaG93LCBib29sIGhhbmRsZUV4dGVybmFsKSA9IDA7CisKKyAgICAvLyBOb3Rp
ZmllcyBlbWJlZGRlciB0aGF0IHRoZSBzdGF0ZSBvZiBhbiBhY2Nlc3NpYmlsaXR5IG9iamVjdCBo
YXMgY2hhbmdlZC4KKyAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlQWNjZXNzaWJpbGl0eU9iamVj
dFN0YXRlKEFjY2Vzc2liaWxpdHlPYmplY3QqKSA9IDA7Cit9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCiAKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gNTQzNjEpCisrKyBXZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTAtMDIt
MDQgIENocmlzIEd1aWxsb3J5ICA8Y2hyaXMuZ3VpbGxvcnlAZ29vZ2xlLmNvbT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbQ2hyb21pdW1dIEFkZCBm
dW5jdGlvbiBmb3IgYWNjZXNzaWJpbGl0eSBvYmplY3Qgc3RhdGUgY2hhbmdlIG5vdGlmaWNhdGlv
bnMuCisgICAgICAgIAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MzQ0NjQKKworICAgICAgICAqIHB1YmxpYy9XZWJWaWV3Q2xpZW50Lmg6CisgICAgICAg
IChXZWJLaXQ6OldlYlZpZXdDbGllbnQ6OmRpZENoYW5nZUFjY2Vzc2liaWxpdHlPYmplY3RTdGF0
ZSk6CisgICAgICAgICogc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0
OjpDaHJvbWVDbGllbnRJbXBsOjpkaWRDaGFuZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0U3RhdGUpOgor
ICAgICAgICAqIHNyYy9DaHJvbWVDbGllbnRJbXBsLmg6CisKIDIwMTAtMDItMDQgIE5hdGUgQ2hh
cGluICA8amFwaGV0QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEaW1pdHJp
IEdsYXprb3YuCkluZGV4OiBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXdDbGllbnQuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXdDbGllbnQuaAkocmV2
aXNpb24gNTQyNDUpCisrKyBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXdDbGllbnQuaAko
d29ya2luZyBjb3B5KQpAQCAtMjUyLDYgKzI1Miw5IEBAIHB1YmxpYzoKICAgICAvLyBhY2Nlc3Np
YmlsaXR5IG9iamVjdC4KICAgICB2aXJ0dWFsIHZvaWQgZm9jdXNBY2Nlc3NpYmlsaXR5T2JqZWN0
KGNvbnN0IFdlYkFjY2Vzc2liaWxpdHlPYmplY3QmKSB7IH0KIAorICAgIC8vIE5vdGlmaWVzIGVt
YmVkZGVyIHRoYXQgdGhlIHN0YXRlIG9mIGFuIGFjY2Vzc2liaWxpdHkgb2JqZWN0IGhhcyBjaGFu
Z2VkLgorICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0U3RhdGUo
Y29uc3QgV2ViQWNjZXNzaWJpbGl0eU9iamVjdCYpIHsgfQorCiAKICAgICAvLyBEZXZlbG9wZXIg
dG9vbHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KIApJbmRleDogV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwCShyZXZp
c2lvbiA1NDI0NSkKKysrIFdlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTY1OSw2ICs2NTksMTMgQEAgdm9pZCBDaHJvbWVDbGllbnRJbXBs
OjpnZXRQb3B1cE1lbnVJbmZvKAogICAgIGluZm8tPml0ZW1zLnN3YXAob3V0cHV0SXRlbXMpOwog
fQogCit2b2lkIENocm9tZUNsaWVudEltcGw6OmRpZENoYW5nZUFjY2Vzc2liaWxpdHlPYmplY3RT
dGF0ZShBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmopCit7CisgICAgLy8gQWxlcnQgYXNzaXN0aXZl
IHRlY2hub2xvZ3kgYWJvdXQgdGhlIGFjY2Vzc2liaWxpdHkgb2JqZWN0IHN0YXRlIGNoYW5nZQor
ICAgIGlmIChvYmopCisgICAgICAgIG1fd2ViVmlldy0+Y2xpZW50KCktPmRpZENoYW5nZUFjY2Vz
c2liaWxpdHlPYmplY3RTdGF0ZShXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0KG9iaikpOworfQorCiAj
aWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCiBOb3RpZmljYXRpb25QcmVzZW50ZXIqIENocm9tZUNs
aWVudEltcGw6Om5vdGlmaWNhdGlvblByZXNlbnRlcigpIGNvbnN0CiB7CkluZGV4OiBXZWJLaXQv
Y2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hy
b21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuaAkocmV2aXNpb24gNTQyNDUpCisrKyBXZWJLaXQv
Y2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuaAkod29ya2luZyBjb3B5KQpAQCAtMzQsNiAr
MzQsNyBAQAogI2luY2x1ZGUgIkNocm9tZUNsaWVudENocm9taXVtLmgiCiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKK2NsYXNzIEFjY2Vzc2liaWxpdHlPYmplY3Q7CiBjbGFzcyBIVE1MUGFyc2VyUXVp
cmtzOwogY2xhc3MgUG9wdXBDb250YWluZXI7CiBjbGFzcyBTZWN1cml0eU9yaWdpbjsKQEAgLTEz
Miw2ICsxMzMsNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0
IFdlYkNvcmU6OkludFJlY3QmIGJvdW5kcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Ym9vbCBhY3RpdmF0YWJsZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBoYW5k
bGVFeHRlcm5hbGx5KTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlQWNjZXNzaWJpbGl0eU9i
amVjdFN0YXRlKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3QqKTsKIAogICAgIC8vIENocm9t
ZUNsaWVudEltcGw6CiAgICAgdm9pZCBzZXRDdXJzb3IoY29uc3QgV2ViQ3Vyc29ySW5mbyYgY3Vy
c29yKTsK
</data>
<flag name="review"
          id="30794"
          type_id="1"
          status="-"
          setter="eric"
    />
    <flag name="commit-queue"
          id="30795"
          type_id="3"
          status="-"
          setter="fishd"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>48374</attachid>
            <date>2010-02-08 16:18:09 -0800</date>
            <delta_ts>2010-02-09 20:01:54 -0800</delta_ts>
            <desc>Added the !obj-&gt;document() to fix debug ASSERTS</desc>
            <filename>StateChange.patch</filename>
            <type>text/plain</type>
            <size>7173</size>
            <attacher name="Chris Guillory">ctguil</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NDUxOCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTYgQEAKKzIwMTAtMDItMDggIENocmlzIEd1aWxsb3J5ICA8Y3RndWlsQGdvb2ds
ZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
W0Nocm9taXVtXSBOb3RpZnkgQ2hyb21lQ2xpZW50Q2hyb21pdW0gb2Ygc3RhdGUgY2hhbmdlIG5v
dGlmaWNhdGlvbnMuCisgICAgICAgIAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MzQ0NjQKKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvY2hyb21pdW0v
QVhPYmplY3RDYWNoZUNocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvQ2hyb21lQ2xp
ZW50Q2hyb21pdW0pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFBsYXRm
b3JtTm90aWZpY2F0aW9uKToKKyAgICAgICAgKiBwYWdlL2Nocm9taXVtL0Nocm9tZUNsaWVudENo
cm9taXVtLmg6CisKIDIwMTAtMDItMDggIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5j
b20+CiAKICAgICAgICAgQWRkcmVzc2luZyByZXZpZXcgZmVlZGJhY2suCkluZGV4OiBXZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvY2hyb21pdW0vQVhPYmplY3RDYWNoZUNocm9taXVtLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvY2hyb21pdW0vQVhPYmplY3RDYWNoZUNocm9t
aXVtLmNwcAkocmV2aXNpb24gNTQ0OTMpCisrKyBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvY2hyb21p
dW0vQVhPYmplY3RDYWNoZUNocm9taXVtLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYsMTEgKzI2
LDIyIEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgi
Ci0KICNpbmNsdWRlICJBY2Nlc3NpYmlsaXR5T2JqZWN0LmgiCisjaW5jbHVkZSAiQ2hyb21lLmgi
CisjaW5jbHVkZSAiQ2hyb21lQ2xpZW50Q2hyb21pdW0uaCIKKyNpbmNsdWRlICJGcmFtZVZpZXcu
aCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitzdGF0aWMgQ2hyb21lQ2xpZW50Q2hyb21pdW0q
IHRvQ2hyb21lQ2xpZW50Q2hyb21pdW0oRnJhbWVWaWV3KiB2aWV3KQoreworICAgIFBhZ2UqIHBh
Z2UgPSB2aWV3LT5mcmFtZSgpID8gdmlldy0+ZnJhbWUoKS0+cGFnZSgpIDogMDsKKyAgICBpZiAo
IXBhZ2UpCisgICAgICAgIHJldHVybiAwOworCisgICAgcmV0dXJuIHN0YXRpY19jYXN0PENocm9t
ZUNsaWVudENocm9taXVtKj4ocGFnZS0+Y2hyb21lKCktPmNsaWVudCgpKTsKK30KKwogdm9pZCBB
WE9iamVjdENhY2hlOjpkZXRhY2hXcmFwcGVyKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaikKIHsK
ICAgICAvLyBJbiBDaHJvbWl1bSwgQWNjZXNzaWJpbGl0eU9iamVjdHMgYXJlIHdyYXBwZWQgbGF6
aWx5LgpAQCAtNDMsOCArNTQsMTcgQEAgdm9pZCBBWE9iamVjdENhY2hlOjphdHRhY2hXcmFwcGVy
KEFjY2VzcwogICAgIC8vIEluIENocm9taXVtLCBBY2Nlc3NpYmlsaXR5T2JqZWN0cyBhcmUgd3Jh
cHBlZCBsYXppbHkuCiB9CiAKLXZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFBsYXRmb3JtTm90aWZp
Y2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWE5vdGlmaWNhdGlvbikKLXsKK3ZvaWQgQVhP
YmplY3RDYWNoZTo6cG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3Qq
IG9iaiwgQVhOb3RpZmljYXRpb24gbm90aWZpY2F0aW9uKQoreworICAgIGlmIChub3RpZmljYXRp
b24gIT0gQVhDaGVja2VkU3RhdGVDaGFuZ2VkKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAo
IW9iaiB8fCAhb2JqLT5kb2N1bWVudCgpIHx8ICFvYmotPmRvY3VtZW50RnJhbWVWaWV3KCkpCisg
ICAgICAgIHJldHVybjsKKworICAgIENocm9tZUNsaWVudENocm9taXVtKiBjbGllbnQgPSB0b0No
cm9tZUNsaWVudENocm9taXVtKG9iai0+ZG9jdW1lbnRGcmFtZVZpZXcoKSk7CisgICAgaWYgKGNs
aWVudCkKKyAgICAgICAgY2xpZW50LT5kaWRDaGFuZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0U3RhdGUo
b2JqKTsKIH0KIAogdm9pZCBBWE9iamVjdENhY2hlOjpoYW5kbGVGb2N1c2VkVUlFbGVtZW50Q2hh
bmdlZChSZW5kZXJPYmplY3QqLCBSZW5kZXJPYmplY3QqKQpJbmRleDogV2ViQ29yZS9wYWdlL2No
cm9taXVtL0Nocm9tZUNsaWVudENocm9taXVtLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdl
L2Nocm9taXVtL0Nocm9tZUNsaWVudENocm9taXVtLmgJKHJldmlzaW9uIDU0NDkzKQorKysgV2Vi
Q29yZS9wYWdlL2Nocm9taXVtL0Nocm9tZUNsaWVudENocm9taXVtLmgJKHdvcmtpbmcgY29weSkK
QEAgLTM1LDIwICszNSwyNCBAQAogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKLSAgICBjbGFzcyBJbnRSZWN0OwotICAgIGNsYXNzIFBvcHVwQ29udGFpbmVy
OworY2xhc3MgQWNjZXNzaWJpbGl0eU9iamVjdDsKK2NsYXNzIEludFJlY3Q7CitjbGFzcyBQb3B1
cENvbnRhaW5lcjsKIAotICAgIC8vIENvbnRhaW5zIENocm9taXVtLXNwZWNpZmljIGV4dGVuc2lv
bnMgdG8gdGhlIENocm9tZUNsaWVudC4gIE9ubHkgcHV0Ci0gICAgLy8gdGhpbmdzIGhlcmUgdGhh
dCBkb24ndCBtYWtlIHNlbnNlIGZvciBvdGhlciBwb3J0cy4KLSAgICBjbGFzcyBDaHJvbWVDbGll
bnRDaHJvbWl1bSA6IHB1YmxpYyBDaHJvbWVDbGllbnQgewotICAgIHB1YmxpYzoKLSAgICAgICAg
Ly8gTm90aWZpZXMgdGhlIGNsaWVudCBvZiBhIG5ldyBwb3B1cCB3aWRnZXQuICBUaGUgY2xpZW50
IHNob3VsZCBwbGFjZQotICAgICAgICAvLyBhbmQgc2l6ZSB0aGUgd2lkZ2V0IHdpdGggdGhlIGdp
dmVuIGJvdW5kcywgcmVsYXRpdmUgdG8gdGhlIHNjcmVlbi4KLSAgICAgICAgLy8gSWYgaGFuZGxl
RXh0ZXJuYWwgaXMgdHJ1ZSwgdGhlbiBkcmF3aW5nIGFuZCBpbnB1dCBoYW5kbGluZyBmb3IgdGhl
Ci0gICAgICAgIC8vIHBvcHVwIHdpbGwgYmUgaGFuZGxlZCBieSB0aGUgZXh0ZXJuYWwgZW1iZWRk
ZXIuCi0gICAgICAgIHZpcnR1YWwgdm9pZCBwb3B1cE9wZW5lZChQb3B1cENvbnRhaW5lciogcG9w
dXBDb250YWluZXIsIGNvbnN0IEludFJlY3QmIGJvdW5kcywKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGJvb2wgZm9jdXNPblNob3csIGJvb2wgaGFuZGxlRXh0ZXJuYWwpID0gMDsK
LSAgICB9OworLy8gQ29udGFpbnMgQ2hyb21pdW0tc3BlY2lmaWMgZXh0ZW5zaW9ucyB0byB0aGUg
Q2hyb21lQ2xpZW50LiAgT25seSBwdXQKKy8vIHRoaW5ncyBoZXJlIHRoYXQgZG9uJ3QgbWFrZSBz
ZW5zZSBmb3Igb3RoZXIgcG9ydHMuCitjbGFzcyBDaHJvbWVDbGllbnRDaHJvbWl1bSA6IHB1Ymxp
YyBDaHJvbWVDbGllbnQgeworcHVibGljOgorICAgIC8vIE5vdGlmaWVzIHRoZSBjbGllbnQgb2Yg
YSBuZXcgcG9wdXAgd2lkZ2V0LiAgVGhlIGNsaWVudCBzaG91bGQgcGxhY2UKKyAgICAvLyBhbmQg
c2l6ZSB0aGUgd2lkZ2V0IHdpdGggdGhlIGdpdmVuIGJvdW5kcywgcmVsYXRpdmUgdG8gdGhlIHNj
cmVlbi4KKyAgICAvLyBJZiBoYW5kbGVFeHRlcm5hbCBpcyB0cnVlLCB0aGVuIGRyYXdpbmcgYW5k
IGlucHV0IGhhbmRsaW5nIGZvciB0aGUKKyAgICAvLyBwb3B1cCB3aWxsIGJlIGhhbmRsZWQgYnkg
dGhlIGV4dGVybmFsIGVtYmVkZGVyLgorICAgIHZpcnR1YWwgdm9pZCBwb3B1cE9wZW5lZChQb3B1
cENvbnRhaW5lciogcG9wdXBDb250YWluZXIsIGNvbnN0IEludFJlY3QmIGJvdW5kcywKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBmb2N1c09uU2hvdywgYm9vbCBoYW5kbGVFeHRl
cm5hbCkgPSAwOworCisgICAgLy8gTm90aWZpZXMgZW1iZWRkZXIgdGhhdCB0aGUgc3RhdGUgb2Yg
YW4gYWNjZXNzaWJpbGl0eSBvYmplY3QgaGFzIGNoYW5nZWQuCisgICAgdmlydHVhbCB2b2lkIGRp
ZENoYW5nZUFjY2Vzc2liaWxpdHlPYmplY3RTdGF0ZShBY2Nlc3NpYmlsaXR5T2JqZWN0KikgPSAw
OworfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCkluZGV4OiBXZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHJldmlz
aW9uIDU0NTE4KQorKysgV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDE4IEBACisyMDEwLTAyLTA4ICBDaHJpcyBHdWlsbG9yeSAgPGN0Z3VpbEBnb29n
bGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFtDaHJvbWl1bV0gQWRkIGZ1bmN0aW9uIGZvciBhY2Nlc3NpYmlsaXR5IG9iamVjdCBzdGF0ZSBj
aGFuZ2Ugbm90aWZpY2F0aW9ucy4KKyAgICAgICAgCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNDQ2NAorCisgICAgICAgICogZ3lwX3dlYmtpdDoKKyAg
ICAgICAgKiBwdWJsaWMvV2ViVmlld0NsaWVudC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3
Q2xpZW50OjpkaWRDaGFuZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0U3RhdGUpOgorICAgICAgICAqIHNy
Yy9DaHJvbWVDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50SW1w
bDo6ZGlkQ2hhbmdlQWNjZXNzaWJpbGl0eU9iamVjdFN0YXRlKToKKyAgICAgICAgKiBzcmMvQ2hy
b21lQ2xpZW50SW1wbC5oOgorCiAyMDEwLTAyLTA4ICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5A
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhdmlkIExldmluLgpJbmRleDog
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xpZW50LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
S2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xpZW50LmgJKHJldmlzaW9uIDU0NDkzKQorKysg
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAg
LTI1Miw2ICsyNTIsOSBAQCBwdWJsaWM6CiAgICAgLy8gYWNjZXNzaWJpbGl0eSBvYmplY3QuCiAg
ICAgdmlydHVhbCB2b2lkIGZvY3VzQWNjZXNzaWJpbGl0eU9iamVjdChjb25zdCBXZWJBY2Nlc3Np
YmlsaXR5T2JqZWN0JikgeyB9CiAKKyAgICAvLyBOb3RpZmllcyBlbWJlZGRlciB0aGF0IHRoZSBz
dGF0ZSBvZiBhbiBhY2Nlc3NpYmlsaXR5IG9iamVjdCBoYXMgY2hhbmdlZC4KKyAgICB2aXJ0dWFs
IHZvaWQgZGlkQ2hhbmdlQWNjZXNzaWJpbGl0eU9iamVjdFN0YXRlKGNvbnN0IFdlYkFjY2Vzc2li
aWxpdHlPYmplY3QmKSB7IH0KKwogCiAgICAgLy8gRGV2ZWxvcGVyIHRvb2xzIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKSW5kZXg6IFdlYktp
dC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0
L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcAkocmV2aXNpb24gNTQ0OTMpCisrKyBX
ZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC02NTksNiArNjU5LDE0IEBAIHZvaWQgQ2hyb21lQ2xpZW50SW1wbDo6Z2V0UG9wdXBNZW51SW5m
bygKICAgICBpbmZvLT5pdGVtcy5zd2FwKG91dHB1dEl0ZW1zKTsKIH0KIAordm9pZCBDaHJvbWVD
bGllbnRJbXBsOjpkaWRDaGFuZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0U3RhdGUoQWNjZXNzaWJpbGl0
eU9iamVjdCogb2JqKQoreworICAgIC8vIEFsZXJ0IGFzc2lzdGl2ZSB0ZWNobm9sb2d5IGFib3V0
IHRoZSBhY2Nlc3NpYmlsaXR5IG9iamVjdCBzdGF0ZSBjaGFuZ2UKKyAgICBpZiAob2JqKQorICAg
ICAgICBtX3dlYlZpZXctPmNsaWVudCgpLT5kaWRDaGFuZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0U3Rh
dGUoV2ViQWNjZXNzaWJpbGl0eU9iamVjdChvYmopKTsKK30KKworCiAjaWYgRU5BQkxFKE5PVElG
SUNBVElPTlMpCiBOb3RpZmljYXRpb25QcmVzZW50ZXIqIENocm9tZUNsaWVudEltcGw6Om5vdGlm
aWNhdGlvblByZXNlbnRlcigpIGNvbnN0CiB7CkluZGV4OiBXZWJLaXQvY2hyb21pdW0vc3JjL0No
cm9tZUNsaWVudEltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9t
ZUNsaWVudEltcGwuaAkocmV2aXNpb24gNTQ0OTMpCisrKyBXZWJLaXQvY2hyb21pdW0vc3JjL0No
cm9tZUNsaWVudEltcGwuaAkod29ya2luZyBjb3B5KQpAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1
ZGUgIkNocm9tZUNsaWVudENocm9taXVtLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNz
IEFjY2Vzc2liaWxpdHlPYmplY3Q7CiBjbGFzcyBIVE1MUGFyc2VyUXVpcmtzOwogY2xhc3MgUG9w
dXBDb250YWluZXI7CiBjbGFzcyBTZWN1cml0eU9yaWdpbjsKQEAgLTEzMiw2ICsxMzMsNyBAQCBw
dWJsaWM6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFdlYkNvcmU6OkludFJl
Y3QmIGJvdW5kcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBhY3RpdmF0YWJs
ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBoYW5kbGVFeHRlcm5hbGx5KTsK
KyAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlQWNjZXNzaWJpbGl0eU9iamVjdFN0YXRlKFdlYkNv
cmU6OkFjY2Vzc2liaWxpdHlPYmplY3QqKTsKIAogICAgIC8vIENocm9tZUNsaWVudEltcGw6CiAg
ICAgdm9pZCBzZXRDdXJzb3IoY29uc3QgV2ViQ3Vyc29ySW5mbyYgY3Vyc29yKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>