<?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>73215</bug_id>
          
          <creation_ts>2011-11-28 06:45:54 -0800</creation_ts>
          <short_desc>[Qt][WK2] Split QWebPermissionRequest into QWebSecurityOrigin</short_desc>
          <delta_ts>2012-02-16 02:29:09 -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>WebKit Qt</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>59200</dependson>
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Adenilson Cavalcanti Silva">savagobr</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>hausmann</cc>
    
    <cc>jesus</cc>
    
    <cc>kenneth</cc>
    
    <cc>menard</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yael</cc>
    
    <cc>zoltan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>509798</commentid>
    <comment_count>0</comment_count>
    <who name="Adenilson Cavalcanti Silva">savagobr</who>
    <bug_when>2011-11-28 06:45:54 -0800</bug_when>
    <thetext>Have a second class to handle security origin information, based on this: http://pastebin.ubuntu.com/748139/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>534018</commentid>
    <comment_count>1</comment_count>
      <attachid>122049</attachid>
    <who name="Adenilson Cavalcanti Silva">savagobr</who>
    <bug_when>2012-01-11 10:37:42 -0800</bug_when>
    <thetext>Created attachment 122049
Imported code, implemented missing methods/operators, integrated with QWebPermissionRequest

I still don&apos;t known if a scheme is local or not. Ideas?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>534021</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-11 10:39:27 -0800</bug_when>
    <thetext>Attachment 122049 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebKit/qt/declarative/plugin.cpp&apos;, ...&quot; exit_code: 1

Source/WebKit2/UIProcess/API/qt/qwebpermissionrequest_p.h:25:  Alphabetical sorting problem.  [build/include_order] [4]
Source/WebKit/qt/declarative/plugin.cpp:32:  Alphabetical sorting problem.  [build/include_order] [4]
Source/WebKit2/UIProcess/API/qt/qtwebsecurityorigin.cpp:151:  An else statement can be removed when the prior &quot;if&quot; concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
Total errors found: 3 in 7 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>534113</commentid>
    <comment_count>3</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-01-11 12:08:44 -0800</bug_when>
    <thetext>(In reply to comment #1)
&gt; Created an attachment (id=122049) [details]
&gt; Imported code, implemented missing methods/operators, integrated with QWebPermissionRequest
&gt; 
&gt; I still don&apos;t known if a scheme is local or not. Ideas?

file: is always local. data: has the same locality as its parent.

ie if I use data: in a file:// url, then it is local as well as it is embedded.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>534123</commentid>
    <comment_count>4</comment_count>
      <attachid>122049</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-01-11 12:16:52 -0800</bug_when>
    <thetext>Comment on attachment 122049
Imported code, implemented missing methods/operators, integrated with QWebPermissionRequest

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

No qml example?

&gt; Source/WebKit2/UIProcess/API/qt/qtwebsecurityorigin.cpp:37
&gt; +// Look at webkit1 on how to do this properly.
&gt; +// These needs to be in sync at web process start up and send over when changed.
&gt; +static QStringList s_localSchemes;

This seems to need fixing

&gt; Source/WebKit2/UIProcess/API/qt/qtwebsecurityorigin.cpp:45
&gt; +        s_localSchemes.clear();
&gt; +        const URLSchemesMap&amp; map = SchemeRegistry::localSchemes();

If SchemeRegistry::localSchemes already exists any reason for s_localSchemes?

&gt; Source/WebKit2/UIProcess/API/qt/qtwebsecurityorigin.cpp:48
&gt; +        URLSchemesMap::const_iterator end = map.end();
&gt; +        for (URLSchemesMap::const_iterator i = map.begin(); i != end; ++i) {
&gt; +            const QString scheme = *i;

we use &apos;it&apos; for real iterators, not i

&gt; Source/WebKit2/UIProcess/API/qt/qtwebsecurityorigin.cpp:56
&gt; +    QtWebSecurityOriginPrivate()
&gt; +    {
&gt; +        localSchemes();
&gt; +    }

Would need a comment

&gt; Source/WebKit2/UIProcess/API/qt/qtwebsecurityorigin.cpp:63
&gt; +
&gt; +    QUrl url;
&gt; +};

why is this public? why not a real property?

&gt; Source/WebKit2/UIProcess/API/qt/qtwebsecurityorigin.cpp:77
&gt; +    // FIXME: how to say if a scheme is local or not?
&gt; +    Q_UNUSED(scheme)
&gt; +    return true;
&gt; +}
&gt; +
&gt; +QtWebSecurityOrigin::QtWebSecurityOrigin(const QUrl&amp; url, QObject *parent)
&gt; +    : QObject(parent)
&gt; +    , d(new QtWebSecurityOriginPrivate)
&gt; +{
&gt; +    if (s_localSchemes.empty())
&gt; +        s_localSchemes &lt;&lt; QLatin1String(&quot;file&quot;) &lt;&lt; QLatin1String(&quot;qrc&quot;);

you have local schemes here... I dont understand the commetn

coding style issue (* placement)

&gt; Source/WebKit2/UIProcess/API/qt/qtwebsecurityorigin.cpp:166
&gt; +    // FIXME: Might need some versioning.
&gt; +    out &lt;&lt; (origin.url().toEncoded().data());
&gt; +    return out;

Some comment needs to explain why the url is enough

&gt; Source/WebKit2/UIProcess/API/qt/qtwebsecurityorigin_p.h:40
&gt; +    QtWebSecurityOrigin(const QUrl&amp; url, QObject *parent = 0);

* placement

&gt; Source/WebKit2/UIProcess/API/qt/qwebpermissionrequest.cpp:35
&gt; +        , sameOrigin(QUrl(), 0)

sameOrigin? weird name</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>534129</commentid>
    <comment_count>5</comment_count>
      <attachid>122049</attachid>
    <who name="Rafael Brandao">rafael.lobo</who>
    <bug_when>2012-01-11 12:21:56 -0800</bug_when>
    <thetext>Comment on attachment 122049
Imported code, implemented missing methods/operators, integrated with QWebPermissionRequest

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

Do you have any use case in mind for this API? Maybe adding a test to show how it could be used would be very nice. :-)

&gt; Source/WebKit2/ChangeLog:16
&gt; +

I fail to see how this change log is related to the rest of the patch. You&apos;ve added QtWebSecurityOrigin, but did not mention it here... neither the new files are listed there.

&gt; Source/WebKit2/UIProcess/API/qt/qtwebsecurityorigin.cpp:65
&gt; +bool QtWebSecurityOrigin::isLocalScheme(const QString &amp;scheme)

Style (const QString&amp;)

&gt; Source/WebKit2/UIProcess/API/qt/qtwebsecurityorigin.cpp:67
&gt; +    // FIXME: how to say if a scheme is local or not?

Maybe you could use SchemeRegistry::shouldTreatURLSchemeAsLocal, not sure if this alone is enough.

&gt; Source/WebKit2/UIProcess/API/qt/qtwebsecurityorigin.cpp:77
&gt; +        s_localSchemes &lt;&lt; QLatin1String(&quot;file&quot;) &lt;&lt; QLatin1String(&quot;qrc&quot;);

I believe you don&apos;t need to do this... we already have code inside WebCore to deal with local schemes.

&gt; Source/WebKit2/UIProcess/API/qt/qtwebsecurityorigin_p.h:32
&gt; +class QWEBKIT_EXPORT QtWebSecurityOrigin : public QObject {

I believe the naming is incorrect here, the others start with Q prefix instead of Qt, but I see that we already have QWebSecurityOrigin. Maybe someone else has a suggestion how to fix this, I don&apos;t know.

&gt; Source/WebKit2/UIProcess/API/qt/qtwebsecurityorigin_p.h:67
&gt; +    bool isLocalScheme(const QString &amp;);

Style (use const QString&amp;, no whitespace)

&gt; Source/WebKit2/UIProcess/API/qt/qwebpermissionrequest_p.h:53
&gt; +    QtWebSecurityOrigin &amp;securityOrigin();

Style (use QWebSecurityOrigin&amp; instead)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>534145</commentid>
    <comment_count>6</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-01-11 12:39:00 -0800</bug_when>
    <thetext>
&gt; Maybe you could use SchemeRegistry::shouldTreatURLSchemeAsLocal, not sure if this alone is enough.

This might need some fixes for qrc: ?

&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/qt/qtwebsecurityorigin.cpp:77
&gt; &gt; +        s_localSchemes &lt;&lt; QLatin1String(&quot;file&quot;) &lt;&lt; QLatin1String(&quot;qrc&quot;);
&gt; 
&gt; I believe you don&apos;t need to do this... we already have code inside WebCore to deal with local schemes.

Same here

&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/qt/qtwebsecurityorigin_p.h:32
&gt; &gt; +class QWEBKIT_EXPORT QtWebSecurityOrigin : public QObject {
&gt; 
&gt; I believe the naming is incorrect here, the others start with Q prefix instead of Qt, but I see that we already have QWebSecurityOrigin. Maybe someone else has a suggestion how to fix this, I don&apos;t know.

Basically everything publically exposed via C++ starts with Q, everything else starts with Qt. This is unfortunately not consistent in our code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>535108</commentid>
    <comment_count>7</comment_count>
      <attachid>122298</attachid>
    <who name="Adenilson Cavalcanti Silva">savagobr</who>
    <bug_when>2012-01-12 13:29:52 -0800</bug_when>
    <thetext>Created attachment 122298
Still missing the test

Removed the static QStringList object, better usage of HashSet &amp; SchemeRegistry methods.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>535113</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-12 13:31:32 -0800</bug_when>
    <thetext>Attachment 122298 did not pass style-queue:

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

Source/WebKit2/UIProcess/API/qt/qwebpermissionrequest_p.h:25:  Alphabetical sorting problem.  [build/include_order] [4]
Source/WebKit2/UIProcess/API/qt/qtwebsecurityorigin.cpp:148:  An else statement can be removed when the prior &quot;if&quot; concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
Total errors found: 2 in 8 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>535127</commentid>
    <comment_count>9</comment_count>
      <attachid>122298</attachid>
    <who name="Jesus Sanchez-Palencia">jesus</who>
    <bug_when>2012-01-12 13:46:04 -0800</bug_when>
    <thetext>Comment on attachment 122298
Still missing the test

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

&gt; Source/WebKit/qt/declarative/plugin.cpp:69
&gt; +        qmlRegisterUncreatableType&lt;QtWebSecurityOrigin&gt;(uri, 3, 0, &quot;SecurityOrigin&quot;, QObject::tr(&quot;Cannot create separate instance of SecurityOrigin&quot;));

Hey, just a nitpicking comment from my part. :)

I believe that if this is gonna sit in API/qt/ then you should follow the new naming convention and it should be called QWebSecurityOrigin. The same for the private class, cpp and header files.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>535129</commentid>
    <comment_count>10</comment_count>
    <who name="Jesus Sanchez-Palencia">jesus</who>
    <bug_when>2012-01-12 13:47:28 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; I believe that if this is gonna sit in API/qt/ then you should follow the new naming convention and it should be called QWebSecurityOrigin. The same for the private class, cpp and header files.

Oh, just realized we have a QWebSecurityOrigin already... =/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>535131</commentid>
    <comment_count>11</comment_count>
      <attachid>122298</attachid>
    <who name="Jesus Sanchez-Palencia">jesus</who>
    <bug_when>2012-01-12 13:55:42 -0800</bug_when>
    <thetext>Comment on attachment 122298
Still missing the test

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

&gt; Source/WebKit2/UIProcess/API/qt/qtwebsecurityorigin_p.h:38
&gt; +    Q_PROPERTY(QString scheme READ scheme)
&gt; +    Q_PROPERTY(QString host READ host)
&gt; +    Q_PROPERTY(int port READ port)
&gt; +    Q_PROPERTY(QString path READ path)
&gt; +    Q_PROPERTY(QUrl url READ url)

Shouldn&apos;t these properties have CONSTANT (or NOTIFY, in case it makes sense to have signals for any of them)? Just noticed they were already missing on QWebPermissionRequest.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>535171</commentid>
    <comment_count>12</comment_count>
    <who name="Adenilson Cavalcanti Silva">savagobr</who>
    <bug_when>2012-01-12 14:33:39 -0800</bug_when>
    <thetext>Good point about the CONSTANT (I will add it).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>535515</commentid>
    <comment_count>13</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-01-13 01:22:36 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; (From update of attachment 122298 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=122298&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/qt/declarative/plugin.cpp:69
&gt; &gt; +        qmlRegisterUncreatableType&lt;QtWebSecurityOrigin&gt;(uri, 3, 0, &quot;SecurityOrigin&quot;, QObject::tr(&quot;Cannot create separate instance of SecurityOrigin&quot;));
&gt; 
&gt; Hey, just a nitpicking comment from my part. :)
&gt; 
&gt; I believe that if this is gonna sit in API/qt/ then you should follow the new naming convention and it should be called QWebSecurityOrigin. The same for the private class, cpp and header files.

As those classes are not exported in C++ sense, but only to QML, I think that Qt* actually makes more sense than using Q[A-Z]*</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>538685</commentid>
    <comment_count>14</comment_count>
      <attachid>123123</attachid>
    <who name="Adenilson Cavalcanti Silva">savagobr</who>
    <bug_when>2012-01-19 07:14:22 -0800</bug_when>
    <thetext>Created attachment 123123
QML test, linker error fixed, access to security property in QML, constant properties</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>538686</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-19 07:16:17 -0800</bug_when>
    <thetext>Attachment 123123 did not pass style-queue:

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

Source/WebKit2/UIProcess/API/qt/qwebpermissionrequest_p.h:25:  Alphabetical sorting problem.  [build/include_order] [4]
Source/WebKit2/UIProcess/API/qt/qtwebsecurityorigin.cpp:148:  An else statement can be removed when the prior &quot;if&quot; concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
Total errors found: 2 in 11 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>538924</commentid>
    <comment_count>16</comment_count>
      <attachid>123174</attachid>
    <who name="Adenilson Cavalcanti Silva">savagobr</who>
    <bug_when>2012-01-19 12:27:08 -0800</bug_when>
    <thetext>Created attachment 123174
Changelog typo/date plus previous fixes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>538926</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-19 12:29:07 -0800</bug_when>
    <thetext>Attachment 123174 did not pass style-queue:

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

Source/WebKit2/UIProcess/API/qt/qtwebsecurityorigin.cpp:148:  An else statement can be removed when the prior &quot;if&quot; concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
Total errors found: 1 in 11 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>539478</commentid>
    <comment_count>18</comment_count>
      <attachid>123174</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2012-01-20 07:09:40 -0800</bug_when>
    <thetext>Comment on attachment 123174
Changelog typo/date plus previous fixes.

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

&gt; Source/WebKit2/UIProcess/API/qt/qtwebsecurityorigin_p.h:57
&gt; +    QtWebSecurityOrigin&amp; operator=(const QtWebSecurityOrigin&amp;);
&gt; +    QtWebSecurityOrigin&amp; operator=(const QUrl&amp;);
&gt; +    bool operator!=(const QtWebSecurityOrigin&amp;);
&gt; +    bool operator==(const QtWebSecurityOrigin&amp;);

I don&apos;t think these operators are a good idea for a QObject sub-class. We generally avoid them with polymorphic types. I&apos;d prefer explicit functions to change the state, i.e. a setUrl.

&gt; Source/WebKit2/UIProcess/API/qt/qtwebsecurityorigin_p.h:69
&gt; +    QSharedDataPointer&lt;QtWebSecurityOriginPrivate&gt; d;

A shared data pointer for a QObject that cannot be copied and where the shared data pointer contains a QUrl, which itself has a shared private? I think this can be simplified to a simple QUrl member in here ;-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>539528</commentid>
    <comment_count>19</comment_count>
    <who name="Adenilson Cavalcanti Silva">savagobr</who>
    <bug_when>2012-01-20 08:27:02 -0800</bug_when>
    <thetext>Simon

Thanks for the comments. I have one question: do you feel is better to remove all the operators? Or just the attribution one (=)?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>540208</commentid>
    <comment_count>20</comment_count>
      <attachid>123467</attachid>
    <who name="Adenilson Cavalcanti Silva">savagobr</who>
    <bug_when>2012-01-21 19:05:22 -0800</bug_when>
    <thetext>Created attachment 123467
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>540209</commentid>
    <comment_count>21</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-21 19:07:56 -0800</bug_when>
    <thetext>Attachment 123467 did not pass style-queue:

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

Source/WebKit2/UIProcess/API/qt/qtwebsecurityorigin.cpp:130:  An else statement can be removed when the prior &quot;if&quot; concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
Total errors found: 1 in 11 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>540210</commentid>
    <comment_count>22</comment_count>
      <attachid>123468</attachid>
    <who name="Adenilson Cavalcanti Silva">savagobr</who>
    <bug_when>2012-01-21 19:11:00 -0800</bug_when>
    <thetext>Created attachment 123468
No more operators or shared pointer/pimple</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>540211</commentid>
    <comment_count>23</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-21 19:13:09 -0800</bug_when>
    <thetext>Attachment 123468 did not pass style-queue:

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

Source/WebKit2/UIProcess/API/qt/qtwebsecurityorigin.cpp:130:  An else statement can be removed when the prior &quot;if&quot; concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
Total errors found: 1 in 11 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>540216</commentid>
    <comment_count>24</comment_count>
    <who name="Adenilson Cavalcanti Silva">savagobr</who>
    <bug_when>2012-01-21 19:37:42 -0800</bug_when>
    <thetext>Removed the pimple/shared pointer plus all the operators.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>540219</commentid>
    <comment_count>25</comment_count>
      <attachid>123469</attachid>
    <who name="Adenilson Cavalcanti Silva">savagobr</who>
    <bug_when>2012-01-21 19:48:55 -0800</bug_when>
    <thetext>Created attachment 123469
Including the qml test.

Including the qml utest file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>540220</commentid>
    <comment_count>26</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-21 19:51:57 -0800</bug_when>
    <thetext>Attachment 123469 did not pass style-queue:

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

Source/WebKit2/UIProcess/API/qt/qtwebsecurityorigin.cpp:130:  An else statement can be removed when the prior &quot;if&quot; concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
Total errors found: 1 in 12 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>540221</commentid>
    <comment_count>27</comment_count>
      <attachid>123470</attachid>
    <who name="Adenilson Cavalcanti Silva">savagobr</who>
    <bug_when>2012-01-21 20:09:21 -0800</bug_when>
    <thetext>Created attachment 123470
ChangeLog was missing the new qml test file</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>540222</commentid>
    <comment_count>28</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-21 20:11:18 -0800</bug_when>
    <thetext>Attachment 123470 did not pass style-queue:

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

Source/WebKit2/UIProcess/API/qt/qtwebsecurityorigin.cpp:130:  An else statement can be removed when the prior &quot;if&quot; concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
Total errors found: 1 in 12 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>540249</commentid>
    <comment_count>29</comment_count>
      <attachid>123470</attachid>
    <who name="Rafael Brandao">rafael.lobo</who>
    <bug_when>2012-01-22 08:58:34 -0800</bug_when>
    <thetext>Comment on attachment 123470
ChangeLog was missing the new qml test file

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

I couldn&apos;t look into the whole patch, but just giving an informal review anyway... Besides the test is there, they don&apos;t really cover what should be tested there.

&gt; Source/WebKit2/UIProcess/API/qt/qtwebsecurityorigin.cpp:133
&gt; +            return m_url.path() == QFileInfo(m_url.path()).canonicalFilePath();

You could eliminate the &quot;else&quot; because getting into the condition of the previous if would have early returned anyway. :)

&gt; Source/WebKit2/UIProcess/API/qt/tests/qmltests/WebView/tst_origin.qml:41
&gt; +            compare(webView.success, true)

So how exactly are we testing the case when webView.success is false (you set it in this test but you don&apos;t use it)?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>540270</commentid>
    <comment_count>30</comment_count>
      <attachid>123470</attachid>
    <who name="Alexander Færøy">ahf</who>
    <bug_when>2012-01-22 10:01:47 -0800</bug_when>
    <thetext>Comment on attachment 123470
ChangeLog was missing the new qml test file

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

&gt; Source/WebKit2/UIProcess/API/qt/qtwebsecurityorigin.cpp:24
&gt; +#include &lt;KURL.h&gt;

Is this really needed?

&gt; Source/WebKit2/UIProcess/API/qt/qtwebsecurityorigin.cpp:44
&gt; +    return (scheme == QString::fromUtf8(&quot;qrc&quot;)) ? true : (scheme == QString::fromUtf8(&quot;file&quot;));

Couldn&apos;t you do something like: return scheme == QLatin1String(&quot;qrc&quot;) || scheme == QLatin1String(&quot;file&quot;); ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>540279</commentid>
    <comment_count>31</comment_count>
    <who name="Adenilson Cavalcanti Silva">savagobr</who>
    <bug_when>2012-01-22 10:46:46 -0800</bug_when>
    <thetext>Rafael

Thanks for the comments. I will answer inline.

(In reply to comment #29)
&gt; (From update of attachment 123470 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=123470&amp;action=review
&gt; 
&gt; I couldn&apos;t look into the whole patch, but just giving an informal review anyway... Besides the test is there, they don&apos;t really cover what should be tested there.
&gt; 

What is not covered? Do you mean all the remaining properties? Or something else?

&gt; &gt; Source/WebKit2/UIProcess/API/qt/qtwebsecurityorigin.cpp:133
&gt; &gt; +            return m_url.path() == QFileInfo(m_url.path()).canonicalFilePath();
&gt; 
&gt; You could eliminate the &quot;else&quot; because getting into the condition of the previous if would have early returned anyway. :)

Indeed.

&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/qt/tests/qmltests/WebView/tst_origin.qml:41
&gt; &gt; +            compare(webView.success, true)
&gt; 
&gt; So how exactly are we testing the case when webView.success is false (you set it in this test but you don&apos;t use it)?

The idea is that the test will fail if the reported url port/scheme is different from the expected value (then webView.success is set to false inside the if clause in onPermissionRequested).

The default behavior for the test is to succeed, this is why compare checks for true. If different, the test fails, since it will eval to: compare(false, true).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>540281</commentid>
    <comment_count>32</comment_count>
    <who name="Adenilson Cavalcanti Silva">savagobr</who>
    <bug_when>2012-01-22 10:57:13 -0800</bug_when>
    <thetext>Alexander

Thanks for the comments, answers inline.

&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/qt/qtwebsecurityorigin.cpp:24
&gt; &gt; +#include &lt;KURL.h&gt;
&gt; 
&gt; Is this really needed?

Good point! I will remove it.

&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/qt/qtwebsecurityorigin.cpp:44
&gt; &gt; +    return (scheme == QString::fromUtf8(&quot;qrc&quot;)) ? true : (scheme == QString::fromUtf8(&quot;file&quot;));
&gt; 
&gt; Couldn&apos;t you do something like: return scheme == QLatin1String(&quot;qrc&quot;) || scheme == QLatin1String(&quot;file&quot;); ?

Checking in Qt Assistant it seems that using QLatin1String should be faster than creating a new QString object (which is what the code was doing).

I will change it too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>540285</commentid>
    <comment_count>33</comment_count>
      <attachid>123489</attachid>
    <who name="Adenilson Cavalcanti Silva">savagobr</who>
    <bug_when>2012-01-22 11:03:57 -0800</bug_when>
    <thetext>Created attachment 123489
Previous fixes plus: header file, else clause, QLatin1String</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>540320</commentid>
    <comment_count>34</comment_count>
      <attachid>123489</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-01-22 15:13:20 -0800</bug_when>
    <thetext>Comment on attachment 123489
Previous fixes plus: header file, else clause, QLatin1String

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

Some first look! You need to improve the changelogs to better explain what you are doing and how

&gt; Source/WebKit2/UIProcess/API/qt/qtwebsecurityorigin.cpp:22
&gt; +#include &quot;config.h&quot;
&gt; +
&gt; +#include &quot;qtwebsecurityorigin_p.h&quot;

should be grouped together

&gt; Source/WebKit2/UIProcess/API/qt/qtwebsecurityorigin.cpp:35
&gt; +using namespace WebCore;
&gt; +
&gt; +
&gt; +bool QtWebSecurityOrigin::containsScheme(const QString&amp; scheme)

only one newline please

&gt; Source/WebKit2/UIProcess/API/qt/qtwebsecurityorigin.cpp:43
&gt; +    return (scheme == QLatin1String(&quot;qrc&quot;)) ? true : (scheme == QLatin1String(&quot;file&quot;));

That is a pretty weird way of writing that.

&gt; Source/WebKit2/UIProcess/API/qt/qtwebsecurityorigin.cpp:50
&gt; +{
&gt; +
&gt; +    m_url.setScheme(url.scheme());

unneeded newline

Where is a comment/changelog explaining why it makes sense to use a QUrl internally?

&gt; Source/WebKit2/UIProcess/API/qt/qtwebsecurityorigin.cpp:52
&gt; +    if (url.scheme() == QLatin1String(&quot;data&quot;))
&gt; +        return;

a comment would be good here, like &quot;data: urls, inherit the locality of their owner, thus...&quot;

&gt; Source/WebKit2/UIProcess/API/qt/qtwebsecurityorigin.cpp:94
&gt; +
&gt; +void QtWebSecurityOrigin::addLocalScheme(const QString&amp; scheme)
&gt; +{

what happens if I add http? https?

&gt; Source/WebKit2/UIProcess/API/qt/qtwebsecurityorigin.cpp:103
&gt; +    // You cannot remove file:

can I remove qrc?

&gt; Source/WebKit2/UIProcess/API/qt/qtwebsecurityorigin.cpp:123
&gt; +bool QtWebSecurityOrigin::canAccess(const QUrl&amp; anotherUrl, OriginPolicyFlags flags)

why anotherUrl and not just url?

&gt; Source/WebKit2/UIProcess/API/qt/qtwebsecurityorigin.cpp:135
&gt; +    if (scheme() == QLatin1String(&quot;data&quot;))
&gt; +        return false;
&gt; +
&gt; +    if (containsScheme(m_url.scheme())) {
&gt; +        if (containsScheme(anotherUrl.scheme()) &amp;&amp; (flags &amp; LocalContentHasSystemLocalAccess))
&gt; +            return true;
&gt; +
&gt; +        return m_url.path() == QFileInfo(m_url.path()).canonicalFilePath();
&gt; +    }
&gt; +
&gt; +    return m_url.scheme() == anotherUrl.scheme() &amp;&amp; m_url.host() == anotherUrl.host() &amp;&amp; m_url.port() == anotherUrl.port();

This matches the internal webcore implementation? Can you add a comment about it? or could that code be reused?

&gt; Source/WebKit2/UIProcess/API/qt/qtwebsecurityorigin.cpp:143
&gt; +{
&gt; +    // FIXME: Might need some versioning.
&gt; +    out &lt;&lt; (origin.url().toEncoded().data());
&gt; +    return out;
&gt; +}

Let&apos;s add a version tag then... look what Qt uses for other classes

&gt; Source/WebKit2/UIProcess/API/qt/qtwebsecurityorigin.cpp:154
&gt; +void QtWebSecurityOrigin::setUrl(const QUrl&amp; url)
&gt; +{

What is this needed for?

&gt; Source/WebKit2/UIProcess/API/qt/qtwebsecurityorigin_p.h:40
&gt; +public:
&gt; +    QtWebSecurityOrigin(const QUrl&amp; url, QObject* parent = 0);
&gt; +    virtual ~QtWebSecurityOrigin();

how is the owner ship for this? Does the parent make sense for this class?

&gt; Source/WebKit2/UIProcess/API/qt/qtwebsecurityorigin_p.h:66
&gt; +private:
&gt; +    static bool containsScheme(const QString&amp;);
&gt; +    bool isLocalScheme(const QString&amp;);
&gt; +    QUrl m_url;
&gt; +};

Would it make sense to make this class an implicitly shared class? Will it be copied around?

&gt; Source/WebKit2/UIProcess/API/qt/qwebpermissionrequest.cpp:36
&gt;          , request(permissionRequest)
&gt; +        , securityInfo(QUrl(), 0)
&gt;          , allow(false)

look, parent = 0... does it make sense? why is the QUrl not a default ctor value?

&gt; Source/WebKit2/UIProcess/API/qt/qwebpermissionrequest.cpp:39
&gt;      {
&gt; +
&gt; +        QUrl data;

stall newline

&gt; Source/WebKit2/UIProcess/API/qt/qwebpermissionrequest.cpp:49
&gt; +        data.setPort(static_cast&lt;int&gt;(WKSecurityOriginGetPort(origin.get())));
&gt; +        securityInfo.setUrl(data);
&gt; +
&gt;      }

stall newline

&gt; Source/WebKit2/UIProcess/API/qt/tests/qmltests/WebView/tst_origin.qml:16
&gt; +    experimental.onPermissionRequested: {
&gt; +        if (permission.securityOrigin.port != webView.port) {

Maybe it should just be exported as &quot;origin&quot; ?

&gt; Source/WebKit2/UIProcess/API/qt/tests/qmltests/WebView/tst_origin.qml:17
&gt; +            console.log(&quot;Port is wrong&quot;)

could be said better? :-) why it is wrong?

&gt; Source/WebKit2/UIProcess/API/qt/tests/qmltests/WebView/tst_origin.qml:31
&gt; +        // Delayed windowShown to workaround problems with Qt5 in debug mode.
&gt; +        when: false

bug url?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>540425</commentid>
    <comment_count>35</comment_count>
      <attachid>123489</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2012-01-23 01:15:31 -0800</bug_when>
    <thetext>Comment on attachment 123489
Previous fixes plus: header file, else clause, QLatin1String

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

&gt;&gt; Source/WebKit2/UIProcess/API/qt/qtwebsecurityorigin.cpp:43
&gt;&gt; +    return (scheme == QLatin1String(&quot;qrc&quot;)) ? true : (scheme == QLatin1String(&quot;file&quot;));
&gt; 
&gt; That is a pretty weird way of writing that.

And shouldn&apos;t this function use the WebCore Scheme registry instead of hard-coding qrc and file?

&gt;&gt; Source/WebKit2/UIProcess/API/qt/qtwebsecurityorigin.cpp:52
&gt;&gt; +        return;
&gt; 
&gt; a comment would be good here, like &quot;data: urls, inherit the locality of their owner, thus...&quot;

Isn&apos;t there a central function in WebCore to call for that instead of hard-coding the scheme here?

&gt; Source/WebKit2/UIProcess/API/qt/qtwebsecurityorigin.cpp:99
&gt; +    if (containsScheme(scheme))
&gt; +        return;
&gt; +
&gt; +    SchemeRegistry::registerURLSchemeAsLocal(scheme);
&gt; +}

Why the containsScheme check? AFAICS the scheme registry uses a hashset, so the &quot;contains&quot; check appears redundant to me.

Why is this method exported, who is the caller?

&gt; Source/WebKit2/UIProcess/API/qt/qtwebsecurityorigin.cpp:107
&gt; +    if (scheme == QLatin1String(&quot;file&quot;))
&gt; +        return;
&gt; +
&gt; +    SchemeRegistry::removeURLSchemeRegisteredAsLocal(scheme);

This is again a redundant check, because the implementation in SchemeRegistry does the same checking.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>540427</commentid>
    <comment_count>36</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2012-01-23 01:17:16 -0800</bug_when>
    <thetext>I think the general &quot;theme&quot; of this feature should be about exporting existing functionality. I don&apos;t like that we have all these &quot;qrc:&quot;, &quot;data:&quot; and &quot;file:&quot; checks in the code, because this is security sensitive code that I don&apos;t think we should duplicate but instead share with WebCore as much as possible. The goal should be make existing functionality available, not to duplicate it before the export.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>541326</commentid>
    <comment_count>37</comment_count>
      <attachid>123733</attachid>
    <who name="Adenilson Cavalcanti Silva">savagobr</who>
    <bug_when>2012-01-24 07:54:39 -0800</bug_when>
    <thetext>Created attachment 123733
Addressing reviewers comments (still missing the versioning in stream operator)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>541329</commentid>
    <comment_count>38</comment_count>
      <attachid>123733</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-01-24 08:00:18 -0800</bug_when>
    <thetext>Comment on attachment 123733
Addressing reviewers comments (still missing the versioning in stream operator)

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

&gt; Source/WebKit2/UIProcess/API/qt/qtwebsecurityorigin.cpp:109
&gt; +bool QtWebSecurityOrigin::canAccess(const QUrl&amp; url, OriginPolicyFlags flags)
&gt; +{
&gt; +    if (scheme() == QLatin1String(&quot;data&quot;))
&gt; +        return false;
&gt; +
&gt; +    if (containsScheme(m_url.scheme())) {
&gt; +        if (containsScheme(url.scheme()) &amp;&amp; (flags &amp; LocalContentHasSystemLocalAccess))
&gt; +            return true;
&gt; +
&gt; +        return m_url.path() == QFileInfo(m_url.path()).canonicalFilePath();
&gt; +    }
&gt; +
&gt; +    return m_url.scheme() == url.scheme() &amp;&amp; m_url.host() == url.host() &amp;&amp; m_url.port() == url.port();
&gt; +}

I think we should leave this out for now, or at least make it use webcore internals.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>541333</commentid>
    <comment_count>39</comment_count>
      <attachid>123733</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2012-01-24 08:07:49 -0800</bug_when>
    <thetext>Comment on attachment 123733
Addressing reviewers comments (still missing the versioning in stream operator)

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

&gt; Source/WebKit2/UIProcess/API/qt/qtwebsecurityorigin.cpp:33
&gt; +bool QtWebSecurityOrigin::containsScheme(const QString&amp; scheme)

I think this function should be called isLocalScheme or something. The current name suggests that it checks if the given scheme is &quot;contained&quot; in the _instance_ of the security origin, which doesn&apos;t make much sense to me and it&apos;s also not what the function does :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>542271</commentid>
    <comment_count>40</comment_count>
      <attachid>123943</attachid>
    <who name="Adenilson Cavalcanti Silva">savagobr</who>
    <bug_when>2012-01-25 08:00:26 -0800</bug_when>
    <thetext>Created attachment 123943
Removed canAccess() method, added versioning in stream object</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>542297</commentid>
    <comment_count>41</comment_count>
    <who name="Adenilson Cavalcanti Silva">savagobr</who>
    <bug_when>2012-01-25 08:33:36 -0800</bug_when>
    <thetext>And containsScheme() now is called isLocalScheme().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>542539</commentid>
    <comment_count>42</comment_count>
      <attachid>123943</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-01-25 12:43:17 -0800</bug_when>
    <thetext>Comment on attachment 123943
Removed canAccess() method, added versioning in stream object

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

Getting there, maybe Simon should have a look more.

I think the changelogs could be a bit more elaborate... ie. explain what it really adds, and maybe how it is implemented (ie why use a QUrl inside)

&gt; Source/WebKit2/UIProcess/API/qt/qtwebsecurityorigin.cpp:101
&gt; +QDataStream&amp; operator&lt;&lt;(QDataStream&amp; out, const QtWebSecurityOrigin &amp;origin)
&gt; +{
&gt; +    out.setVersion(QDataStream::Qt_4_0);
&gt; +    out &lt;&lt; (origin.url().toEncoded().data());
&gt; +    return out;
&gt; +}

hmm, is this correct simon?

&gt; Source/WebKit2/UIProcess/API/qt/qtwebsecurityorigin_p.h:58
&gt; +
&gt; +    enum OriginPolicyFlags {
&gt; +        ContentHasSameOriginAccess = 0x0,
&gt; +        LocalContentHasRemoteAccess = 0x1,
&gt; +        LocalContentHasSystemLocalAccess = 0x2
&gt; +    };

This is dead code for now, remove.

&gt; Source/WebKit2/UIProcess/API/qt/qtwebsecurityorigin_p.h:61
&gt; +private:
&gt; +    bool isLocalScheme(const QString&amp;);

Is it ok to not have this in a private class?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>544681</commentid>
    <comment_count>43</comment_count>
      <attachid>124446</attachid>
    <who name="Adenilson Cavalcanti Silva">savagobr</who>
    <bug_when>2012-01-28 13:34:40 -0800</bug_when>
    <thetext>Created attachment 124446
Removed dead code, more descriptive changelog</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>544682</commentid>
    <comment_count>44</comment_count>
      <attachid>124447</attachid>
    <who name="Adenilson Cavalcanti Silva">savagobr</who>
    <bug_when>2012-01-28 13:43:57 -0800</bug_when>
    <thetext>Created attachment 124447
Removed methods from changelog</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>544729</commentid>
    <comment_count>45</comment_count>
      <attachid>124447</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-01-29 04:15:48 -0800</bug_when>
    <thetext>Comment on attachment 124447
Removed methods from changelog

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

&gt; ChangeLog:10
&gt; +        Reviewed by NOBODY (OOPS!).
&gt; +
&gt; +        Introducing a new class to expose security origin information (port/scheme/etc), useful for inspecting the origin of permission requests.
&gt; +
&gt; +        This class uses methods from SchemeRegistry, thus allowing to add/remove/list local schemes too.

could you please wrap these lines in 80-100 chars

&gt; Source/WebKit2/UIProcess/API/qt/qtwebsecurityorigin.cpp:107
&gt; +
&gt; +// Used to set security information in a permission request event (e.g.
&gt; +// geolocation permission)
&gt; +void QtWebSecurityOrigin::setUrl(const QUrl&amp; url)

Seems like info for the header instead

&gt; Source/WebKit2/UIProcess/API/qt/qtwebsecurityorigin_p.h:36
&gt; +    Q_PROPERTY(QUrl url READ url CONSTANT)

Huh? Why is that exposed? What is the url for the origin? it is pretty ambigious.

&gt; Source/WebKit2/UIProcess/API/qt/qwebpermissionrequest.cpp:45
&gt; +        QUrl data;
&gt; +        WKRetainPtr&lt;WKStringRef&gt; url = adoptWK(WKSecurityOriginCopyProtocol(origin.get()));
&gt; +        data.setScheme(WKStringCopyQString(url.get()));
&gt; +
&gt; +        WKRetainPtr&lt;WKStringRef&gt; host = adoptWK(WKSecurityOriginCopyHost(origin.get()));
&gt; +        data.setHost(WKStringCopyQString(host.get()));
&gt; +
&gt; +        data.setPort(static_cast&lt;int&gt;(WKSecurityOriginGetPort(origin.get())));
&gt; +        securityInfo.setUrl(data);

That you are storing it internally as an url is probably fine, but it shouldn&apos;t be exposed that much in the api.

I really dislike the setUrl API (you are making an implementation detail shine through the api, bad).

Why not have a securityOrigin = QtWebSecurityOrigin::create(scheme, host, port); or make it the ctor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>544732</commentid>
    <comment_count>46</comment_count>
    <who name="Adenilson Cavalcanti Silva">savagobr</who>
    <bug_when>2012-01-29 06:25:38 -0800</bug_when>
    <thetext>Kenneth

Thanks for the review, I will comment inline.

&gt; 
&gt; could you please wrap these lines in 80-100 chars
&gt; 

Cool, I will do that.

&gt; 
&gt; Seems like info for the header instead
&gt; 

Easy to fix, np.


&gt; Huh? Why is that exposed? What is the url for the origin? it is pretty ambigious.
&gt; 

You suggest to (exclusive):
a) Not have this as a property

or

b) Not have any way to access the QUrl?


&gt; 
&gt; I really dislike the setUrl API (you are making an implementation detail shine through the api, bad).
&gt; 
&gt; Why not have a securityOrigin = QtWebSecurityOrigin::create(scheme, host, port); or make it the ctor.

At time the object will be constructed, I lack the information (port/scheme/etc) to fill in the object, at least in the case of QWebPermissionRequest.

The &apos;setUrl&apos; was suggested by Simon (but I can change if you wish) and allows to fill in the information after the object is constructed. Maybe you will recall that a previous version of this patch was passing an empty QUrl() object in the constructor (and you suggested to remove it)?

Going with a factory like approach (i.e. a static ::create() method) would imply that the user of this class (e.g. QWebPermissionRequest) is going to always use a pointer to handle it? This adds some complexity in its usage, since it will need to have a shared pointer of some sort to ensure that the pointer will be freed (instead of an object living in the stack) or even worst to explicitly delete it.

The problems that I&apos;m trying to solve are:
a) Allow to fill in the security origin information into the object after the object was constructed

b) Allow the user of this new class to both create/use the object in both the stack and the heap.


Best regards


Adenilson</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>544985</commentid>
    <comment_count>47</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-01-30 03:33:12 -0800</bug_when>
    <thetext>
&gt; 
&gt; &gt; Huh? Why is that exposed? What is the url for the origin? it is pretty ambigious.
&gt; &gt; 
&gt; 
&gt; You suggest to (exclusive):
&gt; a) Not have this as a property
&gt; 
&gt; or
&gt; 
&gt; b) Not have any way to access the QUrl?

a) is a must, b) would be nice.

&gt; At time the object will be constructed, I lack the information (port/scheme/etc) to fill in the object, at least in the case of QWebPermissionRequest.
&gt; 
&gt; The &apos;setUrl&apos; was suggested by Simon (but I can change if you wish) and allows to fill in the information after the object is constructed. Maybe you will recall that a previous version of this patch was passing an empty QUrl() object in the constructor (and you suggested to remove it)?

I think that an inline setScheme, setPort etc would be better.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>547045</commentid>
    <comment_count>48</comment_count>
      <attachid>124941</attachid>
    <who name="Adenilson Cavalcanti Silva">savagobr</who>
    <bug_when>2012-02-01 06:21:30 -0800</bug_when>
    <thetext>Created attachment 124941
Adding setters for security info (instead of a setUrl()), removed the stream operators.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>547051</commentid>
    <comment_count>49</comment_count>
      <attachid>124943</attachid>
    <who name="Adenilson Cavalcanti Silva">savagobr</who>
    <bug_when>2012-02-01 06:34:30 -0800</bug_when>
    <thetext>Created attachment 124943
Previous fixes, changelog</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>549937</commentid>
    <comment_count>50</comment_count>
      <attachid>124943</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2012-02-06 06:04:57 -0800</bug_when>
    <thetext>Comment on attachment 124943
Previous fixes, changelog

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

This is much much better :-). A few comments/questions.

&gt; Source/WebKit2/UIProcess/API/qt/qtwebsecurityorigin_p.h:55
&gt; +    static void addLocalScheme(const QString&amp; scheme);
&gt; +    static void removeLocalScheme(const QString&amp; scheme);
&gt; +    static QStringList localSchemes();

I don&apos;t see any code in this patch calling these newly added functions, so it looks like adding dead code. Should they perhaps be part of another patch that adds them when they&apos;re needed? (as-is they are not even callable in QML)

&gt; Source/WebKit2/UIProcess/API/qt/qwebpermissionrequest_p.h:37
&gt; +    Q_PROPERTY(QtWebSecurityOrigin* origin READ securityOrigin)

Any particular reason to call the property &quot;origin&quot; but the getter function (and class) is called _security_Origin?

&gt; Source/qtwebkit-export.map:161
&gt; +        *QtWebSecurityOrigin;
&gt; +        non-virtual?thunk?to?QtWebSecurityOrigin*;
&gt; +        QtWebSecurityOrigin::*;

Thankfully this file is gone and this hunk won&apos;t be needed anymore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>549941</commentid>
    <comment_count>51</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-02-06 06:08:12 -0800</bug_when>
    <thetext>
&gt; I don&apos;t see any code in this patch calling these newly added functions, so it looks like adding dead code. Should they perhaps be part of another patch that adds them when they&apos;re needed? (as-is they are not even callable in QML)

Yeah, adding this with a test (lets say using geolocation from a local qrc file?) would rock.


&gt; &gt; Source/WebKit2/UIProcess/API/qt/qwebpermissionrequest_p.h:37
&gt; &gt; +    Q_PROPERTY(QtWebSecurityOrigin* origin READ securityOrigin)
&gt; 
&gt; Any particular reason to call the property &quot;origin&quot; but the getter function (and class) is called _security_Origin?

origin is a better name... it is the origin of the premission request and origin also fits better with the CORS spec (cross-origin...)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>554058</commentid>
    <comment_count>52</comment_count>
      <attachid>124943</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2012-02-10 06:42:52 -0800</bug_when>
    <thetext>Comment on attachment 124943
Previous fixes, changelog

Taking this out of the review queue. There are some open questions in earlier comments and the patch needs a rebase due to the export map file removal.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>556307</commentid>
    <comment_count>53</comment_count>
      <attachid>126979</attachid>
    <who name="Adenilson Cavalcanti Silva">savagobr</who>
    <bug_when>2012-02-14 07:59:21 -0800</bug_when>
    <thetext>Created attachment 126979
Adapt to recent trunk changes (export map/qml imports), removed the static methods

Less is more.
:-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>556308</commentid>
    <comment_count>54</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-14 08:02:25 -0800</bug_when>
    <thetext>Attachment 126979 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/update-webkit&apos;]&quot; exit_code: 9

Updating OpenSource
First, rewinding head to replay your work on top of it...
Applying: [Mac][Win][WK2] Switch to RFC 6455 protocol for WebSockets
Using index info to reconstruct a base tree...
&lt;stdin&gt;:1578: trailing whitespace.
        
&lt;stdin&gt;:1647: trailing whitespace.
    
&lt;stdin&gt;:1657: trailing whitespace.
    
&lt;stdin&gt;:1672: trailing whitespace.
        return 0;        
&lt;stdin&gt;:1674: trailing whitespace.
    
warning: squelched 7 whitespace errors
warning: 12 lines add whitespace errors.
Falling back to patching base and 3-way merge...
warning: too many files (created: 168776 deleted: 3), skipping inexact rename detection
Auto-merging LayoutTests/ChangeLog
CONFLICT (content): Merge conflict in LayoutTests/ChangeLog
Auto-merging Source/WebCore/ChangeLog
CONFLICT (content): Merge conflict in Source/WebCore/ChangeLog
Auto-merging Source/WebKit2/ChangeLog
CONFLICT (content): Merge conflict in Source/WebKit2/ChangeLog
Auto-merging Tools/ChangeLog
CONFLICT (content): Merge conflict in Tools/ChangeLog
Failed to merge in the changes.
Patch failed at 0001 [Mac][Win][WK2] Switch to RFC 6455 protocol for WebSockets

When you have resolved this problem run &quot;git rebase --continue&quot;.
If you would prefer to skip this patch, instead run &quot;git rebase --skip&quot;.
To restore the original branch and stop rebasing run &quot;git rebase --abort&quot;.

rebase refs/remotes/origin/master: command returned error: 1

Died at Tools/Scripts/update-webkit line 164.


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>557116</commentid>
    <comment_count>55</comment_count>
      <attachid>126979</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-02-15 03:39:01 -0800</bug_when>
    <thetext>Comment on attachment 126979
Adapt to recent trunk changes (export map/qml imports), removed the static methods

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

&gt; Source/WebKit2/UIProcess/API/qt/qtwebsecurityorigin_p.h:51
&gt; +    // Used to set security information in a permission request event (e.g.
&gt; +    // geolocation permission)
&gt; +    void setScheme(const QString&amp; scheme) { m_url.setScheme(scheme); }
&gt; +    void setHost(const QString&amp; host) { m_url.setHost(host); }
&gt; +    void setPath(const QString&amp; path) { m_url.setPath(path); }
&gt; +    void setPort(int port) { m_url.setPort(port); }

Maybe we should make those classes friends instead?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>557187</commentid>
    <comment_count>56</comment_count>
    <who name="Adenilson Cavalcanti Silva">savagobr</who>
    <bug_when>2012-02-15 05:35:50 -0800</bug_when>
    <thetext>Kenneth

Thanks for the comment.

I thought about friend-ing both classes (since this would help to remove some boilerplate code i.e. the setters/getters), but this poses a question: what happens if other class got to use QtWebSecurityOrigin? 

This would force any user to also become a friend (thus breaking data encapsulation and inspiring layer violations). 

That would not be *that* different about how the current trunk code is (i.e. QWebPermissionRequest has basically the same code that was moved to QtWebSecurityOrigin).


Adenilson</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>557283</commentid>
    <comment_count>57</comment_count>
      <attachid>126979</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-15 08:02:42 -0800</bug_when>
    <thetext>Comment on attachment 126979
Adapt to recent trunk changes (export map/qml imports), removed the static methods

Rejecting attachment 126979 from commit-queue.

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

Last 500 characters of output:
s-conflict --ignore-externals&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;
46&gt;At revision 10635.

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

________ running &apos;/usr/bin/python gyp_webkit&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;
Updating webkit projects from gyp files...
Updating OpenSource
fatal: The remote end hung up unexpectedly
Died at Tools/Scripts/update-webkit line 162.

Full output: http://queues.webkit.org/results/11515808</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>557819</commentid>
    <comment_count>58</comment_count>
      <attachid>127295</attachid>
    <who name="Adenilson Cavalcanti Silva">savagobr</who>
    <bug_when>2012-02-15 18:57:10 -0800</bug_when>
    <thetext>Created attachment 127295
Just rebased the patch, style bot probably is broken</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>557964</commentid>
    <comment_count>59</comment_count>
      <attachid>127295</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-16 00:26:16 -0800</bug_when>
    <thetext>Comment on attachment 127295
Just rebased the patch, style bot probably is broken

Rejecting attachment 127295 from commit-queue.

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

Last 500 characters of output:
t/git/webkit-commit-queue/Source/WebKit/chromium/v8 --revision 10703 --non-interactive --force --accept theirs-conflict --ignore-externals&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;
46&gt;At revision 10703.

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

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

Full output: http://queues.webkit.org/results/11534697</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>558010</commentid>
    <comment_count>60</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2012-02-16 02:29:09 -0800</bug_when>
    <thetext>Committed r107914: &lt;http://trac.webkit.org/changeset/107914&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>122049</attachid>
            <date>2012-01-11 10:37:42 -0800</date>
            <delta_ts>2012-01-12 13:29:52 -0800</delta_ts>
            <desc>Imported code, implemented missing methods/operators, integrated with QWebPermissionRequest</desc>
            <filename>origin_step4.patch</filename>
            <type>text/plain</type>
            <size>15611</size>
            <attacher name="Adenilson Cavalcanti Silva">savagobr</attacher>
            
              <data encoding="base64">RnJvbSBjNzFlZmIwNmIzNjdjYmU2ZjIwYzYwN2IzZGViYjNhZDM1MWE3NmJkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBZGVuaWxzb24gQ2F2YWxjYW50aSA8Y2F2YWxjYW50aWlAZ21h
aWwuY29tPgpEYXRlOiBXZWQsIDExIEphbiAyMDEyIDEyOjQ2OjQzIC0wNDAwClN1YmplY3Q6IFtQ
QVRDSF0gSW1wb3J0ZWQgb3JpZ2luYWwgY29kZSwgaW1wbGVtZW50ZWQgbWlzc2luZwogbWV0aG9k
cy9vcGVyYXRvcnMsIGludGVncmF0aW9uIHdpdGggUVdlYlBlcm1pc3Npb25SZXF1ZXN0LgoKU2ln
bmVkLW9mZi1ieTogQWRlbmlsc29uIENhdmFsY2FudGkgPGNhdmFsY2FudGlpQGdtYWlsLmNvbT4K
LS0tCiBTb3VyY2UvV2ViS2l0L3F0L2RlY2xhcmF0aXZlL3BsdWdpbi5jcHAgICAgICAgICAgICB8
ICAgIDMgKwogU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfCAgIDE2ICsrCiBTb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpICAgICAgICAgICAgICAgICAg
ICAgICAgICB8ICAgIDIgKwogLi4uL1VJUHJvY2Vzcy9BUEkvcXQvcXR3ZWJzZWN1cml0eW9yaWdp
bi5jcHAgICAgICAgfCAgMTk2ICsrKysrKysrKysrKysrKysrKysrCiAuLi4vVUlQcm9jZXNzL0FQ
SS9xdC9xdHdlYnNlY3VyaXR5b3JpZ2luX3AuaCAgICAgICB8ICAgNzQgKysrKysrKysKIC4uLi9V
SVByb2Nlc3MvQVBJL3F0L3F3ZWJwZXJtaXNzaW9ucmVxdWVzdC5jcHAgICAgIHwgICAyOSArKy0t
CiAuLi4vVUlQcm9jZXNzL0FQSS9xdC9xd2VicGVybWlzc2lvbnJlcXVlc3RfcC5oICAgICB8ICAg
IDkgKy0KIDcgZmlsZXMgY2hhbmdlZCwgMzEwIGluc2VydGlvbnMoKyksIDE5IGRlbGV0aW9ucygt
KQogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXR3
ZWJzZWN1cml0eW9yaWdpbi5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL3F0L3F0d2Vic2VjdXJpdHlvcmlnaW5fcC5oCgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9xdC9kZWNsYXJhdGl2ZS9wbHVnaW4uY3BwIGIvU291cmNlL1dlYktpdC9xdC9k
ZWNsYXJhdGl2ZS9wbHVnaW4uY3BwCmluZGV4IDY0NjM4ZTQuLmFkZWJhYzggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvcXQvZGVjbGFyYXRpdmUvcGx1Z2luLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L3F0L2RlY2xhcmF0aXZlL3BsdWdpbi5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRl
ICJxd2VibmF2aWdhdGlvbnJlcXVlc3RfcC5oIgogI2luY2x1ZGUgInF3ZWJwZXJtaXNzaW9ucmVx
dWVzdF9wLmgiCiAjaW5jbHVkZSAicXdlYnByZWZlcmVuY2VzX3AuaCIKKyNpbmNsdWRlICJxdHdl
YnNlY3VyaXR5b3JpZ2luX3AuaCIKIAogI2luY2x1ZGUgPFF0RGVjbGFyYXRpdmUvcWRlY2xhcmF0
aXZlZW5naW5lLmg+CiAjaW5jbHVkZSA8UXROZXR3b3JrL3FuZXR3b3JrcmVwbHkuaD4KQEAgLTY1
LDYgKzY2LDggQEAgcHVibGljOgogICAgICAgICBxbWxSZWdpc3RlclVuY3JlYXRhYmxlVHlwZTxR
TmV0d29ya1JlcGx5Pih1cmksIDMsIDAsICJOZXR3b3JrUmVwbHkiLCBRT2JqZWN0Ojp0cigiQ2Fu
bm90IGNyZWF0ZSBzZXBhcmF0ZSBpbnN0YW5jZSBvZiBOZXR3b3JrUmVwbHkiKSk7CiAgICAgICAg
IHFtbFJlZ2lzdGVyVW5jcmVhdGFibGVUeXBlPFFXZWJQZXJtaXNzaW9uUmVxdWVzdD4odXJpLCAz
LCAwLCAiUGVybWlzc2lvblJlcXVlc3QiLCBRT2JqZWN0Ojp0cigiQ2Fubm90IGNyZWF0ZSBzZXBh
cmF0ZSBpbnN0YW5jZSBvZiBQZXJtaXNzaW9uUmVxdWVzdCIpKTsKICAgICAgICAgcW1sUmVnaXN0
ZXJVbmNyZWF0YWJsZVR5cGU8UVdlYk5hdmlnYXRpb25SZXF1ZXN0Pih1cmksIDMsIDAsICJOYXZp
Z2F0aW9uUmVxdWVzdCIsIFFPYmplY3Q6OnRyKCJDYW5ub3QgY3JlYXRlIHNlcGFyYXRlIGluc3Rh
bmNlIG9mIE5hdmlnYXRpb25SZXF1ZXN0IikpOworICAgICAgICBxbWxSZWdpc3RlclVuY3JlYXRh
YmxlVHlwZTxRdFdlYlNlY3VyaXR5T3JpZ2luPih1cmksIDMsIDAsICJTZWN1cml0eU9yaWdpbiIs
IFFPYmplY3Q6OnRyKCJDYW5ub3QgY3JlYXRlIHNlcGFyYXRlIGluc3RhbmNlIG9mIFNlY3VyaXR5
T3JpZ2luIikpOworCiAjZW5kaWYKICAgICB9CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDlhZmExOTQuLjU4
MTM3NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxMi0wMS0xMSAgQWRlbmlsc29u
IENhdmFsY2FudGkgIDxjYXZhbGNhbnRpaUBnbWFpbC5jb20+CisKKyAgICAgICAgU3BsaXQgUVdl
YlBlcm1pc3Npb25SZXF1ZXN0IGludG8gUVdlYlNlY3VyaXR5T3JpZ2luCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzIxNQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEludHJvZHVjaW5nIGEgY2xhc3MgdG8g
YWxsb3cgYWNjZXNzIHRvIHNhbWUgb3JpZ2luIGluZm9ybWF0aW9uLAorICAgICAgICB3aGlsZSBy
ZW1vdmluZyB0aGlzIGJpdHMgZnJvbSBRV2ViUGVybWlzc2lvblJlcXVlc3QuCisKKyAgICAgICAg
KiBUYXJnZXQucHJpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXdlYnBlcm1pc3Npb25y
ZXF1ZXN0LmNwcDoKKyAgICAgICAgKFFXZWJQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGU6OlFXZWJQ
ZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUpOgorICAgICAgICAoUVdlYlBlcm1pc3Npb25SZXF1ZXN0
OjpzZWN1cml0eU9yaWdpbik6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xd2VicGVybWlz
c2lvbnJlcXVlc3RfcC5oOgorCiAyMDEyLTAxLTExICBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxn
dXN0YXZvLm5vcm9uaGFAY29sbGFib3JhLmNvbT4KIAogICAgICAgICBbR1RLXSBMaW5raW5nIG9m
IGJpZyBiaW5hcmllcyBzaG91bGQgYmUgc2VyaWFsaXplZCB0byBhdm9pZCB0aHJhc2hpbmcKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViS2l0Mi9UYXJn
ZXQucHJpCmluZGV4IDM1OTgzZjAuLjgyNDkwNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaQpAQCAtMTc0LDYgKzE3
NCw3IEBAIEhFQURFUlMgKz0gXAogICAgIFVJUHJvY2Vzcy9BUEkvcXQvcXdlYmRvd25sb2FkaXRl
bV9wLmggXAogICAgIFVJUHJvY2Vzcy9BUEkvcXQvcXdlYmRvd25sb2FkaXRlbV9wX3AuaCBcCiAg
ICAgVUlQcm9jZXNzL0FQSS9xdC9xd2VicGVybWlzc2lvbnJlcXVlc3RfcC5oIFwKKyAgICBVSVBy
b2Nlc3MvQVBJL3F0L3F0d2Vic2VjdXJpdHlvcmlnaW5fcC5oIFwKICAgICBVSVByb2Nlc3MvQVBJ
L3F0L3F3ZWJuYXZpZ2F0aW9ucmVxdWVzdF9wLmggXAogICAgIFVJUHJvY2Vzcy9BUEkvcXQvcXF1
aWNrd2VicGFnZV9wLmggXAogICAgIFVJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2VicGFnZV9wX3Au
aCBcCkBAIC01MDQsNiArNTA1LDcgQEAgU09VUkNFUyArPSBcCiAgICAgVUlQcm9jZXNzL0FQSS9j
cHAvcXQvV0tVUkxRdC5jcHAgXAogICAgIFVJUHJvY2Vzcy9BUEkvcXQvcXdlYmRvd25sb2FkaXRl
bS5jcHAgXAogICAgIFVJUHJvY2Vzcy9BUEkvcXQvcXdlYnBlcm1pc3Npb25yZXF1ZXN0LmNwcCBc
CisgICAgVUlQcm9jZXNzL0FQSS9xdC9xdHdlYnNlY3VyaXR5b3JpZ2luLmNwcCBcCiAgICAgVUlQ
cm9jZXNzL0FQSS9xdC9xd2VibmF2aWdhdGlvbnJlcXVlc3QuY3BwIFwKICAgICBVSVByb2Nlc3Mv
QVBJL3F0L3FxdWlja3dlYnBhZ2UuY3BwIFwKICAgICBVSVByb2Nlc3MvQVBJL3F0L3F3ZWJuYXZp
Z2F0aW9uaGlzdG9yeS5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9xdC9xdHdlYnNlY3VyaXR5b3JpZ2luLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvcXQvcXR3ZWJzZWN1cml0eW9yaWdpbi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uZjc4N2JjYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvcXQvcXR3ZWJzZWN1cml0eW9yaWdpbi5jcHAKQEAgLTAsMCArMSwxOTYgQEAK
Ky8qCisgICAgQ29weXJpZ2h0IChDKSAyMDEyIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMg
c3Vic2lkaWFyeSgtaWVzKQorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy
bXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICAgTGljZW5zZSBhcyBwdWJs
aXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICAgdmVyc2lv
biAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u
LgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg
d2lsbCBiZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2
ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91IHNob3VsZCBo
YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZQorICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5M
SUIuICBJZiBub3QsIHdyaXRlIHRvCisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg
SW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBCb3N0b24sIE1BIDAy
MTEwLTEzMDEsIFVTQS4KKyovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2luY2x1ZGUgInF0
d2Vic2VjdXJpdHlvcmlnaW5fcC5oIgorCisjaW5jbHVkZSA8S1VSTC5oPgorI2luY2x1ZGUgPFF0
Q29yZS9RRmlsZUluZm8+CisjaW5jbHVkZSA8UXRDb3JlL1FTdHJpbmdMaXN0PgorI2luY2x1ZGUg
PFNjaGVtZVJlZ2lzdHJ5Lmg+CisjaW5jbHVkZSA8U2VjdXJpdHlPcmlnaW4uaD4KKyNpbmNsdWRl
IDxXZWJLaXQyL1dLQmFzZS5oPgorI2luY2x1ZGUgPFdlYktpdDIvV0tSZXRhaW5QdHIuaD4KKyNp
bmNsdWRlIDxXZWJLaXQyL1dLU2VjdXJpdHlPcmlnaW4uaD4KKwordXNpbmcgbmFtZXNwYWNlIFdl
YkNvcmU7CisKKy8vIExvb2sgYXQgd2Via2l0MSBvbiBob3cgdG8gZG8gdGhpcyBwcm9wZXJseS4K
Ky8vIFRoZXNlIG5lZWRzIHRvIGJlIGluIHN5bmMgYXQgd2ViIHByb2Nlc3Mgc3RhcnQgdXAgYW5k
IHNlbmQgb3ZlciB3aGVuIGNoYW5nZWQuCitzdGF0aWMgUVN0cmluZ0xpc3Qgc19sb2NhbFNjaGVt
ZXM7CisKK2NsYXNzIFF0V2ViU2VjdXJpdHlPcmlnaW5Qcml2YXRlIDogcHVibGljIFFTaGFyZWRE
YXRhIHsKKworcHVibGljOgorICAgIHZvaWQgbG9jYWxTY2hlbWVzKCkKKyAgICB7CisgICAgICAg
IHNfbG9jYWxTY2hlbWVzLmNsZWFyKCk7CisgICAgICAgIGNvbnN0IFVSTFNjaGVtZXNNYXAmIG1h
cCA9IFNjaGVtZVJlZ2lzdHJ5Ojpsb2NhbFNjaGVtZXMoKTsKKyAgICAgICAgVVJMU2NoZW1lc01h
cDo6Y29uc3RfaXRlcmF0b3IgZW5kID0gbWFwLmVuZCgpOworICAgICAgICBmb3IgKFVSTFNjaGVt
ZXNNYXA6OmNvbnN0X2l0ZXJhdG9yIGkgPSBtYXAuYmVnaW4oKTsgaSAhPSBlbmQ7ICsraSkgewor
ICAgICAgICAgICAgY29uc3QgUVN0cmluZyBzY2hlbWUgPSAqaTsKKyAgICAgICAgICAgIHNfbG9j
YWxTY2hlbWVzLmFwcGVuZChzY2hlbWUpOworICAgICAgICB9CisgICAgfQorCisgICAgUXRXZWJT
ZWN1cml0eU9yaWdpblByaXZhdGUoKQorICAgIHsKKyAgICAgICAgbG9jYWxTY2hlbWVzKCk7Cisg
ICAgfQorCisgICAgflF0V2ViU2VjdXJpdHlPcmlnaW5Qcml2YXRlKCkKKyAgICB7CisgICAgfQor
CisgICAgUVVybCB1cmw7Cit9OworCitib29sIFF0V2ViU2VjdXJpdHlPcmlnaW46OmlzTG9jYWxT
Y2hlbWUoY29uc3QgUVN0cmluZyAmc2NoZW1lKQoreworICAgIC8vIEZJWE1FOiBob3cgdG8gc2F5
IGlmIGEgc2NoZW1lIGlzIGxvY2FsIG9yIG5vdD8KKyAgICBRX1VOVVNFRChzY2hlbWUpCisgICAg
cmV0dXJuIHRydWU7Cit9CisKK1F0V2ViU2VjdXJpdHlPcmlnaW46OlF0V2ViU2VjdXJpdHlPcmln
aW4oY29uc3QgUVVybCYgdXJsLCBRT2JqZWN0ICpwYXJlbnQpCisgICAgOiBRT2JqZWN0KHBhcmVu
dCkKKyAgICAsIGQobmV3IFF0V2ViU2VjdXJpdHlPcmlnaW5Qcml2YXRlKQoreworICAgIGlmIChz
X2xvY2FsU2NoZW1lcy5lbXB0eSgpKQorICAgICAgICBzX2xvY2FsU2NoZW1lcyA8PCBRTGF0aW4x
U3RyaW5nKCJmaWxlIikgPDwgUUxhdGluMVN0cmluZygicXJjIik7CisKKyAgICBkLT51cmwuc2V0
U2NoZW1lKHVybC5zY2hlbWUoKSk7CisgICAgaWYgKHVybC5zY2hlbWUoKSA9PSBRTGF0aW4xU3Ry
aW5nKCJkYXRhIikpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChpc0xvY2FsU2NoZW1lKHVy
bC5zY2hlbWUoKSkpIHsKKyAgICAgICAgLy8gV2Ugc3RvcmUgdGhlIGNhbm5vbmljYWwgcGF0aCwg
aWUuIHRoZSBhYnNvbHV0ZSBwYXRoICp3aXRob3V0KiBzeW1ib2xpYworICAgICAgICAvLyBsaW5r
cyBvciByZWR1bmRhbnQgIi4iIG9yICIuLiIgZWxlbWVudHMuCisgICAgICAgIGQtPnVybC5zZXRQ
YXRoKFFGaWxlSW5mbyh1cmwucGF0aCgpKS5jYW5vbmljYWxGaWxlUGF0aCgpKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKworICAgIGQtPnVybC5zZXRIb3N0KHVybC5ob3N0KCkpOworfQorCitR
dFdlYlNlY3VyaXR5T3JpZ2luOjp+UXRXZWJTZWN1cml0eU9yaWdpbigpCit7Cit9CisKK1FTdHJp
bmcgUXRXZWJTZWN1cml0eU9yaWdpbjo6aG9zdCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGQtPnVy
bC5ob3N0KCk7Cit9CisKK1FTdHJpbmcgUXRXZWJTZWN1cml0eU9yaWdpbjo6c2NoZW1lKCkgY29u
c3QKK3sKKyAgICByZXR1cm4gZC0+dXJsLnNjaGVtZSgpOworfQorCitRU3RyaW5nIFF0V2ViU2Vj
dXJpdHlPcmlnaW46OnBhdGgoKSBjb25zdAoreworICAgIHJldHVybiBkLT51cmwucGF0aCgpOwor
fQorCitpbnQgUXRXZWJTZWN1cml0eU9yaWdpbjo6cG9ydCgpIGNvbnN0Cit7CisgICAgcmV0dXJu
IGQtPnVybC5wb3J0KCk7Cit9CisKK1FVcmwgUXRXZWJTZWN1cml0eU9yaWdpbjo6dXJsKCkgY29u
c3QKK3sKKyAgICByZXR1cm4gZC0+dXJsOworfQordm9pZCBRdFdlYlNlY3VyaXR5T3JpZ2luOjph
ZGRMb2NhbFNjaGVtZShjb25zdCBRU3RyaW5nJiBzY2hlbWUpCit7CisgICAgaWYgKHNfbG9jYWxT
Y2hlbWVzLmNvbnRhaW5zKHNjaGVtZSkpCisgICAgICAgIHJldHVybjsKKworICAgIHNfbG9jYWxT
Y2hlbWVzIDw8IHNjaGVtZTsKKyAgICBTY2hlbWVSZWdpc3RyeTo6cmVnaXN0ZXJVUkxTY2hlbWVB
c0xvY2FsKHNjaGVtZSk7Cit9CisKK3ZvaWQgUXRXZWJTZWN1cml0eU9yaWdpbjo6cmVtb3ZlTG9j
YWxTY2hlbWUoY29uc3QgUVN0cmluZyYgc2NoZW1lKQoreworICAgIC8vIFlvdSBjYW5ub3QgcmVt
b3ZlIGZpbGU6CisgICAgaWYgKHNjaGVtZSA9PSBRTGF0aW4xU3RyaW5nKCJmaWxlIikpCisgICAg
ICAgIHJldHVybjsKKworICAgIHNfbG9jYWxTY2hlbWVzLnJlbW92ZU9uZShzY2hlbWUpOworICAg
IFNjaGVtZVJlZ2lzdHJ5OjpyZW1vdmVVUkxTY2hlbWVSZWdpc3RlcmVkQXNMb2NhbChzY2hlbWUp
OworfQorCitRU3RyaW5nTGlzdCBRdFdlYlNlY3VyaXR5T3JpZ2luOjpsb2NhbFNjaGVtZXMoKQor
eworICAgIHJldHVybiBzX2xvY2FsU2NoZW1lczsKK30KKworYm9vbCBRdFdlYlNlY3VyaXR5T3Jp
Z2luOjpjYW5BY2Nlc3MoY29uc3QgUVVybCYgdXJsLCBPcmlnaW5Qb2xpY3lGbGFncyBmbGFncykK
K3sKKyAgICBpZiAoc2NoZW1lKCkgPT0gUUxhdGluMVN0cmluZygiZGF0YSIpKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoc19sb2NhbFNjaGVtZXMuaW5kZXhPZihkLT51cmwuc2No
ZW1lKCkpICE9IC0xKSB7CisgICAgICAgIGlmIChzX2xvY2FsU2NoZW1lcy5pbmRleE9mKHVybC5z
Y2hlbWUoKSkgIT0gLTEgJiYgKGZsYWdzICYgTG9jYWxDb250ZW50SGFzU3lzdGVtTG9jYWxBY2Nl
c3MpKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGVsc2UgeworICAgICAgICAg
ICAgLy8gRklYTUU6IEl0IHdvdWxkIGJlIG5pY2UgdG8gYWxsb3cgc3ViZGlyIGFjY2VzcyBsaWtl
IGluIEZpcmVmb3gsIGJ1dCB0aGF0IHJlcXVpcmVzCisgICAgICAgICAgICAvLyBjaGFuZ2VkIHRv
IFdlYkNvcmUuIFRoZW4gdGhlIGNvZGUgd291bGQgYmUgbGlrZSByZXR1cm4gZC0+dXJsLmlzUGFy
ZW50T2YodXJsKTsKKyAgICAgICAgICAgIHJldHVybiBkLT51cmwucGF0aCgpID09IFFGaWxlSW5m
byh1cmwucGF0aCgpKS5jYW5vbmljYWxGaWxlUGF0aCgpOworICAgICAgICB9CisgICAgfQorICAg
IHJldHVybiBkLT51cmwuc2NoZW1lKCkgPT0gdXJsLnNjaGVtZSgpICYmIGQtPnVybC5ob3N0KCkg
PT0gdXJsLmhvc3QoKSAmJiBkLT51cmwucG9ydCgpID09IHVybC5wb3J0KCk7Cit9CisKK1FEYXRh
U3RyZWFtJiBvcGVyYXRvcjw8KFFEYXRhU3RyZWFtJiBvdXQsIGNvbnN0IFF0V2ViU2VjdXJpdHlP
cmlnaW4gJm9yaWdpbikKK3sKKyAgICAvLyBGSVhNRTogTWlnaHQgbmVlZCBzb21lIHZlcnNpb25p
bmcuCisgICAgb3V0IDw8IChvcmlnaW4udXJsKCkudG9FbmNvZGVkKCkuZGF0YSgpKTsKKyAgICBy
ZXR1cm4gb3V0OworfQorCitRRGF0YVN0cmVhbSYgb3BlcmF0b3I+PihRRGF0YVN0cmVhbSYgaW4s
IFF0V2ViU2VjdXJpdHlPcmlnaW4mIG9yaWdpbikKK3sKKyAgICAvLyBGSVhNRTogTWlnaHQgbmVl
ZCBzb21lIHZlcnNpb25pbmcuCisgICAgY2hhciogdXJsID0gb3JpZ2luLnVybCgpLnRvRW5jb2Rl
ZCgpLmRhdGEoKTsKKyAgICBpbiA+PiB1cmw7CisgICAgcmV0dXJuIGluOworfQorCitRdFdlYlNl
Y3VyaXR5T3JpZ2luJiBRdFdlYlNlY3VyaXR5T3JpZ2luOjpvcGVyYXRvcj0oY29uc3QgUVVybCYg
dXJsKQoreworICAgIGQtPnVybCA9IHVybDsKKyAgICByZXR1cm4gKnRoaXM7Cit9CisKK1F0V2Vi
U2VjdXJpdHlPcmlnaW4mIFF0V2ViU2VjdXJpdHlPcmlnaW46Om9wZXJhdG9yPShjb25zdCBRdFdl
YlNlY3VyaXR5T3JpZ2luJiBkYXRhKQoreworICAgIHJldHVybiBvcGVyYXRvcj0oZGF0YS5kLT51
cmwpOworfQorCitib29sIFF0V2ViU2VjdXJpdHlPcmlnaW46Om9wZXJhdG9yIT0oY29uc3QgUXRX
ZWJTZWN1cml0eU9yaWdpbiYgZGF0YSkKK3sKKyAgICByZXR1cm4gZC0+dXJsICE9IGRhdGEuZC0+
dXJsOworfQorCitib29sIFF0V2ViU2VjdXJpdHlPcmlnaW46Om9wZXJhdG9yPT0oY29uc3QgUXRX
ZWJTZWN1cml0eU9yaWdpbiYgZGF0YSkKK3sKKyAgICByZXR1cm4gZC0+dXJsID09IGRhdGEuZC0+
dXJsOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xdHdl
YnNlY3VyaXR5b3JpZ2luX3AuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXR3
ZWJzZWN1cml0eW9yaWdpbl9wLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
NTdkNTQ4YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
cXQvcXR3ZWJzZWN1cml0eW9yaWdpbl9wLmgKQEAgLTAsMCArMSw3NCBAQAorLyoKKyAgICBDb3B5
cmlnaHQgKEMpIDIwMTIgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1p
ZXMpCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCisgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9uIDIgb2YgdGhlIExp
Y2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgICBUaGlz
IGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1
bCwKKyAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll
ZCB3YXJyYW50eSBvZgorICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg
YSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICAgYWxv
bmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwg
d3JpdGUgdG8KKyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFu
a2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNB
LgorKi8KKyNpZm5kZWYgcXR3ZWJzZWN1cml0eW9yaWdpbl9wX2gKKyNkZWZpbmUgcXR3ZWJzZWN1
cml0eW9yaWdpbl9wX2gKKworI2luY2x1ZGUgInF3ZWJraXRnbG9iYWwuaCIKKworI2luY2x1ZGUg
PFF0Q29yZS9RRGF0YVN0cmVhbT4KKyNpbmNsdWRlIDxRdENvcmUvUU9iamVjdD4KKyNpbmNsdWRl
IDxRdENvcmUvUVN0cmluZz4KKyNpbmNsdWRlIDxRdENvcmUvUVVybD4KKyNpbmNsdWRlIDxRdENv
cmUvcXNoYXJlZGRhdGEuaD4KKworY2xhc3MgUXRXZWJTZWN1cml0eU9yaWdpblByaXZhdGU7CisK
K2NsYXNzIFFXRUJLSVRfRVhQT1JUIFF0V2ViU2VjdXJpdHlPcmlnaW4gOiBwdWJsaWMgUU9iamVj
dCB7CisgICAgUV9PQkpFQ1QKKyAgICBRX1BST1BFUlRZKFFTdHJpbmcgc2NoZW1lIFJFQUQgc2No
ZW1lKQorICAgIFFfUFJPUEVSVFkoUVN0cmluZyBob3N0IFJFQUQgaG9zdCkKKyAgICBRX1BST1BF
UlRZKGludCBwb3J0IFJFQUQgcG9ydCkKKyAgICBRX1BST1BFUlRZKFFTdHJpbmcgcGF0aCBSRUFE
IHBhdGgpCisKK3B1YmxpYzoKKyAgICBRdFdlYlNlY3VyaXR5T3JpZ2luKGNvbnN0IFFVcmwmIHVy
bCwgUU9iamVjdCAqcGFyZW50ID0gMCk7CisgICAgdmlydHVhbCB+UXRXZWJTZWN1cml0eU9yaWdp
bigpOworCisgICAgUVN0cmluZyBzY2hlbWUoKSBjb25zdDsKKyAgICBRU3RyaW5nIGhvc3QoKSBj
b25zdDsKKyAgICBpbnQgcG9ydCgpIGNvbnN0OworICAgIFFTdHJpbmcgcGF0aCgpIGNvbnN0Owor
ICAgIFFVcmwgdXJsKCkgY29uc3Q7CisKKyAgICBzdGF0aWMgdm9pZCBhZGRMb2NhbFNjaGVtZShj
b25zdCBRU3RyaW5nJiBzY2hlbWUpOworICAgIHN0YXRpYyB2b2lkIHJlbW92ZUxvY2FsU2NoZW1l
KGNvbnN0IFFTdHJpbmcmIHNjaGVtZSk7CisgICAgc3RhdGljIFFTdHJpbmdMaXN0IGxvY2FsU2No
ZW1lcygpOworCisgICAgUXRXZWJTZWN1cml0eU9yaWdpbiYgb3BlcmF0b3I9KGNvbnN0IFF0V2Vi
U2VjdXJpdHlPcmlnaW4mKTsKKyAgICBRdFdlYlNlY3VyaXR5T3JpZ2luJiBvcGVyYXRvcj0oY29u
c3QgUVVybCYpOworICAgIGJvb2wgb3BlcmF0b3IhPShjb25zdCBRdFdlYlNlY3VyaXR5T3JpZ2lu
Jik7CisgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFF0V2ViU2VjdXJpdHlPcmlnaW4mKTsKKwor
ICAgIGVudW0gT3JpZ2luUG9saWN5RmxhZ3MgeworICAgICAgICBDb250ZW50SGFzU2FtZU9yaWdp
bkFjY2VzcyA9IDB4MCwKKyAgICAgICAgTG9jYWxDb250ZW50SGFzUmVtb3RlQWNjZXNzID0gMHgx
LAorICAgICAgICBMb2NhbENvbnRlbnRIYXNTeXN0ZW1Mb2NhbEFjY2VzcyA9IDB4MgorICAgIH07
CisKKyAgICBib29sIGNhbkFjY2Vzcyhjb25zdCBRVXJsJiB1cmwsIE9yaWdpblBvbGljeUZsYWdz
IGZsYWdzID0gQ29udGVudEhhc1NhbWVPcmlnaW5BY2Nlc3MpOworCitwcml2YXRlOgorICAgIGJv
b2wgaXNMb2NhbFNjaGVtZShjb25zdCBRU3RyaW5nICYpOworICAgIFFTaGFyZWREYXRhUG9pbnRl
cjxRdFdlYlNlY3VyaXR5T3JpZ2luUHJpdmF0ZT4gZDsKK307CisKK1FEYXRhU3RyZWFtJiBvcGVy
YXRvcjw8KFFEYXRhU3RyZWFtJiwgY29uc3QgUXRXZWJTZWN1cml0eU9yaWdpbiYpOworUURhdGFT
dHJlYW0mIG9wZXJhdG9yPj4oUURhdGFTdHJlYW0mLCBRdFdlYlNlY3VyaXR5T3JpZ2luJik7CisK
KyNlbmRpZiAvLyBxdHdlYnNlY3VyaXR5b3JpZ2luX3BfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2VicGVybWlzc2lvbnJlcXVlc3QuY3BwIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2VicGVybWlzc2lvbnJlcXVlc3QuY3BwCmluZGV4
IDE2YTQzODUuLjkwOTA5ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvcXQvcXdlYnBlcm1pc3Npb25yZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL3F0L3F3ZWJwZXJtaXNzaW9ucmVxdWVzdC5jcHAKQEAgLTMyLDkgKzMyLDIyIEBA
IHB1YmxpYzoKICAgICAgICAgOiBvcmlnaW4oc2VjdXJpdHlPcmlnaW4pCiAgICAgICAgICwgdHlw
ZShRV2ViUGVybWlzc2lvblJlcXVlc3Q6Okdlb2xvY2F0aW9uKQogICAgICAgICAsIHJlcXVlc3Qo
cGVybWlzc2lvblJlcXVlc3QpCisgICAgICAgICwgc2FtZU9yaWdpbihRVXJsKCksIDApCiAgICAg
ICAgICwgYWxsb3coZmFsc2UpCiAgICAgeworCisgICAgICAgIFFVcmwgZGF0YTsKKyAgICAgICAg
V0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHVybCA9IGFkb3B0V0soV0tTZWN1cml0eU9yaWdpbkNv
cHlQcm90b2NvbChvcmlnaW4uZ2V0KCkpKTsKKyAgICAgICAgZGF0YS5zZXRTY2hlbWUoV0tTdHJp
bmdDb3B5UVN0cmluZyh1cmwuZ2V0KCkpKTsKKworICAgICAgICBXS1JldGFpblB0cjxXS1N0cmlu
Z1JlZj4gaG9zdCA9IGFkb3B0V0soV0tTZWN1cml0eU9yaWdpbkNvcHlIb3N0KG9yaWdpbi5nZXQo
KSkpOworICAgICAgICBkYXRhLnNldEhvc3QoV0tTdHJpbmdDb3B5UVN0cmluZyhob3N0LmdldCgp
KSk7CisKKyAgICAgICAgZGF0YS5zZXRQb3J0KHN0YXRpY19jYXN0PGludD4oV0tTZWN1cml0eU9y
aWdpbkdldFBvcnQob3JpZ2luLmdldCgpKSkpOworICAgICAgICBzYW1lT3JpZ2luID0gZGF0YTsK
KwogICAgIH0KKwogICAgIH5RV2ViUGVybWlzc2lvblJlcXVlc3RQcml2YXRlKCkKICAgICB7CiAg
ICAgfQpAQCAtNDIsNiArNTUsNyBAQCBwdWJsaWM6CiAgICAgV0tSZXRhaW5QdHI8V0tTZWN1cml0
eU9yaWdpblJlZj4gb3JpZ2luOwogICAgIFFXZWJQZXJtaXNzaW9uUmVxdWVzdDo6UmVxdWVzdFR5
cGUgdHlwZTsKICAgICBXS1JldGFpblB0cjxXS0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RS
ZWY+IHJlcXVlc3Q7CisgICAgUXRXZWJTZWN1cml0eU9yaWdpbiBzYW1lT3JpZ2luOwogICAgIGJv
b2wgYWxsb3c7CiB9OwogCkBAIC04OCwxOSArMTAyLDggQEAgYm9vbCBRV2ViUGVybWlzc2lvblJl
cXVlc3Q6OmFsbG93KCkgY29uc3QKICAgICByZXR1cm4gZC0+YWxsb3c7CiB9CiAKLVFTdHJpbmcg
UVdlYlBlcm1pc3Npb25SZXF1ZXN0OjpzY2hlbWUoKSBjb25zdAorUXRXZWJTZWN1cml0eU9yaWdp
biYgUVdlYlBlcm1pc3Npb25SZXF1ZXN0OjpzZWN1cml0eU9yaWdpbigpCiB7Ci0gICAgV0tSZXRh
aW5QdHI8V0tTdHJpbmdSZWY+IHVybCA9IGFkb3B0V0soV0tTZWN1cml0eU9yaWdpbkNvcHlQcm90
b2NvbChkLT5vcmlnaW4uZ2V0KCkpKTsKLSAgICByZXR1cm4gV0tTdHJpbmdDb3B5UVN0cmluZyh1
cmwuZ2V0KCkpOworICAgIHJldHVybiBkLT5zYW1lT3JpZ2luOwogfQogCi1RU3RyaW5nIFFXZWJQ
ZXJtaXNzaW9uUmVxdWVzdDo6aG9zdCgpIGNvbnN0Ci17Ci0gICAgV0tSZXRhaW5QdHI8V0tTdHJp
bmdSZWY+IG9yaWdpbiA9IGFkb3B0V0soV0tTZWN1cml0eU9yaWdpbkNvcHlIb3N0KGQtPm9yaWdp
bi5nZXQoKSkpOwotICAgIHJldHVybiBXS1N0cmluZ0NvcHlRU3RyaW5nKG9yaWdpbi5nZXQoKSk7
Ci19Ci0KLWludCBRV2ViUGVybWlzc2lvblJlcXVlc3Q6OnBvcnQoKSBjb25zdAotewotICAgIHJl
dHVybiBzdGF0aWNfY2FzdDxpbnQ+KFdLU2VjdXJpdHlPcmlnaW5HZXRQb3J0KGQtPm9yaWdpbi5n
ZXQoKSkpOwotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9x
d2VicGVybWlzc2lvbnJlcXVlc3RfcC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9x
dC9xd2VicGVybWlzc2lvbnJlcXVlc3RfcC5oCmluZGV4IDU4MjRjNGMuLjVkNzRlNDQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnBlcm1pc3Npb25yZXF1
ZXN0X3AuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwZXJtaXNz
aW9ucmVxdWVzdF9wLmgKQEAgLTIyLDYgKzIyLDcgQEAKIAogI2luY2x1ZGUgInF3ZWJraXRnbG9i
YWwuaCIKIAorI2luY2x1ZGUgInF0d2Vic2VjdXJpdHlvcmlnaW5fcC5oIgogI2luY2x1ZGUgPFF0
Q29yZS9RT2JqZWN0PgogI2luY2x1ZGUgPFF0Q29yZS9xc2hhcmVkZGF0YS5oPgogI2luY2x1ZGUg
PFdlYktpdDIvV0tHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0Lmg+CkBAIC0zMyw5ICszNCw3
IEBAIGNsYXNzIFFXRUJLSVRfRVhQT1JUIFFXZWJQZXJtaXNzaW9uUmVxdWVzdCA6IHB1YmxpYyBR
T2JqZWN0IHsKICAgICBRX09CSkVDVAogICAgIFFfUFJPUEVSVFkoYm9vbCBhbGxvdyBSRUFEIGFs
bG93IFdSSVRFIHNldEFsbG93KQogICAgIFFfUFJPUEVSVFkoUmVxdWVzdFR5cGUgdHlwZSBSRUFE
IHR5cGUpCi0gICAgUV9QUk9QRVJUWShRU3RyaW5nIHNjaGVtZSBSRUFEIHNjaGVtZSkKLSAgICBR
X1BST1BFUlRZKFFTdHJpbmcgaG9zdCBSRUFEIGhvc3QpCi0gICAgUV9QUk9QRVJUWShpbnQgcG9y
dCBSRUFEIHBvcnQpCisgICAgUV9QUk9QRVJUWShRdFdlYlNlY3VyaXR5T3JpZ2luIHNlY3VyaXR5
T3JpZ2luIFJFQUQgc2VjdXJpdHlPcmlnaW4pCiAgICAgUV9FTlVNUyhSZXF1ZXN0VHlwZSkKIAog
cHVibGljOgpAQCAtNDgsMTIgKzQ3LDEwIEBAIHB1YmxpYzoKIAogICAgIFJlcXVlc3RUeXBlIHR5
cGUoKSBjb25zdDsKICAgICBib29sIGFsbG93KCkgY29uc3Q7Ci0gICAgUVN0cmluZyBzY2hlbWUo
KSBjb25zdDsKLSAgICBRU3RyaW5nIGhvc3QoKSBjb25zdDsKLSAgICBpbnQgcG9ydCgpIGNvbnN0
OwogCiBwdWJsaWMgUV9TTE9UUzoKICAgICB2b2lkIHNldEFsbG93KGJvb2wpOworICAgIFF0V2Vi
U2VjdXJpdHlPcmlnaW4gJnNlY3VyaXR5T3JpZ2luKCk7CiAKIHByaXZhdGU6CiAgICAgZnJpZW5k
IGNsYXNzIFFXZWJQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGU7Ci0tIAoxLjcuNS40Cgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>122298</attachid>
            <date>2012-01-12 13:29:52 -0800</date>
            <delta_ts>2012-01-19 07:14:22 -0800</delta_ts>
            <desc>Still missing the test</desc>
            <filename>origin_step5_cl.patch</filename>
            <type>text/plain</type>
            <size>16960</size>
            <attacher name="Adenilson Cavalcanti Silva">savagobr</attacher>
            
              <data encoding="base64">RnJvbSBlMTI0MjI4Y2ZiN2RkOWZkMmViYjE0ZTNjZTYwOTcxMzc4YTExNTUzIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBZGVuaWxzb24gQ2F2YWxjYW50aSA8Y2F2YWxjYW50aWlAZ21h
aWwuY29tPgpEYXRlOiBUaHUsIDEyIEphbiAyMDEyIDE3OjI1OjUxIC0wNDAwClN1YmplY3Q6IFtQ
QVRDSF0gR2V0dGluZyBjbG9zZXIuCgpTaWduZWQtb2ZmLWJ5OiBBZGVuaWxzb24gQ2F2YWxjYW50
aSA8Y2F2YWxjYW50aWlAZ21haWwuY29tPgotLS0KIFNvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9n
ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxMiArKwogU291cmNlL1dlYktpdC9xdC9kZWNs
YXJhdGl2ZS9wbHVnaW4uY3BwICAgICAgICAgICAgfCAgICAzICsKIFNvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAzOCArKysrCiBTb3VyY2UvV2Vi
S2l0Mi9UYXJnZXQucHJpICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDIgKwogLi4uL1VJ
UHJvY2Vzcy9BUEkvcXQvcXR3ZWJzZWN1cml0eW9yaWdpbi5jcHAgICAgICAgfCAgMTkxICsrKysr
KysrKysrKysrKysrKysrCiAuLi4vVUlQcm9jZXNzL0FQSS9xdC9xdHdlYnNlY3VyaXR5b3JpZ2lu
X3AuaCAgICAgICB8ICAgNzUgKysrKysrKysKIC4uLi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwZXJt
aXNzaW9ucmVxdWVzdC5jcHAgICAgIHwgICAyOSArKy0tCiAuLi4vVUlQcm9jZXNzL0FQSS9xdC9x
d2VicGVybWlzc2lvbnJlcXVlc3RfcC5oICAgICB8ICAgIDkgKy0KIDggZmlsZXMgY2hhbmdlZCwg
MzQwIGluc2VydGlvbnMoKyksIDE5IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXR3ZWJzZWN1cml0eW9yaWdpbi5jcHAKIGNy
ZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F0d2Vic2Vj
dXJpdHlvcmlnaW5fcC5oCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwppbmRleCA0NDhkOWUwLi4zYzY0OTJjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3F0
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTAxLTEyICBBZGVuaWxzb24gQ2F2YWxj
YW50aSAgPGNhdmFsY2FudGlpQGdtYWlsLmNvbT4KKworICAgICAgICBTcGxpdCBRV2ViUGVybWlz
c2lvblJlcXVlc3QgaW50byBRV2ViU2VjdXJpdHlPcmlnaW4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTczMjE1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisgICAgCisgICAgICAgIEV4cG9ydCB0aGUgc2VjdXJpdHkgb3JpZ2lu
IGNsYXNzIHRvIFFNTC4KKworICAgICAgICAqIGRlY2xhcmF0aXZlL3BsdWdpbi5jcHA6CisgICAg
ICAgIChXZWJLaXRRbWxQbHVnaW46OnJlZ2lzdGVyVHlwZXMpOgorCiAyMDEyLTAxLTExICBWc2V2
b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIE1ha2UgZGVmYXVs
dCBjb25zb2xlIG1lc3NhZ2VzIGxpbmUgbnVtYmVycyBjb25zaXN0ZW50LgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9xdC9kZWNsYXJhdGl2ZS9wbHVnaW4uY3BwIGIvU291cmNlL1dlYktpdC9x
dC9kZWNsYXJhdGl2ZS9wbHVnaW4uY3BwCmluZGV4IDY0NjM4ZTQuLmUyZjBmYjMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvcXQvZGVjbGFyYXRpdmUvcGx1Z2luLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L3F0L2RlY2xhcmF0aXZlL3BsdWdpbi5jcHAKQEAgLTI1LDYgKzI1LDcgQEAKICNpZiBk
ZWZpbmVkKEhBVkVfV0VCS0lUMikKICNpbmNsdWRlICJxcXVpY2t3ZWJwYWdlX3AuaCIKICNpbmNs
dWRlICJxcXVpY2t3ZWJ2aWV3X3AuaCIKKyNpbmNsdWRlICJxdHdlYnNlY3VyaXR5b3JpZ2luX3Au
aCIKICNpbmNsdWRlICJxd2ViaWNvbmltYWdlcHJvdmlkZXJfcC5oIgogI2luY2x1ZGUgInF3ZWJu
YXZpZ2F0aW9ucmVxdWVzdF9wLmgiCiAjaW5jbHVkZSAicXdlYnBlcm1pc3Npb25yZXF1ZXN0X3Au
aCIKQEAgLTY1LDYgKzY2LDggQEAgcHVibGljOgogICAgICAgICBxbWxSZWdpc3RlclVuY3JlYXRh
YmxlVHlwZTxRTmV0d29ya1JlcGx5Pih1cmksIDMsIDAsICJOZXR3b3JrUmVwbHkiLCBRT2JqZWN0
Ojp0cigiQ2Fubm90IGNyZWF0ZSBzZXBhcmF0ZSBpbnN0YW5jZSBvZiBOZXR3b3JrUmVwbHkiKSk7
CiAgICAgICAgIHFtbFJlZ2lzdGVyVW5jcmVhdGFibGVUeXBlPFFXZWJQZXJtaXNzaW9uUmVxdWVz
dD4odXJpLCAzLCAwLCAiUGVybWlzc2lvblJlcXVlc3QiLCBRT2JqZWN0Ojp0cigiQ2Fubm90IGNy
ZWF0ZSBzZXBhcmF0ZSBpbnN0YW5jZSBvZiBQZXJtaXNzaW9uUmVxdWVzdCIpKTsKICAgICAgICAg
cW1sUmVnaXN0ZXJVbmNyZWF0YWJsZVR5cGU8UVdlYk5hdmlnYXRpb25SZXF1ZXN0Pih1cmksIDMs
IDAsICJOYXZpZ2F0aW9uUmVxdWVzdCIsIFFPYmplY3Q6OnRyKCJDYW5ub3QgY3JlYXRlIHNlcGFy
YXRlIGluc3RhbmNlIG9mIE5hdmlnYXRpb25SZXF1ZXN0IikpOworICAgICAgICBxbWxSZWdpc3Rl
clVuY3JlYXRhYmxlVHlwZTxRdFdlYlNlY3VyaXR5T3JpZ2luPih1cmksIDMsIDAsICJTZWN1cml0
eU9yaWdpbiIsIFFPYmplY3Q6OnRyKCJDYW5ub3QgY3JlYXRlIHNlcGFyYXRlIGluc3RhbmNlIG9m
IFNlY3VyaXR5T3JpZ2luIikpOworCiAjZW5kaWYKICAgICB9CiB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDU3
MTY5OGUuLjY5NzFjOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MSBAQAorMjAxMi0wMS0xMiAg
QWRlbmlsc29uIENhdmFsY2FudGkgIDxjYXZhbGNhbnRpaUBnbWFpbC5jb20+CisKKyAgICAgICAg
U3BsaXQgUVdlYlBlcm1pc3Npb25SZXF1ZXN0IGludG8gUVdlYlNlY3VyaXR5T3JpZ2luCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzIxNQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEludHJvZHVjaW5nIGEg
bmV3IGNsYXNzIHRvIGV4cG9zZSBzZWN1cml0eSBvcmlnaW4gaW5mb3JtYXRpb24uCisKKyAgICAg
ICAgKiBUYXJnZXQucHJpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXR3ZWJzZWN1cml0
eW9yaWdpbi5jcHA6IEFkZGVkLgorICAgICAgICAoUXRXZWJTZWN1cml0eU9yaWdpblByaXZhdGU6
OmxvY2FsU2NoZW1lcyk6CisgICAgICAgIChRdFdlYlNlY3VyaXR5T3JpZ2luUHJpdmF0ZTo6Y29u
dGFpbnNTY2hlbWUpOgorICAgICAgICAoUXRXZWJTZWN1cml0eU9yaWdpblByaXZhdGU6OlF0V2Vi
U2VjdXJpdHlPcmlnaW5Qcml2YXRlKToKKyAgICAgICAgKFF0V2ViU2VjdXJpdHlPcmlnaW5Qcml2
YXRlOjp+UXRXZWJTZWN1cml0eU9yaWdpblByaXZhdGUpOgorICAgICAgICAoUXRXZWJTZWN1cml0
eU9yaWdpbjo6aXNMb2NhbFNjaGVtZSk6CisgICAgICAgIChRdFdlYlNlY3VyaXR5T3JpZ2luOjpR
dFdlYlNlY3VyaXR5T3JpZ2luKToKKyAgICAgICAgKFF0V2ViU2VjdXJpdHlPcmlnaW46On5RdFdl
YlNlY3VyaXR5T3JpZ2luKToKKyAgICAgICAgKFF0V2ViU2VjdXJpdHlPcmlnaW46Omhvc3QpOgor
ICAgICAgICAoUXRXZWJTZWN1cml0eU9yaWdpbjo6c2NoZW1lKToKKyAgICAgICAgKFF0V2ViU2Vj
dXJpdHlPcmlnaW46OnBhdGgpOgorICAgICAgICAoUXRXZWJTZWN1cml0eU9yaWdpbjo6cG9ydCk6
CisgICAgICAgIChRdFdlYlNlY3VyaXR5T3JpZ2luOjp1cmwpOgorICAgICAgICAoUXRXZWJTZWN1
cml0eU9yaWdpbjo6YWRkTG9jYWxTY2hlbWUpOgorICAgICAgICAoUXRXZWJTZWN1cml0eU9yaWdp
bjo6cmVtb3ZlTG9jYWxTY2hlbWUpOgorICAgICAgICAoUXRXZWJTZWN1cml0eU9yaWdpbjo6bG9j
YWxTY2hlbWVzKToKKyAgICAgICAgKFF0V2ViU2VjdXJpdHlPcmlnaW46OmNhbkFjY2Vzcyk6Cisg
ICAgICAgIChvcGVyYXRvcjw8KToKKyAgICAgICAgKG9wZXJhdG9yPj4pOgorICAgICAgICAoUXRX
ZWJTZWN1cml0eU9yaWdpbjo6b3BlcmF0b3I9KToKKyAgICAgICAgKFF0V2ViU2VjdXJpdHlPcmln
aW46Om9wZXJhdG9yIT0pOgorICAgICAgICAoUXRXZWJTZWN1cml0eU9yaWdpbjo6b3BlcmF0b3I9
PSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xdHdlYnNlY3VyaXR5b3JpZ2luX3AuaDog
QWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xd2VicGVybWlzc2lvbnJlcXVlc3Qu
Y3BwOgorICAgICAgICAoUVdlYlBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZTo6UVdlYlBlcm1pc3Np
b25SZXF1ZXN0UHJpdmF0ZSk6CisgICAgICAgIChRV2ViUGVybWlzc2lvblJlcXVlc3Q6OnNlY3Vy
aXR5T3JpZ2luKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3F3ZWJwZXJtaXNzaW9ucmVx
dWVzdF9wLmg6CisKIDIwMTItMDEtMTIgIE5vJ2FtIFJvc2VudGhhbCAgPG5vYW0ucm9zZW50aGFs
QG5va2lhLmNvbT4KIAogICAgICAgICBbUXRdW1dLMl0gV2ViUHJvY2Vzc2VzIGNyYXNoZXMgd2hl
biBjb21wb3NpdGVkIHJlZmxlY3Rpb25zL21hc2tzIGFyZSBwcmVzZW50CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpIGIvU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaQppbmRl
eCAzNTk4M2YwLi44MjQ5MDc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJp
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1RhcmdldC5wcmkKQEAgLTE3NCw2ICsxNzQsNyBAQCBIRUFE
RVJTICs9IFwKICAgICBVSVByb2Nlc3MvQVBJL3F0L3F3ZWJkb3dubG9hZGl0ZW1fcC5oIFwKICAg
ICBVSVByb2Nlc3MvQVBJL3F0L3F3ZWJkb3dubG9hZGl0ZW1fcF9wLmggXAogICAgIFVJUHJvY2Vz
cy9BUEkvcXQvcXdlYnBlcm1pc3Npb25yZXF1ZXN0X3AuaCBcCisgICAgVUlQcm9jZXNzL0FQSS9x
dC9xdHdlYnNlY3VyaXR5b3JpZ2luX3AuaCBcCiAgICAgVUlQcm9jZXNzL0FQSS9xdC9xd2VibmF2
aWdhdGlvbnJlcXVlc3RfcC5oIFwKICAgICBVSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnBhZ2Vf
cC5oIFwKICAgICBVSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnBhZ2VfcF9wLmggXApAQCAtNTA0
LDYgKzUwNSw3IEBAIFNPVVJDRVMgKz0gXAogICAgIFVJUHJvY2Vzcy9BUEkvY3BwL3F0L1dLVVJM
UXQuY3BwIFwKICAgICBVSVByb2Nlc3MvQVBJL3F0L3F3ZWJkb3dubG9hZGl0ZW0uY3BwIFwKICAg
ICBVSVByb2Nlc3MvQVBJL3F0L3F3ZWJwZXJtaXNzaW9ucmVxdWVzdC5jcHAgXAorICAgIFVJUHJv
Y2Vzcy9BUEkvcXQvcXR3ZWJzZWN1cml0eW9yaWdpbi5jcHAgXAogICAgIFVJUHJvY2Vzcy9BUEkv
cXQvcXdlYm5hdmlnYXRpb25yZXF1ZXN0LmNwcCBcCiAgICAgVUlQcm9jZXNzL0FQSS9xdC9xcXVp
Y2t3ZWJwYWdlLmNwcCBcCiAgICAgVUlQcm9jZXNzL0FQSS9xdC9xd2VibmF2aWdhdGlvbmhpc3Rv
cnkuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXR3
ZWJzZWN1cml0eW9yaWdpbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F0
d2Vic2VjdXJpdHlvcmlnaW4uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LmE5MjQ4NDgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L3F0L3F0d2Vic2VjdXJpdHlvcmlnaW4uY3BwCkBAIC0wLDAgKzEsMTkxIEBACisvKgorICAgIENv
cHlyaWdodCAoQykgMjAxMiBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnko
LWllcykKKworICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKKyAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAgIHZlcnNpb24gMiBvZiB0aGUg
TGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgIFRo
aXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl
ZnVsLAorICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs
aWVkIHdhcnJhbnR5IG9mCisgICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl
ZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgICBh
bG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90
LCB3cml0ZSB0bworICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZy
YW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBV
U0EuCisqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlICJxdHdlYnNlY3VyaXR5
b3JpZ2luX3AuaCIKKworI2luY2x1ZGUgPEtVUkwuaD4KKyNpbmNsdWRlIDxRdENvcmUvUUZpbGVJ
bmZvPgorI2luY2x1ZGUgPFF0Q29yZS9RU3RyaW5nTGlzdD4KKyNpbmNsdWRlIDxTY2hlbWVSZWdp
c3RyeS5oPgorI2luY2x1ZGUgPFNlY3VyaXR5T3JpZ2luLmg+CisjaW5jbHVkZSA8V2ViS2l0Mi9X
S0Jhc2UuaD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLUmV0YWluUHRyLmg+CisjaW5jbHVkZSA8V2Vi
S2l0Mi9XS1NlY3VyaXR5T3JpZ2luLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitj
bGFzcyBRdFdlYlNlY3VyaXR5T3JpZ2luUHJpdmF0ZSA6IHB1YmxpYyBRU2hhcmVkRGF0YSB7CisK
K3B1YmxpYzoKKworICAgIHN0YXRpYyBRU3RyaW5nTGlzdCBsb2NhbFNjaGVtZXMoKQorICAgIHsK
KyAgICAgICAgUVN0cmluZ0xpc3Qgc2NoZW1lczsKKyAgICAgICAgY29uc3QgVVJMU2NoZW1lc01h
cCYgbWFwID0gU2NoZW1lUmVnaXN0cnk6OmxvY2FsU2NoZW1lcygpOworICAgICAgICBVUkxTY2hl
bWVzTWFwOjpjb25zdF9pdGVyYXRvciBlbmQgPSBtYXAuZW5kKCk7CisgICAgICAgIGZvciAoVVJM
U2NoZW1lc01hcDo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtYXAuYmVnaW4oKTsgaXQgIT0gZW5kOyAr
K2l0KSB7CisgICAgICAgICAgICBjb25zdCBRU3RyaW5nIHNjaGVtZSA9ICppdDsKKyAgICAgICAg
ICAgIHNjaGVtZXMuYXBwZW5kKHNjaGVtZSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHNj
aGVtZXM7CisgICAgfQorCisgICAgc3RhdGljIGJvb2wgY29udGFpbnNTY2hlbWUoY29uc3QgUVN0
cmluZyYgc2NoZW1lKQorICAgIHsKKyAgICAgICAgY29uc3QgVVJMU2NoZW1lc01hcCYgbWFwID0g
U2NoZW1lUmVnaXN0cnk6OmxvY2FsU2NoZW1lcygpOworICAgICAgICByZXR1cm4gbWFwLmNvbnRh
aW5zKHNjaGVtZSk7CisgICAgfQorCisgICAgUXRXZWJTZWN1cml0eU9yaWdpblByaXZhdGUoKQor
ICAgIHsKKyAgICB9CisKKyAgICB+UXRXZWJTZWN1cml0eU9yaWdpblByaXZhdGUoKQorICAgIHsK
KyAgICB9CisKKyAgICBRVXJsIHVybDsKK307CisKK2Jvb2wgUXRXZWJTZWN1cml0eU9yaWdpbjo6
aXNMb2NhbFNjaGVtZShjb25zdCBRU3RyaW5nJiBzY2hlbWUpCit7CisgICAgcmV0dXJuIChzY2hl
bWUgPT0gUVN0cmluZzo6ZnJvbVV0ZjgoInFyYyIpKSA/IHRydWUgOiAoc2NoZW1lID09IFFTdHJp
bmc6OmZyb21VdGY4KCJmaWxlIikpOworfQorCitRdFdlYlNlY3VyaXR5T3JpZ2luOjpRdFdlYlNl
Y3VyaXR5T3JpZ2luKGNvbnN0IFFVcmwmIHVybCwgUU9iamVjdCogcGFyZW50KQorICAgIDogUU9i
amVjdChwYXJlbnQpCisgICAgLCBkKG5ldyBRdFdlYlNlY3VyaXR5T3JpZ2luUHJpdmF0ZSkKK3sK
KworICAgIGQtPnVybC5zZXRTY2hlbWUodXJsLnNjaGVtZSgpKTsKKyAgICBpZiAodXJsLnNjaGVt
ZSgpID09IFFMYXRpbjFTdHJpbmcoImRhdGEiKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYg
KGlzTG9jYWxTY2hlbWUodXJsLnNjaGVtZSgpKSkgeworICAgICAgICAvLyBXZSBzdG9yZSB0aGUg
Y2Fubm9uaWNhbCBwYXRoLCBpZS4gdGhlIGFic29sdXRlIHBhdGggKndpdGhvdXQqIHN5bWJvbGlj
CisgICAgICAgIC8vIGxpbmtzIG9yIHJlZHVuZGFudCAiLiIgb3IgIi4uIiBlbGVtZW50cy4KKyAg
ICAgICAgZC0+dXJsLnNldFBhdGgoUUZpbGVJbmZvKHVybC5wYXRoKCkpLmNhbm9uaWNhbEZpbGVQ
YXRoKCkpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgZC0+dXJsLnNldEhvc3QodXJs
Lmhvc3QoKSk7Cit9CisKK1F0V2ViU2VjdXJpdHlPcmlnaW46On5RdFdlYlNlY3VyaXR5T3JpZ2lu
KCkKK3sKK30KKworUVN0cmluZyBRdFdlYlNlY3VyaXR5T3JpZ2luOjpob3N0KCkgY29uc3QKK3sK
KyAgICByZXR1cm4gZC0+dXJsLmhvc3QoKTsKK30KKworUVN0cmluZyBRdFdlYlNlY3VyaXR5T3Jp
Z2luOjpzY2hlbWUoKSBjb25zdAoreworICAgIHJldHVybiBkLT51cmwuc2NoZW1lKCk7Cit9CisK
K1FTdHJpbmcgUXRXZWJTZWN1cml0eU9yaWdpbjo6cGF0aCgpIGNvbnN0Cit7CisgICAgcmV0dXJu
IGQtPnVybC5wYXRoKCk7Cit9CisKK2ludCBRdFdlYlNlY3VyaXR5T3JpZ2luOjpwb3J0KCkgY29u
c3QKK3sKKyAgICByZXR1cm4gZC0+dXJsLnBvcnQoKTsKK30KKworUVVybCBRdFdlYlNlY3VyaXR5
T3JpZ2luOjp1cmwoKSBjb25zdAoreworICAgIHJldHVybiBkLT51cmw7Cit9Cit2b2lkIFF0V2Vi
U2VjdXJpdHlPcmlnaW46OmFkZExvY2FsU2NoZW1lKGNvbnN0IFFTdHJpbmcmIHNjaGVtZSkKK3sK
KyAgICBpZiAoUXRXZWJTZWN1cml0eU9yaWdpblByaXZhdGU6OmNvbnRhaW5zU2NoZW1lKHNjaGVt
ZSkpCisgICAgICAgIHJldHVybjsKKworICAgIFNjaGVtZVJlZ2lzdHJ5OjpyZWdpc3RlclVSTFNj
aGVtZUFzTG9jYWwoc2NoZW1lKTsKK30KKwordm9pZCBRdFdlYlNlY3VyaXR5T3JpZ2luOjpyZW1v
dmVMb2NhbFNjaGVtZShjb25zdCBRU3RyaW5nJiBzY2hlbWUpCit7CisgICAgLy8gWW91IGNhbm5v
dCByZW1vdmUgZmlsZToKKyAgICBpZiAoc2NoZW1lID09IFFMYXRpbjFTdHJpbmcoImZpbGUiKSkK
KyAgICAgICAgcmV0dXJuOworCisgICAgU2NoZW1lUmVnaXN0cnk6OnJlbW92ZVVSTFNjaGVtZVJl
Z2lzdGVyZWRBc0xvY2FsKHNjaGVtZSk7Cit9CisKK1FTdHJpbmdMaXN0IFF0V2ViU2VjdXJpdHlP
cmlnaW46OmxvY2FsU2NoZW1lcygpCit7CisgICAgcmV0dXJuIFF0V2ViU2VjdXJpdHlPcmlnaW5Q
cml2YXRlOjpsb2NhbFNjaGVtZXMoKTsKK30KKworYm9vbCBRdFdlYlNlY3VyaXR5T3JpZ2luOjpj
YW5BY2Nlc3MoY29uc3QgUVVybCYgdXJsLCBPcmlnaW5Qb2xpY3lGbGFncyBmbGFncykKK3sKKyAg
ICBpZiAoc2NoZW1lKCkgPT0gUUxhdGluMVN0cmluZygiZGF0YSIpKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICBpZiAoZC0+Y29udGFpbnNTY2hlbWUoZC0+dXJsLnNjaGVtZSgpKSkgewor
ICAgICAgICBpZiAoZC0+Y29udGFpbnNTY2hlbWUodXJsLnNjaGVtZSgpKSAmJiAoZmxhZ3MgJiBM
b2NhbENvbnRlbnRIYXNTeXN0ZW1Mb2NhbEFjY2VzcykpCisgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmV0dXJuIGQtPnVybC5wYXRoKCkgPT0gUUZp
bGVJbmZvKHVybC5wYXRoKCkpLmNhbm9uaWNhbEZpbGVQYXRoKCk7CisgICAgfQorCisgICAgcmV0
dXJuIGQtPnVybC5zY2hlbWUoKSA9PSB1cmwuc2NoZW1lKCkgJiYgZC0+dXJsLmhvc3QoKSA9PSB1
cmwuaG9zdCgpICYmIGQtPnVybC5wb3J0KCkgPT0gdXJsLnBvcnQoKTsKK30KKworUURhdGFTdHJl
YW0mIG9wZXJhdG9yPDwoUURhdGFTdHJlYW0mIG91dCwgY29uc3QgUXRXZWJTZWN1cml0eU9yaWdp
biAmb3JpZ2luKQoreworICAgIC8vIEZJWE1FOiBNaWdodCBuZWVkIHNvbWUgdmVyc2lvbmluZy4K
KyAgICBvdXQgPDwgKG9yaWdpbi51cmwoKS50b0VuY29kZWQoKS5kYXRhKCkpOworICAgIHJldHVy
biBvdXQ7Cit9CisKK1FEYXRhU3RyZWFtJiBvcGVyYXRvcj4+KFFEYXRhU3RyZWFtJiBpbiwgUXRX
ZWJTZWN1cml0eU9yaWdpbiYgb3JpZ2luKQoreworICAgIC8vIEZJWE1FOiBNaWdodCBuZWVkIHNv
bWUgdmVyc2lvbmluZy4KKyAgICBjaGFyKiB1cmwgPSBvcmlnaW4udXJsKCkudG9FbmNvZGVkKCku
ZGF0YSgpOworICAgIGluID4+IHVybDsKKyAgICByZXR1cm4gaW47Cit9CisKK1F0V2ViU2VjdXJp
dHlPcmlnaW4mIFF0V2ViU2VjdXJpdHlPcmlnaW46Om9wZXJhdG9yPShjb25zdCBRVXJsJiB1cmwp
Cit7CisgICAgZC0+dXJsID0gdXJsOworICAgIHJldHVybiAqdGhpczsKK30KKworUXRXZWJTZWN1
cml0eU9yaWdpbiYgUXRXZWJTZWN1cml0eU9yaWdpbjo6b3BlcmF0b3I9KGNvbnN0IFF0V2ViU2Vj
dXJpdHlPcmlnaW4mIGRhdGEpCit7CisgICAgcmV0dXJuIG9wZXJhdG9yPShkYXRhLmQtPnVybCk7
Cit9CisKK2Jvb2wgUXRXZWJTZWN1cml0eU9yaWdpbjo6b3BlcmF0b3IhPShjb25zdCBRdFdlYlNl
Y3VyaXR5T3JpZ2luJiBkYXRhKQoreworICAgIHJldHVybiBkLT51cmwgIT0gZGF0YS5kLT51cmw7
Cit9CisKK2Jvb2wgUXRXZWJTZWN1cml0eU9yaWdpbjo6b3BlcmF0b3I9PShjb25zdCBRdFdlYlNl
Y3VyaXR5T3JpZ2luJiBkYXRhKQoreworICAgIHJldHVybiBkLT51cmwgPT0gZGF0YS5kLT51cmw7
Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F0d2Vic2Vj
dXJpdHlvcmlnaW5fcC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xdHdlYnNl
Y3VyaXR5b3JpZ2luX3AuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNTMy
ZWNkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9x
dHdlYnNlY3VyaXR5b3JpZ2luX3AuaApAQCAtMCwwICsxLDc1IEBACisvKgorICAgIENvcHlyaWdo
dCAoQykgMjAxMiBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykK
KworICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0
ZSBpdCBhbmQvb3IKKyAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYworICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5z
ZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgIFRoaXMgbGli
cmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAor
ICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh
cnJhbnR5IG9mCisgICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vu
c2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNv
cHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgICBhbG9uZyB3
aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0
ZSB0bworICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGlu
IFN0cmVldCwgRmlmdGggRmxvb3IsCisgICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisq
LworI2lmbmRlZiBxdHdlYnNlY3VyaXR5b3JpZ2luX3BfaAorI2RlZmluZSBxdHdlYnNlY3VyaXR5
b3JpZ2luX3BfaAorCisjaW5jbHVkZSAicXdlYmtpdGdsb2JhbC5oIgorCisjaW5jbHVkZSA8UXRD
b3JlL1FEYXRhU3RyZWFtPgorI2luY2x1ZGUgPFF0Q29yZS9RT2JqZWN0PgorI2luY2x1ZGUgPFF0
Q29yZS9RU3RyaW5nPgorI2luY2x1ZGUgPFF0Q29yZS9RVXJsPgorI2luY2x1ZGUgPFF0Q29yZS9x
c2hhcmVkZGF0YS5oPgorCitjbGFzcyBRdFdlYlNlY3VyaXR5T3JpZ2luUHJpdmF0ZTsKKworY2xh
c3MgUVdFQktJVF9FWFBPUlQgUXRXZWJTZWN1cml0eU9yaWdpbiA6IHB1YmxpYyBRT2JqZWN0IHsK
KyAgICBRX09CSkVDVAorICAgIFFfUFJPUEVSVFkoUVN0cmluZyBzY2hlbWUgUkVBRCBzY2hlbWUp
CisgICAgUV9QUk9QRVJUWShRU3RyaW5nIGhvc3QgUkVBRCBob3N0KQorICAgIFFfUFJPUEVSVFko
aW50IHBvcnQgUkVBRCBwb3J0KQorICAgIFFfUFJPUEVSVFkoUVN0cmluZyBwYXRoIFJFQUQgcGF0
aCkKKyAgICBRX1BST1BFUlRZKFFVcmwgdXJsIFJFQUQgdXJsKQorCitwdWJsaWM6CisgICAgUXRX
ZWJTZWN1cml0eU9yaWdpbihjb25zdCBRVXJsJiB1cmwsIFFPYmplY3QqIHBhcmVudCA9IDApOwor
ICAgIHZpcnR1YWwgflF0V2ViU2VjdXJpdHlPcmlnaW4oKTsKKworICAgIFFTdHJpbmcgc2NoZW1l
KCkgY29uc3Q7CisgICAgUVN0cmluZyBob3N0KCkgY29uc3Q7CisgICAgaW50IHBvcnQoKSBjb25z
dDsKKyAgICBRU3RyaW5nIHBhdGgoKSBjb25zdDsKKyAgICBRVXJsIHVybCgpIGNvbnN0OworCisg
ICAgc3RhdGljIHZvaWQgYWRkTG9jYWxTY2hlbWUoY29uc3QgUVN0cmluZyYgc2NoZW1lKTsKKyAg
ICBzdGF0aWMgdm9pZCByZW1vdmVMb2NhbFNjaGVtZShjb25zdCBRU3RyaW5nJiBzY2hlbWUpOwor
ICAgIHN0YXRpYyBRU3RyaW5nTGlzdCBsb2NhbFNjaGVtZXMoKTsKKworICAgIFF0V2ViU2VjdXJp
dHlPcmlnaW4mIG9wZXJhdG9yPShjb25zdCBRdFdlYlNlY3VyaXR5T3JpZ2luJik7CisgICAgUXRX
ZWJTZWN1cml0eU9yaWdpbiYgb3BlcmF0b3I9KGNvbnN0IFFVcmwmKTsKKyAgICBib29sIG9wZXJh
dG9yIT0oY29uc3QgUXRXZWJTZWN1cml0eU9yaWdpbiYpOworICAgIGJvb2wgb3BlcmF0b3I9PShj
b25zdCBRdFdlYlNlY3VyaXR5T3JpZ2luJik7CisKKyAgICBlbnVtIE9yaWdpblBvbGljeUZsYWdz
IHsKKyAgICAgICAgQ29udGVudEhhc1NhbWVPcmlnaW5BY2Nlc3MgPSAweDAsCisgICAgICAgIExv
Y2FsQ29udGVudEhhc1JlbW90ZUFjY2VzcyA9IDB4MSwKKyAgICAgICAgTG9jYWxDb250ZW50SGFz
U3lzdGVtTG9jYWxBY2Nlc3MgPSAweDIKKyAgICB9OworCisgICAgYm9vbCBjYW5BY2Nlc3MoY29u
c3QgUVVybCYgdXJsLCBPcmlnaW5Qb2xpY3lGbGFncyBmbGFncyA9IENvbnRlbnRIYXNTYW1lT3Jp
Z2luQWNjZXNzKTsKKworcHJpdmF0ZToKKyAgICBib29sIGlzTG9jYWxTY2hlbWUoY29uc3QgUVN0
cmluZyYpOworICAgIFFTaGFyZWREYXRhUG9pbnRlcjxRdFdlYlNlY3VyaXR5T3JpZ2luUHJpdmF0
ZT4gZDsKK307CisKK1FEYXRhU3RyZWFtJiBvcGVyYXRvcjw8KFFEYXRhU3RyZWFtJiwgY29uc3Qg
UXRXZWJTZWN1cml0eU9yaWdpbiYpOworUURhdGFTdHJlYW0mIG9wZXJhdG9yPj4oUURhdGFTdHJl
YW0mLCBRdFdlYlNlY3VyaXR5T3JpZ2luJik7CisKKyNlbmRpZiAvLyBxdHdlYnNlY3VyaXR5b3Jp
Z2luX3BfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2Vi
cGVybWlzc2lvbnJlcXVlc3QuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9x
d2VicGVybWlzc2lvbnJlcXVlc3QuY3BwCmluZGV4IDE2YTQzODUuLjE0ZmZlNzUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnBlcm1pc3Npb25yZXF1ZXN0
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwZXJtaXNzaW9u
cmVxdWVzdC5jcHAKQEAgLTMyLDkgKzMyLDIyIEBAIHB1YmxpYzoKICAgICAgICAgOiBvcmlnaW4o
c2VjdXJpdHlPcmlnaW4pCiAgICAgICAgICwgdHlwZShRV2ViUGVybWlzc2lvblJlcXVlc3Q6Okdl
b2xvY2F0aW9uKQogICAgICAgICAsIHJlcXVlc3QocGVybWlzc2lvblJlcXVlc3QpCisgICAgICAg
ICwgc2VjdXJpdHlJbmZvKFFVcmwoKSwgMCkKICAgICAgICAgLCBhbGxvdyhmYWxzZSkKICAgICB7
CisKKyAgICAgICAgUVVybCBkYXRhOworICAgICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4g
dXJsID0gYWRvcHRXSyhXS1NlY3VyaXR5T3JpZ2luQ29weVByb3RvY29sKG9yaWdpbi5nZXQoKSkp
OworICAgICAgICBkYXRhLnNldFNjaGVtZShXS1N0cmluZ0NvcHlRU3RyaW5nKHVybC5nZXQoKSkp
OworCisgICAgICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBob3N0ID0gYWRvcHRXSyhXS1Nl
Y3VyaXR5T3JpZ2luQ29weUhvc3Qob3JpZ2luLmdldCgpKSk7CisgICAgICAgIGRhdGEuc2V0SG9z
dChXS1N0cmluZ0NvcHlRU3RyaW5nKGhvc3QuZ2V0KCkpKTsKKworICAgICAgICBkYXRhLnNldFBv
cnQoc3RhdGljX2Nhc3Q8aW50PihXS1NlY3VyaXR5T3JpZ2luR2V0UG9ydChvcmlnaW4uZ2V0KCkp
KSk7CisgICAgICAgIHNlY3VyaXR5SW5mbyA9IGRhdGE7CisKICAgICB9CisKICAgICB+UVdlYlBl
cm1pc3Npb25SZXF1ZXN0UHJpdmF0ZSgpCiAgICAgewogICAgIH0KQEAgLTQyLDYgKzU1LDcgQEAg
cHVibGljOgogICAgIFdLUmV0YWluUHRyPFdLU2VjdXJpdHlPcmlnaW5SZWY+IG9yaWdpbjsKICAg
ICBRV2ViUGVybWlzc2lvblJlcXVlc3Q6OlJlcXVlc3RUeXBlIHR5cGU7CiAgICAgV0tSZXRhaW5Q
dHI8V0tHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0UmVmPiByZXF1ZXN0OworICAgIFF0V2Vi
U2VjdXJpdHlPcmlnaW4gc2VjdXJpdHlJbmZvOwogICAgIGJvb2wgYWxsb3c7CiB9OwogCkBAIC04
OCwxOSArMTAyLDggQEAgYm9vbCBRV2ViUGVybWlzc2lvblJlcXVlc3Q6OmFsbG93KCkgY29uc3QK
ICAgICByZXR1cm4gZC0+YWxsb3c7CiB9CiAKLVFTdHJpbmcgUVdlYlBlcm1pc3Npb25SZXF1ZXN0
OjpzY2hlbWUoKSBjb25zdAorUXRXZWJTZWN1cml0eU9yaWdpbiYgUVdlYlBlcm1pc3Npb25SZXF1
ZXN0OjpzZWN1cml0eU9yaWdpbigpCiB7Ci0gICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHVy
bCA9IGFkb3B0V0soV0tTZWN1cml0eU9yaWdpbkNvcHlQcm90b2NvbChkLT5vcmlnaW4uZ2V0KCkp
KTsKLSAgICByZXR1cm4gV0tTdHJpbmdDb3B5UVN0cmluZyh1cmwuZ2V0KCkpOworICAgIHJldHVy
biBkLT5zZWN1cml0eUluZm87CiB9CiAKLVFTdHJpbmcgUVdlYlBlcm1pc3Npb25SZXF1ZXN0Ojpo
b3N0KCkgY29uc3QKLXsKLSAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gb3JpZ2luID0gYWRv
cHRXSyhXS1NlY3VyaXR5T3JpZ2luQ29weUhvc3QoZC0+b3JpZ2luLmdldCgpKSk7Ci0gICAgcmV0
dXJuIFdLU3RyaW5nQ29weVFTdHJpbmcob3JpZ2luLmdldCgpKTsKLX0KLQotaW50IFFXZWJQZXJt
aXNzaW9uUmVxdWVzdDo6cG9ydCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PGlu
dD4oV0tTZWN1cml0eU9yaWdpbkdldFBvcnQoZC0+b3JpZ2luLmdldCgpKSk7Ci19CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwZXJtaXNzaW9ucmVxdWVz
dF9wLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwZXJtaXNzaW9ucmVx
dWVzdF9wLmgKaW5kZXggNTgyNGM0Yy4uNDMwNWQxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9xdC9xd2VicGVybWlzc2lvbnJlcXVlc3RfcC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnBlcm1pc3Npb25yZXF1ZXN0X3AuaApAQCAt
MjIsNiArMjIsNyBAQAogCiAjaW5jbHVkZSAicXdlYmtpdGdsb2JhbC5oIgogCisjaW5jbHVkZSAi
cXR3ZWJzZWN1cml0eW9yaWdpbl9wLmgiCiAjaW5jbHVkZSA8UXRDb3JlL1FPYmplY3Q+CiAjaW5j
bHVkZSA8UXRDb3JlL3FzaGFyZWRkYXRhLmg+CiAjaW5jbHVkZSA8V2ViS2l0Mi9XS0dlb2xvY2F0
aW9uUGVybWlzc2lvblJlcXVlc3QuaD4KQEAgLTMzLDkgKzM0LDcgQEAgY2xhc3MgUVdFQktJVF9F
WFBPUlQgUVdlYlBlcm1pc3Npb25SZXF1ZXN0IDogcHVibGljIFFPYmplY3QgewogICAgIFFfT0JK
RUNUCiAgICAgUV9QUk9QRVJUWShib29sIGFsbG93IFJFQUQgYWxsb3cgV1JJVEUgc2V0QWxsb3cp
CiAgICAgUV9QUk9QRVJUWShSZXF1ZXN0VHlwZSB0eXBlIFJFQUQgdHlwZSkKLSAgICBRX1BST1BF
UlRZKFFTdHJpbmcgc2NoZW1lIFJFQUQgc2NoZW1lKQotICAgIFFfUFJPUEVSVFkoUVN0cmluZyBo
b3N0IFJFQUQgaG9zdCkKLSAgICBRX1BST1BFUlRZKGludCBwb3J0IFJFQUQgcG9ydCkKKyAgICBR
X1BST1BFUlRZKFF0V2ViU2VjdXJpdHlPcmlnaW4gc2VjdXJpdHlPcmlnaW4gUkVBRCBzZWN1cml0
eU9yaWdpbikKICAgICBRX0VOVU1TKFJlcXVlc3RUeXBlKQogCiBwdWJsaWM6CkBAIC00OCwxMiAr
NDcsMTAgQEAgcHVibGljOgogCiAgICAgUmVxdWVzdFR5cGUgdHlwZSgpIGNvbnN0OwogICAgIGJv
b2wgYWxsb3coKSBjb25zdDsKLSAgICBRU3RyaW5nIHNjaGVtZSgpIGNvbnN0OwotICAgIFFTdHJp
bmcgaG9zdCgpIGNvbnN0OwotICAgIGludCBwb3J0KCkgY29uc3Q7CiAKIHB1YmxpYyBRX1NMT1RT
OgogICAgIHZvaWQgc2V0QWxsb3coYm9vbCk7CisgICAgUXRXZWJTZWN1cml0eU9yaWdpbiYgc2Vj
dXJpdHlPcmlnaW4oKTsKIAogcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgUVdlYlBlcm1pc3Np
b25SZXF1ZXN0UHJpdmF0ZTsKLS0gCjEuNy41LjQKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>123123</attachid>
            <date>2012-01-19 07:14:22 -0800</date>
            <delta_ts>2012-01-19 12:27:08 -0800</delta_ts>
            <desc>QML test, linker error fixed, access to security property in QML, constant properties</desc>
            <filename>origin_step6_test.patch</filename>
            <type>text/plain</type>
            <size>19966</size>
            <attacher name="Adenilson Cavalcanti Silva">savagobr</attacher>
            
              <data encoding="base64">RnJvbSA5M2UwMmE3ZmJmNTIzMmY5NWI0M2NkMGU0NTUzMjdjMzhmOThjMmI5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBZGVuaWxzb24gQ2F2YWxjYW50aSA8Y2F2YWxjYW50aWlAZ21h
aWwuY29tPgpEYXRlOiBUaHUsIDEyIEphbiAyMDEyIDE3OjI1OjUxIC0wNDAwClN1YmplY3Q6IFtQ
QVRDSF0gU29sdmVkIGxpYnJhcnkgbG9hZGluZyBpc3N1ZSwgYWNjZXNzIHRvIHRoZSBzZWN1cml0
eQogcHJvcGVydHkgaW4gUU1MIHNpZGUsIFFNTCB0ZXN0LCBjb25zdGFudC1meSByZWFkIG9ubHkK
IHByb3BlcnRpZXMuCgpTaWduZWQtb2ZmLWJ5OiBBZGVuaWxzb24gQ2F2YWxjYW50aSA8Y2F2YWxj
YW50aWlAZ21haWwuY29tPgotLS0KIFNvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nICAgICAgICAg
ICAgICAgICAgICAgICAgIHwgICAxMiArKwogU291cmNlL1dlYktpdC9xdC9kZWNsYXJhdGl2ZS9w
bHVnaW4uY3BwICAgICAgICAgICAgfCAgICAzICsKIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAzOCArKysrCiBTb3VyY2UvV2ViS2l0Mi9UYXJn
ZXQucHJpICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDIgKwogLi4uL1VJUHJvY2Vzcy9B
UEkvcXQvcXR3ZWJzZWN1cml0eW9yaWdpbi5jcHAgICAgICAgfCAgMTkxICsrKysrKysrKysrKysr
KysrKysrCiAuLi4vVUlQcm9jZXNzL0FQSS9xdC9xdHdlYnNlY3VyaXR5b3JpZ2luX3AuaCAgICAg
ICB8ICAgNzUgKysrKysrKysKIC4uLi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwZXJtaXNzaW9ucmVx
dWVzdC5jcHAgICAgIHwgICAyOSArKy0tCiAuLi4vVUlQcm9jZXNzL0FQSS9xdC9xd2VicGVybWlz
c2lvbnJlcXVlc3RfcC5oICAgICB8ICAgMTEgKy0KIC4uLi9BUEkvcXQvdGVzdHMvcW1sdGVzdHMv
V2ViVmlldy90c3Rfb3JpZ2luLnFtbCAgIHwgICA0NCArKysrKwogLi4uL1VJUHJvY2Vzcy9BUEkv
cXQvdGVzdHMvcW1sdGVzdHMvcW1sdGVzdHMucHJvICAgfCAgICAzICstCiBTb3VyY2UvcXR3ZWJr
aXQtZXhwb3J0Lm1hcCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDQgKy0KIDExIGZpbGVz
IGNoYW5nZWQsIDM5MCBpbnNlcnRpb25zKCspLCAyMiBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2Rl
IDEwMDY0NCBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F0d2Vic2VjdXJpdHlvcmln
aW4uY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9x
dC9xdHdlYnNlY3VyaXR5b3JpZ2luX3AuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvV2ViVmlldy90c3Rfb3JpZ2luLnFt
bAoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9xdC9DaGFuZ2VMb2cKaW5kZXggOGE1MGY2NS4uYjdmNWQ1MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9xdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNSBAQAorMjAxMi0wMS0xMiAgQWRlbmlsc29uIENhdmFsY2FudGkgIDxjYXZhbGNh
bnRpaUBnbWFpbC5jb20+CisKKyAgICAgICAgU3BsaXQgUVdlYlBlcm1pc3Npb25SZXF1ZXN0IGlu
dG8gUVdlYlNlY3VyaXR5T3JpZ2luCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD03MzIxNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorICAgIAorICAgICAgICBFeHBvcnQgdGhlIHNlY3VyaXR5IG9yaWdpbiBjbGFzcyB0byBRTUwu
CisKKyAgICAgICAgKiBkZWNsYXJhdGl2ZS9wbHVnaW4uY3BwOgorICAgICAgICAoV2ViS2l0UW1s
UGx1Z2luOjpyZWdpc3RlclR5cGVzKToKKwogMjAxMi0wMS0xNyAgVmlhdGNoZXNsYXYgT3N0YXBl
bmtvICA8b3N0YXBlbmtvLnZpYXRjaGVzbGF2QG5va2lhLmNvbT4KIAogICAgICAgICBbUXRdIERl
YnVnIGJ1aWxkIGZhaWxzIHdpdGggZGVidWcgcXQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L3F0L2RlY2xhcmF0aXZlL3BsdWdpbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L2RlY2xhcmF0aXZl
L3BsdWdpbi5jcHAKaW5kZXggNjQ2MzhlNC4uZTJmMGZiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9xdC9kZWNsYXJhdGl2ZS9wbHVnaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvZGVj
bGFyYXRpdmUvcGx1Z2luLmNwcApAQCAtMjUsNiArMjUsNyBAQAogI2lmIGRlZmluZWQoSEFWRV9X
RUJLSVQyKQogI2luY2x1ZGUgInFxdWlja3dlYnBhZ2VfcC5oIgogI2luY2x1ZGUgInFxdWlja3dl
YnZpZXdfcC5oIgorI2luY2x1ZGUgInF0d2Vic2VjdXJpdHlvcmlnaW5fcC5oIgogI2luY2x1ZGUg
InF3ZWJpY29uaW1hZ2Vwcm92aWRlcl9wLmgiCiAjaW5jbHVkZSAicXdlYm5hdmlnYXRpb25yZXF1
ZXN0X3AuaCIKICNpbmNsdWRlICJxd2VicGVybWlzc2lvbnJlcXVlc3RfcC5oIgpAQCAtNjUsNiAr
NjYsOCBAQCBwdWJsaWM6CiAgICAgICAgIHFtbFJlZ2lzdGVyVW5jcmVhdGFibGVUeXBlPFFOZXR3
b3JrUmVwbHk+KHVyaSwgMywgMCwgIk5ldHdvcmtSZXBseSIsIFFPYmplY3Q6OnRyKCJDYW5ub3Qg
Y3JlYXRlIHNlcGFyYXRlIGluc3RhbmNlIG9mIE5ldHdvcmtSZXBseSIpKTsKICAgICAgICAgcW1s
UmVnaXN0ZXJVbmNyZWF0YWJsZVR5cGU8UVdlYlBlcm1pc3Npb25SZXF1ZXN0Pih1cmksIDMsIDAs
ICJQZXJtaXNzaW9uUmVxdWVzdCIsIFFPYmplY3Q6OnRyKCJDYW5ub3QgY3JlYXRlIHNlcGFyYXRl
IGluc3RhbmNlIG9mIFBlcm1pc3Npb25SZXF1ZXN0IikpOwogICAgICAgICBxbWxSZWdpc3RlclVu
Y3JlYXRhYmxlVHlwZTxRV2ViTmF2aWdhdGlvblJlcXVlc3Q+KHVyaSwgMywgMCwgIk5hdmlnYXRp
b25SZXF1ZXN0IiwgUU9iamVjdDo6dHIoIkNhbm5vdCBjcmVhdGUgc2VwYXJhdGUgaW5zdGFuY2Ug
b2YgTmF2aWdhdGlvblJlcXVlc3QiKSk7CisgICAgICAgIHFtbFJlZ2lzdGVyVW5jcmVhdGFibGVU
eXBlPFF0V2ViU2VjdXJpdHlPcmlnaW4+KHVyaSwgMywgMCwgIlNlY3VyaXR5T3JpZ2luIiwgUU9i
amVjdDo6dHIoIkNhbm5vdCBjcmVhdGUgc2VwYXJhdGUgaW5zdGFuY2Ugb2YgU2VjdXJpdHlPcmln
aW4iKSk7CisKICNlbmRpZgogICAgIH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYWU3YmNmNi4uYjNjY2Q3
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDEyLTAxLTEyICBBZGVuaWxzb24gQ2F2
YWxjYW50aSAgPGNhdmFsY2FudGlpQGdtYWlsLmNvbT4KKworICAgICAgICBTcGxpdCBRV2ViUGVy
bWlzc2lvblJlcXVlc3QgaW50byBRV2ViU2VjdXJpdHlPcmlnaW4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTczMjE1CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW50cm9kdWNpbnQgYSBuZXcgY2xhc3MgdG8g
ZXhwb3NlIHNlY3VyaXR5IG9yaWdpbiBpbmZvcm1hdGlvbi4KKworICAgICAgICAqIFRhcmdldC5w
cmk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xdHdlYnNlY3VyaXR5b3JpZ2luLmNwcDog
QWRkZWQuCisgICAgICAgIChRdFdlYlNlY3VyaXR5T3JpZ2luUHJpdmF0ZTo6bG9jYWxTY2hlbWVz
KToKKyAgICAgICAgKFF0V2ViU2VjdXJpdHlPcmlnaW5Qcml2YXRlOjpjb250YWluc1NjaGVtZSk6
CisgICAgICAgIChRdFdlYlNlY3VyaXR5T3JpZ2luUHJpdmF0ZTo6UXRXZWJTZWN1cml0eU9yaWdp
blByaXZhdGUpOgorICAgICAgICAoUXRXZWJTZWN1cml0eU9yaWdpblByaXZhdGU6On5RdFdlYlNl
Y3VyaXR5T3JpZ2luUHJpdmF0ZSk6CisgICAgICAgIChRdFdlYlNlY3VyaXR5T3JpZ2luOjppc0xv
Y2FsU2NoZW1lKToKKyAgICAgICAgKFF0V2ViU2VjdXJpdHlPcmlnaW46OlF0V2ViU2VjdXJpdHlP
cmlnaW4pOgorICAgICAgICAoUXRXZWJTZWN1cml0eU9yaWdpbjo6flF0V2ViU2VjdXJpdHlPcmln
aW4pOgorICAgICAgICAoUXRXZWJTZWN1cml0eU9yaWdpbjo6aG9zdCk6CisgICAgICAgIChRdFdl
YlNlY3VyaXR5T3JpZ2luOjpzY2hlbWUpOgorICAgICAgICAoUXRXZWJTZWN1cml0eU9yaWdpbjo6
cGF0aCk6CisgICAgICAgIChRdFdlYlNlY3VyaXR5T3JpZ2luOjpwb3J0KToKKyAgICAgICAgKFF0
V2ViU2VjdXJpdHlPcmlnaW46OnVybCk6CisgICAgICAgIChRdFdlYlNlY3VyaXR5T3JpZ2luOjph
ZGRMb2NhbFNjaGVtZSk6CisgICAgICAgIChRdFdlYlNlY3VyaXR5T3JpZ2luOjpyZW1vdmVMb2Nh
bFNjaGVtZSk6CisgICAgICAgIChRdFdlYlNlY3VyaXR5T3JpZ2luOjpsb2NhbFNjaGVtZXMpOgor
ICAgICAgICAoUXRXZWJTZWN1cml0eU9yaWdpbjo6Y2FuQWNjZXNzKToKKyAgICAgICAgKG9wZXJh
dG9yPDwpOgorICAgICAgICAob3BlcmF0b3I+Pik6CisgICAgICAgIChRdFdlYlNlY3VyaXR5T3Jp
Z2luOjpvcGVyYXRvcj0pOgorICAgICAgICAoUXRXZWJTZWN1cml0eU9yaWdpbjo6b3BlcmF0b3Ih
PSk6CisgICAgICAgIChRdFdlYlNlY3VyaXR5T3JpZ2luOjpvcGVyYXRvcj09KToKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL3F0L3F0d2Vic2VjdXJpdHlvcmlnaW5fcC5oOiBBZGRlZC4KKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL3F0L3F3ZWJwZXJtaXNzaW9ucmVxdWVzdC5jcHA6CisgICAgICAg
IChRV2ViUGVybWlzc2lvblJlcXVlc3RQcml2YXRlOjpRV2ViUGVybWlzc2lvblJlcXVlc3RQcml2
YXRlKToKKyAgICAgICAgKFFXZWJQZXJtaXNzaW9uUmVxdWVzdDo6c2VjdXJpdHlPcmlnaW4pOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXdlYnBlcm1pc3Npb25yZXF1ZXN0X3AuaDoKKwog
MjAxMi0wMS0xOCAgU2hpbnlhIEthd2FuYWthICA8c2hpbnlha0Bnb29nbGUuY29tPgogCiAgICAg
ICAgIE1vdmUgU2hhZG93Q29udGVudEVsZW1lbnQgZnJvbSBkb20vIHRvIGh0bWwvIGFuZCBtYWtl
IFNoYWRvd0NvbnRlbnRFbGVtZW50IHN1YmNsYXNzIG9mIEhUTUxFbGVtZW50LgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJLaXQyL1RhcmdldC5wcmkK
aW5kZXggMzU5ODNmMC4uODI0OTA3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVGFyZ2V0
LnByaQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpCkBAIC0xNzQsNiArMTc0LDcgQEAg
SEVBREVSUyArPSBcCiAgICAgVUlQcm9jZXNzL0FQSS9xdC9xd2ViZG93bmxvYWRpdGVtX3AuaCBc
CiAgICAgVUlQcm9jZXNzL0FQSS9xdC9xd2ViZG93bmxvYWRpdGVtX3BfcC5oIFwKICAgICBVSVBy
b2Nlc3MvQVBJL3F0L3F3ZWJwZXJtaXNzaW9ucmVxdWVzdF9wLmggXAorICAgIFVJUHJvY2Vzcy9B
UEkvcXQvcXR3ZWJzZWN1cml0eW9yaWdpbl9wLmggXAogICAgIFVJUHJvY2Vzcy9BUEkvcXQvcXdl
Ym5hdmlnYXRpb25yZXF1ZXN0X3AuaCBcCiAgICAgVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJw
YWdlX3AuaCBcCiAgICAgVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJwYWdlX3BfcC5oIFwKQEAg
LTUwNCw2ICs1MDUsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBVSVByb2Nlc3MvQVBJL2NwcC9xdC9X
S1VSTFF0LmNwcCBcCiAgICAgVUlQcm9jZXNzL0FQSS9xdC9xd2ViZG93bmxvYWRpdGVtLmNwcCBc
CiAgICAgVUlQcm9jZXNzL0FQSS9xdC9xd2VicGVybWlzc2lvbnJlcXVlc3QuY3BwIFwKKyAgICBV
SVByb2Nlc3MvQVBJL3F0L3F0d2Vic2VjdXJpdHlvcmlnaW4uY3BwIFwKICAgICBVSVByb2Nlc3Mv
QVBJL3F0L3F3ZWJuYXZpZ2F0aW9ucmVxdWVzdC5jcHAgXAogICAgIFVJUHJvY2Vzcy9BUEkvcXQv
cXF1aWNrd2VicGFnZS5jcHAgXAogICAgIFVJUHJvY2Vzcy9BUEkvcXQvcXdlYm5hdmlnYXRpb25o
aXN0b3J5LmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0
L3F0d2Vic2VjdXJpdHlvcmlnaW4uY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9x
dC9xdHdlYnNlY3VyaXR5b3JpZ2luLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi5hOTI0ODQ4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9xdC9xdHdlYnNlY3VyaXR5b3JpZ2luLmNwcApAQCAtMCwwICsxLDE5MSBAQAorLyoKKyAg
ICBDb3B5cmlnaHQgKEMpIDIwMTIgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRp
YXJ5KC1pZXMpCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy
ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi
eSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9uIDIgb2Yg
dGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAg
ICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl
IHVzZWZ1bCwKKyAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg
aW1wbGllZCB3YXJyYW50eSBvZgorICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICAgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVj
ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisg
ICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElm
IG5vdCwgd3JpdGUgdG8KKyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1
MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMw
MSwgVVNBLgorKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW5jbHVkZSAicXR3ZWJzZWN1
cml0eW9yaWdpbl9wLmgiCisKKyNpbmNsdWRlIDxLVVJMLmg+CisjaW5jbHVkZSA8UXRDb3JlL1FG
aWxlSW5mbz4KKyNpbmNsdWRlIDxRdENvcmUvUVN0cmluZ0xpc3Q+CisjaW5jbHVkZSA8U2NoZW1l
UmVnaXN0cnkuaD4KKyNpbmNsdWRlIDxTZWN1cml0eU9yaWdpbi5oPgorI2luY2x1ZGUgPFdlYktp
dDIvV0tCYXNlLmg+CisjaW5jbHVkZSA8V2ViS2l0Mi9XS1JldGFpblB0ci5oPgorI2luY2x1ZGUg
PFdlYktpdDIvV0tTZWN1cml0eU9yaWdpbi5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
KworY2xhc3MgUXRXZWJTZWN1cml0eU9yaWdpblByaXZhdGUgOiBwdWJsaWMgUVNoYXJlZERhdGEg
eworCitwdWJsaWM6CisKKyAgICBzdGF0aWMgUVN0cmluZ0xpc3QgbG9jYWxTY2hlbWVzKCkKKyAg
ICB7CisgICAgICAgIFFTdHJpbmdMaXN0IHNjaGVtZXM7CisgICAgICAgIGNvbnN0IFVSTFNjaGVt
ZXNNYXAmIG1hcCA9IFNjaGVtZVJlZ2lzdHJ5Ojpsb2NhbFNjaGVtZXMoKTsKKyAgICAgICAgVVJM
U2NoZW1lc01hcDo6Y29uc3RfaXRlcmF0b3IgZW5kID0gbWFwLmVuZCgpOworICAgICAgICBmb3Ig
KFVSTFNjaGVtZXNNYXA6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbWFwLmJlZ2luKCk7IGl0ICE9IGVu
ZDsgKytpdCkgeworICAgICAgICAgICAgY29uc3QgUVN0cmluZyBzY2hlbWUgPSAqaXQ7CisgICAg
ICAgICAgICBzY2hlbWVzLmFwcGVuZChzY2hlbWUpOworICAgICAgICB9CisgICAgICAgIHJldHVy
biBzY2hlbWVzOworICAgIH0KKworICAgIHN0YXRpYyBib29sIGNvbnRhaW5zU2NoZW1lKGNvbnN0
IFFTdHJpbmcmIHNjaGVtZSkKKyAgICB7CisgICAgICAgIGNvbnN0IFVSTFNjaGVtZXNNYXAmIG1h
cCA9IFNjaGVtZVJlZ2lzdHJ5Ojpsb2NhbFNjaGVtZXMoKTsKKyAgICAgICAgcmV0dXJuIG1hcC5j
b250YWlucyhzY2hlbWUpOworICAgIH0KKworICAgIFF0V2ViU2VjdXJpdHlPcmlnaW5Qcml2YXRl
KCkKKyAgICB7CisgICAgfQorCisgICAgflF0V2ViU2VjdXJpdHlPcmlnaW5Qcml2YXRlKCkKKyAg
ICB7CisgICAgfQorCisgICAgUVVybCB1cmw7Cit9OworCitib29sIFF0V2ViU2VjdXJpdHlPcmln
aW46OmlzTG9jYWxTY2hlbWUoY29uc3QgUVN0cmluZyYgc2NoZW1lKQoreworICAgIHJldHVybiAo
c2NoZW1lID09IFFTdHJpbmc6OmZyb21VdGY4KCJxcmMiKSkgPyB0cnVlIDogKHNjaGVtZSA9PSBR
U3RyaW5nOjpmcm9tVXRmOCgiZmlsZSIpKTsKK30KKworUXRXZWJTZWN1cml0eU9yaWdpbjo6UXRX
ZWJTZWN1cml0eU9yaWdpbihjb25zdCBRVXJsJiB1cmwsIFFPYmplY3QqIHBhcmVudCkKKyAgICA6
IFFPYmplY3QocGFyZW50KQorICAgICwgZChuZXcgUXRXZWJTZWN1cml0eU9yaWdpblByaXZhdGUp
Cit7CisKKyAgICBkLT51cmwuc2V0U2NoZW1lKHVybC5zY2hlbWUoKSk7CisgICAgaWYgKHVybC5z
Y2hlbWUoKSA9PSBRTGF0aW4xU3RyaW5nKCJkYXRhIikpCisgICAgICAgIHJldHVybjsKKworICAg
IGlmIChpc0xvY2FsU2NoZW1lKHVybC5zY2hlbWUoKSkpIHsKKyAgICAgICAgLy8gV2Ugc3RvcmUg
dGhlIGNhbm5vbmljYWwgcGF0aCwgaWUuIHRoZSBhYnNvbHV0ZSBwYXRoICp3aXRob3V0KiBzeW1i
b2xpYworICAgICAgICAvLyBsaW5rcyBvciByZWR1bmRhbnQgIi4iIG9yICIuLiIgZWxlbWVudHMu
CisgICAgICAgIGQtPnVybC5zZXRQYXRoKFFGaWxlSW5mbyh1cmwucGF0aCgpKS5jYW5vbmljYWxG
aWxlUGF0aCgpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGQtPnVybC5zZXRIb3N0
KHVybC5ob3N0KCkpOworfQorCitRdFdlYlNlY3VyaXR5T3JpZ2luOjp+UXRXZWJTZWN1cml0eU9y
aWdpbigpCit7Cit9CisKK1FTdHJpbmcgUXRXZWJTZWN1cml0eU9yaWdpbjo6aG9zdCgpIGNvbnN0
Cit7CisgICAgcmV0dXJuIGQtPnVybC5ob3N0KCk7Cit9CisKK1FTdHJpbmcgUXRXZWJTZWN1cml0
eU9yaWdpbjo6c2NoZW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZC0+dXJsLnNjaGVtZSgpOwor
fQorCitRU3RyaW5nIFF0V2ViU2VjdXJpdHlPcmlnaW46OnBhdGgoKSBjb25zdAoreworICAgIHJl
dHVybiBkLT51cmwucGF0aCgpOworfQorCitpbnQgUXRXZWJTZWN1cml0eU9yaWdpbjo6cG9ydCgp
IGNvbnN0Cit7CisgICAgcmV0dXJuIGQtPnVybC5wb3J0KCk7Cit9CisKK1FVcmwgUXRXZWJTZWN1
cml0eU9yaWdpbjo6dXJsKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZC0+dXJsOworfQordm9pZCBR
dFdlYlNlY3VyaXR5T3JpZ2luOjphZGRMb2NhbFNjaGVtZShjb25zdCBRU3RyaW5nJiBzY2hlbWUp
Cit7CisgICAgaWYgKFF0V2ViU2VjdXJpdHlPcmlnaW5Qcml2YXRlOjpjb250YWluc1NjaGVtZShz
Y2hlbWUpKQorICAgICAgICByZXR1cm47CisKKyAgICBTY2hlbWVSZWdpc3RyeTo6cmVnaXN0ZXJV
UkxTY2hlbWVBc0xvY2FsKHNjaGVtZSk7Cit9CisKK3ZvaWQgUXRXZWJTZWN1cml0eU9yaWdpbjo6
cmVtb3ZlTG9jYWxTY2hlbWUoY29uc3QgUVN0cmluZyYgc2NoZW1lKQoreworICAgIC8vIFlvdSBj
YW5ub3QgcmVtb3ZlIGZpbGU6CisgICAgaWYgKHNjaGVtZSA9PSBRTGF0aW4xU3RyaW5nKCJmaWxl
IikpCisgICAgICAgIHJldHVybjsKKworICAgIFNjaGVtZVJlZ2lzdHJ5OjpyZW1vdmVVUkxTY2hl
bWVSZWdpc3RlcmVkQXNMb2NhbChzY2hlbWUpOworfQorCitRU3RyaW5nTGlzdCBRdFdlYlNlY3Vy
aXR5T3JpZ2luOjpsb2NhbFNjaGVtZXMoKQoreworICAgIHJldHVybiBRdFdlYlNlY3VyaXR5T3Jp
Z2luUHJpdmF0ZTo6bG9jYWxTY2hlbWVzKCk7Cit9CisKK2Jvb2wgUXRXZWJTZWN1cml0eU9yaWdp
bjo6Y2FuQWNjZXNzKGNvbnN0IFFVcmwmIHVybCwgT3JpZ2luUG9saWN5RmxhZ3MgZmxhZ3MpCit7
CisgICAgaWYgKHNjaGVtZSgpID09IFFMYXRpbjFTdHJpbmcoImRhdGEiKSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworCisgICAgaWYgKGQtPmNvbnRhaW5zU2NoZW1lKGQtPnVybC5zY2hlbWUoKSkp
IHsKKyAgICAgICAgaWYgKGQtPmNvbnRhaW5zU2NoZW1lKHVybC5zY2hlbWUoKSkgJiYgKGZsYWdz
ICYgTG9jYWxDb250ZW50SGFzU3lzdGVtTG9jYWxBY2Nlc3MpKQorICAgICAgICAgICAgcmV0dXJu
IHRydWU7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJldHVybiBkLT51cmwucGF0aCgpID09
IFFGaWxlSW5mbyh1cmwucGF0aCgpKS5jYW5vbmljYWxGaWxlUGF0aCgpOworICAgIH0KKworICAg
IHJldHVybiBkLT51cmwuc2NoZW1lKCkgPT0gdXJsLnNjaGVtZSgpICYmIGQtPnVybC5ob3N0KCkg
PT0gdXJsLmhvc3QoKSAmJiBkLT51cmwucG9ydCgpID09IHVybC5wb3J0KCk7Cit9CisKK1FEYXRh
U3RyZWFtJiBvcGVyYXRvcjw8KFFEYXRhU3RyZWFtJiBvdXQsIGNvbnN0IFF0V2ViU2VjdXJpdHlP
cmlnaW4gJm9yaWdpbikKK3sKKyAgICAvLyBGSVhNRTogTWlnaHQgbmVlZCBzb21lIHZlcnNpb25p
bmcuCisgICAgb3V0IDw8IChvcmlnaW4udXJsKCkudG9FbmNvZGVkKCkuZGF0YSgpKTsKKyAgICBy
ZXR1cm4gb3V0OworfQorCitRRGF0YVN0cmVhbSYgb3BlcmF0b3I+PihRRGF0YVN0cmVhbSYgaW4s
IFF0V2ViU2VjdXJpdHlPcmlnaW4mIG9yaWdpbikKK3sKKyAgICAvLyBGSVhNRTogTWlnaHQgbmVl
ZCBzb21lIHZlcnNpb25pbmcuCisgICAgY2hhciogdXJsID0gb3JpZ2luLnVybCgpLnRvRW5jb2Rl
ZCgpLmRhdGEoKTsKKyAgICBpbiA+PiB1cmw7CisgICAgcmV0dXJuIGluOworfQorCitRdFdlYlNl
Y3VyaXR5T3JpZ2luJiBRdFdlYlNlY3VyaXR5T3JpZ2luOjpvcGVyYXRvcj0oY29uc3QgUVVybCYg
dXJsKQoreworICAgIGQtPnVybCA9IHVybDsKKyAgICByZXR1cm4gKnRoaXM7Cit9CisKK1F0V2Vi
U2VjdXJpdHlPcmlnaW4mIFF0V2ViU2VjdXJpdHlPcmlnaW46Om9wZXJhdG9yPShjb25zdCBRdFdl
YlNlY3VyaXR5T3JpZ2luJiBkYXRhKQoreworICAgIHJldHVybiBvcGVyYXRvcj0oZGF0YS5kLT51
cmwpOworfQorCitib29sIFF0V2ViU2VjdXJpdHlPcmlnaW46Om9wZXJhdG9yIT0oY29uc3QgUXRX
ZWJTZWN1cml0eU9yaWdpbiYgZGF0YSkKK3sKKyAgICByZXR1cm4gZC0+dXJsICE9IGRhdGEuZC0+
dXJsOworfQorCitib29sIFF0V2ViU2VjdXJpdHlPcmlnaW46Om9wZXJhdG9yPT0oY29uc3QgUXRX
ZWJTZWN1cml0eU9yaWdpbiYgZGF0YSkKK3sKKyAgICByZXR1cm4gZC0+dXJsID09IGRhdGEuZC0+
dXJsOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xdHdl
YnNlY3VyaXR5b3JpZ2luX3AuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXR3
ZWJzZWN1cml0eW9yaWdpbl9wLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
N2Y1YzZhNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
cXQvcXR3ZWJzZWN1cml0eW9yaWdpbl9wLmgKQEAgLTAsMCArMSw3NSBAQAorLyoKKyAgICBDb3B5
cmlnaHQgKEMpIDIwMTIgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1p
ZXMpCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCisgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9uIDIgb2YgdGhlIExp
Y2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgICBUaGlz
IGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1
bCwKKyAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll
ZCB3YXJyYW50eSBvZgorICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg
YSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICAgYWxv
bmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwg
d3JpdGUgdG8KKyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFu
a2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNB
LgorKi8KKyNpZm5kZWYgcXR3ZWJzZWN1cml0eW9yaWdpbl9wX2gKKyNkZWZpbmUgcXR3ZWJzZWN1
cml0eW9yaWdpbl9wX2gKKworI2luY2x1ZGUgInF3ZWJraXRnbG9iYWwuaCIKKworI2luY2x1ZGUg
PFF0Q29yZS9RRGF0YVN0cmVhbT4KKyNpbmNsdWRlIDxRdENvcmUvUU9iamVjdD4KKyNpbmNsdWRl
IDxRdENvcmUvUVN0cmluZz4KKyNpbmNsdWRlIDxRdENvcmUvUVVybD4KKyNpbmNsdWRlIDxRdENv
cmUvcXNoYXJlZGRhdGEuaD4KKworY2xhc3MgUXRXZWJTZWN1cml0eU9yaWdpblByaXZhdGU7CisK
K2NsYXNzIFFXRUJLSVRfRVhQT1JUIFF0V2ViU2VjdXJpdHlPcmlnaW4gOiBwdWJsaWMgUU9iamVj
dCB7CisgICAgUV9PQkpFQ1QKKyAgICBRX1BST1BFUlRZKFFTdHJpbmcgc2NoZW1lIFJFQUQgc2No
ZW1lIENPTlNUQU5UKQorICAgIFFfUFJPUEVSVFkoUVN0cmluZyBob3N0IFJFQUQgaG9zdCBDT05T
VEFOVCkKKyAgICBRX1BST1BFUlRZKGludCBwb3J0IFJFQUQgcG9ydCBDT05TVEFOVCkKKyAgICBR
X1BST1BFUlRZKFFTdHJpbmcgcGF0aCBSRUFEIHBhdGggQ09OU1RBTlQpCisgICAgUV9QUk9QRVJU
WShRVXJsIHVybCBSRUFEIHVybCBDT05TVEFOVCkKKworcHVibGljOgorICAgIFF0V2ViU2VjdXJp
dHlPcmlnaW4oY29uc3QgUVVybCYgdXJsLCBRT2JqZWN0KiBwYXJlbnQgPSAwKTsKKyAgICB2aXJ0
dWFsIH5RdFdlYlNlY3VyaXR5T3JpZ2luKCk7CisKKyAgICBRU3RyaW5nIHNjaGVtZSgpIGNvbnN0
OworICAgIFFTdHJpbmcgaG9zdCgpIGNvbnN0OworICAgIGludCBwb3J0KCkgY29uc3Q7CisgICAg
UVN0cmluZyBwYXRoKCkgY29uc3Q7CisgICAgUVVybCB1cmwoKSBjb25zdDsKKworICAgIHN0YXRp
YyB2b2lkIGFkZExvY2FsU2NoZW1lKGNvbnN0IFFTdHJpbmcmIHNjaGVtZSk7CisgICAgc3RhdGlj
IHZvaWQgcmVtb3ZlTG9jYWxTY2hlbWUoY29uc3QgUVN0cmluZyYgc2NoZW1lKTsKKyAgICBzdGF0
aWMgUVN0cmluZ0xpc3QgbG9jYWxTY2hlbWVzKCk7CisKKyAgICBRdFdlYlNlY3VyaXR5T3JpZ2lu
JiBvcGVyYXRvcj0oY29uc3QgUXRXZWJTZWN1cml0eU9yaWdpbiYpOworICAgIFF0V2ViU2VjdXJp
dHlPcmlnaW4mIG9wZXJhdG9yPShjb25zdCBRVXJsJik7CisgICAgYm9vbCBvcGVyYXRvciE9KGNv
bnN0IFF0V2ViU2VjdXJpdHlPcmlnaW4mKTsKKyAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgUXRX
ZWJTZWN1cml0eU9yaWdpbiYpOworCisgICAgZW51bSBPcmlnaW5Qb2xpY3lGbGFncyB7CisgICAg
ICAgIENvbnRlbnRIYXNTYW1lT3JpZ2luQWNjZXNzID0gMHgwLAorICAgICAgICBMb2NhbENvbnRl
bnRIYXNSZW1vdGVBY2Nlc3MgPSAweDEsCisgICAgICAgIExvY2FsQ29udGVudEhhc1N5c3RlbUxv
Y2FsQWNjZXNzID0gMHgyCisgICAgfTsKKworICAgIGJvb2wgY2FuQWNjZXNzKGNvbnN0IFFVcmwm
IHVybCwgT3JpZ2luUG9saWN5RmxhZ3MgZmxhZ3MgPSBDb250ZW50SGFzU2FtZU9yaWdpbkFjY2Vz
cyk7CisKK3ByaXZhdGU6CisgICAgYm9vbCBpc0xvY2FsU2NoZW1lKGNvbnN0IFFTdHJpbmcmKTsK
KyAgICBRU2hhcmVkRGF0YVBvaW50ZXI8UXRXZWJTZWN1cml0eU9yaWdpblByaXZhdGU+IGQ7Cit9
OworCitRRGF0YVN0cmVhbSYgb3BlcmF0b3I8PChRRGF0YVN0cmVhbSYsIGNvbnN0IFF0V2ViU2Vj
dXJpdHlPcmlnaW4mKTsKK1FEYXRhU3RyZWFtJiBvcGVyYXRvcj4+KFFEYXRhU3RyZWFtJiwgUXRX
ZWJTZWN1cml0eU9yaWdpbiYpOworCisjZW5kaWYgLy8gcXR3ZWJzZWN1cml0eW9yaWdpbl9wX2gK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnBlcm1pc3Np
b25yZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnBlcm1p
c3Npb25yZXF1ZXN0LmNwcAppbmRleCAxNmE0Mzg1Li5hNjRhMDU5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwZXJtaXNzaW9ucmVxdWVzdC5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2VicGVybWlzc2lvbnJlcXVlc3Qu
Y3BwCkBAIC0zMiw5ICszMiwyMiBAQCBwdWJsaWM6CiAgICAgICAgIDogb3JpZ2luKHNlY3VyaXR5
T3JpZ2luKQogICAgICAgICAsIHR5cGUoUVdlYlBlcm1pc3Npb25SZXF1ZXN0OjpHZW9sb2NhdGlv
bikKICAgICAgICAgLCByZXF1ZXN0KHBlcm1pc3Npb25SZXF1ZXN0KQorICAgICAgICAsIHNlY3Vy
aXR5SW5mbyhRVXJsKCksIDApCiAgICAgICAgICwgYWxsb3coZmFsc2UpCiAgICAgeworCisgICAg
ICAgIFFVcmwgZGF0YTsKKyAgICAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHVybCA9IGFk
b3B0V0soV0tTZWN1cml0eU9yaWdpbkNvcHlQcm90b2NvbChvcmlnaW4uZ2V0KCkpKTsKKyAgICAg
ICAgZGF0YS5zZXRTY2hlbWUoV0tTdHJpbmdDb3B5UVN0cmluZyh1cmwuZ2V0KCkpKTsKKworICAg
ICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gaG9zdCA9IGFkb3B0V0soV0tTZWN1cml0eU9y
aWdpbkNvcHlIb3N0KG9yaWdpbi5nZXQoKSkpOworICAgICAgICBkYXRhLnNldEhvc3QoV0tTdHJp
bmdDb3B5UVN0cmluZyhob3N0LmdldCgpKSk7CisKKyAgICAgICAgZGF0YS5zZXRQb3J0KHN0YXRp
Y19jYXN0PGludD4oV0tTZWN1cml0eU9yaWdpbkdldFBvcnQob3JpZ2luLmdldCgpKSkpOworICAg
ICAgICBzZWN1cml0eUluZm8gPSBkYXRhOworCiAgICAgfQorCiAgICAgflFXZWJQZXJtaXNzaW9u
UmVxdWVzdFByaXZhdGUoKQogICAgIHsKICAgICB9CkBAIC00Miw2ICs1NSw3IEBAIHB1YmxpYzoK
ICAgICBXS1JldGFpblB0cjxXS1NlY3VyaXR5T3JpZ2luUmVmPiBvcmlnaW47CiAgICAgUVdlYlBl
cm1pc3Npb25SZXF1ZXN0OjpSZXF1ZXN0VHlwZSB0eXBlOwogICAgIFdLUmV0YWluUHRyPFdLR2Vv
bG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdFJlZj4gcmVxdWVzdDsKKyAgICBRdFdlYlNlY3VyaXR5
T3JpZ2luIHNlY3VyaXR5SW5mbzsKICAgICBib29sIGFsbG93OwogfTsKIApAQCAtODgsMTkgKzEw
Miw4IEBAIGJvb2wgUVdlYlBlcm1pc3Npb25SZXF1ZXN0OjphbGxvdygpIGNvbnN0CiAgICAgcmV0
dXJuIGQtPmFsbG93OwogfQogCi1RU3RyaW5nIFFXZWJQZXJtaXNzaW9uUmVxdWVzdDo6c2NoZW1l
KCkgY29uc3QKK1F0V2ViU2VjdXJpdHlPcmlnaW4qIFFXZWJQZXJtaXNzaW9uUmVxdWVzdDo6c2Vj
dXJpdHlPcmlnaW4oKQogewotICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiB1cmwgPSBhZG9w
dFdLKFdLU2VjdXJpdHlPcmlnaW5Db3B5UHJvdG9jb2woZC0+b3JpZ2luLmdldCgpKSk7Ci0gICAg
cmV0dXJuIFdLU3RyaW5nQ29weVFTdHJpbmcodXJsLmdldCgpKTsKKyAgICByZXR1cm4gJihkLT5z
ZWN1cml0eUluZm8pOwogfQogCi1RU3RyaW5nIFFXZWJQZXJtaXNzaW9uUmVxdWVzdDo6aG9zdCgp
IGNvbnN0Ci17Ci0gICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IG9yaWdpbiA9IGFkb3B0V0so
V0tTZWN1cml0eU9yaWdpbkNvcHlIb3N0KGQtPm9yaWdpbi5nZXQoKSkpOwotICAgIHJldHVybiBX
S1N0cmluZ0NvcHlRU3RyaW5nKG9yaWdpbi5nZXQoKSk7Ci19Ci0KLWludCBRV2ViUGVybWlzc2lv
blJlcXVlc3Q6OnBvcnQoKSBjb25zdAotewotICAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQ+KFdL
U2VjdXJpdHlPcmlnaW5HZXRQb3J0KGQtPm9yaWdpbi5nZXQoKSkpOwotfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2VicGVybWlzc2lvbnJlcXVlc3RfcC5o
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2VicGVybWlzc2lvbnJlcXVlc3Rf
cC5oCmluZGV4IDU4MjRjNGMuLjZjODA1MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvcXQvcXdlYnBlcm1pc3Npb25yZXF1ZXN0X3AuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwZXJtaXNzaW9ucmVxdWVzdF9wLmgKQEAgLTIyLDYg
KzIyLDcgQEAKIAogI2luY2x1ZGUgInF3ZWJraXRnbG9iYWwuaCIKIAorI2luY2x1ZGUgInF0d2Vi
c2VjdXJpdHlvcmlnaW5fcC5oIgogI2luY2x1ZGUgPFF0Q29yZS9RT2JqZWN0PgogI2luY2x1ZGUg
PFF0Q29yZS9xc2hhcmVkZGF0YS5oPgogI2luY2x1ZGUgPFdlYktpdDIvV0tHZW9sb2NhdGlvblBl
cm1pc3Npb25SZXF1ZXN0Lmg+CkBAIC0zMiwxMCArMzMsOCBAQCBjbGFzcyBRV2ViUGVybWlzc2lv
blJlcXVlc3RQcml2YXRlOwogY2xhc3MgUVdFQktJVF9FWFBPUlQgUVdlYlBlcm1pc3Npb25SZXF1
ZXN0IDogcHVibGljIFFPYmplY3QgewogICAgIFFfT0JKRUNUCiAgICAgUV9QUk9QRVJUWShib29s
IGFsbG93IFJFQUQgYWxsb3cgV1JJVEUgc2V0QWxsb3cpCi0gICAgUV9QUk9QRVJUWShSZXF1ZXN0
VHlwZSB0eXBlIFJFQUQgdHlwZSkKLSAgICBRX1BST1BFUlRZKFFTdHJpbmcgc2NoZW1lIFJFQUQg
c2NoZW1lKQotICAgIFFfUFJPUEVSVFkoUVN0cmluZyBob3N0IFJFQUQgaG9zdCkKLSAgICBRX1BS
T1BFUlRZKGludCBwb3J0IFJFQUQgcG9ydCkKKyAgICBRX1BST1BFUlRZKFJlcXVlc3RUeXBlIHR5
cGUgUkVBRCB0eXBlIENPTlNUQU5UKQorICAgIFFfUFJPUEVSVFkoUXRXZWJTZWN1cml0eU9yaWdp
biogc2VjdXJpdHlPcmlnaW4gUkVBRCBzZWN1cml0eU9yaWdpbikKICAgICBRX0VOVU1TKFJlcXVl
c3RUeXBlKQogCiBwdWJsaWM6CkBAIC00OCwxMiArNDcsMTAgQEAgcHVibGljOgogCiAgICAgUmVx
dWVzdFR5cGUgdHlwZSgpIGNvbnN0OwogICAgIGJvb2wgYWxsb3coKSBjb25zdDsKLSAgICBRU3Ry
aW5nIHNjaGVtZSgpIGNvbnN0OwotICAgIFFTdHJpbmcgaG9zdCgpIGNvbnN0OwotICAgIGludCBw
b3J0KCkgY29uc3Q7CiAKIHB1YmxpYyBRX1NMT1RTOgogICAgIHZvaWQgc2V0QWxsb3coYm9vbCk7
CisgICAgUXRXZWJTZWN1cml0eU9yaWdpbiogc2VjdXJpdHlPcmlnaW4oKTsKIAogcHJpdmF0ZToK
ICAgICBmcmllbmQgY2xhc3MgUVdlYlBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvV2ViVmll
dy90c3Rfb3JpZ2luLnFtbCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMv
cW1sdGVzdHMvV2ViVmlldy90c3Rfb3JpZ2luLnFtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi5kYzM4OTVmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3L3RzdF9vcmlnaW4ucW1sCkBAIC0w
LDAgKzEsNDQgQEAKK2ltcG9ydCBRdFF1aWNrIDIuMAoraW1wb3J0IFF0VGVzdCAxLjAKK2ltcG9y
dCBRdFdlYktpdCAzLjAKK2ltcG9ydCBRdFdlYktpdC5leHBlcmltZW50YWwgMy4wCisKK1dlYlZp
ZXcgeworICAgIGlkOiB3ZWJWaWV3CisgICAgd2lkdGg6IDIwMAorICAgIGhlaWdodDogMjAwCisK
KyAgICBwcm9wZXJ0eSBib29sIHN1Y2Nlc3M6IHRydWUKKyAgICBwcm9wZXJ0eSBpbnQgcG9ydDog
MAorICAgIHByb3BlcnR5IHN0cmluZyBzY2hlbWU6ICJmaWxlIgorCisgICAgZXhwZXJpbWVudGFs
Lm9uUGVybWlzc2lvblJlcXVlc3RlZDogeworICAgICAgICBpZiAocGVybWlzc2lvbi5zZWN1cml0
eU9yaWdpbi5wb3J0ICE9IHdlYlZpZXcucG9ydCkgeworICAgICAgICAgICAgY29uc29sZS5sb2co
IlBvcnQgaXMgd3JvbmciKQorICAgICAgICAgICAgd2ViVmlldy5zdWNjZXNzID0gZmFsc2UKKyAg
ICAgICAgfQorCisgICAgICAgIGlmIChwZXJtaXNzaW9uLnNlY3VyaXR5T3JpZ2luLnNjaGVtZSAh
PSB3ZWJWaWV3LnNjaGVtZSkgeworICAgICAgICAgICAgY29uc29sZS5sb2coIlNjaGVtZSBpcyB3
cm9uZyIpCisgICAgICAgICAgICB3ZWJWaWV3LnN1Y2Nlc3MgPSBmYWxzZQorICAgICAgICB9Cisg
ICAgfQorCisgICAgVGVzdENhc2UgeworICAgICAgICBuYW1lOiAiV2ViVmlld1NlY3VyaXR5T3Jp
Z2luIgorCisgICAgICAgIC8vIERlbGF5ZWQgd2luZG93U2hvd24gdG8gd29ya2Fyb3VuZCBwcm9i
bGVtcyB3aXRoIFF0NSBpbiBkZWJ1ZyBtb2RlLgorICAgICAgICB3aGVuOiBmYWxzZQorICAgICAg
ICBUaW1lciB7CisgICAgICAgICAgICBydW5uaW5nOiBwYXJlbnQud2luZG93U2hvd24KKyAgICAg
ICAgICAgIHJlcGVhdDogZmFsc2UKKyAgICAgICAgICAgIGludGVydmFsOiAxCisgICAgICAgICAg
ICBvblRyaWdnZXJlZDogcGFyZW50LndoZW4gPSB0cnVlCisgICAgICAgIH0KKworICAgICAgICBm
dW5jdGlvbiB0ZXN0X3Blcm1pc3Npb25SZXF1ZXN0KCkgeworICAgICAgICAgICAgd2ViVmlldy5s
b2FkKFF0LnJlc29sdmVkVXJsKCIuLi9jb21tb24vZ2VvbG9jYXRpb24uaHRtbCIpKQorICAgICAg
ICAgICAgY29tcGFyZSh3ZWJWaWV3LnN1Y2Nlc3MsIHRydWUpCisgICAgICAgIH0KKyAgICB9Cit9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRl
c3RzL3FtbHRlc3RzLnBybyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMv
cW1sdGVzdHMvcW1sdGVzdHMucHJvCmluZGV4IGM4Y2U4N2EuLjUwODE5YzAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvcW1sdGVzdHMu
cHJvCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMv
cW1sdGVzdHMucHJvCkBAIC0yOSw0ICsyOSw1IEBAIE9USEVSX0ZJTEVTICs9IFwKICAgICBXZWJW
aWV3L3RzdF9wcmVmZXJlbmNlcy5xbWwgXAogICAgIFdlYlZpZXcvdHN0X3Byb3BlcnRpZXMucW1s
IFwKICAgICBXZWJWaWV3L3RzdF90aXRsZUNoYW5nZWQucW1sIFwKLSAgICBXZWJWaWV3L3RzdF9h
cHBsaWNhdGlvblNjaGVtZS5xbWwKKyAgICBXZWJWaWV3L3RzdF9hcHBsaWNhdGlvblNjaGVtZS5x
bWwgXAorICAgIFdlYlZpZXcvdHN0X29yaWdpbi5xbWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9xdHdl
YmtpdC1leHBvcnQubWFwIGIvU291cmNlL3F0d2Via2l0LWV4cG9ydC5tYXAKaW5kZXggYmEyZTJm
Yi4uYmYxMzc3NyAxMDA2NDQKLS0tIGEvU291cmNlL3F0d2Via2l0LWV4cG9ydC5tYXAKKysrIGIv
U291cmNlL3F0d2Via2l0LWV4cG9ydC5tYXAKQEAgLTE1Niw3ICsxNTYsOSBAQCBxd2tfMS4wIHsK
ICAgICAgICAgUVF1aWNrTmV0d29ya1JlcXVlc3Q6Oio7CiAgICAgICAgICpRUXVpY2tOZXR3b3Jr
UmVwbHk7CiAgICAgICAgIFFRdWlja05ldHdvcmtSZXBseTo6KjsKLQorICAgICAgICAqUXRXZWJT
ZWN1cml0eU9yaWdpbjsKKyAgICAgICAgbm9uLXZpcnR1YWw/dGh1bms/dG8/UXRXZWJTZWN1cml0
eU9yaWdpbio7CisgICAgICAgIFF0V2ViU2VjdXJpdHlPcmlnaW46Oio7CiAKICAgICAgICAgIyBX
ZWJLaXQgMiBDIEFQSSBtYW5nbGVkIGluIEMrKwogICAgICAgICBXS1N0cmluZ0NvcHlRU3RyaW5n
KjsKLS0gCjEuNy41LjQKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>123174</attachid>
            <date>2012-01-19 12:27:08 -0800</date>
            <delta_ts>2012-01-21 19:05:11 -0800</delta_ts>
            <desc>Changelog typo/date plus previous fixes.</desc>
            <filename>origin_step7_cl.patch</filename>
            <type>text/plain</type>
            <size>19879</size>
            <attacher name="Adenilson Cavalcanti Silva">savagobr</attacher>
            
              <data encoding="base64">RnJvbSBkNzczY2Q5ZmMyNTEyNTYwOTcyZWI4ZGI0ZWQ4MThjOGIyODhhMDQxIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBZGVuaWxzb24gQ2F2YWxjYW50aSA8Y2F2YWxjYW50aWlAZ21h
aWwuY29tPgpEYXRlOiBUaHUsIDEyIEphbiAyMDEyIDE3OjI1OjUxIC0wNDAwClN1YmplY3Q6IFtQ
QVRDSF0gU29sdmVkIGxpYnJhcnkgbG9hZGluZyBpc3N1ZSwgYWNjZXNzIHRvIHRoZSBzZWN1cml0
eQogcHJvcGVydHkgaW4gUU1MIHNpZGUsIFFNTCB0ZXN0LCBjb25zdGFudC1meSByZWFkIG9ubHkK
IHByb3BlcnRpZXMsIGNoYW5nZWxvZ3MuCgpTaWduZWQtb2ZmLWJ5OiBBZGVuaWxzb24gQ2F2YWxj
YW50aSA8Y2F2YWxjYW50aWlAZ21haWwuY29tPgotLS0KIFNvdXJjZS9XZWJLaXQvcXQvQ2hhbmdl
TG9nICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxMiArKwogU291cmNlL1dlYktpdC9xdC9k
ZWNsYXJhdGl2ZS9wbHVnaW4uY3BwICAgICAgICAgICAgfCAgICAzICsKIFNvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAzOCArKysrCiBTb3VyY2Uv
V2ViS2l0Mi9UYXJnZXQucHJpICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDIgKwogLi4u
L1VJUHJvY2Vzcy9BUEkvcXQvcXR3ZWJzZWN1cml0eW9yaWdpbi5jcHAgICAgICAgfCAgMTkxICsr
KysrKysrKysrKysrKysrKysrCiAuLi4vVUlQcm9jZXNzL0FQSS9xdC9xdHdlYnNlY3VyaXR5b3Jp
Z2luX3AuaCAgICAgICB8ICAgNzUgKysrKysrKysKIC4uLi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJw
ZXJtaXNzaW9ucmVxdWVzdC5jcHAgICAgIHwgICAyOSArKy0tCiAuLi4vVUlQcm9jZXNzL0FQSS9x
dC9xd2VicGVybWlzc2lvbnJlcXVlc3RfcC5oICAgICB8ICAgMTEgKy0KIC4uLi9BUEkvcXQvdGVz
dHMvcW1sdGVzdHMvV2ViVmlldy90c3Rfb3JpZ2luLnFtbCAgIHwgICA0NCArKysrKwogLi4uL1VJ
UHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvcW1sdGVzdHMucHJvICAgfCAgICAzICstCiBT
b3VyY2UvcXR3ZWJraXQtZXhwb3J0Lm1hcCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDQg
Ky0KIDExIGZpbGVzIGNoYW5nZWQsIDM5MCBpbnNlcnRpb25zKCspLCAyMiBkZWxldGlvbnMoLSkK
IGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F0d2Vi
c2VjdXJpdHlvcmlnaW4uY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9xdC9xdHdlYnNlY3VyaXR5b3JpZ2luX3AuaAogY3JlYXRlIG1vZGUgMTAwNjQ0
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvV2ViVmlldy90
c3Rfb3JpZ2luLnFtbAoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKaW5kZXggOGE1MGY2NS4uYTRmNTA4OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9xdC9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0wMS0xOSAgQWRlbmlsc29uIENhdmFsY2Fu
dGkgIDxjYXZhbGNhbnRpaUBnbWFpbC5jb20+CisKKyAgICAgICAgU3BsaXQgUVdlYlBlcm1pc3Np
b25SZXF1ZXN0IGludG8gUVdlYlNlY3VyaXR5T3JpZ2luCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzIxNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEV4cG9ydCB0aGUgc2VjdXJpdHkgb3JpZ2luIGNsYXNz
IHRvIFFNTC4KKworICAgICAgICAqIGRlY2xhcmF0aXZlL3BsdWdpbi5jcHA6CisgICAgICAgIChX
ZWJLaXRRbWxQbHVnaW46OnJlZ2lzdGVyVHlwZXMpOgorCiAyMDEyLTAxLTE3ICBWaWF0Y2hlc2xh
diBPc3RhcGVua28gIDxvc3RhcGVua28udmlhdGNoZXNsYXZAbm9raWEuY29tPgogCiAgICAgICAg
IFtRdF0gRGVidWcgYnVpbGQgZmFpbHMgd2l0aCBkZWJ1ZyBxdDUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvcXQvZGVjbGFyYXRpdmUvcGx1Z2luLmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvZGVj
bGFyYXRpdmUvcGx1Z2luLmNwcAppbmRleCA2NDYzOGU0Li5lMmYwZmIzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L3F0L2RlY2xhcmF0aXZlL3BsdWdpbi5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9xdC9kZWNsYXJhdGl2ZS9wbHVnaW4uY3BwCkBAIC0yNSw2ICsyNSw3IEBACiAjaWYgZGVmaW5l
ZChIQVZFX1dFQktJVDIpCiAjaW5jbHVkZSAicXF1aWNrd2VicGFnZV9wLmgiCiAjaW5jbHVkZSAi
cXF1aWNrd2Vidmlld19wLmgiCisjaW5jbHVkZSAicXR3ZWJzZWN1cml0eW9yaWdpbl9wLmgiCiAj
aW5jbHVkZSAicXdlYmljb25pbWFnZXByb3ZpZGVyX3AuaCIKICNpbmNsdWRlICJxd2VibmF2aWdh
dGlvbnJlcXVlc3RfcC5oIgogI2luY2x1ZGUgInF3ZWJwZXJtaXNzaW9ucmVxdWVzdF9wLmgiCkBA
IC02NSw2ICs2Niw4IEBAIHB1YmxpYzoKICAgICAgICAgcW1sUmVnaXN0ZXJVbmNyZWF0YWJsZVR5
cGU8UU5ldHdvcmtSZXBseT4odXJpLCAzLCAwLCAiTmV0d29ya1JlcGx5IiwgUU9iamVjdDo6dHIo
IkNhbm5vdCBjcmVhdGUgc2VwYXJhdGUgaW5zdGFuY2Ugb2YgTmV0d29ya1JlcGx5IikpOwogICAg
ICAgICBxbWxSZWdpc3RlclVuY3JlYXRhYmxlVHlwZTxRV2ViUGVybWlzc2lvblJlcXVlc3Q+KHVy
aSwgMywgMCwgIlBlcm1pc3Npb25SZXF1ZXN0IiwgUU9iamVjdDo6dHIoIkNhbm5vdCBjcmVhdGUg
c2VwYXJhdGUgaW5zdGFuY2Ugb2YgUGVybWlzc2lvblJlcXVlc3QiKSk7CiAgICAgICAgIHFtbFJl
Z2lzdGVyVW5jcmVhdGFibGVUeXBlPFFXZWJOYXZpZ2F0aW9uUmVxdWVzdD4odXJpLCAzLCAwLCAi
TmF2aWdhdGlvblJlcXVlc3QiLCBRT2JqZWN0Ojp0cigiQ2Fubm90IGNyZWF0ZSBzZXBhcmF0ZSBp
bnN0YW5jZSBvZiBOYXZpZ2F0aW9uUmVxdWVzdCIpKTsKKyAgICAgICAgcW1sUmVnaXN0ZXJVbmNy
ZWF0YWJsZVR5cGU8UXRXZWJTZWN1cml0eU9yaWdpbj4odXJpLCAzLCAwLCAiU2VjdXJpdHlPcmln
aW4iLCBRT2JqZWN0Ojp0cigiQ2Fubm90IGNyZWF0ZSBzZXBhcmF0ZSBpbnN0YW5jZSBvZiBTZWN1
cml0eU9yaWdpbiIpKTsKKwogI2VuZGlmCiAgICAgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBkMzNmZGJl
Li4zNmI3MjhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEgQEAKKzIwMTItMDEtMTkgIEFkZW5p
bHNvbiBDYXZhbGNhbnRpICA8Y2F2YWxjYW50aWlAZ21haWwuY29tPgorCisgICAgICAgIFNwbGl0
IFFXZWJQZXJtaXNzaW9uUmVxdWVzdCBpbnRvIFFXZWJTZWN1cml0eU9yaWdpbgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMyMTUKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbnRyb2R1Y2luZyBhIG5ldyBj
bGFzcyB0byBleHBvc2Ugc2VjdXJpdHkgb3JpZ2luIGluZm9ybWF0aW9uLgorCisgICAgICAgICog
VGFyZ2V0LnByaToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3F0d2Vic2VjdXJpdHlvcmln
aW4uY3BwOiBBZGRlZC4KKyAgICAgICAgKFF0V2ViU2VjdXJpdHlPcmlnaW5Qcml2YXRlOjpsb2Nh
bFNjaGVtZXMpOgorICAgICAgICAoUXRXZWJTZWN1cml0eU9yaWdpblByaXZhdGU6OmNvbnRhaW5z
U2NoZW1lKToKKyAgICAgICAgKFF0V2ViU2VjdXJpdHlPcmlnaW5Qcml2YXRlOjpRdFdlYlNlY3Vy
aXR5T3JpZ2luUHJpdmF0ZSk6CisgICAgICAgIChRdFdlYlNlY3VyaXR5T3JpZ2luUHJpdmF0ZTo6
flF0V2ViU2VjdXJpdHlPcmlnaW5Qcml2YXRlKToKKyAgICAgICAgKFF0V2ViU2VjdXJpdHlPcmln
aW46OmlzTG9jYWxTY2hlbWUpOgorICAgICAgICAoUXRXZWJTZWN1cml0eU9yaWdpbjo6UXRXZWJT
ZWN1cml0eU9yaWdpbik6CisgICAgICAgIChRdFdlYlNlY3VyaXR5T3JpZ2luOjp+UXRXZWJTZWN1
cml0eU9yaWdpbik6CisgICAgICAgIChRdFdlYlNlY3VyaXR5T3JpZ2luOjpob3N0KToKKyAgICAg
ICAgKFF0V2ViU2VjdXJpdHlPcmlnaW46OnNjaGVtZSk6CisgICAgICAgIChRdFdlYlNlY3VyaXR5
T3JpZ2luOjpwYXRoKToKKyAgICAgICAgKFF0V2ViU2VjdXJpdHlPcmlnaW46OnBvcnQpOgorICAg
ICAgICAoUXRXZWJTZWN1cml0eU9yaWdpbjo6dXJsKToKKyAgICAgICAgKFF0V2ViU2VjdXJpdHlP
cmlnaW46OmFkZExvY2FsU2NoZW1lKToKKyAgICAgICAgKFF0V2ViU2VjdXJpdHlPcmlnaW46OnJl
bW92ZUxvY2FsU2NoZW1lKToKKyAgICAgICAgKFF0V2ViU2VjdXJpdHlPcmlnaW46OmxvY2FsU2No
ZW1lcyk6CisgICAgICAgIChRdFdlYlNlY3VyaXR5T3JpZ2luOjpjYW5BY2Nlc3MpOgorICAgICAg
ICAob3BlcmF0b3I8PCk6CisgICAgICAgIChvcGVyYXRvcj4+KToKKyAgICAgICAgKFF0V2ViU2Vj
dXJpdHlPcmlnaW46Om9wZXJhdG9yPSk6CisgICAgICAgIChRdFdlYlNlY3VyaXR5T3JpZ2luOjpv
cGVyYXRvciE9KToKKyAgICAgICAgKFF0V2ViU2VjdXJpdHlPcmlnaW46Om9wZXJhdG9yPT0pOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXR3ZWJzZWN1cml0eW9yaWdpbl9wLmg6IEFkZGVk
LgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXdlYnBlcm1pc3Npb25yZXF1ZXN0LmNwcDoK
KyAgICAgICAgKFFXZWJQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGU6OlFXZWJQZXJtaXNzaW9uUmVx
dWVzdFByaXZhdGUpOgorICAgICAgICAoUVdlYlBlcm1pc3Npb25SZXF1ZXN0OjpzZWN1cml0eU9y
aWdpbik6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xd2VicGVybWlzc2lvbnJlcXVlc3Rf
cC5oOgorCiAyMDEyLTAxLTE4ICBKb24gTGVlICA8am9ubGVlQGFwcGxlLmNvbT4KIAogICAgICAg
ICBBbm90aGVyIGJ1aWxkIGZpeCBmb3IgcjEwNTM2NC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpCmluZGV4IDM1OTgzZjAu
LjgyNDkwNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1RhcmdldC5wcmkKKysrIGIvU291
cmNlL1dlYktpdDIvVGFyZ2V0LnByaQpAQCAtMTc0LDYgKzE3NCw3IEBAIEhFQURFUlMgKz0gXAog
ICAgIFVJUHJvY2Vzcy9BUEkvcXQvcXdlYmRvd25sb2FkaXRlbV9wLmggXAogICAgIFVJUHJvY2Vz
cy9BUEkvcXQvcXdlYmRvd25sb2FkaXRlbV9wX3AuaCBcCiAgICAgVUlQcm9jZXNzL0FQSS9xdC9x
d2VicGVybWlzc2lvbnJlcXVlc3RfcC5oIFwKKyAgICBVSVByb2Nlc3MvQVBJL3F0L3F0d2Vic2Vj
dXJpdHlvcmlnaW5fcC5oIFwKICAgICBVSVByb2Nlc3MvQVBJL3F0L3F3ZWJuYXZpZ2F0aW9ucmVx
dWVzdF9wLmggXAogICAgIFVJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2VicGFnZV9wLmggXAogICAg
IFVJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2VicGFnZV9wX3AuaCBcCkBAIC01MDQsNiArNTA1LDcg
QEAgU09VUkNFUyArPSBcCiAgICAgVUlQcm9jZXNzL0FQSS9jcHAvcXQvV0tVUkxRdC5jcHAgXAog
ICAgIFVJUHJvY2Vzcy9BUEkvcXQvcXdlYmRvd25sb2FkaXRlbS5jcHAgXAogICAgIFVJUHJvY2Vz
cy9BUEkvcXQvcXdlYnBlcm1pc3Npb25yZXF1ZXN0LmNwcCBcCisgICAgVUlQcm9jZXNzL0FQSS9x
dC9xdHdlYnNlY3VyaXR5b3JpZ2luLmNwcCBcCiAgICAgVUlQcm9jZXNzL0FQSS9xdC9xd2VibmF2
aWdhdGlvbnJlcXVlc3QuY3BwIFwKICAgICBVSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnBhZ2Uu
Y3BwIFwKICAgICBVSVByb2Nlc3MvQVBJL3F0L3F3ZWJuYXZpZ2F0aW9uaGlzdG9yeS5jcHAgXApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xdHdlYnNlY3VyaXR5
b3JpZ2luLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXR3ZWJzZWN1cml0
eW9yaWdpbi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTkyNDg0OAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXR3ZWJz
ZWN1cml0eW9yaWdpbi5jcHAKQEAgLTAsMCArMSwxOTEgQEAKKy8qCisgICAgQ29weXJpZ2h0IChD
KSAyMDEyIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorCisg
ICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0
IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljCisgICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBv
ciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICAgVGhpcyBsaWJyYXJ5
IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICAg
YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu
dHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UuICBTZWUgdGhlIEdOVQorICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm
b3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgIGFsb25nIHdpdGgg
dGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRv
CisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3Ry
ZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKworI2luY2x1ZGUgInF0d2Vic2VjdXJpdHlvcmlnaW5fcC5o
IgorCisjaW5jbHVkZSA8S1VSTC5oPgorI2luY2x1ZGUgPFF0Q29yZS9RRmlsZUluZm8+CisjaW5j
bHVkZSA8UXRDb3JlL1FTdHJpbmdMaXN0PgorI2luY2x1ZGUgPFNjaGVtZVJlZ2lzdHJ5Lmg+Cisj
aW5jbHVkZSA8U2VjdXJpdHlPcmlnaW4uaD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLQmFzZS5oPgor
I2luY2x1ZGUgPFdlYktpdDIvV0tSZXRhaW5QdHIuaD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLU2Vj
dXJpdHlPcmlnaW4uaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK2NsYXNzIFF0V2Vi
U2VjdXJpdHlPcmlnaW5Qcml2YXRlIDogcHVibGljIFFTaGFyZWREYXRhIHsKKworcHVibGljOgor
CisgICAgc3RhdGljIFFTdHJpbmdMaXN0IGxvY2FsU2NoZW1lcygpCisgICAgeworICAgICAgICBR
U3RyaW5nTGlzdCBzY2hlbWVzOworICAgICAgICBjb25zdCBVUkxTY2hlbWVzTWFwJiBtYXAgPSBT
Y2hlbWVSZWdpc3RyeTo6bG9jYWxTY2hlbWVzKCk7CisgICAgICAgIFVSTFNjaGVtZXNNYXA6OmNv
bnN0X2l0ZXJhdG9yIGVuZCA9IG1hcC5lbmQoKTsKKyAgICAgICAgZm9yIChVUkxTY2hlbWVzTWFw
Ojpjb25zdF9pdGVyYXRvciBpdCA9IG1hcC5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpIHsKKyAg
ICAgICAgICAgIGNvbnN0IFFTdHJpbmcgc2NoZW1lID0gKml0OworICAgICAgICAgICAgc2NoZW1l
cy5hcHBlbmQoc2NoZW1lKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gc2NoZW1lczsKKyAg
ICB9CisKKyAgICBzdGF0aWMgYm9vbCBjb250YWluc1NjaGVtZShjb25zdCBRU3RyaW5nJiBzY2hl
bWUpCisgICAgeworICAgICAgICBjb25zdCBVUkxTY2hlbWVzTWFwJiBtYXAgPSBTY2hlbWVSZWdp
c3RyeTo6bG9jYWxTY2hlbWVzKCk7CisgICAgICAgIHJldHVybiBtYXAuY29udGFpbnMoc2NoZW1l
KTsKKyAgICB9CisKKyAgICBRdFdlYlNlY3VyaXR5T3JpZ2luUHJpdmF0ZSgpCisgICAgeworICAg
IH0KKworICAgIH5RdFdlYlNlY3VyaXR5T3JpZ2luUHJpdmF0ZSgpCisgICAgeworICAgIH0KKwor
ICAgIFFVcmwgdXJsOworfTsKKworYm9vbCBRdFdlYlNlY3VyaXR5T3JpZ2luOjppc0xvY2FsU2No
ZW1lKGNvbnN0IFFTdHJpbmcmIHNjaGVtZSkKK3sKKyAgICByZXR1cm4gKHNjaGVtZSA9PSBRU3Ry
aW5nOjpmcm9tVXRmOCgicXJjIikpID8gdHJ1ZSA6IChzY2hlbWUgPT0gUVN0cmluZzo6ZnJvbVV0
ZjgoImZpbGUiKSk7Cit9CisKK1F0V2ViU2VjdXJpdHlPcmlnaW46OlF0V2ViU2VjdXJpdHlPcmln
aW4oY29uc3QgUVVybCYgdXJsLCBRT2JqZWN0KiBwYXJlbnQpCisgICAgOiBRT2JqZWN0KHBhcmVu
dCkKKyAgICAsIGQobmV3IFF0V2ViU2VjdXJpdHlPcmlnaW5Qcml2YXRlKQoreworCisgICAgZC0+
dXJsLnNldFNjaGVtZSh1cmwuc2NoZW1lKCkpOworICAgIGlmICh1cmwuc2NoZW1lKCkgPT0gUUxh
dGluMVN0cmluZygiZGF0YSIpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoaXNMb2NhbFNj
aGVtZSh1cmwuc2NoZW1lKCkpKSB7CisgICAgICAgIC8vIFdlIHN0b3JlIHRoZSBjYW5ub25pY2Fs
IHBhdGgsIGllLiB0aGUgYWJzb2x1dGUgcGF0aCAqd2l0aG91dCogc3ltYm9saWMKKyAgICAgICAg
Ly8gbGlua3Mgb3IgcmVkdW5kYW50ICIuIiBvciAiLi4iIGVsZW1lbnRzLgorICAgICAgICBkLT51
cmwuc2V0UGF0aChRRmlsZUluZm8odXJsLnBhdGgoKSkuY2Fub25pY2FsRmlsZVBhdGgoKSk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBkLT51cmwuc2V0SG9zdCh1cmwuaG9zdCgpKTsK
K30KKworUXRXZWJTZWN1cml0eU9yaWdpbjo6flF0V2ViU2VjdXJpdHlPcmlnaW4oKQoreworfQor
CitRU3RyaW5nIFF0V2ViU2VjdXJpdHlPcmlnaW46Omhvc3QoKSBjb25zdAoreworICAgIHJldHVy
biBkLT51cmwuaG9zdCgpOworfQorCitRU3RyaW5nIFF0V2ViU2VjdXJpdHlPcmlnaW46OnNjaGVt
ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGQtPnVybC5zY2hlbWUoKTsKK30KKworUVN0cmluZyBR
dFdlYlNlY3VyaXR5T3JpZ2luOjpwYXRoKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZC0+dXJsLnBh
dGgoKTsKK30KKworaW50IFF0V2ViU2VjdXJpdHlPcmlnaW46OnBvcnQoKSBjb25zdAoreworICAg
IHJldHVybiBkLT51cmwucG9ydCgpOworfQorCitRVXJsIFF0V2ViU2VjdXJpdHlPcmlnaW46OnVy
bCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGQtPnVybDsKK30KK3ZvaWQgUXRXZWJTZWN1cml0eU9y
aWdpbjo6YWRkTG9jYWxTY2hlbWUoY29uc3QgUVN0cmluZyYgc2NoZW1lKQoreworICAgIGlmIChR
dFdlYlNlY3VyaXR5T3JpZ2luUHJpdmF0ZTo6Y29udGFpbnNTY2hlbWUoc2NoZW1lKSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgU2NoZW1lUmVnaXN0cnk6OnJlZ2lzdGVyVVJMU2NoZW1lQXNMb2Nh
bChzY2hlbWUpOworfQorCit2b2lkIFF0V2ViU2VjdXJpdHlPcmlnaW46OnJlbW92ZUxvY2FsU2No
ZW1lKGNvbnN0IFFTdHJpbmcmIHNjaGVtZSkKK3sKKyAgICAvLyBZb3UgY2Fubm90IHJlbW92ZSBm
aWxlOgorICAgIGlmIChzY2hlbWUgPT0gUUxhdGluMVN0cmluZygiZmlsZSIpKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBTY2hlbWVSZWdpc3RyeTo6cmVtb3ZlVVJMU2NoZW1lUmVnaXN0ZXJlZEFz
TG9jYWwoc2NoZW1lKTsKK30KKworUVN0cmluZ0xpc3QgUXRXZWJTZWN1cml0eU9yaWdpbjo6bG9j
YWxTY2hlbWVzKCkKK3sKKyAgICByZXR1cm4gUXRXZWJTZWN1cml0eU9yaWdpblByaXZhdGU6Omxv
Y2FsU2NoZW1lcygpOworfQorCitib29sIFF0V2ViU2VjdXJpdHlPcmlnaW46OmNhbkFjY2Vzcyhj
b25zdCBRVXJsJiB1cmwsIE9yaWdpblBvbGljeUZsYWdzIGZsYWdzKQoreworICAgIGlmIChzY2hl
bWUoKSA9PSBRTGF0aW4xU3RyaW5nKCJkYXRhIikpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwor
ICAgIGlmIChkLT5jb250YWluc1NjaGVtZShkLT51cmwuc2NoZW1lKCkpKSB7CisgICAgICAgIGlm
IChkLT5jb250YWluc1NjaGVtZSh1cmwuc2NoZW1lKCkpICYmIChmbGFncyAmIExvY2FsQ29udGVu
dEhhc1N5c3RlbUxvY2FsQWNjZXNzKSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAg
ICBlbHNlCisgICAgICAgICAgICByZXR1cm4gZC0+dXJsLnBhdGgoKSA9PSBRRmlsZUluZm8odXJs
LnBhdGgoKSkuY2Fub25pY2FsRmlsZVBhdGgoKTsKKyAgICB9CisKKyAgICByZXR1cm4gZC0+dXJs
LnNjaGVtZSgpID09IHVybC5zY2hlbWUoKSAmJiBkLT51cmwuaG9zdCgpID09IHVybC5ob3N0KCkg
JiYgZC0+dXJsLnBvcnQoKSA9PSB1cmwucG9ydCgpOworfQorCitRRGF0YVN0cmVhbSYgb3BlcmF0
b3I8PChRRGF0YVN0cmVhbSYgb3V0LCBjb25zdCBRdFdlYlNlY3VyaXR5T3JpZ2luICZvcmlnaW4p
Cit7CisgICAgLy8gRklYTUU6IE1pZ2h0IG5lZWQgc29tZSB2ZXJzaW9uaW5nLgorICAgIG91dCA8
PCAob3JpZ2luLnVybCgpLnRvRW5jb2RlZCgpLmRhdGEoKSk7CisgICAgcmV0dXJuIG91dDsKK30K
KworUURhdGFTdHJlYW0mIG9wZXJhdG9yPj4oUURhdGFTdHJlYW0mIGluLCBRdFdlYlNlY3VyaXR5
T3JpZ2luJiBvcmlnaW4pCit7CisgICAgLy8gRklYTUU6IE1pZ2h0IG5lZWQgc29tZSB2ZXJzaW9u
aW5nLgorICAgIGNoYXIqIHVybCA9IG9yaWdpbi51cmwoKS50b0VuY29kZWQoKS5kYXRhKCk7Cisg
ICAgaW4gPj4gdXJsOworICAgIHJldHVybiBpbjsKK30KKworUXRXZWJTZWN1cml0eU9yaWdpbiYg
UXRXZWJTZWN1cml0eU9yaWdpbjo6b3BlcmF0b3I9KGNvbnN0IFFVcmwmIHVybCkKK3sKKyAgICBk
LT51cmwgPSB1cmw7CisgICAgcmV0dXJuICp0aGlzOworfQorCitRdFdlYlNlY3VyaXR5T3JpZ2lu
JiBRdFdlYlNlY3VyaXR5T3JpZ2luOjpvcGVyYXRvcj0oY29uc3QgUXRXZWJTZWN1cml0eU9yaWdp
biYgZGF0YSkKK3sKKyAgICByZXR1cm4gb3BlcmF0b3I9KGRhdGEuZC0+dXJsKTsKK30KKworYm9v
bCBRdFdlYlNlY3VyaXR5T3JpZ2luOjpvcGVyYXRvciE9KGNvbnN0IFF0V2ViU2VjdXJpdHlPcmln
aW4mIGRhdGEpCit7CisgICAgcmV0dXJuIGQtPnVybCAhPSBkYXRhLmQtPnVybDsKK30KKworYm9v
bCBRdFdlYlNlY3VyaXR5T3JpZ2luOjpvcGVyYXRvcj09KGNvbnN0IFF0V2ViU2VjdXJpdHlPcmln
aW4mIGRhdGEpCit7CisgICAgcmV0dXJuIGQtPnVybCA9PSBkYXRhLmQtPnVybDsKK30KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXR3ZWJzZWN1cml0eW9yaWdp
bl9wLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F0d2Vic2VjdXJpdHlvcmln
aW5fcC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdmNWM2YTQKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F0d2Vic2VjdXJp
dHlvcmlnaW5fcC5oCkBAIC0wLDAgKzEsNzUgQEAKKy8qCisgICAgQ29weXJpZ2h0IChDKSAyMDEy
IE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorCisgICAgVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgorICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljCisgICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbjsgZWl0aGVyCisgICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQg
eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGRp
c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICAgYnV0IFdJ
VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YK
KyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu
ICBTZWUgdGhlIEdOVQorICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y
ZSBkZXRhaWxzLgorCisgICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgIGFsb25nIHdpdGggdGhpcyBs
aWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgICAg
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBG
aWZ0aCBGbG9vciwKKyAgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyovCisjaWZuZGVm
IHF0d2Vic2VjdXJpdHlvcmlnaW5fcF9oCisjZGVmaW5lIHF0d2Vic2VjdXJpdHlvcmlnaW5fcF9o
CisKKyNpbmNsdWRlICJxd2Via2l0Z2xvYmFsLmgiCisKKyNpbmNsdWRlIDxRdENvcmUvUURhdGFT
dHJlYW0+CisjaW5jbHVkZSA8UXRDb3JlL1FPYmplY3Q+CisjaW5jbHVkZSA8UXRDb3JlL1FTdHJp
bmc+CisjaW5jbHVkZSA8UXRDb3JlL1FVcmw+CisjaW5jbHVkZSA8UXRDb3JlL3FzaGFyZWRkYXRh
Lmg+CisKK2NsYXNzIFF0V2ViU2VjdXJpdHlPcmlnaW5Qcml2YXRlOworCitjbGFzcyBRV0VCS0lU
X0VYUE9SVCBRdFdlYlNlY3VyaXR5T3JpZ2luIDogcHVibGljIFFPYmplY3QgeworICAgIFFfT0JK
RUNUCisgICAgUV9QUk9QRVJUWShRU3RyaW5nIHNjaGVtZSBSRUFEIHNjaGVtZSBDT05TVEFOVCkK
KyAgICBRX1BST1BFUlRZKFFTdHJpbmcgaG9zdCBSRUFEIGhvc3QgQ09OU1RBTlQpCisgICAgUV9Q
Uk9QRVJUWShpbnQgcG9ydCBSRUFEIHBvcnQgQ09OU1RBTlQpCisgICAgUV9QUk9QRVJUWShRU3Ry
aW5nIHBhdGggUkVBRCBwYXRoIENPTlNUQU5UKQorICAgIFFfUFJPUEVSVFkoUVVybCB1cmwgUkVB
RCB1cmwgQ09OU1RBTlQpCisKK3B1YmxpYzoKKyAgICBRdFdlYlNlY3VyaXR5T3JpZ2luKGNvbnN0
IFFVcmwmIHVybCwgUU9iamVjdCogcGFyZW50ID0gMCk7CisgICAgdmlydHVhbCB+UXRXZWJTZWN1
cml0eU9yaWdpbigpOworCisgICAgUVN0cmluZyBzY2hlbWUoKSBjb25zdDsKKyAgICBRU3RyaW5n
IGhvc3QoKSBjb25zdDsKKyAgICBpbnQgcG9ydCgpIGNvbnN0OworICAgIFFTdHJpbmcgcGF0aCgp
IGNvbnN0OworICAgIFFVcmwgdXJsKCkgY29uc3Q7CisKKyAgICBzdGF0aWMgdm9pZCBhZGRMb2Nh
bFNjaGVtZShjb25zdCBRU3RyaW5nJiBzY2hlbWUpOworICAgIHN0YXRpYyB2b2lkIHJlbW92ZUxv
Y2FsU2NoZW1lKGNvbnN0IFFTdHJpbmcmIHNjaGVtZSk7CisgICAgc3RhdGljIFFTdHJpbmdMaXN0
IGxvY2FsU2NoZW1lcygpOworCisgICAgUXRXZWJTZWN1cml0eU9yaWdpbiYgb3BlcmF0b3I9KGNv
bnN0IFF0V2ViU2VjdXJpdHlPcmlnaW4mKTsKKyAgICBRdFdlYlNlY3VyaXR5T3JpZ2luJiBvcGVy
YXRvcj0oY29uc3QgUVVybCYpOworICAgIGJvb2wgb3BlcmF0b3IhPShjb25zdCBRdFdlYlNlY3Vy
aXR5T3JpZ2luJik7CisgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFF0V2ViU2VjdXJpdHlPcmln
aW4mKTsKKworICAgIGVudW0gT3JpZ2luUG9saWN5RmxhZ3MgeworICAgICAgICBDb250ZW50SGFz
U2FtZU9yaWdpbkFjY2VzcyA9IDB4MCwKKyAgICAgICAgTG9jYWxDb250ZW50SGFzUmVtb3RlQWNj
ZXNzID0gMHgxLAorICAgICAgICBMb2NhbENvbnRlbnRIYXNTeXN0ZW1Mb2NhbEFjY2VzcyA9IDB4
MgorICAgIH07CisKKyAgICBib29sIGNhbkFjY2Vzcyhjb25zdCBRVXJsJiB1cmwsIE9yaWdpblBv
bGljeUZsYWdzIGZsYWdzID0gQ29udGVudEhhc1NhbWVPcmlnaW5BY2Nlc3MpOworCitwcml2YXRl
OgorICAgIGJvb2wgaXNMb2NhbFNjaGVtZShjb25zdCBRU3RyaW5nJik7CisgICAgUVNoYXJlZERh
dGFQb2ludGVyPFF0V2ViU2VjdXJpdHlPcmlnaW5Qcml2YXRlPiBkOworfTsKKworUURhdGFTdHJl
YW0mIG9wZXJhdG9yPDwoUURhdGFTdHJlYW0mLCBjb25zdCBRdFdlYlNlY3VyaXR5T3JpZ2luJik7
CitRRGF0YVN0cmVhbSYgb3BlcmF0b3I+PihRRGF0YVN0cmVhbSYsIFF0V2ViU2VjdXJpdHlPcmln
aW4mKTsKKworI2VuZGlmIC8vIHF0d2Vic2VjdXJpdHlvcmlnaW5fcF9oCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwZXJtaXNzaW9ucmVxdWVzdC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwZXJtaXNzaW9ucmVxdWVzdC5j
cHAKaW5kZXggMTZhNDM4NS4uYTY0YTA1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9xdC9xd2VicGVybWlzc2lvbnJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnBlcm1pc3Npb25yZXF1ZXN0LmNwcApAQCAtMzIsOSAr
MzIsMjIgQEAgcHVibGljOgogICAgICAgICA6IG9yaWdpbihzZWN1cml0eU9yaWdpbikKICAgICAg
ICAgLCB0eXBlKFFXZWJQZXJtaXNzaW9uUmVxdWVzdDo6R2VvbG9jYXRpb24pCiAgICAgICAgICwg
cmVxdWVzdChwZXJtaXNzaW9uUmVxdWVzdCkKKyAgICAgICAgLCBzZWN1cml0eUluZm8oUVVybCgp
LCAwKQogICAgICAgICAsIGFsbG93KGZhbHNlKQogICAgIHsKKworICAgICAgICBRVXJsIGRhdGE7
CisgICAgICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiB1cmwgPSBhZG9wdFdLKFdLU2VjdXJp
dHlPcmlnaW5Db3B5UHJvdG9jb2wob3JpZ2luLmdldCgpKSk7CisgICAgICAgIGRhdGEuc2V0U2No
ZW1lKFdLU3RyaW5nQ29weVFTdHJpbmcodXJsLmdldCgpKSk7CisKKyAgICAgICAgV0tSZXRhaW5Q
dHI8V0tTdHJpbmdSZWY+IGhvc3QgPSBhZG9wdFdLKFdLU2VjdXJpdHlPcmlnaW5Db3B5SG9zdChv
cmlnaW4uZ2V0KCkpKTsKKyAgICAgICAgZGF0YS5zZXRIb3N0KFdLU3RyaW5nQ29weVFTdHJpbmco
aG9zdC5nZXQoKSkpOworCisgICAgICAgIGRhdGEuc2V0UG9ydChzdGF0aWNfY2FzdDxpbnQ+KFdL
U2VjdXJpdHlPcmlnaW5HZXRQb3J0KG9yaWdpbi5nZXQoKSkpKTsKKyAgICAgICAgc2VjdXJpdHlJ
bmZvID0gZGF0YTsKKwogICAgIH0KKwogICAgIH5RV2ViUGVybWlzc2lvblJlcXVlc3RQcml2YXRl
KCkKICAgICB7CiAgICAgfQpAQCAtNDIsNiArNTUsNyBAQCBwdWJsaWM6CiAgICAgV0tSZXRhaW5Q
dHI8V0tTZWN1cml0eU9yaWdpblJlZj4gb3JpZ2luOwogICAgIFFXZWJQZXJtaXNzaW9uUmVxdWVz
dDo6UmVxdWVzdFR5cGUgdHlwZTsKICAgICBXS1JldGFpblB0cjxXS0dlb2xvY2F0aW9uUGVybWlz
c2lvblJlcXVlc3RSZWY+IHJlcXVlc3Q7CisgICAgUXRXZWJTZWN1cml0eU9yaWdpbiBzZWN1cml0
eUluZm87CiAgICAgYm9vbCBhbGxvdzsKIH07CiAKQEAgLTg4LDE5ICsxMDIsOCBAQCBib29sIFFX
ZWJQZXJtaXNzaW9uUmVxdWVzdDo6YWxsb3coKSBjb25zdAogICAgIHJldHVybiBkLT5hbGxvdzsK
IH0KIAotUVN0cmluZyBRV2ViUGVybWlzc2lvblJlcXVlc3Q6OnNjaGVtZSgpIGNvbnN0CitRdFdl
YlNlY3VyaXR5T3JpZ2luKiBRV2ViUGVybWlzc2lvblJlcXVlc3Q6OnNlY3VyaXR5T3JpZ2luKCkK
IHsKLSAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gdXJsID0gYWRvcHRXSyhXS1NlY3VyaXR5
T3JpZ2luQ29weVByb3RvY29sKGQtPm9yaWdpbi5nZXQoKSkpOwotICAgIHJldHVybiBXS1N0cmlu
Z0NvcHlRU3RyaW5nKHVybC5nZXQoKSk7CisgICAgcmV0dXJuICYoZC0+c2VjdXJpdHlJbmZvKTsK
IH0KIAotUVN0cmluZyBRV2ViUGVybWlzc2lvblJlcXVlc3Q6Omhvc3QoKSBjb25zdAotewotICAg
IFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBvcmlnaW4gPSBhZG9wdFdLKFdLU2VjdXJpdHlPcmln
aW5Db3B5SG9zdChkLT5vcmlnaW4uZ2V0KCkpKTsKLSAgICByZXR1cm4gV0tTdHJpbmdDb3B5UVN0
cmluZyhvcmlnaW4uZ2V0KCkpOwotfQotCi1pbnQgUVdlYlBlcm1pc3Npb25SZXF1ZXN0Ojpwb3J0
KCkgY29uc3QKLXsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8aW50PihXS1NlY3VyaXR5T3JpZ2lu
R2V0UG9ydChkLT5vcmlnaW4uZ2V0KCkpKTsKLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnBlcm1pc3Npb25yZXF1ZXN0X3AuaCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnBlcm1pc3Npb25yZXF1ZXN0X3AuaAppbmRleCA1ODI0
YzRjLi4zM2FmYTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0
L3F3ZWJwZXJtaXNzaW9ucmVxdWVzdF9wLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9xdC9xd2VicGVybWlzc2lvbnJlcXVlc3RfcC5oCkBAIC0yMCw2ICsyMCw3IEBACiAjaWZu
ZGVmIHF3ZWJwZXJtaXNzaW9ucmVxdWVzdF9wX2gKICNkZWZpbmUgcXdlYnBlcm1pc3Npb25yZXF1
ZXN0X3BfaAogCisjaW5jbHVkZSAicXR3ZWJzZWN1cml0eW9yaWdpbl9wLmgiCiAjaW5jbHVkZSAi
cXdlYmtpdGdsb2JhbC5oIgogCiAjaW5jbHVkZSA8UXRDb3JlL1FPYmplY3Q+CkBAIC0zMiwxMCAr
MzMsOCBAQCBjbGFzcyBRV2ViUGVybWlzc2lvblJlcXVlc3RQcml2YXRlOwogY2xhc3MgUVdFQktJ
VF9FWFBPUlQgUVdlYlBlcm1pc3Npb25SZXF1ZXN0IDogcHVibGljIFFPYmplY3QgewogICAgIFFf
T0JKRUNUCiAgICAgUV9QUk9QRVJUWShib29sIGFsbG93IFJFQUQgYWxsb3cgV1JJVEUgc2V0QWxs
b3cpCi0gICAgUV9QUk9QRVJUWShSZXF1ZXN0VHlwZSB0eXBlIFJFQUQgdHlwZSkKLSAgICBRX1BS
T1BFUlRZKFFTdHJpbmcgc2NoZW1lIFJFQUQgc2NoZW1lKQotICAgIFFfUFJPUEVSVFkoUVN0cmlu
ZyBob3N0IFJFQUQgaG9zdCkKLSAgICBRX1BST1BFUlRZKGludCBwb3J0IFJFQUQgcG9ydCkKKyAg
ICBRX1BST1BFUlRZKFJlcXVlc3RUeXBlIHR5cGUgUkVBRCB0eXBlIENPTlNUQU5UKQorICAgIFFf
UFJPUEVSVFkoUXRXZWJTZWN1cml0eU9yaWdpbiogc2VjdXJpdHlPcmlnaW4gUkVBRCBzZWN1cml0
eU9yaWdpbikKICAgICBRX0VOVU1TKFJlcXVlc3RUeXBlKQogCiBwdWJsaWM6CkBAIC00OCwxMiAr
NDcsMTAgQEAgcHVibGljOgogCiAgICAgUmVxdWVzdFR5cGUgdHlwZSgpIGNvbnN0OwogICAgIGJv
b2wgYWxsb3coKSBjb25zdDsKLSAgICBRU3RyaW5nIHNjaGVtZSgpIGNvbnN0OwotICAgIFFTdHJp
bmcgaG9zdCgpIGNvbnN0OwotICAgIGludCBwb3J0KCkgY29uc3Q7CiAKIHB1YmxpYyBRX1NMT1RT
OgogICAgIHZvaWQgc2V0QWxsb3coYm9vbCk7CisgICAgUXRXZWJTZWN1cml0eU9yaWdpbiogc2Vj
dXJpdHlPcmlnaW4oKTsKIAogcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgUVdlYlBlcm1pc3Np
b25SZXF1ZXN0UHJpdmF0ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvcXQvdGVzdHMvcW1sdGVzdHMvV2ViVmlldy90c3Rfb3JpZ2luLnFtbCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvV2ViVmlldy90c3Rfb3JpZ2luLnFt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYzM4OTVmCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9X
ZWJWaWV3L3RzdF9vcmlnaW4ucW1sCkBAIC0wLDAgKzEsNDQgQEAKK2ltcG9ydCBRdFF1aWNrIDIu
MAoraW1wb3J0IFF0VGVzdCAxLjAKK2ltcG9ydCBRdFdlYktpdCAzLjAKK2ltcG9ydCBRdFdlYktp
dC5leHBlcmltZW50YWwgMy4wCisKK1dlYlZpZXcgeworICAgIGlkOiB3ZWJWaWV3CisgICAgd2lk
dGg6IDIwMAorICAgIGhlaWdodDogMjAwCisKKyAgICBwcm9wZXJ0eSBib29sIHN1Y2Nlc3M6IHRy
dWUKKyAgICBwcm9wZXJ0eSBpbnQgcG9ydDogMAorICAgIHByb3BlcnR5IHN0cmluZyBzY2hlbWU6
ICJmaWxlIgorCisgICAgZXhwZXJpbWVudGFsLm9uUGVybWlzc2lvblJlcXVlc3RlZDogeworICAg
ICAgICBpZiAocGVybWlzc2lvbi5zZWN1cml0eU9yaWdpbi5wb3J0ICE9IHdlYlZpZXcucG9ydCkg
eworICAgICAgICAgICAgY29uc29sZS5sb2coIlBvcnQgaXMgd3JvbmciKQorICAgICAgICAgICAg
d2ViVmlldy5zdWNjZXNzID0gZmFsc2UKKyAgICAgICAgfQorCisgICAgICAgIGlmIChwZXJtaXNz
aW9uLnNlY3VyaXR5T3JpZ2luLnNjaGVtZSAhPSB3ZWJWaWV3LnNjaGVtZSkgeworICAgICAgICAg
ICAgY29uc29sZS5sb2coIlNjaGVtZSBpcyB3cm9uZyIpCisgICAgICAgICAgICB3ZWJWaWV3LnN1
Y2Nlc3MgPSBmYWxzZQorICAgICAgICB9CisgICAgfQorCisgICAgVGVzdENhc2UgeworICAgICAg
ICBuYW1lOiAiV2ViVmlld1NlY3VyaXR5T3JpZ2luIgorCisgICAgICAgIC8vIERlbGF5ZWQgd2lu
ZG93U2hvd24gdG8gd29ya2Fyb3VuZCBwcm9ibGVtcyB3aXRoIFF0NSBpbiBkZWJ1ZyBtb2RlLgor
ICAgICAgICB3aGVuOiBmYWxzZQorICAgICAgICBUaW1lciB7CisgICAgICAgICAgICBydW5uaW5n
OiBwYXJlbnQud2luZG93U2hvd24KKyAgICAgICAgICAgIHJlcGVhdDogZmFsc2UKKyAgICAgICAg
ICAgIGludGVydmFsOiAxCisgICAgICAgICAgICBvblRyaWdnZXJlZDogcGFyZW50LndoZW4gPSB0
cnVlCisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiB0ZXN0X3Blcm1pc3Npb25SZXF1ZXN0
KCkgeworICAgICAgICAgICAgd2ViVmlldy5sb2FkKFF0LnJlc29sdmVkVXJsKCIuLi9jb21tb24v
Z2VvbG9jYXRpb24uaHRtbCIpKQorICAgICAgICAgICAgY29tcGFyZSh3ZWJWaWV3LnN1Y2Nlc3Ms
IHRydWUpCisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL3FtbHRlc3RzLnBybyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvcW1sdGVzdHMucHJvCmluZGV4IGM4
Y2U4N2EuLjUwODE5YzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
cXQvdGVzdHMvcW1sdGVzdHMvcW1sdGVzdHMucHJvCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvcW1sdGVzdHMucHJvCkBAIC0yOSw0ICsyOSw1IEBA
IE9USEVSX0ZJTEVTICs9IFwKICAgICBXZWJWaWV3L3RzdF9wcmVmZXJlbmNlcy5xbWwgXAogICAg
IFdlYlZpZXcvdHN0X3Byb3BlcnRpZXMucW1sIFwKICAgICBXZWJWaWV3L3RzdF90aXRsZUNoYW5n
ZWQucW1sIFwKLSAgICBXZWJWaWV3L3RzdF9hcHBsaWNhdGlvblNjaGVtZS5xbWwKKyAgICBXZWJW
aWV3L3RzdF9hcHBsaWNhdGlvblNjaGVtZS5xbWwgXAorICAgIFdlYlZpZXcvdHN0X29yaWdpbi5x
bWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9xdHdlYmtpdC1leHBvcnQubWFwIGIvU291cmNlL3F0d2Vi
a2l0LWV4cG9ydC5tYXAKaW5kZXggYmEyZTJmYi4uYmYxMzc3NyAxMDA2NDQKLS0tIGEvU291cmNl
L3F0d2Via2l0LWV4cG9ydC5tYXAKKysrIGIvU291cmNlL3F0d2Via2l0LWV4cG9ydC5tYXAKQEAg
LTE1Niw3ICsxNTYsOSBAQCBxd2tfMS4wIHsKICAgICAgICAgUVF1aWNrTmV0d29ya1JlcXVlc3Q6
Oio7CiAgICAgICAgICpRUXVpY2tOZXR3b3JrUmVwbHk7CiAgICAgICAgIFFRdWlja05ldHdvcmtS
ZXBseTo6KjsKLQorICAgICAgICAqUXRXZWJTZWN1cml0eU9yaWdpbjsKKyAgICAgICAgbm9uLXZp
cnR1YWw/dGh1bms/dG8/UXRXZWJTZWN1cml0eU9yaWdpbio7CisgICAgICAgIFF0V2ViU2VjdXJp
dHlPcmlnaW46Oio7CiAKICAgICAgICAgIyBXZWJLaXQgMiBDIEFQSSBtYW5nbGVkIGluIEMrKwog
ICAgICAgICBXS1N0cmluZ0NvcHlRU3RyaW5nKjsKLS0gCjEuNy41LjQKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>123467</attachid>
            <date>2012-01-21 19:05:22 -0800</date>
            <delta_ts>2012-01-21 19:11:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73215-20120121230518.patch</filename>
            <type>text/plain</type>
            <size>17258</size>
            <attacher name="Adenilson Cavalcanti Silva">savagobr</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1NTgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCmluZGV4IDhhNTBmNjU2Zjc1
MDA5YzBlNWJjM2YwNzNjMWI2YWE4MTBhNDBmZGUuLmNkNmMyMTljNGQzYTkwMmU4NjhkNzRlYTJl
OTRjMjVjMTc5Y2YzODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMDEt
MjEgIEFkZW5pbHNvbiBDYXZhbGNhbnRpICA8Y2F2YWxjYW50aWlAZ21haWwuY29tPgorCisgICAg
ICAgIFtRdF1bV0syXSBTcGxpdCBRV2ViUGVybWlzc2lvblJlcXVlc3QgaW50byBRV2ViU2VjdXJp
dHlPcmlnaW4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTczMjE1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
RXhwb3J0IHRoZSBzZWN1cml0eSBvcmlnaW4gY2xhc3MgdG8gUU1MLgorCisgICAgICAgICogZGVj
bGFyYXRpdmUvcGx1Z2luLmNwcDoKKyAgICAgICAgKFdlYktpdFFtbFBsdWdpbjo6cmVnaXN0ZXJU
eXBlcyk6CisKIDIwMTItMDEtMTcgIFZpYXRjaGVzbGF2IE9zdGFwZW5rbyAgPG9zdGFwZW5rby52
aWF0Y2hlc2xhdkBub2tpYS5jb20+CiAKICAgICAgICAgW1F0XSBEZWJ1ZyBidWlsZCBmYWlscyB3
aXRoIGRlYnVnIHF0NQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGIxMWNmZmNlMjQwYTg1NGUzZjVhMzAzNTJlNTQ1
ZjZmZGU0YzhhNjMuLjdhZjhhOTNlOTA5MDAxMzhlYzViODIyZjU3YjM2ZWU5NzYxNGUwNzggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwzNyBAQAorMjAxMi0wMS0yMSAgQWRlbmlsc29uIENhdmFsY2Fu
dGkgIDxjYXZhbGNhbnRpaUBnbWFpbC5jb20+CisKKyAgICAgICAgW1F0XVtXSzJdIFNwbGl0IFFX
ZWJQZXJtaXNzaW9uUmVxdWVzdCBpbnRvIFFXZWJTZWN1cml0eU9yaWdpbgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMyMTUKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbnRyb2R1Y2luZyBhIG5ldyBjbGFz
cyB0byBleHBvc2Ugc2VjdXJpdHkgb3JpZ2luIGluZm9ybWF0aW9uLgorCisgICAgICAgICogVGFy
Z2V0LnByaToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3F0d2Vic2VjdXJpdHlvcmlnaW4u
Y3BwOiBBZGRlZC4KKyAgICAgICAgKFF0V2ViU2VjdXJpdHlPcmlnaW46OmNvbnRhaW5zU2NoZW1l
KToKKyAgICAgICAgKFF0V2ViU2VjdXJpdHlPcmlnaW46OmlzTG9jYWxTY2hlbWUpOgorICAgICAg
ICAoUXRXZWJTZWN1cml0eU9yaWdpbjo6UXRXZWJTZWN1cml0eU9yaWdpbik6CisgICAgICAgIChR
dFdlYlNlY3VyaXR5T3JpZ2luOjp+UXRXZWJTZWN1cml0eU9yaWdpbik6CisgICAgICAgIChRdFdl
YlNlY3VyaXR5T3JpZ2luOjpob3N0KToKKyAgICAgICAgKFF0V2ViU2VjdXJpdHlPcmlnaW46OnNj
aGVtZSk6CisgICAgICAgIChRdFdlYlNlY3VyaXR5T3JpZ2luOjpwYXRoKToKKyAgICAgICAgKFF0
V2ViU2VjdXJpdHlPcmlnaW46OnBvcnQpOgorICAgICAgICAoUXRXZWJTZWN1cml0eU9yaWdpbjo6
dXJsKToKKyAgICAgICAgKFF0V2ViU2VjdXJpdHlPcmlnaW46OmFkZExvY2FsU2NoZW1lKToKKyAg
ICAgICAgKFF0V2ViU2VjdXJpdHlPcmlnaW46OnJlbW92ZUxvY2FsU2NoZW1lKToKKyAgICAgICAg
KFF0V2ViU2VjdXJpdHlPcmlnaW46OmxvY2FsU2NoZW1lcyk6CisgICAgICAgIChRdFdlYlNlY3Vy
aXR5T3JpZ2luOjpjYW5BY2Nlc3MpOgorICAgICAgICAob3BlcmF0b3I8PCk6CisgICAgICAgIChv
cGVyYXRvcj4+KToKKyAgICAgICAgKFF0V2ViU2VjdXJpdHlPcmlnaW46OnNldFVybCk6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9xdC9xdHdlYnNlY3VyaXR5b3JpZ2luX3AuaDogQWRkZWQuCisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xd2VicGVybWlzc2lvbnJlcXVlc3QuY3BwOgorICAg
ICAgICAoUVdlYlBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZTo6UVdlYlBlcm1pc3Npb25SZXF1ZXN0
UHJpdmF0ZSk6CisgICAgICAgIChRV2ViUGVybWlzc2lvblJlcXVlc3Q6OnNlY3VyaXR5T3JpZ2lu
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3F3ZWJwZXJtaXNzaW9ucmVxdWVzdF9wLmg6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9xbWx0ZXN0cy5wcm86
CisKIDIwMTItMDEtMjEgIFRpbW90aHkgSGF0Y2hlciAgPHRpbW90aHlAYXBwbGUuY29tPgogCiAg
ICAgICAgIE1ha2UgV2ViS2l0MiByZW1lbWJlciB0aGUgaGVpZ2h0IG9mIHRoZSBXZWIgSW5zcGVj
dG9yIHdoZW4gaXQgaXMgZG9ja2VkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9kZWNs
YXJhdGl2ZS9wbHVnaW4uY3BwIGIvU291cmNlL1dlYktpdC9xdC9kZWNsYXJhdGl2ZS9wbHVnaW4u
Y3BwCmluZGV4IDY0NjM4ZTQ2OTc2YjU5MzMyZDQ1ZTkyNmI1NzE3ODgzYzY5YzhjYWQuLmUyZjBm
YjNlYzYxMzYyZjAyNTRkNjEwNTU3NWVlZmMxNDNmNGViODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvcXQvZGVjbGFyYXRpdmUvcGx1Z2luLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L2Rl
Y2xhcmF0aXZlL3BsdWdpbi5jcHAKQEAgLTI1LDYgKzI1LDcgQEAKICNpZiBkZWZpbmVkKEhBVkVf
V0VCS0lUMikKICNpbmNsdWRlICJxcXVpY2t3ZWJwYWdlX3AuaCIKICNpbmNsdWRlICJxcXVpY2t3
ZWJ2aWV3X3AuaCIKKyNpbmNsdWRlICJxdHdlYnNlY3VyaXR5b3JpZ2luX3AuaCIKICNpbmNsdWRl
ICJxd2ViaWNvbmltYWdlcHJvdmlkZXJfcC5oIgogI2luY2x1ZGUgInF3ZWJuYXZpZ2F0aW9ucmVx
dWVzdF9wLmgiCiAjaW5jbHVkZSAicXdlYnBlcm1pc3Npb25yZXF1ZXN0X3AuaCIKQEAgLTY1LDYg
KzY2LDggQEAgcHVibGljOgogICAgICAgICBxbWxSZWdpc3RlclVuY3JlYXRhYmxlVHlwZTxRTmV0
d29ya1JlcGx5Pih1cmksIDMsIDAsICJOZXR3b3JrUmVwbHkiLCBRT2JqZWN0Ojp0cigiQ2Fubm90
IGNyZWF0ZSBzZXBhcmF0ZSBpbnN0YW5jZSBvZiBOZXR3b3JrUmVwbHkiKSk7CiAgICAgICAgIHFt
bFJlZ2lzdGVyVW5jcmVhdGFibGVUeXBlPFFXZWJQZXJtaXNzaW9uUmVxdWVzdD4odXJpLCAzLCAw
LCAiUGVybWlzc2lvblJlcXVlc3QiLCBRT2JqZWN0Ojp0cigiQ2Fubm90IGNyZWF0ZSBzZXBhcmF0
ZSBpbnN0YW5jZSBvZiBQZXJtaXNzaW9uUmVxdWVzdCIpKTsKICAgICAgICAgcW1sUmVnaXN0ZXJV
bmNyZWF0YWJsZVR5cGU8UVdlYk5hdmlnYXRpb25SZXF1ZXN0Pih1cmksIDMsIDAsICJOYXZpZ2F0
aW9uUmVxdWVzdCIsIFFPYmplY3Q6OnRyKCJDYW5ub3QgY3JlYXRlIHNlcGFyYXRlIGluc3RhbmNl
IG9mIE5hdmlnYXRpb25SZXF1ZXN0IikpOworICAgICAgICBxbWxSZWdpc3RlclVuY3JlYXRhYmxl
VHlwZTxRdFdlYlNlY3VyaXR5T3JpZ2luPih1cmksIDMsIDAsICJTZWN1cml0eU9yaWdpbiIsIFFP
YmplY3Q6OnRyKCJDYW5ub3QgY3JlYXRlIHNlcGFyYXRlIGluc3RhbmNlIG9mIFNlY3VyaXR5T3Jp
Z2luIikpOworCiAjZW5kaWYKICAgICB9CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJLaXQyL1RhcmdldC5wcmkKaW5kZXggNWVlMjc5NzIyNDkw
NGY0YTQ3NmFmNjIwYTg1YmU2NDY2ZjEwNmU3NS4uNDc3YmVmYWY1MzNmMjMzYzc2OTY5ZTJjYmYw
ZTgyNDFjZWRmZTkzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaQorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpCkBAIC0xNzMsNiArMTczLDcgQEAgSEVBREVSUyAr
PSBcCiAgICAgVUlQcm9jZXNzL0FQSS9xdC9xd2ViZG93bmxvYWRpdGVtX3AuaCBcCiAgICAgVUlQ
cm9jZXNzL0FQSS9xdC9xd2ViZG93bmxvYWRpdGVtX3BfcC5oIFwKICAgICBVSVByb2Nlc3MvQVBJ
L3F0L3F3ZWJwZXJtaXNzaW9ucmVxdWVzdF9wLmggXAorICAgIFVJUHJvY2Vzcy9BUEkvcXQvcXR3
ZWJzZWN1cml0eW9yaWdpbl9wLmggXAogICAgIFVJUHJvY2Vzcy9BUEkvcXQvcXdlYm5hdmlnYXRp
b25yZXF1ZXN0X3AuaCBcCiAgICAgVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJwYWdlX3AuaCBc
CiAgICAgVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJwYWdlX3BfcC5oIFwKQEAgLTUwMSw2ICs1
MDIsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBVSVByb2Nlc3MvQVBJL2NwcC9xdC9XS1VSTFF0LmNw
cCBcCiAgICAgVUlQcm9jZXNzL0FQSS9xdC9xd2ViZG93bmxvYWRpdGVtLmNwcCBcCiAgICAgVUlQ
cm9jZXNzL0FQSS9xdC9xd2VicGVybWlzc2lvbnJlcXVlc3QuY3BwIFwKKyAgICBVSVByb2Nlc3Mv
QVBJL3F0L3F0d2Vic2VjdXJpdHlvcmlnaW4uY3BwIFwKICAgICBVSVByb2Nlc3MvQVBJL3F0L3F3
ZWJuYXZpZ2F0aW9ucmVxdWVzdC5jcHAgXAogICAgIFVJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vi
cGFnZS5jcHAgXAogICAgIFVJUHJvY2Vzcy9BUEkvcXQvcXdlYm5hdmlnYXRpb25oaXN0b3J5LmNw
cCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F0d2Vic2Vj
dXJpdHlvcmlnaW4uY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xdHdlYnNl
Y3VyaXR5b3JpZ2luLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MmFmMDA3MjhkYzk5ODU2M2M0ZGZkY2E3ZGFi
ZTgyMjlhNjBhMTY0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9xdC9xdHdlYnNlY3VyaXR5b3JpZ2luLmNwcApAQCAtMCwwICsxLDE1NyBAQAorLyoKKyAg
ICBDb3B5cmlnaHQgKEMpIDIwMTIgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRp
YXJ5KC1pZXMpCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy
ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi
eSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9uIDIgb2Yg
dGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAg
ICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl
IHVzZWZ1bCwKKyAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg
aW1wbGllZCB3YXJyYW50eSBvZgorICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICAgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVj
ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisg
ICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElm
IG5vdCwgd3JpdGUgdG8KKyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1
MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMw
MSwgVVNBLgorKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW5jbHVkZSAicXR3ZWJzZWN1
cml0eW9yaWdpbl9wLmgiCisKKyNpbmNsdWRlIDxLVVJMLmg+CisjaW5jbHVkZSA8UXRDb3JlL1FG
aWxlSW5mbz4KKyNpbmNsdWRlIDxRdENvcmUvUVN0cmluZ0xpc3Q+CisjaW5jbHVkZSA8U2NoZW1l
UmVnaXN0cnkuaD4KKyNpbmNsdWRlIDxTZWN1cml0eU9yaWdpbi5oPgorI2luY2x1ZGUgPFdlYktp
dDIvV0tCYXNlLmg+CisjaW5jbHVkZSA8V2ViS2l0Mi9XS1JldGFpblB0ci5oPgorI2luY2x1ZGUg
PFdlYktpdDIvV0tTZWN1cml0eU9yaWdpbi5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
KworCitib29sIFF0V2ViU2VjdXJpdHlPcmlnaW46OmNvbnRhaW5zU2NoZW1lKGNvbnN0IFFTdHJp
bmcmIHNjaGVtZSkKK3sKKyAgICBjb25zdCBVUkxTY2hlbWVzTWFwJiBtYXAgPSBTY2hlbWVSZWdp
c3RyeTo6bG9jYWxTY2hlbWVzKCk7CisgICAgcmV0dXJuIG1hcC5jb250YWlucyhzY2hlbWUpOwor
fQorCitib29sIFF0V2ViU2VjdXJpdHlPcmlnaW46OmlzTG9jYWxTY2hlbWUoY29uc3QgUVN0cmlu
ZyYgc2NoZW1lKQoreworICAgIHJldHVybiAoc2NoZW1lID09IFFTdHJpbmc6OmZyb21VdGY4KCJx
cmMiKSkgPyB0cnVlIDogKHNjaGVtZSA9PSBRU3RyaW5nOjpmcm9tVXRmOCgiZmlsZSIpKTsKK30K
KworUXRXZWJTZWN1cml0eU9yaWdpbjo6UXRXZWJTZWN1cml0eU9yaWdpbihjb25zdCBRVXJsJiB1
cmwsIFFPYmplY3QqIHBhcmVudCkKKyAgICA6IFFPYmplY3QocGFyZW50KQoreworCisgICAgbV91
cmwuc2V0U2NoZW1lKHVybC5zY2hlbWUoKSk7CisgICAgaWYgKHVybC5zY2hlbWUoKSA9PSBRTGF0
aW4xU3RyaW5nKCJkYXRhIikpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChpc0xvY2FsU2No
ZW1lKHVybC5zY2hlbWUoKSkpIHsKKyAgICAgICAgLy8gV2Ugc3RvcmUgdGhlIGNhbm5vbmljYWwg
cGF0aCwgaWUuIHRoZSBhYnNvbHV0ZSBwYXRoICp3aXRob3V0KiBzeW1ib2xpYworICAgICAgICAv
LyBsaW5rcyBvciByZWR1bmRhbnQgIi4iIG9yICIuLiIgZWxlbWVudHMuCisgICAgICAgIG1fdXJs
LnNldFBhdGgoUUZpbGVJbmZvKHVybC5wYXRoKCkpLmNhbm9uaWNhbEZpbGVQYXRoKCkpOworICAg
ICAgICByZXR1cm47CisgICAgfQorCisgICAgbV91cmwuc2V0SG9zdCh1cmwuaG9zdCgpKTsKK30K
KworUXRXZWJTZWN1cml0eU9yaWdpbjo6flF0V2ViU2VjdXJpdHlPcmlnaW4oKQoreworfQorCitR
U3RyaW5nIFF0V2ViU2VjdXJpdHlPcmlnaW46Omhvc3QoKSBjb25zdAoreworICAgIHJldHVybiBt
X3VybC5ob3N0KCk7Cit9CisKK1FTdHJpbmcgUXRXZWJTZWN1cml0eU9yaWdpbjo6c2NoZW1lKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gbV91cmwuc2NoZW1lKCk7Cit9CisKK1FTdHJpbmcgUXRXZWJT
ZWN1cml0eU9yaWdpbjo6cGF0aCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fdXJsLnBhdGgoKTsK
K30KKworaW50IFF0V2ViU2VjdXJpdHlPcmlnaW46OnBvcnQoKSBjb25zdAoreworICAgIHJldHVy
biBtX3VybC5wb3J0KCk7Cit9CisKK1FVcmwgUXRXZWJTZWN1cml0eU9yaWdpbjo6dXJsKCkgY29u
c3QKK3sKKyAgICByZXR1cm4gbV91cmw7Cit9CisKK3ZvaWQgUXRXZWJTZWN1cml0eU9yaWdpbjo6
YWRkTG9jYWxTY2hlbWUoY29uc3QgUVN0cmluZyYgc2NoZW1lKQoreworICAgIGlmIChjb250YWlu
c1NjaGVtZShzY2hlbWUpKQorICAgICAgICByZXR1cm47CisKKyAgICBTY2hlbWVSZWdpc3RyeTo6
cmVnaXN0ZXJVUkxTY2hlbWVBc0xvY2FsKHNjaGVtZSk7Cit9CisKK3ZvaWQgUXRXZWJTZWN1cml0
eU9yaWdpbjo6cmVtb3ZlTG9jYWxTY2hlbWUoY29uc3QgUVN0cmluZyYgc2NoZW1lKQoreworICAg
IC8vIFlvdSBjYW5ub3QgcmVtb3ZlIGZpbGU6CisgICAgaWYgKHNjaGVtZSA9PSBRTGF0aW4xU3Ry
aW5nKCJmaWxlIikpCisgICAgICAgIHJldHVybjsKKworICAgIFNjaGVtZVJlZ2lzdHJ5OjpyZW1v
dmVVUkxTY2hlbWVSZWdpc3RlcmVkQXNMb2NhbChzY2hlbWUpOworfQorCitRU3RyaW5nTGlzdCBR
dFdlYlNlY3VyaXR5T3JpZ2luOjpsb2NhbFNjaGVtZXMoKQoreworICAgIFFTdHJpbmdMaXN0IHNj
aGVtZXM7CisgICAgY29uc3QgVVJMU2NoZW1lc01hcCYgbWFwID0gU2NoZW1lUmVnaXN0cnk6Omxv
Y2FsU2NoZW1lcygpOworICAgIFVSTFNjaGVtZXNNYXA6OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IG1h
cC5lbmQoKTsKKyAgICBmb3IgKFVSTFNjaGVtZXNNYXA6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbWFw
LmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkgeworICAgICAgICBjb25zdCBRU3RyaW5nIHNjaGVt
ZSA9ICppdDsKKyAgICAgICAgc2NoZW1lcy5hcHBlbmQoc2NoZW1lKTsKKyAgICB9CisKKyAgICBy
ZXR1cm4gc2NoZW1lczsKK30KKworYm9vbCBRdFdlYlNlY3VyaXR5T3JpZ2luOjpjYW5BY2Nlc3Mo
Y29uc3QgUVVybCYgYW5vdGhlclVybCwgT3JpZ2luUG9saWN5RmxhZ3MgZmxhZ3MpCit7CisgICAg
aWYgKHNjaGVtZSgpID09IFFMYXRpbjFTdHJpbmcoImRhdGEiKSkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworCisgICAgaWYgKGNvbnRhaW5zU2NoZW1lKG1fdXJsLnNjaGVtZSgpKSkgeworICAgICAg
ICBpZiAoY29udGFpbnNTY2hlbWUoYW5vdGhlclVybC5zY2hlbWUoKSkgJiYgKGZsYWdzICYgTG9j
YWxDb250ZW50SGFzU3lzdGVtTG9jYWxBY2Nlc3MpKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7
CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJldHVybiBtX3VybC5wYXRoKCkgPT0gUUZpbGVJ
bmZvKG1fdXJsLnBhdGgoKSkuY2Fub25pY2FsRmlsZVBhdGgoKTsKKyAgICB9CisKKyAgICByZXR1
cm4gbV91cmwuc2NoZW1lKCkgPT0gYW5vdGhlclVybC5zY2hlbWUoKSAmJiBtX3VybC5ob3N0KCkg
PT0gYW5vdGhlclVybC5ob3N0KCkgJiYgbV91cmwucG9ydCgpID09IGFub3RoZXJVcmwucG9ydCgp
OworfQorCitRRGF0YVN0cmVhbSYgb3BlcmF0b3I8PChRRGF0YVN0cmVhbSYgb3V0LCBjb25zdCBR
dFdlYlNlY3VyaXR5T3JpZ2luICZvcmlnaW4pCit7CisgICAgLy8gRklYTUU6IE1pZ2h0IG5lZWQg
c29tZSB2ZXJzaW9uaW5nLgorICAgIG91dCA8PCAob3JpZ2luLnVybCgpLnRvRW5jb2RlZCgpLmRh
dGEoKSk7CisgICAgcmV0dXJuIG91dDsKK30KKworUURhdGFTdHJlYW0mIG9wZXJhdG9yPj4oUURh
dGFTdHJlYW0mIGluLCBRdFdlYlNlY3VyaXR5T3JpZ2luJiBvcmlnaW4pCit7CisgICAgLy8gRklY
TUU6IE1pZ2h0IG5lZWQgc29tZSB2ZXJzaW9uaW5nLgorICAgIGNoYXIqIHVybCA9IG9yaWdpbi51
cmwoKS50b0VuY29kZWQoKS5kYXRhKCk7CisgICAgaW4gPj4gdXJsOworICAgIHJldHVybiBpbjsK
K30KKwordm9pZCBRdFdlYlNlY3VyaXR5T3JpZ2luOjpzZXRVcmwoY29uc3QgUVVybCYgdXJsKQor
eworICAgIG1fdXJsID0gdXJsOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9xdC9xdHdlYnNlY3VyaXR5b3JpZ2luX3AuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvcXQvcXR3ZWJzZWN1cml0eW9yaWdpbl9wLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2ZjMjkwNTcy
ZWM4M2QxOTBkYzMyOTViNjY1MDY1YmQxOTczZjhiZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXR3ZWJzZWN1cml0eW9yaWdpbl9wLmgKQEAgLTAs
MCArMSw3MSBAQAorLyoKKyAgICBDb3B5cmlnaHQgKEMpIDIwMTIgTm9raWEgQ29ycG9yYXRpb24g
YW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICAgbW9kaWZ5IGl0IHVu
ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAgICBMaWNl
bnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIK
KyAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxh
dGVyIHZlcnNpb24uCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhv
cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7
IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgIE1FUkNIQU5UQUJJTElU
WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICAg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICBZ
b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlCisgICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmls
ZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICAgIEJv
c3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorKi8KKyNpZm5kZWYgcXR3ZWJzZWN1cml0eW9yaWdp
bl9wX2gKKyNkZWZpbmUgcXR3ZWJzZWN1cml0eW9yaWdpbl9wX2gKKworI2luY2x1ZGUgInF3ZWJr
aXRnbG9iYWwuaCIKKworI2luY2x1ZGUgPFF0Q29yZS9RRGF0YVN0cmVhbT4KKyNpbmNsdWRlIDxR
dENvcmUvUU9iamVjdD4KKyNpbmNsdWRlIDxRdENvcmUvUVN0cmluZz4KKyNpbmNsdWRlIDxRdENv
cmUvUVVybD4KKyNpbmNsdWRlIDxRdENvcmUvcXNoYXJlZGRhdGEuaD4KKworY2xhc3MgUVdFQktJ
VF9FWFBPUlQgUXRXZWJTZWN1cml0eU9yaWdpbiA6IHB1YmxpYyBRT2JqZWN0IHsKKyAgICBRX09C
SkVDVAorICAgIFFfUFJPUEVSVFkoUVN0cmluZyBzY2hlbWUgUkVBRCBzY2hlbWUgQ09OU1RBTlQp
CisgICAgUV9QUk9QRVJUWShRU3RyaW5nIGhvc3QgUkVBRCBob3N0IENPTlNUQU5UKQorICAgIFFf
UFJPUEVSVFkoaW50IHBvcnQgUkVBRCBwb3J0IENPTlNUQU5UKQorICAgIFFfUFJPUEVSVFkoUVN0
cmluZyBwYXRoIFJFQUQgcGF0aCBDT05TVEFOVCkKKyAgICBRX1BST1BFUlRZKFFVcmwgdXJsIFJF
QUQgdXJsIENPTlNUQU5UKQorCitwdWJsaWM6CisgICAgUXRXZWJTZWN1cml0eU9yaWdpbihjb25z
dCBRVXJsJiB1cmwsIFFPYmplY3QqIHBhcmVudCA9IDApOworICAgIHZpcnR1YWwgflF0V2ViU2Vj
dXJpdHlPcmlnaW4oKTsKKworICAgIFFTdHJpbmcgc2NoZW1lKCkgY29uc3Q7CisgICAgUVN0cmlu
ZyBob3N0KCkgY29uc3Q7CisgICAgaW50IHBvcnQoKSBjb25zdDsKKyAgICBRU3RyaW5nIHBhdGgo
KSBjb25zdDsKKyAgICBRVXJsIHVybCgpIGNvbnN0OworCisgICAgc3RhdGljIHZvaWQgYWRkTG9j
YWxTY2hlbWUoY29uc3QgUVN0cmluZyYgc2NoZW1lKTsKKyAgICBzdGF0aWMgdm9pZCByZW1vdmVM
b2NhbFNjaGVtZShjb25zdCBRU3RyaW5nJiBzY2hlbWUpOworICAgIHN0YXRpYyBRU3RyaW5nTGlz
dCBsb2NhbFNjaGVtZXMoKTsKKworICAgIHZvaWQgc2V0VXJsKGNvbnN0IFFVcmwmKTsKKworICAg
IGVudW0gT3JpZ2luUG9saWN5RmxhZ3MgeworICAgICAgICBDb250ZW50SGFzU2FtZU9yaWdpbkFj
Y2VzcyA9IDB4MCwKKyAgICAgICAgTG9jYWxDb250ZW50SGFzUmVtb3RlQWNjZXNzID0gMHgxLAor
ICAgICAgICBMb2NhbENvbnRlbnRIYXNTeXN0ZW1Mb2NhbEFjY2VzcyA9IDB4MgorICAgIH07CisK
KyAgICBib29sIGNhbkFjY2Vzcyhjb25zdCBRVXJsJiB1cmwsIE9yaWdpblBvbGljeUZsYWdzIGZs
YWdzID0gQ29udGVudEhhc1NhbWVPcmlnaW5BY2Nlc3MpOworCitwcml2YXRlOgorICAgIHN0YXRp
YyBib29sIGNvbnRhaW5zU2NoZW1lKGNvbnN0IFFTdHJpbmcmKTsKKyAgICBib29sIGlzTG9jYWxT
Y2hlbWUoY29uc3QgUVN0cmluZyYpOworICAgIFFVcmwgbV91cmw7Cit9OworCitRRGF0YVN0cmVh
bSYgb3BlcmF0b3I8PChRRGF0YVN0cmVhbSYsIGNvbnN0IFF0V2ViU2VjdXJpdHlPcmlnaW4mKTsK
K1FEYXRhU3RyZWFtJiBvcGVyYXRvcj4+KFFEYXRhU3RyZWFtJiwgUXRXZWJTZWN1cml0eU9yaWdp
biYpOworCisjZW5kaWYgLy8gcXR3ZWJzZWN1cml0eW9yaWdpbl9wX2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnBlcm1pc3Npb25yZXF1ZXN0LmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnBlcm1pc3Npb25yZXF1ZXN0LmNw
cAppbmRleCAxNmE0Mzg1NjA1ZWE4ZjI3YmY4OTAwMzljZDMyYjliOTFjODI5Yzc5Li5kYTVhYmMz
ZDY4M2ExOGFhMjc3MjlmNTgzYTAzZDgzMzJjNjNjZTA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwZXJtaXNzaW9ucmVxdWVzdC5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2VicGVybWlzc2lvbnJlcXVlc3QuY3BwCkBA
IC0zMiw5ICszMiwyMiBAQCBwdWJsaWM6CiAgICAgICAgIDogb3JpZ2luKHNlY3VyaXR5T3JpZ2lu
KQogICAgICAgICAsIHR5cGUoUVdlYlBlcm1pc3Npb25SZXF1ZXN0OjpHZW9sb2NhdGlvbikKICAg
ICAgICAgLCByZXF1ZXN0KHBlcm1pc3Npb25SZXF1ZXN0KQorICAgICAgICAsIHNlY3VyaXR5SW5m
byhRVXJsKCksIDApCiAgICAgICAgICwgYWxsb3coZmFsc2UpCiAgICAgeworCisgICAgICAgIFFV
cmwgZGF0YTsKKyAgICAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHVybCA9IGFkb3B0V0so
V0tTZWN1cml0eU9yaWdpbkNvcHlQcm90b2NvbChvcmlnaW4uZ2V0KCkpKTsKKyAgICAgICAgZGF0
YS5zZXRTY2hlbWUoV0tTdHJpbmdDb3B5UVN0cmluZyh1cmwuZ2V0KCkpKTsKKworICAgICAgICBX
S1JldGFpblB0cjxXS1N0cmluZ1JlZj4gaG9zdCA9IGFkb3B0V0soV0tTZWN1cml0eU9yaWdpbkNv
cHlIb3N0KG9yaWdpbi5nZXQoKSkpOworICAgICAgICBkYXRhLnNldEhvc3QoV0tTdHJpbmdDb3B5
UVN0cmluZyhob3N0LmdldCgpKSk7CisKKyAgICAgICAgZGF0YS5zZXRQb3J0KHN0YXRpY19jYXN0
PGludD4oV0tTZWN1cml0eU9yaWdpbkdldFBvcnQob3JpZ2luLmdldCgpKSkpOworICAgICAgICBz
ZWN1cml0eUluZm8uc2V0VXJsKGRhdGEpOworCiAgICAgfQorCiAgICAgflFXZWJQZXJtaXNzaW9u
UmVxdWVzdFByaXZhdGUoKQogICAgIHsKICAgICB9CkBAIC00Miw2ICs1NSw3IEBAIHB1YmxpYzoK
ICAgICBXS1JldGFpblB0cjxXS1NlY3VyaXR5T3JpZ2luUmVmPiBvcmlnaW47CiAgICAgUVdlYlBl
cm1pc3Npb25SZXF1ZXN0OjpSZXF1ZXN0VHlwZSB0eXBlOwogICAgIFdLUmV0YWluUHRyPFdLR2Vv
bG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdFJlZj4gcmVxdWVzdDsKKyAgICBRdFdlYlNlY3VyaXR5
T3JpZ2luIHNlY3VyaXR5SW5mbzsKICAgICBib29sIGFsbG93OwogfTsKIApAQCAtODgsMTkgKzEw
Miw4IEBAIGJvb2wgUVdlYlBlcm1pc3Npb25SZXF1ZXN0OjphbGxvdygpIGNvbnN0CiAgICAgcmV0
dXJuIGQtPmFsbG93OwogfQogCi1RU3RyaW5nIFFXZWJQZXJtaXNzaW9uUmVxdWVzdDo6c2NoZW1l
KCkgY29uc3QKK1F0V2ViU2VjdXJpdHlPcmlnaW4qIFFXZWJQZXJtaXNzaW9uUmVxdWVzdDo6c2Vj
dXJpdHlPcmlnaW4oKQogewotICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiB1cmwgPSBhZG9w
dFdLKFdLU2VjdXJpdHlPcmlnaW5Db3B5UHJvdG9jb2woZC0+b3JpZ2luLmdldCgpKSk7Ci0gICAg
cmV0dXJuIFdLU3RyaW5nQ29weVFTdHJpbmcodXJsLmdldCgpKTsKKyAgICByZXR1cm4gJihkLT5z
ZWN1cml0eUluZm8pOwogfQogCi1RU3RyaW5nIFFXZWJQZXJtaXNzaW9uUmVxdWVzdDo6aG9zdCgp
IGNvbnN0Ci17Ci0gICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IG9yaWdpbiA9IGFkb3B0V0so
V0tTZWN1cml0eU9yaWdpbkNvcHlIb3N0KGQtPm9yaWdpbi5nZXQoKSkpOwotICAgIHJldHVybiBX
S1N0cmluZ0NvcHlRU3RyaW5nKG9yaWdpbi5nZXQoKSk7Ci19Ci0KLWludCBRV2ViUGVybWlzc2lv
blJlcXVlc3Q6OnBvcnQoKSBjb25zdAotewotICAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQ+KFdL
U2VjdXJpdHlPcmlnaW5HZXRQb3J0KGQtPm9yaWdpbi5nZXQoKSkpOwotfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2VicGVybWlzc2lvbnJlcXVlc3RfcC5o
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2VicGVybWlzc2lvbnJlcXVlc3Rf
cC5oCmluZGV4IDU4MjRjNGNjZDk0MGI2NmMwZDk4NTlmMTAyZmMyYmI0ZWJhODk5NGEuLjMzYWZh
OTRmMGZjYzdjYTRmM2M0YmI1ODg1NDNhNzk1ZGY2YTBhZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnBlcm1pc3Npb25yZXF1ZXN0X3AuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwZXJtaXNzaW9ucmVxdWVzdF9wLmgK
QEAgLTIwLDYgKzIwLDcgQEAKICNpZm5kZWYgcXdlYnBlcm1pc3Npb25yZXF1ZXN0X3BfaAogI2Rl
ZmluZSBxd2VicGVybWlzc2lvbnJlcXVlc3RfcF9oCiAKKyNpbmNsdWRlICJxdHdlYnNlY3VyaXR5
b3JpZ2luX3AuaCIKICNpbmNsdWRlICJxd2Via2l0Z2xvYmFsLmgiCiAKICNpbmNsdWRlIDxRdENv
cmUvUU9iamVjdD4KQEAgLTMyLDEwICszMyw4IEBAIGNsYXNzIFFXZWJQZXJtaXNzaW9uUmVxdWVz
dFByaXZhdGU7CiBjbGFzcyBRV0VCS0lUX0VYUE9SVCBRV2ViUGVybWlzc2lvblJlcXVlc3QgOiBw
dWJsaWMgUU9iamVjdCB7CiAgICAgUV9PQkpFQ1QKICAgICBRX1BST1BFUlRZKGJvb2wgYWxsb3cg
UkVBRCBhbGxvdyBXUklURSBzZXRBbGxvdykKLSAgICBRX1BST1BFUlRZKFJlcXVlc3RUeXBlIHR5
cGUgUkVBRCB0eXBlKQotICAgIFFfUFJPUEVSVFkoUVN0cmluZyBzY2hlbWUgUkVBRCBzY2hlbWUp
Ci0gICAgUV9QUk9QRVJUWShRU3RyaW5nIGhvc3QgUkVBRCBob3N0KQotICAgIFFfUFJPUEVSVFko
aW50IHBvcnQgUkVBRCBwb3J0KQorICAgIFFfUFJPUEVSVFkoUmVxdWVzdFR5cGUgdHlwZSBSRUFE
IHR5cGUgQ09OU1RBTlQpCisgICAgUV9QUk9QRVJUWShRdFdlYlNlY3VyaXR5T3JpZ2luKiBzZWN1
cml0eU9yaWdpbiBSRUFEIHNlY3VyaXR5T3JpZ2luKQogICAgIFFfRU5VTVMoUmVxdWVzdFR5cGUp
CiAKIHB1YmxpYzoKQEAgLTQ4LDEyICs0NywxMCBAQCBwdWJsaWM6CiAKICAgICBSZXF1ZXN0VHlw
ZSB0eXBlKCkgY29uc3Q7CiAgICAgYm9vbCBhbGxvdygpIGNvbnN0OwotICAgIFFTdHJpbmcgc2No
ZW1lKCkgY29uc3Q7Ci0gICAgUVN0cmluZyBob3N0KCkgY29uc3Q7Ci0gICAgaW50IHBvcnQoKSBj
b25zdDsKIAogcHVibGljIFFfU0xPVFM6CiAgICAgdm9pZCBzZXRBbGxvdyhib29sKTsKKyAgICBR
dFdlYlNlY3VyaXR5T3JpZ2luKiBzZWN1cml0eU9yaWdpbigpOwogCiBwcml2YXRlOgogICAgIGZy
aWVuZCBjbGFzcyBRV2ViUGVybWlzc2lvblJlcXVlc3RQcml2YXRlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9xbWx0ZXN0cy5wcm8g
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL3FtbHRlc3Rz
LnBybwppbmRleCBjOGNlODdhN2ZjMWU4YzA2MzM5ZDRjN2IwNDI4N2U5YzcxZTY4NWVjLi41MDgx
OWMwYWJiOWNjYzI5OWI5ODI1MThmZTVhYWIwYjAzYTc4OTMyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL3FtbHRlc3RzLnBybworKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL3FtbHRlc3Rz
LnBybwpAQCAtMjksNCArMjksNSBAQCBPVEhFUl9GSUxFUyArPSBcCiAgICAgV2ViVmlldy90c3Rf
cHJlZmVyZW5jZXMucW1sIFwKICAgICBXZWJWaWV3L3RzdF9wcm9wZXJ0aWVzLnFtbCBcCiAgICAg
V2ViVmlldy90c3RfdGl0bGVDaGFuZ2VkLnFtbCBcCi0gICAgV2ViVmlldy90c3RfYXBwbGljYXRp
b25TY2hlbWUucW1sCisgICAgV2ViVmlldy90c3RfYXBwbGljYXRpb25TY2hlbWUucW1sIFwKKyAg
ICBXZWJWaWV3L3RzdF9vcmlnaW4ucW1sCmRpZmYgLS1naXQgYS9Tb3VyY2UvcXR3ZWJraXQtZXhw
b3J0Lm1hcCBiL1NvdXJjZS9xdHdlYmtpdC1leHBvcnQubWFwCmluZGV4IGJhMmUyZmJkNWRmNDVj
YTI2MTU3NTAzNjgyMmFjOTUxYTIxZWJlNDcuLmJmMTM3NzdjNzYzZTBkNGNlYTBkYzE5NzJlZmM1
ZTU5YTFhYzExZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9xdHdlYmtpdC1leHBvcnQubWFwCisrKyBi
L1NvdXJjZS9xdHdlYmtpdC1leHBvcnQubWFwCkBAIC0xNTYsNyArMTU2LDkgQEAgcXdrXzEuMCB7
CiAgICAgICAgIFFRdWlja05ldHdvcmtSZXF1ZXN0OjoqOwogICAgICAgICAqUVF1aWNrTmV0d29y
a1JlcGx5OwogICAgICAgICBRUXVpY2tOZXR3b3JrUmVwbHk6Oio7Ci0KKyAgICAgICAgKlF0V2Vi
U2VjdXJpdHlPcmlnaW47CisgICAgICAgIG5vbi12aXJ0dWFsP3RodW5rP3RvP1F0V2ViU2VjdXJp
dHlPcmlnaW4qOworICAgICAgICBRdFdlYlNlY3VyaXR5T3JpZ2luOjoqOwogCiAgICAgICAgICMg
V2ViS2l0IDIgQyBBUEkgbWFuZ2xlZCBpbiBDKysKICAgICAgICAgV0tTdHJpbmdDb3B5UVN0cmlu
Zyo7CmRpZmYgLS1naXQgYS9DaGFuZ2VMb2cgYi9DaGFuZ2VMb2cKaW5kZXggMzNmNGRkNmZmMDgw
ODZmNWRjNDM3NzUxM2IxNDVlNDBlZDBiOGEwZC4uMWE2MGM5NGZlNGNmNTNiNjJhNzU3OTE3NjIz
ZWQ3NzBmZDNhNDE1NCAxMDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisrKyBiL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE0IEBACisyMDEyLTAxLTIxICBBZGVuaWxzb24gQ2F2YWxjYW50aSAgPGNhdmFsY2Fu
dGlpQGdtYWlsLmNvbT4KKworICAgICAgICBbUXRdW1dLMl0gU3BsaXQgUVdlYlBlcm1pc3Npb25S
ZXF1ZXN0IGludG8gUVdlYlNlY3VyaXR5T3JpZ2luCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzIxNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEludHJvZHVjaW5nIGEgbmV3IGNsYXNzIHRvIGV4cG9zZSBz
ZWN1cml0eSBvcmlnaW4gaW5mb3JtYXRpb24uCisKKyAgICAgICAgKiBTb3VyY2UvcXR3ZWJraXQt
ZXhwb3J0Lm1hcDoKKwogMjAxMi0wMS0yMCAgTWFyYy1BbmRyZSBEZWNvc3RlICA8bWFkQGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBBZGQgcHJvcGVyIG9mZnNldCB0byBwb3NpdGlvbiByaWdodCBj
bGljayB0byBzaW11bGF0ZSBhIGNvbnRleHQgbWVudSBpbnZvY2F0aW9uLgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>123468</attachid>
            <date>2012-01-21 19:11:00 -0800</date>
            <delta_ts>2012-01-21 19:48:55 -0800</delta_ts>
            <desc>No more operators or shared pointer/pimple</desc>
            <filename>origin_step8_operators.patch</filename>
            <type>text/plain</type>
            <size>17839</size>
            <attacher name="Adenilson Cavalcanti Silva">savagobr</attacher>
            
              <data encoding="base64">RnJvbSAxZTRkMDJjMjg3ZDc3NDg0NDliMGZiZTEzM2RhNzdmOWRmNTQ3Mzg2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBZGVuaWxzb24gQ2F2YWxjYW50aSA8Y2F2YWxjYW50aWlAZ21h
aWwuY29tPgpEYXRlOiBTYXQsIDIxIEphbiAyMDEyIDIzOjA2OjI0IC0wNDAwClN1YmplY3Q6IFtQ
QVRDSF0gU29sdmVkIGxpYnJhcnkgbG9hZGluZyBpc3N1ZSwgYWNjZXNzIHRvIHRoZSBzZWN1cml0
eQogcHJvcGVydHkgaW4gUU1MIHNpZGUsIFFNTCB0ZXN0LCBjb25zdGFudC1meSByZWFkIG9ubHkK
IHByb3BlcnRpZXMsIGNoYW5nZWxvZ3MsIG5vIHBpbXBsZSBhbmQgbm8gb3BlcmF0b3JzLgoKU2ln
bmVkLW9mZi1ieTogQWRlbmlsc29uIENhdmFsY2FudGkgPGNhdmFsY2FudGlpQGdtYWlsLmNvbT4K
LS0tCiBDaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8
ICAgMTEgKysKIFNvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAg
ICAgIHwgICAxMiArKwogU291cmNlL1dlYktpdC9xdC9kZWNsYXJhdGl2ZS9wbHVnaW4uY3BwICAg
ICAgICAgICAgfCAgICAzICsKIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHwgICAzNCArKysrKwogU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaSAgICAg
ICAgICAgICAgICAgICAgICAgICAgfCAgICAyICsKIC4uLi9VSVByb2Nlc3MvQVBJL3F0L3F0d2Vi
c2VjdXJpdHlvcmlnaW4uY3BwICAgICAgIHwgIDE1NyArKysrKysrKysrKysrKysrKysrKwogLi4u
L1VJUHJvY2Vzcy9BUEkvcXQvcXR3ZWJzZWN1cml0eW9yaWdpbl9wLmggICAgICAgfCAgIDcxICsr
KysrKysrKwogLi4uL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnBlcm1pc3Npb25yZXF1ZXN0LmNwcCAg
ICAgfCAgIDI5ICsrLS0KIC4uLi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwZXJtaXNzaW9ucmVxdWVz
dF9wLmggICAgIHwgICAxMSArLQogLi4uL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMv
cW1sdGVzdHMucHJvICAgfCAgICAzICstCiBTb3VyY2UvcXR3ZWJraXQtZXhwb3J0Lm1hcCAgICAg
ICAgICAgICAgICAgICAgICAgICB8ICAgIDQgKy0KIDExIGZpbGVzIGNoYW5nZWQsIDMxNSBpbnNl
cnRpb25zKCspLCAyMiBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F0d2Vic2VjdXJpdHlvcmlnaW4uY3BwCiBjcmVhdGUgbW9k
ZSAxMDA2NDQgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xdHdlYnNlY3VyaXR5b3Jp
Z2luX3AuaAoKZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCAzM2Y0ZGQ2
Li4xYTYwYzk0IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTQgQEAKKzIwMTItMDEtMjEgIEFkZW5pbHNvbiBDYXZhbGNhbnRpICA8Y2F2YWxjYW50aWlA
Z21haWwuY29tPgorCisgICAgICAgIFtRdF1bV0syXSBTcGxpdCBRV2ViUGVybWlzc2lvblJlcXVl
c3QgaW50byBRV2ViU2VjdXJpdHlPcmlnaW4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTczMjE1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgSW50cm9kdWNpbmcgYSBuZXcgY2xhc3MgdG8gZXhwb3NlIHNlY3Vy
aXR5IG9yaWdpbiBpbmZvcm1hdGlvbi4KKworICAgICAgICAqIFNvdXJjZS9xdHdlYmtpdC1leHBv
cnQubWFwOgorCiAyMDEyLTAxLTIwICBNYXJjLUFuZHJlIERlY29zdGUgIDxtYWRAY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIEFkZCBwcm9wZXIgb2Zmc2V0IHRvIHBvc2l0aW9uIHJpZ2h0IGNsaWNr
IHRvIHNpbXVsYXRlIGEgY29udGV4dCBtZW51IGludm9jYXRpb24uCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L3F0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCmluZGV4
IDhhNTBmNjUuLmNkNmMyMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTIt
MDEtMjEgIEFkZW5pbHNvbiBDYXZhbGNhbnRpICA8Y2F2YWxjYW50aWlAZ21haWwuY29tPgorCisg
ICAgICAgIFtRdF1bV0syXSBTcGxpdCBRV2ViUGVybWlzc2lvblJlcXVlc3QgaW50byBRV2ViU2Vj
dXJpdHlPcmlnaW4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTczMjE1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgRXhwb3J0IHRoZSBzZWN1cml0eSBvcmlnaW4gY2xhc3MgdG8gUU1MLgorCisgICAgICAgICog
ZGVjbGFyYXRpdmUvcGx1Z2luLmNwcDoKKyAgICAgICAgKFdlYktpdFFtbFBsdWdpbjo6cmVnaXN0
ZXJUeXBlcyk6CisKIDIwMTItMDEtMTcgIFZpYXRjaGVzbGF2IE9zdGFwZW5rbyAgPG9zdGFwZW5r
by52aWF0Y2hlc2xhdkBub2tpYS5jb20+CiAKICAgICAgICAgW1F0XSBEZWJ1ZyBidWlsZCBmYWls
cyB3aXRoIGRlYnVnIHF0NQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9kZWNsYXJhdGl2
ZS9wbHVnaW4uY3BwIGIvU291cmNlL1dlYktpdC9xdC9kZWNsYXJhdGl2ZS9wbHVnaW4uY3BwCmlu
ZGV4IDY0NjM4ZTQuLmUyZjBmYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvZGVjbGFy
YXRpdmUvcGx1Z2luLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L2RlY2xhcmF0aXZlL3BsdWdp
bi5jcHAKQEAgLTI1LDYgKzI1LDcgQEAKICNpZiBkZWZpbmVkKEhBVkVfV0VCS0lUMikKICNpbmNs
dWRlICJxcXVpY2t3ZWJwYWdlX3AuaCIKICNpbmNsdWRlICJxcXVpY2t3ZWJ2aWV3X3AuaCIKKyNp
bmNsdWRlICJxdHdlYnNlY3VyaXR5b3JpZ2luX3AuaCIKICNpbmNsdWRlICJxd2ViaWNvbmltYWdl
cHJvdmlkZXJfcC5oIgogI2luY2x1ZGUgInF3ZWJuYXZpZ2F0aW9ucmVxdWVzdF9wLmgiCiAjaW5j
bHVkZSAicXdlYnBlcm1pc3Npb25yZXF1ZXN0X3AuaCIKQEAgLTY1LDYgKzY2LDggQEAgcHVibGlj
OgogICAgICAgICBxbWxSZWdpc3RlclVuY3JlYXRhYmxlVHlwZTxRTmV0d29ya1JlcGx5Pih1cmks
IDMsIDAsICJOZXR3b3JrUmVwbHkiLCBRT2JqZWN0Ojp0cigiQ2Fubm90IGNyZWF0ZSBzZXBhcmF0
ZSBpbnN0YW5jZSBvZiBOZXR3b3JrUmVwbHkiKSk7CiAgICAgICAgIHFtbFJlZ2lzdGVyVW5jcmVh
dGFibGVUeXBlPFFXZWJQZXJtaXNzaW9uUmVxdWVzdD4odXJpLCAzLCAwLCAiUGVybWlzc2lvblJl
cXVlc3QiLCBRT2JqZWN0Ojp0cigiQ2Fubm90IGNyZWF0ZSBzZXBhcmF0ZSBpbnN0YW5jZSBvZiBQ
ZXJtaXNzaW9uUmVxdWVzdCIpKTsKICAgICAgICAgcW1sUmVnaXN0ZXJVbmNyZWF0YWJsZVR5cGU8
UVdlYk5hdmlnYXRpb25SZXF1ZXN0Pih1cmksIDMsIDAsICJOYXZpZ2F0aW9uUmVxdWVzdCIsIFFP
YmplY3Q6OnRyKCJDYW5ub3QgY3JlYXRlIHNlcGFyYXRlIGluc3RhbmNlIG9mIE5hdmlnYXRpb25S
ZXF1ZXN0IikpOworICAgICAgICBxbWxSZWdpc3RlclVuY3JlYXRhYmxlVHlwZTxRdFdlYlNlY3Vy
aXR5T3JpZ2luPih1cmksIDMsIDAsICJTZWN1cml0eU9yaWdpbiIsIFFPYmplY3Q6OnRyKCJDYW5u
b3QgY3JlYXRlIHNlcGFyYXRlIGluc3RhbmNlIG9mIFNlY3VyaXR5T3JpZ2luIikpOworCiAjZW5k
aWYKICAgICB9CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGIxMWNmZmMuLjdhZjhhOTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwzNyBAQAorMjAxMi0wMS0yMSAgQWRlbmlsc29uIENhdmFsY2FudGkgIDxjYXZh
bGNhbnRpaUBnbWFpbC5jb20+CisKKyAgICAgICAgW1F0XVtXSzJdIFNwbGl0IFFXZWJQZXJtaXNz
aW9uUmVxdWVzdCBpbnRvIFFXZWJTZWN1cml0eU9yaWdpbgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMyMTUKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbnRyb2R1Y2luZyBhIG5ldyBjbGFzcyB0byBleHBv
c2Ugc2VjdXJpdHkgb3JpZ2luIGluZm9ybWF0aW9uLgorCisgICAgICAgICogVGFyZ2V0LnByaToK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3F0d2Vic2VjdXJpdHlvcmlnaW4uY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFF0V2ViU2VjdXJpdHlPcmlnaW46OmNvbnRhaW5zU2NoZW1lKToKKyAgICAg
ICAgKFF0V2ViU2VjdXJpdHlPcmlnaW46OmlzTG9jYWxTY2hlbWUpOgorICAgICAgICAoUXRXZWJT
ZWN1cml0eU9yaWdpbjo6UXRXZWJTZWN1cml0eU9yaWdpbik6CisgICAgICAgIChRdFdlYlNlY3Vy
aXR5T3JpZ2luOjp+UXRXZWJTZWN1cml0eU9yaWdpbik6CisgICAgICAgIChRdFdlYlNlY3VyaXR5
T3JpZ2luOjpob3N0KToKKyAgICAgICAgKFF0V2ViU2VjdXJpdHlPcmlnaW46OnNjaGVtZSk6Cisg
ICAgICAgIChRdFdlYlNlY3VyaXR5T3JpZ2luOjpwYXRoKToKKyAgICAgICAgKFF0V2ViU2VjdXJp
dHlPcmlnaW46OnBvcnQpOgorICAgICAgICAoUXRXZWJTZWN1cml0eU9yaWdpbjo6dXJsKToKKyAg
ICAgICAgKFF0V2ViU2VjdXJpdHlPcmlnaW46OmFkZExvY2FsU2NoZW1lKToKKyAgICAgICAgKFF0
V2ViU2VjdXJpdHlPcmlnaW46OnJlbW92ZUxvY2FsU2NoZW1lKToKKyAgICAgICAgKFF0V2ViU2Vj
dXJpdHlPcmlnaW46OmxvY2FsU2NoZW1lcyk6CisgICAgICAgIChRdFdlYlNlY3VyaXR5T3JpZ2lu
OjpjYW5BY2Nlc3MpOgorICAgICAgICAob3BlcmF0b3I8PCk6CisgICAgICAgIChvcGVyYXRvcj4+
KToKKyAgICAgICAgKFF0V2ViU2VjdXJpdHlPcmlnaW46OnNldFVybCk6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9xdC9xdHdlYnNlY3VyaXR5b3JpZ2luX3AuaDogQWRkZWQuCisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9xdC9xd2VicGVybWlzc2lvbnJlcXVlc3QuY3BwOgorICAgICAgICAoUVdl
YlBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZTo6UVdlYlBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZSk6
CisgICAgICAgIChRV2ViUGVybWlzc2lvblJlcXVlc3Q6OnNlY3VyaXR5T3JpZ2luKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL3F0L3F3ZWJwZXJtaXNzaW9ucmVxdWVzdF9wLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9xbWx0ZXN0cy5wcm86CisKIDIwMTIt
MDEtMjEgIFRpbW90aHkgSGF0Y2hlciAgPHRpbW90aHlAYXBwbGUuY29tPgogCiAgICAgICAgIE1h
a2UgV2ViS2l0MiByZW1lbWJlciB0aGUgaGVpZ2h0IG9mIHRoZSBXZWIgSW5zcGVjdG9yIHdoZW4g
aXQgaXMgZG9ja2VkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaSBiL1Nv
dXJjZS9XZWJLaXQyL1RhcmdldC5wcmkKaW5kZXggNWVlMjc5Ny4uNDc3YmVmYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQu
cHJpCkBAIC0xNzMsNiArMTczLDcgQEAgSEVBREVSUyArPSBcCiAgICAgVUlQcm9jZXNzL0FQSS9x
dC9xd2ViZG93bmxvYWRpdGVtX3AuaCBcCiAgICAgVUlQcm9jZXNzL0FQSS9xdC9xd2ViZG93bmxv
YWRpdGVtX3BfcC5oIFwKICAgICBVSVByb2Nlc3MvQVBJL3F0L3F3ZWJwZXJtaXNzaW9ucmVxdWVz
dF9wLmggXAorICAgIFVJUHJvY2Vzcy9BUEkvcXQvcXR3ZWJzZWN1cml0eW9yaWdpbl9wLmggXAog
ICAgIFVJUHJvY2Vzcy9BUEkvcXQvcXdlYm5hdmlnYXRpb25yZXF1ZXN0X3AuaCBcCiAgICAgVUlQ
cm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJwYWdlX3AuaCBcCiAgICAgVUlQcm9jZXNzL0FQSS9xdC9x
cXVpY2t3ZWJwYWdlX3BfcC5oIFwKQEAgLTUwMSw2ICs1MDIsNyBAQCBTT1VSQ0VTICs9IFwKICAg
ICBVSVByb2Nlc3MvQVBJL2NwcC9xdC9XS1VSTFF0LmNwcCBcCiAgICAgVUlQcm9jZXNzL0FQSS9x
dC9xd2ViZG93bmxvYWRpdGVtLmNwcCBcCiAgICAgVUlQcm9jZXNzL0FQSS9xdC9xd2VicGVybWlz
c2lvbnJlcXVlc3QuY3BwIFwKKyAgICBVSVByb2Nlc3MvQVBJL3F0L3F0d2Vic2VjdXJpdHlvcmln
aW4uY3BwIFwKICAgICBVSVByb2Nlc3MvQVBJL3F0L3F3ZWJuYXZpZ2F0aW9ucmVxdWVzdC5jcHAg
XAogICAgIFVJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2VicGFnZS5jcHAgXAogICAgIFVJUHJvY2Vz
cy9BUEkvcXQvcXdlYm5hdmlnYXRpb25oaXN0b3J5LmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F0d2Vic2VjdXJpdHlvcmlnaW4uY3BwIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xdHdlYnNlY3VyaXR5b3JpZ2luLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MmFmMDA3Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xdHdlYnNlY3VyaXR5b3JpZ2luLmNwcApA
QCAtMCwwICsxLDE1NyBAQAorLyoKKyAgICBDb3B5cmlnaHQgKEMpIDIwMTIgTm9raWEgQ29ycG9y
YXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisKKyAgICBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICAgbW9kaWZ5
IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAg
ICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl
aXRoZXIKKyAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikg
YW55IGxhdGVyIHZlcnNpb24uCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4g
dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgICBidXQgV0lUSE9VVCBBTlkgV0FS
UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgIE1FUkNIQU5U
QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05V
CisgICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisK
KyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0
aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAgICB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAor
ICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorCisjaW5jbHVkZSAicXR3ZWJzZWN1cml0eW9yaWdpbl9wLmgiCisKKyNpbmNsdWRlIDxLVVJM
Lmg+CisjaW5jbHVkZSA8UXRDb3JlL1FGaWxlSW5mbz4KKyNpbmNsdWRlIDxRdENvcmUvUVN0cmlu
Z0xpc3Q+CisjaW5jbHVkZSA8U2NoZW1lUmVnaXN0cnkuaD4KKyNpbmNsdWRlIDxTZWN1cml0eU9y
aWdpbi5oPgorI2luY2x1ZGUgPFdlYktpdDIvV0tCYXNlLmg+CisjaW5jbHVkZSA8V2ViS2l0Mi9X
S1JldGFpblB0ci5oPgorI2luY2x1ZGUgPFdlYktpdDIvV0tTZWN1cml0eU9yaWdpbi5oPgorCit1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworCitib29sIFF0V2ViU2VjdXJpdHlPcmlnaW46OmNv
bnRhaW5zU2NoZW1lKGNvbnN0IFFTdHJpbmcmIHNjaGVtZSkKK3sKKyAgICBjb25zdCBVUkxTY2hl
bWVzTWFwJiBtYXAgPSBTY2hlbWVSZWdpc3RyeTo6bG9jYWxTY2hlbWVzKCk7CisgICAgcmV0dXJu
IG1hcC5jb250YWlucyhzY2hlbWUpOworfQorCitib29sIFF0V2ViU2VjdXJpdHlPcmlnaW46Omlz
TG9jYWxTY2hlbWUoY29uc3QgUVN0cmluZyYgc2NoZW1lKQoreworICAgIHJldHVybiAoc2NoZW1l
ID09IFFTdHJpbmc6OmZyb21VdGY4KCJxcmMiKSkgPyB0cnVlIDogKHNjaGVtZSA9PSBRU3RyaW5n
Ojpmcm9tVXRmOCgiZmlsZSIpKTsKK30KKworUXRXZWJTZWN1cml0eU9yaWdpbjo6UXRXZWJTZWN1
cml0eU9yaWdpbihjb25zdCBRVXJsJiB1cmwsIFFPYmplY3QqIHBhcmVudCkKKyAgICA6IFFPYmpl
Y3QocGFyZW50KQoreworCisgICAgbV91cmwuc2V0U2NoZW1lKHVybC5zY2hlbWUoKSk7CisgICAg
aWYgKHVybC5zY2hlbWUoKSA9PSBRTGF0aW4xU3RyaW5nKCJkYXRhIikpCisgICAgICAgIHJldHVy
bjsKKworICAgIGlmIChpc0xvY2FsU2NoZW1lKHVybC5zY2hlbWUoKSkpIHsKKyAgICAgICAgLy8g
V2Ugc3RvcmUgdGhlIGNhbm5vbmljYWwgcGF0aCwgaWUuIHRoZSBhYnNvbHV0ZSBwYXRoICp3aXRo
b3V0KiBzeW1ib2xpYworICAgICAgICAvLyBsaW5rcyBvciByZWR1bmRhbnQgIi4iIG9yICIuLiIg
ZWxlbWVudHMuCisgICAgICAgIG1fdXJsLnNldFBhdGgoUUZpbGVJbmZvKHVybC5wYXRoKCkpLmNh
bm9uaWNhbEZpbGVQYXRoKCkpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbV91cmwu
c2V0SG9zdCh1cmwuaG9zdCgpKTsKK30KKworUXRXZWJTZWN1cml0eU9yaWdpbjo6flF0V2ViU2Vj
dXJpdHlPcmlnaW4oKQoreworfQorCitRU3RyaW5nIFF0V2ViU2VjdXJpdHlPcmlnaW46Omhvc3Qo
KSBjb25zdAoreworICAgIHJldHVybiBtX3VybC5ob3N0KCk7Cit9CisKK1FTdHJpbmcgUXRXZWJT
ZWN1cml0eU9yaWdpbjo6c2NoZW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV91cmwuc2NoZW1l
KCk7Cit9CisKK1FTdHJpbmcgUXRXZWJTZWN1cml0eU9yaWdpbjo6cGF0aCgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIG1fdXJsLnBhdGgoKTsKK30KKworaW50IFF0V2ViU2VjdXJpdHlPcmlnaW46OnBv
cnQoKSBjb25zdAoreworICAgIHJldHVybiBtX3VybC5wb3J0KCk7Cit9CisKK1FVcmwgUXRXZWJT
ZWN1cml0eU9yaWdpbjo6dXJsKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV91cmw7Cit9CisKK3Zv
aWQgUXRXZWJTZWN1cml0eU9yaWdpbjo6YWRkTG9jYWxTY2hlbWUoY29uc3QgUVN0cmluZyYgc2No
ZW1lKQoreworICAgIGlmIChjb250YWluc1NjaGVtZShzY2hlbWUpKQorICAgICAgICByZXR1cm47
CisKKyAgICBTY2hlbWVSZWdpc3RyeTo6cmVnaXN0ZXJVUkxTY2hlbWVBc0xvY2FsKHNjaGVtZSk7
Cit9CisKK3ZvaWQgUXRXZWJTZWN1cml0eU9yaWdpbjo6cmVtb3ZlTG9jYWxTY2hlbWUoY29uc3Qg
UVN0cmluZyYgc2NoZW1lKQoreworICAgIC8vIFlvdSBjYW5ub3QgcmVtb3ZlIGZpbGU6CisgICAg
aWYgKHNjaGVtZSA9PSBRTGF0aW4xU3RyaW5nKCJmaWxlIikpCisgICAgICAgIHJldHVybjsKKwor
ICAgIFNjaGVtZVJlZ2lzdHJ5OjpyZW1vdmVVUkxTY2hlbWVSZWdpc3RlcmVkQXNMb2NhbChzY2hl
bWUpOworfQorCitRU3RyaW5nTGlzdCBRdFdlYlNlY3VyaXR5T3JpZ2luOjpsb2NhbFNjaGVtZXMo
KQoreworICAgIFFTdHJpbmdMaXN0IHNjaGVtZXM7CisgICAgY29uc3QgVVJMU2NoZW1lc01hcCYg
bWFwID0gU2NoZW1lUmVnaXN0cnk6OmxvY2FsU2NoZW1lcygpOworICAgIFVSTFNjaGVtZXNNYXA6
OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IG1hcC5lbmQoKTsKKyAgICBmb3IgKFVSTFNjaGVtZXNNYXA6
OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbWFwLmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkgeworICAg
ICAgICBjb25zdCBRU3RyaW5nIHNjaGVtZSA9ICppdDsKKyAgICAgICAgc2NoZW1lcy5hcHBlbmQo
c2NoZW1lKTsKKyAgICB9CisKKyAgICByZXR1cm4gc2NoZW1lczsKK30KKworYm9vbCBRdFdlYlNl
Y3VyaXR5T3JpZ2luOjpjYW5BY2Nlc3MoY29uc3QgUVVybCYgYW5vdGhlclVybCwgT3JpZ2luUG9s
aWN5RmxhZ3MgZmxhZ3MpCit7CisgICAgaWYgKHNjaGVtZSgpID09IFFMYXRpbjFTdHJpbmcoImRh
dGEiKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKGNvbnRhaW5zU2NoZW1lKG1f
dXJsLnNjaGVtZSgpKSkgeworICAgICAgICBpZiAoY29udGFpbnNTY2hlbWUoYW5vdGhlclVybC5z
Y2hlbWUoKSkgJiYgKGZsYWdzICYgTG9jYWxDb250ZW50SGFzU3lzdGVtTG9jYWxBY2Nlc3MpKQor
ICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJldHVy
biBtX3VybC5wYXRoKCkgPT0gUUZpbGVJbmZvKG1fdXJsLnBhdGgoKSkuY2Fub25pY2FsRmlsZVBh
dGgoKTsKKyAgICB9CisKKyAgICByZXR1cm4gbV91cmwuc2NoZW1lKCkgPT0gYW5vdGhlclVybC5z
Y2hlbWUoKSAmJiBtX3VybC5ob3N0KCkgPT0gYW5vdGhlclVybC5ob3N0KCkgJiYgbV91cmwucG9y
dCgpID09IGFub3RoZXJVcmwucG9ydCgpOworfQorCitRRGF0YVN0cmVhbSYgb3BlcmF0b3I8PChR
RGF0YVN0cmVhbSYgb3V0LCBjb25zdCBRdFdlYlNlY3VyaXR5T3JpZ2luICZvcmlnaW4pCit7Cisg
ICAgLy8gRklYTUU6IE1pZ2h0IG5lZWQgc29tZSB2ZXJzaW9uaW5nLgorICAgIG91dCA8PCAob3Jp
Z2luLnVybCgpLnRvRW5jb2RlZCgpLmRhdGEoKSk7CisgICAgcmV0dXJuIG91dDsKK30KKworUURh
dGFTdHJlYW0mIG9wZXJhdG9yPj4oUURhdGFTdHJlYW0mIGluLCBRdFdlYlNlY3VyaXR5T3JpZ2lu
JiBvcmlnaW4pCit7CisgICAgLy8gRklYTUU6IE1pZ2h0IG5lZWQgc29tZSB2ZXJzaW9uaW5nLgor
ICAgIGNoYXIqIHVybCA9IG9yaWdpbi51cmwoKS50b0VuY29kZWQoKS5kYXRhKCk7CisgICAgaW4g
Pj4gdXJsOworICAgIHJldHVybiBpbjsKK30KKwordm9pZCBRdFdlYlNlY3VyaXR5T3JpZ2luOjpz
ZXRVcmwoY29uc3QgUVVybCYgdXJsKQoreworICAgIG1fdXJsID0gdXJsOworfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xdHdlYnNlY3VyaXR5b3JpZ2luX3Au
aCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXR3ZWJzZWN1cml0eW9yaWdpbl9w
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2ZjMjkwNQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXR3ZWJzZWN1cml0eW9y
aWdpbl9wLmgKQEAgLTAsMCArMSw3MSBAQAorLyoKKyAgICBDb3B5cmlnaHQgKEMpIDIwMTIgTm9r
aWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisKKyAgICBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisg
ICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3Vy
IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJp
YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgICBidXQgV0lUSE9V
VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAg
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl
ZSB0aGUgR05VCisgICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl
dGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJh
cnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAgICB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRo
IEZsb29yLAorICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorKi8KKyNpZm5kZWYgcXR3
ZWJzZWN1cml0eW9yaWdpbl9wX2gKKyNkZWZpbmUgcXR3ZWJzZWN1cml0eW9yaWdpbl9wX2gKKwor
I2luY2x1ZGUgInF3ZWJraXRnbG9iYWwuaCIKKworI2luY2x1ZGUgPFF0Q29yZS9RRGF0YVN0cmVh
bT4KKyNpbmNsdWRlIDxRdENvcmUvUU9iamVjdD4KKyNpbmNsdWRlIDxRdENvcmUvUVN0cmluZz4K
KyNpbmNsdWRlIDxRdENvcmUvUVVybD4KKyNpbmNsdWRlIDxRdENvcmUvcXNoYXJlZGRhdGEuaD4K
KworY2xhc3MgUVdFQktJVF9FWFBPUlQgUXRXZWJTZWN1cml0eU9yaWdpbiA6IHB1YmxpYyBRT2Jq
ZWN0IHsKKyAgICBRX09CSkVDVAorICAgIFFfUFJPUEVSVFkoUVN0cmluZyBzY2hlbWUgUkVBRCBz
Y2hlbWUgQ09OU1RBTlQpCisgICAgUV9QUk9QRVJUWShRU3RyaW5nIGhvc3QgUkVBRCBob3N0IENP
TlNUQU5UKQorICAgIFFfUFJPUEVSVFkoaW50IHBvcnQgUkVBRCBwb3J0IENPTlNUQU5UKQorICAg
IFFfUFJPUEVSVFkoUVN0cmluZyBwYXRoIFJFQUQgcGF0aCBDT05TVEFOVCkKKyAgICBRX1BST1BF
UlRZKFFVcmwgdXJsIFJFQUQgdXJsIENPTlNUQU5UKQorCitwdWJsaWM6CisgICAgUXRXZWJTZWN1
cml0eU9yaWdpbihjb25zdCBRVXJsJiB1cmwsIFFPYmplY3QqIHBhcmVudCA9IDApOworICAgIHZp
cnR1YWwgflF0V2ViU2VjdXJpdHlPcmlnaW4oKTsKKworICAgIFFTdHJpbmcgc2NoZW1lKCkgY29u
c3Q7CisgICAgUVN0cmluZyBob3N0KCkgY29uc3Q7CisgICAgaW50IHBvcnQoKSBjb25zdDsKKyAg
ICBRU3RyaW5nIHBhdGgoKSBjb25zdDsKKyAgICBRVXJsIHVybCgpIGNvbnN0OworCisgICAgc3Rh
dGljIHZvaWQgYWRkTG9jYWxTY2hlbWUoY29uc3QgUVN0cmluZyYgc2NoZW1lKTsKKyAgICBzdGF0
aWMgdm9pZCByZW1vdmVMb2NhbFNjaGVtZShjb25zdCBRU3RyaW5nJiBzY2hlbWUpOworICAgIHN0
YXRpYyBRU3RyaW5nTGlzdCBsb2NhbFNjaGVtZXMoKTsKKworICAgIHZvaWQgc2V0VXJsKGNvbnN0
IFFVcmwmKTsKKworICAgIGVudW0gT3JpZ2luUG9saWN5RmxhZ3MgeworICAgICAgICBDb250ZW50
SGFzU2FtZU9yaWdpbkFjY2VzcyA9IDB4MCwKKyAgICAgICAgTG9jYWxDb250ZW50SGFzUmVtb3Rl
QWNjZXNzID0gMHgxLAorICAgICAgICBMb2NhbENvbnRlbnRIYXNTeXN0ZW1Mb2NhbEFjY2VzcyA9
IDB4MgorICAgIH07CisKKyAgICBib29sIGNhbkFjY2Vzcyhjb25zdCBRVXJsJiB1cmwsIE9yaWdp
blBvbGljeUZsYWdzIGZsYWdzID0gQ29udGVudEhhc1NhbWVPcmlnaW5BY2Nlc3MpOworCitwcml2
YXRlOgorICAgIHN0YXRpYyBib29sIGNvbnRhaW5zU2NoZW1lKGNvbnN0IFFTdHJpbmcmKTsKKyAg
ICBib29sIGlzTG9jYWxTY2hlbWUoY29uc3QgUVN0cmluZyYpOworICAgIFFVcmwgbV91cmw7Cit9
OworCitRRGF0YVN0cmVhbSYgb3BlcmF0b3I8PChRRGF0YVN0cmVhbSYsIGNvbnN0IFF0V2ViU2Vj
dXJpdHlPcmlnaW4mKTsKK1FEYXRhU3RyZWFtJiBvcGVyYXRvcj4+KFFEYXRhU3RyZWFtJiwgUXRX
ZWJTZWN1cml0eU9yaWdpbiYpOworCisjZW5kaWYgLy8gcXR3ZWJzZWN1cml0eW9yaWdpbl9wX2gK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnBlcm1pc3Np
b25yZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnBlcm1p
c3Npb25yZXF1ZXN0LmNwcAppbmRleCAxNmE0Mzg1Li5kYTVhYmMzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwZXJtaXNzaW9ucmVxdWVzdC5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2VicGVybWlzc2lvbnJlcXVlc3Qu
Y3BwCkBAIC0zMiw5ICszMiwyMiBAQCBwdWJsaWM6CiAgICAgICAgIDogb3JpZ2luKHNlY3VyaXR5
T3JpZ2luKQogICAgICAgICAsIHR5cGUoUVdlYlBlcm1pc3Npb25SZXF1ZXN0OjpHZW9sb2NhdGlv
bikKICAgICAgICAgLCByZXF1ZXN0KHBlcm1pc3Npb25SZXF1ZXN0KQorICAgICAgICAsIHNlY3Vy
aXR5SW5mbyhRVXJsKCksIDApCiAgICAgICAgICwgYWxsb3coZmFsc2UpCiAgICAgeworCisgICAg
ICAgIFFVcmwgZGF0YTsKKyAgICAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHVybCA9IGFk
b3B0V0soV0tTZWN1cml0eU9yaWdpbkNvcHlQcm90b2NvbChvcmlnaW4uZ2V0KCkpKTsKKyAgICAg
ICAgZGF0YS5zZXRTY2hlbWUoV0tTdHJpbmdDb3B5UVN0cmluZyh1cmwuZ2V0KCkpKTsKKworICAg
ICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gaG9zdCA9IGFkb3B0V0soV0tTZWN1cml0eU9y
aWdpbkNvcHlIb3N0KG9yaWdpbi5nZXQoKSkpOworICAgICAgICBkYXRhLnNldEhvc3QoV0tTdHJp
bmdDb3B5UVN0cmluZyhob3N0LmdldCgpKSk7CisKKyAgICAgICAgZGF0YS5zZXRQb3J0KHN0YXRp
Y19jYXN0PGludD4oV0tTZWN1cml0eU9yaWdpbkdldFBvcnQob3JpZ2luLmdldCgpKSkpOworICAg
ICAgICBzZWN1cml0eUluZm8uc2V0VXJsKGRhdGEpOworCiAgICAgfQorCiAgICAgflFXZWJQZXJt
aXNzaW9uUmVxdWVzdFByaXZhdGUoKQogICAgIHsKICAgICB9CkBAIC00Miw2ICs1NSw3IEBAIHB1
YmxpYzoKICAgICBXS1JldGFpblB0cjxXS1NlY3VyaXR5T3JpZ2luUmVmPiBvcmlnaW47CiAgICAg
UVdlYlBlcm1pc3Npb25SZXF1ZXN0OjpSZXF1ZXN0VHlwZSB0eXBlOwogICAgIFdLUmV0YWluUHRy
PFdLR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdFJlZj4gcmVxdWVzdDsKKyAgICBRdFdlYlNl
Y3VyaXR5T3JpZ2luIHNlY3VyaXR5SW5mbzsKICAgICBib29sIGFsbG93OwogfTsKIApAQCAtODgs
MTkgKzEwMiw4IEBAIGJvb2wgUVdlYlBlcm1pc3Npb25SZXF1ZXN0OjphbGxvdygpIGNvbnN0CiAg
ICAgcmV0dXJuIGQtPmFsbG93OwogfQogCi1RU3RyaW5nIFFXZWJQZXJtaXNzaW9uUmVxdWVzdDo6
c2NoZW1lKCkgY29uc3QKK1F0V2ViU2VjdXJpdHlPcmlnaW4qIFFXZWJQZXJtaXNzaW9uUmVxdWVz
dDo6c2VjdXJpdHlPcmlnaW4oKQogewotICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiB1cmwg
PSBhZG9wdFdLKFdLU2VjdXJpdHlPcmlnaW5Db3B5UHJvdG9jb2woZC0+b3JpZ2luLmdldCgpKSk7
Ci0gICAgcmV0dXJuIFdLU3RyaW5nQ29weVFTdHJpbmcodXJsLmdldCgpKTsKKyAgICByZXR1cm4g
JihkLT5zZWN1cml0eUluZm8pOwogfQogCi1RU3RyaW5nIFFXZWJQZXJtaXNzaW9uUmVxdWVzdDo6
aG9zdCgpIGNvbnN0Ci17Ci0gICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IG9yaWdpbiA9IGFk
b3B0V0soV0tTZWN1cml0eU9yaWdpbkNvcHlIb3N0KGQtPm9yaWdpbi5nZXQoKSkpOwotICAgIHJl
dHVybiBXS1N0cmluZ0NvcHlRU3RyaW5nKG9yaWdpbi5nZXQoKSk7Ci19Ci0KLWludCBRV2ViUGVy
bWlzc2lvblJlcXVlc3Q6OnBvcnQoKSBjb25zdAotewotICAgIHJldHVybiBzdGF0aWNfY2FzdDxp
bnQ+KFdLU2VjdXJpdHlPcmlnaW5HZXRQb3J0KGQtPm9yaWdpbi5nZXQoKSkpOwotfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2VicGVybWlzc2lvbnJlcXVl
c3RfcC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2VicGVybWlzc2lvbnJl
cXVlc3RfcC5oCmluZGV4IDU4MjRjNGMuLjMzYWZhOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnBlcm1pc3Npb25yZXF1ZXN0X3AuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwZXJtaXNzaW9ucmVxdWVzdF9wLmgKQEAg
LTIwLDYgKzIwLDcgQEAKICNpZm5kZWYgcXdlYnBlcm1pc3Npb25yZXF1ZXN0X3BfaAogI2RlZmlu
ZSBxd2VicGVybWlzc2lvbnJlcXVlc3RfcF9oCiAKKyNpbmNsdWRlICJxdHdlYnNlY3VyaXR5b3Jp
Z2luX3AuaCIKICNpbmNsdWRlICJxd2Via2l0Z2xvYmFsLmgiCiAKICNpbmNsdWRlIDxRdENvcmUv
UU9iamVjdD4KQEAgLTMyLDEwICszMyw4IEBAIGNsYXNzIFFXZWJQZXJtaXNzaW9uUmVxdWVzdFBy
aXZhdGU7CiBjbGFzcyBRV0VCS0lUX0VYUE9SVCBRV2ViUGVybWlzc2lvblJlcXVlc3QgOiBwdWJs
aWMgUU9iamVjdCB7CiAgICAgUV9PQkpFQ1QKICAgICBRX1BST1BFUlRZKGJvb2wgYWxsb3cgUkVB
RCBhbGxvdyBXUklURSBzZXRBbGxvdykKLSAgICBRX1BST1BFUlRZKFJlcXVlc3RUeXBlIHR5cGUg
UkVBRCB0eXBlKQotICAgIFFfUFJPUEVSVFkoUVN0cmluZyBzY2hlbWUgUkVBRCBzY2hlbWUpCi0g
ICAgUV9QUk9QRVJUWShRU3RyaW5nIGhvc3QgUkVBRCBob3N0KQotICAgIFFfUFJPUEVSVFkoaW50
IHBvcnQgUkVBRCBwb3J0KQorICAgIFFfUFJPUEVSVFkoUmVxdWVzdFR5cGUgdHlwZSBSRUFEIHR5
cGUgQ09OU1RBTlQpCisgICAgUV9QUk9QRVJUWShRdFdlYlNlY3VyaXR5T3JpZ2luKiBzZWN1cml0
eU9yaWdpbiBSRUFEIHNlY3VyaXR5T3JpZ2luKQogICAgIFFfRU5VTVMoUmVxdWVzdFR5cGUpCiAK
IHB1YmxpYzoKQEAgLTQ4LDEyICs0NywxMCBAQCBwdWJsaWM6CiAKICAgICBSZXF1ZXN0VHlwZSB0
eXBlKCkgY29uc3Q7CiAgICAgYm9vbCBhbGxvdygpIGNvbnN0OwotICAgIFFTdHJpbmcgc2NoZW1l
KCkgY29uc3Q7Ci0gICAgUVN0cmluZyBob3N0KCkgY29uc3Q7Ci0gICAgaW50IHBvcnQoKSBjb25z
dDsKIAogcHVibGljIFFfU0xPVFM6CiAgICAgdm9pZCBzZXRBbGxvdyhib29sKTsKKyAgICBRdFdl
YlNlY3VyaXR5T3JpZ2luKiBzZWN1cml0eU9yaWdpbigpOwogCiBwcml2YXRlOgogICAgIGZyaWVu
ZCBjbGFzcyBRV2ViUGVybWlzc2lvblJlcXVlc3RQcml2YXRlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9xbWx0ZXN0cy5wcm8gYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL3FtbHRlc3RzLnBy
bwppbmRleCBjOGNlODdhN2YuLjUwODE5YzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvcW1sdGVzdHMucHJvCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvcW1sdGVzdHMucHJvCkBAIC0y
OSw0ICsyOSw1IEBAIE9USEVSX0ZJTEVTICs9IFwKICAgICBXZWJWaWV3L3RzdF9wcmVmZXJlbmNl
cy5xbWwgXAogICAgIFdlYlZpZXcvdHN0X3Byb3BlcnRpZXMucW1sIFwKICAgICBXZWJWaWV3L3Rz
dF90aXRsZUNoYW5nZWQucW1sIFwKLSAgICBXZWJWaWV3L3RzdF9hcHBsaWNhdGlvblNjaGVtZS5x
bWwKKyAgICBXZWJWaWV3L3RzdF9hcHBsaWNhdGlvblNjaGVtZS5xbWwgXAorICAgIFdlYlZpZXcv
dHN0X29yaWdpbi5xbWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9xdHdlYmtpdC1leHBvcnQubWFwIGIv
U291cmNlL3F0d2Via2l0LWV4cG9ydC5tYXAKaW5kZXggYmEyZTJmYi4uYmYxMzc3NyAxMDA2NDQK
LS0tIGEvU291cmNlL3F0d2Via2l0LWV4cG9ydC5tYXAKKysrIGIvU291cmNlL3F0d2Via2l0LWV4
cG9ydC5tYXAKQEAgLTE1Niw3ICsxNTYsOSBAQCBxd2tfMS4wIHsKICAgICAgICAgUVF1aWNrTmV0
d29ya1JlcXVlc3Q6Oio7CiAgICAgICAgICpRUXVpY2tOZXR3b3JrUmVwbHk7CiAgICAgICAgIFFR
dWlja05ldHdvcmtSZXBseTo6KjsKLQorICAgICAgICAqUXRXZWJTZWN1cml0eU9yaWdpbjsKKyAg
ICAgICAgbm9uLXZpcnR1YWw/dGh1bms/dG8/UXRXZWJTZWN1cml0eU9yaWdpbio7CisgICAgICAg
IFF0V2ViU2VjdXJpdHlPcmlnaW46Oio7CiAKICAgICAgICAgIyBXZWJLaXQgMiBDIEFQSSBtYW5n
bGVkIGluIEMrKwogICAgICAgICBXS1N0cmluZ0NvcHlRU3RyaW5nKjsKLS0gCjEuNy41LjQKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>123469</attachid>
            <date>2012-01-21 19:48:55 -0800</date>
            <delta_ts>2012-01-21 20:09:21 -0800</delta_ts>
            <desc>Including the qml test.</desc>
            <filename>origin_step9_test.patch</filename>
            <type>text/plain</type>
            <size>19430</size>
            <attacher name="Adenilson Cavalcanti Silva">savagobr</attacher>
            
              <data encoding="base64">RnJvbSBiMWYzYzk0NWEzYWJmZjM4MmQ0NzNlOTMzZDA5ZjdkNzU1MTgzY2Y3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBZGVuaWxzb24gQ2F2YWxjYW50aSA8Y2F2YWxjYW50aWlAZ21h
aWwuY29tPgpEYXRlOiBTYXQsIDIxIEphbiAyMDEyIDIzOjA2OjI0IC0wNDAwClN1YmplY3Q6IFtQ
QVRDSF0gU29sdmVkIGxpYnJhcnkgbG9hZGluZyBpc3N1ZSwgYWNjZXNzIHRvIHRoZSBzZWN1cml0
eQogcHJvcGVydHkgaW4gUU1MIHNpZGUsIFFNTCB0ZXN0LCBjb25zdGFudC1meSByZWFkIG9ubHkK
IHByb3BlcnRpZXMsIGNoYW5nZWxvZ3MsIG5vIHBpbXBsZSBhbmQgbm8gb3BlcmF0b3JzLgoKU2ln
bmVkLW9mZi1ieTogQWRlbmlsc29uIENhdmFsY2FudGkgPGNhdmFsY2FudGlpQGdtYWlsLmNvbT4K
LS0tCiBDaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8
ICAgMTEgKysKIFNvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAg
ICAgIHwgICAxMiArKwogU291cmNlL1dlYktpdC9xdC9kZWNsYXJhdGl2ZS9wbHVnaW4uY3BwICAg
ICAgICAgICAgfCAgICAzICsKIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHwgICAzNCArKysrKwogU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaSAgICAg
ICAgICAgICAgICAgICAgICAgICAgfCAgICAyICsKIC4uLi9VSVByb2Nlc3MvQVBJL3F0L3F0d2Vi
c2VjdXJpdHlvcmlnaW4uY3BwICAgICAgIHwgIDE1NyArKysrKysrKysrKysrKysrKysrKwogLi4u
L1VJUHJvY2Vzcy9BUEkvcXQvcXR3ZWJzZWN1cml0eW9yaWdpbl9wLmggICAgICAgfCAgIDcxICsr
KysrKysrKwogLi4uL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnBlcm1pc3Npb25yZXF1ZXN0LmNwcCAg
ICAgfCAgIDI5ICsrLS0KIC4uLi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwZXJtaXNzaW9ucmVxdWVz
dF9wLmggICAgIHwgICAxMSArLQogLi4uL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3L3Rz
dF9vcmlnaW4ucW1sICAgfCAgIDQ0ICsrKysrKwogLi4uL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMv
cW1sdGVzdHMvcW1sdGVzdHMucHJvICAgfCAgICAzICstCiBTb3VyY2UvcXR3ZWJraXQtZXhwb3J0
Lm1hcCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDQgKy0KIDEyIGZpbGVzIGNoYW5nZWQs
IDM1OSBpbnNlcnRpb25zKCspLCAyMiBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F0d2Vic2VjdXJpdHlvcmlnaW4uY3BwCiBj
cmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xdHdlYnNl
Y3VyaXR5b3JpZ2luX3AuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvV2ViVmlldy90c3Rfb3JpZ2luLnFtbAoKZGlmZiAt
LWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCAzM2Y0ZGQ2Li4xYTYwYzk0IDEwMDY0
NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTIt
MDEtMjEgIEFkZW5pbHNvbiBDYXZhbGNhbnRpICA8Y2F2YWxjYW50aWlAZ21haWwuY29tPgorCisg
ICAgICAgIFtRdF1bV0syXSBTcGxpdCBRV2ViUGVybWlzc2lvblJlcXVlc3QgaW50byBRV2ViU2Vj
dXJpdHlPcmlnaW4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTczMjE1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgSW50cm9kdWNpbmcgYSBuZXcgY2xhc3MgdG8gZXhwb3NlIHNlY3VyaXR5IG9yaWdpbiBpbmZv
cm1hdGlvbi4KKworICAgICAgICAqIFNvdXJjZS9xdHdlYmtpdC1leHBvcnQubWFwOgorCiAyMDEy
LTAxLTIwICBNYXJjLUFuZHJlIERlY29zdGUgIDxtYWRAY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IEFkZCBwcm9wZXIgb2Zmc2V0IHRvIHBvc2l0aW9uIHJpZ2h0IGNsaWNrIHRvIHNpbXVsYXRlIGEg
Y29udGV4dCBtZW51IGludm9jYXRpb24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCmluZGV4IDhhNTBmNjUuLmNkNmMy
MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMDEtMjEgIEFkZW5pbHNv
biBDYXZhbGNhbnRpICA8Y2F2YWxjYW50aWlAZ21haWwuY29tPgorCisgICAgICAgIFtRdF1bV0sy
XSBTcGxpdCBRV2ViUGVybWlzc2lvblJlcXVlc3QgaW50byBRV2ViU2VjdXJpdHlPcmlnaW4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTczMjE1CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRXhwb3J0IHRoZSBz
ZWN1cml0eSBvcmlnaW4gY2xhc3MgdG8gUU1MLgorCisgICAgICAgICogZGVjbGFyYXRpdmUvcGx1
Z2luLmNwcDoKKyAgICAgICAgKFdlYktpdFFtbFBsdWdpbjo6cmVnaXN0ZXJUeXBlcyk6CisKIDIw
MTItMDEtMTcgIFZpYXRjaGVzbGF2IE9zdGFwZW5rbyAgPG9zdGFwZW5rby52aWF0Y2hlc2xhdkBu
b2tpYS5jb20+CiAKICAgICAgICAgW1F0XSBEZWJ1ZyBidWlsZCBmYWlscyB3aXRoIGRlYnVnIHF0
NQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9kZWNsYXJhdGl2ZS9wbHVnaW4uY3BwIGIv
U291cmNlL1dlYktpdC9xdC9kZWNsYXJhdGl2ZS9wbHVnaW4uY3BwCmluZGV4IDY0NjM4ZTQuLmUy
ZjBmYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvZGVjbGFyYXRpdmUvcGx1Z2luLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L2RlY2xhcmF0aXZlL3BsdWdpbi5jcHAKQEAgLTI1LDYg
KzI1LDcgQEAKICNpZiBkZWZpbmVkKEhBVkVfV0VCS0lUMikKICNpbmNsdWRlICJxcXVpY2t3ZWJw
YWdlX3AuaCIKICNpbmNsdWRlICJxcXVpY2t3ZWJ2aWV3X3AuaCIKKyNpbmNsdWRlICJxdHdlYnNl
Y3VyaXR5b3JpZ2luX3AuaCIKICNpbmNsdWRlICJxd2ViaWNvbmltYWdlcHJvdmlkZXJfcC5oIgog
I2luY2x1ZGUgInF3ZWJuYXZpZ2F0aW9ucmVxdWVzdF9wLmgiCiAjaW5jbHVkZSAicXdlYnBlcm1p
c3Npb25yZXF1ZXN0X3AuaCIKQEAgLTY1LDYgKzY2LDggQEAgcHVibGljOgogICAgICAgICBxbWxS
ZWdpc3RlclVuY3JlYXRhYmxlVHlwZTxRTmV0d29ya1JlcGx5Pih1cmksIDMsIDAsICJOZXR3b3Jr
UmVwbHkiLCBRT2JqZWN0Ojp0cigiQ2Fubm90IGNyZWF0ZSBzZXBhcmF0ZSBpbnN0YW5jZSBvZiBO
ZXR3b3JrUmVwbHkiKSk7CiAgICAgICAgIHFtbFJlZ2lzdGVyVW5jcmVhdGFibGVUeXBlPFFXZWJQ
ZXJtaXNzaW9uUmVxdWVzdD4odXJpLCAzLCAwLCAiUGVybWlzc2lvblJlcXVlc3QiLCBRT2JqZWN0
Ojp0cigiQ2Fubm90IGNyZWF0ZSBzZXBhcmF0ZSBpbnN0YW5jZSBvZiBQZXJtaXNzaW9uUmVxdWVz
dCIpKTsKICAgICAgICAgcW1sUmVnaXN0ZXJVbmNyZWF0YWJsZVR5cGU8UVdlYk5hdmlnYXRpb25S
ZXF1ZXN0Pih1cmksIDMsIDAsICJOYXZpZ2F0aW9uUmVxdWVzdCIsIFFPYmplY3Q6OnRyKCJDYW5u
b3QgY3JlYXRlIHNlcGFyYXRlIGluc3RhbmNlIG9mIE5hdmlnYXRpb25SZXF1ZXN0IikpOworICAg
ICAgICBxbWxSZWdpc3RlclVuY3JlYXRhYmxlVHlwZTxRdFdlYlNlY3VyaXR5T3JpZ2luPih1cmks
IDMsIDAsICJTZWN1cml0eU9yaWdpbiIsIFFPYmplY3Q6OnRyKCJDYW5ub3QgY3JlYXRlIHNlcGFy
YXRlIGluc3RhbmNlIG9mIFNlY3VyaXR5T3JpZ2luIikpOworCiAjZW5kaWYKICAgICB9CiB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nCmluZGV4IGIxMWNmZmMuLjdhZjhhOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNyBA
QAorMjAxMi0wMS0yMSAgQWRlbmlsc29uIENhdmFsY2FudGkgIDxjYXZhbGNhbnRpaUBnbWFpbC5j
b20+CisKKyAgICAgICAgW1F0XVtXSzJdIFNwbGl0IFFXZWJQZXJtaXNzaW9uUmVxdWVzdCBpbnRv
IFFXZWJTZWN1cml0eU9yaWdpbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NzMyMTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBJbnRyb2R1Y2luZyBhIG5ldyBjbGFzcyB0byBleHBvc2Ugc2VjdXJpdHkgb3Jp
Z2luIGluZm9ybWF0aW9uLgorCisgICAgICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL3F0L3F0d2Vic2VjdXJpdHlvcmlnaW4uY3BwOiBBZGRlZC4KKyAgICAgICAgKFF0
V2ViU2VjdXJpdHlPcmlnaW46OmNvbnRhaW5zU2NoZW1lKToKKyAgICAgICAgKFF0V2ViU2VjdXJp
dHlPcmlnaW46OmlzTG9jYWxTY2hlbWUpOgorICAgICAgICAoUXRXZWJTZWN1cml0eU9yaWdpbjo6
UXRXZWJTZWN1cml0eU9yaWdpbik6CisgICAgICAgIChRdFdlYlNlY3VyaXR5T3JpZ2luOjp+UXRX
ZWJTZWN1cml0eU9yaWdpbik6CisgICAgICAgIChRdFdlYlNlY3VyaXR5T3JpZ2luOjpob3N0KToK
KyAgICAgICAgKFF0V2ViU2VjdXJpdHlPcmlnaW46OnNjaGVtZSk6CisgICAgICAgIChRdFdlYlNl
Y3VyaXR5T3JpZ2luOjpwYXRoKToKKyAgICAgICAgKFF0V2ViU2VjdXJpdHlPcmlnaW46OnBvcnQp
OgorICAgICAgICAoUXRXZWJTZWN1cml0eU9yaWdpbjo6dXJsKToKKyAgICAgICAgKFF0V2ViU2Vj
dXJpdHlPcmlnaW46OmFkZExvY2FsU2NoZW1lKToKKyAgICAgICAgKFF0V2ViU2VjdXJpdHlPcmln
aW46OnJlbW92ZUxvY2FsU2NoZW1lKToKKyAgICAgICAgKFF0V2ViU2VjdXJpdHlPcmlnaW46Omxv
Y2FsU2NoZW1lcyk6CisgICAgICAgIChRdFdlYlNlY3VyaXR5T3JpZ2luOjpjYW5BY2Nlc3MpOgor
ICAgICAgICAob3BlcmF0b3I8PCk6CisgICAgICAgIChvcGVyYXRvcj4+KToKKyAgICAgICAgKFF0
V2ViU2VjdXJpdHlPcmlnaW46OnNldFVybCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9x
dHdlYnNlY3VyaXR5b3JpZ2luX3AuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9x
dC9xd2VicGVybWlzc2lvbnJlcXVlc3QuY3BwOgorICAgICAgICAoUVdlYlBlcm1pc3Npb25SZXF1
ZXN0UHJpdmF0ZTo6UVdlYlBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZSk6CisgICAgICAgIChRV2Vi
UGVybWlzc2lvblJlcXVlc3Q6OnNlY3VyaXR5T3JpZ2luKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL3F0L3F3ZWJwZXJtaXNzaW9ucmVxdWVzdF9wLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9xdC90ZXN0cy9xbWx0ZXN0cy9xbWx0ZXN0cy5wcm86CisKIDIwMTItMDEtMjEgIFRpbW90aHkg
SGF0Y2hlciAgPHRpbW90aHlAYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2UgV2ViS2l0MiByZW1l
bWJlciB0aGUgaGVpZ2h0IG9mIHRoZSBXZWIgSW5zcGVjdG9yIHdoZW4gaXQgaXMgZG9ja2VkLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJLaXQyL1Rh
cmdldC5wcmkKaW5kZXggNWVlMjc5Ny4uNDc3YmVmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpCkBAIC0xNzMsNiAr
MTczLDcgQEAgSEVBREVSUyArPSBcCiAgICAgVUlQcm9jZXNzL0FQSS9xdC9xd2ViZG93bmxvYWRp
dGVtX3AuaCBcCiAgICAgVUlQcm9jZXNzL0FQSS9xdC9xd2ViZG93bmxvYWRpdGVtX3BfcC5oIFwK
ICAgICBVSVByb2Nlc3MvQVBJL3F0L3F3ZWJwZXJtaXNzaW9ucmVxdWVzdF9wLmggXAorICAgIFVJ
UHJvY2Vzcy9BUEkvcXQvcXR3ZWJzZWN1cml0eW9yaWdpbl9wLmggXAogICAgIFVJUHJvY2Vzcy9B
UEkvcXQvcXdlYm5hdmlnYXRpb25yZXF1ZXN0X3AuaCBcCiAgICAgVUlQcm9jZXNzL0FQSS9xdC9x
cXVpY2t3ZWJwYWdlX3AuaCBcCiAgICAgVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJwYWdlX3Bf
cC5oIFwKQEAgLTUwMSw2ICs1MDIsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBVSVByb2Nlc3MvQVBJ
L2NwcC9xdC9XS1VSTFF0LmNwcCBcCiAgICAgVUlQcm9jZXNzL0FQSS9xdC9xd2ViZG93bmxvYWRp
dGVtLmNwcCBcCiAgICAgVUlQcm9jZXNzL0FQSS9xdC9xd2VicGVybWlzc2lvbnJlcXVlc3QuY3Bw
IFwKKyAgICBVSVByb2Nlc3MvQVBJL3F0L3F0d2Vic2VjdXJpdHlvcmlnaW4uY3BwIFwKICAgICBV
SVByb2Nlc3MvQVBJL3F0L3F3ZWJuYXZpZ2F0aW9ucmVxdWVzdC5jcHAgXAogICAgIFVJUHJvY2Vz
cy9BUEkvcXQvcXF1aWNrd2VicGFnZS5jcHAgXAogICAgIFVJUHJvY2Vzcy9BUEkvcXQvcXdlYm5h
dmlnYXRpb25oaXN0b3J5LmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL3F0L3F0d2Vic2VjdXJpdHlvcmlnaW4uY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9xdC9xdHdlYnNlY3VyaXR5b3JpZ2luLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi41MmFmMDA3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9xdC9xdHdlYnNlY3VyaXR5b3JpZ2luLmNwcApAQCAtMCwwICsxLDE1NyBA
QAorLyoKKyAgICBDb3B5cmlnaHQgKEMpIDIwMTIgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0
cyBzdWJzaWRpYXJ5KC1pZXMpCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg
eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1
Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJz
aW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp
b24uCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp
dCB3aWxsIGJlIHVzZWZ1bCwKKyAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg
ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICAgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxk
IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlCisgICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5H
LkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
LCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICAgIEJvc3RvbiwgTUEg
MDIxMTAtMTMwMSwgVVNBLgorKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW5jbHVkZSAi
cXR3ZWJzZWN1cml0eW9yaWdpbl9wLmgiCisKKyNpbmNsdWRlIDxLVVJMLmg+CisjaW5jbHVkZSA8
UXRDb3JlL1FGaWxlSW5mbz4KKyNpbmNsdWRlIDxRdENvcmUvUVN0cmluZ0xpc3Q+CisjaW5jbHVk
ZSA8U2NoZW1lUmVnaXN0cnkuaD4KKyNpbmNsdWRlIDxTZWN1cml0eU9yaWdpbi5oPgorI2luY2x1
ZGUgPFdlYktpdDIvV0tCYXNlLmg+CisjaW5jbHVkZSA8V2ViS2l0Mi9XS1JldGFpblB0ci5oPgor
I2luY2x1ZGUgPFdlYktpdDIvV0tTZWN1cml0eU9yaWdpbi5oPgorCit1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKKworCitib29sIFF0V2ViU2VjdXJpdHlPcmlnaW46OmNvbnRhaW5zU2NoZW1lKGNv
bnN0IFFTdHJpbmcmIHNjaGVtZSkKK3sKKyAgICBjb25zdCBVUkxTY2hlbWVzTWFwJiBtYXAgPSBT
Y2hlbWVSZWdpc3RyeTo6bG9jYWxTY2hlbWVzKCk7CisgICAgcmV0dXJuIG1hcC5jb250YWlucyhz
Y2hlbWUpOworfQorCitib29sIFF0V2ViU2VjdXJpdHlPcmlnaW46OmlzTG9jYWxTY2hlbWUoY29u
c3QgUVN0cmluZyYgc2NoZW1lKQoreworICAgIHJldHVybiAoc2NoZW1lID09IFFTdHJpbmc6OmZy
b21VdGY4KCJxcmMiKSkgPyB0cnVlIDogKHNjaGVtZSA9PSBRU3RyaW5nOjpmcm9tVXRmOCgiZmls
ZSIpKTsKK30KKworUXRXZWJTZWN1cml0eU9yaWdpbjo6UXRXZWJTZWN1cml0eU9yaWdpbihjb25z
dCBRVXJsJiB1cmwsIFFPYmplY3QqIHBhcmVudCkKKyAgICA6IFFPYmplY3QocGFyZW50KQorewor
CisgICAgbV91cmwuc2V0U2NoZW1lKHVybC5zY2hlbWUoKSk7CisgICAgaWYgKHVybC5zY2hlbWUo
KSA9PSBRTGF0aW4xU3RyaW5nKCJkYXRhIikpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChp
c0xvY2FsU2NoZW1lKHVybC5zY2hlbWUoKSkpIHsKKyAgICAgICAgLy8gV2Ugc3RvcmUgdGhlIGNh
bm5vbmljYWwgcGF0aCwgaWUuIHRoZSBhYnNvbHV0ZSBwYXRoICp3aXRob3V0KiBzeW1ib2xpYwor
ICAgICAgICAvLyBsaW5rcyBvciByZWR1bmRhbnQgIi4iIG9yICIuLiIgZWxlbWVudHMuCisgICAg
ICAgIG1fdXJsLnNldFBhdGgoUUZpbGVJbmZvKHVybC5wYXRoKCkpLmNhbm9uaWNhbEZpbGVQYXRo
KCkpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbV91cmwuc2V0SG9zdCh1cmwuaG9z
dCgpKTsKK30KKworUXRXZWJTZWN1cml0eU9yaWdpbjo6flF0V2ViU2VjdXJpdHlPcmlnaW4oKQor
eworfQorCitRU3RyaW5nIFF0V2ViU2VjdXJpdHlPcmlnaW46Omhvc3QoKSBjb25zdAoreworICAg
IHJldHVybiBtX3VybC5ob3N0KCk7Cit9CisKK1FTdHJpbmcgUXRXZWJTZWN1cml0eU9yaWdpbjo6
c2NoZW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV91cmwuc2NoZW1lKCk7Cit9CisKK1FTdHJp
bmcgUXRXZWJTZWN1cml0eU9yaWdpbjo6cGF0aCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fdXJs
LnBhdGgoKTsKK30KKworaW50IFF0V2ViU2VjdXJpdHlPcmlnaW46OnBvcnQoKSBjb25zdAorewor
ICAgIHJldHVybiBtX3VybC5wb3J0KCk7Cit9CisKK1FVcmwgUXRXZWJTZWN1cml0eU9yaWdpbjo6
dXJsKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV91cmw7Cit9CisKK3ZvaWQgUXRXZWJTZWN1cml0
eU9yaWdpbjo6YWRkTG9jYWxTY2hlbWUoY29uc3QgUVN0cmluZyYgc2NoZW1lKQoreworICAgIGlm
IChjb250YWluc1NjaGVtZShzY2hlbWUpKQorICAgICAgICByZXR1cm47CisKKyAgICBTY2hlbWVS
ZWdpc3RyeTo6cmVnaXN0ZXJVUkxTY2hlbWVBc0xvY2FsKHNjaGVtZSk7Cit9CisKK3ZvaWQgUXRX
ZWJTZWN1cml0eU9yaWdpbjo6cmVtb3ZlTG9jYWxTY2hlbWUoY29uc3QgUVN0cmluZyYgc2NoZW1l
KQoreworICAgIC8vIFlvdSBjYW5ub3QgcmVtb3ZlIGZpbGU6CisgICAgaWYgKHNjaGVtZSA9PSBR
TGF0aW4xU3RyaW5nKCJmaWxlIikpCisgICAgICAgIHJldHVybjsKKworICAgIFNjaGVtZVJlZ2lz
dHJ5OjpyZW1vdmVVUkxTY2hlbWVSZWdpc3RlcmVkQXNMb2NhbChzY2hlbWUpOworfQorCitRU3Ry
aW5nTGlzdCBRdFdlYlNlY3VyaXR5T3JpZ2luOjpsb2NhbFNjaGVtZXMoKQoreworICAgIFFTdHJp
bmdMaXN0IHNjaGVtZXM7CisgICAgY29uc3QgVVJMU2NoZW1lc01hcCYgbWFwID0gU2NoZW1lUmVn
aXN0cnk6OmxvY2FsU2NoZW1lcygpOworICAgIFVSTFNjaGVtZXNNYXA6OmNvbnN0X2l0ZXJhdG9y
IGVuZCA9IG1hcC5lbmQoKTsKKyAgICBmb3IgKFVSTFNjaGVtZXNNYXA6OmNvbnN0X2l0ZXJhdG9y
IGl0ID0gbWFwLmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkgeworICAgICAgICBjb25zdCBRU3Ry
aW5nIHNjaGVtZSA9ICppdDsKKyAgICAgICAgc2NoZW1lcy5hcHBlbmQoc2NoZW1lKTsKKyAgICB9
CisKKyAgICByZXR1cm4gc2NoZW1lczsKK30KKworYm9vbCBRdFdlYlNlY3VyaXR5T3JpZ2luOjpj
YW5BY2Nlc3MoY29uc3QgUVVybCYgYW5vdGhlclVybCwgT3JpZ2luUG9saWN5RmxhZ3MgZmxhZ3Mp
Cit7CisgICAgaWYgKHNjaGVtZSgpID09IFFMYXRpbjFTdHJpbmcoImRhdGEiKSkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworCisgICAgaWYgKGNvbnRhaW5zU2NoZW1lKG1fdXJsLnNjaGVtZSgpKSkg
eworICAgICAgICBpZiAoY29udGFpbnNTY2hlbWUoYW5vdGhlclVybC5zY2hlbWUoKSkgJiYgKGZs
YWdzICYgTG9jYWxDb250ZW50SGFzU3lzdGVtTG9jYWxBY2Nlc3MpKQorICAgICAgICAgICAgcmV0
dXJuIHRydWU7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJldHVybiBtX3VybC5wYXRoKCkg
PT0gUUZpbGVJbmZvKG1fdXJsLnBhdGgoKSkuY2Fub25pY2FsRmlsZVBhdGgoKTsKKyAgICB9CisK
KyAgICByZXR1cm4gbV91cmwuc2NoZW1lKCkgPT0gYW5vdGhlclVybC5zY2hlbWUoKSAmJiBtX3Vy
bC5ob3N0KCkgPT0gYW5vdGhlclVybC5ob3N0KCkgJiYgbV91cmwucG9ydCgpID09IGFub3RoZXJV
cmwucG9ydCgpOworfQorCitRRGF0YVN0cmVhbSYgb3BlcmF0b3I8PChRRGF0YVN0cmVhbSYgb3V0
LCBjb25zdCBRdFdlYlNlY3VyaXR5T3JpZ2luICZvcmlnaW4pCit7CisgICAgLy8gRklYTUU6IE1p
Z2h0IG5lZWQgc29tZSB2ZXJzaW9uaW5nLgorICAgIG91dCA8PCAob3JpZ2luLnVybCgpLnRvRW5j
b2RlZCgpLmRhdGEoKSk7CisgICAgcmV0dXJuIG91dDsKK30KKworUURhdGFTdHJlYW0mIG9wZXJh
dG9yPj4oUURhdGFTdHJlYW0mIGluLCBRdFdlYlNlY3VyaXR5T3JpZ2luJiBvcmlnaW4pCit7Cisg
ICAgLy8gRklYTUU6IE1pZ2h0IG5lZWQgc29tZSB2ZXJzaW9uaW5nLgorICAgIGNoYXIqIHVybCA9
IG9yaWdpbi51cmwoKS50b0VuY29kZWQoKS5kYXRhKCk7CisgICAgaW4gPj4gdXJsOworICAgIHJl
dHVybiBpbjsKK30KKwordm9pZCBRdFdlYlNlY3VyaXR5T3JpZ2luOjpzZXRVcmwoY29uc3QgUVVy
bCYgdXJsKQoreworICAgIG1fdXJsID0gdXJsOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9xdC9xdHdlYnNlY3VyaXR5b3JpZ2luX3AuaCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXR3ZWJzZWN1cml0eW9yaWdpbl9wLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2ZjMjkwNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXR3ZWJzZWN1cml0eW9yaWdpbl9wLmgKQEAgLTAs
MCArMSw3MSBAQAorLyoKKyAgICBDb3B5cmlnaHQgKEMpIDIwMTIgTm9raWEgQ29ycG9yYXRpb24g
YW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICAgbW9kaWZ5IGl0IHVu
ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAgICBMaWNl
bnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIK
KyAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxh
dGVyIHZlcnNpb24uCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhv
cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7
IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgIE1FUkNIQU5UQUJJTElU
WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICAg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICBZ
b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlCisgICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmls
ZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICAgIEJv
c3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorKi8KKyNpZm5kZWYgcXR3ZWJzZWN1cml0eW9yaWdp
bl9wX2gKKyNkZWZpbmUgcXR3ZWJzZWN1cml0eW9yaWdpbl9wX2gKKworI2luY2x1ZGUgInF3ZWJr
aXRnbG9iYWwuaCIKKworI2luY2x1ZGUgPFF0Q29yZS9RRGF0YVN0cmVhbT4KKyNpbmNsdWRlIDxR
dENvcmUvUU9iamVjdD4KKyNpbmNsdWRlIDxRdENvcmUvUVN0cmluZz4KKyNpbmNsdWRlIDxRdENv
cmUvUVVybD4KKyNpbmNsdWRlIDxRdENvcmUvcXNoYXJlZGRhdGEuaD4KKworY2xhc3MgUVdFQktJ
VF9FWFBPUlQgUXRXZWJTZWN1cml0eU9yaWdpbiA6IHB1YmxpYyBRT2JqZWN0IHsKKyAgICBRX09C
SkVDVAorICAgIFFfUFJPUEVSVFkoUVN0cmluZyBzY2hlbWUgUkVBRCBzY2hlbWUgQ09OU1RBTlQp
CisgICAgUV9QUk9QRVJUWShRU3RyaW5nIGhvc3QgUkVBRCBob3N0IENPTlNUQU5UKQorICAgIFFf
UFJPUEVSVFkoaW50IHBvcnQgUkVBRCBwb3J0IENPTlNUQU5UKQorICAgIFFfUFJPUEVSVFkoUVN0
cmluZyBwYXRoIFJFQUQgcGF0aCBDT05TVEFOVCkKKyAgICBRX1BST1BFUlRZKFFVcmwgdXJsIFJF
QUQgdXJsIENPTlNUQU5UKQorCitwdWJsaWM6CisgICAgUXRXZWJTZWN1cml0eU9yaWdpbihjb25z
dCBRVXJsJiB1cmwsIFFPYmplY3QqIHBhcmVudCA9IDApOworICAgIHZpcnR1YWwgflF0V2ViU2Vj
dXJpdHlPcmlnaW4oKTsKKworICAgIFFTdHJpbmcgc2NoZW1lKCkgY29uc3Q7CisgICAgUVN0cmlu
ZyBob3N0KCkgY29uc3Q7CisgICAgaW50IHBvcnQoKSBjb25zdDsKKyAgICBRU3RyaW5nIHBhdGgo
KSBjb25zdDsKKyAgICBRVXJsIHVybCgpIGNvbnN0OworCisgICAgc3RhdGljIHZvaWQgYWRkTG9j
YWxTY2hlbWUoY29uc3QgUVN0cmluZyYgc2NoZW1lKTsKKyAgICBzdGF0aWMgdm9pZCByZW1vdmVM
b2NhbFNjaGVtZShjb25zdCBRU3RyaW5nJiBzY2hlbWUpOworICAgIHN0YXRpYyBRU3RyaW5nTGlz
dCBsb2NhbFNjaGVtZXMoKTsKKworICAgIHZvaWQgc2V0VXJsKGNvbnN0IFFVcmwmKTsKKworICAg
IGVudW0gT3JpZ2luUG9saWN5RmxhZ3MgeworICAgICAgICBDb250ZW50SGFzU2FtZU9yaWdpbkFj
Y2VzcyA9IDB4MCwKKyAgICAgICAgTG9jYWxDb250ZW50SGFzUmVtb3RlQWNjZXNzID0gMHgxLAor
ICAgICAgICBMb2NhbENvbnRlbnRIYXNTeXN0ZW1Mb2NhbEFjY2VzcyA9IDB4MgorICAgIH07CisK
KyAgICBib29sIGNhbkFjY2Vzcyhjb25zdCBRVXJsJiB1cmwsIE9yaWdpblBvbGljeUZsYWdzIGZs
YWdzID0gQ29udGVudEhhc1NhbWVPcmlnaW5BY2Nlc3MpOworCitwcml2YXRlOgorICAgIHN0YXRp
YyBib29sIGNvbnRhaW5zU2NoZW1lKGNvbnN0IFFTdHJpbmcmKTsKKyAgICBib29sIGlzTG9jYWxT
Y2hlbWUoY29uc3QgUVN0cmluZyYpOworICAgIFFVcmwgbV91cmw7Cit9OworCitRRGF0YVN0cmVh
bSYgb3BlcmF0b3I8PChRRGF0YVN0cmVhbSYsIGNvbnN0IFF0V2ViU2VjdXJpdHlPcmlnaW4mKTsK
K1FEYXRhU3RyZWFtJiBvcGVyYXRvcj4+KFFEYXRhU3RyZWFtJiwgUXRXZWJTZWN1cml0eU9yaWdp
biYpOworCisjZW5kaWYgLy8gcXR3ZWJzZWN1cml0eW9yaWdpbl9wX2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnBlcm1pc3Npb25yZXF1ZXN0LmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnBlcm1pc3Npb25yZXF1ZXN0LmNw
cAppbmRleCAxNmE0Mzg1Li5kYTVhYmMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL3F0L3F3ZWJwZXJtaXNzaW9ucmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9xdC9xd2VicGVybWlzc2lvbnJlcXVlc3QuY3BwCkBAIC0zMiw5ICsz
MiwyMiBAQCBwdWJsaWM6CiAgICAgICAgIDogb3JpZ2luKHNlY3VyaXR5T3JpZ2luKQogICAgICAg
ICAsIHR5cGUoUVdlYlBlcm1pc3Npb25SZXF1ZXN0OjpHZW9sb2NhdGlvbikKICAgICAgICAgLCBy
ZXF1ZXN0KHBlcm1pc3Npb25SZXF1ZXN0KQorICAgICAgICAsIHNlY3VyaXR5SW5mbyhRVXJsKCks
IDApCiAgICAgICAgICwgYWxsb3coZmFsc2UpCiAgICAgeworCisgICAgICAgIFFVcmwgZGF0YTsK
KyAgICAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHVybCA9IGFkb3B0V0soV0tTZWN1cml0
eU9yaWdpbkNvcHlQcm90b2NvbChvcmlnaW4uZ2V0KCkpKTsKKyAgICAgICAgZGF0YS5zZXRTY2hl
bWUoV0tTdHJpbmdDb3B5UVN0cmluZyh1cmwuZ2V0KCkpKTsKKworICAgICAgICBXS1JldGFpblB0
cjxXS1N0cmluZ1JlZj4gaG9zdCA9IGFkb3B0V0soV0tTZWN1cml0eU9yaWdpbkNvcHlIb3N0KG9y
aWdpbi5nZXQoKSkpOworICAgICAgICBkYXRhLnNldEhvc3QoV0tTdHJpbmdDb3B5UVN0cmluZyho
b3N0LmdldCgpKSk7CisKKyAgICAgICAgZGF0YS5zZXRQb3J0KHN0YXRpY19jYXN0PGludD4oV0tT
ZWN1cml0eU9yaWdpbkdldFBvcnQob3JpZ2luLmdldCgpKSkpOworICAgICAgICBzZWN1cml0eUlu
Zm8uc2V0VXJsKGRhdGEpOworCiAgICAgfQorCiAgICAgflFXZWJQZXJtaXNzaW9uUmVxdWVzdFBy
aXZhdGUoKQogICAgIHsKICAgICB9CkBAIC00Miw2ICs1NSw3IEBAIHB1YmxpYzoKICAgICBXS1Jl
dGFpblB0cjxXS1NlY3VyaXR5T3JpZ2luUmVmPiBvcmlnaW47CiAgICAgUVdlYlBlcm1pc3Npb25S
ZXF1ZXN0OjpSZXF1ZXN0VHlwZSB0eXBlOwogICAgIFdLUmV0YWluUHRyPFdLR2VvbG9jYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdFJlZj4gcmVxdWVzdDsKKyAgICBRdFdlYlNlY3VyaXR5T3JpZ2luIHNl
Y3VyaXR5SW5mbzsKICAgICBib29sIGFsbG93OwogfTsKIApAQCAtODgsMTkgKzEwMiw4IEBAIGJv
b2wgUVdlYlBlcm1pc3Npb25SZXF1ZXN0OjphbGxvdygpIGNvbnN0CiAgICAgcmV0dXJuIGQtPmFs
bG93OwogfQogCi1RU3RyaW5nIFFXZWJQZXJtaXNzaW9uUmVxdWVzdDo6c2NoZW1lKCkgY29uc3QK
K1F0V2ViU2VjdXJpdHlPcmlnaW4qIFFXZWJQZXJtaXNzaW9uUmVxdWVzdDo6c2VjdXJpdHlPcmln
aW4oKQogewotICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiB1cmwgPSBhZG9wdFdLKFdLU2Vj
dXJpdHlPcmlnaW5Db3B5UHJvdG9jb2woZC0+b3JpZ2luLmdldCgpKSk7Ci0gICAgcmV0dXJuIFdL
U3RyaW5nQ29weVFTdHJpbmcodXJsLmdldCgpKTsKKyAgICByZXR1cm4gJihkLT5zZWN1cml0eUlu
Zm8pOwogfQogCi1RU3RyaW5nIFFXZWJQZXJtaXNzaW9uUmVxdWVzdDo6aG9zdCgpIGNvbnN0Ci17
Ci0gICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IG9yaWdpbiA9IGFkb3B0V0soV0tTZWN1cml0
eU9yaWdpbkNvcHlIb3N0KGQtPm9yaWdpbi5nZXQoKSkpOwotICAgIHJldHVybiBXS1N0cmluZ0Nv
cHlRU3RyaW5nKG9yaWdpbi5nZXQoKSk7Ci19Ci0KLWludCBRV2ViUGVybWlzc2lvblJlcXVlc3Q6
OnBvcnQoKSBjb25zdAotewotICAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQ+KFdLU2VjdXJpdHlP
cmlnaW5HZXRQb3J0KGQtPm9yaWdpbi5nZXQoKSkpOwotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2VicGVybWlzc2lvbnJlcXVlc3RfcC5oIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2VicGVybWlzc2lvbnJlcXVlc3RfcC5oCmluZGV4
IDU4MjRjNGMuLjMzYWZhOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvcXQvcXdlYnBlcm1pc3Npb25yZXF1ZXN0X3AuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL3F0L3F3ZWJwZXJtaXNzaW9ucmVxdWVzdF9wLmgKQEAgLTIwLDYgKzIwLDcgQEAK
ICNpZm5kZWYgcXdlYnBlcm1pc3Npb25yZXF1ZXN0X3BfaAogI2RlZmluZSBxd2VicGVybWlzc2lv
bnJlcXVlc3RfcF9oCiAKKyNpbmNsdWRlICJxdHdlYnNlY3VyaXR5b3JpZ2luX3AuaCIKICNpbmNs
dWRlICJxd2Via2l0Z2xvYmFsLmgiCiAKICNpbmNsdWRlIDxRdENvcmUvUU9iamVjdD4KQEAgLTMy
LDEwICszMyw4IEBAIGNsYXNzIFFXZWJQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGU7CiBjbGFzcyBR
V0VCS0lUX0VYUE9SVCBRV2ViUGVybWlzc2lvblJlcXVlc3QgOiBwdWJsaWMgUU9iamVjdCB7CiAg
ICAgUV9PQkpFQ1QKICAgICBRX1BST1BFUlRZKGJvb2wgYWxsb3cgUkVBRCBhbGxvdyBXUklURSBz
ZXRBbGxvdykKLSAgICBRX1BST1BFUlRZKFJlcXVlc3RUeXBlIHR5cGUgUkVBRCB0eXBlKQotICAg
IFFfUFJPUEVSVFkoUVN0cmluZyBzY2hlbWUgUkVBRCBzY2hlbWUpCi0gICAgUV9QUk9QRVJUWShR
U3RyaW5nIGhvc3QgUkVBRCBob3N0KQotICAgIFFfUFJPUEVSVFkoaW50IHBvcnQgUkVBRCBwb3J0
KQorICAgIFFfUFJPUEVSVFkoUmVxdWVzdFR5cGUgdHlwZSBSRUFEIHR5cGUgQ09OU1RBTlQpCisg
ICAgUV9QUk9QRVJUWShRdFdlYlNlY3VyaXR5T3JpZ2luKiBzZWN1cml0eU9yaWdpbiBSRUFEIHNl
Y3VyaXR5T3JpZ2luKQogICAgIFFfRU5VTVMoUmVxdWVzdFR5cGUpCiAKIHB1YmxpYzoKQEAgLTQ4
LDEyICs0NywxMCBAQCBwdWJsaWM6CiAKICAgICBSZXF1ZXN0VHlwZSB0eXBlKCkgY29uc3Q7CiAg
ICAgYm9vbCBhbGxvdygpIGNvbnN0OwotICAgIFFTdHJpbmcgc2NoZW1lKCkgY29uc3Q7Ci0gICAg
UVN0cmluZyBob3N0KCkgY29uc3Q7Ci0gICAgaW50IHBvcnQoKSBjb25zdDsKIAogcHVibGljIFFf
U0xPVFM6CiAgICAgdm9pZCBzZXRBbGxvdyhib29sKTsKKyAgICBRdFdlYlNlY3VyaXR5T3JpZ2lu
KiBzZWN1cml0eU9yaWdpbigpOwogCiBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBRV2ViUGVy
bWlzc2lvblJlcXVlc3RQcml2YXRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3L3RzdF9vcmlnaW4ucW1sIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3L3RzdF9vcmln
aW4ucW1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRjMzg5NWYKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRl
c3RzL1dlYlZpZXcvdHN0X29yaWdpbi5xbWwKQEAgLTAsMCArMSw0NCBAQAoraW1wb3J0IFF0UXVp
Y2sgMi4wCitpbXBvcnQgUXRUZXN0IDEuMAoraW1wb3J0IFF0V2ViS2l0IDMuMAoraW1wb3J0IFF0
V2ViS2l0LmV4cGVyaW1lbnRhbCAzLjAKKworV2ViVmlldyB7CisgICAgaWQ6IHdlYlZpZXcKKyAg
ICB3aWR0aDogMjAwCisgICAgaGVpZ2h0OiAyMDAKKworICAgIHByb3BlcnR5IGJvb2wgc3VjY2Vz
czogdHJ1ZQorICAgIHByb3BlcnR5IGludCBwb3J0OiAwCisgICAgcHJvcGVydHkgc3RyaW5nIHNj
aGVtZTogImZpbGUiCisKKyAgICBleHBlcmltZW50YWwub25QZXJtaXNzaW9uUmVxdWVzdGVkOiB7
CisgICAgICAgIGlmIChwZXJtaXNzaW9uLnNlY3VyaXR5T3JpZ2luLnBvcnQgIT0gd2ViVmlldy5w
b3J0KSB7CisgICAgICAgICAgICBjb25zb2xlLmxvZygiUG9ydCBpcyB3cm9uZyIpCisgICAgICAg
ICAgICB3ZWJWaWV3LnN1Y2Nlc3MgPSBmYWxzZQorICAgICAgICB9CisKKyAgICAgICAgaWYgKHBl
cm1pc3Npb24uc2VjdXJpdHlPcmlnaW4uc2NoZW1lICE9IHdlYlZpZXcuc2NoZW1lKSB7CisgICAg
ICAgICAgICBjb25zb2xlLmxvZygiU2NoZW1lIGlzIHdyb25nIikKKyAgICAgICAgICAgIHdlYlZp
ZXcuc3VjY2VzcyA9IGZhbHNlCisgICAgICAgIH0KKyAgICB9CisKKyAgICBUZXN0Q2FzZSB7Cisg
ICAgICAgIG5hbWU6ICJXZWJWaWV3U2VjdXJpdHlPcmlnaW4iCisKKyAgICAgICAgLy8gRGVsYXll
ZCB3aW5kb3dTaG93biB0byB3b3JrYXJvdW5kIHByb2JsZW1zIHdpdGggUXQ1IGluIGRlYnVnIG1v
ZGUuCisgICAgICAgIHdoZW46IGZhbHNlCisgICAgICAgIFRpbWVyIHsKKyAgICAgICAgICAgIHJ1
bm5pbmc6IHBhcmVudC53aW5kb3dTaG93bgorICAgICAgICAgICAgcmVwZWF0OiBmYWxzZQorICAg
ICAgICAgICAgaW50ZXJ2YWw6IDEKKyAgICAgICAgICAgIG9uVHJpZ2dlcmVkOiBwYXJlbnQud2hl
biA9IHRydWUKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIHRlc3RfcGVybWlzc2lvblJl
cXVlc3QoKSB7CisgICAgICAgICAgICB3ZWJWaWV3LmxvYWQoUXQucmVzb2x2ZWRVcmwoIi4uL2Nv
bW1vbi9nZW9sb2NhdGlvbi5odG1sIikpCisgICAgICAgICAgICBjb21wYXJlKHdlYlZpZXcuc3Vj
Y2VzcywgdHJ1ZSkKKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvcW1sdGVzdHMucHJvIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9xbWx0ZXN0cy5wcm8KaW5k
ZXggYzhjZTg3YTdmLi41MDgxOWMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL3FtbHRlc3RzLnBybworKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL3FtbHRlc3RzLnBybwpAQCAtMjksNCAr
MjksNSBAQCBPVEhFUl9GSUxFUyArPSBcCiAgICAgV2ViVmlldy90c3RfcHJlZmVyZW5jZXMucW1s
IFwKICAgICBXZWJWaWV3L3RzdF9wcm9wZXJ0aWVzLnFtbCBcCiAgICAgV2ViVmlldy90c3RfdGl0
bGVDaGFuZ2VkLnFtbCBcCi0gICAgV2ViVmlldy90c3RfYXBwbGljYXRpb25TY2hlbWUucW1sCisg
ICAgV2ViVmlldy90c3RfYXBwbGljYXRpb25TY2hlbWUucW1sIFwKKyAgICBXZWJWaWV3L3RzdF9v
cmlnaW4ucW1sCmRpZmYgLS1naXQgYS9Tb3VyY2UvcXR3ZWJraXQtZXhwb3J0Lm1hcCBiL1NvdXJj
ZS9xdHdlYmtpdC1leHBvcnQubWFwCmluZGV4IGJhMmUyZmIuLmJmMTM3NzcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9xdHdlYmtpdC1leHBvcnQubWFwCisrKyBiL1NvdXJjZS9xdHdlYmtpdC1leHBvcnQu
bWFwCkBAIC0xNTYsNyArMTU2LDkgQEAgcXdrXzEuMCB7CiAgICAgICAgIFFRdWlja05ldHdvcmtS
ZXF1ZXN0OjoqOwogICAgICAgICAqUVF1aWNrTmV0d29ya1JlcGx5OwogICAgICAgICBRUXVpY2tO
ZXR3b3JrUmVwbHk6Oio7Ci0KKyAgICAgICAgKlF0V2ViU2VjdXJpdHlPcmlnaW47CisgICAgICAg
IG5vbi12aXJ0dWFsP3RodW5rP3RvP1F0V2ViU2VjdXJpdHlPcmlnaW4qOworICAgICAgICBRdFdl
YlNlY3VyaXR5T3JpZ2luOjoqOwogCiAgICAgICAgICMgV2ViS2l0IDIgQyBBUEkgbWFuZ2xlZCBp
biBDKysKICAgICAgICAgV0tTdHJpbmdDb3B5UVN0cmluZyo7Ci0tIAoxLjcuNS40Cgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>123470</attachid>
            <date>2012-01-21 20:09:21 -0800</date>
            <delta_ts>2012-01-22 11:03:57 -0800</delta_ts>
            <desc>ChangeLog was missing the new qml test file</desc>
            <filename>origin_step10_cl.patch</filename>
            <type>text/plain</type>
            <size>19374</size>
            <attacher name="Adenilson Cavalcanti Silva">savagobr</attacher>
            
              <data encoding="base64">RnJvbSAzMDg1ZGUzMDAwM2IyMGE0YmY3ZTgxMDMxZWU4YWU0Njg3NGNkYjdhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBZGVuaWxzb24gQ2F2YWxjYW50aSA8Y2F2YWxjYW50aWlAZ21h
aWwuY29tPgpEYXRlOiBTdW4sIDIyIEphbiAyMDEyIDAwOjA2OjUyIC0wNDAwClN1YmplY3Q6IFtQ
QVRDSF0gUHJldmlvdXMgZml4ZWQgKHBsdXMgQ2hhbmdlTG9nKS4KClNpZ25lZC1vZmYtYnk6IEFk
ZW5pbHNvbiBDYXZhbGNhbnRpIDxjYXZhbGNhbnRpaUBnbWFpbC5jb20+Ci0tLQogQ2hhbmdlTG9n
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDExICsrCiBTb3Vy
Y2UvV2ViS2l0L3F0L0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTIgKysK
IFNvdXJjZS9XZWJLaXQvcXQvZGVjbGFyYXRpdmUvcGx1Z2luLmNwcCAgICAgICAgICAgIHwgICAg
MyArCiBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICB8
ICAgMzUgKysrKysKIFNvdXJjZS9XZWJLaXQyL1RhcmdldC5wcmkgICAgICAgICAgICAgICAgICAg
ICAgICAgIHwgICAgMiArCiAuLi4vVUlQcm9jZXNzL0FQSS9xdC9xdHdlYnNlY3VyaXR5b3JpZ2lu
LmNwcCAgICAgICB8ICAxNTcgKysrKysrKysrKysrKysrKysrKysKIC4uLi9VSVByb2Nlc3MvQVBJ
L3F0L3F0d2Vic2VjdXJpdHlvcmlnaW5fcC5oICAgICAgIHwgICA3MSArKysrKysrKysKIC4uLi9V
SVByb2Nlc3MvQVBJL3F0L3F3ZWJwZXJtaXNzaW9ucmVxdWVzdC5jcHAgICAgIHwgICAyOSArKy0t
CiAuLi4vVUlQcm9jZXNzL0FQSS9xdC9xd2VicGVybWlzc2lvbnJlcXVlc3RfcC5oICAgICB8ICAg
MTEgKy0KIC4uLi9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvV2ViVmlldy90c3Rfb3JpZ2luLnFtbCAg
IHwgICA0NCArKysrKysKIC4uLi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL3FtbHRl
c3RzLnBybyAgIHwgICAgMyArLQogU291cmNlL3F0d2Via2l0LWV4cG9ydC5tYXAgICAgICAgICAg
ICAgICAgICAgICAgICAgfCAgICA0ICstCiAxMiBmaWxlcyBjaGFuZ2VkLCAzNjAgaW5zZXJ0aW9u
cygrKSwgMjIgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9xdC9xdHdlYnNlY3VyaXR5b3JpZ2luLmNwcAogY3JlYXRlIG1vZGUgMTAw
NjQ0IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXR3ZWJzZWN1cml0eW9yaWdpbl9w
LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rl
c3RzL3FtbHRlc3RzL1dlYlZpZXcvdHN0X29yaWdpbi5xbWwKCmRpZmYgLS1naXQgYS9DaGFuZ2VM
b2cgYi9DaGFuZ2VMb2cKaW5kZXggMzNmNGRkNi4uMWE2MGM5NCAxMDA2NDQKLS0tIGEvQ2hhbmdl
TG9nCisrKyBiL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEyLTAxLTIxICBBZGVuaWxz
b24gQ2F2YWxjYW50aSAgPGNhdmFsY2FudGlpQGdtYWlsLmNvbT4KKworICAgICAgICBbUXRdW1dL
Ml0gU3BsaXQgUVdlYlBlcm1pc3Npb25SZXF1ZXN0IGludG8gUVdlYlNlY3VyaXR5T3JpZ2luCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzIxNQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEludHJvZHVjaW5n
IGEgbmV3IGNsYXNzIHRvIGV4cG9zZSBzZWN1cml0eSBvcmlnaW4gaW5mb3JtYXRpb24uCisKKyAg
ICAgICAgKiBTb3VyY2UvcXR3ZWJraXQtZXhwb3J0Lm1hcDoKKwogMjAxMi0wMS0yMCAgTWFyYy1B
bmRyZSBEZWNvc3RlICA8bWFkQGNocm9taXVtLm9yZz4KIAogICAgICAgICBBZGQgcHJvcGVyIG9m
ZnNldCB0byBwb3NpdGlvbiByaWdodCBjbGljayB0byBzaW11bGF0ZSBhIGNvbnRleHQgbWVudSBp
bnZvY2F0aW9uLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L3F0L0NoYW5nZUxvZwppbmRleCA4YTUwZjY1Li5jZDZjMjE5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTAxLTIxICBBZGVuaWxzb24gQ2F2YWxjYW50aSAg
PGNhdmFsY2FudGlpQGdtYWlsLmNvbT4KKworICAgICAgICBbUXRdW1dLMl0gU3BsaXQgUVdlYlBl
cm1pc3Npb25SZXF1ZXN0IGludG8gUVdlYlNlY3VyaXR5T3JpZ2luCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzIxNQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEV4cG9ydCB0aGUgc2VjdXJpdHkgb3JpZ2lu
IGNsYXNzIHRvIFFNTC4KKworICAgICAgICAqIGRlY2xhcmF0aXZlL3BsdWdpbi5jcHA6CisgICAg
ICAgIChXZWJLaXRRbWxQbHVnaW46OnJlZ2lzdGVyVHlwZXMpOgorCiAyMDEyLTAxLTE3ICBWaWF0
Y2hlc2xhdiBPc3RhcGVua28gIDxvc3RhcGVua28udmlhdGNoZXNsYXZAbm9raWEuY29tPgogCiAg
ICAgICAgIFtRdF0gRGVidWcgYnVpbGQgZmFpbHMgd2l0aCBkZWJ1ZyBxdDUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvcXQvZGVjbGFyYXRpdmUvcGx1Z2luLmNwcCBiL1NvdXJjZS9XZWJLaXQv
cXQvZGVjbGFyYXRpdmUvcGx1Z2luLmNwcAppbmRleCA2NDYzOGU0Li5lMmYwZmIzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L3F0L2RlY2xhcmF0aXZlL3BsdWdpbi5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9xdC9kZWNsYXJhdGl2ZS9wbHVnaW4uY3BwCkBAIC0yNSw2ICsyNSw3IEBACiAjaWYg
ZGVmaW5lZChIQVZFX1dFQktJVDIpCiAjaW5jbHVkZSAicXF1aWNrd2VicGFnZV9wLmgiCiAjaW5j
bHVkZSAicXF1aWNrd2Vidmlld19wLmgiCisjaW5jbHVkZSAicXR3ZWJzZWN1cml0eW9yaWdpbl9w
LmgiCiAjaW5jbHVkZSAicXdlYmljb25pbWFnZXByb3ZpZGVyX3AuaCIKICNpbmNsdWRlICJxd2Vi
bmF2aWdhdGlvbnJlcXVlc3RfcC5oIgogI2luY2x1ZGUgInF3ZWJwZXJtaXNzaW9ucmVxdWVzdF9w
LmgiCkBAIC02NSw2ICs2Niw4IEBAIHB1YmxpYzoKICAgICAgICAgcW1sUmVnaXN0ZXJVbmNyZWF0
YWJsZVR5cGU8UU5ldHdvcmtSZXBseT4odXJpLCAzLCAwLCAiTmV0d29ya1JlcGx5IiwgUU9iamVj
dDo6dHIoIkNhbm5vdCBjcmVhdGUgc2VwYXJhdGUgaW5zdGFuY2Ugb2YgTmV0d29ya1JlcGx5Iikp
OwogICAgICAgICBxbWxSZWdpc3RlclVuY3JlYXRhYmxlVHlwZTxRV2ViUGVybWlzc2lvblJlcXVl
c3Q+KHVyaSwgMywgMCwgIlBlcm1pc3Npb25SZXF1ZXN0IiwgUU9iamVjdDo6dHIoIkNhbm5vdCBj
cmVhdGUgc2VwYXJhdGUgaW5zdGFuY2Ugb2YgUGVybWlzc2lvblJlcXVlc3QiKSk7CiAgICAgICAg
IHFtbFJlZ2lzdGVyVW5jcmVhdGFibGVUeXBlPFFXZWJOYXZpZ2F0aW9uUmVxdWVzdD4odXJpLCAz
LCAwLCAiTmF2aWdhdGlvblJlcXVlc3QiLCBRT2JqZWN0Ojp0cigiQ2Fubm90IGNyZWF0ZSBzZXBh
cmF0ZSBpbnN0YW5jZSBvZiBOYXZpZ2F0aW9uUmVxdWVzdCIpKTsKKyAgICAgICAgcW1sUmVnaXN0
ZXJVbmNyZWF0YWJsZVR5cGU8UXRXZWJTZWN1cml0eU9yaWdpbj4odXJpLCAzLCAwLCAiU2VjdXJp
dHlPcmlnaW4iLCBRT2JqZWN0Ojp0cigiQ2Fubm90IGNyZWF0ZSBzZXBhcmF0ZSBpbnN0YW5jZSBv
ZiBTZWN1cml0eU9yaWdpbiIpKTsKKwogI2VuZGlmCiAgICAgfQogfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBi
MTFjZmZjLi40NDE5MzczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzggQEAKKzIwMTItMDEtMjEg
IEFkZW5pbHNvbiBDYXZhbGNhbnRpICA8Y2F2YWxjYW50aWlAZ21haWwuY29tPgorCisgICAgICAg
IFtRdF1bV0syXSBTcGxpdCBRV2ViUGVybWlzc2lvblJlcXVlc3QgaW50byBRV2ViU2VjdXJpdHlP
cmlnaW4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcz
MjE1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW50
cm9kdWNpbmcgYSBuZXcgY2xhc3MgdG8gZXhwb3NlIHNlY3VyaXR5IG9yaWdpbiBpbmZvcm1hdGlv
bi4KKworICAgICAgICAqIFRhcmdldC5wcmk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9x
dHdlYnNlY3VyaXR5b3JpZ2luLmNwcDogQWRkZWQuCisgICAgICAgIChRdFdlYlNlY3VyaXR5T3Jp
Z2luOjpjb250YWluc1NjaGVtZSk6CisgICAgICAgIChRdFdlYlNlY3VyaXR5T3JpZ2luOjppc0xv
Y2FsU2NoZW1lKToKKyAgICAgICAgKFF0V2ViU2VjdXJpdHlPcmlnaW46OlF0V2ViU2VjdXJpdHlP
cmlnaW4pOgorICAgICAgICAoUXRXZWJTZWN1cml0eU9yaWdpbjo6flF0V2ViU2VjdXJpdHlPcmln
aW4pOgorICAgICAgICAoUXRXZWJTZWN1cml0eU9yaWdpbjo6aG9zdCk6CisgICAgICAgIChRdFdl
YlNlY3VyaXR5T3JpZ2luOjpzY2hlbWUpOgorICAgICAgICAoUXRXZWJTZWN1cml0eU9yaWdpbjo6
cGF0aCk6CisgICAgICAgIChRdFdlYlNlY3VyaXR5T3JpZ2luOjpwb3J0KToKKyAgICAgICAgKFF0
V2ViU2VjdXJpdHlPcmlnaW46OnVybCk6CisgICAgICAgIChRdFdlYlNlY3VyaXR5T3JpZ2luOjph
ZGRMb2NhbFNjaGVtZSk6CisgICAgICAgIChRdFdlYlNlY3VyaXR5T3JpZ2luOjpyZW1vdmVMb2Nh
bFNjaGVtZSk6CisgICAgICAgIChRdFdlYlNlY3VyaXR5T3JpZ2luOjpsb2NhbFNjaGVtZXMpOgor
ICAgICAgICAoUXRXZWJTZWN1cml0eU9yaWdpbjo6Y2FuQWNjZXNzKToKKyAgICAgICAgKG9wZXJh
dG9yPDwpOgorICAgICAgICAob3BlcmF0b3I+Pik6CisgICAgICAgIChRdFdlYlNlY3VyaXR5T3Jp
Z2luOjpzZXRVcmwpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXR3ZWJzZWN1cml0eW9y
aWdpbl9wLmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVz
dHMvV2ViVmlldy90c3Rfb3JpZ2luLnFtbDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9xdC9xd2VicGVybWlzc2lvbnJlcXVlc3QuY3BwOgorICAgICAgICAoUVdlYlBlcm1pc3Npb25S
ZXF1ZXN0UHJpdmF0ZTo6UVdlYlBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZSk6CisgICAgICAgIChR
V2ViUGVybWlzc2lvblJlcXVlc3Q6OnNlY3VyaXR5T3JpZ2luKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL3F0L3F3ZWJwZXJtaXNzaW9ucmVxdWVzdF9wLmg6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9xbWx0ZXN0cy5wcm86CisKIDIwMTItMDEtMjEgIFRpbW90
aHkgSGF0Y2hlciAgPHRpbW90aHlAYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2UgV2ViS2l0MiBy
ZW1lbWJlciB0aGUgaGVpZ2h0IG9mIHRoZSBXZWIgSW5zcGVjdG9yIHdoZW4gaXQgaXMgZG9ja2Vk
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJLaXQy
L1RhcmdldC5wcmkKaW5kZXggNWVlMjc5Ny4uNDc3YmVmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpCkBAIC0xNzMs
NiArMTczLDcgQEAgSEVBREVSUyArPSBcCiAgICAgVUlQcm9jZXNzL0FQSS9xdC9xd2ViZG93bmxv
YWRpdGVtX3AuaCBcCiAgICAgVUlQcm9jZXNzL0FQSS9xdC9xd2ViZG93bmxvYWRpdGVtX3BfcC5o
IFwKICAgICBVSVByb2Nlc3MvQVBJL3F0L3F3ZWJwZXJtaXNzaW9ucmVxdWVzdF9wLmggXAorICAg
IFVJUHJvY2Vzcy9BUEkvcXQvcXR3ZWJzZWN1cml0eW9yaWdpbl9wLmggXAogICAgIFVJUHJvY2Vz
cy9BUEkvcXQvcXdlYm5hdmlnYXRpb25yZXF1ZXN0X3AuaCBcCiAgICAgVUlQcm9jZXNzL0FQSS9x
dC9xcXVpY2t3ZWJwYWdlX3AuaCBcCiAgICAgVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJwYWdl
X3BfcC5oIFwKQEAgLTUwMSw2ICs1MDIsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBVSVByb2Nlc3Mv
QVBJL2NwcC9xdC9XS1VSTFF0LmNwcCBcCiAgICAgVUlQcm9jZXNzL0FQSS9xdC9xd2ViZG93bmxv
YWRpdGVtLmNwcCBcCiAgICAgVUlQcm9jZXNzL0FQSS9xdC9xd2VicGVybWlzc2lvbnJlcXVlc3Qu
Y3BwIFwKKyAgICBVSVByb2Nlc3MvQVBJL3F0L3F0d2Vic2VjdXJpdHlvcmlnaW4uY3BwIFwKICAg
ICBVSVByb2Nlc3MvQVBJL3F0L3F3ZWJuYXZpZ2F0aW9ucmVxdWVzdC5jcHAgXAogICAgIFVJUHJv
Y2Vzcy9BUEkvcXQvcXF1aWNrd2VicGFnZS5jcHAgXAogICAgIFVJUHJvY2Vzcy9BUEkvcXQvcXdl
Ym5hdmlnYXRpb25oaXN0b3J5LmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL3F0L3F0d2Vic2VjdXJpdHlvcmlnaW4uY3BwIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9xdC9xdHdlYnNlY3VyaXR5b3JpZ2luLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi41MmFmMDA3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9xdC9xdHdlYnNlY3VyaXR5b3JpZ2luLmNwcApAQCAtMCwwICsxLDE1
NyBAQAorLyoKKyAgICBDb3B5cmlnaHQgKEMpIDIwMTIgTm9raWEgQ29ycG9yYXRpb24gYW5kL29y
IGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICAgbW9kaWZ5IGl0IHVuZGVyIHRo
ZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNlIGFz
IHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2
ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl
cnNpb24uCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh
dCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv
dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgIE1FUkNIQU5UQUJJTElUWSBvciBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICAgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hv
dWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlCisgICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZ
SU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICAgIEJvc3Rvbiwg
TUEgMDIxMTAtMTMwMSwgVVNBLgorKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW5jbHVk
ZSAicXR3ZWJzZWN1cml0eW9yaWdpbl9wLmgiCisKKyNpbmNsdWRlIDxLVVJMLmg+CisjaW5jbHVk
ZSA8UXRDb3JlL1FGaWxlSW5mbz4KKyNpbmNsdWRlIDxRdENvcmUvUVN0cmluZ0xpc3Q+CisjaW5j
bHVkZSA8U2NoZW1lUmVnaXN0cnkuaD4KKyNpbmNsdWRlIDxTZWN1cml0eU9yaWdpbi5oPgorI2lu
Y2x1ZGUgPFdlYktpdDIvV0tCYXNlLmg+CisjaW5jbHVkZSA8V2ViS2l0Mi9XS1JldGFpblB0ci5o
PgorI2luY2x1ZGUgPFdlYktpdDIvV0tTZWN1cml0eU9yaWdpbi5oPgorCit1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKKworCitib29sIFF0V2ViU2VjdXJpdHlPcmlnaW46OmNvbnRhaW5zU2NoZW1l
KGNvbnN0IFFTdHJpbmcmIHNjaGVtZSkKK3sKKyAgICBjb25zdCBVUkxTY2hlbWVzTWFwJiBtYXAg
PSBTY2hlbWVSZWdpc3RyeTo6bG9jYWxTY2hlbWVzKCk7CisgICAgcmV0dXJuIG1hcC5jb250YWlu
cyhzY2hlbWUpOworfQorCitib29sIFF0V2ViU2VjdXJpdHlPcmlnaW46OmlzTG9jYWxTY2hlbWUo
Y29uc3QgUVN0cmluZyYgc2NoZW1lKQoreworICAgIHJldHVybiAoc2NoZW1lID09IFFTdHJpbmc6
OmZyb21VdGY4KCJxcmMiKSkgPyB0cnVlIDogKHNjaGVtZSA9PSBRU3RyaW5nOjpmcm9tVXRmOCgi
ZmlsZSIpKTsKK30KKworUXRXZWJTZWN1cml0eU9yaWdpbjo6UXRXZWJTZWN1cml0eU9yaWdpbihj
b25zdCBRVXJsJiB1cmwsIFFPYmplY3QqIHBhcmVudCkKKyAgICA6IFFPYmplY3QocGFyZW50KQor
eworCisgICAgbV91cmwuc2V0U2NoZW1lKHVybC5zY2hlbWUoKSk7CisgICAgaWYgKHVybC5zY2hl
bWUoKSA9PSBRTGF0aW4xU3RyaW5nKCJkYXRhIikpCisgICAgICAgIHJldHVybjsKKworICAgIGlm
IChpc0xvY2FsU2NoZW1lKHVybC5zY2hlbWUoKSkpIHsKKyAgICAgICAgLy8gV2Ugc3RvcmUgdGhl
IGNhbm5vbmljYWwgcGF0aCwgaWUuIHRoZSBhYnNvbHV0ZSBwYXRoICp3aXRob3V0KiBzeW1ib2xp
YworICAgICAgICAvLyBsaW5rcyBvciByZWR1bmRhbnQgIi4iIG9yICIuLiIgZWxlbWVudHMuCisg
ICAgICAgIG1fdXJsLnNldFBhdGgoUUZpbGVJbmZvKHVybC5wYXRoKCkpLmNhbm9uaWNhbEZpbGVQ
YXRoKCkpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbV91cmwuc2V0SG9zdCh1cmwu
aG9zdCgpKTsKK30KKworUXRXZWJTZWN1cml0eU9yaWdpbjo6flF0V2ViU2VjdXJpdHlPcmlnaW4o
KQoreworfQorCitRU3RyaW5nIFF0V2ViU2VjdXJpdHlPcmlnaW46Omhvc3QoKSBjb25zdAorewor
ICAgIHJldHVybiBtX3VybC5ob3N0KCk7Cit9CisKK1FTdHJpbmcgUXRXZWJTZWN1cml0eU9yaWdp
bjo6c2NoZW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV91cmwuc2NoZW1lKCk7Cit9CisKK1FT
dHJpbmcgUXRXZWJTZWN1cml0eU9yaWdpbjo6cGF0aCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1f
dXJsLnBhdGgoKTsKK30KKworaW50IFF0V2ViU2VjdXJpdHlPcmlnaW46OnBvcnQoKSBjb25zdAor
eworICAgIHJldHVybiBtX3VybC5wb3J0KCk7Cit9CisKK1FVcmwgUXRXZWJTZWN1cml0eU9yaWdp
bjo6dXJsKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV91cmw7Cit9CisKK3ZvaWQgUXRXZWJTZWN1
cml0eU9yaWdpbjo6YWRkTG9jYWxTY2hlbWUoY29uc3QgUVN0cmluZyYgc2NoZW1lKQoreworICAg
IGlmIChjb250YWluc1NjaGVtZShzY2hlbWUpKQorICAgICAgICByZXR1cm47CisKKyAgICBTY2hl
bWVSZWdpc3RyeTo6cmVnaXN0ZXJVUkxTY2hlbWVBc0xvY2FsKHNjaGVtZSk7Cit9CisKK3ZvaWQg
UXRXZWJTZWN1cml0eU9yaWdpbjo6cmVtb3ZlTG9jYWxTY2hlbWUoY29uc3QgUVN0cmluZyYgc2No
ZW1lKQoreworICAgIC8vIFlvdSBjYW5ub3QgcmVtb3ZlIGZpbGU6CisgICAgaWYgKHNjaGVtZSA9
PSBRTGF0aW4xU3RyaW5nKCJmaWxlIikpCisgICAgICAgIHJldHVybjsKKworICAgIFNjaGVtZVJl
Z2lzdHJ5OjpyZW1vdmVVUkxTY2hlbWVSZWdpc3RlcmVkQXNMb2NhbChzY2hlbWUpOworfQorCitR
U3RyaW5nTGlzdCBRdFdlYlNlY3VyaXR5T3JpZ2luOjpsb2NhbFNjaGVtZXMoKQoreworICAgIFFT
dHJpbmdMaXN0IHNjaGVtZXM7CisgICAgY29uc3QgVVJMU2NoZW1lc01hcCYgbWFwID0gU2NoZW1l
UmVnaXN0cnk6OmxvY2FsU2NoZW1lcygpOworICAgIFVSTFNjaGVtZXNNYXA6OmNvbnN0X2l0ZXJh
dG9yIGVuZCA9IG1hcC5lbmQoKTsKKyAgICBmb3IgKFVSTFNjaGVtZXNNYXA6OmNvbnN0X2l0ZXJh
dG9yIGl0ID0gbWFwLmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkgeworICAgICAgICBjb25zdCBR
U3RyaW5nIHNjaGVtZSA9ICppdDsKKyAgICAgICAgc2NoZW1lcy5hcHBlbmQoc2NoZW1lKTsKKyAg
ICB9CisKKyAgICByZXR1cm4gc2NoZW1lczsKK30KKworYm9vbCBRdFdlYlNlY3VyaXR5T3JpZ2lu
OjpjYW5BY2Nlc3MoY29uc3QgUVVybCYgYW5vdGhlclVybCwgT3JpZ2luUG9saWN5RmxhZ3MgZmxh
Z3MpCit7CisgICAgaWYgKHNjaGVtZSgpID09IFFMYXRpbjFTdHJpbmcoImRhdGEiKSkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKGNvbnRhaW5zU2NoZW1lKG1fdXJsLnNjaGVtZSgp
KSkgeworICAgICAgICBpZiAoY29udGFpbnNTY2hlbWUoYW5vdGhlclVybC5zY2hlbWUoKSkgJiYg
KGZsYWdzICYgTG9jYWxDb250ZW50SGFzU3lzdGVtTG9jYWxBY2Nlc3MpKQorICAgICAgICAgICAg
cmV0dXJuIHRydWU7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJldHVybiBtX3VybC5wYXRo
KCkgPT0gUUZpbGVJbmZvKG1fdXJsLnBhdGgoKSkuY2Fub25pY2FsRmlsZVBhdGgoKTsKKyAgICB9
CisKKyAgICByZXR1cm4gbV91cmwuc2NoZW1lKCkgPT0gYW5vdGhlclVybC5zY2hlbWUoKSAmJiBt
X3VybC5ob3N0KCkgPT0gYW5vdGhlclVybC5ob3N0KCkgJiYgbV91cmwucG9ydCgpID09IGFub3Ro
ZXJVcmwucG9ydCgpOworfQorCitRRGF0YVN0cmVhbSYgb3BlcmF0b3I8PChRRGF0YVN0cmVhbSYg
b3V0LCBjb25zdCBRdFdlYlNlY3VyaXR5T3JpZ2luICZvcmlnaW4pCit7CisgICAgLy8gRklYTUU6
IE1pZ2h0IG5lZWQgc29tZSB2ZXJzaW9uaW5nLgorICAgIG91dCA8PCAob3JpZ2luLnVybCgpLnRv
RW5jb2RlZCgpLmRhdGEoKSk7CisgICAgcmV0dXJuIG91dDsKK30KKworUURhdGFTdHJlYW0mIG9w
ZXJhdG9yPj4oUURhdGFTdHJlYW0mIGluLCBRdFdlYlNlY3VyaXR5T3JpZ2luJiBvcmlnaW4pCit7
CisgICAgLy8gRklYTUU6IE1pZ2h0IG5lZWQgc29tZSB2ZXJzaW9uaW5nLgorICAgIGNoYXIqIHVy
bCA9IG9yaWdpbi51cmwoKS50b0VuY29kZWQoKS5kYXRhKCk7CisgICAgaW4gPj4gdXJsOworICAg
IHJldHVybiBpbjsKK30KKwordm9pZCBRdFdlYlNlY3VyaXR5T3JpZ2luOjpzZXRVcmwoY29uc3Qg
UVVybCYgdXJsKQoreworICAgIG1fdXJsID0gdXJsOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xdHdlYnNlY3VyaXR5b3JpZ2luX3AuaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXR3ZWJzZWN1cml0eW9yaWdpbl9wLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2ZjMjkwNQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXR3ZWJzZWN1cml0eW9yaWdpbl9wLmgKQEAg
LTAsMCArMSw3MSBAQAorLyoKKyAgICBDb3B5cmlnaHQgKEMpIDIwMTIgTm9raWEgQ29ycG9yYXRp
b24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICAgbW9kaWZ5IGl0
IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAgICBM
aWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo
ZXIKKyAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55
IGxhdGVyIHZlcnNpb24uCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhl
IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFO
VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgIE1FUkNIQU5UQUJJ
TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisg
ICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAg
ICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlCisgICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUg
ZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAgICB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICAg
IEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorKi8KKyNpZm5kZWYgcXR3ZWJzZWN1cml0eW9y
aWdpbl9wX2gKKyNkZWZpbmUgcXR3ZWJzZWN1cml0eW9yaWdpbl9wX2gKKworI2luY2x1ZGUgInF3
ZWJraXRnbG9iYWwuaCIKKworI2luY2x1ZGUgPFF0Q29yZS9RRGF0YVN0cmVhbT4KKyNpbmNsdWRl
IDxRdENvcmUvUU9iamVjdD4KKyNpbmNsdWRlIDxRdENvcmUvUVN0cmluZz4KKyNpbmNsdWRlIDxR
dENvcmUvUVVybD4KKyNpbmNsdWRlIDxRdENvcmUvcXNoYXJlZGRhdGEuaD4KKworY2xhc3MgUVdF
QktJVF9FWFBPUlQgUXRXZWJTZWN1cml0eU9yaWdpbiA6IHB1YmxpYyBRT2JqZWN0IHsKKyAgICBR
X09CSkVDVAorICAgIFFfUFJPUEVSVFkoUVN0cmluZyBzY2hlbWUgUkVBRCBzY2hlbWUgQ09OU1RB
TlQpCisgICAgUV9QUk9QRVJUWShRU3RyaW5nIGhvc3QgUkVBRCBob3N0IENPTlNUQU5UKQorICAg
IFFfUFJPUEVSVFkoaW50IHBvcnQgUkVBRCBwb3J0IENPTlNUQU5UKQorICAgIFFfUFJPUEVSVFko
UVN0cmluZyBwYXRoIFJFQUQgcGF0aCBDT05TVEFOVCkKKyAgICBRX1BST1BFUlRZKFFVcmwgdXJs
IFJFQUQgdXJsIENPTlNUQU5UKQorCitwdWJsaWM6CisgICAgUXRXZWJTZWN1cml0eU9yaWdpbihj
b25zdCBRVXJsJiB1cmwsIFFPYmplY3QqIHBhcmVudCA9IDApOworICAgIHZpcnR1YWwgflF0V2Vi
U2VjdXJpdHlPcmlnaW4oKTsKKworICAgIFFTdHJpbmcgc2NoZW1lKCkgY29uc3Q7CisgICAgUVN0
cmluZyBob3N0KCkgY29uc3Q7CisgICAgaW50IHBvcnQoKSBjb25zdDsKKyAgICBRU3RyaW5nIHBh
dGgoKSBjb25zdDsKKyAgICBRVXJsIHVybCgpIGNvbnN0OworCisgICAgc3RhdGljIHZvaWQgYWRk
TG9jYWxTY2hlbWUoY29uc3QgUVN0cmluZyYgc2NoZW1lKTsKKyAgICBzdGF0aWMgdm9pZCByZW1v
dmVMb2NhbFNjaGVtZShjb25zdCBRU3RyaW5nJiBzY2hlbWUpOworICAgIHN0YXRpYyBRU3RyaW5n
TGlzdCBsb2NhbFNjaGVtZXMoKTsKKworICAgIHZvaWQgc2V0VXJsKGNvbnN0IFFVcmwmKTsKKwor
ICAgIGVudW0gT3JpZ2luUG9saWN5RmxhZ3MgeworICAgICAgICBDb250ZW50SGFzU2FtZU9yaWdp
bkFjY2VzcyA9IDB4MCwKKyAgICAgICAgTG9jYWxDb250ZW50SGFzUmVtb3RlQWNjZXNzID0gMHgx
LAorICAgICAgICBMb2NhbENvbnRlbnRIYXNTeXN0ZW1Mb2NhbEFjY2VzcyA9IDB4MgorICAgIH07
CisKKyAgICBib29sIGNhbkFjY2Vzcyhjb25zdCBRVXJsJiB1cmwsIE9yaWdpblBvbGljeUZsYWdz
IGZsYWdzID0gQ29udGVudEhhc1NhbWVPcmlnaW5BY2Nlc3MpOworCitwcml2YXRlOgorICAgIHN0
YXRpYyBib29sIGNvbnRhaW5zU2NoZW1lKGNvbnN0IFFTdHJpbmcmKTsKKyAgICBib29sIGlzTG9j
YWxTY2hlbWUoY29uc3QgUVN0cmluZyYpOworICAgIFFVcmwgbV91cmw7Cit9OworCitRRGF0YVN0
cmVhbSYgb3BlcmF0b3I8PChRRGF0YVN0cmVhbSYsIGNvbnN0IFF0V2ViU2VjdXJpdHlPcmlnaW4m
KTsKK1FEYXRhU3RyZWFtJiBvcGVyYXRvcj4+KFFEYXRhU3RyZWFtJiwgUXRXZWJTZWN1cml0eU9y
aWdpbiYpOworCisjZW5kaWYgLy8gcXR3ZWJzZWN1cml0eW9yaWdpbl9wX2gKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnBlcm1pc3Npb25yZXF1ZXN0LmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnBlcm1pc3Npb25yZXF1ZXN0
LmNwcAppbmRleCAxNmE0Mzg1Li5kYTVhYmMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL3F0L3F3ZWJwZXJtaXNzaW9ucmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2VicGVybWlzc2lvbnJlcXVlc3QuY3BwCkBAIC0zMiw5
ICszMiwyMiBAQCBwdWJsaWM6CiAgICAgICAgIDogb3JpZ2luKHNlY3VyaXR5T3JpZ2luKQogICAg
ICAgICAsIHR5cGUoUVdlYlBlcm1pc3Npb25SZXF1ZXN0OjpHZW9sb2NhdGlvbikKICAgICAgICAg
LCByZXF1ZXN0KHBlcm1pc3Npb25SZXF1ZXN0KQorICAgICAgICAsIHNlY3VyaXR5SW5mbyhRVXJs
KCksIDApCiAgICAgICAgICwgYWxsb3coZmFsc2UpCiAgICAgeworCisgICAgICAgIFFVcmwgZGF0
YTsKKyAgICAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHVybCA9IGFkb3B0V0soV0tTZWN1
cml0eU9yaWdpbkNvcHlQcm90b2NvbChvcmlnaW4uZ2V0KCkpKTsKKyAgICAgICAgZGF0YS5zZXRT
Y2hlbWUoV0tTdHJpbmdDb3B5UVN0cmluZyh1cmwuZ2V0KCkpKTsKKworICAgICAgICBXS1JldGFp
blB0cjxXS1N0cmluZ1JlZj4gaG9zdCA9IGFkb3B0V0soV0tTZWN1cml0eU9yaWdpbkNvcHlIb3N0
KG9yaWdpbi5nZXQoKSkpOworICAgICAgICBkYXRhLnNldEhvc3QoV0tTdHJpbmdDb3B5UVN0cmlu
Zyhob3N0LmdldCgpKSk7CisKKyAgICAgICAgZGF0YS5zZXRQb3J0KHN0YXRpY19jYXN0PGludD4o
V0tTZWN1cml0eU9yaWdpbkdldFBvcnQob3JpZ2luLmdldCgpKSkpOworICAgICAgICBzZWN1cml0
eUluZm8uc2V0VXJsKGRhdGEpOworCiAgICAgfQorCiAgICAgflFXZWJQZXJtaXNzaW9uUmVxdWVz
dFByaXZhdGUoKQogICAgIHsKICAgICB9CkBAIC00Miw2ICs1NSw3IEBAIHB1YmxpYzoKICAgICBX
S1JldGFpblB0cjxXS1NlY3VyaXR5T3JpZ2luUmVmPiBvcmlnaW47CiAgICAgUVdlYlBlcm1pc3Np
b25SZXF1ZXN0OjpSZXF1ZXN0VHlwZSB0eXBlOwogICAgIFdLUmV0YWluUHRyPFdLR2VvbG9jYXRp
b25QZXJtaXNzaW9uUmVxdWVzdFJlZj4gcmVxdWVzdDsKKyAgICBRdFdlYlNlY3VyaXR5T3JpZ2lu
IHNlY3VyaXR5SW5mbzsKICAgICBib29sIGFsbG93OwogfTsKIApAQCAtODgsMTkgKzEwMiw4IEBA
IGJvb2wgUVdlYlBlcm1pc3Npb25SZXF1ZXN0OjphbGxvdygpIGNvbnN0CiAgICAgcmV0dXJuIGQt
PmFsbG93OwogfQogCi1RU3RyaW5nIFFXZWJQZXJtaXNzaW9uUmVxdWVzdDo6c2NoZW1lKCkgY29u
c3QKK1F0V2ViU2VjdXJpdHlPcmlnaW4qIFFXZWJQZXJtaXNzaW9uUmVxdWVzdDo6c2VjdXJpdHlP
cmlnaW4oKQogewotICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiB1cmwgPSBhZG9wdFdLKFdL
U2VjdXJpdHlPcmlnaW5Db3B5UHJvdG9jb2woZC0+b3JpZ2luLmdldCgpKSk7Ci0gICAgcmV0dXJu
IFdLU3RyaW5nQ29weVFTdHJpbmcodXJsLmdldCgpKTsKKyAgICByZXR1cm4gJihkLT5zZWN1cml0
eUluZm8pOwogfQogCi1RU3RyaW5nIFFXZWJQZXJtaXNzaW9uUmVxdWVzdDo6aG9zdCgpIGNvbnN0
Ci17Ci0gICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IG9yaWdpbiA9IGFkb3B0V0soV0tTZWN1
cml0eU9yaWdpbkNvcHlIb3N0KGQtPm9yaWdpbi5nZXQoKSkpOwotICAgIHJldHVybiBXS1N0cmlu
Z0NvcHlRU3RyaW5nKG9yaWdpbi5nZXQoKSk7Ci19Ci0KLWludCBRV2ViUGVybWlzc2lvblJlcXVl
c3Q6OnBvcnQoKSBjb25zdAotewotICAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQ+KFdLU2VjdXJp
dHlPcmlnaW5HZXRQb3J0KGQtPm9yaWdpbi5nZXQoKSkpOwotfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2VicGVybWlzc2lvbnJlcXVlc3RfcC5oIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2VicGVybWlzc2lvbnJlcXVlc3RfcC5oCmlu
ZGV4IDU4MjRjNGMuLjMzYWZhOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvcXQvcXdlYnBlcm1pc3Npb25yZXF1ZXN0X3AuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL3F0L3F3ZWJwZXJtaXNzaW9ucmVxdWVzdF9wLmgKQEAgLTIwLDYgKzIwLDcg
QEAKICNpZm5kZWYgcXdlYnBlcm1pc3Npb25yZXF1ZXN0X3BfaAogI2RlZmluZSBxd2VicGVybWlz
c2lvbnJlcXVlc3RfcF9oCiAKKyNpbmNsdWRlICJxdHdlYnNlY3VyaXR5b3JpZ2luX3AuaCIKICNp
bmNsdWRlICJxd2Via2l0Z2xvYmFsLmgiCiAKICNpbmNsdWRlIDxRdENvcmUvUU9iamVjdD4KQEAg
LTMyLDEwICszMyw4IEBAIGNsYXNzIFFXZWJQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGU7CiBjbGFz
cyBRV0VCS0lUX0VYUE9SVCBRV2ViUGVybWlzc2lvblJlcXVlc3QgOiBwdWJsaWMgUU9iamVjdCB7
CiAgICAgUV9PQkpFQ1QKICAgICBRX1BST1BFUlRZKGJvb2wgYWxsb3cgUkVBRCBhbGxvdyBXUklU
RSBzZXRBbGxvdykKLSAgICBRX1BST1BFUlRZKFJlcXVlc3RUeXBlIHR5cGUgUkVBRCB0eXBlKQot
ICAgIFFfUFJPUEVSVFkoUVN0cmluZyBzY2hlbWUgUkVBRCBzY2hlbWUpCi0gICAgUV9QUk9QRVJU
WShRU3RyaW5nIGhvc3QgUkVBRCBob3N0KQotICAgIFFfUFJPUEVSVFkoaW50IHBvcnQgUkVBRCBw
b3J0KQorICAgIFFfUFJPUEVSVFkoUmVxdWVzdFR5cGUgdHlwZSBSRUFEIHR5cGUgQ09OU1RBTlQp
CisgICAgUV9QUk9QRVJUWShRdFdlYlNlY3VyaXR5T3JpZ2luKiBzZWN1cml0eU9yaWdpbiBSRUFE
IHNlY3VyaXR5T3JpZ2luKQogICAgIFFfRU5VTVMoUmVxdWVzdFR5cGUpCiAKIHB1YmxpYzoKQEAg
LTQ4LDEyICs0NywxMCBAQCBwdWJsaWM6CiAKICAgICBSZXF1ZXN0VHlwZSB0eXBlKCkgY29uc3Q7
CiAgICAgYm9vbCBhbGxvdygpIGNvbnN0OwotICAgIFFTdHJpbmcgc2NoZW1lKCkgY29uc3Q7Ci0g
ICAgUVN0cmluZyBob3N0KCkgY29uc3Q7Ci0gICAgaW50IHBvcnQoKSBjb25zdDsKIAogcHVibGlj
IFFfU0xPVFM6CiAgICAgdm9pZCBzZXRBbGxvdyhib29sKTsKKyAgICBRdFdlYlNlY3VyaXR5T3Jp
Z2luKiBzZWN1cml0eU9yaWdpbigpOwogCiBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBRV2Vi
UGVybWlzc2lvblJlcXVlc3RQcml2YXRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3L3RzdF9vcmlnaW4ucW1sIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3L3RzdF9v
cmlnaW4ucW1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRjMzg5NWYKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3Ft
bHRlc3RzL1dlYlZpZXcvdHN0X29yaWdpbi5xbWwKQEAgLTAsMCArMSw0NCBAQAoraW1wb3J0IFF0
UXVpY2sgMi4wCitpbXBvcnQgUXRUZXN0IDEuMAoraW1wb3J0IFF0V2ViS2l0IDMuMAoraW1wb3J0
IFF0V2ViS2l0LmV4cGVyaW1lbnRhbCAzLjAKKworV2ViVmlldyB7CisgICAgaWQ6IHdlYlZpZXcK
KyAgICB3aWR0aDogMjAwCisgICAgaGVpZ2h0OiAyMDAKKworICAgIHByb3BlcnR5IGJvb2wgc3Vj
Y2VzczogdHJ1ZQorICAgIHByb3BlcnR5IGludCBwb3J0OiAwCisgICAgcHJvcGVydHkgc3RyaW5n
IHNjaGVtZTogImZpbGUiCisKKyAgICBleHBlcmltZW50YWwub25QZXJtaXNzaW9uUmVxdWVzdGVk
OiB7CisgICAgICAgIGlmIChwZXJtaXNzaW9uLnNlY3VyaXR5T3JpZ2luLnBvcnQgIT0gd2ViVmll
dy5wb3J0KSB7CisgICAgICAgICAgICBjb25zb2xlLmxvZygiUG9ydCBpcyB3cm9uZyIpCisgICAg
ICAgICAgICB3ZWJWaWV3LnN1Y2Nlc3MgPSBmYWxzZQorICAgICAgICB9CisKKyAgICAgICAgaWYg
KHBlcm1pc3Npb24uc2VjdXJpdHlPcmlnaW4uc2NoZW1lICE9IHdlYlZpZXcuc2NoZW1lKSB7Cisg
ICAgICAgICAgICBjb25zb2xlLmxvZygiU2NoZW1lIGlzIHdyb25nIikKKyAgICAgICAgICAgIHdl
YlZpZXcuc3VjY2VzcyA9IGZhbHNlCisgICAgICAgIH0KKyAgICB9CisKKyAgICBUZXN0Q2FzZSB7
CisgICAgICAgIG5hbWU6ICJXZWJWaWV3U2VjdXJpdHlPcmlnaW4iCisKKyAgICAgICAgLy8gRGVs
YXllZCB3aW5kb3dTaG93biB0byB3b3JrYXJvdW5kIHByb2JsZW1zIHdpdGggUXQ1IGluIGRlYnVn
IG1vZGUuCisgICAgICAgIHdoZW46IGZhbHNlCisgICAgICAgIFRpbWVyIHsKKyAgICAgICAgICAg
IHJ1bm5pbmc6IHBhcmVudC53aW5kb3dTaG93bgorICAgICAgICAgICAgcmVwZWF0OiBmYWxzZQor
ICAgICAgICAgICAgaW50ZXJ2YWw6IDEKKyAgICAgICAgICAgIG9uVHJpZ2dlcmVkOiBwYXJlbnQu
d2hlbiA9IHRydWUKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIHRlc3RfcGVybWlzc2lv
blJlcXVlc3QoKSB7CisgICAgICAgICAgICB3ZWJWaWV3LmxvYWQoUXQucmVzb2x2ZWRVcmwoIi4u
L2NvbW1vbi9nZW9sb2NhdGlvbi5odG1sIikpCisgICAgICAgICAgICBjb21wYXJlKHdlYlZpZXcu
c3VjY2VzcywgdHJ1ZSkKKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvcW1sdGVzdHMucHJvIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9xbWx0ZXN0cy5wcm8K
aW5kZXggYzhjZTg3YS4uNTA4MTljMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9xbWx0ZXN0cy5wcm8KKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9xbWx0ZXN0cy5wcm8KQEAgLTI5LDQg
KzI5LDUgQEAgT1RIRVJfRklMRVMgKz0gXAogICAgIFdlYlZpZXcvdHN0X3ByZWZlcmVuY2VzLnFt
bCBcCiAgICAgV2ViVmlldy90c3RfcHJvcGVydGllcy5xbWwgXAogICAgIFdlYlZpZXcvdHN0X3Rp
dGxlQ2hhbmdlZC5xbWwgXAotICAgIFdlYlZpZXcvdHN0X2FwcGxpY2F0aW9uU2NoZW1lLnFtbAor
ICAgIFdlYlZpZXcvdHN0X2FwcGxpY2F0aW9uU2NoZW1lLnFtbCBcCisgICAgV2ViVmlldy90c3Rf
b3JpZ2luLnFtbApkaWZmIC0tZ2l0IGEvU291cmNlL3F0d2Via2l0LWV4cG9ydC5tYXAgYi9Tb3Vy
Y2UvcXR3ZWJraXQtZXhwb3J0Lm1hcAppbmRleCBiYTJlMmZiLi5iZjEzNzc3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvcXR3ZWJraXQtZXhwb3J0Lm1hcAorKysgYi9Tb3VyY2UvcXR3ZWJraXQtZXhwb3J0
Lm1hcApAQCAtMTU2LDcgKzE1Niw5IEBAIHF3a18xLjAgewogICAgICAgICBRUXVpY2tOZXR3b3Jr
UmVxdWVzdDo6KjsKICAgICAgICAgKlFRdWlja05ldHdvcmtSZXBseTsKICAgICAgICAgUVF1aWNr
TmV0d29ya1JlcGx5OjoqOwotCisgICAgICAgICpRdFdlYlNlY3VyaXR5T3JpZ2luOworICAgICAg
ICBub24tdmlydHVhbD90aHVuaz90bz9RdFdlYlNlY3VyaXR5T3JpZ2luKjsKKyAgICAgICAgUXRX
ZWJTZWN1cml0eU9yaWdpbjo6KjsKIAogICAgICAgICAjIFdlYktpdCAyIEMgQVBJIG1hbmdsZWQg
aW4gQysrCiAgICAgICAgIFdLU3RyaW5nQ29weVFTdHJpbmcqOwotLSAKMS43LjUuNAoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>123489</attachid>
            <date>2012-01-22 11:03:57 -0800</date>
            <delta_ts>2012-01-24 07:54:39 -0800</delta_ts>
            <desc>Previous fixes plus: header file, else clause, QLatin1String</desc>
            <filename>origin_step11_final.patch</filename>
            <type>text/plain</type>
            <size>19381</size>
            <attacher name="Adenilson Cavalcanti Silva">savagobr</attacher>
            
              <data encoding="base64">RnJvbSBlNzQ5NTE5NzI0MzIxNWIxZTI5YzliYjJkM2U4ODdmNjA3MGZkYzNiIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBZGVuaWxzb24gQ2F2YWxjYW50aSA8Y2F2YWxjYW50aWlAZ21h
aWwuY29tPgpEYXRlOiBTdW4sIDIyIEphbiAyMDEyIDAwOjA2OjUyIC0wNDAwClN1YmplY3Q6IFtQ
QVRDSF0gUHJldmlvdXMgZml4ZWQgKHBsdXMgQ2hhbmdlTG9nKSwgcmVtb3ZlZCB1bm5lY2Vzc2Fy
eSBoZWFkZXIKIGZpbGUgcGx1cyBlbHNlIGNsYXVzZQoKU2lnbmVkLW9mZi1ieTogQWRlbmlsc29u
IENhdmFsY2FudGkgPGNhdmFsY2FudGlpQGdtYWlsLmNvbT4KLS0tCiBDaGFuZ2VMb2cgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTEgKysKIFNvdXJjZS9XZWJL
aXQvcXQvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxMiArKwogU291cmNl
L1dlYktpdC9xdC9kZWNsYXJhdGl2ZS9wbHVnaW4uY3BwICAgICAgICAgICAgfCAgICAzICsKIFNv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAzNSAr
KysrKwogU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaSAgICAgICAgICAgICAgICAgICAgICAgICAg
fCAgICAyICsKIC4uLi9VSVByb2Nlc3MvQVBJL3F0L3F0d2Vic2VjdXJpdHlvcmlnaW4uY3BwICAg
ICAgIHwgIDE1NiArKysrKysrKysrKysrKysrKysrKwogLi4uL1VJUHJvY2Vzcy9BUEkvcXQvcXR3
ZWJzZWN1cml0eW9yaWdpbl9wLmggICAgICAgfCAgIDcxICsrKysrKysrKwogLi4uL1VJUHJvY2Vz
cy9BUEkvcXQvcXdlYnBlcm1pc3Npb25yZXF1ZXN0LmNwcCAgICAgfCAgIDI5ICsrLS0KIC4uLi9V
SVByb2Nlc3MvQVBJL3F0L3F3ZWJwZXJtaXNzaW9ucmVxdWVzdF9wLmggICAgIHwgICAxMSArLQog
Li4uL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3L3RzdF9vcmlnaW4ucW1sICAgfCAgIDQ0
ICsrKysrKwogLi4uL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvcW1sdGVzdHMucHJv
ICAgfCAgICAzICstCiBTb3VyY2UvcXR3ZWJraXQtZXhwb3J0Lm1hcCAgICAgICAgICAgICAgICAg
ICAgICAgICB8ICAgIDQgKy0KIDEyIGZpbGVzIGNoYW5nZWQsIDM1OSBpbnNlcnRpb25zKCspLCAy
MiBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL3F0L3F0d2Vic2VjdXJpdHlvcmlnaW4uY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xdHdlYnNlY3VyaXR5b3JpZ2luX3AuaAogY3Jl
YXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1s
dGVzdHMvV2ViVmlldy90c3Rfb3JpZ2luLnFtbAoKZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0No
YW5nZUxvZwppbmRleCAzM2Y0ZGQ2Li4xYTYwYzk0IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysr
IGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMDEtMjEgIEFkZW5pbHNvbiBDYXZh
bGNhbnRpICA8Y2F2YWxjYW50aWlAZ21haWwuY29tPgorCisgICAgICAgIFtRdF1bV0syXSBTcGxp
dCBRV2ViUGVybWlzc2lvblJlcXVlc3QgaW50byBRV2ViU2VjdXJpdHlPcmlnaW4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTczMjE1CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW50cm9kdWNpbmcgYSBuZXcg
Y2xhc3MgdG8gZXhwb3NlIHNlY3VyaXR5IG9yaWdpbiBpbmZvcm1hdGlvbi4KKworICAgICAgICAq
IFNvdXJjZS9xdHdlYmtpdC1leHBvcnQubWFwOgorCiAyMDEyLTAxLTIwICBNYXJjLUFuZHJlIERl
Y29zdGUgIDxtYWRAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEFkZCBwcm9wZXIgb2Zmc2V0IHRv
IHBvc2l0aW9uIHJpZ2h0IGNsaWNrIHRvIHNpbXVsYXRlIGEgY29udGV4dCBtZW51IGludm9jYXRp
b24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvcXQvQ2hhbmdlTG9nCmluZGV4IDhhNTBmNjUuLmNkNmMyMTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTUgQEAKKzIwMTItMDEtMjEgIEFkZW5pbHNvbiBDYXZhbGNhbnRpICA8Y2F2YWxj
YW50aWlAZ21haWwuY29tPgorCisgICAgICAgIFtRdF1bV0syXSBTcGxpdCBRV2ViUGVybWlzc2lv
blJlcXVlc3QgaW50byBRV2ViU2VjdXJpdHlPcmlnaW4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTczMjE1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgRXhwb3J0IHRoZSBzZWN1cml0eSBvcmlnaW4gY2xhc3Mg
dG8gUU1MLgorCisgICAgICAgICogZGVjbGFyYXRpdmUvcGx1Z2luLmNwcDoKKyAgICAgICAgKFdl
YktpdFFtbFBsdWdpbjo6cmVnaXN0ZXJUeXBlcyk6CisKIDIwMTItMDEtMTcgIFZpYXRjaGVzbGF2
IE9zdGFwZW5rbyAgPG9zdGFwZW5rby52aWF0Y2hlc2xhdkBub2tpYS5jb20+CiAKICAgICAgICAg
W1F0XSBEZWJ1ZyBidWlsZCBmYWlscyB3aXRoIGRlYnVnIHF0NQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9xdC9kZWNsYXJhdGl2ZS9wbHVnaW4uY3BwIGIvU291cmNlL1dlYktpdC9xdC9kZWNs
YXJhdGl2ZS9wbHVnaW4uY3BwCmluZGV4IDY0NjM4ZTQuLmUyZjBmYjMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvcXQvZGVjbGFyYXRpdmUvcGx1Z2luLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L3F0L2RlY2xhcmF0aXZlL3BsdWdpbi5jcHAKQEAgLTI1LDYgKzI1LDcgQEAKICNpZiBkZWZpbmVk
KEhBVkVfV0VCS0lUMikKICNpbmNsdWRlICJxcXVpY2t3ZWJwYWdlX3AuaCIKICNpbmNsdWRlICJx
cXVpY2t3ZWJ2aWV3X3AuaCIKKyNpbmNsdWRlICJxdHdlYnNlY3VyaXR5b3JpZ2luX3AuaCIKICNp
bmNsdWRlICJxd2ViaWNvbmltYWdlcHJvdmlkZXJfcC5oIgogI2luY2x1ZGUgInF3ZWJuYXZpZ2F0
aW9ucmVxdWVzdF9wLmgiCiAjaW5jbHVkZSAicXdlYnBlcm1pc3Npb25yZXF1ZXN0X3AuaCIKQEAg
LTY1LDYgKzY2LDggQEAgcHVibGljOgogICAgICAgICBxbWxSZWdpc3RlclVuY3JlYXRhYmxlVHlw
ZTxRTmV0d29ya1JlcGx5Pih1cmksIDMsIDAsICJOZXR3b3JrUmVwbHkiLCBRT2JqZWN0Ojp0cigi
Q2Fubm90IGNyZWF0ZSBzZXBhcmF0ZSBpbnN0YW5jZSBvZiBOZXR3b3JrUmVwbHkiKSk7CiAgICAg
ICAgIHFtbFJlZ2lzdGVyVW5jcmVhdGFibGVUeXBlPFFXZWJQZXJtaXNzaW9uUmVxdWVzdD4odXJp
LCAzLCAwLCAiUGVybWlzc2lvblJlcXVlc3QiLCBRT2JqZWN0Ojp0cigiQ2Fubm90IGNyZWF0ZSBz
ZXBhcmF0ZSBpbnN0YW5jZSBvZiBQZXJtaXNzaW9uUmVxdWVzdCIpKTsKICAgICAgICAgcW1sUmVn
aXN0ZXJVbmNyZWF0YWJsZVR5cGU8UVdlYk5hdmlnYXRpb25SZXF1ZXN0Pih1cmksIDMsIDAsICJO
YXZpZ2F0aW9uUmVxdWVzdCIsIFFPYmplY3Q6OnRyKCJDYW5ub3QgY3JlYXRlIHNlcGFyYXRlIGlu
c3RhbmNlIG9mIE5hdmlnYXRpb25SZXF1ZXN0IikpOworICAgICAgICBxbWxSZWdpc3RlclVuY3Jl
YXRhYmxlVHlwZTxRdFdlYlNlY3VyaXR5T3JpZ2luPih1cmksIDMsIDAsICJTZWN1cml0eU9yaWdp
biIsIFFPYmplY3Q6OnRyKCJDYW5ub3QgY3JlYXRlIHNlcGFyYXRlIGluc3RhbmNlIG9mIFNlY3Vy
aXR5T3JpZ2luIikpOworCiAjZW5kaWYKICAgICB9CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGIxMWNmZmMu
LjQ0MTkzNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzOCBAQAorMjAxMi0wMS0yMSAgQWRlbmls
c29uIENhdmFsY2FudGkgIDxjYXZhbGNhbnRpaUBnbWFpbC5jb20+CisKKyAgICAgICAgW1F0XVtX
SzJdIFNwbGl0IFFXZWJQZXJtaXNzaW9uUmVxdWVzdCBpbnRvIFFXZWJTZWN1cml0eU9yaWdpbgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMyMTUKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbnRyb2R1Y2lu
ZyBhIG5ldyBjbGFzcyB0byBleHBvc2Ugc2VjdXJpdHkgb3JpZ2luIGluZm9ybWF0aW9uLgorCisg
ICAgICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3F0d2Vic2Vj
dXJpdHlvcmlnaW4uY3BwOiBBZGRlZC4KKyAgICAgICAgKFF0V2ViU2VjdXJpdHlPcmlnaW46OmNv
bnRhaW5zU2NoZW1lKToKKyAgICAgICAgKFF0V2ViU2VjdXJpdHlPcmlnaW46OmlzTG9jYWxTY2hl
bWUpOgorICAgICAgICAoUXRXZWJTZWN1cml0eU9yaWdpbjo6UXRXZWJTZWN1cml0eU9yaWdpbik6
CisgICAgICAgIChRdFdlYlNlY3VyaXR5T3JpZ2luOjp+UXRXZWJTZWN1cml0eU9yaWdpbik6Cisg
ICAgICAgIChRdFdlYlNlY3VyaXR5T3JpZ2luOjpob3N0KToKKyAgICAgICAgKFF0V2ViU2VjdXJp
dHlPcmlnaW46OnNjaGVtZSk6CisgICAgICAgIChRdFdlYlNlY3VyaXR5T3JpZ2luOjpwYXRoKToK
KyAgICAgICAgKFF0V2ViU2VjdXJpdHlPcmlnaW46OnBvcnQpOgorICAgICAgICAoUXRXZWJTZWN1
cml0eU9yaWdpbjo6dXJsKToKKyAgICAgICAgKFF0V2ViU2VjdXJpdHlPcmlnaW46OmFkZExvY2Fs
U2NoZW1lKToKKyAgICAgICAgKFF0V2ViU2VjdXJpdHlPcmlnaW46OnJlbW92ZUxvY2FsU2NoZW1l
KToKKyAgICAgICAgKFF0V2ViU2VjdXJpdHlPcmlnaW46OmxvY2FsU2NoZW1lcyk6CisgICAgICAg
IChRdFdlYlNlY3VyaXR5T3JpZ2luOjpjYW5BY2Nlc3MpOgorICAgICAgICAob3BlcmF0b3I8PCk6
CisgICAgICAgIChvcGVyYXRvcj4+KToKKyAgICAgICAgKFF0V2ViU2VjdXJpdHlPcmlnaW46OnNl
dFVybCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xdHdlYnNlY3VyaXR5b3JpZ2luX3Au
aDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9XZWJW
aWV3L3RzdF9vcmlnaW4ucW1sOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3F3
ZWJwZXJtaXNzaW9ucmVxdWVzdC5jcHA6CisgICAgICAgIChRV2ViUGVybWlzc2lvblJlcXVlc3RQ
cml2YXRlOjpRV2ViUGVybWlzc2lvblJlcXVlc3RQcml2YXRlKToKKyAgICAgICAgKFFXZWJQZXJt
aXNzaW9uUmVxdWVzdDo6c2VjdXJpdHlPcmlnaW4pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
cXQvcXdlYnBlcm1pc3Npb25yZXF1ZXN0X3AuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0
L3Rlc3RzL3FtbHRlc3RzL3FtbHRlc3RzLnBybzoKKwogMjAxMi0wMS0yMSAgVGltb3RoeSBIYXRj
aGVyICA8dGltb3RoeUBhcHBsZS5jb20+CiAKICAgICAgICAgTWFrZSBXZWJLaXQyIHJlbWVtYmVy
IHRoZSBoZWlnaHQgb2YgdGhlIFdlYiBJbnNwZWN0b3Igd2hlbiBpdCBpcyBkb2NrZWQuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpIGIvU291cmNlL1dlYktpdDIvVGFyZ2V0
LnByaQppbmRleCA1ZWUyNzk3Li40NzdiZWZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9U
YXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJLaXQyL1RhcmdldC5wcmkKQEAgLTE3Myw2ICsxNzMs
NyBAQCBIRUFERVJTICs9IFwKICAgICBVSVByb2Nlc3MvQVBJL3F0L3F3ZWJkb3dubG9hZGl0ZW1f
cC5oIFwKICAgICBVSVByb2Nlc3MvQVBJL3F0L3F3ZWJkb3dubG9hZGl0ZW1fcF9wLmggXAogICAg
IFVJUHJvY2Vzcy9BUEkvcXQvcXdlYnBlcm1pc3Npb25yZXF1ZXN0X3AuaCBcCisgICAgVUlQcm9j
ZXNzL0FQSS9xdC9xdHdlYnNlY3VyaXR5b3JpZ2luX3AuaCBcCiAgICAgVUlQcm9jZXNzL0FQSS9x
dC9xd2VibmF2aWdhdGlvbnJlcXVlc3RfcC5oIFwKICAgICBVSVByb2Nlc3MvQVBJL3F0L3FxdWlj
a3dlYnBhZ2VfcC5oIFwKICAgICBVSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnBhZ2VfcF9wLmgg
XApAQCAtNTAxLDYgKzUwMiw3IEBAIFNPVVJDRVMgKz0gXAogICAgIFVJUHJvY2Vzcy9BUEkvY3Bw
L3F0L1dLVVJMUXQuY3BwIFwKICAgICBVSVByb2Nlc3MvQVBJL3F0L3F3ZWJkb3dubG9hZGl0ZW0u
Y3BwIFwKICAgICBVSVByb2Nlc3MvQVBJL3F0L3F3ZWJwZXJtaXNzaW9ucmVxdWVzdC5jcHAgXAor
ICAgIFVJUHJvY2Vzcy9BUEkvcXQvcXR3ZWJzZWN1cml0eW9yaWdpbi5jcHAgXAogICAgIFVJUHJv
Y2Vzcy9BUEkvcXQvcXdlYm5hdmlnYXRpb25yZXF1ZXN0LmNwcCBcCiAgICAgVUlQcm9jZXNzL0FQ
SS9xdC9xcXVpY2t3ZWJwYWdlLmNwcCBcCiAgICAgVUlQcm9jZXNzL0FQSS9xdC9xd2VibmF2aWdh
dGlvbmhpc3RvcnkuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvcXQvcXR3ZWJzZWN1cml0eW9yaWdpbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL3F0L3F0d2Vic2VjdXJpdHlvcmlnaW4uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjIwZWJhNjUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL3F0L3F0d2Vic2VjdXJpdHlvcmlnaW4uY3BwCkBAIC0wLDAgKzEsMTU2IEBACisv
KgorICAgIENvcHlyaWdodCAoQykgMjAxMiBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1
YnNpZGlhcnkoLWllcykKKworICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug
Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICAgIExpY2Vuc2UgYXMgcHVibGlz
aGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAgIHZlcnNpb24g
MiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4K
KworICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp
bGwgYmUgdXNlZnVsLAorICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu
IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgICBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgIFlvdSBzaG91bGQgaGF2
ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vu
c2UKKyAgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElC
LiAgSWYgbm90LCB3cml0ZSB0bworICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu
Yy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgICAgQm9zdG9uLCBNQSAwMjEx
MC0xMzAxLCBVU0EuCisqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlICJxdHdl
YnNlY3VyaXR5b3JpZ2luX3AuaCIKKworI2luY2x1ZGUgPFF0Q29yZS9RRmlsZUluZm8+CisjaW5j
bHVkZSA8UXRDb3JlL1FTdHJpbmdMaXN0PgorI2luY2x1ZGUgPFNjaGVtZVJlZ2lzdHJ5Lmg+Cisj
aW5jbHVkZSA8U2VjdXJpdHlPcmlnaW4uaD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLQmFzZS5oPgor
I2luY2x1ZGUgPFdlYktpdDIvV0tSZXRhaW5QdHIuaD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLU2Vj
dXJpdHlPcmlnaW4uaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKKworYm9vbCBRdFdl
YlNlY3VyaXR5T3JpZ2luOjpjb250YWluc1NjaGVtZShjb25zdCBRU3RyaW5nJiBzY2hlbWUpCit7
CisgICAgY29uc3QgVVJMU2NoZW1lc01hcCYgbWFwID0gU2NoZW1lUmVnaXN0cnk6OmxvY2FsU2No
ZW1lcygpOworICAgIHJldHVybiBtYXAuY29udGFpbnMoc2NoZW1lKTsKK30KKworYm9vbCBRdFdl
YlNlY3VyaXR5T3JpZ2luOjppc0xvY2FsU2NoZW1lKGNvbnN0IFFTdHJpbmcmIHNjaGVtZSkKK3sK
KyAgICByZXR1cm4gKHNjaGVtZSA9PSBRTGF0aW4xU3RyaW5nKCJxcmMiKSkgPyB0cnVlIDogKHNj
aGVtZSA9PSBRTGF0aW4xU3RyaW5nKCJmaWxlIikpOworfQorCitRdFdlYlNlY3VyaXR5T3JpZ2lu
OjpRdFdlYlNlY3VyaXR5T3JpZ2luKGNvbnN0IFFVcmwmIHVybCwgUU9iamVjdCogcGFyZW50KQor
ICAgIDogUU9iamVjdChwYXJlbnQpCit7CisKKyAgICBtX3VybC5zZXRTY2hlbWUodXJsLnNjaGVt
ZSgpKTsKKyAgICBpZiAodXJsLnNjaGVtZSgpID09IFFMYXRpbjFTdHJpbmcoImRhdGEiKSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgaWYgKGlzTG9jYWxTY2hlbWUodXJsLnNjaGVtZSgpKSkgewor
ICAgICAgICAvLyBXZSBzdG9yZSB0aGUgY2Fubm9uaWNhbCBwYXRoLCBpZS4gdGhlIGFic29sdXRl
IHBhdGggKndpdGhvdXQqIHN5bWJvbGljCisgICAgICAgIC8vIGxpbmtzIG9yIHJlZHVuZGFudCAi
LiIgb3IgIi4uIiBlbGVtZW50cy4KKyAgICAgICAgbV91cmwuc2V0UGF0aChRRmlsZUluZm8odXJs
LnBhdGgoKSkuY2Fub25pY2FsRmlsZVBhdGgoKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisK
KyAgICBtX3VybC5zZXRIb3N0KHVybC5ob3N0KCkpOworfQorCitRdFdlYlNlY3VyaXR5T3JpZ2lu
Ojp+UXRXZWJTZWN1cml0eU9yaWdpbigpCit7Cit9CisKK1FTdHJpbmcgUXRXZWJTZWN1cml0eU9y
aWdpbjo6aG9zdCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fdXJsLmhvc3QoKTsKK30KKworUVN0
cmluZyBRdFdlYlNlY3VyaXR5T3JpZ2luOjpzY2hlbWUoKSBjb25zdAoreworICAgIHJldHVybiBt
X3VybC5zY2hlbWUoKTsKK30KKworUVN0cmluZyBRdFdlYlNlY3VyaXR5T3JpZ2luOjpwYXRoKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gbV91cmwucGF0aCgpOworfQorCitpbnQgUXRXZWJTZWN1cml0
eU9yaWdpbjo6cG9ydCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fdXJsLnBvcnQoKTsKK30KKwor
UVVybCBRdFdlYlNlY3VyaXR5T3JpZ2luOjp1cmwoKSBjb25zdAoreworICAgIHJldHVybiBtX3Vy
bDsKK30KKwordm9pZCBRdFdlYlNlY3VyaXR5T3JpZ2luOjphZGRMb2NhbFNjaGVtZShjb25zdCBR
U3RyaW5nJiBzY2hlbWUpCit7CisgICAgaWYgKGNvbnRhaW5zU2NoZW1lKHNjaGVtZSkpCisgICAg
ICAgIHJldHVybjsKKworICAgIFNjaGVtZVJlZ2lzdHJ5OjpyZWdpc3RlclVSTFNjaGVtZUFzTG9j
YWwoc2NoZW1lKTsKK30KKwordm9pZCBRdFdlYlNlY3VyaXR5T3JpZ2luOjpyZW1vdmVMb2NhbFNj
aGVtZShjb25zdCBRU3RyaW5nJiBzY2hlbWUpCit7CisgICAgLy8gWW91IGNhbm5vdCByZW1vdmUg
ZmlsZToKKyAgICBpZiAoc2NoZW1lID09IFFMYXRpbjFTdHJpbmcoImZpbGUiKSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgU2NoZW1lUmVnaXN0cnk6OnJlbW92ZVVSTFNjaGVtZVJlZ2lzdGVyZWRB
c0xvY2FsKHNjaGVtZSk7Cit9CisKK1FTdHJpbmdMaXN0IFF0V2ViU2VjdXJpdHlPcmlnaW46Omxv
Y2FsU2NoZW1lcygpCit7CisgICAgUVN0cmluZ0xpc3Qgc2NoZW1lczsKKyAgICBjb25zdCBVUkxT
Y2hlbWVzTWFwJiBtYXAgPSBTY2hlbWVSZWdpc3RyeTo6bG9jYWxTY2hlbWVzKCk7CisgICAgVVJM
U2NoZW1lc01hcDo6Y29uc3RfaXRlcmF0b3IgZW5kID0gbWFwLmVuZCgpOworICAgIGZvciAoVVJM
U2NoZW1lc01hcDo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtYXAuYmVnaW4oKTsgaXQgIT0gZW5kOyAr
K2l0KSB7CisgICAgICAgIGNvbnN0IFFTdHJpbmcgc2NoZW1lID0gKml0OworICAgICAgICBzY2hl
bWVzLmFwcGVuZChzY2hlbWUpOworICAgIH0KKworICAgIHJldHVybiBzY2hlbWVzOworfQorCiti
b29sIFF0V2ViU2VjdXJpdHlPcmlnaW46OmNhbkFjY2Vzcyhjb25zdCBRVXJsJiBhbm90aGVyVXJs
LCBPcmlnaW5Qb2xpY3lGbGFncyBmbGFncykKK3sKKyAgICBpZiAoc2NoZW1lKCkgPT0gUUxhdGlu
MVN0cmluZygiZGF0YSIpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoY29udGFp
bnNTY2hlbWUobV91cmwuc2NoZW1lKCkpKSB7CisgICAgICAgIGlmIChjb250YWluc1NjaGVtZShh
bm90aGVyVXJsLnNjaGVtZSgpKSAmJiAoZmxhZ3MgJiBMb2NhbENvbnRlbnRIYXNTeXN0ZW1Mb2Nh
bEFjY2VzcykpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgICAgICByZXR1cm4gbV91
cmwucGF0aCgpID09IFFGaWxlSW5mbyhtX3VybC5wYXRoKCkpLmNhbm9uaWNhbEZpbGVQYXRoKCk7
CisgICAgfQorCisgICAgcmV0dXJuIG1fdXJsLnNjaGVtZSgpID09IGFub3RoZXJVcmwuc2NoZW1l
KCkgJiYgbV91cmwuaG9zdCgpID09IGFub3RoZXJVcmwuaG9zdCgpICYmIG1fdXJsLnBvcnQoKSA9
PSBhbm90aGVyVXJsLnBvcnQoKTsKK30KKworUURhdGFTdHJlYW0mIG9wZXJhdG9yPDwoUURhdGFT
dHJlYW0mIG91dCwgY29uc3QgUXRXZWJTZWN1cml0eU9yaWdpbiAmb3JpZ2luKQoreworICAgIC8v
IEZJWE1FOiBNaWdodCBuZWVkIHNvbWUgdmVyc2lvbmluZy4KKyAgICBvdXQgPDwgKG9yaWdpbi51
cmwoKS50b0VuY29kZWQoKS5kYXRhKCkpOworICAgIHJldHVybiBvdXQ7Cit9CisKK1FEYXRhU3Ry
ZWFtJiBvcGVyYXRvcj4+KFFEYXRhU3RyZWFtJiBpbiwgUXRXZWJTZWN1cml0eU9yaWdpbiYgb3Jp
Z2luKQoreworICAgIC8vIEZJWE1FOiBNaWdodCBuZWVkIHNvbWUgdmVyc2lvbmluZy4KKyAgICBj
aGFyKiB1cmwgPSBvcmlnaW4udXJsKCkudG9FbmNvZGVkKCkuZGF0YSgpOworICAgIGluID4+IHVy
bDsKKyAgICByZXR1cm4gaW47Cit9CisKK3ZvaWQgUXRXZWJTZWN1cml0eU9yaWdpbjo6c2V0VXJs
KGNvbnN0IFFVcmwmIHVybCkKK3sKKyAgICBtX3VybCA9IHVybDsKK30KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXR3ZWJzZWN1cml0eW9yaWdpbl9wLmggYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F0d2Vic2VjdXJpdHlvcmlnaW5fcC5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNmYzI5MDUKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F0d2Vic2VjdXJpdHlvcmlnaW5f
cC5oCkBAIC0wLDAgKzEsNzEgQEAKKy8qCisgICAgQ29weXJpZ2h0IChDKSAyMDEyIE5va2lhIENv
cnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorCisgICAgVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgIG1v
ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
CisgICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
bjsgZWl0aGVyCisgICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRp
b24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVk
IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5Z
IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJD
SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl
IEdOVQorICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz
LgorCisgICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBz
ZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgICAgdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9v
ciwKKyAgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyovCisjaWZuZGVmIHF0d2Vic2Vj
dXJpdHlvcmlnaW5fcF9oCisjZGVmaW5lIHF0d2Vic2VjdXJpdHlvcmlnaW5fcF9oCisKKyNpbmNs
dWRlICJxd2Via2l0Z2xvYmFsLmgiCisKKyNpbmNsdWRlIDxRdENvcmUvUURhdGFTdHJlYW0+Cisj
aW5jbHVkZSA8UXRDb3JlL1FPYmplY3Q+CisjaW5jbHVkZSA8UXRDb3JlL1FTdHJpbmc+CisjaW5j
bHVkZSA8UXRDb3JlL1FVcmw+CisjaW5jbHVkZSA8UXRDb3JlL3FzaGFyZWRkYXRhLmg+CisKK2Ns
YXNzIFFXRUJLSVRfRVhQT1JUIFF0V2ViU2VjdXJpdHlPcmlnaW4gOiBwdWJsaWMgUU9iamVjdCB7
CisgICAgUV9PQkpFQ1QKKyAgICBRX1BST1BFUlRZKFFTdHJpbmcgc2NoZW1lIFJFQUQgc2NoZW1l
IENPTlNUQU5UKQorICAgIFFfUFJPUEVSVFkoUVN0cmluZyBob3N0IFJFQUQgaG9zdCBDT05TVEFO
VCkKKyAgICBRX1BST1BFUlRZKGludCBwb3J0IFJFQUQgcG9ydCBDT05TVEFOVCkKKyAgICBRX1BS
T1BFUlRZKFFTdHJpbmcgcGF0aCBSRUFEIHBhdGggQ09OU1RBTlQpCisgICAgUV9QUk9QRVJUWShR
VXJsIHVybCBSRUFEIHVybCBDT05TVEFOVCkKKworcHVibGljOgorICAgIFF0V2ViU2VjdXJpdHlP
cmlnaW4oY29uc3QgUVVybCYgdXJsLCBRT2JqZWN0KiBwYXJlbnQgPSAwKTsKKyAgICB2aXJ0dWFs
IH5RdFdlYlNlY3VyaXR5T3JpZ2luKCk7CisKKyAgICBRU3RyaW5nIHNjaGVtZSgpIGNvbnN0Owor
ICAgIFFTdHJpbmcgaG9zdCgpIGNvbnN0OworICAgIGludCBwb3J0KCkgY29uc3Q7CisgICAgUVN0
cmluZyBwYXRoKCkgY29uc3Q7CisgICAgUVVybCB1cmwoKSBjb25zdDsKKworICAgIHN0YXRpYyB2
b2lkIGFkZExvY2FsU2NoZW1lKGNvbnN0IFFTdHJpbmcmIHNjaGVtZSk7CisgICAgc3RhdGljIHZv
aWQgcmVtb3ZlTG9jYWxTY2hlbWUoY29uc3QgUVN0cmluZyYgc2NoZW1lKTsKKyAgICBzdGF0aWMg
UVN0cmluZ0xpc3QgbG9jYWxTY2hlbWVzKCk7CisKKyAgICB2b2lkIHNldFVybChjb25zdCBRVXJs
Jik7CisKKyAgICBlbnVtIE9yaWdpblBvbGljeUZsYWdzIHsKKyAgICAgICAgQ29udGVudEhhc1Nh
bWVPcmlnaW5BY2Nlc3MgPSAweDAsCisgICAgICAgIExvY2FsQ29udGVudEhhc1JlbW90ZUFjY2Vz
cyA9IDB4MSwKKyAgICAgICAgTG9jYWxDb250ZW50SGFzU3lzdGVtTG9jYWxBY2Nlc3MgPSAweDIK
KyAgICB9OworCisgICAgYm9vbCBjYW5BY2Nlc3MoY29uc3QgUVVybCYgdXJsLCBPcmlnaW5Qb2xp
Y3lGbGFncyBmbGFncyA9IENvbnRlbnRIYXNTYW1lT3JpZ2luQWNjZXNzKTsKKworcHJpdmF0ZToK
KyAgICBzdGF0aWMgYm9vbCBjb250YWluc1NjaGVtZShjb25zdCBRU3RyaW5nJik7CisgICAgYm9v
bCBpc0xvY2FsU2NoZW1lKGNvbnN0IFFTdHJpbmcmKTsKKyAgICBRVXJsIG1fdXJsOworfTsKKwor
UURhdGFTdHJlYW0mIG9wZXJhdG9yPDwoUURhdGFTdHJlYW0mLCBjb25zdCBRdFdlYlNlY3VyaXR5
T3JpZ2luJik7CitRRGF0YVN0cmVhbSYgb3BlcmF0b3I+PihRRGF0YVN0cmVhbSYsIFF0V2ViU2Vj
dXJpdHlPcmlnaW4mKTsKKworI2VuZGlmIC8vIHF0d2Vic2VjdXJpdHlvcmlnaW5fcF9oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwZXJtaXNzaW9ucmVx
dWVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwZXJtaXNzaW9u
cmVxdWVzdC5jcHAKaW5kZXggMTZhNDM4NS4uZGE1YWJjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2VicGVybWlzc2lvbnJlcXVlc3QuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnBlcm1pc3Npb25yZXF1ZXN0LmNwcApA
QCAtMzIsOSArMzIsMjIgQEAgcHVibGljOgogICAgICAgICA6IG9yaWdpbihzZWN1cml0eU9yaWdp
bikKICAgICAgICAgLCB0eXBlKFFXZWJQZXJtaXNzaW9uUmVxdWVzdDo6R2VvbG9jYXRpb24pCiAg
ICAgICAgICwgcmVxdWVzdChwZXJtaXNzaW9uUmVxdWVzdCkKKyAgICAgICAgLCBzZWN1cml0eUlu
Zm8oUVVybCgpLCAwKQogICAgICAgICAsIGFsbG93KGZhbHNlKQogICAgIHsKKworICAgICAgICBR
VXJsIGRhdGE7CisgICAgICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiB1cmwgPSBhZG9wdFdL
KFdLU2VjdXJpdHlPcmlnaW5Db3B5UHJvdG9jb2wob3JpZ2luLmdldCgpKSk7CisgICAgICAgIGRh
dGEuc2V0U2NoZW1lKFdLU3RyaW5nQ29weVFTdHJpbmcodXJsLmdldCgpKSk7CisKKyAgICAgICAg
V0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IGhvc3QgPSBhZG9wdFdLKFdLU2VjdXJpdHlPcmlnaW5D
b3B5SG9zdChvcmlnaW4uZ2V0KCkpKTsKKyAgICAgICAgZGF0YS5zZXRIb3N0KFdLU3RyaW5nQ29w
eVFTdHJpbmcoaG9zdC5nZXQoKSkpOworCisgICAgICAgIGRhdGEuc2V0UG9ydChzdGF0aWNfY2Fz
dDxpbnQ+KFdLU2VjdXJpdHlPcmlnaW5HZXRQb3J0KG9yaWdpbi5nZXQoKSkpKTsKKyAgICAgICAg
c2VjdXJpdHlJbmZvLnNldFVybChkYXRhKTsKKwogICAgIH0KKwogICAgIH5RV2ViUGVybWlzc2lv
blJlcXVlc3RQcml2YXRlKCkKICAgICB7CiAgICAgfQpAQCAtNDIsNiArNTUsNyBAQCBwdWJsaWM6
CiAgICAgV0tSZXRhaW5QdHI8V0tTZWN1cml0eU9yaWdpblJlZj4gb3JpZ2luOwogICAgIFFXZWJQ
ZXJtaXNzaW9uUmVxdWVzdDo6UmVxdWVzdFR5cGUgdHlwZTsKICAgICBXS1JldGFpblB0cjxXS0dl
b2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RSZWY+IHJlcXVlc3Q7CisgICAgUXRXZWJTZWN1cml0
eU9yaWdpbiBzZWN1cml0eUluZm87CiAgICAgYm9vbCBhbGxvdzsKIH07CiAKQEAgLTg4LDE5ICsx
MDIsOCBAQCBib29sIFFXZWJQZXJtaXNzaW9uUmVxdWVzdDo6YWxsb3coKSBjb25zdAogICAgIHJl
dHVybiBkLT5hbGxvdzsKIH0KIAotUVN0cmluZyBRV2ViUGVybWlzc2lvblJlcXVlc3Q6OnNjaGVt
ZSgpIGNvbnN0CitRdFdlYlNlY3VyaXR5T3JpZ2luKiBRV2ViUGVybWlzc2lvblJlcXVlc3Q6OnNl
Y3VyaXR5T3JpZ2luKCkKIHsKLSAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gdXJsID0gYWRv
cHRXSyhXS1NlY3VyaXR5T3JpZ2luQ29weVByb3RvY29sKGQtPm9yaWdpbi5nZXQoKSkpOwotICAg
IHJldHVybiBXS1N0cmluZ0NvcHlRU3RyaW5nKHVybC5nZXQoKSk7CisgICAgcmV0dXJuICYoZC0+
c2VjdXJpdHlJbmZvKTsKIH0KIAotUVN0cmluZyBRV2ViUGVybWlzc2lvblJlcXVlc3Q6Omhvc3Qo
KSBjb25zdAotewotICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBvcmlnaW4gPSBhZG9wdFdL
KFdLU2VjdXJpdHlPcmlnaW5Db3B5SG9zdChkLT5vcmlnaW4uZ2V0KCkpKTsKLSAgICByZXR1cm4g
V0tTdHJpbmdDb3B5UVN0cmluZyhvcmlnaW4uZ2V0KCkpOwotfQotCi1pbnQgUVdlYlBlcm1pc3Np
b25SZXF1ZXN0Ojpwb3J0KCkgY29uc3QKLXsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8aW50PihX
S1NlY3VyaXR5T3JpZ2luR2V0UG9ydChkLT5vcmlnaW4uZ2V0KCkpKTsKLX0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnBlcm1pc3Npb25yZXF1ZXN0X3Au
aCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnBlcm1pc3Npb25yZXF1ZXN0
X3AuaAppbmRleCA1ODI0YzRjLi4zM2FmYTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL3F0L3F3ZWJwZXJtaXNzaW9ucmVxdWVzdF9wLmgKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2VicGVybWlzc2lvbnJlcXVlc3RfcC5oCkBAIC0yMCw2
ICsyMCw3IEBACiAjaWZuZGVmIHF3ZWJwZXJtaXNzaW9ucmVxdWVzdF9wX2gKICNkZWZpbmUgcXdl
YnBlcm1pc3Npb25yZXF1ZXN0X3BfaAogCisjaW5jbHVkZSAicXR3ZWJzZWN1cml0eW9yaWdpbl9w
LmgiCiAjaW5jbHVkZSAicXdlYmtpdGdsb2JhbC5oIgogCiAjaW5jbHVkZSA8UXRDb3JlL1FPYmpl
Y3Q+CkBAIC0zMiwxMCArMzMsOCBAQCBjbGFzcyBRV2ViUGVybWlzc2lvblJlcXVlc3RQcml2YXRl
OwogY2xhc3MgUVdFQktJVF9FWFBPUlQgUVdlYlBlcm1pc3Npb25SZXF1ZXN0IDogcHVibGljIFFP
YmplY3QgewogICAgIFFfT0JKRUNUCiAgICAgUV9QUk9QRVJUWShib29sIGFsbG93IFJFQUQgYWxs
b3cgV1JJVEUgc2V0QWxsb3cpCi0gICAgUV9QUk9QRVJUWShSZXF1ZXN0VHlwZSB0eXBlIFJFQUQg
dHlwZSkKLSAgICBRX1BST1BFUlRZKFFTdHJpbmcgc2NoZW1lIFJFQUQgc2NoZW1lKQotICAgIFFf
UFJPUEVSVFkoUVN0cmluZyBob3N0IFJFQUQgaG9zdCkKLSAgICBRX1BST1BFUlRZKGludCBwb3J0
IFJFQUQgcG9ydCkKKyAgICBRX1BST1BFUlRZKFJlcXVlc3RUeXBlIHR5cGUgUkVBRCB0eXBlIENP
TlNUQU5UKQorICAgIFFfUFJPUEVSVFkoUXRXZWJTZWN1cml0eU9yaWdpbiogc2VjdXJpdHlPcmln
aW4gUkVBRCBzZWN1cml0eU9yaWdpbikKICAgICBRX0VOVU1TKFJlcXVlc3RUeXBlKQogCiBwdWJs
aWM6CkBAIC00OCwxMiArNDcsMTAgQEAgcHVibGljOgogCiAgICAgUmVxdWVzdFR5cGUgdHlwZSgp
IGNvbnN0OwogICAgIGJvb2wgYWxsb3coKSBjb25zdDsKLSAgICBRU3RyaW5nIHNjaGVtZSgpIGNv
bnN0OwotICAgIFFTdHJpbmcgaG9zdCgpIGNvbnN0OwotICAgIGludCBwb3J0KCkgY29uc3Q7CiAK
IHB1YmxpYyBRX1NMT1RTOgogICAgIHZvaWQgc2V0QWxsb3coYm9vbCk7CisgICAgUXRXZWJTZWN1
cml0eU9yaWdpbiogc2VjdXJpdHlPcmlnaW4oKTsKIAogcHJpdmF0ZToKICAgICBmcmllbmQgY2xh
c3MgUVdlYlBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvV2ViVmlldy90c3Rfb3JpZ2luLnFt
bCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvV2ViVmll
dy90c3Rfb3JpZ2luLnFtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYzM4
OTVmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90
ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3L3RzdF9vcmlnaW4ucW1sCkBAIC0wLDAgKzEsNDQgQEAKK2lt
cG9ydCBRdFF1aWNrIDIuMAoraW1wb3J0IFF0VGVzdCAxLjAKK2ltcG9ydCBRdFdlYktpdCAzLjAK
K2ltcG9ydCBRdFdlYktpdC5leHBlcmltZW50YWwgMy4wCisKK1dlYlZpZXcgeworICAgIGlkOiB3
ZWJWaWV3CisgICAgd2lkdGg6IDIwMAorICAgIGhlaWdodDogMjAwCisKKyAgICBwcm9wZXJ0eSBi
b29sIHN1Y2Nlc3M6IHRydWUKKyAgICBwcm9wZXJ0eSBpbnQgcG9ydDogMAorICAgIHByb3BlcnR5
IHN0cmluZyBzY2hlbWU6ICJmaWxlIgorCisgICAgZXhwZXJpbWVudGFsLm9uUGVybWlzc2lvblJl
cXVlc3RlZDogeworICAgICAgICBpZiAocGVybWlzc2lvbi5zZWN1cml0eU9yaWdpbi5wb3J0ICE9
IHdlYlZpZXcucG9ydCkgeworICAgICAgICAgICAgY29uc29sZS5sb2coIlBvcnQgaXMgd3Jvbmci
KQorICAgICAgICAgICAgd2ViVmlldy5zdWNjZXNzID0gZmFsc2UKKyAgICAgICAgfQorCisgICAg
ICAgIGlmIChwZXJtaXNzaW9uLnNlY3VyaXR5T3JpZ2luLnNjaGVtZSAhPSB3ZWJWaWV3LnNjaGVt
ZSkgeworICAgICAgICAgICAgY29uc29sZS5sb2coIlNjaGVtZSBpcyB3cm9uZyIpCisgICAgICAg
ICAgICB3ZWJWaWV3LnN1Y2Nlc3MgPSBmYWxzZQorICAgICAgICB9CisgICAgfQorCisgICAgVGVz
dENhc2UgeworICAgICAgICBuYW1lOiAiV2ViVmlld1NlY3VyaXR5T3JpZ2luIgorCisgICAgICAg
IC8vIERlbGF5ZWQgd2luZG93U2hvd24gdG8gd29ya2Fyb3VuZCBwcm9ibGVtcyB3aXRoIFF0NSBp
biBkZWJ1ZyBtb2RlLgorICAgICAgICB3aGVuOiBmYWxzZQorICAgICAgICBUaW1lciB7CisgICAg
ICAgICAgICBydW5uaW5nOiBwYXJlbnQud2luZG93U2hvd24KKyAgICAgICAgICAgIHJlcGVhdDog
ZmFsc2UKKyAgICAgICAgICAgIGludGVydmFsOiAxCisgICAgICAgICAgICBvblRyaWdnZXJlZDog
cGFyZW50LndoZW4gPSB0cnVlCisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiB0ZXN0X3Bl
cm1pc3Npb25SZXF1ZXN0KCkgeworICAgICAgICAgICAgd2ViVmlldy5sb2FkKFF0LnJlc29sdmVk
VXJsKCIuLi9jb21tb24vZ2VvbG9jYXRpb24uaHRtbCIpKQorICAgICAgICAgICAgY29tcGFyZSh3
ZWJWaWV3LnN1Y2Nlc3MsIHRydWUpCisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL3FtbHRlc3RzLnBy
byBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvcW1sdGVz
dHMucHJvCmluZGV4IGM4Y2U4N2EuLjUwODE5YzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvcW1sdGVzdHMucHJvCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvcW1sdGVzdHMucHJvCkBA
IC0yOSw0ICsyOSw1IEBAIE9USEVSX0ZJTEVTICs9IFwKICAgICBXZWJWaWV3L3RzdF9wcmVmZXJl
bmNlcy5xbWwgXAogICAgIFdlYlZpZXcvdHN0X3Byb3BlcnRpZXMucW1sIFwKICAgICBXZWJWaWV3
L3RzdF90aXRsZUNoYW5nZWQucW1sIFwKLSAgICBXZWJWaWV3L3RzdF9hcHBsaWNhdGlvblNjaGVt
ZS5xbWwKKyAgICBXZWJWaWV3L3RzdF9hcHBsaWNhdGlvblNjaGVtZS5xbWwgXAorICAgIFdlYlZp
ZXcvdHN0X29yaWdpbi5xbWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9xdHdlYmtpdC1leHBvcnQubWFw
IGIvU291cmNlL3F0d2Via2l0LWV4cG9ydC5tYXAKaW5kZXggYmEyZTJmYi4uYmYxMzc3NyAxMDA2
NDQKLS0tIGEvU291cmNlL3F0d2Via2l0LWV4cG9ydC5tYXAKKysrIGIvU291cmNlL3F0d2Via2l0
LWV4cG9ydC5tYXAKQEAgLTE1Niw3ICsxNTYsOSBAQCBxd2tfMS4wIHsKICAgICAgICAgUVF1aWNr
TmV0d29ya1JlcXVlc3Q6Oio7CiAgICAgICAgICpRUXVpY2tOZXR3b3JrUmVwbHk7CiAgICAgICAg
IFFRdWlja05ldHdvcmtSZXBseTo6KjsKLQorICAgICAgICAqUXRXZWJTZWN1cml0eU9yaWdpbjsK
KyAgICAgICAgbm9uLXZpcnR1YWw/dGh1bms/dG8/UXRXZWJTZWN1cml0eU9yaWdpbio7CisgICAg
ICAgIFF0V2ViU2VjdXJpdHlPcmlnaW46Oio7CiAKICAgICAgICAgIyBXZWJLaXQgMiBDIEFQSSBt
YW5nbGVkIGluIEMrKwogICAgICAgICBXS1N0cmluZ0NvcHlRU3RyaW5nKjsKLS0gCjEuNy41LjQK
Cg==
</data>
<flag name="review"
          id="124562"
          type_id="1"
          status="-"
          setter="kenneth"
    />
    <flag name="commit-queue"
          id="124563"
          type_id="3"
          status="-"
          setter="kenneth"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>123733</attachid>
            <date>2012-01-24 07:54:39 -0800</date>
            <delta_ts>2012-01-25 08:00:26 -0800</delta_ts>
            <desc>Addressing reviewers comments (still missing the versioning in stream operator)</desc>
            <filename>origin_step12.patch</filename>
            <type>text/plain</type>
            <size>18866</size>
            <attacher name="Adenilson Cavalcanti Silva">savagobr</attacher>
            
              <data encoding="base64">RnJvbSAwNjQyOGJjODUwNmE3Mzk5YTQ0ODYzYjc4MzEzNTQ4MTAzODI0NTJmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBZGVuaWxzb24gQ2F2YWxjYW50aSA8Y2F2YWxjYW50aWlAZ21h
aWwuY29tPgpEYXRlOiBTdW4sIDIyIEphbiAyMDEyIDAwOjA2OjUyIC0wNDAwClN1YmplY3Q6IFtQ
QVRDSF0gUHJldmlvdXMgZml4ZWQgKHBsdXMgQ2hhbmdlTG9nKSwgcmVtb3ZlZCB1bm5lY2Vzc2Fy
eSBoZWFkZXIKIGZpbGUsIGVsc2UgY2xhdXNlLCByZW1vdmVkIHJlZHVuZGFudCBjaGVja3MsIGNo
YW5nZWQgdGhlCiB0ZXN0IGFzIGFsc28gdGhlIG5hbWUgb2Ygc2VjdXJpdHkgb3JpZ2luIHByb3Bl
cnR5LgoKU2lnbmVkLW9mZi1ieTogQWRlbmlsc29uIENhdmFsY2FudGkgPGNhdmFsY2FudGlpQGdt
YWlsLmNvbT4KLS0tCiBDaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB8ICAgMTEgKysKIFNvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nICAgICAgICAgICAg
ICAgICAgICAgICAgIHwgICAxMiArKwogU291cmNlL1dlYktpdC9xdC9kZWNsYXJhdGl2ZS9wbHVn
aW4uY3BwICAgICAgICAgICAgfCAgICAzICsKIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHwgICAzNSArKysrKwogU291cmNlL1dlYktpdDIvVGFyZ2V0
LnByaSAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAyICsKIC4uLi9VSVByb2Nlc3MvQVBJ
L3F0L3F0d2Vic2VjdXJpdHlvcmlnaW4uY3BwICAgICAgIHwgIDEzMSArKysrKysrKysrKysrKysr
KysrKwogLi4uL1VJUHJvY2Vzcy9BUEkvcXQvcXR3ZWJzZWN1cml0eW9yaWdpbl9wLmggICAgICAg
fCAgIDcwICsrKysrKysrKysrCiAuLi4vVUlQcm9jZXNzL0FQSS9xdC9xd2VicGVybWlzc2lvbnJl
cXVlc3QuY3BwICAgICB8ICAgMjYgKystLQogLi4uL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnBlcm1p
c3Npb25yZXF1ZXN0X3AuaCAgICAgfCAgIDExICstCiAuLi4vQVBJL3F0L3Rlc3RzL3FtbHRlc3Rz
L1dlYlZpZXcvdHN0X29yaWdpbi5xbWwgICB8ICAgNTcgKysrKysrKysrCiAuLi4vVUlQcm9jZXNz
L0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9xbWx0ZXN0cy5wcm8gICB8ICAgIDMgKy0KIFNvdXJjZS9x
dHdlYmtpdC1leHBvcnQubWFwICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgNCArLQogMTIg
ZmlsZXMgY2hhbmdlZCwgMzQzIGluc2VydGlvbnMoKyksIDIyIGRlbGV0aW9ucygtKQogY3JlYXRl
IG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXR3ZWJzZWN1cml0
eW9yaWdpbi5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL3F0L3F0d2Vic2VjdXJpdHlvcmlnaW5fcC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3L3RzdF9vcmln
aW4ucW1sCgpkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hhbmdlTG9nCmluZGV4IGM2ZDI4ZGUu
LjBhYWM3YTQgMTAwNjQ0Ci0tLSBhL0NoYW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNCBAQAorMjAxMi0wMS0yMSAgQWRlbmlsc29uIENhdmFsY2FudGkgIDxjYXZhbGNhbnRpaUBn
bWFpbC5jb20+CisKKyAgICAgICAgW1F0XVtXSzJdIFNwbGl0IFFXZWJQZXJtaXNzaW9uUmVxdWVz
dCBpbnRvIFFXZWJTZWN1cml0eU9yaWdpbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NzMyMTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBJbnRyb2R1Y2luZyBhIG5ldyBjbGFzcyB0byBleHBvc2Ugc2VjdXJp
dHkgb3JpZ2luIGluZm9ybWF0aW9uLgorCisgICAgICAgICogU291cmNlL3F0d2Via2l0LWV4cG9y
dC5tYXA6CisKIDIwMTItMDEtMjQgIFNpbW9uIEhhdXNtYW5uICA8c2ltb24uaGF1c21hbm5Abm9r
aWEuY29tPgogCiAgICAgICAgIFNvbWUgcW1ha2UgYnVpbGQgZmlsZXMgbXVzdCBpbmNsdWRlIFF0
NSdzICJxdWljayIgbW9kdWxlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwppbmRleCA4YTUwZjY1Li5jZDZjMjE5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTAxLTIxICBBZGVuaWxzb24gQ2F2
YWxjYW50aSAgPGNhdmFsY2FudGlpQGdtYWlsLmNvbT4KKworICAgICAgICBbUXRdW1dLMl0gU3Bs
aXQgUVdlYlBlcm1pc3Npb25SZXF1ZXN0IGludG8gUVdlYlNlY3VyaXR5T3JpZ2luCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzIxNQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEV4cG9ydCB0aGUgc2VjdXJp
dHkgb3JpZ2luIGNsYXNzIHRvIFFNTC4KKworICAgICAgICAqIGRlY2xhcmF0aXZlL3BsdWdpbi5j
cHA6CisgICAgICAgIChXZWJLaXRRbWxQbHVnaW46OnJlZ2lzdGVyVHlwZXMpOgorCiAyMDEyLTAx
LTE3ICBWaWF0Y2hlc2xhdiBPc3RhcGVua28gIDxvc3RhcGVua28udmlhdGNoZXNsYXZAbm9raWEu
Y29tPgogCiAgICAgICAgIFtRdF0gRGVidWcgYnVpbGQgZmFpbHMgd2l0aCBkZWJ1ZyBxdDUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvZGVjbGFyYXRpdmUvcGx1Z2luLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvcXQvZGVjbGFyYXRpdmUvcGx1Z2luLmNwcAppbmRleCA2NDYzOGU0Li5lMmYwZmIz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L2RlY2xhcmF0aXZlL3BsdWdpbi5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9xdC9kZWNsYXJhdGl2ZS9wbHVnaW4uY3BwCkBAIC0yNSw2ICsyNSw3
IEBACiAjaWYgZGVmaW5lZChIQVZFX1dFQktJVDIpCiAjaW5jbHVkZSAicXF1aWNrd2VicGFnZV9w
LmgiCiAjaW5jbHVkZSAicXF1aWNrd2Vidmlld19wLmgiCisjaW5jbHVkZSAicXR3ZWJzZWN1cml0
eW9yaWdpbl9wLmgiCiAjaW5jbHVkZSAicXdlYmljb25pbWFnZXByb3ZpZGVyX3AuaCIKICNpbmNs
dWRlICJxd2VibmF2aWdhdGlvbnJlcXVlc3RfcC5oIgogI2luY2x1ZGUgInF3ZWJwZXJtaXNzaW9u
cmVxdWVzdF9wLmgiCkBAIC02NSw2ICs2Niw4IEBAIHB1YmxpYzoKICAgICAgICAgcW1sUmVnaXN0
ZXJVbmNyZWF0YWJsZVR5cGU8UU5ldHdvcmtSZXBseT4odXJpLCAzLCAwLCAiTmV0d29ya1JlcGx5
IiwgUU9iamVjdDo6dHIoIkNhbm5vdCBjcmVhdGUgc2VwYXJhdGUgaW5zdGFuY2Ugb2YgTmV0d29y
a1JlcGx5IikpOwogICAgICAgICBxbWxSZWdpc3RlclVuY3JlYXRhYmxlVHlwZTxRV2ViUGVybWlz
c2lvblJlcXVlc3Q+KHVyaSwgMywgMCwgIlBlcm1pc3Npb25SZXF1ZXN0IiwgUU9iamVjdDo6dHIo
IkNhbm5vdCBjcmVhdGUgc2VwYXJhdGUgaW5zdGFuY2Ugb2YgUGVybWlzc2lvblJlcXVlc3QiKSk7
CiAgICAgICAgIHFtbFJlZ2lzdGVyVW5jcmVhdGFibGVUeXBlPFFXZWJOYXZpZ2F0aW9uUmVxdWVz
dD4odXJpLCAzLCAwLCAiTmF2aWdhdGlvblJlcXVlc3QiLCBRT2JqZWN0Ojp0cigiQ2Fubm90IGNy
ZWF0ZSBzZXBhcmF0ZSBpbnN0YW5jZSBvZiBOYXZpZ2F0aW9uUmVxdWVzdCIpKTsKKyAgICAgICAg
cW1sUmVnaXN0ZXJVbmNyZWF0YWJsZVR5cGU8UXRXZWJTZWN1cml0eU9yaWdpbj4odXJpLCAzLCAw
LCAiU2VjdXJpdHlPcmlnaW4iLCBRT2JqZWN0Ojp0cigiQ2Fubm90IGNyZWF0ZSBzZXBhcmF0ZSBp
bnN0YW5jZSBvZiBTZWN1cml0eU9yaWdpbiIpKTsKKwogI2VuZGlmCiAgICAgfQogfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZwppbmRleCBlZDljYzg2Li5iMWJkODg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzggQEAKKzIw
MTItMDEtMjEgIEFkZW5pbHNvbiBDYXZhbGNhbnRpICA8Y2F2YWxjYW50aWlAZ21haWwuY29tPgor
CisgICAgICAgIFtRdF1bV0syXSBTcGxpdCBRV2ViUGVybWlzc2lvblJlcXVlc3QgaW50byBRV2Vi
U2VjdXJpdHlPcmlnaW4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTczMjE1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgSW50cm9kdWNpbmcgYSBuZXcgY2xhc3MgdG8gZXhwb3NlIHNlY3VyaXR5IG9yaWdpbiBp
bmZvcm1hdGlvbi4KKworICAgICAgICAqIFRhcmdldC5wcmk6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9xdC9xdHdlYnNlY3VyaXR5b3JpZ2luLmNwcDogQWRkZWQuCisgICAgICAgIChRdFdlYlNl
Y3VyaXR5T3JpZ2luOjpjb250YWluc1NjaGVtZSk6CisgICAgICAgIChRdFdlYlNlY3VyaXR5T3Jp
Z2luOjppc0xvY2FsU2NoZW1lKToKKyAgICAgICAgKFF0V2ViU2VjdXJpdHlPcmlnaW46OlF0V2Vi
U2VjdXJpdHlPcmlnaW4pOgorICAgICAgICAoUXRXZWJTZWN1cml0eU9yaWdpbjo6flF0V2ViU2Vj
dXJpdHlPcmlnaW4pOgorICAgICAgICAoUXRXZWJTZWN1cml0eU9yaWdpbjo6aG9zdCk6CisgICAg
ICAgIChRdFdlYlNlY3VyaXR5T3JpZ2luOjpzY2hlbWUpOgorICAgICAgICAoUXRXZWJTZWN1cml0
eU9yaWdpbjo6cGF0aCk6CisgICAgICAgIChRdFdlYlNlY3VyaXR5T3JpZ2luOjpwb3J0KToKKyAg
ICAgICAgKFF0V2ViU2VjdXJpdHlPcmlnaW46OnVybCk6CisgICAgICAgIChRdFdlYlNlY3VyaXR5
T3JpZ2luOjphZGRMb2NhbFNjaGVtZSk6CisgICAgICAgIChRdFdlYlNlY3VyaXR5T3JpZ2luOjpy
ZW1vdmVMb2NhbFNjaGVtZSk6CisgICAgICAgIChRdFdlYlNlY3VyaXR5T3JpZ2luOjpsb2NhbFNj
aGVtZXMpOgorICAgICAgICAoUXRXZWJTZWN1cml0eU9yaWdpbjo6Y2FuQWNjZXNzKToKKyAgICAg
ICAgKG9wZXJhdG9yPDwpOgorICAgICAgICAob3BlcmF0b3I+Pik6CisgICAgICAgIChRdFdlYlNl
Y3VyaXR5T3JpZ2luOjpzZXRVcmwpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXR3ZWJz
ZWN1cml0eW9yaWdpbl9wLmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvdGVz
dHMvcW1sdGVzdHMvV2ViVmlldy90c3Rfb3JpZ2luLnFtbDogQWRkZWQuCisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9xdC9xd2VicGVybWlzc2lvbnJlcXVlc3QuY3BwOgorICAgICAgICAoUVdlYlBl
cm1pc3Npb25SZXF1ZXN0UHJpdmF0ZTo6UVdlYlBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZSk6Cisg
ICAgICAgIChRV2ViUGVybWlzc2lvblJlcXVlc3Q6OnNlY3VyaXR5T3JpZ2luKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL3F0L3F3ZWJwZXJtaXNzaW9ucmVxdWVzdF9wLmg6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9xbWx0ZXN0cy5wcm86CisKIDIwMTItMDEt
MjQgIFplbm8gQWxiaXNzZXIgIDx6ZW5vQHdlYmtpdC5vcmc+CiAKICAgICAgICAgW1F0XVtXSzJd
IEFkZCB0ZXN0IGZvciBhcHBsaWNhdGlvbiBVUkwgc2NoZW1lcy4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpCmluZGV4IDY3
MDRjYWMuLjU0MzQ0ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1RhcmdldC5wcmkKKysr
IGIvU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaQpAQCAtMTczLDYgKzE3Myw3IEBAIEhFQURFUlMg
Kz0gXAogICAgIFVJUHJvY2Vzcy9BUEkvcXQvcXdlYmRvd25sb2FkaXRlbV9wLmggXAogICAgIFVJ
UHJvY2Vzcy9BUEkvcXQvcXdlYmRvd25sb2FkaXRlbV9wX3AuaCBcCiAgICAgVUlQcm9jZXNzL0FQ
SS9xdC9xd2VicGVybWlzc2lvbnJlcXVlc3RfcC5oIFwKKyAgICBVSVByb2Nlc3MvQVBJL3F0L3F0
d2Vic2VjdXJpdHlvcmlnaW5fcC5oIFwKICAgICBVSVByb2Nlc3MvQVBJL3F0L3F3ZWJuYXZpZ2F0
aW9ucmVxdWVzdF9wLmggXAogICAgIFVJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2VicGFnZV9wLmgg
XAogICAgIFVJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2VicGFnZV9wX3AuaCBcCkBAIC01MDEsNiAr
NTAyLDcgQEAgU09VUkNFUyArPSBcCiAgICAgVUlQcm9jZXNzL0FQSS9jcHAvcXQvV0tVUkxRdC5j
cHAgXAogICAgIFVJUHJvY2Vzcy9BUEkvcXQvcXdlYmRvd25sb2FkaXRlbS5jcHAgXAogICAgIFVJ
UHJvY2Vzcy9BUEkvcXQvcXdlYnBlcm1pc3Npb25yZXF1ZXN0LmNwcCBcCisgICAgVUlQcm9jZXNz
L0FQSS9xdC9xdHdlYnNlY3VyaXR5b3JpZ2luLmNwcCBcCiAgICAgVUlQcm9jZXNzL0FQSS9xdC9x
d2VibmF2aWdhdGlvbnJlcXVlc3QuY3BwIFwKICAgICBVSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dl
YnBhZ2UuY3BwIFwKICAgICBVSVByb2Nlc3MvQVBJL3F0L3F3ZWJuYXZpZ2F0aW9uaGlzdG9yeS5j
cHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xdHdlYnNl
Y3VyaXR5b3JpZ2luLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXR3ZWJz
ZWN1cml0eW9yaWdpbi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmEy
NzVmNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQv
cXR3ZWJzZWN1cml0eW9yaWdpbi5jcHAKQEAgLTAsMCArMSwxMzEgQEAKKy8qCisgICAgQ29weXJp
Z2h0IChDKSAyMDEyIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVz
KQorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNl
bnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICAgVGhpcyBs
aWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws
CisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg
d2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg
Y29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgIGFsb25n
IHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdy
aXRlIHRvCisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmts
aW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4K
KyovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJxdHdlYnNlY3VyaXR5b3JpZ2lu
X3AuaCIKKworI2luY2x1ZGUgPFF0Q29yZS9RRmlsZUluZm8+CisjaW5jbHVkZSA8UXRDb3JlL1FT
dHJpbmdMaXN0PgorI2luY2x1ZGUgPFNjaGVtZVJlZ2lzdHJ5Lmg+CisjaW5jbHVkZSA8U2VjdXJp
dHlPcmlnaW4uaD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLQmFzZS5oPgorI2luY2x1ZGUgPFdlYktp
dDIvV0tSZXRhaW5QdHIuaD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLU2VjdXJpdHlPcmlnaW4uaD4K
KwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK2Jvb2wgUXRXZWJTZWN1cml0eU9yaWdpbjo6
Y29udGFpbnNTY2hlbWUoY29uc3QgUVN0cmluZyYgc2NoZW1lKQoreworICAgIGNvbnN0IFVSTFNj
aGVtZXNNYXAmIG1hcCA9IFNjaGVtZVJlZ2lzdHJ5Ojpsb2NhbFNjaGVtZXMoKTsKKyAgICByZXR1
cm4gbWFwLmNvbnRhaW5zKHNjaGVtZSk7Cit9CisKK1F0V2ViU2VjdXJpdHlPcmlnaW46OlF0V2Vi
U2VjdXJpdHlPcmlnaW4oUU9iamVjdCogcGFyZW50KQorICAgIDogUU9iamVjdChwYXJlbnQpCit7
Cit9CisKK1F0V2ViU2VjdXJpdHlPcmlnaW46On5RdFdlYlNlY3VyaXR5T3JpZ2luKCkKK3sKK30K
KworUVN0cmluZyBRdFdlYlNlY3VyaXR5T3JpZ2luOjpob3N0KCkgY29uc3QKK3sKKyAgICByZXR1
cm4gbV91cmwuaG9zdCgpOworfQorCitRU3RyaW5nIFF0V2ViU2VjdXJpdHlPcmlnaW46OnNjaGVt
ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fdXJsLnNjaGVtZSgpOworfQorCitRU3RyaW5nIFF0
V2ViU2VjdXJpdHlPcmlnaW46OnBhdGgoKSBjb25zdAoreworICAgIHJldHVybiBtX3VybC5wYXRo
KCk7Cit9CisKK2ludCBRdFdlYlNlY3VyaXR5T3JpZ2luOjpwb3J0KCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gbV91cmwucG9ydCgpOworfQorCitRVXJsIFF0V2ViU2VjdXJpdHlPcmlnaW46OnVybCgp
IGNvbnN0Cit7CisgICAgcmV0dXJuIG1fdXJsOworfQorCit2b2lkIFF0V2ViU2VjdXJpdHlPcmln
aW46OmFkZExvY2FsU2NoZW1lKGNvbnN0IFFTdHJpbmcmIHNjaGVtZSkKK3sKKyAgICBTY2hlbWVS
ZWdpc3RyeTo6cmVnaXN0ZXJVUkxTY2hlbWVBc0xvY2FsKHNjaGVtZSk7Cit9CisKK3ZvaWQgUXRX
ZWJTZWN1cml0eU9yaWdpbjo6cmVtb3ZlTG9jYWxTY2hlbWUoY29uc3QgUVN0cmluZyYgc2NoZW1l
KQoreworICAgIFNjaGVtZVJlZ2lzdHJ5OjpyZW1vdmVVUkxTY2hlbWVSZWdpc3RlcmVkQXNMb2Nh
bChzY2hlbWUpOworfQorCitRU3RyaW5nTGlzdCBRdFdlYlNlY3VyaXR5T3JpZ2luOjpsb2NhbFNj
aGVtZXMoKQoreworICAgIFFTdHJpbmdMaXN0IHNjaGVtZXM7CisgICAgY29uc3QgVVJMU2NoZW1l
c01hcCYgbWFwID0gU2NoZW1lUmVnaXN0cnk6OmxvY2FsU2NoZW1lcygpOworICAgIFVSTFNjaGVt
ZXNNYXA6OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IG1hcC5lbmQoKTsKKyAgICBmb3IgKFVSTFNjaGVt
ZXNNYXA6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbWFwLmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkg
eworICAgICAgICBjb25zdCBRU3RyaW5nIHNjaGVtZSA9ICppdDsKKyAgICAgICAgc2NoZW1lcy5h
cHBlbmQoc2NoZW1lKTsKKyAgICB9CisKKyAgICByZXR1cm4gc2NoZW1lczsKK30KKworYm9vbCBR
dFdlYlNlY3VyaXR5T3JpZ2luOjpjYW5BY2Nlc3MoY29uc3QgUVVybCYgdXJsLCBPcmlnaW5Qb2xp
Y3lGbGFncyBmbGFncykKK3sKKyAgICBpZiAoc2NoZW1lKCkgPT0gUUxhdGluMVN0cmluZygiZGF0
YSIpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoY29udGFpbnNTY2hlbWUobV91
cmwuc2NoZW1lKCkpKSB7CisgICAgICAgIGlmIChjb250YWluc1NjaGVtZSh1cmwuc2NoZW1lKCkp
ICYmIChmbGFncyAmIExvY2FsQ29udGVudEhhc1N5c3RlbUxvY2FsQWNjZXNzKSkKKyAgICAgICAg
ICAgIHJldHVybiB0cnVlOworCisgICAgICAgIHJldHVybiBtX3VybC5wYXRoKCkgPT0gUUZpbGVJ
bmZvKG1fdXJsLnBhdGgoKSkuY2Fub25pY2FsRmlsZVBhdGgoKTsKKyAgICB9CisKKyAgICByZXR1
cm4gbV91cmwuc2NoZW1lKCkgPT0gdXJsLnNjaGVtZSgpICYmIG1fdXJsLmhvc3QoKSA9PSB1cmwu
aG9zdCgpICYmIG1fdXJsLnBvcnQoKSA9PSB1cmwucG9ydCgpOworfQorCitRRGF0YVN0cmVhbSYg
b3BlcmF0b3I8PChRRGF0YVN0cmVhbSYgb3V0LCBjb25zdCBRdFdlYlNlY3VyaXR5T3JpZ2luICZv
cmlnaW4pCit7CisgICAgLy8gRklYTUU6IE1pZ2h0IG5lZWQgc29tZSB2ZXJzaW9uaW5nLgorICAg
IG91dCA8PCAob3JpZ2luLnVybCgpLnRvRW5jb2RlZCgpLmRhdGEoKSk7CisgICAgcmV0dXJuIG91
dDsKK30KKworUURhdGFTdHJlYW0mIG9wZXJhdG9yPj4oUURhdGFTdHJlYW0mIGluLCBRdFdlYlNl
Y3VyaXR5T3JpZ2luJiBvcmlnaW4pCit7CisgICAgLy8gRklYTUU6IE1pZ2h0IG5lZWQgc29tZSB2
ZXJzaW9uaW5nLgorICAgIGNoYXIqIHVybCA9IG9yaWdpbi51cmwoKS50b0VuY29kZWQoKS5kYXRh
KCk7CisgICAgaW4gPj4gdXJsOworICAgIHJldHVybiBpbjsKK30KKworLy8gVXNlZCB0byBzZXQg
c2VjdXJpdHkgaW5mb3JtYXRpb24gaW4gYSBwZXJtaXNzaW9uIHJlcXVlc3QgZXZlbnQgKGUuZy4K
Ky8vIGdlb2xvY2F0aW9uIHBlcm1pc3Npb24pCit2b2lkIFF0V2ViU2VjdXJpdHlPcmlnaW46OnNl
dFVybChjb25zdCBRVXJsJiB1cmwpCit7CisgICAgbV91cmwgPSB1cmw7Cit9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F0d2Vic2VjdXJpdHlvcmlnaW5fcC5o
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xdHdlYnNlY3VyaXR5b3JpZ2luX3Au
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MzhhMWIxCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xdHdlYnNlY3VyaXR5b3Jp
Z2luX3AuaApAQCAtMCwwICsxLDcwIEBACisvKgorICAgIENvcHlyaWdodCAoQykgMjAxMiBOb2tp
YSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKworICAgIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAg
ICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYworICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb247IGVpdGhlcgorICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIg
b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmli
dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgIGJ1dCBXSVRIT1VU
IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICAg
TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl
IHRoZSBHTlUKKyAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0
YWlscy4KKworICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFy
eTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICAgIHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGgg
Rmxvb3IsCisgICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisqLworI2lmbmRlZiBxdHdl
YnNlY3VyaXR5b3JpZ2luX3BfaAorI2RlZmluZSBxdHdlYnNlY3VyaXR5b3JpZ2luX3BfaAorCisj
aW5jbHVkZSAicXdlYmtpdGdsb2JhbC5oIgorCisjaW5jbHVkZSA8UXRDb3JlL1FEYXRhU3RyZWFt
PgorI2luY2x1ZGUgPFF0Q29yZS9RT2JqZWN0PgorI2luY2x1ZGUgPFF0Q29yZS9RU3RyaW5nPgor
I2luY2x1ZGUgPFF0Q29yZS9RVXJsPgorI2luY2x1ZGUgPFF0Q29yZS9xc2hhcmVkZGF0YS5oPgor
CitjbGFzcyBRV0VCS0lUX0VYUE9SVCBRdFdlYlNlY3VyaXR5T3JpZ2luIDogcHVibGljIFFPYmpl
Y3QgeworICAgIFFfT0JKRUNUCisgICAgUV9QUk9QRVJUWShRU3RyaW5nIHNjaGVtZSBSRUFEIHNj
aGVtZSBDT05TVEFOVCkKKyAgICBRX1BST1BFUlRZKFFTdHJpbmcgaG9zdCBSRUFEIGhvc3QgQ09O
U1RBTlQpCisgICAgUV9QUk9QRVJUWShpbnQgcG9ydCBSRUFEIHBvcnQgQ09OU1RBTlQpCisgICAg
UV9QUk9QRVJUWShRU3RyaW5nIHBhdGggUkVBRCBwYXRoIENPTlNUQU5UKQorICAgIFFfUFJPUEVS
VFkoUVVybCB1cmwgUkVBRCB1cmwgQ09OU1RBTlQpCisKK3B1YmxpYzoKKyAgICBRdFdlYlNlY3Vy
aXR5T3JpZ2luKFFPYmplY3QqIHBhcmVudCA9IDApOworICAgIHZpcnR1YWwgflF0V2ViU2VjdXJp
dHlPcmlnaW4oKTsKKworICAgIFFTdHJpbmcgc2NoZW1lKCkgY29uc3Q7CisgICAgUVN0cmluZyBo
b3N0KCkgY29uc3Q7CisgICAgaW50IHBvcnQoKSBjb25zdDsKKyAgICBRU3RyaW5nIHBhdGgoKSBj
b25zdDsKKyAgICBRVXJsIHVybCgpIGNvbnN0OworCisgICAgc3RhdGljIHZvaWQgYWRkTG9jYWxT
Y2hlbWUoY29uc3QgUVN0cmluZyYgc2NoZW1lKTsKKyAgICBzdGF0aWMgdm9pZCByZW1vdmVMb2Nh
bFNjaGVtZShjb25zdCBRU3RyaW5nJiBzY2hlbWUpOworICAgIHN0YXRpYyBRU3RyaW5nTGlzdCBs
b2NhbFNjaGVtZXMoKTsKKworICAgIHZvaWQgc2V0VXJsKGNvbnN0IFFVcmwmKTsKKworICAgIGVu
dW0gT3JpZ2luUG9saWN5RmxhZ3MgeworICAgICAgICBDb250ZW50SGFzU2FtZU9yaWdpbkFjY2Vz
cyA9IDB4MCwKKyAgICAgICAgTG9jYWxDb250ZW50SGFzUmVtb3RlQWNjZXNzID0gMHgxLAorICAg
ICAgICBMb2NhbENvbnRlbnRIYXNTeXN0ZW1Mb2NhbEFjY2VzcyA9IDB4MgorICAgIH07CisKKyAg
ICBib29sIGNhbkFjY2Vzcyhjb25zdCBRVXJsJiB1cmwsIE9yaWdpblBvbGljeUZsYWdzIGZsYWdz
ID0gQ29udGVudEhhc1NhbWVPcmlnaW5BY2Nlc3MpOworCitwcml2YXRlOgorICAgIHN0YXRpYyBi
b29sIGNvbnRhaW5zU2NoZW1lKGNvbnN0IFFTdHJpbmcmKTsKKyAgICBRVXJsIG1fdXJsOworfTsK
KworUURhdGFTdHJlYW0mIG9wZXJhdG9yPDwoUURhdGFTdHJlYW0mLCBjb25zdCBRdFdlYlNlY3Vy
aXR5T3JpZ2luJik7CitRRGF0YVN0cmVhbSYgb3BlcmF0b3I+PihRRGF0YVN0cmVhbSYsIFF0V2Vi
U2VjdXJpdHlPcmlnaW4mKTsKKworI2VuZGlmIC8vIHF0d2Vic2VjdXJpdHlvcmlnaW5fcF9oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwZXJtaXNzaW9u
cmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwZXJtaXNz
aW9ucmVxdWVzdC5jcHAKaW5kZXggMTZhNDM4NS4uYTI4Yzk1ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2VicGVybWlzc2lvbnJlcXVlc3QuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnBlcm1pc3Npb25yZXF1ZXN0LmNw
cApAQCAtMzQsNyArMzQsMTcgQEAgcHVibGljOgogICAgICAgICAsIHJlcXVlc3QocGVybWlzc2lv
blJlcXVlc3QpCiAgICAgICAgICwgYWxsb3coZmFsc2UpCiAgICAgeworICAgICAgICBRVXJsIGRh
dGE7CisgICAgICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiB1cmwgPSBhZG9wdFdLKFdLU2Vj
dXJpdHlPcmlnaW5Db3B5UHJvdG9jb2wob3JpZ2luLmdldCgpKSk7CisgICAgICAgIGRhdGEuc2V0
U2NoZW1lKFdLU3RyaW5nQ29weVFTdHJpbmcodXJsLmdldCgpKSk7CisKKyAgICAgICAgV0tSZXRh
aW5QdHI8V0tTdHJpbmdSZWY+IGhvc3QgPSBhZG9wdFdLKFdLU2VjdXJpdHlPcmlnaW5Db3B5SG9z
dChvcmlnaW4uZ2V0KCkpKTsKKyAgICAgICAgZGF0YS5zZXRIb3N0KFdLU3RyaW5nQ29weVFTdHJp
bmcoaG9zdC5nZXQoKSkpOworCisgICAgICAgIGRhdGEuc2V0UG9ydChzdGF0aWNfY2FzdDxpbnQ+
KFdLU2VjdXJpdHlPcmlnaW5HZXRQb3J0KG9yaWdpbi5nZXQoKSkpKTsKKyAgICAgICAgc2VjdXJp
dHlJbmZvLnNldFVybChkYXRhKTsKICAgICB9CisKICAgICB+UVdlYlBlcm1pc3Npb25SZXF1ZXN0
UHJpdmF0ZSgpCiAgICAgewogICAgIH0KQEAgLTQyLDYgKzUyLDcgQEAgcHVibGljOgogICAgIFdL
UmV0YWluUHRyPFdLU2VjdXJpdHlPcmlnaW5SZWY+IG9yaWdpbjsKICAgICBRV2ViUGVybWlzc2lv
blJlcXVlc3Q6OlJlcXVlc3RUeXBlIHR5cGU7CiAgICAgV0tSZXRhaW5QdHI8V0tHZW9sb2NhdGlv
blBlcm1pc3Npb25SZXF1ZXN0UmVmPiByZXF1ZXN0OworICAgIFF0V2ViU2VjdXJpdHlPcmlnaW4g
c2VjdXJpdHlJbmZvOwogICAgIGJvb2wgYWxsb3c7CiB9OwogCkBAIC04OCwxOSArOTksOCBAQCBi
b29sIFFXZWJQZXJtaXNzaW9uUmVxdWVzdDo6YWxsb3coKSBjb25zdAogICAgIHJldHVybiBkLT5h
bGxvdzsKIH0KIAotUVN0cmluZyBRV2ViUGVybWlzc2lvblJlcXVlc3Q6OnNjaGVtZSgpIGNvbnN0
Ci17Ci0gICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHVybCA9IGFkb3B0V0soV0tTZWN1cml0
eU9yaWdpbkNvcHlQcm90b2NvbChkLT5vcmlnaW4uZ2V0KCkpKTsKLSAgICByZXR1cm4gV0tTdHJp
bmdDb3B5UVN0cmluZyh1cmwuZ2V0KCkpOwotfQotCi1RU3RyaW5nIFFXZWJQZXJtaXNzaW9uUmVx
dWVzdDo6aG9zdCgpIGNvbnN0CitRdFdlYlNlY3VyaXR5T3JpZ2luKiBRV2ViUGVybWlzc2lvblJl
cXVlc3Q6OnNlY3VyaXR5T3JpZ2luKCkKIHsKLSAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4g
b3JpZ2luID0gYWRvcHRXSyhXS1NlY3VyaXR5T3JpZ2luQ29weUhvc3QoZC0+b3JpZ2luLmdldCgp
KSk7Ci0gICAgcmV0dXJuIFdLU3RyaW5nQ29weVFTdHJpbmcob3JpZ2luLmdldCgpKTsKKyAgICBy
ZXR1cm4gJihkLT5zZWN1cml0eUluZm8pOwogfQogCi1pbnQgUVdlYlBlcm1pc3Npb25SZXF1ZXN0
Ojpwb3J0KCkgY29uc3QKLXsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8aW50PihXS1NlY3VyaXR5
T3JpZ2luR2V0UG9ydChkLT5vcmlnaW4uZ2V0KCkpKTsKLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnBlcm1pc3Npb25yZXF1ZXN0X3AuaCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnBlcm1pc3Npb25yZXF1ZXN0X3AuaAppbmRl
eCA1ODI0YzRjLi40NzA4YjcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL3F0L3F3ZWJwZXJtaXNzaW9ucmVxdWVzdF9wLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9xdC9xd2VicGVybWlzc2lvbnJlcXVlc3RfcC5oCkBAIC0yMCw2ICsyMCw3IEBA
CiAjaWZuZGVmIHF3ZWJwZXJtaXNzaW9ucmVxdWVzdF9wX2gKICNkZWZpbmUgcXdlYnBlcm1pc3Np
b25yZXF1ZXN0X3BfaAogCisjaW5jbHVkZSAicXR3ZWJzZWN1cml0eW9yaWdpbl9wLmgiCiAjaW5j
bHVkZSAicXdlYmtpdGdsb2JhbC5oIgogCiAjaW5jbHVkZSA8UXRDb3JlL1FPYmplY3Q+CkBAIC0z
MiwxMCArMzMsOCBAQCBjbGFzcyBRV2ViUGVybWlzc2lvblJlcXVlc3RQcml2YXRlOwogY2xhc3Mg
UVdFQktJVF9FWFBPUlQgUVdlYlBlcm1pc3Npb25SZXF1ZXN0IDogcHVibGljIFFPYmplY3Qgewog
ICAgIFFfT0JKRUNUCiAgICAgUV9QUk9QRVJUWShib29sIGFsbG93IFJFQUQgYWxsb3cgV1JJVEUg
c2V0QWxsb3cpCi0gICAgUV9QUk9QRVJUWShSZXF1ZXN0VHlwZSB0eXBlIFJFQUQgdHlwZSkKLSAg
ICBRX1BST1BFUlRZKFFTdHJpbmcgc2NoZW1lIFJFQUQgc2NoZW1lKQotICAgIFFfUFJPUEVSVFko
UVN0cmluZyBob3N0IFJFQUQgaG9zdCkKLSAgICBRX1BST1BFUlRZKGludCBwb3J0IFJFQUQgcG9y
dCkKKyAgICBRX1BST1BFUlRZKFJlcXVlc3RUeXBlIHR5cGUgUkVBRCB0eXBlIENPTlNUQU5UKQor
ICAgIFFfUFJPUEVSVFkoUXRXZWJTZWN1cml0eU9yaWdpbiogb3JpZ2luIFJFQUQgc2VjdXJpdHlP
cmlnaW4pCiAgICAgUV9FTlVNUyhSZXF1ZXN0VHlwZSkKIAogcHVibGljOgpAQCAtNDgsMTIgKzQ3
LDEwIEBAIHB1YmxpYzoKIAogICAgIFJlcXVlc3RUeXBlIHR5cGUoKSBjb25zdDsKICAgICBib29s
IGFsbG93KCkgY29uc3Q7Ci0gICAgUVN0cmluZyBzY2hlbWUoKSBjb25zdDsKLSAgICBRU3RyaW5n
IGhvc3QoKSBjb25zdDsKLSAgICBpbnQgcG9ydCgpIGNvbnN0OwogCiBwdWJsaWMgUV9TTE9UUzoK
ICAgICB2b2lkIHNldEFsbG93KGJvb2wpOworICAgIFF0V2ViU2VjdXJpdHlPcmlnaW4qIHNlY3Vy
aXR5T3JpZ2luKCk7CiAKIHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNzIFFXZWJQZXJtaXNzaW9u
UmVxdWVzdFByaXZhdGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L3F0L3Rlc3RzL3FtbHRlc3RzL1dlYlZpZXcvdHN0X29yaWdpbi5xbWwgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL1dlYlZpZXcvdHN0X29yaWdpbi5xbWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWQwMmI3OAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvV2Vi
Vmlldy90c3Rfb3JpZ2luLnFtbApAQCAtMCwwICsxLDU3IEBACitpbXBvcnQgUXRRdWljayAyLjAK
K2ltcG9ydCBRdFRlc3QgMS4wCitpbXBvcnQgUXRXZWJLaXQgMy4wCitpbXBvcnQgUXRXZWJLaXQu
ZXhwZXJpbWVudGFsIDMuMAorCitXZWJWaWV3IHsKKyAgICBpZDogd2ViVmlldworICAgIHdpZHRo
OiAyMDAKKyAgICBoZWlnaHQ6IDIwMAorCisgICAgcHJvcGVydHkgYm9vbCBzdWNjZXNzOiB0cnVl
CisgICAgcHJvcGVydHkgaW50IHBvcnQ6IDAKKyAgICBwcm9wZXJ0eSBzdHJpbmcgc2NoZW1lOiAi
ZmlsZSIKKworICAgIFNpZ25hbFNweSB7CisgICAgICAgIGlkOiBzcHkKKyAgICAgICAgdGFyZ2V0
OiBleHBlcmltZW50YWwKKyAgICAgICAgc2lnbmFsTmFtZTogInBlcm1pc3Npb25SZXF1ZXN0ZWQi
CisgICAgfQorCisgICAgZXhwZXJpbWVudGFsLm9uUGVybWlzc2lvblJlcXVlc3RlZDogeworICAg
ICAgICBpZiAocGVybWlzc2lvbi5vcmlnaW4ucG9ydCAhPSB3ZWJWaWV3LnBvcnQpIHsKKyAgICAg
ICAgICAgIGNvbnNvbGUubG9nKCJFeHBlY3RlZCBwb3J0IHZhbHVlIHNob3VsZCBiZSB6ZXJvLiIp
CisgICAgICAgICAgICB3ZWJWaWV3LnN1Y2Nlc3MgPSBmYWxzZQorICAgICAgICB9CisKKyAgICAg
ICAgaWYgKHBlcm1pc3Npb24ub3JpZ2luLnNjaGVtZSAhPSB3ZWJWaWV3LnNjaGVtZSkgeworICAg
ICAgICAgICAgY29uc29sZS5sb2coIkV4cGVjdGVkIHNjaGVtZSBzaG91bGQgYmUgXCJmaWxlXCIi
KQorICAgICAgICAgICAgd2ViVmlldy5zdWNjZXNzID0gZmFsc2UKKyAgICAgICAgfQorICAgIH0K
KworICAgIFRlc3RDYXNlIHsKKyAgICAgICAgbmFtZTogIldlYlZpZXdTZWN1cml0eU9yaWdpbiIK
KworICAgICAgICAvLyBEZWxheWVkIHdpbmRvd1Nob3duIHRvIHdvcmthcm91bmQgcHJvYmxlbXMg
d2l0aCBRdDUgaW4gZGVidWcgbW9kZS4KKyAgICAgICAgd2hlbjogZmFsc2UKKyAgICAgICAgVGlt
ZXIgeworICAgICAgICAgICAgcnVubmluZzogcGFyZW50LndpbmRvd1Nob3duCisgICAgICAgICAg
ICByZXBlYXQ6IGZhbHNlCisgICAgICAgICAgICBpbnRlcnZhbDogMQorICAgICAgICAgICAgb25U
cmlnZ2VyZWQ6IHBhcmVudC53aGVuID0gdHJ1ZQorICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rp
b24gaW5pdCgpIHsKKyAgICAgICAgICAgIHNweS5jbGVhcigpCisgICAgICAgIH0KKworICAgICAg
ICBmdW5jdGlvbiB0ZXN0X3Blcm1pc3Npb25SZXF1ZXN0KCkgeworICAgICAgICAgICAgY29tcGFy
ZShzcHkuY291bnQsIDApCisgICAgICAgICAgICB3ZWJWaWV3LmxvYWQoUXQucmVzb2x2ZWRVcmwo
Ii4uL2NvbW1vbi9nZW9sb2NhdGlvbi5odG1sIikpCisgICAgICAgICAgICBzcHkud2FpdCgpCisg
ICAgICAgICAgICBjb21wYXJlKHNweS5jb3VudCwgMSkKKyAgICAgICAgICAgIGNvbXBhcmUod2Vi
Vmlldy5zdWNjZXNzLCB0cnVlKQorICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9xbWx0ZXN0cy5wcm8g
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL3FtbHRlc3Rz
LnBybwppbmRleCBjOGNlODdhLi41MDgxOWMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL3FtbHRlc3RzLnBybworKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL3FtbHRlc3RzLnBybwpAQCAt
MjksNCArMjksNSBAQCBPVEhFUl9GSUxFUyArPSBcCiAgICAgV2ViVmlldy90c3RfcHJlZmVyZW5j
ZXMucW1sIFwKICAgICBXZWJWaWV3L3RzdF9wcm9wZXJ0aWVzLnFtbCBcCiAgICAgV2ViVmlldy90
c3RfdGl0bGVDaGFuZ2VkLnFtbCBcCi0gICAgV2ViVmlldy90c3RfYXBwbGljYXRpb25TY2hlbWUu
cW1sCisgICAgV2ViVmlldy90c3RfYXBwbGljYXRpb25TY2hlbWUucW1sIFwKKyAgICBXZWJWaWV3
L3RzdF9vcmlnaW4ucW1sCmRpZmYgLS1naXQgYS9Tb3VyY2UvcXR3ZWJraXQtZXhwb3J0Lm1hcCBi
L1NvdXJjZS9xdHdlYmtpdC1leHBvcnQubWFwCmluZGV4IGJhMmUyZmIuLmJmMTM3NzcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9xdHdlYmtpdC1leHBvcnQubWFwCisrKyBiL1NvdXJjZS9xdHdlYmtpdC1l
eHBvcnQubWFwCkBAIC0xNTYsNyArMTU2LDkgQEAgcXdrXzEuMCB7CiAgICAgICAgIFFRdWlja05l
dHdvcmtSZXF1ZXN0OjoqOwogICAgICAgICAqUVF1aWNrTmV0d29ya1JlcGx5OwogICAgICAgICBR
UXVpY2tOZXR3b3JrUmVwbHk6Oio7Ci0KKyAgICAgICAgKlF0V2ViU2VjdXJpdHlPcmlnaW47Cisg
ICAgICAgIG5vbi12aXJ0dWFsP3RodW5rP3RvP1F0V2ViU2VjdXJpdHlPcmlnaW4qOworICAgICAg
ICBRdFdlYlNlY3VyaXR5T3JpZ2luOjoqOwogCiAgICAgICAgICMgV2ViS2l0IDIgQyBBUEkgbWFu
Z2xlZCBpbiBDKysKICAgICAgICAgV0tTdHJpbmdDb3B5UVN0cmluZyo7Ci0tIAoxLjcuNS40Cgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>123943</attachid>
            <date>2012-01-25 08:00:26 -0800</date>
            <delta_ts>2012-01-28 13:34:40 -0800</delta_ts>
            <desc>Removed canAccess() method, added versioning in stream object</desc>
            <filename>origin_step13.patch</filename>
            <type>text/plain</type>
            <size>18333</size>
            <attacher name="Adenilson Cavalcanti Silva">savagobr</attacher>
            
              <data encoding="base64">RnJvbSA1NzhkY2IzMzU4YzRmNTVkMTc3M2QzYmVlZDM1MzMzN2M0YmYyMjA0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBZGVuaWxzb24gQ2F2YWxjYW50aSA8Y2F2YWxjYW50aWlAZ21h
aWwuY29tPgpEYXRlOiBTdW4sIDIyIEphbiAyMDEyIDAwOjA2OjUyIC0wNDAwClN1YmplY3Q6IFtQ
QVRDSF0gUHJldmlvdXMgZml4ZWQgKHBsdXMgQ2hhbmdlTG9nKSwgcmVtb3ZlZCB1bm5lY2Vzc2Fy
eSBoZWFkZXIKIGZpbGUsIGVsc2UgY2xhdXNlLCByZW1vdmVkIHJlZHVuZGFudCBjaGVja3MsIGNo
YW5nZWQgdGhlCiB0ZXN0LCB0aGUgbmFtZSBvZiBzZWN1cml0eSBvcmlnaW4gcHJvcGVydHksIHJl
bW92ZWQKIDo6Y2FuQWNjZXNzKCkgbWV0aG9kIGFuZCBmaW5hbGx5IGFkZGluZyB2ZXJzaW9uaW5n
IG9mCiBzdHJlYW0gb3BlcmF0b3JzLgoKU2lnbmVkLW9mZi1ieTogQWRlbmlsc29uIENhdmFsY2Fu
dGkgPGNhdmFsY2FudGlpQGdtYWlsLmNvbT4KLS0tCiBDaGFuZ2VMb2cgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTEgKysKIFNvdXJjZS9XZWJLaXQvcXQvQ2hh
bmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxMiArKwogU291cmNlL1dlYktpdC9x
dC9kZWNsYXJhdGl2ZS9wbHVnaW4uY3BwICAgICAgICAgICAgfCAgICAzICsKIFNvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAzNSArKysrKysKIFNv
dXJjZS9XZWJLaXQyL1RhcmdldC5wcmkgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgMiAr
CiAuLi4vVUlQcm9jZXNzL0FQSS9xdC9xdHdlYnNlY3VyaXR5b3JpZ2luLmNwcCAgICAgICB8ICAx
MTYgKysrKysrKysrKysrKysrKysrKysKIC4uLi9VSVByb2Nlc3MvQVBJL3F0L3F0d2Vic2VjdXJp
dHlvcmlnaW5fcC5oICAgICAgIHwgICA2OCArKysrKysrKysrKysKIC4uLi9VSVByb2Nlc3MvQVBJ
L3F0L3F3ZWJwZXJtaXNzaW9ucmVxdWVzdC5jcHAgICAgIHwgICAyNiArKy0tCiAuLi4vVUlQcm9j
ZXNzL0FQSS9xdC9xd2VicGVybWlzc2lvbnJlcXVlc3RfcC5oICAgICB8ICAgMTEgKy0KIC4uLi9B
UEkvcXQvdGVzdHMvcW1sdGVzdHMvV2ViVmlldy90c3Rfb3JpZ2luLnFtbCAgIHwgICA1NyArKysr
KysrKysrCiAuLi4vVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9xbWx0ZXN0cy5wcm8g
ICB8ICAgIDMgKy0KIFNvdXJjZS9xdHdlYmtpdC1leHBvcnQubWFwICAgICAgICAgICAgICAgICAg
ICAgICAgIHwgICAgNCArLQogMTIgZmlsZXMgY2hhbmdlZCwgMzI2IGluc2VydGlvbnMoKyksIDIy
IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvcXQvcXR3ZWJzZWN1cml0eW9yaWdpbi5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F0d2Vic2VjdXJpdHlvcmlnaW5fcC5oCiBjcmVh
dGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0
ZXN0cy9XZWJWaWV3L3RzdF9vcmlnaW4ucW1sCgpkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hh
bmdlTG9nCmluZGV4IGM2ZDI4ZGUuLjBhYWM3YTQgMTAwNjQ0Ci0tLSBhL0NoYW5nZUxvZworKysg
Yi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMi0wMS0yMSAgQWRlbmlsc29uIENhdmFs
Y2FudGkgIDxjYXZhbGNhbnRpaUBnbWFpbC5jb20+CisKKyAgICAgICAgW1F0XVtXSzJdIFNwbGl0
IFFXZWJQZXJtaXNzaW9uUmVxdWVzdCBpbnRvIFFXZWJTZWN1cml0eU9yaWdpbgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMyMTUKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbnRyb2R1Y2luZyBhIG5ldyBj
bGFzcyB0byBleHBvc2Ugc2VjdXJpdHkgb3JpZ2luIGluZm9ybWF0aW9uLgorCisgICAgICAgICog
U291cmNlL3F0d2Via2l0LWV4cG9ydC5tYXA6CisKIDIwMTItMDEtMjQgIFNpbW9uIEhhdXNtYW5u
ICA8c2ltb24uaGF1c21hbm5Abm9raWEuY29tPgogCiAgICAgICAgIFNvbWUgcW1ha2UgYnVpbGQg
ZmlsZXMgbXVzdCBpbmNsdWRlIFF0NSdzICJxdWljayIgbW9kdWxlLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwppbmRl
eCA4YTUwZjY1Li5jZDZjMjE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEy
LTAxLTIxICBBZGVuaWxzb24gQ2F2YWxjYW50aSAgPGNhdmFsY2FudGlpQGdtYWlsLmNvbT4KKwor
ICAgICAgICBbUXRdW1dLMl0gU3BsaXQgUVdlYlBlcm1pc3Npb25SZXF1ZXN0IGludG8gUVdlYlNl
Y3VyaXR5T3JpZ2luCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD03MzIxNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEV4cG9ydCB0aGUgc2VjdXJpdHkgb3JpZ2luIGNsYXNzIHRvIFFNTC4KKworICAgICAgICAq
IGRlY2xhcmF0aXZlL3BsdWdpbi5jcHA6CisgICAgICAgIChXZWJLaXRRbWxQbHVnaW46OnJlZ2lz
dGVyVHlwZXMpOgorCiAyMDEyLTAxLTE3ICBWaWF0Y2hlc2xhdiBPc3RhcGVua28gIDxvc3RhcGVu
a28udmlhdGNoZXNsYXZAbm9raWEuY29tPgogCiAgICAgICAgIFtRdF0gRGVidWcgYnVpbGQgZmFp
bHMgd2l0aCBkZWJ1ZyBxdDUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvZGVjbGFyYXRp
dmUvcGx1Z2luLmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvZGVjbGFyYXRpdmUvcGx1Z2luLmNwcApp
bmRleCA2NDYzOGU0Li5lMmYwZmIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L2RlY2xh
cmF0aXZlL3BsdWdpbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9kZWNsYXJhdGl2ZS9wbHVn
aW4uY3BwCkBAIC0yNSw2ICsyNSw3IEBACiAjaWYgZGVmaW5lZChIQVZFX1dFQktJVDIpCiAjaW5j
bHVkZSAicXF1aWNrd2VicGFnZV9wLmgiCiAjaW5jbHVkZSAicXF1aWNrd2Vidmlld19wLmgiCisj
aW5jbHVkZSAicXR3ZWJzZWN1cml0eW9yaWdpbl9wLmgiCiAjaW5jbHVkZSAicXdlYmljb25pbWFn
ZXByb3ZpZGVyX3AuaCIKICNpbmNsdWRlICJxd2VibmF2aWdhdGlvbnJlcXVlc3RfcC5oIgogI2lu
Y2x1ZGUgInF3ZWJwZXJtaXNzaW9ucmVxdWVzdF9wLmgiCkBAIC02NSw2ICs2Niw4IEBAIHB1Ymxp
YzoKICAgICAgICAgcW1sUmVnaXN0ZXJVbmNyZWF0YWJsZVR5cGU8UU5ldHdvcmtSZXBseT4odXJp
LCAzLCAwLCAiTmV0d29ya1JlcGx5IiwgUU9iamVjdDo6dHIoIkNhbm5vdCBjcmVhdGUgc2VwYXJh
dGUgaW5zdGFuY2Ugb2YgTmV0d29ya1JlcGx5IikpOwogICAgICAgICBxbWxSZWdpc3RlclVuY3Jl
YXRhYmxlVHlwZTxRV2ViUGVybWlzc2lvblJlcXVlc3Q+KHVyaSwgMywgMCwgIlBlcm1pc3Npb25S
ZXF1ZXN0IiwgUU9iamVjdDo6dHIoIkNhbm5vdCBjcmVhdGUgc2VwYXJhdGUgaW5zdGFuY2Ugb2Yg
UGVybWlzc2lvblJlcXVlc3QiKSk7CiAgICAgICAgIHFtbFJlZ2lzdGVyVW5jcmVhdGFibGVUeXBl
PFFXZWJOYXZpZ2F0aW9uUmVxdWVzdD4odXJpLCAzLCAwLCAiTmF2aWdhdGlvblJlcXVlc3QiLCBR
T2JqZWN0Ojp0cigiQ2Fubm90IGNyZWF0ZSBzZXBhcmF0ZSBpbnN0YW5jZSBvZiBOYXZpZ2F0aW9u
UmVxdWVzdCIpKTsKKyAgICAgICAgcW1sUmVnaXN0ZXJVbmNyZWF0YWJsZVR5cGU8UXRXZWJTZWN1
cml0eU9yaWdpbj4odXJpLCAzLCAwLCAiU2VjdXJpdHlPcmlnaW4iLCBRT2JqZWN0Ojp0cigiQ2Fu
bm90IGNyZWF0ZSBzZXBhcmF0ZSBpbnN0YW5jZSBvZiBTZWN1cml0eU9yaWdpbiIpKTsKKwogI2Vu
ZGlmCiAgICAgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBlZDljYzg2Li5iMWJkODg0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMzggQEAKKzIwMTItMDEtMjEgIEFkZW5pbHNvbiBDYXZhbGNhbnRpICA8Y2F2
YWxjYW50aWlAZ21haWwuY29tPgorCisgICAgICAgIFtRdF1bV0syXSBTcGxpdCBRV2ViUGVybWlz
c2lvblJlcXVlc3QgaW50byBRV2ViU2VjdXJpdHlPcmlnaW4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTczMjE1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW50cm9kdWNpbmcgYSBuZXcgY2xhc3MgdG8gZXhw
b3NlIHNlY3VyaXR5IG9yaWdpbiBpbmZvcm1hdGlvbi4KKworICAgICAgICAqIFRhcmdldC5wcmk6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xdHdlYnNlY3VyaXR5b3JpZ2luLmNwcDogQWRk
ZWQuCisgICAgICAgIChRdFdlYlNlY3VyaXR5T3JpZ2luOjpjb250YWluc1NjaGVtZSk6CisgICAg
ICAgIChRdFdlYlNlY3VyaXR5T3JpZ2luOjppc0xvY2FsU2NoZW1lKToKKyAgICAgICAgKFF0V2Vi
U2VjdXJpdHlPcmlnaW46OlF0V2ViU2VjdXJpdHlPcmlnaW4pOgorICAgICAgICAoUXRXZWJTZWN1
cml0eU9yaWdpbjo6flF0V2ViU2VjdXJpdHlPcmlnaW4pOgorICAgICAgICAoUXRXZWJTZWN1cml0
eU9yaWdpbjo6aG9zdCk6CisgICAgICAgIChRdFdlYlNlY3VyaXR5T3JpZ2luOjpzY2hlbWUpOgor
ICAgICAgICAoUXRXZWJTZWN1cml0eU9yaWdpbjo6cGF0aCk6CisgICAgICAgIChRdFdlYlNlY3Vy
aXR5T3JpZ2luOjpwb3J0KToKKyAgICAgICAgKFF0V2ViU2VjdXJpdHlPcmlnaW46OnVybCk6Cisg
ICAgICAgIChRdFdlYlNlY3VyaXR5T3JpZ2luOjphZGRMb2NhbFNjaGVtZSk6CisgICAgICAgIChR
dFdlYlNlY3VyaXR5T3JpZ2luOjpyZW1vdmVMb2NhbFNjaGVtZSk6CisgICAgICAgIChRdFdlYlNl
Y3VyaXR5T3JpZ2luOjpsb2NhbFNjaGVtZXMpOgorICAgICAgICAoUXRXZWJTZWN1cml0eU9yaWdp
bjo6Y2FuQWNjZXNzKToKKyAgICAgICAgKG9wZXJhdG9yPDwpOgorICAgICAgICAob3BlcmF0b3I+
Pik6CisgICAgICAgIChRdFdlYlNlY3VyaXR5T3JpZ2luOjpzZXRVcmwpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvcXQvcXR3ZWJzZWN1cml0eW9yaWdpbl9wLmg6IEFkZGVkLgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvV2ViVmlldy90c3Rfb3JpZ2luLnFtbDog
QWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xd2VicGVybWlzc2lvbnJlcXVlc3Qu
Y3BwOgorICAgICAgICAoUVdlYlBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZTo6UVdlYlBlcm1pc3Np
b25SZXF1ZXN0UHJpdmF0ZSk6CisgICAgICAgIChRV2ViUGVybWlzc2lvblJlcXVlc3Q6OnNlY3Vy
aXR5T3JpZ2luKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3F3ZWJwZXJtaXNzaW9ucmVx
dWVzdF9wLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9xbWx0
ZXN0cy5wcm86CisKIDIwMTItMDEtMjQgIFplbm8gQWxiaXNzZXIgIDx6ZW5vQHdlYmtpdC5vcmc+
CiAKICAgICAgICAgW1F0XVtXSzJdIEFkZCB0ZXN0IGZvciBhcHBsaWNhdGlvbiBVUkwgc2NoZW1l
cy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViS2l0
Mi9UYXJnZXQucHJpCmluZGV4IDY3MDRjYWMuLjU0MzQ0ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaQpAQCAtMTcz
LDYgKzE3Myw3IEBAIEhFQURFUlMgKz0gXAogICAgIFVJUHJvY2Vzcy9BUEkvcXQvcXdlYmRvd25s
b2FkaXRlbV9wLmggXAogICAgIFVJUHJvY2Vzcy9BUEkvcXQvcXdlYmRvd25sb2FkaXRlbV9wX3Au
aCBcCiAgICAgVUlQcm9jZXNzL0FQSS9xdC9xd2VicGVybWlzc2lvbnJlcXVlc3RfcC5oIFwKKyAg
ICBVSVByb2Nlc3MvQVBJL3F0L3F0d2Vic2VjdXJpdHlvcmlnaW5fcC5oIFwKICAgICBVSVByb2Nl
c3MvQVBJL3F0L3F3ZWJuYXZpZ2F0aW9ucmVxdWVzdF9wLmggXAogICAgIFVJUHJvY2Vzcy9BUEkv
cXQvcXF1aWNrd2VicGFnZV9wLmggXAogICAgIFVJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2VicGFn
ZV9wX3AuaCBcCkBAIC01MDEsNiArNTAyLDcgQEAgU09VUkNFUyArPSBcCiAgICAgVUlQcm9jZXNz
L0FQSS9jcHAvcXQvV0tVUkxRdC5jcHAgXAogICAgIFVJUHJvY2Vzcy9BUEkvcXQvcXdlYmRvd25s
b2FkaXRlbS5jcHAgXAogICAgIFVJUHJvY2Vzcy9BUEkvcXQvcXdlYnBlcm1pc3Npb25yZXF1ZXN0
LmNwcCBcCisgICAgVUlQcm9jZXNzL0FQSS9xdC9xdHdlYnNlY3VyaXR5b3JpZ2luLmNwcCBcCiAg
ICAgVUlQcm9jZXNzL0FQSS9xdC9xd2VibmF2aWdhdGlvbnJlcXVlc3QuY3BwIFwKICAgICBVSVBy
b2Nlc3MvQVBJL3F0L3FxdWlja3dlYnBhZ2UuY3BwIFwKICAgICBVSVByb2Nlc3MvQVBJL3F0L3F3
ZWJuYXZpZ2F0aW9uaGlzdG9yeS5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9xdC9xdHdlYnNlY3VyaXR5b3JpZ2luLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvcXQvcXR3ZWJzZWN1cml0eW9yaWdpbi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uNzU2MzU0YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXR3ZWJzZWN1cml0eW9yaWdpbi5jcHAKQEAgLTAsMCArMSwx
MTYgQEAKKy8qCisgICAgQ29weXJpZ2h0IChDKSAyMDEyIE5va2lhIENvcnBvcmF0aW9uIGFuZC9v
ciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1bmRlciB0
aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICAgTGljZW5zZSBh
cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICAg
dmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2
ZXJzaW9uLgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo
YXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo
b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3Ig
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91IHNo
b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZQorICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09Q
WUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBCb3N0b24s
IE1BIDAyMTEwLTEzMDEsIFVTQS4KKyovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJxdHdlYnNlY3VyaXR5b3JpZ2luX3AuaCIKKworI2luY2x1ZGUgPFF0Q29yZS9RRmlsZUluZm8+
CisjaW5jbHVkZSA8UXRDb3JlL1FTdHJpbmdMaXN0PgorI2luY2x1ZGUgPFNjaGVtZVJlZ2lzdHJ5
Lmg+CisjaW5jbHVkZSA8U2VjdXJpdHlPcmlnaW4uaD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLQmFz
ZS5oPgorI2luY2x1ZGUgPFdlYktpdDIvV0tSZXRhaW5QdHIuaD4KKyNpbmNsdWRlIDxXZWJLaXQy
L1dLU2VjdXJpdHlPcmlnaW4uaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK2Jvb2wg
UXRXZWJTZWN1cml0eU9yaWdpbjo6aXNMb2NhbFNjaGVtZShjb25zdCBRU3RyaW5nJiBzY2hlbWUp
Cit7CisgICAgY29uc3QgVVJMU2NoZW1lc01hcCYgbWFwID0gU2NoZW1lUmVnaXN0cnk6OmxvY2Fs
U2NoZW1lcygpOworICAgIHJldHVybiBtYXAuY29udGFpbnMoc2NoZW1lKTsKK30KKworUXRXZWJT
ZWN1cml0eU9yaWdpbjo6UXRXZWJTZWN1cml0eU9yaWdpbihRT2JqZWN0KiBwYXJlbnQpCisgICAg
OiBRT2JqZWN0KHBhcmVudCkKK3sKK30KKworUXRXZWJTZWN1cml0eU9yaWdpbjo6flF0V2ViU2Vj
dXJpdHlPcmlnaW4oKQoreworfQorCitRU3RyaW5nIFF0V2ViU2VjdXJpdHlPcmlnaW46Omhvc3Qo
KSBjb25zdAoreworICAgIHJldHVybiBtX3VybC5ob3N0KCk7Cit9CisKK1FTdHJpbmcgUXRXZWJT
ZWN1cml0eU9yaWdpbjo6c2NoZW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV91cmwuc2NoZW1l
KCk7Cit9CisKK1FTdHJpbmcgUXRXZWJTZWN1cml0eU9yaWdpbjo6cGF0aCgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIG1fdXJsLnBhdGgoKTsKK30KKworaW50IFF0V2ViU2VjdXJpdHlPcmlnaW46OnBv
cnQoKSBjb25zdAoreworICAgIHJldHVybiBtX3VybC5wb3J0KCk7Cit9CisKK1FVcmwgUXRXZWJT
ZWN1cml0eU9yaWdpbjo6dXJsKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV91cmw7Cit9CisKK3Zv
aWQgUXRXZWJTZWN1cml0eU9yaWdpbjo6YWRkTG9jYWxTY2hlbWUoY29uc3QgUVN0cmluZyYgc2No
ZW1lKQoreworICAgIFNjaGVtZVJlZ2lzdHJ5OjpyZWdpc3RlclVSTFNjaGVtZUFzTG9jYWwoc2No
ZW1lKTsKK30KKwordm9pZCBRdFdlYlNlY3VyaXR5T3JpZ2luOjpyZW1vdmVMb2NhbFNjaGVtZShj
b25zdCBRU3RyaW5nJiBzY2hlbWUpCit7CisgICAgU2NoZW1lUmVnaXN0cnk6OnJlbW92ZVVSTFNj
aGVtZVJlZ2lzdGVyZWRBc0xvY2FsKHNjaGVtZSk7Cit9CisKK1FTdHJpbmdMaXN0IFF0V2ViU2Vj
dXJpdHlPcmlnaW46OmxvY2FsU2NoZW1lcygpCit7CisgICAgUVN0cmluZ0xpc3Qgc2NoZW1lczsK
KyAgICBjb25zdCBVUkxTY2hlbWVzTWFwJiBtYXAgPSBTY2hlbWVSZWdpc3RyeTo6bG9jYWxTY2hl
bWVzKCk7CisgICAgVVJMU2NoZW1lc01hcDo6Y29uc3RfaXRlcmF0b3IgZW5kID0gbWFwLmVuZCgp
OworICAgIGZvciAoVVJMU2NoZW1lc01hcDo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtYXAuYmVnaW4o
KTsgaXQgIT0gZW5kOyArK2l0KSB7CisgICAgICAgIGNvbnN0IFFTdHJpbmcgc2NoZW1lID0gKml0
OworICAgICAgICBzY2hlbWVzLmFwcGVuZChzY2hlbWUpOworICAgIH0KKworICAgIHJldHVybiBz
Y2hlbWVzOworfQorCitRRGF0YVN0cmVhbSYgb3BlcmF0b3I8PChRRGF0YVN0cmVhbSYgb3V0LCBj
b25zdCBRdFdlYlNlY3VyaXR5T3JpZ2luICZvcmlnaW4pCit7CisgICAgb3V0LnNldFZlcnNpb24o
UURhdGFTdHJlYW06OlF0XzRfMCk7CisgICAgb3V0IDw8IChvcmlnaW4udXJsKCkudG9FbmNvZGVk
KCkuZGF0YSgpKTsKKyAgICByZXR1cm4gb3V0OworfQorCitRRGF0YVN0cmVhbSYgb3BlcmF0b3I+
PihRRGF0YVN0cmVhbSYgaW4sIFF0V2ViU2VjdXJpdHlPcmlnaW4mIG9yaWdpbikKK3sKKyAgICBj
aGFyKiB1cmwgPSBvcmlnaW4udXJsKCkudG9FbmNvZGVkKCkuZGF0YSgpOworICAgIGluLnNldFZl
cnNpb24oUURhdGFTdHJlYW06OlF0XzRfMCk7CisgICAgaW4gPj4gdXJsOworICAgIHJldHVybiBp
bjsKK30KKworLy8gVXNlZCB0byBzZXQgc2VjdXJpdHkgaW5mb3JtYXRpb24gaW4gYSBwZXJtaXNz
aW9uIHJlcXVlc3QgZXZlbnQgKGUuZy4KKy8vIGdlb2xvY2F0aW9uIHBlcm1pc3Npb24pCit2b2lk
IFF0V2ViU2VjdXJpdHlPcmlnaW46OnNldFVybChjb25zdCBRVXJsJiB1cmwpCit7CisgICAgbV91
cmwgPSB1cmw7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0
L3F0d2Vic2VjdXJpdHlvcmlnaW5fcC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9x
dC9xdHdlYnNlY3VyaXR5b3JpZ2luX3AuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi4yMzZiOWQxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9xdC9xdHdlYnNlY3VyaXR5b3JpZ2luX3AuaApAQCAtMCwwICsxLDY4IEBACisvKgorICAg
IENvcHlyaWdodCAoQykgMjAxMiBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlh
cnkoLWllcykKKworICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl
ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAgIHZlcnNpb24gMiBvZiB0
aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAg
IFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUg
dXNlZnVsLAorICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp
bXBsaWVkIHdhcnJhbnR5IG9mCisgICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgICBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgIFlvdSBzaG91bGQgaGF2ZSByZWNl
aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAg
ICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYg
bm90LCB3cml0ZSB0bworICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUx
IEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgICAgQm9zdG9uLCBNQSAwMjExMC0xMzAx
LCBVU0EuCisqLworI2lmbmRlZiBxdHdlYnNlY3VyaXR5b3JpZ2luX3BfaAorI2RlZmluZSBxdHdl
YnNlY3VyaXR5b3JpZ2luX3BfaAorCisjaW5jbHVkZSAicXdlYmtpdGdsb2JhbC5oIgorCisjaW5j
bHVkZSA8UXRDb3JlL1FEYXRhU3RyZWFtPgorI2luY2x1ZGUgPFF0Q29yZS9RT2JqZWN0PgorI2lu
Y2x1ZGUgPFF0Q29yZS9RU3RyaW5nPgorI2luY2x1ZGUgPFF0Q29yZS9RVXJsPgorI2luY2x1ZGUg
PFF0Q29yZS9xc2hhcmVkZGF0YS5oPgorCitjbGFzcyBRV0VCS0lUX0VYUE9SVCBRdFdlYlNlY3Vy
aXR5T3JpZ2luIDogcHVibGljIFFPYmplY3QgeworICAgIFFfT0JKRUNUCisgICAgUV9QUk9QRVJU
WShRU3RyaW5nIHNjaGVtZSBSRUFEIHNjaGVtZSBDT05TVEFOVCkKKyAgICBRX1BST1BFUlRZKFFT
dHJpbmcgaG9zdCBSRUFEIGhvc3QgQ09OU1RBTlQpCisgICAgUV9QUk9QRVJUWShpbnQgcG9ydCBS
RUFEIHBvcnQgQ09OU1RBTlQpCisgICAgUV9QUk9QRVJUWShRU3RyaW5nIHBhdGggUkVBRCBwYXRo
IENPTlNUQU5UKQorICAgIFFfUFJPUEVSVFkoUVVybCB1cmwgUkVBRCB1cmwgQ09OU1RBTlQpCisK
K3B1YmxpYzoKKyAgICBRdFdlYlNlY3VyaXR5T3JpZ2luKFFPYmplY3QqIHBhcmVudCA9IDApOwor
ICAgIHZpcnR1YWwgflF0V2ViU2VjdXJpdHlPcmlnaW4oKTsKKworICAgIFFTdHJpbmcgc2NoZW1l
KCkgY29uc3Q7CisgICAgUVN0cmluZyBob3N0KCkgY29uc3Q7CisgICAgaW50IHBvcnQoKSBjb25z
dDsKKyAgICBRU3RyaW5nIHBhdGgoKSBjb25zdDsKKyAgICBRVXJsIHVybCgpIGNvbnN0OworCisg
ICAgc3RhdGljIHZvaWQgYWRkTG9jYWxTY2hlbWUoY29uc3QgUVN0cmluZyYgc2NoZW1lKTsKKyAg
ICBzdGF0aWMgdm9pZCByZW1vdmVMb2NhbFNjaGVtZShjb25zdCBRU3RyaW5nJiBzY2hlbWUpOwor
ICAgIHN0YXRpYyBRU3RyaW5nTGlzdCBsb2NhbFNjaGVtZXMoKTsKKworICAgIHZvaWQgc2V0VXJs
KGNvbnN0IFFVcmwmKTsKKworICAgIGVudW0gT3JpZ2luUG9saWN5RmxhZ3MgeworICAgICAgICBD
b250ZW50SGFzU2FtZU9yaWdpbkFjY2VzcyA9IDB4MCwKKyAgICAgICAgTG9jYWxDb250ZW50SGFz
UmVtb3RlQWNjZXNzID0gMHgxLAorICAgICAgICBMb2NhbENvbnRlbnRIYXNTeXN0ZW1Mb2NhbEFj
Y2VzcyA9IDB4MgorICAgIH07CisKK3ByaXZhdGU6CisgICAgYm9vbCBpc0xvY2FsU2NoZW1lKGNv
bnN0IFFTdHJpbmcmKTsKKyAgICBRVXJsIG1fdXJsOworfTsKKworUURhdGFTdHJlYW0mIG9wZXJh
dG9yPDwoUURhdGFTdHJlYW0mLCBjb25zdCBRdFdlYlNlY3VyaXR5T3JpZ2luJik7CitRRGF0YVN0
cmVhbSYgb3BlcmF0b3I+PihRRGF0YVN0cmVhbSYsIFF0V2ViU2VjdXJpdHlPcmlnaW4mKTsKKwor
I2VuZGlmIC8vIHF0d2Vic2VjdXJpdHlvcmlnaW5fcF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwZXJtaXNzaW9ucmVxdWVzdC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwZXJtaXNzaW9ucmVxdWVzdC5jcHAKaW5kZXgg
MTZhNDM4NS4uYTI4Yzk1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9xdC9xd2VicGVybWlzc2lvbnJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvcXQvcXdlYnBlcm1pc3Npb25yZXF1ZXN0LmNwcApAQCAtMzQsNyArMzQsMTcgQEAg
cHVibGljOgogICAgICAgICAsIHJlcXVlc3QocGVybWlzc2lvblJlcXVlc3QpCiAgICAgICAgICwg
YWxsb3coZmFsc2UpCiAgICAgeworICAgICAgICBRVXJsIGRhdGE7CisgICAgICAgIFdLUmV0YWlu
UHRyPFdLU3RyaW5nUmVmPiB1cmwgPSBhZG9wdFdLKFdLU2VjdXJpdHlPcmlnaW5Db3B5UHJvdG9j
b2wob3JpZ2luLmdldCgpKSk7CisgICAgICAgIGRhdGEuc2V0U2NoZW1lKFdLU3RyaW5nQ29weVFT
dHJpbmcodXJsLmdldCgpKSk7CisKKyAgICAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IGhv
c3QgPSBhZG9wdFdLKFdLU2VjdXJpdHlPcmlnaW5Db3B5SG9zdChvcmlnaW4uZ2V0KCkpKTsKKyAg
ICAgICAgZGF0YS5zZXRIb3N0KFdLU3RyaW5nQ29weVFTdHJpbmcoaG9zdC5nZXQoKSkpOworCisg
ICAgICAgIGRhdGEuc2V0UG9ydChzdGF0aWNfY2FzdDxpbnQ+KFdLU2VjdXJpdHlPcmlnaW5HZXRQ
b3J0KG9yaWdpbi5nZXQoKSkpKTsKKyAgICAgICAgc2VjdXJpdHlJbmZvLnNldFVybChkYXRhKTsK
ICAgICB9CisKICAgICB+UVdlYlBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZSgpCiAgICAgewogICAg
IH0KQEAgLTQyLDYgKzUyLDcgQEAgcHVibGljOgogICAgIFdLUmV0YWluUHRyPFdLU2VjdXJpdHlP
cmlnaW5SZWY+IG9yaWdpbjsKICAgICBRV2ViUGVybWlzc2lvblJlcXVlc3Q6OlJlcXVlc3RUeXBl
IHR5cGU7CiAgICAgV0tSZXRhaW5QdHI8V0tHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0UmVm
PiByZXF1ZXN0OworICAgIFF0V2ViU2VjdXJpdHlPcmlnaW4gc2VjdXJpdHlJbmZvOwogICAgIGJv
b2wgYWxsb3c7CiB9OwogCkBAIC04OCwxOSArOTksOCBAQCBib29sIFFXZWJQZXJtaXNzaW9uUmVx
dWVzdDo6YWxsb3coKSBjb25zdAogICAgIHJldHVybiBkLT5hbGxvdzsKIH0KIAotUVN0cmluZyBR
V2ViUGVybWlzc2lvblJlcXVlc3Q6OnNjaGVtZSgpIGNvbnN0Ci17Ci0gICAgV0tSZXRhaW5QdHI8
V0tTdHJpbmdSZWY+IHVybCA9IGFkb3B0V0soV0tTZWN1cml0eU9yaWdpbkNvcHlQcm90b2NvbChk
LT5vcmlnaW4uZ2V0KCkpKTsKLSAgICByZXR1cm4gV0tTdHJpbmdDb3B5UVN0cmluZyh1cmwuZ2V0
KCkpOwotfQotCi1RU3RyaW5nIFFXZWJQZXJtaXNzaW9uUmVxdWVzdDo6aG9zdCgpIGNvbnN0CitR
dFdlYlNlY3VyaXR5T3JpZ2luKiBRV2ViUGVybWlzc2lvblJlcXVlc3Q6OnNlY3VyaXR5T3JpZ2lu
KCkKIHsKLSAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gb3JpZ2luID0gYWRvcHRXSyhXS1Nl
Y3VyaXR5T3JpZ2luQ29weUhvc3QoZC0+b3JpZ2luLmdldCgpKSk7Ci0gICAgcmV0dXJuIFdLU3Ry
aW5nQ29weVFTdHJpbmcob3JpZ2luLmdldCgpKTsKKyAgICByZXR1cm4gJihkLT5zZWN1cml0eUlu
Zm8pOwogfQogCi1pbnQgUVdlYlBlcm1pc3Npb25SZXF1ZXN0Ojpwb3J0KCkgY29uc3QKLXsKLSAg
ICByZXR1cm4gc3RhdGljX2Nhc3Q8aW50PihXS1NlY3VyaXR5T3JpZ2luR2V0UG9ydChkLT5vcmln
aW4uZ2V0KCkpKTsKLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
cXQvcXdlYnBlcm1pc3Npb25yZXF1ZXN0X3AuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvcXQvcXdlYnBlcm1pc3Npb25yZXF1ZXN0X3AuaAppbmRleCA1ODI0YzRjLi40NzA4YjcxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwZXJtaXNzaW9u
cmVxdWVzdF9wLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2VicGVy
bWlzc2lvbnJlcXVlc3RfcC5oCkBAIC0yMCw2ICsyMCw3IEBACiAjaWZuZGVmIHF3ZWJwZXJtaXNz
aW9ucmVxdWVzdF9wX2gKICNkZWZpbmUgcXdlYnBlcm1pc3Npb25yZXF1ZXN0X3BfaAogCisjaW5j
bHVkZSAicXR3ZWJzZWN1cml0eW9yaWdpbl9wLmgiCiAjaW5jbHVkZSAicXdlYmtpdGdsb2JhbC5o
IgogCiAjaW5jbHVkZSA8UXRDb3JlL1FPYmplY3Q+CkBAIC0zMiwxMCArMzMsOCBAQCBjbGFzcyBR
V2ViUGVybWlzc2lvblJlcXVlc3RQcml2YXRlOwogY2xhc3MgUVdFQktJVF9FWFBPUlQgUVdlYlBl
cm1pc3Npb25SZXF1ZXN0IDogcHVibGljIFFPYmplY3QgewogICAgIFFfT0JKRUNUCiAgICAgUV9Q
Uk9QRVJUWShib29sIGFsbG93IFJFQUQgYWxsb3cgV1JJVEUgc2V0QWxsb3cpCi0gICAgUV9QUk9Q
RVJUWShSZXF1ZXN0VHlwZSB0eXBlIFJFQUQgdHlwZSkKLSAgICBRX1BST1BFUlRZKFFTdHJpbmcg
c2NoZW1lIFJFQUQgc2NoZW1lKQotICAgIFFfUFJPUEVSVFkoUVN0cmluZyBob3N0IFJFQUQgaG9z
dCkKLSAgICBRX1BST1BFUlRZKGludCBwb3J0IFJFQUQgcG9ydCkKKyAgICBRX1BST1BFUlRZKFJl
cXVlc3RUeXBlIHR5cGUgUkVBRCB0eXBlIENPTlNUQU5UKQorICAgIFFfUFJPUEVSVFkoUXRXZWJT
ZWN1cml0eU9yaWdpbiogb3JpZ2luIFJFQUQgc2VjdXJpdHlPcmlnaW4pCiAgICAgUV9FTlVNUyhS
ZXF1ZXN0VHlwZSkKIAogcHVibGljOgpAQCAtNDgsMTIgKzQ3LDEwIEBAIHB1YmxpYzoKIAogICAg
IFJlcXVlc3RUeXBlIHR5cGUoKSBjb25zdDsKICAgICBib29sIGFsbG93KCkgY29uc3Q7Ci0gICAg
UVN0cmluZyBzY2hlbWUoKSBjb25zdDsKLSAgICBRU3RyaW5nIGhvc3QoKSBjb25zdDsKLSAgICBp
bnQgcG9ydCgpIGNvbnN0OwogCiBwdWJsaWMgUV9TTE9UUzoKICAgICB2b2lkIHNldEFsbG93KGJv
b2wpOworICAgIFF0V2ViU2VjdXJpdHlPcmlnaW4qIHNlY3VyaXR5T3JpZ2luKCk7CiAKIHByaXZh
dGU6CiAgICAgZnJpZW5kIGNsYXNzIFFXZWJQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL1dl
YlZpZXcvdHN0X29yaWdpbi5xbWwgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rl
c3RzL3FtbHRlc3RzL1dlYlZpZXcvdHN0X29yaWdpbi5xbWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uZTdkNjQyMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvV2ViVmlldy90c3Rfb3JpZ2luLnFtbApA
QCAtMCwwICsxLDU3IEBACitpbXBvcnQgUXRRdWljayAyLjAKK2ltcG9ydCBRdFRlc3QgMS4wCitp
bXBvcnQgUXRXZWJLaXQgMy4wCitpbXBvcnQgUXRXZWJLaXQuZXhwZXJpbWVudGFsIDMuMAorCitX
ZWJWaWV3IHsKKyAgICBpZDogd2ViVmlldworICAgIHdpZHRoOiAyMDAKKyAgICBoZWlnaHQ6IDIw
MAorCisgICAgcHJvcGVydHkgYm9vbCBzdWNjZXNzOiB0cnVlCisgICAgcHJvcGVydHkgaW50IHBv
cnQ6IDAKKyAgICBwcm9wZXJ0eSBzdHJpbmcgc2NoZW1lOiAiZmlsZSIKKworICAgIFNpZ25hbFNw
eSB7CisgICAgICAgIGlkOiBzcHkKKyAgICAgICAgdGFyZ2V0OiBleHBlcmltZW50YWwKKyAgICAg
ICAgc2lnbmFsTmFtZTogInBlcm1pc3Npb25SZXF1ZXN0ZWQiCisgICAgfQorCisgICAgZXhwZXJp
bWVudGFsLm9uUGVybWlzc2lvblJlcXVlc3RlZDogeworICAgICAgICBpZiAocGVybWlzc2lvbi5v
cmlnaW4ucG9ydCAhPSB3ZWJWaWV3LnBvcnQpIHsKKyAgICAgICAgICAgIGNvbnNvbGUubG9nKCJF
eHBlY3RlZCBwb3J0IHZhbHVlIHNob3VsZCBiZSB6ZXJvLiIpCisgICAgICAgICAgICB3ZWJWaWV3
LnN1Y2Nlc3MgPSBmYWxzZQorICAgICAgICB9CisKKyAgICAgICAgaWYgKHBlcm1pc3Npb24ub3Jp
Z2luLnNjaGVtZSAhPSB3ZWJWaWV3LnNjaGVtZSkgeworICAgICAgICAgICAgY29uc29sZS5sb2co
IkV4cGVjdGVkIHNjaGVtZSBzaG91bGQgYmUgXCJmaWxlXCIuIikKKyAgICAgICAgICAgIHdlYlZp
ZXcuc3VjY2VzcyA9IGZhbHNlCisgICAgICAgIH0KKyAgICB9CisKKyAgICBUZXN0Q2FzZSB7Cisg
ICAgICAgIG5hbWU6ICJXZWJWaWV3U2VjdXJpdHlPcmlnaW4iCisKKyAgICAgICAgLy8gRGVsYXll
ZCB3aW5kb3dTaG93biB0byB3b3JrYXJvdW5kIHByb2JsZW1zIHdpdGggUXQ1IGluIGRlYnVnIG1v
ZGUuCisgICAgICAgIHdoZW46IGZhbHNlCisgICAgICAgIFRpbWVyIHsKKyAgICAgICAgICAgIHJ1
bm5pbmc6IHBhcmVudC53aW5kb3dTaG93bgorICAgICAgICAgICAgcmVwZWF0OiBmYWxzZQorICAg
ICAgICAgICAgaW50ZXJ2YWw6IDEKKyAgICAgICAgICAgIG9uVHJpZ2dlcmVkOiBwYXJlbnQud2hl
biA9IHRydWUKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGluaXQoKSB7CisgICAgICAg
ICAgICBzcHkuY2xlYXIoKQorICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gdGVzdF9wZXJt
aXNzaW9uUmVxdWVzdCgpIHsKKyAgICAgICAgICAgIGNvbXBhcmUoc3B5LmNvdW50LCAwKQorICAg
ICAgICAgICAgd2ViVmlldy5sb2FkKFF0LnJlc29sdmVkVXJsKCIuLi9jb21tb24vZ2VvbG9jYXRp
b24uaHRtbCIpKQorICAgICAgICAgICAgc3B5LndhaXQoKQorICAgICAgICAgICAgY29tcGFyZShz
cHkuY291bnQsIDEpCisgICAgICAgICAgICBjb21wYXJlKHdlYlZpZXcuc3VjY2VzcywgdHJ1ZSkK
KyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvcW1sdGVzdHMucHJvIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9xbWx0ZXN0cy5wcm8KaW5kZXggYzhjZTg3YS4u
NTA4MTljMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0
cy9xbWx0ZXN0cy9xbWx0ZXN0cy5wcm8KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9xdC90ZXN0cy9xbWx0ZXN0cy9xbWx0ZXN0cy5wcm8KQEAgLTI5LDQgKzI5LDUgQEAgT1RIRVJf
RklMRVMgKz0gXAogICAgIFdlYlZpZXcvdHN0X3ByZWZlcmVuY2VzLnFtbCBcCiAgICAgV2ViVmll
dy90c3RfcHJvcGVydGllcy5xbWwgXAogICAgIFdlYlZpZXcvdHN0X3RpdGxlQ2hhbmdlZC5xbWwg
XAotICAgIFdlYlZpZXcvdHN0X2FwcGxpY2F0aW9uU2NoZW1lLnFtbAorICAgIFdlYlZpZXcvdHN0
X2FwcGxpY2F0aW9uU2NoZW1lLnFtbCBcCisgICAgV2ViVmlldy90c3Rfb3JpZ2luLnFtbApkaWZm
IC0tZ2l0IGEvU291cmNlL3F0d2Via2l0LWV4cG9ydC5tYXAgYi9Tb3VyY2UvcXR3ZWJraXQtZXhw
b3J0Lm1hcAppbmRleCBiYTJlMmZiLi5iZjEzNzc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvcXR3ZWJr
aXQtZXhwb3J0Lm1hcAorKysgYi9Tb3VyY2UvcXR3ZWJraXQtZXhwb3J0Lm1hcApAQCAtMTU2LDcg
KzE1Niw5IEBAIHF3a18xLjAgewogICAgICAgICBRUXVpY2tOZXR3b3JrUmVxdWVzdDo6KjsKICAg
ICAgICAgKlFRdWlja05ldHdvcmtSZXBseTsKICAgICAgICAgUVF1aWNrTmV0d29ya1JlcGx5Ojoq
OwotCisgICAgICAgICpRdFdlYlNlY3VyaXR5T3JpZ2luOworICAgICAgICBub24tdmlydHVhbD90
aHVuaz90bz9RdFdlYlNlY3VyaXR5T3JpZ2luKjsKKyAgICAgICAgUXRXZWJTZWN1cml0eU9yaWdp
bjo6KjsKIAogICAgICAgICAjIFdlYktpdCAyIEMgQVBJIG1hbmdsZWQgaW4gQysrCiAgICAgICAg
IFdLU3RyaW5nQ29weVFTdHJpbmcqOwotLSAKMS43LjUuNAoK
</data>
<flag name="review"
          id="125090"
          type_id="1"
          status="-"
          setter="kenneth"
    />
    <flag name="commit-queue"
          id="125091"
          type_id="3"
          status="-"
          setter="kenneth"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>124446</attachid>
            <date>2012-01-28 13:34:40 -0800</date>
            <delta_ts>2012-01-28 13:43:57 -0800</delta_ts>
            <desc>Removed dead code, more descriptive changelog</desc>
            <filename>origin_step14.patch</filename>
            <type>text/plain</type>
            <size>18417</size>
            <attacher name="Adenilson Cavalcanti Silva">savagobr</attacher>
            
              <data encoding="base64">RnJvbSA4MWJjYTU1ODZlOTcyMzNlOTAwOTdmZDMxMmNmNjIxOWEwNzNlMGEwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBZGVuaWxzb24gQ2F2YWxjYW50aSA8Y2F2YWxjYW50aWlAZ21h
aWwuY29tPgpEYXRlOiBTdW4sIDIyIEphbiAyMDEyIDAwOjA2OjUyIC0wNDAwClN1YmplY3Q6IFtQ
QVRDSF0gUHJldmlvdXMgZml4ZWQgKHBsdXMgQ2hhbmdlTG9nKSwgcmVtb3ZlZCB1bm5lY2Vzc2Fy
eSBoZWFkZXIKIGZpbGUsIGVsc2UgY2xhdXNlLCByZW1vdmVkIHJlZHVuZGFudCBjaGVja3MsIGNo
YW5nZWQgdGhlCiB0ZXN0LCB0aGUgbmFtZSBvZiBzZWN1cml0eSBvcmlnaW4gcHJvcGVydHksIHJl
bW92ZWQKIDo6Y2FuQWNjZXNzKCkgbWV0aG9kIGFuZCBmaW5hbGx5IGFkZGluZyB2ZXJzaW9uaW5n
IG9mCiBzdHJlYW0gb3BlcmF0b3JzLgoKU2lnbmVkLW9mZi1ieTogQWRlbmlsc29uIENhdmFsY2Fu
dGkgPGNhdmFsY2FudGlpQGdtYWlsLmNvbT4KLS0tCiBDaGFuZ2VMb2cgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTMgKysrCiBTb3VyY2UvV2ViS2l0L3F0L0No
YW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTIgKysKIFNvdXJjZS9XZWJLaXQv
cXQvZGVjbGFyYXRpdmUvcGx1Z2luLmNwcCAgICAgICAgICAgIHwgICAgMyArCiBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMzcgKysrKysrKwog
U291cmNlL1dlYktpdDIvVGFyZ2V0LnByaSAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAy
ICsKIC4uLi9VSVByb2Nlc3MvQVBJL3F0L3F0d2Vic2VjdXJpdHlvcmlnaW4uY3BwICAgICAgIHwg
IDExMCArKysrKysrKysrKysrKysrKysrKwogLi4uL1VJUHJvY2Vzcy9BUEkvcXQvcXR3ZWJzZWN1
cml0eW9yaWdpbl9wLmggICAgICAgfCAgIDYwICsrKysrKysrKysrCiAuLi4vVUlQcm9jZXNzL0FQ
SS9xdC9xd2VicGVybWlzc2lvbnJlcXVlc3QuY3BwICAgICB8ICAgMjYgKysrLS0tCiAuLi4vVUlQ
cm9jZXNzL0FQSS9xdC9xd2VicGVybWlzc2lvbnJlcXVlc3RfcC5oICAgICB8ICAgMTEgKy0tCiAu
Li4vQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL1dlYlZpZXcvdHN0X29yaWdpbi5xbWwgICB8ICAgNTcg
KysrKysrKysrKwogLi4uL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvcW1sdGVzdHMu
cHJvICAgfCAgICAzICstCiBTb3VyY2UvcXR3ZWJraXQtZXhwb3J0Lm1hcCAgICAgICAgICAgICAg
ICAgICAgICAgICB8ICAgIDQgKy0KIDEyIGZpbGVzIGNoYW5nZWQsIDMxNiBpbnNlcnRpb25zKCsp
LCAyMiBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL3F0L3F0d2Vic2VjdXJpdHlvcmlnaW4uY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQg
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xdHdlYnNlY3VyaXR5b3JpZ2luX3AuaAog
Y3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMv
cW1sdGVzdHMvV2ViVmlldy90c3Rfb3JpZ2luLnFtbAoKZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBi
L0NoYW5nZUxvZwppbmRleCA2NDk5MjFjLi5jY2Y3NWY4IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cK
KysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMDEtMjEgIEFkZW5pbHNvbiBD
YXZhbGNhbnRpICA8Y2F2YWxjYW50aWlAZ21haWwuY29tPgorCisgICAgICAgIFtRdF1bV0syXSBT
cGxpdCBRV2ViUGVybWlzc2lvblJlcXVlc3QgaW50byBRV2ViU2VjdXJpdHlPcmlnaW4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTczMjE1CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW50cm9kdWNpbmcgYSBu
ZXcgY2xhc3MgdG8gZXhwb3NlIHNlY3VyaXR5IG9yaWdpbiBpbmZvcm1hdGlvbiAocG9ydC9zY2hl
bWUvZXRjKSwgdXNlZnVsIGZvciBpbnNwZWN0aW5nIHRoZSBvcmlnaW4gb2YgcGVybWlzc2lvbiBy
ZXF1ZXN0cy4KKworICAgICAgICBUaGlzIGNsYXNzIHVzZXMgbWV0aG9kcyBmcm9tIFNjaGVtZVJl
Z2lzdHJ5LCB0aHVzIGFsbG93aW5nIHRvIGFkZC9yZW1vdmUvbGlzdCBsb2NhbCBzY2hlbWVzIHRv
by4KKworICAgICAgICAqIFNvdXJjZS9xdHdlYmtpdC1leHBvcnQubWFwOgorCiAyMDEyLTAxLTI3
ICBGYWR5IFNhbXVlbCAgPGZzYW11ZWxAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJlbmFtZSBz
aG91bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1lIGFuZCBtYWtlIGl0IGEgc2V0
dGluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L3F0L0NoYW5nZUxvZwppbmRleCBlNDgyYWUwLi44NzZlZGU0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L3F0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE1IEBACisyMDEyLTAxLTI4ICBBZGVuaWxzb24gQ2F2YWxjYW50aSAgPGNhdmFs
Y2FudGlpQGdtYWlsLmNvbT4KKworICAgICAgICBbUXRdW1dLMl0gU3BsaXQgUVdlYlBlcm1pc3Np
b25SZXF1ZXN0IGludG8gUVdlYlNlY3VyaXR5T3JpZ2luCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzIxNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGluZyBhIGNsYXNzIHRvIGFjY2VzcyBzZWN1cml0
eSBpbmZvcm1hdGlvbiBkYXRhIChlLmcuIHBvcnQvc2NoZW1lL2V0YyksIHdoaWxlIGFsbG93aW5n
IGl0IHRvIGJlIGhhbmRsZWQgaW4gUU1MIHNpZGUuCisKKyAgICAgICAgKiBkZWNsYXJhdGl2ZS9w
bHVnaW4uY3BwOgorICAgICAgICAoV2ViS2l0UW1sUGx1Z2luOjpyZWdpc3RlclR5cGVzKToKKwog
MjAxMi0wMS0yNSAgWmVubyBBbGJpc3NlciAgPHplbm9Ad2Via2l0Lm9yZz4KIAogICAgICAgICBb
UXRdIHB1YmxpYy5wcmkgaXMgbWlzc2luZyBkZXBlbmRlbmN5IHRvIHF1aWNrIG1vZHVsZS4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvZGVjbGFyYXRpdmUvcGx1Z2luLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvcXQvZGVjbGFyYXRpdmUvcGx1Z2luLmNwcAppbmRleCA2NDYzOGU0Li5lMmYwZmIz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L2RlY2xhcmF0aXZlL3BsdWdpbi5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9xdC9kZWNsYXJhdGl2ZS9wbHVnaW4uY3BwCkBAIC0yNSw2ICsyNSw3
IEBACiAjaWYgZGVmaW5lZChIQVZFX1dFQktJVDIpCiAjaW5jbHVkZSAicXF1aWNrd2VicGFnZV9w
LmgiCiAjaW5jbHVkZSAicXF1aWNrd2Vidmlld19wLmgiCisjaW5jbHVkZSAicXR3ZWJzZWN1cml0
eW9yaWdpbl9wLmgiCiAjaW5jbHVkZSAicXdlYmljb25pbWFnZXByb3ZpZGVyX3AuaCIKICNpbmNs
dWRlICJxd2VibmF2aWdhdGlvbnJlcXVlc3RfcC5oIgogI2luY2x1ZGUgInF3ZWJwZXJtaXNzaW9u
cmVxdWVzdF9wLmgiCkBAIC02NSw2ICs2Niw4IEBAIHB1YmxpYzoKICAgICAgICAgcW1sUmVnaXN0
ZXJVbmNyZWF0YWJsZVR5cGU8UU5ldHdvcmtSZXBseT4odXJpLCAzLCAwLCAiTmV0d29ya1JlcGx5
IiwgUU9iamVjdDo6dHIoIkNhbm5vdCBjcmVhdGUgc2VwYXJhdGUgaW5zdGFuY2Ugb2YgTmV0d29y
a1JlcGx5IikpOwogICAgICAgICBxbWxSZWdpc3RlclVuY3JlYXRhYmxlVHlwZTxRV2ViUGVybWlz
c2lvblJlcXVlc3Q+KHVyaSwgMywgMCwgIlBlcm1pc3Npb25SZXF1ZXN0IiwgUU9iamVjdDo6dHIo
IkNhbm5vdCBjcmVhdGUgc2VwYXJhdGUgaW5zdGFuY2Ugb2YgUGVybWlzc2lvblJlcXVlc3QiKSk7
CiAgICAgICAgIHFtbFJlZ2lzdGVyVW5jcmVhdGFibGVUeXBlPFFXZWJOYXZpZ2F0aW9uUmVxdWVz
dD4odXJpLCAzLCAwLCAiTmF2aWdhdGlvblJlcXVlc3QiLCBRT2JqZWN0Ojp0cigiQ2Fubm90IGNy
ZWF0ZSBzZXBhcmF0ZSBpbnN0YW5jZSBvZiBOYXZpZ2F0aW9uUmVxdWVzdCIpKTsKKyAgICAgICAg
cW1sUmVnaXN0ZXJVbmNyZWF0YWJsZVR5cGU8UXRXZWJTZWN1cml0eU9yaWdpbj4odXJpLCAzLCAw
LCAiU2VjdXJpdHlPcmlnaW4iLCBRT2JqZWN0Ojp0cigiQ2Fubm90IGNyZWF0ZSBzZXBhcmF0ZSBp
bnN0YW5jZSBvZiBTZWN1cml0eU9yaWdpbiIpKTsKKwogI2VuZGlmCiAgICAgfQogfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZwppbmRleCBjYjg4ZWJmLi4xNDkyN2NjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDAgQEAKKzIw
MTItMDEtMjggIEFkZW5pbHNvbiBDYXZhbGNhbnRpICA8Y2F2YWxjYW50aWlAZ21haWwuY29tPgor
CisgICAgICAgIFtRdF1bV0syXSBTcGxpdCBRV2ViUGVybWlzc2lvblJlcXVlc3QgaW50byBRV2Vi
U2VjdXJpdHlPcmlnaW4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTczMjE1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgSW50cm9kdWNpbmcgYSBuZXcgY2xhc3MgdG8gZXhwb3NlIHNlY3VyaXR5IG9yaWdpbiBp
bmZvcm1hdGlvbiAocG9ydC9zY2hlbWUvZXRjKSwgdXNlZnVsIGZvciBpbnNwZWN0aW5nIHRoZSBv
cmlnaW4gb2YgcGVybWlzc2lvbiByZXF1ZXN0cy4KKworICAgICAgICBUaGlzIGNsYXNzIHVzZXMg
bWV0aG9kcyBmcm9tIFNjaGVtZVJlZ2lzdHJ5LCB0aHVzIGFsbG93aW5nIHRvIGFkZC9yZW1vdmUv
bGlzdCBsb2NhbCBzY2hlbWVzIHRvby4KKworICAgICAgICAqIFRhcmdldC5wcmk6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9xdC9xdHdlYnNlY3VyaXR5b3JpZ2luLmNwcDogQWRkZWQuCisgICAg
ICAgIChRdFdlYlNlY3VyaXR5T3JpZ2luOjpjb250YWluc1NjaGVtZSk6CisgICAgICAgIChRdFdl
YlNlY3VyaXR5T3JpZ2luOjppc0xvY2FsU2NoZW1lKToKKyAgICAgICAgKFF0V2ViU2VjdXJpdHlP
cmlnaW46OlF0V2ViU2VjdXJpdHlPcmlnaW4pOgorICAgICAgICAoUXRXZWJTZWN1cml0eU9yaWdp
bjo6flF0V2ViU2VjdXJpdHlPcmlnaW4pOgorICAgICAgICAoUXRXZWJTZWN1cml0eU9yaWdpbjo6
aG9zdCk6CisgICAgICAgIChRdFdlYlNlY3VyaXR5T3JpZ2luOjpzY2hlbWUpOgorICAgICAgICAo
UXRXZWJTZWN1cml0eU9yaWdpbjo6cGF0aCk6CisgICAgICAgIChRdFdlYlNlY3VyaXR5T3JpZ2lu
Ojpwb3J0KToKKyAgICAgICAgKFF0V2ViU2VjdXJpdHlPcmlnaW46OnVybCk6CisgICAgICAgIChR
dFdlYlNlY3VyaXR5T3JpZ2luOjphZGRMb2NhbFNjaGVtZSk6CisgICAgICAgIChRdFdlYlNlY3Vy
aXR5T3JpZ2luOjpyZW1vdmVMb2NhbFNjaGVtZSk6CisgICAgICAgIChRdFdlYlNlY3VyaXR5T3Jp
Z2luOjpsb2NhbFNjaGVtZXMpOgorICAgICAgICAoUXRXZWJTZWN1cml0eU9yaWdpbjo6Y2FuQWNj
ZXNzKToKKyAgICAgICAgKG9wZXJhdG9yPDwpOgorICAgICAgICAob3BlcmF0b3I+Pik6CisgICAg
ICAgIChRdFdlYlNlY3VyaXR5T3JpZ2luOjpzZXRVcmwpOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvcXQvcXR3ZWJzZWN1cml0eW9yaWdpbl9wLmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvV2ViVmlldy90c3Rfb3JpZ2luLnFtbDogQWRkZWQuCisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xd2VicGVybWlzc2lvbnJlcXVlc3QuY3BwOgorICAg
ICAgICAoUVdlYlBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZTo6UVdlYlBlcm1pc3Npb25SZXF1ZXN0
UHJpdmF0ZSk6CisgICAgICAgIChRV2ViUGVybWlzc2lvblJlcXVlc3Q6OnNlY3VyaXR5T3JpZ2lu
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3F3ZWJwZXJtaXNzaW9ucmVxdWVzdF9wLmg6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9xbWx0ZXN0cy5wcm86
CisKIDIwMTItMDEtMjcgIEZhZHkgU2FtdWVsICA8ZnNhbXVlbEBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgUmVuYW1lIHNob3VsZExheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJhbWUgYW5k
IG1ha2UgaXQgYSBzZXR0aW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJp
IGIvU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaQppbmRleCA3YmQ0YTcyLi40OGRlZTBlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJLaXQyL1Rh
cmdldC5wcmkKQEAgLTE3Myw2ICsxNzMsNyBAQCBIRUFERVJTICs9IFwKICAgICBVSVByb2Nlc3Mv
QVBJL3F0L3F3ZWJkb3dubG9hZGl0ZW1fcC5oIFwKICAgICBVSVByb2Nlc3MvQVBJL3F0L3F3ZWJk
b3dubG9hZGl0ZW1fcF9wLmggXAogICAgIFVJUHJvY2Vzcy9BUEkvcXQvcXdlYnBlcm1pc3Npb25y
ZXF1ZXN0X3AuaCBcCisgICAgVUlQcm9jZXNzL0FQSS9xdC9xdHdlYnNlY3VyaXR5b3JpZ2luX3Au
aCBcCiAgICAgVUlQcm9jZXNzL0FQSS9xdC9xd2VibmF2aWdhdGlvbnJlcXVlc3RfcC5oIFwKICAg
ICBVSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnBhZ2VfcC5oIFwKICAgICBVSVByb2Nlc3MvQVBJ
L3F0L3FxdWlja3dlYnBhZ2VfcF9wLmggXApAQCAtNTAyLDYgKzUwMyw3IEBAIFNPVVJDRVMgKz0g
XAogICAgIFVJUHJvY2Vzcy9BUEkvY3BwL3F0L1dLVVJMUXQuY3BwIFwKICAgICBVSVByb2Nlc3Mv
QVBJL3F0L3F3ZWJkb3dubG9hZGl0ZW0uY3BwIFwKICAgICBVSVByb2Nlc3MvQVBJL3F0L3F3ZWJw
ZXJtaXNzaW9ucmVxdWVzdC5jcHAgXAorICAgIFVJUHJvY2Vzcy9BUEkvcXQvcXR3ZWJzZWN1cml0
eW9yaWdpbi5jcHAgXAogICAgIFVJUHJvY2Vzcy9BUEkvcXQvcXdlYm5hdmlnYXRpb25yZXF1ZXN0
LmNwcCBcCiAgICAgVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJwYWdlLmNwcCBcCiAgICAgVUlQ
cm9jZXNzL0FQSS9xdC9xd2VibmF2aWdhdGlvbmhpc3RvcnkuY3BwIFwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXR3ZWJzZWN1cml0eW9yaWdpbi5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F0d2Vic2VjdXJpdHlvcmlnaW4uY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA0NWQ4MDEKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F0d2Vic2VjdXJpdHlvcmlnaW4u
Y3BwCkBAIC0wLDAgKzEsMTEwIEBACisvKgorICAgIENvcHlyaWdodCAoQykgMjAxMiBOb2tpYSBD
b3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKworICAgIFRoaXMgbGlicmFy
eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgICBt
b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YworICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b247IGVpdGhlcgorICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0
aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRl
ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgIGJ1dCBXSVRIT1VUIEFO
WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICAgTUVS
Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo
ZSBHTlUKKyAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls
cy4KKworICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsg
c2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICAgIHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxv
b3IsCisgICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAicXR3ZWJzZWN1cml0eW9yaWdpbl9wLmgiCisKKyNpbmNsdWRlIDxR
dENvcmUvUUZpbGVJbmZvPgorI2luY2x1ZGUgPFF0Q29yZS9RU3RyaW5nTGlzdD4KKyNpbmNsdWRl
IDxTY2hlbWVSZWdpc3RyeS5oPgorI2luY2x1ZGUgPFNlY3VyaXR5T3JpZ2luLmg+CisjaW5jbHVk
ZSA8V2ViS2l0Mi9XS0Jhc2UuaD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLUmV0YWluUHRyLmg+Cisj
aW5jbHVkZSA8V2ViS2l0Mi9XS1NlY3VyaXR5T3JpZ2luLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOworCitRdFdlYlNlY3VyaXR5T3JpZ2luOjpRdFdlYlNlY3VyaXR5T3JpZ2luKFFPYmpl
Y3QqIHBhcmVudCkKKyAgICA6IFFPYmplY3QocGFyZW50KQoreworfQorCitRdFdlYlNlY3VyaXR5
T3JpZ2luOjp+UXRXZWJTZWN1cml0eU9yaWdpbigpCit7Cit9CisKK1FTdHJpbmcgUXRXZWJTZWN1
cml0eU9yaWdpbjo6aG9zdCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fdXJsLmhvc3QoKTsKK30K
KworUVN0cmluZyBRdFdlYlNlY3VyaXR5T3JpZ2luOjpzY2hlbWUoKSBjb25zdAoreworICAgIHJl
dHVybiBtX3VybC5zY2hlbWUoKTsKK30KKworUVN0cmluZyBRdFdlYlNlY3VyaXR5T3JpZ2luOjpw
YXRoKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV91cmwucGF0aCgpOworfQorCitpbnQgUXRXZWJT
ZWN1cml0eU9yaWdpbjo6cG9ydCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fdXJsLnBvcnQoKTsK
K30KKworUVVybCBRdFdlYlNlY3VyaXR5T3JpZ2luOjp1cmwoKSBjb25zdAoreworICAgIHJldHVy
biBtX3VybDsKK30KKwordm9pZCBRdFdlYlNlY3VyaXR5T3JpZ2luOjphZGRMb2NhbFNjaGVtZShj
b25zdCBRU3RyaW5nJiBzY2hlbWUpCit7CisgICAgU2NoZW1lUmVnaXN0cnk6OnJlZ2lzdGVyVVJM
U2NoZW1lQXNMb2NhbChzY2hlbWUpOworfQorCit2b2lkIFF0V2ViU2VjdXJpdHlPcmlnaW46OnJl
bW92ZUxvY2FsU2NoZW1lKGNvbnN0IFFTdHJpbmcmIHNjaGVtZSkKK3sKKyAgICBTY2hlbWVSZWdp
c3RyeTo6cmVtb3ZlVVJMU2NoZW1lUmVnaXN0ZXJlZEFzTG9jYWwoc2NoZW1lKTsKK30KKworUVN0
cmluZ0xpc3QgUXRXZWJTZWN1cml0eU9yaWdpbjo6bG9jYWxTY2hlbWVzKCkKK3sKKyAgICBRU3Ry
aW5nTGlzdCBzY2hlbWVzOworICAgIGNvbnN0IFVSTFNjaGVtZXNNYXAmIG1hcCA9IFNjaGVtZVJl
Z2lzdHJ5Ojpsb2NhbFNjaGVtZXMoKTsKKyAgICBVUkxTY2hlbWVzTWFwOjpjb25zdF9pdGVyYXRv
ciBlbmQgPSBtYXAuZW5kKCk7CisgICAgZm9yIChVUkxTY2hlbWVzTWFwOjpjb25zdF9pdGVyYXRv
ciBpdCA9IG1hcC5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpIHsKKyAgICAgICAgY29uc3QgUVN0
cmluZyBzY2hlbWUgPSAqaXQ7CisgICAgICAgIHNjaGVtZXMuYXBwZW5kKHNjaGVtZSk7CisgICAg
fQorCisgICAgcmV0dXJuIHNjaGVtZXM7Cit9CisKK1FEYXRhU3RyZWFtJiBvcGVyYXRvcjw8KFFE
YXRhU3RyZWFtJiBvdXQsIGNvbnN0IFF0V2ViU2VjdXJpdHlPcmlnaW4gJm9yaWdpbikKK3sKKyAg
ICBvdXQuc2V0VmVyc2lvbihRRGF0YVN0cmVhbTo6UXRfNF8wKTsKKyAgICBvdXQgPDwgKG9yaWdp
bi51cmwoKS50b0VuY29kZWQoKS5kYXRhKCkpOworICAgIHJldHVybiBvdXQ7Cit9CisKK1FEYXRh
U3RyZWFtJiBvcGVyYXRvcj4+KFFEYXRhU3RyZWFtJiBpbiwgUXRXZWJTZWN1cml0eU9yaWdpbiYg
b3JpZ2luKQoreworICAgIGNoYXIqIHVybCA9IG9yaWdpbi51cmwoKS50b0VuY29kZWQoKS5kYXRh
KCk7CisgICAgaW4uc2V0VmVyc2lvbihRRGF0YVN0cmVhbTo6UXRfNF8wKTsKKyAgICBpbiA+PiB1
cmw7CisgICAgcmV0dXJuIGluOworfQorCisvLyBVc2VkIHRvIHNldCBzZWN1cml0eSBpbmZvcm1h
dGlvbiBpbiBhIHBlcm1pc3Npb24gcmVxdWVzdCBldmVudCAoZS5nLgorLy8gZ2VvbG9jYXRpb24g
cGVybWlzc2lvbikKK3ZvaWQgUXRXZWJTZWN1cml0eU9yaWdpbjo6c2V0VXJsKGNvbnN0IFFVcmwm
IHVybCkKK3sKKyAgICBtX3VybCA9IHVybDsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvcXQvcXR3ZWJzZWN1cml0eW9yaWdpbl9wLmggYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL3F0L3F0d2Vic2VjdXJpdHlvcmlnaW5fcC5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVjYzcyM2QKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F0d2Vic2VjdXJpdHlvcmlnaW5fcC5oCkBAIC0wLDAg
KzEsNjAgQEAKKy8qCisgICAgQ29weXJpZ2h0IChDKSAyMDEyIE5va2lhIENvcnBvcmF0aW9uIGFu
ZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICAgTGljZW5z
ZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisg
ICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl
ciB2ZXJzaW9uLgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl
IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3
aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkg
b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91
IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZQorICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUg
Q09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBCb3N0
b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyovCisjaWZuZGVmIHF0d2Vic2VjdXJpdHlvcmlnaW5f
cF9oCisjZGVmaW5lIHF0d2Vic2VjdXJpdHlvcmlnaW5fcF9oCisKKyNpbmNsdWRlICJxd2Via2l0
Z2xvYmFsLmgiCisKKyNpbmNsdWRlIDxRdENvcmUvUURhdGFTdHJlYW0+CisjaW5jbHVkZSA8UXRD
b3JlL1FPYmplY3Q+CisjaW5jbHVkZSA8UXRDb3JlL1FTdHJpbmc+CisjaW5jbHVkZSA8UXRDb3Jl
L1FVcmw+CisjaW5jbHVkZSA8UXRDb3JlL3FzaGFyZWRkYXRhLmg+CisKK2NsYXNzIFFXRUJLSVRf
RVhQT1JUIFF0V2ViU2VjdXJpdHlPcmlnaW4gOiBwdWJsaWMgUU9iamVjdCB7CisgICAgUV9PQkpF
Q1QKKyAgICBRX1BST1BFUlRZKFFTdHJpbmcgc2NoZW1lIFJFQUQgc2NoZW1lIENPTlNUQU5UKQor
ICAgIFFfUFJPUEVSVFkoUVN0cmluZyBob3N0IFJFQUQgaG9zdCBDT05TVEFOVCkKKyAgICBRX1BS
T1BFUlRZKGludCBwb3J0IFJFQUQgcG9ydCBDT05TVEFOVCkKKyAgICBRX1BST1BFUlRZKFFTdHJp
bmcgcGF0aCBSRUFEIHBhdGggQ09OU1RBTlQpCisgICAgUV9QUk9QRVJUWShRVXJsIHVybCBSRUFE
IHVybCBDT05TVEFOVCkKKworcHVibGljOgorICAgIFF0V2ViU2VjdXJpdHlPcmlnaW4oUU9iamVj
dCogcGFyZW50ID0gMCk7CisgICAgdmlydHVhbCB+UXRXZWJTZWN1cml0eU9yaWdpbigpOworCisg
ICAgUVN0cmluZyBzY2hlbWUoKSBjb25zdDsKKyAgICBRU3RyaW5nIGhvc3QoKSBjb25zdDsKKyAg
ICBpbnQgcG9ydCgpIGNvbnN0OworICAgIFFTdHJpbmcgcGF0aCgpIGNvbnN0OworICAgIFFVcmwg
dXJsKCkgY29uc3Q7CisgICAgdm9pZCBzZXRVcmwoY29uc3QgUVVybCYpOworCisgICAgc3RhdGlj
IHZvaWQgYWRkTG9jYWxTY2hlbWUoY29uc3QgUVN0cmluZyYgc2NoZW1lKTsKKyAgICBzdGF0aWMg
dm9pZCByZW1vdmVMb2NhbFNjaGVtZShjb25zdCBRU3RyaW5nJiBzY2hlbWUpOworICAgIHN0YXRp
YyBRU3RyaW5nTGlzdCBsb2NhbFNjaGVtZXMoKTsKKworcHJpdmF0ZToKKyAgICBRVXJsIG1fdXJs
OworfTsKKworUURhdGFTdHJlYW0mIG9wZXJhdG9yPDwoUURhdGFTdHJlYW0mLCBjb25zdCBRdFdl
YlNlY3VyaXR5T3JpZ2luJik7CitRRGF0YVN0cmVhbSYgb3BlcmF0b3I+PihRRGF0YVN0cmVhbSYs
IFF0V2ViU2VjdXJpdHlPcmlnaW4mKTsKKworI2VuZGlmIC8vIHF0d2Vic2VjdXJpdHlvcmlnaW5f
cF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwZXJt
aXNzaW9ucmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJw
ZXJtaXNzaW9ucmVxdWVzdC5jcHAKaW5kZXggMTZhNDM4NS4uYTI4Yzk1ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2VicGVybWlzc2lvbnJlcXVlc3QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnBlcm1pc3Npb25yZXF1
ZXN0LmNwcApAQCAtMzQsNyArMzQsMTcgQEAgcHVibGljOgogICAgICAgICAsIHJlcXVlc3QocGVy
bWlzc2lvblJlcXVlc3QpCiAgICAgICAgICwgYWxsb3coZmFsc2UpCiAgICAgeworICAgICAgICBR
VXJsIGRhdGE7CisgICAgICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiB1cmwgPSBhZG9wdFdL
KFdLU2VjdXJpdHlPcmlnaW5Db3B5UHJvdG9jb2wob3JpZ2luLmdldCgpKSk7CisgICAgICAgIGRh
dGEuc2V0U2NoZW1lKFdLU3RyaW5nQ29weVFTdHJpbmcodXJsLmdldCgpKSk7CisKKyAgICAgICAg
V0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IGhvc3QgPSBhZG9wdFdLKFdLU2VjdXJpdHlPcmlnaW5D
b3B5SG9zdChvcmlnaW4uZ2V0KCkpKTsKKyAgICAgICAgZGF0YS5zZXRIb3N0KFdLU3RyaW5nQ29w
eVFTdHJpbmcoaG9zdC5nZXQoKSkpOworCisgICAgICAgIGRhdGEuc2V0UG9ydChzdGF0aWNfY2Fz
dDxpbnQ+KFdLU2VjdXJpdHlPcmlnaW5HZXRQb3J0KG9yaWdpbi5nZXQoKSkpKTsKKyAgICAgICAg
c2VjdXJpdHlJbmZvLnNldFVybChkYXRhKTsKICAgICB9CisKICAgICB+UVdlYlBlcm1pc3Npb25S
ZXF1ZXN0UHJpdmF0ZSgpCiAgICAgewogICAgIH0KQEAgLTQyLDYgKzUyLDcgQEAgcHVibGljOgog
ICAgIFdLUmV0YWluUHRyPFdLU2VjdXJpdHlPcmlnaW5SZWY+IG9yaWdpbjsKICAgICBRV2ViUGVy
bWlzc2lvblJlcXVlc3Q6OlJlcXVlc3RUeXBlIHR5cGU7CiAgICAgV0tSZXRhaW5QdHI8V0tHZW9s
b2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0UmVmPiByZXF1ZXN0OworICAgIFF0V2ViU2VjdXJpdHlP
cmlnaW4gc2VjdXJpdHlJbmZvOwogICAgIGJvb2wgYWxsb3c7CiB9OwogCkBAIC04OCwxOSArOTks
OCBAQCBib29sIFFXZWJQZXJtaXNzaW9uUmVxdWVzdDo6YWxsb3coKSBjb25zdAogICAgIHJldHVy
biBkLT5hbGxvdzsKIH0KIAotUVN0cmluZyBRV2ViUGVybWlzc2lvblJlcXVlc3Q6OnNjaGVtZSgp
IGNvbnN0Ci17Ci0gICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHVybCA9IGFkb3B0V0soV0tT
ZWN1cml0eU9yaWdpbkNvcHlQcm90b2NvbChkLT5vcmlnaW4uZ2V0KCkpKTsKLSAgICByZXR1cm4g
V0tTdHJpbmdDb3B5UVN0cmluZyh1cmwuZ2V0KCkpOwotfQotCi1RU3RyaW5nIFFXZWJQZXJtaXNz
aW9uUmVxdWVzdDo6aG9zdCgpIGNvbnN0CitRdFdlYlNlY3VyaXR5T3JpZ2luKiBRV2ViUGVybWlz
c2lvblJlcXVlc3Q6OnNlY3VyaXR5T3JpZ2luKCkKIHsKLSAgICBXS1JldGFpblB0cjxXS1N0cmlu
Z1JlZj4gb3JpZ2luID0gYWRvcHRXSyhXS1NlY3VyaXR5T3JpZ2luQ29weUhvc3QoZC0+b3JpZ2lu
LmdldCgpKSk7Ci0gICAgcmV0dXJuIFdLU3RyaW5nQ29weVFTdHJpbmcob3JpZ2luLmdldCgpKTsK
KyAgICByZXR1cm4gJihkLT5zZWN1cml0eUluZm8pOwogfQogCi1pbnQgUVdlYlBlcm1pc3Npb25S
ZXF1ZXN0Ojpwb3J0KCkgY29uc3QKLXsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8aW50PihXS1Nl
Y3VyaXR5T3JpZ2luR2V0UG9ydChkLT5vcmlnaW4uZ2V0KCkpKTsKLX0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnBlcm1pc3Npb25yZXF1ZXN0X3AuaCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnBlcm1pc3Npb25yZXF1ZXN0X3Au
aAppbmRleCA1ODI0YzRjLi40NzA4YjcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL3F0L3F3ZWJwZXJtaXNzaW9ucmVxdWVzdF9wLmgKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9xdC9xd2VicGVybWlzc2lvbnJlcXVlc3RfcC5oCkBAIC0yMCw2ICsy
MCw3IEBACiAjaWZuZGVmIHF3ZWJwZXJtaXNzaW9ucmVxdWVzdF9wX2gKICNkZWZpbmUgcXdlYnBl
cm1pc3Npb25yZXF1ZXN0X3BfaAogCisjaW5jbHVkZSAicXR3ZWJzZWN1cml0eW9yaWdpbl9wLmgi
CiAjaW5jbHVkZSAicXdlYmtpdGdsb2JhbC5oIgogCiAjaW5jbHVkZSA8UXRDb3JlL1FPYmplY3Q+
CkBAIC0zMiwxMCArMzMsOCBAQCBjbGFzcyBRV2ViUGVybWlzc2lvblJlcXVlc3RQcml2YXRlOwog
Y2xhc3MgUVdFQktJVF9FWFBPUlQgUVdlYlBlcm1pc3Npb25SZXF1ZXN0IDogcHVibGljIFFPYmpl
Y3QgewogICAgIFFfT0JKRUNUCiAgICAgUV9QUk9QRVJUWShib29sIGFsbG93IFJFQUQgYWxsb3cg
V1JJVEUgc2V0QWxsb3cpCi0gICAgUV9QUk9QRVJUWShSZXF1ZXN0VHlwZSB0eXBlIFJFQUQgdHlw
ZSkKLSAgICBRX1BST1BFUlRZKFFTdHJpbmcgc2NoZW1lIFJFQUQgc2NoZW1lKQotICAgIFFfUFJP
UEVSVFkoUVN0cmluZyBob3N0IFJFQUQgaG9zdCkKLSAgICBRX1BST1BFUlRZKGludCBwb3J0IFJF
QUQgcG9ydCkKKyAgICBRX1BST1BFUlRZKFJlcXVlc3RUeXBlIHR5cGUgUkVBRCB0eXBlIENPTlNU
QU5UKQorICAgIFFfUFJPUEVSVFkoUXRXZWJTZWN1cml0eU9yaWdpbiogb3JpZ2luIFJFQUQgc2Vj
dXJpdHlPcmlnaW4pCiAgICAgUV9FTlVNUyhSZXF1ZXN0VHlwZSkKIAogcHVibGljOgpAQCAtNDgs
MTIgKzQ3LDEwIEBAIHB1YmxpYzoKIAogICAgIFJlcXVlc3RUeXBlIHR5cGUoKSBjb25zdDsKICAg
ICBib29sIGFsbG93KCkgY29uc3Q7Ci0gICAgUVN0cmluZyBzY2hlbWUoKSBjb25zdDsKLSAgICBR
U3RyaW5nIGhvc3QoKSBjb25zdDsKLSAgICBpbnQgcG9ydCgpIGNvbnN0OwogCiBwdWJsaWMgUV9T
TE9UUzoKICAgICB2b2lkIHNldEFsbG93KGJvb2wpOworICAgIFF0V2ViU2VjdXJpdHlPcmlnaW4q
IHNlY3VyaXR5T3JpZ2luKCk7CiAKIHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNzIFFXZWJQZXJt
aXNzaW9uUmVxdWVzdFByaXZhdGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL1dlYlZpZXcvdHN0X29yaWdpbi5xbWwgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL1dlYlZpZXcvdHN0X29yaWdp
bi5xbWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTdkNjQyMQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVz
dHMvV2ViVmlldy90c3Rfb3JpZ2luLnFtbApAQCAtMCwwICsxLDU3IEBACitpbXBvcnQgUXRRdWlj
ayAyLjAKK2ltcG9ydCBRdFRlc3QgMS4wCitpbXBvcnQgUXRXZWJLaXQgMy4wCitpbXBvcnQgUXRX
ZWJLaXQuZXhwZXJpbWVudGFsIDMuMAorCitXZWJWaWV3IHsKKyAgICBpZDogd2ViVmlldworICAg
IHdpZHRoOiAyMDAKKyAgICBoZWlnaHQ6IDIwMAorCisgICAgcHJvcGVydHkgYm9vbCBzdWNjZXNz
OiB0cnVlCisgICAgcHJvcGVydHkgaW50IHBvcnQ6IDAKKyAgICBwcm9wZXJ0eSBzdHJpbmcgc2No
ZW1lOiAiZmlsZSIKKworICAgIFNpZ25hbFNweSB7CisgICAgICAgIGlkOiBzcHkKKyAgICAgICAg
dGFyZ2V0OiBleHBlcmltZW50YWwKKyAgICAgICAgc2lnbmFsTmFtZTogInBlcm1pc3Npb25SZXF1
ZXN0ZWQiCisgICAgfQorCisgICAgZXhwZXJpbWVudGFsLm9uUGVybWlzc2lvblJlcXVlc3RlZDog
eworICAgICAgICBpZiAocGVybWlzc2lvbi5vcmlnaW4ucG9ydCAhPSB3ZWJWaWV3LnBvcnQpIHsK
KyAgICAgICAgICAgIGNvbnNvbGUubG9nKCJFeHBlY3RlZCBwb3J0IHZhbHVlIHNob3VsZCBiZSB6
ZXJvLiIpCisgICAgICAgICAgICB3ZWJWaWV3LnN1Y2Nlc3MgPSBmYWxzZQorICAgICAgICB9CisK
KyAgICAgICAgaWYgKHBlcm1pc3Npb24ub3JpZ2luLnNjaGVtZSAhPSB3ZWJWaWV3LnNjaGVtZSkg
eworICAgICAgICAgICAgY29uc29sZS5sb2coIkV4cGVjdGVkIHNjaGVtZSBzaG91bGQgYmUgXCJm
aWxlXCIuIikKKyAgICAgICAgICAgIHdlYlZpZXcuc3VjY2VzcyA9IGZhbHNlCisgICAgICAgIH0K
KyAgICB9CisKKyAgICBUZXN0Q2FzZSB7CisgICAgICAgIG5hbWU6ICJXZWJWaWV3U2VjdXJpdHlP
cmlnaW4iCisKKyAgICAgICAgLy8gRGVsYXllZCB3aW5kb3dTaG93biB0byB3b3JrYXJvdW5kIHBy
b2JsZW1zIHdpdGggUXQ1IGluIGRlYnVnIG1vZGUuCisgICAgICAgIHdoZW46IGZhbHNlCisgICAg
ICAgIFRpbWVyIHsKKyAgICAgICAgICAgIHJ1bm5pbmc6IHBhcmVudC53aW5kb3dTaG93bgorICAg
ICAgICAgICAgcmVwZWF0OiBmYWxzZQorICAgICAgICAgICAgaW50ZXJ2YWw6IDEKKyAgICAgICAg
ICAgIG9uVHJpZ2dlcmVkOiBwYXJlbnQud2hlbiA9IHRydWUKKyAgICAgICAgfQorCisgICAgICAg
IGZ1bmN0aW9uIGluaXQoKSB7CisgICAgICAgICAgICBzcHkuY2xlYXIoKQorICAgICAgICB9CisK
KyAgICAgICAgZnVuY3Rpb24gdGVzdF9wZXJtaXNzaW9uUmVxdWVzdCgpIHsKKyAgICAgICAgICAg
IGNvbXBhcmUoc3B5LmNvdW50LCAwKQorICAgICAgICAgICAgd2ViVmlldy5sb2FkKFF0LnJlc29s
dmVkVXJsKCIuLi9jb21tb24vZ2VvbG9jYXRpb24uaHRtbCIpKQorICAgICAgICAgICAgc3B5Lndh
aXQoKQorICAgICAgICAgICAgY29tcGFyZShzcHkuY291bnQsIDEpCisgICAgICAgICAgICBjb21w
YXJlKHdlYlZpZXcuc3VjY2VzcywgdHJ1ZSkKKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvcW1sdGVz
dHMucHJvIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9x
bWx0ZXN0cy5wcm8KaW5kZXggYzhjZTg3YS4uNTA4MTljMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9xbWx0ZXN0cy5wcm8KKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9xbWx0ZXN0cy5w
cm8KQEAgLTI5LDQgKzI5LDUgQEAgT1RIRVJfRklMRVMgKz0gXAogICAgIFdlYlZpZXcvdHN0X3By
ZWZlcmVuY2VzLnFtbCBcCiAgICAgV2ViVmlldy90c3RfcHJvcGVydGllcy5xbWwgXAogICAgIFdl
YlZpZXcvdHN0X3RpdGxlQ2hhbmdlZC5xbWwgXAotICAgIFdlYlZpZXcvdHN0X2FwcGxpY2F0aW9u
U2NoZW1lLnFtbAorICAgIFdlYlZpZXcvdHN0X2FwcGxpY2F0aW9uU2NoZW1lLnFtbCBcCisgICAg
V2ViVmlldy90c3Rfb3JpZ2luLnFtbApkaWZmIC0tZ2l0IGEvU291cmNlL3F0d2Via2l0LWV4cG9y
dC5tYXAgYi9Tb3VyY2UvcXR3ZWJraXQtZXhwb3J0Lm1hcAppbmRleCBiYTJlMmZiLi5iZjEzNzc3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvcXR3ZWJraXQtZXhwb3J0Lm1hcAorKysgYi9Tb3VyY2UvcXR3
ZWJraXQtZXhwb3J0Lm1hcApAQCAtMTU2LDcgKzE1Niw5IEBAIHF3a18xLjAgewogICAgICAgICBR
UXVpY2tOZXR3b3JrUmVxdWVzdDo6KjsKICAgICAgICAgKlFRdWlja05ldHdvcmtSZXBseTsKICAg
ICAgICAgUVF1aWNrTmV0d29ya1JlcGx5OjoqOwotCisgICAgICAgICpRdFdlYlNlY3VyaXR5T3Jp
Z2luOworICAgICAgICBub24tdmlydHVhbD90aHVuaz90bz9RdFdlYlNlY3VyaXR5T3JpZ2luKjsK
KyAgICAgICAgUXRXZWJTZWN1cml0eU9yaWdpbjo6KjsKIAogICAgICAgICAjIFdlYktpdCAyIEMg
QVBJIG1hbmdsZWQgaW4gQysrCiAgICAgICAgIFdLU3RyaW5nQ29weVFTdHJpbmcqOwotLSAKMS43
LjUuNAoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>124447</attachid>
            <date>2012-01-28 13:43:57 -0800</date>
            <delta_ts>2012-02-01 06:21:30 -0800</delta_ts>
            <desc>Removed methods from changelog</desc>
            <filename>origin_step14_fix.patch</filename>
            <type>text/plain</type>
            <size>18286</size>
            <attacher name="Adenilson Cavalcanti Silva">savagobr</attacher>
            
              <data encoding="base64">RnJvbSA5YTMyY2FmZWJmMjcyOWM2MTVkMzhlYTJmM2E3MGVkMmY1NzA3NzAyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBZGVuaWxzb24gQ2F2YWxjYW50aSA8Y2F2YWxjYW50aWlAZ21h
aWwuY29tPgpEYXRlOiBTdW4sIDIyIEphbiAyMDEyIDAwOjA2OjUyIC0wNDAwClN1YmplY3Q6IFtQ
QVRDSF0gUHJldmlvdXMgZml4ZWQgKHBsdXMgQ2hhbmdlTG9nKSwgcmVtb3ZlZCB1bm5lY2Vzc2Fy
eSBoZWFkZXIKIGZpbGUsIGVsc2UgY2xhdXNlLCByZW1vdmVkIHJlZHVuZGFudCBjaGVja3MsIGNo
YW5nZWQgdGhlCiB0ZXN0LCB0aGUgbmFtZSBvZiBzZWN1cml0eSBvcmlnaW4gcHJvcGVydHksIHJl
bW92ZWQKIDo6Y2FuQWNjZXNzKCkgbWV0aG9kLCBhZGRpbmcgdmVyc2lvbmluZyBvZiBzdHJlYW0K
IG9wZXJhdG9ycywgdXBkYXRlZCBjaGFuZ2Vsb2cuCgpTaWduZWQtb2ZmLWJ5OiBBZGVuaWxzb24g
Q2F2YWxjYW50aSA8Y2F2YWxjYW50aWlAZ21haWwuY29tPgotLS0KIENoYW5nZUxvZyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxMyArKysKIFNvdXJjZS9XZWJL
aXQvcXQvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxMiArKwogU291cmNl
L1dlYktpdC9xdC9kZWNsYXJhdGl2ZS9wbHVnaW4uY3BwICAgICAgICAgICAgfCAgICAzICsKIFNv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAzNCAr
KysrKysKIFNvdXJjZS9XZWJLaXQyL1RhcmdldC5wcmkgICAgICAgICAgICAgICAgICAgICAgICAg
IHwgICAgMiArCiAuLi4vVUlQcm9jZXNzL0FQSS9xdC9xdHdlYnNlY3VyaXR5b3JpZ2luLmNwcCAg
ICAgICB8ICAxMTAgKysrKysrKysrKysrKysrKysrKysKIC4uLi9VSVByb2Nlc3MvQVBJL3F0L3F0
d2Vic2VjdXJpdHlvcmlnaW5fcC5oICAgICAgIHwgICA2MCArKysrKysrKysrKwogLi4uL1VJUHJv
Y2Vzcy9BUEkvcXQvcXdlYnBlcm1pc3Npb25yZXF1ZXN0LmNwcCAgICAgfCAgIDI2ICsrKy0tLQog
Li4uL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnBlcm1pc3Npb25yZXF1ZXN0X3AuaCAgICAgfCAgIDEx
ICstLQogLi4uL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3L3RzdF9vcmlnaW4ucW1sICAg
fCAgIDU3ICsrKysrKysrKysKIC4uLi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL3Ft
bHRlc3RzLnBybyAgIHwgICAgMyArLQogU291cmNlL3F0d2Via2l0LWV4cG9ydC5tYXAgICAgICAg
ICAgICAgICAgICAgICAgICAgfCAgICA0ICstCiAxMiBmaWxlcyBjaGFuZ2VkLCAzMTMgaW5zZXJ0
aW9ucygrKSwgMjIgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9xdC9xdHdlYnNlY3VyaXR5b3JpZ2luLmNwcAogY3JlYXRlIG1vZGUg
MTAwNjQ0IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXR3ZWJzZWN1cml0eW9yaWdp
bl9wLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0
L3Rlc3RzL3FtbHRlc3RzL1dlYlZpZXcvdHN0X29yaWdpbi5xbWwKCmRpZmYgLS1naXQgYS9DaGFu
Z2VMb2cgYi9DaGFuZ2VMb2cKaW5kZXggNjQ5OTIxYy4uY2NmNzVmOCAxMDA2NDQKLS0tIGEvQ2hh
bmdlTG9nCisrKyBiL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEyLTAxLTIxICBBZGVu
aWxzb24gQ2F2YWxjYW50aSAgPGNhdmFsY2FudGlpQGdtYWlsLmNvbT4KKworICAgICAgICBbUXRd
W1dLMl0gU3BsaXQgUVdlYlBlcm1pc3Npb25SZXF1ZXN0IGludG8gUVdlYlNlY3VyaXR5T3JpZ2lu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzIxNQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEludHJvZHVj
aW5nIGEgbmV3IGNsYXNzIHRvIGV4cG9zZSBzZWN1cml0eSBvcmlnaW4gaW5mb3JtYXRpb24gKHBv
cnQvc2NoZW1lL2V0YyksIHVzZWZ1bCBmb3IgaW5zcGVjdGluZyB0aGUgb3JpZ2luIG9mIHBlcm1p
c3Npb24gcmVxdWVzdHMuCisKKyAgICAgICAgVGhpcyBjbGFzcyB1c2VzIG1ldGhvZHMgZnJvbSBT
Y2hlbWVSZWdpc3RyeSwgdGh1cyBhbGxvd2luZyB0byBhZGQvcmVtb3ZlL2xpc3QgbG9jYWwgc2No
ZW1lcyB0b28uCisKKyAgICAgICAgKiBTb3VyY2UvcXR3ZWJraXQtZXhwb3J0Lm1hcDoKKwogMjAx
Mi0wMS0yNyAgRmFkeSBTYW11ZWwgIDxmc2FtdWVsQGNocm9taXVtLm9yZz4KIAogICAgICAgICBS
ZW5hbWUgc2hvdWxkTGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZSBhbmQgbWFrZSBp
dCBhIHNldHRpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKaW5kZXggZTQ4MmFlMC4uODc2ZWRlNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9xdC9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0wMS0yOCAgQWRlbmlsc29uIENhdmFsY2FudGkg
IDxjYXZhbGNhbnRpaUBnbWFpbC5jb20+CisKKyAgICAgICAgW1F0XVtXSzJdIFNwbGl0IFFXZWJQ
ZXJtaXNzaW9uUmVxdWVzdCBpbnRvIFFXZWJTZWN1cml0eU9yaWdpbgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMyMTUKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRpbmcgYSBjbGFzcyB0byBhY2Nlc3Mg
c2VjdXJpdHkgaW5mb3JtYXRpb24gZGF0YSAoZS5nLiBwb3J0L3NjaGVtZS9ldGMpLCB3aGlsZSBh
bGxvd2luZyBpdCB0byBiZSBoYW5kbGVkIGluIFFNTCBzaWRlLgorCisgICAgICAgICogZGVjbGFy
YXRpdmUvcGx1Z2luLmNwcDoKKyAgICAgICAgKFdlYktpdFFtbFBsdWdpbjo6cmVnaXN0ZXJUeXBl
cyk6CisKIDIwMTItMDEtMjUgIFplbm8gQWxiaXNzZXIgIDx6ZW5vQHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgW1F0XSBwdWJsaWMucHJpIGlzIG1pc3NpbmcgZGVwZW5kZW5jeSB0byBxdWljayBtb2R1
bGUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L2RlY2xhcmF0aXZlL3BsdWdpbi5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L3F0L2RlY2xhcmF0aXZlL3BsdWdpbi5jcHAKaW5kZXggNjQ2MzhlNC4u
ZTJmMGZiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9kZWNsYXJhdGl2ZS9wbHVnaW4u
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvZGVjbGFyYXRpdmUvcGx1Z2luLmNwcApAQCAtMjUs
NiArMjUsNyBAQAogI2lmIGRlZmluZWQoSEFWRV9XRUJLSVQyKQogI2luY2x1ZGUgInFxdWlja3dl
YnBhZ2VfcC5oIgogI2luY2x1ZGUgInFxdWlja3dlYnZpZXdfcC5oIgorI2luY2x1ZGUgInF0d2Vi
c2VjdXJpdHlvcmlnaW5fcC5oIgogI2luY2x1ZGUgInF3ZWJpY29uaW1hZ2Vwcm92aWRlcl9wLmgi
CiAjaW5jbHVkZSAicXdlYm5hdmlnYXRpb25yZXF1ZXN0X3AuaCIKICNpbmNsdWRlICJxd2VicGVy
bWlzc2lvbnJlcXVlc3RfcC5oIgpAQCAtNjUsNiArNjYsOCBAQCBwdWJsaWM6CiAgICAgICAgIHFt
bFJlZ2lzdGVyVW5jcmVhdGFibGVUeXBlPFFOZXR3b3JrUmVwbHk+KHVyaSwgMywgMCwgIk5ldHdv
cmtSZXBseSIsIFFPYmplY3Q6OnRyKCJDYW5ub3QgY3JlYXRlIHNlcGFyYXRlIGluc3RhbmNlIG9m
IE5ldHdvcmtSZXBseSIpKTsKICAgICAgICAgcW1sUmVnaXN0ZXJVbmNyZWF0YWJsZVR5cGU8UVdl
YlBlcm1pc3Npb25SZXF1ZXN0Pih1cmksIDMsIDAsICJQZXJtaXNzaW9uUmVxdWVzdCIsIFFPYmpl
Y3Q6OnRyKCJDYW5ub3QgY3JlYXRlIHNlcGFyYXRlIGluc3RhbmNlIG9mIFBlcm1pc3Npb25SZXF1
ZXN0IikpOwogICAgICAgICBxbWxSZWdpc3RlclVuY3JlYXRhYmxlVHlwZTxRV2ViTmF2aWdhdGlv
blJlcXVlc3Q+KHVyaSwgMywgMCwgIk5hdmlnYXRpb25SZXF1ZXN0IiwgUU9iamVjdDo6dHIoIkNh
bm5vdCBjcmVhdGUgc2VwYXJhdGUgaW5zdGFuY2Ugb2YgTmF2aWdhdGlvblJlcXVlc3QiKSk7Cisg
ICAgICAgIHFtbFJlZ2lzdGVyVW5jcmVhdGFibGVUeXBlPFF0V2ViU2VjdXJpdHlPcmlnaW4+KHVy
aSwgMywgMCwgIlNlY3VyaXR5T3JpZ2luIiwgUU9iamVjdDo6dHIoIkNhbm5vdCBjcmVhdGUgc2Vw
YXJhdGUgaW5zdGFuY2Ugb2YgU2VjdXJpdHlPcmlnaW4iKSk7CisKICNlbmRpZgogICAgIH0KIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKaW5kZXggY2I4OGViZi4uYzk2YjhlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3
IEBACisyMDEyLTAxLTI4ICBBZGVuaWxzb24gQ2F2YWxjYW50aSAgPGNhdmFsY2FudGlpQGdtYWls
LmNvbT4KKworICAgICAgICBbUXRdW1dLMl0gU3BsaXQgUVdlYlBlcm1pc3Npb25SZXF1ZXN0IGlu
dG8gUVdlYlNlY3VyaXR5T3JpZ2luCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD03MzIxNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEludHJvZHVjaW5nIGEgbmV3IGNsYXNzIHRvIGV4cG9zZSBzZWN1cml0eSBv
cmlnaW4gaW5mb3JtYXRpb24gKHBvcnQvc2NoZW1lL2V0YyksIHVzZWZ1bCBmb3IgaW5zcGVjdGlu
ZyB0aGUgb3JpZ2luIG9mIHBlcm1pc3Npb24gcmVxdWVzdHMuCisKKyAgICAgICAgVGhpcyBjbGFz
cyB1c2VzIG1ldGhvZHMgZnJvbSBTY2hlbWVSZWdpc3RyeSwgdGh1cyBhbGxvd2luZyB0byBhZGQv
cmVtb3ZlL2xpc3QgbG9jYWwgc2NoZW1lcyB0b28uCisKKyAgICAgICAgKiBUYXJnZXQucHJpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXR3ZWJzZWN1cml0eW9yaWdpbi5jcHA6IEFkZGVk
LgorICAgICAgICAoUXRXZWJTZWN1cml0eU9yaWdpbjo6UXRXZWJTZWN1cml0eU9yaWdpbik6Cisg
ICAgICAgIChRdFdlYlNlY3VyaXR5T3JpZ2luOjp+UXRXZWJTZWN1cml0eU9yaWdpbik6CisgICAg
ICAgIChRdFdlYlNlY3VyaXR5T3JpZ2luOjpob3N0KToKKyAgICAgICAgKFF0V2ViU2VjdXJpdHlP
cmlnaW46OnNjaGVtZSk6CisgICAgICAgIChRdFdlYlNlY3VyaXR5T3JpZ2luOjpwYXRoKToKKyAg
ICAgICAgKFF0V2ViU2VjdXJpdHlPcmlnaW46OnBvcnQpOgorICAgICAgICAoUXRXZWJTZWN1cml0
eU9yaWdpbjo6dXJsKToKKyAgICAgICAgKFF0V2ViU2VjdXJpdHlPcmlnaW46OmFkZExvY2FsU2No
ZW1lKToKKyAgICAgICAgKFF0V2ViU2VjdXJpdHlPcmlnaW46OnJlbW92ZUxvY2FsU2NoZW1lKToK
KyAgICAgICAgKFF0V2ViU2VjdXJpdHlPcmlnaW46OmxvY2FsU2NoZW1lcyk6CisgICAgICAgIChv
cGVyYXRvcjw8KToKKyAgICAgICAgKG9wZXJhdG9yPj4pOgorICAgICAgICAoUXRXZWJTZWN1cml0
eU9yaWdpbjo6c2V0VXJsKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3F0d2Vic2VjdXJp
dHlvcmlnaW5fcC5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3Ft
bHRlc3RzL1dlYlZpZXcvdHN0X29yaWdpbi5xbWw6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvcXQvcXdlYnBlcm1pc3Npb25yZXF1ZXN0LmNwcDoKKyAgICAgICAgKFFXZWJQZXJtaXNz
aW9uUmVxdWVzdFByaXZhdGU6OlFXZWJQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUpOgorICAgICAg
ICAoUVdlYlBlcm1pc3Npb25SZXF1ZXN0OjpzZWN1cml0eU9yaWdpbik6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9xdC9xd2VicGVybWlzc2lvbnJlcXVlc3RfcC5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvcW1sdGVzdHMucHJvOgorCiAyMDEyLTAxLTI3ICBG
YWR5IFNhbXVlbCAgPGZzYW11ZWxAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJlbmFtZSBzaG91
bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1lIGFuZCBtYWtlIGl0IGEgc2V0dGlu
ZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJLaXQy
L1RhcmdldC5wcmkKaW5kZXggN2JkNGE3Mi4uNDhkZWUwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpCkBAIC0xNzMs
NiArMTczLDcgQEAgSEVBREVSUyArPSBcCiAgICAgVUlQcm9jZXNzL0FQSS9xdC9xd2ViZG93bmxv
YWRpdGVtX3AuaCBcCiAgICAgVUlQcm9jZXNzL0FQSS9xdC9xd2ViZG93bmxvYWRpdGVtX3BfcC5o
IFwKICAgICBVSVByb2Nlc3MvQVBJL3F0L3F3ZWJwZXJtaXNzaW9ucmVxdWVzdF9wLmggXAorICAg
IFVJUHJvY2Vzcy9BUEkvcXQvcXR3ZWJzZWN1cml0eW9yaWdpbl9wLmggXAogICAgIFVJUHJvY2Vz
cy9BUEkvcXQvcXdlYm5hdmlnYXRpb25yZXF1ZXN0X3AuaCBcCiAgICAgVUlQcm9jZXNzL0FQSS9x
dC9xcXVpY2t3ZWJwYWdlX3AuaCBcCiAgICAgVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJwYWdl
X3BfcC5oIFwKQEAgLTUwMiw2ICs1MDMsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBVSVByb2Nlc3Mv
QVBJL2NwcC9xdC9XS1VSTFF0LmNwcCBcCiAgICAgVUlQcm9jZXNzL0FQSS9xdC9xd2ViZG93bmxv
YWRpdGVtLmNwcCBcCiAgICAgVUlQcm9jZXNzL0FQSS9xdC9xd2VicGVybWlzc2lvbnJlcXVlc3Qu
Y3BwIFwKKyAgICBVSVByb2Nlc3MvQVBJL3F0L3F0d2Vic2VjdXJpdHlvcmlnaW4uY3BwIFwKICAg
ICBVSVByb2Nlc3MvQVBJL3F0L3F3ZWJuYXZpZ2F0aW9ucmVxdWVzdC5jcHAgXAogICAgIFVJUHJv
Y2Vzcy9BUEkvcXQvcXF1aWNrd2VicGFnZS5jcHAgXAogICAgIFVJUHJvY2Vzcy9BUEkvcXQvcXdl
Ym5hdmlnYXRpb25oaXN0b3J5LmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL3F0L3F0d2Vic2VjdXJpdHlvcmlnaW4uY3BwIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9xdC9xdHdlYnNlY3VyaXR5b3JpZ2luLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi4wNDVkODAxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9xdC9xdHdlYnNlY3VyaXR5b3JpZ2luLmNwcApAQCAtMCwwICsxLDEx
MCBAQAorLyoKKyAgICBDb3B5cmlnaHQgKEMpIDIwMTIgTm9raWEgQ29ycG9yYXRpb24gYW5kL29y
IGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICAgbW9kaWZ5IGl0IHVuZGVyIHRo
ZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNlIGFz
IHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2
ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl
cnNpb24uCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh
dCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv
dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgIE1FUkNIQU5UQUJJTElUWSBvciBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICAgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hv
dWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlCisgICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZ
SU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICAgIEJvc3Rvbiwg
TUEgMDIxMTAtMTMwMSwgVVNBLgorKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
InF0d2Vic2VjdXJpdHlvcmlnaW5fcC5oIgorCisjaW5jbHVkZSA8UXRDb3JlL1FGaWxlSW5mbz4K
KyNpbmNsdWRlIDxRdENvcmUvUVN0cmluZ0xpc3Q+CisjaW5jbHVkZSA8U2NoZW1lUmVnaXN0cnku
aD4KKyNpbmNsdWRlIDxTZWN1cml0eU9yaWdpbi5oPgorI2luY2x1ZGUgPFdlYktpdDIvV0tCYXNl
Lmg+CisjaW5jbHVkZSA8V2ViS2l0Mi9XS1JldGFpblB0ci5oPgorI2luY2x1ZGUgPFdlYktpdDIv
V0tTZWN1cml0eU9yaWdpbi5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworUXRXZWJT
ZWN1cml0eU9yaWdpbjo6UXRXZWJTZWN1cml0eU9yaWdpbihRT2JqZWN0KiBwYXJlbnQpCisgICAg
OiBRT2JqZWN0KHBhcmVudCkKK3sKK30KKworUXRXZWJTZWN1cml0eU9yaWdpbjo6flF0V2ViU2Vj
dXJpdHlPcmlnaW4oKQoreworfQorCitRU3RyaW5nIFF0V2ViU2VjdXJpdHlPcmlnaW46Omhvc3Qo
KSBjb25zdAoreworICAgIHJldHVybiBtX3VybC5ob3N0KCk7Cit9CisKK1FTdHJpbmcgUXRXZWJT
ZWN1cml0eU9yaWdpbjo6c2NoZW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV91cmwuc2NoZW1l
KCk7Cit9CisKK1FTdHJpbmcgUXRXZWJTZWN1cml0eU9yaWdpbjo6cGF0aCgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIG1fdXJsLnBhdGgoKTsKK30KKworaW50IFF0V2ViU2VjdXJpdHlPcmlnaW46OnBv
cnQoKSBjb25zdAoreworICAgIHJldHVybiBtX3VybC5wb3J0KCk7Cit9CisKK1FVcmwgUXRXZWJT
ZWN1cml0eU9yaWdpbjo6dXJsKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV91cmw7Cit9CisKK3Zv
aWQgUXRXZWJTZWN1cml0eU9yaWdpbjo6YWRkTG9jYWxTY2hlbWUoY29uc3QgUVN0cmluZyYgc2No
ZW1lKQoreworICAgIFNjaGVtZVJlZ2lzdHJ5OjpyZWdpc3RlclVSTFNjaGVtZUFzTG9jYWwoc2No
ZW1lKTsKK30KKwordm9pZCBRdFdlYlNlY3VyaXR5T3JpZ2luOjpyZW1vdmVMb2NhbFNjaGVtZShj
b25zdCBRU3RyaW5nJiBzY2hlbWUpCit7CisgICAgU2NoZW1lUmVnaXN0cnk6OnJlbW92ZVVSTFNj
aGVtZVJlZ2lzdGVyZWRBc0xvY2FsKHNjaGVtZSk7Cit9CisKK1FTdHJpbmdMaXN0IFF0V2ViU2Vj
dXJpdHlPcmlnaW46OmxvY2FsU2NoZW1lcygpCit7CisgICAgUVN0cmluZ0xpc3Qgc2NoZW1lczsK
KyAgICBjb25zdCBVUkxTY2hlbWVzTWFwJiBtYXAgPSBTY2hlbWVSZWdpc3RyeTo6bG9jYWxTY2hl
bWVzKCk7CisgICAgVVJMU2NoZW1lc01hcDo6Y29uc3RfaXRlcmF0b3IgZW5kID0gbWFwLmVuZCgp
OworICAgIGZvciAoVVJMU2NoZW1lc01hcDo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtYXAuYmVnaW4o
KTsgaXQgIT0gZW5kOyArK2l0KSB7CisgICAgICAgIGNvbnN0IFFTdHJpbmcgc2NoZW1lID0gKml0
OworICAgICAgICBzY2hlbWVzLmFwcGVuZChzY2hlbWUpOworICAgIH0KKworICAgIHJldHVybiBz
Y2hlbWVzOworfQorCitRRGF0YVN0cmVhbSYgb3BlcmF0b3I8PChRRGF0YVN0cmVhbSYgb3V0LCBj
b25zdCBRdFdlYlNlY3VyaXR5T3JpZ2luICZvcmlnaW4pCit7CisgICAgb3V0LnNldFZlcnNpb24o
UURhdGFTdHJlYW06OlF0XzRfMCk7CisgICAgb3V0IDw8IChvcmlnaW4udXJsKCkudG9FbmNvZGVk
KCkuZGF0YSgpKTsKKyAgICByZXR1cm4gb3V0OworfQorCitRRGF0YVN0cmVhbSYgb3BlcmF0b3I+
PihRRGF0YVN0cmVhbSYgaW4sIFF0V2ViU2VjdXJpdHlPcmlnaW4mIG9yaWdpbikKK3sKKyAgICBj
aGFyKiB1cmwgPSBvcmlnaW4udXJsKCkudG9FbmNvZGVkKCkuZGF0YSgpOworICAgIGluLnNldFZl
cnNpb24oUURhdGFTdHJlYW06OlF0XzRfMCk7CisgICAgaW4gPj4gdXJsOworICAgIHJldHVybiBp
bjsKK30KKworLy8gVXNlZCB0byBzZXQgc2VjdXJpdHkgaW5mb3JtYXRpb24gaW4gYSBwZXJtaXNz
aW9uIHJlcXVlc3QgZXZlbnQgKGUuZy4KKy8vIGdlb2xvY2F0aW9uIHBlcm1pc3Npb24pCit2b2lk
IFF0V2ViU2VjdXJpdHlPcmlnaW46OnNldFVybChjb25zdCBRVXJsJiB1cmwpCit7CisgICAgbV91
cmwgPSB1cmw7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0
L3F0d2Vic2VjdXJpdHlvcmlnaW5fcC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9x
dC9xdHdlYnNlY3VyaXR5b3JpZ2luX3AuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi5lY2M3MjNkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9xdC9xdHdlYnNlY3VyaXR5b3JpZ2luX3AuaApAQCAtMCwwICsxLDYwIEBACisvKgorICAg
IENvcHlyaWdodCAoQykgMjAxMiBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlh
cnkoLWllcykKKworICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl
ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAgIHZlcnNpb24gMiBvZiB0
aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAg
IFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUg
dXNlZnVsLAorICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp
bXBsaWVkIHdhcnJhbnR5IG9mCisgICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgICBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgIFlvdSBzaG91bGQgaGF2ZSByZWNl
aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAg
ICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYg
bm90LCB3cml0ZSB0bworICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUx
IEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgICAgQm9zdG9uLCBNQSAwMjExMC0xMzAx
LCBVU0EuCisqLworI2lmbmRlZiBxdHdlYnNlY3VyaXR5b3JpZ2luX3BfaAorI2RlZmluZSBxdHdl
YnNlY3VyaXR5b3JpZ2luX3BfaAorCisjaW5jbHVkZSAicXdlYmtpdGdsb2JhbC5oIgorCisjaW5j
bHVkZSA8UXRDb3JlL1FEYXRhU3RyZWFtPgorI2luY2x1ZGUgPFF0Q29yZS9RT2JqZWN0PgorI2lu
Y2x1ZGUgPFF0Q29yZS9RU3RyaW5nPgorI2luY2x1ZGUgPFF0Q29yZS9RVXJsPgorI2luY2x1ZGUg
PFF0Q29yZS9xc2hhcmVkZGF0YS5oPgorCitjbGFzcyBRV0VCS0lUX0VYUE9SVCBRdFdlYlNlY3Vy
aXR5T3JpZ2luIDogcHVibGljIFFPYmplY3QgeworICAgIFFfT0JKRUNUCisgICAgUV9QUk9QRVJU
WShRU3RyaW5nIHNjaGVtZSBSRUFEIHNjaGVtZSBDT05TVEFOVCkKKyAgICBRX1BST1BFUlRZKFFT
dHJpbmcgaG9zdCBSRUFEIGhvc3QgQ09OU1RBTlQpCisgICAgUV9QUk9QRVJUWShpbnQgcG9ydCBS
RUFEIHBvcnQgQ09OU1RBTlQpCisgICAgUV9QUk9QRVJUWShRU3RyaW5nIHBhdGggUkVBRCBwYXRo
IENPTlNUQU5UKQorICAgIFFfUFJPUEVSVFkoUVVybCB1cmwgUkVBRCB1cmwgQ09OU1RBTlQpCisK
K3B1YmxpYzoKKyAgICBRdFdlYlNlY3VyaXR5T3JpZ2luKFFPYmplY3QqIHBhcmVudCA9IDApOwor
ICAgIHZpcnR1YWwgflF0V2ViU2VjdXJpdHlPcmlnaW4oKTsKKworICAgIFFTdHJpbmcgc2NoZW1l
KCkgY29uc3Q7CisgICAgUVN0cmluZyBob3N0KCkgY29uc3Q7CisgICAgaW50IHBvcnQoKSBjb25z
dDsKKyAgICBRU3RyaW5nIHBhdGgoKSBjb25zdDsKKyAgICBRVXJsIHVybCgpIGNvbnN0OworICAg
IHZvaWQgc2V0VXJsKGNvbnN0IFFVcmwmKTsKKworICAgIHN0YXRpYyB2b2lkIGFkZExvY2FsU2No
ZW1lKGNvbnN0IFFTdHJpbmcmIHNjaGVtZSk7CisgICAgc3RhdGljIHZvaWQgcmVtb3ZlTG9jYWxT
Y2hlbWUoY29uc3QgUVN0cmluZyYgc2NoZW1lKTsKKyAgICBzdGF0aWMgUVN0cmluZ0xpc3QgbG9j
YWxTY2hlbWVzKCk7CisKK3ByaXZhdGU6CisgICAgUVVybCBtX3VybDsKK307CisKK1FEYXRhU3Ry
ZWFtJiBvcGVyYXRvcjw8KFFEYXRhU3RyZWFtJiwgY29uc3QgUXRXZWJTZWN1cml0eU9yaWdpbiYp
OworUURhdGFTdHJlYW0mIG9wZXJhdG9yPj4oUURhdGFTdHJlYW0mLCBRdFdlYlNlY3VyaXR5T3Jp
Z2luJik7CisKKyNlbmRpZiAvLyBxdHdlYnNlY3VyaXR5b3JpZ2luX3BfaApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2VicGVybWlzc2lvbnJlcXVlc3QuY3Bw
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2VicGVybWlzc2lvbnJlcXVlc3Qu
Y3BwCmluZGV4IDE2YTQzODUuLmEyOGM5NWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvcXQvcXdlYnBlcm1pc3Npb25yZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwZXJtaXNzaW9ucmVxdWVzdC5jcHAKQEAgLTM0LDcg
KzM0LDE3IEBAIHB1YmxpYzoKICAgICAgICAgLCByZXF1ZXN0KHBlcm1pc3Npb25SZXF1ZXN0KQog
ICAgICAgICAsIGFsbG93KGZhbHNlKQogICAgIHsKKyAgICAgICAgUVVybCBkYXRhOworICAgICAg
ICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gdXJsID0gYWRvcHRXSyhXS1NlY3VyaXR5T3JpZ2lu
Q29weVByb3RvY29sKG9yaWdpbi5nZXQoKSkpOworICAgICAgICBkYXRhLnNldFNjaGVtZShXS1N0
cmluZ0NvcHlRU3RyaW5nKHVybC5nZXQoKSkpOworCisgICAgICAgIFdLUmV0YWluUHRyPFdLU3Ry
aW5nUmVmPiBob3N0ID0gYWRvcHRXSyhXS1NlY3VyaXR5T3JpZ2luQ29weUhvc3Qob3JpZ2luLmdl
dCgpKSk7CisgICAgICAgIGRhdGEuc2V0SG9zdChXS1N0cmluZ0NvcHlRU3RyaW5nKGhvc3QuZ2V0
KCkpKTsKKworICAgICAgICBkYXRhLnNldFBvcnQoc3RhdGljX2Nhc3Q8aW50PihXS1NlY3VyaXR5
T3JpZ2luR2V0UG9ydChvcmlnaW4uZ2V0KCkpKSk7CisgICAgICAgIHNlY3VyaXR5SW5mby5zZXRV
cmwoZGF0YSk7CiAgICAgfQorCiAgICAgflFXZWJQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUoKQog
ICAgIHsKICAgICB9CkBAIC00Miw2ICs1Miw3IEBAIHB1YmxpYzoKICAgICBXS1JldGFpblB0cjxX
S1NlY3VyaXR5T3JpZ2luUmVmPiBvcmlnaW47CiAgICAgUVdlYlBlcm1pc3Npb25SZXF1ZXN0OjpS
ZXF1ZXN0VHlwZSB0eXBlOwogICAgIFdLUmV0YWluUHRyPFdLR2VvbG9jYXRpb25QZXJtaXNzaW9u
UmVxdWVzdFJlZj4gcmVxdWVzdDsKKyAgICBRdFdlYlNlY3VyaXR5T3JpZ2luIHNlY3VyaXR5SW5m
bzsKICAgICBib29sIGFsbG93OwogfTsKIApAQCAtODgsMTkgKzk5LDggQEAgYm9vbCBRV2ViUGVy
bWlzc2lvblJlcXVlc3Q6OmFsbG93KCkgY29uc3QKICAgICByZXR1cm4gZC0+YWxsb3c7CiB9CiAK
LVFTdHJpbmcgUVdlYlBlcm1pc3Npb25SZXF1ZXN0OjpzY2hlbWUoKSBjb25zdAotewotICAgIFdL
UmV0YWluUHRyPFdLU3RyaW5nUmVmPiB1cmwgPSBhZG9wdFdLKFdLU2VjdXJpdHlPcmlnaW5Db3B5
UHJvdG9jb2woZC0+b3JpZ2luLmdldCgpKSk7Ci0gICAgcmV0dXJuIFdLU3RyaW5nQ29weVFTdHJp
bmcodXJsLmdldCgpKTsKLX0KLQotUVN0cmluZyBRV2ViUGVybWlzc2lvblJlcXVlc3Q6Omhvc3Qo
KSBjb25zdAorUXRXZWJTZWN1cml0eU9yaWdpbiogUVdlYlBlcm1pc3Npb25SZXF1ZXN0OjpzZWN1
cml0eU9yaWdpbigpCiB7Ci0gICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IG9yaWdpbiA9IGFk
b3B0V0soV0tTZWN1cml0eU9yaWdpbkNvcHlIb3N0KGQtPm9yaWdpbi5nZXQoKSkpOwotICAgIHJl
dHVybiBXS1N0cmluZ0NvcHlRU3RyaW5nKG9yaWdpbi5nZXQoKSk7CisgICAgcmV0dXJuICYoZC0+
c2VjdXJpdHlJbmZvKTsKIH0KIAotaW50IFFXZWJQZXJtaXNzaW9uUmVxdWVzdDo6cG9ydCgpIGNv
bnN0Ci17Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PGludD4oV0tTZWN1cml0eU9yaWdpbkdldFBv
cnQoZC0+b3JpZ2luLmdldCgpKSk7Ci19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL3F0L3F3ZWJwZXJtaXNzaW9ucmVxdWVzdF9wLmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL3F0L3F3ZWJwZXJtaXNzaW9ucmVxdWVzdF9wLmgKaW5kZXggNTgyNGM0Yy4u
NDcwOGI3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2Vi
cGVybWlzc2lvbnJlcXVlc3RfcC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
cXQvcXdlYnBlcm1pc3Npb25yZXF1ZXN0X3AuaApAQCAtMjAsNiArMjAsNyBAQAogI2lmbmRlZiBx
d2VicGVybWlzc2lvbnJlcXVlc3RfcF9oCiAjZGVmaW5lIHF3ZWJwZXJtaXNzaW9ucmVxdWVzdF9w
X2gKIAorI2luY2x1ZGUgInF0d2Vic2VjdXJpdHlvcmlnaW5fcC5oIgogI2luY2x1ZGUgInF3ZWJr
aXRnbG9iYWwuaCIKIAogI2luY2x1ZGUgPFF0Q29yZS9RT2JqZWN0PgpAQCAtMzIsMTAgKzMzLDgg
QEAgY2xhc3MgUVdlYlBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZTsKIGNsYXNzIFFXRUJLSVRfRVhQ
T1JUIFFXZWJQZXJtaXNzaW9uUmVxdWVzdCA6IHB1YmxpYyBRT2JqZWN0IHsKICAgICBRX09CSkVD
VAogICAgIFFfUFJPUEVSVFkoYm9vbCBhbGxvdyBSRUFEIGFsbG93IFdSSVRFIHNldEFsbG93KQot
ICAgIFFfUFJPUEVSVFkoUmVxdWVzdFR5cGUgdHlwZSBSRUFEIHR5cGUpCi0gICAgUV9QUk9QRVJU
WShRU3RyaW5nIHNjaGVtZSBSRUFEIHNjaGVtZSkKLSAgICBRX1BST1BFUlRZKFFTdHJpbmcgaG9z
dCBSRUFEIGhvc3QpCi0gICAgUV9QUk9QRVJUWShpbnQgcG9ydCBSRUFEIHBvcnQpCisgICAgUV9Q
Uk9QRVJUWShSZXF1ZXN0VHlwZSB0eXBlIFJFQUQgdHlwZSBDT05TVEFOVCkKKyAgICBRX1BST1BF
UlRZKFF0V2ViU2VjdXJpdHlPcmlnaW4qIG9yaWdpbiBSRUFEIHNlY3VyaXR5T3JpZ2luKQogICAg
IFFfRU5VTVMoUmVxdWVzdFR5cGUpCiAKIHB1YmxpYzoKQEAgLTQ4LDEyICs0NywxMCBAQCBwdWJs
aWM6CiAKICAgICBSZXF1ZXN0VHlwZSB0eXBlKCkgY29uc3Q7CiAgICAgYm9vbCBhbGxvdygpIGNv
bnN0OwotICAgIFFTdHJpbmcgc2NoZW1lKCkgY29uc3Q7Ci0gICAgUVN0cmluZyBob3N0KCkgY29u
c3Q7Ci0gICAgaW50IHBvcnQoKSBjb25zdDsKIAogcHVibGljIFFfU0xPVFM6CiAgICAgdm9pZCBz
ZXRBbGxvdyhib29sKTsKKyAgICBRdFdlYlNlY3VyaXR5T3JpZ2luKiBzZWN1cml0eU9yaWdpbigp
OwogCiBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBRV2ViUGVybWlzc2lvblJlcXVlc3RQcml2
YXRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9x
bWx0ZXN0cy9XZWJWaWV3L3RzdF9vcmlnaW4ucW1sIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3L3RzdF9vcmlnaW4ucW1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU3ZDY0MjEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL1dlYlZpZXcvdHN0X29y
aWdpbi5xbWwKQEAgLTAsMCArMSw1NyBAQAoraW1wb3J0IFF0UXVpY2sgMi4wCitpbXBvcnQgUXRU
ZXN0IDEuMAoraW1wb3J0IFF0V2ViS2l0IDMuMAoraW1wb3J0IFF0V2ViS2l0LmV4cGVyaW1lbnRh
bCAzLjAKKworV2ViVmlldyB7CisgICAgaWQ6IHdlYlZpZXcKKyAgICB3aWR0aDogMjAwCisgICAg
aGVpZ2h0OiAyMDAKKworICAgIHByb3BlcnR5IGJvb2wgc3VjY2VzczogdHJ1ZQorICAgIHByb3Bl
cnR5IGludCBwb3J0OiAwCisgICAgcHJvcGVydHkgc3RyaW5nIHNjaGVtZTogImZpbGUiCisKKyAg
ICBTaWduYWxTcHkgeworICAgICAgICBpZDogc3B5CisgICAgICAgIHRhcmdldDogZXhwZXJpbWVu
dGFsCisgICAgICAgIHNpZ25hbE5hbWU6ICJwZXJtaXNzaW9uUmVxdWVzdGVkIgorICAgIH0KKwor
ICAgIGV4cGVyaW1lbnRhbC5vblBlcm1pc3Npb25SZXF1ZXN0ZWQ6IHsKKyAgICAgICAgaWYgKHBl
cm1pc3Npb24ub3JpZ2luLnBvcnQgIT0gd2ViVmlldy5wb3J0KSB7CisgICAgICAgICAgICBjb25z
b2xlLmxvZygiRXhwZWN0ZWQgcG9ydCB2YWx1ZSBzaG91bGQgYmUgemVyby4iKQorICAgICAgICAg
ICAgd2ViVmlldy5zdWNjZXNzID0gZmFsc2UKKyAgICAgICAgfQorCisgICAgICAgIGlmIChwZXJt
aXNzaW9uLm9yaWdpbi5zY2hlbWUgIT0gd2ViVmlldy5zY2hlbWUpIHsKKyAgICAgICAgICAgIGNv
bnNvbGUubG9nKCJFeHBlY3RlZCBzY2hlbWUgc2hvdWxkIGJlIFwiZmlsZVwiLiIpCisgICAgICAg
ICAgICB3ZWJWaWV3LnN1Y2Nlc3MgPSBmYWxzZQorICAgICAgICB9CisgICAgfQorCisgICAgVGVz
dENhc2UgeworICAgICAgICBuYW1lOiAiV2ViVmlld1NlY3VyaXR5T3JpZ2luIgorCisgICAgICAg
IC8vIERlbGF5ZWQgd2luZG93U2hvd24gdG8gd29ya2Fyb3VuZCBwcm9ibGVtcyB3aXRoIFF0NSBp
biBkZWJ1ZyBtb2RlLgorICAgICAgICB3aGVuOiBmYWxzZQorICAgICAgICBUaW1lciB7CisgICAg
ICAgICAgICBydW5uaW5nOiBwYXJlbnQud2luZG93U2hvd24KKyAgICAgICAgICAgIHJlcGVhdDog
ZmFsc2UKKyAgICAgICAgICAgIGludGVydmFsOiAxCisgICAgICAgICAgICBvblRyaWdnZXJlZDog
cGFyZW50LndoZW4gPSB0cnVlCisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBpbml0KCkg
eworICAgICAgICAgICAgc3B5LmNsZWFyKCkKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9u
IHRlc3RfcGVybWlzc2lvblJlcXVlc3QoKSB7CisgICAgICAgICAgICBjb21wYXJlKHNweS5jb3Vu
dCwgMCkKKyAgICAgICAgICAgIHdlYlZpZXcubG9hZChRdC5yZXNvbHZlZFVybCgiLi4vY29tbW9u
L2dlb2xvY2F0aW9uLmh0bWwiKSkKKyAgICAgICAgICAgIHNweS53YWl0KCkKKyAgICAgICAgICAg
IGNvbXBhcmUoc3B5LmNvdW50LCAxKQorICAgICAgICAgICAgY29tcGFyZSh3ZWJWaWV3LnN1Y2Nl
c3MsIHRydWUpCisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL3FtbHRlc3RzLnBybyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvcW1sdGVzdHMucHJvCmluZGV4
IGM4Y2U4N2EuLjUwODE5YzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvcXQvdGVzdHMvcW1sdGVzdHMvcW1sdGVzdHMucHJvCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvcW1sdGVzdHMucHJvCkBAIC0yOSw0ICsyOSw1
IEBAIE9USEVSX0ZJTEVTICs9IFwKICAgICBXZWJWaWV3L3RzdF9wcmVmZXJlbmNlcy5xbWwgXAog
ICAgIFdlYlZpZXcvdHN0X3Byb3BlcnRpZXMucW1sIFwKICAgICBXZWJWaWV3L3RzdF90aXRsZUNo
YW5nZWQucW1sIFwKLSAgICBXZWJWaWV3L3RzdF9hcHBsaWNhdGlvblNjaGVtZS5xbWwKKyAgICBX
ZWJWaWV3L3RzdF9hcHBsaWNhdGlvblNjaGVtZS5xbWwgXAorICAgIFdlYlZpZXcvdHN0X29yaWdp
bi5xbWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9xdHdlYmtpdC1leHBvcnQubWFwIGIvU291cmNlL3F0
d2Via2l0LWV4cG9ydC5tYXAKaW5kZXggYmEyZTJmYi4uYmYxMzc3NyAxMDA2NDQKLS0tIGEvU291
cmNlL3F0d2Via2l0LWV4cG9ydC5tYXAKKysrIGIvU291cmNlL3F0d2Via2l0LWV4cG9ydC5tYXAK
QEAgLTE1Niw3ICsxNTYsOSBAQCBxd2tfMS4wIHsKICAgICAgICAgUVF1aWNrTmV0d29ya1JlcXVl
c3Q6Oio7CiAgICAgICAgICpRUXVpY2tOZXR3b3JrUmVwbHk7CiAgICAgICAgIFFRdWlja05ldHdv
cmtSZXBseTo6KjsKLQorICAgICAgICAqUXRXZWJTZWN1cml0eU9yaWdpbjsKKyAgICAgICAgbm9u
LXZpcnR1YWw/dGh1bms/dG8/UXRXZWJTZWN1cml0eU9yaWdpbio7CisgICAgICAgIFF0V2ViU2Vj
dXJpdHlPcmlnaW46Oio7CiAKICAgICAgICAgIyBXZWJLaXQgMiBDIEFQSSBtYW5nbGVkIGluIEMr
KwogICAgICAgICBXS1N0cmluZ0NvcHlRU3RyaW5nKjsKLS0gCjEuNy41LjQKCg==
</data>
<flag name="review"
          id="125700"
          type_id="1"
          status="-"
          setter="kenneth"
    />
    <flag name="commit-queue"
          id="125701"
          type_id="3"
          status="-"
          setter="kenneth"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>124941</attachid>
            <date>2012-02-01 06:21:30 -0800</date>
            <delta_ts>2012-02-01 06:34:30 -0800</delta_ts>
            <desc>Adding setters for security info (instead of a setUrl()), removed the stream operators.</desc>
            <filename>origin_step15.patch</filename>
            <type>text/plain</type>
            <size>17813</size>
            <attacher name="Adenilson Cavalcanti Silva">savagobr</attacher>
            
              <data encoding="base64">RnJvbSBkZjVmNjM5MWIzMDc1OTFkNjhmM2Y4Yjc0NzNkNTM5ZDZkNTY3MDM0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBZGVuaWxzb24gQ2F2YWxjYW50aSA8Y2F2YWxjYW50aWlAZ21h
aWwuY29tPgpEYXRlOiBTdW4sIDIyIEphbiAyMDEyIDAwOjA2OjUyIC0wNDAwClN1YmplY3Q6IFtQ
QVRDSF0gUHJldmlvdXMgZml4ZWQgKHBsdXMgQ2hhbmdlTG9nKSwgcmVtb3ZlZCB1bm5lY2Vzc2Fy
eSBoZWFkZXIKIGZpbGUsIGVsc2UgY2xhdXNlLCByZW1vdmVkIHJlZHVuZGFudCBjaGVja3MsIGNo
YW5nZWQgdGhlCiB0ZXN0LCB0aGUgbmFtZSBvZiBzZWN1cml0eSBvcmlnaW4gcHJvcGVydHksIHJl
bW92ZWQKIDo6Y2FuQWNjZXNzKCkvdXJsKCkgbWV0aG9kcyBhbmQgc3RyZWFtIG9wZXJhdG9ycywg
dXBkYXRlZAogY2hhbmdlbG9nLgoKU2lnbmVkLW9mZi1ieTogQWRlbmlsc29uIENhdmFsY2FudGkg
PGNhdmFsY2FudGlpQGdtYWlsLmNvbT4KLS0tCiBDaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTYgKysrKwogU291cmNlL1dlYktpdC9xdC9DaGFu
Z2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE0ICsrKysKIFNvdXJjZS9XZWJLaXQv
cXQvZGVjbGFyYXRpdmUvcGx1Z2luLmNwcCAgICAgICAgICAgIHwgICAgMyArCiBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMzcgKysrKysrKysr
CiBTb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAg
IDIgKwogLi4uL1VJUHJvY2Vzcy9BUEkvcXQvcXR3ZWJzZWN1cml0eW9yaWdpbi5jcHAgICAgICAg
fCAgIDgzICsrKysrKysrKysrKysrKysrKysrCiAuLi4vVUlQcm9jZXNzL0FQSS9xdC9xdHdlYnNl
Y3VyaXR5b3JpZ2luX3AuaCAgICAgICB8ICAgNjEgKysrKysrKysrKysrKysKIC4uLi9VSVByb2Nl
c3MvQVBJL3F0L3F3ZWJwZXJtaXNzaW9ucmVxdWVzdC5jcHAgICAgIHwgICAyNCArKystLS0KIC4u
Li9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwZXJtaXNzaW9ucmVxdWVzdF9wLmggICAgIHwgICAxMSAr
LS0KIC4uLi9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvV2ViVmlldy90c3Rfb3JpZ2luLnFtbCAgIHwg
ICA1NyArKysrKysrKysrKysrCiAuLi4vVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9x
bWx0ZXN0cy5wcm8gICB8ICAgIDMgKy0KIFNvdXJjZS9xdHdlYmtpdC1leHBvcnQubWFwICAgICAg
ICAgICAgICAgICAgICAgICAgIHwgICAgNCArLQogMTIgZmlsZXMgY2hhbmdlZCwgMjkzIGluc2Vy
dGlvbnMoKyksIDIyIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXR3ZWJzZWN1cml0eW9yaWdpbi5jcHAKIGNyZWF0ZSBtb2Rl
IDEwMDY0NCBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F0d2Vic2VjdXJpdHlvcmln
aW5fcC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9x
dC90ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3L3RzdF9vcmlnaW4ucW1sCgpkaWZmIC0tZ2l0IGEvQ2hh
bmdlTG9nIGIvQ2hhbmdlTG9nCmluZGV4IGVmMzQ2NTkuLjQ2NzAwNzUgMTAwNjQ0Ci0tLSBhL0No
YW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxMi0wMi0wMSAgQWRl
bmlsc29uIENhdmFsY2FudGkgIDxjYXZhbGNhbnRpaUBnbWFpbC5jb20+CisKKyAgICAgICAgW1F0
XVtXSzJdIFNwbGl0IFFXZWJQZXJtaXNzaW9uUmVxdWVzdCBpbnRvIFFXZWJTZWN1cml0eU9yaWdp
bgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMyMTUK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbnRyb2R1
Y2luZyBhIG5ldyBjbGFzcyB0byBleHBvc2Ugc2VjdXJpdHkgb3JpZ2luIGluZm9ybWF0aW9uCisg
ICAgICAgIChwb3J0L3NjaGVtZS9ldGMpLCB1c2VmdWwgZm9yIGluc3BlY3RpbmcgdGhlIG9yaWdp
biBvZiBwZXJtaXNzaW9uCisgICAgICAgIHJlcXVlc3RzLgorCisgICAgICAgIFRoaXMgY2xhc3Mg
dXNlcyBtZXRob2RzIGZyb20gU2NoZW1lUmVnaXN0cnksIHRodXMgYWxsb3dpbmcgdG8KKyAgICAg
ICAgYWRkL3JlbW92ZS9saXN0IGxvY2FsIHNjaGVtZXMgdG9vLgorCisgICAgICAgICogU291cmNl
L3F0d2Via2l0LWV4cG9ydC5tYXA6CisKIDIwMTItMDEtMzEgIEtlbm5ldGggUm9oZGUgQ2hyaXN0
aWFuc2VuICA8a2VubmV0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFRhcCBoaWdobGlnaHRpbmc6
IFN1cHBvcnQgYmV0dGVyIG91dGxpbmVzIGZvciBtdWx0aWxpbmUgaW5saW5lcwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxv
ZwppbmRleCA2YWVmZDcwLi4xNWU3OTFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBA
CisyMDEyLTAyLTAxICBBZGVuaWxzb24gQ2F2YWxjYW50aSAgPGNhdmFsY2FudGlpQGdtYWlsLmNv
bT4KKworICAgICAgICBbUXRdW1dLMl0gU3BsaXQgUVdlYlBlcm1pc3Npb25SZXF1ZXN0IGludG8g
UVdlYlNlY3VyaXR5T3JpZ2luCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD03MzIxNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEFkZGluZyBhIGNsYXNzIHRvIGFjY2VzcyBzZWN1cml0eSBpbmZvcm1hdGlvbiBk
YXRhCisgICAgICAgIChlLmcuIHBvcnQvc2NoZW1lL2V0YyksCisgICAgICAgIHdoaWxlIGFsbG93
aW5nIGl0IHRvIGJlIGhhbmRsZWQgaW4gUU1MIHNpZGUuCisKKyAgICAgICAgKiBkZWNsYXJhdGl2
ZS9wbHVnaW4uY3BwOgorICAgICAgICAoV2ViS2l0UW1sUGx1Z2luOjpyZWdpc3RlclR5cGVzKToK
KwogMjAxMi0wMS0zMCAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAg
ICAgUmVkdWNlIG5vbi1DU1NPTSBBUEkgb2YgQ1NTU3R5bGVEZWNsYXJhdGlvbgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9xdC9kZWNsYXJhdGl2ZS9wbHVnaW4uY3BwIGIvU291cmNlL1dlYktp
dC9xdC9kZWNsYXJhdGl2ZS9wbHVnaW4uY3BwCmluZGV4IDY0NjM4ZTQuLmUyZjBmYjMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvZGVjbGFyYXRpdmUvcGx1Z2luLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L3F0L2RlY2xhcmF0aXZlL3BsdWdpbi5jcHAKQEAgLTI1LDYgKzI1LDcgQEAKICNp
ZiBkZWZpbmVkKEhBVkVfV0VCS0lUMikKICNpbmNsdWRlICJxcXVpY2t3ZWJwYWdlX3AuaCIKICNp
bmNsdWRlICJxcXVpY2t3ZWJ2aWV3X3AuaCIKKyNpbmNsdWRlICJxdHdlYnNlY3VyaXR5b3JpZ2lu
X3AuaCIKICNpbmNsdWRlICJxd2ViaWNvbmltYWdlcHJvdmlkZXJfcC5oIgogI2luY2x1ZGUgInF3
ZWJuYXZpZ2F0aW9ucmVxdWVzdF9wLmgiCiAjaW5jbHVkZSAicXdlYnBlcm1pc3Npb25yZXF1ZXN0
X3AuaCIKQEAgLTY1LDYgKzY2LDggQEAgcHVibGljOgogICAgICAgICBxbWxSZWdpc3RlclVuY3Jl
YXRhYmxlVHlwZTxRTmV0d29ya1JlcGx5Pih1cmksIDMsIDAsICJOZXR3b3JrUmVwbHkiLCBRT2Jq
ZWN0Ojp0cigiQ2Fubm90IGNyZWF0ZSBzZXBhcmF0ZSBpbnN0YW5jZSBvZiBOZXR3b3JrUmVwbHki
KSk7CiAgICAgICAgIHFtbFJlZ2lzdGVyVW5jcmVhdGFibGVUeXBlPFFXZWJQZXJtaXNzaW9uUmVx
dWVzdD4odXJpLCAzLCAwLCAiUGVybWlzc2lvblJlcXVlc3QiLCBRT2JqZWN0Ojp0cigiQ2Fubm90
IGNyZWF0ZSBzZXBhcmF0ZSBpbnN0YW5jZSBvZiBQZXJtaXNzaW9uUmVxdWVzdCIpKTsKICAgICAg
ICAgcW1sUmVnaXN0ZXJVbmNyZWF0YWJsZVR5cGU8UVdlYk5hdmlnYXRpb25SZXF1ZXN0Pih1cmks
IDMsIDAsICJOYXZpZ2F0aW9uUmVxdWVzdCIsIFFPYmplY3Q6OnRyKCJDYW5ub3QgY3JlYXRlIHNl
cGFyYXRlIGluc3RhbmNlIG9mIE5hdmlnYXRpb25SZXF1ZXN0IikpOworICAgICAgICBxbWxSZWdp
c3RlclVuY3JlYXRhYmxlVHlwZTxRdFdlYlNlY3VyaXR5T3JpZ2luPih1cmksIDMsIDAsICJTZWN1
cml0eU9yaWdpbiIsIFFPYmplY3Q6OnRyKCJDYW5ub3QgY3JlYXRlIHNlcGFyYXRlIGluc3RhbmNl
IG9mIFNlY3VyaXR5T3JpZ2luIikpOworCiAjZW5kaWYKICAgICB9CiB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4
IDEwMGU1YzkuLjU5MjgyN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MCBAQAorMjAxMi0wMi0w
MSAgQWRlbmlsc29uIENhdmFsY2FudGkgIDxjYXZhbGNhbnRpaUBnbWFpbC5jb20+CisKKyAgICAg
ICAgW1F0XVtXSzJdIFNwbGl0IFFXZWJQZXJtaXNzaW9uUmVxdWVzdCBpbnRvIFFXZWJTZWN1cml0
eU9yaWdpbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NzMyMTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJ
bnRyb2R1Y2luZyBhIG5ldyBjbGFzcyB0byBleHBvc2Ugc2VjdXJpdHkgb3JpZ2luIGluZm9ybWF0
aW9uCisgICAgICAgIChwb3J0L3NjaGVtZS9ldGMpLCB1c2VmdWwgZm9yIGluc3BlY3RpbmcgdGhl
IG9yaWdpbiBvZiBwZXJtaXNzaW9uCisgICAgICAgIHJlcXVlc3RzLgorCisgICAgICAgIFRoaXMg
Y2xhc3MgdXNlcyBtZXRob2RzIGZyb20gU2NoZW1lUmVnaXN0cnksIHRodXMgYWxsb3dpbmcgdG8K
KyAgICAgICAgYWRkL3JlbW92ZS9saXN0IGxvY2FsIHNjaGVtZXMgdG9vLgorCisgICAgICAgICog
VGFyZ2V0LnByaToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3F0d2Vic2VjdXJpdHlvcmln
aW4uY3BwOiBBZGRlZC4KKyAgICAgICAgKFF0V2ViU2VjdXJpdHlPcmlnaW46OlF0V2ViU2VjdXJp
dHlPcmlnaW4pOgorICAgICAgICAoUXRXZWJTZWN1cml0eU9yaWdpbjo6flF0V2ViU2VjdXJpdHlP
cmlnaW4pOgorICAgICAgICAoUXRXZWJTZWN1cml0eU9yaWdpbjo6aG9zdCk6CisgICAgICAgIChR
dFdlYlNlY3VyaXR5T3JpZ2luOjpzY2hlbWUpOgorICAgICAgICAoUXRXZWJTZWN1cml0eU9yaWdp
bjo6cGF0aCk6CisgICAgICAgIChRdFdlYlNlY3VyaXR5T3JpZ2luOjpwb3J0KToKKyAgICAgICAg
KFF0V2ViU2VjdXJpdHlPcmlnaW46OnVybCk6CisgICAgICAgIChRdFdlYlNlY3VyaXR5T3JpZ2lu
OjphZGRMb2NhbFNjaGVtZSk6CisgICAgICAgIChRdFdlYlNlY3VyaXR5T3JpZ2luOjpyZW1vdmVM
b2NhbFNjaGVtZSk6CisgICAgICAgIChRdFdlYlNlY3VyaXR5T3JpZ2luOjpsb2NhbFNjaGVtZXMp
OgorICAgICAgICAob3BlcmF0b3I8PCk6CisgICAgICAgIChvcGVyYXRvcj4+KToKKyAgICAgICAg
KFF0V2ViU2VjdXJpdHlPcmlnaW46OnNldFVybCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9x
dC9xdHdlYnNlY3VyaXR5b3JpZ2luX3AuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9xdC90ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3L3RzdF9vcmlnaW4ucW1sOiBBZGRlZC4KKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL3F0L3F3ZWJwZXJtaXNzaW9ucmVxdWVzdC5jcHA6CisgICAgICAg
IChRV2ViUGVybWlzc2lvblJlcXVlc3RQcml2YXRlOjpRV2ViUGVybWlzc2lvblJlcXVlc3RQcml2
YXRlKToKKyAgICAgICAgKFFXZWJQZXJtaXNzaW9uUmVxdWVzdDo6c2VjdXJpdHlPcmlnaW4pOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXdlYnBlcm1pc3Npb25yZXF1ZXN0X3AuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL3FtbHRlc3RzLnBybzoKKwog
MjAxMi0wMS0zMSAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAg
ICBQbHVnaW5Qcm9jZXNzIHNob3VsZCBiZSBhYmxlIHRvIHVzZSByZW1vdGUgb3BlbiBhbmQgc2F2
ZSBwYW5lbHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1RhcmdldC5wcmkgYi9Tb3VyY2Uv
V2ViS2l0Mi9UYXJnZXQucHJpCmluZGV4IDdiZDRhNzIuLjQ4ZGVlMGUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaQpA
QCAtMTczLDYgKzE3Myw3IEBAIEhFQURFUlMgKz0gXAogICAgIFVJUHJvY2Vzcy9BUEkvcXQvcXdl
YmRvd25sb2FkaXRlbV9wLmggXAogICAgIFVJUHJvY2Vzcy9BUEkvcXQvcXdlYmRvd25sb2FkaXRl
bV9wX3AuaCBcCiAgICAgVUlQcm9jZXNzL0FQSS9xdC9xd2VicGVybWlzc2lvbnJlcXVlc3RfcC5o
IFwKKyAgICBVSVByb2Nlc3MvQVBJL3F0L3F0d2Vic2VjdXJpdHlvcmlnaW5fcC5oIFwKICAgICBV
SVByb2Nlc3MvQVBJL3F0L3F3ZWJuYXZpZ2F0aW9ucmVxdWVzdF9wLmggXAogICAgIFVJUHJvY2Vz
cy9BUEkvcXQvcXF1aWNrd2VicGFnZV9wLmggXAogICAgIFVJUHJvY2Vzcy9BUEkvcXQvcXF1aWNr
d2VicGFnZV9wX3AuaCBcCkBAIC01MDIsNiArNTAzLDcgQEAgU09VUkNFUyArPSBcCiAgICAgVUlQ
cm9jZXNzL0FQSS9jcHAvcXQvV0tVUkxRdC5jcHAgXAogICAgIFVJUHJvY2Vzcy9BUEkvcXQvcXdl
YmRvd25sb2FkaXRlbS5jcHAgXAogICAgIFVJUHJvY2Vzcy9BUEkvcXQvcXdlYnBlcm1pc3Npb25y
ZXF1ZXN0LmNwcCBcCisgICAgVUlQcm9jZXNzL0FQSS9xdC9xdHdlYnNlY3VyaXR5b3JpZ2luLmNw
cCBcCiAgICAgVUlQcm9jZXNzL0FQSS9xdC9xd2VibmF2aWdhdGlvbnJlcXVlc3QuY3BwIFwKICAg
ICBVSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnBhZ2UuY3BwIFwKICAgICBVSVByb2Nlc3MvQVBJ
L3F0L3F3ZWJuYXZpZ2F0aW9uaGlzdG9yeS5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9xdC9xdHdlYnNlY3VyaXR5b3JpZ2luLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXR3ZWJzZWN1cml0eW9yaWdpbi5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGNiOTkwZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXR3ZWJzZWN1cml0eW9yaWdpbi5jcHAKQEAgLTAs
MCArMSw4MyBAQAorLyoKKyAgICBDb3B5cmlnaHQgKEMpIDIwMTIgTm9raWEgQ29ycG9yYXRpb24g
YW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICAgbW9kaWZ5IGl0IHVu
ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAgICBMaWNl
bnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIK
KyAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxh
dGVyIHZlcnNpb24uCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhv
cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7
IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgIE1FUkNIQU5UQUJJTElU
WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICAg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICBZ
b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlCisgICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmls
ZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICAgIEJv
c3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgInF0d2Vic2VjdXJpdHlvcmlnaW5fcC5oIgorCisjaW5jbHVkZSA8UXRDb3JlL1FGaWxl
SW5mbz4KKyNpbmNsdWRlIDxRdENvcmUvUVN0cmluZ0xpc3Q+CisjaW5jbHVkZSA8U2NoZW1lUmVn
aXN0cnkuaD4KKyNpbmNsdWRlIDxTZWN1cml0eU9yaWdpbi5oPgorI2luY2x1ZGUgPFdlYktpdDIv
V0tCYXNlLmg+CisjaW5jbHVkZSA8V2ViS2l0Mi9XS1JldGFpblB0ci5oPgorI2luY2x1ZGUgPFdl
YktpdDIvV0tTZWN1cml0eU9yaWdpbi5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKwor
UXRXZWJTZWN1cml0eU9yaWdpbjo6UXRXZWJTZWN1cml0eU9yaWdpbihRT2JqZWN0KiBwYXJlbnQp
CisgICAgOiBRT2JqZWN0KHBhcmVudCkKK3sKK30KKworUXRXZWJTZWN1cml0eU9yaWdpbjo6flF0
V2ViU2VjdXJpdHlPcmlnaW4oKQoreworfQorCitRU3RyaW5nIFF0V2ViU2VjdXJpdHlPcmlnaW46
Omhvc3QoKSBjb25zdAoreworICAgIHJldHVybiBtX3VybC5ob3N0KCk7Cit9CisKK1FTdHJpbmcg
UXRXZWJTZWN1cml0eU9yaWdpbjo6c2NoZW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV91cmwu
c2NoZW1lKCk7Cit9CisKK1FTdHJpbmcgUXRXZWJTZWN1cml0eU9yaWdpbjo6cGF0aCgpIGNvbnN0
Cit7CisgICAgcmV0dXJuIG1fdXJsLnBhdGgoKTsKK30KKworaW50IFF0V2ViU2VjdXJpdHlPcmln
aW46OnBvcnQoKSBjb25zdAoreworICAgIHJldHVybiBtX3VybC5wb3J0KCk7Cit9CisKK3ZvaWQg
UXRXZWJTZWN1cml0eU9yaWdpbjo6YWRkTG9jYWxTY2hlbWUoY29uc3QgUVN0cmluZyYgc2NoZW1l
KQoreworICAgIFNjaGVtZVJlZ2lzdHJ5OjpyZWdpc3RlclVSTFNjaGVtZUFzTG9jYWwoc2NoZW1l
KTsKK30KKwordm9pZCBRdFdlYlNlY3VyaXR5T3JpZ2luOjpyZW1vdmVMb2NhbFNjaGVtZShjb25z
dCBRU3RyaW5nJiBzY2hlbWUpCit7CisgICAgU2NoZW1lUmVnaXN0cnk6OnJlbW92ZVVSTFNjaGVt
ZVJlZ2lzdGVyZWRBc0xvY2FsKHNjaGVtZSk7Cit9CisKK1FTdHJpbmdMaXN0IFF0V2ViU2VjdXJp
dHlPcmlnaW46OmxvY2FsU2NoZW1lcygpCit7CisgICAgUVN0cmluZ0xpc3Qgc2NoZW1lczsKKyAg
ICBjb25zdCBVUkxTY2hlbWVzTWFwJiBtYXAgPSBTY2hlbWVSZWdpc3RyeTo6bG9jYWxTY2hlbWVz
KCk7CisgICAgVVJMU2NoZW1lc01hcDo6Y29uc3RfaXRlcmF0b3IgZW5kID0gbWFwLmVuZCgpOwor
ICAgIGZvciAoVVJMU2NoZW1lc01hcDo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtYXAuYmVnaW4oKTsg
aXQgIT0gZW5kOyArK2l0KSB7CisgICAgICAgIGNvbnN0IFFTdHJpbmcgc2NoZW1lID0gKml0Owor
ICAgICAgICBzY2hlbWVzLmFwcGVuZChzY2hlbWUpOworICAgIH0KKworICAgIHJldHVybiBzY2hl
bWVzOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xdHdl
YnNlY3VyaXR5b3JpZ2luX3AuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXR3
ZWJzZWN1cml0eW9yaWdpbl9wLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
NTMxYTY2YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
cXQvcXR3ZWJzZWN1cml0eW9yaWdpbl9wLmgKQEAgLTAsMCArMSw2MSBAQAorLyoKKyAgICBDb3B5
cmlnaHQgKEMpIDIwMTIgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1p
ZXMpCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCisgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9uIDIgb2YgdGhlIExp
Y2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgICBUaGlz
IGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1
bCwKKyAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll
ZCB3YXJyYW50eSBvZgorICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg
YSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICAgYWxv
bmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwg
d3JpdGUgdG8KKyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFu
a2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNB
LgorKi8KKyNpZm5kZWYgcXR3ZWJzZWN1cml0eW9yaWdpbl9wX2gKKyNkZWZpbmUgcXR3ZWJzZWN1
cml0eW9yaWdpbl9wX2gKKworI2luY2x1ZGUgInF3ZWJraXRnbG9iYWwuaCIKKworI2luY2x1ZGUg
PFF0Q29yZS9RRGF0YVN0cmVhbT4KKyNpbmNsdWRlIDxRdENvcmUvUU9iamVjdD4KKyNpbmNsdWRl
IDxRdENvcmUvUVN0cmluZz4KKyNpbmNsdWRlIDxRdENvcmUvUVVybD4KKyNpbmNsdWRlIDxRdENv
cmUvcXNoYXJlZGRhdGEuaD4KKworY2xhc3MgUVdFQktJVF9FWFBPUlQgUXRXZWJTZWN1cml0eU9y
aWdpbiA6IHB1YmxpYyBRT2JqZWN0IHsKKyAgICBRX09CSkVDVAorICAgIFFfUFJPUEVSVFkoUVN0
cmluZyBzY2hlbWUgUkVBRCBzY2hlbWUgQ09OU1RBTlQpCisgICAgUV9QUk9QRVJUWShRU3RyaW5n
IGhvc3QgUkVBRCBob3N0IENPTlNUQU5UKQorICAgIFFfUFJPUEVSVFkoaW50IHBvcnQgUkVBRCBw
b3J0IENPTlNUQU5UKQorICAgIFFfUFJPUEVSVFkoUVN0cmluZyBwYXRoIFJFQUQgcGF0aCBDT05T
VEFOVCkKKworcHVibGljOgorICAgIFF0V2ViU2VjdXJpdHlPcmlnaW4oUU9iamVjdCogcGFyZW50
ID0gMCk7CisgICAgdmlydHVhbCB+UXRXZWJTZWN1cml0eU9yaWdpbigpOworCisgICAgUVN0cmlu
ZyBzY2hlbWUoKSBjb25zdDsKKyAgICBRU3RyaW5nIGhvc3QoKSBjb25zdDsKKyAgICBpbnQgcG9y
dCgpIGNvbnN0OworICAgIFFTdHJpbmcgcGF0aCgpIGNvbnN0OworCisgICAgLy8gVXNlZCB0byBz
ZXQgc2VjdXJpdHkgaW5mb3JtYXRpb24gaW4gYSBwZXJtaXNzaW9uIHJlcXVlc3QgZXZlbnQgKGUu
Zy4KKyAgICAvLyBnZW9sb2NhdGlvbiBwZXJtaXNzaW9uKQorICAgIHZvaWQgc2V0U2NoZW1lKGNv
bnN0IFFTdHJpbmcmIHNjaGVtZSkgeyBtX3VybC5zZXRTY2hlbWUoc2NoZW1lKTsgfQorICAgIHZv
aWQgc2V0SG9zdChjb25zdCBRU3RyaW5nJiBob3N0KSB7IG1fdXJsLnNldEhvc3QoaG9zdCk7IH0K
KyAgICB2b2lkIHNldFBhdGgoY29uc3QgUVN0cmluZyYgcGF0aCkgeyBtX3VybC5zZXRQYXRoKHBh
dGgpOyB9CisgICAgdm9pZCBzZXRQb3J0KGludCBwb3J0KSB7IG1fdXJsLnNldFBvcnQocG9ydCk7
IH0KKworICAgIHN0YXRpYyB2b2lkIGFkZExvY2FsU2NoZW1lKGNvbnN0IFFTdHJpbmcmIHNjaGVt
ZSk7CisgICAgc3RhdGljIHZvaWQgcmVtb3ZlTG9jYWxTY2hlbWUoY29uc3QgUVN0cmluZyYgc2No
ZW1lKTsKKyAgICBzdGF0aWMgUVN0cmluZ0xpc3QgbG9jYWxTY2hlbWVzKCk7CisKK3ByaXZhdGU6
CisgICAgUVVybCBtX3VybDsKK307CisKKyNlbmRpZiAvLyBxdHdlYnNlY3VyaXR5b3JpZ2luX3Bf
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2VicGVybWlz
c2lvbnJlcXVlc3QuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2VicGVy
bWlzc2lvbnJlcXVlc3QuY3BwCmluZGV4IDE2YTQzODUuLmM0YzFhZjggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnBlcm1pc3Npb25yZXF1ZXN0LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwZXJtaXNzaW9ucmVxdWVz
dC5jcHAKQEAgLTM0LDcgKzM0LDE1IEBAIHB1YmxpYzoKICAgICAgICAgLCByZXF1ZXN0KHBlcm1p
c3Npb25SZXF1ZXN0KQogICAgICAgICAsIGFsbG93KGZhbHNlKQogICAgIHsKKyAgICAgICAgV0tS
ZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHVybCA9IGFkb3B0V0soV0tTZWN1cml0eU9yaWdpbkNvcHlQ
cm90b2NvbChvcmlnaW4uZ2V0KCkpKTsKKyAgICAgICAgc2VjdXJpdHlJbmZvLnNldFNjaGVtZShX
S1N0cmluZ0NvcHlRU3RyaW5nKHVybC5nZXQoKSkpOworCisgICAgICAgIFdLUmV0YWluUHRyPFdL
U3RyaW5nUmVmPiBob3N0ID0gYWRvcHRXSyhXS1NlY3VyaXR5T3JpZ2luQ29weUhvc3Qob3JpZ2lu
LmdldCgpKSk7CisgICAgICAgIHNlY3VyaXR5SW5mby5zZXRIb3N0KFdLU3RyaW5nQ29weVFTdHJp
bmcoaG9zdC5nZXQoKSkpOworCisgICAgICAgIHNlY3VyaXR5SW5mby5zZXRQb3J0KHN0YXRpY19j
YXN0PGludD4oV0tTZWN1cml0eU9yaWdpbkdldFBvcnQob3JpZ2luLmdldCgpKSkpOwogICAgIH0K
KwogICAgIH5RV2ViUGVybWlzc2lvblJlcXVlc3RQcml2YXRlKCkKICAgICB7CiAgICAgfQpAQCAt
NDIsNiArNTAsNyBAQCBwdWJsaWM6CiAgICAgV0tSZXRhaW5QdHI8V0tTZWN1cml0eU9yaWdpblJl
Zj4gb3JpZ2luOwogICAgIFFXZWJQZXJtaXNzaW9uUmVxdWVzdDo6UmVxdWVzdFR5cGUgdHlwZTsK
ICAgICBXS1JldGFpblB0cjxXS0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RSZWY+IHJlcXVl
c3Q7CisgICAgUXRXZWJTZWN1cml0eU9yaWdpbiBzZWN1cml0eUluZm87CiAgICAgYm9vbCBhbGxv
dzsKIH07CiAKQEAgLTg4LDE5ICs5Nyw4IEBAIGJvb2wgUVdlYlBlcm1pc3Npb25SZXF1ZXN0Ojph
bGxvdygpIGNvbnN0CiAgICAgcmV0dXJuIGQtPmFsbG93OwogfQogCi1RU3RyaW5nIFFXZWJQZXJt
aXNzaW9uUmVxdWVzdDo6c2NoZW1lKCkgY29uc3QKLXsKLSAgICBXS1JldGFpblB0cjxXS1N0cmlu
Z1JlZj4gdXJsID0gYWRvcHRXSyhXS1NlY3VyaXR5T3JpZ2luQ29weVByb3RvY29sKGQtPm9yaWdp
bi5nZXQoKSkpOwotICAgIHJldHVybiBXS1N0cmluZ0NvcHlRU3RyaW5nKHVybC5nZXQoKSk7Ci19
Ci0KLVFTdHJpbmcgUVdlYlBlcm1pc3Npb25SZXF1ZXN0Ojpob3N0KCkgY29uc3QKK1F0V2ViU2Vj
dXJpdHlPcmlnaW4qIFFXZWJQZXJtaXNzaW9uUmVxdWVzdDo6c2VjdXJpdHlPcmlnaW4oKQogewot
ICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBvcmlnaW4gPSBhZG9wdFdLKFdLU2VjdXJpdHlP
cmlnaW5Db3B5SG9zdChkLT5vcmlnaW4uZ2V0KCkpKTsKLSAgICByZXR1cm4gV0tTdHJpbmdDb3B5
UVN0cmluZyhvcmlnaW4uZ2V0KCkpOworICAgIHJldHVybiAmKGQtPnNlY3VyaXR5SW5mbyk7CiB9
CiAKLWludCBRV2ViUGVybWlzc2lvblJlcXVlc3Q6OnBvcnQoKSBjb25zdAotewotICAgIHJldHVy
biBzdGF0aWNfY2FzdDxpbnQ+KFdLU2VjdXJpdHlPcmlnaW5HZXRQb3J0KGQtPm9yaWdpbi5nZXQo
KSkpOwotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2Vi
cGVybWlzc2lvbnJlcXVlc3RfcC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9x
d2VicGVybWlzc2lvbnJlcXVlc3RfcC5oCmluZGV4IDU4MjRjNGMuLjQ3MDhiNzEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnBlcm1pc3Npb25yZXF1ZXN0
X3AuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwZXJtaXNzaW9u
cmVxdWVzdF9wLmgKQEAgLTIwLDYgKzIwLDcgQEAKICNpZm5kZWYgcXdlYnBlcm1pc3Npb25yZXF1
ZXN0X3BfaAogI2RlZmluZSBxd2VicGVybWlzc2lvbnJlcXVlc3RfcF9oCiAKKyNpbmNsdWRlICJx
dHdlYnNlY3VyaXR5b3JpZ2luX3AuaCIKICNpbmNsdWRlICJxd2Via2l0Z2xvYmFsLmgiCiAKICNp
bmNsdWRlIDxRdENvcmUvUU9iamVjdD4KQEAgLTMyLDEwICszMyw4IEBAIGNsYXNzIFFXZWJQZXJt
aXNzaW9uUmVxdWVzdFByaXZhdGU7CiBjbGFzcyBRV0VCS0lUX0VYUE9SVCBRV2ViUGVybWlzc2lv
blJlcXVlc3QgOiBwdWJsaWMgUU9iamVjdCB7CiAgICAgUV9PQkpFQ1QKICAgICBRX1BST1BFUlRZ
KGJvb2wgYWxsb3cgUkVBRCBhbGxvdyBXUklURSBzZXRBbGxvdykKLSAgICBRX1BST1BFUlRZKFJl
cXVlc3RUeXBlIHR5cGUgUkVBRCB0eXBlKQotICAgIFFfUFJPUEVSVFkoUVN0cmluZyBzY2hlbWUg
UkVBRCBzY2hlbWUpCi0gICAgUV9QUk9QRVJUWShRU3RyaW5nIGhvc3QgUkVBRCBob3N0KQotICAg
IFFfUFJPUEVSVFkoaW50IHBvcnQgUkVBRCBwb3J0KQorICAgIFFfUFJPUEVSVFkoUmVxdWVzdFR5
cGUgdHlwZSBSRUFEIHR5cGUgQ09OU1RBTlQpCisgICAgUV9QUk9QRVJUWShRdFdlYlNlY3VyaXR5
T3JpZ2luKiBvcmlnaW4gUkVBRCBzZWN1cml0eU9yaWdpbikKICAgICBRX0VOVU1TKFJlcXVlc3RU
eXBlKQogCiBwdWJsaWM6CkBAIC00OCwxMiArNDcsMTAgQEAgcHVibGljOgogCiAgICAgUmVxdWVz
dFR5cGUgdHlwZSgpIGNvbnN0OwogICAgIGJvb2wgYWxsb3coKSBjb25zdDsKLSAgICBRU3RyaW5n
IHNjaGVtZSgpIGNvbnN0OwotICAgIFFTdHJpbmcgaG9zdCgpIGNvbnN0OwotICAgIGludCBwb3J0
KCkgY29uc3Q7CiAKIHB1YmxpYyBRX1NMT1RTOgogICAgIHZvaWQgc2V0QWxsb3coYm9vbCk7Cisg
ICAgUXRXZWJTZWN1cml0eU9yaWdpbiogc2VjdXJpdHlPcmlnaW4oKTsKIAogcHJpdmF0ZToKICAg
ICBmcmllbmQgY2xhc3MgUVdlYlBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvV2ViVmlldy90
c3Rfb3JpZ2luLnFtbCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1s
dGVzdHMvV2ViVmlldy90c3Rfb3JpZ2luLnFtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi5lN2Q2NDIxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3L3RzdF9vcmlnaW4ucW1sCkBAIC0wLDAg
KzEsNTcgQEAKK2ltcG9ydCBRdFF1aWNrIDIuMAoraW1wb3J0IFF0VGVzdCAxLjAKK2ltcG9ydCBR
dFdlYktpdCAzLjAKK2ltcG9ydCBRdFdlYktpdC5leHBlcmltZW50YWwgMy4wCisKK1dlYlZpZXcg
eworICAgIGlkOiB3ZWJWaWV3CisgICAgd2lkdGg6IDIwMAorICAgIGhlaWdodDogMjAwCisKKyAg
ICBwcm9wZXJ0eSBib29sIHN1Y2Nlc3M6IHRydWUKKyAgICBwcm9wZXJ0eSBpbnQgcG9ydDogMAor
ICAgIHByb3BlcnR5IHN0cmluZyBzY2hlbWU6ICJmaWxlIgorCisgICAgU2lnbmFsU3B5IHsKKyAg
ICAgICAgaWQ6IHNweQorICAgICAgICB0YXJnZXQ6IGV4cGVyaW1lbnRhbAorICAgICAgICBzaWdu
YWxOYW1lOiAicGVybWlzc2lvblJlcXVlc3RlZCIKKyAgICB9CisKKyAgICBleHBlcmltZW50YWwu
b25QZXJtaXNzaW9uUmVxdWVzdGVkOiB7CisgICAgICAgIGlmIChwZXJtaXNzaW9uLm9yaWdpbi5w
b3J0ICE9IHdlYlZpZXcucG9ydCkgeworICAgICAgICAgICAgY29uc29sZS5sb2coIkV4cGVjdGVk
IHBvcnQgdmFsdWUgc2hvdWxkIGJlIHplcm8uIikKKyAgICAgICAgICAgIHdlYlZpZXcuc3VjY2Vz
cyA9IGZhbHNlCisgICAgICAgIH0KKworICAgICAgICBpZiAocGVybWlzc2lvbi5vcmlnaW4uc2No
ZW1lICE9IHdlYlZpZXcuc2NoZW1lKSB7CisgICAgICAgICAgICBjb25zb2xlLmxvZygiRXhwZWN0
ZWQgc2NoZW1lIHNob3VsZCBiZSBcImZpbGVcIi4iKQorICAgICAgICAgICAgd2ViVmlldy5zdWNj
ZXNzID0gZmFsc2UKKyAgICAgICAgfQorICAgIH0KKworICAgIFRlc3RDYXNlIHsKKyAgICAgICAg
bmFtZTogIldlYlZpZXdTZWN1cml0eU9yaWdpbiIKKworICAgICAgICAvLyBEZWxheWVkIHdpbmRv
d1Nob3duIHRvIHdvcmthcm91bmQgcHJvYmxlbXMgd2l0aCBRdDUgaW4gZGVidWcgbW9kZS4KKyAg
ICAgICAgd2hlbjogZmFsc2UKKyAgICAgICAgVGltZXIgeworICAgICAgICAgICAgcnVubmluZzog
cGFyZW50LndpbmRvd1Nob3duCisgICAgICAgICAgICByZXBlYXQ6IGZhbHNlCisgICAgICAgICAg
ICBpbnRlcnZhbDogMQorICAgICAgICAgICAgb25UcmlnZ2VyZWQ6IHBhcmVudC53aGVuID0gdHJ1
ZQorICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gaW5pdCgpIHsKKyAgICAgICAgICAgIHNw
eS5jbGVhcigpCisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiB0ZXN0X3Blcm1pc3Npb25S
ZXF1ZXN0KCkgeworICAgICAgICAgICAgY29tcGFyZShzcHkuY291bnQsIDApCisgICAgICAgICAg
ICB3ZWJWaWV3LmxvYWQoUXQucmVzb2x2ZWRVcmwoIi4uL2NvbW1vbi9nZW9sb2NhdGlvbi5odG1s
IikpCisgICAgICAgICAgICBzcHkud2FpdCgpCisgICAgICAgICAgICBjb21wYXJlKHNweS5jb3Vu
dCwgMSkKKyAgICAgICAgICAgIGNvbXBhcmUod2ViVmlldy5zdWNjZXNzLCB0cnVlKQorICAgICAg
ICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9x
dC90ZXN0cy9xbWx0ZXN0cy9xbWx0ZXN0cy5wcm8gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL3F0L3Rlc3RzL3FtbHRlc3RzL3FtbHRlc3RzLnBybwppbmRleCBjOGNlODdhLi41MDgxOWMw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRl
c3RzL3FtbHRlc3RzLnBybworKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rl
c3RzL3FtbHRlc3RzL3FtbHRlc3RzLnBybwpAQCAtMjksNCArMjksNSBAQCBPVEhFUl9GSUxFUyAr
PSBcCiAgICAgV2ViVmlldy90c3RfcHJlZmVyZW5jZXMucW1sIFwKICAgICBXZWJWaWV3L3RzdF9w
cm9wZXJ0aWVzLnFtbCBcCiAgICAgV2ViVmlldy90c3RfdGl0bGVDaGFuZ2VkLnFtbCBcCi0gICAg
V2ViVmlldy90c3RfYXBwbGljYXRpb25TY2hlbWUucW1sCisgICAgV2ViVmlldy90c3RfYXBwbGlj
YXRpb25TY2hlbWUucW1sIFwKKyAgICBXZWJWaWV3L3RzdF9vcmlnaW4ucW1sCmRpZmYgLS1naXQg
YS9Tb3VyY2UvcXR3ZWJraXQtZXhwb3J0Lm1hcCBiL1NvdXJjZS9xdHdlYmtpdC1leHBvcnQubWFw
CmluZGV4IGJhMmUyZmIuLmJmMTM3NzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9xdHdlYmtpdC1leHBv
cnQubWFwCisrKyBiL1NvdXJjZS9xdHdlYmtpdC1leHBvcnQubWFwCkBAIC0xNTYsNyArMTU2LDkg
QEAgcXdrXzEuMCB7CiAgICAgICAgIFFRdWlja05ldHdvcmtSZXF1ZXN0OjoqOwogICAgICAgICAq
UVF1aWNrTmV0d29ya1JlcGx5OwogICAgICAgICBRUXVpY2tOZXR3b3JrUmVwbHk6Oio7Ci0KKyAg
ICAgICAgKlF0V2ViU2VjdXJpdHlPcmlnaW47CisgICAgICAgIG5vbi12aXJ0dWFsP3RodW5rP3Rv
P1F0V2ViU2VjdXJpdHlPcmlnaW4qOworICAgICAgICBRdFdlYlNlY3VyaXR5T3JpZ2luOjoqOwog
CiAgICAgICAgICMgV2ViS2l0IDIgQyBBUEkgbWFuZ2xlZCBpbiBDKysKICAgICAgICAgV0tTdHJp
bmdDb3B5UVN0cmluZyo7Ci0tIAoxLjcuNS40Cgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>124943</attachid>
            <date>2012-02-01 06:34:30 -0800</date>
            <delta_ts>2012-02-14 07:59:21 -0800</delta_ts>
            <desc>Previous fixes, changelog</desc>
            <filename>origin_step15_cl.patch</filename>
            <type>text/plain</type>
            <size>17856</size>
            <attacher name="Adenilson Cavalcanti Silva">savagobr</attacher>
            
              <data encoding="base64">RnJvbSAzZTAzMzc3ZjRhMDI0MzY2NzZkODBhMGMzZDMzYjQ2OWU0YjBlYzYxIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBZGVuaWxzb24gQ2F2YWxjYW50aSA8Y2F2YWxjYW50aWlAZ21h
aWwuY29tPgpEYXRlOiBTdW4sIDIyIEphbiAyMDEyIDAwOjA2OjUyIC0wNDAwClN1YmplY3Q6IFtQ
QVRDSF0gUHJldmlvdXMgZml4ZWQgKHBsdXMgQ2hhbmdlTG9nKSwgcmVtb3ZlZCB1bm5lY2Vzc2Fy
eSBoZWFkZXIKIGZpbGUsIGVsc2UgY2xhdXNlLCByZW1vdmVkIHJlZHVuZGFudCBjaGVja3MsIGNo
YW5nZWQgdGhlCiB0ZXN0LCB0aGUgbmFtZSBvZiBzZWN1cml0eSBvcmlnaW4gcHJvcGVydHksIHJl
bW92ZWQKIDo6Y2FuQWNjZXNzKCkvdXJsKCkgbWV0aG9kcyBhbmQgc3RyZWFtIG9wZXJhdG9ycywg
dXBkYXRlZAogY2hhbmdlbG9nLgoKU2lnbmVkLW9mZi1ieTogQWRlbmlsc29uIENhdmFsY2FudGkg
PGNhdmFsY2FudGlpQGdtYWlsLmNvbT4KLS0tCiBDaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTYgKysrKwogU291cmNlL1dlYktpdC9xdC9DaGFu
Z2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE0ICsrKysKIFNvdXJjZS9XZWJLaXQv
cXQvZGVjbGFyYXRpdmUvcGx1Z2luLmNwcCAgICAgICAgICAgIHwgICAgMyArCiBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMzcgKysrKysrKysr
CiBTb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAg
IDIgKwogLi4uL1VJUHJvY2Vzcy9BUEkvcXQvcXR3ZWJzZWN1cml0eW9yaWdpbi5jcHAgICAgICAg
fCAgIDgzICsrKysrKysrKysrKysrKysrKysrCiAuLi4vVUlQcm9jZXNzL0FQSS9xdC9xdHdlYnNl
Y3VyaXR5b3JpZ2luX3AuaCAgICAgICB8ICAgNjEgKysrKysrKysrKysrKysKIC4uLi9VSVByb2Nl
c3MvQVBJL3F0L3F3ZWJwZXJtaXNzaW9ucmVxdWVzdC5jcHAgICAgIHwgICAyNCArKystLS0KIC4u
Li9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwZXJtaXNzaW9ucmVxdWVzdF9wLmggICAgIHwgICAxMSAr
LS0KIC4uLi9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvV2ViVmlldy90c3Rfb3JpZ2luLnFtbCAgIHwg
ICA1NyArKysrKysrKysrKysrCiAuLi4vVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9x
bWx0ZXN0cy5wcm8gICB8ICAgIDMgKy0KIFNvdXJjZS9xdHdlYmtpdC1leHBvcnQubWFwICAgICAg
ICAgICAgICAgICAgICAgICAgIHwgICAgNCArLQogMTIgZmlsZXMgY2hhbmdlZCwgMjkzIGluc2Vy
dGlvbnMoKyksIDIyIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXR3ZWJzZWN1cml0eW9yaWdpbi5jcHAKIGNyZWF0ZSBtb2Rl
IDEwMDY0NCBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F0d2Vic2VjdXJpdHlvcmln
aW5fcC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9x
dC90ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3L3RzdF9vcmlnaW4ucW1sCgpkaWZmIC0tZ2l0IGEvQ2hh
bmdlTG9nIGIvQ2hhbmdlTG9nCmluZGV4IGVmMzQ2NTkuLjQ2NzAwNzUgMTAwNjQ0Ci0tLSBhL0No
YW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxMi0wMi0wMSAgQWRl
bmlsc29uIENhdmFsY2FudGkgIDxjYXZhbGNhbnRpaUBnbWFpbC5jb20+CisKKyAgICAgICAgW1F0
XVtXSzJdIFNwbGl0IFFXZWJQZXJtaXNzaW9uUmVxdWVzdCBpbnRvIFFXZWJTZWN1cml0eU9yaWdp
bgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMyMTUK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbnRyb2R1
Y2luZyBhIG5ldyBjbGFzcyB0byBleHBvc2Ugc2VjdXJpdHkgb3JpZ2luIGluZm9ybWF0aW9uCisg
ICAgICAgIChwb3J0L3NjaGVtZS9ldGMpLCB1c2VmdWwgZm9yIGluc3BlY3RpbmcgdGhlIG9yaWdp
biBvZiBwZXJtaXNzaW9uCisgICAgICAgIHJlcXVlc3RzLgorCisgICAgICAgIFRoaXMgY2xhc3Mg
dXNlcyBtZXRob2RzIGZyb20gU2NoZW1lUmVnaXN0cnksIHRodXMgYWxsb3dpbmcgdG8KKyAgICAg
ICAgYWRkL3JlbW92ZS9saXN0IGxvY2FsIHNjaGVtZXMgdG9vLgorCisgICAgICAgICogU291cmNl
L3F0d2Via2l0LWV4cG9ydC5tYXA6CisKIDIwMTItMDEtMzEgIEtlbm5ldGggUm9oZGUgQ2hyaXN0
aWFuc2VuICA8a2VubmV0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFRhcCBoaWdobGlnaHRpbmc6
IFN1cHBvcnQgYmV0dGVyIG91dGxpbmVzIGZvciBtdWx0aWxpbmUgaW5saW5lcwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxv
ZwppbmRleCA2YWVmZDcwLi4xNWU3OTFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBA
CisyMDEyLTAyLTAxICBBZGVuaWxzb24gQ2F2YWxjYW50aSAgPGNhdmFsY2FudGlpQGdtYWlsLmNv
bT4KKworICAgICAgICBbUXRdW1dLMl0gU3BsaXQgUVdlYlBlcm1pc3Npb25SZXF1ZXN0IGludG8g
UVdlYlNlY3VyaXR5T3JpZ2luCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD03MzIxNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEFkZGluZyBhIGNsYXNzIHRvIGFjY2VzcyBzZWN1cml0eSBpbmZvcm1hdGlvbiBk
YXRhCisgICAgICAgIChlLmcuIHBvcnQvc2NoZW1lL2V0YyksCisgICAgICAgIHdoaWxlIGFsbG93
aW5nIGl0IHRvIGJlIGhhbmRsZWQgaW4gUU1MIHNpZGUuCisKKyAgICAgICAgKiBkZWNsYXJhdGl2
ZS9wbHVnaW4uY3BwOgorICAgICAgICAoV2ViS2l0UW1sUGx1Z2luOjpyZWdpc3RlclR5cGVzKToK
KwogMjAxMi0wMS0zMCAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAg
ICAgUmVkdWNlIG5vbi1DU1NPTSBBUEkgb2YgQ1NTU3R5bGVEZWNsYXJhdGlvbgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9xdC9kZWNsYXJhdGl2ZS9wbHVnaW4uY3BwIGIvU291cmNlL1dlYktp
dC9xdC9kZWNsYXJhdGl2ZS9wbHVnaW4uY3BwCmluZGV4IDY0NjM4ZTQuLmUyZjBmYjMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvZGVjbGFyYXRpdmUvcGx1Z2luLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L3F0L2RlY2xhcmF0aXZlL3BsdWdpbi5jcHAKQEAgLTI1LDYgKzI1LDcgQEAKICNp
ZiBkZWZpbmVkKEhBVkVfV0VCS0lUMikKICNpbmNsdWRlICJxcXVpY2t3ZWJwYWdlX3AuaCIKICNp
bmNsdWRlICJxcXVpY2t3ZWJ2aWV3X3AuaCIKKyNpbmNsdWRlICJxdHdlYnNlY3VyaXR5b3JpZ2lu
X3AuaCIKICNpbmNsdWRlICJxd2ViaWNvbmltYWdlcHJvdmlkZXJfcC5oIgogI2luY2x1ZGUgInF3
ZWJuYXZpZ2F0aW9ucmVxdWVzdF9wLmgiCiAjaW5jbHVkZSAicXdlYnBlcm1pc3Npb25yZXF1ZXN0
X3AuaCIKQEAgLTY1LDYgKzY2LDggQEAgcHVibGljOgogICAgICAgICBxbWxSZWdpc3RlclVuY3Jl
YXRhYmxlVHlwZTxRTmV0d29ya1JlcGx5Pih1cmksIDMsIDAsICJOZXR3b3JrUmVwbHkiLCBRT2Jq
ZWN0Ojp0cigiQ2Fubm90IGNyZWF0ZSBzZXBhcmF0ZSBpbnN0YW5jZSBvZiBOZXR3b3JrUmVwbHki
KSk7CiAgICAgICAgIHFtbFJlZ2lzdGVyVW5jcmVhdGFibGVUeXBlPFFXZWJQZXJtaXNzaW9uUmVx
dWVzdD4odXJpLCAzLCAwLCAiUGVybWlzc2lvblJlcXVlc3QiLCBRT2JqZWN0Ojp0cigiQ2Fubm90
IGNyZWF0ZSBzZXBhcmF0ZSBpbnN0YW5jZSBvZiBQZXJtaXNzaW9uUmVxdWVzdCIpKTsKICAgICAg
ICAgcW1sUmVnaXN0ZXJVbmNyZWF0YWJsZVR5cGU8UVdlYk5hdmlnYXRpb25SZXF1ZXN0Pih1cmks
IDMsIDAsICJOYXZpZ2F0aW9uUmVxdWVzdCIsIFFPYmplY3Q6OnRyKCJDYW5ub3QgY3JlYXRlIHNl
cGFyYXRlIGluc3RhbmNlIG9mIE5hdmlnYXRpb25SZXF1ZXN0IikpOworICAgICAgICBxbWxSZWdp
c3RlclVuY3JlYXRhYmxlVHlwZTxRdFdlYlNlY3VyaXR5T3JpZ2luPih1cmksIDMsIDAsICJTZWN1
cml0eU9yaWdpbiIsIFFPYmplY3Q6OnRyKCJDYW5ub3QgY3JlYXRlIHNlcGFyYXRlIGluc3RhbmNl
IG9mIFNlY3VyaXR5T3JpZ2luIikpOworCiAjZW5kaWYKICAgICB9CiB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4
IDEwMGU1YzkuLmIxZjk3NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MCBAQAorMjAxMi0wMi0w
MSAgQWRlbmlsc29uIENhdmFsY2FudGkgIDxjYXZhbGNhbnRpaUBnbWFpbC5jb20+CisKKyAgICAg
ICAgW1F0XVtXSzJdIFNwbGl0IFFXZWJQZXJtaXNzaW9uUmVxdWVzdCBpbnRvIFFXZWJTZWN1cml0
eU9yaWdpbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NzMyMTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJ
bnRyb2R1Y2luZyBhIG5ldyBjbGFzcyB0byBleHBvc2Ugc2VjdXJpdHkgb3JpZ2luIGluZm9ybWF0
aW9uCisgICAgICAgIChwb3J0L3NjaGVtZS9ldGMpLCB1c2VmdWwgZm9yIGluc3BlY3RpbmcgdGhl
IG9yaWdpbiBvZiBwZXJtaXNzaW9uCisgICAgICAgIHJlcXVlc3RzLgorCisgICAgICAgIFRoaXMg
Y2xhc3MgdXNlcyBtZXRob2RzIGZyb20gU2NoZW1lUmVnaXN0cnksIHRodXMgYWxsb3dpbmcgdG8K
KyAgICAgICAgYWRkL3JlbW92ZS9saXN0IGxvY2FsIHNjaGVtZXMgdG9vLgorCisgICAgICAgICog
VGFyZ2V0LnByaToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3F0d2Vic2VjdXJpdHlvcmln
aW4uY3BwOiBBZGRlZC4KKyAgICAgICAgKFF0V2ViU2VjdXJpdHlPcmlnaW46OlF0V2ViU2VjdXJp
dHlPcmlnaW4pOgorICAgICAgICAoUXRXZWJTZWN1cml0eU9yaWdpbjo6flF0V2ViU2VjdXJpdHlP
cmlnaW4pOgorICAgICAgICAoUXRXZWJTZWN1cml0eU9yaWdpbjo6aG9zdCk6CisgICAgICAgIChR
dFdlYlNlY3VyaXR5T3JpZ2luOjpzY2hlbWUpOgorICAgICAgICAoUXRXZWJTZWN1cml0eU9yaWdp
bjo6cGF0aCk6CisgICAgICAgIChRdFdlYlNlY3VyaXR5T3JpZ2luOjpwb3J0KToKKyAgICAgICAg
KFF0V2ViU2VjdXJpdHlPcmlnaW46OnNldEhvc3QpOgorICAgICAgICAoUXRXZWJTZWN1cml0eU9y
aWdpbjo6c2V0U2NoZW1lKToKKyAgICAgICAgKFF0V2ViU2VjdXJpdHlPcmlnaW46OnNldFBhdGgp
OgorICAgICAgICAoUXRXZWJTZWN1cml0eU9yaWdpbjo6c2V0UG9ydCk6CisgICAgICAgIChRdFdl
YlNlY3VyaXR5T3JpZ2luOjphZGRMb2NhbFNjaGVtZSk6CisgICAgICAgIChRdFdlYlNlY3VyaXR5
T3JpZ2luOjpyZW1vdmVMb2NhbFNjaGVtZSk6CisgICAgICAgIChRdFdlYlNlY3VyaXR5T3JpZ2lu
Ojpsb2NhbFNjaGVtZXMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXR3ZWJzZWN1cml0
eW9yaWdpbl9wLmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1s
dGVzdHMvV2ViVmlldy90c3Rfb3JpZ2luLnFtbDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9xdC9xd2VicGVybWlzc2lvbnJlcXVlc3QuY3BwOgorICAgICAgICAoUVdlYlBlcm1pc3Np
b25SZXF1ZXN0UHJpdmF0ZTo6UVdlYlBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZSk6CisgICAgICAg
IChRV2ViUGVybWlzc2lvblJlcXVlc3Q6OnNlY3VyaXR5T3JpZ2luKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL3F0L3F3ZWJwZXJtaXNzaW9ucmVxdWVzdF9wLmg6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9xbWx0ZXN0cy5wcm86CisKIDIwMTItMDEtMzEgIEFs
ZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CiAKICAgICAgICAgUGx1Z2luUHJvY2Vz
cyBzaG91bGQgYmUgYWJsZSB0byB1c2UgcmVtb3RlIG9wZW4gYW5kIHNhdmUgcGFuZWxzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpIGIvU291cmNlL1dlYktpdDIvVGFyZ2V0
LnByaQppbmRleCA3YmQ0YTcyLi40OGRlZTBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9U
YXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJLaXQyL1RhcmdldC5wcmkKQEAgLTE3Myw2ICsxNzMs
NyBAQCBIRUFERVJTICs9IFwKICAgICBVSVByb2Nlc3MvQVBJL3F0L3F3ZWJkb3dubG9hZGl0ZW1f
cC5oIFwKICAgICBVSVByb2Nlc3MvQVBJL3F0L3F3ZWJkb3dubG9hZGl0ZW1fcF9wLmggXAogICAg
IFVJUHJvY2Vzcy9BUEkvcXQvcXdlYnBlcm1pc3Npb25yZXF1ZXN0X3AuaCBcCisgICAgVUlQcm9j
ZXNzL0FQSS9xdC9xdHdlYnNlY3VyaXR5b3JpZ2luX3AuaCBcCiAgICAgVUlQcm9jZXNzL0FQSS9x
dC9xd2VibmF2aWdhdGlvbnJlcXVlc3RfcC5oIFwKICAgICBVSVByb2Nlc3MvQVBJL3F0L3FxdWlj
a3dlYnBhZ2VfcC5oIFwKICAgICBVSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnBhZ2VfcF9wLmgg
XApAQCAtNTAyLDYgKzUwMyw3IEBAIFNPVVJDRVMgKz0gXAogICAgIFVJUHJvY2Vzcy9BUEkvY3Bw
L3F0L1dLVVJMUXQuY3BwIFwKICAgICBVSVByb2Nlc3MvQVBJL3F0L3F3ZWJkb3dubG9hZGl0ZW0u
Y3BwIFwKICAgICBVSVByb2Nlc3MvQVBJL3F0L3F3ZWJwZXJtaXNzaW9ucmVxdWVzdC5jcHAgXAor
ICAgIFVJUHJvY2Vzcy9BUEkvcXQvcXR3ZWJzZWN1cml0eW9yaWdpbi5jcHAgXAogICAgIFVJUHJv
Y2Vzcy9BUEkvcXQvcXdlYm5hdmlnYXRpb25yZXF1ZXN0LmNwcCBcCiAgICAgVUlQcm9jZXNzL0FQ
SS9xdC9xcXVpY2t3ZWJwYWdlLmNwcCBcCiAgICAgVUlQcm9jZXNzL0FQSS9xdC9xd2VibmF2aWdh
dGlvbmhpc3RvcnkuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvcXQvcXR3ZWJzZWN1cml0eW9yaWdpbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL3F0L3F0d2Vic2VjdXJpdHlvcmlnaW4uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjhjYjk5MGYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL3F0L3F0d2Vic2VjdXJpdHlvcmlnaW4uY3BwCkBAIC0wLDAgKzEsODMgQEAKKy8q
CisgICAgQ29weXJpZ2h0IChDKSAyMDEyIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vi
c2lkaWFyeSgtaWVzKQorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICAgTGljZW5zZSBhcyBwdWJsaXNo
ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICAgdmVyc2lvbiAy
IG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgor
CisgICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls
bCBiZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g
dGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91IHNob3VsZCBoYXZl
IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZQorICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIu
ICBJZiBub3QsIHdyaXRlIHRvCisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j
LiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBCb3N0b24sIE1BIDAyMTEw
LTEzMDEsIFVTQS4KKyovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJxdHdlYnNl
Y3VyaXR5b3JpZ2luX3AuaCIKKworI2luY2x1ZGUgPFF0Q29yZS9RRmlsZUluZm8+CisjaW5jbHVk
ZSA8UXRDb3JlL1FTdHJpbmdMaXN0PgorI2luY2x1ZGUgPFNjaGVtZVJlZ2lzdHJ5Lmg+CisjaW5j
bHVkZSA8U2VjdXJpdHlPcmlnaW4uaD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLQmFzZS5oPgorI2lu
Y2x1ZGUgPFdlYktpdDIvV0tSZXRhaW5QdHIuaD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLU2VjdXJp
dHlPcmlnaW4uaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK1F0V2ViU2VjdXJpdHlP
cmlnaW46OlF0V2ViU2VjdXJpdHlPcmlnaW4oUU9iamVjdCogcGFyZW50KQorICAgIDogUU9iamVj
dChwYXJlbnQpCit7Cit9CisKK1F0V2ViU2VjdXJpdHlPcmlnaW46On5RdFdlYlNlY3VyaXR5T3Jp
Z2luKCkKK3sKK30KKworUVN0cmluZyBRdFdlYlNlY3VyaXR5T3JpZ2luOjpob3N0KCkgY29uc3QK
K3sKKyAgICByZXR1cm4gbV91cmwuaG9zdCgpOworfQorCitRU3RyaW5nIFF0V2ViU2VjdXJpdHlP
cmlnaW46OnNjaGVtZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fdXJsLnNjaGVtZSgpOworfQor
CitRU3RyaW5nIFF0V2ViU2VjdXJpdHlPcmlnaW46OnBhdGgoKSBjb25zdAoreworICAgIHJldHVy
biBtX3VybC5wYXRoKCk7Cit9CisKK2ludCBRdFdlYlNlY3VyaXR5T3JpZ2luOjpwb3J0KCkgY29u
c3QKK3sKKyAgICByZXR1cm4gbV91cmwucG9ydCgpOworfQorCit2b2lkIFF0V2ViU2VjdXJpdHlP
cmlnaW46OmFkZExvY2FsU2NoZW1lKGNvbnN0IFFTdHJpbmcmIHNjaGVtZSkKK3sKKyAgICBTY2hl
bWVSZWdpc3RyeTo6cmVnaXN0ZXJVUkxTY2hlbWVBc0xvY2FsKHNjaGVtZSk7Cit9CisKK3ZvaWQg
UXRXZWJTZWN1cml0eU9yaWdpbjo6cmVtb3ZlTG9jYWxTY2hlbWUoY29uc3QgUVN0cmluZyYgc2No
ZW1lKQoreworICAgIFNjaGVtZVJlZ2lzdHJ5OjpyZW1vdmVVUkxTY2hlbWVSZWdpc3RlcmVkQXNM
b2NhbChzY2hlbWUpOworfQorCitRU3RyaW5nTGlzdCBRdFdlYlNlY3VyaXR5T3JpZ2luOjpsb2Nh
bFNjaGVtZXMoKQoreworICAgIFFTdHJpbmdMaXN0IHNjaGVtZXM7CisgICAgY29uc3QgVVJMU2No
ZW1lc01hcCYgbWFwID0gU2NoZW1lUmVnaXN0cnk6OmxvY2FsU2NoZW1lcygpOworICAgIFVSTFNj
aGVtZXNNYXA6OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IG1hcC5lbmQoKTsKKyAgICBmb3IgKFVSTFNj
aGVtZXNNYXA6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbWFwLmJlZ2luKCk7IGl0ICE9IGVuZDsgKytp
dCkgeworICAgICAgICBjb25zdCBRU3RyaW5nIHNjaGVtZSA9ICppdDsKKyAgICAgICAgc2NoZW1l
cy5hcHBlbmQoc2NoZW1lKTsKKyAgICB9CisKKyAgICByZXR1cm4gc2NoZW1lczsKK30KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXR3ZWJzZWN1cml0eW9yaWdp
bl9wLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F0d2Vic2VjdXJpdHlvcmln
aW5fcC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUzMWE2NmMKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F0d2Vic2VjdXJp
dHlvcmlnaW5fcC5oCkBAIC0wLDAgKzEsNjEgQEAKKy8qCisgICAgQ29weXJpZ2h0IChDKSAyMDEy
IE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorCisgICAgVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgorICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljCisgICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbjsgZWl0aGVyCisgICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQg
eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGRp
c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICAgYnV0IFdJ
VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YK
KyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu
ICBTZWUgdGhlIEdOVQorICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y
ZSBkZXRhaWxzLgorCisgICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgIGFsb25nIHdpdGggdGhpcyBs
aWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgICAg
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBG
aWZ0aCBGbG9vciwKKyAgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyovCisjaWZuZGVm
IHF0d2Vic2VjdXJpdHlvcmlnaW5fcF9oCisjZGVmaW5lIHF0d2Vic2VjdXJpdHlvcmlnaW5fcF9o
CisKKyNpbmNsdWRlICJxd2Via2l0Z2xvYmFsLmgiCisKKyNpbmNsdWRlIDxRdENvcmUvUURhdGFT
dHJlYW0+CisjaW5jbHVkZSA8UXRDb3JlL1FPYmplY3Q+CisjaW5jbHVkZSA8UXRDb3JlL1FTdHJp
bmc+CisjaW5jbHVkZSA8UXRDb3JlL1FVcmw+CisjaW5jbHVkZSA8UXRDb3JlL3FzaGFyZWRkYXRh
Lmg+CisKK2NsYXNzIFFXRUJLSVRfRVhQT1JUIFF0V2ViU2VjdXJpdHlPcmlnaW4gOiBwdWJsaWMg
UU9iamVjdCB7CisgICAgUV9PQkpFQ1QKKyAgICBRX1BST1BFUlRZKFFTdHJpbmcgc2NoZW1lIFJF
QUQgc2NoZW1lIENPTlNUQU5UKQorICAgIFFfUFJPUEVSVFkoUVN0cmluZyBob3N0IFJFQUQgaG9z
dCBDT05TVEFOVCkKKyAgICBRX1BST1BFUlRZKGludCBwb3J0IFJFQUQgcG9ydCBDT05TVEFOVCkK
KyAgICBRX1BST1BFUlRZKFFTdHJpbmcgcGF0aCBSRUFEIHBhdGggQ09OU1RBTlQpCisKK3B1Ymxp
YzoKKyAgICBRdFdlYlNlY3VyaXR5T3JpZ2luKFFPYmplY3QqIHBhcmVudCA9IDApOworICAgIHZp
cnR1YWwgflF0V2ViU2VjdXJpdHlPcmlnaW4oKTsKKworICAgIFFTdHJpbmcgc2NoZW1lKCkgY29u
c3Q7CisgICAgUVN0cmluZyBob3N0KCkgY29uc3Q7CisgICAgaW50IHBvcnQoKSBjb25zdDsKKyAg
ICBRU3RyaW5nIHBhdGgoKSBjb25zdDsKKworICAgIC8vIFVzZWQgdG8gc2V0IHNlY3VyaXR5IGlu
Zm9ybWF0aW9uIGluIGEgcGVybWlzc2lvbiByZXF1ZXN0IGV2ZW50IChlLmcuCisgICAgLy8gZ2Vv
bG9jYXRpb24gcGVybWlzc2lvbikKKyAgICB2b2lkIHNldFNjaGVtZShjb25zdCBRU3RyaW5nJiBz
Y2hlbWUpIHsgbV91cmwuc2V0U2NoZW1lKHNjaGVtZSk7IH0KKyAgICB2b2lkIHNldEhvc3QoY29u
c3QgUVN0cmluZyYgaG9zdCkgeyBtX3VybC5zZXRIb3N0KGhvc3QpOyB9CisgICAgdm9pZCBzZXRQ
YXRoKGNvbnN0IFFTdHJpbmcmIHBhdGgpIHsgbV91cmwuc2V0UGF0aChwYXRoKTsgfQorICAgIHZv
aWQgc2V0UG9ydChpbnQgcG9ydCkgeyBtX3VybC5zZXRQb3J0KHBvcnQpOyB9CisKKyAgICBzdGF0
aWMgdm9pZCBhZGRMb2NhbFNjaGVtZShjb25zdCBRU3RyaW5nJiBzY2hlbWUpOworICAgIHN0YXRp
YyB2b2lkIHJlbW92ZUxvY2FsU2NoZW1lKGNvbnN0IFFTdHJpbmcmIHNjaGVtZSk7CisgICAgc3Rh
dGljIFFTdHJpbmdMaXN0IGxvY2FsU2NoZW1lcygpOworCitwcml2YXRlOgorICAgIFFVcmwgbV91
cmw7Cit9OworCisjZW5kaWYgLy8gcXR3ZWJzZWN1cml0eW9yaWdpbl9wX2gKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnBlcm1pc3Npb25yZXF1ZXN0LmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnBlcm1pc3Npb25yZXF1ZXN0
LmNwcAppbmRleCAxNmE0Mzg1Li5jNGMxYWY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL3F0L3F3ZWJwZXJtaXNzaW9ucmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2VicGVybWlzc2lvbnJlcXVlc3QuY3BwCkBAIC0zNCw3
ICszNCwxNSBAQCBwdWJsaWM6CiAgICAgICAgICwgcmVxdWVzdChwZXJtaXNzaW9uUmVxdWVzdCkK
ICAgICAgICAgLCBhbGxvdyhmYWxzZSkKICAgICB7CisgICAgICAgIFdLUmV0YWluUHRyPFdLU3Ry
aW5nUmVmPiB1cmwgPSBhZG9wdFdLKFdLU2VjdXJpdHlPcmlnaW5Db3B5UHJvdG9jb2wob3JpZ2lu
LmdldCgpKSk7CisgICAgICAgIHNlY3VyaXR5SW5mby5zZXRTY2hlbWUoV0tTdHJpbmdDb3B5UVN0
cmluZyh1cmwuZ2V0KCkpKTsKKworICAgICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gaG9z
dCA9IGFkb3B0V0soV0tTZWN1cml0eU9yaWdpbkNvcHlIb3N0KG9yaWdpbi5nZXQoKSkpOworICAg
ICAgICBzZWN1cml0eUluZm8uc2V0SG9zdChXS1N0cmluZ0NvcHlRU3RyaW5nKGhvc3QuZ2V0KCkp
KTsKKworICAgICAgICBzZWN1cml0eUluZm8uc2V0UG9ydChzdGF0aWNfY2FzdDxpbnQ+KFdLU2Vj
dXJpdHlPcmlnaW5HZXRQb3J0KG9yaWdpbi5nZXQoKSkpKTsKICAgICB9CisKICAgICB+UVdlYlBl
cm1pc3Npb25SZXF1ZXN0UHJpdmF0ZSgpCiAgICAgewogICAgIH0KQEAgLTQyLDYgKzUwLDcgQEAg
cHVibGljOgogICAgIFdLUmV0YWluUHRyPFdLU2VjdXJpdHlPcmlnaW5SZWY+IG9yaWdpbjsKICAg
ICBRV2ViUGVybWlzc2lvblJlcXVlc3Q6OlJlcXVlc3RUeXBlIHR5cGU7CiAgICAgV0tSZXRhaW5Q
dHI8V0tHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0UmVmPiByZXF1ZXN0OworICAgIFF0V2Vi
U2VjdXJpdHlPcmlnaW4gc2VjdXJpdHlJbmZvOwogICAgIGJvb2wgYWxsb3c7CiB9OwogCkBAIC04
OCwxOSArOTcsOCBAQCBib29sIFFXZWJQZXJtaXNzaW9uUmVxdWVzdDo6YWxsb3coKSBjb25zdAog
ICAgIHJldHVybiBkLT5hbGxvdzsKIH0KIAotUVN0cmluZyBRV2ViUGVybWlzc2lvblJlcXVlc3Q6
OnNjaGVtZSgpIGNvbnN0Ci17Ci0gICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHVybCA9IGFk
b3B0V0soV0tTZWN1cml0eU9yaWdpbkNvcHlQcm90b2NvbChkLT5vcmlnaW4uZ2V0KCkpKTsKLSAg
ICByZXR1cm4gV0tTdHJpbmdDb3B5UVN0cmluZyh1cmwuZ2V0KCkpOwotfQotCi1RU3RyaW5nIFFX
ZWJQZXJtaXNzaW9uUmVxdWVzdDo6aG9zdCgpIGNvbnN0CitRdFdlYlNlY3VyaXR5T3JpZ2luKiBR
V2ViUGVybWlzc2lvblJlcXVlc3Q6OnNlY3VyaXR5T3JpZ2luKCkKIHsKLSAgICBXS1JldGFpblB0
cjxXS1N0cmluZ1JlZj4gb3JpZ2luID0gYWRvcHRXSyhXS1NlY3VyaXR5T3JpZ2luQ29weUhvc3Qo
ZC0+b3JpZ2luLmdldCgpKSk7Ci0gICAgcmV0dXJuIFdLU3RyaW5nQ29weVFTdHJpbmcob3JpZ2lu
LmdldCgpKTsKKyAgICByZXR1cm4gJihkLT5zZWN1cml0eUluZm8pOwogfQogCi1pbnQgUVdlYlBl
cm1pc3Npb25SZXF1ZXN0Ojpwb3J0KCkgY29uc3QKLXsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
aW50PihXS1NlY3VyaXR5T3JpZ2luR2V0UG9ydChkLT5vcmlnaW4uZ2V0KCkpKTsKLX0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnBlcm1pc3Npb25yZXF1
ZXN0X3AuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnBlcm1pc3Npb25y
ZXF1ZXN0X3AuaAppbmRleCA1ODI0YzRjLi40NzA4YjcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwZXJtaXNzaW9ucmVxdWVzdF9wLmgKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2VicGVybWlzc2lvbnJlcXVlc3RfcC5oCkBA
IC0yMCw2ICsyMCw3IEBACiAjaWZuZGVmIHF3ZWJwZXJtaXNzaW9ucmVxdWVzdF9wX2gKICNkZWZp
bmUgcXdlYnBlcm1pc3Npb25yZXF1ZXN0X3BfaAogCisjaW5jbHVkZSAicXR3ZWJzZWN1cml0eW9y
aWdpbl9wLmgiCiAjaW5jbHVkZSAicXdlYmtpdGdsb2JhbC5oIgogCiAjaW5jbHVkZSA8UXRDb3Jl
L1FPYmplY3Q+CkBAIC0zMiwxMCArMzMsOCBAQCBjbGFzcyBRV2ViUGVybWlzc2lvblJlcXVlc3RQ
cml2YXRlOwogY2xhc3MgUVdFQktJVF9FWFBPUlQgUVdlYlBlcm1pc3Npb25SZXF1ZXN0IDogcHVi
bGljIFFPYmplY3QgewogICAgIFFfT0JKRUNUCiAgICAgUV9QUk9QRVJUWShib29sIGFsbG93IFJF
QUQgYWxsb3cgV1JJVEUgc2V0QWxsb3cpCi0gICAgUV9QUk9QRVJUWShSZXF1ZXN0VHlwZSB0eXBl
IFJFQUQgdHlwZSkKLSAgICBRX1BST1BFUlRZKFFTdHJpbmcgc2NoZW1lIFJFQUQgc2NoZW1lKQot
ICAgIFFfUFJPUEVSVFkoUVN0cmluZyBob3N0IFJFQUQgaG9zdCkKLSAgICBRX1BST1BFUlRZKGlu
dCBwb3J0IFJFQUQgcG9ydCkKKyAgICBRX1BST1BFUlRZKFJlcXVlc3RUeXBlIHR5cGUgUkVBRCB0
eXBlIENPTlNUQU5UKQorICAgIFFfUFJPUEVSVFkoUXRXZWJTZWN1cml0eU9yaWdpbiogb3JpZ2lu
IFJFQUQgc2VjdXJpdHlPcmlnaW4pCiAgICAgUV9FTlVNUyhSZXF1ZXN0VHlwZSkKIAogcHVibGlj
OgpAQCAtNDgsMTIgKzQ3LDEwIEBAIHB1YmxpYzoKIAogICAgIFJlcXVlc3RUeXBlIHR5cGUoKSBj
b25zdDsKICAgICBib29sIGFsbG93KCkgY29uc3Q7Ci0gICAgUVN0cmluZyBzY2hlbWUoKSBjb25z
dDsKLSAgICBRU3RyaW5nIGhvc3QoKSBjb25zdDsKLSAgICBpbnQgcG9ydCgpIGNvbnN0OwogCiBw
dWJsaWMgUV9TTE9UUzoKICAgICB2b2lkIHNldEFsbG93KGJvb2wpOworICAgIFF0V2ViU2VjdXJp
dHlPcmlnaW4qIHNlY3VyaXR5T3JpZ2luKCk7CiAKIHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNz
IFFXZWJQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL1dlYlZpZXcvdHN0X29yaWdpbi5xbWwg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL1dlYlZpZXcv
dHN0X29yaWdpbi5xbWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTdkNjQy
MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVz
dHMvcW1sdGVzdHMvV2ViVmlldy90c3Rfb3JpZ2luLnFtbApAQCAtMCwwICsxLDU3IEBACitpbXBv
cnQgUXRRdWljayAyLjAKK2ltcG9ydCBRdFRlc3QgMS4wCitpbXBvcnQgUXRXZWJLaXQgMy4wCitp
bXBvcnQgUXRXZWJLaXQuZXhwZXJpbWVudGFsIDMuMAorCitXZWJWaWV3IHsKKyAgICBpZDogd2Vi
VmlldworICAgIHdpZHRoOiAyMDAKKyAgICBoZWlnaHQ6IDIwMAorCisgICAgcHJvcGVydHkgYm9v
bCBzdWNjZXNzOiB0cnVlCisgICAgcHJvcGVydHkgaW50IHBvcnQ6IDAKKyAgICBwcm9wZXJ0eSBz
dHJpbmcgc2NoZW1lOiAiZmlsZSIKKworICAgIFNpZ25hbFNweSB7CisgICAgICAgIGlkOiBzcHkK
KyAgICAgICAgdGFyZ2V0OiBleHBlcmltZW50YWwKKyAgICAgICAgc2lnbmFsTmFtZTogInBlcm1p
c3Npb25SZXF1ZXN0ZWQiCisgICAgfQorCisgICAgZXhwZXJpbWVudGFsLm9uUGVybWlzc2lvblJl
cXVlc3RlZDogeworICAgICAgICBpZiAocGVybWlzc2lvbi5vcmlnaW4ucG9ydCAhPSB3ZWJWaWV3
LnBvcnQpIHsKKyAgICAgICAgICAgIGNvbnNvbGUubG9nKCJFeHBlY3RlZCBwb3J0IHZhbHVlIHNo
b3VsZCBiZSB6ZXJvLiIpCisgICAgICAgICAgICB3ZWJWaWV3LnN1Y2Nlc3MgPSBmYWxzZQorICAg
ICAgICB9CisKKyAgICAgICAgaWYgKHBlcm1pc3Npb24ub3JpZ2luLnNjaGVtZSAhPSB3ZWJWaWV3
LnNjaGVtZSkgeworICAgICAgICAgICAgY29uc29sZS5sb2coIkV4cGVjdGVkIHNjaGVtZSBzaG91
bGQgYmUgXCJmaWxlXCIuIikKKyAgICAgICAgICAgIHdlYlZpZXcuc3VjY2VzcyA9IGZhbHNlCisg
ICAgICAgIH0KKyAgICB9CisKKyAgICBUZXN0Q2FzZSB7CisgICAgICAgIG5hbWU6ICJXZWJWaWV3
U2VjdXJpdHlPcmlnaW4iCisKKyAgICAgICAgLy8gRGVsYXllZCB3aW5kb3dTaG93biB0byB3b3Jr
YXJvdW5kIHByb2JsZW1zIHdpdGggUXQ1IGluIGRlYnVnIG1vZGUuCisgICAgICAgIHdoZW46IGZh
bHNlCisgICAgICAgIFRpbWVyIHsKKyAgICAgICAgICAgIHJ1bm5pbmc6IHBhcmVudC53aW5kb3dT
aG93bgorICAgICAgICAgICAgcmVwZWF0OiBmYWxzZQorICAgICAgICAgICAgaW50ZXJ2YWw6IDEK
KyAgICAgICAgICAgIG9uVHJpZ2dlcmVkOiBwYXJlbnQud2hlbiA9IHRydWUKKyAgICAgICAgfQor
CisgICAgICAgIGZ1bmN0aW9uIGluaXQoKSB7CisgICAgICAgICAgICBzcHkuY2xlYXIoKQorICAg
ICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gdGVzdF9wZXJtaXNzaW9uUmVxdWVzdCgpIHsKKyAg
ICAgICAgICAgIGNvbXBhcmUoc3B5LmNvdW50LCAwKQorICAgICAgICAgICAgd2ViVmlldy5sb2Fk
KFF0LnJlc29sdmVkVXJsKCIuLi9jb21tb24vZ2VvbG9jYXRpb24uaHRtbCIpKQorICAgICAgICAg
ICAgc3B5LndhaXQoKQorICAgICAgICAgICAgY29tcGFyZShzcHkuY291bnQsIDEpCisgICAgICAg
ICAgICBjb21wYXJlKHdlYlZpZXcuc3VjY2VzcywgdHJ1ZSkKKyAgICAgICAgfQorICAgIH0KK30K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVz
dHMvcW1sdGVzdHMucHJvIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9x
bWx0ZXN0cy9xbWx0ZXN0cy5wcm8KaW5kZXggYzhjZTg3YS4uNTA4MTljMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9xbWx0ZXN0cy5w
cm8KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9x
bWx0ZXN0cy5wcm8KQEAgLTI5LDQgKzI5LDUgQEAgT1RIRVJfRklMRVMgKz0gXAogICAgIFdlYlZp
ZXcvdHN0X3ByZWZlcmVuY2VzLnFtbCBcCiAgICAgV2ViVmlldy90c3RfcHJvcGVydGllcy5xbWwg
XAogICAgIFdlYlZpZXcvdHN0X3RpdGxlQ2hhbmdlZC5xbWwgXAotICAgIFdlYlZpZXcvdHN0X2Fw
cGxpY2F0aW9uU2NoZW1lLnFtbAorICAgIFdlYlZpZXcvdHN0X2FwcGxpY2F0aW9uU2NoZW1lLnFt
bCBcCisgICAgV2ViVmlldy90c3Rfb3JpZ2luLnFtbApkaWZmIC0tZ2l0IGEvU291cmNlL3F0d2Vi
a2l0LWV4cG9ydC5tYXAgYi9Tb3VyY2UvcXR3ZWJraXQtZXhwb3J0Lm1hcAppbmRleCBiYTJlMmZi
Li5iZjEzNzc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvcXR3ZWJraXQtZXhwb3J0Lm1hcAorKysgYi9T
b3VyY2UvcXR3ZWJraXQtZXhwb3J0Lm1hcApAQCAtMTU2LDcgKzE1Niw5IEBAIHF3a18xLjAgewog
ICAgICAgICBRUXVpY2tOZXR3b3JrUmVxdWVzdDo6KjsKICAgICAgICAgKlFRdWlja05ldHdvcmtS
ZXBseTsKICAgICAgICAgUVF1aWNrTmV0d29ya1JlcGx5OjoqOwotCisgICAgICAgICpRdFdlYlNl
Y3VyaXR5T3JpZ2luOworICAgICAgICBub24tdmlydHVhbD90aHVuaz90bz9RdFdlYlNlY3VyaXR5
T3JpZ2luKjsKKyAgICAgICAgUXRXZWJTZWN1cml0eU9yaWdpbjo6KjsKIAogICAgICAgICAjIFdl
YktpdCAyIEMgQVBJIG1hbmdsZWQgaW4gQysrCiAgICAgICAgIFdLU3RyaW5nQ29weVFTdHJpbmcq
OwotLSAKMS43LjUuNAoK
</data>
<flag name="review"
          id="126326"
          type_id="1"
          status="-"
          setter="hausmann"
    />
    <flag name="commit-queue"
          id="126327"
          type_id="3"
          status="-"
          setter="hausmann"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>126979</attachid>
            <date>2012-02-14 07:59:21 -0800</date>
            <delta_ts>2012-02-15 18:57:10 -0800</delta_ts>
            <desc>Adapt to recent trunk changes (export map/qml imports), removed the static methods</desc>
            <filename>origin_step16.patch</filename>
            <type>text/plain</type>
            <size>15420</size>
            <attacher name="Adenilson Cavalcanti Silva">savagobr</attacher>
            
              <data encoding="base64">RnJvbSBlYzZiNDlmNWJmN2MwMGUwOGU3OTI3YWU2Mzk5NWJkOTQwY2Q5ZmQyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBZGVuaWxzb24gQ2F2YWxjYW50aSA8Y2F2YWxjYW50aWlAZ21h
aWwuY29tPgpEYXRlOiBTdW4sIDIyIEphbiAyMDEyIDAwOjA2OjUyIC0wNDAwClN1YmplY3Q6IFtQ
QVRDSF0gUHJldmlvdXMgZml4ZWQgKHBsdXMgQ2hhbmdlTG9nKSwgcmVtb3ZlZCB1bm5lY2Vzc2Fy
eSBoZWFkZXIKIGZpbGUsIGVsc2UgY2xhdXNlLCByZW1vdmVkIHJlZHVuZGFudCBjaGVja3MsIGNo
YW5nZWQgdGhlCiB0ZXN0LCB0aGUgbmFtZSBvZiBzZWN1cml0eSBvcmlnaW4gcHJvcGVydHksIHJl
bW92ZWQKIDo6Y2FuQWNjZXNzKCkvdXJsKCkgbWV0aG9kcyBhbmQgc3RyZWFtIG9wZXJhdG9ycywg
dXBkYXRlZAogY2hhbmdlbG9nLCByZW1vdmVkIHN0YXRpYyBtZXRob2RzLgoKU2lnbmVkLW9mZi1i
eTogQWRlbmlsc29uIENhdmFsY2FudGkgPGNhdmFsY2FudGlpQGdtYWlsLmNvbT4KLS0tCiBTb3Vy
Y2UvV2ViS2l0L3F0L0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTQgKysr
KysKIFNvdXJjZS9XZWJLaXQvcXQvZGVjbGFyYXRpdmUvcGx1Z2luLmNwcCAgICAgICAgICAgIHwg
ICAgMyArCiBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAg
ICB8ICAgMzEgKysrKysrKysrKwogU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaSAgICAgICAgICAg
ICAgICAgICAgICAgICAgfCAgICAyICsKIC4uLi9VSVByb2Nlc3MvQVBJL3F0L3F0d2Vic2VjdXJp
dHlvcmlnaW4uY3BwICAgICAgIHwgICA2MCArKysrKysrKysrKysrKysrKysrKwogLi4uL1VJUHJv
Y2Vzcy9BUEkvcXQvcXR3ZWJzZWN1cml0eW9yaWdpbl9wLmggICAgICAgfCAgIDU3ICsrKysrKysr
KysrKysrKysrKysKIC4uLi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwZXJtaXNzaW9ucmVxdWVzdC5j
cHAgICAgIHwgICAyNCArKysrLS0tLQogLi4uL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnBlcm1pc3Np
b25yZXF1ZXN0X3AuaCAgICAgfCAgIDExICstLQogLi4uL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMv
cW1sdGVzdHMvV2ViVmlldy5wcm8gICAgfCAgICAzICstCiAuLi4vQVBJL3F0L3Rlc3RzL3FtbHRl
c3RzL1dlYlZpZXcvdHN0X29yaWdpbi5xbWwgICB8ICAgNTcgKysrKysrKysrKysrKysrKysrKwog
MTAgZmlsZXMgY2hhbmdlZCwgMjQxIGluc2VydGlvbnMoKyksIDIxIGRlbGV0aW9ucygtKQogY3Jl
YXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXR3ZWJzZWN1
cml0eW9yaWdpbi5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL3F0L3F0d2Vic2VjdXJpdHlvcmlnaW5fcC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3L3RzdF9v
cmlnaW4ucW1sCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L3F0L0NoYW5nZUxvZwppbmRleCA2YjVmOTBmLi4wMWU5YTcyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEyLTAyLTAxICBBZGVuaWxzb24gQ2F2YWxjYW50aSAg
PGNhdmFsY2FudGlpQGdtYWlsLmNvbT4KKworICAgICAgICBbUXRdW1dLMl0gU3BsaXQgUVdlYlBl
cm1pc3Npb25SZXF1ZXN0IGludG8gUVdlYlNlY3VyaXR5T3JpZ2luCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzIxNQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGluZyBhIGNsYXNzIHRvIGFjY2VzcyBz
ZWN1cml0eSBpbmZvcm1hdGlvbiBkYXRhCisgICAgICAgIChlLmcuIHBvcnQvc2NoZW1lL2V0Yyks
CisgICAgICAgIHdoaWxlIGFsbG93aW5nIGl0IHRvIGJlIGhhbmRsZWQgaW4gUU1MIHNpZGUuCisK
KyAgICAgICAgKiBkZWNsYXJhdGl2ZS9wbHVnaW4uY3BwOgorICAgICAgICAoV2ViS2l0UW1sUGx1
Z2luOjpyZWdpc3RlclR5cGVzKToKKwogMjAxMi0wMi0xMyAgRW5yaWNhIENhc3VjY2kgIDxlbnJp
Y2FAYXBwbGUuY29tPgogCiAgICAgICAgIEJ1aWxkIGZpeC4gVW5yZXZpZXdlZC4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvcXQvZGVjbGFyYXRpdmUvcGx1Z2luLmNwcCBiL1NvdXJjZS9XZWJL
aXQvcXQvZGVjbGFyYXRpdmUvcGx1Z2luLmNwcAppbmRleCA2NDYzOGU0Li5lMmYwZmIzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L2RlY2xhcmF0aXZlL3BsdWdpbi5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9xdC9kZWNsYXJhdGl2ZS9wbHVnaW4uY3BwCkBAIC0yNSw2ICsyNSw3IEBACiAj
aWYgZGVmaW5lZChIQVZFX1dFQktJVDIpCiAjaW5jbHVkZSAicXF1aWNrd2VicGFnZV9wLmgiCiAj
aW5jbHVkZSAicXF1aWNrd2Vidmlld19wLmgiCisjaW5jbHVkZSAicXR3ZWJzZWN1cml0eW9yaWdp
bl9wLmgiCiAjaW5jbHVkZSAicXdlYmljb25pbWFnZXByb3ZpZGVyX3AuaCIKICNpbmNsdWRlICJx
d2VibmF2aWdhdGlvbnJlcXVlc3RfcC5oIgogI2luY2x1ZGUgInF3ZWJwZXJtaXNzaW9ucmVxdWVz
dF9wLmgiCkBAIC02NSw2ICs2Niw4IEBAIHB1YmxpYzoKICAgICAgICAgcW1sUmVnaXN0ZXJVbmNy
ZWF0YWJsZVR5cGU8UU5ldHdvcmtSZXBseT4odXJpLCAzLCAwLCAiTmV0d29ya1JlcGx5IiwgUU9i
amVjdDo6dHIoIkNhbm5vdCBjcmVhdGUgc2VwYXJhdGUgaW5zdGFuY2Ugb2YgTmV0d29ya1JlcGx5
IikpOwogICAgICAgICBxbWxSZWdpc3RlclVuY3JlYXRhYmxlVHlwZTxRV2ViUGVybWlzc2lvblJl
cXVlc3Q+KHVyaSwgMywgMCwgIlBlcm1pc3Npb25SZXF1ZXN0IiwgUU9iamVjdDo6dHIoIkNhbm5v
dCBjcmVhdGUgc2VwYXJhdGUgaW5zdGFuY2Ugb2YgUGVybWlzc2lvblJlcXVlc3QiKSk7CiAgICAg
ICAgIHFtbFJlZ2lzdGVyVW5jcmVhdGFibGVUeXBlPFFXZWJOYXZpZ2F0aW9uUmVxdWVzdD4odXJp
LCAzLCAwLCAiTmF2aWdhdGlvblJlcXVlc3QiLCBRT2JqZWN0Ojp0cigiQ2Fubm90IGNyZWF0ZSBz
ZXBhcmF0ZSBpbnN0YW5jZSBvZiBOYXZpZ2F0aW9uUmVxdWVzdCIpKTsKKyAgICAgICAgcW1sUmVn
aXN0ZXJVbmNyZWF0YWJsZVR5cGU8UXRXZWJTZWN1cml0eU9yaWdpbj4odXJpLCAzLCAwLCAiU2Vj
dXJpdHlPcmlnaW4iLCBRT2JqZWN0Ojp0cigiQ2Fubm90IGNyZWF0ZSBzZXBhcmF0ZSBpbnN0YW5j
ZSBvZiBTZWN1cml0eU9yaWdpbiIpKTsKKwogI2VuZGlmCiAgICAgfQogfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRl
eCAyYWJmMDgwLi4zYTlhZGYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMTItMDIt
MDEgIEFkZW5pbHNvbiBDYXZhbGNhbnRpICA8Y2F2YWxjYW50aWlAZ21haWwuY29tPgorCisgICAg
ICAgIFtRdF1bV0syXSBTcGxpdCBRV2ViUGVybWlzc2lvblJlcXVlc3QgaW50byBRV2ViU2VjdXJp
dHlPcmlnaW4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTczMjE1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
SW50cm9kdWNpbmcgYSBuZXcgY2xhc3MgdG8gZXhwb3NlIHNlY3VyaXR5IG9yaWdpbiBpbmZvcm1h
dGlvbgorICAgICAgICAocG9ydC9zY2hlbWUvZXRjKSwgdXNlZnVsIGZvciBpbnNwZWN0aW5nIHRo
ZSBvcmlnaW4gb2YgcGVybWlzc2lvbgorICAgICAgICByZXF1ZXN0cy4KKworICAgICAgICAqIFRh
cmdldC5wcmk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xdHdlYnNlY3VyaXR5b3JpZ2lu
LmNwcDogQWRkZWQuCisgICAgICAgIChRdFdlYlNlY3VyaXR5T3JpZ2luOjpRdFdlYlNlY3VyaXR5
T3JpZ2luKToKKyAgICAgICAgKFF0V2ViU2VjdXJpdHlPcmlnaW46On5RdFdlYlNlY3VyaXR5T3Jp
Z2luKToKKyAgICAgICAgKFF0V2ViU2VjdXJpdHlPcmlnaW46Omhvc3QpOgorICAgICAgICAoUXRX
ZWJTZWN1cml0eU9yaWdpbjo6c2NoZW1lKToKKyAgICAgICAgKFF0V2ViU2VjdXJpdHlPcmlnaW46
OnBhdGgpOgorICAgICAgICAoUXRXZWJTZWN1cml0eU9yaWdpbjo6cG9ydCk6CisgICAgICAgIChR
dFdlYlNlY3VyaXR5T3JpZ2luOjpzZXRIb3N0KToKKyAgICAgICAgKFF0V2ViU2VjdXJpdHlPcmln
aW46OnNldFNjaGVtZSk6CisgICAgICAgIChRdFdlYlNlY3VyaXR5T3JpZ2luOjpzZXRQYXRoKToK
KyAgICAgICAgKFF0V2ViU2VjdXJpdHlPcmlnaW46OnNldFBvcnQpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvcXQvcXR3ZWJzZWN1cml0eW9yaWdpbl9wLmg6IEFkZGVkLgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvV2ViVmlldy90c3Rfb3JpZ2luLnFtbDogQWRk
ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xd2VicGVybWlzc2lvbnJlcXVlc3QuY3Bw
OgorICAgICAgICAoUVdlYlBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZTo6UVdlYlBlcm1pc3Npb25S
ZXF1ZXN0UHJpdmF0ZSk6CisgICAgICAgIChRV2ViUGVybWlzc2lvblJlcXVlc3Q6OnNlY3VyaXR5
T3JpZ2luKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3F3ZWJwZXJtaXNzaW9ucmVxdWVz
dF9wLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9xbWx0ZXN0
cy5wcm86CisKIDIwMTItMDItMTMgIEVucmljYSBDYXN1Y2NpICA8ZW5yaWNhQGFwcGxlLmNvbT4K
IAogICAgICAgICBSZWZhY3RvciBNYWMgcGxhdGZvcm0gaW1wbGVtZW50YXRpb24gb2YgdGhlIFBh
c3RlYm9hcmQgY2xhc3MgdG8gdXNlIFBsYXRmb3JtIFN0cmF0ZWdpZXMuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpIGIvU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaQppbmRl
eCBjZWRlNGVhLi4xNjUwNzMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJp
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1RhcmdldC5wcmkKQEAgLTE3Myw2ICsxNzMsNyBAQCBIRUFE
RVJTICs9IFwKICAgICBVSVByb2Nlc3MvQVBJL3F0L3F3ZWJkb3dubG9hZGl0ZW1fcC5oIFwKICAg
ICBVSVByb2Nlc3MvQVBJL3F0L3F3ZWJkb3dubG9hZGl0ZW1fcF9wLmggXAogICAgIFVJUHJvY2Vz
cy9BUEkvcXQvcXdlYnBlcm1pc3Npb25yZXF1ZXN0X3AuaCBcCisgICAgVUlQcm9jZXNzL0FQSS9x
dC9xdHdlYnNlY3VyaXR5b3JpZ2luX3AuaCBcCiAgICAgVUlQcm9jZXNzL0FQSS9xdC9xd2VibmF2
aWdhdGlvbnJlcXVlc3RfcC5oIFwKICAgICBVSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnBhZ2Vf
cC5oIFwKICAgICBVSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnBhZ2VfcF9wLmggXApAQCAtNTAw
LDYgKzUwMSw3IEBAIFNPVVJDRVMgKz0gXAogICAgIFVJUHJvY2Vzcy9BUEkvY3BwL3F0L1dLVVJM
UXQuY3BwIFwKICAgICBVSVByb2Nlc3MvQVBJL3F0L3F3ZWJkb3dubG9hZGl0ZW0uY3BwIFwKICAg
ICBVSVByb2Nlc3MvQVBJL3F0L3F3ZWJwZXJtaXNzaW9ucmVxdWVzdC5jcHAgXAorICAgIFVJUHJv
Y2Vzcy9BUEkvcXQvcXR3ZWJzZWN1cml0eW9yaWdpbi5jcHAgXAogICAgIFVJUHJvY2Vzcy9BUEkv
cXQvcXdlYm5hdmlnYXRpb25yZXF1ZXN0LmNwcCBcCiAgICAgVUlQcm9jZXNzL0FQSS9xdC9xcXVp
Y2t3ZWJwYWdlLmNwcCBcCiAgICAgVUlQcm9jZXNzL0FQSS9xdC9xd2VibmF2aWdhdGlvbmhpc3Rv
cnkuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXR3
ZWJzZWN1cml0eW9yaWdpbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F0
d2Vic2VjdXJpdHlvcmlnaW4uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjQ0OTFkYzQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L3F0L3F0d2Vic2VjdXJpdHlvcmlnaW4uY3BwCkBAIC0wLDAgKzEsNjAgQEAKKy8qCisgICAgQ29w
eXJpZ2h0IChDKSAyMDEyIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgt
aWVzKQorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICAgdmVyc2lvbiAyIG9mIHRoZSBM
aWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICAgVGhp
cyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm
dWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp
ZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk
IGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgIGFs
b25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3Qs
IHdyaXRlIHRvCisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJh
bmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVT
QS4KKyovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJxdHdlYnNlY3VyaXR5b3Jp
Z2luX3AuaCIKKworI2luY2x1ZGUgPFF0Q29yZS9RRmlsZUluZm8+CisjaW5jbHVkZSA8UXRDb3Jl
L1FTdHJpbmdMaXN0PgorI2luY2x1ZGUgPFNjaGVtZVJlZ2lzdHJ5Lmg+CisjaW5jbHVkZSA8U2Vj
dXJpdHlPcmlnaW4uaD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLQmFzZS5oPgorI2luY2x1ZGUgPFdl
YktpdDIvV0tSZXRhaW5QdHIuaD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLU2VjdXJpdHlPcmlnaW4u
aD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK1F0V2ViU2VjdXJpdHlPcmlnaW46OlF0
V2ViU2VjdXJpdHlPcmlnaW4oUU9iamVjdCogcGFyZW50KQorICAgIDogUU9iamVjdChwYXJlbnQp
Cit7Cit9CisKK1F0V2ViU2VjdXJpdHlPcmlnaW46On5RdFdlYlNlY3VyaXR5T3JpZ2luKCkKK3sK
K30KKworUVN0cmluZyBRdFdlYlNlY3VyaXR5T3JpZ2luOjpob3N0KCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gbV91cmwuaG9zdCgpOworfQorCitRU3RyaW5nIFF0V2ViU2VjdXJpdHlPcmlnaW46OnNj
aGVtZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fdXJsLnNjaGVtZSgpOworfQorCitRU3RyaW5n
IFF0V2ViU2VjdXJpdHlPcmlnaW46OnBhdGgoKSBjb25zdAoreworICAgIHJldHVybiBtX3VybC5w
YXRoKCk7Cit9CisKK2ludCBRdFdlYlNlY3VyaXR5T3JpZ2luOjpwb3J0KCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gbV91cmwucG9ydCgpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9xdC9xdHdlYnNlY3VyaXR5b3JpZ2luX3AuaCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvcXQvcXR3ZWJzZWN1cml0eW9yaWdpbl9wLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uZGYwOWZiOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXR3ZWJzZWN1cml0eW9yaWdpbl9wLmgKQEAgLTAsMCArMSw1
NyBAQAorLyoKKyAgICBDb3B5cmlnaHQgKEMpIDIwMTIgTm9raWEgQ29ycG9yYXRpb24gYW5kL29y
IGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICAgbW9kaWZ5IGl0IHVuZGVyIHRo
ZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNlIGFz
IHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2
ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl
cnNpb24uCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh
dCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv
dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgIE1FUkNIQU5UQUJJTElUWSBvciBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICAgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hv
dWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlCisgICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZ
SU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICAgIEJvc3Rvbiwg
TUEgMDIxMTAtMTMwMSwgVVNBLgorKi8KKyNpZm5kZWYgcXR3ZWJzZWN1cml0eW9yaWdpbl9wX2gK
KyNkZWZpbmUgcXR3ZWJzZWN1cml0eW9yaWdpbl9wX2gKKworI2luY2x1ZGUgInF3ZWJraXRnbG9i
YWwuaCIKKworI2luY2x1ZGUgPFF0Q29yZS9RRGF0YVN0cmVhbT4KKyNpbmNsdWRlIDxRdENvcmUv
UU9iamVjdD4KKyNpbmNsdWRlIDxRdENvcmUvUVN0cmluZz4KKyNpbmNsdWRlIDxRdENvcmUvUVVy
bD4KKyNpbmNsdWRlIDxRdENvcmUvcXNoYXJlZGRhdGEuaD4KKworY2xhc3MgUVdFQktJVF9FWFBP
UlQgUXRXZWJTZWN1cml0eU9yaWdpbiA6IHB1YmxpYyBRT2JqZWN0IHsKKyAgICBRX09CSkVDVAor
ICAgIFFfUFJPUEVSVFkoUVN0cmluZyBzY2hlbWUgUkVBRCBzY2hlbWUgQ09OU1RBTlQpCisgICAg
UV9QUk9QRVJUWShRU3RyaW5nIGhvc3QgUkVBRCBob3N0IENPTlNUQU5UKQorICAgIFFfUFJPUEVS
VFkoaW50IHBvcnQgUkVBRCBwb3J0IENPTlNUQU5UKQorICAgIFFfUFJPUEVSVFkoUVN0cmluZyBw
YXRoIFJFQUQgcGF0aCBDT05TVEFOVCkKKworcHVibGljOgorICAgIFF0V2ViU2VjdXJpdHlPcmln
aW4oUU9iamVjdCogcGFyZW50ID0gMCk7CisgICAgdmlydHVhbCB+UXRXZWJTZWN1cml0eU9yaWdp
bigpOworCisgICAgUVN0cmluZyBzY2hlbWUoKSBjb25zdDsKKyAgICBRU3RyaW5nIGhvc3QoKSBj
b25zdDsKKyAgICBpbnQgcG9ydCgpIGNvbnN0OworICAgIFFTdHJpbmcgcGF0aCgpIGNvbnN0Owor
CisgICAgLy8gVXNlZCB0byBzZXQgc2VjdXJpdHkgaW5mb3JtYXRpb24gaW4gYSBwZXJtaXNzaW9u
IHJlcXVlc3QgZXZlbnQgKGUuZy4KKyAgICAvLyBnZW9sb2NhdGlvbiBwZXJtaXNzaW9uKQorICAg
IHZvaWQgc2V0U2NoZW1lKGNvbnN0IFFTdHJpbmcmIHNjaGVtZSkgeyBtX3VybC5zZXRTY2hlbWUo
c2NoZW1lKTsgfQorICAgIHZvaWQgc2V0SG9zdChjb25zdCBRU3RyaW5nJiBob3N0KSB7IG1fdXJs
LnNldEhvc3QoaG9zdCk7IH0KKyAgICB2b2lkIHNldFBhdGgoY29uc3QgUVN0cmluZyYgcGF0aCkg
eyBtX3VybC5zZXRQYXRoKHBhdGgpOyB9CisgICAgdm9pZCBzZXRQb3J0KGludCBwb3J0KSB7IG1f
dXJsLnNldFBvcnQocG9ydCk7IH0KKworcHJpdmF0ZToKKyAgICBRVXJsIG1fdXJsOworfTsKKwor
I2VuZGlmIC8vIHF0d2Vic2VjdXJpdHlvcmlnaW5fcF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwZXJtaXNzaW9ucmVxdWVzdC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwZXJtaXNzaW9ucmVxdWVzdC5jcHAKaW5kZXgg
MTZhNDM4NS4uYzRjMWFmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9xdC9xd2VicGVybWlzc2lvbnJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvcXQvcXdlYnBlcm1pc3Npb25yZXF1ZXN0LmNwcApAQCAtMzQsNyArMzQsMTUgQEAg
cHVibGljOgogICAgICAgICAsIHJlcXVlc3QocGVybWlzc2lvblJlcXVlc3QpCiAgICAgICAgICwg
YWxsb3coZmFsc2UpCiAgICAgeworICAgICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gdXJs
ID0gYWRvcHRXSyhXS1NlY3VyaXR5T3JpZ2luQ29weVByb3RvY29sKG9yaWdpbi5nZXQoKSkpOwor
ICAgICAgICBzZWN1cml0eUluZm8uc2V0U2NoZW1lKFdLU3RyaW5nQ29weVFTdHJpbmcodXJsLmdl
dCgpKSk7CisKKyAgICAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IGhvc3QgPSBhZG9wdFdL
KFdLU2VjdXJpdHlPcmlnaW5Db3B5SG9zdChvcmlnaW4uZ2V0KCkpKTsKKyAgICAgICAgc2VjdXJp
dHlJbmZvLnNldEhvc3QoV0tTdHJpbmdDb3B5UVN0cmluZyhob3N0LmdldCgpKSk7CisKKyAgICAg
ICAgc2VjdXJpdHlJbmZvLnNldFBvcnQoc3RhdGljX2Nhc3Q8aW50PihXS1NlY3VyaXR5T3JpZ2lu
R2V0UG9ydChvcmlnaW4uZ2V0KCkpKSk7CiAgICAgfQorCiAgICAgflFXZWJQZXJtaXNzaW9uUmVx
dWVzdFByaXZhdGUoKQogICAgIHsKICAgICB9CkBAIC00Miw2ICs1MCw3IEBAIHB1YmxpYzoKICAg
ICBXS1JldGFpblB0cjxXS1NlY3VyaXR5T3JpZ2luUmVmPiBvcmlnaW47CiAgICAgUVdlYlBlcm1p
c3Npb25SZXF1ZXN0OjpSZXF1ZXN0VHlwZSB0eXBlOwogICAgIFdLUmV0YWluUHRyPFdLR2VvbG9j
YXRpb25QZXJtaXNzaW9uUmVxdWVzdFJlZj4gcmVxdWVzdDsKKyAgICBRdFdlYlNlY3VyaXR5T3Jp
Z2luIHNlY3VyaXR5SW5mbzsKICAgICBib29sIGFsbG93OwogfTsKIApAQCAtODgsMTkgKzk3LDgg
QEAgYm9vbCBRV2ViUGVybWlzc2lvblJlcXVlc3Q6OmFsbG93KCkgY29uc3QKICAgICByZXR1cm4g
ZC0+YWxsb3c7CiB9CiAKLVFTdHJpbmcgUVdlYlBlcm1pc3Npb25SZXF1ZXN0OjpzY2hlbWUoKSBj
b25zdAotewotICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiB1cmwgPSBhZG9wdFdLKFdLU2Vj
dXJpdHlPcmlnaW5Db3B5UHJvdG9jb2woZC0+b3JpZ2luLmdldCgpKSk7Ci0gICAgcmV0dXJuIFdL
U3RyaW5nQ29weVFTdHJpbmcodXJsLmdldCgpKTsKLX0KLQotUVN0cmluZyBRV2ViUGVybWlzc2lv
blJlcXVlc3Q6Omhvc3QoKSBjb25zdAorUXRXZWJTZWN1cml0eU9yaWdpbiogUVdlYlBlcm1pc3Np
b25SZXF1ZXN0OjpzZWN1cml0eU9yaWdpbigpCiB7Ci0gICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdS
ZWY+IG9yaWdpbiA9IGFkb3B0V0soV0tTZWN1cml0eU9yaWdpbkNvcHlIb3N0KGQtPm9yaWdpbi5n
ZXQoKSkpOwotICAgIHJldHVybiBXS1N0cmluZ0NvcHlRU3RyaW5nKG9yaWdpbi5nZXQoKSk7Cisg
ICAgcmV0dXJuICYoZC0+c2VjdXJpdHlJbmZvKTsKIH0KIAotaW50IFFXZWJQZXJtaXNzaW9uUmVx
dWVzdDo6cG9ydCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PGludD4oV0tTZWN1
cml0eU9yaWdpbkdldFBvcnQoZC0+b3JpZ2luLmdldCgpKSk7Ci19CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwZXJtaXNzaW9ucmVxdWVzdF9wLmggYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwZXJtaXNzaW9ucmVxdWVzdF9wLmgK
aW5kZXggNTgyNGM0Yy4uNDcwOGI3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9xdC9xd2VicGVybWlzc2lvbnJlcXVlc3RfcC5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnBlcm1pc3Npb25yZXF1ZXN0X3AuaApAQCAtMjAsNiArMjAs
NyBAQAogI2lmbmRlZiBxd2VicGVybWlzc2lvbnJlcXVlc3RfcF9oCiAjZGVmaW5lIHF3ZWJwZXJt
aXNzaW9ucmVxdWVzdF9wX2gKIAorI2luY2x1ZGUgInF0d2Vic2VjdXJpdHlvcmlnaW5fcC5oIgog
I2luY2x1ZGUgInF3ZWJraXRnbG9iYWwuaCIKIAogI2luY2x1ZGUgPFF0Q29yZS9RT2JqZWN0PgpA
QCAtMzIsMTAgKzMzLDggQEAgY2xhc3MgUVdlYlBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZTsKIGNs
YXNzIFFXRUJLSVRfRVhQT1JUIFFXZWJQZXJtaXNzaW9uUmVxdWVzdCA6IHB1YmxpYyBRT2JqZWN0
IHsKICAgICBRX09CSkVDVAogICAgIFFfUFJPUEVSVFkoYm9vbCBhbGxvdyBSRUFEIGFsbG93IFdS
SVRFIHNldEFsbG93KQotICAgIFFfUFJPUEVSVFkoUmVxdWVzdFR5cGUgdHlwZSBSRUFEIHR5cGUp
Ci0gICAgUV9QUk9QRVJUWShRU3RyaW5nIHNjaGVtZSBSRUFEIHNjaGVtZSkKLSAgICBRX1BST1BF
UlRZKFFTdHJpbmcgaG9zdCBSRUFEIGhvc3QpCi0gICAgUV9QUk9QRVJUWShpbnQgcG9ydCBSRUFE
IHBvcnQpCisgICAgUV9QUk9QRVJUWShSZXF1ZXN0VHlwZSB0eXBlIFJFQUQgdHlwZSBDT05TVEFO
VCkKKyAgICBRX1BST1BFUlRZKFF0V2ViU2VjdXJpdHlPcmlnaW4qIG9yaWdpbiBSRUFEIHNlY3Vy
aXR5T3JpZ2luKQogICAgIFFfRU5VTVMoUmVxdWVzdFR5cGUpCiAKIHB1YmxpYzoKQEAgLTQ4LDEy
ICs0NywxMCBAQCBwdWJsaWM6CiAKICAgICBSZXF1ZXN0VHlwZSB0eXBlKCkgY29uc3Q7CiAgICAg
Ym9vbCBhbGxvdygpIGNvbnN0OwotICAgIFFTdHJpbmcgc2NoZW1lKCkgY29uc3Q7Ci0gICAgUVN0
cmluZyBob3N0KCkgY29uc3Q7Ci0gICAgaW50IHBvcnQoKSBjb25zdDsKIAogcHVibGljIFFfU0xP
VFM6CiAgICAgdm9pZCBzZXRBbGxvdyhib29sKTsKKyAgICBRdFdlYlNlY3VyaXR5T3JpZ2luKiBz
ZWN1cml0eU9yaWdpbigpOwogCiBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBRV2ViUGVybWlz
c2lvblJlcXVlc3RQcml2YXRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3LnBybyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvV2ViVmlldy5wcm8KaW5kZXggOGNkMTVmZi4uN2Y0
ZTNkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9x
bWx0ZXN0cy9XZWJWaWV3LnBybworKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0
L3Rlc3RzL3FtbHRlc3RzL1dlYlZpZXcucHJvCkBAIC0yNyw0ICsyNyw1IEBAIE9USEVSX0ZJTEVT
ICs9IFwKICAgICBXZWJWaWV3L3RzdF9wcmVmZXJlbmNlcy5xbWwgXAogICAgIFdlYlZpZXcvdHN0
X3Byb3BlcnRpZXMucW1sIFwKICAgICBXZWJWaWV3L3RzdF90aXRsZUNoYW5nZWQucW1sIFwKLSAg
ICBXZWJWaWV3L3RzdF9hcHBsaWNhdGlvblNjaGVtZS5xbWwKKyAgICBXZWJWaWV3L3RzdF9hcHBs
aWNhdGlvblNjaGVtZS5xbWwgXAorICAgIFdlYlZpZXcvdHN0X29yaWdpbi5xbWwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvV2ViVmll
dy90c3Rfb3JpZ2luLnFtbCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMv
cW1sdGVzdHMvV2ViVmlldy90c3Rfb3JpZ2luLnFtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi43MDc0NWQ4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3L3RzdF9vcmlnaW4ucW1sCkBAIC0w
LDAgKzEsNTcgQEAKK2ltcG9ydCBRdFF1aWNrIDIuMAoraW1wb3J0IFF0VGVzdCAxLjAKK2ltcG9y
dCBRdFdlYktpdCAzLjAKK2ltcG9ydCBRdFdlYktpdC5leHBlcmltZW50YWwgMS4wCisKK1dlYlZp
ZXcgeworICAgIGlkOiB3ZWJWaWV3CisgICAgd2lkdGg6IDIwMAorICAgIGhlaWdodDogMjAwCisK
KyAgICBwcm9wZXJ0eSBib29sIHN1Y2Nlc3M6IHRydWUKKyAgICBwcm9wZXJ0eSBpbnQgcG9ydDog
MAorICAgIHByb3BlcnR5IHN0cmluZyBzY2hlbWU6ICJmaWxlIgorCisgICAgU2lnbmFsU3B5IHsK
KyAgICAgICAgaWQ6IHNweQorICAgICAgICB0YXJnZXQ6IGV4cGVyaW1lbnRhbAorICAgICAgICBz
aWduYWxOYW1lOiAicGVybWlzc2lvblJlcXVlc3RlZCIKKyAgICB9CisKKyAgICBleHBlcmltZW50
YWwub25QZXJtaXNzaW9uUmVxdWVzdGVkOiB7CisgICAgICAgIGlmIChwZXJtaXNzaW9uLm9yaWdp
bi5wb3J0ICE9IHdlYlZpZXcucG9ydCkgeworICAgICAgICAgICAgY29uc29sZS5sb2coIkV4cGVj
dGVkIHBvcnQgdmFsdWUgc2hvdWxkIGJlIHplcm8uIikKKyAgICAgICAgICAgIHdlYlZpZXcuc3Vj
Y2VzcyA9IGZhbHNlCisgICAgICAgIH0KKworICAgICAgICBpZiAocGVybWlzc2lvbi5vcmlnaW4u
c2NoZW1lICE9IHdlYlZpZXcuc2NoZW1lKSB7CisgICAgICAgICAgICBjb25zb2xlLmxvZygiRXhw
ZWN0ZWQgc2NoZW1lIHNob3VsZCBiZSBcImZpbGVcIi4iKQorICAgICAgICAgICAgd2ViVmlldy5z
dWNjZXNzID0gZmFsc2UKKyAgICAgICAgfQorICAgIH0KKworICAgIFRlc3RDYXNlIHsKKyAgICAg
ICAgbmFtZTogIldlYlZpZXdTZWN1cml0eU9yaWdpbiIKKworICAgICAgICAvLyBEZWxheWVkIHdp
bmRvd1Nob3duIHRvIHdvcmthcm91bmQgcHJvYmxlbXMgd2l0aCBRdDUgaW4gZGVidWcgbW9kZS4K
KyAgICAgICAgd2hlbjogZmFsc2UKKyAgICAgICAgVGltZXIgeworICAgICAgICAgICAgcnVubmlu
ZzogcGFyZW50LndpbmRvd1Nob3duCisgICAgICAgICAgICByZXBlYXQ6IGZhbHNlCisgICAgICAg
ICAgICBpbnRlcnZhbDogMQorICAgICAgICAgICAgb25UcmlnZ2VyZWQ6IHBhcmVudC53aGVuID0g
dHJ1ZQorICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gaW5pdCgpIHsKKyAgICAgICAgICAg
IHNweS5jbGVhcigpCisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiB0ZXN0X3Blcm1pc3Np
b25SZXF1ZXN0KCkgeworICAgICAgICAgICAgY29tcGFyZShzcHkuY291bnQsIDApCisgICAgICAg
ICAgICB3ZWJWaWV3LmxvYWQoUXQucmVzb2x2ZWRVcmwoIi4uL2NvbW1vbi9nZW9sb2NhdGlvbi5o
dG1sIikpCisgICAgICAgICAgICBzcHkud2FpdCgpCisgICAgICAgICAgICBjb21wYXJlKHNweS5j
b3VudCwgMSkKKyAgICAgICAgICAgIGNvbXBhcmUod2ViVmlldy5zdWNjZXNzLCB0cnVlKQorICAg
ICAgICB9CisgICAgfQorfQotLSAKMS43LjUuNAoK
</data>
<flag name="review"
          id="128962"
          type_id="1"
          status="+"
          setter="kenneth"
    />
    <flag name="commit-queue"
          id="128963"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>127295</attachid>
            <date>2012-02-15 18:57:10 -0800</date>
            <delta_ts>2012-02-16 00:26:16 -0800</delta_ts>
            <desc>Just rebased the patch, style bot probably is broken</desc>
            <filename>origin_step17.patch</filename>
            <type>text/plain</type>
            <size>15463</size>
            <attacher name="Adenilson Cavalcanti Silva">savagobr</attacher>
            
              <data encoding="base64">RnJvbSA2NTQwMTMzMThmOTFlMjU3MTBjNGQwNDg2OWU5NjI5YzcyODA2Yjg2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBZGVuaWxzb24gQ2F2YWxjYW50aSA8Y2F2YWxjYW50aWlAZ21h
aWwuY29tPgpEYXRlOiBTdW4sIDIyIEphbiAyMDEyIDAwOjA2OjUyIC0wNDAwClN1YmplY3Q6IFtQ
QVRDSF0gUHJldmlvdXMgZml4ZWQgKHBsdXMgQ2hhbmdlTG9nKSwgcmVtb3ZlZCB1bm5lY2Vzc2Fy
eSBoZWFkZXIKIGZpbGUsIGVsc2UgY2xhdXNlLCByZW1vdmVkIHJlZHVuZGFudCBjaGVja3MsIGNo
YW5nZWQgdGhlCiB0ZXN0LCB0aGUgbmFtZSBvZiBzZWN1cml0eSBvcmlnaW4gcHJvcGVydHksIHJl
bW92ZWQKIDo6Y2FuQWNjZXNzKCkvdXJsKCkgbWV0aG9kcyBhbmQgc3RyZWFtIG9wZXJhdG9ycywg
dXBkYXRlZAogY2hhbmdlbG9nLCByZW1vdmVkIHN0YXRpYyBtZXRob2RzLgoKU2lnbmVkLW9mZi1i
eTogQWRlbmlsc29uIENhdmFsY2FudGkgPGNhdmFsY2FudGlpQGdtYWlsLmNvbT4KLS0tCiBTb3Vy
Y2UvV2ViS2l0L3F0L0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTQgKysr
KysKIFNvdXJjZS9XZWJLaXQvcXQvZGVjbGFyYXRpdmUvcGx1Z2luLmNwcCAgICAgICAgICAgIHwg
ICAgMyArCiBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAg
ICB8ICAgMzEgKysrKysrKysrKwogU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaSAgICAgICAgICAg
ICAgICAgICAgICAgICAgfCAgICAyICsKIC4uLi9VSVByb2Nlc3MvQVBJL3F0L3F0d2Vic2VjdXJp
dHlvcmlnaW4uY3BwICAgICAgIHwgICA2MCArKysrKysrKysrKysrKysrKysrKwogLi4uL1VJUHJv
Y2Vzcy9BUEkvcXQvcXR3ZWJzZWN1cml0eW9yaWdpbl9wLmggICAgICAgfCAgIDU3ICsrKysrKysr
KysrKysrKysrKysKIC4uLi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwZXJtaXNzaW9ucmVxdWVzdC5j
cHAgICAgIHwgICAyNCArKysrLS0tLQogLi4uL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnBlcm1pc3Np
b25yZXF1ZXN0X3AuaCAgICAgfCAgIDExICstLQogLi4uL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMv
cW1sdGVzdHMvV2ViVmlldy5wcm8gICAgfCAgICAzICstCiAuLi4vQVBJL3F0L3Rlc3RzL3FtbHRl
c3RzL1dlYlZpZXcvdHN0X29yaWdpbi5xbWwgICB8ICAgNTcgKysrKysrKysrKysrKysrKysrKwog
MTAgZmlsZXMgY2hhbmdlZCwgMjQxIGluc2VydGlvbnMoKyksIDIxIGRlbGV0aW9ucygtKQogY3Jl
YXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXR3ZWJzZWN1
cml0eW9yaWdpbi5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL3F0L3F0d2Vic2VjdXJpdHlvcmlnaW5fcC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3L3RzdF9v
cmlnaW4ucW1sCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L3F0L0NoYW5nZUxvZwppbmRleCA0ZTZhZjhmLi43OGM1ZWZlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEyLTAyLTAxICBBZGVuaWxzb24gQ2F2YWxjYW50aSAg
PGNhdmFsY2FudGlpQGdtYWlsLmNvbT4KKworICAgICAgICBbUXRdW1dLMl0gU3BsaXQgUVdlYlBl
cm1pc3Npb25SZXF1ZXN0IGludG8gUVdlYlNlY3VyaXR5T3JpZ2luCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzIxNQorCisgICAgICAgIFJldmlld2Vk
IGJ5IEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuLgorCisgICAgICAgIEFkZGluZyBhIGNsYXNz
IHRvIGFjY2VzcyBzZWN1cml0eSBpbmZvcm1hdGlvbiBkYXRhCisgICAgICAgIChlLmcuIHBvcnQv
c2NoZW1lL2V0YyksCisgICAgICAgIHdoaWxlIGFsbG93aW5nIGl0IHRvIGJlIGhhbmRsZWQgaW4g
UU1MIHNpZGUuCisKKyAgICAgICAgKiBkZWNsYXJhdGl2ZS9wbHVnaW4uY3BwOgorICAgICAgICAo
V2ViS2l0UW1sUGx1Z2luOjpyZWdpc3RlclR5cGVzKToKKwogMjAxMi0wMi0xNSAgU2FkcnVsIEhh
YmliIENob3dkaHVyeSAgPHNhZHJ1bEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgTm90aWZ5IENo
cm9tZUNsaWVudCB3aGVuIHRvdWNoLWV2ZW50IGhhbmRsZXJzIGFyZSBpbnN0YWxsZWQvcmVtb3Zl
ZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvZGVjbGFyYXRpdmUvcGx1Z2luLmNwcCBi
L1NvdXJjZS9XZWJLaXQvcXQvZGVjbGFyYXRpdmUvcGx1Z2luLmNwcAppbmRleCA2NDYzOGU0Li5l
MmYwZmIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L2RlY2xhcmF0aXZlL3BsdWdpbi5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9kZWNsYXJhdGl2ZS9wbHVnaW4uY3BwCkBAIC0yNSw2
ICsyNSw3IEBACiAjaWYgZGVmaW5lZChIQVZFX1dFQktJVDIpCiAjaW5jbHVkZSAicXF1aWNrd2Vi
cGFnZV9wLmgiCiAjaW5jbHVkZSAicXF1aWNrd2Vidmlld19wLmgiCisjaW5jbHVkZSAicXR3ZWJz
ZWN1cml0eW9yaWdpbl9wLmgiCiAjaW5jbHVkZSAicXdlYmljb25pbWFnZXByb3ZpZGVyX3AuaCIK
ICNpbmNsdWRlICJxd2VibmF2aWdhdGlvbnJlcXVlc3RfcC5oIgogI2luY2x1ZGUgInF3ZWJwZXJt
aXNzaW9ucmVxdWVzdF9wLmgiCkBAIC02NSw2ICs2Niw4IEBAIHB1YmxpYzoKICAgICAgICAgcW1s
UmVnaXN0ZXJVbmNyZWF0YWJsZVR5cGU8UU5ldHdvcmtSZXBseT4odXJpLCAzLCAwLCAiTmV0d29y
a1JlcGx5IiwgUU9iamVjdDo6dHIoIkNhbm5vdCBjcmVhdGUgc2VwYXJhdGUgaW5zdGFuY2Ugb2Yg
TmV0d29ya1JlcGx5IikpOwogICAgICAgICBxbWxSZWdpc3RlclVuY3JlYXRhYmxlVHlwZTxRV2Vi
UGVybWlzc2lvblJlcXVlc3Q+KHVyaSwgMywgMCwgIlBlcm1pc3Npb25SZXF1ZXN0IiwgUU9iamVj
dDo6dHIoIkNhbm5vdCBjcmVhdGUgc2VwYXJhdGUgaW5zdGFuY2Ugb2YgUGVybWlzc2lvblJlcXVl
c3QiKSk7CiAgICAgICAgIHFtbFJlZ2lzdGVyVW5jcmVhdGFibGVUeXBlPFFXZWJOYXZpZ2F0aW9u
UmVxdWVzdD4odXJpLCAzLCAwLCAiTmF2aWdhdGlvblJlcXVlc3QiLCBRT2JqZWN0Ojp0cigiQ2Fu
bm90IGNyZWF0ZSBzZXBhcmF0ZSBpbnN0YW5jZSBvZiBOYXZpZ2F0aW9uUmVxdWVzdCIpKTsKKyAg
ICAgICAgcW1sUmVnaXN0ZXJVbmNyZWF0YWJsZVR5cGU8UXRXZWJTZWN1cml0eU9yaWdpbj4odXJp
LCAzLCAwLCAiU2VjdXJpdHlPcmlnaW4iLCBRT2JqZWN0Ojp0cigiQ2Fubm90IGNyZWF0ZSBzZXBh
cmF0ZSBpbnN0YW5jZSBvZiBTZWN1cml0eU9yaWdpbiIpKTsKKwogI2VuZGlmCiAgICAgfQogfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCA3ODNiMTNlLi4zYzI4NTZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQg
QEAKKzIwMTItMDItMDEgIEFkZW5pbHNvbiBDYXZhbGNhbnRpICA8Y2F2YWxjYW50aWlAZ21haWwu
Y29tPgorCisgICAgICAgIFtRdF1bV0syXSBTcGxpdCBRV2ViUGVybWlzc2lvblJlcXVlc3QgaW50
byBRV2ViU2VjdXJpdHlPcmlnaW4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTczMjE1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0aCBSb2hkZSBD
aHJpc3RpYW5zZW4uCisKKyAgICAgICAgSW50cm9kdWNpbmcgYSBuZXcgY2xhc3MgdG8gZXhwb3Nl
IHNlY3VyaXR5IG9yaWdpbiBpbmZvcm1hdGlvbgorICAgICAgICAocG9ydC9zY2hlbWUvZXRjKSwg
dXNlZnVsIGZvciBpbnNwZWN0aW5nIHRoZSBvcmlnaW4gb2YgcGVybWlzc2lvbgorICAgICAgICBy
ZXF1ZXN0cy4KKworICAgICAgICAqIFRhcmdldC5wcmk6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9xdC9xdHdlYnNlY3VyaXR5b3JpZ2luLmNwcDogQWRkZWQuCisgICAgICAgIChRdFdlYlNlY3Vy
aXR5T3JpZ2luOjpRdFdlYlNlY3VyaXR5T3JpZ2luKToKKyAgICAgICAgKFF0V2ViU2VjdXJpdHlP
cmlnaW46On5RdFdlYlNlY3VyaXR5T3JpZ2luKToKKyAgICAgICAgKFF0V2ViU2VjdXJpdHlPcmln
aW46Omhvc3QpOgorICAgICAgICAoUXRXZWJTZWN1cml0eU9yaWdpbjo6c2NoZW1lKToKKyAgICAg
ICAgKFF0V2ViU2VjdXJpdHlPcmlnaW46OnBhdGgpOgorICAgICAgICAoUXRXZWJTZWN1cml0eU9y
aWdpbjo6cG9ydCk6CisgICAgICAgIChRdFdlYlNlY3VyaXR5T3JpZ2luOjpzZXRIb3N0KToKKyAg
ICAgICAgKFF0V2ViU2VjdXJpdHlPcmlnaW46OnNldFNjaGVtZSk6CisgICAgICAgIChRdFdlYlNl
Y3VyaXR5T3JpZ2luOjpzZXRQYXRoKToKKyAgICAgICAgKFF0V2ViU2VjdXJpdHlPcmlnaW46OnNl
dFBvcnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXR3ZWJzZWN1cml0eW9yaWdpbl9w
Lmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvV2Vi
Vmlldy90c3Rfb3JpZ2luLnFtbDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9x
d2VicGVybWlzc2lvbnJlcXVlc3QuY3BwOgorICAgICAgICAoUVdlYlBlcm1pc3Npb25SZXF1ZXN0
UHJpdmF0ZTo6UVdlYlBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZSk6CisgICAgICAgIChRV2ViUGVy
bWlzc2lvblJlcXVlc3Q6OnNlY3VyaXR5T3JpZ2luKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L3F0L3F3ZWJwZXJtaXNzaW9ucmVxdWVzdF9wLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9x
dC90ZXN0cy9xbWx0ZXN0cy9xbWx0ZXN0cy5wcm86CisKIDIwMTItMDItMTUgIEFuZGVycyBDYXJs
c3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgVGlsZWRDb3JlQW5pbWF0
aW9uRHJhd2luZ0FyZWE6OmZvcmNlUmVwYWludApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJLaXQyL1RhcmdldC5wcmkKaW5kZXggZmFlNjVkMS4uNWIy
Y2ZiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9UYXJnZXQucHJpCkBAIC0xNzMsNiArMTczLDcgQEAgSEVBREVSUyArPSBcCiAgICAg
VUlQcm9jZXNzL0FQSS9xdC9xd2ViZG93bmxvYWRpdGVtX3AuaCBcCiAgICAgVUlQcm9jZXNzL0FQ
SS9xdC9xd2ViZG93bmxvYWRpdGVtX3BfcC5oIFwKICAgICBVSVByb2Nlc3MvQVBJL3F0L3F3ZWJw
ZXJtaXNzaW9ucmVxdWVzdF9wLmggXAorICAgIFVJUHJvY2Vzcy9BUEkvcXQvcXR3ZWJzZWN1cml0
eW9yaWdpbl9wLmggXAogICAgIFVJUHJvY2Vzcy9BUEkvcXQvcXdlYm5hdmlnYXRpb25yZXF1ZXN0
X3AuaCBcCiAgICAgVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJwYWdlX3AuaCBcCiAgICAgVUlQ
cm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJwYWdlX3BfcC5oIFwKQEAgLTUwMSw2ICs1MDIsNyBAQCBT
T1VSQ0VTICs9IFwKICAgICBVSVByb2Nlc3MvQVBJL2NwcC9xdC9XS1VSTFF0LmNwcCBcCiAgICAg
VUlQcm9jZXNzL0FQSS9xdC9xd2ViZG93bmxvYWRpdGVtLmNwcCBcCiAgICAgVUlQcm9jZXNzL0FQ
SS9xdC9xd2VicGVybWlzc2lvbnJlcXVlc3QuY3BwIFwKKyAgICBVSVByb2Nlc3MvQVBJL3F0L3F0
d2Vic2VjdXJpdHlvcmlnaW4uY3BwIFwKICAgICBVSVByb2Nlc3MvQVBJL3F0L3F3ZWJuYXZpZ2F0
aW9ucmVxdWVzdC5jcHAgXAogICAgIFVJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2VicGFnZS5jcHAg
XAogICAgIFVJUHJvY2Vzcy9BUEkvcXQvcXdlYm5hdmlnYXRpb25oaXN0b3J5LmNwcCBcCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F0d2Vic2VjdXJpdHlvcmln
aW4uY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xdHdlYnNlY3VyaXR5b3Jp
Z2luLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NDkxZGM0Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xdHdlYnNlY3Vy
aXR5b3JpZ2luLmNwcApAQCAtMCwwICsxLDYwIEBACisvKgorICAgIENvcHlyaWdodCAoQykgMjAx
MiBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKworICAgIFRo
aXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv
b3IKKyAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYworICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb247IGVpdGhlcgorICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0
IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgIFRoaXMgbGlicmFyeSBpcyBk
aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgIGJ1dCBX
SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m
CisgICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
LiAgU2VlIHRoZSBHTlUKKyAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v
cmUgZGV0YWlscy4KKworICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgICBhbG9uZyB3aXRoIHRoaXMg
bGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICAg
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwg
RmlmdGggRmxvb3IsCisgICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAicXR3ZWJzZWN1cml0eW9yaWdpbl9wLmgiCisKKyNp
bmNsdWRlIDxRdENvcmUvUUZpbGVJbmZvPgorI2luY2x1ZGUgPFF0Q29yZS9RU3RyaW5nTGlzdD4K
KyNpbmNsdWRlIDxTY2hlbWVSZWdpc3RyeS5oPgorI2luY2x1ZGUgPFNlY3VyaXR5T3JpZ2luLmg+
CisjaW5jbHVkZSA8V2ViS2l0Mi9XS0Jhc2UuaD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLUmV0YWlu
UHRyLmg+CisjaW5jbHVkZSA8V2ViS2l0Mi9XS1NlY3VyaXR5T3JpZ2luLmg+CisKK3VzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOworCitRdFdlYlNlY3VyaXR5T3JpZ2luOjpRdFdlYlNlY3VyaXR5T3Jp
Z2luKFFPYmplY3QqIHBhcmVudCkKKyAgICA6IFFPYmplY3QocGFyZW50KQoreworfQorCitRdFdl
YlNlY3VyaXR5T3JpZ2luOjp+UXRXZWJTZWN1cml0eU9yaWdpbigpCit7Cit9CisKK1FTdHJpbmcg
UXRXZWJTZWN1cml0eU9yaWdpbjo6aG9zdCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fdXJsLmhv
c3QoKTsKK30KKworUVN0cmluZyBRdFdlYlNlY3VyaXR5T3JpZ2luOjpzY2hlbWUoKSBjb25zdAor
eworICAgIHJldHVybiBtX3VybC5zY2hlbWUoKTsKK30KKworUVN0cmluZyBRdFdlYlNlY3VyaXR5
T3JpZ2luOjpwYXRoKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV91cmwucGF0aCgpOworfQorCitp
bnQgUXRXZWJTZWN1cml0eU9yaWdpbjo6cG9ydCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fdXJs
LnBvcnQoKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQv
cXR3ZWJzZWN1cml0eW9yaWdpbl9wLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0
L3F0d2Vic2VjdXJpdHlvcmlnaW5fcC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLmRmMDlmYjgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL3F0L3F0d2Vic2VjdXJpdHlvcmlnaW5fcC5oCkBAIC0wLDAgKzEsNTcgQEAKKy8qCisgICAg
Q29weXJpZ2h0IChDKSAyMDEyIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFy
eSgtaWVzKQorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkg
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICAgdmVyc2lvbiAyIG9mIHRo
ZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICAg
VGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1
c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt
cGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91IHNob3VsZCBoYXZlIHJlY2Vp
dmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAg
IGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBu
b3QsIHdyaXRlIHRvCisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEg
RnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEs
IFVTQS4KKyovCisjaWZuZGVmIHF0d2Vic2VjdXJpdHlvcmlnaW5fcF9oCisjZGVmaW5lIHF0d2Vi
c2VjdXJpdHlvcmlnaW5fcF9oCisKKyNpbmNsdWRlICJxd2Via2l0Z2xvYmFsLmgiCisKKyNpbmNs
dWRlIDxRdENvcmUvUURhdGFTdHJlYW0+CisjaW5jbHVkZSA8UXRDb3JlL1FPYmplY3Q+CisjaW5j
bHVkZSA8UXRDb3JlL1FTdHJpbmc+CisjaW5jbHVkZSA8UXRDb3JlL1FVcmw+CisjaW5jbHVkZSA8
UXRDb3JlL3FzaGFyZWRkYXRhLmg+CisKK2NsYXNzIFFXRUJLSVRfRVhQT1JUIFF0V2ViU2VjdXJp
dHlPcmlnaW4gOiBwdWJsaWMgUU9iamVjdCB7CisgICAgUV9PQkpFQ1QKKyAgICBRX1BST1BFUlRZ
KFFTdHJpbmcgc2NoZW1lIFJFQUQgc2NoZW1lIENPTlNUQU5UKQorICAgIFFfUFJPUEVSVFkoUVN0
cmluZyBob3N0IFJFQUQgaG9zdCBDT05TVEFOVCkKKyAgICBRX1BST1BFUlRZKGludCBwb3J0IFJF
QUQgcG9ydCBDT05TVEFOVCkKKyAgICBRX1BST1BFUlRZKFFTdHJpbmcgcGF0aCBSRUFEIHBhdGgg
Q09OU1RBTlQpCisKK3B1YmxpYzoKKyAgICBRdFdlYlNlY3VyaXR5T3JpZ2luKFFPYmplY3QqIHBh
cmVudCA9IDApOworICAgIHZpcnR1YWwgflF0V2ViU2VjdXJpdHlPcmlnaW4oKTsKKworICAgIFFT
dHJpbmcgc2NoZW1lKCkgY29uc3Q7CisgICAgUVN0cmluZyBob3N0KCkgY29uc3Q7CisgICAgaW50
IHBvcnQoKSBjb25zdDsKKyAgICBRU3RyaW5nIHBhdGgoKSBjb25zdDsKKworICAgIC8vIFVzZWQg
dG8gc2V0IHNlY3VyaXR5IGluZm9ybWF0aW9uIGluIGEgcGVybWlzc2lvbiByZXF1ZXN0IGV2ZW50
IChlLmcuCisgICAgLy8gZ2VvbG9jYXRpb24gcGVybWlzc2lvbikKKyAgICB2b2lkIHNldFNjaGVt
ZShjb25zdCBRU3RyaW5nJiBzY2hlbWUpIHsgbV91cmwuc2V0U2NoZW1lKHNjaGVtZSk7IH0KKyAg
ICB2b2lkIHNldEhvc3QoY29uc3QgUVN0cmluZyYgaG9zdCkgeyBtX3VybC5zZXRIb3N0KGhvc3Qp
OyB9CisgICAgdm9pZCBzZXRQYXRoKGNvbnN0IFFTdHJpbmcmIHBhdGgpIHsgbV91cmwuc2V0UGF0
aChwYXRoKTsgfQorICAgIHZvaWQgc2V0UG9ydChpbnQgcG9ydCkgeyBtX3VybC5zZXRQb3J0KHBv
cnQpOyB9CisKK3ByaXZhdGU6CisgICAgUVVybCBtX3VybDsKK307CisKKyNlbmRpZiAvLyBxdHdl
YnNlY3VyaXR5b3JpZ2luX3BfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9xdC9xd2VicGVybWlzc2lvbnJlcXVlc3QuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9xdC9xd2VicGVybWlzc2lvbnJlcXVlc3QuY3BwCmluZGV4IDE2YTQzODUuLmM0YzFh
ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnBlcm1p
c3Npb25yZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3
ZWJwZXJtaXNzaW9ucmVxdWVzdC5jcHAKQEAgLTM0LDcgKzM0LDE1IEBAIHB1YmxpYzoKICAgICAg
ICAgLCByZXF1ZXN0KHBlcm1pc3Npb25SZXF1ZXN0KQogICAgICAgICAsIGFsbG93KGZhbHNlKQog
ICAgIHsKKyAgICAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHVybCA9IGFkb3B0V0soV0tT
ZWN1cml0eU9yaWdpbkNvcHlQcm90b2NvbChvcmlnaW4uZ2V0KCkpKTsKKyAgICAgICAgc2VjdXJp
dHlJbmZvLnNldFNjaGVtZShXS1N0cmluZ0NvcHlRU3RyaW5nKHVybC5nZXQoKSkpOworCisgICAg
ICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBob3N0ID0gYWRvcHRXSyhXS1NlY3VyaXR5T3Jp
Z2luQ29weUhvc3Qob3JpZ2luLmdldCgpKSk7CisgICAgICAgIHNlY3VyaXR5SW5mby5zZXRIb3N0
KFdLU3RyaW5nQ29weVFTdHJpbmcoaG9zdC5nZXQoKSkpOworCisgICAgICAgIHNlY3VyaXR5SW5m
by5zZXRQb3J0KHN0YXRpY19jYXN0PGludD4oV0tTZWN1cml0eU9yaWdpbkdldFBvcnQob3JpZ2lu
LmdldCgpKSkpOwogICAgIH0KKwogICAgIH5RV2ViUGVybWlzc2lvblJlcXVlc3RQcml2YXRlKCkK
ICAgICB7CiAgICAgfQpAQCAtNDIsNiArNTAsNyBAQCBwdWJsaWM6CiAgICAgV0tSZXRhaW5QdHI8
V0tTZWN1cml0eU9yaWdpblJlZj4gb3JpZ2luOwogICAgIFFXZWJQZXJtaXNzaW9uUmVxdWVzdDo6
UmVxdWVzdFR5cGUgdHlwZTsKICAgICBXS1JldGFpblB0cjxXS0dlb2xvY2F0aW9uUGVybWlzc2lv
blJlcXVlc3RSZWY+IHJlcXVlc3Q7CisgICAgUXRXZWJTZWN1cml0eU9yaWdpbiBzZWN1cml0eUlu
Zm87CiAgICAgYm9vbCBhbGxvdzsKIH07CiAKQEAgLTg4LDE5ICs5Nyw4IEBAIGJvb2wgUVdlYlBl
cm1pc3Npb25SZXF1ZXN0OjphbGxvdygpIGNvbnN0CiAgICAgcmV0dXJuIGQtPmFsbG93OwogfQog
Ci1RU3RyaW5nIFFXZWJQZXJtaXNzaW9uUmVxdWVzdDo6c2NoZW1lKCkgY29uc3QKLXsKLSAgICBX
S1JldGFpblB0cjxXS1N0cmluZ1JlZj4gdXJsID0gYWRvcHRXSyhXS1NlY3VyaXR5T3JpZ2luQ29w
eVByb3RvY29sKGQtPm9yaWdpbi5nZXQoKSkpOwotICAgIHJldHVybiBXS1N0cmluZ0NvcHlRU3Ry
aW5nKHVybC5nZXQoKSk7Ci19Ci0KLVFTdHJpbmcgUVdlYlBlcm1pc3Npb25SZXF1ZXN0Ojpob3N0
KCkgY29uc3QKK1F0V2ViU2VjdXJpdHlPcmlnaW4qIFFXZWJQZXJtaXNzaW9uUmVxdWVzdDo6c2Vj
dXJpdHlPcmlnaW4oKQogewotICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBvcmlnaW4gPSBh
ZG9wdFdLKFdLU2VjdXJpdHlPcmlnaW5Db3B5SG9zdChkLT5vcmlnaW4uZ2V0KCkpKTsKLSAgICBy
ZXR1cm4gV0tTdHJpbmdDb3B5UVN0cmluZyhvcmlnaW4uZ2V0KCkpOworICAgIHJldHVybiAmKGQt
PnNlY3VyaXR5SW5mbyk7CiB9CiAKLWludCBRV2ViUGVybWlzc2lvblJlcXVlc3Q6OnBvcnQoKSBj
b25zdAotewotICAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQ+KFdLU2VjdXJpdHlPcmlnaW5HZXRQ
b3J0KGQtPm9yaWdpbi5nZXQoKSkpOwotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9xdC9xd2VicGVybWlzc2lvbnJlcXVlc3RfcC5oIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9xdC9xd2VicGVybWlzc2lvbnJlcXVlc3RfcC5oCmluZGV4IDU4MjRjNGMu
LjQ3MDhiNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdl
YnBlcm1pc3Npb25yZXF1ZXN0X3AuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L3F0L3F3ZWJwZXJtaXNzaW9ucmVxdWVzdF9wLmgKQEAgLTIwLDYgKzIwLDcgQEAKICNpZm5kZWYg
cXdlYnBlcm1pc3Npb25yZXF1ZXN0X3BfaAogI2RlZmluZSBxd2VicGVybWlzc2lvbnJlcXVlc3Rf
cF9oCiAKKyNpbmNsdWRlICJxdHdlYnNlY3VyaXR5b3JpZ2luX3AuaCIKICNpbmNsdWRlICJxd2Vi
a2l0Z2xvYmFsLmgiCiAKICNpbmNsdWRlIDxRdENvcmUvUU9iamVjdD4KQEAgLTMyLDEwICszMyw4
IEBAIGNsYXNzIFFXZWJQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGU7CiBjbGFzcyBRV0VCS0lUX0VY
UE9SVCBRV2ViUGVybWlzc2lvblJlcXVlc3QgOiBwdWJsaWMgUU9iamVjdCB7CiAgICAgUV9PQkpF
Q1QKICAgICBRX1BST1BFUlRZKGJvb2wgYWxsb3cgUkVBRCBhbGxvdyBXUklURSBzZXRBbGxvdykK
LSAgICBRX1BST1BFUlRZKFJlcXVlc3RUeXBlIHR5cGUgUkVBRCB0eXBlKQotICAgIFFfUFJPUEVS
VFkoUVN0cmluZyBzY2hlbWUgUkVBRCBzY2hlbWUpCi0gICAgUV9QUk9QRVJUWShRU3RyaW5nIGhv
c3QgUkVBRCBob3N0KQotICAgIFFfUFJPUEVSVFkoaW50IHBvcnQgUkVBRCBwb3J0KQorICAgIFFf
UFJPUEVSVFkoUmVxdWVzdFR5cGUgdHlwZSBSRUFEIHR5cGUgQ09OU1RBTlQpCisgICAgUV9QUk9Q
RVJUWShRdFdlYlNlY3VyaXR5T3JpZ2luKiBvcmlnaW4gUkVBRCBzZWN1cml0eU9yaWdpbikKICAg
ICBRX0VOVU1TKFJlcXVlc3RUeXBlKQogCiBwdWJsaWM6CkBAIC00OCwxMiArNDcsMTAgQEAgcHVi
bGljOgogCiAgICAgUmVxdWVzdFR5cGUgdHlwZSgpIGNvbnN0OwogICAgIGJvb2wgYWxsb3coKSBj
b25zdDsKLSAgICBRU3RyaW5nIHNjaGVtZSgpIGNvbnN0OwotICAgIFFTdHJpbmcgaG9zdCgpIGNv
bnN0OwotICAgIGludCBwb3J0KCkgY29uc3Q7CiAKIHB1YmxpYyBRX1NMT1RTOgogICAgIHZvaWQg
c2V0QWxsb3coYm9vbCk7CisgICAgUXRXZWJTZWN1cml0eU9yaWdpbiogc2VjdXJpdHlPcmlnaW4o
KTsKIAogcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgUVdlYlBlcm1pc3Npb25SZXF1ZXN0UHJp
dmF0ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMv
cW1sdGVzdHMvV2ViVmlldy5wcm8gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rl
c3RzL3FtbHRlc3RzL1dlYlZpZXcucHJvCmluZGV4IDhjZDE1ZmYuLjdmNGUzZDEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvV2ViVmll
dy5wcm8KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0
cy9XZWJWaWV3LnBybwpAQCAtMjcsNCArMjcsNSBAQCBPVEhFUl9GSUxFUyArPSBcCiAgICAgV2Vi
Vmlldy90c3RfcHJlZmVyZW5jZXMucW1sIFwKICAgICBXZWJWaWV3L3RzdF9wcm9wZXJ0aWVzLnFt
bCBcCiAgICAgV2ViVmlldy90c3RfdGl0bGVDaGFuZ2VkLnFtbCBcCi0gICAgV2ViVmlldy90c3Rf
YXBwbGljYXRpb25TY2hlbWUucW1sCisgICAgV2ViVmlldy90c3RfYXBwbGljYXRpb25TY2hlbWUu
cW1sIFwKKyAgICBXZWJWaWV3L3RzdF9vcmlnaW4ucW1sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL1dlYlZpZXcvdHN0X29yaWdpbi5x
bWwgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL1dlYlZp
ZXcvdHN0X29yaWdpbi5xbWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzA3
NDVkOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQv
dGVzdHMvcW1sdGVzdHMvV2ViVmlldy90c3Rfb3JpZ2luLnFtbApAQCAtMCwwICsxLDU3IEBACitp
bXBvcnQgUXRRdWljayAyLjAKK2ltcG9ydCBRdFRlc3QgMS4wCitpbXBvcnQgUXRXZWJLaXQgMy4w
CitpbXBvcnQgUXRXZWJLaXQuZXhwZXJpbWVudGFsIDEuMAorCitXZWJWaWV3IHsKKyAgICBpZDog
d2ViVmlldworICAgIHdpZHRoOiAyMDAKKyAgICBoZWlnaHQ6IDIwMAorCisgICAgcHJvcGVydHkg
Ym9vbCBzdWNjZXNzOiB0cnVlCisgICAgcHJvcGVydHkgaW50IHBvcnQ6IDAKKyAgICBwcm9wZXJ0
eSBzdHJpbmcgc2NoZW1lOiAiZmlsZSIKKworICAgIFNpZ25hbFNweSB7CisgICAgICAgIGlkOiBz
cHkKKyAgICAgICAgdGFyZ2V0OiBleHBlcmltZW50YWwKKyAgICAgICAgc2lnbmFsTmFtZTogInBl
cm1pc3Npb25SZXF1ZXN0ZWQiCisgICAgfQorCisgICAgZXhwZXJpbWVudGFsLm9uUGVybWlzc2lv
blJlcXVlc3RlZDogeworICAgICAgICBpZiAocGVybWlzc2lvbi5vcmlnaW4ucG9ydCAhPSB3ZWJW
aWV3LnBvcnQpIHsKKyAgICAgICAgICAgIGNvbnNvbGUubG9nKCJFeHBlY3RlZCBwb3J0IHZhbHVl
IHNob3VsZCBiZSB6ZXJvLiIpCisgICAgICAgICAgICB3ZWJWaWV3LnN1Y2Nlc3MgPSBmYWxzZQor
ICAgICAgICB9CisKKyAgICAgICAgaWYgKHBlcm1pc3Npb24ub3JpZ2luLnNjaGVtZSAhPSB3ZWJW
aWV3LnNjaGVtZSkgeworICAgICAgICAgICAgY29uc29sZS5sb2coIkV4cGVjdGVkIHNjaGVtZSBz
aG91bGQgYmUgXCJmaWxlXCIuIikKKyAgICAgICAgICAgIHdlYlZpZXcuc3VjY2VzcyA9IGZhbHNl
CisgICAgICAgIH0KKyAgICB9CisKKyAgICBUZXN0Q2FzZSB7CisgICAgICAgIG5hbWU6ICJXZWJW
aWV3U2VjdXJpdHlPcmlnaW4iCisKKyAgICAgICAgLy8gRGVsYXllZCB3aW5kb3dTaG93biB0byB3
b3JrYXJvdW5kIHByb2JsZW1zIHdpdGggUXQ1IGluIGRlYnVnIG1vZGUuCisgICAgICAgIHdoZW46
IGZhbHNlCisgICAgICAgIFRpbWVyIHsKKyAgICAgICAgICAgIHJ1bm5pbmc6IHBhcmVudC53aW5k
b3dTaG93bgorICAgICAgICAgICAgcmVwZWF0OiBmYWxzZQorICAgICAgICAgICAgaW50ZXJ2YWw6
IDEKKyAgICAgICAgICAgIG9uVHJpZ2dlcmVkOiBwYXJlbnQud2hlbiA9IHRydWUKKyAgICAgICAg
fQorCisgICAgICAgIGZ1bmN0aW9uIGluaXQoKSB7CisgICAgICAgICAgICBzcHkuY2xlYXIoKQor
ICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gdGVzdF9wZXJtaXNzaW9uUmVxdWVzdCgpIHsK
KyAgICAgICAgICAgIGNvbXBhcmUoc3B5LmNvdW50LCAwKQorICAgICAgICAgICAgd2ViVmlldy5s
b2FkKFF0LnJlc29sdmVkVXJsKCIuLi9jb21tb24vZ2VvbG9jYXRpb24uaHRtbCIpKQorICAgICAg
ICAgICAgc3B5LndhaXQoKQorICAgICAgICAgICAgY29tcGFyZShzcHkuY291bnQsIDEpCisgICAg
ICAgICAgICBjb21wYXJlKHdlYlZpZXcuc3VjY2VzcywgdHJ1ZSkKKyAgICAgICAgfQorICAgIH0K
K30KLS0gCjEuNy41LjQKCg==
</data>
<flag name="review"
          id="129390"
          type_id="1"
          status="+"
          setter="hausmann"
    />
    <flag name="commit-queue"
          id="129391"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
      

    </bug>

</bugzilla>