<?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>35811</bug_id>
          
          <creation_ts>2010-03-05 14:22:21 -0800</creation_ts>
          <short_desc>[chromium] need DragImage implementation</short_desc>
          <delta_ts>2010-04-06 12:17:27 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Platform</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>37069</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Evan Stade">estade</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>cjerdonek</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>fishd</cc>
    
    <cc>hamaji</cc>
    
    <cc>pfeldman</cc>
    
    <cc>thakis</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>196662</commentid>
    <comment_count>0</comment_count>
    <who name="Evan Stade">estade</who>
    <bug_when>2010-03-05 14:22:21 -0800</bug_when>
    <thetext>chromium currently has a stubbed DragImage implementation. We should add one based on Skia.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>196699</commentid>
    <comment_count>1</comment_count>
      <attachid>50127</attachid>
    <who name="Evan Stade">estade</who>
    <bug_when>2010-03-05 14:53:44 -0800</bug_when>
    <thetext>Created attachment 50127
try1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>196705</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-03-05 14:58:03 -0800</bug_when>
    <thetext>Attachment 50127 did not pass style-queue:

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


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>196709</commentid>
    <comment_count>3</comment_count>
      <attachid>50129</attachid>
    <who name="Evan Stade">estade</who>
    <bug_when>2010-03-05 14:59:53 -0800</bug_when>
    <thetext>Created attachment 50129
style</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>196714</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-03-05 15:08:36 -0800</bug_when>
    <thetext>Attachment 50127 did not build on chromium:
Build output: http://webkit-commit-queue.appspot.com/results/335639</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>196724</commentid>
    <comment_count>5</comment_count>
      <attachid>50131</attachid>
    <who name="Evan Stade">estade</who>
    <bug_when>2010-03-05 15:15:31 -0800</bug_when>
    <thetext>Created attachment 50131
forgot to svn add</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>196729</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-03-05 15:20:57 -0800</bug_when>
    <thetext>Attachment 50131 did not pass style-queue:

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


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>196732</commentid>
    <comment_count>7</comment_count>
      <attachid>50132</attachid>
    <who name="Evan Stade">estade</who>
    <bug_when>2010-03-05 15:23:09 -0800</bug_when>
    <thetext>Created attachment 50132
style, 2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>196733</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-03-05 15:26:46 -0800</bug_when>
    <thetext>Attachment 50132 did not pass style-queue:

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


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>196734</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-03-05 15:27:48 -0800</bug_when>
    <thetext>Attachment 50129 did not build on chromium:
Build output: http://webkit-commit-queue.appspot.com/results/336632</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>196760</commentid>
    <comment_count>10</comment_count>
      <attachid>50136</attachid>
    <who name="Evan Stade">estade</who>
    <bug_when>2010-03-05 16:01:02 -0800</bug_when>
    <thetext>Created attachment 50136
mac build fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>197257</commentid>
    <comment_count>11</comment_count>
      <attachid>50241</attachid>
    <who name="Evan Stade">estade</who>
    <bug_when>2010-03-08 11:39:11 -0800</bug_when>
    <thetext>Created attachment 50241
review comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>197319</commentid>
    <comment_count>12</comment_count>
      <attachid>50241</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-03-08 14:29:05 -0800</bug_when>
    <thetext>Comment on attachment 50241
review comments

&gt; Index: WebCore/platform/chromium/DragImageChromium.cpp
...
&gt; +#if OS(DARWIN)
&gt; +#include &quot;skia/ext/skia_utils_mac.h&quot;
&gt; +#endif

Can you use CG in the Mac port instead?  We should really avoid using
skia/ext in WebCore.  It introduces a circular dependency between the
repositories!


&gt; +DragImageRef createDragImageFromImage(Image* image)
&gt; +{
&gt; +#if OS(DARWIN)
&gt; +    SkBitmap bitmap = gfx::CGImageToSkBitmap(image-&gt;getCGImageRef());

please avoid adding gfx:: namespace stuff to WebCore!  that stuff is
chromium only.


&gt; Index: WebKit/chromium/ChangeLog
...
&gt; +        * public/WebDragImageRef.h: Added.
&gt; +        * src/DragClientImpl.cpp:
&gt; +        (WebKit::DragClientImpl::startDrag):
&gt; +        * src/WebViewImpl.cpp:
&gt; +        (WebKit::WebViewImpl::startDragging):
&gt; +        * src/WebViewImpl.h:

is there some other public interface change missing?  I don&apos;t see
any public API that uses WebDragImageRef.

also, please see WebImage.h to note how things differ between
WEBKIT_USING_SKIA and WEBKIT_USING_CG.

It seems like WebDragImageRef should be made consistent with
WebImage.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>197355</commentid>
    <comment_count>13</comment_count>
    <who name="Evan Stade">estade</who>
    <bug_when>2010-03-08 15:27:42 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; (From update of attachment 50241 [details])
&gt; &gt; Index: WebCore/platform/chromium/DragImageChromium.cpp
&gt; ...
&gt; &gt; +#if OS(DARWIN)
&gt; &gt; +#include &quot;skia/ext/skia_utils_mac.h&quot;
&gt; &gt; +#endif
&gt; 
&gt; Can you use CG in the Mac port instead?  We should really avoid using
&gt; skia/ext in WebCore.  It introduces a circular dependency between the
&gt; repositories!

we can use CG for Mac, but then we have to implement DragImageChromium twice, and fork a lot of code on the chrome side of this patch.

&gt; 
&gt; 
&gt; &gt; +DragImageRef createDragImageFromImage(Image* image)
&gt; &gt; +{
&gt; &gt; +#if OS(DARWIN)
&gt; &gt; +    SkBitmap bitmap = gfx::CGImageToSkBitmap(image-&gt;getCGImageRef());
&gt; 
&gt; please avoid adding gfx:: namespace stuff to WebCore!  that stuff is
&gt; chromium only.

After talking to several mac people, this is the only way I could find to convert CG to SkBitmap. Is there a better way? If not I can leave the mac side unimplemented for the time being.

&gt; 
&gt; 
&gt; &gt; Index: WebKit/chromium/ChangeLog
&gt; ...
&gt; &gt; +        * public/WebDragImageRef.h: Added.
&gt; &gt; +        * src/DragClientImpl.cpp:
&gt; &gt; +        (WebKit::DragClientImpl::startDrag):
&gt; &gt; +        * src/WebViewImpl.cpp:
&gt; &gt; +        (WebKit::WebViewImpl::startDragging):
&gt; &gt; +        * src/WebViewImpl.h:
&gt; 
&gt; is there some other public interface change missing?  I don&apos;t see
&gt; any public API that uses WebDragImageRef.
&gt; 
&gt; also, please see WebImage.h to note how things differ between
&gt; WEBKIT_USING_SKIA and WEBKIT_USING_CG.
&gt; 
&gt; It seems like WebDragImageRef should be made consistent with
&gt; WebImage.

Yes, the change to WebViewClient::StartDragging is missing (see FIXME in WebViewImpl). That is not part of this patch because I am breaking it up into multiple pieces.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>197423</commentid>
    <comment_count>14</comment_count>
      <attachid>50269</attachid>
    <who name="Evan Stade">estade</who>
    <bug_when>2010-03-08 19:24:49 -0800</bug_when>
    <thetext>Created attachment 50269
use WebImage, no mac implementation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>197425</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-03-08 19:30:01 -0800</bug_when>
    <thetext>Attachment 50269 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
WARNING: Could not read file. Skipping: &quot;WebCore/platform/chromium/DragImageChromium.cpp&quot;
WebCore/platform/chromium/DragImageChromiumSkia.cpp:32:  You should add a blank line after implementation file&apos;s own header.  [build/include_order] [4]
WebCore/platform/chromium/DragImageChromiumSkia.cpp:38:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 2 in 12 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>197897</commentid>
    <comment_count>16</comment_count>
      <attachid>50269</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-03-09 22:36:43 -0800</bug_when>
    <thetext>Comment on attachment 50269
use WebImage, no mac implementation

&gt; Index: WebKit/chromium/public/WebViewClient.h
...
&gt;      virtual void startDragging(
&gt; -        const WebPoint&amp; from, const WebDragData&amp;, WebDragOperationsMask) { }
&gt; +        const WebDragData&amp;, WebDragOperationsMask, const WebImage&amp;, const WebPoint&amp;) { }

Can you avoid making this a two-sided patch landing by continuing
to support the old API temporarily?


&gt; Index: WebKit/chromium/src/DragClientImpl.cpp
...
&gt; +#if WEBKIT_USING_SKIA
&gt; +    m_webView-&gt;startDragging(
&gt; +        dragData, static_cast&lt;WebDragOperationsMask&gt;(dragOperationMask),
&gt; +        WebImage(*dragImage), offsetPoint);
&gt; +#else
&gt; +    // FIXME

^^^ Can you add a comment about this FIXME?  Something about needing
to pass a non-empty image perhaps?


Are the style bot issues something to worry about?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>198160</commentid>
    <comment_count>17</comment_count>
    <who name="Evan Stade">estade</who>
    <bug_when>2010-03-10 08:55:51 -0800</bug_when>
    <thetext>(In reply to comment #16)
&gt; (From update of attachment 50269 [details])
&gt; &gt; Index: WebKit/chromium/public/WebViewClient.h
&gt; ...
&gt; &gt;      virtual void startDragging(
&gt; &gt; -        const WebPoint&amp; from, const WebDragData&amp;, WebDragOperationsMask) { }
&gt; &gt; +        const WebDragData&amp;, WebDragOperationsMask, const WebImage&amp;, const WebPoint&amp;) { }
&gt; 
&gt; Can you avoid making this a two-sided patch landing by continuing
&gt; to support the old API temporarily?

we can land the chrome side first now without anything breaking. Sorry, I should have mentioned that here. I only mentioned that at http://codereview.chromium.org/668125/show. So perhaps it would be best to review that side of it first?

&gt; 
&gt; 
&gt; &gt; Index: WebKit/chromium/src/DragClientImpl.cpp
&gt; ...
&gt; &gt; +#if WEBKIT_USING_SKIA
&gt; &gt; +    m_webView-&gt;startDragging(
&gt; &gt; +        dragData, static_cast&lt;WebDragOperationsMask&gt;(dragOperationMask),
&gt; &gt; +        WebImage(*dragImage), offsetPoint);
&gt; &gt; +#else
&gt; &gt; +    // FIXME
&gt; 
&gt; ^^^ Can you add a comment about this FIXME?  Something about needing
&gt; to pass a non-empty image perhaps?

ok

&gt; 
&gt; 
&gt; Are the style bot issues something to worry about?

yes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>200571</commentid>
    <comment_count>18</comment_count>
      <attachid>50868</attachid>
    <who name="Evan Stade">estade</who>
    <bug_when>2010-03-16 19:28:03 -0700</bug_when>
    <thetext>Created attachment 50868
comment + style

the chrome side was landed. I have updated the patch. Possible to take another look? thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>200573</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-03-16 19:35:24 -0700</bug_when>
    <thetext>Attachment 50868 did not build on chromium:
Build output: http://webkit-commit-queue.appspot.com/results/892042</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>200796</commentid>
    <comment_count>20</comment_count>
      <attachid>50908</attachid>
    <who name="Evan Stade">estade</who>
    <bug_when>2010-03-17 08:28:43 -0700</bug_when>
    <thetext>Created attachment 50908
try to fix mysterious build failure

don&apos;t really understand the build failure. The chromium trybots like the patch ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>200802</commentid>
    <comment_count>21</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-03-17 08:33:01 -0700</bug_when>
    <thetext>Attachment 50908 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
WARNING: Could not read file. Skipping: &quot;WebCore/platform/chromium/DragImageChromium.cpp&quot;
WebCore/platform/chromium/DragImageChromiumSkia.cpp:32:  You should add a blank line after implementation file&apos;s own header.  [build/include_order] [4]
WebCore/platform/chromium/DragImageChromiumSkia.cpp:38:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 2 in 6 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>200808</commentid>
    <comment_count>22</comment_count>
      <attachid>50910</attachid>
    <who name="Evan Stade">estade</who>
    <bug_when>2010-03-17 08:41:21 -0700</bug_when>
    <thetext>Created attachment 50910
fixed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>200811</commentid>
    <comment_count>23</comment_count>
      <attachid>50912</attachid>
    <who name="Evan Stade">estade</who>
    <bug_when>2010-03-17 08:43:05 -0700</bug_when>
    <thetext>Created attachment 50912
correct relative paths</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>206270</commentid>
    <comment_count>24</comment_count>
      <attachid>50912</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-03-30 17:11:56 -0700</bug_when>
    <thetext>Comment on attachment 50912
correct relative paths

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>207343</commentid>
    <comment_count>25</comment_count>
      <attachid>50912</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-04-01 13:09:11 -0700</bug_when>
    <thetext>Comment on attachment 50912
correct relative paths

Rejecting patch 50912 from commit-queue.

Failed to run &quot;[&apos;/Users/eseidel/Projects/CommitQueue/WebKitTools/Scripts/svn-apply&apos;, &apos;--reviewer&apos;, &apos;Darin Fisher&apos;, &apos;--force&apos;]&quot; exit_code: 1
Last 500 characters of output:
ching file WebKit/chromium/src/DragClientImpl.cpp
patching file WebKit/chromium/src/WebViewImpl.cpp
Hunk #2 succeeded at 1933 (offset 49 lines).
patching file WebKit/chromium/public/WebViewClient.h
Hunk #1 FAILED at 47.
Hunk #2 succeeded at 223 (offset 3 lines).
1 out of 2 hunks FAILED -- saving rejects to file WebKit/chromium/public/WebViewClient.h.rej
patching file WebCore/ChangeLog
Hunk #1 succeeded at 1 with fuzz 3.
patching file WebKit/chromium/ChangeLog
Hunk #1 succeeded at 1 with fuzz 3.

Full output: http://webkit-commit-queue.appspot.com/results/1628184</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>207418</commentid>
    <comment_count>26</comment_count>
      <attachid>52339</attachid>
    <who name="Evan Stade">estade</who>
    <bug_when>2010-04-01 14:43:34 -0700</bug_when>
    <thetext>Created attachment 52339
re-synced

synced to ToT</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>207731</commentid>
    <comment_count>27</comment_count>
      <attachid>52339</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-04-01 23:54:54 -0700</bug_when>
    <thetext>Comment on attachment 52339
re-synced

Rejecting patch 52339 from commit-queue.

Unexpected failure when landing patch!  Please file a bug against webkit-patch.
Failed to run &quot;[&apos;WebKitTools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-commit-queue.appspot.com&apos;, &apos;land-attachment&apos;, &apos;--force-clean&apos;, &apos;--non-interactive&apos;, &apos;--build-style=both&apos;, &apos;--quiet&apos;, &apos;52339&apos;, &apos;--parent-command=commit-queue&apos;, &apos;--no-update&apos;]&quot; exit_code: 1
Last 500 characters of output:
webkitpy/tool/commands/stepsequence.py&quot;, line 60, in _run
    step(tool, options).run(state)
  File &quot;/Users/eseidel/Projects/CommitQueue/WebKitTools/Scripts/webkitpy/tool/steps/validatereviewer.py&quot;, line 59, in run
    if self._has_valid_reviewer(changelog_entry):
  File &quot;/Users/eseidel/Projects/CommitQueue/WebKitTools/Scripts/webkitpy/tool/steps/validatereviewer.py&quot;, line 41, in _has_valid_reviewer
    if changelog_entry.reviewer():
AttributeError: &apos;NoneType&apos; object has no attribute &apos;reviewer&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>207734</commentid>
    <comment_count>28</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-04-02 00:00:39 -0700</bug_when>
    <thetext>That was not a very elegant error on our part.

webkitpy.common.system.executive.ScriptError: Failed to parse ChangeLog: /Projects/WebKit/WebKit/chromium/ChangeLog

Seems to be the problem.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>207735</commentid>
    <comment_count>29</comment_count>
      <attachid>52339</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-04-02 00:01:18 -0700</bug_when>
    <thetext>Comment on attachment 52339
re-synced

Looks like your chromium changelog has a leading + sign.  That would throw our ChangeLog parser off. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>207946</commentid>
    <comment_count>30</comment_count>
      <attachid>52426</attachid>
    <who name="Evan Stade">estade</who>
    <bug_when>2010-04-02 11:07:08 -0700</bug_when>
    <thetext>Created attachment 52426
plus--</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>208003</commentid>
    <comment_count>31</comment_count>
      <attachid>52426</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-04-02 12:31:52 -0700</bug_when>
    <thetext>Comment on attachment 52426
plus--

Rejecting patch 52426 from commit-queue.

Unexpected failure when landing patch!  Please file a bug against webkit-patch.
Failed to run &quot;[&apos;WebKitTools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-commit-queue.appspot.com&apos;, &apos;land-attachment&apos;, &apos;--force-clean&apos;, &apos;--non-interactive&apos;, &apos;--ignore-builders&apos;, &apos;--build-style=both&apos;, &apos;--quiet&apos;, &apos;52426&apos;, &apos;--parent-command=commit-queue&apos;, &apos;--no-update&apos;]&quot; exit_code: 1
Last 500 characters of output:
webkitpy/tool/commands/stepsequence.py&quot;, line 60, in _run
    step(tool, options).run(state)
  File &quot;/Users/eseidel/Projects/CommitQueue/WebKitTools/Scripts/webkitpy/tool/steps/validatereviewer.py&quot;, line 59, in run
    if self._has_valid_reviewer(changelog_entry):
  File &quot;/Users/eseidel/Projects/CommitQueue/WebKitTools/Scripts/webkitpy/tool/steps/validatereviewer.py&quot;, line 41, in _has_valid_reviewer
    if changelog_entry.reviewer():
AttributeError: &apos;NoneType&apos; object has no attribute &apos;reviewer&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>208008</commentid>
    <comment_count>32</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-04-02 12:44:01 -0700</bug_when>
    <thetext>This looks like another ChangeLog parsing problem.  Again, my apologies for our poor error reporting.

You can test this locally by running:
webkit-patch commit-message</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>208037</commentid>
    <comment_count>33</comment_count>
      <attachid>52445</attachid>
    <who name="Evan Stade">estade</who>
    <bug_when>2010-04-02 13:23:00 -0700</bug_when>
    <thetext>Created attachment 52445
space--

thanks for the tip

Parsing ChangeLog: /usr/local/google/WebKit/WebKit/chromium/ChangeLog
Parsing ChangeLog: /usr/local/google/WebKit/WebCore/ChangeLog
2010-04-01  Evan Stade  &lt;estade@chromium.org&gt;

        Reviewed by NOBODY (OOPS!).

        [chromium] need DragImage implementation
        https://bugs.webkit.org/show_bug.cgi?id=35811

        Use the DragImageRef that the DragController passes to us.

        * public/WebViewClient.h:
        (WebKit::WebViewClient::startDragging):
        * src/DragClientImpl.cpp:
        (WebKit::DragClientImpl::startDrag):
        * src/WebViewImpl.cpp:
        (WebKit::WebViewImpl::startDragging):
        * src/WebViewImpl.h:
2010-04-01  Evan Stade  &lt;estade@chromium.org&gt;

        Reviewed by NOBODY (OOPS!).

        [chromium] need DragImage implementation
        https://bugs.webkit.org/show_bug.cgi?id=35811

        Basic implementation using SkBitmap. Transformations are not supported
        yet. No implementation for mac.

        * WebCore.gyp/WebCore.gyp:
        * WebCore.gypi:
        * platform/chromium/DragImageChromium.cpp:
        * platform/chromium/DragImageRef.h:</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>208040</commentid>
    <comment_count>34</comment_count>
      <attachid>52445</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-04-02 13:29:51 -0700</bug_when>
    <thetext>Comment on attachment 52445
space--

Sorry our tools have been such trouble.  /me crosses fingers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>208117</commentid>
    <comment_count>35</comment_count>
      <attachid>52445</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-04-02 15:48:14 -0700</bug_when>
    <thetext>Comment on attachment 52445
space--

Clearing flags on attachment: 52445

Committed r57028: &lt;http://trac.webkit.org/changeset/57028&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>208118</commentid>
    <comment_count>36</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-04-02 15:48:21 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>208124</commentid>
    <comment_count>37</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-04-02 16:00:27 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/57028 might have broken Chromium Linux Release</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>208143</commentid>
    <comment_count>38</comment_count>
      <attachid>52465</attachid>
    <who name="Evan Stade">estade</who>
    <bug_when>2010-04-02 16:40:55 -0700</bug_when>
    <thetext>Created attachment 52465
svn add

these two files got lost in the shuffle</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>208146</commentid>
    <comment_count>39</comment_count>
      <attachid>52465</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-04-02 16:45:35 -0700</bug_when>
    <thetext>Comment on attachment 52465
svn add

Clearing flags on attachment: 52465

Committed r57032: &lt;http://trac.webkit.org/changeset/57032&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>208147</commentid>
    <comment_count>40</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-04-02 16:45:43 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>208255</commentid>
    <comment_count>41</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-04-03 00:53:29 -0700</bug_when>
    <thetext>Just about drag-n-drop related layout test is now failing for the chromium build.  I think this needs to be reverted.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>208325</commentid>
    <comment_count>42</comment_count>
    <who name="Nico Weber">thakis</who>
    <bug_when>2010-04-03 21:43:11 -0700</bug_when>
    <thetext>Mac side at https://bugs.webkit.org/show_bug.cgi?id=37069 .</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>208360</commentid>
    <comment_count>43</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-04-04 07:09:04 -0700</bug_when>
    <thetext>(In reply to comment #41)
&gt; Just about drag-n-drop related layout test is now failing for the chromium
&gt; build.  I think this needs to be reverted.

I am on duty starting on Monday. Will revert this unless tests get fixed by Monday morning GMT.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>208362</commentid>
    <comment_count>44</comment_count>
    <who name="Nico Weber">thakis</who>
    <bug_when>2010-04-04 09:22:18 -0700</bug_when>
    <thetext>I can look after the tests if someone tells me where the list of now failing tests is.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>208363</commentid>
    <comment_count>45</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2010-04-04 09:25:32 -0700</bug_when>
    <thetext>http://build.chromium.org/buildbot/waterfall.fyi/waterfall?branch=&amp;builder=Webkit+(webkit.org)&amp;builder=Webkit+Linux+(webkit.org)&amp;builder=Webkit+Mac+(webkit.org)&amp;builder=XP+Perf+(webkit.org)(1)&amp;builder=XP+Perf+(webkit.org)(2)&amp;builder=Linux+Perf+(webkit.org)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>208367</commentid>
    <comment_count>46</comment_count>
    <who name="Nico Weber">thakis</who>
    <bug_when>2010-04-04 10:29:26 -0700</bug_when>
    <thetext>http://codereview.chromium.org/1591013 should do the trick.

I&apos;m having troubles running layout tests locally (see my mail to chromium-dev), so I&apos;m not 100% sure that it does, but it seems very likely that that&apos;s the cause.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>208399</commentid>
    <comment_count>47</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-04-04 23:31:34 -0700</bug_when>
    <thetext>Rolled out both r57028 and r57032.

Committing to http://svn.webkit.org/repository/webkit/trunk ...
	R	WebCore/platform/chromium/DragImageChromiumMac.cpp =&gt; WebCore/platform/chromium/DragImageChromium.cpp
	D	WebCore/platform/chromium/DragImageChromiumSkia.cpp
	M	WebCore/ChangeLog
	M	WebCore/WebCore.gyp/WebCore.gyp
	M	WebCore/WebCore.gypi
	M	WebCore/platform/chromium/DragImageRef.h
	M	WebKit/chromium/ChangeLog
	M	WebKit/chromium/public/WebViewClient.h
	M	WebKit/chromium/src/DragClientImpl.cpp
	M	WebKit/chromium/src/WebViewImpl.cpp
	M	WebKit/chromium/src/WebViewImpl.h
Committed r57064</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>208702</commentid>
    <comment_count>48</comment_count>
      <attachid>52573</attachid>
    <who name="Evan Stade">estade</who>
    <bug_when>2010-04-05 14:25:46 -0700</bug_when>
    <thetext>Created attachment 52573
null check

Fix was null check in DragClientImpl::startDragging</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>208704</commentid>
    <comment_count>49</comment_count>
    <who name="Nico Weber">thakis</who>
    <bug_when>2010-04-05 14:29:39 -0700</bug_when>
    <thetext>As said on the corresponding chrome bug, not implementing scaleDragImage() destroys the IPC connection when dragging big images, which looks like a renderer crash to the browser. If it&apos;s just a couple lines, maybe you can just implement it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>208706</commentid>
    <comment_count>50</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-04-05 14:32:49 -0700</bug_when>
    <thetext>Attachment 52573 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
ERROR: File does not exist: WebCore/platform/chromium/DragImageChromium.cpp


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>208710</commentid>
    <comment_count>51</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-04-05 14:34:29 -0700</bug_when>
    <thetext>Chris, this is an bug in check-webkit-style, no?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>208714</commentid>
    <comment_count>52</comment_count>
    <who name="Nico Weber">thakis</who>
    <bug_when>2010-04-05 14:44:03 -0700</bug_when>
    <thetext>I retract my comment. I didn&apos;t realize that Evan does `return 0;` instead of `return image` in scaleDragImage().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>208724</commentid>
    <comment_count>53</comment_count>
      <attachid>52578</attachid>
    <who name="Evan Stade">estade</who>
    <bug_when>2010-04-05 15:00:39 -0700</bug_when>
    <thetext>Created attachment 52578
scale image implemented

Well, I couldn&apos;t get it to crash even for large images, but here is a scale implementation anyway (which appears to work, as scale is called on small images).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>208726</commentid>
    <comment_count>54</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-04-05 15:04:41 -0700</bug_when>
    <thetext>Attachment 52578 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
ERROR: File does not exist: WebCore/platform/chromium/DragImageChromium.cpp


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>208752</commentid>
    <comment_count>55</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-04-05 15:48:03 -0700</bug_when>
    <thetext>(In reply to comment #51)
&gt; Chris, this is an bug in check-webkit-style, no?

I think so.  I had originally made it just log a message, but Shinichiro requested that I change it to raise an exception:

https://bugs.webkit.org/show_bug.cgi?id=36957#c3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>208763</commentid>
    <comment_count>56</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-04-05 16:00:46 -0700</bug_when>
    <thetext>(In reply to comment #55)
&gt; (In reply to comment #51)
&gt; &gt; Chris, this is an bug in check-webkit-style, no?
&gt; 
&gt; I think so.  I had originally made it just log a message, but Shinichiro
&gt; requested that I change it to raise an exception:
&gt; 
&gt; https://bugs.webkit.org/show_bug.cgi?id=36957#c3

Filed bug here:

https://bugs.webkit.org/show_bug.cgi?id=37122</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>209067</commentid>
    <comment_count>57</comment_count>
      <attachid>52578</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2010-04-06 08:51:38 -0700</bug_when>
    <thetext>Comment on attachment 52578
scale image implemented

ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>209167</commentid>
    <comment_count>58</comment_count>
      <attachid>52578</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-04-06 12:17:16 -0700</bug_when>
    <thetext>Comment on attachment 52578
scale image implemented

Clearing flags on attachment: 52578

Committed r57162: &lt;http://trac.webkit.org/changeset/57162&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>209168</commentid>
    <comment_count>59</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-04-06 12:17:27 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>50127</attachid>
            <date>2010-03-05 14:53:44 -0800</date>
            <delta_ts>2010-03-05 14:59:53 -0800</delta_ts>
            <desc>try1</desc>
            <filename>drag.diff</filename>
            <type>text/plain</type>
            <size>7198</size>
            <attacher name="Evan Stade">estade</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NTU5MykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjEgQEAKKzIwMTAtMDMtMDUgIEV2YW4gU3RhZGUgIDxlc3RhZGVAY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtj
aHJvbWl1bV0gbmVlZCBEcmFnSW1hZ2UgaW1wbGVtZW50YXRpb24KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM1ODExCisKKyAgICAgICAgQmFzaWMgaW1w
bGVtZW50YXRpb24gdXNpbmcgU2tCaXRtYXAuIFRyYW5zZm9ybWF0aW9ucyBhcmUgbm90IHN1cHBv
cnRlZAorICAgICAgICB5ZXQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9EcmFnSW1h
Z2VDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpkcmFnSW1hZ2VTaXplKToKKyAgICAg
ICAgKFdlYkNvcmU6OmRlbGV0ZURyYWdJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpzY2FsZURy
YWdJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVEcmFnSW1hZ2VGcm9tSW1hZ2UpOgor
ICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlRHJhZ0ltYWdlSWNvbkZvckNhY2hlZEltYWdlKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9EcmFnSW1hZ2VSZWYuaDoKKwogMjAxMC0wMy0wNCAg
RHVtaXRydSBEYW5pbGl1YyAgPGR1bWlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IEFkYW0gQmFydGguCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0RyYWdJbWFn
ZUNocm9taXVtLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0Ry
YWdJbWFnZUNocm9taXVtLmNwcAkocmV2aXNpb24gNTU1NjMpCisrKyBXZWJDb3JlL3BsYXRmb3Jt
L2Nocm9taXVtL0RyYWdJbWFnZUNocm9taXVtLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNiAr
MzAsMTQgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkRyYWdJbWFnZS5oIgor
I2luY2x1ZGUgIkltYWdlLmgiCisjaW5jbHVkZSAiTmF0aXZlSW1hZ2VTa2lhLmgiCisjaW5jbHVk
ZSAiUmVmUHRyLmgiCisjaW5jbHVkZSAiU2tCaXRtYXAuaCIKKworI2lmIFBMQVRGT1JNKE1BQykK
KyNpbmNsdWRlICJza2lhL2V4dC9za2lhX3V0aWxzX21hYy5oIgorI2VuZGlmCiAKICNpbmNsdWRl
ICJOb3RJbXBsZW1lbnRlZC5oIgogCkBAIC0zNywzNyArNDUsNDYgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBJbnRTaXplIGRyYWdJbWFnZVNpemUoRHJhZ0ltYWdlUmVmIGltYWdlKQogewotICAg
IG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIEludFNpemUoKTsKKyAgICBpZiAoIWltYWdl
KQorICAgICAgICByZXR1cm4gSW50U2l6ZSgpOworCisgICAgcmV0dXJuIEludFNpemUoaW1hZ2Ut
PndpZHRoKCksIGltYWdlLT5oZWlnaHQoKSk7CiB9CiAKIHZvaWQgZGVsZXRlRHJhZ0ltYWdlKERy
YWdJbWFnZVJlZiBpbWFnZSkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIGRlbGV0ZSBp
bWFnZTsKIH0KIAogRHJhZ0ltYWdlUmVmIHNjYWxlRHJhZ0ltYWdlKERyYWdJbWFnZVJlZiBpbWFn
ZSwgRmxvYXRTaXplIHNjYWxlKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJu
IDA7CisgICAgcmV0dXJuIGltYWdlOwogfQotICAgIAorCiBEcmFnSW1hZ2VSZWYgZGlzc29sdmVE
cmFnSW1hZ2VUb0ZyYWN0aW9uKERyYWdJbWFnZVJlZiBpbWFnZSwgZmxvYXQpCiB7CiAgICAgbm90
SW1wbGVtZW50ZWQoKTsKICAgICByZXR1cm4gaW1hZ2U7CiB9Ci0gICAgICAgIAotRHJhZ0ltYWdl
UmVmIGNyZWF0ZURyYWdJbWFnZUZyb21JbWFnZShJbWFnZSogaW1nKQoteyAgICAKLSAgICBub3RJ
bXBsZW1lbnRlZCgpOwotICAgIHJldHVybiAwOworCitEcmFnSW1hZ2VSZWYgY3JlYXRlRHJhZ0lt
YWdlRnJvbUltYWdlKEltYWdlKiBpbWFnZSkKK3sKKyNpZiBQTEFURk9STShNQUMpCisgICAgU2tC
aXRtYXAgYml0bWFwID0gZ2Z4OjpDR0ltYWdlVG9Ta0JpdG1hcChpbWFnZS0+Z2V0Q0dJbWFnZVJl
ZigpKTsKKyAgICBTa0JpdG1hcCogYml0bWFwUmVmID0gJmJpdG1hcDsKKyNlbHNlCisgICAgU2tC
aXRtYXAqIGJpdG1hcFJlZiA9IGltYWdlLT5uYXRpdmVJbWFnZUZvckN1cnJlbnRGcmFtZSgpOwor
I2VuZGlmCisgICAgU2tCaXRtYXAqIGRyYWdJbWFnZSA9IG5ldyBTa0JpdG1hcCgpOworICAgIGJp
dG1hcFJlZi0+Y29weVRvKGRyYWdJbWFnZSwgYml0bWFwUmVmLT5jb25maWcoKSk7CisgICAgcmV0
dXJuIGRyYWdJbWFnZTsKIH0KLSAgICAKKwogRHJhZ0ltYWdlUmVmIGNyZWF0ZURyYWdJbWFnZUlj
b25Gb3JDYWNoZWRJbWFnZShDYWNoZWRJbWFnZSopCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsK
LSAgICByZXR1cm4gMDsgICAgIAorICAgIHJldHVybiAwOwogfQotICAgIAorCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0RyYWdJbWFnZVJl
Zi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRHJhZ0ltYWdlUmVm
LmgJKHJldmlzaW9uIDU1NTYzKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9EcmFnSW1h
Z2VSZWYuaAkod29ya2luZyBjb3B5KQpAQCAtMjksMTEgKzI5LDExIEBACiAjaWZuZGVmIERyYWdJ
bWFnZVJlZl9oCiAjZGVmaW5lIERyYWdJbWFnZVJlZl9oCiAKK2NsYXNzIFNrQml0bWFwOworCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLSAgICAvLyBGSVhNRTogTmVlZCB0byBzdXBwb3J0IGltYWdl
IGRyYWctbi1kcm9wLiAgRm9yIG5vdywgd2UganVzdCBhbGxvdyB0aGluZ3MKLSAgICAvLyB0byBj
b21waWxlIGJ5IGRlZmluaW5nIHRoaXMgZHVtbXkgdHlwZS4KLSAgICB0eXBlZGVmIHZvaWQqIERy
YWdJbWFnZVJlZjsKKyAgICB0eXBlZGVmIFNrQml0bWFwKiBEcmFnSW1hZ2VSZWY7CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKIApJbmRleDogV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiA1NTU5MykKKysr
IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMCBA
QAorMjAxMC0wMy0wNSAgRXZhbiBTdGFkZSAgPGVzdGFkZUBjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW2Nocm9taXVtXSBuZWVk
IERyYWdJbWFnZSBpbXBsZW1lbnRhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MzU4MTEKKworICAgICAgICBVc2UgdGhlIERyYWdJbWFnZVJlZiB0
aGF0IHRoZSBEcmFnQ29udHJvbGxlciBwYXNzZXMgdG8gdXMuCisgICAgICAgIEtlZXAgdXNpbmcg
dGhlIG9sZCBXZWJWaWV3Q2xpZW50IGludGVyZmFjZSB1bnRpbCB0aGUgQ2hyb21pdW0gc2lkZSBv
ZgorICAgICAgICB0aGlzIHBhdGNoIGlzIGxhbmRlZC4KKworICAgICAgICAqIHNyYy9EcmFnQ2xp
ZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkRyYWdDbGllbnRJbXBsOjpzdGFydERyYWcp
OgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlZp
ZXdJbXBsOjpzdGFydERyYWdnaW5nKToKKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwuaDoKKwog
MjAxMC0wMy0wNSAgSWx5YSBUaWtob25vdnNreSAgPGxvaXNsb0BjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgUGF2ZWwgRmVsZG1hbi4KSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9z
cmMvRHJhZ0NsaWVudEltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9zcmMv
RHJhZ0NsaWVudEltcGwuY3BwCShyZXZpc2lvbiA1NTU2MykKKysrIFdlYktpdC9jaHJvbWl1bS9z
cmMvRHJhZ0NsaWVudEltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCwxMCArMzAsMTEgQEAK
IAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkRyYWdDbGllbnRJbXBsLmgiCi0KKyNp
bmNsdWRlICJEcmFnSW1hZ2VSZWYuaCIKICNpbmNsdWRlICJDaHJvbWl1bURhdGFPYmplY3QuaCIK
ICNpbmNsdWRlICJDbGlwYm9hcmRDaHJvbWl1bS5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5j
bHVkZSAiTmF0aXZlSW1hZ2VTa2lhLmgiCiAjaW5jbHVkZSAiV2ViRHJhZ0RhdGEuaCIKICNpbmNs
dWRlICJXZWJWaWV3Q2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViVmlld0ltcGwuaCIKQEAgLTgxLDgg
KzgyLDExIEBAIHZvaWQgRHJhZ0NsaWVudEltcGw6OnN0YXJ0RHJhZyhEcmFnSW1hZ2UKIAogICAg
IERyYWdPcGVyYXRpb24gZHJhZ09wZXJhdGlvbk1hc2sgPSBjbGlwYm9hcmQtPnNvdXJjZU9wZXJh
dGlvbigpOwogCisgICAgSW50U2l6ZSBvZmZzZXRTaXplKGV2ZW50UG9zIC0gZHJhZ0ltYWdlT3Jp
Z2luKTsKKyAgICBXZWJQb2ludCBvZmZzZXRQb2ludChvZmZzZXRTaXplLndpZHRoKCksIG9mZnNl
dFNpemUuaGVpZ2h0KCkpOwogICAgIG1fd2ViVmlldy0+c3RhcnREcmFnZ2luZygKLSAgICAgICAg
ZXZlbnRQb3MsIGRyYWdEYXRhLCBzdGF0aWNfY2FzdDxXZWJEcmFnT3BlcmF0aW9uc01hc2s+KGRy
YWdPcGVyYXRpb25NYXNrKSk7CisgICAgICAgIGRyYWdEYXRhLCBzdGF0aWNfY2FzdDxXZWJEcmFn
T3BlcmF0aW9uc01hc2s+KGRyYWdPcGVyYXRpb25NYXNrKSwKKyAgICAgICAgc3RhdGljX2Nhc3Q8
V2ViRHJhZ0ltYWdlUmVmPihkcmFnSW1hZ2UpLCBvZmZzZXRQb2ludCk7CiB9CiAKIERyYWdJbWFn
ZVJlZiBEcmFnQ2xpZW50SW1wbDo6Y3JlYXRlRHJhZ0ltYWdlRm9yTGluayhLVVJMJiwgY29uc3Qg
U3RyaW5nJiBsYWJlbCwgRnJhbWUqKQpJbmRleDogV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3
SW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5j
cHAJKHJldmlzaW9uIDU1NTYzKQorKysgV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTE4MjIsMTUgKzE4MjIsMTcgQEAgYm9vbCBXZWJWaWV3SW1w
bDo6bmF2aWdhdGlvblBvbGljeUZyb21NbwogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIFdl
YlZpZXdJbXBsOjpzdGFydERyYWdnaW5nKGNvbnN0IFdlYlBvaW50JiBldmVudFBvcywKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgV2ViRHJhZ0RhdGEmIGRyYWdEYXRhLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJEcmFnT3BlcmF0aW9uc01hc2sgbWFz
aykKK3ZvaWQgV2ViVmlld0ltcGw6OnN0YXJ0RHJhZ2dpbmcoY29uc3QgV2ViRHJhZ0RhdGEmIGRy
YWdEYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJEcmFnT3BlcmF0aW9u
c01hc2sgbWFzaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViRHJhZ0ltYWdl
UmVmIGRyYWdJbWFnZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgV2Vi
UG9pbnQmIGRyYWdJbWFnZU9mZnNldCkKIHsKICAgICBpZiAoIW1fY2xpZW50KQogICAgICAgICBy
ZXR1cm47CiAgICAgQVNTRVJUKCFtX2RvaW5nRHJhZ0FuZERyb3ApOwogICAgIG1fZG9pbmdEcmFn
QW5kRHJvcCA9IHRydWU7Ci0gICAgbV9jbGllbnQtPnN0YXJ0RHJhZ2dpbmcoZXZlbnRQb3MsIGRy
YWdEYXRhLCBtYXNrKTsKKyAgICAvLyBGSVhNRTogcGFzcyBhbG9uZyB8ZHJhZ0ltYWdlfCBhbmQg
fGRyYWdJbWFnZU9mZnNldHwuCisgICAgbV9jbGllbnQtPnN0YXJ0RHJhZ2dpbmcoV2ViUG9pbnQo
KSwgZHJhZ0RhdGEsIG1hc2spOwogfQogCiB2b2lkIFdlYlZpZXdJbXBsOjpzZXRDdXJyZW50SGlz
dG9yeUl0ZW0oSGlzdG9yeUl0ZW0qIGl0ZW0pCkluZGV4OiBXZWJLaXQvY2hyb21pdW0vc3JjL1dl
YlZpZXdJbXBsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1w
bC5oCShyZXZpc2lvbiA1NTU2MykKKysrIFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwu
aAkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBAQAogI2RlZmluZSBXZWJWaWV3SW1wbF9o
CiAKIC8vIEZJWE1FOiBSZW1vdmUgdGhlc2UgcmVsYXRpdmUgcGF0aHMgb25jZSBjb25zdW1lcnMg
ZnJvbSBnbHVlIGFyZSByZW1vdmVkLgorI2luY2x1ZGUgIi4uL3B1YmxpYy9XZWJEcmFnSW1hZ2VS
ZWYuaCIKICNpbmNsdWRlICIuLi9wdWJsaWMvV2ViTmF2aWdhdGlvblBvbGljeS5oIgogI2luY2x1
ZGUgIi4uL3B1YmxpYy9XZWJQb2ludC5oIgogI2luY2x1ZGUgIi4uL3B1YmxpYy9XZWJTaXplLmgi
CkBAIC0yNzAsOSArMjcxLDEwIEBAIHB1YmxpYzoKIAogICAgIC8vIFN0YXJ0IGEgc3lzdGVtIGRy
YWcgYW5kIGRyb3Agb3BlcmF0aW9uLgogICAgIHZvaWQgc3RhcnREcmFnZ2luZygKLSAgICAgICAg
Y29uc3QgV2ViUG9pbnQmIGV2ZW50UG9zLAogICAgICAgICBjb25zdCBXZWJEcmFnRGF0YSYgZHJh
Z0RhdGEsCi0gICAgICAgIFdlYkRyYWdPcGVyYXRpb25zTWFzayBkcmFnU291cmNlT3BlcmF0aW9u
TWFzayk7CisgICAgICAgIFdlYkRyYWdPcGVyYXRpb25zTWFzayBkcmFnU291cmNlT3BlcmF0aW9u
TWFzaywKKyAgICAgICAgV2ViRHJhZ0ltYWdlUmVmIGRyYWdJbWFnZSwKKyAgICAgICAgY29uc3Qg
V2ViUG9pbnQmIGRyYWdJbWFnZU9mZnNldCk7CiAKICAgICB2b2lkIHN1Z2dlc3Rpb25zUG9wdXBE
aWRIaWRlKCkKICAgICB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>50129</attachid>
            <date>2010-03-05 14:59:53 -0800</date>
            <delta_ts>2010-03-05 15:15:31 -0800</delta_ts>
            <desc>style</desc>
            <filename>drag.diff</filename>
            <type>text/plain</type>
            <size>7194</size>
            <attacher name="Evan Stade">estade</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NTU5MykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjEgQEAKKzIwMTAtMDMtMDUgIEV2YW4gU3RhZGUgIDxlc3RhZGVAY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtj
aHJvbWl1bV0gbmVlZCBEcmFnSW1hZ2UgaW1wbGVtZW50YXRpb24KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM1ODExCisKKyAgICAgICAgQmFzaWMgaW1w
bGVtZW50YXRpb24gdXNpbmcgU2tCaXRtYXAuIFRyYW5zZm9ybWF0aW9ucyBhcmUgbm90IHN1cHBv
cnRlZAorICAgICAgICB5ZXQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9EcmFnSW1h
Z2VDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpkcmFnSW1hZ2VTaXplKToKKyAgICAg
ICAgKFdlYkNvcmU6OmRlbGV0ZURyYWdJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpzY2FsZURy
YWdJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVEcmFnSW1hZ2VGcm9tSW1hZ2UpOgor
ICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlRHJhZ0ltYWdlSWNvbkZvckNhY2hlZEltYWdlKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9EcmFnSW1hZ2VSZWYuaDoKKwogMjAxMC0wMy0wNCAg
RHVtaXRydSBEYW5pbGl1YyAgPGR1bWlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IEFkYW0gQmFydGguCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0RyYWdJbWFn
ZUNocm9taXVtLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0Ry
YWdJbWFnZUNocm9taXVtLmNwcAkocmV2aXNpb24gNTU1NjMpCisrKyBXZWJDb3JlL3BsYXRmb3Jt
L2Nocm9taXVtL0RyYWdJbWFnZUNocm9taXVtLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNiAr
MzAsMTQgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkRyYWdJbWFnZS5oIgor
I2luY2x1ZGUgIkltYWdlLmgiCisjaW5jbHVkZSAiTmF0aXZlSW1hZ2VTa2lhLmgiCisjaW5jbHVk
ZSAiUmVmUHRyLmgiCisjaW5jbHVkZSAiU2tCaXRtYXAuaCIKKworI2lmIFBMQVRGT1JNKE1BQykK
KyNpbmNsdWRlICJza2lhL2V4dC9za2lhX3V0aWxzX21hYy5oIgorI2VuZGlmCiAKICNpbmNsdWRl
ICJOb3RJbXBsZW1lbnRlZC5oIgogCkBAIC0zNywzNyArNDUsNDYgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBJbnRTaXplIGRyYWdJbWFnZVNpemUoRHJhZ0ltYWdlUmVmIGltYWdlKQogewotICAg
IG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIEludFNpemUoKTsKKyAgICBpZiAoIWltYWdl
KQorICAgICAgICByZXR1cm4gSW50U2l6ZSgpOworCisgICAgcmV0dXJuIEludFNpemUoaW1hZ2Ut
PndpZHRoKCksIGltYWdlLT5oZWlnaHQoKSk7CiB9CiAKIHZvaWQgZGVsZXRlRHJhZ0ltYWdlKERy
YWdJbWFnZVJlZiBpbWFnZSkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIGRlbGV0ZSBp
bWFnZTsKIH0KIAogRHJhZ0ltYWdlUmVmIHNjYWxlRHJhZ0ltYWdlKERyYWdJbWFnZVJlZiBpbWFn
ZSwgRmxvYXRTaXplIHNjYWxlKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJu
IDA7CisgICAgcmV0dXJuIGltYWdlOwogfQotICAgIAorCiBEcmFnSW1hZ2VSZWYgZGlzc29sdmVE
cmFnSW1hZ2VUb0ZyYWN0aW9uKERyYWdJbWFnZVJlZiBpbWFnZSwgZmxvYXQpCiB7CiAgICAgbm90
SW1wbGVtZW50ZWQoKTsKICAgICByZXR1cm4gaW1hZ2U7CiB9Ci0gICAgICAgIAotRHJhZ0ltYWdl
UmVmIGNyZWF0ZURyYWdJbWFnZUZyb21JbWFnZShJbWFnZSogaW1nKQoteyAgICAKLSAgICBub3RJ
bXBsZW1lbnRlZCgpOwotICAgIHJldHVybiAwOworCitEcmFnSW1hZ2VSZWYgY3JlYXRlRHJhZ0lt
YWdlRnJvbUltYWdlKEltYWdlKiBpbWFnZSkKK3sKKyNpZiBQTEFURk9STShNQUMpCisgICAgU2tC
aXRtYXAgYml0bWFwID0gZ2Z4OjpDR0ltYWdlVG9Ta0JpdG1hcChpbWFnZS0+Z2V0Q0dJbWFnZVJl
ZigpKTsKKyAgICBTa0JpdG1hcCogYml0bWFwUmVmID0gJmJpdG1hcDsKKyNlbHNlCisgICAgU2tC
aXRtYXAqIGJpdG1hcFJlZiA9IGltYWdlLT5uYXRpdmVJbWFnZUZvckN1cnJlbnRGcmFtZSgpOwor
I2VuZGlmCisgICAgU2tCaXRtYXAqIGRyYWdJbWFnZSA9IG5ldyBTa0JpdG1hcCgpOworICAgIGJp
dG1hcFJlZi0+Y29weVRvKGRyYWdJbWFnZSwgYml0bWFwUmVmLT5jb25maWcoKSk7CisgICAgcmV0
dXJuIGRyYWdJbWFnZTsKIH0KLSAgICAKKwogRHJhZ0ltYWdlUmVmIGNyZWF0ZURyYWdJbWFnZUlj
b25Gb3JDYWNoZWRJbWFnZShDYWNoZWRJbWFnZSopCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsK
LSAgICByZXR1cm4gMDsgICAgIAorICAgIHJldHVybiAwOwogfQotICAgIAorCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0RyYWdJbWFnZVJl
Zi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRHJhZ0ltYWdlUmVm
LmgJKHJldmlzaW9uIDU1NTYzKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9EcmFnSW1h
Z2VSZWYuaAkod29ya2luZyBjb3B5KQpAQCAtMjksMTEgKzI5LDExIEBACiAjaWZuZGVmIERyYWdJ
bWFnZVJlZl9oCiAjZGVmaW5lIERyYWdJbWFnZVJlZl9oCiAKK2NsYXNzIFNrQml0bWFwOworCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLSAgICAvLyBGSVhNRTogTmVlZCB0byBzdXBwb3J0IGltYWdl
IGRyYWctbi1kcm9wLiAgRm9yIG5vdywgd2UganVzdCBhbGxvdyB0aGluZ3MKLSAgICAvLyB0byBj
b21waWxlIGJ5IGRlZmluaW5nIHRoaXMgZHVtbXkgdHlwZS4KLSAgICB0eXBlZGVmIHZvaWQqIERy
YWdJbWFnZVJlZjsKK3R5cGVkZWYgU2tCaXRtYXAqIERyYWdJbWFnZVJlZjsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQogCkluZGV4OiBXZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHJldmlzaW9uIDU1NTkzKQorKysgV2Vi
S2l0L2Nocm9taXVtL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBACisy
MDEwLTAzLTA1ICBFdmFuIFN0YWRlICA8ZXN0YWRlQGNocm9taXVtLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbY2hyb21pdW1dIG5lZWQgRHJh
Z0ltYWdlIGltcGxlbWVudGF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0zNTgxMQorCisgICAgICAgIFVzZSB0aGUgRHJhZ0ltYWdlUmVmIHRoYXQg
dGhlIERyYWdDb250cm9sbGVyIHBhc3NlcyB0byB1cy4KKyAgICAgICAgS2VlcCB1c2luZyB0aGUg
b2xkIFdlYlZpZXdDbGllbnQgaW50ZXJmYWNlIHVudGlsIHRoZSBDaHJvbWl1bSBzaWRlIG9mCisg
ICAgICAgIHRoaXMgcGF0Y2ggaXMgbGFuZGVkLgorCisgICAgICAgICogc3JjL0RyYWdDbGllbnRJ
bXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RHJhZ0NsaWVudEltcGw6OnN0YXJ0RHJhZyk6Cisg
ICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0lt
cGw6OnN0YXJ0RHJhZ2dpbmcpOgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5oOgorCiAyMDEw
LTAzLTA1ICBJbHlhIFRpa2hvbm92c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBQYXZlbCBGZWxkbWFuLgpJbmRleDogV2ViS2l0L2Nocm9taXVtL3NyYy9E
cmFnQ2xpZW50SW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3NyYy9EcmFn
Q2xpZW50SW1wbC5jcHAJKHJldmlzaW9uIDU1NTYzKQorKysgV2ViS2l0L2Nocm9taXVtL3NyYy9E
cmFnQ2xpZW50SW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDEwICszMCwxMSBAQAogCiAj
aW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiRHJhZ0NsaWVudEltcGwuaCIKLQorI2luY2x1
ZGUgIkRyYWdJbWFnZVJlZi5oIgogI2luY2x1ZGUgIkNocm9taXVtRGF0YU9iamVjdC5oIgogI2lu
Y2x1ZGUgIkNsaXBib2FyZENocm9taXVtLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRl
ICJOYXRpdmVJbWFnZVNraWEuaCIKICNpbmNsdWRlICJXZWJEcmFnRGF0YS5oIgogI2luY2x1ZGUg
IldlYlZpZXdDbGllbnQuaCIKICNpbmNsdWRlICJXZWJWaWV3SW1wbC5oIgpAQCAtODEsOCArODIs
MTEgQEAgdm9pZCBEcmFnQ2xpZW50SW1wbDo6c3RhcnREcmFnKERyYWdJbWFnZQogCiAgICAgRHJh
Z09wZXJhdGlvbiBkcmFnT3BlcmF0aW9uTWFzayA9IGNsaXBib2FyZC0+c291cmNlT3BlcmF0aW9u
KCk7CiAKKyAgICBJbnRTaXplIG9mZnNldFNpemUoZXZlbnRQb3MgLSBkcmFnSW1hZ2VPcmlnaW4p
OworICAgIFdlYlBvaW50IG9mZnNldFBvaW50KG9mZnNldFNpemUud2lkdGgoKSwgb2Zmc2V0U2l6
ZS5oZWlnaHQoKSk7CiAgICAgbV93ZWJWaWV3LT5zdGFydERyYWdnaW5nKAotICAgICAgICBldmVu
dFBvcywgZHJhZ0RhdGEsIHN0YXRpY19jYXN0PFdlYkRyYWdPcGVyYXRpb25zTWFzaz4oZHJhZ09w
ZXJhdGlvbk1hc2spKTsKKyAgICAgICAgZHJhZ0RhdGEsIHN0YXRpY19jYXN0PFdlYkRyYWdPcGVy
YXRpb25zTWFzaz4oZHJhZ09wZXJhdGlvbk1hc2spLAorICAgICAgICBzdGF0aWNfY2FzdDxXZWJE
cmFnSW1hZ2VSZWY+KGRyYWdJbWFnZSksIG9mZnNldFBvaW50KTsKIH0KIAogRHJhZ0ltYWdlUmVm
IERyYWdDbGllbnRJbXBsOjpjcmVhdGVEcmFnSW1hZ2VGb3JMaW5rKEtVUkwmLCBjb25zdCBTdHJp
bmcmIGxhYmVsLCBGcmFtZSopCkluZGV4OiBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBs
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAko
cmV2aXNpb24gNTU1NjMpCisrKyBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMTgyMiwxNSArMTgyMiwxNyBAQCBib29sIFdlYlZpZXdJbXBsOjpu
YXZpZ2F0aW9uUG9saWN5RnJvbU1vCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgV2ViVmll
d0ltcGw6OnN0YXJ0RHJhZ2dpbmcoY29uc3QgV2ViUG9pbnQmIGV2ZW50UG9zLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBXZWJEcmFnRGF0YSYgZHJhZ0RhdGEsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYkRyYWdPcGVyYXRpb25zTWFzayBtYXNrKQor
dm9pZCBXZWJWaWV3SW1wbDo6c3RhcnREcmFnZ2luZyhjb25zdCBXZWJEcmFnRGF0YSYgZHJhZ0Rh
dGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYkRyYWdPcGVyYXRpb25zTWFz
ayBtYXNrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJEcmFnSW1hZ2VSZWYg
ZHJhZ0ltYWdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBXZWJQb2lu
dCYgZHJhZ0ltYWdlT2Zmc2V0KQogewogICAgIGlmICghbV9jbGllbnQpCiAgICAgICAgIHJldHVy
bjsKICAgICBBU1NFUlQoIW1fZG9pbmdEcmFnQW5kRHJvcCk7CiAgICAgbV9kb2luZ0RyYWdBbmRE
cm9wID0gdHJ1ZTsKLSAgICBtX2NsaWVudC0+c3RhcnREcmFnZ2luZyhldmVudFBvcywgZHJhZ0Rh
dGEsIG1hc2spOworICAgIC8vIEZJWE1FOiBwYXNzIGFsb25nIHxkcmFnSW1hZ2V8IGFuZCB8ZHJh
Z0ltYWdlT2Zmc2V0fC4KKyAgICBtX2NsaWVudC0+c3RhcnREcmFnZ2luZyhXZWJQb2ludCgpLCBk
cmFnRGF0YSwgbWFzayk7CiB9CiAKIHZvaWQgV2ViVmlld0ltcGw6OnNldEN1cnJlbnRIaXN0b3J5
SXRlbShIaXN0b3J5SXRlbSogaXRlbSkKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmll
d0ltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgJ
KHJldmlzaW9uIDU1NTYzKQorKysgV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0zMiw2ICszMiw3IEBACiAjZGVmaW5lIFdlYlZpZXdJbXBsX2gKIAog
Ly8gRklYTUU6IFJlbW92ZSB0aGVzZSByZWxhdGl2ZSBwYXRocyBvbmNlIGNvbnN1bWVycyBmcm9t
IGdsdWUgYXJlIHJlbW92ZWQuCisjaW5jbHVkZSAiLi4vcHVibGljL1dlYkRyYWdJbWFnZVJlZi5o
IgogI2luY2x1ZGUgIi4uL3B1YmxpYy9XZWJOYXZpZ2F0aW9uUG9saWN5LmgiCiAjaW5jbHVkZSAi
Li4vcHVibGljL1dlYlBvaW50LmgiCiAjaW5jbHVkZSAiLi4vcHVibGljL1dlYlNpemUuaCIKQEAg
LTI3MCw5ICsyNzEsMTAgQEAgcHVibGljOgogCiAgICAgLy8gU3RhcnQgYSBzeXN0ZW0gZHJhZyBh
bmQgZHJvcCBvcGVyYXRpb24uCiAgICAgdm9pZCBzdGFydERyYWdnaW5nKAotICAgICAgICBjb25z
dCBXZWJQb2ludCYgZXZlbnRQb3MsCiAgICAgICAgIGNvbnN0IFdlYkRyYWdEYXRhJiBkcmFnRGF0
YSwKLSAgICAgICAgV2ViRHJhZ09wZXJhdGlvbnNNYXNrIGRyYWdTb3VyY2VPcGVyYXRpb25NYXNr
KTsKKyAgICAgICAgV2ViRHJhZ09wZXJhdGlvbnNNYXNrIGRyYWdTb3VyY2VPcGVyYXRpb25NYXNr
LAorICAgICAgICBXZWJEcmFnSW1hZ2VSZWYgZHJhZ0ltYWdlLAorICAgICAgICBjb25zdCBXZWJQ
b2ludCYgZHJhZ0ltYWdlT2Zmc2V0KTsKIAogICAgIHZvaWQgc3VnZ2VzdGlvbnNQb3B1cERpZEhp
ZGUoKQogICAgIHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>50131</attachid>
            <date>2010-03-05 15:15:31 -0800</date>
            <delta_ts>2010-03-05 15:23:09 -0800</delta_ts>
            <desc>forgot to svn add</desc>
            <filename>drag.diff</filename>
            <type>text/plain</type>
            <size>9239</size>
            <attacher name="Evan Stade">estade</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NTU5MykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjEgQEAKKzIwMTAtMDMtMDUgIEV2YW4gU3RhZGUgIDxlc3RhZGVAY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtj
aHJvbWl1bV0gbmVlZCBEcmFnSW1hZ2UgaW1wbGVtZW50YXRpb24KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM1ODExCisKKyAgICAgICAgQmFzaWMgaW1w
bGVtZW50YXRpb24gdXNpbmcgU2tCaXRtYXAuIFRyYW5zZm9ybWF0aW9ucyBhcmUgbm90IHN1cHBv
cnRlZAorICAgICAgICB5ZXQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9EcmFnSW1h
Z2VDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpkcmFnSW1hZ2VTaXplKToKKyAgICAg
ICAgKFdlYkNvcmU6OmRlbGV0ZURyYWdJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpzY2FsZURy
YWdJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVEcmFnSW1hZ2VGcm9tSW1hZ2UpOgor
ICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlRHJhZ0ltYWdlSWNvbkZvckNhY2hlZEltYWdlKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9EcmFnSW1hZ2VSZWYuaDoKKwogMjAxMC0wMy0wNCAg
RHVtaXRydSBEYW5pbGl1YyAgPGR1bWlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IEFkYW0gQmFydGguCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0RyYWdJbWFn
ZUNocm9taXVtLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0Ry
YWdJbWFnZUNocm9taXVtLmNwcAkocmV2aXNpb24gNTU1NjMpCisrKyBXZWJDb3JlL3BsYXRmb3Jt
L2Nocm9taXVtL0RyYWdJbWFnZUNocm9taXVtLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNiAr
MzAsMTQgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkRyYWdJbWFnZS5oIgor
I2luY2x1ZGUgIkltYWdlLmgiCisjaW5jbHVkZSAiTmF0aXZlSW1hZ2VTa2lhLmgiCisjaW5jbHVk
ZSAiUmVmUHRyLmgiCisjaW5jbHVkZSAiU2tCaXRtYXAuaCIKKworI2lmIFBMQVRGT1JNKE1BQykK
KyNpbmNsdWRlICJza2lhL2V4dC9za2lhX3V0aWxzX21hYy5oIgorI2VuZGlmCiAKICNpbmNsdWRl
ICJOb3RJbXBsZW1lbnRlZC5oIgogCkBAIC0zNywzNyArNDUsNDYgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBJbnRTaXplIGRyYWdJbWFnZVNpemUoRHJhZ0ltYWdlUmVmIGltYWdlKQogewotICAg
IG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIEludFNpemUoKTsKKyAgICBpZiAoIWltYWdl
KQorICAgICAgICByZXR1cm4gSW50U2l6ZSgpOworCisgICAgcmV0dXJuIEludFNpemUoaW1hZ2Ut
PndpZHRoKCksIGltYWdlLT5oZWlnaHQoKSk7CiB9CiAKIHZvaWQgZGVsZXRlRHJhZ0ltYWdlKERy
YWdJbWFnZVJlZiBpbWFnZSkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIGRlbGV0ZSBp
bWFnZTsKIH0KIAogRHJhZ0ltYWdlUmVmIHNjYWxlRHJhZ0ltYWdlKERyYWdJbWFnZVJlZiBpbWFn
ZSwgRmxvYXRTaXplIHNjYWxlKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJu
IDA7CisgICAgcmV0dXJuIGltYWdlOwogfQotICAgIAorCiBEcmFnSW1hZ2VSZWYgZGlzc29sdmVE
cmFnSW1hZ2VUb0ZyYWN0aW9uKERyYWdJbWFnZVJlZiBpbWFnZSwgZmxvYXQpCiB7CiAgICAgbm90
SW1wbGVtZW50ZWQoKTsKICAgICByZXR1cm4gaW1hZ2U7CiB9Ci0gICAgICAgIAotRHJhZ0ltYWdl
UmVmIGNyZWF0ZURyYWdJbWFnZUZyb21JbWFnZShJbWFnZSogaW1nKQoteyAgICAKLSAgICBub3RJ
bXBsZW1lbnRlZCgpOwotICAgIHJldHVybiAwOworCitEcmFnSW1hZ2VSZWYgY3JlYXRlRHJhZ0lt
YWdlRnJvbUltYWdlKEltYWdlKiBpbWFnZSkKK3sKKyNpZiBQTEFURk9STShNQUMpCisgICAgU2tC
aXRtYXAgYml0bWFwID0gZ2Z4OjpDR0ltYWdlVG9Ta0JpdG1hcChpbWFnZS0+Z2V0Q0dJbWFnZVJl
ZigpKTsKKyAgICBTa0JpdG1hcCogYml0bWFwUmVmID0gJmJpdG1hcDsKKyNlbHNlCisgICAgU2tC
aXRtYXAqIGJpdG1hcFJlZiA9IGltYWdlLT5uYXRpdmVJbWFnZUZvckN1cnJlbnRGcmFtZSgpOwor
I2VuZGlmCisgICAgU2tCaXRtYXAqIGRyYWdJbWFnZSA9IG5ldyBTa0JpdG1hcCgpOworICAgIGJp
dG1hcFJlZi0+Y29weVRvKGRyYWdJbWFnZSwgYml0bWFwUmVmLT5jb25maWcoKSk7CisgICAgcmV0
dXJuIGRyYWdJbWFnZTsKIH0KLSAgICAKKwogRHJhZ0ltYWdlUmVmIGNyZWF0ZURyYWdJbWFnZUlj
b25Gb3JDYWNoZWRJbWFnZShDYWNoZWRJbWFnZSopCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsK
LSAgICByZXR1cm4gMDsgICAgIAorICAgIHJldHVybiAwOwogfQotICAgIAorCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0RyYWdJbWFnZVJl
Zi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRHJhZ0ltYWdlUmVm
LmgJKHJldmlzaW9uIDU1NTYzKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9EcmFnSW1h
Z2VSZWYuaAkod29ya2luZyBjb3B5KQpAQCAtMjksMTEgKzI5LDExIEBACiAjaWZuZGVmIERyYWdJ
bWFnZVJlZl9oCiAjZGVmaW5lIERyYWdJbWFnZVJlZl9oCiAKK2NsYXNzIFNrQml0bWFwOworCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLSAgICAvLyBGSVhNRTogTmVlZCB0byBzdXBwb3J0IGltYWdl
IGRyYWctbi1kcm9wLiAgRm9yIG5vdywgd2UganVzdCBhbGxvdyB0aGluZ3MKLSAgICAvLyB0byBj
b21waWxlIGJ5IGRlZmluaW5nIHRoaXMgZHVtbXkgdHlwZS4KLSAgICB0eXBlZGVmIHZvaWQqIERy
YWdJbWFnZVJlZjsKKyAgICB0eXBlZGVmIFNrQml0bWFwKiBEcmFnSW1hZ2VSZWY7CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKIApJbmRleDogV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiA1NTU5NykKKysr
IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMSBA
QAorMjAxMC0wMy0wNSAgRXZhbiBTdGFkZSAgPGVzdGFkZUBjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW2Nocm9taXVtXSBuZWVk
IERyYWdJbWFnZSBpbXBsZW1lbnRhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MzU4MTEKKworICAgICAgICBVc2UgdGhlIERyYWdJbWFnZVJlZiB0
aGF0IHRoZSBEcmFnQ29udHJvbGxlciBwYXNzZXMgdG8gdXMuCisgICAgICAgIEtlZXAgdXNpbmcg
dGhlIG9sZCBXZWJWaWV3Q2xpZW50IGludGVyZmFjZSB1bnRpbCB0aGUgQ2hyb21pdW0gc2lkZSBv
ZgorICAgICAgICB0aGlzIHBhdGNoIGlzIGxhbmRlZC4KKworICAgICAgICAqIHB1YmxpYy9XZWJE
cmFnSW1hZ2VSZWYuaDogQWRkZWQuCisgICAgICAgICogc3JjL0RyYWdDbGllbnRJbXBsLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6RHJhZ0NsaWVudEltcGw6OnN0YXJ0RHJhZyk6CisgICAgICAgICog
c3JjL1dlYlZpZXdJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnN0YXJ0
RHJhZ2dpbmcpOgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5oOgorCiAyMDEwLTAzLTA1ICBJ
bHlhIFRpa2hvbm92c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBQYXZlbCBGZWxkbWFuLgpJbmRleDogV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJEcmFn
SW1hZ2VSZWYuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkRyYWdJ
bWFnZVJlZi5oCShyZXZpc2lvbiAwKQorKysgV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJEcmFn
SW1hZ2VSZWYuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0MiBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24u
CisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMg
b2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMi
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViRHJhZ0lt
YWdlUmVmX2gKKyNkZWZpbmUgV2ViRHJhZ0ltYWdlUmVmX2gKKworI2luY2x1ZGUgPFNrQml0bWFw
Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCit0eXBlZGVmIFNrQml0bWFwKiBXZWJEcmFnSW1h
Z2VSZWY7CisKK30KKworI2VuZGlmCkluZGV4OiBXZWJLaXQvY2hyb21pdW0vc3JjL0RyYWdDbGll
bnRJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vc3JjL0RyYWdDbGllbnRJ
bXBsLmNwcAkocmV2aXNpb24gNTU1NjMpCisrKyBXZWJLaXQvY2hyb21pdW0vc3JjL0RyYWdDbGll
bnRJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsMTAgKzMwLDExIEBACiAKICNpbmNsdWRl
ICJjb25maWcuaCIKICNpbmNsdWRlICJEcmFnQ2xpZW50SW1wbC5oIgotCisjaW5jbHVkZSAiRHJh
Z0ltYWdlUmVmLmgiCiAjaW5jbHVkZSAiQ2hyb21pdW1EYXRhT2JqZWN0LmgiCiAjaW5jbHVkZSAi
Q2xpcGJvYXJkQ2hyb21pdW0uaCIKICNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIk5hdGl2
ZUltYWdlU2tpYS5oIgogI2luY2x1ZGUgIldlYkRyYWdEYXRhLmgiCiAjaW5jbHVkZSAiV2ViVmll
d0NsaWVudC5oIgogI2luY2x1ZGUgIldlYlZpZXdJbXBsLmgiCkBAIC04MSw4ICs4MiwxMSBAQCB2
b2lkIERyYWdDbGllbnRJbXBsOjpzdGFydERyYWcoRHJhZ0ltYWdlCiAKICAgICBEcmFnT3BlcmF0
aW9uIGRyYWdPcGVyYXRpb25NYXNrID0gY2xpcGJvYXJkLT5zb3VyY2VPcGVyYXRpb24oKTsKIAor
ICAgIEludFNpemUgb2Zmc2V0U2l6ZShldmVudFBvcyAtIGRyYWdJbWFnZU9yaWdpbik7CisgICAg
V2ViUG9pbnQgb2Zmc2V0UG9pbnQob2Zmc2V0U2l6ZS53aWR0aCgpLCBvZmZzZXRTaXplLmhlaWdo
dCgpKTsKICAgICBtX3dlYlZpZXctPnN0YXJ0RHJhZ2dpbmcoCi0gICAgICAgIGV2ZW50UG9zLCBk
cmFnRGF0YSwgc3RhdGljX2Nhc3Q8V2ViRHJhZ09wZXJhdGlvbnNNYXNrPihkcmFnT3BlcmF0aW9u
TWFzaykpOworICAgICAgICBkcmFnRGF0YSwgc3RhdGljX2Nhc3Q8V2ViRHJhZ09wZXJhdGlvbnNN
YXNrPihkcmFnT3BlcmF0aW9uTWFzayksCisgICAgICAgIHN0YXRpY19jYXN0PFdlYkRyYWdJbWFn
ZVJlZj4oZHJhZ0ltYWdlKSwgb2Zmc2V0UG9pbnQpOwogfQogCiBEcmFnSW1hZ2VSZWYgRHJhZ0Ns
aWVudEltcGw6OmNyZWF0ZURyYWdJbWFnZUZvckxpbmsoS1VSTCYsIGNvbnN0IFN0cmluZyYgbGFi
ZWwsIEZyYW1lKikKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCShyZXZpc2lv
biA1NTU2MykKKysrIFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xODIyLDE1ICsxODIyLDE3IEBAIGJvb2wgV2ViVmlld0ltcGw6Om5hdmlnYXRp
b25Qb2xpY3lGcm9tTW8KICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBXZWJWaWV3SW1wbDo6
c3RhcnREcmFnZ2luZyhjb25zdCBXZWJQb2ludCYgZXZlbnRQb3MsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNvbnN0IFdlYkRyYWdEYXRhJiBkcmFnRGF0YSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgV2ViRHJhZ09wZXJhdGlvbnNNYXNrIG1hc2spCit2b2lkIFdl
YlZpZXdJbXBsOjpzdGFydERyYWdnaW5nKGNvbnN0IFdlYkRyYWdEYXRhJiBkcmFnRGF0YSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViRHJhZ09wZXJhdGlvbnNNYXNrIG1hc2ss
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYkRyYWdJbWFnZVJlZiBkcmFnSW1h
Z2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFdlYlBvaW50JiBkcmFn
SW1hZ2VPZmZzZXQpCiB7CiAgICAgaWYgKCFtX2NsaWVudCkKICAgICAgICAgcmV0dXJuOwogICAg
IEFTU0VSVCghbV9kb2luZ0RyYWdBbmREcm9wKTsKICAgICBtX2RvaW5nRHJhZ0FuZERyb3AgPSB0
cnVlOwotICAgIG1fY2xpZW50LT5zdGFydERyYWdnaW5nKGV2ZW50UG9zLCBkcmFnRGF0YSwgbWFz
ayk7CisgICAgLy8gRklYTUU6IHBhc3MgYWxvbmcgfGRyYWdJbWFnZXwgYW5kIHxkcmFnSW1hZ2VP
ZmZzZXR8LgorICAgIG1fY2xpZW50LT5zdGFydERyYWdnaW5nKFdlYlBvaW50KCksIGRyYWdEYXRh
LCBtYXNrKTsKIH0KIAogdm9pZCBXZWJWaWV3SW1wbDo6c2V0Q3VycmVudEhpc3RvcnlJdGVtKEhp
c3RvcnlJdGVtKiBpdGVtKQpJbmRleDogV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaAkocmV2aXNp
b24gNTU1NjMpCisrKyBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTMyLDYgKzMyLDcgQEAKICNkZWZpbmUgV2ViVmlld0ltcGxfaAogCiAvLyBGSVhN
RTogUmVtb3ZlIHRoZXNlIHJlbGF0aXZlIHBhdGhzIG9uY2UgY29uc3VtZXJzIGZyb20gZ2x1ZSBh
cmUgcmVtb3ZlZC4KKyNpbmNsdWRlICIuLi9wdWJsaWMvV2ViRHJhZ0ltYWdlUmVmLmgiCiAjaW5j
bHVkZSAiLi4vcHVibGljL1dlYk5hdmlnYXRpb25Qb2xpY3kuaCIKICNpbmNsdWRlICIuLi9wdWJs
aWMvV2ViUG9pbnQuaCIKICNpbmNsdWRlICIuLi9wdWJsaWMvV2ViU2l6ZS5oIgpAQCAtMjcwLDkg
KzI3MSwxMCBAQCBwdWJsaWM6CiAKICAgICAvLyBTdGFydCBhIHN5c3RlbSBkcmFnIGFuZCBkcm9w
IG9wZXJhdGlvbi4KICAgICB2b2lkIHN0YXJ0RHJhZ2dpbmcoCi0gICAgICAgIGNvbnN0IFdlYlBv
aW50JiBldmVudFBvcywKICAgICAgICAgY29uc3QgV2ViRHJhZ0RhdGEmIGRyYWdEYXRhLAotICAg
ICAgICBXZWJEcmFnT3BlcmF0aW9uc01hc2sgZHJhZ1NvdXJjZU9wZXJhdGlvbk1hc2spOworICAg
ICAgICBXZWJEcmFnT3BlcmF0aW9uc01hc2sgZHJhZ1NvdXJjZU9wZXJhdGlvbk1hc2ssCisgICAg
ICAgIFdlYkRyYWdJbWFnZVJlZiBkcmFnSW1hZ2UsCisgICAgICAgIGNvbnN0IFdlYlBvaW50JiBk
cmFnSW1hZ2VPZmZzZXQpOwogCiAgICAgdm9pZCBzdWdnZXN0aW9uc1BvcHVwRGlkSGlkZSgpCiAg
ICAgewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>50132</attachid>
            <date>2010-03-05 15:23:09 -0800</date>
            <delta_ts>2010-03-05 16:01:02 -0800</delta_ts>
            <desc>style, 2</desc>
            <filename>drag.diff</filename>
            <type>text/plain</type>
            <size>9633</size>
            <attacher name="Evan Stade">estade</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NTU5MykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjEgQEAKKzIwMTAtMDMtMDUgIEV2YW4gU3RhZGUgIDxlc3RhZGVAY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtj
aHJvbWl1bV0gbmVlZCBEcmFnSW1hZ2UgaW1wbGVtZW50YXRpb24KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM1ODExCisKKyAgICAgICAgQmFzaWMgaW1w
bGVtZW50YXRpb24gdXNpbmcgU2tCaXRtYXAuIFRyYW5zZm9ybWF0aW9ucyBhcmUgbm90IHN1cHBv
cnRlZAorICAgICAgICB5ZXQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9EcmFnSW1h
Z2VDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpkcmFnSW1hZ2VTaXplKToKKyAgICAg
ICAgKFdlYkNvcmU6OmRlbGV0ZURyYWdJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpzY2FsZURy
YWdJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVEcmFnSW1hZ2VGcm9tSW1hZ2UpOgor
ICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlRHJhZ0ltYWdlSWNvbkZvckNhY2hlZEltYWdlKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9EcmFnSW1hZ2VSZWYuaDoKKwogMjAxMC0wMy0wNCAg
RHVtaXRydSBEYW5pbGl1YyAgPGR1bWlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IEFkYW0gQmFydGguCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0RyYWdEYXRh
UmVmLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9EcmFnRGF0YVJl
Zi5oCShyZXZpc2lvbiA1NTU2MykKKysrIFdlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRHJhZ0Rh
dGFSZWYuaAkod29ya2luZyBjb3B5KQpAQCAtMzUsNyArMzUsNyBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLSAgICB0eXBlZGVmIENocm9taXVtRGF0YU9iamVjdCogRHJhZ0RhdGFSZWY7Cit0
eXBlZGVmIENocm9taXVtRGF0YU9iamVjdCogRHJhZ0RhdGFSZWY7CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKIApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9EcmFnSW1hZ2VDaHJv
bWl1bS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9EcmFnSW1h
Z2VDaHJvbWl1bS5jcHAJKHJldmlzaW9uIDU1NTYzKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9jaHJv
bWl1bS9EcmFnSW1hZ2VDaHJvbWl1bS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDE0
IEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJEcmFnSW1hZ2UuaCIKKyNpbmNs
dWRlICJJbWFnZS5oIgorI2luY2x1ZGUgIk5hdGl2ZUltYWdlU2tpYS5oIgorI2luY2x1ZGUgIlJl
ZlB0ci5oIgorI2luY2x1ZGUgIlNrQml0bWFwLmgiCisKKyNpZiBQTEFURk9STShNQUMpCisjaW5j
bHVkZSAic2tpYS9leHQvc2tpYV91dGlsc19tYWMuaCIKKyNlbmRpZgogCiAjaW5jbHVkZSAiTm90
SW1wbGVtZW50ZWQuaCIKIApAQCAtMzcsMzcgKzQ1LDQ2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogSW50U2l6ZSBkcmFnSW1hZ2VTaXplKERyYWdJbWFnZVJlZiBpbWFnZSkKIHsKLSAgICBub3RJ
bXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBJbnRTaXplKCk7CisgICAgaWYgKCFpbWFnZSkKKyAg
ICAgICAgcmV0dXJuIEludFNpemUoKTsKKworICAgIHJldHVybiBJbnRTaXplKGltYWdlLT53aWR0
aCgpLCBpbWFnZS0+aGVpZ2h0KCkpOwogfQogCiB2b2lkIGRlbGV0ZURyYWdJbWFnZShEcmFnSW1h
Z2VSZWYgaW1hZ2UpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBkZWxldGUgaW1hZ2U7
CiB9CiAKIERyYWdJbWFnZVJlZiBzY2FsZURyYWdJbWFnZShEcmFnSW1hZ2VSZWYgaW1hZ2UsIEZs
b2F0U2l6ZSBzY2FsZSkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiAwOwor
ICAgIHJldHVybiBpbWFnZTsKIH0KLSAgICAKKwogRHJhZ0ltYWdlUmVmIGRpc3NvbHZlRHJhZ0lt
YWdlVG9GcmFjdGlvbihEcmFnSW1hZ2VSZWYgaW1hZ2UsIGZsb2F0KQogewogICAgIG5vdEltcGxl
bWVudGVkKCk7CiAgICAgcmV0dXJuIGltYWdlOwogfQotICAgICAgICAKLURyYWdJbWFnZVJlZiBj
cmVhdGVEcmFnSW1hZ2VGcm9tSW1hZ2UoSW1hZ2UqIGltZykKLXsgICAgCi0gICAgbm90SW1wbGVt
ZW50ZWQoKTsKLSAgICByZXR1cm4gMDsKKworRHJhZ0ltYWdlUmVmIGNyZWF0ZURyYWdJbWFnZUZy
b21JbWFnZShJbWFnZSogaW1hZ2UpCit7CisjaWYgUExBVEZPUk0oTUFDKQorICAgIFNrQml0bWFw
IGJpdG1hcCA9IGdmeDo6Q0dJbWFnZVRvU2tCaXRtYXAoaW1hZ2UtPmdldENHSW1hZ2VSZWYoKSk7
CisgICAgU2tCaXRtYXAqIGJpdG1hcFJlZiA9ICZiaXRtYXA7CisjZWxzZQorICAgIFNrQml0bWFw
KiBiaXRtYXBSZWYgPSBpbWFnZS0+bmF0aXZlSW1hZ2VGb3JDdXJyZW50RnJhbWUoKTsKKyNlbmRp
ZgorICAgIFNrQml0bWFwKiBkcmFnSW1hZ2UgPSBuZXcgU2tCaXRtYXAoKTsKKyAgICBiaXRtYXBS
ZWYtPmNvcHlUbyhkcmFnSW1hZ2UsIGJpdG1hcFJlZi0+Y29uZmlnKCkpOworICAgIHJldHVybiBk
cmFnSW1hZ2U7CiB9Ci0gICAgCisKIERyYWdJbWFnZVJlZiBjcmVhdGVEcmFnSW1hZ2VJY29uRm9y
Q2FjaGVkSW1hZ2UoQ2FjaGVkSW1hZ2UqKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAg
cmV0dXJuIDA7ICAgICAKKyAgICByZXR1cm4gMDsKIH0KLSAgICAKKwogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9EcmFnSW1hZ2VSZWYuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0RyYWdJbWFnZVJlZi5oCShy
ZXZpc2lvbiA1NTU2MykKKysrIFdlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRHJhZ0ltYWdlUmVm
LmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDExICsyOSwxMSBAQAogI2lmbmRlZiBEcmFnSW1hZ2VS
ZWZfaAogI2RlZmluZSBEcmFnSW1hZ2VSZWZfaAogCitjbGFzcyBTa0JpdG1hcDsKKwogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi0gICAgLy8gRklYTUU6IE5lZWQgdG8gc3VwcG9ydCBpbWFnZSBkcmFn
LW4tZHJvcC4gIEZvciBub3csIHdlIGp1c3QgYWxsb3cgdGhpbmdzCi0gICAgLy8gdG8gY29tcGls
ZSBieSBkZWZpbmluZyB0aGlzIGR1bW15IHR5cGUuCi0gICAgdHlwZWRlZiB2b2lkKiBEcmFnSW1h
Z2VSZWY7CisgICAgdHlwZWRlZiBTa0JpdG1hcCogRHJhZ0ltYWdlUmVmOwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCiAKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gNTU1OTcpCisrKyBXZWJL
aXQvY2hyb21pdW0vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjEgQEAKKzIw
MTAtMDMtMDUgIEV2YW4gU3RhZGUgIDxlc3RhZGVAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtjaHJvbWl1bV0gbmVlZCBEcmFn
SW1hZ2UgaW1wbGVtZW50YXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTM1ODExCisKKyAgICAgICAgVXNlIHRoZSBEcmFnSW1hZ2VSZWYgdGhhdCB0
aGUgRHJhZ0NvbnRyb2xsZXIgcGFzc2VzIHRvIHVzLgorICAgICAgICBLZWVwIHVzaW5nIHRoZSBv
bGQgV2ViVmlld0NsaWVudCBpbnRlcmZhY2UgdW50aWwgdGhlIENocm9taXVtIHNpZGUgb2YKKyAg
ICAgICAgdGhpcyBwYXRjaCBpcyBsYW5kZWQuCisKKyAgICAgICAgKiBwdWJsaWMvV2ViRHJhZ0lt
YWdlUmVmLmg6IEFkZGVkLgorICAgICAgICAqIHNyYy9EcmFnQ2xpZW50SW1wbC5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OkRyYWdDbGllbnRJbXBsOjpzdGFydERyYWcpOgorICAgICAgICAqIHNyYy9X
ZWJWaWV3SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzdGFydERyYWdn
aW5nKToKKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwuaDoKKwogMjAxMC0wMy0wNSAgSWx5YSBU
aWtob25vdnNreSAgPGxvaXNsb0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
UGF2ZWwgRmVsZG1hbi4KSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRHJhZ0ltYWdl
UmVmLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJEcmFnSW1hZ2VS
ZWYuaAkocmV2aXNpb24gMCkKKysrIFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRHJhZ0ltYWdl
UmVmLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICog
ICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0
cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9k
dWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlv
ciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAq
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYkRyYWdJbWFnZVJl
Zl9oCisjZGVmaW5lIFdlYkRyYWdJbWFnZVJlZl9oCisKKyNpbmNsdWRlIDxTa0JpdG1hcC5oPgor
CituYW1lc3BhY2UgV2ViS2l0IHsKKwordHlwZWRlZiBTa0JpdG1hcCogV2ViRHJhZ0ltYWdlUmVm
OworCit9CisKKyNlbmRpZgpJbmRleDogV2ViS2l0L2Nocm9taXVtL3NyYy9EcmFnQ2xpZW50SW1w
bC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3NyYy9EcmFnQ2xpZW50SW1wbC5j
cHAJKHJldmlzaW9uIDU1NTYzKQorKysgV2ViS2l0L2Nocm9taXVtL3NyYy9EcmFnQ2xpZW50SW1w
bC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDEwICszMCwxMSBAQAogCiAjaW5jbHVkZSAiY29u
ZmlnLmgiCiAjaW5jbHVkZSAiRHJhZ0NsaWVudEltcGwuaCIKLQorI2luY2x1ZGUgIkRyYWdJbWFn
ZVJlZi5oIgogI2luY2x1ZGUgIkNocm9taXVtRGF0YU9iamVjdC5oIgogI2luY2x1ZGUgIkNsaXBi
b2FyZENocm9taXVtLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJOYXRpdmVJbWFn
ZVNraWEuaCIKICNpbmNsdWRlICJXZWJEcmFnRGF0YS5oIgogI2luY2x1ZGUgIldlYlZpZXdDbGll
bnQuaCIKICNpbmNsdWRlICJXZWJWaWV3SW1wbC5oIgpAQCAtODEsOCArODIsMTEgQEAgdm9pZCBE
cmFnQ2xpZW50SW1wbDo6c3RhcnREcmFnKERyYWdJbWFnZQogCiAgICAgRHJhZ09wZXJhdGlvbiBk
cmFnT3BlcmF0aW9uTWFzayA9IGNsaXBib2FyZC0+c291cmNlT3BlcmF0aW9uKCk7CiAKKyAgICBJ
bnRTaXplIG9mZnNldFNpemUoZXZlbnRQb3MgLSBkcmFnSW1hZ2VPcmlnaW4pOworICAgIFdlYlBv
aW50IG9mZnNldFBvaW50KG9mZnNldFNpemUud2lkdGgoKSwgb2Zmc2V0U2l6ZS5oZWlnaHQoKSk7
CiAgICAgbV93ZWJWaWV3LT5zdGFydERyYWdnaW5nKAotICAgICAgICBldmVudFBvcywgZHJhZ0Rh
dGEsIHN0YXRpY19jYXN0PFdlYkRyYWdPcGVyYXRpb25zTWFzaz4oZHJhZ09wZXJhdGlvbk1hc2sp
KTsKKyAgICAgICAgZHJhZ0RhdGEsIHN0YXRpY19jYXN0PFdlYkRyYWdPcGVyYXRpb25zTWFzaz4o
ZHJhZ09wZXJhdGlvbk1hc2spLAorICAgICAgICBzdGF0aWNfY2FzdDxXZWJEcmFnSW1hZ2VSZWY+
KGRyYWdJbWFnZSksIG9mZnNldFBvaW50KTsKIH0KIAogRHJhZ0ltYWdlUmVmIERyYWdDbGllbnRJ
bXBsOjpjcmVhdGVEcmFnSW1hZ2VGb3JMaW5rKEtVUkwmLCBjb25zdCBTdHJpbmcmIGxhYmVsLCBG
cmFtZSopCkluZGV4OiBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAkocmV2aXNpb24gNTU1
NjMpCisrKyBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTgyMiwxNSArMTgyMiwxNyBAQCBib29sIFdlYlZpZXdJbXBsOjpuYXZpZ2F0aW9uUG9s
aWN5RnJvbU1vCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgV2ViVmlld0ltcGw6OnN0YXJ0
RHJhZ2dpbmcoY29uc3QgV2ViUG9pbnQmIGV2ZW50UG9zLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb25zdCBXZWJEcmFnRGF0YSYgZHJhZ0RhdGEsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFdlYkRyYWdPcGVyYXRpb25zTWFzayBtYXNrKQordm9pZCBXZWJWaWV3
SW1wbDo6c3RhcnREcmFnZ2luZyhjb25zdCBXZWJEcmFnRGF0YSYgZHJhZ0RhdGEsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFdlYkRyYWdPcGVyYXRpb25zTWFzayBtYXNrLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJEcmFnSW1hZ2VSZWYgZHJhZ0ltYWdlLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBXZWJQb2ludCYgZHJhZ0ltYWdl
T2Zmc2V0KQogewogICAgIGlmICghbV9jbGllbnQpCiAgICAgICAgIHJldHVybjsKICAgICBBU1NF
UlQoIW1fZG9pbmdEcmFnQW5kRHJvcCk7CiAgICAgbV9kb2luZ0RyYWdBbmREcm9wID0gdHJ1ZTsK
LSAgICBtX2NsaWVudC0+c3RhcnREcmFnZ2luZyhldmVudFBvcywgZHJhZ0RhdGEsIG1hc2spOwor
ICAgIC8vIEZJWE1FOiBwYXNzIGFsb25nIHxkcmFnSW1hZ2V8IGFuZCB8ZHJhZ0ltYWdlT2Zmc2V0
fC4KKyAgICBtX2NsaWVudC0+c3RhcnREcmFnZ2luZyhXZWJQb2ludCgpLCBkcmFnRGF0YSwgbWFz
ayk7CiB9CiAKIHZvaWQgV2ViVmlld0ltcGw6OnNldEN1cnJlbnRIaXN0b3J5SXRlbShIaXN0b3J5
SXRlbSogaXRlbSkKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgJKHJldmlzaW9uIDU1
NTYzKQorKysgV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCSh3b3JraW5nIGNvcHkp
CkBAIC0zMiw2ICszMiw3IEBACiAjZGVmaW5lIFdlYlZpZXdJbXBsX2gKIAogLy8gRklYTUU6IFJl
bW92ZSB0aGVzZSByZWxhdGl2ZSBwYXRocyBvbmNlIGNvbnN1bWVycyBmcm9tIGdsdWUgYXJlIHJl
bW92ZWQuCisjaW5jbHVkZSAiLi4vcHVibGljL1dlYkRyYWdJbWFnZVJlZi5oIgogI2luY2x1ZGUg
Ii4uL3B1YmxpYy9XZWJOYXZpZ2F0aW9uUG9saWN5LmgiCiAjaW5jbHVkZSAiLi4vcHVibGljL1dl
YlBvaW50LmgiCiAjaW5jbHVkZSAiLi4vcHVibGljL1dlYlNpemUuaCIKQEAgLTI3MCw5ICsyNzEs
MTAgQEAgcHVibGljOgogCiAgICAgLy8gU3RhcnQgYSBzeXN0ZW0gZHJhZyBhbmQgZHJvcCBvcGVy
YXRpb24uCiAgICAgdm9pZCBzdGFydERyYWdnaW5nKAotICAgICAgICBjb25zdCBXZWJQb2ludCYg
ZXZlbnRQb3MsCiAgICAgICAgIGNvbnN0IFdlYkRyYWdEYXRhJiBkcmFnRGF0YSwKLSAgICAgICAg
V2ViRHJhZ09wZXJhdGlvbnNNYXNrIGRyYWdTb3VyY2VPcGVyYXRpb25NYXNrKTsKKyAgICAgICAg
V2ViRHJhZ09wZXJhdGlvbnNNYXNrIGRyYWdTb3VyY2VPcGVyYXRpb25NYXNrLAorICAgICAgICBX
ZWJEcmFnSW1hZ2VSZWYgZHJhZ0ltYWdlLAorICAgICAgICBjb25zdCBXZWJQb2ludCYgZHJhZ0lt
YWdlT2Zmc2V0KTsKIAogICAgIHZvaWQgc3VnZ2VzdGlvbnNQb3B1cERpZEhpZGUoKQogICAgIHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>50136</attachid>
            <date>2010-03-05 16:01:02 -0800</date>
            <delta_ts>2010-03-08 11:39:11 -0800</delta_ts>
            <desc>mac build fix</desc>
            <filename>drag.diff</filename>
            <type>text/plain</type>
            <size>9623</size>
            <attacher name="Evan Stade">estade</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NTU5MykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjEgQEAKKzIwMTAtMDMtMDUgIEV2YW4gU3RhZGUgIDxlc3RhZGVAY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtj
aHJvbWl1bV0gbmVlZCBEcmFnSW1hZ2UgaW1wbGVtZW50YXRpb24KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM1ODExCisKKyAgICAgICAgQmFzaWMgaW1w
bGVtZW50YXRpb24gdXNpbmcgU2tCaXRtYXAuIFRyYW5zZm9ybWF0aW9ucyBhcmUgbm90IHN1cHBv
cnRlZAorICAgICAgICB5ZXQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9EcmFnSW1h
Z2VDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpkcmFnSW1hZ2VTaXplKToKKyAgICAg
ICAgKFdlYkNvcmU6OmRlbGV0ZURyYWdJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpzY2FsZURy
YWdJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVEcmFnSW1hZ2VGcm9tSW1hZ2UpOgor
ICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlRHJhZ0ltYWdlSWNvbkZvckNhY2hlZEltYWdlKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9EcmFnSW1hZ2VSZWYuaDoKKwogMjAxMC0wMy0wNCAg
RHVtaXRydSBEYW5pbGl1YyAgPGR1bWlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IEFkYW0gQmFydGguCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0RyYWdEYXRh
UmVmLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9EcmFnRGF0YVJl
Zi5oCShyZXZpc2lvbiA1NTU2MykKKysrIFdlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRHJhZ0Rh
dGFSZWYuaAkod29ya2luZyBjb3B5KQpAQCAtMzUsNyArMzUsNyBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLSAgICB0eXBlZGVmIENocm9taXVtRGF0YU9iamVjdCogRHJhZ0RhdGFSZWY7Cit0
eXBlZGVmIENocm9taXVtRGF0YU9iamVjdCogRHJhZ0RhdGFSZWY7CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKIApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9EcmFnSW1hZ2VDaHJv
bWl1bS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9EcmFnSW1h
Z2VDaHJvbWl1bS5jcHAJKHJldmlzaW9uIDU1NTYzKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9jaHJv
bWl1bS9EcmFnSW1hZ2VDaHJvbWl1bS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDE0
IEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJEcmFnSW1hZ2UuaCIKKyNpbmNs
dWRlICJJbWFnZS5oIgorI2luY2x1ZGUgIk5hdGl2ZUltYWdlU2tpYS5oIgorI2luY2x1ZGUgIlJl
ZlB0ci5oIgorI2luY2x1ZGUgIlNrQml0bWFwLmgiCisKKyNpZiBPUyhEQVJXSU4pCisjaW5jbHVk
ZSAic2tpYS9leHQvc2tpYV91dGlsc19tYWMuaCIKKyNlbmRpZgogCiAjaW5jbHVkZSAiTm90SW1w
bGVtZW50ZWQuaCIKIApAQCAtMzcsMzcgKzQ1LDQ2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
SW50U2l6ZSBkcmFnSW1hZ2VTaXplKERyYWdJbWFnZVJlZiBpbWFnZSkKIHsKLSAgICBub3RJbXBs
ZW1lbnRlZCgpOwotICAgIHJldHVybiBJbnRTaXplKCk7CisgICAgaWYgKCFpbWFnZSkKKyAgICAg
ICAgcmV0dXJuIEludFNpemUoKTsKKworICAgIHJldHVybiBJbnRTaXplKGltYWdlLT53aWR0aCgp
LCBpbWFnZS0+aGVpZ2h0KCkpOwogfQogCiB2b2lkIGRlbGV0ZURyYWdJbWFnZShEcmFnSW1hZ2VS
ZWYgaW1hZ2UpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBkZWxldGUgaW1hZ2U7CiB9
CiAKIERyYWdJbWFnZVJlZiBzY2FsZURyYWdJbWFnZShEcmFnSW1hZ2VSZWYgaW1hZ2UsIEZsb2F0
U2l6ZSBzY2FsZSkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiAwOworICAg
IHJldHVybiBpbWFnZTsKIH0KLSAgICAKKwogRHJhZ0ltYWdlUmVmIGRpc3NvbHZlRHJhZ0ltYWdl
VG9GcmFjdGlvbihEcmFnSW1hZ2VSZWYgaW1hZ2UsIGZsb2F0KQogewogICAgIG5vdEltcGxlbWVu
dGVkKCk7CiAgICAgcmV0dXJuIGltYWdlOwogfQotICAgICAgICAKLURyYWdJbWFnZVJlZiBjcmVh
dGVEcmFnSW1hZ2VGcm9tSW1hZ2UoSW1hZ2UqIGltZykKLXsgICAgCi0gICAgbm90SW1wbGVtZW50
ZWQoKTsKLSAgICByZXR1cm4gMDsKKworRHJhZ0ltYWdlUmVmIGNyZWF0ZURyYWdJbWFnZUZyb21J
bWFnZShJbWFnZSogaW1hZ2UpCit7CisjaWYgT1MoREFSV0lOKQorICAgIFNrQml0bWFwIGJpdG1h
cCA9IGdmeDo6Q0dJbWFnZVRvU2tCaXRtYXAoaW1hZ2UtPmdldENHSW1hZ2VSZWYoKSk7CisgICAg
U2tCaXRtYXAqIGJpdG1hcFJlZiA9ICZiaXRtYXA7CisjZWxzZQorICAgIFNrQml0bWFwKiBiaXRt
YXBSZWYgPSBpbWFnZS0+bmF0aXZlSW1hZ2VGb3JDdXJyZW50RnJhbWUoKTsKKyNlbmRpZgorICAg
IFNrQml0bWFwKiBkcmFnSW1hZ2UgPSBuZXcgU2tCaXRtYXAoKTsKKyAgICBiaXRtYXBSZWYtPmNv
cHlUbyhkcmFnSW1hZ2UsIGJpdG1hcFJlZi0+Y29uZmlnKCkpOworICAgIHJldHVybiBkcmFnSW1h
Z2U7CiB9Ci0gICAgCisKIERyYWdJbWFnZVJlZiBjcmVhdGVEcmFnSW1hZ2VJY29uRm9yQ2FjaGVk
SW1hZ2UoQ2FjaGVkSW1hZ2UqKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJu
IDA7ICAgICAKKyAgICByZXR1cm4gMDsKIH0KLSAgICAKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9EcmFnSW1hZ2VSZWYuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0RyYWdJbWFnZVJlZi5oCShyZXZpc2lv
biA1NTU2MykKKysrIFdlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRHJhZ0ltYWdlUmVmLmgJKHdv
cmtpbmcgY29weSkKQEAgLTI5LDExICsyOSwxMSBAQAogI2lmbmRlZiBEcmFnSW1hZ2VSZWZfaAog
I2RlZmluZSBEcmFnSW1hZ2VSZWZfaAogCitjbGFzcyBTa0JpdG1hcDsKKwogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi0gICAgLy8gRklYTUU6IE5lZWQgdG8gc3VwcG9ydCBpbWFnZSBkcmFnLW4tZHJv
cC4gIEZvciBub3csIHdlIGp1c3QgYWxsb3cgdGhpbmdzCi0gICAgLy8gdG8gY29tcGlsZSBieSBk
ZWZpbmluZyB0aGlzIGR1bW15IHR5cGUuCi0gICAgdHlwZWRlZiB2b2lkKiBEcmFnSW1hZ2VSZWY7
Cit0eXBlZGVmIFNrQml0bWFwKiBEcmFnSW1hZ2VSZWY7CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKIApJbmRleDogV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJL
aXQvY2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiA1NTU5NykKKysrIFdlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMSBAQAorMjAxMC0wMy0wNSAg
RXZhbiBTdGFkZSAgPGVzdGFkZUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW2Nocm9taXVtXSBuZWVkIERyYWdJbWFnZSBpbXBs
ZW1lbnRhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MzU4MTEKKworICAgICAgICBVc2UgdGhlIERyYWdJbWFnZVJlZiB0aGF0IHRoZSBEcmFnQ29u
dHJvbGxlciBwYXNzZXMgdG8gdXMuCisgICAgICAgIEtlZXAgdXNpbmcgdGhlIG9sZCBXZWJWaWV3
Q2xpZW50IGludGVyZmFjZSB1bnRpbCB0aGUgQ2hyb21pdW0gc2lkZSBvZgorICAgICAgICB0aGlz
IHBhdGNoIGlzIGxhbmRlZC4KKworICAgICAgICAqIHB1YmxpYy9XZWJEcmFnSW1hZ2VSZWYuaDog
QWRkZWQuCisgICAgICAgICogc3JjL0RyYWdDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6RHJhZ0NsaWVudEltcGw6OnN0YXJ0RHJhZyk6CisgICAgICAgICogc3JjL1dlYlZpZXdJbXBs
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnN0YXJ0RHJhZ2dpbmcpOgorICAg
ICAgICAqIHNyYy9XZWJWaWV3SW1wbC5oOgorCiAyMDEwLTAzLTA1ICBJbHlhIFRpa2hvbm92c2t5
ICA8bG9pc2xvQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBQYXZlbCBGZWxk
bWFuLgpJbmRleDogV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJEcmFnSW1hZ2VSZWYuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkRyYWdJbWFnZVJlZi5oCShyZXZp
c2lvbiAwKQorKysgV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJEcmFnSW1hZ2VSZWYuaAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSw0MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisg
KiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0
aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250
cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2
ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4g
cGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZ
UklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBU
TywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViRHJhZ0ltYWdlUmVmX2gKKyNkZWZp
bmUgV2ViRHJhZ0ltYWdlUmVmX2gKKworI2luY2x1ZGUgPFNrQml0bWFwLmg+CisKK25hbWVzcGFj
ZSBXZWJLaXQgeworCit0eXBlZGVmIFNrQml0bWFwKiBXZWJEcmFnSW1hZ2VSZWY7CisKK30KKwor
I2VuZGlmCkluZGV4OiBXZWJLaXQvY2hyb21pdW0vc3JjL0RyYWdDbGllbnRJbXBsLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vc3JjL0RyYWdDbGllbnRJbXBsLmNwcAkocmV2aXNp
b24gNTU1NjMpCisrKyBXZWJLaXQvY2hyb21pdW0vc3JjL0RyYWdDbGllbnRJbXBsLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMzAsMTAgKzMwLDExIEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKICNp
bmNsdWRlICJEcmFnQ2xpZW50SW1wbC5oIgotCisjaW5jbHVkZSAiRHJhZ0ltYWdlUmVmLmgiCiAj
aW5jbHVkZSAiQ2hyb21pdW1EYXRhT2JqZWN0LmgiCiAjaW5jbHVkZSAiQ2xpcGJvYXJkQ2hyb21p
dW0uaCIKICNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIk5hdGl2ZUltYWdlU2tpYS5oIgog
I2luY2x1ZGUgIldlYkRyYWdEYXRhLmgiCiAjaW5jbHVkZSAiV2ViVmlld0NsaWVudC5oIgogI2lu
Y2x1ZGUgIldlYlZpZXdJbXBsLmgiCkBAIC04MSw4ICs4MiwxMSBAQCB2b2lkIERyYWdDbGllbnRJ
bXBsOjpzdGFydERyYWcoRHJhZ0ltYWdlCiAKICAgICBEcmFnT3BlcmF0aW9uIGRyYWdPcGVyYXRp
b25NYXNrID0gY2xpcGJvYXJkLT5zb3VyY2VPcGVyYXRpb24oKTsKIAorICAgIEludFNpemUgb2Zm
c2V0U2l6ZShldmVudFBvcyAtIGRyYWdJbWFnZU9yaWdpbik7CisgICAgV2ViUG9pbnQgb2Zmc2V0
UG9pbnQob2Zmc2V0U2l6ZS53aWR0aCgpLCBvZmZzZXRTaXplLmhlaWdodCgpKTsKICAgICBtX3dl
YlZpZXctPnN0YXJ0RHJhZ2dpbmcoCi0gICAgICAgIGV2ZW50UG9zLCBkcmFnRGF0YSwgc3RhdGlj
X2Nhc3Q8V2ViRHJhZ09wZXJhdGlvbnNNYXNrPihkcmFnT3BlcmF0aW9uTWFzaykpOworICAgICAg
ICBkcmFnRGF0YSwgc3RhdGljX2Nhc3Q8V2ViRHJhZ09wZXJhdGlvbnNNYXNrPihkcmFnT3BlcmF0
aW9uTWFzayksCisgICAgICAgIHN0YXRpY19jYXN0PFdlYkRyYWdJbWFnZVJlZj4oZHJhZ0ltYWdl
KSwgb2Zmc2V0UG9pbnQpOwogfQogCiBEcmFnSW1hZ2VSZWYgRHJhZ0NsaWVudEltcGw6OmNyZWF0
ZURyYWdJbWFnZUZvckxpbmsoS1VSTCYsIGNvbnN0IFN0cmluZyYgbGFiZWwsIEZyYW1lKikKSW5k
ZXg6IFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCShyZXZpc2lvbiA1NTU2MykKKysrIFdl
YktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xODIy
LDE1ICsxODIyLDE3IEBAIGJvb2wgV2ViVmlld0ltcGw6Om5hdmlnYXRpb25Qb2xpY3lGcm9tTW8K
ICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBXZWJWaWV3SW1wbDo6c3RhcnREcmFnZ2luZyhj
b25zdCBXZWJQb2ludCYgZXZlbnRQb3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNvbnN0IFdlYkRyYWdEYXRhJiBkcmFnRGF0YSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgV2ViRHJhZ09wZXJhdGlvbnNNYXNrIG1hc2spCit2b2lkIFdlYlZpZXdJbXBsOjpzdGFy
dERyYWdnaW5nKGNvbnN0IFdlYkRyYWdEYXRhJiBkcmFnRGF0YSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgV2ViRHJhZ09wZXJhdGlvbnNNYXNrIG1hc2ssCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFdlYkRyYWdJbWFnZVJlZiBkcmFnSW1hZ2UsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFdlYlBvaW50JiBkcmFnSW1hZ2VPZmZzZXQpCiB7
CiAgICAgaWYgKCFtX2NsaWVudCkKICAgICAgICAgcmV0dXJuOwogICAgIEFTU0VSVCghbV9kb2lu
Z0RyYWdBbmREcm9wKTsKICAgICBtX2RvaW5nRHJhZ0FuZERyb3AgPSB0cnVlOwotICAgIG1fY2xp
ZW50LT5zdGFydERyYWdnaW5nKGV2ZW50UG9zLCBkcmFnRGF0YSwgbWFzayk7CisgICAgLy8gRklY
TUU6IHBhc3MgYWxvbmcgfGRyYWdJbWFnZXwgYW5kIHxkcmFnSW1hZ2VPZmZzZXR8LgorICAgIG1f
Y2xpZW50LT5zdGFydERyYWdnaW5nKFdlYlBvaW50KCksIGRyYWdEYXRhLCBtYXNrKTsKIH0KIAog
dm9pZCBXZWJWaWV3SW1wbDo6c2V0Q3VycmVudEhpc3RvcnlJdGVtKEhpc3RvcnlJdGVtKiBpdGVt
KQpJbmRleDogV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaAkocmV2aXNpb24gNTU1NjMpCisrKyBX
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgJKHdvcmtpbmcgY29weSkKQEAgLTMyLDYg
KzMyLDcgQEAKICNkZWZpbmUgV2ViVmlld0ltcGxfaAogCiAvLyBGSVhNRTogUmVtb3ZlIHRoZXNl
IHJlbGF0aXZlIHBhdGhzIG9uY2UgY29uc3VtZXJzIGZyb20gZ2x1ZSBhcmUgcmVtb3ZlZC4KKyNp
bmNsdWRlICIuLi9wdWJsaWMvV2ViRHJhZ0ltYWdlUmVmLmgiCiAjaW5jbHVkZSAiLi4vcHVibGlj
L1dlYk5hdmlnYXRpb25Qb2xpY3kuaCIKICNpbmNsdWRlICIuLi9wdWJsaWMvV2ViUG9pbnQuaCIK
ICNpbmNsdWRlICIuLi9wdWJsaWMvV2ViU2l6ZS5oIgpAQCAtMjcwLDkgKzI3MSwxMCBAQCBwdWJs
aWM6CiAKICAgICAvLyBTdGFydCBhIHN5c3RlbSBkcmFnIGFuZCBkcm9wIG9wZXJhdGlvbi4KICAg
ICB2b2lkIHN0YXJ0RHJhZ2dpbmcoCi0gICAgICAgIGNvbnN0IFdlYlBvaW50JiBldmVudFBvcywK
ICAgICAgICAgY29uc3QgV2ViRHJhZ0RhdGEmIGRyYWdEYXRhLAotICAgICAgICBXZWJEcmFnT3Bl
cmF0aW9uc01hc2sgZHJhZ1NvdXJjZU9wZXJhdGlvbk1hc2spOworICAgICAgICBXZWJEcmFnT3Bl
cmF0aW9uc01hc2sgZHJhZ1NvdXJjZU9wZXJhdGlvbk1hc2ssCisgICAgICAgIFdlYkRyYWdJbWFn
ZVJlZiBkcmFnSW1hZ2UsCisgICAgICAgIGNvbnN0IFdlYlBvaW50JiBkcmFnSW1hZ2VPZmZzZXQp
OwogCiAgICAgdm9pZCBzdWdnZXN0aW9uc1BvcHVwRGlkSGlkZSgpCiAgICAgewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>50241</attachid>
            <date>2010-03-08 11:39:11 -0800</date>
            <delta_ts>2010-03-08 19:24:49 -0800</delta_ts>
            <desc>review comments</desc>
            <filename>drag.diff</filename>
            <type>text/plain</type>
            <size>0</size>
            <attacher name="Evan Stade">estade</attacher>
            
              <data encoding="base64"></data>
<flag name="review"
          id="33315"
          type_id="1"
          status="-"
          setter="fishd"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>50269</attachid>
            <date>2010-03-08 19:24:49 -0800</date>
            <delta_ts>2010-03-16 19:28:03 -0700</delta_ts>
            <desc>use WebImage, no mac implementation</desc>
            <filename>drag.diff</filename>
            <type>text/plain</type>
            <size>16527</size>
            <attacher name="Evan Stade">estade</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NTcwMykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzMgQEAKKzIwMTAtMDMtMDggIEV2YW4gU3RhZGUgIDxlc3RhZGVAY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisKKyAgICAgICAg
W2Nocm9taXVtXSBuZWVkIERyYWdJbWFnZSBpbXBsZW1lbnRhdGlvbgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzU4MTEKKworICAgICAgICBCYXNpYyBp
bXBsZW1lbnRhdGlvbiB1c2luZyBTa0JpdG1hcC4gVHJhbnNmb3JtYXRpb25zIGFyZSBub3Qgc3Vw
cG9ydGVkCisgICAgICAgIHlldC4gTm8gaW1wbGVtZW50YXRpb24gZm9yIG1hYy4KKworICAgICAg
ICAqIFdlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9EcmFnSW1hZ2VDaHJvbWl1bS5jcHA6IFJlbW92ZWQu
CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vRHJhZ0ltYWdlQ2hyb21pdW1NYWMuY3BwOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmRyYWdJbWFnZVNpemUpOgorICAgICAgICAoV2ViQ29y
ZTo6ZGVsZXRlRHJhZ0ltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OnNjYWxlRHJhZ0ltYWdlKToK
KyAgICAgICAgKFdlYkNvcmU6OmRpc3NvbHZlRHJhZ0ltYWdlVG9GcmFjdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpjcmVhdGVEcmFnSW1hZ2VGcm9tSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6
Y3JlYXRlRHJhZ0ltYWdlSWNvbkZvckNhY2hlZEltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9j
aHJvbWl1bS9EcmFnSW1hZ2VDaHJvbWl1bVNraWEuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OmRyYWdJbWFnZVNpemUpOgorICAgICAgICAoV2ViQ29yZTo6ZGVsZXRlRHJhZ0ltYWdlKToK
KyAgICAgICAgKFdlYkNvcmU6OnNjYWxlRHJhZ0ltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OmRp
c3NvbHZlRHJhZ0ltYWdlVG9GcmFjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVEcmFn
SW1hZ2VGcm9tSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlRHJhZ0ltYWdlSWNvbkZv
ckNhY2hlZEltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9EcmFnSW1hZ2VSZWYu
aDoKKwogMjAxMC0wMy0wOCAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgRGFuIEJlcm5zdGVpbi4KSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5neXBp
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS5neXBpCShyZXZpc2lvbiA1NTY3NCkKKysr
IFdlYkNvcmUvV2ViQ29yZS5neXBpCSh3b3JraW5nIGNvcHkpCkBAIC0xOTMxLDcgKzE5MzEsOCBA
QAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL0N1cnNvckNocm9taXVtLmNwcCcsCiAg
ICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vRHJhZ0RhdGFDaHJvbWl1bS5jcHAnLAogICAg
ICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL0RyYWdEYXRhUmVmLmgnLAotICAgICAgICAgICAg
J3BsYXRmb3JtL2Nocm9taXVtL0RyYWdJbWFnZUNocm9taXVtLmNwcCcsCisgICAgICAgICAgICAn
cGxhdGZvcm0vY2hyb21pdW0vRHJhZ0ltYWdlQ2hyb21pdW1NYWMuY3BwJywKKyAgICAgICAgICAg
ICdwbGF0Zm9ybS9jaHJvbWl1bS9EcmFnSW1hZ2VDaHJvbWl1bVNraWEuY3BwJywKICAgICAgICAg
ICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9EcmFnSW1hZ2VSZWYuaCcsCiAgICAgICAgICAgICAncGxh
dGZvcm0vY2hyb21pdW0vRmlsZUNob29zZXJDaHJvbWl1bS5jcHAnLAogICAgICAgICAgICAgJ3Bs
YXRmb3JtL2Nocm9taXVtL0ZpbGVTeXN0ZW1DaHJvbWl1bS5jcHAnLApJbmRleDogV2ViQ29yZS9X
ZWJDb3JlLmd5cC9XZWJDb3JlLmd5cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUuZ3lw
L1dlYkNvcmUuZ3lwCShyZXZpc2lvbiA1NTY3NCkKKysrIFdlYkNvcmUvV2ViQ29yZS5neXAvV2Vi
Q29yZS5neXAJKHdvcmtpbmcgY29weSkKQEAgLTEwNjEsNiArMTA2MSw5IEBACiAgICAgICAgICAg
ICAnLi4vcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvc2tpYS9JbWFnZURlY29kZXJTa2lhLmNwcCcs
CiAgICAgICAgICAgICAnLi4vcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMveGJtL1hCTUltYWdlRGVj
b2Rlci5jcHAnLAogICAgICAgICAgICAgJy4uL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL3hibS9Y
Qk1JbWFnZURlY29kZXIuaCcsCisKKyAgICAgICAgICAgICMgQWdhaW4sIFNraWEgaXMgbm90IHVz
ZWQgb24gTWFjLgorICAgICAgICAgICAgJy4uL3BsYXRmb3JtL2Nocm9taXVtL0RyYWdJbWFnZUNo
cm9taXVtU2tpYS5jcHAnLAogICAgICAgICAgIF0sCiAgICAgICAgICAgJ2RpcmVjdF9kZXBlbmRl
bnRfc2V0dGluZ3MnOiB7CiAgICAgICAgICAgICAnaW5jbHVkZV9kaXJzJzogWwpJbmRleDogV2Vi
Q29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9EcmFnSW1hZ2VDaHJvbWl1bS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9EcmFnSW1hZ2VDaHJvbWl1bS5jcHAJKHJldmlz
aW9uIDU1Njc0KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9EcmFnSW1hZ2VDaHJvbWl1
bS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNzMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
YykgMjAwOCwgMjAwOSwgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIAotICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0gKiBtZXQ6Ci0gKiAKLSAqICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmli
dXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUg
bmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqIAotICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICog
IkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAi
Y29uZmlnLmgiCi0jaW5jbHVkZSAiRHJhZ0ltYWdlLmgiCi0KLSNpbmNsdWRlICJOb3RJbXBsZW1l
bnRlZC5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLUludFNpemUgZHJhZ0ltYWdlU2l6ZShE
cmFnSW1hZ2VSZWYgaW1hZ2UpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4g
SW50U2l6ZSgpOwotfQotCi12b2lkIGRlbGV0ZURyYWdJbWFnZShEcmFnSW1hZ2VSZWYgaW1hZ2Up
Ci17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQotRHJhZ0ltYWdlUmVmIHNjYWxlRHJhZ0lt
YWdlKERyYWdJbWFnZVJlZiBpbWFnZSwgRmxvYXRTaXplIHNjYWxlKQotewotICAgIG5vdEltcGxl
bWVudGVkKCk7Ci0gICAgcmV0dXJuIDA7Ci19Ci0gICAgCi1EcmFnSW1hZ2VSZWYgZGlzc29sdmVE
cmFnSW1hZ2VUb0ZyYWN0aW9uKERyYWdJbWFnZVJlZiBpbWFnZSwgZmxvYXQpCi17Ci0gICAgbm90
SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gaW1hZ2U7Ci19Ci0gICAgICAgIAotRHJhZ0ltYWdl
UmVmIGNyZWF0ZURyYWdJbWFnZUZyb21JbWFnZShJbWFnZSogaW1nKQoteyAgICAKLSAgICBub3RJ
bXBsZW1lbnRlZCgpOwotICAgIHJldHVybiAwOwotfQotICAgIAotRHJhZ0ltYWdlUmVmIGNyZWF0
ZURyYWdJbWFnZUljb25Gb3JDYWNoZWRJbWFnZShDYWNoZWRJbWFnZSopCi17Ci0gICAgbm90SW1w
bGVtZW50ZWQoKTsKLSAgICByZXR1cm4gMDsgICAgIAotfQotICAgIAotfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9EcmFnSW1hZ2VDaHJvbWl1
bU1hYy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9EcmFnSW1h
Z2VDaHJvbWl1bU1hYy5jcHAJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL3BsYXRmb3JtL2Nocm9t
aXVtL0RyYWdJbWFnZUNocm9taXVtTWFjLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw3MyBA
QAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAxMCwgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIAorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKiAK
KyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBp
biB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2ds
ZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0
d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqIAorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENP
TlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQK
KyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRHJhZ0ltYWdlLmgiCisKKyNpbmNs
dWRlICJOb3RJbXBsZW1lbnRlZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0ludFNpemUg
ZHJhZ0ltYWdlU2l6ZShEcmFnSW1hZ2VSZWYgaW1hZ2UpCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKKyAgICByZXR1cm4gSW50U2l6ZSgpOworfQorCit2b2lkIGRlbGV0ZURyYWdJbWFnZShEcmFn
SW1hZ2VSZWYgaW1hZ2UpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworRHJhZ0ltYWdl
UmVmIHNjYWxlRHJhZ0ltYWdlKERyYWdJbWFnZVJlZiBpbWFnZSwgRmxvYXRTaXplIHNjYWxlKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisKK0RyYWdJbWFnZVJl
ZiBkaXNzb2x2ZURyYWdJbWFnZVRvRnJhY3Rpb24oRHJhZ0ltYWdlUmVmIGltYWdlLCBmbG9hdCkK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBpbWFnZTsKK30KKworRHJhZ0lt
YWdlUmVmIGNyZWF0ZURyYWdJbWFnZUZyb21JbWFnZShJbWFnZSogaW1nKQoreworICAgIG5vdElt
cGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisKK0RyYWdJbWFnZVJlZiBjcmVhdGVEcmFn
SW1hZ2VJY29uRm9yQ2FjaGVkSW1hZ2UoQ2FjaGVkSW1hZ2UqKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6
IFdlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRHJhZ0ltYWdlQ2hyb21pdW1Ta2lhLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0RyYWdJbWFnZUNocm9taXVtU2tp
YS5jcHAJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0RyYWdJbWFn
ZUNocm9taXVtU2tpYS5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNzggQEAKKy8qCisgKiBD
b3B5cmlnaHQgKGMpIDIwMDgsIDIwMDksIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiAKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICogCisgKiAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhl
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQor
ICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5j
LiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVu
ZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUg
d2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKiAKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklC
VVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBP
V05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
CisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRyYWdJbWFnZS5oIgorI2luY2x1ZGUgIklt
YWdlLmgiCisjaW5jbHVkZSAiTmF0aXZlSW1hZ2VTa2lhLmgiCisjaW5jbHVkZSAiUmVmUHRyLmgi
CisjaW5jbHVkZSAiU2tCaXRtYXAuaCIKKworI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworSW50U2l6ZSBkcmFnSW1hZ2VTaXplKERyYWdJbWFnZVJl
ZiBpbWFnZSkKK3sKKyAgICBpZiAoIWltYWdlKQorICAgICAgICByZXR1cm4gSW50U2l6ZSgpOwor
CisgICAgcmV0dXJuIEludFNpemUoaW1hZ2UtPndpZHRoKCksIGltYWdlLT5oZWlnaHQoKSk7Cit9
CisKK3ZvaWQgZGVsZXRlRHJhZ0ltYWdlKERyYWdJbWFnZVJlZiBpbWFnZSkKK3sKKyAgICBkZWxl
dGUgaW1hZ2U7Cit9CisKK0RyYWdJbWFnZVJlZiBzY2FsZURyYWdJbWFnZShEcmFnSW1hZ2VSZWYg
aW1hZ2UsIEZsb2F0U2l6ZSBzY2FsZSkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJl
dHVybiBpbWFnZTsKK30KKworRHJhZ0ltYWdlUmVmIGRpc3NvbHZlRHJhZ0ltYWdlVG9GcmFjdGlv
bihEcmFnSW1hZ2VSZWYgaW1hZ2UsIGZsb2F0KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgcmV0dXJuIGltYWdlOworfQorCitEcmFnSW1hZ2VSZWYgY3JlYXRlRHJhZ0ltYWdlRnJvbUlt
YWdlKEltYWdlKiBpbWFnZSkKK3sKKyAgICByZXR1cm4gbmV3IFNrQml0bWFwKCppbWFnZS0+bmF0
aXZlSW1hZ2VGb3JDdXJyZW50RnJhbWUoKSk7Cit9CisKK0RyYWdJbWFnZVJlZiBjcmVhdGVEcmFn
SW1hZ2VJY29uRm9yQ2FjaGVkSW1hZ2UoQ2FjaGVkSW1hZ2UqKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6
IFdlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRHJhZ0ltYWdlUmVmLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9EcmFnSW1hZ2VSZWYuaAkocmV2aXNpb24gNTU2NzQp
CisrKyBXZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0RyYWdJbWFnZVJlZi5oCSh3b3JraW5nIGNv
cHkpCkBAIC0yOSwxMSArMjksMTYgQEAKICNpZm5kZWYgRHJhZ0ltYWdlUmVmX2gKICNkZWZpbmUg
RHJhZ0ltYWdlUmVmX2gKIAorY2xhc3MgU2tCaXRtYXA7CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotICAgIC8vIEZJWE1FOiBOZWVkIHRvIHN1cHBvcnQgaW1hZ2UgZHJhZy1uLWRyb3AuICBGb3Ig
bm93LCB3ZSBqdXN0IGFsbG93IHRoaW5ncwotICAgIC8vIHRvIGNvbXBpbGUgYnkgZGVmaW5pbmcg
dGhpcyBkdW1teSB0eXBlLgotICAgIHR5cGVkZWYgdm9pZCogRHJhZ0ltYWdlUmVmOworI2lmIE9T
KERBUldJTikKKy8vIEZJWE1FOiBub3QgaW1wbGVtZW50ZWQuCit0eXBlZGVmIHZvaWQqIERyYWdJ
bWFnZVJlZjsKKyNlbHNlCit0eXBlZGVmIFNrQml0bWFwKiBEcmFnSW1hZ2VSZWY7CisjZW5kaWYK
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCkluZGV4OiBXZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHJldmlzaW9uIDU1
NzAzKQorKysgV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDIwIEBACisyMDEwLTAzLTA4ICBFdmFuIFN0YWRlICA8ZXN0YWRlQGNocm9taXVtLm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbY2hyb21p
dW1dIG5lZWQgRHJhZ0ltYWdlIGltcGxlbWVudGF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNTgxMQorCisgICAgICAgIFVzZSB0aGUgRHJhZ0lt
YWdlUmVmIHRoYXQgdGhlIERyYWdDb250cm9sbGVyIHBhc3NlcyB0byB1cy4KKworICAgICAgICAq
IHB1YmxpYy9XZWJWaWV3Q2xpZW50Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdDbGllbnQ6
OnN0YXJ0RHJhZ2dpbmcpOgorICAgICAgICAqIHNyYy9EcmFnQ2xpZW50SW1wbC5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OkRyYWdDbGllbnRJbXBsOjpzdGFydERyYWcpOgorICAgICAgICAqIHNyYy9X
ZWJWaWV3SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzdGFydERyYWdn
aW5nKToKKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwuaDoKKwogMjAxMC0wMy0wOCAgQWxleGV5
IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAgICBDaHJvbWl1bSBidWlsZCBm
aXguCkluZGV4OiBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXdDbGllbnQuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXdDbGllbnQuaAkocmV2aXNpb24g
NTU2NzQpCisrKyBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXdDbGllbnQuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNDcsNiArNDcsNyBAQCBjbGFzcyBXZWJEcmFnRGF0YTsKIGNsYXNzIFdlYkZp
bGVDaG9vc2VyQ29tcGxldGlvbjsKIGNsYXNzIFdlYkZyYW1lOwogY2xhc3MgV2ViR2VvbG9jYXRp
b25TZXJ2aWNlSW50ZXJmYWNlOworY2xhc3MgV2ViSW1hZ2U7CiBjbGFzcyBXZWJOb2RlOwogY2xh
c3MgV2ViTm90aWZpY2F0aW9uUHJlc2VudGVyOwogY2xhc3MgV2ViUmFuZ2U7CkBAIC0yMTksNyAr
MjIwLDcgQEAgcHVibGljOgogCiAgICAgLy8gQ2FsbGVkIHdoZW4gYSBkcmFnLW4tZHJvcCBvcGVy
YXRpb24gc2hvdWxkIGJlZ2luLgogICAgIHZpcnR1YWwgdm9pZCBzdGFydERyYWdnaW5nKAotICAg
ICAgICBjb25zdCBXZWJQb2ludCYgZnJvbSwgY29uc3QgV2ViRHJhZ0RhdGEmLCBXZWJEcmFnT3Bl
cmF0aW9uc01hc2spIHsgfQorICAgICAgICBjb25zdCBXZWJEcmFnRGF0YSYsIFdlYkRyYWdPcGVy
YXRpb25zTWFzaywgY29uc3QgV2ViSW1hZ2UmLCBjb25zdCBXZWJQb2ludCYpIHsgfQogCiAgICAg
Ly8gQ2FsbGVkIHRvIGRldGVybWluZSBpZiBkcmFnLW4tZHJvcCBvcGVyYXRpb25zIG1heSBpbml0
aWF0ZSBhIHBhZ2UKICAgICAvLyBuYXZpZ2F0aW9uLgpJbmRleDogV2ViS2l0L2Nocm9taXVtL3Ny
Yy9EcmFnQ2xpZW50SW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3NyYy9E
cmFnQ2xpZW50SW1wbC5jcHAJKHJldmlzaW9uIDU1Njc0KQorKysgV2ViS2l0L2Nocm9taXVtL3Ny
Yy9EcmFnQ2xpZW50SW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDExICszMCwxMyBAQAog
CiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiRHJhZ0NsaWVudEltcGwuaCIKLQorI2lu
Y2x1ZGUgIkRyYWdJbWFnZVJlZi5oIgogI2luY2x1ZGUgIkNocm9taXVtRGF0YU9iamVjdC5oIgog
I2luY2x1ZGUgIkNsaXBib2FyZENocm9taXVtLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNs
dWRlICJOYXRpdmVJbWFnZVNraWEuaCIKICNpbmNsdWRlICJXZWJEcmFnRGF0YS5oIgorI2luY2x1
ZGUgIldlYkltYWdlLmgiCiAjaW5jbHVkZSAiV2ViVmlld0NsaWVudC5oIgogI2luY2x1ZGUgIldl
YlZpZXdJbXBsLmgiCiAKQEAgLTgxLDggKzgzLDE4IEBAIHZvaWQgRHJhZ0NsaWVudEltcGw6OnN0
YXJ0RHJhZyhEcmFnSW1hZ2UKIAogICAgIERyYWdPcGVyYXRpb24gZHJhZ09wZXJhdGlvbk1hc2sg
PSBjbGlwYm9hcmQtPnNvdXJjZU9wZXJhdGlvbigpOwogCisgICAgSW50U2l6ZSBvZmZzZXRTaXpl
KGV2ZW50UG9zIC0gZHJhZ0ltYWdlT3JpZ2luKTsKKyAgICBXZWJQb2ludCBvZmZzZXRQb2ludChv
ZmZzZXRTaXplLndpZHRoKCksIG9mZnNldFNpemUuaGVpZ2h0KCkpOworI2lmIFdFQktJVF9VU0lO
R19TS0lBCisgICAgbV93ZWJWaWV3LT5zdGFydERyYWdnaW5nKAorICAgICAgICBkcmFnRGF0YSwg
c3RhdGljX2Nhc3Q8V2ViRHJhZ09wZXJhdGlvbnNNYXNrPihkcmFnT3BlcmF0aW9uTWFzayksCisg
ICAgICAgIFdlYkltYWdlKCpkcmFnSW1hZ2UpLCBvZmZzZXRQb2ludCk7CisjZWxzZQorICAgIC8v
IEZJWE1FCiAgICAgbV93ZWJWaWV3LT5zdGFydERyYWdnaW5nKAotICAgICAgICBldmVudFBvcywg
ZHJhZ0RhdGEsIHN0YXRpY19jYXN0PFdlYkRyYWdPcGVyYXRpb25zTWFzaz4oZHJhZ09wZXJhdGlv
bk1hc2spKTsKKyAgICAgICAgZHJhZ0RhdGEsIHN0YXRpY19jYXN0PFdlYkRyYWdPcGVyYXRpb25z
TWFzaz4oZHJhZ09wZXJhdGlvbk1hc2spLAorICAgICAgICBXZWJJbWFnZSgpLCBXZWJQb2ludCgp
KTsKKyNlbmRpZgogfQogCiBEcmFnSW1hZ2VSZWYgRHJhZ0NsaWVudEltcGw6OmNyZWF0ZURyYWdJ
bWFnZUZvckxpbmsoS1VSTCYsIGNvbnN0IFN0cmluZyYgbGFiZWwsIEZyYW1lKikKSW5kZXg6IFdl
YktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9j
aHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCShyZXZpc2lvbiA1NTY3NCkKKysrIFdlYktpdC9j
aHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04Nyw2ICs4Nyw3
IEBACiAjaW5jbHVkZSAiV2ViRGV2VG9vbHNBZ2VudFByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJE
cmFnRGF0YS5oIgogI2luY2x1ZGUgIldlYkZyYW1lSW1wbC5oIgorI2luY2x1ZGUgIldlYkltYWdl
LmgiCiAjaW5jbHVkZSAiV2ViSW5wdXRFdmVudC5oIgogI2luY2x1ZGUgIldlYklucHV0RXZlbnRD
b252ZXJzaW9uLmgiCiAjaW5jbHVkZSAiV2ViTWVkaWFQbGF5ZXJBY3Rpb24uaCIKQEAgLTE4Mjcs
MTUgKzE4MjgsMTYgQEAgYm9vbCBXZWJWaWV3SW1wbDo6bmF2aWdhdGlvblBvbGljeUZyb21Nbwog
ICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIFdlYlZpZXdJbXBsOjpzdGFydERyYWdnaW5nKGNv
bnN0IFdlYlBvaW50JiBldmVudFBvcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29uc3QgV2ViRHJhZ0RhdGEmIGRyYWdEYXRhLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBXZWJEcmFnT3BlcmF0aW9uc01hc2sgbWFzaykKK3ZvaWQgV2ViVmlld0ltcGw6OnN0YXJ0
RHJhZ2dpbmcoY29uc3QgV2ViRHJhZ0RhdGEmIGRyYWdEYXRhLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBXZWJEcmFnT3BlcmF0aW9uc01hc2sgbWFzaywKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY29uc3QgV2ViSW1hZ2UmIGRyYWdJbWFnZSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29uc3QgV2ViUG9pbnQmIGRyYWdJbWFnZU9mZnNldCkKIHsK
ICAgICBpZiAoIW1fY2xpZW50KQogICAgICAgICByZXR1cm47CiAgICAgQVNTRVJUKCFtX2RvaW5n
RHJhZ0FuZERyb3ApOwogICAgIG1fZG9pbmdEcmFnQW5kRHJvcCA9IHRydWU7Ci0gICAgbV9jbGll
bnQtPnN0YXJ0RHJhZ2dpbmcoZXZlbnRQb3MsIGRyYWdEYXRhLCBtYXNrKTsKKyAgICBtX2NsaWVu
dC0+c3RhcnREcmFnZ2luZyhkcmFnRGF0YSwgbWFzaywgZHJhZ0ltYWdlLCBkcmFnSW1hZ2VPZmZz
ZXQpOwogfQogCiB2b2lkIFdlYlZpZXdJbXBsOjpzZXRDdXJyZW50SGlzdG9yeUl0ZW0oSGlzdG9y
eUl0ZW0qIGl0ZW0pCkluZGV4OiBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCShyZXZpc2lvbiA1
NTY3NCkKKysrIFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaAkod29ya2luZyBjb3B5
KQpAQCAtNzIsNiArNzIsNyBAQCBjbGFzcyBTdWdnZXN0aW9uc1BvcHVwTWVudUNsaWVudDsKIGNs
YXNzIFdlYkFjY2Vzc2liaWxpdHlPYmplY3Q7CiBjbGFzcyBXZWJEZXZUb29sc0FnZW50UHJpdmF0
ZTsKIGNsYXNzIFdlYkZyYW1lSW1wbDsKK2NsYXNzIFdlYkltYWdlOwogY2xhc3MgV2ViS2V5Ym9h
cmRFdmVudDsKIGNsYXNzIFdlYk1vdXNlRXZlbnQ7CiBjbGFzcyBXZWJNb3VzZVdoZWVsRXZlbnQ7
CkBAIC0yNzAsOSArMjcxLDEwIEBAIHB1YmxpYzoKIAogICAgIC8vIFN0YXJ0IGEgc3lzdGVtIGRy
YWcgYW5kIGRyb3Agb3BlcmF0aW9uLgogICAgIHZvaWQgc3RhcnREcmFnZ2luZygKLSAgICAgICAg
Y29uc3QgV2ViUG9pbnQmIGV2ZW50UG9zLAogICAgICAgICBjb25zdCBXZWJEcmFnRGF0YSYgZHJh
Z0RhdGEsCi0gICAgICAgIFdlYkRyYWdPcGVyYXRpb25zTWFzayBkcmFnU291cmNlT3BlcmF0aW9u
TWFzayk7CisgICAgICAgIFdlYkRyYWdPcGVyYXRpb25zTWFzayBtYXNrLAorICAgICAgICBjb25z
dCBXZWJJbWFnZSYgZHJhZ0ltYWdlLAorICAgICAgICBjb25zdCBXZWJQb2ludCYgZHJhZ0ltYWdl
T2Zmc2V0KTsKIAogICAgIHZvaWQgc3VnZ2VzdGlvbnNQb3B1cERpZEhpZGUoKQogICAgIHsK
</data>
<flag name="review"
          id="33364"
          type_id="1"
          status="-"
          setter="fishd"
    />
    <flag name="commit-queue"
          id="33508"
          type_id="3"
          status="-"
          setter="fishd"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>50868</attachid>
            <date>2010-03-16 19:28:03 -0700</date>
            <delta_ts>2010-03-17 08:28:43 -0700</delta_ts>
            <desc>comment + style</desc>
            <filename>drag.diff</filename>
            <type>text/plain</type>
            <size>5689</size>
            <attacher name="Evan Stade">estade</attacher>
            
              <data encoding="base64">PyAgICAgIFdlYktpdC9jaHJvbWl1bS93ZWJraXQudGFyZ2V0Lm1rCj8gICAgICBXZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nLm9yaWcKPyAgICAgIFdlYktpdC9jaHJvbWl1bS93ZWJraXRfdW5pdF90
ZXN0cy5zY29ucwo/ICAgICAgV2ViS2l0L2Nocm9taXVtL25vZGUuZGlmZgo/ICAgICAgV2ViS2l0
L2Nocm9taXVtL3dlYmtpdF91bml0X3Rlc3RzLnRhcmdldC5tawo/ICAgICAgV2ViS2l0L2Nocm9t
aXVtL1NDb25zdHJ1Y3QKPyAgICAgIFdlYktpdC9jaHJvbWl1bS93ZWJraXQuc2NvbnMKPyAgICAg
IFdlYktpdC9jaHJvbWl1bS9XZWJLaXRfbWFpbi5zY29ucwo/ICAgICAgV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJWaWV3SW1wbC5jcHAub3JpZwo/ICAgICAgV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJW
aWV3SW1wbC5oLm9yaWcKPyAgICAgIFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRHJhZ0ltYWdl
UmVmLmgKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
S2l0L2Nocm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gNTYwOTgpCisrKyBXZWJLaXQvY2hyb21p
dW0vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTAtMDMtMTYg
IEV2YW4gU3RhZGUgIDxlc3RhZGVAZ21haWwuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFtjaHJvbWl1bV0gbmVlZCBEcmFnSW1hZ2UgaW1wbGVt
ZW50YXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTM1ODExCisKKyAgICAgICAgVXNlIHRoZSBEcmFnSW1hZ2VSZWYgdGhhdCB0aGUgRHJhZ0NvbnRy
b2xsZXIgcGFzc2VzIHRvIHVzLgorCisgICAgICAgICogcHVibGljL1dlYlZpZXdDbGllbnQuaDoK
KyAgICAgICAgKFdlYktpdDo6V2ViVmlld0NsaWVudDo6c3RhcnREcmFnZ2luZyk6CisgICAgICAg
ICogc3JjL0RyYWdDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RHJhZ0NsaWVudElt
cGw6OnN0YXJ0RHJhZyk6CisgICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViVmlld0ltcGw6OnN0YXJ0RHJhZ2dpbmcpOgorICAgICAgICAqIHNyYy9XZWJW
aWV3SW1wbC5oOgorCiAyMDEwLTAzLTE2ICBKYW1lcyBIYXdraW5zICA8amhhd2tpbnNAY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhdmlkIExldmluLgpJbmRleDogV2ViS2l0
L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xpZW50LmgJKHJldmlzaW9uIDU2MDczKQorKysgV2ViS2l0
L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDYg
KzQ3LDcgQEAgY2xhc3MgV2ViRHJhZ0RhdGE7CiBjbGFzcyBXZWJGaWxlQ2hvb3NlckNvbXBsZXRp
b247CiBjbGFzcyBXZWJGcmFtZTsKIGNsYXNzIFdlYkdlb2xvY2F0aW9uU2VydmljZUludGVyZmFj
ZTsKK2NsYXNzIFdlYkltYWdlOwogY2xhc3MgV2ViTm9kZTsKIGNsYXNzIFdlYk5vdGlmaWNhdGlv
blByZXNlbnRlcjsKIGNsYXNzIFdlYlJhbmdlOwpAQCAtMjE5LDcgKzIyMCw3IEBAIHB1YmxpYzoK
IAogICAgIC8vIENhbGxlZCB3aGVuIGEgZHJhZy1uLWRyb3Agb3BlcmF0aW9uIHNob3VsZCBiZWdp
bi4KICAgICB2aXJ0dWFsIHZvaWQgc3RhcnREcmFnZ2luZygKLSAgICAgICAgY29uc3QgV2ViUG9p
bnQmIGZyb20sIGNvbnN0IFdlYkRyYWdEYXRhJiwgV2ViRHJhZ09wZXJhdGlvbnNNYXNrKSB7IH0K
KyAgICAgICAgY29uc3QgV2ViRHJhZ0RhdGEmLCBXZWJEcmFnT3BlcmF0aW9uc01hc2ssIGNvbnN0
IFdlYkltYWdlJiwgY29uc3QgV2ViUG9pbnQmKSB7IH0KIAogICAgIC8vIENhbGxlZCB0byBkZXRl
cm1pbmUgaWYgZHJhZy1uLWRyb3Agb3BlcmF0aW9ucyBtYXkgaW5pdGlhdGUgYSBwYWdlCiAgICAg
Ly8gbmF2aWdhdGlvbi4KSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9zcmMvRHJhZ0NsaWVudEltcGwu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9zcmMvRHJhZ0NsaWVudEltcGwuY3Bw
CShyZXZpc2lvbiA1NjA3MykKKysrIFdlYktpdC9jaHJvbWl1bS9zcmMvRHJhZ0NsaWVudEltcGwu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCwxMSArMzAsMTMgQEAKIAogI2luY2x1ZGUgImNvbmZp
Zy5oIgogI2luY2x1ZGUgIkRyYWdDbGllbnRJbXBsLmgiCi0KKyNpbmNsdWRlICJEcmFnSW1hZ2VS
ZWYuaCIKICNpbmNsdWRlICJDaHJvbWl1bURhdGFPYmplY3QuaCIKICNpbmNsdWRlICJDbGlwYm9h
cmRDaHJvbWl1bS5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiTmF0aXZlSW1hZ2VT
a2lhLmgiCiAjaW5jbHVkZSAiV2ViRHJhZ0RhdGEuaCIKKyNpbmNsdWRlICJXZWJJbWFnZS5oIgog
I2luY2x1ZGUgIldlYlZpZXdDbGllbnQuaCIKICNpbmNsdWRlICJXZWJWaWV3SW1wbC5oIgogCkBA
IC04MSw4ICs4MywxOSBAQCB2b2lkIERyYWdDbGllbnRJbXBsOjpzdGFydERyYWcoRHJhZ0ltYWdl
CiAKICAgICBEcmFnT3BlcmF0aW9uIGRyYWdPcGVyYXRpb25NYXNrID0gY2xpcGJvYXJkLT5zb3Vy
Y2VPcGVyYXRpb24oKTsKIAorICAgIEludFNpemUgb2Zmc2V0U2l6ZShldmVudFBvcyAtIGRyYWdJ
bWFnZU9yaWdpbik7CisgICAgV2ViUG9pbnQgb2Zmc2V0UG9pbnQob2Zmc2V0U2l6ZS53aWR0aCgp
LCBvZmZzZXRTaXplLmhlaWdodCgpKTsKKyNpZiBXRUJLSVRfVVNJTkdfU0tJQQorICAgIG1fd2Vi
Vmlldy0+c3RhcnREcmFnZ2luZygKKyAgICAgICAgZHJhZ0RhdGEsIHN0YXRpY19jYXN0PFdlYkRy
YWdPcGVyYXRpb25zTWFzaz4oZHJhZ09wZXJhdGlvbk1hc2spLAorICAgICAgICBXZWJJbWFnZSgq
ZHJhZ0ltYWdlKSwgb2Zmc2V0UG9pbnQpOworI2Vsc2UKKyAgICAvLyBGSVhNRTogV2hlbiBEcmFn
SW1hZ2VSZWYgaXMgaW1wbGVtZW50ZWQgZm9yIENHLCB3ZSBjYW4gcHJvYmFibHkganVzdCByZW1v
dmUKKyAgICAvLyB0aGlzICNpZiBmb3JrLiBGb3Igbm93LCBwYXNzIGFuIGVtcHR5IGltYWdlLgog
ICAgIG1fd2ViVmlldy0+c3RhcnREcmFnZ2luZygKLSAgICAgICAgZXZlbnRQb3MsIGRyYWdEYXRh
LCBzdGF0aWNfY2FzdDxXZWJEcmFnT3BlcmF0aW9uc01hc2s+KGRyYWdPcGVyYXRpb25NYXNrKSk7
CisgICAgICAgIGRyYWdEYXRhLCBzdGF0aWNfY2FzdDxXZWJEcmFnT3BlcmF0aW9uc01hc2s+KGRy
YWdPcGVyYXRpb25NYXNrKSwKKyAgICAgICAgV2ViSW1hZ2UoKSwgV2ViUG9pbnQoKSk7CisjZW5k
aWYKIH0KIAogRHJhZ0ltYWdlUmVmIERyYWdDbGllbnRJbXBsOjpjcmVhdGVEcmFnSW1hZ2VGb3JM
aW5rKEtVUkwmLCBjb25zdCBTdHJpbmcmIGxhYmVsLCBGcmFtZSopCkluZGV4OiBXZWJLaXQvY2hy
b21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0v
c3JjL1dlYlZpZXdJbXBsLmNwcAkocmV2aXNpb24gNTYwNzMpCisrKyBXZWJLaXQvY2hyb21pdW0v
c3JjL1dlYlZpZXdJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODcsNiArODcsNyBAQAogI2lu
Y2x1ZGUgIldlYkRldlRvb2xzQWdlbnRQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViRHJhZ0RhdGEu
aCIKICNpbmNsdWRlICJXZWJGcmFtZUltcGwuaCIKKyNpbmNsdWRlICJXZWJJbWFnZS5oIgogI2lu
Y2x1ZGUgIldlYklucHV0RXZlbnQuaCIKICNpbmNsdWRlICJXZWJJbnB1dEV2ZW50Q29udmVyc2lv
bi5oIgogI2luY2x1ZGUgIldlYk1lZGlhUGxheWVyQWN0aW9uLmgiCkBAIC0xODgzLDE1ICsxODg0
LDE2IEBAIGJvb2wgV2ViVmlld0ltcGw6Om5hdmlnYXRpb25Qb2xpY3lGcm9tTW8KICAgICByZXR1
cm4gdHJ1ZTsKIH0KIAotdm9pZCBXZWJWaWV3SW1wbDo6c3RhcnREcmFnZ2luZyhjb25zdCBXZWJQ
b2ludCYgZXZlbnRQb3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFdl
YkRyYWdEYXRhJiBkcmFnRGF0YSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2Vi
RHJhZ09wZXJhdGlvbnNNYXNrIG1hc2spCit2b2lkIFdlYlZpZXdJbXBsOjpzdGFydERyYWdnaW5n
KGNvbnN0IFdlYkRyYWdEYXRhJiBkcmFnRGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgV2ViRHJhZ09wZXJhdGlvbnNNYXNrIG1hc2ssCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnN0IFdlYkltYWdlJiBkcmFnSW1hZ2UsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNvbnN0IFdlYlBvaW50JiBkcmFnSW1hZ2VPZmZzZXQpCiB7CiAgICAgaWYg
KCFtX2NsaWVudCkKICAgICAgICAgcmV0dXJuOwogICAgIEFTU0VSVCghbV9kb2luZ0RyYWdBbmRE
cm9wKTsKICAgICBtX2RvaW5nRHJhZ0FuZERyb3AgPSB0cnVlOwotICAgIG1fY2xpZW50LT5zdGFy
dERyYWdnaW5nKGV2ZW50UG9zLCBkcmFnRGF0YSwgbWFzayk7CisgICAgbV9jbGllbnQtPnN0YXJ0
RHJhZ2dpbmcoZHJhZ0RhdGEsIG1hc2ssIGRyYWdJbWFnZSwgZHJhZ0ltYWdlT2Zmc2V0KTsKIH0K
IAogdm9pZCBXZWJWaWV3SW1wbDo6c2V0Q3VycmVudEhpc3RvcnlJdGVtKEhpc3RvcnlJdGVtKiBp
dGVtKQpJbmRleDogV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaAkocmV2aXNpb24gNTYwNzMpCisr
KyBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgJKHdvcmtpbmcgY29weSkKQEAgLTcy
LDYgKzcyLDcgQEAgY2xhc3MgU3VnZ2VzdGlvbnNQb3B1cE1lbnVDbGllbnQ7CiBjbGFzcyBXZWJB
Y2Nlc3NpYmlsaXR5T2JqZWN0OwogY2xhc3MgV2ViRGV2VG9vbHNBZ2VudFByaXZhdGU7CiBjbGFz
cyBXZWJGcmFtZUltcGw7CitjbGFzcyBXZWJJbWFnZTsKIGNsYXNzIFdlYktleWJvYXJkRXZlbnQ7
CiBjbGFzcyBXZWJNb3VzZUV2ZW50OwogY2xhc3MgV2ViTW91c2VXaGVlbEV2ZW50OwpAQCAtMjcy
LDkgKzI3MywxMCBAQCBwdWJsaWM6CiAKICAgICAvLyBTdGFydCBhIHN5c3RlbSBkcmFnIGFuZCBk
cm9wIG9wZXJhdGlvbi4KICAgICB2b2lkIHN0YXJ0RHJhZ2dpbmcoCi0gICAgICAgIGNvbnN0IFdl
YlBvaW50JiBldmVudFBvcywKICAgICAgICAgY29uc3QgV2ViRHJhZ0RhdGEmIGRyYWdEYXRhLAot
ICAgICAgICBXZWJEcmFnT3BlcmF0aW9uc01hc2sgZHJhZ1NvdXJjZU9wZXJhdGlvbk1hc2spOwor
ICAgICAgICBXZWJEcmFnT3BlcmF0aW9uc01hc2sgbWFzaywKKyAgICAgICAgY29uc3QgV2ViSW1h
Z2UmIGRyYWdJbWFnZSwKKyAgICAgICAgY29uc3QgV2ViUG9pbnQmIGRyYWdJbWFnZU9mZnNldCk7
CiAKICAgICB2b2lkIHN1Z2dlc3Rpb25zUG9wdXBEaWRIaWRlKCkKICAgICB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>50908</attachid>
            <date>2010-03-17 08:28:43 -0700</date>
            <delta_ts>2010-03-17 08:41:21 -0700</delta_ts>
            <desc>try to fix mysterious build failure</desc>
            <filename>drag.diff</filename>
            <type>text/plain</type>
            <size>10030</size>
            <attacher name="Evan Stade">estade</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5neXBpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29y
ZS5neXBpCShyZXZpc2lvbiA1NjAwNCkKKysrIFdlYkNvcmUvV2ViQ29yZS5neXBpCSh3b3JraW5n
IGNvcHkpCkBAIC0xOTQ2LDcgKzE5NDYsOCBAQAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9t
aXVtL0N1cnNvckNocm9taXVtLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0v
RHJhZ0RhdGFDaHJvbWl1bS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL0Ry
YWdEYXRhUmVmLmgnLAotICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL0RyYWdJbWFnZUNo
cm9taXVtLmNwcCcsCisgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vRHJhZ0ltYWdlQ2hy
b21pdW1NYWMuY3BwJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9EcmFnSW1hZ2VD
aHJvbWl1bVNraWEuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9EcmFnSW1h
Z2VSZWYuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vRmlsZUNob29zZXJDaHJv
bWl1bS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL0ZpbGVTeXN0ZW1DaHJv
bWl1bS5jcHAnLApJbmRleDogV2ViQ29yZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5cAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwCShyZXZpc2lvbiA1NjAwNCkK
KysrIFdlYkNvcmUvV2ViQ29yZS5neXAvV2ViQ29yZS5neXAJKHdvcmtpbmcgY29weSkKQEAgLTEw
NjQsNiArMTA2NCw5IEBACiAgICAgICAgICAgICAnLi4vcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMv
c2tpYS9JbWFnZURlY29kZXJTa2lhLmNwcCcsCiAgICAgICAgICAgICAnLi4vcGxhdGZvcm0vaW1h
Z2UtZGVjb2RlcnMveGJtL1hCTUltYWdlRGVjb2Rlci5jcHAnLAogICAgICAgICAgICAgJy4uL3Bs
YXRmb3JtL2ltYWdlLWRlY29kZXJzL3hibS9YQk1JbWFnZURlY29kZXIuaCcsCisKKyAgICAgICAg
ICAgICMgQWdhaW4sIFNraWEgaXMgbm90IHVzZWQgb24gTWFjLgorICAgICAgICAgICAgJy4uL3Bs
YXRmb3JtL2Nocm9taXVtL0RyYWdJbWFnZUNocm9taXVtU2tpYS5jcHAnLAogICAgICAgICAgIF0s
CiAgICAgICAgICAgJ2RpcmVjdF9kZXBlbmRlbnRfc2V0dGluZ3MnOiB7CiAgICAgICAgICAgICAn
aW5jbHVkZV9kaXJzJzogWwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9EcmFnSW1h
Z2VDaHJvbWl1bS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9E
cmFnSW1hZ2VDaHJvbWl1bS5jcHAJKHJldmlzaW9uIDU2MDA0KQorKysgV2ViQ29yZS9wbGF0Zm9y
bS9jaHJvbWl1bS9EcmFnSW1hZ2VDaHJvbWl1bS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNzMg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoYykgMjAwOCwgMjAwOSwgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqIAotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0g
KiBtZXQ6Ci0gKiAKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmln
aHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBu
YW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMg
bWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQot
ICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lv
bi4KLSAqIAotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhP
TERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotICog
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRI
RSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
Ci0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiRHJhZ0ltYWdl
LmgiCi0KLSNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7
Ci0KLUludFNpemUgZHJhZ0ltYWdlU2l6ZShEcmFnSW1hZ2VSZWYgaW1hZ2UpCi17Ci0gICAgbm90
SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gSW50U2l6ZSgpOwotfQotCi12b2lkIGRlbGV0ZURy
YWdJbWFnZShEcmFnSW1hZ2VSZWYgaW1hZ2UpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0K
LQotRHJhZ0ltYWdlUmVmIHNjYWxlRHJhZ0ltYWdlKERyYWdJbWFnZVJlZiBpbWFnZSwgRmxvYXRT
aXplIHNjYWxlKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIDA7Ci19Ci0g
ICAgCi1EcmFnSW1hZ2VSZWYgZGlzc29sdmVEcmFnSW1hZ2VUb0ZyYWN0aW9uKERyYWdJbWFnZVJl
ZiBpbWFnZSwgZmxvYXQpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gaW1h
Z2U7Ci19Ci0gICAgICAgIAotRHJhZ0ltYWdlUmVmIGNyZWF0ZURyYWdJbWFnZUZyb21JbWFnZShJ
bWFnZSogaW1nKQoteyAgICAKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiAwOwot
fQotICAgIAotRHJhZ0ltYWdlUmVmIGNyZWF0ZURyYWdJbWFnZUljb25Gb3JDYWNoZWRJbWFnZShD
YWNoZWRJbWFnZSopCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gMDsgICAg
IAotfQotICAgIAotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2ViQ29yZS9wbGF0Zm9y
bS9jaHJvbWl1bS9EcmFnSW1hZ2VDaHJvbWl1bU1hYy5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9wbGF0Zm9ybS9jaHJvbWl1bS9EcmFnSW1hZ2VDaHJvbWl1bU1hYy5jcHAJKHJldmlzaW9uIDAp
CisrKyBXZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0RyYWdJbWFnZUNocm9taXVtTWFjLmNwcAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSw3MyBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAxMCwg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIAorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKiAKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAg
KiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisg
KiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3Rz
IGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdy
aXR0ZW4gcGVybWlzc2lvbi4KKyAqIAorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBU
SEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAor
ICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiRHJhZ0ltYWdlLmgiCisKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK0ludFNpemUgZHJhZ0ltYWdlU2l6ZShEcmFnSW1hZ2VSZWYgaW1h
Z2UpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gSW50U2l6ZSgpOworfQor
Cit2b2lkIGRlbGV0ZURyYWdJbWFnZShEcmFnSW1hZ2VSZWYgaW1hZ2UpCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKK30KKworRHJhZ0ltYWdlUmVmIHNjYWxlRHJhZ0ltYWdlKERyYWdJbWFnZVJl
ZiBpbWFnZSwgRmxvYXRTaXplIHNjYWxlKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAg
cmV0dXJuIDA7Cit9CisKK0RyYWdJbWFnZVJlZiBkaXNzb2x2ZURyYWdJbWFnZVRvRnJhY3Rpb24o
RHJhZ0ltYWdlUmVmIGltYWdlLCBmbG9hdCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAg
IHJldHVybiBpbWFnZTsKK30KKworRHJhZ0ltYWdlUmVmIGNyZWF0ZURyYWdJbWFnZUZyb21JbWFn
ZShJbWFnZSogaW1nKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9
CisKK0RyYWdJbWFnZVJlZiBjcmVhdGVEcmFnSW1hZ2VJY29uRm9yQ2FjaGVkSW1hZ2UoQ2FjaGVk
SW1hZ2UqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRHJh
Z0ltYWdlQ2hyb21pdW1Ta2lhLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2No
cm9taXVtL0RyYWdJbWFnZUNocm9taXVtU2tpYS5jcHAJKHJldmlzaW9uIDApCisrKyBXZWJDb3Jl
L3BsYXRmb3JtL2Nocm9taXVtL0RyYWdJbWFnZUNocm9taXVtU2tpYS5jcHAJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsNzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMDgsIDIwMDksIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zIGFyZQorICogbWV0OgorICogCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICog
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQor
ICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVp
dGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29u
dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVu
IHBlcm1pc3Npb24uCisgKiAKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENP
UFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IkRyYWdJbWFnZS5oIgorI2luY2x1ZGUgIkltYWdlLmgiCisjaW5jbHVkZSAiTmF0aXZlSW1hZ2VT
a2lhLmgiCisjaW5jbHVkZSAiUmVmUHRyLmgiCisjaW5jbHVkZSAiU2tCaXRtYXAuaCIKKworI2lu
Y2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworSW50U2l6
ZSBkcmFnSW1hZ2VTaXplKERyYWdJbWFnZVJlZiBpbWFnZSkKK3sKKyAgICBpZiAoIWltYWdlKQor
ICAgICAgICByZXR1cm4gSW50U2l6ZSgpOworCisgICAgcmV0dXJuIEludFNpemUoaW1hZ2UtPndp
ZHRoKCksIGltYWdlLT5oZWlnaHQoKSk7Cit9CisKK3ZvaWQgZGVsZXRlRHJhZ0ltYWdlKERyYWdJ
bWFnZVJlZiBpbWFnZSkKK3sKKyAgICBkZWxldGUgaW1hZ2U7Cit9CisKK0RyYWdJbWFnZVJlZiBz
Y2FsZURyYWdJbWFnZShEcmFnSW1hZ2VSZWYgaW1hZ2UsIEZsb2F0U2l6ZSBzY2FsZSkKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBpbWFnZTsKK30KKworRHJhZ0ltYWdlUmVm
IGRpc3NvbHZlRHJhZ0ltYWdlVG9GcmFjdGlvbihEcmFnSW1hZ2VSZWYgaW1hZ2UsIGZsb2F0KQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGltYWdlOworfQorCitEcmFnSW1h
Z2VSZWYgY3JlYXRlRHJhZ0ltYWdlRnJvbUltYWdlKEltYWdlKiBpbWFnZSkKK3sKKyAgICByZXR1
cm4gbmV3IFNrQml0bWFwKCppbWFnZS0+bmF0aXZlSW1hZ2VGb3JDdXJyZW50RnJhbWUoKSk7Cit9
CisKK0RyYWdJbWFnZVJlZiBjcmVhdGVEcmFnSW1hZ2VJY29uRm9yQ2FjaGVkSW1hZ2UoQ2FjaGVk
SW1hZ2UqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRHJh
Z0ltYWdlUmVmLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9EcmFn
SW1hZ2VSZWYuaAkocmV2aXNpb24gNTYwMDQpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVt
L0RyYWdJbWFnZVJlZi5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSwxMSArMjksMTYgQEAKICNpZm5k
ZWYgRHJhZ0ltYWdlUmVmX2gKICNkZWZpbmUgRHJhZ0ltYWdlUmVmX2gKIAorY2xhc3MgU2tCaXRt
YXA7CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotICAgIC8vIEZJWE1FOiBOZWVkIHRvIHN1cHBv
cnQgaW1hZ2UgZHJhZy1uLWRyb3AuICBGb3Igbm93LCB3ZSBqdXN0IGFsbG93IHRoaW5ncwotICAg
IC8vIHRvIGNvbXBpbGUgYnkgZGVmaW5pbmcgdGhpcyBkdW1teSB0eXBlLgotICAgIHR5cGVkZWYg
dm9pZCogRHJhZ0ltYWdlUmVmOworI2lmIE9TKERBUldJTikKKy8vIEZJWE1FOiBub3QgaW1wbGVt
ZW50ZWQuCit0eXBlZGVmIHZvaWQqIERyYWdJbWFnZVJlZjsKKyNlbHNlCit0eXBlZGVmIFNrQml0
bWFwKiBEcmFnSW1hZ2VSZWY7CisjZW5kaWYKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>50910</attachid>
            <date>2010-03-17 08:41:21 -0700</date>
            <delta_ts>2010-03-17 08:43:05 -0700</delta_ts>
            <desc>fixed</desc>
            <filename>drag.diff</filename>
            <type>text/plain</type>
            <size>17651</size>
            <attacher name="Evan Stade">estade</attacher>
            
              <data encoding="base64">SW5kZXg6IC91c3IvbG9jYWwvZ29vZ2xlLzJjaHJvbWUvc3JjL3RoaXJkX3BhcnR5L1dlYktpdC9X
ZWJDb3JlL1dlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIC91c3IvbG9jYWwv
Z29vZ2xlLzJjaHJvbWUvc3JjL3RoaXJkX3BhcnR5L1dlYktpdC9XZWJDb3JlL1dlYkNvcmUuZ3lw
L1dlYkNvcmUuZ3lwCShyZXZpc2lvbiA1NjA3MykKKysrIC91c3IvbG9jYWwvZ29vZ2xlLzJjaHJv
bWUvc3JjL3RoaXJkX3BhcnR5L1dlYktpdC9XZWJDb3JlL1dlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lw
CSh3b3JraW5nIGNvcHkpCkBAIC0xMDY0LDYgKzEwNjQsOSBAQAogICAgICAgICAgICAgJy4uL3Bs
YXRmb3JtL2ltYWdlLWRlY29kZXJzL3NraWEvSW1hZ2VEZWNvZGVyU2tpYS5jcHAnLAogICAgICAg
ICAgICAgJy4uL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL3hibS9YQk1JbWFnZURlY29kZXIuY3Bw
JywKICAgICAgICAgICAgICcuLi9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy94Ym0vWEJNSW1hZ2VE
ZWNvZGVyLmgnLAorCisgICAgICAgICAgICAjIEFnYWluLCBTa2lhIGlzIG5vdCB1c2VkIG9uIE1h
Yy4KKyAgICAgICAgICAgICcuLi9wbGF0Zm9ybS9jaHJvbWl1bS9EcmFnSW1hZ2VDaHJvbWl1bVNr
aWEuY3BwJywKICAgICAgICAgICBdLAogICAgICAgICAgICdkaXJlY3RfZGVwZW5kZW50X3NldHRp
bmdzJzogewogICAgICAgICAgICAgJ2luY2x1ZGVfZGlycyc6IFsKSW5kZXg6IC91c3IvbG9jYWwv
Z29vZ2xlLzJjaHJvbWUvc3JjL3RoaXJkX3BhcnR5L1dlYktpdC9XZWJDb3JlL3BsYXRmb3JtL2No
cm9taXVtL0RyYWdJbWFnZUNocm9taXVtLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSAvdXNyL2xvY2FsL2dv
b2dsZS8yY2hyb21lL3NyYy90aGlyZF9wYXJ0eS9XZWJLaXQvV2ViQ29yZS9wbGF0Zm9ybS9jaHJv
bWl1bS9EcmFnSW1hZ2VDaHJvbWl1bS5jcHAJKHJldmlzaW9uIDU2MDczKQorKysgL3Vzci9sb2Nh
bC9nb29nbGUvMmNocm9tZS9zcmMvdGhpcmRfcGFydHkvV2ViS2l0L1dlYkNvcmUvcGxhdGZvcm0v
Y2hyb21pdW0vRHJhZ0ltYWdlQ2hyb21pdW0uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDczICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMDgsIDIwMDksIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKiAKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICog
bWV0OgotICogCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICAgICogUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9uLgotICogICAgICogTmVpdGhlciB0aGUgbmFt
ZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0b3JzIG1h
eSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAq
IHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24u
Ci0gKiAKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xE
RVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
Q09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAot
ICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkRyYWdJbWFnZS5o
IgotCi0jaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewot
Ci1JbnRTaXplIGRyYWdJbWFnZVNpemUoRHJhZ0ltYWdlUmVmIGltYWdlKQotewotICAgIG5vdElt
cGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIEludFNpemUoKTsKLX0KLQotdm9pZCBkZWxldGVEcmFn
SW1hZ2UoRHJhZ0ltYWdlUmVmIGltYWdlKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci19Ci0K
LURyYWdJbWFnZVJlZiBzY2FsZURyYWdJbWFnZShEcmFnSW1hZ2VSZWYgaW1hZ2UsIEZsb2F0U2l6
ZSBzY2FsZSkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiAwOwotfQotICAg
IAotRHJhZ0ltYWdlUmVmIGRpc3NvbHZlRHJhZ0ltYWdlVG9GcmFjdGlvbihEcmFnSW1hZ2VSZWYg
aW1hZ2UsIGZsb2F0KQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIGltYWdl
OwotfQotICAgICAgICAKLURyYWdJbWFnZVJlZiBjcmVhdGVEcmFnSW1hZ2VGcm9tSW1hZ2UoSW1h
Z2UqIGltZykKLXsgICAgCi0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gMDsKLX0K
LSAgICAKLURyYWdJbWFnZVJlZiBjcmVhdGVEcmFnSW1hZ2VJY29uRm9yQ2FjaGVkSW1hZ2UoQ2Fj
aGVkSW1hZ2UqKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIDA7ICAgICAK
LX0KLSAgICAKLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IC91c3IvbG9jYWwvZ29vZ2xl
LzJjaHJvbWUvc3JjL3RoaXJkX3BhcnR5L1dlYktpdC9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVt
L0RyYWdJbWFnZUNocm9taXVtU2tpYS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gL3Vzci9sb2NhbC9nb29n
bGUvMmNocm9tZS9zcmMvdGhpcmRfcGFydHkvV2ViS2l0L1dlYkNvcmUvcGxhdGZvcm0vY2hyb21p
dW0vRHJhZ0ltYWdlQ2hyb21pdW1Ta2lhLmNwcAkocmV2aXNpb24gMCkKKysrIC91c3IvbG9jYWwv
Z29vZ2xlLzJjaHJvbWUvc3JjL3RoaXJkX3BhcnR5L1dlYktpdC9XZWJDb3JlL3BsYXRmb3JtL2No
cm9taXVtL0RyYWdJbWFnZUNocm9taXVtU2tpYS5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
NzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMDgsIDIwMDksIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiAKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICog
bWV0OgorICogCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFt
ZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1h
eSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAq
IHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24u
CisgKiAKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xE
RVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
Q09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAor
ICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRyYWdJbWFnZS5o
IgorCisjaW5jbHVkZSAiSW1hZ2UuaCIKKyNpbmNsdWRlICJOYXRpdmVJbWFnZVNraWEuaCIKKyNp
bmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgIlJlZlB0ci5oIgorI2luY2x1ZGUg
IlNrQml0bWFwLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworSW50U2l6ZSBkcmFnSW1hZ2VT
aXplKERyYWdJbWFnZVJlZiBpbWFnZSkKK3sKKyAgICBpZiAoIWltYWdlKQorICAgICAgICByZXR1
cm4gSW50U2l6ZSgpOworCisgICAgcmV0dXJuIEludFNpemUoaW1hZ2UtPndpZHRoKCksIGltYWdl
LT5oZWlnaHQoKSk7Cit9CisKK3ZvaWQgZGVsZXRlRHJhZ0ltYWdlKERyYWdJbWFnZVJlZiBpbWFn
ZSkKK3sKKyAgICBkZWxldGUgaW1hZ2U7Cit9CisKK0RyYWdJbWFnZVJlZiBzY2FsZURyYWdJbWFn
ZShEcmFnSW1hZ2VSZWYgaW1hZ2UsIEZsb2F0U2l6ZSBzY2FsZSkKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworICAgIHJldHVybiBpbWFnZTsKK30KKworRHJhZ0ltYWdlUmVmIGRpc3NvbHZlRHJh
Z0ltYWdlVG9GcmFjdGlvbihEcmFnSW1hZ2VSZWYgaW1hZ2UsIGZsb2F0KQoreworICAgIG5vdElt
cGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGltYWdlOworfQorCitEcmFnSW1hZ2VSZWYgY3JlYXRl
RHJhZ0ltYWdlRnJvbUltYWdlKEltYWdlKiBpbWFnZSkKK3sKKyAgICByZXR1cm4gbmV3IFNrQml0
bWFwKCppbWFnZS0+bmF0aXZlSW1hZ2VGb3JDdXJyZW50RnJhbWUoKSk7Cit9CisKK0RyYWdJbWFn
ZVJlZiBjcmVhdGVEcmFnSW1hZ2VJY29uRm9yQ2FjaGVkSW1hZ2UoQ2FjaGVkSW1hZ2UqKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKSW5kZXg6IC91c3IvbG9jYWwvZ29vZ2xlLzJjaHJvbWUvc3JjL3RoaXJkX3BhcnR5
L1dlYktpdC9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0RyYWdJbWFnZVJlZi5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIC91c3IvbG9jYWwvZ29vZ2xlLzJjaHJvbWUvc3JjL3RoaXJkX3BhcnR5L1dlYktpdC9X
ZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0RyYWdJbWFnZVJlZi5oCShyZXZpc2lvbiA1NjA3MykK
KysrIC91c3IvbG9jYWwvZ29vZ2xlLzJjaHJvbWUvc3JjL3RoaXJkX3BhcnR5L1dlYktpdC9XZWJD
b3JlL3BsYXRmb3JtL2Nocm9taXVtL0RyYWdJbWFnZVJlZi5oCSh3b3JraW5nIGNvcHkpCkBAIC0y
OSwxMSArMjksMTYgQEAKICNpZm5kZWYgRHJhZ0ltYWdlUmVmX2gKICNkZWZpbmUgRHJhZ0ltYWdl
UmVmX2gKIAorY2xhc3MgU2tCaXRtYXA7CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotICAgIC8v
IEZJWE1FOiBOZWVkIHRvIHN1cHBvcnQgaW1hZ2UgZHJhZy1uLWRyb3AuICBGb3Igbm93LCB3ZSBq
dXN0IGFsbG93IHRoaW5ncwotICAgIC8vIHRvIGNvbXBpbGUgYnkgZGVmaW5pbmcgdGhpcyBkdW1t
eSB0eXBlLgotICAgIHR5cGVkZWYgdm9pZCogRHJhZ0ltYWdlUmVmOworI2lmIE9TKERBUldJTikK
Ky8vIEZJWE1FOiBub3QgaW1wbGVtZW50ZWQuCit0eXBlZGVmIHZvaWQqIERyYWdJbWFnZVJlZjsK
KyNlbHNlCit0eXBlZGVmIFNrQml0bWFwKiBEcmFnSW1hZ2VSZWY7CisjZW5kaWYKIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQogCkluZGV4OiAvdXNyL2xvY2FsL2dvb2dsZS8yY2hyb21lL3NyYy90
aGlyZF9wYXJ0eS9XZWJLaXQvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9EcmFnSW1hZ2VDaHJv
bWl1bU1hYy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gL3Vzci9sb2NhbC9nb29nbGUvMmNocm9tZS9zcmMv
dGhpcmRfcGFydHkvV2ViS2l0L1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRHJhZ0ltYWdlQ2hy
b21pdW1NYWMuY3BwCShyZXZpc2lvbiAwKQorKysgL3Vzci9sb2NhbC9nb29nbGUvMmNocm9tZS9z
cmMvdGhpcmRfcGFydHkvV2ViS2l0L1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRHJhZ0ltYWdl
Q2hyb21pdW1NYWMuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDczIEBACisvKgorICogQ29w
eXJpZ2h0IChjKSAyMDEwLCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqIAorICogICAgICogUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3Ry
aWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRo
ZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9y
IHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQg
c3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICogCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisg
KiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1Ig
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJEcmFnSW1hZ2UuaCIKKworI2luY2x1ZGUgIk5vdEltcGxl
bWVudGVkLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworSW50U2l6ZSBkcmFnSW1hZ2VTaXpl
KERyYWdJbWFnZVJlZiBpbWFnZSkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVy
biBJbnRTaXplKCk7Cit9CisKK3ZvaWQgZGVsZXRlRHJhZ0ltYWdlKERyYWdJbWFnZVJlZiBpbWFn
ZSkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCitEcmFnSW1hZ2VSZWYgc2NhbGVEcmFn
SW1hZ2UoRHJhZ0ltYWdlUmVmIGltYWdlLCBGbG9hdFNpemUgc2NhbGUpCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMDsKK30KKworRHJhZ0ltYWdlUmVmIGRpc3NvbHZlRHJh
Z0ltYWdlVG9GcmFjdGlvbihEcmFnSW1hZ2VSZWYgaW1hZ2UsIGZsb2F0KQoreworICAgIG5vdElt
cGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGltYWdlOworfQorCitEcmFnSW1hZ2VSZWYgY3JlYXRl
RHJhZ0ltYWdlRnJvbUltYWdlKEltYWdlKiBpbWcpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
KyAgICByZXR1cm4gMDsKK30KKworRHJhZ0ltYWdlUmVmIGNyZWF0ZURyYWdJbWFnZUljb25Gb3JD
YWNoZWRJbWFnZShDYWNoZWRJbWFnZSopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBy
ZXR1cm4gMDsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogL3Vzci9sb2NhbC9n
b29nbGUvMmNocm9tZS9zcmMvdGhpcmRfcGFydHkvV2ViS2l0L1dlYkNvcmUvV2ViQ29yZS5neXBp
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIC91c3IvbG9jYWwvZ29vZ2xlLzJjaHJvbWUvc3JjL3RoaXJkX3BhcnR5
L1dlYktpdC9XZWJDb3JlL1dlYkNvcmUuZ3lwaQkocmV2aXNpb24gNTYwNzMpCisrKyAvdXNyL2xv
Y2FsL2dvb2dsZS8yY2hyb21lL3NyYy90aGlyZF9wYXJ0eS9XZWJLaXQvV2ViQ29yZS9XZWJDb3Jl
Lmd5cGkJKHdvcmtpbmcgY29weSkKQEAgLTE5NDksNyArMTk0OSw4IEBACiAgICAgICAgICAgICAn
cGxhdGZvcm0vY2hyb21pdW0vQ3Vyc29yQ2hyb21pdW0uY3BwJywKICAgICAgICAgICAgICdwbGF0
Zm9ybS9jaHJvbWl1bS9EcmFnRGF0YUNocm9taXVtLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZv
cm0vY2hyb21pdW0vRHJhZ0RhdGFSZWYuaCcsCi0gICAgICAgICAgICAncGxhdGZvcm0vY2hyb21p
dW0vRHJhZ0ltYWdlQ2hyb21pdW0uY3BwJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1
bS9EcmFnSW1hZ2VDaHJvbWl1bU1hYy5jcHAnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9t
aXVtL0RyYWdJbWFnZUNocm9taXVtU2tpYS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2No
cm9taXVtL0RyYWdJbWFnZVJlZi5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9G
aWxlQ2hvb3NlckNocm9taXVtLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0v
RmlsZVN5c3RlbUNocm9taXVtLmNwcCcsCkluZGV4OiAvdXNyL2xvY2FsL2dvb2dsZS8yY2hyb21l
L3NyYy90aGlyZF9wYXJ0eS9XZWJLaXQvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIC91c3IvbG9jYWwvZ29vZ2xlLzJjaHJvbWUvc3JjL3RoaXJkX3BhcnR5
L1dlYktpdC9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgJKHJldmlzaW9uIDU2MDcz
KQorKysgL3Vzci9sb2NhbC9nb29nbGUvMmNocm9tZS9zcmMvdGhpcmRfcGFydHkvV2ViS2l0L1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaAkod29ya2luZyBjb3B5KQpAQCAtNzIsNiAr
NzIsNyBAQAogY2xhc3MgV2ViQWNjZXNzaWJpbGl0eU9iamVjdDsKIGNsYXNzIFdlYkRldlRvb2xz
QWdlbnRQcml2YXRlOwogY2xhc3MgV2ViRnJhbWVJbXBsOworY2xhc3MgV2ViSW1hZ2U7CiBjbGFz
cyBXZWJLZXlib2FyZEV2ZW50OwogY2xhc3MgV2ViTW91c2VFdmVudDsKIGNsYXNzIFdlYk1vdXNl
V2hlZWxFdmVudDsKQEAgLTI3Miw5ICsyNzMsMTAgQEAKIAogICAgIC8vIFN0YXJ0IGEgc3lzdGVt
IGRyYWcgYW5kIGRyb3Agb3BlcmF0aW9uLgogICAgIHZvaWQgc3RhcnREcmFnZ2luZygKLSAgICAg
ICAgY29uc3QgV2ViUG9pbnQmIGV2ZW50UG9zLAogICAgICAgICBjb25zdCBXZWJEcmFnRGF0YSYg
ZHJhZ0RhdGEsCi0gICAgICAgIFdlYkRyYWdPcGVyYXRpb25zTWFzayBkcmFnU291cmNlT3BlcmF0
aW9uTWFzayk7CisgICAgICAgIFdlYkRyYWdPcGVyYXRpb25zTWFzayBtYXNrLAorICAgICAgICBj
b25zdCBXZWJJbWFnZSYgZHJhZ0ltYWdlLAorICAgICAgICBjb25zdCBXZWJQb2ludCYgZHJhZ0lt
YWdlT2Zmc2V0KTsKIAogICAgIHZvaWQgc3VnZ2VzdGlvbnNQb3B1cERpZEhpZGUoKQogICAgIHsK
SW5kZXg6IC91c3IvbG9jYWwvZ29vZ2xlLzJjaHJvbWUvc3JjL3RoaXJkX3BhcnR5L1dlYktpdC9X
ZWJLaXQvY2hyb21pdW0vc3JjL0RyYWdDbGllbnRJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSAvdXNy
L2xvY2FsL2dvb2dsZS8yY2hyb21lL3NyYy90aGlyZF9wYXJ0eS9XZWJLaXQvV2ViS2l0L2Nocm9t
aXVtL3NyYy9EcmFnQ2xpZW50SW1wbC5jcHAJKHJldmlzaW9uIDU2MDczKQorKysgL3Vzci9sb2Nh
bC9nb29nbGUvMmNocm9tZS9zcmMvdGhpcmRfcGFydHkvV2ViS2l0L1dlYktpdC9jaHJvbWl1bS9z
cmMvRHJhZ0NsaWVudEltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCwxMSArMzAsMTQgQEAK
IAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkRyYWdDbGllbnRJbXBsLmgiCi0KKyNp
bmNsdWRlICJEcmFnSW1hZ2VSZWYuaCIKICNpbmNsdWRlICJDaHJvbWl1bURhdGFPYmplY3QuaCIK
ICNpbmNsdWRlICJDbGlwYm9hcmRDaHJvbWl1bS5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5j
bHVkZSAiTmF0aXZlSW1hZ2VTa2lhLmgiCisjaW5jbHVkZSAiV2ViQ29tbW9uLmgiCiAjaW5jbHVk
ZSAiV2ViRHJhZ0RhdGEuaCIKKyNpbmNsdWRlICJXZWJJbWFnZS5oIgogI2luY2x1ZGUgIldlYlZp
ZXdDbGllbnQuaCIKICNpbmNsdWRlICJXZWJWaWV3SW1wbC5oIgogCkBAIC04MSw4ICs4NCwxOSBA
QAogCiAgICAgRHJhZ09wZXJhdGlvbiBkcmFnT3BlcmF0aW9uTWFzayA9IGNsaXBib2FyZC0+c291
cmNlT3BlcmF0aW9uKCk7CiAKKyAgICBJbnRTaXplIG9mZnNldFNpemUoZXZlbnRQb3MgLSBkcmFn
SW1hZ2VPcmlnaW4pOworICAgIFdlYlBvaW50IG9mZnNldFBvaW50KG9mZnNldFNpemUud2lkdGgo
KSwgb2Zmc2V0U2l6ZS5oZWlnaHQoKSk7CisjaWYgV0VCS0lUX1VTSU5HX1NLSUEKICAgICBtX3dl
YlZpZXctPnN0YXJ0RHJhZ2dpbmcoCi0gICAgICAgIGV2ZW50UG9zLCBkcmFnRGF0YSwgc3RhdGlj
X2Nhc3Q8V2ViRHJhZ09wZXJhdGlvbnNNYXNrPihkcmFnT3BlcmF0aW9uTWFzaykpOworICAgICAg
ICBkcmFnRGF0YSwgc3RhdGljX2Nhc3Q8V2ViRHJhZ09wZXJhdGlvbnNNYXNrPihkcmFnT3BlcmF0
aW9uTWFzayksCisgICAgICAgIFdlYkltYWdlKCpkcmFnSW1hZ2UpLCBvZmZzZXRQb2ludCk7Cisj
ZWxzZQorICAgIC8vIEZJWE1FOiBXaGVuIERyYWdJbWFnZVJlZiBpcyBpbXBsZW1lbnRlZCBmb3Ig
Q0csIHdlIGNhbiBwcm9iYWJseSBqdXN0IHJlbW92ZQorICAgIC8vIHRoaXMgI2lmIGZvcmsuIEZv
ciBub3csIHBhc3MgYW4gZW1wdHkgaW1hZ2UuCisgICAgbV93ZWJWaWV3LT5zdGFydERyYWdnaW5n
KAorICAgICAgICBkcmFnRGF0YSwgc3RhdGljX2Nhc3Q8V2ViRHJhZ09wZXJhdGlvbnNNYXNrPihk
cmFnT3BlcmF0aW9uTWFzayksCisgICAgICAgIFdlYkltYWdlKCksIFdlYlBvaW50KCkpOworI2Vu
ZGlmCiB9CiAKIERyYWdJbWFnZVJlZiBEcmFnQ2xpZW50SW1wbDo6Y3JlYXRlRHJhZ0ltYWdlRm9y
TGluayhLVVJMJiwgY29uc3QgU3RyaW5nJiBsYWJlbCwgRnJhbWUqKQpJbmRleDogL3Vzci9sb2Nh
bC9nb29nbGUvMmNocm9tZS9zcmMvdGhpcmRfcGFydHkvV2ViS2l0L1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViVmlld0ltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIC91c3IvbG9jYWwvZ29vZ2xlLzJjaHJv
bWUvc3JjL3RoaXJkX3BhcnR5L1dlYktpdC9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBs
LmNwcAkocmV2aXNpb24gNTYwNzMpCisrKyAvdXNyL2xvY2FsL2dvb2dsZS8yY2hyb21lL3NyYy90
aGlyZF9wYXJ0eS9XZWJLaXQvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTg3LDYgKzg3LDcgQEAKICNpbmNsdWRlICJXZWJEZXZUb29sc0FnZW50
UHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYkRyYWdEYXRhLmgiCiAjaW5jbHVkZSAiV2ViRnJhbWVJ
bXBsLmgiCisjaW5jbHVkZSAiV2ViSW1hZ2UuaCIKICNpbmNsdWRlICJXZWJJbnB1dEV2ZW50Lmgi
CiAjaW5jbHVkZSAiV2ViSW5wdXRFdmVudENvbnZlcnNpb24uaCIKICNpbmNsdWRlICJXZWJNZWRp
YVBsYXllckFjdGlvbi5oIgpAQCAtMTg4MywxNSArMTg4NCwxNiBAQAogICAgIHJldHVybiB0cnVl
OwogfQogCi12b2lkIFdlYlZpZXdJbXBsOjpzdGFydERyYWdnaW5nKGNvbnN0IFdlYlBvaW50JiBl
dmVudFBvcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgV2ViRHJhZ0Rh
dGEmIGRyYWdEYXRhLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJEcmFnT3Bl
cmF0aW9uc01hc2sgbWFzaykKK3ZvaWQgV2ViVmlld0ltcGw6OnN0YXJ0RHJhZ2dpbmcoY29uc3Qg
V2ViRHJhZ0RhdGEmIGRyYWdEYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBX
ZWJEcmFnT3BlcmF0aW9uc01hc2sgbWFzaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY29uc3QgV2ViSW1hZ2UmIGRyYWdJbWFnZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY29uc3QgV2ViUG9pbnQmIGRyYWdJbWFnZU9mZnNldCkKIHsKICAgICBpZiAoIW1fY2xp
ZW50KQogICAgICAgICByZXR1cm47CiAgICAgQVNTRVJUKCFtX2RvaW5nRHJhZ0FuZERyb3ApOwog
ICAgIG1fZG9pbmdEcmFnQW5kRHJvcCA9IHRydWU7Ci0gICAgbV9jbGllbnQtPnN0YXJ0RHJhZ2dp
bmcoZXZlbnRQb3MsIGRyYWdEYXRhLCBtYXNrKTsKKyAgICBtX2NsaWVudC0+c3RhcnREcmFnZ2lu
ZyhkcmFnRGF0YSwgbWFzaywgZHJhZ0ltYWdlLCBkcmFnSW1hZ2VPZmZzZXQpOwogfQogCiB2b2lk
IFdlYlZpZXdJbXBsOjpzZXRDdXJyZW50SGlzdG9yeUl0ZW0oSGlzdG9yeUl0ZW0qIGl0ZW0pCklu
ZGV4OiAvdXNyL2xvY2FsL2dvb2dsZS8yY2hyb21lL3NyYy90aGlyZF9wYXJ0eS9XZWJLaXQvV2Vi
S2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gL3Vzci9s
b2NhbC9nb29nbGUvMmNocm9tZS9zcmMvdGhpcmRfcGFydHkvV2ViS2l0L1dlYktpdC9jaHJvbWl1
bS9wdWJsaWMvV2ViVmlld0NsaWVudC5oCShyZXZpc2lvbiA1NjA3MykKKysrIC91c3IvbG9jYWwv
Z29vZ2xlLzJjaHJvbWUvc3JjL3RoaXJkX3BhcnR5L1dlYktpdC9XZWJLaXQvY2hyb21pdW0vcHVi
bGljL1dlYlZpZXdDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNDcsNiArNDcsNyBAQAogY2xh
c3MgV2ViRmlsZUNob29zZXJDb21wbGV0aW9uOwogY2xhc3MgV2ViRnJhbWU7CiBjbGFzcyBXZWJH
ZW9sb2NhdGlvblNlcnZpY2VJbnRlcmZhY2U7CitjbGFzcyBXZWJJbWFnZTsKIGNsYXNzIFdlYk5v
ZGU7CiBjbGFzcyBXZWJOb3RpZmljYXRpb25QcmVzZW50ZXI7CiBjbGFzcyBXZWJSYW5nZTsKQEAg
LTIxOSw3ICsyMjAsNyBAQAogCiAgICAgLy8gQ2FsbGVkIHdoZW4gYSBkcmFnLW4tZHJvcCBvcGVy
YXRpb24gc2hvdWxkIGJlZ2luLgogICAgIHZpcnR1YWwgdm9pZCBzdGFydERyYWdnaW5nKAotICAg
ICAgICBjb25zdCBXZWJQb2ludCYgZnJvbSwgY29uc3QgV2ViRHJhZ0RhdGEmLCBXZWJEcmFnT3Bl
cmF0aW9uc01hc2spIHsgfQorICAgICAgICBjb25zdCBXZWJEcmFnRGF0YSYsIFdlYkRyYWdPcGVy
YXRpb25zTWFzaywgY29uc3QgV2ViSW1hZ2UmLCBjb25zdCBXZWJQb2ludCYpIHsgfQogCiAgICAg
Ly8gQ2FsbGVkIHRvIGRldGVybWluZSBpZiBkcmFnLW4tZHJvcCBvcGVyYXRpb25zIG1heSBpbml0
aWF0ZSBhIHBhZ2UKICAgICAvLyBuYXZpZ2F0aW9uLgpJbmRleDogL3Vzci9sb2NhbC9nb29nbGUv
MmNocm9tZS9zcmMvdGhpcmRfcGFydHkvV2ViS2l0L1dlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIC91c3IvbG9jYWwvZ29vZ2xlLzJjaHJvbWUvc3JjL3RoaXJkX3BhcnR5L1dlYktpdC9X
ZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gNTYxMTIpCisrKyAvdXNyL2xvY2FsL2dvb2dsZS8y
Y2hyb21lL3NyYy90aGlyZF9wYXJ0eS9XZWJLaXQvV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMyArMSwxOCBAQAorMjAxMC0wMy0xNyAgRXZhbiBTdGFkZSAgPGVzdGFkZUBj
aHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgW2Nocm9taXVtXSBuZWVkIERyYWdJbWFnZSBpbXBsZW1lbnRhdGlvbgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzU4MTEKKworICAgICAgICBC
YXNpYyBpbXBsZW1lbnRhdGlvbiB1c2luZyBTa0JpdG1hcC4gVHJhbnNmb3JtYXRpb25zIGFyZSBu
b3Qgc3VwcG9ydGVkCisgICAgICAgIHlldC4gTm8gaW1wbGVtZW50YXRpb24gZm9yIG1hYy4KKwor
ICAgICAgICAqIFdlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwOgorICAgICAgICAqIFdlYkNvcmUuZ3lw
aToKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9EcmFnSW1hZ2VDaHJvbWl1bS5jcHA6Cisg
ICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vRHJhZ0ltYWdlUmVmLmg6CisKIDIwMTAtMDMtMTcg
IFN0ZXZlIEJsb2NrICA8c3RldmVibG9ja0Bnb29nbGUuY29tPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IERpbWl0cmkgR2xhemtvdi4KSW5kZXg6IC91c3IvbG9jYWwvZ29vZ2xlLzJjaHJvbWUvc3Jj
L3RoaXJkX3BhcnR5L1dlYktpdC9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIC91c3IvbG9jYWwvZ29vZ2xlLzJjaHJvbWUvc3JjL3RoaXJkX3BhcnR5L1dlYktpdC9XZWJL
aXQvY2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiA1NjA5OCkKKysrIC91c3IvbG9jYWwvZ29v
Z2xlLzJjaHJvbWUvc3JjL3RoaXJkX3BhcnR5L1dlYktpdC9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTAtMDMtMTYgIEV2YW4gU3Rh
ZGUgIDxlc3RhZGVAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFtjaHJvbWl1bV0gbmVlZCBEcmFnSW1hZ2UgaW1wbGVtZW50YXRp
b24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM1ODEx
CisKKyAgICAgICAgVXNlIHRoZSBEcmFnSW1hZ2VSZWYgdGhhdCB0aGUgRHJhZ0NvbnRyb2xsZXIg
cGFzc2VzIHRvIHVzLgorCisgICAgICAgICogcHVibGljL1dlYlZpZXdDbGllbnQuaDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViVmlld0NsaWVudDo6c3RhcnREcmFnZ2luZyk6CisgICAgICAgICogc3Jj
L0RyYWdDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RHJhZ0NsaWVudEltcGw6OnN0
YXJ0RHJhZyk6CisgICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViVmlld0ltcGw6OnN0YXJ0RHJhZ2dpbmcpOgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1w
bC5oOgorCiAyMDEwLTAzLTE2ICBKYW1lcyBIYXdraW5zICA8amhhd2tpbnNAY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhdmlkIExldmluLgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>50912</attachid>
            <date>2010-03-17 08:43:05 -0700</date>
            <delta_ts>2010-04-01 14:43:34 -0700</delta_ts>
            <desc>correct relative paths</desc>
            <filename>drag.diff</filename>
            <type>text/plain</type>
            <size>15887</size>
            <attacher name="Evan Stade">estade</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5neXAvV2ViQ29yZS5neXAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5cAkocmV2aXNpb24gNTYwNzMpCisrKyBXZWJDb3Jl
L1dlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDY0LDYgKzEwNjQs
OSBAQAogICAgICAgICAgICAgJy4uL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL3NraWEvSW1hZ2VE
ZWNvZGVyU2tpYS5jcHAnLAogICAgICAgICAgICAgJy4uL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJz
L3hibS9YQk1JbWFnZURlY29kZXIuY3BwJywKICAgICAgICAgICAgICcuLi9wbGF0Zm9ybS9pbWFn
ZS1kZWNvZGVycy94Ym0vWEJNSW1hZ2VEZWNvZGVyLmgnLAorCisgICAgICAgICAgICAjIEFnYWlu
LCBTa2lhIGlzIG5vdCB1c2VkIG9uIE1hYy4KKyAgICAgICAgICAgICcuLi9wbGF0Zm9ybS9jaHJv
bWl1bS9EcmFnSW1hZ2VDaHJvbWl1bVNraWEuY3BwJywKICAgICAgICAgICBdLAogICAgICAgICAg
ICdkaXJlY3RfZGVwZW5kZW50X3NldHRpbmdzJzogewogICAgICAgICAgICAgJ2luY2x1ZGVfZGly
cyc6IFsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRHJhZ0ltYWdlQ2hyb21pdW0u
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRHJhZ0ltYWdlQ2hy
b21pdW0uY3BwCShyZXZpc2lvbiA1NjA3MykKKysrIFdlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0v
RHJhZ0ltYWdlQ2hyb21pdW0uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDczICswLDAgQEAKLS8q
Ci0gKiBDb3B5cmlnaHQgKGMpIDIwMDgsIDIwMDksIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0gKiAKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0OgotICog
Ci0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICog
aW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZQotICogZGlzdHJpYnV0aW9uLgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29n
bGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2Vk
IHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29m
dHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKiAKLSAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBD
T05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hU
Ci0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0g
Ki8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkRyYWdJbWFnZS5oIgotCi0jaW5j
bHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1JbnRTaXpl
IGRyYWdJbWFnZVNpemUoRHJhZ0ltYWdlUmVmIGltYWdlKQotewotICAgIG5vdEltcGxlbWVudGVk
KCk7Ci0gICAgcmV0dXJuIEludFNpemUoKTsKLX0KLQotdm9pZCBkZWxldGVEcmFnSW1hZ2UoRHJh
Z0ltYWdlUmVmIGltYWdlKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci19Ci0KLURyYWdJbWFn
ZVJlZiBzY2FsZURyYWdJbWFnZShEcmFnSW1hZ2VSZWYgaW1hZ2UsIEZsb2F0U2l6ZSBzY2FsZSkK
LXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiAwOwotfQotICAgIAotRHJhZ0lt
YWdlUmVmIGRpc3NvbHZlRHJhZ0ltYWdlVG9GcmFjdGlvbihEcmFnSW1hZ2VSZWYgaW1hZ2UsIGZs
b2F0KQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIGltYWdlOwotfQotICAg
ICAgICAKLURyYWdJbWFnZVJlZiBjcmVhdGVEcmFnSW1hZ2VGcm9tSW1hZ2UoSW1hZ2UqIGltZykK
LXsgICAgCi0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gMDsKLX0KLSAgICAKLURy
YWdJbWFnZVJlZiBjcmVhdGVEcmFnSW1hZ2VJY29uRm9yQ2FjaGVkSW1hZ2UoQ2FjaGVkSW1hZ2Uq
KQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIDA7ICAgICAKLX0KLSAgICAK
LX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0v
RHJhZ0ltYWdlQ2hyb21pdW1Ta2lhLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3Jt
L2Nocm9taXVtL0RyYWdJbWFnZUNocm9taXVtU2tpYS5jcHAJKHJldmlzaW9uIDApCisrKyBXZWJD
b3JlL3BsYXRmb3JtL2Nocm9taXVtL0RyYWdJbWFnZUNocm9taXVtU2tpYS5jcHAJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsNzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMDgsIDIwMDksIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zIGFyZQorICogbWV0OgorICogCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAg
ICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICog
TmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICog
Y29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBk
ZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0
dGVuIHBlcm1pc3Npb24uCisgKiAKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAq
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIkRyYWdJbWFnZS5oIgorCisjaW5jbHVkZSAiSW1hZ2UuaCIKKyNpbmNsdWRlICJOYXRpdmVJ
bWFnZVNraWEuaCIKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgIlJlZlB0
ci5oIgorI2luY2x1ZGUgIlNrQml0bWFwLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworSW50
U2l6ZSBkcmFnSW1hZ2VTaXplKERyYWdJbWFnZVJlZiBpbWFnZSkKK3sKKyAgICBpZiAoIWltYWdl
KQorICAgICAgICByZXR1cm4gSW50U2l6ZSgpOworCisgICAgcmV0dXJuIEludFNpemUoaW1hZ2Ut
PndpZHRoKCksIGltYWdlLT5oZWlnaHQoKSk7Cit9CisKK3ZvaWQgZGVsZXRlRHJhZ0ltYWdlKERy
YWdJbWFnZVJlZiBpbWFnZSkKK3sKKyAgICBkZWxldGUgaW1hZ2U7Cit9CisKK0RyYWdJbWFnZVJl
ZiBzY2FsZURyYWdJbWFnZShEcmFnSW1hZ2VSZWYgaW1hZ2UsIEZsb2F0U2l6ZSBzY2FsZSkKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBpbWFnZTsKK30KKworRHJhZ0ltYWdl
UmVmIGRpc3NvbHZlRHJhZ0ltYWdlVG9GcmFjdGlvbihEcmFnSW1hZ2VSZWYgaW1hZ2UsIGZsb2F0
KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGltYWdlOworfQorCitEcmFn
SW1hZ2VSZWYgY3JlYXRlRHJhZ0ltYWdlRnJvbUltYWdlKEltYWdlKiBpbWFnZSkKK3sKKyAgICBy
ZXR1cm4gbmV3IFNrQml0bWFwKCppbWFnZS0+bmF0aXZlSW1hZ2VGb3JDdXJyZW50RnJhbWUoKSk7
Cit9CisKK0RyYWdJbWFnZVJlZiBjcmVhdGVEcmFnSW1hZ2VJY29uRm9yQ2FjaGVkSW1hZ2UoQ2Fj
aGVkSW1hZ2UqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0v
RHJhZ0ltYWdlUmVmLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9E
cmFnSW1hZ2VSZWYuaAkocmV2aXNpb24gNTYwNzMpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2Nocm9t
aXVtL0RyYWdJbWFnZVJlZi5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSwxMSArMjksMTYgQEAKICNp
Zm5kZWYgRHJhZ0ltYWdlUmVmX2gKICNkZWZpbmUgRHJhZ0ltYWdlUmVmX2gKIAorY2xhc3MgU2tC
aXRtYXA7CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotICAgIC8vIEZJWE1FOiBOZWVkIHRvIHN1
cHBvcnQgaW1hZ2UgZHJhZy1uLWRyb3AuICBGb3Igbm93LCB3ZSBqdXN0IGFsbG93IHRoaW5ncwot
ICAgIC8vIHRvIGNvbXBpbGUgYnkgZGVmaW5pbmcgdGhpcyBkdW1teSB0eXBlLgotICAgIHR5cGVk
ZWYgdm9pZCogRHJhZ0ltYWdlUmVmOworI2lmIE9TKERBUldJTikKKy8vIEZJWE1FOiBub3QgaW1w
bGVtZW50ZWQuCit0eXBlZGVmIHZvaWQqIERyYWdJbWFnZVJlZjsKKyNlbHNlCit0eXBlZGVmIFNr
Qml0bWFwKiBEcmFnSW1hZ2VSZWY7CisjZW5kaWYKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQog
CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0RyYWdJbWFnZUNocm9taXVtTWFjLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0RyYWdJbWFnZUNocm9t
aXVtTWFjLmNwcAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRHJh
Z0ltYWdlQ2hyb21pdW1NYWMuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDczIEBACisvKgor
ICogQ29weXJpZ2h0IChjKSAyMDEwLCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqIAorICogICAg
ICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAq
IGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4g
bm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRv
cnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdp
dGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICogCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVU
T1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dO
RVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQor
ICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJEcmFnSW1hZ2UuaCIKKworI2luY2x1ZGUgIk5v
dEltcGxlbWVudGVkLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworSW50U2l6ZSBkcmFnSW1h
Z2VTaXplKERyYWdJbWFnZVJlZiBpbWFnZSkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAg
IHJldHVybiBJbnRTaXplKCk7Cit9CisKK3ZvaWQgZGVsZXRlRHJhZ0ltYWdlKERyYWdJbWFnZVJl
ZiBpbWFnZSkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCitEcmFnSW1hZ2VSZWYgc2Nh
bGVEcmFnSW1hZ2UoRHJhZ0ltYWdlUmVmIGltYWdlLCBGbG9hdFNpemUgc2NhbGUpCit7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMDsKK30KKworRHJhZ0ltYWdlUmVmIGRpc3Nv
bHZlRHJhZ0ltYWdlVG9GcmFjdGlvbihEcmFnSW1hZ2VSZWYgaW1hZ2UsIGZsb2F0KQoreworICAg
IG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGltYWdlOworfQorCitEcmFnSW1hZ2VSZWYg
Y3JlYXRlRHJhZ0ltYWdlRnJvbUltYWdlKEltYWdlKiBpbWcpCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICByZXR1cm4gMDsKK30KKworRHJhZ0ltYWdlUmVmIGNyZWF0ZURyYWdJbWFnZUlj
b25Gb3JDYWNoZWRJbWFnZShDYWNoZWRJbWFnZSopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
KyAgICByZXR1cm4gMDsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2ViQ29y
ZS9XZWJDb3JlLmd5cGkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLmd5cGkJKHJldmlz
aW9uIDU2MDczKQorKysgV2ViQ29yZS9XZWJDb3JlLmd5cGkJKHdvcmtpbmcgY29weSkKQEAgLTE5
NDksNyArMTk0OSw4IEBACiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vQ3Vyc29yQ2hy
b21pdW0uY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9EcmFnRGF0YUNocm9t
aXVtLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vRHJhZ0RhdGFSZWYuaCcs
Ci0gICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vRHJhZ0ltYWdlQ2hyb21pdW0uY3BwJywK
KyAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9EcmFnSW1hZ2VDaHJvbWl1bU1hYy5jcHAn
LAorICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL0RyYWdJbWFnZUNocm9taXVtU2tpYS5j
cHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL0RyYWdJbWFnZVJlZi5oJywKICAg
ICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9GaWxlQ2hvb3NlckNocm9taXVtLmNwcCcsCiAg
ICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vRmlsZVN5c3RlbUNocm9taXVtLmNwcCcsCklu
ZGV4OiBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCShyZXZpc2lvbiA1NjA3MykKKysrIFdlYktp
dC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaAkod29ya2luZyBjb3B5KQpAQCAtNzIsNiArNzIs
NyBAQAogY2xhc3MgV2ViQWNjZXNzaWJpbGl0eU9iamVjdDsKIGNsYXNzIFdlYkRldlRvb2xzQWdl
bnRQcml2YXRlOwogY2xhc3MgV2ViRnJhbWVJbXBsOworY2xhc3MgV2ViSW1hZ2U7CiBjbGFzcyBX
ZWJLZXlib2FyZEV2ZW50OwogY2xhc3MgV2ViTW91c2VFdmVudDsKIGNsYXNzIFdlYk1vdXNlV2hl
ZWxFdmVudDsKQEAgLTI3Miw5ICsyNzMsMTAgQEAKIAogICAgIC8vIFN0YXJ0IGEgc3lzdGVtIGRy
YWcgYW5kIGRyb3Agb3BlcmF0aW9uLgogICAgIHZvaWQgc3RhcnREcmFnZ2luZygKLSAgICAgICAg
Y29uc3QgV2ViUG9pbnQmIGV2ZW50UG9zLAogICAgICAgICBjb25zdCBXZWJEcmFnRGF0YSYgZHJh
Z0RhdGEsCi0gICAgICAgIFdlYkRyYWdPcGVyYXRpb25zTWFzayBkcmFnU291cmNlT3BlcmF0aW9u
TWFzayk7CisgICAgICAgIFdlYkRyYWdPcGVyYXRpb25zTWFzayBtYXNrLAorICAgICAgICBjb25z
dCBXZWJJbWFnZSYgZHJhZ0ltYWdlLAorICAgICAgICBjb25zdCBXZWJQb2ludCYgZHJhZ0ltYWdl
T2Zmc2V0KTsKIAogICAgIHZvaWQgc3VnZ2VzdGlvbnNQb3B1cERpZEhpZGUoKQogICAgIHsKSW5k
ZXg6IFdlYktpdC9jaHJvbWl1bS9zcmMvRHJhZ0NsaWVudEltcGwuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYktpdC9jaHJvbWl1bS9zcmMvRHJhZ0NsaWVudEltcGwuY3BwCShyZXZpc2lvbiA1NjA3MykK
KysrIFdlYktpdC9jaHJvbWl1bS9zcmMvRHJhZ0NsaWVudEltcGwuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zMCwxMSArMzAsMTQgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkRy
YWdDbGllbnRJbXBsLmgiCi0KKyNpbmNsdWRlICJEcmFnSW1hZ2VSZWYuaCIKICNpbmNsdWRlICJD
aHJvbWl1bURhdGFPYmplY3QuaCIKICNpbmNsdWRlICJDbGlwYm9hcmRDaHJvbWl1bS5oIgogI2lu
Y2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiTmF0aXZlSW1hZ2VTa2lhLmgiCisjaW5jbHVkZSAi
V2ViQ29tbW9uLmgiCiAjaW5jbHVkZSAiV2ViRHJhZ0RhdGEuaCIKKyNpbmNsdWRlICJXZWJJbWFn
ZS5oIgogI2luY2x1ZGUgIldlYlZpZXdDbGllbnQuaCIKICNpbmNsdWRlICJXZWJWaWV3SW1wbC5o
IgogCkBAIC04MSw4ICs4NCwxOSBAQAogCiAgICAgRHJhZ09wZXJhdGlvbiBkcmFnT3BlcmF0aW9u
TWFzayA9IGNsaXBib2FyZC0+c291cmNlT3BlcmF0aW9uKCk7CiAKKyAgICBJbnRTaXplIG9mZnNl
dFNpemUoZXZlbnRQb3MgLSBkcmFnSW1hZ2VPcmlnaW4pOworICAgIFdlYlBvaW50IG9mZnNldFBv
aW50KG9mZnNldFNpemUud2lkdGgoKSwgb2Zmc2V0U2l6ZS5oZWlnaHQoKSk7CisjaWYgV0VCS0lU
X1VTSU5HX1NLSUEKICAgICBtX3dlYlZpZXctPnN0YXJ0RHJhZ2dpbmcoCi0gICAgICAgIGV2ZW50
UG9zLCBkcmFnRGF0YSwgc3RhdGljX2Nhc3Q8V2ViRHJhZ09wZXJhdGlvbnNNYXNrPihkcmFnT3Bl
cmF0aW9uTWFzaykpOworICAgICAgICBkcmFnRGF0YSwgc3RhdGljX2Nhc3Q8V2ViRHJhZ09wZXJh
dGlvbnNNYXNrPihkcmFnT3BlcmF0aW9uTWFzayksCisgICAgICAgIFdlYkltYWdlKCpkcmFnSW1h
Z2UpLCBvZmZzZXRQb2ludCk7CisjZWxzZQorICAgIC8vIEZJWE1FOiBXaGVuIERyYWdJbWFnZVJl
ZiBpcyBpbXBsZW1lbnRlZCBmb3IgQ0csIHdlIGNhbiBwcm9iYWJseSBqdXN0IHJlbW92ZQorICAg
IC8vIHRoaXMgI2lmIGZvcmsuIEZvciBub3csIHBhc3MgYW4gZW1wdHkgaW1hZ2UuCisgICAgbV93
ZWJWaWV3LT5zdGFydERyYWdnaW5nKAorICAgICAgICBkcmFnRGF0YSwgc3RhdGljX2Nhc3Q8V2Vi
RHJhZ09wZXJhdGlvbnNNYXNrPihkcmFnT3BlcmF0aW9uTWFzayksCisgICAgICAgIFdlYkltYWdl
KCksIFdlYlBvaW50KCkpOworI2VuZGlmCiB9CiAKIERyYWdJbWFnZVJlZiBEcmFnQ2xpZW50SW1w
bDo6Y3JlYXRlRHJhZ0ltYWdlRm9yTGluayhLVVJMJiwgY29uc3QgU3RyaW5nJiBsYWJlbCwgRnJh
bWUqKQpJbmRleDogV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAJKHJldmlzaW9uIDU2MDcz
KQorKysgV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTg3LDYgKzg3LDcgQEAKICNpbmNsdWRlICJXZWJEZXZUb29sc0FnZW50UHJpdmF0ZS5oIgog
I2luY2x1ZGUgIldlYkRyYWdEYXRhLmgiCiAjaW5jbHVkZSAiV2ViRnJhbWVJbXBsLmgiCisjaW5j
bHVkZSAiV2ViSW1hZ2UuaCIKICNpbmNsdWRlICJXZWJJbnB1dEV2ZW50LmgiCiAjaW5jbHVkZSAi
V2ViSW5wdXRFdmVudENvbnZlcnNpb24uaCIKICNpbmNsdWRlICJXZWJNZWRpYVBsYXllckFjdGlv
bi5oIgpAQCAtMTg4MywxNSArMTg4NCwxNiBAQAogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lk
IFdlYlZpZXdJbXBsOjpzdGFydERyYWdnaW5nKGNvbnN0IFdlYlBvaW50JiBldmVudFBvcywKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgV2ViRHJhZ0RhdGEmIGRyYWdEYXRh
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJEcmFnT3BlcmF0aW9uc01hc2sg
bWFzaykKK3ZvaWQgV2ViVmlld0ltcGw6OnN0YXJ0RHJhZ2dpbmcoY29uc3QgV2ViRHJhZ0RhdGEm
IGRyYWdEYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJEcmFnT3BlcmF0
aW9uc01hc2sgbWFzaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgV2Vi
SW1hZ2UmIGRyYWdJbWFnZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg
V2ViUG9pbnQmIGRyYWdJbWFnZU9mZnNldCkKIHsKICAgICBpZiAoIW1fY2xpZW50KQogICAgICAg
ICByZXR1cm47CiAgICAgQVNTRVJUKCFtX2RvaW5nRHJhZ0FuZERyb3ApOwogICAgIG1fZG9pbmdE
cmFnQW5kRHJvcCA9IHRydWU7Ci0gICAgbV9jbGllbnQtPnN0YXJ0RHJhZ2dpbmcoZXZlbnRQb3Ms
IGRyYWdEYXRhLCBtYXNrKTsKKyAgICBtX2NsaWVudC0+c3RhcnREcmFnZ2luZyhkcmFnRGF0YSwg
bWFzaywgZHJhZ0ltYWdlLCBkcmFnSW1hZ2VPZmZzZXQpOwogfQogCiB2b2lkIFdlYlZpZXdJbXBs
OjpzZXRDdXJyZW50SGlzdG9yeUl0ZW0oSGlzdG9yeUl0ZW0qIGl0ZW0pCkluZGV4OiBXZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYlZpZXdDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hy
b21pdW0vcHVibGljL1dlYlZpZXdDbGllbnQuaAkocmV2aXNpb24gNTYwNzMpCisrKyBXZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYlZpZXdDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNDcsNiAr
NDcsNyBAQAogY2xhc3MgV2ViRmlsZUNob29zZXJDb21wbGV0aW9uOwogY2xhc3MgV2ViRnJhbWU7
CiBjbGFzcyBXZWJHZW9sb2NhdGlvblNlcnZpY2VJbnRlcmZhY2U7CitjbGFzcyBXZWJJbWFnZTsK
IGNsYXNzIFdlYk5vZGU7CiBjbGFzcyBXZWJOb3RpZmljYXRpb25QcmVzZW50ZXI7CiBjbGFzcyBX
ZWJSYW5nZTsKQEAgLTIxOSw3ICsyMjAsNyBAQAogCiAgICAgLy8gQ2FsbGVkIHdoZW4gYSBkcmFn
LW4tZHJvcCBvcGVyYXRpb24gc2hvdWxkIGJlZ2luLgogICAgIHZpcnR1YWwgdm9pZCBzdGFydERy
YWdnaW5nKAotICAgICAgICBjb25zdCBXZWJQb2ludCYgZnJvbSwgY29uc3QgV2ViRHJhZ0RhdGEm
LCBXZWJEcmFnT3BlcmF0aW9uc01hc2spIHsgfQorICAgICAgICBjb25zdCBXZWJEcmFnRGF0YSYs
IFdlYkRyYWdPcGVyYXRpb25zTWFzaywgY29uc3QgV2ViSW1hZ2UmLCBjb25zdCBXZWJQb2ludCYp
IHsgfQogCiAgICAgLy8gQ2FsbGVkIHRvIGRldGVybWluZSBpZiBkcmFnLW4tZHJvcCBvcGVyYXRp
b25zIG1heSBpbml0aWF0ZSBhIHBhZ2UKICAgICAvLyBuYXZpZ2F0aW9uLgpJbmRleDogV2ViQ29y
ZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDU2
MTEyKQorKysgV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxOCBA
QAorMjAxMC0wMy0xNyAgRXZhbiBTdGFkZSAgPGVzdGFkZUBjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW2Nocm9taXVtXSBuZWVk
IERyYWdJbWFnZSBpbXBsZW1lbnRhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MzU4MTEKKworICAgICAgICBCYXNpYyBpbXBsZW1lbnRhdGlvbiB1
c2luZyBTa0JpdG1hcC4gVHJhbnNmb3JtYXRpb25zIGFyZSBub3Qgc3VwcG9ydGVkCisgICAgICAg
IHlldC4gTm8gaW1wbGVtZW50YXRpb24gZm9yIG1hYy4KKworICAgICAgICAqIFdlYkNvcmUuZ3lw
L1dlYkNvcmUuZ3lwOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBwbGF0Zm9y
bS9jaHJvbWl1bS9EcmFnSW1hZ2VDaHJvbWl1bS5jcHA6CisgICAgICAgICogcGxhdGZvcm0vY2hy
b21pdW0vRHJhZ0ltYWdlUmVmLmg6CisKIDIwMTAtMDMtMTcgIFN0ZXZlIEJsb2NrICA8c3RldmVi
bG9ja0Bnb29nbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERpbWl0cmkgR2xhemtvdi4K
SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gNTYwOTgpCisrKyBXZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTAtMDMtMTYgIEV2YW4g
U3RhZGUgIDxlc3RhZGVAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFtjaHJvbWl1bV0gbmVlZCBEcmFnSW1hZ2UgaW1wbGVtZW50
YXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM1
ODExCisKKyAgICAgICAgVXNlIHRoZSBEcmFnSW1hZ2VSZWYgdGhhdCB0aGUgRHJhZ0NvbnRyb2xs
ZXIgcGFzc2VzIHRvIHVzLgorCisgICAgICAgICogcHVibGljL1dlYlZpZXdDbGllbnQuaDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViVmlld0NsaWVudDo6c3RhcnREcmFnZ2luZyk6CisgICAgICAgICog
c3JjL0RyYWdDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RHJhZ0NsaWVudEltcGw6
OnN0YXJ0RHJhZyk6CisgICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViVmlld0ltcGw6OnN0YXJ0RHJhZ2dpbmcpOgorICAgICAgICAqIHNyYy9XZWJWaWV3
SW1wbC5oOgorCiAyMDEwLTAzLTE2ICBKYW1lcyBIYXdraW5zICA8amhhd2tpbnNAY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhdmlkIExldmluLgo=
</data>
<flag name="review"
          id="34081"
          type_id="1"
          status="+"
          setter="fishd"
    />
    <flag name="commit-queue"
          id="35603"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>52339</attachid>
            <date>2010-04-01 14:43:34 -0700</date>
            <delta_ts>2010-04-02 11:07:08 -0700</delta_ts>
            <desc>re-synced</desc>
            <filename>sync.diff</filename>
            <type>text/plain</type>
            <size>10635</size>
            <attacher name="Evan Stade">estade</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NjkzNCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTggQEAKKzIwMTAtMDQtMDEgIEV2YW4gU3RhZGUgIDxlc3RhZGVAY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtj
aHJvbWl1bV0gbmVlZCBEcmFnSW1hZ2UgaW1wbGVtZW50YXRpb24KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM1ODExCisKKyAgICAgICAgQmFzaWMgaW1w
bGVtZW50YXRpb24gdXNpbmcgU2tCaXRtYXAuIFRyYW5zZm9ybWF0aW9ucyBhcmUgbm90IHN1cHBv
cnRlZAorICAgICAgICB5ZXQuIE5vIGltcGxlbWVudGF0aW9uIGZvciBtYWMuCisKKyAgICAgICAg
KiBXZWJDb3JlLmd5cC9XZWJDb3JlLmd5cDoKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAg
ICAgICogcGxhdGZvcm0vY2hyb21pdW0vRHJhZ0ltYWdlQ2hyb21pdW0uY3BwOgorICAgICAgICAq
IHBsYXRmb3JtL2Nocm9taXVtL0RyYWdJbWFnZVJlZi5oOgorCiAyMDEwLTA0LTAxICBHZW9mZnJl
eSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2FtIFdl
aW5pZy4KSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5neXBpCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
V2ViQ29yZS5neXBpCShyZXZpc2lvbiA1NjkzNCkKKysrIFdlYkNvcmUvV2ViQ29yZS5neXBpCSh3
b3JraW5nIGNvcHkpCkBAIC0xOTUxLDcgKzE5NTEsOCBAQAogICAgICAgICAgICAgJ3BsYXRmb3Jt
L2Nocm9taXVtL0N1cnNvckNocm9taXVtLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vY2hy
b21pdW0vRHJhZ0RhdGFDaHJvbWl1bS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9t
aXVtL0RyYWdEYXRhUmVmLmgnLAotICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL0RyYWdJ
bWFnZUNocm9taXVtLmNwcCcsCisgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vRHJhZ0lt
YWdlQ2hyb21pdW1NYWMuY3BwJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9EcmFn
SW1hZ2VDaHJvbWl1bVNraWEuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9E
cmFnSW1hZ2VSZWYuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vRmlsZUNob29z
ZXJDaHJvbWl1bS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL0ZpbGVTeXN0
ZW1DaHJvbWl1bS5jcHAnLApJbmRleDogV2ViQ29yZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5cAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwCShyZXZpc2lvbiA1
NjkzNCkKKysrIFdlYkNvcmUvV2ViQ29yZS5neXAvV2ViQ29yZS5neXAJKHdvcmtpbmcgY29weSkK
QEAgLTEwNjQsNiArMTA2NCw5IEBACiAgICAgICAgICAgICAnLi4vcGxhdGZvcm0vaW1hZ2UtZGVj
b2RlcnMvc2tpYS9JbWFnZURlY29kZXJTa2lhLmNwcCcsCiAgICAgICAgICAgICAnLi4vcGxhdGZv
cm0vaW1hZ2UtZGVjb2RlcnMveGJtL1hCTUltYWdlRGVjb2Rlci5jcHAnLAogICAgICAgICAgICAg
Jy4uL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL3hibS9YQk1JbWFnZURlY29kZXIuaCcsCisKKyAg
ICAgICAgICAgICMgQWdhaW4sIFNraWEgaXMgbm90IHVzZWQgb24gTWFjLgorICAgICAgICAgICAg
Jy4uL3BsYXRmb3JtL2Nocm9taXVtL0RyYWdJbWFnZUNocm9taXVtU2tpYS5jcHAnLAogICAgICAg
ICAgIF0sCiAgICAgICAgICAgJ2RpcmVjdF9kZXBlbmRlbnRfc2V0dGluZ3MnOiB7CiAgICAgICAg
ICAgICAnaW5jbHVkZV9kaXJzJzogWwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9E
cmFnSW1hZ2VDaHJvbWl1bS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9jaHJv
bWl1bS9EcmFnSW1hZ2VDaHJvbWl1bS5jcHAJKHJldmlzaW9uIDU2OTM0KQorKysgV2ViQ29yZS9w
bGF0Zm9ybS9jaHJvbWl1bS9EcmFnSW1hZ2VDaHJvbWl1bS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTEsNzMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoYykgMjAwOCwgMjAwOSwgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIAotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMg
YXJlCi0gKiBtZXQ6Ci0gKiAKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBj
b3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVy
IHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmli
dXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQg
ZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVy
bWlzc2lvbi4KLSAqIAotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQot
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiRHJh
Z0ltYWdlLmgiCi0KLSNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgotCi1uYW1lc3BhY2UgV2Vi
Q29yZSB7Ci0KLUludFNpemUgZHJhZ0ltYWdlU2l6ZShEcmFnSW1hZ2VSZWYgaW1hZ2UpCi17Ci0g
ICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gSW50U2l6ZSgpOwotfQotCi12b2lkIGRl
bGV0ZURyYWdJbWFnZShEcmFnSW1hZ2VSZWYgaW1hZ2UpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQo
KTsKLX0KLQotRHJhZ0ltYWdlUmVmIHNjYWxlRHJhZ0ltYWdlKERyYWdJbWFnZVJlZiBpbWFnZSwg
RmxvYXRTaXplIHNjYWxlKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIDA7
Ci19Ci0gICAgCi1EcmFnSW1hZ2VSZWYgZGlzc29sdmVEcmFnSW1hZ2VUb0ZyYWN0aW9uKERyYWdJ
bWFnZVJlZiBpbWFnZSwgZmxvYXQpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1
cm4gaW1hZ2U7Ci19Ci0gICAgICAgIAotRHJhZ0ltYWdlUmVmIGNyZWF0ZURyYWdJbWFnZUZyb21J
bWFnZShJbWFnZSogaW1nKQoteyAgICAKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVy
biAwOwotfQotICAgIAotRHJhZ0ltYWdlUmVmIGNyZWF0ZURyYWdJbWFnZUljb25Gb3JDYWNoZWRJ
bWFnZShDYWNoZWRJbWFnZSopCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4g
MDsgICAgIAotfQotICAgIAotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2ViQ29yZS9w
bGF0Zm9ybS9jaHJvbWl1bS9EcmFnSW1hZ2VSZWYuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3Bs
YXRmb3JtL2Nocm9taXVtL0RyYWdJbWFnZVJlZi5oCShyZXZpc2lvbiA1NjkzNCkKKysrIFdlYkNv
cmUvcGxhdGZvcm0vY2hyb21pdW0vRHJhZ0ltYWdlUmVmLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5
LDExICsyOSwxNiBAQAogI2lmbmRlZiBEcmFnSW1hZ2VSZWZfaAogI2RlZmluZSBEcmFnSW1hZ2VS
ZWZfaAogCitjbGFzcyBTa0JpdG1hcDsKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0gICAgLy8g
RklYTUU6IE5lZWQgdG8gc3VwcG9ydCBpbWFnZSBkcmFnLW4tZHJvcC4gIEZvciBub3csIHdlIGp1
c3QgYWxsb3cgdGhpbmdzCi0gICAgLy8gdG8gY29tcGlsZSBieSBkZWZpbmluZyB0aGlzIGR1bW15
IHR5cGUuCi0gICAgdHlwZWRlZiB2b2lkKiBEcmFnSW1hZ2VSZWY7CisjaWYgT1MoREFSV0lOKQor
Ly8gRklYTUU6IG5vdCBpbXBsZW1lbnRlZC4KK3R5cGVkZWYgdm9pZCogRHJhZ0ltYWdlUmVmOwor
I2Vsc2UKK3R5cGVkZWYgU2tCaXRtYXAqIERyYWdJbWFnZVJlZjsKKyNlbmRpZgogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCiAKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gNTY5MzQpCisrKyBX
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjAgQEAK
KysgMjAxMC0wMy0xNiAgRXZhbiBTdGFkZSAgPGVzdGFkZUBjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW2Nocm9taXVtXSBuZWVk
IERyYWdJbWFnZSBpbXBsZW1lbnRhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MzU4MTEKKworICAgICAgICBVc2UgdGhlIERyYWdJbWFnZVJlZiB0
aGF0IHRoZSBEcmFnQ29udHJvbGxlciBwYXNzZXMgdG8gdXMuCisKKyAgICAgICAgKiBwdWJsaWMv
V2ViVmlld0NsaWVudC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3Q2xpZW50OjpzdGFydERy
YWdnaW5nKToKKyAgICAgICAgKiBzcmMvRHJhZ0NsaWVudEltcGwuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpEcmFnQ2xpZW50SW1wbDo6c3RhcnREcmFnKToKKyAgICAgICAgKiBzcmMvV2ViVmlld0lt
cGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c3RhcnREcmFnZ2luZyk6Cisg
ICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmg6CisKIDIwMTAtMDQtMDEgIEZpbm51ciBUaG9yYXJp
bnNzb24gIDxmaW5udXIud2Via2l0QGdtYWlsLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBE
aW1pdHJpIEdsYXprb3YuCkluZGV4OiBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXdDbGll
bnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXdDbGllbnQu
aAkocmV2aXNpb24gNTY5MzQpCisrKyBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXdDbGll
bnQuaAkod29ya2luZyBjb3B5KQpAQCAtNDcsNiArNDcsNyBAQCBjbGFzcyBXZWJEcmFnRGF0YTsK
IGNsYXNzIFdlYkZpbGVDaG9vc2VyQ29tcGxldGlvbjsKIGNsYXNzIFdlYkZyYW1lOwogY2xhc3Mg
V2ViR2VvbG9jYXRpb25TZXJ2aWNlOworY2xhc3MgV2ViSW1hZ2U7CiBjbGFzcyBXZWJOb2RlOwog
Y2xhc3MgV2ViTm90aWZpY2F0aW9uUHJlc2VudGVyOwogY2xhc3MgV2ViUmFuZ2U7CkBAIC0yMjIs
NyArMjIzLDcgQEAgcHVibGljOgogCiAgICAgLy8gQ2FsbGVkIHdoZW4gYSBkcmFnLW4tZHJvcCBv
cGVyYXRpb24gc2hvdWxkIGJlZ2luLgogICAgIHZpcnR1YWwgdm9pZCBzdGFydERyYWdnaW5nKAot
ICAgICAgICBjb25zdCBXZWJQb2ludCYgZnJvbSwgY29uc3QgV2ViRHJhZ0RhdGEmLCBXZWJEcmFn
T3BlcmF0aW9uc01hc2spIHsgfQorICAgICAgICBjb25zdCBXZWJEcmFnRGF0YSYsIFdlYkRyYWdP
cGVyYXRpb25zTWFzaywgY29uc3QgV2ViSW1hZ2UmLCBjb25zdCBXZWJQb2ludCYpIHsgfQogCiAg
ICAgLy8gQ2FsbGVkIHRvIGRldGVybWluZSBpZiBkcmFnLW4tZHJvcCBvcGVyYXRpb25zIG1heSBp
bml0aWF0ZSBhIHBhZ2UKICAgICAvLyBuYXZpZ2F0aW9uLgpJbmRleDogV2ViS2l0L2Nocm9taXVt
L3NyYy9EcmFnQ2xpZW50SW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3Ny
Yy9EcmFnQ2xpZW50SW1wbC5jcHAJKHJldmlzaW9uIDU2OTM0KQorKysgV2ViS2l0L2Nocm9taXVt
L3NyYy9EcmFnQ2xpZW50SW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDExICszMCwxNCBA
QAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiRHJhZ0NsaWVudEltcGwuaCIKLQor
I2luY2x1ZGUgIkRyYWdJbWFnZVJlZi5oIgogI2luY2x1ZGUgIkNocm9taXVtRGF0YU9iamVjdC5o
IgogI2luY2x1ZGUgIkNsaXBib2FyZENocm9taXVtLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKKyNp
bmNsdWRlICJOYXRpdmVJbWFnZVNraWEuaCIKKyNpbmNsdWRlICJXZWJDb21tb24uaCIKICNpbmNs
dWRlICJXZWJEcmFnRGF0YS5oIgorI2luY2x1ZGUgIldlYkltYWdlLmgiCiAjaW5jbHVkZSAiV2Vi
Vmlld0NsaWVudC5oIgogI2luY2x1ZGUgIldlYlZpZXdJbXBsLmgiCiAKQEAgLTgxLDggKzg0LDE5
IEBAIHZvaWQgRHJhZ0NsaWVudEltcGw6OnN0YXJ0RHJhZyhEcmFnSW1hZ2UKIAogICAgIERyYWdP
cGVyYXRpb24gZHJhZ09wZXJhdGlvbk1hc2sgPSBjbGlwYm9hcmQtPnNvdXJjZU9wZXJhdGlvbigp
OwogCisgICAgSW50U2l6ZSBvZmZzZXRTaXplKGV2ZW50UG9zIC0gZHJhZ0ltYWdlT3JpZ2luKTsK
KyAgICBXZWJQb2ludCBvZmZzZXRQb2ludChvZmZzZXRTaXplLndpZHRoKCksIG9mZnNldFNpemUu
aGVpZ2h0KCkpOworI2lmIFdFQktJVF9VU0lOR19TS0lBCisgICAgbV93ZWJWaWV3LT5zdGFydERy
YWdnaW5nKAorICAgICAgICBkcmFnRGF0YSwgc3RhdGljX2Nhc3Q8V2ViRHJhZ09wZXJhdGlvbnNN
YXNrPihkcmFnT3BlcmF0aW9uTWFzayksCisgICAgICAgIFdlYkltYWdlKCpkcmFnSW1hZ2UpLCBv
ZmZzZXRQb2ludCk7CisjZWxzZQorICAgIC8vIEZJWE1FOiBXaGVuIERyYWdJbWFnZVJlZiBpcyBp
bXBsZW1lbnRlZCBmb3IgQ0csIHdlIGNhbiBwcm9iYWJseSBqdXN0IHJlbW92ZQorICAgIC8vIHRo
aXMgI2lmIGZvcmsuIEZvciBub3csIHBhc3MgYW4gZW1wdHkgaW1hZ2UuCiAgICAgbV93ZWJWaWV3
LT5zdGFydERyYWdnaW5nKAotICAgICAgICBldmVudFBvcywgZHJhZ0RhdGEsIHN0YXRpY19jYXN0
PFdlYkRyYWdPcGVyYXRpb25zTWFzaz4oZHJhZ09wZXJhdGlvbk1hc2spKTsKKyAgICAgICAgZHJh
Z0RhdGEsIHN0YXRpY19jYXN0PFdlYkRyYWdPcGVyYXRpb25zTWFzaz4oZHJhZ09wZXJhdGlvbk1h
c2spLAorICAgICAgICBXZWJJbWFnZSgpLCBXZWJQb2ludCgpKTsKKyNlbmRpZgogfQogCiBEcmFn
SW1hZ2VSZWYgRHJhZ0NsaWVudEltcGw6OmNyZWF0ZURyYWdJbWFnZUZvckxpbmsoS1VSTCYsIGNv
bnN0IFN0cmluZyYgbGFiZWwsIEZyYW1lKikKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
Vmlld0ltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0lt
cGwuY3BwCShyZXZpc2lvbiA1NjkzNCkKKysrIFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0lt
cGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04Nyw2ICs4Nyw3IEBACiAjaW5jbHVkZSAiV2ViRGV2
VG9vbHNBZ2VudFByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJEcmFnRGF0YS5oIgogI2luY2x1ZGUg
IldlYkZyYW1lSW1wbC5oIgorI2luY2x1ZGUgIldlYkltYWdlLmgiCiAjaW5jbHVkZSAiV2ViSW5w
dXRFdmVudC5oIgogI2luY2x1ZGUgIldlYklucHV0RXZlbnRDb252ZXJzaW9uLmgiCiAjaW5jbHVk
ZSAiV2ViTWVkaWFQbGF5ZXJBY3Rpb24uaCIKQEAgLTE5MzIsMTUgKzE5MzMsMTYgQEAgYm9vbCBX
ZWJWaWV3SW1wbDo6bmF2aWdhdGlvblBvbGljeUZyb21NbwogICAgIHJldHVybiB0cnVlOwogfQog
Ci12b2lkIFdlYlZpZXdJbXBsOjpzdGFydERyYWdnaW5nKGNvbnN0IFdlYlBvaW50JiBldmVudFBv
cywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgV2ViRHJhZ0RhdGEmIGRy
YWdEYXRhLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJEcmFnT3BlcmF0aW9u
c01hc2sgbWFzaykKK3ZvaWQgV2ViVmlld0ltcGw6OnN0YXJ0RHJhZ2dpbmcoY29uc3QgV2ViRHJh
Z0RhdGEmIGRyYWdEYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJEcmFn
T3BlcmF0aW9uc01hc2sgbWFzaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u
c3QgV2ViSW1hZ2UmIGRyYWdJbWFnZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29uc3QgV2ViUG9pbnQmIGRyYWdJbWFnZU9mZnNldCkKIHsKICAgICBpZiAoIW1fY2xpZW50KQog
ICAgICAgICByZXR1cm47CiAgICAgQVNTRVJUKCFtX2RvaW5nRHJhZ0FuZERyb3ApOwogICAgIG1f
ZG9pbmdEcmFnQW5kRHJvcCA9IHRydWU7Ci0gICAgbV9jbGllbnQtPnN0YXJ0RHJhZ2dpbmcoZXZl
bnRQb3MsIGRyYWdEYXRhLCBtYXNrKTsKKyAgICBtX2NsaWVudC0+c3RhcnREcmFnZ2luZyhkcmFn
RGF0YSwgbWFzaywgZHJhZ0ltYWdlLCBkcmFnSW1hZ2VPZmZzZXQpOwogfQogCiB2b2lkIFdlYlZp
ZXdJbXBsOjpzZXRDdXJyZW50SGlzdG9yeUl0ZW0oSGlzdG9yeUl0ZW0qIGl0ZW0pCkluZGV4OiBX
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCShyZXZpc2lvbiA1NjkzNCkKKysrIFdlYktpdC9jaHJv
bWl1bS9zcmMvV2ViVmlld0ltcGwuaAkod29ya2luZyBjb3B5KQpAQCAtNzQsNiArNzQsNyBAQCBj
bGFzcyBTdWdnZXN0aW9uc1BvcHVwTWVudUNsaWVudDsKIGNsYXNzIFdlYkFjY2Vzc2liaWxpdHlP
YmplY3Q7CiBjbGFzcyBXZWJEZXZUb29sc0FnZW50UHJpdmF0ZTsKIGNsYXNzIFdlYkZyYW1lSW1w
bDsKK2NsYXNzIFdlYkltYWdlOwogY2xhc3MgV2ViS2V5Ym9hcmRFdmVudDsKIGNsYXNzIFdlYk1v
dXNlRXZlbnQ7CiBjbGFzcyBXZWJNb3VzZVdoZWVsRXZlbnQ7CkBAIC0yNzQsOSArMjc1LDEwIEBA
IHB1YmxpYzoKIAogICAgIC8vIFN0YXJ0IGEgc3lzdGVtIGRyYWcgYW5kIGRyb3Agb3BlcmF0aW9u
LgogICAgIHZvaWQgc3RhcnREcmFnZ2luZygKLSAgICAgICAgY29uc3QgV2ViUG9pbnQmIGV2ZW50
UG9zLAogICAgICAgICBjb25zdCBXZWJEcmFnRGF0YSYgZHJhZ0RhdGEsCi0gICAgICAgIFdlYkRy
YWdPcGVyYXRpb25zTWFzayBkcmFnU291cmNlT3BlcmF0aW9uTWFzayk7CisgICAgICAgIFdlYkRy
YWdPcGVyYXRpb25zTWFzayBtYXNrLAorICAgICAgICBjb25zdCBXZWJJbWFnZSYgZHJhZ0ltYWdl
LAorICAgICAgICBjb25zdCBXZWJQb2ludCYgZHJhZ0ltYWdlT2Zmc2V0KTsKIAogICAgIHZvaWQg
c3VnZ2VzdGlvbnNQb3B1cERpZEhpZGUoKQogICAgIHsK
</data>
<flag name="review"
          id="35791"
          type_id="1"
          status="+"
          setter="eric"
    />
    <flag name="commit-queue"
          id="35792"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>52426</attachid>
            <date>2010-04-02 11:07:08 -0700</date>
            <delta_ts>2010-04-02 13:23:00 -0700</delta_ts>
            <desc>plus--</desc>
            <filename>sync.diff</filename>
            <type>text/plain</type>
            <size>10634</size>
            <attacher name="Evan Stade">estade</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NjkzNCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTggQEAKKzIwMTAtMDQtMDEgIEV2YW4gU3RhZGUgIDxlc3RhZGVAY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtj
aHJvbWl1bV0gbmVlZCBEcmFnSW1hZ2UgaW1wbGVtZW50YXRpb24KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM1ODExCisKKyAgICAgICAgQmFzaWMgaW1w
bGVtZW50YXRpb24gdXNpbmcgU2tCaXRtYXAuIFRyYW5zZm9ybWF0aW9ucyBhcmUgbm90IHN1cHBv
cnRlZAorICAgICAgICB5ZXQuIE5vIGltcGxlbWVudGF0aW9uIGZvciBtYWMuCisKKyAgICAgICAg
KiBXZWJDb3JlLmd5cC9XZWJDb3JlLmd5cDoKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAg
ICAgICogcGxhdGZvcm0vY2hyb21pdW0vRHJhZ0ltYWdlQ2hyb21pdW0uY3BwOgorICAgICAgICAq
IHBsYXRmb3JtL2Nocm9taXVtL0RyYWdJbWFnZVJlZi5oOgorCiAyMDEwLTA0LTAxICBHZW9mZnJl
eSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2FtIFdl
aW5pZy4KSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5neXBpCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
V2ViQ29yZS5neXBpCShyZXZpc2lvbiA1NjkzNCkKKysrIFdlYkNvcmUvV2ViQ29yZS5neXBpCSh3
b3JraW5nIGNvcHkpCkBAIC0xOTUxLDcgKzE5NTEsOCBAQAogICAgICAgICAgICAgJ3BsYXRmb3Jt
L2Nocm9taXVtL0N1cnNvckNocm9taXVtLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vY2hy
b21pdW0vRHJhZ0RhdGFDaHJvbWl1bS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9t
aXVtL0RyYWdEYXRhUmVmLmgnLAotICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL0RyYWdJ
bWFnZUNocm9taXVtLmNwcCcsCisgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vRHJhZ0lt
YWdlQ2hyb21pdW1NYWMuY3BwJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9EcmFn
SW1hZ2VDaHJvbWl1bVNraWEuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9E
cmFnSW1hZ2VSZWYuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vRmlsZUNob29z
ZXJDaHJvbWl1bS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL0ZpbGVTeXN0
ZW1DaHJvbWl1bS5jcHAnLApJbmRleDogV2ViQ29yZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5cAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwCShyZXZpc2lvbiA1
NjkzNCkKKysrIFdlYkNvcmUvV2ViQ29yZS5neXAvV2ViQ29yZS5neXAJKHdvcmtpbmcgY29weSkK
QEAgLTEwNjQsNiArMTA2NCw5IEBACiAgICAgICAgICAgICAnLi4vcGxhdGZvcm0vaW1hZ2UtZGVj
b2RlcnMvc2tpYS9JbWFnZURlY29kZXJTa2lhLmNwcCcsCiAgICAgICAgICAgICAnLi4vcGxhdGZv
cm0vaW1hZ2UtZGVjb2RlcnMveGJtL1hCTUltYWdlRGVjb2Rlci5jcHAnLAogICAgICAgICAgICAg
Jy4uL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL3hibS9YQk1JbWFnZURlY29kZXIuaCcsCisKKyAg
ICAgICAgICAgICMgQWdhaW4sIFNraWEgaXMgbm90IHVzZWQgb24gTWFjLgorICAgICAgICAgICAg
Jy4uL3BsYXRmb3JtL2Nocm9taXVtL0RyYWdJbWFnZUNocm9taXVtU2tpYS5jcHAnLAogICAgICAg
ICAgIF0sCiAgICAgICAgICAgJ2RpcmVjdF9kZXBlbmRlbnRfc2V0dGluZ3MnOiB7CiAgICAgICAg
ICAgICAnaW5jbHVkZV9kaXJzJzogWwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9E
cmFnSW1hZ2VDaHJvbWl1bS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9jaHJv
bWl1bS9EcmFnSW1hZ2VDaHJvbWl1bS5jcHAJKHJldmlzaW9uIDU2OTM0KQorKysgV2ViQ29yZS9w
bGF0Zm9ybS9jaHJvbWl1bS9EcmFnSW1hZ2VDaHJvbWl1bS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTEsNzMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoYykgMjAwOCwgMjAwOSwgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIAotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMg
YXJlCi0gKiBtZXQ6Ci0gKiAKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBj
b3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVy
IHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmli
dXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQg
ZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVy
bWlzc2lvbi4KLSAqIAotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQot
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiRHJh
Z0ltYWdlLmgiCi0KLSNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgotCi1uYW1lc3BhY2UgV2Vi
Q29yZSB7Ci0KLUludFNpemUgZHJhZ0ltYWdlU2l6ZShEcmFnSW1hZ2VSZWYgaW1hZ2UpCi17Ci0g
ICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gSW50U2l6ZSgpOwotfQotCi12b2lkIGRl
bGV0ZURyYWdJbWFnZShEcmFnSW1hZ2VSZWYgaW1hZ2UpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQo
KTsKLX0KLQotRHJhZ0ltYWdlUmVmIHNjYWxlRHJhZ0ltYWdlKERyYWdJbWFnZVJlZiBpbWFnZSwg
RmxvYXRTaXplIHNjYWxlKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIDA7
Ci19Ci0gICAgCi1EcmFnSW1hZ2VSZWYgZGlzc29sdmVEcmFnSW1hZ2VUb0ZyYWN0aW9uKERyYWdJ
bWFnZVJlZiBpbWFnZSwgZmxvYXQpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1
cm4gaW1hZ2U7Ci19Ci0gICAgICAgIAotRHJhZ0ltYWdlUmVmIGNyZWF0ZURyYWdJbWFnZUZyb21J
bWFnZShJbWFnZSogaW1nKQoteyAgICAKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVy
biAwOwotfQotICAgIAotRHJhZ0ltYWdlUmVmIGNyZWF0ZURyYWdJbWFnZUljb25Gb3JDYWNoZWRJ
bWFnZShDYWNoZWRJbWFnZSopCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4g
MDsgICAgIAotfQotICAgIAotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2ViQ29yZS9w
bGF0Zm9ybS9jaHJvbWl1bS9EcmFnSW1hZ2VSZWYuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3Bs
YXRmb3JtL2Nocm9taXVtL0RyYWdJbWFnZVJlZi5oCShyZXZpc2lvbiA1NjkzNCkKKysrIFdlYkNv
cmUvcGxhdGZvcm0vY2hyb21pdW0vRHJhZ0ltYWdlUmVmLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5
LDExICsyOSwxNiBAQAogI2lmbmRlZiBEcmFnSW1hZ2VSZWZfaAogI2RlZmluZSBEcmFnSW1hZ2VS
ZWZfaAogCitjbGFzcyBTa0JpdG1hcDsKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0gICAgLy8g
RklYTUU6IE5lZWQgdG8gc3VwcG9ydCBpbWFnZSBkcmFnLW4tZHJvcC4gIEZvciBub3csIHdlIGp1
c3QgYWxsb3cgdGhpbmdzCi0gICAgLy8gdG8gY29tcGlsZSBieSBkZWZpbmluZyB0aGlzIGR1bW15
IHR5cGUuCi0gICAgdHlwZWRlZiB2b2lkKiBEcmFnSW1hZ2VSZWY7CisjaWYgT1MoREFSV0lOKQor
Ly8gRklYTUU6IG5vdCBpbXBsZW1lbnRlZC4KK3R5cGVkZWYgdm9pZCogRHJhZ0ltYWdlUmVmOwor
I2Vsc2UKK3R5cGVkZWYgU2tCaXRtYXAqIERyYWdJbWFnZVJlZjsKKyNlbmRpZgogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCiAKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gNTY5MzQpCisrKyBX
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjAgQEAK
KyAyMDEwLTAzLTE2ICBFdmFuIFN0YWRlICA8ZXN0YWRlQGNocm9taXVtLm9yZz4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbY2hyb21pdW1dIG5lZWQg
RHJhZ0ltYWdlIGltcGxlbWVudGF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0zNTgxMQorCisgICAgICAgIFVzZSB0aGUgRHJhZ0ltYWdlUmVmIHRo
YXQgdGhlIERyYWdDb250cm9sbGVyIHBhc3NlcyB0byB1cy4KKworICAgICAgICAqIHB1YmxpYy9X
ZWJWaWV3Q2xpZW50Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdDbGllbnQ6OnN0YXJ0RHJh
Z2dpbmcpOgorICAgICAgICAqIHNyYy9EcmFnQ2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJL
aXQ6OkRyYWdDbGllbnRJbXBsOjpzdGFydERyYWcpOgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1w
bC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzdGFydERyYWdnaW5nKToKKyAg
ICAgICAgKiBzcmMvV2ViVmlld0ltcGwuaDoKKwogMjAxMC0wNC0wMSAgRmlubnVyIFRob3Jhcmlu
c3NvbiAgPGZpbm51ci53ZWJraXRAZ21haWwuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERp
bWl0cmkgR2xhemtvdi4KSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlld0NsaWVu
dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlld0NsaWVudC5o
CShyZXZpc2lvbiA1NjkzNCkKKysrIFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlld0NsaWVu
dC5oCSh3b3JraW5nIGNvcHkpCkBAIC00Nyw2ICs0Nyw3IEBAIGNsYXNzIFdlYkRyYWdEYXRhOwog
Y2xhc3MgV2ViRmlsZUNob29zZXJDb21wbGV0aW9uOwogY2xhc3MgV2ViRnJhbWU7CiBjbGFzcyBX
ZWJHZW9sb2NhdGlvblNlcnZpY2U7CitjbGFzcyBXZWJJbWFnZTsKIGNsYXNzIFdlYk5vZGU7CiBj
bGFzcyBXZWJOb3RpZmljYXRpb25QcmVzZW50ZXI7CiBjbGFzcyBXZWJSYW5nZTsKQEAgLTIyMiw3
ICsyMjMsNyBAQCBwdWJsaWM6CiAKICAgICAvLyBDYWxsZWQgd2hlbiBhIGRyYWctbi1kcm9wIG9w
ZXJhdGlvbiBzaG91bGQgYmVnaW4uCiAgICAgdmlydHVhbCB2b2lkIHN0YXJ0RHJhZ2dpbmcoCi0g
ICAgICAgIGNvbnN0IFdlYlBvaW50JiBmcm9tLCBjb25zdCBXZWJEcmFnRGF0YSYsIFdlYkRyYWdP
cGVyYXRpb25zTWFzaykgeyB9CisgICAgICAgIGNvbnN0IFdlYkRyYWdEYXRhJiwgV2ViRHJhZ09w
ZXJhdGlvbnNNYXNrLCBjb25zdCBXZWJJbWFnZSYsIGNvbnN0IFdlYlBvaW50JikgeyB9CiAKICAg
ICAvLyBDYWxsZWQgdG8gZGV0ZXJtaW5lIGlmIGRyYWctbi1kcm9wIG9wZXJhdGlvbnMgbWF5IGlu
aXRpYXRlIGEgcGFnZQogICAgIC8vIG5hdmlnYXRpb24uCkluZGV4OiBXZWJLaXQvY2hyb21pdW0v
c3JjL0RyYWdDbGllbnRJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vc3Jj
L0RyYWdDbGllbnRJbXBsLmNwcAkocmV2aXNpb24gNTY5MzQpCisrKyBXZWJLaXQvY2hyb21pdW0v
c3JjL0RyYWdDbGllbnRJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsMTEgKzMwLDE0IEBA
CiAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJEcmFnQ2xpZW50SW1wbC5oIgotCisj
aW5jbHVkZSAiRHJhZ0ltYWdlUmVmLmgiCiAjaW5jbHVkZSAiQ2hyb21pdW1EYXRhT2JqZWN0Lmgi
CiAjaW5jbHVkZSAiQ2xpcGJvYXJkQ2hyb21pdW0uaCIKICNpbmNsdWRlICJGcmFtZS5oIgorI2lu
Y2x1ZGUgIk5hdGl2ZUltYWdlU2tpYS5oIgorI2luY2x1ZGUgIldlYkNvbW1vbi5oIgogI2luY2x1
ZGUgIldlYkRyYWdEYXRhLmgiCisjaW5jbHVkZSAiV2ViSW1hZ2UuaCIKICNpbmNsdWRlICJXZWJW
aWV3Q2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViVmlld0ltcGwuaCIKIApAQCAtODEsOCArODQsMTkg
QEAgdm9pZCBEcmFnQ2xpZW50SW1wbDo6c3RhcnREcmFnKERyYWdJbWFnZQogCiAgICAgRHJhZ09w
ZXJhdGlvbiBkcmFnT3BlcmF0aW9uTWFzayA9IGNsaXBib2FyZC0+c291cmNlT3BlcmF0aW9uKCk7
CiAKKyAgICBJbnRTaXplIG9mZnNldFNpemUoZXZlbnRQb3MgLSBkcmFnSW1hZ2VPcmlnaW4pOwor
ICAgIFdlYlBvaW50IG9mZnNldFBvaW50KG9mZnNldFNpemUud2lkdGgoKSwgb2Zmc2V0U2l6ZS5o
ZWlnaHQoKSk7CisjaWYgV0VCS0lUX1VTSU5HX1NLSUEKKyAgICBtX3dlYlZpZXctPnN0YXJ0RHJh
Z2dpbmcoCisgICAgICAgIGRyYWdEYXRhLCBzdGF0aWNfY2FzdDxXZWJEcmFnT3BlcmF0aW9uc01h
c2s+KGRyYWdPcGVyYXRpb25NYXNrKSwKKyAgICAgICAgV2ViSW1hZ2UoKmRyYWdJbWFnZSksIG9m
ZnNldFBvaW50KTsKKyNlbHNlCisgICAgLy8gRklYTUU6IFdoZW4gRHJhZ0ltYWdlUmVmIGlzIGlt
cGxlbWVudGVkIGZvciBDRywgd2UgY2FuIHByb2JhYmx5IGp1c3QgcmVtb3ZlCisgICAgLy8gdGhp
cyAjaWYgZm9yay4gRm9yIG5vdywgcGFzcyBhbiBlbXB0eSBpbWFnZS4KICAgICBtX3dlYlZpZXct
PnN0YXJ0RHJhZ2dpbmcoCi0gICAgICAgIGV2ZW50UG9zLCBkcmFnRGF0YSwgc3RhdGljX2Nhc3Q8
V2ViRHJhZ09wZXJhdGlvbnNNYXNrPihkcmFnT3BlcmF0aW9uTWFzaykpOworICAgICAgICBkcmFn
RGF0YSwgc3RhdGljX2Nhc3Q8V2ViRHJhZ09wZXJhdGlvbnNNYXNrPihkcmFnT3BlcmF0aW9uTWFz
ayksCisgICAgICAgIFdlYkltYWdlKCksIFdlYlBvaW50KCkpOworI2VuZGlmCiB9CiAKIERyYWdJ
bWFnZVJlZiBEcmFnQ2xpZW50SW1wbDo6Y3JlYXRlRHJhZ0ltYWdlRm9yTGluayhLVVJMJiwgY29u
c3QgU3RyaW5nJiBsYWJlbCwgRnJhbWUqKQpJbmRleDogV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJW
aWV3SW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1w
bC5jcHAJKHJldmlzaW9uIDU2OTM0KQorKysgV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1w
bC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg3LDYgKzg3LDcgQEAKICNpbmNsdWRlICJXZWJEZXZU
b29sc0FnZW50UHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYkRyYWdEYXRhLmgiCiAjaW5jbHVkZSAi
V2ViRnJhbWVJbXBsLmgiCisjaW5jbHVkZSAiV2ViSW1hZ2UuaCIKICNpbmNsdWRlICJXZWJJbnB1
dEV2ZW50LmgiCiAjaW5jbHVkZSAiV2ViSW5wdXRFdmVudENvbnZlcnNpb24uaCIKICNpbmNsdWRl
ICJXZWJNZWRpYVBsYXllckFjdGlvbi5oIgpAQCAtMTkzMiwxNSArMTkzMywxNiBAQCBib29sIFdl
YlZpZXdJbXBsOjpuYXZpZ2F0aW9uUG9saWN5RnJvbU1vCiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
LXZvaWQgV2ViVmlld0ltcGw6OnN0YXJ0RHJhZ2dpbmcoY29uc3QgV2ViUG9pbnQmIGV2ZW50UG9z
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBXZWJEcmFnRGF0YSYgZHJh
Z0RhdGEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYkRyYWdPcGVyYXRpb25z
TWFzayBtYXNrKQordm9pZCBXZWJWaWV3SW1wbDo6c3RhcnREcmFnZ2luZyhjb25zdCBXZWJEcmFn
RGF0YSYgZHJhZ0RhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYkRyYWdP
cGVyYXRpb25zTWFzayBtYXNrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z
dCBXZWJJbWFnZSYgZHJhZ0ltYWdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
b25zdCBXZWJQb2ludCYgZHJhZ0ltYWdlT2Zmc2V0KQogewogICAgIGlmICghbV9jbGllbnQpCiAg
ICAgICAgIHJldHVybjsKICAgICBBU1NFUlQoIW1fZG9pbmdEcmFnQW5kRHJvcCk7CiAgICAgbV9k
b2luZ0RyYWdBbmREcm9wID0gdHJ1ZTsKLSAgICBtX2NsaWVudC0+c3RhcnREcmFnZ2luZyhldmVu
dFBvcywgZHJhZ0RhdGEsIG1hc2spOworICAgIG1fY2xpZW50LT5zdGFydERyYWdnaW5nKGRyYWdE
YXRhLCBtYXNrLCBkcmFnSW1hZ2UsIGRyYWdJbWFnZU9mZnNldCk7CiB9CiAKIHZvaWQgV2ViVmll
d0ltcGw6OnNldEN1cnJlbnRIaXN0b3J5SXRlbShIaXN0b3J5SXRlbSogaXRlbSkKSW5kZXg6IFdl
YktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hy
b21pdW0vc3JjL1dlYlZpZXdJbXBsLmgJKHJldmlzaW9uIDU2OTM0KQorKysgV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJWaWV3SW1wbC5oCSh3b3JraW5nIGNvcHkpCkBAIC03NCw2ICs3NCw3IEBAIGNs
YXNzIFN1Z2dlc3Rpb25zUG9wdXBNZW51Q2xpZW50OwogY2xhc3MgV2ViQWNjZXNzaWJpbGl0eU9i
amVjdDsKIGNsYXNzIFdlYkRldlRvb2xzQWdlbnRQcml2YXRlOwogY2xhc3MgV2ViRnJhbWVJbXBs
OworY2xhc3MgV2ViSW1hZ2U7CiBjbGFzcyBXZWJLZXlib2FyZEV2ZW50OwogY2xhc3MgV2ViTW91
c2VFdmVudDsKIGNsYXNzIFdlYk1vdXNlV2hlZWxFdmVudDsKQEAgLTI3NCw5ICsyNzUsMTAgQEAg
cHVibGljOgogCiAgICAgLy8gU3RhcnQgYSBzeXN0ZW0gZHJhZyBhbmQgZHJvcCBvcGVyYXRpb24u
CiAgICAgdm9pZCBzdGFydERyYWdnaW5nKAotICAgICAgICBjb25zdCBXZWJQb2ludCYgZXZlbnRQ
b3MsCiAgICAgICAgIGNvbnN0IFdlYkRyYWdEYXRhJiBkcmFnRGF0YSwKLSAgICAgICAgV2ViRHJh
Z09wZXJhdGlvbnNNYXNrIGRyYWdTb3VyY2VPcGVyYXRpb25NYXNrKTsKKyAgICAgICAgV2ViRHJh
Z09wZXJhdGlvbnNNYXNrIG1hc2ssCisgICAgICAgIGNvbnN0IFdlYkltYWdlJiBkcmFnSW1hZ2Us
CisgICAgICAgIGNvbnN0IFdlYlBvaW50JiBkcmFnSW1hZ2VPZmZzZXQpOwogCiAgICAgdm9pZCBz
dWdnZXN0aW9uc1BvcHVwRGlkSGlkZSgpCiAgICAgewo=
</data>
<flag name="review"
          id="35905"
          type_id="1"
          status="+"
          setter="eric"
    />
    <flag name="commit-queue"
          id="35906"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>52445</attachid>
            <date>2010-04-02 13:23:00 -0700</date>
            <delta_ts>2010-04-05 14:25:46 -0700</delta_ts>
            <desc>space--</desc>
            <filename>sync.diff</filename>
            <type>text/plain</type>
            <size>10633</size>
            <attacher name="Evan Stade">estade</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NjkzNCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTggQEAKKzIwMTAtMDQtMDEgIEV2YW4gU3RhZGUgIDxlc3RhZGVAY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtj
aHJvbWl1bV0gbmVlZCBEcmFnSW1hZ2UgaW1wbGVtZW50YXRpb24KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM1ODExCisKKyAgICAgICAgQmFzaWMgaW1w
bGVtZW50YXRpb24gdXNpbmcgU2tCaXRtYXAuIFRyYW5zZm9ybWF0aW9ucyBhcmUgbm90IHN1cHBv
cnRlZAorICAgICAgICB5ZXQuIE5vIGltcGxlbWVudGF0aW9uIGZvciBtYWMuCisKKyAgICAgICAg
KiBXZWJDb3JlLmd5cC9XZWJDb3JlLmd5cDoKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAg
ICAgICogcGxhdGZvcm0vY2hyb21pdW0vRHJhZ0ltYWdlQ2hyb21pdW0uY3BwOgorICAgICAgICAq
IHBsYXRmb3JtL2Nocm9taXVtL0RyYWdJbWFnZVJlZi5oOgorCiAyMDEwLTA0LTAxICBHZW9mZnJl
eSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2FtIFdl
aW5pZy4KSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5neXBpCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
V2ViQ29yZS5neXBpCShyZXZpc2lvbiA1NjkzNCkKKysrIFdlYkNvcmUvV2ViQ29yZS5neXBpCSh3
b3JraW5nIGNvcHkpCkBAIC0xOTUxLDcgKzE5NTEsOCBAQAogICAgICAgICAgICAgJ3BsYXRmb3Jt
L2Nocm9taXVtL0N1cnNvckNocm9taXVtLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vY2hy
b21pdW0vRHJhZ0RhdGFDaHJvbWl1bS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9t
aXVtL0RyYWdEYXRhUmVmLmgnLAotICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL0RyYWdJ
bWFnZUNocm9taXVtLmNwcCcsCisgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vRHJhZ0lt
YWdlQ2hyb21pdW1NYWMuY3BwJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9EcmFn
SW1hZ2VDaHJvbWl1bVNraWEuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9E
cmFnSW1hZ2VSZWYuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vRmlsZUNob29z
ZXJDaHJvbWl1bS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL0ZpbGVTeXN0
ZW1DaHJvbWl1bS5jcHAnLApJbmRleDogV2ViQ29yZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5cAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwCShyZXZpc2lvbiA1
NjkzNCkKKysrIFdlYkNvcmUvV2ViQ29yZS5neXAvV2ViQ29yZS5neXAJKHdvcmtpbmcgY29weSkK
QEAgLTEwNjQsNiArMTA2NCw5IEBACiAgICAgICAgICAgICAnLi4vcGxhdGZvcm0vaW1hZ2UtZGVj
b2RlcnMvc2tpYS9JbWFnZURlY29kZXJTa2lhLmNwcCcsCiAgICAgICAgICAgICAnLi4vcGxhdGZv
cm0vaW1hZ2UtZGVjb2RlcnMveGJtL1hCTUltYWdlRGVjb2Rlci5jcHAnLAogICAgICAgICAgICAg
Jy4uL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL3hibS9YQk1JbWFnZURlY29kZXIuaCcsCisKKyAg
ICAgICAgICAgICMgQWdhaW4sIFNraWEgaXMgbm90IHVzZWQgb24gTWFjLgorICAgICAgICAgICAg
Jy4uL3BsYXRmb3JtL2Nocm9taXVtL0RyYWdJbWFnZUNocm9taXVtU2tpYS5jcHAnLAogICAgICAg
ICAgIF0sCiAgICAgICAgICAgJ2RpcmVjdF9kZXBlbmRlbnRfc2V0dGluZ3MnOiB7CiAgICAgICAg
ICAgICAnaW5jbHVkZV9kaXJzJzogWwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9E
cmFnSW1hZ2VDaHJvbWl1bS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9jaHJv
bWl1bS9EcmFnSW1hZ2VDaHJvbWl1bS5jcHAJKHJldmlzaW9uIDU2OTM0KQorKysgV2ViQ29yZS9w
bGF0Zm9ybS9jaHJvbWl1bS9EcmFnSW1hZ2VDaHJvbWl1bS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTEsNzMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoYykgMjAwOCwgMjAwOSwgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIAotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMg
YXJlCi0gKiBtZXQ6Ci0gKiAKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBj
b3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVy
IHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmli
dXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQg
ZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVy
bWlzc2lvbi4KLSAqIAotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQot
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiRHJh
Z0ltYWdlLmgiCi0KLSNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgotCi1uYW1lc3BhY2UgV2Vi
Q29yZSB7Ci0KLUludFNpemUgZHJhZ0ltYWdlU2l6ZShEcmFnSW1hZ2VSZWYgaW1hZ2UpCi17Ci0g
ICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gSW50U2l6ZSgpOwotfQotCi12b2lkIGRl
bGV0ZURyYWdJbWFnZShEcmFnSW1hZ2VSZWYgaW1hZ2UpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQo
KTsKLX0KLQotRHJhZ0ltYWdlUmVmIHNjYWxlRHJhZ0ltYWdlKERyYWdJbWFnZVJlZiBpbWFnZSwg
RmxvYXRTaXplIHNjYWxlKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIDA7
Ci19Ci0gICAgCi1EcmFnSW1hZ2VSZWYgZGlzc29sdmVEcmFnSW1hZ2VUb0ZyYWN0aW9uKERyYWdJ
bWFnZVJlZiBpbWFnZSwgZmxvYXQpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1
cm4gaW1hZ2U7Ci19Ci0gICAgICAgIAotRHJhZ0ltYWdlUmVmIGNyZWF0ZURyYWdJbWFnZUZyb21J
bWFnZShJbWFnZSogaW1nKQoteyAgICAKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVy
biAwOwotfQotICAgIAotRHJhZ0ltYWdlUmVmIGNyZWF0ZURyYWdJbWFnZUljb25Gb3JDYWNoZWRJ
bWFnZShDYWNoZWRJbWFnZSopCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4g
MDsgICAgIAotfQotICAgIAotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2ViQ29yZS9w
bGF0Zm9ybS9jaHJvbWl1bS9EcmFnSW1hZ2VSZWYuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3Bs
YXRmb3JtL2Nocm9taXVtL0RyYWdJbWFnZVJlZi5oCShyZXZpc2lvbiA1NjkzNCkKKysrIFdlYkNv
cmUvcGxhdGZvcm0vY2hyb21pdW0vRHJhZ0ltYWdlUmVmLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5
LDExICsyOSwxNiBAQAogI2lmbmRlZiBEcmFnSW1hZ2VSZWZfaAogI2RlZmluZSBEcmFnSW1hZ2VS
ZWZfaAogCitjbGFzcyBTa0JpdG1hcDsKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0gICAgLy8g
RklYTUU6IE5lZWQgdG8gc3VwcG9ydCBpbWFnZSBkcmFnLW4tZHJvcC4gIEZvciBub3csIHdlIGp1
c3QgYWxsb3cgdGhpbmdzCi0gICAgLy8gdG8gY29tcGlsZSBieSBkZWZpbmluZyB0aGlzIGR1bW15
IHR5cGUuCi0gICAgdHlwZWRlZiB2b2lkKiBEcmFnSW1hZ2VSZWY7CisjaWYgT1MoREFSV0lOKQor
Ly8gRklYTUU6IG5vdCBpbXBsZW1lbnRlZC4KK3R5cGVkZWYgdm9pZCogRHJhZ0ltYWdlUmVmOwor
I2Vsc2UKK3R5cGVkZWYgU2tCaXRtYXAqIERyYWdJbWFnZVJlZjsKKyNlbmRpZgogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCiAKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gNTY5MzQpCisrKyBX
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjAgQEAK
KzIwMTAtMDQtMDEgIEV2YW4gU3RhZGUgIDxlc3RhZGVAY2hyb21pdW0ub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtjaHJvbWl1bV0gbmVlZCBE
cmFnSW1hZ2UgaW1wbGVtZW50YXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTM1ODExCisKKyAgICAgICAgVXNlIHRoZSBEcmFnSW1hZ2VSZWYgdGhh
dCB0aGUgRHJhZ0NvbnRyb2xsZXIgcGFzc2VzIHRvIHVzLgorCisgICAgICAgICogcHVibGljL1dl
YlZpZXdDbGllbnQuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0NsaWVudDo6c3RhcnREcmFn
Z2luZyk6CisgICAgICAgICogc3JjL0RyYWdDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6RHJhZ0NsaWVudEltcGw6OnN0YXJ0RHJhZyk6CisgICAgICAgICogc3JjL1dlYlZpZXdJbXBs
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnN0YXJ0RHJhZ2dpbmcpOgorICAg
ICAgICAqIHNyYy9XZWJWaWV3SW1wbC5oOgorCiAyMDEwLTA0LTAxICBGaW5udXIgVGhvcmFyaW5z
c29uICA8ZmlubnVyLndlYmtpdEBnbWFpbC5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGlt
aXRyaSBHbGF6a292LgpJbmRleDogV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xpZW50
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xpZW50LmgJ
KHJldmlzaW9uIDU2OTM0KQorKysgV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xpZW50
LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDYgKzQ3LDcgQEAgY2xhc3MgV2ViRHJhZ0RhdGE7CiBj
bGFzcyBXZWJGaWxlQ2hvb3NlckNvbXBsZXRpb247CiBjbGFzcyBXZWJGcmFtZTsKIGNsYXNzIFdl
Ykdlb2xvY2F0aW9uU2VydmljZTsKK2NsYXNzIFdlYkltYWdlOwogY2xhc3MgV2ViTm9kZTsKIGNs
YXNzIFdlYk5vdGlmaWNhdGlvblByZXNlbnRlcjsKIGNsYXNzIFdlYlJhbmdlOwpAQCAtMjIyLDcg
KzIyMyw3IEBAIHB1YmxpYzoKIAogICAgIC8vIENhbGxlZCB3aGVuIGEgZHJhZy1uLWRyb3Agb3Bl
cmF0aW9uIHNob3VsZCBiZWdpbi4KICAgICB2aXJ0dWFsIHZvaWQgc3RhcnREcmFnZ2luZygKLSAg
ICAgICAgY29uc3QgV2ViUG9pbnQmIGZyb20sIGNvbnN0IFdlYkRyYWdEYXRhJiwgV2ViRHJhZ09w
ZXJhdGlvbnNNYXNrKSB7IH0KKyAgICAgICAgY29uc3QgV2ViRHJhZ0RhdGEmLCBXZWJEcmFnT3Bl
cmF0aW9uc01hc2ssIGNvbnN0IFdlYkltYWdlJiwgY29uc3QgV2ViUG9pbnQmKSB7IH0KIAogICAg
IC8vIENhbGxlZCB0byBkZXRlcm1pbmUgaWYgZHJhZy1uLWRyb3Agb3BlcmF0aW9ucyBtYXkgaW5p
dGlhdGUgYSBwYWdlCiAgICAgLy8gbmF2aWdhdGlvbi4KSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9z
cmMvRHJhZ0NsaWVudEltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9zcmMv
RHJhZ0NsaWVudEltcGwuY3BwCShyZXZpc2lvbiA1NjkzNCkKKysrIFdlYktpdC9jaHJvbWl1bS9z
cmMvRHJhZ0NsaWVudEltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCwxMSArMzAsMTQgQEAK
IAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkRyYWdDbGllbnRJbXBsLmgiCi0KKyNp
bmNsdWRlICJEcmFnSW1hZ2VSZWYuaCIKICNpbmNsdWRlICJDaHJvbWl1bURhdGFPYmplY3QuaCIK
ICNpbmNsdWRlICJDbGlwYm9hcmRDaHJvbWl1bS5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5j
bHVkZSAiTmF0aXZlSW1hZ2VTa2lhLmgiCisjaW5jbHVkZSAiV2ViQ29tbW9uLmgiCiAjaW5jbHVk
ZSAiV2ViRHJhZ0RhdGEuaCIKKyNpbmNsdWRlICJXZWJJbWFnZS5oIgogI2luY2x1ZGUgIldlYlZp
ZXdDbGllbnQuaCIKICNpbmNsdWRlICJXZWJWaWV3SW1wbC5oIgogCkBAIC04MSw4ICs4NCwxOSBA
QCB2b2lkIERyYWdDbGllbnRJbXBsOjpzdGFydERyYWcoRHJhZ0ltYWdlCiAKICAgICBEcmFnT3Bl
cmF0aW9uIGRyYWdPcGVyYXRpb25NYXNrID0gY2xpcGJvYXJkLT5zb3VyY2VPcGVyYXRpb24oKTsK
IAorICAgIEludFNpemUgb2Zmc2V0U2l6ZShldmVudFBvcyAtIGRyYWdJbWFnZU9yaWdpbik7Cisg
ICAgV2ViUG9pbnQgb2Zmc2V0UG9pbnQob2Zmc2V0U2l6ZS53aWR0aCgpLCBvZmZzZXRTaXplLmhl
aWdodCgpKTsKKyNpZiBXRUJLSVRfVVNJTkdfU0tJQQorICAgIG1fd2ViVmlldy0+c3RhcnREcmFn
Z2luZygKKyAgICAgICAgZHJhZ0RhdGEsIHN0YXRpY19jYXN0PFdlYkRyYWdPcGVyYXRpb25zTWFz
az4oZHJhZ09wZXJhdGlvbk1hc2spLAorICAgICAgICBXZWJJbWFnZSgqZHJhZ0ltYWdlKSwgb2Zm
c2V0UG9pbnQpOworI2Vsc2UKKyAgICAvLyBGSVhNRTogV2hlbiBEcmFnSW1hZ2VSZWYgaXMgaW1w
bGVtZW50ZWQgZm9yIENHLCB3ZSBjYW4gcHJvYmFibHkganVzdCByZW1vdmUKKyAgICAvLyB0aGlz
ICNpZiBmb3JrLiBGb3Igbm93LCBwYXNzIGFuIGVtcHR5IGltYWdlLgogICAgIG1fd2ViVmlldy0+
c3RhcnREcmFnZ2luZygKLSAgICAgICAgZXZlbnRQb3MsIGRyYWdEYXRhLCBzdGF0aWNfY2FzdDxX
ZWJEcmFnT3BlcmF0aW9uc01hc2s+KGRyYWdPcGVyYXRpb25NYXNrKSk7CisgICAgICAgIGRyYWdE
YXRhLCBzdGF0aWNfY2FzdDxXZWJEcmFnT3BlcmF0aW9uc01hc2s+KGRyYWdPcGVyYXRpb25NYXNr
KSwKKyAgICAgICAgV2ViSW1hZ2UoKSwgV2ViUG9pbnQoKSk7CisjZW5kaWYKIH0KIAogRHJhZ0lt
YWdlUmVmIERyYWdDbGllbnRJbXBsOjpjcmVhdGVEcmFnSW1hZ2VGb3JMaW5rKEtVUkwmLCBjb25z
dCBTdHJpbmcmIGxhYmVsLCBGcmFtZSopCkluZGV4OiBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZp
ZXdJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBs
LmNwcAkocmV2aXNpb24gNTY5MzQpCisrKyBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBs
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtODcsNiArODcsNyBAQAogI2luY2x1ZGUgIldlYkRldlRv
b2xzQWdlbnRQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViRHJhZ0RhdGEuaCIKICNpbmNsdWRlICJX
ZWJGcmFtZUltcGwuaCIKKyNpbmNsdWRlICJXZWJJbWFnZS5oIgogI2luY2x1ZGUgIldlYklucHV0
RXZlbnQuaCIKICNpbmNsdWRlICJXZWJJbnB1dEV2ZW50Q29udmVyc2lvbi5oIgogI2luY2x1ZGUg
IldlYk1lZGlhUGxheWVyQWN0aW9uLmgiCkBAIC0xOTMyLDE1ICsxOTMzLDE2IEBAIGJvb2wgV2Vi
Vmlld0ltcGw6Om5hdmlnYXRpb25Qb2xpY3lGcm9tTW8KICAgICByZXR1cm4gdHJ1ZTsKIH0KIAot
dm9pZCBXZWJWaWV3SW1wbDo6c3RhcnREcmFnZ2luZyhjb25zdCBXZWJQb2ludCYgZXZlbnRQb3Ms
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFdlYkRyYWdEYXRhJiBkcmFn
RGF0YSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViRHJhZ09wZXJhdGlvbnNN
YXNrIG1hc2spCit2b2lkIFdlYlZpZXdJbXBsOjpzdGFydERyYWdnaW5nKGNvbnN0IFdlYkRyYWdE
YXRhJiBkcmFnRGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViRHJhZ09w
ZXJhdGlvbnNNYXNrIG1hc2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0
IFdlYkltYWdlJiBkcmFnSW1hZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv
bnN0IFdlYlBvaW50JiBkcmFnSW1hZ2VPZmZzZXQpCiB7CiAgICAgaWYgKCFtX2NsaWVudCkKICAg
ICAgICAgcmV0dXJuOwogICAgIEFTU0VSVCghbV9kb2luZ0RyYWdBbmREcm9wKTsKICAgICBtX2Rv
aW5nRHJhZ0FuZERyb3AgPSB0cnVlOwotICAgIG1fY2xpZW50LT5zdGFydERyYWdnaW5nKGV2ZW50
UG9zLCBkcmFnRGF0YSwgbWFzayk7CisgICAgbV9jbGllbnQtPnN0YXJ0RHJhZ2dpbmcoZHJhZ0Rh
dGEsIG1hc2ssIGRyYWdJbWFnZSwgZHJhZ0ltYWdlT2Zmc2V0KTsKIH0KIAogdm9pZCBXZWJWaWV3
SW1wbDo6c2V0Q3VycmVudEhpc3RvcnlJdGVtKEhpc3RvcnlJdGVtKiBpdGVtKQpJbmRleDogV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJv
bWl1bS9zcmMvV2ViVmlld0ltcGwuaAkocmV2aXNpb24gNTY5MzQpCisrKyBXZWJLaXQvY2hyb21p
dW0vc3JjL1dlYlZpZXdJbXBsLmgJKHdvcmtpbmcgY29weSkKQEAgLTc0LDYgKzc0LDcgQEAgY2xh
c3MgU3VnZ2VzdGlvbnNQb3B1cE1lbnVDbGllbnQ7CiBjbGFzcyBXZWJBY2Nlc3NpYmlsaXR5T2Jq
ZWN0OwogY2xhc3MgV2ViRGV2VG9vbHNBZ2VudFByaXZhdGU7CiBjbGFzcyBXZWJGcmFtZUltcGw7
CitjbGFzcyBXZWJJbWFnZTsKIGNsYXNzIFdlYktleWJvYXJkRXZlbnQ7CiBjbGFzcyBXZWJNb3Vz
ZUV2ZW50OwogY2xhc3MgV2ViTW91c2VXaGVlbEV2ZW50OwpAQCAtMjc0LDkgKzI3NSwxMCBAQCBw
dWJsaWM6CiAKICAgICAvLyBTdGFydCBhIHN5c3RlbSBkcmFnIGFuZCBkcm9wIG9wZXJhdGlvbi4K
ICAgICB2b2lkIHN0YXJ0RHJhZ2dpbmcoCi0gICAgICAgIGNvbnN0IFdlYlBvaW50JiBldmVudFBv
cywKICAgICAgICAgY29uc3QgV2ViRHJhZ0RhdGEmIGRyYWdEYXRhLAotICAgICAgICBXZWJEcmFn
T3BlcmF0aW9uc01hc2sgZHJhZ1NvdXJjZU9wZXJhdGlvbk1hc2spOworICAgICAgICBXZWJEcmFn
T3BlcmF0aW9uc01hc2sgbWFzaywKKyAgICAgICAgY29uc3QgV2ViSW1hZ2UmIGRyYWdJbWFnZSwK
KyAgICAgICAgY29uc3QgV2ViUG9pbnQmIGRyYWdJbWFnZU9mZnNldCk7CiAKICAgICB2b2lkIHN1
Z2dlc3Rpb25zUG9wdXBEaWRIaWRlKCkKICAgICB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>52465</attachid>
            <date>2010-04-02 16:40:55 -0700</date>
            <delta_ts>2010-04-05 14:25:46 -0700</delta_ts>
            <desc>svn add</desc>
            <filename>tmp.diff</filename>
            <type>text/plain</type>
            <size>6580</size>
            <attacher name="Evan Stade">estade</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NzAzMSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjcgQEAKKzIwMTAtMDQtMDIgIEV2YW4gU3RhZGUgIDxlc3RhZGVAY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtj
aHJvbWl1bV0gbmVlZCBEcmFnSW1hZ2UgaW1wbGVtZW50YXRpb24KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM1ODExCisKKyAgICAgICAgQWRkIHR3byBm
aWxlcyB0aGF0IGZhaWxlZCB0byBnZXQgYWRkZWQgaW4gbXkgcHJldmlvdXMgcGF0Y2guCisKKyAg
ICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9EcmFnSW1hZ2VDaHJvbWl1bU1hYy5jcHA6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6ZHJhZ0ltYWdlU2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpk
ZWxldGVEcmFnSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6c2NhbGVEcmFnSW1hZ2UpOgorICAg
ICAgICAoV2ViQ29yZTo6ZGlzc29sdmVEcmFnSW1hZ2VUb0ZyYWN0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OmNyZWF0ZURyYWdJbWFnZUZyb21JbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpjcmVh
dGVEcmFnSW1hZ2VJY29uRm9yQ2FjaGVkSW1hZ2UpOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9t
aXVtL0RyYWdJbWFnZUNocm9taXVtU2tpYS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
ZHJhZ0ltYWdlU2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpkZWxldGVEcmFnSW1hZ2UpOgorICAg
ICAgICAoV2ViQ29yZTo6c2NhbGVEcmFnSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6ZGlzc29s
dmVEcmFnSW1hZ2VUb0ZyYWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZURyYWdJbWFn
ZUZyb21JbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVEcmFnSW1hZ2VJY29uRm9yQ2Fj
aGVkSW1hZ2UpOgorCiAyMDEwLTA0LTAyICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29t
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KSW5kZXg6IFdlYkNvcmUvcGxh
dGZvcm0vY2hyb21pdW0vRHJhZ0ltYWdlQ2hyb21pdW1NYWMuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRHJhZ0ltYWdlQ2hyb21pdW1NYWMuY3BwCShyZXZpc2lv
biAwKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9EcmFnSW1hZ2VDaHJvbWl1bU1hYy5j
cHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIw
MTAsIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICogCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICog
ICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0
cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9k
dWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlv
ciB3cml0dGVuIHBlcm1pc3Npb24uCisgKiAKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisg
KiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIkRyYWdJbWFnZS5oIgorCisjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitJbnRTaXplIGRyYWdJbWFnZVNpemUoRHJhZ0ltYWdlUmVm
IGltYWdlKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIEludFNpemUoKTsK
K30KKwordm9pZCBkZWxldGVEcmFnSW1hZ2UoRHJhZ0ltYWdlUmVmIGltYWdlKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7Cit9CisKK0RyYWdJbWFnZVJlZiBzY2FsZURyYWdJbWFnZShEcmFnSW1h
Z2VSZWYgaW1hZ2UsIEZsb2F0U2l6ZSBzY2FsZSkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
ICAgIHJldHVybiAwOworfQorCitEcmFnSW1hZ2VSZWYgZGlzc29sdmVEcmFnSW1hZ2VUb0ZyYWN0
aW9uKERyYWdJbWFnZVJlZiBpbWFnZSwgZmxvYXQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
KyAgICByZXR1cm4gaW1hZ2U7Cit9CisKK0RyYWdJbWFnZVJlZiBjcmVhdGVEcmFnSW1hZ2VGcm9t
SW1hZ2UoSW1hZ2UqIGltZykKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAw
OworfQorCitEcmFnSW1hZ2VSZWYgY3JlYXRlRHJhZ0ltYWdlSWNvbkZvckNhY2hlZEltYWdlKENh
Y2hlZEltYWdlKikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwOworfQor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVt
L0RyYWdJbWFnZUNocm9taXVtU2tpYS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9y
bS9jaHJvbWl1bS9EcmFnSW1hZ2VDaHJvbWl1bVNraWEuY3BwCShyZXZpc2lvbiAwKQorKysgV2Vi
Q29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9EcmFnSW1hZ2VDaHJvbWl1bVNraWEuY3BwCShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDc4IEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDA4LCAyMDA5LCBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqIAorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAq
IE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAq
IGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMg
ZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgorICogCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElN
SVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisg
KiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJEcmFnSW1hZ2UuaCIKKworI2luY2x1ZGUgIkltYWdlLmgiCisjaW5jbHVkZSAiTmF0aXZl
SW1hZ2VTa2lhLmgiCisjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKyNpbmNsdWRlICJSZWZQ
dHIuaCIKKyNpbmNsdWRlICJTa0JpdG1hcC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0lu
dFNpemUgZHJhZ0ltYWdlU2l6ZShEcmFnSW1hZ2VSZWYgaW1hZ2UpCit7CisgICAgaWYgKCFpbWFn
ZSkKKyAgICAgICAgcmV0dXJuIEludFNpemUoKTsKKworICAgIHJldHVybiBJbnRTaXplKGltYWdl
LT53aWR0aCgpLCBpbWFnZS0+aGVpZ2h0KCkpOworfQorCit2b2lkIGRlbGV0ZURyYWdJbWFnZShE
cmFnSW1hZ2VSZWYgaW1hZ2UpCit7CisgICAgZGVsZXRlIGltYWdlOworfQorCitEcmFnSW1hZ2VS
ZWYgc2NhbGVEcmFnSW1hZ2UoRHJhZ0ltYWdlUmVmIGltYWdlLCBGbG9hdFNpemUgc2NhbGUpCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gaW1hZ2U7Cit9CisKK0RyYWdJbWFn
ZVJlZiBkaXNzb2x2ZURyYWdJbWFnZVRvRnJhY3Rpb24oRHJhZ0ltYWdlUmVmIGltYWdlLCBmbG9h
dCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBpbWFnZTsKK30KKworRHJh
Z0ltYWdlUmVmIGNyZWF0ZURyYWdJbWFnZUZyb21JbWFnZShJbWFnZSogaW1hZ2UpCit7CisgICAg
cmV0dXJuIG5ldyBTa0JpdG1hcCgqaW1hZ2UtPm5hdGl2ZUltYWdlRm9yQ3VycmVudEZyYW1lKCkp
OworfQorCitEcmFnSW1hZ2VSZWYgY3JlYXRlRHJhZ0ltYWdlSWNvbkZvckNhY2hlZEltYWdlKENh
Y2hlZEltYWdlKikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwOworfQor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>52573</attachid>
            <date>2010-04-05 14:25:46 -0700</date>
            <delta_ts>2010-04-05 15:00:39 -0700</delta_ts>
            <desc>null check</desc>
            <filename>try2.diff</filename>
            <type>text/plain</type>
            <size>16995</size>
            <attacher name="Evan Stade">estade</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NzA5MykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzQgQEAKKzIwMTAtMDQtMDUgIEV2YW4gU3RhZGUgIDxlc3RhZGVAY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtj
aHJvbWl1bV0gbmVlZCBEcmFnSW1hZ2UgaW1wbGVtZW50YXRpb24KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM1ODExCisKKyAgICAgICAgVXNlIHRoZSBE
cmFnSW1hZ2VSZWYgdGhhdCB0aGUgRHJhZ0NvbnRyb2xsZXIgcGFzc2VzIHRvIHVzLgorCisgICAg
ICAgIFRoaXMgd2FzIHByZXZpb3VzbHkgY29tbWl0dGVkIGJ1dCByb2xsZWQgYmFjayBmb3IgYnJl
YWtpbmcgbGF5b3V0CisgICAgICAgIHRlc3RzLiBUaGUgZml4IGlzIG9uIHRoZSBXZWJLaXQvY2hy
b21pdW0gc2lkZS4KKworICAgICAgICAqIFdlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwOgorICAgICAg
ICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9EcmFnSW1hZ2VD
aHJvbWl1bS5jcHA6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vRHJhZ0lt
YWdlQ2hyb21pdW1NYWMuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmRyYWdJbWFnZVNp
emUpOgorICAgICAgICAoV2ViQ29yZTo6ZGVsZXRlRHJhZ0ltYWdlKToKKyAgICAgICAgKFdlYkNv
cmU6OnNjYWxlRHJhZ0ltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OmRpc3NvbHZlRHJhZ0ltYWdl
VG9GcmFjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVEcmFnSW1hZ2VGcm9tSW1hZ2Up
OgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlRHJhZ0ltYWdlSWNvbkZvckNhY2hlZEltYWdlKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9EcmFnSW1hZ2VDaHJvbWl1bVNraWEuY3BwOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmRyYWdJbWFnZVNpemUpOgorICAgICAgICAoV2ViQ29y
ZTo6ZGVsZXRlRHJhZ0ltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OnNjYWxlRHJhZ0ltYWdlKToK
KyAgICAgICAgKFdlYkNvcmU6OmRpc3NvbHZlRHJhZ0ltYWdlVG9GcmFjdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpjcmVhdGVEcmFnSW1hZ2VGcm9tSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6
Y3JlYXRlRHJhZ0ltYWdlSWNvbkZvckNhY2hlZEltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9j
aHJvbWl1bS9EcmFnSW1hZ2VSZWYuaDoKKwogMjAxMC0wNC0wNSAgQ2hyaXMgRmxlaXphY2ggIDxj
ZmxlaXphY2hAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpJ
bmRleDogV2ViQ29yZS9XZWJDb3JlLmd5cGkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3Jl
Lmd5cGkJKHJldmlzaW9uIDU3MDkzKQorKysgV2ViQ29yZS9XZWJDb3JlLmd5cGkJKHdvcmtpbmcg
Y29weSkKQEAgLTE5NTEsNyArMTk1MSw4IEBACiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21p
dW0vQ3Vyc29yQ2hyb21pdW0uY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9E
cmFnRGF0YUNocm9taXVtLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vRHJh
Z0RhdGFSZWYuaCcsCi0gICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vRHJhZ0ltYWdlQ2hy
b21pdW0uY3BwJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9EcmFnSW1hZ2VDaHJv
bWl1bU1hYy5jcHAnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL0RyYWdJbWFnZUNo
cm9taXVtU2tpYS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL0RyYWdJbWFn
ZVJlZi5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9GaWxlQ2hvb3NlckNocm9t
aXVtLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vRmlsZVN5c3RlbUNocm9t
aXVtLmNwcCcsCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS5neXAvV2ViQ29yZS5neXAJKHJldmlzaW9uIDU3MDkzKQor
KysgV2ViQ29yZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5cAkod29ya2luZyBjb3B5KQpAQCAtMTA2
NCw2ICsxMDY0LDkgQEAKICAgICAgICAgICAgICcuLi9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9z
a2lhL0ltYWdlRGVjb2RlclNraWEuY3BwJywKICAgICAgICAgICAgICcuLi9wbGF0Zm9ybS9pbWFn
ZS1kZWNvZGVycy94Ym0vWEJNSW1hZ2VEZWNvZGVyLmNwcCcsCiAgICAgICAgICAgICAnLi4vcGxh
dGZvcm0vaW1hZ2UtZGVjb2RlcnMveGJtL1hCTUltYWdlRGVjb2Rlci5oJywKKworICAgICAgICAg
ICAgIyBBZ2FpbiwgU2tpYSBpcyBub3QgdXNlZCBvbiBNYWMuCisgICAgICAgICAgICAnLi4vcGxh
dGZvcm0vY2hyb21pdW0vRHJhZ0ltYWdlQ2hyb21pdW1Ta2lhLmNwcCcsCiAgICAgICAgICAgXSwK
ICAgICAgICAgICAnZGlyZWN0X2RlcGVuZGVudF9zZXR0aW5ncyc6IHsKICAgICAgICAgICAgICdp
bmNsdWRlX2RpcnMnOiBbCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0RyYWdJbWFn
ZUNocm9taXVtLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0Ry
YWdJbWFnZUNocm9taXVtLmNwcAkocmV2aXNpb24gNTcwOTMpCisrKyBXZWJDb3JlL3BsYXRmb3Jt
L2Nocm9taXVtL0RyYWdJbWFnZUNocm9taXVtLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw3MyAr
MCwwIEBACi0vKgotICogQ29weXJpZ2h0IChjKSAyMDA4LCAyMDA5LCBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICogCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAq
IG1ldDoKLSAqIAotICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqIGNvcHlyaWdo
dCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIKLSAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAgICAqIE5laXRoZXIgdGhlIG5h
bWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1dG9ycyBt
YXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0g
KiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9u
LgotICogCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwK
LSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJEcmFnSW1hZ2Uu
aCIKLQotI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsK
LQotSW50U2l6ZSBkcmFnSW1hZ2VTaXplKERyYWdJbWFnZVJlZiBpbWFnZSkKLXsKLSAgICBub3RJ
bXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBJbnRTaXplKCk7Ci19Ci0KLXZvaWQgZGVsZXRlRHJh
Z0ltYWdlKERyYWdJbWFnZVJlZiBpbWFnZSkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQot
Ci1EcmFnSW1hZ2VSZWYgc2NhbGVEcmFnSW1hZ2UoRHJhZ0ltYWdlUmVmIGltYWdlLCBGbG9hdFNp
emUgc2NhbGUpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gMDsKLX0KLSAg
ICAKLURyYWdJbWFnZVJlZiBkaXNzb2x2ZURyYWdJbWFnZVRvRnJhY3Rpb24oRHJhZ0ltYWdlUmVm
IGltYWdlLCBmbG9hdCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBpbWFn
ZTsKLX0KLSAgICAgICAgCi1EcmFnSW1hZ2VSZWYgY3JlYXRlRHJhZ0ltYWdlRnJvbUltYWdlKElt
YWdlKiBpbWcpCi17ICAgIAotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIDA7Ci19
Ci0gICAgCi1EcmFnSW1hZ2VSZWYgY3JlYXRlRHJhZ0ltYWdlSWNvbkZvckNhY2hlZEltYWdlKENh
Y2hlZEltYWdlKikKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiAwOyAgICAg
Ci19Ci0gICAgCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBXZWJDb3JlL3BsYXRmb3Jt
L2Nocm9taXVtL0RyYWdJbWFnZUNocm9taXVtTWFjLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L3BsYXRmb3JtL2Nocm9taXVtL0RyYWdJbWFnZUNocm9taXVtTWFjLmNwcAkocmV2aXNpb24gMCkK
KysrIFdlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRHJhZ0ltYWdlQ2hyb21pdW1NYWMuY3BwCShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDczIEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDEwLCBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqIAorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAq
IE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAq
IGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMg
ZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgorICogCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElN
SVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisg
KiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJEcmFnSW1hZ2UuaCIKKworI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworSW50U2l6ZSBkcmFnSW1hZ2VTaXplKERyYWdJbWFnZVJlZiBpbWFn
ZSkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBJbnRTaXplKCk7Cit9CisK
K3ZvaWQgZGVsZXRlRHJhZ0ltYWdlKERyYWdJbWFnZVJlZiBpbWFnZSkKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworfQorCitEcmFnSW1hZ2VSZWYgc2NhbGVEcmFnSW1hZ2UoRHJhZ0ltYWdlUmVm
IGltYWdlLCBGbG9hdFNpemUgc2NhbGUpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBy
ZXR1cm4gMDsKK30KKworRHJhZ0ltYWdlUmVmIGRpc3NvbHZlRHJhZ0ltYWdlVG9GcmFjdGlvbihE
cmFnSW1hZ2VSZWYgaW1hZ2UsIGZsb2F0KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAg
cmV0dXJuIGltYWdlOworfQorCitEcmFnSW1hZ2VSZWYgY3JlYXRlRHJhZ0ltYWdlRnJvbUltYWdl
KEltYWdlKiBpbWcpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMDsKK30K
KworRHJhZ0ltYWdlUmVmIGNyZWF0ZURyYWdJbWFnZUljb25Gb3JDYWNoZWRJbWFnZShDYWNoZWRJ
bWFnZSopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMDsKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9EcmFn
SW1hZ2VDaHJvbWl1bVNraWEuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vY2hy
b21pdW0vRHJhZ0ltYWdlQ2hyb21pdW1Ta2lhLmNwcAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUv
cGxhdGZvcm0vY2hyb21pdW0vRHJhZ0ltYWdlQ2hyb21pdW1Ta2lhLmNwcAkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSw3OCBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAwOCwgMjAwOSwgR29vZ2xl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIAorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlCisgKiBtZXQ6CisgKiAKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisg
KiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0
aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250
cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2
ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4g
cGVybWlzc2lvbi4KKyAqIAorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09Q
WVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
RHJhZ0ltYWdlLmgiCisKKyNpbmNsdWRlICJJbWFnZS5oIgorI2luY2x1ZGUgIk5hdGl2ZUltYWdl
U2tpYS5oIgorI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisjaW5jbHVkZSAiUmVmUHRyLmgi
CisjaW5jbHVkZSAiU2tCaXRtYXAuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitJbnRTaXpl
IGRyYWdJbWFnZVNpemUoRHJhZ0ltYWdlUmVmIGltYWdlKQoreworICAgIGlmICghaW1hZ2UpCisg
ICAgICAgIHJldHVybiBJbnRTaXplKCk7CisKKyAgICByZXR1cm4gSW50U2l6ZShpbWFnZS0+d2lk
dGgoKSwgaW1hZ2UtPmhlaWdodCgpKTsKK30KKwordm9pZCBkZWxldGVEcmFnSW1hZ2UoRHJhZ0lt
YWdlUmVmIGltYWdlKQoreworICAgIGRlbGV0ZSBpbWFnZTsKK30KKworRHJhZ0ltYWdlUmVmIHNj
YWxlRHJhZ0ltYWdlKERyYWdJbWFnZVJlZiBpbWFnZSwgRmxvYXRTaXplIHNjYWxlKQoreworICAg
IG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGltYWdlOworfQorCitEcmFnSW1hZ2VSZWYg
ZGlzc29sdmVEcmFnSW1hZ2VUb0ZyYWN0aW9uKERyYWdJbWFnZVJlZiBpbWFnZSwgZmxvYXQpCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gaW1hZ2U7Cit9CisKK0RyYWdJbWFn
ZVJlZiBjcmVhdGVEcmFnSW1hZ2VGcm9tSW1hZ2UoSW1hZ2UqIGltYWdlKQoreworICAgIHJldHVy
biBuZXcgU2tCaXRtYXAoKmltYWdlLT5uYXRpdmVJbWFnZUZvckN1cnJlbnRGcmFtZSgpKTsKK30K
KworRHJhZ0ltYWdlUmVmIGNyZWF0ZURyYWdJbWFnZUljb25Gb3JDYWNoZWRJbWFnZShDYWNoZWRJ
bWFnZSopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMDsKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9EcmFn
SW1hZ2VSZWYuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0RyYWdJ
bWFnZVJlZi5oCShyZXZpc2lvbiA1NzA5MykKKysrIFdlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0v
RHJhZ0ltYWdlUmVmLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDExICsyOSwxNiBAQAogI2lmbmRl
ZiBEcmFnSW1hZ2VSZWZfaAogI2RlZmluZSBEcmFnSW1hZ2VSZWZfaAogCitjbGFzcyBTa0JpdG1h
cDsKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0gICAgLy8gRklYTUU6IE5lZWQgdG8gc3VwcG9y
dCBpbWFnZSBkcmFnLW4tZHJvcC4gIEZvciBub3csIHdlIGp1c3QgYWxsb3cgdGhpbmdzCi0gICAg
Ly8gdG8gY29tcGlsZSBieSBkZWZpbmluZyB0aGlzIGR1bW15IHR5cGUuCi0gICAgdHlwZWRlZiB2
b2lkKiBEcmFnSW1hZ2VSZWY7CisjaWYgT1MoREFSV0lOKQorLy8gRklYTUU6IG5vdCBpbXBsZW1l
bnRlZC4KK3R5cGVkZWYgdm9pZCogRHJhZ0ltYWdlUmVmOworI2Vsc2UKK3R5cGVkZWYgU2tCaXRt
YXAqIERyYWdJbWFnZVJlZjsKKyNlbmRpZgogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKSW5k
ZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZwkocmV2aXNpb24gNTcwOTMpCisrKyBXZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTAtMDQtMDUgIEV2YW4gU3Rh
ZGUgIDxlc3RhZGVAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFtjaHJvbWl1bV0gbmVlZCBEcmFnSW1hZ2UgaW1wbGVtZW50YXRp
b24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM1ODEx
CisKKyAgICAgICAgQmFzaWMgaW1wbGVtZW50YXRpb24gdXNpbmcgU2tCaXRtYXAuIFRyYW5zZm9y
bWF0aW9ucyBhcmUgbm90IHN1cHBvcnRlZAorICAgICAgICB5ZXQuIE5vIGltcGxlbWVudGF0aW9u
IGZvciBtYWMuCisKKyAgICAgICAgVGhpcyB3YXMgcHJldmlvdXNseSBjb21taXR0ZWQgYnV0IHJv
bGxlZCBiYWNrIGZvciBicmVha2luZyBsYXlvdXQKKyAgICAgICAgdGVzdHMuCisKKyAgICAgICAg
KiBwdWJsaWMvV2ViVmlld0NsaWVudC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3Q2xpZW50
OjpzdGFydERyYWdnaW5nKToKKyAgICAgICAgKiBzcmMvRHJhZ0NsaWVudEltcGwuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpEcmFnQ2xpZW50SW1wbDo6c3RhcnREcmFnKTogbmV3OiBjaGVjayBmb3Ig
bnVsbCBkcmFnSW1hZ2UuCisgICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViVmlld0ltcGw6OnN0YXJ0RHJhZ2dpbmcpOgorICAgICAgICAqIHNyYy9XZWJW
aWV3SW1wbC5oOgorCiAyMDEwLTA0LTA0ICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIE5vdCByZXZpZXdlZC4gUm9sbGluZyBvdXQgY2hyb21pdW0gY2hh
bmdlcyByNTcwMjggYW5kIHI1NzAzMiAKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2Vi
Vmlld0NsaWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmll
d0NsaWVudC5oCShyZXZpc2lvbiA1NzA5MykKKysrIFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2Vi
Vmlld0NsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC00OCw2ICs0OCw3IEBAIGNsYXNzIFdlYkRy
YWdEYXRhOwogY2xhc3MgV2ViRmlsZUNob29zZXJDb21wbGV0aW9uOwogY2xhc3MgV2ViRnJhbWU7
CiBjbGFzcyBXZWJHZW9sb2NhdGlvblNlcnZpY2U7CitjbGFzcyBXZWJJbWFnZTsKIGNsYXNzIFdl
Yk5vZGU7CiBjbGFzcyBXZWJOb3RpZmljYXRpb25QcmVzZW50ZXI7CiBjbGFzcyBXZWJSYW5nZTsK
QEAgLTIyNCw3ICsyMjUsNyBAQCBwdWJsaWM6CiAKICAgICAvLyBDYWxsZWQgd2hlbiBhIGRyYWct
bi1kcm9wIG9wZXJhdGlvbiBzaG91bGQgYmVnaW4uCiAgICAgdmlydHVhbCB2b2lkIHN0YXJ0RHJh
Z2dpbmcoCi0gICAgICAgIGNvbnN0IFdlYlBvaW50JiBmcm9tLCBjb25zdCBXZWJEcmFnRGF0YSYs
IFdlYkRyYWdPcGVyYXRpb25zTWFzaykgeyB9CisgICAgICAgIGNvbnN0IFdlYkRyYWdEYXRhJiwg
V2ViRHJhZ09wZXJhdGlvbnNNYXNrLCBjb25zdCBXZWJJbWFnZSYsIGNvbnN0IFdlYlBvaW50Jikg
eyB9CiAKICAgICAvLyBDYWxsZWQgdG8gZGV0ZXJtaW5lIGlmIGRyYWctbi1kcm9wIG9wZXJhdGlv
bnMgbWF5IGluaXRpYXRlIGEgcGFnZQogICAgIC8vIG5hdmlnYXRpb24uCkluZGV4OiBXZWJLaXQv
Y2hyb21pdW0vc3JjL0RyYWdDbGllbnRJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hy
b21pdW0vc3JjL0RyYWdDbGllbnRJbXBsLmNwcAkocmV2aXNpb24gNTcwOTMpCisrKyBXZWJLaXQv
Y2hyb21pdW0vc3JjL0RyYWdDbGllbnRJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsMTEg
KzMwLDE0IEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJEcmFnQ2xpZW50SW1w
bC5oIgotCisjaW5jbHVkZSAiRHJhZ0ltYWdlUmVmLmgiCiAjaW5jbHVkZSAiQ2hyb21pdW1EYXRh
T2JqZWN0LmgiCiAjaW5jbHVkZSAiQ2xpcGJvYXJkQ2hyb21pdW0uaCIKICNpbmNsdWRlICJGcmFt
ZS5oIgorI2luY2x1ZGUgIk5hdGl2ZUltYWdlU2tpYS5oIgorI2luY2x1ZGUgIldlYkNvbW1vbi5o
IgogI2luY2x1ZGUgIldlYkRyYWdEYXRhLmgiCisjaW5jbHVkZSAiV2ViSW1hZ2UuaCIKICNpbmNs
dWRlICJXZWJWaWV3Q2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViVmlld0ltcGwuaCIKIApAQCAtODEs
OCArODQsMTkgQEAgdm9pZCBEcmFnQ2xpZW50SW1wbDo6c3RhcnREcmFnKERyYWdJbWFnZQogCiAg
ICAgRHJhZ09wZXJhdGlvbiBkcmFnT3BlcmF0aW9uTWFzayA9IGNsaXBib2FyZC0+c291cmNlT3Bl
cmF0aW9uKCk7CiAKKyAgICBJbnRTaXplIG9mZnNldFNpemUoZXZlbnRQb3MgLSBkcmFnSW1hZ2VP
cmlnaW4pOworICAgIFdlYlBvaW50IG9mZnNldFBvaW50KG9mZnNldFNpemUud2lkdGgoKSwgb2Zm
c2V0U2l6ZS5oZWlnaHQoKSk7CisjaWYgV0VCS0lUX1VTSU5HX1NLSUEKKyAgICBtX3dlYlZpZXct
PnN0YXJ0RHJhZ2dpbmcoCisgICAgICAgIGRyYWdEYXRhLCBzdGF0aWNfY2FzdDxXZWJEcmFnT3Bl
cmF0aW9uc01hc2s+KGRyYWdPcGVyYXRpb25NYXNrKSwKKyAgICAgICAgZHJhZ0ltYWdlID8gV2Vi
SW1hZ2UoKmRyYWdJbWFnZSkgOiBXZWJJbWFnZSgpLCBvZmZzZXRQb2ludCk7CisjZWxzZQorICAg
IC8vIEZJWE1FOiBXaGVuIERyYWdJbWFnZVJlZiBpcyBpbXBsZW1lbnRlZCBmb3IgQ0csIHdlIGNh
biBwcm9iYWJseSBqdXN0IHJlbW92ZQorICAgIC8vIHRoaXMgI2lmIGZvcmsuIEZvciBub3csIHBh
c3MgYW4gZW1wdHkgaW1hZ2UuCiAgICAgbV93ZWJWaWV3LT5zdGFydERyYWdnaW5nKAotICAgICAg
ICBldmVudFBvcywgZHJhZ0RhdGEsIHN0YXRpY19jYXN0PFdlYkRyYWdPcGVyYXRpb25zTWFzaz4o
ZHJhZ09wZXJhdGlvbk1hc2spKTsKKyAgICAgICAgZHJhZ0RhdGEsIHN0YXRpY19jYXN0PFdlYkRy
YWdPcGVyYXRpb25zTWFzaz4oZHJhZ09wZXJhdGlvbk1hc2spLAorICAgICAgICBXZWJJbWFnZSgp
LCBXZWJQb2ludCgpKTsKKyNlbmRpZgogfQogCiBEcmFnSW1hZ2VSZWYgRHJhZ0NsaWVudEltcGw6
OmNyZWF0ZURyYWdJbWFnZUZvckxpbmsoS1VSTCYsIGNvbnN0IFN0cmluZyYgbGFiZWwsIEZyYW1l
KikKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCShyZXZpc2lvbiA1NzA5MykK
KysrIFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC04Nyw2ICs4Nyw3IEBACiAjaW5jbHVkZSAiV2ViRGV2VG9vbHNBZ2VudFByaXZhdGUuaCIKICNp
bmNsdWRlICJXZWJEcmFnRGF0YS5oIgogI2luY2x1ZGUgIldlYkZyYW1lSW1wbC5oIgorI2luY2x1
ZGUgIldlYkltYWdlLmgiCiAjaW5jbHVkZSAiV2ViSW5wdXRFdmVudC5oIgogI2luY2x1ZGUgIldl
YklucHV0RXZlbnRDb252ZXJzaW9uLmgiCiAjaW5jbHVkZSAiV2ViTWVkaWFQbGF5ZXJBY3Rpb24u
aCIKQEAgLTE5MzIsMTUgKzE5MzMsMTYgQEAgYm9vbCBXZWJWaWV3SW1wbDo6bmF2aWdhdGlvblBv
bGljeUZyb21NbwogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIFdlYlZpZXdJbXBsOjpzdGFy
dERyYWdnaW5nKGNvbnN0IFdlYlBvaW50JiBldmVudFBvcywKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY29uc3QgV2ViRHJhZ0RhdGEmIGRyYWdEYXRhLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBXZWJEcmFnT3BlcmF0aW9uc01hc2sgbWFzaykKK3ZvaWQgV2ViVmll
d0ltcGw6OnN0YXJ0RHJhZ2dpbmcoY29uc3QgV2ViRHJhZ0RhdGEmIGRyYWdEYXRhLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJEcmFnT3BlcmF0aW9uc01hc2sgbWFzaywKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgV2ViSW1hZ2UmIGRyYWdJbWFnZSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgV2ViUG9pbnQmIGRyYWdJbWFn
ZU9mZnNldCkKIHsKICAgICBpZiAoIW1fY2xpZW50KQogICAgICAgICByZXR1cm47CiAgICAgQVNT
RVJUKCFtX2RvaW5nRHJhZ0FuZERyb3ApOwogICAgIG1fZG9pbmdEcmFnQW5kRHJvcCA9IHRydWU7
Ci0gICAgbV9jbGllbnQtPnN0YXJ0RHJhZ2dpbmcoZXZlbnRQb3MsIGRyYWdEYXRhLCBtYXNrKTsK
KyAgICBtX2NsaWVudC0+c3RhcnREcmFnZ2luZyhkcmFnRGF0YSwgbWFzaywgZHJhZ0ltYWdlLCBk
cmFnSW1hZ2VPZmZzZXQpOwogfQogCiB2b2lkIFdlYlZpZXdJbXBsOjpzZXRDdXJyZW50SGlzdG9y
eUl0ZW0oSGlzdG9yeUl0ZW0qIGl0ZW0pCkluZGV4OiBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZp
ZXdJbXBsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5o
CShyZXZpc2lvbiA1NzA5MykKKysrIFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaAko
d29ya2luZyBjb3B5KQpAQCAtNzQsNiArNzQsNyBAQCBjbGFzcyBTdWdnZXN0aW9uc1BvcHVwTWVu
dUNsaWVudDsKIGNsYXNzIFdlYkFjY2Vzc2liaWxpdHlPYmplY3Q7CiBjbGFzcyBXZWJEZXZUb29s
c0FnZW50UHJpdmF0ZTsKIGNsYXNzIFdlYkZyYW1lSW1wbDsKK2NsYXNzIFdlYkltYWdlOwogY2xh
c3MgV2ViS2V5Ym9hcmRFdmVudDsKIGNsYXNzIFdlYk1vdXNlRXZlbnQ7CiBjbGFzcyBXZWJNb3Vz
ZVdoZWVsRXZlbnQ7CkBAIC0yNzQsOSArMjc1LDEwIEBAIHB1YmxpYzoKIAogICAgIC8vIFN0YXJ0
IGEgc3lzdGVtIGRyYWcgYW5kIGRyb3Agb3BlcmF0aW9uLgogICAgIHZvaWQgc3RhcnREcmFnZ2lu
ZygKLSAgICAgICAgY29uc3QgV2ViUG9pbnQmIGV2ZW50UG9zLAogICAgICAgICBjb25zdCBXZWJE
cmFnRGF0YSYgZHJhZ0RhdGEsCi0gICAgICAgIFdlYkRyYWdPcGVyYXRpb25zTWFzayBkcmFnU291
cmNlT3BlcmF0aW9uTWFzayk7CisgICAgICAgIFdlYkRyYWdPcGVyYXRpb25zTWFzayBtYXNrLAor
ICAgICAgICBjb25zdCBXZWJJbWFnZSYgZHJhZ0ltYWdlLAorICAgICAgICBjb25zdCBXZWJQb2lu
dCYgZHJhZ0ltYWdlT2Zmc2V0KTsKIAogICAgIHZvaWQgc3VnZ2VzdGlvbnNQb3B1cERpZEhpZGUo
KQogICAgIHsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>52578</attachid>
            <date>2010-04-05 15:00:39 -0700</date>
            <delta_ts>2010-04-06 12:17:15 -0700</delta_ts>
            <desc>scale image implemented</desc>
            <filename>try2.diff</filename>
            <type>text/plain</type>
            <size>17387</size>
            <attacher name="Evan Stade">estade</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NzA5MykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzQgQEAKKzIwMTAtMDQtMDUgIEV2YW4gU3RhZGUgIDxlc3RhZGVAY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtj
aHJvbWl1bV0gbmVlZCBEcmFnSW1hZ2UgaW1wbGVtZW50YXRpb24KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM1ODExCisKKyAgICAgICAgVXNlIHRoZSBE
cmFnSW1hZ2VSZWYgdGhhdCB0aGUgRHJhZ0NvbnRyb2xsZXIgcGFzc2VzIHRvIHVzLgorCisgICAg
ICAgIFRoaXMgd2FzIHByZXZpb3VzbHkgY29tbWl0dGVkIGJ1dCByb2xsZWQgYmFjayBmb3IgYnJl
YWtpbmcgbGF5b3V0CisgICAgICAgIHRlc3RzLiBUaGUgZml4IGlzIG9uIHRoZSBXZWJLaXQvY2hy
b21pdW0gc2lkZS4KKworICAgICAgICAqIFdlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwOgorICAgICAg
ICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9EcmFnSW1hZ2VD
aHJvbWl1bS5jcHA6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vRHJhZ0lt
YWdlQ2hyb21pdW1NYWMuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmRyYWdJbWFnZVNp
emUpOgorICAgICAgICAoV2ViQ29yZTo6ZGVsZXRlRHJhZ0ltYWdlKToKKyAgICAgICAgKFdlYkNv
cmU6OnNjYWxlRHJhZ0ltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OmRpc3NvbHZlRHJhZ0ltYWdl
VG9GcmFjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVEcmFnSW1hZ2VGcm9tSW1hZ2Up
OgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlRHJhZ0ltYWdlSWNvbkZvckNhY2hlZEltYWdlKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9EcmFnSW1hZ2VDaHJvbWl1bVNraWEuY3BwOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmRyYWdJbWFnZVNpemUpOgorICAgICAgICAoV2ViQ29y
ZTo6ZGVsZXRlRHJhZ0ltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OnNjYWxlRHJhZ0ltYWdlKToK
KyAgICAgICAgKFdlYkNvcmU6OmRpc3NvbHZlRHJhZ0ltYWdlVG9GcmFjdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpjcmVhdGVEcmFnSW1hZ2VGcm9tSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6
Y3JlYXRlRHJhZ0ltYWdlSWNvbkZvckNhY2hlZEltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9j
aHJvbWl1bS9EcmFnSW1hZ2VSZWYuaDoKKwogMjAxMC0wNC0wNSAgQ2hyaXMgRmxlaXphY2ggIDxj
ZmxlaXphY2hAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpJ
bmRleDogV2ViQ29yZS9XZWJDb3JlLmd5cGkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3Jl
Lmd5cGkJKHJldmlzaW9uIDU3MDkzKQorKysgV2ViQ29yZS9XZWJDb3JlLmd5cGkJKHdvcmtpbmcg
Y29weSkKQEAgLTE5NTEsNyArMTk1MSw4IEBACiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21p
dW0vQ3Vyc29yQ2hyb21pdW0uY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9E
cmFnRGF0YUNocm9taXVtLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vRHJh
Z0RhdGFSZWYuaCcsCi0gICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vRHJhZ0ltYWdlQ2hy
b21pdW0uY3BwJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9EcmFnSW1hZ2VDaHJv
bWl1bU1hYy5jcHAnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL0RyYWdJbWFnZUNo
cm9taXVtU2tpYS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL0RyYWdJbWFn
ZVJlZi5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9GaWxlQ2hvb3NlckNocm9t
aXVtLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vRmlsZVN5c3RlbUNocm9t
aXVtLmNwcCcsCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS5neXAvV2ViQ29yZS5neXAJKHJldmlzaW9uIDU3MDkzKQor
KysgV2ViQ29yZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5cAkod29ya2luZyBjb3B5KQpAQCAtMTA2
NCw2ICsxMDY0LDkgQEAKICAgICAgICAgICAgICcuLi9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9z
a2lhL0ltYWdlRGVjb2RlclNraWEuY3BwJywKICAgICAgICAgICAgICcuLi9wbGF0Zm9ybS9pbWFn
ZS1kZWNvZGVycy94Ym0vWEJNSW1hZ2VEZWNvZGVyLmNwcCcsCiAgICAgICAgICAgICAnLi4vcGxh
dGZvcm0vaW1hZ2UtZGVjb2RlcnMveGJtL1hCTUltYWdlRGVjb2Rlci5oJywKKworICAgICAgICAg
ICAgIyBBZ2FpbiwgU2tpYSBpcyBub3QgdXNlZCBvbiBNYWMuCisgICAgICAgICAgICAnLi4vcGxh
dGZvcm0vY2hyb21pdW0vRHJhZ0ltYWdlQ2hyb21pdW1Ta2lhLmNwcCcsCiAgICAgICAgICAgXSwK
ICAgICAgICAgICAnZGlyZWN0X2RlcGVuZGVudF9zZXR0aW5ncyc6IHsKICAgICAgICAgICAgICdp
bmNsdWRlX2RpcnMnOiBbCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0RyYWdJbWFn
ZUNocm9taXVtLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0Ry
YWdJbWFnZUNocm9taXVtLmNwcAkocmV2aXNpb24gNTcwOTMpCisrKyBXZWJDb3JlL3BsYXRmb3Jt
L2Nocm9taXVtL0RyYWdJbWFnZUNocm9taXVtLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw3MyAr
MCwwIEBACi0vKgotICogQ29weXJpZ2h0IChjKSAyMDA4LCAyMDA5LCBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICogCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAq
IG1ldDoKLSAqIAotICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqIGNvcHlyaWdo
dCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIKLSAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAgICAqIE5laXRoZXIgdGhlIG5h
bWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1dG9ycyBt
YXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0g
KiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9u
LgotICogCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwK
LSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJEcmFnSW1hZ2Uu
aCIKLQotI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsK
LQotSW50U2l6ZSBkcmFnSW1hZ2VTaXplKERyYWdJbWFnZVJlZiBpbWFnZSkKLXsKLSAgICBub3RJ
bXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBJbnRTaXplKCk7Ci19Ci0KLXZvaWQgZGVsZXRlRHJh
Z0ltYWdlKERyYWdJbWFnZVJlZiBpbWFnZSkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQot
Ci1EcmFnSW1hZ2VSZWYgc2NhbGVEcmFnSW1hZ2UoRHJhZ0ltYWdlUmVmIGltYWdlLCBGbG9hdFNp
emUgc2NhbGUpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gMDsKLX0KLSAg
ICAKLURyYWdJbWFnZVJlZiBkaXNzb2x2ZURyYWdJbWFnZVRvRnJhY3Rpb24oRHJhZ0ltYWdlUmVm
IGltYWdlLCBmbG9hdCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBpbWFn
ZTsKLX0KLSAgICAgICAgCi1EcmFnSW1hZ2VSZWYgY3JlYXRlRHJhZ0ltYWdlRnJvbUltYWdlKElt
YWdlKiBpbWcpCi17ICAgIAotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIDA7Ci19
Ci0gICAgCi1EcmFnSW1hZ2VSZWYgY3JlYXRlRHJhZ0ltYWdlSWNvbkZvckNhY2hlZEltYWdlKENh
Y2hlZEltYWdlKikKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiAwOyAgICAg
Ci19Ci0gICAgCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBXZWJDb3JlL3BsYXRmb3Jt
L2Nocm9taXVtL0RyYWdJbWFnZUNocm9taXVtTWFjLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L3BsYXRmb3JtL2Nocm9taXVtL0RyYWdJbWFnZUNocm9taXVtTWFjLmNwcAkocmV2aXNpb24gMCkK
KysrIFdlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRHJhZ0ltYWdlQ2hyb21pdW1NYWMuY3BwCShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDczIEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDEwLCBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqIAorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAq
IE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAq
IGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMg
ZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgorICogCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElN
SVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisg
KiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJEcmFnSW1hZ2UuaCIKKworI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworSW50U2l6ZSBkcmFnSW1hZ2VTaXplKERyYWdJbWFnZVJlZiBpbWFn
ZSkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBJbnRTaXplKCk7Cit9CisK
K3ZvaWQgZGVsZXRlRHJhZ0ltYWdlKERyYWdJbWFnZVJlZiBpbWFnZSkKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworfQorCitEcmFnSW1hZ2VSZWYgc2NhbGVEcmFnSW1hZ2UoRHJhZ0ltYWdlUmVm
IGltYWdlLCBGbG9hdFNpemUgc2NhbGUpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBy
ZXR1cm4gMDsKK30KKworRHJhZ0ltYWdlUmVmIGRpc3NvbHZlRHJhZ0ltYWdlVG9GcmFjdGlvbihE
cmFnSW1hZ2VSZWYgaW1hZ2UsIGZsb2F0KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAg
cmV0dXJuIGltYWdlOworfQorCitEcmFnSW1hZ2VSZWYgY3JlYXRlRHJhZ0ltYWdlRnJvbUltYWdl
KEltYWdlKiBpbWcpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMDsKK30K
KworRHJhZ0ltYWdlUmVmIGNyZWF0ZURyYWdJbWFnZUljb25Gb3JDYWNoZWRJbWFnZShDYWNoZWRJ
bWFnZSopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMDsKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9EcmFn
SW1hZ2VDaHJvbWl1bVNraWEuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vY2hy
b21pdW0vRHJhZ0ltYWdlQ2hyb21pdW1Ta2lhLmNwcAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUv
cGxhdGZvcm0vY2hyb21pdW0vRHJhZ0ltYWdlQ2hyb21pdW1Ta2lhLmNwcAkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSw4OCBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAwOCwgMjAwOSwgR29vZ2xl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIAorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlCisgKiBtZXQ6CisgKiAKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisg
KiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0
aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250
cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2
ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4g
cGVybWlzc2lvbi4KKyAqIAorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09Q
WVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
RHJhZ0ltYWdlLmgiCisKKyNpbmNsdWRlICJJbWFnZS5oIgorI2luY2x1ZGUgIk5hdGl2ZUltYWdl
U2tpYS5oIgorI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisjaW5jbHVkZSAiUmVmUHRyLmgi
CisjaW5jbHVkZSAiU2tCaXRtYXAuaCIKKworI2luY2x1ZGUgInNraWEvZXh0L2ltYWdlX29wZXJh
dGlvbnMuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitJbnRTaXplIGRyYWdJbWFnZVNpemUo
RHJhZ0ltYWdlUmVmIGltYWdlKQoreworICAgIGlmICghaW1hZ2UpCisgICAgICAgIHJldHVybiBJ
bnRTaXplKCk7CisKKyAgICByZXR1cm4gSW50U2l6ZShpbWFnZS0+d2lkdGgoKSwgaW1hZ2UtPmhl
aWdodCgpKTsKK30KKwordm9pZCBkZWxldGVEcmFnSW1hZ2UoRHJhZ0ltYWdlUmVmIGltYWdlKQor
eworICAgIGRlbGV0ZSBpbWFnZTsKK30KKworRHJhZ0ltYWdlUmVmIHNjYWxlRHJhZ0ltYWdlKERy
YWdJbWFnZVJlZiBpbWFnZSwgRmxvYXRTaXplIHNjYWxlKQoreworICAgIGlmICghaW1hZ2UpCisg
ICAgICAgIHJldHVybiAwOworCisgICAgaW50IGltYWdlV2lkdGggPSBzY2FsZS53aWR0aCgpICog
aW1hZ2UtPndpZHRoKCk7CisgICAgaW50IGltYWdlSGVpZ2h0ID0gc2NhbGUuaGVpZ2h0KCkgKiBp
bWFnZS0+aGVpZ2h0KCk7CisgICAgRHJhZ0ltYWdlUmVmIHNjYWxlZEltYWdlID0gbmV3IFNrQml0
bWFwKAorICAgICAgICBza2lhOjpJbWFnZU9wZXJhdGlvbnM6OlJlc2l6ZSgqaW1hZ2UsIHNraWE6
OkltYWdlT3BlcmF0aW9uczo6UkVTSVpFX0xBTkNaT1MzLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpbWFnZVdpZHRoLCBpbWFnZUhlaWdodCkpOworICAgIGRlbGV0ZSBp
bWFnZTsKKyAgICByZXR1cm4gc2NhbGVkSW1hZ2U7Cit9CisKK0RyYWdJbWFnZVJlZiBkaXNzb2x2
ZURyYWdJbWFnZVRvRnJhY3Rpb24oRHJhZ0ltYWdlUmVmIGltYWdlLCBmbG9hdCkKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBpbWFnZTsKK30KKworRHJhZ0ltYWdlUmVmIGNy
ZWF0ZURyYWdJbWFnZUZyb21JbWFnZShJbWFnZSogaW1hZ2UpCit7CisgICAgcmV0dXJuIG5ldyBT
a0JpdG1hcCgqaW1hZ2UtPm5hdGl2ZUltYWdlRm9yQ3VycmVudEZyYW1lKCkpOworfQorCitEcmFn
SW1hZ2VSZWYgY3JlYXRlRHJhZ0ltYWdlSWNvbkZvckNhY2hlZEltYWdlKENhY2hlZEltYWdlKikK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwOworfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0RyYWdJbWFnZVJl
Zi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRHJhZ0ltYWdlUmVm
LmgJKHJldmlzaW9uIDU3MDkzKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9EcmFnSW1h
Z2VSZWYuaAkod29ya2luZyBjb3B5KQpAQCAtMjksMTEgKzI5LDE2IEBACiAjaWZuZGVmIERyYWdJ
bWFnZVJlZl9oCiAjZGVmaW5lIERyYWdJbWFnZVJlZl9oCiAKK2NsYXNzIFNrQml0bWFwOworCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLSAgICAvLyBGSVhNRTogTmVlZCB0byBzdXBwb3J0IGltYWdl
IGRyYWctbi1kcm9wLiAgRm9yIG5vdywgd2UganVzdCBhbGxvdyB0aGluZ3MKLSAgICAvLyB0byBj
b21waWxlIGJ5IGRlZmluaW5nIHRoaXMgZHVtbXkgdHlwZS4KLSAgICB0eXBlZGVmIHZvaWQqIERy
YWdJbWFnZVJlZjsKKyNpZiBPUyhEQVJXSU4pCisvLyBGSVhNRTogbm90IGltcGxlbWVudGVkLgor
dHlwZWRlZiB2b2lkKiBEcmFnSW1hZ2VSZWY7CisjZWxzZQordHlwZWRlZiBTa0JpdG1hcCogRHJh
Z0ltYWdlUmVmOworI2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApJbmRleDogV2Vi
S2l0L2Nocm9taXVtL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCShyZXZpc2lvbiA1NzA5MykKKysrIFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHdv
cmtpbmcgY29weSkKQEAgLTEsMyArMSwyNCBAQAorMjAxMC0wNC0wNSAgRXZhbiBTdGFkZSAgPGVz
dGFkZUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgW2Nocm9taXVtXSBuZWVkIERyYWdJbWFnZSBpbXBsZW1lbnRhdGlvbgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzU4MTEKKworICAg
ICAgICBCYXNpYyBpbXBsZW1lbnRhdGlvbiB1c2luZyBTa0JpdG1hcC4gVHJhbnNmb3JtYXRpb25z
IGFyZSBub3Qgc3VwcG9ydGVkCisgICAgICAgIHlldC4gTm8gaW1wbGVtZW50YXRpb24gZm9yIG1h
Yy4KKworICAgICAgICBUaGlzIHdhcyBwcmV2aW91c2x5IGNvbW1pdHRlZCBidXQgcm9sbGVkIGJh
Y2sgZm9yIGJyZWFraW5nIGxheW91dAorICAgICAgICB0ZXN0cy4KKworICAgICAgICAqIHB1Ymxp
Yy9XZWJWaWV3Q2xpZW50Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdDbGllbnQ6OnN0YXJ0
RHJhZ2dpbmcpOgorICAgICAgICAqIHNyYy9EcmFnQ2xpZW50SW1wbC5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OkRyYWdDbGllbnRJbXBsOjpzdGFydERyYWcpOiBuZXc6IGNoZWNrIGZvciBudWxsIGRy
YWdJbWFnZS4KKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJWaWV3SW1wbDo6c3RhcnREcmFnZ2luZyk6CisgICAgICAgICogc3JjL1dlYlZpZXdJbXBs
Lmg6CisKIDIwMTAtMDQtMDQgIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgTm90IHJldmlld2VkLiBSb2xsaW5nIG91dCBjaHJvbWl1bSBjaGFuZ2VzIHI1
NzAyOCBhbmQgcjU3MDMyIApJbmRleDogV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xp
ZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xpZW50
LmgJKHJldmlzaW9uIDU3MDkzKQorKysgV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xp
ZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ4LDYgKzQ4LDcgQEAgY2xhc3MgV2ViRHJhZ0RhdGE7
CiBjbGFzcyBXZWJGaWxlQ2hvb3NlckNvbXBsZXRpb247CiBjbGFzcyBXZWJGcmFtZTsKIGNsYXNz
IFdlYkdlb2xvY2F0aW9uU2VydmljZTsKK2NsYXNzIFdlYkltYWdlOwogY2xhc3MgV2ViTm9kZTsK
IGNsYXNzIFdlYk5vdGlmaWNhdGlvblByZXNlbnRlcjsKIGNsYXNzIFdlYlJhbmdlOwpAQCAtMjI0
LDcgKzIyNSw3IEBAIHB1YmxpYzoKIAogICAgIC8vIENhbGxlZCB3aGVuIGEgZHJhZy1uLWRyb3Ag
b3BlcmF0aW9uIHNob3VsZCBiZWdpbi4KICAgICB2aXJ0dWFsIHZvaWQgc3RhcnREcmFnZ2luZygK
LSAgICAgICAgY29uc3QgV2ViUG9pbnQmIGZyb20sIGNvbnN0IFdlYkRyYWdEYXRhJiwgV2ViRHJh
Z09wZXJhdGlvbnNNYXNrKSB7IH0KKyAgICAgICAgY29uc3QgV2ViRHJhZ0RhdGEmLCBXZWJEcmFn
T3BlcmF0aW9uc01hc2ssIGNvbnN0IFdlYkltYWdlJiwgY29uc3QgV2ViUG9pbnQmKSB7IH0KIAog
ICAgIC8vIENhbGxlZCB0byBkZXRlcm1pbmUgaWYgZHJhZy1uLWRyb3Agb3BlcmF0aW9ucyBtYXkg
aW5pdGlhdGUgYSBwYWdlCiAgICAgLy8gbmF2aWdhdGlvbi4KSW5kZXg6IFdlYktpdC9jaHJvbWl1
bS9zcmMvRHJhZ0NsaWVudEltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9z
cmMvRHJhZ0NsaWVudEltcGwuY3BwCShyZXZpc2lvbiA1NzA5MykKKysrIFdlYktpdC9jaHJvbWl1
bS9zcmMvRHJhZ0NsaWVudEltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCwxMSArMzAsMTQg
QEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkRyYWdDbGllbnRJbXBsLmgiCi0K
KyNpbmNsdWRlICJEcmFnSW1hZ2VSZWYuaCIKICNpbmNsdWRlICJDaHJvbWl1bURhdGFPYmplY3Qu
aCIKICNpbmNsdWRlICJDbGlwYm9hcmRDaHJvbWl1bS5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCisj
aW5jbHVkZSAiTmF0aXZlSW1hZ2VTa2lhLmgiCisjaW5jbHVkZSAiV2ViQ29tbW9uLmgiCiAjaW5j
bHVkZSAiV2ViRHJhZ0RhdGEuaCIKKyNpbmNsdWRlICJXZWJJbWFnZS5oIgogI2luY2x1ZGUgIldl
YlZpZXdDbGllbnQuaCIKICNpbmNsdWRlICJXZWJWaWV3SW1wbC5oIgogCkBAIC04MSw4ICs4NCwx
OSBAQCB2b2lkIERyYWdDbGllbnRJbXBsOjpzdGFydERyYWcoRHJhZ0ltYWdlCiAKICAgICBEcmFn
T3BlcmF0aW9uIGRyYWdPcGVyYXRpb25NYXNrID0gY2xpcGJvYXJkLT5zb3VyY2VPcGVyYXRpb24o
KTsKIAorICAgIEludFNpemUgb2Zmc2V0U2l6ZShldmVudFBvcyAtIGRyYWdJbWFnZU9yaWdpbik7
CisgICAgV2ViUG9pbnQgb2Zmc2V0UG9pbnQob2Zmc2V0U2l6ZS53aWR0aCgpLCBvZmZzZXRTaXpl
LmhlaWdodCgpKTsKKyNpZiBXRUJLSVRfVVNJTkdfU0tJQQorICAgIG1fd2ViVmlldy0+c3RhcnRE
cmFnZ2luZygKKyAgICAgICAgZHJhZ0RhdGEsIHN0YXRpY19jYXN0PFdlYkRyYWdPcGVyYXRpb25z
TWFzaz4oZHJhZ09wZXJhdGlvbk1hc2spLAorICAgICAgICBkcmFnSW1hZ2UgPyBXZWJJbWFnZSgq
ZHJhZ0ltYWdlKSA6IFdlYkltYWdlKCksIG9mZnNldFBvaW50KTsKKyNlbHNlCisgICAgLy8gRklY
TUU6IFdoZW4gRHJhZ0ltYWdlUmVmIGlzIGltcGxlbWVudGVkIGZvciBDRywgd2UgY2FuIHByb2Jh
Ymx5IGp1c3QgcmVtb3ZlCisgICAgLy8gdGhpcyAjaWYgZm9yay4gRm9yIG5vdywgcGFzcyBhbiBl
bXB0eSBpbWFnZS4KICAgICBtX3dlYlZpZXctPnN0YXJ0RHJhZ2dpbmcoCi0gICAgICAgIGV2ZW50
UG9zLCBkcmFnRGF0YSwgc3RhdGljX2Nhc3Q8V2ViRHJhZ09wZXJhdGlvbnNNYXNrPihkcmFnT3Bl
cmF0aW9uTWFzaykpOworICAgICAgICBkcmFnRGF0YSwgc3RhdGljX2Nhc3Q8V2ViRHJhZ09wZXJh
dGlvbnNNYXNrPihkcmFnT3BlcmF0aW9uTWFzayksCisgICAgICAgIFdlYkltYWdlKCksIFdlYlBv
aW50KCkpOworI2VuZGlmCiB9CiAKIERyYWdJbWFnZVJlZiBEcmFnQ2xpZW50SW1wbDo6Y3JlYXRl
RHJhZ0ltYWdlRm9yTGluayhLVVJMJiwgY29uc3QgU3RyaW5nJiBsYWJlbCwgRnJhbWUqKQpJbmRl
eDogV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAJKHJldmlzaW9uIDU3MDkzKQorKysgV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg3LDYg
Kzg3LDcgQEAKICNpbmNsdWRlICJXZWJEZXZUb29sc0FnZW50UHJpdmF0ZS5oIgogI2luY2x1ZGUg
IldlYkRyYWdEYXRhLmgiCiAjaW5jbHVkZSAiV2ViRnJhbWVJbXBsLmgiCisjaW5jbHVkZSAiV2Vi
SW1hZ2UuaCIKICNpbmNsdWRlICJXZWJJbnB1dEV2ZW50LmgiCiAjaW5jbHVkZSAiV2ViSW5wdXRF
dmVudENvbnZlcnNpb24uaCIKICNpbmNsdWRlICJXZWJNZWRpYVBsYXllckFjdGlvbi5oIgpAQCAt
MTkzMiwxNSArMTkzMywxNiBAQCBib29sIFdlYlZpZXdJbXBsOjpuYXZpZ2F0aW9uUG9saWN5RnJv
bU1vCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgV2ViVmlld0ltcGw6OnN0YXJ0RHJhZ2dp
bmcoY29uc3QgV2ViUG9pbnQmIGV2ZW50UG9zLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjb25zdCBXZWJEcmFnRGF0YSYgZHJhZ0RhdGEsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFdlYkRyYWdPcGVyYXRpb25zTWFzayBtYXNrKQordm9pZCBXZWJWaWV3SW1wbDo6
c3RhcnREcmFnZ2luZyhjb25zdCBXZWJEcmFnRGF0YSYgZHJhZ0RhdGEsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFdlYkRyYWdPcGVyYXRpb25zTWFzayBtYXNrLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBXZWJJbWFnZSYgZHJhZ0ltYWdlLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBXZWJQb2ludCYgZHJhZ0ltYWdlT2Zmc2V0
KQogewogICAgIGlmICghbV9jbGllbnQpCiAgICAgICAgIHJldHVybjsKICAgICBBU1NFUlQoIW1f
ZG9pbmdEcmFnQW5kRHJvcCk7CiAgICAgbV9kb2luZ0RyYWdBbmREcm9wID0gdHJ1ZTsKLSAgICBt
X2NsaWVudC0+c3RhcnREcmFnZ2luZyhldmVudFBvcywgZHJhZ0RhdGEsIG1hc2spOworICAgIG1f
Y2xpZW50LT5zdGFydERyYWdnaW5nKGRyYWdEYXRhLCBtYXNrLCBkcmFnSW1hZ2UsIGRyYWdJbWFn
ZU9mZnNldCk7CiB9CiAKIHZvaWQgV2ViVmlld0ltcGw6OnNldEN1cnJlbnRIaXN0b3J5SXRlbShI
aXN0b3J5SXRlbSogaXRlbSkKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgJKHJldmlz
aW9uIDU3MDkzKQorKysgV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCSh3b3JraW5n
IGNvcHkpCkBAIC03NCw2ICs3NCw3IEBAIGNsYXNzIFN1Z2dlc3Rpb25zUG9wdXBNZW51Q2xpZW50
OwogY2xhc3MgV2ViQWNjZXNzaWJpbGl0eU9iamVjdDsKIGNsYXNzIFdlYkRldlRvb2xzQWdlbnRQ
cml2YXRlOwogY2xhc3MgV2ViRnJhbWVJbXBsOworY2xhc3MgV2ViSW1hZ2U7CiBjbGFzcyBXZWJL
ZXlib2FyZEV2ZW50OwogY2xhc3MgV2ViTW91c2VFdmVudDsKIGNsYXNzIFdlYk1vdXNlV2hlZWxF
dmVudDsKQEAgLTI3NCw5ICsyNzUsMTAgQEAgcHVibGljOgogCiAgICAgLy8gU3RhcnQgYSBzeXN0
ZW0gZHJhZyBhbmQgZHJvcCBvcGVyYXRpb24uCiAgICAgdm9pZCBzdGFydERyYWdnaW5nKAotICAg
ICAgICBjb25zdCBXZWJQb2ludCYgZXZlbnRQb3MsCiAgICAgICAgIGNvbnN0IFdlYkRyYWdEYXRh
JiBkcmFnRGF0YSwKLSAgICAgICAgV2ViRHJhZ09wZXJhdGlvbnNNYXNrIGRyYWdTb3VyY2VPcGVy
YXRpb25NYXNrKTsKKyAgICAgICAgV2ViRHJhZ09wZXJhdGlvbnNNYXNrIG1hc2ssCisgICAgICAg
IGNvbnN0IFdlYkltYWdlJiBkcmFnSW1hZ2UsCisgICAgICAgIGNvbnN0IFdlYlBvaW50JiBkcmFn
SW1hZ2VPZmZzZXQpOwogCiAgICAgdm9pZCBzdWdnZXN0aW9uc1BvcHVwRGlkSGlkZSgpCiAgICAg
ewo=
</data>

          </attachment>
      

    </bug>

</bugzilla>