<?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>27158</bug_id>
          
          <creation_ts>2009-07-10 14:04:32 -0700</creation_ts>
          <short_desc>Add WebKit version API to Qt.</short_desc>
          <delta_ts>2009-07-29 00:00:37 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Qt</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</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>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Robert Hogan">robert</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>fishd</cc>
    
    <cc>gustavo</cc>
    
    <cc>hausmann</cc>
    
    <cc>kenneth</cc>
    
    <cc>laszlo.gombos</cc>
    
    <cc>manyoso</cc>
    
    <cc>mrowe</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>130955</commentid>
    <comment_count>0</comment_count>
    <who name="Robert Hogan">robert</who>
    <bug_when>2009-07-10 14:04:32 -0700</bug_when>
    <thetext>Get the current &apos;Safari&apos; version of WebKit from Version.xcconfig
        at compile time and make it available to Qt applications through
        webKitVersion().

        Also amend the User Agent string to place the Safari clause outside
        the final bracket and to the end of the UA string.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>130960</commentid>
    <comment_count>1</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2009-07-10 14:16:54 -0700</bug_when>
    <thetext>FWIW, the .xcconfig files do not contain Safari version information.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>130982</commentid>
    <comment_count>2</comment_count>
      <attachid>32583</attachid>
    <who name="Robert Hogan">robert</who>
    <bug_when>2009-07-10 15:26:55 -0700</bug_when>
    <thetext>Created attachment 32583
Initial Patch

The approach is to treat WebCore/Configurations/Version.xcconfig as the definitive place for version information. If parsing that file fails, Qt will default to a version number hardcode in WebKit.pri, and failing that a version hardcoded in qwebkitversion.cpp.

Things I&apos;m not sure about yet:

- Choice of hard-coded version number if parsing Version.xcconfig fails - currently 531.3.
- Have only tested the following qmake macro on Linux. It should work on all other platforms, but not 100% certain.

+MAJOR_VERSION = $$system(perl WebKitTools/Scripts/get-webkit-version --major \
+                         WebCore/Configurations/Version.xcconfig)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>130983</commentid>
    <comment_count>3</comment_count>
      <attachid>32583</attachid>
    <who name="Robert Hogan">robert</who>
    <bug_when>2009-07-10 15:33:50 -0700</bug_when>
    <thetext>Comment on attachment 32583
Initial Patch

ack, this has a couple of silly errors:

- the warning text is mangled in WebKit.pri
- two of the unit tests won&apos;t work

Please ignore those for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>130985</commentid>
    <comment_count>4</comment_count>
    <who name="Robert Hogan">robert</who>
    <bug_when>2009-07-10 15:37:13 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; FWIW, the .xcconfig files do not contain Safari version information.

Yes, misleading changelog, it&apos;s really the WebKit version according to the Apple build of WebKit. I&apos;ll make that clearer in the next revision.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>131106</commentid>
    <comment_count>5</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2009-07-11 02:40:07 -0700</bug_when>
    <thetext>If you&apos;re going to parse a .xcconfig for the WebKit version, then parsing WebKit&apos;s one makes more sense than WebCore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>131107</commentid>
    <comment_count>6</comment_count>
      <attachid>32612</attachid>
    <who name="Robert Hogan">robert</who>
    <bug_when>2009-07-11 04:34:28 -0700</bug_when>
    <thetext>Created attachment 32612
Updated patch

Updated re comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>131550</commentid>
    <comment_count>7</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2009-07-14 07:02:45 -0700</bug_when>
    <thetext>Robert, I think your idea is great!

A slightly more pragmatic and easier approach would be to create a header file (WebKitVersion.h?) that we can share across the ports who would like to. (That file could be generated with your script for example?)

CC&apos;ing Darin Fisher from the Chromium team and Gustavo from the Gtk+ port. I can imagine that they would be interested in sharing :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>131551</commentid>
    <comment_count>8</comment_count>
      <attachid>32612</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2009-07-14 07:06:46 -0700</bug_when>
    <thetext>Comment on attachment 32612
Updated patch

r- on the patch for now, I think with little effort this can be even better and simpler, without the need to modify the build system :)

On the Qt side please prefix the functions with &apos;q&apos;, i.e. qWebKitVersion().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>131611</commentid>
    <comment_count>9</comment_count>
    <who name="Robert Hogan">robert</who>
    <bug_when>2009-07-14 10:47:46 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 32612 [details])
&gt; r- on the patch for now, I think with little effort this can be even better and
&gt; simpler, without the need to modify the build system :)
&gt; 

A generic WebKitVersion.h sounds like a good idea. So generate-bindings.pl or equivalent would generate it and write to &apos;WebKit/WebKitBuild/Debug|Release/WebCore/generated/debug|release/&apos;, avoiding the need to modify the build system as you suggest. I&apos;ll give that a go.

&gt; On the Qt side please prefix the functions with &apos;q&apos;, i.e. qWebKitVersion().
Righto!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>131688</commentid>
    <comment_count>10</comment_count>
      <attachid>32737</attachid>
    <who name="Robert Hogan">robert</who>
    <bug_when>2009-07-14 14:53:24 -0700</bug_when>
    <thetext>Created attachment 32737
More Portable Patch

Is this more like it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>131850</commentid>
    <comment_count>11</comment_count>
    <who name="Adam Treat">manyoso</who>
    <bug_when>2009-07-15 04:38:45 -0700</bug_when>
    <thetext>Personally, I think the thing to do is not to generate it at all.  Rather, I&apos;d have a static regular file in top-level WebKit directory called WebKitVersion.h.  Then modify the Mac port, the Qt port, and whatever other port to use it that wants to.  Do away with the version information in the .xcconfig file altogether in favor of this new header.

This file can then be linked to directly by whatever code needs to use it.

As for who bumps it?  We&apos;re all following the Mac ports lead so they can be the ones to bump it.  After all, the whole reason for other ports to use it is to masquerade as Mac WebKit version so websites don&apos;t fail.

Cheers,
Adam</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>131851</commentid>
    <comment_count>12</comment_count>
      <attachid>32737</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2009-07-15 04:42:18 -0700</bug_when>
    <thetext>Comment on attachment 32737
More Portable Patch


Nice! This looks a lot simpler :)

I have a few small comments below. Otherwise I have only one suggestion: Instead of generating the entire header file from within the .pro file simply include the contents of the generated header file in your patch itself. For example running your script could simply produce WebCore/WebCoreVersion.h that defines WEBCORE_MAJOR/MINOR_VERSION. Then your patch (here) includes your script as well as the generated header file.

Afterwards all we need is

1) The other ports including the header file and using it (very simple patch)

and

2) Whenever WebCore/Configurations/Version.xcconfig is touched someone needs to re-run your perl script to update the header file (simple).


r- because of the above, but otherwise a great step towards cleaning this up!

[...]
&gt;      // webkit/qt version
&gt; -    ua.append(QLatin1String(&quot;AppleWebKit/&quot; WEBKIT_VERSION &quot; (KHTML, like Gecko, Safari/419.3) &quot;));
&gt; +    ua.append(QString(QLatin1String(&quot;AppleWebKit/%1 (KHTML, like Gecko) &quot;))
&gt; +                      .arg(QString(qWebKitVersion())));
&gt;  
&gt;      // Application name/version
&gt;      QString appName = QCoreApplication::applicationName();
&gt;      if (!appName.isEmpty()) {
&gt; -        ua.append(QLatin1Char(&apos; &apos;) + appName);
&gt; +        ua.append(appName);
&gt;  #if QT_VERSION &gt;= 0x040400
&gt;          QString appVer = QCoreApplication::applicationVersion();
&gt;          if (!appVer.isEmpty())
&gt; @@ -2699,6 +2701,10 @@ QString QWebPage::userAgentForUrl(const QUrl&amp; url) const
&gt;          ua.append(QLatin1String(&quot;Qt/&quot;));
&gt;          ua.append(QLatin1String(qVersion()));
&gt;      }
&gt; +
&gt; +    ua.append(QString(QLatin1String(&quot; Safari/%1&quot;))
&gt; +                      .arg(qWebKitVersion()));
&gt; +
&gt;      return ua;
&gt;  }

Out of curiousity, why did you decide to append the Safari bit at the end instead of just keeping the existing
initual ua.append() line and use arg() twice?

Doesn&apos;t this patch also change the parentheses of the user agent?

I think if we change the structure of the user agent string, then we have to adjust the API documentation of the method, too.

&gt; +void tst_QWebView::getWebKitVersion()
&gt; +{
&gt; +    QVERIFY(qWebKitVersion().toDouble());
&gt; +}
&gt; +

I&apos;m not sure if this test is very useful :)

Given the simplicity of the function I think it&apos;s okay to skip this &quot;test&quot; alltogether if you want.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>131959</commentid>
    <comment_count>13</comment_count>
    <who name="Robert Hogan">robert</who>
    <bug_when>2009-07-15 11:10:17 -0700</bug_when>
    <thetext>&gt; 
&gt; I have a few small comments below. Otherwise I have only one suggestion:
&gt; Instead of generating the entire header file from within the .pro file simply
&gt; include the contents of the generated header file in your patch itself.

My intention was to remove the need for manual intervention.  I don&apos;t understand why keeping version updates manual is necessary, but happy to do what is required. I&apos;ll provide an updated patch on this basis.

&gt; 
&gt; Afterwards all we need is
&gt; 
&gt; 1) The other ports including the header file and using it (very simple patch)
&gt; 

No problem. I guess the other ports can chime in at that point.

&gt; and
&gt; 
&gt; 2) Whenever WebCore/Configurations/Version.xcconfig is touched someone needs to
&gt; re-run your perl script to update the header file (simple).
&gt; 
Still not sure why this can&apos;t be automated.

&gt; 
&gt; Out of curiousity, why did you decide to append the Safari bit at the end
&gt; instead of just keeping the existing
&gt; initual ua.append() line and use arg() twice?
&gt; 

To bring Qt&apos;s user agent string into line with the format adopted by other ports:

http://www.mattcutts.com/blog/google-chrome-user-agent/

http://209.85.229.132/search?q=cache:fd3ykESxOycJ:www.useragentstring.com/pages/Safari/+safari+user+agent&amp;cd=3&amp;hl=en&amp;ct=clnk

http://gitorious.org/qtwebkit/qtwebkit/blobs/1a9740a524a3cc5958c996f945a99ddad144f3f4/WebKit/gtk/webkit/webkitwebsettings.cpp (line 182)

&gt; Doesn&apos;t this patch also change the parentheses of the user agent?
&gt; 
&gt; I think if we change the structure of the user agent string, then we have to
&gt; adjust the API documentation of the method, too.

Yes, missed that one.

&gt; 
&gt; &gt; +void tst_QWebView::getWebKitVersion()
&gt; &gt; +{
&gt; &gt; +    QVERIFY(qWebKitVersion().toDouble());
&gt; &gt; +}
&gt; &gt; +
&gt; 
&gt; I&apos;m not sure if this test is very useful :)
&gt; 
&gt; Given the simplicity of the function I think it&apos;s okay to skip this &quot;test&quot;
&gt; alltogether if you want.

It&apos;s intended to catch situations where the auto-generated header file is so broken the defines are not numeric. It should really be toDouble() &gt; 0 in that case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>131961</commentid>
    <comment_count>14</comment_count>
    <who name="Robert Hogan">robert</who>
    <bug_when>2009-07-15 11:14:07 -0700</bug_when>
    <thetext>&gt; 
&gt; Out of curiousity, why did you decide to append the Safari bit at the end
&gt; instead of just keeping the existing
&gt; initual ua.append() line and use arg() twice?
&gt; 

Actually, should the first version number in the UA string be from WebCore/Configurations/Versions.xcconfig (i.e. the WebKit version) and the second one from WebKit/Configurations/Versions.xcconfig (i.e. the Safari port version)?

In practice they are very often the same, but there have been occasional differences. Would be ideal to mirror all cases. Will verify I have it the right way round before updating.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>132018</commentid>
    <comment_count>15</comment_count>
      <attachid>32804</attachid>
    <who name="Robert Hogan">robert</who>
    <bug_when>2009-07-15 13:45:50 -0700</bug_when>
    <thetext>Created attachment 32804
Updated patch for generating WebKitVersion.h manually

Updated re Simon&apos;s comments. Haven&apos;t touched anything in other ports - don&apos;t have their build set up. Can certainly do gtk as a separate job of work though.

Have placed WebKitVersion.h in WebCore/platform/ .. couldn&apos;t think of a better place. Also note that I use the Version.xcconfig in WebKit/mac/Configurations as per Mark&apos;s advice. It appears that the &apos;second&apos; occurence of the webkit version number in the UA string is maintained internally by Safari, so standard approach is just to reuse the same webkit version number in both positions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>132570</commentid>
    <comment_count>16</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2009-07-17 07:40:05 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; &gt; 
&gt; &gt; I have a few small comments below. Otherwise I have only one suggestion:
&gt; &gt; Instead of generating the entire header file from within the .pro file simply
&gt; &gt; include the contents of the generated header file in your patch itself.
&gt; 
&gt; My intention was to remove the need for manual intervention.  I don&apos;t
&gt; understand why keeping version updates manual is necessary, but happy to do
&gt; what is required. I&apos;ll provide an updated patch on this basis.

It just seems a whole lot easier for the ports to use if all they have to do is to include a header file, instead of calling scripts in their build system.

Mark, do you remember why the windows port uses a version text file and auto-generates the header file from it, in contracts to a regular header file?

&gt; &gt; Out of curiousity, why did you decide to append the Safari bit at the end
&gt; &gt; instead of just keeping the existing
&gt; &gt; initual ua.append() line and use arg() twice?
&gt; &gt; 
&gt; 
&gt; To bring Qt&apos;s user agent string into line with the format adopted by other
&gt; ports:
&gt; 
&gt; http://www.mattcutts.com/blog/google-chrome-user-agent/
&gt; 
&gt; http://209.85.229.132/search?q=cache:fd3ykESxOycJ:www.useragentstring.com/pages/Safari/+safari+user+agent&amp;cd=3&amp;hl=en&amp;ct=clnk
&gt; 
&gt; http://gitorious.org/qtwebkit/qtwebkit/blobs/1a9740a524a3cc5958c996f945a99ddad144f3f4/WebKit/gtk/webkit/webkitwebsettings.cpp
&gt; (line 182)

Ahh, I see. That&apos;s a good point :)


One additional comment: I realize that if we take the version from WebKit/mac/Configurations/Version.xcconfig, then we should put the header file probably into WebKit/WebKitVersion.h, instead of taking the version from WebKit and creating a header file in WebCore.


Robert, perhaps at this point the easiest would be to split up your patch into two parts:

1) One that deals with WebKitVersion.h, and we can figure out among the ports how to best handle and generate it.

2) The bigger part of your current patch that adds the API to the Qt Port, with the fallback. That also changes the user agent and its documentation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>132655</commentid>
    <comment_count>17</comment_count>
    <who name="Robert Hogan">robert</who>
    <bug_when>2009-07-17 12:07:12 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; It just seems a whole lot easier for the ports to use if all they have to do is
&gt; to include a header file, instead of calling scripts in their build system.
&gt; 
&gt; Mark, do you remember why the windows port uses a version text file and
&gt; auto-generates the header file from it, in contracts to a regular header file?
&gt; 

FWIW, the gtk port does the same as Windows. They have a webkitversion.h.in which configure.ac populates from values manually updated (AFAICT) in configure.ac.

Generating a version header file from the Version.xcconfig at build time would avoid the need for this individual effort, and would avoid the need for any additional manual intervention for version tracking. It would also mean that the webkit version in the UA string would always mean the same thing for all webkit ports.

Additionally, nothing fancy should be required to generate the header file in other ports build systems, since it can just be added to the same list of calls currently generating source from *.idl files at build.

&gt; 
&gt; One additional comment: I realize that if we take the version from
&gt; WebKit/mac/Configurations/Version.xcconfig, then we should put the header file
&gt; probably into WebKit/WebKitVersion.h, instead of taking the version from WebKit
&gt; and creating a header file in WebCore.
&gt; 
Yes, was conscious WebCore/ seemed a funny place to put it, but WebKit/ root has no other source files in it at all - so it felt the lesser of two evils.

&gt; 
&gt; Robert, perhaps at this point the easiest would be to split up your patch into
&gt; two parts:
&gt; 
&gt; 1) One that deals with WebKitVersion.h, and we can figure out among the ports
&gt; how to best handle and generate it.
&gt; 
&gt; 2) The bigger part of your current patch that adds the API to the Qt Port, with
&gt; the fallback. That also changes the user agent and its documentation.

NP. Will await a final direction on whether to go with the manual or auto-generated WebKitVersion.h before submitting the first one. Also, can you confirm that the root of WebKit/ is the right place to put it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>132721</commentid>
    <comment_count>18</comment_count>
    <who name="Robert Hogan">robert</who>
    <bug_when>2009-07-17 15:01:00 -0700</bug_when>
    <thetext>IRC conversation related to bug:
[20:15] &lt;manyoso&gt; bdash: re: #27158
[20:17] &lt;manyoso&gt; bdash: i think the ideal solution would be to have a WebKitVersion.h file somewhere in the source repository that only you guys would bump.  Then ports that wished to could use this header file for UA strings and so on and so forth.  That way no files need be generated.  Would you be open to a patch which modified your build files to get version info from such a canonical WebKitVersion.h file?
[20:18] &lt;bdash&gt; manyoso: no
[20:18] &lt;bdash&gt; manyoso: i don&apos;t see how that can work
[20:18] &lt;bdash&gt; manyoso: build systems dont understand header files.
[20:19] &lt;bdash&gt; manyoso: and it also wouldn&apos;t fit with our build process
[20:19] &lt;manyoso&gt; bdash: how about a .txt file with two lines for major and minor version?
[20:20] &lt;bdash&gt; manyoso: a) there&apos;s more than two components to the version number
[20:20] * manyoso listens
[20:20] &lt;bdash&gt; manyoso: b) it still wouldn&apos;t work.  we need to be able to build each project independently
[20:20] &lt;bdash&gt; manyoso: and c) the build system doesn&apos;t understand text files either.
[20:20] &lt;manyoso&gt; ok, the qmake build system could easily deal with it...
[20:20] &lt;manyoso&gt; hmm
[20:23] &lt;manyoso&gt; mwenge: ok, given bdash answer i don&apos;t know enough about the build systems involved.  your generation script might be way to go.
[20:23] &lt;manyoso&gt; mwenge: i&apos;ll let simon and you sort it out...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>132833</commentid>
    <comment_count>19</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2009-07-17 19:44:17 -0700</bug_when>
    <thetext>Regarding:

+#ifndef WEBKITVERSION_H
+#define WEBKITVERSION_H

The coding style rule 14 says: #define, #ifdef &quot;header guards&quot; should be named exactly the same as the file (including case), replacing the &apos;.&apos; with a &apos;_&apos;.

Thus, this should be #define WebKitVersion_h, etc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>133036</commentid>
    <comment_count>20</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2009-07-19 15:54:14 -0700</bug_when>
    <thetext>(In reply to comment #17)
&gt; Generating a version header file from the Version.xcconfig at build time would
&gt; avoid the need for this individual effort, and would avoid the need for any
&gt; additional manual intervention for version tracking. It would also mean that
&gt; the webkit version in the UA string would always mean the same thing for all
&gt; webkit ports.
&gt; 
&gt; Additionally, nothing fancy should be required to generate the header file in
&gt; other ports build systems, since it can just be added to the same list of calls
&gt; currently generating source from *.idl files at build.

That is a very good point actually :)

&gt; NP. Will await a final direction on whether to go with the manual or
&gt; auto-generated WebKitVersion.h before submitting the first one. Also, can you
&gt; confirm that the root of WebKit/ is the right place to put it?

You&apos;re actually right with regards to auto-generation. Generating the header at build time is not as fancy as I thought. Ok, let&apos;s with your approach in attachment 3 (to generate the header into the generated sources directory).

In addition to Kenneth&apos;s comment about the header guards (small nitpick) the only other thing I can think of right now is to include config.h as first header file in qwebkitversion.cpp, followed by &quot;qwebkitversion.h&quot; and the generated header.

