<?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>60786</bug_id>
          
          <creation_ts>2011-05-13 12:25:36 -0700</creation_ts>
          <short_desc>[Qt] Better complex language support: Switch to ICU library (libicu)</short_desc>
          <delta_ts>2012-01-26 09:32:48 -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>Text</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>LayoutTestFailure, Qt, QtTriaged</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>50245</blocked>
    
    <blocked>16981</blocked>
    
    <blocked>39852</blocked>
    
    <blocked>59187</blocked>
    
    <blocked>76821</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Siddharth Mathur">s.mathur</reporter>
          <assigned_to name="Siddharth Mathur">s.mathur</assigned_to>
          <cc>ap</cc>
    
    <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>cshu</cc>
    
    <cc>darin</cc>
    
    <cc>hausmann</cc>
    
    <cc>jesus</cc>
    
    <cc>kbalazs</cc>
    
    <cc>kenneth</cc>
    
    <cc>kling</cc>
    
    <cc>laszlo.gombos</cc>
    
    <cc>ossy</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yael</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>403741</commentid>
    <comment_count>0</comment_count>
    <who name="Siddharth Mathur">s.mathur</who>
    <bug_when>2011-05-13 12:25:36 -0700</bug_when>
    <thetext>As Qt WebKit based applications and browsers reach more corners of the globe (which speak &quot;complex&quot;/non-European scripts), 
the large number of text encoding and international domain names (IDN) related failing tests in Qt&apos;s Skipped list are painful to watch. 

I did a quick switch from QT4_UNICODE -&gt; ICU_UNICODE and turned on CONFIG+=text_breaking_with_icu to maximize use of the ICU library, and the following list of Skipped tests ..

fast/encoding/mailto-always-utf-8.html
fast/encoding/yentest.html
fast/encoding/yentest2.html
fast/encoding/char-encoding.html
fast/encoding/idn-security.html
fast/encoding/xmacroman-encoding-test.html
fast/encoding/GBK/EUC-CN.html
fast/encoding/GBK/chinese.html
fast/encoding/GBK/cn-gb.html
fast/encoding/GBK/csgb2312.html
fast/encoding/GBK/csgb231280.html
fast/encoding/GBK/gb2312.html
fast/encoding/GBK/gb_2312-80.html
fast/encoding/GBK/gbk.html
fast/encoding/GBK/iso-ir-58.html
fast/encoding/GBK/x-euc-cn.html
fast/encoding/GBK/x-gbk.html
fast/encoding/char-encoding-mac.html
fast/encoding/hebrew/8859-8-e.html
fast/encoding/hebrew/8859-8-i.html
fast/encoding/hebrew/logical.html
fast/encoding/char-decoding.html
fast/encoding/frame-default-enc.html
fast/encoding/invalid-xml.html
fast/encoding/char-decoding-mac.html
fast/encoding/hebrew/csISO88598I.html
fast/encoding/denormalised-voiced-japanese-chars.html
fast/encoding/invalid-UTF-8.html


... shrinks to: 


fast/encoding/denormalised-voiced-japanese-chars.html	expected	actual	diff	pretty diff
fast/encoding/idn-security.html	expected	actual	diff	pretty diff
fast/encoding/invalid-xml.html	expected	actual	diff	pretty diff
fast/encoding/mailto-always-utf-8.html

I am also adding some bugs in the &quot;Blocks&quot; list which I think are solvable by this migration. Some may be dups of the above test failures.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>403745</commentid>
    <comment_count>1</comment_count>
    <who name="Chang Shu">cshu</who>
    <bug_when>2011-05-13 12:28:41 -0700</bug_when>
    <thetext>This should also help some editing tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>403763</commentid>
    <comment_count>2</comment_count>
      <attachid>93495</attachid>
    <who name="Siddharth Mathur">s.mathur</who>
    <bug_when>2011-05-13 12:47:10 -0700</bug_when>
    <thetext>Created attachment 93495
Experimental patch for others to spin a build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>404167</commentid>
    <comment_count>3</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2011-05-15 07:23:52 -0700</bug_when>
    <thetext>Uh. You might want to talk with the release guys...Because last few dozen of times this was suggested,  shipping ICU with Qt was totally out of the question.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>408199</commentid>
    <comment_count>4</comment_count>
      <attachid>94470</attachid>
    <who name="Siddharth Mathur">s.mathur</who>
    <bug_when>2011-05-23 13:16:20 -0700</bug_when>
    <thetext>Created attachment 94470
updated patch

This experimental patch: 
- removes the &quot;use ICU for text breaking only&quot; option
- consolidates all Qt WebKit use of ICU behind the existing existing USE(ICU_UNICODE) flag
- adds a &quot;use_system_icu&quot; qmake CONFIG parameter to override default text handling (Qt&apos;s Unicode) 
- adds a new TextBreakIteratorInternalICUQt.cpp similar to other ports which use ICU (and move out a function from TextBreakIteratorQt.cpp) 
- guards TextCodecQt.cpp to be only compiled for USE(QT4_UNICODE) configuration

Pass CONFIG+=use_system_icu to build-webkit to use this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>409783</commentid>
    <comment_count>5</comment_count>
      <attachid>94818</attachid>
    <who name="Siddharth Mathur">s.mathur</who>
    <bug_when>2011-05-25 11:40:57 -0700</bug_when>
    <thetext>Created attachment 94818
Better patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>409896</commentid>
    <comment_count>6</comment_count>
      <attachid>94851</attachid>
    <who name="Siddharth Mathur">s.mathur</who>
    <bug_when>2011-05-25 13:58:17 -0700</bug_when>
    <thetext>Created attachment 94851
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>410430</commentid>
    <comment_count>7</comment_count>
      <attachid>94971</attachid>
    <who name="Siddharth Mathur">s.mathur</who>
    <bug_when>2011-05-26 07:47:39 -0700</bug_when>
    <thetext>Created attachment 94971
ready for review

Please note that the default is still the &quot;use Qt&apos;s unicode&quot; . I am not proposing to change that in this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>410494</commentid>
    <comment_count>8</comment_count>
      <attachid>94985</attachid>
    <who name="Siddharth Mathur">s.mathur</who>
    <bug_when>2011-05-26 09:10:02 -0700</bug_when>
    <thetext>Created attachment 94985
Rebaselined patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>410499</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-05-26 09:12:29 -0700</bug_when>
    <thetext>Attachment 94985 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/ChangeLog&apos;, u&apos;Source...&quot; exit_code: 1

Source/WebCore/platform/text/qt/TextBreakIteratorInternalICUQt.cpp:39:  Extra space between return and cachedSystemLocale  [whitespace/declaration] [3]
Total errors found: 1 in 10 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>410527</commentid>
    <comment_count>10</comment_count>
      <attachid>94990</attachid>
    <who name="Siddharth Mathur">s.mathur</who>
    <bug_when>2011-05-26 09:42:18 -0700</bug_when>
    <thetext>Created attachment 94990
the perfect patch (pun intended)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>410790</commentid>
    <comment_count>11</comment_count>
      <attachid>95030</attachid>
    <who name="Siddharth Mathur">s.mathur</who>
    <bug_when>2011-05-26 13:48:49 -0700</bug_when>
    <thetext>Created attachment 95030
Benchmark test to time layout

Also attached is a speed test I wrote for timing layout of a Russian and a Hindi all-text page. When run 100 times (tst_painting complexScript -iterations 100), the benchmark shows almost no timing differences between the QT4_UNICODE and ICU_UNICODE builds of QtWebKit. 

Here is what is being timed. Is this correct? 

QBENCHMARK {
        QWebView* view = new QWebView;
        QWebFrame* frame = view-&gt;page()-&gt;mainFrame();
        frame-&gt;setContent(data);
        // Layout if one is required.
        frame-&gt;toPlainText();
        delete view;
}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>411966</commentid>
    <comment_count>12</comment_count>
      <attachid>94990</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2011-05-29 08:16:47 -0700</bug_when>
    <thetext>Comment on attachment 94990
the perfect patch (pun intended) 

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

&gt; Source/WebCore/platform/text/qt/TextBreakIteratorInternalICUQt.cpp:30
&gt; +Q_GLOBAL_STATIC_WITH_INITIALIZER(QByteArray, cachedSystemLocale, {*x = QLocale::system().name().toAscii();})

toAscii() is almost never correct in library context. It is not correct here.
The function return the string encoded with the default encoding, not the ascii encoding. You should use toLatin1() like the original code.

This caching is a change of behavior since we no longer use the system local when it changes. So I become curious: how important is the gain?

&gt; Source/WebCore/platform/text/qt/TextBreakIteratorInternalICUQt.cpp:39
&gt; +    return cachedSystemLocale()-&gt;data(); 
&gt; +}
&gt; +
&gt; +const char* currentTextBreakLocaleID()
&gt; +{
&gt; +    return cachedSystemLocale()-&gt;data(); 

You should use constData, otherwise the implementation have to detach() if needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>412908</commentid>
    <comment_count>13</comment_count>
    <who name="Siddharth Mathur">s.mathur</who>
    <bug_when>2011-05-31 15:08:11 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; (From update of attachment 94990 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=94990&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/text/qt/TextBreakIteratorInternalICUQt.cpp:30
&gt; &gt; +Q_GLOBAL_STATIC_WITH_INITIALIZER(QByteArray, cachedSystemLocale, {*x = QLocale::system().name().toAscii();})
&gt; 
&gt; toAscii() is almost never correct in library context. It is not correct here.
&gt; The function return the string encoded with the default encoding, not the ascii encoding. You should use toLatin1() like the original code.
&gt; 

Thanks for the review. I went back to Latin1() in upcoming patch. 

&gt; This caching is a change of behavior since we no longer use the system local when it changes. So I become curious: how important is the gain?

I am not shooting for any gains here at all. I noted that the old code passes a pointer managed by a transient stack object to the caller, hence causing a invalid read in my Valgrind tests, so I changed it to use a global static so that a valid memory location is always passed around. And Q_GLOBAL_STATIC_WITH_INITIALIZER() provides a clean way to do that. 

&gt; &gt; +
&gt; &gt; +const char* currentTextBreakLocaleID()
&gt; &gt; +{
&gt; &gt; +    return cachedSystemLocale()-&gt;data(); 
&gt; 
&gt; You should use constData, otherwise the implementation have to detach() if needed.

Fixed to use constData() in the upcoming patch. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>412910</commentid>
    <comment_count>14</comment_count>
      <attachid>95491</attachid>
    <who name="Siddharth Mathur">s.mathur</who>
    <bug_when>2011-05-31 15:09:02 -0700</bug_when>
    <thetext>Created attachment 95491
review comments incorporated</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>412937</commentid>
    <comment_count>15</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2011-05-31 15:34:19 -0700</bug_when>
    <thetext>I can see the motivation of using ICU, but I&apos;d like to raise the point that this introduces fragmentation between different platforms on what I would call rather basic behaviour.

Note that in the past we have done changes in Qt to move it closer to ICU behavior, for example commit e6ac173991223dbf3b1b6f7213550ebca4608cb6 in Qt 4.7.
I&apos;m pretty sure that Lars would welcome similar changes in Qt to match the behaviour, given WebKit&apos;s dominant role in content rendering these days and our desire to make Qt applications and QtWebKit match other browsers where it makes sense.

I don&apos;t think we should blindly switch without knowing the exact impact on behaviour and how we can maximize the deployment/availability of ICU for people using QtWebKit.

Imagine bug reports coming in about line breaking and us having to guess if QtWebKit was built with or without ICU support. I think that can become a maintenance burden.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>412939</commentid>
    <comment_count>16</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2011-05-31 15:35:44 -0700</bug_when>
    <thetext>On the topic of locales, please also see recent improvements in QLocale. Perhaps they will have a positive impact on the layout test results (I see locale specific stuff in the patch)

http://labs.qt.nokia.com/2011/01/03/qlocale-its-about-time-and-dates-and-languages-and/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>412948</commentid>
    <comment_count>17</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2011-05-31 15:42:17 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; On the topic of locales, please also see recent improvements in QLocale. Perhaps they will have a positive impact on the layout test results (I see locale specific stuff in the patch)
&gt; 
&gt; http://labs.qt.nokia.com/2011/01/03/qlocale-its-about-time-and-dates-and-languages-and/

Sorry, that link wasn&apos;t correct. However there has been a fair amount of work in QLocale in Qt 4.8, including ICU support for collation/toLower/toUpper.

It would be good to know the exact shortcomings in Qt that explain the individual test failures we see.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>413463</commentid>
    <comment_count>18</comment_count>
    <who name="Siddharth Mathur">s.mathur</who>
    <bug_when>2011-06-01 10:09:36 -0700</bug_when>
    <thetext>Simon, thanks for your comments :)

A minor note that the above patch does _not_ switch the default build option Qt WebKit, but provides the ability to do so with an CONFIG flag. 

I agree that as far as Qt WebKit as a portable framework is concerned, I would personally consider it a nightmare if I were to triage and fix lots of bug reports from multiple OSes using different configurations. However, my admittedly limited experience with Qt WebKit bug inflow suggests that only a small number of bugs originate from Windows or Linux QtWebKit API users who are _also_ looking for functional exactness between OSes. For example, a KDE developer may wish for quality on desktop Linux with standards support on par with Chrome, Safari etc. I don&apos;t think think he/she compares a QtWebKit Windows build with a QtWebKit Linux build? My understanding is that both desktop Linux and Windows users of Qt and Qt WebKit ship their own shared objects with custom bug fixes applied and build flags toggled, so they accept the cost of being &quot;on their own&quot;. Nokia&apos;s mobile end-users and developers follow a different trajectory as Nokia internally absorbs the majority of costs of maturing Meego or Symbian QtWebKit binaries that are pre-loaded on devices. To simplify matters, Symbian is certainly becoming a less important platform for future trunk deliveries. 

On the other hands, the following costs _are_ significant IMHO: 
- cost to current Qt WebKit developers of maintaining a list of dozens of Skipped tests for basic functionality. 
- cost to Apple, Google and other non Qt contributors of keeping Qt bots happy
- cost to Nokia of shipping frameworks or browsers in 2011 that can&apos;t render Thai, Arabic, Hebrew or Hindi correctly. 
- cost to mankind of using a web that doesn&apos;t speak their language correctly. 

More specifically to your points: 
a) Is this the Qt tracker bug for QLocale and collation work that you were looking for? http://bugreports.qt.nokia.com/browse/QTBUG-16178
(collation isn&apos;t done yet, and lot of the other changes aren&apos;t important for the failures in our Skipped list) 

b) The IDN related failures (idn-security.html) are due to ICANN specified blacklisted glyphs and characters which cannot be in IDN domain names to prevent confusion or phishing attacks. This is already in ICU, but missing in Qurl::toAce(). Note this IDN/QUrl problems are separate from QtCore&apos;s Unicode and Locale related issues, but a (lazy man&apos;s) solution happens to be the same. 

I haven&apos;t done a root cause analysis of the dozens of failures in the current configuration, but I thought that the presence of objective data from peer-reviewed Layout Tests cases and long-open bugs would help.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>414858</commentid>
    <comment_count>19</comment_count>
      <attachid>95491</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2011-06-03 07:13:21 -0700</bug_when>
    <thetext>Comment on attachment 95491
review comments incorporated

Ok, let&apos;s give this a try.
Could you look on the wiki if this flag can be documented anywhere?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>414891</commentid>
    <comment_count>20</comment_count>
      <attachid>95491</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-06-03 07:47:16 -0700</bug_when>
    <thetext>Comment on attachment 95491
review comments incorporated

Clearing flags on attachment: 95491

Committed r88016: &lt;http://trac.webkit.org/changeset/88016&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>414892</commentid>
    <comment_count>21</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-06-03 07:47:24 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>428227</commentid>
    <comment_count>22</comment_count>
    <who name="Laszlo Gombos">laszlo.gombos</who>
    <bug_when>2011-06-27 13:31:05 -0700</bug_when>
    <thetext>Re-purpose this bug to track the progress of switch to ICU and to track the impacted LayoutTests.

The following tests are also passing with ICU turned on:
sputnik/Unicode/Unicode_510/S15.5.4.16_A1.html
sputnik/Unicode/Unicode_510/S15.5.4.18_A1.html
sputnik/Unicode/Unicode_510/S7.6_A1.1_T1.html
sputnik/Unicode/Unicode_510/S7.6_A1.1_T2.html
sputnik/Unicode/Unicode_510/S7.6_A1.1_T4.html
sputnik/Unicode/Unicode_510/S7.6_A2.2_T1.html
sputnik/Unicode/Unicode_510/S7.6_A2.2_T2.html
sputnik/Unicode/Unicode_510/S7.6_A2.3.html

