<?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>80787</bug_id>
          
          <creation_ts>2012-03-11 07:12:54 -0700</creation_ts>
          <short_desc>Provide access to process private and shared memory size</short_desc>
          <delta_ts>2014-12-12 14:36:54 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>INVALID</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>86636</blocked>
    
    <blocked>87830</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Yury Semikhatsky">yurys</reporter>
          <assigned_to name="Yury Semikhatsky">yurys</assigned_to>
          <cc>abarth</cc>
    
    <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>dglazkov</cc>
    
    <cc>fishd</cc>
    
    <cc>gustavo</cc>
    
    <cc>hazelwood</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>ojan</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>syoichi</cc>
    
    <cc>tonyg</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>575712</commentid>
    <comment_count>0</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-03-11 07:12:54 -0700</bug_when>
    <thetext>console.memory has accessors for JS heap size, it would be useful to
have similar getters for the process private and shared memory size.

Original Chromium request: http://code.google.com/p/chromium/issues/detail?id=108777</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575713</commentid>
    <comment_count>1</comment_count>
      <attachid>131224</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-03-11 07:18:27 -0700</bug_when>
    <thetext>Created attachment 131224
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575714</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-11 07:21:02 -0700</bug_when>
    <thetext>Please wait for approval from fishd@chromium.org before submitting because this patch contains changes to the Chromium public API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575715</commentid>
    <comment_count>3</comment_count>
      <attachid>131224</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2012-03-11 07:26:34 -0700</bug_when>
    <thetext>Comment on attachment 131224
Patch

Attachment 131224 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/11935479</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575717</commentid>
    <comment_count>4</comment_count>
      <attachid>131224</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-03-11 07:29:18 -0700</bug_when>
    <thetext>Comment on attachment 131224
Patch

Attachment 131224 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/11936427</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575719</commentid>
    <comment_count>5</comment_count>
      <attachid>131224</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-03-11 07:30:12 -0700</bug_when>
    <thetext>Comment on attachment 131224
Patch

Attachment 131224 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/11934506</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575720</commentid>
    <comment_count>6</comment_count>
      <attachid>131224</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-03-11 07:32:53 -0700</bug_when>
    <thetext>Comment on attachment 131224
Patch

Attachment 131224 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/11938482</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575721</commentid>
    <comment_count>7</comment_count>
      <attachid>131224</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-03-11 07:44:11 -0700</bug_when>
    <thetext>Comment on attachment 131224
Patch

Attachment 131224 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/11940442</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575722</commentid>
    <comment_count>8</comment_count>
      <attachid>131224</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-03-11 07:46:22 -0700</bug_when>
    <thetext>Comment on attachment 131224
Patch

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

&gt; Source/WebCore/page/MemoryInfo.cpp:64
&gt; +    return PlatformSupport::processPrivateMemorySize();

I.e. total/user heap is static, while this private memory is alive on a given instance? We should be consistent, preserve console.memory singleton and make all the properties of the performance.* consistent?

&gt; Source/WebCore/page/MemoryInfo.h:61
&gt; +    RefPtr&lt;Frame&gt; m_frame;

You are at risk of leaking the frame here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575726</commentid>
    <comment_count>9</comment_count>
      <attachid>131225</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-03-11 08:14:21 -0700</bug_when>
    <thetext>Created attachment 131225
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575727</commentid>
    <comment_count>10</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-03-11 08:17:29 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 131224 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=131224&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/page/MemoryInfo.cpp:64
&gt; &gt; +    return PlatformSupport::processPrivateMemorySize();
&gt; 
&gt; I.e. total/user heap is static, while this private memory is alive on a given instance? We should be consistent, preserve console.memory singleton and make all the properties of the performance.* consistent?
&gt; 
Done. Private and shared memory usage is calculated on MemoryInfo construction(which is consistent with JS heap size calculation).


&gt; &gt; Source/WebCore/page/MemoryInfo.h:61
&gt; &gt; +    RefPtr&lt;Frame&gt; m_frame;
&gt; 
&gt; You are at risk of leaking the frame here.
Got rid of RefPtr here as all data are now collected in the constructor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575728</commentid>
    <comment_count>11</comment_count>
      <attachid>131225</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2012-03-11 08:22:43 -0700</bug_when>
    <thetext>Comment on attachment 131225
Patch

Attachment 131225 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/11933552</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575731</commentid>
    <comment_count>12</comment_count>
      <attachid>131225</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-03-11 08:30:28 -0700</bug_when>
    <thetext>Comment on attachment 131225
Patch

Attachment 131225 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/11933554</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575732</commentid>
    <comment_count>13</comment_count>
      <attachid>131226</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-03-11 08:34:17 -0700</bug_when>
    <thetext>Created attachment 131226
Patch for landing

Fixed gtk port.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575736</commentid>
    <comment_count>14</comment_count>
      <attachid>131225</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-11 09:05:57 -0700</bug_when>
    <thetext>Comment on attachment 131225
Patch

Attachment 131225 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/11936459

New failing tests:
fast/dom/Window/window-properties-performance.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575737</commentid>
    <comment_count>15</comment_count>
      <attachid>131225</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-03-11 09:08:06 -0700</bug_when>
    <thetext>Comment on attachment 131225
Patch

Attachment 131225 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/11938494</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575744</commentid>
    <comment_count>16</comment_count>
      <attachid>131226</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-11 09:34:44 -0700</bug_when>
    <thetext>Comment on attachment 131226
Patch for landing

Attachment 131226 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/11935526

New failing tests:
fast/dom/Window/window-properties-performance.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575772</commentid>
    <comment_count>17</comment_count>
      <attachid>131226</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-11 10:25:47 -0700</bug_when>
    <thetext>Comment on attachment 131226
Patch for landing

Attachment 131226 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/11935552

New failing tests:
fast/dom/Window/window-properties-performance.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575817</commentid>
    <comment_count>18</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-03-11 12:35:37 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Please wait for approval from fishd@chromium.org before submitting because this patch contains changes to the Chromium public API.

