<?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>91535</bug_id>
          
          <creation_ts>2012-07-17 13:32:19 -0700</creation_ts>
          <short_desc>[Chromium] Out of Memory is observed when a large object is passed to a Web Worker</short_desc>
          <delta_ts>2012-07-20 15:56:44 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dmitry Titov">dimich</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>eric</cc>
    
    <cc>haraken</cc>
    
    <cc>japhet</cc>
    
    <cc>jochen</cc>
    
    <cc>levin</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>671534</commentid>
    <comment_count>0</comment_count>
    <who name="Dmitry Titov">dimich</who>
    <bug_when>2012-07-17 13:32:19 -0700</bug_when>
    <thetext>When a large object (like an ImageData) is serialized and passed into Web Worker, the MessageEvent that is created for the worker context is small (in V8 mind) but it owns a SerializedScriptValue which can be large. Since V8 does not know about real size of the allocated memeory, it is not scheduling GC for quite a while which can cause OOM in the renderer. 

See http://code.google.com/p/chromium/issues/detail?id=132769 for actual repro case.

The fix is to inform V8 about the actual size of the memory owned by the MessageEvent in that case. Patch is coming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>671612</commentid>
    <comment_count>1</comment_count>
      <attachid>152836</attachid>
    <who name="Dmitry Titov">dimich</who>
    <bug_when>2012-07-17 14:42:00 -0700</bug_when>
    <thetext>Created attachment 152836
Proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>671615</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-17 14:45:14 -0700</bug_when>
    <thetext>Attachment 152836 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1
Source/WebCore/bindings/v8/SerializedScriptValue.cpp:2328:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Source/WebCore/bindings/v8/SerializedScriptValue.cpp:2335:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 2 in 4 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>671620</commentid>
    <comment_count>3</comment_count>
      <attachid>152837</attachid>
    <who name="Dmitry Titov">dimich</who>
    <bug_when>2012-07-17 14:51:30 -0700</bug_when>
    <thetext>Created attachment 152837
Fixed style error.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>671631</commentid>
    <comment_count>4</comment_count>
      <attachid>152837</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2012-07-17 15:09:16 -0700</bug_when>
    <thetext>Comment on attachment 152837
Fixed style error.

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

&gt; Source/WebCore/ChangeLog:8
&gt; +        Additional information of the change such as approach, rationale. Please add per-function descriptions below (OOPS!).

Please remove.

&gt; Source/WebCore/bindings/v8/SerializedScriptValue.cpp:2332
&gt; +    if ((m_externallyAllocatedMemory = m_data.length()))