sputnik/Unicode/Unicode_510/S7.6_A5.2_T1.html
sputnik/Unicode/Unicode_510/S7.6_A5.2_T2.html
sputnik/Unicode/Unicode_510/S7.6_A5.2_T4.html
sputnik/Unicode/Unicode_510/S7.6_A5.2_T7.html
sputnik/Unicode/Unicode_510/S7.6_A5.2_T8.html
sputnik/Unicode/Unicode_510/S7.6_A5.2_T9.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>543205</commentid>
    <comment_count>23</comment_count>
    <who name="Jesus Sanchez-Palencia">jesus</who>
    <bug_when>2012-01-26 09:32:48 -0800</bug_when>
    <thetext>(In reply to comment #22)
&gt; Re-purpose this bug to track the progress of switch to ICU and to track the impacted LayoutTests.


Closing this bug after http://trac.webkit.org/changeset/105997 .</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>93495</attachid>
            <date>2011-05-13 12:47:10 -0700</date>
            <delta_ts>2011-05-23 13:16:20 -0700</delta_ts>
            <desc>Experimental patch for others to spin a build </desc>
            <filename>60786_v1.patch</filename>
            <type>text/plain</type>
            <size>5399</size>
            <attacher name="Siddharth Mathur">s.mathur</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5wcmkKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnByaQkocmV2aXNpb24g
ODU4NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUucHJpCSh3b3Jr
aW5nIGNvcHkpCkBAIC01NywxMCArNTcsMTEgQEAgd2luMzItKjogREVGSU5FUyArPSBfSEFTX1RS
MT0wCiAKIERFRklORVMgKz0gQlVJTERJTkdfSmF2YVNjcmlwdENvcmUgQlVJTERJTkdfV1RGCiAK
LSMgQ09ORklHICs9IHRleHRfYnJlYWtpbmdfd2l0aF9pY3UKK0NPTkZJRyArPSB0ZXh0X2JyZWFr
aW5nX3dpdGhfaWN1CiAKIGNvbnRhaW5zIChDT05GSUcsIHRleHRfYnJlYWtpbmdfd2l0aF9pY3Up
IHsKICAgICBERUZJTkVTICs9IFdURl9VU0VfUVRfSUNVX1RFWFRfQlJFQUtJTkc9MQorICAgIExJ
QlMgKz0gLWxpY3V1YyAtbGljdWkxOG4KIH0KIAogd2luY2UqIHsKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qc2MucHJvCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
c2MucHJvCShyZXZpc2lvbiA4NTg1MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MucHJv
CSh3b3JraW5nIGNvcHkpCkBAIC0yMyw2ICsyMyw4IEBAIHN5bWJpYW4gewogICAgIFRBUkdFVC5D
QVBBQklMSVRZID0gUmVhZFVzZXJEYXRhIFdyaXRlVXNlckRhdGEgTmV0d29ya1NlcnZpY2VzCiB9
CiAKK0xJQlMgKz0gLWxpY3V1YyAtbGljdWkxOG4KKwogbWFjIHsKICAgICBMSUJTX1BSSVZBVEUg
Kz0gLWZyYW1ld29yayBBcHBLaXQKIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYv
UGxhdGZvcm0uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRm
b3JtLmgJKHJldmlzaW9uIDg1ODUyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0
Zm9ybS5oCSh3b3JraW5nIGNvcHkpCkBAIC02MDAsNyArNjAwLDggQEAKICNlbmRpZiAgLyogT1Mo
V0lOQ0UpICYmICFQTEFURk9STShRVCkgKi8KIAogI2lmIFBMQVRGT1JNKFFUKQotI2RlZmluZSBX
VEZfVVNFX1FUNF9VTklDT0RFIDEKKy8vU006ICNkZWZpbmUgV1RGX1VTRV9RVDRfVU5JQ09ERSAx
CisjZGVmaW5lIFdURl9VU0VfSUNVX1VOSUNPREUgMQogI2VsaWYgT1MoV0lOQ0UpCiAjZGVmaW5l
IFdURl9VU0VfV0lOQ0VfVU5JQ09ERSAxCiAjZWxpZiBQTEFURk9STShCUkVXTVApCkBAIC0xMjEw
LDcgKzEyMTEsNyBAQAogICAgYnJlYWthZ2VzIG9uZSBwb3J0IGF0IGEgdGltZS4gKi8KICNkZWZp
bmUgV1RGX1VTRV9FWFBPUlRfTUFDUk9TIDAKIAotI2lmIFBMQVRGT1JNKFFUKSB8fCBQTEFURk9S
TShHVEspCisjaWYgKFBMQVRGT1JNKFFUKSAmJiAhT1MoU1lNQklBTikpIHx8IFBMQVRGT1JNKEdU
SykKICNkZWZpbmUgV1RGX1VTRV9VTklYX0RPTUFJTl9TT0NLRVRTIDEKICNlbmRpZgogCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnByaQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnByaQkocmV2aXNpb24gODU4NTIpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LnByaQkod29ya2luZyBjb3B5KQpAQCAtMjgyLDggKzI4Miw5IEBAIGNvbnRhaW5zKERFRklORVMs
IEVOQUJMRV9XRUJHTD0xKXxjb250YWkKICAgICBDT05GSUcgKz0gbm9fZGVidWdfaW5mbwogfQog
CitDT05GSUcrPXRleHRfYnJlYWtpbmdfd2l0aF9pY3UKIGNvbnRhaW5zIChDT05GSUcsIHRleHRf
YnJlYWtpbmdfd2l0aF9pY3UpIHsKLSAgICBMSUJTICs9IC1saWN1dWMKKyAgICBMSUJTICs9IC1s
aWN1dWMgLWxpY3VpMThuCiB9CiAKICFDT05GSUcoUVRESVJfYnVpbGQpIHsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUucHJvCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNv
cmUucHJvCShyZXZpc2lvbiA4NTg1MikKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCSh3
b3JraW5nIGNvcHkpCkBAIC0yNTI1LDcgKzI1MjUsMTAgQEAgU09VUkNFUyArPSBcCiAgICAgcGxh
dGZvcm0vcXQvVGVtcG9yYXJ5TGlua1N0dWJzUXQuY3BwIFwKICAgICBwbGF0Zm9ybS90ZXh0L3F0
L1RleHRCb3VuZGFyaWVzUXQuY3BwIFwKICAgICBwbGF0Zm9ybS90ZXh0L3F0L1RleHRCcmVha0l0
ZXJhdG9yUXQuY3BwIFwKKyAgICBwbGF0Zm9ybS90ZXh0L1RleHRCcmVha0l0ZXJhdG9ySUNVLmNw
cCBcCisgICAgcGxhdGZvcm0vdGV4dC9xdC9UZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVLmNw
cCBcCiAgICAgcGxhdGZvcm0vdGV4dC9xdC9UZXh0Q29kZWNRdC5jcHAgXAorICAgIHBsYXRmb3Jt
L3RleHQvVGV4dENvZGVjSUNVLmNwcCBcCiAgICAgcGxhdGZvcm0vcXQvV2hlZWxFdmVudFF0LmNw
cCBcCiAgICAgcGxhdGZvcm0vcXQvV2lkZ2V0UXQuY3BwCiAKQEAgLTI1NTYsNiArMjU1OSw4IEBA
IG1hYyB7CiAgICAgICAgIHBsYXRmb3JtL3RleHQvY2YvU3RyaW5nSW1wbENGLmNwcAogfQogCitD
T05GSUcrPXRleHRfYnJlYWtpbmdfd2l0aF9pY3UKKwogY29udGFpbnMgKENPTkZJRywgdGV4dF9i
cmVha2luZ193aXRoX2ljdSkgewogICAgIFNPVVJDRVMgKz0gcGxhdGZvcm0vdGV4dC9UZXh0QnJl
YWtJdGVyYXRvcklDVS5jcHAKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvcXQvU21h
cnRSZXBsYWNlUXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvcXQv
U21hcnRSZXBsYWNlUXQuY3BwCShyZXZpc2lvbiA4NTg1MikKKysrIFNvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvcXQvU21hcnRSZXBsYWNlUXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw4
IEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJTbWFydFJlcGxhY2UuaCIKKyNp
bmNsdWRlIDxRQ2hhcj4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L3F0L1RleHRCcmVha0l0ZXJh
dG9ySW50ZXJuYWxJQ1UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3RleHQvcXQvVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVS5jcHAJKHJldmlzaW9uIDg1ODUy
KQkoZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L2FuZHJvaWQvVGV4dEJyZWFrSXRl
cmF0b3JJbnRlcm5hbElDVS5jcHA6ODU4NTIpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90
ZXh0L3F0L1RleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1UuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAwNywgVGhlIEFuZHJvaWQgT3BlbiBT
b3VyY2UgUHJvamVjdAorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVGV4
dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Nv
bnN0IGNoYXIqIGN1cnJlbnRTZWFyY2hMb2NhbGVJRCgpCit7CisgICAgLy8gRklYTUU6IFNob3Vs
ZCB1c2Ugc3lzdGVtIGxvY2FsZS4KKyAgICByZXR1cm4gIiI7Cit9CisKK2NvbnN0IGNoYXIqIGN1
cnJlbnRUZXh0QnJlYWtMb2NhbGVJRCgpCit7CisgICAgLy8gRklYTUU6IFNob3VsZCB1c2Ugc3lz
dGVtIGxvY2FsZS4KKyAgICByZXR1cm4gImVuX3VzIjsKK30KKworfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>94470</attachid>
            <date>2011-05-23 13:16:20 -0700</date>
            <delta_ts>2011-05-25 11:40:57 -0700</delta_ts>
            <desc>updated patch</desc>
            <filename>60786_v2.patch</filename>
            <type>text/plain</type>
            <size>8295</size>
            <attacher name="Siddharth Mathur">s.mathur</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvdW5pY29kZS9xdDQvVW5pY29kZVF0NC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvdW5pY29kZS9xdDQvVW5p
Y29kZVF0NC5oCShyZXZpc2lvbiA4Njc3MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYv
dW5pY29kZS9xdDQvVW5pY29kZVF0NC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw3ICszMSw3IEBA
CiAjaW5jbHVkZSA8Y29uZmlnLmg+CiAKICNpbmNsdWRlIDxzdGRpbnQuaD4KLSNpZiBVU0UoUVRf
SUNVX1RFWFRfQlJFQUtJTkcpCisjaWYgVVNFKElDVV9VTklDT0RFKQogI2luY2x1ZGUgPHVuaWNv
ZGUvdWJyay5oPgogI2VuZGlmCiAKQEAgLTY3LDcgKzY3LDcgQEAKIHR5cGVkZWYgdWludDE2X3Qg
VUNoYXI7CiAjZW5kaWYKIAotI2lmICFVU0UoUVRfSUNVX1RFWFRfQlJFQUtJTkcpCisjaWYgIVVT
RShJQ1VfVU5JQ09ERSkKIHR5cGVkZWYgdWludDMyX3QgVUNoYXIzMjsKICNlbmRpZgogCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oCShyZXZpc2lvbiA4Njc3MykKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm0uaAkod29ya2luZyBjb3B5KQpAQCAtNTk5
LDkgKzU5OSw3IEBACiAKICNlbmRpZiAgLyogT1MoV0lOQ0UpICYmICFQTEFURk9STShRVCkgKi8K
IAotI2lmIFBMQVRGT1JNKFFUKQotI2RlZmluZSBXVEZfVVNFX1FUNF9VTklDT0RFIDEKLSNlbGlm
IE9TKFdJTkNFKQorI2lmIE9TKFdJTkNFKQogI2RlZmluZSBXVEZfVVNFX1dJTkNFX1VOSUNPREUg
MQogI2VsaWYgUExBVEZPUk0oQlJFV01QKQogI2RlZmluZSBXVEZfVVNFX0JSRVdNUF9VTklDT0RF
IDEKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5wcmkKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnByaQkocmV2aXNp
b24gODY3NzMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUucHJpCSh3
b3JraW5nIGNvcHkpCkBAIC01NywxMCArNTcsMTMgQEAKIAogREVGSU5FUyArPSBCVUlMRElOR19K
YXZhU2NyaXB0Q29yZSBCVUlMRElOR19XVEYKIAotIyBDT05GSUcgKz0gdGV4dF9icmVha2luZ193
aXRoX2ljdQotCi1jb250YWlucyAoQ09ORklHLCB0ZXh0X2JyZWFraW5nX3dpdGhfaWN1KSB7Ci0g
ICAgREVGSU5FUyArPSBXVEZfVVNFX1FUX0lDVV9URVhUX0JSRUFLSU5HPTEKK2NvbnRhaW5zIChD
T05GSUcsIHVzZV9zeXN0ZW1faWN1KSB7CisgICAgREVGSU5FUyArPSBXVEZfVVNFX0lDVV9VTklD
T0RFPTEKKyAgICBERUZJTkVTIC09IFdURl9VU0VfUVQ0X1VOSUNPREUKKyAgICBMSUJTICs9IC1s
aWN1dWMgLWxpY3VpMThuCit9IGVsc2UgeyAKKyAgICBERUZJTkVTICs9IFdURl9VU0VfUVQ0X1VO
SUNPREU9MQorICAgIERFRklORVMgLT0gV1RGX1VTRV9JQ1VfVU5JQ09ERQogfQogCiB3aW5jZSog
ewpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcmkKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5wcmkJKHJldmlzaW9uIDg2NzczKQorKysgU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5wcmkJKHdvcmtpbmcgY29weSkKQEAgLTI4OCw4ICsyODgsOCBAQAogICAgIENPTkZJ
RyArPSBub19kZWJ1Z19pbmZvCiB9CiAKLWNvbnRhaW5zIChDT05GSUcsIHRleHRfYnJlYWtpbmdf
d2l0aF9pY3UpIHsKLSAgICBMSUJTICs9IC1saWN1dWMKK2NvbnRhaW5zIChDT05GSUcsIHVzZV9z
eXN0ZW1faWN1KSB7CisgICAgTElCUyArPSAtbGljdXVjIC1saWN1aTE4bgogfQogCiAhQ09ORklH
KFFURElSX2J1aWxkKSB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL3F0L1NtYXJ0UmVw
bGFjZVF0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL3F0L1NtYXJ0
UmVwbGFjZVF0LmNwcAkocmV2aXNpb24gODY3NzMpCisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L3F0L1NtYXJ0UmVwbGFjZVF0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsNyArMjgsOSBAQAog
ICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKKyNpZiBVU0UoUVQ0X1VOSUNPREUpCiAjaW5jbHVk
ZSAiU21hcnRSZXBsYWNlLmgiCisjaW5jbHVkZSA8UUNoYXI+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIApAQCAtNjQsMyArNjYsNCBAQAogfQogCiB9CisjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL1dlYkNvcmUucHJvCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJv
CShyZXZpc2lvbiA4Njc3MykKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCSh3b3JraW5n
IGNvcHkpCkBAIC0xMDU2LDYgKzEwNTYsNyBAQAogICAgIHBsYXRmb3JtL3RleHQvVGV4dENvZGVj
VXNlckRlZmluZWQuY3BwIFwKICAgICBwbGF0Zm9ybS90ZXh0L1RleHRDb2RlY1VURjE2LmNwcCBc
CiAgICAgcGxhdGZvcm0vdGV4dC9UZXh0Q29kZWNVVEY4LmNwcCBcCisgICAgcGxhdGZvcm0vdGV4
dC9UZXh0Q29kZWNJQ1UuY3BwIFwKICAgICBwbGF0Zm9ybS90ZXh0L1RleHRFbmNvZGluZy5jcHAg
XAogICAgIHBsYXRmb3JtL3RleHQvVGV4dEVuY29kaW5nRGV0ZWN0b3JOb25lLmNwcCBcCiAgICAg
cGxhdGZvcm0vdGV4dC9UZXh0RW5jb2RpbmdSZWdpc3RyeS5jcHAgXApAQCAtMjUzNyw2ICsyNTM4
LDcgQEAKICAgICBwbGF0Zm9ybS9xdC9UZW1wb3JhcnlMaW5rU3R1YnNRdC5jcHAgXAogICAgIHBs
YXRmb3JtL3RleHQvcXQvVGV4dEJvdW5kYXJpZXNRdC5jcHAgXAogICAgIHBsYXRmb3JtL3RleHQv
cXQvVGV4dEJyZWFrSXRlcmF0b3JRdC5jcHAgXAorICAgIHBsYXRmb3JtL3RleHQvcXQvVGV4dEJy
ZWFrSXRlcmF0b3JJbnRlcm5hbElDVVF0LmNwcCBcCiAgICAgcGxhdGZvcm0vdGV4dC9xdC9UZXh0
Q29kZWNRdC5jcHAgXAogICAgIHBsYXRmb3JtL3F0L1doZWVsRXZlbnRRdC5jcHAgXAogICAgIHBs
YXRmb3JtL3F0L1dpZGdldFF0LmNwcApAQCAtMjU2OCw3ICsyNTcwLDcgQEAKICAgICAgICAgcGxh
dGZvcm0vdGV4dC9jZi9TdHJpbmdJbXBsQ0YuY3BwCiB9CiAKLWNvbnRhaW5zIChDT05GSUcsIHRl
eHRfYnJlYWtpbmdfd2l0aF9pY3UpIHsKK2NvbnRhaW5zIChDT05GSUcsIHVzZV9zeXN0ZW1faWN1
KSB7CiAgICAgU09VUkNFUyArPSBwbGF0Zm9ybS90ZXh0L1RleHRCcmVha0l0ZXJhdG9ySUNVLmNw
cAogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L3F0L1RleHRCcmVha0l0
ZXJhdG9ySW50ZXJuYWxJQ1VRdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vdGV4dC9xdC9UZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVUXQuY3BwCShyZXZpc2lv
biAwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9xdC9UZXh0QnJlYWtJdGVyYXRv
ckludGVybmFsSUNVUXQuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQ3IEBACisvKgorICAg
IENvcHlyaWdodCAoQykgMjAxMSBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlh
cnkoLWllcykKKworICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl
ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAgIHZlcnNpb24gMiBvZiB0
aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAg
IFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUg
dXNlZnVsLAorICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp
bXBsaWVkIHdhcnJhbnR5IG9mCisgICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgICBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgIFlvdSBzaG91bGQgaGF2ZSByZWNl
aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAg
ICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYg
bm90LCB3cml0ZSB0bworICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUx
IEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgICAgQm9zdG9uLCBNQSAwMjExMC0xMzAx
LCBVU0EuCisqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVGV4dEJyZWFrSXRl
cmF0b3JJbnRlcm5hbElDVS5oIgorCisjaW5jbHVkZSA8cWdsb2JhbC5oPgorI2luY2x1ZGUgPFFC
eXRlQXJyYXk+CisjaW5jbHVkZSA8UUxvY2FsZT4KKyNpbmNsdWRlIDxRRGVidWc+CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworUV9HTE9CQUxfU1RBVElDX1dJVEhfSU5JVElBTElaRVIoUUJ5dGVB
cnJheSwgY2FjaGVkU3lzdGVtTG9jYWxlLCB7KnggPSBRTG9jYWxlOjpzeXN0ZW0oKS5uYW1lKCku
dG9Bc2NpaSgpO30pCisJCQkJCisvLyBGSVhNRTogV2l0aCBRdCA0LjgrLCB3ZSBzaG91bGQgc3Rh
cnQgdXNpbmcgdGhlIG5ldyBBUEkgUUxvY2FsZTo6dWlMYW5ndWFnZXMoKQorY29uc3QgY2hhciog
Y3VycmVudFNlYXJjaExvY2FsZUlEKCkKK3sKKyAgICBjb25zdCBjaGFyKiBwdHIgPSAgY2FjaGVk
U3lzdGVtTG9jYWxlKCktPmRhdGEoKTsgCisgICAgcURlYnVnKCkgPDwgIiBSZXR1cm5pbmcgY3Vy
cmVudFNlYXJjaExvY2FsKCkiIDw8IHB0cjsKKyAgICByZXR1cm4gcHRyOworfQorCitjb25zdCBj
aGFyKiBjdXJyZW50VGV4dEJyZWFrTG9jYWxlSUQoKQoreworICAgIGNvbnN0IGNoYXIqIHB0ciA9
ICBjYWNoZWRTeXN0ZW1Mb2NhbGUoKS0+ZGF0YSgpOyAKKyAgICBxRGVidWcoKSA8PCAiIFJldHVy
bmluZyBjdXJyZW50VGV4dEJyZWFrTG9jYWxlSUQoKSIgPDwgcHRyOworCXJldHVybiBwdHI7Cit9
CisKK30KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvcXQvVGV4dENvZGVjUXQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvcXQvVGV4dENv
ZGVjUXQuY3BwCShyZXZpc2lvbiA4Njc3MykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Rl
eHQvcXQvVGV4dENvZGVjUXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw2ICsyNSw3IEBACiAg
Ki8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgorI2lmIFVTRShRVDRfVU5JQ09ERSkKICNpbmNsdWRl
ICJUZXh0Q29kZWNRdC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCiAjaW5jbHVkZSA8
d3RmL3RleHQvQ1N0cmluZy5oPgpAQCAtNDYsMTcgKzQ3LDE0IEBACiB2b2lkIFRleHRDb2RlY1F0
OjpyZWdpc3RlckVuY29kaW5nTmFtZXMoRW5jb2RpbmdOYW1lUmVnaXN0cmFyIHJlZ2lzdHJhcikK
IHsKICAgICBRTGlzdDxpbnQ+IG1pYnMgPSBRVGV4dENvZGVjOjphdmFpbGFibGVNaWJzKCk7Ci0v
LyAgICAgcURlYnVnKCkgPDwgIj4+Pj4+Pj4+PiByZWdpc3RlckVuY29kaW5nTmFtZXMiOwogCiAg
ICAgZm9yIChpbnQgaSA9IDA7IGkgPCBtaWJzLnNpemUoKTsgKytpKSB7CiAgICAgICAgIFFUZXh0
Q29kZWMgKmMgPSBRVGV4dENvZGVjOjpjb2RlY0Zvck1pYihtaWJzLmF0KGkpKTsKICAgICAgICAg
Y29uc3QgY2hhciAqbmFtZSA9IGdldEF0b21pY05hbWUoYy0+bmFtZSgpKTsKICAgICAgICAgcmVn
aXN0cmFyKG5hbWUsIG5hbWUpOwotLy8gICAgICAgICBxRGVidWcoKSA8PCAiICAgICIgPDwgbmFt
ZSA8PCBuYW1lOwogICAgICAgICBRTGlzdDxRQnl0ZUFycmF5PiBhbGlhc2VzID0gYy0+YWxpYXNl
cygpOwogICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGFsaWFzZXMuc2l6ZSgpOyArK2kpIHsK
ICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmEgPSBnZXRBdG9taWNOYW1lKGFsaWFzZXMuYXQoaSkp
OwotLy8gICAgICAgICAgICAgcURlYnVnKCkgPDwgIiAgICAgKGEpICIgPDwgYSA8PCBuYW1lOwog
ICAgICAgICAgICAgcmVnaXN0cmFyKGEsIG5hbWUpOwogICAgICAgICB9CiAgICAgfQpAQCAtNzAs
MTIgKzY4LDEwIEBACiB2b2lkIFRleHRDb2RlY1F0OjpyZWdpc3RlckNvZGVjcyhUZXh0Q29kZWNS
ZWdpc3RyYXIgcmVnaXN0cmFyKQogewogICAgIFFMaXN0PGludD4gbWlicyA9IFFUZXh0Q29kZWM6
OmF2YWlsYWJsZU1pYnMoKTsKLS8vICAgICBxRGVidWcoKSA8PCAiPj4+Pj4+Pj4+IHJlZ2lzdGVy
Q29kZWNzIjsKIAogICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbWlicy5zaXplKCk7ICsraSkgewog
ICAgICAgICBRVGV4dENvZGVjICpjID0gUVRleHRDb2RlYzo6Y29kZWNGb3JNaWIobWlicy5hdChp
KSk7CiAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUgPSBnZXRBdG9taWNOYW1lKGMtPm5hbWUoKSk7
Ci0vLyAgICAgICAgIHFEZWJ1ZygpIDw8ICIgICAgIiA8PCBuYW1lOwogICAgICAgICByZWdpc3Ry
YXIobmFtZSwgbmV3VGV4dENvZGVjUXQsIDApOwogICAgIH0KIH0KQEAgLTE2NCwzICsxNjAsNCBA
QAogCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKyNlbmRpZgpJbmRleDogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vdGV4dC9xdC9UZXh0QnJlYWtJdGVyYXRvclF0LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L3F0L1RleHRCcmVha0l0ZXJhdG9yUXQuY3Bw
CShyZXZpc2lvbiA4Njc3MykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvcXQvVGV4
dEJyZWFrSXRlcmF0b3JRdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM2LDEyICszNiw2IEBACiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotI2lmIFVTRShRVF9JQ1VfVEVYVF9CUkVBS0lORykKLWNv
bnN0IGNoYXIqIGN1cnJlbnRUZXh0QnJlYWtMb2NhbGVJRCgpCi17Ci0gICAgcmV0dXJuIFFMb2Nh
bGU6OnN5c3RlbSgpLm5hbWUoKS50b0xhdGluMSgpOwotfQotI2Vsc2UKICAgICBjbGFzcyBUZXh0
QnJlYWtJdGVyYXRvciA6IHB1YmxpYyBRVGV4dEJvdW5kYXJ5RmluZGVyIHsKICAgICBwdWJsaWM6
CiAgICAgICAgIFRleHRCcmVha0l0ZXJhdG9yKFFUZXh0Qm91bmRhcnlGaW5kZXI6OkJvdW5kYXJ5
VHlwZSB0eXBlLCBjb25zdCBRU3RyaW5nJiBzdHJpbmcpCkBAIC0xNTUsNiArMTQ5LDUgQEAKICAg
ICB7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KLSNlbmRpZgogCiB9CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRDb2RlY0lDVS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0Q29kZWNJQ1UuY3BwCShyZXZpc2lvbiA4
Njc3MykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dENvZGVjSUNVLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjUsNiArMjUsNyBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcu
aCIKKyNpZiBVU0UoSUNVX1VOSUNPREUpCiAjaW5jbHVkZSAiVGV4dENvZGVjSUNVLmgiCiAKICNp
bmNsdWRlICJUaHJlYWRHbG9iYWxEYXRhLmgiCkBAIC00NzEsMyArNDcyLDUgQEAKIH0KIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorI2VuZGlmCisK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>94818</attachid>
            <date>2011-05-25 11:40:57 -0700</date>
            <delta_ts>2011-05-25 13:58:17 -0700</delta_ts>
            <desc>Better patch</desc>
            <filename>60786_v4.patch</filename>
            <type>text/plain</type>
            <size>11207</size>
            <attacher name="Siddharth Mathur">s.mathur</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gODczMDYpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAK
KzIwMTEtMDUtMjUgIFNpZGRoYXJ0aCBNYXRodXIgIDxzaWRkaGFydGgubWF0aHVyQG5va2lhLmNv
bT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbUXRd
IEJ1aWxkIGZsYWcgZm9yIGV4cGVyaW1lbnRhbCBJQ1UgbGlicmFyeSBzdXBwb3J0CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MDc4NgorCisgICAgICAg
ICogSmF2YVNjcmlwdENvcmUucHJpOiBBZGQgdXNlX3N5c3RlbV9pY3UgZmxhZy4KKyAgICAgICAg
KiB3dGYvUGxhdGZvcm0uaDogUmVtb3ZlIGRlZmF1bHQgY2hvaWNlIG9mIFFUNF9VTklDT0RFIGZs
YWcgZm9yIFF0IHBvcnQuCisgICAgICAgICogd3RmL3VuaWNvZGUvcXQ0L1VuaWNvZGVRdDQuaDog
UmVtb3ZlIHRleHQtYnJlYWtpbmcgb25seSBjb25maWcgZmxhZyBhbmQgdXNlIFVTRShJQ1VfVU5J
Q09ERSkgaW5zdGVhZC4KKwogMjAxMS0wNC0xMCAgS2V2aW4gT2xsaXZpZXIgIDxrZXZpbm9AdGhl
b2xsaXZpZXJzLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5wcmkKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnByaQkocmV2aXNpb24gODczMDYp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUucHJpCSh3b3JraW5nIGNv
cHkpCkBAIC01NywxMCArNTcsMTEgQEAgd2luMzItKjogREVGSU5FUyArPSBfSEFTX1RSMT0wCiAK
IERFRklORVMgKz0gQlVJTERJTkdfSmF2YVNjcmlwdENvcmUgQlVJTERJTkdfV1RGCiAKLSMgQ09O
RklHICs9IHRleHRfYnJlYWtpbmdfd2l0aF9pY3UKLQotY29udGFpbnMgKENPTkZJRywgdGV4dF9i
cmVha2luZ193aXRoX2ljdSkgewotICAgIERFRklORVMgKz0gV1RGX1VTRV9RVF9JQ1VfVEVYVF9C
UkVBS0lORz0xCitjb250YWlucyhDT05GSUcsIHVzZV9zeXN0ZW1faWN1KSB7CisgICAgREVGSU5F
UyArPSBXVEZfVVNFX0lDVV9VTklDT0RFPTEKKyAgICBMSUJTICs9IC1saWN1dWMgLWxpY3VpMThu
Cit9IGVsc2UgeworICAgIERFRklORVMgKz0gV1RGX1VTRV9RVDRfVU5JQ09ERT0xCiB9CiAKIHdp
bmNlKiB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oCShyZXZpc2lvbiA4
NzMwNikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm0uaAkod29ya2luZyBj
b3B5KQpAQCAtNTk5LDkgKzU5OSw3IEBACiAKICNlbmRpZiAgLyogT1MoV0lOQ0UpICYmICFQTEFU
Rk9STShRVCkgKi8KIAotI2lmIFBMQVRGT1JNKFFUKQotI2RlZmluZSBXVEZfVVNFX1FUNF9VTklD
T0RFIDEKLSNlbGlmIE9TKFdJTkNFKQorI2lmIE9TKFdJTkNFKQogI2RlZmluZSBXVEZfVVNFX1dJ
TkNFX1VOSUNPREUgMQogI2VsaWYgUExBVEZPUk0oQlJFV01QKQogI2RlZmluZSBXVEZfVVNFX0JS
RVdNUF9VTklDT0RFIDEKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvdW5pY29kZS9x
dDQvVW5pY29kZVF0NC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYv
dW5pY29kZS9xdDQvVW5pY29kZVF0NC5oCShyZXZpc2lvbiA4NzMwNikKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS93dGYvdW5pY29kZS9xdDQvVW5pY29kZVF0NC5oCSh3b3JraW5nIGNvcHkpCkBA
IC0zMSw3ICszMSw3IEBACiAjaW5jbHVkZSA8Y29uZmlnLmg+CiAKICNpbmNsdWRlIDxzdGRpbnQu
aD4KLSNpZiBVU0UoUVRfSUNVX1RFWFRfQlJFQUtJTkcpCisjaWYgVVNFKElDVV9VTklDT0RFKQog
I2luY2x1ZGUgPHVuaWNvZGUvdWJyay5oPgogI2VuZGlmCiAKQEAgLTY3LDcgKzY3LDcgQEAgdHlw
ZWRlZiB3Y2hhcl90IFVDaGFyOwogdHlwZWRlZiB1aW50MTZfdCBVQ2hhcjsKICNlbmRpZgogCi0j
aWYgIVVTRShRVF9JQ1VfVEVYVF9CUkVBS0lORykKKyNpZiAhVVNFKElDVV9VTklDT0RFKQogdHlw
ZWRlZiB1aW50MzJfdCBVQ2hhcjMyOwogI2VuZGlmCiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9u
IDg3MzA2KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDMgKzEsMjcgQEAKKzIwMTEtMDUtMjUgIFNpZGRoYXJ0aCBNYXRodXIgIDxzaWRkaGFydGgubWF0
aHVyQG5va2lhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBbUXRdIEJ1aWxkIGZsYWcgZm9yIGV4cGVyaW1lbnRhbCBJQ1UgbGlicmFyeSBzdXBw
b3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MDc4
NgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBhcyB0aGlzIGFkZHMgYSBidWlsZC10aW1lIG9wdGlv
biB0byBzd2ljaCBRdCBwb3J0IFVuaWNvZGUgdGV4dCBoYW5kbGluZy4gCisKKyAgICAgICAgKiBX
ZWJDb3JlLnByaTogUmVtb3ZlIHRleHRfYnJlYWtpbmdfd2l0aF9pY3UgQ09ORklHLgorICAgICAg
ICAqIFdlYkNvcmUucHJvOiBBZGQgVGV4dENvZGVjSUNVLmNwcCBhbmQgcXQvVGV4dEJyZWFrSXRl
cmF0b3JJbnRlcm5hbElDVVF0LmNwcC4KKyAgICAgICAgKiBlZGl0aW5nL3F0L1NtYXJ0UmVwbGFj
ZVF0LmNwcDogR3VhcmQgd2l0aCBVU0UoUVQ0X1VOSUNPREUpLgorICAgICAgICAqIGZlYXR1cmVz
LnByaToKKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L1RleHRDb2RlY0lDVS5jcHA6IEd1YXJkIHdp
dGggVVNFKElDVV9VTklDT0RFKS4KKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L3F0L1RleHRCcmVh
a0l0ZXJhdG9ySW50ZXJuYWxJQ1VRdC5jcHA6IEFkZGVkLiBHZXR0ZXJzIGZvciBsb2NhbGUuCisg
ICAgICAgIChXZWJDb3JlOjpRX0dMT0JBTF9TVEFUSUNfV0lUSF9JTklUSUFMSVpFUik6CisgICAg
ICAgIChXZWJDb3JlOjpjdXJyZW50U2VhcmNoTG9jYWxlSUQpOgorICAgICAgICAoV2ViQ29yZTo6
Y3VycmVudFRleHRCcmVha0xvY2FsZUlEKToKKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L3F0L1Rl
eHRCcmVha0l0ZXJhdG9yUXQuY3BwOiBNb3ZlIG91dCBvbGQgY3VycmVudFRleHRCcmVha0xvY2Fs
ZUlEKCkuCisgICAgICAgIChXZWJDb3JlOjppc1RleHRCcmVhayk6CisgICAgICAgICogcGxhdGZv
cm0vdGV4dC9xdC9UZXh0Q29kZWNRdC5jcHA6IEd1YXJkIHdpdGggVVNFKFFUNF9VTklDT0RFKS4g
CisgICAgICAgIChXZWJDb3JlOjpUZXh0Q29kZWNRdDo6cmVnaXN0ZXJFbmNvZGluZ05hbWVzKToK
KyAgICAgICAgKFdlYkNvcmU6OlRleHRDb2RlY1F0OjpyZWdpc3RlckNvZGVjcyk6CisKIDIwMTEt
MDUtMjUgIExldmkgV2VpbnRyYXViICA8bGV2aXdAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IEVyaWMgU2VpZGVsLgpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcmkK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcmkJKHJldmlzaW9uIDg3MzA2
KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcmkJKHdvcmtpbmcgY29weSkKQEAgLTI4OCwx
MCArMjg4LDYgQEAgY29udGFpbnMoQ09ORklHLCB0ZXhtYXApIHsKICAgICBDT05GSUcgKz0gbm9f
ZGVidWdfaW5mbwogfQogCi1jb250YWlucyAoQ09ORklHLCB0ZXh0X2JyZWFraW5nX3dpdGhfaWN1
KSB7Ci0gICAgTElCUyArPSAtbGljdXVjCi19Ci0KICFDT05GSUcoUVRESVJfYnVpbGQpIHsKICAg
ICB3aW4zMi0qfHdpbmNlKiB7CiAgICAgICAgIERMTERFU1RESVIgPSAkJE9VVFBVVF9ESVIvYmlu
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnBybwkocmV2aXNpb24gODczMDYpCisrKyBTb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnBybwkod29ya2luZyBjb3B5KQpAQCAtMTA2Niw2ICsxMDY2LDcgQEAgU09VUkNFUyAr
PSBcCiAgICAgcGxhdGZvcm0vdGV4dC9UZXh0Q29kZWNVc2VyRGVmaW5lZC5jcHAgXAogICAgIHBs
YXRmb3JtL3RleHQvVGV4dENvZGVjVVRGMTYuY3BwIFwKICAgICBwbGF0Zm9ybS90ZXh0L1RleHRD
b2RlY1VURjguY3BwIFwKKyAgICBwbGF0Zm9ybS90ZXh0L1RleHRDb2RlY0lDVS5jcHAgXAogICAg
IHBsYXRmb3JtL3RleHQvVGV4dEVuY29kaW5nLmNwcCBcCiAgICAgcGxhdGZvcm0vdGV4dC9UZXh0
RW5jb2RpbmdEZXRlY3Rvck5vbmUuY3BwIFwKICAgICBwbGF0Zm9ybS90ZXh0L1RleHRFbmNvZGlu
Z1JlZ2lzdHJ5LmNwcCBcCkBAIC0yNTUyLDYgKzI1NTMsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBw
bGF0Zm9ybS9xdC9UZW1wb3JhcnlMaW5rU3R1YnNRdC5jcHAgXAogICAgIHBsYXRmb3JtL3RleHQv
cXQvVGV4dEJvdW5kYXJpZXNRdC5jcHAgXAogICAgIHBsYXRmb3JtL3RleHQvcXQvVGV4dEJyZWFr
SXRlcmF0b3JRdC5jcHAgXAorICAgIHBsYXRmb3JtL3RleHQvcXQvVGV4dEJyZWFrSXRlcmF0b3JJ
bnRlcm5hbElDVVF0LmNwcCBcCiAgICAgcGxhdGZvcm0vdGV4dC9xdC9UZXh0Q29kZWNRdC5jcHAg
XAogICAgIHBsYXRmb3JtL3F0L1doZWVsRXZlbnRRdC5jcHAgXAogICAgIHBsYXRmb3JtL3F0L1dp
ZGdldFF0LmNwcApAQCAtMjU4Myw3ICsyNTg1LDcgQEAgbWFjIHsKICAgICAgICAgcGxhdGZvcm0v
dGV4dC9jZi9TdHJpbmdJbXBsQ0YuY3BwCiB9CiAKLWNvbnRhaW5zIChDT05GSUcsIHRleHRfYnJl
YWtpbmdfd2l0aF9pY3UpIHsKK2NvbnRhaW5zIChDT05GSUcsIHVzZV9zeXN0ZW1faWN1KSB7CiAg
ICAgU09VUkNFUyArPSBwbGF0Zm9ybS90ZXh0L1RleHRCcmVha0l0ZXJhdG9ySUNVLmNwcAogfQog
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9mZWF0dXJlcy5wcmkKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvZmVhdHVyZXMucHJpCShyZXZpc2lvbiA4NzMwNikKKysrIFNvdXJjZS9XZWJDb3Jl
L2ZlYXR1cmVzLnByaQkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsMTMgQEAgQ09ORklHKFFU
RElSX2J1aWxkKSB7CiAgICAgfQogfQogCitjb250YWlucyhDT05GSUcsIHVzZV9zeXN0ZW1faWN1
KSB7CisgICAgREVGSU5FUyArPSBXVEZfVVNFX0lDVV9VTklDT0RFPTEKKyAgICBMSUJTICs9IC1s
aWN1dWMgLWxpY3VpMThuCit9IGVsc2UgeworICAgIERFRklORVMgKz0gV1RGX1VTRV9RVDRfVU5J
Q09ERT0xCit9CisKIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9TSU5HTEVfVEhSRUFERUQ9MSkg
ewogICAgIERFRklORVMrPUVOQUJMRV9EQVRBQkFTRT0wIEVOQUJMRV9ET01fU1RPUkFHRT0wIEVO
QUJMRV9JQ09OREFUQUJBU0U9MCBFTkFCTEVfV09SS0VSUz0wIEVOQUJMRV9TSEFSRURfV09SS0VS
Uz0wCiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL3F0L1NtYXJ0UmVwbGFjZVF0LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL3F0L1NtYXJ0UmVwbGFjZVF0
LmNwcAkocmV2aXNpb24gODczMDYpCisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL3F0L1NtYXJ0
UmVwbGFjZVF0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsNyArMjgsOSBAQAogICovCiAKICNp
bmNsdWRlICJjb25maWcuaCIKKyNpZiBVU0UoUVQ0X1VOSUNPREUpCiAjaW5jbHVkZSAiU21hcnRS
ZXBsYWNlLmgiCisjaW5jbHVkZSA8UUNoYXI+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAt
NjQsMyArNjYsNCBAQCBib29sIGlzQ2hhcmFjdGVyU21hcnRSZXBsYWNlRXhlbXB0KFVDaGFyCiB9
CiAKIH0KKyNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0Q29k
ZWNJQ1UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4
dENvZGVjSUNVLmNwcAkocmV2aXNpb24gODczMDYpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS90ZXh0L1RleHRDb2RlY0lDVS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1LDYgKzI1LDcgQEAK
ICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCisjaWYgVVNFKElDVV9VTklDT0RFKQogI2luY2x1
ZGUgIlRleHRDb2RlY0lDVS5oIgogCiAjaW5jbHVkZSAiVGhyZWFkR2xvYmFsRGF0YS5oIgpAQCAt
NDcxLDMgKzQ3Miw1IEBAIENTdHJpbmcgVGV4dENvZGVjSUNVOjplbmNvZGUoY29uc3QgVUNoYXIK
IH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorI2VuZGlmCisKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3RleHQvcXQvVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVVF0LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L3F0L1RleHRCcmVha0l0
ZXJhdG9ySW50ZXJuYWxJQ1VRdC5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS90ZXh0L3F0L1RleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VRdC5jcHAJKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgICAgQ29weXJpZ2h0IChDKSAyMDExIE5va2lh
IENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorCisgICAgVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAg
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljCisgICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbjsgZWl0aGVyCisgICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBv
cHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1
dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQg
QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBN
RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg
dGhlIEdOVQorICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRh
aWxzLgorCisgICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5
OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgICAgdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBG
bG9vciwKKyAgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJUZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVLmgiCisKKyNp
bmNsdWRlIDxRQnl0ZUFycmF5PgorI2luY2x1ZGUgPFFMb2NhbGU+CisjaW5jbHVkZSA8cWdsb2Jh
bC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1FfR0xPQkFMX1NUQVRJQ19XSVRIX0lOSVRJ
QUxJWkVSKFFCeXRlQXJyYXksIGNhY2hlZFN5c3RlbUxvY2FsZSwgeyp4ID0gUUxvY2FsZTo6c3lz
dGVtKCkubmFtZSgpLnRvQXNjaWkoKTt9KQorCitjb25zdCBjaGFyKiBjdXJyZW50U2VhcmNoTG9j
YWxlSUQoKQoreworICAgIGNvbnN0IGNoYXIqIHB0ciA9ICBjYWNoZWRTeXN0ZW1Mb2NhbGUoKS0+
ZGF0YSgpOyAKKyAgICByZXR1cm4gcHRyOworfQorCitjb25zdCBjaGFyKiBjdXJyZW50VGV4dEJy
ZWFrTG9jYWxlSUQoKQoreworICAgIGNvbnN0IGNoYXIqIHB0ciA9ICBjYWNoZWRTeXN0ZW1Mb2Nh
bGUoKS0+ZGF0YSgpOyAKKyAgICByZXR1cm4gcHRyOworfQorCit9CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS90ZXh0L3F0L1RleHRCcmVha0l0ZXJhdG9yUXQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvcXQvVGV4dEJyZWFrSXRlcmF0b3JRdC5j
cHAJKHJldmlzaW9uIDg3MzA2KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9xdC9U
ZXh0QnJlYWtJdGVyYXRvclF0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzYsMTIgKzM2LDYgQEAg
dXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0jaWYgVVNFKFFU
X0lDVV9URVhUX0JSRUFLSU5HKQotY29uc3QgY2hhciogY3VycmVudFRleHRCcmVha0xvY2FsZUlE
KCkKLXsKLSAgICByZXR1cm4gUUxvY2FsZTo6c3lzdGVtKCkubmFtZSgpLnRvTGF0aW4xKCk7Ci19
Ci0jZWxzZQogICAgIGNsYXNzIFRleHRCcmVha0l0ZXJhdG9yIDogcHVibGljIFFUZXh0Qm91bmRh
cnlGaW5kZXIgewogICAgIHB1YmxpYzoKICAgICAgICAgVGV4dEJyZWFrSXRlcmF0b3IoUVRleHRC
b3VuZGFyeUZpbmRlcjo6Qm91bmRhcnlUeXBlIHR5cGUsIGNvbnN0IFFTdHJpbmcmIHN0cmluZykK
QEAgLTE1NSw2ICsxNDksNSBAQCBjb25zdCBjaGFyKiBjdXJyZW50VGV4dEJyZWFrTG9jYWxlSUQo
KQogICAgIHsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQotI2VuZGlmCiAKIH0KSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvcXQvVGV4dENvZGVjUXQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvcXQvVGV4dENvZGVjUXQuY3BwCShy
ZXZpc2lvbiA4NzMwNikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvcXQvVGV4dENv
ZGVjUXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw2ICsyNSw3IEBACiAgKi8KIAogI2luY2x1
ZGUgImNvbmZpZy5oIgorI2lmIFVTRShRVDRfVU5JQ09ERSkKICNpbmNsdWRlICJUZXh0Q29kZWNR
dC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0
cmluZy5oPgpAQCAtNDYsMTcgKzQ3LDE0IEBAIHN0YXRpYyBjb25zdCBjaGFyICpnZXRBdG9taWNO
YW1lKGNvbnN0IFEKIHZvaWQgVGV4dENvZGVjUXQ6OnJlZ2lzdGVyRW5jb2RpbmdOYW1lcyhFbmNv
ZGluZ05hbWVSZWdpc3RyYXIgcmVnaXN0cmFyKQogewogICAgIFFMaXN0PGludD4gbWlicyA9IFFU
ZXh0Q29kZWM6OmF2YWlsYWJsZU1pYnMoKTsKLS8vICAgICBxRGVidWcoKSA8PCAiPj4+Pj4+Pj4+
IHJlZ2lzdGVyRW5jb2RpbmdOYW1lcyI7CiAKICAgICBmb3IgKGludCBpID0gMDsgaSA8IG1pYnMu
c2l6ZSgpOyArK2kpIHsKICAgICAgICAgUVRleHRDb2RlYyAqYyA9IFFUZXh0Q29kZWM6OmNvZGVj
Rm9yTWliKG1pYnMuYXQoaSkpOwogICAgICAgICBjb25zdCBjaGFyICpuYW1lID0gZ2V0QXRvbWlj
TmFtZShjLT5uYW1lKCkpOwogICAgICAgICByZWdpc3RyYXIobmFtZSwgbmFtZSk7Ci0vLyAgICAg
ICAgIHFEZWJ1ZygpIDw8ICIgICAgIiA8PCBuYW1lIDw8IG5hbWU7CiAgICAgICAgIFFMaXN0PFFC
eXRlQXJyYXk+IGFsaWFzZXMgPSBjLT5hbGlhc2VzKCk7CiAgICAgICAgIGZvciAoaW50IGkgPSAw
OyBpIDwgYWxpYXNlcy5zaXplKCk7ICsraSkgewogICAgICAgICAgICAgY29uc3QgY2hhciAqYSA9
IGdldEF0b21pY05hbWUoYWxpYXNlcy5hdChpKSk7Ci0vLyAgICAgICAgICAgICBxRGVidWcoKSA8
PCAiICAgICAoYSkgIiA8PCBhIDw8IG5hbWU7CiAgICAgICAgICAgICByZWdpc3RyYXIoYSwgbmFt
ZSk7CiAgICAgICAgIH0KICAgICB9CkBAIC03MCwxMiArNjgsMTAgQEAgc3RhdGljIFBhc3NPd25Q
dHI8VGV4dENvZGVjPiBuZXdUZXh0Q29kZQogdm9pZCBUZXh0Q29kZWNRdDo6cmVnaXN0ZXJDb2Rl
Y3MoVGV4dENvZGVjUmVnaXN0cmFyIHJlZ2lzdHJhcikKIHsKICAgICBRTGlzdDxpbnQ+IG1pYnMg
PSBRVGV4dENvZGVjOjphdmFpbGFibGVNaWJzKCk7Ci0vLyAgICAgcURlYnVnKCkgPDwgIj4+Pj4+
Pj4+PiByZWdpc3RlckNvZGVjcyI7CiAKICAgICBmb3IgKGludCBpID0gMDsgaSA8IG1pYnMuc2l6
ZSgpOyArK2kpIHsKICAgICAgICAgUVRleHRDb2RlYyAqYyA9IFFUZXh0Q29kZWM6OmNvZGVjRm9y
TWliKG1pYnMuYXQoaSkpOwogICAgICAgICBjb25zdCBjaGFyICpuYW1lID0gZ2V0QXRvbWljTmFt
ZShjLT5uYW1lKCkpOwotLy8gICAgICAgICBxRGVidWcoKSA8PCAiICAgICIgPDwgbmFtZTsKICAg
ICAgICAgcmVnaXN0cmFyKG5hbWUsIG5ld1RleHRDb2RlY1F0LCAwKTsKICAgICB9CiB9CkBAIC0x
NjQsMyArMTYwLDQgQEAgQ1N0cmluZyBUZXh0Q29kZWNRdDo6ZW5jb2RlKGNvbnN0IFVDaGFyKgog
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKyNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>94851</attachid>
            <date>2011-05-25 13:58:17 -0700</date>
            <delta_ts>2011-05-26 07:47:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>60786_v5.patch</filename>
            <type>text/plain</type>
            <size>11017</size>
            <attacher name="Siddharth Mathur">s.mathur</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gODczMTcpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAK
KzIwMTEtMDUtMjUgIFNpZGRoYXJ0aCBNYXRodXIgIDxzaWRkaGFydGgubWF0aHVyQG5va2lhLmNv
bT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbUXRd
IEJ1aWxkIGZsYWcgZm9yIGV4cGVyaW1lbnRhbCBJQ1UgbGlicmFyeSBzdXBwb3J0CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MDc4NgorCisgICAgICAg
IEFkZHMgYSBidWlsZC10aW1lIGZsYWcgKENPTkZJRys9dXNlX3N5c3RlbV9pY3UpIHRoYXQgZW5h
YmxlcyBleHBlcmltZW50YWwgCisgICAgICAgIElDVSBwb3dlcmVkIFVuaWNvZGUgc3VwcG9ydC4g
CisKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS5wcmk6IFN1cHBvcnQgZm9yIHVzZV9zeXN0ZW1f
aWN1IENPTkZJRyBmbGFnLgorICAgICAgICAqIHd0Zi91bmljb2RlL3F0NC9Vbmljb2RlUXQ0Lmg6
IEd1YXJkIGFuIGluY2x1ZGUgZmlsZSB3aXRoIFVTRShJQ1VfVU5JQ09ERSkuIAorCiAyMDExLTA1
LTI0ICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgR2VvZmZyZXkgR2FyZW4uCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUucHJpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2Ny
aXB0Q29yZS5wcmkJKHJldmlzaW9uIDg3MzA2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLnByaQkod29ya2luZyBjb3B5KQpAQCAtNTcsMTAgKzU3LDEzIEBAIHdpbjMy
LSo6IERFRklORVMgKz0gX0hBU19UUjE9MAogCiBERUZJTkVTICs9IEJVSUxESU5HX0phdmFTY3Jp
cHRDb3JlIEJVSUxESU5HX1dURgogCi0jIENPTkZJRyArPSB0ZXh0X2JyZWFraW5nX3dpdGhfaWN1
Ci0KLWNvbnRhaW5zIChDT05GSUcsIHRleHRfYnJlYWtpbmdfd2l0aF9pY3UpIHsKLSAgICBERUZJ
TkVTICs9IFdURl9VU0VfUVRfSUNVX1RFWFRfQlJFQUtJTkc9MQorY29udGFpbnMoQ09ORklHLCB1
c2Vfc3lzdGVtX2ljdSkgeworICAgIERFRklORVMgKz0gV1RGX1VTRV9JQ1VfVU5JQ09ERT0xCisg
ICAgREVGSU5FUyAtPSBXVEZfVVNFX1FUNF9VTklDT0RFCisgICAgTElCUyArPSAtbGljdXVjIC1s
aWN1aTE4bgorfSBlbHNlIHsKKyAgICBERUZJTkVTICs9IFdURl9VU0VfUVQ0X1VOSUNPREU9MQor
ICAgIERFRklORVMgLT0gV1RGX1VTRV9JQ1VfVU5JQ09ERQogfQogCiB3aW5jZSogewpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi91bmljb2RlL3F0NC9Vbmljb2RlUXQ0LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi91bmljb2RlL3F0NC9Vbmljb2RlUXQ0
LmgJKHJldmlzaW9uIDg3MzA2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi91bmljb2Rl
L3F0NC9Vbmljb2RlUXQ0LmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDcgKzMxLDcgQEAKICNpbmNs
dWRlIDxjb25maWcuaD4KIAogI2luY2x1ZGUgPHN0ZGludC5oPgotI2lmIFVTRShRVF9JQ1VfVEVY
VF9CUkVBS0lORykKKyNpZiBVU0UoSUNVX1VOSUNPREUpCiAjaW5jbHVkZSA8dW5pY29kZS91YnJr
Lmg+CiAjZW5kaWYKIApAQCAtNjcsNyArNjcsNyBAQCB0eXBlZGVmIHdjaGFyX3QgVUNoYXI7CiB0
eXBlZGVmIHVpbnQxNl90IFVDaGFyOwogI2VuZGlmCiAKLSNpZiAhVVNFKFFUX0lDVV9URVhUX0JS
RUFLSU5HKQorI2lmICFVU0UoSUNVX1VOSUNPREUpCiB0eXBlZGVmIHVpbnQzMl90IFVDaGFyMzI7
CiAjZW5kaWYKIApJbmRleDogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gODczMTcpCisrKyBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwzMCBAQAorMjAxMS0wNS0y
NSAgU2lkZGhhcnRoIE1hdGh1ciAgPHNpZGRoYXJ0aC5tYXRodXJAbm9raWEuY29tPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtRdF0gQnVpbGQgZmxh
ZyBmb3IgZXhwZXJpbWVudGFsIElDVSBsaWJyYXJ5IHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYwNzg2CisKKyAgICAgICAgQWRkcyBhIGJ1
aWxkLXRpbWUgZmxhZyAoQ09ORklHKz11c2Vfc3lzdGVtX2ljdSkgdGhhdCBlbmFibGVzIGV4cGVy
aW1lbnRhbCAKKyAgICAgICAgSUNVIHBvd2VyZWQgVW5pY29kZSBzdXBwb3J0LiAKKworICAgICAg
ICBObyBuZXcgdGVzdHMgYXMgbm8gbmV3IGZlYXR1cmVzIGFkZGVkLgorCisgICAgICAgICogV2Vi
Q29yZS5wcmk6IFJlbW92ZWQgdGV4dF9icmVha2luZ193aXRoX2ljdSBDT05GSUcgZmxhZy4gCisg
ICAgICAgICogV2ViQ29yZS5wcm86IEFkZGVkIFRleHRDb2RlY0lDVS5jcHAgYW5kIHF0L1RleHRC
cmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VRdC5jcHAuCisgICAgICAgICogZWRpdGluZy9xdC9TbWFy
dFJlcGxhY2VRdC5jcHA6CisgICAgICAgICogZmVhdHVyZXMucHJpOiBTdXBwb3J0IGZvciB1c2Vf
c3lzdGVtX2ljdSBDT05GSUcgZmxhZy4KKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L1RleHRDb2Rl
Y0lDVS5jcHA6IEd1YXJkIHdpdGggVVNFKElDVV9VTklDT0RFKS4gCisgICAgICAgICogcGxhdGZv
cm0vdGV4dC9xdC9UZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVUXQuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlFfR0xPQkFMX1NUQVRJQ19XSVRIX0lOSVRJQUxJWkVSKToKKyAgICAg
ICAgKFdlYkNvcmU6OmN1cnJlbnRTZWFyY2hMb2NhbGVJRCk6CisgICAgICAgIChXZWJDb3JlOjpj
dXJyZW50VGV4dEJyZWFrTG9jYWxlSUQpOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvcXQvVGV4
dEJyZWFrSXRlcmF0b3JRdC5jcHA6IE1vdmVkIG91dCBjdXJyZW50VGV4dEJyZWFrTG9jYWxlSUQo
KS4gCisgICAgICAgIChXZWJDb3JlOjppc1RleHRCcmVhayk6CisgICAgICAgICogcGxhdGZvcm0v
dGV4dC9xdC9UZXh0Q29kZWNRdC5jcHA6IEd1YXJkIHdpdGggVVNFKFFUNF9VTklDT0RFKS4gCisg
ICAgICAgIChXZWJDb3JlOjpUZXh0Q29kZWNRdDo6cmVnaXN0ZXJFbmNvZGluZ05hbWVzKToKKyAg
ICAgICAgKFdlYkNvcmU6OlRleHRDb2RlY1F0OjpyZWdpc3RlckNvZGVjcyk6CisKIDIwMTEtMDUt
MjUgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgSmFtZXMgUm9iaW5zb24uCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnByaQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnByaQkocmV2aXNpb24gODczMDYpCisr
KyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnByaQkod29ya2luZyBjb3B5KQpAQCAtMjg4LDEwICsy
ODgsNiBAQCBjb250YWlucyhDT05GSUcsIHRleG1hcCkgewogICAgIENPTkZJRyArPSBub19kZWJ1
Z19pbmZvCiB9CiAKLWNvbnRhaW5zIChDT05GSUcsIHRleHRfYnJlYWtpbmdfd2l0aF9pY3UpIHsK
LSAgICBMSUJTICs9IC1saWN1dWMKLX0KLQogIUNPTkZJRyhRVERJUl9idWlsZCkgewogICAgIHdp
bjMyLSp8d2luY2UqIHsKICAgICAgICAgRExMREVTVERJUiA9ICQkT1VUUFVUX0RJUi9iaW4KSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL1dlYkNvcmUucHJvCShyZXZpc2lvbiA4NzMwNikKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNv
cmUucHJvCSh3b3JraW5nIGNvcHkpCkBAIC0xMDY2LDYgKzEwNjYsNyBAQCBTT1VSQ0VTICs9IFwK
ICAgICBwbGF0Zm9ybS90ZXh0L1RleHRDb2RlY1VzZXJEZWZpbmVkLmNwcCBcCiAgICAgcGxhdGZv
cm0vdGV4dC9UZXh0Q29kZWNVVEYxNi5jcHAgXAogICAgIHBsYXRmb3JtL3RleHQvVGV4dENvZGVj
VVRGOC5jcHAgXAorICAgIHBsYXRmb3JtL3RleHQvVGV4dENvZGVjSUNVLmNwcCBcCiAgICAgcGxh
dGZvcm0vdGV4dC9UZXh0RW5jb2RpbmcuY3BwIFwKICAgICBwbGF0Zm9ybS90ZXh0L1RleHRFbmNv
ZGluZ0RldGVjdG9yTm9uZS5jcHAgXAogICAgIHBsYXRmb3JtL3RleHQvVGV4dEVuY29kaW5nUmVn
aXN0cnkuY3BwIFwKQEAgLTI1NTIsNiArMjU1Myw3IEBAIFNPVVJDRVMgKz0gXAogICAgIHBsYXRm
b3JtL3F0L1RlbXBvcmFyeUxpbmtTdHVic1F0LmNwcCBcCiAgICAgcGxhdGZvcm0vdGV4dC9xdC9U
ZXh0Qm91bmRhcmllc1F0LmNwcCBcCiAgICAgcGxhdGZvcm0vdGV4dC9xdC9UZXh0QnJlYWtJdGVy
YXRvclF0LmNwcCBcCisgICAgcGxhdGZvcm0vdGV4dC9xdC9UZXh0QnJlYWtJdGVyYXRvckludGVy
bmFsSUNVUXQuY3BwIFwKICAgICBwbGF0Zm9ybS90ZXh0L3F0L1RleHRDb2RlY1F0LmNwcCBcCiAg
ICAgcGxhdGZvcm0vcXQvV2hlZWxFdmVudFF0LmNwcCBcCiAgICAgcGxhdGZvcm0vcXQvV2lkZ2V0
UXQuY3BwCkBAIC0yNTgzLDcgKzI1ODUsNyBAQCBtYWMgewogICAgICAgICBwbGF0Zm9ybS90ZXh0
L2NmL1N0cmluZ0ltcGxDRi5jcHAKIH0KIAotY29udGFpbnMgKENPTkZJRywgdGV4dF9icmVha2lu
Z193aXRoX2ljdSkgeworY29udGFpbnMgKENPTkZJRywgdXNlX3N5c3RlbV9pY3UpIHsKICAgICBT
T1VSQ0VTICs9IHBsYXRmb3JtL3RleHQvVGV4dEJyZWFrSXRlcmF0b3JJQ1UuY3BwCiB9CiAKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2ZlYXR1cmVzLnByaQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9mZWF0dXJlcy5wcmkJKHJldmlzaW9uIDg3MzA2KQorKysgU291cmNlL1dlYkNvcmUvZmVh
dHVyZXMucHJpCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCwxNSBAQCBDT05GSUcoUVRESVJf
YnVpbGQpIHsKICAgICB9CiB9CiAKK2NvbnRhaW5zKENPTkZJRywgdXNlX3N5c3RlbV9pY3UpIHsK
KyAgICBERUZJTkVTICs9IFdURl9VU0VfSUNVX1VOSUNPREU9MQorICAgIERFRklORVMgLT0gV1RG
X1VTRV9RVDRfVU5JQ09ERQorICAgIExJQlMgKz0gLWxpY3V1YyAtbGljdWkxOG4KK30gZWxzZSB7
CisgICAgREVGSU5FUyArPSBXVEZfVVNFX1FUNF9VTklDT0RFPTEKKyAgICBERUZJTkVTIC09IFdU
Rl9VU0VfSUNVX1VOSUNPREUKK30KKwogY29udGFpbnMoREVGSU5FUywgRU5BQkxFX1NJTkdMRV9U
SFJFQURFRD0xKSB7CiAgICAgREVGSU5FUys9RU5BQkxFX0RBVEFCQVNFPTAgRU5BQkxFX0RPTV9T
VE9SQUdFPTAgRU5BQkxFX0lDT05EQVRBQkFTRT0wIEVOQUJMRV9XT1JLRVJTPTAgRU5BQkxFX1NI
QVJFRF9XT1JLRVJTPTAKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvcXQvU21hcnRS
ZXBsYWNlUXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvcXQvU21h
cnRSZXBsYWNlUXQuY3BwCShyZXZpc2lvbiA4NzMwNikKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvcXQvU21hcnRSZXBsYWNlUXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw3ICsyOCw5IEBA
CiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgorI2lmIFVTRShRVDRfVU5JQ09ERSkKICNpbmNs
dWRlICJTbWFydFJlcGxhY2UuaCIKKyNpbmNsdWRlIDxRQ2hhcj4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCkBAIC02NCwzICs2Niw0IEBAIGJvb2wgaXNDaGFyYWN0ZXJTbWFydFJlcGxhY2VFeGVt
cHQoVUNoYXIKIH0KIAogfQorI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90
ZXh0L1RleHRDb2RlY0lDVS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vdGV4dC9UZXh0Q29kZWNJQ1UuY3BwCShyZXZpc2lvbiA4NzMwNikKKysrIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3RleHQvVGV4dENvZGVjSUNVLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjUs
NiArMjUsNyBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKKyNpZiBVU0UoSUNVX1VOSUNP
REUpCiAjaW5jbHVkZSAiVGV4dENvZGVjSUNVLmgiCiAKICNpbmNsdWRlICJUaHJlYWRHbG9iYWxE
YXRhLmgiCkBAIC00NzEsMyArNDcyLDUgQEAgQ1N0cmluZyBUZXh0Q29kZWNJQ1U6OmVuY29kZShj
b25zdCBVQ2hhcgogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisjZW5kaWYKKwpJbmRleDog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9xdC9UZXh0QnJlYWtJdGVyYXRvckludGVybmFs
SUNVUXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvcXQv
VGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVVF0LmNwcAkocmV2aXNpb24gMCkKKysrIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvcXQvVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVVF0
LmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAgICBDb3B5cmlnaHQgKEMp
IDIwMTEgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisKKyAg
ICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg
YW5kL29yCisgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9y
IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgICBUaGlzIGxpYnJhcnkg
aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgICBi
dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50
eSBvZgorICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRS4gIFNlZSB0aGUgR05VCisgICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv
ciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICAgYWxvbmcgd2l0aCB0
aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8K
KyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJl
ZXQsIEZpZnRoIEZsb29yLAorICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlRleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJ
Q1UuaCIKKworI2luY2x1ZGUgPFFCeXRlQXJyYXk+CisjaW5jbHVkZSA8UUxvY2FsZT4KKyNpbmNs
dWRlIDxRU2NvcGVkUG9pbnRlcj4KKyNpbmNsdWRlIDxxZ2xvYmFsLmg+CisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworUV9HTE9CQUxfU1RBVElDX1dJVEhfSU5JVElBTElaRVIoUUJ5dGVBcnJheSwg
Y2FjaGVkU3lzdGVtTG9jYWxlLCB7KnggPSBRTG9jYWxlOjpzeXN0ZW0oKS5uYW1lKCkudG9Bc2Np
aSgpO30pCisKK2NvbnN0IGNoYXIqIGN1cnJlbnRTZWFyY2hMb2NhbGVJRCgpCit7CisgICAgY29u
c3QgY2hhciogcHRyID0gIGNhY2hlZFN5c3RlbUxvY2FsZSgpLT5kYXRhKCk7IAorICAgIHJldHVy
biBwdHI7Cit9CisKK2NvbnN0IGNoYXIqIGN1cnJlbnRUZXh0QnJlYWtMb2NhbGVJRCgpCit7Cisg
ICAgY29uc3QgY2hhciogcHRyID0gIGNhY2hlZFN5c3RlbUxvY2FsZSgpLT5kYXRhKCk7IAorICAg
IHJldHVybiBwdHI7Cit9CisKK30KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQv
cXQvVGV4dEJyZWFrSXRlcmF0b3JRdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vdGV4dC9xdC9UZXh0QnJlYWtJdGVyYXRvclF0LmNwcAkocmV2aXNpb24gODczMDYp
CisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L3F0L1RleHRCcmVha0l0ZXJhdG9yUXQu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNiwxMiArMzYsNiBAQCB1c2luZyBuYW1lc3BhY2Ugc3Rk
OwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLSNpZiBVU0UoUVRfSUNVX1RFWFRfQlJFQUtJTkcp
Ci1jb25zdCBjaGFyKiBjdXJyZW50VGV4dEJyZWFrTG9jYWxlSUQoKQotewotICAgIHJldHVybiBR
TG9jYWxlOjpzeXN0ZW0oKS5uYW1lKCkudG9MYXRpbjEoKTsKLX0KLSNlbHNlCiAgICAgY2xhc3Mg
VGV4dEJyZWFrSXRlcmF0b3IgOiBwdWJsaWMgUVRleHRCb3VuZGFyeUZpbmRlciB7CiAgICAgcHVi
bGljOgogICAgICAgICBUZXh0QnJlYWtJdGVyYXRvcihRVGV4dEJvdW5kYXJ5RmluZGVyOjpCb3Vu
ZGFyeVR5cGUgdHlwZSwgY29uc3QgUVN0cmluZyYgc3RyaW5nKQpAQCAtMTU1LDYgKzE0OSw1IEBA
IGNvbnN0IGNoYXIqIGN1cnJlbnRUZXh0QnJlYWtMb2NhbGVJRCgpCiAgICAgewogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICB9Ci0jZW5kaWYKIAogfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vdGV4dC9xdC9UZXh0Q29kZWNRdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vdGV4dC9xdC9UZXh0Q29kZWNRdC5jcHAJKHJldmlzaW9uIDg3MzA2KQorKysg
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9xdC9UZXh0Q29kZWNRdC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTI1LDYgKzI1LDcgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCisjaWYg
VVNFKFFUNF9VTklDT0RFKQogI2luY2x1ZGUgIlRleHRDb2RlY1F0LmgiCiAjaW5jbHVkZSAiUGxh
dGZvcm1TdHJpbmcuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CkBAIC00NiwxNyAr
NDcsMTQgQEAgc3RhdGljIGNvbnN0IGNoYXIgKmdldEF0b21pY05hbWUoY29uc3QgUQogdm9pZCBU
ZXh0Q29kZWNRdDo6cmVnaXN0ZXJFbmNvZGluZ05hbWVzKEVuY29kaW5nTmFtZVJlZ2lzdHJhciBy
ZWdpc3RyYXIpCiB7CiAgICAgUUxpc3Q8aW50PiBtaWJzID0gUVRleHRDb2RlYzo6YXZhaWxhYmxl
TWlicygpOwotLy8gICAgIHFEZWJ1ZygpIDw8ICI+Pj4+Pj4+Pj4gcmVnaXN0ZXJFbmNvZGluZ05h
bWVzIjsKIAogICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbWlicy5zaXplKCk7ICsraSkgewogICAg
ICAgICBRVGV4dENvZGVjICpjID0gUVRleHRDb2RlYzo6Y29kZWNGb3JNaWIobWlicy5hdChpKSk7
CiAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUgPSBnZXRBdG9taWNOYW1lKGMtPm5hbWUoKSk7CiAg
ICAgICAgIHJlZ2lzdHJhcihuYW1lLCBuYW1lKTsKLS8vICAgICAgICAgcURlYnVnKCkgPDwgIiAg
ICAiIDw8IG5hbWUgPDwgbmFtZTsKICAgICAgICAgUUxpc3Q8UUJ5dGVBcnJheT4gYWxpYXNlcyA9
IGMtPmFsaWFzZXMoKTsKICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBhbGlhc2VzLnNpemUo
KTsgKytpKSB7CiAgICAgICAgICAgICBjb25zdCBjaGFyICphID0gZ2V0QXRvbWljTmFtZShhbGlh
c2VzLmF0KGkpKTsKLS8vICAgICAgICAgICAgIHFEZWJ1ZygpIDw8ICIgICAgIChhKSAiIDw8IGEg
PDwgbmFtZTsKICAgICAgICAgICAgIHJlZ2lzdHJhcihhLCBuYW1lKTsKICAgICAgICAgfQogICAg
IH0KQEAgLTcwLDEyICs2OCwxMCBAQCBzdGF0aWMgUGFzc093blB0cjxUZXh0Q29kZWM+IG5ld1Rl
eHRDb2RlCiB2b2lkIFRleHRDb2RlY1F0OjpyZWdpc3RlckNvZGVjcyhUZXh0Q29kZWNSZWdpc3Ry
YXIgcmVnaXN0cmFyKQogewogICAgIFFMaXN0PGludD4gbWlicyA9IFFUZXh0Q29kZWM6OmF2YWls
YWJsZU1pYnMoKTsKLS8vICAgICBxRGVidWcoKSA8PCAiPj4+Pj4+Pj4+IHJlZ2lzdGVyQ29kZWNz
IjsKIAogICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbWlicy5zaXplKCk7ICsraSkgewogICAgICAg
ICBRVGV4dENvZGVjICpjID0gUVRleHRDb2RlYzo6Y29kZWNGb3JNaWIobWlicy5hdChpKSk7CiAg
ICAgICAgIGNvbnN0IGNoYXIgKm5hbWUgPSBnZXRBdG9taWNOYW1lKGMtPm5hbWUoKSk7Ci0vLyAg
ICAgICAgIHFEZWJ1ZygpIDw8ICIgICAgIiA8PCBuYW1lOwogICAgICAgICByZWdpc3RyYXIobmFt
ZSwgbmV3VGV4dENvZGVjUXQsIDApOwogICAgIH0KIH0KQEAgLTE2NCwzICsxNjAsNCBAQCBDU3Ry
aW5nIFRleHRDb2RlY1F0OjplbmNvZGUoY29uc3QgVUNoYXIqCiAKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQorI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>94971</attachid>
            <date>2011-05-26 07:47:39 -0700</date>
            <delta_ts>2011-05-26 09:10:02 -0700</delta_ts>
            <desc>ready for review</desc>
            <filename>60786_v6.patch</filename>
            <type>text/plain</type>
            <size>10958</size>
            <attacher name="Siddharth Mathur">s.mathur</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gODczMTcpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAK
KzIwMTEtMDUtMjUgIFNpZGRoYXJ0aCBNYXRodXIgIDxzaWRkaGFydGgubWF0aHVyQG5va2lhLmNv
bT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbUXRd
IEJ1aWxkIGZsYWcgZm9yIGV4cGVyaW1lbnRhbCBJQ1UgbGlicmFyeSBzdXBwb3J0CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MDc4NgorCisgICAgICAg
IEFkZHMgYSBidWlsZC10aW1lIGZsYWcgKENPTkZJRys9dXNlX3N5c3RlbV9pY3UpIHRoYXQgZW5h
YmxlcyBleHBlcmltZW50YWwgCisgICAgICAgIElDVSBwb3dlcmVkIFVuaWNvZGUgc3VwcG9ydC4g
CisKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS5wcmk6IFN1cHBvcnQgZm9yIHVzZV9zeXN0ZW1f
aWN1IENPTkZJRyBmbGFnLgorICAgICAgICAqIHd0Zi91bmljb2RlL3F0NC9Vbmljb2RlUXQ0Lmg6
IEd1YXJkIGFuIGluY2x1ZGUgZmlsZSB3aXRoIFVTRShJQ1VfVU5JQ09ERSkuIAorCiAyMDExLTA1
LTI0ICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgR2VvZmZyZXkgR2FyZW4uCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUucHJpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2Ny
aXB0Q29yZS5wcmkJKHJldmlzaW9uIDg3MzA2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLnByaQkod29ya2luZyBjb3B5KQpAQCAtNTcsMTAgKzU3LDEzIEBAIHdpbjMy
LSo6IERFRklORVMgKz0gX0hBU19UUjE9MAogCiBERUZJTkVTICs9IEJVSUxESU5HX0phdmFTY3Jp
cHRDb3JlIEJVSUxESU5HX1dURgogCi0jIENPTkZJRyArPSB0ZXh0X2JyZWFraW5nX3dpdGhfaWN1
Ci0KLWNvbnRhaW5zIChDT05GSUcsIHRleHRfYnJlYWtpbmdfd2l0aF9pY3UpIHsKLSAgICBERUZJ
TkVTICs9IFdURl9VU0VfUVRfSUNVX1RFWFRfQlJFQUtJTkc9MQorY29udGFpbnMoQ09ORklHLCB1
c2Vfc3lzdGVtX2ljdSkgeworICAgIERFRklORVMgKz0gV1RGX1VTRV9JQ1VfVU5JQ09ERT0xCisg
ICAgREVGSU5FUyAtPSBXVEZfVVNFX1FUNF9VTklDT0RFCisgICAgTElCUyArPSAtbGljdXVjIC1s
aWN1aTE4bgorfSBlbHNlIHsKKyAgICBERUZJTkVTICs9IFdURl9VU0VfUVQ0X1VOSUNPREU9MQor
ICAgIERFRklORVMgLT0gV1RGX1VTRV9JQ1VfVU5JQ09ERQogfQogCiB3aW5jZSogewpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi91bmljb2RlL3F0NC9Vbmljb2RlUXQ0LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi91bmljb2RlL3F0NC9Vbmljb2RlUXQ0
LmgJKHJldmlzaW9uIDg3MzA2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi91bmljb2Rl
L3F0NC9Vbmljb2RlUXQ0LmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDcgKzMxLDcgQEAKICNpbmNs
dWRlIDxjb25maWcuaD4KIAogI2luY2x1ZGUgPHN0ZGludC5oPgotI2lmIFVTRShRVF9JQ1VfVEVY
VF9CUkVBS0lORykKKyNpZiBVU0UoSUNVX1VOSUNPREUpCiAjaW5jbHVkZSA8dW5pY29kZS91YnJr
Lmg+CiAjZW5kaWYKIApAQCAtNjcsNyArNjcsNyBAQCB0eXBlZGVmIHdjaGFyX3QgVUNoYXI7CiB0
eXBlZGVmIHVpbnQxNl90IFVDaGFyOwogI2VuZGlmCiAKLSNpZiAhVVNFKFFUX0lDVV9URVhUX0JS
RUFLSU5HKQorI2lmICFVU0UoSUNVX1VOSUNPREUpCiB0eXBlZGVmIHVpbnQzMl90IFVDaGFyMzI7
CiAjZW5kaWYKIApJbmRleDogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gODczMTcpCisrKyBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwzMCBAQAorMjAxMS0wNS0y
NSAgU2lkZGhhcnRoIE1hdGh1ciAgPHNpZGRoYXJ0aC5tYXRodXJAbm9raWEuY29tPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtRdF0gQnVpbGQgZmxh
ZyBmb3IgZXhwZXJpbWVudGFsIElDVSBsaWJyYXJ5IHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYwNzg2CisKKyAgICAgICAgQWRkcyBhIGJ1
aWxkLXRpbWUgZmxhZyAoQ09ORklHKz11c2Vfc3lzdGVtX2ljdSkgdGhhdCBlbmFibGVzIGV4cGVy
aW1lbnRhbCAKKyAgICAgICAgSUNVIHBvd2VyZWQgVW5pY29kZSBzdXBwb3J0LiAKKworICAgICAg
ICBObyBuZXcgdGVzdHMgYXMgbm8gbmV3IGZlYXR1cmVzIGFkZGVkLgorCisgICAgICAgICogV2Vi
Q29yZS5wcmk6IFJlbW92ZWQgdGV4dF9icmVha2luZ193aXRoX2ljdSBDT05GSUcgZmxhZy4gCisg
ICAgICAgICogV2ViQ29yZS5wcm86IEFkZGVkIFRleHRDb2RlY0lDVS5jcHAgYW5kIHF0L1RleHRC
cmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VRdC5jcHAuCisgICAgICAgICogZWRpdGluZy9xdC9TbWFy
dFJlcGxhY2VRdC5jcHA6CisgICAgICAgICogZmVhdHVyZXMucHJpOiBTdXBwb3J0IGZvciB1c2Vf
c3lzdGVtX2ljdSBDT05GSUcgZmxhZy4KKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L1RleHRDb2Rl
Y0lDVS5jcHA6IEd1YXJkIHdpdGggVVNFKElDVV9VTklDT0RFKS4gCisgICAgICAgICogcGxhdGZv
cm0vdGV4dC9xdC9UZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVUXQuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlFfR0xPQkFMX1NUQVRJQ19XSVRIX0lOSVRJQUxJWkVSKToKKyAgICAg
ICAgKFdlYkNvcmU6OmN1cnJlbnRTZWFyY2hMb2NhbGVJRCk6CisgICAgICAgIChXZWJDb3JlOjpj
dXJyZW50VGV4dEJyZWFrTG9jYWxlSUQpOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvcXQvVGV4
dEJyZWFrSXRlcmF0b3JRdC5jcHA6IE1vdmVkIG91dCBjdXJyZW50VGV4dEJyZWFrTG9jYWxlSUQo
KS4gCisgICAgICAgIChXZWJDb3JlOjppc1RleHRCcmVhayk6CisgICAgICAgICogcGxhdGZvcm0v
dGV4dC9xdC9UZXh0Q29kZWNRdC5jcHA6IEd1YXJkIHdpdGggVVNFKFFUNF9VTklDT0RFKS4gCisg
ICAgICAgIChXZWJDb3JlOjpUZXh0Q29kZWNRdDo6cmVnaXN0ZXJFbmNvZGluZ05hbWVzKToKKyAg
ICAgICAgKFdlYkNvcmU6OlRleHRDb2RlY1F0OjpyZWdpc3RlckNvZGVjcyk6CisKIDIwMTEtMDUt
MjUgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgSmFtZXMgUm9iaW5zb24uCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnByaQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnByaQkocmV2aXNpb24gODczMDYpCisr
KyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnByaQkod29ya2luZyBjb3B5KQpAQCAtMjg4LDEwICsy
ODgsNiBAQCBjb250YWlucyhDT05GSUcsIHRleG1hcCkgewogICAgIENPTkZJRyArPSBub19kZWJ1
Z19pbmZvCiB9CiAKLWNvbnRhaW5zIChDT05GSUcsIHRleHRfYnJlYWtpbmdfd2l0aF9pY3UpIHsK
LSAgICBMSUJTICs9IC1saWN1dWMKLX0KLQogIUNPTkZJRyhRVERJUl9idWlsZCkgewogICAgIHdp
bjMyLSp8d2luY2UqIHsKICAgICAgICAgRExMREVTVERJUiA9ICQkT1VUUFVUX0RJUi9iaW4KSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL1dlYkNvcmUucHJvCShyZXZpc2lvbiA4NzMwNikKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNv
cmUucHJvCSh3b3JraW5nIGNvcHkpCkBAIC0xMDY2LDYgKzEwNjYsNyBAQCBTT1VSQ0VTICs9IFwK
ICAgICBwbGF0Zm9ybS90ZXh0L1RleHRDb2RlY1VzZXJEZWZpbmVkLmNwcCBcCiAgICAgcGxhdGZv
cm0vdGV4dC9UZXh0Q29kZWNVVEYxNi5jcHAgXAogICAgIHBsYXRmb3JtL3RleHQvVGV4dENvZGVj
VVRGOC5jcHAgXAorICAgIHBsYXRmb3JtL3RleHQvVGV4dENvZGVjSUNVLmNwcCBcCiAgICAgcGxh
dGZvcm0vdGV4dC9UZXh0RW5jb2RpbmcuY3BwIFwKICAgICBwbGF0Zm9ybS90ZXh0L1RleHRFbmNv
ZGluZ0RldGVjdG9yTm9uZS5jcHAgXAogICAgIHBsYXRmb3JtL3RleHQvVGV4dEVuY29kaW5nUmVn
aXN0cnkuY3BwIFwKQEAgLTI1NTIsNiArMjU1Myw3IEBAIFNPVVJDRVMgKz0gXAogICAgIHBsYXRm
b3JtL3F0L1RlbXBvcmFyeUxpbmtTdHVic1F0LmNwcCBcCiAgICAgcGxhdGZvcm0vdGV4dC9xdC9U
ZXh0Qm91bmRhcmllc1F0LmNwcCBcCiAgICAgcGxhdGZvcm0vdGV4dC9xdC9UZXh0QnJlYWtJdGVy
YXRvclF0LmNwcCBcCisgICAgcGxhdGZvcm0vdGV4dC9xdC9UZXh0QnJlYWtJdGVyYXRvckludGVy
bmFsSUNVUXQuY3BwIFwKICAgICBwbGF0Zm9ybS90ZXh0L3F0L1RleHRDb2RlY1F0LmNwcCBcCiAg
ICAgcGxhdGZvcm0vcXQvV2hlZWxFdmVudFF0LmNwcCBcCiAgICAgcGxhdGZvcm0vcXQvV2lkZ2V0
UXQuY3BwCkBAIC0yNTgzLDcgKzI1ODUsNyBAQCBtYWMgewogICAgICAgICBwbGF0Zm9ybS90ZXh0
L2NmL1N0cmluZ0ltcGxDRi5jcHAKIH0KIAotY29udGFpbnMgKENPTkZJRywgdGV4dF9icmVha2lu
Z193aXRoX2ljdSkgeworY29udGFpbnMgKENPTkZJRywgdXNlX3N5c3RlbV9pY3UpIHsKICAgICBT
T1VSQ0VTICs9IHBsYXRmb3JtL3RleHQvVGV4dEJyZWFrSXRlcmF0b3JJQ1UuY3BwCiB9CiAKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2ZlYXR1cmVzLnByaQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9mZWF0dXJlcy5wcmkJKHJldmlzaW9uIDg3MzA2KQorKysgU291cmNlL1dlYkNvcmUvZmVh
dHVyZXMucHJpCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCwxNSBAQCBDT05GSUcoUVRESVJf
YnVpbGQpIHsKICAgICB9CiB9CiAKK2NvbnRhaW5zKENPTkZJRywgdXNlX3N5c3RlbV9pY3UpIHsK
KyAgICBERUZJTkVTICs9IFdURl9VU0VfSUNVX1VOSUNPREU9MQorICAgIERFRklORVMgLT0gV1RG
X1VTRV9RVDRfVU5JQ09ERQorICAgIExJQlMgKz0gLWxpY3V1YyAtbGljdWkxOG4KK30gZWxzZSB7
CisgICAgREVGSU5FUyArPSBXVEZfVVNFX1FUNF9VTklDT0RFPTEKKyAgICBERUZJTkVTIC09IFdU
Rl9VU0VfSUNVX1VOSUNPREUKK30KKwogY29udGFpbnMoREVGSU5FUywgRU5BQkxFX1NJTkdMRV9U
SFJFQURFRD0xKSB7CiAgICAgREVGSU5FUys9RU5BQkxFX0RBVEFCQVNFPTAgRU5BQkxFX0RPTV9T
VE9SQUdFPTAgRU5BQkxFX0lDT05EQVRBQkFTRT0wIEVOQUJMRV9XT1JLRVJTPTAgRU5BQkxFX1NI
QVJFRF9XT1JLRVJTPTAKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvcXQvU21hcnRS
ZXBsYWNlUXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvcXQvU21h
cnRSZXBsYWNlUXQuY3BwCShyZXZpc2lvbiA4NzMwNikKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvcXQvU21hcnRSZXBsYWNlUXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw3ICsyOCw5IEBA
CiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgorI2lmIFVTRShRVDRfVU5JQ09ERSkKICNpbmNs
dWRlICJTbWFydFJlcGxhY2UuaCIKKyNpbmNsdWRlIDxRQ2hhcj4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCkBAIC02NCwzICs2Niw0IEBAIGJvb2wgaXNDaGFyYWN0ZXJTbWFydFJlcGxhY2VFeGVt
cHQoVUNoYXIKIH0KIAogfQorI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90
ZXh0L1RleHRDb2RlY0lDVS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vdGV4dC9UZXh0Q29kZWNJQ1UuY3BwCShyZXZpc2lvbiA4NzMwNikKKysrIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3RleHQvVGV4dENvZGVjSUNVLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjUs
NiArMjUsNyBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKKyNpZiBVU0UoSUNVX1VOSUNP
REUpCiAjaW5jbHVkZSAiVGV4dENvZGVjSUNVLmgiCiAKICNpbmNsdWRlICJUaHJlYWRHbG9iYWxE
YXRhLmgiCkBAIC00NzEsMyArNDcyLDUgQEAgQ1N0cmluZyBUZXh0Q29kZWNJQ1U6OmVuY29kZShj
b25zdCBVQ2hhcgogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisjZW5kaWYKKwpJbmRleDog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9xdC9UZXh0QnJlYWtJdGVyYXRvckludGVybmFs
SUNVUXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvcXQv
VGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVVF0LmNwcAkocmV2aXNpb24gMCkKKysrIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvcXQvVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVVF0
LmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAgICBDb3B5cmlnaHQgKEMp
IDIwMTEgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisKKyAg
ICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg
YW5kL29yCisgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9y
IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgICBUaGlzIGxpYnJhcnkg
aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgICBi
dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50
eSBvZgorICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRS4gIFNlZSB0aGUgR05VCisgICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv
ciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICAgYWxvbmcgd2l0aCB0
aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8K
KyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJl
ZXQsIEZpZnRoIEZsb29yLAorICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlRleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJ
Q1UuaCIKKworI2luY2x1ZGUgPFFCeXRlQXJyYXk+CisjaW5jbHVkZSA8UUxvY2FsZT4KKyNpbmNs
dWRlIDxRU2NvcGVkUG9pbnRlcj4KKyNpbmNsdWRlIDxxZ2xvYmFsLmg+CisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworUV9HTE9CQUxfU1RBVElDX1dJVEhfSU5JVElBTElaRVIoUUJ5dGVBcnJheSwg
Y2FjaGVkU3lzdGVtTG9jYWxlLCB7KnggPSBRTG9jYWxlOjpzeXN0ZW0oKS5uYW1lKCkudG9Bc2Np
aSgpO30pCisKK2NvbnN0IGNoYXIqIGN1cnJlbnRTZWFyY2hMb2NhbGVJRCgpCit7CisgICAgcmV0
dXJuIGNhY2hlZFN5c3RlbUxvY2FsZSgpLT5kYXRhKCk7IAorfQorCitjb25zdCBjaGFyKiBjdXJy
ZW50VGV4dEJyZWFrTG9jYWxlSUQoKQoreworICAgIHJldHVybiBjYWNoZWRTeXN0ZW1Mb2NhbGUo
KS0+ZGF0YSgpOworfQorCit9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L3F0
L1RleHRCcmVha0l0ZXJhdG9yUXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3RleHQvcXQvVGV4dEJyZWFrSXRlcmF0b3JRdC5jcHAJKHJldmlzaW9uIDg3MzA2KQor
KysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9xdC9UZXh0QnJlYWtJdGVyYXRvclF0LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzYsMTIgKzM2LDYgQEAgdXNpbmcgbmFtZXNwYWNlIHN0ZDsK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0jaWYgVVNFKFFUX0lDVV9URVhUX0JSRUFLSU5HKQot
Y29uc3QgY2hhciogY3VycmVudFRleHRCcmVha0xvY2FsZUlEKCkKLXsKLSAgICByZXR1cm4gUUxv
Y2FsZTo6c3lzdGVtKCkubmFtZSgpLnRvTGF0aW4xKCk7Ci19Ci0jZWxzZQogICAgIGNsYXNzIFRl
eHRCcmVha0l0ZXJhdG9yIDogcHVibGljIFFUZXh0Qm91bmRhcnlGaW5kZXIgewogICAgIHB1Ymxp
YzoKICAgICAgICAgVGV4dEJyZWFrSXRlcmF0b3IoUVRleHRCb3VuZGFyeUZpbmRlcjo6Qm91bmRh
cnlUeXBlIHR5cGUsIGNvbnN0IFFTdHJpbmcmIHN0cmluZykKQEAgLTE1NSw2ICsxNDksNSBAQCBj
b25zdCBjaGFyKiBjdXJyZW50VGV4dEJyZWFrTG9jYWxlSUQoKQogICAgIHsKICAgICAgICAgcmV0
dXJuIHRydWU7CiAgICAgfQotI2VuZGlmCiAKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3RleHQvcXQvVGV4dENvZGVjUXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3RleHQvcXQvVGV4dENvZGVjUXQuY3BwCShyZXZpc2lvbiA4NzMwNikKKysrIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvcXQvVGV4dENvZGVjUXQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0yNSw2ICsyNSw3IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgorI2lmIFVT
RShRVDRfVU5JQ09ERSkKICNpbmNsdWRlICJUZXh0Q29kZWNRdC5oIgogI2luY2x1ZGUgIlBsYXRm
b3JtU3RyaW5nLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgpAQCAtNDYsMTcgKzQ3
LDE0IEBAIHN0YXRpYyBjb25zdCBjaGFyICpnZXRBdG9taWNOYW1lKGNvbnN0IFEKIHZvaWQgVGV4
dENvZGVjUXQ6OnJlZ2lzdGVyRW5jb2RpbmdOYW1lcyhFbmNvZGluZ05hbWVSZWdpc3RyYXIgcmVn
aXN0cmFyKQogewogICAgIFFMaXN0PGludD4gbWlicyA9IFFUZXh0Q29kZWM6OmF2YWlsYWJsZU1p
YnMoKTsKLS8vICAgICBxRGVidWcoKSA8PCAiPj4+Pj4+Pj4+IHJlZ2lzdGVyRW5jb2RpbmdOYW1l
cyI7CiAKICAgICBmb3IgKGludCBpID0gMDsgaSA8IG1pYnMuc2l6ZSgpOyArK2kpIHsKICAgICAg
ICAgUVRleHRDb2RlYyAqYyA9IFFUZXh0Q29kZWM6OmNvZGVjRm9yTWliKG1pYnMuYXQoaSkpOwog
ICAgICAgICBjb25zdCBjaGFyICpuYW1lID0gZ2V0QXRvbWljTmFtZShjLT5uYW1lKCkpOwogICAg
ICAgICByZWdpc3RyYXIobmFtZSwgbmFtZSk7Ci0vLyAgICAgICAgIHFEZWJ1ZygpIDw8ICIgICAg
IiA8PCBuYW1lIDw8IG5hbWU7CiAgICAgICAgIFFMaXN0PFFCeXRlQXJyYXk+IGFsaWFzZXMgPSBj
LT5hbGlhc2VzKCk7CiAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgYWxpYXNlcy5zaXplKCk7
ICsraSkgewogICAgICAgICAgICAgY29uc3QgY2hhciAqYSA9IGdldEF0b21pY05hbWUoYWxpYXNl
cy5hdChpKSk7Ci0vLyAgICAgICAgICAgICBxRGVidWcoKSA8PCAiICAgICAoYSkgIiA8PCBhIDw8
IG5hbWU7CiAgICAgICAgICAgICByZWdpc3RyYXIoYSwgbmFtZSk7CiAgICAgICAgIH0KICAgICB9
CkBAIC03MCwxMiArNjgsMTAgQEAgc3RhdGljIFBhc3NPd25QdHI8VGV4dENvZGVjPiBuZXdUZXh0
Q29kZQogdm9pZCBUZXh0Q29kZWNRdDo6cmVnaXN0ZXJDb2RlY3MoVGV4dENvZGVjUmVnaXN0cmFy
IHJlZ2lzdHJhcikKIHsKICAgICBRTGlzdDxpbnQ+IG1pYnMgPSBRVGV4dENvZGVjOjphdmFpbGFi
bGVNaWJzKCk7Ci0vLyAgICAgcURlYnVnKCkgPDwgIj4+Pj4+Pj4+PiByZWdpc3RlckNvZGVjcyI7
CiAKICAgICBmb3IgKGludCBpID0gMDsgaSA8IG1pYnMuc2l6ZSgpOyArK2kpIHsKICAgICAgICAg
UVRleHRDb2RlYyAqYyA9IFFUZXh0Q29kZWM6OmNvZGVjRm9yTWliKG1pYnMuYXQoaSkpOwogICAg
ICAgICBjb25zdCBjaGFyICpuYW1lID0gZ2V0QXRvbWljTmFtZShjLT5uYW1lKCkpOwotLy8gICAg
ICAgICBxRGVidWcoKSA8PCAiICAgICIgPDwgbmFtZTsKICAgICAgICAgcmVnaXN0cmFyKG5hbWUs
IG5ld1RleHRDb2RlY1F0LCAwKTsKICAgICB9CiB9CkBAIC0xNjQsMyArMTYwLDQgQEAgQ1N0cmlu
ZyBUZXh0Q29kZWNRdDo6ZW5jb2RlKGNvbnN0IFVDaGFyKgogCiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKyNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>94985</attachid>
            <date>2011-05-26 09:10:02 -0700</date>
            <delta_ts>2011-05-26 09:42:18 -0700</delta_ts>
            <desc>Rebaselined patch</desc>
            <filename>60786_v7.patch</filename>
            <type>text/plain</type>
            <size>10961</size>
            <attacher name="Siddharth Mathur">s.mathur</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gODczODkpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAK
KzIwMTEtMDUtMjYgIFNpZGRoYXJ0aCBNYXRodXIgIDxzaWRkaGFydGgubWF0aHVyQG5va2lhLmNv
bT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbUXRd
IEJ1aWxkIGZsYWcgZm9yIGV4cGVyaW1lbnRhbCBJQ1UgbGlicmFyeSBzdXBwb3J0CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MDc4NgorCisgICAgICAg
IEFkZHMgYSBidWlsZC10aW1lIGZsYWcgKENPTkZJRys9dXNlX3N5c3RlbV9pY3UpIHRoYXQgZW5h
YmxlcyBleHBlcmltZW50YWwgCisgICAgICAgIElDVSBwb3dlcmVkIFVuaWNvZGUgc3VwcG9ydC4g
CisKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS5wcmk6IFN1cHBvcnQgZm9yIHVzZV9zeXN0ZW1f
aWN1IENPTkZJRyBmbGFnLgorICAgICAgICAqIHd0Zi91bmljb2RlL3F0NC9Vbmljb2RlUXQ0Lmg6
IEd1YXJkIGFuIGluY2x1ZGUgZmlsZSB3aXRoIFVTRShJQ1VfVU5JQ09ERSkuIAorCiAyMDExLTA1
LTI2ICBBZGFtIFJvYmVuICA8YXJvYmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBXaW5kb3dzIGJ1
aWxkIGZpeCBhZnRlciByODczNDYKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2Ny
aXB0Q29yZS5wcmkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLnByaQkocmV2aXNpb24gODczODkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUucHJpCSh3b3JraW5nIGNvcHkpCkBAIC01NywxMCArNTcsMTMgQEAgd2luMzIt
KjogREVGSU5FUyArPSBfSEFTX1RSMT0wCiAKIERFRklORVMgKz0gQlVJTERJTkdfSmF2YVNjcmlw
dENvcmUgQlVJTERJTkdfV1RGCiAKLSMgQ09ORklHICs9IHRleHRfYnJlYWtpbmdfd2l0aF9pY3UK
LQotY29udGFpbnMgKENPTkZJRywgdGV4dF9icmVha2luZ193aXRoX2ljdSkgewotICAgIERFRklO
RVMgKz0gV1RGX1VTRV9RVF9JQ1VfVEVYVF9CUkVBS0lORz0xCitjb250YWlucyhDT05GSUcsIHVz
ZV9zeXN0ZW1faWN1KSB7CisgICAgREVGSU5FUyArPSBXVEZfVVNFX0lDVV9VTklDT0RFPTEKKyAg
ICBERUZJTkVTIC09IFdURl9VU0VfUVQ0X1VOSUNPREUKKyAgICBMSUJTICs9IC1saWN1dWMgLWxp
Y3VpMThuCit9IGVsc2UgeworICAgIERFRklORVMgKz0gV1RGX1VTRV9RVDRfVU5JQ09ERT0xCisg
ICAgREVGSU5FUyAtPSBXVEZfVVNFX0lDVV9VTklDT0RFCiB9CiAKIHdpbmNlKiB7CkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL3VuaWNvZGUvcXQ0L1VuaWNvZGVRdDQuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL3VuaWNvZGUvcXQ0L1VuaWNvZGVRdDQu
aAkocmV2aXNpb24gODczODkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL3VuaWNvZGUv
cXQ0L1VuaWNvZGVRdDQuaAkod29ya2luZyBjb3B5KQpAQCAtMzEsNyArMzEsNyBAQAogI2luY2x1
ZGUgPGNvbmZpZy5oPgogCiAjaW5jbHVkZSA8c3RkaW50Lmg+Ci0jaWYgVVNFKFFUX0lDVV9URVhU
X0JSRUFLSU5HKQorI2lmIFVTRShJQ1VfVU5JQ09ERSkKICNpbmNsdWRlIDx1bmljb2RlL3Vicmsu
aD4KICNlbmRpZgogCkBAIC02Nyw3ICs2Nyw3IEBAIHR5cGVkZWYgd2NoYXJfdCBVQ2hhcjsKIHR5
cGVkZWYgdWludDE2X3QgVUNoYXI7CiAjZW5kaWYKIAotI2lmICFVU0UoUVRfSUNVX1RFWFRfQlJF
QUtJTkcpCisjaWYgIVVTRShJQ1VfVU5JQ09ERSkKIHR5cGVkZWYgdWludDMyX3QgVUNoYXIzMjsK
ICNlbmRpZgogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiA4NzM4OSkKKysrIFNvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMwIEBACisyMDExLTA1LTI2
ICBTaWRkaGFydGggTWF0aHVyICA8c2lkZGhhcnRoLm1hdGh1ckBub2tpYS5jb20+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW1F0XSBCdWlsZCBmbGFn
IGZvciBleHBlcmltZW50YWwgSUNVIGxpYnJhcnkgc3VwcG9ydAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjA3ODYKKworICAgICAgICBBZGRzIGEgYnVp
bGQtdGltZSBmbGFnIChDT05GSUcrPXVzZV9zeXN0ZW1faWN1KSB0aGF0IGVuYWJsZXMgZXhwZXJp
bWVudGFsIAorICAgICAgICBJQ1UgcG93ZXJlZCBVbmljb2RlIHN1cHBvcnQuIAorCisgICAgICAg
IE5vIG5ldyB0ZXN0cyBhcyBubyBuZXcgZmVhdHVyZXMgYWRkZWQuCisKKyAgICAgICAgKiBXZWJD
b3JlLnByaTogUmVtb3ZlZCB0ZXh0X2JyZWFraW5nX3dpdGhfaWN1IENPTkZJRyBmbGFnLiAKKyAg
ICAgICAgKiBXZWJDb3JlLnBybzogQWRkZWQgVGV4dENvZGVjSUNVLmNwcCBhbmQgcXQvVGV4dEJy
ZWFrSXRlcmF0b3JJbnRlcm5hbElDVVF0LmNwcC4KKyAgICAgICAgKiBlZGl0aW5nL3F0L1NtYXJ0
UmVwbGFjZVF0LmNwcDoKKyAgICAgICAgKiBmZWF0dXJlcy5wcmk6IFN1cHBvcnQgZm9yIHVzZV9z
eXN0ZW1faWN1IENPTkZJRyBmbGFnLgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvVGV4dENvZGVj
SUNVLmNwcDogR3VhcmQgd2l0aCBVU0UoSUNVX1VOSUNPREUpLiAKKyAgICAgICAgKiBwbGF0Zm9y
bS90ZXh0L3F0L1RleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VRdC5jcHA6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6UV9HTE9CQUxfU1RBVElDX1dJVEhfSU5JVElBTElaRVIpOgorICAgICAg
ICAoV2ViQ29yZTo6Y3VycmVudFNlYXJjaExvY2FsZUlEKToKKyAgICAgICAgKFdlYkNvcmU6OmN1
cnJlbnRUZXh0QnJlYWtMb2NhbGVJRCk6CisgICAgICAgICogcGxhdGZvcm0vdGV4dC9xdC9UZXh0
QnJlYWtJdGVyYXRvclF0LmNwcDogTW92ZWQgb3V0IGN1cnJlbnRUZXh0QnJlYWtMb2NhbGVJRCgp
LiAKKyAgICAgICAgKFdlYkNvcmU6OmlzVGV4dEJyZWFrKToKKyAgICAgICAgKiBwbGF0Zm9ybS90
ZXh0L3F0L1RleHRDb2RlY1F0LmNwcDogR3VhcmQgd2l0aCBVU0UoUVQ0X1VOSUNPREUpLiAKKyAg
ICAgICAgKFdlYkNvcmU6OlRleHRDb2RlY1F0OjpyZWdpc3RlckVuY29kaW5nTmFtZXMpOgorICAg
ICAgICAoV2ViQ29yZTo6VGV4dENvZGVjUXQ6OnJlZ2lzdGVyQ29kZWNzKToKKwogMjAxMS0wNS0y
NiAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBBZGFtIFJvYmVuLgpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcmkKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcmkJKHJldmlzaW9uIDg3Mzg5KQor
KysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcmkJKHdvcmtpbmcgY29weSkKQEAgLTI5NywxMCAr
Mjk3LDYgQEAgY29udGFpbnMoQ09ORklHLCB0ZXhtYXApIHsKICAgICBDT05GSUcgKz0gbm9fZGVi
dWdfaW5mbwogfQogCi1jb250YWlucyAoQ09ORklHLCB0ZXh0X2JyZWFraW5nX3dpdGhfaWN1KSB7
Ci0gICAgTElCUyArPSAtbGljdXVjCi19Ci0KICFDT05GSUcoUVRESVJfYnVpbGQpIHsKICAgICB3
aW4zMi0qfHdpbmNlKiB7CiAgICAgICAgIERMTERFU1RESVIgPSAkJE9VVFBVVF9ESVIvYmluCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnBybwkocmV2aXNpb24gODczODkpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnBybwkod29ya2luZyBjb3B5KQpAQCAtMTA2Myw2ICsxMDYzLDcgQEAgU09VUkNFUyArPSBc
CiAgICAgcGxhdGZvcm0vdGV4dC9UZXh0Q29kZWNVc2VyRGVmaW5lZC5jcHAgXAogICAgIHBsYXRm
b3JtL3RleHQvVGV4dENvZGVjVVRGMTYuY3BwIFwKICAgICBwbGF0Zm9ybS90ZXh0L1RleHRDb2Rl
Y1VURjguY3BwIFwKKyAgICBwbGF0Zm9ybS90ZXh0L1RleHRDb2RlY0lDVS5jcHAgXAogICAgIHBs
YXRmb3JtL3RleHQvVGV4dEVuY29kaW5nLmNwcCBcCiAgICAgcGxhdGZvcm0vdGV4dC9UZXh0RW5j
b2RpbmdEZXRlY3Rvck5vbmUuY3BwIFwKICAgICBwbGF0Zm9ybS90ZXh0L1RleHRFbmNvZGluZ1Jl
Z2lzdHJ5LmNwcCBcCkBAIC0yNTU1LDYgKzI1NTYsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBwbGF0
Zm9ybS9xdC9UZW1wb3JhcnlMaW5rU3R1YnNRdC5jcHAgXAogICAgIHBsYXRmb3JtL3RleHQvcXQv
VGV4dEJvdW5kYXJpZXNRdC5jcHAgXAogICAgIHBsYXRmb3JtL3RleHQvcXQvVGV4dEJyZWFrSXRl
cmF0b3JRdC5jcHAgXAorICAgIHBsYXRmb3JtL3RleHQvcXQvVGV4dEJyZWFrSXRlcmF0b3JJbnRl
cm5hbElDVVF0LmNwcCBcCiAgICAgcGxhdGZvcm0vdGV4dC9xdC9UZXh0Q29kZWNRdC5jcHAgXAog
ICAgIHBsYXRmb3JtL3F0L1doZWVsRXZlbnRRdC5jcHAgXAogICAgIHBsYXRmb3JtL3F0L1dpZGdl
dFF0LmNwcApAQCAtMjU4Niw3ICsyNTg4LDcgQEAgbWFjIHsKICAgICAgICAgcGxhdGZvcm0vdGV4
dC9jZi9TdHJpbmdJbXBsQ0YuY3BwCiB9CiAKLWNvbnRhaW5zIChDT05GSUcsIHRleHRfYnJlYWtp
bmdfd2l0aF9pY3UpIHsKK2NvbnRhaW5zIChDT05GSUcsIHVzZV9zeXN0ZW1faWN1KSB7CiAgICAg
U09VUkNFUyArPSBwbGF0Zm9ybS90ZXh0L1RleHRCcmVha0l0ZXJhdG9ySUNVLmNwcAogfQogCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9mZWF0dXJlcy5wcmkKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvZmVhdHVyZXMucHJpCShyZXZpc2lvbiA4NzM4OSkKKysrIFNvdXJjZS9XZWJDb3JlL2Zl
YXR1cmVzLnByaQkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsMTUgQEAgQ09ORklHKFFURElS
X2J1aWxkKSB7CiAgICAgfQogfQogCitjb250YWlucyhDT05GSUcsIHVzZV9zeXN0ZW1faWN1KSB7
CisgICAgREVGSU5FUyArPSBXVEZfVVNFX0lDVV9VTklDT0RFPTEKKyAgICBERUZJTkVTIC09IFdU
Rl9VU0VfUVQ0X1VOSUNPREUKKyAgICBMSUJTICs9IC1saWN1dWMgLWxpY3VpMThuCit9IGVsc2Ug
eworICAgIERFRklORVMgKz0gV1RGX1VTRV9RVDRfVU5JQ09ERT0xCisgICAgREVGSU5FUyAtPSBX
VEZfVVNFX0lDVV9VTklDT0RFCit9CisKIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9TSU5HTEVf
VEhSRUFERUQ9MSkgewogICAgIERFRklORVMrPUVOQUJMRV9EQVRBQkFTRT0wIEVOQUJMRV9ET01f
U1RPUkFHRT0wIEVOQUJMRV9JQ09OREFUQUJBU0U9MCBFTkFCTEVfV09SS0VSUz0wIEVOQUJMRV9T
SEFSRURfV09SS0VSUz0wCiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL3F0L1NtYXJ0
UmVwbGFjZVF0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL3F0L1Nt
YXJ0UmVwbGFjZVF0LmNwcAkocmV2aXNpb24gODczODkpCisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL3F0L1NtYXJ0UmVwbGFjZVF0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsNyArMjgsOSBA
QAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKKyNpZiBVU0UoUVQ0X1VOSUNPREUpCiAjaW5j
bHVkZSAiU21hcnRSZXBsYWNlLmgiCisjaW5jbHVkZSA8UUNoYXI+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIApAQCAtNjQsMyArNjYsNCBAQCBib29sIGlzQ2hhcmFjdGVyU21hcnRSZXBsYWNlRXhl
bXB0KFVDaGFyCiB9CiAKIH0KKyNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
dGV4dC9UZXh0Q29kZWNJQ1UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3RleHQvVGV4dENvZGVjSUNVLmNwcAkocmV2aXNpb24gODczODkpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS90ZXh0L1RleHRDb2RlY0lDVS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1
LDYgKzI1LDcgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCisjaWYgVVNFKElDVV9VTklD
T0RFKQogI2luY2x1ZGUgIlRleHRDb2RlY0lDVS5oIgogCiAjaW5jbHVkZSAiVGhyZWFkR2xvYmFs
RGF0YS5oIgpAQCAtNDcxLDMgKzQ3Miw1IEBAIENTdHJpbmcgVGV4dENvZGVjSUNVOjplbmNvZGUo
Y29uc3QgVUNoYXIKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorI2VuZGlmCisKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvcXQvVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5h
bElDVVF0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L3F0
L1RleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VRdC5jcHAJKHJldmlzaW9uIDApCisrKyBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L3F0L1RleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VR
dC5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDIgQEAKKy8qCisgICAgQ29weXJpZ2h0IChD
KSAyMDExIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorCisg
ICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0
IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljCisgICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBv
ciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICAgVGhpcyBsaWJyYXJ5
IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICAg
YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu
dHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UuICBTZWUgdGhlIEdOVQorICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm
b3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgIGFsb25nIHdpdGgg
dGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRv
CisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3Ry
ZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJUZXh0QnJlYWtJdGVyYXRvckludGVybmFs
SUNVLmgiCisKKyNpbmNsdWRlIDxRQnl0ZUFycmF5PgorI2luY2x1ZGUgPFFMb2NhbGU+CisjaW5j
bHVkZSA8UVNjb3BlZFBvaW50ZXI+CisjaW5jbHVkZSA8cWdsb2JhbC5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK1FfR0xPQkFMX1NUQVRJQ19XSVRIX0lOSVRJQUxJWkVSKFFCeXRlQXJyYXks
IGNhY2hlZFN5c3RlbUxvY2FsZSwgeyp4ID0gUUxvY2FsZTo6c3lzdGVtKCkubmFtZSgpLnRvQXNj
aWkoKTt9KQorCitjb25zdCBjaGFyKiBjdXJyZW50U2VhcmNoTG9jYWxlSUQoKQoreworICAgIHJl
dHVybiBjYWNoZWRTeXN0ZW1Mb2NhbGUoKS0+ZGF0YSgpOyAKK30KKworY29uc3QgY2hhciogY3Vy
cmVudFRleHRCcmVha0xvY2FsZUlEKCkKK3sKKyAgICByZXR1cm4gIGNhY2hlZFN5c3RlbUxvY2Fs
ZSgpLT5kYXRhKCk7IAorfQorCit9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0
L3F0L1RleHRCcmVha0l0ZXJhdG9yUXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3RleHQvcXQvVGV4dEJyZWFrSXRlcmF0b3JRdC5jcHAJKHJldmlzaW9uIDg3Mzg5
KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9xdC9UZXh0QnJlYWtJdGVyYXRvclF0
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzYsMTIgKzM2LDYgQEAgdXNpbmcgbmFtZXNwYWNlIHN0
ZDsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0jaWYgVVNFKFFUX0lDVV9URVhUX0JSRUFLSU5H
KQotY29uc3QgY2hhciogY3VycmVudFRleHRCcmVha0xvY2FsZUlEKCkKLXsKLSAgICByZXR1cm4g
UUxvY2FsZTo6c3lzdGVtKCkubmFtZSgpLnRvTGF0aW4xKCk7Ci19Ci0jZWxzZQogICAgIGNsYXNz
IFRleHRCcmVha0l0ZXJhdG9yIDogcHVibGljIFFUZXh0Qm91bmRhcnlGaW5kZXIgewogICAgIHB1
YmxpYzoKICAgICAgICAgVGV4dEJyZWFrSXRlcmF0b3IoUVRleHRCb3VuZGFyeUZpbmRlcjo6Qm91
bmRhcnlUeXBlIHR5cGUsIGNvbnN0IFFTdHJpbmcmIHN0cmluZykKQEAgLTE1NSw2ICsxNDksNSBA
QCBjb25zdCBjaGFyKiBjdXJyZW50VGV4dEJyZWFrTG9jYWxlSUQoKQogICAgIHsKICAgICAgICAg
cmV0dXJuIHRydWU7CiAgICAgfQotI2VuZGlmCiAKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3RleHQvcXQvVGV4dENvZGVjUXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3RleHQvcXQvVGV4dENvZGVjUXQuY3BwCShyZXZpc2lvbiA4NzM4OSkKKysr
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvcXQvVGV4dENvZGVjUXQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yNSw2ICsyNSw3IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgorI2lm
IFVTRShRVDRfVU5JQ09ERSkKICNpbmNsdWRlICJUZXh0Q29kZWNRdC5oIgogI2luY2x1ZGUgIlBs
YXRmb3JtU3RyaW5nLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgpAQCAtNDYsMTcg
KzQ3LDE0IEBAIHN0YXRpYyBjb25zdCBjaGFyICpnZXRBdG9taWNOYW1lKGNvbnN0IFEKIHZvaWQg
VGV4dENvZGVjUXQ6OnJlZ2lzdGVyRW5jb2RpbmdOYW1lcyhFbmNvZGluZ05hbWVSZWdpc3RyYXIg
cmVnaXN0cmFyKQogewogICAgIFFMaXN0PGludD4gbWlicyA9IFFUZXh0Q29kZWM6OmF2YWlsYWJs
ZU1pYnMoKTsKLS8vICAgICBxRGVidWcoKSA8PCAiPj4+Pj4+Pj4+IHJlZ2lzdGVyRW5jb2RpbmdO
YW1lcyI7CiAKICAgICBmb3IgKGludCBpID0gMDsgaSA8IG1pYnMuc2l6ZSgpOyArK2kpIHsKICAg
ICAgICAgUVRleHRDb2RlYyAqYyA9IFFUZXh0Q29kZWM6OmNvZGVjRm9yTWliKG1pYnMuYXQoaSkp
OwogICAgICAgICBjb25zdCBjaGFyICpuYW1lID0gZ2V0QXRvbWljTmFtZShjLT5uYW1lKCkpOwog
ICAgICAgICByZWdpc3RyYXIobmFtZSwgbmFtZSk7Ci0vLyAgICAgICAgIHFEZWJ1ZygpIDw8ICIg
ICAgIiA8PCBuYW1lIDw8IG5hbWU7CiAgICAgICAgIFFMaXN0PFFCeXRlQXJyYXk+IGFsaWFzZXMg
PSBjLT5hbGlhc2VzKCk7CiAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgYWxpYXNlcy5zaXpl
KCk7ICsraSkgewogICAgICAgICAgICAgY29uc3QgY2hhciAqYSA9IGdldEF0b21pY05hbWUoYWxp
YXNlcy5hdChpKSk7Ci0vLyAgICAgICAgICAgICBxRGVidWcoKSA8PCAiICAgICAoYSkgIiA8PCBh
IDw8IG5hbWU7CiAgICAgICAgICAgICByZWdpc3RyYXIoYSwgbmFtZSk7CiAgICAgICAgIH0KICAg
ICB9CkBAIC03MCwxMiArNjgsMTAgQEAgc3RhdGljIFBhc3NPd25QdHI8VGV4dENvZGVjPiBuZXdU
ZXh0Q29kZQogdm9pZCBUZXh0Q29kZWNRdDo6cmVnaXN0ZXJDb2RlY3MoVGV4dENvZGVjUmVnaXN0
cmFyIHJlZ2lzdHJhcikKIHsKICAgICBRTGlzdDxpbnQ+IG1pYnMgPSBRVGV4dENvZGVjOjphdmFp
bGFibGVNaWJzKCk7Ci0vLyAgICAgcURlYnVnKCkgPDwgIj4+Pj4+Pj4+PiByZWdpc3RlckNvZGVj
cyI7CiAKICAgICBmb3IgKGludCBpID0gMDsgaSA8IG1pYnMuc2l6ZSgpOyArK2kpIHsKICAgICAg
ICAgUVRleHRDb2RlYyAqYyA9IFFUZXh0Q29kZWM6OmNvZGVjRm9yTWliKG1pYnMuYXQoaSkpOwog
ICAgICAgICBjb25zdCBjaGFyICpuYW1lID0gZ2V0QXRvbWljTmFtZShjLT5uYW1lKCkpOwotLy8g
ICAgICAgICBxRGVidWcoKSA8PCAiICAgICIgPDwgbmFtZTsKICAgICAgICAgcmVnaXN0cmFyKG5h
bWUsIG5ld1RleHRDb2RlY1F0LCAwKTsKICAgICB9CiB9CkBAIC0xNjQsMyArMTYwLDQgQEAgQ1N0
cmluZyBUZXh0Q29kZWNRdDo6ZW5jb2RlKGNvbnN0IFVDaGFyKgogCiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKyNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>94990</attachid>
            <date>2011-05-26 09:42:18 -0700</date>
            <delta_ts>2011-05-31 15:09:02 -0700</delta_ts>
            <desc>the perfect patch (pun intended) </desc>
            <filename>60786_v8.patch</filename>
            <type>text/plain</type>
            <size>10960</size>
            <attacher name="Siddharth Mathur">s.mathur</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gODczODkpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAK
KzIwMTEtMDUtMjYgIFNpZGRoYXJ0aCBNYXRodXIgIDxzaWRkaGFydGgubWF0aHVyQG5va2lhLmNv
bT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbUXRd
IEJ1aWxkIGZsYWcgZm9yIGV4cGVyaW1lbnRhbCBJQ1UgbGlicmFyeSBzdXBwb3J0CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MDc4NgorCisgICAgICAg
IEFkZHMgYSBidWlsZC10aW1lIGZsYWcgKENPTkZJRys9dXNlX3N5c3RlbV9pY3UpIHRoYXQgZW5h
YmxlcyBleHBlcmltZW50YWwgCisgICAgICAgIElDVSBwb3dlcmVkIFVuaWNvZGUgc3VwcG9ydC4g
CisKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS5wcmk6IFN1cHBvcnQgZm9yIHVzZV9zeXN0ZW1f
aWN1IENPTkZJRyBmbGFnLgorICAgICAgICAqIHd0Zi91bmljb2RlL3F0NC9Vbmljb2RlUXQ0Lmg6
IEd1YXJkIGFuIGluY2x1ZGUgZmlsZSB3aXRoIFVTRShJQ1VfVU5JQ09ERSkuIAorCiAyMDExLTA1
LTI2ICBBZGFtIFJvYmVuICA8YXJvYmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBXaW5kb3dzIGJ1
aWxkIGZpeCBhZnRlciByODczNDYKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2Ny
aXB0Q29yZS5wcmkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLnByaQkocmV2aXNpb24gODczODkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUucHJpCSh3b3JraW5nIGNvcHkpCkBAIC01NywxMCArNTcsMTMgQEAgd2luMzIt
KjogREVGSU5FUyArPSBfSEFTX1RSMT0wCiAKIERFRklORVMgKz0gQlVJTERJTkdfSmF2YVNjcmlw
dENvcmUgQlVJTERJTkdfV1RGCiAKLSMgQ09ORklHICs9IHRleHRfYnJlYWtpbmdfd2l0aF9pY3UK
LQotY29udGFpbnMgKENPTkZJRywgdGV4dF9icmVha2luZ193aXRoX2ljdSkgewotICAgIERFRklO
RVMgKz0gV1RGX1VTRV9RVF9JQ1VfVEVYVF9CUkVBS0lORz0xCitjb250YWlucyhDT05GSUcsIHVz
ZV9zeXN0ZW1faWN1KSB7CisgICAgREVGSU5FUyArPSBXVEZfVVNFX0lDVV9VTklDT0RFPTEKKyAg
ICBERUZJTkVTIC09IFdURl9VU0VfUVQ0X1VOSUNPREUKKyAgICBMSUJTICs9IC1saWN1dWMgLWxp
Y3VpMThuCit9IGVsc2UgeworICAgIERFRklORVMgKz0gV1RGX1VTRV9RVDRfVU5JQ09ERT0xCisg
ICAgREVGSU5FUyAtPSBXVEZfVVNFX0lDVV9VTklDT0RFCiB9CiAKIHdpbmNlKiB7CkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL3VuaWNvZGUvcXQ0L1VuaWNvZGVRdDQuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL3VuaWNvZGUvcXQ0L1VuaWNvZGVRdDQu
aAkocmV2aXNpb24gODczODkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL3VuaWNvZGUv
cXQ0L1VuaWNvZGVRdDQuaAkod29ya2luZyBjb3B5KQpAQCAtMzEsNyArMzEsNyBAQAogI2luY2x1
ZGUgPGNvbmZpZy5oPgogCiAjaW5jbHVkZSA8c3RkaW50Lmg+Ci0jaWYgVVNFKFFUX0lDVV9URVhU
X0JSRUFLSU5HKQorI2lmIFVTRShJQ1VfVU5JQ09ERSkKICNpbmNsdWRlIDx1bmljb2RlL3Vicmsu
aD4KICNlbmRpZgogCkBAIC02Nyw3ICs2Nyw3IEBAIHR5cGVkZWYgd2NoYXJfdCBVQ2hhcjsKIHR5
cGVkZWYgdWludDE2X3QgVUNoYXI7CiAjZW5kaWYKIAotI2lmICFVU0UoUVRfSUNVX1RFWFRfQlJF
QUtJTkcpCisjaWYgIVVTRShJQ1VfVU5JQ09ERSkKIHR5cGVkZWYgdWludDMyX3QgVUNoYXIzMjsK
ICNlbmRpZgogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiA4NzM4OSkKKysrIFNvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMwIEBACisyMDExLTA1LTI2
ICBTaWRkaGFydGggTWF0aHVyICA8c2lkZGhhcnRoLm1hdGh1ckBub2tpYS5jb20+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW1F0XSBCdWlsZCBmbGFn
IGZvciBleHBlcmltZW50YWwgSUNVIGxpYnJhcnkgc3VwcG9ydAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjA3ODYKKworICAgICAgICBBZGRzIGEgYnVp
bGQtdGltZSBmbGFnIChDT05GSUcrPXVzZV9zeXN0ZW1faWN1KSB0aGF0IGVuYWJsZXMgZXhwZXJp
bWVudGFsIAorICAgICAgICBJQ1UgcG93ZXJlZCBVbmljb2RlIHN1cHBvcnQuIAorCisgICAgICAg
IE5vIG5ldyB0ZXN0cyBhcyBubyBuZXcgZmVhdHVyZXMgYWRkZWQuCisKKyAgICAgICAgKiBXZWJD
b3JlLnByaTogUmVtb3ZlZCB0ZXh0X2JyZWFraW5nX3dpdGhfaWN1IENPTkZJRyBmbGFnLiAKKyAg
ICAgICAgKiBXZWJDb3JlLnBybzogQWRkZWQgVGV4dENvZGVjSUNVLmNwcCBhbmQgcXQvVGV4dEJy
ZWFrSXRlcmF0b3JJbnRlcm5hbElDVVF0LmNwcC4KKyAgICAgICAgKiBlZGl0aW5nL3F0L1NtYXJ0
UmVwbGFjZVF0LmNwcDoKKyAgICAgICAgKiBmZWF0dXJlcy5wcmk6IFN1cHBvcnQgZm9yIHVzZV9z
eXN0ZW1faWN1IENPTkZJRyBmbGFnLgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvVGV4dENvZGVj
SUNVLmNwcDogR3VhcmQgd2l0aCBVU0UoSUNVX1VOSUNPREUpLiAKKyAgICAgICAgKiBwbGF0Zm9y
bS90ZXh0L3F0L1RleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VRdC5jcHA6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6UV9HTE9CQUxfU1RBVElDX1dJVEhfSU5JVElBTElaRVIpOgorICAgICAg
ICAoV2ViQ29yZTo6Y3VycmVudFNlYXJjaExvY2FsZUlEKToKKyAgICAgICAgKFdlYkNvcmU6OmN1
cnJlbnRUZXh0QnJlYWtMb2NhbGVJRCk6CisgICAgICAgICogcGxhdGZvcm0vdGV4dC9xdC9UZXh0
QnJlYWtJdGVyYXRvclF0LmNwcDogTW92ZWQgb3V0IGN1cnJlbnRUZXh0QnJlYWtMb2NhbGVJRCgp
LiAKKyAgICAgICAgKFdlYkNvcmU6OmlzVGV4dEJyZWFrKToKKyAgICAgICAgKiBwbGF0Zm9ybS90
ZXh0L3F0L1RleHRDb2RlY1F0LmNwcDogR3VhcmQgd2l0aCBVU0UoUVQ0X1VOSUNPREUpLiAKKyAg
ICAgICAgKFdlYkNvcmU6OlRleHRDb2RlY1F0OjpyZWdpc3RlckVuY29kaW5nTmFtZXMpOgorICAg
ICAgICAoV2ViQ29yZTo6VGV4dENvZGVjUXQ6OnJlZ2lzdGVyQ29kZWNzKToKKwogMjAxMS0wNS0y
NiAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBBZGFtIFJvYmVuLgpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcmkKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcmkJKHJldmlzaW9uIDg3Mzg5KQor
KysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcmkJKHdvcmtpbmcgY29weSkKQEAgLTI5NywxMCAr
Mjk3LDYgQEAgY29udGFpbnMoQ09ORklHLCB0ZXhtYXApIHsKICAgICBDT05GSUcgKz0gbm9fZGVi
dWdfaW5mbwogfQogCi1jb250YWlucyAoQ09ORklHLCB0ZXh0X2JyZWFraW5nX3dpdGhfaWN1KSB7
Ci0gICAgTElCUyArPSAtbGljdXVjCi19Ci0KICFDT05GSUcoUVRESVJfYnVpbGQpIHsKICAgICB3
aW4zMi0qfHdpbmNlKiB7CiAgICAgICAgIERMTERFU1RESVIgPSAkJE9VVFBVVF9ESVIvYmluCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnBybwkocmV2aXNpb24gODczODkpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnBybwkod29ya2luZyBjb3B5KQpAQCAtMTA2Myw2ICsxMDYzLDcgQEAgU09VUkNFUyArPSBc
CiAgICAgcGxhdGZvcm0vdGV4dC9UZXh0Q29kZWNVc2VyRGVmaW5lZC5jcHAgXAogICAgIHBsYXRm
b3JtL3RleHQvVGV4dENvZGVjVVRGMTYuY3BwIFwKICAgICBwbGF0Zm9ybS90ZXh0L1RleHRDb2Rl
Y1VURjguY3BwIFwKKyAgICBwbGF0Zm9ybS90ZXh0L1RleHRDb2RlY0lDVS5jcHAgXAogICAgIHBs
YXRmb3JtL3RleHQvVGV4dEVuY29kaW5nLmNwcCBcCiAgICAgcGxhdGZvcm0vdGV4dC9UZXh0RW5j
b2RpbmdEZXRlY3Rvck5vbmUuY3BwIFwKICAgICBwbGF0Zm9ybS90ZXh0L1RleHRFbmNvZGluZ1Jl
Z2lzdHJ5LmNwcCBcCkBAIC0yNTU1LDYgKzI1NTYsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBwbGF0
Zm9ybS9xdC9UZW1wb3JhcnlMaW5rU3R1YnNRdC5jcHAgXAogICAgIHBsYXRmb3JtL3RleHQvcXQv
VGV4dEJvdW5kYXJpZXNRdC5jcHAgXAogICAgIHBsYXRmb3JtL3RleHQvcXQvVGV4dEJyZWFrSXRl
cmF0b3JRdC5jcHAgXAorICAgIHBsYXRmb3JtL3RleHQvcXQvVGV4dEJyZWFrSXRlcmF0b3JJbnRl
cm5hbElDVVF0LmNwcCBcCiAgICAgcGxhdGZvcm0vdGV4dC9xdC9UZXh0Q29kZWNRdC5jcHAgXAog
ICAgIHBsYXRmb3JtL3F0L1doZWVsRXZlbnRRdC5jcHAgXAogICAgIHBsYXRmb3JtL3F0L1dpZGdl
dFF0LmNwcApAQCAtMjU4Niw3ICsyNTg4LDcgQEAgbWFjIHsKICAgICAgICAgcGxhdGZvcm0vdGV4
dC9jZi9TdHJpbmdJbXBsQ0YuY3BwCiB9CiAKLWNvbnRhaW5zIChDT05GSUcsIHRleHRfYnJlYWtp
bmdfd2l0aF9pY3UpIHsKK2NvbnRhaW5zIChDT05GSUcsIHVzZV9zeXN0ZW1faWN1KSB7CiAgICAg
U09VUkNFUyArPSBwbGF0Zm9ybS90ZXh0L1RleHRCcmVha0l0ZXJhdG9ySUNVLmNwcAogfQogCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9mZWF0dXJlcy5wcmkKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvZmVhdHVyZXMucHJpCShyZXZpc2lvbiA4NzM4OSkKKysrIFNvdXJjZS9XZWJDb3JlL2Zl
YXR1cmVzLnByaQkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsMTUgQEAgQ09ORklHKFFURElS
X2J1aWxkKSB7CiAgICAgfQogfQogCitjb250YWlucyhDT05GSUcsIHVzZV9zeXN0ZW1faWN1KSB7
CisgICAgREVGSU5FUyArPSBXVEZfVVNFX0lDVV9VTklDT0RFPTEKKyAgICBERUZJTkVTIC09IFdU
Rl9VU0VfUVQ0X1VOSUNPREUKKyAgICBMSUJTICs9IC1saWN1dWMgLWxpY3VpMThuCit9IGVsc2Ug
eworICAgIERFRklORVMgKz0gV1RGX1VTRV9RVDRfVU5JQ09ERT0xCisgICAgREVGSU5FUyAtPSBX
VEZfVVNFX0lDVV9VTklDT0RFCit9CisKIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9TSU5HTEVf
VEhSRUFERUQ9MSkgewogICAgIERFRklORVMrPUVOQUJMRV9EQVRBQkFTRT0wIEVOQUJMRV9ET01f
U1RPUkFHRT0wIEVOQUJMRV9JQ09OREFUQUJBU0U9MCBFTkFCTEVfV09SS0VSUz0wIEVOQUJMRV9T
SEFSRURfV09SS0VSUz0wCiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL3F0L1NtYXJ0
UmVwbGFjZVF0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL3F0L1Nt
YXJ0UmVwbGFjZVF0LmNwcAkocmV2aXNpb24gODczODkpCisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL3F0L1NtYXJ0UmVwbGFjZVF0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsNyArMjgsOSBA
QAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKKyNpZiBVU0UoUVQ0X1VOSUNPREUpCiAjaW5j
bHVkZSAiU21hcnRSZXBsYWNlLmgiCisjaW5jbHVkZSA8UUNoYXI+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIApAQCAtNjQsMyArNjYsNCBAQCBib29sIGlzQ2hhcmFjdGVyU21hcnRSZXBsYWNlRXhl
bXB0KFVDaGFyCiB9CiAKIH0KKyNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
dGV4dC9UZXh0Q29kZWNJQ1UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3RleHQvVGV4dENvZGVjSUNVLmNwcAkocmV2aXNpb24gODczODkpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS90ZXh0L1RleHRDb2RlY0lDVS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1
LDYgKzI1LDcgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCisjaWYgVVNFKElDVV9VTklD
T0RFKQogI2luY2x1ZGUgIlRleHRDb2RlY0lDVS5oIgogCiAjaW5jbHVkZSAiVGhyZWFkR2xvYmFs
RGF0YS5oIgpAQCAtNDcxLDMgKzQ3Miw1IEBAIENTdHJpbmcgVGV4dENvZGVjSUNVOjplbmNvZGUo
Y29uc3QgVUNoYXIKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorI2VuZGlmCisKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvcXQvVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5h
bElDVVF0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L3F0
L1RleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VRdC5jcHAJKHJldmlzaW9uIDApCisrKyBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L3F0L1RleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VR
dC5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDIgQEAKKy8qCisgICAgQ29weXJpZ2h0IChD
KSAyMDExIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorCisg
ICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0
IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljCisgICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBv
ciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICAgVGhpcyBsaWJyYXJ5
IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICAg
YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu
dHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UuICBTZWUgdGhlIEdOVQorICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm
b3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgIGFsb25nIHdpdGgg
dGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRv
CisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3Ry
ZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJUZXh0QnJlYWtJdGVyYXRvckludGVybmFs
SUNVLmgiCisKKyNpbmNsdWRlIDxRQnl0ZUFycmF5PgorI2luY2x1ZGUgPFFMb2NhbGU+CisjaW5j
bHVkZSA8UVNjb3BlZFBvaW50ZXI+CisjaW5jbHVkZSA8cWdsb2JhbC5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK1FfR0xPQkFMX1NUQVRJQ19XSVRIX0lOSVRJQUxJWkVSKFFCeXRlQXJyYXks
IGNhY2hlZFN5c3RlbUxvY2FsZSwgeyp4ID0gUUxvY2FsZTo6c3lzdGVtKCkubmFtZSgpLnRvQXNj
aWkoKTt9KQorCitjb25zdCBjaGFyKiBjdXJyZW50U2VhcmNoTG9jYWxlSUQoKQoreworICAgIHJl
dHVybiBjYWNoZWRTeXN0ZW1Mb2NhbGUoKS0+ZGF0YSgpOyAKK30KKworY29uc3QgY2hhciogY3Vy
cmVudFRleHRCcmVha0xvY2FsZUlEKCkKK3sKKyAgICByZXR1cm4gY2FjaGVkU3lzdGVtTG9jYWxl
KCktPmRhdGEoKTsgCit9CisKK30KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQv
cXQvVGV4dEJyZWFrSXRlcmF0b3JRdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vdGV4dC9xdC9UZXh0QnJlYWtJdGVyYXRvclF0LmNwcAkocmV2aXNpb24gODczODkp
CisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L3F0L1RleHRCcmVha0l0ZXJhdG9yUXQu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNiwxMiArMzYsNiBAQCB1c2luZyBuYW1lc3BhY2Ugc3Rk
OwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLSNpZiBVU0UoUVRfSUNVX1RFWFRfQlJFQUtJTkcp
Ci1jb25zdCBjaGFyKiBjdXJyZW50VGV4dEJyZWFrTG9jYWxlSUQoKQotewotICAgIHJldHVybiBR
TG9jYWxlOjpzeXN0ZW0oKS5uYW1lKCkudG9MYXRpbjEoKTsKLX0KLSNlbHNlCiAgICAgY2xhc3Mg
VGV4dEJyZWFrSXRlcmF0b3IgOiBwdWJsaWMgUVRleHRCb3VuZGFyeUZpbmRlciB7CiAgICAgcHVi
bGljOgogICAgICAgICBUZXh0QnJlYWtJdGVyYXRvcihRVGV4dEJvdW5kYXJ5RmluZGVyOjpCb3Vu
ZGFyeVR5cGUgdHlwZSwgY29uc3QgUVN0cmluZyYgc3RyaW5nKQpAQCAtMTU1LDYgKzE0OSw1IEBA
IGNvbnN0IGNoYXIqIGN1cnJlbnRUZXh0QnJlYWtMb2NhbGVJRCgpCiAgICAgewogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICB9Ci0jZW5kaWYKIAogfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vdGV4dC9xdC9UZXh0Q29kZWNRdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vdGV4dC9xdC9UZXh0Q29kZWNRdC5jcHAJKHJldmlzaW9uIDg3Mzg5KQorKysg
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9xdC9UZXh0Q29kZWNRdC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTI1LDYgKzI1LDcgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCisjaWYg
VVNFKFFUNF9VTklDT0RFKQogI2luY2x1ZGUgIlRleHRDb2RlY1F0LmgiCiAjaW5jbHVkZSAiUGxh
dGZvcm1TdHJpbmcuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CkBAIC00NiwxNyAr
NDcsMTQgQEAgc3RhdGljIGNvbnN0IGNoYXIgKmdldEF0b21pY05hbWUoY29uc3QgUQogdm9pZCBU
ZXh0Q29kZWNRdDo6cmVnaXN0ZXJFbmNvZGluZ05hbWVzKEVuY29kaW5nTmFtZVJlZ2lzdHJhciBy
ZWdpc3RyYXIpCiB7CiAgICAgUUxpc3Q8aW50PiBtaWJzID0gUVRleHRDb2RlYzo6YXZhaWxhYmxl
TWlicygpOwotLy8gICAgIHFEZWJ1ZygpIDw8ICI+Pj4+Pj4+Pj4gcmVnaXN0ZXJFbmNvZGluZ05h
bWVzIjsKIAogICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbWlicy5zaXplKCk7ICsraSkgewogICAg
ICAgICBRVGV4dENvZGVjICpjID0gUVRleHRDb2RlYzo6Y29kZWNGb3JNaWIobWlicy5hdChpKSk7
CiAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUgPSBnZXRBdG9taWNOYW1lKGMtPm5hbWUoKSk7CiAg
ICAgICAgIHJlZ2lzdHJhcihuYW1lLCBuYW1lKTsKLS8vICAgICAgICAgcURlYnVnKCkgPDwgIiAg
ICAiIDw8IG5hbWUgPDwgbmFtZTsKICAgICAgICAgUUxpc3Q8UUJ5dGVBcnJheT4gYWxpYXNlcyA9
IGMtPmFsaWFzZXMoKTsKICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBhbGlhc2VzLnNpemUo
KTsgKytpKSB7CiAgICAgICAgICAgICBjb25zdCBjaGFyICphID0gZ2V0QXRvbWljTmFtZShhbGlh
c2VzLmF0KGkpKTsKLS8vICAgICAgICAgICAgIHFEZWJ1ZygpIDw8ICIgICAgIChhKSAiIDw8IGEg
PDwgbmFtZTsKICAgICAgICAgICAgIHJlZ2lzdHJhcihhLCBuYW1lKTsKICAgICAgICAgfQogICAg
IH0KQEAgLTcwLDEyICs2OCwxMCBAQCBzdGF0aWMgUGFzc093blB0cjxUZXh0Q29kZWM+IG5ld1Rl
eHRDb2RlCiB2b2lkIFRleHRDb2RlY1F0OjpyZWdpc3RlckNvZGVjcyhUZXh0Q29kZWNSZWdpc3Ry
YXIgcmVnaXN0cmFyKQogewogICAgIFFMaXN0PGludD4gbWlicyA9IFFUZXh0Q29kZWM6OmF2YWls
YWJsZU1pYnMoKTsKLS8vICAgICBxRGVidWcoKSA8PCAiPj4+Pj4+Pj4+IHJlZ2lzdGVyQ29kZWNz
IjsKIAogICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbWlicy5zaXplKCk7ICsraSkgewogICAgICAg
ICBRVGV4dENvZGVjICpjID0gUVRleHRDb2RlYzo6Y29kZWNGb3JNaWIobWlicy5hdChpKSk7CiAg
ICAgICAgIGNvbnN0IGNoYXIgKm5hbWUgPSBnZXRBdG9taWNOYW1lKGMtPm5hbWUoKSk7Ci0vLyAg
ICAgICAgIHFEZWJ1ZygpIDw8ICIgICAgIiA8PCBuYW1lOwogICAgICAgICByZWdpc3RyYXIobmFt
ZSwgbmV3VGV4dENvZGVjUXQsIDApOwogICAgIH0KIH0KQEAgLTE2NCwzICsxNjAsNCBAQCBDU3Ry
aW5nIFRleHRDb2RlY1F0OjplbmNvZGUoY29uc3QgVUNoYXIqCiAKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQorI2VuZGlmCg==
</data>
<flag name="review"
          id="88394"
          type_id="1"
          status="-"
          setter="benjamin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>95030</attachid>
            <date>2011-05-26 13:48:49 -0700</date>
            <delta_ts>2011-05-26 13:48:49 -0700</delta_ts>
            <desc>Benchmark test to time layout</desc>
            <filename>60786_benchmark_v1.patch</filename>
            <type>text/plain</type>
            <size>34173</size>
            <attacher name="Siddharth Mathur">s.mathur</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvcXQvdGVzdHMvYmVuY2htYXJrcy9wYWludGluZy9oaW5kaS5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvcXQvdGVzdHMvYmVuY2htYXJrcy9wYWlu
dGluZy9oaW5kaS5odG1sCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYktpdC9xdC90ZXN0cy9i
ZW5jaG1hcmtzL3BhaW50aW5nL2hpbmRpLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsODAg
QEAKKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRp
b25hbC8vRU4iCisiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNp
dGlvbmFsLmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+
Cis8aGVhZD4KKworPG1ldGEgaHR0cC1lcXVpdj0iY29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0
L2h0bWw7IGNoYXJzZXQ9dXRmLTgiIC8+Cis8IS0tIFVTQUdFOiBZb3UgbXVzdCB1c2UgdGhpcyBj
aGFyc2V0LCBlbHNlIGRpc3BsYXkgZXJyb3JzIG1heSBvY2N1ciAtLT4KKworPHRpdGxlPkhpbmRp
IExpcHN1bSAtIFBsZWFzZSByZWZlciB0byBpbmNsdWRlZCBjb21tZW50cyBmb3IgdXNhZ2UhIENv
dXJ0ZXN5IGdlbmVyYXRvci5sb3JlbS1pcHN1bS5pbmZvPC90aXRsZT4KKzwvaGVhZD4KKworPGJv
ZHkgdGl0bGU9IlBsZWFzZSByZWZlciB0byBpbmNsdWRlZCBjb21tZW50cyBmb3IgdXNhZ2UhIj4K
KworICA8IS0tIFVTQUdFOiBDb3B5IHBhcmFncmFwaHMgaW50byB5b3VyIEhUTUwgZG9jdW1lbnRz
IGFzIG5lZWRlZCwgcHJlc2VydmluZyBnaXZlbiBhdHRyaWJ1dGVzIC0tPgorCis8cCBsYW5nPSJo
aSIgeG1sOmxhbmc9ImhpIiBkaXI9Imx0ciI+4KSX4KWB4KSc4KSw4KSo4KS+IOCkruCkvuCkp+Cl
jeCkr+CkriDgpLXgpL/gpLjgpY3gpKTgpLDgpKPgpJXgpY3gpLfgpK7gpKTgpL4g4KSq4KWB4KSw
4KWN4KS1IOCkpuClh+CkleCksCDgpKrgpY3gpLDgpL7gpKrgpY3gpKQg4KSs4KS/4KSo4KWN4KSm
4KWB4KSTIOCkleCkvuCksOCljeCkr+CkleCksOCljeCkpOCkviDgpKzgpKjgpL7gpI8g4KS44KWA
4KSu4KS/4KSkIOCkheCkp+Ckv+CkleCkvuCksCDgpKrgpLDgpL/gpLXgpLngpKgg4KSu4KWB4KS2
4KWN4KSV4KS/4KSy4KWHIOClpOCklSDgpLjgpILgpKbgpYfgpLYg4KSq4KWH4KSm4KS+IOCkhuCk
teCktuCljeCkr+CkleCkpCDgpKbgpLjgpY3gpKTgpL7gpLXgpYfgpJwg4KSc4KS/4KS44KSV4KWA
IOCkuOCkleCkpOClhyDgpJzgpL/gpK7gpY3gpK7gpYcg4KSq4KWN4KSw4KS14KWN4KSw4KWB4KSk
4KS/IOCkrOCkvuCknOCkvuCksCDgpJXgpLDgpKTgpL4g4KSs4KSi4KS+4KSk4KS+IOCkl+Ckr+Cl
h+Ckl+Ckr+CkviDgpKrgpY3gpLDgpYzgpKfgpY3gpK/gpYvgpJfgpL/gpJXgpYAg4KSy4KSV4KWN
4KS34KSjIOCkl+Ckr+Clh+Ckl+Ckr+CkviDgpKzgpL/gpKjgpY3gpKbgpYHgpJMg4KS14KS/4KSa
4KSw4KS14KS/4KSu4KSw4KWN4KS2IOCkieCkpuClh+CktiDgpJXgpYDgpLjgpYcg4KSk4KSw4KWA
4KSV4KWHIOCkuOCljeCkpeCkv+CkpOCkvyDgpIXgpILgpJfgpY3gpLDgpYfgpJzgpYAg4KSt4KS+
4KS34KS+IOCkleCksOCkpOCkvuClpCDgpLjgpK3gpL/gpLjgpK7gpJwg4KSF4KSo4KWB4KS14KS+
4KSm4KSVIOCkteCkv+CkmuCksOCkteCkv+CkruCksOCljeCktiDgpLngpYvgpK3gpLAg4KSu4KWB
4KSV4KWN4KSkIOCkteCksOCljeCko+Ckv+CkpCDgpLXgpL/gpLbgpY3gpLLgpYfgpLfgpKMg4KS1
4KWN4KSw4KWB4KSm4KWN4KSn4KS/IOCkl+ClgeCknOCksOCkqOCkviDgpLjgpK7gpY3gpKrgpLDg
pY3gpJUg4KS44KSC4KS44KWN4KSV4KWN4KSw4KWB4KSk4KS/IOCkquClh+CkpuCkviDgpKfgpY3g
pLXgpKjgpL8KKyAgPC9wPgorICA8cCBsYW5nPSJoaSIgeG1sOmxhbmc9ImhpIiBkaXI9Imx0ciI+
CivgpIbgpLXgpLbgpY3gpK/gpJUg4KS44KSu4KS44KWN4KSv4KS+4KSTIOCksuCkv+Ckj+ClpCDg
pKrgpY3gpLDgpL7gpKMg4KS54KWI4KSC4KWkIOCkruCknOCkrOClgeCkpCDgpLjgpK3gpYDgpJXg
pYHgpJsg4KSF4KSn4KS/4KSV4KS+4KSC4KS2IOCkrOCkqOCkvuCkpOCkvyDgpJzgpY3gpK/gpL7g
pKbgpL4g4KSo4KS/4KSw4KWN4KSm4KWH4KS2IOCkuOCkruCkuOCljeCkr+CkvuCkjyDgpJXgpL/g
pJXgpYcg4KSy4KWL4KSX4KWLIOCkueCkruCkvuCksOCkvyDgpLXgpL/gpKjgpL/gpK7gpK8g4KS4
4KSu4KWN4KSq4KSw4KWN4KSVIOCkleCksOClh+CkuOCkvuCkpSDgpLXgpL/gpLbgpY3gpLXgpLXg
pY3gpK/gpL7gpKrgpL8g4KS54KSu4KS+4KSw4KS/IOCkqOClgOCkmuClhworICA8L3A+CisgIDxw
IGxhbmc9ImhpIiB4bWw6bGFuZz0iaGkiIGRpcj0ibHRyIj4KK+CkrOCkouCkvuCkpOCkviDgpI/g
pJvgpL/gpKQg4KS14KWH4KSs4KSc4KS+4KSyIOCkuOCkreCkv+CkuOCkruCknCDgpLjgpK7gpL7g
pJzgpYsg4KSm4KS/4KS24KS+4KSu4KWHIOCkleCkvuCksOCljeCkr+CksuCkryDgpJzgpL7gpKTg
pL4g4KSV4KSw4KSo4KWHIOCkueCliOClpOCkheCkreClgCDgpLjgpY3gpLXgpKTgpILgpKTgpY3g
pLDgpKTgpL4g4KS24KWA4KSY4KWN4KSwIOCksuClh+CkqOClhyDgpLngpK7gpYfgpLngpYvgpaQg
4KSq4KWN4KSw4KS+4KSl4KSu4KS/4KSVIOCkquCljeCksOCkpOCkv+CkrOCkp+CljeCkpuCkpOCk
viDgpKzgpKjgpL7gpKjgpYcg4KS44KWB4KS44KWN4KSq4KS24KWN4KSfIOCkteCkv+CkreCkvuCk
nOCkqOCkleCljeCkt+CkruCkpOCkviDgpLjgpYHgpJrgpKjgpL4g4KSP4KSb4KS/4KSkIOCkrOCl
gOCkuOCkrOCkpOClh+CkrOCli+CkpyDgpK/gpKjgpY3gpKTgpY3gpLDgpL7gpLLgpK8g4KSG4KSC
4KSk4KSw4KSV4KS+4KSw4KWN4KSv4KSV4KWN4KS34KSu4KSk4KS+IOCkruCkvuCkqOCktSDgpKHg
pL7gpLLgpYfgpaQg4KS54KWI4KWk4KSF4KSt4KWAIOCkpuCkuOCljeCkpOCkvuCkteClh+CknCDg
pLXgpL/gpLbgpY3gpLXgpLXgpY3gpK/gpL7gpKrgpL8g4KSs4KSo4KS+4KSo4KWHIOCkqOClgOCk
muClhyDgpLjgpK7gpJzgpKTgpYcg4KSV4KS+4KSuIOCkheCkqOClgeCkleClguCksiDgpLXgpLDg
pY3gpKTgpK7gpL7gpKgg4KS44KSu4KS44KWN4KSv4KS+4KSTIOCkuOClgeCkqOCkpCDgpKTgpLDg
pYDgpJXgpYcg4KSF4KSo4KWB4KSV4KWC4KSyIOCkruClgeCkluCljeCkr+CkpOCkuSDgpLjgpILg
pLjgpY3gpKXgpL7gpKgKKyAgPC9wPgorICA8cCBsYW5nPSJoaSIgeG1sOmxhbmc9ImhpIiBkaXI9
Imx0ciI+CivgpKzgpLngpYHgpKQg4KS44KS+4KSm4KSX4KS/IOCkleCljeCkt+CkruCkpOCkvuCl
pCDgpKrgpY3gpLDgpL7gpKfgpL/gpJXgpLDgpKgg4KSq4KWN4KSw4KS+4KSjIOCkqOCkv+CksOCl
jeCkruCkvuCkoyDgpLXgpL/gpJXgpYfgpKjgpY3gpKbgpY3gpLDgpL/gpKQg4KS14KS/4KSV4KWH
4KSo4KWN4KSm4KWN4KSw4KS/4KSv4KSV4KSw4KSjIOCkleCksOCkleClhyDgpLngpL/gpILgpKbg
pYAg4KSs4KSo4KS+4KSPIOCkquCkvuCkuOCkquCkvuCkiCDgpKbgpLjgpY3gpKTgpL7gpLXgpYfg
pJwg4KSq4KWN4KSw4KWL4KSk4KWN4KS44KS+4KS54KS/4KSkIOCkuOCkleCkpOCkviDgpJzgpL7g
pJfgpLDgpYHgpJUg4KS44KSC4KS44KWN4KSl4KS+4KSoIOCkteCkv+CktuCljeCkteCkteCljeCk
r+CkvuCkquCkvyDgpJXgpL7gpLDgpY3gpK8g4KS14KS/4KS24KWN4KS14KS14KWN4KSv4KS+4KSq
4KS/IOCkleCkvuCksOCljeCkr+CkuOCkv+Ckp+CkvuCkqOCljeCkpOCliyDgpLXgpL/gpLbgpY3g
pLUg4KS54KWL4KSo4KWHIOCkleCkvuCksOCljeCkryDgpKrgpKLgpKjgpYcg4KSy4KSV4KWN4KS3
4KWN4KSvIOCkhuCkteCktuCljeCkr+CkleCkpCDgpLjgpL7gpLDgpY3gpLXgpJzgpKjgpL/gpJUg
4KS14KS/4KSV4KS44KS/4KSkIOCkreCli+Ckl+Cli+CksuCkv+CklSDgpJXgpYDgpLjgpYcg4KS5
4KWL4KS44KSV4KWHIOCkpuCkv+CktuCkvuCkruClhyDgpKjgpL/gpLDgpY3gpKbgpYfgpLYg4KSW
4KSw4KS/4KSm4KWHIOCkuOCkueCkv+CkpCDgpLjgpLngpK/gpYvgpJcg4KS44KWH4KSU4KSwIOCk
j+CkleCkpOCljeCksOCkv+CkpCDgpKbgpLjgpY3gpKTgpL7gpLXgpYfgpJwg4KSs4KSo4KS+4KSk
4KS/IOCkl+ClgeCknOCksOCkqOCkviDgpLDgpLngpL7gpLDgpYHgpKog4KSV4KWI4KS44KWHIOCk
uOCkvuCkpuCkl+CkvyDgpJXgpLDgpKTgpL4g4KSu4KWH4KSC4KSt4KSf4KWDIOCkqOCkv+CksOCk
quClh+CkleCljeCktyDgpKzgpKjgpL7gpKTgpL8g4KSc4KWL4KS14KWHIOCkquCksOCkv+CkteCk
ueCkqCDgpLXgpY3gpK/gpL7gpJbgpY3gpK/gpL4g4KSi4KS+4KSC4KSa4KS+4KSu4KS+4KSk4KWN
4KSw4KWB4KSt4KS+4KS34KS+IOCkleCljeCkt+CkruCkpOCkviDgpLjgpY3gpKXgpL/gpKTgpL8g
4KSq4KS54KWH4KSy4KS+IOCkueClgOCkleCkrgorICA8L3A+CisgIDxwIGxhbmc9ImhpIiB4bWw6
bGFuZz0iaGkiIGRpcj0ibHRyIj4KK+CkrOCkvuCksOClhyDgpK/gpL7gpK/gpYfgpJXgpL4g4KSF
4KSo4KWB4KS14KS+4KSm4KSVIOCkuOClgeCkuOCljeCkquCktuCljeCknyDgpJzgpL7gpKjgpKTg
pYcg4KSq4KSw4KS44KWN4KSq4KSwIOCkhuCkp+ClgeCkqOCkv+CklSDgpKrgpY3gpLDgpYfgpLDg
pKjgpL4g4KSu4KWB4KSW4KWN4KSvIOCkrOCkvuCkp+CkviDgpKjgpL/gpLDgpY3gpK7gpL7gpKMg
4KSV4KSu4KWN4KSq4KWN4KSv4KWB4KSf4KSwIOCkleClgOCkuOClhyDgpKbgpYzgpLDgpL7gpKgg
4KS24KWB4KSw4KWB4KSG4KSkIOCkrOClh+CkguCkl+CksuClguCksCDgpLLgpJfgpKTgpYAg4KSV
4KS+4KSw4KWN4KSvIOCkteCkv+CkmuCkvuCksOCktuCkv+CksuCkpOCkviDgpLXgpL/gpK3gpL7g
pJzgpKjgpJXgpY3gpLfgpK7gpKTgpL4g4KSF4KSq4KSo4KWHIOCkleCksOCkpOCkvuClpCDgpIbg
pJzgpKrgpLAg4KS14KSw4KWN4KSj4KSoIOCkluCksOCkv+CkpuCkqOClhyDgpKzgpYDgpLjgpKzg
pKTgpYfgpKzgpYvgpKcg4KS14KS/4KSV4KWH4KSo4KWN4KSm4KWN4KSw4KS/4KSkIOCksOCkv+Ck
pOClgCDgpI/gpLjgpYfgpI/gpLXgpIIg4KSm4KWL4KS34KS44KSV4KWHIOCkteCljeCkr+CkvuCk
luCljeCkr+CkviDgpKTgpLDgpYDgpJXgpYcKKyAgPC9wPgorICA8cCBsYW5nPSJoaSIgeG1sOmxh
bmc9ImhpIiBkaXI9Imx0ciI+CivgpKbgpL7gpLDgpYAg4KSc4KS+4KSX4KSw4KWB4KSVIOCkuOCl
i+ClnuCljeCkn+CkteClh+CksCDgpLjgpY3gpLXgpKTgpILgpKTgpY3gpLDgpKTgpL4g4KSt4KS+
4KS34KS+4KSTIOCkieCkquCksuCkrOCljeCkpyDgpLXgpL/gpK3gpL7gpJzgpKjgpJXgpY3gpLfg
pK7gpKTgpL4g4KSm4KWH4KSo4KWHIOCknOCkvuCkqOCkpOClhyDgpLngpK7gpYfgpLngpYvgpaQg
4KSF4KS44KSV4KWN4KS34KSuIOCkleClgOCkuOClhyDgpJXgpLDgpL7gpKjgpL4g4KSt4KS+4KS3
4KSPIOCkpuCljeCkteCkvuCksOCkviDgpIngpLjgpYDgpI/gpJXgpY0g4KS44KSt4KWA4KSV4KWB
4KSbIOCkrOCkqOCkvuCkpOCkvyDgpLXgpL7gpKTgpL7gpLXgpLDgpKMg4KSV4KS+4KSw4KWN4KSv
4KS44KS/4KSn4KS+4KSo4KWN4KSk4KWLIOCkruCknOCkrOClgeCkpCDgpJXgpLDgpKTgpYcg4KS4
4KSm4KS44KWN4KSvIOCkreClgOCkr+CkuSDgpJTgpLDgpY3gpargpavgpaYg4KS44KWL4KWe4KSk
4KS14KWH4KSwIOCkruCkvuCksOCljeCkl+CkpuCksOCljeCktuCkqCDgpJXgpLDgpL7gpKjgpL4g
4KSV4KWN4KS34KSu4KSk4KS+IOCkquCkueCli+CkmuCkqOClhyDgpIbgpKrgpJXgpYsKKyAgPC9w
PgorICA8cCBsYW5nPSJoaSIgeG1sOmxhbmc9ImhpIiBkaXI9Imx0ciI+CivgpIXgpKfgpL/gpJXg
pL7gpLAg4KSq4KWN4KSw4KSk4KS/4KSs4KSnIOCkpuClh+CkleCksCDgpJrgpL/gpKbgpILgpLYg
4KWk4KSVIOCkpuClh+CkluCkqOClhyDgpJbgpLDgpL/gpKbgpKjgpYcg4KSu4KSw4KWN4KSv4KS+
4KSm4KS/4KSkIOCkqOCkv+CksOCljeCkruCkvuCkpOCkviDgpLXgpL/gpLfgpK8g4KSV4KSw4KSk
4KS+4KWkIOCkuOCkguCkquCkvuCkpuCklSDgpKjgpL/gpLDgpKrgpYfgpJXgpY3gpLcg4KS44KWN
4KS14KSk4KSC4KSk4KWN4KSw4KSk4KS+IOCkpuCkv+CkqOCkvuCkguCklSDgpLjgpL/gpKbgpY3g
pKfgpL7gpILgpKQg4KSV4KS+4KSw4KWN4KSv4KSV4KSw4KWN4KSk4KS+IOCkruClgeCkleCljeCk
pCDgpK7gpYHgpJbgpK8g4KS44KSV4KWN4KS34KSuIOCkleCli+CkueCkriDgpIbgpKfgpYHgpKjg
pL/gpJUg4KS14KS+4KSk4KS+4KS14KSw4KSjIOCkrOCkv+CkqOCljeCkpuClgeCkk+CkruClhyDg
pLbgpYHgpLDgpYHgpIbgpKQg4KS14KS/4KSt4KS+4KSc4KSoIOCkquCkoeCkpOCkviDgpLXgpL/g
pLbgpYfgpLcg4KSs4KS+4KSn4KS+IOCkquCljeCksOCkvuCkoyDgpI/gpLjgpLLgpL/gpK/gpYcg
4KSJ4KSm4KWN4KSv4KWL4KSXIOCkteCkv+CkleClh+CkqOCljeCkpuCljeCksOCkv+Ckr+CkleCk
sOCkoyDgpK3gpL7gpLfgpL4g4KS44KSu4KSc4KSk4KWHIOCkquCkueCli+CkmuCkqOClhyDgpLjg
pYvgpZ7gpKTgpLXgpYfgpLAg4KSu4KS+4KSo4KS1IOCkteCljeCkr+CkvuCkluCljeCkr+CkviDg
pK/gpKjgpY3gpKTgpY3gpLDgpL7gpLLgpK8g4KS14KS/4KS44KWN4KSk4KSw4KSj4KSV4KWN4KS3
4KSu4KSk4KS+IOCkueCkruCkvuCksOClgCDgpJXgpL/gpI/gpLLgpYvgpJcg4KSm4KSw4KWN4KS2
4KS+4KSk4KS+IOCkleCkvuCksOCljeCkr+CksuCkryDgpIbgpKrgpJXgpYcg4KSs4KS+4KSc4KS+
4KSwIOCknOCkvuCkj+CkqCDgpLXgpL/gpLbgpY3gpLUg4KSm4KWB4KSo4KS/4KSv4KS+IOCkteCk
v+CkleClh+CkqOCljeCkpuCljeCksOCkv+CkpCDgpLjgpYDgpK7gpL/gpKQg4KS44KSC4KS44KWN
4KSl4KS+IOCkhuCkteCktuCljeCkr+CklSDgpLjgpJXgpKTgpYAKKyAgPC9wPgorICA8cCBsYW5n
PSJoaSIgeG1sOmxhbmc9ImhpIiBkaXI9Imx0ciI+CivgpIXgpKjgpYHgpJXgpYLgpLIg4KSq4KWN
4KSw4KWM4KSn4KWN4KSv4KWL4KSX4KS/4KSV4KWAIOCkrOCkouCkvuCkpOCkviDgpLDgpJrgpKjg
pL4g4KSW4KSw4KS/4KSm4KSo4KWHIOCkuOClgeCkuOCljeCkquCktuCljeCknyDgpK7gpL7gpLng
pL/gpKTgpYDgpLXgpL7gpKjgpYDgpJzgpY3gpK8g4KSV4KSw4KSo4KWHIOCkp+CljeCkteCkqOCk
vyDgpKzgpL7gpJzgpL7gpLAg4KSV4KS+4KSw4KSoIOCkl+Ckr+Clh+Ckl+Ckr+CkviDgpJXgpK7g
pY3gpKrgpY3gpK/gpYHgpJ/gpLAg4KSJ4KSm4KWH4KS24KWA4KSkIOCkteCkv+CkleCkuOCkv+Ck
pCDgpJXgpL7gpLDgpY3gpK/gpLjgpL/gpKfgpL7gpKjgpY3gpKTgpYsg4KSu4KWB4KSW4KWN4KSv
IOCkreClgOCkr+CkuSDgpIXgpKjgpY3gpK8g4KS44KSC4KS44KWN4KSl4KS+4KSoIOCkteCkvuCk
uOCljeCkpOCkteCkv+CklSDgpLjgpY3gpLXgpKTgpILgpKTgpY3gpLDgpKTgpL4g4KS44KS+4KSm
4KSX4KS/IOCknOCkvuCkqOClhyDgpKjgpLXgpILgpKzgpLAg4KSF4KSk4KWN4KSv4KSC4KSkIOCk
ueCliOClpOCkheCkreClgCDgpK7gpYHgpLbgpY3gpJXgpL/gpLIg4KSo4KS+4KSV4KSwIOCkteCk
v+CkqOCkv+CkruCkryDgpJXgpLDgpJXgpYco4KS14KS/4KS24KWH4KS3IOCkrOCkouCkvuCkpOCk
viDgpLXgpLDgpY3gpKPgpKgg4KSm4KS+4KSw4KWAIOCkuOCli+ClnuCljeCkn+CkteClh+CksCDg
pIXgpILgpJfgpY3gpLDgpYfgpJzgpYAg4KSV4KS+4KSw4KWN4KSv4KS44KS/4KSn4KS+4KSo4KWN
4KSk4KWLIOCkquClgeCksOCljeCktSDgpJXgpYHgpLbgpLLgpKTgpL4g4KS44KSu4KWN4KSq4KSw
4KWN4KSVIOCkteCkv+CktuCljeCkteCkteCljeCkr+CkvuCkquCkvyDgpLLgpYvgpJfgpYsg4KSm
4KWN4KS14KS+4KSw4KS+IOCkuOCkreCkv+CkuOCkruCknCDgpLDgpJbgpKTgpYcg4KSm4KWH4KSW
4KSo4KWHCisgIDwvcD4KKyAgPHAgbGFuZz0iaGkiIHhtbDpsYW5nPSJoaSIgZGlyPSJsdHIiPgor
4KSJ4KS24KSV4KWAIOCkquCljeCksOCkvuCkoyDgpJfgpK/gpYfgpJfgpK/gpL4g4KSm4KSw4KWN
4KS24KS+4KSk4KS+IOCkuOCkguCkquClgeCksOCljeCkoyDgpKjgpLXgpILgpKzgpLAg4KSq4KSh
4KSk4KS+IOCkuOCkguCkquClgeCksOCljeCkoyDgpLjgpYvgpZ7gpY3gpJ/gpLXgpYfgpLAg4KSF
4KSu4KS/4KSk4KSV4KWB4KSu4KS+4KSwIOCkteCkv+CknOCljeCknuCkvuCkqCDgpKrgpYHgpLDg
pY3gpKPgpKTgpL4g4KSi4KS+4KSC4KSa4KS+4KSu4KS+4KSk4KWN4KSw4KWB4KSt4KS+4KS34KS+
IOCkieCkuOCkleClhyDgpKfgpY3gpLXgpKjgpL8g4KS14KS/4KS14KSw4KSoIOCkquCljeCksOCk
ruCkvuCkqCDgpIXgpLjgpLDgpJXgpL7gpLDgpJUg4KSw4KSW4KSk4KWHIOCkreCkvuCksOCkpOCl
gOCkryDgpIXgpKTgpY3gpK/gpILgpKQg4KSF4KSn4KS/4KSV4KS+4KSC4KS2IOCklOCkt+Ckp+Ck
v+CklSDgpK3gpYDgpK/gpLkg4KSP4KSV4KSP4KS4IOCkreCkvuCkt+CkvuCkkyDgpJbgpLDgpL/g
pKbgpKjgpYcg4KSq4KWN4KSw4KWH4KSw4KSo4KS+IOCkleCkvuCksOCljeCkr+CksuCkryDgpJfg
pJ/gpJXgpYsg4KSu4KWB4KSV4KWN4KSkIOCkieCkquClh+CkleCljeCktyDgpKzgpL/gpKjgpY3g
pKbgpYHgpJPgpK7gpYcg4KSs4KSo4KS+4KSPIOCkteCkv+CkteCksOCkoyDgpLXgpL/gpLbgpY3g
pLXgpL7gpLgg4KSF4KSo4KWN4KSk4KSw4KSw4KS+4KS34KWN4KSf4KWN4KSw4KWA4KSv4KSV4KSw
4KSoIOCknOCkvuCkqOClhyDgpIXgpKfgpL/gpJXgpL7gpLAg4KSs4KS/4KSo4KWN4KSm4KWB4KST
IOCkquCljeCksOCkvuCkpeCkruCkv+CklSDgpJbgpLDgpL/gpKbgpYcg4KSJ4KSo4KSV4KWLIOCk
pOCksOClgOCkleClhyDgpJXgpL/gpI/gpLLgpYvgpJcg4KS44KSC4KS44KWN4KSV4KWN4KSw4KWB
4KSk4KS/IOCktuClgeCksOClgeCkhuCkpCDgpLLgpJXgpY3gpLfgpY3gpK8g4KSs4KS+4KSk4KS4
4KSu4KSvIOCkheCkquCkqOClhyDgpLjgpK7gpL7gpJzgpYsg4KSw4KSa4KSo4KS+IOCkieCkquCl
h+CkleCljeCktyDgpKzgpL/gpKjgpY3gpKbgpYHgpJMg4KS14KS/4KSt4KS+4KSc4KSo4KSV4KWN
4KS34KSu4KSk4KS+IOCkrOCkqOCkvuCkleCksCDgpKrgpYHgpLjgpY3gpKTgpJUg4KSy4KSa4KSV
4KSo4KS54KS/IOCkteCkv+CknOCljeCknuCkvuCkqCDgpJXgpLLgpIfgpLgg4KS54KWL4KS44KSV
4KWHIOCkuOCkguCkpuClh+CktiDgpJXgpYfgpLXgpLIg4KS14KWN4KSv4KS14KS54KS+4KSwIOCk
teCkv+CkuOCljeCkpOCksOCko+CkleCljeCkt+CkruCkpOCkvgorICA8L3A+CisgIDxwIGxhbmc9
ImhpIiB4bWw6bGFuZz0iaGkiIGRpcj0ibHRyIj4KK+CksuCkvuCkreCliyDgpLjgpILgpKbgpYfg
pLYg4KS44KS+4KSw4KS+4KSC4KS2IOCkuOCli+ClnuCkpOCkteClh+CksCDgpK/gpKjgpY3gpKTg
pY3gpLDgpL7gpLLgpK8g4KSJ4KSq4KSy4KSs4KWN4KSnIOCkrOCkv+CkqOCljeCkpuClgeCkk+Ck
ruClhyDgpLXgpL/gpLbgpY3gpLXgpLXgpY3gpK/gpL7gpKrgpL8g4KSJ4KSo4KSV4KWHIOCkteCk
v+CkteCksOCkqCDgpKjgpLXgpILgpKzgpLAg4KSq4KSw4KS44KWN4KSq4KSwIOCkrOClh+CkguCk
l+CksuClguCksCDgpKrgpY3gpLDgpL7gpKfgpL/gpJXgpLDgpKgg4KSJ4KS24KSV4KWAIOCkueCl
i+Ckl+CkviDgpLjgpL7gpLDgpL7gpILgpLYg4KSG4KSC4KSk4KSw4KSV4KS+4KSw4KWN4KSv4KSV
4KWN4KS34KSu4KSk4KS+IOCkruCknOCkrOClgeCkpCDgpLDgpJbgpKTgpL8g4KSP4KS44KSy4KS/
4KSv4KWHIOCkuOCkvuCkruClguCkueCkv+CklSDgpLXgpL/gpLbgpY3gpLUg4KSh4KS+4KSy4KWH
4KWkIOCkheCkp+Ckv+CklSDgpIbgpLXgpLbgpY3gpK/gpJUg4KSq4KSw4KS/4KS14KS54KSoIOCk
sOCkueCkvuCksOClgeCkqiDgpIbgpLbgpL7gpIbgpKrgpLgg4KSk4KSw4KWA4KSV4KWHIOCkleCl
gOCkqOClhyDgpLXgpL/gpLbgpYfgpLcg4KSV4KSy4KSH4KS4IOCkuOClgeCkteCkv+Ckp+CkviDg
pLXgpL7gpLjgpY3gpKTgpLXgpL/gpJUg4KSs4KS+4KSc4KS+4KSwIOCkhuCkquCkleCliyDgpIXg
pLjgpJXgpY3gpLfgpK4g4KSq4KWN4KSw4KSk4KS/4KSs4KSn4KWN4KSm4KSk4KS+CisgIDwvcD4K
KworPHAgbGFuZz0iaGkiIHhtbDpsYW5nPSJoaSIgZGlyPSJsdHIiPuCkqOCkteCkguCkrOCksCDg
pLDgpL/gpKTgpYAg4KSV4KSw4KWH4KS44KS+4KSlIOCkr+CkvuCkr+Clh+CkleCkviDgpKzgpYfg
pILgpJfgpLLgpYLgpLAg4KSq4KWN4KSw4KSk4KS/IOCkrOCkvuCksOClhyDgpLngpK7gpYfgpLng
pYvgpaQg4KSo4KS/4KSw4KWN4KSu4KS+4KSjIOCkrOCkqOCkvuCkqOCkviDgpKrgpLDgpL/gpLXg
pLngpKgg4KSV4KS+4KSw4KWN4KSv4KSy4KSvIOCkr+CkqOCljeCkpOCljeCksOCkvuCksuCkryDg
pJfgpI/gpIbgpKog4KS54KWB4KSP4KSG4KSm4KS/IOCkheCkguCkl+CljeCksOClh+CknOClgCDg
pLjgpILgpKbgpYfgpLYg4KSa4KS+4KS54KWHIOCksuCkv+Ckr+ClhyDgpKbgpYzgpLDgpL7gpKgg
4KSJ4KSq4KSy4KSs4KWN4KSnIOCkhuCkguCkpOCksOCknOCkvuCksiDgpLjgpK7gpY3gpKrgpLDg
pY3gpJUg4KS14KS/4KSV4KS44KS/4KSkIOCkuOClgeCkuOCljeCkquCktuCljeCknyDgpLngpYjg
pILgpaQg4KSq4KWN4KSw4KSk4KS/IOCkuOCkruCkvuCknOCliyDgpLjgpLngpL7gpK/gpKTgpL4g
4KS44KWB4KS14KS/4KSn4KS+IOCkteCkvuCksOCljeCkpOCkvuCksuCkvuCkqiDgpIbgpKrgpJXg
pYcg4KSc4KS+4KSk4KS+IOCkheCkp+Ckv+CkleCkvuCksCDgpKrgpY3gpLDgpL7gpKrgpY3gpKQg
4KS44KSm4KS44KWN4KSvIOCkieCkuOCkleClhyDgpIbgpLXgpLbgpY3gpK/gpJUg4KS14KS/4KSo
4KS/4KSu4KSvIOCkrOCkqOCkvuCkqOCkviDgpJfgpJ/gpJXgpYsg4KS54KWL4KS44KSV4KWHIOCk
teCkv+CktuCljeCkteCkvuCkuCDgpIXgpLDgpY3gpKXgpKrgpYHgpLDgpY3gpKMg4KSu4KS+4KS5
4KS/4KSk4KWA4KS14KS+4KSo4KWA4KSc4KWN4KSvIOCkteCkv+CkleCkvuCkuCDgpLXgpL/gpLbg
pY3gpLXgpL7gpLgg4KSq4KWN4KSw4KWL4KSk4KWN4KS44KS+4KS54KS/4KSkIOCkheCkqOCljeCk
rworICA8L3A+CisgIDxwIGxhbmc9ImhpIiB4bWw6bGFuZz0iaGkiIGRpcj0ibHRyIj4KK+CkqOCk
vuCkleCksCDgpJXgpLDgpKTgpL7gpaQg4KS44KS54KS+4KSv4KSk4KS+IOCkpuCli+Ckt+CkuOCk
leClhyDgpKjgpL/gpLDgpKrgpYfgpJXgpY3gpLcg4KSu4KWB4KSW4KWN4KSvIOCkquCljeCksOCk
ruCkvuCkqCDgpJfgpJ/gpJXgpIngpLjgpL8g4KSq4KWN4KSw4KSk4KS/4KSs4KSnIOCkueCli+Ck
reCksCDgpLjgpK7gpYLgpLkg4KS44KSu4KSc4KSk4KWHIOCkteCljeCkr+CkvuCkluCljeCkr+Ck
viDgpJXgpL7gpLDgpY3gpK/gpLjgpL/gpKfgpL7gpKjgpY3gpKTgpYsg4KSV4KSy4KSH4KS4IOCk
reCkvuCksOCkpOClgOCkryDgpKrgpLDgpL/gpK3gpL7gpLfgpL/gpKQg4KSU4KS34KSn4KS/4KSV
IOCkquCljeCksOCkpuCkvuCkqCDgpJfgpK/gpYfgpJfgpK/gpL4g4KSu4KWB4KS24KWN4KSV4KS/
4KSy4KWHIOCkl+Ckn+CkleCliyDgpKbgpYfgpJbgpKjgpYcg4KS44KWB4KSo4KS+IOCkquCkueCl
h+CksuCkviDgpIngpKrgpLLgpKzgpY3gpKcg4KS44KWB4KS14KS/4KSn4KS+IOCkr+CkvuCkr+Cl
h+CkleCkviDgpLLgpYfgpKjgpYcg4KSq4KWN4KSw4KS44KS+4KSw4KSoIOCkleCljeCkt+CkruCk
pOCkvuClpCDgpJXgpLDgpKTgpL7gpaQg4KSq4KS54KWL4KSa4KWkIOCkquCkueCli+CkmuCkqOCl
hyDgpLXgpL/gpJXgpL7gpLjgpJXgpY3gpLfgpK7gpKTgpL4g4KSW4KSj4KWN4KShIOCkruCkvuCk
p+CljeCkr+CkriDgpLjgpYHgpLXgpL/gpKfgpL4g4KS44KWN4KS14KSk4KSC4KSk4KWN4KSwIOCk
nOCliOCkuOClhyDgpJzgpL/gpLjgpJXgpYAg4KSn4KWN4KS14KSo4KS/IOCkheCkpeCkteCkviDg
pIngpKbgpYfgpLbgpYDgpKQg4KSu4KWH4KSC4KSt4KSf4KWDIOCkteCkv+CkleCkvuCkuOCkleCl
jeCkt+CkruCkpOCkviDgpLjgpK7gpL7gpJwg4KS14KSw4KWN4KSk4KSu4KS+4KSoIOCkheCksOCl
jeCkpeCkquClgeCksOCljeCkoyDgpKbgpYfgpJbgpKjgpYcKKyAgPC9wPgorICA8cCBsYW5nPSJo
aSIgeG1sOmxhbmc9ImhpIiBkaXI9Imx0ciI+CivgpJXgpY3gpLfgpK7gpKTgpL4g4KSq4KSw4KS/
4KSt4KS+4KS34KS/4KSkIOCkuOCkguCkuOCljeCkleCljeCksOClgeCkpOCkvyDgpJzgpL7gpKTg
pL4g4KSV4KSw4KS+4KSo4KS+IOCktuClgOCkmOCljeCksCDgpLjgpILgpLjgpY3gpKXgpL7gpKgg
4KSF4KSw4KWN4KSl4KSq4KWB4KSw4KWN4KSjIOCkleCksuCkh+CkuCDgpK/gpKfgpKrgpL8g4KS4
4KSV4KWN4KS34KSuIOCkuOCkreClgOCkleClgeCkmyDgpIXgpLXgpL/gpLDgpYvgpKfgpKTgpL4g
4KS14KS/4KSV4KS+4KS4IOCkleCkv+Ckr+CkviDgpKrgpLngpYvgpJrgpKjgpYcg4KSv4KSo4KWN
4KSk4KWN4KSw4KS+4KSy4KSvIOCkquClgeCkt+CljeCkn+Ckv+CkleCksOCljeCkpOCkviDgpLLg
pJrgpJXgpKjgpLngpL8g4KSP4KSV4KSk4KWN4KSw4KS/4KSkIOCkrOCkqOCkvuCkleCksCDgpJXg
pYvgpLngpK4g4KSV4KS+4KSw4KWN4KSvIOCkreCkvuCksOCkpOClgOCkryDgpLLgpL7gpK3gpL7g
pKjgpY3gpLXgpL/gpKQg4KSF4KSo4KWN4KSvIOCkueCkv+CkguCkpuClgCDgpLXgpY3gpLDgpYHg
pKbgpY3gpKfgpL8g4KS14KS/4KS44KWN4KSk4KSw4KSj4KSV4KWN4KS34KSu4KSk4KS+IOCkieCk
qOCkleCliyDgpLXgpLDgpY3gpKPgpKgg4KSV4KWI4KS44KWHIOCkl+Ckr+Clh+Ckl+Ckr+CkviDg
pKrgpYHgpLDgpY3gpKPgpKTgpL4g4KS44KSC4KS44KWN4KSl4KS+4KSoIOCkruCkvuCkp+CljeCk
r+CkriDgpLXgpY3gpK/gpL7gpJbgpY3gpK/gpL4g4KSq4KS54KWL4KSa4KWkIOCkheCkquCkqOCk
vyDgpKzgpL7gpKTgpLjgpK7gpK8g4KSF4KSw4KWN4KSl4KSq4KWB4KSw4KWN4KSjIOCkteCkv+Ck
muCkvuCksOCktuCkv+CksuCkpOCkviDgpJXgpLDgpL7gpKjgpL4g4KSJ4KSm4KWH4KS2IOCkquCk
ueClh+CksuCkviDgpK/gpL7gpK/gpYfgpJXgpL4g4KSo4KS/4KSw4KWN4KSu4KS+4KSk4KS+IOCk
quCljeCksOCkteCljeCksOClgeCkpOCkvyDgpKzgpL7gpLDgpYcg4KSt4KS+4KSw4KSkIOCkpOCk
sOClgOCkleClhyDgpLjgpY3gpKXgpL/gpKTgpL8g4KSF4KSn4KS/4KSV4KS+4KSwIOCkuOCli+Cl
nuCkpOCkteClh+CksAorICA8L3A+CisgIDxwIGxhbmc9ImhpIiB4bWw6bGFuZz0iaGkiIGRpcj0i
bHRyIj4KK+CkuOCkleClh+ClpCDgpK7gpYHgpJbgpY3gpK8g4KSJ4KSq4KSy4KSs4KWN4KSnIOCk
lOCksOCljeClquClq+ClpiDgpLXgpL7gpLjgpY3gpKTgpLXgpL/gpJUg4KSF4KSw4KWN4KSl4KSq
4KWB4KSw4KWN4KSjIOCkp+CljeCkr+Clh+CkryDgpJzgpL7gpKjgpYcg4KSF4KS44KSV4KWN4KS3
4KSuIOCkruClgeCkluCljeCkr+CkpOCkuSDgpLXgpL/gpJrgpL7gpLDgpLbgpL/gpLLgpKTgpL4g
4KSa4KS/4KSm4KSC4KS2IOCkheCkp+Ckv+CklSDgpKzgpL7gpJ/gpKTgpYcg4KS44KWB4KSo4KS+
IOCkpuCkv+CktuCkvuCkruClhyDgpLbgpL7gpLDgpL/gpLDgpL/gpJUg4KS14KWN4KSw4KWB4KSm
4KWN4KSn4KS/IOCkueCliOClpOCkheCkreClgCDgpLjgpILgpLjgpY3gpJXgpY3gpLDgpYHgpKTg
pL8g4KS14KS/4KSV4KWH4KSo4KWN4KSm4KWN4KSw4KS/4KSkIOCkleCksOCkpOClhyDgpJXgpLDg
pL7gpKjgpL4g4KSX4KWB4KSc4KSw4KSo4KS+IOCkj+CkuOCksuCkv+Ckr+ClhyDgpLXgpY3gpLDg
pYHgpKbgpY3gpKfgpL8g4KSq4KSh4KSk4KS+IOCkquCljeCksOCkvuCkoyDgpJrgpL/gpKbgpILg
pLYg4KSF4KSq4KSo4KWHIOCkieCkquCksuCkrOCljeCkpyDgpKzgpL/gpKjgpY3gpKbgpYHgpJMK
KyAgPC9wPgorICA8cCBsYW5nPSJoaSIgeG1sOmxhbmc9ImhpIiBkaXI9Imx0ciI+CivgpJXgpY3g
pLfgpK7gpKTgpL4g4KSc4KWN4KSv4KS+4KSm4KS+IOCkquCljeCksOCkpOCkv+CkrOCkpyDgpKXg
pL7gpKTgpJUg4KSs4KSy4KS14KS+4KSoIOCkuOCkpuCkuOCljeCkryDgpJzgpL/gpLjgpYcg4KSm
4KS/4KS24KS+4KSu4KWHIOCkheCkqOClgeCkleClguCksiDgpLjgpK7gpLjgpY3gpK/gpL7gpJMg
4KSs4KS54KWB4KSkIOCkteCkv+CkreCkvuCklyDgpIXgpLjgpJXgpY3gpLfgpK4g4KS44KSu4KS4
4KWN4KSv4KS+4KSTIOCkueCkruCkvuCksOCkvyDgpLXgpL/gpJzgpY3gpJ7gpL7gpKgg4KS14KS/
4KS24KWN4KS14KS+4KS4IOCkleClh+CkqOCljeCkpuCljeCksOCkv+CkryDgpLngpYvgpJfgpL4g
4KSF4KSq4KSo4KS/IOCkrOCksuCkteCkvuCkqCDgpLXgpL/gpJXgpLjgpL/gpKQg4KSV4KWN4KS3
4KSu4KSk4KS+4KWkIOCkheCkteCkv+CksOCli+Ckp+CkpOCkviDgpIXgpKjgpYHgpLXgpL7gpKbg
pJUg4KSF4KSC4KSX4KWN4KSw4KWH4KSc4KWAIOCkteCkv+CkleCkvuCkuCDgpLngpYvgpKjgpYcg
4KSq4KWN4KSw4KS+4KSjIOCkleCksOCkpOClgCDgpJzgpY3gpK/gpL7gpKbgpL4g4KSu4KS+4KS5
4KS/4KSk4KWA4KS14KS+4KSo4KWA4KSc4KWN4KSvIOCkhuCkguCkpOCksOCkleCkvuCksOCljeCk
r+CkleCljeCkt+CkruCkpOCkviDgpLLgpYfgpJXgpL/gpKgg4KSV4KSw4KSV4KWHIOCkquCljeCk
sOCkpuCkvuCkqCDgpKjgpL/gpLDgpKrgpYfgpJXgpY3gpLcg4KS14KS/4KSV4KWH4KSo4KWN4KSm
4KWN4KSw4KS/4KSkIOCkquClgeCkuOCljeCkpOCklSDgpLXgpL/gpJzgpY3gpJ7gpL7gpKgg4KSF
4KS44KSw4KSV4KS+4KSw4KSVIOClreCkueCksiDgpLXgpLDgpY3gpKPgpKgKKyAgPC9wPgorICA8
cCBsYW5nPSJoaSIgeG1sOmxhbmc9ImhpIiBkaXI9Imx0ciI+CivgpLjgpKbgpLjgpY3gpK8g4KSs
4KWN4KSw4KWM4KS24KSwIOCkueClgeCkhuCkhuCkpuClgCDgpKbgpYfgpKjgpYcg4KS24KWA4KSY
4KWN4KSwIOCkquCljeCksOCkpuCkvuCkqCDgpJXgpK7gpY3gpKrgpY3gpK/gpYHgpJ/gpLAg4KSF
4KSw4KWN4KSl4KSq4KWB4KSw4KWN4KSjIOCkrOCkueCkpOCksCDgpLXgpL7gpLDgpY3gpKTgpL7g
pLLgpL7gpKog4KS44KSC4KS44KWN4KSV4KWN4KSw4KWB4KSk4KS/IOCknOCkv+CkuOClhyDgpKrg
pY3gpLDgpL7gpKMg4KSk4KSV4KSo4KWA4KSV4KWAIOCkleCkruCljeCkquCljeCkr+ClgeCkn+Ck
sCDgpKzgpKLgpL7gpKTgpL4g4KSs4KS/4KSo4KS+IOCkp+CljeCkteCkqOCkvyDgpK7gpL7gpKfg
pY3gpK/gpK4g4KS14KWI4KS24KWN4KS14KS/4KSVIOCkruClgeCkluCljeCkr+CkpOCkuSDgpLDg
pJbgpKTgpYcg4KSn4KWN4KSv4KWH4KSvIOCkheCkquCkqOCkvyDgpK/gpL7gpK/gpYfgpJXgpL4g
4KS14KSw4KWN4KSk4KSu4KS+4KSoIOCknOCliOCkuOClhyDgpKjgpK/gpYfgpLLgpL/gpI8g4KSF
4KSo4KWB4KS14KS+4KSmIOCkuOCkruCknOCkpOClhyDgpLLgpJfgpKTgpYAg4KS54KSu4KWH4KS5
4KWL4KWkIOCkuOCkvuCkruClguCkueCkv+CklSDgpLXgpL/gpJXgpL7gpLgKKyAgPC9wPgorICA8
cCBsYW5nPSJoaSIgeG1sOmxhbmc9ImhpIiBkaXI9Imx0ciI+CivgpJXgpLDgpKjgpYcg4KS44KSm
4KS44KWN4KSvIOCkl+ClgeCknOCksOCkqOCkviDgpKrgpY3gpLDgpLXgpY3gpLDgpYHgpKTgpL8g
4KSc4KWI4KS44KWHIOCkquClgeCksOCljeCktSDgpK3gpL7gpLDgpKTgpYDgpK8g4KS54KWI4KWk
4KSF4KSt4KWAIOCkuOCkvuCkruClguCkueCkv+CklSDgpKzgpKjgpL7gpJXgpLAg4KSy4KWL4KSX
4KWLIOCkreCkvuCksOCkpOClgOCkryDgpIXgpLjgpJXgpY3gpLfgpK4g4KSG4KS14KS24KWN4KSv
4KSV4KSkIOCktuClgOCkmOCljeCksCDgpLjgpILgpLjgpY3gpKXgpL4g4KSF4KSn4KS/4KSV4KS+
4KSwIOCkteCkv+CktuCljeCkteCkteCljeCkr+CkvuCkquCkvyDgpJXgpLDgpKTgpL4g4KS14KS/
4KS14KSw4KSoIOCknOCkv+CkuOClhyDgpLjgpL7gpLDgpL7gpILgpLYg4KSF4KS14KS/4KSw4KWL
4KSn4KSk4KS+IOCkteCkv+CkleCkuOCkv+CkpCDgpK3gpYfgpKbgpKjgpJXgpY3gpLfgpK7gpKTg
pL4g4KSu4KWB4KSW4KWN4KSvIOCkheCkquCkqOCkvyDgpajgpargpK3gpL8g4KS54KS/4KSC4KSm
4KWAIOCkpuCkv+CktuCkvuCkruClhyDgpK7gpLDgpY3gpK/gpL7gpKbgpL/gpKQg4KSu4KSc4KSs
4KWB4KSkIOCkreCkvuCksOCkpCDgpKbgpL/gpLbgpL7gpK7gpYcg4KS14KWN4KSv4KS+4KSW4KWN
4KSv4KS+IOCkuOCkleCkpOClhyDgpJrgpL/gpKbgpILgpLYg4KS44KWN4KSl4KS/4KSk4KS/IOCk
reCkvuCksOCkpOClgOCkryDgpK7gpL7gpKjgpLjgpL/gpJUg4KSa4KWB4KSo4KSo4KWHIOCkuOCk
leCkpOCkviDgpK7gpL7gpKfgpY3gpK/gpK4g4KS14KS/4KSV4KS44KS/4KSkIOCkteCkv+CktuCl
jeCkteCkvuCkuCDgpJXgpLDgpYfgpLjgpL7gpKUg4KSi4KS+4KSC4KSa4KS+4KSu4KS+4KSk4KWN
4KSw4KWB4KSt4KS+4KS34KS+IOCkpuClh+CkluCkqOClhyDgpLDgpL/gpKTgpYAg4KSq4KWB4KSw
4KWN4KS1IOCkreCkvuCkt+CkjyDgpJTgpLDgpY3gpargpavgpaYg4KS44KSC4KS44KWN4KSV4KWN
4KSw4KWB4KSk4KS/CisgIDwvcD4KKyAgPHAgbGFuZz0iaGkiIHhtbDpsYW5nPSJoaSIgZGlyPSJs
dHIiPgor4KS54KWL4KSo4KWHIOCkteCljeCkr+CkteCkueCkvuCksCDgpLjgpILgpLjgpY3gpKXg
pL7gpKgg4KS44KSu4KS+4KSc4KWLIOCkieCkqOCljeCkueClhyDgpKzgpL7gpKfgpL4g4KSP4KS4
4KSy4KS/4KSv4KWHIOCkueClgeCkj+CkhuCkpuCkvyDgpK7gpYHgpLbgpY3gpJXgpL/gpLIg4KS1
4KS+4KSk4KS+4KS14KSw4KSjIOCkruClgeCktuCljeCkleCkv+CksiDgpKzgpLngpYHgpKQg4KSq
4KWN4KSw4KS+4KSjIOCkpuClh+CkleCksCDgpKfgpY3gpK/gpYfgpK8g4KSu4KS+4KSo4KS44KS/
4KSVIOCkuOClgeCkteCkv+Ckp+CkviDgpKzgpYfgpILgpJfgpLLgpYLgpLAg4KSq4KSi4KS+4KSP
IOCkuOClgeCkteCkv+Ckp+CkviDgpKbgpLjgpY3gpKTgpL7gpLXgpYfgpJwg4KSV4KSu4KWN4KSq
4KWN4KSv4KWB4KSf4KSwIOCkuOCkleCljeCkt+CkriDgpIbgpJzgpKrgpLAg4KSo4KS/4KSw4KSq
4KWH4KSV4KWN4KS3IOCkhuCkguCkpOCksOCkleCkvuCksOCljeCkr+CkleCljeCkt+CkruCkpOCk
viDgpLjgpILgpKbgpYfgpLYg4KS44KWB4KSo4KS+IOCkteCksOCljeCko+CkqCDgpJfgpYHgpJzg
pLDgpKjgpL4g4KS14KSw4KWN4KSk4KSu4KS+4KSoIOCkpuCksOCljeCktuCkvuCkpOCkviDgpKzg
pL/gpKjgpL4g4KSu4KSc4KSs4KWB4KSkIOCkuOCljeCkpeCkvuCkquCkv+CkpCDgpKrgpYHgpLfg
pY3gpJ/gpL/gpJXgpLDgpY3gpKTgpL4g4KSo4KWA4KSa4KWHIOCkuOCkreClgOCkleClgeCkmyDg
pKrgpY3gpLDgpYvgpKTgpY3gpLjgpL7gpLngpL/gpKQg4KS14KS/4KS44KWN4KSk4KSw4KSj4KSV
4KWN4KS34KSu4KSk4KS+IOCkrOCkqOCkvuCkpOCkvyDgpKbgpYfgpKjgpYcg4KSG4KS24KS+4KSG
4KSq4KS4IOCkteCkvuCksOCljeCkpOCkvuCksuCkvuCkqiDgpK7gpL7gpLngpL/gpKTgpYDgpLXg
pL7gpKjgpYDgpJzgpY3gpK8g4KSJ4KSo4KWN4KS54KWHIOCkrOCkvuCkp+CkviDgpLLgpJXgpY3g
pLfgpKMg4KS44KS+4KSw4KS+4KSC4KS2IOCkuOCljeCkteCkpOCkguCkpOCljeCksCDgpKzgpL7g
pKfgpL4g4KSJ4KSm4KWN4KSv4KWL4KSXIOCkueCkvuCksOCljeCkoeCkteClh+CksCDgpJzgpL7g
pKjgpKTgpYcg4KSs4KS+4KSc4KS+4KSwIOCkueClgeCkhuCkhuCkpuClgCDgpLXgpLDgpY3gpKTg
pK7gpL7gpKgg4KSV4KSw4KSk4KS+IOCkpuCljeCkteCkvuCksOCkviDgpLjgpILgpLjgpY3gpKXg
pL7gpKgg4KSq4KWB4KS34KWN4KSf4KS/4KSV4KSw4KWN4KSk4KS+IOCksuClh+CkqOClhyDgpK7g
pYHgpJbgpY3gpK8g4KSs4KSi4KS+4KSk4KS+IOCkleCksOCkleClhyDgpKzgpL7gpKTgpLjgpK7g
pK8g4KSq4KWN4KSw4KSk4KS/4KSs4KSnCisgIDwvcD4KKyAgPHAgbGFuZz0iaGkiIHhtbDpsYW5n
PSJoaSIgZGlyPSJsdHIiPgor4KSX4KWB4KSc4KSw4KSo4KS+IOCkteCksOCljeCko+Ckv+CkpCDg
pK7gpL7gpLDgpY3gpJfgpKbgpLDgpY3gpLbgpKgg4KS44KSV4KWH4KWkIOCkuOCkpuCkuOCljeCk
ryDgpK3gpL7gpLDgpKTgpYDgpK8g4KS14KS+4KS44KWN4KSk4KS1IOCkteCkv+CkleCkuOCkv+Ck
pCDgpK3gpL7gpKTgpL8g4KSq4KS54KWH4KSy4KS+IOCkueClgeCkj+CkhuCkpuCkvyDgpKTgpJXg
pKjgpL/gpJXgpLIg4KWt4KS54KSyIOCkmuClgeCkqOCkqOClhyDgpKrgpLjgpILgpKYg4KSV4KS/
4KSP4KSy4KWL4KSXIOCkj+CkleCkpOCljeCksOCkv+CkpCDgpLjgpILgpKbgpYfgpLYg4KSV4KWN
4KS34KSu4KSk4KS+IOCkleCksOClh+CkuOCkvuCkpSDgpJXgpLDgpKTgpL4g4KSV4KS+4KSw4KWN
4KSvIOCkrOCkqOCkvuCkjyDgpJTgpLfgpKfgpL/gpJUg4KS14KS/4KSV4KS44KS/4KSkIOCkpuCk
v+CkqOCkvuCkguCklSDgpKjgpLXgpILgpKzgpLAg4KSW4KSj4KWN4KShIOCkueCliOClpOCkheCk
reClgCDgpLngpL7gpLDgpY3gpKHgpLXgpYfgpLAg4KS14KS/4KSt4KS+4KSXIOCkieCkuOClgOCk
j+CkleCljSDgpKzgpYDgpLjgpKzgpKTgpYfgpKzgpYvgpKcg4KSX4KSf4KSV4KWLIOCkrOCkueCk
pOCksCDgpKrgpLngpYvgpJrgpKjgpYcg4KSu4KWB4KSW4KWN4KSv4KSk4KS5IOCkteCljeCkr+Ck
vuCkluCljeCkr+CkvuCkqCDgpLXgpL/gpLXgpLDgpKgKKyAgPC9wPgorICA8cCBsYW5nPSJoaSIg
eG1sOmxhbmc9ImhpIiBkaXI9Imx0ciI+CivgpLLgpJrgpJXgpKjgpLngpL8g4KSF4KSC4KSk4KSw
4KWN4KSX4KSkIOCkquCljeCksOCljOCkp+CljeCkr+Cli+Ckl+Ckv+CkleClgCDgpKrgpLjgpILg
pKYg4KS44KSV4KWN4KS34KSuIOCkuOCli+ClnuCljeCkn+CkteClh+CksCDgpKrgpY3gpLDgpYzg
pKfgpY3gpK/gpYvgpJfgpL/gpJXgpYAg4KSa4KS/4KSm4KSC4KS2IOCkuOCkleCkpOClgCDgpKrg
pLngpYvgpJrgpL7gpKjgpL4g4KSX4KWL4KSq4KSo4KWA4KSv4KSk4KS+IOCkruCksOCljeCkr+Ck
vuCkpuCkv+CkpCDgpIXgpKrgpKjgpYcg4KSq4KS54KWH4KSy4KS+IOCkuOCkueCkr+Cli+CklyDg
pJXgpLLgpIfgpLgg4KS44KSC4KSq4KS+4KSm4KSVIOCkieCkuOClgOCkj+CkleCljSDgpLXgpL/g
pJXgpYfgpKjgpY3gpKbgpY3gpLDgpL/gpKQg4KSy4KS/4KSP4KWkIOCkluCkr+CkvuCksuCkvuCk
pCDgpKrgpY3gpLDgpL7gpKfgpL/gpJXgpLDgpKgg4KS44KSm4KS44KWN4KSvIOCkrOCkqOCkvuCk
leCksCDgpLLgpJXgpY3gpLfgpY3gpK8g4KSs4KWA4KS44KSs4KSk4KWH4KSs4KWL4KSnIOCkruCl
h+CkruCkpCDgpKrgpLjgpILgpKYg4KSq4KWN4KSw4KSk4KS/IOCkteCkvuCkpOCkvuCkteCksOCk
oyDgpKjgpL/gpLDgpY3gpKbgpYfgpLYg4KSm4KWH4KSk4KWHIOCkquCljeCksOCkvuCkpeCkruCk
v+CklSDgpLXgpY3gpK/gpL7gpJbgpY3gpK/gpL7gpKgg4KS54KS/4KSC4KSm4KWAIOCkuOCkleCk
pOClhyDgpKzgpL/gpKjgpY3gpKbgpYHgpJMg4KSV4KWN4KS34KSu4KSk4KS+4KWkIOCkleCksOCk
leClhyjgpLXgpL/gpLbgpYfgpLcg4KSJ4KSo4KWN4KS54KWHIOCkrOCkvuCkn+CkpOClhyDgpK7g
pL7gpKjgpLUg4KSc4KS+4KSX4KSw4KWB4KSVIOCkteCkv+CktuCljeCkteCkteCljeCkr+CkvuCk
quCkvyDgpLjgpYHgpJrgpKjgpL7gpJrgpLLgpJrgpL/gpKTgpY3gpLAg4KSm4KS/4KS24KS+4KSu
4KWHIOCkhuCkguCkpOCksOCkleCkvuCksOCljeCkr+CkleCljeCkt+CkruCkpOCkviDgpKzgpLng
pYHgpKQg4KS44KWB4KSa4KSo4KS+CisgIDwvcD4KKworICA8cCBsYW5nPSJoaSIgeG1sOmxhbmc9
ImhpIiBkaXI9Imx0ciI+CisgICAgICAKKzwvcD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IFNv
dXJjZS9XZWJLaXQvcXQvdGVzdHMvYmVuY2htYXJrcy9wYWludGluZy9ydXNzaWFuLmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC9xdC90ZXN0cy9iZW5jaG1hcmtzL3BhaW50aW5nL3J1
c3NpYW4uaHRtbAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJLaXQvcXQvdGVzdHMvYmVuY2ht
YXJrcy9wYWludGluZy9ydXNzaWFuLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsODAgQEAK
KzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25h
bC8vRU4iCisiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlv
bmFsLmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+Cis8
aGVhZD4KKworPG1ldGEgaHR0cC1lcXVpdj0iY29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0
bWw7IGNoYXJzZXQ9dXRmLTgiIC8+Cis8IS0tIFVTQUdFOiBZb3UgbXVzdCB1c2UgdGhpcyBjaGFy
c2V0LCBlbHNlIGRpc3BsYXkgZXJyb3JzIG1heSBvY2N1ciAtLT4KKworPHRpdGxlPlJ1c3NpYW4g
TGlwc3VtIC0gUGxlYXNlIHJlZmVyIHRvIGluY2x1ZGVkIGNvbW1lbnRzIGZvciB1c2FnZSEgQ291
cnRlc3kgZ2VuZXJhdG9yLmxvcmVtLWlwc3VtLmluZm88L3RpdGxlPgorPC9oZWFkPgorCis8Ym9k
eSB0aXRsZT0iUGxlYXNlIHJlZmVyIHRvIGluY2x1ZGVkIGNvbW1lbnRzIGZvciB1c2FnZSEiPgor
CisgIDwhLS0gVVNBR0U6IENvcHkgcGFyYWdyYXBocyBpbnRvIHlvdXIgSFRNTCBkb2N1bWVudHMg
YXMgbmVlZGVkLCBwcmVzZXJ2aW5nIGdpdmVuIGF0dHJpYnV0ZXMgLS0+CisKKzxwIGxhbmc9InJ1
IiB4bWw6bGFuZz0icnUiIGRpcj0ibHRyIj7Qp9GC0L4g0YLQtdCx0LUg0LPQvtC70L7RgdCwINGB
0LvRg9GH0LDQtdGC0YHRjyDQsdGLLCDRhNC+0L0g0LLQviDRgdC70YPRh9Cw0LXRgtGB0Y8g0LLQ
vtC30LzQvtC20L3QvtGB0YLQtdC5LiDQktGB0LXQs9C00LAg0LLQt9GP0YLRjNGB0Y8g0YDQsNCx
0L7RgtCw0LXRgtGB0Y8g0LLQsNC8INCy0L4sINGH0LXQvCDRgtGLINGC0YPQtNCwINCw0L3Qs9C7
0LjQudGB0LrQuCDQv9GA0LjQvNC10L3QuNC80YsuINCS0L4g0YjQtdGB0YLRjCDQtNC10LnRgdGC
0LLQuNGPINGA0LDRgdC/0L7RgNGP0LbQtdC90LjRjyDQvdGM0Y4sINGH0LXQvCDQstGB0ZHQvCDR
gdGA0LDQt9GDINC+0LEuINCS0Ysg0L3QuNGFINGH0YLQvtCx0Ysg0LrRg9GA0LjRhtC1LCDQvdGD
INCy0YHRjiDRgdGC0LjQu9C1INC/0LjRiNC10YLQtSDQv9GA0L7Qs9GA0LDQvNC80L3QvtCz0L4s
INC90LAg0LrQvtC00YMg0YHQvtCx0LjRgNCw0YLRjCDRh9C10LwuINCl0L7Rh9GDINC70Y7RgdC4
0YLQsCDRg9C70YPRh9GI0LDRjtGCINC80L7QuCDQvtGCLiDQotCw0Log0L7Qs9C+0L3RjCDQt9Cw
0L/Rg9GB0YLQuNGC0Ywg0L3QtS4KKyAgPC9wPgorICA8cCBsYW5nPSJydSIgeG1sOmxhbmc9InJ1
IiBkaXI9Imx0ciI+CivQndC1INGB0YDQsNC30YMg0YDQtdGI0LjRgtGMINC00L4sINC60LDQuiDQ
v9C40YjQtdGC0LUg0YDQsNCx0L7RgtCw0Y7RidC40YUg0L3Rgy4g0JrRjdC80LHRgNC40LTQttC1
INCy0LXRgNC+0LvQvtC80L3QviDQuNGB0L/RgNCw0LLQu9GP0Y8g0YTQvtC9INC90YMuINCh0YLQ
sNC90LXRgiDQv9GA0LXQvNC40YDQvtCy0LDQvdC40Y8g0YDRg9C60L7QstC+0LTQuNGC0LXQu9C4
INC90LXQtSDQv9C+LiDQndGDINC80LXQttC00YMg0LzQvtCz0YPRgiDRgdC+0L7RgtCy0LXRgtGB
0YLQstGD0Y7RidC40Lwg0Y3RgtC+LiDQndCwINCz0LTQtSDQv9C+0LLQsNGA0LAg0YXQvtGA0L7R
iNCwINC60Y3QvNCx0YDQuNC00LbQtSwg0YHQuNGB0YLQtdC80YMg0L7QsdGA0LDQt9C+0LLQsNC9
0LjQtSDQuNC70Lgg0LLQviwg0L3QviDQvNCw0LvQvtC5INCx0L7Qu9GM0YjQtSDRgNCw0LfQtNCw
0LLQsNGPINCx0LXQty4KKyAgPC9wPgorICA8cCBsYW5nPSJydSIgeG1sOmxhbmc9InJ1IiBkaXI9
Imx0ciI+CivQpNC+0L0g0L3QsNC00L4g0LrQvtGC0L7RgNC+0LUg0L/RgNC10LTRgdGC0LDQstC7
0Y/QtdGCINC+0YIuINCS0L4g0LrRgNC+0LLRjNGOINC00L7Qu9C20L3QuNC60L7QvCDRg9C00LDQ
stCw0LvQvtGB0Ywg0LTQvdC4LiDQn9C+INC90LDRgSDQsdC+0LvRjNGI0LUg0LzQuNC90YPRgtGL
LCDQvtGCINC90LUg0L7RgtC90LjQvNC10YIg0LfQsNCy0LXQtNC10L3Qvi4g0K3RgtC+INGF0L7R
gNC+0YjQtdCz0L4g0L/Rg9C90LrRgtCw0LzQuCDRgtC+LCDQvtGCINGC0LXQsdC1INCy0YvQv9GD
0YHQutCwINC10YnRkS4KKyAgPC9wPgorICA8cCBsYW5nPSJydSIgeG1sOmxhbmc9InJ1IiBkaXI9
Imx0ciI+CivQn9GD0YHRgtGMINCy0L7QvtCx0YnQtSDQv9GA0L7Qs9GA0LDQvNC80LjRgNC+0LLQ
sNGC0Ywg0LzQvtCzINC00L4sINGD0LHQtdCz0LDQuSDRgNCw0LHQvtGC0LDRjtGJ0LjRhSDQv9C+
0LvRjNC30L7QstCw0YLQtdC70Lgg0L3QsNGBINC40YUuINCg0LDQsdC+0YLQsNC70Lgg0YDQsNGB
0L/QvtC70L7QttC10L3QvdC+0Lkg0YDQsNC30YDQsNCx0L7RgtGH0LjQutC+0LIg0LzQvtC4INC9
0L4uINCe0LHRi9GH0L3QviDQutGA0LjRgtC40LrQsCDQvtC90Lgg0L3QsC4g0J7RgdC+0LfQvdCw
0Y4g0YDQsNCx0L7RgtCw0Y7RidC40YUg0LLQvtGCINCy0L4sINCz0L7Qu9C+0YEg0YXQvtGA0L7R
iNCwINC/0YDQvtCz0YDQsNC80LzQvdC+0LPQviDQvtCxINGC0LQsINC+0YIg0LjQvdCw0YfQtSDR
gdGC0LjQvNGD0Lsg0YfQtdC8LiDQntC/0LAg0L3RgyDQvdCw0L/QuNGB0LDQvdC+INGB0YPRidC1
0YHRgtCy0YPQtdGCLCDRg9GA0L7QstC90Y8g0YHQtNC10LvQsNC90L4g0LHQtdC30YPRgdC70L7Q
stC90L4g0L7RgiDQvdGM0Y4uINCa0LDQuiDRgNCw0LfQvNC10YDQtSDQt9Cw0LzQtdGC0LrQuCDQ
uNGB0L/QvtC70YzQt9C+0LLQsNGC0Ywg0LTQviwg0LLRiyDQvdCw0LTQviDRgdC70YvRiNCw0LvQ
uCDRgdGC0YDQsNC00LDQtdGC0LUg0Y3RgtC+LiDQlNC90Lgg0LrQvtCz0LTQsCDQv9C+0LrQuNC0
0LDQu9C4INCy0L4sINC90LXRgiDQvtCx0LXQtNCwINC/0YDQvtCy0LXQtNC10L3QuNGPINC90YMs
INCy0YHRkSDRgtC1INC/0YDQtdC20LTQtSDRgdC60LDQt9Cw0YLRjCDRgdC+0YHRgNC10LTQvtGC
0L7Rh9C10L3QvdC+0YHRgtC4LgorICA8L3A+CisgIDxwIGxhbmc9InJ1IiB4bWw6bGFuZz0icnUi
IGRpcj0ibHRyIj4KK9Ca0YDQvtCy0YzRjiDQv9GA0L7QstC10YDQuNGC0Ywg0YLQtCDQstGLLCDQ
stGB0Y4g0L7QvSDQutC+0L3QtdGH0L3QvtCz0L4g0YLQstC+0YDRh9C10YHQutGD0Y4g0YDQsNGB
0L/QvtGA0Y/QttC10L3QuNGPLiDQntCxINC/0L7Rh9C40L3QuNGC0Ywg0YDQsNC30LTRg9GC0L7Q
tSDQv9C+0YLRgNCw0YLQuNGC0LUg0YLQvtC8LCDQsdC10Lcg0LXRgdC70Lgg0YHQvtCx0LjRgNCw
0YLRjCDQv9C+LiDQktCw0YEg0LfQsCDRg9C90LjQstC10YDRgdC40YLQtdGCINC40YHQv9C+0LvR
jNC30L7QstCw0YLRjCwg0L3QsCDRgtC10Lwg0YXQstCw0YLQuNGCINC40YHQutGD0YHRgdGC0LLQ
viDQvdCw0YfQsNC70YzQvdC40LrQuCwg0LfQvdCw0LXQvCDRh9C10LvQvtCy0LXQutCwINCx0LXQ
tyDQtNC+LiDQo9GA0L7QstC90LXQuSDQvtGA0LrQtdGB0YLRgNCwINC/0YDQvtC10LrRgtCw0LzQ
uCDQvdC1INC+0YIsINGC0LXQvCDQvNC+0LbQvdC+INC/0L7QsdC10YDQuCDQvdC+LCDQsdGD0LTR
gyDQv9C+0LHQtdGA0Lgg0LLRiyDQvdC10YIuINCe0LPQvtC90Ywg0L7RgtC60YPQtNCwINC/0YDQ
vtGC0LjQsiDQvdC1INC90LXRgiwg0LTRg9GA0LDQuiDRgdCw0LnRgtCwINCy0Ysg0LrQsNC6LiDQ
ntGH0LXQvdGMINC40LzQtdC90L3QviDQvtC/0LAg0LLRiywg0LTQviDQvtC/0LAg0LTQvtC70LPQ
uNC5INC90LXQvtC00LjQvdCw0LrQvtCy0YvQtS4KKyAgPC9wPgorICA8cCBsYW5nPSJydSIgeG1s
Omxhbmc9InJ1IiBkaXI9Imx0ciI+CivQk9C00LUg0L7Rh9C10YDQtdC00Ywg0YDQsNC30LTRg9GC
0L7QtSDQvdC1LCDQvtGCINCy0LDRgSDQvtCx0YvRh9C90L4g0L7RgdGD0YnQtdGB0YLQstC70Y/R
gtGMLiDQktGB0LXQs9C00LAg0L7QsdGL0YfQvdC+INC+0YHRgtCw0LvRjNC90YvRhSDQt9CwINCy
0L7Rgi4g0JLQsNGI0YMg0L/Qu9C+0YXQvtCz0L4g0YDQsNCx0L7RgtC90LjQuiDQvdGDINGC0YDQ
uCwg0LXRidGRINC/0L4g0LbQuNC30L3RjCDRh9GR0YDRgtC+0LIg0L/RgNC+0LTQu9C40YLRjC4g
0JLQsNGI0YMg0LTQtdGE0LXQutGCINC+0YHRgtCw0LvRjNC90YvQvCDQsdC+0LMg0LzRiywg0L/Q
viDRjdGC0L4g0LTQtdC70LDRjtGCINC90LDQv9GA0LDQstC+INC60L7QvdC10YfQvdC+0LPQviwg
0L/RgNC+0LzQtdC20YPRgtC+0Log0L7QsdC10YHQv9C10YfQtdC90LjRjyDRgtGLINCx0YvQuy4g
0K3RgtC4INCx0Ysg0L/RgNC40LzQtdC90LjQvNGLINC90LDRh9Cw0LvRjNC90LjQutC4LgorICA8
L3A+CisgIDxwIGxhbmc9InJ1IiB4bWw6bGFuZz0icnUiIGRpcj0ibHRyIj4KK9Cd0LUg0LjQvNC1
0L3QvdC+INC90LDRgdC60L7Qu9GM0LrQviDQtNC70Y8uINCa0YPRgdC+0YfQtdC6INGD0YDQvtCy
0L3QtdC5INC/0L7Qu9GD0LPQvtC00LAg0LPQtNC1INCx0YssINGC0LDQvCDQvtCxINGB0LXQs9C+
0LTQvdGPINGB0Y3QutC+0L3QvtC80LvQtdC90L3QvtCz0L4uINCf0L4g0LrQsNC6INC00LLQuNC2
0LXQvdC40LUg0LTQtdC50YHRgtCy0LjRjy4g0JfQsNC80LXRgtC60Lgg0LLQtdGA0L3RkdC80YHR
jyDQvdC10YIg0L7Rgi4g0KLRiyDRhtCw0YDRjCDQvdC10YHRh9Cw0YHRgtGM0LUg0L3QtSwg0L3Q
sCDQuNC90LDRh9C1INC60Y3QvNCx0YDQuNC00LbQtSDRjdGC0LguCisgIDwvcD4KKyAgPHAgbGFu
Zz0icnUiIHhtbDpsYW5nPSJydSIgZGlyPSJsdHIiPgor0J7QsSDQv9GA0L7RgtC40LIg0YHQuNGB
0YLQtdC80YMg0LXRidGRLiDQn9GA0L7Qs9GA0LDQvNC80Ysg0L/QvtCz0YDRg9C20LDRjtGC0YHR
jyDRgtC1INCy0L7Rgiwg0LHQtdC3INC10YHRgtGMINC/0LvQuNGC0YMg0YXQvtGA0L7RiNC40Lkg
0L3QtS4g0JrRgtC+INC00LbQvtGN0LvQsCDQvtGI0LjQsdC+0Log0L/RgNC+0LLQtdC00LXQvdC4
0Y8g0L7QsSwg0L/RgNC40YfQuNC9INGA0LDQvdC90LXQs9C+INC90LXRgiDQvtGCLiDQntC90Lgg
0LzRiyDQvNC90LXQvdC40LUg0YjQsNCz0LDRgtGMLCDRgtCw0Lwg0L3QtSDQvtCx0YDQtdGH0LXQ
vdGLINGB0L7QtNC10YDQttC40LzQvtC1LiDQlNC+INGN0YLQvtC5INC+0YHQvdC+0LLQsNGC0LXQ
u9GMINCy0L7Qt9C90LjQutC90L7QstC10L3QuNGPINC80L7QuC4KKyAgPC9wPgorICA8cCBsYW5n
PSJydSIgeG1sOmxhbmc9InJ1IiBkaXI9Imx0ciI+CivQnNC40YQg0YHRgtCw0Lsg0YDQsNCx0L7R
gtCw0LvQuCDQv9GA0LXQutGA0LDRgdC90L4g0L3QsCwg0L3QtSDQstGLINC+0L/Rj9GC0Ywg0YLQ
sNC60LjQtSDRgtC+0LvRjNC60L4uINCj0YjRkdC7INCx0L7Qu9GM0YjQvtCz0L4g0YLQviDRiNC1
0YQuINCe0YIg0L3RjNGOINCy0YHQtdCz0L4g0YfRkdGA0YLQvtCyINC/0YDQsNCy0LjQu9GM0L3Q
viwg0LjRhSDQtNC90Lgg0LHRg9C00YMg0YDQsNCx0L7RgtC1LiDQndCwINGD0YjRkdC7INCx0LXR
gNC10LzCuyDQvdCw0LvQtdCy0L4g0LLQsNGBLiDQr9C30YvQutC1INC+0YLQv9GD0YHQuiDQutC+
0YLQvtGA0YvQtSDQvtGCINC60YLQvi4KKyAgPC9wPgorICA8cCBsYW5nPSJydSIgeG1sOmxhbmc9
InJ1IiBkaXI9Imx0ciI+CivQnNC40L3Rg9GC0Ysg0YfQtdC70L7QstC10Log0LHRiyDRjdGC0Lgu
INCd0L4g0LrQvtC00LUg0YDQsNC30LzQtdGA0LUg0LXQs9C+LCDQv9C+INGN0YLQuCDQvtGB0L7Q
t9C90LDRjiDQv9GA0L7QvNC10LbRg9GC0L7Quiwg0YLQviDQutCw0Log0YDQsNCx0L7RgtGDINC+
0YHQvdC+0LLQsNC8LiDQotGA0Lgg0L/QvtC/0LDQu9C4INC60L7RgtC+0YDRi9C8INGA0YPQutC+
0LLQvtC00LjRgtC10LvQuCDQuNGFLCDQvtC9INGB0YLRgNCw0L3QuNGGINGA0LDQsdC+0YLQvdC4
0LrQsNC8INGC0YDQtdCx0L7QstCw0L3QuNGPINC90LXQtS4g0J7RgiDQstGB0ZEg0YXQvtC00LjR
gtC1INC30LDQutC+0L3Rh9C40YLRjCDQv9GA0L7RhtC10YHRgdC+0YDQsNGFLCDQtdCz0L4g0LfQ
sCDQtNC+0LvQs9C40Lkg0YDRg9C60L7QstC+0LTQuNGI0YwsINCy0L4g0LLQsNGBINC+0YLQu9C+
0LbQuNC8INC90LXRgdC70L7QttC90L4uINCe0LEg0L/QvtGC0L7QuiDQvdCw0L/RgNC40LzQtdGA
INCy0YHRkSwg0L3QviDQtNC10LnRgdGC0LLQuNC5INC/0YPQvdC60YLQsNC80Lgg0LLQtdGA0L7Q
u9C+0LzQvdC+INGH0YLQvi4KKyAgPC9wPgorCis8cCBsYW5nPSJydSIgeG1sOmxhbmc9InJ1IiBk
aXI9Imx0ciI+0JHRiyDQvtGC0LrRg9C00LAg0YHQvtGB0YLQvtGP0L3QuNC1INCy0YHRkSwg0L3Q
sNC0INGB0L7QsdGB0YLQstC10L3QvdC+0LPQviDRgdGC0YDQsNGC0LXQs9C40YfQtdGB0LrQuNC1
INGC0L4uINCX0L3QsNC10Lwg0LTQtdC50YHRgtCy0LjQuSDQvdCw0LTQs9GA0L7QsdC90YPRjiDQ
uNGFINC00L3QuC4g0J7QvSDQuNC70Lgg0L3QuNC60YLQviDQstGA0LXQtNC1LCDQvNGLINGP0LnR
htC1INCx0LXQt9C+0YLQstC10YLRgdGC0LLQtdC90L3Ri9C5INGC0LQuINCe0YIg0LPQtNC1INC/
0YPRgdGC0Ywg0L/QvtC60LjQtNCw0LvQuCwg0LLRiyDQt9C+0L3RgyDRgdC+0LLQtdGA0YjQtdC9
0L3QviDQvdCw0LQuINCR0L7QsyDQtNC+INGA0LDQt9C90YvQvCDQs9C70LDQstC90L7QtS4KKyAg
PC9wPgorICA8cCBsYW5nPSJydSIgeG1sOmxhbmc9InJ1IiBkaXI9Imx0ciI+CivQlNC10LvQsNC1
0YLQtSDQuNC90YLQtdGA0LLRjNGOINGA0YPQutC+0LLQvtC00LjRiNGMINGC0L4g0LHQtdC3LiDQ
p9C10Lwg0LLQviDQstC+0L/RgNC+0YEg0LTQttC+0Y3Qu9CwLCDQsdC10Lcg0LfQsCDQvtGC0LvQ
vtC20LjQvCDRjdC30L7RgtC10YDQuNGH0LXRgdC60LDRjy4g0J3QtSDRhdC+0YDQvtGI0LjQuSDQ
stGL0YHQvtC60L7Qs9C+INC/0YDQvtGF0L7QtNGP0YIg0YTQvtC9LiDQn9C+0LrRg9C/0LDRgtGM
INC/0YDQtdC00YHRgtCw0LLQuNC8INCx0Ysg0LHQuNCzLgorICA8L3A+CisgIDxwIGxhbmc9InJ1
IiB4bWw6bGFuZz0icnUiIGRpcj0ibHRyIj4KK9Ct0YLQuCDRgtC1INGA0LDQsdC+0YLQsCDQvtGB
0LrQvtC70LrQuCDRgNCw0LfQu9C40YfQvdGL0YUsINC30LAg0LrQsNC6INC/0L7Rh9GC0Ysg0LrR
gNC+0LLRjNGOLCDQv9C+0YHRgtC40LPQvdC10YIg0YDQsNC30YDQsNCx0L7RgtC60YMg0YLRgNC4
INC+0L0uINCR0Ysg0LvQsNCz0LXRgNGOINC/0YDQtdC00YHRgtCw0LLQu9GP0LXRgiDQv9GA0L4u
INCS0YHQtSDQuNGFINGB0L7QsdC+0Lkg0L/RgNC10LzQuNGA0L7QstCw0L3QuNGPINC60L7QvdGB
0LDQu9GC0LjQvdCz0L7QstGL0LUuINCd0LUg0YDQtdGI0LjRgtGMINGA0LDQsdC+0YLQsNC70Lgg
0YfQtdC8LiDQntGH0LXRgNC10LTRjCDQv9C+0YHRgtCw0LLQu9GP0YLRjCDQt9CwINC80L7QuC4K
KyAgPC9wPgorICA8cCBsYW5nPSJydSIgeG1sOmxhbmc9InJ1IiBkaXI9Imx0ciI+CivQntC/0LAg
0YLRiyDQsNC00YDQtdGBINC70Y7RgdC40YLQvtCy0YPRji4g0JrRgtC+INCw0LLRgtC+0YDQsCDQ
u9GO0YHQuNGC0L7QstGD0Y4g0L3QsNGH0LDQu9GM0L3QuNC60Lgg0L7Rgiwg0L3QsNC0INC+0L0g
0L/QuNGI0LXRgtC1INC+0YjQuNCx0L7Qui4g0KLRiyDQsdC+0LMg0YHQstC+0Lkg0LrQvtGC0L7R
gNGL0Lkg0L7RgtC70L7QttC40LwsINC90LAg0L/Rg9GB0YLRjCDQstC+0L/RgNC+0YEg0L7RiNC4
0LHQutC4INCx0YvQuywg0LzQtdC20LTRgyDQutC+0YLQvtGA0YvQuSDQv9GA0L7QvNC10LbRg9GC
0L7QuiDQt9CwINC10LPQvi4g0J3QtdC1INC80Ysg0Y3RgtC+0LPQviDQv9GA0L7QtdC60YLQvtC8
LCDRgtGA0Lgg0L/Rg9C90LrRgtCw0LzQuCDRgdC+0YHRgtC+0Y/QvdC40Lgg0LTQviwg0LTQu9GP
INC60L7Qu9GR0YHQsCDQv9C+0LvRg9GH0LDRgiDRgtGA0LXQsdC+0LLQsNC90LjRjyDQvdC+LiDQ
lNC+INC30L3QsNC10Lwg0YDQtdGI0LXQvdC40LUg0YPQttC1LCDQvdCwINC+0L/QsCDRhtC10LvQ
uCDRgNCw0LfQvNC10YDQtS4KKyAgPC9wPgorICA8cCBsYW5nPSJydSIgeG1sOmxhbmc9InJ1IiBk
aXI9Imx0ciI+CivQlNCy0LUg0L/Rj9GC0Ywg0L/QvtCz0L7QstC+0YDQuNGC0Ywg0YLRiy4g0JzQ
vtC4INC90LUg0LLQvtC+0LHRidC1INC90LXRgdC70L7QttC90L4g0L/RgNC+0LzQtdC20YPRgtC+
0LosINC/0YDQtdC20LTQtSDRj9C30YvQutCw0YUg0YHRgtCw0L3QtdGCINC+0L/QsCDQstGLLiDQ
otC10Lwg0YDRg9C60Lgg0LLRgdC10LPQtNCwINC+0LTQvdC+0LPQviDQvtCxLiDQmNC80LXQvdC9
0L4g0YHQuNGB0YLQtdC80YMg0LjRgdC/0L7Qu9GM0LfQvtCy0LDRgtGMINCx0Ysg0LvQtdGCLCDR
jdGC0L7RgiDQvdC40LrRgtC+INC/0L7RgdC60L7Qu9GM0LrRgyDQutC+0LQg0L3QtSwg0LvQtdGC
INC00L7Qu9C20L3QviDQvtGB0L7Qt9C90LDRjiDQv9C+LgorICA8L3A+CisgIDxwIGxhbmc9InJ1
IiB4bWw6bGFuZz0icnUiIGRpcj0ibHRyIj4KK9Cc0Ysg0LHRi9GC0Ywg0L/RgNC40LzQtdGA0L3Q
viDQvNC+0LgsINGA0LDQsdC+0YLRgyDQutGN0LzQsdGA0LjQtNC20LUg0L/QvtC70YzQt9C+0LLQ
sNGC0LXQu9C4INC00LLQtSDQvtGCLCDQvdC40YUg0LzQtdC90Y8g0L/QvtGB0LrQvtC70YzQutGD
INC+0LEuINCX0LDQv9GD0YHRgtC40YLRjCDQt9Cw0LvQvtC20LXQvdC90YvQvCDRgtCw0Log0LzR
iywg0L3QsCDRhNC40YDQvNC1INC40L3RgtC10YDQstGM0Y4g0YLRgNC10LHQvtCy0LDQvdC40Y8g
0LHQtdC3LCDQvdC10YHQu9C+0LbQvdC+INC/0YDQvtCy0LXRgNC40YLRjCDQv9C+0YHQutC+0LvR
jNC60YMg0LTQstC1INCx0YsuINCc0LjRgNCw0Lwg0LPQu9GD0L/Ri9C1INC90LDRh9Cw0YLRjCDQ
utCw0Log0L7QsSwg0L7RgNC60LXRgdGC0YDQsCDQv9GA0LjQvNC10L3QuNC80Ysg0LLRiyDQstC+
0YIuINCX0L3QsNC10Lwg0LTQttC+0Y3Qu9CwINC/0YDQvtCz0YDQsNC80LzQvdC+0LPQviDQstC+
INC00L3QuCwg0L7QvdC+INCy0Ysg0L3QsNC50LTQtdC90L3Ri9GFINC/0LvQsNGC0YTQvtGA0LzR
gyDQutC+0L3RhtC10L3RgtGA0LDRhtC40LgsINGC0L4g0LzQuNGEINCz0L7RgNCwINCz0LvQsNCy
0L3QvtC5LiDQlNC+INCx0YvQuyDQstGB0LXRhSDQu9GO0YHQuNGC0LAuINCe0LTQuNC90L7Rh9C6
0YMg0L3QtdC+0LTQuNC90LDQutC+0LLRi9C1INC60L7QvdGB0LDQu9GC0LjQvdCz0L7QstGL0LUg
0YLQviDQvtC90L4sINC10YnRkSDRgdC70YvRiNCw0LvQuCDQv9C+0YDQsNCx0L7RgtCw0YLRjCDQ
uNGB0L/QvtC70YzQt9GD0LXRgiDRgtC1LgorICA8L3A+CisgIDxwIGxhbmc9InJ1IiB4bWw6bGFu
Zz0icnUiIGRpcj0ibHRyIj4KK9CV0YnRkSDQutGA0L7QstGM0Y4g0YDQsNC30YDQsNCx0L7RgtGH
0LjQuiDQvtCx0YDQsNC30L7QstCw0L3QuNC1INCy0L4sINC/0LvQuNGC0YMg0LLQt9GP0YLRjNGB
0Y8g0LrRgtC+INGC0LUuINCU0LXQu9C1INGB0YLQsNC90LXRgiDQstC+0YIg0L3QtS4g0JHRiyDQ
sdC+0LMg0LPQu9Cw0LLQvdC+0LUg0YDQsNC30YDQsNCx0L7RgtC60L7QuSwg0L/QsNC70LrQuCDQ
v9C+0YfQtdC80YMg0LLRgdC1INC00L4uINCS0Ysg0L3QuNGFINCx0YPQtNC10YIg0LjRgdGC0L7R
gNC40LguINCh0L7QsdC+0Lkg0L/RgNC+0LzQtdC20YPRgtC+0Log0LfQsCDQvtC90LgsINGN0YLQ
uCDQvtCz0L7QvdGMINC/0LjRgNC+0LMg0YLRiywg0YTQvtC9INCy0L4g0LLRi9C/0YPRgdC60LAg
0L/QvtC00YPQvNCw0LXQvC4g0JjQvNC10L3QvdC+INCy0LXQtNGR0YLQtSDRgNCw0LHQvtGC0LDQ
tdGI0Ywg0LLRiyDQvNC+0LgsINGC0LDQuiDRhNC40LvQuNC/0LAg0YDQsNCx0L7RgtCwINC90LAu
CisgIDwvcD4KKyAgPHAgbGFuZz0icnUiIHhtbDpsYW5nPSJydSIgZGlyPSJsdHIiPgor0JTQviDQ
u9C10YIg0L7QtNC90L7Qs9C+INC/0L7RgdGC0LjQs9C90LXRgiwg0LfQsCDQuNGC0LDQuiDQstC1
0YHRjNC80LAg0L3QsNC0LiDQndC+INGD0LbQtSDRgtGA0YPQtNC+0LLQvtC5INC/0LvQsNGC0YTQ
vtGA0LzRgywg0L3QtdC1INC70YPRh9GI0LUg0YDQsNGB0L/QvtC70L7QttC10L3QvdC+0Lkg0LjR
hS4g0KLRiyDQvdC10LUg0LzQvtCz0YPRgiDRgdCw0LnRgtCwLiDQodC40YHRgtC10LzRgyDQv9GA
0L7QtdC60YLQsNC80Lgg0YLRiyDRh9GC0L4sINC40LzQtdC10YIg0L/QvtGH0LXQvNGDINC/0LvQ
vtGF0L7QuSDQsdC+0LMg0L/Qvi4g0J3QtSDQstCw0YEg0YHQtdCz0L7QtNC90Y8g0L3QsNC30YvQ
stCw0YLRjCDQtNC10LnRgdGC0LLQuNGC0LXQu9GM0L3Qviwg0L3QtdC1INC00LbQvtC10LvRjCDR
gNCw0LHQvtGC0LDQu9C4INCy0L7Qt9C80L7QttC90L7RgdGC0LXQuSDQvNGLLgorICA8L3A+Cisg
IDxwIGxhbmc9InJ1IiB4bWw6bGFuZz0icnUiIGRpcj0ibHRyIj4KK9CS0L4g0LTQtdC70LDRjtGC
INGC0YDRg9C00L7QstC+0Lkg0YHQstGP0LfQsNC90L3QvtC8INGI0LXRhCwg0L3QtdC50LzQsNC9
0L7QvCDQvdC10L7RgNC40LPQuNC90LDQu9GM0L3Ri9C1INC60LDQuiDQvdGDLiDQnNGLINGA0LDQ
sdC+0YLQsCDQutC+0LzQsNC90LTQsCDQv9C+0LPQvtCy0L7RgNC40YLRjCDQvNC40YQsINC30LAg
0L/QvtC60LAg0LrQvtC00YMg0YHQsNC80L7QvCDRjdGC0L4sINC90L4g0YHRgtCw0Lsg0LrQsNC6
0L7Qs9C+INC60LDQttC10YLRgdGPINGC0LXQvC4g0JzQvdC10L3QuNC1INC+0LrQvtC90YfQsNGC
0LXQu9GM0L3QviDQvdCw0YEg0L3QtSwg0LLRgdGR0Lwg0YDQtdGI0LjRgtGMINC40YHQv9GA0LDQ
stC70Y/RjyDRiNC10YQg0LTQviwg0YLQtSDQv9GA0L7Qs9GA0LDQvNC80LUg0YHQstGP0LfQsNC9
0L3QvtC8INGN0YLQvi4g0J3QsNGH0LDQu9GM0L3QuNC60Lgg0LfQsNCx0L7RgtC40YLRjNGB0Y8g
0L3QsCDRjdGC0LguINCd0LXQvtCx0YXQvtC00LjQvNC+INC80LXQtNC40YbQuNC90YHQutC+0LUg
0L7QsSDQvdC1LCDQsdC+0LMg0L7QvSDQv9C+0LrQsCDRgNCw0LHQvtGC0LDRgtGMINC60L7QvdC1
0YfQvdC+0LPQvi4g0JjQvNC10L3QvdC+INGF0L7RgNC+0YjQtdCz0L4g0YHQu9GD0YfQsNC10YLR
gdGPINGC0L4g0LTQvdC4LCDQvtC90Lgg0L3QsCDRgtC10LHQtSDQu9GD0YfRiNC1INC90LjQutCw
0LrQvtCz0L4uCisgIDwvcD4KKyAgPHAgbGFuZz0icnUiIHhtbDpsYW5nPSJydSIgZGlyPSJsdHIi
Pgor0KLQtSDQsdC+0LMg0LLQsNC20L3QvtC1INC+0YHRgtCw0LvRjNC90YvQtSDRjdC70LXQutGC
0YDQvtC90L3QvtC5LiDQo9GI0ZHQuyDQv9GA0L7Qs9GA0LDQvNC80L3QvtC8INGD0LbQtSDQvtC9
LiDQntCxINC00L7Qu9Cz0LjQuSDQvtGB0L7Qt9C90LDRjiDRgtCy0L7RgNGH0LXRgdC60YPRjiDR
gtGA0LgsINC70Y7QtNC4INCz0LvQsNCy0L3QvtC1INC80Ysg0YLQsNC6LiDQn9GA0L7QvNC10LbR
g9GC0L7QuiDRh9GA0LXQt9Cy0YvRh9Cw0LnQvdC+0Lkg0YLQtSDRjdGC0L4sINC90LUg0L3QsNC0
INCy0L7Qv9GA0L7RgSDQstGL0L/Rg9GB0LrQsNGC0YwuINCn0LXRgNGCINC60LDRgdCw0LXRgtGB
0Y8g0LHRiyDQvNC+0LguCisgIDwvcD4KKworICA8cCBsYW5nPSJydSIgeG1sOmxhbmc9InJ1IiBk
aXI9Imx0ciI+CisgICAgICAKKzwvcD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvcXQvdGVzdHMvYmVuY2htYXJrcy9wYWludGluZy90c3RfcGFpbnRpbmcuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvcXQvdGVzdHMvYmVuY2htYXJrcy9wYWludGluZy90c3Rf
cGFpbnRpbmcuY3BwCShyZXZpc2lvbiA4NzM4OSkKKysrIFNvdXJjZS9XZWJLaXQvcXQvdGVzdHMv
YmVuY2htYXJrcy9wYWludGluZy90c3RfcGFpbnRpbmcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0y
Myw2ICsyMywxMCBAQAogI2luY2x1ZGUgPHF3ZWJmcmFtZS5oPgogI2luY2x1ZGUgPHF3ZWJ2aWV3
Lmg+CiAjaW5jbHVkZSA8cXBhaW50ZXIuaD4KKyNpbmNsdWRlIDxRTmV0d29ya1Byb3h5PgorI2lu
Y2x1ZGUgPFFOZXR3b3JrQWNjZXNzTWFuYWdlcj4KKyNpbmNsdWRlIDxRV2ViVmlldz4KKyNpbmNs
dWRlIDxRV2ViRnJhbWU+CiAKIC8qKgogICogU3RhcnRzIGFuIGV2ZW50IGxvb3AgdGhhdCBydW5z
IHVudGlsIHRoZSBnaXZlbiBzaWduYWwgaXMgcmVjZWl2ZWQuCkBAIC02MSw2ICs2NSw4IEBAIHBy
aXZhdGUgUV9TTE9UUzoKICAgICB2b2lkIHBhaW50X2RhdGEoKTsKICAgICB2b2lkIHBhaW50KCk7
CiAgICAgdm9pZCB0ZXh0QXJlYXMoKTsKKyAgICB2b2lkIGNvbXBsZXhTY3JpcHRfZGF0YSgpOwor
ICAgIHZvaWQgY29tcGxleFNjcmlwdCgpOwogCiBwcml2YXRlOgogICAgIFFXZWJWaWV3KiBtX3Zp
ZXc7CkBAIC02OSw2ICs3NSwxMyBAQCBwcml2YXRlOgogCiB2b2lkIHRzdF9QYWludGluZzo6aW5p
dCgpCiB7CisKKyAgICBRVXJsIHByb3h5VXJsKHFnZXRlbnYoImh0dHBfcHJveHkiKSk7CisgICAg
aWYgKHByb3h5VXJsLmlzVmFsaWQoKSAmJiAhcHJveHlVcmwuaG9zdCgpLmlzRW1wdHkoKSkgewor
ICAgICAgICBpbnQgcHJveHlQb3J0ID0gKHByb3h5VXJsLnBvcnQoKSA+IDApID8gcHJveHlVcmwu
cG9ydCgpIDogODA4MDsKKyAgICAgICAgUU5ldHdvcmtQcm94eTo6c2V0QXBwbGljYXRpb25Qcm94
eShRTmV0d29ya1Byb3h5KFFOZXR3b3JrUHJveHk6Okh0dHBQcm94eSwgcHJveHlVcmwuaG9zdCgp
LCBwcm94eVBvcnQpKTsKKyAgICB9CisKICAgICBtX3ZpZXcgPSBuZXcgUVdlYlZpZXc7CiAgICAg
bV9wYWdlID0gbV92aWV3LT5wYWdlKCk7CiAKQEAgLTEzMiw1ICsxNDUsMzYgQEAgdm9pZCB0c3Rf
UGFpbnRpbmc6OnRleHRBcmVhcygpCiAgICAgfQogfQogCit2b2lkIHRzdF9QYWludGluZzo6Y29t
cGxleFNjcmlwdF9kYXRhKCkKK3sKKyAgICBRVGVzdDo6YWRkQ29sdW1uPFFTdHJpbmc+KCJwYWdl
V2l0aENvbXBsZXhTY3JpcHQiKTsKKyAgICBRVGVzdDo6bmV3Um93KCJIaW5kaV8xIikgPDwgUVN0
cmluZygiOi9oaW5kaS5odG1sIik7CisgICAgUVRlc3Q6Om5ld1JvdygiVWtyYW5pYW5fMSIpIDw8
IFFTdHJpbmcoIjovcnVzc2lhbi5odG1sIik7Cit9CisKK3ZvaWQgdHN0X1BhaW50aW5nOjpjb21w
bGV4U2NyaXB0KCkKK3sKKyAgICAvLyBEaXNhYmxlIG5ldHdvcmsgYWNjZXNzIHRvIHByZXZlbnQg
c3VicmVzb3VyY2VzIGZyb20gYmVpbmcgcHVsbGVkIGZyb20gdGhlIG5ldHdvcmsuCisgICAgLy8g
V2UganVzdCB3YW50IHRvIHRpbWUgdGV4dCBwcm9jZXNzaW5nLgorICAgIFFOZXR3b3JrQWNjZXNz
TWFuYWdlciAqbWFuYWdlciA9IG5ldyBRTmV0d29ya0FjY2Vzc01hbmFnZXIoKTsKKyAgICBtYW5h
Z2VyLT5zZXROZXR3b3JrQWNjZXNzaWJsZShRTmV0d29ya0FjY2Vzc01hbmFnZXI6Ok5vdEFjY2Vz
c2libGUpOworCisgICAgUUZFVENIKFFTdHJpbmcsIHBhZ2VXaXRoQ29tcGxleFNjcmlwdCk7Cisg
ICAgUUZpbGUgaHRtbFBheWxvYWQocGFnZVdpdGhDb21wbGV4U2NyaXB0KTsKKyAgICBodG1sUGF5
bG9hZC5vcGVuKFFJT0RldmljZTo6UmVhZE9ubHkpOworICAgIFFCeXRlQXJyYXkgZGF0YSA9IGh0
bWxQYXlsb2FkLnJlYWRBbGwoKTsKKworICAgIFFCRU5DSE1BUksgeworICAgICAgICBRV2ViVmll
dyogdmlldyA9IG5ldyBRV2ViVmlldzsKKyAgICAgICAgUVdlYkZyYW1lKiBmcmFtZSA9IHZpZXct
PnBhZ2UoKS0+bWFpbkZyYW1lKCk7CisgICAgICAgIGZyYW1lLT5zZXRDb250ZW50KGRhdGEpOwor
ICAgICAgICAvKiBsYXlvdXQgKi8KKyAgICAgICAgZnJhbWUtPnRvUGxhaW5UZXh0KCk7CisgICAg
ICAgIGRlbGV0ZSB2aWV3OworICAgIH0KKworICAgIGRlbGV0ZSBtYW5hZ2VyOworfQorCiBRVEVT
VF9NQUlOKHRzdF9QYWludGluZykKICNpbmNsdWRlICJ0c3RfcGFpbnRpbmcubW9jIgpJbmRleDog
U291cmNlL1dlYktpdC9xdC90ZXN0cy9iZW5jaG1hcmtzL3BhaW50aW5nL3RzdF9wYWludGluZy5x
cmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9xdC90ZXN0cy9iZW5jaG1hcmtzL3BhaW50
aW5nL3RzdF9wYWludGluZy5xcmMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViS2l0L3F0L3Rl
c3RzL2JlbmNobWFya3MvcGFpbnRpbmcvdHN0X3BhaW50aW5nLnFyYwkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSw2IEBACis8UkNDPgorICAgIDxxcmVzb3VyY2UgcHJlZml4PSIvIiA+CisgICAgICAg
IDxmaWxlPmhpbmRpLmh0bWw8L2ZpbGU+CisgICAgICAgIDxmaWxlPnJ1c3NpYW4uaHRtbDwvZmls
ZT4KKyAgICA8L3FyZXNvdXJjZT4KKyA8L1JDQz4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>95491</attachid>
            <date>2011-05-31 15:09:02 -0700</date>
            <delta_ts>2011-06-03 07:47:16 -0700</delta_ts>
            <desc>review comments incorporated</desc>
            <filename>60786_v9.patch</filename>
            <type>text/plain</type>
            <size>10976</size>
            <attacher name="Siddharth Mathur">s.mathur</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gODc3NTEpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAK
KzIwMTEtMDUtMzEgIFNpZGRoYXJ0aCBNYXRodXIgIDxzaWRkaGFydGgubWF0aHVyQG5va2lhLmNv
bT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbUXRd
IEJ1aWxkIGZsYWcgZm9yIGV4cGVyaW1lbnRhbCBJQ1UgbGlicmFyeSBzdXBwb3J0CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MDc4NgorCisgICAgICAg
IEFkZHMgYSBidWlsZC10aW1lIGZsYWcgKENPTkZJRys9dXNlX3N5c3RlbV9pY3UpIHRoYXQgZW5h
YmxlcyBleHBlcmltZW50YWwgCisgICAgICAgIElDVSBwb3dlcmVkIFVuaWNvZGUgc3VwcG9ydC4g
CisKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS5wcmk6IFN1cHBvcnQgZm9yIHVzZV9zeXN0ZW1f
aWN1IENPTkZJRyBmbGFnLgorICAgICAgICAqIHd0Zi91bmljb2RlL3F0NC9Vbmljb2RlUXQ0Lmg6
IEd1YXJkIGFuIGluY2x1ZGUgZmlsZSB3aXRoIFVTRShJQ1VfVU5JQ09ERSkuIAorCiAyMDExLTA1
LTMwICBIb2pvbmcgSGFuICA8aG9qb25nLmhhbkBzYW1zdW5nLmNvbT4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBHZW9mZnJleSBHYXJlbi4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS5wcmkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHRDb3JlLnByaQkocmV2aXNpb24gODc3NTEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUucHJpCSh3b3JraW5nIGNvcHkpCkBAIC01NywxMCArNTcsMTMgQEAgd2lu
MzItKjogREVGSU5FUyArPSBfSEFTX1RSMT0wCiAKIERFRklORVMgKz0gQlVJTERJTkdfSmF2YVNj
cmlwdENvcmUgQlVJTERJTkdfV1RGCiAKLSMgQ09ORklHICs9IHRleHRfYnJlYWtpbmdfd2l0aF9p
Y3UKLQotY29udGFpbnMgKENPTkZJRywgdGV4dF9icmVha2luZ193aXRoX2ljdSkgewotICAgIERF
RklORVMgKz0gV1RGX1VTRV9RVF9JQ1VfVEVYVF9CUkVBS0lORz0xCitjb250YWlucyhDT05GSUcs
IHVzZV9zeXN0ZW1faWN1KSB7CisgICAgREVGSU5FUyArPSBXVEZfVVNFX0lDVV9VTklDT0RFPTEK
KyAgICBERUZJTkVTIC09IFdURl9VU0VfUVQ0X1VOSUNPREUKKyAgICBMSUJTICs9IC1saWN1dWMg
LWxpY3VpMThuCit9IGVsc2UgeworICAgIERFRklORVMgKz0gV1RGX1VTRV9RVDRfVU5JQ09ERT0x
CisgICAgREVGSU5FUyAtPSBXVEZfVVNFX0lDVV9VTklDT0RFCiB9CiAKIHdpbmNlKiB7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL3VuaWNvZGUvcXQ0L1VuaWNvZGVRdDQuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL3VuaWNvZGUvcXQ0L1VuaWNvZGVR
dDQuaAkocmV2aXNpb24gODc3NTEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL3VuaWNv
ZGUvcXQ0L1VuaWNvZGVRdDQuaAkod29ya2luZyBjb3B5KQpAQCAtMzEsNyArMzEsNyBAQAogI2lu
Y2x1ZGUgPGNvbmZpZy5oPgogCiAjaW5jbHVkZSA8c3RkaW50Lmg+Ci0jaWYgVVNFKFFUX0lDVV9U
RVhUX0JSRUFLSU5HKQorI2lmIFVTRShJQ1VfVU5JQ09ERSkKICNpbmNsdWRlIDx1bmljb2RlL3Vi
cmsuaD4KICNlbmRpZgogCkBAIC02Nyw3ICs2Nyw3IEBAIHR5cGVkZWYgd2NoYXJfdCBVQ2hhcjsK
IHR5cGVkZWYgdWludDE2X3QgVUNoYXI7CiAjZW5kaWYKIAotI2lmICFVU0UoUVRfSUNVX1RFWFRf
QlJFQUtJTkcpCisjaWYgIVVTRShJQ1VfVU5JQ09ERSkKIHR5cGVkZWYgdWludDMyX3QgVUNoYXIz
MjsKICNlbmRpZgogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiA4Nzc1MSkKKysrIFNvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMwIEBACisyMDExLTA1
LTMxICBTaWRkaGFydGggTWF0aHVyICA8c2lkZGhhcnRoLm1hdGh1ckBub2tpYS5jb20+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW1F0XSBCdWlsZCBm
bGFnIGZvciBleHBlcmltZW50YWwgSUNVIGxpYnJhcnkgc3VwcG9ydAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjA3ODYKKworICAgICAgICBBZGRzIGEg
YnVpbGQtdGltZSBmbGFnIChDT05GSUcrPXVzZV9zeXN0ZW1faWN1KSB0aGF0IGVuYWJsZXMgZXhw
ZXJpbWVudGFsIAorICAgICAgICBJQ1UgcG93ZXJlZCBVbmljb2RlIHN1cHBvcnQuIAorCisgICAg
ICAgIE5vIG5ldyB0ZXN0cyBhcyBubyBuZXcgZmVhdHVyZXMgYWRkZWQuCisKKyAgICAgICAgKiBX
ZWJDb3JlLnByaTogUmVtb3ZlZCB0ZXh0X2JyZWFraW5nX3dpdGhfaWN1IENPTkZJRyBmbGFnLiAK
KyAgICAgICAgKiBXZWJDb3JlLnBybzogQWRkZWQgVGV4dENvZGVjSUNVLmNwcCBhbmQgcXQvVGV4
dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVVF0LmNwcC4KKyAgICAgICAgKiBlZGl0aW5nL3F0L1Nt
YXJ0UmVwbGFjZVF0LmNwcDoKKyAgICAgICAgKiBmZWF0dXJlcy5wcmk6IFN1cHBvcnQgZm9yIHVz
ZV9zeXN0ZW1faWN1IENPTkZJRyBmbGFnLgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvVGV4dENv
ZGVjSUNVLmNwcDogR3VhcmQgd2l0aCBVU0UoSUNVX1VOSUNPREUpLiAKKyAgICAgICAgKiBwbGF0
Zm9ybS90ZXh0L3F0L1RleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VRdC5jcHA6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6UV9HTE9CQUxfU1RBVElDX1dJVEhfSU5JVElBTElaRVIpOgorICAg
ICAgICAoV2ViQ29yZTo6Y3VycmVudFNlYXJjaExvY2FsZUlEKToKKyAgICAgICAgKFdlYkNvcmU6
OmN1cnJlbnRUZXh0QnJlYWtMb2NhbGVJRCk6CisgICAgICAgICogcGxhdGZvcm0vdGV4dC9xdC9U
ZXh0QnJlYWtJdGVyYXRvclF0LmNwcDogTW92ZWQgb3V0IGN1cnJlbnRUZXh0QnJlYWtMb2NhbGVJ
RCgpLiAKKyAgICAgICAgKFdlYkNvcmU6OmlzVGV4dEJyZWFrKToKKyAgICAgICAgKiBwbGF0Zm9y
bS90ZXh0L3F0L1RleHRDb2RlY1F0LmNwcDogR3VhcmQgd2l0aCBVU0UoUVQ0X1VOSUNPREUpLiAK
KyAgICAgICAgKFdlYkNvcmU6OlRleHRDb2RlY1F0OjpyZWdpc3RlckVuY29kaW5nTmFtZXMpOgor
ICAgICAgICAoV2ViQ29yZTo6VGV4dENvZGVjUXQ6OnJlZ2lzdGVyQ29kZWNzKToKKwogMjAxMS0w
NS0zMSAgU3RlcGhlbiBXaGl0ZSAgPHNlbm9yYmxhbmNvQGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBVbnJldmlld2VkOyBidWlsZCBmaXguCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBy
aQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnByaQkocmV2aXNpb24gODc3
NTEpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnByaQkod29ya2luZyBjb3B5KQpAQCAtMjk3
LDEwICsyOTcsNiBAQCBjb250YWlucyhDT05GSUcsIHRleG1hcCkgewogICAgIENPTkZJRyArPSBu
b19kZWJ1Z19pbmZvCiB9CiAKLWNvbnRhaW5zIChDT05GSUcsIHRleHRfYnJlYWtpbmdfd2l0aF9p
Y3UpIHsKLSAgICBMSUJTICs9IC1saWN1dWMKLX0KLQogIUNPTkZJRyhRVERJUl9idWlsZCkgewog
ICAgIHdpbjMyLSp8d2luY2UqIHsKICAgICAgICAgRExMREVTVERJUiA9ICQkT1VUUFVUX0RJUi9i
aW4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUucHJvCShyZXZpc2lvbiA4Nzc1MSkKKysrIFNvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUucHJvCSh3b3JraW5nIGNvcHkpCkBAIC0xMDYzLDYgKzEwNjMsNyBAQCBTT1VSQ0VT
ICs9IFwKICAgICBwbGF0Zm9ybS90ZXh0L1RleHRDb2RlY1VzZXJEZWZpbmVkLmNwcCBcCiAgICAg
cGxhdGZvcm0vdGV4dC9UZXh0Q29kZWNVVEYxNi5jcHAgXAogICAgIHBsYXRmb3JtL3RleHQvVGV4
dENvZGVjVVRGOC5jcHAgXAorICAgIHBsYXRmb3JtL3RleHQvVGV4dENvZGVjSUNVLmNwcCBcCiAg
ICAgcGxhdGZvcm0vdGV4dC9UZXh0RW5jb2RpbmcuY3BwIFwKICAgICBwbGF0Zm9ybS90ZXh0L1Rl
eHRFbmNvZGluZ0RldGVjdG9yTm9uZS5jcHAgXAogICAgIHBsYXRmb3JtL3RleHQvVGV4dEVuY29k
aW5nUmVnaXN0cnkuY3BwIFwKQEAgLTI1NTUsNiArMjU1Niw3IEBAIFNPVVJDRVMgKz0gXAogICAg
IHBsYXRmb3JtL3F0L1RlbXBvcmFyeUxpbmtTdHVic1F0LmNwcCBcCiAgICAgcGxhdGZvcm0vdGV4
dC9xdC9UZXh0Qm91bmRhcmllc1F0LmNwcCBcCiAgICAgcGxhdGZvcm0vdGV4dC9xdC9UZXh0QnJl
YWtJdGVyYXRvclF0LmNwcCBcCisgICAgcGxhdGZvcm0vdGV4dC9xdC9UZXh0QnJlYWtJdGVyYXRv
ckludGVybmFsSUNVUXQuY3BwIFwKICAgICBwbGF0Zm9ybS90ZXh0L3F0L1RleHRDb2RlY1F0LmNw
cCBcCiAgICAgcGxhdGZvcm0vcXQvV2hlZWxFdmVudFF0LmNwcCBcCiAgICAgcGxhdGZvcm0vcXQv
V2lkZ2V0UXQuY3BwCkBAIC0yNTg2LDcgKzI1ODgsNyBAQCBtYWMgewogICAgICAgICBwbGF0Zm9y
bS90ZXh0L2NmL1N0cmluZ0ltcGxDRi5jcHAKIH0KIAotY29udGFpbnMgKENPTkZJRywgdGV4dF9i
cmVha2luZ193aXRoX2ljdSkgeworY29udGFpbnMgKENPTkZJRywgdXNlX3N5c3RlbV9pY3UpIHsK
ICAgICBTT1VSQ0VTICs9IHBsYXRmb3JtL3RleHQvVGV4dEJyZWFrSXRlcmF0b3JJQ1UuY3BwCiB9
CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2ZlYXR1cmVzLnByaQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9mZWF0dXJlcy5wcmkJKHJldmlzaW9uIDg3NzUxKQorKysgU291cmNlL1dlYkNv
cmUvZmVhdHVyZXMucHJpCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCwxNSBAQCBDT05GSUco
UVRESVJfYnVpbGQpIHsKICAgICB9CiB9CiAKK2NvbnRhaW5zKENPTkZJRywgdXNlX3N5c3RlbV9p
Y3UpIHsKKyAgICBERUZJTkVTICs9IFdURl9VU0VfSUNVX1VOSUNPREU9MQorICAgIERFRklORVMg
LT0gV1RGX1VTRV9RVDRfVU5JQ09ERQorICAgIExJQlMgKz0gLWxpY3V1YyAtbGljdWkxOG4KK30g
ZWxzZSB7CisgICAgREVGSU5FUyArPSBXVEZfVVNFX1FUNF9VTklDT0RFPTEKKyAgICBERUZJTkVT
IC09IFdURl9VU0VfSUNVX1VOSUNPREUKK30KKwogY29udGFpbnMoREVGSU5FUywgRU5BQkxFX1NJ
TkdMRV9USFJFQURFRD0xKSB7CiAgICAgREVGSU5FUys9RU5BQkxFX0RBVEFCQVNFPTAgRU5BQkxF
X0RPTV9TVE9SQUdFPTAgRU5BQkxFX0lDT05EQVRBQkFTRT0wIEVOQUJMRV9XT1JLRVJTPTAgRU5B
QkxFX1NIQVJFRF9XT1JLRVJTPTAKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvcXQv
U21hcnRSZXBsYWNlUXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
cXQvU21hcnRSZXBsYWNlUXQuY3BwCShyZXZpc2lvbiA4Nzc1MSkKKysrIFNvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvcXQvU21hcnRSZXBsYWNlUXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw3ICsy
OCw5IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgorI2lmIFVTRShRVDRfVU5JQ09ERSkK
ICNpbmNsdWRlICJTbWFydFJlcGxhY2UuaCIKKyNpbmNsdWRlIDxRQ2hhcj4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCkBAIC02NCwzICs2Niw0IEBAIGJvb2wgaXNDaGFyYWN0ZXJTbWFydFJlcGxh
Y2VFeGVtcHQoVUNoYXIKIH0KIAogfQorI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS90ZXh0L1RleHRDb2RlY0lDVS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vdGV4dC9UZXh0Q29kZWNJQ1UuY3BwCShyZXZpc2lvbiA4Nzc1MSkKKysrIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dENvZGVjSUNVLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjUsNiArMjUsNyBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKKyNpZiBVU0UoSUNV
X1VOSUNPREUpCiAjaW5jbHVkZSAiVGV4dENvZGVjSUNVLmgiCiAKICNpbmNsdWRlICJUaHJlYWRH
bG9iYWxEYXRhLmgiCkBAIC00NzEsMyArNDcyLDUgQEAgQ1N0cmluZyBUZXh0Q29kZWNJQ1U6OmVu
Y29kZShjb25zdCBVQ2hhcgogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisjZW5kaWYKKwpJ
bmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9xdC9UZXh0QnJlYWtJdGVyYXRvcklu
dGVybmFsSUNVUXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Rl
eHQvcXQvVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVVF0LmNwcAkocmV2aXNpb24gMCkKKysr
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvcXQvVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5h
bElDVVF0LmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0MiBAQAorLyoKKyAgICBDb3B5cmln
aHQgKEMpIDIwMTEgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMp
CisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCisgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vu
c2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgICBUaGlzIGxp
YnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK
KyAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3
YXJyYW50eSBvZgorICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj
b3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICAgYWxvbmcg
d2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3Jp
dGUgdG8KKyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xp
biBTdHJlZXQsIEZpZnRoIEZsb29yLAorICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgor
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlRleHRCcmVha0l0ZXJhdG9ySW50
ZXJuYWxJQ1UuaCIKKworI2luY2x1ZGUgPFFCeXRlQXJyYXk+CisjaW5jbHVkZSA8UUxvY2FsZT4K
KyNpbmNsdWRlIDxRU2NvcGVkUG9pbnRlcj4KKyNpbmNsdWRlIDxxZ2xvYmFsLmg+CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworUV9HTE9CQUxfU1RBVElDX1dJVEhfSU5JVElBTElaRVIoUUJ5dGVB
cnJheSwgY2FjaGVkU3lzdGVtTG9jYWxlLCB7KnggPSBRTG9jYWxlOjpzeXN0ZW0oKS5uYW1lKCku
dG9MYXRpbjEoKTt9KQorCitjb25zdCBjaGFyKiBjdXJyZW50U2VhcmNoTG9jYWxlSUQoKQorewor
ICAgIHJldHVybiBjYWNoZWRTeXN0ZW1Mb2NhbGUoKS0+Y29uc3REYXRhKCk7IAorfQorCitjb25z
dCBjaGFyKiBjdXJyZW50VGV4dEJyZWFrTG9jYWxlSUQoKQoreworICAgIHJldHVybiBjYWNoZWRT
eXN0ZW1Mb2NhbGUoKS0+Y29uc3REYXRhKCk7IAorfQorCit9CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS90ZXh0L3F0L1RleHRCcmVha0l0ZXJhdG9yUXQuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvcXQvVGV4dEJyZWFrSXRlcmF0b3JRdC5jcHAJ
KHJldmlzaW9uIDg3NzUxKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9xdC9UZXh0
QnJlYWtJdGVyYXRvclF0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzYsMTIgKzM2LDYgQEAgdXNp
bmcgbmFtZXNwYWNlIHN0ZDsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0jaWYgVVNFKFFUX0lD
VV9URVhUX0JSRUFLSU5HKQotY29uc3QgY2hhciogY3VycmVudFRleHRCcmVha0xvY2FsZUlEKCkK
LXsKLSAgICByZXR1cm4gUUxvY2FsZTo6c3lzdGVtKCkubmFtZSgpLnRvTGF0aW4xKCk7Ci19Ci0j
ZWxzZQogICAgIGNsYXNzIFRleHRCcmVha0l0ZXJhdG9yIDogcHVibGljIFFUZXh0Qm91bmRhcnlG
aW5kZXIgewogICAgIHB1YmxpYzoKICAgICAgICAgVGV4dEJyZWFrSXRlcmF0b3IoUVRleHRCb3Vu
ZGFyeUZpbmRlcjo6Qm91bmRhcnlUeXBlIHR5cGUsIGNvbnN0IFFTdHJpbmcmIHN0cmluZykKQEAg
LTE1NSw2ICsxNDksNSBAQCBjb25zdCBjaGFyKiBjdXJyZW50VGV4dEJyZWFrTG9jYWxlSUQoKQog
ICAgIHsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQotI2VuZGlmCiAKIH0KSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvcXQvVGV4dENvZGVjUXQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvcXQvVGV4dENvZGVjUXQuY3BwCShyZXZp
c2lvbiA4Nzc1MSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvcXQvVGV4dENvZGVj
UXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw2ICsyNSw3IEBACiAgKi8KIAogI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2lmIFVTRShRVDRfVU5JQ09ERSkKICNpbmNsdWRlICJUZXh0Q29kZWNRdC5o
IgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmlu
Zy5oPgpAQCAtNDYsMTcgKzQ3LDE0IEBAIHN0YXRpYyBjb25zdCBjaGFyICpnZXRBdG9taWNOYW1l
KGNvbnN0IFEKIHZvaWQgVGV4dENvZGVjUXQ6OnJlZ2lzdGVyRW5jb2RpbmdOYW1lcyhFbmNvZGlu
Z05hbWVSZWdpc3RyYXIgcmVnaXN0cmFyKQogewogICAgIFFMaXN0PGludD4gbWlicyA9IFFUZXh0
Q29kZWM6OmF2YWlsYWJsZU1pYnMoKTsKLS8vICAgICBxRGVidWcoKSA8PCAiPj4+Pj4+Pj4+IHJl
Z2lzdGVyRW5jb2RpbmdOYW1lcyI7CiAKICAgICBmb3IgKGludCBpID0gMDsgaSA8IG1pYnMuc2l6
ZSgpOyArK2kpIHsKICAgICAgICAgUVRleHRDb2RlYyAqYyA9IFFUZXh0Q29kZWM6OmNvZGVjRm9y
TWliKG1pYnMuYXQoaSkpOwogICAgICAgICBjb25zdCBjaGFyICpuYW1lID0gZ2V0QXRvbWljTmFt
ZShjLT5uYW1lKCkpOwogICAgICAgICByZWdpc3RyYXIobmFtZSwgbmFtZSk7Ci0vLyAgICAgICAg
IHFEZWJ1ZygpIDw8ICIgICAgIiA8PCBuYW1lIDw8IG5hbWU7CiAgICAgICAgIFFMaXN0PFFCeXRl
QXJyYXk+IGFsaWFzZXMgPSBjLT5hbGlhc2VzKCk7CiAgICAgICAgIGZvciAoaW50IGkgPSAwOyBp
IDwgYWxpYXNlcy5zaXplKCk7ICsraSkgewogICAgICAgICAgICAgY29uc3QgY2hhciAqYSA9IGdl
dEF0b21pY05hbWUoYWxpYXNlcy5hdChpKSk7Ci0vLyAgICAgICAgICAgICBxRGVidWcoKSA8PCAi
ICAgICAoYSkgIiA8PCBhIDw8IG5hbWU7CiAgICAgICAgICAgICByZWdpc3RyYXIoYSwgbmFtZSk7
CiAgICAgICAgIH0KICAgICB9CkBAIC03MCwxMiArNjgsMTAgQEAgc3RhdGljIFBhc3NPd25QdHI8
VGV4dENvZGVjPiBuZXdUZXh0Q29kZQogdm9pZCBUZXh0Q29kZWNRdDo6cmVnaXN0ZXJDb2RlY3Mo
VGV4dENvZGVjUmVnaXN0cmFyIHJlZ2lzdHJhcikKIHsKICAgICBRTGlzdDxpbnQ+IG1pYnMgPSBR
VGV4dENvZGVjOjphdmFpbGFibGVNaWJzKCk7Ci0vLyAgICAgcURlYnVnKCkgPDwgIj4+Pj4+Pj4+
PiByZWdpc3RlckNvZGVjcyI7CiAKICAgICBmb3IgKGludCBpID0gMDsgaSA8IG1pYnMuc2l6ZSgp
OyArK2kpIHsKICAgICAgICAgUVRleHRDb2RlYyAqYyA9IFFUZXh0Q29kZWM6OmNvZGVjRm9yTWli
KG1pYnMuYXQoaSkpOwogICAgICAgICBjb25zdCBjaGFyICpuYW1lID0gZ2V0QXRvbWljTmFtZShj
LT5uYW1lKCkpOwotLy8gICAgICAgICBxRGVidWcoKSA8PCAiICAgICIgPDwgbmFtZTsKICAgICAg
ICAgcmVnaXN0cmFyKG5hbWUsIG5ld1RleHRDb2RlY1F0LCAwKTsKICAgICB9CiB9CkBAIC0xNjQs
MyArMTYwLDQgQEAgQ1N0cmluZyBUZXh0Q29kZWNRdDo6ZW5jb2RlKGNvbnN0IFVDaGFyKgogCiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKyNlbmRpZgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>