This patch does not appear to have been reviewed by fishd.  Please don&apos;t make changes to the Chromium public API without his review.  (If he reviewed this patch in another forum, it would be helpful to note that somewhere in the bug.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575818</commentid>
    <comment_count>19</comment_count>
      <attachid>131226</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-03-11 12:38:52 -0700</bug_when>
    <thetext>Comment on attachment 131226
Patch for landing

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

&gt; Source/WebCore/page/MemoryInfo.cpp:53
&gt;          : m_totalJSHeapSize(0),
&gt;            m_usedJSHeapSize(0),
&gt; -          m_jsHeapSizeLimit(0)
&gt; +          m_jsHeapSizeLimit(0),
&gt; +          m_processPrivateMemorySize(0),
&gt; +          m_processSharedMemorySize(0)

This initializer list isn&apos;t in the correct style.  The &quot;,&quot; should be vertically aligned with the &quot;:&quot;

&gt; Source/WebCore/page/MemoryInfo.idl:42
&gt; +        readonly attribute unsigned long long processPrivateMemorySize;
&gt; +        readonly attribute unsigned long long processSharedMemorySize;

Should these APIs only be exposed in PLATFORM(CHROMIUM) since they&apos;ll always be zero elsewhere?  Should we implement them on other platforms as well?  Is there a spec somewhere for this interface?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575984</commentid>
    <comment_count>20</comment_count>
      <attachid>131289</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-03-12 01:19:56 -0700</bug_when>
    <thetext>Created attachment 131289
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>576002</commentid>
    <comment_count>21</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-03-12 01:42:02 -0700</bug_when>
    <thetext>(In reply to comment #18)
&gt; (In reply to comment #2)
&gt; &gt; Please wait for approval from fishd@chromium.org before submitting because this patch contains changes to the Chromium public API.
&gt; 
&gt; This patch does not appear to have been reviewed by fishd.  Please don&apos;t make changes to the Chromium public API without his review.  (If he reviewed this patch in another forum, it would be helpful to note that somewhere in the bug.)

Of cause we will wait for fishd@ approval before submitting as advised by the WebKit Review Bot.


(In reply to comment #19)
&gt; (From update of attachment 131226 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=131226&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/page/MemoryInfo.cpp:53
&gt; &gt;          : m_totalJSHeapSize(0),
&gt; &gt;            m_usedJSHeapSize(0),
&gt; &gt; -          m_jsHeapSizeLimit(0)
&gt; &gt; +          m_jsHeapSizeLimit(0),
&gt; &gt; +          m_processPrivateMemorySize(0),
&gt; &gt; +          m_processSharedMemorySize(0)
&gt; 
&gt; This initializer list isn&apos;t in the correct style.  The &quot;,&quot; should be vertically aligned with the &quot;:&quot;
&gt; 
Fixed.


&gt; &gt; Source/WebCore/page/MemoryInfo.idl:42
&gt; &gt; +        readonly attribute unsigned long long processPrivateMemorySize;
&gt; &gt; +        readonly attribute unsigned long long processSharedMemorySize;
&gt; 
&gt; Should these APIs only be exposed in PLATFORM(CHROMIUM) since they&apos;ll always be zero elsewhere?  Should we implement them on other platforms as well?

I don&apos;t think we should hide these attribute behind PLATFORM(CHROMIUM) guard.  I don&apos;t see any properties exposed in PLATFORM(FOO) in any other WebCore idls. MemoryInfo.jsHeapSizeLimit in MemoryInfo.idl doesn&apos;t make sense for JSC and is still exposed there without preprocessor guards, though with a custom getter. I think the proper way would be to have it implemented on other platforms as well, but I would leave it to the platform maintainers.


&gt; Is there a spec somewhere for this interface?
No that I know of. This instrumentation is still experimental and controlled by a setting which is disabled by default(can be enabled in Chromium by passing --enable-memory-info command line switch). It may make sense to have it a part of Web Performnce API eventually. Tony Gentilcore should know better if someone worked on the spec in that direction.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>576051</commentid>
    <comment_count>22</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2012-03-12 03:38:24 -0700</bug_when>
    <thetext>&gt; &gt; Is there a spec somewhere for this interface?
&gt; No that I know of. This instrumentation is still experimental and controlled by a setting which is disabled by default(can be enabled in Chromium by passing --enable-memory-info command line switch). It may make sense to have it a part of Web Performnce API eventually. 

What happened here? It looks to me like these are public now...

My command line (from about:version):
/Applications/Google Chrome.app/Contents/MacOS/Google Chrome -psn_0_172074 --flag-switches-begin --enable-print-preview --enable-sync-tabs --flag-switches-end

My console:
&gt; window.performance.memory.usedJSHeapSize
8117948

&gt; Tony Gentilcore should know better if someone worked on the spec in that direction.

My understanding was that this was completely abandoned because of the security/privacy objections in: https://lists.webkit.org/pipermail/webkit-dev/2010-June/013053.html

I&apos;m quite surprised to see that this API appears to be public and to see new things being added to it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>576073</commentid>
    <comment_count>23</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-03-12 05:21:41 -0700</bug_when>
    <thetext>(In reply to comment #22)
&gt; &gt; &gt; Is there a spec somewhere for this interface?
&gt; &gt; No that I know of. This instrumentation is still experimental and controlled by a setting which is disabled by default(can be enabled in Chromium by passing --enable-memory-info command line switch). It may make sense to have it a part of Web Performnce API eventually. 
&gt; 
&gt; What happened here? It looks to me like these are public now...
&gt; 
&gt; My command line (from about:version):
&gt; /Applications/Google Chrome.app/Contents/MacOS/Google Chrome -psn_0_172074 --flag-switches-begin --enable-print-preview --enable-sync-tabs --flag-switches-end
&gt; 
&gt; My console:
&gt; &gt; window.performance.memory.usedJSHeapSize
&gt; 8117948
&gt; 

This option must be enabled with a local policy for your browser which can override command line switches.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>576508</commentid>
    <comment_count>24</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-03-12 14:17:01 -0700</bug_when>
    <thetext>Google enables it on all machines on the corporate network.

Bug 80444 is also related in that it tries to address some of the security concerns.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>577210</commentid>
    <comment_count>25</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2012-03-13 03:29:12 -0700</bug_when>
    <thetext>(In reply to comment #24)
&gt; Google enables it on all machines on the corporate network.

Whew, thanks for clearing that up for me.

&gt; Bug 80444 is also related in that it tries to address some of the security concerns.

Oh, cool idea. Do you expect this will help get us to a point where this could be exposed to the web platform?

In any case, how do you think we should be proceeding with this interface? Since it is disabled by default, does that mean we shouldn&apos;t bother with a vendor prefix? A counterpoint would be that if we are able to expose it to the web in the future, we might already be somewhat locked in to the non-prefixed version, so maybe it is better to have the prefix now. Also, should we be documenting this in a spec in parallel with the implementation?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>577693</commentid>
    <comment_count>26</comment_count>
      <attachid>131289</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2012-03-13 12:50:55 -0700</bug_when>
    <thetext>Comment on attachment 131289
Patch

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

&gt; Source/WebKit/chromium/public/platform/WebKitPlatformSupport.h:197
&gt; +    virtual bool getProcessMemorySize(size_t* privateBytes, size_t* sharedBytes) { return false; }

nit: please preserve the two new lines before a section header.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>577696</commentid>
    <comment_count>27</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-03-13 12:51:33 -0700</bug_when>
    <thetext>&gt; &gt; Bug 80444 is also related in that it tries to address some of the security concerns.
&gt; 
&gt; Oh, cool idea. Do you expect this will help get us to a point where this could be exposed to the web platform?

That&apos;s the goal.  It&apos;s still behind a flag, but we&apos;re going to experiment with turning that flag on by default.

&gt; In any case, how do you think we should be proceeding with this interface? Since it is disabled by default, does that mean we shouldn&apos;t bother with a vendor prefix? A counterpoint would be that if we are able to expose it to the web in the future, we might already be somewhat locked in to the non-prefixed version, so maybe it is better to have the prefix now. Also, should we be documenting this in a spec in parallel with the implementation?

Either Yury or I should put up a proposal on the WhatWG wiki http://wiki.whatwg.org/wiki/Main_Page in the proposals category.  This doesn&apos;t need to be much, but it should say what each of the properties are called and what they mean.  That&apos;s something we&apos;re planning to do as part of Bug 80444, but it&apos;s relevant here too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>584132</commentid>
    <comment_count>28</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2012-03-21 07:56:40 -0700</bug_when>
    <thetext>
&gt; Either Yury or I should put up a proposal on the WhatWG wiki http://wiki.whatwg.org/wiki/Main_Page in the proposals category.  This doesn&apos;t need to be much, but it should say what each of the properties are called and what they mean.  That&apos;s something we&apos;re planning to do as part of Bug 80444, but it&apos;s relevant here too.

Sounds like a great idea. I&apos;d be interested in seeing that and some plan regarding vendor prefixes along with patches to the memory interface like this one.

You might also consider sending a link to that wiki entry to public-web-perf@w3.org. That&apos;s where ongoing additions to window.performance are being specced and I&apos;m sure those folks would be very interested in this as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>593191</commentid>
    <comment_count>29</comment_count>
      <attachid>131289</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-04-01 23:17:20 -0700</bug_when>
    <thetext>Comment on attachment 131289
Patch

Sounds like there&apos;s some more standards work to be done before we land this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1055249</commentid>
    <comment_count>30</comment_count>
    <who name="Brian Burg">burg</who>
    <bug_when>2014-12-12 14:36:54 -0800</bug_when>
    <thetext>Closing as invalid, as this bug pertains to the old inspector UI and/or its tests.
Please file a new bug (https://www.webkit.org/new-inspector-bug) if the bug/feature/issue is still relevant to WebKit trunk.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131224</attachid>
            <date>2012-03-11 07:18:27 -0700</date>
            <delta_ts>2012-03-11 08:14:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80787-20120311181825.patch</filename>
            <type>text/plain</type>
            <size>8277</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwMzg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjUwM2IzZWU0MTVlZTdh
MzE1YjAzMDI2Y2Y0Y2VkNDk4MTFkMWU3MS4uNWYzNzJhYWQ2Yjc1Yjg4OTEzYzEyZTdjYWUzMjM2
YTk4OGIzOTBlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDEyLTAzLTExICBZdXJ5
IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IHByb3ZpZGUgYWNjZXNzIHRvIHByb2Nlc3MgcHJpdmF0ZSBhbmQgc2hhcmVkIG1lbW9yeSBz
aXplCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MDc4
NworCisgICAgICAgIEV4cG9zZWQgcHJvY2VzcyBwcml2YXRlIGFuZCBzaGFyZWQgbWVtb3J5IHNp
emVzIG9uIGNvbnNvbGUubWVtb3J5IG9iamVjdC4KKyAgICAgICAgVmlzaWJpbGl0eSBvZiB0aGlz
IGZ1bmN0aW9uYWxpdHkgbGlrZSB0aGUgcmVzdCBjb25zb2xlLm1lbW9yeSBpcyBjb250cm9sbGVk
CisgICAgICAgIGJ5IHRoZSBicm93c2VyIHNldHRpbmcuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwYWdlL01lbW9yeUluZm8uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6TWVtb3J5SW5mbzo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVtb3J5SW5mbzo6TWVtb3J5SW5mbyk6CisgICAgICAgIChXZWJDb3Jl
OjpNZW1vcnlJbmZvOjpwcm9jZXNzUHJpdmF0ZU1lbW9yeVNpemUpOgorICAgICAgICAoV2ViQ29y
ZTo6TWVtb3J5SW5mbzo6cHJvY2Vzc1NoYXJlZE1lbW9yeVNpemUpOgorICAgICAgICAoV2ViQ29y
ZTo6TWVtb3J5SW5mbzo6bWVtb3J5SW5mb0VuYWJsZWQpOgorICAgICAgICAqIHBhZ2UvTWVtb3J5
SW5mby5oOgorICAgICAgICAoTWVtb3J5SW5mbyk6CisgICAgICAgICogcGFnZS9NZW1vcnlJbmZv
LmlkbDoKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9QbGF0Zm9ybVN1cHBvcnQuaDoKKyAg
ICAgICAgKFBsYXRmb3JtU3VwcG9ydCk6CisKIDIwMTItMDMtMDkgIEpvbiBMZWUgIDxqb25sZWVA
YXBwbGUuY29tPgogCiAgICAgICAgIFJlbmFtZSBOb3RpZmljYXRpb25QcmVzZW50ZXIgdG8gTm90
aWZpY2F0aW9uQ2xpZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IGJlNDgzY2MzOWY5
ZGRjYTVlZDFiN2NkNmQ1ZWMwMGUxNTQ3N2QzMmIuLjAwZjM2MmJkM2E3NjMxOTYyMmYzYTNlOTdi
N2JiNjY4ZDI3MzRhNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEg
QEAKKzIwMTItMDMtMTEgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CisK
KyAgICAgICAgV2ViIEluc3BlY3RvcjogcHJvdmlkZSBhY2Nlc3MgdG8gcHJvY2VzcyBwcml2YXRl
IGFuZCBzaGFyZWQgbWVtb3J5IHNpemUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTgwNzg3CisKKyAgICAgICAgRXh0ZW5kZWQgV2ViS2l0UGxhdGZvcm1T
dXBwb3J0IHdpdGggZ2V0dGVyIGZvciByZW5kZXIgcHJvY2VzcyBwcml2YXRlIGFuZAorICAgICAg
ICBzaGFyZWQgbWVtb3J5LgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogcHVibGljL3BsYXRmb3JtL1dlYktpdFBsYXRmb3JtU3VwcG9ydC5oOgorICAg
ICAgICAoV2ViS2l0OjpXZWJLaXRQbGF0Zm9ybVN1cHBvcnQ6OnByb2Nlc3NQcml2YXRlTWVtb3J5
U2l6ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYktpdFBsYXRmb3JtU3VwcG9ydDo6cHJvY2Vzc1No
YXJlZE1lbW9yeVNpemUpOgorICAgICAgICAqIHNyYy9QbGF0Zm9ybVN1cHBvcnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UGxhdGZvcm1TdXBwb3J0Ojpwcm9jZXNzUHJpdmF0ZU1lbW9yeVNpemUp
OgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVN1cHBvcnQ6
OnByb2Nlc3NTaGFyZWRNZW1vcnlTaXplKToKKwogMjAxMi0wMy0xMCAgU2hlcmlmZiBCb3QgIDx3
ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGlu
ZyBvdXQgcjExMDM4NC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWVtb3J5SW5m
by5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL01lbW9yeUluZm8uY3BwCmluZGV4IDU3ZGFlMmI0
MDc0ZWMzMDVjYTQ2MTA1MjY0NjBlM2UzMmFhZjk4ZTMuLmE2ODJiMDRmYzgwNmU3ZDc0NmJmYTZk
NDMyOGE1YWI1ZTIxMTEwOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWVtb3J5
SW5mby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9NZW1vcnlJbmZvLmNwcApAQCAtMzIs
MTUgKzMyLDIyIEBACiAjaW5jbHVkZSAiTWVtb3J5SW5mby5oIgogCiAjaW5jbHVkZSAiRnJhbWUu
aCIKKyNpbmNsdWRlICJQbGF0Zm9ybVN1cHBvcnQuaCIKICNpbmNsdWRlICJTY3JpcHRHQ0V2ZW50
LmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitQYXNz
UmVmUHRyPE1lbW9yeUluZm8+IE1lbW9yeUluZm86OmNyZWF0ZShGcmFtZSogZnJhbWUpCit7Cisg
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBNZW1vcnlJbmZvKGZyYW1lKSk7Cit9CisKIE1lbW9yeUlu
Zm86Ok1lbW9yeUluZm8oRnJhbWUqIGZyYW1lKQogICAgICAgICA6IG1fdG90YWxKU0hlYXBTaXpl
KDApLAogICAgICAgICAgIG1fdXNlZEpTSGVhcFNpemUoMCksCi0gICAgICAgICAgbV9qc0hlYXBT
aXplTGltaXQoMCkKKyAgICAgICAgICBtX2pzSGVhcFNpemVMaW1pdCgwKSwKKyAgICAgICAgICBt
X2ZyYW1lKGZyYW1lKQogewogICAgIGlmIChmcmFtZSAmJiBmcmFtZS0+c2V0dGluZ3MoKSAmJiBm
cmFtZS0+c2V0dGluZ3MoKS0+bWVtb3J5SW5mb0VuYWJsZWQoKSkgewogI2lmIEVOQUJMRShJTlNQ
RUNUT1IpCkBAIC00OSw0ICs1NiwzMSBAQCBNZW1vcnlJbmZvOjpNZW1vcnlJbmZvKEZyYW1lKiBm
cmFtZSkKICAgICB9CiB9CiAKK3NpemVfdCBNZW1vcnlJbmZvOjpwcm9jZXNzUHJpdmF0ZU1lbW9y
eVNpemUoKSBjb25zdAoreworICAgIGlmICghbWVtb3J5SW5mb0VuYWJsZWQoKSkKKyAgICAgICAg
cmV0dXJuIDA7CisjaWYgUExBVEZPUk0oQ0hST01JVU0pCisgICAgcmV0dXJuIFBsYXRmb3JtU3Vw
cG9ydDo6cHJvY2Vzc1ByaXZhdGVNZW1vcnlTaXplKCk7CisjZWxzZQorICAgIHJldHVybiAwOwor
I2VuZGlmCit9CisKK3NpemVfdCBNZW1vcnlJbmZvOjpwcm9jZXNzU2hhcmVkTWVtb3J5U2l6ZSgp
IGNvbnN0Cit7CisgICAgaWYgKCFtZW1vcnlJbmZvRW5hYmxlZCgpKQorICAgICAgICByZXR1cm4g
MDsKKyNpZiBQTEFURk9STShDSFJPTUlVTSkKKyAgICByZXR1cm4gUGxhdGZvcm1TdXBwb3J0Ojpw
cm9jZXNzU2hhcmVkTWVtb3J5U2l6ZSgpOworI2Vsc2UKKyAgICByZXR1cm4gMDsKKyNlbmRpZgor
fQorCitib29sIE1lbW9yeUluZm86Om1lbW9yeUluZm9FbmFibGVkKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gbV9mcmFtZSAmJiBtX2ZyYW1lLT5zZXR0aW5ncygpICYmIG1fZnJhbWUtPnNldHRpbmdz
KCktPm1lbW9yeUluZm9FbmFibGVkKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWVtb3J5SW5mby5oIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9NZW1vcnlJbmZvLmgKaW5kZXggMjdhNzM0NGI4ZmYzMzkzOTQ2NWFlODUxNjM4MmM1
YTkzMDVhMjI5Mi4uZWFkNzI4ODNjMGJmOGRmODAxNjEyMWM0YzAwZjFlMDMyMWFmNjI2YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9NZW1vcnlJbmZvLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9NZW1vcnlJbmZvLmgKQEAgLTMzLDYgKzMzLDcgQEAKIAogI2luY2x1ZGUgPHd0
Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3
dGYvUmVmUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDAsMTggKzQxLDI0IEBA
IGNsYXNzIEZyYW1lOwogCiBjbGFzcyBNZW1vcnlJbmZvIDogcHVibGljIFJlZkNvdW50ZWQ8TWVt
b3J5SW5mbz4gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lbW9yeUluZm8+IGNy
ZWF0ZShGcmFtZSogZnJhbWUpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBNZW1vcnlJbmZvKGZyYW1l
KSk7IH0KKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxNZW1vcnlJbmZvPiBjcmVhdGUoRnJhbWUqKTsK
IAogICAgIHNpemVfdCB0b3RhbEpTSGVhcFNpemUoKSBjb25zdCB7IHJldHVybiBtX3RvdGFsSlNI
ZWFwU2l6ZTsgfQogICAgIHNpemVfdCB1c2VkSlNIZWFwU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1f
dXNlZEpTSGVhcFNpemU7IH0KICAgICBzaXplX3QganNIZWFwU2l6ZUxpbWl0KCkgY29uc3QgeyBy
ZXR1cm4gbV9qc0hlYXBTaXplTGltaXQ7IH0KIAorICAgIHNpemVfdCBwcm9jZXNzUHJpdmF0ZU1l
bW9yeVNpemUoKSBjb25zdDsKKyAgICBzaXplX3QgcHJvY2Vzc1NoYXJlZE1lbW9yeVNpemUoKSBj
b25zdDsKKwogcHJpdmF0ZToKICAgICBNZW1vcnlJbmZvKEZyYW1lKik7CiAKKyAgICBib29sIG1l
bW9yeUluZm9FbmFibGVkKCkgY29uc3Q7CisKICAgICBzaXplX3QgbV90b3RhbEpTSGVhcFNpemU7
CiAgICAgc2l6ZV90IG1fdXNlZEpTSGVhcFNpemU7CiAgICAgc2l6ZV90IG1fanNIZWFwU2l6ZUxp
bWl0OworICAgIFJlZlB0cjxGcmFtZT4gbV9mcmFtZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWVtb3J5SW5mby5pZGwgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL01lbW9yeUluZm8uaWRsCmluZGV4IGI5MTQ5ZDU0ZDQ1ZjkzMDE3
NGYzNDI2ZTViYjMzZWI3ZjlkMDAyNDkuLmM1NzBiMzZkOTM4YmNmNjdkZDEwMTliYWVhYzBhMmI1
MDNjYTdmOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWVtb3J5SW5mby5pZGwK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9NZW1vcnlJbmZvLmlkbApAQCAtMzgsNiArMzgsOCBA
QCBtb2R1bGUgd2luZG93IHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxv
bmcgdXNlZEpTSGVhcFNpemU7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbSlNDdXN0b21H
ZXR0ZXJdIHVuc2lnbmVkIGxvbmcganNIZWFwU2l6ZUxpbWl0OwogCisgICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxvbmcgcHJvY2Vzc1ByaXZhdGVNZW1vcnlTaXplOwor
ICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsb25nIHByb2Nlc3NTaGFy
ZWRNZW1vcnlTaXplOwogICAgIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2Nocm9taXVtL1BsYXRmb3JtU3VwcG9ydC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vY2hyb21pdW0vUGxhdGZvcm1TdXBwb3J0LmgKaW5kZXggMTI4ZDJhM2U5ODgzY2QyYWI2Yjg0
NTgwYzA2ZTJkYWZjMGU2MDMyZS4uNjIxZjFlYjYxZDI5N2E0MDcyNDc1MmMxNTNkNzFmNjM2ZTcw
ODg5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUGxhdGZv
cm1TdXBwb3J0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUGxhdGZv
cm1TdXBwb3J0LmgKQEAgLTIxNCw2ICsyMTQsMTMgQEAgcHVibGljOgogICAgIC8vIERlbHRhIG9m
IG1lbW9yeSB1c2FnZSBncm93dGggKHZzLiBsYXN0IGFjdHVhbE1lbW9yeVVzYWdlTUIoKSkgdG8g
Zm9yY2UgR0Mgd2hlbiBtZW1vcnkgdXNhZ2UgaXMgaGlnaC4KICAgICBzdGF0aWMgaW50IGhpZ2hV
c2FnZURlbHRhTUIoKTsKIAorICAgIC8vIFJldHVybiBwcml2YXRlIG1lbW9yeSB1c2FnZSwgaW4g
Ynl0ZXMuIFByaXZhdGUgYnl0ZXMgaXMgdGhlIGFtb3VudCBvZgorICAgIC8vIG1lbW9yeSBjdXJy
ZW50bHkgYWxsb2NhdGVkIHRvIHRoaXMgcHJvY2VzcyB0aGF0IGNhbm5vdCBiZSBzaGFyZWQuIFJl
dHVybnMKKyAgICAvLyAwIG9uIHBsYXRmb3JtIHNwZWNpZmljIGVycm9yIGNvbmRpdGlvbnMuCisg
ICAgc3RhdGljIHNpemVfdCBwcm9jZXNzUHJpdmF0ZU1lbW9yeVNpemUoKTsKKyAgICAvLyBSZXR1
cm4gcHJpdmF0ZSBzaGFyZWQgbWVtb3J5IHVzYWdlLCBpbiBieXRlcy4KKyAgICBzdGF0aWMgc2l6
ZV90IHByb2Nlc3NTaGFyZWRNZW1vcnlTaXplKCk7CisKICAgICAvLyBNaW1lVHlwZSAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAg
IHN0YXRpYyBib29sIGlzU3VwcG9ydGVkSW1hZ2VNSU1FVHlwZShjb25zdCBTdHJpbmcmIG1pbWVU
eXBlKTsKICAgICBzdGF0aWMgYm9vbCBpc1N1cHBvcnRlZEphdmFTY3JpcHRNSU1FVHlwZShjb25z
dCBTdHJpbmcmIG1pbWVUeXBlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
cHVibGljL3BsYXRmb3JtL1dlYktpdFBsYXRmb3JtU3VwcG9ydC5oIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvcGxhdGZvcm0vV2ViS2l0UGxhdGZvcm1TdXBwb3J0LmgKaW5kZXggZDJj
MWZkODE0NWQyMWM2ZDI4MDRlZjE2ZDNhZmNlMzIwZDMxZTVlZi4uNWRmMTNlOTVjYzA1MTY0MGI0
NzFjZmY0MWI1ZmZlNzIxMTQ5ZjE1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9wdWJsaWMvcGxhdGZvcm0vV2ViS2l0UGxhdGZvcm1TdXBwb3J0LmgKKysrIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9wdWJsaWMvcGxhdGZvcm0vV2ViS2l0UGxhdGZvcm1TdXBwb3J0LmgKQEAg
LTE5MSw2ICsxOTEsOCBAQCBwdWJsaWM6CiAgICAgLy8gRGVsdGEgb2YgbWVtb3J5IHVzYWdlIGdy
b3d0aCAodnMuIGxhc3QgYWN0dWFsTWVtb3J5VXNhZ2VNQigpKSB0byBmb3JjZSBHQyB3aGVuIG1l
bW9yeSB1c2FnZSBpcyBoaWdoLgogICAgIHZpcnR1YWwgc2l6ZV90IGhpZ2hVc2FnZURlbHRhTUIo
KSB7IHJldHVybiAxMjg7IH0KIAorICAgIHZpcnR1YWwgc2l6ZV90IHByb2Nlc3NQcml2YXRlTWVt
b3J5U2l6ZSgpIHsgcmV0dXJuIDA7IH0KKyAgICB2aXJ0dWFsIHNpemVfdCBwcm9jZXNzU2hhcmVk
TWVtb3J5U2l6ZSgpIHsgcmV0dXJuIDA7IH0KIAogICAgIC8vIFRocmVhZHMgLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9QbGF0Zm9ybVN1cHBvcnQuY3BwIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvUGxhdGZvcm1TdXBwb3J0LmNwcAppbmRleCA2M2JlMDI0NWNj
MzVkNDkwZmNmNjhkYTJiZTM5YmRhOGE2ZGRiM2FhLi5hNWE0NTNkNmRjZGQ3YWE4YTM0NWYxZGYz
ZGYzYzI0NDQwYTRlYWRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Q
bGF0Zm9ybVN1cHBvcnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1BsYXRm
b3JtU3VwcG9ydC5jcHAKQEAgLTEwNTcsNiArMTA1NywxNiBAQCBpbnQgUGxhdGZvcm1TdXBwb3J0
OjpoaWdoVXNhZ2VEZWx0YU1CKCkKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8aW50Pih3ZWJLaXRQ
bGF0Zm9ybVN1cHBvcnQoKS0+aGlnaFVzYWdlRGVsdGFNQigpKTsKIH0KIAorc2l6ZV90IFBsYXRm
b3JtU3VwcG9ydDo6cHJvY2Vzc1ByaXZhdGVNZW1vcnlTaXplKCkKK3sKKyAgICByZXR1cm4gd2Vi
S2l0UGxhdGZvcm1TdXBwb3J0KCktPnByb2Nlc3NQcml2YXRlTWVtb3J5U2l6ZSgpOworfQorCitz
aXplX3QgUGxhdGZvcm1TdXBwb3J0Ojpwcm9jZXNzU2hhcmVkTWVtb3J5U2l6ZSgpCit7CisgICAg
cmV0dXJuIHdlYktpdFBsYXRmb3JtU3VwcG9ydCgpLT5wcm9jZXNzU2hhcmVkTWVtb3J5U2l6ZSgp
OworfQorCiBpbnQgUGxhdGZvcm1TdXBwb3J0OjpzY3JlZW5Ib3Jpem9udGFsRFBJKFdpZGdldCog
d2lkZ2V0KQogewogICAgIFdlYldpZGdldENsaWVudCogY2xpZW50ID0gdG9XZWJXaWRnZXRDbGll
bnQod2lkZ2V0KTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131225</attachid>
            <date>2012-03-11 08:14:21 -0700</date>
            <delta_ts>2012-03-12 01:19:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80787-20120311191419.patch</filename>
            <type>text/plain</type>
            <size>7906</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwMzg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjUwM2IzZWU0MTVlZTdh
MzE1YjAzMDI2Y2Y0Y2VkNDk4MTFkMWU3MS4uNWYzNzJhYWQ2Yjc1Yjg4OTEzYzEyZTdjYWUzMjM2
YTk4OGIzOTBlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDEyLTAzLTExICBZdXJ5
IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IHByb3ZpZGUgYWNjZXNzIHRvIHByb2Nlc3MgcHJpdmF0ZSBhbmQgc2hhcmVkIG1lbW9yeSBz
aXplCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MDc4
NworCisgICAgICAgIEV4cG9zZWQgcHJvY2VzcyBwcml2YXRlIGFuZCBzaGFyZWQgbWVtb3J5IHNp
emVzIG9uIGNvbnNvbGUubWVtb3J5IG9iamVjdC4KKyAgICAgICAgVmlzaWJpbGl0eSBvZiB0aGlz
IGZ1bmN0aW9uYWxpdHkgbGlrZSB0aGUgcmVzdCBjb25zb2xlLm1lbW9yeSBpcyBjb250cm9sbGVk
CisgICAgICAgIGJ5IHRoZSBicm93c2VyIHNldHRpbmcuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwYWdlL01lbW9yeUluZm8uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6TWVtb3J5SW5mbzo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVtb3J5SW5mbzo6TWVtb3J5SW5mbyk6CisgICAgICAgIChXZWJDb3Jl
OjpNZW1vcnlJbmZvOjpwcm9jZXNzUHJpdmF0ZU1lbW9yeVNpemUpOgorICAgICAgICAoV2ViQ29y
ZTo6TWVtb3J5SW5mbzo6cHJvY2Vzc1NoYXJlZE1lbW9yeVNpemUpOgorICAgICAgICAoV2ViQ29y
ZTo6TWVtb3J5SW5mbzo6bWVtb3J5SW5mb0VuYWJsZWQpOgorICAgICAgICAqIHBhZ2UvTWVtb3J5
SW5mby5oOgorICAgICAgICAoTWVtb3J5SW5mbyk6CisgICAgICAgICogcGFnZS9NZW1vcnlJbmZv
LmlkbDoKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9QbGF0Zm9ybVN1cHBvcnQuaDoKKyAg
ICAgICAgKFBsYXRmb3JtU3VwcG9ydCk6CisKIDIwMTItMDMtMDkgIEpvbiBMZWUgIDxqb25sZWVA
YXBwbGUuY29tPgogCiAgICAgICAgIFJlbmFtZSBOb3RpZmljYXRpb25QcmVzZW50ZXIgdG8gTm90
aWZpY2F0aW9uQ2xpZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IGJlNDgzY2MzOWY5
ZGRjYTVlZDFiN2NkNmQ1ZWMwMGUxNTQ3N2QzMmIuLjAwZjM2MmJkM2E3NjMxOTYyMmYzYTNlOTdi
N2JiNjY4ZDI3MzRhNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEg
QEAKKzIwMTItMDMtMTEgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CisK
KyAgICAgICAgV2ViIEluc3BlY3RvcjogcHJvdmlkZSBhY2Nlc3MgdG8gcHJvY2VzcyBwcml2YXRl
IGFuZCBzaGFyZWQgbWVtb3J5IHNpemUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTgwNzg3CisKKyAgICAgICAgRXh0ZW5kZWQgV2ViS2l0UGxhdGZvcm1T
dXBwb3J0IHdpdGggZ2V0dGVyIGZvciByZW5kZXIgcHJvY2VzcyBwcml2YXRlIGFuZAorICAgICAg
ICBzaGFyZWQgbWVtb3J5LgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogcHVibGljL3BsYXRmb3JtL1dlYktpdFBsYXRmb3JtU3VwcG9ydC5oOgorICAg
ICAgICAoV2ViS2l0OjpXZWJLaXRQbGF0Zm9ybVN1cHBvcnQ6OnByb2Nlc3NQcml2YXRlTWVtb3J5
U2l6ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYktpdFBsYXRmb3JtU3VwcG9ydDo6cHJvY2Vzc1No
YXJlZE1lbW9yeVNpemUpOgorICAgICAgICAqIHNyYy9QbGF0Zm9ybVN1cHBvcnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UGxhdGZvcm1TdXBwb3J0Ojpwcm9jZXNzUHJpdmF0ZU1lbW9yeVNpemUp
OgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVN1cHBvcnQ6
OnByb2Nlc3NTaGFyZWRNZW1vcnlTaXplKToKKwogMjAxMi0wMy0xMCAgU2hlcmlmZiBCb3QgIDx3
ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGlu
ZyBvdXQgcjExMDM4NC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWVtb3J5SW5m
by5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL01lbW9yeUluZm8uY3BwCmluZGV4IDU3ZGFlMmI0
MDc0ZWMzMDVjYTQ2MTA1MjY0NjBlM2UzMmFhZjk4ZTMuLmExZTgwYzYxMzc3ZGFlNzE3MTllMDBk
YzgzOTg0YTUyODZjOTRlZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWVtb3J5
SW5mby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9NZW1vcnlJbmZvLmNwcApAQCAtMzIs
MjAgKzMyLDMxIEBACiAjaW5jbHVkZSAiTWVtb3J5SW5mby5oIgogCiAjaW5jbHVkZSAiRnJhbWUu
aCIKKyNpbmNsdWRlICJQbGF0Zm9ybVN1cHBvcnQuaCIKICNpbmNsdWRlICJTY3JpcHRHQ0V2ZW50
LmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitQYXNz
UmVmUHRyPE1lbW9yeUluZm8+IE1lbW9yeUluZm86OmNyZWF0ZShGcmFtZSogZnJhbWUpCit7Cisg
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBNZW1vcnlJbmZvKGZyYW1lKSk7Cit9CisKIE1lbW9yeUlu
Zm86Ok1lbW9yeUluZm8oRnJhbWUqIGZyYW1lKQogICAgICAgICA6IG1fdG90YWxKU0hlYXBTaXpl
KDApLAogICAgICAgICAgIG1fdXNlZEpTSGVhcFNpemUoMCksCi0gICAgICAgICAgbV9qc0hlYXBT
aXplTGltaXQoMCkKKyAgICAgICAgICBtX2pzSGVhcFNpemVMaW1pdCgwKSwKKyAgICAgICAgICBt
X3Byb2Nlc3NQcml2YXRlTWVtb3J5U2l6ZSgwKSwKKyAgICAgICAgICBtX3Byb2Nlc3NTaGFyZWRN
ZW1vcnlTaXplKDApCiB7CiAgICAgaWYgKGZyYW1lICYmIGZyYW1lLT5zZXR0aW5ncygpICYmIGZy
YW1lLT5zZXR0aW5ncygpLT5tZW1vcnlJbmZvRW5hYmxlZCgpKSB7CiAjaWYgRU5BQkxFKElOU1BF
Q1RPUikKICAgICAgICAgU2NyaXB0R0NFdmVudDo6Z2V0SGVhcFNpemUobV91c2VkSlNIZWFwU2l6
ZSwgbV90b3RhbEpTSGVhcFNpemUsIG1fanNIZWFwU2l6ZUxpbWl0KTsKICNlbmRpZgorI2lmIFBM
QVRGT1JNKENIUk9NSVVNKQorICAgICAgICBQbGF0Zm9ybVN1cHBvcnQ6OmdldFByb2Nlc3NNZW1v
cnlTaXplKCZtX3Byb2Nlc3NQcml2YXRlTWVtb3J5U2l6ZSwgJm1fcHJvY2Vzc1NoYXJlZE1lbW9y
eVNpemUpOworI2VuZGlmCiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL01lbW9yeUluZm8uaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWVtb3J5SW5mby5oCmluZGV4
IDI3YTczNDRiOGZmMzM5Mzk0NjVhZTg1MTYzODJjNWE5MzA1YTIyOTIuLjg3YTBmZDg1ZGExYzY4
NDNjYTAyYzhiNTAwM2QyZTZlMzhhZTRhZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvTWVtb3J5SW5mby5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWVtb3J5SW5mby5oCkBA
IC00MCwxOCArNDAsMjMgQEAgY2xhc3MgRnJhbWU7CiAKIGNsYXNzIE1lbW9yeUluZm8gOiBwdWJs
aWMgUmVmQ291bnRlZDxNZW1vcnlJbmZvPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQ
dHI8TWVtb3J5SW5mbz4gY3JlYXRlKEZyYW1lKiBmcmFtZSkgeyByZXR1cm4gYWRvcHRSZWYobmV3
IE1lbW9yeUluZm8oZnJhbWUpKTsgfQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lbW9yeUluZm8+
IGNyZWF0ZShGcmFtZSopOwogCiAgICAgc2l6ZV90IHRvdGFsSlNIZWFwU2l6ZSgpIGNvbnN0IHsg
cmV0dXJuIG1fdG90YWxKU0hlYXBTaXplOyB9CiAgICAgc2l6ZV90IHVzZWRKU0hlYXBTaXplKCkg
Y29uc3QgeyByZXR1cm4gbV91c2VkSlNIZWFwU2l6ZTsgfQogICAgIHNpemVfdCBqc0hlYXBTaXpl
TGltaXQoKSBjb25zdCB7IHJldHVybiBtX2pzSGVhcFNpemVMaW1pdDsgfQogCisgICAgc2l6ZV90
IHByb2Nlc3NQcml2YXRlTWVtb3J5U2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcHJvY2Vzc1ByaXZh
dGVNZW1vcnlTaXplOyB9CisgICAgc2l6ZV90IHByb2Nlc3NTaGFyZWRNZW1vcnlTaXplKCkgY29u
c3QgeyByZXR1cm4gbV9wcm9jZXNzU2hhcmVkTWVtb3J5U2l6ZTsgfQorCiBwcml2YXRlOgogICAg
IE1lbW9yeUluZm8oRnJhbWUqKTsKIAogICAgIHNpemVfdCBtX3RvdGFsSlNIZWFwU2l6ZTsKICAg
ICBzaXplX3QgbV91c2VkSlNIZWFwU2l6ZTsKICAgICBzaXplX3QgbV9qc0hlYXBTaXplTGltaXQ7
CisgICAgc2l6ZV90IG1fcHJvY2Vzc1ByaXZhdGVNZW1vcnlTaXplOworICAgIHNpemVfdCBtX3By
b2Nlc3NTaGFyZWRNZW1vcnlTaXplOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9NZW1vcnlJbmZvLmlkbCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvTWVtb3J5SW5mby5pZGwKaW5kZXggYjkxNDlkNTRkNDVmOTMwMTc0ZjM0MjZlNWJi
MzNlYjdmOWQwMDI0OS4uYzU3MGIzNmQ5MzhiY2Y2N2RkMTAxOWJhZWFjMGEyYjUwM2NhN2Y4ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9NZW1vcnlJbmZvLmlkbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL01lbW9yeUluZm8uaWRsCkBAIC0zOCw2ICszOCw4IEBAIG1vZHVsZSB3
aW5kb3cgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyB1c2VkSlNI
ZWFwU2l6ZTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtKU0N1c3RvbUdldHRlcl0gdW5z
aWduZWQgbG9uZyBqc0hlYXBTaXplTGltaXQ7CiAKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IHVuc2lnbmVkIGxvbmcgbG9uZyBwcm9jZXNzUHJpdmF0ZU1lbW9yeVNpemU7CisgICAgICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxvbmcgcHJvY2Vzc1NoYXJlZE1lbW9yeVNp
emU7CiAgICAgfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hy
b21pdW0vUGxhdGZvcm1TdXBwb3J0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1
bS9QbGF0Zm9ybVN1cHBvcnQuaAppbmRleCAxMjhkMmEzZTk4ODNjZDJhYjZiODQ1ODBjMDZlMmRh
ZmMwZTYwMzJlLi5lMzA2YmQzMGFmMTc1MWUyMWJlODI2ODNmMDYzYWIyNDc5MGFlZTk3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9QbGF0Zm9ybVN1cHBvcnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9QbGF0Zm9ybVN1cHBvcnQu
aApAQCAtMjEzLDYgKzIxMywxMCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGludCBoaWdoTWVtb3J5
VXNhZ2VNQigpOwogICAgIC8vIERlbHRhIG9mIG1lbW9yeSB1c2FnZSBncm93dGggKHZzLiBsYXN0
IGFjdHVhbE1lbW9yeVVzYWdlTUIoKSkgdG8gZm9yY2UgR0Mgd2hlbiBtZW1vcnkgdXNhZ2UgaXMg
aGlnaC4KICAgICBzdGF0aWMgaW50IGhpZ2hVc2FnZURlbHRhTUIoKTsKKyAgICAvLyBSZXR1cm5z
IHByaXZhdGUgYW5kIHNoYXJlZCB1c2FnZSwgaW4gYnl0ZXMuIFByaXZhdGUgYnl0ZXMgaXMgdGhl
IGFtb3VudCBvZgorICAgIC8vIG1lbW9yeSBjdXJyZW50bHkgYWxsb2NhdGVkIHRvIHRoaXMgcHJv
Y2VzcyB0aGF0IGNhbm5vdCBiZSBzaGFyZWQuIFJldHVybnMKKyAgICAvLyBmYWxzZSBvbiBwbGF0
Zm9ybSBzcGVjaWZpYyBlcnJvciBjb25kaXRpb25zLgorICAgIHN0YXRpYyBib29sIGdldFByb2Nl
c3NNZW1vcnlTaXplKHNpemVfdCogcHJpdmF0ZUJ5dGVzLCBzaXplX3QqIHNoYXJlZEJ5dGVzKTsK
IAogICAgIC8vIE1pbWVUeXBlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgc3RhdGljIGJvb2wgaXNTdXBwb3J0ZWRJbWFnZU1J
TUVUeXBlKGNvbnN0IFN0cmluZyYgbWltZVR5cGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9wdWJsaWMvcGxhdGZvcm0vV2ViS2l0UGxhdGZvcm1TdXBwb3J0LmggYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9wbGF0Zm9ybS9XZWJLaXRQbGF0Zm9ybVN1cHBvcnQu
aAppbmRleCBkMmMxZmQ4MTQ1ZDIxYzZkMjgwNGVmMTZkM2FmY2UzMjBkMzFlNWVmLi45ZTNkNTU3
OWZmMjk4YmFhZjhkODMyZGY2MDU2M2FhZjI3N2VkMmJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3B1YmxpYy9wbGF0Zm9ybS9XZWJLaXRQbGF0Zm9ybVN1cHBvcnQuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9wbGF0Zm9ybS9XZWJLaXRQbGF0Zm9ybVN1
cHBvcnQuaApAQCAtMTkxLDYgKzE5MSwxMCBAQCBwdWJsaWM6CiAgICAgLy8gRGVsdGEgb2YgbWVt
b3J5IHVzYWdlIGdyb3d0aCAodnMuIGxhc3QgYWN0dWFsTWVtb3J5VXNhZ2VNQigpKSB0byBmb3Jj
ZSBHQyB3aGVuIG1lbW9yeSB1c2FnZSBpcyBoaWdoLgogICAgIHZpcnR1YWwgc2l6ZV90IGhpZ2hV
c2FnZURlbHRhTUIoKSB7IHJldHVybiAxMjg7IH0KIAorICAgIC8vIFJldHVybnMgcHJpdmF0ZSBh
bmQgc2hhcmVkIHVzYWdlLCBpbiBieXRlcy4gUHJpdmF0ZSBieXRlcyBpcyB0aGUgYW1vdW50IG9m
CisgICAgLy8gbWVtb3J5IGN1cnJlbnRseSBhbGxvY2F0ZWQgdG8gdGhpcyBwcm9jZXNzIHRoYXQg
Y2Fubm90IGJlIHNoYXJlZC4gUmV0dXJucworICAgIC8vIGZhbHNlIG9uIHBsYXRmb3JtIHNwZWNp
ZmljIGVycm9yIGNvbmRpdGlvbnMuCisgICAgdmlydHVhbCBib29sIGdldFByb2Nlc3NNZW1vcnlT
aXplKHNpemVfdCogcHJpdmF0ZUJ5dGVzLCBzaXplX3QqIHNoYXJlZEJ5dGVzKSB7IHJldHVybiBm
YWxzZTsgfQogCiAgICAgLy8gVGhyZWFkcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1BsYXRmb3JtU3VwcG9ydC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9QbGF0Zm9ybVN1cHBvcnQuY3BwCmluZGV4IDYzYmUwMjQ1Y2MzNWQ0OTBmY2Y2OGRhMmJlMzli
ZGE4YTZkZGIzYWEuLjdlM2UxMjA3NjQzMTJmNDhlNWRlODAyYmVmZjQyOTcxNDU0M2YyNmEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1BsYXRmb3JtU3VwcG9ydC5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvUGxhdGZvcm1TdXBwb3J0LmNwcApAQCAt
MTA1Nyw2ICsxMDU3LDExIEBAIGludCBQbGF0Zm9ybVN1cHBvcnQ6OmhpZ2hVc2FnZURlbHRhTUIo
KQogICAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQ+KHdlYktpdFBsYXRmb3JtU3VwcG9ydCgpLT5o
aWdoVXNhZ2VEZWx0YU1CKCkpOwogfQogCitib29sIFBsYXRmb3JtU3VwcG9ydDo6Z2V0UHJvY2Vz
c01lbW9yeVNpemUoc2l6ZV90KiBwcml2YXRlQnl0ZXMsIHNpemVfdCogc2hhcmVkQnl0ZXMpCit7
CisgICAgcmV0dXJuIHdlYktpdFBsYXRmb3JtU3VwcG9ydCgpLT5nZXRQcm9jZXNzTWVtb3J5U2l6
ZShwcml2YXRlQnl0ZXMsIHNoYXJlZEJ5dGVzKTsKK30KKwogaW50IFBsYXRmb3JtU3VwcG9ydDo6
c2NyZWVuSG9yaXpvbnRhbERQSShXaWRnZXQqIHdpZGdldCkKIHsKICAgICBXZWJXaWRnZXRDbGll
bnQqIGNsaWVudCA9IHRvV2ViV2lkZ2V0Q2xpZW50KHdpZGdldCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131226</attachid>
            <date>2012-03-11 08:34:17 -0700</date>
            <delta_ts>2012-03-12 01:19:40 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>mem-info-sync.patch</filename>
            <type>text/plain</type>
            <size>7352</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA2NTAzYjNlLi40NzkzNDA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcg
QEAKKzIwMTItMDMtMTEgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CisK
KyAgICAgICAgUHJvdmlkZSBhY2Nlc3MgdG8gcHJvY2VzcyBwcml2YXRlIGFuZCBzaGFyZWQgbWVt
b3J5IHNpemUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTgwNzg3CisKKyAgICAgICAgRXhwb3NlZCBwcm9jZXNzIHByaXZhdGUgYW5kIHNoYXJlZCBtZW1v
cnkgc2l6ZXMgb24gY29uc29sZS5tZW1vcnkgb2JqZWN0LgorICAgICAgICBWaXNpYmlsaXR5IG9m
IHRoaXMgZnVuY3Rpb25hbGl0eSBsaWtlIHRoZSByZXN0IGNvbnNvbGUubWVtb3J5IGlzIGNvbnRy
b2xsZWQKKyAgICAgICAgYnkgdGhlIGJyb3dzZXIgc2V0dGluZy4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBhZ2UvTWVtb3J5SW5mby5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpNZW1vcnlJbmZvOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChXZWJDb3JlOjpNZW1vcnlJbmZvOjpNZW1vcnlJbmZvKToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lbW9yeUluZm86OnByb2Nlc3NQcml2YXRlTWVtb3J5U2l6ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpNZW1vcnlJbmZvOjpwcm9jZXNzU2hhcmVkTWVtb3J5U2l6ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpNZW1vcnlJbmZvOjptZW1vcnlJbmZvRW5hYmxlZCk6CisgICAgICAgICogcGFnZS9N
ZW1vcnlJbmZvLmg6CisgICAgICAgIChNZW1vcnlJbmZvKToKKyAgICAgICAgKiBwYWdlL01lbW9y
eUluZm8uaWRsOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL1BsYXRmb3JtU3VwcG9ydC5o
OgorICAgICAgICAoUGxhdGZvcm1TdXBwb3J0KToKKwogMjAxMi0wMy0wOSAgSm9uIExlZSAgPGpv
bmxlZUBhcHBsZS5jb20+CiAKICAgICAgICAgUmVuYW1lIE5vdGlmaWNhdGlvblByZXNlbnRlciB0
byBOb3RpZmljYXRpb25DbGllbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWVt
b3J5SW5mby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL01lbW9yeUluZm8uY3BwCmluZGV4IDU3
ZGFlMmIuLjFjNDI2NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWVtb3J5SW5m
by5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9NZW1vcnlJbmZvLmNwcApAQCAtMzIsMjAg
KzMyLDMzIEBACiAjaW5jbHVkZSAiTWVtb3J5SW5mby5oIgogCiAjaW5jbHVkZSAiRnJhbWUuaCIK
KyNpZiBQTEFURk9STShDSFJPTUlVTSkKKyNpbmNsdWRlICJQbGF0Zm9ybVN1cHBvcnQuaCIKKyNl
bmRpZgogI2luY2x1ZGUgIlNjcmlwdEdDRXZlbnQuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK1Bhc3NSZWZQdHI8TWVtb3J5SW5mbz4gTWVtb3J5SW5m
bzo6Y3JlYXRlKEZyYW1lKiBmcmFtZSkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IE1lbW9y
eUluZm8oZnJhbWUpKTsKK30KKwogTWVtb3J5SW5mbzo6TWVtb3J5SW5mbyhGcmFtZSogZnJhbWUp
CiAgICAgICAgIDogbV90b3RhbEpTSGVhcFNpemUoMCksCiAgICAgICAgICAgbV91c2VkSlNIZWFw
U2l6ZSgwKSwKLSAgICAgICAgICBtX2pzSGVhcFNpemVMaW1pdCgwKQorICAgICAgICAgIG1fanNI
ZWFwU2l6ZUxpbWl0KDApLAorICAgICAgICAgIG1fcHJvY2Vzc1ByaXZhdGVNZW1vcnlTaXplKDAp
LAorICAgICAgICAgIG1fcHJvY2Vzc1NoYXJlZE1lbW9yeVNpemUoMCkKIHsKICAgICBpZiAoZnJh
bWUgJiYgZnJhbWUtPnNldHRpbmdzKCkgJiYgZnJhbWUtPnNldHRpbmdzKCktPm1lbW9yeUluZm9F
bmFibGVkKCkpIHsKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQogICAgICAgICBTY3JpcHRHQ0V2ZW50
OjpnZXRIZWFwU2l6ZShtX3VzZWRKU0hlYXBTaXplLCBtX3RvdGFsSlNIZWFwU2l6ZSwgbV9qc0hl
YXBTaXplTGltaXQpOwogI2VuZGlmCisjaWYgUExBVEZPUk0oQ0hST01JVU0pCisgICAgICAgIFBs
YXRmb3JtU3VwcG9ydDo6Z2V0UHJvY2Vzc01lbW9yeVNpemUoJm1fcHJvY2Vzc1ByaXZhdGVNZW1v
cnlTaXplLCAmbV9wcm9jZXNzU2hhcmVkTWVtb3J5U2l6ZSk7CisjZW5kaWYKICAgICB9CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWVtb3J5SW5mby5oIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9NZW1vcnlJbmZvLmgKaW5kZXggMjdhNzM0NC4uODdhMGZkOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9NZW1vcnlJbmZvLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9NZW1vcnlJbmZvLmgKQEAgLTQwLDE4ICs0MCwyMyBAQCBjbGFzcyBGcmFtZTsKIAogY2xh
c3MgTWVtb3J5SW5mbyA6IHB1YmxpYyBSZWZDb3VudGVkPE1lbW9yeUluZm8+IHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgUGFzc1JlZlB0cjxNZW1vcnlJbmZvPiBjcmVhdGUoRnJhbWUqIGZyYW1lKSB7
IHJldHVybiBhZG9wdFJlZihuZXcgTWVtb3J5SW5mbyhmcmFtZSkpOyB9CisgICAgc3RhdGljIFBh
c3NSZWZQdHI8TWVtb3J5SW5mbz4gY3JlYXRlKEZyYW1lKik7CiAKICAgICBzaXplX3QgdG90YWxK
U0hlYXBTaXplKCkgY29uc3QgeyByZXR1cm4gbV90b3RhbEpTSGVhcFNpemU7IH0KICAgICBzaXpl
X3QgdXNlZEpTSGVhcFNpemUoKSBjb25zdCB7IHJldHVybiBtX3VzZWRKU0hlYXBTaXplOyB9CiAg
ICAgc2l6ZV90IGpzSGVhcFNpemVMaW1pdCgpIGNvbnN0IHsgcmV0dXJuIG1fanNIZWFwU2l6ZUxp
bWl0OyB9CiAKKyAgICBzaXplX3QgcHJvY2Vzc1ByaXZhdGVNZW1vcnlTaXplKCkgY29uc3QgeyBy
ZXR1cm4gbV9wcm9jZXNzUHJpdmF0ZU1lbW9yeVNpemU7IH0KKyAgICBzaXplX3QgcHJvY2Vzc1No
YXJlZE1lbW9yeVNpemUoKSBjb25zdCB7IHJldHVybiBtX3Byb2Nlc3NTaGFyZWRNZW1vcnlTaXpl
OyB9CisKIHByaXZhdGU6CiAgICAgTWVtb3J5SW5mbyhGcmFtZSopOwogCiAgICAgc2l6ZV90IG1f
dG90YWxKU0hlYXBTaXplOwogICAgIHNpemVfdCBtX3VzZWRKU0hlYXBTaXplOwogICAgIHNpemVf
dCBtX2pzSGVhcFNpemVMaW1pdDsKKyAgICBzaXplX3QgbV9wcm9jZXNzUHJpdmF0ZU1lbW9yeVNp
emU7CisgICAgc2l6ZV90IG1fcHJvY2Vzc1NoYXJlZE1lbW9yeVNpemU7CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL01lbW9yeUlu
Zm8uaWRsIGIvU291cmNlL1dlYkNvcmUvcGFnZS9NZW1vcnlJbmZvLmlkbAppbmRleCBiOTE0OWQ1
Li5jNTcwYjM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL01lbW9yeUluZm8uaWRs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWVtb3J5SW5mby5pZGwKQEAgLTM4LDYgKzM4LDgg
QEAgbW9kdWxlIHdpbmRvdyB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBs
b25nIHVzZWRKU0hlYXBTaXplOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0pTQ3VzdG9t
R2V0dGVyXSB1bnNpZ25lZCBsb25nIGpzSGVhcFNpemVMaW1pdDsKIAorICAgICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsb25nIHByb2Nlc3NQcml2YXRlTWVtb3J5U2l6ZTsK
KyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbG9uZyBwcm9jZXNzU2hh
cmVkTWVtb3J5U2l6ZTsKICAgICB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9jaHJvbWl1bS9QbGF0Zm9ybVN1cHBvcnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2Nocm9taXVtL1BsYXRmb3JtU3VwcG9ydC5oCmluZGV4IDEyOGQyYTMuLmUzMDZiZDMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BsYXRmb3JtU3VwcG9y
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BsYXRmb3JtU3VwcG9y
dC5oCkBAIC0yMTMsNiArMjEzLDEwIEBAIHB1YmxpYzoKICAgICBzdGF0aWMgaW50IGhpZ2hNZW1v
cnlVc2FnZU1CKCk7CiAgICAgLy8gRGVsdGEgb2YgbWVtb3J5IHVzYWdlIGdyb3d0aCAodnMuIGxh
c3QgYWN0dWFsTWVtb3J5VXNhZ2VNQigpKSB0byBmb3JjZSBHQyB3aGVuIG1lbW9yeSB1c2FnZSBp
cyBoaWdoLgogICAgIHN0YXRpYyBpbnQgaGlnaFVzYWdlRGVsdGFNQigpOworICAgIC8vIFJldHVy
bnMgcHJpdmF0ZSBhbmQgc2hhcmVkIHVzYWdlLCBpbiBieXRlcy4gUHJpdmF0ZSBieXRlcyBpcyB0
aGUgYW1vdW50IG9mCisgICAgLy8gbWVtb3J5IGN1cnJlbnRseSBhbGxvY2F0ZWQgdG8gdGhpcyBw
cm9jZXNzIHRoYXQgY2Fubm90IGJlIHNoYXJlZC4gUmV0dXJucworICAgIC8vIGZhbHNlIG9uIHBs
YXRmb3JtIHNwZWNpZmljIGVycm9yIGNvbmRpdGlvbnMuCisgICAgc3RhdGljIGJvb2wgZ2V0UHJv
Y2Vzc01lbW9yeVNpemUoc2l6ZV90KiBwcml2YXRlQnl0ZXMsIHNpemVfdCogc2hhcmVkQnl0ZXMp
OwogCiAgICAgLy8gTWltZVR5cGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICBzdGF0aWMgYm9vbCBpc1N1cHBvcnRlZEltYWdl
TUlNRVR5cGUoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9n
CmluZGV4IGJlNDgzY2MuLjQ2OWFlMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjEgQEAKKzIwMTItMDMtMTEgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgUHJvdmlkZSBhY2Nlc3MgdG8gcHJvY2VzcyBwcml2YXRlIGFuZCBz
aGFyZWQgbWVtb3J5IHNpemUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTgwNzg3CisKKyAgICAgICAgRXh0ZW5kZWQgV2ViS2l0UGxhdGZvcm1TdXBwb3J0
IHdpdGggZ2V0dGVyIGZvciByZW5kZXIgcHJvY2VzcyBwcml2YXRlIGFuZAorICAgICAgICBzaGFy
ZWQgbWVtb3J5LgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogcHVibGljL3BsYXRmb3JtL1dlYktpdFBsYXRmb3JtU3VwcG9ydC5oOgorICAgICAgICAo
V2ViS2l0OjpXZWJLaXRQbGF0Zm9ybVN1cHBvcnQ6OnByb2Nlc3NQcml2YXRlTWVtb3J5U2l6ZSk6
CisgICAgICAgIChXZWJLaXQ6OldlYktpdFBsYXRmb3JtU3VwcG9ydDo6cHJvY2Vzc1NoYXJlZE1l
bW9yeVNpemUpOgorICAgICAgICAqIHNyYy9QbGF0Zm9ybVN1cHBvcnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UGxhdGZvcm1TdXBwb3J0Ojpwcm9jZXNzUHJpdmF0ZU1lbW9yeVNpemUpOgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVN1cHBvcnQ6OnByb2Nl
c3NTaGFyZWRNZW1vcnlTaXplKToKKwogMjAxMi0wMy0xMCAgU2hlcmlmZiBCb3QgIDx3ZWJraXQu
cmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQg
cjExMDM4NC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL3BsYXRm
b3JtL1dlYktpdFBsYXRmb3JtU3VwcG9ydC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJs
aWMvcGxhdGZvcm0vV2ViS2l0UGxhdGZvcm1TdXBwb3J0LmgKaW5kZXggZDJjMWZkOC4uOWUzZDU1
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvcGxhdGZvcm0vV2Vi
S2l0UGxhdGZvcm1TdXBwb3J0LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMv
cGxhdGZvcm0vV2ViS2l0UGxhdGZvcm1TdXBwb3J0LmgKQEAgLTE5MSw2ICsxOTEsMTAgQEAgcHVi
bGljOgogICAgIC8vIERlbHRhIG9mIG1lbW9yeSB1c2FnZSBncm93dGggKHZzLiBsYXN0IGFjdHVh
bE1lbW9yeVVzYWdlTUIoKSkgdG8gZm9yY2UgR0Mgd2hlbiBtZW1vcnkgdXNhZ2UgaXMgaGlnaC4K
ICAgICB2aXJ0dWFsIHNpemVfdCBoaWdoVXNhZ2VEZWx0YU1CKCkgeyByZXR1cm4gMTI4OyB9CiAK
KyAgICAvLyBSZXR1cm5zIHByaXZhdGUgYW5kIHNoYXJlZCB1c2FnZSwgaW4gYnl0ZXMuIFByaXZh
dGUgYnl0ZXMgaXMgdGhlIGFtb3VudCBvZgorICAgIC8vIG1lbW9yeSBjdXJyZW50bHkgYWxsb2Nh
dGVkIHRvIHRoaXMgcHJvY2VzcyB0aGF0IGNhbm5vdCBiZSBzaGFyZWQuIFJldHVybnMKKyAgICAv
LyBmYWxzZSBvbiBwbGF0Zm9ybSBzcGVjaWZpYyBlcnJvciBjb25kaXRpb25zLgorICAgIHZpcnR1
YWwgYm9vbCBnZXRQcm9jZXNzTWVtb3J5U2l6ZShzaXplX3QqIHByaXZhdGVCeXRlcywgc2l6ZV90
KiBzaGFyZWRCeXRlcykgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIC8vIFRocmVhZHMgLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9QbGF0Zm9ybVN1cHBvcnQuY3BwIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvUGxhdGZvcm1TdXBwb3J0LmNwcAppbmRleCA2M2Jl
MDI0Li43ZTNlMTIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9QbGF0
Zm9ybVN1cHBvcnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1BsYXRmb3Jt
U3VwcG9ydC5jcHAKQEAgLTEwNTcsNiArMTA1NywxMSBAQCBpbnQgUGxhdGZvcm1TdXBwb3J0Ojpo
aWdoVXNhZ2VEZWx0YU1CKCkKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8aW50Pih3ZWJLaXRQbGF0
Zm9ybVN1cHBvcnQoKS0+aGlnaFVzYWdlRGVsdGFNQigpKTsKIH0KIAorYm9vbCBQbGF0Zm9ybVN1
cHBvcnQ6OmdldFByb2Nlc3NNZW1vcnlTaXplKHNpemVfdCogcHJpdmF0ZUJ5dGVzLCBzaXplX3Qq
IHNoYXJlZEJ5dGVzKQoreworICAgIHJldHVybiB3ZWJLaXRQbGF0Zm9ybVN1cHBvcnQoKS0+Z2V0
UHJvY2Vzc01lbW9yeVNpemUocHJpdmF0ZUJ5dGVzLCBzaGFyZWRCeXRlcyk7Cit9CisKIGludCBQ
bGF0Zm9ybVN1cHBvcnQ6OnNjcmVlbkhvcml6b250YWxEUEkoV2lkZ2V0KiB3aWRnZXQpCiB7CiAg
ICAgV2ViV2lkZ2V0Q2xpZW50KiBjbGllbnQgPSB0b1dlYldpZGdldENsaWVudCh3aWRnZXQpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131289</attachid>
            <date>2012-03-12 01:19:56 -0700</date>
            <delta_ts>2012-04-01 23:17:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80787-20120312121954.patch</filename>
            <type>text/plain</type>
            <size>9760</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwMzg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjUwM2IzZWU0MTVlZTdh
MzE1YjAzMDI2Y2Y0Y2VkNDk4MTFkMWU3MS4uNDc5MzQwOTNiZTYwNDJjM2RjNmIzMjE1YWQ2ODIw
YzM1MWYzNDc3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDEyLTAzLTExICBZdXJ5
IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFByb3ZpZGUgYWNj
ZXNzIHRvIHByb2Nlc3MgcHJpdmF0ZSBhbmQgc2hhcmVkIG1lbW9yeSBzaXplCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MDc4NworCisgICAgICAgIEV4
cG9zZWQgcHJvY2VzcyBwcml2YXRlIGFuZCBzaGFyZWQgbWVtb3J5IHNpemVzIG9uIGNvbnNvbGUu
bWVtb3J5IG9iamVjdC4KKyAgICAgICAgVmlzaWJpbGl0eSBvZiB0aGlzIGZ1bmN0aW9uYWxpdHkg
bGlrZSB0aGUgcmVzdCBjb25zb2xlLm1lbW9yeSBpcyBjb250cm9sbGVkCisgICAgICAgIGJ5IHRo
ZSBicm93c2VyIHNldHRpbmcuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBwYWdlL01lbW9yeUluZm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVt
b3J5SW5mbzo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6
TWVtb3J5SW5mbzo6TWVtb3J5SW5mbyk6CisgICAgICAgIChXZWJDb3JlOjpNZW1vcnlJbmZvOjpw
cm9jZXNzUHJpdmF0ZU1lbW9yeVNpemUpOgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5SW5mbzo6
cHJvY2Vzc1NoYXJlZE1lbW9yeVNpemUpOgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5SW5mbzo6
bWVtb3J5SW5mb0VuYWJsZWQpOgorICAgICAgICAqIHBhZ2UvTWVtb3J5SW5mby5oOgorICAgICAg
ICAoTWVtb3J5SW5mbyk6CisgICAgICAgICogcGFnZS9NZW1vcnlJbmZvLmlkbDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9jaHJvbWl1bS9QbGF0Zm9ybVN1cHBvcnQuaDoKKyAgICAgICAgKFBsYXRmb3Jt
U3VwcG9ydCk6CisKIDIwMTItMDMtMDkgIEpvbiBMZWUgIDxqb25sZWVAYXBwbGUuY29tPgogCiAg
ICAgICAgIFJlbmFtZSBOb3RpZmljYXRpb25QcmVzZW50ZXIgdG8gTm90aWZpY2F0aW9uQ2xpZW50
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IGJlNDgzY2MzOWY5ZGRjYTVlZDFiN2NkNmQ1
ZWMwMGUxNTQ3N2QzMmIuLjQ2OWFlMWI1NDdhYjg0M2JhMTljYTEyMzA0Y2I3ZWM1ZmMwOTg4ZWUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTItMDMtMTEg
IFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUHJvdmlk
ZSBhY2Nlc3MgdG8gcHJvY2VzcyBwcml2YXRlIGFuZCBzaGFyZWQgbWVtb3J5IHNpemUKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgwNzg3CisKKyAgICAg
ICAgRXh0ZW5kZWQgV2ViS2l0UGxhdGZvcm1TdXBwb3J0IHdpdGggZ2V0dGVyIGZvciByZW5kZXIg
cHJvY2VzcyBwcml2YXRlIGFuZAorICAgICAgICBzaGFyZWQgbWVtb3J5LgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcHVibGljL3BsYXRmb3JtL1dl
YktpdFBsYXRmb3JtU3VwcG9ydC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJLaXRQbGF0Zm9ybVN1
cHBvcnQ6OnByb2Nlc3NQcml2YXRlTWVtb3J5U2l6ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYktp
dFBsYXRmb3JtU3VwcG9ydDo6cHJvY2Vzc1NoYXJlZE1lbW9yeVNpemUpOgorICAgICAgICAqIHNy
Yy9QbGF0Zm9ybVN1cHBvcnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1TdXBwb3J0
Ojpwcm9jZXNzUHJpdmF0ZU1lbW9yeVNpemUpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
IChXZWJDb3JlOjpQbGF0Zm9ybVN1cHBvcnQ6OnByb2Nlc3NTaGFyZWRNZW1vcnlTaXplKToKKwog
MjAxMi0wMy0xMCAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAK
ICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjExMDM4NC4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvTWVtb3J5SW5mby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL01l
bW9yeUluZm8uY3BwCmluZGV4IDU3ZGFlMmI0MDc0ZWMzMDVjYTQ2MTA1MjY0NjBlM2UzMmFhZjk4
ZTMuLjRjNTI2ZjM4ODgyMzFmNDhlZmY0ZjNkNjA3MWY3OGExNDIyNDkwMTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWVtb3J5SW5mby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9NZW1vcnlJbmZvLmNwcApAQCAtMzIsMjAgKzMyLDMzIEBACiAjaW5jbHVkZSAiTWVtb3J5
SW5mby5oIgogCiAjaW5jbHVkZSAiRnJhbWUuaCIKKyNpZiBQTEFURk9STShDSFJPTUlVTSkKKyNp
bmNsdWRlICJQbGF0Zm9ybVN1cHBvcnQuaCIKKyNlbmRpZgogI2luY2x1ZGUgIlNjcmlwdEdDRXZl
bnQuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK1Bh
c3NSZWZQdHI8TWVtb3J5SW5mbz4gTWVtb3J5SW5mbzo6Y3JlYXRlKEZyYW1lKiBmcmFtZSkKK3sK
KyAgICByZXR1cm4gYWRvcHRSZWYobmV3IE1lbW9yeUluZm8oZnJhbWUpKTsKK30KKwogTWVtb3J5
SW5mbzo6TWVtb3J5SW5mbyhGcmFtZSogZnJhbWUpCi0gICAgICAgIDogbV90b3RhbEpTSGVhcFNp
emUoMCksCi0gICAgICAgICAgbV91c2VkSlNIZWFwU2l6ZSgwKSwKLSAgICAgICAgICBtX2pzSGVh
cFNpemVMaW1pdCgwKQorICAgICAgICA6IG1fdG90YWxKU0hlYXBTaXplKDApCisgICAgICAgICwg
bV91c2VkSlNIZWFwU2l6ZSgwKQorICAgICAgICAsIG1fanNIZWFwU2l6ZUxpbWl0KDApCisgICAg
ICAgICwgbV9wcm9jZXNzUHJpdmF0ZU1lbW9yeVNpemUoMCkKKyAgICAgICAgLCBtX3Byb2Nlc3NT
aGFyZWRNZW1vcnlTaXplKDApCiB7CiAgICAgaWYgKGZyYW1lICYmIGZyYW1lLT5zZXR0aW5ncygp
ICYmIGZyYW1lLT5zZXR0aW5ncygpLT5tZW1vcnlJbmZvRW5hYmxlZCgpKSB7CiAjaWYgRU5BQkxF
KElOU1BFQ1RPUikKICAgICAgICAgU2NyaXB0R0NFdmVudDo6Z2V0SGVhcFNpemUobV91c2VkSlNI
ZWFwU2l6ZSwgbV90b3RhbEpTSGVhcFNpemUsIG1fanNIZWFwU2l6ZUxpbWl0KTsKICNlbmRpZgor
I2lmIFBMQVRGT1JNKENIUk9NSVVNKQorICAgICAgICBQbGF0Zm9ybVN1cHBvcnQ6OmdldFByb2Nl
c3NNZW1vcnlTaXplKCZtX3Byb2Nlc3NQcml2YXRlTWVtb3J5U2l6ZSwgJm1fcHJvY2Vzc1NoYXJl
ZE1lbW9yeVNpemUpOworI2VuZGlmCiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL01lbW9yeUluZm8uaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWVtb3J5SW5mby5o
CmluZGV4IDI3YTczNDRiOGZmMzM5Mzk0NjVhZTg1MTYzODJjNWE5MzA1YTIyOTIuLjg3YTBmZDg1
ZGExYzY4NDNjYTAyYzhiNTAwM2QyZTZlMzhhZTRhZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvTWVtb3J5SW5mby5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWVtb3J5SW5m
by5oCkBAIC00MCwxOCArNDAsMjMgQEAgY2xhc3MgRnJhbWU7CiAKIGNsYXNzIE1lbW9yeUluZm8g
OiBwdWJsaWMgUmVmQ291bnRlZDxNZW1vcnlJbmZvPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBh
c3NSZWZQdHI8TWVtb3J5SW5mbz4gY3JlYXRlKEZyYW1lKiBmcmFtZSkgeyByZXR1cm4gYWRvcHRS
ZWYobmV3IE1lbW9yeUluZm8oZnJhbWUpKTsgfQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lbW9y
eUluZm8+IGNyZWF0ZShGcmFtZSopOwogCiAgICAgc2l6ZV90IHRvdGFsSlNIZWFwU2l6ZSgpIGNv
bnN0IHsgcmV0dXJuIG1fdG90YWxKU0hlYXBTaXplOyB9CiAgICAgc2l6ZV90IHVzZWRKU0hlYXBT
aXplKCkgY29uc3QgeyByZXR1cm4gbV91c2VkSlNIZWFwU2l6ZTsgfQogICAgIHNpemVfdCBqc0hl
YXBTaXplTGltaXQoKSBjb25zdCB7IHJldHVybiBtX2pzSGVhcFNpemVMaW1pdDsgfQogCisgICAg
c2l6ZV90IHByb2Nlc3NQcml2YXRlTWVtb3J5U2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcHJvY2Vz
c1ByaXZhdGVNZW1vcnlTaXplOyB9CisgICAgc2l6ZV90IHByb2Nlc3NTaGFyZWRNZW1vcnlTaXpl
KCkgY29uc3QgeyByZXR1cm4gbV9wcm9jZXNzU2hhcmVkTWVtb3J5U2l6ZTsgfQorCiBwcml2YXRl
OgogICAgIE1lbW9yeUluZm8oRnJhbWUqKTsKIAogICAgIHNpemVfdCBtX3RvdGFsSlNIZWFwU2l6
ZTsKICAgICBzaXplX3QgbV91c2VkSlNIZWFwU2l6ZTsKICAgICBzaXplX3QgbV9qc0hlYXBTaXpl
TGltaXQ7CisgICAgc2l6ZV90IG1fcHJvY2Vzc1ByaXZhdGVNZW1vcnlTaXplOworICAgIHNpemVf
dCBtX3Byb2Nlc3NTaGFyZWRNZW1vcnlTaXplOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9NZW1vcnlJbmZvLmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvTWVtb3J5SW5mby5pZGwKaW5kZXggYjkxNDlkNTRkNDVmOTMwMTc0ZjM0
MjZlNWJiMzNlYjdmOWQwMDI0OS4uYzU3MGIzNmQ5MzhiY2Y2N2RkMTAxOWJhZWFjMGEyYjUwM2Nh
N2Y4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9NZW1vcnlJbmZvLmlkbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL01lbW9yeUluZm8uaWRsCkBAIC0zOCw2ICszOCw4IEBAIG1v
ZHVsZSB3aW5kb3cgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyB1
c2VkSlNIZWFwU2l6ZTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtKU0N1c3RvbUdldHRl
cl0gdW5zaWduZWQgbG9uZyBqc0hlYXBTaXplTGltaXQ7CiAKKyAgICAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIHVuc2lnbmVkIGxvbmcgbG9uZyBwcm9jZXNzUHJpdmF0ZU1lbW9yeVNpemU7CisgICAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxvbmcgcHJvY2Vzc1NoYXJlZE1l
bW9yeVNpemU7CiAgICAgfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vY2hyb21pdW0vUGxhdGZvcm1TdXBwb3J0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9j
aHJvbWl1bS9QbGF0Zm9ybVN1cHBvcnQuaAppbmRleCAxMjhkMmEzZTk4ODNjZDJhYjZiODQ1ODBj
MDZlMmRhZmMwZTYwMzJlLi5lMzA2YmQzMGFmMTc1MWUyMWJlODI2ODNmMDYzYWIyNDc5MGFlZTk3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9QbGF0Zm9ybVN1
cHBvcnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9QbGF0Zm9ybVN1
cHBvcnQuaApAQCAtMjEzLDYgKzIxMywxMCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGludCBoaWdo
TWVtb3J5VXNhZ2VNQigpOwogICAgIC8vIERlbHRhIG9mIG1lbW9yeSB1c2FnZSBncm93dGggKHZz
LiBsYXN0IGFjdHVhbE1lbW9yeVVzYWdlTUIoKSkgdG8gZm9yY2UgR0Mgd2hlbiBtZW1vcnkgdXNh
Z2UgaXMgaGlnaC4KICAgICBzdGF0aWMgaW50IGhpZ2hVc2FnZURlbHRhTUIoKTsKKyAgICAvLyBS
ZXR1cm5zIHByaXZhdGUgYW5kIHNoYXJlZCB1c2FnZSwgaW4gYnl0ZXMuIFByaXZhdGUgYnl0ZXMg
aXMgdGhlIGFtb3VudCBvZgorICAgIC8vIG1lbW9yeSBjdXJyZW50bHkgYWxsb2NhdGVkIHRvIHRo
aXMgcHJvY2VzcyB0aGF0IGNhbm5vdCBiZSBzaGFyZWQuIFJldHVybnMKKyAgICAvLyBmYWxzZSBv
biBwbGF0Zm9ybSBzcGVjaWZpYyBlcnJvciBjb25kaXRpb25zLgorICAgIHN0YXRpYyBib29sIGdl
dFByb2Nlc3NNZW1vcnlTaXplKHNpemVfdCogcHJpdmF0ZUJ5dGVzLCBzaXplX3QqIHNoYXJlZEJ5
dGVzKTsKIAogICAgIC8vIE1pbWVUeXBlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgc3RhdGljIGJvb2wgaXNTdXBwb3J0ZWRJ
bWFnZU1JTUVUeXBlKGNvbnN0IFN0cmluZyYgbWltZVR5cGUpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvcGxhdGZvcm0vV2ViS2l0UGxhdGZvcm1TdXBwb3J0Lmgg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9wbGF0Zm9ybS9XZWJLaXRQbGF0Zm9ybVN1
cHBvcnQuaAppbmRleCBkMmMxZmQ4MTQ1ZDIxYzZkMjgwNGVmMTZkM2FmY2UzMjBkMzFlNWVmLi45
ZTNkNTU3OWZmMjk4YmFhZjhkODMyZGY2MDU2M2FhZjI3N2VkMmJmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9wbGF0Zm9ybS9XZWJLaXRQbGF0Zm9ybVN1cHBvcnQu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9wbGF0Zm9ybS9XZWJLaXRQbGF0
Zm9ybVN1cHBvcnQuaApAQCAtMTkxLDYgKzE5MSwxMCBAQCBwdWJsaWM6CiAgICAgLy8gRGVsdGEg
b2YgbWVtb3J5IHVzYWdlIGdyb3d0aCAodnMuIGxhc3QgYWN0dWFsTWVtb3J5VXNhZ2VNQigpKSB0
byBmb3JjZSBHQyB3aGVuIG1lbW9yeSB1c2FnZSBpcyBoaWdoLgogICAgIHZpcnR1YWwgc2l6ZV90
IGhpZ2hVc2FnZURlbHRhTUIoKSB7IHJldHVybiAxMjg7IH0KIAorICAgIC8vIFJldHVybnMgcHJp
dmF0ZSBhbmQgc2hhcmVkIHVzYWdlLCBpbiBieXRlcy4gUHJpdmF0ZSBieXRlcyBpcyB0aGUgYW1v
dW50IG9mCisgICAgLy8gbWVtb3J5IGN1cnJlbnRseSBhbGxvY2F0ZWQgdG8gdGhpcyBwcm9jZXNz
IHRoYXQgY2Fubm90IGJlIHNoYXJlZC4gUmV0dXJucworICAgIC8vIGZhbHNlIG9uIHBsYXRmb3Jt
IHNwZWNpZmljIGVycm9yIGNvbmRpdGlvbnMuCisgICAgdmlydHVhbCBib29sIGdldFByb2Nlc3NN
ZW1vcnlTaXplKHNpemVfdCogcHJpdmF0ZUJ5dGVzLCBzaXplX3QqIHNoYXJlZEJ5dGVzKSB7IHJl
dHVybiBmYWxzZTsgfQogCiAgICAgLy8gVGhyZWFkcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1BsYXRmb3JtU3VwcG9ydC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9QbGF0Zm9ybVN1cHBvcnQuY3BwCmluZGV4IDYzYmUwMjQ1Y2MzNWQ0OTBmY2Y2OGRh
MmJlMzliZGE4YTZkZGIzYWEuLjdlM2UxMjA3NjQzMTJmNDhlNWRlODAyYmVmZjQyOTcxNDU0M2Yy
NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1BsYXRmb3JtU3VwcG9y
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvUGxhdGZvcm1TdXBwb3J0LmNw
cApAQCAtMTA1Nyw2ICsxMDU3LDExIEBAIGludCBQbGF0Zm9ybVN1cHBvcnQ6OmhpZ2hVc2FnZURl
bHRhTUIoKQogICAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQ+KHdlYktpdFBsYXRmb3JtU3VwcG9y
dCgpLT5oaWdoVXNhZ2VEZWx0YU1CKCkpOwogfQogCitib29sIFBsYXRmb3JtU3VwcG9ydDo6Z2V0
UHJvY2Vzc01lbW9yeVNpemUoc2l6ZV90KiBwcml2YXRlQnl0ZXMsIHNpemVfdCogc2hhcmVkQnl0
ZXMpCit7CisgICAgcmV0dXJuIHdlYktpdFBsYXRmb3JtU3VwcG9ydCgpLT5nZXRQcm9jZXNzTWVt
b3J5U2l6ZShwcml2YXRlQnl0ZXMsIHNoYXJlZEJ5dGVzKTsKK30KKwogaW50IFBsYXRmb3JtU3Vw
cG9ydDo6c2NyZWVuSG9yaXpvbnRhbERQSShXaWRnZXQqIHdpZGdldCkKIHsKICAgICBXZWJXaWRn
ZXRDbGllbnQqIGNsaWVudCA9IHRvV2ViV2lkZ2V0Q2xpZW50KHdpZGdldCk7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOGEw
ZmU0OWNiMjUzZTVlNjdmZWJmOGUyZDkwMDhlYjU0NTFkNmFhOC4uOGNmYWNiMGZlMGI5MWU4ZTlk
N2IxOWM3YjA0MDM0OWZkODMzYWE2MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEyLTAzLTEy
ICBZdXJ5IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFByb3Zp
ZGUgYWNjZXNzIHRvIHByb2Nlc3MgcHJpdmF0ZSBhbmQgc2hhcmVkIG1lbW9yeSBzaXplCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MDc4NworCisgICAg
ICAgIEV4cG9zZWQgcHJvY2VzcyBwcml2YXRlIGFuZCBzaGFyZWQgbWVtb3J5IHNpemVzIG9uIGNv
bnNvbGUubWVtb3J5IG9iamVjdC4KKyAgICAgICAgVmlzaWJpbGl0eSBvZiB0aGlzIGZ1bmN0aW9u
YWxpdHkgbGlrZSB0aGUgcmVzdCBjb25zb2xlLm1lbW9yeSBpcyBjb250cm9sbGVkCisgICAgICAg
IGJ5IHRoZSBicm93c2VyIHNldHRpbmcuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBmYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMtcGVy
Zm9ybWFuY2UtZXhwZWN0ZWQudHh0OgorCiAyMDEyLTAzLTEwICBKdWxpZW4gQ2hhZmZyYWl4ICA8
amNoYWZmcmFpeEB3ZWJraXQub3JnPgogCiAgICAgICAgIFJlbmRlck9iamVjdCB3aXRoICdyZXNp
emUnIGRpZmZlcmVudCBmcm9tICdub25lJyBzaG91bGQgaGF2ZSBhIFJlbmRlckxheWVyCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMtcGVy
Zm9ybWFuY2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRv
dy1wcm9wZXJ0aWVzLXBlcmZvcm1hbmNlLWV4cGVjdGVkLnR4dAppbmRleCA2NTZlMTU3NzI1NjJm
YTExZWY3MDk3ZTE2Y2M0ODE1YmQ4NmNhYjk4Li5mNWI0YjUwNmE5MTJmMDI2MjZlYWU3YTBkNGRk
MWM4YzZiZTE5NGQzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2lu
ZG93LXByb3BlcnRpZXMtcGVyZm9ybWFuY2UtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1wZXJmb3JtYW5jZS1leHBlY3RlZC50
eHQKQEAgLTMsNiArMyw4IEBAIFRoaXMgdGVzdCBkdW1wcyBhbGwgb2YgdGhlIHByb3BlcnRpZXMg
dGhhdCBhcmUgcmVhY2hhYmxlIGZyb20gdGhlIHdpbmRvdy5wZXJmb3JtCiB3aW5kb3cucGVyZm9y
bWFuY2UgW29iamVjdCBQZXJmb3JtYW5jZV0KIHdpbmRvdy5wZXJmb3JtYW5jZS5tZW1vcnkgW29i
amVjdCBNZW1vcnlJbmZvXQogd2luZG93LnBlcmZvcm1hbmNlLm1lbW9yeS5qc0hlYXBTaXplTGlt
aXQgW251bWJlcl0KK3dpbmRvdy5wZXJmb3JtYW5jZS5tZW1vcnkucHJvY2Vzc1ByaXZhdGVNZW1v
cnlTaXplIFtudW1iZXJdCit3aW5kb3cucGVyZm9ybWFuY2UubWVtb3J5LnByb2Nlc3NTaGFyZWRN
ZW1vcnlTaXplIFtudW1iZXJdCiB3aW5kb3cucGVyZm9ybWFuY2UubWVtb3J5LnRvdGFsSlNIZWFw
U2l6ZSBbbnVtYmVyXQogd2luZG93LnBlcmZvcm1hbmNlLm1lbW9yeS51c2VkSlNIZWFwU2l6ZSBb
bnVtYmVyXQogd2luZG93LnBlcmZvcm1hbmNlLm5hdmlnYXRpb24gW29iamVjdCBQZXJmb3JtYW5j
ZU5hdmlnYXRpb25dCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>