Whenever I see &quot;if (a=b)&quot; my bug sense goes off. I know you put in the double (( to show it as intention, but it feels like it would be clearer just to do it on another line.

Also there is no need for the &quot;if&quot; really.

m_externallyAllocatedMemory = m_data.length();
v8::V8::AdjustAmountOfExternalAllocatedMemory(m_externallyAllocatedMemory);

&gt; Source/WebCore/bindings/v8/SerializedScriptValue.cpp:2338
&gt; +    if (m_externallyAllocatedMemory)

No need for if here.

&gt; Source/WebCore/dom/MessageEvent.cpp:77
&gt; +    if (m_dataAsSerializedScriptValue)

Can we do this any other place? So that everyone who uses SerializedScriptValue will get this for free without having to know to do this.

If we do need to do something like this, is it possible to add asserts in key places (methods?) in SerializedScriptValue to make sure that this function is called when appropriate?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>671875</commentid>
    <comment_count>5</comment_count>
      <attachid>152901</attachid>
    <who name="Dmitry Titov">dimich</who>
    <bug_when>2012-07-17 19:05:23 -0700</bug_when>
    <thetext>Created attachment 152901
Updated per cr comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>671880</commentid>
    <comment_count>6</comment_count>
    <who name="Dmitry Titov">dimich</who>
    <bug_when>2012-07-17 19:10:26 -0700</bug_when>
    <thetext>(In reply to comment #4)

Fixed everything, except:

&gt; 
&gt; &gt; Source/WebCore/dom/MessageEvent.cpp:77
&gt; &gt; +    if (m_dataAsSerializedScriptValue)
&gt; 
&gt; Can we do this any other place? So that everyone who uses SerializedScriptValue will get this for free without having to know to do this.
&gt; 
&gt; If we do need to do something like this, is it possible to add asserts in key places (methods?) in SerializedScriptValue to make sure that this function is called when appropriate?

I thought about it and don&apos;t see a better solution... The SerializedScriptValue is created on the source thread, then passed through to the Worker - and then finally a MessageEvent is created that has actual JS wrapper and is under GC lifetime control... Also, only at that last moment SSV is in the Worker&apos;s V8 context, so the memory adjustment happens for the right heap.

I don&apos;t like using USE(V8) things, but we don&apos;t have currently a v8-specific way to customize constructing MessageEvent. The code under this ifdef is tiny, so it seems it isn&apos;t worth to create one...

I&apos;d be glad to receive better suggestions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>671883</commentid>
    <comment_count>7</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2012-07-17 19:18:29 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (In reply to comment #4)
&gt; 
&gt; Fixed everything, except:
&gt; 

&gt; &gt; If we do need to do something like this, is it possible to add asserts in key places (methods?) in SerializedScriptValue to make sure that this function is called when appropriate?

What about adding an assert in SerializedScriptValue::deserialize?

Something like this:
  // Verify that registerMemoryAllocatedWithCurrentScriptContext was called.
  ASSERT(m_externallyAllocatedMemory || !m_data.length());</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>671885</commentid>
    <comment_count>8</comment_count>
      <attachid>152901</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2012-07-17 19:19:30 -0700</bug_when>
    <thetext>Comment on attachment 152901
Updated per cr comments

Please consider the assert.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>673070</commentid>
    <comment_count>9</comment_count>
    <who name="Dmitry Titov">dimich</who>
    <bug_when>2012-07-18 18:56:19 -0700</bug_when>
    <thetext>I looked at the assert and tried couple of variants... It seems to satisfy it, too many cases unrelated to passing SerializedScriptData will have to be modified and cluttered, w/o obvious benefit and in some cases incorrectly adding the memory pressure. The SerializedScriptValue is used in things like History for example...

So left it w/o assert :-(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>673102</commentid>
    <comment_count>10</comment_count>
      <attachid>152901</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-18 19:43:57 -0700</bug_when>
    <thetext>Comment on attachment 152901
Updated per cr comments

Rejecting attachment 152901 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 2

Last 500 characters of output:
Kit/chromium/third_party/yasm/source/patched-yasm --revision 134927 --non-interactive --force --accept theirs-conflict --ignore-externals&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;
48&gt;At revision 134927.

________ running &apos;/usr/bin/python tools/clang/scripts/update.py --mac-only&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;

________ running &apos;/usr/bin/python gyp_webkit&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;
Updating webkit projects from gyp files...

Full output: http://queues.webkit.org/results/13273719</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>673151</commentid>
    <comment_count>11</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-07-18 21:56:49 -0700</bug_when>
    <thetext>    The following ChangeLog files contain OOPS:

        trunk/Source/WebCore/ChangeLog

    Please don&apos;t ever say &quot;OOPS&quot; in a ChangeLog file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>673152</commentid>
    <comment_count>12</comment_count>
      <attachid>152901</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-07-18 21:57:13 -0700</bug_when>
    <thetext>Comment on attachment 152901
Updated per cr comments

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

&gt; Source/WebCore/ChangeLog:8
&gt; +        Additional information of the change such as approach, rationale. Please add per-function descriptions below (OOPS!).

This line is causing the trouble.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>673830</commentid>
    <comment_count>13</comment_count>
      <attachid>153328</attachid>
    <who name="Dmitry Titov">dimich</who>
    <bug_when>2012-07-19 12:57:31 -0700</bug_when>
    <thetext>Created attachment 153328
patch for landing

oops indeed. Removed the OOPS, re-committing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>673834</commentid>
    <comment_count>14</comment_count>
      <attachid>153328</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-19 13:00:38 -0700</bug_when>
    <thetext>Comment on attachment 153328
patch for landing

Rejecting attachment 153328 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 1

ERROR: /mnt/git/webkit-commit-queue/Source/WebCore/ChangeLog neither lists a valid reviewer nor contains the string &quot;Unreviewed&quot; or &quot;Rubber stamp&quot; (case insensitive).

Full output: http://queues.webkit.org/results/13303043</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>673942</commentid>
    <comment_count>15</comment_count>
    <who name="Dmitry Titov">dimich</who>
    <bug_when>2012-07-19 14:56:23 -0700</bug_when>
    <thetext>Landed manually: http://trac.webkit.org/changeset/123149</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>674054</commentid>
    <comment_count>16</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-07-19 16:41:26 -0700</bug_when>
    <thetext>Is it possible that this change caused page_cycler_indexeddb to start failing?

http://build.chromium.org/p/chromium.webkit/waterfall?builder=Linux+Perf&amp;builder=Win7+Perf

http://build.chromium.org/p/chromium.webkit/builders/Win7%20Perf/builds/561
http://build.chromium.org/p/chromium.webkit/builders/Linux%20Perf/builds/15723

I don&apos;t know much about this test, but this change seems the mostly likely since the other changes around it are Qt specific.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>674871</commentid>
    <comment_count>17</comment_count>
    <who name="Dmitry Titov">dimich</who>
    <bug_when>2012-07-20 12:51:01 -0700</bug_when>
    <thetext>Reverted in: http://trac.webkit.org/changeset/123166</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>675025</commentid>
    <comment_count>18</comment_count>
      <attachid>153610</attachid>
    <who name="Dmitry Titov">dimich</who>
    <bug_when>2012-07-20 15:43:40 -0700</bug_when>
    <thetext>Created attachment 153610
Fixed failure on page-cycler</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>675028</commentid>
    <comment_count>19</comment_count>
      <attachid>153611</attachid>
    <who name="Dmitry Titov">dimich</who>
    <bug_when>2012-07-20 15:49:35 -0700</bug_when>
    <thetext>Created attachment 153611
Fixed failure on page-cycler</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>675031</commentid>
    <comment_count>20</comment_count>
    <who name="Dmitry Titov">dimich</who>
    <bug_when>2012-07-20 15:56:44 -0700</bug_when>
    <thetext>Landed: http://trac.webkit.org/changeset/123269</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>152836</attachid>
            <date>2012-07-17 14:42:00 -0700</date>
            <delta_ts>2012-07-17 14:51:30 -0700</delta_ts>
            <desc>Proposed patch.</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>5805</size>
            <attacher name="Dmitry Titov">dimich</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA0NDFhYTk2Li5iOWQ2NTdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjgg
QEAKKzIwMTItMDctMTcgIERtaXRyeSBUaXRvdiAgPGRpbWljaEBjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgW0Nocm9taXVtXSBPdXQgb2YgTWVtb3J5IGlzIG9ic2VydmVkIHdoZW4gYSBsYXJnZSBv
YmplY3QgaXMgcGFzc2VkIHRvIGEgV2ViIFdvcmtlci4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkxNTM1LgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGl0aW9uYWwgaW5mb3JtYXRpb24gb2YgdGhlIGNo
YW5nZSBzdWNoIGFzIGFwcHJvYWNoLCByYXRpb25hbGUuIFBsZWFzZSBhZGQgcGVyLWZ1bmN0aW9u
IGRlc2NyaXB0aW9ucyBiZWxvdyAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBiZWNh
dXNlIG9mIG5vIG5ldyBiZWhhdmlvciBhbmQgbGFjayBvZiBtZWNoYW5pc20gdG8gbW9uaXRvciB1
c2VkIG1lbW9yeS4KKworICAgICAgICAqIGJpbmRpbmdzL3Y4L1NlcmlhbGl6ZWRTY3JpcHRWYWx1
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU6OlNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU6
OnJlZ2lzdGVyTWVtb3J5QWxsb2NhdGVkV2l0aEN1cnJlbnRTY3JpcHRDb250ZXh0KToKKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlOjp+
U2VyaWFsaXplZFNjcmlwdFZhbHVlKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9TZXJpYWxpemVk
U2NyaXB0VmFsdWUuaDoKKyAgICAgICAgKFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSk6CisgICAgICAg
IEFkZGVkIGEgbWV0aG9kIHRvIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSB0byBhZGQgbWVtb3J5IHBy
ZXNzdXJlIG9uIEdDIHByb3BvcnRpb25hbCB0byB0aGUgc2l6ZSBvZiBtZW1vcnkgYWxsb2NhdGVk
IGluIHNlcmlhbGl6ZWQgZGF0YS4KKyAgICAgICAgCisgICAgICAgICogZG9tL01lc3NhZ2VFdmVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZXNzYWdlRXZlbnQ6Ok1lc3NhZ2VFdmVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZXNzYWdlRXZlbnQ6OmluaXRNZXNzYWdlRXZlbnQpOgorICAgICAg
ICBDYWxsIHRoZSBuZXcgbWV0aG9kIG9mIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSBkdXJpbmcgY3Jl
YXRpb24gb2YgTWVzc2FnZUV2ZW50IChwcmVzdW1hYmx5IGluIHRoZSB0aHJlYWQgd2hpY2ggY29u
dGFpbnMgdGhlIHJpZ2h0IFY4IGNvbnRleHQpLgorCiAyMDEyLTA3LTEzICBQZXRlciBCZXZlcmxv
byAgPHBldGVyQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbQ2hyb21pdW1dIE1ha2UgdGhlIHY4
IGkxOG4gQVBJIGRlcGVuZGVuY3kgY29uZGl0aW9uYWwgZm9yIEFuZHJvaWQsIGRpc2FibGUgc3Ry
aWN0IGFsaWFzaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TZXJp
YWxpemVkU2NyaXB0VmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2VyaWFs
aXplZFNjcmlwdFZhbHVlLmNwcAppbmRleCA2MTYxMDczLi40ZTQ2YzE5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKQEAg
LTIyMDEsNiArMjIwMSw3IEBAIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBTZXJp
YWxpemVkU2NyaXB0VmFsdWU6OnJlbGVhc2UoKQogfQogCiBTZXJpYWxpemVkU2NyaXB0VmFsdWU6
OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSgpCisgICAgOiBtX2V4dGVybmFsbHlBbGxvY2F0ZWRNZW1v
cnkoMCkKIHsKIH0KIApAQCAtMjI1Miw2ICsyMjUzLDcgQEAgU2VyaWFsaXplZFNjcmlwdFZhbHVl
OjpTZXJpYWxpemVkU2NyaXB0VmFsdWUodjg6OkhhbmRsZTx2ODo6VmFsdWU+IHZhbHVlLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWVzc2FnZVBvcnRBcnJh
eSogbWVzc2FnZVBvcnRzLCBBcnJheUJ1ZmZlckFycmF5KiBhcnJheUJ1ZmZlcnMsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sJiBkaWRUaHJvdywKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHY4OjpJc29sYXRlKiBp
c29sYXRlKQorICAgIDogbV9leHRlcm5hbGx5QWxsb2NhdGVkTWVtb3J5KDApCiB7CiAgICAgZGlk
VGhyb3cgPSBmYWxzZTsKICAgICBXcml0ZXIgd3JpdGVyKGlzb2xhdGUpOwpAQCAtMjI5OCw2ICsy
MzAwLDcgQEAgU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWUodjg6
OkhhbmRsZTx2ODo6VmFsdWU+IHZhbHVlLAogfQogCiBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OlNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZShjb25zdCBTdHJpbmcmIHdpcmVEYXRhKQorICAgIDogbV9leHRl
cm5hbGx5QWxsb2NhdGVkTWVtb3J5KDApCiB7CiAgICAgbV9kYXRhID0gd2lyZURhdGEuaXNvbGF0
ZWRDb3B5KCk7CiB9CkBAIC0yMzIyLDQgKzIzMjUsMTYgQEAgU2NyaXB0VmFsdWUgU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlOjpkZXNlcmlhbGl6ZUZvckluc3BlY3RvcihTY3JpcHRTdGF0ZSogc2NyaXB0
U3QKIH0KICNlbmRpZgogCit2b2lkIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6cmVnaXN0ZXJNZW1v
cnlBbGxvY2F0ZWRXaXRoQ3VycmVudFNjcmlwdENvbnRleHQoKSB7CisgICAgaWYgKG1fZXh0ZXJu
YWxseUFsbG9jYXRlZE1lbW9yeSkKKyAgICAgICAgcmV0dXJuOworICAgIGlmICgobV9leHRlcm5h
bGx5QWxsb2NhdGVkTWVtb3J5ID0gbV9kYXRhLmxlbmd0aCgpKSkKKyAgICAgICAgdjg6OlY4OjpB
ZGp1c3RBbW91bnRPZkV4dGVybmFsQWxsb2NhdGVkTWVtb3J5KG1fZXh0ZXJuYWxseUFsbG9jYXRl
ZE1lbW9yeSk7Cit9CisKK1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6flNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZSgpIHsKKyAgICBpZiAobV9leHRlcm5hbGx5QWxsb2NhdGVkTWVtb3J5KQorICAgICAgICB2
ODo6Vjg6OkFkanVzdEFtb3VudE9mRXh0ZXJuYWxBbGxvY2F0ZWRNZW1vcnkoLW1fZXh0ZXJuYWxs
eUFsbG9jYXRlZE1lbW9yeSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgKaW5kZXgg
ODRkMTIyNC4uMzQyMDQzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvdjgv
U2VyaWFsaXplZFNjcmlwdFZhbHVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvdjgv
U2VyaWFsaXplZFNjcmlwdFZhbHVlLmgKQEAgLTQ1LDYgKzQ1LDggQEAgdHlwZWRlZiBWZWN0b3I8
UmVmUHRyPFdURjo6QXJyYXlCdWZmZXI+LCAxPiBBcnJheUJ1ZmZlckFycmF5OwogCiBjbGFzcyBT
ZXJpYWxpemVkU2NyaXB0VmFsdWUgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8U2VyaWFs
aXplZFNjcmlwdFZhbHVlPiB7CiBwdWJsaWM6CisgICAgdmlydHVhbCB+U2VyaWFsaXplZFNjcmlw
dFZhbHVlKCk7CisKICAgICAvLyBJZiBhIHNlcmlhbGl6YXRpb24gZXJyb3Igb2NjdXJzIChlLmcu
LCBjeWNsaWMgaW5wdXQgdmFsdWUpIHRoaXMKICAgICAvLyBmdW5jdGlvbiByZXR1cm5zIGFuIGVt
cHR5IHJlcHJlc2VudGF0aW9uLCBzY2hlZHVsZXMgYSBWOCBleGNlcHRpb24gdG8KICAgICAvLyBi
ZSB0aHJvd24gdXNpbmcgdjg6OlRocm93RXhjZXB0aW9uKCksIGFuZCBzZXRzIHxkaWRUaHJvd3wu
IEluIHRoaXMgY2FzZQpAQCAtNzcsNiArNzksMTIgQEAgcHVibGljOgogCiAgICAgY29uc3QgVmVj
dG9yPFN0cmluZz4mIGJsb2JVUkxzKCkgY29uc3QgeyByZXR1cm4gbV9ibG9iVVJMczsgfQogCisg
ICAgLy8gSW5mb3JtcyB0aGUgVjggYWJvdXQgZXh0ZXJuYWwgbWVtb3J5IGFsbG9jYXRlZCBhbmQg
b3duZWQgYnkgdGhpcyBvYmplY3QuIExhcmdlIHZhbHVlcyBzaG91bGQgY29udHJpYnV0ZQorICAg
IC8vIHRvIEdDIGNvdW50ZXJzIHRvIGV2ZW50dWFsbHkgdHJpZ2dlciBhIEdDLCBvdGhlcndpc2Ug
Zmxvb2Qgb2YgcG9zdE1lc3NhZ2UoKSBjYW4gY2F1c2UgT09NLgorICAgIC8vIE9rIHRvIGludm9r
ZSBtdWx0aXBsZSB0aW1lcyAob25seSBhZGRzIG1lbW9yeSBvbmNlKS4KKyAgICAvLyBUaGUgbWVt
b3J5IHJlZ2lzdHJhdGlvbiBpcyByZXZva2VkIGF1dG9tYXRpY2FsbHkgaW4gZGVzdHJ1Y3Rvci4K
KyAgICB2b2lkIHJlZ2lzdGVyTWVtb3J5QWxsb2NhdGVkV2l0aEN1cnJlbnRTY3JpcHRDb250ZXh0
KCk7CisKIHByaXZhdGU6CiAgICAgZW51bSBTdHJpbmdEYXRhTW9kZSB7CiAgICAgICAgIFN0cmlu
Z1ZhbHVlLApAQCAtOTMsNiArMTAxLDcgQEAgcHJpdmF0ZToKICAgICBTdHJpbmcgbV9kYXRhOwog
ICAgIE93blB0cjxBcnJheUJ1ZmZlckNvbnRlbnRzQXJyYXk+IG1fYXJyYXlCdWZmZXJDb250ZW50
c0FycmF5OwogICAgIFZlY3RvcjxTdHJpbmc+IG1fYmxvYlVSTHM7CisgICAgdW5zaWduZWQgbV9l
eHRlcm5hbGx5QWxsb2NhdGVkTWVtb3J5OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VFdmVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vTWVzc2FnZUV2ZW50LmNwcAppbmRleCAxMjUyZDJjLi4yNGI1MmRkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTWVzc2FnZUV2ZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vTWVzc2FnZUV2ZW50LmNwcApAQCAtNzMsNiArNzMsMTAgQEAgTWVzc2FnZUV2
ZW50OjpNZXNzYWdlRXZlbnQoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IGRhdGEs
IGNvbnN0IFN0cmluZyYKICAgICAsIG1fc291cmNlKHNvdXJjZSkKICAgICAsIG1fcG9ydHMocG9y
dHMpCiB7CisjaWYgVVNFKFY4KQorICAgIGlmIChtX2RhdGFBc1NlcmlhbGl6ZWRTY3JpcHRWYWx1
ZSkKKyAgICAgICAgbV9kYXRhQXNTZXJpYWxpemVkU2NyaXB0VmFsdWUtPnJlZ2lzdGVyTWVtb3J5
QWxsb2NhdGVkV2l0aEN1cnJlbnRTY3JpcHRDb250ZXh0KCk7CisjZW5kaWYKIH0KIAogTWVzc2Fn
ZUV2ZW50OjpNZXNzYWdlRXZlbnQoY29uc3QgU3RyaW5nJiBkYXRhKQpAQCAtMTM0LDYgKzEzOCwx
MSBAQCB2b2lkIE1lc3NhZ2VFdmVudDo6aW5pdE1lc3NhZ2VFdmVudChjb25zdCBBdG9taWNTdHJp
bmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBibwogICAgIG1fbGFzdEV2ZW50SWQgPSBsYXN0RXZl
bnRJZDsKICAgICBtX3NvdXJjZSA9IHNvdXJjZTsKICAgICBtX3BvcnRzID0gcG9ydHM7CisKKyNp
ZiBVU0UoVjgpCisgICAgaWYgKG1fZGF0YUFzU2VyaWFsaXplZFNjcmlwdFZhbHVlKQorICAgICAg
ICBtX2RhdGFBc1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS0+cmVnaXN0ZXJNZW1vcnlBbGxvY2F0ZWRX
aXRoQ3VycmVudFNjcmlwdENvbnRleHQoKTsKKyNlbmRpZgogfQogCiAvLyBGSVhNRTogUmVtb3Zl
IHRoaXMgd2hlbiB3ZSBoYXZlIGN1c3RvbSBPYmpDIGJpbmRpbmcgc3VwcG9ydC4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>152837</attachid>
            <date>2012-07-17 14:51:30 -0700</date>
            <delta_ts>2012-07-17 19:05:23 -0700</delta_ts>
            <desc>Fixed style error.</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>5807</size>
            <attacher name="Dmitry Titov">dimich</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA0NDFhYTk2Li5iOWQ2NTdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjgg
QEAKKzIwMTItMDctMTcgIERtaXRyeSBUaXRvdiAgPGRpbWljaEBjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgW0Nocm9taXVtXSBPdXQgb2YgTWVtb3J5IGlzIG9ic2VydmVkIHdoZW4gYSBsYXJnZSBv
YmplY3QgaXMgcGFzc2VkIHRvIGEgV2ViIFdvcmtlci4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkxNTM1LgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGl0aW9uYWwgaW5mb3JtYXRpb24gb2YgdGhlIGNo
YW5nZSBzdWNoIGFzIGFwcHJvYWNoLCByYXRpb25hbGUuIFBsZWFzZSBhZGQgcGVyLWZ1bmN0aW9u
IGRlc2NyaXB0aW9ucyBiZWxvdyAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBiZWNh
dXNlIG9mIG5vIG5ldyBiZWhhdmlvciBhbmQgbGFjayBvZiBtZWNoYW5pc20gdG8gbW9uaXRvciB1
c2VkIG1lbW9yeS4KKworICAgICAgICAqIGJpbmRpbmdzL3Y4L1NlcmlhbGl6ZWRTY3JpcHRWYWx1
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU6OlNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU6
OnJlZ2lzdGVyTWVtb3J5QWxsb2NhdGVkV2l0aEN1cnJlbnRTY3JpcHRDb250ZXh0KToKKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlOjp+
U2VyaWFsaXplZFNjcmlwdFZhbHVlKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9TZXJpYWxpemVk
U2NyaXB0VmFsdWUuaDoKKyAgICAgICAgKFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSk6CisgICAgICAg
IEFkZGVkIGEgbWV0aG9kIHRvIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSB0byBhZGQgbWVtb3J5IHBy
ZXNzdXJlIG9uIEdDIHByb3BvcnRpb25hbCB0byB0aGUgc2l6ZSBvZiBtZW1vcnkgYWxsb2NhdGVk
IGluIHNlcmlhbGl6ZWQgZGF0YS4KKyAgICAgICAgCisgICAgICAgICogZG9tL01lc3NhZ2VFdmVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZXNzYWdlRXZlbnQ6Ok1lc3NhZ2VFdmVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZXNzYWdlRXZlbnQ6OmluaXRNZXNzYWdlRXZlbnQpOgorICAgICAg
ICBDYWxsIHRoZSBuZXcgbWV0aG9kIG9mIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSBkdXJpbmcgY3Jl
YXRpb24gb2YgTWVzc2FnZUV2ZW50IChwcmVzdW1hYmx5IGluIHRoZSB0aHJlYWQgd2hpY2ggY29u
dGFpbnMgdGhlIHJpZ2h0IFY4IGNvbnRleHQpLgorCiAyMDEyLTA3LTEzICBQZXRlciBCZXZlcmxv
byAgPHBldGVyQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbQ2hyb21pdW1dIE1ha2UgdGhlIHY4
IGkxOG4gQVBJIGRlcGVuZGVuY3kgY29uZGl0aW9uYWwgZm9yIEFuZHJvaWQsIGRpc2FibGUgc3Ry
aWN0IGFsaWFzaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TZXJp
YWxpemVkU2NyaXB0VmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2VyaWFs
aXplZFNjcmlwdFZhbHVlLmNwcAppbmRleCA2MTYxMDczLi5hNGNmNTkzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKQEAg
LTIyMDEsNiArMjIwMSw3IEBAIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBTZXJp
YWxpemVkU2NyaXB0VmFsdWU6OnJlbGVhc2UoKQogfQogCiBTZXJpYWxpemVkU2NyaXB0VmFsdWU6
OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSgpCisgICAgOiBtX2V4dGVybmFsbHlBbGxvY2F0ZWRNZW1v
cnkoMCkKIHsKIH0KIApAQCAtMjI1Miw2ICsyMjUzLDcgQEAgU2VyaWFsaXplZFNjcmlwdFZhbHVl
OjpTZXJpYWxpemVkU2NyaXB0VmFsdWUodjg6OkhhbmRsZTx2ODo6VmFsdWU+IHZhbHVlLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWVzc2FnZVBvcnRBcnJh
eSogbWVzc2FnZVBvcnRzLCBBcnJheUJ1ZmZlckFycmF5KiBhcnJheUJ1ZmZlcnMsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sJiBkaWRUaHJvdywKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHY4OjpJc29sYXRlKiBp
c29sYXRlKQorICAgIDogbV9leHRlcm5hbGx5QWxsb2NhdGVkTWVtb3J5KDApCiB7CiAgICAgZGlk
VGhyb3cgPSBmYWxzZTsKICAgICBXcml0ZXIgd3JpdGVyKGlzb2xhdGUpOwpAQCAtMjI5OCw2ICsy
MzAwLDcgQEAgU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWUodjg6
OkhhbmRsZTx2ODo6VmFsdWU+IHZhbHVlLAogfQogCiBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OlNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZShjb25zdCBTdHJpbmcmIHdpcmVEYXRhKQorICAgIDogbV9leHRl
cm5hbGx5QWxsb2NhdGVkTWVtb3J5KDApCiB7CiAgICAgbV9kYXRhID0gd2lyZURhdGEuaXNvbGF0
ZWRDb3B5KCk7CiB9CkBAIC0yMzIyLDQgKzIzMjUsMTggQEAgU2NyaXB0VmFsdWUgU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlOjpkZXNlcmlhbGl6ZUZvckluc3BlY3RvcihTY3JpcHRTdGF0ZSogc2NyaXB0
U3QKIH0KICNlbmRpZgogCit2b2lkIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6cmVnaXN0ZXJNZW1v
cnlBbGxvY2F0ZWRXaXRoQ3VycmVudFNjcmlwdENvbnRleHQoKQoreworICAgIGlmIChtX2V4dGVy
bmFsbHlBbGxvY2F0ZWRNZW1vcnkpCisgICAgICAgIHJldHVybjsKKyAgICBpZiAoKG1fZXh0ZXJu
YWxseUFsbG9jYXRlZE1lbW9yeSA9IG1fZGF0YS5sZW5ndGgoKSkpCisgICAgICAgIHY4OjpWODo6
QWRqdXN0QW1vdW50T2ZFeHRlcm5hbEFsbG9jYXRlZE1lbW9yeShtX2V4dGVybmFsbHlBbGxvY2F0
ZWRNZW1vcnkpOworfQorCitTZXJpYWxpemVkU2NyaXB0VmFsdWU6On5TZXJpYWxpemVkU2NyaXB0
VmFsdWUoKQoreworICAgIGlmIChtX2V4dGVybmFsbHlBbGxvY2F0ZWRNZW1vcnkpCisgICAgICAg
IHY4OjpWODo6QWRqdXN0QW1vdW50T2ZFeHRlcm5hbEFsbG9jYXRlZE1lbW9yeSgtbV9leHRlcm5h
bGx5QWxsb2NhdGVkTWVtb3J5KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TZXJpYWxpemVkU2NyaXB0VmFsdWUuaAppbmRl
eCA4NGQxMjI0Li4zNDIwNDMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92
OC9TZXJpYWxpemVkU2NyaXB0VmFsdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92
OC9TZXJpYWxpemVkU2NyaXB0VmFsdWUuaApAQCAtNDUsNiArNDUsOCBAQCB0eXBlZGVmIFZlY3Rv
cjxSZWZQdHI8V1RGOjpBcnJheUJ1ZmZlcj4sIDE+IEFycmF5QnVmZmVyQXJyYXk7CiAKIGNsYXNz
IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxTZXJp
YWxpemVkU2NyaXB0VmFsdWU+IHsKIHB1YmxpYzoKKyAgICB2aXJ0dWFsIH5TZXJpYWxpemVkU2Ny
aXB0VmFsdWUoKTsKKwogICAgIC8vIElmIGEgc2VyaWFsaXphdGlvbiBlcnJvciBvY2N1cnMgKGUu
Zy4sIGN5Y2xpYyBpbnB1dCB2YWx1ZSkgdGhpcwogICAgIC8vIGZ1bmN0aW9uIHJldHVybnMgYW4g
ZW1wdHkgcmVwcmVzZW50YXRpb24sIHNjaGVkdWxlcyBhIFY4IGV4Y2VwdGlvbiB0bwogICAgIC8v
IGJlIHRocm93biB1c2luZyB2ODo6VGhyb3dFeGNlcHRpb24oKSwgYW5kIHNldHMgfGRpZFRocm93
fC4gSW4gdGhpcyBjYXNlCkBAIC03Nyw2ICs3OSwxMiBAQCBwdWJsaWM6CiAKICAgICBjb25zdCBW
ZWN0b3I8U3RyaW5nPiYgYmxvYlVSTHMoKSBjb25zdCB7IHJldHVybiBtX2Jsb2JVUkxzOyB9CiAK
KyAgICAvLyBJbmZvcm1zIHRoZSBWOCBhYm91dCBleHRlcm5hbCBtZW1vcnkgYWxsb2NhdGVkIGFu
ZCBvd25lZCBieSB0aGlzIG9iamVjdC4gTGFyZ2UgdmFsdWVzIHNob3VsZCBjb250cmlidXRlCisg
ICAgLy8gdG8gR0MgY291bnRlcnMgdG8gZXZlbnR1YWxseSB0cmlnZ2VyIGEgR0MsIG90aGVyd2lz
ZSBmbG9vZCBvZiBwb3N0TWVzc2FnZSgpIGNhbiBjYXVzZSBPT00uCisgICAgLy8gT2sgdG8gaW52
b2tlIG11bHRpcGxlIHRpbWVzIChvbmx5IGFkZHMgbWVtb3J5IG9uY2UpLgorICAgIC8vIFRoZSBt
ZW1vcnkgcmVnaXN0cmF0aW9uIGlzIHJldm9rZWQgYXV0b21hdGljYWxseSBpbiBkZXN0cnVjdG9y
LgorICAgIHZvaWQgcmVnaXN0ZXJNZW1vcnlBbGxvY2F0ZWRXaXRoQ3VycmVudFNjcmlwdENvbnRl
eHQoKTsKKwogcHJpdmF0ZToKICAgICBlbnVtIFN0cmluZ0RhdGFNb2RlIHsKICAgICAgICAgU3Ry
aW5nVmFsdWUsCkBAIC05Myw2ICsxMDEsNyBAQCBwcml2YXRlOgogICAgIFN0cmluZyBtX2RhdGE7
CiAgICAgT3duUHRyPEFycmF5QnVmZmVyQ29udGVudHNBcnJheT4gbV9hcnJheUJ1ZmZlckNvbnRl
bnRzQXJyYXk7CiAgICAgVmVjdG9yPFN0cmluZz4gbV9ibG9iVVJMczsKKyAgICB1bnNpZ25lZCBt
X2V4dGVybmFsbHlBbGxvY2F0ZWRNZW1vcnk7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTWVzc2FnZUV2ZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9NZXNzYWdlRXZlbnQuY3BwCmluZGV4IDEyNTJkMmMuLjI0YjUyZGQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdlRXZlbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9NZXNzYWdlRXZlbnQuY3BwCkBAIC03Myw2ICs3MywxMCBAQCBNZXNzYWdl
RXZlbnQ6Ok1lc3NhZ2VFdmVudChQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gZGF0
YSwgY29uc3QgU3RyaW5nJgogICAgICwgbV9zb3VyY2Uoc291cmNlKQogICAgICwgbV9wb3J0cyhw
b3J0cykKIHsKKyNpZiBVU0UoVjgpCisgICAgaWYgKG1fZGF0YUFzU2VyaWFsaXplZFNjcmlwdFZh
bHVlKQorICAgICAgICBtX2RhdGFBc1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS0+cmVnaXN0ZXJNZW1v
cnlBbGxvY2F0ZWRXaXRoQ3VycmVudFNjcmlwdENvbnRleHQoKTsKKyNlbmRpZgogfQogCiBNZXNz
YWdlRXZlbnQ6Ok1lc3NhZ2VFdmVudChjb25zdCBTdHJpbmcmIGRhdGEpCkBAIC0xMzQsNiArMTM4
LDExIEBAIHZvaWQgTWVzc2FnZUV2ZW50Ojppbml0TWVzc2FnZUV2ZW50KGNvbnN0IEF0b21pY1N0
cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvCiAgICAgbV9sYXN0RXZlbnRJZCA9IGxhc3RF
dmVudElkOwogICAgIG1fc291cmNlID0gc291cmNlOwogICAgIG1fcG9ydHMgPSBwb3J0czsKKwor
I2lmIFVTRShWOCkKKyAgICBpZiAobV9kYXRhQXNTZXJpYWxpemVkU2NyaXB0VmFsdWUpCisgICAg
ICAgIG1fZGF0YUFzU2VyaWFsaXplZFNjcmlwdFZhbHVlLT5yZWdpc3Rlck1lbW9yeUFsbG9jYXRl
ZFdpdGhDdXJyZW50U2NyaXB0Q29udGV4dCgpOworI2VuZGlmCiB9CiAKIC8vIEZJWE1FOiBSZW1v
dmUgdGhpcyB3aGVuIHdlIGhhdmUgY3VzdG9tIE9iakMgYmluZGluZyBzdXBwb3J0Lgo=
</data>
<flag name="review"
          id="161620"
          type_id="1"
          status="-"
          setter="levin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>152901</attachid>
            <date>2012-07-17 19:05:23 -0700</date>
            <delta_ts>2012-07-19 12:57:31 -0700</delta_ts>
            <desc>Updated per cr comments</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>5778</size>
            <attacher name="Dmitry Titov">dimich</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA0NDFhYTk2Li5iOWQ2NTdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjgg
QEAKKzIwMTItMDctMTcgIERtaXRyeSBUaXRvdiAgPGRpbWljaEBjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgW0Nocm9taXVtXSBPdXQgb2YgTWVtb3J5IGlzIG9ic2VydmVkIHdoZW4gYSBsYXJnZSBv
YmplY3QgaXMgcGFzc2VkIHRvIGEgV2ViIFdvcmtlci4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkxNTM1LgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGl0aW9uYWwgaW5mb3JtYXRpb24gb2YgdGhlIGNo
YW5nZSBzdWNoIGFzIGFwcHJvYWNoLCByYXRpb25hbGUuIFBsZWFzZSBhZGQgcGVyLWZ1bmN0aW9u
IGRlc2NyaXB0aW9ucyBiZWxvdyAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBiZWNh
dXNlIG9mIG5vIG5ldyBiZWhhdmlvciBhbmQgbGFjayBvZiBtZWNoYW5pc20gdG8gbW9uaXRvciB1
c2VkIG1lbW9yeS4KKworICAgICAgICAqIGJpbmRpbmdzL3Y4L1NlcmlhbGl6ZWRTY3JpcHRWYWx1
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU6OlNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU6
OnJlZ2lzdGVyTWVtb3J5QWxsb2NhdGVkV2l0aEN1cnJlbnRTY3JpcHRDb250ZXh0KToKKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlOjp+
U2VyaWFsaXplZFNjcmlwdFZhbHVlKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9TZXJpYWxpemVk
U2NyaXB0VmFsdWUuaDoKKyAgICAgICAgKFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSk6CisgICAgICAg
IEFkZGVkIGEgbWV0aG9kIHRvIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSB0byBhZGQgbWVtb3J5IHBy
ZXNzdXJlIG9uIEdDIHByb3BvcnRpb25hbCB0byB0aGUgc2l6ZSBvZiBtZW1vcnkgYWxsb2NhdGVk
IGluIHNlcmlhbGl6ZWQgZGF0YS4KKyAgICAgICAgCisgICAgICAgICogZG9tL01lc3NhZ2VFdmVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZXNzYWdlRXZlbnQ6Ok1lc3NhZ2VFdmVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZXNzYWdlRXZlbnQ6OmluaXRNZXNzYWdlRXZlbnQpOgorICAgICAg
ICBDYWxsIHRoZSBuZXcgbWV0aG9kIG9mIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSBkdXJpbmcgY3Jl
YXRpb24gb2YgTWVzc2FnZUV2ZW50IChwcmVzdW1hYmx5IGluIHRoZSB0aHJlYWQgd2hpY2ggY29u
dGFpbnMgdGhlIHJpZ2h0IFY4IGNvbnRleHQpLgorCiAyMDEyLTA3LTEzICBQZXRlciBCZXZlcmxv
byAgPHBldGVyQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbQ2hyb21pdW1dIE1ha2UgdGhlIHY4
IGkxOG4gQVBJIGRlcGVuZGVuY3kgY29uZGl0aW9uYWwgZm9yIEFuZHJvaWQsIGRpc2FibGUgc3Ry
aWN0IGFsaWFzaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TZXJp
YWxpemVkU2NyaXB0VmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2VyaWFs
aXplZFNjcmlwdFZhbHVlLmNwcAppbmRleCA2MTYxMDczLi4yMWYzYmZhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKQEAg
LTIyMDEsNiArMjIwMSw3IEBAIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBTZXJp
YWxpemVkU2NyaXB0VmFsdWU6OnJlbGVhc2UoKQogfQogCiBTZXJpYWxpemVkU2NyaXB0VmFsdWU6
OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSgpCisgICAgOiBtX2V4dGVybmFsbHlBbGxvY2F0ZWRNZW1v
cnkoMCkKIHsKIH0KIApAQCAtMjI1Miw2ICsyMjUzLDcgQEAgU2VyaWFsaXplZFNjcmlwdFZhbHVl
OjpTZXJpYWxpemVkU2NyaXB0VmFsdWUodjg6OkhhbmRsZTx2ODo6VmFsdWU+IHZhbHVlLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWVzc2FnZVBvcnRBcnJh
eSogbWVzc2FnZVBvcnRzLCBBcnJheUJ1ZmZlckFycmF5KiBhcnJheUJ1ZmZlcnMsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sJiBkaWRUaHJvdywKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHY4OjpJc29sYXRlKiBp
c29sYXRlKQorICAgIDogbV9leHRlcm5hbGx5QWxsb2NhdGVkTWVtb3J5KDApCiB7CiAgICAgZGlk
VGhyb3cgPSBmYWxzZTsKICAgICBXcml0ZXIgd3JpdGVyKGlzb2xhdGUpOwpAQCAtMjI5OCw2ICsy
MzAwLDcgQEAgU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWUodjg6
OkhhbmRsZTx2ODo6VmFsdWU+IHZhbHVlLAogfQogCiBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OlNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZShjb25zdCBTdHJpbmcmIHdpcmVEYXRhKQorICAgIDogbV9leHRl
cm5hbGx5QWxsb2NhdGVkTWVtb3J5KDApCiB7CiAgICAgbV9kYXRhID0gd2lyZURhdGEuaXNvbGF0
ZWRDb3B5KCk7CiB9CkBAIC0yMzIyLDQgKzIzMjUsMTcgQEAgU2NyaXB0VmFsdWUgU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlOjpkZXNlcmlhbGl6ZUZvckluc3BlY3RvcihTY3JpcHRTdGF0ZSogc2NyaXB0
U3QKIH0KICNlbmRpZgogCit2b2lkIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6cmVnaXN0ZXJNZW1v
cnlBbGxvY2F0ZWRXaXRoQ3VycmVudFNjcmlwdENvbnRleHQoKQoreworICAgIGlmIChtX2V4dGVy
bmFsbHlBbGxvY2F0ZWRNZW1vcnkpCisgICAgICAgIHJldHVybjsKKyAgICBtX2V4dGVybmFsbHlB
bGxvY2F0ZWRNZW1vcnkgPSBzdGF0aWNfY2FzdDxpbnRwdHJfdD4obV9kYXRhLmxlbmd0aCgpKTsK
KyAgICB2ODo6Vjg6OkFkanVzdEFtb3VudE9mRXh0ZXJuYWxBbGxvY2F0ZWRNZW1vcnkobV9leHRl
cm5hbGx5QWxsb2NhdGVkTWVtb3J5KTsKK30KKworU2VyaWFsaXplZFNjcmlwdFZhbHVlOjp+U2Vy
aWFsaXplZFNjcmlwdFZhbHVlKCkKK3sKKyAgICB2ODo6Vjg6OkFkanVzdEFtb3VudE9mRXh0ZXJu
YWxBbGxvY2F0ZWRNZW1vcnkoLW1fZXh0ZXJuYWxseUFsbG9jYXRlZE1lbW9yeSk7Cit9CisKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvdjgv
U2VyaWFsaXplZFNjcmlwdFZhbHVlLmgKaW5kZXggODRkMTIyNC4uY2I2NjM4NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgKQEAg
LTQ1LDYgKzQ1LDggQEAgdHlwZWRlZiBWZWN0b3I8UmVmUHRyPFdURjo6QXJyYXlCdWZmZXI+LCAx
PiBBcnJheUJ1ZmZlckFycmF5OwogCiBjbGFzcyBTZXJpYWxpemVkU2NyaXB0VmFsdWUgOiBwdWJs
aWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiB7CiBwdWJsaWM6
CisgICAgdmlydHVhbCB+U2VyaWFsaXplZFNjcmlwdFZhbHVlKCk7CisKICAgICAvLyBJZiBhIHNl
cmlhbGl6YXRpb24gZXJyb3Igb2NjdXJzIChlLmcuLCBjeWNsaWMgaW5wdXQgdmFsdWUpIHRoaXMK
ICAgICAvLyBmdW5jdGlvbiByZXR1cm5zIGFuIGVtcHR5IHJlcHJlc2VudGF0aW9uLCBzY2hlZHVs
ZXMgYSBWOCBleGNlcHRpb24gdG8KICAgICAvLyBiZSB0aHJvd24gdXNpbmcgdjg6OlRocm93RXhj
ZXB0aW9uKCksIGFuZCBzZXRzIHxkaWRUaHJvd3wuIEluIHRoaXMgY2FzZQpAQCAtNzcsNiArNzks
MTIgQEAgcHVibGljOgogCiAgICAgY29uc3QgVmVjdG9yPFN0cmluZz4mIGJsb2JVUkxzKCkgY29u
c3QgeyByZXR1cm4gbV9ibG9iVVJMczsgfQogCisgICAgLy8gSW5mb3JtcyB0aGUgVjggYWJvdXQg
ZXh0ZXJuYWwgbWVtb3J5IGFsbG9jYXRlZCBhbmQgb3duZWQgYnkgdGhpcyBvYmplY3QuIExhcmdl
IHZhbHVlcyBzaG91bGQgY29udHJpYnV0ZQorICAgIC8vIHRvIEdDIGNvdW50ZXJzIHRvIGV2ZW50
dWFsbHkgdHJpZ2dlciBhIEdDLCBvdGhlcndpc2UgZmxvb2Qgb2YgcG9zdE1lc3NhZ2UoKSBjYW4g
Y2F1c2UgT09NLgorICAgIC8vIE9rIHRvIGludm9rZSBtdWx0aXBsZSB0aW1lcyAob25seSBhZGRz
IG1lbW9yeSBvbmNlKS4KKyAgICAvLyBUaGUgbWVtb3J5IHJlZ2lzdHJhdGlvbiBpcyByZXZva2Vk
IGF1dG9tYXRpY2FsbHkgaW4gZGVzdHJ1Y3Rvci4KKyAgICB2b2lkIHJlZ2lzdGVyTWVtb3J5QWxs
b2NhdGVkV2l0aEN1cnJlbnRTY3JpcHRDb250ZXh0KCk7CisKIHByaXZhdGU6CiAgICAgZW51bSBT
dHJpbmdEYXRhTW9kZSB7CiAgICAgICAgIFN0cmluZ1ZhbHVlLApAQCAtOTMsNiArMTAxLDcgQEAg
cHJpdmF0ZToKICAgICBTdHJpbmcgbV9kYXRhOwogICAgIE93blB0cjxBcnJheUJ1ZmZlckNvbnRl
bnRzQXJyYXk+IG1fYXJyYXlCdWZmZXJDb250ZW50c0FycmF5OwogICAgIFZlY3RvcjxTdHJpbmc+
IG1fYmxvYlVSTHM7CisgICAgaW50cHRyX3QgbV9leHRlcm5hbGx5QWxsb2NhdGVkTWVtb3J5Owog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL01lc3NhZ2VFdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTWVzc2FnZUV2ZW50LmNw
cAppbmRleCAxMjUyZDJjLi4yNGI1MmRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
TWVzc2FnZUV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTWVzc2FnZUV2ZW50LmNw
cApAQCAtNzMsNiArNzMsMTAgQEAgTWVzc2FnZUV2ZW50OjpNZXNzYWdlRXZlbnQoUGFzc1JlZlB0
cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IGRhdGEsIGNvbnN0IFN0cmluZyYKICAgICAsIG1fc291
cmNlKHNvdXJjZSkKICAgICAsIG1fcG9ydHMocG9ydHMpCiB7CisjaWYgVVNFKFY4KQorICAgIGlm
IChtX2RhdGFBc1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZSkKKyAgICAgICAgbV9kYXRhQXNTZXJpYWxp
emVkU2NyaXB0VmFsdWUtPnJlZ2lzdGVyTWVtb3J5QWxsb2NhdGVkV2l0aEN1cnJlbnRTY3JpcHRD
b250ZXh0KCk7CisjZW5kaWYKIH0KIAogTWVzc2FnZUV2ZW50OjpNZXNzYWdlRXZlbnQoY29uc3Qg
U3RyaW5nJiBkYXRhKQpAQCAtMTM0LDYgKzEzOCwxMSBAQCB2b2lkIE1lc3NhZ2VFdmVudDo6aW5p
dE1lc3NhZ2VFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBi
bwogICAgIG1fbGFzdEV2ZW50SWQgPSBsYXN0RXZlbnRJZDsKICAgICBtX3NvdXJjZSA9IHNvdXJj
ZTsKICAgICBtX3BvcnRzID0gcG9ydHM7CisKKyNpZiBVU0UoVjgpCisgICAgaWYgKG1fZGF0YUFz
U2VyaWFsaXplZFNjcmlwdFZhbHVlKQorICAgICAgICBtX2RhdGFBc1NlcmlhbGl6ZWRTY3JpcHRW
YWx1ZS0+cmVnaXN0ZXJNZW1vcnlBbGxvY2F0ZWRXaXRoQ3VycmVudFNjcmlwdENvbnRleHQoKTsK
KyNlbmRpZgogfQogCiAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgd2hlbiB3ZSBoYXZlIGN1c3RvbSBP
YmpDIGJpbmRpbmcgc3VwcG9ydC4K
</data>
<flag name="review"
          id="161698"
          type_id="1"
          status="+"
          setter="levin"
    />
    <flag name="commit-queue"
          id="162030"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>153328</attachid>
            <date>2012-07-19 12:57:31 -0700</date>
            <delta_ts>2012-07-20 15:43:40 -0700</delta_ts>
            <desc>patch for landing</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>6337</size>
            <attacher name="Dmitry Titov">dimich</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA0NDFhYTk2Li40NzdiZjhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYg
QEAKKzIwMTItMDctMTcgIERtaXRyeSBUaXRvdiAgPGRpbWljaEBjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgW0Nocm9taXVtXSBPdXQgb2YgTWVtb3J5IGlzIG9ic2VydmVkIHdoZW4gYSBsYXJnZSBv
YmplY3QgaXMgcGFzc2VkIHRvIGEgV2ViIFdvcmtlci4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkxNTM1LgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBiZWNhdXNlIG9mIG5vIG5ldyBi
ZWhhdmlvciBhbmQgbGFjayBvZiBtZWNoYW5pc20gdG8gbW9uaXRvciB1c2VkIG1lbW9yeS4KKwor
ICAgICAgICAqIGJpbmRpbmdzL3Y4L1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSk6
CisgICAgICAgIChXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU6OnJlZ2lzdGVyTWVtb3J5
QWxsb2NhdGVkV2l0aEN1cnJlbnRTY3JpcHRDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmUpOgor
ICAgICAgICAoV2ViQ29yZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlOjp+U2VyaWFsaXplZFNjcmlw
dFZhbHVlKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9TZXJpYWxpemVkU2NyaXB0VmFsdWUuaDoK
KyAgICAgICAgKFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSk6CisgICAgICAgIEFkZGVkIGEgbWV0aG9k
IHRvIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSB0byBhZGQgbWVtb3J5IHByZXNzdXJlIG9uIEdDIHBy
b3BvcnRpb25hbCB0byB0aGUgc2l6ZSBvZiBtZW1vcnkgYWxsb2NhdGVkIGluIHNlcmlhbGl6ZWQg
ZGF0YS4KKyAgICAgICAgCisgICAgICAgICogZG9tL01lc3NhZ2VFdmVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpNZXNzYWdlRXZlbnQ6Ok1lc3NhZ2VFdmVudCk6CisgICAgICAgIChXZWJDb3Jl
OjpNZXNzYWdlRXZlbnQ6OmluaXRNZXNzYWdlRXZlbnQpOgorICAgICAgICBDYWxsIHRoZSBuZXcg
bWV0aG9kIG9mIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSBkdXJpbmcgY3JlYXRpb24gb2YgTWVzc2Fn
ZUV2ZW50IChwcmVzdW1hYmx5IGluIHRoZSB0aHJlYWQgd2hpY2ggY29udGFpbnMgdGhlIHJpZ2h0
IFY4IGNvbnRleHQpLgorCiAyMDEyLTA3LTEzICBQZXRlciBCZXZlcmxvbyAgPHBldGVyQGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBbQ2hyb21pdW1dIE1ha2UgdGhlIHY4IGkxOG4gQVBJIGRlcGVu
ZGVuY3kgY29uZGl0aW9uYWwgZm9yIEFuZHJvaWQsIGRpc2FibGUgc3RyaWN0IGFsaWFzaW5nCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TZXJpYWxpemVkU2NyaXB0VmFs
dWUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2VyaWFsaXplZFNjcmlwdFZhbHVl
LmNwcAppbmRleCA2MTYxMDczLi42MzgxY2NiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKQEAgLTIxOTMsMTQgKzIxOTMs
OCBAQCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gU2VyaWFsaXplZFNjcmlwdFZh
bHVlOjpudW1iZXJWYWx1ZShkb3VibGUgdmFsdQogICAgIHJldHVybiBhZG9wdFJlZihuZXcgU2Vy
aWFsaXplZFNjcmlwdFZhbHVlKHdpcmVEYXRhKSk7CiB9CiAKLVBhc3NSZWZQdHI8U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlPiBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OnJlbGVhc2UoKQotewotICAgIFJl
ZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IHJlc3VsdCA9IGFkb3B0UmVmKG5ldyBTZXJpYWxp
emVkU2NyaXB0VmFsdWUobV9kYXRhKSk7Ci0gICAgbV9kYXRhID0gU3RyaW5nKCk7Ci0gICAgcmV0
dXJuIHJlc3VsdC5yZWxlYXNlKCk7Ci19Ci0KIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6U2VyaWFs
aXplZFNjcmlwdFZhbHVlKCkKKyAgICA6IG1fZXh0ZXJuYWxseUFsbG9jYXRlZE1lbW9yeSgwKQog
ewogfQogCkBAIC0yMjUyLDYgKzIyNDYsNyBAQCBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OlNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZSh2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdmFsdWUsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNZXNzYWdlUG9ydEFycmF5KiBtZXNz
YWdlUG9ydHMsIEFycmF5QnVmZmVyQXJyYXkqIGFycmF5QnVmZmVycywKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wmIGRpZFRocm93LAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdjg6Oklzb2xhdGUqIGlzb2xhdGUp
CisgICAgOiBtX2V4dGVybmFsbHlBbGxvY2F0ZWRNZW1vcnkoMCkKIHsKICAgICBkaWRUaHJvdyA9
IGZhbHNlOwogICAgIFdyaXRlciB3cml0ZXIoaXNvbGF0ZSk7CkBAIC0yMjk4LDYgKzIyOTMsNyBA
QCBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSh2ODo6SGFuZGxl
PHY4OjpWYWx1ZT4gdmFsdWUsCiB9CiAKIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlKGNvbnN0IFN0cmluZyYgd2lyZURhdGEpCisgICAgOiBtX2V4dGVybmFsbHlB
bGxvY2F0ZWRNZW1vcnkoMCkKIHsKICAgICBtX2RhdGEgPSB3aXJlRGF0YS5pc29sYXRlZENvcHko
KTsKIH0KQEAgLTIzMjIsNCArMjMxOCwxNyBAQCBTY3JpcHRWYWx1ZSBTZXJpYWxpemVkU2NyaXB0
VmFsdWU6OmRlc2VyaWFsaXplRm9ySW5zcGVjdG9yKFNjcmlwdFN0YXRlKiBzY3JpcHRTdAogfQog
I2VuZGlmCiAKK3ZvaWQgU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpyZWdpc3Rlck1lbW9yeUFsbG9j
YXRlZFdpdGhDdXJyZW50U2NyaXB0Q29udGV4dCgpCit7CisgICAgaWYgKG1fZXh0ZXJuYWxseUFs
bG9jYXRlZE1lbW9yeSkKKyAgICAgICAgcmV0dXJuOworICAgIG1fZXh0ZXJuYWxseUFsbG9jYXRl
ZE1lbW9yeSA9IHN0YXRpY19jYXN0PGludHB0cl90PihtX2RhdGEubGVuZ3RoKCkpOworICAgIHY4
OjpWODo6QWRqdXN0QW1vdW50T2ZFeHRlcm5hbEFsbG9jYXRlZE1lbW9yeShtX2V4dGVybmFsbHlB
bGxvY2F0ZWRNZW1vcnkpOworfQorCitTZXJpYWxpemVkU2NyaXB0VmFsdWU6On5TZXJpYWxpemVk
U2NyaXB0VmFsdWUoKQoreworICAgIHY4OjpWODo6QWRqdXN0QW1vdW50T2ZFeHRlcm5hbEFsbG9j
YXRlZE1lbW9yeSgtbV9leHRlcm5hbGx5QWxsb2NhdGVkTWVtb3J5KTsKK30KKwogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2Vy
aWFsaXplZFNjcmlwdFZhbHVlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TZXJpYWxp
emVkU2NyaXB0VmFsdWUuaAppbmRleCA4NGQxMjI0Li5lY2JmYjMxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TZXJpYWxpemVkU2NyaXB0VmFsdWUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TZXJpYWxpemVkU2NyaXB0VmFsdWUuaApAQCAtNDUsNiAr
NDUsOCBAQCB0eXBlZGVmIFZlY3RvcjxSZWZQdHI8V1RGOjpBcnJheUJ1ZmZlcj4sIDE+IEFycmF5
QnVmZmVyQXJyYXk7CiAKIGNsYXNzIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSA6IHB1YmxpYyBUaHJl
YWRTYWZlUmVmQ291bnRlZDxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IHsKIHB1YmxpYzoKKyAgICB2
aXJ0dWFsIH5TZXJpYWxpemVkU2NyaXB0VmFsdWUoKTsKKwogICAgIC8vIElmIGEgc2VyaWFsaXph
dGlvbiBlcnJvciBvY2N1cnMgKGUuZy4sIGN5Y2xpYyBpbnB1dCB2YWx1ZSkgdGhpcwogICAgIC8v
IGZ1bmN0aW9uIHJldHVybnMgYW4gZW1wdHkgcmVwcmVzZW50YXRpb24sIHNjaGVkdWxlcyBhIFY4
IGV4Y2VwdGlvbiB0bwogICAgIC8vIGJlIHRocm93biB1c2luZyB2ODo6VGhyb3dFeGNlcHRpb24o
KSwgYW5kIHNldHMgfGRpZFRocm93fC4gSW4gdGhpcyBjYXNlCkBAIC02Myw4ICs2NSw2IEBAIHB1
YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IGJvb2xl
YW5WYWx1ZShib29sIHZhbHVlLCB2ODo6SXNvbGF0ZSogPSAwKTsKICAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IG51bWJlclZhbHVlKGRvdWJsZSB2YWx1ZSwgdjg6
Oklzb2xhdGUqID0gMCk7CiAKLSAgICBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4g
cmVsZWFzZSgpOwotCiAgICAgU3RyaW5nIHRvV2lyZVN0cmluZygpIGNvbnN0IHsgcmV0dXJuIG1f
ZGF0YTsgfQogCiAgICAgLy8gRGVzZXJpYWxpemVzIHRoZSB2YWx1ZSAoaW4gdGhlIGN1cnJlbnQg
Y29udGV4dCkuIFJldHVybnMgYSBudWxsIHZhbHVlIGluCkBAIC03Nyw2ICs3NywxMiBAQCBwdWJs
aWM6CiAKICAgICBjb25zdCBWZWN0b3I8U3RyaW5nPiYgYmxvYlVSTHMoKSBjb25zdCB7IHJldHVy
biBtX2Jsb2JVUkxzOyB9CiAKKyAgICAvLyBJbmZvcm1zIHRoZSBWOCBhYm91dCBleHRlcm5hbCBt
ZW1vcnkgYWxsb2NhdGVkIGFuZCBvd25lZCBieSB0aGlzIG9iamVjdC4gTGFyZ2UgdmFsdWVzIHNo
b3VsZCBjb250cmlidXRlCisgICAgLy8gdG8gR0MgY291bnRlcnMgdG8gZXZlbnR1YWxseSB0cmln
Z2VyIGEgR0MsIG90aGVyd2lzZSBmbG9vZCBvZiBwb3N0TWVzc2FnZSgpIGNhbiBjYXVzZSBPT00u
CisgICAgLy8gT2sgdG8gaW52b2tlIG11bHRpcGxlIHRpbWVzIChvbmx5IGFkZHMgbWVtb3J5IG9u
Y2UpLgorICAgIC8vIFRoZSBtZW1vcnkgcmVnaXN0cmF0aW9uIGlzIHJldm9rZWQgYXV0b21hdGlj
YWxseSBpbiBkZXN0cnVjdG9yLgorICAgIHZvaWQgcmVnaXN0ZXJNZW1vcnlBbGxvY2F0ZWRXaXRo
Q3VycmVudFNjcmlwdENvbnRleHQoKTsKKwogcHJpdmF0ZToKICAgICBlbnVtIFN0cmluZ0RhdGFN
b2RlIHsKICAgICAgICAgU3RyaW5nVmFsdWUsCkBAIC05Myw2ICs5OSw3IEBAIHByaXZhdGU6CiAg
ICAgU3RyaW5nIG1fZGF0YTsKICAgICBPd25QdHI8QXJyYXlCdWZmZXJDb250ZW50c0FycmF5PiBt
X2FycmF5QnVmZmVyQ29udGVudHNBcnJheTsKICAgICBWZWN0b3I8U3RyaW5nPiBtX2Jsb2JVUkxz
OworICAgIGludHB0cl90IG1fZXh0ZXJuYWxseUFsbG9jYXRlZE1lbW9yeTsKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdl
RXZlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VFdmVudC5jcHAKaW5kZXggMTI1
MmQyYy4uMjRiNTJkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VFdmVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VFdmVudC5jcHAKQEAgLTczLDYg
KzczLDEwIEBAIE1lc3NhZ2VFdmVudDo6TWVzc2FnZUV2ZW50KFBhc3NSZWZQdHI8U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlPiBkYXRhLCBjb25zdCBTdHJpbmcmCiAgICAgLCBtX3NvdXJjZShzb3VyY2Up
CiAgICAgLCBtX3BvcnRzKHBvcnRzKQogeworI2lmIFVTRShWOCkKKyAgICBpZiAobV9kYXRhQXNT
ZXJpYWxpemVkU2NyaXB0VmFsdWUpCisgICAgICAgIG1fZGF0YUFzU2VyaWFsaXplZFNjcmlwdFZh
bHVlLT5yZWdpc3Rlck1lbW9yeUFsbG9jYXRlZFdpdGhDdXJyZW50U2NyaXB0Q29udGV4dCgpOwor
I2VuZGlmCiB9CiAKIE1lc3NhZ2VFdmVudDo6TWVzc2FnZUV2ZW50KGNvbnN0IFN0cmluZyYgZGF0
YSkKQEAgLTEzNCw2ICsxMzgsMTEgQEAgdm9pZCBNZXNzYWdlRXZlbnQ6OmluaXRNZXNzYWdlRXZl
bnQoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1YmJsZSwgYm8KICAgICBtX2xh
c3RFdmVudElkID0gbGFzdEV2ZW50SWQ7CiAgICAgbV9zb3VyY2UgPSBzb3VyY2U7CiAgICAgbV9w
b3J0cyA9IHBvcnRzOworCisjaWYgVVNFKFY4KQorICAgIGlmIChtX2RhdGFBc1NlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZSkKKyAgICAgICAgbV9kYXRhQXNTZXJpYWxpemVkU2NyaXB0VmFsdWUtPnJlZ2lz
dGVyTWVtb3J5QWxsb2NhdGVkV2l0aEN1cnJlbnRTY3JpcHRDb250ZXh0KCk7CisjZW5kaWYKIH0K
IAogLy8gRklYTUU6IFJlbW92ZSB0aGlzIHdoZW4gd2UgaGF2ZSBjdXN0b20gT2JqQyBiaW5kaW5n
IHN1cHBvcnQuCg==
</data>
<flag name="commit-queue"
          id="162268"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>153610</attachid>
            <date>2012-07-20 15:43:40 -0700</date>
            <delta_ts>2012-07-20 15:49:35 -0700</delta_ts>
            <desc>Fixed failure on page-cycler</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>6673</size>
            <attacher name="Dmitry Titov">dimich</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA4ODI2ZjMyLi5jZGQ5OThkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYg
QEAKKzIwMTItMDctMjAgIERtaXRyeSBUaXRvdiAgPGRpbWljaEBjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgW0Nocm9taXVtXSBPdXQgb2YgTWVtb3J5IGlzIG9ic2VydmVkIHdoZW4gYSBsYXJnZSBv
YmplY3QgaXMgcGFzc2VkIHRvIGEgV2ViIFdvcmtlci4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkxNTM1LgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBiZWNhdXNlIG9mIG5vIG5ldyBi
ZWhhdmlvciBhbmQgbGFjayBvZiBtZWNoYW5pc20gdG8gbW9uaXRvciB1c2VkIG1lbW9yeS4KKwor
ICAgICAgICAqIGJpbmRpbmdzL3Y4L1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSk6
CisgICAgICAgIChXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU6OnJlZ2lzdGVyTWVtb3J5
QWxsb2NhdGVkV2l0aEN1cnJlbnRTY3JpcHRDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmUpOgor
ICAgICAgICAoV2ViQ29yZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlOjp+U2VyaWFsaXplZFNjcmlw
dFZhbHVlKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9TZXJpYWxpemVkU2NyaXB0VmFsdWUuaDoK
KyAgICAgICAgKFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSk6CisgICAgICAgIEFkZGVkIGEgbWV0aG9k
IHRvIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSB0byBhZGQgbWVtb3J5IHByZXNzdXJlIG9uIEdDIHBy
b3BvcnRpb25hbCB0byB0aGUgc2l6ZSBvZiBtZW1vcnkgYWxsb2NhdGVkIGluIHNlcmlhbGl6ZWQg
ZGF0YS4KKyAgICAgICAgCisgICAgICAgICogZG9tL01lc3NhZ2VFdmVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpNZXNzYWdlRXZlbnQ6Ok1lc3NhZ2VFdmVudCk6CisgICAgICAgIChXZWJDb3Jl
OjpNZXNzYWdlRXZlbnQ6OmluaXRNZXNzYWdlRXZlbnQpOgorICAgICAgICBDYWxsIHRoZSBuZXcg
bWV0aG9kIG9mIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSBkdXJpbmcgY3JlYXRpb24gb2YgTWVzc2Fn
ZUV2ZW50IChwcmVzdW1hYmx5IGluIHRoZSB0aHJlYWQgd2hpY2ggY29udGFpbnMgdGhlIHJpZ2h0
IFY4IGNvbnRleHQpLgorCiAyMDEyLTA3LTIwICBEYXZpZCBHcm9nYW4gIDxkZ3JvZ2FuQGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBJbmRleGVkREI6IEluY2x1ZGUgaW50VmVyc2lvbiB3aGVuIGNv
bnZlcnRpbmcgYmV0d2VlbiBXZWJDb3JlIGFuZCBXZWJLaXQgSURCTWV0YWRhdGEgdHlwZXMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NlcmlhbGl6ZWRTY3JpcHRWYWx1
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TZXJpYWxpemVkU2NyaXB0VmFsdWUu
Y3BwCmluZGV4IDYxNjEwNzMuLjE5ZTI3MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcApAQCAtMjE5MywxNCArMjE5Myw4
IEBAIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBTZXJpYWxpemVkU2NyaXB0VmFs
dWU6Om51bWJlclZhbHVlKGRvdWJsZSB2YWx1CiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTZXJp
YWxpemVkU2NyaXB0VmFsdWUod2lyZURhdGEpKTsKIH0KIAotUGFzc1JlZlB0cjxTZXJpYWxpemVk
U2NyaXB0VmFsdWU+IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6cmVsZWFzZSgpCi17Ci0gICAgUmVm
UHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gcmVzdWx0ID0gYWRvcHRSZWYobmV3IFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZShtX2RhdGEpKTsKLSAgICBtX2RhdGEgPSBTdHJpbmcoKTsKLSAgICByZXR1
cm4gcmVzdWx0LnJlbGVhc2UoKTsKLX0KLQogU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpTZXJpYWxp
emVkU2NyaXB0VmFsdWUoKQorICAgIDogbV9leHRlcm5hbGx5QWxsb2NhdGVkTWVtb3J5KDApCiB7
CiB9CiAKQEAgLTIyNTIsNiArMjI0Niw3IEBAIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6U2VyaWFs
aXplZFNjcmlwdFZhbHVlKHY4OjpIYW5kbGU8djg6OlZhbHVlPiB2YWx1ZSwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1lc3NhZ2VQb3J0QXJyYXkqIG1lc3Nh
Z2VQb3J0cywgQXJyYXlCdWZmZXJBcnJheSogYXJyYXlCdWZmZXJzLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCYgZGlkVGhyb3csCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ODo6SXNvbGF0ZSogaXNvbGF0ZSkK
KyAgICA6IG1fZXh0ZXJuYWxseUFsbG9jYXRlZE1lbW9yeSgwKQogewogICAgIGRpZFRocm93ID0g
ZmFsc2U7CiAgICAgV3JpdGVyIHdyaXRlcihpc29sYXRlKTsKQEAgLTIyOTgsNiArMjI5Myw3IEBA
IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlKHY4OjpIYW5kbGU8
djg6OlZhbHVlPiB2YWx1ZSwKIH0KIAogU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpTZXJpYWxpemVk
U2NyaXB0VmFsdWUoY29uc3QgU3RyaW5nJiB3aXJlRGF0YSkKKyAgICA6IG1fZXh0ZXJuYWxseUFs
bG9jYXRlZE1lbW9yeSgwKQogewogICAgIG1fZGF0YSA9IHdpcmVEYXRhLmlzb2xhdGVkQ29weSgp
OwogfQpAQCAtMjMyMiw0ICsyMzE4LDIzIEBAIFNjcmlwdFZhbHVlIFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZTo6ZGVzZXJpYWxpemVGb3JJbnNwZWN0b3IoU2NyaXB0U3RhdGUqIHNjcmlwdFN0CiB9CiAj
ZW5kaWYKIAordm9pZCBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OnJlZ2lzdGVyTWVtb3J5QWxsb2Nh
dGVkV2l0aEN1cnJlbnRTY3JpcHRDb250ZXh0KCkKK3sKKyAgICBpZiAobV9leHRlcm5hbGx5QWxs
b2NhdGVkTWVtb3J5KQorICAgICAgICByZXR1cm47CisgICAgbV9leHRlcm5hbGx5QWxsb2NhdGVk
TWVtb3J5ID0gc3RhdGljX2Nhc3Q8aW50cHRyX3Q+KG1fZGF0YS5sZW5ndGgoKSk7CisgICAgdjg6
OlY4OjpBZGp1c3RBbW91bnRPZkV4dGVybmFsQWxsb2NhdGVkTWVtb3J5KG1fZXh0ZXJuYWxseUFs
bG9jYXRlZE1lbW9yeSk7Cit9CisKK1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6flNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZSgpCit7CisgICAgLy8gSWYgdGhlIGFsbG9jYXRlZCBtZW1vcnkgd2FzIG5vdCBy
ZWdpc3RlcmVkIGJlZm9yZSwgdGhlbiB0aGlzIGNsYXNzIGlzIGxpa2VseQorICAgIC8vIHVzZWQg
aW4gYSBjb250ZXh0IG90aGVyIHRoZW4gV29ya2VyJ3Mgb25tZXNzYWdlIGVudmlyb25tZW50IGFu
ZCB0aGUgcHJlc2VuY2Ugb2YKKyAgICAvLyBjdXJyZW50IHY4IGNvbnRleHQgaXMgbm90IGd1YXJh
bnRlZWQuIEF2b2lkIGNhbGxpbmcgdjggdGhlbi4KKyAgICBpZiAobV9leHRlcm5hbGx5QWxsb2Nh
dGVkTWVtb3J5KSB7CisgICAgICAgIEFTU0VSVCh2ODo6SXNvbGF0ZTo6R2V0Q3VycmVudCgpKTsK
KyAgICAgICAgdjg6OlY4OjpBZGp1c3RBbW91bnRPZkV4dGVybmFsQWxsb2NhdGVkTWVtb3J5KC1t
X2V4dGVybmFsbHlBbGxvY2F0ZWRNZW1vcnkpOworICAgIH0KK30KKwogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TZXJpYWxpemVkU2Ny
aXB0VmFsdWUuaAppbmRleCA4NGQxMjI0Li5lY2JmYjMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9TZXJpYWxpemVkU2NyaXB0VmFsdWUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9TZXJpYWxpemVkU2NyaXB0VmFsdWUuaApAQCAtNDUsNiArNDUsOCBA
QCB0eXBlZGVmIFZlY3RvcjxSZWZQdHI8V1RGOjpBcnJheUJ1ZmZlcj4sIDE+IEFycmF5QnVmZmVy
QXJyYXk7CiAKIGNsYXNzIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSA6IHB1YmxpYyBUaHJlYWRTYWZl
UmVmQ291bnRlZDxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IHsKIHB1YmxpYzoKKyAgICB2aXJ0dWFs
IH5TZXJpYWxpemVkU2NyaXB0VmFsdWUoKTsKKwogICAgIC8vIElmIGEgc2VyaWFsaXphdGlvbiBl
cnJvciBvY2N1cnMgKGUuZy4sIGN5Y2xpYyBpbnB1dCB2YWx1ZSkgdGhpcwogICAgIC8vIGZ1bmN0
aW9uIHJldHVybnMgYW4gZW1wdHkgcmVwcmVzZW50YXRpb24sIHNjaGVkdWxlcyBhIFY4IGV4Y2Vw
dGlvbiB0bwogICAgIC8vIGJlIHRocm93biB1c2luZyB2ODo6VGhyb3dFeGNlcHRpb24oKSwgYW5k
IHNldHMgfGRpZFRocm93fC4gSW4gdGhpcyBjYXNlCkBAIC02Myw4ICs2NSw2IEBAIHB1YmxpYzoK
ICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IGJvb2xlYW5WYWx1
ZShib29sIHZhbHVlLCB2ODo6SXNvbGF0ZSogPSAwKTsKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxT
ZXJpYWxpemVkU2NyaXB0VmFsdWU+IG51bWJlclZhbHVlKGRvdWJsZSB2YWx1ZSwgdjg6Oklzb2xh
dGUqID0gMCk7CiAKLSAgICBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gcmVsZWFz
ZSgpOwotCiAgICAgU3RyaW5nIHRvV2lyZVN0cmluZygpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YTsg
fQogCiAgICAgLy8gRGVzZXJpYWxpemVzIHRoZSB2YWx1ZSAoaW4gdGhlIGN1cnJlbnQgY29udGV4
dCkuIFJldHVybnMgYSBudWxsIHZhbHVlIGluCkBAIC03Nyw2ICs3NywxMiBAQCBwdWJsaWM6CiAK
ICAgICBjb25zdCBWZWN0b3I8U3RyaW5nPiYgYmxvYlVSTHMoKSBjb25zdCB7IHJldHVybiBtX2Js
b2JVUkxzOyB9CiAKKyAgICAvLyBJbmZvcm1zIHRoZSBWOCBhYm91dCBleHRlcm5hbCBtZW1vcnkg
YWxsb2NhdGVkIGFuZCBvd25lZCBieSB0aGlzIG9iamVjdC4gTGFyZ2UgdmFsdWVzIHNob3VsZCBj
b250cmlidXRlCisgICAgLy8gdG8gR0MgY291bnRlcnMgdG8gZXZlbnR1YWxseSB0cmlnZ2VyIGEg
R0MsIG90aGVyd2lzZSBmbG9vZCBvZiBwb3N0TWVzc2FnZSgpIGNhbiBjYXVzZSBPT00uCisgICAg
Ly8gT2sgdG8gaW52b2tlIG11bHRpcGxlIHRpbWVzIChvbmx5IGFkZHMgbWVtb3J5IG9uY2UpLgor
ICAgIC8vIFRoZSBtZW1vcnkgcmVnaXN0cmF0aW9uIGlzIHJldm9rZWQgYXV0b21hdGljYWxseSBp
biBkZXN0cnVjdG9yLgorICAgIHZvaWQgcmVnaXN0ZXJNZW1vcnlBbGxvY2F0ZWRXaXRoQ3VycmVu
dFNjcmlwdENvbnRleHQoKTsKKwogcHJpdmF0ZToKICAgICBlbnVtIFN0cmluZ0RhdGFNb2RlIHsK
ICAgICAgICAgU3RyaW5nVmFsdWUsCkBAIC05Myw2ICs5OSw3IEBAIHByaXZhdGU6CiAgICAgU3Ry
aW5nIG1fZGF0YTsKICAgICBPd25QdHI8QXJyYXlCdWZmZXJDb250ZW50c0FycmF5PiBtX2FycmF5
QnVmZmVyQ29udGVudHNBcnJheTsKICAgICBWZWN0b3I8U3RyaW5nPiBtX2Jsb2JVUkxzOworICAg
IGludHB0cl90IG1fZXh0ZXJuYWxseUFsbG9jYXRlZE1lbW9yeTsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdlRXZlbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VFdmVudC5jcHAKaW5kZXggMTI1MmQyYy4u
MjRiNTJkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VFdmVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VFdmVudC5jcHAKQEAgLTczLDYgKzczLDEw
IEBAIE1lc3NhZ2VFdmVudDo6TWVzc2FnZUV2ZW50KFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlw
dFZhbHVlPiBkYXRhLCBjb25zdCBTdHJpbmcmCiAgICAgLCBtX3NvdXJjZShzb3VyY2UpCiAgICAg
LCBtX3BvcnRzKHBvcnRzKQogeworI2lmIFVTRShWOCkKKyAgICBpZiAobV9kYXRhQXNTZXJpYWxp
emVkU2NyaXB0VmFsdWUpCisgICAgICAgIG1fZGF0YUFzU2VyaWFsaXplZFNjcmlwdFZhbHVlLT5y
ZWdpc3Rlck1lbW9yeUFsbG9jYXRlZFdpdGhDdXJyZW50U2NyaXB0Q29udGV4dCgpOworI2VuZGlm
CiB9CiAKIE1lc3NhZ2VFdmVudDo6TWVzc2FnZUV2ZW50KGNvbnN0IFN0cmluZyYgZGF0YSkKQEAg
LTEzNCw2ICsxMzgsMTEgQEAgdm9pZCBNZXNzYWdlRXZlbnQ6OmluaXRNZXNzYWdlRXZlbnQoY29u
c3QgQXRvbWljU3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1YmJsZSwgYm8KICAgICBtX2xhc3RFdmVu
dElkID0gbGFzdEV2ZW50SWQ7CiAgICAgbV9zb3VyY2UgPSBzb3VyY2U7CiAgICAgbV9wb3J0cyA9
IHBvcnRzOworCisjaWYgVVNFKFY4KQorICAgIGlmIChtX2RhdGFBc1NlcmlhbGl6ZWRTY3JpcHRW
YWx1ZSkKKyAgICAgICAgbV9kYXRhQXNTZXJpYWxpemVkU2NyaXB0VmFsdWUtPnJlZ2lzdGVyTWVt
b3J5QWxsb2NhdGVkV2l0aEN1cnJlbnRTY3JpcHRDb250ZXh0KCk7CisjZW5kaWYKIH0KIAogLy8g
RklYTUU6IFJlbW92ZSB0aGlzIHdoZW4gd2UgaGF2ZSBjdXN0b20gT2JqQyBiaW5kaW5nIHN1cHBv
cnQuCg==
</data>
<flag name="review"
          id="162606"
          type_id="1"
          status="+"
          setter="levin"
    />
    <flag name="commit-queue"
          id="162605"
          type_id="3"
          status="-"
          setter="dimich"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>153611</attachid>
            <date>2012-07-20 15:49:35 -0700</date>
            <delta_ts>2012-07-20 15:51:18 -0700</delta_ts>
            <desc>Fixed failure on page-cycler</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>5985</size>
            <attacher name="Dmitry Titov">dimich</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA4ODI2ZjMyLi5jZGQ5OThkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYg
QEAKKzIwMTItMDctMjAgIERtaXRyeSBUaXRvdiAgPGRpbWljaEBjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgW0Nocm9taXVtXSBPdXQgb2YgTWVtb3J5IGlzIG9ic2VydmVkIHdoZW4gYSBsYXJnZSBv
YmplY3QgaXMgcGFzc2VkIHRvIGEgV2ViIFdvcmtlci4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkxNTM1LgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBiZWNhdXNlIG9mIG5vIG5ldyBi
ZWhhdmlvciBhbmQgbGFjayBvZiBtZWNoYW5pc20gdG8gbW9uaXRvciB1c2VkIG1lbW9yeS4KKwor
ICAgICAgICAqIGJpbmRpbmdzL3Y4L1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSk6
CisgICAgICAgIChXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU6OnJlZ2lzdGVyTWVtb3J5
QWxsb2NhdGVkV2l0aEN1cnJlbnRTY3JpcHRDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmUpOgor
ICAgICAgICAoV2ViQ29yZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlOjp+U2VyaWFsaXplZFNjcmlw
dFZhbHVlKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9TZXJpYWxpemVkU2NyaXB0VmFsdWUuaDoK
KyAgICAgICAgKFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSk6CisgICAgICAgIEFkZGVkIGEgbWV0aG9k
IHRvIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSB0byBhZGQgbWVtb3J5IHByZXNzdXJlIG9uIEdDIHBy
b3BvcnRpb25hbCB0byB0aGUgc2l6ZSBvZiBtZW1vcnkgYWxsb2NhdGVkIGluIHNlcmlhbGl6ZWQg
ZGF0YS4KKyAgICAgICAgCisgICAgICAgICogZG9tL01lc3NhZ2VFdmVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpNZXNzYWdlRXZlbnQ6Ok1lc3NhZ2VFdmVudCk6CisgICAgICAgIChXZWJDb3Jl
OjpNZXNzYWdlRXZlbnQ6OmluaXRNZXNzYWdlRXZlbnQpOgorICAgICAgICBDYWxsIHRoZSBuZXcg
bWV0aG9kIG9mIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSBkdXJpbmcgY3JlYXRpb24gb2YgTWVzc2Fn
ZUV2ZW50IChwcmVzdW1hYmx5IGluIHRoZSB0aHJlYWQgd2hpY2ggY29udGFpbnMgdGhlIHJpZ2h0
IFY4IGNvbnRleHQpLgorCiAyMDEyLTA3LTIwICBEYXZpZCBHcm9nYW4gIDxkZ3JvZ2FuQGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBJbmRleGVkREI6IEluY2x1ZGUgaW50VmVyc2lvbiB3aGVuIGNv
bnZlcnRpbmcgYmV0d2VlbiBXZWJDb3JlIGFuZCBXZWJLaXQgSURCTWV0YWRhdGEgdHlwZXMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NlcmlhbGl6ZWRTY3JpcHRWYWx1
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TZXJpYWxpemVkU2NyaXB0VmFsdWUu
Y3BwCmluZGV4IDYxNjEwNzMuLmRlMjJlMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcApAQCAtMjIwMSw2ICsyMjAxLDcg
QEAgUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZTo6cmVsZWFzZSgpCiB9CiAKIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6U2VyaWFsaXplZFNjcmlw
dFZhbHVlKCkKKyAgICA6IG1fZXh0ZXJuYWxseUFsbG9jYXRlZE1lbW9yeSgwKQogewogfQogCkBA
IC0yMjUyLDYgKzIyNTMsNyBAQCBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OlNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZSh2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdmFsdWUsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBNZXNzYWdlUG9ydEFycmF5KiBtZXNzYWdlUG9ydHMs
IEFycmF5QnVmZmVyQXJyYXkqIGFycmF5QnVmZmVycywKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGJvb2wmIGRpZFRocm93LAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdjg6Oklzb2xhdGUqIGlzb2xhdGUpCisgICAgOiBt
X2V4dGVybmFsbHlBbGxvY2F0ZWRNZW1vcnkoMCkKIHsKICAgICBkaWRUaHJvdyA9IGZhbHNlOwog
ICAgIFdyaXRlciB3cml0ZXIoaXNvbGF0ZSk7CkBAIC0yMjk4LDYgKzIzMDAsNyBAQCBTZXJpYWxp
emVkU2NyaXB0VmFsdWU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSh2ODo6SGFuZGxlPHY4OjpWYWx1
ZT4gdmFsdWUsCiB9CiAKIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6U2VyaWFsaXplZFNjcmlwdFZh
bHVlKGNvbnN0IFN0cmluZyYgd2lyZURhdGEpCisgICAgOiBtX2V4dGVybmFsbHlBbGxvY2F0ZWRN
ZW1vcnkoMCkKIHsKICAgICBtX2RhdGEgPSB3aXJlRGF0YS5pc29sYXRlZENvcHkoKTsKIH0KQEAg
LTIzMjIsNCArMjMyNSwyMyBAQCBTY3JpcHRWYWx1ZSBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmRl
c2VyaWFsaXplRm9ySW5zcGVjdG9yKFNjcmlwdFN0YXRlKiBzY3JpcHRTdAogfQogI2VuZGlmCiAK
K3ZvaWQgU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpyZWdpc3Rlck1lbW9yeUFsbG9jYXRlZFdpdGhD
dXJyZW50U2NyaXB0Q29udGV4dCgpCit7CisgICAgaWYgKG1fZXh0ZXJuYWxseUFsbG9jYXRlZE1l
bW9yeSkKKyAgICAgICAgcmV0dXJuOworICAgIG1fZXh0ZXJuYWxseUFsbG9jYXRlZE1lbW9yeSA9
IHN0YXRpY19jYXN0PGludHB0cl90PihtX2RhdGEubGVuZ3RoKCkpOworICAgIHY4OjpWODo6QWRq
dXN0QW1vdW50T2ZFeHRlcm5hbEFsbG9jYXRlZE1lbW9yeShtX2V4dGVybmFsbHlBbGxvY2F0ZWRN
ZW1vcnkpOworfQorCitTZXJpYWxpemVkU2NyaXB0VmFsdWU6On5TZXJpYWxpemVkU2NyaXB0VmFs
dWUoKQoreworICAgIC8vIElmIHRoZSBhbGxvY2F0ZWQgbWVtb3J5IHdhcyBub3QgcmVnaXN0ZXJl
ZCBiZWZvcmUsIHRoZW4gdGhpcyBjbGFzcyBpcyBsaWtlbHkKKyAgICAvLyB1c2VkIGluIGEgY29u
dGV4dCBvdGhlciB0aGVuIFdvcmtlcidzIG9ubWVzc2FnZSBlbnZpcm9ubWVudCBhbmQgdGhlIHBy
ZXNlbmNlIG9mCisgICAgLy8gY3VycmVudCB2OCBjb250ZXh0IGlzIG5vdCBndWFyYW50ZWVkLiBB
dm9pZCBjYWxsaW5nIHY4IHRoZW4uCisgICAgaWYgKG1fZXh0ZXJuYWxseUFsbG9jYXRlZE1lbW9y
eSkgeworICAgICAgICBBU1NFUlQodjg6Oklzb2xhdGU6OkdldEN1cnJlbnQoKSk7CisgICAgICAg
IHY4OjpWODo6QWRqdXN0QW1vdW50T2ZFeHRlcm5hbEFsbG9jYXRlZE1lbW9yeSgtbV9leHRlcm5h
bGx5QWxsb2NhdGVkTWVtb3J5KTsKKyAgICB9Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NlcmlhbGl6ZWRTY3JpcHRW
YWx1ZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2VyaWFsaXplZFNjcmlwdFZhbHVl
LmgKaW5kZXggODRkMTIyNC4uY2I2NjM4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgKQEAgLTQ1LDYgKzQ1LDggQEAgdHlwZWRl
ZiBWZWN0b3I8UmVmUHRyPFdURjo6QXJyYXlCdWZmZXI+LCAxPiBBcnJheUJ1ZmZlckFycmF5Owog
CiBjbGFzcyBTZXJpYWxpemVkU2NyaXB0VmFsdWUgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50
ZWQ8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiB7CiBwdWJsaWM6CisgICAgdmlydHVhbCB+U2VyaWFs
aXplZFNjcmlwdFZhbHVlKCk7CisKICAgICAvLyBJZiBhIHNlcmlhbGl6YXRpb24gZXJyb3Igb2Nj
dXJzIChlLmcuLCBjeWNsaWMgaW5wdXQgdmFsdWUpIHRoaXMKICAgICAvLyBmdW5jdGlvbiByZXR1
cm5zIGFuIGVtcHR5IHJlcHJlc2VudGF0aW9uLCBzY2hlZHVsZXMgYSBWOCBleGNlcHRpb24gdG8K
ICAgICAvLyBiZSB0aHJvd24gdXNpbmcgdjg6OlRocm93RXhjZXB0aW9uKCksIGFuZCBzZXRzIHxk
aWRUaHJvd3wuIEluIHRoaXMgY2FzZQpAQCAtNzcsNiArNzksMTIgQEAgcHVibGljOgogCiAgICAg
Y29uc3QgVmVjdG9yPFN0cmluZz4mIGJsb2JVUkxzKCkgY29uc3QgeyByZXR1cm4gbV9ibG9iVVJM
czsgfQogCisgICAgLy8gSW5mb3JtcyB0aGUgVjggYWJvdXQgZXh0ZXJuYWwgbWVtb3J5IGFsbG9j
YXRlZCBhbmQgb3duZWQgYnkgdGhpcyBvYmplY3QuIExhcmdlIHZhbHVlcyBzaG91bGQgY29udHJp
YnV0ZQorICAgIC8vIHRvIEdDIGNvdW50ZXJzIHRvIGV2ZW50dWFsbHkgdHJpZ2dlciBhIEdDLCBv
dGhlcndpc2UgZmxvb2Qgb2YgcG9zdE1lc3NhZ2UoKSBjYW4gY2F1c2UgT09NLgorICAgIC8vIE9r
IHRvIGludm9rZSBtdWx0aXBsZSB0aW1lcyAob25seSBhZGRzIG1lbW9yeSBvbmNlKS4KKyAgICAv
LyBUaGUgbWVtb3J5IHJlZ2lzdHJhdGlvbiBpcyByZXZva2VkIGF1dG9tYXRpY2FsbHkgaW4gZGVz
dHJ1Y3Rvci4KKyAgICB2b2lkIHJlZ2lzdGVyTWVtb3J5QWxsb2NhdGVkV2l0aEN1cnJlbnRTY3Jp
cHRDb250ZXh0KCk7CisKIHByaXZhdGU6CiAgICAgZW51bSBTdHJpbmdEYXRhTW9kZSB7CiAgICAg
ICAgIFN0cmluZ1ZhbHVlLApAQCAtOTMsNiArMTAxLDcgQEAgcHJpdmF0ZToKICAgICBTdHJpbmcg
bV9kYXRhOwogICAgIE93blB0cjxBcnJheUJ1ZmZlckNvbnRlbnRzQXJyYXk+IG1fYXJyYXlCdWZm
ZXJDb250ZW50c0FycmF5OwogICAgIFZlY3RvcjxTdHJpbmc+IG1fYmxvYlVSTHM7CisgICAgaW50
cHRyX3QgbV9leHRlcm5hbGx5QWxsb2NhdGVkTWVtb3J5OwogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VFdmVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vTWVzc2FnZUV2ZW50LmNwcAppbmRleCAxMjUyZDJjLi4yNGI1
MmRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTWVzc2FnZUV2ZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vTWVzc2FnZUV2ZW50LmNwcApAQCAtNzMsNiArNzMsMTAgQEAg
TWVzc2FnZUV2ZW50OjpNZXNzYWdlRXZlbnQoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFs
dWU+IGRhdGEsIGNvbnN0IFN0cmluZyYKICAgICAsIG1fc291cmNlKHNvdXJjZSkKICAgICAsIG1f
cG9ydHMocG9ydHMpCiB7CisjaWYgVVNFKFY4KQorICAgIGlmIChtX2RhdGFBc1NlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZSkKKyAgICAgICAgbV9kYXRhQXNTZXJpYWxpemVkU2NyaXB0VmFsdWUtPnJlZ2lz
dGVyTWVtb3J5QWxsb2NhdGVkV2l0aEN1cnJlbnRTY3JpcHRDb250ZXh0KCk7CisjZW5kaWYKIH0K
IAogTWVzc2FnZUV2ZW50OjpNZXNzYWdlRXZlbnQoY29uc3QgU3RyaW5nJiBkYXRhKQpAQCAtMTM0
LDYgKzEzOCwxMSBAQCB2b2lkIE1lc3NhZ2VFdmVudDo6aW5pdE1lc3NhZ2VFdmVudChjb25zdCBB
dG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBibwogICAgIG1fbGFzdEV2ZW50SWQg
PSBsYXN0RXZlbnRJZDsKICAgICBtX3NvdXJjZSA9IHNvdXJjZTsKICAgICBtX3BvcnRzID0gcG9y
dHM7CisKKyNpZiBVU0UoVjgpCisgICAgaWYgKG1fZGF0YUFzU2VyaWFsaXplZFNjcmlwdFZhbHVl
KQorICAgICAgICBtX2RhdGFBc1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS0+cmVnaXN0ZXJNZW1vcnlB
bGxvY2F0ZWRXaXRoQ3VycmVudFNjcmlwdENvbnRleHQoKTsKKyNlbmRpZgogfQogCiAvLyBGSVhN
RTogUmVtb3ZlIHRoaXMgd2hlbiB3ZSBoYXZlIGN1c3RvbSBPYmpDIGJpbmRpbmcgc3VwcG9ydC4K
</data>
<flag name="review"
          id="162607"
          type_id="1"
          status="+"
          setter="levin"
    />
          </attachment>
      

    </bug>

</bugzilla>