<?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>34539</bug_id>
          
          <creation_ts>2010-02-03 12:34:04 -0800</creation_ts>
          <short_desc>Implement NPN_GetValueForURL and NPN_SetValueForURL and provide a stub for NPN_GetAuthenticationInfo</short_desc>
          <delta_ts>2011-06-08 08:25:34 -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>Plug-ins</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>47022</dependson>
          <blocked>33044</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Gustavo Noronha (kov)">gustavo</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>adawit</cc>
    
    <cc>ademar</cc>
    
    <cc>andersca</cc>
    
    <cc>commit-queue</cc>
    
    <cc>gustavo</cc>
    
    <cc>hansmbakker</cc>
    
    <cc>hausmann</cc>
    
    <cc>ironstorm</cc>
    
    <cc>kenneth</cc>
    
    <cc>kling</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>187472</commentid>
    <comment_count>0</comment_count>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2010-02-03 12:34:04 -0800</bug_when>
    <thetext>I&apos;m not really sure for what ports the version is correct. This was pointed out to me by Christian Perch, while discussing why the java plugin doesn&apos;t work for us:

 &lt;chpe&gt; PluginPackage.cpp:    m_browserFuncs.version = NP_VERSION_MINOR;
 this line looks wrong, btw.
 that define is the latest version, not the one that you actually implement, which is 19 I think (at most!)
 if any plugin actually depends on something later, it might crash :)

&lt;kov&gt; I sense platform differences weirdness
 chpe, I believe that is defined inside webkit
 chpe, http://trac.webkit.org/browser/trunk/WebCore/bridge/npapi.h

&lt;chpe&gt; yes, in npapi.h, value &quot;24&quot;
&lt;chpe&gt; but the actually exported functions are only up to pluginthreadasynccall, aka v19

&lt;kov&gt; right

I&apos;m attaching a patch that conditionalizes the version definition, in the hopes that we can figure out what should be done here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>187474</commentid>
    <comment_count>1</comment_count>
      <attachid>48060</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2010-02-03 12:34:59 -0800</bug_when>
    <thetext>Created attachment 48060
Set the record straight regarding NPAPI compatibility, hopefully</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>187527</commentid>
    <comment_count>2</comment_count>
      <attachid>48060</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-02-03 16:11:50 -0800</bug_when>
    <thetext>Comment on attachment 48060
Set the record straight regarding NPAPI compatibility, hopefully

We need a test case, or at least a COMPILE_ASSERT in DumpRenderTree or something.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>191269</commentid>
    <comment_count>3</comment_count>
      <attachid>48060</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-02-17 15:49:36 -0800</bug_when>
    <thetext>Comment on attachment 48060
Set the record straight regarding NPAPI compatibility, hopefully

This was just changed in another way by another patch approved today.  At least I think it was.  NPVersion().  I remember approving such a patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>202161</commentid>
    <comment_count>4</comment_count>
    <who name="Garth Dahlstrom">ironstorm</who>
    <bug_when>2010-03-19 20:47:38 -0700</bug_when>
    <thetext>The incorrect reporting of NPAPI compatibility basically has been blocking #33044 (applet support patch for Qt port) moving forward from Qt 4.5.3&apos;s WebKit (branched from master at sha1: ed4a2c954ba6dd6f0ec4cc0c80f2ac14c8938ba7) for the better part of a couple of months of part-time hacking.

The Java plugin on Windows invokes the unimplemented methods and mysteriously seg faults.   I reverted the changes one by one till I hit changing NP_VERSION_MINOR from 23 to 20 in npapi.h, and then things stopped seg faulting.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>202389</commentid>
    <comment_count>5</comment_count>
      <attachid>51264</attachid>
    <who name="Garth Dahlstrom">ironstorm</who>
    <bug_when>2010-03-21 20:23:52 -0700</bug_when>
    <thetext>Created attachment 51264
Implements NPN_GetValueForURL and NPN_SetValueForURL, stub for NPN_GetAuthenticationInfo

I&apos;m attaching a work in progress patch to help implement the functions for NPAPI to bring it up to v1.9 support...   It is a patch against the QtWebKit Week11 source (https://trac.webkit.org/wiki/QtWebKitJournal#WeeklyBuildWeek11) 

It builds on Windows and OSX, runs on Windows using the Java Applet patch without crashing.

I can see NPN_GetValueForURL being exercised for both Proxy and Cookies when hitting http://www.java.com/en/download/help/testvm.xml on Windows.

It could use some work in implementing a Qt agnostic means of retrieving Proxy values from the Network/Application layer.   Please feel free to take a stab at improve it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>202452</commentid>
    <comment_count>6</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-03-22 05:47:02 -0700</bug_when>
    <thetext>Should this be up for review? I think e don&apos;t want to commit this with debugging using qDebug, nor with out-commented code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>204406</commentid>
    <comment_count>7</comment_count>
      <attachid>51714</attachid>
    <who name="Garth Dahlstrom">ironstorm</who>
    <bug_when>2010-03-25 21:43:27 -0700</bug_when>
    <thetext>Created attachment 51714
Implements NPN_GetValueForURL and NPN_SetValueForURL, stub for NPN_GetAuthenticationInfo -- Fixes proxy string logic problem

I&apos;ve updated the patch to fix the proxy support which had a logic error.

It looks like some corruption is happening in the get value method for cookies.    This is not seen in the debug statements of either implementation from the Qt app (this patch provides to functionally identical implementations in Qt and pure WebKit) but is observed as occasional extra junk being appended to the end of the Java cookies in the debug console, sometimes it indicates a cookie value is returned when there is no value supposed to be returned.   

Hosting test browser app:
[2960] npapi.cpp - NPN_GetValueForURL::  Proxy url: http://www.javatester.org:80/ 
[2960] npapi.cpp - NPN_GetValueForURL::Proxy fetching Proxy from Qt 
[2960] npapi.cpp - NPN_GetValueForURL::Proxy  DIRECT 
[2960] npapi.cpp - NPN_GetValueForURL::  Cookie url: http://www.javatester.org/JavaVersionDisplayApplet.class 
[2960] npapi.cpp - NPN_GetValueForURL::Cookies [  ] Length: 0 
[2960] len is set before:  0x28d20c 
[2960] len is set after:  0x28d20c 
[2960] len is:  0 

Java Console:
Java Plug-in 1.6.0_17
Using JRE version 1.6.0_17-b04 Java HotSpot(TM) Client VM
...
security: property package.definition new value com.sun.javaws,com.sun.deploy,com.sun.jnlp,org.mozilla.jss
basic: Added progress listener: sun.plugin.util.GrayBoxPainter$GrayBoxProgressListener@b166b5
network: Cache entry found [url: http://www.javatester.org/JavaVersionDisplayApplet.class, version: null]
network: Connecting http://www.javatester.org/JavaVersionDisplayApplet.class with proxy=DIRECT
network: Connecting http://www.javatester.org:80/ with proxy=DIRECT
network: Connecting http://www.javatester.org/JavaVersionDisplayApplet.class with cookie &quot;°REC&quot;   &lt;--- This is junk since there is no value returned from the host Qt app as far as I can tell.
...

I suspect the problem is something to do with the statements in the if block at line 36 of the attached patch, however I&apos;m unable to figure out what&apos;s happening (I&apos;ve tried to implement it 2 ways, results are the same)...   

I&apos;m not very good at low level C/C++, which is hence I use Qt for native compiled apps...  Maybe I&apos;m doing something obviously wrong (i.e. does the length pointer thing look okay)?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>206808</commentid>
    <comment_count>8</comment_count>
      <attachid>52222</attachid>
    <who name="Garth Dahlstrom">ironstorm</who>
    <bug_when>2010-03-31 16:32:08 -0700</bug_when>
    <thetext>Created attachment 52222
Implements NPN_GetValueForURL and NPN_SetValueForURL, stub for NPN_GetAuthenticationInfo -- Fixes junk being added to end of NPN_GetValueForURL strings

This fix basically replaces memcpy w/ strcpy.  memcpy was causing junk to be appended to the end of the strings.

Next step is to clean this up to meet WebKit code submission guidelines. 

Someone could implement some kind of callback implementation for the NPN_GetAuthenticationInfo stub, but at the moment this function is not of particular interest to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223512</commentid>
    <comment_count>9</comment_count>
      <attachid>55604</attachid>
    <who name="Dawit A.">adawit</who>
    <bug_when>2010-05-10 14:26:27 -0700</bug_when>
    <thetext>Created attachment 55604
Implements NPN_GetValueForURL and NPN_SetValueForURL, stub for NPN_GetAuthenticationInfo [Updated]

Since there is no movement on this patch and Java applet support in QtWebKit depends on it, here is a cleaned up version of the original patch that removes all the swaps all the improper use of qDebug for LOG and makes minor code adjustment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223517</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-05-10 14:31:52 -0700</bug_when>
    <thetext>Attachment 55604 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;, &apos;--no-squash&apos;]&quot; exit_code: 1
WebCore/plugins/npapi.cpp:31:  Alphabetical sorting problem.  [build/include_order] [4]
WebCore/plugins/npapi.cpp:190:  NPN_GetValueForURL is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
WebCore/plugins/npapi.cpp:228:  A case label should not be indented, but line up with its switch statement.  [whitespace/indent] [4]
WebCore/plugins/npapi.cpp:243:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
WebCore/plugins/npapi.cpp:268:  NPN_SetValueForURL is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
WebCore/plugins/npapi.cpp:272:  A case label should not be indented, but line up with its switch statement.  [whitespace/indent] [4]
WebCore/plugins/npapi.cpp:297:  NPN_GetAuthenticationInfo is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
WebCore/plugins/npapi.cpp:302:  Could not find a newline character at the end of the file.  [whitespace/ending_newline] [5]
Total errors found: 8 in 3 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223518</commentid>
    <comment_count>11</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2010-05-10 14:34:36 -0700</bug_when>
    <thetext>Attachment 55604 did not build on qt:
Build output: http://webkit-commit-queue.appspot.com/results/2203113</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223564</commentid>
    <comment_count>12</comment_count>
      <attachid>55617</attachid>
    <who name="Dawit A.">adawit</who>
    <bug_when>2010-05-10 16:09:31 -0700</bug_when>
    <thetext>Created attachment 55617
Implements NPN_GetValueForURL and NPN_SetValueForURL, stub for NPN_GetAuthenticationInfo [Update II]

Though it compiles fine here for me, corrected #include statements and order to attempt and fix problems reported by the Qt compile bot...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223567</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-05-10 16:13:50 -0700</bug_when>
    <thetext>Attachment 55617 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;, &apos;--no-squash&apos;]&quot; exit_code: 1
WebCore/plugins/npapi.cpp:28:  Found other header before a header this file implements. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
WebCore/plugins/npapi.cpp:188:  NPN_GetValueForURL is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
WebCore/plugins/npapi.cpp:226:  A case label should not be indented, but line up with its switch statement.  [whitespace/indent] [4]
WebCore/plugins/npapi.cpp:241:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
WebCore/plugins/npapi.cpp:266:  NPN_SetValueForURL is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
WebCore/plugins/npapi.cpp:270:  A case label should not be indented, but line up with its switch statement.  [whitespace/indent] [4]
WebCore/plugins/npapi.cpp:295:  NPN_GetAuthenticationInfo is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
WebCore/plugins/npapi.cpp:300:  Could not find a newline character at the end of the file.  [whitespace/ending_newline] [5]
Total errors found: 8 in 3 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223568</commentid>
    <comment_count>14</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2010-05-10 16:17:43 -0700</bug_when>
    <thetext>Attachment 55617 did not build on qt:
Build output: http://webkit-commit-queue.appspot.com/results/2172117</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223606</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-05-10 17:08:08 -0700</bug_when>
    <thetext>Attachment 55617 did not build on gtk:
Build output: http://webkit-commit-queue.appspot.com/results/2227119</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223642</commentid>
    <comment_count>16</comment_count>
    <who name="Dawit A.">adawit</who>
    <bug_when>2010-05-10 18:20:44 -0700</bug_when>
    <thetext>No clue why the qt or gtk build bots fail! Those things the error claims are undefined are defined in npapi.h. At least in my checked out version ot qtwebkit. Is the version on the build machine different ? old ? Perhaps I am missing something...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223835</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-05-11 02:45:37 -0700</bug_when>
    <thetext>Attachment 55617 did not build on win:
Build output: http://webkit-commit-queue.appspot.com/results/2230156</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223885</commentid>
    <comment_count>18</comment_count>
      <attachid>55694</attachid>
    <who name="Dawit A.">adawit</who>
    <bug_when>2010-05-11 06:18:42 -0700</bug_when>
    <thetext>Created attachment 55694
Implements NPN_GetValueForURL and NPN_SetValueForURL, stub for NPN_GetAuthenticationInfo [Update III]

Maybe third time is the charm.... Copied the conditional defines that typedef unit32 and int32 from npapi.h.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223886</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-05-11 06:20:46 -0700</bug_when>
    <thetext>Attachment 55694 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;, &apos;--no-squash&apos;]&quot; exit_code: 1
WebCore/plugins/npapi.cpp:28:  Found other header before a header this file implements. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
WebCore/plugins/npapi.cpp:202:  NPN_GetValueForURL is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
WebCore/plugins/npapi.cpp:240:  A case label should not be indented, but line up with its switch statement.  [whitespace/indent] [4]
WebCore/plugins/npapi.cpp:255:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
WebCore/plugins/npapi.cpp:280:  NPN_SetValueForURL is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
WebCore/plugins/npapi.cpp:284:  A case label should not be indented, but line up with its switch statement.  [whitespace/indent] [4]
WebCore/plugins/npapi.cpp:309:  NPN_GetAuthenticationInfo is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Total errors found: 7 in 3 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223892</commentid>
    <comment_count>20</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2010-05-11 06:26:12 -0700</bug_when>
    <thetext>Attachment 55694 did not build on qt:
Build output: http://webkit-commit-queue.appspot.com/results/2178120</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223974</commentid>
    <comment_count>21</comment_count>
      <attachid>55694</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2010-05-11 09:53:40 -0700</bug_when>
    <thetext>Comment on attachment 55694
Implements NPN_GetValueForURL and NPN_SetValueForURL, stub for NPN_GetAuthenticationInfo [Update III]

&gt; +
&gt; +// FIXME: This is added to work around build failure by the qt/gtk build boats.
&gt; +// See comments # 11,14 &amp; 15 of https://bugs.webkit.org/show_bug.cgi?id=34539.
&gt; +#ifndef _INT32
&gt; +#define _INT32
&gt; +#ifdef __LP64__
&gt; +typedef int int32;
&gt; +typedef unsigned int uint32;
&gt; +#else /* __LP64__ */
&gt; +typedef long int32;
&gt; +typedef unsigned long uint32;
&gt; +#endif /* __LP64__ */
&gt; +#endif
&gt; +
&gt; +

This is wrong. You should use the new C99 types instead, int32_t and uint32_t.

Marking r- for this reason.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>224015</commentid>
    <comment_count>22</comment_count>
    <who name="Dawit A.">adawit</who>
    <bug_when>2010-05-11 10:54:46 -0700</bug_when>
    <thetext>(In reply to comment #21)
&gt; (From update of attachment 55694 [details])
&gt; &gt; +
&gt; &gt; +// FIXME: This is added to work around build failure by the qt/gtk build boats.
&gt; &gt; +// See comments # 11,14 &amp; 15 of https://bugs.webkit.org/show_bug.cgi?id=34539.
&gt; &gt; +#ifndef _INT32
&gt; &gt; +#define _INT32
&gt; &gt; +#ifdef __LP64__
&gt; &gt; +typedef int int32;
&gt; &gt; +typedef unsigned int uint32;
&gt; &gt; +#else /* __LP64__ */
&gt; &gt; +typedef long int32;
&gt; &gt; +typedef unsigned long uint32;
&gt; &gt; +#endif /* __LP64__ */
&gt; &gt; +#endif
&gt; &gt; +
&gt; &gt; +
&gt; 
&gt; This is wrong. You should use the new C99 types instead, int32_t and uint32_t.
&gt; 
&gt; Marking r- for this reason.

It is not by choice... See the function declaration for NPN{Get/Set}ValueForURL in WebCore/bridge/npapi.h. Actually the redefinition here is not necessary if the build bots (both gtk and qt) did not fail. However, if this definition is wrong here, then it is also wrong the header file I mentioned above...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>224022</commentid>
    <comment_count>23</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2010-05-11 11:09:03 -0700</bug_when>
    <thetext>(In reply to comment #22)
&gt; (In reply to comment #21)
&gt; &gt; (From update of attachment 55694 [details] [details])
&gt; &gt; &gt; +
&gt; &gt; &gt; +// FIXME: This is added to work around build failure by the qt/gtk build boats.
&gt; &gt; &gt; +// See comments # 11,14 &amp; 15 of https://bugs.webkit.org/show_bug.cgi?id=34539.
&gt; &gt; &gt; +#ifndef _INT32
&gt; &gt; &gt; +#define _INT32
&gt; &gt; &gt; +#ifdef __LP64__
&gt; &gt; &gt; +typedef int int32;
&gt; &gt; &gt; +typedef unsigned int uint32;
&gt; &gt; &gt; +#else /* __LP64__ */
&gt; &gt; &gt; +typedef long int32;
&gt; &gt; &gt; +typedef unsigned long uint32;
&gt; &gt; &gt; +#endif /* __LP64__ */
&gt; &gt; &gt; +#endif
&gt; &gt; &gt; +
&gt; &gt; &gt; +
&gt; &gt; 
&gt; &gt; This is wrong. You should use the new C99 types instead, int32_t and uint32_t.
&gt; &gt; 
&gt; &gt; Marking r- for this reason.
&gt; 
&gt; It is not by choice... See the function declaration for NPN{Get/Set}ValueForURL in WebCore/bridge/npapi.h. Actually the redefinition here is not necessary if the build bots (both gtk and qt) did not fail. However, if this definition is wrong here, then it is also wrong the header file I mentioned above...

The function declaration here? 

http://trac.webkit.org/browser/trunk/WebCore/bridge/npapi.h#L768

This uses uint32_t.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>224041</commentid>
    <comment_count>24</comment_count>
    <who name="Dawit A.">adawit</who>
    <bug_when>2010-05-11 11:34:43 -0700</bug_when>
    <thetext>(In reply to comment #23)
&gt; (In reply to comment #22)
&gt; &gt; (In reply to comment #21)
&gt; &gt; &gt; (From update of attachment 55694 [details] [details] [details])
&gt; &gt; &gt; &gt; +
&gt; &gt; &gt; &gt; +// FIXME: This is added to work around build failure by the qt/gtk build boats.
&gt; &gt; &gt; &gt; +// See comments # 11,14 &amp; 15 of https://bugs.webkit.org/show_bug.cgi?id=34539.
&gt; &gt; &gt; &gt; +#ifndef _INT32
&gt; &gt; &gt; &gt; +#define _INT32
&gt; &gt; &gt; &gt; +#ifdef __LP64__
&gt; &gt; &gt; &gt; +typedef int int32;
&gt; &gt; &gt; &gt; +typedef unsigned int uint32;
&gt; &gt; &gt; &gt; +#else /* __LP64__ */
&gt; &gt; &gt; &gt; +typedef long int32;
&gt; &gt; &gt; &gt; +typedef unsigned long uint32;
&gt; &gt; &gt; &gt; +#endif /* __LP64__ */
&gt; &gt; &gt; &gt; +#endif
&gt; &gt; &gt; &gt; +
&gt; &gt; &gt; &gt; +
&gt; &gt; &gt; 
&gt; &gt; &gt; This is wrong. You should use the new C99 types instead, int32_t and uint32_t.
&gt; &gt; &gt; 
&gt; &gt; &gt; Marking r- for this reason.
&gt; &gt; 
&gt; &gt; It is not by choice... See the function declaration for NPN{Get/Set}ValueForURL in WebCore/bridge/npapi.h. Actually the redefinition here is not necessary if the build bots (both gtk and qt) did not fail. However, if this definition is wrong here, then it is also wrong the header file I mentioned above...
&gt; 
&gt; The function declaration here? 

Yup...

&gt; http://trac.webkit.org/browser/trunk/WebCore/bridge/npapi.h#L768
&gt; 
&gt; This uses uint32_t.

Hmmm... I see. The QtWebKit 2.0 branch contains an old npapi.h file then because the declarations I see there are completely different. Anyways, I will update the patch accordingly. Thanks...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>224054</commentid>
    <comment_count>25</comment_count>
      <attachid>55729</attachid>
    <who name="Dawit A.">adawit</who>
    <bug_when>2010-05-11 11:50:22 -0700</bug_when>
    <thetext>Created attachment 55729
Implement NPN_GetValueForURL and NPN_SetValueForURL and provide a stub for NPN_GetAuthenticationInfo [Update IV]...

Fixed patch per feedback comment #21</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>224057</commentid>
    <comment_count>26</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-05-11 11:51:58 -0700</bug_when>
    <thetext>Attachment 55729 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;, &apos;--no-squash&apos;]&quot; exit_code: 1
WebCore/plugins/npapi.cpp:28:  Found other header before a header this file implements. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
WebCore/plugins/npapi.cpp:188:  NPN_GetValueForURL is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
WebCore/plugins/npapi.cpp:226:  A case label should not be indented, but line up with its switch statement.  [whitespace/indent] [4]
WebCore/plugins/npapi.cpp:241:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
WebCore/plugins/npapi.cpp:266:  NPN_SetValueForURL is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
WebCore/plugins/npapi.cpp:270:  A case label should not be indented, but line up with its switch statement.  [whitespace/indent] [4]
WebCore/plugins/npapi.cpp:295:  NPN_GetAuthenticationInfo is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Total errors found: 7 in 3 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>228332</commentid>
    <comment_count>27</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-05-20 05:08:02 -0700</bug_when>
    <thetext>Attachment 55729 did not build on win:
Build output: http://webkit-commit-queue.appspot.com/results/2285327</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>229771</commentid>
    <comment_count>28</comment_count>
    <who name="Dawit A.">adawit</who>
    <bug_when>2010-05-24 09:12:56 -0700</bug_when>
    <thetext>Can someone with karma please change the title of this bug report to reflect what the currently attached patches do ? Perhaps 

&quot;Implement NPN_GetValueForURL and NPN_SetValueForURL and provide a stub for NPN_GetAuthenticationInfo&quot;

The original approach for addressing the issue is completely different from the latest patches...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>241061</commentid>
    <comment_count>29</comment_count>
      <attachid>55729</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-06-21 19:20:48 -0700</bug_when>
    <thetext>Comment on attachment 55729
Implement NPN_GetValueForURL and NPN_SetValueForURL and provide a stub for NPN_GetAuthenticationInfo [Update IV]...

This patch needs a lot of love.

WebCore/ChangeLog:6
 +          NPN_GetAuthenticationInfo,
This ChangeLog doesn&apos;t tell me any of the &quot;why&quot; behind this patch.  I can see the &quot;what&quot; by looking at the code, but I don&apos;t understand what problem we&apos;re solving with this patch.

WebCore/plugins/npapi.cpp:196
 +          KURL URL = KURL(ParsedURLString, url); // NSURL *URL = [self URLWithCString:url];
Why would |url| be a ParsedURLString?  That doesn&apos;t seem right.

WebCore/plugins/npapi.cpp:205
 +                  strcpy(*value, cookieStringUTF8.data());
please use strncpy !

WebCore/plugins/npapi.cpp:220
 +  #if defined(BUILDING_QT__)
Surely this is the wrong preprocessor check.  Also, why do we have Qt-specific code in a non-Qt-specific file?  I think we need some better kind of abstraction here.

WebCore/plugins/npapi.cpp:252
 +          memcpy(*value, proxyUTF8.data(), proxyUTF8.length());
Why do you use memcpy here but strcpy above?  One of the two must be wrong.

WebCore/plugins/npapi.cpp:289
 +      }
You should have an explicit default case in to handle garbage from our caller.

WebCore/plugins/npapi.cpp:259
 +      }
You should have an explicit default case in to handle garbage from our caller.

WebCore/plugins/npapi.cpp:271
 +              KURL URL = KURL(ParsedURLString, url); // NSURL *URL = [self URLWithCString:url];
same ParsedURLString comment here.

WebCore/plugins/npapi.cpp:273
 +                  String cookieString = String::fromUTF8(value, len);
Are you sure this is supposed to be UTF8?

WebCore/plugins/npapi.cpp:276
 +                      Frame* frame = pluginViewForInstance(instance)-&gt;parentFrame();
parentFrame?  Could be, but looks scary.

WebCore/plugins/npapi.cpp:278
 +                          setCookies(frame-&gt;document(), URL, cookieString);
URL should be in lower case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>267538</commentid>
    <comment_count>30</comment_count>
      <attachid>65021</attachid>
    <who name="Dawit A.">adawit</who>
    <bug_when>2010-08-20 22:44:45 -0700</bug_when>
    <thetext>Created attachment 65021
Implement NPN_GetValueForURL and NPN_SetValueForURL and NPN_GetAuthenticationInfo [Update V]...

A cleaner implementation of the aforementioned NPN functions necessary for properly handling Java applets...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>267557</commentid>
    <comment_count>31</comment_count>
      <attachid>65021</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2010-08-21 04:32:56 -0700</bug_when>
    <thetext>Comment on attachment 65021
Implement NPN_GetValueForURL and NPN_SetValueForURL and NPN_GetAuthenticationInfo [Update V]...

&gt;WebCore/plugins/PluginView.cpp:1387
&gt; +      if (platformGetValueForURL(variable, url, value, len, &amp;result))
&gt; +          return result;

platformGetValueForURL() doesn&apos;t actually modify &apos;result&apos; so you&apos;re returning uninitialized data here.

&gt;WebCore/plugins/PluginView.cpp:1393
&gt; +          if (u.isValid()) {

If !isValid(), result should be set to an error code.

&gt;WebCore/plugins/PluginView.cpp:1398
&gt; +                  strncpy(*value, cookieStr.utf8().data(), cookieStrLen);

cookieStrLen should come from cookieStr.utf8().length() here.

&gt;WebCore/plugins/PluginView.cpp:1431
&gt; +          if (u.isValid()) {

If !isValid(), result should be set to an error code.

&gt;WebCore/plugins/qt/PluginViewQt.cpp:71
&gt; +  #include &lt;QString&gt;

Unnecessary include.

&gt;WebCore/plugins/qt/PluginViewQt.cpp:725
&gt; +      qDebug() &lt;&lt; &quot;PluginView::platformGetValueForURL:&quot; &lt;&lt; variable &lt;&lt; &quot;,&quot; &lt;&lt; url;

Please put this inside a preprocessor conditional of some sort.

&gt;WebCore/plugins/qt/PluginViewQt.cpp:758
&gt; +          strncpy(*value, proxyStr.toUtf8().constData(), proxyStrLen);

Though safe in this particular case, proxyStrLen should come from proxyStr.toUtf8().length()

&gt;WebCore/plugins/PluginView.cpp:1455
&gt; +      LOG(Plugins, &quot;PluginView::getAuthenticationInfo: protocol=%s, host=%d, port=%d&quot;, protocol, host, port);

&quot;host&quot; is const char*, so it should be %s, not %d.

Furthermore there are some coding style issues:
- Tabs should always be 4 spaces
- &quot;type *foo&quot; should be &quot;type* foo&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>267576</commentid>
    <comment_count>32</comment_count>
      <attachid>65028</attachid>
    <who name="Dawit A.">adawit</who>
    <bug_when>2010-08-21 09:30:11 -0700</bug_when>
    <thetext>Created attachment 65028
Implement NPN_GetValueForURL and NPN_SetValueForURL and NPN_GetAuthenticationInfo [Update VI]...

Corrected all of the issues pointed out in the review execpt for the &quot;type *foo&quot; should be &quot;type* foo&quot; because I cannot find where I did that and the code passes the check-webkit-style script as well. It is entirely possibe I might have missed it, but please point out where that is so it can get fixed...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>267582</commentid>
    <comment_count>33</comment_count>
    <who name="Dawit A.">adawit</who>
    <bug_when>2010-08-21 09:49:14 -0700</bug_when>
    <thetext>BTW, here is the link to the java applet test page:

http://www.java.com/en/download/help/testvm.xml</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>267611</commentid>
    <comment_count>34</comment_count>
      <attachid>65028</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2010-08-21 16:07:51 -0700</bug_when>
    <thetext>Comment on attachment 65028
Implement NPN_GetValueForURL and NPN_SetValueForURL and NPN_GetAuthenticationInfo [Update VI]...

&gt;WebCore/plugins/PluginView.cpp:1386
&gt; +      NPError result;
Should probably be initialized to NPERR_GENERIC_ERROR like in setValueForURL() below.

&gt;WebCore/plugins/PluginView.cpp:1393
&gt; +          if (u.isValid()) {
Missing an &quot;else&quot; that sets result to NPERR_INVALID_URL.

&gt;WebCore/plugins/PluginView.cpp:1397
&gt; +                  strncpy(*value, cookieStr.utf8().data(), cookieStr.length() + 1);
cookieStr.utf8() may be of a different length than cookieStr.length() + 1.
You should use the length() of cookieStr.utf8() instead of cookieStr itself.

&gt;WebCore/plugins/PluginView.cpp:1432
&gt; +          if (u.isValid()) {
Missing an &quot;else&quot; that sets result to NPERR_INVALID_URL.

&gt;WebCore/plugins/PluginView.cpp:1452
&gt; +  NPError PluginView::getAuthenticationInfo(const char* protocol, const char* host, int32_t port, const char* scheme, const char *realm, char** username, uint32_t* ulen, char** password, uint32_t* plen)
Coding style, &quot;const char *realm&quot; should be &quot;const char* realm&quot;. This error is repeated a number of times in the patch.

&gt;WebCore/plugins/qt/PluginViewQt.cpp:754
&gt; +          *value = static_cast&lt;char*&gt;(NPN_MemAlloc(proxyStr.length() + 1));
If NPN_MemAlloc() fails, we should return NPN_OUT_OF_MEMORY_ERROR.

&gt;WebCore/plugins/qt/PluginViewQt.cpp:755
&gt; +          strncpy(*value, proxyStr.toUtf8().constData(), proxyStr.length() + 1);
&gt; +          if (len)
&gt; +              *len = strlen(*value);
Again mixing the UTF8 data with the Unicode length.

This should be something like:

QByteArray utf8 = proxyStr.toUtf8();
memcpy(*value, utf8.constData(), utf8.length());
if (len)
    *len = utf8.length();

Furthermore, are we really supposed to return an error code when setting an empty cookie string?
Same question for when getting the cookie string returns &quot;&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>267638</commentid>
    <comment_count>35</comment_count>
      <attachid>65046</attachid>
    <who name="Dawit A.">adawit</who>
    <bug_when>2010-08-21 21:19:22 -0700</bug_when>
    <thetext>Created attachment 65046
Implement NPN_GetValueForURL and NPN_SetValueForURL and NPN_GetAuthenticationInfo [Update VII]...

Addressed all the issues mentioned in comment #34. Let us see if the 3rd time is the charm...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>267639</commentid>
    <comment_count>36</comment_count>
      <attachid>65046</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2010-08-21 21:35:30 -0700</bug_when>
    <thetext>Comment on attachment 65046
Implement NPN_GetValueForURL and NPN_SetValueForURL and NPN_GetAuthenticationInfo [Update VII]...

&gt;WebCore/plugins/PluginDebug.cpp:171
&gt; +      default: return &quot;Unkown variable&quot;;
Spelling mistake, should be &quot;Unknown variable&quot;.

&gt;WebCore/plugins/PluginView.cpp:1387
&gt; +      if (platformGetValueForURL(variable, url, value, len, &amp;result) || (result != NPERR_NO_ERROR))
The &quot; || (result != NPERR_NO_ERROR)&quot; is not needed since platformGetValueForURL() returns true after setting either result code.

&gt;WebCore/plugins/PluginView.cpp:1401
&gt; +                  } else {
Coding style, should be &quot;} else&quot;

&gt;WebCore/plugins/PluginView.cpp:1405
&gt; +          } else {
Ditto.

&gt;WebCore/plugins/PluginView.cpp:1416
&gt; +          LOG(Plugins, &quot;PluginView::getValueForURL(%s): Unknown variable type.&quot;, prettyNameForNPNURLVariable(variable).data());
This will log &quot;PluginView::getValueForURL(Unknown variable): Unknown variable type.&quot; which isn&apos;t very helpful.


&gt;WebCore/plugins/PluginView.cpp:1429
&gt; +      if (platformSetValueForURL(variable, url, value, len, &amp;result) || (result != NPERR_GENERIC_ERROR))
Same as above. platformSetValueForURL() should return true if it sets any result code IMO.

&gt;WebCore/plugins/PluginView.cpp:1440
&gt; +          } else {
Coding style, should be &quot;} else&quot;

&gt;WebCore/plugins/PluginView.cpp:1461
&gt; +      if (platformGetAuthenticationInfo(protocol, host, port, scheme, realm, username, ulen, password, plen, &amp;result) || (result != NPERR_GENERIC_ERROR))
Same comment as earlier about the superfluous &quot; || (result != NPERR_GENERIC_ERROR)&quot;

&gt;WebCore/plugins/qt/PluginViewQt.cpp:762
&gt; +          } else {
Coding style, should be &quot;} else&quot;

Overall though, it&apos;s starting to look pretty good. I&apos;ll let an authorized reviewer take it from here. :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>267657</commentid>
    <comment_count>37</comment_count>
    <who name="Dawit A.">adawit</who>
    <bug_when>2010-08-22 00:59:14 -0700</bug_when>
    <thetext>(In reply to comment #36)
&gt; (From update of attachment 65046 [details])
&gt; &gt;WebCore/plugins/PluginDebug.cpp:171
&gt; &gt; +      default: return &quot;Unkown variable&quot;;
&gt; Spelling mistake, should be &quot;Unknown variable&quot;.
&gt; 
&gt; &gt;WebCore/plugins/PluginView.cpp:1387
&gt; &gt; +      if (platformGetValueForURL(variable, url, value, len, &amp;result) || (result != NPERR_NO_ERROR))
&gt; The &quot; || (result != NPERR_NO_ERROR)&quot; is not needed since platformGetValueForURL() returns true after setting either result code.

For the record I did that because it did not feel right to return true while setting an error from platformGetValueForURL, but I realized
afterwards that the return value from these &quot;platform&quot; functions is to indicate whether or not the request got handled ; not to indicate
an error condition occurred. Anyhow, fixed...

&gt; &gt;WebCore/plugins/PluginView.cpp:1401
&gt; &gt; +                  } else {
&gt; Coding style, should be &quot;} else&quot;

No clue why that would be seen as good coding practise in the first place, but whatever. One can easily
shoot oneself in the foot in a deep nested if/else statement while following that practise. Still fixed.

&gt; &gt;WebCore/plugins/PluginView.cpp:1416
&gt; &gt; +          LOG(Plugins, &quot;PluginView::getValueForURL(%s): Unknown variable type.&quot;, prettyNameForNPNURLVariable(variable).data());
&gt; This will log &quot;PluginView::getValueForURL(Unknown variable): Unknown variable type.&quot; which isn&apos;t very helpful.

Yes, that is indeed useless. Fixed.

I will post the final patch... Java applet support should work fine in QtWebKit once this patch gets accepted...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>267658</commentid>
    <comment_count>38</comment_count>
      <attachid>65051</attachid>
    <who name="Dawit A.">adawit</who>
    <bug_when>2010-08-22 01:09:00 -0700</bug_when>
    <thetext>Created attachment 65051
Implement NPN_GetValueForURL and NPN_SetValueForURL and NPN_GetAuthenticationInfo [Final Update]...

Final update based on review in comment #36.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>271328</commentid>
    <comment_count>39</comment_count>
      <attachid>65051</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2010-08-30 00:22:01 -0700</bug_when>
    <thetext>Comment on attachment 65051
Implement NPN_GetValueForURL and NPN_SetValueForURL and NPN_GetAuthenticationInfo [Final Update]...

&gt; WebCore/ChangeLog:3
&gt; +        Reviewed by Andreas Kling 
Until the patch is landed this line should continue to say NOBODY (OOPS!).

&gt; :722
&gt; +bool PluginView::platformGetValueForURL(NPNURLVariable variable, const char* url, char** value, uint32_t* len, NPError* result)
Shouldn&apos;t this function use the QNetworkAccessManager&apos;s proxy settings instead of the application settings?

&gt; WebCore/plugins/symbian/PluginViewSymbian.cpp:341
&gt; +bool PluginView::platformGetValueForURL(NPNURLVariable variable, const char* url, char** value, uint32_t* len, NPError* result)
The current code duplication between the views sucks a bit, but in this &quot;Symbian&quot; implementation we should use the Qt bits and pieces. Qt is the system toolkit on Symbian.

I think overall this patch looks okay now, I agree with Andreas. However there is one thing missing: Test coverage for the new code. At least the cookie bits should be relatively easy to cover with the test netscape plugin.

I&apos;m going to say r- primarily because of missing test coverage.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>271340</commentid>
    <comment_count>40</comment_count>
    <who name="Dawit A.">adawit</who>
    <bug_when>2010-08-30 01:14:05 -0700</bug_when>
    <thetext>(In reply to comment #39)
&gt; (From update of attachment 65051 [details])
&gt; &gt; WebCore/ChangeLog:3
&gt; &gt; +        Reviewed by Andreas Kling 
&gt; Until the patch is landed this line should continue to say NOBODY (OOPS!).
&gt; 
&gt; &gt; :722
&gt; &gt; +bool PluginView::platformGetValueForURL(NPNURLVariable variable, const char* url, char** value, uint32_t* len, NPError* result)
&gt; Shouldn&apos;t this function use the QNetworkAccessManager&apos;s proxy settings instead of the application settings?
&gt; 
&gt; &gt; WebCore/plugins/symbian/PluginViewSymbian.cpp:341
&gt; &gt; +bool PluginView::platformGetValueForURL(NPNURLVariable variable, const char* url, char** value, uint32_t* len, NPError* result)
&gt; The current code duplication between the views sucks a bit, but in this &quot;Symbian&quot; implementation we should use the Qt bits and pieces. Qt is the system toolkit on Symbian.
&gt; 
&gt; I think overall this patch looks okay now, I agree with Andreas. However there is one thing missing: Test coverage for the new code. At least the cookie bits should be relatively easy to cover with the test netscape plugin.
&gt; 
&gt; I&apos;m going to say r- primarily because of missing test coverage.

(In reply to comment #39)
&gt; (From update of attachment 65051 [details])
&gt; &gt; WebCore/ChangeLog:3
&gt; &gt; +        Reviewed by Andreas Kling 
&gt; Until the patch is landed this line should continue to say NOBODY (OOPS!).
&gt; 
&gt; &gt; :722
&gt; &gt; +bool PluginView::platformGetValueForURL(NPNURLVariable variable, const char* url, char** value, uint32_t* len, NPError* result)
&gt; Shouldn&apos;t this function use the QNetworkAccessManager&apos;s proxy settings instead of the application settings?

Probably, but I am not entirely sure how I can access the QNetworkAccessManager&apos;s proxy from this implementation...

&gt; &gt; WebCore/plugins/symbian/PluginViewSymbian.cpp:341
&gt; &gt; +bool PluginView::platformGetValueForURL(NPNURLVariable variable, const char* url, char** value, uint32_t* len, NPError* result)
&gt; The current code duplication between the views sucks a bit, but in this 
&gt; &quot;Symbian&quot; implementation we should use the Qt bits and pieces. Qt is the system 
&gt; toolkit on Symbian.

Well no generic way to access proxy information means that this is the only viable approach at the moment.

&gt; I think overall this patch looks okay now, I agree with Andreas. However there is 
&gt; one thing missing: Test coverage for the new code. At least the cookie bits 
&gt; should be relatively easy to cover with the test netscape plugin.
&gt;
&gt; I&apos;m going to say r- primarily because of missing test coverage.

Where does the test coverage go ? LayoutTests/plugin ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>273395</commentid>
    <comment_count>41</comment_count>
      <attachid>66372</attachid>
    <who name="Dawit A.">adawit</who>
    <bug_when>2010-09-02 08:21:02 -0700</bug_when>
    <thetext>Created attachment 66372
Implement NPN_GetValueForURL and NPN_SetValueForURL and NPN_GetAuthenticationInfo [Update IX]...

* Corrected the Reviewed By entry in the ChangeLog file.
* Use QNetworkAccessManager&apos;s proxy instead the application&apos;s.
* Copied the platformGetValueForURL implementation from qt port to symbian port.

I cannot figure out where and how the requested test coverage for the new code is supposed to be implemented though...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>273401</commentid>
    <comment_count>42</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2010-09-02 08:35:27 -0700</bug_when>
    <thetext>Attachment 66372 did not build on qt:
Build output: http://queues.webkit.org/results/3909055</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>273404</commentid>
    <comment_count>43</comment_count>
      <attachid>66374</attachid>
    <who name="Dawit A.">adawit</who>
    <bug_when>2010-09-02 08:45:32 -0700</bug_when>
    <thetext>Created attachment 66374
Implement NPN_GetValueForURL and NPN_SetValueForURL and NPN_GetAuthenticationInfo [Update X]...

*no comment*</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>273857</commentid>
    <comment_count>44</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2010-09-03 03:51:26 -0700</bug_when>
    <thetext>(In reply to comment #40)
&gt; &gt; I&apos;m going to say r- primarily because of missing test coverage.
&gt; 
&gt; Where does the test coverage go ? LayoutTests/plugin ?

Yep. See also WebKitTools/DumpRenderTree/TestNetscapePlugin for the test netscape plugin :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277114</commentid>
    <comment_count>45</comment_count>
      <attachid>66374</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2010-09-10 04:34:05 -0700</bug_when>
    <thetext>Comment on attachment 66374
Implement NPN_GetValueForURL and NPN_SetValueForURL and NPN_GetAuthenticationInfo [Update X]...

This page is rather interesting: https://developer.mozilla.org/en/NPN_GetValueForURL

About the &quot;value&quot; argument:
&quot;Out parameter. The browser passes back the requested information. If the function succeeds, the result buffer will be allocated with NPN_MemAlloc; the plugin is responsible for freeing the buffer. Note: the value may have internal NULL bytes and may not be NULL-terminated.&quot;

I think we should be nice and null-terminate the returned value, it won&apos;t hurt and will shield against broken plugins.

&gt; +                *value = static_cast&lt;char*&gt;(NPN_MemAlloc(cookieStr.length()));

Allocate cookieStr.length() + 1 bytes.

&gt; +                    strncpy(*value, cookieStr.data(), cookieStr.length());

Use memcpy() instead of strncpy(). (And cookieStr.length() + 1.)

The above two comments apply to all cases where you&apos;re NPN_MemAlloc()ing a char buffer and copying something to it.

&gt; +        LOG(Plugins, &quot;PluginView::getValueForURL(%s): Need to implement PluginView::platformGetValueForURL!&quot;, prettyNameForNPNURLVariable(variable).data());
&gt; ...
&gt; +        LOG(Plugins, &quot;PluginView::getValueForURL: %s&quot;, prettyNameForNPNURLVariable(variable).data());

Nit: inconsistent formatting, second case should be something like:
LOG(Plugins, &quot;PluginView::getValueForURL(%s): Unhandled variable&quot;, prettyNameForNPNURLVariable(variable).data());

r- because of lack of test, that&apos;s the important missing piece.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277262</commentid>
    <comment_count>46</comment_count>
    <who name="Dawit A.">adawit</who>
    <bug_when>2010-09-10 09:47:42 -0700</bug_when>
    <thetext>(In reply to comment #45)
&gt; (From update of attachment 66374 [details])
&gt; This page is rather interesting: https://developer.mozilla.org/en/NPN_GetValueForURL
&gt; 
&gt; About the &quot;value&quot; argument:
&gt; &quot;Out parameter. The browser passes back the requested information. If the function succeeds, the result buffer will be allocated with NPN_MemAlloc; the plugin is responsible for freeing the buffer. Note: the value may have internal NULL bytes and may not be NULL-terminated.&quot;
&gt; 
&gt; I think we should be nice and null-terminate the returned value, it won&apos;t hurt and will shield against broken plugins.
&gt; 
&gt; &gt; +                *value = static_cast&lt;char*&gt;(NPN_MemAlloc(cookieStr.length()));
&gt; 
&gt; Allocate cookieStr.length() + 1 bytes.
&gt; 
&gt; &gt; +                    strncpy(*value, cookieStr.data(), cookieStr.length());
&gt; 
&gt; Use memcpy() instead of strncpy(). (And cookieStr.length() + 1.)
&gt; 
&gt; The above two comments apply to all cases where you&apos;re NPN_MemAlloc()ing a char buffer and copying something to it.

I have already changed this locally and is waiting to be committed once I figure out on how to add a test coverage for it.

&gt; &gt; +        LOG(Plugins, &quot;PluginView::getValueForURL(%s): Need to implement PluginView::platformGetValueForURL!&quot;, prettyNameForNPNURLVariable(variable).data());
&gt; &gt; ...
&gt; &gt; +        LOG(Plugins, &quot;PluginView::getValueForURL: %s&quot;, prettyNameForNPNURLVariable(variable).data());
&gt; 
&gt; Nit: inconsistent formatting, second case should be something like:
&gt; LOG(Plugins, &quot;PluginView::getValueForURL(%s): Unhandled variable&quot;, prettyNameForNPNURLVariable(variable).data());

This was done because of your own feedback in comment #36. If it&apos;s changed to what you are suggesting here, it would read:

&quot;PluginView::getValueForURL(Unknown variable): Unhandled variable&quot;

which is not much different than it was before comment #36. Instead it should correctly, as pointed out by yourself in comment #36, read:

&quot;PluginView::getValueForURL: Unknown variable&quot;

&gt; r- because of lack of test, that&apos;s the important missing piece.

Still trying to figure that out... No clue when that will happen ; so this patch will have to sit and wait until I figure that out or someone else with better understanding of how the test coverages work provides one for it...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277264</commentid>
    <comment_count>47</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2010-09-10 09:51:12 -0700</bug_when>
    <thetext>(In reply to comment #46)
&gt; This was done because of your own feedback in comment #36. If it&apos;s changed to what you are suggesting here, it would read:

Oops! Sorry about the schizophrenia. I again agree with my past self. ;-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>282843</commentid>
    <comment_count>48</comment_count>
      <attachid>68348</attachid>
    <who name="Dawit A.">adawit</who>
    <bug_when>2010-09-22 01:55:38 -0700</bug_when>
    <thetext>Created attachment 68348
Implement NPN_GetValueForURL and NPN_SetValueForURL and NPN_GetAuthenticationInfo [Final #2]...

With the exception of the requested test coverage, this is the final impementation of the missing NPN functions that are needed to ensure Java applets work in QtWebKit. I cannot figure out how to create the test coverage for this change ; so I have given up on doing so now... Perhaps someone more familiar will be able to add the test coverage...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>282851</commentid>
    <comment_count>49</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2010-09-22 02:04:55 -0700</bug_when>
    <thetext>Attachment 68348 did not build on qt:
Build output: http://queues.webkit.org/results/4058102</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>283126</commentid>
    <comment_count>50</comment_count>
      <attachid>68411</attachid>
    <who name="Dawit A.">adawit</who>
    <bug_when>2010-09-22 12:04:13 -0700</bug_when>
    <thetext>Created attachment 68411
Implement NPN_GetValueForURL and NPN_SetValueForURL and NPN_GetAuthenticationInfo [Final #3]...

Fixed compilation issue caused by layering violation in the previous patch...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288572</commentid>
    <comment_count>51</comment_count>
      <attachid>68411</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2010-10-01 16:31:49 -0700</bug_when>
    <thetext>Comment on attachment 68411
Implement NPN_GetValueForURL and NPN_SetValueForURL and NPN_GetAuthenticationInfo [Final #3]...

I don&apos;t like the platformGetValueForURL/platformSetValueForURL/platformGetAuthenticationInfo approach.

In http://trac.webkit.org/changeset/68951 I landed ProxyServer.h which has a proxyServersForURL function. If Qt provided an implementation of that it could be used in PluginView.cpp (I plan to do the same thing for getAuthenticationInfo).

Does that make sense?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288695</commentid>
    <comment_count>52</comment_count>
    <who name="Dawit A.">adawit</who>
    <bug_when>2010-10-02 08:46:23 -0700</bug_when>
    <thetext>(In reply to comment #51)
&gt; (From update of attachment 68411 [details])
&gt; I don&apos;t like the platformGetValueForURL/platformSetValueForURL/platformGetAuthenticationInfo approach.
&gt; 
&gt; In http://trac.webkit.org/changeset/68951 I landed ProxyServer.h which has a proxyServersForURL function. If Qt provided an implementation of that it could be used in PluginView.cpp (I plan to do the same thing for getAuthenticationInfo).
&gt; 
&gt; Does that make sense?

Yes. If there is a platform independent way of accessing proxy and authentication information, then there is no need for keeping the platform specific methods...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288722</commentid>
    <comment_count>53</comment_count>
      <attachid>69582</attachid>
    <who name="Dawit A.">adawit</who>
    <bug_when>2010-10-02 14:26:13 -0700</bug_when>
    <thetext>Created attachment 69582
Implement NPN_GetValueForURL and NPN_SetValueForURL and NPN_GetAuthenticationInfo [Final #4]...

Per review in comment #51, changed code to use WebCore::proxyServersForURL from ProxyServer.h for obtaining proxy information and removed the platform* functions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>291411</commentid>
    <comment_count>54</comment_count>
      <attachid>70193</attachid>
    <who name="Dawit A.">adawit</who>
    <bug_when>2010-10-07 19:48:10 -0700</bug_when>
    <thetext>Created attachment 70193
Implement NPN_GetValueForURL and NPN_SetValueForURL and NPN_GetAuthenticationInfo [Final #5]...

Minor changes...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>291739</commentid>
    <comment_count>55</comment_count>
      <attachid>70193</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2010-10-08 10:17:00 -0700</bug_when>
    <thetext>Comment on attachment 70193
Implement NPN_GetValueForURL and NPN_SetValueForURL and NPN_GetAuthenticationInfo [Final #5]...

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

Looks good otherwise!

&gt; WebCore/platform/network/ProxyServer.h:71
&gt; +Vector&lt;ProxyServer&gt; proxyServersForURL(const KURL&amp;, const NetworkingContext* context = 0);

I think it&apos;s a bit weird to make this default to null. Couldn&apos;t we instead always require the argument to be passed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>291800</commentid>
    <comment_count>56</comment_count>
    <who name="Dawit A.">adawit</who>
    <bug_when>2010-10-08 12:09:15 -0700</bug_when>
    <thetext>(In reply to comment #55)
&gt; (From update of attachment 70193 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=70193&amp;action=review
&gt; 
&gt; Looks good otherwise!
&gt; 
&gt; &gt; WebCore/platform/network/ProxyServer.h:71
&gt; &gt; +Vector&lt;ProxyServer&gt; proxyServersForURL(const KURL&amp;, const NetworkingContext* context = 0);
&gt; 
&gt; I think it&apos;s a bit weird to make this default to null. Couldn&apos;t we instead always require the argument to be passed?

Yes, there is no reason why that cannot be the case. I did that to simply avoid breaking any of the other implementations...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>292058</commentid>
    <comment_count>57</comment_count>
      <attachid>70343</attachid>
    <who name="Dawit A.">adawit</who>
    <bug_when>2010-10-08 23:12:50 -0700</bug_when>
    <thetext>Created attachment 70343
Implement NPN_GetValueForURL and NPN_SetValueForURL and NPN_GetAuthenticationInfo [Final #6]...

Removed the default value from proxyServersForURL&apos;s second parameter...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>292059</commentid>
    <comment_count>58</comment_count>
      <attachid>70193</attachid>
    <who name="Dawit A.">adawit</who>
    <bug_when>2010-10-08 23:17:33 -0700</bug_when>
    <thetext>Comment on attachment 70193
Implement NPN_GetValueForURL and NPN_SetValueForURL and NPN_GetAuthenticationInfo [Final #5]...

Removed r+</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>292061</commentid>
    <comment_count>59</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2010-10-08 23:22:08 -0700</bug_when>
    <thetext>Attachment 70343 did not build on qt:
Build output: http://queues.webkit.org/results/4320006</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>292072</commentid>
    <comment_count>60</comment_count>
      <attachid>70346</attachid>
    <who name="Dawit A.">adawit</who>
    <bug_when>2010-10-09 01:46:33 -0700</bug_when>
    <thetext>Created attachment 70346
Implement NPN_GetValueForURL and NPN_SetValueForURL and NPN_GetAuthenticationInfo [Final #7]...

Attempt to fix WebKit2 compile issues for qt port...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>292169</commentid>
    <comment_count>61</comment_count>
      <attachid>70346</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2010-10-09 13:10:51 -0700</bug_when>
    <thetext>Comment on attachment 70346
Implement NPN_GetValueForURL and NPN_SetValueForURL and NPN_GetAuthenticationInfo [Final #7]...

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

Looks good, but please fix the following things.

&gt; WebCore/platform/network/ProxyServer.h:71
&gt; +Vector&lt;ProxyServer&gt; proxyServersForURL(const KURL&amp;, const NetworkingContext* context);

There&apos;s no need for the NetworkingContext* to have a variable name here.

&gt; WebCore/platform/network/qt/ProxyServerQt.cpp:44
&gt; +    if (context) {

This function nests unnecessarily, you should use early return style, i.e:
if (!context)
    return servers;
And the same for !accessManager and !proxyFactory

&gt; WebKit2/WebProcess/Plugins/PluginView.cpp:847
&gt; +    const NetworkingContext* netContext = frameLoader ? frameLoader-&gt;networkingContext() : 0;
&gt; +    Vector&lt;ProxyServer&gt; proxyServers = proxyServersForURL(KURL(KURL(), urlString), netContext);

s/netContext/context/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>292186</commentid>
    <comment_count>62</comment_count>
      <attachid>70372</attachid>
    <who name="Dawit A.">adawit</who>
    <bug_when>2010-10-09 13:42:07 -0700</bug_when>
    <thetext>Created attachment 70372
Implement NPN_GetValueForURL and NPN_SetValueForURL and NPN_GetAuthenticationInfo [Final #8]...

Addressed the issues from review in comment #61...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>292189</commentid>
    <comment_count>63</comment_count>
      <attachid>70372</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2010-10-09 13:52:57 -0700</bug_when>
    <thetext>Comment on attachment 70372
Implement NPN_GetValueForURL and NPN_SetValueForURL and NPN_GetAuthenticationInfo [Final #8]...

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

r- for the ChangeLog issue, the rest is cosmetics.

&gt; WebCore/ChangeLog:6
&gt; +        Fix compile error when bulding webkit&apos;s Qt port using the &quot;--v8&quot; option.
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=47455

Oops, looks like you have some extra ChangeLog lying around.

&gt; WebCore/platform/network/qt/ProxyServerQt.cpp:47
&gt; +    if (proxyFactory) {

if (!proxyFactory)
    return servers;

&gt; WebKit2/WebProcess/Plugins/PluginView.cpp:847
&gt; +    const NetworkingContext* netContext = frameLoader ? frameLoader-&gt;networkingContext() : 0;
&gt; +    Vector&lt;ProxyServer&gt; proxyServers = proxyServersForURL(KURL(KURL(), urlString), netContext);

Nit: &quot;netContext&quot; -&gt; &quot;context&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>292190</commentid>
    <comment_count>64</comment_count>
      <attachid>70373</attachid>
    <who name="Dawit A.">adawit</who>
    <bug_when>2010-10-09 13:54:11 -0700</bug_when>
    <thetext>Created attachment 70373
Implement NPN_GetValueForURL and NPN_SetValueForURL and NPN_GetAuthenticationInfo [Final #9]...

Corrected the WebCore/ChangeLog patch...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>292191</commentid>
    <comment_count>65</comment_count>
      <attachid>70373</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2010-10-09 13:55:35 -0700</bug_when>
    <thetext>Comment on attachment 70373
Implement NPN_GetValueForURL and NPN_SetValueForURL and NPN_GetAuthenticationInfo [Final #9]...

r=me, let&apos;s land this puppy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>294214</commentid>
    <comment_count>66</comment_count>
      <attachid>70755</attachid>
    <who name="Dawit A.">adawit</who>
    <bug_when>2010-10-14 11:18:15 -0700</bug_when>
    <thetext>Created attachment 70755
Implement NPN_GetValueForURL and NPN_SetValueForURL and NPN_GetAuthenticationInfo [Final #10]...

* Factored out the code that obtains the frame to use when calling the cookie and proxy related functions.
* Added more checks to make sure invalid pointers are not used.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>294220</commentid>
    <comment_count>67</comment_count>
      <attachid>70373</attachid>
    <who name="Dawit A.">adawit</who>
    <bug_when>2010-10-14 11:22:38 -0700</bug_when>
    <thetext>Comment on attachment 70373
Implement NPN_GetValueForURL and NPN_SetValueForURL and NPN_GetAuthenticationInfo [Final #9]...

removed r+</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>294249</commentid>
    <comment_count>68</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2010-10-14 11:42:22 -0700</bug_when>
    <thetext>Attachment 70755 did not build on qt:
Build output: http://queues.webkit.org/results/4426034</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>294280</commentid>
    <comment_count>69</comment_count>
      <attachid>70765</attachid>
    <who name="Dawit A.">adawit</who>
    <bug_when>2010-10-14 12:28:08 -0700</bug_when>
    <thetext>Created attachment 70765
Implement NPN_GetValueForURL and NPN_SetValueForURL and NPN_GetAuthenticationInfo [Final #11]...

Fixed build problem with previous commit...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>294397</commentid>
    <comment_count>70</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2010-10-14 15:11:00 -0700</bug_when>
    <thetext>Blocking QtWebKit 2.1 on this. See https://bugs.webkit.org/show_bug.cgi?id=33044#c30 for more information.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>294403</commentid>
    <comment_count>71</comment_count>
      <attachid>70765</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-10-14 15:17:00 -0700</bug_when>
    <thetext>Comment on attachment 70765
Implement NPN_GetValueForURL and NPN_SetValueForURL and NPN_GetAuthenticationInfo [Final #11]...

Clearing flags on attachment: 70765

Committed r69808: &lt;http://trac.webkit.org/changeset/69808&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>294404</commentid>
    <comment_count>72</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-10-14 15:17:10 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>298126</commentid>
    <comment_count>73</comment_count>
    <who name="Ademar Reis">ademar</who>
    <bug_when>2010-10-22 13:04:26 -0700</bug_when>
    <thetext>(In reply to comment #70)
&gt; Blocking QtWebKit 2.1 on this. See https://bugs.webkit.org/show_bug.cgi?id=33044#c30 for more information.

Following this logic (bug 33044#c30), shouldn&apos;t bug #38911 be cherry-picked as well?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>307389</commentid>
    <comment_count>74</comment_count>
    <who name="Ademar Reis">ademar</who>
    <bug_when>2010-11-10 09:50:50 -0800</bug_when>
    <thetext>(In reply to comment #70)
&gt; Blocking QtWebKit 2.1 on this. See https://bugs.webkit.org/show_bug.cgi?id=33044#c30 for more information.

The complexity to backport/cherry-pick this change to qtwebkit-2.1 is way too big and risky at this point. We need tons of other changes, including bug 47022 and major refactorings such as bug 42292.

I&apos;m giving up on the cherry-pick. If really needed (I&apos;ll discuss it with the stakeholders), we should create a new bug/task for the backport.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>310976</commentid>
    <comment_count>75</comment_count>
    <who name="Ademar Reis">ademar</who>
    <bug_when>2010-11-18 11:08:41 -0800</bug_when>
    <thetext>Revision r69808 cherry-picked into qtwebkit-2.1 with commit 3c8023c &lt;http://gitorious.org/webkit/qtwebkit/commit/3c8023c&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>417247</commentid>
    <comment_count>76</comment_count>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2011-06-08 08:25:34 -0700</bug_when>
    <thetext>*** Bug 48213 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>48060</attachid>
            <date>2010-02-03 12:34:59 -0800</date>
            <delta_ts>2010-06-11 13:25:53 -0700</delta_ts>
            <desc>Set the record straight regarding NPAPI compatibility, hopefully</desc>
            <filename>0001-Set-the-record-straight-regarding-NPAPI-version-comp.patch</filename>
            <type>text/plain</type>
            <size>1354</size>
            <attacher name="Gustavo Noronha (kov)">gustavo</attacher>
            
              <data encoding="base64">RnJvbSBiYTk3OGE3NDg0NzU4YzY3N2I2Y2IyZTc2NjkxNTIxYzNmYWFiOWE2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgPGduc0Bnbm9tZS5vcmc+
CkRhdGU6IFdlZCwgMyBGZWIgMjAxMCAxODoyOTo0MyAtMDIwMApTdWJqZWN0OiBbUEFUQ0hdIFNl
dCB0aGUgcmVjb3JkIHN0cmFpZ2h0IHJlZ2FyZGluZyBOUEFQSSB2ZXJzaW9uIGNvbXBhdGliaWxp
dHkuCgotLS0KIFdlYkNvcmUvQ2hhbmdlTG9nICAgICAgfCAgICA4ICsrKysrKysrCiBXZWJDb3Jl
L2JyaWRnZS9ucGFwaS5oIHwgICAgNSArKysrKwogMiBmaWxlcyBjaGFuZ2VkLCAxMyBpbnNlcnRp
b25zKCspLCAwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIv
V2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmJhY2M1NC4uMzk2NjljMCAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMSBAQAor
MjAxMC0wMi0wMyAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z3VzdGF2by5ub3JvbmhhQGNvbGxh
Ym9yYS5jby51az4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBTZXQgdGhlIHJlY29yZCBzdHJhaWdodCByZWdhcmRpbmcgTlBBUEkgdmVyc2lvbiBjb21w
YXRpYmlsaXR5LgorCisgICAgICAgICogYnJpZGdlL25wYXBpLmg6CisKIDIwMTAtMDItMDMgIERy
ZXcgV2lsc29uICA8YXR3aWxzb25AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IEFsZXhleSBQcm9za3VyeWFrb3YuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JyaWRnZS9ucGFwaS5o
IGIvV2ViQ29yZS9icmlkZ2UvbnBhcGkuaAppbmRleCBjNmNkNTU3Li4xM2ZkNjhhIDEwMDY0NAot
LS0gYS9XZWJDb3JlL2JyaWRnZS9ucGFwaS5oCisrKyBiL1dlYkNvcmUvYnJpZGdlL25wYXBpLmgK
QEAgLTEyMSw3ICsxMjEsMTIgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAKICNkZWZpbmUgTlBfVkVS
U0lPTl9NQUpPUiAwCisKKyNpZmRlZiBYUF9VTklYCisjZGVmaW5lIE5QX1ZFUlNJT05fTUlOT1Ig
MTkKKyNlbHNlCiAjZGVmaW5lIE5QX1ZFUlNJT05fTUlOT1IgMjQKKyNlbmRpZgogCiAvKi0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0qLwogLyogICAgICAgICAgICAgRGVmaW5pdGlvbiBvZiBCYXNpYyBUeXBlcyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLS0gCjEuNi42LjEKCg==
</data>
<flag name="review"
          id="30677"
          type_id="1"
          status="-"
          setter="eric"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>51264</attachid>
            <date>2010-03-21 20:23:52 -0700</date>
            <delta_ts>2010-03-25 21:43:27 -0700</delta_ts>
            <desc>Implements NPN_GetValueForURL and NPN_SetValueForURL, stub for NPN_GetAuthenticationInfo</desc>
            <filename>qtwebkit-gecko-npapi-v1.9-partial-20100321.patch</filename>
            <type>text/plain</type>
            <size>6348</size>
            <attacher name="Garth Dahlstrom">ironstorm</attacher>
            
              <data encoding="base64">LS0tIC4vV2ViQ29yZS9wbHVnaW5zL25wYXBpLmNwcAkyMDEwLTAzLTIxIDIyOjE4OjI0LjAwMDAw
MDAwMCAtMDQwMAorKysgLi9XZWJDb3JlL3BsdWdpbnMvbnBhcGkuY3BwCTIwMTAtMDMtMjEgMjE6
MTA6MTQuMDAwMDAwMDAwIC0wNDAwCkBAIC0yOSw3ICsyOSwxNCBAQAogI2luY2x1ZGUgIlBsdWdp
bk1haW5UaHJlYWRTY2hlZHVsZXIuaCIKICNpbmNsdWRlICJQbHVnaW5WaWV3LmgiCiAjaW5jbHVk
ZSAibnBydW50aW1lX2ludGVybmFsLmgiCi0KKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgor
I2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiQ29va2llSmFyLmgiCisjaW5jbHVkZSA8UURl
YnVnPiAvLyBSZW1vdmUgcURlYnVncywgcmVwbGFjZSB3aXRoIExPRworI2lmIGRlZmluZWQoQlVJ
TERJTkdfUVRfXykKKyNpbmNsdWRlIDxRTmV0d29ya1Byb3h5PgorI2luY2x1ZGUgPFFTdHJpbmc+
CisjZW5kaWYKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiAvLyBUaGUgcGx1Z2luIHZpZXcg
aXMgYWx3YXlzIHRoZSBuZGF0YSBvZiB0aGUgaW5zdGFuY2UsLiBTb21ldGltZXMsIHBsdWctaW5z
IHdpbGwgY2FsbCBhbiBpbnN0YW5jZS1zcGVjaWZpYyBmdW5jdGlvbgpAQCAtMTc1LDMgKzE4Miwx
MTggQEAKIHsKICAgICBQbHVnaW5NYWluVGhyZWFkU2NoZWR1bGVyOjpzY2hlZHVsZXIoKS5zY2hl
ZHVsZUNhbGwoaW5zdGFuY2UsIGZ1bmMsIHVzZXJEYXRhKTsKIH0KKworTlBFcnJvciBOUE5fR2V0
VmFsdWVGb3JVUkwoTlBQIGluc3RhbmNlLCBOUE5VUkxWYXJpYWJsZSB2YXJpYWJsZSwgY29uc3Qg
Y2hhciogdXJsLCBjaGFyKiogdmFsdWUsIHVpbnQzMiogbGVuKQoreworICAgIHFEZWJ1ZygpIDw8
ICJucGFwaS5jcHAgLSBOUE5fR2V0VmFsdWVGb3JVUkw6OiAiIDw8ICh2YXJpYWJsZSA9PSBOUE5V
UkxWQ29va2llID8gIkNvb2tpZSIgOiAiUHJveHkiKTw8ICJ1cmw6IiA8PCB1cmw7CisgICAgc3dp
dGNoICh2YXJpYWJsZSkgeworICAgICAgICBjYXNlIE5QTlVSTFZDb29raWU6IHsKKyAgICAgICAg
ICAgIGlmICghdmFsdWUpCisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIEtV
UkwgVVJMID0gS1VSTChQYXJzZWRVUkxTdHJpbmcsIHVybCk7IC8vIE5TVVJMICpVUkwgPSBbc2Vs
ZiBVUkxXaXRoQ1N0cmluZzp1cmxdOworICAgICAgICAgICAgaWYgKFVSTC5pc0VtcHR5KCkpCisg
ICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGlmIChGcmFtZSogZnJhbWUgPSBw
bHVnaW5WaWV3Rm9ySW5zdGFuY2UoaW5zdGFuY2UpLT5wYXJlbnRGcmFtZSgpKSB7CisgICAgICAg
ICAgICAgICAgU3RyaW5nIGNvb2tpZVN0cmluZyA9IGNvb2tpZXMoZnJhbWUtPmRvY3VtZW50KCks
IFVSTCk7CisgICAgICAgICAgICAgICAgQ1N0cmluZyBjb29raWVTdHJpbmdVVEY4ID0gY29va2ll
U3RyaW5nLnV0ZjgoKTsKKyAgICAgICAgICAgICAgICBxRGVidWcoKSA8PCAibnBhcGkuY3BwIC0g
TlBOX0dldFZhbHVlRm9yVVJMOjpDb29raWVzICIgPDwgY29va2llU3RyaW5nVVRGOC5kYXRhKCk7
CisgICAgICAgICAgICAgICAgaWYgKGNvb2tpZVN0cmluZ1VURjguaXNOdWxsKCkpCisgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBOUEVSUl9HRU5FUklDX0VSUk9SOworCisgICAgICAgICAgICAg
ICAgKnZhbHVlID0gc3RhdGljX2Nhc3Q8Y2hhcio+KE5QTl9NZW1BbGxvYyhjb29raWVTdHJpbmdV
VEY4Lmxlbmd0aCgpKSk7CisgICAgICAgICAgICAgICAgbWVtY3B5KCp2YWx1ZSwgY29va2llU3Ry
aW5nVVRGOC5kYXRhKCksIGNvb2tpZVN0cmluZ1VURjgubGVuZ3RoKCkpOworCisgICAgICAgICAg
ICAgICAgaWYgKGxlbikKKyAgICAgICAgICAgICAgICAgICAgKmxlbiA9IGNvb2tpZVN0cmluZ1VU
RjgubGVuZ3RoKCk7CisKKyAgICAgICAgICAgICAgICByZXR1cm4gTlBFUlJfTk9fRVJST1I7Cisg
ICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBjYXNl
IE5QTlVSTFZQcm94eTogeworICAgICAgICAgICAgaWYgKCF2YWx1ZSkKKyAgICAgICAgICAgICAg
ICBicmVhazsKKworLy8gICAgICAgICAgICBLVVJMIFVSTCA9IEtVUkwoUGFyc2VkVVJMU3RyaW5n
LCB1cmwpOyAvLyBOU1VSTCAqVVJMID0gW3NlbGYgVVJMV2l0aENTdHJpbmc6dXJsXTsKKy8vICAg
ICAgICAgICAgaWYgKFVSTC5pc0VtcHR5KCkpCisvLyAgICAgICAgICAgICAgICBicmVhazsKKwor
ICAgICAgICAgICAgQ1N0cmluZyBwcm94eVVURjggPSAiRElSRUNUIjsgLy8gRGVmYXVsdCB0byBu
byBwcm94eQorCisjaWYgZGVmaW5lZChCVUlMRElOR19RVF9fKSAvLyBGSVhNRTogSXMgdGhlcmUg
YSBRdCBhZ25vc3RpYyB3YXkgdGhpcyBjYW4gYmUgZG9uZSBmb3IgV2ViS2l0PworICAgICAgICAg
ICAgcURlYnVnKCkgPDwgIm5wYXBpLmNwcCAtIE5QTl9HZXRWYWx1ZUZvclVSTDo6UHJveHkgZmV0
Y2hpbmcgUHJveHkgZnJvbSBRdCI7CisgICAgICAgICAgICBRTmV0d29ya1Byb3h5IHFOZXR3b3Jr
UHJveHkgPSBRTmV0d29ya1Byb3h5OjphcHBsaWNhdGlvblByb3h5KCk7CisgICAgICAgICAgICBR
U3RyaW5nIHByb3h5ID0gUVN0cmluZzo6ZnJvbVV0ZjgocHJveHlVVEY4LmRhdGEoKSwgcHJveHlV
VEY4Lmxlbmd0aCgpKTsKKworICAgICAgICAgICAgc3dpdGNoIChxTmV0d29ya1Byb3h5LnR5cGUo
KSkgeworICAgICAgICAgICAgY2FzZSBRTmV0d29ya1Byb3h5OjpTb2NrczVQcm94eTogeworICAg
ICAgICAgICAgICAgICAgICBwcm94eSA9ICJTT0NLUyAiOworICAgICAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXNlIFFOZXR3b3JrUHJveHk6
Okh0dHBQcm94eToKKyAgICAgICAgICAgIGNhc2UgUU5ldHdvcmtQcm94eTo6SHR0cENhY2hpbmdQ
cm94eToKKyAgICAgICAgICAgIGNhc2UgUU5ldHdvcmtQcm94eTo6RnRwQ2FjaGluZ1Byb3h5OiB7
CisgICAgICAgICAgICAgICAgICAgIHByb3h5ID0gIlBST1hZICI7CisgICAgICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IGlmIChwcm94eSAhPSAiRElSRUNUIil7CisgICAgICAgICAgICAgICAgcHJveHkgPSBwcm94eSAr
IHFOZXR3b3JrUHJveHkuaG9zdE5hbWUoKSArIChxTmV0d29ya1Byb3h5LnBvcnQoKSA+IDAgPyAi
OiIgKyBxTmV0d29ya1Byb3h5LnBvcnQoKSA6ICIiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIHByb3h5VVRGOCA9IFFTdHJpbmcocHJveHkpLnRvVXRmOCgpLmNvbnN0RGF0YSgpOworI2Vu
ZGlmCisgICAgICAgICAgICBxRGVidWcoKSA8PCAibnBhcGkuY3BwIC0gTlBOX0dldFZhbHVlRm9y
VVJMOjpQcm94eSAiIDw8IHByb3h5VVRGOC5kYXRhKCk7CisKKyAgICAgICAgICAgICp2YWx1ZSA9
IHN0YXRpY19jYXN0PGNoYXIqPihOUE5fTWVtQWxsb2MocHJveHlVVEY4Lmxlbmd0aCgpKSk7Cisg
ICAgICAgICAgICBtZW1jcHkoKnZhbHVlLCBwcm94eVVURjguZGF0YSgpLCBwcm94eVVURjgubGVu
Z3RoKCkpOworCisgICAgICAgICAgIGlmIChsZW4pCisgICAgICAgICAgICAgICAqbGVuID0gcHJv
eHlVVEY4Lmxlbmd0aCgpOworCisgICAgICAgICAgICByZXR1cm4gTlBFUlJfTk9fRVJST1I7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKyAgICBxRGVidWcoKSA8PCAibnBh
cGkuY3BwIC0gTlBOX0dldFZhbHVlRm9yVVJMOjpOUEVSUl9HRU5FUklDX0VSUk9SIjsKKyAgICBy
ZXR1cm4gTlBFUlJfR0VORVJJQ19FUlJPUjsKK30KKworTlBFcnJvciBOUE5fU2V0VmFsdWVGb3JV
UkwoTlBQIGluc3RhbmNlLCBOUE5VUkxWYXJpYWJsZSB2YXJpYWJsZSwgY29uc3QgY2hhciogdXJs
LCBjb25zdCBjaGFyKiB2YWx1ZSwgdWludDMyIGxlbikKK3sKKyAgICBxRGVidWcoKSA8PCAibnBh
cGkuY3BwIC0gTlBOX1NldFZhbHVlRm9yVVJMOjogIiA8PCAodmFyaWFibGUgPT0gTlBOVVJMVkNv
b2tpZSA/ICJDb29raWUiIDogIlByb3h5Iik8PCAidXJsOiIgPDwgdXJsIDw8ICJ2YWx1ZToiIDw8
IHZhbHVlIDw8ICJsZW46IiA8PCBsZW47CisgICAgc3dpdGNoICh2YXJpYWJsZSkgeworICAgICAg
ICBjYXNlIE5QTlVSTFZDb29raWU6IHsKKyAgICAgICAgICAgIEtVUkwgVVJMID0gS1VSTChQYXJz
ZWRVUkxTdHJpbmcsIHVybCk7IC8vIE5TVVJMICpVUkwgPSBbc2VsZiBVUkxXaXRoQ1N0cmluZzp1
cmxdOworICAgICAgICAgICAgaWYgKFVSTC5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAgYnJl
YWs7CisKKyAgICAgICAgICAgIFN0cmluZyBjb29raWVTdHJpbmcgPSBTdHJpbmc6OmZyb21VVEY4
KHZhbHVlLCBsZW4pOworICAgICAgICAgICAgcURlYnVnKCkgPDwgIm5wYXBpLmNwcCAtIE5QTl9T
ZXRWYWx1ZUZvclVSTDo6Q29va2llIC0tIENvb2tpZXM6IiA8PCBjb29raWVTdHJpbmc7CisgICAg
ICAgICAgICBpZiAoIWNvb2tpZVN0cmluZykKKyAgICAgICAgICAgICAgICBicmVhazsKKworICAg
ICAgICAgICAgaWYgKEZyYW1lKiBmcmFtZSA9IHBsdWdpblZpZXdGb3JJbnN0YW5jZShpbnN0YW5j
ZSktPnBhcmVudEZyYW1lKCkpIHsKKyAgICAgICAgICAgICAgICBzZXRDb29raWVzKGZyYW1lLT5k
b2N1bWVudCgpLCBVUkwsIGNvb2tpZVN0cmluZyk7CisgICAgICAgICAgICAgICAgcmV0dXJuIE5Q
RVJSX05PX0VSUk9SOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgfQorICAgICAgICBjYXNlIE5QTlVSTFZQcm94eToKKyAgICAgICAgICAgIHFEZWJ1ZygpIDw8
ICJucGFwaS5jcHAgLSBOUE5fU2V0VmFsdWVGb3JVUkw6OlByb3h5IC0tIHBsdWctaW5zIHRyeWlu
ZyB0byBzZXQgV2ViS2l0J3MgcHJveHkgaXMgbm90IGFsbG93ZWQhIjsKKyAgICAgICAgICAgIC8v
IENhbid0IHNldCB0aGUgcHJveHkgZm9yIGEgVVJMLgorICAgICAgICAgICAgYnJlYWs7CisgICAg
fQorICAgIHFEZWJ1ZygpIDw8ICJucGFwaS5jcHAgLSBOUE5fU2V0VmFsdWVGb3JVUkw6Ok5QRVJS
X0dFTkVSSUNfRVJST1IiOworICAgIHJldHVybiBOUEVSUl9HRU5FUklDX0VSUk9SOworfQorCitO
UEVycm9yIE5QTl9HZXRBdXRoZW50aWNhdGlvbkluZm8oTlBQIGluc3RhbmNlLCBjb25zdCBjaGFy
KiBwcm90b2NvbCwgY29uc3QgY2hhciogaG9zdCwgaW50MzIgcG9ydCwgY29uc3QgY2hhciogc2No
ZW1lLCBjb25zdCBjaGFyICpyZWFsbSwgY2hhcioqIHVzZXJuYW1lLCB1aW50MzIqIHVsZW4sIGNo
YXIqKiBwYXNzd29yZCwgdWludDMyKiBwbGVuKQoreworICAgIHFEZWJ1ZygpIDw8ICJucGFwaS5j
cHAgLSBOUE5fR2V0QXV0aGVudGljYXRpb25JbmZvOjogaW5zdGFuY2U6IiA8PCBpbnN0YW5jZSA8
PCAicHJvdG9jb2w6IiA8PCBwcm90b2NvbCA8PCAiaG9zdDoiIDw8IGhvc3QgPDwgInBvcnQ6IiA8
PCBwb3J0IDw8ICJzY2hlbWU6IiA8PCBzY2hlbWUgPDwgInJlYWxtOiIgPDwgcmVhbG0gPDwgInVz
ZXJuYW1lOiIgPDwgdXNlcm5hbWUgPDwgInVsZW46IiA8PCB1bGVuIDw8ICJwYXNzd29yZDoiIDw8
IHBhc3N3b3JkIDw8ICJwbGVuOiIgPDwgcGxlbjsKKyAgICAvLyBVbnN1cHBvcnRlZAorICAgIG5v
dEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIE5QRVJSX0dFTkVSSUNfRVJST1I7Cit9Ci0tLSAu
L1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5QYWNrYWdlLmNwcAkyMDEwLTAzLTIxIDIyOjQ1OjA3LjAw
MDAwMDAwMCAtMDQwMAorKysgLi9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luUGFja2FnZS5jcHAJMjAx
MC0wMy0yMSAwMTo1MTowMC4wMDAwMDAwMDAgLTA0MDAKQEAgLTI3OSw2ICsyNzksOSBAQAogICAg
IG1fYnJvd3NlckZ1bmNzLnB1c2hwb3B1cHNlbmFibGVkc3RhdGUgPSBOUE5fUHVzaFBvcHVwc0Vu
YWJsZWRTdGF0ZTsKICAgICBtX2Jyb3dzZXJGdW5jcy5wb3Bwb3B1cHNlbmFibGVkc3RhdGUgPSBO
UE5fUG9wUG9wdXBzRW5hYmxlZFN0YXRlOwogICAgIG1fYnJvd3NlckZ1bmNzLnBsdWdpbnRocmVh
ZGFzeW5jY2FsbCA9IE5QTl9QbHVnaW5UaHJlYWRBc3luY0NhbGw7CisgICAgbV9icm93c2VyRnVu
Y3MuZ2V0dmFsdWVmb3J1cmwgPSBOUE5fR2V0VmFsdWVGb3JVUkw7CisgICAgbV9icm93c2VyRnVu
Y3Muc2V0dmFsdWVmb3J1cmwgPSBOUE5fU2V0VmFsdWVGb3JVUkw7CisgICAgbV9icm93c2VyRnVu
Y3MuZ2V0YXV0aGVudGljYXRpb25pbmZvID0gTlBOX0dldEF1dGhlbnRpY2F0aW9uSW5mbzsKIAog
ICAgIG1fYnJvd3NlckZ1bmNzLnJlbGVhc2V2YXJpYW50dmFsdWUgPSBfTlBOX1JlbGVhc2VWYXJp
YW50VmFsdWU7CiAgICAgbV9icm93c2VyRnVuY3MuZ2V0c3RyaW5naWRlbnRpZmllciA9IF9OUE5f
R2V0U3RyaW5nSWRlbnRpZmllcjsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>51714</attachid>
            <date>2010-03-25 21:43:27 -0700</date>
            <delta_ts>2010-03-31 16:32:08 -0700</delta_ts>
            <desc>Implements NPN_GetValueForURL and NPN_SetValueForURL, stub for NPN_GetAuthenticationInfo -- Fixes proxy string logic problem</desc>
            <filename>qtwebkit-gecko-npapi-v1.9-partial-20100325.patch</filename>
            <type>text/plain</type>
            <size>7905</size>
            <attacher name="Garth Dahlstrom">ironstorm</attacher>
            
              <data encoding="base64">LS0tIC4vc3JjLzNyZHBhcnR5L3dlYmtpdC9XZWJDb3JlL3BsdWdpbnMvbnBhcGkuY3BwCTIwMTAt
MDMtMjMgMDQ6NTM6NDQuMTY4ODE4OTAwIC0wNDAwCisrKyAuL3NyYy8zcmRwYXJ0eS93ZWJraXQv
V2ViQ29yZS9wbHVnaW5zL25wYXBpLmNwcAkyMDEwLTAzLTI1IDE1OjUxOjExLjU4NjUzNzcwMCAt
MDQwMApAQCAtMjksNyArMjksMTQgQEAKICNpbmNsdWRlICJQbHVnaW5NYWluVGhyZWFkU2NoZWR1
bGVyLmgiCiAjaW5jbHVkZSAiUGx1Z2luVmlldy5oIgogI2luY2x1ZGUgIm5wcnVudGltZV9pbnRl
cm5hbC5oIgotCisjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKyNpbmNsdWRlICJGcmFtZS5o
IgorI2luY2x1ZGUgIkNvb2tpZUphci5oIgorI2luY2x1ZGUgPFFEZWJ1Zz4gLy8gUmVtb3ZlIHFE
ZWJ1Z3MsIHJlcGxhY2Ugd2l0aCBMT0cKKyNpZiBkZWZpbmVkKEJVSUxESU5HX1FUX18pCisjaW5j
bHVkZSA8UU5ldHdvcmtQcm94eT4KKyNpbmNsdWRlIDxRU3RyaW5nPgorI2VuZGlmCiB1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKIAogLy8gVGhlIHBsdWdpbiB2aWV3IGlzIGFsd2F5cyB0aGUgbmRh
dGEgb2YgdGhlIGluc3RhbmNlLC4gU29tZXRpbWVzLCBwbHVnLWlucyB3aWxsIGNhbGwgYW4gaW5z
dGFuY2Utc3BlY2lmaWMgZnVuY3Rpb24KQEAgLTE3NSwzICsxODIsMTQzIEBACiB7CiAgICAgUGx1
Z2luTWFpblRocmVhZFNjaGVkdWxlcjo6c2NoZWR1bGVyKCkuc2NoZWR1bGVDYWxsKGluc3RhbmNl
LCBmdW5jLCB1c2VyRGF0YSk7CiB9CisKK05QRXJyb3IgTlBOX0dldFZhbHVlRm9yVVJMKE5QUCBp
bnN0YW5jZSwgTlBOVVJMVmFyaWFibGUgdmFyaWFibGUsIGNvbnN0IGNoYXIqIHVybCwgY2hhcioq
IHZhbHVlLCB1aW50MzIqIGxlbikKK3sKKyAgICBxRGVidWcoKSA8PCAibnBhcGkuY3BwIC0gTlBO
X0dldFZhbHVlRm9yVVJMOjogIiA8PCAodmFyaWFibGUgPT0gTlBOVVJMVkNvb2tpZSA/ICJDb29r
aWUiIDogIlByb3h5Iik8PCAidXJsOiIgPDwgdXJsOworICAgIHN3aXRjaCAodmFyaWFibGUpIHsK
KyAgICAgICAgY2FzZSBOUE5VUkxWQ29va2llOiB7CisgICAgICAgICAgICBpZiAoIXZhbHVlKQor
ICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBLVVJMIFVSTCA9IEtVUkwoUGFy
c2VkVVJMU3RyaW5nLCB1cmwpOyAvLyBOU1VSTCAqVVJMID0gW3NlbGYgVVJMV2l0aENTdHJpbmc6
dXJsXTsKKyAgICAgICAgICAgIGlmIChVUkwuaXNFbXB0eSgpKQorICAgICAgICAgICAgICAgIGJy
ZWFrOworCisgICAgICAgICAgICBpZiAoRnJhbWUqIGZyYW1lID0gcGx1Z2luVmlld0Zvckluc3Rh
bmNlKGluc3RhbmNlKS0+cGFyZW50RnJhbWUoKSkgeworI2lmIGRlZmluZWQoVFJVRSkgLy8gRmxp
cCBiZXR3ZWVuIGltcGxlbWVudGF0aW9ucworICAgICAgICAgICAgICAgIFFTdHJpbmcgY29va2ll
U3RyaW5nID0gUVN0cmluZyhjb29raWVzKGZyYW1lLT5kb2N1bWVudCgpLCBVUkwpKTsKKy8vICAg
ICAgICAgICAgICAgIHFEZWJ1ZygpIDw8ICJucGFwaS5jcHAgLSBOUE5fR2V0VmFsdWVGb3JVUkw6
OkNvb2tpZXMgcWNzWyIgPDwgY29va2llU3RyaW5nIDw8ICJdIExlbmd0aDoiPDxjb29raWVTdHJp
bmcubGVuZ3RoKCk7CisvLyAgICAgICAgICAgICAgICBxRGVidWcoKSA8PCAibnBhcGkuY3BwIC0g
TlBOX0dldFZhbHVlRm9yVVJMOjpDb29raWVzIHFjc1siIDw8IGNvb2tpZVN0cmluZy50b1V0Zjgo
KSA8PCAiXSBMZW5ndGg6Ijw8Y29va2llU3RyaW5nLnRvVXRmOCgpLmxlbmd0aCgpIDw8ICJVVEY4
IjsKKworICAgICAgICAgICAgICAgIENTdHJpbmcgY29va2llU3RyaW5nVVRGOCA9IGNvb2tpZVN0
cmluZy50b1V0ZjgoKS5jb25zdERhdGEoKTsKKyAgICAgICAgICAgICAgICBxRGVidWcoKSA8PCAi
bnBhcGkuY3BwIC0gTlBOX0dldFZhbHVlRm9yVVJMOjpDb29raWVzIFsiIDw8IGNvb2tpZVN0cmlu
Z1VURjguZGF0YSgpIDw8ICJdIExlbmd0aDoiPDxjb29raWVTdHJpbmdVVEY4Lmxlbmd0aCgpOwor
CisgICAgICAgICAgICAgICAgKnZhbHVlID0gc3RhdGljX2Nhc3Q8Y2hhcio+KE5QTl9NZW1BbGxv
Yyhjb29raWVTdHJpbmdVVEY4Lmxlbmd0aCgpKSk7CisgICAgICAgICAgICAgICAgbWVtY3B5KCp2
YWx1ZSwgY29va2llU3RyaW5nVVRGOC5kYXRhKCksIGNvb2tpZVN0cmluZ1VURjgubGVuZ3RoKCkp
OworCisgICAgICAgICAgICAgICAgaWYgKGxlbikgeworICAgICAgICAgICAgICAgICAgICBxRGVi
dWcoKSA8PCAibGVuIGlzIHNldCBiZWZvcmU6ICIgPDwgbGVuOworICAgICAgICAgICAgICAgICAg
ICAqbGVuID0gY29va2llU3RyaW5nVVRGOC5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICAgICAg
cURlYnVnKCkgPDwgImxlbiBpcyBzZXQgYWZ0ZXI6ICIgPDwgbGVuOworICAgICAgICAgICAgICAg
IH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHFEZWJ1ZygpIDw8ICJsZW4gaXMgbm90IHNl
dDogIiA8PCBsZW47CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHFEZWJ1Zygp
IDw8ICJsZW4gaXM6ICIgPDwgKmxlbjsKKyNlbHNlCisgICAgICAgICAgICAgICAgU3RyaW5nIGNv
b2tpZVN0cmluZyA9IGNvb2tpZXMoZnJhbWUtPmRvY3VtZW50KCksIFVSTCk7CisgICAgICAgICAg
ICAgICAgQ1N0cmluZyBjb29raWVTdHJpbmdVVEY4ID0gY29va2llU3RyaW5nLnV0ZjgoKSArICdc
MCc7CisgICAgICAgICAgICAgICAgcURlYnVnKCkgPDwgIm5wYXBpLmNwcCAtIE5QTl9HZXRWYWx1
ZUZvclVSTDo6Q29va2llcyBbIiA8PCBjb29raWVTdHJpbmdVVEY4LmRhdGEoKSA8PCAiXSBMZW5n
dGg6Ijw8Y29va2llU3RyaW5nVVRGOC5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICBxRGVidWco
KSA8PCAiUVMgTGVuOiIgPDwgUVN0cmluZyhjb29raWVzKGZyYW1lLT5kb2N1bWVudCgpLCBVUkwp
KS50b1V0ZjgoKS5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICBpZiAoY29va2llU3RyaW5nVVRG
OC5pc051bGwoKSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE5QRVJSX0dFTkVSSUNfRVJS
T1I7CisKKyAgICAgICAgICAgICAgICAqdmFsdWUgPSBzdGF0aWNfY2FzdDxjaGFyKj4oTlBOX01l
bUFsbG9jKGNvb2tpZVN0cmluZ1VURjgubGVuZ3RoKCkpKTsKKyAgICAgICAgICAgICAgICBtZW1j
cHkoKnZhbHVlLCBjb29raWVTdHJpbmdVVEY4LmRhdGEoKSwgY29va2llU3RyaW5nVVRGOC5sZW5n
dGgoKSk7CisKKyAgICAgICAgICAgICAgICBpZiAobGVuKQorICAgICAgICAgICAgICAgICAgICAq
bGVuID0gY29va2llU3RyaW5nVVRGOC5sZW5ndGgoKTsKKyNlbmRpZgorCisgICAgICAgICAgICAg
ICAgcmV0dXJuIE5QRVJSX05PX0VSUk9SOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIH0KKyAgICAgICAgY2FzZSBOUE5VUkxWUHJveHk6IHsKKyAgICAgICAgICAg
IGlmICghdmFsdWUpCisgICAgICAgICAgICAgICAgYnJlYWs7CisKKy8vICAgICAgICAgICAgS1VS
TCBVUkwgPSBLVVJMKFBhcnNlZFVSTFN0cmluZywgdXJsKTsgLy8gTlNVUkwgKlVSTCA9IFtzZWxm
IFVSTFdpdGhDU3RyaW5nOnVybF07CisvLyAgICAgICAgICAgIGlmIChVUkwuaXNFbXB0eSgpKQor
Ly8gICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIENTdHJpbmcgcHJveHlVVEY4
ID0gIkRJUkVDVCI7IC8vIERlZmF1bHQgdG8gbm8gcHJveHkKKworI2lmIGRlZmluZWQoQlVJTERJ
TkdfUVRfXykgLy8gRklYTUU6IElzIHRoZXJlIGEgUXQgYWdub3N0aWMgd2F5IHRoaXMgY2FuIGJl
IGRvbmUgZm9yIFdlYktpdD8KKyAgICAgICAgICAgIHFEZWJ1ZygpIDw8ICJucGFwaS5jcHAgLSBO
UE5fR2V0VmFsdWVGb3JVUkw6OlByb3h5IGZldGNoaW5nIFByb3h5IGZyb20gUXQiOworICAgICAg
ICAgICAgUU5ldHdvcmtQcm94eSBxTmV0d29ya1Byb3h5ID0gUU5ldHdvcmtQcm94eTo6YXBwbGlj
YXRpb25Qcm94eSgpOworICAgICAgICAgICAgUVN0cmluZyBwcm94eSA9IFFTdHJpbmc6OmZyb21V
dGY4KHByb3h5VVRGOC5kYXRhKCksIHByb3h5VVRGOC5sZW5ndGgoKSk7CisKKyAgICAgICAgICAg
IHN3aXRjaCAocU5ldHdvcmtQcm94eS50eXBlKCkpIHsKKyAgICAgICAgICAgIGNhc2UgUU5ldHdv
cmtQcm94eTo6U29ja3M1UHJveHk6IHsKKyAgICAgICAgICAgICAgICAgICAgcHJveHkgPSAiU09D
S1MgIjsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgY2FzZSBRTmV0d29ya1Byb3h5OjpIdHRwUHJveHk6CisgICAgICAgICAgICBjYXNl
IFFOZXR3b3JrUHJveHk6Okh0dHBDYWNoaW5nUHJveHk6CisgICAgICAgICAgICBjYXNlIFFOZXR3
b3JrUHJveHk6OkZ0cENhY2hpbmdQcm94eTogeworICAgICAgICAgICAgICAgICAgICBwcm94eSA9
ICJQUk9YWSAiOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICBjYXNlIFFOZXR3b3JrUHJveHk6OkRlZmF1bHRQcm94eToKKyAgICAgICAg
ICAgIGNhc2UgUU5ldHdvcmtQcm94eTo6Tm9Qcm94eTogeyBicmVhazsgfQorICAgICAgICAgICAg
fQorICAgICAgICAgICAgaWYgKHByb3h5LmNvbXBhcmUoIkRJUkVDVCIpICE9IDApeworICAgICAg
ICAgICAgICAgIHByb3h5ID0gcHJveHkgKyBxTmV0d29ya1Byb3h5Lmhvc3ROYW1lKCkgKyAocU5l
dHdvcmtQcm94eS5wb3J0KCkgPiAwID8gIjoiICsgUVN0cmluZzo6bnVtYmVyKHFOZXR3b3JrUHJv
eHkucG9ydCgpKSA6ICIiKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcHJveHlVVEY4
ID0gcHJveHkudG9VdGY4KCkuY29uc3REYXRhKCk7CisjZW5kaWYKKyAgICAgICAgICAgIHFEZWJ1
ZygpIDw8ICJucGFwaS5jcHAgLSBOUE5fR2V0VmFsdWVGb3JVUkw6OlByb3h5ICIgPDwgcHJveHlV
VEY4LmRhdGEoKTsKKworICAgICAgICAgICAgKnZhbHVlID0gc3RhdGljX2Nhc3Q8Y2hhcio+KE5Q
Tl9NZW1BbGxvYyhwcm94eVVURjgubGVuZ3RoKCkpKTsKKyAgICAgICAgICAgIG1lbWNweSgqdmFs
dWUsIHByb3h5VVRGOC5kYXRhKCksIHByb3h5VVRGOC5sZW5ndGgoKSk7CisKKyAgICAgICAgICAg
aWYgKGxlbikKKyAgICAgICAgICAgICAgICpsZW4gPSBwcm94eVVURjgubGVuZ3RoKCk7CisKKyAg
ICAgICAgICAgIHJldHVybiBOUEVSUl9OT19FUlJPUjsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICB9CisgICAgfQorICAgIHFEZWJ1ZygpIDw8ICJucGFwaS5jcHAgLSBOUE5fR2V0VmFsdWVG
b3JVUkw6Ok5QRVJSX0dFTkVSSUNfRVJST1IiOworICAgIHJldHVybiBOUEVSUl9HRU5FUklDX0VS
Uk9SOworfQorCitOUEVycm9yIE5QTl9TZXRWYWx1ZUZvclVSTChOUFAgaW5zdGFuY2UsIE5QTlVS
TFZhcmlhYmxlIHZhcmlhYmxlLCBjb25zdCBjaGFyKiB1cmwsIGNvbnN0IGNoYXIqIHZhbHVlLCB1
aW50MzIgbGVuKQoreworICAgIHFEZWJ1ZygpIDw8ICJucGFwaS5jcHAgLSBOUE5fU2V0VmFsdWVG
b3JVUkw6OiAiIDw8ICh2YXJpYWJsZSA9PSBOUE5VUkxWQ29va2llID8gIkNvb2tpZSIgOiAiUHJv
eHkiKTw8ICJ1cmw6IiA8PCB1cmwgPDwgInZhbHVlOiIgPDwgdmFsdWUgPDwgImxlbjoiIDw8IGxl
bjsKKyAgICBzd2l0Y2ggKHZhcmlhYmxlKSB7CisgICAgICAgIGNhc2UgTlBOVVJMVkNvb2tpZTog
eworICAgICAgICAgICAgS1VSTCBVUkwgPSBLVVJMKFBhcnNlZFVSTFN0cmluZywgdXJsKTsgLy8g
TlNVUkwgKlVSTCA9IFtzZWxmIFVSTFdpdGhDU3RyaW5nOnVybF07CisgICAgICAgICAgICBpZiAo
VVJMLmlzRW1wdHkoKSkKKyAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgU3Ry
aW5nIGNvb2tpZVN0cmluZyA9IFN0cmluZzo6ZnJvbVVURjgodmFsdWUsIGxlbik7CisgICAgICAg
ICAgICBxRGVidWcoKSA8PCAibnBhcGkuY3BwIC0gTlBOX1NldFZhbHVlRm9yVVJMOjpDb29raWUg
LS0gQ29va2llczoiIDw8IGNvb2tpZVN0cmluZzsKKyAgICAgICAgICAgIGlmICghY29va2llU3Ry
aW5nKQorICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBpZiAoRnJhbWUqIGZy
YW1lID0gcGx1Z2luVmlld0Zvckluc3RhbmNlKGluc3RhbmNlKS0+cGFyZW50RnJhbWUoKSkgewor
ICAgICAgICAgICAgICAgIHNldENvb2tpZXMoZnJhbWUtPmRvY3VtZW50KCksIFVSTCwgY29va2ll
U3RyaW5nKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gTlBFUlJfTk9fRVJST1I7CisgICAgICAg
ICAgICB9CisKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGNhc2UgTlBO
VVJMVlByb3h5OgorICAgICAgICAgICAgcURlYnVnKCkgPDwgIm5wYXBpLmNwcCAtIE5QTl9TZXRW
YWx1ZUZvclVSTDo6UHJveHkgLS0gcGx1Zy1pbnMgdHJ5aW5nIHRvIHNldCBXZWJLaXQncyBwcm94
eSBpcyBub3QgYWxsb3dlZCEiOworICAgICAgICAgICAgLy8gQ2FuJ3Qgc2V0IHRoZSBwcm94eSBm
b3IgYSBVUkwuCisgICAgICAgICAgICBicmVhazsKKyAgICB9CisgICAgcURlYnVnKCkgPDwgIm5w
YXBpLmNwcCAtIE5QTl9TZXRWYWx1ZUZvclVSTDo6TlBFUlJfR0VORVJJQ19FUlJPUiI7CisgICAg
cmV0dXJuIE5QRVJSX0dFTkVSSUNfRVJST1I7Cit9CisKK05QRXJyb3IgTlBOX0dldEF1dGhlbnRp
Y2F0aW9uSW5mbyhOUFAgaW5zdGFuY2UsIGNvbnN0IGNoYXIqIHByb3RvY29sLCBjb25zdCBjaGFy
KiBob3N0LCBpbnQzMiBwb3J0LCBjb25zdCBjaGFyKiBzY2hlbWUsIGNvbnN0IGNoYXIgKnJlYWxt
LCBjaGFyKiogdXNlcm5hbWUsIHVpbnQzMiogdWxlbiwgY2hhcioqIHBhc3N3b3JkLCB1aW50MzIq
IHBsZW4pCit7CisgICAgcURlYnVnKCkgPDwgIm5wYXBpLmNwcCAtIE5QTl9HZXRBdXRoZW50aWNh
dGlvbkluZm86OiBpbnN0YW5jZToiIDw8IGluc3RhbmNlIDw8ICJwcm90b2NvbDoiIDw8IHByb3Rv
Y29sIDw8ICJob3N0OiIgPDwgaG9zdCA8PCAicG9ydDoiIDw8IHBvcnQgPDwgInNjaGVtZToiIDw8
IHNjaGVtZSA8PCAicmVhbG06IiA8PCByZWFsbSA8PCAidXNlcm5hbWU6IiA8PCB1c2VybmFtZSA8
PCAidWxlbjoiIDw8IHVsZW4gPDwgInBhc3N3b3JkOiIgPDwgcGFzc3dvcmQgPDwgInBsZW46IiA8
PCBwbGVuOworICAgIC8vIFVuc3VwcG9ydGVkCisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBy
ZXR1cm4gTlBFUlJfR0VORVJJQ19FUlJPUjsKK30KLS0tIC4vc3JjLzNyZHBhcnR5L3dlYmtpdC9X
ZWJDb3JlL3BsdWdpbnMvUGx1Z2luUGFja2FnZS5jcHAJMjAxMC0wMy0yMyAwNDo1Mzo0Ny40MzUz
MjI5MDAgLTA0MDAKKysrIC4vc3JjLzNyZHBhcnR5L3dlYmtpdC9XZWJDb3JlL3BsdWdpbnMvUGx1
Z2luUGFja2FnZS5jcHAJMjAxMC0wMy0yMyAwNDo1Mzo0OC45NDk5MjYxMDAgLTA0MDAKQEAgLTI3
OSw2ICsyNzksOSBAQAogICAgIG1fYnJvd3NlckZ1bmNzLnB1c2hwb3B1cHNlbmFibGVkc3RhdGUg
PSBOUE5fUHVzaFBvcHVwc0VuYWJsZWRTdGF0ZTsKICAgICBtX2Jyb3dzZXJGdW5jcy5wb3Bwb3B1
cHNlbmFibGVkc3RhdGUgPSBOUE5fUG9wUG9wdXBzRW5hYmxlZFN0YXRlOwogICAgIG1fYnJvd3Nl
ckZ1bmNzLnBsdWdpbnRocmVhZGFzeW5jY2FsbCA9IE5QTl9QbHVnaW5UaHJlYWRBc3luY0NhbGw7
CisgICAgbV9icm93c2VyRnVuY3MuZ2V0dmFsdWVmb3J1cmwgPSBOUE5fR2V0VmFsdWVGb3JVUkw7
CisgICAgbV9icm93c2VyRnVuY3Muc2V0dmFsdWVmb3J1cmwgPSBOUE5fU2V0VmFsdWVGb3JVUkw7
CisgICAgbV9icm93c2VyRnVuY3MuZ2V0YXV0aGVudGljYXRpb25pbmZvID0gTlBOX0dldEF1dGhl
bnRpY2F0aW9uSW5mbzsKIAogICAgIG1fYnJvd3NlckZ1bmNzLnJlbGVhc2V2YXJpYW50dmFsdWUg
PSBfTlBOX1JlbGVhc2VWYXJpYW50VmFsdWU7CiAgICAgbV9icm93c2VyRnVuY3MuZ2V0c3RyaW5n
aWRlbnRpZmllciA9IF9OUE5fR2V0U3RyaW5nSWRlbnRpZmllcjsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>52222</attachid>
            <date>2010-03-31 16:32:08 -0700</date>
            <delta_ts>2010-03-31 16:32:08 -0700</delta_ts>
            <desc>Implements NPN_GetValueForURL and NPN_SetValueForURL, stub for NPN_GetAuthenticationInfo -- Fixes junk being added to end of NPN_GetValueForURL strings</desc>
            <filename>qtwebkit-gecko-npapi-v1.9-partial-20100331.patch</filename>
            <type>text/plain</type>
            <size>6558</size>
            <attacher name="Garth Dahlstrom">ironstorm</attacher>
            
              <data encoding="base64">LS0tIC4vc3JjLzNyZHBhcnR5L3dlYmtpdC9XZWJDb3JlL3BsdWdpbnMvbnBhcGkuY3BwCTIwMTAt
MDItMTAgMDg6MTk6NTQuMDAwMDAwMDAwIC0wNTAwCisrKyAuL3NyYy8zcmRwYXJ0eS93ZWJraXQv
V2ViQ29yZS9wbHVnaW5zL25wYXBpLmNwcAkyMDEwLTAzLTI3IDE1OjExOjAxLjc4ODIzNjEwMCAt
MDQwMApAQCAtMjksNyArMjksMTQgQEAKICNpbmNsdWRlICJQbHVnaW5NYWluVGhyZWFkU2NoZWR1
bGVyLmgiCiAjaW5jbHVkZSAiUGx1Z2luVmlldy5oIgogI2luY2x1ZGUgIm5wcnVudGltZV9pbnRl
cm5hbC5oIgotCisjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKyNpbmNsdWRlICJGcmFtZS5o
IgorI2luY2x1ZGUgIkNvb2tpZUphci5oIgorI2luY2x1ZGUgPFFEZWJ1Zz4gLy8gUmVtb3ZlIHFE
ZWJ1Z3MsIHJlcGxhY2Ugd2l0aCBMT0cKKyNpZiBkZWZpbmVkKEJVSUxESU5HX1FUX18pCisjaW5j
bHVkZSA8UU5ldHdvcmtQcm94eT4KKyNpbmNsdWRlIDxRU3RyaW5nPgorI2VuZGlmCiB1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKIAogLy8gVGhlIHBsdWdpbiB2aWV3IGlzIGFsd2F5cyB0aGUgbmRh
dGEgb2YgdGhlIGluc3RhbmNlLC4gU29tZXRpbWVzLCBwbHVnLWlucyB3aWxsIGNhbGwgYW4gaW5z
dGFuY2Utc3BlY2lmaWMgZnVuY3Rpb24KQEAgLTE3NSwzICsxODIsMTIxIEBACiB7CiAgICAgUGx1
Z2luTWFpblRocmVhZFNjaGVkdWxlcjo6c2NoZWR1bGVyKCkuc2NoZWR1bGVDYWxsKGluc3RhbmNl
LCBmdW5jLCB1c2VyRGF0YSk7CiB9CisKK05QRXJyb3IgTlBOX0dldFZhbHVlRm9yVVJMKE5QUCBp
bnN0YW5jZSwgTlBOVVJMVmFyaWFibGUgdmFyaWFibGUsIGNvbnN0IGNoYXIqIHVybCwgY2hhcioq
IHZhbHVlLCB1aW50MzIqIGxlbikKK3sKKyAgICBxRGVidWcoKSA8PCAibnBhcGkuY3BwIC0gTlBO
X0dldFZhbHVlRm9yVVJMOjogIiA8PCAodmFyaWFibGUgPT0gTlBOVVJMVkNvb2tpZSA/ICJDb29r
aWUiIDogIlByb3h5Iik8PCAidXJsOiIgPDwgdXJsOworICAgIHN3aXRjaCAodmFyaWFibGUpIHsK
KyAgICAgICAgY2FzZSBOUE5VUkxWQ29va2llOiB7CisgICAgICAgICAgICBpZiAoIXZhbHVlKQor
ICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBLVVJMIFVSTCA9IEtVUkwoUGFy
c2VkVVJMU3RyaW5nLCB1cmwpOyAvLyBOU1VSTCAqVVJMID0gW3NlbGYgVVJMV2l0aENTdHJpbmc6
dXJsXTsKKyAgICAgICAgICAgIGlmIChVUkwuaXNFbXB0eSgpKQorICAgICAgICAgICAgICAgIGJy
ZWFrOworCisgICAgICAgICAgICBpZiAoRnJhbWUqIGZyYW1lID0gcGx1Z2luVmlld0Zvckluc3Rh
bmNlKGluc3RhbmNlKS0+cGFyZW50RnJhbWUoKSkgeworICAgICAgICAgICAgICAgIFN0cmluZyBj
b29raWVTdHJpbmcgPSBjb29raWVzKGZyYW1lLT5kb2N1bWVudCgpLCBVUkwpOworICAgICAgICAg
ICAgICAgIENTdHJpbmcgY29va2llU3RyaW5nVVRGOCA9IGNvb2tpZVN0cmluZy51dGY4KCk7Cisv
LyAgICAgICAgICAgICAgICBxRGVidWcoKSA8PCAibnBhcGkuY3BwIC0gTlBOX0dldFZhbHVlRm9y
VVJMOjpDb29raWVzIFsiIDw8IGNvb2tpZVN0cmluZ1VURjguZGF0YSgpIDw8ICJdIExlbmd0aDoi
PDxjb29raWVTdHJpbmdVVEY4Lmxlbmd0aCgpOworICAgICAgICAgICAgICAgIGlmIChjb29raWVT
dHJpbmdVVEY4LmlzTnVsbCgpKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gTlBFUlJfR0VO
RVJJQ19FUlJPUjsKKworICAgICAgICAgICAgICAgICp2YWx1ZSA9IHN0YXRpY19jYXN0PGNoYXIq
PihOUE5fTWVtQWxsb2MoY29va2llU3RyaW5nVVRGOC5sZW5ndGgoKSsxKSk7CisgICAgICAgICAg
ICAgICAgc3RyY3B5KCp2YWx1ZSwgY29va2llU3RyaW5nVVRGOC5kYXRhKCkpOworCisgICAgICAg
ICAgICAgICAgaWYgKGxlbikKKyAgICAgICAgICAgICAgICAgICAgKmxlbiA9IHN0cmxlbigqdmFs
dWUpOworCisgICAgICAgICAgICAgICAgcmV0dXJuIE5QRVJSX05PX0VSUk9SOworICAgICAgICAg
ICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgY2FzZSBOUE5VUkxW
UHJveHk6IHsKKyAgICAgICAgICAgIGlmICghdmFsdWUpCisgICAgICAgICAgICAgICAgYnJlYWs7
CisKKy8vICAgICAgICAgICAgS1VSTCBVUkwgPSBLVVJMKFBhcnNlZFVSTFN0cmluZywgdXJsKTsg
Ly8gTlNVUkwgKlVSTCA9IFtzZWxmIFVSTFdpdGhDU3RyaW5nOnVybF07CisvLyAgICAgICAgICAg
IGlmIChVUkwuaXNFbXB0eSgpKQorLy8gICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAg
ICAgIENTdHJpbmcgcHJveHlVVEY4ID0gIkRJUkVDVCI7IC8vIERlZmF1bHQgdG8gbm8gcHJveHkK
KworI2lmIGRlZmluZWQoQlVJTERJTkdfUVRfXykgLy8gRklYTUU6IElzIHRoZXJlIGEgUXQgYWdu
b3N0aWMgd2F5IHRoaXMgY2FuIGJlIGRvbmUgZm9yIFdlYktpdD8KKyAgICAgICAgICAgIHFEZWJ1
ZygpIDw8ICJucGFwaS5jcHAgLSBOUE5fR2V0VmFsdWVGb3JVUkw6OlByb3h5IGZldGNoaW5nIFBy
b3h5IGZyb20gUXQiOworICAgICAgICAgICAgUU5ldHdvcmtQcm94eSBxTmV0d29ya1Byb3h5ID0g
UU5ldHdvcmtQcm94eTo6YXBwbGljYXRpb25Qcm94eSgpOworICAgICAgICAgICAgUVN0cmluZyBw
cm94eSA9IFFTdHJpbmc6OmZyb21VdGY4KHByb3h5VVRGOC5kYXRhKCksIHByb3h5VVRGOC5sZW5n
dGgoKSk7CisKKyAgICAgICAgICAgIHN3aXRjaCAocU5ldHdvcmtQcm94eS50eXBlKCkpIHsKKyAg
ICAgICAgICAgIGNhc2UgUU5ldHdvcmtQcm94eTo6U29ja3M1UHJveHk6IHsKKyAgICAgICAgICAg
ICAgICAgICAgcHJveHkgPSAiU09DS1MgIjsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgY2FzZSBRTmV0d29ya1Byb3h5OjpIdHRwUHJv
eHk6CisgICAgICAgICAgICBjYXNlIFFOZXR3b3JrUHJveHk6Okh0dHBDYWNoaW5nUHJveHk6Cisg
ICAgICAgICAgICBjYXNlIFFOZXR3b3JrUHJveHk6OkZ0cENhY2hpbmdQcm94eTogeworICAgICAg
ICAgICAgICAgICAgICBwcm94eSA9ICJQUk9YWSAiOworICAgICAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXNlIFFOZXR3b3JrUHJveHk6OkRl
ZmF1bHRQcm94eToKKyAgICAgICAgICAgIGNhc2UgUU5ldHdvcmtQcm94eTo6Tm9Qcm94eTogeyBi
cmVhazsgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHByb3h5LmNvbXBhcmUoIkRJ
UkVDVCIpICE9IDApeworICAgICAgICAgICAgICAgIHByb3h5ID0gcHJveHkgKyBxTmV0d29ya1By
b3h5Lmhvc3ROYW1lKCkgKyAocU5ldHdvcmtQcm94eS5wb3J0KCkgPiAwID8gIjoiICsgUVN0cmlu
Zzo6bnVtYmVyKHFOZXR3b3JrUHJveHkucG9ydCgpKSA6ICIiKTsKKyAgICAgICAgICAgIH0KKwor
ICAgICAgICAgICAgcHJveHlVVEY4ID0gcHJveHkudG9VdGY4KCkuY29uc3REYXRhKCk7CisjZW5k
aWYKKyAgICAgICAgICAgIHFEZWJ1ZygpIDw8ICJucGFwaS5jcHAgLSBOUE5fR2V0VmFsdWVGb3JV
Ukw6OlByb3h5ICIgPDwgcHJveHlVVEY4LmRhdGEoKTsKKworICAgICAgICAgICAgKnZhbHVlID0g
c3RhdGljX2Nhc3Q8Y2hhcio+KE5QTl9NZW1BbGxvYyhwcm94eVVURjgubGVuZ3RoKCkpKTsKKyAg
ICAgICAgICAgIG1lbWNweSgqdmFsdWUsIHByb3h5VVRGOC5kYXRhKCksIHByb3h5VVRGOC5sZW5n
dGgoKSk7CisKKyAgICAgICAgICAgaWYgKGxlbikKKyAgICAgICAgICAgICAgICpsZW4gPSBwcm94
eVVURjgubGVuZ3RoKCk7CisKKyAgICAgICAgICAgIHJldHVybiBOUEVSUl9OT19FUlJPUjsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorICAgIHFEZWJ1ZygpIDw8ICJucGFw
aS5jcHAgLSBOUE5fR2V0VmFsdWVGb3JVUkw6Ok5QRVJSX0dFTkVSSUNfRVJST1IiOworICAgIHJl
dHVybiBOUEVSUl9HRU5FUklDX0VSUk9SOworfQorCitOUEVycm9yIE5QTl9TZXRWYWx1ZUZvclVS
TChOUFAgaW5zdGFuY2UsIE5QTlVSTFZhcmlhYmxlIHZhcmlhYmxlLCBjb25zdCBjaGFyKiB1cmws
IGNvbnN0IGNoYXIqIHZhbHVlLCB1aW50MzIgbGVuKQoreworICAgIHFEZWJ1ZygpIDw8ICJucGFw
aS5jcHAgLSBOUE5fU2V0VmFsdWVGb3JVUkw6OiAiIDw8ICh2YXJpYWJsZSA9PSBOUE5VUkxWQ29v
a2llID8gIkNvb2tpZSIgOiAiUHJveHkiKTw8ICJ1cmw6IiA8PCB1cmwgPDwgInZhbHVlOiIgPDwg
dmFsdWUgPDwgImxlbjoiIDw8IGxlbjsKKyAgICBzd2l0Y2ggKHZhcmlhYmxlKSB7CisgICAgICAg
IGNhc2UgTlBOVVJMVkNvb2tpZTogeworICAgICAgICAgICAgS1VSTCBVUkwgPSBLVVJMKFBhcnNl
ZFVSTFN0cmluZywgdXJsKTsgLy8gTlNVUkwgKlVSTCA9IFtzZWxmIFVSTFdpdGhDU3RyaW5nOnVy
bF07CisgICAgICAgICAgICBpZiAoVVJMLmlzRW1wdHkoKSkKKyAgICAgICAgICAgICAgICBicmVh
azsKKworICAgICAgICAgICAgU3RyaW5nIGNvb2tpZVN0cmluZyA9IFN0cmluZzo6ZnJvbVVURjgo
dmFsdWUsIGxlbik7CisgICAgICAgICAgICBxRGVidWcoKSA8PCAibnBhcGkuY3BwIC0gTlBOX1Nl
dFZhbHVlRm9yVVJMOjpDb29raWUgLS0gQ29va2llczoiIDw8IGNvb2tpZVN0cmluZzsKKyAgICAg
ICAgICAgIGlmICghY29va2llU3RyaW5nKQorICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAg
ICAgICAgICBpZiAoRnJhbWUqIGZyYW1lID0gcGx1Z2luVmlld0Zvckluc3RhbmNlKGluc3RhbmNl
KS0+cGFyZW50RnJhbWUoKSkgeworICAgICAgICAgICAgICAgIHNldENvb2tpZXMoZnJhbWUtPmRv
Y3VtZW50KCksIFVSTCwgY29va2llU3RyaW5nKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gTlBF
UlJfTk9fRVJST1I7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICB9CisgICAgICAgIGNhc2UgTlBOVVJMVlByb3h5OgorICAgICAgICAgICAgcURlYnVnKCkgPDwg
Im5wYXBpLmNwcCAtIE5QTl9TZXRWYWx1ZUZvclVSTDo6UHJveHkgLS0gcGx1Zy1pbnMgdHJ5aW5n
IHRvIHNldCBXZWJLaXQncyBwcm94eSBpcyBub3QgYWxsb3dlZCEiOworICAgICAgICAgICAgLy8g
Q2FuJ3Qgc2V0IHRoZSBwcm94eSBmb3IgYSBVUkwuCisgICAgICAgICAgICBicmVhazsKKyAgICB9
CisgICAgcURlYnVnKCkgPDwgIm5wYXBpLmNwcCAtIE5QTl9TZXRWYWx1ZUZvclVSTDo6TlBFUlJf
R0VORVJJQ19FUlJPUiI7CisgICAgcmV0dXJuIE5QRVJSX0dFTkVSSUNfRVJST1I7Cit9CisKK05Q
RXJyb3IgTlBOX0dldEF1dGhlbnRpY2F0aW9uSW5mbyhOUFAgaW5zdGFuY2UsIGNvbnN0IGNoYXIq
IHByb3RvY29sLCBjb25zdCBjaGFyKiBob3N0LCBpbnQzMiBwb3J0LCBjb25zdCBjaGFyKiBzY2hl
bWUsIGNvbnN0IGNoYXIgKnJlYWxtLCBjaGFyKiogdXNlcm5hbWUsIHVpbnQzMiogdWxlbiwgY2hh
cioqIHBhc3N3b3JkLCB1aW50MzIqIHBsZW4pCit7CisgICAgcURlYnVnKCkgPDwgIm5wYXBpLmNw
cCAtIE5QTl9HZXRBdXRoZW50aWNhdGlvbkluZm86OiBpbnN0YW5jZToiIDw8IGluc3RhbmNlIDw8
ICJwcm90b2NvbDoiIDw8IHByb3RvY29sIDw8ICJob3N0OiIgPDwgaG9zdCA8PCAicG9ydDoiIDw8
IHBvcnQgPDwgInNjaGVtZToiIDw8IHNjaGVtZSA8PCAicmVhbG06IiA8PCByZWFsbSA8PCAidXNl
cm5hbWU6IiA8PCB1c2VybmFtZSA8PCAidWxlbjoiIDw8IHVsZW4gPDwgInBhc3N3b3JkOiIgPDwg
cGFzc3dvcmQgPDwgInBsZW46IiA8PCBwbGVuOworICAgIC8vIFVuc3VwcG9ydGVkCisgICAgbm90
SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gTlBFUlJfR0VORVJJQ19FUlJPUjsKK30KLS0tIC4v
c3JjLzNyZHBhcnR5L3dlYmtpdC9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luUGFja2FnZS5jcHAJMjAx
MC0wMi0xMCAwODoxOTo1NC4wMDAwMDAwMDAgLTA1MDAKKysrIC4vc3JjLzNyZHBhcnR5L3dlYmtp
dC9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luUGFja2FnZS5jcHAJMjAxMC0wMy0yMiAwMToxNzowMy40
MDA5NDA0MDAgLTA0MDAKQEAgLTI3OSw2ICsyNzksOSBAQAogICAgIG1fYnJvd3NlckZ1bmNzLnB1
c2hwb3B1cHNlbmFibGVkc3RhdGUgPSBOUE5fUHVzaFBvcHVwc0VuYWJsZWRTdGF0ZTsKICAgICBt
X2Jyb3dzZXJGdW5jcy5wb3Bwb3B1cHNlbmFibGVkc3RhdGUgPSBOUE5fUG9wUG9wdXBzRW5hYmxl
ZFN0YXRlOwogICAgIG1fYnJvd3NlckZ1bmNzLnBsdWdpbnRocmVhZGFzeW5jY2FsbCA9IE5QTl9Q
bHVnaW5UaHJlYWRBc3luY0NhbGw7CisgICAgbV9icm93c2VyRnVuY3MuZ2V0dmFsdWVmb3J1cmwg
PSBOUE5fR2V0VmFsdWVGb3JVUkw7CisgICAgbV9icm93c2VyRnVuY3Muc2V0dmFsdWVmb3J1cmwg
PSBOUE5fU2V0VmFsdWVGb3JVUkw7CisgICAgbV9icm93c2VyRnVuY3MuZ2V0YXV0aGVudGljYXRp
b25pbmZvID0gTlBOX0dldEF1dGhlbnRpY2F0aW9uSW5mbzsKIAogICAgIG1fYnJvd3NlckZ1bmNz
LnJlbGVhc2V2YXJpYW50dmFsdWUgPSBfTlBOX1JlbGVhc2VWYXJpYW50VmFsdWU7CiAgICAgbV9i
cm93c2VyRnVuY3MuZ2V0c3RyaW5naWRlbnRpZmllciA9IF9OUE5fR2V0U3RyaW5nSWRlbnRpZmll
cjsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55604</attachid>
            <date>2010-05-10 14:26:27 -0700</date>
            <delta_ts>2010-05-11 08:33:09 -0700</delta_ts>
            <desc>Implements NPN_GetValueForURL and NPN_SetValueForURL, stub for NPN_GetAuthenticationInfo [Updated]</desc>
            <filename>qtwebkit_npn_api_changes.patch</filename>
            <type>text/plain</type>
            <size>6615</size>
            <attacher name="Dawit A.">adawit</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MjNkZDQ4Yy4uNWU1OTFlMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMC0wNS0xMCAgRGF3aXQgQWxlbWF5
ZWh1ICA8YWRhd2l0QGtkZS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgSW1wbGVtZW50YXRpb24gZm9yIE5QTl97R2V0fFNldH1WYWx1ZUZvclVS
TCBhbmQgYSBzdHViIGZvciBOUE5fR2V0QXV0aGVudGljYXRpb25JbmZvLgorCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNDUzOQorCisgICAgICAgICog
cGx1Z2lucy9QbHVnaW5QYWNrYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblBhY2th
Z2U6OmluaXRpYWxpemVCcm93c2VyRnVuY3MpOgorICAgICAgICAqIHBsdWdpbnMvbnBhcGkuY3Bw
OgorICAgICAgICAoTlBOX0dldFZhbHVlRm9yVVJMKToKKyAgICAgICAgKE5QTl9TZXRWYWx1ZUZv
clVSTCk6CisgICAgICAgIChOUE5fR2V0QXV0aGVudGljYXRpb25JbmZvKToKKwogMjAxMC0wNS0w
NiAgTGFzemxvIEdvbWJvcyAgPGxhc3psby4xLmdvbWJvc0Bub2tpYS5jb20+CiAKICAgICAgICAg
VW5yZXZpZXdlZCwgYnVpbGQgZml4IFdpbkNFIGZvciBRdFdlYktpdC4KZGlmZiAtLWdpdCBhL1dl
YkNvcmUvcGx1Z2lucy9QbHVnaW5QYWNrYWdlLmNwcCBiL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5Q
YWNrYWdlLmNwcAppbmRleCBhZDAzZWNkLi44NWQwZGNhIDEwMDY0NAotLS0gYS9XZWJDb3JlL3Bs
dWdpbnMvUGx1Z2luUGFja2FnZS5jcHAKKysrIGIvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblBhY2th
Z2UuY3BwCkBAIC0zMDEsNiArMzAxLDkgQEAgdm9pZCBQbHVnaW5QYWNrYWdlOjppbml0aWFsaXpl
QnJvd3NlckZ1bmNzKCkKICAgICBtX2Jyb3dzZXJGdW5jcy5zZXRleGNlcHRpb24gPSBfTlBOX1Nl
dEV4Y2VwdGlvbjsKICAgICBtX2Jyb3dzZXJGdW5jcy5lbnVtZXJhdGUgPSBfTlBOX0VudW1lcmF0
ZTsKICAgICBtX2Jyb3dzZXJGdW5jcy5jb25zdHJ1Y3QgPSBfTlBOX0NvbnN0cnVjdDsKKyAgICBt
X2Jyb3dzZXJGdW5jcy5nZXR2YWx1ZWZvcnVybCA9IE5QTl9HZXRWYWx1ZUZvclVSTDsKKyAgICBt
X2Jyb3dzZXJGdW5jcy5zZXR2YWx1ZWZvcnVybCA9IE5QTl9TZXRWYWx1ZUZvclVSTDsKKyAgICBt
X2Jyb3dzZXJGdW5jcy5nZXRhdXRoZW50aWNhdGlvbmluZm8gPSBOUE5fR2V0QXV0aGVudGljYXRp
b25JbmZvOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGx1Z2lucy9ucGFwaS5j
cHAgYi9XZWJDb3JlL3BsdWdpbnMvbnBhcGkuY3BwCmluZGV4IDQxMzViNjQuLjVlOGQ1OTkgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvcGx1Z2lucy9ucGFwaS5jcHAKKysrIGIvV2ViQ29yZS9wbHVnaW5z
L25wYXBpLmNwcApAQCAtMjQsMTEgKzI0LDIyIEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIm5wYXBpLmgiCiAKKyNpbmNsdWRlICJucHJ1bnRpbWVfaW50ZXJuYWwuaCIK
KworI2luY2x1ZGUgIkNvb2tpZUphci5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAi
Tm90SW1wbGVtZW50ZWQuaCIKKyNpbmNsdWRlICJQbHVnaW5EZWJ1Zy5oIgogI2luY2x1ZGUgIlBs
dWdpbkluZm9TdG9yZS5oIgogI2luY2x1ZGUgIlBsdWdpbk1haW5UaHJlYWRTY2hlZHVsZXIuaCIK
ICNpbmNsdWRlICJQbHVnaW5WaWV3LmgiCi0jaW5jbHVkZSAibnBydW50aW1lX2ludGVybmFsLmgi
CisKKyNpZiBkZWZpbmVkKEJVSUxESU5HX1FUX18pCisjaW5jbHVkZSA8UU5ldHdvcmtQcm94eT4K
KyNpbmNsdWRlIDxRU3RyaW5nPgorI2VuZGlmCiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwog
CkBAIC0xNzUsMyArMTg2LDExNyBAQCB2b2lkIE5QTl9QbHVnaW5UaHJlYWRBc3luY0NhbGwoTlBQ
IGluc3RhbmNlLCB2b2lkICgqZnVuYykgKHZvaWQgKiksIHZvaWQgKnVzZXJEYQogewogICAgIFBs
dWdpbk1haW5UaHJlYWRTY2hlZHVsZXI6OnNjaGVkdWxlcigpLnNjaGVkdWxlQ2FsbChpbnN0YW5j
ZSwgZnVuYywgdXNlckRhdGEpOwogfQorCitOUEVycm9yIE5QTl9HZXRWYWx1ZUZvclVSTChOUFAg
aW5zdGFuY2UsIE5QTlVSTFZhcmlhYmxlIHZhcmlhYmxlLCBjb25zdCBjaGFyKiB1cmwsIGNoYXIq
KiB2YWx1ZSwgdWludDMyKiBsZW4pCit7CisgICAgTE9HKFBsdWdpbnMsICJOUE5fR2V0VmFsdWVG
b3JVUkwgKG5wYXBpLmNwcCkgLS0gJXMsIHVybDogJXMiLCBwcmV0dHlOYW1lRm9yTlBOVmFyaWFi
bGUodmFyaWFibGUpLCB1cmwpOworICAgIE5QRXJyb3IgZXJyb3IgPSBOUEVSUl9HRU5FUklDX0VS
Uk9SOworICAgIHN3aXRjaCAodmFyaWFibGUpIHsKKyAgICBjYXNlIE5QTlVSTFZDb29raWU6IHsK
KyAgICAgICAgaWYgKCF2YWx1ZSkKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBLVVJMIFVS
TCA9IEtVUkwoUGFyc2VkVVJMU3RyaW5nLCB1cmwpOyAvLyBOU1VSTCAqVVJMID0gW3NlbGYgVVJM
V2l0aENTdHJpbmc6dXJsXTsKKyAgICAgICAgaWYgKCFVUkwuaXNWYWxpZCgpKQorICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIEZyYW1lKiBmcmFtZSA9IHBsdWdpblZpZXdGb3JJbnN0YW5jZShp
bnN0YW5jZSktPnBhcmVudEZyYW1lKCk7CisgICAgICAgIGlmIChmcmFtZSkgeworICAgICAgICAg
ICAgU3RyaW5nIGNvb2tpZVN0cmluZyA9IGNvb2tpZXMoZnJhbWUtPmRvY3VtZW50KCksIFVSTCk7
CisgICAgICAgICAgICBDU3RyaW5nIGNvb2tpZVN0cmluZ1VURjggPSBjb29raWVTdHJpbmcudXRm
OCgpOworICAgICAgICAgICAgaWYgKCFjb29raWVTdHJpbmdVVEY4LmlzTnVsbCgpKSB7CisgICAg
ICAgICAgICAgICAgKnZhbHVlID0gc3RhdGljX2Nhc3Q8Y2hhcio+KE5QTl9NZW1BbGxvYyhjb29r
aWVTdHJpbmdVVEY4Lmxlbmd0aCgpKzEpKTsKKyAgICAgICAgICAgICAgICBzdHJjcHkoKnZhbHVl
LCBjb29raWVTdHJpbmdVVEY4LmRhdGEoKSk7CisgICAgICAgICAgICAgICAgaWYgKGxlbikKKyAg
ICAgICAgICAgICAgICAgICAgKmxlbiA9IHN0cmxlbigqdmFsdWUpOworICAgICAgICAgICAgICAg
IGVycm9yID0gTlBFUlJfTk9fRVJST1I7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAg
ICAgYnJlYWs7CisgICAgfQorICAgIGNhc2UgTlBOVVJMVlByb3h5OiB7CisgICAgICAgIGlmICgh
dmFsdWUpCisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBDU3RyaW5nIHByb3h5VVRGOCA9
ICJESVJFQ1QiOyAvLyBEZWZhdWx0IHRvIG5vIHByb3h5CisKKy8vIEZJWE1FOiBJcyB0aGVyZSBh
IFF0IGFnbm9zdGljIHdheSB0aGlzIGNhbiBiZSBkb25lIGZvciBXZWJLaXQ/CisjaWYgZGVmaW5l
ZChCVUlMRElOR19RVF9fKQorICAgICAgICBMT0coUGx1Z2lucywgIk5QTl9HZXRWYWx1ZUZvclVS
TCAobnBhcGkuY3BwKSAtLSBmZXRjaGluZyBQcm94eSBmcm9tIFFOZXR3b3JrUHJveHkiKTsKKyAg
ICAgICAgUU5ldHdvcmtQcm94eSBxTmV0d29ya1Byb3h5ID0gUU5ldHdvcmtQcm94eTo6YXBwbGlj
YXRpb25Qcm94eSgpOworICAgICAgICBRU3RyaW5nIHByb3h5ID0gUVN0cmluZzo6ZnJvbVV0Zjgo
cHJveHlVVEY4LmRhdGEoKSwgcHJveHlVVEY4Lmxlbmd0aCgpKTsKKworICAgICAgICBzd2l0Y2gg
KHFOZXR3b3JrUHJveHkudHlwZSgpKSB7CisgICAgICAgICAgY2FzZSBRTmV0d29ya1Byb3h5OjpT
b2NrczVQcm94eTogeworICAgICAgICAgICAgICBwcm94eSA9IFFMYXRpbjFTdHJpbmcoIlNPQ0tT
ICIpOworICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICB9CisgICAgICAgICAgY2FzZSBR
TmV0d29ya1Byb3h5OjpIdHRwUHJveHk6CisgICAgICAgICAgY2FzZSBRTmV0d29ya1Byb3h5OjpI
dHRwQ2FjaGluZ1Byb3h5OgorICAgICAgICAgIGNhc2UgUU5ldHdvcmtQcm94eTo6RnRwQ2FjaGlu
Z1Byb3h5OiB7CisgICAgICAgICAgICAgIHByb3h5ID0gUUxhdGluMVN0cmluZygiUFJPWFkgIik7
CisgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgIH0KKyAgICAgICAgICBjYXNlIFFOZXR3
b3JrUHJveHk6OkRlZmF1bHRQcm94eToKKyAgICAgICAgICBjYXNlIFFOZXR3b3JrUHJveHk6Ok5v
UHJveHk6CisgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHBy
b3h5LmNvbXBhcmUoUUxhdGluMVN0cmluZygiRElSRUNUIikpICE9IDApIHsKKyAgICAgICAgICAg
IHByb3h5ICs9IHFOZXR3b3JrUHJveHkuaG9zdE5hbWUoKTsKKyAgICAgICAgICAgIGlmIChxTmV0
d29ya1Byb3h5LnBvcnQoKSA+IDApCisgICAgICAgICAgICAgICAgcHJveHkgKz0gUVN0cmluZzo6
ZnJvbUxhdGluMSgiOiUxIikuYXJnKHFOZXR3b3JrUHJveHkucG9ydCgpKTsKKyAgICAgICAgfQor
CisgICAgICAgIHByb3h5VVRGOCA9IHByb3h5LnRvVXRmOCgpLmNvbnN0RGF0YSgpOworI2VuZGlm
CisgICAgICAgIExPRyhQbHVnaW5zLCAiTlBOX0dldFZhbHVlRm9yVVJMIChucGFwaS5jcHApIC0t
IFByb3h5ICVzIiwgcHJveHlVVEY4LmRhdGEoKSk7CisKKyAgICAgICAgKnZhbHVlID0gc3RhdGlj
X2Nhc3Q8Y2hhcio+KE5QTl9NZW1BbGxvYyhwcm94eVVURjgubGVuZ3RoKCkpKTsKKyAgICAgICAg
bWVtY3B5KCp2YWx1ZSwgcHJveHlVVEY4LmRhdGEoKSwgcHJveHlVVEY4Lmxlbmd0aCgpKTsKKwor
ICAgICAgICBpZiAobGVuKQorICAgICAgICAgICAgKmxlbiA9IHByb3h5VVRGOC5sZW5ndGgoKTsK
KworICAgICAgICBlcnJvciA9IE5QRVJSX05PX0VSUk9SOworICAgICAgICBicmVhazsKKyAgICB9
CisgICAgfQorCisgICAgTE9HKFBsdWdpbnMsICJOUE5fR2V0VmFsdWVGb3JVUkwgKG5wYXBpLmNw
cCkgLS0gcmV0dXJuaW5nIE5QRVJSX0dFTkVSSUNfRVJST1IiKTsKKyAgICByZXR1cm4gZXJyb3I7
Cit9CisKK05QRXJyb3IgTlBOX1NldFZhbHVlRm9yVVJMKE5QUCBpbnN0YW5jZSwgTlBOVVJMVmFy
aWFibGUgdmFyaWFibGUsIGNvbnN0IGNoYXIqIHVybCwgY29uc3QgY2hhciogdmFsdWUsIHVpbnQz
MiBsZW4pCit7CisgICAgTE9HKFBsdWdpbnMsICJOUE5fU2V0VmFsdWVGb3JVUkwgKG5wYXBpLmNw
cCkgLS0gJXMsIHVybDogJXMsIHZhbHVlOiAlcywgbGVuOiAlZCIsIHByZXR0eU5hbWVGb3JOUE5W
YXJpYWJsZSh2YXJpYWJsZSksIHVybCwgdmFsdWUsIGxlbik7CisgICAgc3dpdGNoICh2YXJpYWJs
ZSkgeworICAgICAgICBjYXNlIE5QTlVSTFZDb29raWU6IHsKKyAgICAgICAgICAgIEtVUkwgVVJM
ID0gS1VSTChQYXJzZWRVUkxTdHJpbmcsIHVybCk7IC8vIE5TVVJMICpVUkwgPSBbc2VsZiBVUkxX
aXRoQ1N0cmluZzp1cmxdOworICAgICAgICAgICAgaWYgKCFVUkwuaXNFbXB0eSgpKSB7CisgICAg
ICAgICAgICAgICAgU3RyaW5nIGNvb2tpZVN0cmluZyA9IFN0cmluZzo6ZnJvbVVURjgodmFsdWUs
IGxlbik7CisgICAgICAgICAgICAgICAgTE9HKFBsdWdpbnMsICJOUE5fU2V0VmFsdWVGb3JVUkwg
KG5wYXBpLmNwcCkgLS0gQ29va2llczogJXMiLCBjb29raWVTdHJpbmcuZGF0YSgpKTsKKyAgICAg
ICAgICAgICAgICBpZiAoIWNvb2tpZVN0cmluZy5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgICAg
ICAgICAgRnJhbWUqIGZyYW1lID0gcGx1Z2luVmlld0Zvckluc3RhbmNlKGluc3RhbmNlKS0+cGFy
ZW50RnJhbWUoKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGZyYW1lKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICBzZXRDb29raWVzKGZyYW1lLT5kb2N1bWVudCgpLCBVUkwsIGNvb2tpZVN0
cmluZyk7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gTlBFUlJfTk9fRVJST1I7Cisg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBjYXNlIE5QTlVSTFZQcm94eToK
KyAgICAgICAgICAgIExPRyhQbHVnaW5zLCAiTlBOX1NldFZhbHVlRm9yVVJMIChucGFwaS5jcHAp
IC0tIHBsdWctaW5zIHRyeWluZyB0byBzZXQgV2ViS2l0J3MgcHJveHkgaXMgbm90IGFsbG93ZWQh
Iik7CisgICAgICAgICAgICAvLyBDYW4ndCBzZXQgdGhlIHByb3h5IGZvciBhIFVSTC4KKyAgICAg
ICAgICAgIGJyZWFrOworICAgIH0KKworICAgIExPRyhQbHVnaW5zLCAiTlBOX1NldFZhbHVlRm9y
VVJMIChucGFwaS5jcHApIC0tIHJldHVybmluZyBOUEVSUl9HRU5FUklDX0VSUk9SIik7CisgICAg
cmV0dXJuIE5QRVJSX0dFTkVSSUNfRVJST1I7Cit9CisKK05QRXJyb3IgTlBOX0dldEF1dGhlbnRp
Y2F0aW9uSW5mbyhOUFAgaW5zdGFuY2UsIGNvbnN0IGNoYXIqIHByb3RvY29sLCBjb25zdCBjaGFy
KiBob3N0LCBpbnQzMiBwb3J0LCBjb25zdCBjaGFyKiBzY2hlbWUsIGNvbnN0IGNoYXIgKnJlYWxt
LCBjaGFyKiogdXNlcm5hbWUsIHVpbnQzMiogdWxlbiwgY2hhcioqIHBhc3N3b3JkLCB1aW50MzIq
IHBsZW4pCit7CisgICAgLy8gVW5zdXBwb3J0ZWQKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAg
IHJldHVybiBOUEVSUl9HRU5FUklDX0VSUk9SOworfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp
bGUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55617</attachid>
            <date>2010-05-10 16:09:31 -0700</date>
            <delta_ts>2010-05-11 08:32:49 -0700</delta_ts>
            <desc>Implements NPN_GetValueForURL and NPN_SetValueForURL, stub for NPN_GetAuthenticationInfo [Update II]</desc>
            <filename>qtwebkit_npn_api_changes_2.patch</filename>
            <type>text/plain</type>
            <size>6673</size>
            <attacher name="Dawit A.">adawit</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MjNkZDQ4Yy4uNWU1OTFlMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMC0wNS0xMCAgRGF3aXQgQWxlbWF5
ZWh1ICA8YWRhd2l0QGtkZS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgSW1wbGVtZW50YXRpb24gZm9yIE5QTl97R2V0fFNldH1WYWx1ZUZvclVS
TCBhbmQgYSBzdHViIGZvciBOUE5fR2V0QXV0aGVudGljYXRpb25JbmZvLgorCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNDUzOQorCisgICAgICAgICog
cGx1Z2lucy9QbHVnaW5QYWNrYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblBhY2th
Z2U6OmluaXRpYWxpemVCcm93c2VyRnVuY3MpOgorICAgICAgICAqIHBsdWdpbnMvbnBhcGkuY3Bw
OgorICAgICAgICAoTlBOX0dldFZhbHVlRm9yVVJMKToKKyAgICAgICAgKE5QTl9TZXRWYWx1ZUZv
clVSTCk6CisgICAgICAgIChOUE5fR2V0QXV0aGVudGljYXRpb25JbmZvKToKKwogMjAxMC0wNS0w
NiAgTGFzemxvIEdvbWJvcyAgPGxhc3psby4xLmdvbWJvc0Bub2tpYS5jb20+CiAKICAgICAgICAg
VW5yZXZpZXdlZCwgYnVpbGQgZml4IFdpbkNFIGZvciBRdFdlYktpdC4KZGlmZiAtLWdpdCBhL1dl
YkNvcmUvcGx1Z2lucy9QbHVnaW5QYWNrYWdlLmNwcCBiL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5Q
YWNrYWdlLmNwcAppbmRleCBhZDAzZWNkLi44NWQwZGNhIDEwMDY0NAotLS0gYS9XZWJDb3JlL3Bs
dWdpbnMvUGx1Z2luUGFja2FnZS5jcHAKKysrIGIvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblBhY2th
Z2UuY3BwCkBAIC0zMDEsNiArMzAxLDkgQEAgdm9pZCBQbHVnaW5QYWNrYWdlOjppbml0aWFsaXpl
QnJvd3NlckZ1bmNzKCkKICAgICBtX2Jyb3dzZXJGdW5jcy5zZXRleGNlcHRpb24gPSBfTlBOX1Nl
dEV4Y2VwdGlvbjsKICAgICBtX2Jyb3dzZXJGdW5jcy5lbnVtZXJhdGUgPSBfTlBOX0VudW1lcmF0
ZTsKICAgICBtX2Jyb3dzZXJGdW5jcy5jb25zdHJ1Y3QgPSBfTlBOX0NvbnN0cnVjdDsKKyAgICBt
X2Jyb3dzZXJGdW5jcy5nZXR2YWx1ZWZvcnVybCA9IE5QTl9HZXRWYWx1ZUZvclVSTDsKKyAgICBt
X2Jyb3dzZXJGdW5jcy5zZXR2YWx1ZWZvcnVybCA9IE5QTl9TZXRWYWx1ZUZvclVSTDsKKyAgICBt
X2Jyb3dzZXJGdW5jcy5nZXRhdXRoZW50aWNhdGlvbmluZm8gPSBOUE5fR2V0QXV0aGVudGljYXRp
b25JbmZvOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGx1Z2lucy9ucGFwaS5j
cHAgYi9XZWJDb3JlL3BsdWdpbnMvbnBhcGkuY3BwCmluZGV4IDQxMzViNjQuLmY5MTQzMzcgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvcGx1Z2lucy9ucGFwaS5jcHAKKysrIGIvV2ViQ29yZS9wbHVnaW5z
L25wYXBpLmNwcApAQCAtMjUsMTEgKzI1LDIwIEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKIAor
I2luY2x1ZGUgIkNvb2tpZUphci5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiTm90
SW1wbGVtZW50ZWQuaCIKKyNpbmNsdWRlICJQbHVnaW5EZWJ1Zy5oIgogI2luY2x1ZGUgIlBsdWdp
bkluZm9TdG9yZS5oIgogI2luY2x1ZGUgIlBsdWdpbk1haW5UaHJlYWRTY2hlZHVsZXIuaCIKICNp
bmNsdWRlICJQbHVnaW5WaWV3LmgiCiAjaW5jbHVkZSAibnBydW50aW1lX2ludGVybmFsLmgiCiAK
KyNpZiBkZWZpbmVkKEJVSUxESU5HX1FUX18pCisjaW5jbHVkZSA8UU5ldHdvcmtQcm94eT4KKyNp
bmNsdWRlIDxRU3RyaW5nPgorI2VuZGlmCisKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiAv
LyBUaGUgcGx1Z2luIHZpZXcgaXMgYWx3YXlzIHRoZSBuZGF0YSBvZiB0aGUgaW5zdGFuY2UsLiBT
b21ldGltZXMsIHBsdWctaW5zIHdpbGwgY2FsbCBhbiBpbnN0YW5jZS1zcGVjaWZpYyBmdW5jdGlv
bgpAQCAtMTc1LDMgKzE4NCwxMTcgQEAgdm9pZCBOUE5fUGx1Z2luVGhyZWFkQXN5bmNDYWxsKE5Q
UCBpbnN0YW5jZSwgdm9pZCAoKmZ1bmMpICh2b2lkICopLCB2b2lkICp1c2VyRGEKIHsKICAgICBQ
bHVnaW5NYWluVGhyZWFkU2NoZWR1bGVyOjpzY2hlZHVsZXIoKS5zY2hlZHVsZUNhbGwoaW5zdGFu
Y2UsIGZ1bmMsIHVzZXJEYXRhKTsKIH0KKworTlBFcnJvciBOUE5fR2V0VmFsdWVGb3JVUkwoTlBQ
IGluc3RhbmNlLCBOUE5VUkxWYXJpYWJsZSB2YXJpYWJsZSwgY29uc3QgY2hhciogdXJsLCBjaGFy
KiogdmFsdWUsIHVpbnQzMiogbGVuKQoreworICAgIExPRyhQbHVnaW5zLCAiTlBOX0dldFZhbHVl
Rm9yVVJMIChucGFwaS5jcHApIC0tICVzLCB1cmw6ICVzIiwgcHJldHR5TmFtZUZvck5QTlZhcmlh
YmxlKHZhcmlhYmxlKSwgdXJsKTsKKyAgICBOUEVycm9yIGVycm9yID0gTlBFUlJfR0VORVJJQ19F
UlJPUjsKKyAgICBzd2l0Y2ggKHZhcmlhYmxlKSB7CisgICAgY2FzZSBOUE5VUkxWQ29va2llOiB7
CisgICAgICAgIGlmICghdmFsdWUpCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgS1VSTCBV
UkwgPSBLVVJMKFBhcnNlZFVSTFN0cmluZywgdXJsKTsgLy8gTlNVUkwgKlVSTCA9IFtzZWxmIFVS
TFdpdGhDU3RyaW5nOnVybF07CisgICAgICAgIGlmICghVVJMLmlzVmFsaWQoKSkKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBGcmFtZSogZnJhbWUgPSBwbHVnaW5WaWV3Rm9ySW5zdGFuY2Uo
aW5zdGFuY2UpLT5wYXJlbnRGcmFtZSgpOworICAgICAgICBpZiAoZnJhbWUpIHsKKyAgICAgICAg
ICAgIFN0cmluZyBjb29raWVTdHJpbmcgPSBjb29raWVzKGZyYW1lLT5kb2N1bWVudCgpLCBVUkwp
OworICAgICAgICAgICAgQ1N0cmluZyBjb29raWVTdHJpbmdVVEY4ID0gY29va2llU3RyaW5nLnV0
ZjgoKTsKKyAgICAgICAgICAgIGlmICghY29va2llU3RyaW5nVVRGOC5pc051bGwoKSkgeworICAg
ICAgICAgICAgICAgICp2YWx1ZSA9IHN0YXRpY19jYXN0PGNoYXIqPihOUE5fTWVtQWxsb2MoY29v
a2llU3RyaW5nVVRGOC5sZW5ndGgoKSsxKSk7CisgICAgICAgICAgICAgICAgc3RyY3B5KCp2YWx1
ZSwgY29va2llU3RyaW5nVVRGOC5kYXRhKCkpOworICAgICAgICAgICAgICAgIGlmIChsZW4pCisg
ICAgICAgICAgICAgICAgICAgICpsZW4gPSBzdHJsZW4oKnZhbHVlKTsKKyAgICAgICAgICAgICAg
ICBlcnJvciA9IE5QRVJSX05PX0VSUk9SOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAg
ICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlIE5QTlVSTFZQcm94eTogeworICAgICAgICBpZiAo
IXZhbHVlKQorICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgQ1N0cmluZyBwcm94eVVURjgg
PSAiRElSRUNUIjsgLy8gRGVmYXVsdCB0byBubyBwcm94eQorCisvLyBGSVhNRTogSXMgdGhlcmUg
YSBRdCBhZ25vc3RpYyB3YXkgdGhpcyBjYW4gYmUgZG9uZSBmb3IgV2ViS2l0PworI2lmIGRlZmlu
ZWQoQlVJTERJTkdfUVRfXykKKyAgICAgICAgTE9HKFBsdWdpbnMsICJOUE5fR2V0VmFsdWVGb3JV
UkwgKG5wYXBpLmNwcCkgLS0gZmV0Y2hpbmcgUHJveHkgZnJvbSBRTmV0d29ya1Byb3h5Iik7Cisg
ICAgICAgIFFOZXR3b3JrUHJveHkgcU5ldHdvcmtQcm94eSA9IFFOZXR3b3JrUHJveHk6OmFwcGxp
Y2F0aW9uUHJveHkoKTsKKyAgICAgICAgUVN0cmluZyBwcm94eSA9IFFTdHJpbmc6OmZyb21VdGY4
KHByb3h5VVRGOC5kYXRhKCksIHByb3h5VVRGOC5sZW5ndGgoKSk7CisKKyAgICAgICAgc3dpdGNo
IChxTmV0d29ya1Byb3h5LnR5cGUoKSkgeworICAgICAgICAgIGNhc2UgUU5ldHdvcmtQcm94eTo6
U29ja3M1UHJveHk6IHsKKyAgICAgICAgICAgICAgcHJveHkgPSBRTGF0aW4xU3RyaW5nKCJTT0NL
UyAiKTsKKyAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgfQorICAgICAgICAgIGNhc2Ug
UU5ldHdvcmtQcm94eTo6SHR0cFByb3h5OgorICAgICAgICAgIGNhc2UgUU5ldHdvcmtQcm94eTo6
SHR0cENhY2hpbmdQcm94eToKKyAgICAgICAgICBjYXNlIFFOZXR3b3JrUHJveHk6OkZ0cENhY2hp
bmdQcm94eTogeworICAgICAgICAgICAgICBwcm94eSA9IFFMYXRpbjFTdHJpbmcoIlBST1hZICIp
OworICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICB9CisgICAgICAgICAgY2FzZSBRTmV0
d29ya1Byb3h5OjpEZWZhdWx0UHJveHk6CisgICAgICAgICAgY2FzZSBRTmV0d29ya1Byb3h5OjpO
b1Byb3h5OgorICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChw
cm94eS5jb21wYXJlKFFMYXRpbjFTdHJpbmcoIkRJUkVDVCIpKSAhPSAwKSB7CisgICAgICAgICAg
ICBwcm94eSArPSBxTmV0d29ya1Byb3h5Lmhvc3ROYW1lKCk7CisgICAgICAgICAgICBpZiAocU5l
dHdvcmtQcm94eS5wb3J0KCkgPiAwKQorICAgICAgICAgICAgICAgIHByb3h5ICs9IFFTdHJpbmc6
OmZyb21MYXRpbjEoIjolMSIpLmFyZyhxTmV0d29ya1Byb3h5LnBvcnQoKSk7CisgICAgICAgIH0K
KworICAgICAgICBwcm94eVVURjggPSBwcm94eS50b1V0ZjgoKS5jb25zdERhdGEoKTsKKyNlbmRp
ZgorICAgICAgICBMT0coUGx1Z2lucywgIk5QTl9HZXRWYWx1ZUZvclVSTCAobnBhcGkuY3BwKSAt
LSBQcm94eSAlcyIsIHByb3h5VVRGOC5kYXRhKCkpOworCisgICAgICAgICp2YWx1ZSA9IHN0YXRp
Y19jYXN0PGNoYXIqPihOUE5fTWVtQWxsb2MocHJveHlVVEY4Lmxlbmd0aCgpKSk7CisgICAgICAg
IG1lbWNweSgqdmFsdWUsIHByb3h5VVRGOC5kYXRhKCksIHByb3h5VVRGOC5sZW5ndGgoKSk7CisK
KyAgICAgICAgaWYgKGxlbikKKyAgICAgICAgICAgICpsZW4gPSBwcm94eVVURjgubGVuZ3RoKCk7
CisKKyAgICAgICAgZXJyb3IgPSBOUEVSUl9OT19FUlJPUjsKKyAgICAgICAgYnJlYWs7CisgICAg
fQorICAgIH0KKworICAgIExPRyhQbHVnaW5zLCAiTlBOX0dldFZhbHVlRm9yVVJMIChucGFwaS5j
cHApIC0tIHJldHVybmluZyBOUEVSUl9HRU5FUklDX0VSUk9SIik7CisgICAgcmV0dXJuIGVycm9y
OworfQorCitOUEVycm9yIE5QTl9TZXRWYWx1ZUZvclVSTChOUFAgaW5zdGFuY2UsIE5QTlVSTFZh
cmlhYmxlIHZhcmlhYmxlLCBjb25zdCBjaGFyKiB1cmwsIGNvbnN0IGNoYXIqIHZhbHVlLCB1aW50
MzIgbGVuKQoreworICAgIExPRyhQbHVnaW5zLCAiTlBOX1NldFZhbHVlRm9yVVJMIChucGFwaS5j
cHApIC0tICVzLCB1cmw6ICVzLCB2YWx1ZTogJXMsIGxlbjogJWQiLCBwcmV0dHlOYW1lRm9yTlBO
VmFyaWFibGUodmFyaWFibGUpLCB1cmwsIHZhbHVlLCBsZW4pOworICAgIHN3aXRjaCAodmFyaWFi
bGUpIHsKKyAgICAgICAgY2FzZSBOUE5VUkxWQ29va2llOiB7CisgICAgICAgICAgICBLVVJMIFVS
TCA9IEtVUkwoUGFyc2VkVVJMU3RyaW5nLCB1cmwpOyAvLyBOU1VSTCAqVVJMID0gW3NlbGYgVVJM
V2l0aENTdHJpbmc6dXJsXTsKKyAgICAgICAgICAgIGlmICghVVJMLmlzRW1wdHkoKSkgeworICAg
ICAgICAgICAgICAgIFN0cmluZyBjb29raWVTdHJpbmcgPSBTdHJpbmc6OmZyb21VVEY4KHZhbHVl
LCBsZW4pOworICAgICAgICAgICAgICAgIExPRyhQbHVnaW5zLCAiTlBOX1NldFZhbHVlRm9yVVJM
IChucGFwaS5jcHApIC0tIENvb2tpZXM6ICVzIiwgY29va2llU3RyaW5nLmRhdGEoKSk7CisgICAg
ICAgICAgICAgICAgaWYgKCFjb29raWVTdHJpbmcuaXNFbXB0eSgpKSB7CisgICAgICAgICAgICAg
ICAgICAgIEZyYW1lKiBmcmFtZSA9IHBsdWdpblZpZXdGb3JJbnN0YW5jZShpbnN0YW5jZSktPnBh
cmVudEZyYW1lKCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChmcmFtZSkgeworICAgICAgICAg
ICAgICAgICAgICAgICAgc2V0Q29va2llcyhmcmFtZS0+ZG9jdW1lbnQoKSwgVVJMLCBjb29raWVT
dHJpbmcpOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE5QRVJSX05PX0VSUk9SOwor
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgY2FzZSBOUE5VUkxWUHJveHk6
CisgICAgICAgICAgICBMT0coUGx1Z2lucywgIk5QTl9TZXRWYWx1ZUZvclVSTCAobnBhcGkuY3Bw
KSAtLSBwbHVnLWlucyB0cnlpbmcgdG8gc2V0IFdlYktpdCdzIHByb3h5IGlzIG5vdCBhbGxvd2Vk
ISIpOworICAgICAgICAgICAgLy8gQ2FuJ3Qgc2V0IHRoZSBwcm94eSBmb3IgYSBVUkwuCisgICAg
ICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICBMT0coUGx1Z2lucywgIk5QTl9TZXRWYWx1ZUZv
clVSTCAobnBhcGkuY3BwKSAtLSByZXR1cm5pbmcgTlBFUlJfR0VORVJJQ19FUlJPUiIpOworICAg
IHJldHVybiBOUEVSUl9HRU5FUklDX0VSUk9SOworfQorCitOUEVycm9yIE5QTl9HZXRBdXRoZW50
aWNhdGlvbkluZm8oTlBQIGluc3RhbmNlLCBjb25zdCBjaGFyKiBwcm90b2NvbCwgY29uc3QgY2hh
ciogaG9zdCwgaW50MzIgcG9ydCwgY29uc3QgY2hhciogc2NoZW1lLCBjb25zdCBjaGFyICpyZWFs
bSwgY2hhcioqIHVzZXJuYW1lLCB1aW50MzIqIHVsZW4sIGNoYXIqKiBwYXNzd29yZCwgdWludDMy
KiBwbGVuKQoreworICAgIC8vIFVuc3VwcG9ydGVkCisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICByZXR1cm4gTlBFUlJfR0VORVJJQ19FUlJPUjsKK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm
aWxlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55694</attachid>
            <date>2010-05-11 06:18:42 -0700</date>
            <delta_ts>2010-05-11 11:50:22 -0700</delta_ts>
            <desc>Implements NPN_GetValueForURL and NPN_SetValueForURL, stub for NPN_GetAuthenticationInfo [Update III]</desc>
            <filename>qtwebkit_npn_api_changes_3.patch</filename>
            <type>text/plain</type>
            <size>7104</size>
            <attacher name="Dawit A.">adawit</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MjNkZDQ4Yy4uMTA3Yjk4ZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxMC0wNS0xMCAgRGF3aXQgQWxlbWF5
ZWh1ICA8YWRhd2l0QGtkZS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgSW1wbGVtZW50IE5QTl97R2V0fFNldH1WYWx1ZUZvclVSTCwgcHJvdmlk
ZSBhIHBsYWNlaG9sZGVyIHN0dWIgZm9yIE5QTl9HZXRBdXRoZW50aWNhdGlvbkluZm8sCisgICAg
ICAgIGFuZCBhZGQgY29kZSB0byBsb2NhdGUgdGhlIEphdmEgUGx1Zy1pbiBETEwgb24gV2luZG93
cyB2aWEgdGhlIHJlZ2lzdHJ5LgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0zNDUzOQorCisgICAgICAgICogcGx1Z2lucy9QbHVnaW5QYWNrYWdlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblBhY2thZ2U6OmluaXRpYWxpemVCcm93c2VyRnVu
Y3MpOgorICAgICAgICAqIHBsdWdpbnMvbnBhcGkuY3BwOgorICAgICAgICAoTlBOX0dldFZhbHVl
Rm9yVVJMKToKKyAgICAgICAgKE5QTl9TZXRWYWx1ZUZvclVSTCk6CisgICAgICAgIChOUE5fR2V0
QXV0aGVudGljYXRpb25JbmZvKToKKwogMjAxMC0wNS0wNiAgTGFzemxvIEdvbWJvcyAgPGxhc3ps
by4xLmdvbWJvc0Bub2tpYS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgYnVpbGQgZml4IFdp
bkNFIGZvciBRdFdlYktpdC4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5QYWNr
YWdlLmNwcCBiL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5QYWNrYWdlLmNwcAppbmRleCBhZDAzZWNk
Li44NWQwZGNhIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luUGFja2FnZS5jcHAK
KysrIGIvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblBhY2thZ2UuY3BwCkBAIC0zMDEsNiArMzAxLDkg
QEAgdm9pZCBQbHVnaW5QYWNrYWdlOjppbml0aWFsaXplQnJvd3NlckZ1bmNzKCkKICAgICBtX2Jy
b3dzZXJGdW5jcy5zZXRleGNlcHRpb24gPSBfTlBOX1NldEV4Y2VwdGlvbjsKICAgICBtX2Jyb3dz
ZXJGdW5jcy5lbnVtZXJhdGUgPSBfTlBOX0VudW1lcmF0ZTsKICAgICBtX2Jyb3dzZXJGdW5jcy5j
b25zdHJ1Y3QgPSBfTlBOX0NvbnN0cnVjdDsKKyAgICBtX2Jyb3dzZXJGdW5jcy5nZXR2YWx1ZWZv
cnVybCA9IE5QTl9HZXRWYWx1ZUZvclVSTDsKKyAgICBtX2Jyb3dzZXJGdW5jcy5zZXR2YWx1ZWZv
cnVybCA9IE5QTl9TZXRWYWx1ZUZvclVSTDsKKyAgICBtX2Jyb3dzZXJGdW5jcy5nZXRhdXRoZW50
aWNhdGlvbmluZm8gPSBOUE5fR2V0QXV0aGVudGljYXRpb25JbmZvOwogfQogI2VuZGlmCiAKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvcGx1Z2lucy9ucGFwaS5jcHAgYi9XZWJDb3JlL3BsdWdpbnMvbnBh
cGkuY3BwCmluZGV4IDQxMzViNjQuLjVlZmIwNjggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGx1Z2lu
cy9ucGFwaS5jcHAKKysrIGIvV2ViQ29yZS9wbHVnaW5zL25wYXBpLmNwcApAQCAtMjUsMTEgKzI1
LDM0IEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKIAorI2luY2x1ZGUgIkNvb2tpZUphci5oIgor
I2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKyNpbmNsdWRl
ICJQbHVnaW5EZWJ1Zy5oIgogI2luY2x1ZGUgIlBsdWdpbkluZm9TdG9yZS5oIgogI2luY2x1ZGUg
IlBsdWdpbk1haW5UaHJlYWRTY2hlZHVsZXIuaCIKICNpbmNsdWRlICJQbHVnaW5WaWV3LmgiCiAj
aW5jbHVkZSAibnBydW50aW1lX2ludGVybmFsLmgiCiAKKyNpZiBkZWZpbmVkKEJVSUxESU5HX1FU
X18pCisjaW5jbHVkZSA8UU5ldHdvcmtQcm94eT4KKyNpbmNsdWRlIDxRU3RyaW5nPgorI2VuZGlm
CisKKy8vIEZJWE1FOiBUaGlzIGlzIGFkZGVkIHRvIHdvcmsgYXJvdW5kIGJ1aWxkIGZhaWx1cmUg
YnkgdGhlIHF0L2d0ayBidWlsZCBib2F0cy4KKy8vIFNlZSBjb21tZW50cyAjIDExLDE0ICYgMTUg
b2YgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM0NTM5LgorI2lmbmRl
ZiBfSU5UMzIKKyNkZWZpbmUgX0lOVDMyCisjaWZkZWYgX19MUDY0X18KK3R5cGVkZWYgaW50IGlu
dDMyOwordHlwZWRlZiB1bnNpZ25lZCBpbnQgdWludDMyOworI2Vsc2UgLyogX19MUDY0X18gKi8K
K3R5cGVkZWYgbG9uZyBpbnQzMjsKK3R5cGVkZWYgdW5zaWduZWQgbG9uZyB1aW50MzI7CisjZW5k
aWYgLyogX19MUDY0X18gKi8KKyNlbmRpZgorCisKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwog
CiAvLyBUaGUgcGx1Z2luIHZpZXcgaXMgYWx3YXlzIHRoZSBuZGF0YSBvZiB0aGUgaW5zdGFuY2Us
LiBTb21ldGltZXMsIHBsdWctaW5zIHdpbGwgY2FsbCBhbiBpbnN0YW5jZS1zcGVjaWZpYyBmdW5j
dGlvbgpAQCAtMTc1LDMgKzE5OCwxMTcgQEAgdm9pZCBOUE5fUGx1Z2luVGhyZWFkQXN5bmNDYWxs
KE5QUCBpbnN0YW5jZSwgdm9pZCAoKmZ1bmMpICh2b2lkICopLCB2b2lkICp1c2VyRGEKIHsKICAg
ICBQbHVnaW5NYWluVGhyZWFkU2NoZWR1bGVyOjpzY2hlZHVsZXIoKS5zY2hlZHVsZUNhbGwoaW5z
dGFuY2UsIGZ1bmMsIHVzZXJEYXRhKTsKIH0KKworTlBFcnJvciBOUE5fR2V0VmFsdWVGb3JVUkwo
TlBQIGluc3RhbmNlLCBOUE5VUkxWYXJpYWJsZSB2YXJpYWJsZSwgY29uc3QgY2hhciogdXJsLCBj
aGFyKiogdmFsdWUsIHVpbnQzMiogbGVuKQoreworICAgIExPRyhQbHVnaW5zLCAiTlBOX0dldFZh
bHVlRm9yVVJMIChucGFwaS5jcHApIC0tICVzLCB1cmw6ICVzIiwgcHJldHR5TmFtZUZvck5QTlZh
cmlhYmxlKHZhcmlhYmxlKSwgdXJsKTsKKyAgICBOUEVycm9yIGVycm9yID0gTlBFUlJfR0VORVJJ
Q19FUlJPUjsKKyAgICBzd2l0Y2ggKHZhcmlhYmxlKSB7CisgICAgY2FzZSBOUE5VUkxWQ29va2ll
OiB7CisgICAgICAgIGlmICghdmFsdWUpCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgS1VS
TCBVUkwgPSBLVVJMKFBhcnNlZFVSTFN0cmluZywgdXJsKTsgLy8gTlNVUkwgKlVSTCA9IFtzZWxm
IFVSTFdpdGhDU3RyaW5nOnVybF07CisgICAgICAgIGlmICghVVJMLmlzVmFsaWQoKSkKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBGcmFtZSogZnJhbWUgPSBwbHVnaW5WaWV3Rm9ySW5zdGFu
Y2UoaW5zdGFuY2UpLT5wYXJlbnRGcmFtZSgpOworICAgICAgICBpZiAoZnJhbWUpIHsKKyAgICAg
ICAgICAgIFN0cmluZyBjb29raWVTdHJpbmcgPSBjb29raWVzKGZyYW1lLT5kb2N1bWVudCgpLCBV
UkwpOworICAgICAgICAgICAgQ1N0cmluZyBjb29raWVTdHJpbmdVVEY4ID0gY29va2llU3RyaW5n
LnV0ZjgoKTsKKyAgICAgICAgICAgIGlmICghY29va2llU3RyaW5nVVRGOC5pc051bGwoKSkgewor
ICAgICAgICAgICAgICAgICp2YWx1ZSA9IHN0YXRpY19jYXN0PGNoYXIqPihOUE5fTWVtQWxsb2Mo
Y29va2llU3RyaW5nVVRGOC5sZW5ndGgoKSsxKSk7CisgICAgICAgICAgICAgICAgc3RyY3B5KCp2
YWx1ZSwgY29va2llU3RyaW5nVVRGOC5kYXRhKCkpOworICAgICAgICAgICAgICAgIGlmIChsZW4p
CisgICAgICAgICAgICAgICAgICAgICpsZW4gPSBzdHJsZW4oKnZhbHVlKTsKKyAgICAgICAgICAg
ICAgICBlcnJvciA9IE5QRVJSX05PX0VSUk9SOworICAgICAgICAgICAgfQorICAgICAgICB9Cisg
ICAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlIE5QTlVSTFZQcm94eTogeworICAgICAgICBp
ZiAoIXZhbHVlKQorICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgQ1N0cmluZyBwcm94eVVU
RjggPSAiRElSRUNUIjsgLy8gRGVmYXVsdCB0byBubyBwcm94eQorCisvLyBGSVhNRTogSXMgdGhl
cmUgYSBRdCBhZ25vc3RpYyB3YXkgdGhpcyBjYW4gYmUgZG9uZSBmb3IgV2ViS2l0PworI2lmIGRl
ZmluZWQoQlVJTERJTkdfUVRfXykKKyAgICAgICAgTE9HKFBsdWdpbnMsICJOUE5fR2V0VmFsdWVG
b3JVUkwgKG5wYXBpLmNwcCkgLS0gZmV0Y2hpbmcgUHJveHkgZnJvbSBRTmV0d29ya1Byb3h5Iik7
CisgICAgICAgIFFOZXR3b3JrUHJveHkgcU5ldHdvcmtQcm94eSA9IFFOZXR3b3JrUHJveHk6OmFw
cGxpY2F0aW9uUHJveHkoKTsKKyAgICAgICAgUVN0cmluZyBwcm94eSA9IFFTdHJpbmc6OmZyb21V
dGY4KHByb3h5VVRGOC5kYXRhKCksIHByb3h5VVRGOC5sZW5ndGgoKSk7CisKKyAgICAgICAgc3dp
dGNoIChxTmV0d29ya1Byb3h5LnR5cGUoKSkgeworICAgICAgICAgIGNhc2UgUU5ldHdvcmtQcm94
eTo6U29ja3M1UHJveHk6IHsKKyAgICAgICAgICAgICAgcHJveHkgPSBRTGF0aW4xU3RyaW5nKCJT
T0NLUyAiKTsKKyAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgfQorICAgICAgICAgIGNh
c2UgUU5ldHdvcmtQcm94eTo6SHR0cFByb3h5OgorICAgICAgICAgIGNhc2UgUU5ldHdvcmtQcm94
eTo6SHR0cENhY2hpbmdQcm94eToKKyAgICAgICAgICBjYXNlIFFOZXR3b3JrUHJveHk6OkZ0cENh
Y2hpbmdQcm94eTogeworICAgICAgICAgICAgICBwcm94eSA9IFFMYXRpbjFTdHJpbmcoIlBST1hZ
ICIpOworICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICB9CisgICAgICAgICAgY2FzZSBR
TmV0d29ya1Byb3h5OjpEZWZhdWx0UHJveHk6CisgICAgICAgICAgY2FzZSBRTmV0d29ya1Byb3h5
OjpOb1Byb3h5OgorICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIGlm
IChwcm94eS5jb21wYXJlKFFMYXRpbjFTdHJpbmcoIkRJUkVDVCIpKSAhPSAwKSB7CisgICAgICAg
ICAgICBwcm94eSArPSBxTmV0d29ya1Byb3h5Lmhvc3ROYW1lKCk7CisgICAgICAgICAgICBpZiAo
cU5ldHdvcmtQcm94eS5wb3J0KCkgPiAwKQorICAgICAgICAgICAgICAgIHByb3h5ICs9IFFTdHJp
bmc6OmZyb21MYXRpbjEoIjolMSIpLmFyZyhxTmV0d29ya1Byb3h5LnBvcnQoKSk7CisgICAgICAg
IH0KKworICAgICAgICBwcm94eVVURjggPSBwcm94eS50b1V0ZjgoKS5jb25zdERhdGEoKTsKKyNl
bmRpZgorICAgICAgICBMT0coUGx1Z2lucywgIk5QTl9HZXRWYWx1ZUZvclVSTCAobnBhcGkuY3Bw
KSAtLSBQcm94eSAlcyIsIHByb3h5VVRGOC5kYXRhKCkpOworCisgICAgICAgICp2YWx1ZSA9IHN0
YXRpY19jYXN0PGNoYXIqPihOUE5fTWVtQWxsb2MocHJveHlVVEY4Lmxlbmd0aCgpKSk7CisgICAg
ICAgIG1lbWNweSgqdmFsdWUsIHByb3h5VVRGOC5kYXRhKCksIHByb3h5VVRGOC5sZW5ndGgoKSk7
CisKKyAgICAgICAgaWYgKGxlbikKKyAgICAgICAgICAgICpsZW4gPSBwcm94eVVURjgubGVuZ3Ro
KCk7CisKKyAgICAgICAgZXJyb3IgPSBOUEVSUl9OT19FUlJPUjsKKyAgICAgICAgYnJlYWs7Cisg
ICAgfQorICAgIH0KKworICAgIExPRyhQbHVnaW5zLCAiTlBOX0dldFZhbHVlRm9yVVJMIChucGFw
aS5jcHApIC0tIHJldHVybmluZyBOUEVSUl9HRU5FUklDX0VSUk9SIik7CisgICAgcmV0dXJuIGVy
cm9yOworfQorCitOUEVycm9yIE5QTl9TZXRWYWx1ZUZvclVSTChOUFAgaW5zdGFuY2UsIE5QTlVS
TFZhcmlhYmxlIHZhcmlhYmxlLCBjb25zdCBjaGFyKiB1cmwsIGNvbnN0IGNoYXIqIHZhbHVlLCB1
aW50MzIgbGVuKQoreworICAgIExPRyhQbHVnaW5zLCAiTlBOX1NldFZhbHVlRm9yVVJMIChucGFw
aS5jcHApIC0tICVzLCB1cmw6ICVzLCB2YWx1ZTogJXMsIGxlbjogJWQiLCBwcmV0dHlOYW1lRm9y
TlBOVmFyaWFibGUodmFyaWFibGUpLCB1cmwsIHZhbHVlLCBsZW4pOworICAgIHN3aXRjaCAodmFy
aWFibGUpIHsKKyAgICAgICAgY2FzZSBOUE5VUkxWQ29va2llOiB7CisgICAgICAgICAgICBLVVJM
IFVSTCA9IEtVUkwoUGFyc2VkVVJMU3RyaW5nLCB1cmwpOyAvLyBOU1VSTCAqVVJMID0gW3NlbGYg
VVJMV2l0aENTdHJpbmc6dXJsXTsKKyAgICAgICAgICAgIGlmICghVVJMLmlzRW1wdHkoKSkgewor
ICAgICAgICAgICAgICAgIFN0cmluZyBjb29raWVTdHJpbmcgPSBTdHJpbmc6OmZyb21VVEY4KHZh
bHVlLCBsZW4pOworICAgICAgICAgICAgICAgIExPRyhQbHVnaW5zLCAiTlBOX1NldFZhbHVlRm9y
VVJMIChucGFwaS5jcHApIC0tIENvb2tpZXM6ICVzIiwgY29va2llU3RyaW5nLmRhdGEoKSk7Cisg
ICAgICAgICAgICAgICAgaWYgKCFjb29raWVTdHJpbmcuaXNFbXB0eSgpKSB7CisgICAgICAgICAg
ICAgICAgICAgIEZyYW1lKiBmcmFtZSA9IHBsdWdpblZpZXdGb3JJbnN0YW5jZShpbnN0YW5jZSkt
PnBhcmVudEZyYW1lKCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChmcmFtZSkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgc2V0Q29va2llcyhmcmFtZS0+ZG9jdW1lbnQoKSwgVVJMLCBjb29r
aWVTdHJpbmcpOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE5QRVJSX05PX0VSUk9S
OworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
fQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgY2FzZSBOUE5VUkxWUHJv
eHk6CisgICAgICAgICAgICBMT0coUGx1Z2lucywgIk5QTl9TZXRWYWx1ZUZvclVSTCAobnBhcGku
Y3BwKSAtLSBwbHVnLWlucyB0cnlpbmcgdG8gc2V0IFdlYktpdCdzIHByb3h5IGlzIG5vdCBhbGxv
d2VkISIpOworICAgICAgICAgICAgLy8gQ2FuJ3Qgc2V0IHRoZSBwcm94eSBmb3IgYSBVUkwuCisg
ICAgICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICBMT0coUGx1Z2lucywgIk5QTl9TZXRWYWx1
ZUZvclVSTCAobnBhcGkuY3BwKSAtLSByZXR1cm5pbmcgTlBFUlJfR0VORVJJQ19FUlJPUiIpOwor
ICAgIHJldHVybiBOUEVSUl9HRU5FUklDX0VSUk9SOworfQorCitOUEVycm9yIE5QTl9HZXRBdXRo
ZW50aWNhdGlvbkluZm8oTlBQIGluc3RhbmNlLCBjb25zdCBjaGFyKiBwcm90b2NvbCwgY29uc3Qg
Y2hhciogaG9zdCwgaW50MzIgcG9ydCwgY29uc3QgY2hhciogc2NoZW1lLCBjb25zdCBjaGFyICpy
ZWFsbSwgY2hhcioqIHVzZXJuYW1lLCB1aW50MzIqIHVsZW4sIGNoYXIqKiBwYXNzd29yZCwgdWlu
dDMyKiBwbGVuKQoreworICAgIC8vIFVuc3VwcG9ydGVkCisgICAgbm90SW1wbGVtZW50ZWQoKTsK
KyAgICByZXR1cm4gTlBFUlJfR0VORVJJQ19FUlJPUjsKK30K
</data>
<flag name="review"
          id="39947"
          type_id="1"
          status="-"
          setter="andersca"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55729</attachid>
            <date>2010-05-11 11:50:22 -0700</date>
            <delta_ts>2010-08-20 22:44:45 -0700</delta_ts>
            <desc>Implement NPN_GetValueForURL and NPN_SetValueForURL and provide a stub for NPN_GetAuthenticationInfo [Update IV]...</desc>
            <filename>qtwebkit_npapi_changes_4.patch</filename>
            <type>text/plain</type>
            <size>6672</size>
            <attacher name="Dawit A.">adawit</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MjNkZDQ4Yy4uMTA3Yjk4ZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxMC0wNS0xMCAgRGF3aXQgQWxlbWF5
ZWh1ICA8YWRhd2l0QGtkZS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgSW1wbGVtZW50IE5QTl97R2V0fFNldH1WYWx1ZUZvclVSTCwgcHJvdmlk
ZSBhIHBsYWNlaG9sZGVyIHN0dWIgZm9yCisgICAgICAgIE5QTl9HZXRBdXRoZW50aWNhdGlvbklu
Zm8sCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM0
NTM5CisKKyAgICAgICAgKiBwbHVnaW5zL1BsdWdpblBhY2thZ2UuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UGx1Z2luUGFja2FnZTo6aW5pdGlhbGl6ZUJyb3dzZXJGdW5jcyk6CisgICAgICAgICog
cGx1Z2lucy9ucGFwaS5jcHA6CisgICAgICAgIChOUE5fR2V0VmFsdWVGb3JVUkwpOgorICAgICAg
ICAoTlBOX1NldFZhbHVlRm9yVVJMKToKKyAgICAgICAgKE5QTl9HZXRBdXRoZW50aWNhdGlvbklu
Zm8pOgorCiAyMDEwLTA1LTA2ICBMYXN6bG8gR29tYm9zICA8bGFzemxvLjEuZ29tYm9zQG5va2lh
LmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCBidWlsZCBmaXggV2luQ0UgZm9yIFF0V2ViS2l0
LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblBhY2thZ2UuY3BwIGIvV2ViQ29y
ZS9wbHVnaW5zL1BsdWdpblBhY2thZ2UuY3BwCmluZGV4IGFkMDNlY2QuLjg1ZDBkY2EgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5QYWNrYWdlLmNwcAorKysgYi9XZWJDb3JlL3Bs
dWdpbnMvUGx1Z2luUGFja2FnZS5jcHAKQEAgLTMwMSw2ICszMDEsOSBAQCB2b2lkIFBsdWdpblBh
Y2thZ2U6OmluaXRpYWxpemVCcm93c2VyRnVuY3MoKQogICAgIG1fYnJvd3NlckZ1bmNzLnNldGV4
Y2VwdGlvbiA9IF9OUE5fU2V0RXhjZXB0aW9uOwogICAgIG1fYnJvd3NlckZ1bmNzLmVudW1lcmF0
ZSA9IF9OUE5fRW51bWVyYXRlOwogICAgIG1fYnJvd3NlckZ1bmNzLmNvbnN0cnVjdCA9IF9OUE5f
Q29uc3RydWN0OworICAgIG1fYnJvd3NlckZ1bmNzLmdldHZhbHVlZm9ydXJsID0gTlBOX0dldFZh
bHVlRm9yVVJMOworICAgIG1fYnJvd3NlckZ1bmNzLnNldHZhbHVlZm9ydXJsID0gTlBOX1NldFZh
bHVlRm9yVVJMOworICAgIG1fYnJvd3NlckZ1bmNzLmdldGF1dGhlbnRpY2F0aW9uaW5mbyA9IE5Q
Tl9HZXRBdXRoZW50aWNhdGlvbkluZm87CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9wbHVnaW5zL25wYXBpLmNwcCBiL1dlYkNvcmUvcGx1Z2lucy9ucGFwaS5jcHAKaW5kZXggNDEz
NWI2NC4uNzIyMTlmNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbHVnaW5zL25wYXBpLmNwcAorKysg
Yi9XZWJDb3JlL3BsdWdpbnMvbnBhcGkuY3BwCkBAIC0yNSwxMSArMjUsMjAgQEAKIAogI2luY2x1
ZGUgImNvbmZpZy5oIgogCisjaW5jbHVkZSAiQ29va2llSmFyLmgiCisjaW5jbHVkZSAiRnJhbWUu
aCIKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgIlBsdWdpbkRlYnVnLmgi
CiAjaW5jbHVkZSAiUGx1Z2luSW5mb1N0b3JlLmgiCiAjaW5jbHVkZSAiUGx1Z2luTWFpblRocmVh
ZFNjaGVkdWxlci5oIgogI2luY2x1ZGUgIlBsdWdpblZpZXcuaCIKICNpbmNsdWRlICJucHJ1bnRp
bWVfaW50ZXJuYWwuaCIKIAorI2lmIGRlZmluZWQoQlVJTERJTkdfUVRfXykKKyNpbmNsdWRlIDxR
TmV0d29ya1Byb3h5PgorI2luY2x1ZGUgPFFTdHJpbmc+CisjZW5kaWYKKwogdXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CiAKIC8vIFRoZSBwbHVnaW4gdmlldyBpcyBhbHdheXMgdGhlIG5kYXRhIG9m
IHRoZSBpbnN0YW5jZSwuIFNvbWV0aW1lcywgcGx1Zy1pbnMgd2lsbCBjYWxsIGFuIGluc3RhbmNl
LXNwZWNpZmljIGZ1bmN0aW9uCkBAIC0xNzUsMyArMTg0LDExNyBAQCB2b2lkIE5QTl9QbHVnaW5U
aHJlYWRBc3luY0NhbGwoTlBQIGluc3RhbmNlLCB2b2lkICgqZnVuYykgKHZvaWQgKiksIHZvaWQg
KnVzZXJEYQogewogICAgIFBsdWdpbk1haW5UaHJlYWRTY2hlZHVsZXI6OnNjaGVkdWxlcigpLnNj
aGVkdWxlQ2FsbChpbnN0YW5jZSwgZnVuYywgdXNlckRhdGEpOwogfQorCitOUEVycm9yIE5QTl9H
ZXRWYWx1ZUZvclVSTChOUFAgaW5zdGFuY2UsIE5QTlVSTFZhcmlhYmxlIHZhcmlhYmxlLCBjb25z
dCBjaGFyKiB1cmwsIGNoYXIqKiB2YWx1ZSwgdWludDMyX3QqIGxlbikKK3sKKyAgICBMT0coUGx1
Z2lucywgIk5QTl9HZXRWYWx1ZUZvclVSTCAobnBhcGkuY3BwKSAtLSAlcywgdXJsOiAlcyIsIHBy
ZXR0eU5hbWVGb3JOUE5WYXJpYWJsZSh2YXJpYWJsZSksIHVybCk7CisgICAgTlBFcnJvciBlcnJv
ciA9IE5QRVJSX0dFTkVSSUNfRVJST1I7CisgICAgc3dpdGNoICh2YXJpYWJsZSkgeworICAgIGNh
c2UgTlBOVVJMVkNvb2tpZTogeworICAgICAgICBpZiAoIXZhbHVlKQorICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIEtVUkwgVVJMID0gS1VSTChQYXJzZWRVUkxTdHJpbmcsIHVybCk7IC8vIE5T
VVJMICpVUkwgPSBbc2VsZiBVUkxXaXRoQ1N0cmluZzp1cmxdOworICAgICAgICBpZiAoIVVSTC5p
c1ZhbGlkKCkpCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgRnJhbWUqIGZyYW1lID0gcGx1
Z2luVmlld0Zvckluc3RhbmNlKGluc3RhbmNlKS0+cGFyZW50RnJhbWUoKTsKKyAgICAgICAgaWYg
KGZyYW1lKSB7CisgICAgICAgICAgICBTdHJpbmcgY29va2llU3RyaW5nID0gY29va2llcyhmcmFt
ZS0+ZG9jdW1lbnQoKSwgVVJMKTsKKyAgICAgICAgICAgIENTdHJpbmcgY29va2llU3RyaW5nVVRG
OCA9IGNvb2tpZVN0cmluZy51dGY4KCk7CisgICAgICAgICAgICBpZiAoIWNvb2tpZVN0cmluZ1VU
RjguaXNOdWxsKCkpIHsKKyAgICAgICAgICAgICAgICAqdmFsdWUgPSBzdGF0aWNfY2FzdDxjaGFy
Kj4oTlBOX01lbUFsbG9jKGNvb2tpZVN0cmluZ1VURjgubGVuZ3RoKCkrMSkpOworICAgICAgICAg
ICAgICAgIHN0cmNweSgqdmFsdWUsIGNvb2tpZVN0cmluZ1VURjguZGF0YSgpKTsKKyAgICAgICAg
ICAgICAgICBpZiAobGVuKQorICAgICAgICAgICAgICAgICAgICAqbGVuID0gc3RybGVuKCp2YWx1
ZSk7CisgICAgICAgICAgICAgICAgZXJyb3IgPSBOUEVSUl9OT19FUlJPUjsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICB9CisgICAgY2FzZSBOUE5VUkxWUHJv
eHk6IHsKKyAgICAgICAgaWYgKCF2YWx1ZSkKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAg
IENTdHJpbmcgcHJveHlVVEY4ID0gIkRJUkVDVCI7IC8vIERlZmF1bHQgdG8gbm8gcHJveHkKKwor
Ly8gRklYTUU6IElzIHRoZXJlIGEgUXQgYWdub3N0aWMgd2F5IHRoaXMgY2FuIGJlIGRvbmUgZm9y
IFdlYktpdD8KKyNpZiBkZWZpbmVkKEJVSUxESU5HX1FUX18pCisgICAgICAgIExPRyhQbHVnaW5z
LCAiTlBOX0dldFZhbHVlRm9yVVJMIChucGFwaS5jcHApIC0tIGZldGNoaW5nIFByb3h5IGZyb20g
UU5ldHdvcmtQcm94eSIpOworICAgICAgICBRTmV0d29ya1Byb3h5IHFOZXR3b3JrUHJveHkgPSBR
TmV0d29ya1Byb3h5OjphcHBsaWNhdGlvblByb3h5KCk7CisgICAgICAgIFFTdHJpbmcgcHJveHkg
PSBRU3RyaW5nOjpmcm9tVXRmOChwcm94eVVURjguZGF0YSgpLCBwcm94eVVURjgubGVuZ3RoKCkp
OworCisgICAgICAgIHN3aXRjaCAocU5ldHdvcmtQcm94eS50eXBlKCkpIHsKKyAgICAgICAgICBj
YXNlIFFOZXR3b3JrUHJveHk6OlNvY2tzNVByb3h5OiB7CisgICAgICAgICAgICAgIHByb3h5ID0g
UUxhdGluMVN0cmluZygiU09DS1MgIik7CisgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
IH0KKyAgICAgICAgICBjYXNlIFFOZXR3b3JrUHJveHk6Okh0dHBQcm94eToKKyAgICAgICAgICBj
YXNlIFFOZXR3b3JrUHJveHk6Okh0dHBDYWNoaW5nUHJveHk6CisgICAgICAgICAgY2FzZSBRTmV0
d29ya1Byb3h5OjpGdHBDYWNoaW5nUHJveHk6IHsKKyAgICAgICAgICAgICAgcHJveHkgPSBRTGF0
aW4xU3RyaW5nKCJQUk9YWSAiKTsKKyAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgfQor
ICAgICAgICAgIGNhc2UgUU5ldHdvcmtQcm94eTo6RGVmYXVsdFByb3h5OgorICAgICAgICAgIGNh
c2UgUU5ldHdvcmtQcm94eTo6Tm9Qcm94eToKKyAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IH0KKworICAgICAgICBpZiAocHJveHkuY29tcGFyZShRTGF0aW4xU3RyaW5nKCJESVJFQ1QiKSkg
IT0gMCkgeworICAgICAgICAgICAgcHJveHkgKz0gcU5ldHdvcmtQcm94eS5ob3N0TmFtZSgpOwor
ICAgICAgICAgICAgaWYgKHFOZXR3b3JrUHJveHkucG9ydCgpID4gMCkKKyAgICAgICAgICAgICAg
ICBwcm94eSArPSBRU3RyaW5nOjpmcm9tTGF0aW4xKCI6JTEiKS5hcmcocU5ldHdvcmtQcm94eS5w
b3J0KCkpOworICAgICAgICB9CisKKyAgICAgICAgcHJveHlVVEY4ID0gcHJveHkudG9VdGY4KCku
Y29uc3REYXRhKCk7CisjZW5kaWYKKyAgICAgICAgTE9HKFBsdWdpbnMsICJOUE5fR2V0VmFsdWVG
b3JVUkwgKG5wYXBpLmNwcCkgLS0gUHJveHkgJXMiLCBwcm94eVVURjguZGF0YSgpKTsKKworICAg
ICAgICAqdmFsdWUgPSBzdGF0aWNfY2FzdDxjaGFyKj4oTlBOX01lbUFsbG9jKHByb3h5VVRGOC5s
ZW5ndGgoKSkpOworICAgICAgICBtZW1jcHkoKnZhbHVlLCBwcm94eVVURjguZGF0YSgpLCBwcm94
eVVURjgubGVuZ3RoKCkpOworCisgICAgICAgIGlmIChsZW4pCisgICAgICAgICAgICAqbGVuID0g
cHJveHlVVEY4Lmxlbmd0aCgpOworCisgICAgICAgIGVycm9yID0gTlBFUlJfTk9fRVJST1I7Cisg
ICAgICAgIGJyZWFrOworICAgIH0KKyAgICB9CisKKyAgICBMT0coUGx1Z2lucywgIk5QTl9HZXRW
YWx1ZUZvclVSTCAobnBhcGkuY3BwKSAtLSByZXR1cm5pbmcgTlBFUlJfR0VORVJJQ19FUlJPUiIp
OworICAgIHJldHVybiBlcnJvcjsKK30KKworTlBFcnJvciBOUE5fU2V0VmFsdWVGb3JVUkwoTlBQ
IGluc3RhbmNlLCBOUE5VUkxWYXJpYWJsZSB2YXJpYWJsZSwgY29uc3QgY2hhciogdXJsLCBjb25z
dCBjaGFyKiB2YWx1ZSwgdWludDMyX3QgbGVuKQoreworICAgIExPRyhQbHVnaW5zLCAiTlBOX1Nl
dFZhbHVlRm9yVVJMIChucGFwaS5jcHApIC0tICVzLCB1cmw6ICVzLCB2YWx1ZTogJXMsIGxlbjog
JWQiLCBwcmV0dHlOYW1lRm9yTlBOVmFyaWFibGUodmFyaWFibGUpLCB1cmwsIHZhbHVlLCBsZW4p
OworICAgIHN3aXRjaCAodmFyaWFibGUpIHsKKyAgICAgICAgY2FzZSBOUE5VUkxWQ29va2llOiB7
CisgICAgICAgICAgICBLVVJMIFVSTCA9IEtVUkwoUGFyc2VkVVJMU3RyaW5nLCB1cmwpOyAvLyBO
U1VSTCAqVVJMID0gW3NlbGYgVVJMV2l0aENTdHJpbmc6dXJsXTsKKyAgICAgICAgICAgIGlmICgh
VVJMLmlzRW1wdHkoKSkgeworICAgICAgICAgICAgICAgIFN0cmluZyBjb29raWVTdHJpbmcgPSBT
dHJpbmc6OmZyb21VVEY4KHZhbHVlLCBsZW4pOworICAgICAgICAgICAgICAgIExPRyhQbHVnaW5z
LCAiTlBOX1NldFZhbHVlRm9yVVJMIChucGFwaS5jcHApIC0tIENvb2tpZXM6ICVzIiwgY29va2ll
U3RyaW5nLmRhdGEoKSk7CisgICAgICAgICAgICAgICAgaWYgKCFjb29raWVTdHJpbmcuaXNFbXB0
eSgpKSB7CisgICAgICAgICAgICAgICAgICAgIEZyYW1lKiBmcmFtZSA9IHBsdWdpblZpZXdGb3JJ
bnN0YW5jZShpbnN0YW5jZSktPnBhcmVudEZyYW1lKCk7CisgICAgICAgICAgICAgICAgICAgIGlm
IChmcmFtZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgc2V0Q29va2llcyhmcmFtZS0+ZG9j
dW1lbnQoKSwgVVJMLCBjb29raWVTdHJpbmcpOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIE5QRVJSX05PX0VSUk9SOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAg
ICAgY2FzZSBOUE5VUkxWUHJveHk6CisgICAgICAgICAgICBMT0coUGx1Z2lucywgIk5QTl9TZXRW
YWx1ZUZvclVSTCAobnBhcGkuY3BwKSAtLSBwbHVnLWlucyB0cnlpbmcgdG8gc2V0IFdlYktpdCdz
IHByb3h5IGlzIG5vdCBhbGxvd2VkISIpOworICAgICAgICAgICAgLy8gQ2FuJ3Qgc2V0IHRoZSBw
cm94eSBmb3IgYSBVUkwuCisgICAgICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICBMT0coUGx1
Z2lucywgIk5QTl9TZXRWYWx1ZUZvclVSTCAobnBhcGkuY3BwKSAtLSByZXR1cm5pbmcgTlBFUlJf
R0VORVJJQ19FUlJPUiIpOworICAgIHJldHVybiBOUEVSUl9HRU5FUklDX0VSUk9SOworfQorCitO
UEVycm9yIE5QTl9HZXRBdXRoZW50aWNhdGlvbkluZm8oTlBQIGluc3RhbmNlLCBjb25zdCBjaGFy
KiBwcm90b2NvbCwgY29uc3QgY2hhciogaG9zdCwgaW50MzJfdCBwb3J0LCBjb25zdCBjaGFyKiBz
Y2hlbWUsIGNvbnN0IGNoYXIgKnJlYWxtLCBjaGFyKiogdXNlcm5hbWUsIHVpbnQzMl90KiB1bGVu
LCBjaGFyKiogcGFzc3dvcmQsIHVpbnQzMl90KiBwbGVuKQoreworICAgIC8vIFVuc3VwcG9ydGVk
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gTlBFUlJfR0VORVJJQ19FUlJPUjsK
K30K
</data>
<flag name="review"
          id="39995"
          type_id="1"
          status="-"
          setter="abarth"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65021</attachid>
            <date>2010-08-20 22:44:45 -0700</date>
            <delta_ts>2010-08-21 09:30:11 -0700</delta_ts>
            <desc>Implement NPN_GetValueForURL and NPN_SetValueForURL and NPN_GetAuthenticationInfo [Update V]...</desc>
            <filename>implement_npn_functions_necessary_for_java_applet_support.patch</filename>
            <type>text/plain</type>
            <size>17407</size>
            <attacher name="Dawit A.">adawit</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
OGU2MThiYy4uMTY4OWViMCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0OCBAQAorMjAxMC0wOC0yMCAgRGF3aXQgQWxlbWF5
ZWh1ICA8YWRhd2l0QGtkZS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgSW1wbGVtZW50IE5QTl9HZXRWYWx1ZUZvclVSTCBhbmQgTlBOX1NldFZh
bHVlRm9yVVJMIGFuZCBOUE5fR2V0QXV0aGVudGljYXRpb25JbmZvLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQ1MzkKKworICAgICAgICBUaGVzZSBt
aXNzaW5nIE5QTiBmdW5jdGlvbnMgY2F1c2VzIEphdmEgYXBwbGV0cyB0byBjcmFzaCBpbiBwb3J0
cyBzdWNoCisgICAgICAgIGFzIFF0V2Via2l0IHRoYXQgcmVseSBvbiB3ZWJraXQgZm9yIEphdmEg
YXBwbGV0IHN1cHBvcnQuCisKKyAgICAgICAgKiBwbHVnaW5zL1BsdWdpbkRlYnVnLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OnByZXR0eU5hbWVGb3JOUE5VUkxWYXJpYWJsZSk6CisgICAgICAgICog
cGx1Z2lucy9QbHVnaW5EZWJ1Zy5oOgorICAgICAgICAqIHBsdWdpbnMvUGx1Z2luUGFja2FnZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5QYWNrYWdlOjppbml0aWFsaXplQnJvd3NlckZ1
bmNzKToKKyAgICAgICAgKiBwbHVnaW5zL1BsdWdpblZpZXcuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UGx1Z2luVmlldzo6Z2V0VmFsdWVGb3JVUkwpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2lu
Vmlldzo6c2V0VmFsdWVGb3JVUkwpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6Z2V0
QXV0aGVudGljYXRpb25JbmZvKToKKyAgICAgICAgKiBwbHVnaW5zL1BsdWdpblZpZXcuaDoKKyAg
ICAgICAgKiBwbHVnaW5zL2d0ay9QbHVnaW5WaWV3R3RrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlBsdWdpblZpZXc6OnBsYXRmb3JtR2V0VmFsdWVGb3JVUkwpOgorICAgICAgICAoV2ViQ29yZTo6
UGx1Z2luVmlldzo6cGxhdGZvcm1TZXRWYWx1ZUZvclVSTCk6CisgICAgICAgIChXZWJDb3JlOjpQ
bHVnaW5WaWV3OjpwbGF0Zm9ybUdldEF1dGhlbnRpY2F0aW9uSW5mbyk6CisgICAgICAgICogcGx1
Z2lucy9tYWMvUGx1Z2luVmlld01hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6
OnBsYXRmb3JtR2V0VmFsdWVGb3JVUkwpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6
cGxhdGZvcm1TZXRWYWx1ZUZvclVSTCk6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3Ojpw
bGF0Zm9ybUdldEF1dGhlbnRpY2F0aW9uSW5mbyk6CisgICAgICAgICogcGx1Z2lucy9ucGFwaS5j
cHA6CisgICAgICAgIChOUE5fR2V0VmFsdWVGb3JVUkwpOgorICAgICAgICAoTlBOX1NldFZhbHVl
Rm9yVVJMKToKKyAgICAgICAgKE5QTl9HZXRBdXRoZW50aWNhdGlvbkluZm8pOgorICAgICAgICAq
IHBsdWdpbnMvcXQvUGx1Z2luVmlld1F0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZp
ZXc6OnBsYXRmb3JtR2V0VmFsdWVGb3JVUkwpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmll
dzo6cGxhdGZvcm1HZXRBdXRoZW50aWNhdGlvbkluZm8pOgorICAgICAgICAoV2ViQ29yZTo6UGx1
Z2luVmlldzo6cGxhdGZvcm1TZXRWYWx1ZUZvclVSTCk6CisgICAgICAgICogcGx1Z2lucy9zeW1i
aWFuL1BsdWdpblZpZXdTeW1iaWFuLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6
OnBsYXRmb3JtR2V0VmFsdWVGb3JVUkwpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6
cGxhdGZvcm1TZXRWYWx1ZUZvclVSTCk6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3Ojpw
bGF0Zm9ybUdldEF1dGhlbnRpY2F0aW9uSW5mbyk6CisgICAgICAgICogcGx1Z2lucy93aW4vUGx1
Z2luVmlld1dpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpwbGF0Zm9ybUdl
dFZhbHVlRm9yVVJMKToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OnBsYXRmb3JtU2V0
VmFsdWVGb3JVUkwpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6cGxhdGZvcm1HZXRB
dXRoZW50aWNhdGlvbkluZm8pOgorCiAyMDEwLTA4LTIwICBHaXJpc2ggUmFtYWtyaXNobmFuICA8
Z2lyaXNoQGZvcndhcmRiaWFzLmluPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFyaXlhIEhpZGF5
YXQuCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luRGVidWcuY3BwIGIvV2ViQ29y
ZS9wbHVnaW5zL1BsdWdpbkRlYnVnLmNwcAppbmRleCBhY2U4YjIxLi40NWU5MGVmIDEwMDY0NAot
LS0gYS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luRGVidWcuY3BwCisrKyBiL1dlYkNvcmUvcGx1Z2lu
cy9QbHVnaW5EZWJ1Zy5jcHAKQEAgLTE2Myw2ICsxNjMsMTQgQEAgQ1N0cmluZyBwcmV0dHlOYW1l
Rm9yTlBQVmFyaWFibGUoTlBQVmFyaWFibGUgdmFyaWFibGUsIHZvaWQqIHZhbHVlKQogICAgIH0K
IH0KIAorQ1N0cmluZyBwcmV0dHlOYW1lRm9yTlBOVVJMVmFyaWFibGUoTlBOVVJMVmFyaWFibGUg
dmFyaWFibGUpCit7CisgICAgc3dpdGNoICh2YXJpYWJsZSkgeworICAgIGNhc2UgTlBOVVJMVkNv
b2tpZTogcmV0dXJuICJOUE5VUkxWQ29va2llIjsKKyAgICBjYXNlIE5QTlVSTFZQcm94eTogcmV0
dXJuICJOUE5VUkxWUHJveHkiOworICAgIGRlZmF1bHQ6IHJldHVybiAiVW5rb3duIHZhcmlhYmxl
IjsKKyAgICB9Cit9CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyAhTE9HX0RJ
U0FCTEVECmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luRGVidWcuaCBiL1dlYkNv
cmUvcGx1Z2lucy9QbHVnaW5EZWJ1Zy5oCmluZGV4IDI1NDg2NGYuLjAxN2U2ODYgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5EZWJ1Zy5oCisrKyBiL1dlYkNvcmUvcGx1Z2lucy9Q
bHVnaW5EZWJ1Zy5oCkBAIC00MSw2ICs0MSw3IEBAIGNvbnN0IGNoYXIqIHByZXR0eU5hbWVGb3JO
UEVycm9yKE5QRXJyb3IgZXJyb3IpOwogCiBDU3RyaW5nIHByZXR0eU5hbWVGb3JOUE5WYXJpYWJs
ZShOUE5WYXJpYWJsZSB2YXJpYWJsZSk7CiBDU3RyaW5nIHByZXR0eU5hbWVGb3JOUFBWYXJpYWJs
ZShOUFBWYXJpYWJsZSB2YXJpYWJsZSwgdm9pZCogdmFsdWUpOworQ1N0cmluZyBwcmV0dHlOYW1l
Rm9yTlBOVVJMVmFyaWFibGUoTlBOVVJMVmFyaWFibGUgdmFyaWFibGUpOwogCiAjaWZkZWYgWFBf
TUFDT1NYCiBjb25zdCBjaGFyKiBwcmV0dHlOYW1lRm9yRHJhd2luZ01vZGVsKE5QRHJhd2luZ01v
ZGVsIGRyYXdpbmdNb2RlbCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luUGFj
a2FnZS5jcHAgYi9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luUGFja2FnZS5jcHAKaW5kZXggYmY5NzBm
Mi4uNjUzYjI0ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblBhY2thZ2UuY3Bw
CisrKyBiL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5QYWNrYWdlLmNwcApAQCAtMzA1LDYgKzMwNSw5
IEBAIHZvaWQgUGx1Z2luUGFja2FnZTo6aW5pdGlhbGl6ZUJyb3dzZXJGdW5jcygpCiAgICAgbV9i
cm93c2VyRnVuY3Muc2V0ZXhjZXB0aW9uID0gX05QTl9TZXRFeGNlcHRpb247CiAgICAgbV9icm93
c2VyRnVuY3MuZW51bWVyYXRlID0gX05QTl9FbnVtZXJhdGU7CiAgICAgbV9icm93c2VyRnVuY3Mu
Y29uc3RydWN0ID0gX05QTl9Db25zdHJ1Y3Q7CisgICAgbV9icm93c2VyRnVuY3MuZ2V0dmFsdWVm
b3J1cmwgPSBOUE5fR2V0VmFsdWVGb3JVUkw7CisgICAgbV9icm93c2VyRnVuY3Muc2V0dmFsdWVm
b3J1cmwgPSBOUE5fU2V0VmFsdWVGb3JVUkw7CisgICAgbV9icm93c2VyRnVuY3MuZ2V0YXV0aGVu
dGljYXRpb25pbmZvID0gTlBOX0dldEF1dGhlbnRpY2F0aW9uSW5mbzsKIH0KICNlbmRpZgogCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5jcHAgYi9XZWJDb3JlL3BsdWdp
bnMvUGx1Z2luVmlldy5jcHAKaW5kZXggYmVlOGRjZC4uN2QxNzZjMiAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9wbHVnaW5zL1BsdWdpblZpZXcuY3BwCisrKyBiL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5W
aWV3LmNwcApAQCAtMzAsNiArMzAsNyBAQAogCiAjaW5jbHVkZSAiQnJpZGdlLmgiCiAjaW5jbHVk
ZSAiQ2hyb21lLmgiCisjaW5jbHVkZSAiQ29va2llSmFyLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQu
aCIKICNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKQEAg
LTEzNzcsNiArMTM3OCw4OCBAQCBOUEVycm9yIFBsdWdpblZpZXc6OmdldFZhbHVlKE5QTlZhcmlh
YmxlIHZhcmlhYmxlLCB2b2lkKiB2YWx1ZSkKICAgICAgICAgcmV0dXJuIE5QRVJSX0dFTkVSSUNf
RVJST1I7CiAgICAgfQogfQorCitOUEVycm9yIFBsdWdpblZpZXc6OmdldFZhbHVlRm9yVVJMKE5Q
TlVSTFZhcmlhYmxlIHZhcmlhYmxlLCBjb25zdCBjaGFyKiB1cmwsIGNoYXIqKiB2YWx1ZSwgdWlu
dDMyX3QqIGxlbikKK3sKKyAgICBMT0coUGx1Z2lucywgIlBsdWdpblZpZXc6OmdldFZhbHVlRm9y
VVJMKCVzKSIsIHByZXR0eU5hbWVGb3JOUE5VUkxWYXJpYWJsZSh2YXJpYWJsZSkuZGF0YSgpKTsK
KworICAgIE5QRXJyb3IgcmVzdWx0OworICAgIGlmIChwbGF0Zm9ybUdldFZhbHVlRm9yVVJMKHZh
cmlhYmxlLCB1cmwsIHZhbHVlLCBsZW4sICZyZXN1bHQpKQorICAgICAgICByZXR1cm4gcmVzdWx0
OworCisgICAgc3dpdGNoICh2YXJpYWJsZSkgeworICAgIGNhc2UgTlBOVVJMVkNvb2tpZTogewor
ICAgICAgICBLVVJMIHUobV9iYXNlVVJMLCB1cmwpOworICAgICAgICBpZiAodS5pc1ZhbGlkKCkp
IHsKKyAgICAgICAgICAgIFN0cmluZyBjb29raWVTdHIgPSBjb29raWVzKG1fcGFyZW50RnJhbWUt
PmRvY3VtZW50KCksIHUpOworICAgICAgICAgICAgaWYgKCFjb29raWVTdHIuaXNFbXB0eSgpKSB7
CisgICAgICAgICAgICAgICAgY29uc3QgaW50IGNvb2tpZVN0ckxlbiA9IGNvb2tpZVN0ci5sZW5n
dGgoKSArIDE7CisgICAgICAgICAgICAgICAgKnZhbHVlID0gc3RhdGljX2Nhc3Q8Y2hhcio+KE5Q
Tl9NZW1BbGxvYyhjb29raWVTdHJMZW4pKTsKKyAgICAgICAgICAgICAgICBzdHJuY3B5KCp2YWx1
ZSwgY29va2llU3RyLnV0ZjgoKS5kYXRhKCksIGNvb2tpZVN0ckxlbik7CisgICAgICAgICAgICAg
ICAgaWYgKGxlbikKKyAgICAgICAgICAgICAgICAgICAgKmxlbiA9IGNvb2tpZVN0ckxlbjsKKyAg
ICAgICAgICAgICAgICByZXN1bHQgPSBOUEVSUl9OT19FUlJPUjsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgfQorICAgICAgICBicmVhazsKKyAgICB9CisgICAgY2FzZSBOUE5VUkxWUHJveHk6Cisg
ICAgICAgIHJlc3VsdCA9IE5QRVJSX0dFTkVSSUNfRVJST1I7CisgICAgICAgIExPRyhQbHVnaW5z
LCAiUGx1Z2luVmlldzo6Z2V0VmFsdWVGb3JVUkwoJXMpOiBOZWVkIHRvIGltcGxlbWVudCBQbHVn
aW5WaWV3OjpwbGF0Zm9ybUdldFZhbHVlRm9yVVJMISIsIHByZXR0eU5hbWVGb3JOUE5VUkxWYXJp
YWJsZSh2YXJpYWJsZSkuZGF0YSgpKTsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAg
ICAgICAgcmVzdWx0ID0gTlBFUlJfR0VORVJJQ19FUlJPUjsKKyAgICAgICAgTE9HKFBsdWdpbnMs
ICJQbHVnaW5WaWV3OjpnZXRWYWx1ZUZvclVSTCglcyk6IFVua25vd24gdmFyaWFibGUgdHlwZS4i
LCBwcmV0dHlOYW1lRm9yTlBOVVJMVmFyaWFibGUodmFyaWFibGUpLmRhdGEoKSk7CisgICAgICAg
IGJyZWFrOworICAgIH0KKworICAgIHJldHVybiByZXN1bHQ7Cit9CisKKworTlBFcnJvciBQbHVn
aW5WaWV3OjpzZXRWYWx1ZUZvclVSTChOUE5VUkxWYXJpYWJsZSB2YXJpYWJsZSwgY29uc3QgY2hh
ciogdXJsLCBjb25zdCBjaGFyKiB2YWx1ZSwgdWludDMyX3QgbGVuKQoreworICAgIExPRyhQbHVn
aW5zLCAiUGx1Z2luVmlldzo6c2V0VmFsdWVGb3JVUkwoJXMpIiwgcHJldHR5TmFtZUZvck5QTlVS
TFZhcmlhYmxlKHZhcmlhYmxlKS5kYXRhKCkpOworCisgICAgTlBFcnJvciByZXN1bHQ7CisgICAg
aWYgKHBsYXRmb3JtU2V0VmFsdWVGb3JVUkwodmFyaWFibGUsIHVybCwgdmFsdWUsIGxlbiwgJnJl
c3VsdCkpCisgICAgICAgIHJldHVybiByZXN1bHQ7CisKKyAgICBzd2l0Y2ggKHZhcmlhYmxlKSB7
CisgICAgY2FzZSBOUE5VUkxWQ29va2llOiB7CisgICAgICAgIEtVUkwgdShtX2Jhc2VVUkwsIHVy
bCk7CisgICAgICAgIGlmICh1LmlzVmFsaWQoKSkgeworICAgICAgICAgICAgU3RyaW5nIGNvb2tp
ZVN0ciA9IFN0cmluZzo6ZnJvbVVURjgodmFsdWUsIGxlbik7CisgICAgICAgICAgICBpZiAoIWNv
b2tpZVN0ci5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgICAgICBzZXRDb29raWVzKG1fcGFyZW50
RnJhbWUtPmRvY3VtZW50KCksIHUsIGNvb2tpZVN0cik7CisgICAgICAgICAgICAgICAgcmVzdWx0
ID0gTlBFUlJfTk9fRVJST1I7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgYnJl
YWs7CisgICAgfQorICAgIGNhc2UgTlBOVVJMVlByb3h5OgorICAgICAgICByZXN1bHQgPSBOUEVS
Ul9HRU5FUklDX0VSUk9SOworICAgICAgICBMT0coUGx1Z2lucywgIlBsdWdpblZpZXc6OnNldFZh
bHVlRm9yVVJMKCVzKTogUGx1Z2lucyBhcmUgTk9UIGFsbG93ZWQgdG8gc2V0IHByb3h5IGluZm9y
bWF0aW9uLiIsIHByZXR0eU5hbWVGb3JOUE5VUkxWYXJpYWJsZSh2YXJpYWJsZSkuZGF0YSgpKTsK
KyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmVzdWx0ID0gTlBFUlJfR0VO
RVJJQ19FUlJPUjsKKyAgICAgICAgTE9HKFBsdWdpbnMsICJQbHVnaW5WaWV3OjpzZXRWYWx1ZUZv
clVSTCglcyk6IFVua25vd24gdmFyaWFibGUgdHlwZS4iLCBwcmV0dHlOYW1lRm9yTlBOVVJMVmFy
aWFibGUodmFyaWFibGUpLmRhdGEoKSk7CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIHJl
dHVybiByZXN1bHQ7Cit9CisKK05QRXJyb3IgUGx1Z2luVmlldzo6Z2V0QXV0aGVudGljYXRpb25J
bmZvKGNvbnN0IGNoYXIqIHByb3RvY29sLCBjb25zdCBjaGFyKiBob3N0LCBpbnQzMl90IHBvcnQs
IGNvbnN0IGNoYXIqIHNjaGVtZSwgY29uc3QgY2hhciAqcmVhbG0sIGNoYXIqKiB1c2VybmFtZSwg
dWludDMyX3QqIHVsZW4sIGNoYXIqKiBwYXNzd29yZCwgdWludDMyX3QqIHBsZW4pCit7CisgICAg
TE9HKFBsdWdpbnMsICJQbHVnaW5WaWV3OjpnZXRBdXRoZW50aWNhdGlvbkluZm86IHByb3RvY29s
PSVzLCBob3N0PSVkLCBwb3J0PSVkIiwgcHJvdG9jb2wsIGhvc3QsIHBvcnQpOworCisgICAgTlBF
cnJvciByZXN1bHQ7CisgICAgaWYgKHBsYXRmb3JtR2V0QXV0aGVudGljYXRpb25JbmZvKHByb3Rv
Y29sLCBob3N0LCBwb3J0LCBzY2hlbWUsIHJlYWxtLCB1c2VybmFtZSwgdWxlbiwgcGFzc3dvcmQs
IHBsZW4sICZyZXN1bHQpKQorICAgICAgICByZXR1cm4gcmVzdWx0OworCisgICAgcmV0dXJuIE5Q
RVJSX0dFTkVSSUNfRVJST1I7Cit9CiAjZW5kaWYKIAogdm9pZCBQbHVnaW5WaWV3Ojpwcml2YXRl
QnJvd3NpbmdTdGF0ZUNoYW5nZWQoYm9vbCBwcml2YXRlQnJvd3NpbmdFbmFibGVkKQpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcuaCBiL1dlYkNvcmUvcGx1Z2lucy9QbHVn
aW5WaWV3LmgKaW5kZXggYTFlNzUyNC4uMDA1MjIxOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbHVn
aW5zL1BsdWdpblZpZXcuaAorKysgYi9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5oCkBAIC0x
NjUsNiArMTY1LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBOUEVycm9yIGdldFZh
bHVlKE5QTlZhcmlhYmxlIHZhcmlhYmxlLCB2b2lkKiB2YWx1ZSk7CiAgICAgICAgIHN0YXRpYyBO
UEVycm9yIGdldFZhbHVlU3RhdGljKE5QTlZhcmlhYmxlIHZhcmlhYmxlLCB2b2lkKiB2YWx1ZSk7
CiAgICAgICAgIE5QRXJyb3Igc2V0VmFsdWUoTlBQVmFyaWFibGUgdmFyaWFibGUsIHZvaWQqIHZh
bHVlKTsKKyAgICAgICAgTlBFcnJvciBnZXRWYWx1ZUZvclVSTChOUE5VUkxWYXJpYWJsZSB2YXJp
YWJsZSwgY29uc3QgY2hhciogdXJsLCBjaGFyKiogdmFsdWUsIHVpbnQzMl90KiBsZW4pOworICAg
ICAgICBOUEVycm9yIHNldFZhbHVlRm9yVVJMKE5QTlVSTFZhcmlhYmxlIHZhcmlhYmxlLCBjb25z
dCBjaGFyKiB1cmwsIGNvbnN0IGNoYXIqIHZhbHVlLCB1aW50MzJfdCBsZW4pOworICAgICAgICBO
UEVycm9yIGdldEF1dGhlbnRpY2F0aW9uSW5mbyhjb25zdCBjaGFyKiBwcm90b2NvbCwgY29uc3Qg
Y2hhciogaG9zdCwgaW50MzJfdCBwb3J0LCBjb25zdCBjaGFyKiBzY2hlbWUsIGNvbnN0IGNoYXIg
KnJlYWxtLCBjaGFyKiogdXNlcm5hbWUsIHVpbnQzMl90KiB1bGVuLCBjaGFyKiogcGFzc3dvcmQs
IHVpbnQzMl90KiBwbGVuKTsKICAgICAgICAgdm9pZCBpbnZhbGlkYXRlUmVjdChOUFJlY3QqKTsK
ICAgICAgICAgdm9pZCBpbnZhbGlkYXRlUmVnaW9uKE5QUmVnaW9uKTsKICNlbmRpZgpAQCAtMjcy
LDYgKzI3NSw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExV
R0lOX0FQSSkKICAgICAgICAgc3RhdGljIGJvb2wgcGxhdGZvcm1HZXRWYWx1ZVN0YXRpYyhOUE5W
YXJpYWJsZSB2YXJpYWJsZSwgdm9pZCogdmFsdWUsIE5QRXJyb3IqIHJlc3VsdCk7CiAgICAgICAg
IGJvb2wgcGxhdGZvcm1HZXRWYWx1ZShOUE5WYXJpYWJsZSB2YXJpYWJsZSwgdm9pZCogdmFsdWUs
IE5QRXJyb3IqIHJlc3VsdCk7CisgICAgICAgIGJvb2wgcGxhdGZvcm1HZXRWYWx1ZUZvclVSTChO
UE5VUkxWYXJpYWJsZSB2YXJpYWJsZSwgY29uc3QgY2hhciogdXJsLCBjaGFyKiogdmFsdWUsIHVp
bnQzMl90KiBsZW4sIE5QRXJyb3IqIHJlc3VsdCk7CisgICAgICAgIGJvb2wgcGxhdGZvcm1TZXRW
YWx1ZUZvclVSTChOUE5VUkxWYXJpYWJsZSB2YXJpYWJsZSwgY29uc3QgY2hhciogdXJsLCBjb25z
dCBjaGFyKiB2YWx1ZSwgdWludDMyX3QgbGVuLCBOUEVycm9yKiByZXN1bHQpOworICAgICAgICBi
b29sIHBsYXRmb3JtR2V0QXV0aGVudGljYXRpb25JbmZvKGNvbnN0IGNoYXIqIHByb3RvY29sLCBj
b25zdCBjaGFyKiBob3N0LCBpbnQzMl90IHBvcnQsIGNvbnN0IGNoYXIqIHNjaGVtZSwgY29uc3Qg
Y2hhciAqcmVhbG0sIGNoYXIqKiB1c2VybmFtZSwgdWludDMyX3QqIHVsZW4sIGNoYXIqKiBwYXNz
d29yZCwgdWludDMyX3QqIHBsZW4sIE5QRXJyb3IqIHJlc3VsdCk7CiAjZW5kaWYKIAogICAgICAg
ICBSZWZQdHI8RnJhbWU+IG1fcGFyZW50RnJhbWU7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdp
bnMvZ3RrL1BsdWdpblZpZXdHdGsuY3BwIGIvV2ViQ29yZS9wbHVnaW5zL2d0ay9QbHVnaW5WaWV3
R3RrLmNwcAppbmRleCBhYjQzYmY0Li5jM2UyYTY0IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsdWdp
bnMvZ3RrL1BsdWdpblZpZXdHdGsuY3BwCisrKyBiL1dlYkNvcmUvcGx1Z2lucy9ndGsvUGx1Z2lu
Vmlld0d0ay5jcHAKQEAgLTY2OSw2ICs2NjksMjIgQEAgYm9vbCBQbHVnaW5WaWV3OjpwbGF0Zm9y
bUdldFZhbHVlKE5QTlZhcmlhYmxlIHZhcmlhYmxlLCB2b2lkKiB2YWx1ZSwgTlBFcnJvciogcmUK
ICAgICB9CiB9CiAKK2Jvb2wgUGx1Z2luVmlldzo6cGxhdGZvcm1HZXRWYWx1ZUZvclVSTChOUE5V
UkxWYXJpYWJsZSB2YXJpYWJsZSwgY29uc3QgY2hhciogdXJsLCBjaGFyKiogdmFsdWUsIHVpbnQz
Ml90KiBsZW4sIE5QRXJyb3IqIHJlc3VsdCkKK3sKKyAgICAvLyBOT1RFOiBOUE5VUkxWUHJveHkg
cmVxdWlyZXMgcGxhdGZvcm0gc3BlY2lmaWMgaW1wbGVtZW50YXRpb24gOyBvdGhlcndpc2UsIE5Q
X0dFTkVSSUNfRVJSIGlzIHJldHVybmVkIGJ5IGRlZmF1bHQuCisgICAgcmV0dXJuIGZhbHNlOwor
fQorCitib29sIFBsdWdpblZpZXc6OnBsYXRmb3JtU2V0VmFsdWVGb3JVUkwoTlBOVVJMVmFyaWFi
bGUgdmFyaWFibGUsIGNvbnN0IGNoYXIqIHVybCwgY29uc3QgY2hhciogdmFsdWUsIHVpbnQzMl90
IGxlbiwgTlBFcnJvciogcmVzdWx0KQoreworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBQ
bHVnaW5WaWV3OjpwbGF0Zm9ybUdldEF1dGhlbnRpY2F0aW9uSW5mbyhjb25zdCBjaGFyKiBwcm90
b2NvbCwgY29uc3QgY2hhciogaG9zdCwgaW50MzJfdCBwb3J0LCBjb25zdCBjaGFyKiBzY2hlbWUs
IGNvbnN0IGNoYXIgKnJlYWxtLCBjaGFyKiogdXNlcm5hbWUsIHVpbnQzMl90KiB1bGVuLCBjaGFy
KiogcGFzc3dvcmQsIHVpbnQzMl90KiBwbGVuLCBOUEVycm9yKiByZXN1bHQpCit7CisgICAgcmV0
dXJuIGZhbHNlOworfQorCiB2b2lkIFBsdWdpblZpZXc6OmludmFsaWRhdGVSZWN0KGNvbnN0IElu
dFJlY3QmIHJlY3QpCiB7CiAgICAgaWYgKG1faXNXaW5kb3dlZCkgewpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9wbHVnaW5zL21hYy9QbHVnaW5WaWV3TWFjLm1tIGIvV2ViQ29yZS9wbHVnaW5zL21hYy9Q
bHVnaW5WaWV3TWFjLm1tCmluZGV4IGUwYWQxMzUuLmY0ZjdkMTIgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvcGx1Z2lucy9tYWMvUGx1Z2luVmlld01hYy5tbQorKysgYi9XZWJDb3JlL3BsdWdpbnMvbWFj
L1BsdWdpblZpZXdNYWMubW0KQEAgLTMwOCw2ICszMDgsMjIgQEAgYm9vbCBQbHVnaW5WaWV3Ojpw
bGF0Zm9ybUdldFZhbHVlKE5QTlZhcmlhYmxlIHZhcmlhYmxlLCB2b2lkKiB2YWx1ZSwgTlBFcnJv
ciogZXIKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK2Jvb2wgUGx1Z2luVmlldzo6cGxhdGZvcm1H
ZXRWYWx1ZUZvclVSTChOUE5VUkxWYXJpYWJsZSB2YXJpYWJsZSwgY29uc3QgY2hhciogdXJsLCBj
aGFyKiogdmFsdWUsIHVpbnQzMl90KiBsZW4sIE5QRXJyb3IqIHJlc3VsdCkKK3sKKyAgICAvLyBO
T1RFOiBOUE5VUkxWUHJveHkgcmVxdWlyZXMgcGxhdGZvcm0gc3BlY2lmaWMgaW1wbGVtZW50YXRp
b24gOyBvdGhlcndpc2UsIE5QX0dFTkVSSUNfRVJSIGlzIHJldHVybmVkIGJ5IGRlZmF1bHQuCisg
ICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIFBsdWdpblZpZXc6OnBsYXRmb3JtU2V0VmFsdWVG
b3JVUkwoTlBOVVJMVmFyaWFibGUgdmFyaWFibGUsIGNvbnN0IGNoYXIqIHVybCwgY29uc3QgY2hh
ciogdmFsdWUsIHVpbnQzMl90IGxlbiwgTlBFcnJvciogcmVzdWx0KQoreworICAgIHJldHVybiBm
YWxzZTsKK30KKworYm9vbCBQbHVnaW5WaWV3OjpwbGF0Zm9ybUdldEF1dGhlbnRpY2F0aW9uSW5m
byhjb25zdCBjaGFyKiBwcm90b2NvbCwgY29uc3QgY2hhciogaG9zdCwgaW50MzJfdCBwb3J0LCBj
b25zdCBjaGFyKiBzY2hlbWUsIGNvbnN0IGNoYXIgKnJlYWxtLCBjaGFyKiogdXNlcm5hbWUsIHVp
bnQzMl90KiB1bGVuLCBjaGFyKiogcGFzc3dvcmQsIHVpbnQzMl90KiBwbGVuLCBOUEVycm9yKiBy
ZXN1bHQpCit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCiB2b2lkIFBsdWdpblZpZXc6OnNldFBh
cmVudChTY3JvbGxWaWV3KiBwYXJlbnQpCiB7CiAgICAgTE9HKFBsdWdpbnMsICJQbHVnaW5WaWV3
OjpzZXRQYXJlbnQoJXApIiwgcGFyZW50KTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGx1Z2lucy9u
cGFwaS5jcHAgYi9XZWJDb3JlL3BsdWdpbnMvbnBhcGkuY3BwCmluZGV4IGQwZGI4NDUuLmIxOGU3
N2QgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGx1Z2lucy9ucGFwaS5jcHAKKysrIGIvV2ViQ29yZS9w
bHVnaW5zL25wYXBpLmNwcApAQCAtMTc1LDMgKzE3NSwxOCBAQCB2b2lkIE5QTl9QbHVnaW5UaHJl
YWRBc3luY0NhbGwoTlBQIGluc3RhbmNlLCB2b2lkICgqZnVuYykgKHZvaWQgKiksIHZvaWQgKnVz
ZXJEYQogewogICAgIFBsdWdpbk1haW5UaHJlYWRTY2hlZHVsZXI6OnNjaGVkdWxlcigpLnNjaGVk
dWxlQ2FsbChpbnN0YW5jZSwgZnVuYywgdXNlckRhdGEpOwogfQorCitOUEVycm9yIE5QTl9HZXRW
YWx1ZUZvclVSTChOUFAgaW5zdGFuY2UsIE5QTlVSTFZhcmlhYmxlIHZhcmlhYmxlLCBjb25zdCBj
aGFyKiB1cmwsIGNoYXIqKiB2YWx1ZSwgdWludDMyX3QqIGxlbikKK3sKKyAgICByZXR1cm4gcGx1
Z2luVmlld0Zvckluc3RhbmNlKGluc3RhbmNlKS0+Z2V0VmFsdWVGb3JVUkwodmFyaWFibGUsIHVy
bCwgdmFsdWUsIGxlbik7Cit9CisKK05QRXJyb3IgTlBOX1NldFZhbHVlRm9yVVJMKE5QUCBpbnN0
YW5jZSwgTlBOVVJMVmFyaWFibGUgdmFyaWFibGUsIGNvbnN0IGNoYXIqIHVybCwgY29uc3QgY2hh
ciogdmFsdWUsIHVpbnQzMl90IGxlbikKK3sKKyAgICByZXR1cm4gcGx1Z2luVmlld0Zvckluc3Rh
bmNlKGluc3RhbmNlKS0+c2V0VmFsdWVGb3JVUkwodmFyaWFibGUsIHVybCwgdmFsdWUsIGxlbik7
Cit9CisKK05QRXJyb3IgTlBOX0dldEF1dGhlbnRpY2F0aW9uSW5mbyhOUFAgaW5zdGFuY2UsIGNv
bnN0IGNoYXIqIHByb3RvY29sLCBjb25zdCBjaGFyKiBob3N0LCBpbnQzMl90IHBvcnQsIGNvbnN0
IGNoYXIqIHNjaGVtZSwgY29uc3QgY2hhciAqcmVhbG0sIGNoYXIqKiB1c2VybmFtZSwgdWludDMy
X3QqIHVsZW4sIGNoYXIqKiBwYXNzd29yZCwgdWludDMyX3QqIHBsZW4pCit7CisgICAgcmV0dXJu
IHBsdWdpblZpZXdGb3JJbnN0YW5jZShpbnN0YW5jZSktPmdldEF1dGhlbnRpY2F0aW9uSW5mbyhw
cm90b2NvbCwgaG9zdCwgcG9ydCwgc2NoZW1lLCByZWFsbSwgdXNlcm5hbWUsIHVsZW4sIHBhc3N3
b3JkLCBwbGVuKTsKK30KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGx1Z2lucy9xdC9QbHVnaW5WaWV3
UXQuY3BwIGIvV2ViQ29yZS9wbHVnaW5zL3F0L1BsdWdpblZpZXdRdC5jcHAKaW5kZXggNWM2ODFi
OC4uZjlkMmZkNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbHVnaW5zL3F0L1BsdWdpblZpZXdRdC5j
cHAKKysrIGIvV2ViQ29yZS9wbHVnaW5zL3F0L1BsdWdpblZpZXdRdC5jcHAKQEAgLTY2LDcgKzY2
LDkgQEAKICNpbmNsdWRlIDxRQXBwbGljYXRpb24+CiAjaW5jbHVkZSA8UURlc2t0b3BXaWRnZXQ+
CiAjaW5jbHVkZSA8UUtleUV2ZW50PgorI2luY2x1ZGUgPFFOZXR3b3JrUHJveHk+CiAjaW5jbHVk
ZSA8UVBhaW50ZXI+CisjaW5jbHVkZSA8UVN0cmluZz4KICNpbmNsdWRlIDxRV2lkZ2V0PgogI2lu
Y2x1ZGUgPFFYMTFJbmZvPgogI2luY2x1ZGUgPFgxMS9YLmg+CkBAIC03MTgsNiArNzIwLDYxIEBA
IGJvb2wgUGx1Z2luVmlldzo6cGxhdGZvcm1HZXRWYWx1ZShOUE5WYXJpYWJsZSB2YXJpYWJsZSwg
dm9pZCogdmFsdWUsIE5QRXJyb3IqIHJlCiAgICAgfQogfQogCitib29sIFBsdWdpblZpZXc6OnBs
YXRmb3JtR2V0VmFsdWVGb3JVUkwoTlBOVVJMVmFyaWFibGUgdmFyaWFibGUsIGNvbnN0IGNoYXIq
IHVybCwgY2hhcioqIHZhbHVlLCB1aW50MzJfdCogbGVuLCBOUEVycm9yKiByZXN1bHQpCit7Cisg
ICAgcURlYnVnKCkgPDwgIlBsdWdpblZpZXc6OnBsYXRmb3JtR2V0VmFsdWVGb3JVUkw6IiA8PCB2
YXJpYWJsZSA8PCAiLCIgPDwgdXJsOworICAgIGlmICh2YXJpYWJsZSA9PSBOUE5VUkxWUHJveHkp
IHsKKyAgICAgICAgUVN0cmluZyBwcm94eVN0cjsKKyAgICAgICAgUU5ldHdvcmtQcm94eSBwcm94
eSA9IFFOZXR3b3JrUHJveHk6OmFwcGxpY2F0aW9uUHJveHkoKTsKKworICAgICAgICBzd2l0Y2gg
KHByb3h5LnR5cGUoKSkgeworICAgICAgICBjYXNlIFFOZXR3b3JrUHJveHk6OlNvY2tzNVByb3h5
OiB7CisgICAgICAgICAgICBwcm94eVN0ciA9IFFMYXRpbjFTdHJpbmcoIlNPQ0tTICIpOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgY2FzZSBRTmV0d29ya1Byb3h5OjpI
dHRwUHJveHk6CisgICAgICAgIGNhc2UgUU5ldHdvcmtQcm94eTo6SHR0cENhY2hpbmdQcm94eToK
KyAgICAgICAgY2FzZSBRTmV0d29ya1Byb3h5OjpGdHBDYWNoaW5nUHJveHk6IHsKKyAgICAgICAg
ICAgIHByb3h5U3RyID0gUUxhdGluMVN0cmluZygiUFJPWFkgIik7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgfQorICAgICAgICBjYXNlIFFOZXR3b3JrUHJveHk6OkRlZmF1bHRQcm94eToK
KyAgICAgICAgY2FzZSBRTmV0d29ya1Byb3h5OjpOb1Byb3h5OgorICAgICAgICBkZWZhdWx0Ogor
ICAgICAgICAgICAgcHJveHlTdHIgPSBRTGF0aW4xU3RyaW5nKCJESVJFQ1QiKTsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHByb3h5U3RyICE9IFFMYXRpbjFT
dHJpbmcoIkRJUkVDVCIpKSB7CisgICAgICAgICAgICBwcm94eVN0ciArPSBwcm94eS5ob3N0TmFt
ZSgpOworICAgICAgICAgICAgaWYgKHByb3h5LnBvcnQoKSA+IDApIHsKKyAgICAgICAgICAgICAg
ICBwcm94eVN0ciArPSBRTGF0aW4xQ2hhcignOicpOworICAgICAgICAgICAgICAgIHByb3h5U3Ry
ICs9IFFTdHJpbmc6Om51bWJlcihwcm94eS5wb3J0KCkpOworICAgICAgICAgICAgfQorICAgICAg
ICB9CisKKyAgICAgICAgY29uc3QgaW50IHByb3h5U3RyTGVuID0gcHJveHlTdHIubGVuZ3RoKCkg
KyAxOworICAgICAgICAqdmFsdWUgPSBzdGF0aWNfY2FzdDxjaGFyKj4oTlBOX01lbUFsbG9jKHBy
b3h5U3RyTGVuKSk7CisgICAgICAgIHN0cm5jcHkoKnZhbHVlLCBwcm94eVN0ci50b1V0ZjgoKS5j
b25zdERhdGEoKSwgcHJveHlTdHJMZW4pOworICAgICAgICBpZiAobGVuKQorICAgICAgICAgICps
ZW4gPSBwcm94eVN0ckxlbjsKKworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBy
ZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgUGx1Z2luVmlldzo6cGxhdGZvcm1HZXRBdXRoZW50aWNh
dGlvbkluZm8oY29uc3QgY2hhciogcHJvdG9jb2wsIGNvbnN0IGNoYXIqIGhvc3QsIGludDMyX3Qg
cG9ydCwgY29uc3QgY2hhciogc2NoZW1lLCBjb25zdCBjaGFyICpyZWFsbSwgY2hhcioqIHVzZXJu
YW1lLCB1aW50MzJfdCogdWxlbiwgY2hhcioqIHBhc3N3b3JkLCB1aW50MzJfdCogcGxlbiwgTlBF
cnJvciogcmVzdWx0KQoreworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBQbHVnaW5WaWV3
OjpwbGF0Zm9ybVNldFZhbHVlRm9yVVJMKE5QTlVSTFZhcmlhYmxlIHZhcmlhYmxlLCBjb25zdCBj
aGFyKiB1cmwsIGNvbnN0IGNoYXIqIHZhbHVlLCB1aW50MzJfdCBsZW4sIE5QRXJyb3IqIHJlc3Vs
dCkKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIHZvaWQgUGx1Z2luVmlldzo6aW52YWxpZGF0
ZVJlY3QoY29uc3QgSW50UmVjdCYgcmVjdCkKIHsKICAgICBpZiAobV9pc1dpbmRvd2VkKSB7CmRp
ZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvc3ltYmlhbi9QbHVnaW5WaWV3U3ltYmlhbi5jcHAg
Yi9XZWJDb3JlL3BsdWdpbnMvc3ltYmlhbi9QbHVnaW5WaWV3U3ltYmlhbi5jcHAKaW5kZXggYjlm
ODJhZC4uNGYwZDdlZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbHVnaW5zL3N5bWJpYW4vUGx1Z2lu
Vmlld1N5bWJpYW4uY3BwCisrKyBiL1dlYkNvcmUvcGx1Z2lucy9zeW1iaWFuL1BsdWdpblZpZXdT
eW1iaWFuLmNwcApAQCAtMzM4LDYgKzMzOCwyMiBAQCBib29sIFBsdWdpblZpZXc6OnBsYXRmb3Jt
R2V0VmFsdWUoTlBOVmFyaWFibGUsIHZvaWQqLCBOUEVycm9yKikKICAgICByZXR1cm4gZmFsc2U7
CiB9CiAKK2Jvb2wgUGx1Z2luVmlldzo6cGxhdGZvcm1HZXRWYWx1ZUZvclVSTChOUE5VUkxWYXJp
YWJsZSB2YXJpYWJsZSwgY29uc3QgY2hhciogdXJsLCBjaGFyKiogdmFsdWUsIHVpbnQzMl90KiBs
ZW4sIE5QRXJyb3IqIHJlc3VsdCkKK3sKKyAgICAvLyBOT1RFOiBOUE5VUkxWUHJveHkgcmVxdWly
ZXMgcGxhdGZvcm0gc3BlY2lmaWMgaW1wbGVtZW50YXRpb24gOyBvdGhlcndpc2UsIE5QX0dFTkVS
SUNfRVJSIGlzIHJldHVybmVkIGJ5IGRlZmF1bHQuCisgICAgcmV0dXJuIGZhbHNlOworfQorCiti
b29sIFBsdWdpblZpZXc6OnBsYXRmb3JtU2V0VmFsdWVGb3JVUkwoTlBOVVJMVmFyaWFibGUgdmFy
aWFibGUsIGNvbnN0IGNoYXIqIHVybCwgY29uc3QgY2hhciogdmFsdWUsIHVpbnQzMl90IGxlbiwg
TlBFcnJvciogcmVzdWx0KQoreworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBQbHVnaW5W
aWV3OjpwbGF0Zm9ybUdldEF1dGhlbnRpY2F0aW9uSW5mbyhjb25zdCBjaGFyKiBwcm90b2NvbCwg
Y29uc3QgY2hhciogaG9zdCwgaW50MzJfdCBwb3J0LCBjb25zdCBjaGFyKiBzY2hlbWUsIGNvbnN0
IGNoYXIgKnJlYWxtLCBjaGFyKiogdXNlcm5hbWUsIHVpbnQzMl90KiB1bGVuLCBjaGFyKiogcGFz
c3dvcmQsIHVpbnQzMl90KiBwbGVuLCBOUEVycm9yKiByZXN1bHQpCit7CisgICAgcmV0dXJuIGZh
bHNlOworfQorCiB2b2lkIFBsdWdpblZpZXc6OmludmFsaWRhdGVSZWN0KGNvbnN0IEludFJlY3Qm
IHJlY3QpCiB7CiAgICAgaWYgKG1faXNXaW5kb3dlZCkgewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9w
bHVnaW5zL3dpbi9QbHVnaW5WaWV3V2luLmNwcCBiL1dlYkNvcmUvcGx1Z2lucy93aW4vUGx1Z2lu
Vmlld1dpbi5jcHAKaW5kZXggOGRiYjA0Yi4uYWFmODAwZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9w
bHVnaW5zL3dpbi9QbHVnaW5WaWV3V2luLmNwcAorKysgYi9XZWJDb3JlL3BsdWdpbnMvd2luL1Bs
dWdpblZpZXdXaW4uY3BwCkBAIC04NzEsNiArODcxLDIyIEBAIGJvb2wgUGx1Z2luVmlldzo6cGxh
dGZvcm1HZXRWYWx1ZVN0YXRpYyhOUE5WYXJpYWJsZSwgdm9pZCosIE5QRXJyb3IqKQogICAgIHJl
dHVybiBmYWxzZTsKIH0KIAorYm9vbCBQbHVnaW5WaWV3OjpwbGF0Zm9ybUdldFZhbHVlRm9yVVJM
KE5QTlVSTFZhcmlhYmxlIHZhcmlhYmxlLCBjb25zdCBjaGFyKiB1cmwsIGNoYXIqKiB2YWx1ZSwg
dWludDMyX3QqIGxlbiwgTlBFcnJvciogcmVzdWx0KQoreworICAgIC8vIE5PVEU6IE5QTlVSTFZQ
cm94eSByZXF1aXJlcyBwbGF0Zm9ybSBzcGVjaWZpYyBpbXBsZW1lbnRhdGlvbiA7IG90aGVyd2lz
ZSwgTlBfR0VORVJJQ19FUlIgaXMgcmV0dXJuZWQgYnkgZGVmYXVsdC4KKyAgICByZXR1cm4gZmFs
c2U7Cit9CisKK2Jvb2wgUGx1Z2luVmlldzo6cGxhdGZvcm1TZXRWYWx1ZUZvclVSTChOUE5VUkxW
YXJpYWJsZSB2YXJpYWJsZSwgY29uc3QgY2hhciogdXJsLCBjb25zdCBjaGFyKiB2YWx1ZSwgdWlu
dDMyX3QgbGVuLCBOUEVycm9yKiByZXN1bHQpCit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCiti
b29sIFBsdWdpblZpZXc6OnBsYXRmb3JtR2V0QXV0aGVudGljYXRpb25JbmZvKGNvbnN0IGNoYXIq
IHByb3RvY29sLCBjb25zdCBjaGFyKiBob3N0LCBpbnQzMl90IHBvcnQsIGNvbnN0IGNoYXIqIHNj
aGVtZSwgY29uc3QgY2hhciAqcmVhbG0sIGNoYXIqKiB1c2VybmFtZSwgdWludDMyX3QqIHVsZW4s
IGNoYXIqKiBwYXNzd29yZCwgdWludDMyX3QqIHBsZW4sIE5QRXJyb3IqIHJlc3VsdCkKK3sKKyAg
ICByZXR1cm4gZmFsc2U7Cit9CisKIGJvb2wgUGx1Z2luVmlldzo6cGxhdGZvcm1HZXRWYWx1ZShO
UE5WYXJpYWJsZSB2YXJpYWJsZSwgdm9pZCogdmFsdWUsIE5QRXJyb3IqIHJlc3VsdCkKIHsKICAg
ICBzd2l0Y2ggKHZhcmlhYmxlKSB7Cg==
</data>
<flag name="review"
          id="53708"
          type_id="1"
          status="-"
          setter="kling"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65028</attachid>
            <date>2010-08-21 09:30:11 -0700</date>
            <delta_ts>2010-08-21 21:19:22 -0700</delta_ts>
            <desc>Implement NPN_GetValueForURL and NPN_SetValueForURL and NPN_GetAuthenticationInfo [Update VI]...</desc>
            <filename>implement_npn_functions_necessary_for_java_applet_support.patch</filename>
            <type>text/plain</type>
            <size>17229</size>
            <attacher name="Dawit A.">adawit</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
OGU2MThiYy4uMTY4OWViMCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0OCBAQAorMjAxMC0wOC0yMCAgRGF3aXQgQWxlbWF5
ZWh1ICA8YWRhd2l0QGtkZS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgSW1wbGVtZW50IE5QTl9HZXRWYWx1ZUZvclVSTCBhbmQgTlBOX1NldFZh
bHVlRm9yVVJMIGFuZCBOUE5fR2V0QXV0aGVudGljYXRpb25JbmZvLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQ1MzkKKworICAgICAgICBUaGVzZSBt
aXNzaW5nIE5QTiBmdW5jdGlvbnMgY2F1c2VzIEphdmEgYXBwbGV0cyB0byBjcmFzaCBpbiBwb3J0
cyBzdWNoCisgICAgICAgIGFzIFF0V2Via2l0IHRoYXQgcmVseSBvbiB3ZWJraXQgZm9yIEphdmEg
YXBwbGV0IHN1cHBvcnQuCisKKyAgICAgICAgKiBwbHVnaW5zL1BsdWdpbkRlYnVnLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OnByZXR0eU5hbWVGb3JOUE5VUkxWYXJpYWJsZSk6CisgICAgICAgICog
cGx1Z2lucy9QbHVnaW5EZWJ1Zy5oOgorICAgICAgICAqIHBsdWdpbnMvUGx1Z2luUGFja2FnZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5QYWNrYWdlOjppbml0aWFsaXplQnJvd3NlckZ1
bmNzKToKKyAgICAgICAgKiBwbHVnaW5zL1BsdWdpblZpZXcuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UGx1Z2luVmlldzo6Z2V0VmFsdWVGb3JVUkwpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2lu
Vmlldzo6c2V0VmFsdWVGb3JVUkwpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6Z2V0
QXV0aGVudGljYXRpb25JbmZvKToKKyAgICAgICAgKiBwbHVnaW5zL1BsdWdpblZpZXcuaDoKKyAg
ICAgICAgKiBwbHVnaW5zL2d0ay9QbHVnaW5WaWV3R3RrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlBsdWdpblZpZXc6OnBsYXRmb3JtR2V0VmFsdWVGb3JVUkwpOgorICAgICAgICAoV2ViQ29yZTo6
UGx1Z2luVmlldzo6cGxhdGZvcm1TZXRWYWx1ZUZvclVSTCk6CisgICAgICAgIChXZWJDb3JlOjpQ
bHVnaW5WaWV3OjpwbGF0Zm9ybUdldEF1dGhlbnRpY2F0aW9uSW5mbyk6CisgICAgICAgICogcGx1
Z2lucy9tYWMvUGx1Z2luVmlld01hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6
OnBsYXRmb3JtR2V0VmFsdWVGb3JVUkwpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6
cGxhdGZvcm1TZXRWYWx1ZUZvclVSTCk6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3Ojpw
bGF0Zm9ybUdldEF1dGhlbnRpY2F0aW9uSW5mbyk6CisgICAgICAgICogcGx1Z2lucy9ucGFwaS5j
cHA6CisgICAgICAgIChOUE5fR2V0VmFsdWVGb3JVUkwpOgorICAgICAgICAoTlBOX1NldFZhbHVl
Rm9yVVJMKToKKyAgICAgICAgKE5QTl9HZXRBdXRoZW50aWNhdGlvbkluZm8pOgorICAgICAgICAq
IHBsdWdpbnMvcXQvUGx1Z2luVmlld1F0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZp
ZXc6OnBsYXRmb3JtR2V0VmFsdWVGb3JVUkwpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmll
dzo6cGxhdGZvcm1HZXRBdXRoZW50aWNhdGlvbkluZm8pOgorICAgICAgICAoV2ViQ29yZTo6UGx1
Z2luVmlldzo6cGxhdGZvcm1TZXRWYWx1ZUZvclVSTCk6CisgICAgICAgICogcGx1Z2lucy9zeW1i
aWFuL1BsdWdpblZpZXdTeW1iaWFuLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6
OnBsYXRmb3JtR2V0VmFsdWVGb3JVUkwpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6
cGxhdGZvcm1TZXRWYWx1ZUZvclVSTCk6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3Ojpw
bGF0Zm9ybUdldEF1dGhlbnRpY2F0aW9uSW5mbyk6CisgICAgICAgICogcGx1Z2lucy93aW4vUGx1
Z2luVmlld1dpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpwbGF0Zm9ybUdl
dFZhbHVlRm9yVVJMKToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OnBsYXRmb3JtU2V0
VmFsdWVGb3JVUkwpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6cGxhdGZvcm1HZXRB
dXRoZW50aWNhdGlvbkluZm8pOgorCiAyMDEwLTA4LTIwICBHaXJpc2ggUmFtYWtyaXNobmFuICA8
Z2lyaXNoQGZvcndhcmRiaWFzLmluPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFyaXlhIEhpZGF5
YXQuCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luRGVidWcuY3BwIGIvV2ViQ29y
ZS9wbHVnaW5zL1BsdWdpbkRlYnVnLmNwcAppbmRleCBhY2U4YjIxLi40NWU5MGVmIDEwMDY0NAot
LS0gYS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luRGVidWcuY3BwCisrKyBiL1dlYkNvcmUvcGx1Z2lu
cy9QbHVnaW5EZWJ1Zy5jcHAKQEAgLTE2Myw2ICsxNjMsMTQgQEAgQ1N0cmluZyBwcmV0dHlOYW1l
Rm9yTlBQVmFyaWFibGUoTlBQVmFyaWFibGUgdmFyaWFibGUsIHZvaWQqIHZhbHVlKQogICAgIH0K
IH0KIAorQ1N0cmluZyBwcmV0dHlOYW1lRm9yTlBOVVJMVmFyaWFibGUoTlBOVVJMVmFyaWFibGUg
dmFyaWFibGUpCit7CisgICAgc3dpdGNoICh2YXJpYWJsZSkgeworICAgIGNhc2UgTlBOVVJMVkNv
b2tpZTogcmV0dXJuICJOUE5VUkxWQ29va2llIjsKKyAgICBjYXNlIE5QTlVSTFZQcm94eTogcmV0
dXJuICJOUE5VUkxWUHJveHkiOworICAgIGRlZmF1bHQ6IHJldHVybiAiVW5rb3duIHZhcmlhYmxl
IjsKKyAgICB9Cit9CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyAhTE9HX0RJ
U0FCTEVECmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luRGVidWcuaCBiL1dlYkNv
cmUvcGx1Z2lucy9QbHVnaW5EZWJ1Zy5oCmluZGV4IDI1NDg2NGYuLjAxN2U2ODYgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5EZWJ1Zy5oCisrKyBiL1dlYkNvcmUvcGx1Z2lucy9Q
bHVnaW5EZWJ1Zy5oCkBAIC00MSw2ICs0MSw3IEBAIGNvbnN0IGNoYXIqIHByZXR0eU5hbWVGb3JO
UEVycm9yKE5QRXJyb3IgZXJyb3IpOwogCiBDU3RyaW5nIHByZXR0eU5hbWVGb3JOUE5WYXJpYWJs
ZShOUE5WYXJpYWJsZSB2YXJpYWJsZSk7CiBDU3RyaW5nIHByZXR0eU5hbWVGb3JOUFBWYXJpYWJs
ZShOUFBWYXJpYWJsZSB2YXJpYWJsZSwgdm9pZCogdmFsdWUpOworQ1N0cmluZyBwcmV0dHlOYW1l
Rm9yTlBOVVJMVmFyaWFibGUoTlBOVVJMVmFyaWFibGUgdmFyaWFibGUpOwogCiAjaWZkZWYgWFBf
TUFDT1NYCiBjb25zdCBjaGFyKiBwcmV0dHlOYW1lRm9yRHJhd2luZ01vZGVsKE5QRHJhd2luZ01v
ZGVsIGRyYXdpbmdNb2RlbCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luUGFj
a2FnZS5jcHAgYi9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luUGFja2FnZS5jcHAKaW5kZXggYmY5NzBm
Mi4uNjUzYjI0ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblBhY2thZ2UuY3Bw
CisrKyBiL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5QYWNrYWdlLmNwcApAQCAtMzA1LDYgKzMwNSw5
IEBAIHZvaWQgUGx1Z2luUGFja2FnZTo6aW5pdGlhbGl6ZUJyb3dzZXJGdW5jcygpCiAgICAgbV9i
cm93c2VyRnVuY3Muc2V0ZXhjZXB0aW9uID0gX05QTl9TZXRFeGNlcHRpb247CiAgICAgbV9icm93
c2VyRnVuY3MuZW51bWVyYXRlID0gX05QTl9FbnVtZXJhdGU7CiAgICAgbV9icm93c2VyRnVuY3Mu
Y29uc3RydWN0ID0gX05QTl9Db25zdHJ1Y3Q7CisgICAgbV9icm93c2VyRnVuY3MuZ2V0dmFsdWVm
b3J1cmwgPSBOUE5fR2V0VmFsdWVGb3JVUkw7CisgICAgbV9icm93c2VyRnVuY3Muc2V0dmFsdWVm
b3J1cmwgPSBOUE5fU2V0VmFsdWVGb3JVUkw7CisgICAgbV9icm93c2VyRnVuY3MuZ2V0YXV0aGVu
dGljYXRpb25pbmZvID0gTlBOX0dldEF1dGhlbnRpY2F0aW9uSW5mbzsKIH0KICNlbmRpZgogCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5jcHAgYi9XZWJDb3JlL3BsdWdp
bnMvUGx1Z2luVmlldy5jcHAKaW5kZXggYmVlOGRjZC4uN2VhZjliMSAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9wbHVnaW5zL1BsdWdpblZpZXcuY3BwCisrKyBiL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5W
aWV3LmNwcApAQCAtMzAsNiArMzAsNyBAQAogCiAjaW5jbHVkZSAiQnJpZGdlLmgiCiAjaW5jbHVk
ZSAiQ2hyb21lLmgiCisjaW5jbHVkZSAiQ29va2llSmFyLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQu
aCIKICNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKQEAg
LTEzNzcsNiArMTM3OCw4NyBAQCBOUEVycm9yIFBsdWdpblZpZXc6OmdldFZhbHVlKE5QTlZhcmlh
YmxlIHZhcmlhYmxlLCB2b2lkKiB2YWx1ZSkKICAgICAgICAgcmV0dXJuIE5QRVJSX0dFTkVSSUNf
RVJST1I7CiAgICAgfQogfQorCitOUEVycm9yIFBsdWdpblZpZXc6OmdldFZhbHVlRm9yVVJMKE5Q
TlVSTFZhcmlhYmxlIHZhcmlhYmxlLCBjb25zdCBjaGFyKiB1cmwsIGNoYXIqKiB2YWx1ZSwgdWlu
dDMyX3QqIGxlbikKK3sKKyAgICBMT0coUGx1Z2lucywgIlBsdWdpblZpZXc6OmdldFZhbHVlRm9y
VVJMKCVzKSIsIHByZXR0eU5hbWVGb3JOUE5VUkxWYXJpYWJsZSh2YXJpYWJsZSkuZGF0YSgpKTsK
KworICAgIE5QRXJyb3IgcmVzdWx0OworICAgIGlmIChwbGF0Zm9ybUdldFZhbHVlRm9yVVJMKHZh
cmlhYmxlLCB1cmwsIHZhbHVlLCBsZW4sICZyZXN1bHQpKQorICAgICAgICByZXR1cm4gcmVzdWx0
OworCisgICAgc3dpdGNoICh2YXJpYWJsZSkgeworICAgIGNhc2UgTlBOVVJMVkNvb2tpZTogewor
ICAgICAgICBLVVJMIHUobV9iYXNlVVJMLCB1cmwpOworICAgICAgICBpZiAodS5pc1ZhbGlkKCkp
IHsKKyAgICAgICAgICAgIFN0cmluZyBjb29raWVTdHIgPSBjb29raWVzKG1fcGFyZW50RnJhbWUt
PmRvY3VtZW50KCksIHUpOworICAgICAgICAgICAgaWYgKCFjb29raWVTdHIuaXNFbXB0eSgpKSB7
CisgICAgICAgICAgICAgICAgKnZhbHVlID0gc3RhdGljX2Nhc3Q8Y2hhcio+KE5QTl9NZW1BbGxv
Yyhjb29raWVTdHIubGVuZ3RoKCkgKyAxKSk7CisgICAgICAgICAgICAgICAgc3RybmNweSgqdmFs
dWUsIGNvb2tpZVN0ci51dGY4KCkuZGF0YSgpLCBjb29raWVTdHIubGVuZ3RoKCkgKyAxKTsKKyAg
ICAgICAgICAgICAgICBpZiAobGVuKQorICAgICAgICAgICAgICAgICAgICAqbGVuID0gc3RybGVu
KCp2YWx1ZSk7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gTlBFUlJfTk9fRVJST1I7CisgICAg
ICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGNhc2UgTlBO
VVJMVlByb3h5OgorICAgICAgICByZXN1bHQgPSBOUEVSUl9HRU5FUklDX0VSUk9SOworICAgICAg
ICBMT0coUGx1Z2lucywgIlBsdWdpblZpZXc6OmdldFZhbHVlRm9yVVJMKCVzKTogTmVlZCB0byBp
bXBsZW1lbnQgUGx1Z2luVmlldzo6cGxhdGZvcm1HZXRWYWx1ZUZvclVSTCEiLCBwcmV0dHlOYW1l
Rm9yTlBOVVJMVmFyaWFibGUodmFyaWFibGUpLmRhdGEoKSk7CisgICAgICAgIGJyZWFrOworICAg
IGRlZmF1bHQ6CisgICAgICAgIHJlc3VsdCA9IE5QRVJSX0dFTkVSSUNfRVJST1I7CisgICAgICAg
IExPRyhQbHVnaW5zLCAiUGx1Z2luVmlldzo6Z2V0VmFsdWVGb3JVUkwoJXMpOiBVbmtub3duIHZh
cmlhYmxlIHR5cGUuIiwgcHJldHR5TmFtZUZvck5QTlVSTFZhcmlhYmxlKHZhcmlhYmxlKS5kYXRh
KCkpOworICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICByZXR1cm4gcmVzdWx0OworfQorCisK
K05QRXJyb3IgUGx1Z2luVmlldzo6c2V0VmFsdWVGb3JVUkwoTlBOVVJMVmFyaWFibGUgdmFyaWFi
bGUsIGNvbnN0IGNoYXIqIHVybCwgY29uc3QgY2hhciogdmFsdWUsIHVpbnQzMl90IGxlbikKK3sK
KyAgICBMT0coUGx1Z2lucywgIlBsdWdpblZpZXc6OnNldFZhbHVlRm9yVVJMKCVzKSIsIHByZXR0
eU5hbWVGb3JOUE5VUkxWYXJpYWJsZSh2YXJpYWJsZSkuZGF0YSgpKTsKKworICAgIE5QRXJyb3Ig
cmVzdWx0OworICAgIGlmIChwbGF0Zm9ybVNldFZhbHVlRm9yVVJMKHZhcmlhYmxlLCB1cmwsIHZh
bHVlLCBsZW4sICZyZXN1bHQpKQorICAgICAgICByZXR1cm4gcmVzdWx0OworCisgICAgcmVzdWx0
ID0gTlBFUlJfR0VORVJJQ19FUlJPUjsKKworICAgIHN3aXRjaCAodmFyaWFibGUpIHsKKyAgICBj
YXNlIE5QTlVSTFZDb29raWU6IHsKKyAgICAgICAgS1VSTCB1KG1fYmFzZVVSTCwgdXJsKTsKKyAg
ICAgICAgaWYgKHUuaXNWYWxpZCgpKSB7CisgICAgICAgICAgICBTdHJpbmcgY29va2llU3RyID0g
U3RyaW5nOjpmcm9tVVRGOCh2YWx1ZSwgbGVuKTsKKyAgICAgICAgICAgIGlmICghY29va2llU3Ry
LmlzRW1wdHkoKSkgeworICAgICAgICAgICAgICAgIHNldENvb2tpZXMobV9wYXJlbnRGcmFtZS0+
ZG9jdW1lbnQoKSwgdSwgY29va2llU3RyKTsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBOUEVS
Ul9OT19FUlJPUjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAg
ICB9CisgICAgY2FzZSBOUE5VUkxWUHJveHk6CisgICAgICAgIExPRyhQbHVnaW5zLCAiUGx1Z2lu
Vmlldzo6c2V0VmFsdWVGb3JVUkwoJXMpOiBQbHVnaW5zIGFyZSBOT1QgYWxsb3dlZCB0byBzZXQg
cHJveHkgaW5mb3JtYXRpb24uIiwgcHJldHR5TmFtZUZvck5QTlVSTFZhcmlhYmxlKHZhcmlhYmxl
KS5kYXRhKCkpOworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBMT0coUGx1
Z2lucywgIlBsdWdpblZpZXc6OnNldFZhbHVlRm9yVVJMKCVzKTogVW5rbm93biB2YXJpYWJsZSB0
eXBlLiIsIHByZXR0eU5hbWVGb3JOUE5VUkxWYXJpYWJsZSh2YXJpYWJsZSkuZGF0YSgpKTsKKyAg
ICAgICAgYnJlYWs7CisgICAgfQorCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworTlBFcnJvciBQ
bHVnaW5WaWV3OjpnZXRBdXRoZW50aWNhdGlvbkluZm8oY29uc3QgY2hhciogcHJvdG9jb2wsIGNv
bnN0IGNoYXIqIGhvc3QsIGludDMyX3QgcG9ydCwgY29uc3QgY2hhciogc2NoZW1lLCBjb25zdCBj
aGFyICpyZWFsbSwgY2hhcioqIHVzZXJuYW1lLCB1aW50MzJfdCogdWxlbiwgY2hhcioqIHBhc3N3
b3JkLCB1aW50MzJfdCogcGxlbikKK3sKKyAgICBMT0coUGx1Z2lucywgIlBsdWdpblZpZXc6Omdl
dEF1dGhlbnRpY2F0aW9uSW5mbzogcHJvdG9jb2w9JXMsIGhvc3Q9JXMsIHBvcnQ9JWQiLCBwcm90
b2NvbCwgaG9zdCwgcG9ydCk7CisKKyAgICBOUEVycm9yIHJlc3VsdDsKKyAgICBpZiAocGxhdGZv
cm1HZXRBdXRoZW50aWNhdGlvbkluZm8ocHJvdG9jb2wsIGhvc3QsIHBvcnQsIHNjaGVtZSwgcmVh
bG0sIHVzZXJuYW1lLCB1bGVuLCBwYXNzd29yZCwgcGxlbiwgJnJlc3VsdCkpCisgICAgICAgIHJl
dHVybiByZXN1bHQ7CisKKyAgICByZXR1cm4gTlBFUlJfR0VORVJJQ19FUlJPUjsKK30KICNlbmRp
ZgogCiB2b2lkIFBsdWdpblZpZXc6OnByaXZhdGVCcm93c2luZ1N0YXRlQ2hhbmdlZChib29sIHBy
aXZhdGVCcm93c2luZ0VuYWJsZWQpCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2lu
Vmlldy5oIGIvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcuaAppbmRleCBhMWU3NTI0Li4wMDUy
MjE4IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5oCisrKyBiL1dlYkNv
cmUvcGx1Z2lucy9QbHVnaW5WaWV3LmgKQEAgLTE2NSw2ICsxNjUsOSBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgICAgIE5QRXJyb3IgZ2V0VmFsdWUoTlBOVmFyaWFibGUgdmFyaWFibGUsIHZv
aWQqIHZhbHVlKTsKICAgICAgICAgc3RhdGljIE5QRXJyb3IgZ2V0VmFsdWVTdGF0aWMoTlBOVmFy
aWFibGUgdmFyaWFibGUsIHZvaWQqIHZhbHVlKTsKICAgICAgICAgTlBFcnJvciBzZXRWYWx1ZShO
UFBWYXJpYWJsZSB2YXJpYWJsZSwgdm9pZCogdmFsdWUpOworICAgICAgICBOUEVycm9yIGdldFZh
bHVlRm9yVVJMKE5QTlVSTFZhcmlhYmxlIHZhcmlhYmxlLCBjb25zdCBjaGFyKiB1cmwsIGNoYXIq
KiB2YWx1ZSwgdWludDMyX3QqIGxlbik7CisgICAgICAgIE5QRXJyb3Igc2V0VmFsdWVGb3JVUkwo
TlBOVVJMVmFyaWFibGUgdmFyaWFibGUsIGNvbnN0IGNoYXIqIHVybCwgY29uc3QgY2hhciogdmFs
dWUsIHVpbnQzMl90IGxlbik7CisgICAgICAgIE5QRXJyb3IgZ2V0QXV0aGVudGljYXRpb25JbmZv
KGNvbnN0IGNoYXIqIHByb3RvY29sLCBjb25zdCBjaGFyKiBob3N0LCBpbnQzMl90IHBvcnQsIGNv
bnN0IGNoYXIqIHNjaGVtZSwgY29uc3QgY2hhciAqcmVhbG0sIGNoYXIqKiB1c2VybmFtZSwgdWlu
dDMyX3QqIHVsZW4sIGNoYXIqKiBwYXNzd29yZCwgdWludDMyX3QqIHBsZW4pOwogICAgICAgICB2
b2lkIGludmFsaWRhdGVSZWN0KE5QUmVjdCopOwogICAgICAgICB2b2lkIGludmFsaWRhdGVSZWdp
b24oTlBSZWdpb24pOwogI2VuZGlmCkBAIC0yNzIsNiArMjc1LDkgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQogICAgICAgICBzdGF0aWMgYm9v
bCBwbGF0Zm9ybUdldFZhbHVlU3RhdGljKE5QTlZhcmlhYmxlIHZhcmlhYmxlLCB2b2lkKiB2YWx1
ZSwgTlBFcnJvciogcmVzdWx0KTsKICAgICAgICAgYm9vbCBwbGF0Zm9ybUdldFZhbHVlKE5QTlZh
cmlhYmxlIHZhcmlhYmxlLCB2b2lkKiB2YWx1ZSwgTlBFcnJvciogcmVzdWx0KTsKKyAgICAgICAg
Ym9vbCBwbGF0Zm9ybUdldFZhbHVlRm9yVVJMKE5QTlVSTFZhcmlhYmxlIHZhcmlhYmxlLCBjb25z
dCBjaGFyKiB1cmwsIGNoYXIqKiB2YWx1ZSwgdWludDMyX3QqIGxlbiwgTlBFcnJvciogcmVzdWx0
KTsKKyAgICAgICAgYm9vbCBwbGF0Zm9ybVNldFZhbHVlRm9yVVJMKE5QTlVSTFZhcmlhYmxlIHZh
cmlhYmxlLCBjb25zdCBjaGFyKiB1cmwsIGNvbnN0IGNoYXIqIHZhbHVlLCB1aW50MzJfdCBsZW4s
IE5QRXJyb3IqIHJlc3VsdCk7CisgICAgICAgIGJvb2wgcGxhdGZvcm1HZXRBdXRoZW50aWNhdGlv
bkluZm8oY29uc3QgY2hhciogcHJvdG9jb2wsIGNvbnN0IGNoYXIqIGhvc3QsIGludDMyX3QgcG9y
dCwgY29uc3QgY2hhciogc2NoZW1lLCBjb25zdCBjaGFyICpyZWFsbSwgY2hhcioqIHVzZXJuYW1l
LCB1aW50MzJfdCogdWxlbiwgY2hhcioqIHBhc3N3b3JkLCB1aW50MzJfdCogcGxlbiwgTlBFcnJv
ciogcmVzdWx0KTsKICNlbmRpZgogCiAgICAgICAgIFJlZlB0cjxGcmFtZT4gbV9wYXJlbnRGcmFt
ZTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGx1Z2lucy9ndGsvUGx1Z2luVmlld0d0ay5jcHAgYi9X
ZWJDb3JlL3BsdWdpbnMvZ3RrL1BsdWdpblZpZXdHdGsuY3BwCmluZGV4IGFiNDNiZjQuLmMzZTJh
NjQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGx1Z2lucy9ndGsvUGx1Z2luVmlld0d0ay5jcHAKKysr
IGIvV2ViQ29yZS9wbHVnaW5zL2d0ay9QbHVnaW5WaWV3R3RrLmNwcApAQCAtNjY5LDYgKzY2OSwy
MiBAQCBib29sIFBsdWdpblZpZXc6OnBsYXRmb3JtR2V0VmFsdWUoTlBOVmFyaWFibGUgdmFyaWFi
bGUsIHZvaWQqIHZhbHVlLCBOUEVycm9yKiByZQogICAgIH0KIH0KIAorYm9vbCBQbHVnaW5WaWV3
OjpwbGF0Zm9ybUdldFZhbHVlRm9yVVJMKE5QTlVSTFZhcmlhYmxlIHZhcmlhYmxlLCBjb25zdCBj
aGFyKiB1cmwsIGNoYXIqKiB2YWx1ZSwgdWludDMyX3QqIGxlbiwgTlBFcnJvciogcmVzdWx0KQor
eworICAgIC8vIE5PVEU6IE5QTlVSTFZQcm94eSByZXF1aXJlcyBwbGF0Zm9ybSBzcGVjaWZpYyBp
bXBsZW1lbnRhdGlvbiA7IG90aGVyd2lzZSwgTlBfR0VORVJJQ19FUlIgaXMgcmV0dXJuZWQgYnkg
ZGVmYXVsdC4KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgUGx1Z2luVmlldzo6cGxhdGZv
cm1TZXRWYWx1ZUZvclVSTChOUE5VUkxWYXJpYWJsZSB2YXJpYWJsZSwgY29uc3QgY2hhciogdXJs
LCBjb25zdCBjaGFyKiB2YWx1ZSwgdWludDMyX3QgbGVuLCBOUEVycm9yKiByZXN1bHQpCit7Cisg
ICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIFBsdWdpblZpZXc6OnBsYXRmb3JtR2V0QXV0aGVu
dGljYXRpb25JbmZvKGNvbnN0IGNoYXIqIHByb3RvY29sLCBjb25zdCBjaGFyKiBob3N0LCBpbnQz
Ml90IHBvcnQsIGNvbnN0IGNoYXIqIHNjaGVtZSwgY29uc3QgY2hhciAqcmVhbG0sIGNoYXIqKiB1
c2VybmFtZSwgdWludDMyX3QqIHVsZW4sIGNoYXIqKiBwYXNzd29yZCwgdWludDMyX3QqIHBsZW4s
IE5QRXJyb3IqIHJlc3VsdCkKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIHZvaWQgUGx1Z2lu
Vmlldzo6aW52YWxpZGF0ZVJlY3QoY29uc3QgSW50UmVjdCYgcmVjdCkKIHsKICAgICBpZiAobV9p
c1dpbmRvd2VkKSB7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvbWFjL1BsdWdpblZpZXdN
YWMubW0gYi9XZWJDb3JlL3BsdWdpbnMvbWFjL1BsdWdpblZpZXdNYWMubW0KaW5kZXggZTBhZDEz
NS4uZjRmN2QxMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbHVnaW5zL21hYy9QbHVnaW5WaWV3TWFj
Lm1tCisrKyBiL1dlYkNvcmUvcGx1Z2lucy9tYWMvUGx1Z2luVmlld01hYy5tbQpAQCAtMzA4LDYg
KzMwOCwyMiBAQCBib29sIFBsdWdpblZpZXc6OnBsYXRmb3JtR2V0VmFsdWUoTlBOVmFyaWFibGUg
dmFyaWFibGUsIHZvaWQqIHZhbHVlLCBOUEVycm9yKiBlcgogICAgIHJldHVybiBmYWxzZTsKIH0K
IAorYm9vbCBQbHVnaW5WaWV3OjpwbGF0Zm9ybUdldFZhbHVlRm9yVVJMKE5QTlVSTFZhcmlhYmxl
IHZhcmlhYmxlLCBjb25zdCBjaGFyKiB1cmwsIGNoYXIqKiB2YWx1ZSwgdWludDMyX3QqIGxlbiwg
TlBFcnJvciogcmVzdWx0KQoreworICAgIC8vIE5PVEU6IE5QTlVSTFZQcm94eSByZXF1aXJlcyBw
bGF0Zm9ybSBzcGVjaWZpYyBpbXBsZW1lbnRhdGlvbiA7IG90aGVyd2lzZSwgTlBfR0VORVJJQ19F
UlIgaXMgcmV0dXJuZWQgYnkgZGVmYXVsdC4KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wg
UGx1Z2luVmlldzo6cGxhdGZvcm1TZXRWYWx1ZUZvclVSTChOUE5VUkxWYXJpYWJsZSB2YXJpYWJs
ZSwgY29uc3QgY2hhciogdXJsLCBjb25zdCBjaGFyKiB2YWx1ZSwgdWludDMyX3QgbGVuLCBOUEVy
cm9yKiByZXN1bHQpCit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIFBsdWdpblZpZXc6
OnBsYXRmb3JtR2V0QXV0aGVudGljYXRpb25JbmZvKGNvbnN0IGNoYXIqIHByb3RvY29sLCBjb25z
dCBjaGFyKiBob3N0LCBpbnQzMl90IHBvcnQsIGNvbnN0IGNoYXIqIHNjaGVtZSwgY29uc3QgY2hh
ciAqcmVhbG0sIGNoYXIqKiB1c2VybmFtZSwgdWludDMyX3QqIHVsZW4sIGNoYXIqKiBwYXNzd29y
ZCwgdWludDMyX3QqIHBsZW4sIE5QRXJyb3IqIHJlc3VsdCkKK3sKKyAgICByZXR1cm4gZmFsc2U7
Cit9CisKIHZvaWQgUGx1Z2luVmlldzo6c2V0UGFyZW50KFNjcm9sbFZpZXcqIHBhcmVudCkKIHsK
ICAgICBMT0coUGx1Z2lucywgIlBsdWdpblZpZXc6OnNldFBhcmVudCglcCkiLCBwYXJlbnQpOwpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9wbHVnaW5zL25wYXBpLmNwcCBiL1dlYkNvcmUvcGx1Z2lucy9u
cGFwaS5jcHAKaW5kZXggZDBkYjg0NS4uYjE4ZTc3ZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbHVn
aW5zL25wYXBpLmNwcAorKysgYi9XZWJDb3JlL3BsdWdpbnMvbnBhcGkuY3BwCkBAIC0xNzUsMyAr
MTc1LDE4IEBAIHZvaWQgTlBOX1BsdWdpblRocmVhZEFzeW5jQ2FsbChOUFAgaW5zdGFuY2UsIHZv
aWQgKCpmdW5jKSAodm9pZCAqKSwgdm9pZCAqdXNlckRhCiB7CiAgICAgUGx1Z2luTWFpblRocmVh
ZFNjaGVkdWxlcjo6c2NoZWR1bGVyKCkuc2NoZWR1bGVDYWxsKGluc3RhbmNlLCBmdW5jLCB1c2Vy
RGF0YSk7CiB9CisKK05QRXJyb3IgTlBOX0dldFZhbHVlRm9yVVJMKE5QUCBpbnN0YW5jZSwgTlBO
VVJMVmFyaWFibGUgdmFyaWFibGUsIGNvbnN0IGNoYXIqIHVybCwgY2hhcioqIHZhbHVlLCB1aW50
MzJfdCogbGVuKQoreworICAgIHJldHVybiBwbHVnaW5WaWV3Rm9ySW5zdGFuY2UoaW5zdGFuY2Up
LT5nZXRWYWx1ZUZvclVSTCh2YXJpYWJsZSwgdXJsLCB2YWx1ZSwgbGVuKTsKK30KKworTlBFcnJv
ciBOUE5fU2V0VmFsdWVGb3JVUkwoTlBQIGluc3RhbmNlLCBOUE5VUkxWYXJpYWJsZSB2YXJpYWJs
ZSwgY29uc3QgY2hhciogdXJsLCBjb25zdCBjaGFyKiB2YWx1ZSwgdWludDMyX3QgbGVuKQorewor
ICAgIHJldHVybiBwbHVnaW5WaWV3Rm9ySW5zdGFuY2UoaW5zdGFuY2UpLT5zZXRWYWx1ZUZvclVS
TCh2YXJpYWJsZSwgdXJsLCB2YWx1ZSwgbGVuKTsKK30KKworTlBFcnJvciBOUE5fR2V0QXV0aGVu
dGljYXRpb25JbmZvKE5QUCBpbnN0YW5jZSwgY29uc3QgY2hhciogcHJvdG9jb2wsIGNvbnN0IGNo
YXIqIGhvc3QsIGludDMyX3QgcG9ydCwgY29uc3QgY2hhciogc2NoZW1lLCBjb25zdCBjaGFyICpy
ZWFsbSwgY2hhcioqIHVzZXJuYW1lLCB1aW50MzJfdCogdWxlbiwgY2hhcioqIHBhc3N3b3JkLCB1
aW50MzJfdCogcGxlbikKK3sKKyAgICByZXR1cm4gcGx1Z2luVmlld0Zvckluc3RhbmNlKGluc3Rh
bmNlKS0+Z2V0QXV0aGVudGljYXRpb25JbmZvKHByb3RvY29sLCBob3N0LCBwb3J0LCBzY2hlbWUs
IHJlYWxtLCB1c2VybmFtZSwgdWxlbiwgcGFzc3dvcmQsIHBsZW4pOworfQpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9wbHVnaW5zL3F0L1BsdWdpblZpZXdRdC5jcHAgYi9XZWJDb3JlL3BsdWdpbnMvcXQv
UGx1Z2luVmlld1F0LmNwcAppbmRleCA1YzY4MWI4Li40M2VhZTQ2IDEwMDY0NAotLS0gYS9XZWJD
b3JlL3BsdWdpbnMvcXQvUGx1Z2luVmlld1F0LmNwcAorKysgYi9XZWJDb3JlL3BsdWdpbnMvcXQv
UGx1Z2luVmlld1F0LmNwcApAQCAtNjYsNiArNjYsNyBAQAogI2luY2x1ZGUgPFFBcHBsaWNhdGlv
bj4KICNpbmNsdWRlIDxRRGVza3RvcFdpZGdldD4KICNpbmNsdWRlIDxRS2V5RXZlbnQ+CisjaW5j
bHVkZSA8UU5ldHdvcmtQcm94eT4KICNpbmNsdWRlIDxRUGFpbnRlcj4KICNpbmNsdWRlIDxRV2lk
Z2V0PgogI2luY2x1ZGUgPFFYMTFJbmZvPgpAQCAtNzE4LDYgKzcxOSw2MSBAQCBib29sIFBsdWdp
blZpZXc6OnBsYXRmb3JtR2V0VmFsdWUoTlBOVmFyaWFibGUgdmFyaWFibGUsIHZvaWQqIHZhbHVl
LCBOUEVycm9yKiByZQogICAgIH0KIH0KIAorYm9vbCBQbHVnaW5WaWV3OjpwbGF0Zm9ybUdldFZh
bHVlRm9yVVJMKE5QTlVSTFZhcmlhYmxlIHZhcmlhYmxlLCBjb25zdCBjaGFyKiB1cmwsIGNoYXIq
KiB2YWx1ZSwgdWludDMyX3QqIGxlbiwgTlBFcnJvciogcmVzdWx0KQoreworICAgIGlmICh2YXJp
YWJsZSA9PSBOUE5VUkxWUHJveHkpIHsKKyAgICAgICAgUVN0cmluZyBwcm94eVN0cjsKKyAgICAg
ICAgUU5ldHdvcmtQcm94eSBwcm94eSA9IFFOZXR3b3JrUHJveHk6OmFwcGxpY2F0aW9uUHJveHko
KTsKKworICAgICAgICBzd2l0Y2ggKHByb3h5LnR5cGUoKSkgeworICAgICAgICBjYXNlIFFOZXR3
b3JrUHJveHk6OlNvY2tzNVByb3h5OiB7CisgICAgICAgICAgICBwcm94eVN0ciA9IFFMYXRpbjFT
dHJpbmcoIlNPQ0tTICIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAg
Y2FzZSBRTmV0d29ya1Byb3h5OjpIdHRwUHJveHk6CisgICAgICAgIGNhc2UgUU5ldHdvcmtQcm94
eTo6SHR0cENhY2hpbmdQcm94eToKKyAgICAgICAgY2FzZSBRTmV0d29ya1Byb3h5OjpGdHBDYWNo
aW5nUHJveHk6IHsKKyAgICAgICAgICAgIHByb3h5U3RyID0gUUxhdGluMVN0cmluZygiUFJPWFkg
Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBjYXNlIFFOZXR3b3Jr
UHJveHk6OkRlZmF1bHRQcm94eToKKyAgICAgICAgY2FzZSBRTmV0d29ya1Byb3h5OjpOb1Byb3h5
OgorICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcHJveHlTdHIgPSBRTGF0aW4xU3RyaW5n
KCJESVJFQ1QiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgaWYg
KHByb3h5U3RyICE9IFFMYXRpbjFTdHJpbmcoIkRJUkVDVCIpKSB7CisgICAgICAgICAgICBwcm94
eVN0ciArPSBwcm94eS5ob3N0TmFtZSgpOworICAgICAgICAgICAgaWYgKHByb3h5LnBvcnQoKSA+
IDApIHsKKyAgICAgICAgICAgICAgICBwcm94eVN0ciArPSBRTGF0aW4xQ2hhcignOicpOworICAg
ICAgICAgICAgICAgIHByb3h5U3RyICs9IFFTdHJpbmc6Om51bWJlcihwcm94eS5wb3J0KCkpOwor
ICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgKnZhbHVlID0gc3RhdGljX2Nhc3Q8
Y2hhcio+KE5QTl9NZW1BbGxvYyhwcm94eVN0ci5sZW5ndGgoKSArIDEpKTsKKyAgICAgICAgc3Ry
bmNweSgqdmFsdWUsIHByb3h5U3RyLnRvVXRmOCgpLmNvbnN0RGF0YSgpLCBwcm94eVN0ci5sZW5n
dGgoKSArIDEpOworICAgICAgICBpZiAobGVuKQorICAgICAgICAgICAgKmxlbiA9IHN0cmxlbigq
dmFsdWUpOworICAgICAgICBpZiAocmVzdWx0KQorICAgICAgICAgICAgKnJlc3VsdCA9IE5QRVJS
X05PX0VSUk9SOworCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHJldHVybiBm
YWxzZTsKK30KKworYm9vbCBQbHVnaW5WaWV3OjpwbGF0Zm9ybUdldEF1dGhlbnRpY2F0aW9uSW5m
byhjb25zdCBjaGFyKiBwcm90b2NvbCwgY29uc3QgY2hhciogaG9zdCwgaW50MzJfdCBwb3J0LCBj
b25zdCBjaGFyKiBzY2hlbWUsIGNvbnN0IGNoYXIgKnJlYWxtLCBjaGFyKiogdXNlcm5hbWUsIHVp
bnQzMl90KiB1bGVuLCBjaGFyKiogcGFzc3dvcmQsIHVpbnQzMl90KiBwbGVuLCBOUEVycm9yKiBy
ZXN1bHQpCit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIFBsdWdpblZpZXc6OnBsYXRm
b3JtU2V0VmFsdWVGb3JVUkwoTlBOVVJMVmFyaWFibGUgdmFyaWFibGUsIGNvbnN0IGNoYXIqIHVy
bCwgY29uc3QgY2hhciogdmFsdWUsIHVpbnQzMl90IGxlbiwgTlBFcnJvciogcmVzdWx0KQorewor
ICAgIHJldHVybiBmYWxzZTsKK30KKwogdm9pZCBQbHVnaW5WaWV3OjppbnZhbGlkYXRlUmVjdChj
b25zdCBJbnRSZWN0JiByZWN0KQogewogICAgIGlmIChtX2lzV2luZG93ZWQpIHsKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvcGx1Z2lucy9zeW1iaWFuL1BsdWdpblZpZXdTeW1iaWFuLmNwcCBiL1dlYkNv
cmUvcGx1Z2lucy9zeW1iaWFuL1BsdWdpblZpZXdTeW1iaWFuLmNwcAppbmRleCBiOWY4MmFkLi40
ZjBkN2VmIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsdWdpbnMvc3ltYmlhbi9QbHVnaW5WaWV3U3lt
Ymlhbi5jcHAKKysrIGIvV2ViQ29yZS9wbHVnaW5zL3N5bWJpYW4vUGx1Z2luVmlld1N5bWJpYW4u
Y3BwCkBAIC0zMzgsNiArMzM4LDIyIEBAIGJvb2wgUGx1Z2luVmlldzo6cGxhdGZvcm1HZXRWYWx1
ZShOUE5WYXJpYWJsZSwgdm9pZCosIE5QRXJyb3IqKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAor
Ym9vbCBQbHVnaW5WaWV3OjpwbGF0Zm9ybUdldFZhbHVlRm9yVVJMKE5QTlVSTFZhcmlhYmxlIHZh
cmlhYmxlLCBjb25zdCBjaGFyKiB1cmwsIGNoYXIqKiB2YWx1ZSwgdWludDMyX3QqIGxlbiwgTlBF
cnJvciogcmVzdWx0KQoreworICAgIC8vIE5PVEU6IE5QTlVSTFZQcm94eSByZXF1aXJlcyBwbGF0
Zm9ybSBzcGVjaWZpYyBpbXBsZW1lbnRhdGlvbiA7IG90aGVyd2lzZSwgTlBfR0VORVJJQ19FUlIg
aXMgcmV0dXJuZWQgYnkgZGVmYXVsdC4KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgUGx1
Z2luVmlldzo6cGxhdGZvcm1TZXRWYWx1ZUZvclVSTChOUE5VUkxWYXJpYWJsZSB2YXJpYWJsZSwg
Y29uc3QgY2hhciogdXJsLCBjb25zdCBjaGFyKiB2YWx1ZSwgdWludDMyX3QgbGVuLCBOUEVycm9y
KiByZXN1bHQpCit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIFBsdWdpblZpZXc6OnBs
YXRmb3JtR2V0QXV0aGVudGljYXRpb25JbmZvKGNvbnN0IGNoYXIqIHByb3RvY29sLCBjb25zdCBj
aGFyKiBob3N0LCBpbnQzMl90IHBvcnQsIGNvbnN0IGNoYXIqIHNjaGVtZSwgY29uc3QgY2hhciAq
cmVhbG0sIGNoYXIqKiB1c2VybmFtZSwgdWludDMyX3QqIHVsZW4sIGNoYXIqKiBwYXNzd29yZCwg
dWludDMyX3QqIHBsZW4sIE5QRXJyb3IqIHJlc3VsdCkKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9
CisKIHZvaWQgUGx1Z2luVmlldzo6aW52YWxpZGF0ZVJlY3QoY29uc3QgSW50UmVjdCYgcmVjdCkK
IHsKICAgICBpZiAobV9pc1dpbmRvd2VkKSB7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdpbnMv
d2luL1BsdWdpblZpZXdXaW4uY3BwIGIvV2ViQ29yZS9wbHVnaW5zL3dpbi9QbHVnaW5WaWV3V2lu
LmNwcAppbmRleCA4ZGJiMDRiLi5hYWY4MDBmIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsdWdpbnMv
d2luL1BsdWdpblZpZXdXaW4uY3BwCisrKyBiL1dlYkNvcmUvcGx1Z2lucy93aW4vUGx1Z2luVmll
d1dpbi5jcHAKQEAgLTg3MSw2ICs4NzEsMjIgQEAgYm9vbCBQbHVnaW5WaWV3OjpwbGF0Zm9ybUdl
dFZhbHVlU3RhdGljKE5QTlZhcmlhYmxlLCB2b2lkKiwgTlBFcnJvciopCiAgICAgcmV0dXJuIGZh
bHNlOwogfQogCitib29sIFBsdWdpblZpZXc6OnBsYXRmb3JtR2V0VmFsdWVGb3JVUkwoTlBOVVJM
VmFyaWFibGUgdmFyaWFibGUsIGNvbnN0IGNoYXIqIHVybCwgY2hhcioqIHZhbHVlLCB1aW50MzJf
dCogbGVuLCBOUEVycm9yKiByZXN1bHQpCit7CisgICAgLy8gTk9URTogTlBOVVJMVlByb3h5IHJl
cXVpcmVzIHBsYXRmb3JtIHNwZWNpZmljIGltcGxlbWVudGF0aW9uIDsgb3RoZXJ3aXNlLCBOUF9H
RU5FUklDX0VSUiBpcyByZXR1cm5lZCBieSBkZWZhdWx0LgorICAgIHJldHVybiBmYWxzZTsKK30K
KworYm9vbCBQbHVnaW5WaWV3OjpwbGF0Zm9ybVNldFZhbHVlRm9yVVJMKE5QTlVSTFZhcmlhYmxl
IHZhcmlhYmxlLCBjb25zdCBjaGFyKiB1cmwsIGNvbnN0IGNoYXIqIHZhbHVlLCB1aW50MzJfdCBs
ZW4sIE5QRXJyb3IqIHJlc3VsdCkKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgUGx1
Z2luVmlldzo6cGxhdGZvcm1HZXRBdXRoZW50aWNhdGlvbkluZm8oY29uc3QgY2hhciogcHJvdG9j
b2wsIGNvbnN0IGNoYXIqIGhvc3QsIGludDMyX3QgcG9ydCwgY29uc3QgY2hhciogc2NoZW1lLCBj
b25zdCBjaGFyICpyZWFsbSwgY2hhcioqIHVzZXJuYW1lLCB1aW50MzJfdCogdWxlbiwgY2hhcioq
IHBhc3N3b3JkLCB1aW50MzJfdCogcGxlbiwgTlBFcnJvciogcmVzdWx0KQoreworICAgIHJldHVy
biBmYWxzZTsKK30KKwogYm9vbCBQbHVnaW5WaWV3OjpwbGF0Zm9ybUdldFZhbHVlKE5QTlZhcmlh
YmxlIHZhcmlhYmxlLCB2b2lkKiB2YWx1ZSwgTlBFcnJvciogcmVzdWx0KQogewogICAgIHN3aXRj
aCAodmFyaWFibGUpIHsK
</data>
<flag name="review"
          id="53712"
          type_id="1"
          status="-"
          setter="kling"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65046</attachid>
            <date>2010-08-21 21:19:22 -0700</date>
            <delta_ts>2010-08-22 01:09:00 -0700</delta_ts>
            <desc>Implement NPN_GetValueForURL and NPN_SetValueForURL and NPN_GetAuthenticationInfo [Update VII]...</desc>
            <filename>implement_npn_functions_necessary_for_java_applet_support.patch</filename>
            <type>text/plain</type>
            <size>17741</size>
            <attacher name="Dawit A.">adawit</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZTI4YWQ4Ny4uY2VjOGQwMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0OCBAQAorMjAxMC0wOC0yMSAgRGF3aXQgQWxlbWF5
ZWh1ICA8YWRhd2l0QGtkZS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgSW1wbGVtZW50IE5QTl9HZXRWYWx1ZUZvclVSTCBhbmQgTlBOX1NldFZh
bHVlRm9yVVJMIGFuZCBOUE5fR2V0QXV0aGVudGljYXRpb25JbmZvLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQ1MzkKKworICAgICAgICBUaGVzZSBt
aXNzaW5nIE5QTiBmdW5jdGlvbnMgY2F1c2VzIEphdmEgYXBwbGV0cyB0byBjcmFzaCBpbiBwb3J0
cyBzdWNoCisgICAgICAgIGFzIFF0V2Via2l0IHRoYXQgcmVseSBvbiB3ZWJraXQgZm9yIEphdmEg
YXBwbGV0IHN1cHBvcnQuCisKKyAgICAgICAgKiBwbHVnaW5zL1BsdWdpbkRlYnVnLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OnByZXR0eU5hbWVGb3JOUE5VUkxWYXJpYWJsZSk6CisgICAgICAgICog
cGx1Z2lucy9QbHVnaW5EZWJ1Zy5oOgorICAgICAgICAqIHBsdWdpbnMvUGx1Z2luUGFja2FnZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5QYWNrYWdlOjppbml0aWFsaXplQnJvd3NlckZ1
bmNzKToKKyAgICAgICAgKiBwbHVnaW5zL1BsdWdpblZpZXcuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UGx1Z2luVmlldzo6Z2V0VmFsdWVGb3JVUkwpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2lu
Vmlldzo6c2V0VmFsdWVGb3JVUkwpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6Z2V0
QXV0aGVudGljYXRpb25JbmZvKToKKyAgICAgICAgKiBwbHVnaW5zL1BsdWdpblZpZXcuaDoKKyAg
ICAgICAgKiBwbHVnaW5zL2d0ay9QbHVnaW5WaWV3R3RrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlBsdWdpblZpZXc6OnBsYXRmb3JtR2V0VmFsdWVGb3JVUkwpOgorICAgICAgICAoV2ViQ29yZTo6
UGx1Z2luVmlldzo6cGxhdGZvcm1TZXRWYWx1ZUZvclVSTCk6CisgICAgICAgIChXZWJDb3JlOjpQ
bHVnaW5WaWV3OjpwbGF0Zm9ybUdldEF1dGhlbnRpY2F0aW9uSW5mbyk6CisgICAgICAgICogcGx1
Z2lucy9tYWMvUGx1Z2luVmlld01hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6
OnBsYXRmb3JtR2V0VmFsdWVGb3JVUkwpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6
cGxhdGZvcm1TZXRWYWx1ZUZvclVSTCk6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3Ojpw
bGF0Zm9ybUdldEF1dGhlbnRpY2F0aW9uSW5mbyk6CisgICAgICAgICogcGx1Z2lucy9ucGFwaS5j
cHA6CisgICAgICAgIChOUE5fR2V0VmFsdWVGb3JVUkwpOgorICAgICAgICAoTlBOX1NldFZhbHVl
Rm9yVVJMKToKKyAgICAgICAgKE5QTl9HZXRBdXRoZW50aWNhdGlvbkluZm8pOgorICAgICAgICAq
IHBsdWdpbnMvcXQvUGx1Z2luVmlld1F0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZp
ZXc6OnBsYXRmb3JtR2V0VmFsdWVGb3JVUkwpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmll
dzo6cGxhdGZvcm1HZXRBdXRoZW50aWNhdGlvbkluZm8pOgorICAgICAgICAoV2ViQ29yZTo6UGx1
Z2luVmlldzo6cGxhdGZvcm1TZXRWYWx1ZUZvclVSTCk6CisgICAgICAgICogcGx1Z2lucy9zeW1i
aWFuL1BsdWdpblZpZXdTeW1iaWFuLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6
OnBsYXRmb3JtR2V0VmFsdWVGb3JVUkwpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6
cGxhdGZvcm1TZXRWYWx1ZUZvclVSTCk6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3Ojpw
bGF0Zm9ybUdldEF1dGhlbnRpY2F0aW9uSW5mbyk6CisgICAgICAgICogcGx1Z2lucy93aW4vUGx1
Z2luVmlld1dpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpwbGF0Zm9ybUdl
dFZhbHVlRm9yVVJMKToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OnBsYXRmb3JtU2V0
VmFsdWVGb3JVUkwpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6cGxhdGZvcm1HZXRB
dXRoZW50aWNhdGlvbkluZm8pOgorCiAyMDEwLTA4LTIxICBFcmljIENhcmxzb24gIDxlcmljLmNh
cmxzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhbiBCZXJuc3RlaW4uCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luRGVidWcuY3BwIGIvV2ViQ29yZS9wbHVn
aW5zL1BsdWdpbkRlYnVnLmNwcAppbmRleCBhY2U4YjIxLi40NWU5MGVmIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL3BsdWdpbnMvUGx1Z2luRGVidWcuY3BwCisrKyBiL1dlYkNvcmUvcGx1Z2lucy9QbHVn
aW5EZWJ1Zy5jcHAKQEAgLTE2Myw2ICsxNjMsMTQgQEAgQ1N0cmluZyBwcmV0dHlOYW1lRm9yTlBQ
VmFyaWFibGUoTlBQVmFyaWFibGUgdmFyaWFibGUsIHZvaWQqIHZhbHVlKQogICAgIH0KIH0KIAor
Q1N0cmluZyBwcmV0dHlOYW1lRm9yTlBOVVJMVmFyaWFibGUoTlBOVVJMVmFyaWFibGUgdmFyaWFi
bGUpCit7CisgICAgc3dpdGNoICh2YXJpYWJsZSkgeworICAgIGNhc2UgTlBOVVJMVkNvb2tpZTog
cmV0dXJuICJOUE5VUkxWQ29va2llIjsKKyAgICBjYXNlIE5QTlVSTFZQcm94eTogcmV0dXJuICJO
UE5VUkxWUHJveHkiOworICAgIGRlZmF1bHQ6IHJldHVybiAiVW5rb3duIHZhcmlhYmxlIjsKKyAg
ICB9Cit9CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyAhTE9HX0RJU0FCTEVE
CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luRGVidWcuaCBiL1dlYkNvcmUvcGx1
Z2lucy9QbHVnaW5EZWJ1Zy5oCmluZGV4IDI1NDg2NGYuLjAxN2U2ODYgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvcGx1Z2lucy9QbHVnaW5EZWJ1Zy5oCisrKyBiL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5E
ZWJ1Zy5oCkBAIC00MSw2ICs0MSw3IEBAIGNvbnN0IGNoYXIqIHByZXR0eU5hbWVGb3JOUEVycm9y
KE5QRXJyb3IgZXJyb3IpOwogCiBDU3RyaW5nIHByZXR0eU5hbWVGb3JOUE5WYXJpYWJsZShOUE5W
YXJpYWJsZSB2YXJpYWJsZSk7CiBDU3RyaW5nIHByZXR0eU5hbWVGb3JOUFBWYXJpYWJsZShOUFBW
YXJpYWJsZSB2YXJpYWJsZSwgdm9pZCogdmFsdWUpOworQ1N0cmluZyBwcmV0dHlOYW1lRm9yTlBO
VVJMVmFyaWFibGUoTlBOVVJMVmFyaWFibGUgdmFyaWFibGUpOwogCiAjaWZkZWYgWFBfTUFDT1NY
CiBjb25zdCBjaGFyKiBwcmV0dHlOYW1lRm9yRHJhd2luZ01vZGVsKE5QRHJhd2luZ01vZGVsIGRy
YXdpbmdNb2RlbCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luUGFja2FnZS5j
cHAgYi9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luUGFja2FnZS5jcHAKaW5kZXggYmY5NzBmMi4uNjUz
YjI0ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblBhY2thZ2UuY3BwCisrKyBi
L1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5QYWNrYWdlLmNwcApAQCAtMzA1LDYgKzMwNSw5IEBAIHZv
aWQgUGx1Z2luUGFja2FnZTo6aW5pdGlhbGl6ZUJyb3dzZXJGdW5jcygpCiAgICAgbV9icm93c2Vy
RnVuY3Muc2V0ZXhjZXB0aW9uID0gX05QTl9TZXRFeGNlcHRpb247CiAgICAgbV9icm93c2VyRnVu
Y3MuZW51bWVyYXRlID0gX05QTl9FbnVtZXJhdGU7CiAgICAgbV9icm93c2VyRnVuY3MuY29uc3Ry
dWN0ID0gX05QTl9Db25zdHJ1Y3Q7CisgICAgbV9icm93c2VyRnVuY3MuZ2V0dmFsdWVmb3J1cmwg
PSBOUE5fR2V0VmFsdWVGb3JVUkw7CisgICAgbV9icm93c2VyRnVuY3Muc2V0dmFsdWVmb3J1cmwg
PSBOUE5fU2V0VmFsdWVGb3JVUkw7CisgICAgbV9icm93c2VyRnVuY3MuZ2V0YXV0aGVudGljYXRp
b25pbmZvID0gTlBOX0dldEF1dGhlbnRpY2F0aW9uSW5mbzsKIH0KICNlbmRpZgogCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5jcHAgYi9XZWJDb3JlL3BsdWdpbnMvUGx1
Z2luVmlldy5jcHAKaW5kZXggYmVlOGRjZC4uNGJlMjNhOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9w
bHVnaW5zL1BsdWdpblZpZXcuY3BwCisrKyBiL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmNw
cApAQCAtMzAsNiArMzAsNyBAQAogCiAjaW5jbHVkZSAiQnJpZGdlLmgiCiAjaW5jbHVkZSAiQ2hy
b21lLmgiCisjaW5jbHVkZSAiQ29va2llSmFyLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNp
bmNsdWRlICJEb2N1bWVudExvYWRlci5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKQEAgLTEzNzcs
NiArMTM3OCw5MSBAQCBOUEVycm9yIFBsdWdpblZpZXc6OmdldFZhbHVlKE5QTlZhcmlhYmxlIHZh
cmlhYmxlLCB2b2lkKiB2YWx1ZSkKICAgICAgICAgcmV0dXJuIE5QRVJSX0dFTkVSSUNfRVJST1I7
CiAgICAgfQogfQorCitOUEVycm9yIFBsdWdpblZpZXc6OmdldFZhbHVlRm9yVVJMKE5QTlVSTFZh
cmlhYmxlIHZhcmlhYmxlLCBjb25zdCBjaGFyKiB1cmwsIGNoYXIqKiB2YWx1ZSwgdWludDMyX3Qq
IGxlbikKK3sKKyAgICBMT0coUGx1Z2lucywgIlBsdWdpblZpZXc6OmdldFZhbHVlRm9yVVJMKCVz
KSIsIHByZXR0eU5hbWVGb3JOUE5VUkxWYXJpYWJsZSh2YXJpYWJsZSkuZGF0YSgpKTsKKworICAg
IE5QRXJyb3IgcmVzdWx0ID0gTlBFUlJfTk9fRVJST1I7CisgICAgaWYgKHBsYXRmb3JtR2V0VmFs
dWVGb3JVUkwodmFyaWFibGUsIHVybCwgdmFsdWUsIGxlbiwgJnJlc3VsdCkgfHwgKHJlc3VsdCAh
PSBOUEVSUl9OT19FUlJPUikpCisgICAgICAgIHJldHVybiByZXN1bHQ7CisKKyAgICBzd2l0Y2gg
KHZhcmlhYmxlKSB7CisgICAgY2FzZSBOUE5VUkxWQ29va2llOiB7CisgICAgICAgIEtVUkwgdSht
X2Jhc2VVUkwsIHVybCk7CisgICAgICAgIGlmICh1LmlzVmFsaWQoKSkgeworICAgICAgICAgICAg
Y29uc3QgQ1N0cmluZyBjb29raWVTdHIgPSBjb29raWVzKG1fcGFyZW50RnJhbWUtPmRvY3VtZW50
KCksIHUpLnV0ZjgoKTsKKyAgICAgICAgICAgIGlmICghY29va2llU3RyLmlzTnVsbCgpKSB7Cisg
ICAgICAgICAgICAgICAgKnZhbHVlID0gc3RhdGljX2Nhc3Q8Y2hhcio+KE5QTl9NZW1BbGxvYyhj
b29raWVTdHIubGVuZ3RoKCkpKTsKKyAgICAgICAgICAgICAgICBpZiAoKnZhbHVlKSB7CisgICAg
ICAgICAgICAgICAgICAgIHN0cm5jcHkoKnZhbHVlLCBjb29raWVTdHIuZGF0YSgpLCBjb29raWVT
dHIubGVuZ3RoKCkpOworICAgICAgICAgICAgICAgICAgICBpZiAobGVuKQorICAgICAgICAgICAg
ICAgICAgICAgICAgKmxlbiA9IGNvb2tpZVN0ci5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICB9
IGVsc2UgeworICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBOUEVSUl9PVVRfT0ZfTUVNT1JZ
X0VSUk9SOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNl
IHsKKyAgICAgICAgICAgIHJlc3VsdCA9IE5QRVJSX0lOVkFMSURfVVJMOworICAgICAgICB9Cisg
ICAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlIE5QTlVSTFZQcm94eToKKyAgICAgICAgcmVz
dWx0ID0gTlBFUlJfR0VORVJJQ19FUlJPUjsKKyAgICAgICAgTE9HKFBsdWdpbnMsICJQbHVnaW5W
aWV3OjpnZXRWYWx1ZUZvclVSTCglcyk6IE5lZWQgdG8gaW1wbGVtZW50IFBsdWdpblZpZXc6OnBs
YXRmb3JtR2V0VmFsdWVGb3JVUkwhIiwgcHJldHR5TmFtZUZvck5QTlVSTFZhcmlhYmxlKHZhcmlh
YmxlKS5kYXRhKCkpOworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXN1
bHQgPSBOUEVSUl9HRU5FUklDX0VSUk9SOworICAgICAgICBMT0coUGx1Z2lucywgIlBsdWdpblZp
ZXc6OmdldFZhbHVlRm9yVVJMKCVzKTogVW5rbm93biB2YXJpYWJsZSB0eXBlLiIsIHByZXR0eU5h
bWVGb3JOUE5VUkxWYXJpYWJsZSh2YXJpYWJsZSkuZGF0YSgpKTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgfQorCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworCitOUEVycm9yIFBsdWdpblZpZXc6OnNl
dFZhbHVlRm9yVVJMKE5QTlVSTFZhcmlhYmxlIHZhcmlhYmxlLCBjb25zdCBjaGFyKiB1cmwsIGNv
bnN0IGNoYXIqIHZhbHVlLCB1aW50MzJfdCBsZW4pCit7CisgICAgTE9HKFBsdWdpbnMsICJQbHVn
aW5WaWV3OjpzZXRWYWx1ZUZvclVSTCglcykiLCBwcmV0dHlOYW1lRm9yTlBOVVJMVmFyaWFibGUo
dmFyaWFibGUpLmRhdGEoKSk7CisKKyAgICBOUEVycm9yIHJlc3VsdCA9IE5QRVJSX0dFTkVSSUNf
RVJST1I7CisgICAgaWYgKHBsYXRmb3JtU2V0VmFsdWVGb3JVUkwodmFyaWFibGUsIHVybCwgdmFs
dWUsIGxlbiwgJnJlc3VsdCkgfHwgKHJlc3VsdCAhPSBOUEVSUl9HRU5FUklDX0VSUk9SKSkKKyAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKKworICAgIHN3aXRjaCAodmFyaWFibGUpIHsKKyAgICBjYXNl
IE5QTlVSTFZDb29raWU6IHsKKyAgICAgICAgS1VSTCB1KG1fYmFzZVVSTCwgdXJsKTsKKyAgICAg
ICAgaWYgKHUuaXNWYWxpZCgpKSB7CisgICAgICAgICAgICBTdHJpbmcgY29va2llU3RyID0gU3Ry
aW5nOjpmcm9tVVRGOCh2YWx1ZSwgbGVuKTsKKyAgICAgICAgICAgIGlmICghY29va2llU3RyLmlz
RW1wdHkoKSkKKyAgICAgICAgICAgICAgICBzZXRDb29raWVzKG1fcGFyZW50RnJhbWUtPmRvY3Vt
ZW50KCksIHUsIGNvb2tpZVN0cik7CisgICAgICAgICAgICByZXN1bHQgPSBOUEVSUl9OT19FUlJP
UjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJlc3VsdCA9IE5QRVJSX0lOVkFMSURf
VVJMOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlIE5QTlVSTFZQ
cm94eToKKyAgICAgICAgTE9HKFBsdWdpbnMsICJQbHVnaW5WaWV3OjpzZXRWYWx1ZUZvclVSTCgl
cyk6IFBsdWdpbnMgYXJlIE5PVCBhbGxvd2VkIHRvIHNldCBwcm94eSBpbmZvcm1hdGlvbi4iLCBw
cmV0dHlOYW1lRm9yTlBOVVJMVmFyaWFibGUodmFyaWFibGUpLmRhdGEoKSk7CisgICAgICAgIGJy
ZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIExPRyhQbHVnaW5zLCAiUGx1Z2luVmlldzo6c2V0
VmFsdWVGb3JVUkwoJXMpOiBVbmtub3duIHZhcmlhYmxlIHR5cGUuIiwgcHJldHR5TmFtZUZvck5Q
TlVSTFZhcmlhYmxlKHZhcmlhYmxlKS5kYXRhKCkpOworICAgICAgICBicmVhazsKKyAgICB9CisK
KyAgICByZXR1cm4gcmVzdWx0OworfQorCitOUEVycm9yIFBsdWdpblZpZXc6OmdldEF1dGhlbnRp
Y2F0aW9uSW5mbyhjb25zdCBjaGFyKiBwcm90b2NvbCwgY29uc3QgY2hhciogaG9zdCwgaW50MzJf
dCBwb3J0LCBjb25zdCBjaGFyKiBzY2hlbWUsIGNvbnN0IGNoYXIqIHJlYWxtLCBjaGFyKiogdXNl
cm5hbWUsIHVpbnQzMl90KiB1bGVuLCBjaGFyKiogcGFzc3dvcmQsIHVpbnQzMl90KiBwbGVuKQor
eworICAgIExPRyhQbHVnaW5zLCAiUGx1Z2luVmlldzo6Z2V0QXV0aGVudGljYXRpb25JbmZvOiBw
cm90b2NvbD0lcywgaG9zdD0lcywgcG9ydD0lZCIsIHByb3RvY29sLCBob3N0LCBwb3J0KTsKKwor
ICAgIE5QRXJyb3IgcmVzdWx0ID0gTlBFUlJfR0VORVJJQ19FUlJPUjsKKyAgICBpZiAocGxhdGZv
cm1HZXRBdXRoZW50aWNhdGlvbkluZm8ocHJvdG9jb2wsIGhvc3QsIHBvcnQsIHNjaGVtZSwgcmVh
bG0sIHVzZXJuYW1lLCB1bGVuLCBwYXNzd29yZCwgcGxlbiwgJnJlc3VsdCkgfHwgKHJlc3VsdCAh
PSBOUEVSUl9HRU5FUklDX0VSUk9SKSkKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKworICAgIHJl
dHVybiBOUEVSUl9HRU5FUklDX0VSUk9SOworfQogI2VuZGlmCiAKIHZvaWQgUGx1Z2luVmlldzo6
cHJpdmF0ZUJyb3dzaW5nU3RhdGVDaGFuZ2VkKGJvb2wgcHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCkK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmggYi9XZWJDb3JlL3BsdWdp
bnMvUGx1Z2luVmlldy5oCmluZGV4IGExZTc1MjQuLjBiMDg5OTkgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvcGx1Z2lucy9QbHVnaW5WaWV3LmgKKysrIGIvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcu
aApAQCAtMTY1LDYgKzE2NSw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgTlBFcnJv
ciBnZXRWYWx1ZShOUE5WYXJpYWJsZSB2YXJpYWJsZSwgdm9pZCogdmFsdWUpOwogICAgICAgICBz
dGF0aWMgTlBFcnJvciBnZXRWYWx1ZVN0YXRpYyhOUE5WYXJpYWJsZSB2YXJpYWJsZSwgdm9pZCog
dmFsdWUpOwogICAgICAgICBOUEVycm9yIHNldFZhbHVlKE5QUFZhcmlhYmxlIHZhcmlhYmxlLCB2
b2lkKiB2YWx1ZSk7CisgICAgICAgIE5QRXJyb3IgZ2V0VmFsdWVGb3JVUkwoTlBOVVJMVmFyaWFi
bGUgdmFyaWFibGUsIGNvbnN0IGNoYXIqIHVybCwgY2hhcioqIHZhbHVlLCB1aW50MzJfdCogbGVu
KTsKKyAgICAgICAgTlBFcnJvciBzZXRWYWx1ZUZvclVSTChOUE5VUkxWYXJpYWJsZSB2YXJpYWJs
ZSwgY29uc3QgY2hhciogdXJsLCBjb25zdCBjaGFyKiB2YWx1ZSwgdWludDMyX3QgbGVuKTsKKyAg
ICAgICAgTlBFcnJvciBnZXRBdXRoZW50aWNhdGlvbkluZm8oY29uc3QgY2hhciogcHJvdG9jb2ws
IGNvbnN0IGNoYXIqIGhvc3QsIGludDMyX3QgcG9ydCwgY29uc3QgY2hhciogc2NoZW1lLCBjb25z
dCBjaGFyKiByZWFsbSwgY2hhcioqIHVzZXJuYW1lLCB1aW50MzJfdCogdWxlbiwgY2hhcioqIHBh
c3N3b3JkLCB1aW50MzJfdCogcGxlbik7CiAgICAgICAgIHZvaWQgaW52YWxpZGF0ZVJlY3QoTlBS
ZWN0Kik7CiAgICAgICAgIHZvaWQgaW52YWxpZGF0ZVJlZ2lvbihOUFJlZ2lvbik7CiAjZW5kaWYK
QEAgLTI3Miw2ICsyNzUsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAjaWYgRU5BQkxFKE5FVFND
QVBFX1BMVUdJTl9BUEkpCiAgICAgICAgIHN0YXRpYyBib29sIHBsYXRmb3JtR2V0VmFsdWVTdGF0
aWMoTlBOVmFyaWFibGUgdmFyaWFibGUsIHZvaWQqIHZhbHVlLCBOUEVycm9yKiByZXN1bHQpOwog
ICAgICAgICBib29sIHBsYXRmb3JtR2V0VmFsdWUoTlBOVmFyaWFibGUgdmFyaWFibGUsIHZvaWQq
IHZhbHVlLCBOUEVycm9yKiByZXN1bHQpOworICAgICAgICBib29sIHBsYXRmb3JtR2V0VmFsdWVG
b3JVUkwoTlBOVVJMVmFyaWFibGUgdmFyaWFibGUsIGNvbnN0IGNoYXIqIHVybCwgY2hhcioqIHZh
bHVlLCB1aW50MzJfdCogbGVuLCBOUEVycm9yKiByZXN1bHQpOworICAgICAgICBib29sIHBsYXRm
b3JtU2V0VmFsdWVGb3JVUkwoTlBOVVJMVmFyaWFibGUgdmFyaWFibGUsIGNvbnN0IGNoYXIqIHVy
bCwgY29uc3QgY2hhciogdmFsdWUsIHVpbnQzMl90IGxlbiwgTlBFcnJvciogcmVzdWx0KTsKKyAg
ICAgICAgYm9vbCBwbGF0Zm9ybUdldEF1dGhlbnRpY2F0aW9uSW5mbyhjb25zdCBjaGFyKiBwcm90
b2NvbCwgY29uc3QgY2hhciogaG9zdCwgaW50MzJfdCBwb3J0LCBjb25zdCBjaGFyKiBzY2hlbWUs
IGNvbnN0IGNoYXIqIHJlYWxtLCBjaGFyKiogdXNlcm5hbWUsIHVpbnQzMl90KiB1bGVuLCBjaGFy
KiogcGFzc3dvcmQsIHVpbnQzMl90KiBwbGVuLCBOUEVycm9yKiByZXN1bHQpOwogI2VuZGlmCiAK
ICAgICAgICAgUmVmUHRyPEZyYW1lPiBtX3BhcmVudEZyYW1lOwpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9wbHVnaW5zL2d0ay9QbHVnaW5WaWV3R3RrLmNwcCBiL1dlYkNvcmUvcGx1Z2lucy9ndGsvUGx1
Z2luVmlld0d0ay5jcHAKaW5kZXggYWI0M2JmNC4uMGFiZmFkOCAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9wbHVnaW5zL2d0ay9QbHVnaW5WaWV3R3RrLmNwcAorKysgYi9XZWJDb3JlL3BsdWdpbnMvZ3Rr
L1BsdWdpblZpZXdHdGsuY3BwCkBAIC02NjksNiArNjY5LDIyIEBAIGJvb2wgUGx1Z2luVmlldzo6
cGxhdGZvcm1HZXRWYWx1ZShOUE5WYXJpYWJsZSB2YXJpYWJsZSwgdm9pZCogdmFsdWUsIE5QRXJy
b3IqIHJlCiAgICAgfQogfQogCitib29sIFBsdWdpblZpZXc6OnBsYXRmb3JtR2V0VmFsdWVGb3JV
UkwoTlBOVVJMVmFyaWFibGUgdmFyaWFibGUsIGNvbnN0IGNoYXIqIHVybCwgY2hhcioqIHZhbHVl
LCB1aW50MzJfdCogbGVuLCBOUEVycm9yKiByZXN1bHQpCit7CisgICAgLy8gTk9URTogTlBOVVJM
VlByb3h5IHJlcXVpcmVzIHBsYXRmb3JtIHNwZWNpZmljIGltcGxlbWVudGF0aW9uIDsgb3RoZXJ3
aXNlLCBOUF9HRU5FUklDX0VSUiBpcyByZXR1cm5lZCBieSBkZWZhdWx0LgorICAgIHJldHVybiBm
YWxzZTsKK30KKworYm9vbCBQbHVnaW5WaWV3OjpwbGF0Zm9ybVNldFZhbHVlRm9yVVJMKE5QTlVS
TFZhcmlhYmxlIHZhcmlhYmxlLCBjb25zdCBjaGFyKiB1cmwsIGNvbnN0IGNoYXIqIHZhbHVlLCB1
aW50MzJfdCBsZW4sIE5QRXJyb3IqIHJlc3VsdCkKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisK
K2Jvb2wgUGx1Z2luVmlldzo6cGxhdGZvcm1HZXRBdXRoZW50aWNhdGlvbkluZm8oY29uc3QgY2hh
ciogcHJvdG9jb2wsIGNvbnN0IGNoYXIqIGhvc3QsIGludDMyX3QgcG9ydCwgY29uc3QgY2hhciog
c2NoZW1lLCBjb25zdCBjaGFyKiByZWFsbSwgY2hhcioqIHVzZXJuYW1lLCB1aW50MzJfdCogdWxl
biwgY2hhcioqIHBhc3N3b3JkLCB1aW50MzJfdCogcGxlbiwgTlBFcnJvciogcmVzdWx0KQorewor
ICAgIHJldHVybiBmYWxzZTsKK30KKwogdm9pZCBQbHVnaW5WaWV3OjppbnZhbGlkYXRlUmVjdChj
b25zdCBJbnRSZWN0JiByZWN0KQogewogICAgIGlmIChtX2lzV2luZG93ZWQpIHsKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvcGx1Z2lucy9tYWMvUGx1Z2luVmlld01hYy5tbSBiL1dlYkNvcmUvcGx1Z2lu
cy9tYWMvUGx1Z2luVmlld01hYy5tbQppbmRleCBlMGFkMTM1Li41MTI5YWMyIDEwMDY0NAotLS0g
YS9XZWJDb3JlL3BsdWdpbnMvbWFjL1BsdWdpblZpZXdNYWMubW0KKysrIGIvV2ViQ29yZS9wbHVn
aW5zL21hYy9QbHVnaW5WaWV3TWFjLm1tCkBAIC0zMDgsNiArMzA4LDIyIEBAIGJvb2wgUGx1Z2lu
Vmlldzo6cGxhdGZvcm1HZXRWYWx1ZShOUE5WYXJpYWJsZSB2YXJpYWJsZSwgdm9pZCogdmFsdWUs
IE5QRXJyb3IqIGVyCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCitib29sIFBsdWdpblZpZXc6OnBs
YXRmb3JtR2V0VmFsdWVGb3JVUkwoTlBOVVJMVmFyaWFibGUgdmFyaWFibGUsIGNvbnN0IGNoYXIq
IHVybCwgY2hhcioqIHZhbHVlLCB1aW50MzJfdCogbGVuLCBOUEVycm9yKiByZXN1bHQpCit7Cisg
ICAgLy8gTk9URTogTlBOVVJMVlByb3h5IHJlcXVpcmVzIHBsYXRmb3JtIHNwZWNpZmljIGltcGxl
bWVudGF0aW9uIDsgb3RoZXJ3aXNlLCBOUF9HRU5FUklDX0VSUiBpcyByZXR1cm5lZCBieSBkZWZh
dWx0LgorICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBQbHVnaW5WaWV3OjpwbGF0Zm9ybVNl
dFZhbHVlRm9yVVJMKE5QTlVSTFZhcmlhYmxlIHZhcmlhYmxlLCBjb25zdCBjaGFyKiB1cmwsIGNv
bnN0IGNoYXIqIHZhbHVlLCB1aW50MzJfdCBsZW4sIE5QRXJyb3IqIHJlc3VsdCkKK3sKKyAgICBy
ZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgUGx1Z2luVmlldzo6cGxhdGZvcm1HZXRBdXRoZW50aWNh
dGlvbkluZm8oY29uc3QgY2hhciogcHJvdG9jb2wsIGNvbnN0IGNoYXIqIGhvc3QsIGludDMyX3Qg
cG9ydCwgY29uc3QgY2hhciogc2NoZW1lLCBjb25zdCBjaGFyKiByZWFsbSwgY2hhcioqIHVzZXJu
YW1lLCB1aW50MzJfdCogdWxlbiwgY2hhcioqIHBhc3N3b3JkLCB1aW50MzJfdCogcGxlbiwgTlBF
cnJvciogcmVzdWx0KQoreworICAgIHJldHVybiBmYWxzZTsKK30KKwogdm9pZCBQbHVnaW5WaWV3
OjpzZXRQYXJlbnQoU2Nyb2xsVmlldyogcGFyZW50KQogewogICAgIExPRyhQbHVnaW5zLCAiUGx1
Z2luVmlldzo6c2V0UGFyZW50KCVwKSIsIHBhcmVudCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3Bs
dWdpbnMvbnBhcGkuY3BwIGIvV2ViQ29yZS9wbHVnaW5zL25wYXBpLmNwcAppbmRleCBkMGRiODQ1
Li5iMThlNzdkIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsdWdpbnMvbnBhcGkuY3BwCisrKyBiL1dl
YkNvcmUvcGx1Z2lucy9ucGFwaS5jcHAKQEAgLTE3NSwzICsxNzUsMTggQEAgdm9pZCBOUE5fUGx1
Z2luVGhyZWFkQXN5bmNDYWxsKE5QUCBpbnN0YW5jZSwgdm9pZCAoKmZ1bmMpICh2b2lkICopLCB2
b2lkICp1c2VyRGEKIHsKICAgICBQbHVnaW5NYWluVGhyZWFkU2NoZWR1bGVyOjpzY2hlZHVsZXIo
KS5zY2hlZHVsZUNhbGwoaW5zdGFuY2UsIGZ1bmMsIHVzZXJEYXRhKTsKIH0KKworTlBFcnJvciBO
UE5fR2V0VmFsdWVGb3JVUkwoTlBQIGluc3RhbmNlLCBOUE5VUkxWYXJpYWJsZSB2YXJpYWJsZSwg
Y29uc3QgY2hhciogdXJsLCBjaGFyKiogdmFsdWUsIHVpbnQzMl90KiBsZW4pCit7CisgICAgcmV0
dXJuIHBsdWdpblZpZXdGb3JJbnN0YW5jZShpbnN0YW5jZSktPmdldFZhbHVlRm9yVVJMKHZhcmlh
YmxlLCB1cmwsIHZhbHVlLCBsZW4pOworfQorCitOUEVycm9yIE5QTl9TZXRWYWx1ZUZvclVSTChO
UFAgaW5zdGFuY2UsIE5QTlVSTFZhcmlhYmxlIHZhcmlhYmxlLCBjb25zdCBjaGFyKiB1cmwsIGNv
bnN0IGNoYXIqIHZhbHVlLCB1aW50MzJfdCBsZW4pCit7CisgICAgcmV0dXJuIHBsdWdpblZpZXdG
b3JJbnN0YW5jZShpbnN0YW5jZSktPnNldFZhbHVlRm9yVVJMKHZhcmlhYmxlLCB1cmwsIHZhbHVl
LCBsZW4pOworfQorCitOUEVycm9yIE5QTl9HZXRBdXRoZW50aWNhdGlvbkluZm8oTlBQIGluc3Rh
bmNlLCBjb25zdCBjaGFyKiBwcm90b2NvbCwgY29uc3QgY2hhciogaG9zdCwgaW50MzJfdCBwb3J0
LCBjb25zdCBjaGFyKiBzY2hlbWUsIGNvbnN0IGNoYXIqIHJlYWxtLCBjaGFyKiogdXNlcm5hbWUs
IHVpbnQzMl90KiB1bGVuLCBjaGFyKiogcGFzc3dvcmQsIHVpbnQzMl90KiBwbGVuKQoreworICAg
IHJldHVybiBwbHVnaW5WaWV3Rm9ySW5zdGFuY2UoaW5zdGFuY2UpLT5nZXRBdXRoZW50aWNhdGlv
bkluZm8ocHJvdG9jb2wsIGhvc3QsIHBvcnQsIHNjaGVtZSwgcmVhbG0sIHVzZXJuYW1lLCB1bGVu
LCBwYXNzd29yZCwgcGxlbik7Cit9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvcXQvUGx1
Z2luVmlld1F0LmNwcCBiL1dlYkNvcmUvcGx1Z2lucy9xdC9QbHVnaW5WaWV3UXQuY3BwCmluZGV4
IDVjNjgxYjguLjM5NDg0OTYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGx1Z2lucy9xdC9QbHVnaW5W
aWV3UXQuY3BwCisrKyBiL1dlYkNvcmUvcGx1Z2lucy9xdC9QbHVnaW5WaWV3UXQuY3BwCkBAIC02
Niw2ICs2Niw3IEBACiAjaW5jbHVkZSA8UUFwcGxpY2F0aW9uPgogI2luY2x1ZGUgPFFEZXNrdG9w
V2lkZ2V0PgogI2luY2x1ZGUgPFFLZXlFdmVudD4KKyNpbmNsdWRlIDxRTmV0d29ya1Byb3h5Pgog
I2luY2x1ZGUgPFFQYWludGVyPgogI2luY2x1ZGUgPFFXaWRnZXQ+CiAjaW5jbHVkZSA8UVgxMUlu
Zm8+CkBAIC03MTgsNiArNzE5LDY2IEBAIGJvb2wgUGx1Z2luVmlldzo6cGxhdGZvcm1HZXRWYWx1
ZShOUE5WYXJpYWJsZSB2YXJpYWJsZSwgdm9pZCogdmFsdWUsIE5QRXJyb3IqIHJlCiAgICAgfQog
fQogCitib29sIFBsdWdpblZpZXc6OnBsYXRmb3JtR2V0VmFsdWVGb3JVUkwoTlBOVVJMVmFyaWFi
bGUgdmFyaWFibGUsIGNvbnN0IGNoYXIqIHVybCwgY2hhcioqIHZhbHVlLCB1aW50MzJfdCogbGVu
LCBOUEVycm9yKiByZXN1bHQpCit7CisgICAgaWYgKHZhcmlhYmxlID09IE5QTlVSTFZQcm94eSkg
eworICAgICAgICBRU3RyaW5nIHByb3h5U3RyOworICAgICAgICBRTmV0d29ya1Byb3h5IHByb3h5
ID0gUU5ldHdvcmtQcm94eTo6YXBwbGljYXRpb25Qcm94eSgpOworCisgICAgICAgIHN3aXRjaCAo
cHJveHkudHlwZSgpKSB7CisgICAgICAgIGNhc2UgUU5ldHdvcmtQcm94eTo6U29ja3M1UHJveHk6
IHsKKyAgICAgICAgICAgIHByb3h5U3RyID0gUUxhdGluMVN0cmluZygiU09DS1MgIik7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBjYXNlIFFOZXR3b3JrUHJveHk6Okh0
dHBQcm94eToKKyAgICAgICAgY2FzZSBRTmV0d29ya1Byb3h5OjpIdHRwQ2FjaGluZ1Byb3h5Ogor
ICAgICAgICBjYXNlIFFOZXR3b3JrUHJveHk6OkZ0cENhY2hpbmdQcm94eTogeworICAgICAgICAg
ICAgcHJveHlTdHIgPSBRTGF0aW4xU3RyaW5nKCJQUk9YWSAiKTsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICB9CisgICAgICAgIGNhc2UgUU5ldHdvcmtQcm94eTo6RGVmYXVsdFByb3h5Ogor
ICAgICAgICBjYXNlIFFOZXR3b3JrUHJveHk6Ok5vUHJveHk6CisgICAgICAgIGRlZmF1bHQ6Cisg
ICAgICAgICAgICBwcm94eVN0ciA9IFFMYXRpbjFTdHJpbmcoIkRJUkVDVCIpOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICBpZiAocHJveHlTdHIgIT0gUUxhdGluMVN0
cmluZygiRElSRUNUIikpIHsKKyAgICAgICAgICAgIHByb3h5U3RyICs9IHByb3h5Lmhvc3ROYW1l
KCk7CisgICAgICAgICAgICBpZiAocHJveHkucG9ydCgpID4gMCkgeworICAgICAgICAgICAgICAg
IHByb3h5U3RyICs9IFFMYXRpbjFDaGFyKCc6Jyk7CisgICAgICAgICAgICAgICAgcHJveHlTdHIg
Kz0gUVN0cmluZzo6bnVtYmVyKHByb3h5LnBvcnQoKSk7CisgICAgICAgICAgICB9CisgICAgICAg
IH0KKworICAgICAgICBjb25zdCBRQnl0ZUFycmF5IHByb3h5U3RyVXRmOCA9IHByb3h5U3RyLnRv
VXRmOCgpOworICAgICAgICAqdmFsdWUgPSBzdGF0aWNfY2FzdDxjaGFyKj4oTlBOX01lbUFsbG9j
KHByb3h5U3RyVXRmOC5sZW5ndGgoKSkpOworICAgICAgICBpZiAoKnZhbHVlKSB7CisgICAgICAg
ICAgICBzdHJuY3B5KCp2YWx1ZSwgcHJveHlTdHJVdGY4LmNvbnN0RGF0YSgpLCBwcm94eVN0clV0
ZjgubGVuZ3RoKCkpOworICAgICAgICAgICAgaWYgKGxlbikKKyAgICAgICAgICAgICAgICAqbGVu
ID0gcHJveHlTdHJVdGY4Lmxlbmd0aCgpOworICAgICAgICAgICAgaWYgKHJlc3VsdCkKKyAgICAg
ICAgICAgICAgICAqcmVzdWx0ID0gTlBFUlJfTk9fRVJST1I7CisgICAgICAgIH0gZWxzZSB7Cisg
ICAgICAgICAgICAqcmVzdWx0ID0gTlBFUlJfT1VUX09GX01FTU9SWV9FUlJPUjsKKyAgICAgICAg
fQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgcmV0dXJuIGZh
bHNlOworfQorCitib29sIFBsdWdpblZpZXc6OnBsYXRmb3JtR2V0QXV0aGVudGljYXRpb25JbmZv
KGNvbnN0IGNoYXIqIHByb3RvY29sLCBjb25zdCBjaGFyKiBob3N0LCBpbnQzMl90IHBvcnQsIGNv
bnN0IGNoYXIqIHNjaGVtZSwgY29uc3QgY2hhciogcmVhbG0sIGNoYXIqKiB1c2VybmFtZSwgdWlu
dDMyX3QqIHVsZW4sIGNoYXIqKiBwYXNzd29yZCwgdWludDMyX3QqIHBsZW4sIE5QRXJyb3IqIHJl
c3VsdCkKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgUGx1Z2luVmlldzo6cGxhdGZv
cm1TZXRWYWx1ZUZvclVSTChOUE5VUkxWYXJpYWJsZSB2YXJpYWJsZSwgY29uc3QgY2hhciogdXJs
LCBjb25zdCBjaGFyKiB2YWx1ZSwgdWludDMyX3QgbGVuLCBOUEVycm9yKiByZXN1bHQpCit7Cisg
ICAgcmV0dXJuIGZhbHNlOworfQorCiB2b2lkIFBsdWdpblZpZXc6OmludmFsaWRhdGVSZWN0KGNv
bnN0IEludFJlY3QmIHJlY3QpCiB7CiAgICAgaWYgKG1faXNXaW5kb3dlZCkgewpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9wbHVnaW5zL3N5bWJpYW4vUGx1Z2luVmlld1N5bWJpYW4uY3BwIGIvV2ViQ29y
ZS9wbHVnaW5zL3N5bWJpYW4vUGx1Z2luVmlld1N5bWJpYW4uY3BwCmluZGV4IGI5ZjgyYWQuLjNi
NDQ0ZGYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGx1Z2lucy9zeW1iaWFuL1BsdWdpblZpZXdTeW1i
aWFuLmNwcAorKysgYi9XZWJDb3JlL3BsdWdpbnMvc3ltYmlhbi9QbHVnaW5WaWV3U3ltYmlhbi5j
cHAKQEAgLTMzOCw2ICszMzgsMjIgQEAgYm9vbCBQbHVnaW5WaWV3OjpwbGF0Zm9ybUdldFZhbHVl
KE5QTlZhcmlhYmxlLCB2b2lkKiwgTlBFcnJvciopCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCiti
b29sIFBsdWdpblZpZXc6OnBsYXRmb3JtR2V0VmFsdWVGb3JVUkwoTlBOVVJMVmFyaWFibGUgdmFy
aWFibGUsIGNvbnN0IGNoYXIqIHVybCwgY2hhcioqIHZhbHVlLCB1aW50MzJfdCogbGVuLCBOUEVy
cm9yKiByZXN1bHQpCit7CisgICAgLy8gTk9URTogTlBOVVJMVlByb3h5IHJlcXVpcmVzIHBsYXRm
b3JtIHNwZWNpZmljIGltcGxlbWVudGF0aW9uIDsgb3RoZXJ3aXNlLCBOUF9HRU5FUklDX0VSUiBp
cyByZXR1cm5lZCBieSBkZWZhdWx0LgorICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBQbHVn
aW5WaWV3OjpwbGF0Zm9ybVNldFZhbHVlRm9yVVJMKE5QTlVSTFZhcmlhYmxlIHZhcmlhYmxlLCBj
b25zdCBjaGFyKiB1cmwsIGNvbnN0IGNoYXIqIHZhbHVlLCB1aW50MzJfdCBsZW4sIE5QRXJyb3Iq
IHJlc3VsdCkKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgUGx1Z2luVmlldzo6cGxh
dGZvcm1HZXRBdXRoZW50aWNhdGlvbkluZm8oY29uc3QgY2hhciogcHJvdG9jb2wsIGNvbnN0IGNo
YXIqIGhvc3QsIGludDMyX3QgcG9ydCwgY29uc3QgY2hhciogc2NoZW1lLCBjb25zdCBjaGFyKiBy
ZWFsbSwgY2hhcioqIHVzZXJuYW1lLCB1aW50MzJfdCogdWxlbiwgY2hhcioqIHBhc3N3b3JkLCB1
aW50MzJfdCogcGxlbiwgTlBFcnJvciogcmVzdWx0KQoreworICAgIHJldHVybiBmYWxzZTsKK30K
Kwogdm9pZCBQbHVnaW5WaWV3OjppbnZhbGlkYXRlUmVjdChjb25zdCBJbnRSZWN0JiByZWN0KQog
ewogICAgIGlmIChtX2lzV2luZG93ZWQpIHsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGx1Z2lucy93
aW4vUGx1Z2luVmlld1dpbi5jcHAgYi9XZWJDb3JlL3BsdWdpbnMvd2luL1BsdWdpblZpZXdXaW4u
Y3BwCmluZGV4IDhkYmIwNGIuLmJiYWNiN2YgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGx1Z2lucy93
aW4vUGx1Z2luVmlld1dpbi5jcHAKKysrIGIvV2ViQ29yZS9wbHVnaW5zL3dpbi9QbHVnaW5WaWV3
V2luLmNwcApAQCAtODcxLDYgKzg3MSwyMiBAQCBib29sIFBsdWdpblZpZXc6OnBsYXRmb3JtR2V0
VmFsdWVTdGF0aWMoTlBOVmFyaWFibGUsIHZvaWQqLCBOUEVycm9yKikKICAgICByZXR1cm4gZmFs
c2U7CiB9CiAKK2Jvb2wgUGx1Z2luVmlldzo6cGxhdGZvcm1HZXRWYWx1ZUZvclVSTChOUE5VUkxW
YXJpYWJsZSB2YXJpYWJsZSwgY29uc3QgY2hhciogdXJsLCBjaGFyKiogdmFsdWUsIHVpbnQzMl90
KiBsZW4sIE5QRXJyb3IqIHJlc3VsdCkKK3sKKyAgICAvLyBOT1RFOiBOUE5VUkxWUHJveHkgcmVx
dWlyZXMgcGxhdGZvcm0gc3BlY2lmaWMgaW1wbGVtZW50YXRpb24gOyBvdGhlcndpc2UsIE5QX0dF
TkVSSUNfRVJSIGlzIHJldHVybmVkIGJ5IGRlZmF1bHQuCisgICAgcmV0dXJuIGZhbHNlOworfQor
Citib29sIFBsdWdpblZpZXc6OnBsYXRmb3JtU2V0VmFsdWVGb3JVUkwoTlBOVVJMVmFyaWFibGUg
dmFyaWFibGUsIGNvbnN0IGNoYXIqIHVybCwgY29uc3QgY2hhciogdmFsdWUsIHVpbnQzMl90IGxl
biwgTlBFcnJvciogcmVzdWx0KQoreworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBQbHVn
aW5WaWV3OjpwbGF0Zm9ybUdldEF1dGhlbnRpY2F0aW9uSW5mbyhjb25zdCBjaGFyKiBwcm90b2Nv
bCwgY29uc3QgY2hhciogaG9zdCwgaW50MzJfdCBwb3J0LCBjb25zdCBjaGFyKiBzY2hlbWUsIGNv
bnN0IGNoYXIqIHJlYWxtLCBjaGFyKiogdXNlcm5hbWUsIHVpbnQzMl90KiB1bGVuLCBjaGFyKiog
cGFzc3dvcmQsIHVpbnQzMl90KiBwbGVuLCBOUEVycm9yKiByZXN1bHQpCit7CisgICAgcmV0dXJu
IGZhbHNlOworfQorCiBib29sIFBsdWdpblZpZXc6OnBsYXRmb3JtR2V0VmFsdWUoTlBOVmFyaWFi
bGUgdmFyaWFibGUsIHZvaWQqIHZhbHVlLCBOUEVycm9yKiByZXN1bHQpCiB7CiAgICAgc3dpdGNo
ICh2YXJpYWJsZSkgewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65051</attachid>
            <date>2010-08-22 01:09:00 -0700</date>
            <delta_ts>2010-09-02 08:21:02 -0700</delta_ts>
            <desc>Implement NPN_GetValueForURL and NPN_SetValueForURL and NPN_GetAuthenticationInfo [Final Update]...</desc>
            <filename>implement_npn_functions_necessary_for_java_applet_support.patch</filename>
            <type>text/plain</type>
            <size>17527</size>
            <attacher name="Dawit A.">adawit</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZDk0YmY5YS4uZDY0NTNhZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0OCBAQAorMjAxMC0wOC0yMiAgRGF3aXQgQWxlbWF5
ZWh1ICA8YWRhd2l0QGtkZS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQW5kcmVhcyBLbGlu
ZyAKKworICAgICAgICBJbXBsZW1lbnQgTlBOX0dldFZhbHVlRm9yVVJMIGFuZCBOUE5fU2V0VmFs
dWVGb3JVUkwgYW5kIE5QTl9HZXRBdXRoZW50aWNhdGlvbkluZm8uCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNDUzOQorCisgICAgICAgIFRoZXNlIG1p
c3NpbmcgTlBOIGZ1bmN0aW9ucyBjYXVzZXMgSmF2YSBhcHBsZXRzIHRvIGNyYXNoIGluIHBvcnRz
IHN1Y2gKKyAgICAgICAgYXMgUXRXZWJraXQgdGhhdCByZWx5IG9uIHdlYmtpdCBmb3IgSmF2YSBh
cHBsZXQgc3VwcG9ydC4KKworICAgICAgICAqIHBsdWdpbnMvUGx1Z2luRGVidWcuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6cHJldHR5TmFtZUZvck5QTlVSTFZhcmlhYmxlKToKKyAgICAgICAgKiBw
bHVnaW5zL1BsdWdpbkRlYnVnLmg6CisgICAgICAgICogcGx1Z2lucy9QbHVnaW5QYWNrYWdlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblBhY2thZ2U6OmluaXRpYWxpemVCcm93c2VyRnVu
Y3MpOgorICAgICAgICAqIHBsdWdpbnMvUGx1Z2luVmlldy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpQbHVnaW5WaWV3OjpnZXRWYWx1ZUZvclVSTCk6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5W
aWV3OjpzZXRWYWx1ZUZvclVSTCk6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpnZXRB
dXRoZW50aWNhdGlvbkluZm8pOgorICAgICAgICAqIHBsdWdpbnMvUGx1Z2luVmlldy5oOgorICAg
ICAgICAqIHBsdWdpbnMvZ3RrL1BsdWdpblZpZXdHdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UGx1Z2luVmlldzo6cGxhdGZvcm1HZXRWYWx1ZUZvclVSTCk6CisgICAgICAgIChXZWJDb3JlOjpQ
bHVnaW5WaWV3OjpwbGF0Zm9ybVNldFZhbHVlRm9yVVJMKToKKyAgICAgICAgKFdlYkNvcmU6OlBs
dWdpblZpZXc6OnBsYXRmb3JtR2V0QXV0aGVudGljYXRpb25JbmZvKToKKyAgICAgICAgKiBwbHVn
aW5zL21hYy9QbHVnaW5WaWV3TWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6
cGxhdGZvcm1HZXRWYWx1ZUZvclVSTCk6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3Ojpw
bGF0Zm9ybVNldFZhbHVlRm9yVVJMKToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OnBs
YXRmb3JtR2V0QXV0aGVudGljYXRpb25JbmZvKToKKyAgICAgICAgKiBwbHVnaW5zL25wYXBpLmNw
cDoKKyAgICAgICAgKE5QTl9HZXRWYWx1ZUZvclVSTCk6CisgICAgICAgIChOUE5fU2V0VmFsdWVG
b3JVUkwpOgorICAgICAgICAoTlBOX0dldEF1dGhlbnRpY2F0aW9uSW5mbyk6CisgICAgICAgICog
cGx1Z2lucy9xdC9QbHVnaW5WaWV3UXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmll
dzo6cGxhdGZvcm1HZXRWYWx1ZUZvclVSTCk6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3
OjpwbGF0Zm9ybUdldEF1dGhlbnRpY2F0aW9uSW5mbyk6CisgICAgICAgIChXZWJDb3JlOjpQbHVn
aW5WaWV3OjpwbGF0Zm9ybVNldFZhbHVlRm9yVVJMKToKKyAgICAgICAgKiBwbHVnaW5zL3N5bWJp
YW4vUGx1Z2luVmlld1N5bWJpYW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6
cGxhdGZvcm1HZXRWYWx1ZUZvclVSTCk6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3Ojpw
bGF0Zm9ybVNldFZhbHVlRm9yVVJMKToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OnBs
YXRmb3JtR2V0QXV0aGVudGljYXRpb25JbmZvKToKKyAgICAgICAgKiBwbHVnaW5zL3dpbi9QbHVn
aW5WaWV3V2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OnBsYXRmb3JtR2V0
VmFsdWVGb3JVUkwpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6cGxhdGZvcm1TZXRW
YWx1ZUZvclVSTCk6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpwbGF0Zm9ybUdldEF1
dGhlbnRpY2F0aW9uSW5mbyk6CisKIDIwMTAtMDgtMjIgIEFyaXlhIEhpZGF5YXQgIDxhcml5YUBz
ZW5jaGEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERpcmsgU2NodWx6ZS4KZGlmZiAtLWdp
dCBhL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5EZWJ1Zy5jcHAgYi9XZWJDb3JlL3BsdWdpbnMvUGx1
Z2luRGVidWcuY3BwCmluZGV4IGFjZThiMjEuLjhjM2VmY2IgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
cGx1Z2lucy9QbHVnaW5EZWJ1Zy5jcHAKKysrIGIvV2ViQ29yZS9wbHVnaW5zL1BsdWdpbkRlYnVn
LmNwcApAQCAtMTYzLDYgKzE2MywxNCBAQCBDU3RyaW5nIHByZXR0eU5hbWVGb3JOUFBWYXJpYWJs
ZShOUFBWYXJpYWJsZSB2YXJpYWJsZSwgdm9pZCogdmFsdWUpCiAgICAgfQogfQogCitDU3RyaW5n
IHByZXR0eU5hbWVGb3JOUE5VUkxWYXJpYWJsZShOUE5VUkxWYXJpYWJsZSB2YXJpYWJsZSkKK3sK
KyAgICBzd2l0Y2ggKHZhcmlhYmxlKSB7CisgICAgY2FzZSBOUE5VUkxWQ29va2llOiByZXR1cm4g
Ik5QTlVSTFZDb29raWUiOworICAgIGNhc2UgTlBOVVJMVlByb3h5OiByZXR1cm4gIk5QTlVSTFZQ
cm94eSI7CisgICAgZGVmYXVsdDogcmV0dXJuICJVbmtub3duIHZhcmlhYmxlIjsKKyAgICB9Cit9
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyAhTE9HX0RJU0FCTEVECmRpZmYg
LS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luRGVidWcuaCBiL1dlYkNvcmUvcGx1Z2lucy9Q
bHVnaW5EZWJ1Zy5oCmluZGV4IDI1NDg2NGYuLjAxN2U2ODYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
cGx1Z2lucy9QbHVnaW5EZWJ1Zy5oCisrKyBiL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5EZWJ1Zy5o
CkBAIC00MSw2ICs0MSw3IEBAIGNvbnN0IGNoYXIqIHByZXR0eU5hbWVGb3JOUEVycm9yKE5QRXJy
b3IgZXJyb3IpOwogCiBDU3RyaW5nIHByZXR0eU5hbWVGb3JOUE5WYXJpYWJsZShOUE5WYXJpYWJs
ZSB2YXJpYWJsZSk7CiBDU3RyaW5nIHByZXR0eU5hbWVGb3JOUFBWYXJpYWJsZShOUFBWYXJpYWJs
ZSB2YXJpYWJsZSwgdm9pZCogdmFsdWUpOworQ1N0cmluZyBwcmV0dHlOYW1lRm9yTlBOVVJMVmFy
aWFibGUoTlBOVVJMVmFyaWFibGUgdmFyaWFibGUpOwogCiAjaWZkZWYgWFBfTUFDT1NYCiBjb25z
dCBjaGFyKiBwcmV0dHlOYW1lRm9yRHJhd2luZ01vZGVsKE5QRHJhd2luZ01vZGVsIGRyYXdpbmdN
b2RlbCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luUGFja2FnZS5jcHAgYi9X
ZWJDb3JlL3BsdWdpbnMvUGx1Z2luUGFja2FnZS5jcHAKaW5kZXggYmY5NzBmMi4uNjUzYjI0ZiAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblBhY2thZ2UuY3BwCisrKyBiL1dlYkNv
cmUvcGx1Z2lucy9QbHVnaW5QYWNrYWdlLmNwcApAQCAtMzA1LDYgKzMwNSw5IEBAIHZvaWQgUGx1
Z2luUGFja2FnZTo6aW5pdGlhbGl6ZUJyb3dzZXJGdW5jcygpCiAgICAgbV9icm93c2VyRnVuY3Mu
c2V0ZXhjZXB0aW9uID0gX05QTl9TZXRFeGNlcHRpb247CiAgICAgbV9icm93c2VyRnVuY3MuZW51
bWVyYXRlID0gX05QTl9FbnVtZXJhdGU7CiAgICAgbV9icm93c2VyRnVuY3MuY29uc3RydWN0ID0g
X05QTl9Db25zdHJ1Y3Q7CisgICAgbV9icm93c2VyRnVuY3MuZ2V0dmFsdWVmb3J1cmwgPSBOUE5f
R2V0VmFsdWVGb3JVUkw7CisgICAgbV9icm93c2VyRnVuY3Muc2V0dmFsdWVmb3J1cmwgPSBOUE5f
U2V0VmFsdWVGb3JVUkw7CisgICAgbV9icm93c2VyRnVuY3MuZ2V0YXV0aGVudGljYXRpb25pbmZv
ID0gTlBOX0dldEF1dGhlbnRpY2F0aW9uSW5mbzsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5jcHAgYi9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmll
dy5jcHAKaW5kZXggYmVlOGRjZC4uOGJiNGEyOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbHVnaW5z
L1BsdWdpblZpZXcuY3BwCisrKyBiL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmNwcApAQCAt
MzAsNiArMzAsNyBAQAogCiAjaW5jbHVkZSAiQnJpZGdlLmgiCiAjaW5jbHVkZSAiQ2hyb21lLmgi
CisjaW5jbHVkZSAiQ29va2llSmFyLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRl
ICJEb2N1bWVudExvYWRlci5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKQEAgLTEzNzcsNiArMTM3
OCw4OCBAQCBOUEVycm9yIFBsdWdpblZpZXc6OmdldFZhbHVlKE5QTlZhcmlhYmxlIHZhcmlhYmxl
LCB2b2lkKiB2YWx1ZSkKICAgICAgICAgcmV0dXJuIE5QRVJSX0dFTkVSSUNfRVJST1I7CiAgICAg
fQogfQorCitOUEVycm9yIFBsdWdpblZpZXc6OmdldFZhbHVlRm9yVVJMKE5QTlVSTFZhcmlhYmxl
IHZhcmlhYmxlLCBjb25zdCBjaGFyKiB1cmwsIGNoYXIqKiB2YWx1ZSwgdWludDMyX3QqIGxlbikK
K3sKKyAgICBMT0coUGx1Z2lucywgIlBsdWdpblZpZXc6OmdldFZhbHVlRm9yVVJMKCVzKSIsIHBy
ZXR0eU5hbWVGb3JOUE5VUkxWYXJpYWJsZSh2YXJpYWJsZSkuZGF0YSgpKTsKKworICAgIE5QRXJy
b3IgcmVzdWx0ID0gTlBFUlJfTk9fRVJST1I7CisgICAgaWYgKHBsYXRmb3JtR2V0VmFsdWVGb3JV
UkwodmFyaWFibGUsIHVybCwgdmFsdWUsIGxlbiwgJnJlc3VsdCkpCisgICAgICAgIHJldHVybiBy
ZXN1bHQ7CisKKyAgICBzd2l0Y2ggKHZhcmlhYmxlKSB7CisgICAgY2FzZSBOUE5VUkxWQ29va2ll
OiB7CisgICAgICAgIEtVUkwgdShtX2Jhc2VVUkwsIHVybCk7CisgICAgICAgIGlmICh1LmlzVmFs
aWQoKSkgeworICAgICAgICAgICAgY29uc3QgQ1N0cmluZyBjb29raWVTdHIgPSBjb29raWVzKG1f
cGFyZW50RnJhbWUtPmRvY3VtZW50KCksIHUpLnV0ZjgoKTsKKyAgICAgICAgICAgIGlmICghY29v
a2llU3RyLmlzTnVsbCgpKSB7CisgICAgICAgICAgICAgICAgKnZhbHVlID0gc3RhdGljX2Nhc3Q8
Y2hhcio+KE5QTl9NZW1BbGxvYyhjb29raWVTdHIubGVuZ3RoKCkpKTsKKyAgICAgICAgICAgICAg
ICBpZiAoKnZhbHVlKSB7CisgICAgICAgICAgICAgICAgICAgIHN0cm5jcHkoKnZhbHVlLCBjb29r
aWVTdHIuZGF0YSgpLCBjb29raWVTdHIubGVuZ3RoKCkpOworICAgICAgICAgICAgICAgICAgICBp
ZiAobGVuKQorICAgICAgICAgICAgICAgICAgICAgICAgKmxlbiA9IGNvb2tpZVN0ci5sZW5ndGgo
KTsKKyAgICAgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0g
TlBFUlJfT1VUX09GX01FTU9SWV9FUlJPUjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNl
CisgICAgICAgICAgICByZXN1bHQgPSBOUEVSUl9JTlZBTElEX1VSTDsKKyAgICAgICAgYnJlYWs7
CisgICAgfQorICAgIGNhc2UgTlBOVVJMVlByb3h5OgorICAgICAgICByZXN1bHQgPSBOUEVSUl9H
RU5FUklDX0VSUk9SOworICAgICAgICBMT0coUGx1Z2lucywgIlBsdWdpblZpZXc6OmdldFZhbHVl
Rm9yVVJMKCVzKTogTmVlZCB0byBpbXBsZW1lbnQgUGx1Z2luVmlldzo6cGxhdGZvcm1HZXRWYWx1
ZUZvclVSTCEiLCBwcmV0dHlOYW1lRm9yTlBOVVJMVmFyaWFibGUodmFyaWFibGUpLmRhdGEoKSk7
CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJlc3VsdCA9IE5QRVJSX0dF
TkVSSUNfRVJST1I7CisgICAgICAgIExPRyhQbHVnaW5zLCAiUGx1Z2luVmlldzo6Z2V0VmFsdWVG
b3JVUkw6ICVzIiwgcHJldHR5TmFtZUZvck5QTlVSTFZhcmlhYmxlKHZhcmlhYmxlKS5kYXRhKCkp
OworICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICByZXR1cm4gcmVzdWx0OworfQorCisKK05Q
RXJyb3IgUGx1Z2luVmlldzo6c2V0VmFsdWVGb3JVUkwoTlBOVVJMVmFyaWFibGUgdmFyaWFibGUs
IGNvbnN0IGNoYXIqIHVybCwgY29uc3QgY2hhciogdmFsdWUsIHVpbnQzMl90IGxlbikKK3sKKyAg
ICBMT0coUGx1Z2lucywgIlBsdWdpblZpZXc6OnNldFZhbHVlRm9yVVJMKCVzKSIsIHByZXR0eU5h
bWVGb3JOUE5VUkxWYXJpYWJsZSh2YXJpYWJsZSkuZGF0YSgpKTsKKworICAgIE5QRXJyb3IgcmVz
dWx0ID0gTlBFUlJfR0VORVJJQ19FUlJPUjsKKyAgICBpZiAocGxhdGZvcm1TZXRWYWx1ZUZvclVS
TCh2YXJpYWJsZSwgdXJsLCB2YWx1ZSwgbGVuLCAmcmVzdWx0KSkKKyAgICAgICAgcmV0dXJuIHJl
c3VsdDsKKworICAgIHN3aXRjaCAodmFyaWFibGUpIHsKKyAgICBjYXNlIE5QTlVSTFZDb29raWU6
IHsKKyAgICAgICAgS1VSTCB1KG1fYmFzZVVSTCwgdXJsKTsKKyAgICAgICAgaWYgKHUuaXNWYWxp
ZCgpKSB7CisgICAgICAgICAgICBTdHJpbmcgY29va2llU3RyID0gU3RyaW5nOjpmcm9tVVRGOCh2
YWx1ZSwgbGVuKTsKKyAgICAgICAgICAgIGlmICghY29va2llU3RyLmlzRW1wdHkoKSkKKyAgICAg
ICAgICAgICAgICBzZXRDb29raWVzKG1fcGFyZW50RnJhbWUtPmRvY3VtZW50KCksIHUsIGNvb2tp
ZVN0cik7CisgICAgICAgICAgICByZXN1bHQgPSBOUEVSUl9OT19FUlJPUjsKKyAgICAgICAgfSBl
bHNlCisgICAgICAgICAgICByZXN1bHQgPSBOUEVSUl9JTlZBTElEX1VSTDsKKyAgICAgICAgYnJl
YWs7CisgICAgfQorICAgIGNhc2UgTlBOVVJMVlByb3h5OgorICAgICAgICBMT0coUGx1Z2lucywg
IlBsdWdpblZpZXc6OnNldFZhbHVlRm9yVVJMKCVzKTogUGx1Z2lucyBhcmUgTk9UIGFsbG93ZWQg
dG8gc2V0IHByb3h5IGluZm9ybWF0aW9uLiIsIHByZXR0eU5hbWVGb3JOUE5VUkxWYXJpYWJsZSh2
YXJpYWJsZSkuZGF0YSgpKTsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAg
TE9HKFBsdWdpbnMsICJQbHVnaW5WaWV3OjpzZXRWYWx1ZUZvclVSTDogJXMiLCBwcmV0dHlOYW1l
Rm9yTlBOVVJMVmFyaWFibGUodmFyaWFibGUpLmRhdGEoKSk7CisgICAgICAgIGJyZWFrOworICAg
IH0KKworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK05QRXJyb3IgUGx1Z2luVmlldzo6Z2V0QXV0
aGVudGljYXRpb25JbmZvKGNvbnN0IGNoYXIqIHByb3RvY29sLCBjb25zdCBjaGFyKiBob3N0LCBp
bnQzMl90IHBvcnQsIGNvbnN0IGNoYXIqIHNjaGVtZSwgY29uc3QgY2hhciogcmVhbG0sIGNoYXIq
KiB1c2VybmFtZSwgdWludDMyX3QqIHVsZW4sIGNoYXIqKiBwYXNzd29yZCwgdWludDMyX3QqIHBs
ZW4pCit7CisgICAgTE9HKFBsdWdpbnMsICJQbHVnaW5WaWV3OjpnZXRBdXRoZW50aWNhdGlvbklu
Zm86IHByb3RvY29sPSVzLCBob3N0PSVzLCBwb3J0PSVkIiwgcHJvdG9jb2wsIGhvc3QsIHBvcnQp
OworCisgICAgTlBFcnJvciByZXN1bHQgPSBOUEVSUl9HRU5FUklDX0VSUk9SOworICAgIGlmIChw
bGF0Zm9ybUdldEF1dGhlbnRpY2F0aW9uSW5mbyhwcm90b2NvbCwgaG9zdCwgcG9ydCwgc2NoZW1l
LCByZWFsbSwgdXNlcm5hbWUsIHVsZW4sIHBhc3N3b3JkLCBwbGVuLCAmcmVzdWx0KSkKKyAgICAg
ICAgcmV0dXJuIHJlc3VsdDsKKworICAgIHJldHVybiBOUEVSUl9HRU5FUklDX0VSUk9SOworfQog
I2VuZGlmCiAKIHZvaWQgUGx1Z2luVmlldzo6cHJpdmF0ZUJyb3dzaW5nU3RhdGVDaGFuZ2VkKGJv
b2wgcHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGx1Z2lucy9Q
bHVnaW5WaWV3LmggYi9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5oCmluZGV4IGExZTc1MjQu
LjBiMDg5OTkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmgKKysrIGIv
V2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcuaApAQCAtMTY1LDYgKzE2NSw5IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICAgICAgTlBFcnJvciBnZXRWYWx1ZShOUE5WYXJpYWJsZSB2YXJpYWJs
ZSwgdm9pZCogdmFsdWUpOwogICAgICAgICBzdGF0aWMgTlBFcnJvciBnZXRWYWx1ZVN0YXRpYyhO
UE5WYXJpYWJsZSB2YXJpYWJsZSwgdm9pZCogdmFsdWUpOwogICAgICAgICBOUEVycm9yIHNldFZh
bHVlKE5QUFZhcmlhYmxlIHZhcmlhYmxlLCB2b2lkKiB2YWx1ZSk7CisgICAgICAgIE5QRXJyb3Ig
Z2V0VmFsdWVGb3JVUkwoTlBOVVJMVmFyaWFibGUgdmFyaWFibGUsIGNvbnN0IGNoYXIqIHVybCwg
Y2hhcioqIHZhbHVlLCB1aW50MzJfdCogbGVuKTsKKyAgICAgICAgTlBFcnJvciBzZXRWYWx1ZUZv
clVSTChOUE5VUkxWYXJpYWJsZSB2YXJpYWJsZSwgY29uc3QgY2hhciogdXJsLCBjb25zdCBjaGFy
KiB2YWx1ZSwgdWludDMyX3QgbGVuKTsKKyAgICAgICAgTlBFcnJvciBnZXRBdXRoZW50aWNhdGlv
bkluZm8oY29uc3QgY2hhciogcHJvdG9jb2wsIGNvbnN0IGNoYXIqIGhvc3QsIGludDMyX3QgcG9y
dCwgY29uc3QgY2hhciogc2NoZW1lLCBjb25zdCBjaGFyKiByZWFsbSwgY2hhcioqIHVzZXJuYW1l
LCB1aW50MzJfdCogdWxlbiwgY2hhcioqIHBhc3N3b3JkLCB1aW50MzJfdCogcGxlbik7CiAgICAg
ICAgIHZvaWQgaW52YWxpZGF0ZVJlY3QoTlBSZWN0Kik7CiAgICAgICAgIHZvaWQgaW52YWxpZGF0
ZVJlZ2lvbihOUFJlZ2lvbik7CiAjZW5kaWYKQEAgLTI3Miw2ICsyNzUsOSBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAjaWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCiAgICAgICAgIHN0YXRp
YyBib29sIHBsYXRmb3JtR2V0VmFsdWVTdGF0aWMoTlBOVmFyaWFibGUgdmFyaWFibGUsIHZvaWQq
IHZhbHVlLCBOUEVycm9yKiByZXN1bHQpOwogICAgICAgICBib29sIHBsYXRmb3JtR2V0VmFsdWUo
TlBOVmFyaWFibGUgdmFyaWFibGUsIHZvaWQqIHZhbHVlLCBOUEVycm9yKiByZXN1bHQpOworICAg
ICAgICBib29sIHBsYXRmb3JtR2V0VmFsdWVGb3JVUkwoTlBOVVJMVmFyaWFibGUgdmFyaWFibGUs
IGNvbnN0IGNoYXIqIHVybCwgY2hhcioqIHZhbHVlLCB1aW50MzJfdCogbGVuLCBOUEVycm9yKiBy
ZXN1bHQpOworICAgICAgICBib29sIHBsYXRmb3JtU2V0VmFsdWVGb3JVUkwoTlBOVVJMVmFyaWFi
bGUgdmFyaWFibGUsIGNvbnN0IGNoYXIqIHVybCwgY29uc3QgY2hhciogdmFsdWUsIHVpbnQzMl90
IGxlbiwgTlBFcnJvciogcmVzdWx0KTsKKyAgICAgICAgYm9vbCBwbGF0Zm9ybUdldEF1dGhlbnRp
Y2F0aW9uSW5mbyhjb25zdCBjaGFyKiBwcm90b2NvbCwgY29uc3QgY2hhciogaG9zdCwgaW50MzJf
dCBwb3J0LCBjb25zdCBjaGFyKiBzY2hlbWUsIGNvbnN0IGNoYXIqIHJlYWxtLCBjaGFyKiogdXNl
cm5hbWUsIHVpbnQzMl90KiB1bGVuLCBjaGFyKiogcGFzc3dvcmQsIHVpbnQzMl90KiBwbGVuLCBO
UEVycm9yKiByZXN1bHQpOwogI2VuZGlmCiAKICAgICAgICAgUmVmUHRyPEZyYW1lPiBtX3BhcmVu
dEZyYW1lOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbHVnaW5zL2d0ay9QbHVnaW5WaWV3R3RrLmNw
cCBiL1dlYkNvcmUvcGx1Z2lucy9ndGsvUGx1Z2luVmlld0d0ay5jcHAKaW5kZXggYWI0M2JmNC4u
MGFiZmFkOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbHVnaW5zL2d0ay9QbHVnaW5WaWV3R3RrLmNw
cAorKysgYi9XZWJDb3JlL3BsdWdpbnMvZ3RrL1BsdWdpblZpZXdHdGsuY3BwCkBAIC02NjksNiAr
NjY5LDIyIEBAIGJvb2wgUGx1Z2luVmlldzo6cGxhdGZvcm1HZXRWYWx1ZShOUE5WYXJpYWJsZSB2
YXJpYWJsZSwgdm9pZCogdmFsdWUsIE5QRXJyb3IqIHJlCiAgICAgfQogfQogCitib29sIFBsdWdp
blZpZXc6OnBsYXRmb3JtR2V0VmFsdWVGb3JVUkwoTlBOVVJMVmFyaWFibGUgdmFyaWFibGUsIGNv
bnN0IGNoYXIqIHVybCwgY2hhcioqIHZhbHVlLCB1aW50MzJfdCogbGVuLCBOUEVycm9yKiByZXN1
bHQpCit7CisgICAgLy8gTk9URTogTlBOVVJMVlByb3h5IHJlcXVpcmVzIHBsYXRmb3JtIHNwZWNp
ZmljIGltcGxlbWVudGF0aW9uIDsgb3RoZXJ3aXNlLCBOUF9HRU5FUklDX0VSUiBpcyByZXR1cm5l
ZCBieSBkZWZhdWx0LgorICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBQbHVnaW5WaWV3Ojpw
bGF0Zm9ybVNldFZhbHVlRm9yVVJMKE5QTlVSTFZhcmlhYmxlIHZhcmlhYmxlLCBjb25zdCBjaGFy
KiB1cmwsIGNvbnN0IGNoYXIqIHZhbHVlLCB1aW50MzJfdCBsZW4sIE5QRXJyb3IqIHJlc3VsdCkK
K3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgUGx1Z2luVmlldzo6cGxhdGZvcm1HZXRB
dXRoZW50aWNhdGlvbkluZm8oY29uc3QgY2hhciogcHJvdG9jb2wsIGNvbnN0IGNoYXIqIGhvc3Qs
IGludDMyX3QgcG9ydCwgY29uc3QgY2hhciogc2NoZW1lLCBjb25zdCBjaGFyKiByZWFsbSwgY2hh
cioqIHVzZXJuYW1lLCB1aW50MzJfdCogdWxlbiwgY2hhcioqIHBhc3N3b3JkLCB1aW50MzJfdCog
cGxlbiwgTlBFcnJvciogcmVzdWx0KQoreworICAgIHJldHVybiBmYWxzZTsKK30KKwogdm9pZCBQ
bHVnaW5WaWV3OjppbnZhbGlkYXRlUmVjdChjb25zdCBJbnRSZWN0JiByZWN0KQogewogICAgIGlm
IChtX2lzV2luZG93ZWQpIHsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGx1Z2lucy9tYWMvUGx1Z2lu
Vmlld01hYy5tbSBiL1dlYkNvcmUvcGx1Z2lucy9tYWMvUGx1Z2luVmlld01hYy5tbQppbmRleCBl
MGFkMTM1Li41MTI5YWMyIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsdWdpbnMvbWFjL1BsdWdpblZp
ZXdNYWMubW0KKysrIGIvV2ViQ29yZS9wbHVnaW5zL21hYy9QbHVnaW5WaWV3TWFjLm1tCkBAIC0z
MDgsNiArMzA4LDIyIEBAIGJvb2wgUGx1Z2luVmlldzo6cGxhdGZvcm1HZXRWYWx1ZShOUE5WYXJp
YWJsZSB2YXJpYWJsZSwgdm9pZCogdmFsdWUsIE5QRXJyb3IqIGVyCiAgICAgcmV0dXJuIGZhbHNl
OwogfQogCitib29sIFBsdWdpblZpZXc6OnBsYXRmb3JtR2V0VmFsdWVGb3JVUkwoTlBOVVJMVmFy
aWFibGUgdmFyaWFibGUsIGNvbnN0IGNoYXIqIHVybCwgY2hhcioqIHZhbHVlLCB1aW50MzJfdCog
bGVuLCBOUEVycm9yKiByZXN1bHQpCit7CisgICAgLy8gTk9URTogTlBOVVJMVlByb3h5IHJlcXVp
cmVzIHBsYXRmb3JtIHNwZWNpZmljIGltcGxlbWVudGF0aW9uIDsgb3RoZXJ3aXNlLCBOUF9HRU5F
UklDX0VSUiBpcyByZXR1cm5lZCBieSBkZWZhdWx0LgorICAgIHJldHVybiBmYWxzZTsKK30KKwor
Ym9vbCBQbHVnaW5WaWV3OjpwbGF0Zm9ybVNldFZhbHVlRm9yVVJMKE5QTlVSTFZhcmlhYmxlIHZh
cmlhYmxlLCBjb25zdCBjaGFyKiB1cmwsIGNvbnN0IGNoYXIqIHZhbHVlLCB1aW50MzJfdCBsZW4s
IE5QRXJyb3IqIHJlc3VsdCkKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgUGx1Z2lu
Vmlldzo6cGxhdGZvcm1HZXRBdXRoZW50aWNhdGlvbkluZm8oY29uc3QgY2hhciogcHJvdG9jb2ws
IGNvbnN0IGNoYXIqIGhvc3QsIGludDMyX3QgcG9ydCwgY29uc3QgY2hhciogc2NoZW1lLCBjb25z
dCBjaGFyKiByZWFsbSwgY2hhcioqIHVzZXJuYW1lLCB1aW50MzJfdCogdWxlbiwgY2hhcioqIHBh
c3N3b3JkLCB1aW50MzJfdCogcGxlbiwgTlBFcnJvciogcmVzdWx0KQoreworICAgIHJldHVybiBm
YWxzZTsKK30KKwogdm9pZCBQbHVnaW5WaWV3OjpzZXRQYXJlbnQoU2Nyb2xsVmlldyogcGFyZW50
KQogewogICAgIExPRyhQbHVnaW5zLCAiUGx1Z2luVmlldzo6c2V0UGFyZW50KCVwKSIsIHBhcmVu
dCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvbnBhcGkuY3BwIGIvV2ViQ29yZS9wbHVn
aW5zL25wYXBpLmNwcAppbmRleCBkMGRiODQ1Li5iMjcyMWZiIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L3BsdWdpbnMvbnBhcGkuY3BwCisrKyBiL1dlYkNvcmUvcGx1Z2lucy9ucGFwaS5jcHAKQEAgLTE3
NSwzICsxNzUsMTggQEAgdm9pZCBOUE5fUGx1Z2luVGhyZWFkQXN5bmNDYWxsKE5QUCBpbnN0YW5j
ZSwgdm9pZCAoKmZ1bmMpICh2b2lkICopLCB2b2lkICp1c2VyRGEKIHsKICAgICBQbHVnaW5NYWlu
VGhyZWFkU2NoZWR1bGVyOjpzY2hlZHVsZXIoKS5zY2hlZHVsZUNhbGwoaW5zdGFuY2UsIGZ1bmMs
IHVzZXJEYXRhKTsKIH0KKworTlBFcnJvciBOUE5fR2V0VmFsdWVGb3JVUkwoTlBQIGluc3RhbmNl
LCBOUE5VUkxWYXJpYWJsZSB2YXJpYWJsZSwgY29uc3QgY2hhciogdXJsLCBjaGFyKiogdmFsdWUs
IHVpbnQzMl90KiBsZW4pCit7CisgICAgcmV0dXJuIHBsdWdpblZpZXdGb3JJbnN0YW5jZShpbnN0
YW5jZSktPmdldFZhbHVlRm9yVVJMKHZhcmlhYmxlLCB1cmwsIHZhbHVlLCBsZW4pOworfQorCitO
UEVycm9yIE5QTl9TZXRWYWx1ZUZvclVSTChOUFAgaW5zdGFuY2UsIE5QTlVSTFZhcmlhYmxlIHZh
cmlhYmxlLCBjb25zdCBjaGFyKiB1cmwsIGNvbnN0IGNoYXIqIHZhbHVlLCB1aW50MzJfdCBsZW4p
Cit7CisgICAgcmV0dXJuIHBsdWdpblZpZXdGb3JJbnN0YW5jZShpbnN0YW5jZSktPnNldFZhbHVl
Rm9yVVJMKHZhcmlhYmxlLCB1cmwsIHZhbHVlLCBsZW4pOworfQorCitOUEVycm9yIE5QTl9HZXRB
dXRoZW50aWNhdGlvbkluZm8oTlBQIGluc3RhbmNlLCBjb25zdCBjaGFyKiBwcm90b2NvbCwgY29u
c3QgY2hhciogaG9zdCwgaW50MzJfdCBwb3J0LCBjb25zdCBjaGFyKiBzY2hlbWUsIGNvbnN0IGNo
YXIqIHJlYWxtLCBjaGFyKiogdXNlcm5hbWUsIHVpbnQzMl90KiB1bGVuLCBjaGFyKiogcGFzc3dv
cmQsIHVpbnQzMl90KiBwbGVuKQoreworICAgIHJldHVybiBwbHVnaW5WaWV3Rm9ySW5zdGFuY2Uo
aW5zdGFuY2UpLT5nZXRBdXRoZW50aWNhdGlvbkluZm8ocHJvdG9jb2wsIGhvc3QsIHBvcnQsIHNj
aGVtZSwgcmVhbG0sIHVzZXJuYW1lLCB1bGVuLCBwYXNzd29yZCwgcGxlbik7Cit9CmRpZmYgLS1n
aXQgYS9XZWJDb3JlL3BsdWdpbnMvcXQvUGx1Z2luVmlld1F0LmNwcCBiL1dlYkNvcmUvcGx1Z2lu
cy9xdC9QbHVnaW5WaWV3UXQuY3BwCmluZGV4IDVjNjgxYjguLjhmODYzMmMgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvcGx1Z2lucy9xdC9QbHVnaW5WaWV3UXQuY3BwCisrKyBiL1dlYkNvcmUvcGx1Z2lu
cy9xdC9QbHVnaW5WaWV3UXQuY3BwCkBAIC02Niw2ICs2Niw3IEBACiAjaW5jbHVkZSA8UUFwcGxp
Y2F0aW9uPgogI2luY2x1ZGUgPFFEZXNrdG9wV2lkZ2V0PgogI2luY2x1ZGUgPFFLZXlFdmVudD4K
KyNpbmNsdWRlIDxRTmV0d29ya1Byb3h5PgogI2luY2x1ZGUgPFFQYWludGVyPgogI2luY2x1ZGUg
PFFXaWRnZXQ+CiAjaW5jbHVkZSA8UVgxMUluZm8+CkBAIC03MTgsNiArNzE5LDY1IEBAIGJvb2wg
UGx1Z2luVmlldzo6cGxhdGZvcm1HZXRWYWx1ZShOUE5WYXJpYWJsZSB2YXJpYWJsZSwgdm9pZCog
dmFsdWUsIE5QRXJyb3IqIHJlCiAgICAgfQogfQogCitib29sIFBsdWdpblZpZXc6OnBsYXRmb3Jt
R2V0VmFsdWVGb3JVUkwoTlBOVVJMVmFyaWFibGUgdmFyaWFibGUsIGNvbnN0IGNoYXIqIHVybCwg
Y2hhcioqIHZhbHVlLCB1aW50MzJfdCogbGVuLCBOUEVycm9yKiByZXN1bHQpCit7CisgICAgaWYg
KHZhcmlhYmxlID09IE5QTlVSTFZQcm94eSkgeworICAgICAgICBRU3RyaW5nIHByb3h5U3RyOwor
ICAgICAgICBRTmV0d29ya1Byb3h5IHByb3h5ID0gUU5ldHdvcmtQcm94eTo6YXBwbGljYXRpb25Q
cm94eSgpOworCisgICAgICAgIHN3aXRjaCAocHJveHkudHlwZSgpKSB7CisgICAgICAgIGNhc2Ug
UU5ldHdvcmtQcm94eTo6U29ja3M1UHJveHk6IHsKKyAgICAgICAgICAgIHByb3h5U3RyID0gUUxh
dGluMVN0cmluZygiU09DS1MgIik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAg
ICAgICBjYXNlIFFOZXR3b3JrUHJveHk6Okh0dHBQcm94eToKKyAgICAgICAgY2FzZSBRTmV0d29y
a1Byb3h5OjpIdHRwQ2FjaGluZ1Byb3h5OgorICAgICAgICBjYXNlIFFOZXR3b3JrUHJveHk6OkZ0
cENhY2hpbmdQcm94eTogeworICAgICAgICAgICAgcHJveHlTdHIgPSBRTGF0aW4xU3RyaW5nKCJQ
Uk9YWSAiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGNhc2UgUU5l
dHdvcmtQcm94eTo6RGVmYXVsdFByb3h5OgorICAgICAgICBjYXNlIFFOZXR3b3JrUHJveHk6Ok5v
UHJveHk6CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBwcm94eVN0ciA9IFFMYXRpbjFT
dHJpbmcoIkRJUkVDVCIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAg
ICBpZiAocHJveHlTdHIgIT0gUUxhdGluMVN0cmluZygiRElSRUNUIikpIHsKKyAgICAgICAgICAg
IHByb3h5U3RyICs9IHByb3h5Lmhvc3ROYW1lKCk7CisgICAgICAgICAgICBpZiAocHJveHkucG9y
dCgpID4gMCkgeworICAgICAgICAgICAgICAgIHByb3h5U3RyICs9IFFMYXRpbjFDaGFyKCc6Jyk7
CisgICAgICAgICAgICAgICAgcHJveHlTdHIgKz0gUVN0cmluZzo6bnVtYmVyKHByb3h5LnBvcnQo
KSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBjb25zdCBRQnl0ZUFycmF5
IHByb3h5U3RyVXRmOCA9IHByb3h5U3RyLnRvVXRmOCgpOworICAgICAgICAqdmFsdWUgPSBzdGF0
aWNfY2FzdDxjaGFyKj4oTlBOX01lbUFsbG9jKHByb3h5U3RyVXRmOC5sZW5ndGgoKSkpOworICAg
ICAgICBpZiAoKnZhbHVlKSB7CisgICAgICAgICAgICBzdHJuY3B5KCp2YWx1ZSwgcHJveHlTdHJV
dGY4LmNvbnN0RGF0YSgpLCBwcm94eVN0clV0ZjgubGVuZ3RoKCkpOworICAgICAgICAgICAgaWYg
KGxlbikKKyAgICAgICAgICAgICAgICAqbGVuID0gcHJveHlTdHJVdGY4Lmxlbmd0aCgpOworICAg
ICAgICAgICAgaWYgKHJlc3VsdCkKKyAgICAgICAgICAgICAgICAqcmVzdWx0ID0gTlBFUlJfTk9f
RVJST1I7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgKnJlc3VsdCA9IE5QRVJSX09VVF9P
Rl9NRU1PUllfRVJST1I7CisgICAgICAgIAorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisK
KyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgUGx1Z2luVmlldzo6cGxhdGZvcm1HZXRBdXRo
ZW50aWNhdGlvbkluZm8oY29uc3QgY2hhciogcHJvdG9jb2wsIGNvbnN0IGNoYXIqIGhvc3QsIGlu
dDMyX3QgcG9ydCwgY29uc3QgY2hhciogc2NoZW1lLCBjb25zdCBjaGFyKiByZWFsbSwgY2hhcioq
IHVzZXJuYW1lLCB1aW50MzJfdCogdWxlbiwgY2hhcioqIHBhc3N3b3JkLCB1aW50MzJfdCogcGxl
biwgTlBFcnJvciogcmVzdWx0KQoreworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBQbHVn
aW5WaWV3OjpwbGF0Zm9ybVNldFZhbHVlRm9yVVJMKE5QTlVSTFZhcmlhYmxlIHZhcmlhYmxlLCBj
b25zdCBjaGFyKiB1cmwsIGNvbnN0IGNoYXIqIHZhbHVlLCB1aW50MzJfdCBsZW4sIE5QRXJyb3Iq
IHJlc3VsdCkKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIHZvaWQgUGx1Z2luVmlldzo6aW52
YWxpZGF0ZVJlY3QoY29uc3QgSW50UmVjdCYgcmVjdCkKIHsKICAgICBpZiAobV9pc1dpbmRvd2Vk
KSB7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvc3ltYmlhbi9QbHVnaW5WaWV3U3ltYmlh
bi5jcHAgYi9XZWJDb3JlL3BsdWdpbnMvc3ltYmlhbi9QbHVnaW5WaWV3U3ltYmlhbi5jcHAKaW5k
ZXggYjlmODJhZC4uM2I0NDRkZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbHVnaW5zL3N5bWJpYW4v
UGx1Z2luVmlld1N5bWJpYW4uY3BwCisrKyBiL1dlYkNvcmUvcGx1Z2lucy9zeW1iaWFuL1BsdWdp
blZpZXdTeW1iaWFuLmNwcApAQCAtMzM4LDYgKzMzOCwyMiBAQCBib29sIFBsdWdpblZpZXc6OnBs
YXRmb3JtR2V0VmFsdWUoTlBOVmFyaWFibGUsIHZvaWQqLCBOUEVycm9yKikKICAgICByZXR1cm4g
ZmFsc2U7CiB9CiAKK2Jvb2wgUGx1Z2luVmlldzo6cGxhdGZvcm1HZXRWYWx1ZUZvclVSTChOUE5V
UkxWYXJpYWJsZSB2YXJpYWJsZSwgY29uc3QgY2hhciogdXJsLCBjaGFyKiogdmFsdWUsIHVpbnQz
Ml90KiBsZW4sIE5QRXJyb3IqIHJlc3VsdCkKK3sKKyAgICAvLyBOT1RFOiBOUE5VUkxWUHJveHkg
cmVxdWlyZXMgcGxhdGZvcm0gc3BlY2lmaWMgaW1wbGVtZW50YXRpb24gOyBvdGhlcndpc2UsIE5Q
X0dFTkVSSUNfRVJSIGlzIHJldHVybmVkIGJ5IGRlZmF1bHQuCisgICAgcmV0dXJuIGZhbHNlOwor
fQorCitib29sIFBsdWdpblZpZXc6OnBsYXRmb3JtU2V0VmFsdWVGb3JVUkwoTlBOVVJMVmFyaWFi
bGUgdmFyaWFibGUsIGNvbnN0IGNoYXIqIHVybCwgY29uc3QgY2hhciogdmFsdWUsIHVpbnQzMl90
IGxlbiwgTlBFcnJvciogcmVzdWx0KQoreworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBQ
bHVnaW5WaWV3OjpwbGF0Zm9ybUdldEF1dGhlbnRpY2F0aW9uSW5mbyhjb25zdCBjaGFyKiBwcm90
b2NvbCwgY29uc3QgY2hhciogaG9zdCwgaW50MzJfdCBwb3J0LCBjb25zdCBjaGFyKiBzY2hlbWUs
IGNvbnN0IGNoYXIqIHJlYWxtLCBjaGFyKiogdXNlcm5hbWUsIHVpbnQzMl90KiB1bGVuLCBjaGFy
KiogcGFzc3dvcmQsIHVpbnQzMl90KiBwbGVuLCBOUEVycm9yKiByZXN1bHQpCit7CisgICAgcmV0
dXJuIGZhbHNlOworfQorCiB2b2lkIFBsdWdpblZpZXc6OmludmFsaWRhdGVSZWN0KGNvbnN0IElu
dFJlY3QmIHJlY3QpCiB7CiAgICAgaWYgKG1faXNXaW5kb3dlZCkgewpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9wbHVnaW5zL3dpbi9QbHVnaW5WaWV3V2luLmNwcCBiL1dlYkNvcmUvcGx1Z2lucy93aW4v
UGx1Z2luVmlld1dpbi5jcHAKaW5kZXggOGRiYjA0Yi4uYmJhY2I3ZiAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9wbHVnaW5zL3dpbi9QbHVnaW5WaWV3V2luLmNwcAorKysgYi9XZWJDb3JlL3BsdWdpbnMv
d2luL1BsdWdpblZpZXdXaW4uY3BwCkBAIC04NzEsNiArODcxLDIyIEBAIGJvb2wgUGx1Z2luVmll
dzo6cGxhdGZvcm1HZXRWYWx1ZVN0YXRpYyhOUE5WYXJpYWJsZSwgdm9pZCosIE5QRXJyb3IqKQog
ICAgIHJldHVybiBmYWxzZTsKIH0KIAorYm9vbCBQbHVnaW5WaWV3OjpwbGF0Zm9ybUdldFZhbHVl
Rm9yVVJMKE5QTlVSTFZhcmlhYmxlIHZhcmlhYmxlLCBjb25zdCBjaGFyKiB1cmwsIGNoYXIqKiB2
YWx1ZSwgdWludDMyX3QqIGxlbiwgTlBFcnJvciogcmVzdWx0KQoreworICAgIC8vIE5PVEU6IE5Q
TlVSTFZQcm94eSByZXF1aXJlcyBwbGF0Zm9ybSBzcGVjaWZpYyBpbXBsZW1lbnRhdGlvbiA7IG90
aGVyd2lzZSwgTlBfR0VORVJJQ19FUlIgaXMgcmV0dXJuZWQgYnkgZGVmYXVsdC4KKyAgICByZXR1
cm4gZmFsc2U7Cit9CisKK2Jvb2wgUGx1Z2luVmlldzo6cGxhdGZvcm1TZXRWYWx1ZUZvclVSTChO
UE5VUkxWYXJpYWJsZSB2YXJpYWJsZSwgY29uc3QgY2hhciogdXJsLCBjb25zdCBjaGFyKiB2YWx1
ZSwgdWludDMyX3QgbGVuLCBOUEVycm9yKiByZXN1bHQpCit7CisgICAgcmV0dXJuIGZhbHNlOwor
fQorCitib29sIFBsdWdpblZpZXc6OnBsYXRmb3JtR2V0QXV0aGVudGljYXRpb25JbmZvKGNvbnN0
IGNoYXIqIHByb3RvY29sLCBjb25zdCBjaGFyKiBob3N0LCBpbnQzMl90IHBvcnQsIGNvbnN0IGNo
YXIqIHNjaGVtZSwgY29uc3QgY2hhciogcmVhbG0sIGNoYXIqKiB1c2VybmFtZSwgdWludDMyX3Qq
IHVsZW4sIGNoYXIqKiBwYXNzd29yZCwgdWludDMyX3QqIHBsZW4sIE5QRXJyb3IqIHJlc3VsdCkK
K3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIGJvb2wgUGx1Z2luVmlldzo6cGxhdGZvcm1HZXRW
YWx1ZShOUE5WYXJpYWJsZSB2YXJpYWJsZSwgdm9pZCogdmFsdWUsIE5QRXJyb3IqIHJlc3VsdCkK
IHsKICAgICBzd2l0Y2ggKHZhcmlhYmxlKSB7Cg==
</data>
<flag name="review"
          id="53734"
          type_id="1"
          status="-"
          setter="hausmann"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>66372</attachid>
            <date>2010-09-02 08:21:02 -0700</date>
            <delta_ts>2010-09-02 08:45:32 -0700</delta_ts>
            <desc>Implement NPN_GetValueForURL and NPN_SetValueForURL and NPN_GetAuthenticationInfo [Update IX]...</desc>
            <filename>implement_npn_functions_necessary_for_java_applet_support.patch</filename>
            <type>text/plain</type>
            <size>20923</size>
            <attacher name="Dawit A.">adawit</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MzJhM2NlZi4uNmIxYjcwZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0OCBAQAorMjAxMC0wOS0wMiAgRGF3aXQgQWxlbWF5
ZWh1ICA8YWRhd2l0QGtkZS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkKKworICAgICAgICBJbXBsZW1lbnQgTlBOX0dldFZhbHVlRm9yVVJMIGFuZCBOUE5fU2V0VmFs
dWVGb3JVUkwgYW5kIE5QTl9HZXRBdXRoZW50aWNhdGlvbkluZm8uCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNDUzOQorCisgICAgICAgIFRoZXNlIG1p
c3NpbmcgTlBOIGZ1bmN0aW9ucyBjYXVzZSBKYXZhIGFwcGxldHMgdG8gY3Jhc2ggaW4gcG9ydHMg
c3VjaAorICAgICAgICBhcyBRdFdlYmtpdCB0aGF0IHJlbHkgb24gd2Via2l0IGZvciBKYXZhIGFw
cGxldCBzdXBwb3J0LgorCisgICAgICAgICogcGx1Z2lucy9QbHVnaW5EZWJ1Zy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpwcmV0dHlOYW1lRm9yTlBOVVJMVmFyaWFibGUpOgorICAgICAgICAqIHBs
dWdpbnMvUGx1Z2luRGVidWcuaDoKKyAgICAgICAgKiBwbHVnaW5zL1BsdWdpblBhY2thZ2UuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luUGFja2FnZTo6aW5pdGlhbGl6ZUJyb3dzZXJGdW5j
cyk6CisgICAgICAgICogcGx1Z2lucy9QbHVnaW5WaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlBsdWdpblZpZXc6OmdldFZhbHVlRm9yVVJMKToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZp
ZXc6OnNldFZhbHVlRm9yVVJMKToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OmdldEF1
dGhlbnRpY2F0aW9uSW5mbyk6CisgICAgICAgICogcGx1Z2lucy9QbHVnaW5WaWV3Lmg6CisgICAg
ICAgICogcGx1Z2lucy9ndGsvUGx1Z2luVmlld0d0ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQ
bHVnaW5WaWV3OjpwbGF0Zm9ybUdldFZhbHVlRm9yVVJMKToKKyAgICAgICAgKFdlYkNvcmU6OlBs
dWdpblZpZXc6OnBsYXRmb3JtU2V0VmFsdWVGb3JVUkwpOgorICAgICAgICAoV2ViQ29yZTo6UGx1
Z2luVmlldzo6cGxhdGZvcm1HZXRBdXRoZW50aWNhdGlvbkluZm8pOgorICAgICAgICAqIHBsdWdp
bnMvbWFjL1BsdWdpblZpZXdNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3Ojpw
bGF0Zm9ybUdldFZhbHVlRm9yVVJMKToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OnBs
YXRmb3JtU2V0VmFsdWVGb3JVUkwpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6cGxh
dGZvcm1HZXRBdXRoZW50aWNhdGlvbkluZm8pOgorICAgICAgICAqIHBsdWdpbnMvbnBhcGkuY3Bw
OgorICAgICAgICAoTlBOX0dldFZhbHVlRm9yVVJMKToKKyAgICAgICAgKE5QTl9TZXRWYWx1ZUZv
clVSTCk6CisgICAgICAgIChOUE5fR2V0QXV0aGVudGljYXRpb25JbmZvKToKKyAgICAgICAgKiBw
bHVnaW5zL3F0L1BsdWdpblZpZXdRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3
OjpwbGF0Zm9ybUdldFZhbHVlRm9yVVJMKToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6
OnBsYXRmb3JtR2V0QXV0aGVudGljYXRpb25JbmZvKToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdp
blZpZXc6OnBsYXRmb3JtU2V0VmFsdWVGb3JVUkwpOgorICAgICAgICAqIHBsdWdpbnMvc3ltYmlh
bi9QbHVnaW5WaWV3U3ltYmlhbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3Ojpw
bGF0Zm9ybUdldFZhbHVlRm9yVVJMKToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OnBs
YXRmb3JtU2V0VmFsdWVGb3JVUkwpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6cGxh
dGZvcm1HZXRBdXRoZW50aWNhdGlvbkluZm8pOgorICAgICAgICAqIHBsdWdpbnMvd2luL1BsdWdp
blZpZXdXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6cGxhdGZvcm1HZXRW
YWx1ZUZvclVSTCk6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpwbGF0Zm9ybVNldFZh
bHVlRm9yVVJMKToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OnBsYXRmb3JtR2V0QXV0
aGVudGljYXRpb25JbmZvKToKKwogMjAxMC0wOS0wMiAgQW50b24gTXVoaW4gIDxhbnRvbm1AY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFRvbnkgQ2hhbmcuCmRpZmYgLS1naXQg
YS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luRGVidWcuY3BwIGIvV2ViQ29yZS9wbHVnaW5zL1BsdWdp
bkRlYnVnLmNwcAppbmRleCBhY2U4YjIxLi44YzNlZmNiIDEwMDY0NAotLS0gYS9XZWJDb3JlL3Bs
dWdpbnMvUGx1Z2luRGVidWcuY3BwCisrKyBiL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5EZWJ1Zy5j
cHAKQEAgLTE2Myw2ICsxNjMsMTQgQEAgQ1N0cmluZyBwcmV0dHlOYW1lRm9yTlBQVmFyaWFibGUo
TlBQVmFyaWFibGUgdmFyaWFibGUsIHZvaWQqIHZhbHVlKQogICAgIH0KIH0KIAorQ1N0cmluZyBw
cmV0dHlOYW1lRm9yTlBOVVJMVmFyaWFibGUoTlBOVVJMVmFyaWFibGUgdmFyaWFibGUpCit7Cisg
ICAgc3dpdGNoICh2YXJpYWJsZSkgeworICAgIGNhc2UgTlBOVVJMVkNvb2tpZTogcmV0dXJuICJO
UE5VUkxWQ29va2llIjsKKyAgICBjYXNlIE5QTlVSTFZQcm94eTogcmV0dXJuICJOUE5VUkxWUHJv
eHkiOworICAgIGRlZmF1bHQ6IHJldHVybiAiVW5rbm93biB2YXJpYWJsZSI7CisgICAgfQorfQog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gIUxPR19ESVNBQkxFRApkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9wbHVnaW5zL1BsdWdpbkRlYnVnLmggYi9XZWJDb3JlL3BsdWdpbnMvUGx1
Z2luRGVidWcuaAppbmRleCAyNTQ4NjRmLi4wMTdlNjg2IDEwMDY0NAotLS0gYS9XZWJDb3JlL3Bs
dWdpbnMvUGx1Z2luRGVidWcuaAorKysgYi9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luRGVidWcuaApA
QCAtNDEsNiArNDEsNyBAQCBjb25zdCBjaGFyKiBwcmV0dHlOYW1lRm9yTlBFcnJvcihOUEVycm9y
IGVycm9yKTsKIAogQ1N0cmluZyBwcmV0dHlOYW1lRm9yTlBOVmFyaWFibGUoTlBOVmFyaWFibGUg
dmFyaWFibGUpOwogQ1N0cmluZyBwcmV0dHlOYW1lRm9yTlBQVmFyaWFibGUoTlBQVmFyaWFibGUg
dmFyaWFibGUsIHZvaWQqIHZhbHVlKTsKK0NTdHJpbmcgcHJldHR5TmFtZUZvck5QTlVSTFZhcmlh
YmxlKE5QTlVSTFZhcmlhYmxlIHZhcmlhYmxlKTsKIAogI2lmZGVmIFhQX01BQ09TWAogY29uc3Qg
Y2hhciogcHJldHR5TmFtZUZvckRyYXdpbmdNb2RlbChOUERyYXdpbmdNb2RlbCBkcmF3aW5nTW9k
ZWwpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblBhY2thZ2UuY3BwIGIvV2Vi
Q29yZS9wbHVnaW5zL1BsdWdpblBhY2thZ2UuY3BwCmluZGV4IDVmMzU4YjEuLjU1NTEwMWYgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5QYWNrYWdlLmNwcAorKysgYi9XZWJDb3Jl
L3BsdWdpbnMvUGx1Z2luUGFja2FnZS5jcHAKQEAgLTMyMSw2ICszMjEsOSBAQCB2b2lkIFBsdWdp
blBhY2thZ2U6OmluaXRpYWxpemVCcm93c2VyRnVuY3MoKQogICAgIG1fYnJvd3NlckZ1bmNzLnNl
dGV4Y2VwdGlvbiA9IF9OUE5fU2V0RXhjZXB0aW9uOwogICAgIG1fYnJvd3NlckZ1bmNzLmVudW1l
cmF0ZSA9IF9OUE5fRW51bWVyYXRlOwogICAgIG1fYnJvd3NlckZ1bmNzLmNvbnN0cnVjdCA9IF9O
UE5fQ29uc3RydWN0OworICAgIG1fYnJvd3NlckZ1bmNzLmdldHZhbHVlZm9ydXJsID0gTlBOX0dl
dFZhbHVlRm9yVVJMOworICAgIG1fYnJvd3NlckZ1bmNzLnNldHZhbHVlZm9ydXJsID0gTlBOX1Nl
dFZhbHVlRm9yVVJMOworICAgIG1fYnJvd3NlckZ1bmNzLmdldGF1dGhlbnRpY2F0aW9uaW5mbyA9
IE5QTl9HZXRBdXRoZW50aWNhdGlvbkluZm87CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9wbHVnaW5zL1BsdWdpblZpZXcuY3BwIGIvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcu
Y3BwCmluZGV4IGJlZThkY2QuLjhiYjRhMjggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGx1Z2lucy9Q
bHVnaW5WaWV3LmNwcAorKysgYi9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5jcHAKQEAgLTMw
LDYgKzMwLDcgQEAKIAogI2luY2x1ZGUgIkJyaWRnZS5oIgogI2luY2x1ZGUgIkNocm9tZS5oIgor
I2luY2x1ZGUgIkNvb2tpZUphci5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAi
RG9jdW1lbnRMb2FkZXIuaCIKICNpbmNsdWRlICJFbGVtZW50LmgiCkBAIC0xMzc3LDYgKzEzNzgs
ODggQEAgTlBFcnJvciBQbHVnaW5WaWV3OjpnZXRWYWx1ZShOUE5WYXJpYWJsZSB2YXJpYWJsZSwg
dm9pZCogdmFsdWUpCiAgICAgICAgIHJldHVybiBOUEVSUl9HRU5FUklDX0VSUk9SOwogICAgIH0K
IH0KKworTlBFcnJvciBQbHVnaW5WaWV3OjpnZXRWYWx1ZUZvclVSTChOUE5VUkxWYXJpYWJsZSB2
YXJpYWJsZSwgY29uc3QgY2hhciogdXJsLCBjaGFyKiogdmFsdWUsIHVpbnQzMl90KiBsZW4pCit7
CisgICAgTE9HKFBsdWdpbnMsICJQbHVnaW5WaWV3OjpnZXRWYWx1ZUZvclVSTCglcykiLCBwcmV0
dHlOYW1lRm9yTlBOVVJMVmFyaWFibGUodmFyaWFibGUpLmRhdGEoKSk7CisKKyAgICBOUEVycm9y
IHJlc3VsdCA9IE5QRVJSX05PX0VSUk9SOworICAgIGlmIChwbGF0Zm9ybUdldFZhbHVlRm9yVVJM
KHZhcmlhYmxlLCB1cmwsIHZhbHVlLCBsZW4sICZyZXN1bHQpKQorICAgICAgICByZXR1cm4gcmVz
dWx0OworCisgICAgc3dpdGNoICh2YXJpYWJsZSkgeworICAgIGNhc2UgTlBOVVJMVkNvb2tpZTog
eworICAgICAgICBLVVJMIHUobV9iYXNlVVJMLCB1cmwpOworICAgICAgICBpZiAodS5pc1ZhbGlk
KCkpIHsKKyAgICAgICAgICAgIGNvbnN0IENTdHJpbmcgY29va2llU3RyID0gY29va2llcyhtX3Bh
cmVudEZyYW1lLT5kb2N1bWVudCgpLCB1KS51dGY4KCk7CisgICAgICAgICAgICBpZiAoIWNvb2tp
ZVN0ci5pc051bGwoKSkgeworICAgICAgICAgICAgICAgICp2YWx1ZSA9IHN0YXRpY19jYXN0PGNo
YXIqPihOUE5fTWVtQWxsb2MoY29va2llU3RyLmxlbmd0aCgpKSk7CisgICAgICAgICAgICAgICAg
aWYgKCp2YWx1ZSkgeworICAgICAgICAgICAgICAgICAgICBzdHJuY3B5KCp2YWx1ZSwgY29va2ll
U3RyLmRhdGEoKSwgY29va2llU3RyLmxlbmd0aCgpKTsKKyAgICAgICAgICAgICAgICAgICAgaWYg
KGxlbikKKyAgICAgICAgICAgICAgICAgICAgICAgICpsZW4gPSBjb29raWVTdHIubGVuZ3RoKCk7
CisgICAgICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IE5Q
RVJSX09VVF9PRl9NRU1PUllfRVJST1I7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZQor
ICAgICAgICAgICAgcmVzdWx0ID0gTlBFUlJfSU5WQUxJRF9VUkw7CisgICAgICAgIGJyZWFrOwor
ICAgIH0KKyAgICBjYXNlIE5QTlVSTFZQcm94eToKKyAgICAgICAgcmVzdWx0ID0gTlBFUlJfR0VO
RVJJQ19FUlJPUjsKKyAgICAgICAgTE9HKFBsdWdpbnMsICJQbHVnaW5WaWV3OjpnZXRWYWx1ZUZv
clVSTCglcyk6IE5lZWQgdG8gaW1wbGVtZW50IFBsdWdpblZpZXc6OnBsYXRmb3JtR2V0VmFsdWVG
b3JVUkwhIiwgcHJldHR5TmFtZUZvck5QTlVSTFZhcmlhYmxlKHZhcmlhYmxlKS5kYXRhKCkpOwor
ICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXN1bHQgPSBOUEVSUl9HRU5F
UklDX0VSUk9SOworICAgICAgICBMT0coUGx1Z2lucywgIlBsdWdpblZpZXc6OmdldFZhbHVlRm9y
VVJMOiAlcyIsIHByZXR0eU5hbWVGb3JOUE5VUkxWYXJpYWJsZSh2YXJpYWJsZSkuZGF0YSgpKTsK
KyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworCitOUEVy
cm9yIFBsdWdpblZpZXc6OnNldFZhbHVlRm9yVVJMKE5QTlVSTFZhcmlhYmxlIHZhcmlhYmxlLCBj
b25zdCBjaGFyKiB1cmwsIGNvbnN0IGNoYXIqIHZhbHVlLCB1aW50MzJfdCBsZW4pCit7CisgICAg
TE9HKFBsdWdpbnMsICJQbHVnaW5WaWV3OjpzZXRWYWx1ZUZvclVSTCglcykiLCBwcmV0dHlOYW1l
Rm9yTlBOVVJMVmFyaWFibGUodmFyaWFibGUpLmRhdGEoKSk7CisKKyAgICBOUEVycm9yIHJlc3Vs
dCA9IE5QRVJSX0dFTkVSSUNfRVJST1I7CisgICAgaWYgKHBsYXRmb3JtU2V0VmFsdWVGb3JVUkwo
dmFyaWFibGUsIHVybCwgdmFsdWUsIGxlbiwgJnJlc3VsdCkpCisgICAgICAgIHJldHVybiByZXN1
bHQ7CisKKyAgICBzd2l0Y2ggKHZhcmlhYmxlKSB7CisgICAgY2FzZSBOUE5VUkxWQ29va2llOiB7
CisgICAgICAgIEtVUkwgdShtX2Jhc2VVUkwsIHVybCk7CisgICAgICAgIGlmICh1LmlzVmFsaWQo
KSkgeworICAgICAgICAgICAgU3RyaW5nIGNvb2tpZVN0ciA9IFN0cmluZzo6ZnJvbVVURjgodmFs
dWUsIGxlbik7CisgICAgICAgICAgICBpZiAoIWNvb2tpZVN0ci5pc0VtcHR5KCkpCisgICAgICAg
ICAgICAgICAgc2V0Q29va2llcyhtX3BhcmVudEZyYW1lLT5kb2N1bWVudCgpLCB1LCBjb29raWVT
dHIpOworICAgICAgICAgICAgcmVzdWx0ID0gTlBFUlJfTk9fRVJST1I7CisgICAgICAgIH0gZWxz
ZQorICAgICAgICAgICAgcmVzdWx0ID0gTlBFUlJfSU5WQUxJRF9VUkw7CisgICAgICAgIGJyZWFr
OworICAgIH0KKyAgICBjYXNlIE5QTlVSTFZQcm94eToKKyAgICAgICAgTE9HKFBsdWdpbnMsICJQ
bHVnaW5WaWV3OjpzZXRWYWx1ZUZvclVSTCglcyk6IFBsdWdpbnMgYXJlIE5PVCBhbGxvd2VkIHRv
IHNldCBwcm94eSBpbmZvcm1hdGlvbi4iLCBwcmV0dHlOYW1lRm9yTlBOVVJMVmFyaWFibGUodmFy
aWFibGUpLmRhdGEoKSk7CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIExP
RyhQbHVnaW5zLCAiUGx1Z2luVmlldzo6c2V0VmFsdWVGb3JVUkw6ICVzIiwgcHJldHR5TmFtZUZv
ck5QTlVSTFZhcmlhYmxlKHZhcmlhYmxlKS5kYXRhKCkpOworICAgICAgICBicmVhazsKKyAgICB9
CisKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitOUEVycm9yIFBsdWdpblZpZXc6OmdldEF1dGhl
bnRpY2F0aW9uSW5mbyhjb25zdCBjaGFyKiBwcm90b2NvbCwgY29uc3QgY2hhciogaG9zdCwgaW50
MzJfdCBwb3J0LCBjb25zdCBjaGFyKiBzY2hlbWUsIGNvbnN0IGNoYXIqIHJlYWxtLCBjaGFyKiog
dXNlcm5hbWUsIHVpbnQzMl90KiB1bGVuLCBjaGFyKiogcGFzc3dvcmQsIHVpbnQzMl90KiBwbGVu
KQoreworICAgIExPRyhQbHVnaW5zLCAiUGx1Z2luVmlldzo6Z2V0QXV0aGVudGljYXRpb25JbmZv
OiBwcm90b2NvbD0lcywgaG9zdD0lcywgcG9ydD0lZCIsIHByb3RvY29sLCBob3N0LCBwb3J0KTsK
KworICAgIE5QRXJyb3IgcmVzdWx0ID0gTlBFUlJfR0VORVJJQ19FUlJPUjsKKyAgICBpZiAocGxh
dGZvcm1HZXRBdXRoZW50aWNhdGlvbkluZm8ocHJvdG9jb2wsIGhvc3QsIHBvcnQsIHNjaGVtZSwg
cmVhbG0sIHVzZXJuYW1lLCB1bGVuLCBwYXNzd29yZCwgcGxlbiwgJnJlc3VsdCkpCisgICAgICAg
IHJldHVybiByZXN1bHQ7CisKKyAgICByZXR1cm4gTlBFUlJfR0VORVJJQ19FUlJPUjsKK30KICNl
bmRpZgogCiB2b2lkIFBsdWdpblZpZXc6OnByaXZhdGVCcm93c2luZ1N0YXRlQ2hhbmdlZChib29s
IHByaXZhdGVCcm93c2luZ0VuYWJsZWQpCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvUGx1
Z2luVmlldy5oIGIvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcuaAppbmRleCBhMWU3NTI0Li4w
YjA4OTk5IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5oCisrKyBiL1dl
YkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmgKQEAgLTE2NSw2ICsxNjUsOSBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgICAgIE5QRXJyb3IgZ2V0VmFsdWUoTlBOVmFyaWFibGUgdmFyaWFibGUs
IHZvaWQqIHZhbHVlKTsKICAgICAgICAgc3RhdGljIE5QRXJyb3IgZ2V0VmFsdWVTdGF0aWMoTlBO
VmFyaWFibGUgdmFyaWFibGUsIHZvaWQqIHZhbHVlKTsKICAgICAgICAgTlBFcnJvciBzZXRWYWx1
ZShOUFBWYXJpYWJsZSB2YXJpYWJsZSwgdm9pZCogdmFsdWUpOworICAgICAgICBOUEVycm9yIGdl
dFZhbHVlRm9yVVJMKE5QTlVSTFZhcmlhYmxlIHZhcmlhYmxlLCBjb25zdCBjaGFyKiB1cmwsIGNo
YXIqKiB2YWx1ZSwgdWludDMyX3QqIGxlbik7CisgICAgICAgIE5QRXJyb3Igc2V0VmFsdWVGb3JV
UkwoTlBOVVJMVmFyaWFibGUgdmFyaWFibGUsIGNvbnN0IGNoYXIqIHVybCwgY29uc3QgY2hhciog
dmFsdWUsIHVpbnQzMl90IGxlbik7CisgICAgICAgIE5QRXJyb3IgZ2V0QXV0aGVudGljYXRpb25J
bmZvKGNvbnN0IGNoYXIqIHByb3RvY29sLCBjb25zdCBjaGFyKiBob3N0LCBpbnQzMl90IHBvcnQs
IGNvbnN0IGNoYXIqIHNjaGVtZSwgY29uc3QgY2hhciogcmVhbG0sIGNoYXIqKiB1c2VybmFtZSwg
dWludDMyX3QqIHVsZW4sIGNoYXIqKiBwYXNzd29yZCwgdWludDMyX3QqIHBsZW4pOwogICAgICAg
ICB2b2lkIGludmFsaWRhdGVSZWN0KE5QUmVjdCopOwogICAgICAgICB2b2lkIGludmFsaWRhdGVS
ZWdpb24oTlBSZWdpb24pOwogI2VuZGlmCkBAIC0yNzIsNiArMjc1LDkgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQogICAgICAgICBzdGF0aWMg
Ym9vbCBwbGF0Zm9ybUdldFZhbHVlU3RhdGljKE5QTlZhcmlhYmxlIHZhcmlhYmxlLCB2b2lkKiB2
YWx1ZSwgTlBFcnJvciogcmVzdWx0KTsKICAgICAgICAgYm9vbCBwbGF0Zm9ybUdldFZhbHVlKE5Q
TlZhcmlhYmxlIHZhcmlhYmxlLCB2b2lkKiB2YWx1ZSwgTlBFcnJvciogcmVzdWx0KTsKKyAgICAg
ICAgYm9vbCBwbGF0Zm9ybUdldFZhbHVlRm9yVVJMKE5QTlVSTFZhcmlhYmxlIHZhcmlhYmxlLCBj
b25zdCBjaGFyKiB1cmwsIGNoYXIqKiB2YWx1ZSwgdWludDMyX3QqIGxlbiwgTlBFcnJvciogcmVz
dWx0KTsKKyAgICAgICAgYm9vbCBwbGF0Zm9ybVNldFZhbHVlRm9yVVJMKE5QTlVSTFZhcmlhYmxl
IHZhcmlhYmxlLCBjb25zdCBjaGFyKiB1cmwsIGNvbnN0IGNoYXIqIHZhbHVlLCB1aW50MzJfdCBs
ZW4sIE5QRXJyb3IqIHJlc3VsdCk7CisgICAgICAgIGJvb2wgcGxhdGZvcm1HZXRBdXRoZW50aWNh
dGlvbkluZm8oY29uc3QgY2hhciogcHJvdG9jb2wsIGNvbnN0IGNoYXIqIGhvc3QsIGludDMyX3Qg
cG9ydCwgY29uc3QgY2hhciogc2NoZW1lLCBjb25zdCBjaGFyKiByZWFsbSwgY2hhcioqIHVzZXJu
YW1lLCB1aW50MzJfdCogdWxlbiwgY2hhcioqIHBhc3N3b3JkLCB1aW50MzJfdCogcGxlbiwgTlBF
cnJvciogcmVzdWx0KTsKICNlbmRpZgogCiAgICAgICAgIFJlZlB0cjxGcmFtZT4gbV9wYXJlbnRG
cmFtZTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGx1Z2lucy9ndGsvUGx1Z2luVmlld0d0ay5jcHAg
Yi9XZWJDb3JlL3BsdWdpbnMvZ3RrL1BsdWdpblZpZXdHdGsuY3BwCmluZGV4IGFiNDNiZjQuLjBh
YmZhZDggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGx1Z2lucy9ndGsvUGx1Z2luVmlld0d0ay5jcHAK
KysrIGIvV2ViQ29yZS9wbHVnaW5zL2d0ay9QbHVnaW5WaWV3R3RrLmNwcApAQCAtNjY5LDYgKzY2
OSwyMiBAQCBib29sIFBsdWdpblZpZXc6OnBsYXRmb3JtR2V0VmFsdWUoTlBOVmFyaWFibGUgdmFy
aWFibGUsIHZvaWQqIHZhbHVlLCBOUEVycm9yKiByZQogICAgIH0KIH0KIAorYm9vbCBQbHVnaW5W
aWV3OjpwbGF0Zm9ybUdldFZhbHVlRm9yVVJMKE5QTlVSTFZhcmlhYmxlIHZhcmlhYmxlLCBjb25z
dCBjaGFyKiB1cmwsIGNoYXIqKiB2YWx1ZSwgdWludDMyX3QqIGxlbiwgTlBFcnJvciogcmVzdWx0
KQoreworICAgIC8vIE5PVEU6IE5QTlVSTFZQcm94eSByZXF1aXJlcyBwbGF0Zm9ybSBzcGVjaWZp
YyBpbXBsZW1lbnRhdGlvbiA7IGJ5IGRlZmF1bHQsIE5QX0dFTkVSSUNfRVJSIGlzIHJldHVybmVk
Li4uCisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIFBsdWdpblZpZXc6OnBsYXRmb3JtU2V0
VmFsdWVGb3JVUkwoTlBOVVJMVmFyaWFibGUgdmFyaWFibGUsIGNvbnN0IGNoYXIqIHVybCwgY29u
c3QgY2hhciogdmFsdWUsIHVpbnQzMl90IGxlbiwgTlBFcnJvciogcmVzdWx0KQoreworICAgIHJl
dHVybiBmYWxzZTsKK30KKworYm9vbCBQbHVnaW5WaWV3OjpwbGF0Zm9ybUdldEF1dGhlbnRpY2F0
aW9uSW5mbyhjb25zdCBjaGFyKiBwcm90b2NvbCwgY29uc3QgY2hhciogaG9zdCwgaW50MzJfdCBw
b3J0LCBjb25zdCBjaGFyKiBzY2hlbWUsIGNvbnN0IGNoYXIqIHJlYWxtLCBjaGFyKiogdXNlcm5h
bWUsIHVpbnQzMl90KiB1bGVuLCBjaGFyKiogcGFzc3dvcmQsIHVpbnQzMl90KiBwbGVuLCBOUEVy
cm9yKiByZXN1bHQpCit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCiB2b2lkIFBsdWdpblZpZXc6
OmludmFsaWRhdGVSZWN0KGNvbnN0IEludFJlY3QmIHJlY3QpCiB7CiAgICAgaWYgKG1faXNXaW5k
b3dlZCkgewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbHVnaW5zL21hYy9QbHVnaW5WaWV3TWFjLm1t
IGIvV2ViQ29yZS9wbHVnaW5zL21hYy9QbHVnaW5WaWV3TWFjLm1tCmluZGV4IGUwYWQxMzUuLjUx
MjlhYzIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGx1Z2lucy9tYWMvUGx1Z2luVmlld01hYy5tbQor
KysgYi9XZWJDb3JlL3BsdWdpbnMvbWFjL1BsdWdpblZpZXdNYWMubW0KQEAgLTMwOCw2ICszMDgs
MjIgQEAgYm9vbCBQbHVnaW5WaWV3OjpwbGF0Zm9ybUdldFZhbHVlKE5QTlZhcmlhYmxlIHZhcmlh
YmxlLCB2b2lkKiB2YWx1ZSwgTlBFcnJvciogZXIKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK2Jv
b2wgUGx1Z2luVmlldzo6cGxhdGZvcm1HZXRWYWx1ZUZvclVSTChOUE5VUkxWYXJpYWJsZSB2YXJp
YWJsZSwgY29uc3QgY2hhciogdXJsLCBjaGFyKiogdmFsdWUsIHVpbnQzMl90KiBsZW4sIE5QRXJy
b3IqIHJlc3VsdCkKK3sKKyAgICAvLyBOT1RFOiBOUE5VUkxWUHJveHkgcmVxdWlyZXMgcGxhdGZv
cm0gc3BlY2lmaWMgaW1wbGVtZW50YXRpb24gOyBieSBkZWZhdWx0LCBOUF9HRU5FUklDX0VSUiBp
cyByZXR1cm5lZC4uLgorICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBQbHVnaW5WaWV3Ojpw
bGF0Zm9ybVNldFZhbHVlRm9yVVJMKE5QTlVSTFZhcmlhYmxlIHZhcmlhYmxlLCBjb25zdCBjaGFy
KiB1cmwsIGNvbnN0IGNoYXIqIHZhbHVlLCB1aW50MzJfdCBsZW4sIE5QRXJyb3IqIHJlc3VsdCkK
K3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgUGx1Z2luVmlldzo6cGxhdGZvcm1HZXRB
dXRoZW50aWNhdGlvbkluZm8oY29uc3QgY2hhciogcHJvdG9jb2wsIGNvbnN0IGNoYXIqIGhvc3Qs
IGludDMyX3QgcG9ydCwgY29uc3QgY2hhciogc2NoZW1lLCBjb25zdCBjaGFyKiByZWFsbSwgY2hh
cioqIHVzZXJuYW1lLCB1aW50MzJfdCogdWxlbiwgY2hhcioqIHBhc3N3b3JkLCB1aW50MzJfdCog
cGxlbiwgTlBFcnJvciogcmVzdWx0KQoreworICAgIHJldHVybiBmYWxzZTsKK30KKwogdm9pZCBQ
bHVnaW5WaWV3OjpzZXRQYXJlbnQoU2Nyb2xsVmlldyogcGFyZW50KQogewogICAgIExPRyhQbHVn
aW5zLCAiUGx1Z2luVmlldzo6c2V0UGFyZW50KCVwKSIsIHBhcmVudCk7CmRpZmYgLS1naXQgYS9X
ZWJDb3JlL3BsdWdpbnMvbnBhcGkuY3BwIGIvV2ViQ29yZS9wbHVnaW5zL25wYXBpLmNwcAppbmRl
eCBkMGRiODQ1Li5iMjcyMWZiIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsdWdpbnMvbnBhcGkuY3Bw
CisrKyBiL1dlYkNvcmUvcGx1Z2lucy9ucGFwaS5jcHAKQEAgLTE3NSwzICsxNzUsMTggQEAgdm9p
ZCBOUE5fUGx1Z2luVGhyZWFkQXN5bmNDYWxsKE5QUCBpbnN0YW5jZSwgdm9pZCAoKmZ1bmMpICh2
b2lkICopLCB2b2lkICp1c2VyRGEKIHsKICAgICBQbHVnaW5NYWluVGhyZWFkU2NoZWR1bGVyOjpz
Y2hlZHVsZXIoKS5zY2hlZHVsZUNhbGwoaW5zdGFuY2UsIGZ1bmMsIHVzZXJEYXRhKTsKIH0KKwor
TlBFcnJvciBOUE5fR2V0VmFsdWVGb3JVUkwoTlBQIGluc3RhbmNlLCBOUE5VUkxWYXJpYWJsZSB2
YXJpYWJsZSwgY29uc3QgY2hhciogdXJsLCBjaGFyKiogdmFsdWUsIHVpbnQzMl90KiBsZW4pCit7
CisgICAgcmV0dXJuIHBsdWdpblZpZXdGb3JJbnN0YW5jZShpbnN0YW5jZSktPmdldFZhbHVlRm9y
VVJMKHZhcmlhYmxlLCB1cmwsIHZhbHVlLCBsZW4pOworfQorCitOUEVycm9yIE5QTl9TZXRWYWx1
ZUZvclVSTChOUFAgaW5zdGFuY2UsIE5QTlVSTFZhcmlhYmxlIHZhcmlhYmxlLCBjb25zdCBjaGFy
KiB1cmwsIGNvbnN0IGNoYXIqIHZhbHVlLCB1aW50MzJfdCBsZW4pCit7CisgICAgcmV0dXJuIHBs
dWdpblZpZXdGb3JJbnN0YW5jZShpbnN0YW5jZSktPnNldFZhbHVlRm9yVVJMKHZhcmlhYmxlLCB1
cmwsIHZhbHVlLCBsZW4pOworfQorCitOUEVycm9yIE5QTl9HZXRBdXRoZW50aWNhdGlvbkluZm8o
TlBQIGluc3RhbmNlLCBjb25zdCBjaGFyKiBwcm90b2NvbCwgY29uc3QgY2hhciogaG9zdCwgaW50
MzJfdCBwb3J0LCBjb25zdCBjaGFyKiBzY2hlbWUsIGNvbnN0IGNoYXIqIHJlYWxtLCBjaGFyKiog
dXNlcm5hbWUsIHVpbnQzMl90KiB1bGVuLCBjaGFyKiogcGFzc3dvcmQsIHVpbnQzMl90KiBwbGVu
KQoreworICAgIHJldHVybiBwbHVnaW5WaWV3Rm9ySW5zdGFuY2UoaW5zdGFuY2UpLT5nZXRBdXRo
ZW50aWNhdGlvbkluZm8ocHJvdG9jb2wsIGhvc3QsIHBvcnQsIHNjaGVtZSwgcmVhbG0sIHVzZXJu
YW1lLCB1bGVuLCBwYXNzd29yZCwgcGxlbik7Cit9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdp
bnMvcXQvUGx1Z2luVmlld1F0LmNwcCBiL1dlYkNvcmUvcGx1Z2lucy9xdC9QbHVnaW5WaWV3UXQu
Y3BwCmluZGV4IGY2MDg4NWQuLjAwZWU5NjAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGx1Z2lucy9x
dC9QbHVnaW5WaWV3UXQuY3BwCisrKyBiL1dlYkNvcmUvcGx1Z2lucy9xdC9QbHVnaW5WaWV3UXQu
Y3BwCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFt
ZUxvYWRSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKKyNpbmNsdWRlICJGcmFt
ZUxvYWRlckNsaWVudFF0LmgiCiAjaW5jbHVkZSAiRnJhbWVUcmVlLmgiCiAjaW5jbHVkZSAiRnJh
bWVWaWV3LmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCkBAIC02Niw2ICs2Nyw4IEBA
CiAjaW5jbHVkZSA8UUFwcGxpY2F0aW9uPgogI2luY2x1ZGUgPFFEZXNrdG9wV2lkZ2V0PgogI2lu
Y2x1ZGUgPFFLZXlFdmVudD4KKyNpbmNsdWRlIDxRTmV0b3dya0FjY2Vzc01hbmFnZXI+CisjaW5j
bHVkZSA8UU5ldHdvcmtQcm94eT4KICNpbmNsdWRlIDxRUGFpbnRlcj4KICNpbmNsdWRlIDxRV2lk
Z2V0PgogI2luY2x1ZGUgPFFYMTFJbmZvPgpAQCAtNzQxLDYgKzc0NCw4MiBAQCBib29sIFBsdWdp
blZpZXc6OnBsYXRmb3JtR2V0VmFsdWUoTlBOVmFyaWFibGUgdmFyaWFibGUsIHZvaWQqIHZhbHVl
LCBOUEVycm9yKiByZQogICAgIH0KIH0KIAorc3RhdGljIHZvaWQgYXBwZW5kUHJveHlEYXRhKGNv
bnN0IFFOZXR3b3JrUHJveHkmIHByb3h5LCBRU3RyaW5nJiBwcm94eVN0cikKK3sKKyAgICBwcm94
eVN0ciArPSBwcm94eS5ob3N0TmFtZSgpOworCisgICAgaWYgKHByb3h5LnBvcnQoKSA+IDApIHsK
KyAgICAgICAgcHJveHlTdHIgKz0gUUxhdGluMUNoYXIoJzonKTsKKyAgICAgICAgcHJveHlTdHIg
Kz0gUVN0cmluZzo6bnVtYmVyKHByb3h5LnBvcnQoKSk7CisgICAgfQorfQorCitib29sIFBsdWdp
blZpZXc6OnBsYXRmb3JtR2V0VmFsdWVGb3JVUkwoTlBOVVJMVmFyaWFibGUgdmFyaWFibGUsIGNv
bnN0IGNoYXIqIHVybCwgY2hhcioqIHZhbHVlLCB1aW50MzJfdCogbGVuLCBOUEVycm9yKiByZXN1
bHQpCit7CisgICAgaWYgKHZhcmlhYmxlID09IE5QTlVSTFZQcm94eSkgeworICAgICAgICBGcmFt
ZSogZnJhbWUgPSBwYXJlbnRGcmFtZSgpOworICAgICAgICBpZiAoIWZyYW1lKSB7CisgICAgICAg
ICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBtX2VsZW1lbnQtPmRvY3VtZW50KCk7CisgICAgICAg
ICAgICBpZiAoIWRvY3VtZW50KQorICAgICAgICAgICAgICAgIGRvY3VtZW50ID0gbV9lbGVtZW50
LT5vd25lckRvY3VtZW50KCk7CisgICAgICAgICAgICBmcmFtZSA9IGRvY3VtZW50ID8gZG9jdW1l
bnQtPmZyYW1lKCkgOiAwOworICAgICAgICB9CisKKyAgICAgICAgRnJhbWVMb2FkZXJDbGllbnRR
dCogZnJhbWVMb2FkZXIgPSBmcmFtZSA/IHN0YXRpY19jYXN0PEZyYW1lTG9hZGVyQ2xpZW50UXQq
PihmcmFtZS0+bG9hZGVyKCktPmNsaWVudCgpKSA6IDA7CisgICAgICAgIFFOZXR3b3JrQWNjZXNz
TWFuYWdlciogbWFuYWdlciA9IGZyYW1lTG9hZGVyID8gZnJhbWVMb2FkZXItPndlYkZyYW1lKCkt
PnBhZ2UoKS0+bmV0d29ya0FjY2Vzc01hbmFnZXIoKSA6IDA7CisKKyAgICAgICAgaWYgKG1hbmFn
ZXIpIHsKKyAgICAgICAgICAgIFFTdHJpbmcgcHJveHlTdHI7CisgICAgICAgICAgICBRTmV0d29y
a1Byb3h5IHByb3h5ID0gbWFuYWdlci0+cHJveHkoKTsKKworICAgICAgICAgICAgc3dpdGNoIChw
cm94eS50eXBlKCkpIHsKKyAgICAgICAgICAgIGNhc2UgUU5ldHdvcmtQcm94eTo6U29ja3M1UHJv
eHk6IHsKKyAgICAgICAgICAgICAgICBwcm94eVN0ciA9IFFMYXRpbjFTdHJpbmcoIlNPQ0tTICIp
OworICAgICAgICAgICAgICAgIGFwcGVuZFByb3h5RGF0YShwcm94eSwgcHJveHlTdHIpOworICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2FzZSBRTmV0
d29ya1Byb3h5OjpIdHRwUHJveHk6CisgICAgICAgICAgICBjYXNlIFFOZXR3b3JrUHJveHk6Okh0
dHBDYWNoaW5nUHJveHk6CisgICAgICAgICAgICBjYXNlIFFOZXR3b3JrUHJveHk6OkZ0cENhY2hp
bmdQcm94eTogeworICAgICAgICAgICAgICAgIHByb3h5U3RyID0gUUxhdGluMVN0cmluZygiUFJP
WFkgIik7CisgICAgICAgICAgICAgICAgYXBwZW5kUHJveHlEYXRhKHByb3h5LCBwcm94eVN0cik7
CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXNl
IFFOZXR3b3JrUHJveHk6OkRlZmF1bHRQcm94eToKKyAgICAgICAgICAgIGNhc2UgUU5ldHdvcmtQ
cm94eTo6Tm9Qcm94eToKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgcHJv
eHlTdHIgPSBRTGF0aW4xU3RyaW5nKCJESVJFQ1QiKTsKKyAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgY29uc3QgUUJ5dGVBcnJheSBwcm94eVN0clV0
ZjggPSBwcm94eVN0ci50b1V0ZjgoKTsKKyAgICAgICAgICAgICp2YWx1ZSA9IHN0YXRpY19jYXN0
PGNoYXIqPihOUE5fTWVtQWxsb2MocHJveHlTdHJVdGY4Lmxlbmd0aCgpKSk7CisgICAgICAgICAg
ICBpZiAoKnZhbHVlKSB7CisgICAgICAgICAgICAgICAgc3RybmNweSgqdmFsdWUsIHByb3h5U3Ry
VXRmOC5jb25zdERhdGEoKSwgcHJveHlTdHJVdGY4Lmxlbmd0aCgpKTsKKyAgICAgICAgICAgICAg
ICBpZiAobGVuKQorICAgICAgICAgICAgICAgICAgICAqbGVuID0gcHJveHlTdHJVdGY4Lmxlbmd0
aCgpOworICAgICAgICAgICAgICAgIGlmIChyZXN1bHQpCisgICAgICAgICAgICAgICAgICAgICpy
ZXN1bHQgPSBOUEVSUl9OT19FUlJPUjsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAg
ICAgICpyZXN1bHQgPSBOUEVSUl9PVVRfT0ZfTUVNT1JZX0VSUk9SOworCisgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiBmYWxzZTsKK30KKwor
Ym9vbCBQbHVnaW5WaWV3OjpwbGF0Zm9ybUdldEF1dGhlbnRpY2F0aW9uSW5mbyhjb25zdCBjaGFy
KiBwcm90b2NvbCwgY29uc3QgY2hhciogaG9zdCwgaW50MzJfdCBwb3J0LCBjb25zdCBjaGFyKiBz
Y2hlbWUsIGNvbnN0IGNoYXIqIHJlYWxtLCBjaGFyKiogdXNlcm5hbWUsIHVpbnQzMl90KiB1bGVu
LCBjaGFyKiogcGFzc3dvcmQsIHVpbnQzMl90KiBwbGVuLCBOUEVycm9yKiByZXN1bHQpCit7Cisg
ICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIFBsdWdpblZpZXc6OnBsYXRmb3JtU2V0VmFsdWVG
b3JVUkwoTlBOVVJMVmFyaWFibGUgdmFyaWFibGUsIGNvbnN0IGNoYXIqIHVybCwgY29uc3QgY2hh
ciogdmFsdWUsIHVpbnQzMl90IGxlbiwgTlBFcnJvciogcmVzdWx0KQoreworICAgIHJldHVybiBm
YWxzZTsKK30KKwogdm9pZCBQbHVnaW5WaWV3OjppbnZhbGlkYXRlUmVjdChjb25zdCBJbnRSZWN0
JiByZWN0KQogewogICAgIGlmIChtX2lzV2luZG93ZWQpIHsKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
cGx1Z2lucy9zeW1iaWFuL1BsdWdpblZpZXdTeW1iaWFuLmNwcCBiL1dlYkNvcmUvcGx1Z2lucy9z
eW1iaWFuL1BsdWdpblZpZXdTeW1iaWFuLmNwcAppbmRleCBiOWY4MmFkLi4wYzJmMmE5IDEwMDY0
NAotLS0gYS9XZWJDb3JlL3BsdWdpbnMvc3ltYmlhbi9QbHVnaW5WaWV3U3ltYmlhbi5jcHAKKysr
IGIvV2ViQ29yZS9wbHVnaW5zL3N5bWJpYW4vUGx1Z2luVmlld1N5bWJpYW4uY3BwCkBAIC0yNiw2
ICsyNiw3IEBACiAjaW5jbHVkZSAiRm9jdXNDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRnJhbWUu
aCIKICNpbmNsdWRlICJGcmFtZUxvYWRSZXF1ZXN0LmgiCisjaW5jbHVkZSAiRnJhbWVMb2FkZXJD
bGllbnRRdC5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWVUcmVl
LmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCkBAIC01Niw2ICs1Nyw4IEBACiAjaW5jbHVkZSAi
cnVudGltZV9yb290LmgiCiAjaW5jbHVkZSA8UUdyYXBoaWNzUHJveHlXaWRnZXQ+CiAjaW5jbHVk
ZSA8UUtleUV2ZW50PgorI2luY2x1ZGUgPFFOZXR3b3JrQWNjZXNzTWFuYWdlcj4KKyNpbmNsdWRl
IDxRTmV0d29ya1Byb3h5PgogI2luY2x1ZGUgPFFQaXhtYXA+CiAjaW5jbHVkZSA8UVJlZ2lvbj4K
ICNpbmNsdWRlIDxRVmVjdG9yPgpAQCAtMzM4LDYgKzM0MSw4MiBAQCBib29sIFBsdWdpblZpZXc6
OnBsYXRmb3JtR2V0VmFsdWUoTlBOVmFyaWFibGUsIHZvaWQqLCBOUEVycm9yKikKICAgICByZXR1
cm4gZmFsc2U7CiB9CiAKK3N0YXRpYyB2b2lkIGFwcGVuZFByb3h5RGF0YShjb25zdCBRTmV0d29y
a1Byb3h5JiBwcm94eSwgUVN0cmluZyYgcHJveHlTdHIpCit7CisgICAgcHJveHlTdHIgKz0gcHJv
eHkuaG9zdE5hbWUoKTsKKworICAgIGlmIChwcm94eS5wb3J0KCkgPiAwKSB7CisgICAgICAgIHBy
b3h5U3RyICs9IFFMYXRpbjFDaGFyKCc6Jyk7CisgICAgICAgIHByb3h5U3RyICs9IFFTdHJpbmc6
Om51bWJlcihwcm94eS5wb3J0KCkpOworICAgIH0KK30KKworYm9vbCBQbHVnaW5WaWV3OjpwbGF0
Zm9ybUdldFZhbHVlRm9yVVJMKE5QTlVSTFZhcmlhYmxlIHZhcmlhYmxlLCBjb25zdCBjaGFyKiB1
cmwsIGNoYXIqKiB2YWx1ZSwgdWludDMyX3QqIGxlbiwgTlBFcnJvciogcmVzdWx0KQoreworICAg
IGlmICh2YXJpYWJsZSA9PSBOUE5VUkxWUHJveHkpIHsKKyAgICAgICAgRnJhbWUqIGZyYW1lID0g
cGFyZW50RnJhbWUoKTsKKyAgICAgICAgaWYgKCFmcmFtZSkgeworICAgICAgICAgICAgRG9jdW1l
bnQqIGRvY3VtZW50ID0gbV9lbGVtZW50LT5kb2N1bWVudCgpOworICAgICAgICAgICAgaWYgKCFk
b2N1bWVudCkKKyAgICAgICAgICAgICAgICBkb2N1bWVudCA9IG1fZWxlbWVudC0+b3duZXJEb2N1
bWVudCgpOworICAgICAgICAgICAgZnJhbWUgPSBkb2N1bWVudCA/IGRvY3VtZW50LT5mcmFtZSgp
IDogMDsKKyAgICAgICAgfQorCisgICAgICAgIEZyYW1lTG9hZGVyQ2xpZW50UXQqIGZyYW1lTG9h
ZGVyID0gZnJhbWUgPyBzdGF0aWNfY2FzdDxGcmFtZUxvYWRlckNsaWVudFF0Kj4oZnJhbWUtPmxv
YWRlcigpLT5jbGllbnQoKSkgOiAwOworICAgICAgICBRTmV0d29ya0FjY2Vzc01hbmFnZXIqIG1h
bmFnZXIgPSBmcmFtZUxvYWRlciA/IGZyYW1lTG9hZGVyLT53ZWJGcmFtZSgpLT5wYWdlKCktPm5l
dHdvcmtBY2Nlc3NNYW5hZ2VyKCkgOiAwOworCisgICAgICAgIGlmIChtYW5hZ2VyKSB7CisgICAg
ICAgICAgICBRU3RyaW5nIHByb3h5U3RyOworICAgICAgICAgICAgUU5ldHdvcmtQcm94eSBwcm94
eSA9IG1hbmFnZXItPnByb3h5KCk7CisKKyAgICAgICAgICAgIHN3aXRjaCAocHJveHkudHlwZSgp
KSB7CisgICAgICAgICAgICBjYXNlIFFOZXR3b3JrUHJveHk6OlNvY2tzNVByb3h5OiB7CisgICAg
ICAgICAgICAgICAgcHJveHlTdHIgPSBRTGF0aW4xU3RyaW5nKCJTT0NLUyAiKTsKKyAgICAgICAg
ICAgICAgICBhcHBlbmRQcm94eURhdGEocHJveHksIHByb3h5U3RyKTsKKyAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhc2UgUU5ldHdvcmtQcm94eTo6
SHR0cFByb3h5OgorICAgICAgICAgICAgY2FzZSBRTmV0d29ya1Byb3h5OjpIdHRwQ2FjaGluZ1By
b3h5OgorICAgICAgICAgICAgY2FzZSBRTmV0d29ya1Byb3h5OjpGdHBDYWNoaW5nUHJveHk6IHsK
KyAgICAgICAgICAgICAgICBwcm94eVN0ciA9IFFMYXRpbjFTdHJpbmcoIlBST1hZICIpOworICAg
ICAgICAgICAgICAgIGFwcGVuZFByb3h5RGF0YShwcm94eSwgcHJveHlTdHIpOworICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2FzZSBRTmV0d29ya1By
b3h5OjpEZWZhdWx0UHJveHk6CisgICAgICAgICAgICBjYXNlIFFOZXR3b3JrUHJveHk6Ok5vUHJv
eHk6CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIHByb3h5U3RyID0gUUxh
dGluMVN0cmluZygiRElSRUNUIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICB9CisKKyAgICAgICAgICAgIGNvbnN0IFFCeXRlQXJyYXkgcHJveHlTdHJVdGY4ID0gcHJveHlT
dHIudG9VdGY4KCk7CisgICAgICAgICAgICAqdmFsdWUgPSBzdGF0aWNfY2FzdDxjaGFyKj4oTlBO
X01lbUFsbG9jKHByb3h5U3RyVXRmOC5sZW5ndGgoKSkpOworICAgICAgICAgICAgaWYgKCp2YWx1
ZSkgeworICAgICAgICAgICAgICAgIHN0cm5jcHkoKnZhbHVlLCBwcm94eVN0clV0ZjguY29uc3RE
YXRhKCksIHByb3h5U3RyVXRmOC5sZW5ndGgoKSk7CisgICAgICAgICAgICAgICAgaWYgKGxlbikK
KyAgICAgICAgICAgICAgICAgICAgKmxlbiA9IHByb3h5U3RyVXRmOC5sZW5ndGgoKTsKKyAgICAg
ICAgICAgICAgICBpZiAocmVzdWx0KQorICAgICAgICAgICAgICAgICAgICAqcmVzdWx0ID0gTlBF
UlJfTk9fRVJST1I7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICAqcmVzdWx0
ID0gTlBFUlJfT1VUX09GX01FTU9SWV9FUlJPUjsKKworICAgICAgICAgICAgcmV0dXJuIHRydWU7
CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgUGx1Z2lu
Vmlldzo6cGxhdGZvcm1TZXRWYWx1ZUZvclVSTChOUE5VUkxWYXJpYWJsZSB2YXJpYWJsZSwgY29u
c3QgY2hhciogdXJsLCBjb25zdCBjaGFyKiB2YWx1ZSwgdWludDMyX3QgbGVuLCBOUEVycm9yKiBy
ZXN1bHQpCit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIFBsdWdpblZpZXc6OnBsYXRm
b3JtR2V0QXV0aGVudGljYXRpb25JbmZvKGNvbnN0IGNoYXIqIHByb3RvY29sLCBjb25zdCBjaGFy
KiBob3N0LCBpbnQzMl90IHBvcnQsIGNvbnN0IGNoYXIqIHNjaGVtZSwgY29uc3QgY2hhciogcmVh
bG0sIGNoYXIqKiB1c2VybmFtZSwgdWludDMyX3QqIHVsZW4sIGNoYXIqKiBwYXNzd29yZCwgdWlu
dDMyX3QqIHBsZW4sIE5QRXJyb3IqIHJlc3VsdCkKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisK
IHZvaWQgUGx1Z2luVmlldzo6aW52YWxpZGF0ZVJlY3QoY29uc3QgSW50UmVjdCYgcmVjdCkKIHsK
ICAgICBpZiAobV9pc1dpbmRvd2VkKSB7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvd2lu
L1BsdWdpblZpZXdXaW4uY3BwIGIvV2ViQ29yZS9wbHVnaW5zL3dpbi9QbHVnaW5WaWV3V2luLmNw
cAppbmRleCA4ZGJiMDRiLi5iYmFjYjdmIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsdWdpbnMvd2lu
L1BsdWdpblZpZXdXaW4uY3BwCisrKyBiL1dlYkNvcmUvcGx1Z2lucy93aW4vUGx1Z2luVmlld1dp
bi5jcHAKQEAgLTg3MSw2ICs4NzEsMjIgQEAgYm9vbCBQbHVnaW5WaWV3OjpwbGF0Zm9ybUdldFZh
bHVlU3RhdGljKE5QTlZhcmlhYmxlLCB2b2lkKiwgTlBFcnJvciopCiAgICAgcmV0dXJuIGZhbHNl
OwogfQogCitib29sIFBsdWdpblZpZXc6OnBsYXRmb3JtR2V0VmFsdWVGb3JVUkwoTlBOVVJMVmFy
aWFibGUgdmFyaWFibGUsIGNvbnN0IGNoYXIqIHVybCwgY2hhcioqIHZhbHVlLCB1aW50MzJfdCog
bGVuLCBOUEVycm9yKiByZXN1bHQpCit7CisgICAgLy8gTk9URTogTlBOVVJMVlByb3h5IHJlcXVp
cmVzIHBsYXRmb3JtIHNwZWNpZmljIGltcGxlbWVudGF0aW9uIDsgYnkgZGVmYXVsdCwgTlBfR0VO
RVJJQ19FUlIgaXMgcmV0dXJuZWQuLi4KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgUGx1
Z2luVmlldzo6cGxhdGZvcm1TZXRWYWx1ZUZvclVSTChOUE5VUkxWYXJpYWJsZSB2YXJpYWJsZSwg
Y29uc3QgY2hhciogdXJsLCBjb25zdCBjaGFyKiB2YWx1ZSwgdWludDMyX3QgbGVuLCBOUEVycm9y
KiByZXN1bHQpCit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIFBsdWdpblZpZXc6OnBs
YXRmb3JtR2V0QXV0aGVudGljYXRpb25JbmZvKGNvbnN0IGNoYXIqIHByb3RvY29sLCBjb25zdCBj
aGFyKiBob3N0LCBpbnQzMl90IHBvcnQsIGNvbnN0IGNoYXIqIHNjaGVtZSwgY29uc3QgY2hhciog
cmVhbG0sIGNoYXIqKiB1c2VybmFtZSwgdWludDMyX3QqIHVsZW4sIGNoYXIqKiBwYXNzd29yZCwg
dWludDMyX3QqIHBsZW4sIE5QRXJyb3IqIHJlc3VsdCkKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9
CisKIGJvb2wgUGx1Z2luVmlldzo6cGxhdGZvcm1HZXRWYWx1ZShOUE5WYXJpYWJsZSB2YXJpYWJs
ZSwgdm9pZCogdmFsdWUsIE5QRXJyb3IqIHJlc3VsdCkKIHsKICAgICBzd2l0Y2ggKHZhcmlhYmxl
KSB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>66374</attachid>
            <date>2010-09-02 08:45:32 -0700</date>
            <delta_ts>2010-09-22 01:55:38 -0700</delta_ts>
            <desc>Implement NPN_GetValueForURL and NPN_SetValueForURL and NPN_GetAuthenticationInfo [Update X]...</desc>
            <filename>implement_npn_functions_necessary_for_java_applet_support.patch</filename>
            <type>text/plain</type>
            <size>20947</size>
            <attacher name="Dawit A.">adawit</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MzJhM2NlZi4uNmIxYjcwZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0OCBAQAorMjAxMC0wOS0wMiAgRGF3aXQgQWxlbWF5
ZWh1ICA8YWRhd2l0QGtkZS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkKKworICAgICAgICBJbXBsZW1lbnQgTlBOX0dldFZhbHVlRm9yVVJMIGFuZCBOUE5fU2V0VmFs
dWVGb3JVUkwgYW5kIE5QTl9HZXRBdXRoZW50aWNhdGlvbkluZm8uCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNDUzOQorCisgICAgICAgIFRoZXNlIG1p
c3NpbmcgTlBOIGZ1bmN0aW9ucyBjYXVzZSBKYXZhIGFwcGxldHMgdG8gY3Jhc2ggaW4gcG9ydHMg
c3VjaAorICAgICAgICBhcyBRdFdlYmtpdCB0aGF0IHJlbHkgb24gd2Via2l0IGZvciBKYXZhIGFw
cGxldCBzdXBwb3J0LgorCisgICAgICAgICogcGx1Z2lucy9QbHVnaW5EZWJ1Zy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpwcmV0dHlOYW1lRm9yTlBOVVJMVmFyaWFibGUpOgorICAgICAgICAqIHBs
dWdpbnMvUGx1Z2luRGVidWcuaDoKKyAgICAgICAgKiBwbHVnaW5zL1BsdWdpblBhY2thZ2UuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luUGFja2FnZTo6aW5pdGlhbGl6ZUJyb3dzZXJGdW5j
cyk6CisgICAgICAgICogcGx1Z2lucy9QbHVnaW5WaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlBsdWdpblZpZXc6OmdldFZhbHVlRm9yVVJMKToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZp
ZXc6OnNldFZhbHVlRm9yVVJMKToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OmdldEF1
dGhlbnRpY2F0aW9uSW5mbyk6CisgICAgICAgICogcGx1Z2lucy9QbHVnaW5WaWV3Lmg6CisgICAg
ICAgICogcGx1Z2lucy9ndGsvUGx1Z2luVmlld0d0ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQ
bHVnaW5WaWV3OjpwbGF0Zm9ybUdldFZhbHVlRm9yVVJMKToKKyAgICAgICAgKFdlYkNvcmU6OlBs
dWdpblZpZXc6OnBsYXRmb3JtU2V0VmFsdWVGb3JVUkwpOgorICAgICAgICAoV2ViQ29yZTo6UGx1
Z2luVmlldzo6cGxhdGZvcm1HZXRBdXRoZW50aWNhdGlvbkluZm8pOgorICAgICAgICAqIHBsdWdp
bnMvbWFjL1BsdWdpblZpZXdNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3Ojpw
bGF0Zm9ybUdldFZhbHVlRm9yVVJMKToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OnBs
YXRmb3JtU2V0VmFsdWVGb3JVUkwpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6cGxh
dGZvcm1HZXRBdXRoZW50aWNhdGlvbkluZm8pOgorICAgICAgICAqIHBsdWdpbnMvbnBhcGkuY3Bw
OgorICAgICAgICAoTlBOX0dldFZhbHVlRm9yVVJMKToKKyAgICAgICAgKE5QTl9TZXRWYWx1ZUZv
clVSTCk6CisgICAgICAgIChOUE5fR2V0QXV0aGVudGljYXRpb25JbmZvKToKKyAgICAgICAgKiBw
bHVnaW5zL3F0L1BsdWdpblZpZXdRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3
OjpwbGF0Zm9ybUdldFZhbHVlRm9yVVJMKToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6
OnBsYXRmb3JtR2V0QXV0aGVudGljYXRpb25JbmZvKToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdp
blZpZXc6OnBsYXRmb3JtU2V0VmFsdWVGb3JVUkwpOgorICAgICAgICAqIHBsdWdpbnMvc3ltYmlh
bi9QbHVnaW5WaWV3U3ltYmlhbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3Ojpw
bGF0Zm9ybUdldFZhbHVlRm9yVVJMKToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OnBs
YXRmb3JtU2V0VmFsdWVGb3JVUkwpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6cGxh
dGZvcm1HZXRBdXRoZW50aWNhdGlvbkluZm8pOgorICAgICAgICAqIHBsdWdpbnMvd2luL1BsdWdp
blZpZXdXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6cGxhdGZvcm1HZXRW
YWx1ZUZvclVSTCk6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpwbGF0Zm9ybVNldFZh
bHVlRm9yVVJMKToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OnBsYXRmb3JtR2V0QXV0
aGVudGljYXRpb25JbmZvKToKKwogMjAxMC0wOS0wMiAgQW50b24gTXVoaW4gIDxhbnRvbm1AY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFRvbnkgQ2hhbmcuCmRpZmYgLS1naXQg
YS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luRGVidWcuY3BwIGIvV2ViQ29yZS9wbHVnaW5zL1BsdWdp
bkRlYnVnLmNwcAppbmRleCBhY2U4YjIxLi44YzNlZmNiIDEwMDY0NAotLS0gYS9XZWJDb3JlL3Bs
dWdpbnMvUGx1Z2luRGVidWcuY3BwCisrKyBiL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5EZWJ1Zy5j
cHAKQEAgLTE2Myw2ICsxNjMsMTQgQEAgQ1N0cmluZyBwcmV0dHlOYW1lRm9yTlBQVmFyaWFibGUo
TlBQVmFyaWFibGUgdmFyaWFibGUsIHZvaWQqIHZhbHVlKQogICAgIH0KIH0KIAorQ1N0cmluZyBw
cmV0dHlOYW1lRm9yTlBOVVJMVmFyaWFibGUoTlBOVVJMVmFyaWFibGUgdmFyaWFibGUpCit7Cisg
ICAgc3dpdGNoICh2YXJpYWJsZSkgeworICAgIGNhc2UgTlBOVVJMVkNvb2tpZTogcmV0dXJuICJO
UE5VUkxWQ29va2llIjsKKyAgICBjYXNlIE5QTlVSTFZQcm94eTogcmV0dXJuICJOUE5VUkxWUHJv
eHkiOworICAgIGRlZmF1bHQ6IHJldHVybiAiVW5rbm93biB2YXJpYWJsZSI7CisgICAgfQorfQog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gIUxPR19ESVNBQkxFRApkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9wbHVnaW5zL1BsdWdpbkRlYnVnLmggYi9XZWJDb3JlL3BsdWdpbnMvUGx1
Z2luRGVidWcuaAppbmRleCAyNTQ4NjRmLi4wMTdlNjg2IDEwMDY0NAotLS0gYS9XZWJDb3JlL3Bs
dWdpbnMvUGx1Z2luRGVidWcuaAorKysgYi9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luRGVidWcuaApA
QCAtNDEsNiArNDEsNyBAQCBjb25zdCBjaGFyKiBwcmV0dHlOYW1lRm9yTlBFcnJvcihOUEVycm9y
IGVycm9yKTsKIAogQ1N0cmluZyBwcmV0dHlOYW1lRm9yTlBOVmFyaWFibGUoTlBOVmFyaWFibGUg
dmFyaWFibGUpOwogQ1N0cmluZyBwcmV0dHlOYW1lRm9yTlBQVmFyaWFibGUoTlBQVmFyaWFibGUg
dmFyaWFibGUsIHZvaWQqIHZhbHVlKTsKK0NTdHJpbmcgcHJldHR5TmFtZUZvck5QTlVSTFZhcmlh
YmxlKE5QTlVSTFZhcmlhYmxlIHZhcmlhYmxlKTsKIAogI2lmZGVmIFhQX01BQ09TWAogY29uc3Qg
Y2hhciogcHJldHR5TmFtZUZvckRyYXdpbmdNb2RlbChOUERyYXdpbmdNb2RlbCBkcmF3aW5nTW9k
ZWwpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblBhY2thZ2UuY3BwIGIvV2Vi
Q29yZS9wbHVnaW5zL1BsdWdpblBhY2thZ2UuY3BwCmluZGV4IDVmMzU4YjEuLjU1NTEwMWYgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5QYWNrYWdlLmNwcAorKysgYi9XZWJDb3Jl
L3BsdWdpbnMvUGx1Z2luUGFja2FnZS5jcHAKQEAgLTMyMSw2ICszMjEsOSBAQCB2b2lkIFBsdWdp
blBhY2thZ2U6OmluaXRpYWxpemVCcm93c2VyRnVuY3MoKQogICAgIG1fYnJvd3NlckZ1bmNzLnNl
dGV4Y2VwdGlvbiA9IF9OUE5fU2V0RXhjZXB0aW9uOwogICAgIG1fYnJvd3NlckZ1bmNzLmVudW1l
cmF0ZSA9IF9OUE5fRW51bWVyYXRlOwogICAgIG1fYnJvd3NlckZ1bmNzLmNvbnN0cnVjdCA9IF9O
UE5fQ29uc3RydWN0OworICAgIG1fYnJvd3NlckZ1bmNzLmdldHZhbHVlZm9ydXJsID0gTlBOX0dl
dFZhbHVlRm9yVVJMOworICAgIG1fYnJvd3NlckZ1bmNzLnNldHZhbHVlZm9ydXJsID0gTlBOX1Nl
dFZhbHVlRm9yVVJMOworICAgIG1fYnJvd3NlckZ1bmNzLmdldGF1dGhlbnRpY2F0aW9uaW5mbyA9
IE5QTl9HZXRBdXRoZW50aWNhdGlvbkluZm87CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9wbHVnaW5zL1BsdWdpblZpZXcuY3BwIGIvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcu
Y3BwCmluZGV4IGJlZThkY2QuLjhiYjRhMjggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGx1Z2lucy9Q
bHVnaW5WaWV3LmNwcAorKysgYi9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5jcHAKQEAgLTMw
LDYgKzMwLDcgQEAKIAogI2luY2x1ZGUgIkJyaWRnZS5oIgogI2luY2x1ZGUgIkNocm9tZS5oIgor
I2luY2x1ZGUgIkNvb2tpZUphci5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAi
RG9jdW1lbnRMb2FkZXIuaCIKICNpbmNsdWRlICJFbGVtZW50LmgiCkBAIC0xMzc3LDYgKzEzNzgs
ODggQEAgTlBFcnJvciBQbHVnaW5WaWV3OjpnZXRWYWx1ZShOUE5WYXJpYWJsZSB2YXJpYWJsZSwg
dm9pZCogdmFsdWUpCiAgICAgICAgIHJldHVybiBOUEVSUl9HRU5FUklDX0VSUk9SOwogICAgIH0K
IH0KKworTlBFcnJvciBQbHVnaW5WaWV3OjpnZXRWYWx1ZUZvclVSTChOUE5VUkxWYXJpYWJsZSB2
YXJpYWJsZSwgY29uc3QgY2hhciogdXJsLCBjaGFyKiogdmFsdWUsIHVpbnQzMl90KiBsZW4pCit7
CisgICAgTE9HKFBsdWdpbnMsICJQbHVnaW5WaWV3OjpnZXRWYWx1ZUZvclVSTCglcykiLCBwcmV0
dHlOYW1lRm9yTlBOVVJMVmFyaWFibGUodmFyaWFibGUpLmRhdGEoKSk7CisKKyAgICBOUEVycm9y
IHJlc3VsdCA9IE5QRVJSX05PX0VSUk9SOworICAgIGlmIChwbGF0Zm9ybUdldFZhbHVlRm9yVVJM
KHZhcmlhYmxlLCB1cmwsIHZhbHVlLCBsZW4sICZyZXN1bHQpKQorICAgICAgICByZXR1cm4gcmVz
dWx0OworCisgICAgc3dpdGNoICh2YXJpYWJsZSkgeworICAgIGNhc2UgTlBOVVJMVkNvb2tpZTog
eworICAgICAgICBLVVJMIHUobV9iYXNlVVJMLCB1cmwpOworICAgICAgICBpZiAodS5pc1ZhbGlk
KCkpIHsKKyAgICAgICAgICAgIGNvbnN0IENTdHJpbmcgY29va2llU3RyID0gY29va2llcyhtX3Bh
cmVudEZyYW1lLT5kb2N1bWVudCgpLCB1KS51dGY4KCk7CisgICAgICAgICAgICBpZiAoIWNvb2tp
ZVN0ci5pc051bGwoKSkgeworICAgICAgICAgICAgICAgICp2YWx1ZSA9IHN0YXRpY19jYXN0PGNo
YXIqPihOUE5fTWVtQWxsb2MoY29va2llU3RyLmxlbmd0aCgpKSk7CisgICAgICAgICAgICAgICAg
aWYgKCp2YWx1ZSkgeworICAgICAgICAgICAgICAgICAgICBzdHJuY3B5KCp2YWx1ZSwgY29va2ll
U3RyLmRhdGEoKSwgY29va2llU3RyLmxlbmd0aCgpKTsKKyAgICAgICAgICAgICAgICAgICAgaWYg
KGxlbikKKyAgICAgICAgICAgICAgICAgICAgICAgICpsZW4gPSBjb29raWVTdHIubGVuZ3RoKCk7
CisgICAgICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IE5Q
RVJSX09VVF9PRl9NRU1PUllfRVJST1I7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZQor
ICAgICAgICAgICAgcmVzdWx0ID0gTlBFUlJfSU5WQUxJRF9VUkw7CisgICAgICAgIGJyZWFrOwor
ICAgIH0KKyAgICBjYXNlIE5QTlVSTFZQcm94eToKKyAgICAgICAgcmVzdWx0ID0gTlBFUlJfR0VO
RVJJQ19FUlJPUjsKKyAgICAgICAgTE9HKFBsdWdpbnMsICJQbHVnaW5WaWV3OjpnZXRWYWx1ZUZv
clVSTCglcyk6IE5lZWQgdG8gaW1wbGVtZW50IFBsdWdpblZpZXc6OnBsYXRmb3JtR2V0VmFsdWVG
b3JVUkwhIiwgcHJldHR5TmFtZUZvck5QTlVSTFZhcmlhYmxlKHZhcmlhYmxlKS5kYXRhKCkpOwor
ICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXN1bHQgPSBOUEVSUl9HRU5F
UklDX0VSUk9SOworICAgICAgICBMT0coUGx1Z2lucywgIlBsdWdpblZpZXc6OmdldFZhbHVlRm9y
VVJMOiAlcyIsIHByZXR0eU5hbWVGb3JOUE5VUkxWYXJpYWJsZSh2YXJpYWJsZSkuZGF0YSgpKTsK
KyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworCitOUEVy
cm9yIFBsdWdpblZpZXc6OnNldFZhbHVlRm9yVVJMKE5QTlVSTFZhcmlhYmxlIHZhcmlhYmxlLCBj
b25zdCBjaGFyKiB1cmwsIGNvbnN0IGNoYXIqIHZhbHVlLCB1aW50MzJfdCBsZW4pCit7CisgICAg
TE9HKFBsdWdpbnMsICJQbHVnaW5WaWV3OjpzZXRWYWx1ZUZvclVSTCglcykiLCBwcmV0dHlOYW1l
Rm9yTlBOVVJMVmFyaWFibGUodmFyaWFibGUpLmRhdGEoKSk7CisKKyAgICBOUEVycm9yIHJlc3Vs
dCA9IE5QRVJSX0dFTkVSSUNfRVJST1I7CisgICAgaWYgKHBsYXRmb3JtU2V0VmFsdWVGb3JVUkwo
dmFyaWFibGUsIHVybCwgdmFsdWUsIGxlbiwgJnJlc3VsdCkpCisgICAgICAgIHJldHVybiByZXN1
bHQ7CisKKyAgICBzd2l0Y2ggKHZhcmlhYmxlKSB7CisgICAgY2FzZSBOUE5VUkxWQ29va2llOiB7
CisgICAgICAgIEtVUkwgdShtX2Jhc2VVUkwsIHVybCk7CisgICAgICAgIGlmICh1LmlzVmFsaWQo
KSkgeworICAgICAgICAgICAgU3RyaW5nIGNvb2tpZVN0ciA9IFN0cmluZzo6ZnJvbVVURjgodmFs
dWUsIGxlbik7CisgICAgICAgICAgICBpZiAoIWNvb2tpZVN0ci5pc0VtcHR5KCkpCisgICAgICAg
ICAgICAgICAgc2V0Q29va2llcyhtX3BhcmVudEZyYW1lLT5kb2N1bWVudCgpLCB1LCBjb29raWVT
dHIpOworICAgICAgICAgICAgcmVzdWx0ID0gTlBFUlJfTk9fRVJST1I7CisgICAgICAgIH0gZWxz
ZQorICAgICAgICAgICAgcmVzdWx0ID0gTlBFUlJfSU5WQUxJRF9VUkw7CisgICAgICAgIGJyZWFr
OworICAgIH0KKyAgICBjYXNlIE5QTlVSTFZQcm94eToKKyAgICAgICAgTE9HKFBsdWdpbnMsICJQ
bHVnaW5WaWV3OjpzZXRWYWx1ZUZvclVSTCglcyk6IFBsdWdpbnMgYXJlIE5PVCBhbGxvd2VkIHRv
IHNldCBwcm94eSBpbmZvcm1hdGlvbi4iLCBwcmV0dHlOYW1lRm9yTlBOVVJMVmFyaWFibGUodmFy
aWFibGUpLmRhdGEoKSk7CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIExP
RyhQbHVnaW5zLCAiUGx1Z2luVmlldzo6c2V0VmFsdWVGb3JVUkw6ICVzIiwgcHJldHR5TmFtZUZv
ck5QTlVSTFZhcmlhYmxlKHZhcmlhYmxlKS5kYXRhKCkpOworICAgICAgICBicmVhazsKKyAgICB9
CisKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitOUEVycm9yIFBsdWdpblZpZXc6OmdldEF1dGhl
bnRpY2F0aW9uSW5mbyhjb25zdCBjaGFyKiBwcm90b2NvbCwgY29uc3QgY2hhciogaG9zdCwgaW50
MzJfdCBwb3J0LCBjb25zdCBjaGFyKiBzY2hlbWUsIGNvbnN0IGNoYXIqIHJlYWxtLCBjaGFyKiog
dXNlcm5hbWUsIHVpbnQzMl90KiB1bGVuLCBjaGFyKiogcGFzc3dvcmQsIHVpbnQzMl90KiBwbGVu
KQoreworICAgIExPRyhQbHVnaW5zLCAiUGx1Z2luVmlldzo6Z2V0QXV0aGVudGljYXRpb25JbmZv
OiBwcm90b2NvbD0lcywgaG9zdD0lcywgcG9ydD0lZCIsIHByb3RvY29sLCBob3N0LCBwb3J0KTsK
KworICAgIE5QRXJyb3IgcmVzdWx0ID0gTlBFUlJfR0VORVJJQ19FUlJPUjsKKyAgICBpZiAocGxh
dGZvcm1HZXRBdXRoZW50aWNhdGlvbkluZm8ocHJvdG9jb2wsIGhvc3QsIHBvcnQsIHNjaGVtZSwg
cmVhbG0sIHVzZXJuYW1lLCB1bGVuLCBwYXNzd29yZCwgcGxlbiwgJnJlc3VsdCkpCisgICAgICAg
IHJldHVybiByZXN1bHQ7CisKKyAgICByZXR1cm4gTlBFUlJfR0VORVJJQ19FUlJPUjsKK30KICNl
bmRpZgogCiB2b2lkIFBsdWdpblZpZXc6OnByaXZhdGVCcm93c2luZ1N0YXRlQ2hhbmdlZChib29s
IHByaXZhdGVCcm93c2luZ0VuYWJsZWQpCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvUGx1
Z2luVmlldy5oIGIvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcuaAppbmRleCBhMWU3NTI0Li4w
YjA4OTk5IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5oCisrKyBiL1dl
YkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmgKQEAgLTE2NSw2ICsxNjUsOSBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgICAgIE5QRXJyb3IgZ2V0VmFsdWUoTlBOVmFyaWFibGUgdmFyaWFibGUs
IHZvaWQqIHZhbHVlKTsKICAgICAgICAgc3RhdGljIE5QRXJyb3IgZ2V0VmFsdWVTdGF0aWMoTlBO
VmFyaWFibGUgdmFyaWFibGUsIHZvaWQqIHZhbHVlKTsKICAgICAgICAgTlBFcnJvciBzZXRWYWx1
ZShOUFBWYXJpYWJsZSB2YXJpYWJsZSwgdm9pZCogdmFsdWUpOworICAgICAgICBOUEVycm9yIGdl
dFZhbHVlRm9yVVJMKE5QTlVSTFZhcmlhYmxlIHZhcmlhYmxlLCBjb25zdCBjaGFyKiB1cmwsIGNo
YXIqKiB2YWx1ZSwgdWludDMyX3QqIGxlbik7CisgICAgICAgIE5QRXJyb3Igc2V0VmFsdWVGb3JV
UkwoTlBOVVJMVmFyaWFibGUgdmFyaWFibGUsIGNvbnN0IGNoYXIqIHVybCwgY29uc3QgY2hhciog
dmFsdWUsIHVpbnQzMl90IGxlbik7CisgICAgICAgIE5QRXJyb3IgZ2V0QXV0aGVudGljYXRpb25J
bmZvKGNvbnN0IGNoYXIqIHByb3RvY29sLCBjb25zdCBjaGFyKiBob3N0LCBpbnQzMl90IHBvcnQs
IGNvbnN0IGNoYXIqIHNjaGVtZSwgY29uc3QgY2hhciogcmVhbG0sIGNoYXIqKiB1c2VybmFtZSwg
dWludDMyX3QqIHVsZW4sIGNoYXIqKiBwYXNzd29yZCwgdWludDMyX3QqIHBsZW4pOwogICAgICAg
ICB2b2lkIGludmFsaWRhdGVSZWN0KE5QUmVjdCopOwogICAgICAgICB2b2lkIGludmFsaWRhdGVS
ZWdpb24oTlBSZWdpb24pOwogI2VuZGlmCkBAIC0yNzIsNiArMjc1LDkgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQogICAgICAgICBzdGF0aWMg
Ym9vbCBwbGF0Zm9ybUdldFZhbHVlU3RhdGljKE5QTlZhcmlhYmxlIHZhcmlhYmxlLCB2b2lkKiB2
YWx1ZSwgTlBFcnJvciogcmVzdWx0KTsKICAgICAgICAgYm9vbCBwbGF0Zm9ybUdldFZhbHVlKE5Q
TlZhcmlhYmxlIHZhcmlhYmxlLCB2b2lkKiB2YWx1ZSwgTlBFcnJvciogcmVzdWx0KTsKKyAgICAg
ICAgYm9vbCBwbGF0Zm9ybUdldFZhbHVlRm9yVVJMKE5QTlVSTFZhcmlhYmxlIHZhcmlhYmxlLCBj
b25zdCBjaGFyKiB1cmwsIGNoYXIqKiB2YWx1ZSwgdWludDMyX3QqIGxlbiwgTlBFcnJvciogcmVz
dWx0KTsKKyAgICAgICAgYm9vbCBwbGF0Zm9ybVNldFZhbHVlRm9yVVJMKE5QTlVSTFZhcmlhYmxl
IHZhcmlhYmxlLCBjb25zdCBjaGFyKiB1cmwsIGNvbnN0IGNoYXIqIHZhbHVlLCB1aW50MzJfdCBs
ZW4sIE5QRXJyb3IqIHJlc3VsdCk7CisgICAgICAgIGJvb2wgcGxhdGZvcm1HZXRBdXRoZW50aWNh
dGlvbkluZm8oY29uc3QgY2hhciogcHJvdG9jb2wsIGNvbnN0IGNoYXIqIGhvc3QsIGludDMyX3Qg
cG9ydCwgY29uc3QgY2hhciogc2NoZW1lLCBjb25zdCBjaGFyKiByZWFsbSwgY2hhcioqIHVzZXJu
YW1lLCB1aW50MzJfdCogdWxlbiwgY2hhcioqIHBhc3N3b3JkLCB1aW50MzJfdCogcGxlbiwgTlBF
cnJvciogcmVzdWx0KTsKICNlbmRpZgogCiAgICAgICAgIFJlZlB0cjxGcmFtZT4gbV9wYXJlbnRG
cmFtZTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGx1Z2lucy9ndGsvUGx1Z2luVmlld0d0ay5jcHAg
Yi9XZWJDb3JlL3BsdWdpbnMvZ3RrL1BsdWdpblZpZXdHdGsuY3BwCmluZGV4IGFiNDNiZjQuLjBh
YmZhZDggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGx1Z2lucy9ndGsvUGx1Z2luVmlld0d0ay5jcHAK
KysrIGIvV2ViQ29yZS9wbHVnaW5zL2d0ay9QbHVnaW5WaWV3R3RrLmNwcApAQCAtNjY5LDYgKzY2
OSwyMiBAQCBib29sIFBsdWdpblZpZXc6OnBsYXRmb3JtR2V0VmFsdWUoTlBOVmFyaWFibGUgdmFy
aWFibGUsIHZvaWQqIHZhbHVlLCBOUEVycm9yKiByZQogICAgIH0KIH0KIAorYm9vbCBQbHVnaW5W
aWV3OjpwbGF0Zm9ybUdldFZhbHVlRm9yVVJMKE5QTlVSTFZhcmlhYmxlIHZhcmlhYmxlLCBjb25z
dCBjaGFyKiB1cmwsIGNoYXIqKiB2YWx1ZSwgdWludDMyX3QqIGxlbiwgTlBFcnJvciogcmVzdWx0
KQoreworICAgIC8vIE5PVEU6IE5QTlVSTFZQcm94eSByZXF1aXJlcyBwbGF0Zm9ybSBzcGVjaWZp
YyBpbXBsZW1lbnRhdGlvbiA7IG90aGVyd2lzZSwgTlBfR0VORVJJQ19FUlIgaXMgcmV0dXJuZWQg
YnkgZGVmYXVsdC4KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgUGx1Z2luVmlldzo6cGxh
dGZvcm1TZXRWYWx1ZUZvclVSTChOUE5VUkxWYXJpYWJsZSB2YXJpYWJsZSwgY29uc3QgY2hhciog
dXJsLCBjb25zdCBjaGFyKiB2YWx1ZSwgdWludDMyX3QgbGVuLCBOUEVycm9yKiByZXN1bHQpCit7
CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIFBsdWdpblZpZXc6OnBsYXRmb3JtR2V0QXV0
aGVudGljYXRpb25JbmZvKGNvbnN0IGNoYXIqIHByb3RvY29sLCBjb25zdCBjaGFyKiBob3N0LCBp
bnQzMl90IHBvcnQsIGNvbnN0IGNoYXIqIHNjaGVtZSwgY29uc3QgY2hhciogcmVhbG0sIGNoYXIq
KiB1c2VybmFtZSwgdWludDMyX3QqIHVsZW4sIGNoYXIqKiBwYXNzd29yZCwgdWludDMyX3QqIHBs
ZW4sIE5QRXJyb3IqIHJlc3VsdCkKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIHZvaWQgUGx1
Z2luVmlldzo6aW52YWxpZGF0ZVJlY3QoY29uc3QgSW50UmVjdCYgcmVjdCkKIHsKICAgICBpZiAo
bV9pc1dpbmRvd2VkKSB7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvbWFjL1BsdWdpblZp
ZXdNYWMubW0gYi9XZWJDb3JlL3BsdWdpbnMvbWFjL1BsdWdpblZpZXdNYWMubW0KaW5kZXggZTBh
ZDEzNS4uNTEyOWFjMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbHVnaW5zL21hYy9QbHVnaW5WaWV3
TWFjLm1tCisrKyBiL1dlYkNvcmUvcGx1Z2lucy9tYWMvUGx1Z2luVmlld01hYy5tbQpAQCAtMzA4
LDYgKzMwOCwyMiBAQCBib29sIFBsdWdpblZpZXc6OnBsYXRmb3JtR2V0VmFsdWUoTlBOVmFyaWFi
bGUgdmFyaWFibGUsIHZvaWQqIHZhbHVlLCBOUEVycm9yKiBlcgogICAgIHJldHVybiBmYWxzZTsK
IH0KIAorYm9vbCBQbHVnaW5WaWV3OjpwbGF0Zm9ybUdldFZhbHVlRm9yVVJMKE5QTlVSTFZhcmlh
YmxlIHZhcmlhYmxlLCBjb25zdCBjaGFyKiB1cmwsIGNoYXIqKiB2YWx1ZSwgdWludDMyX3QqIGxl
biwgTlBFcnJvciogcmVzdWx0KQoreworICAgIC8vIE5PVEU6IE5QTlVSTFZQcm94eSByZXF1aXJl
cyBwbGF0Zm9ybSBzcGVjaWZpYyBpbXBsZW1lbnRhdGlvbiA7IG90aGVyd2lzZSwgTlBfR0VORVJJ
Q19FUlIgaXMgcmV0dXJuZWQgYnkgZGVmYXVsdC4KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jv
b2wgUGx1Z2luVmlldzo6cGxhdGZvcm1TZXRWYWx1ZUZvclVSTChOUE5VUkxWYXJpYWJsZSB2YXJp
YWJsZSwgY29uc3QgY2hhciogdXJsLCBjb25zdCBjaGFyKiB2YWx1ZSwgdWludDMyX3QgbGVuLCBO
UEVycm9yKiByZXN1bHQpCit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIFBsdWdpblZp
ZXc6OnBsYXRmb3JtR2V0QXV0aGVudGljYXRpb25JbmZvKGNvbnN0IGNoYXIqIHByb3RvY29sLCBj
b25zdCBjaGFyKiBob3N0LCBpbnQzMl90IHBvcnQsIGNvbnN0IGNoYXIqIHNjaGVtZSwgY29uc3Qg
Y2hhciogcmVhbG0sIGNoYXIqKiB1c2VybmFtZSwgdWludDMyX3QqIHVsZW4sIGNoYXIqKiBwYXNz
d29yZCwgdWludDMyX3QqIHBsZW4sIE5QRXJyb3IqIHJlc3VsdCkKK3sKKyAgICByZXR1cm4gZmFs
c2U7Cit9CisKIHZvaWQgUGx1Z2luVmlldzo6c2V0UGFyZW50KFNjcm9sbFZpZXcqIHBhcmVudCkK
IHsKICAgICBMT0coUGx1Z2lucywgIlBsdWdpblZpZXc6OnNldFBhcmVudCglcCkiLCBwYXJlbnQp
OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbHVnaW5zL25wYXBpLmNwcCBiL1dlYkNvcmUvcGx1Z2lu
cy9ucGFwaS5jcHAKaW5kZXggZDBkYjg0NS4uYjI3MjFmYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9w
bHVnaW5zL25wYXBpLmNwcAorKysgYi9XZWJDb3JlL3BsdWdpbnMvbnBhcGkuY3BwCkBAIC0xNzUs
MyArMTc1LDE4IEBAIHZvaWQgTlBOX1BsdWdpblRocmVhZEFzeW5jQ2FsbChOUFAgaW5zdGFuY2Us
IHZvaWQgKCpmdW5jKSAodm9pZCAqKSwgdm9pZCAqdXNlckRhCiB7CiAgICAgUGx1Z2luTWFpblRo
cmVhZFNjaGVkdWxlcjo6c2NoZWR1bGVyKCkuc2NoZWR1bGVDYWxsKGluc3RhbmNlLCBmdW5jLCB1
c2VyRGF0YSk7CiB9CisKK05QRXJyb3IgTlBOX0dldFZhbHVlRm9yVVJMKE5QUCBpbnN0YW5jZSwg
TlBOVVJMVmFyaWFibGUgdmFyaWFibGUsIGNvbnN0IGNoYXIqIHVybCwgY2hhcioqIHZhbHVlLCB1
aW50MzJfdCogbGVuKQoreworICAgIHJldHVybiBwbHVnaW5WaWV3Rm9ySW5zdGFuY2UoaW5zdGFu
Y2UpLT5nZXRWYWx1ZUZvclVSTCh2YXJpYWJsZSwgdXJsLCB2YWx1ZSwgbGVuKTsKK30KKworTlBF
cnJvciBOUE5fU2V0VmFsdWVGb3JVUkwoTlBQIGluc3RhbmNlLCBOUE5VUkxWYXJpYWJsZSB2YXJp
YWJsZSwgY29uc3QgY2hhciogdXJsLCBjb25zdCBjaGFyKiB2YWx1ZSwgdWludDMyX3QgbGVuKQor
eworICAgIHJldHVybiBwbHVnaW5WaWV3Rm9ySW5zdGFuY2UoaW5zdGFuY2UpLT5zZXRWYWx1ZUZv
clVSTCh2YXJpYWJsZSwgdXJsLCB2YWx1ZSwgbGVuKTsKK30KKworTlBFcnJvciBOUE5fR2V0QXV0
aGVudGljYXRpb25JbmZvKE5QUCBpbnN0YW5jZSwgY29uc3QgY2hhciogcHJvdG9jb2wsIGNvbnN0
IGNoYXIqIGhvc3QsIGludDMyX3QgcG9ydCwgY29uc3QgY2hhciogc2NoZW1lLCBjb25zdCBjaGFy
KiByZWFsbSwgY2hhcioqIHVzZXJuYW1lLCB1aW50MzJfdCogdWxlbiwgY2hhcioqIHBhc3N3b3Jk
LCB1aW50MzJfdCogcGxlbikKK3sKKyAgICByZXR1cm4gcGx1Z2luVmlld0Zvckluc3RhbmNlKGlu
c3RhbmNlKS0+Z2V0QXV0aGVudGljYXRpb25JbmZvKHByb3RvY29sLCBob3N0LCBwb3J0LCBzY2hl
bWUsIHJlYWxtLCB1c2VybmFtZSwgdWxlbiwgcGFzc3dvcmQsIHBsZW4pOworfQpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9wbHVnaW5zL3F0L1BsdWdpblZpZXdRdC5jcHAgYi9XZWJDb3JlL3BsdWdpbnMv
cXQvUGx1Z2luVmlld1F0LmNwcAppbmRleCBmNjA4ODVkLi4zZTM2YWVlIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL3BsdWdpbnMvcXQvUGx1Z2luVmlld1F0LmNwcAorKysgYi9XZWJDb3JlL3BsdWdpbnMv
cXQvUGx1Z2luVmlld1F0LmNwcApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIkZyYW1lLmgi
CiAjaW5jbHVkZSAiRnJhbWVMb2FkUmVxdWVzdC5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgi
CisjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnRRdC5oIgogI2luY2x1ZGUgIkZyYW1lVHJlZS5o
IgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgpA
QCAtNjYsNiArNjcsOCBAQAogI2luY2x1ZGUgPFFBcHBsaWNhdGlvbj4KICNpbmNsdWRlIDxRRGVz
a3RvcFdpZGdldD4KICNpbmNsdWRlIDxRS2V5RXZlbnQ+CisjaW5jbHVkZSA8UU5ldHdvcmtBY2Nl
c3NNYW5hZ2VyPgorI2luY2x1ZGUgPFFOZXR3b3JrUHJveHk+CiAjaW5jbHVkZSA8UVBhaW50ZXI+
CiAjaW5jbHVkZSA8UVdpZGdldD4KICNpbmNsdWRlIDxRWDExSW5mbz4KQEAgLTc0MSw2ICs3NDQs
ODIgQEAgYm9vbCBQbHVnaW5WaWV3OjpwbGF0Zm9ybUdldFZhbHVlKE5QTlZhcmlhYmxlIHZhcmlh
YmxlLCB2b2lkKiB2YWx1ZSwgTlBFcnJvciogcmUKICAgICB9CiB9CiAKK3N0YXRpYyB2b2lkIGFw
cGVuZFByb3h5RGF0YShjb25zdCBRTmV0d29ya1Byb3h5JiBwcm94eSwgUVN0cmluZyYgcHJveHlT
dHIpCit7CisgICAgcHJveHlTdHIgKz0gcHJveHkuaG9zdE5hbWUoKTsKKworICAgIGlmIChwcm94
eS5wb3J0KCkgPiAwKSB7CisgICAgICAgIHByb3h5U3RyICs9IFFMYXRpbjFDaGFyKCc6Jyk7Cisg
ICAgICAgIHByb3h5U3RyICs9IFFTdHJpbmc6Om51bWJlcihwcm94eS5wb3J0KCkpOworICAgIH0K
K30KKworYm9vbCBQbHVnaW5WaWV3OjpwbGF0Zm9ybUdldFZhbHVlRm9yVVJMKE5QTlVSTFZhcmlh
YmxlIHZhcmlhYmxlLCBjb25zdCBjaGFyKiB1cmwsIGNoYXIqKiB2YWx1ZSwgdWludDMyX3QqIGxl
biwgTlBFcnJvciogcmVzdWx0KQoreworICAgIGlmICh2YXJpYWJsZSA9PSBOUE5VUkxWUHJveHkp
IHsKKyAgICAgICAgRnJhbWUqIGZyYW1lID0gcGFyZW50RnJhbWUoKTsKKyAgICAgICAgaWYgKCFm
cmFtZSkgeworICAgICAgICAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gbV9lbGVtZW50LT5kb2N1
bWVudCgpOworICAgICAgICAgICAgaWYgKCFkb2N1bWVudCkKKyAgICAgICAgICAgICAgICBkb2N1
bWVudCA9IG1fZWxlbWVudC0+b3duZXJEb2N1bWVudCgpOworICAgICAgICAgICAgZnJhbWUgPSBk
b2N1bWVudCA/IGRvY3VtZW50LT5mcmFtZSgpIDogMDsKKyAgICAgICAgfQorCisgICAgICAgIEZy
YW1lTG9hZGVyQ2xpZW50UXQqIGZyYW1lTG9hZGVyID0gZnJhbWUgPyBzdGF0aWNfY2FzdDxGcmFt
ZUxvYWRlckNsaWVudFF0Kj4oZnJhbWUtPmxvYWRlcigpLT5jbGllbnQoKSkgOiAwOworICAgICAg
ICBRTmV0d29ya0FjY2Vzc01hbmFnZXIqIG1hbmFnZXIgPSBmcmFtZUxvYWRlciA/IGZyYW1lTG9h
ZGVyLT53ZWJGcmFtZSgpLT5wYWdlKCktPm5ldHdvcmtBY2Nlc3NNYW5hZ2VyKCkgOiAwOworCisg
ICAgICAgIGlmIChtYW5hZ2VyKSB7CisgICAgICAgICAgICBRU3RyaW5nIHByb3h5U3RyOworICAg
ICAgICAgICAgUU5ldHdvcmtQcm94eSBwcm94eSA9IG1hbmFnZXItPnByb3h5KCk7CisKKyAgICAg
ICAgICAgIHN3aXRjaCAocHJveHkudHlwZSgpKSB7CisgICAgICAgICAgICBjYXNlIFFOZXR3b3Jr
UHJveHk6OlNvY2tzNVByb3h5OiB7CisgICAgICAgICAgICAgICAgcHJveHlTdHIgPSBRTGF0aW4x
U3RyaW5nKCJTT0NLUyAiKTsKKyAgICAgICAgICAgICAgICBhcHBlbmRQcm94eURhdGEocHJveHks
IHByb3h5U3RyKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIGNhc2UgUU5ldHdvcmtQcm94eTo6SHR0cFByb3h5OgorICAgICAgICAgICAgY2FzZSBR
TmV0d29ya1Byb3h5OjpIdHRwQ2FjaGluZ1Byb3h5OgorICAgICAgICAgICAgY2FzZSBRTmV0d29y
a1Byb3h5OjpGdHBDYWNoaW5nUHJveHk6IHsKKyAgICAgICAgICAgICAgICBwcm94eVN0ciA9IFFM
YXRpbjFTdHJpbmcoIlBST1hZICIpOworICAgICAgICAgICAgICAgIGFwcGVuZFByb3h5RGF0YShw
cm94eSwgcHJveHlTdHIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQor
ICAgICAgICAgICAgY2FzZSBRTmV0d29ya1Byb3h5OjpEZWZhdWx0UHJveHk6CisgICAgICAgICAg
ICBjYXNlIFFOZXR3b3JrUHJveHk6Ok5vUHJveHk6CisgICAgICAgICAgICBkZWZhdWx0OgorICAg
ICAgICAgICAgICAgIHByb3h5U3RyID0gUUxhdGluMVN0cmluZygiRElSRUNUIik7CisgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGNvbnN0IFFCeXRl
QXJyYXkgcHJveHlTdHJVdGY4ID0gcHJveHlTdHIudG9VdGY4KCk7CisgICAgICAgICAgICAqdmFs
dWUgPSBzdGF0aWNfY2FzdDxjaGFyKj4oTlBOX01lbUFsbG9jKHByb3h5U3RyVXRmOC5sZW5ndGgo
KSkpOworICAgICAgICAgICAgaWYgKCp2YWx1ZSkgeworICAgICAgICAgICAgICAgIHN0cm5jcHko
KnZhbHVlLCBwcm94eVN0clV0ZjguY29uc3REYXRhKCksIHByb3h5U3RyVXRmOC5sZW5ndGgoKSk7
CisgICAgICAgICAgICAgICAgaWYgKGxlbikKKyAgICAgICAgICAgICAgICAgICAgKmxlbiA9IHBy
b3h5U3RyVXRmOC5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICBpZiAocmVzdWx0KQorICAgICAg
ICAgICAgICAgICAgICAqcmVzdWx0ID0gTlBFUlJfTk9fRVJST1I7CisgICAgICAgICAgICB9IGVs
c2UKKyAgICAgICAgICAgICAgICAqcmVzdWx0ID0gTlBFUlJfT1VUX09GX01FTU9SWV9FUlJPUjsK
KworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1
cm4gZmFsc2U7Cit9CisKK2Jvb2wgUGx1Z2luVmlldzo6cGxhdGZvcm1HZXRBdXRoZW50aWNhdGlv
bkluZm8oY29uc3QgY2hhciogcHJvdG9jb2wsIGNvbnN0IGNoYXIqIGhvc3QsIGludDMyX3QgcG9y
dCwgY29uc3QgY2hhciogc2NoZW1lLCBjb25zdCBjaGFyKiByZWFsbSwgY2hhcioqIHVzZXJuYW1l
LCB1aW50MzJfdCogdWxlbiwgY2hhcioqIHBhc3N3b3JkLCB1aW50MzJfdCogcGxlbiwgTlBFcnJv
ciogcmVzdWx0KQoreworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBQbHVnaW5WaWV3Ojpw
bGF0Zm9ybVNldFZhbHVlRm9yVVJMKE5QTlVSTFZhcmlhYmxlIHZhcmlhYmxlLCBjb25zdCBjaGFy
KiB1cmwsIGNvbnN0IGNoYXIqIHZhbHVlLCB1aW50MzJfdCBsZW4sIE5QRXJyb3IqIHJlc3VsdCkK
K3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIHZvaWQgUGx1Z2luVmlldzo6aW52YWxpZGF0ZVJl
Y3QoY29uc3QgSW50UmVjdCYgcmVjdCkKIHsKICAgICBpZiAobV9pc1dpbmRvd2VkKSB7CmRpZmYg
LS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvc3ltYmlhbi9QbHVnaW5WaWV3U3ltYmlhbi5jcHAgYi9X
ZWJDb3JlL3BsdWdpbnMvc3ltYmlhbi9QbHVnaW5WaWV3U3ltYmlhbi5jcHAKaW5kZXggYjlmODJh
ZC4uMGMyZjJhOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbHVnaW5zL3N5bWJpYW4vUGx1Z2luVmll
d1N5bWJpYW4uY3BwCisrKyBiL1dlYkNvcmUvcGx1Z2lucy9zeW1iaWFuL1BsdWdpblZpZXdTeW1i
aWFuLmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgIkZvY3VzQ29udHJvbGxlci5oIgog
I2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkUmVxdWVzdC5oIgorI2luY2x1
ZGUgIkZyYW1lTG9hZGVyQ2xpZW50UXQuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgogI2lu
Y2x1ZGUgIkZyYW1lVHJlZS5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgpAQCAtNTYsNiArNTcs
OCBAQAogI2luY2x1ZGUgInJ1bnRpbWVfcm9vdC5oIgogI2luY2x1ZGUgPFFHcmFwaGljc1Byb3h5
V2lkZ2V0PgogI2luY2x1ZGUgPFFLZXlFdmVudD4KKyNpbmNsdWRlIDxRTmV0d29ya0FjY2Vzc01h
bmFnZXI+CisjaW5jbHVkZSA8UU5ldHdvcmtQcm94eT4KICNpbmNsdWRlIDxRUGl4bWFwPgogI2lu
Y2x1ZGUgPFFSZWdpb24+CiAjaW5jbHVkZSA8UVZlY3Rvcj4KQEAgLTMzOCw2ICszNDEsODIgQEAg
Ym9vbCBQbHVnaW5WaWV3OjpwbGF0Zm9ybUdldFZhbHVlKE5QTlZhcmlhYmxlLCB2b2lkKiwgTlBF
cnJvciopCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCitzdGF0aWMgdm9pZCBhcHBlbmRQcm94eURh
dGEoY29uc3QgUU5ldHdvcmtQcm94eSYgcHJveHksIFFTdHJpbmcmIHByb3h5U3RyKQoreworICAg
IHByb3h5U3RyICs9IHByb3h5Lmhvc3ROYW1lKCk7CisKKyAgICBpZiAocHJveHkucG9ydCgpID4g
MCkgeworICAgICAgICBwcm94eVN0ciArPSBRTGF0aW4xQ2hhcignOicpOworICAgICAgICBwcm94
eVN0ciArPSBRU3RyaW5nOjpudW1iZXIocHJveHkucG9ydCgpKTsKKyAgICB9Cit9CisKK2Jvb2wg
UGx1Z2luVmlldzo6cGxhdGZvcm1HZXRWYWx1ZUZvclVSTChOUE5VUkxWYXJpYWJsZSB2YXJpYWJs
ZSwgY29uc3QgY2hhciogdXJsLCBjaGFyKiogdmFsdWUsIHVpbnQzMl90KiBsZW4sIE5QRXJyb3Iq
IHJlc3VsdCkKK3sKKyAgICBpZiAodmFyaWFibGUgPT0gTlBOVVJMVlByb3h5KSB7CisgICAgICAg
IEZyYW1lKiBmcmFtZSA9IHBhcmVudEZyYW1lKCk7CisgICAgICAgIGlmICghZnJhbWUpIHsKKyAg
ICAgICAgICAgIERvY3VtZW50KiBkb2N1bWVudCA9IG1fZWxlbWVudC0+ZG9jdW1lbnQoKTsKKyAg
ICAgICAgICAgIGlmICghZG9jdW1lbnQpCisgICAgICAgICAgICAgICAgZG9jdW1lbnQgPSBtX2Vs
ZW1lbnQtPm93bmVyRG9jdW1lbnQoKTsKKyAgICAgICAgICAgIGZyYW1lID0gZG9jdW1lbnQgPyBk
b2N1bWVudC0+ZnJhbWUoKSA6IDA7CisgICAgICAgIH0KKworICAgICAgICBGcmFtZUxvYWRlckNs
aWVudFF0KiBmcmFtZUxvYWRlciA9IGZyYW1lID8gc3RhdGljX2Nhc3Q8RnJhbWVMb2FkZXJDbGll
bnRRdCo+KGZyYW1lLT5sb2FkZXIoKS0+Y2xpZW50KCkpIDogMDsKKyAgICAgICAgUU5ldHdvcmtB
Y2Nlc3NNYW5hZ2VyKiBtYW5hZ2VyID0gZnJhbWVMb2FkZXIgPyBmcmFtZUxvYWRlci0+d2ViRnJh
bWUoKS0+cGFnZSgpLT5uZXR3b3JrQWNjZXNzTWFuYWdlcigpIDogMDsKKworICAgICAgICBpZiAo
bWFuYWdlcikgeworICAgICAgICAgICAgUVN0cmluZyBwcm94eVN0cjsKKyAgICAgICAgICAgIFFO
ZXR3b3JrUHJveHkgcHJveHkgPSBtYW5hZ2VyLT5wcm94eSgpOworCisgICAgICAgICAgICBzd2l0
Y2ggKHByb3h5LnR5cGUoKSkgeworICAgICAgICAgICAgY2FzZSBRTmV0d29ya1Byb3h5OjpTb2Nr
czVQcm94eTogeworICAgICAgICAgICAgICAgIHByb3h5U3RyID0gUUxhdGluMVN0cmluZygiU09D
S1MgIik7CisgICAgICAgICAgICAgICAgYXBwZW5kUHJveHlEYXRhKHByb3h5LCBwcm94eVN0cik7
CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXNl
IFFOZXR3b3JrUHJveHk6Okh0dHBQcm94eToKKyAgICAgICAgICAgIGNhc2UgUU5ldHdvcmtQcm94
eTo6SHR0cENhY2hpbmdQcm94eToKKyAgICAgICAgICAgIGNhc2UgUU5ldHdvcmtQcm94eTo6RnRw
Q2FjaGluZ1Byb3h5OiB7CisgICAgICAgICAgICAgICAgcHJveHlTdHIgPSBRTGF0aW4xU3RyaW5n
KCJQUk9YWSAiKTsKKyAgICAgICAgICAgICAgICBhcHBlbmRQcm94eURhdGEocHJveHksIHByb3h5
U3RyKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IGNhc2UgUU5ldHdvcmtQcm94eTo6RGVmYXVsdFByb3h5OgorICAgICAgICAgICAgY2FzZSBRTmV0
d29ya1Byb3h5OjpOb1Byb3h5OgorICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAg
ICBwcm94eVN0ciA9IFFMYXRpbjFTdHJpbmcoIkRJUkVDVCIpOworICAgICAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBjb25zdCBRQnl0ZUFycmF5IHByb3h5
U3RyVXRmOCA9IHByb3h5U3RyLnRvVXRmOCgpOworICAgICAgICAgICAgKnZhbHVlID0gc3RhdGlj
X2Nhc3Q8Y2hhcio+KE5QTl9NZW1BbGxvYyhwcm94eVN0clV0ZjgubGVuZ3RoKCkpKTsKKyAgICAg
ICAgICAgIGlmICgqdmFsdWUpIHsKKyAgICAgICAgICAgICAgICBzdHJuY3B5KCp2YWx1ZSwgcHJv
eHlTdHJVdGY4LmNvbnN0RGF0YSgpLCBwcm94eVN0clV0ZjgubGVuZ3RoKCkpOworICAgICAgICAg
ICAgICAgIGlmIChsZW4pCisgICAgICAgICAgICAgICAgICAgICpsZW4gPSBwcm94eVN0clV0Zjgu
bGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCkKKyAgICAgICAgICAgICAgICAg
ICAgKnJlc3VsdCA9IE5QRVJSX05PX0VSUk9SOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAg
ICAgICAgICAgKnJlc3VsdCA9IE5QRVJSX09VVF9PRl9NRU1PUllfRVJST1I7CisKKyAgICAgICAg
ICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIGZhbHNlOwor
fQorCitib29sIFBsdWdpblZpZXc6OnBsYXRmb3JtU2V0VmFsdWVGb3JVUkwoTlBOVVJMVmFyaWFi
bGUgdmFyaWFibGUsIGNvbnN0IGNoYXIqIHVybCwgY29uc3QgY2hhciogdmFsdWUsIHVpbnQzMl90
IGxlbiwgTlBFcnJvciogcmVzdWx0KQoreworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBQ
bHVnaW5WaWV3OjpwbGF0Zm9ybUdldEF1dGhlbnRpY2F0aW9uSW5mbyhjb25zdCBjaGFyKiBwcm90
b2NvbCwgY29uc3QgY2hhciogaG9zdCwgaW50MzJfdCBwb3J0LCBjb25zdCBjaGFyKiBzY2hlbWUs
IGNvbnN0IGNoYXIqIHJlYWxtLCBjaGFyKiogdXNlcm5hbWUsIHVpbnQzMl90KiB1bGVuLCBjaGFy
KiogcGFzc3dvcmQsIHVpbnQzMl90KiBwbGVuLCBOUEVycm9yKiByZXN1bHQpCit7CisgICAgcmV0
dXJuIGZhbHNlOworfQorCiB2b2lkIFBsdWdpblZpZXc6OmludmFsaWRhdGVSZWN0KGNvbnN0IElu
dFJlY3QmIHJlY3QpCiB7CiAgICAgaWYgKG1faXNXaW5kb3dlZCkgewpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9wbHVnaW5zL3dpbi9QbHVnaW5WaWV3V2luLmNwcCBiL1dlYkNvcmUvcGx1Z2lucy93aW4v
UGx1Z2luVmlld1dpbi5jcHAKaW5kZXggOGRiYjA0Yi4uYmJhY2I3ZiAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9wbHVnaW5zL3dpbi9QbHVnaW5WaWV3V2luLmNwcAorKysgYi9XZWJDb3JlL3BsdWdpbnMv
d2luL1BsdWdpblZpZXdXaW4uY3BwCkBAIC04NzEsNiArODcxLDIyIEBAIGJvb2wgUGx1Z2luVmll
dzo6cGxhdGZvcm1HZXRWYWx1ZVN0YXRpYyhOUE5WYXJpYWJsZSwgdm9pZCosIE5QRXJyb3IqKQog
ICAgIHJldHVybiBmYWxzZTsKIH0KIAorYm9vbCBQbHVnaW5WaWV3OjpwbGF0Zm9ybUdldFZhbHVl
Rm9yVVJMKE5QTlVSTFZhcmlhYmxlIHZhcmlhYmxlLCBjb25zdCBjaGFyKiB1cmwsIGNoYXIqKiB2
YWx1ZSwgdWludDMyX3QqIGxlbiwgTlBFcnJvciogcmVzdWx0KQoreworICAgIC8vIE5PVEU6IE5Q
TlVSTFZQcm94eSByZXF1aXJlcyBwbGF0Zm9ybSBzcGVjaWZpYyBpbXBsZW1lbnRhdGlvbiA7IG90
aGVyd2lzZSwgTlBfR0VORVJJQ19FUlIgaXMgcmV0dXJuZWQgYnkgZGVmYXVsdC4KKyAgICByZXR1
cm4gZmFsc2U7Cit9CisKK2Jvb2wgUGx1Z2luVmlldzo6cGxhdGZvcm1TZXRWYWx1ZUZvclVSTChO
UE5VUkxWYXJpYWJsZSB2YXJpYWJsZSwgY29uc3QgY2hhciogdXJsLCBjb25zdCBjaGFyKiB2YWx1
ZSwgdWludDMyX3QgbGVuLCBOUEVycm9yKiByZXN1bHQpCit7CisgICAgcmV0dXJuIGZhbHNlOwor
fQorCitib29sIFBsdWdpblZpZXc6OnBsYXRmb3JtR2V0QXV0aGVudGljYXRpb25JbmZvKGNvbnN0
IGNoYXIqIHByb3RvY29sLCBjb25zdCBjaGFyKiBob3N0LCBpbnQzMl90IHBvcnQsIGNvbnN0IGNo
YXIqIHNjaGVtZSwgY29uc3QgY2hhciogcmVhbG0sIGNoYXIqKiB1c2VybmFtZSwgdWludDMyX3Qq
IHVsZW4sIGNoYXIqKiBwYXNzd29yZCwgdWludDMyX3QqIHBsZW4sIE5QRXJyb3IqIHJlc3VsdCkK
K3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIGJvb2wgUGx1Z2luVmlldzo6cGxhdGZvcm1HZXRW
YWx1ZShOUE5WYXJpYWJsZSB2YXJpYWJsZSwgdm9pZCogdmFsdWUsIE5QRXJyb3IqIHJlc3VsdCkK
IHsKICAgICBzd2l0Y2ggKHZhcmlhYmxlKSB7Cg==
</data>
<flag name="review"
          id="55380"
          type_id="1"
          status="-"
          setter="kling"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>68348</attachid>
            <date>2010-09-22 01:55:38 -0700</date>
            <delta_ts>2010-09-22 12:04:13 -0700</delta_ts>
            <desc>Implement NPN_GetValueForURL and NPN_SetValueForURL and NPN_GetAuthenticationInfo [Final #2]...</desc>
            <filename>implement_npn_functions_necessary_for_java_applet_support.patch</filename>
            <type>text/plain</type>
            <size>21121</size>
            <attacher name="Dawit A.">adawit</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
YmIyZGJjZC4uOWRmZTQ0ZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0OCBAQAorMjAxMC0wOS0yMiAgRGF3aXQgQWxlbWF5
ZWh1ICA8YWRhd2l0QGtkZS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkKKworICAgICAgICBJbXBsZW1lbnRlZCBOUE5fR2V0VmFsdWVGb3JVUkwgYW5kIE5QTl9TZXRW
YWx1ZUZvclVSTCBhbmQgTlBOX0dldEF1dGhlbnRpY2F0aW9uSW5mby4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM0NTM5CisKKyAgICAgICAgVGhlc2Ug
bWlzc2luZyBOUE4gZnVuY3Rpb25zIGNhdXNlIEphdmEgYXBwbGV0cyB0byBjcmFzaCBpbiBwb3J0
cyBzdWNoCisgICAgICAgIGFzIFF0V2Via2l0IHRoYXQgcmVseSBvbiB3ZWJraXQgZm9yIEphdmEg
YXBwbGV0IHN1cHBvcnQuCisKKyAgICAgICAgKiBwbHVnaW5zL1BsdWdpbkRlYnVnLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OnByZXR0eU5hbWVGb3JOUE5VUkxWYXJpYWJsZSk6CisgICAgICAgICog
cGx1Z2lucy9QbHVnaW5EZWJ1Zy5oOgorICAgICAgICAqIHBsdWdpbnMvUGx1Z2luUGFja2FnZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5QYWNrYWdlOjppbml0aWFsaXplQnJvd3NlckZ1
bmNzKToKKyAgICAgICAgKiBwbHVnaW5zL1BsdWdpblZpZXcuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UGx1Z2luVmlldzo6Z2V0VmFsdWVGb3JVUkwpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2lu
Vmlldzo6c2V0VmFsdWVGb3JVUkwpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6Z2V0
QXV0aGVudGljYXRpb25JbmZvKToKKyAgICAgICAgKiBwbHVnaW5zL1BsdWdpblZpZXcuaDoKKyAg
ICAgICAgKiBwbHVnaW5zL2d0ay9QbHVnaW5WaWV3R3RrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlBsdWdpblZpZXc6OnBsYXRmb3JtR2V0VmFsdWVGb3JVUkwpOgorICAgICAgICAoV2ViQ29yZTo6
UGx1Z2luVmlldzo6cGxhdGZvcm1TZXRWYWx1ZUZvclVSTCk6CisgICAgICAgIChXZWJDb3JlOjpQ
bHVnaW5WaWV3OjpwbGF0Zm9ybUdldEF1dGhlbnRpY2F0aW9uSW5mbyk6CisgICAgICAgICogcGx1
Z2lucy9tYWMvUGx1Z2luVmlld01hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6
OnBsYXRmb3JtR2V0VmFsdWVGb3JVUkwpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6
cGxhdGZvcm1TZXRWYWx1ZUZvclVSTCk6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3Ojpw
bGF0Zm9ybUdldEF1dGhlbnRpY2F0aW9uSW5mbyk6CisgICAgICAgICogcGx1Z2lucy9ucGFwaS5j
cHA6CisgICAgICAgIChOUE5fR2V0VmFsdWVGb3JVUkwpOgorICAgICAgICAoTlBOX1NldFZhbHVl
Rm9yVVJMKToKKyAgICAgICAgKE5QTl9HZXRBdXRoZW50aWNhdGlvbkluZm8pOgorICAgICAgICAq
IHBsdWdpbnMvcXQvUGx1Z2luVmlld1F0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZp
ZXc6OnBsYXRmb3JtR2V0VmFsdWVGb3JVUkwpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmll
dzo6cGxhdGZvcm1HZXRBdXRoZW50aWNhdGlvbkluZm8pOgorICAgICAgICAoV2ViQ29yZTo6UGx1
Z2luVmlldzo6cGxhdGZvcm1TZXRWYWx1ZUZvclVSTCk6CisgICAgICAgICogcGx1Z2lucy9zeW1i
aWFuL1BsdWdpblZpZXdTeW1iaWFuLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6
OnBsYXRmb3JtR2V0VmFsdWVGb3JVUkwpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6
cGxhdGZvcm1TZXRWYWx1ZUZvclVSTCk6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3Ojpw
bGF0Zm9ybUdldEF1dGhlbnRpY2F0aW9uSW5mbyk6CisgICAgICAgICogcGx1Z2lucy93aW4vUGx1
Z2luVmlld1dpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpwbGF0Zm9ybUdl
dFZhbHVlRm9yVVJMKToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OnBsYXRmb3JtU2V0
VmFsdWVGb3JVUkwpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6cGxhdGZvcm1HZXRB
dXRoZW50aWNhdGlvbkluZm8pOgorCiAyMDEwLTA5LTIyICBBbGVqYW5kcm8gRy4gQ2FzdHJvICA8
YWxleEBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4K
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5EZWJ1Zy5jcHAgYi9XZWJDb3JlL3Bs
dWdpbnMvUGx1Z2luRGVidWcuY3BwCmluZGV4IGFjZThiMjEuLjhjM2VmY2IgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5EZWJ1Zy5jcHAKKysrIGIvV2ViQ29yZS9wbHVnaW5zL1Bs
dWdpbkRlYnVnLmNwcApAQCAtMTYzLDYgKzE2MywxNCBAQCBDU3RyaW5nIHByZXR0eU5hbWVGb3JO
UFBWYXJpYWJsZShOUFBWYXJpYWJsZSB2YXJpYWJsZSwgdm9pZCogdmFsdWUpCiAgICAgfQogfQog
CitDU3RyaW5nIHByZXR0eU5hbWVGb3JOUE5VUkxWYXJpYWJsZShOUE5VUkxWYXJpYWJsZSB2YXJp
YWJsZSkKK3sKKyAgICBzd2l0Y2ggKHZhcmlhYmxlKSB7CisgICAgY2FzZSBOUE5VUkxWQ29va2ll
OiByZXR1cm4gIk5QTlVSTFZDb29raWUiOworICAgIGNhc2UgTlBOVVJMVlByb3h5OiByZXR1cm4g
Ik5QTlVSTFZQcm94eSI7CisgICAgZGVmYXVsdDogcmV0dXJuICJVbmtub3duIHZhcmlhYmxlIjsK
KyAgICB9Cit9CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyAhTE9HX0RJU0FC
TEVECmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luRGVidWcuaCBiL1dlYkNvcmUv
cGx1Z2lucy9QbHVnaW5EZWJ1Zy5oCmluZGV4IDI1NDg2NGYuLjAxN2U2ODYgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5EZWJ1Zy5oCisrKyBiL1dlYkNvcmUvcGx1Z2lucy9QbHVn
aW5EZWJ1Zy5oCkBAIC00MSw2ICs0MSw3IEBAIGNvbnN0IGNoYXIqIHByZXR0eU5hbWVGb3JOUEVy
cm9yKE5QRXJyb3IgZXJyb3IpOwogCiBDU3RyaW5nIHByZXR0eU5hbWVGb3JOUE5WYXJpYWJsZShO
UE5WYXJpYWJsZSB2YXJpYWJsZSk7CiBDU3RyaW5nIHByZXR0eU5hbWVGb3JOUFBWYXJpYWJsZShO
UFBWYXJpYWJsZSB2YXJpYWJsZSwgdm9pZCogdmFsdWUpOworQ1N0cmluZyBwcmV0dHlOYW1lRm9y
TlBOVVJMVmFyaWFibGUoTlBOVVJMVmFyaWFibGUgdmFyaWFibGUpOwogCiAjaWZkZWYgWFBfTUFD
T1NYCiBjb25zdCBjaGFyKiBwcmV0dHlOYW1lRm9yRHJhd2luZ01vZGVsKE5QRHJhd2luZ01vZGVs
IGRyYXdpbmdNb2RlbCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luUGFja2Fn
ZS5jcHAgYi9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luUGFja2FnZS5jcHAKaW5kZXggOTk0NDVlNy4u
ZGJmY2UxNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblBhY2thZ2UuY3BwCisr
KyBiL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5QYWNrYWdlLmNwcApAQCAtMzI4LDYgKzMyOCw5IEBA
IHZvaWQgUGx1Z2luUGFja2FnZTo6aW5pdGlhbGl6ZUJyb3dzZXJGdW5jcygpCiAgICAgbV9icm93
c2VyRnVuY3Muc2V0ZXhjZXB0aW9uID0gX05QTl9TZXRFeGNlcHRpb247CiAgICAgbV9icm93c2Vy
RnVuY3MuZW51bWVyYXRlID0gX05QTl9FbnVtZXJhdGU7CiAgICAgbV9icm93c2VyRnVuY3MuY29u
c3RydWN0ID0gX05QTl9Db25zdHJ1Y3Q7CisgICAgbV9icm93c2VyRnVuY3MuZ2V0dmFsdWVmb3J1
cmwgPSBOUE5fR2V0VmFsdWVGb3JVUkw7CisgICAgbV9icm93c2VyRnVuY3Muc2V0dmFsdWVmb3J1
cmwgPSBOUE5fU2V0VmFsdWVGb3JVUkw7CisgICAgbV9icm93c2VyRnVuY3MuZ2V0YXV0aGVudGlj
YXRpb25pbmZvID0gTlBOX0dldEF1dGhlbnRpY2F0aW9uSW5mbzsKIH0KICNlbmRpZgogCmRpZmYg
LS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5jcHAgYi9XZWJDb3JlL3BsdWdpbnMv
UGx1Z2luVmlldy5jcHAKaW5kZXggYjBiYjdjYy4uNWIyNjJjYiAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9wbHVnaW5zL1BsdWdpblZpZXcuY3BwCisrKyBiL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3
LmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkJyaWRnZS5oIgogI2VuZGlmCiAjaW5j
bHVkZSAiQ2hyb21lLmgiCisjaW5jbHVkZSAiQ29va2llSmFyLmgiCiAjaW5jbHVkZSAiRG9jdW1l
bnQuaCIKICNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIK
QEAgLTEzOTIsNiArMTM5Myw5MCBAQCBOUEVycm9yIFBsdWdpblZpZXc6OmdldFZhbHVlKE5QTlZh
cmlhYmxlIHZhcmlhYmxlLCB2b2lkKiB2YWx1ZSkKICAgICAgICAgcmV0dXJuIE5QRVJSX0dFTkVS
SUNfRVJST1I7CiAgICAgfQogfQorCitOUEVycm9yIFBsdWdpblZpZXc6OmdldFZhbHVlRm9yVVJM
KE5QTlVSTFZhcmlhYmxlIHZhcmlhYmxlLCBjb25zdCBjaGFyKiB1cmwsIGNoYXIqKiB2YWx1ZSwg
dWludDMyX3QqIGxlbikKK3sKKyAgICBMT0coUGx1Z2lucywgIlBsdWdpblZpZXc6OmdldFZhbHVl
Rm9yVVJMKCVzKSIsIHByZXR0eU5hbWVGb3JOUE5VUkxWYXJpYWJsZSh2YXJpYWJsZSkuZGF0YSgp
KTsKKworICAgIE5QRXJyb3IgcmVzdWx0ID0gTlBFUlJfTk9fRVJST1I7CisgICAgaWYgKHBsYXRm
b3JtR2V0VmFsdWVGb3JVUkwodmFyaWFibGUsIHVybCwgdmFsdWUsIGxlbiwgJnJlc3VsdCkpCisg
ICAgICAgIHJldHVybiByZXN1bHQ7CisKKyAgICBzd2l0Y2ggKHZhcmlhYmxlKSB7CisgICAgY2Fz
ZSBOUE5VUkxWQ29va2llOiB7CisgICAgICAgIEtVUkwgdShtX2Jhc2VVUkwsIHVybCk7CisgICAg
ICAgIGlmICh1LmlzVmFsaWQoKSkgeworICAgICAgICAgICAgY29uc3QgQ1N0cmluZyBjb29raWVT
dHIgPSBjb29raWVzKG1fcGFyZW50RnJhbWUtPmRvY3VtZW50KCksIHUpLnV0ZjgoKTsKKyAgICAg
ICAgICAgIGNvbnN0IGludCBzaXplID0gY29va2llU3RyLmxlbmd0aCgpOworICAgICAgICAgICAg
aWYgKCFjb29raWVTdHIuaXNOdWxsKCkpIHsKKyAgICAgICAgICAgICAgICAqdmFsdWUgPSBzdGF0
aWNfY2FzdDxjaGFyKj4oTlBOX01lbUFsbG9jKHNpemUrMSkpOworICAgICAgICAgICAgICAgIGlm
ICgqdmFsdWUpIHsKKyAgICAgICAgICAgICAgICAgICAgbWVtc2V0KCp2YWx1ZSwgMCwgc2l6ZSsx
KTsKKyAgICAgICAgICAgICAgICAgICAgbWVtY3B5KCp2YWx1ZSwgY29va2llU3RyLmRhdGEoKSwg
c2l6ZSsxKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGxlbikKKyAgICAgICAgICAgICAgICAg
ICAgICAgICpsZW4gPSBzaXplOworICAgICAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAg
ICAgICAgICByZXN1bHQgPSBOUEVSUl9PVVRfT0ZfTUVNT1JZX0VSUk9SOworICAgICAgICAgICAg
fQorICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIHJlc3VsdCA9IE5QRVJSX0lOVkFMSURfVVJM
OworICAgICAgICBicmVhazsKKyAgICB9CisgICAgY2FzZSBOUE5VUkxWUHJveHk6CisgICAgICAg
IHJlc3VsdCA9IE5QRVJSX0dFTkVSSUNfRVJST1I7CisgICAgICAgIExPRyhQbHVnaW5zLCAiUGx1
Z2luVmlldzo6Z2V0VmFsdWVGb3JVUkwoJXMpOiBOZWVkIHRvIGltcGxlbWVudCBQbHVnaW5WaWV3
OjpwbGF0Zm9ybUdldFZhbHVlRm9yVVJMISIsIHByZXR0eU5hbWVGb3JOUE5VUkxWYXJpYWJsZSh2
YXJpYWJsZSkuZGF0YSgpKTsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAg
cmVzdWx0ID0gTlBFUlJfR0VORVJJQ19FUlJPUjsKKyAgICAgICAgTE9HKFBsdWdpbnMsICJQbHVn
aW5WaWV3OjpnZXRWYWx1ZUZvclVSTDogJXMiLCBwcmV0dHlOYW1lRm9yTlBOVVJMVmFyaWFibGUo
dmFyaWFibGUpLmRhdGEoKSk7CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CisKKworTlBFcnJvciBQbHVnaW5WaWV3OjpzZXRWYWx1ZUZvclVSTChOUE5VUkxW
YXJpYWJsZSB2YXJpYWJsZSwgY29uc3QgY2hhciogdXJsLCBjb25zdCBjaGFyKiB2YWx1ZSwgdWlu
dDMyX3QgbGVuKQoreworICAgIExPRyhQbHVnaW5zLCAiUGx1Z2luVmlldzo6c2V0VmFsdWVGb3JV
UkwoJXMpIiwgcHJldHR5TmFtZUZvck5QTlVSTFZhcmlhYmxlKHZhcmlhYmxlKS5kYXRhKCkpOwor
CisgICAgTlBFcnJvciByZXN1bHQgPSBOUEVSUl9HRU5FUklDX0VSUk9SOworICAgIGlmIChwbGF0
Zm9ybVNldFZhbHVlRm9yVVJMKHZhcmlhYmxlLCB1cmwsIHZhbHVlLCBsZW4sICZyZXN1bHQpKQor
ICAgICAgICByZXR1cm4gcmVzdWx0OworCisgICAgc3dpdGNoICh2YXJpYWJsZSkgeworICAgIGNh
c2UgTlBOVVJMVkNvb2tpZTogeworICAgICAgICBLVVJMIHUobV9iYXNlVVJMLCB1cmwpOworICAg
ICAgICBpZiAodS5pc1ZhbGlkKCkpIHsKKyAgICAgICAgICAgIFN0cmluZyBjb29raWVTdHIgPSBT
dHJpbmc6OmZyb21VVEY4KHZhbHVlLCBsZW4pOworICAgICAgICAgICAgaWYgKCFjb29raWVTdHIu
aXNFbXB0eSgpKQorICAgICAgICAgICAgICAgIHNldENvb2tpZXMobV9wYXJlbnRGcmFtZS0+ZG9j
dW1lbnQoKSwgdSwgY29va2llU3RyKTsKKyAgICAgICAgICAgIHJlc3VsdCA9IE5QRVJSX05PX0VS
Uk9SOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIHJlc3VsdCA9IE5QRVJSX0lOVkFMSURf
VVJMOworICAgICAgICBicmVhazsKKyAgICB9CisgICAgY2FzZSBOUE5VUkxWUHJveHk6CisgICAg
ICAgIExPRyhQbHVnaW5zLCAiUGx1Z2luVmlldzo6c2V0VmFsdWVGb3JVUkwoJXMpOiBQbHVnaW5z
IGFyZSBOT1QgYWxsb3dlZCB0byBzZXQgcHJveHkgaW5mb3JtYXRpb24uIiwgcHJldHR5TmFtZUZv
ck5QTlVSTFZhcmlhYmxlKHZhcmlhYmxlKS5kYXRhKCkpOworICAgICAgICBicmVhazsKKyAgICBk
ZWZhdWx0OgorICAgICAgICBMT0coUGx1Z2lucywgIlBsdWdpblZpZXc6OnNldFZhbHVlRm9yVVJM
OiAlcyIsIHByZXR0eU5hbWVGb3JOUE5VUkxWYXJpYWJsZSh2YXJpYWJsZSkuZGF0YSgpKTsKKyAg
ICAgICAgYnJlYWs7CisgICAgfQorCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworTlBFcnJvciBQ
bHVnaW5WaWV3OjpnZXRBdXRoZW50aWNhdGlvbkluZm8oY29uc3QgY2hhciogcHJvdG9jb2wsIGNv
bnN0IGNoYXIqIGhvc3QsIGludDMyX3QgcG9ydCwgY29uc3QgY2hhciogc2NoZW1lLCBjb25zdCBj
aGFyKiByZWFsbSwgY2hhcioqIHVzZXJuYW1lLCB1aW50MzJfdCogdWxlbiwgY2hhcioqIHBhc3N3
b3JkLCB1aW50MzJfdCogcGxlbikKK3sKKyAgICBMT0coUGx1Z2lucywgIlBsdWdpblZpZXc6Omdl
dEF1dGhlbnRpY2F0aW9uSW5mbzogcHJvdG9jb2w9JXMsIGhvc3Q9JXMsIHBvcnQ9JWQiLCBwcm90
b2NvbCwgaG9zdCwgcG9ydCk7CisKKyAgICBOUEVycm9yIHJlc3VsdCA9IE5QRVJSX0dFTkVSSUNf
RVJST1I7CisgICAgaWYgKHBsYXRmb3JtR2V0QXV0aGVudGljYXRpb25JbmZvKHByb3RvY29sLCBo
b3N0LCBwb3J0LCBzY2hlbWUsIHJlYWxtLCB1c2VybmFtZSwgdWxlbiwgcGFzc3dvcmQsIHBsZW4s
ICZyZXN1bHQpKQorICAgICAgICByZXR1cm4gcmVzdWx0OworCisgICAgcmV0dXJuIE5QRVJSX0dF
TkVSSUNfRVJST1I7Cit9CiAjZW5kaWYKIAogdm9pZCBQbHVnaW5WaWV3Ojpwcml2YXRlQnJvd3Np
bmdTdGF0ZUNoYW5nZWQoYm9vbCBwcml2YXRlQnJvd3NpbmdFbmFibGVkKQpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcuaCBiL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3
LmgKaW5kZXggODhlYzk1NC4uOTA1NDhlOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbHVnaW5zL1Bs
dWdpblZpZXcuaAorKysgYi9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5oCkBAIC0xNjgsNiAr
MTY4LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBOUEVycm9yIGdldFZhbHVlKE5Q
TlZhcmlhYmxlIHZhcmlhYmxlLCB2b2lkKiB2YWx1ZSk7CiAgICAgICAgIHN0YXRpYyBOUEVycm9y
IGdldFZhbHVlU3RhdGljKE5QTlZhcmlhYmxlIHZhcmlhYmxlLCB2b2lkKiB2YWx1ZSk7CiAgICAg
ICAgIE5QRXJyb3Igc2V0VmFsdWUoTlBQVmFyaWFibGUgdmFyaWFibGUsIHZvaWQqIHZhbHVlKTsK
KyAgICAgICAgTlBFcnJvciBnZXRWYWx1ZUZvclVSTChOUE5VUkxWYXJpYWJsZSB2YXJpYWJsZSwg
Y29uc3QgY2hhciogdXJsLCBjaGFyKiogdmFsdWUsIHVpbnQzMl90KiBsZW4pOworICAgICAgICBO
UEVycm9yIHNldFZhbHVlRm9yVVJMKE5QTlVSTFZhcmlhYmxlIHZhcmlhYmxlLCBjb25zdCBjaGFy
KiB1cmwsIGNvbnN0IGNoYXIqIHZhbHVlLCB1aW50MzJfdCBsZW4pOworICAgICAgICBOUEVycm9y
IGdldEF1dGhlbnRpY2F0aW9uSW5mbyhjb25zdCBjaGFyKiBwcm90b2NvbCwgY29uc3QgY2hhciog
aG9zdCwgaW50MzJfdCBwb3J0LCBjb25zdCBjaGFyKiBzY2hlbWUsIGNvbnN0IGNoYXIqIHJlYWxt
LCBjaGFyKiogdXNlcm5hbWUsIHVpbnQzMl90KiB1bGVuLCBjaGFyKiogcGFzc3dvcmQsIHVpbnQz
Ml90KiBwbGVuKTsKICAgICAgICAgdm9pZCBpbnZhbGlkYXRlUmVjdChOUFJlY3QqKTsKICAgICAg
ICAgdm9pZCBpbnZhbGlkYXRlUmVnaW9uKE5QUmVnaW9uKTsKICNlbmRpZgpAQCAtMjc1LDYgKzI3
OCw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQ
SSkKICAgICAgICAgc3RhdGljIGJvb2wgcGxhdGZvcm1HZXRWYWx1ZVN0YXRpYyhOUE5WYXJpYWJs
ZSB2YXJpYWJsZSwgdm9pZCogdmFsdWUsIE5QRXJyb3IqIHJlc3VsdCk7CiAgICAgICAgIGJvb2wg
cGxhdGZvcm1HZXRWYWx1ZShOUE5WYXJpYWJsZSB2YXJpYWJsZSwgdm9pZCogdmFsdWUsIE5QRXJy
b3IqIHJlc3VsdCk7CisgICAgICAgIGJvb2wgcGxhdGZvcm1HZXRWYWx1ZUZvclVSTChOUE5VUkxW
YXJpYWJsZSB2YXJpYWJsZSwgY29uc3QgY2hhciogdXJsLCBjaGFyKiogdmFsdWUsIHVpbnQzMl90
KiBsZW4sIE5QRXJyb3IqIHJlc3VsdCk7CisgICAgICAgIGJvb2wgcGxhdGZvcm1TZXRWYWx1ZUZv
clVSTChOUE5VUkxWYXJpYWJsZSB2YXJpYWJsZSwgY29uc3QgY2hhciogdXJsLCBjb25zdCBjaGFy
KiB2YWx1ZSwgdWludDMyX3QgbGVuLCBOUEVycm9yKiByZXN1bHQpOworICAgICAgICBib29sIHBs
YXRmb3JtR2V0QXV0aGVudGljYXRpb25JbmZvKGNvbnN0IGNoYXIqIHByb3RvY29sLCBjb25zdCBj
aGFyKiBob3N0LCBpbnQzMl90IHBvcnQsIGNvbnN0IGNoYXIqIHNjaGVtZSwgY29uc3QgY2hhciog
cmVhbG0sIGNoYXIqKiB1c2VybmFtZSwgdWludDMyX3QqIHVsZW4sIGNoYXIqKiBwYXNzd29yZCwg
dWludDMyX3QqIHBsZW4sIE5QRXJyb3IqIHJlc3VsdCk7CiAjZW5kaWYKIAogICAgICAgICBSZWZQ
dHI8RnJhbWU+IG1fcGFyZW50RnJhbWU7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvZ3Rr
L1BsdWdpblZpZXdHdGsuY3BwIGIvV2ViQ29yZS9wbHVnaW5zL2d0ay9QbHVnaW5WaWV3R3RrLmNw
cAppbmRleCBiZWU3ODIxLi41MzkyZGI1IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsdWdpbnMvZ3Rr
L1BsdWdpblZpZXdHdGsuY3BwCisrKyBiL1dlYkNvcmUvcGx1Z2lucy9ndGsvUGx1Z2luVmlld0d0
ay5jcHAKQEAgLTY3Nyw2ICs2NzcsMjIgQEAgYm9vbCBQbHVnaW5WaWV3OjpwbGF0Zm9ybUdldFZh
bHVlKE5QTlZhcmlhYmxlIHZhcmlhYmxlLCB2b2lkKiB2YWx1ZSwgTlBFcnJvciogcmUKICAgICB9
CiB9CiAKK2Jvb2wgUGx1Z2luVmlldzo6cGxhdGZvcm1HZXRWYWx1ZUZvclVSTChOUE5VUkxWYXJp
YWJsZSB2YXJpYWJsZSwgY29uc3QgY2hhciogdXJsLCBjaGFyKiogdmFsdWUsIHVpbnQzMl90KiBs
ZW4sIE5QRXJyb3IqIHJlc3VsdCkKK3sKKyAgICAvLyBOT1RFOiBOUE5VUkxWUHJveHkgcmVxdWly
ZXMgcGxhdGZvcm0gc3BlY2lmaWMgaW1wbGVtZW50YXRpb24gOyBvdGhlcndpc2UsIE5QX0dFTkVS
SUNfRVJSIGlzIHJldHVybmVkIGJ5IGRlZmF1bHQuCisgICAgcmV0dXJuIGZhbHNlOworfQorCiti
b29sIFBsdWdpblZpZXc6OnBsYXRmb3JtU2V0VmFsdWVGb3JVUkwoTlBOVVJMVmFyaWFibGUgdmFy
aWFibGUsIGNvbnN0IGNoYXIqIHVybCwgY29uc3QgY2hhciogdmFsdWUsIHVpbnQzMl90IGxlbiwg
TlBFcnJvciogcmVzdWx0KQoreworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBQbHVnaW5W
aWV3OjpwbGF0Zm9ybUdldEF1dGhlbnRpY2F0aW9uSW5mbyhjb25zdCBjaGFyKiBwcm90b2NvbCwg
Y29uc3QgY2hhciogaG9zdCwgaW50MzJfdCBwb3J0LCBjb25zdCBjaGFyKiBzY2hlbWUsIGNvbnN0
IGNoYXIqIHJlYWxtLCBjaGFyKiogdXNlcm5hbWUsIHVpbnQzMl90KiB1bGVuLCBjaGFyKiogcGFz
c3dvcmQsIHVpbnQzMl90KiBwbGVuLCBOUEVycm9yKiByZXN1bHQpCit7CisgICAgcmV0dXJuIGZh
bHNlOworfQorCiB2b2lkIFBsdWdpblZpZXc6OmludmFsaWRhdGVSZWN0KGNvbnN0IEludFJlY3Qm
IHJlY3QpCiB7CiAgICAgaWYgKG1faXNXaW5kb3dlZCkgewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9w
bHVnaW5zL21hYy9QbHVnaW5WaWV3TWFjLm1tIGIvV2ViQ29yZS9wbHVnaW5zL21hYy9QbHVnaW5W
aWV3TWFjLm1tCmluZGV4IGUwYWQxMzUuLjUxMjlhYzIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGx1
Z2lucy9tYWMvUGx1Z2luVmlld01hYy5tbQorKysgYi9XZWJDb3JlL3BsdWdpbnMvbWFjL1BsdWdp
blZpZXdNYWMubW0KQEAgLTMwOCw2ICszMDgsMjIgQEAgYm9vbCBQbHVnaW5WaWV3OjpwbGF0Zm9y
bUdldFZhbHVlKE5QTlZhcmlhYmxlIHZhcmlhYmxlLCB2b2lkKiB2YWx1ZSwgTlBFcnJvciogZXIK
ICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK2Jvb2wgUGx1Z2luVmlldzo6cGxhdGZvcm1HZXRWYWx1
ZUZvclVSTChOUE5VUkxWYXJpYWJsZSB2YXJpYWJsZSwgY29uc3QgY2hhciogdXJsLCBjaGFyKiog
dmFsdWUsIHVpbnQzMl90KiBsZW4sIE5QRXJyb3IqIHJlc3VsdCkKK3sKKyAgICAvLyBOT1RFOiBO
UE5VUkxWUHJveHkgcmVxdWlyZXMgcGxhdGZvcm0gc3BlY2lmaWMgaW1wbGVtZW50YXRpb24gOyBv
dGhlcndpc2UsIE5QX0dFTkVSSUNfRVJSIGlzIHJldHVybmVkIGJ5IGRlZmF1bHQuCisgICAgcmV0
dXJuIGZhbHNlOworfQorCitib29sIFBsdWdpblZpZXc6OnBsYXRmb3JtU2V0VmFsdWVGb3JVUkwo
TlBOVVJMVmFyaWFibGUgdmFyaWFibGUsIGNvbnN0IGNoYXIqIHVybCwgY29uc3QgY2hhciogdmFs
dWUsIHVpbnQzMl90IGxlbiwgTlBFcnJvciogcmVzdWx0KQoreworICAgIHJldHVybiBmYWxzZTsK
K30KKworYm9vbCBQbHVnaW5WaWV3OjpwbGF0Zm9ybUdldEF1dGhlbnRpY2F0aW9uSW5mbyhjb25z
dCBjaGFyKiBwcm90b2NvbCwgY29uc3QgY2hhciogaG9zdCwgaW50MzJfdCBwb3J0LCBjb25zdCBj
aGFyKiBzY2hlbWUsIGNvbnN0IGNoYXIqIHJlYWxtLCBjaGFyKiogdXNlcm5hbWUsIHVpbnQzMl90
KiB1bGVuLCBjaGFyKiogcGFzc3dvcmQsIHVpbnQzMl90KiBwbGVuLCBOUEVycm9yKiByZXN1bHQp
Cit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCiB2b2lkIFBsdWdpblZpZXc6OnNldFBhcmVudChT
Y3JvbGxWaWV3KiBwYXJlbnQpCiB7CiAgICAgTE9HKFBsdWdpbnMsICJQbHVnaW5WaWV3OjpzZXRQ
YXJlbnQoJXApIiwgcGFyZW50KTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGx1Z2lucy9ucGFwaS5j
cHAgYi9XZWJDb3JlL3BsdWdpbnMvbnBhcGkuY3BwCmluZGV4IGQwZGI4NDUuLmIyNzIxZmIgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvcGx1Z2lucy9ucGFwaS5jcHAKKysrIGIvV2ViQ29yZS9wbHVnaW5z
L25wYXBpLmNwcApAQCAtMTc1LDMgKzE3NSwxOCBAQCB2b2lkIE5QTl9QbHVnaW5UaHJlYWRBc3lu
Y0NhbGwoTlBQIGluc3RhbmNlLCB2b2lkICgqZnVuYykgKHZvaWQgKiksIHZvaWQgKnVzZXJEYQog
ewogICAgIFBsdWdpbk1haW5UaHJlYWRTY2hlZHVsZXI6OnNjaGVkdWxlcigpLnNjaGVkdWxlQ2Fs
bChpbnN0YW5jZSwgZnVuYywgdXNlckRhdGEpOwogfQorCitOUEVycm9yIE5QTl9HZXRWYWx1ZUZv
clVSTChOUFAgaW5zdGFuY2UsIE5QTlVSTFZhcmlhYmxlIHZhcmlhYmxlLCBjb25zdCBjaGFyKiB1
cmwsIGNoYXIqKiB2YWx1ZSwgdWludDMyX3QqIGxlbikKK3sKKyAgICByZXR1cm4gcGx1Z2luVmll
d0Zvckluc3RhbmNlKGluc3RhbmNlKS0+Z2V0VmFsdWVGb3JVUkwodmFyaWFibGUsIHVybCwgdmFs
dWUsIGxlbik7Cit9CisKK05QRXJyb3IgTlBOX1NldFZhbHVlRm9yVVJMKE5QUCBpbnN0YW5jZSwg
TlBOVVJMVmFyaWFibGUgdmFyaWFibGUsIGNvbnN0IGNoYXIqIHVybCwgY29uc3QgY2hhciogdmFs
dWUsIHVpbnQzMl90IGxlbikKK3sKKyAgICByZXR1cm4gcGx1Z2luVmlld0Zvckluc3RhbmNlKGlu
c3RhbmNlKS0+c2V0VmFsdWVGb3JVUkwodmFyaWFibGUsIHVybCwgdmFsdWUsIGxlbik7Cit9CisK
K05QRXJyb3IgTlBOX0dldEF1dGhlbnRpY2F0aW9uSW5mbyhOUFAgaW5zdGFuY2UsIGNvbnN0IGNo
YXIqIHByb3RvY29sLCBjb25zdCBjaGFyKiBob3N0LCBpbnQzMl90IHBvcnQsIGNvbnN0IGNoYXIq
IHNjaGVtZSwgY29uc3QgY2hhciogcmVhbG0sIGNoYXIqKiB1c2VybmFtZSwgdWludDMyX3QqIHVs
ZW4sIGNoYXIqKiBwYXNzd29yZCwgdWludDMyX3QqIHBsZW4pCit7CisgICAgcmV0dXJuIHBsdWdp
blZpZXdGb3JJbnN0YW5jZShpbnN0YW5jZSktPmdldEF1dGhlbnRpY2F0aW9uSW5mbyhwcm90b2Nv
bCwgaG9zdCwgcG9ydCwgc2NoZW1lLCByZWFsbSwgdXNlcm5hbWUsIHVsZW4sIHBhc3N3b3JkLCBw
bGVuKTsKK30KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGx1Z2lucy9xdC9QbHVnaW5WaWV3UXQuY3Bw
IGIvV2ViQ29yZS9wbHVnaW5zL3F0L1BsdWdpblZpZXdRdC5jcHAKaW5kZXggZGU3ZDEyZC4uM2Q1
NGY3ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbHVnaW5zL3F0L1BsdWdpblZpZXdRdC5jcHAKKysr
IGIvV2ViQ29yZS9wbHVnaW5zL3F0L1BsdWdpblZpZXdRdC5jcHAKQEAgLTM5LDYgKzM5LDcgQEAK
ICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZFJlcXVlc3QuaCIKICNpbmNs
dWRlICJGcmFtZUxvYWRlci5oIgorI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50UXQuaCIKICNp
bmNsdWRlICJGcmFtZVRyZWUuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKICNpbmNsdWRlICJH
cmFwaGljc0NvbnRleHQuaCIKQEAgLTcwLDYgKzcxLDggQEAKICNpbmNsdWRlIDxRQXBwbGljYXRp
b24+CiAjaW5jbHVkZSA8UURlc2t0b3BXaWRnZXQ+CiAjaW5jbHVkZSA8UUtleUV2ZW50PgorI2lu
Y2x1ZGUgPFFOZXR3b3JrQWNjZXNzTWFuYWdlcj4KKyNpbmNsdWRlIDxRTmV0d29ya1Byb3h5Pgog
I2luY2x1ZGUgPFFQYWludGVyPgogI2luY2x1ZGUgPFFXaWRnZXQ+CiAjaW5jbHVkZSA8UVgxMUlu
Zm8+CkBAIC03NDIsNiArNzQ1LDg0IEBAIGJvb2wgUGx1Z2luVmlldzo6cGxhdGZvcm1HZXRWYWx1
ZShOUE5WYXJpYWJsZSB2YXJpYWJsZSwgdm9pZCogdmFsdWUsIE5QRXJyb3IqIHJlCiAgICAgfQog
fQogCitzdGF0aWMgdm9pZCBhcHBlbmRQcm94eURhdGEoY29uc3QgUU5ldHdvcmtQcm94eSYgcHJv
eHksIFFTdHJpbmcmIHByb3h5U3RyKQoreworICAgIHByb3h5U3RyICs9IHByb3h5Lmhvc3ROYW1l
KCk7CisKKyAgICBpZiAocHJveHkucG9ydCgpID4gMCkgeworICAgICAgICBwcm94eVN0ciArPSBR
TGF0aW4xQ2hhcignOicpOworICAgICAgICBwcm94eVN0ciArPSBRU3RyaW5nOjpudW1iZXIocHJv
eHkucG9ydCgpKTsKKyAgICB9Cit9CisKK2Jvb2wgUGx1Z2luVmlldzo6cGxhdGZvcm1HZXRWYWx1
ZUZvclVSTChOUE5VUkxWYXJpYWJsZSB2YXJpYWJsZSwgY29uc3QgY2hhciogdXJsLCBjaGFyKiog
dmFsdWUsIHVpbnQzMl90KiBsZW4sIE5QRXJyb3IqIHJlc3VsdCkKK3sKKyAgICBpZiAodmFyaWFi
bGUgPT0gTlBOVVJMVlByb3h5KSB7CisgICAgICAgIEZyYW1lKiBmcmFtZSA9IHBhcmVudEZyYW1l
KCk7CisgICAgICAgIGlmICghZnJhbWUpIHsKKyAgICAgICAgICAgIERvY3VtZW50KiBkb2N1bWVu
dCA9IG1fZWxlbWVudC0+ZG9jdW1lbnQoKTsKKyAgICAgICAgICAgIGlmICghZG9jdW1lbnQpCisg
ICAgICAgICAgICAgICAgZG9jdW1lbnQgPSBtX2VsZW1lbnQtPm93bmVyRG9jdW1lbnQoKTsKKyAg
ICAgICAgICAgIGZyYW1lID0gZG9jdW1lbnQgPyBkb2N1bWVudC0+ZnJhbWUoKSA6IDA7CisgICAg
ICAgIH0KKworICAgICAgICBGcmFtZUxvYWRlckNsaWVudFF0KiBmcmFtZUxvYWRlciA9IGZyYW1l
ID8gc3RhdGljX2Nhc3Q8RnJhbWVMb2FkZXJDbGllbnRRdCo+KGZyYW1lLT5sb2FkZXIoKS0+Y2xp
ZW50KCkpIDogMDsKKyAgICAgICAgUU5ldHdvcmtBY2Nlc3NNYW5hZ2VyKiBtYW5hZ2VyID0gZnJh
bWVMb2FkZXIgPyBmcmFtZUxvYWRlci0+d2ViRnJhbWUoKS0+cGFnZSgpLT5uZXR3b3JrQWNjZXNz
TWFuYWdlcigpIDogMDsKKworICAgICAgICBpZiAobWFuYWdlcikgeworICAgICAgICAgICAgUVN0
cmluZyBwcm94eVN0cjsKKyAgICAgICAgICAgIFFOZXR3b3JrUHJveHkgcHJveHkgPSBtYW5hZ2Vy
LT5wcm94eSgpOworCisgICAgICAgICAgICBzd2l0Y2ggKHByb3h5LnR5cGUoKSkgeworICAgICAg
ICAgICAgY2FzZSBRTmV0d29ya1Byb3h5OjpTb2NrczVQcm94eTogeworICAgICAgICAgICAgICAg
IHByb3h5U3RyID0gUUxhdGluMVN0cmluZygiU09DS1MgIik7CisgICAgICAgICAgICAgICAgYXBw
ZW5kUHJveHlEYXRhKHByb3h5LCBwcm94eVN0cik7CisgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICB9CisgICAgICAgICAgICBjYXNlIFFOZXR3b3JrUHJveHk6Okh0dHBQcm94eToK
KyAgICAgICAgICAgIGNhc2UgUU5ldHdvcmtQcm94eTo6SHR0cENhY2hpbmdQcm94eToKKyAgICAg
ICAgICAgIGNhc2UgUU5ldHdvcmtQcm94eTo6RnRwQ2FjaGluZ1Byb3h5OiB7CisgICAgICAgICAg
ICAgICAgcHJveHlTdHIgPSBRTGF0aW4xU3RyaW5nKCJQUk9YWSAiKTsKKyAgICAgICAgICAgICAg
ICBhcHBlbmRQcm94eURhdGEocHJveHksIHByb3h5U3RyKTsKKyAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhc2UgUU5ldHdvcmtQcm94eTo6RGVmYXVs
dFByb3h5OgorICAgICAgICAgICAgY2FzZSBRTmV0d29ya1Byb3h5OjpOb1Byb3h5OgorICAgICAg
ICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBwcm94eVN0ciA9IFFMYXRpbjFTdHJpbmco
IkRJUkVDVCIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorCisgICAg
ICAgICAgICBjb25zdCBRQnl0ZUFycmF5IHByb3h5U3RyVXRmOCA9IHByb3h5U3RyLnRvVXRmOCgp
OworICAgICAgICAgICAgY29uc3QgaW50IHNpemUgPSBwcm94eVN0clV0ZjgubGVuZ3RoKCk7Cisg
ICAgICAgICAgICAqdmFsdWUgPSBzdGF0aWNfY2FzdDxjaGFyKj4oTlBOX01lbUFsbG9jKHNpemUr
MSkpOworICAgICAgICAgICAgaWYgKCp2YWx1ZSkgeworICAgICAgICAgICAgICAgIG1lbXNldCgq
dmFsdWUsIDAsIHNpemUrMSk7CisgICAgICAgICAgICAgICAgbWVtY3B5KCp2YWx1ZSwgcHJveHlT
dHJVdGY4LmNvbnN0RGF0YSgpLCBzaXplKzEpOworICAgICAgICAgICAgICAgIGlmIChsZW4pCisg
ICAgICAgICAgICAgICAgICAgICpsZW4gPSBzaXplOworICAgICAgICAgICAgICAgIGlmIChyZXN1
bHQpCisgICAgICAgICAgICAgICAgICAgICpyZXN1bHQgPSBOUEVSUl9OT19FUlJPUjsKKyAgICAg
ICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgICpyZXN1bHQgPSBOUEVSUl9PVVRfT0ZfTUVN
T1JZX0VSUk9SOworCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgIH0K
KworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBQbHVnaW5WaWV3OjpwbGF0Zm9ybUdldEF1
dGhlbnRpY2F0aW9uSW5mbyhjb25zdCBjaGFyKiBwcm90b2NvbCwgY29uc3QgY2hhciogaG9zdCwg
aW50MzJfdCBwb3J0LCBjb25zdCBjaGFyKiBzY2hlbWUsIGNvbnN0IGNoYXIqIHJlYWxtLCBjaGFy
KiogdXNlcm5hbWUsIHVpbnQzMl90KiB1bGVuLCBjaGFyKiogcGFzc3dvcmQsIHVpbnQzMl90KiBw
bGVuLCBOUEVycm9yKiByZXN1bHQpCit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIFBs
dWdpblZpZXc6OnBsYXRmb3JtU2V0VmFsdWVGb3JVUkwoTlBOVVJMVmFyaWFibGUgdmFyaWFibGUs
IGNvbnN0IGNoYXIqIHVybCwgY29uc3QgY2hhciogdmFsdWUsIHVpbnQzMl90IGxlbiwgTlBFcnJv
ciogcmVzdWx0KQoreworICAgIHJldHVybiBmYWxzZTsKK30KKwogdm9pZCBQbHVnaW5WaWV3Ojpp
bnZhbGlkYXRlUmVjdChjb25zdCBJbnRSZWN0JiByZWN0KQogewogICAgIGlmIChtX2lzV2luZG93
ZWQpIHsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGx1Z2lucy9zeW1iaWFuL1BsdWdpblZpZXdTeW1i
aWFuLmNwcCBiL1dlYkNvcmUvcGx1Z2lucy9zeW1iaWFuL1BsdWdpblZpZXdTeW1iaWFuLmNwcApp
bmRleCBiOWY4MmFkLi43NTg4Mjc2IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsdWdpbnMvc3ltYmlh
bi9QbHVnaW5WaWV3U3ltYmlhbi5jcHAKKysrIGIvV2ViQ29yZS9wbHVnaW5zL3N5bWJpYW4vUGx1
Z2luVmlld1N5bWJpYW4uY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiRm9jdXNDb250
cm9sbGVyLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRSZXF1ZXN0
LmgiCisjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnRRdC5oIgogI2luY2x1ZGUgIkZyYW1lTG9h
ZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWVUcmVlLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCkBA
IC01Niw2ICs1Nyw4IEBACiAjaW5jbHVkZSAicnVudGltZV9yb290LmgiCiAjaW5jbHVkZSA8UUdy
YXBoaWNzUHJveHlXaWRnZXQ+CiAjaW5jbHVkZSA8UUtleUV2ZW50PgorI2luY2x1ZGUgPFFOZXR3
b3JrQWNjZXNzTWFuYWdlcj4KKyNpbmNsdWRlIDxRTmV0d29ya1Byb3h5PgogI2luY2x1ZGUgPFFQ
aXhtYXA+CiAjaW5jbHVkZSA8UVJlZ2lvbj4KICNpbmNsdWRlIDxRVmVjdG9yPgpAQCAtMzM4LDYg
KzM0MSw4NCBAQCBib29sIFBsdWdpblZpZXc6OnBsYXRmb3JtR2V0VmFsdWUoTlBOVmFyaWFibGUs
IHZvaWQqLCBOUEVycm9yKikKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK3N0YXRpYyB2b2lkIGFw
cGVuZFByb3h5RGF0YShjb25zdCBRTmV0d29ya1Byb3h5JiBwcm94eSwgUVN0cmluZyYgcHJveHlT
dHIpCit7CisgICAgcHJveHlTdHIgKz0gcHJveHkuaG9zdE5hbWUoKTsKKworICAgIGlmIChwcm94
eS5wb3J0KCkgPiAwKSB7CisgICAgICAgIHByb3h5U3RyICs9IFFMYXRpbjFDaGFyKCc6Jyk7Cisg
ICAgICAgIHByb3h5U3RyICs9IFFTdHJpbmc6Om51bWJlcihwcm94eS5wb3J0KCkpOworICAgIH0K
K30KKworYm9vbCBQbHVnaW5WaWV3OjpwbGF0Zm9ybUdldFZhbHVlRm9yVVJMKE5QTlVSTFZhcmlh
YmxlIHZhcmlhYmxlLCBjb25zdCBjaGFyKiB1cmwsIGNoYXIqKiB2YWx1ZSwgdWludDMyX3QqIGxl
biwgTlBFcnJvciogcmVzdWx0KQoreworICAgIGlmICh2YXJpYWJsZSA9PSBOUE5VUkxWUHJveHkp
IHsKKyAgICAgICAgRnJhbWUqIGZyYW1lID0gcGFyZW50RnJhbWUoKTsKKyAgICAgICAgaWYgKCFm
cmFtZSkgeworICAgICAgICAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gbV9lbGVtZW50LT5kb2N1
bWVudCgpOworICAgICAgICAgICAgaWYgKCFkb2N1bWVudCkKKyAgICAgICAgICAgICAgICBkb2N1
bWVudCA9IG1fZWxlbWVudC0+b3duZXJEb2N1bWVudCgpOworICAgICAgICAgICAgZnJhbWUgPSBk
b2N1bWVudCA/IGRvY3VtZW50LT5mcmFtZSgpIDogMDsKKyAgICAgICAgfQorCisgICAgICAgIEZy
YW1lTG9hZGVyQ2xpZW50UXQqIGZyYW1lTG9hZGVyID0gZnJhbWUgPyBzdGF0aWNfY2FzdDxGcmFt
ZUxvYWRlckNsaWVudFF0Kj4oZnJhbWUtPmxvYWRlcigpLT5jbGllbnQoKSkgOiAwOworICAgICAg
ICBRTmV0d29ya0FjY2Vzc01hbmFnZXIqIG1hbmFnZXIgPSBmcmFtZUxvYWRlciA/IGZyYW1lTG9h
ZGVyLT53ZWJGcmFtZSgpLT5wYWdlKCktPm5ldHdvcmtBY2Nlc3NNYW5hZ2VyKCkgOiAwOworCisg
ICAgICAgIGlmIChtYW5hZ2VyKSB7CisgICAgICAgICAgICBRU3RyaW5nIHByb3h5U3RyOworICAg
ICAgICAgICAgUU5ldHdvcmtQcm94eSBwcm94eSA9IG1hbmFnZXItPnByb3h5KCk7CisKKyAgICAg
ICAgICAgIHN3aXRjaCAocHJveHkudHlwZSgpKSB7CisgICAgICAgICAgICBjYXNlIFFOZXR3b3Jr
UHJveHk6OlNvY2tzNVByb3h5OiB7CisgICAgICAgICAgICAgICAgcHJveHlTdHIgPSBRTGF0aW4x
U3RyaW5nKCJTT0NLUyAiKTsKKyAgICAgICAgICAgICAgICBhcHBlbmRQcm94eURhdGEocHJveHks
IHByb3h5U3RyKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIGNhc2UgUU5ldHdvcmtQcm94eTo6SHR0cFByb3h5OgorICAgICAgICAgICAgY2FzZSBR
TmV0d29ya1Byb3h5OjpIdHRwQ2FjaGluZ1Byb3h5OgorICAgICAgICAgICAgY2FzZSBRTmV0d29y
a1Byb3h5OjpGdHBDYWNoaW5nUHJveHk6IHsKKyAgICAgICAgICAgICAgICBwcm94eVN0ciA9IFFM
YXRpbjFTdHJpbmcoIlBST1hZICIpOworICAgICAgICAgICAgICAgIGFwcGVuZFByb3h5RGF0YShw
cm94eSwgcHJveHlTdHIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQor
ICAgICAgICAgICAgY2FzZSBRTmV0d29ya1Byb3h5OjpEZWZhdWx0UHJveHk6CisgICAgICAgICAg
ICBjYXNlIFFOZXR3b3JrUHJveHk6Ok5vUHJveHk6CisgICAgICAgICAgICBkZWZhdWx0OgorICAg
ICAgICAgICAgICAgIHByb3h5U3RyID0gUUxhdGluMVN0cmluZygiRElSRUNUIik7CisgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGNvbnN0IFFCeXRl
QXJyYXkgcHJveHlTdHJVdGY4ID0gcHJveHlTdHIudG9VdGY4KCk7CisgICAgICAgICAgICBjb25z
dCBpbnQgc2l6ZSA9IHByb3h5U3RyVXRmOC5sZW5ndGgoKTsKKyAgICAgICAgICAgICp2YWx1ZSA9
IHN0YXRpY19jYXN0PGNoYXIqPihOUE5fTWVtQWxsb2Moc2l6ZSsxKSk7CisgICAgICAgICAgICBp
ZiAoKnZhbHVlKSB7CisgICAgICAgICAgICAgICAgbWVtc2V0KCp2YWx1ZSwgMCwgc2l6ZSsxKTsK
KyAgICAgICAgICAgICAgICBtZW1jcHkoKnZhbHVlLCBwcm94eVN0clV0ZjguY29uc3REYXRhKCks
IHNpemUrMSk7CisgICAgICAgICAgICAgICAgaWYgKGxlbikKKyAgICAgICAgICAgICAgICAgICAg
KmxlbiA9IHNpemU7CisgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCkKKyAgICAgICAgICAgICAg
ICAgICAgKnJlc3VsdCA9IE5QRVJSX05PX0VSUk9SOworICAgICAgICAgICAgfSBlbHNlCisgICAg
ICAgICAgICAgICAgKnJlc3VsdCA9IE5QRVJSX09VVF9PRl9NRU1PUllfRVJST1I7CisKKyAgICAg
ICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIGZhbHNl
OworfQorCitib29sIFBsdWdpblZpZXc6OnBsYXRmb3JtU2V0VmFsdWVGb3JVUkwoTlBOVVJMVmFy
aWFibGUgdmFyaWFibGUsIGNvbnN0IGNoYXIqIHVybCwgY29uc3QgY2hhciogdmFsdWUsIHVpbnQz
Ml90IGxlbiwgTlBFcnJvciogcmVzdWx0KQoreworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9v
bCBQbHVnaW5WaWV3OjpwbGF0Zm9ybUdldEF1dGhlbnRpY2F0aW9uSW5mbyhjb25zdCBjaGFyKiBw
cm90b2NvbCwgY29uc3QgY2hhciogaG9zdCwgaW50MzJfdCBwb3J0LCBjb25zdCBjaGFyKiBzY2hl
bWUsIGNvbnN0IGNoYXIqIHJlYWxtLCBjaGFyKiogdXNlcm5hbWUsIHVpbnQzMl90KiB1bGVuLCBj
aGFyKiogcGFzc3dvcmQsIHVpbnQzMl90KiBwbGVuLCBOUEVycm9yKiByZXN1bHQpCit7CisgICAg
cmV0dXJuIGZhbHNlOworfQorCiB2b2lkIFBsdWdpblZpZXc6OmludmFsaWRhdGVSZWN0KGNvbnN0
IEludFJlY3QmIHJlY3QpCiB7CiAgICAgaWYgKG1faXNXaW5kb3dlZCkgewpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9wbHVnaW5zL3dpbi9QbHVnaW5WaWV3V2luLmNwcCBiL1dlYkNvcmUvcGx1Z2lucy93
aW4vUGx1Z2luVmlld1dpbi5jcHAKaW5kZXggNzU4ZDkwYS4uYjQ4MmRkMSAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9wbHVnaW5zL3dpbi9QbHVnaW5WaWV3V2luLmNwcAorKysgYi9XZWJDb3JlL3BsdWdp
bnMvd2luL1BsdWdpblZpZXdXaW4uY3BwCkBAIC04NzEsNiArODcxLDIyIEBAIGJvb2wgUGx1Z2lu
Vmlldzo6cGxhdGZvcm1HZXRWYWx1ZVN0YXRpYyhOUE5WYXJpYWJsZSwgdm9pZCosIE5QRXJyb3Iq
KQogICAgIHJldHVybiBmYWxzZTsKIH0KIAorYm9vbCBQbHVnaW5WaWV3OjpwbGF0Zm9ybUdldFZh
bHVlRm9yVVJMKE5QTlVSTFZhcmlhYmxlIHZhcmlhYmxlLCBjb25zdCBjaGFyKiB1cmwsIGNoYXIq
KiB2YWx1ZSwgdWludDMyX3QqIGxlbiwgTlBFcnJvciogcmVzdWx0KQoreworICAgIC8vIE5PVEU6
IE5QTlVSTFZQcm94eSByZXF1aXJlcyBwbGF0Zm9ybSBzcGVjaWZpYyBpbXBsZW1lbnRhdGlvbiA7
IG90aGVyd2lzZSwgTlBfR0VORVJJQ19FUlIgaXMgcmV0dXJuZWQgYnkgZGVmYXVsdC4KKyAgICBy
ZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgUGx1Z2luVmlldzo6cGxhdGZvcm1TZXRWYWx1ZUZvclVS
TChOUE5VUkxWYXJpYWJsZSB2YXJpYWJsZSwgY29uc3QgY2hhciogdXJsLCBjb25zdCBjaGFyKiB2
YWx1ZSwgdWludDMyX3QgbGVuLCBOUEVycm9yKiByZXN1bHQpCit7CisgICAgcmV0dXJuIGZhbHNl
OworfQorCitib29sIFBsdWdpblZpZXc6OnBsYXRmb3JtR2V0QXV0aGVudGljYXRpb25JbmZvKGNv
bnN0IGNoYXIqIHByb3RvY29sLCBjb25zdCBjaGFyKiBob3N0LCBpbnQzMl90IHBvcnQsIGNvbnN0
IGNoYXIqIHNjaGVtZSwgY29uc3QgY2hhciogcmVhbG0sIGNoYXIqKiB1c2VybmFtZSwgdWludDMy
X3QqIHVsZW4sIGNoYXIqKiBwYXNzd29yZCwgdWludDMyX3QqIHBsZW4sIE5QRXJyb3IqIHJlc3Vs
dCkKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIGJvb2wgUGx1Z2luVmlldzo6cGxhdGZvcm1H
ZXRWYWx1ZShOUE5WYXJpYWJsZSB2YXJpYWJsZSwgdm9pZCogdmFsdWUsIE5QRXJyb3IqIHJlc3Vs
dCkKIHsKICAgICBzd2l0Y2ggKHZhcmlhYmxlKSB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>68411</attachid>
            <date>2010-09-22 12:04:13 -0700</date>
            <delta_ts>2010-10-02 14:26:13 -0700</delta_ts>
            <desc>Implement NPN_GetValueForURL and NPN_SetValueForURL and NPN_GetAuthenticationInfo [Final #3]...</desc>
            <filename>implement_npn_functions_necessary_for_java_applet_support.patch</filename>
            <type>text/plain</type>
            <size>21183</size>
            <attacher name="Dawit A.">adawit</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZjliYWRhYy4uNWU0NzJlZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0OCBAQAorMjAxMC0wOS0yMiAgRGF3aXQgQWxlbWF5
ZWh1ICA8YWRhd2l0QGtkZS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkKKworICAgICAgICBJbXBsZW1lbnRlZCBOUE5fR2V0VmFsdWVGb3JVUkwgYW5kIE5QTl9TZXRW
YWx1ZUZvclVSTCBhbmQgTlBOX0dldEF1dGhlbnRpY2F0aW9uSW5mby4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM0NTM5CisKKyAgICAgICAgVGhlc2Ug
bWlzc2luZyBOUE4gZnVuY3Rpb25zIGNhdXNlIEphdmEgYXBwbGV0cyB0byBjcmFzaCBpbiBwb3J0
cyBzdWNoCisgICAgICAgIGFzIFF0V2Via2l0IHRoYXQgcmVseSBvbiB3ZWJraXQgZm9yIEphdmEg
YXBwbGV0IHN1cHBvcnQuCisKKyAgICAgICAgKiBwbHVnaW5zL1BsdWdpbkRlYnVnLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OnByZXR0eU5hbWVGb3JOUE5VUkxWYXJpYWJsZSk6CisgICAgICAgICog
cGx1Z2lucy9QbHVnaW5EZWJ1Zy5oOgorICAgICAgICAqIHBsdWdpbnMvUGx1Z2luUGFja2FnZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5QYWNrYWdlOjppbml0aWFsaXplQnJvd3NlckZ1
bmNzKToKKyAgICAgICAgKiBwbHVnaW5zL1BsdWdpblZpZXcuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UGx1Z2luVmlldzo6Z2V0VmFsdWVGb3JVUkwpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2lu
Vmlldzo6c2V0VmFsdWVGb3JVUkwpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6Z2V0
QXV0aGVudGljYXRpb25JbmZvKToKKyAgICAgICAgKiBwbHVnaW5zL1BsdWdpblZpZXcuaDoKKyAg
ICAgICAgKiBwbHVnaW5zL2d0ay9QbHVnaW5WaWV3R3RrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlBsdWdpblZpZXc6OnBsYXRmb3JtR2V0VmFsdWVGb3JVUkwpOgorICAgICAgICAoV2ViQ29yZTo6
UGx1Z2luVmlldzo6cGxhdGZvcm1TZXRWYWx1ZUZvclVSTCk6CisgICAgICAgIChXZWJDb3JlOjpQ
bHVnaW5WaWV3OjpwbGF0Zm9ybUdldEF1dGhlbnRpY2F0aW9uSW5mbyk6CisgICAgICAgICogcGx1
Z2lucy9tYWMvUGx1Z2luVmlld01hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6
OnBsYXRmb3JtR2V0VmFsdWVGb3JVUkwpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6
cGxhdGZvcm1TZXRWYWx1ZUZvclVSTCk6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3Ojpw
bGF0Zm9ybUdldEF1dGhlbnRpY2F0aW9uSW5mbyk6CisgICAgICAgICogcGx1Z2lucy9ucGFwaS5j
cHA6CisgICAgICAgIChOUE5fR2V0VmFsdWVGb3JVUkwpOgorICAgICAgICAoTlBOX1NldFZhbHVl
Rm9yVVJMKToKKyAgICAgICAgKE5QTl9HZXRBdXRoZW50aWNhdGlvbkluZm8pOgorICAgICAgICAq
IHBsdWdpbnMvcXQvUGx1Z2luVmlld1F0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZp
ZXc6OnBsYXRmb3JtR2V0VmFsdWVGb3JVUkwpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmll
dzo6cGxhdGZvcm1HZXRBdXRoZW50aWNhdGlvbkluZm8pOgorICAgICAgICAoV2ViQ29yZTo6UGx1
Z2luVmlldzo6cGxhdGZvcm1TZXRWYWx1ZUZvclVSTCk6CisgICAgICAgICogcGx1Z2lucy9zeW1i
aWFuL1BsdWdpblZpZXdTeW1iaWFuLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6
OnBsYXRmb3JtR2V0VmFsdWVGb3JVUkwpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6
cGxhdGZvcm1TZXRWYWx1ZUZvclVSTCk6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3Ojpw
bGF0Zm9ybUdldEF1dGhlbnRpY2F0aW9uSW5mbyk6CisgICAgICAgICogcGx1Z2lucy93aW4vUGx1
Z2luVmlld1dpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpwbGF0Zm9ybUdl
dFZhbHVlRm9yVVJMKToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OnBsYXRmb3JtU2V0
VmFsdWVGb3JVUkwpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6cGxhdGZvcm1HZXRB
dXRoZW50aWNhdGlvbkluZm8pOgorICAgICAgICAKIDIwMTAtMDktMjIgIFJ5b3N1a2UgTml3YSAg
PHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luRGVidWcuY3BwIGIvV2ViQ29yZS9wbHVn
aW5zL1BsdWdpbkRlYnVnLmNwcAppbmRleCBhY2U4YjIxLi44YzNlZmNiIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL3BsdWdpbnMvUGx1Z2luRGVidWcuY3BwCisrKyBiL1dlYkNvcmUvcGx1Z2lucy9QbHVn
aW5EZWJ1Zy5jcHAKQEAgLTE2Myw2ICsxNjMsMTQgQEAgQ1N0cmluZyBwcmV0dHlOYW1lRm9yTlBQ
VmFyaWFibGUoTlBQVmFyaWFibGUgdmFyaWFibGUsIHZvaWQqIHZhbHVlKQogICAgIH0KIH0KIAor
Q1N0cmluZyBwcmV0dHlOYW1lRm9yTlBOVVJMVmFyaWFibGUoTlBOVVJMVmFyaWFibGUgdmFyaWFi
bGUpCit7CisgICAgc3dpdGNoICh2YXJpYWJsZSkgeworICAgIGNhc2UgTlBOVVJMVkNvb2tpZTog
cmV0dXJuICJOUE5VUkxWQ29va2llIjsKKyAgICBjYXNlIE5QTlVSTFZQcm94eTogcmV0dXJuICJO
UE5VUkxWUHJveHkiOworICAgIGRlZmF1bHQ6IHJldHVybiAiVW5rbm93biB2YXJpYWJsZSI7Cisg
ICAgfQorfQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gIUxPR19ESVNBQkxF
RApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbHVnaW5zL1BsdWdpbkRlYnVnLmggYi9XZWJDb3JlL3Bs
dWdpbnMvUGx1Z2luRGVidWcuaAppbmRleCAyNTQ4NjRmLi4wMTdlNjg2IDEwMDY0NAotLS0gYS9X
ZWJDb3JlL3BsdWdpbnMvUGx1Z2luRGVidWcuaAorKysgYi9XZWJDb3JlL3BsdWdpbnMvUGx1Z2lu
RGVidWcuaApAQCAtNDEsNiArNDEsNyBAQCBjb25zdCBjaGFyKiBwcmV0dHlOYW1lRm9yTlBFcnJv
cihOUEVycm9yIGVycm9yKTsKIAogQ1N0cmluZyBwcmV0dHlOYW1lRm9yTlBOVmFyaWFibGUoTlBO
VmFyaWFibGUgdmFyaWFibGUpOwogQ1N0cmluZyBwcmV0dHlOYW1lRm9yTlBQVmFyaWFibGUoTlBQ
VmFyaWFibGUgdmFyaWFibGUsIHZvaWQqIHZhbHVlKTsKK0NTdHJpbmcgcHJldHR5TmFtZUZvck5Q
TlVSTFZhcmlhYmxlKE5QTlVSTFZhcmlhYmxlIHZhcmlhYmxlKTsKIAogI2lmZGVmIFhQX01BQ09T
WAogY29uc3QgY2hhciogcHJldHR5TmFtZUZvckRyYXdpbmdNb2RlbChOUERyYXdpbmdNb2RlbCBk
cmF3aW5nTW9kZWwpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblBhY2thZ2Uu
Y3BwIGIvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblBhY2thZ2UuY3BwCmluZGV4IDk5NDQ1ZTcuLmRi
ZmNlMTYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5QYWNrYWdlLmNwcAorKysg
Yi9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luUGFja2FnZS5jcHAKQEAgLTMyOCw2ICszMjgsOSBAQCB2
b2lkIFBsdWdpblBhY2thZ2U6OmluaXRpYWxpemVCcm93c2VyRnVuY3MoKQogICAgIG1fYnJvd3Nl
ckZ1bmNzLnNldGV4Y2VwdGlvbiA9IF9OUE5fU2V0RXhjZXB0aW9uOwogICAgIG1fYnJvd3NlckZ1
bmNzLmVudW1lcmF0ZSA9IF9OUE5fRW51bWVyYXRlOwogICAgIG1fYnJvd3NlckZ1bmNzLmNvbnN0
cnVjdCA9IF9OUE5fQ29uc3RydWN0OworICAgIG1fYnJvd3NlckZ1bmNzLmdldHZhbHVlZm9ydXJs
ID0gTlBOX0dldFZhbHVlRm9yVVJMOworICAgIG1fYnJvd3NlckZ1bmNzLnNldHZhbHVlZm9ydXJs
ID0gTlBOX1NldFZhbHVlRm9yVVJMOworICAgIG1fYnJvd3NlckZ1bmNzLmdldGF1dGhlbnRpY2F0
aW9uaW5mbyA9IE5QTl9HZXRBdXRoZW50aWNhdGlvbkluZm87CiB9CiAjZW5kaWYKIApkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcuY3BwIGIvV2ViQ29yZS9wbHVnaW5zL1Bs
dWdpblZpZXcuY3BwCmluZGV4IGIwYmI3Y2MuLjViMjYyY2IgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
cGx1Z2lucy9QbHVnaW5WaWV3LmNwcAorKysgYi9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5j
cHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJCcmlkZ2UuaCIKICNlbmRpZgogI2luY2x1
ZGUgIkNocm9tZS5oIgorI2luY2x1ZGUgIkNvb2tpZUphci5oIgogI2luY2x1ZGUgIkRvY3VtZW50
LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIKICNpbmNsdWRlICJFbGVtZW50LmgiCkBA
IC0xMzkyLDYgKzEzOTMsOTAgQEAgTlBFcnJvciBQbHVnaW5WaWV3OjpnZXRWYWx1ZShOUE5WYXJp
YWJsZSB2YXJpYWJsZSwgdm9pZCogdmFsdWUpCiAgICAgICAgIHJldHVybiBOUEVSUl9HRU5FUklD
X0VSUk9SOwogICAgIH0KIH0KKworTlBFcnJvciBQbHVnaW5WaWV3OjpnZXRWYWx1ZUZvclVSTChO
UE5VUkxWYXJpYWJsZSB2YXJpYWJsZSwgY29uc3QgY2hhciogdXJsLCBjaGFyKiogdmFsdWUsIHVp
bnQzMl90KiBsZW4pCit7CisgICAgTE9HKFBsdWdpbnMsICJQbHVnaW5WaWV3OjpnZXRWYWx1ZUZv
clVSTCglcykiLCBwcmV0dHlOYW1lRm9yTlBOVVJMVmFyaWFibGUodmFyaWFibGUpLmRhdGEoKSk7
CisKKyAgICBOUEVycm9yIHJlc3VsdCA9IE5QRVJSX05PX0VSUk9SOworICAgIGlmIChwbGF0Zm9y
bUdldFZhbHVlRm9yVVJMKHZhcmlhYmxlLCB1cmwsIHZhbHVlLCBsZW4sICZyZXN1bHQpKQorICAg
ICAgICByZXR1cm4gcmVzdWx0OworCisgICAgc3dpdGNoICh2YXJpYWJsZSkgeworICAgIGNhc2Ug
TlBOVVJMVkNvb2tpZTogeworICAgICAgICBLVVJMIHUobV9iYXNlVVJMLCB1cmwpOworICAgICAg
ICBpZiAodS5pc1ZhbGlkKCkpIHsKKyAgICAgICAgICAgIGNvbnN0IENTdHJpbmcgY29va2llU3Ry
ID0gY29va2llcyhtX3BhcmVudEZyYW1lLT5kb2N1bWVudCgpLCB1KS51dGY4KCk7CisgICAgICAg
ICAgICBjb25zdCBpbnQgc2l6ZSA9IGNvb2tpZVN0ci5sZW5ndGgoKTsKKyAgICAgICAgICAgIGlm
ICghY29va2llU3RyLmlzTnVsbCgpKSB7CisgICAgICAgICAgICAgICAgKnZhbHVlID0gc3RhdGlj
X2Nhc3Q8Y2hhcio+KE5QTl9NZW1BbGxvYyhzaXplKzEpKTsKKyAgICAgICAgICAgICAgICBpZiAo
KnZhbHVlKSB7CisgICAgICAgICAgICAgICAgICAgIG1lbXNldCgqdmFsdWUsIDAsIHNpemUrMSk7
CisgICAgICAgICAgICAgICAgICAgIG1lbWNweSgqdmFsdWUsIGNvb2tpZVN0ci5kYXRhKCksIHNp
emUrMSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChsZW4pCisgICAgICAgICAgICAgICAgICAg
ICAgICAqbGVuID0gc2l6ZTsKKyAgICAgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAg
ICAgICAgcmVzdWx0ID0gTlBFUlJfT1VUX09GX01FTU9SWV9FUlJPUjsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICByZXN1bHQgPSBOUEVSUl9JTlZBTElEX1VSTDsK
KyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGNhc2UgTlBOVVJMVlByb3h5OgorICAgICAgICBy
ZXN1bHQgPSBOUEVSUl9HRU5FUklDX0VSUk9SOworICAgICAgICBMT0coUGx1Z2lucywgIlBsdWdp
blZpZXc6OmdldFZhbHVlRm9yVVJMKCVzKTogTmVlZCB0byBpbXBsZW1lbnQgUGx1Z2luVmlldzo6
cGxhdGZvcm1HZXRWYWx1ZUZvclVSTCEiLCBwcmV0dHlOYW1lRm9yTlBOVVJMVmFyaWFibGUodmFy
aWFibGUpLmRhdGEoKSk7CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJl
c3VsdCA9IE5QRVJSX0dFTkVSSUNfRVJST1I7CisgICAgICAgIExPRyhQbHVnaW5zLCAiUGx1Z2lu
Vmlldzo6Z2V0VmFsdWVGb3JVUkw6ICVzIiwgcHJldHR5TmFtZUZvck5QTlVSTFZhcmlhYmxlKHZh
cmlhYmxlKS5kYXRhKCkpOworICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICByZXR1cm4gcmVz
dWx0OworfQorCisKK05QRXJyb3IgUGx1Z2luVmlldzo6c2V0VmFsdWVGb3JVUkwoTlBOVVJMVmFy
aWFibGUgdmFyaWFibGUsIGNvbnN0IGNoYXIqIHVybCwgY29uc3QgY2hhciogdmFsdWUsIHVpbnQz
Ml90IGxlbikKK3sKKyAgICBMT0coUGx1Z2lucywgIlBsdWdpblZpZXc6OnNldFZhbHVlRm9yVVJM
KCVzKSIsIHByZXR0eU5hbWVGb3JOUE5VUkxWYXJpYWJsZSh2YXJpYWJsZSkuZGF0YSgpKTsKKwor
ICAgIE5QRXJyb3IgcmVzdWx0ID0gTlBFUlJfR0VORVJJQ19FUlJPUjsKKyAgICBpZiAocGxhdGZv
cm1TZXRWYWx1ZUZvclVSTCh2YXJpYWJsZSwgdXJsLCB2YWx1ZSwgbGVuLCAmcmVzdWx0KSkKKyAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKKworICAgIHN3aXRjaCAodmFyaWFibGUpIHsKKyAgICBjYXNl
IE5QTlVSTFZDb29raWU6IHsKKyAgICAgICAgS1VSTCB1KG1fYmFzZVVSTCwgdXJsKTsKKyAgICAg
ICAgaWYgKHUuaXNWYWxpZCgpKSB7CisgICAgICAgICAgICBTdHJpbmcgY29va2llU3RyID0gU3Ry
aW5nOjpmcm9tVVRGOCh2YWx1ZSwgbGVuKTsKKyAgICAgICAgICAgIGlmICghY29va2llU3RyLmlz
RW1wdHkoKSkKKyAgICAgICAgICAgICAgICBzZXRDb29raWVzKG1fcGFyZW50RnJhbWUtPmRvY3Vt
ZW50KCksIHUsIGNvb2tpZVN0cik7CisgICAgICAgICAgICByZXN1bHQgPSBOUEVSUl9OT19FUlJP
UjsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICByZXN1bHQgPSBOUEVSUl9JTlZBTElEX1VS
TDsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGNhc2UgTlBOVVJMVlByb3h5OgorICAgICAg
ICBMT0coUGx1Z2lucywgIlBsdWdpblZpZXc6OnNldFZhbHVlRm9yVVJMKCVzKTogUGx1Z2lucyBh
cmUgTk9UIGFsbG93ZWQgdG8gc2V0IHByb3h5IGluZm9ybWF0aW9uLiIsIHByZXR0eU5hbWVGb3JO
UE5VUkxWYXJpYWJsZSh2YXJpYWJsZSkuZGF0YSgpKTsKKyAgICAgICAgYnJlYWs7CisgICAgZGVm
YXVsdDoKKyAgICAgICAgTE9HKFBsdWdpbnMsICJQbHVnaW5WaWV3OjpzZXRWYWx1ZUZvclVSTDog
JXMiLCBwcmV0dHlOYW1lRm9yTlBOVVJMVmFyaWFibGUodmFyaWFibGUpLmRhdGEoKSk7CisgICAg
ICAgIGJyZWFrOworICAgIH0KKworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK05QRXJyb3IgUGx1
Z2luVmlldzo6Z2V0QXV0aGVudGljYXRpb25JbmZvKGNvbnN0IGNoYXIqIHByb3RvY29sLCBjb25z
dCBjaGFyKiBob3N0LCBpbnQzMl90IHBvcnQsIGNvbnN0IGNoYXIqIHNjaGVtZSwgY29uc3QgY2hh
ciogcmVhbG0sIGNoYXIqKiB1c2VybmFtZSwgdWludDMyX3QqIHVsZW4sIGNoYXIqKiBwYXNzd29y
ZCwgdWludDMyX3QqIHBsZW4pCit7CisgICAgTE9HKFBsdWdpbnMsICJQbHVnaW5WaWV3OjpnZXRB
dXRoZW50aWNhdGlvbkluZm86IHByb3RvY29sPSVzLCBob3N0PSVzLCBwb3J0PSVkIiwgcHJvdG9j
b2wsIGhvc3QsIHBvcnQpOworCisgICAgTlBFcnJvciByZXN1bHQgPSBOUEVSUl9HRU5FUklDX0VS
Uk9SOworICAgIGlmIChwbGF0Zm9ybUdldEF1dGhlbnRpY2F0aW9uSW5mbyhwcm90b2NvbCwgaG9z
dCwgcG9ydCwgc2NoZW1lLCByZWFsbSwgdXNlcm5hbWUsIHVsZW4sIHBhc3N3b3JkLCBwbGVuLCAm
cmVzdWx0KSkKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKworICAgIHJldHVybiBOUEVSUl9HRU5F
UklDX0VSUk9SOworfQogI2VuZGlmCiAKIHZvaWQgUGx1Z2luVmlldzo6cHJpdmF0ZUJyb3dzaW5n
U3RhdGVDaGFuZ2VkKGJvb2wgcHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCkKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmggYi9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5o
CmluZGV4IDg4ZWM5NTQuLjkwNTQ4ZTggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGx1Z2lucy9QbHVn
aW5WaWV3LmgKKysrIGIvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcuaApAQCAtMTY4LDYgKzE2
OCw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgTlBFcnJvciBnZXRWYWx1ZShOUE5W
YXJpYWJsZSB2YXJpYWJsZSwgdm9pZCogdmFsdWUpOwogICAgICAgICBzdGF0aWMgTlBFcnJvciBn
ZXRWYWx1ZVN0YXRpYyhOUE5WYXJpYWJsZSB2YXJpYWJsZSwgdm9pZCogdmFsdWUpOwogICAgICAg
ICBOUEVycm9yIHNldFZhbHVlKE5QUFZhcmlhYmxlIHZhcmlhYmxlLCB2b2lkKiB2YWx1ZSk7Cisg
ICAgICAgIE5QRXJyb3IgZ2V0VmFsdWVGb3JVUkwoTlBOVVJMVmFyaWFibGUgdmFyaWFibGUsIGNv
bnN0IGNoYXIqIHVybCwgY2hhcioqIHZhbHVlLCB1aW50MzJfdCogbGVuKTsKKyAgICAgICAgTlBF
cnJvciBzZXRWYWx1ZUZvclVSTChOUE5VUkxWYXJpYWJsZSB2YXJpYWJsZSwgY29uc3QgY2hhciog
dXJsLCBjb25zdCBjaGFyKiB2YWx1ZSwgdWludDMyX3QgbGVuKTsKKyAgICAgICAgTlBFcnJvciBn
ZXRBdXRoZW50aWNhdGlvbkluZm8oY29uc3QgY2hhciogcHJvdG9jb2wsIGNvbnN0IGNoYXIqIGhv
c3QsIGludDMyX3QgcG9ydCwgY29uc3QgY2hhciogc2NoZW1lLCBjb25zdCBjaGFyKiByZWFsbSwg
Y2hhcioqIHVzZXJuYW1lLCB1aW50MzJfdCogdWxlbiwgY2hhcioqIHBhc3N3b3JkLCB1aW50MzJf
dCogcGxlbik7CiAgICAgICAgIHZvaWQgaW52YWxpZGF0ZVJlY3QoTlBSZWN0Kik7CiAgICAgICAg
IHZvaWQgaW52YWxpZGF0ZVJlZ2lvbihOUFJlZ2lvbik7CiAjZW5kaWYKQEAgLTI3NSw2ICsyNzgs
OSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAjaWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkp
CiAgICAgICAgIHN0YXRpYyBib29sIHBsYXRmb3JtR2V0VmFsdWVTdGF0aWMoTlBOVmFyaWFibGUg
dmFyaWFibGUsIHZvaWQqIHZhbHVlLCBOUEVycm9yKiByZXN1bHQpOwogICAgICAgICBib29sIHBs
YXRmb3JtR2V0VmFsdWUoTlBOVmFyaWFibGUgdmFyaWFibGUsIHZvaWQqIHZhbHVlLCBOUEVycm9y
KiByZXN1bHQpOworICAgICAgICBib29sIHBsYXRmb3JtR2V0VmFsdWVGb3JVUkwoTlBOVVJMVmFy
aWFibGUgdmFyaWFibGUsIGNvbnN0IGNoYXIqIHVybCwgY2hhcioqIHZhbHVlLCB1aW50MzJfdCog
bGVuLCBOUEVycm9yKiByZXN1bHQpOworICAgICAgICBib29sIHBsYXRmb3JtU2V0VmFsdWVGb3JV
UkwoTlBOVVJMVmFyaWFibGUgdmFyaWFibGUsIGNvbnN0IGNoYXIqIHVybCwgY29uc3QgY2hhciog
dmFsdWUsIHVpbnQzMl90IGxlbiwgTlBFcnJvciogcmVzdWx0KTsKKyAgICAgICAgYm9vbCBwbGF0
Zm9ybUdldEF1dGhlbnRpY2F0aW9uSW5mbyhjb25zdCBjaGFyKiBwcm90b2NvbCwgY29uc3QgY2hh
ciogaG9zdCwgaW50MzJfdCBwb3J0LCBjb25zdCBjaGFyKiBzY2hlbWUsIGNvbnN0IGNoYXIqIHJl
YWxtLCBjaGFyKiogdXNlcm5hbWUsIHVpbnQzMl90KiB1bGVuLCBjaGFyKiogcGFzc3dvcmQsIHVp
bnQzMl90KiBwbGVuLCBOUEVycm9yKiByZXN1bHQpOwogI2VuZGlmCiAKICAgICAgICAgUmVmUHRy
PEZyYW1lPiBtX3BhcmVudEZyYW1lOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbHVnaW5zL2d0ay9Q
bHVnaW5WaWV3R3RrLmNwcCBiL1dlYkNvcmUvcGx1Z2lucy9ndGsvUGx1Z2luVmlld0d0ay5jcHAK
aW5kZXggYmVlNzgyMS4uNTM5MmRiNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbHVnaW5zL2d0ay9Q
bHVnaW5WaWV3R3RrLmNwcAorKysgYi9XZWJDb3JlL3BsdWdpbnMvZ3RrL1BsdWdpblZpZXdHdGsu
Y3BwCkBAIC02NzcsNiArNjc3LDIyIEBAIGJvb2wgUGx1Z2luVmlldzo6cGxhdGZvcm1HZXRWYWx1
ZShOUE5WYXJpYWJsZSB2YXJpYWJsZSwgdm9pZCogdmFsdWUsIE5QRXJyb3IqIHJlCiAgICAgfQog
fQogCitib29sIFBsdWdpblZpZXc6OnBsYXRmb3JtR2V0VmFsdWVGb3JVUkwoTlBOVVJMVmFyaWFi
bGUgdmFyaWFibGUsIGNvbnN0IGNoYXIqIHVybCwgY2hhcioqIHZhbHVlLCB1aW50MzJfdCogbGVu
LCBOUEVycm9yKiByZXN1bHQpCit7CisgICAgLy8gTk9URTogTlBOVVJMVlByb3h5IHJlcXVpcmVz
IHBsYXRmb3JtIHNwZWNpZmljIGltcGxlbWVudGF0aW9uIDsgb3RoZXJ3aXNlLCBOUF9HRU5FUklD
X0VSUiBpcyByZXR1cm5lZCBieSBkZWZhdWx0LgorICAgIHJldHVybiBmYWxzZTsKK30KKworYm9v
bCBQbHVnaW5WaWV3OjpwbGF0Zm9ybVNldFZhbHVlRm9yVVJMKE5QTlVSTFZhcmlhYmxlIHZhcmlh
YmxlLCBjb25zdCBjaGFyKiB1cmwsIGNvbnN0IGNoYXIqIHZhbHVlLCB1aW50MzJfdCBsZW4sIE5Q
RXJyb3IqIHJlc3VsdCkKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgUGx1Z2luVmll
dzo6cGxhdGZvcm1HZXRBdXRoZW50aWNhdGlvbkluZm8oY29uc3QgY2hhciogcHJvdG9jb2wsIGNv
bnN0IGNoYXIqIGhvc3QsIGludDMyX3QgcG9ydCwgY29uc3QgY2hhciogc2NoZW1lLCBjb25zdCBj
aGFyKiByZWFsbSwgY2hhcioqIHVzZXJuYW1lLCB1aW50MzJfdCogdWxlbiwgY2hhcioqIHBhc3N3
b3JkLCB1aW50MzJfdCogcGxlbiwgTlBFcnJvciogcmVzdWx0KQoreworICAgIHJldHVybiBmYWxz
ZTsKK30KKwogdm9pZCBQbHVnaW5WaWV3OjppbnZhbGlkYXRlUmVjdChjb25zdCBJbnRSZWN0JiBy
ZWN0KQogewogICAgIGlmIChtX2lzV2luZG93ZWQpIHsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGx1
Z2lucy9tYWMvUGx1Z2luVmlld01hYy5tbSBiL1dlYkNvcmUvcGx1Z2lucy9tYWMvUGx1Z2luVmll
d01hYy5tbQppbmRleCBlMGFkMTM1Li41MTI5YWMyIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsdWdp
bnMvbWFjL1BsdWdpblZpZXdNYWMubW0KKysrIGIvV2ViQ29yZS9wbHVnaW5zL21hYy9QbHVnaW5W
aWV3TWFjLm1tCkBAIC0zMDgsNiArMzA4LDIyIEBAIGJvb2wgUGx1Z2luVmlldzo6cGxhdGZvcm1H
ZXRWYWx1ZShOUE5WYXJpYWJsZSB2YXJpYWJsZSwgdm9pZCogdmFsdWUsIE5QRXJyb3IqIGVyCiAg
ICAgcmV0dXJuIGZhbHNlOwogfQogCitib29sIFBsdWdpblZpZXc6OnBsYXRmb3JtR2V0VmFsdWVG
b3JVUkwoTlBOVVJMVmFyaWFibGUgdmFyaWFibGUsIGNvbnN0IGNoYXIqIHVybCwgY2hhcioqIHZh
bHVlLCB1aW50MzJfdCogbGVuLCBOUEVycm9yKiByZXN1bHQpCit7CisgICAgLy8gTk9URTogTlBO
VVJMVlByb3h5IHJlcXVpcmVzIHBsYXRmb3JtIHNwZWNpZmljIGltcGxlbWVudGF0aW9uIDsgb3Ro
ZXJ3aXNlLCBOUF9HRU5FUklDX0VSUiBpcyByZXR1cm5lZCBieSBkZWZhdWx0LgorICAgIHJldHVy
biBmYWxzZTsKK30KKworYm9vbCBQbHVnaW5WaWV3OjpwbGF0Zm9ybVNldFZhbHVlRm9yVVJMKE5Q
TlVSTFZhcmlhYmxlIHZhcmlhYmxlLCBjb25zdCBjaGFyKiB1cmwsIGNvbnN0IGNoYXIqIHZhbHVl
LCB1aW50MzJfdCBsZW4sIE5QRXJyb3IqIHJlc3VsdCkKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9
CisKK2Jvb2wgUGx1Z2luVmlldzo6cGxhdGZvcm1HZXRBdXRoZW50aWNhdGlvbkluZm8oY29uc3Qg
Y2hhciogcHJvdG9jb2wsIGNvbnN0IGNoYXIqIGhvc3QsIGludDMyX3QgcG9ydCwgY29uc3QgY2hh
ciogc2NoZW1lLCBjb25zdCBjaGFyKiByZWFsbSwgY2hhcioqIHVzZXJuYW1lLCB1aW50MzJfdCog
dWxlbiwgY2hhcioqIHBhc3N3b3JkLCB1aW50MzJfdCogcGxlbiwgTlBFcnJvciogcmVzdWx0KQor
eworICAgIHJldHVybiBmYWxzZTsKK30KKwogdm9pZCBQbHVnaW5WaWV3OjpzZXRQYXJlbnQoU2Ny
b2xsVmlldyogcGFyZW50KQogewogICAgIExPRyhQbHVnaW5zLCAiUGx1Z2luVmlldzo6c2V0UGFy
ZW50KCVwKSIsIHBhcmVudCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvbnBhcGkuY3Bw
IGIvV2ViQ29yZS9wbHVnaW5zL25wYXBpLmNwcAppbmRleCBkMGRiODQ1Li5iMjcyMWZiIDEwMDY0
NAotLS0gYS9XZWJDb3JlL3BsdWdpbnMvbnBhcGkuY3BwCisrKyBiL1dlYkNvcmUvcGx1Z2lucy9u
cGFwaS5jcHAKQEAgLTE3NSwzICsxNzUsMTggQEAgdm9pZCBOUE5fUGx1Z2luVGhyZWFkQXN5bmND
YWxsKE5QUCBpbnN0YW5jZSwgdm9pZCAoKmZ1bmMpICh2b2lkICopLCB2b2lkICp1c2VyRGEKIHsK
ICAgICBQbHVnaW5NYWluVGhyZWFkU2NoZWR1bGVyOjpzY2hlZHVsZXIoKS5zY2hlZHVsZUNhbGwo
aW5zdGFuY2UsIGZ1bmMsIHVzZXJEYXRhKTsKIH0KKworTlBFcnJvciBOUE5fR2V0VmFsdWVGb3JV
UkwoTlBQIGluc3RhbmNlLCBOUE5VUkxWYXJpYWJsZSB2YXJpYWJsZSwgY29uc3QgY2hhciogdXJs
LCBjaGFyKiogdmFsdWUsIHVpbnQzMl90KiBsZW4pCit7CisgICAgcmV0dXJuIHBsdWdpblZpZXdG
b3JJbnN0YW5jZShpbnN0YW5jZSktPmdldFZhbHVlRm9yVVJMKHZhcmlhYmxlLCB1cmwsIHZhbHVl
LCBsZW4pOworfQorCitOUEVycm9yIE5QTl9TZXRWYWx1ZUZvclVSTChOUFAgaW5zdGFuY2UsIE5Q
TlVSTFZhcmlhYmxlIHZhcmlhYmxlLCBjb25zdCBjaGFyKiB1cmwsIGNvbnN0IGNoYXIqIHZhbHVl
LCB1aW50MzJfdCBsZW4pCit7CisgICAgcmV0dXJuIHBsdWdpblZpZXdGb3JJbnN0YW5jZShpbnN0
YW5jZSktPnNldFZhbHVlRm9yVVJMKHZhcmlhYmxlLCB1cmwsIHZhbHVlLCBsZW4pOworfQorCitO
UEVycm9yIE5QTl9HZXRBdXRoZW50aWNhdGlvbkluZm8oTlBQIGluc3RhbmNlLCBjb25zdCBjaGFy
KiBwcm90b2NvbCwgY29uc3QgY2hhciogaG9zdCwgaW50MzJfdCBwb3J0LCBjb25zdCBjaGFyKiBz
Y2hlbWUsIGNvbnN0IGNoYXIqIHJlYWxtLCBjaGFyKiogdXNlcm5hbWUsIHVpbnQzMl90KiB1bGVu
LCBjaGFyKiogcGFzc3dvcmQsIHVpbnQzMl90KiBwbGVuKQoreworICAgIHJldHVybiBwbHVnaW5W
aWV3Rm9ySW5zdGFuY2UoaW5zdGFuY2UpLT5nZXRBdXRoZW50aWNhdGlvbkluZm8ocHJvdG9jb2ws
IGhvc3QsIHBvcnQsIHNjaGVtZSwgcmVhbG0sIHVzZXJuYW1lLCB1bGVuLCBwYXNzd29yZCwgcGxl
bik7Cit9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvcXQvUGx1Z2luVmlld1F0LmNwcCBi
L1dlYkNvcmUvcGx1Z2lucy9xdC9QbHVnaW5WaWV3UXQuY3BwCmluZGV4IGRlN2QxMmQuLjA3YmMy
N2QgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGx1Z2lucy9xdC9QbHVnaW5WaWV3UXQuY3BwCisrKyBi
L1dlYkNvcmUvcGx1Z2lucy9xdC9QbHVnaW5WaWV3UXQuY3BwCkBAIC01MSw2ICs1MSw3IEBACiAj
ZW5kaWYKICNpbmNsdWRlICJLZXlib2FyZEV2ZW50LmgiCiAjaW5jbHVkZSAiTW91c2VFdmVudC5o
IgorI2luY2x1ZGUgIk5ldHdvcmtpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50
ZWQuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1Nb3VzZUV2ZW50Lmgi
CkBAIC03MCw2ICs3MSw4IEBACiAjaW5jbHVkZSA8UUFwcGxpY2F0aW9uPgogI2luY2x1ZGUgPFFE
ZXNrdG9wV2lkZ2V0PgogI2luY2x1ZGUgPFFLZXlFdmVudD4KKyNpbmNsdWRlIDxRTmV0d29ya0Fj
Y2Vzc01hbmFnZXI+CisjaW5jbHVkZSA8UU5ldHdvcmtQcm94eT4KICNpbmNsdWRlIDxRUGFpbnRl
cj4KICNpbmNsdWRlIDxRV2lkZ2V0PgogI2luY2x1ZGUgPFFYMTFJbmZvPgpAQCAtNzQyLDYgKzc0
NSw4NSBAQCBib29sIFBsdWdpblZpZXc6OnBsYXRmb3JtR2V0VmFsdWUoTlBOVmFyaWFibGUgdmFy
aWFibGUsIHZvaWQqIHZhbHVlLCBOUEVycm9yKiByZQogICAgIH0KIH0KIAorc3RhdGljIHZvaWQg
YXBwZW5kUHJveHlEYXRhKGNvbnN0IFFOZXR3b3JrUHJveHkmIHByb3h5LCBRU3RyaW5nJiBwcm94
eVN0cikKK3sKKyAgICBwcm94eVN0ciArPSBwcm94eS5ob3N0TmFtZSgpOworCisgICAgaWYgKHBy
b3h5LnBvcnQoKSA+IDApIHsKKyAgICAgICAgcHJveHlTdHIgKz0gUUxhdGluMUNoYXIoJzonKTsK
KyAgICAgICAgcHJveHlTdHIgKz0gUVN0cmluZzo6bnVtYmVyKHByb3h5LnBvcnQoKSk7CisgICAg
fQorfQorCitib29sIFBsdWdpblZpZXc6OnBsYXRmb3JtR2V0VmFsdWVGb3JVUkwoTlBOVVJMVmFy
aWFibGUgdmFyaWFibGUsIGNvbnN0IGNoYXIqIHVybCwgY2hhcioqIHZhbHVlLCB1aW50MzJfdCog
bGVuLCBOUEVycm9yKiByZXN1bHQpCit7CisgICAgaWYgKHZhcmlhYmxlID09IE5QTlVSTFZQcm94
eSkgeworICAgICAgICBGcmFtZSogZnJhbWUgPSBwYXJlbnRGcmFtZSgpOworICAgICAgICBpZiAo
IWZyYW1lKSB7CisgICAgICAgICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBtX2VsZW1lbnQtPmRv
Y3VtZW50KCk7CisgICAgICAgICAgICBpZiAoIWRvY3VtZW50KQorICAgICAgICAgICAgICAgIGRv
Y3VtZW50ID0gbV9lbGVtZW50LT5vd25lckRvY3VtZW50KCk7CisgICAgICAgICAgICBmcmFtZSA9
IGRvY3VtZW50ID8gZG9jdW1lbnQtPmZyYW1lKCkgOiAwOworICAgICAgICB9CisKKyAgICAgICAg
Y29uc3QgRnJhbWVMb2FkZXIqIGZyYW1lTG9hZGVyID0gZnJhbWUgPyBmcmFtZS0+bG9hZGVyKCkg
OiAwOworICAgICAgICBjb25zdCBOZXR3b3JraW5nQ29udGV4dCogbmV0Q29udGV4dCA9IGZyYW1l
TG9hZGVyID8gZnJhbWVMb2FkZXItPm5ldHdvcmtpbmdDb250ZXh0KCkgOiAwOworICAgICAgICBj
b25zdCBRTmV0d29ya0FjY2Vzc01hbmFnZXIqIG1hbmFnZXIgPSBuZXRDb250ZXh0ID8gbmV0Q29u
dGV4dC0+bmV0d29ya0FjY2Vzc01hbmFnZXIoKSA6IDA7CisKKyAgICAgICAgaWYgKG1hbmFnZXIp
IHsKKyAgICAgICAgICAgIFFTdHJpbmcgcHJveHlTdHI7CisgICAgICAgICAgICBRTmV0d29ya1By
b3h5IHByb3h5ID0gbWFuYWdlci0+cHJveHkoKTsKKworICAgICAgICAgICAgc3dpdGNoIChwcm94
eS50eXBlKCkpIHsKKyAgICAgICAgICAgIGNhc2UgUU5ldHdvcmtQcm94eTo6U29ja3M1UHJveHk6
IHsKKyAgICAgICAgICAgICAgICBwcm94eVN0ciA9IFFMYXRpbjFTdHJpbmcoIlNPQ0tTICIpOwor
ICAgICAgICAgICAgICAgIGFwcGVuZFByb3h5RGF0YShwcm94eSwgcHJveHlTdHIpOworICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2FzZSBRTmV0d29y
a1Byb3h5OjpIdHRwUHJveHk6CisgICAgICAgICAgICBjYXNlIFFOZXR3b3JrUHJveHk6Okh0dHBD
YWNoaW5nUHJveHk6CisgICAgICAgICAgICBjYXNlIFFOZXR3b3JrUHJveHk6OkZ0cENhY2hpbmdQ
cm94eTogeworICAgICAgICAgICAgICAgIHByb3h5U3RyID0gUUxhdGluMVN0cmluZygiUFJPWFkg
Iik7CisgICAgICAgICAgICAgICAgYXBwZW5kUHJveHlEYXRhKHByb3h5LCBwcm94eVN0cik7Cisg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXNlIFFO
ZXR3b3JrUHJveHk6OkRlZmF1bHRQcm94eToKKyAgICAgICAgICAgIGNhc2UgUU5ldHdvcmtQcm94
eTo6Tm9Qcm94eToKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgcHJveHlT
dHIgPSBRTGF0aW4xU3RyaW5nKCJESVJFQ1QiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgIH0KKworICAgICAgICAgICAgY29uc3QgUUJ5dGVBcnJheSBwcm94eVN0clV0Zjgg
PSBwcm94eVN0ci50b1V0ZjgoKTsKKyAgICAgICAgICAgIGNvbnN0IGludCBzaXplID0gcHJveHlT
dHJVdGY4Lmxlbmd0aCgpOworICAgICAgICAgICAgKnZhbHVlID0gc3RhdGljX2Nhc3Q8Y2hhcio+
KE5QTl9NZW1BbGxvYyhzaXplKzEpKTsKKyAgICAgICAgICAgIGlmICgqdmFsdWUpIHsKKyAgICAg
ICAgICAgICAgICBtZW1zZXQoKnZhbHVlLCAwLCBzaXplKzEpOworICAgICAgICAgICAgICAgIG1l
bWNweSgqdmFsdWUsIHByb3h5U3RyVXRmOC5jb25zdERhdGEoKSwgc2l6ZSsxKTsKKyAgICAgICAg
ICAgICAgICBpZiAobGVuKQorICAgICAgICAgICAgICAgICAgICAqbGVuID0gc2l6ZTsKKyAgICAg
ICAgICAgICAgICBpZiAocmVzdWx0KQorICAgICAgICAgICAgICAgICAgICAqcmVzdWx0ID0gTlBF
UlJfTk9fRVJST1I7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICAqcmVzdWx0
ID0gTlBFUlJfT1VUX09GX01FTU9SWV9FUlJPUjsKKworICAgICAgICAgICAgcmV0dXJuIHRydWU7
CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgUGx1Z2lu
Vmlldzo6cGxhdGZvcm1HZXRBdXRoZW50aWNhdGlvbkluZm8oY29uc3QgY2hhciogcHJvdG9jb2ws
IGNvbnN0IGNoYXIqIGhvc3QsIGludDMyX3QgcG9ydCwgY29uc3QgY2hhciogc2NoZW1lLCBjb25z
dCBjaGFyKiByZWFsbSwgY2hhcioqIHVzZXJuYW1lLCB1aW50MzJfdCogdWxlbiwgY2hhcioqIHBh
c3N3b3JkLCB1aW50MzJfdCogcGxlbiwgTlBFcnJvciogcmVzdWx0KQoreworICAgIHJldHVybiBm
YWxzZTsKK30KKworYm9vbCBQbHVnaW5WaWV3OjpwbGF0Zm9ybVNldFZhbHVlRm9yVVJMKE5QTlVS
TFZhcmlhYmxlIHZhcmlhYmxlLCBjb25zdCBjaGFyKiB1cmwsIGNvbnN0IGNoYXIqIHZhbHVlLCB1
aW50MzJfdCBsZW4sIE5QRXJyb3IqIHJlc3VsdCkKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisK
IHZvaWQgUGx1Z2luVmlldzo6aW52YWxpZGF0ZVJlY3QoY29uc3QgSW50UmVjdCYgcmVjdCkKIHsK
ICAgICBpZiAobV9pc1dpbmRvd2VkKSB7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvc3lt
Ymlhbi9QbHVnaW5WaWV3U3ltYmlhbi5jcHAgYi9XZWJDb3JlL3BsdWdpbnMvc3ltYmlhbi9QbHVn
aW5WaWV3U3ltYmlhbi5jcHAKaW5kZXggYjlmODJhZC4uNmVlM2E0MCAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9wbHVnaW5zL3N5bWJpYW4vUGx1Z2luVmlld1N5bWJpYW4uY3BwCisrKyBiL1dlYkNvcmUv
cGx1Z2lucy9zeW1iaWFuL1BsdWdpblZpZXdTeW1iaWFuLmNwcApAQCAtMzcsNiArMzcsNyBAQAog
I2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgogI2luY2x1ZGUgIktleWJvYXJkRXZlbnQuaCIKICNp
bmNsdWRlICJNb3VzZUV2ZW50LmgiCisjaW5jbHVkZSAiTmV0d29ya2luZ0NvbnRleHQuaCIKICNp
bmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQ
bGF0Zm9ybUtleWJvYXJkRXZlbnQuaCIKQEAgLTU2LDYgKzU3LDggQEAKICNpbmNsdWRlICJydW50
aW1lX3Jvb3QuaCIKICNpbmNsdWRlIDxRR3JhcGhpY3NQcm94eVdpZGdldD4KICNpbmNsdWRlIDxR
S2V5RXZlbnQ+CisjaW5jbHVkZSA8UU5ldHdvcmtBY2Nlc3NNYW5hZ2VyPgorI2luY2x1ZGUgPFFO
ZXR3b3JrUHJveHk+CiAjaW5jbHVkZSA8UVBpeG1hcD4KICNpbmNsdWRlIDxRUmVnaW9uPgogI2lu
Y2x1ZGUgPFFWZWN0b3I+CkBAIC0zMzgsNiArMzQxLDg1IEBAIGJvb2wgUGx1Z2luVmlldzo6cGxh
dGZvcm1HZXRWYWx1ZShOUE5WYXJpYWJsZSwgdm9pZCosIE5QRXJyb3IqKQogICAgIHJldHVybiBm
YWxzZTsKIH0KIAorc3RhdGljIHZvaWQgYXBwZW5kUHJveHlEYXRhKGNvbnN0IFFOZXR3b3JrUHJv
eHkmIHByb3h5LCBRU3RyaW5nJiBwcm94eVN0cikKK3sKKyAgICBwcm94eVN0ciArPSBwcm94eS5o
b3N0TmFtZSgpOworCisgICAgaWYgKHByb3h5LnBvcnQoKSA+IDApIHsKKyAgICAgICAgcHJveHlT
dHIgKz0gUUxhdGluMUNoYXIoJzonKTsKKyAgICAgICAgcHJveHlTdHIgKz0gUVN0cmluZzo6bnVt
YmVyKHByb3h5LnBvcnQoKSk7CisgICAgfQorfQorCitib29sIFBsdWdpblZpZXc6OnBsYXRmb3Jt
R2V0VmFsdWVGb3JVUkwoTlBOVVJMVmFyaWFibGUgdmFyaWFibGUsIGNvbnN0IGNoYXIqIHVybCwg
Y2hhcioqIHZhbHVlLCB1aW50MzJfdCogbGVuLCBOUEVycm9yKiByZXN1bHQpCit7CisgICAgaWYg
KHZhcmlhYmxlID09IE5QTlVSTFZQcm94eSkgeworICAgICAgICBGcmFtZSogZnJhbWUgPSBwYXJl
bnRGcmFtZSgpOworICAgICAgICBpZiAoIWZyYW1lKSB7CisgICAgICAgICAgICBEb2N1bWVudCog
ZG9jdW1lbnQgPSBtX2VsZW1lbnQtPmRvY3VtZW50KCk7CisgICAgICAgICAgICBpZiAoIWRvY3Vt
ZW50KQorICAgICAgICAgICAgICAgIGRvY3VtZW50ID0gbV9lbGVtZW50LT5vd25lckRvY3VtZW50
KCk7CisgICAgICAgICAgICBmcmFtZSA9IGRvY3VtZW50ID8gZG9jdW1lbnQtPmZyYW1lKCkgOiAw
OworICAgICAgICB9CisKKyAgICAgICAgY29uc3QgRnJhbWVMb2FkZXIqIGZyYW1lTG9hZGVyID0g
ZnJhbWUgPyBmcmFtZS0+bG9hZGVyKCkgOiAwOworICAgICAgICBjb25zdCBOZXR3b3JraW5nQ29u
dGV4dCogbmV0Q29udGV4dCA9IGZyYW1lTG9hZGVyID8gZnJhbWVMb2FkZXItPm5ldHdvcmtpbmdD
b250ZXh0KCkgOiAwOworICAgICAgICBjb25zdCBRTmV0d29ya0FjY2Vzc01hbmFnZXIqIG1hbmFn
ZXIgPSBuZXRDb250ZXh0ID8gbmV0Q29udGV4dC0+bmV0d29ya0FjY2Vzc01hbmFnZXIoKSA6IDA7
CisKKyAgICAgICAgaWYgKG1hbmFnZXIpIHsKKyAgICAgICAgICAgIFFTdHJpbmcgcHJveHlTdHI7
CisgICAgICAgICAgICBRTmV0d29ya1Byb3h5IHByb3h5ID0gbWFuYWdlci0+cHJveHkoKTsKKwor
ICAgICAgICAgICAgc3dpdGNoIChwcm94eS50eXBlKCkpIHsKKyAgICAgICAgICAgIGNhc2UgUU5l
dHdvcmtQcm94eTo6U29ja3M1UHJveHk6IHsKKyAgICAgICAgICAgICAgICBwcm94eVN0ciA9IFFM
YXRpbjFTdHJpbmcoIlNPQ0tTICIpOworICAgICAgICAgICAgICAgIGFwcGVuZFByb3h5RGF0YShw
cm94eSwgcHJveHlTdHIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQor
ICAgICAgICAgICAgY2FzZSBRTmV0d29ya1Byb3h5OjpIdHRwUHJveHk6CisgICAgICAgICAgICBj
YXNlIFFOZXR3b3JrUHJveHk6Okh0dHBDYWNoaW5nUHJveHk6CisgICAgICAgICAgICBjYXNlIFFO
ZXR3b3JrUHJveHk6OkZ0cENhY2hpbmdQcm94eTogeworICAgICAgICAgICAgICAgIHByb3h5U3Ry
ID0gUUxhdGluMVN0cmluZygiUFJPWFkgIik7CisgICAgICAgICAgICAgICAgYXBwZW5kUHJveHlE
YXRhKHByb3h5LCBwcm94eVN0cik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICB9CisgICAgICAgICAgICBjYXNlIFFOZXR3b3JrUHJveHk6OkRlZmF1bHRQcm94eToKKyAgICAg
ICAgICAgIGNhc2UgUU5ldHdvcmtQcm94eTo6Tm9Qcm94eToKKyAgICAgICAgICAgIGRlZmF1bHQ6
CisgICAgICAgICAgICAgICAgcHJveHlTdHIgPSBRTGF0aW4xU3RyaW5nKCJESVJFQ1QiKTsKKyAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgY29uc3Qg
UUJ5dGVBcnJheSBwcm94eVN0clV0ZjggPSBwcm94eVN0ci50b1V0ZjgoKTsKKyAgICAgICAgICAg
IGNvbnN0IGludCBzaXplID0gcHJveHlTdHJVdGY4Lmxlbmd0aCgpOworICAgICAgICAgICAgKnZh
bHVlID0gc3RhdGljX2Nhc3Q8Y2hhcio+KE5QTl9NZW1BbGxvYyhzaXplKzEpKTsKKyAgICAgICAg
ICAgIGlmICgqdmFsdWUpIHsKKyAgICAgICAgICAgICAgICBtZW1zZXQoKnZhbHVlLCAwLCBzaXpl
KzEpOworICAgICAgICAgICAgICAgIG1lbWNweSgqdmFsdWUsIHByb3h5U3RyVXRmOC5jb25zdERh
dGEoKSwgc2l6ZSsxKTsKKyAgICAgICAgICAgICAgICBpZiAobGVuKQorICAgICAgICAgICAgICAg
ICAgICAqbGVuID0gc2l6ZTsKKyAgICAgICAgICAgICAgICBpZiAocmVzdWx0KQorICAgICAgICAg
ICAgICAgICAgICAqcmVzdWx0ID0gTlBFUlJfTk9fRVJST1I7CisgICAgICAgICAgICB9IGVsc2UK
KyAgICAgICAgICAgICAgICAqcmVzdWx0ID0gTlBFUlJfT1VUX09GX01FTU9SWV9FUlJPUjsKKwor
ICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4g
ZmFsc2U7Cit9CisKK2Jvb2wgUGx1Z2luVmlldzo6cGxhdGZvcm1TZXRWYWx1ZUZvclVSTChOUE5V
UkxWYXJpYWJsZSB2YXJpYWJsZSwgY29uc3QgY2hhciogdXJsLCBjb25zdCBjaGFyKiB2YWx1ZSwg
dWludDMyX3QgbGVuLCBOUEVycm9yKiByZXN1bHQpCit7CisgICAgcmV0dXJuIGZhbHNlOworfQor
Citib29sIFBsdWdpblZpZXc6OnBsYXRmb3JtR2V0QXV0aGVudGljYXRpb25JbmZvKGNvbnN0IGNo
YXIqIHByb3RvY29sLCBjb25zdCBjaGFyKiBob3N0LCBpbnQzMl90IHBvcnQsIGNvbnN0IGNoYXIq
IHNjaGVtZSwgY29uc3QgY2hhciogcmVhbG0sIGNoYXIqKiB1c2VybmFtZSwgdWludDMyX3QqIHVs
ZW4sIGNoYXIqKiBwYXNzd29yZCwgdWludDMyX3QqIHBsZW4sIE5QRXJyb3IqIHJlc3VsdCkKK3sK
KyAgICByZXR1cm4gZmFsc2U7Cit9CisKIHZvaWQgUGx1Z2luVmlldzo6aW52YWxpZGF0ZVJlY3Qo
Y29uc3QgSW50UmVjdCYgcmVjdCkKIHsKICAgICBpZiAobV9pc1dpbmRvd2VkKSB7CmRpZmYgLS1n
aXQgYS9XZWJDb3JlL3BsdWdpbnMvd2luL1BsdWdpblZpZXdXaW4uY3BwIGIvV2ViQ29yZS9wbHVn
aW5zL3dpbi9QbHVnaW5WaWV3V2luLmNwcAppbmRleCA3NThkOTBhLi5iNDgyZGQxIDEwMDY0NAot
LS0gYS9XZWJDb3JlL3BsdWdpbnMvd2luL1BsdWdpblZpZXdXaW4uY3BwCisrKyBiL1dlYkNvcmUv
cGx1Z2lucy93aW4vUGx1Z2luVmlld1dpbi5jcHAKQEAgLTg3MSw2ICs4NzEsMjIgQEAgYm9vbCBQ
bHVnaW5WaWV3OjpwbGF0Zm9ybUdldFZhbHVlU3RhdGljKE5QTlZhcmlhYmxlLCB2b2lkKiwgTlBF
cnJvciopCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCitib29sIFBsdWdpblZpZXc6OnBsYXRmb3Jt
R2V0VmFsdWVGb3JVUkwoTlBOVVJMVmFyaWFibGUgdmFyaWFibGUsIGNvbnN0IGNoYXIqIHVybCwg
Y2hhcioqIHZhbHVlLCB1aW50MzJfdCogbGVuLCBOUEVycm9yKiByZXN1bHQpCit7CisgICAgLy8g
Tk9URTogTlBOVVJMVlByb3h5IHJlcXVpcmVzIHBsYXRmb3JtIHNwZWNpZmljIGltcGxlbWVudGF0
aW9uIDsgb3RoZXJ3aXNlLCBOUF9HRU5FUklDX0VSUiBpcyByZXR1cm5lZCBieSBkZWZhdWx0Lgor
ICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBQbHVnaW5WaWV3OjpwbGF0Zm9ybVNldFZhbHVl
Rm9yVVJMKE5QTlVSTFZhcmlhYmxlIHZhcmlhYmxlLCBjb25zdCBjaGFyKiB1cmwsIGNvbnN0IGNo
YXIqIHZhbHVlLCB1aW50MzJfdCBsZW4sIE5QRXJyb3IqIHJlc3VsdCkKK3sKKyAgICByZXR1cm4g
ZmFsc2U7Cit9CisKK2Jvb2wgUGx1Z2luVmlldzo6cGxhdGZvcm1HZXRBdXRoZW50aWNhdGlvbklu
Zm8oY29uc3QgY2hhciogcHJvdG9jb2wsIGNvbnN0IGNoYXIqIGhvc3QsIGludDMyX3QgcG9ydCwg
Y29uc3QgY2hhciogc2NoZW1lLCBjb25zdCBjaGFyKiByZWFsbSwgY2hhcioqIHVzZXJuYW1lLCB1
aW50MzJfdCogdWxlbiwgY2hhcioqIHBhc3N3b3JkLCB1aW50MzJfdCogcGxlbiwgTlBFcnJvciog
cmVzdWx0KQoreworICAgIHJldHVybiBmYWxzZTsKK30KKwogYm9vbCBQbHVnaW5WaWV3OjpwbGF0
Zm9ybUdldFZhbHVlKE5QTlZhcmlhYmxlIHZhcmlhYmxlLCB2b2lkKiB2YWx1ZSwgTlBFcnJvciog
cmVzdWx0KQogewogICAgIHN3aXRjaCAodmFyaWFibGUpIHsK
</data>
<flag name="review"
          id="57926"
          type_id="1"
          status="-"
          setter="andersca"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>69582</attachid>
            <date>2010-10-02 14:26:13 -0700</date>
            <delta_ts>2010-10-07 19:48:10 -0700</delta_ts>
            <desc>Implement NPN_GetValueForURL and NPN_SetValueForURL and NPN_GetAuthenticationInfo [Final #4]...</desc>
            <filename>implement_npn_functions_necessary_for_java_applet_support.patch</filename>
            <type>text/plain</type>
            <size>13263</size>
            <attacher name="Dawit A.">adawit</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
Y2U0ZTkxYi4uZDBlOTExZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMyBAQAorMjAxMC0xMC0wMiAgRGF3aXQgQWxlbWF5
ZWh1ICA8YWRhd2l0QGtkZS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkKKworICAgICAgICBJbXBsZW1lbnRlZCBOUE5fR2V0VmFsdWVGb3JVUkwgYW5kIE5QTl9TZXRW
YWx1ZUZvclVSTCBhbmQgTlBOX0dldEF1dGhlbnRpY2F0aW9uSW5mby4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM0NTM5CisKKyAgICAgICAgVGhlc2Ug
bWlzc2luZyBOUE4gZnVuY3Rpb25zIGNhdXNlIEphdmEgYXBwbGV0cyB0byBjcmFzaCBpbiBwb3J0
cyBzdWNoCisgICAgICAgIGFzIFF0V2Via2l0IHRoYXQgcmVseSBvbiB3ZWJraXQgZm9yIEphdmEg
YXBwbGV0IHN1cHBvcnQuCisKKyAgICAgICAgKiBwbHVnaW5zL1BsdWdpbkRlYnVnLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OnByZXR0eU5hbWVGb3JOUE5VUkxWYXJpYWJsZSk6CisgICAgICAgICog
cGx1Z2lucy9QbHVnaW5EZWJ1Zy5oOgorICAgICAgICAqIHBsdWdpbnMvUGx1Z2luUGFja2FnZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5QYWNrYWdlOjppbml0aWFsaXplQnJvd3NlckZ1
bmNzKToKKyAgICAgICAgKiBwbHVnaW5zL1BsdWdpblZpZXcuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UGx1Z2luVmlldzo6Z2V0VmFsdWVGb3JVUkwpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2lu
Vmlldzo6c2V0VmFsdWVGb3JVUkwpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6Z2V0
QXV0aGVudGljYXRpb25JbmZvKToKKyAgICAgICAgKiBwbHVnaW5zL1BsdWdpblZpZXcuaDoKKyAg
ICAgICAgKiBwbHVnaW5zL25wYXBpLmNwcDoKKyAgICAgICAgKE5QTl9HZXRWYWx1ZUZvclVSTCk6
CisgICAgICAgIChOUE5fU2V0VmFsdWVGb3JVUkwpOgorICAgICAgICAoTlBOX0dldEF1dGhlbnRp
Y2F0aW9uSW5mbyk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9Qcm94eVNlcnZlci5oOgor
ICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY2YvUHJveHlTZXJ2ZXJDRk5ldC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpwcm94eVNlcnZlcnNGb3JVUkwpOgorICAgICAgICAqIHBsYXRmb3JtL25l
dHdvcmsvcXQvUHJveHlTZXJ2ZXJRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwcm94eVNlcnZl
cnNGb3JVUkwpOgorCiAyMDEwLTEwLTAxICBOaWtvbGFzIFppbW1lcm1hbm4gIDxuemltbWVybWFu
bkByaW0uY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERpcmsgU2NodWx6ZS4KZGlmZiAtLWdp
dCBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Qcm94eVNlcnZlci5oIGIvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL1Byb3h5U2VydmVyLmgKaW5kZXggZjc0MDExNC4uZjI4ZmVkZCAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Byb3h5U2VydmVyLmgKKysrIGIvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL1Byb3h5U2VydmVyLmgKQEAgLTMyLDYgKzMyLDcgQEAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgS1VSTDsKK2NsYXNzIE5ldHdvcmtpbmdDb250ZXh0Owog
CiAvLyBSZXByZXNlbnRzIGEgc2luZ2xlIHByb3h5IHNlcnZlci4KIGNsYXNzIFByb3h5U2VydmVy
IHsKQEAgLTY3LDcgKzY4LDcgQEAgcHJpdmF0ZToKIH07CiAKIC8vIFJldHVybiBhIHZlY3RvciBv
ZiBwcm94eSBzZXJ2ZXJzIGZvciB0aGUgZ2l2ZW4gVVJMLgotVmVjdG9yPFByb3h5U2VydmVyPiBw
cm94eVNlcnZlcnNGb3JVUkwoY29uc3QgS1VSTCYpOworVmVjdG9yPFByb3h5U2VydmVyPiBwcm94
eVNlcnZlcnNGb3JVUkwoY29uc3QgS1VSTCYsIGNvbnN0IE5ldHdvcmtpbmdDb250ZXh0KiBjb250
ZXh0ID0gMCk7CiAKIC8vIENvbnZlcnRzIHRoZSBnaXZlbiB2ZWN0b3Igb2YgcHJveHkgc2VydmVy
cyB0byBhIFBBQyBzdHJpbmcsIGFzIGRlc2NyaWJlZCBpbgogLy8gaHR0cDovL3dlYi5hcmNoaXZl
Lm9yZy93ZWIvMjAwNjA0MjQwMDUwMzcvd3AubmV0c2NhcGUuY29tL2VuZy9tb3ppbGxhLzIuMC9y
ZWxub3Rlcy9kZW1vL3Byb3h5LWxpdmUuaHRtbApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL2NmL1Byb3h5U2VydmVyQ0ZOZXQuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2NmL1Byb3h5U2VydmVyQ0ZOZXQuY3BwCmluZGV4IDMzOGMwMDkuLjk3MjA2OTUgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9Qcm94eVNlcnZlckNGTmV0LmNwcAor
KysgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUHJveHlTZXJ2ZXJDRk5ldC5jcHAKQEAg
LTc5LDcgKzc5LDcgQEAgc3RhdGljIHZvaWQgYWRkUHJveHlTZXJ2ZXJzRm9yVVJMKFZlY3RvcjxQ
cm94eVNlcnZlcj4mIHByb3h5U2VydmVycywgY29uc3QgS1VSTCYKICAgICB9CiB9CiAKLVZlY3Rv
cjxQcm94eVNlcnZlcj4gcHJveHlTZXJ2ZXJzRm9yVVJMKGNvbnN0IEtVUkwmIHVybCkKK1ZlY3Rv
cjxQcm94eVNlcnZlcj4gcHJveHlTZXJ2ZXJzRm9yVVJMKGNvbnN0IEtVUkwmIHVybCwgY29uc3Qg
TmV0d29ya2luZ0NvbnRleHQqKQogewogICAgIFZlY3RvcjxQcm94eVNlcnZlcj4gcHJveHlTZXJ2
ZXJzOwogICAgIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1Byb3h5
U2VydmVyUXQuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1Byb3h5U2VydmVyUXQu
Y3BwCmluZGV4IDgxODQ5ZTUuLjU2MDU4MmYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9xdC9Qcm94eVNlcnZlclF0LmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvcXQvUHJveHlTZXJ2ZXJRdC5jcHAKQEAgLTI2LDE1ICsyNiw1MSBAQAogI2luY2x1ZGUgImNv
bmZpZy5oIgogI2luY2x1ZGUgIlByb3h5U2VydmVyLmgiCiAKLSNpbmNsdWRlICJOb3RJbXBsZW1l
bnRlZC5oIgogI2luY2x1ZGUgIktVUkwuaCIKKyNpbmNsdWRlICJOZXR3b3JraW5nQ29udGV4dC5o
IgorCisjaW5jbHVkZSA8UU5ldHdvcmtBY2Nlc3NNYW5hZ2VyPgorI2luY2x1ZGUgPFFOZXR3b3Jr
UHJveHk+CisjaW5jbHVkZSA8UU5ldHdvcmtQcm94eUZhY3Rvcnk+CisjaW5jbHVkZSA8UU5ldHdv
cmtQcm94eVF1ZXJ5PgorI2luY2x1ZGUgPFFVcmw+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
VmVjdG9yPFByb3h5U2VydmVyPiBwcm94eVNlcnZlcnNGb3JVUkwoY29uc3QgS1VSTCYpCitWZWN0
b3I8UHJveHlTZXJ2ZXI+IHByb3h5U2VydmVyc0ZvclVSTChjb25zdCBLVVJMJiB1cmwsIGNvbnN0
IE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KQogewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0g
ICAgcmV0dXJuIFZlY3RvcjxQcm94eVNlcnZlcj4oKTsKKyAgICBWZWN0b3I8UHJveHlTZXJ2ZXI+
IHNlcnZlcnM7CisKKyAgICBpZiAoY29udGV4dCkgeworICAgICAgICBjb25zdCBRTmV0d29ya0Fj
Y2Vzc01hbmFnZXIqIGFjY2Vzc01hbmFnZXIgPSBjb250ZXh0LT5uZXR3b3JrQWNjZXNzTWFuYWdl
cigpOworICAgICAgICBpZiAoYWNjZXNzTWFuYWdlcikgeworICAgICAgICAgICAgUU5ldHdvcmtQ
cm94eUZhY3RvcnkqIHByb3h5RmFjdG9yeSA9IGFjY2Vzc01hbmFnZXItPnByb3h5RmFjdG9yeSgp
OworICAgICAgICAgICAgaWYgKHByb3h5RmFjdG9yeSkgeworICAgICAgICAgICAgICAgIGNvbnN0
IFFMaXN0PFFOZXR3b3JrUHJveHk+IHByb3hpZXMgPSBwcm94eUZhY3RvcnktPnF1ZXJ5UHJveHko
UU5ldHdvcmtQcm94eVF1ZXJ5KHVybCkpOworICAgICAgICAgICAgICAgIFFfRk9SRUFDSChjb25z
dCBRTmV0d29ya1Byb3h5JiBwcm94eSwgcHJveGllcykgeworICAgICAgICAgICAgICAgICAgICBQ
cm94eVNlcnZlcjo6VHlwZSBwcm94eVR5cGU7CisgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAo
cHJveHkudHlwZSgpKSB7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgUU5ldHdvcmtQcm94eTo6
U29ja3M1UHJveHk6CisgICAgICAgICAgICAgICAgICAgICAgICBwcm94eVR5cGUgPSBQcm94eVNl
cnZlcjo6U09DS1M7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
ICAgICAgICAgY2FzZSBRTmV0d29ya1Byb3h5OjpIdHRwUHJveHk6CisgICAgICAgICAgICAgICAg
ICAgIGNhc2UgUU5ldHdvcmtQcm94eTo6SHR0cENhY2hpbmdQcm94eToKKyAgICAgICAgICAgICAg
ICAgICAgY2FzZSBRTmV0d29ya1Byb3h5OjpGdHBDYWNoaW5nUHJveHk6CisgICAgICAgICAgICAg
ICAgICAgICAgICBwcm94eVR5cGUgPSBQcm94eVNlcnZlcjo6SFRUUDsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIFFOZXR3b3JrUHJveHk6
OkRlZmF1bHRQcm94eToKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBRTmV0d29ya1Byb3h5OjpO
b1Byb3h5OgorICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAg
ICAgICAgcHJveHlUeXBlID0gUHJveHlTZXJ2ZXI6OkRpcmVjdDsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAg
IHNlcnZlcnMuYXBwZW5kKFByb3h5U2VydmVyKHByb3h5VHlwZSwgcHJveHkuaG9zdE5hbWUoKSwg
cHJveHkucG9ydCgpKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAg
ICB9CisgICAgfQorCisgICAgcmV0dXJuIHNlcnZlcnM7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5EZWJ1Zy5jcHAgYi9XZWJD
b3JlL3BsdWdpbnMvUGx1Z2luRGVidWcuY3BwCmluZGV4IGFjZThiMjEuLjhjM2VmY2IgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5EZWJ1Zy5jcHAKKysrIGIvV2ViQ29yZS9wbHVn
aW5zL1BsdWdpbkRlYnVnLmNwcApAQCAtMTYzLDYgKzE2MywxNCBAQCBDU3RyaW5nIHByZXR0eU5h
bWVGb3JOUFBWYXJpYWJsZShOUFBWYXJpYWJsZSB2YXJpYWJsZSwgdm9pZCogdmFsdWUpCiAgICAg
fQogfQogCitDU3RyaW5nIHByZXR0eU5hbWVGb3JOUE5VUkxWYXJpYWJsZShOUE5VUkxWYXJpYWJs
ZSB2YXJpYWJsZSkKK3sKKyAgICBzd2l0Y2ggKHZhcmlhYmxlKSB7CisgICAgY2FzZSBOUE5VUkxW
Q29va2llOiByZXR1cm4gIk5QTlVSTFZDb29raWUiOworICAgIGNhc2UgTlBOVVJMVlByb3h5OiBy
ZXR1cm4gIk5QTlVSTFZQcm94eSI7CisgICAgZGVmYXVsdDogcmV0dXJuICJVbmtub3duIHZhcmlh
YmxlIjsKKyAgICB9Cit9CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyAhTE9H
X0RJU0FCTEVECmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luRGVidWcuaCBiL1dl
YkNvcmUvcGx1Z2lucy9QbHVnaW5EZWJ1Zy5oCmluZGV4IDI1NDg2NGYuLjAxN2U2ODYgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5EZWJ1Zy5oCisrKyBiL1dlYkNvcmUvcGx1Z2lu
cy9QbHVnaW5EZWJ1Zy5oCkBAIC00MSw2ICs0MSw3IEBAIGNvbnN0IGNoYXIqIHByZXR0eU5hbWVG
b3JOUEVycm9yKE5QRXJyb3IgZXJyb3IpOwogCiBDU3RyaW5nIHByZXR0eU5hbWVGb3JOUE5WYXJp
YWJsZShOUE5WYXJpYWJsZSB2YXJpYWJsZSk7CiBDU3RyaW5nIHByZXR0eU5hbWVGb3JOUFBWYXJp
YWJsZShOUFBWYXJpYWJsZSB2YXJpYWJsZSwgdm9pZCogdmFsdWUpOworQ1N0cmluZyBwcmV0dHlO
YW1lRm9yTlBOVVJMVmFyaWFibGUoTlBOVVJMVmFyaWFibGUgdmFyaWFibGUpOwogCiAjaWZkZWYg
WFBfTUFDT1NYCiBjb25zdCBjaGFyKiBwcmV0dHlOYW1lRm9yRHJhd2luZ01vZGVsKE5QRHJhd2lu
Z01vZGVsIGRyYXdpbmdNb2RlbCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2lu
UGFja2FnZS5jcHAgYi9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luUGFja2FnZS5jcHAKaW5kZXggYmIy
NTMxMi4uZTc5OTYxMCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblBhY2thZ2Uu
Y3BwCisrKyBiL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5QYWNrYWdlLmNwcApAQCAtMzI5LDYgKzMy
OSw5IEBAIHZvaWQgUGx1Z2luUGFja2FnZTo6aW5pdGlhbGl6ZUJyb3dzZXJGdW5jcygpCiAgICAg
bV9icm93c2VyRnVuY3Muc2V0ZXhjZXB0aW9uID0gX05QTl9TZXRFeGNlcHRpb247CiAgICAgbV9i
cm93c2VyRnVuY3MuZW51bWVyYXRlID0gX05QTl9FbnVtZXJhdGU7CiAgICAgbV9icm93c2VyRnVu
Y3MuY29uc3RydWN0ID0gX05QTl9Db25zdHJ1Y3Q7CisgICAgbV9icm93c2VyRnVuY3MuZ2V0dmFs
dWVmb3J1cmwgPSBOUE5fR2V0VmFsdWVGb3JVUkw7CisgICAgbV9icm93c2VyRnVuY3Muc2V0dmFs
dWVmb3J1cmwgPSBOUE5fU2V0VmFsdWVGb3JVUkw7CisgICAgbV9icm93c2VyRnVuY3MuZ2V0YXV0
aGVudGljYXRpb25pbmZvID0gTlBOX0dldEF1dGhlbnRpY2F0aW9uSW5mbzsKIH0KICNlbmRpZgog
CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5jcHAgYi9XZWJDb3JlL3Bs
dWdpbnMvUGx1Z2luVmlldy5jcHAKaW5kZXggZjdkYjAxMC4uMDdlODBiNSAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcuY3BwCisrKyBiL1dlYkNvcmUvcGx1Z2lucy9QbHVn
aW5WaWV3LmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkJyaWRnZS5oIgogI2VuZGlm
CiAjaW5jbHVkZSAiQ2hyb21lLmgiCisjaW5jbHVkZSAiQ29va2llSmFyLmgiCiAjaW5jbHVkZSAi
RG9jdW1lbnQuaCIKICNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgogI2luY2x1ZGUgIkVsZW1l
bnQuaCIKQEAgLTU1LDYgKzU2LDcgQEAKICNpbmNsdWRlICJQbHVnaW5EZWJ1Zy5oIgogI2luY2x1
ZGUgIlBsdWdpbk1haW5UaHJlYWRTY2hlZHVsZXIuaCIKICNpbmNsdWRlICJQbHVnaW5QYWNrYWdl
LmgiCisjaW5jbHVkZSAiUHJveHlTZXJ2ZXIuaCIKICNpbmNsdWRlICJSZW5kZXJCb3guaCIKICNp
bmNsdWRlICJSZW5kZXJPYmplY3QuaCIKICNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCkBA
IC0xMzkyLDYgKzEzOTQsMTA2IEBAIE5QRXJyb3IgUGx1Z2luVmlldzo6Z2V0VmFsdWUoTlBOVmFy
aWFibGUgdmFyaWFibGUsIHZvaWQqIHZhbHVlKQogICAgICAgICByZXR1cm4gTlBFUlJfR0VORVJJ
Q19FUlJPUjsKICAgICB9CiB9CisKK05QRXJyb3IgUGx1Z2luVmlldzo6Z2V0VmFsdWVGb3JVUkwo
TlBOVVJMVmFyaWFibGUgdmFyaWFibGUsIGNvbnN0IGNoYXIqIHVybCwgY2hhcioqIHZhbHVlLCB1
aW50MzJfdCogbGVuKQoreworICAgIExPRyhQbHVnaW5zLCAiUGx1Z2luVmlldzo6Z2V0VmFsdWVG
b3JVUkwoJXMpIiwgcHJldHR5TmFtZUZvck5QTlVSTFZhcmlhYmxlKHZhcmlhYmxlKS5kYXRhKCkp
OworCisgICAgTlBFcnJvciByZXN1bHQgPSBOUEVSUl9OT19FUlJPUjsKKworICAgIHN3aXRjaCAo
dmFyaWFibGUpIHsKKyAgICBjYXNlIE5QTlVSTFZDb29raWU6IHsKKyAgICAgICAgS1VSTCB1KG1f
YmFzZVVSTCwgdXJsKTsKKyAgICAgICAgaWYgKHUuaXNWYWxpZCgpKSB7CisgICAgICAgICAgICBj
b25zdCBDU3RyaW5nIGNvb2tpZVN0ciA9IGNvb2tpZXMobV9wYXJlbnRGcmFtZS0+ZG9jdW1lbnQo
KSwgdSkudXRmOCgpOworICAgICAgICAgICAgY29uc3QgaW50IHNpemUgPSBjb29raWVTdHIubGVu
Z3RoKCk7CisgICAgICAgICAgICBpZiAoIWNvb2tpZVN0ci5pc051bGwoKSkgeworICAgICAgICAg
ICAgICAgICp2YWx1ZSA9IHN0YXRpY19jYXN0PGNoYXIqPihOUE5fTWVtQWxsb2Moc2l6ZSsxKSk7
CisgICAgICAgICAgICAgICAgaWYgKCp2YWx1ZSkgeworICAgICAgICAgICAgICAgICAgICBtZW1z
ZXQoKnZhbHVlLCAwLCBzaXplKzEpOworICAgICAgICAgICAgICAgICAgICBtZW1jcHkoKnZhbHVl
LCBjb29raWVTdHIuZGF0YSgpLCBzaXplKzEpOworICAgICAgICAgICAgICAgICAgICBpZiAobGVu
KQorICAgICAgICAgICAgICAgICAgICAgICAgKmxlbiA9IHNpemU7CisgICAgICAgICAgICAgICAg
fSBlbHNlCisgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IE5QRVJSX09VVF9PRl9NRU1PUllf
RVJST1I7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgcmVzdWx0
ID0gTlBFUlJfSU5WQUxJRF9VUkw7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlIE5Q
TlVSTFZQcm94eTogeworICAgICAgICBLVVJMIHUobV9iYXNlVVJMLCB1cmwpOworICAgICAgICBp
ZiAodS5pc1ZhbGlkKCkpIHsKKyAgICAgICAgICAgIEZyYW1lKiBmcmFtZSA9IHBhcmVudEZyYW1l
KCk7CisgICAgICAgICAgICBpZiAoIWZyYW1lKSB7CisgICAgICAgICAgICAgICAgRG9jdW1lbnQq
IGRvY3VtZW50ID0gbV9lbGVtZW50LT5kb2N1bWVudCgpOworICAgICAgICAgICAgICAgIGlmICgh
ZG9jdW1lbnQpCisgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50ID0gbV9lbGVtZW50LT5vd25l
ckRvY3VtZW50KCk7CisgICAgICAgICAgICAgICAgaWYgKGRvY3VtZW50KQorICAgICAgICAgICAg
ICAgICAgICBmcmFtZSA9IGRvY3VtZW50LT5mcmFtZSgpOworICAgICAgICAgICAgfQorICAgICAg
ICAgICAgY29uc3QgRnJhbWVMb2FkZXIqIGZyYW1lTG9hZGVyID0gZnJhbWUgPyBmcmFtZS0+bG9h
ZGVyKCkgOiAwOworICAgICAgICAgICAgY29uc3QgTmV0d29ya2luZ0NvbnRleHQqIG5ldENvbnRl
eHQgPSBmcmFtZUxvYWRlciA/IGZyYW1lTG9hZGVyLT5uZXR3b3JraW5nQ29udGV4dCgpIDogMDsK
KyAgICAgICAgICAgIGNvbnN0IFZlY3RvcjxQcm94eVNlcnZlcj4gcHJveHlTZXJ2ZXJzID0gcHJv
eHlTZXJ2ZXJzRm9yVVJMKHUsIG5ldENvbnRleHQpOworICAgICAgICAgICAgY29uc3QgQ1N0cmlu
ZyBwcm94eVN0ciA9IHRvU3RyaW5nKHByb3h5U2VydmVycykubGF0aW4xKCk7IC8vIFNob3VsZCB0
aGlzIGJlIHV0ZjgoKSA/CisgICAgICAgICAgICBjb25zdCBpbnQgc2l6ZSA9IHByb3h5U3RyLmxl
bmd0aCgpOworICAgICAgICAgICAgKnZhbHVlID0gc3RhdGljX2Nhc3Q8Y2hhcio+KE5QTl9NZW1B
bGxvYyhzaXplKzEpKTsKKyAgICAgICAgICAgIGlmICgqdmFsdWUpIHsKKyAgICAgICAgICAgICAg
ICBtZW1zZXQoKnZhbHVlLCAwLCBzaXplKzEpOworICAgICAgICAgICAgICAgIG1lbWNweSgqdmFs
dWUsIHByb3h5U3RyLmRhdGEoKSwgc2l6ZSsxKTsKKyAgICAgICAgICAgICAgICBpZiAobGVuKQor
ICAgICAgICAgICAgICAgICAgICAqbGVuID0gc2l6ZTsKKyAgICAgICAgICAgIH0gZWxzZQorICAg
ICAgICAgICAgICAgIHJlc3VsdCA9IE5QRVJSX09VVF9PRl9NRU1PUllfRVJST1I7CisgICAgICAg
IH0gZWxzZQorICAgICAgICAgICAgcmVzdWx0ID0gTlBFUlJfSU5WQUxJRF9VUkw7CisgICAgICAg
IGJyZWFrOworICAgIH0KKyAgICBkZWZhdWx0OgorICAgICAgICByZXN1bHQgPSBOUEVSUl9HRU5F
UklDX0VSUk9SOworICAgICAgICBMT0coUGx1Z2lucywgIlBsdWdpblZpZXc6OmdldFZhbHVlRm9y
VVJMOiAlcyIsIHByZXR0eU5hbWVGb3JOUE5VUkxWYXJpYWJsZSh2YXJpYWJsZSkuZGF0YSgpKTsK
KyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworCitOUEVy
cm9yIFBsdWdpblZpZXc6OnNldFZhbHVlRm9yVVJMKE5QTlVSTFZhcmlhYmxlIHZhcmlhYmxlLCBj
b25zdCBjaGFyKiB1cmwsIGNvbnN0IGNoYXIqIHZhbHVlLCB1aW50MzJfdCBsZW4pCit7CisgICAg
TE9HKFBsdWdpbnMsICJQbHVnaW5WaWV3OjpzZXRWYWx1ZUZvclVSTCglcykiLCBwcmV0dHlOYW1l
Rm9yTlBOVVJMVmFyaWFibGUodmFyaWFibGUpLmRhdGEoKSk7CisKKyAgICBOUEVycm9yIHJlc3Vs
dCA9IE5QRVJSX0dFTkVSSUNfRVJST1I7CisKKyAgICBzd2l0Y2ggKHZhcmlhYmxlKSB7CisgICAg
Y2FzZSBOUE5VUkxWQ29va2llOiB7CisgICAgICAgIEtVUkwgdShtX2Jhc2VVUkwsIHVybCk7Cisg
ICAgICAgIGlmICh1LmlzVmFsaWQoKSkgeworICAgICAgICAgICAgU3RyaW5nIGNvb2tpZVN0ciA9
IFN0cmluZzo6ZnJvbVVURjgodmFsdWUsIGxlbik7CisgICAgICAgICAgICBpZiAoIWNvb2tpZVN0
ci5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAgc2V0Q29va2llcyhtX3BhcmVudEZyYW1lLT5k
b2N1bWVudCgpLCB1LCBjb29raWVTdHIpOworICAgICAgICAgICAgcmVzdWx0ID0gTlBFUlJfTk9f
RVJST1I7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgcmVzdWx0ID0gTlBFUlJfSU5WQUxJ
RF9VUkw7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlIE5QTlVSTFZQcm94eToKKyAg
ICAgICAgTE9HKFBsdWdpbnMsICJQbHVnaW5WaWV3OjpzZXRWYWx1ZUZvclVSTCglcyk6IFBsdWdp
bnMgYXJlIE5PVCBhbGxvd2VkIHRvIHNldCBwcm94eSBpbmZvcm1hdGlvbi4iLCBwcmV0dHlOYW1l
Rm9yTlBOVVJMVmFyaWFibGUodmFyaWFibGUpLmRhdGEoKSk7CisgICAgICAgIGJyZWFrOworICAg
IGRlZmF1bHQ6CisgICAgICAgIExPRyhQbHVnaW5zLCAiUGx1Z2luVmlldzo6c2V0VmFsdWVGb3JV
Ukw6ICVzIiwgcHJldHR5TmFtZUZvck5QTlVSTFZhcmlhYmxlKHZhcmlhYmxlKS5kYXRhKCkpOwor
ICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitOUEVycm9y
IFBsdWdpblZpZXc6OmdldEF1dGhlbnRpY2F0aW9uSW5mbyhjb25zdCBjaGFyKiBwcm90b2NvbCwg
Y29uc3QgY2hhciogaG9zdCwgaW50MzJfdCBwb3J0LCBjb25zdCBjaGFyKiBzY2hlbWUsIGNvbnN0
IGNoYXIqIHJlYWxtLCBjaGFyKiogdXNlcm5hbWUsIHVpbnQzMl90KiB1bGVuLCBjaGFyKiogcGFz
c3dvcmQsIHVpbnQzMl90KiBwbGVuKQoreworICAgIExPRyhQbHVnaW5zLCAiUGx1Z2luVmlldzo6
Z2V0QXV0aGVudGljYXRpb25JbmZvOiBwcm90b2NvbD0lcywgaG9zdD0lcywgcG9ydD0lZCIsIHBy
b3RvY29sLCBob3N0LCBwb3J0KTsKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBO
UEVSUl9HRU5FUklDX0VSUk9SOworfQogI2VuZGlmCiAKIHZvaWQgUGx1Z2luVmlldzo6cHJpdmF0
ZUJyb3dzaW5nU3RhdGVDaGFuZ2VkKGJvb2wgcHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCkKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmggYi9XZWJDb3JlL3BsdWdpbnMvUGx1
Z2luVmlldy5oCmluZGV4IGE2MTc4NWMuLmFmNzU3MzYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGx1
Z2lucy9QbHVnaW5WaWV3LmgKKysrIGIvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcuaApAQCAt
MTY4LDYgKzE2OCw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgTlBFcnJvciBnZXRW
YWx1ZShOUE5WYXJpYWJsZSB2YXJpYWJsZSwgdm9pZCogdmFsdWUpOwogICAgICAgICBzdGF0aWMg
TlBFcnJvciBnZXRWYWx1ZVN0YXRpYyhOUE5WYXJpYWJsZSB2YXJpYWJsZSwgdm9pZCogdmFsdWUp
OwogICAgICAgICBOUEVycm9yIHNldFZhbHVlKE5QUFZhcmlhYmxlIHZhcmlhYmxlLCB2b2lkKiB2
YWx1ZSk7CisgICAgICAgIE5QRXJyb3IgZ2V0VmFsdWVGb3JVUkwoTlBOVVJMVmFyaWFibGUgdmFy
aWFibGUsIGNvbnN0IGNoYXIqIHVybCwgY2hhcioqIHZhbHVlLCB1aW50MzJfdCogbGVuKTsKKyAg
ICAgICAgTlBFcnJvciBzZXRWYWx1ZUZvclVSTChOUE5VUkxWYXJpYWJsZSB2YXJpYWJsZSwgY29u
c3QgY2hhciogdXJsLCBjb25zdCBjaGFyKiB2YWx1ZSwgdWludDMyX3QgbGVuKTsKKyAgICAgICAg
TlBFcnJvciBnZXRBdXRoZW50aWNhdGlvbkluZm8oY29uc3QgY2hhciogcHJvdG9jb2wsIGNvbnN0
IGNoYXIqIGhvc3QsIGludDMyX3QgcG9ydCwgY29uc3QgY2hhciogc2NoZW1lLCBjb25zdCBjaGFy
KiByZWFsbSwgY2hhcioqIHVzZXJuYW1lLCB1aW50MzJfdCogdWxlbiwgY2hhcioqIHBhc3N3b3Jk
LCB1aW50MzJfdCogcGxlbik7CiAgICAgICAgIHZvaWQgaW52YWxpZGF0ZVJlY3QoTlBSZWN0Kik7
CiAgICAgICAgIHZvaWQgaW52YWxpZGF0ZVJlZ2lvbihOUFJlZ2lvbik7CiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvcGx1Z2lucy9ucGFwaS5jcHAgYi9XZWJDb3JlL3BsdWdpbnMvbnBhcGku
Y3BwCmluZGV4IGQwZGI4NDUuLmIyNzIxZmIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGx1Z2lucy9u
cGFwaS5jcHAKKysrIGIvV2ViQ29yZS9wbHVnaW5zL25wYXBpLmNwcApAQCAtMTc1LDMgKzE3NSwx
OCBAQCB2b2lkIE5QTl9QbHVnaW5UaHJlYWRBc3luY0NhbGwoTlBQIGluc3RhbmNlLCB2b2lkICgq
ZnVuYykgKHZvaWQgKiksIHZvaWQgKnVzZXJEYQogewogICAgIFBsdWdpbk1haW5UaHJlYWRTY2hl
ZHVsZXI6OnNjaGVkdWxlcigpLnNjaGVkdWxlQ2FsbChpbnN0YW5jZSwgZnVuYywgdXNlckRhdGEp
OwogfQorCitOUEVycm9yIE5QTl9HZXRWYWx1ZUZvclVSTChOUFAgaW5zdGFuY2UsIE5QTlVSTFZh
cmlhYmxlIHZhcmlhYmxlLCBjb25zdCBjaGFyKiB1cmwsIGNoYXIqKiB2YWx1ZSwgdWludDMyX3Qq
IGxlbikKK3sKKyAgICByZXR1cm4gcGx1Z2luVmlld0Zvckluc3RhbmNlKGluc3RhbmNlKS0+Z2V0
VmFsdWVGb3JVUkwodmFyaWFibGUsIHVybCwgdmFsdWUsIGxlbik7Cit9CisKK05QRXJyb3IgTlBO
X1NldFZhbHVlRm9yVVJMKE5QUCBpbnN0YW5jZSwgTlBOVVJMVmFyaWFibGUgdmFyaWFibGUsIGNv
bnN0IGNoYXIqIHVybCwgY29uc3QgY2hhciogdmFsdWUsIHVpbnQzMl90IGxlbikKK3sKKyAgICBy
ZXR1cm4gcGx1Z2luVmlld0Zvckluc3RhbmNlKGluc3RhbmNlKS0+c2V0VmFsdWVGb3JVUkwodmFy
aWFibGUsIHVybCwgdmFsdWUsIGxlbik7Cit9CisKK05QRXJyb3IgTlBOX0dldEF1dGhlbnRpY2F0
aW9uSW5mbyhOUFAgaW5zdGFuY2UsIGNvbnN0IGNoYXIqIHByb3RvY29sLCBjb25zdCBjaGFyKiBo
b3N0LCBpbnQzMl90IHBvcnQsIGNvbnN0IGNoYXIqIHNjaGVtZSwgY29uc3QgY2hhciogcmVhbG0s
IGNoYXIqKiB1c2VybmFtZSwgdWludDMyX3QqIHVsZW4sIGNoYXIqKiBwYXNzd29yZCwgdWludDMy
X3QqIHBsZW4pCit7CisgICAgcmV0dXJuIHBsdWdpblZpZXdGb3JJbnN0YW5jZShpbnN0YW5jZSkt
PmdldEF1dGhlbnRpY2F0aW9uSW5mbyhwcm90b2NvbCwgaG9zdCwgcG9ydCwgc2NoZW1lLCByZWFs
bSwgdXNlcm5hbWUsIHVsZW4sIHBhc3N3b3JkLCBwbGVuKTsKK30K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>70193</attachid>
            <date>2010-10-07 19:48:10 -0700</date>
            <delta_ts>2010-10-08 23:17:33 -0700</delta_ts>
            <desc>Implement NPN_GetValueForURL and NPN_SetValueForURL and NPN_GetAuthenticationInfo [Final #5]...</desc>
            <filename>implement_npn_functions_necessary_for_java_applet_support.patch</filename>
            <type>text/plain</type>
            <size>13300</size>
            <attacher name="Dawit A.">adawit</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MDU5NWY3OS4uNTU2Y2Y3YSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMyBAQAorMjAxMC0xMC0wMiAgRGF3aXQgQWxlbWF5
ZWh1ICA8YWRhd2l0QGtkZS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkKKworICAgICAgICBJbXBsZW1lbnRlZCBOUE5fR2V0VmFsdWVGb3JVUkwgYW5kIE5QTl9TZXRW
YWx1ZUZvclVSTCBhbmQgTlBOX0dldEF1dGhlbnRpY2F0aW9uSW5mby4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM0NTM5CisKKyAgICAgICAgVGhlc2Ug
bWlzc2luZyBOUE4gZnVuY3Rpb25zIGNhdXNlIEphdmEgYXBwbGV0cyB0byBjcmFzaCBpbiBwb3J0
cyBzdWNoCisgICAgICAgIGFzIFF0V2Via2l0IHRoYXQgcmVseSBvbiB3ZWJraXQgZm9yIEphdmEg
YXBwbGV0IHN1cHBvcnQuCisKKyAgICAgICAgKiBwbHVnaW5zL1BsdWdpbkRlYnVnLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OnByZXR0eU5hbWVGb3JOUE5VUkxWYXJpYWJsZSk6CisgICAgICAgICog
cGx1Z2lucy9QbHVnaW5EZWJ1Zy5oOgorICAgICAgICAqIHBsdWdpbnMvUGx1Z2luUGFja2FnZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5QYWNrYWdlOjppbml0aWFsaXplQnJvd3NlckZ1
bmNzKToKKyAgICAgICAgKiBwbHVnaW5zL1BsdWdpblZpZXcuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UGx1Z2luVmlldzo6Z2V0VmFsdWVGb3JVUkwpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2lu
Vmlldzo6c2V0VmFsdWVGb3JVUkwpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6Z2V0
QXV0aGVudGljYXRpb25JbmZvKToKKyAgICAgICAgKiBwbHVnaW5zL1BsdWdpblZpZXcuaDoKKyAg
ICAgICAgKiBwbHVnaW5zL25wYXBpLmNwcDoKKyAgICAgICAgKE5QTl9HZXRWYWx1ZUZvclVSTCk6
CisgICAgICAgIChOUE5fU2V0VmFsdWVGb3JVUkwpOgorICAgICAgICAoTlBOX0dldEF1dGhlbnRp
Y2F0aW9uSW5mbyk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9Qcm94eVNlcnZlci5oOgor
ICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY2YvUHJveHlTZXJ2ZXJDRk5ldC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpwcm94eVNlcnZlcnNGb3JVUkwpOgorICAgICAgICAqIHBsYXRmb3JtL25l
dHdvcmsvcXQvUHJveHlTZXJ2ZXJRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwcm94eVNlcnZl
cnNGb3JVUkwpOgorCiAyMDEwLTEwLTA2ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBw
bGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhbiBCZXJuc3RlaW4sIERhcmluIEFkbGVy
LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Byb3h5U2VydmVyLmggYi9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUHJveHlTZXJ2ZXIuaAppbmRleCBmNzQwMTE0Li5mMjhm
ZWRkIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUHJveHlTZXJ2ZXIuaAor
KysgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUHJveHlTZXJ2ZXIuaApAQCAtMzIsNiArMzIs
NyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBLVVJMOworY2xhc3MgTmV0d29ya2lu
Z0NvbnRleHQ7CiAKIC8vIFJlcHJlc2VudHMgYSBzaW5nbGUgcHJveHkgc2VydmVyLgogY2xhc3Mg
UHJveHlTZXJ2ZXIgewpAQCAtNjcsNyArNjgsNyBAQCBwcml2YXRlOgogfTsKIAogLy8gUmV0dXJu
IGEgdmVjdG9yIG9mIHByb3h5IHNlcnZlcnMgZm9yIHRoZSBnaXZlbiBVUkwuCi1WZWN0b3I8UHJv
eHlTZXJ2ZXI+IHByb3h5U2VydmVyc0ZvclVSTChjb25zdCBLVVJMJik7CitWZWN0b3I8UHJveHlT
ZXJ2ZXI+IHByb3h5U2VydmVyc0ZvclVSTChjb25zdCBLVVJMJiwgY29uc3QgTmV0d29ya2luZ0Nv
bnRleHQqIGNvbnRleHQgPSAwKTsKIAogLy8gQ29udmVydHMgdGhlIGdpdmVuIHZlY3RvciBvZiBw
cm94eSBzZXJ2ZXJzIHRvIGEgUEFDIHN0cmluZywgYXMgZGVzY3JpYmVkIGluCiAvLyBodHRwOi8v
d2ViLmFyY2hpdmUub3JnL3dlYi8yMDA2MDQyNDAwNTAzNy93cC5uZXRzY2FwZS5jb20vZW5nL21v
emlsbGEvMi4wL3JlbG5vdGVzL2RlbW8vcHJveHktbGl2ZS5odG1sCmRpZmYgLS1naXQgYS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUHJveHlTZXJ2ZXJDRk5ldC5jcHAgYi9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvY2YvUHJveHlTZXJ2ZXJDRk5ldC5jcHAKaW5kZXggMzM4YzAwOS4uOTcy
MDY5NSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Byb3h5U2VydmVy
Q0ZOZXQuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9Qcm94eVNlcnZlckNG
TmV0LmNwcApAQCAtNzksNyArNzksNyBAQCBzdGF0aWMgdm9pZCBhZGRQcm94eVNlcnZlcnNGb3JV
UkwoVmVjdG9yPFByb3h5U2VydmVyPiYgcHJveHlTZXJ2ZXJzLCBjb25zdCBLVVJMJgogICAgIH0K
IH0KIAotVmVjdG9yPFByb3h5U2VydmVyPiBwcm94eVNlcnZlcnNGb3JVUkwoY29uc3QgS1VSTCYg
dXJsKQorVmVjdG9yPFByb3h5U2VydmVyPiBwcm94eVNlcnZlcnNGb3JVUkwoY29uc3QgS1VSTCYg
dXJsLCBjb25zdCBOZXR3b3JraW5nQ29udGV4dCopCiB7CiAgICAgVmVjdG9yPFByb3h5U2VydmVy
PiBwcm94eVNlcnZlcnM7CiAgICAgCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvcXQvUHJveHlTZXJ2ZXJRdC5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUHJv
eHlTZXJ2ZXJRdC5jcHAKaW5kZXggODE4NDllNS4uNTYwNTgyZiAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1Byb3h5U2VydmVyUXQuY3BwCisrKyBiL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9xdC9Qcm94eVNlcnZlclF0LmNwcApAQCAtMjYsMTUgKzI2LDUxIEBACiAj
aW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiUHJveHlTZXJ2ZXIuaCIKIAotI2luY2x1ZGUg
Ik5vdEltcGxlbWVudGVkLmgiCiAjaW5jbHVkZSAiS1VSTC5oIgorI2luY2x1ZGUgIk5ldHdvcmtp
bmdDb250ZXh0LmgiCisKKyNpbmNsdWRlIDxRTmV0d29ya0FjY2Vzc01hbmFnZXI+CisjaW5jbHVk
ZSA8UU5ldHdvcmtQcm94eT4KKyNpbmNsdWRlIDxRTmV0d29ya1Byb3h5RmFjdG9yeT4KKyNpbmNs
dWRlIDxRTmV0d29ya1Byb3h5UXVlcnk+CisjaW5jbHVkZSA8UVVybD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi1WZWN0b3I8UHJveHlTZXJ2ZXI+IHByb3h5U2VydmVyc0ZvclVSTChjb25zdCBL
VVJMJikKK1ZlY3RvcjxQcm94eVNlcnZlcj4gcHJveHlTZXJ2ZXJzRm9yVVJMKGNvbnN0IEtVUkwm
IHVybCwgY29uc3QgTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQpCiB7Ci0gICAgbm90SW1wbGVt
ZW50ZWQoKTsKLSAgICByZXR1cm4gVmVjdG9yPFByb3h5U2VydmVyPigpOworICAgIFZlY3RvcjxQ
cm94eVNlcnZlcj4gc2VydmVyczsKKworICAgIGlmIChjb250ZXh0KSB7CisgICAgICAgIGNvbnN0
IFFOZXR3b3JrQWNjZXNzTWFuYWdlciogYWNjZXNzTWFuYWdlciA9IGNvbnRleHQtPm5ldHdvcmtB
Y2Nlc3NNYW5hZ2VyKCk7CisgICAgICAgIGlmIChhY2Nlc3NNYW5hZ2VyKSB7CisgICAgICAgICAg
ICBRTmV0d29ya1Byb3h5RmFjdG9yeSogcHJveHlGYWN0b3J5ID0gYWNjZXNzTWFuYWdlci0+cHJv
eHlGYWN0b3J5KCk7CisgICAgICAgICAgICBpZiAocHJveHlGYWN0b3J5KSB7CisgICAgICAgICAg
ICAgICAgY29uc3QgUUxpc3Q8UU5ldHdvcmtQcm94eT4gcHJveGllcyA9IHByb3h5RmFjdG9yeS0+
cXVlcnlQcm94eShRTmV0d29ya1Byb3h5UXVlcnkodXJsKSk7CisgICAgICAgICAgICAgICAgUV9G
T1JFQUNIKGNvbnN0IFFOZXR3b3JrUHJveHkmIHByb3h5LCBwcm94aWVzKSB7CisgICAgICAgICAg
ICAgICAgICAgIFByb3h5U2VydmVyOjpUeXBlIHByb3h5VHlwZTsKKyAgICAgICAgICAgICAgICAg
ICAgc3dpdGNoIChwcm94eS50eXBlKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBRTmV0
d29ya1Byb3h5OjpTb2NrczVQcm94eToKKyAgICAgICAgICAgICAgICAgICAgICAgIHByb3h5VHlw
ZSA9IFByb3h5U2VydmVyOjpTT0NLUzsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgICAgICAgICBjYXNlIFFOZXR3b3JrUHJveHk6Okh0dHBQcm94eToKKyAgICAg
ICAgICAgICAgICAgICAgY2FzZSBRTmV0d29ya1Byb3h5OjpIdHRwQ2FjaGluZ1Byb3h5OgorICAg
ICAgICAgICAgICAgICAgICBjYXNlIFFOZXR3b3JrUHJveHk6OkZ0cENhY2hpbmdQcm94eToKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHByb3h5VHlwZSA9IFByb3h5U2VydmVyOjpIVFRQOworICAg
ICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgUU5l
dHdvcmtQcm94eTo6RGVmYXVsdFByb3h5OgorICAgICAgICAgICAgICAgICAgICBjYXNlIFFOZXR3
b3JrUHJveHk6Ok5vUHJveHk6CisgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAg
ICAgICAgICAgICAgICAgICBwcm94eVR5cGUgPSBQcm94eVNlcnZlcjo6RGlyZWN0OworICAgICAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICAgICAgc2VydmVycy5hcHBlbmQoUHJveHlTZXJ2ZXIocHJveHlUeXBlLCBwcm94eS5o
b3N0TmFtZSgpLCBwcm94eS5wb3J0KCkpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gc2VydmVyczsKIH0KIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbHVnaW5zL1BsdWdpbkRlYnVn
LmNwcCBiL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5EZWJ1Zy5jcHAKaW5kZXggYWNlOGIyMS4uOGMz
ZWZjYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbHVnaW5zL1BsdWdpbkRlYnVnLmNwcAorKysgYi9X
ZWJDb3JlL3BsdWdpbnMvUGx1Z2luRGVidWcuY3BwCkBAIC0xNjMsNiArMTYzLDE0IEBAIENTdHJp
bmcgcHJldHR5TmFtZUZvck5QUFZhcmlhYmxlKE5QUFZhcmlhYmxlIHZhcmlhYmxlLCB2b2lkKiB2
YWx1ZSkKICAgICB9CiB9CiAKK0NTdHJpbmcgcHJldHR5TmFtZUZvck5QTlVSTFZhcmlhYmxlKE5Q
TlVSTFZhcmlhYmxlIHZhcmlhYmxlKQoreworICAgIHN3aXRjaCAodmFyaWFibGUpIHsKKyAgICBj
YXNlIE5QTlVSTFZDb29raWU6IHJldHVybiAiTlBOVVJMVkNvb2tpZSI7CisgICAgY2FzZSBOUE5V
UkxWUHJveHk6IHJldHVybiAiTlBOVVJMVlByb3h5IjsKKyAgICBkZWZhdWx0OiByZXR1cm4gIlVu
a25vd24gdmFyaWFibGUiOworICAgIH0KK30KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2Vu
ZGlmIC8vICFMT0dfRElTQUJMRUQKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5E
ZWJ1Zy5oIGIvV2ViQ29yZS9wbHVnaW5zL1BsdWdpbkRlYnVnLmgKaW5kZXggMjU0ODY0Zi4uMDE3
ZTY4NiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbHVnaW5zL1BsdWdpbkRlYnVnLmgKKysrIGIvV2Vi
Q29yZS9wbHVnaW5zL1BsdWdpbkRlYnVnLmgKQEAgLTQxLDYgKzQxLDcgQEAgY29uc3QgY2hhciog
cHJldHR5TmFtZUZvck5QRXJyb3IoTlBFcnJvciBlcnJvcik7CiAKIENTdHJpbmcgcHJldHR5TmFt
ZUZvck5QTlZhcmlhYmxlKE5QTlZhcmlhYmxlIHZhcmlhYmxlKTsKIENTdHJpbmcgcHJldHR5TmFt
ZUZvck5QUFZhcmlhYmxlKE5QUFZhcmlhYmxlIHZhcmlhYmxlLCB2b2lkKiB2YWx1ZSk7CitDU3Ry
aW5nIHByZXR0eU5hbWVGb3JOUE5VUkxWYXJpYWJsZShOUE5VUkxWYXJpYWJsZSB2YXJpYWJsZSk7
CiAKICNpZmRlZiBYUF9NQUNPU1gKIGNvbnN0IGNoYXIqIHByZXR0eU5hbWVGb3JEcmF3aW5nTW9k
ZWwoTlBEcmF3aW5nTW9kZWwgZHJhd2luZ01vZGVsKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGx1
Z2lucy9QbHVnaW5QYWNrYWdlLmNwcCBiL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5QYWNrYWdlLmNw
cAppbmRleCAzOWM1ZjJhLi4xMzZhNjA0IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsdWdpbnMvUGx1
Z2luUGFja2FnZS5jcHAKKysrIGIvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblBhY2thZ2UuY3BwCkBA
IC0zMjksNiArMzI5LDkgQEAgdm9pZCBQbHVnaW5QYWNrYWdlOjppbml0aWFsaXplQnJvd3NlckZ1
bmNzKCkKICAgICBtX2Jyb3dzZXJGdW5jcy5zZXRleGNlcHRpb24gPSBfTlBOX1NldEV4Y2VwdGlv
bjsKICAgICBtX2Jyb3dzZXJGdW5jcy5lbnVtZXJhdGUgPSBfTlBOX0VudW1lcmF0ZTsKICAgICBt
X2Jyb3dzZXJGdW5jcy5jb25zdHJ1Y3QgPSBfTlBOX0NvbnN0cnVjdDsKKyAgICBtX2Jyb3dzZXJG
dW5jcy5nZXR2YWx1ZWZvcnVybCA9IE5QTl9HZXRWYWx1ZUZvclVSTDsKKyAgICBtX2Jyb3dzZXJG
dW5jcy5zZXR2YWx1ZWZvcnVybCA9IE5QTl9TZXRWYWx1ZUZvclVSTDsKKyAgICBtX2Jyb3dzZXJG
dW5jcy5nZXRhdXRoZW50aWNhdGlvbmluZm8gPSBOUE5fR2V0QXV0aGVudGljYXRpb25JbmZvOwog
fQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmNwcCBi
L1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmNwcAppbmRleCBmN2RiMDEwLi4zZmI0ZDYzIDEw
MDY0NAotLS0gYS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5jcHAKKysrIGIvV2ViQ29yZS9w
bHVnaW5zL1BsdWdpblZpZXcuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiQnJpZGdl
LmgiCiAjZW5kaWYKICNpbmNsdWRlICJDaHJvbWUuaCIKKyNpbmNsdWRlICJDb29raWVKYXIuaCIK
ICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCiAjaW5j
bHVkZSAiRWxlbWVudC5oIgpAQCAtNTUsNiArNTYsNyBAQAogI2luY2x1ZGUgIlBsdWdpbkRlYnVn
LmgiCiAjaW5jbHVkZSAiUGx1Z2luTWFpblRocmVhZFNjaGVkdWxlci5oIgogI2luY2x1ZGUgIlBs
dWdpblBhY2thZ2UuaCIKKyNpbmNsdWRlICJQcm94eVNlcnZlci5oIgogI2luY2x1ZGUgIlJlbmRl
ckJveC5oIgogI2luY2x1ZGUgIlJlbmRlck9iamVjdC5oIgogI2luY2x1ZGUgIlNjcmlwdENvbnRy
b2xsZXIuaCIKQEAgLTEzOTIsNiArMTM5NCwxMDcgQEAgTlBFcnJvciBQbHVnaW5WaWV3OjpnZXRW
YWx1ZShOUE5WYXJpYWJsZSB2YXJpYWJsZSwgdm9pZCogdmFsdWUpCiAgICAgICAgIHJldHVybiBO
UEVSUl9HRU5FUklDX0VSUk9SOwogICAgIH0KIH0KKworTlBFcnJvciBQbHVnaW5WaWV3OjpnZXRW
YWx1ZUZvclVSTChOUE5VUkxWYXJpYWJsZSB2YXJpYWJsZSwgY29uc3QgY2hhciogdXJsLCBjaGFy
KiogdmFsdWUsIHVpbnQzMl90KiBsZW4pCit7CisgICAgTE9HKFBsdWdpbnMsICJQbHVnaW5WaWV3
OjpnZXRWYWx1ZUZvclVSTCglcykiLCBwcmV0dHlOYW1lRm9yTlBOVVJMVmFyaWFibGUodmFyaWFi
bGUpLmRhdGEoKSk7CisKKyAgICBOUEVycm9yIHJlc3VsdCA9IE5QRVJSX05PX0VSUk9SOworCisg
ICAgc3dpdGNoICh2YXJpYWJsZSkgeworICAgIGNhc2UgTlBOVVJMVkNvb2tpZTogeworICAgICAg
ICBLVVJMIHUobV9iYXNlVVJMLCB1cmwpOworICAgICAgICBpZiAodS5pc1ZhbGlkKCkpIHsKKyAg
ICAgICAgICAgIGNvbnN0IENTdHJpbmcgY29va2llU3RyID0gY29va2llcyhtX3BhcmVudEZyYW1l
LT5kb2N1bWVudCgpLCB1KS51dGY4KCk7CisgICAgICAgICAgICBpZiAoIWNvb2tpZVN0ci5pc051
bGwoKSkgeworICAgICAgICAgICAgICAgIGNvbnN0IGludCBzaXplID0gY29va2llU3RyLmxlbmd0
aCgpOworICAgICAgICAgICAgICAgICp2YWx1ZSA9IHN0YXRpY19jYXN0PGNoYXIqPihOUE5fTWVt
QWxsb2Moc2l6ZSsxKSk7CisgICAgICAgICAgICAgICAgaWYgKCp2YWx1ZSkgeworICAgICAgICAg
ICAgICAgICAgICBtZW1zZXQoKnZhbHVlLCAwLCBzaXplKzEpOworICAgICAgICAgICAgICAgICAg
ICBtZW1jcHkoKnZhbHVlLCBjb29raWVTdHIuZGF0YSgpLCBzaXplKzEpOworICAgICAgICAgICAg
ICAgICAgICBpZiAobGVuKQorICAgICAgICAgICAgICAgICAgICAgICAgKmxlbiA9IHNpemU7Cisg
ICAgICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IE5QRVJS
X09VVF9PRl9NRU1PUllfRVJST1I7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZQorICAg
ICAgICAgICAgcmVzdWx0ID0gTlBFUlJfSU5WQUxJRF9VUkw7CisgICAgICAgIGJyZWFrOworICAg
IH0KKyAgICBjYXNlIE5QTlVSTFZQcm94eTogeworICAgICAgICBLVVJMIHUobV9iYXNlVVJMLCB1
cmwpOworICAgICAgICBpZiAodS5pc1ZhbGlkKCkpIHsKKyAgICAgICAgICAgIEZyYW1lKiBmcmFt
ZSA9IHBhcmVudEZyYW1lKCk7CisgICAgICAgICAgICBpZiAoIWZyYW1lKSB7CisgICAgICAgICAg
ICAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gbV9lbGVtZW50LT5kb2N1bWVudCgpOworICAgICAg
ICAgICAgICAgIGlmICghZG9jdW1lbnQpCisgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50ID0g
bV9lbGVtZW50LT5vd25lckRvY3VtZW50KCk7CisgICAgICAgICAgICAgICAgaWYgKGRvY3VtZW50
KQorICAgICAgICAgICAgICAgICAgICBmcmFtZSA9IGRvY3VtZW50LT5mcmFtZSgpOworICAgICAg
ICAgICAgfQorICAgICAgICAgICAgY29uc3QgRnJhbWVMb2FkZXIqIGZyYW1lTG9hZGVyID0gZnJh
bWUgPyBmcmFtZS0+bG9hZGVyKCkgOiAwOworICAgICAgICAgICAgY29uc3QgTmV0d29ya2luZ0Nv
bnRleHQqIG5ldENvbnRleHQgPSBmcmFtZUxvYWRlciA/IGZyYW1lTG9hZGVyLT5uZXR3b3JraW5n
Q29udGV4dCgpIDogMDsKKyAgICAgICAgICAgIGNvbnN0IENTdHJpbmcgcHJveHlTdHIgPSB0b1N0
cmluZyhwcm94eVNlcnZlcnNGb3JVUkwodSwgbmV0Q29udGV4dCkpLmxhdGluMSgpOyAvLyBTaG91
bGQgdGhpcyBiZSB1dGY4KCkgPworICAgICAgICAgICAgaWYgKCFwcm94eVN0ci5pc051bGwoKSkg
eworICAgICAgICAgICAgICAgIGNvbnN0IGludCBzaXplID0gcHJveHlTdHIubGVuZ3RoKCk7Cisg
ICAgICAgICAgICAgICAgKnZhbHVlID0gc3RhdGljX2Nhc3Q8Y2hhcio+KE5QTl9NZW1BbGxvYyhz
aXplKzEpKTsKKyAgICAgICAgICAgICAgICBpZiAoKnZhbHVlKSB7CisgICAgICAgICAgICAgICAg
ICAgIG1lbXNldCgqdmFsdWUsIDAsIHNpemUrMSk7CisgICAgICAgICAgICAgICAgICAgIG1lbWNw
eSgqdmFsdWUsIHByb3h5U3RyLmRhdGEoKSwgc2l6ZSsxKTsKKyAgICAgICAgICAgICAgICAgICAg
aWYgKGxlbikKKyAgICAgICAgICAgICAgICAgICAgICAgICpsZW4gPSBzaXplOworICAgICAgICAg
ICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBOUEVSUl9PVVRfT0Zf
TUVNT1JZX0VSUk9SOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UKKyAgICAgICAgICAg
IHJlc3VsdCA9IE5QRVJSX0lOVkFMSURfVVJMOworICAgICAgICBicmVhazsKKyAgICB9CisgICAg
ZGVmYXVsdDoKKyAgICAgICAgcmVzdWx0ID0gTlBFUlJfR0VORVJJQ19FUlJPUjsKKyAgICAgICAg
TE9HKFBsdWdpbnMsICJQbHVnaW5WaWV3OjpnZXRWYWx1ZUZvclVSTDogJXMiLCBwcmV0dHlOYW1l
Rm9yTlBOVVJMVmFyaWFibGUodmFyaWFibGUpLmRhdGEoKSk7CisgICAgICAgIGJyZWFrOworICAg
IH0KKworICAgIHJldHVybiByZXN1bHQ7Cit9CisKKworTlBFcnJvciBQbHVnaW5WaWV3OjpzZXRW
YWx1ZUZvclVSTChOUE5VUkxWYXJpYWJsZSB2YXJpYWJsZSwgY29uc3QgY2hhciogdXJsLCBjb25z
dCBjaGFyKiB2YWx1ZSwgdWludDMyX3QgbGVuKQoreworICAgIExPRyhQbHVnaW5zLCAiUGx1Z2lu
Vmlldzo6c2V0VmFsdWVGb3JVUkwoJXMpIiwgcHJldHR5TmFtZUZvck5QTlVSTFZhcmlhYmxlKHZh
cmlhYmxlKS5kYXRhKCkpOworCisgICAgTlBFcnJvciByZXN1bHQgPSBOUEVSUl9HRU5FUklDX0VS
Uk9SOworCisgICAgc3dpdGNoICh2YXJpYWJsZSkgeworICAgIGNhc2UgTlBOVVJMVkNvb2tpZTog
eworICAgICAgICBLVVJMIHUobV9iYXNlVVJMLCB1cmwpOworICAgICAgICBpZiAodS5pc1ZhbGlk
KCkpIHsKKyAgICAgICAgICAgIFN0cmluZyBjb29raWVTdHIgPSBTdHJpbmc6OmZyb21VVEY4KHZh
bHVlLCBsZW4pOworICAgICAgICAgICAgaWYgKCFjb29raWVTdHIuaXNFbXB0eSgpKQorICAgICAg
ICAgICAgICAgIHNldENvb2tpZXMobV9wYXJlbnRGcmFtZS0+ZG9jdW1lbnQoKSwgdSwgY29va2ll
U3RyKTsKKyAgICAgICAgICAgIHJlc3VsdCA9IE5QRVJSX05PX0VSUk9SOworICAgICAgICB9IGVs
c2UKKyAgICAgICAgICAgIHJlc3VsdCA9IE5QRVJSX0lOVkFMSURfVVJMOworICAgICAgICBicmVh
azsKKyAgICB9CisgICAgY2FzZSBOUE5VUkxWUHJveHk6CisgICAgICAgIExPRyhQbHVnaW5zLCAi
UGx1Z2luVmlldzo6c2V0VmFsdWVGb3JVUkwoJXMpOiBQbHVnaW5zIGFyZSBOT1QgYWxsb3dlZCB0
byBzZXQgcHJveHkgaW5mb3JtYXRpb24uIiwgcHJldHR5TmFtZUZvck5QTlVSTFZhcmlhYmxlKHZh
cmlhYmxlKS5kYXRhKCkpOworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBM
T0coUGx1Z2lucywgIlBsdWdpblZpZXc6OnNldFZhbHVlRm9yVVJMOiAlcyIsIHByZXR0eU5hbWVG
b3JOUE5VUkxWYXJpYWJsZSh2YXJpYWJsZSkuZGF0YSgpKTsKKyAgICAgICAgYnJlYWs7CisgICAg
fQorCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworTlBFcnJvciBQbHVnaW5WaWV3OjpnZXRBdXRo
ZW50aWNhdGlvbkluZm8oY29uc3QgY2hhciogcHJvdG9jb2wsIGNvbnN0IGNoYXIqIGhvc3QsIGlu
dDMyX3QgcG9ydCwgY29uc3QgY2hhciogc2NoZW1lLCBjb25zdCBjaGFyKiByZWFsbSwgY2hhcioq
IHVzZXJuYW1lLCB1aW50MzJfdCogdWxlbiwgY2hhcioqIHBhc3N3b3JkLCB1aW50MzJfdCogcGxl
bikKK3sKKyAgICBMT0coUGx1Z2lucywgIlBsdWdpblZpZXc6OmdldEF1dGhlbnRpY2F0aW9uSW5m
bzogcHJvdG9jb2w9JXMsIGhvc3Q9JXMsIHBvcnQ9JWQiLCBwcm90b2NvbCwgaG9zdCwgcG9ydCk7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gTlBFUlJfR0VORVJJQ19FUlJPUjsK
K30KICNlbmRpZgogCiB2b2lkIFBsdWdpblZpZXc6OnByaXZhdGVCcm93c2luZ1N0YXRlQ2hhbmdl
ZChib29sIHByaXZhdGVCcm93c2luZ0VuYWJsZWQpCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdp
bnMvUGx1Z2luVmlldy5oIGIvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcuaAppbmRleCBhNjE3
ODVjLi5hZjc1NzM2IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5oCisr
KyBiL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmgKQEAgLTE2OCw2ICsxNjgsOSBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIE5QRXJyb3IgZ2V0VmFsdWUoTlBOVmFyaWFibGUgdmFy
aWFibGUsIHZvaWQqIHZhbHVlKTsKICAgICAgICAgc3RhdGljIE5QRXJyb3IgZ2V0VmFsdWVTdGF0
aWMoTlBOVmFyaWFibGUgdmFyaWFibGUsIHZvaWQqIHZhbHVlKTsKICAgICAgICAgTlBFcnJvciBz
ZXRWYWx1ZShOUFBWYXJpYWJsZSB2YXJpYWJsZSwgdm9pZCogdmFsdWUpOworICAgICAgICBOUEVy
cm9yIGdldFZhbHVlRm9yVVJMKE5QTlVSTFZhcmlhYmxlIHZhcmlhYmxlLCBjb25zdCBjaGFyKiB1
cmwsIGNoYXIqKiB2YWx1ZSwgdWludDMyX3QqIGxlbik7CisgICAgICAgIE5QRXJyb3Igc2V0VmFs
dWVGb3JVUkwoTlBOVVJMVmFyaWFibGUgdmFyaWFibGUsIGNvbnN0IGNoYXIqIHVybCwgY29uc3Qg
Y2hhciogdmFsdWUsIHVpbnQzMl90IGxlbik7CisgICAgICAgIE5QRXJyb3IgZ2V0QXV0aGVudGlj
YXRpb25JbmZvKGNvbnN0IGNoYXIqIHByb3RvY29sLCBjb25zdCBjaGFyKiBob3N0LCBpbnQzMl90
IHBvcnQsIGNvbnN0IGNoYXIqIHNjaGVtZSwgY29uc3QgY2hhciogcmVhbG0sIGNoYXIqKiB1c2Vy
bmFtZSwgdWludDMyX3QqIHVsZW4sIGNoYXIqKiBwYXNzd29yZCwgdWludDMyX3QqIHBsZW4pOwog
ICAgICAgICB2b2lkIGludmFsaWRhdGVSZWN0KE5QUmVjdCopOwogICAgICAgICB2b2lkIGludmFs
aWRhdGVSZWdpb24oTlBSZWdpb24pOwogI2VuZGlmCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdp
bnMvbnBhcGkuY3BwIGIvV2ViQ29yZS9wbHVnaW5zL25wYXBpLmNwcAppbmRleCBkMGRiODQ1Li5i
MjcyMWZiIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsdWdpbnMvbnBhcGkuY3BwCisrKyBiL1dlYkNv
cmUvcGx1Z2lucy9ucGFwaS5jcHAKQEAgLTE3NSwzICsxNzUsMTggQEAgdm9pZCBOUE5fUGx1Z2lu
VGhyZWFkQXN5bmNDYWxsKE5QUCBpbnN0YW5jZSwgdm9pZCAoKmZ1bmMpICh2b2lkICopLCB2b2lk
ICp1c2VyRGEKIHsKICAgICBQbHVnaW5NYWluVGhyZWFkU2NoZWR1bGVyOjpzY2hlZHVsZXIoKS5z
Y2hlZHVsZUNhbGwoaW5zdGFuY2UsIGZ1bmMsIHVzZXJEYXRhKTsKIH0KKworTlBFcnJvciBOUE5f
R2V0VmFsdWVGb3JVUkwoTlBQIGluc3RhbmNlLCBOUE5VUkxWYXJpYWJsZSB2YXJpYWJsZSwgY29u
c3QgY2hhciogdXJsLCBjaGFyKiogdmFsdWUsIHVpbnQzMl90KiBsZW4pCit7CisgICAgcmV0dXJu
IHBsdWdpblZpZXdGb3JJbnN0YW5jZShpbnN0YW5jZSktPmdldFZhbHVlRm9yVVJMKHZhcmlhYmxl
LCB1cmwsIHZhbHVlLCBsZW4pOworfQorCitOUEVycm9yIE5QTl9TZXRWYWx1ZUZvclVSTChOUFAg
aW5zdGFuY2UsIE5QTlVSTFZhcmlhYmxlIHZhcmlhYmxlLCBjb25zdCBjaGFyKiB1cmwsIGNvbnN0
IGNoYXIqIHZhbHVlLCB1aW50MzJfdCBsZW4pCit7CisgICAgcmV0dXJuIHBsdWdpblZpZXdGb3JJ
bnN0YW5jZShpbnN0YW5jZSktPnNldFZhbHVlRm9yVVJMKHZhcmlhYmxlLCB1cmwsIHZhbHVlLCBs
ZW4pOworfQorCitOUEVycm9yIE5QTl9HZXRBdXRoZW50aWNhdGlvbkluZm8oTlBQIGluc3RhbmNl
LCBjb25zdCBjaGFyKiBwcm90b2NvbCwgY29uc3QgY2hhciogaG9zdCwgaW50MzJfdCBwb3J0LCBj
b25zdCBjaGFyKiBzY2hlbWUsIGNvbnN0IGNoYXIqIHJlYWxtLCBjaGFyKiogdXNlcm5hbWUsIHVp
bnQzMl90KiB1bGVuLCBjaGFyKiogcGFzc3dvcmQsIHVpbnQzMl90KiBwbGVuKQoreworICAgIHJl
dHVybiBwbHVnaW5WaWV3Rm9ySW5zdGFuY2UoaW5zdGFuY2UpLT5nZXRBdXRoZW50aWNhdGlvbklu
Zm8ocHJvdG9jb2wsIGhvc3QsIHBvcnQsIHNjaGVtZSwgcmVhbG0sIHVzZXJuYW1lLCB1bGVuLCBw
YXNzd29yZCwgcGxlbik7Cit9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>70343</attachid>
            <date>2010-10-08 23:12:50 -0700</date>
            <delta_ts>2010-10-09 01:46:33 -0700</delta_ts>
            <desc>Implement NPN_GetValueForURL and NPN_SetValueForURL and NPN_GetAuthenticationInfo [Final #6]...</desc>
            <filename>implement_npn_functions_necessary_for_java_applet_support.patch</filename>
            <type>text/plain</type>
            <size>14609</size>
            <attacher name="Dawit A.">adawit</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
YmZhZTdmOC4uY2ZlMjg4NiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMyBAQAorMjAxMC0xMC0wMiAgRGF3aXQgQWxlbWF5
ZWh1ICA8YWRhd2l0QGtkZS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkKKworICAgICAgICBJbXBsZW1lbnRlZCBOUE5fR2V0VmFsdWVGb3JVUkwgYW5kIE5QTl9TZXRW
YWx1ZUZvclVSTCBhbmQgTlBOX0dldEF1dGhlbnRpY2F0aW9uSW5mby4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM0NTM5CisKKyAgICAgICAgVGhlc2Ug
bWlzc2luZyBOUE4gZnVuY3Rpb25zIGNhdXNlIEphdmEgYXBwbGV0cyB0byBjcmFzaCBpbiBwb3J0
cyBzdWNoCisgICAgICAgIGFzIFF0V2Via2l0IHRoYXQgcmVseSBvbiB3ZWJraXQgZm9yIEphdmEg
YXBwbGV0IHN1cHBvcnQuCisKKyAgICAgICAgKiBwbHVnaW5zL1BsdWdpbkRlYnVnLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OnByZXR0eU5hbWVGb3JOUE5VUkxWYXJpYWJsZSk6CisgICAgICAgICog
cGx1Z2lucy9QbHVnaW5EZWJ1Zy5oOgorICAgICAgICAqIHBsdWdpbnMvUGx1Z2luUGFja2FnZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5QYWNrYWdlOjppbml0aWFsaXplQnJvd3NlckZ1
bmNzKToKKyAgICAgICAgKiBwbHVnaW5zL1BsdWdpblZpZXcuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UGx1Z2luVmlldzo6Z2V0VmFsdWVGb3JVUkwpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2lu
Vmlldzo6c2V0VmFsdWVGb3JVUkwpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6Z2V0
QXV0aGVudGljYXRpb25JbmZvKToKKyAgICAgICAgKiBwbHVnaW5zL1BsdWdpblZpZXcuaDoKKyAg
ICAgICAgKiBwbHVnaW5zL25wYXBpLmNwcDoKKyAgICAgICAgKE5QTl9HZXRWYWx1ZUZvclVSTCk6
CisgICAgICAgIChOUE5fU2V0VmFsdWVGb3JVUkwpOgorICAgICAgICAoTlBOX0dldEF1dGhlbnRp
Y2F0aW9uSW5mbyk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9Qcm94eVNlcnZlci5oOgor
ICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY2YvUHJveHlTZXJ2ZXJDRk5ldC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpwcm94eVNlcnZlcnNGb3JVUkwpOgorICAgICAgICAqIHBsYXRmb3JtL25l
dHdvcmsvcXQvUHJveHlTZXJ2ZXJRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwcm94eVNlcnZl
cnNGb3JVUkwpOgorCiAyMDEwLTEwLTA4ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90
QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByNjg1NzQuCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUHJveHlTZXJ2ZXIuaCBiL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9Qcm94eVNlcnZlci5oCmluZGV4IGY3NDAxMTQuLjZiNjc3NDcg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Qcm94eVNlcnZlci5oCisrKyBi
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Qcm94eVNlcnZlci5oCkBAIC0zMiw2ICszMiw3IEBA
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEtVUkw7CitjbGFzcyBOZXR3b3JraW5nQ29u
dGV4dDsKIAogLy8gUmVwcmVzZW50cyBhIHNpbmdsZSBwcm94eSBzZXJ2ZXIuCiBjbGFzcyBQcm94
eVNlcnZlciB7CkBAIC02Nyw3ICs2OCw3IEBAIHByaXZhdGU6CiB9OwogCiAvLyBSZXR1cm4gYSB2
ZWN0b3Igb2YgcHJveHkgc2VydmVycyBmb3IgdGhlIGdpdmVuIFVSTC4KLVZlY3RvcjxQcm94eVNl
cnZlcj4gcHJveHlTZXJ2ZXJzRm9yVVJMKGNvbnN0IEtVUkwmKTsKK1ZlY3RvcjxQcm94eVNlcnZl
cj4gcHJveHlTZXJ2ZXJzRm9yVVJMKGNvbnN0IEtVUkwmLCBjb25zdCBOZXR3b3JraW5nQ29udGV4
dCogY29udGV4dCk7CiAKIC8vIENvbnZlcnRzIHRoZSBnaXZlbiB2ZWN0b3Igb2YgcHJveHkgc2Vy
dmVycyB0byBhIFBBQyBzdHJpbmcsIGFzIGRlc2NyaWJlZCBpbgogLy8gaHR0cDovL3dlYi5hcmNo
aXZlLm9yZy93ZWIvMjAwNjA0MjQwMDUwMzcvd3AubmV0c2NhcGUuY29tL2VuZy9tb3ppbGxhLzIu
MC9yZWxub3Rlcy9kZW1vL3Byb3h5LWxpdmUuaHRtbApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2NmL1Byb3h5U2VydmVyQ0ZOZXQuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL2NmL1Byb3h5U2VydmVyQ0ZOZXQuY3BwCmluZGV4IDMzOGMwMDkuLjk3MjA2OTUgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9Qcm94eVNlcnZlckNGTmV0LmNw
cAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUHJveHlTZXJ2ZXJDRk5ldC5jcHAK
QEAgLTc5LDcgKzc5LDcgQEAgc3RhdGljIHZvaWQgYWRkUHJveHlTZXJ2ZXJzRm9yVVJMKFZlY3Rv
cjxQcm94eVNlcnZlcj4mIHByb3h5U2VydmVycywgY29uc3QgS1VSTCYKICAgICB9CiB9CiAKLVZl
Y3RvcjxQcm94eVNlcnZlcj4gcHJveHlTZXJ2ZXJzRm9yVVJMKGNvbnN0IEtVUkwmIHVybCkKK1Zl
Y3RvcjxQcm94eVNlcnZlcj4gcHJveHlTZXJ2ZXJzRm9yVVJMKGNvbnN0IEtVUkwmIHVybCwgY29u
c3QgTmV0d29ya2luZ0NvbnRleHQqKQogewogICAgIFZlY3RvcjxQcm94eVNlcnZlcj4gcHJveHlT
ZXJ2ZXJzOwogICAgIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1By
b3h5U2VydmVyUXQuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1Byb3h5U2VydmVy
UXQuY3BwCmluZGV4IDgxODQ5ZTUuLjU2MDU4MmYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9xdC9Qcm94eVNlcnZlclF0LmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvcXQvUHJveHlTZXJ2ZXJRdC5jcHAKQEAgLTI2LDE1ICsyNiw1MSBAQAogI2luY2x1ZGUg
ImNvbmZpZy5oIgogI2luY2x1ZGUgIlByb3h5U2VydmVyLmgiCiAKLSNpbmNsdWRlICJOb3RJbXBs
ZW1lbnRlZC5oIgogI2luY2x1ZGUgIktVUkwuaCIKKyNpbmNsdWRlICJOZXR3b3JraW5nQ29udGV4
dC5oIgorCisjaW5jbHVkZSA8UU5ldHdvcmtBY2Nlc3NNYW5hZ2VyPgorI2luY2x1ZGUgPFFOZXR3
b3JrUHJveHk+CisjaW5jbHVkZSA8UU5ldHdvcmtQcm94eUZhY3Rvcnk+CisjaW5jbHVkZSA8UU5l
dHdvcmtQcm94eVF1ZXJ5PgorI2luY2x1ZGUgPFFVcmw+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotVmVjdG9yPFByb3h5U2VydmVyPiBwcm94eVNlcnZlcnNGb3JVUkwoY29uc3QgS1VSTCYpCitW
ZWN0b3I8UHJveHlTZXJ2ZXI+IHByb3h5U2VydmVyc0ZvclVSTChjb25zdCBLVVJMJiB1cmwsIGNv
bnN0IE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KQogewotICAgIG5vdEltcGxlbWVudGVkKCk7
Ci0gICAgcmV0dXJuIFZlY3RvcjxQcm94eVNlcnZlcj4oKTsKKyAgICBWZWN0b3I8UHJveHlTZXJ2
ZXI+IHNlcnZlcnM7CisKKyAgICBpZiAoY29udGV4dCkgeworICAgICAgICBjb25zdCBRTmV0d29y
a0FjY2Vzc01hbmFnZXIqIGFjY2Vzc01hbmFnZXIgPSBjb250ZXh0LT5uZXR3b3JrQWNjZXNzTWFu
YWdlcigpOworICAgICAgICBpZiAoYWNjZXNzTWFuYWdlcikgeworICAgICAgICAgICAgUU5ldHdv
cmtQcm94eUZhY3RvcnkqIHByb3h5RmFjdG9yeSA9IGFjY2Vzc01hbmFnZXItPnByb3h5RmFjdG9y
eSgpOworICAgICAgICAgICAgaWYgKHByb3h5RmFjdG9yeSkgeworICAgICAgICAgICAgICAgIGNv
bnN0IFFMaXN0PFFOZXR3b3JrUHJveHk+IHByb3hpZXMgPSBwcm94eUZhY3RvcnktPnF1ZXJ5UHJv
eHkoUU5ldHdvcmtQcm94eVF1ZXJ5KHVybCkpOworICAgICAgICAgICAgICAgIFFfRk9SRUFDSChj
b25zdCBRTmV0d29ya1Byb3h5JiBwcm94eSwgcHJveGllcykgeworICAgICAgICAgICAgICAgICAg
ICBQcm94eVNlcnZlcjo6VHlwZSBwcm94eVR5cGU7CisgICAgICAgICAgICAgICAgICAgIHN3aXRj
aCAocHJveHkudHlwZSgpKSB7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgUU5ldHdvcmtQcm94
eTo6U29ja3M1UHJveHk6CisgICAgICAgICAgICAgICAgICAgICAgICBwcm94eVR5cGUgPSBQcm94
eVNlcnZlcjo6U09DS1M7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgICAgICAgICAgY2FzZSBRTmV0d29ya1Byb3h5OjpIdHRwUHJveHk6CisgICAgICAgICAgICAg
ICAgICAgIGNhc2UgUU5ldHdvcmtQcm94eTo6SHR0cENhY2hpbmdQcm94eToKKyAgICAgICAgICAg
ICAgICAgICAgY2FzZSBRTmV0d29ya1Byb3h5OjpGdHBDYWNoaW5nUHJveHk6CisgICAgICAgICAg
ICAgICAgICAgICAgICBwcm94eVR5cGUgPSBQcm94eVNlcnZlcjo6SFRUUDsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIFFOZXR3b3JrUHJv
eHk6OkRlZmF1bHRQcm94eToKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBRTmV0d29ya1Byb3h5
OjpOb1Byb3h5OgorICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAg
ICAgICAgICAgcHJveHlUeXBlID0gUHJveHlTZXJ2ZXI6OkRpcmVjdDsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
ICAgIHNlcnZlcnMuYXBwZW5kKFByb3h5U2VydmVyKHByb3h5VHlwZSwgcHJveHkuaG9zdE5hbWUo
KSwgcHJveHkucG9ydCgpKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAg
ICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIHNlcnZlcnM7CiB9CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5EZWJ1Zy5jcHAgYi9X
ZWJDb3JlL3BsdWdpbnMvUGx1Z2luRGVidWcuY3BwCmluZGV4IGFjZThiMjEuLjhjM2VmY2IgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5EZWJ1Zy5jcHAKKysrIGIvV2ViQ29yZS9w
bHVnaW5zL1BsdWdpbkRlYnVnLmNwcApAQCAtMTYzLDYgKzE2MywxNCBAQCBDU3RyaW5nIHByZXR0
eU5hbWVGb3JOUFBWYXJpYWJsZShOUFBWYXJpYWJsZSB2YXJpYWJsZSwgdm9pZCogdmFsdWUpCiAg
ICAgfQogfQogCitDU3RyaW5nIHByZXR0eU5hbWVGb3JOUE5VUkxWYXJpYWJsZShOUE5VUkxWYXJp
YWJsZSB2YXJpYWJsZSkKK3sKKyAgICBzd2l0Y2ggKHZhcmlhYmxlKSB7CisgICAgY2FzZSBOUE5V
UkxWQ29va2llOiByZXR1cm4gIk5QTlVSTFZDb29raWUiOworICAgIGNhc2UgTlBOVVJMVlByb3h5
OiByZXR1cm4gIk5QTlVSTFZQcm94eSI7CisgICAgZGVmYXVsdDogcmV0dXJuICJVbmtub3duIHZh
cmlhYmxlIjsKKyAgICB9Cit9CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyAh
TE9HX0RJU0FCTEVECmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luRGVidWcuaCBi
L1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5EZWJ1Zy5oCmluZGV4IDI1NDg2NGYuLjAxN2U2ODYgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5EZWJ1Zy5oCisrKyBiL1dlYkNvcmUvcGx1
Z2lucy9QbHVnaW5EZWJ1Zy5oCkBAIC00MSw2ICs0MSw3IEBAIGNvbnN0IGNoYXIqIHByZXR0eU5h
bWVGb3JOUEVycm9yKE5QRXJyb3IgZXJyb3IpOwogCiBDU3RyaW5nIHByZXR0eU5hbWVGb3JOUE5W
YXJpYWJsZShOUE5WYXJpYWJsZSB2YXJpYWJsZSk7CiBDU3RyaW5nIHByZXR0eU5hbWVGb3JOUFBW
YXJpYWJsZShOUFBWYXJpYWJsZSB2YXJpYWJsZSwgdm9pZCogdmFsdWUpOworQ1N0cmluZyBwcmV0
dHlOYW1lRm9yTlBOVVJMVmFyaWFibGUoTlBOVVJMVmFyaWFibGUgdmFyaWFibGUpOwogCiAjaWZk
ZWYgWFBfTUFDT1NYCiBjb25zdCBjaGFyKiBwcmV0dHlOYW1lRm9yRHJhd2luZ01vZGVsKE5QRHJh
d2luZ01vZGVsIGRyYXdpbmdNb2RlbCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvUGx1
Z2luUGFja2FnZS5jcHAgYi9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luUGFja2FnZS5jcHAKaW5kZXgg
MzljNWYyYS4uMTM2YTYwNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblBhY2th
Z2UuY3BwCisrKyBiL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5QYWNrYWdlLmNwcApAQCAtMzI5LDYg
KzMyOSw5IEBAIHZvaWQgUGx1Z2luUGFja2FnZTo6aW5pdGlhbGl6ZUJyb3dzZXJGdW5jcygpCiAg
ICAgbV9icm93c2VyRnVuY3Muc2V0ZXhjZXB0aW9uID0gX05QTl9TZXRFeGNlcHRpb247CiAgICAg
bV9icm93c2VyRnVuY3MuZW51bWVyYXRlID0gX05QTl9FbnVtZXJhdGU7CiAgICAgbV9icm93c2Vy
RnVuY3MuY29uc3RydWN0ID0gX05QTl9Db25zdHJ1Y3Q7CisgICAgbV9icm93c2VyRnVuY3MuZ2V0
dmFsdWVmb3J1cmwgPSBOUE5fR2V0VmFsdWVGb3JVUkw7CisgICAgbV9icm93c2VyRnVuY3Muc2V0
dmFsdWVmb3J1cmwgPSBOUE5fU2V0VmFsdWVGb3JVUkw7CisgICAgbV9icm93c2VyRnVuY3MuZ2V0
YXV0aGVudGljYXRpb25pbmZvID0gTlBOX0dldEF1dGhlbnRpY2F0aW9uSW5mbzsKIH0KICNlbmRp
ZgogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5jcHAgYi9XZWJDb3Jl
L3BsdWdpbnMvUGx1Z2luVmlldy5jcHAKaW5kZXggZjdkYjAxMC4uZmFlYjc1MCAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcuY3BwCisrKyBiL1dlYkNvcmUvcGx1Z2lucy9Q
bHVnaW5WaWV3LmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkJyaWRnZS5oIgogI2Vu
ZGlmCiAjaW5jbHVkZSAiQ2hyb21lLmgiCisjaW5jbHVkZSAiQ29va2llSmFyLmgiCiAjaW5jbHVk
ZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgogI2luY2x1ZGUgIkVs
ZW1lbnQuaCIKQEAgLTU1LDYgKzU2LDcgQEAKICNpbmNsdWRlICJQbHVnaW5EZWJ1Zy5oIgogI2lu
Y2x1ZGUgIlBsdWdpbk1haW5UaHJlYWRTY2hlZHVsZXIuaCIKICNpbmNsdWRlICJQbHVnaW5QYWNr
YWdlLmgiCisjaW5jbHVkZSAiUHJveHlTZXJ2ZXIuaCIKICNpbmNsdWRlICJSZW5kZXJCb3guaCIK
ICNpbmNsdWRlICJSZW5kZXJPYmplY3QuaCIKICNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgi
CkBAIC0xMzkyLDYgKzEzOTQsMTA3IEBAIE5QRXJyb3IgUGx1Z2luVmlldzo6Z2V0VmFsdWUoTlBO
VmFyaWFibGUgdmFyaWFibGUsIHZvaWQqIHZhbHVlKQogICAgICAgICByZXR1cm4gTlBFUlJfR0VO
RVJJQ19FUlJPUjsKICAgICB9CiB9CisKK05QRXJyb3IgUGx1Z2luVmlldzo6Z2V0VmFsdWVGb3JV
UkwoTlBOVVJMVmFyaWFibGUgdmFyaWFibGUsIGNvbnN0IGNoYXIqIHVybCwgY2hhcioqIHZhbHVl
LCB1aW50MzJfdCogbGVuKQoreworICAgIExPRyhQbHVnaW5zLCAiUGx1Z2luVmlldzo6Z2V0VmFs
dWVGb3JVUkwoJXMpIiwgcHJldHR5TmFtZUZvck5QTlVSTFZhcmlhYmxlKHZhcmlhYmxlKS5kYXRh
KCkpOworCisgICAgTlBFcnJvciByZXN1bHQgPSBOUEVSUl9OT19FUlJPUjsKKworICAgIHN3aXRj
aCAodmFyaWFibGUpIHsKKyAgICBjYXNlIE5QTlVSTFZDb29raWU6IHsKKyAgICAgICAgS1VSTCB1
KG1fYmFzZVVSTCwgdXJsKTsKKyAgICAgICAgaWYgKHUuaXNWYWxpZCgpKSB7CisgICAgICAgICAg
ICBjb25zdCBDU3RyaW5nIGNvb2tpZVN0ciA9IGNvb2tpZXMobV9wYXJlbnRGcmFtZS0+ZG9jdW1l
bnQoKSwgdSkudXRmOCgpOworICAgICAgICAgICAgaWYgKCFjb29raWVTdHIuaXNOdWxsKCkpIHsK
KyAgICAgICAgICAgICAgICBjb25zdCBpbnQgc2l6ZSA9IGNvb2tpZVN0ci5sZW5ndGgoKTsKKyAg
ICAgICAgICAgICAgICAqdmFsdWUgPSBzdGF0aWNfY2FzdDxjaGFyKj4oTlBOX01lbUFsbG9jKHNp
emUrMSkpOworICAgICAgICAgICAgICAgIGlmICgqdmFsdWUpIHsKKyAgICAgICAgICAgICAgICAg
ICAgbWVtc2V0KCp2YWx1ZSwgMCwgc2l6ZSsxKTsKKyAgICAgICAgICAgICAgICAgICAgbWVtY3B5
KCp2YWx1ZSwgY29va2llU3RyLmRhdGEoKSwgc2l6ZSsxKTsKKyAgICAgICAgICAgICAgICAgICAg
aWYgKGxlbikKKyAgICAgICAgICAgICAgICAgICAgICAgICpsZW4gPSBzaXplOworICAgICAgICAg
ICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBOUEVSUl9PVVRfT0Zf
TUVNT1JZX0VSUk9SOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UKKyAgICAgICAgICAg
IHJlc3VsdCA9IE5QRVJSX0lOVkFMSURfVVJMOworICAgICAgICBicmVhazsKKyAgICB9CisgICAg
Y2FzZSBOUE5VUkxWUHJveHk6IHsKKyAgICAgICAgS1VSTCB1KG1fYmFzZVVSTCwgdXJsKTsKKyAg
ICAgICAgaWYgKHUuaXNWYWxpZCgpKSB7CisgICAgICAgICAgICBGcmFtZSogZnJhbWUgPSBwYXJl
bnRGcmFtZSgpOworICAgICAgICAgICAgaWYgKCFmcmFtZSkgeworICAgICAgICAgICAgICAgIERv
Y3VtZW50KiBkb2N1bWVudCA9IG1fZWxlbWVudC0+ZG9jdW1lbnQoKTsKKyAgICAgICAgICAgICAg
ICBpZiAoIWRvY3VtZW50KQorICAgICAgICAgICAgICAgICAgICBkb2N1bWVudCA9IG1fZWxlbWVu
dC0+b3duZXJEb2N1bWVudCgpOworICAgICAgICAgICAgICAgIGlmIChkb2N1bWVudCkKKyAgICAg
ICAgICAgICAgICAgICAgZnJhbWUgPSBkb2N1bWVudC0+ZnJhbWUoKTsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIGNvbnN0IEZyYW1lTG9hZGVyKiBmcmFtZUxvYWRlciA9IGZyYW1lID8gZnJh
bWUtPmxvYWRlcigpIDogMDsKKyAgICAgICAgICAgIGNvbnN0IE5ldHdvcmtpbmdDb250ZXh0KiBu
ZXRDb250ZXh0ID0gZnJhbWVMb2FkZXIgPyBmcmFtZUxvYWRlci0+bmV0d29ya2luZ0NvbnRleHQo
KSA6IDA7CisgICAgICAgICAgICBjb25zdCBDU3RyaW5nIHByb3h5U3RyID0gdG9TdHJpbmcocHJv
eHlTZXJ2ZXJzRm9yVVJMKHUsIG5ldENvbnRleHQpKS51dGY4KCk7CisgICAgICAgICAgICBpZiAo
IXByb3h5U3RyLmlzTnVsbCgpKSB7CisgICAgICAgICAgICAgICAgY29uc3QgaW50IHNpemUgPSBw
cm94eVN0ci5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICAqdmFsdWUgPSBzdGF0aWNfY2FzdDxj
aGFyKj4oTlBOX01lbUFsbG9jKHNpemUrMSkpOworICAgICAgICAgICAgICAgIGlmICgqdmFsdWUp
IHsKKyAgICAgICAgICAgICAgICAgICAgbWVtc2V0KCp2YWx1ZSwgMCwgc2l6ZSsxKTsKKyAgICAg
ICAgICAgICAgICAgICAgbWVtY3B5KCp2YWx1ZSwgcHJveHlTdHIuZGF0YSgpLCBzaXplKzEpOwor
ICAgICAgICAgICAgICAgICAgICBpZiAobGVuKQorICAgICAgICAgICAgICAgICAgICAgICAgKmxl
biA9IHNpemU7CisgICAgICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgICAgIHJl
c3VsdCA9IE5QRVJSX09VVF9PRl9NRU1PUllfRVJST1I7CisgICAgICAgICAgICB9CisgICAgICAg
IH0gZWxzZQorICAgICAgICAgICAgcmVzdWx0ID0gTlBFUlJfSU5WQUxJRF9VUkw7CisgICAgICAg
IGJyZWFrOworICAgIH0KKyAgICBkZWZhdWx0OgorICAgICAgICByZXN1bHQgPSBOUEVSUl9HRU5F
UklDX0VSUk9SOworICAgICAgICBMT0coUGx1Z2lucywgIlBsdWdpblZpZXc6OmdldFZhbHVlRm9y
VVJMOiAlcyIsIHByZXR0eU5hbWVGb3JOUE5VUkxWYXJpYWJsZSh2YXJpYWJsZSkuZGF0YSgpKTsK
KyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworCitOUEVy
cm9yIFBsdWdpblZpZXc6OnNldFZhbHVlRm9yVVJMKE5QTlVSTFZhcmlhYmxlIHZhcmlhYmxlLCBj
b25zdCBjaGFyKiB1cmwsIGNvbnN0IGNoYXIqIHZhbHVlLCB1aW50MzJfdCBsZW4pCit7CisgICAg
TE9HKFBsdWdpbnMsICJQbHVnaW5WaWV3OjpzZXRWYWx1ZUZvclVSTCglcykiLCBwcmV0dHlOYW1l
Rm9yTlBOVVJMVmFyaWFibGUodmFyaWFibGUpLmRhdGEoKSk7CisKKyAgICBOUEVycm9yIHJlc3Vs
dCA9IE5QRVJSX0dFTkVSSUNfRVJST1I7CisKKyAgICBzd2l0Y2ggKHZhcmlhYmxlKSB7CisgICAg
Y2FzZSBOUE5VUkxWQ29va2llOiB7CisgICAgICAgIEtVUkwgdShtX2Jhc2VVUkwsIHVybCk7Cisg
ICAgICAgIGlmICh1LmlzVmFsaWQoKSkgeworICAgICAgICAgICAgU3RyaW5nIGNvb2tpZVN0ciA9
IFN0cmluZzo6ZnJvbVVURjgodmFsdWUsIGxlbik7CisgICAgICAgICAgICBpZiAoIWNvb2tpZVN0
ci5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAgc2V0Q29va2llcyhtX3BhcmVudEZyYW1lLT5k
b2N1bWVudCgpLCB1LCBjb29raWVTdHIpOworICAgICAgICAgICAgcmVzdWx0ID0gTlBFUlJfTk9f
RVJST1I7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgcmVzdWx0ID0gTlBFUlJfSU5WQUxJ
RF9VUkw7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlIE5QTlVSTFZQcm94eToKKyAg
ICAgICAgTE9HKFBsdWdpbnMsICJQbHVnaW5WaWV3OjpzZXRWYWx1ZUZvclVSTCglcyk6IFBsdWdp
bnMgYXJlIE5PVCBhbGxvd2VkIHRvIHNldCBwcm94eSBpbmZvcm1hdGlvbi4iLCBwcmV0dHlOYW1l
Rm9yTlBOVVJMVmFyaWFibGUodmFyaWFibGUpLmRhdGEoKSk7CisgICAgICAgIGJyZWFrOworICAg
IGRlZmF1bHQ6CisgICAgICAgIExPRyhQbHVnaW5zLCAiUGx1Z2luVmlldzo6c2V0VmFsdWVGb3JV
Ukw6ICVzIiwgcHJldHR5TmFtZUZvck5QTlVSTFZhcmlhYmxlKHZhcmlhYmxlKS5kYXRhKCkpOwor
ICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitOUEVycm9y
IFBsdWdpblZpZXc6OmdldEF1dGhlbnRpY2F0aW9uSW5mbyhjb25zdCBjaGFyKiBwcm90b2NvbCwg
Y29uc3QgY2hhciogaG9zdCwgaW50MzJfdCBwb3J0LCBjb25zdCBjaGFyKiBzY2hlbWUsIGNvbnN0
IGNoYXIqIHJlYWxtLCBjaGFyKiogdXNlcm5hbWUsIHVpbnQzMl90KiB1bGVuLCBjaGFyKiogcGFz
c3dvcmQsIHVpbnQzMl90KiBwbGVuKQoreworICAgIExPRyhQbHVnaW5zLCAiUGx1Z2luVmlldzo6
Z2V0QXV0aGVudGljYXRpb25JbmZvOiBwcm90b2NvbD0lcywgaG9zdD0lcywgcG9ydD0lZCIsIHBy
b3RvY29sLCBob3N0LCBwb3J0KTsKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBO
UEVSUl9HRU5FUklDX0VSUk9SOworfQogI2VuZGlmCiAKIHZvaWQgUGx1Z2luVmlldzo6cHJpdmF0
ZUJyb3dzaW5nU3RhdGVDaGFuZ2VkKGJvb2wgcHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCkKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmggYi9XZWJDb3JlL3BsdWdpbnMvUGx1
Z2luVmlldy5oCmluZGV4IGE2MTc4NWMuLmFmNzU3MzYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGx1
Z2lucy9QbHVnaW5WaWV3LmgKKysrIGIvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcuaApAQCAt
MTY4LDYgKzE2OCw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgTlBFcnJvciBnZXRW
YWx1ZShOUE5WYXJpYWJsZSB2YXJpYWJsZSwgdm9pZCogdmFsdWUpOwogICAgICAgICBzdGF0aWMg
TlBFcnJvciBnZXRWYWx1ZVN0YXRpYyhOUE5WYXJpYWJsZSB2YXJpYWJsZSwgdm9pZCogdmFsdWUp
OwogICAgICAgICBOUEVycm9yIHNldFZhbHVlKE5QUFZhcmlhYmxlIHZhcmlhYmxlLCB2b2lkKiB2
YWx1ZSk7CisgICAgICAgIE5QRXJyb3IgZ2V0VmFsdWVGb3JVUkwoTlBOVVJMVmFyaWFibGUgdmFy
aWFibGUsIGNvbnN0IGNoYXIqIHVybCwgY2hhcioqIHZhbHVlLCB1aW50MzJfdCogbGVuKTsKKyAg
ICAgICAgTlBFcnJvciBzZXRWYWx1ZUZvclVSTChOUE5VUkxWYXJpYWJsZSB2YXJpYWJsZSwgY29u
c3QgY2hhciogdXJsLCBjb25zdCBjaGFyKiB2YWx1ZSwgdWludDMyX3QgbGVuKTsKKyAgICAgICAg
TlBFcnJvciBnZXRBdXRoZW50aWNhdGlvbkluZm8oY29uc3QgY2hhciogcHJvdG9jb2wsIGNvbnN0
IGNoYXIqIGhvc3QsIGludDMyX3QgcG9ydCwgY29uc3QgY2hhciogc2NoZW1lLCBjb25zdCBjaGFy
KiByZWFsbSwgY2hhcioqIHVzZXJuYW1lLCB1aW50MzJfdCogdWxlbiwgY2hhcioqIHBhc3N3b3Jk
LCB1aW50MzJfdCogcGxlbik7CiAgICAgICAgIHZvaWQgaW52YWxpZGF0ZVJlY3QoTlBSZWN0Kik7
CiAgICAgICAgIHZvaWQgaW52YWxpZGF0ZVJlZ2lvbihOUFJlZ2lvbik7CiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvcGx1Z2lucy9ucGFwaS5jcHAgYi9XZWJDb3JlL3BsdWdpbnMvbnBhcGku
Y3BwCmluZGV4IGQwZGI4NDUuLmIyNzIxZmIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGx1Z2lucy9u
cGFwaS5jcHAKKysrIGIvV2ViQ29yZS9wbHVnaW5zL25wYXBpLmNwcApAQCAtMTc1LDMgKzE3NSwx
OCBAQCB2b2lkIE5QTl9QbHVnaW5UaHJlYWRBc3luY0NhbGwoTlBQIGluc3RhbmNlLCB2b2lkICgq
ZnVuYykgKHZvaWQgKiksIHZvaWQgKnVzZXJEYQogewogICAgIFBsdWdpbk1haW5UaHJlYWRTY2hl
ZHVsZXI6OnNjaGVkdWxlcigpLnNjaGVkdWxlQ2FsbChpbnN0YW5jZSwgZnVuYywgdXNlckRhdGEp
OwogfQorCitOUEVycm9yIE5QTl9HZXRWYWx1ZUZvclVSTChOUFAgaW5zdGFuY2UsIE5QTlVSTFZh
cmlhYmxlIHZhcmlhYmxlLCBjb25zdCBjaGFyKiB1cmwsIGNoYXIqKiB2YWx1ZSwgdWludDMyX3Qq
IGxlbikKK3sKKyAgICByZXR1cm4gcGx1Z2luVmlld0Zvckluc3RhbmNlKGluc3RhbmNlKS0+Z2V0
VmFsdWVGb3JVUkwodmFyaWFibGUsIHVybCwgdmFsdWUsIGxlbik7Cit9CisKK05QRXJyb3IgTlBO
X1NldFZhbHVlRm9yVVJMKE5QUCBpbnN0YW5jZSwgTlBOVVJMVmFyaWFibGUgdmFyaWFibGUsIGNv
bnN0IGNoYXIqIHVybCwgY29uc3QgY2hhciogdmFsdWUsIHVpbnQzMl90IGxlbikKK3sKKyAgICBy
ZXR1cm4gcGx1Z2luVmlld0Zvckluc3RhbmNlKGluc3RhbmNlKS0+c2V0VmFsdWVGb3JVUkwodmFy
aWFibGUsIHVybCwgdmFsdWUsIGxlbik7Cit9CisKK05QRXJyb3IgTlBOX0dldEF1dGhlbnRpY2F0
aW9uSW5mbyhOUFAgaW5zdGFuY2UsIGNvbnN0IGNoYXIqIHByb3RvY29sLCBjb25zdCBjaGFyKiBo
b3N0LCBpbnQzMl90IHBvcnQsIGNvbnN0IGNoYXIqIHNjaGVtZSwgY29uc3QgY2hhciogcmVhbG0s
IGNoYXIqKiB1c2VybmFtZSwgdWludDMyX3QqIHVsZW4sIGNoYXIqKiBwYXNzd29yZCwgdWludDMy
X3QqIHBsZW4pCit7CisgICAgcmV0dXJuIHBsdWdpblZpZXdGb3JJbnN0YW5jZShpbnN0YW5jZSkt
PmdldEF1dGhlbnRpY2F0aW9uSW5mbyhwcm90b2NvbCwgaG9zdCwgcG9ydCwgc2NoZW1lLCByZWFs
bSwgdXNlcm5hbWUsIHVsZW4sIHBhc3N3b3JkLCBwbGVuKTsKK30KZGlmZiAtLWdpdCBhL1dlYktp
dC9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5Lm1tIGIvV2Vi
S2l0L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkubW0KaW5k
ZXggMWEyYjhhMS4uMGI5MDM2YSAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3Rl
ZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkubW0KKysrIGIvV2ViS2l0L21hYy9QbHVnaW5z
L0hvc3RlZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkubW0KQEAgLTE1NTgsNyArMTU1OCw3
IEBAIGJvb2wgTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5OjpnZXRQcm94eShkYXRhX3QgdXJs
RGF0YSwgbWFjaF9tc2dfdHlwZV9udW1iZXJfCiAgICAgaWYgKCF1cmwpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKIAotICAgIFZlY3RvcjxQcm94eVNlcnZlcj4gcHJveHlTZXJ2ZXJzID0gcHJveHlT
ZXJ2ZXJzRm9yVVJMKHVybCk7CisgICAgVmVjdG9yPFByb3h5U2VydmVyPiBwcm94eVNlcnZlcnMg
PSBwcm94eVNlcnZlcnNGb3JVUkwodXJsLCAwKTsKICAgICBXVEY6OkNTdHJpbmcgcHJveHlTdHJp
bmdVVEY4ID0gdG9TdHJpbmcocHJveHlTZXJ2ZXJzKS51dGY4KCk7CiAKICAgICBwcm94eUxlbmd0
aCA9IHByb3h5U3RyaW5nVVRGOC5sZW5ndGgoKTsKZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvUGx1
Z2lucy9XZWJOZXRzY2FwZVBsdWdpblZpZXcubW0gYi9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViTmV0
c2NhcGVQbHVnaW5WaWV3Lm1tCmluZGV4IDU0MmQ1OWQuLjQ4NTc0YmYgMTAwNjQ0Ci0tLSBhL1dl
YktpdC9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpblZpZXcubW0KKysrIGIvV2ViS2l0L21h
Yy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luVmlldy5tbQpAQCAtMjI0MCw3ICsyMjQwLDcgQEAg
c3RhdGljIGlubGluZSB2b2lkIGdldE5QUmVjdChjb25zdCBOU1JlY3QmIG5yLCBOUFJlY3QmIG5w
cikKICAgICAgICAgICAgIGlmICghVVJMKQogICAgICAgICAgICAgICAgIGJyZWFrOwogCi0gICAg
ICAgICAgICBWZWN0b3I8UHJveHlTZXJ2ZXI+IHByb3h5U2VydmVycyA9IHByb3h5U2VydmVyc0Zv
clVSTChVUkwpOworICAgICAgICAgICAgVmVjdG9yPFByb3h5U2VydmVyPiBwcm94eVNlcnZlcnMg
PSBwcm94eVNlcnZlcnNGb3JVUkwoVVJMLCAwKTsKICAgICAgICAgICAgIENTdHJpbmcgcHJveGll
c1VURjggPSB0b1N0cmluZyhwcm94eVNlcnZlcnMpLnV0ZjgoKTsKICAgICAgICAgICAgIAogICAg
ICAgICAgICAgKnZhbHVlID0gc3RhdGljX2Nhc3Q8Y2hhcio+KE5QTl9NZW1BbGxvYyhwcm94aWVz
VVRGOC5sZW5ndGgoKSkpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>70346</attachid>
            <date>2010-10-09 01:46:33 -0700</date>
            <delta_ts>2010-10-09 13:42:07 -0700</delta_ts>
            <desc>Implement NPN_GetValueForURL and NPN_SetValueForURL and NPN_GetAuthenticationInfo [Final #7]...</desc>
            <filename>implement_npn_functions_necessary_for_java_applet_support.patch</filename>
            <type>text/plain</type>
            <size>15636</size>
            <attacher name="Dawit A.">adawit</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
YmZhZTdmOC4uY2ZlMjg4NiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMyBAQAorMjAxMC0xMC0wMiAgRGF3aXQgQWxlbWF5
ZWh1ICA8YWRhd2l0QGtkZS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkKKworICAgICAgICBJbXBsZW1lbnRlZCBOUE5fR2V0VmFsdWVGb3JVUkwgYW5kIE5QTl9TZXRW
YWx1ZUZvclVSTCBhbmQgTlBOX0dldEF1dGhlbnRpY2F0aW9uSW5mby4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM0NTM5CisKKyAgICAgICAgVGhlc2Ug
bWlzc2luZyBOUE4gZnVuY3Rpb25zIGNhdXNlIEphdmEgYXBwbGV0cyB0byBjcmFzaCBpbiBwb3J0
cyBzdWNoCisgICAgICAgIGFzIFF0V2Via2l0IHRoYXQgcmVseSBvbiB3ZWJraXQgZm9yIEphdmEg
YXBwbGV0IHN1cHBvcnQuCisKKyAgICAgICAgKiBwbHVnaW5zL1BsdWdpbkRlYnVnLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OnByZXR0eU5hbWVGb3JOUE5VUkxWYXJpYWJsZSk6CisgICAgICAgICog
cGx1Z2lucy9QbHVnaW5EZWJ1Zy5oOgorICAgICAgICAqIHBsdWdpbnMvUGx1Z2luUGFja2FnZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5QYWNrYWdlOjppbml0aWFsaXplQnJvd3NlckZ1
bmNzKToKKyAgICAgICAgKiBwbHVnaW5zL1BsdWdpblZpZXcuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UGx1Z2luVmlldzo6Z2V0VmFsdWVGb3JVUkwpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2lu
Vmlldzo6c2V0VmFsdWVGb3JVUkwpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6Z2V0
QXV0aGVudGljYXRpb25JbmZvKToKKyAgICAgICAgKiBwbHVnaW5zL1BsdWdpblZpZXcuaDoKKyAg
ICAgICAgKiBwbHVnaW5zL25wYXBpLmNwcDoKKyAgICAgICAgKE5QTl9HZXRWYWx1ZUZvclVSTCk6
CisgICAgICAgIChOUE5fU2V0VmFsdWVGb3JVUkwpOgorICAgICAgICAoTlBOX0dldEF1dGhlbnRp
Y2F0aW9uSW5mbyk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9Qcm94eVNlcnZlci5oOgor
ICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY2YvUHJveHlTZXJ2ZXJDRk5ldC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpwcm94eVNlcnZlcnNGb3JVUkwpOgorICAgICAgICAqIHBsYXRmb3JtL25l
dHdvcmsvcXQvUHJveHlTZXJ2ZXJRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwcm94eVNlcnZl
cnNGb3JVUkwpOgorCiAyMDEwLTEwLTA4ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90
QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByNjg1NzQuCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUHJveHlTZXJ2ZXIuaCBiL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9Qcm94eVNlcnZlci5oCmluZGV4IGY3NDAxMTQuLjZiNjc3NDcg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Qcm94eVNlcnZlci5oCisrKyBi
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Qcm94eVNlcnZlci5oCkBAIC0zMiw2ICszMiw3IEBA
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEtVUkw7CitjbGFzcyBOZXR3b3JraW5nQ29u
dGV4dDsKIAogLy8gUmVwcmVzZW50cyBhIHNpbmdsZSBwcm94eSBzZXJ2ZXIuCiBjbGFzcyBQcm94
eVNlcnZlciB7CkBAIC02Nyw3ICs2OCw3IEBAIHByaXZhdGU6CiB9OwogCiAvLyBSZXR1cm4gYSB2
ZWN0b3Igb2YgcHJveHkgc2VydmVycyBmb3IgdGhlIGdpdmVuIFVSTC4KLVZlY3RvcjxQcm94eVNl
cnZlcj4gcHJveHlTZXJ2ZXJzRm9yVVJMKGNvbnN0IEtVUkwmKTsKK1ZlY3RvcjxQcm94eVNlcnZl
cj4gcHJveHlTZXJ2ZXJzRm9yVVJMKGNvbnN0IEtVUkwmLCBjb25zdCBOZXR3b3JraW5nQ29udGV4
dCogY29udGV4dCk7CiAKIC8vIENvbnZlcnRzIHRoZSBnaXZlbiB2ZWN0b3Igb2YgcHJveHkgc2Vy
dmVycyB0byBhIFBBQyBzdHJpbmcsIGFzIGRlc2NyaWJlZCBpbgogLy8gaHR0cDovL3dlYi5hcmNo
aXZlLm9yZy93ZWIvMjAwNjA0MjQwMDUwMzcvd3AubmV0c2NhcGUuY29tL2VuZy9tb3ppbGxhLzIu
MC9yZWxub3Rlcy9kZW1vL3Byb3h5LWxpdmUuaHRtbApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2NmL1Byb3h5U2VydmVyQ0ZOZXQuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL2NmL1Byb3h5U2VydmVyQ0ZOZXQuY3BwCmluZGV4IDMzOGMwMDkuLjk3MjA2OTUgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9Qcm94eVNlcnZlckNGTmV0LmNw
cAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUHJveHlTZXJ2ZXJDRk5ldC5jcHAK
QEAgLTc5LDcgKzc5LDcgQEAgc3RhdGljIHZvaWQgYWRkUHJveHlTZXJ2ZXJzRm9yVVJMKFZlY3Rv
cjxQcm94eVNlcnZlcj4mIHByb3h5U2VydmVycywgY29uc3QgS1VSTCYKICAgICB9CiB9CiAKLVZl
Y3RvcjxQcm94eVNlcnZlcj4gcHJveHlTZXJ2ZXJzRm9yVVJMKGNvbnN0IEtVUkwmIHVybCkKK1Zl
Y3RvcjxQcm94eVNlcnZlcj4gcHJveHlTZXJ2ZXJzRm9yVVJMKGNvbnN0IEtVUkwmIHVybCwgY29u
c3QgTmV0d29ya2luZ0NvbnRleHQqKQogewogICAgIFZlY3RvcjxQcm94eVNlcnZlcj4gcHJveHlT
ZXJ2ZXJzOwogICAgIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1By
b3h5U2VydmVyUXQuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1Byb3h5U2VydmVy
UXQuY3BwCmluZGV4IDgxODQ5ZTUuLjU2MDU4MmYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9xdC9Qcm94eVNlcnZlclF0LmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvcXQvUHJveHlTZXJ2ZXJRdC5jcHAKQEAgLTI2LDE1ICsyNiw1MSBAQAogI2luY2x1ZGUg
ImNvbmZpZy5oIgogI2luY2x1ZGUgIlByb3h5U2VydmVyLmgiCiAKLSNpbmNsdWRlICJOb3RJbXBs
ZW1lbnRlZC5oIgogI2luY2x1ZGUgIktVUkwuaCIKKyNpbmNsdWRlICJOZXR3b3JraW5nQ29udGV4
dC5oIgorCisjaW5jbHVkZSA8UU5ldHdvcmtBY2Nlc3NNYW5hZ2VyPgorI2luY2x1ZGUgPFFOZXR3
b3JrUHJveHk+CisjaW5jbHVkZSA8UU5ldHdvcmtQcm94eUZhY3Rvcnk+CisjaW5jbHVkZSA8UU5l
dHdvcmtQcm94eVF1ZXJ5PgorI2luY2x1ZGUgPFFVcmw+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotVmVjdG9yPFByb3h5U2VydmVyPiBwcm94eVNlcnZlcnNGb3JVUkwoY29uc3QgS1VSTCYpCitW
ZWN0b3I8UHJveHlTZXJ2ZXI+IHByb3h5U2VydmVyc0ZvclVSTChjb25zdCBLVVJMJiB1cmwsIGNv
bnN0IE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KQogewotICAgIG5vdEltcGxlbWVudGVkKCk7
Ci0gICAgcmV0dXJuIFZlY3RvcjxQcm94eVNlcnZlcj4oKTsKKyAgICBWZWN0b3I8UHJveHlTZXJ2
ZXI+IHNlcnZlcnM7CisKKyAgICBpZiAoY29udGV4dCkgeworICAgICAgICBjb25zdCBRTmV0d29y
a0FjY2Vzc01hbmFnZXIqIGFjY2Vzc01hbmFnZXIgPSBjb250ZXh0LT5uZXR3b3JrQWNjZXNzTWFu
YWdlcigpOworICAgICAgICBpZiAoYWNjZXNzTWFuYWdlcikgeworICAgICAgICAgICAgUU5ldHdv
cmtQcm94eUZhY3RvcnkqIHByb3h5RmFjdG9yeSA9IGFjY2Vzc01hbmFnZXItPnByb3h5RmFjdG9y
eSgpOworICAgICAgICAgICAgaWYgKHByb3h5RmFjdG9yeSkgeworICAgICAgICAgICAgICAgIGNv
bnN0IFFMaXN0PFFOZXR3b3JrUHJveHk+IHByb3hpZXMgPSBwcm94eUZhY3RvcnktPnF1ZXJ5UHJv
eHkoUU5ldHdvcmtQcm94eVF1ZXJ5KHVybCkpOworICAgICAgICAgICAgICAgIFFfRk9SRUFDSChj
b25zdCBRTmV0d29ya1Byb3h5JiBwcm94eSwgcHJveGllcykgeworICAgICAgICAgICAgICAgICAg
ICBQcm94eVNlcnZlcjo6VHlwZSBwcm94eVR5cGU7CisgICAgICAgICAgICAgICAgICAgIHN3aXRj
aCAocHJveHkudHlwZSgpKSB7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgUU5ldHdvcmtQcm94
eTo6U29ja3M1UHJveHk6CisgICAgICAgICAgICAgICAgICAgICAgICBwcm94eVR5cGUgPSBQcm94
eVNlcnZlcjo6U09DS1M7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgICAgICAgICAgY2FzZSBRTmV0d29ya1Byb3h5OjpIdHRwUHJveHk6CisgICAgICAgICAgICAg
ICAgICAgIGNhc2UgUU5ldHdvcmtQcm94eTo6SHR0cENhY2hpbmdQcm94eToKKyAgICAgICAgICAg
ICAgICAgICAgY2FzZSBRTmV0d29ya1Byb3h5OjpGdHBDYWNoaW5nUHJveHk6CisgICAgICAgICAg
ICAgICAgICAgICAgICBwcm94eVR5cGUgPSBQcm94eVNlcnZlcjo6SFRUUDsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIFFOZXR3b3JrUHJv
eHk6OkRlZmF1bHRQcm94eToKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBRTmV0d29ya1Byb3h5
OjpOb1Byb3h5OgorICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAg
ICAgICAgICAgcHJveHlUeXBlID0gUHJveHlTZXJ2ZXI6OkRpcmVjdDsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
ICAgIHNlcnZlcnMuYXBwZW5kKFByb3h5U2VydmVyKHByb3h5VHlwZSwgcHJveHkuaG9zdE5hbWUo
KSwgcHJveHkucG9ydCgpKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAg
ICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIHNlcnZlcnM7CiB9CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5EZWJ1Zy5jcHAgYi9X
ZWJDb3JlL3BsdWdpbnMvUGx1Z2luRGVidWcuY3BwCmluZGV4IGFjZThiMjEuLjhjM2VmY2IgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5EZWJ1Zy5jcHAKKysrIGIvV2ViQ29yZS9w
bHVnaW5zL1BsdWdpbkRlYnVnLmNwcApAQCAtMTYzLDYgKzE2MywxNCBAQCBDU3RyaW5nIHByZXR0
eU5hbWVGb3JOUFBWYXJpYWJsZShOUFBWYXJpYWJsZSB2YXJpYWJsZSwgdm9pZCogdmFsdWUpCiAg
ICAgfQogfQogCitDU3RyaW5nIHByZXR0eU5hbWVGb3JOUE5VUkxWYXJpYWJsZShOUE5VUkxWYXJp
YWJsZSB2YXJpYWJsZSkKK3sKKyAgICBzd2l0Y2ggKHZhcmlhYmxlKSB7CisgICAgY2FzZSBOUE5V
UkxWQ29va2llOiByZXR1cm4gIk5QTlVSTFZDb29raWUiOworICAgIGNhc2UgTlBOVVJMVlByb3h5
OiByZXR1cm4gIk5QTlVSTFZQcm94eSI7CisgICAgZGVmYXVsdDogcmV0dXJuICJVbmtub3duIHZh
cmlhYmxlIjsKKyAgICB9Cit9CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyAh
TE9HX0RJU0FCTEVECmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luRGVidWcuaCBi
L1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5EZWJ1Zy5oCmluZGV4IDI1NDg2NGYuLjAxN2U2ODYgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5EZWJ1Zy5oCisrKyBiL1dlYkNvcmUvcGx1
Z2lucy9QbHVnaW5EZWJ1Zy5oCkBAIC00MSw2ICs0MSw3IEBAIGNvbnN0IGNoYXIqIHByZXR0eU5h
bWVGb3JOUEVycm9yKE5QRXJyb3IgZXJyb3IpOwogCiBDU3RyaW5nIHByZXR0eU5hbWVGb3JOUE5W
YXJpYWJsZShOUE5WYXJpYWJsZSB2YXJpYWJsZSk7CiBDU3RyaW5nIHByZXR0eU5hbWVGb3JOUFBW
YXJpYWJsZShOUFBWYXJpYWJsZSB2YXJpYWJsZSwgdm9pZCogdmFsdWUpOworQ1N0cmluZyBwcmV0
dHlOYW1lRm9yTlBOVVJMVmFyaWFibGUoTlBOVVJMVmFyaWFibGUgdmFyaWFibGUpOwogCiAjaWZk
ZWYgWFBfTUFDT1NYCiBjb25zdCBjaGFyKiBwcmV0dHlOYW1lRm9yRHJhd2luZ01vZGVsKE5QRHJh
d2luZ01vZGVsIGRyYXdpbmdNb2RlbCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvUGx1
Z2luUGFja2FnZS5jcHAgYi9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luUGFja2FnZS5jcHAKaW5kZXgg
MzljNWYyYS4uMTM2YTYwNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblBhY2th
Z2UuY3BwCisrKyBiL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5QYWNrYWdlLmNwcApAQCAtMzI5LDYg
KzMyOSw5IEBAIHZvaWQgUGx1Z2luUGFja2FnZTo6aW5pdGlhbGl6ZUJyb3dzZXJGdW5jcygpCiAg
ICAgbV9icm93c2VyRnVuY3Muc2V0ZXhjZXB0aW9uID0gX05QTl9TZXRFeGNlcHRpb247CiAgICAg
bV9icm93c2VyRnVuY3MuZW51bWVyYXRlID0gX05QTl9FbnVtZXJhdGU7CiAgICAgbV9icm93c2Vy
RnVuY3MuY29uc3RydWN0ID0gX05QTl9Db25zdHJ1Y3Q7CisgICAgbV9icm93c2VyRnVuY3MuZ2V0
dmFsdWVmb3J1cmwgPSBOUE5fR2V0VmFsdWVGb3JVUkw7CisgICAgbV9icm93c2VyRnVuY3Muc2V0
dmFsdWVmb3J1cmwgPSBOUE5fU2V0VmFsdWVGb3JVUkw7CisgICAgbV9icm93c2VyRnVuY3MuZ2V0
YXV0aGVudGljYXRpb25pbmZvID0gTlBOX0dldEF1dGhlbnRpY2F0aW9uSW5mbzsKIH0KICNlbmRp
ZgogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5jcHAgYi9XZWJDb3Jl
L3BsdWdpbnMvUGx1Z2luVmlldy5jcHAKaW5kZXggZjdkYjAxMC4uZmFlYjc1MCAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcuY3BwCisrKyBiL1dlYkNvcmUvcGx1Z2lucy9Q
bHVnaW5WaWV3LmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkJyaWRnZS5oIgogI2Vu
ZGlmCiAjaW5jbHVkZSAiQ2hyb21lLmgiCisjaW5jbHVkZSAiQ29va2llSmFyLmgiCiAjaW5jbHVk
ZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgogI2luY2x1ZGUgIkVs
ZW1lbnQuaCIKQEAgLTU1LDYgKzU2LDcgQEAKICNpbmNsdWRlICJQbHVnaW5EZWJ1Zy5oIgogI2lu
Y2x1ZGUgIlBsdWdpbk1haW5UaHJlYWRTY2hlZHVsZXIuaCIKICNpbmNsdWRlICJQbHVnaW5QYWNr
YWdlLmgiCisjaW5jbHVkZSAiUHJveHlTZXJ2ZXIuaCIKICNpbmNsdWRlICJSZW5kZXJCb3guaCIK
ICNpbmNsdWRlICJSZW5kZXJPYmplY3QuaCIKICNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgi
CkBAIC0xMzkyLDYgKzEzOTQsMTA3IEBAIE5QRXJyb3IgUGx1Z2luVmlldzo6Z2V0VmFsdWUoTlBO
VmFyaWFibGUgdmFyaWFibGUsIHZvaWQqIHZhbHVlKQogICAgICAgICByZXR1cm4gTlBFUlJfR0VO
RVJJQ19FUlJPUjsKICAgICB9CiB9CisKK05QRXJyb3IgUGx1Z2luVmlldzo6Z2V0VmFsdWVGb3JV
UkwoTlBOVVJMVmFyaWFibGUgdmFyaWFibGUsIGNvbnN0IGNoYXIqIHVybCwgY2hhcioqIHZhbHVl
LCB1aW50MzJfdCogbGVuKQoreworICAgIExPRyhQbHVnaW5zLCAiUGx1Z2luVmlldzo6Z2V0VmFs
dWVGb3JVUkwoJXMpIiwgcHJldHR5TmFtZUZvck5QTlVSTFZhcmlhYmxlKHZhcmlhYmxlKS5kYXRh
KCkpOworCisgICAgTlBFcnJvciByZXN1bHQgPSBOUEVSUl9OT19FUlJPUjsKKworICAgIHN3aXRj
aCAodmFyaWFibGUpIHsKKyAgICBjYXNlIE5QTlVSTFZDb29raWU6IHsKKyAgICAgICAgS1VSTCB1
KG1fYmFzZVVSTCwgdXJsKTsKKyAgICAgICAgaWYgKHUuaXNWYWxpZCgpKSB7CisgICAgICAgICAg
ICBjb25zdCBDU3RyaW5nIGNvb2tpZVN0ciA9IGNvb2tpZXMobV9wYXJlbnRGcmFtZS0+ZG9jdW1l
bnQoKSwgdSkudXRmOCgpOworICAgICAgICAgICAgaWYgKCFjb29raWVTdHIuaXNOdWxsKCkpIHsK
KyAgICAgICAgICAgICAgICBjb25zdCBpbnQgc2l6ZSA9IGNvb2tpZVN0ci5sZW5ndGgoKTsKKyAg
ICAgICAgICAgICAgICAqdmFsdWUgPSBzdGF0aWNfY2FzdDxjaGFyKj4oTlBOX01lbUFsbG9jKHNp
emUrMSkpOworICAgICAgICAgICAgICAgIGlmICgqdmFsdWUpIHsKKyAgICAgICAgICAgICAgICAg
ICAgbWVtc2V0KCp2YWx1ZSwgMCwgc2l6ZSsxKTsKKyAgICAgICAgICAgICAgICAgICAgbWVtY3B5
KCp2YWx1ZSwgY29va2llU3RyLmRhdGEoKSwgc2l6ZSsxKTsKKyAgICAgICAgICAgICAgICAgICAg
aWYgKGxlbikKKyAgICAgICAgICAgICAgICAgICAgICAgICpsZW4gPSBzaXplOworICAgICAgICAg
ICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBOUEVSUl9PVVRfT0Zf
TUVNT1JZX0VSUk9SOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UKKyAgICAgICAgICAg
IHJlc3VsdCA9IE5QRVJSX0lOVkFMSURfVVJMOworICAgICAgICBicmVhazsKKyAgICB9CisgICAg
Y2FzZSBOUE5VUkxWUHJveHk6IHsKKyAgICAgICAgS1VSTCB1KG1fYmFzZVVSTCwgdXJsKTsKKyAg
ICAgICAgaWYgKHUuaXNWYWxpZCgpKSB7CisgICAgICAgICAgICBGcmFtZSogZnJhbWUgPSBwYXJl
bnRGcmFtZSgpOworICAgICAgICAgICAgaWYgKCFmcmFtZSkgeworICAgICAgICAgICAgICAgIERv
Y3VtZW50KiBkb2N1bWVudCA9IG1fZWxlbWVudC0+ZG9jdW1lbnQoKTsKKyAgICAgICAgICAgICAg
ICBpZiAoIWRvY3VtZW50KQorICAgICAgICAgICAgICAgICAgICBkb2N1bWVudCA9IG1fZWxlbWVu
dC0+b3duZXJEb2N1bWVudCgpOworICAgICAgICAgICAgICAgIGlmIChkb2N1bWVudCkKKyAgICAg
ICAgICAgICAgICAgICAgZnJhbWUgPSBkb2N1bWVudC0+ZnJhbWUoKTsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIGNvbnN0IEZyYW1lTG9hZGVyKiBmcmFtZUxvYWRlciA9IGZyYW1lID8gZnJh
bWUtPmxvYWRlcigpIDogMDsKKyAgICAgICAgICAgIGNvbnN0IE5ldHdvcmtpbmdDb250ZXh0KiBu
ZXRDb250ZXh0ID0gZnJhbWVMb2FkZXIgPyBmcmFtZUxvYWRlci0+bmV0d29ya2luZ0NvbnRleHQo
KSA6IDA7CisgICAgICAgICAgICBjb25zdCBDU3RyaW5nIHByb3h5U3RyID0gdG9TdHJpbmcocHJv
eHlTZXJ2ZXJzRm9yVVJMKHUsIG5ldENvbnRleHQpKS51dGY4KCk7CisgICAgICAgICAgICBpZiAo
IXByb3h5U3RyLmlzTnVsbCgpKSB7CisgICAgICAgICAgICAgICAgY29uc3QgaW50IHNpemUgPSBw
cm94eVN0ci5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICAqdmFsdWUgPSBzdGF0aWNfY2FzdDxj
aGFyKj4oTlBOX01lbUFsbG9jKHNpemUrMSkpOworICAgICAgICAgICAgICAgIGlmICgqdmFsdWUp
IHsKKyAgICAgICAgICAgICAgICAgICAgbWVtc2V0KCp2YWx1ZSwgMCwgc2l6ZSsxKTsKKyAgICAg
ICAgICAgICAgICAgICAgbWVtY3B5KCp2YWx1ZSwgcHJveHlTdHIuZGF0YSgpLCBzaXplKzEpOwor
ICAgICAgICAgICAgICAgICAgICBpZiAobGVuKQorICAgICAgICAgICAgICAgICAgICAgICAgKmxl
biA9IHNpemU7CisgICAgICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgICAgIHJl
c3VsdCA9IE5QRVJSX09VVF9PRl9NRU1PUllfRVJST1I7CisgICAgICAgICAgICB9CisgICAgICAg
IH0gZWxzZQorICAgICAgICAgICAgcmVzdWx0ID0gTlBFUlJfSU5WQUxJRF9VUkw7CisgICAgICAg
IGJyZWFrOworICAgIH0KKyAgICBkZWZhdWx0OgorICAgICAgICByZXN1bHQgPSBOUEVSUl9HRU5F
UklDX0VSUk9SOworICAgICAgICBMT0coUGx1Z2lucywgIlBsdWdpblZpZXc6OmdldFZhbHVlRm9y
VVJMOiAlcyIsIHByZXR0eU5hbWVGb3JOUE5VUkxWYXJpYWJsZSh2YXJpYWJsZSkuZGF0YSgpKTsK
KyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworCitOUEVy
cm9yIFBsdWdpblZpZXc6OnNldFZhbHVlRm9yVVJMKE5QTlVSTFZhcmlhYmxlIHZhcmlhYmxlLCBj
b25zdCBjaGFyKiB1cmwsIGNvbnN0IGNoYXIqIHZhbHVlLCB1aW50MzJfdCBsZW4pCit7CisgICAg
TE9HKFBsdWdpbnMsICJQbHVnaW5WaWV3OjpzZXRWYWx1ZUZvclVSTCglcykiLCBwcmV0dHlOYW1l
Rm9yTlBOVVJMVmFyaWFibGUodmFyaWFibGUpLmRhdGEoKSk7CisKKyAgICBOUEVycm9yIHJlc3Vs
dCA9IE5QRVJSX0dFTkVSSUNfRVJST1I7CisKKyAgICBzd2l0Y2ggKHZhcmlhYmxlKSB7CisgICAg
Y2FzZSBOUE5VUkxWQ29va2llOiB7CisgICAgICAgIEtVUkwgdShtX2Jhc2VVUkwsIHVybCk7Cisg
ICAgICAgIGlmICh1LmlzVmFsaWQoKSkgeworICAgICAgICAgICAgU3RyaW5nIGNvb2tpZVN0ciA9
IFN0cmluZzo6ZnJvbVVURjgodmFsdWUsIGxlbik7CisgICAgICAgICAgICBpZiAoIWNvb2tpZVN0
ci5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAgc2V0Q29va2llcyhtX3BhcmVudEZyYW1lLT5k
b2N1bWVudCgpLCB1LCBjb29raWVTdHIpOworICAgICAgICAgICAgcmVzdWx0ID0gTlBFUlJfTk9f
RVJST1I7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgcmVzdWx0ID0gTlBFUlJfSU5WQUxJ
RF9VUkw7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlIE5QTlVSTFZQcm94eToKKyAg
ICAgICAgTE9HKFBsdWdpbnMsICJQbHVnaW5WaWV3OjpzZXRWYWx1ZUZvclVSTCglcyk6IFBsdWdp
bnMgYXJlIE5PVCBhbGxvd2VkIHRvIHNldCBwcm94eSBpbmZvcm1hdGlvbi4iLCBwcmV0dHlOYW1l
Rm9yTlBOVVJMVmFyaWFibGUodmFyaWFibGUpLmRhdGEoKSk7CisgICAgICAgIGJyZWFrOworICAg
IGRlZmF1bHQ6CisgICAgICAgIExPRyhQbHVnaW5zLCAiUGx1Z2luVmlldzo6c2V0VmFsdWVGb3JV
Ukw6ICVzIiwgcHJldHR5TmFtZUZvck5QTlVSTFZhcmlhYmxlKHZhcmlhYmxlKS5kYXRhKCkpOwor
ICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitOUEVycm9y
IFBsdWdpblZpZXc6OmdldEF1dGhlbnRpY2F0aW9uSW5mbyhjb25zdCBjaGFyKiBwcm90b2NvbCwg
Y29uc3QgY2hhciogaG9zdCwgaW50MzJfdCBwb3J0LCBjb25zdCBjaGFyKiBzY2hlbWUsIGNvbnN0
IGNoYXIqIHJlYWxtLCBjaGFyKiogdXNlcm5hbWUsIHVpbnQzMl90KiB1bGVuLCBjaGFyKiogcGFz
c3dvcmQsIHVpbnQzMl90KiBwbGVuKQoreworICAgIExPRyhQbHVnaW5zLCAiUGx1Z2luVmlldzo6
Z2V0QXV0aGVudGljYXRpb25JbmZvOiBwcm90b2NvbD0lcywgaG9zdD0lcywgcG9ydD0lZCIsIHBy
b3RvY29sLCBob3N0LCBwb3J0KTsKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBO
UEVSUl9HRU5FUklDX0VSUk9SOworfQogI2VuZGlmCiAKIHZvaWQgUGx1Z2luVmlldzo6cHJpdmF0
ZUJyb3dzaW5nU3RhdGVDaGFuZ2VkKGJvb2wgcHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCkKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmggYi9XZWJDb3JlL3BsdWdpbnMvUGx1
Z2luVmlldy5oCmluZGV4IGE2MTc4NWMuLmFmNzU3MzYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGx1
Z2lucy9QbHVnaW5WaWV3LmgKKysrIGIvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcuaApAQCAt
MTY4LDYgKzE2OCw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgTlBFcnJvciBnZXRW
YWx1ZShOUE5WYXJpYWJsZSB2YXJpYWJsZSwgdm9pZCogdmFsdWUpOwogICAgICAgICBzdGF0aWMg
TlBFcnJvciBnZXRWYWx1ZVN0YXRpYyhOUE5WYXJpYWJsZSB2YXJpYWJsZSwgdm9pZCogdmFsdWUp
OwogICAgICAgICBOUEVycm9yIHNldFZhbHVlKE5QUFZhcmlhYmxlIHZhcmlhYmxlLCB2b2lkKiB2
YWx1ZSk7CisgICAgICAgIE5QRXJyb3IgZ2V0VmFsdWVGb3JVUkwoTlBOVVJMVmFyaWFibGUgdmFy
aWFibGUsIGNvbnN0IGNoYXIqIHVybCwgY2hhcioqIHZhbHVlLCB1aW50MzJfdCogbGVuKTsKKyAg
ICAgICAgTlBFcnJvciBzZXRWYWx1ZUZvclVSTChOUE5VUkxWYXJpYWJsZSB2YXJpYWJsZSwgY29u
c3QgY2hhciogdXJsLCBjb25zdCBjaGFyKiB2YWx1ZSwgdWludDMyX3QgbGVuKTsKKyAgICAgICAg
TlBFcnJvciBnZXRBdXRoZW50aWNhdGlvbkluZm8oY29uc3QgY2hhciogcHJvdG9jb2wsIGNvbnN0
IGNoYXIqIGhvc3QsIGludDMyX3QgcG9ydCwgY29uc3QgY2hhciogc2NoZW1lLCBjb25zdCBjaGFy
KiByZWFsbSwgY2hhcioqIHVzZXJuYW1lLCB1aW50MzJfdCogdWxlbiwgY2hhcioqIHBhc3N3b3Jk
LCB1aW50MzJfdCogcGxlbik7CiAgICAgICAgIHZvaWQgaW52YWxpZGF0ZVJlY3QoTlBSZWN0Kik7
CiAgICAgICAgIHZvaWQgaW52YWxpZGF0ZVJlZ2lvbihOUFJlZ2lvbik7CiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvcGx1Z2lucy9ucGFwaS5jcHAgYi9XZWJDb3JlL3BsdWdpbnMvbnBhcGku
Y3BwCmluZGV4IGQwZGI4NDUuLmIyNzIxZmIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGx1Z2lucy9u
cGFwaS5jcHAKKysrIGIvV2ViQ29yZS9wbHVnaW5zL25wYXBpLmNwcApAQCAtMTc1LDMgKzE3NSwx
OCBAQCB2b2lkIE5QTl9QbHVnaW5UaHJlYWRBc3luY0NhbGwoTlBQIGluc3RhbmNlLCB2b2lkICgq
ZnVuYykgKHZvaWQgKiksIHZvaWQgKnVzZXJEYQogewogICAgIFBsdWdpbk1haW5UaHJlYWRTY2hl
ZHVsZXI6OnNjaGVkdWxlcigpLnNjaGVkdWxlQ2FsbChpbnN0YW5jZSwgZnVuYywgdXNlckRhdGEp
OwogfQorCitOUEVycm9yIE5QTl9HZXRWYWx1ZUZvclVSTChOUFAgaW5zdGFuY2UsIE5QTlVSTFZh
cmlhYmxlIHZhcmlhYmxlLCBjb25zdCBjaGFyKiB1cmwsIGNoYXIqKiB2YWx1ZSwgdWludDMyX3Qq
IGxlbikKK3sKKyAgICByZXR1cm4gcGx1Z2luVmlld0Zvckluc3RhbmNlKGluc3RhbmNlKS0+Z2V0
VmFsdWVGb3JVUkwodmFyaWFibGUsIHVybCwgdmFsdWUsIGxlbik7Cit9CisKK05QRXJyb3IgTlBO
X1NldFZhbHVlRm9yVVJMKE5QUCBpbnN0YW5jZSwgTlBOVVJMVmFyaWFibGUgdmFyaWFibGUsIGNv
bnN0IGNoYXIqIHVybCwgY29uc3QgY2hhciogdmFsdWUsIHVpbnQzMl90IGxlbikKK3sKKyAgICBy
ZXR1cm4gcGx1Z2luVmlld0Zvckluc3RhbmNlKGluc3RhbmNlKS0+c2V0VmFsdWVGb3JVUkwodmFy
aWFibGUsIHVybCwgdmFsdWUsIGxlbik7Cit9CisKK05QRXJyb3IgTlBOX0dldEF1dGhlbnRpY2F0
aW9uSW5mbyhOUFAgaW5zdGFuY2UsIGNvbnN0IGNoYXIqIHByb3RvY29sLCBjb25zdCBjaGFyKiBo
b3N0LCBpbnQzMl90IHBvcnQsIGNvbnN0IGNoYXIqIHNjaGVtZSwgY29uc3QgY2hhciogcmVhbG0s
IGNoYXIqKiB1c2VybmFtZSwgdWludDMyX3QqIHVsZW4sIGNoYXIqKiBwYXNzd29yZCwgdWludDMy
X3QqIHBsZW4pCit7CisgICAgcmV0dXJuIHBsdWdpblZpZXdGb3JJbnN0YW5jZShpbnN0YW5jZSkt
PmdldEF1dGhlbnRpY2F0aW9uSW5mbyhwcm90b2NvbCwgaG9zdCwgcG9ydCwgc2NoZW1lLCByZWFs
bSwgdXNlcm5hbWUsIHVsZW4sIHBhc3N3b3JkLCBwbGVuKTsKK30KZGlmZiAtLWdpdCBhL1dlYktp
dC9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5Lm1tIGIvV2Vi
S2l0L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkubW0KaW5k
ZXggMWEyYjhhMS4uMGI5MDM2YSAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3Rl
ZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkubW0KKysrIGIvV2ViS2l0L21hYy9QbHVnaW5z
L0hvc3RlZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkubW0KQEAgLTE1NTgsNyArMTU1OCw3
IEBAIGJvb2wgTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5OjpnZXRQcm94eShkYXRhX3QgdXJs
RGF0YSwgbWFjaF9tc2dfdHlwZV9udW1iZXJfCiAgICAgaWYgKCF1cmwpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKIAotICAgIFZlY3RvcjxQcm94eVNlcnZlcj4gcHJveHlTZXJ2ZXJzID0gcHJveHlT
ZXJ2ZXJzRm9yVVJMKHVybCk7CisgICAgVmVjdG9yPFByb3h5U2VydmVyPiBwcm94eVNlcnZlcnMg
PSBwcm94eVNlcnZlcnNGb3JVUkwodXJsLCAwKTsKICAgICBXVEY6OkNTdHJpbmcgcHJveHlTdHJp
bmdVVEY4ID0gdG9TdHJpbmcocHJveHlTZXJ2ZXJzKS51dGY4KCk7CiAKICAgICBwcm94eUxlbmd0
aCA9IHByb3h5U3RyaW5nVVRGOC5sZW5ndGgoKTsKZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvUGx1
Z2lucy9XZWJOZXRzY2FwZVBsdWdpblZpZXcubW0gYi9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViTmV0
c2NhcGVQbHVnaW5WaWV3Lm1tCmluZGV4IDU0MmQ1OWQuLjQ4NTc0YmYgMTAwNjQ0Ci0tLSBhL1dl
YktpdC9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpblZpZXcubW0KKysrIGIvV2ViS2l0L21h
Yy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luVmlldy5tbQpAQCAtMjI0MCw3ICsyMjQwLDcgQEAg
c3RhdGljIGlubGluZSB2b2lkIGdldE5QUmVjdChjb25zdCBOU1JlY3QmIG5yLCBOUFJlY3QmIG5w
cikKICAgICAgICAgICAgIGlmICghVVJMKQogICAgICAgICAgICAgICAgIGJyZWFrOwogCi0gICAg
ICAgICAgICBWZWN0b3I8UHJveHlTZXJ2ZXI+IHByb3h5U2VydmVycyA9IHByb3h5U2VydmVyc0Zv
clVSTChVUkwpOworICAgICAgICAgICAgVmVjdG9yPFByb3h5U2VydmVyPiBwcm94eVNlcnZlcnMg
PSBwcm94eVNlcnZlcnNGb3JVUkwoVVJMLCAwKTsKICAgICAgICAgICAgIENTdHJpbmcgcHJveGll
c1VURjggPSB0b1N0cmluZyhwcm94eVNlcnZlcnMpLnV0ZjgoKTsKICAgICAgICAgICAgIAogICAg
ICAgICAgICAgKnZhbHVlID0gc3RhdGljX2Nhc3Q8Y2hhcio+KE5QTl9NZW1BbGxvYyhwcm94aWVz
VVRGOC5sZW5ndGgoKSkpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMv
UGx1Z2luVmlldy5jcHAgYi9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNw
cAppbmRleCA1ZjA0YzBiLi40YzRkMTc3IDEwMDY0NAotLS0gYS9XZWJLaXQyL1dlYlByb2Nlc3Mv
UGx1Z2lucy9QbHVnaW5WaWV3LmNwcAorKysgYi9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9Q
bHVnaW5WaWV3LmNwcApAQCAtNDEsNiArNDEsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvSFRNTFBs
dWdJbkVsZW1lbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0hvc3RXaW5kb3cuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL05ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyLmg+CisjaW5jbHVkZSA8V2ViQ29y
ZS9OZXR3b3JraW5nQ29udGV4dC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUHJveHlTZXJ2ZXIuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1JlbmRlckVtYmVkZGVkT2JqZWN0Lmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9SZW5kZXJMYXllci5oPgpAQCAtODQxLDcgKzg0Miw5IEBAIEhXTkQgUGx1Z2luVmlldzo6
bmF0aXZlUGFyZW50V2luZG93KCkKIAogU3RyaW5nIFBsdWdpblZpZXc6OnByb3hpZXNGb3JVUkwo
Y29uc3QgU3RyaW5nJiB1cmxTdHJpbmcpCiB7Ci0gICAgVmVjdG9yPFByb3h5U2VydmVyPiBwcm94
eVNlcnZlcnMgPSBwcm94eVNlcnZlcnNGb3JVUkwoS1VSTChLVVJMKCksIHVybFN0cmluZykpOwor
ICAgIGNvbnN0IEZyYW1lTG9hZGVyKiBmcmFtZUxvYWRlciA9IGZyYW1lKCkgPyBmcmFtZSgpLT5s
b2FkZXIoKSA6IDA7CisgICAgY29uc3QgTmV0d29ya2luZ0NvbnRleHQqIG5ldENvbnRleHQgPSBm
cmFtZUxvYWRlciA/IGZyYW1lTG9hZGVyLT5uZXR3b3JraW5nQ29udGV4dCgpIDogMDsKKyAgICBW
ZWN0b3I8UHJveHlTZXJ2ZXI+IHByb3h5U2VydmVycyA9IHByb3h5U2VydmVyc0ZvclVSTChLVVJM
KEtVUkwoKSwgdXJsU3RyaW5nKSwgbmV0Q29udGV4dCk7CiAgICAgcmV0dXJuIHRvU3RyaW5nKHBy
b3h5U2VydmVycyk7CiB9CiAK
</data>
<flag name="review"
          id="60180"
          type_id="1"
          status="-"
          setter="kling"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>70372</attachid>
            <date>2010-10-09 13:42:07 -0700</date>
            <delta_ts>2010-10-09 13:54:11 -0700</delta_ts>
            <desc>Implement NPN_GetValueForURL and NPN_SetValueForURL and NPN_GetAuthenticationInfo [Final #8]...</desc>
            <filename>bug_34539_implement_missing_npn_functions.patch</filename>
            <type>text/plain</type>
            <size>15664</size>
            <attacher name="Dawit A.">adawit</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MmNiMmUzYy4uNTdmYTE4NyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MiBAQAorMjAxMC0xMC0wOSAgRGF3aXQgQWxlbWF5
ZWh1ICA8YWRhd2l0QGtkZS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgRml4IGNvbXBpbGUgZXJyb3Igd2hlbiBidWxkaW5nIHdlYmtpdCdzIFF0
IHBvcnQgdXNpbmcgdGhlICItLXY4IiBvcHRpb24uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NzQ1NQorCisgICAgICAgICogcGxhdGZvcm0vcXQvUGxh
dGZvcm1CcmlkZ2UuaDoKKworMjAxMC0xMC0wMiAgRGF3aXQgQWxlbWF5ZWh1ICA8YWRhd2l0QGtk
ZS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkKKworICAgICAgICBJ
bXBsZW1lbnRlZCBOUE5fR2V0VmFsdWVGb3JVUkwgYW5kIE5QTl9TZXRWYWx1ZUZvclVSTCBhbmQg
TlBOX0dldEF1dGhlbnRpY2F0aW9uSW5mby4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTM0NTM5CisKKyAgICAgICAgVGhlc2UgbWlzc2luZyBOUE4gZnVu
Y3Rpb25zIGNhdXNlIEphdmEgYXBwbGV0cyB0byBjcmFzaCBpbiBwb3J0cyBzdWNoCisgICAgICAg
IGFzIFF0V2Via2l0IHRoYXQgcmVseSBvbiB3ZWJraXQgZm9yIEphdmEgYXBwbGV0IHN1cHBvcnQu
CisKKyAgICAgICAgKiBwbHVnaW5zL1BsdWdpbkRlYnVnLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OnByZXR0eU5hbWVGb3JOUE5VUkxWYXJpYWJsZSk6CisgICAgICAgICogcGx1Z2lucy9QbHVnaW5E
ZWJ1Zy5oOgorICAgICAgICAqIHBsdWdpbnMvUGx1Z2luUGFja2FnZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpQbHVnaW5QYWNrYWdlOjppbml0aWFsaXplQnJvd3NlckZ1bmNzKToKKyAgICAgICAg
KiBwbHVnaW5zL1BsdWdpblZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6
Z2V0VmFsdWVGb3JVUkwpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6c2V0VmFsdWVG
b3JVUkwpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6Z2V0QXV0aGVudGljYXRpb25J
bmZvKToKKyAgICAgICAgKiBwbHVnaW5zL1BsdWdpblZpZXcuaDoKKyAgICAgICAgKiBwbHVnaW5z
L25wYXBpLmNwcDoKKyAgICAgICAgKE5QTl9HZXRWYWx1ZUZvclVSTCk6CisgICAgICAgIChOUE5f
U2V0VmFsdWVGb3JVUkwpOgorICAgICAgICAoTlBOX0dldEF1dGhlbnRpY2F0aW9uSW5mbyk6Cisg
ICAgICAgICogcGxhdGZvcm0vbmV0d29yay9Qcm94eVNlcnZlci5oOgorICAgICAgICAqIHBsYXRm
b3JtL25ldHdvcmsvY2YvUHJveHlTZXJ2ZXJDRk5ldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpw
cm94eVNlcnZlcnNGb3JVUkwpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvcXQvUHJveHlT
ZXJ2ZXJRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwcm94eVNlcnZlcnNGb3JVUkwpOgorCiAy
MDEwLTEwLTA5ICBQYXRyaWNrIEdhbnN0ZXJlciAgPHBhcm9nYUB3ZWJraXQub3JnPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvUHJveHlTZXJ2ZXIuaCBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Qcm94eVNl
cnZlci5oCmluZGV4IGY3NDAxMTQuLjhmNzYxMmUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9Qcm94eVNlcnZlci5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Q
cm94eVNlcnZlci5oCkBAIC0zMiw2ICszMiw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNs
YXNzIEtVUkw7CitjbGFzcyBOZXR3b3JraW5nQ29udGV4dDsKIAogLy8gUmVwcmVzZW50cyBhIHNp
bmdsZSBwcm94eSBzZXJ2ZXIuCiBjbGFzcyBQcm94eVNlcnZlciB7CkBAIC02Nyw3ICs2OCw3IEBA
IHByaXZhdGU6CiB9OwogCiAvLyBSZXR1cm4gYSB2ZWN0b3Igb2YgcHJveHkgc2VydmVycyBmb3Ig
dGhlIGdpdmVuIFVSTC4KLVZlY3RvcjxQcm94eVNlcnZlcj4gcHJveHlTZXJ2ZXJzRm9yVVJMKGNv
bnN0IEtVUkwmKTsKK1ZlY3RvcjxQcm94eVNlcnZlcj4gcHJveHlTZXJ2ZXJzRm9yVVJMKGNvbnN0
IEtVUkwmLCBjb25zdCBOZXR3b3JraW5nQ29udGV4dCopOwogCiAvLyBDb252ZXJ0cyB0aGUgZ2l2
ZW4gdmVjdG9yIG9mIHByb3h5IHNlcnZlcnMgdG8gYSBQQUMgc3RyaW5nLCBhcyBkZXNjcmliZWQg
aW4KIC8vIGh0dHA6Ly93ZWIuYXJjaGl2ZS5vcmcvd2ViLzIwMDYwNDI0MDA1MDM3L3dwLm5ldHNj
YXBlLmNvbS9lbmcvbW96aWxsYS8yLjAvcmVsbm90ZXMvZGVtby9wcm94eS1saXZlLmh0bWwKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9Qcm94eVNlcnZlckNGTmV0LmNw
cCBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9Qcm94eVNlcnZlckNGTmV0LmNwcAppbmRl
eCAzMzhjMDA5Li45NzIwNjk1IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Y2YvUHJveHlTZXJ2ZXJDRk5ldC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nm
L1Byb3h5U2VydmVyQ0ZOZXQuY3BwCkBAIC03OSw3ICs3OSw3IEBAIHN0YXRpYyB2b2lkIGFkZFBy
b3h5U2VydmVyc0ZvclVSTChWZWN0b3I8UHJveHlTZXJ2ZXI+JiBwcm94eVNlcnZlcnMsIGNvbnN0
IEtVUkwmCiAgICAgfQogfQogCi1WZWN0b3I8UHJveHlTZXJ2ZXI+IHByb3h5U2VydmVyc0ZvclVS
TChjb25zdCBLVVJMJiB1cmwpCitWZWN0b3I8UHJveHlTZXJ2ZXI+IHByb3h5U2VydmVyc0ZvclVS
TChjb25zdCBLVVJMJiB1cmwsIGNvbnN0IE5ldHdvcmtpbmdDb250ZXh0KikKIHsKICAgICBWZWN0
b3I8UHJveHlTZXJ2ZXI+IHByb3h5U2VydmVyczsKICAgICAKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9xdC9Qcm94eVNlcnZlclF0LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9xdC9Qcm94eVNlcnZlclF0LmNwcAppbmRleCA4MTg0OWU1Li4wYmYzNjg3IDEwMDY0
NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUHJveHlTZXJ2ZXJRdC5jcHAKKysr
IGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1Byb3h5U2VydmVyUXQuY3BwCkBAIC0yNiwx
NSArMjYsNDggQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJQcm94eVNlcnZlci5o
IgogCi0jaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJLVVJMLmgiCisjaW5j
bHVkZSAiTmV0d29ya2luZ0NvbnRleHQuaCIKKworI2luY2x1ZGUgPFFOZXR3b3JrQWNjZXNzTWFu
YWdlcj4KKyNpbmNsdWRlIDxRTmV0d29ya1Byb3h5PgorI2luY2x1ZGUgPFFOZXR3b3JrUHJveHlG
YWN0b3J5PgorI2luY2x1ZGUgPFFOZXR3b3JrUHJveHlRdWVyeT4KKyNpbmNsdWRlIDxRVXJsPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVZlY3RvcjxQcm94eVNlcnZlcj4gcHJveHlTZXJ2ZXJz
Rm9yVVJMKGNvbnN0IEtVUkwmKQorVmVjdG9yPFByb3h5U2VydmVyPiBwcm94eVNlcnZlcnNGb3JV
UkwoY29uc3QgS1VSTCYgdXJsLCBjb25zdCBOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCkKIHsK
LSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBWZWN0b3I8UHJveHlTZXJ2ZXI+KCk7
CisgICAgVmVjdG9yPFByb3h5U2VydmVyPiBzZXJ2ZXJzOworICAgIAorICAgIGNvbnN0IFFOZXR3
b3JrQWNjZXNzTWFuYWdlciogYWNjZXNzTWFuYWdlciA9IGNvbnRleHQgPyBjb250ZXh0LT5uZXR3
b3JrQWNjZXNzTWFuYWdlcigpIDogMDsKKyAgICBRTmV0d29ya1Byb3h5RmFjdG9yeSogcHJveHlG
YWN0b3J5ID0gYWNjZXNzTWFuYWdlciA/IGFjY2Vzc01hbmFnZXItPnByb3h5RmFjdG9yeSgpIDog
MDsKKworICAgIGlmIChwcm94eUZhY3RvcnkpIHsKKyAgICAgICAgY29uc3QgUUxpc3Q8UU5ldHdv
cmtQcm94eT4gcHJveGllcyA9IHByb3h5RmFjdG9yeS0+cXVlcnlQcm94eShRTmV0d29ya1Byb3h5
UXVlcnkodXJsKSk7CisgICAgICAgIFFfRk9SRUFDSChjb25zdCBRTmV0d29ya1Byb3h5JiBwcm94
eSwgcHJveGllcykgeworICAgICAgICAgICAgUHJveHlTZXJ2ZXI6OlR5cGUgcHJveHlUeXBlOwor
ICAgICAgICAgICAgc3dpdGNoIChwcm94eS50eXBlKCkpIHsKKyAgICAgICAgICAgIGNhc2UgUU5l
dHdvcmtQcm94eTo6U29ja3M1UHJveHk6CisgICAgICAgICAgICAgICAgcHJveHlUeXBlID0gUHJv
eHlTZXJ2ZXI6OlNPQ0tTOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2Fz
ZSBRTmV0d29ya1Byb3h5OjpIdHRwUHJveHk6CisgICAgICAgICAgICBjYXNlIFFOZXR3b3JrUHJv
eHk6Okh0dHBDYWNoaW5nUHJveHk6CisgICAgICAgICAgICBjYXNlIFFOZXR3b3JrUHJveHk6OkZ0
cENhY2hpbmdQcm94eToKKyAgICAgICAgICAgICAgICBwcm94eVR5cGUgPSBQcm94eVNlcnZlcjo6
SFRUUDsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgUU5ldHdvcmtQ
cm94eTo6RGVmYXVsdFByb3h5OgorICAgICAgICAgICAgY2FzZSBRTmV0d29ya1Byb3h5OjpOb1By
b3h5OgorICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBwcm94eVR5cGUgPSBQ
cm94eVNlcnZlcjo6RGlyZWN0OworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
fQorICAgICAgICAgICAgc2VydmVycy5hcHBlbmQoUHJveHlTZXJ2ZXIocHJveHlUeXBlLCBwcm94
eS5ob3N0TmFtZSgpLCBwcm94eS5wb3J0KCkpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJl
dHVybiBzZXJ2ZXJzOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL3BsdWdpbnMvUGx1Z2luRGVidWcuY3BwIGIvV2ViQ29yZS9wbHVnaW5zL1BsdWdpbkRl
YnVnLmNwcAppbmRleCBhY2U4YjIxLi44YzNlZmNiIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsdWdp
bnMvUGx1Z2luRGVidWcuY3BwCisrKyBiL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5EZWJ1Zy5jcHAK
QEAgLTE2Myw2ICsxNjMsMTQgQEAgQ1N0cmluZyBwcmV0dHlOYW1lRm9yTlBQVmFyaWFibGUoTlBQ
VmFyaWFibGUgdmFyaWFibGUsIHZvaWQqIHZhbHVlKQogICAgIH0KIH0KIAorQ1N0cmluZyBwcmV0
dHlOYW1lRm9yTlBOVVJMVmFyaWFibGUoTlBOVVJMVmFyaWFibGUgdmFyaWFibGUpCit7CisgICAg
c3dpdGNoICh2YXJpYWJsZSkgeworICAgIGNhc2UgTlBOVVJMVkNvb2tpZTogcmV0dXJuICJOUE5V
UkxWQ29va2llIjsKKyAgICBjYXNlIE5QTlVSTFZQcm94eTogcmV0dXJuICJOUE5VUkxWUHJveHki
OworICAgIGRlZmF1bHQ6IHJldHVybiAiVW5rbm93biB2YXJpYWJsZSI7CisgICAgfQorfQogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gIUxPR19ESVNBQkxFRApkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9wbHVnaW5zL1BsdWdpbkRlYnVnLmggYi9XZWJDb3JlL3BsdWdpbnMvUGx1Z2lu
RGVidWcuaAppbmRleCAyNTQ4NjRmLi4wMTdlNjg2IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsdWdp
bnMvUGx1Z2luRGVidWcuaAorKysgYi9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luRGVidWcuaApAQCAt
NDEsNiArNDEsNyBAQCBjb25zdCBjaGFyKiBwcmV0dHlOYW1lRm9yTlBFcnJvcihOUEVycm9yIGVy
cm9yKTsKIAogQ1N0cmluZyBwcmV0dHlOYW1lRm9yTlBOVmFyaWFibGUoTlBOVmFyaWFibGUgdmFy
aWFibGUpOwogQ1N0cmluZyBwcmV0dHlOYW1lRm9yTlBQVmFyaWFibGUoTlBQVmFyaWFibGUgdmFy
aWFibGUsIHZvaWQqIHZhbHVlKTsKK0NTdHJpbmcgcHJldHR5TmFtZUZvck5QTlVSTFZhcmlhYmxl
KE5QTlVSTFZhcmlhYmxlIHZhcmlhYmxlKTsKIAogI2lmZGVmIFhQX01BQ09TWAogY29uc3QgY2hh
ciogcHJldHR5TmFtZUZvckRyYXdpbmdNb2RlbChOUERyYXdpbmdNb2RlbCBkcmF3aW5nTW9kZWwp
OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblBhY2thZ2UuY3BwIGIvV2ViQ29y
ZS9wbHVnaW5zL1BsdWdpblBhY2thZ2UuY3BwCmluZGV4IDM5YzVmMmEuLjEzNmE2MDQgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5QYWNrYWdlLmNwcAorKysgYi9XZWJDb3JlL3Bs
dWdpbnMvUGx1Z2luUGFja2FnZS5jcHAKQEAgLTMyOSw2ICszMjksOSBAQCB2b2lkIFBsdWdpblBh
Y2thZ2U6OmluaXRpYWxpemVCcm93c2VyRnVuY3MoKQogICAgIG1fYnJvd3NlckZ1bmNzLnNldGV4
Y2VwdGlvbiA9IF9OUE5fU2V0RXhjZXB0aW9uOwogICAgIG1fYnJvd3NlckZ1bmNzLmVudW1lcmF0
ZSA9IF9OUE5fRW51bWVyYXRlOwogICAgIG1fYnJvd3NlckZ1bmNzLmNvbnN0cnVjdCA9IF9OUE5f
Q29uc3RydWN0OworICAgIG1fYnJvd3NlckZ1bmNzLmdldHZhbHVlZm9ydXJsID0gTlBOX0dldFZh
bHVlRm9yVVJMOworICAgIG1fYnJvd3NlckZ1bmNzLnNldHZhbHVlZm9ydXJsID0gTlBOX1NldFZh
bHVlRm9yVVJMOworICAgIG1fYnJvd3NlckZ1bmNzLmdldGF1dGhlbnRpY2F0aW9uaW5mbyA9IE5Q
Tl9HZXRBdXRoZW50aWNhdGlvbkluZm87CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9wbHVnaW5zL1BsdWdpblZpZXcuY3BwIGIvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcuY3Bw
CmluZGV4IGY3ZGIwMTAuLjYwNzZhOWIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGx1Z2lucy9QbHVn
aW5WaWV3LmNwcAorKysgYi9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5jcHAKQEAgLTMyLDYg
KzMyLDcgQEAKICNpbmNsdWRlICJCcmlkZ2UuaCIKICNlbmRpZgogI2luY2x1ZGUgIkNocm9tZS5o
IgorI2luY2x1ZGUgIkNvb2tpZUphci5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVk
ZSAiRG9jdW1lbnRMb2FkZXIuaCIKICNpbmNsdWRlICJFbGVtZW50LmgiCkBAIC01NSw2ICs1Niw3
IEBACiAjaW5jbHVkZSAiUGx1Z2luRGVidWcuaCIKICNpbmNsdWRlICJQbHVnaW5NYWluVGhyZWFk
U2NoZWR1bGVyLmgiCiAjaW5jbHVkZSAiUGx1Z2luUGFja2FnZS5oIgorI2luY2x1ZGUgIlByb3h5
U2VydmVyLmgiCiAjaW5jbHVkZSAiUmVuZGVyQm94LmgiCiAjaW5jbHVkZSAiUmVuZGVyT2JqZWN0
LmgiCiAjaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5oIgpAQCAtMTM5Miw2ICsxMzk0LDEwNyBA
QCBOUEVycm9yIFBsdWdpblZpZXc6OmdldFZhbHVlKE5QTlZhcmlhYmxlIHZhcmlhYmxlLCB2b2lk
KiB2YWx1ZSkKICAgICAgICAgcmV0dXJuIE5QRVJSX0dFTkVSSUNfRVJST1I7CiAgICAgfQogfQor
CitOUEVycm9yIFBsdWdpblZpZXc6OmdldFZhbHVlRm9yVVJMKE5QTlVSTFZhcmlhYmxlIHZhcmlh
YmxlLCBjb25zdCBjaGFyKiB1cmwsIGNoYXIqKiB2YWx1ZSwgdWludDMyX3QqIGxlbikKK3sKKyAg
ICBMT0coUGx1Z2lucywgIlBsdWdpblZpZXc6OmdldFZhbHVlRm9yVVJMKCVzKSIsIHByZXR0eU5h
bWVGb3JOUE5VUkxWYXJpYWJsZSh2YXJpYWJsZSkuZGF0YSgpKTsKKworICAgIE5QRXJyb3IgcmVz
dWx0ID0gTlBFUlJfTk9fRVJST1I7CisKKyAgICBzd2l0Y2ggKHZhcmlhYmxlKSB7CisgICAgY2Fz
ZSBOUE5VUkxWQ29va2llOiB7CisgICAgICAgIEtVUkwgdShtX2Jhc2VVUkwsIHVybCk7CisgICAg
ICAgIGlmICh1LmlzVmFsaWQoKSkgeworICAgICAgICAgICAgY29uc3QgQ1N0cmluZyBjb29raWVT
dHIgPSBjb29raWVzKG1fcGFyZW50RnJhbWUtPmRvY3VtZW50KCksIHUpLnV0ZjgoKTsKKyAgICAg
ICAgICAgIGlmICghY29va2llU3RyLmlzTnVsbCgpKSB7CisgICAgICAgICAgICAgICAgY29uc3Qg
aW50IHNpemUgPSBjb29raWVTdHIubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgKnZhbHVlID0g
c3RhdGljX2Nhc3Q8Y2hhcio+KE5QTl9NZW1BbGxvYyhzaXplKzEpKTsKKyAgICAgICAgICAgICAg
ICBpZiAoKnZhbHVlKSB7CisgICAgICAgICAgICAgICAgICAgIG1lbXNldCgqdmFsdWUsIDAsIHNp
emUrMSk7CisgICAgICAgICAgICAgICAgICAgIG1lbWNweSgqdmFsdWUsIGNvb2tpZVN0ci5kYXRh
KCksIHNpemUrMSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChsZW4pCisgICAgICAgICAgICAg
ICAgICAgICAgICAqbGVuID0gc2l6ZTsKKyAgICAgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAg
ICAgICAgICAgICAgcmVzdWx0ID0gTlBFUlJfT1VUX09GX01FTU9SWV9FUlJPUjsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICByZXN1bHQgPSBOUEVSUl9JTlZBTElE
X1VSTDsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGNhc2UgTlBOVVJMVlByb3h5OiB7Cisg
ICAgICAgIEtVUkwgdShtX2Jhc2VVUkwsIHVybCk7CisgICAgICAgIGlmICh1LmlzVmFsaWQoKSkg
eworICAgICAgICAgICAgRnJhbWUqIGZyYW1lID0gcGFyZW50RnJhbWUoKTsKKyAgICAgICAgICAg
IGlmICghZnJhbWUpIHsKKyAgICAgICAgICAgICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBtX2Vs
ZW1lbnQtPmRvY3VtZW50KCk7CisgICAgICAgICAgICAgICAgaWYgKCFkb2N1bWVudCkKKyAgICAg
ICAgICAgICAgICAgICAgZG9jdW1lbnQgPSBtX2VsZW1lbnQtPm93bmVyRG9jdW1lbnQoKTsKKyAg
ICAgICAgICAgICAgICBpZiAoZG9jdW1lbnQpCisgICAgICAgICAgICAgICAgICAgIGZyYW1lID0g
ZG9jdW1lbnQtPmZyYW1lKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjb25zdCBGcmFt
ZUxvYWRlciogZnJhbWVMb2FkZXIgPSBmcmFtZSA/IGZyYW1lLT5sb2FkZXIoKSA6IDA7CisgICAg
ICAgICAgICBjb25zdCBOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCA9IGZyYW1lTG9hZGVyID8g
ZnJhbWVMb2FkZXItPm5ldHdvcmtpbmdDb250ZXh0KCkgOiAwOworICAgICAgICAgICAgY29uc3Qg
Q1N0cmluZyBwcm94eVN0ciA9IHRvU3RyaW5nKHByb3h5U2VydmVyc0ZvclVSTCh1LCBjb250ZXh0
KSkudXRmOCgpOworICAgICAgICAgICAgaWYgKCFwcm94eVN0ci5pc051bGwoKSkgeworICAgICAg
ICAgICAgICAgIGNvbnN0IGludCBzaXplID0gcHJveHlTdHIubGVuZ3RoKCk7CisgICAgICAgICAg
ICAgICAgKnZhbHVlID0gc3RhdGljX2Nhc3Q8Y2hhcio+KE5QTl9NZW1BbGxvYyhzaXplKzEpKTsK
KyAgICAgICAgICAgICAgICBpZiAoKnZhbHVlKSB7CisgICAgICAgICAgICAgICAgICAgIG1lbXNl
dCgqdmFsdWUsIDAsIHNpemUrMSk7CisgICAgICAgICAgICAgICAgICAgIG1lbWNweSgqdmFsdWUs
IHByb3h5U3RyLmRhdGEoKSwgc2l6ZSsxKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGxlbikK
KyAgICAgICAgICAgICAgICAgICAgICAgICpsZW4gPSBzaXplOworICAgICAgICAgICAgICAgIH0g
ZWxzZQorICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBOUEVSUl9PVVRfT0ZfTUVNT1JZX0VS
Uk9SOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIHJlc3VsdCA9
IE5QRVJSX0lOVkFMSURfVVJMOworICAgICAgICBicmVhazsKKyAgICB9CisgICAgZGVmYXVsdDoK
KyAgICAgICAgcmVzdWx0ID0gTlBFUlJfR0VORVJJQ19FUlJPUjsKKyAgICAgICAgTE9HKFBsdWdp
bnMsICJQbHVnaW5WaWV3OjpnZXRWYWx1ZUZvclVSTDogJXMiLCBwcmV0dHlOYW1lRm9yTlBOVVJM
VmFyaWFibGUodmFyaWFibGUpLmRhdGEoKSk7CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAg
IHJldHVybiByZXN1bHQ7Cit9CisKKworTlBFcnJvciBQbHVnaW5WaWV3OjpzZXRWYWx1ZUZvclVS
TChOUE5VUkxWYXJpYWJsZSB2YXJpYWJsZSwgY29uc3QgY2hhciogdXJsLCBjb25zdCBjaGFyKiB2
YWx1ZSwgdWludDMyX3QgbGVuKQoreworICAgIExPRyhQbHVnaW5zLCAiUGx1Z2luVmlldzo6c2V0
VmFsdWVGb3JVUkwoJXMpIiwgcHJldHR5TmFtZUZvck5QTlVSTFZhcmlhYmxlKHZhcmlhYmxlKS5k
YXRhKCkpOworCisgICAgTlBFcnJvciByZXN1bHQgPSBOUEVSUl9HRU5FUklDX0VSUk9SOworCisg
ICAgc3dpdGNoICh2YXJpYWJsZSkgeworICAgIGNhc2UgTlBOVVJMVkNvb2tpZTogeworICAgICAg
ICBLVVJMIHUobV9iYXNlVVJMLCB1cmwpOworICAgICAgICBpZiAodS5pc1ZhbGlkKCkpIHsKKyAg
ICAgICAgICAgIFN0cmluZyBjb29raWVTdHIgPSBTdHJpbmc6OmZyb21VVEY4KHZhbHVlLCBsZW4p
OworICAgICAgICAgICAgaWYgKCFjb29raWVTdHIuaXNFbXB0eSgpKQorICAgICAgICAgICAgICAg
IHNldENvb2tpZXMobV9wYXJlbnRGcmFtZS0+ZG9jdW1lbnQoKSwgdSwgY29va2llU3RyKTsKKyAg
ICAgICAgICAgIHJlc3VsdCA9IE5QRVJSX05PX0VSUk9SOworICAgICAgICB9IGVsc2UKKyAgICAg
ICAgICAgIHJlc3VsdCA9IE5QRVJSX0lOVkFMSURfVVJMOworICAgICAgICBicmVhazsKKyAgICB9
CisgICAgY2FzZSBOUE5VUkxWUHJveHk6CisgICAgICAgIExPRyhQbHVnaW5zLCAiUGx1Z2luVmll
dzo6c2V0VmFsdWVGb3JVUkwoJXMpOiBQbHVnaW5zIGFyZSBOT1QgYWxsb3dlZCB0byBzZXQgcHJv
eHkgaW5mb3JtYXRpb24uIiwgcHJldHR5TmFtZUZvck5QTlVSTFZhcmlhYmxlKHZhcmlhYmxlKS5k
YXRhKCkpOworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBMT0coUGx1Z2lu
cywgIlBsdWdpblZpZXc6OnNldFZhbHVlRm9yVVJMOiAlcyIsIHByZXR0eU5hbWVGb3JOUE5VUkxW
YXJpYWJsZSh2YXJpYWJsZSkuZGF0YSgpKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAg
cmV0dXJuIHJlc3VsdDsKK30KKworTlBFcnJvciBQbHVnaW5WaWV3OjpnZXRBdXRoZW50aWNhdGlv
bkluZm8oY29uc3QgY2hhciogcHJvdG9jb2wsIGNvbnN0IGNoYXIqIGhvc3QsIGludDMyX3QgcG9y
dCwgY29uc3QgY2hhciogc2NoZW1lLCBjb25zdCBjaGFyKiByZWFsbSwgY2hhcioqIHVzZXJuYW1l
LCB1aW50MzJfdCogdWxlbiwgY2hhcioqIHBhc3N3b3JkLCB1aW50MzJfdCogcGxlbikKK3sKKyAg
ICBMT0coUGx1Z2lucywgIlBsdWdpblZpZXc6OmdldEF1dGhlbnRpY2F0aW9uSW5mbzogcHJvdG9j
b2w9JXMsIGhvc3Q9JXMsIHBvcnQ9JWQiLCBwcm90b2NvbCwgaG9zdCwgcG9ydCk7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gTlBFUlJfR0VORVJJQ19FUlJPUjsKK30KICNlbmRp
ZgogCiB2b2lkIFBsdWdpblZpZXc6OnByaXZhdGVCcm93c2luZ1N0YXRlQ2hhbmdlZChib29sIHBy
aXZhdGVCcm93c2luZ0VuYWJsZWQpCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2lu
Vmlldy5oIGIvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcuaAppbmRleCBhNjE3ODVjLi5hZjc1
NzM2IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5oCisrKyBiL1dlYkNv
cmUvcGx1Z2lucy9QbHVnaW5WaWV3LmgKQEAgLTE2OCw2ICsxNjgsOSBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgICAgIE5QRXJyb3IgZ2V0VmFsdWUoTlBOVmFyaWFibGUgdmFyaWFibGUsIHZv
aWQqIHZhbHVlKTsKICAgICAgICAgc3RhdGljIE5QRXJyb3IgZ2V0VmFsdWVTdGF0aWMoTlBOVmFy
aWFibGUgdmFyaWFibGUsIHZvaWQqIHZhbHVlKTsKICAgICAgICAgTlBFcnJvciBzZXRWYWx1ZShO
UFBWYXJpYWJsZSB2YXJpYWJsZSwgdm9pZCogdmFsdWUpOworICAgICAgICBOUEVycm9yIGdldFZh
bHVlRm9yVVJMKE5QTlVSTFZhcmlhYmxlIHZhcmlhYmxlLCBjb25zdCBjaGFyKiB1cmwsIGNoYXIq
KiB2YWx1ZSwgdWludDMyX3QqIGxlbik7CisgICAgICAgIE5QRXJyb3Igc2V0VmFsdWVGb3JVUkwo
TlBOVVJMVmFyaWFibGUgdmFyaWFibGUsIGNvbnN0IGNoYXIqIHVybCwgY29uc3QgY2hhciogdmFs
dWUsIHVpbnQzMl90IGxlbik7CisgICAgICAgIE5QRXJyb3IgZ2V0QXV0aGVudGljYXRpb25JbmZv
KGNvbnN0IGNoYXIqIHByb3RvY29sLCBjb25zdCBjaGFyKiBob3N0LCBpbnQzMl90IHBvcnQsIGNv
bnN0IGNoYXIqIHNjaGVtZSwgY29uc3QgY2hhciogcmVhbG0sIGNoYXIqKiB1c2VybmFtZSwgdWlu
dDMyX3QqIHVsZW4sIGNoYXIqKiBwYXNzd29yZCwgdWludDMyX3QqIHBsZW4pOwogICAgICAgICB2
b2lkIGludmFsaWRhdGVSZWN0KE5QUmVjdCopOwogICAgICAgICB2b2lkIGludmFsaWRhdGVSZWdp
b24oTlBSZWdpb24pOwogI2VuZGlmCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvbnBhcGku
Y3BwIGIvV2ViQ29yZS9wbHVnaW5zL25wYXBpLmNwcAppbmRleCBkMGRiODQ1Li5iMjcyMWZiIDEw
MDY0NAotLS0gYS9XZWJDb3JlL3BsdWdpbnMvbnBhcGkuY3BwCisrKyBiL1dlYkNvcmUvcGx1Z2lu
cy9ucGFwaS5jcHAKQEAgLTE3NSwzICsxNzUsMTggQEAgdm9pZCBOUE5fUGx1Z2luVGhyZWFkQXN5
bmNDYWxsKE5QUCBpbnN0YW5jZSwgdm9pZCAoKmZ1bmMpICh2b2lkICopLCB2b2lkICp1c2VyRGEK
IHsKICAgICBQbHVnaW5NYWluVGhyZWFkU2NoZWR1bGVyOjpzY2hlZHVsZXIoKS5zY2hlZHVsZUNh
bGwoaW5zdGFuY2UsIGZ1bmMsIHVzZXJEYXRhKTsKIH0KKworTlBFcnJvciBOUE5fR2V0VmFsdWVG
b3JVUkwoTlBQIGluc3RhbmNlLCBOUE5VUkxWYXJpYWJsZSB2YXJpYWJsZSwgY29uc3QgY2hhciog
dXJsLCBjaGFyKiogdmFsdWUsIHVpbnQzMl90KiBsZW4pCit7CisgICAgcmV0dXJuIHBsdWdpblZp
ZXdGb3JJbnN0YW5jZShpbnN0YW5jZSktPmdldFZhbHVlRm9yVVJMKHZhcmlhYmxlLCB1cmwsIHZh
bHVlLCBsZW4pOworfQorCitOUEVycm9yIE5QTl9TZXRWYWx1ZUZvclVSTChOUFAgaW5zdGFuY2Us
IE5QTlVSTFZhcmlhYmxlIHZhcmlhYmxlLCBjb25zdCBjaGFyKiB1cmwsIGNvbnN0IGNoYXIqIHZh
bHVlLCB1aW50MzJfdCBsZW4pCit7CisgICAgcmV0dXJuIHBsdWdpblZpZXdGb3JJbnN0YW5jZShp
bnN0YW5jZSktPnNldFZhbHVlRm9yVVJMKHZhcmlhYmxlLCB1cmwsIHZhbHVlLCBsZW4pOworfQor
CitOUEVycm9yIE5QTl9HZXRBdXRoZW50aWNhdGlvbkluZm8oTlBQIGluc3RhbmNlLCBjb25zdCBj
aGFyKiBwcm90b2NvbCwgY29uc3QgY2hhciogaG9zdCwgaW50MzJfdCBwb3J0LCBjb25zdCBjaGFy
KiBzY2hlbWUsIGNvbnN0IGNoYXIqIHJlYWxtLCBjaGFyKiogdXNlcm5hbWUsIHVpbnQzMl90KiB1
bGVuLCBjaGFyKiogcGFzc3dvcmQsIHVpbnQzMl90KiBwbGVuKQoreworICAgIHJldHVybiBwbHVn
aW5WaWV3Rm9ySW5zdGFuY2UoaW5zdGFuY2UpLT5nZXRBdXRoZW50aWNhdGlvbkluZm8ocHJvdG9j
b2wsIGhvc3QsIHBvcnQsIHNjaGVtZSwgcmVhbG0sIHVzZXJuYW1lLCB1bGVuLCBwYXNzd29yZCwg
cGxlbik7Cit9CmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL05ldHNjYXBl
UGx1Z2luSW5zdGFuY2VQcm94eS5tbSBiL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2Nh
cGVQbHVnaW5JbnN0YW5jZVByb3h5Lm1tCmluZGV4IDFhMmI4YTEuLjBiOTAzNmEgMTAwNjQ0Ci0t
LSBhL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5
Lm1tCisrKyBiL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5JbnN0YW5j
ZVByb3h5Lm1tCkBAIC0xNTU4LDcgKzE1NTgsNyBAQCBib29sIE5ldHNjYXBlUGx1Z2luSW5zdGFu
Y2VQcm94eTo6Z2V0UHJveHkoZGF0YV90IHVybERhdGEsIG1hY2hfbXNnX3R5cGVfbnVtYmVyXwog
ICAgIGlmICghdXJsKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBWZWN0b3I8UHJveHlT
ZXJ2ZXI+IHByb3h5U2VydmVycyA9IHByb3h5U2VydmVyc0ZvclVSTCh1cmwpOworICAgIFZlY3Rv
cjxQcm94eVNlcnZlcj4gcHJveHlTZXJ2ZXJzID0gcHJveHlTZXJ2ZXJzRm9yVVJMKHVybCwgMCk7
CiAgICAgV1RGOjpDU3RyaW5nIHByb3h5U3RyaW5nVVRGOCA9IHRvU3RyaW5nKHByb3h5U2VydmVy
cykudXRmOCgpOwogCiAgICAgcHJveHlMZW5ndGggPSBwcm94eVN0cmluZ1VURjgubGVuZ3RoKCk7
CmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5WaWV3Lm1t
IGIvV2ViS2l0L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luVmlldy5tbQppbmRleCA1NDJk
NTlkLi40ODU3NGJmIDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQ
bHVnaW5WaWV3Lm1tCisrKyBiL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpblZp
ZXcubW0KQEAgLTIyNDAsNyArMjI0MCw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBnZXROUFJlY3Qo
Y29uc3QgTlNSZWN0JiBuciwgTlBSZWN0JiBucHIpCiAgICAgICAgICAgICBpZiAoIVVSTCkKICAg
ICAgICAgICAgICAgICBicmVhazsKIAotICAgICAgICAgICAgVmVjdG9yPFByb3h5U2VydmVyPiBw
cm94eVNlcnZlcnMgPSBwcm94eVNlcnZlcnNGb3JVUkwoVVJMKTsKKyAgICAgICAgICAgIFZlY3Rv
cjxQcm94eVNlcnZlcj4gcHJveHlTZXJ2ZXJzID0gcHJveHlTZXJ2ZXJzRm9yVVJMKFVSTCwgMCk7
CiAgICAgICAgICAgICBDU3RyaW5nIHByb3hpZXNVVEY4ID0gdG9TdHJpbmcocHJveHlTZXJ2ZXJz
KS51dGY4KCk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgICp2YWx1ZSA9IHN0YXRpY19jYXN0
PGNoYXIqPihOUE5fTWVtQWxsb2MocHJveGllc1VURjgubGVuZ3RoKCkpKTsKZGlmZiAtLWdpdCBh
L1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwIGIvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAKaW5kZXggNWYwNGMwYi4uNGM0ZDE3NyAxMDA2
NDQKLS0tIGEvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAKKysrIGIv
V2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAKQEAgLTQxLDYgKzQxLDcg
QEAKICNpbmNsdWRlIDxXZWJDb3JlL0hUTUxQbHVnSW5FbGVtZW50Lmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9Ib3N0V2luZG93Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9OZXRzY2FwZVBsdWdJblN0cmVh
bUxvYWRlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTmV0d29ya2luZ0NvbnRleHQuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1Byb3h5U2VydmVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZW5kZXJFbWJl
ZGRlZE9iamVjdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVuZGVyTGF5ZXIuaD4KQEAgLTg0MSw3
ICs4NDIsOSBAQCBIV05EIFBsdWdpblZpZXc6Om5hdGl2ZVBhcmVudFdpbmRvdygpCiAKIFN0cmlu
ZyBQbHVnaW5WaWV3Ojpwcm94aWVzRm9yVVJMKGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nKQogewot
ICAgIFZlY3RvcjxQcm94eVNlcnZlcj4gcHJveHlTZXJ2ZXJzID0gcHJveHlTZXJ2ZXJzRm9yVVJM
KEtVUkwoS1VSTCgpLCB1cmxTdHJpbmcpKTsKKyAgICBjb25zdCBGcmFtZUxvYWRlciogZnJhbWVM
b2FkZXIgPSBmcmFtZSgpID8gZnJhbWUoKS0+bG9hZGVyKCkgOiAwOworICAgIGNvbnN0IE5ldHdv
cmtpbmdDb250ZXh0KiBuZXRDb250ZXh0ID0gZnJhbWVMb2FkZXIgPyBmcmFtZUxvYWRlci0+bmV0
d29ya2luZ0NvbnRleHQoKSA6IDA7CisgICAgVmVjdG9yPFByb3h5U2VydmVyPiBwcm94eVNlcnZl
cnMgPSBwcm94eVNlcnZlcnNGb3JVUkwoS1VSTChLVVJMKCksIHVybFN0cmluZyksIG5ldENvbnRl
eHQpOwogICAgIHJldHVybiB0b1N0cmluZyhwcm94eVNlcnZlcnMpOwogfQogCg==
</data>
<flag name="review"
          id="60213"
          type_id="1"
          status="-"
          setter="kling"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>70373</attachid>
            <date>2010-10-09 13:54:11 -0700</date>
            <delta_ts>2010-10-14 11:22:38 -0700</delta_ts>
            <desc>Implement NPN_GetValueForURL and NPN_SetValueForURL and NPN_GetAuthenticationInfo [Final #9]...</desc>
            <filename>bug_34539_implement_missing_npn_functions.patch</filename>
            <type>text/plain</type>
            <size>15390</size>
            <attacher name="Dawit A.">adawit</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NGRkOGMxMS4uZjFhMzY0MSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMyBAQAorMjAxMC0xMC0wOSAgRGF3aXQgQWxlbWF5
ZWh1ICA8YWRhd2l0QGtkZS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkKKworICAgICAgICBJbXBsZW1lbnRlZCBOUE5fR2V0VmFsdWVGb3JVUkwgYW5kIE5QTl9TZXRW
YWx1ZUZvclVSTCBhbmQgTlBOX0dldEF1dGhlbnRpY2F0aW9uSW5mby4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM0NTM5CisKKyAgICAgICAgVGhlc2Ug
bWlzc2luZyBOUE4gZnVuY3Rpb25zIGNhdXNlIEphdmEgYXBwbGV0cyB0byBjcmFzaCBpbiBwb3J0
cyBzdWNoCisgICAgICAgIGFzIFF0V2Via2l0IHRoYXQgcmVseSBvbiB3ZWJraXQgZm9yIEphdmEg
YXBwbGV0IHN1cHBvcnQuCisKKyAgICAgICAgKiBwbHVnaW5zL1BsdWdpbkRlYnVnLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OnByZXR0eU5hbWVGb3JOUE5VUkxWYXJpYWJsZSk6CisgICAgICAgICog
cGx1Z2lucy9QbHVnaW5EZWJ1Zy5oOgorICAgICAgICAqIHBsdWdpbnMvUGx1Z2luUGFja2FnZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5QYWNrYWdlOjppbml0aWFsaXplQnJvd3NlckZ1
bmNzKToKKyAgICAgICAgKiBwbHVnaW5zL1BsdWdpblZpZXcuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UGx1Z2luVmlldzo6Z2V0VmFsdWVGb3JVUkwpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2lu
Vmlldzo6c2V0VmFsdWVGb3JVUkwpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6Z2V0
QXV0aGVudGljYXRpb25JbmZvKToKKyAgICAgICAgKiBwbHVnaW5zL1BsdWdpblZpZXcuaDoKKyAg
ICAgICAgKiBwbHVnaW5zL25wYXBpLmNwcDoKKyAgICAgICAgKE5QTl9HZXRWYWx1ZUZvclVSTCk6
CisgICAgICAgIChOUE5fU2V0VmFsdWVGb3JVUkwpOgorICAgICAgICAoTlBOX0dldEF1dGhlbnRp
Y2F0aW9uSW5mbyk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9Qcm94eVNlcnZlci5oOgor
ICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY2YvUHJveHlTZXJ2ZXJDRk5ldC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpwcm94eVNlcnZlcnNGb3JVUkwpOgorICAgICAgICAqIHBsYXRmb3JtL25l
dHdvcmsvcXQvUHJveHlTZXJ2ZXJRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwcm94eVNlcnZl
cnNGb3JVUkwpOgorIAogMjAxMC0xMC0wOCAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9y
Zz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KZGlmZiAtLWdpdCBhL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9Qcm94eVNlcnZlci5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL1Byb3h5U2VydmVyLmgKaW5kZXggZjc0MDExNC4uOGY3NjEyZSAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Byb3h5U2VydmVyLmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL1Byb3h5U2VydmVyLmgKQEAgLTMyLDYgKzMyLDcgQEAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogY2xhc3MgS1VSTDsKK2NsYXNzIE5ldHdvcmtpbmdDb250ZXh0OwogCiAvLyBSZXBy
ZXNlbnRzIGEgc2luZ2xlIHByb3h5IHNlcnZlci4KIGNsYXNzIFByb3h5U2VydmVyIHsKQEAgLTY3
LDcgKzY4LDcgQEAgcHJpdmF0ZToKIH07CiAKIC8vIFJldHVybiBhIHZlY3RvciBvZiBwcm94eSBz
ZXJ2ZXJzIGZvciB0aGUgZ2l2ZW4gVVJMLgotVmVjdG9yPFByb3h5U2VydmVyPiBwcm94eVNlcnZl
cnNGb3JVUkwoY29uc3QgS1VSTCYpOworVmVjdG9yPFByb3h5U2VydmVyPiBwcm94eVNlcnZlcnNG
b3JVUkwoY29uc3QgS1VSTCYsIGNvbnN0IE5ldHdvcmtpbmdDb250ZXh0Kik7CiAKIC8vIENvbnZl
cnRzIHRoZSBnaXZlbiB2ZWN0b3Igb2YgcHJveHkgc2VydmVycyB0byBhIFBBQyBzdHJpbmcsIGFz
IGRlc2NyaWJlZCBpbgogLy8gaHR0cDovL3dlYi5hcmNoaXZlLm9yZy93ZWIvMjAwNjA0MjQwMDUw
Mzcvd3AubmV0c2NhcGUuY29tL2VuZy9tb3ppbGxhLzIuMC9yZWxub3Rlcy9kZW1vL3Byb3h5LWxp
dmUuaHRtbApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Byb3h5U2Vy
dmVyQ0ZOZXQuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Byb3h5U2VydmVyQ0ZO
ZXQuY3BwCmluZGV4IDMzOGMwMDkuLjk3MjA2OTUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9jZi9Qcm94eVNlcnZlckNGTmV0LmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvY2YvUHJveHlTZXJ2ZXJDRk5ldC5jcHAKQEAgLTc5LDcgKzc5LDcgQEAgc3RhdGlj
IHZvaWQgYWRkUHJveHlTZXJ2ZXJzRm9yVVJMKFZlY3RvcjxQcm94eVNlcnZlcj4mIHByb3h5U2Vy
dmVycywgY29uc3QgS1VSTCYKICAgICB9CiB9CiAKLVZlY3RvcjxQcm94eVNlcnZlcj4gcHJveHlT
ZXJ2ZXJzRm9yVVJMKGNvbnN0IEtVUkwmIHVybCkKK1ZlY3RvcjxQcm94eVNlcnZlcj4gcHJveHlT
ZXJ2ZXJzRm9yVVJMKGNvbnN0IEtVUkwmIHVybCwgY29uc3QgTmV0d29ya2luZ0NvbnRleHQqKQog
ewogICAgIFZlY3RvcjxQcm94eVNlcnZlcj4gcHJveHlTZXJ2ZXJzOwogICAgIApkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1Byb3h5U2VydmVyUXQuY3BwIGIvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1Byb3h5U2VydmVyUXQuY3BwCmluZGV4IDgxODQ5ZTUuLjBi
ZjM2ODcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9Qcm94eVNlcnZl
clF0LmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUHJveHlTZXJ2ZXJRdC5j
cHAKQEAgLTI2LDE1ICsyNiw0OCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlBy
b3h5U2VydmVyLmgiCiAKLSNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgogI2luY2x1ZGUgIktV
UkwuaCIKKyNpbmNsdWRlICJOZXR3b3JraW5nQ29udGV4dC5oIgorCisjaW5jbHVkZSA8UU5ldHdv
cmtBY2Nlc3NNYW5hZ2VyPgorI2luY2x1ZGUgPFFOZXR3b3JrUHJveHk+CisjaW5jbHVkZSA8UU5l
dHdvcmtQcm94eUZhY3Rvcnk+CisjaW5jbHVkZSA8UU5ldHdvcmtQcm94eVF1ZXJ5PgorI2luY2x1
ZGUgPFFVcmw+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotVmVjdG9yPFByb3h5U2VydmVyPiBw
cm94eVNlcnZlcnNGb3JVUkwoY29uc3QgS1VSTCYpCitWZWN0b3I8UHJveHlTZXJ2ZXI+IHByb3h5
U2VydmVyc0ZvclVSTChjb25zdCBLVVJMJiB1cmwsIGNvbnN0IE5ldHdvcmtpbmdDb250ZXh0KiBj
b250ZXh0KQogewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIFZlY3RvcjxQcm94
eVNlcnZlcj4oKTsKKyAgICBWZWN0b3I8UHJveHlTZXJ2ZXI+IHNlcnZlcnM7CisgICAgCisgICAg
Y29uc3QgUU5ldHdvcmtBY2Nlc3NNYW5hZ2VyKiBhY2Nlc3NNYW5hZ2VyID0gY29udGV4dCA/IGNv
bnRleHQtPm5ldHdvcmtBY2Nlc3NNYW5hZ2VyKCkgOiAwOworICAgIFFOZXR3b3JrUHJveHlGYWN0
b3J5KiBwcm94eUZhY3RvcnkgPSBhY2Nlc3NNYW5hZ2VyID8gYWNjZXNzTWFuYWdlci0+cHJveHlG
YWN0b3J5KCkgOiAwOworCisgICAgaWYgKHByb3h5RmFjdG9yeSkgeworICAgICAgICBjb25zdCBR
TGlzdDxRTmV0d29ya1Byb3h5PiBwcm94aWVzID0gcHJveHlGYWN0b3J5LT5xdWVyeVByb3h5KFFO
ZXR3b3JrUHJveHlRdWVyeSh1cmwpKTsKKyAgICAgICAgUV9GT1JFQUNIKGNvbnN0IFFOZXR3b3Jr
UHJveHkmIHByb3h5LCBwcm94aWVzKSB7CisgICAgICAgICAgICBQcm94eVNlcnZlcjo6VHlwZSBw
cm94eVR5cGU7CisgICAgICAgICAgICBzd2l0Y2ggKHByb3h5LnR5cGUoKSkgeworICAgICAgICAg
ICAgY2FzZSBRTmV0d29ya1Byb3h5OjpTb2NrczVQcm94eToKKyAgICAgICAgICAgICAgICBwcm94
eVR5cGUgPSBQcm94eVNlcnZlcjo6U09DS1M7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICBjYXNlIFFOZXR3b3JrUHJveHk6Okh0dHBQcm94eToKKyAgICAgICAgICAgIGNhc2Ug
UU5ldHdvcmtQcm94eTo6SHR0cENhY2hpbmdQcm94eToKKyAgICAgICAgICAgIGNhc2UgUU5ldHdv
cmtQcm94eTo6RnRwQ2FjaGluZ1Byb3h5OgorICAgICAgICAgICAgICAgIHByb3h5VHlwZSA9IFBy
b3h5U2VydmVyOjpIVFRQOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2Fz
ZSBRTmV0d29ya1Byb3h5OjpEZWZhdWx0UHJveHk6CisgICAgICAgICAgICBjYXNlIFFOZXR3b3Jr
UHJveHk6Ok5vUHJveHk6CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIHBy
b3h5VHlwZSA9IFByb3h5U2VydmVyOjpEaXJlY3Q7CisgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICB9CisgICAgICAgICAgICBzZXJ2ZXJzLmFwcGVuZChQcm94eVNlcnZlcihwcm94
eVR5cGUsIHByb3h5Lmhvc3ROYW1lKCksIHByb3h5LnBvcnQoKSkpOworICAgICAgICB9CisgICAg
fQorCisgICAgcmV0dXJuIHNlcnZlcnM7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5EZWJ1Zy5jcHAgYi9XZWJDb3JlL3BsdWdp
bnMvUGx1Z2luRGVidWcuY3BwCmluZGV4IGFjZThiMjEuLjhjM2VmY2IgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvcGx1Z2lucy9QbHVnaW5EZWJ1Zy5jcHAKKysrIGIvV2ViQ29yZS9wbHVnaW5zL1BsdWdp
bkRlYnVnLmNwcApAQCAtMTYzLDYgKzE2MywxNCBAQCBDU3RyaW5nIHByZXR0eU5hbWVGb3JOUFBW
YXJpYWJsZShOUFBWYXJpYWJsZSB2YXJpYWJsZSwgdm9pZCogdmFsdWUpCiAgICAgfQogfQogCitD
U3RyaW5nIHByZXR0eU5hbWVGb3JOUE5VUkxWYXJpYWJsZShOUE5VUkxWYXJpYWJsZSB2YXJpYWJs
ZSkKK3sKKyAgICBzd2l0Y2ggKHZhcmlhYmxlKSB7CisgICAgY2FzZSBOUE5VUkxWQ29va2llOiBy
ZXR1cm4gIk5QTlVSTFZDb29raWUiOworICAgIGNhc2UgTlBOVVJMVlByb3h5OiByZXR1cm4gIk5Q
TlVSTFZQcm94eSI7CisgICAgZGVmYXVsdDogcmV0dXJuICJVbmtub3duIHZhcmlhYmxlIjsKKyAg
ICB9Cit9CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyAhTE9HX0RJU0FCTEVE
CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luRGVidWcuaCBiL1dlYkNvcmUvcGx1
Z2lucy9QbHVnaW5EZWJ1Zy5oCmluZGV4IDI1NDg2NGYuLjAxN2U2ODYgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvcGx1Z2lucy9QbHVnaW5EZWJ1Zy5oCisrKyBiL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5E
ZWJ1Zy5oCkBAIC00MSw2ICs0MSw3IEBAIGNvbnN0IGNoYXIqIHByZXR0eU5hbWVGb3JOUEVycm9y
KE5QRXJyb3IgZXJyb3IpOwogCiBDU3RyaW5nIHByZXR0eU5hbWVGb3JOUE5WYXJpYWJsZShOUE5W
YXJpYWJsZSB2YXJpYWJsZSk7CiBDU3RyaW5nIHByZXR0eU5hbWVGb3JOUFBWYXJpYWJsZShOUFBW
YXJpYWJsZSB2YXJpYWJsZSwgdm9pZCogdmFsdWUpOworQ1N0cmluZyBwcmV0dHlOYW1lRm9yTlBO
VVJMVmFyaWFibGUoTlBOVVJMVmFyaWFibGUgdmFyaWFibGUpOwogCiAjaWZkZWYgWFBfTUFDT1NY
CiBjb25zdCBjaGFyKiBwcmV0dHlOYW1lRm9yRHJhd2luZ01vZGVsKE5QRHJhd2luZ01vZGVsIGRy
YXdpbmdNb2RlbCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luUGFja2FnZS5j
cHAgYi9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luUGFja2FnZS5jcHAKaW5kZXggMzljNWYyYS4uMTM2
YTYwNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblBhY2thZ2UuY3BwCisrKyBi
L1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5QYWNrYWdlLmNwcApAQCAtMzI5LDYgKzMyOSw5IEBAIHZv
aWQgUGx1Z2luUGFja2FnZTo6aW5pdGlhbGl6ZUJyb3dzZXJGdW5jcygpCiAgICAgbV9icm93c2Vy
RnVuY3Muc2V0ZXhjZXB0aW9uID0gX05QTl9TZXRFeGNlcHRpb247CiAgICAgbV9icm93c2VyRnVu
Y3MuZW51bWVyYXRlID0gX05QTl9FbnVtZXJhdGU7CiAgICAgbV9icm93c2VyRnVuY3MuY29uc3Ry
dWN0ID0gX05QTl9Db25zdHJ1Y3Q7CisgICAgbV9icm93c2VyRnVuY3MuZ2V0dmFsdWVmb3J1cmwg
PSBOUE5fR2V0VmFsdWVGb3JVUkw7CisgICAgbV9icm93c2VyRnVuY3Muc2V0dmFsdWVmb3J1cmwg
PSBOUE5fU2V0VmFsdWVGb3JVUkw7CisgICAgbV9icm93c2VyRnVuY3MuZ2V0YXV0aGVudGljYXRp
b25pbmZvID0gTlBOX0dldEF1dGhlbnRpY2F0aW9uSW5mbzsKIH0KICNlbmRpZgogCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5jcHAgYi9XZWJDb3JlL3BsdWdpbnMvUGx1
Z2luVmlldy5jcHAKaW5kZXggZjdkYjAxMC4uNjA3NmE5YiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9w
bHVnaW5zL1BsdWdpblZpZXcuY3BwCisrKyBiL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmNw
cApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkJyaWRnZS5oIgogI2VuZGlmCiAjaW5jbHVk
ZSAiQ2hyb21lLmgiCisjaW5jbHVkZSAiQ29va2llSmFyLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQu
aCIKICNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKQEAg
LTU1LDYgKzU2LDcgQEAKICNpbmNsdWRlICJQbHVnaW5EZWJ1Zy5oIgogI2luY2x1ZGUgIlBsdWdp
bk1haW5UaHJlYWRTY2hlZHVsZXIuaCIKICNpbmNsdWRlICJQbHVnaW5QYWNrYWdlLmgiCisjaW5j
bHVkZSAiUHJveHlTZXJ2ZXIuaCIKICNpbmNsdWRlICJSZW5kZXJCb3guaCIKICNpbmNsdWRlICJS
ZW5kZXJPYmplY3QuaCIKICNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCkBAIC0xMzkyLDYg
KzEzOTQsMTA3IEBAIE5QRXJyb3IgUGx1Z2luVmlldzo6Z2V0VmFsdWUoTlBOVmFyaWFibGUgdmFy
aWFibGUsIHZvaWQqIHZhbHVlKQogICAgICAgICByZXR1cm4gTlBFUlJfR0VORVJJQ19FUlJPUjsK
ICAgICB9CiB9CisKK05QRXJyb3IgUGx1Z2luVmlldzo6Z2V0VmFsdWVGb3JVUkwoTlBOVVJMVmFy
aWFibGUgdmFyaWFibGUsIGNvbnN0IGNoYXIqIHVybCwgY2hhcioqIHZhbHVlLCB1aW50MzJfdCog
bGVuKQoreworICAgIExPRyhQbHVnaW5zLCAiUGx1Z2luVmlldzo6Z2V0VmFsdWVGb3JVUkwoJXMp
IiwgcHJldHR5TmFtZUZvck5QTlVSTFZhcmlhYmxlKHZhcmlhYmxlKS5kYXRhKCkpOworCisgICAg
TlBFcnJvciByZXN1bHQgPSBOUEVSUl9OT19FUlJPUjsKKworICAgIHN3aXRjaCAodmFyaWFibGUp
IHsKKyAgICBjYXNlIE5QTlVSTFZDb29raWU6IHsKKyAgICAgICAgS1VSTCB1KG1fYmFzZVVSTCwg
dXJsKTsKKyAgICAgICAgaWYgKHUuaXNWYWxpZCgpKSB7CisgICAgICAgICAgICBjb25zdCBDU3Ry
aW5nIGNvb2tpZVN0ciA9IGNvb2tpZXMobV9wYXJlbnRGcmFtZS0+ZG9jdW1lbnQoKSwgdSkudXRm
OCgpOworICAgICAgICAgICAgaWYgKCFjb29raWVTdHIuaXNOdWxsKCkpIHsKKyAgICAgICAgICAg
ICAgICBjb25zdCBpbnQgc2l6ZSA9IGNvb2tpZVN0ci5sZW5ndGgoKTsKKyAgICAgICAgICAgICAg
ICAqdmFsdWUgPSBzdGF0aWNfY2FzdDxjaGFyKj4oTlBOX01lbUFsbG9jKHNpemUrMSkpOworICAg
ICAgICAgICAgICAgIGlmICgqdmFsdWUpIHsKKyAgICAgICAgICAgICAgICAgICAgbWVtc2V0KCp2
YWx1ZSwgMCwgc2l6ZSsxKTsKKyAgICAgICAgICAgICAgICAgICAgbWVtY3B5KCp2YWx1ZSwgY29v
a2llU3RyLmRhdGEoKSwgc2l6ZSsxKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGxlbikKKyAg
ICAgICAgICAgICAgICAgICAgICAgICpsZW4gPSBzaXplOworICAgICAgICAgICAgICAgIH0gZWxz
ZQorICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBOUEVSUl9PVVRfT0ZfTUVNT1JZX0VSUk9S
OworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIHJlc3VsdCA9IE5Q
RVJSX0lOVkFMSURfVVJMOworICAgICAgICBicmVhazsKKyAgICB9CisgICAgY2FzZSBOUE5VUkxW
UHJveHk6IHsKKyAgICAgICAgS1VSTCB1KG1fYmFzZVVSTCwgdXJsKTsKKyAgICAgICAgaWYgKHUu
aXNWYWxpZCgpKSB7CisgICAgICAgICAgICBGcmFtZSogZnJhbWUgPSBwYXJlbnRGcmFtZSgpOwor
ICAgICAgICAgICAgaWYgKCFmcmFtZSkgeworICAgICAgICAgICAgICAgIERvY3VtZW50KiBkb2N1
bWVudCA9IG1fZWxlbWVudC0+ZG9jdW1lbnQoKTsKKyAgICAgICAgICAgICAgICBpZiAoIWRvY3Vt
ZW50KQorICAgICAgICAgICAgICAgICAgICBkb2N1bWVudCA9IG1fZWxlbWVudC0+b3duZXJEb2N1
bWVudCgpOworICAgICAgICAgICAgICAgIGlmIChkb2N1bWVudCkKKyAgICAgICAgICAgICAgICAg
ICAgZnJhbWUgPSBkb2N1bWVudC0+ZnJhbWUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IGNvbnN0IEZyYW1lTG9hZGVyKiBmcmFtZUxvYWRlciA9IGZyYW1lID8gZnJhbWUtPmxvYWRlcigp
IDogMDsKKyAgICAgICAgICAgIGNvbnN0IE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0ID0gZnJh
bWVMb2FkZXIgPyBmcmFtZUxvYWRlci0+bmV0d29ya2luZ0NvbnRleHQoKSA6IDA7CisgICAgICAg
ICAgICBjb25zdCBDU3RyaW5nIHByb3h5U3RyID0gdG9TdHJpbmcocHJveHlTZXJ2ZXJzRm9yVVJM
KHUsIGNvbnRleHQpKS51dGY4KCk7CisgICAgICAgICAgICBpZiAoIXByb3h5U3RyLmlzTnVsbCgp
KSB7CisgICAgICAgICAgICAgICAgY29uc3QgaW50IHNpemUgPSBwcm94eVN0ci5sZW5ndGgoKTsK
KyAgICAgICAgICAgICAgICAqdmFsdWUgPSBzdGF0aWNfY2FzdDxjaGFyKj4oTlBOX01lbUFsbG9j
KHNpemUrMSkpOworICAgICAgICAgICAgICAgIGlmICgqdmFsdWUpIHsKKyAgICAgICAgICAgICAg
ICAgICAgbWVtc2V0KCp2YWx1ZSwgMCwgc2l6ZSsxKTsKKyAgICAgICAgICAgICAgICAgICAgbWVt
Y3B5KCp2YWx1ZSwgcHJveHlTdHIuZGF0YSgpLCBzaXplKzEpOworICAgICAgICAgICAgICAgICAg
ICBpZiAobGVuKQorICAgICAgICAgICAgICAgICAgICAgICAgKmxlbiA9IHNpemU7CisgICAgICAg
ICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IE5QRVJSX09VVF9P
Rl9NRU1PUllfRVJST1I7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZQorICAgICAgICAg
ICAgcmVzdWx0ID0gTlBFUlJfSU5WQUxJRF9VUkw7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAg
ICBkZWZhdWx0OgorICAgICAgICByZXN1bHQgPSBOUEVSUl9HRU5FUklDX0VSUk9SOworICAgICAg
ICBMT0coUGx1Z2lucywgIlBsdWdpblZpZXc6OmdldFZhbHVlRm9yVVJMOiAlcyIsIHByZXR0eU5h
bWVGb3JOUE5VUkxWYXJpYWJsZSh2YXJpYWJsZSkuZGF0YSgpKTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgfQorCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworCitOUEVycm9yIFBsdWdpblZpZXc6OnNl
dFZhbHVlRm9yVVJMKE5QTlVSTFZhcmlhYmxlIHZhcmlhYmxlLCBjb25zdCBjaGFyKiB1cmwsIGNv
bnN0IGNoYXIqIHZhbHVlLCB1aW50MzJfdCBsZW4pCit7CisgICAgTE9HKFBsdWdpbnMsICJQbHVn
aW5WaWV3OjpzZXRWYWx1ZUZvclVSTCglcykiLCBwcmV0dHlOYW1lRm9yTlBOVVJMVmFyaWFibGUo
dmFyaWFibGUpLmRhdGEoKSk7CisKKyAgICBOUEVycm9yIHJlc3VsdCA9IE5QRVJSX0dFTkVSSUNf
RVJST1I7CisKKyAgICBzd2l0Y2ggKHZhcmlhYmxlKSB7CisgICAgY2FzZSBOUE5VUkxWQ29va2ll
OiB7CisgICAgICAgIEtVUkwgdShtX2Jhc2VVUkwsIHVybCk7CisgICAgICAgIGlmICh1LmlzVmFs
aWQoKSkgeworICAgICAgICAgICAgU3RyaW5nIGNvb2tpZVN0ciA9IFN0cmluZzo6ZnJvbVVURjgo
dmFsdWUsIGxlbik7CisgICAgICAgICAgICBpZiAoIWNvb2tpZVN0ci5pc0VtcHR5KCkpCisgICAg
ICAgICAgICAgICAgc2V0Q29va2llcyhtX3BhcmVudEZyYW1lLT5kb2N1bWVudCgpLCB1LCBjb29r
aWVTdHIpOworICAgICAgICAgICAgcmVzdWx0ID0gTlBFUlJfTk9fRVJST1I7CisgICAgICAgIH0g
ZWxzZQorICAgICAgICAgICAgcmVzdWx0ID0gTlBFUlJfSU5WQUxJRF9VUkw7CisgICAgICAgIGJy
ZWFrOworICAgIH0KKyAgICBjYXNlIE5QTlVSTFZQcm94eToKKyAgICAgICAgTE9HKFBsdWdpbnMs
ICJQbHVnaW5WaWV3OjpzZXRWYWx1ZUZvclVSTCglcyk6IFBsdWdpbnMgYXJlIE5PVCBhbGxvd2Vk
IHRvIHNldCBwcm94eSBpbmZvcm1hdGlvbi4iLCBwcmV0dHlOYW1lRm9yTlBOVVJMVmFyaWFibGUo
dmFyaWFibGUpLmRhdGEoKSk7CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAg
IExPRyhQbHVnaW5zLCAiUGx1Z2luVmlldzo6c2V0VmFsdWVGb3JVUkw6ICVzIiwgcHJldHR5TmFt
ZUZvck5QTlVSTFZhcmlhYmxlKHZhcmlhYmxlKS5kYXRhKCkpOworICAgICAgICBicmVhazsKKyAg
ICB9CisKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitOUEVycm9yIFBsdWdpblZpZXc6OmdldEF1
dGhlbnRpY2F0aW9uSW5mbyhjb25zdCBjaGFyKiBwcm90b2NvbCwgY29uc3QgY2hhciogaG9zdCwg
aW50MzJfdCBwb3J0LCBjb25zdCBjaGFyKiBzY2hlbWUsIGNvbnN0IGNoYXIqIHJlYWxtLCBjaGFy
KiogdXNlcm5hbWUsIHVpbnQzMl90KiB1bGVuLCBjaGFyKiogcGFzc3dvcmQsIHVpbnQzMl90KiBw
bGVuKQoreworICAgIExPRyhQbHVnaW5zLCAiUGx1Z2luVmlldzo6Z2V0QXV0aGVudGljYXRpb25J
bmZvOiBwcm90b2NvbD0lcywgaG9zdD0lcywgcG9ydD0lZCIsIHByb3RvY29sLCBob3N0LCBwb3J0
KTsKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBOUEVSUl9HRU5FUklDX0VSUk9S
OworfQogI2VuZGlmCiAKIHZvaWQgUGx1Z2luVmlldzo6cHJpdmF0ZUJyb3dzaW5nU3RhdGVDaGFu
Z2VkKGJvb2wgcHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGx1
Z2lucy9QbHVnaW5WaWV3LmggYi9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5oCmluZGV4IGE2
MTc4NWMuLmFmNzU3MzYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmgK
KysrIGIvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcuaApAQCAtMTY4LDYgKzE2OCw5IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgTlBFcnJvciBnZXRWYWx1ZShOUE5WYXJpYWJsZSB2
YXJpYWJsZSwgdm9pZCogdmFsdWUpOwogICAgICAgICBzdGF0aWMgTlBFcnJvciBnZXRWYWx1ZVN0
YXRpYyhOUE5WYXJpYWJsZSB2YXJpYWJsZSwgdm9pZCogdmFsdWUpOwogICAgICAgICBOUEVycm9y
IHNldFZhbHVlKE5QUFZhcmlhYmxlIHZhcmlhYmxlLCB2b2lkKiB2YWx1ZSk7CisgICAgICAgIE5Q
RXJyb3IgZ2V0VmFsdWVGb3JVUkwoTlBOVVJMVmFyaWFibGUgdmFyaWFibGUsIGNvbnN0IGNoYXIq
IHVybCwgY2hhcioqIHZhbHVlLCB1aW50MzJfdCogbGVuKTsKKyAgICAgICAgTlBFcnJvciBzZXRW
YWx1ZUZvclVSTChOUE5VUkxWYXJpYWJsZSB2YXJpYWJsZSwgY29uc3QgY2hhciogdXJsLCBjb25z
dCBjaGFyKiB2YWx1ZSwgdWludDMyX3QgbGVuKTsKKyAgICAgICAgTlBFcnJvciBnZXRBdXRoZW50
aWNhdGlvbkluZm8oY29uc3QgY2hhciogcHJvdG9jb2wsIGNvbnN0IGNoYXIqIGhvc3QsIGludDMy
X3QgcG9ydCwgY29uc3QgY2hhciogc2NoZW1lLCBjb25zdCBjaGFyKiByZWFsbSwgY2hhcioqIHVz
ZXJuYW1lLCB1aW50MzJfdCogdWxlbiwgY2hhcioqIHBhc3N3b3JkLCB1aW50MzJfdCogcGxlbik7
CiAgICAgICAgIHZvaWQgaW52YWxpZGF0ZVJlY3QoTlBSZWN0Kik7CiAgICAgICAgIHZvaWQgaW52
YWxpZGF0ZVJlZ2lvbihOUFJlZ2lvbik7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGx1
Z2lucy9ucGFwaS5jcHAgYi9XZWJDb3JlL3BsdWdpbnMvbnBhcGkuY3BwCmluZGV4IGQwZGI4NDUu
LmIyNzIxZmIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGx1Z2lucy9ucGFwaS5jcHAKKysrIGIvV2Vi
Q29yZS9wbHVnaW5zL25wYXBpLmNwcApAQCAtMTc1LDMgKzE3NSwxOCBAQCB2b2lkIE5QTl9QbHVn
aW5UaHJlYWRBc3luY0NhbGwoTlBQIGluc3RhbmNlLCB2b2lkICgqZnVuYykgKHZvaWQgKiksIHZv
aWQgKnVzZXJEYQogewogICAgIFBsdWdpbk1haW5UaHJlYWRTY2hlZHVsZXI6OnNjaGVkdWxlcigp
LnNjaGVkdWxlQ2FsbChpbnN0YW5jZSwgZnVuYywgdXNlckRhdGEpOwogfQorCitOUEVycm9yIE5Q
Tl9HZXRWYWx1ZUZvclVSTChOUFAgaW5zdGFuY2UsIE5QTlVSTFZhcmlhYmxlIHZhcmlhYmxlLCBj
b25zdCBjaGFyKiB1cmwsIGNoYXIqKiB2YWx1ZSwgdWludDMyX3QqIGxlbikKK3sKKyAgICByZXR1
cm4gcGx1Z2luVmlld0Zvckluc3RhbmNlKGluc3RhbmNlKS0+Z2V0VmFsdWVGb3JVUkwodmFyaWFi
bGUsIHVybCwgdmFsdWUsIGxlbik7Cit9CisKK05QRXJyb3IgTlBOX1NldFZhbHVlRm9yVVJMKE5Q
UCBpbnN0YW5jZSwgTlBOVVJMVmFyaWFibGUgdmFyaWFibGUsIGNvbnN0IGNoYXIqIHVybCwgY29u
c3QgY2hhciogdmFsdWUsIHVpbnQzMl90IGxlbikKK3sKKyAgICByZXR1cm4gcGx1Z2luVmlld0Zv
ckluc3RhbmNlKGluc3RhbmNlKS0+c2V0VmFsdWVGb3JVUkwodmFyaWFibGUsIHVybCwgdmFsdWUs
IGxlbik7Cit9CisKK05QRXJyb3IgTlBOX0dldEF1dGhlbnRpY2F0aW9uSW5mbyhOUFAgaW5zdGFu
Y2UsIGNvbnN0IGNoYXIqIHByb3RvY29sLCBjb25zdCBjaGFyKiBob3N0LCBpbnQzMl90IHBvcnQs
IGNvbnN0IGNoYXIqIHNjaGVtZSwgY29uc3QgY2hhciogcmVhbG0sIGNoYXIqKiB1c2VybmFtZSwg
dWludDMyX3QqIHVsZW4sIGNoYXIqKiBwYXNzd29yZCwgdWludDMyX3QqIHBsZW4pCit7CisgICAg
cmV0dXJuIHBsdWdpblZpZXdGb3JJbnN0YW5jZShpbnN0YW5jZSktPmdldEF1dGhlbnRpY2F0aW9u
SW5mbyhwcm90b2NvbCwgaG9zdCwgcG9ydCwgc2NoZW1lLCByZWFsbSwgdXNlcm5hbWUsIHVsZW4s
IHBhc3N3b3JkLCBwbGVuKTsKK30KZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0
ZWQvTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5Lm1tIGIvV2ViS2l0L21hYy9QbHVnaW5zL0hv
c3RlZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkubW0KaW5kZXggMWEyYjhhMS4uMGI5MDM2
YSAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbklu
c3RhbmNlUHJveHkubW0KKysrIGIvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBs
dWdpbkluc3RhbmNlUHJveHkubW0KQEAgLTE1NTgsNyArMTU1OCw3IEBAIGJvb2wgTmV0c2NhcGVQ
bHVnaW5JbnN0YW5jZVByb3h5OjpnZXRQcm94eShkYXRhX3QgdXJsRGF0YSwgbWFjaF9tc2dfdHlw
ZV9udW1iZXJfCiAgICAgaWYgKCF1cmwpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIFZl
Y3RvcjxQcm94eVNlcnZlcj4gcHJveHlTZXJ2ZXJzID0gcHJveHlTZXJ2ZXJzRm9yVVJMKHVybCk7
CisgICAgVmVjdG9yPFByb3h5U2VydmVyPiBwcm94eVNlcnZlcnMgPSBwcm94eVNlcnZlcnNGb3JV
UkwodXJsLCAwKTsKICAgICBXVEY6OkNTdHJpbmcgcHJveHlTdHJpbmdVVEY4ID0gdG9TdHJpbmco
cHJveHlTZXJ2ZXJzKS51dGY4KCk7CiAKICAgICBwcm94eUxlbmd0aCA9IHByb3h5U3RyaW5nVVRG
OC5sZW5ndGgoKTsKZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBs
dWdpblZpZXcubW0gYi9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5WaWV3Lm1t
CmluZGV4IDU0MmQ1OWQuLjQ4NTc0YmYgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvUGx1Z2lucy9X
ZWJOZXRzY2FwZVBsdWdpblZpZXcubW0KKysrIGIvV2ViS2l0L21hYy9QbHVnaW5zL1dlYk5ldHNj
YXBlUGx1Z2luVmlldy5tbQpAQCAtMjI0MCw3ICsyMjQwLDcgQEAgc3RhdGljIGlubGluZSB2b2lk
IGdldE5QUmVjdChjb25zdCBOU1JlY3QmIG5yLCBOUFJlY3QmIG5wcikKICAgICAgICAgICAgIGlm
ICghVVJMKQogICAgICAgICAgICAgICAgIGJyZWFrOwogCi0gICAgICAgICAgICBWZWN0b3I8UHJv
eHlTZXJ2ZXI+IHByb3h5U2VydmVycyA9IHByb3h5U2VydmVyc0ZvclVSTChVUkwpOworICAgICAg
ICAgICAgVmVjdG9yPFByb3h5U2VydmVyPiBwcm94eVNlcnZlcnMgPSBwcm94eVNlcnZlcnNGb3JV
UkwoVVJMLCAwKTsKICAgICAgICAgICAgIENTdHJpbmcgcHJveGllc1VURjggPSB0b1N0cmluZyhw
cm94eVNlcnZlcnMpLnV0ZjgoKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgKnZhbHVlID0g
c3RhdGljX2Nhc3Q8Y2hhcio+KE5QTl9NZW1BbGxvYyhwcm94aWVzVVRGOC5sZW5ndGgoKSkpOwpk
aWZmIC0tZ2l0IGEvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAgYi9X
ZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcAppbmRleCA1ZjA0YzBiLi40
YzRkMTc3IDEwMDY0NAotLS0gYS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3
LmNwcAorKysgYi9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcApAQCAt
NDEsNiArNDEsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvSFRNTFBsdWdJbkVsZW1lbnQuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL0hvc3RXaW5kb3cuaD4KICNpbmNsdWRlIDxXZWJDb3JlL05ldHNjYXBl
UGx1Z0luU3RyZWFtTG9hZGVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9OZXR3b3JraW5nQ29udGV4
dC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUHJveHlTZXJ2ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1JlbmRlckVtYmVkZGVkT2JqZWN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZW5kZXJMYXllci5o
PgpAQCAtODQxLDcgKzg0Miw5IEBAIEhXTkQgUGx1Z2luVmlldzo6bmF0aXZlUGFyZW50V2luZG93
KCkKIAogU3RyaW5nIFBsdWdpblZpZXc6OnByb3hpZXNGb3JVUkwoY29uc3QgU3RyaW5nJiB1cmxT
dHJpbmcpCiB7Ci0gICAgVmVjdG9yPFByb3h5U2VydmVyPiBwcm94eVNlcnZlcnMgPSBwcm94eVNl
cnZlcnNGb3JVUkwoS1VSTChLVVJMKCksIHVybFN0cmluZykpOworICAgIGNvbnN0IEZyYW1lTG9h
ZGVyKiBmcmFtZUxvYWRlciA9IGZyYW1lKCkgPyBmcmFtZSgpLT5sb2FkZXIoKSA6IDA7CisgICAg
Y29uc3QgTmV0d29ya2luZ0NvbnRleHQqIG5ldENvbnRleHQgPSBmcmFtZUxvYWRlciA/IGZyYW1l
TG9hZGVyLT5uZXR3b3JraW5nQ29udGV4dCgpIDogMDsKKyAgICBWZWN0b3I8UHJveHlTZXJ2ZXI+
IHByb3h5U2VydmVycyA9IHByb3h5U2VydmVyc0ZvclVSTChLVVJMKEtVUkwoKSwgdXJsU3RyaW5n
KSwgbmV0Q29udGV4dCk7CiAgICAgcmV0dXJuIHRvU3RyaW5nKHByb3h5U2VydmVycyk7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>70755</attachid>
            <date>2010-10-14 11:18:15 -0700</date>
            <delta_ts>2010-10-14 12:28:08 -0700</delta_ts>
            <desc>Implement NPN_GetValueForURL and NPN_SetValueForURL and NPN_GetAuthenticationInfo [Final #10]...</desc>
            <filename>bug_34539_implement_missing_npn_functions.patch</filename>
            <type>text/plain</type>
            <size>15631</size>
            <attacher name="Dawit A.">adawit</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MzdiNjY2YS4uNWEwNWRhZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMyBAQAorMjAxMC0xMC0xNCAgRGF3aXQgQWxlbWF5
ZWh1ICA8YWRhd2l0QGtkZS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkKKworICAgICAgICBJbXBsZW1lbnRlZCBOUE5fR2V0VmFsdWVGb3JVUkwgYW5kIE5QTl9TZXRW
YWx1ZUZvclVSTCBhbmQgTlBOX0dldEF1dGhlbnRpY2F0aW9uSW5mby4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM0NTM5CisKKyAgICAgICAgVGhlc2Ug
bWlzc2luZyBOUE4gZnVuY3Rpb25zIGNhdXNlIEphdmEgYXBwbGV0cyB0byBjcmFzaCBpbiBwb3J0
cyBzdWNoCisgICAgICAgIGFzIFF0V2Via2l0IHRoYXQgcmVseSBvbiB3ZWJraXQgZm9yIEphdmEg
YXBwbGV0IHN1cHBvcnQuCisKKyAgICAgICAgKiBwbHVnaW5zL1BsdWdpbkRlYnVnLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OnByZXR0eU5hbWVGb3JOUE5VUkxWYXJpYWJsZSk6CisgICAgICAgICog
cGx1Z2lucy9QbHVnaW5EZWJ1Zy5oOgorICAgICAgICAqIHBsdWdpbnMvUGx1Z2luUGFja2FnZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5QYWNrYWdlOjppbml0aWFsaXplQnJvd3NlckZ1
bmNzKToKKyAgICAgICAgKiBwbHVnaW5zL1BsdWdpblZpZXcuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UGx1Z2luVmlldzo6Z2V0VmFsdWVGb3JVUkwpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2lu
Vmlldzo6c2V0VmFsdWVGb3JVUkwpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6Z2V0
QXV0aGVudGljYXRpb25JbmZvKToKKyAgICAgICAgKiBwbHVnaW5zL1BsdWdpblZpZXcuaDoKKyAg
ICAgICAgKiBwbHVnaW5zL25wYXBpLmNwcDoKKyAgICAgICAgKE5QTl9HZXRWYWx1ZUZvclVSTCk6
CisgICAgICAgIChOUE5fU2V0VmFsdWVGb3JVUkwpOgorICAgICAgICAoTlBOX0dldEF1dGhlbnRp
Y2F0aW9uSW5mbyk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9Qcm94eVNlcnZlci5oOgor
ICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY2YvUHJveHlTZXJ2ZXJDRk5ldC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpwcm94eVNlcnZlcnNGb3JVUkwpOgorICAgICAgICAqIHBsYXRmb3JtL25l
dHdvcmsvcXQvUHJveHlTZXJ2ZXJRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwcm94eVNlcnZl
cnNGb3JVUkwpOgorIAogMjAxMC0xMC0xNCAgQW5kcmVhcyBLbGluZyAgPGtsaW5nQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQXJpeWEgSGlkYXlhdC4KZGlmZiAtLWdpdCBhL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9Qcm94eVNlcnZlci5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL1Byb3h5U2VydmVyLmgKaW5kZXggZjc0MDExNC4uOGY3NjEyZSAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Byb3h5U2VydmVyLmgKKysrIGIvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL1Byb3h5U2VydmVyLmgKQEAgLTMyLDYgKzMyLDcgQEAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogY2xhc3MgS1VSTDsKK2NsYXNzIE5ldHdvcmtpbmdDb250ZXh0OwogCiAvLyBS
ZXByZXNlbnRzIGEgc2luZ2xlIHByb3h5IHNlcnZlci4KIGNsYXNzIFByb3h5U2VydmVyIHsKQEAg
LTY3LDcgKzY4LDcgQEAgcHJpdmF0ZToKIH07CiAKIC8vIFJldHVybiBhIHZlY3RvciBvZiBwcm94
eSBzZXJ2ZXJzIGZvciB0aGUgZ2l2ZW4gVVJMLgotVmVjdG9yPFByb3h5U2VydmVyPiBwcm94eVNl
cnZlcnNGb3JVUkwoY29uc3QgS1VSTCYpOworVmVjdG9yPFByb3h5U2VydmVyPiBwcm94eVNlcnZl
cnNGb3JVUkwoY29uc3QgS1VSTCYsIGNvbnN0IE5ldHdvcmtpbmdDb250ZXh0Kik7CiAKIC8vIENv
bnZlcnRzIHRoZSBnaXZlbiB2ZWN0b3Igb2YgcHJveHkgc2VydmVycyB0byBhIFBBQyBzdHJpbmcs
IGFzIGRlc2NyaWJlZCBpbgogLy8gaHR0cDovL3dlYi5hcmNoaXZlLm9yZy93ZWIvMjAwNjA0MjQw
MDUwMzcvd3AubmV0c2NhcGUuY29tL2VuZy9tb3ppbGxhLzIuMC9yZWxub3Rlcy9kZW1vL3Byb3h5
LWxpdmUuaHRtbApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Byb3h5
U2VydmVyQ0ZOZXQuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Byb3h5U2VydmVy
Q0ZOZXQuY3BwCmluZGV4IDMzOGMwMDkuLjk3MjA2OTUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9jZi9Qcm94eVNlcnZlckNGTmV0LmNwcAorKysgYi9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvY2YvUHJveHlTZXJ2ZXJDRk5ldC5jcHAKQEAgLTc5LDcgKzc5LDcgQEAgc3Rh
dGljIHZvaWQgYWRkUHJveHlTZXJ2ZXJzRm9yVVJMKFZlY3RvcjxQcm94eVNlcnZlcj4mIHByb3h5
U2VydmVycywgY29uc3QgS1VSTCYKICAgICB9CiB9CiAKLVZlY3RvcjxQcm94eVNlcnZlcj4gcHJv
eHlTZXJ2ZXJzRm9yVVJMKGNvbnN0IEtVUkwmIHVybCkKK1ZlY3RvcjxQcm94eVNlcnZlcj4gcHJv
eHlTZXJ2ZXJzRm9yVVJMKGNvbnN0IEtVUkwmIHVybCwgY29uc3QgTmV0d29ya2luZ0NvbnRleHQq
KQogewogICAgIFZlY3RvcjxQcm94eVNlcnZlcj4gcHJveHlTZXJ2ZXJzOwogICAgIApkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1Byb3h5U2VydmVyUXQuY3BwIGIvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1Byb3h5U2VydmVyUXQuY3BwCmluZGV4IDgxODQ5ZTUu
LjBiZjM2ODcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9Qcm94eVNl
cnZlclF0LmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUHJveHlTZXJ2ZXJR
dC5jcHAKQEAgLTI2LDE1ICsyNiw0OCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUg
IlByb3h5U2VydmVyLmgiCiAKLSNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgogI2luY2x1ZGUg
IktVUkwuaCIKKyNpbmNsdWRlICJOZXR3b3JraW5nQ29udGV4dC5oIgorCisjaW5jbHVkZSA8UU5l
dHdvcmtBY2Nlc3NNYW5hZ2VyPgorI2luY2x1ZGUgPFFOZXR3b3JrUHJveHk+CisjaW5jbHVkZSA8
UU5ldHdvcmtQcm94eUZhY3Rvcnk+CisjaW5jbHVkZSA8UU5ldHdvcmtQcm94eVF1ZXJ5PgorI2lu
Y2x1ZGUgPFFVcmw+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotVmVjdG9yPFByb3h5U2VydmVy
PiBwcm94eVNlcnZlcnNGb3JVUkwoY29uc3QgS1VSTCYpCitWZWN0b3I8UHJveHlTZXJ2ZXI+IHBy
b3h5U2VydmVyc0ZvclVSTChjb25zdCBLVVJMJiB1cmwsIGNvbnN0IE5ldHdvcmtpbmdDb250ZXh0
KiBjb250ZXh0KQogewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIFZlY3RvcjxQ
cm94eVNlcnZlcj4oKTsKKyAgICBWZWN0b3I8UHJveHlTZXJ2ZXI+IHNlcnZlcnM7CisgICAgCisg
ICAgY29uc3QgUU5ldHdvcmtBY2Nlc3NNYW5hZ2VyKiBhY2Nlc3NNYW5hZ2VyID0gY29udGV4dCA/
IGNvbnRleHQtPm5ldHdvcmtBY2Nlc3NNYW5hZ2VyKCkgOiAwOworICAgIFFOZXR3b3JrUHJveHlG
YWN0b3J5KiBwcm94eUZhY3RvcnkgPSBhY2Nlc3NNYW5hZ2VyID8gYWNjZXNzTWFuYWdlci0+cHJv
eHlGYWN0b3J5KCkgOiAwOworCisgICAgaWYgKHByb3h5RmFjdG9yeSkgeworICAgICAgICBjb25z
dCBRTGlzdDxRTmV0d29ya1Byb3h5PiBwcm94aWVzID0gcHJveHlGYWN0b3J5LT5xdWVyeVByb3h5
KFFOZXR3b3JrUHJveHlRdWVyeSh1cmwpKTsKKyAgICAgICAgUV9GT1JFQUNIKGNvbnN0IFFOZXR3
b3JrUHJveHkmIHByb3h5LCBwcm94aWVzKSB7CisgICAgICAgICAgICBQcm94eVNlcnZlcjo6VHlw
ZSBwcm94eVR5cGU7CisgICAgICAgICAgICBzd2l0Y2ggKHByb3h5LnR5cGUoKSkgeworICAgICAg
ICAgICAgY2FzZSBRTmV0d29ya1Byb3h5OjpTb2NrczVQcm94eToKKyAgICAgICAgICAgICAgICBw
cm94eVR5cGUgPSBQcm94eVNlcnZlcjo6U09DS1M7CisgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICBjYXNlIFFOZXR3b3JrUHJveHk6Okh0dHBQcm94eToKKyAgICAgICAgICAgIGNh
c2UgUU5ldHdvcmtQcm94eTo6SHR0cENhY2hpbmdQcm94eToKKyAgICAgICAgICAgIGNhc2UgUU5l
dHdvcmtQcm94eTo6RnRwQ2FjaGluZ1Byb3h5OgorICAgICAgICAgICAgICAgIHByb3h5VHlwZSA9
IFByb3h5U2VydmVyOjpIVFRQOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
Y2FzZSBRTmV0d29ya1Byb3h5OjpEZWZhdWx0UHJveHk6CisgICAgICAgICAgICBjYXNlIFFOZXR3
b3JrUHJveHk6Ok5vUHJveHk6CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAg
IHByb3h5VHlwZSA9IFByb3h5U2VydmVyOjpEaXJlY3Q7CisgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzZXJ2ZXJzLmFwcGVuZChQcm94eVNlcnZlcihw
cm94eVR5cGUsIHByb3h5Lmhvc3ROYW1lKCksIHByb3h5LnBvcnQoKSkpOworICAgICAgICB9Cisg
ICAgfQorCisgICAgcmV0dXJuIHNlcnZlcnM7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5EZWJ1Zy5jcHAgYi9XZWJDb3JlL3Bs
dWdpbnMvUGx1Z2luRGVidWcuY3BwCmluZGV4IGFjZThiMjEuLjhjM2VmY2IgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5EZWJ1Zy5jcHAKKysrIGIvV2ViQ29yZS9wbHVnaW5zL1Bs
dWdpbkRlYnVnLmNwcApAQCAtMTYzLDYgKzE2MywxNCBAQCBDU3RyaW5nIHByZXR0eU5hbWVGb3JO
UFBWYXJpYWJsZShOUFBWYXJpYWJsZSB2YXJpYWJsZSwgdm9pZCogdmFsdWUpCiAgICAgfQogfQog
CitDU3RyaW5nIHByZXR0eU5hbWVGb3JOUE5VUkxWYXJpYWJsZShOUE5VUkxWYXJpYWJsZSB2YXJp
YWJsZSkKK3sKKyAgICBzd2l0Y2ggKHZhcmlhYmxlKSB7CisgICAgY2FzZSBOUE5VUkxWQ29va2ll
OiByZXR1cm4gIk5QTlVSTFZDb29raWUiOworICAgIGNhc2UgTlBOVVJMVlByb3h5OiByZXR1cm4g
Ik5QTlVSTFZQcm94eSI7CisgICAgZGVmYXVsdDogcmV0dXJuICJVbmtub3duIHZhcmlhYmxlIjsK
KyAgICB9Cit9CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyAhTE9HX0RJU0FC
TEVECmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luRGVidWcuaCBiL1dlYkNvcmUv
cGx1Z2lucy9QbHVnaW5EZWJ1Zy5oCmluZGV4IDI1NDg2NGYuLjAxN2U2ODYgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5EZWJ1Zy5oCisrKyBiL1dlYkNvcmUvcGx1Z2lucy9QbHVn
aW5EZWJ1Zy5oCkBAIC00MSw2ICs0MSw3IEBAIGNvbnN0IGNoYXIqIHByZXR0eU5hbWVGb3JOUEVy
cm9yKE5QRXJyb3IgZXJyb3IpOwogCiBDU3RyaW5nIHByZXR0eU5hbWVGb3JOUE5WYXJpYWJsZShO
UE5WYXJpYWJsZSB2YXJpYWJsZSk7CiBDU3RyaW5nIHByZXR0eU5hbWVGb3JOUFBWYXJpYWJsZShO
UFBWYXJpYWJsZSB2YXJpYWJsZSwgdm9pZCogdmFsdWUpOworQ1N0cmluZyBwcmV0dHlOYW1lRm9y
TlBOVVJMVmFyaWFibGUoTlBOVVJMVmFyaWFibGUgdmFyaWFibGUpOwogCiAjaWZkZWYgWFBfTUFD
T1NYCiBjb25zdCBjaGFyKiBwcmV0dHlOYW1lRm9yRHJhd2luZ01vZGVsKE5QRHJhd2luZ01vZGVs
IGRyYXdpbmdNb2RlbCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luUGFja2Fn
ZS5jcHAgYi9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luUGFja2FnZS5jcHAKaW5kZXggODgyODgxMC4u
MmUwMzA4YiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblBhY2thZ2UuY3BwCisr
KyBiL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5QYWNrYWdlLmNwcApAQCAtMzM0LDYgKzMzNCw5IEBA
IHZvaWQgUGx1Z2luUGFja2FnZTo6aW5pdGlhbGl6ZUJyb3dzZXJGdW5jcygpCiAgICAgbV9icm93
c2VyRnVuY3Muc2V0ZXhjZXB0aW9uID0gX05QTl9TZXRFeGNlcHRpb247CiAgICAgbV9icm93c2Vy
RnVuY3MuZW51bWVyYXRlID0gX05QTl9FbnVtZXJhdGU7CiAgICAgbV9icm93c2VyRnVuY3MuY29u
c3RydWN0ID0gX05QTl9Db25zdHJ1Y3Q7CisgICAgbV9icm93c2VyRnVuY3MuZ2V0dmFsdWVmb3J1
cmwgPSBOUE5fR2V0VmFsdWVGb3JVUkw7CisgICAgbV9icm93c2VyRnVuY3Muc2V0dmFsdWVmb3J1
cmwgPSBOUE5fU2V0VmFsdWVGb3JVUkw7CisgICAgbV9icm93c2VyRnVuY3MuZ2V0YXV0aGVudGlj
YXRpb25pbmZvID0gTlBOX0dldEF1dGhlbnRpY2F0aW9uSW5mbzsKIH0KICNlbmRpZgogCmRpZmYg
LS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5jcHAgYi9XZWJDb3JlL3BsdWdpbnMv
UGx1Z2luVmlldy5jcHAKaW5kZXggZjdkYjAxMC4uNDc1MTBiNiAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9wbHVnaW5zL1BsdWdpblZpZXcuY3BwCisrKyBiL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3
LmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkJyaWRnZS5oIgogI2VuZGlmCiAjaW5j
bHVkZSAiQ2hyb21lLmgiCisjaW5jbHVkZSAiQ29va2llSmFyLmgiCiAjaW5jbHVkZSAiRG9jdW1l
bnQuaCIKICNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIK
QEAgLTU1LDYgKzU2LDcgQEAKICNpbmNsdWRlICJQbHVnaW5EZWJ1Zy5oIgogI2luY2x1ZGUgIlBs
dWdpbk1haW5UaHJlYWRTY2hlZHVsZXIuaCIKICNpbmNsdWRlICJQbHVnaW5QYWNrYWdlLmgiCisj
aW5jbHVkZSAiUHJveHlTZXJ2ZXIuaCIKICNpbmNsdWRlICJSZW5kZXJCb3guaCIKICNpbmNsdWRl
ICJSZW5kZXJPYmplY3QuaCIKICNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCkBAIC0xMzky
LDYgKzEzOTQsMTE3IEBAIE5QRXJyb3IgUGx1Z2luVmlldzo6Z2V0VmFsdWUoTlBOVmFyaWFibGUg
dmFyaWFibGUsIHZvaWQqIHZhbHVlKQogICAgICAgICByZXR1cm4gTlBFUlJfR0VORVJJQ19FUlJP
UjsKICAgICB9CiB9CisKK3N0YXRpYyBGcmFtZSogZ2V0RnJhbWUoRnJhbWUqIHBhcmVudEZyYW1l
LCBFbGVtZW50KiBlbGVtZW50KQoreworICAgIGlmIChwYXJlbnRGcmFtZSkKKyAgICAgICAgcmV0
dXJuIHBhcmVudEZyYW1lOworICAgIAorICAgIERvY3VtZW50KiBkb2N1bWVudCA9IGVsZW1lbnQt
PmRvY3VtZW50KCk7CisgICAgaWYgKCFkb2N1bWVudCkKKyAgICAgICAgZG9jdW1lbnQgPSBlbGVt
ZW50LT5vd25lckRvY3VtZW50KCk7CisgICAgaWYgKGRvY3VtZW50KQorICAgICAgICByZXR1cm4g
ZG9jdW1lbnQtPmZyYW1lKCk7CisgICAgCisgICAgcmV0dXJuIDA7Cit9CisKK05QRXJyb3IgUGx1
Z2luVmlldzo6Z2V0VmFsdWVGb3JVUkwoTlBOVVJMVmFyaWFibGUgdmFyaWFibGUsIGNvbnN0IGNo
YXIqIHVybCwgY2hhcioqIHZhbHVlLCB1aW50MzJfdCogbGVuKQoreworICAgIExPRyhQbHVnaW5z
LCAiUGx1Z2luVmlldzo6Z2V0VmFsdWVGb3JVUkwoJXMpIiwgcHJldHR5TmFtZUZvck5QTlVSTFZh
cmlhYmxlKHZhcmlhYmxlKS5kYXRhKCkpOworCisgICAgTlBFcnJvciByZXN1bHQgPSBOUEVSUl9O
T19FUlJPUjsKKworICAgIHN3aXRjaCAodmFyaWFibGUpIHsKKyAgICBjYXNlIE5QTlVSTFZDb29r
aWU6IHsKKyAgICAgICAgS1VSTCB1KG1fYmFzZVVSTCwgdXJsKTsKKyAgICAgICAgaWYgKHUuaXNW
YWxpZCgpKSB7CisgICAgICAgICAgICBGcmFtZSogZnJhbWUgPSBnZXRGcmFtZShwYXJlbnRGcmFt
ZSgpLCBtX2VsZW1lbnQpOworICAgICAgICAgICAgY29uc3QgQ1N0cmluZyBjb29raWVTdHIgPSBm
cmFtZSA/IGNvb2tpZXMoZnJhbWUtPmRvY3VtZW50KCksIHUpLnV0ZjgoKSA6IENTdHJpbmcoKTsK
KyAgICAgICAgICAgIGlmICghY29va2llU3RyLmlzTnVsbCgpKSB7CisgICAgICAgICAgICAgICAg
Y29uc3QgaW50IHNpemUgPSBjb29raWVTdHIubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgKnZh
bHVlID0gc3RhdGljX2Nhc3Q8Y2hhcio+KE5QTl9NZW1BbGxvYyhzaXplKzEpKTsKKyAgICAgICAg
ICAgICAgICBpZiAoKnZhbHVlKSB7CisgICAgICAgICAgICAgICAgICAgIG1lbXNldCgqdmFsdWUs
IDAsIHNpemUrMSk7CisgICAgICAgICAgICAgICAgICAgIG1lbWNweSgqdmFsdWUsIGNvb2tpZVN0
ci5kYXRhKCksIHNpemUrMSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChsZW4pCisgICAgICAg
ICAgICAgICAgICAgICAgICAqbGVuID0gc2l6ZTsKKyAgICAgICAgICAgICAgICB9IGVsc2UKKyAg
ICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gTlBFUlJfT1VUX09GX01FTU9SWV9FUlJPUjsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICByZXN1bHQgPSBOUEVSUl9J
TlZBTElEX1VSTDsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGNhc2UgTlBOVVJMVlByb3h5
OiB7CisgICAgICAgIEtVUkwgdShtX2Jhc2VVUkwsIHVybCk7CisgICAgICAgIGlmICh1LmlzVmFs
aWQoKSkgeworICAgICAgICAgICAgRnJhbWUqIGZyYW1lID0gZ2V0RnJhbWUocGFyZW50RnJhbWUo
KSwgbV9lbGVtZW50KTsKKyAgICAgICAgICAgIGNvbnN0IEZyYW1lTG9hZGVyKiBmcmFtZUxvYWRl
ciA9IGZyYW1lID8gZnJhbWUtPmxvYWRlcigpIDogMDsKKyAgICAgICAgICAgIGNvbnN0IE5ldHdv
cmtpbmdDb250ZXh0KiBjb250ZXh0ID0gZnJhbWVMb2FkZXIgPyBmcmFtZUxvYWRlci0+bmV0d29y
a2luZ0NvbnRleHQoKSA6IDA7CisgICAgICAgICAgICBjb25zdCBDU3RyaW5nIHByb3h5U3RyID0g
dG9TdHJpbmcocHJveHlTZXJ2ZXJzRm9yVVJMKHUsIGNvbnRleHQpKS51dGY4KCk7CisgICAgICAg
ICAgICBpZiAoIXByb3h5U3RyLmlzTnVsbCgpKSB7CisgICAgICAgICAgICAgICAgY29uc3QgaW50
IHNpemUgPSBwcm94eVN0ci5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICAqdmFsdWUgPSBzdGF0
aWNfY2FzdDxjaGFyKj4oTlBOX01lbUFsbG9jKHNpemUrMSkpOworICAgICAgICAgICAgICAgIGlm
ICgqdmFsdWUpIHsKKyAgICAgICAgICAgICAgICAgICAgbWVtc2V0KCp2YWx1ZSwgMCwgc2l6ZSsx
KTsKKyAgICAgICAgICAgICAgICAgICAgbWVtY3B5KCp2YWx1ZSwgcHJveHlTdHIuZGF0YSgpLCBz
aXplKzEpOworICAgICAgICAgICAgICAgICAgICBpZiAobGVuKQorICAgICAgICAgICAgICAgICAg
ICAgICAgKmxlbiA9IHNpemU7CisgICAgICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAg
ICAgICAgIHJlc3VsdCA9IE5QRVJSX09VVF9PRl9NRU1PUllfRVJST1I7CisgICAgICAgICAgICB9
CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgcmVzdWx0ID0gTlBFUlJfSU5WQUxJRF9VUkw7
CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBkZWZhdWx0OgorICAgICAgICByZXN1bHQgPSBO
UEVSUl9HRU5FUklDX0VSUk9SOworICAgICAgICBMT0coUGx1Z2lucywgIlBsdWdpblZpZXc6Omdl
dFZhbHVlRm9yVVJMOiAlcyIsIHByZXR0eU5hbWVGb3JOUE5VUkxWYXJpYWJsZSh2YXJpYWJsZSku
ZGF0YSgpKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgcmV0dXJuIHJlc3VsdDsKK30K
KworCitOUEVycm9yIFBsdWdpblZpZXc6OnNldFZhbHVlRm9yVVJMKE5QTlVSTFZhcmlhYmxlIHZh
cmlhYmxlLCBjb25zdCBjaGFyKiB1cmwsIGNvbnN0IGNoYXIqIHZhbHVlLCB1aW50MzJfdCBsZW4p
Cit7CisgICAgTE9HKFBsdWdpbnMsICJQbHVnaW5WaWV3OjpzZXRWYWx1ZUZvclVSTCglcykiLCBw
cmV0dHlOYW1lRm9yTlBOVVJMVmFyaWFibGUodmFyaWFibGUpLmRhdGEoKSk7CisKKyAgICBOUEVy
cm9yIHJlc3VsdCA9IE5QRVJSX05PX0VSUk9SOworCisgICAgc3dpdGNoICh2YXJpYWJsZSkgewor
ICAgIGNhc2UgTlBOVVJMVkNvb2tpZTogeworICAgICAgICBLVVJMIHUobV9iYXNlVVJMLCB1cmwp
OworICAgICAgICBpZiAodS5pc1ZhbGlkKCkpIHsKKyAgICAgICAgICAgIGNvbnN0IFN0cmluZyBj
b29raWVTdHIgPSBTdHJpbmc6OmZyb21VVEY4KHZhbHVlLCBsZW4pOworICAgICAgICAgICAgRnJh
bWUqIGZyYW1lID0gZ2V0RnJhbWUocGFyZW50RnJhbWUoKSwgbV9lbGVtZW50KTsKKyAgICAgICAg
ICAgIGlmIChmcmFtZSAmJiAhY29va2llU3RyLmlzRW1wdHkoKSkKKyAgICAgICAgICAgICAgICBz
ZXRDb29raWVzKGZyYW1lLT5kb2N1bWVudCgpLCB1LCBjb29raWVTdHIpOworICAgICAgICB9IGVs
c2UKKyAgICAgICAgICAgIHJlc3VsdCA9IE5QRVJSX0lOVkFMSURfVVJMOworICAgICAgICBicmVh
azsKKyAgICB9CisgICAgY2FzZSBOUE5VUkxWUHJveHk6CisgICAgICAgIExPRyhQbHVnaW5zLCAi
UGx1Z2luVmlldzo6c2V0VmFsdWVGb3JVUkwoJXMpOiBQbHVnaW5zIGFyZSBOT1QgYWxsb3dlZCB0
byBzZXQgcHJveHkgaW5mb3JtYXRpb24uIiwgcHJldHR5TmFtZUZvck5QTlVSTFZhcmlhYmxlKHZh
cmlhYmxlKS5kYXRhKCkpOworICAgICAgICByZXN1bHQgPSBOUEVSUl9HRU5FUklDX0VSUk9SOwor
ICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBMT0coUGx1Z2lucywgIlBsdWdp
blZpZXc6OnNldFZhbHVlRm9yVVJMOiAlcyIsIHByZXR0eU5hbWVGb3JOUE5VUkxWYXJpYWJsZSh2
YXJpYWJsZSkuZGF0YSgpKTsKKyAgICAgICAgcmVzdWx0ID0gTlBFUlJfR0VORVJJQ19FUlJPUjsK
KyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworTlBFcnJv
ciBQbHVnaW5WaWV3OjpnZXRBdXRoZW50aWNhdGlvbkluZm8oY29uc3QgY2hhciogcHJvdG9jb2ws
IGNvbnN0IGNoYXIqIGhvc3QsIGludDMyX3QgcG9ydCwgY29uc3QgY2hhciogc2NoZW1lLCBjb25z
dCBjaGFyKiByZWFsbSwgY2hhcioqIHVzZXJuYW1lLCB1aW50MzJfdCogdWxlbiwgY2hhcioqIHBh
c3N3b3JkLCB1aW50MzJfdCogcGxlbikKK3sKKyAgICBMT0coUGx1Z2lucywgIlBsdWdpblZpZXc6
OmdldEF1dGhlbnRpY2F0aW9uSW5mbzogcHJvdG9jb2w9JXMsIGhvc3Q9JXMsIHBvcnQ9JWQiLCBw
cm90b2NvbCwgaG9zdCwgcG9ydCk7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4g
TlBFUlJfR0VORVJJQ19FUlJPUjsKK30KICNlbmRpZgogCiB2b2lkIFBsdWdpblZpZXc6OnByaXZh
dGVCcm93c2luZ1N0YXRlQ2hhbmdlZChib29sIHByaXZhdGVCcm93c2luZ0VuYWJsZWQpCmRpZmYg
LS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5oIGIvV2ViQ29yZS9wbHVnaW5zL1Bs
dWdpblZpZXcuaAppbmRleCBlMzdkYmRiLi5iMTM3MmZjIDEwMDY0NAotLS0gYS9XZWJDb3JlL3Bs
dWdpbnMvUGx1Z2luVmlldy5oCisrKyBiL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmgKQEAg
LTE2OCw2ICsxNjgsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIE5QRXJyb3IgZ2V0
VmFsdWUoTlBOVmFyaWFibGUgdmFyaWFibGUsIHZvaWQqIHZhbHVlKTsKICAgICAgICAgc3RhdGlj
IE5QRXJyb3IgZ2V0VmFsdWVTdGF0aWMoTlBOVmFyaWFibGUgdmFyaWFibGUsIHZvaWQqIHZhbHVl
KTsKICAgICAgICAgTlBFcnJvciBzZXRWYWx1ZShOUFBWYXJpYWJsZSB2YXJpYWJsZSwgdm9pZCog
dmFsdWUpOworICAgICAgICBOUEVycm9yIGdldFZhbHVlRm9yVVJMKE5QTlVSTFZhcmlhYmxlIHZh
cmlhYmxlLCBjb25zdCBjaGFyKiB1cmwsIGNoYXIqKiB2YWx1ZSwgdWludDMyX3QqIGxlbik7Cisg
ICAgICAgIE5QRXJyb3Igc2V0VmFsdWVGb3JVUkwoTlBOVVJMVmFyaWFibGUgdmFyaWFibGUsIGNv
bnN0IGNoYXIqIHVybCwgY29uc3QgY2hhciogdmFsdWUsIHVpbnQzMl90IGxlbik7CisgICAgICAg
IE5QRXJyb3IgZ2V0QXV0aGVudGljYXRpb25JbmZvKGNvbnN0IGNoYXIqIHByb3RvY29sLCBjb25z
dCBjaGFyKiBob3N0LCBpbnQzMl90IHBvcnQsIGNvbnN0IGNoYXIqIHNjaGVtZSwgY29uc3QgY2hh
ciogcmVhbG0sIGNoYXIqKiB1c2VybmFtZSwgdWludDMyX3QqIHVsZW4sIGNoYXIqKiBwYXNzd29y
ZCwgdWludDMyX3QqIHBsZW4pOwogICAgICAgICB2b2lkIGludmFsaWRhdGVSZWN0KE5QUmVjdCop
OwogICAgICAgICB2b2lkIGludmFsaWRhdGVSZWdpb24oTlBSZWdpb24pOwogI2VuZGlmCmRpZmYg
LS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvbnBhcGkuY3BwIGIvV2ViQ29yZS9wbHVnaW5zL25wYXBp
LmNwcAppbmRleCBkMGRiODQ1Li5iMjcyMWZiIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsdWdpbnMv
bnBhcGkuY3BwCisrKyBiL1dlYkNvcmUvcGx1Z2lucy9ucGFwaS5jcHAKQEAgLTE3NSwzICsxNzUs
MTggQEAgdm9pZCBOUE5fUGx1Z2luVGhyZWFkQXN5bmNDYWxsKE5QUCBpbnN0YW5jZSwgdm9pZCAo
KmZ1bmMpICh2b2lkICopLCB2b2lkICp1c2VyRGEKIHsKICAgICBQbHVnaW5NYWluVGhyZWFkU2No
ZWR1bGVyOjpzY2hlZHVsZXIoKS5zY2hlZHVsZUNhbGwoaW5zdGFuY2UsIGZ1bmMsIHVzZXJEYXRh
KTsKIH0KKworTlBFcnJvciBOUE5fR2V0VmFsdWVGb3JVUkwoTlBQIGluc3RhbmNlLCBOUE5VUkxW
YXJpYWJsZSB2YXJpYWJsZSwgY29uc3QgY2hhciogdXJsLCBjaGFyKiogdmFsdWUsIHVpbnQzMl90
KiBsZW4pCit7CisgICAgcmV0dXJuIHBsdWdpblZpZXdGb3JJbnN0YW5jZShpbnN0YW5jZSktPmdl
dFZhbHVlRm9yVVJMKHZhcmlhYmxlLCB1cmwsIHZhbHVlLCBsZW4pOworfQorCitOUEVycm9yIE5Q
Tl9TZXRWYWx1ZUZvclVSTChOUFAgaW5zdGFuY2UsIE5QTlVSTFZhcmlhYmxlIHZhcmlhYmxlLCBj
b25zdCBjaGFyKiB1cmwsIGNvbnN0IGNoYXIqIHZhbHVlLCB1aW50MzJfdCBsZW4pCit7CisgICAg
cmV0dXJuIHBsdWdpblZpZXdGb3JJbnN0YW5jZShpbnN0YW5jZSktPnNldFZhbHVlRm9yVVJMKHZh
cmlhYmxlLCB1cmwsIHZhbHVlLCBsZW4pOworfQorCitOUEVycm9yIE5QTl9HZXRBdXRoZW50aWNh
dGlvbkluZm8oTlBQIGluc3RhbmNlLCBjb25zdCBjaGFyKiBwcm90b2NvbCwgY29uc3QgY2hhciog
aG9zdCwgaW50MzJfdCBwb3J0LCBjb25zdCBjaGFyKiBzY2hlbWUsIGNvbnN0IGNoYXIqIHJlYWxt
LCBjaGFyKiogdXNlcm5hbWUsIHVpbnQzMl90KiB1bGVuLCBjaGFyKiogcGFzc3dvcmQsIHVpbnQz
Ml90KiBwbGVuKQoreworICAgIHJldHVybiBwbHVnaW5WaWV3Rm9ySW5zdGFuY2UoaW5zdGFuY2Up
LT5nZXRBdXRoZW50aWNhdGlvbkluZm8ocHJvdG9jb2wsIGhvc3QsIHBvcnQsIHNjaGVtZSwgcmVh
bG0sIHVzZXJuYW1lLCB1bGVuLCBwYXNzd29yZCwgcGxlbik7Cit9CmRpZmYgLS1naXQgYS9XZWJL
aXQvbWFjL1BsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eS5tbSBiL1dl
YktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5Lm1tCmlu
ZGV4IDFhMmI4YTEuLjBiOTAzNmEgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0
ZWQvTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5Lm1tCisrKyBiL1dlYktpdC9tYWMvUGx1Z2lu
cy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5Lm1tCkBAIC0xNTU4LDcgKzE1NTgs
NyBAQCBib29sIE5ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eTo6Z2V0UHJveHkoZGF0YV90IHVy
bERhdGEsIG1hY2hfbXNnX3R5cGVfbnVtYmVyXwogICAgIGlmICghdXJsKQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAKLSAgICBWZWN0b3I8UHJveHlTZXJ2ZXI+IHByb3h5U2VydmVycyA9IHByb3h5
U2VydmVyc0ZvclVSTCh1cmwpOworICAgIFZlY3RvcjxQcm94eVNlcnZlcj4gcHJveHlTZXJ2ZXJz
ID0gcHJveHlTZXJ2ZXJzRm9yVVJMKHVybCwgMCk7CiAgICAgV1RGOjpDU3RyaW5nIHByb3h5U3Ry
aW5nVVRGOCA9IHRvU3RyaW5nKHByb3h5U2VydmVycykudXRmOCgpOwogCiAgICAgcHJveHlMZW5n
dGggPSBwcm94eVN0cmluZ1VURjgubGVuZ3RoKCk7CmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL1Bs
dWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5WaWV3Lm1tIGIvV2ViS2l0L21hYy9QbHVnaW5zL1dlYk5l
dHNjYXBlUGx1Z2luVmlldy5tbQppbmRleCA1NDJkNTlkLi40ODU3NGJmIDEwMDY0NAotLS0gYS9X
ZWJLaXQvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5WaWV3Lm1tCisrKyBiL1dlYktpdC9t
YWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpblZpZXcubW0KQEAgLTIyNDAsNyArMjI0MCw3IEBA
IHN0YXRpYyBpbmxpbmUgdm9pZCBnZXROUFJlY3QoY29uc3QgTlNSZWN0JiBuciwgTlBSZWN0JiBu
cHIpCiAgICAgICAgICAgICBpZiAoIVVSTCkKICAgICAgICAgICAgICAgICBicmVhazsKIAotICAg
ICAgICAgICAgVmVjdG9yPFByb3h5U2VydmVyPiBwcm94eVNlcnZlcnMgPSBwcm94eVNlcnZlcnNG
b3JVUkwoVVJMKTsKKyAgICAgICAgICAgIFZlY3RvcjxQcm94eVNlcnZlcj4gcHJveHlTZXJ2ZXJz
ID0gcHJveHlTZXJ2ZXJzRm9yVVJMKFVSTCwgMCk7CiAgICAgICAgICAgICBDU3RyaW5nIHByb3hp
ZXNVVEY4ID0gdG9TdHJpbmcocHJveHlTZXJ2ZXJzKS51dGY4KCk7CiAgICAgICAgICAgICAKICAg
ICAgICAgICAgICp2YWx1ZSA9IHN0YXRpY19jYXN0PGNoYXIqPihOUE5fTWVtQWxsb2MocHJveGll
c1VURjgubGVuZ3RoKCkpKTsKZGlmZiAtLWdpdCBhL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5z
L1BsdWdpblZpZXcuY3BwIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5j
cHAKaW5kZXggNWYwNGMwYi4uZTU5YTJjMiAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9XZWJQcm9jZXNz
L1BsdWdpbnMvUGx1Z2luVmlldy5jcHAKKysrIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMv
UGx1Z2luVmlldy5jcHAKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0hUTUxQ
bHVnSW5FbGVtZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Ib3N0V2luZG93Lmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9OZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlci5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvTmV0d29ya2luZ0NvbnRleHQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Byb3h5U2VydmVyLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9SZW5kZXJFbWJlZGRlZE9iamVjdC5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvUmVuZGVyTGF5ZXIuaD4KQEAgLTg0MSw3ICs4NDIsOSBAQCBIV05EIFBsdWdpblZpZXc6
Om5hdGl2ZVBhcmVudFdpbmRvdygpCiAKIFN0cmluZyBQbHVnaW5WaWV3Ojpwcm94aWVzRm9yVVJM
KGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nKQogewotICAgIFZlY3RvcjxQcm94eVNlcnZlcj4gcHJv
eHlTZXJ2ZXJzID0gcHJveHlTZXJ2ZXJzRm9yVVJMKEtVUkwoS1VSTCgpLCB1cmxTdHJpbmcpKTsK
KyAgICBjb25zdCBGcmFtZUxvYWRlciogZnJhbWVMb2FkZXIgPSBmcmFtZSgpID8gZnJhbWUoKS0+
bG9hZGVyKCkgOiAwOworICAgIGNvbnN0IE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0ID0gZnJh
bWVMb2FkZXIgPyBmcmFtZUxvYWRlci0+bmV0d29ya2luZ0NvbnRleHQoKSA6IDA7CisgICAgVmVj
dG9yPFByb3h5U2VydmVyPiBwcm94eVNlcnZlcnMgPSBwcm94eVNlcnZlcnNGb3JVUkwoS1VSTChL
VVJMKCksIHVybFN0cmluZyksIGNvbnRleHQpOwogICAgIHJldHVybiB0b1N0cmluZyhwcm94eVNl
cnZlcnMpOwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>70765</attachid>
            <date>2010-10-14 12:28:08 -0700</date>
            <delta_ts>2010-10-14 15:17:00 -0700</delta_ts>
            <desc>Implement NPN_GetValueForURL and NPN_SetValueForURL and NPN_GetAuthenticationInfo [Final #11]...</desc>
            <filename>bug_34539_implement_missing_npn_functions.patch</filename>
            <type>text/plain</type>
            <size>15700</size>
            <attacher name="Dawit A.">adawit</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MzdiNjY2YS4uNWEwNWRhZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMyBAQAorMjAxMC0xMC0xNCAgRGF3aXQgQWxlbWF5
ZWh1ICA8YWRhd2l0QGtkZS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkKKworICAgICAgICBJbXBsZW1lbnRlZCBOUE5fR2V0VmFsdWVGb3JVUkwgYW5kIE5QTl9TZXRW
YWx1ZUZvclVSTCBhbmQgTlBOX0dldEF1dGhlbnRpY2F0aW9uSW5mby4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM0NTM5CisKKyAgICAgICAgVGhlc2Ug
bWlzc2luZyBOUE4gZnVuY3Rpb25zIGNhdXNlIEphdmEgYXBwbGV0cyB0byBjcmFzaCBpbiBwb3J0
cyBzdWNoCisgICAgICAgIGFzIFF0V2Via2l0IHRoYXQgcmVseSBvbiB3ZWJraXQgZm9yIEphdmEg
YXBwbGV0IHN1cHBvcnQuCisKKyAgICAgICAgKiBwbHVnaW5zL1BsdWdpbkRlYnVnLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OnByZXR0eU5hbWVGb3JOUE5VUkxWYXJpYWJsZSk6CisgICAgICAgICog
cGx1Z2lucy9QbHVnaW5EZWJ1Zy5oOgorICAgICAgICAqIHBsdWdpbnMvUGx1Z2luUGFja2FnZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5QYWNrYWdlOjppbml0aWFsaXplQnJvd3NlckZ1
bmNzKToKKyAgICAgICAgKiBwbHVnaW5zL1BsdWdpblZpZXcuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UGx1Z2luVmlldzo6Z2V0VmFsdWVGb3JVUkwpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2lu
Vmlldzo6c2V0VmFsdWVGb3JVUkwpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6Z2V0
QXV0aGVudGljYXRpb25JbmZvKToKKyAgICAgICAgKiBwbHVnaW5zL1BsdWdpblZpZXcuaDoKKyAg
ICAgICAgKiBwbHVnaW5zL25wYXBpLmNwcDoKKyAgICAgICAgKE5QTl9HZXRWYWx1ZUZvclVSTCk6
CisgICAgICAgIChOUE5fU2V0VmFsdWVGb3JVUkwpOgorICAgICAgICAoTlBOX0dldEF1dGhlbnRp
Y2F0aW9uSW5mbyk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9Qcm94eVNlcnZlci5oOgor
ICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY2YvUHJveHlTZXJ2ZXJDRk5ldC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpwcm94eVNlcnZlcnNGb3JVUkwpOgorICAgICAgICAqIHBsYXRmb3JtL25l
dHdvcmsvcXQvUHJveHlTZXJ2ZXJRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwcm94eVNlcnZl
cnNGb3JVUkwpOgorIAogMjAxMC0xMC0xNCAgQW5kcmVhcyBLbGluZyAgPGtsaW5nQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQXJpeWEgSGlkYXlhdC4KZGlmZiAtLWdpdCBhL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9Qcm94eVNlcnZlci5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL1Byb3h5U2VydmVyLmgKaW5kZXggZjc0MDExNC4uOGY3NjEyZSAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Byb3h5U2VydmVyLmgKKysrIGIvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL1Byb3h5U2VydmVyLmgKQEAgLTMyLDYgKzMyLDcgQEAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogY2xhc3MgS1VSTDsKK2NsYXNzIE5ldHdvcmtpbmdDb250ZXh0OwogCiAvLyBS
ZXByZXNlbnRzIGEgc2luZ2xlIHByb3h5IHNlcnZlci4KIGNsYXNzIFByb3h5U2VydmVyIHsKQEAg
LTY3LDcgKzY4LDcgQEAgcHJpdmF0ZToKIH07CiAKIC8vIFJldHVybiBhIHZlY3RvciBvZiBwcm94
eSBzZXJ2ZXJzIGZvciB0aGUgZ2l2ZW4gVVJMLgotVmVjdG9yPFByb3h5U2VydmVyPiBwcm94eVNl
cnZlcnNGb3JVUkwoY29uc3QgS1VSTCYpOworVmVjdG9yPFByb3h5U2VydmVyPiBwcm94eVNlcnZl
cnNGb3JVUkwoY29uc3QgS1VSTCYsIGNvbnN0IE5ldHdvcmtpbmdDb250ZXh0Kik7CiAKIC8vIENv
bnZlcnRzIHRoZSBnaXZlbiB2ZWN0b3Igb2YgcHJveHkgc2VydmVycyB0byBhIFBBQyBzdHJpbmcs
IGFzIGRlc2NyaWJlZCBpbgogLy8gaHR0cDovL3dlYi5hcmNoaXZlLm9yZy93ZWIvMjAwNjA0MjQw
MDUwMzcvd3AubmV0c2NhcGUuY29tL2VuZy9tb3ppbGxhLzIuMC9yZWxub3Rlcy9kZW1vL3Byb3h5
LWxpdmUuaHRtbApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Byb3h5
U2VydmVyQ0ZOZXQuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Byb3h5U2VydmVy
Q0ZOZXQuY3BwCmluZGV4IDMzOGMwMDkuLjk3MjA2OTUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9jZi9Qcm94eVNlcnZlckNGTmV0LmNwcAorKysgYi9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvY2YvUHJveHlTZXJ2ZXJDRk5ldC5jcHAKQEAgLTc5LDcgKzc5LDcgQEAgc3Rh
dGljIHZvaWQgYWRkUHJveHlTZXJ2ZXJzRm9yVVJMKFZlY3RvcjxQcm94eVNlcnZlcj4mIHByb3h5
U2VydmVycywgY29uc3QgS1VSTCYKICAgICB9CiB9CiAKLVZlY3RvcjxQcm94eVNlcnZlcj4gcHJv
eHlTZXJ2ZXJzRm9yVVJMKGNvbnN0IEtVUkwmIHVybCkKK1ZlY3RvcjxQcm94eVNlcnZlcj4gcHJv
eHlTZXJ2ZXJzRm9yVVJMKGNvbnN0IEtVUkwmIHVybCwgY29uc3QgTmV0d29ya2luZ0NvbnRleHQq
KQogewogICAgIFZlY3RvcjxQcm94eVNlcnZlcj4gcHJveHlTZXJ2ZXJzOwogICAgIApkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1Byb3h5U2VydmVyUXQuY3BwIGIvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1Byb3h5U2VydmVyUXQuY3BwCmluZGV4IDgxODQ5ZTUu
LjBiZjM2ODcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9Qcm94eVNl
cnZlclF0LmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUHJveHlTZXJ2ZXJR
dC5jcHAKQEAgLTI2LDE1ICsyNiw0OCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUg
IlByb3h5U2VydmVyLmgiCiAKLSNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgogI2luY2x1ZGUg
IktVUkwuaCIKKyNpbmNsdWRlICJOZXR3b3JraW5nQ29udGV4dC5oIgorCisjaW5jbHVkZSA8UU5l
dHdvcmtBY2Nlc3NNYW5hZ2VyPgorI2luY2x1ZGUgPFFOZXR3b3JrUHJveHk+CisjaW5jbHVkZSA8
UU5ldHdvcmtQcm94eUZhY3Rvcnk+CisjaW5jbHVkZSA8UU5ldHdvcmtQcm94eVF1ZXJ5PgorI2lu
Y2x1ZGUgPFFVcmw+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotVmVjdG9yPFByb3h5U2VydmVy
PiBwcm94eVNlcnZlcnNGb3JVUkwoY29uc3QgS1VSTCYpCitWZWN0b3I8UHJveHlTZXJ2ZXI+IHBy
b3h5U2VydmVyc0ZvclVSTChjb25zdCBLVVJMJiB1cmwsIGNvbnN0IE5ldHdvcmtpbmdDb250ZXh0
KiBjb250ZXh0KQogewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIFZlY3RvcjxQ
cm94eVNlcnZlcj4oKTsKKyAgICBWZWN0b3I8UHJveHlTZXJ2ZXI+IHNlcnZlcnM7CisgICAgCisg
ICAgY29uc3QgUU5ldHdvcmtBY2Nlc3NNYW5hZ2VyKiBhY2Nlc3NNYW5hZ2VyID0gY29udGV4dCA/
IGNvbnRleHQtPm5ldHdvcmtBY2Nlc3NNYW5hZ2VyKCkgOiAwOworICAgIFFOZXR3b3JrUHJveHlG
YWN0b3J5KiBwcm94eUZhY3RvcnkgPSBhY2Nlc3NNYW5hZ2VyID8gYWNjZXNzTWFuYWdlci0+cHJv
eHlGYWN0b3J5KCkgOiAwOworCisgICAgaWYgKHByb3h5RmFjdG9yeSkgeworICAgICAgICBjb25z
dCBRTGlzdDxRTmV0d29ya1Byb3h5PiBwcm94aWVzID0gcHJveHlGYWN0b3J5LT5xdWVyeVByb3h5
KFFOZXR3b3JrUHJveHlRdWVyeSh1cmwpKTsKKyAgICAgICAgUV9GT1JFQUNIKGNvbnN0IFFOZXR3
b3JrUHJveHkmIHByb3h5LCBwcm94aWVzKSB7CisgICAgICAgICAgICBQcm94eVNlcnZlcjo6VHlw
ZSBwcm94eVR5cGU7CisgICAgICAgICAgICBzd2l0Y2ggKHByb3h5LnR5cGUoKSkgeworICAgICAg
ICAgICAgY2FzZSBRTmV0d29ya1Byb3h5OjpTb2NrczVQcm94eToKKyAgICAgICAgICAgICAgICBw
cm94eVR5cGUgPSBQcm94eVNlcnZlcjo6U09DS1M7CisgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICBjYXNlIFFOZXR3b3JrUHJveHk6Okh0dHBQcm94eToKKyAgICAgICAgICAgIGNh
c2UgUU5ldHdvcmtQcm94eTo6SHR0cENhY2hpbmdQcm94eToKKyAgICAgICAgICAgIGNhc2UgUU5l
dHdvcmtQcm94eTo6RnRwQ2FjaGluZ1Byb3h5OgorICAgICAgICAgICAgICAgIHByb3h5VHlwZSA9
IFByb3h5U2VydmVyOjpIVFRQOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
Y2FzZSBRTmV0d29ya1Byb3h5OjpEZWZhdWx0UHJveHk6CisgICAgICAgICAgICBjYXNlIFFOZXR3
b3JrUHJveHk6Ok5vUHJveHk6CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAg
IHByb3h5VHlwZSA9IFByb3h5U2VydmVyOjpEaXJlY3Q7CisgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzZXJ2ZXJzLmFwcGVuZChQcm94eVNlcnZlcihw
cm94eVR5cGUsIHByb3h5Lmhvc3ROYW1lKCksIHByb3h5LnBvcnQoKSkpOworICAgICAgICB9Cisg
ICAgfQorCisgICAgcmV0dXJuIHNlcnZlcnM7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5EZWJ1Zy5jcHAgYi9XZWJDb3JlL3Bs
dWdpbnMvUGx1Z2luRGVidWcuY3BwCmluZGV4IGFjZThiMjEuLjhjM2VmY2IgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5EZWJ1Zy5jcHAKKysrIGIvV2ViQ29yZS9wbHVnaW5zL1Bs
dWdpbkRlYnVnLmNwcApAQCAtMTYzLDYgKzE2MywxNCBAQCBDU3RyaW5nIHByZXR0eU5hbWVGb3JO
UFBWYXJpYWJsZShOUFBWYXJpYWJsZSB2YXJpYWJsZSwgdm9pZCogdmFsdWUpCiAgICAgfQogfQog
CitDU3RyaW5nIHByZXR0eU5hbWVGb3JOUE5VUkxWYXJpYWJsZShOUE5VUkxWYXJpYWJsZSB2YXJp
YWJsZSkKK3sKKyAgICBzd2l0Y2ggKHZhcmlhYmxlKSB7CisgICAgY2FzZSBOUE5VUkxWQ29va2ll
OiByZXR1cm4gIk5QTlVSTFZDb29raWUiOworICAgIGNhc2UgTlBOVVJMVlByb3h5OiByZXR1cm4g
Ik5QTlVSTFZQcm94eSI7CisgICAgZGVmYXVsdDogcmV0dXJuICJVbmtub3duIHZhcmlhYmxlIjsK
KyAgICB9Cit9CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyAhTE9HX0RJU0FC
TEVECmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luRGVidWcuaCBiL1dlYkNvcmUv
cGx1Z2lucy9QbHVnaW5EZWJ1Zy5oCmluZGV4IDI1NDg2NGYuLjAxN2U2ODYgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5EZWJ1Zy5oCisrKyBiL1dlYkNvcmUvcGx1Z2lucy9QbHVn
aW5EZWJ1Zy5oCkBAIC00MSw2ICs0MSw3IEBAIGNvbnN0IGNoYXIqIHByZXR0eU5hbWVGb3JOUEVy
cm9yKE5QRXJyb3IgZXJyb3IpOwogCiBDU3RyaW5nIHByZXR0eU5hbWVGb3JOUE5WYXJpYWJsZShO
UE5WYXJpYWJsZSB2YXJpYWJsZSk7CiBDU3RyaW5nIHByZXR0eU5hbWVGb3JOUFBWYXJpYWJsZShO
UFBWYXJpYWJsZSB2YXJpYWJsZSwgdm9pZCogdmFsdWUpOworQ1N0cmluZyBwcmV0dHlOYW1lRm9y
TlBOVVJMVmFyaWFibGUoTlBOVVJMVmFyaWFibGUgdmFyaWFibGUpOwogCiAjaWZkZWYgWFBfTUFD
T1NYCiBjb25zdCBjaGFyKiBwcmV0dHlOYW1lRm9yRHJhd2luZ01vZGVsKE5QRHJhd2luZ01vZGVs
IGRyYXdpbmdNb2RlbCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luUGFja2Fn
ZS5jcHAgYi9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luUGFja2FnZS5jcHAKaW5kZXggODgyODgxMC4u
MmUwMzA4YiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblBhY2thZ2UuY3BwCisr
KyBiL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5QYWNrYWdlLmNwcApAQCAtMzM0LDYgKzMzNCw5IEBA
IHZvaWQgUGx1Z2luUGFja2FnZTo6aW5pdGlhbGl6ZUJyb3dzZXJGdW5jcygpCiAgICAgbV9icm93
c2VyRnVuY3Muc2V0ZXhjZXB0aW9uID0gX05QTl9TZXRFeGNlcHRpb247CiAgICAgbV9icm93c2Vy
RnVuY3MuZW51bWVyYXRlID0gX05QTl9FbnVtZXJhdGU7CiAgICAgbV9icm93c2VyRnVuY3MuY29u
c3RydWN0ID0gX05QTl9Db25zdHJ1Y3Q7CisgICAgbV9icm93c2VyRnVuY3MuZ2V0dmFsdWVmb3J1
cmwgPSBOUE5fR2V0VmFsdWVGb3JVUkw7CisgICAgbV9icm93c2VyRnVuY3Muc2V0dmFsdWVmb3J1
cmwgPSBOUE5fU2V0VmFsdWVGb3JVUkw7CisgICAgbV9icm93c2VyRnVuY3MuZ2V0YXV0aGVudGlj
YXRpb25pbmZvID0gTlBOX0dldEF1dGhlbnRpY2F0aW9uSW5mbzsKIH0KICNlbmRpZgogCmRpZmYg
LS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5jcHAgYi9XZWJDb3JlL3BsdWdpbnMv
UGx1Z2luVmlldy5jcHAKaW5kZXggZjdkYjAxMC4uOTdmYzQxOSAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9wbHVnaW5zL1BsdWdpblZpZXcuY3BwCisrKyBiL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3
LmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkJyaWRnZS5oIgogI2VuZGlmCiAjaW5j
bHVkZSAiQ2hyb21lLmgiCisjaW5jbHVkZSAiQ29va2llSmFyLmgiCiAjaW5jbHVkZSAiRG9jdW1l
bnQuaCIKICNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIK
QEAgLTU1LDYgKzU2LDcgQEAKICNpbmNsdWRlICJQbHVnaW5EZWJ1Zy5oIgogI2luY2x1ZGUgIlBs
dWdpbk1haW5UaHJlYWRTY2hlZHVsZXIuaCIKICNpbmNsdWRlICJQbHVnaW5QYWNrYWdlLmgiCisj
aW5jbHVkZSAiUHJveHlTZXJ2ZXIuaCIKICNpbmNsdWRlICJSZW5kZXJCb3guaCIKICNpbmNsdWRl
ICJSZW5kZXJPYmplY3QuaCIKICNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCkBAIC0xMzky
LDYgKzEzOTQsMTE5IEBAIE5QRXJyb3IgUGx1Z2luVmlldzo6Z2V0VmFsdWUoTlBOVmFyaWFibGUg
dmFyaWFibGUsIHZvaWQqIHZhbHVlKQogICAgICAgICByZXR1cm4gTlBFUlJfR0VORVJJQ19FUlJP
UjsKICAgICB9CiB9CisKK3N0YXRpYyBGcmFtZSogZ2V0RnJhbWUoRnJhbWUqIHBhcmVudEZyYW1l
LCBFbGVtZW50KiBlbGVtZW50KQoreworICAgIGlmIChwYXJlbnRGcmFtZSkKKyAgICAgICAgcmV0
dXJuIHBhcmVudEZyYW1lOworICAgIAorICAgIERvY3VtZW50KiBkb2N1bWVudCA9IGVsZW1lbnQt
PmRvY3VtZW50KCk7CisgICAgaWYgKCFkb2N1bWVudCkKKyAgICAgICAgZG9jdW1lbnQgPSBlbGVt
ZW50LT5vd25lckRvY3VtZW50KCk7CisgICAgaWYgKGRvY3VtZW50KQorICAgICAgICByZXR1cm4g
ZG9jdW1lbnQtPmZyYW1lKCk7CisgICAgCisgICAgcmV0dXJuIDA7Cit9CisKK05QRXJyb3IgUGx1
Z2luVmlldzo6Z2V0VmFsdWVGb3JVUkwoTlBOVVJMVmFyaWFibGUgdmFyaWFibGUsIGNvbnN0IGNo
YXIqIHVybCwgY2hhcioqIHZhbHVlLCB1aW50MzJfdCogbGVuKQoreworICAgIExPRyhQbHVnaW5z
LCAiUGx1Z2luVmlldzo6Z2V0VmFsdWVGb3JVUkwoJXMpIiwgcHJldHR5TmFtZUZvck5QTlVSTFZh
cmlhYmxlKHZhcmlhYmxlKS5kYXRhKCkpOworCisgICAgTlBFcnJvciByZXN1bHQgPSBOUEVSUl9O
T19FUlJPUjsKKworICAgIHN3aXRjaCAodmFyaWFibGUpIHsKKyAgICBjYXNlIE5QTlVSTFZDb29r
aWU6IHsKKyAgICAgICAgS1VSTCB1KG1fYmFzZVVSTCwgdXJsKTsKKyAgICAgICAgaWYgKHUuaXNW
YWxpZCgpKSB7CisgICAgICAgICAgICBGcmFtZSogZnJhbWUgPSBnZXRGcmFtZShwYXJlbnRGcmFt
ZSgpLCBtX2VsZW1lbnQpOworICAgICAgICAgICAgaWYgKGZyYW1lKSB7CisgICAgICAgICAgICAg
ICAgY29uc3QgQ1N0cmluZyBjb29raWVTdHIgPSBjb29raWVzKGZyYW1lLT5kb2N1bWVudCgpLCB1
KS51dGY4KCk7CisgICAgICAgICAgICAgICAgaWYgKCFjb29raWVTdHIuaXNOdWxsKCkpIHsKKyAg
ICAgICAgICAgICAgICAgICAgY29uc3QgaW50IHNpemUgPSBjb29raWVTdHIubGVuZ3RoKCk7Cisg
ICAgICAgICAgICAgICAgICAgICp2YWx1ZSA9IHN0YXRpY19jYXN0PGNoYXIqPihOUE5fTWVtQWxs
b2Moc2l6ZSsxKSk7CisgICAgICAgICAgICAgICAgICAgIGlmICgqdmFsdWUpIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIG1lbXNldCgqdmFsdWUsIDAsIHNpemUrMSk7CisgICAgICAgICAgICAg
ICAgICAgICAgICBtZW1jcHkoKnZhbHVlLCBjb29raWVTdHIuZGF0YSgpLCBzaXplKzEpOworICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgKGxlbikKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAqbGVuID0gc2l6ZTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAg
ICAgICAgICAgICByZXN1bHQgPSBOUEVSUl9PVVRfT0ZfTUVNT1JZX0VSUk9SOworICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICByZXN1
bHQgPSBOUEVSUl9JTlZBTElEX1VSTDsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGNhc2Ug
TlBOVVJMVlByb3h5OiB7CisgICAgICAgIEtVUkwgdShtX2Jhc2VVUkwsIHVybCk7CisgICAgICAg
IGlmICh1LmlzVmFsaWQoKSkgeworICAgICAgICAgICAgRnJhbWUqIGZyYW1lID0gZ2V0RnJhbWUo
cGFyZW50RnJhbWUoKSwgbV9lbGVtZW50KTsKKyAgICAgICAgICAgIGNvbnN0IEZyYW1lTG9hZGVy
KiBmcmFtZUxvYWRlciA9IGZyYW1lID8gZnJhbWUtPmxvYWRlcigpIDogMDsKKyAgICAgICAgICAg
IGNvbnN0IE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0ID0gZnJhbWVMb2FkZXIgPyBmcmFtZUxv
YWRlci0+bmV0d29ya2luZ0NvbnRleHQoKSA6IDA7CisgICAgICAgICAgICBjb25zdCBDU3RyaW5n
IHByb3h5U3RyID0gdG9TdHJpbmcocHJveHlTZXJ2ZXJzRm9yVVJMKHUsIGNvbnRleHQpKS51dGY4
KCk7CisgICAgICAgICAgICBpZiAoIXByb3h5U3RyLmlzTnVsbCgpKSB7CisgICAgICAgICAgICAg
ICAgY29uc3QgaW50IHNpemUgPSBwcm94eVN0ci5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICAq
dmFsdWUgPSBzdGF0aWNfY2FzdDxjaGFyKj4oTlBOX01lbUFsbG9jKHNpemUrMSkpOworICAgICAg
ICAgICAgICAgIGlmICgqdmFsdWUpIHsKKyAgICAgICAgICAgICAgICAgICAgbWVtc2V0KCp2YWx1
ZSwgMCwgc2l6ZSsxKTsKKyAgICAgICAgICAgICAgICAgICAgbWVtY3B5KCp2YWx1ZSwgcHJveHlT
dHIuZGF0YSgpLCBzaXplKzEpOworICAgICAgICAgICAgICAgICAgICBpZiAobGVuKQorICAgICAg
ICAgICAgICAgICAgICAgICAgKmxlbiA9IHNpemU7CisgICAgICAgICAgICAgICAgfSBlbHNlCisg
ICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IE5QRVJSX09VVF9PRl9NRU1PUllfRVJST1I7Cisg
ICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgcmVzdWx0ID0gTlBFUlJf
SU5WQUxJRF9VUkw7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBkZWZhdWx0OgorICAgICAg
ICByZXN1bHQgPSBOUEVSUl9HRU5FUklDX0VSUk9SOworICAgICAgICBMT0coUGx1Z2lucywgIlBs
dWdpblZpZXc6OmdldFZhbHVlRm9yVVJMOiAlcyIsIHByZXR0eU5hbWVGb3JOUE5VUkxWYXJpYWJs
ZSh2YXJpYWJsZSkuZGF0YSgpKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgcmV0dXJu
IHJlc3VsdDsKK30KKworCitOUEVycm9yIFBsdWdpblZpZXc6OnNldFZhbHVlRm9yVVJMKE5QTlVS
TFZhcmlhYmxlIHZhcmlhYmxlLCBjb25zdCBjaGFyKiB1cmwsIGNvbnN0IGNoYXIqIHZhbHVlLCB1
aW50MzJfdCBsZW4pCit7CisgICAgTE9HKFBsdWdpbnMsICJQbHVnaW5WaWV3OjpzZXRWYWx1ZUZv
clVSTCglcykiLCBwcmV0dHlOYW1lRm9yTlBOVVJMVmFyaWFibGUodmFyaWFibGUpLmRhdGEoKSk7
CisKKyAgICBOUEVycm9yIHJlc3VsdCA9IE5QRVJSX05PX0VSUk9SOworCisgICAgc3dpdGNoICh2
YXJpYWJsZSkgeworICAgIGNhc2UgTlBOVVJMVkNvb2tpZTogeworICAgICAgICBLVVJMIHUobV9i
YXNlVVJMLCB1cmwpOworICAgICAgICBpZiAodS5pc1ZhbGlkKCkpIHsKKyAgICAgICAgICAgIGNv
bnN0IFN0cmluZyBjb29raWVTdHIgPSBTdHJpbmc6OmZyb21VVEY4KHZhbHVlLCBsZW4pOworICAg
ICAgICAgICAgRnJhbWUqIGZyYW1lID0gZ2V0RnJhbWUocGFyZW50RnJhbWUoKSwgbV9lbGVtZW50
KTsKKyAgICAgICAgICAgIGlmIChmcmFtZSAmJiAhY29va2llU3RyLmlzRW1wdHkoKSkKKyAgICAg
ICAgICAgICAgICBzZXRDb29raWVzKGZyYW1lLT5kb2N1bWVudCgpLCB1LCBjb29raWVTdHIpOwor
ICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIHJlc3VsdCA9IE5QRVJSX0lOVkFMSURfVVJMOwor
ICAgICAgICBicmVhazsKKyAgICB9CisgICAgY2FzZSBOUE5VUkxWUHJveHk6CisgICAgICAgIExP
RyhQbHVnaW5zLCAiUGx1Z2luVmlldzo6c2V0VmFsdWVGb3JVUkwoJXMpOiBQbHVnaW5zIGFyZSBO
T1QgYWxsb3dlZCB0byBzZXQgcHJveHkgaW5mb3JtYXRpb24uIiwgcHJldHR5TmFtZUZvck5QTlVS
TFZhcmlhYmxlKHZhcmlhYmxlKS5kYXRhKCkpOworICAgICAgICByZXN1bHQgPSBOUEVSUl9HRU5F
UklDX0VSUk9SOworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBMT0coUGx1
Z2lucywgIlBsdWdpblZpZXc6OnNldFZhbHVlRm9yVVJMOiAlcyIsIHByZXR0eU5hbWVGb3JOUE5V
UkxWYXJpYWJsZSh2YXJpYWJsZSkuZGF0YSgpKTsKKyAgICAgICAgcmVzdWx0ID0gTlBFUlJfR0VO
RVJJQ19FUlJPUjsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgcmV0dXJuIHJlc3VsdDsK
K30KKworTlBFcnJvciBQbHVnaW5WaWV3OjpnZXRBdXRoZW50aWNhdGlvbkluZm8oY29uc3QgY2hh
ciogcHJvdG9jb2wsIGNvbnN0IGNoYXIqIGhvc3QsIGludDMyX3QgcG9ydCwgY29uc3QgY2hhciog
c2NoZW1lLCBjb25zdCBjaGFyKiByZWFsbSwgY2hhcioqIHVzZXJuYW1lLCB1aW50MzJfdCogdWxl
biwgY2hhcioqIHBhc3N3b3JkLCB1aW50MzJfdCogcGxlbikKK3sKKyAgICBMT0coUGx1Z2lucywg
IlBsdWdpblZpZXc6OmdldEF1dGhlbnRpY2F0aW9uSW5mbzogcHJvdG9jb2w9JXMsIGhvc3Q9JXMs
IHBvcnQ9JWQiLCBwcm90b2NvbCwgaG9zdCwgcG9ydCk7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
KyAgICByZXR1cm4gTlBFUlJfR0VORVJJQ19FUlJPUjsKK30KICNlbmRpZgogCiB2b2lkIFBsdWdp
blZpZXc6OnByaXZhdGVCcm93c2luZ1N0YXRlQ2hhbmdlZChib29sIHByaXZhdGVCcm93c2luZ0Vu
YWJsZWQpCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5oIGIvV2ViQ29y
ZS9wbHVnaW5zL1BsdWdpblZpZXcuaAppbmRleCBlMzdkYmRiLi5iMTM3MmZjIDEwMDY0NAotLS0g
YS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5oCisrKyBiL1dlYkNvcmUvcGx1Z2lucy9QbHVn
aW5WaWV3LmgKQEAgLTE2OCw2ICsxNjgsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAg
IE5QRXJyb3IgZ2V0VmFsdWUoTlBOVmFyaWFibGUgdmFyaWFibGUsIHZvaWQqIHZhbHVlKTsKICAg
ICAgICAgc3RhdGljIE5QRXJyb3IgZ2V0VmFsdWVTdGF0aWMoTlBOVmFyaWFibGUgdmFyaWFibGUs
IHZvaWQqIHZhbHVlKTsKICAgICAgICAgTlBFcnJvciBzZXRWYWx1ZShOUFBWYXJpYWJsZSB2YXJp
YWJsZSwgdm9pZCogdmFsdWUpOworICAgICAgICBOUEVycm9yIGdldFZhbHVlRm9yVVJMKE5QTlVS
TFZhcmlhYmxlIHZhcmlhYmxlLCBjb25zdCBjaGFyKiB1cmwsIGNoYXIqKiB2YWx1ZSwgdWludDMy
X3QqIGxlbik7CisgICAgICAgIE5QRXJyb3Igc2V0VmFsdWVGb3JVUkwoTlBOVVJMVmFyaWFibGUg
dmFyaWFibGUsIGNvbnN0IGNoYXIqIHVybCwgY29uc3QgY2hhciogdmFsdWUsIHVpbnQzMl90IGxl
bik7CisgICAgICAgIE5QRXJyb3IgZ2V0QXV0aGVudGljYXRpb25JbmZvKGNvbnN0IGNoYXIqIHBy
b3RvY29sLCBjb25zdCBjaGFyKiBob3N0LCBpbnQzMl90IHBvcnQsIGNvbnN0IGNoYXIqIHNjaGVt
ZSwgY29uc3QgY2hhciogcmVhbG0sIGNoYXIqKiB1c2VybmFtZSwgdWludDMyX3QqIHVsZW4sIGNo
YXIqKiBwYXNzd29yZCwgdWludDMyX3QqIHBsZW4pOwogICAgICAgICB2b2lkIGludmFsaWRhdGVS
ZWN0KE5QUmVjdCopOwogICAgICAgICB2b2lkIGludmFsaWRhdGVSZWdpb24oTlBSZWdpb24pOwog
I2VuZGlmCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvbnBhcGkuY3BwIGIvV2ViQ29yZS9w
bHVnaW5zL25wYXBpLmNwcAppbmRleCBkMGRiODQ1Li5iMjcyMWZiIDEwMDY0NAotLS0gYS9XZWJD
b3JlL3BsdWdpbnMvbnBhcGkuY3BwCisrKyBiL1dlYkNvcmUvcGx1Z2lucy9ucGFwaS5jcHAKQEAg
LTE3NSwzICsxNzUsMTggQEAgdm9pZCBOUE5fUGx1Z2luVGhyZWFkQXN5bmNDYWxsKE5QUCBpbnN0
YW5jZSwgdm9pZCAoKmZ1bmMpICh2b2lkICopLCB2b2lkICp1c2VyRGEKIHsKICAgICBQbHVnaW5N
YWluVGhyZWFkU2NoZWR1bGVyOjpzY2hlZHVsZXIoKS5zY2hlZHVsZUNhbGwoaW5zdGFuY2UsIGZ1
bmMsIHVzZXJEYXRhKTsKIH0KKworTlBFcnJvciBOUE5fR2V0VmFsdWVGb3JVUkwoTlBQIGluc3Rh
bmNlLCBOUE5VUkxWYXJpYWJsZSB2YXJpYWJsZSwgY29uc3QgY2hhciogdXJsLCBjaGFyKiogdmFs
dWUsIHVpbnQzMl90KiBsZW4pCit7CisgICAgcmV0dXJuIHBsdWdpblZpZXdGb3JJbnN0YW5jZShp
bnN0YW5jZSktPmdldFZhbHVlRm9yVVJMKHZhcmlhYmxlLCB1cmwsIHZhbHVlLCBsZW4pOworfQor
CitOUEVycm9yIE5QTl9TZXRWYWx1ZUZvclVSTChOUFAgaW5zdGFuY2UsIE5QTlVSTFZhcmlhYmxl
IHZhcmlhYmxlLCBjb25zdCBjaGFyKiB1cmwsIGNvbnN0IGNoYXIqIHZhbHVlLCB1aW50MzJfdCBs
ZW4pCit7CisgICAgcmV0dXJuIHBsdWdpblZpZXdGb3JJbnN0YW5jZShpbnN0YW5jZSktPnNldFZh
bHVlRm9yVVJMKHZhcmlhYmxlLCB1cmwsIHZhbHVlLCBsZW4pOworfQorCitOUEVycm9yIE5QTl9H
ZXRBdXRoZW50aWNhdGlvbkluZm8oTlBQIGluc3RhbmNlLCBjb25zdCBjaGFyKiBwcm90b2NvbCwg
Y29uc3QgY2hhciogaG9zdCwgaW50MzJfdCBwb3J0LCBjb25zdCBjaGFyKiBzY2hlbWUsIGNvbnN0
IGNoYXIqIHJlYWxtLCBjaGFyKiogdXNlcm5hbWUsIHVpbnQzMl90KiB1bGVuLCBjaGFyKiogcGFz
c3dvcmQsIHVpbnQzMl90KiBwbGVuKQoreworICAgIHJldHVybiBwbHVnaW5WaWV3Rm9ySW5zdGFu
Y2UoaW5zdGFuY2UpLT5nZXRBdXRoZW50aWNhdGlvbkluZm8ocHJvdG9jb2wsIGhvc3QsIHBvcnQs
IHNjaGVtZSwgcmVhbG0sIHVzZXJuYW1lLCB1bGVuLCBwYXNzd29yZCwgcGxlbik7Cit9CmRpZmYg
LS1naXQgYS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSW5zdGFuY2VQ
cm94eS5tbSBiL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5JbnN0YW5j
ZVByb3h5Lm1tCmluZGV4IDFhMmI4YTEuLjBiOTAzNmEgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMv
UGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5Lm1tCisrKyBiL1dlYktp
dC9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5Lm1tCkBAIC0x
NTU4LDcgKzE1NTgsNyBAQCBib29sIE5ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eTo6Z2V0UHJv
eHkoZGF0YV90IHVybERhdGEsIG1hY2hfbXNnX3R5cGVfbnVtYmVyXwogICAgIGlmICghdXJsKQog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBWZWN0b3I8UHJveHlTZXJ2ZXI+IHByb3h5U2Vy
dmVycyA9IHByb3h5U2VydmVyc0ZvclVSTCh1cmwpOworICAgIFZlY3RvcjxQcm94eVNlcnZlcj4g
cHJveHlTZXJ2ZXJzID0gcHJveHlTZXJ2ZXJzRm9yVVJMKHVybCwgMCk7CiAgICAgV1RGOjpDU3Ry
aW5nIHByb3h5U3RyaW5nVVRGOCA9IHRvU3RyaW5nKHByb3h5U2VydmVycykudXRmOCgpOwogCiAg
ICAgcHJveHlMZW5ndGggPSBwcm94eVN0cmluZ1VURjgubGVuZ3RoKCk7CmRpZmYgLS1naXQgYS9X
ZWJLaXQvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5WaWV3Lm1tIGIvV2ViS2l0L21hYy9Q
bHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luVmlldy5tbQppbmRleCA1NDJkNTlkLi40ODU3NGJmIDEw
MDY0NAotLS0gYS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5WaWV3Lm1tCisr
KyBiL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpblZpZXcubW0KQEAgLTIyNDAs
NyArMjI0MCw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBnZXROUFJlY3QoY29uc3QgTlNSZWN0JiBu
ciwgTlBSZWN0JiBucHIpCiAgICAgICAgICAgICBpZiAoIVVSTCkKICAgICAgICAgICAgICAgICBi
cmVhazsKIAotICAgICAgICAgICAgVmVjdG9yPFByb3h5U2VydmVyPiBwcm94eVNlcnZlcnMgPSBw
cm94eVNlcnZlcnNGb3JVUkwoVVJMKTsKKyAgICAgICAgICAgIFZlY3RvcjxQcm94eVNlcnZlcj4g
cHJveHlTZXJ2ZXJzID0gcHJveHlTZXJ2ZXJzRm9yVVJMKFVSTCwgMCk7CiAgICAgICAgICAgICBD
U3RyaW5nIHByb3hpZXNVVEY4ID0gdG9TdHJpbmcocHJveHlTZXJ2ZXJzKS51dGY4KCk7CiAgICAg
ICAgICAgICAKICAgICAgICAgICAgICp2YWx1ZSA9IHN0YXRpY19jYXN0PGNoYXIqPihOUE5fTWVt
QWxsb2MocHJveGllc1VURjgubGVuZ3RoKCkpKTsKZGlmZiAtLWdpdCBhL1dlYktpdDIvV2ViUHJv
Y2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMv
UGx1Z2luVmlldy5jcHAKaW5kZXggNWYwNGMwYi4uZTU5YTJjMiAxMDA2NDQKLS0tIGEvV2ViS2l0
Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAKKysrIGIvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNsdWRlIDxX
ZWJDb3JlL0hUTUxQbHVnSW5FbGVtZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Ib3N0V2luZG93
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9OZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlci5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvTmV0d29ya2luZ0NvbnRleHQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1By
b3h5U2VydmVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZW5kZXJFbWJlZGRlZE9iamVjdC5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvUmVuZGVyTGF5ZXIuaD4KQEAgLTg0MSw3ICs4NDIsOSBAQCBIV05E
IFBsdWdpblZpZXc6Om5hdGl2ZVBhcmVudFdpbmRvdygpCiAKIFN0cmluZyBQbHVnaW5WaWV3Ojpw
cm94aWVzRm9yVVJMKGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nKQogewotICAgIFZlY3RvcjxQcm94
eVNlcnZlcj4gcHJveHlTZXJ2ZXJzID0gcHJveHlTZXJ2ZXJzRm9yVVJMKEtVUkwoS1VSTCgpLCB1
cmxTdHJpbmcpKTsKKyAgICBjb25zdCBGcmFtZUxvYWRlciogZnJhbWVMb2FkZXIgPSBmcmFtZSgp
ID8gZnJhbWUoKS0+bG9hZGVyKCkgOiAwOworICAgIGNvbnN0IE5ldHdvcmtpbmdDb250ZXh0KiBj
b250ZXh0ID0gZnJhbWVMb2FkZXIgPyBmcmFtZUxvYWRlci0+bmV0d29ya2luZ0NvbnRleHQoKSA6
IDA7CisgICAgVmVjdG9yPFByb3h5U2VydmVyPiBwcm94eVNlcnZlcnMgPSBwcm94eVNlcnZlcnNG
b3JVUkwoS1VSTChLVVJMKCksIHVybFN0cmluZyksIGNvbnRleHQpOwogICAgIHJldHVybiB0b1N0
cmluZyhwcm94eVNlcnZlcnMpOwogfQogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>