I&apos;m sorry for the back and forth :(. You&apos;ve definitely convinced me now about generating the header at build time (no need to check it in or manually update it), and it seems you reached that conclusion on IRC, too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>134205</commentid>
    <comment_count>21</comment_count>
      <attachid>32804</attachid>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2009-07-23 12:45:34 -0700</bug_when>
    <thetext>Comment on attachment 32804
Updated patch for generating WebKitVersion.h manually

This header file should be generated at build time.  Checking in a generated source file doesn&apos;t make a lot of sense.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>134958</commentid>
    <comment_count>22</comment_count>
      <attachid>33559</attachid>
    <who name="Robert Hogan">robert</who>
    <bug_when>2009-07-27 11:24:55 -0700</bug_when>
    <thetext>Created attachment 33559
Updated patch

Sorry for the delay in responding - was away for a week. Patch updated per Simon and Kenny&apos;s comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135202</commentid>
    <comment_count>23</comment_count>
      <attachid>33559</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2009-07-28 07:57:40 -0700</bug_when>
    <thetext>Comment on attachment 33559
Updated patch

r=me. Thanks!

I&apos;ll move the script to WebKit/scripts when landing, as that&apos;s a slightly more appropriate place I realize for a script that parses stuff from WebKit/ instead of WebCore/ :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135205</commentid>
    <comment_count>24</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2009-07-28 07:59:18 -0700</bug_when>
    <thetext>Landed in r46485 with a few small compile tweaks :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135246</commentid>
    <comment_count>25</comment_count>
      <attachid>33651</attachid>
    <who name="Robert Agoston">Agoston.Robert</who>
    <bug_when>2009-07-28 09:41:10 -0700</bug_when>
    <thetext>Created attachment 33651
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135250</commentid>
    <comment_count>26</comment_count>
      <attachid>33651</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2009-07-28 09:50:10 -0700</bug_when>
    <thetext>Comment on attachment 33651
proposed patch

r=me. Mea culpa, I was sure I had that fixed when landing, but looks like it slipped ;(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135253</commentid>
    <comment_count>27</comment_count>
      <attachid>33559</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2009-07-28 10:11:05 -0700</bug_when>
    <thetext>Comment on attachment 33559
Updated patch

Clearing review, as it needs more work. Will look at the dll linkage warning and remove the macros from the enums.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135254</commentid>
    <comment_count>28</comment_count>
      <attachid>33651</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2009-07-28 10:12:28 -0700</bug_when>
    <thetext>Comment on attachment 33651
proposed patch

Clearing for this one, too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135456</commentid>
    <comment_count>29</comment_count>
      <attachid>33559</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2009-07-28 18:57:53 -0700</bug_when>
    <thetext>Comment on attachment 33559
Updated patch

Clearing review, as it needs more work. Will look at the dll linkage warning
and remove the macros from the enums.

???? 

You landed it and now you clear review as it needs more work? I&apos;m a bit confused; did you comment on the right bug?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135501</commentid>
    <comment_count>30</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2009-07-29 00:00:37 -0700</bug_when>
    <thetext>(In reply to comment #29)
&gt; (From update of attachment 33559 [details] [details])
&gt; Clearing review, as it needs more work. Will look at the dll linkage warning
&gt; and remove the macros from the enums.
&gt; 
&gt; ???? 
&gt; 
&gt; You landed it and now you clear review as it needs more work? I&apos;m a bit
&gt; confused; did you comment on the right bug?

Yes, wrong bug by accident :)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>32583</attachid>
            <date>2009-07-10 15:26:55 -0700</date>
            <delta_ts>2009-07-11 04:34:28 -0700</delta_ts>
            <desc>Initial Patch</desc>
            <filename>0001-Add-WebKit-version-API-to-Qt.patch</filename>
            <type>text/plain</type>
            <size>15856</size>
            <attacher name="Robert Hogan">robert</attacher>
            
              <data encoding="base64">RnJvbSBjYzc4NDYxYTZjNzc5NDg3MTZiNzEwZjcyMzVmOGY3YmY2NWFiNzM3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBtd2VuZ2UgPHJvYmVydEByb2JlcnRob2dhbi5uZXQ+CkRhdGU6
IEZyaSwgMTAgSnVsIDIwMDkgMjE6NDk6MjIgKzAxMDAKU3ViamVjdDogW1BBVENIXSBBZGQgV2Vi
S2l0IHZlcnNpb24gQVBJIHRvIFF0LgoKR2V0IHRoZSBjdXJyZW50ICdTYWZhcmknIHZlcnNpb24g
b2YgV2ViS2l0IGZyb20gVmVyc2lvbi54Y2NvbmZpZwphdCBjb21waWxlIHRpbWUgYW5kIG1ha2Ug
aXQgYXZhaWxhYmxlIHRvIFF0IGFwcGxpY2F0aW9ucyB0aHJvdWdoCndlYktpdFZlcnNpb24oKS4K
CkFsc28gYW1lbmQgdGhlIFVzZXIgQWdlbnQgc3RyaW5nIHRvIHBsYWNlIHRoZSBTYWZhcmkgY2xh
dXNlIG91dHNpZGUKdGhlIGZpbmFsIGJyYWNrZXQgYW5kIHRvIHRoZSBlbmQgb2YgdGhlIFVBIHN0
cmluZy4KLS0tCiBDaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAg
MTcgKysrKysrKwogV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgfCAg
IDE3ICsrKysrKysKIFdlYkNvcmUvV2ViQ29yZS5wcm8gICAgICAgICAgICAgICAgICAgICAgIHwg
ICAgMyArLQogV2ViS2l0LnByaSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDI2
ICsrKysrKysrKysrCiBXZWJLaXQvcXQvQXBpL2hlYWRlcnMucHJpICAgICAgICAgICAgICAgICB8
ICAgIDMgKy0KIFdlYktpdC9xdC9BcGkvcXdlYmtpdHZlcnNpb24uY3BwICAgICAgICAgIHwgICA3
MSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogV2ViS2l0L3F0L0FwaS9xd2Via2l0dmVy
c2lvbi5oICAgICAgICAgICAgfCAgIDMwICsrKysrKysrKysrKwogV2ViS2l0L3F0L0FwaS9xd2Vi
cGFnZS5jcHAgICAgICAgICAgICAgICAgfCAgIDEwICsrKy0KIFdlYktpdC9xdC9DaGFuZ2VMb2cg
ICAgICAgICAgICAgICAgICAgICAgIHwgICAyNiArKysrKysrKysrKwogV2ViS2l0L3F0L3Rlc3Rz
L3F3ZWJ2aWV3L3RzdF9xd2Vidmlldy5jcHAgfCAgIDExICsrKysrCiBXZWJLaXRUb29scy9DaGFu
Z2VMb2cgICAgICAgICAgICAgICAgICAgICB8ICAgMTIgKysrKysKIFdlYktpdFRvb2xzL1Njcmlw
dHMvZ2V0LXdlYmtpdC12ZXJzaW9uICAgIHwgICA1MyArKysrKysrKysrKysrKysrKysrKysKIDEy
IGZpbGVzIGNoYW5nZWQsIDI3NSBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQogY3JlYXRl
IG1vZGUgMTAwNjQ0IFdlYktpdC9xdC9BcGkvcXdlYmtpdHZlcnNpb24uY3BwCiBjcmVhdGUgbW9k
ZSAxMDA2NDQgV2ViS2l0L3F0L0FwaS9xd2Via2l0dmVyc2lvbi5oCiBjcmVhdGUgbW9kZSAxMDA2
NDQgV2ViS2l0VG9vbHMvU2NyaXB0cy9nZXQtd2Via2l0LXZlcnNpb24KCmRpZmYgLS1naXQgYS9D
aGFuZ2VMb2cgYi9DaGFuZ2VMb2cKaW5kZXggOThlYzFlNC4uYzFmZGViZCAxMDA2NDQKLS0tIGEv
Q2hhbmdlTG9nCisrKyBiL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDA5LTA3LTEwICBS
b2JlcnQgSG9nYW4gIDxyb2JlcnRAcm9iZXJ0aG9nYW4ubmV0PgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBXZWJLaXQgdmVyc2lvbiBBUEkgdG8g
UXQuCisKKyAgICAgICAgR2V0IHRoZSBjdXJyZW50ICdTYWZhcmknIHZlcnNpb24gb2YgV2ViS2l0
IGZyb20gVmVyc2lvbi54Y2NvbmZpZworICAgICAgICBhdCBjb21waWxlIHRpbWUgYW5kIG1ha2Ug
aXQgYXZhaWxhYmxlIHRvIFF0IGFwcGxpY2F0aW9ucyB0aHJvdWdoCisgICAgICAgIHdlYktpdFZl
cnNpb24oKS4KKworICAgICAgICBBbHNvIGFtZW5kIHRoZSBVc2VyIEFnZW50IHN0cmluZyB0byBw
bGFjZSB0aGUgU2FmYXJpIGNsYXVzZSBvdXRzaWRlCisgICAgICAgIHRoZSBmaW5hbCBicmFja2V0
IGFuZCB0byB0aGUgZW5kIG9mIHRoZSBVQSBzdHJpbmcuCisKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI3MTU4CisKKyAgICAgICAgKiBXZWJLaXQucHJp
OiBDYWxsIGdldC13ZWJraXQtdmVyc2lvbiBhbmQgYWRkIGRlZmluZXMgZm9yIHdlYmtpdCB2ZXJz
aW9uLgorCiAyMDA5LTA3LTA3ICBOb3JiZXJ0IExlc2VyICA8bm9yYmVydC5sZXNlckBub2tpYS5j
b20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gSGF1c21hbm4uCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDY0MDNmNWIuLjJmOTI3
ODEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjAgQEAKKzIwMDktMDctMTAgIFJvYmVydCBIb2dhbiAgPHJvYmVydEByb2Jl
cnRob2dhbi5uZXQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQWRkIFdlYktpdCB2ZXJzaW9uIEFQSSB0byBRdC4KKyAgICAgICAgCisgICAgICAgIEdl
dCB0aGUgY3VycmVudCAnU2FmYXJpJyB2ZXJzaW9uIG9mIFdlYktpdCBmcm9tIFZlcnNpb24ueGNj
b25maWcKKyAgICAgICAgYXQgY29tcGlsZSB0aW1lIGFuZCBtYWtlIGl0IGF2YWlsYWJsZSB0byBR
dCBhcHBsaWNhdGlvbnMgdGhyb3VnaAorICAgICAgICB3ZWJLaXRWZXJzaW9uKCkuCisgICAgICAg
IAorICAgICAgICBBbHNvIGFtZW5kIHRoZSBVc2VyIEFnZW50IHN0cmluZyB0byBwbGFjZSB0aGUg
U2FmYXJpIGNsYXVzZSBvdXRzaWRlCisgICAgICAgIHRoZSBmaW5hbCBicmFja2V0IGFuZCB0byB0
aGUgZW5kIG9mIHRoZSBVQSBzdHJpbmcuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTI3MTU4CisKKyAgICAgICAgKiBXZWJDb3JlLnBybzogQWRkIHF3
ZWJraXR2ZXJzaW9uLmNwcAorCiAyMDA5LTA3LTEwICBHcmVnIEJvbHNpbmdhICA8Ym9sc2luZ2FA
YXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFudHRpIEtvaXZpc3RvLgpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9XZWJDb3JlLnBybyBiL1dlYkNvcmUvV2ViQ29yZS5wcm8KaW5kZXggYTI2
NjQzOS4uYTg3MDRiMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnBybworKysgYi9XZWJD
b3JlL1dlYkNvcmUucHJvCkBAIC0xMjE0LDcgKzEyMTQsOCBAQCBTT1VSQ0VTICs9IFwKICAgICAu
Li9XZWJLaXQvcXQvQXBpL3F3ZWJoaXN0b3J5aW50ZXJmYWNlLmNwcCBcCiAgICAgLi4vV2ViS2l0
L3F0L0FwaS9xd2VicGx1Z2luZmFjdG9yeS5jcHAgXAogICAgIC4uL1dlYktpdC9xdC9BcGkvcXdl
YnNlY3VyaXR5b3JpZ2luLmNwcCBcCi0gICAgLi4vV2ViS2l0L3F0L0FwaS9xd2ViZGF0YWJhc2Uu
Y3BwCisgICAgLi4vV2ViS2l0L3F0L0FwaS9xd2ViZGF0YWJhc2UuY3BwIFwKKyAgICAuLi9XZWJL
aXQvcXQvQXBpL3F3ZWJraXR2ZXJzaW9uLmNwcAogCiAKICAgICB3aW4zMi0qfHdpbmNlKjogU09V
UkNFUyArPSBwbGF0Zm9ybS93aW4vU3lzdGVtVGltZVdpbi5jcHAKZGlmZiAtLWdpdCBhL1dlYktp
dC5wcmkgYi9XZWJLaXQucHJpCmluZGV4IDczYTVlNWMuLmVkOGRiNDYgMTAwNjQ0Ci0tLSBhL1dl
YktpdC5wcmkKKysrIGIvV2ViS2l0LnByaQpAQCAtOSw2ICs5LDMyIEBAIGlzRW1wdHkoT1VUUFVU
X0RJUikgewogICAgIH0KIH0KIAorIyBUaGlzIGdldHMgdGhlIFhYWC5YWCBXZWJLaXQgdmVyc2lv
biBudW1iZXIgZm9yIHVzZSBpbiBVc2VyLUFnZW50IGhlYWRlciBzdHJpbmdzLgorTUFKT1JfVkVS
U0lPTiA9ICQkc3lzdGVtKHBlcmwgV2ViS2l0VG9vbHMvU2NyaXB0cy9nZXQtd2Via2l0LXZlcnNp
b24gLS1tYWpvciBcCisgICAgICAgICAgICAgICAgICAgICAgICAgV2ViQ29yZS9Db25maWd1cmF0
aW9ucy9WZXJzaW9uLnhjY29uZmlnKQorTUlOT1JfVkVSU0lPTiA9ICQkc3lzdGVtKHBlcmwgV2Vi
S2l0VG9vbHMvU2NyaXB0cy9nZXQtd2Via2l0LXZlcnNpb24gLS1taW5vciBcCisgICAgICAgICAg
ICAgICAgICAgICAgICAgV2ViQ29yZS9Db25maWd1cmF0aW9ucy9WZXJzaW9uLnhjY29uZmlnKQor
Citpc0VtcHR5KE1BSk9SX1ZFUlNJT04peworICB3YXJuaW5nKENvdWxkIG5vdCBnZXQgV2ViS2l0
ICdtYWpvcicgdmVyc2lvbiBudW1iZXI6IFBvc3NpYmxlIGZvcm1hdCBjaGFuZ2Ugb2YgXAorICAg
ICAgICAnV2ViQ29yZS9Db25maWd1cmF0aW9ucy9WZXJzaW9uLnhjY29uZmlnLiBEZWZhdWx0aW5n
IHRvICc1MzEnLicgXAorICAgICAgICBvciBjb2RpbmcgZXJyb3IgaW4gJ1dlYktpdFRvb2xzL1Nj
cmlwdHMvZ2V0LXdlYmtpdC12ZXJzaW9uJy4gXAorICAgICAgICBEZWZhdWx0aW5nIHRvICc1MzEn
LicpCisgIERFRklORVMgKz0gV0VCS0lUX1VTRVJfQUdFTlRfTUFKT1JfVkVSU0lPTj01MzEKK30g
ZWxzZSB7CisgIERFRklORVMgKz0gV0VCS0lUX1VTRVJfQUdFTlRfTUFKT1JfVkVSU0lPTj0kJE1B
Sk9SX1ZFUlNJT04KK30KK2lzRW1wdHkoTUlOT1JfVkVSU0lPTil7CisgIHdhcm5pbmcoQ291bGQg
bm90IGdldCBXZWJLaXQgJ21ham9yJyB2ZXJzaW9uIG51bWJlci4gUG9zc2libGUgZm9ybWF0IGNo
YW5nZSBvZiBcCisgICAgICAgJ1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvVmVyc2lvbi54Y2NvbmZp
Zy4gIFwKKyAgICAgICAgb3IgY29kaW5nIGVycm9yIGluICdXZWJLaXRUb29scy9TY3JpcHRzL2dl
dC13ZWJraXQtdmVyc2lvbi4gXAorICAgICAgICBEZWZhdWx0aW5nIHRvICczJy4nKQorICBERUZJ
TkVTICs9IFdFQktJVF9VU0VSX0FHRU5UX01JTk9SX1ZFUlNJT049MworfSBlbHNlIHsKKyAgREVG
SU5FUyArPSBXRUJLSVRfVVNFUl9BR0VOVF9NSU5PUl9WRVJTSU9OPSQkTUlOT1JfVkVSU0lPTgor
fQorCisKIERFRklORVMgKz0gQlVJTERJTkdfUVRfXz0xCiBidWlsZGluZy1saWJzIHsKICAgICB3
aW4zMi1tc3ZjKjogSU5DTFVERVBBVEggKz0gJCRQV0QvSmF2YVNjcmlwdENvcmUvb3Mtd2luMzIK
ZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9BcGkvaGVhZGVycy5wcmkgYi9XZWJLaXQvcXQvQXBpL2hl
YWRlcnMucHJpCmluZGV4IGQ5MmViMWMuLmQ3M2FkYjAgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9B
cGkvaGVhZGVycy5wcmkKKysrIGIvV2ViS2l0L3F0L0FwaS9oZWFkZXJzLnByaQpAQCAtOCw0ICs4
LDUgQEAgV0VCS0lUX0FQSV9IRUFERVJTID0gJCRQV0QvcXdlYmZyYW1lLmggXAogICAgICAgICAg
ICAgICAgICAgICAgJCRQV0QvcXdlYnNlY3VyaXR5b3JpZ2luLmggXAogICAgICAgICAgICAgICAg
ICAgICAgJCRQV0QvcXdlYmVsZW1lbnQuaCBcCiAgICAgICAgICAgICAgICAgICAgICAkJFBXRC9x
d2VicGx1Z2luZmFjdG9yeS5oIFwKLSAgICAgICAgICAgICAgICAgICAgICQkUFdEL3F3ZWJoaXN0
b3J5LmgKKyAgICAgICAgICAgICAgICAgICAgICQkUFdEL3F3ZWJoaXN0b3J5LmggXAorICAgICAg
ICAgICAgICAgICAgICAgJCRQV0QvcXdlYmtpdHZlcnNpb24uaApkaWZmIC0tZ2l0IGEvV2ViS2l0
L3F0L0FwaS9xd2Via2l0dmVyc2lvbi5jcHAgYi9XZWJLaXQvcXQvQXBpL3F3ZWJraXR2ZXJzaW9u
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMWUzOTViCi0tLSAvZGV2
L251bGwKKysrIGIvV2ViS2l0L3F0L0FwaS9xd2Via2l0dmVyc2lvbi5jcHAKQEAgLTAsMCArMSw3
MSBAQAorLyoKKyAgICBDb3B5cmlnaHQgKEMpIDIwMDkgUm9iZXJ0IEhvZ2FuIDxyb2JlcnRAcm9i
ZXJ0aG9nYW4ubmV0PgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICAgTGljZW5zZSBhcyBwdWJsaXNo
ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICAgdmVyc2lvbiAy
IG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgor
CisgICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls
bCBiZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g
dGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91IHNob3VsZCBoYXZl
IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZQorICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIu
ICBJZiBub3QsIHdyaXRlIHRvCisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j
LiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBCb3N0b24sIE1BIDAyMTEw
LTEzMDEsIFVTQS4KKyovCisKKyNpbmNsdWRlIDxxc3RyaW5nLmg+CisjaW5jbHVkZSA8cXdlYmtp
dHZlcnNpb24uaD4KKworLy8gRmFpbHVyZSB0byBkZXRlcm1pbmUgdGhlIFdlYktpdCB2ZXJzaW9u
IGF0IGNvbXBpbGUgdGltZSBzaG91bGQgcmVzdWx0CisvLyBpbiB0aGVzZSBkZWZhdWx0IHZhbHVl
cyBiZWluZyBkZWZpbmVkIGJ5IFdlYktpdC5wcmkuIFNvIHRoaXMgaXMgYSBmYWlsc2FmZS4KKy8v
IFRoZSB2ZXJzaW9uIG51bWJlcnMgY2hvc2VuIGhlcmUgYXJlIGFyYml0cmFyeS4KKyNpZiBub3Qg
ZGVmaW5lZChXRUJLSVRfVVNFUl9BR0VOVF9NQUpPUl9WRVJTSU9OKQorIyAgZGVmaW5lIFdFQktJ
VF9VU0VSX0FHRU5UX01BSk9SX1ZFUlNJT04gNTMxCisjZW5kaWYKKyNpZiBub3QgZGVmaW5lZChX
RUJLSVRfVVNFUl9BR0VOVF9NSU5PUl9WRVJTSU9OKQorIyAgZGVmaW5lIFdFQktJVF9VU0VSX0FH
RU5UX01JTk9SX1ZFUlNJT04gMworI2VuZGlmCisKKworLyohCisgICAgXHJlbGF0ZXMgPFdlYktp
dFZlcnNpb24+CisKKyAgICBSZXR1cm5zIHRoZSB2ZXJzaW9uIG51bWJlciBvZiBXZWJLaXQgYXQg
cnVuLXRpbWUgYXMgYSBzdHJpbmcgKGZvcgorICAgIGV4YW1wbGUsICI1MzEuMyIpLiBUaGlzIGlz
IHRoZSB2ZXJzaW9uIG9mIFdlYktpdCB0aGUgYXBwbGljYXRpb24KKyAgICB3YXMgY29tcGlsZWQg
YWdhaW5zdC4KKworKi8KK1FTdHJpbmcgd2ViS2l0VmVyc2lvbigpCit7CisgICAgcmV0dXJuIFFT
dHJpbmcoIiUxLiUyIikuYXJnKFdFQktJVF9VU0VSX0FHRU5UX01BSk9SX1ZFUlNJT04pLmFyZyhX
RUJLSVRfVVNFUl9BR0VOVF9NSU5PUl9WRVJTSU9OKTsKK30KKworLyohCisgICAgXHJlbGF0ZXMg
PFdlYktpdFZlcnNpb24+CisKKyAgICBSZXR1cm5zIHRoZSAnbWFqb3InIHZlcnNpb24gbnVtYmVy
IG9mIFdlYktpdCBhdCBydW4tdGltZSBhcyBhbiBpbnRlZ2VyCisgICAgKGZvciBleGFtcGxlLCA1
MzEpLiBUaGlzIGlzIHRoZSB2ZXJzaW9uIG9mIFdlYktpdCB0aGUgYXBwbGljYXRpb24KKyAgICB3
YXMgY29tcGlsZWQgYWdhaW5zdC4KKworKi8KK2ludCB3ZWJLaXRNYWpvclZlcnNpb24oKQorewor
ICAgIHJldHVybiBXRUJLSVRfVVNFUl9BR0VOVF9NQUpPUl9WRVJTSU9OOworfQorCisvKiEKKyAg
ICBccmVsYXRlcyA8V2ViS2l0VmVyc2lvbj4KKworICAgIFJldHVybnMgdGhlICdtaW5vcicgdmVy
c2lvbiBudW1iZXIgb2YgV2ViS2l0IGF0IHJ1bi10aW1lIGFzIGFuIGludGVnZXIKKyAgICAoZm9y
IGV4YW1wbGUsIDMpLiBUaGlzIGlzIHRoZSB2ZXJzaW9uIG9mIFdlYktpdCB0aGUgYXBwbGljYXRp
b24KKyAgICB3YXMgY29tcGlsZWQgYWdhaW5zdC4KKworKi8KK2ludCB3ZWJLaXRNaW5vclZlcnNp
b24oKQoreworICAgIHJldHVybiBXRUJLSVRfVVNFUl9BR0VOVF9NSU5PUl9WRVJTSU9OOworfQpk
aWZmIC0tZ2l0IGEvV2ViS2l0L3F0L0FwaS9xd2Via2l0dmVyc2lvbi5oIGIvV2ViS2l0L3F0L0Fw
aS9xd2Via2l0dmVyc2lvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk2
YjU2ODcKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQvcXQvQXBpL3F3ZWJraXR2ZXJzaW9uLmgK
QEAgLTAsMCArMSwzMCBAQAorLyoKKyAgICBDb3B5cmlnaHQgKEMpIDIwMDkgUm9iZXJ0IEhvZ2Fu
IDxyb2JlcnRAcm9iZXJ0aG9nYW4ubmV0PgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICAgTGljZW5z
ZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisg
ICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl
ciB2ZXJzaW9uLgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl
IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3
aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkg
b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91
IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZQorICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUg
Q09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBCb3N0
b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyovCisKKyNpbmNsdWRlIDxxc3RyaW5nLmg+CisKKyNp
Zm5kZWYgUVdFQktJVFZFUlNJT05fSAorI2RlZmluZSBRV0VCS0lUVkVSU0lPTl9ICisKK1FTdHJp
bmcgd2ViS2l0VmVyc2lvbigpOworaW50IHdlYktpdE1ham9yVmVyc2lvbigpOworaW50IHdlYktp
dE1pbm9yVmVyc2lvbigpOworCisKKyNlbmRpZiAvLyBRV0VCS0lUVkVSU0lPTl9ICmRpZmYgLS1n
aXQgYS9XZWJLaXQvcXQvQXBpL3F3ZWJwYWdlLmNwcCBiL1dlYktpdC9xdC9BcGkvcXdlYnBhZ2Uu
Y3BwCmluZGV4IDRmMWM1MjYuLjg2NWU3ZmEgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9BcGkvcXdl
YnBhZ2UuY3BwCisrKyBiL1dlYktpdC9xdC9BcGkvcXdlYnBhZ2UuY3BwCkBAIC0yOCw2ICsyOCw3
IEBACiAjaW5jbHVkZSAicXdlYmhpc3RvcnkuaCIKICNpbmNsdWRlICJxd2ViaGlzdG9yeV9wLmgi
CiAjaW5jbHVkZSAicXdlYnNldHRpbmdzLmgiCisjaW5jbHVkZSAicXdlYmtpdHZlcnNpb24uaCIK
IAogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVUcmVlLmgiCkBAIC0yNjY1LDEy
ICsyNjY2LDEzIEBAIFFTdHJpbmcgUVdlYlBhZ2U6OnVzZXJBZ2VudEZvclVybChjb25zdCBRVXJs
JiB1cmwpIGNvbnN0CiAgICAgdWEuYXBwZW5kKFFMYXRpbjFTdHJpbmcoIikgIikpOwogCiAgICAg
Ly8gd2Via2l0L3F0IHZlcnNpb24KLSAgICB1YS5hcHBlbmQoUUxhdGluMVN0cmluZygiQXBwbGVX
ZWJLaXQvIiBXRUJLSVRfVkVSU0lPTiAiIChLSFRNTCwgbGlrZSBHZWNrbywgU2FmYXJpLzQxOS4z
KSAiKSk7CisgICAgdWEuYXBwZW5kKFFTdHJpbmcoUUxhdGluMVN0cmluZygiQXBwbGVXZWJLaXQv
JTEgKEtIVE1MLCBsaWtlIEdlY2tvKSAiKSkKKyAgICAgICAgICAgICAgICAgICAgICAuYXJnKFFT
dHJpbmcod2ViS2l0VmVyc2lvbigpKSkpOwogCiAgICAgLy8gQXBwbGljYXRpb24gbmFtZS92ZXJz
aW9uCiAgICAgUVN0cmluZyBhcHBOYW1lID0gUUNvcmVBcHBsaWNhdGlvbjo6YXBwbGljYXRpb25O
YW1lKCk7CiAgICAgaWYgKCFhcHBOYW1lLmlzRW1wdHkoKSkgewotICAgICAgICB1YS5hcHBlbmQo
UUxhdGluMUNoYXIoJyAnKSArIGFwcE5hbWUpOworICAgICAgICB1YS5hcHBlbmQoYXBwTmFtZSk7
CiAjaWYgUVRfVkVSU0lPTiA+PSAweDA0MDQwMAogICAgICAgICBRU3RyaW5nIGFwcFZlciA9IFFD
b3JlQXBwbGljYXRpb246OmFwcGxpY2F0aW9uVmVyc2lvbigpOwogICAgICAgICBpZiAoIWFwcFZl
ci5pc0VtcHR5KCkpCkBAIC0yNjgxLDYgKzI2ODMsMTAgQEAgUVN0cmluZyBRV2ViUGFnZTo6dXNl
ckFnZW50Rm9yVXJsKGNvbnN0IFFVcmwmIHVybCkgY29uc3QKICAgICAgICAgdWEuYXBwZW5kKFFM
YXRpbjFTdHJpbmcoIlF0LyIpKTsKICAgICAgICAgdWEuYXBwZW5kKFFMYXRpbjFTdHJpbmcocVZl
cnNpb24oKSkpOwogICAgIH0KKworICAgIHVhLmFwcGVuZChRU3RyaW5nKFFMYXRpbjFTdHJpbmco
IiBTYWZhcmkvJTEiKSkKKyAgICAgICAgICAgICAgICAgICAgICAuYXJnKHdlYktpdFZlcnNpb24o
KSkpOworCiAgICAgcmV0dXJuIHVhOwogfQogCmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvQ2hhbmdl
TG9nIGIvV2ViS2l0L3F0L0NoYW5nZUxvZwppbmRleCAzNWE1N2M5Li4yNWU1OWVjIDEwMDY0NAot
LS0gYS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9xdC9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyOSBAQAorMjAwOS0wNy0xMCAgUm9iZXJ0IEhvZ2FuICA8cm9iZXJ0QHJvYmVydGhvZ2Fu
Lm5ldD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
ZGQgV2ViS2l0IHZlcnNpb24gQVBJIHRvIFF0LgorICAgICAgICAKKyAgICAgICAgR2V0IHRoZSBj
dXJyZW50ICdTYWZhcmknIHZlcnNpb24gb2YgV2ViS2l0IGZyb20gVmVyc2lvbi54Y2NvbmZpZwor
ICAgICAgICBhdCBjb21waWxlIHRpbWUgYW5kIG1ha2UgaXQgYXZhaWxhYmxlIHRvIFF0IGFwcGxp
Y2F0aW9ucyB0aHJvdWdoCisgICAgICAgIHdlYktpdFZlcnNpb24oKS4KKyAgICAgICAgCisgICAg
ICAgIEFsc28gYW1lbmQgdGhlIFVzZXIgQWdlbnQgc3RyaW5nIHRvIHBsYWNlIHRoZSBTYWZhcmkg
Y2xhdXNlIG91dHNpZGUKKyAgICAgICAgdGhlIGZpbmFsIGJyYWNrZXQgYW5kIHRvIHRoZSBlbmQg
b2YgdGhlIFVBIHN0cmluZy4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjcxNTgKKworICAgICAgICAqIEFwaS9oZWFkZXJzLnByaToKKyAgICAgICAg
KiBBcGkvcXdlYmtpdHZlcnNpb24uY3BwOiBBZGRlZC4KKyAgICAgICAgKHdlYktpdFZlcnNpb24p
OgorICAgICAgICAod2ViS2l0TWFqb3JWZXJzaW9uKToKKyAgICAgICAgKHdlYktpdE1pbm9yVmVy
c2lvbik6CisgICAgICAgICogQXBpL3F3ZWJraXR2ZXJzaW9uLmg6IEFkZGVkLgorICAgICAgICAq
IEFwaS9xd2VicGFnZS5jcHA6CisgICAgICAgIChRV2ViUGFnZTo6dXNlckFnZW50Rm9yVXJsKToK
KyAgICAgICAgKiB0ZXN0cy9xd2Vidmlldy90c3RfcXdlYnZpZXcuY3BwOgorICAgICAgICAodHN0
X1FXZWJWaWV3OjpnZXRXZWJLaXRWZXJzaW9uKToKKwogMjAwOS0wNy0xMCAgU2ltb24gSGF1c21h
bm4gIDxzaW1vbi5oYXVzbWFubkBub2tpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgSG9s
Z2VyIEZyZXl0aGVyLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L3Rlc3RzL3F3ZWJ2aWV3L3RzdF9x
d2Vidmlldy5jcHAgYi9XZWJLaXQvcXQvdGVzdHMvcXdlYnZpZXcvdHN0X3F3ZWJ2aWV3LmNwcApp
bmRleCA2NTAxYmZjLi44NzJiOTUxIDEwMDY0NAotLS0gYS9XZWJLaXQvcXQvdGVzdHMvcXdlYnZp
ZXcvdHN0X3F3ZWJ2aWV3LmNwcAorKysgYi9XZWJLaXQvcXQvdGVzdHMvcXdlYnZpZXcvdHN0X3F3
ZWJ2aWV3LmNwcApAQCAtMjUsNiArMjUsNyBAQAogI2luY2x1ZGUgPHF3ZWJwYWdlLmg+CiAjaW5j
bHVkZSA8cW5ldHdvcmtyZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8cWRpcml0ZXJhdG9yLmg+CisjaW5j
bHVkZSA8cXdlYmtpdHZlcnNpb24uaD4KIAogY2xhc3MgdHN0X1FXZWJWaWV3IDogcHVibGljIFFP
YmplY3QKIHsKQEAgLTQwLDYgKzQxLDcgQEAgcHJpdmF0ZSBzbG90czoKICAgICB2b2lkIHJlbmRl
ckhpbnRzKCk7CiAgICAgdm9pZCBndWVzc1VybEZyb21TdHJpbmdfZGF0YSgpOwogICAgIHZvaWQg
Z3Vlc3NVcmxGcm9tU3RyaW5nKCk7CisgICAgdm9pZCBnZXRXZWJLaXRWZXJzaW9uKCk7CiB9Owog
CiAvLyBUaGlzIHdpbGwgYmUgY2FsbGVkIGJlZm9yZSB0aGUgZmlyc3QgdGVzdCBmdW5jdGlvbiBp
cyBleGVjdXRlZC4KQEAgLTE2MCw2ICsxNjIsMTUgQEAgdm9pZCB0c3RfUVdlYlZpZXc6Omd1ZXNz
VXJsRnJvbVN0cmluZygpCiAgICAgUUNPTVBBUkUodXJsLCBndWVzc1VybEZyb21TdHJpbmcpOwog
fQogCit2b2lkIHRzdF9RV2ViVmlldzo6Z2V0V2ViS2l0VmVyc2lvbigpCit7CisgICAgUVN0cmlu
ZyB2ZXJzaW9uID0gd2ViS2l0VmVyc2lvbigpOworICAgIFFWRVJJRlkodmVyc2lvbi50b0RvdWJs
ZSgpKTsKKyAgICBRQ09NUEFSRSh3ZWJLaXRNYWpvclZlcnNpb24oKSxXRUJLSVRfVVNFUl9BR0VO
VF9NQUpPUl9WRVJTSU9OKTsKKyAgICBRQ09NUEFSRSh3ZWJLaXRNaW5vclZlcnNpb24oKSxXRUJL
SVRfVVNFUl9BR0VOVF9NSU5PUl9WRVJTSU9OKTsKKworfQorCiBRVEVTVF9NQUlOKHRzdF9RV2Vi
VmlldykKICNpbmNsdWRlICJ0c3RfcXdlYnZpZXcubW9jIgogCmRpZmYgLS1naXQgYS9XZWJLaXRU
b29scy9DaGFuZ2VMb2cgYi9XZWJLaXRUb29scy9DaGFuZ2VMb2cKaW5kZXggNGNkY2JjNy4uYzVl
YTgzYiAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCisrKyBiL1dlYktpdFRvb2xz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDA5LTA3LTEwICBSb2JlcnQgSG9nYW4gIDxy
b2JlcnRAcm9iZXJ0aG9nYW4ubmV0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZCBXZWJLaXQgdmVyc2lvbiBBUEkgdG8gUXQuCisKKyAgICAgICAg
R2V0IHRoZSBjdXJyZW50ICdTYWZhcmknIHZlcnNpb24gb2YgV2ViS2l0IGZyb20gVmVyc2lvbi54
Y2NvbmZpZy4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjcxNTgKKworICAgICAgICAqIFNjcmlwdHMvZ2V0LXdlYmtpdC12ZXJzaW9uOiBBZGRlZC4K
KwogMjAwOS0wNy0xMCAgQWRhbSBSb2JlbiAgPGFyb2JlbkBhcHBsZS5jb20+CiAKICAgICAgICAg
U29ydCBhbGwgb3VyIFhjb2RlIHByb2plY3RzCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3Jp
cHRzL2dldC13ZWJraXQtdmVyc2lvbiBiL1dlYktpdFRvb2xzL1NjcmlwdHMvZ2V0LXdlYmtpdC12
ZXJzaW9uCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA3ZjhmMzUKLS0tIC9k
ZXYvbnVsbAorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL2dldC13ZWJraXQtdmVyc2lvbgpAQCAt
MCwwICsxLDUzIEBACisjIS91c3IvYmluL3BlcmwKKworIyBDb3B5cmlnaHQgKEMpIDIwMDkgUm9i
ZXJ0IEhvZ2FuIDxyb2JlcnRAcm9iZXJ0aG9nYW4ubmV0PgorIworIyBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisjIGFyZSBtZXQ6CisjCisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjIDMuICBOZWl0aGVy
IHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVz
IG9mCisjICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkCisjICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisj
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisj
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTCisjIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyMgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5ECisjIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorIyBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorCisjIFRoaXMgc2NyaXB0IHJlYWRzIFZlcnNpb24ueGNjb25maWcgYW5kIHJldHVybnMgZWl0
aGVyIG9yIGJvdGggb2YgdGhlIG1ham9yIGFuZCBtaW5vcgorIyBXZWJLaXQgdmVyc2lvbiBudW1i
ZXJzLiBJdCBpcyBjdXJyZW50bHkgdXNlZCBieSBXZWJLaXQucHJpLgorCit1c2Ugd2FybmluZ3M7
Cit1c2Ugc3RyaWN0OwordXNlIEdldG9wdDo6TG9uZzsKKworbXkgJHVzYWdlID0gImdldC13ZWJr
aXQtdmVyc2lvbiBbLW18LS1tYWpvciAtbnwtLW1pbm9yXSBXZWJDb3JlL0NvbmZpZ3VyYXRpb25z
L1ZlcnNpb24ueGNjb25maWciOworCitteSAkbWFqb3IgPSAwOworbXkgJG1pbm9yID0gMDsKK0dl
dE9wdGlvbnMoIm18bWFqb3IiID0+IFwkbWFqb3IsICJufG1pbm9yIiA9PiBcJG1pbm9yKTsKKwor
bXkgKCRmaWxlKSA9IEBBUkdWOworZGllICIkdXNhZ2VcbiIgdW5sZXNzICgkZmlsZSAmJiBAQVJH
ViA9PSAxKTsKKwordW5sZXNzIChvcGVuIElOUFVULCAiPCIsICRmaWxlKSB7IHByaW50IFNUREVS
UiAiRmlsZSBkb2VzIG5vdCBleGlzdDogJGZpbGVcbiI7fQord2hpbGUgKG15ICRsaW5lID0gPElO
UFVUPikgeworICAgIGlmICgoJGxpbmUgPX4gL15NQUpPUl9WRVJTSU9OXHMrPVxzK1xkKzsvICYm
ICRtYWpvcikgfHwKKyAgICAgICAgKCRsaW5lID1+IC9eTUlOT1JfVkVSU0lPTlxzKz1ccytcZCs7
LyAmJiAkbWlub3IpKSB7CisgICAgICAkbGluZSA9fiBzL14oTVtBSV1bSk5dT1JfVkVSU0lPTilc
cysoPSlccysoXGQrKTsvJDMvOworICAgICAgcHJpbnQgIiRsaW5lIjsKKyAgICB9Cit9CisKLS0g
CjEuNi4wLjQKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>32612</attachid>
            <date>2009-07-11 04:34:28 -0700</date>
            <delta_ts>2009-07-14 14:53:24 -0700</delta_ts>
            <desc>Updated patch</desc>
            <filename>0001-Add-WebKit-version-API-to-Qt.patch</filename>
            <type>text/plain</type>
            <size>16209</size>
            <attacher name="Robert Hogan">robert</attacher>
            
              <data encoding="base64">RnJvbSA0MTJhMTEwMTg2N2UxNWQ1NDNkNWYxNDE0ZGJlMmM4ZGYwNTkyZDRmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBtd2VuZ2UgPHJvYmVydEByb2JlcnRob2dhbi5uZXQ+CkRhdGU6
IFNhdCwgMTEgSnVsIDIwMDkgMTI6MjA6MzIgKzAxMDAKU3ViamVjdDogW1BBVENIXSBBZGQgV2Vi
S2l0IHZlcnNpb24gQVBJIHRvIFF0LgoKR2V0IHRoZSBjdXJyZW50ICdTYWZhcmknIHZlcnNpb24g
b2YgV2ViS2l0IGZyb20gVmVyc2lvbi54Y2NvbmZpZwphdCBjb21waWxlIHRpbWUgYW5kIG1ha2Ug
aXQgYXZhaWxhYmxlIHRvIFF0IGFwcGxpY2F0aW9ucyB0aHJvdWdoCndlYktpdFZlcnNpb24oKS4K
CkFsc28gYW1lbmQgdGhlIFVzZXIgQWdlbnQgc3RyaW5nIHRvIHBsYWNlIHRoZSBTYWZhcmkgY2xh
dXNlIG91dHNpZGUKdGhlIGZpbmFsIGJyYWNrZXQgYW5kIHRvIHRoZSBlbmQgb2YgdGhlIFVBIHN0
cmluZy4KCmh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzE1OAotLS0K
IENoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxNyArKysrKysr
CiBXZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTcgKysrKysr
KwogV2ViQ29yZS9XZWJDb3JlLnBybyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAzICstCiBX
ZWJLaXQucHJpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMjYgKysrKysrKysr
KysKIFdlYktpdC9xdC9BcGkvaGVhZGVycy5wcmkgICAgICAgICAgICAgICAgIHwgICAgMyArLQog
V2ViS2l0L3F0L0FwaS9xd2Via2l0dmVyc2lvbi5jcHAgICAgICAgICAgfCAgIDcxICsrKysrKysr
KysrKysrKysrKysrKysrKysrKysrCiBXZWJLaXQvcXQvQXBpL3F3ZWJraXR2ZXJzaW9uLmggICAg
ICAgICAgICB8ICAgMzAgKysrKysrKysrKysrCiBXZWJLaXQvcXQvQXBpL3F3ZWJwYWdlLmNwcCAg
ICAgICAgICAgICAgICB8ICAgMTAgKysrLQogV2ViS2l0L3F0L0NoYW5nZUxvZyAgICAgICAgICAg
ICAgICAgICAgICAgfCAgIDI2ICsrKysrKysrKysrCiBXZWJLaXQvcXQvdGVzdHMvcXdlYnZpZXcv
dHN0X3F3ZWJ2aWV3LmNwcCB8ICAgIDkgKysrKwogV2ViS2l0VG9vbHMvQ2hhbmdlTG9nICAgICAg
ICAgICAgICAgICAgICAgfCAgIDE3ICsrKysrKysKIFdlYktpdFRvb2xzL1NjcmlwdHMvZ2V0LXdl
YmtpdC12ZXJzaW9uICAgIHwgICA1MyArKysrKysrKysrKysrKysrKysrKysKIDEyIGZpbGVzIGNo
YW5nZWQsIDI3OCBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAw
NjQ0IFdlYktpdC9xdC9BcGkvcXdlYmtpdHZlcnNpb24uY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQg
V2ViS2l0L3F0L0FwaS9xd2Via2l0dmVyc2lvbi5oCiBjcmVhdGUgbW9kZSAxMDA3NTUgV2ViS2l0
VG9vbHMvU2NyaXB0cy9nZXQtd2Via2l0LXZlcnNpb24KCmRpZmYgLS1naXQgYS9DaGFuZ2VMb2cg
Yi9DaGFuZ2VMb2cKaW5kZXggOThlYzFlNC4uMDc0MmIwNSAxMDA2NDQKLS0tIGEvQ2hhbmdlTG9n
CisrKyBiL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDA5LTA3LTExICBSb2JlcnQgSG9n
YW4gIDxyb2JlcnRAcm9iZXJ0aG9nYW4ubmV0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFkZCBXZWJLaXQgdmVyc2lvbiBBUEkgdG8gUXQuCisgICAg
ICAgIAorICAgICAgICBHZXQgdGhlIGN1cnJlbnQgdmVyc2lvbiBvZiBXZWJLaXQgZnJvbSBXZWJL
aXQvbWFjL0NvbmZpZ3VyYXRpb25zL1ZlcnNpb24ueGNjb25maWcKKyAgICAgICAgYXQgY29tcGls
ZSB0aW1lIGFuZCBtYWtlIGl0IGF2YWlsYWJsZSB0byBRdCBhcHBsaWNhdGlvbnMgdGhyb3VnaAor
ICAgICAgICB3ZWJLaXRWZXJzaW9uKCkuCisgICAgICAgIAorICAgICAgICBBbHNvIGFtZW5kIHRo
ZSBVc2VyIEFnZW50IHN0cmluZyB0byBwbGFjZSB0aGUgU2FmYXJpIGNsYXVzZSBvdXRzaWRlCisg
ICAgICAgIHRoZSBmaW5hbCBicmFja2V0IGFuZCB0byB0aGUgZW5kIG9mIHRoZSBVQSBzdHJpbmcu
CisgICAgICAgIAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjcxNTgKKworICAgICAgICAqIFdlYktpdC5wcmk6CisKIDIwMDktMDctMDcgIE5vcmJlcnQg
TGVzZXIgIDxub3JiZXJ0Lmxlc2VyQG5va2lhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBT
aW1vbiBIYXVzbWFubi4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9D
aGFuZ2VMb2cKaW5kZXggNjZiYjZjZS4uN2RjOTY0ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFu
Z2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAwOS0wNy0x
MSAgUm9iZXJ0IEhvZ2FuICA8cm9iZXJ0QHJvYmVydGhvZ2FuLm5ldD4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgV2ViS2l0IHZlcnNpb24gQVBJ
IHRvIFF0LgorICAgICAgICAKKyAgICAgICAgR2V0IHRoZSBjdXJyZW50IHZlcnNpb24gb2YgV2Vi
S2l0IGZyb20gV2ViS2l0L21hYy9Db25maWd1cmF0aW9ucy9WZXJzaW9uLnhjY29uZmlnCisgICAg
ICAgIGF0IGNvbXBpbGUgdGltZSBhbmQgbWFrZSBpdCBhdmFpbGFibGUgdG8gUXQgYXBwbGljYXRp
b25zIHRocm91Z2gKKyAgICAgICAgd2ViS2l0VmVyc2lvbigpLgorICAgICAgICAKKyAgICAgICAg
QWxzbyBhbWVuZCB0aGUgVXNlciBBZ2VudCBzdHJpbmcgdG8gcGxhY2UgdGhlIFNhZmFyaSBjbGF1
c2Ugb3V0c2lkZQorICAgICAgICB0aGUgZmluYWwgYnJhY2tldCBhbmQgdG8gdGhlIGVuZCBvZiB0
aGUgVUEgc3RyaW5nLgorICAgICAgICAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTI3MTU4CisKKyAgICAgICAgKiBXZWJDb3JlLnBybzoKKwogMjAwOS0w
Ny0xMSAgU2ltb24gSGF1c21hbm4gIDxoYXVzbWFubkB3ZWJraXQub3JnPgogCiAgICAgICAgIEZp
eCB0aGUgUXQgYnVpbGQgYWZ0ZXIgcjQ1NzI0LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3Jl
LnBybyBiL1dlYkNvcmUvV2ViQ29yZS5wcm8KaW5kZXggODRhNWI2YS4uOWNiZmQ5OSAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9XZWJDb3JlLnBybworKysgYi9XZWJDb3JlL1dlYkNvcmUucHJvCkBAIC0x
MjE2LDcgKzEyMTYsOCBAQCBTT1VSQ0VTICs9IFwKICAgICAuLi9XZWJLaXQvcXQvQXBpL3F3ZWJo
aXN0b3J5aW50ZXJmYWNlLmNwcCBcCiAgICAgLi4vV2ViS2l0L3F0L0FwaS9xd2VicGx1Z2luZmFj
dG9yeS5jcHAgXAogICAgIC4uL1dlYktpdC9xdC9BcGkvcXdlYnNlY3VyaXR5b3JpZ2luLmNwcCBc
Ci0gICAgLi4vV2ViS2l0L3F0L0FwaS9xd2ViZGF0YWJhc2UuY3BwCisgICAgLi4vV2ViS2l0L3F0
L0FwaS9xd2ViZGF0YWJhc2UuY3BwIFwKKyAgICAuLi9XZWJLaXQvcXQvQXBpL3F3ZWJraXR2ZXJz
aW9uLmNwcAogCiAKICAgICB3aW4zMi0qfHdpbmNlKjogU09VUkNFUyArPSBwbGF0Zm9ybS93aW4v
U3lzdGVtVGltZVdpbi5jcHAKZGlmZiAtLWdpdCBhL1dlYktpdC5wcmkgYi9XZWJLaXQucHJpCmlu
ZGV4IDczYTVlNWMuLmFkM2E3Y2EgMTAwNjQ0Ci0tLSBhL1dlYktpdC5wcmkKKysrIGIvV2ViS2l0
LnByaQpAQCAtOSw2ICs5LDMyIEBAIGlzRW1wdHkoT1VUUFVUX0RJUikgewogICAgIH0KIH0KIAor
IyBUaGlzIGdldHMgdGhlIFhYWC5YWCBXZWJLaXQgdmVyc2lvbiBudW1iZXIgZm9yIHVzZSBpbiBV
c2VyLUFnZW50IGhlYWRlciBzdHJpbmdzLgorTUFKT1JfVkVSU0lPTiA9ICQkc3lzdGVtKHBlcmwg
V2ViS2l0VG9vbHMvU2NyaXB0cy9nZXQtd2Via2l0LXZlcnNpb24gLS1tYWpvciBcCisgICAgICAg
ICAgICAgICAgICAgICAgICAgV2ViS2l0L21hYy9Db25maWd1cmF0aW9ucy9WZXJzaW9uLnhjY29u
ZmlnKQorTUlOT1JfVkVSU0lPTiA9ICQkc3lzdGVtKHBlcmwgV2ViS2l0VG9vbHMvU2NyaXB0cy9n
ZXQtd2Via2l0LXZlcnNpb24gLS1taW5vciBcCisgICAgICAgICAgICAgICAgICAgICAgICAgV2Vi
S2l0L21hYy9Db25maWd1cmF0aW9ucy9WZXJzaW9uLnhjY29uZmlnKQorCitpc0VtcHR5KE1BSk9S
X1ZFUlNJT04peworICB3YXJuaW5nKENvdWxkIG5vdCBnZXQgV2ViS2l0ICdtYWpvcicgdmVyc2lv
biBudW1iZXI6IFBvc3NpYmxlIGZvcm1hdCBjaGFuZ2Ugb2YgXAorICAgICAgICAnV2ViQ29yZS9D
b25maWd1cmF0aW9ucy9WZXJzaW9uLnhjY29uZmlnJyAgXAorICAgICAgICBvciBjb2RpbmcgZXJy
b3IgaW4gJ1dlYktpdFRvb2xzL1NjcmlwdHMvZ2V0LXdlYmtpdC12ZXJzaW9uJy4gXAorICAgICAg
ICBEZWZhdWx0aW5nIHRvICc1MzEnLicpCisgIERFRklORVMgKz0gV0VCS0lUX1VTRVJfQUdFTlRf
TUFKT1JfVkVSU0lPTj01MzEKK30gZWxzZSB7CisgIERFRklORVMgKz0gV0VCS0lUX1VTRVJfQUdF
TlRfTUFKT1JfVkVSU0lPTj0kJE1BSk9SX1ZFUlNJT04KK30KK2lzRW1wdHkoTUlOT1JfVkVSU0lP
Til7CisgIHdhcm5pbmcoQ291bGQgbm90IGdldCBXZWJLaXQgJ21ham9yJyB2ZXJzaW9uIG51bWJl
ci4gUG9zc2libGUgZm9ybWF0IGNoYW5nZSBvZiBcCisgICAgICAgJ1dlYkNvcmUvQ29uZmlndXJh
dGlvbnMvVmVyc2lvbi54Y2NvbmZpZycgIFwKKyAgICAgICAgb3IgY29kaW5nIGVycm9yIGluICdX
ZWJLaXRUb29scy9TY3JpcHRzL2dldC13ZWJraXQtdmVyc2lvbi4gXAorICAgICAgICBEZWZhdWx0
aW5nIHRvICczJy4nKQorICBERUZJTkVTICs9IFdFQktJVF9VU0VSX0FHRU5UX01JTk9SX1ZFUlNJ
T049MworfSBlbHNlIHsKKyAgREVGSU5FUyArPSBXRUJLSVRfVVNFUl9BR0VOVF9NSU5PUl9WRVJT
SU9OPSQkTUlOT1JfVkVSU0lPTgorfQorCisKIERFRklORVMgKz0gQlVJTERJTkdfUVRfXz0xCiBi
dWlsZGluZy1saWJzIHsKICAgICB3aW4zMi1tc3ZjKjogSU5DTFVERVBBVEggKz0gJCRQV0QvSmF2
YVNjcmlwdENvcmUvb3Mtd2luMzIKZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9BcGkvaGVhZGVycy5w
cmkgYi9XZWJLaXQvcXQvQXBpL2hlYWRlcnMucHJpCmluZGV4IGQ5MmViMWMuLmQ3M2FkYjAgMTAw
NjQ0Ci0tLSBhL1dlYktpdC9xdC9BcGkvaGVhZGVycy5wcmkKKysrIGIvV2ViS2l0L3F0L0FwaS9o
ZWFkZXJzLnByaQpAQCAtOCw0ICs4LDUgQEAgV0VCS0lUX0FQSV9IRUFERVJTID0gJCRQV0QvcXdl
YmZyYW1lLmggXAogICAgICAgICAgICAgICAgICAgICAgJCRQV0QvcXdlYnNlY3VyaXR5b3JpZ2lu
LmggXAogICAgICAgICAgICAgICAgICAgICAgJCRQV0QvcXdlYmVsZW1lbnQuaCBcCiAgICAgICAg
ICAgICAgICAgICAgICAkJFBXRC9xd2VicGx1Z2luZmFjdG9yeS5oIFwKLSAgICAgICAgICAgICAg
ICAgICAgICQkUFdEL3F3ZWJoaXN0b3J5LmgKKyAgICAgICAgICAgICAgICAgICAgICQkUFdEL3F3
ZWJoaXN0b3J5LmggXAorICAgICAgICAgICAgICAgICAgICAgJCRQV0QvcXdlYmtpdHZlcnNpb24u
aApkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L0FwaS9xd2Via2l0dmVyc2lvbi5jcHAgYi9XZWJLaXQv
cXQvQXBpL3F3ZWJraXR2ZXJzaW9uLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi4zMWUzOTViCi0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0L3F0L0FwaS9xd2Via2l0dmVy
c2lvbi5jcHAKQEAgLTAsMCArMSw3MSBAQAorLyoKKyAgICBDb3B5cmlnaHQgKEMpIDIwMDkgUm9i
ZXJ0IEhvZ2FuIDxyb2JlcnRAcm9iZXJ0aG9nYW4ubmV0PgorCisgICAgVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisg
ICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg
ZWl0aGVyCisgICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24p
IGFueSBsYXRlciB2ZXJzaW9uLgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGlu
IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdB
UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFO
VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdO
VQorICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgor
CisgICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUg
dGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgICAgdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwK
KyAgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyovCisKKyNpbmNsdWRlIDxxc3RyaW5n
Lmg+CisjaW5jbHVkZSA8cXdlYmtpdHZlcnNpb24uaD4KKworLy8gRmFpbHVyZSB0byBkZXRlcm1p
bmUgdGhlIFdlYktpdCB2ZXJzaW9uIGF0IGNvbXBpbGUgdGltZSBzaG91bGQgcmVzdWx0CisvLyBp
biB0aGVzZSBkZWZhdWx0IHZhbHVlcyBiZWluZyBkZWZpbmVkIGJ5IFdlYktpdC5wcmkuIFNvIHRo
aXMgaXMgYSBmYWlsc2FmZS4KKy8vIFRoZSB2ZXJzaW9uIG51bWJlcnMgY2hvc2VuIGhlcmUgYXJl
IGFyYml0cmFyeS4KKyNpZiBub3QgZGVmaW5lZChXRUJLSVRfVVNFUl9BR0VOVF9NQUpPUl9WRVJT
SU9OKQorIyAgZGVmaW5lIFdFQktJVF9VU0VSX0FHRU5UX01BSk9SX1ZFUlNJT04gNTMxCisjZW5k
aWYKKyNpZiBub3QgZGVmaW5lZChXRUJLSVRfVVNFUl9BR0VOVF9NSU5PUl9WRVJTSU9OKQorIyAg
ZGVmaW5lIFdFQktJVF9VU0VSX0FHRU5UX01JTk9SX1ZFUlNJT04gMworI2VuZGlmCisKKworLyoh
CisgICAgXHJlbGF0ZXMgPFdlYktpdFZlcnNpb24+CisKKyAgICBSZXR1cm5zIHRoZSB2ZXJzaW9u
IG51bWJlciBvZiBXZWJLaXQgYXQgcnVuLXRpbWUgYXMgYSBzdHJpbmcgKGZvcgorICAgIGV4YW1w
bGUsICI1MzEuMyIpLiBUaGlzIGlzIHRoZSB2ZXJzaW9uIG9mIFdlYktpdCB0aGUgYXBwbGljYXRp
b24KKyAgICB3YXMgY29tcGlsZWQgYWdhaW5zdC4KKworKi8KK1FTdHJpbmcgd2ViS2l0VmVyc2lv
bigpCit7CisgICAgcmV0dXJuIFFTdHJpbmcoIiUxLiUyIikuYXJnKFdFQktJVF9VU0VSX0FHRU5U
X01BSk9SX1ZFUlNJT04pLmFyZyhXRUJLSVRfVVNFUl9BR0VOVF9NSU5PUl9WRVJTSU9OKTsKK30K
KworLyohCisgICAgXHJlbGF0ZXMgPFdlYktpdFZlcnNpb24+CisKKyAgICBSZXR1cm5zIHRoZSAn
bWFqb3InIHZlcnNpb24gbnVtYmVyIG9mIFdlYktpdCBhdCBydW4tdGltZSBhcyBhbiBpbnRlZ2Vy
CisgICAgKGZvciBleGFtcGxlLCA1MzEpLiBUaGlzIGlzIHRoZSB2ZXJzaW9uIG9mIFdlYktpdCB0
aGUgYXBwbGljYXRpb24KKyAgICB3YXMgY29tcGlsZWQgYWdhaW5zdC4KKworKi8KK2ludCB3ZWJL
aXRNYWpvclZlcnNpb24oKQoreworICAgIHJldHVybiBXRUJLSVRfVVNFUl9BR0VOVF9NQUpPUl9W
RVJTSU9OOworfQorCisvKiEKKyAgICBccmVsYXRlcyA8V2ViS2l0VmVyc2lvbj4KKworICAgIFJl
dHVybnMgdGhlICdtaW5vcicgdmVyc2lvbiBudW1iZXIgb2YgV2ViS2l0IGF0IHJ1bi10aW1lIGFz
IGFuIGludGVnZXIKKyAgICAoZm9yIGV4YW1wbGUsIDMpLiBUaGlzIGlzIHRoZSB2ZXJzaW9uIG9m
IFdlYktpdCB0aGUgYXBwbGljYXRpb24KKyAgICB3YXMgY29tcGlsZWQgYWdhaW5zdC4KKworKi8K
K2ludCB3ZWJLaXRNaW5vclZlcnNpb24oKQoreworICAgIHJldHVybiBXRUJLSVRfVVNFUl9BR0VO
VF9NSU5PUl9WRVJTSU9OOworfQpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L0FwaS9xd2Via2l0dmVy
c2lvbi5oIGIvV2ViS2l0L3F0L0FwaS9xd2Via2l0dmVyc2lvbi5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjk2YjU2ODcKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQvcXQv
QXBpL3F3ZWJraXR2ZXJzaW9uLmgKQEAgLTAsMCArMSwzMCBAQAorLyoKKyAgICBDb3B5cmlnaHQg
KEMpIDIwMDkgUm9iZXJ0IEhvZ2FuIDxyb2JlcnRAcm9iZXJ0aG9nYW4ubmV0PgorCisgICAgVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgorICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljCisgICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbjsgZWl0aGVyCisgICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQg
eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGRp
c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICAgYnV0IFdJ
VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YK
KyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu
ICBTZWUgdGhlIEdOVQorICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y
ZSBkZXRhaWxzLgorCisgICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgIGFsb25nIHdpdGggdGhpcyBs
aWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgICAg
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBG
aWZ0aCBGbG9vciwKKyAgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyovCisKKyNpbmNs
dWRlIDxxc3RyaW5nLmg+CisKKyNpZm5kZWYgUVdFQktJVFZFUlNJT05fSAorI2RlZmluZSBRV0VC
S0lUVkVSU0lPTl9ICisKK1FTdHJpbmcgd2ViS2l0VmVyc2lvbigpOworaW50IHdlYktpdE1ham9y
VmVyc2lvbigpOworaW50IHdlYktpdE1pbm9yVmVyc2lvbigpOworCisKKyNlbmRpZiAvLyBRV0VC
S0lUVkVSU0lPTl9ICmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvQXBpL3F3ZWJwYWdlLmNwcCBiL1dl
YktpdC9xdC9BcGkvcXdlYnBhZ2UuY3BwCmluZGV4IGI5NzQyMGMuLjU2MGU4MjQgMTAwNjQ0Ci0t
LSBhL1dlYktpdC9xdC9BcGkvcXdlYnBhZ2UuY3BwCisrKyBiL1dlYktpdC9xdC9BcGkvcXdlYnBh
Z2UuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAicXdlYmhpc3RvcnkuaCIKICNpbmNs
dWRlICJxd2ViaGlzdG9yeV9wLmgiCiAjaW5jbHVkZSAicXdlYnNldHRpbmdzLmgiCisjaW5jbHVk
ZSAicXdlYmtpdHZlcnNpb24uaCIKIAogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJh
bWVUcmVlLmgiCkBAIC0yNjgzLDEyICsyNjg0LDEzIEBAIFFTdHJpbmcgUVdlYlBhZ2U6OnVzZXJB
Z2VudEZvclVybChjb25zdCBRVXJsJiB1cmwpIGNvbnN0CiAgICAgdWEuYXBwZW5kKFFMYXRpbjFT
dHJpbmcoIikgIikpOwogCiAgICAgLy8gd2Via2l0L3F0IHZlcnNpb24KLSAgICB1YS5hcHBlbmQo
UUxhdGluMVN0cmluZygiQXBwbGVXZWJLaXQvIiBXRUJLSVRfVkVSU0lPTiAiIChLSFRNTCwgbGlr
ZSBHZWNrbywgU2FmYXJpLzQxOS4zKSAiKSk7CisgICAgdWEuYXBwZW5kKFFTdHJpbmcoUUxhdGlu
MVN0cmluZygiQXBwbGVXZWJLaXQvJTEgKEtIVE1MLCBsaWtlIEdlY2tvKSAiKSkKKyAgICAgICAg
ICAgICAgICAgICAgICAuYXJnKFFTdHJpbmcod2ViS2l0VmVyc2lvbigpKSkpOwogCiAgICAgLy8g
QXBwbGljYXRpb24gbmFtZS92ZXJzaW9uCiAgICAgUVN0cmluZyBhcHBOYW1lID0gUUNvcmVBcHBs
aWNhdGlvbjo6YXBwbGljYXRpb25OYW1lKCk7CiAgICAgaWYgKCFhcHBOYW1lLmlzRW1wdHkoKSkg
ewotICAgICAgICB1YS5hcHBlbmQoUUxhdGluMUNoYXIoJyAnKSArIGFwcE5hbWUpOworICAgICAg
ICB1YS5hcHBlbmQoYXBwTmFtZSk7CiAjaWYgUVRfVkVSU0lPTiA+PSAweDA0MDQwMAogICAgICAg
ICBRU3RyaW5nIGFwcFZlciA9IFFDb3JlQXBwbGljYXRpb246OmFwcGxpY2F0aW9uVmVyc2lvbigp
OwogICAgICAgICBpZiAoIWFwcFZlci5pc0VtcHR5KCkpCkBAIC0yNjk5LDYgKzI3MDEsMTAgQEAg
UVN0cmluZyBRV2ViUGFnZTo6dXNlckFnZW50Rm9yVXJsKGNvbnN0IFFVcmwmIHVybCkgY29uc3QK
ICAgICAgICAgdWEuYXBwZW5kKFFMYXRpbjFTdHJpbmcoIlF0LyIpKTsKICAgICAgICAgdWEuYXBw
ZW5kKFFMYXRpbjFTdHJpbmcocVZlcnNpb24oKSkpOwogICAgIH0KKworICAgIHVhLmFwcGVuZChR
U3RyaW5nKFFMYXRpbjFTdHJpbmcoIiBTYWZhcmkvJTEiKSkKKyAgICAgICAgICAgICAgICAgICAg
ICAuYXJnKHdlYktpdFZlcnNpb24oKSkpOworCiAgICAgcmV0dXJuIHVhOwogfQogCmRpZmYgLS1n
aXQgYS9XZWJLaXQvcXQvQ2hhbmdlTG9nIGIvV2ViS2l0L3F0L0NoYW5nZUxvZwppbmRleCBlZWEx
YTQwLi44MmVjYTU5IDEwMDY0NAotLS0gYS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisrKyBiL1dlYktp
dC9xdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAwOS0wNy0xMSAgUm9iZXJ0IEhvZ2Fu
ICA8cm9iZXJ0QHJvYmVydGhvZ2FuLm5ldD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBBZGQgV2ViS2l0IHZlcnNpb24gQVBJIHRvIFF0LgorICAgICAg
ICAKKyAgICAgICAgR2V0IHRoZSBjdXJyZW50IHZlcnNpb24gb2YgV2ViS2l0IGZyb20gV2ViS2l0
L21hYy9Db25maWd1cmF0aW9ucy9WZXJzaW9uLnhjY29uZmlnCisgICAgICAgIGF0IGNvbXBpbGUg
dGltZSBhbmQgbWFrZSBpdCBhdmFpbGFibGUgdG8gUXQgYXBwbGljYXRpb25zIHRocm91Z2gKKyAg
ICAgICAgd2ViS2l0VmVyc2lvbigpLgorICAgICAgICAKKyAgICAgICAgQWxzbyBhbWVuZCB0aGUg
VXNlciBBZ2VudCBzdHJpbmcgdG8gcGxhY2UgdGhlIFNhZmFyaSBjbGF1c2Ugb3V0c2lkZQorICAg
ICAgICB0aGUgZmluYWwgYnJhY2tldCBhbmQgdG8gdGhlIGVuZCBvZiB0aGUgVUEgc3RyaW5nLgor
ICAgICAgICAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTI3MTU4CisKKyAgICAgICAgKiBBcGkvaGVhZGVycy5wcmk6CisgICAgICAgICogQXBpL3F3ZWJr
aXR2ZXJzaW9uLmNwcDogQWRkZWQuCisgICAgICAgICh3ZWJLaXRWZXJzaW9uKToKKyAgICAgICAg
KHdlYktpdE1ham9yVmVyc2lvbik6CisgICAgICAgICh3ZWJLaXRNaW5vclZlcnNpb24pOgorICAg
ICAgICAqIEFwaS9xd2Via2l0dmVyc2lvbi5oOiBBZGRlZC4KKyAgICAgICAgKiBBcGkvcXdlYnBh
Z2UuY3BwOgorICAgICAgICAoUVdlYlBhZ2U6OnVzZXJBZ2VudEZvclVybCk6CisgICAgICAgICog
dGVzdHMvcXdlYnZpZXcvdHN0X3F3ZWJ2aWV3LmNwcDoKKyAgICAgICAgKHRzdF9RV2ViVmlldzo6
Z2V0V2ViS2l0VmVyc2lvbik6CisKIDIwMDktMDctMTAgIFlhZWwgQWhhcm9uICA8eWFlbC5haGFy
b25Abm9raWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEhvbGdlciBGcmV5dGhlci4KZGlm
ZiAtLWdpdCBhL1dlYktpdC9xdC90ZXN0cy9xd2Vidmlldy90c3RfcXdlYnZpZXcuY3BwIGIvV2Vi
S2l0L3F0L3Rlc3RzL3F3ZWJ2aWV3L3RzdF9xd2Vidmlldy5jcHAKaW5kZXggNjUwMWJmYy4uZDEz
MTFlYyAxMDA2NDQKLS0tIGEvV2ViS2l0L3F0L3Rlc3RzL3F3ZWJ2aWV3L3RzdF9xd2Vidmlldy5j
cHAKKysrIGIvV2ViS2l0L3F0L3Rlc3RzL3F3ZWJ2aWV3L3RzdF9xd2Vidmlldy5jcHAKQEAgLTI1
LDYgKzI1LDcgQEAKICNpbmNsdWRlIDxxd2VicGFnZS5oPgogI2luY2x1ZGUgPHFuZXR3b3JrcmVx
dWVzdC5oPgogI2luY2x1ZGUgPHFkaXJpdGVyYXRvci5oPgorI2luY2x1ZGUgPHF3ZWJraXR2ZXJz
aW9uLmg+CiAKIGNsYXNzIHRzdF9RV2ViVmlldyA6IHB1YmxpYyBRT2JqZWN0CiB7CkBAIC00MCw2
ICs0MSw3IEBAIHByaXZhdGUgc2xvdHM6CiAgICAgdm9pZCByZW5kZXJIaW50cygpOwogICAgIHZv
aWQgZ3Vlc3NVcmxGcm9tU3RyaW5nX2RhdGEoKTsKICAgICB2b2lkIGd1ZXNzVXJsRnJvbVN0cmlu
ZygpOworICAgIHZvaWQgZ2V0V2ViS2l0VmVyc2lvbigpOwogfTsKIAogLy8gVGhpcyB3aWxsIGJl
IGNhbGxlZCBiZWZvcmUgdGhlIGZpcnN0IHRlc3QgZnVuY3Rpb24gaXMgZXhlY3V0ZWQuCkBAIC0x
NjAsNiArMTYyLDEzIEBAIHZvaWQgdHN0X1FXZWJWaWV3OjpndWVzc1VybEZyb21TdHJpbmcoKQog
ICAgIFFDT01QQVJFKHVybCwgZ3Vlc3NVcmxGcm9tU3RyaW5nKTsKIH0KIAordm9pZCB0c3RfUVdl
YlZpZXc6OmdldFdlYktpdFZlcnNpb24oKQoreworICAgIFFWRVJJRlkod2ViS2l0VmVyc2lvbigp
LnRvRG91YmxlKCkpOworICAgIFFDT01QQVJFKHdlYktpdE1ham9yVmVyc2lvbigpLCBXRUJLSVRf
VVNFUl9BR0VOVF9NQUpPUl9WRVJTSU9OKTsKKyAgICBRQ09NUEFSRSh3ZWJLaXRNaW5vclZlcnNp
b24oKSwgV0VCS0lUX1VTRVJfQUdFTlRfTUlOT1JfVkVSU0lPTik7Cit9CisKIFFURVNUX01BSU4o
dHN0X1FXZWJWaWV3KQogI2luY2x1ZGUgInRzdF9xd2Vidmlldy5tb2MiCiAKZGlmZiAtLWdpdCBh
L1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxvZwppbmRleCA5Njgz
NGJmLi4wNWYwM2FmIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VMb2cKKysrIGIvV2Vi
S2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMDktMDctMTEgIFJvYmVydCBI
b2dhbiAgPHJvYmVydEByb2JlcnRob2dhbi5uZXQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIFdlYktpdCB2ZXJzaW9uIEFQSSB0byBRdC4KKyAg
ICAgICAgCisgICAgICAgIEdldCB0aGUgY3VycmVudCB2ZXJzaW9uIG9mIFdlYktpdCBmcm9tIFdl
YktpdC9tYWMvQ29uZmlndXJhdGlvbnMvVmVyc2lvbi54Y2NvbmZpZworICAgICAgICBhdCBjb21w
aWxlIHRpbWUgYW5kIG1ha2UgaXQgYXZhaWxhYmxlIHRvIFF0IGFwcGxpY2F0aW9ucyB0aHJvdWdo
CisgICAgICAgIHdlYktpdFZlcnNpb24oKS4KKyAgICAgICAgCisgICAgICAgIEFsc28gYW1lbmQg
dGhlIFVzZXIgQWdlbnQgc3RyaW5nIHRvIHBsYWNlIHRoZSBTYWZhcmkgY2xhdXNlIG91dHNpZGUK
KyAgICAgICAgdGhlIGZpbmFsIGJyYWNrZXQgYW5kIHRvIHRoZSBlbmQgb2YgdGhlIFVBIHN0cmlu
Zy4KKyAgICAgICAgCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yNzE1OAorCisgICAgICAgICogU2NyaXB0cy9nZXQtd2Via2l0LXZlcnNpb246IEFkZGVk
LgorCiAyMDA5LTA3LTEwICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CiAKICAg
ICAgICAgPGh0dHA6Ly93ZWJraXQub3JnL2IvMjcxNzM+IHN2bi1hcHBseTogRml4IHR5cG8gaW4g
Z2l0IGNvbW1hbmQgdXNlZCB0byBmaW5kIGRlbGV0ZWQgZmlsZXMKZGlmZiAtLWdpdCBhL1dlYktp
dFRvb2xzL1NjcmlwdHMvZ2V0LXdlYmtpdC12ZXJzaW9uIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy9n
ZXQtd2Via2l0LXZlcnNpb24KbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMDdm
OGYzNQotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvZ2V0LXdlYmtpdC12
ZXJzaW9uCkBAIC0wLDAgKzEsNTMgQEAKKyMhL3Vzci9iaW4vcGVybAorCisjIENvcHlyaWdodCAo
QykgMjAwOSBSb2JlcnQgSG9nYW4gPHJvYmVydEByb2JlcnRob2dhbi5uZXQ+CisjCisjIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMg
My4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5v
ciB0aGUgbmFtZXMgb2YKKyMgICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5k
b3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyMgICAgIGZyb20gdGhpcyBzb2Z0d2Fy
ZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyMKKyMgVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMi
IEFORCBBTlkKKyMgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkKKyMgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworIyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQKKyMgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
CisjIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisKKyMgVGhpcyBzY3JpcHQgcmVhZHMgVmVyc2lvbi54Y2NvbmZpZyBhbmQg
cmV0dXJucyBlaXRoZXIgb3IgYm90aCBvZiB0aGUgbWFqb3IgYW5kIG1pbm9yCisjIFdlYktpdCB2
ZXJzaW9uIG51bWJlcnMuIEl0IGlzIGN1cnJlbnRseSB1c2VkIGJ5IFdlYktpdC5wcmkuCisKK3Vz
ZSB3YXJuaW5nczsKK3VzZSBzdHJpY3Q7Cit1c2UgR2V0b3B0OjpMb25nOworCitteSAkdXNhZ2Ug
PSAiZ2V0LXdlYmtpdC12ZXJzaW9uIFstbXwtLW1ham9yIC1ufC0tbWlub3JdIFdlYkNvcmUvQ29u
ZmlndXJhdGlvbnMvVmVyc2lvbi54Y2NvbmZpZyI7CisKK215ICRtYWpvciA9IDA7CitteSAkbWlu
b3IgPSAwOworR2V0T3B0aW9ucygibXxtYWpvciIgPT4gXCRtYWpvciwgIm58bWlub3IiID0+IFwk
bWlub3IpOworCitteSAoJGZpbGUpID0gQEFSR1Y7CitkaWUgIiR1c2FnZVxuIiB1bmxlc3MgKCRm
aWxlICYmIEBBUkdWID09IDEpOworCit1bmxlc3MgKG9wZW4gSU5QVVQsICI8IiwgJGZpbGUpIHsg
cHJpbnQgU1RERVJSICJGaWxlIGRvZXMgbm90IGV4aXN0OiAkZmlsZVxuIjt9Cit3aGlsZSAobXkg
JGxpbmUgPSA8SU5QVVQ+KSB7CisgICAgaWYgKCgkbGluZSA9fiAvXk1BSk9SX1ZFUlNJT05ccys9
XHMrXGQrOy8gJiYgJG1ham9yKSB8fAorICAgICAgICAoJGxpbmUgPX4gL15NSU5PUl9WRVJTSU9O
XHMrPVxzK1xkKzsvICYmICRtaW5vcikpIHsKKyAgICAgICRsaW5lID1+IHMvXihNW0FJXVtKTl1P
Ul9WRVJTSU9OKVxzKyg9KVxzKyhcZCspOy8kMy87CisgICAgICBwcmludCAiJGxpbmUiOworICAg
IH0KK30KKwotLSAKMS42LjAuNAoK
</data>
<flag name="review"
          id="17024"
          type_id="1"
          status="-"
          setter="hausmann"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>32737</attachid>
            <date>2009-07-14 14:53:24 -0700</date>
            <delta_ts>2009-07-15 13:45:50 -0700</delta_ts>
            <desc>More Portable Patch</desc>
            <filename>0001-Add-WebKit-version-API-to-Qt.patch</filename>
            <type>text/plain</type>
            <size>16232</size>
            <attacher name="Robert Hogan">robert</attacher>
            
              <data encoding="base64">RnJvbSA4MmVkMDY1NGNiYTk1NGU5ZDBkODMxMzcxMjY4MmEzY2QzOTI0YzU1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBtd2VuZ2UgPHJvYmVydEByb2JlcnRob2dhbi5uZXQ+CkRhdGU6
IFNhdCwgMTEgSnVsIDIwMDkgMTI6MjA6MzIgKzAxMDAKU3ViamVjdDogW1BBVENIXSBBZGQgV2Vi
S2l0IHZlcnNpb24gQVBJIHRvIFF0LgoKR2V0IHRoZSBjdXJyZW50ICdTYWZhcmknIHZlcnNpb24g
b2YgV2ViS2l0IGZyb20gVmVyc2lvbi54Y2NvbmZpZwphdCBjb21waWxlIHRpbWUgYW5kIG1ha2Ug
aXQgYXZhaWxhYmxlIHRvIFdlYktpdCBwb3J0cyB0aHJvdWdoCldlYktpdFZlcnNpb24uaC4KCkFs
c28gYW1lbmQgdGhlIFVzZXIgQWdlbnQgc3RyaW5nIHRvIHBsYWNlIHRoZSBTYWZhcmkgY2xhdXNl
IG91dHNpZGUKdGhlIGZpbmFsIGJyYWNrZXQgYW5kIHRvIHRoZSBlbmQgb2YgdGhlIFF0IFVBIHN0
cmluZy4KCmh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzE1OAotLS0K
IFdlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTQgKysrCiBX
ZWJDb3JlL1dlYkNvcmUucHJvICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE1ICsrKy0KIFdl
YkNvcmUvcGxhdGZvcm0vZ2VuZXJhdGUtd2Via2l0dmVyc2lvbi5wbCB8ICAxMzIgKysrKysrKysr
KysrKysrKysrKysrKysrKysrKwogV2ViS2l0L3F0L0FwaS9oZWFkZXJzLnByaSAgICAgICAgICAg
ICAgICAgIHwgICAgMyArLQogV2ViS2l0L3F0L0FwaS9xd2Via2l0dmVyc2lvbi5jcHAgICAgICAg
ICAgIHwgICA3MSArKysrKysrKysrKysrKysKIFdlYktpdC9xdC9BcGkvcXdlYmtpdHZlcnNpb24u
aCAgICAgICAgICAgICB8ICAgMzAgKysrKysrCiBXZWJLaXQvcXQvQXBpL3F3ZWJwYWdlLmNwcCAg
ICAgICAgICAgICAgICAgfCAgIDEwICsrLQogV2ViS2l0L3F0L0NoYW5nZUxvZyAgICAgICAgICAg
ICAgICAgICAgICAgIHwgICAyNiArKysrKysKIFdlYktpdC9xdC90ZXN0cy9xd2Vidmlldy90c3Rf
cXdlYnZpZXcuY3BwICB8ICAgIDcgKysKIDkgZmlsZXMgY2hhbmdlZCwgMzA0IGluc2VydGlvbnMo
KyksIDQgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9wbGF0Zm9ybS9n
ZW5lcmF0ZS13ZWJraXR2ZXJzaW9uLnBsCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViS2l0L3F0L0Fw
aS9xd2Via2l0dmVyc2lvbi5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJLaXQvcXQvQXBpL3F3
ZWJraXR2ZXJzaW9uLmgKCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUv
Q2hhbmdlTG9nCmluZGV4IDY2YmI2Y2UuLjFkODA0Y2YgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hh
bmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMDktMDct
MTEgIFJvYmVydCBIb2dhbiAgPHJvYmVydEByb2JlcnRob2dhbi5uZXQ+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIFdlYktpdCB2ZXJzaW9uIEFQ
SSB0byBRdC4KKyAgICAgICAgCisgICAgICAgIEdldCB0aGUgY3VycmVudCB2ZXJzaW9uIG9mIFdl
YktpdCBmcm9tIFdlYktpdC9tYWMvQ29uZmlndXJhdGlvbnMvVmVyc2lvbi54Y2NvbmZpZworICAg
ICAgICBhdCBjb21waWxlIHRpbWUgYW5kIG1ha2UgaXQgYXZhaWxhYmxlIHRvIHdlYmtpdCBwb3J0
cyB0aHJvdWdoIFdlYktpdFZlcnNpb24uaC4KKyAgICAgICAgCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzE1OAorCisgICAgICAgICogV2ViQ29yZS5w
cm86IENhbGwgZ2VuZXJhdGUtd2Via2l0dmVyc2lvbi5wbAorICAgICAgICAqIHBsYXRmb3JtL2dl
bmVyYXRlLXdlYmtpdHZlcnNpb24ucGw6IEFkZGVkCisKIDIwMDktMDctMTEgIFNpbW9uIEhhdXNt
YW5uICA8aGF1c21hbm5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBGaXggdGhlIFF0IGJ1aWxkIGFm
dGVyIHI0NTcyNC4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9XZWJDb3JlL1dl
YkNvcmUucHJvCmluZGV4IDg0YTViNmEuLmIyYmMyMjEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2Vi
Q29yZS5wcm8KKysrIGIvV2ViQ29yZS9XZWJDb3JlLnBybwpAQCAtMTIxNiw3ICsxMjE2LDggQEAg
U09VUkNFUyArPSBcCiAgICAgLi4vV2ViS2l0L3F0L0FwaS9xd2ViaGlzdG9yeWludGVyZmFjZS5j
cHAgXAogICAgIC4uL1dlYktpdC9xdC9BcGkvcXdlYnBsdWdpbmZhY3RvcnkuY3BwIFwKICAgICAu
Li9XZWJLaXQvcXQvQXBpL3F3ZWJzZWN1cml0eW9yaWdpbi5jcHAgXAotICAgIC4uL1dlYktpdC9x
dC9BcGkvcXdlYmRhdGFiYXNlLmNwcAorICAgIC4uL1dlYktpdC9xdC9BcGkvcXdlYmRhdGFiYXNl
LmNwcCBcCisgICAgLi4vV2ViS2l0L3F0L0FwaS9xd2Via2l0dmVyc2lvbi5jcHAKIAogCiAgICAg
d2luMzItKnx3aW5jZSo6IFNPVVJDRVMgKz0gcGxhdGZvcm0vd2luL1N5c3RlbVRpbWVXaW4uY3Bw
CkBAIC0yMTc4LDYgKzIxNzksMTggQEAgeHBhdGhiaXNvbi5kZXBlbmRlbmN5X3R5cGUgPSBUWVBF
X0MKIHhwYXRoYmlzb24udmFyaWFibGVfb3V0ID0gR0VORVJBVEVEX1NPVVJDRVMKIGFkZEV4dHJh
Q29tcGlsZXJXaXRoSGVhZGVyKHhwYXRoYmlzb24pCiAKKyMgR0VORVJBVE9SIDExOiBXZWJLaXQg
VmVyc2lvbgord2Via2l0dmVyc2lvbi5vdXRwdXQgPSAkJHtHRU5FUkFURURfU09VUkNFU19ESVJ9
JCR7UU1BS0VfRElSX1NFUH1XZWJLaXRWZXJzaW9uLmgKK3dlYmtpdHZlcnNpb24uY29tbWFuZHMg
PSBwZXJsICQkUFdEL3BsYXRmb3JtL2dlbmVyYXRlLXdlYmtpdHZlcnNpb24ucGwgLS1jb25maWcg
JCRQV0QvQ29uZmlndXJhdGlvbnMvVmVyc2lvbi54Y2NvbmZpZyAtLW91dHB1dERpciAkJHtHRU5F
UkFURURfU09VUkNFU19ESVJ9JCR7UU1BS0VfRElSX1NFUH0KK1dFQktJVFZFUlNJT05fU0NSSVBU
ID0gJCRQV0QvcGxhdGZvcm0vZ2VuZXJhdGUtd2Via2l0dmVyc2lvbi5wbAord2Via2l0dmVyc2lv
bi5pbnB1dCA9IFdFQktJVFZFUlNJT05fU0NSSVBUCit3ZWJraXR2ZXJzaW9uLkNPTkZJRyA9IHRh
cmdldF9wcmVkZXBzCit3ZWJraXR2ZXJzaW9uLmRlcGVuZCA9ICQkUFdEL3BsYXRmb3JtL2dlbmVy
YXRlLXdlYmtpdHZlcnNpb24ucGwKK3dlYmtpdHZlcnNpb24udmFyaWFibGVfb3V0ID0gR0VORVJB
VEVEX1NPVVJDRVMKK3dlYmtpdHZlcnNpb24uY2xlYW4gPSAke1FNQUtFX1ZBUl9HRU5FUkFURURf
U09VUkNFU19ESVJfU0xBU0h9V2ViS2l0VmVyc2lvbi5oCithZGRFeHRyYUNvbXBpbGVyKHdlYmtp
dHZlcnNpb24pCisKKwogaW5jbHVkZSgkJFBXRC8uLi9XZWJLaXQvcXQvQXBpL2hlYWRlcnMucHJp
KQogSEVBREVSUyArPSAkJFdFQktJVF9BUElfSEVBREVSUwogIUNPTkZJRyhRVERJUl9idWlsZCkg
ewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9nZW5lcmF0ZS13ZWJraXR2ZXJzaW9uLnBs
IGIvV2ViQ29yZS9wbGF0Zm9ybS9nZW5lcmF0ZS13ZWJraXR2ZXJzaW9uLnBsCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFkZTg2MTEKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJD
b3JlL3BsYXRmb3JtL2dlbmVyYXRlLXdlYmtpdHZlcnNpb24ucGwKQEAgLTAsMCArMSwxMzIgQEAK
KyMhL3Vzci9iaW4vcGVybAorCisjIEJhc2VkIG9uIG1ha2VfbmFtZXMucGwKKyMKKyMgQ29weXJp
Z2h0IChDKSAyMDA1LCAyMDA2LCAyMDA3LCAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDA5LCBKdWxpZW4gQ2hhZmZyYWl4IDxqY2hhZmZyYWl4
QHdlYmtpdC5vcmc+CisjIENvcHlyaWdodCAoQykgMjAwOSBUb3JjaCBNb2JpbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLiAoaHR0cDovL3d3dy50b3JjaG1vYmlsZS5jb20vKQorIyBDb3B5cmln
aHQgKEMpIDIwMDkgUm9iZXJ0IEhvZ2FuIDxyb2JlcnRAcm9iZXJ0aG9nYW4ubmV0PgorIworIyBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjCisjIDEuICBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisjIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUi
KSBub3IgdGhlIG5hbWVzIG9mCisjICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRv
IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisjICAgICBmcm9tIHRoaXMgc29m
dHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisjCisjIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFT
IElTIiBBTkQgQU5ZCisjIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZCisjIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisjIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsK
KyMgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5ECisjIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRgorIyBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorCisjIFRoaXMgc2NyaXB0IHJlYWRzIFZlcnNpb24ueGNjb25maWcg
YW5kIHJldHVybnMgZWl0aGVyIG9yIGJvdGggb2YgdGhlIG1ham9yIGFuZCBtaW5vcgorIyBXZWJL
aXQgdmVyc2lvbiBudW1iZXJzLiBJdCBpcyBjdXJyZW50bHkgdXNlZCBieSBXZWJLaXQucHJpLgor
Cit1c2Ugc3RyaWN0OworCit1c2UgQ29uZmlnOwordXNlIEdldG9wdDo6TG9uZzsKK3VzZSBGaWxl
OjpQYXRoOwordXNlIFN3aXRjaDsKKworbXkgJHVzYWdlID0gImdlbmVyYXRlLXdlYmtpdHZlcnNp
b24gLS1jb25maWcgV2ViQ29yZS9Db25maWd1cmF0aW9ucy9WZXJzaW9uLnhjY29uZmlnIC0tIG91
dHB1dERpciA8b3V0cHV0ZGlyPiI7CisKK215ICRtYWpvcl92ZXJzaW9uID0gIiI7CitteSAkbWlu
b3JfdmVyc2lvbiA9ICIiOworbXkgJGNvbmZpZ0ZpbGUgPSAiIjsKK215ICRvdXRwdXREaXIgPSAi
LiI7CisKK0dldE9wdGlvbnMoJ2NvbmZpZz1zJyA9PiBcJGNvbmZpZ0ZpbGUsCisgICAgJ291dHB1
dERpcj1zJyA9PiBcJG91dHB1dERpcik7CisKK2RpZSAiWW91IG11c3Qgc3BlY2lmeSBhIC0tY29u
ZmlnIDxmaWxlPiAiIHVubGVzcyAobGVuZ3RoKCRjb25maWdGaWxlKSk7CisKK3VubGVzcyAob3Bl
biBJTlBVVCwgIjwiLCAkY29uZmlnRmlsZSkgeyBwcmludCBTVERFUlIgIkZpbGUgZG9lcyBub3Qg
ZXhpc3Q6ICRjb25maWdGaWxlXG4iO30KK3doaWxlIChteSAkbGluZSA9IDxJTlBVVD4pIHsKKyAg
ICBjaG9tcCAkbGluZTsKKyAgICBpZiAoJGxpbmUgPX4gL15NQUpPUl9WRVJTSU9OXHMrPVxzK1xk
KzsvKSB7CisgICAgICAkbGluZSA9fiBzL14oTUFKT1JfVkVSU0lPTilccysoPSlccysoXGQrKTsv
JDMvOworICAgICAgJG1ham9yX3ZlcnNpb24gPSAkbGluZTsKKyAgICB9CisgICAgaWYgKCRsaW5l
ID1+IC9eTUlOT1JfVkVSU0lPTlxzKz1ccytcZCs7LykgeworICAgICAgJGxpbmUgPX4gcy9eKE1J
Tk9SX1ZFUlNJT04pXHMrKD0pXHMrKFxkKyk7LyQzLzsKKyAgICAgICRtaW5vcl92ZXJzaW9uID0g
JGxpbmU7CisgICAgfQorfQorCiskbWFqb3JfdmVyc2lvbiA9ICI1MzEiIHVubGVzcyAobGVuZ3Ro
KCRtYWpvcl92ZXJzaW9uKSk7CiskbWlub3JfdmVyc2lvbiA9ICIzIiB1bmxlc3MgKGxlbmd0aCgk
bWlub3JfdmVyc2lvbikpOworCitta3BhdGgoJG91dHB1dERpcik7CitteSAkd2ViS2l0VmVyc2lv
blBhdGggPSAiJG91dHB1dERpci9XZWJLaXRWZXJzaW9uLmgiOworCitwcmludFdlYktpdFZlcnNp
b25IZWFkZXJGaWxlKCIkd2ViS2l0VmVyc2lvblBhdGgiKTsKKworc3ViIHByaW50TGljZW5zZUhl
YWRlcgoreworICAgIG15ICRGID0gc2hpZnQ7CisgICAgcHJpbnQgRiAiLyoKKyAqIFRISVMgRklM
RSBJUyBBVVRPTUFUSUNBTExZIEdFTkVSQVRFRCwgRE8gTk9UIEVESVQuCisgKgorICoKKyAqIENv
cHlyaWdodCAoQykgMjAwOSBBcHBsZSBDb21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENP
TVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09N
UFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4gCisgKi8KKworCisiOworfQorCitzdWIgcHJpbnRXZWJLaXRWZXJzaW9uSGVhZGVyRmlsZQor
eworICAgIG15ICRoZWFkZXJQYXRoID0gc2hpZnQ7CisgICAgbXkgJEY7CisgICAgb3BlbiBGLCAi
PiRoZWFkZXJQYXRoIjsKKworICAgIHByaW50TGljZW5zZUhlYWRlcigkRik7CisKKyAgICBwcmlu
dCBGICIjaWZuZGVmIFdFQktJVFZFUlNJT05fSFxuIjsKKyAgICBwcmludCBGICIjZGVmaW5lIFdF
QktJVFZFUlNJT05fSFxuXG4iOworCisgICAgcHJpbnQgRiAiI2RlZmluZSBXRUJLSVRfTUFKT1Jf
VkVSU0lPTiAkbWFqb3JfdmVyc2lvblxuIjsKKyAgICBwcmludCBGICIjZGVmaW5lIFdFQktJVF9N
SU5PUl9WRVJTSU9OICRtaW5vcl92ZXJzaW9uXG5cbiI7CisKKyAgICBwcmludCBGICIjZW5kaWYg
Ly8gV0VCS0lUVkVSU0lPTl9IXG4iOworCisgICAgY2xvc2UgRjsKK30KKworCisKZGlmZiAtLWdp
dCBhL1dlYktpdC9xdC9BcGkvaGVhZGVycy5wcmkgYi9XZWJLaXQvcXQvQXBpL2hlYWRlcnMucHJp
CmluZGV4IGQ5MmViMWMuLmQ3M2FkYjAgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9BcGkvaGVhZGVy
cy5wcmkKKysrIGIvV2ViS2l0L3F0L0FwaS9oZWFkZXJzLnByaQpAQCAtOCw0ICs4LDUgQEAgV0VC
S0lUX0FQSV9IRUFERVJTID0gJCRQV0QvcXdlYmZyYW1lLmggXAogICAgICAgICAgICAgICAgICAg
ICAgJCRQV0QvcXdlYnNlY3VyaXR5b3JpZ2luLmggXAogICAgICAgICAgICAgICAgICAgICAgJCRQ
V0QvcXdlYmVsZW1lbnQuaCBcCiAgICAgICAgICAgICAgICAgICAgICAkJFBXRC9xd2VicGx1Z2lu
ZmFjdG9yeS5oIFwKLSAgICAgICAgICAgICAgICAgICAgICQkUFdEL3F3ZWJoaXN0b3J5LmgKKyAg
ICAgICAgICAgICAgICAgICAgICQkUFdEL3F3ZWJoaXN0b3J5LmggXAorICAgICAgICAgICAgICAg
ICAgICAgJCRQV0QvcXdlYmtpdHZlcnNpb24uaApkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L0FwaS9x
d2Via2l0dmVyc2lvbi5jcHAgYi9XZWJLaXQvcXQvQXBpL3F3ZWJraXR2ZXJzaW9uLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZDc4M2U5Ci0tLSAvZGV2L251bGwKKysr
IGIvV2ViS2l0L3F0L0FwaS9xd2Via2l0dmVyc2lvbi5jcHAKQEAgLTAsMCArMSw3MSBAQAorLyoK
KyAgICBDb3B5cmlnaHQgKEMpIDIwMDkgUm9iZXJ0IEhvZ2FuIDxyb2JlcnRAcm9iZXJ0aG9nYW4u
bmV0PgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICAgdmVyc2lvbiAyIG9mIHRoZSBM
aWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICAgVGhp
cyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm
dWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp
ZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk
IGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgIGFs
b25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3Qs
IHdyaXRlIHRvCisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJh
bmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVT
QS4KKyovCisKKyNpbmNsdWRlIDxxd2Via2l0dmVyc2lvbi5oPgorI2luY2x1ZGUgPFdlYktpdFZl
cnNpb24uaD4KKworLy8gRmFpbHVyZSB0byBkZXRlcm1pbmUgdGhlIFdlYktpdCB2ZXJzaW9uIGF0
IGNvbXBpbGUgdGltZSBzaG91bGQgcmVzdWx0CisvLyBpbiB0aGVzZSBkZWZhdWx0IHZhbHVlcyBi
ZWluZyBkZWZpbmVkIGJ5IFdlYktpdC5wcmkuIFNvIHRoaXMgaXMgYSBmYWlsc2FmZS4KKy8vIFRo
ZSB2ZXJzaW9uIG51bWJlcnMgY2hvc2VuIGhlcmUgYXJlIGFyYml0cmFyeS4KKyNpZiBub3QgZGVm
aW5lZChXRUJLSVRfTUFKT1JfVkVSU0lPTikKKyMgIGRlZmluZSBXRUJLSVRfTUFKT1JfVkVSU0lP
TiA1MzEKKyNlbmRpZgorI2lmIG5vdCBkZWZpbmVkKFdFQktJVF9NSU5PUl9WRVJTSU9OKQorIyAg
ZGVmaW5lIFdFQktJVF9NSU5PUl9WRVJTSU9OIDMKKyNlbmRpZgorCisKKy8qIQorICAgIFxyZWxh
dGVzIDxXZWJLaXRWZXJzaW9uPgorCisgICAgUmV0dXJucyB0aGUgdmVyc2lvbiBudW1iZXIgb2Yg
V2ViS2l0IGF0IHJ1bi10aW1lIGFzIGEgc3RyaW5nIChmb3IKKyAgICBleGFtcGxlLCAiNTMxLjMi
KS4gVGhpcyBpcyB0aGUgdmVyc2lvbiBvZiBXZWJLaXQgdGhlIGFwcGxpY2F0aW9uCisgICAgd2Fz
IGNvbXBpbGVkIGFnYWluc3QuCisKKyovCitRU3RyaW5nIHFXZWJLaXRWZXJzaW9uKCkKK3sKKyAg
ICByZXR1cm4gUVN0cmluZygiJTEuJTIiKS5hcmcoV0VCS0lUX01BSk9SX1ZFUlNJT04pLmFyZyhX
RUJLSVRfTUlOT1JfVkVSU0lPTik7Cit9CisKKy8qIQorICAgIFxyZWxhdGVzIDxXZWJLaXRWZXJz
aW9uPgorCisgICAgUmV0dXJucyB0aGUgJ21ham9yJyB2ZXJzaW9uIG51bWJlciBvZiBXZWJLaXQg
YXQgcnVuLXRpbWUgYXMgYW4gaW50ZWdlcgorICAgIChmb3IgZXhhbXBsZSwgNTMxKS4gVGhpcyBp
cyB0aGUgdmVyc2lvbiBvZiBXZWJLaXQgdGhlIGFwcGxpY2F0aW9uCisgICAgd2FzIGNvbXBpbGVk
IGFnYWluc3QuCisKKyovCitpbnQgcVdlYktpdE1ham9yVmVyc2lvbigpCit7CisgICAgcmV0dXJu
IFdFQktJVF9NQUpPUl9WRVJTSU9OOworfQorCisvKiEKKyAgICBccmVsYXRlcyA8V2ViS2l0VmVy
c2lvbj4KKworICAgIFJldHVybnMgdGhlICdtaW5vcicgdmVyc2lvbiBudW1iZXIgb2YgV2ViS2l0
IGF0IHJ1bi10aW1lIGFzIGFuIGludGVnZXIKKyAgICAoZm9yIGV4YW1wbGUsIDMpLiBUaGlzIGlz
IHRoZSB2ZXJzaW9uIG9mIFdlYktpdCB0aGUgYXBwbGljYXRpb24KKyAgICB3YXMgY29tcGlsZWQg
YWdhaW5zdC4KKworKi8KK2ludCBxV2ViS2l0TWlub3JWZXJzaW9uKCkKK3sKKyAgICByZXR1cm4g
V0VCS0lUX01JTk9SX1ZFUlNJT047Cit9CmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvQXBpL3F3ZWJr
aXR2ZXJzaW9uLmggYi9XZWJLaXQvcXQvQXBpL3F3ZWJraXR2ZXJzaW9uLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDA3MjkzYQotLS0gL2Rldi9udWxsCisrKyBiL1dlYktp
dC9xdC9BcGkvcXdlYmtpdHZlcnNpb24uaApAQCAtMCwwICsxLDMwIEBACisvKgorICAgIENvcHly
aWdodCAoQykgMjAwOSBSb2JlcnQgSG9nYW4gPHJvYmVydEByb2JlcnRob2dhbi5uZXQ+CisKKyAg
ICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg
YW5kL29yCisgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9y
IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgICBUaGlzIGxpYnJhcnkg
aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgICBi
dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50
eSBvZgorICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRS4gIFNlZSB0aGUgR05VCisgICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv
ciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICAgYWxvbmcgd2l0aCB0
aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8K
KyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJl
ZXQsIEZpZnRoIEZsb29yLAorICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorKi8KKwor
I2luY2x1ZGUgPHFzdHJpbmcuaD4KKworI2lmbmRlZiBRV0VCS0lUVkVSU0lPTl9ICisjZGVmaW5l
IFFXRUJLSVRWRVJTSU9OX0gKKworUVN0cmluZyBxV2ViS2l0VmVyc2lvbigpOworaW50IHFXZWJL
aXRNYWpvclZlcnNpb24oKTsKK2ludCBxV2ViS2l0TWlub3JWZXJzaW9uKCk7CisKKworI2VuZGlm
IC8vIFFXRUJLSVRWRVJTSU9OX0gKZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9BcGkvcXdlYnBhZ2Uu
Y3BwIGIvV2ViS2l0L3F0L0FwaS9xd2VicGFnZS5jcHAKaW5kZXggYjk3NDIwYy4uZWU4ZDZlMSAx
MDA2NDQKLS0tIGEvV2ViS2l0L3F0L0FwaS9xd2VicGFnZS5jcHAKKysrIGIvV2ViS2l0L3F0L0Fw
aS9xd2VicGFnZS5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJxd2ViaGlzdG9yeS5o
IgogI2luY2x1ZGUgInF3ZWJoaXN0b3J5X3AuaCIKICNpbmNsdWRlICJxd2Vic2V0dGluZ3MuaCIK
KyNpbmNsdWRlICJxd2Via2l0dmVyc2lvbi5oIgogCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNs
dWRlICJGcmFtZVRyZWUuaCIKQEAgLTI2ODMsMTIgKzI2ODQsMTMgQEAgUVN0cmluZyBRV2ViUGFn
ZTo6dXNlckFnZW50Rm9yVXJsKGNvbnN0IFFVcmwmIHVybCkgY29uc3QKICAgICB1YS5hcHBlbmQo
UUxhdGluMVN0cmluZygiKSAiKSk7CiAKICAgICAvLyB3ZWJraXQvcXQgdmVyc2lvbgotICAgIHVh
LmFwcGVuZChRTGF0aW4xU3RyaW5nKCJBcHBsZVdlYktpdC8iIFdFQktJVF9WRVJTSU9OICIgKEtI
VE1MLCBsaWtlIEdlY2tvLCBTYWZhcmkvNDE5LjMpICIpKTsKKyAgICB1YS5hcHBlbmQoUVN0cmlu
ZyhRTGF0aW4xU3RyaW5nKCJBcHBsZVdlYktpdC8lMSAoS0hUTUwsIGxpa2UgR2Vja28pICIpKQor
ICAgICAgICAgICAgICAgICAgICAgIC5hcmcoUVN0cmluZyhxV2ViS2l0VmVyc2lvbigpKSkpOwog
CiAgICAgLy8gQXBwbGljYXRpb24gbmFtZS92ZXJzaW9uCiAgICAgUVN0cmluZyBhcHBOYW1lID0g
UUNvcmVBcHBsaWNhdGlvbjo6YXBwbGljYXRpb25OYW1lKCk7CiAgICAgaWYgKCFhcHBOYW1lLmlz
RW1wdHkoKSkgewotICAgICAgICB1YS5hcHBlbmQoUUxhdGluMUNoYXIoJyAnKSArIGFwcE5hbWUp
OworICAgICAgICB1YS5hcHBlbmQoYXBwTmFtZSk7CiAjaWYgUVRfVkVSU0lPTiA+PSAweDA0MDQw
MAogICAgICAgICBRU3RyaW5nIGFwcFZlciA9IFFDb3JlQXBwbGljYXRpb246OmFwcGxpY2F0aW9u
VmVyc2lvbigpOwogICAgICAgICBpZiAoIWFwcFZlci5pc0VtcHR5KCkpCkBAIC0yNjk5LDYgKzI3
MDEsMTAgQEAgUVN0cmluZyBRV2ViUGFnZTo6dXNlckFnZW50Rm9yVXJsKGNvbnN0IFFVcmwmIHVy
bCkgY29uc3QKICAgICAgICAgdWEuYXBwZW5kKFFMYXRpbjFTdHJpbmcoIlF0LyIpKTsKICAgICAg
ICAgdWEuYXBwZW5kKFFMYXRpbjFTdHJpbmcocVZlcnNpb24oKSkpOwogICAgIH0KKworICAgIHVh
LmFwcGVuZChRU3RyaW5nKFFMYXRpbjFTdHJpbmcoIiBTYWZhcmkvJTEiKSkKKyAgICAgICAgICAg
ICAgICAgICAgICAuYXJnKHFXZWJLaXRWZXJzaW9uKCkpKTsKKwogICAgIHJldHVybiB1YTsKIH0K
IApkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L0NoYW5nZUxvZyBiL1dlYktpdC9xdC9DaGFuZ2VMb2cK
aW5kZXggZWVhMWE0MC4uYjYwYTEyMyAxMDA2NDQKLS0tIGEvV2ViS2l0L3F0L0NoYW5nZUxvZwor
KysgYi9XZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMDktMDctMTEgIFJv
YmVydCBIb2dhbiAgPHJvYmVydEByb2JlcnRob2dhbi5uZXQ+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIFdlYktpdCB2ZXJzaW9uIEFQSSB0byBR
dC4KKyAgICAgICAgCisgICAgICAgIEdldCB0aGUgY3VycmVudCB2ZXJzaW9uIG9mIFdlYktpdCBm
cm9tIFdlYktpdC9tYWMvQ29uZmlndXJhdGlvbnMvVmVyc2lvbi54Y2NvbmZpZworICAgICAgICBh
dCBjb21waWxlIHRpbWUgYW5kIG1ha2UgaXQgYXZhaWxhYmxlIHRvIFF0IGFwcGxpY2F0aW9ucyB0
aHJvdWdoCisgICAgICAgIHFXZWJLaXRWZXJzaW9uKCkuCisgICAgICAgIAorICAgICAgICBBbHNv
IGFtZW5kIHRoZSBVc2VyIEFnZW50IHN0cmluZyB0byBwbGFjZSB0aGUgU2FmYXJpIGNsYXVzZSBv
dXRzaWRlCisgICAgICAgIHRoZSBmaW5hbCBicmFja2V0IGFuZCB0byB0aGUgZW5kIG9mIHRoZSBV
QSBzdHJpbmcuCisgICAgICAgIAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjcxNTgKKworICAgICAgICAqIEFwaS9oZWFkZXJzLnByaToKKyAgICAgICAg
KiBBcGkvcXdlYmtpdHZlcnNpb24uY3BwOiBBZGRlZC4KKyAgICAgICAgKHdlYktpdFZlcnNpb24p
OgorICAgICAgICAod2ViS2l0TWFqb3JWZXJzaW9uKToKKyAgICAgICAgKHdlYktpdE1pbm9yVmVy
c2lvbik6CisgICAgICAgICogQXBpL3F3ZWJraXR2ZXJzaW9uLmg6IEFkZGVkLgorICAgICAgICAq
IEFwaS9xd2VicGFnZS5jcHA6CisgICAgICAgIChRV2ViUGFnZTo6dXNlckFnZW50Rm9yVXJsKToK
KyAgICAgICAgKiB0ZXN0cy9xd2Vidmlldy90c3RfcXdlYnZpZXcuY3BwOgorICAgICAgICAodHN0
X1FXZWJWaWV3OjpnZXRXZWJLaXRWZXJzaW9uKToKKwogMjAwOS0wNy0xMCAgWWFlbCBBaGFyb24g
IDx5YWVsLmFoYXJvbkBub2tpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgSG9sZ2VyIEZy
ZXl0aGVyLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L3Rlc3RzL3F3ZWJ2aWV3L3RzdF9xd2Vidmll
dy5jcHAgYi9XZWJLaXQvcXQvdGVzdHMvcXdlYnZpZXcvdHN0X3F3ZWJ2aWV3LmNwcAppbmRleCA2
NTAxYmZjLi4xMDFiYzJjIDEwMDY0NAotLS0gYS9XZWJLaXQvcXQvdGVzdHMvcXdlYnZpZXcvdHN0
X3F3ZWJ2aWV3LmNwcAorKysgYi9XZWJLaXQvcXQvdGVzdHMvcXdlYnZpZXcvdHN0X3F3ZWJ2aWV3
LmNwcApAQCAtMjUsNiArMjUsNyBAQAogI2luY2x1ZGUgPHF3ZWJwYWdlLmg+CiAjaW5jbHVkZSA8
cW5ldHdvcmtyZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8cWRpcml0ZXJhdG9yLmg+CisjaW5jbHVkZSA8
cXdlYmtpdHZlcnNpb24uaD4KIAogY2xhc3MgdHN0X1FXZWJWaWV3IDogcHVibGljIFFPYmplY3QK
IHsKQEAgLTQwLDYgKzQxLDcgQEAgcHJpdmF0ZSBzbG90czoKICAgICB2b2lkIHJlbmRlckhpbnRz
KCk7CiAgICAgdm9pZCBndWVzc1VybEZyb21TdHJpbmdfZGF0YSgpOwogICAgIHZvaWQgZ3Vlc3NV
cmxGcm9tU3RyaW5nKCk7CisgICAgdm9pZCBnZXRXZWJLaXRWZXJzaW9uKCk7CiB9OwogCiAvLyBU
aGlzIHdpbGwgYmUgY2FsbGVkIGJlZm9yZSB0aGUgZmlyc3QgdGVzdCBmdW5jdGlvbiBpcyBleGVj
dXRlZC4KQEAgLTE2MCw2ICsxNjIsMTEgQEAgdm9pZCB0c3RfUVdlYlZpZXc6Omd1ZXNzVXJsRnJv
bVN0cmluZygpCiAgICAgUUNPTVBBUkUodXJsLCBndWVzc1VybEZyb21TdHJpbmcpOwogfQogCit2
b2lkIHRzdF9RV2ViVmlldzo6Z2V0V2ViS2l0VmVyc2lvbigpCit7CisgICAgUVZFUklGWShxV2Vi
S2l0VmVyc2lvbigpLnRvRG91YmxlKCkpOworfQorCiBRVEVTVF9NQUlOKHRzdF9RV2ViVmlldykK
ICNpbmNsdWRlICJ0c3RfcXdlYnZpZXcubW9jIgogCi0tIAoxLjYuMC40Cgo=
</data>
<flag name="review"
          id="17115"
          type_id="1"
          status="-"
          setter="hausmann"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>32804</attachid>
            <date>2009-07-15 13:45:50 -0700</date>
            <delta_ts>2009-07-27 11:25:52 -0700</delta_ts>
            <desc>Updated patch for generating WebKitVersion.h manually</desc>
            <filename>0001-Add-WebKitVersion.h.-Add-WebKit-version-API-to-Qt.patch</filename>
            <type>text/plain</type>
            <size>19779</size>
            <attacher name="Robert Hogan">robert</attacher>
            
              <data encoding="base64">RnJvbSA3ZGQ5NTRjMjk4MjVmZGNmYjQwOGNhYzdmOTQzMmFmNGZhNzBiY2VkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBtd2VuZ2UgPHJvYmVydEByb2JlcnRob2dhbi5uZXQ+CkRhdGU6
IFNhdCwgMTEgSnVsIDIwMDkgMTI6MjA6MzIgKzAxMDAKU3ViamVjdDogW1BBVENIXSBBZGQgV2Vi
S2l0VmVyc2lvbi5oLiBBZGQgV2ViS2l0IHZlcnNpb24gQVBJIHRvIFF0LgoKU3RvcmUgdmVyc2lv
biBpbmZvcm1hdGlvbiBpbiBXZWJLaXRWZXJzaW9uLmguIFRoaXMgZmlsZSBjYW4gYmUKdXBkYXRl
ZCBhdCBhbnkgdGltZSBieSBydW5uaW5nIGdlbmVyYXRlLXdlYmtpdC12ZXJzaW9uLnBsLiBUaGUK
dmVyc2lvbiBpbmZvcm1hdGlvbiBpcyBleHRyYWN0ZWQgZnJvbSBXZWJLaXQvbWFjL0NvbmZpZ3Vy
YXRpb25zL1ZlcnNpb24ueGNjb25maWcuCgpBbHNvIGFtZW5kIHRoZSBVc2VyIEFnZW50IHN0cmlu
ZyBpbiBRdCB0byBwbGFjZSB0aGUgU2FmYXJpIGNsYXVzZSBvdXRzaWRlCnRoZSBmaW5hbCBicmFj
a2V0IGFuZCB0byB0aGUgZW5kIG9mIHRoZSBVQSBzdHJpbmcuIFRoaXMgbWlycm9ycyB0aGUgcHJh
Y3RpY2UKb2YgYWxsIG90aGVyIFdlYktpdCBwb3J0cy4KCmh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yNzE1OAotLS0KIFdlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB8ICAgMTkgKysrKwogV2ViQ29yZS9XZWJDb3JlLnBybyAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHwgICAgMyArLQogV2ViQ29yZS9wbGF0Zm9ybS9XZWJLaXRWZXJz
aW9uLmggICAgICAgICAgICAgIHwgICAzNiArKysrKysrCiBXZWJLaXQvcXQvQXBpL2hlYWRlcnMu
cHJpICAgICAgICAgICAgICAgICAgICAgfCAgICAzICstCiBXZWJLaXQvcXQvQXBpL3F3ZWJraXR2
ZXJzaW9uLmNwcCAgICAgICAgICAgICAgfCAgIDY4ICsrKysrKysrKysrKwogV2ViS2l0L3F0L0Fw
aS9xd2Via2l0dmVyc2lvbi5oICAgICAgICAgICAgICAgIHwgICAzMCArKysrKysKIFdlYktpdC9x
dC9BcGkvcXdlYnBhZ2UuY3BwICAgICAgICAgICAgICAgICAgICB8ICAgMTIgKystCiBXZWJLaXQv
cXQvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDI3ICsrKysrCiBXZWJL
aXQvcXQvdGVzdHMvcXdlYnZpZXcvdHN0X3F3ZWJ2aWV3LmNwcCAgICAgfCAgICA3ICsrCiBXZWJL
aXRUb29scy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE4ICsrKysKIFdl
YktpdFRvb2xzL1NjcmlwdHMvZ2VuZXJhdGUtd2Via2l0dmVyc2lvbi5wbCB8ICAxMzcgKysrKysr
KysrKysrKysrKysrKysrKysrKwogMTEgZmlsZXMgY2hhbmdlZCwgMzU1IGluc2VydGlvbnMoKyks
IDUgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9wbGF0Zm9ybS9XZWJL
aXRWZXJzaW9uLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJLaXQvcXQvQXBpL3F3ZWJraXR2ZXJz
aW9uLmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYktpdC9xdC9BcGkvcXdlYmtpdHZlcnNpb24u
aAogY3JlYXRlIG1vZGUgMTAwNzU1IFdlYktpdFRvb2xzL1NjcmlwdHMvZ2VuZXJhdGUtd2Via2l0
dmVyc2lvbi5wbAoKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggNjZiYjZjZS4uZmE5MTg3OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VM
b2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAwOS0wNy0xNSAg
Um9iZXJ0IEhvZ2FuICA8cm9iZXJ0QHJvYmVydGhvZ2FuLm5ldD4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgV2ViS2l0VmVyc2lvbi5oLiBBZGQg
V2ViS2l0IHZlcnNpb24gQVBJIHRvIFF0LgorICAgICAgICAKKyAgICAgICAgU3RvcmUgdmVyc2lv
biBpbmZvcm1hdGlvbiBpbiBXZWJLaXRWZXJzaW9uLmguIFRoaXMgZmlsZSBjYW4gYmUKKyAgICAg
ICAgdXBkYXRlZCBhdCBhbnkgdGltZSBieSBydW5uaW5nIGdlbmVyYXRlLXdlYmtpdC12ZXJzaW9u
LnBsLiBUaGUKKyAgICAgICAgdmVyc2lvbiBpbmZvcm1hdGlvbiBpcyBleHRyYWN0ZWQgZnJvbSBX
ZWJLaXQvbWFjL0NvbmZpZ3VyYXRpb25zL1ZlcnNpb24ueGNjb25maWcuCisgICAgICAgIAorICAg
ICAgICBBbHNvIGFtZW5kIHRoZSBVc2VyIEFnZW50IHN0cmluZyBpbiBRdCB0byBwbGFjZSB0aGUg
U2FmYXJpIGNsYXVzZSBvdXRzaWRlCisgICAgICAgIHRoZSBmaW5hbCBicmFja2V0IGFuZCB0byB0
aGUgZW5kIG9mIHRoZSBVQSBzdHJpbmcuIFRoaXMgbWlycm9ycyB0aGUgcHJhY3RpY2UKKyAgICAg
ICAgb2YgYWxsIG90aGVyIFdlYktpdCBwb3J0cy4KKyAgICAgICAgCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzE1OAorCisgICAgICAgICogV2ViQ29y
ZS5wcm86CisgICAgICAgICogcGxhdGZvcm0vV2ViS2l0VmVyc2lvbi5oOiBBZGRlZC4KKwogMjAw
OS0wNy0xMSAgU2ltb24gSGF1c21hbm4gIDxoYXVzbWFubkB3ZWJraXQub3JnPgogCiAgICAgICAg
IEZpeCB0aGUgUXQgYnVpbGQgYWZ0ZXIgcjQ1NzI0LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJD
b3JlLnBybyBiL1dlYkNvcmUvV2ViQ29yZS5wcm8KaW5kZXggODRhNWI2YS4uOWNiZmQ5OSAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnBybworKysgYi9XZWJDb3JlL1dlYkNvcmUucHJvCkBA
IC0xMjE2LDcgKzEyMTYsOCBAQCBTT1VSQ0VTICs9IFwKICAgICAuLi9XZWJLaXQvcXQvQXBpL3F3
ZWJoaXN0b3J5aW50ZXJmYWNlLmNwcCBcCiAgICAgLi4vV2ViS2l0L3F0L0FwaS9xd2VicGx1Z2lu
ZmFjdG9yeS5jcHAgXAogICAgIC4uL1dlYktpdC9xdC9BcGkvcXdlYnNlY3VyaXR5b3JpZ2luLmNw
cCBcCi0gICAgLi4vV2ViS2l0L3F0L0FwaS9xd2ViZGF0YWJhc2UuY3BwCisgICAgLi4vV2ViS2l0
L3F0L0FwaS9xd2ViZGF0YWJhc2UuY3BwIFwKKyAgICAuLi9XZWJLaXQvcXQvQXBpL3F3ZWJraXR2
ZXJzaW9uLmNwcAogCiAKICAgICB3aW4zMi0qfHdpbmNlKjogU09VUkNFUyArPSBwbGF0Zm9ybS93
aW4vU3lzdGVtVGltZVdpbi5jcHAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vV2ViS2l0
VmVyc2lvbi5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9XZWJLaXRWZXJzaW9uLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODAyZTViMQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNv
cmUvcGxhdGZvcm0vV2ViS2l0VmVyc2lvbi5oCkBAIC0wLDAgKzEsMzYgQEAKKy8qCisgKiBUSElT
IEZJTEUgSVMgQVVUT01BVElDQUxMWSBHRU5FUkFURUQsIERPIE5PVCBFRElULgorICoKKyAqCisg
KiBDb3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuIAorICovCisKKworI2lmbmRlZiBXRUJLSVRWRVJTSU9OX0gKKyNkZWZpbmUgV0VCS0lU
VkVSU0lPTl9ICisKKyNkZWZpbmUgV0VCS0lUX01BSk9SX1ZFUlNJT04gNTMxCisjZGVmaW5lIFdF
QktJVF9NSU5PUl9WRVJTSU9OIDUKKworI2VuZGlmIC8vIFdFQktJVFZFUlNJT05fSApkaWZmIC0t
Z2l0IGEvV2ViS2l0L3F0L0FwaS9oZWFkZXJzLnByaSBiL1dlYktpdC9xdC9BcGkvaGVhZGVycy5w
cmkKaW5kZXggZDkyZWIxYy4uZDczYWRiMCAxMDA2NDQKLS0tIGEvV2ViS2l0L3F0L0FwaS9oZWFk
ZXJzLnByaQorKysgYi9XZWJLaXQvcXQvQXBpL2hlYWRlcnMucHJpCkBAIC04LDQgKzgsNSBAQCBX
RUJLSVRfQVBJX0hFQURFUlMgPSAkJFBXRC9xd2ViZnJhbWUuaCBcCiAgICAgICAgICAgICAgICAg
ICAgICAkJFBXRC9xd2Vic2VjdXJpdHlvcmlnaW4uaCBcCiAgICAgICAgICAgICAgICAgICAgICAk
JFBXRC9xd2ViZWxlbWVudC5oIFwKICAgICAgICAgICAgICAgICAgICAgICQkUFdEL3F3ZWJwbHVn
aW5mYWN0b3J5LmggXAotICAgICAgICAgICAgICAgICAgICAgJCRQV0QvcXdlYmhpc3RvcnkuaAor
ICAgICAgICAgICAgICAgICAgICAgJCRQV0QvcXdlYmhpc3RvcnkuaCBcCisgICAgICAgICAgICAg
ICAgICAgICAkJFBXRC9xd2Via2l0dmVyc2lvbi5oCmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvQXBp
L3F3ZWJraXR2ZXJzaW9uLmNwcCBiL1dlYktpdC9xdC9BcGkvcXdlYmtpdHZlcnNpb24uY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQxZTFmYzQKLS0tIC9kZXYvbnVsbAor
KysgYi9XZWJLaXQvcXQvQXBpL3F3ZWJraXR2ZXJzaW9uLmNwcApAQCAtMCwwICsxLDY4IEBACisv
KgorICAgIENvcHlyaWdodCAoQykgMjAwOSBSb2JlcnQgSG9nYW4gPHJvYmVydEByb2JlcnRob2dh
bi5uZXQ+CisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yCisgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9uIDIgb2YgdGhl
IExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgICBU
aGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz
ZWZ1bCwKKyAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w
bGllZCB3YXJyYW50eSBvZgorICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICAgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2
ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICAg
YWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5v
dCwgd3JpdGUgdG8KKyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBG
cmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwg
VVNBLgorKi8KKworI2luY2x1ZGUgPHF3ZWJraXR2ZXJzaW9uLmg+CisjaW5jbHVkZSA8V2ViS2l0
VmVyc2lvbi5oPgorCisvLyBGYWlsdXJlIHRvIGRldGVybWluZSB0aGUgV2ViS2l0IHZlcnNpb24g
YXQgY29tcGlsZSB0aW1lIHNob3VsZCByZXN1bHQKKy8vIGluIHRoZXNlIGRlZmF1bHQgdmFsdWVz
IGJlaW5nIGRlZmluZWQgYnkgV2ViS2l0LnByaS4gU28gdGhpcyBpcyBhIGZhaWxzYWZlLgorLy8g
VGhlIHZlcnNpb24gbnVtYmVycyBjaG9zZW4gaGVyZSBhcmUgYXJiaXRyYXJ5LgorI2lmIG5vdCBk
ZWZpbmVkKFdFQktJVF9NQUpPUl9WRVJTSU9OKQorIyAgZGVmaW5lIFdFQktJVF9NQUpPUl9WRVJT
SU9OIDUzMQorI2VuZGlmCisjaWYgbm90IGRlZmluZWQoV0VCS0lUX01JTk9SX1ZFUlNJT04pCisj
ICBkZWZpbmUgV0VCS0lUX01JTk9SX1ZFUlNJT04gMworI2VuZGlmCisKKworLyohCisKKyAgICBS
ZXR1cm5zIHRoZSB2ZXJzaW9uIG51bWJlciBvZiBXZWJLaXQgYXQgcnVuLXRpbWUgYXMgYSBzdHJp
bmcgKGZvcgorICAgIGV4YW1wbGUsICI1MzEuMyIpLiBUaGlzIGlzIHRoZSB2ZXJzaW9uIG9mIFdl
YktpdCB0aGUgYXBwbGljYXRpb24KKyAgICB3YXMgY29tcGlsZWQgYWdhaW5zdC4KKworKi8KK1FT
dHJpbmcgcVdlYktpdFZlcnNpb24oKQoreworICAgIHJldHVybiBRU3RyaW5nKCIlMS4lMiIpLmFy
ZyhXRUJLSVRfTUFKT1JfVkVSU0lPTikuYXJnKFdFQktJVF9NSU5PUl9WRVJTSU9OKTsKK30KKwor
LyohCisKKyAgICBSZXR1cm5zIHRoZSAnbWFqb3InIHZlcnNpb24gbnVtYmVyIG9mIFdlYktpdCBh
dCBydW4tdGltZSBhcyBhbiBpbnRlZ2VyCisgICAgKGZvciBleGFtcGxlLCA1MzEpLiBUaGlzIGlz
IHRoZSB2ZXJzaW9uIG9mIFdlYktpdCB0aGUgYXBwbGljYXRpb24KKyAgICB3YXMgY29tcGlsZWQg
YWdhaW5zdC4KKworKi8KK2ludCBxV2ViS2l0TWFqb3JWZXJzaW9uKCkKK3sKKyAgICByZXR1cm4g
V0VCS0lUX01BSk9SX1ZFUlNJT047Cit9CisKKy8qIQorCisgICAgUmV0dXJucyB0aGUgJ21pbm9y
JyB2ZXJzaW9uIG51bWJlciBvZiBXZWJLaXQgYXQgcnVuLXRpbWUgYXMgYW4gaW50ZWdlcgorICAg
IChmb3IgZXhhbXBsZSwgMykuIFRoaXMgaXMgdGhlIHZlcnNpb24gb2YgV2ViS2l0IHRoZSBhcHBs
aWNhdGlvbgorICAgIHdhcyBjb21waWxlZCBhZ2FpbnN0LgorCisqLworaW50IHFXZWJLaXRNaW5v
clZlcnNpb24oKQoreworICAgIHJldHVybiBXRUJLSVRfTUlOT1JfVkVSU0lPTjsKK30KZGlmZiAt
LWdpdCBhL1dlYktpdC9xdC9BcGkvcXdlYmtpdHZlcnNpb24uaCBiL1dlYktpdC9xdC9BcGkvcXdl
YmtpdHZlcnNpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMDcyOTNh
Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0L3F0L0FwaS9xd2Via2l0dmVyc2lvbi5oCkBAIC0w
LDAgKzEsMzAgQEAKKy8qCisgICAgQ29weXJpZ2h0IChDKSAyMDA5IFJvYmVydCBIb2dhbiA8cm9i
ZXJ0QHJvYmVydGhvZ2FuLm5ldD4KKworICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgICBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICAgIExpY2Vuc2UgYXMg
cHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAgIHZl
cnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy
c2lvbi4KKworICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0
IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91
dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgICBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgIFlvdSBzaG91
bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UKKyAgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJ
TkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgICAgQm9zdG9uLCBN
QSAwMjExMC0xMzAxLCBVU0EuCisqLworCisjaW5jbHVkZSA8cXN0cmluZy5oPgorCisjaWZuZGVm
IFFXRUJLSVRWRVJTSU9OX0gKKyNkZWZpbmUgUVdFQktJVFZFUlNJT05fSAorCitRU3RyaW5nIHFX
ZWJLaXRWZXJzaW9uKCk7CitpbnQgcVdlYktpdE1ham9yVmVyc2lvbigpOworaW50IHFXZWJLaXRN
aW5vclZlcnNpb24oKTsKKworCisjZW5kaWYgLy8gUVdFQktJVFZFUlNJT05fSApkaWZmIC0tZ2l0
IGEvV2ViS2l0L3F0L0FwaS9xd2VicGFnZS5jcHAgYi9XZWJLaXQvcXQvQXBpL3F3ZWJwYWdlLmNw
cAppbmRleCBiOTc0MjBjLi5jMDM2NTJjIDEwMDY0NAotLS0gYS9XZWJLaXQvcXQvQXBpL3F3ZWJw
YWdlLmNwcAorKysgYi9XZWJLaXQvcXQvQXBpL3F3ZWJwYWdlLmNwcApAQCAtMjgsNiArMjgsNyBA
QAogI2luY2x1ZGUgInF3ZWJoaXN0b3J5LmgiCiAjaW5jbHVkZSAicXdlYmhpc3RvcnlfcC5oIgog
I2luY2x1ZGUgInF3ZWJzZXR0aW5ncy5oIgorI2luY2x1ZGUgInF3ZWJraXR2ZXJzaW9uLmgiCiAK
ICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lVHJlZS5oIgpAQCAtMjUxNyw3ICsy
NTE4LDcgQEAgUVdlYlBsdWdpbkZhY3RvcnkgKlFXZWJQYWdlOjpwbHVnaW5GYWN0b3J5KCkgY29u
c3QKIAogICAgIFRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIHJldHVybnMgdGhlIGZvbGxvd2lu
ZyB2YWx1ZToKIAotICAgICJNb3ppbGxhLzUuMCAoJVBsYXRmb3JtJTsgJVNlY3VyaXR5JTsgJVN1
YnBsYXRmb3JtJTsgJUxvY2FsZSUpIEFwcGxlV2ViS2l0LyVXZWJLaXRWZXJzaW9uJSAoS0hUTUws
IGxpa2UgR2Vja28sIFNhZmFyaS80MTkuMykgJUFwcFZlcnNpb24iCisgICAgIk1vemlsbGEvNS4w
ICglUGxhdGZvcm0lOyAlU2VjdXJpdHklOyAlU3VicGxhdGZvcm0lOyAlTG9jYWxlJSkgQXBwbGVX
ZWJLaXQvJVdlYktpdFZlcnNpb24lIChLSFRNTCwgbGlrZSBHZWNrbykgJUFwcFZlcnNpb24gU2Fm
YXJpLzQxOS4zIgogCiAgICAgSW4gdGhpcyBzdHJpbmcgdGhlIGZvbGxvd2luZyB2YWx1ZXMgYXJl
IHJlcGxhY2VkIGF0IHJ1bi10aW1lOgogICAgIFxsaXN0CkBAIC0yNjgzLDEyICsyNjg0LDEzIEBA
IFFTdHJpbmcgUVdlYlBhZ2U6OnVzZXJBZ2VudEZvclVybChjb25zdCBRVXJsJiB1cmwpIGNvbnN0
CiAgICAgdWEuYXBwZW5kKFFMYXRpbjFTdHJpbmcoIikgIikpOwogCiAgICAgLy8gd2Via2l0L3F0
IHZlcnNpb24KLSAgICB1YS5hcHBlbmQoUUxhdGluMVN0cmluZygiQXBwbGVXZWJLaXQvIiBXRUJL
SVRfVkVSU0lPTiAiIChLSFRNTCwgbGlrZSBHZWNrbywgU2FmYXJpLzQxOS4zKSAiKSk7CisgICAg
dWEuYXBwZW5kKFFTdHJpbmcoUUxhdGluMVN0cmluZygiQXBwbGVXZWJLaXQvJTEgKEtIVE1MLCBs
aWtlIEdlY2tvKSAiKSkKKyAgICAgICAgICAgICAgICAgICAgICAuYXJnKFFTdHJpbmcocVdlYktp
dFZlcnNpb24oKSkpKTsKIAogICAgIC8vIEFwcGxpY2F0aW9uIG5hbWUvdmVyc2lvbgogICAgIFFT
dHJpbmcgYXBwTmFtZSA9IFFDb3JlQXBwbGljYXRpb246OmFwcGxpY2F0aW9uTmFtZSgpOwogICAg
IGlmICghYXBwTmFtZS5pc0VtcHR5KCkpIHsKLSAgICAgICAgdWEuYXBwZW5kKFFMYXRpbjFDaGFy
KCcgJykgKyBhcHBOYW1lKTsKKyAgICAgICAgdWEuYXBwZW5kKGFwcE5hbWUpOwogI2lmIFFUX1ZF
UlNJT04gPj0gMHgwNDA0MDAKICAgICAgICAgUVN0cmluZyBhcHBWZXIgPSBRQ29yZUFwcGxpY2F0
aW9uOjphcHBsaWNhdGlvblZlcnNpb24oKTsKICAgICAgICAgaWYgKCFhcHBWZXIuaXNFbXB0eSgp
KQpAQCAtMjY5OSw2ICsyNzAxLDEwIEBAIFFTdHJpbmcgUVdlYlBhZ2U6OnVzZXJBZ2VudEZvclVy
bChjb25zdCBRVXJsJiB1cmwpIGNvbnN0CiAgICAgICAgIHVhLmFwcGVuZChRTGF0aW4xU3RyaW5n
KCJRdC8iKSk7CiAgICAgICAgIHVhLmFwcGVuZChRTGF0aW4xU3RyaW5nKHFWZXJzaW9uKCkpKTsK
ICAgICB9CisKKyAgICB1YS5hcHBlbmQoUVN0cmluZyhRTGF0aW4xU3RyaW5nKCIgU2FmYXJpLyUx
IikpCisgICAgICAgICAgICAgICAgICAgICAgLmFyZyhxV2ViS2l0VmVyc2lvbigpKSk7CisKICAg
ICByZXR1cm4gdWE7CiB9CiAKZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9XZWJL
aXQvcXQvQ2hhbmdlTG9nCmluZGV4IGVlYTFhNDAuLjIxYWJjZmMgMTAwNjQ0Ci0tLSBhL1dlYktp
dC9xdC9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBA
CisyMDA5LTA3LTE1ICBSb2JlcnQgSG9nYW4gIDxyb2JlcnRAcm9iZXJ0aG9nYW4ubmV0PgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBXZWJLaXRW
ZXJzaW9uLmguIEFkZCBXZWJLaXQgdmVyc2lvbiBBUEkgdG8gUXQuCisgICAgICAgIAorICAgICAg
ICBTdG9yZSB2ZXJzaW9uIGluZm9ybWF0aW9uIGluIFdlYktpdFZlcnNpb24uaC4gVGhpcyBmaWxl
IGNhbiBiZQorICAgICAgICB1cGRhdGVkIGF0IGFueSB0aW1lIGJ5IHJ1bm5pbmcgZ2VuZXJhdGUt
d2Via2l0LXZlcnNpb24ucGwuIFRoZQorICAgICAgICB2ZXJzaW9uIGluZm9ybWF0aW9uIGlzIGV4
dHJhY3RlZCBmcm9tIFdlYktpdC9tYWMvQ29uZmlndXJhdGlvbnMvVmVyc2lvbi54Y2NvbmZpZy4K
KyAgICAgICAgCisgICAgICAgIEFsc28gYW1lbmQgdGhlIFVzZXIgQWdlbnQgc3RyaW5nIGluIFF0
IHRvIHBsYWNlIHRoZSBTYWZhcmkgY2xhdXNlIG91dHNpZGUKKyAgICAgICAgdGhlIGZpbmFsIGJy
YWNrZXQgYW5kIHRvIHRoZSBlbmQgb2YgdGhlIFVBIHN0cmluZy4gVGhpcyBtaXJyb3JzIHRoZSBw
cmFjdGljZQorICAgICAgICBvZiBhbGwgb3RoZXIgV2ViS2l0IHBvcnRzLgorICAgICAgICAKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI3MTU4CisKKyAg
ICAgICAgKiBBcGkvaGVhZGVycy5wcmk6CisgICAgICAgICogQXBpL3F3ZWJraXR2ZXJzaW9uLmNw
cDogQWRkZWQuCisgICAgICAgIChxV2ViS2l0VmVyc2lvbik6CisgICAgICAgIChxV2ViS2l0TWFq
b3JWZXJzaW9uKToKKyAgICAgICAgKHFXZWJLaXRNaW5vclZlcnNpb24pOgorICAgICAgICAqIEFw
aS9xd2Via2l0dmVyc2lvbi5oOiBBZGRlZC4KKyAgICAgICAgKiBBcGkvcXdlYnBhZ2UuY3BwOgor
ICAgICAgICAoUVdlYlBhZ2U6OnVzZXJBZ2VudEZvclVybCk6CisgICAgICAgICogdGVzdHMvcXdl
YnZpZXcvdHN0X3F3ZWJ2aWV3LmNwcDoKKyAgICAgICAgKHRzdF9RV2ViVmlldzo6Z2V0V2ViS2l0
VmVyc2lvbik6CisKIDIwMDktMDctMTAgIFlhZWwgQWhhcm9uICA8eWFlbC5haGFyb25Abm9raWEu
Y29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEhvbGdlciBGcmV5dGhlci4KZGlmZiAtLWdpdCBh
L1dlYktpdC9xdC90ZXN0cy9xd2Vidmlldy90c3RfcXdlYnZpZXcuY3BwIGIvV2ViS2l0L3F0L3Rl
c3RzL3F3ZWJ2aWV3L3RzdF9xd2Vidmlldy5jcHAKaW5kZXggNjUwMWJmYy4uMDFkMGU5MiAxMDA2
NDQKLS0tIGEvV2ViS2l0L3F0L3Rlc3RzL3F3ZWJ2aWV3L3RzdF9xd2Vidmlldy5jcHAKKysrIGIv
V2ViS2l0L3F0L3Rlc3RzL3F3ZWJ2aWV3L3RzdF9xd2Vidmlldy5jcHAKQEAgLTI1LDYgKzI1LDcg
QEAKICNpbmNsdWRlIDxxd2VicGFnZS5oPgogI2luY2x1ZGUgPHFuZXR3b3JrcmVxdWVzdC5oPgog
I2luY2x1ZGUgPHFkaXJpdGVyYXRvci5oPgorI2luY2x1ZGUgPHF3ZWJraXR2ZXJzaW9uLmg+CiAK
IGNsYXNzIHRzdF9RV2ViVmlldyA6IHB1YmxpYyBRT2JqZWN0CiB7CkBAIC00MCw2ICs0MSw3IEBA
IHByaXZhdGUgc2xvdHM6CiAgICAgdm9pZCByZW5kZXJIaW50cygpOwogICAgIHZvaWQgZ3Vlc3NV
cmxGcm9tU3RyaW5nX2RhdGEoKTsKICAgICB2b2lkIGd1ZXNzVXJsRnJvbVN0cmluZygpOworICAg
IHZvaWQgZ2V0V2ViS2l0VmVyc2lvbigpOwogfTsKIAogLy8gVGhpcyB3aWxsIGJlIGNhbGxlZCBi
ZWZvcmUgdGhlIGZpcnN0IHRlc3QgZnVuY3Rpb24gaXMgZXhlY3V0ZWQuCkBAIC0xNjAsNiArMTYy
LDExIEBAIHZvaWQgdHN0X1FXZWJWaWV3OjpndWVzc1VybEZyb21TdHJpbmcoKQogICAgIFFDT01Q
QVJFKHVybCwgZ3Vlc3NVcmxGcm9tU3RyaW5nKTsKIH0KIAordm9pZCB0c3RfUVdlYlZpZXc6Omdl
dFdlYktpdFZlcnNpb24oKQoreworICAgIFFWRVJJRlkocVdlYktpdFZlcnNpb24oKS50b0RvdWJs
ZSgpID4gMCk7Cit9CisKIFFURVNUX01BSU4odHN0X1FXZWJWaWV3KQogI2luY2x1ZGUgInRzdF9x
d2Vidmlldy5tb2MiCiAKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktp
dFRvb2xzL0NoYW5nZUxvZwppbmRleCA5NjgzNGJmLi43YmE2ZDIwIDEwMDY0NAotLS0gYS9XZWJL
aXRUb29scy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MjEgQEAKKzIwMDktMDctMTUgIFJvYmVydCBIb2dhbiAgPHJvYmVydEByb2JlcnRob2dhbi5uZXQ+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIFdl
YktpdFZlcnNpb24uaC4gQWRkIFdlYktpdCB2ZXJzaW9uIEFQSSB0byBRdC4KKyAgICAgICAgCisg
ICAgICAgIFN0b3JlIHZlcnNpb24gaW5mb3JtYXRpb24gaW4gV2ViS2l0VmVyc2lvbi5oLiBUaGlz
IGZpbGUgY2FuIGJlCisgICAgICAgIHVwZGF0ZWQgYXQgYW55IHRpbWUgYnkgcnVubmluZyBnZW5l
cmF0ZS13ZWJraXQtdmVyc2lvbi5wbC4gVGhlCisgICAgICAgIHZlcnNpb24gaW5mb3JtYXRpb24g
aXMgZXh0cmFjdGVkIGZyb20gV2ViS2l0L21hYy9Db25maWd1cmF0aW9ucy9WZXJzaW9uLnhjY29u
ZmlnLgorICAgICAgICAKKyAgICAgICAgQWxzbyBhbWVuZCB0aGUgVXNlciBBZ2VudCBzdHJpbmcg
aW4gUXQgdG8gcGxhY2UgdGhlIFNhZmFyaSBjbGF1c2Ugb3V0c2lkZQorICAgICAgICB0aGUgZmlu
YWwgYnJhY2tldCBhbmQgdG8gdGhlIGVuZCBvZiB0aGUgVUEgc3RyaW5nLiBUaGlzIG1pcnJvcnMg
dGhlIHByYWN0aWNlCisgICAgICAgIG9mIGFsbCBvdGhlciBXZWJLaXQgcG9ydHMuCisgICAgICAg
IAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjcxNTgK
KworICAgICAgICAqIFNjcmlwdHMvZ2VuZXJhdGUtd2Via2l0dmVyc2lvbi5wbDogQWRkZWQuCisK
IDIwMDktMDctMTAgIERhdmlkIEtpbHplciAgPGRka2lsemVyQGFwcGxlLmNvbT4KIAogICAgICAg
ICA8aHR0cDovL3dlYmtpdC5vcmcvYi8yNzE3Mz4gc3ZuLWFwcGx5OiBGaXggdHlwbyBpbiBnaXQg
Y29tbWFuZCB1c2VkIHRvIGZpbmQgZGVsZXRlZCBmaWxlcwpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9v
bHMvU2NyaXB0cy9nZW5lcmF0ZS13ZWJraXR2ZXJzaW9uLnBsIGIvV2ViS2l0VG9vbHMvU2NyaXB0
cy9nZW5lcmF0ZS13ZWJraXR2ZXJzaW9uLnBsCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAw
MDAwMDAuLjI3NDdiNTgKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL2dl
bmVyYXRlLXdlYmtpdHZlcnNpb24ucGwKQEAgLTAsMCArMSwxMzcgQEAKKyMhL3Vzci9iaW4vcGVy
bAorCisjIEJhc2VkIG9uIG1ha2VfbmFtZXMucGwKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDA1LCAy
MDA2LCAyMDA3LCAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJp
Z2h0IChDKSAyMDA5LCBKdWxpZW4gQ2hhZmZyYWl4IDxqY2hhZmZyYWl4QHdlYmtpdC5vcmc+Cisj
IENvcHlyaWdodCAoQykgMjAwOSBUb3JjaCBNb2JpbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LiAoaHR0cDovL3d3dy50b3JjaG1vYmlsZS5jb20vKQorIyBDb3B5cmlnaHQgKEMpIDIwMDkgUm9i
ZXJ0IEhvZ2FuIDxyb2JlcnRAcm9iZXJ0aG9nYW4ubmV0PgorIworIyBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisjIGFyZSBtZXQ6CisjCisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjIDMuICBOZWl0aGVy
IHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVz
IG9mCisjICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkCisjICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisj
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisj
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTCisjIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyMgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5ECisjIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorIyBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorCisjIFRoaXMgc2NyaXB0IHJlYWRzIFZlcnNpb24ueGNjb25maWcgYW5kIHJldHVybnMgZWl0
aGVyIG9yIGJvdGggb2YgdGhlIG1ham9yIGFuZCBtaW5vcgorIyBXZWJLaXQgdmVyc2lvbiBudW1i
ZXJzLiBJdCBpcyBjdXJyZW50bHkgdXNlZCBieSBXZWJLaXQucHJpLgorCit1c2Ugc3RyaWN0Owor
Cit1c2UgQ29uZmlnOwordXNlIEdldG9wdDo6TG9uZzsKK3VzZSBGaWxlOjpQYXRoOwordXNlIFN3
aXRjaDsKKworbXkgJHVzYWdlID0gImdlbmVyYXRlLXdlYmtpdHZlcnNpb24gWy0tY29uZmlnIC9X
ZWJLaXQvbWFjL0NvbmZpZ3VyYXRpb25zL1ZlcnNpb24ueGNjb25maWddIFstLW91dHB1dERpciA8
b3V0cHV0ZGlyPl0iOworCitteSAkbWFqb3JfdmVyc2lvbiA9ICIiOworbXkgJG1pbm9yX3ZlcnNp
b24gPSAiIjsKK215ICRjb25maWdGaWxlID0gIi4vV2ViS2l0L21hYy9Db25maWd1cmF0aW9ucy9W
ZXJzaW9uLnhjY29uZmlnIjsKK215ICRvdXRwdXREaXIgPSAiLi9XZWJDb3JlL3BsYXRmb3JtLyI7
CisKK0dldE9wdGlvbnMoJ2NvbmZpZz1zJyA9PiBcJGNvbmZpZ0ZpbGUsCisgICAgJ291dHB1dERp
cj1zJyA9PiBcJG91dHB1dERpcik7CisKK2RpZSAiLi9XZWJLaXQvbWFjL0NvbmZpZ3VyYXRpb25z
L1ZlcnNpb24ueGNjb25maWcgZG9lcyBub3QgZXhpc3Q6IHVzZSAtLWNvbmZpZyA8ZmlsZT4gdG8g
c3BlY2lmeSBpdHMgY29ycmVjdCBsb2NhdGlvbi4iIHVubGVzcyAoLWUgJGNvbmZpZ0ZpbGUpOwor
bXkgJHdlYktpdFZlcnNpb25QYXRoID0gIiRvdXRwdXREaXIvV2ViS2l0VmVyc2lvbi5oIjsKK2Rp
ZSAiJG91dHB1dERpci9XZWJLaXRWZXJzaW9uLmggZG9lcyBub3QgZXhpc3Q6IHVzZSAtLW91dHB1
dERpciA8ZGlyZWN0b3J5PiB0byBzcGVjaWZ5IHRoZSBsb2NhdGlvbiBvZiBXZWJDb3JlL3BsYXRm
b3JtL1dlYktpdFZlcnNpb24uaCIgdW5sZXNzICgtZSAiJG91dHB1dERpci9XZWJLaXRWZXJzaW9u
LmgiKTsKKworcHJpbnQgIkZldGNoaW5nIFdlYktpdCB2ZXJzaW9uIGluZm9ybWF0aW9uIGZyb20g
JGNvbmZpZ0ZpbGVcbiI7CisKK3VubGVzcyAob3BlbiBJTlBVVCwgIjwiLCAkY29uZmlnRmlsZSkg
eyBwcmludCBTVERFUlIgIkZpbGUgZG9lcyBub3QgZXhpc3Q6ICRjb25maWdGaWxlXG4iO30KK3do
aWxlIChteSAkbGluZSA9IDxJTlBVVD4pIHsKKyAgICBjaG9tcCAkbGluZTsKKyAgICBpZiAoJGxp
bmUgPX4gL15NQUpPUl9WRVJTSU9OXHMrPVxzK1xkKzsvKSB7CisgICAgICAkbGluZSA9fiBzL14o
TUFKT1JfVkVSU0lPTilccysoPSlccysoXGQrKTsvJDMvOworICAgICAgJG1ham9yX3ZlcnNpb24g
PSAkbGluZTsKKyAgICB9CisgICAgaWYgKCRsaW5lID1+IC9eTUlOT1JfVkVSU0lPTlxzKz1ccytc
ZCs7LykgeworICAgICAgJGxpbmUgPX4gcy9eKE1JTk9SX1ZFUlNJT04pXHMrKD0pXHMrKFxkKyk7
LyQzLzsKKyAgICAgICRtaW5vcl92ZXJzaW9uID0gJGxpbmU7CisgICAgfQorfQorCiskbWFqb3Jf
dmVyc2lvbiA9ICI1MzEiIHVubGVzcyAoaXNJbnQoJG1ham9yX3ZlcnNpb24pKTsKKyRtaW5vcl92
ZXJzaW9uID0gIjMiIHVubGVzcyAoaXNJbnQoJG1pbm9yX3ZlcnNpb24pKTsKKworCitwcmludCAi
VXBkYXRpbmcgJHdlYktpdFZlcnNpb25QYXRoXG4iOworcHJpbnRXZWJLaXRWZXJzaW9uSGVhZGVy
RmlsZSgiJHdlYktpdFZlcnNpb25QYXRoIik7CisKK3N1YiBwcmludExpY2Vuc2VIZWFkZXIKK3sK
KyAgICBteSAkRiA9IHNoaWZ0OworICAgIHByaW50IEYgIi8qCisgKiBUSElTIEZJTEUgSVMgQVVU
T01BVElDQUxMWSBHRU5FUkFURUQsIERPIE5PVCBFRElULgorICoKKyAqCisgKiBDb3B5cmlnaHQg
KEMpIDIwMDkgQXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICov
CisKKworIjsKK30KKworc3ViIHByaW50V2ViS2l0VmVyc2lvbkhlYWRlckZpbGUKK3sKKyAgICBt
eSAkaGVhZGVyUGF0aCA9IHNoaWZ0OworICAgIG15ICRGOworICAgIG9wZW4gRiwgIj4kaGVhZGVy
UGF0aCI7CisKKyAgICBwcmludExpY2Vuc2VIZWFkZXIoJEYpOworCisgICAgcHJpbnQgRiAiI2lm
bmRlZiBXRUJLSVRWRVJTSU9OX0hcbiI7CisgICAgcHJpbnQgRiAiI2RlZmluZSBXRUJLSVRWRVJT
SU9OX0hcblxuIjsKKworICAgIHByaW50IEYgIiNkZWZpbmUgV0VCS0lUX01BSk9SX1ZFUlNJT04g
JG1ham9yX3ZlcnNpb25cbiI7CisgICAgcHJpbnQgRiAiI2RlZmluZSBXRUJLSVRfTUlOT1JfVkVS
U0lPTiAkbWlub3JfdmVyc2lvblxuXG4iOworCisgICAgcHJpbnQgRiAiI2VuZGlmIC8vIFdFQktJ
VFZFUlNJT05fSFxuIjsKKworICAgIGNsb3NlIEY7Cit9CisKK3N1YiBpc0ludHsKKyAgbXkgJHZh
bCA9IHNoaWZ0OworICByZXR1cm4gKCR2YWwgPX4gbS9eXGQrJC8pOworfQotLSAKMS42LjAuNAoK
</data>
<flag name="review"
          id="17172"
          type_id="1"
          status="-"
          setter="mrowe"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>33559</attachid>
            <date>2009-07-27 11:24:55 -0700</date>
            <delta_ts>2009-07-28 10:11:05 -0700</delta_ts>
            <desc>Updated patch</desc>
            <filename>0001-Add-WebKit-version-API-to-Qt.patch</filename>
            <type>text/plain</type>
            <size>17688</size>
            <attacher name="Robert Hogan">robert</attacher>
            
              <data encoding="base64">RnJvbSAxNWZjZGZmOTY4ZWVlYzZmZjQ2MzQ4OGU5MWJhNzM1MTA0ZDRmMjEwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBtd2VuZ2UgPHJvYmVydEByb2JlcnRob2dhbi5uZXQ+CkRhdGU6
IFNhdCwgMTEgSnVsIDIwMDkgMTI6MjA6MzIgKzAxMDAKU3ViamVjdDogW1BBVENIXSBBZGQgV2Vi
S2l0IHZlcnNpb24gQVBJIHRvIFF0LgoKR2V0IHRoZSBjdXJyZW50ICdTYWZhcmknIHZlcnNpb24g
b2YgV2ViS2l0IGZyb20gVmVyc2lvbi54Y2NvbmZpZwphdCBjb21waWxlIHRpbWUgYW5kIG1ha2Ug
aXQgYXZhaWxhYmxlIHRvIFdlYktpdCBwb3J0cyB0aHJvdWdoCldlYktpdFZlcnNpb24uaC4KCkFs
c28gYW1lbmQgdGhlIFVzZXIgQWdlbnQgc3RyaW5nIHRvIHBsYWNlIHRoZSBTYWZhcmkgY2xhdXNl
IG91dHNpZGUKdGhlIGZpbmFsIGJyYWNrZXQgYW5kIHRvIHRoZSBlbmQgb2YgdGhlIFF0IFVBIHN0
cmluZy4KCmh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzE1OAotLS0K
IFdlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTQgKysrCiBX
ZWJDb3JlL1dlYkNvcmUucHJvICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE2ICsrKy0KIFdl
YkNvcmUvcGxhdGZvcm0vZ2VuZXJhdGUtd2Via2l0dmVyc2lvbi5wbCB8ICAxMzYgKysrKysrKysr
KysrKysrKysrKysrKysrKysrKwogV2ViS2l0L3F0L0FwaS9oZWFkZXJzLnByaSAgICAgICAgICAg
ICAgICAgIHwgICAgMyArLQogV2ViS2l0L3F0L0FwaS9xd2Via2l0dmVyc2lvbi5jcHAgICAgICAg
ICAgIHwgICA1OCArKysrKysrKysrKysKIFdlYktpdC9xdC9BcGkvcXdlYmtpdHZlcnNpb24uaCAg
ICAgICAgICAgICB8ICAgMjkgKysrKysrCiBXZWJLaXQvcXQvQXBpL3F3ZWJwYWdlLmNwcCAgICAg
ICAgICAgICAgICAgfCAgIDE0ICsrLQogV2ViS2l0L3F0L0NoYW5nZUxvZyAgICAgICAgICAgICAg
ICAgICAgICAgIHwgICAyNiArKysrKysKIFdlYktpdC9xdC90ZXN0cy9xd2Vidmlldy90c3RfcXdl
YnZpZXcuY3BwICB8ICAgIDcgKysKIDkgZmlsZXMgY2hhbmdlZCwgMjk3IGluc2VydGlvbnMoKyks
IDYgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9wbGF0Zm9ybS9nZW5l
cmF0ZS13ZWJraXR2ZXJzaW9uLnBsCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViS2l0L3F0L0FwaS9x
d2Via2l0dmVyc2lvbi5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJLaXQvcXQvQXBpL3F3ZWJr
aXR2ZXJzaW9uLmgKCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hh
bmdlTG9nCmluZGV4IDY2YmI2Y2UuLjFkODA0Y2YgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdl
TG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMDktMDctMTEg
IFJvYmVydCBIb2dhbiAgPHJvYmVydEByb2JlcnRob2dhbi5uZXQ+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIFdlYktpdCB2ZXJzaW9uIEFQSSB0
byBRdC4KKyAgICAgICAgCisgICAgICAgIEdldCB0aGUgY3VycmVudCB2ZXJzaW9uIG9mIFdlYktp
dCBmcm9tIFdlYktpdC9tYWMvQ29uZmlndXJhdGlvbnMvVmVyc2lvbi54Y2NvbmZpZworICAgICAg
ICBhdCBjb21waWxlIHRpbWUgYW5kIG1ha2UgaXQgYXZhaWxhYmxlIHRvIHdlYmtpdCBwb3J0cyB0
aHJvdWdoIFdlYktpdFZlcnNpb24uaC4KKyAgICAgICAgCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzE1OAorCisgICAgICAgICogV2ViQ29yZS5wcm86
IENhbGwgZ2VuZXJhdGUtd2Via2l0dmVyc2lvbi5wbAorICAgICAgICAqIHBsYXRmb3JtL2dlbmVy
YXRlLXdlYmtpdHZlcnNpb24ucGw6IEFkZGVkCisKIDIwMDktMDctMTEgIFNpbW9uIEhhdXNtYW5u
ICA8aGF1c21hbm5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBGaXggdGhlIFF0IGJ1aWxkIGFmdGVy
IHI0NTcyNC4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9XZWJDb3JlL1dlYkNv
cmUucHJvCmluZGV4IDg0YTViNmEuLmEyYjQ0N2IgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29y
ZS5wcm8KKysrIGIvV2ViQ29yZS9XZWJDb3JlLnBybwpAQCAtMTIxNiw3ICsxMjE2LDggQEAgU09V
UkNFUyArPSBcCiAgICAgLi4vV2ViS2l0L3F0L0FwaS9xd2ViaGlzdG9yeWludGVyZmFjZS5jcHAg
XAogICAgIC4uL1dlYktpdC9xdC9BcGkvcXdlYnBsdWdpbmZhY3RvcnkuY3BwIFwKICAgICAuLi9X
ZWJLaXQvcXQvQXBpL3F3ZWJzZWN1cml0eW9yaWdpbi5jcHAgXAotICAgIC4uL1dlYktpdC9xdC9B
cGkvcXdlYmRhdGFiYXNlLmNwcAorICAgIC4uL1dlYktpdC9xdC9BcGkvcXdlYmRhdGFiYXNlLmNw
cCBcCisgICAgLi4vV2ViS2l0L3F0L0FwaS9xd2Via2l0dmVyc2lvbi5jcHAKIAogCiAgICAgd2lu
MzItKnx3aW5jZSo6IFNPVVJDRVMgKz0gcGxhdGZvcm0vd2luL1N5c3RlbVRpbWVXaW4uY3BwCkBA
IC0yMTc4LDYgKzIxNzksMTkgQEAgeHBhdGhiaXNvbi5kZXBlbmRlbmN5X3R5cGUgPSBUWVBFX0MK
IHhwYXRoYmlzb24udmFyaWFibGVfb3V0ID0gR0VORVJBVEVEX1NPVVJDRVMKIGFkZEV4dHJhQ29t
cGlsZXJXaXRoSGVhZGVyKHhwYXRoYmlzb24pCiAKKyMgR0VORVJBVE9SIDExOiBXZWJLaXQgVmVy
c2lvbgorIyBUaGUgYXBwcm9wcmlhdGUgQXBwbGUtbWFpbnRhaW5lZCBWZXJzaW9uLnhjY29uZmln
IGZpbGUgZm9yIFdlYktpdCB2ZXJzaW9uIGluZm9ybWF0aW9uIGlzIGluIFdlYktpdC9tYWMvQ29u
ZmlndXJhdGlvbnMvLgord2Via2l0dmVyc2lvbi5vdXRwdXQgPSAkJHtHRU5FUkFURURfU09VUkNF
U19ESVJ9JCR7UU1BS0VfRElSX1NFUH1XZWJLaXRWZXJzaW9uLmgKK3dlYmtpdHZlcnNpb24uY29t
bWFuZHMgPSBwZXJsICQkUFdEL3BsYXRmb3JtL2dlbmVyYXRlLXdlYmtpdHZlcnNpb24ucGwgLS1j
b25maWcgJCRQV0QvLi4vV2ViS2l0L21hYy9Db25maWd1cmF0aW9ucy9WZXJzaW9uLnhjY29uZmln
IC0tb3V0cHV0RGlyICQke0dFTkVSQVRFRF9TT1VSQ0VTX0RJUn0kJHtRTUFLRV9ESVJfU0VQfQor
V0VCS0lUVkVSU0lPTl9TQ1JJUFQgPSAkJFBXRC9wbGF0Zm9ybS9nZW5lcmF0ZS13ZWJraXR2ZXJz
aW9uLnBsCit3ZWJraXR2ZXJzaW9uLmlucHV0ID0gV0VCS0lUVkVSU0lPTl9TQ1JJUFQKK3dlYmtp
dHZlcnNpb24uQ09ORklHID0gdGFyZ2V0X3ByZWRlcHMKK3dlYmtpdHZlcnNpb24uZGVwZW5kID0g
JCRQV0QvcGxhdGZvcm0vZ2VuZXJhdGUtd2Via2l0dmVyc2lvbi5wbAord2Via2l0dmVyc2lvbi52
YXJpYWJsZV9vdXQgPSBHRU5FUkFURURfU09VUkNFUword2Via2l0dmVyc2lvbi5jbGVhbiA9ICR7
UU1BS0VfVkFSX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUl9TTEFTSH1XZWJLaXRWZXJzaW9uLmgKK2Fk
ZEV4dHJhQ29tcGlsZXIod2Via2l0dmVyc2lvbikKKworCiBpbmNsdWRlKCQkUFdELy4uL1dlYktp
dC9xdC9BcGkvaGVhZGVycy5wcmkpCiBIRUFERVJTICs9ICQkV0VCS0lUX0FQSV9IRUFERVJTCiAh
Q09ORklHKFFURElSX2J1aWxkKSB7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dlbmVy
YXRlLXdlYmtpdHZlcnNpb24ucGwgYi9XZWJDb3JlL3BsYXRmb3JtL2dlbmVyYXRlLXdlYmtpdHZl
cnNpb24ucGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGZlYjc3MAotLS0g
L2Rldi9udWxsCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ2VuZXJhdGUtd2Via2l0dmVyc2lvbi5w
bApAQCAtMCwwICsxLDEzNiBAQAorIyEvdXNyL2Jpbi9wZXJsCisKKyMgQmFzZWQgb24gbWFrZV9u
YW1lcy5wbAorIworIyBDb3B5cmlnaHQgKEMpIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDkgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMDksIEp1bGllbiBD
aGFmZnJhaXggPGpjaGFmZnJhaXhAd2Via2l0Lm9yZz4KKyMgQ29weXJpZ2h0IChDKSAyMDA5IFRv
cmNoIE1vYmlsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIChodHRwOi8vd3d3LnRvcmNobW9i
aWxlLmNvbS8pCisjIENvcHlyaWdodCAoQykgMjAwOSBSb2JlcnQgSG9nYW4gPHJvYmVydEByb2Jl
cnRob2dhbi5uZXQ+CisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMK
KyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMgMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29t
cHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyMgICAgIGl0cyBjb250cmli
dXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQK
KyMgICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4g
cGVybWlzc2lvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQg
SVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyMgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElU
UyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyMgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOworIyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyMgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisjIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyMgVGhpcyBzY3JpcHQgcmVh
ZHMgVmVyc2lvbi54Y2NvbmZpZyBhbmQgcmV0dXJucyBlaXRoZXIgb3IgYm90aCBvZiB0aGUgbWFq
b3IgYW5kIG1pbm9yCisjIFdlYktpdCB2ZXJzaW9uIG51bWJlcnMuIEl0IGlzIGN1cnJlbnRseSB1
c2VkIGJ5IFdlYktpdC5wcmkuCisKK3VzZSBzdHJpY3Q7CisKK3VzZSBDb25maWc7Cit1c2UgR2V0
b3B0OjpMb25nOwordXNlIEZpbGU6OlBhdGg7Cit1c2UgU3dpdGNoOworCitteSAkdXNhZ2UgPSAi
Z2VuZXJhdGUtd2Via2l0dmVyc2lvbiAtLWNvbmZpZyBXZWJLaXQvbWFjL0NvbmZpZ3VyYXRpb25z
L1ZlcnNpb24ueGNjb25maWcgLS1vdXRwdXREaXIgPG91dHB1dGRpcj4iOworCitteSAkbWFqb3Jf
dmVyc2lvbiA9ICIiOworbXkgJG1pbm9yX3ZlcnNpb24gPSAiIjsKKyMgVGhlIGFwcHJvcHJpYXRl
IEFwcGxlLW1haW50YWluZWQgVmVyc2lvbi54Y2NvbmZpZyBmaWxlIGZvciBXZWJLaXQgdmVyc2lv
biBpbmZvcm1hdGlvbiBpcyBpbiBXZWJLaXQvbWFjL0NvbmZpZ3VyYXRpb25zLy4KK215ICRjb25m
aWdGaWxlID0gIi4vV2ViS2l0L21hYy9Db25maWd1cmF0aW9ucy9WZXJzaW9uLnhjY29uZmlnIjsK
K215ICRvdXRwdXREaXIgPSAiIjsKKworR2V0T3B0aW9ucygnY29uZmlnPXMnID0+IFwkY29uZmln
RmlsZSwKKyAgICAnb3V0cHV0RGlyPXMnID0+IFwkb3V0cHV0RGlyKTsKKworZGllICJZb3UgbXVz
dCBzcGVjaWZ5IGEgLS1jb25maWcgPGZpbGU+ICIgdW5sZXNzIChsZW5ndGgoJGNvbmZpZ0ZpbGUp
KTsKK2RpZSAiWW91IG11c3Qgc3BlY2lmeSBhIC0tb3V0cHV0RGlyIDxvdXRwdXRkaXI+ICIgdW5s
ZXNzIChsZW5ndGgoJG91dHB1dERpcikpOworCitkaWUgIi4vV2ViS2l0L21hYy9Db25maWd1cmF0
aW9ucy9WZXJzaW9uLnhjY29uZmlnIGRvZXMgbm90IGV4aXN0OiB1c2UgLS1jb25maWcgPGZpbGU+
IHRvIHNwZWNpZnkgaXRzIGNvcnJlY3QgbG9jYXRpb24uIiB1bmxlc3MgKC1lICRjb25maWdGaWxl
KTsKK2RpZSAiJG91dHB1dERpci8gZG9lcyBub3QgZXhpc3Q6IHVzZSAtLW91dHB1dERpciA8ZGly
ZWN0b3J5PiB0byBzcGVjaWZ5IHRoZSBsb2NhdGlvbiBvZiBhbiBvdXRwdXQgZGlyZWN0b3J5IHRo
YXQgZXhpc3RzIiB1bmxlc3MgKC1lICIkb3V0cHV0RGlyIik7CisKK3VubGVzcyAob3BlbiBJTlBV
VCwgIjwiLCAkY29uZmlnRmlsZSkgeyBwcmludCBTVERFUlIgIkZpbGUgZG9lcyBub3QgZXhpc3Q6
ICRjb25maWdGaWxlXG4iO30KK3doaWxlIChteSAkbGluZSA9IDxJTlBVVD4pIHsKKyAgICBjaG9t
cCAkbGluZTsKKyAgICBpZiAoJGxpbmUgPX4gL15NQUpPUl9WRVJTSU9OXHMrPVxzK1xkKzsvKSB7
CisgICAgICAkbGluZSA9fiBzL14oTUFKT1JfVkVSU0lPTilccysoPSlccysoXGQrKTsvJDMvOwor
ICAgICAgJG1ham9yX3ZlcnNpb24gPSAkbGluZTsKKyAgICB9CisgICAgaWYgKCRsaW5lID1+IC9e
TUlOT1JfVkVSU0lPTlxzKz1ccytcZCs7LykgeworICAgICAgJGxpbmUgPX4gcy9eKE1JTk9SX1ZF
UlNJT04pXHMrKD0pXHMrKFxkKyk7LyQzLzsKKyAgICAgICRtaW5vcl92ZXJzaW9uID0gJGxpbmU7
CisgICAgfQorfQorCiskbWFqb3JfdmVyc2lvbiA9ICI1MzEiIHVubGVzcyAobGVuZ3RoKCRtYWpv
cl92ZXJzaW9uKSk7CiskbWlub3JfdmVyc2lvbiA9ICIzIiB1bmxlc3MgKGxlbmd0aCgkbWlub3Jf
dmVyc2lvbikpOworCitteSAkd2ViS2l0VmVyc2lvblBhdGggPSAiJG91dHB1dERpci9XZWJLaXRW
ZXJzaW9uLmgiOworCitwcmludFdlYktpdFZlcnNpb25IZWFkZXJGaWxlKCIkd2ViS2l0VmVyc2lv
blBhdGgiKTsKKworc3ViIHByaW50TGljZW5zZUhlYWRlcgoreworICAgIG15ICRGID0gc2hpZnQ7
CisgICAgcHJpbnQgRiAiLyoKKyAqIFRISVMgRklMRSBJUyBBVVRPTUFUSUNBTExZIEdFTkVSQVRF
RCwgRE8gTk9UIEVESVQuCisgKgorICoKKyAqIENvcHlyaWdodCAoQykgMjAwOSBBcHBsZSBDb21w
dXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworCisiOworfQorCitzdWIg
cHJpbnRXZWJLaXRWZXJzaW9uSGVhZGVyRmlsZQoreworICAgIG15ICRoZWFkZXJQYXRoID0gc2hp
ZnQ7CisgICAgbXkgJEY7CisgICAgb3BlbiBGLCAiPiRoZWFkZXJQYXRoIjsKKworICAgIHByaW50
TGljZW5zZUhlYWRlcigkRik7CisKKyAgICBwcmludCBGICIjaWZuZGVmIFdlYktpdFZlcnNpb25f
aFxuIjsKKyAgICBwcmludCBGICIjZGVmaW5lIFdlYktpdFZlcnNpb25faFxuXG4iOworCisgICAg
cHJpbnQgRiAiI2RlZmluZSBXRUJLSVRfTUFKT1JfVkVSU0lPTiAkbWFqb3JfdmVyc2lvblxuIjsK
KyAgICBwcmludCBGICIjZGVmaW5lIFdFQktJVF9NSU5PUl9WRVJTSU9OICRtaW5vcl92ZXJzaW9u
XG5cbiI7CisKKyAgICBwcmludCBGICIjZW5kaWYgLy9XZWJLaXRWZXJzaW9uX2hcbiI7CisKKyAg
ICBjbG9zZSBGOworfQorCisKKwpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L0FwaS9oZWFkZXJzLnBy
aSBiL1dlYktpdC9xdC9BcGkvaGVhZGVycy5wcmkKaW5kZXggZDkyZWIxYy4uZDczYWRiMCAxMDA2
NDQKLS0tIGEvV2ViS2l0L3F0L0FwaS9oZWFkZXJzLnByaQorKysgYi9XZWJLaXQvcXQvQXBpL2hl
YWRlcnMucHJpCkBAIC04LDQgKzgsNSBAQCBXRUJLSVRfQVBJX0hFQURFUlMgPSAkJFBXRC9xd2Vi
ZnJhbWUuaCBcCiAgICAgICAgICAgICAgICAgICAgICAkJFBXRC9xd2Vic2VjdXJpdHlvcmlnaW4u
aCBcCiAgICAgICAgICAgICAgICAgICAgICAkJFBXRC9xd2ViZWxlbWVudC5oIFwKICAgICAgICAg
ICAgICAgICAgICAgICQkUFdEL3F3ZWJwbHVnaW5mYWN0b3J5LmggXAotICAgICAgICAgICAgICAg
ICAgICAgJCRQV0QvcXdlYmhpc3RvcnkuaAorICAgICAgICAgICAgICAgICAgICAgJCRQV0QvcXdl
Ymhpc3RvcnkuaCBcCisgICAgICAgICAgICAgICAgICAgICAkJFBXRC9xd2Via2l0dmVyc2lvbi5o
CmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvQXBpL3F3ZWJraXR2ZXJzaW9uLmNwcCBiL1dlYktpdC9x
dC9BcGkvcXdlYmtpdHZlcnNpb24uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjA2MjgzOWYKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQvcXQvQXBpL3F3ZWJraXR2ZXJz
aW9uLmNwcApAQCAtMCwwICsxLDU4IEBACisvKgorICAgIENvcHlyaWdodCAoQykgMjAwOSBSb2Jl
cnQgSG9nYW4gPHJvYmVydEByb2JlcnRob2dhbi5uZXQ+CisKKyAgICBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICAgbW9kaWZ5
IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAg
ICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl
aXRoZXIKKyAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikg
YW55IGxhdGVyIHZlcnNpb24uCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4g
dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgICBidXQgV0lUSE9VVCBBTlkgV0FS
UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgIE1FUkNIQU5U
QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05V
CisgICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisK
KyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0
aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAgICB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAor
ICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgPHF3ZWJraXR2ZXJzaW9uLmg+CisjaW5jbHVkZSA8V2ViS2l0VmVyc2lvbi5o
PgorCisvKiEKKworICAgIFJldHVybnMgdGhlIHZlcnNpb24gbnVtYmVyIG9mIFdlYktpdCBhdCBy
dW4tdGltZSBhcyBhIHN0cmluZyAoZm9yCisgICAgZXhhbXBsZSwgIjUzMS4zIikuIFRoaXMgaXMg
dGhlIHZlcnNpb24gb2YgV2ViS2l0IHRoZSBhcHBsaWNhdGlvbgorICAgIHdhcyBjb21waWxlZCBh
Z2FpbnN0LgorCisqLworUVN0cmluZyBxV2ViS2l0VmVyc2lvbigpCit7CisgICAgcmV0dXJuIFFT
dHJpbmcoIiUxLiUyIikuYXJnKFdFQktJVF9NQUpPUl9WRVJTSU9OKS5hcmcoV0VCS0lUX01JTk9S
X1ZFUlNJT04pOworfQorCisvKiEKKworICAgIFJldHVybnMgdGhlICdtYWpvcicgdmVyc2lvbiBu
dW1iZXIgb2YgV2ViS2l0IGF0IHJ1bi10aW1lIGFzIGFuIGludGVnZXIKKyAgICAoZm9yIGV4YW1w
bGUsIDUzMSkuIFRoaXMgaXMgdGhlIHZlcnNpb24gb2YgV2ViS2l0IHRoZSBhcHBsaWNhdGlvbgor
ICAgIHdhcyBjb21waWxlZCBhZ2FpbnN0LgorCisqLworaW50IHFXZWJLaXRNYWpvclZlcnNpb24o
KQoreworICAgIHJldHVybiBXRUJLSVRfTUFKT1JfVkVSU0lPTjsKK30KKworLyohCisKKyAgICBS
ZXR1cm5zIHRoZSAnbWlub3InIHZlcnNpb24gbnVtYmVyIG9mIFdlYktpdCBhdCBydW4tdGltZSBh
cyBhbiBpbnRlZ2VyCisgICAgKGZvciBleGFtcGxlLCAzKS4gVGhpcyBpcyB0aGUgdmVyc2lvbiBv
ZiBXZWJLaXQgdGhlIGFwcGxpY2F0aW9uCisgICAgd2FzIGNvbXBpbGVkIGFnYWluc3QuCisKKyov
CitpbnQgcVdlYktpdE1pbm9yVmVyc2lvbigpCit7CisgICAgcmV0dXJuIFdFQktJVF9NSU5PUl9W
RVJTSU9OOworfQpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L0FwaS9xd2Via2l0dmVyc2lvbi5oIGIv
V2ViS2l0L3F0L0FwaS9xd2Via2l0dmVyc2lvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjczYjA1NzQKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQvcXQvQXBpL3F3ZWJr
aXR2ZXJzaW9uLmgKQEAgLTAsMCArMSwyOSBAQAorLyoKKyAgICBDb3B5cmlnaHQgKEMpIDIwMDkg
Um9iZXJ0IEhvZ2FuIDxyb2JlcnRAcm9iZXJ0aG9nYW4ubmV0PgorCisgICAgVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgIG1v
ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
CisgICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
bjsgZWl0aGVyCisgICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRp
b24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVk
IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5Z
IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJD
SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl
IEdOVQorICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz
LgorCisgICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBz
ZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgICAgdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9v
ciwKKyAgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyovCisKKyNpbmNsdWRlIDxxc3Ry
aW5nLmg+CisKKyNpZm5kZWYgcXdlYmtpdHZlcnNpb25faAorI2RlZmluZSBxd2Via2l0dmVyc2lv
bl9oCisKK1FTdHJpbmcgcVdlYktpdFZlcnNpb24oKTsKK2ludCBxV2ViS2l0TWFqb3JWZXJzaW9u
KCk7CitpbnQgcVdlYktpdE1pbm9yVmVyc2lvbigpOworCisjZW5kaWYgLy8gcXdlYmtpdHZlcnNp
b25faApkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L0FwaS9xd2VicGFnZS5jcHAgYi9XZWJLaXQvcXQv
QXBpL3F3ZWJwYWdlLmNwcAppbmRleCBiOTc0MjBjLi5hNDdhMWI4IDEwMDY0NAotLS0gYS9XZWJL
aXQvcXQvQXBpL3F3ZWJwYWdlLmNwcAorKysgYi9XZWJLaXQvcXQvQXBpL3F3ZWJwYWdlLmNwcApA
QCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgInF3ZWJoaXN0b3J5LmgiCiAjaW5jbHVkZSAicXdl
Ymhpc3RvcnlfcC5oIgogI2luY2x1ZGUgInF3ZWJzZXR0aW5ncy5oIgorI2luY2x1ZGUgInF3ZWJr
aXR2ZXJzaW9uLmgiCiAKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lVHJlZS5o
IgpAQCAtMjUxNyw3ICsyNTE4LDcgQEAgUVdlYlBsdWdpbkZhY3RvcnkgKlFXZWJQYWdlOjpwbHVn
aW5GYWN0b3J5KCkgY29uc3QKIAogICAgIFRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIHJldHVy
bnMgdGhlIGZvbGxvd2luZyB2YWx1ZToKIAotICAgICJNb3ppbGxhLzUuMCAoJVBsYXRmb3JtJTsg
JVNlY3VyaXR5JTsgJVN1YnBsYXRmb3JtJTsgJUxvY2FsZSUpIEFwcGxlV2ViS2l0LyVXZWJLaXRW
ZXJzaW9uJSAoS0hUTUwsIGxpa2UgR2Vja28sIFNhZmFyaS80MTkuMykgJUFwcFZlcnNpb24iCisg
ICAgIk1vemlsbGEvNS4wICglUGxhdGZvcm0lOyAlU2VjdXJpdHklOyAlU3VicGxhdGZvcm0lOyAl
TG9jYWxlJSkgQXBwbGVXZWJLaXQvJVdlYktpdFZlcnNpb24lIChLSFRNTCwgbGlrZSBHZWNrbykg
JUFwcFZlcnNpb24gU2FmYXJpLyVXZWJLaXRWZXJzaW9uJSIKIAogICAgIEluIHRoaXMgc3RyaW5n
IHRoZSBmb2xsb3dpbmcgdmFsdWVzIGFyZSByZXBsYWNlZCBhdCBydW4tdGltZToKICAgICBcbGlz
dApAQCAtMjUyNSw3ICsyNTI2LDcgQEAgUVdlYlBsdWdpbkZhY3RvcnkgKlFXZWJQYWdlOjpwbHVn
aW5GYWN0b3J5KCkgY29uc3QKICAgICBcbyAlU2VjdXJpdHklIGV4cGFuZHMgdG8gVSBpZiBTU0wg
aXMgZW5hYmxlZCwgb3RoZXJ3aXNlIE4uIFNTTCBpcyBlbmFibGVkIGlmIFFTc2xTb2NrZXQ6OnN1
cHBvcnRzU3NsKCkgcmV0dXJucyB0cnVlLgogICAgIFxvICVMb2NhbGUlIGlzIHJlcGxhY2VkIHdp
dGggUUxvY2FsZTo6bmFtZSgpLiBUaGUgbG9jYWxlIGlzIGRldGVybWluZWQgZnJvbSB0aGUgdmll
dyBvZiB0aGUgUVdlYlBhZ2UuIElmIG5vIHZpZXcgaXMgc2V0IG9uIHRoZSBRV2ViUGFnZSwKICAg
ICB0aGVuIGEgZGVmYXVsdCBjb25zdHJ1Y3RlZCBRTG9jYWxlIGlzIHVzZWQgaW5zdGVhZC4KLSAg
ICBcbyAlV2ViS2l0VmVyc2lvbiUgY3VycmVudGx5IGV4cGFuZHMgdG8gNTI3KworICAgIFxvICVX
ZWJLaXRWZXJzaW9uJSBpcyB0aGUgdmVyc2lvbiBvZiBXZWJLaXQgdGhlIGFwcGxpY2F0aW9uIHdh
cyBjb21waWxlZCBhZ2FpbnN0LgogICAgIFxvICVBcHBWZXJzaW9uJSBleHBhbmRzIHRvIFFDb3Jl
QXBwbGljYXRpb246OmFwcGxpY2F0aW9uTmFtZSgpL1FDb3JlQXBwbGljYXRpb246OmFwcGxpY2F0
aW9uVmVyc2lvbigpIGlmIHRoZXkncmUgc2V0OyBvdGhlcndpc2UgZGVmYXVsdGluZyB0byBRdCBh
bmQgdGhlIGN1cnJlbnQgUXQgdmVyc2lvbi4KICAgICBcZW5kbGlzdAogKi8KQEAgLTI2ODMsMTIg
KzI2ODQsMTMgQEAgUVN0cmluZyBRV2ViUGFnZTo6dXNlckFnZW50Rm9yVXJsKGNvbnN0IFFVcmwm
IHVybCkgY29uc3QKICAgICB1YS5hcHBlbmQoUUxhdGluMVN0cmluZygiKSAiKSk7CiAKICAgICAv
LyB3ZWJraXQvcXQgdmVyc2lvbgotICAgIHVhLmFwcGVuZChRTGF0aW4xU3RyaW5nKCJBcHBsZVdl
YktpdC8iIFdFQktJVF9WRVJTSU9OICIgKEtIVE1MLCBsaWtlIEdlY2tvLCBTYWZhcmkvNDE5LjMp
ICIpKTsKKyAgICB1YS5hcHBlbmQoUVN0cmluZyhRTGF0aW4xU3RyaW5nKCJBcHBsZVdlYktpdC8l
MSAoS0hUTUwsIGxpa2UgR2Vja28pICIpKQorICAgICAgICAgICAgICAgICAgICAgIC5hcmcoUVN0
cmluZyhxV2ViS2l0VmVyc2lvbigpKSkpOwogCiAgICAgLy8gQXBwbGljYXRpb24gbmFtZS92ZXJz
aW9uCiAgICAgUVN0cmluZyBhcHBOYW1lID0gUUNvcmVBcHBsaWNhdGlvbjo6YXBwbGljYXRpb25O
YW1lKCk7CiAgICAgaWYgKCFhcHBOYW1lLmlzRW1wdHkoKSkgewotICAgICAgICB1YS5hcHBlbmQo
UUxhdGluMUNoYXIoJyAnKSArIGFwcE5hbWUpOworICAgICAgICB1YS5hcHBlbmQoYXBwTmFtZSk7
CiAjaWYgUVRfVkVSU0lPTiA+PSAweDA0MDQwMAogICAgICAgICBRU3RyaW5nIGFwcFZlciA9IFFD
b3JlQXBwbGljYXRpb246OmFwcGxpY2F0aW9uVmVyc2lvbigpOwogICAgICAgICBpZiAoIWFwcFZl
ci5pc0VtcHR5KCkpCkBAIC0yNjk5LDYgKzI3MDEsMTAgQEAgUVN0cmluZyBRV2ViUGFnZTo6dXNl
ckFnZW50Rm9yVXJsKGNvbnN0IFFVcmwmIHVybCkgY29uc3QKICAgICAgICAgdWEuYXBwZW5kKFFM
YXRpbjFTdHJpbmcoIlF0LyIpKTsKICAgICAgICAgdWEuYXBwZW5kKFFMYXRpbjFTdHJpbmcocVZl
cnNpb24oKSkpOwogICAgIH0KKworICAgIHVhLmFwcGVuZChRU3RyaW5nKFFMYXRpbjFTdHJpbmco
IiBTYWZhcmkvJTEiKSkKKyAgICAgICAgICAgICAgICAgICAgICAuYXJnKHFXZWJLaXRWZXJzaW9u
KCkpKTsKKwogICAgIHJldHVybiB1YTsKIH0KIApkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L0NoYW5n
ZUxvZyBiL1dlYktpdC9xdC9DaGFuZ2VMb2cKaW5kZXggZWVhMWE0MC4uYjYwYTEyMyAxMDA2NDQK
LS0tIGEvV2ViS2l0L3F0L0NoYW5nZUxvZworKysgYi9XZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjkgQEAKKzIwMDktMDctMTEgIFJvYmVydCBIb2dhbiAgPHJvYmVydEByb2JlcnRob2dh
bi5uZXQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QWRkIFdlYktpdCB2ZXJzaW9uIEFQSSB0byBRdC4KKyAgICAgICAgCisgICAgICAgIEdldCB0aGUg
Y3VycmVudCB2ZXJzaW9uIG9mIFdlYktpdCBmcm9tIFdlYktpdC9tYWMvQ29uZmlndXJhdGlvbnMv
VmVyc2lvbi54Y2NvbmZpZworICAgICAgICBhdCBjb21waWxlIHRpbWUgYW5kIG1ha2UgaXQgYXZh
aWxhYmxlIHRvIFF0IGFwcGxpY2F0aW9ucyB0aHJvdWdoCisgICAgICAgIHFXZWJLaXRWZXJzaW9u
KCkuCisgICAgICAgIAorICAgICAgICBBbHNvIGFtZW5kIHRoZSBVc2VyIEFnZW50IHN0cmluZyB0
byBwbGFjZSB0aGUgU2FmYXJpIGNsYXVzZSBvdXRzaWRlCisgICAgICAgIHRoZSBmaW5hbCBicmFj
a2V0IGFuZCB0byB0aGUgZW5kIG9mIHRoZSBVQSBzdHJpbmcuCisgICAgICAgIAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjcxNTgKKworICAgICAgICAq
IEFwaS9oZWFkZXJzLnByaToKKyAgICAgICAgKiBBcGkvcXdlYmtpdHZlcnNpb24uY3BwOiBBZGRl
ZC4KKyAgICAgICAgKHdlYktpdFZlcnNpb24pOgorICAgICAgICAod2ViS2l0TWFqb3JWZXJzaW9u
KToKKyAgICAgICAgKHdlYktpdE1pbm9yVmVyc2lvbik6CisgICAgICAgICogQXBpL3F3ZWJraXR2
ZXJzaW9uLmg6IEFkZGVkLgorICAgICAgICAqIEFwaS9xd2VicGFnZS5jcHA6CisgICAgICAgIChR
V2ViUGFnZTo6dXNlckFnZW50Rm9yVXJsKToKKyAgICAgICAgKiB0ZXN0cy9xd2Vidmlldy90c3Rf
cXdlYnZpZXcuY3BwOgorICAgICAgICAodHN0X1FXZWJWaWV3OjpnZXRXZWJLaXRWZXJzaW9uKToK
KwogMjAwOS0wNy0xMCAgWWFlbCBBaGFyb24gIDx5YWVsLmFoYXJvbkBub2tpYS5jb20+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgSG9sZ2VyIEZyZXl0aGVyLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0
L3Rlc3RzL3F3ZWJ2aWV3L3RzdF9xd2Vidmlldy5jcHAgYi9XZWJLaXQvcXQvdGVzdHMvcXdlYnZp
ZXcvdHN0X3F3ZWJ2aWV3LmNwcAppbmRleCA2NTAxYmZjLi4wMWQwZTkyIDEwMDY0NAotLS0gYS9X
ZWJLaXQvcXQvdGVzdHMvcXdlYnZpZXcvdHN0X3F3ZWJ2aWV3LmNwcAorKysgYi9XZWJLaXQvcXQv
dGVzdHMvcXdlYnZpZXcvdHN0X3F3ZWJ2aWV3LmNwcApAQCAtMjUsNiArMjUsNyBAQAogI2luY2x1
ZGUgPHF3ZWJwYWdlLmg+CiAjaW5jbHVkZSA8cW5ldHdvcmtyZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8
cWRpcml0ZXJhdG9yLmg+CisjaW5jbHVkZSA8cXdlYmtpdHZlcnNpb24uaD4KIAogY2xhc3MgdHN0
X1FXZWJWaWV3IDogcHVibGljIFFPYmplY3QKIHsKQEAgLTQwLDYgKzQxLDcgQEAgcHJpdmF0ZSBz
bG90czoKICAgICB2b2lkIHJlbmRlckhpbnRzKCk7CiAgICAgdm9pZCBndWVzc1VybEZyb21TdHJp
bmdfZGF0YSgpOwogICAgIHZvaWQgZ3Vlc3NVcmxGcm9tU3RyaW5nKCk7CisgICAgdm9pZCBnZXRX
ZWJLaXRWZXJzaW9uKCk7CiB9OwogCiAvLyBUaGlzIHdpbGwgYmUgY2FsbGVkIGJlZm9yZSB0aGUg
Zmlyc3QgdGVzdCBmdW5jdGlvbiBpcyBleGVjdXRlZC4KQEAgLTE2MCw2ICsxNjIsMTEgQEAgdm9p
ZCB0c3RfUVdlYlZpZXc6Omd1ZXNzVXJsRnJvbVN0cmluZygpCiAgICAgUUNPTVBBUkUodXJsLCBn
dWVzc1VybEZyb21TdHJpbmcpOwogfQogCit2b2lkIHRzdF9RV2ViVmlldzo6Z2V0V2ViS2l0VmVy
c2lvbigpCit7CisgICAgUVZFUklGWShxV2ViS2l0VmVyc2lvbigpLnRvRG91YmxlKCkgPiAwKTsK
K30KKwogUVRFU1RfTUFJTih0c3RfUVdlYlZpZXcpCiAjaW5jbHVkZSAidHN0X3F3ZWJ2aWV3Lm1v
YyIKIAotLSAKMS42LjAuNAoK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>33651</attachid>
            <date>2009-07-28 09:41:10 -0700</date>
            <delta_ts>2009-07-28 10:12:28 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>bug_27158.patch</filename>
            <type>text/plain</type>
            <size>7652</size>
            <attacher name="Robert Agoston">Agoston.Robert</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0NjQ5MCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTUgQEAKKzIwMDktMDctMjggIFJvYmVydCBBZ29zdG9uICA8QWdvc3Rvbi5Sb2Jl
cnRAc3R1ZC51LXN6ZWdlZC5odT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBGaXhlZCByZWZlcmVuY2VzIHRvIHNjcmlwdCBnZW5lcmF0ZS13ZWJraXR2
ZXJzaW9uLnBsLCBhbmQKKyAgICAgICAgcmVtb3ZlZCBkdXBsaWNhdGVkIGdlbmVyYXRlLXdlYmtp
dHZlcnNpb24ucGwKKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjcxNTgKKworICAgICAgICAqIFdlYkNvcmUucHJvOgorICAgICAgICAqIHBsYXRmb3Jt
L2dlbmVyYXRlLXdlYmtpdHZlcnNpb24ucGw6IFJlbW92ZWQuCisKIDIwMDktMDctMjggIFBhdmVs
IEZlbGRtYW4gIDxwZmVsZG1hbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
RG1pdHJ5IEdsYXprb3YuCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUucHJvCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvV2ViQ29yZS5wcm8JKHJldmlzaW9uIDQ2NDg2KQorKysgV2ViQ29yZS9XZWJDb3Jl
LnBybwkod29ya2luZyBjb3B5KQpAQCAtMzE2NCwxMCArMzE2NCwxMCBAQCBhZGRFeHRyYUNvbXBp
bGVyV2l0aEhlYWRlcih4cGF0aGJpc29uKQogIyBUaGUgYXBwcm9wcmlhdGUgQXBwbGUtbWFpbnRh
aW5lZCBWZXJzaW9uLnhjY29uZmlnIGZpbGUgZm9yIFdlYktpdCB2ZXJzaW9uIGluZm9ybWF0aW9u
IGlzIGluIFdlYktpdC9tYWMvQ29uZmlndXJhdGlvbnMvLgogd2Via2l0dmVyc2lvbi5vdXRwdXQg
PSAkJHtHRU5FUkFURURfU09VUkNFU19ESVJ9JCR7UU1BS0VfRElSX1NFUH1XZWJLaXRWZXJzaW9u
LmgKIHdlYmtpdHZlcnNpb24uY29tbWFuZHMgPSBwZXJsICQkUFdELy4uL1dlYktpdC9zY3JpcHRz
L2dlbmVyYXRlLXdlYmtpdHZlcnNpb24ucGwgLS1jb25maWcgJCRQV0QvLi4vV2ViS2l0L21hYy9D
b25maWd1cmF0aW9ucy9WZXJzaW9uLnhjY29uZmlnIC0tb3V0cHV0RGlyICQke0dFTkVSQVRFRF9T
T1VSQ0VTX0RJUn0kJHtRTUFLRV9ESVJfU0VQfQotV0VCS0lUVkVSU0lPTl9TQ1JJUFQgPSAkJFBX
RC9wbGF0Zm9ybS9nZW5lcmF0ZS13ZWJraXR2ZXJzaW9uLnBsCitXRUJLSVRWRVJTSU9OX1NDUklQ
VCA9ICQkUFdELy4uL1dlYktpdC9zY3JpcHRzL2dlbmVyYXRlLXdlYmtpdHZlcnNpb24ucGwKIHdl
YmtpdHZlcnNpb24uaW5wdXQgPSBXRUJLSVRWRVJTSU9OX1NDUklQVAogd2Via2l0dmVyc2lvbi5D
T05GSUcgPSB0YXJnZXRfcHJlZGVwcwotd2Via2l0dmVyc2lvbi5kZXBlbmQgPSAkJFBXRC9wbGF0
Zm9ybS9nZW5lcmF0ZS13ZWJraXR2ZXJzaW9uLnBsCit3ZWJraXR2ZXJzaW9uLmRlcGVuZCA9ICQk
UFdELy4uL1dlYktpdC9zY3JpcHRzL2dlbmVyYXRlLXdlYmtpdHZlcnNpb24ucGwKIHdlYmtpdHZl
cnNpb24udmFyaWFibGVfb3V0ID0gR0VORVJBVEVEX1NPVVJDRVMKIHdlYmtpdHZlcnNpb24uY2xl
YW4gPSAke1FNQUtFX1ZBUl9HRU5FUkFURURfU09VUkNFU19ESVJfU0xBU0h9V2ViS2l0VmVyc2lv
bi5oCiBhZGRFeHRyYUNvbXBpbGVyKHdlYmtpdHZlcnNpb24pCkluZGV4OiBXZWJDb3JlL3BsYXRm
b3JtL2dlbmVyYXRlLXdlYmtpdHZlcnNpb24ucGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0
Zm9ybS9nZW5lcmF0ZS13ZWJraXR2ZXJzaW9uLnBsCShyZXZpc2lvbiA0NjQ4NikKKysrIFdlYkNv
cmUvcGxhdGZvcm0vZ2VuZXJhdGUtd2Via2l0dmVyc2lvbi5wbAkod29ya2luZyBjb3B5KQpAQCAt
MSwxMzYgKzAsMCBAQAotIyEvdXNyL2Jpbi9wZXJsCi0KLSMgQmFzZWQgb24gbWFrZV9uYW1lcy5w
bAotIwotIyBDb3B5cmlnaHQgKEMpIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDkgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotIyBDb3B5cmlnaHQgKEMpIDIwMDksIEp1bGllbiBDaGFmZnJh
aXggPGpjaGFmZnJhaXhAd2Via2l0Lm9yZz4KLSMgQ29weXJpZ2h0IChDKSAyMDA5IFRvcmNoIE1v
YmlsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIChodHRwOi8vd3d3LnRvcmNobW9iaWxlLmNv
bS8pCi0jIENvcHlyaWdodCAoQykgMjAwOSBSb2JlcnQgSG9nYW4gPHJvYmVydEByb2JlcnRob2dh
bi5uZXQ+Ci0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSMgYXJlIG1ldDoKLSMKLSMgMS4g
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0jICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCi0jIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotIyAg
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KLSMgMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIs
IEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKLSMgICAgIGl0cyBjb250cmlidXRvcnMg
bWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKLSMgICAg
IGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlz
c2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENP
TlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKLSMgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotIyBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFCi0jIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSMgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOwotIyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKLSMgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
LSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GCi0jIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLSMgVGhpcyBzY3JpcHQgcmVhZHMgVmVy
c2lvbi54Y2NvbmZpZyBhbmQgcmV0dXJucyBlaXRoZXIgb3IgYm90aCBvZiB0aGUgbWFqb3IgYW5k
IG1pbm9yCi0jIFdlYktpdCB2ZXJzaW9uIG51bWJlcnMuIEl0IGlzIGN1cnJlbnRseSB1c2VkIGJ5
IFdlYktpdC5wcmkuCi0KLXVzZSBzdHJpY3Q7Ci0KLXVzZSBDb25maWc7Ci11c2UgR2V0b3B0OjpM
b25nOwotdXNlIEZpbGU6OlBhdGg7Ci11c2UgU3dpdGNoOwotCi1teSAkdXNhZ2UgPSAiZ2VuZXJh
dGUtd2Via2l0dmVyc2lvbiAtLWNvbmZpZyBXZWJLaXQvbWFjL0NvbmZpZ3VyYXRpb25zL1ZlcnNp
b24ueGNjb25maWcgLS1vdXRwdXREaXIgPG91dHB1dGRpcj4iOwotCi1teSAkbWFqb3JfdmVyc2lv
biA9ICIiOwotbXkgJG1pbm9yX3ZlcnNpb24gPSAiIjsKLSMgVGhlIGFwcHJvcHJpYXRlIEFwcGxl
LW1haW50YWluZWQgVmVyc2lvbi54Y2NvbmZpZyBmaWxlIGZvciBXZWJLaXQgdmVyc2lvbiBpbmZv
cm1hdGlvbiBpcyBpbiBXZWJLaXQvbWFjL0NvbmZpZ3VyYXRpb25zLy4KLW15ICRjb25maWdGaWxl
ID0gIi4vV2ViS2l0L21hYy9Db25maWd1cmF0aW9ucy9WZXJzaW9uLnhjY29uZmlnIjsKLW15ICRv
dXRwdXREaXIgPSAiIjsKLQotR2V0T3B0aW9ucygnY29uZmlnPXMnID0+IFwkY29uZmlnRmlsZSwK
LSAgICAnb3V0cHV0RGlyPXMnID0+IFwkb3V0cHV0RGlyKTsKLQotZGllICJZb3UgbXVzdCBzcGVj
aWZ5IGEgLS1jb25maWcgPGZpbGU+ICIgdW5sZXNzIChsZW5ndGgoJGNvbmZpZ0ZpbGUpKTsKLWRp
ZSAiWW91IG11c3Qgc3BlY2lmeSBhIC0tb3V0cHV0RGlyIDxvdXRwdXRkaXI+ICIgdW5sZXNzIChs
ZW5ndGgoJG91dHB1dERpcikpOwotCi1kaWUgIi4vV2ViS2l0L21hYy9Db25maWd1cmF0aW9ucy9W
ZXJzaW9uLnhjY29uZmlnIGRvZXMgbm90IGV4aXN0OiB1c2UgLS1jb25maWcgPGZpbGU+IHRvIHNw
ZWNpZnkgaXRzIGNvcnJlY3QgbG9jYXRpb24uIiB1bmxlc3MgKC1lICRjb25maWdGaWxlKTsKLWRp
ZSAiJG91dHB1dERpci8gZG9lcyBub3QgZXhpc3Q6IHVzZSAtLW91dHB1dERpciA8ZGlyZWN0b3J5
PiB0byBzcGVjaWZ5IHRoZSBsb2NhdGlvbiBvZiBhbiBvdXRwdXQgZGlyZWN0b3J5IHRoYXQgZXhp
c3RzIiB1bmxlc3MgKC1lICIkb3V0cHV0RGlyIik7Ci0KLXVubGVzcyAob3BlbiBJTlBVVCwgIjwi
LCAkY29uZmlnRmlsZSkgeyBwcmludCBTVERFUlIgIkZpbGUgZG9lcyBub3QgZXhpc3Q6ICRjb25m
aWdGaWxlXG4iO30KLXdoaWxlIChteSAkbGluZSA9IDxJTlBVVD4pIHsKLSAgICBjaG9tcCAkbGlu
ZTsKLSAgICBpZiAoJGxpbmUgPX4gL15NQUpPUl9WRVJTSU9OXHMrPVxzK1xkKzsvKSB7Ci0gICAg
ICAkbGluZSA9fiBzL14oTUFKT1JfVkVSU0lPTilccysoPSlccysoXGQrKTsvJDMvOwotICAgICAg
JG1ham9yX3ZlcnNpb24gPSAkbGluZTsKLSAgICB9Ci0gICAgaWYgKCRsaW5lID1+IC9eTUlOT1Jf
VkVSU0lPTlxzKz1ccytcZCs7LykgewotICAgICAgJGxpbmUgPX4gcy9eKE1JTk9SX1ZFUlNJT04p
XHMrKD0pXHMrKFxkKyk7LyQzLzsKLSAgICAgICRtaW5vcl92ZXJzaW9uID0gJGxpbmU7Ci0gICAg
fQotfQotCi0kbWFqb3JfdmVyc2lvbiA9ICI1MzEiIHVubGVzcyAobGVuZ3RoKCRtYWpvcl92ZXJz
aW9uKSk7Ci0kbWlub3JfdmVyc2lvbiA9ICIzIiB1bmxlc3MgKGxlbmd0aCgkbWlub3JfdmVyc2lv
bikpOwotCi1teSAkd2ViS2l0VmVyc2lvblBhdGggPSAiJG91dHB1dERpci9XZWJLaXRWZXJzaW9u
LmgiOwotCi1wcmludFdlYktpdFZlcnNpb25IZWFkZXJGaWxlKCIkd2ViS2l0VmVyc2lvblBhdGgi
KTsKLQotc3ViIHByaW50TGljZW5zZUhlYWRlcgotewotICAgIG15ICRGID0gc2hpZnQ7Ci0gICAg
cHJpbnQgRiAiLyoKLSAqIFRISVMgRklMRSBJUyBBVVRPTUFUSUNBTExZIEdFTkVSQVRFRCwgRE8g
Tk9UIEVESVQuCi0gKgotICoKLSAqIENvcHlyaWdodCAoQykgMjAwOSBBcHBsZSBDb21wdXRlciwg
SW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0g
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAot
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotCi0iOwotfQotCi1zdWIgcHJpbnRX
ZWJLaXRWZXJzaW9uSGVhZGVyRmlsZQotewotICAgIG15ICRoZWFkZXJQYXRoID0gc2hpZnQ7Ci0g
ICAgbXkgJEY7Ci0gICAgb3BlbiBGLCAiPiRoZWFkZXJQYXRoIjsKLQotICAgIHByaW50TGljZW5z
ZUhlYWRlcigkRik7Ci0KLSAgICBwcmludCBGICIjaWZuZGVmIFdlYktpdFZlcnNpb25faFxuIjsK
LSAgICBwcmludCBGICIjZGVmaW5lIFdlYktpdFZlcnNpb25faFxuXG4iOwotCi0gICAgcHJpbnQg
RiAiI2RlZmluZSBXRUJLSVRfTUFKT1JfVkVSU0lPTiAkbWFqb3JfdmVyc2lvblxuIjsKLSAgICBw
cmludCBGICIjZGVmaW5lIFdFQktJVF9NSU5PUl9WRVJTSU9OICRtaW5vcl92ZXJzaW9uXG5cbiI7
Ci0KLSAgICBwcmludCBGICIjZW5kaWYgLy9XZWJLaXRWZXJzaW9uX2hcbiI7Ci0KLSAgICBjbG9z
ZSBGOwotfQotCi0KLQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>