<?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>34673</bug_id>
          
          <creation_ts>2010-02-05 21:00:26 -0800</creation_ts>
          <short_desc>Crash in Flash at http://www.cctv.com/</short_desc>
          <delta_ts>2010-02-10 14:01:14 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Plug-ins</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Windows XP</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://www.cctv.com/</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jon Honeycutt">jhoneycutt</reporter>
          <assigned_to name="Jon Honeycutt">jhoneycutt</assigned_to>
          <cc>eric</cc>
    
    <cc>gustavo</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>188397</commentid>
    <comment_count>0</comment_count>
      <attachid>48284</attachid>
    <who name="Jon Honeycutt">jhoneycutt</who>
    <bug_when>2010-02-05 21:00:26 -0800</bug_when>
    <thetext>Created attachment 48284
patch

Safari crashes in Flash loading http://www.cctv.com/.

&lt;rdar://problem/7436875&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>188398</commentid>
    <comment_count>1</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-02-05 21:05:14 -0800</bug_when>
    <thetext>Attachment 48284 did not build on mac:
Build output: http://webkit-commit-queue.appspot.com/results/240267</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>188400</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-02-05 21:07:29 -0800</bug_when>
    <thetext>Attachment 48284 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
WebCore/plugins/PluginDelayedDestruction.cpp:55:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
WebCore/bridge/NP_jsobject.cpp:194:  _NPN_Evaluate is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
WebKitTools/DumpRenderTree/win/TestNetscapePlugin/main.cpp:76:  Declaration has space between type name and * in NPObject *windowScriptObject  [whitespace/declaration] [3]
WebKitTools/DumpRenderTree/win/TestNetscapePlugin/main.cpp:100:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
Total errors found: 4


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>188422</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-02-05 23:32:48 -0800</bug_when>
    <thetext>Attachment 48284 did not build on qt:
Build output: http://webkit-commit-queue.appspot.com/results/238645</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>188423</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-02-05 23:40:22 -0800</bug_when>
    <thetext>Attachment 48284 did not build on gtk:
Build output: http://webkit-commit-queue.appspot.com/results/240336</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>188456</commentid>
    <comment_count>5</comment_count>
      <attachid>48292</attachid>
    <who name="Jon Honeycutt">jhoneycutt</who>
    <bug_when>2010-02-06 12:51:46 -0800</bug_when>
    <thetext>Created attachment 48292
patch v2

Adds the files to the GNU makefile and the XCode project. Removes a static initializer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>188458</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-02-06 12:53:33 -0800</bug_when>
    <thetext>Attachment 48292 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
WebCore/plugins/PluginDelayedDestruction.cpp:61:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
WebKitTools/DumpRenderTree/win/TestNetscapePlugin/main.cpp:76:  Declaration has space between type name and * in NPObject *windowScriptObject  [whitespace/declaration] [3]
WebKitTools/DumpRenderTree/win/TestNetscapePlugin/main.cpp:100:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
WebCore/bridge/NP_jsobject.cpp:194:  _NPN_Evaluate is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Total errors found: 4


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>188461</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-02-06 13:30:53 -0800</bug_when>
    <thetext>Attachment 48292 did not build on qt:
Build output: http://webkit-commit-queue.appspot.com/results/242134</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>188463</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-02-06 13:33:30 -0800</bug_when>
    <thetext>Attachment 48292 did not build on gtk:
Build output: http://webkit-commit-queue.appspot.com/results/242142</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>188489</commentid>
    <comment_count>9</comment_count>
      <attachid>48303</attachid>
    <who name="Jon Honeycutt">jhoneycutt</who>
    <bug_when>2010-02-06 22:19:07 -0800</bug_when>
    <thetext>Created attachment 48303
patch v3

GTK and Qt build fixes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>188490</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-02-06 22:22:38 -0800</bug_when>
    <thetext>Attachment 48303 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
WebCore/plugins/PluginDelayedDestruction.cpp:61:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
WebKitTools/DumpRenderTree/win/TestNetscapePlugin/main.cpp:76:  Declaration has space between type name and * in NPObject *windowScriptObject  [whitespace/declaration] [3]
WebKitTools/DumpRenderTree/win/TestNetscapePlugin/main.cpp:100:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
WebCore/bridge/NP_jsobject.cpp:194:  _NPN_Evaluate is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Total errors found: 4


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>188510</commentid>
    <comment_count>11</comment_count>
      <attachid>48303</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-02-07 13:05:02 -0800</bug_when>
    <thetext>Comment on attachment 48303
patch v3

Looks generally great. I have a few comments and a question or two.

I see why we need a map from NPP to PluginView*. That map seems to be something PluginView* should just keep itself, not something that should be some another class&apos;s responsibility.

I don&apos;t see why we keep the delayed destruction count inside a map. If we need a count lets just keep it in the PluginView instead of using a boolean there.

&gt; + * Copyright (C) 2009 Apple Inc. All Rights Reserved.

2010

&gt; +class PluginDelayedDestruction : public Noncopyable {

I don&apos;t think this needs to be a class. We can just have free functions. But as I mentioned above, I think this should just be PluginView responsibility anyway.

&gt; +    static void registerPluginView(PluginView&amp;);
&gt; +    static void unregisterPluginView(PluginView&amp;);

If we had these, they should probably take pointers instead of references. Just because we normally use pointers to manipulate these objects. I can&apos;t see any strong arguments either way.

&gt; +    static void setNeedsDelayedDestroy(NPP, bool);

This is a misleading function. It doesn&apos;t actually set/clear a per-NPP delayed destroy flag. Instead each time it&apos;s called it either increments or decrements a count. Thus you must call true before false and always balance each true with a false.

&gt; +    static void delayDestroy(PassRefPtr&lt;PluginView&gt; plugin) { new PluginDelayedDestroyer(plugin); }

I think a logical name for this would be delayDestruction rather than delayDestroy.

This is doing a similar thing for PluginView to what Frame::keepAlive does for Frame, but it does it in a different way and uses different terminology. Maybe we could unite the two mechanisms in terminology or even share code.

&gt; +        PluginDelayedDestruction::setNeedsDelayedDestroy(instance, true);

This is where the &quot;why&quot; comment needs to go. Someone has to say why!

I don&apos;t understand the code entirely. The idea seems to be that there are certain critical windows within which if you destroy the plug-in it needs to be destroyed on a later run loop iteration. But I don&apos;t see why when the critical window ends you can&apos;t simply destroy the plug-in immediately at that time. If you can&apos;t do it then, then I question whether the critical window actually has closed. Or if there are any times that actually qualify as not in the critical window.

I&apos;m going to say review- because I think you should probably do at least one of the things I mentioedn above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>188822</commentid>
    <comment_count>12</comment_count>
    <who name="Jon Honeycutt">jhoneycutt</who>
    <bug_when>2010-02-08 16:35:37 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; (From update of attachment 48303 [details])
&gt; Looks generally great. I have a few comments and a question or two.
&gt; 
&gt; I see why we need a map from NPP to PluginView*. That map seems to be something
&gt; PluginView* should just keep itself, not something that should be some another
&gt; class&apos;s responsibility.
&gt; 
&gt; I don&apos;t see why we keep the delayed destruction count inside a map. If we need
&gt; a count lets just keep it in the PluginView instead of using a boolean there.

I moved this map into PluginView.cpp and removed the count.

&gt; 
&gt; &gt; + * Copyright (C) 2009 Apple Inc. All Rights Reserved.
&gt; 
&gt; 2010

I removed this file.

&gt; 
&gt; &gt; +class PluginDelayedDestruction : public Noncopyable {
&gt; 
&gt; I don&apos;t think this needs to be a class. We can just have free functions. But as
&gt; I mentioned above, I think this should just be PluginView responsibility
&gt; anyway.

I removed this class.

&gt; 
&gt; &gt; +    static void registerPluginView(PluginView&amp;);
&gt; &gt; +    static void unregisterPluginView(PluginView&amp;);
&gt; 
&gt; If we had these, they should probably take pointers instead of references. Just
&gt; because we normally use pointers to manipulate these objects. I can&apos;t see any
&gt; strong arguments either way.

Removed these functions.

&gt; 
&gt; &gt; +    static void setNeedsDelayedDestroy(NPP, bool);
&gt; 
&gt; This is a misleading function. It doesn&apos;t actually set/clear a per-NPP delayed
&gt; destroy flag. Instead each time it&apos;s called it either increments or decrements
&gt; a count. Thus you must call true before false and always balance each true with
&gt; a false.

Removed this function.

&gt; 
&gt; &gt; +    static void delayDestroy(PassRefPtr&lt;PluginView&gt; plugin) { new PluginDelayedDestroyer(plugin); }
&gt; 
&gt; I think a logical name for this would be delayDestruction rather than
&gt; delayDestroy.
&gt; 
&gt; This is doing a similar thing for PluginView to what Frame::keepAlive does for
&gt; Frame, but it does it in a different way and uses different terminology. Maybe
&gt; we could unite the two mechanisms in terminology or even share code.

The new patch mimics Frame&apos;s method for doing this.

&gt; 
&gt; &gt; +        PluginDelayedDestruction::setNeedsDelayedDestroy(instance, true);
&gt; 
&gt; This is where the &quot;why&quot; comment needs to go. Someone has to say why!

I added a comment here.

&gt; 
&gt; I don&apos;t understand the code entirely. The idea seems to be that there are
&gt; certain critical windows within which if you destroy the plug-in it needs to be
&gt; destroyed on a later run loop iteration. But I don&apos;t see why when the critical
&gt; window ends you can&apos;t simply destroy the plug-in immediately at that time. If
&gt; you can&apos;t do it then, then I question whether the critical window actually has
&gt; closed. Or if there are any times that actually qualify as not in the critical
&gt; window.

Flash calls NPN_Evaluate in response to receiving an event from the system, not the browser, so we cannot wait until we return from Flash to destroy the view as we do elsewhere. I believe that Flash could cause the Windows message loop to run, so I&apos;m not sure that there is a way to guarantee that it&apos;s safe to destroy the view at any time. However, I believe that this is what Firefox does.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>188823</commentid>
    <comment_count>13</comment_count>
      <attachid>48376</attachid>
    <who name="Jon Honeycutt">jhoneycutt</who>
    <bug_when>2010-02-08 16:36:23 -0800</bug_when>
    <thetext>Created attachment 48376
patch v4</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>188824</commentid>
    <comment_count>14</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-02-08 16:38:08 -0800</bug_when>
    <thetext>Attachment 48376 did not build on mac:
Build output: http://webkit-commit-queue.appspot.com/results/246207</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>188827</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-02-08 16:39:20 -0800</bug_when>
    <thetext>Attachment 48376 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
WebCore/bridge/NP_jsobject.cpp:194:  _NPN_Evaluate is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
WebKitTools/DumpRenderTree/win/TestNetscapePlugin/main.cpp:76:  Declaration has space between type name and * in NPObject *windowScriptObject  [whitespace/declaration] [3]
WebKitTools/DumpRenderTree/win/TestNetscapePlugin/main.cpp:100:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
Total errors found: 3


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>188882</commentid>
    <comment_count>16</comment_count>
      <attachid>48391</attachid>
    <who name="Jon Honeycutt">jhoneycutt</who>
    <bug_when>2010-02-08 20:59:02 -0800</bug_when>
    <thetext>Created attachment 48391
patch v5

Mac build fixes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>188884</commentid>
    <comment_count>17</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-02-08 21:01:16 -0800</bug_when>
    <thetext>Attachment 48391 did not build on mac:
Build output: http://webkit-commit-queue.appspot.com/results/250136</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>188885</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-02-08 21:04:27 -0800</bug_when>
    <thetext>Attachment 48391 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
WebCore/bridge/NP_jsobject.cpp:194:  _NPN_Evaluate is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
WebKitTools/DumpRenderTree/win/TestNetscapePlugin/main.cpp:76:  Declaration has space between type name and * in NPObject *windowScriptObject  [whitespace/declaration] [3]
WebKitTools/DumpRenderTree/win/TestNetscapePlugin/main.cpp:100:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
Total errors found: 3


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>189054</commentid>
    <comment_count>19</comment_count>
      <attachid>48425</attachid>
    <who name="Jon Honeycutt">jhoneycutt</who>
    <bug_when>2010-02-09 09:48:06 -0800</bug_when>
    <thetext>Created attachment 48425
patch v6

Mac build fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>189056</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-02-09 09:52:58 -0800</bug_when>
    <thetext>Attachment 48425 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
WebKitTools/DumpRenderTree/win/TestNetscapePlugin/main.cpp:76:  Declaration has space between type name and * in NPObject *windowScriptObject  [whitespace/declaration] [3]
WebKitTools/DumpRenderTree/win/TestNetscapePlugin/main.cpp:100:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
WebCore/bridge/NP_jsobject.cpp:194:  _NPN_Evaluate is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Total errors found: 3


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>189411</commentid>
    <comment_count>21</comment_count>
      <attachid>48425</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-02-10 10:39:36 -0800</bug_when>
    <thetext>Comment on attachment 48425
patch v6

&gt; +        // There is a crash in Flash when evaluating a script that destroys the
&gt; +        // PluginView, so we destroy is asynchronously.

Typo:&quot;destroy is&quot; with &quot;destroy it&quot;.

&gt; +static void executeScript(const PluginObject* obj, const char* script)

We should use &quot;object&quot; instead of &quot;obj&quot;.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>189443</commentid>
    <comment_count>22</comment_count>
    <who name="Jon Honeycutt">jhoneycutt</who>
    <bug_when>2010-02-10 12:43:54 -0800</bug_when>
    <thetext>Made Darin&apos;s suggested changes and landed in r54614.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>189461</commentid>
    <comment_count>23</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-02-10 13:51:12 -0800</bug_when>
    <thetext>It appears this broke mac builds, but there was a fix attempt in http://trac.webkit.org/changeset/54617.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>189462</commentid>
    <comment_count>24</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-02-10 13:57:09 -0800</bug_when>
    <thetext>My local machine still fails to build.  :(

c1plus: warnings being treated as errors
/Users/eseidel/Projects/WebKit/WebCore/plugins/PluginViewNone.cpp:76: warning: unused parameter ‘variable’
/Users/eseidel/Projects/WebKit/WebCore/plugins/PluginViewNone.cpp:76: warning: unused parameter ‘value’
distcc[40179] ERROR: compile /Users/eseidel/Projects/WebKit/WebCore/plugins/PluginViewNone.cpp on localhost failed

I&apos;ll see if John is on IRC, otherwise I&apos;ll write up a fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>189463</commentid>
    <comment_count>25</comment_count>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2010-02-10 14:01:01 -0800</bug_when>
    <thetext>This commit causes two assertions in the 32bit GTK+ debug build: http://build.webkit.org/results/GTK Linux 64-bit Debug/r54614 (3133)/results.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>189464</commentid>
    <comment_count>26</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-02-10 14:01:14 -0800</bug_when>
    <thetext>Committed r54622: &lt;http://trac.webkit.org/changeset/54622&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>48284</attachid>
            <date>2010-02-05 21:00:26 -0800</date>
            <delta_ts>2010-02-06 12:51:46 -0800</delta_ts>
            <desc>patch</desc>
            <filename>0001-rdar-problem-7436875-Crash-in-Flash-when-visiting.patch</filename>
            <type>text/plain</type>
            <size>26976</size>
            <attacher name="Jon Honeycutt">jhoneycutt</attacher>
            
              <data encoding="base64">RnJvbSA0MWQ2MzNiODQ4NzYxYmNkMmYxN2U1NzFjNGI3ODRkZDE4ZTZjODhkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb24gSG9uZXljdXR0IDxqaG9uZXljdXR0QGFwcGxlLmNvbT4K
RGF0ZTogRnJpLCA1IEZlYiAyMDEwIDIwOjQ2OjI2IC0wODAwClN1YmplY3Q6IFtQQVRDSF0gPHJk
YXI6Ly9wcm9ibGVtLzc0MzY4NzU+IENyYXNoIGluIEZsYXNoIHdoZW4gdmlzaXRpbmcKIGh0dHA6
Ly93d3cuY2N0di5jb20vZGVmYXVsdC5zaHRtbCAoV0VSIElEIDgxOTI5ODIwMCkgW3dhdHNvbiAy
NTAyMjYwXQoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpXZWJDb3JlOgoKVGVzdDogcGxh
dGZvcm0vd2luL3BsdWdpbnMvcGx1Z2luLWRlbGF5ZWQtZGVzdHJveS5odG1sCgoqIFdlYkNvcmUu
dmNwcm9qL1dlYkNvcmUudmNwcm9qOgpBZGQgbmV3IGZpbGVzIHRvIHByb2plY3QuCgoqIGJyaWRn
ZS9OUF9qc29iamVjdC5jcHA6CihfTlBOX0V2YWx1YXRlKToKQmVmb3JlIGV2YWx1YXRpbmcgdGhl
IHNjcmlwdCwgc2V0IHRoZSBwbHVnLWluIGFzIG5lZWRpbmcgYW4KYXN5bmNocm9ub3VzIGRlc3Ry
dWN0aW9uLiBBZnRlciwgdW5zZXQgaXQuCgoqIHBsdWdpbnMvUGx1Z2luRGVsYXllZERlc3RydWN0
aW9uLmNwcDogQWRkZWQuCihXZWJDb3JlOjpQbHVnaW5EZWxheWVkRGVzdHJ1Y3Rpb246OnJlZ2lz
dGVyUGx1Z2luVmlldyk6CkFkZCB0aGUgUGx1Z2luVmlldyB0byB0aGUgc2V0LgooV2ViQ29yZTo6
UGx1Z2luRGVsYXllZERlc3RydWN0aW9uOjp1bnJlZ2lzdGVyUGx1Z2luVmlldyk6ClJlbW92ZSB0
aGUgdmlldyBmcm9tIHRoZSBzZXQuCihXZWJDb3JlOjpQbHVnaW5EZWxheWVkRGVzdHJ1Y3Rpb246
OnNldE5lZWRzRGVsYXllZERlc3Ryb3kpOgpGaW5kIHRoZSB2aWV3IGluIHRoZSBzZXQuIElmIGl0
IG5lZWRzIGRlbGF5ZWQgZGVzdHJveSwgYW5kIHRoZSBlbnRyeQpjb3VudCBpcyAxLCBjYWxsIHRo
ZSB2aWV3J3Mgc2V0TmVlZHNEZWxheWVkRGVzdHJveS4gSWYgd2UncmUgYmFja2luZwpvdXQgb2Yg
dGhlIGZ1bmN0aW9uLCBhbmQgd2UgcmVhY2ggdGhlIGxhc3QgY2FsbCwgdW5zZXQgdGhlIHZpZXcg
YXMKbmVlZGluZyBkZWxheWVkIGRlc3RydWN0aW9uLgoKKiBwbHVnaW5zL1BsdWdpbkRlbGF5ZWRE
ZXN0cnVjdGlvbi5oOiBBZGRlZC4KCiogcGx1Z2lucy9QbHVnaW5WaWV3LmNwcDoKKFdlYkNvcmU6
OlBsdWdpblZpZXc6On5QbHVnaW5WaWV3KToKVW5yZWdpc3RlciB0aGUgdmlldy4KKFdlYkNvcmU6
OlBsdWdpblZpZXc6OnBlcmZvcm1SZXF1ZXN0KToKVGhlIHBhcmVudCBGcmFtZSBpcyBub3cgYSBS
ZWZQdHI7IHVzZSAuZ2V0KCkuCihXZWJDb3JlOjpQbHVnaW5WaWV3OjpzdGF0dXMpOgpEaXR0by4K
KFdlYkNvcmU6OlBsdWdpblZpZXc6OmRpZFJlY2VpdmVSZXNwb25zZSk6CkRpdHRvLgooV2ViQ29y
ZTo6UGx1Z2luVmlldzo6UGx1Z2luVmlldyk6CkluaXRpYWxpemUgbV9uZWVkc0RlbGF5ZWREZXN0
cm95LiBSZWdpc3RlciB0aGUgUGx1Z2luVmlldy4KCiogcGx1Z2lucy9QbHVnaW5WaWV3Lmg6CkFk
ZGVkIG1fbmVlZHNEZWxheWVkRGVzdHJveS4gTWFkZSBtX3BhcmVudEZyYW1lIGEgUmVmUHRyIHNv
IHRoYXQKdGhlIEZyYW1lIHJlbWFpbnMgdmFsaWQgaWYgd2UgYXJlIGRlc3Ryb3llZCBhc3luY2hy
b25vdXNseS4KKFdlYkNvcmU6OlBsdWdpblZpZXc6OnBhcmVudEZyYW1lKToKVXNlIC5nZXQoKS4K
KFdlYkNvcmU6OlBsdWdpblZpZXc6OnNldE5lZWRzRGVsYXllZERlc3Ryb3kpOgpTZXQgbV9uZWVk
c0RlbGF5ZWREZXN0cm95LgoKKiBwbHVnaW5zL3dpbi9QbHVnaW5WaWV3V2luLmNwcDoKKFdlYkNv
cmU6OlBsdWdpbkRlbGF5ZWREZXN0cm95ZXI6OmRlbGF5RGVzdHJveSk6CkNyZWF0ZSBhIG5ldyBQ
bHVnaW5EZWxheWVkRGVzdHJveWVyLgooV2ViQ29yZTo6UGx1Z2luRGVsYXllZERlc3Ryb3llcjo6
UGx1Z2luRGVsYXllZERlc3Ryb3llcik6ClN0YXJ0IGEgdGltZXIgdG8gZGVzdHJveSB0aGUgUGx1
Z2luVmlldy4KKFdlYkNvcmU6OlBsdWdpbkRlbGF5ZWREZXN0cm95ZXI6OmRlc3Ryb3lUaW1lckZp
cmVkKToKRGVsZXRlIHRoaXMsIGRlc3Ryb3lpbmcgYSByZWZlcmVuY2UgdG8gdGhlIFBsdWdpblZp
ZXcuCihXZWJDb3JlOjpQbHVnaW5WaWV3OjpzZXRQYXJlbnQpOgpJZiBtX25lZWRzRGVsYXllZERl
c3Ryb3kgaXMgc2V0LCBjYWxsClBsdWdpbkRlbGF5ZWREZXN0cm95ZXI6OmRlbGF5RGVzdHJveSgp
LgoKV2ViS2l0VG9vbHM6CgoqIER1bXBSZW5kZXJUcmVlL3dpbi9UZXN0TmV0c2NhcGVQbHVnaW4v
bWFpbi5jcHA6CihleGVjdXRlU2NyaXB0KToKTW92ZWQgdG8gYW4gZWFybGllciBwb2ludCBpbiB0
aGUgZmlsZS4KKE5QUF9OZXcpOgpJZiB0aGUgcGx1Zy1pbiBoYXMgYW4gb25EZXN0cm95IGF0dHJp
YnV0ZSwgc3RvcmUgaXRzIHZhbHVlLgooTlBQX0Rlc3Ryb3kpOgpJZiB0aGUgcGx1Zy1pbiBoYXMg
Y29kZSB0byBydW4gb24gZGVzdHJ1Y3Rpb24sIHJ1biBpdCBhbmQgZnJlZSBpdC4KCkxheW91dFRl
c3RzOgoKKiBwbGF0Zm9ybS93aW4vcGx1Z2lucy9wbHVnaW4tZGVsYXllZC1kZXN0cm95LWV4cGVj
dGVkLnR4dDogQWRkZWQuCiogcGxhdGZvcm0vd2luL3BsdWdpbnMvcGx1Z2luLWRlbGF5ZWQtZGVz
dHJveS5odG1sOiBBZGRlZC4KLS0tCiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB8ICAgMTAgKysrCiAuLi4vcGx1Z2lucy9wbHVnaW4tZGVsYXllZC1k
ZXN0cm95LWV4cGVjdGVkLnR4dCAgICB8ICAgIDMgKwogLi4uL3dpbi9wbHVnaW5zL3BsdWdpbi1k
ZWxheWVkLWRlc3Ryb3kuaHRtbCAgICAgICAgfCAgIDMxICsrKysrKysrKysKIFdlYkNvcmUvQ2hh
bmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA2MSArKysrKysrKysr
KysrKysrKysrKwogV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiAgICAgICAg
ICAgICAgfCAgIDE4ICsrKystLQogV2ViQ29yZS9icmlkZ2UvTlBfanNvYmplY3QuY3BwICAgICAg
ICAgICAgICAgICAgICAgfCAgICA5ICsrLQogV2ViQ29yZS9wbHVnaW5zL1BsdWdpbkRlbGF5ZWRE
ZXN0cnVjdGlvbi5jcHAgICAgICAgfCAgIDU5ICsrKysrKysrKysrKysrKysrKysKIFdlYkNvcmUv
cGx1Z2lucy9QbHVnaW5EZWxheWVkRGVzdHJ1Y3Rpb24uaCAgICAgICAgIHwgICA0OSArKysrKysr
KysrKysrKysrCiBXZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5jcHAgICAgICAgICAgICAgICAg
ICAgICB8ICAgMTYgKysrKy0tCiBXZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5oICAgICAgICAg
ICAgICAgICAgICAgICB8ICAgIDggKystCiBXZWJDb3JlL3BsdWdpbnMvd2luL1BsdWdpblZpZXdX
aW4uY3BwICAgICAgICAgICAgICB8ICAgMjQgKysrKysrKysKIFdlYktpdFRvb2xzL0NoYW5nZUxv
ZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxNSArKysrKwogLi4uL0R1bXBSZW5k
ZXJUcmVlL3dpbi9UZXN0TmV0c2NhcGVQbHVnaW4vbWFpbi5jcHAgfCAgIDM0ICsrKysrKystLS0t
LQogMTMgZmlsZXMgY2hhbmdlZCwgMzA5IGluc2VydGlvbnMoKyksIDI4IGRlbGV0aW9ucygtKQog
Y3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9wbHVnaW5zL3BsdWdp
bi1kZWxheWVkLWRlc3Ryb3ktZXhwZWN0ZWQudHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0
VGVzdHMvcGxhdGZvcm0vd2luL3BsdWdpbnMvcGx1Z2luLWRlbGF5ZWQtZGVzdHJveS5odG1sCiBj
cmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9wbHVnaW5zL1BsdWdpbkRlbGF5ZWREZXN0cnVjdGlv
bi5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJDb3JlL3BsdWdpbnMvUGx1Z2luRGVsYXllZERl
c3RydWN0aW9uLmgKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggOWFlNDY2OS4uYzc0MTNlZSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEz
IEBACisyMDEwLTAyLTA1ICBKb24gSG9uZXljdXR0ICA8amhvbmV5Y3V0dEBhcHBsZS5jb20+CisK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc0MzY4NzU+IENyYXNoIGluIEZsYXNoIHdoZW4gdmlz
aXRpbmcKKyAgICAgICAgaHR0cDovL3d3dy5jY3R2LmNvbS9kZWZhdWx0LnNodG1sIChXRVIgSUQg
ODE5Mjk4MjAwKSBbd2F0c29uIDI1MDIyNjBdCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vcGx1Z2lucy9wbHVnaW4tZGVsYXll
ZC1kZXN0cm95LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vd2luL3Bs
dWdpbnMvcGx1Z2luLWRlbGF5ZWQtZGVzdHJveS5odG1sOiBBZGRlZC4KKwogMjAxMC0wMS0yOCAg
Sm9uIEhvbmV5Y3V0dCAgPGpob25leWN1dHRAYXBwbGUuY29tPgogCiAgICAgICAgIE1TQUE6IENy
YXNoIHdoZW4gcG9zdGluZyBhIG5vdGlmaWNhdGlvbiBmb3IgYSBkZXRhY2hlZCBvYmplY3QKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9wbHVnaW5zL3BsdWdpbi1kZWxheWVk
LWRlc3Ryb3ktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL3BsdWdpbnMv
cGx1Z2luLWRlbGF5ZWQtZGVzdHJveS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uZjU0NzlmOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL3dpbi9wbHVnaW5zL3BsdWdpbi1kZWxheWVkLWRlc3Ryb3ktZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMyBAQAorVGhlIHNob3VsZCBiZSBwcmludGVkIGJlZm9yZSBkZXN0cm95LgorUGx1
Zy1pbiBkZXN0cm95ZWQuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9w
bHVnaW5zL3BsdWdpbi1kZWxheWVkLWRlc3Ryb3kuaHRtbCBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L3dpbi9wbHVnaW5zL3BsdWdpbi1kZWxheWVkLWRlc3Ryb3kuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi43NGMzZDFmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vd2luL3BsdWdpbnMvcGx1Z2luLWRlbGF5ZWQtZGVzdHJveS5odG1sCkBAIC0w
LDAgKzEsMzEgQEAKKzxodG1sPgorPGJvZHk+CisgICAgPHByZSBpZD0iY29uc29sZSI+PC9wcmU+
CisgICAgPGRpdiBpZD0ib3V0ZXIiPgorICAgICAgICA8ZW1iZWQgaWQ9InBsZyIgdHlwZT0iYXBw
bGljYXRpb24veC13ZWJraXQtdGVzdC1uZXRzY2FwZSIgb25EZXN0cm95PSJwbHVnaW5EZXN0cm95
ZWQoKSI+PC9lbWJlZD4KKyAgICA8L2Rpdj4KKyAgICA8c2NyaXB0PgorICAgICAgICBmdW5jdGlv
biBsb2cobWVzc2FnZSkKKyAgICAgICAgeworICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoImNvbnNvbGUiKS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShtZXNz
YWdlICsgIlxuIikpOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gcGx1Z2luRGVzdHJv
eWVkKCkKKyAgICAgICAgeworICAgICAgICAgICAgbG9nKCJQbHVnLWluIGRlc3Ryb3llZC4iKQor
ICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9
CisKKyAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAgICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgICB9CisKKyAgICAgICAgdmFy
IHBsdWdpbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwbGciKTsKKworICAgICAgICBwbHVn
aW4udGVzdEV2YWx1YXRlKCJ3aW5kb3cuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ291dGVyJyku
aW5uZXJIVE1MID0gJyc7Iik7CisKKyAgICAgICAgbG9nKCJUaGUgc2hvdWxkIGJlIHByaW50ZWQg
YmVmb3JlIGRlc3Ryb3kuIik7CisgICAgPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGE0Mzg4
YjMuLmJmNThkZjIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsNjQgQEAKKzIwMTAtMDItMDUgIEpvbiBIb25leWN1dHQgIDxq
aG9uZXljdXR0QGFwcGxlLmNvbT4KKworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzQzNjg3NT4g
Q3Jhc2ggaW4gRmxhc2ggd2hlbiB2aXNpdGluZworICAgICAgICBodHRwOi8vd3d3LmNjdHYuY29t
L2RlZmF1bHQuc2h0bWwgKFdFUiBJRCA4MTkyOTgyMDApIFt3YXRzb24gMjUwMjI2MF0KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiBwbGF0Zm9y
bS93aW4vcGx1Z2lucy9wbHVnaW4tZGVsYXllZC1kZXN0cm95Lmh0bWwKKworICAgICAgICAqIFdl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICBBZGQgbmV3IGZpbGVzIHRvIHBy
b2plY3QuCisKKyAgICAgICAgKiBicmlkZ2UvTlBfanNvYmplY3QuY3BwOgorICAgICAgICAoX05Q
Tl9FdmFsdWF0ZSk6CisgICAgICAgIEJlZm9yZSBldmFsdWF0aW5nIHRoZSBzY3JpcHQsIHNldCB0
aGUgcGx1Zy1pbiBhcyBuZWVkaW5nIGFuCisgICAgICAgIGFzeW5jaHJvbm91cyBkZXN0cnVjdGlv
bi4gQWZ0ZXIsIHVuc2V0IGl0LgorCisgICAgICAgICogcGx1Z2lucy9QbHVnaW5EZWxheWVkRGVz
dHJ1Y3Rpb24uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpbkRlbGF5ZWREZXN0
cnVjdGlvbjo6cmVnaXN0ZXJQbHVnaW5WaWV3KToKKyAgICAgICAgQWRkIHRoZSBQbHVnaW5WaWV3
IHRvIHRoZSBzZXQuCisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5EZWxheWVkRGVzdHJ1Y3Rpb246
OnVucmVnaXN0ZXJQbHVnaW5WaWV3KToKKyAgICAgICAgUmVtb3ZlIHRoZSB2aWV3IGZyb20gdGhl
IHNldC4KKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpbkRlbGF5ZWREZXN0cnVjdGlvbjo6c2V0TmVl
ZHNEZWxheWVkRGVzdHJveSk6CisgICAgICAgIEZpbmQgdGhlIHZpZXcgaW4gdGhlIHNldC4gSWYg
aXQgbmVlZHMgZGVsYXllZCBkZXN0cm95LCBhbmQgdGhlIGVudHJ5CisgICAgICAgIGNvdW50IGlz
IDEsIGNhbGwgdGhlIHZpZXcncyBzZXROZWVkc0RlbGF5ZWREZXN0cm95LiBJZiB3ZSdyZSBiYWNr
aW5nCisgICAgICAgIG91dCBvZiB0aGUgZnVuY3Rpb24sIGFuZCB3ZSByZWFjaCB0aGUgbGFzdCBj
YWxsLCB1bnNldCB0aGUgdmlldyBhcworICAgICAgICBuZWVkaW5nIGRlbGF5ZWQgZGVzdHJ1Y3Rp
b24uCisKKyAgICAgICAgKiBwbHVnaW5zL1BsdWdpbkRlbGF5ZWREZXN0cnVjdGlvbi5oOiBBZGRl
ZC4KKworICAgICAgICAqIHBsdWdpbnMvUGx1Z2luVmlldy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpQbHVnaW5WaWV3Ojp+UGx1Z2luVmlldyk6CisgICAgICAgIFVucmVnaXN0ZXIgdGhlIHZpZXcu
CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpwZXJmb3JtUmVxdWVzdCk6CisgICAgICAg
IFRoZSBwYXJlbnQgRnJhbWUgaXMgbm93IGEgUmVmUHRyOyB1c2UgLmdldCgpLgorICAgICAgICAo
V2ViQ29yZTo6UGx1Z2luVmlldzo6c3RhdHVzKToKKyAgICAgICAgRGl0dG8uCisgICAgICAgIChX
ZWJDb3JlOjpQbHVnaW5WaWV3OjpkaWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICBEaXR0by4K
KyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OlBsdWdpblZpZXcpOgorICAgICAgICBJbml0
aWFsaXplIG1fbmVlZHNEZWxheWVkRGVzdHJveS4gUmVnaXN0ZXIgdGhlIFBsdWdpblZpZXcuCisK
KyAgICAgICAgKiBwbHVnaW5zL1BsdWdpblZpZXcuaDoKKyAgICAgICAgQWRkZWQgbV9uZWVkc0Rl
bGF5ZWREZXN0cm95LiBNYWRlIG1fcGFyZW50RnJhbWUgYSBSZWZQdHIgc28gdGhhdAorICAgICAg
ICB0aGUgRnJhbWUgcmVtYWlucyB2YWxpZCBpZiB3ZSBhcmUgZGVzdHJveWVkIGFzeW5jaHJvbm91
c2x5LgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6cGFyZW50RnJhbWUpOgorICAgICAg
ICBVc2UgLmdldCgpLgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6c2V0TmVlZHNEZWxh
eWVkRGVzdHJveSk6CisgICAgICAgIFNldCBtX25lZWRzRGVsYXllZERlc3Ryb3kuCisKKyAgICAg
ICAgKiBwbHVnaW5zL3dpbi9QbHVnaW5WaWV3V2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBs
dWdpbkRlbGF5ZWREZXN0cm95ZXI6OmRlbGF5RGVzdHJveSk6CisgICAgICAgIENyZWF0ZSBhIG5l
dyBQbHVnaW5EZWxheWVkRGVzdHJveWVyLgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luRGVsYXll
ZERlc3Ryb3llcjo6UGx1Z2luRGVsYXllZERlc3Ryb3llcik6CisgICAgICAgIFN0YXJ0IGEgdGlt
ZXIgdG8gZGVzdHJveSB0aGUgUGx1Z2luVmlldy4KKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpbkRl
bGF5ZWREZXN0cm95ZXI6OmRlc3Ryb3lUaW1lckZpcmVkKToKKyAgICAgICAgRGVsZXRlIHRoaXMs
IGRlc3Ryb3lpbmcgYSByZWZlcmVuY2UgdG8gdGhlIFBsdWdpblZpZXcuCisgICAgICAgIChXZWJD
b3JlOjpQbHVnaW5WaWV3OjpzZXRQYXJlbnQpOgorICAgICAgICBJZiBtX25lZWRzRGVsYXllZERl
c3Ryb3kgaXMgc2V0LCBjYWxsCisgICAgICAgIFBsdWdpbkRlbGF5ZWREZXN0cm95ZXI6OmRlbGF5
RGVzdHJveSgpLgorCiAyMDEwLTAxLTI4ICBKb24gSG9uZXljdXR0ICA8amhvbmV5Y3V0dEBhcHBs
ZS5jb20+CiAKICAgICAgICAgTVNBQTogQ3Jhc2ggd2hlbiBwb3N0aW5nIGEgbm90aWZpY2F0aW9u
IGZvciBhIGRldGFjaGVkIG9iamVjdApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJv
ai9XZWJDb3JlLnZjcHJvaiBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oK
aW5kZXggYzgzYzg3NC4uOTk1MDQzNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJv
ai9XZWJDb3JlLnZjcHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNw
cm9qCkBAIC0xLDQgKzEsNCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0id2luZG93
cy0xMjUxIj8+DQorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iV2luZG93cy0xMjUyIj8+
DQogPFZpc3VhbFN0dWRpb1Byb2plY3QNCiAJUHJvamVjdFR5cGU9IlZpc3VhbCBDKysiDQogCVZl
cnNpb249IjguMDAiDQpAQCAtNDA2NDUsNiArNDA2NDUsMTQgQEAKIAkJCQk+DQogCQkJPC9GaWxl
Pg0KIAkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGx1Z2luc1xQbHVnaW5EZWxheWVk
RGVzdHJ1Y3Rpb24uY3BwIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQorCQkJCVJl
bGF0aXZlUGF0aD0iLi5ccGx1Z2luc1xQbHVnaW5EZWxheWVkRGVzdHJ1Y3Rpb24uaCINCisJCQkJ
Pg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsdWdpbnNc
UGx1Z2luSW5mb1N0b3JlLmNwcCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCkBAIC00Mjk1NiwxOSAr
NDI5NjQsMTkgQEAKIAkJCQkJPg0KIAkJCQk8L0ZpbGU+DQogCQkJCTxGaWxlDQotCQkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXGluc3BlY3Rvclxmcm9udC1lbmRcVGV4dEVkaXRvci5qcyINCisJCQkJCVJl
bGF0aXZlUGF0aD0iLi5caW5zcGVjdG9yXGZyb250LWVuZFx0ZXh0RWRpdG9yLmNzcyINCiAJCQkJ
CT4NCiAJCQkJPC9GaWxlPg0KIAkJCQk8RmlsZQ0KLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxpbnNw
ZWN0b3JcZnJvbnQtZW5kXFRleHRFZGl0b3JIaWdobGlnaHRlci5qcyINCisJCQkJCVJlbGF0aXZl
UGF0aD0iLi5caW5zcGVjdG9yXGZyb250LWVuZFxUZXh0RWRpdG9yLmpzIg0KIAkJCQkJPg0KIAkJ
CQk8L0ZpbGU+DQogCQkJCTxGaWxlDQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGluc3BlY3Rvclxm
cm9udC1lbmRcVGV4dEVkaXRvck1vZGVsLmpzIg0KKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxpbnNw
ZWN0b3JcZnJvbnQtZW5kXFRleHRFZGl0b3JIaWdobGlnaHRlci5qcyINCiAJCQkJCT4NCiAJCQkJ
PC9GaWxlPg0KIAkJCQk8RmlsZQ0KLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxpbnNwZWN0b3JcZnJv
bnQtZW5kXHRleHRFZGl0b3IuY3NzIg0KKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxpbnNwZWN0b3Jc
ZnJvbnQtZW5kXFRleHRFZGl0b3JNb2RlbC5qcyINCiAJCQkJCT4NCiAJCQkJPC9GaWxlPg0KIAkJ
CQk8RmlsZQ0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvYnJpZGdlL05QX2pzb2JqZWN0LmNwcCBiL1dl
YkNvcmUvYnJpZGdlL05QX2pzb2JqZWN0LmNwcAppbmRleCBhMzBiNmQ3Li42N2U3Y2Y0IDEwMDY0
NAotLS0gYS9XZWJDb3JlL2JyaWRnZS9OUF9qc29iamVjdC5jcHAKKysrIGIvV2ViQ29yZS9icmlk
Z2UvTlBfanNvYmplY3QuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiTlBfanNvYmpl
Y3QuaCIKIAogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisjaW5jbHVkZSAiUGx1Z2luRGVs
YXllZERlc3RydWN0aW9uLmgiCiAjaW5jbHVkZSAiU3RyaW5nU291cmNlUHJvdmlkZXIuaCIKICNp
bmNsdWRlICJjX3V0aWxpdHkuaCIKICNpbmNsdWRlICJjX2luc3RhbmNlLmgiCkBAIC0xOTAsNyAr
MTkxLDcgQEAgYm9vbCBfTlBOX0ludm9rZShOUFAgbnBwLCBOUE9iamVjdCogbywgTlBJZGVudGlm
aWVyIG1ldGhvZE5hbWUsIGNvbnN0IE5QVmFyaWFudCoKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAot
Ym9vbCBfTlBOX0V2YWx1YXRlKE5QUCwgTlBPYmplY3QqIG8sIE5QU3RyaW5nKiBzLCBOUFZhcmlh
bnQqIHZhcmlhbnQpCitib29sIF9OUE5fRXZhbHVhdGUoTlBQIGluc3RhbmNlLCBOUE9iamVjdCog
bywgTlBTdHJpbmcqIHMsIE5QVmFyaWFudCogdmFyaWFudCkKIHsKICAgICBpZiAoby0+X2NsYXNz
ID09IE5QU2NyaXB0T2JqZWN0Q2xhc3MpIHsKICAgICAgICAgSmF2YVNjcmlwdE9iamVjdCogb2Jq
ID0gcmVpbnRlcnByZXRfY2FzdDxKYXZhU2NyaXB0T2JqZWN0Kj4obyk7IApAQCAtMTk5LDYgKzIw
MCw4IEBAIGJvb2wgX05QTl9FdmFsdWF0ZShOUFAsIE5QT2JqZWN0KiBvLCBOUFN0cmluZyogcywg
TlBWYXJpYW50KiB2YXJpYW50KQogICAgICAgICBpZiAoIXJvb3RPYmplY3QgfHwgIXJvb3RPYmpl
Y3QtPmlzVmFsaWQoKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAorICAgICAgICBQbHVn
aW5EZWxheWVkRGVzdHJ1Y3Rpb246OnNldE5lZWRzRGVsYXllZERlc3Ryb3koaW5zdGFuY2UsIHRy
dWUpOworCiAgICAgICAgIEV4ZWNTdGF0ZSogZXhlYyA9IHJvb3RPYmplY3QtPmdsb2JhbE9iamVj
dCgpLT5nbG9iYWxFeGVjKCk7CiAgICAgICAgIEpTTG9jayBsb2NrKFNpbGVuY2VBc3NlcnRpb25z
T25seSk7CiAgICAgICAgIFN0cmluZyBzY3JpcHRTdHJpbmcgPSBjb252ZXJ0TlBTdHJpbmdUb1VU
RjE2KHMpOwpAQCAtMjA3LDcgKzIxMCw5IEBAIGJvb2wgX05QTl9FdmFsdWF0ZShOUFAsIE5QT2Jq
ZWN0KiBvLCBOUFN0cmluZyogcywgTlBWYXJpYW50KiB2YXJpYW50KQogICAgICAgICBDb21wbGV0
aW9uIGNvbXBsZXRpb24gPSBKU0M6OmV2YWx1YXRlKGdsb2JhbE9iamVjdC0+Z2xvYmFsRXhlYygp
LCBnbG9iYWxPYmplY3QtPmdsb2JhbFNjb3BlQ2hhaW4oKSwgbWFrZVNvdXJjZShzY3JpcHRTdHJp
bmcpLCBKU0M6OkpTVmFsdWUoKSk7CiAgICAgICAgIGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgp
LT50aW1lb3V0Q2hlY2tlci5zdG9wKCk7CiAgICAgICAgIENvbXBsVHlwZSB0eXBlID0gY29tcGxl
dGlvbi5jb21wbFR5cGUoKTsKLSAgICAgICAgCisKKyAgICAgICAgUGx1Z2luRGVsYXllZERlc3Ry
dWN0aW9uOjpzZXROZWVkc0RlbGF5ZWREZXN0cm95KGluc3RhbmNlLCBmYWxzZSk7CisKICAgICAg
ICAgSlNWYWx1ZSByZXN1bHQ7CiAgICAgICAgIGlmICh0eXBlID09IE5vcm1hbCkgewogICAgICAg
ICAgICAgcmVzdWx0ID0gY29tcGxldGlvbi52YWx1ZSgpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9w
bHVnaW5zL1BsdWdpbkRlbGF5ZWREZXN0cnVjdGlvbi5jcHAgYi9XZWJDb3JlL3BsdWdpbnMvUGx1
Z2luRGVsYXllZERlc3RydWN0aW9uLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi41OWEyM2VkCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9wbHVnaW5zL1BsdWdpbkRl
bGF5ZWREZXN0cnVjdGlvbi5jcHAKQEAgLTAsMCArMSw1OSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAwOSBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiUGx1Z2luRGVsYXllZERlc3RydWN0aW9uLmgiCisKKyNpbmNsdWRlICJQbHVnaW5WaWV3Lmgi
CisKK3VzaW5nIG5hbWVzcGFjZSBzdGQ7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworSGFzaE1h
cDxOUFAsIHBhaXI8UGx1Z2luVmlldyosIGludD4gPiBQbHVnaW5EZWxheWVkRGVzdHJ1Y3Rpb246
OnNfcGx1Z2luVmlld3M7CisKK3ZvaWQgUGx1Z2luRGVsYXllZERlc3RydWN0aW9uOjpyZWdpc3Rl
clBsdWdpblZpZXcoUGx1Z2luVmlldyYgdmlldykKK3sKKyAgICBzX3BsdWdpblZpZXdzLmFkZCh2
aWV3Lmluc3RhbmNlKCksIG1ha2VfcGFpcigmdmlldywgMCkpOworfQorCit2b2lkIFBsdWdpbkRl
bGF5ZWREZXN0cnVjdGlvbjo6dW5yZWdpc3RlclBsdWdpblZpZXcoUGx1Z2luVmlldyYgdmlldykK
K3sKKyAgICBzX3BsdWdpblZpZXdzLnJlbW92ZSh2aWV3Lmluc3RhbmNlKCkpOworfQorCit2b2lk
IFBsdWdpbkRlbGF5ZWREZXN0cnVjdGlvbjo6c2V0TmVlZHNEZWxheWVkRGVzdHJveShOUFAgaW5z
dGFuY2UsIGJvb2wgbmVlZHNEZWxheWVkRGVzdHJveSkKK3sKKyAgICBIYXNoTWFwPE5QUF90Kiwg
cGFpcjxQbHVnaW5WaWV3KiwgaW50PiA+OjppdGVyYXRvciBpdCA9IHNfcGx1Z2luVmlld3MuZmlu
ZChpbnN0YW5jZSk7CisgICAgaWYgKGl0ID09IHNfcGx1Z2luVmlld3MuZW5kKCkpCisgICAgICAg
IHJldHVybjsKKworICAgIGlmIChuZWVkc0RlbGF5ZWREZXN0cm95ICYmICsrKGl0LT5zZWNvbmQu
c2Vjb25kKSA9PSAxKQorICAgICAgICBpdC0+c2Vjb25kLmZpcnN0LT5zZXROZWVkc0RlbGF5ZWRE
ZXN0cm95KHRydWUpOworICAgIGVsc2UgaWYgKCFuZWVkc0RlbGF5ZWREZXN0cm95ICYmIC0tKGl0
LT5zZWNvbmQuc2Vjb25kKSA9PSAwKQorICAgICAgICBpdC0+c2Vjb25kLmZpcnN0LT5zZXROZWVk
c0RlbGF5ZWREZXN0cm95KGZhbHNlKTsKK30KKworfTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGx1
Z2lucy9QbHVnaW5EZWxheWVkRGVzdHJ1Y3Rpb24uaCBiL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5E
ZWxheWVkRGVzdHJ1Y3Rpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5m
ZDZkM2ViCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9wbHVnaW5zL1BsdWdpbkRlbGF5ZWRE
ZXN0cnVjdGlvbi5oCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAg
QXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBQbHVnaW5EZWxheWVkRGVzdHJ1Y3Rpb25faAor
I2RlZmluZSBQbHVnaW5EZWxheWVkRGVzdHJ1Y3Rpb25faAorCisjaW5jbHVkZSAibnBydW50aW1l
X2ludGVybmFsLmgiCisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitjbGFzcyBQbHVnaW5WaWV3OworCitjbGFzcyBQbHVnaW5EZWxheWVkRGVzdHJ1Y3Rp
b24gOiBwdWJsaWMgTm9uY29weWFibGUgeworcHVibGljOgorICAgIHN0YXRpYyB2b2lkIHJlZ2lz
dGVyUGx1Z2luVmlldyhQbHVnaW5WaWV3Jik7CisgICAgc3RhdGljIHZvaWQgdW5yZWdpc3RlclBs
dWdpblZpZXcoUGx1Z2luVmlldyYpOworCisgICAgc3RhdGljIHZvaWQgc2V0TmVlZHNEZWxheWVk
RGVzdHJveShOUFAsIGJvb2wpOworCitwcml2YXRlOgorICAgIHN0YXRpYyBIYXNoTWFwPE5QUCwg
c3RkOjpwYWlyPFBsdWdpblZpZXcqLCBpbnQ+ID4gc19wbHVnaW5WaWV3czsKK307CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFBsdWdpbkRlbGF5ZWREZXN0cnVjdGlvbl9o
CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5jcHAgYi9XZWJDb3JlL3Bs
dWdpbnMvUGx1Z2luVmlldy5jcHAKaW5kZXggM2ZmNGM4Mi4uMTgxZDFlNCAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcuY3BwCisrKyBiL1dlYkNvcmUvcGx1Z2lucy9QbHVn
aW5WaWV3LmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5j
bHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIKICNpbmNsdWRlICJFbGVtZW50LmgiCisjaW5jbHVkZSAi
Rm9jdXNDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKICNpbmNsdWRlICJG
cmFtZVRyZWUuaCIKICNpbmNsdWRlICJGcmFtZS5oIgpAQCAtNDYsMTEgKzQ3LDExIEBACiAjaW5j
bHVkZSAiTW91c2VFdmVudC5oIgogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAjaW5jbHVk
ZSAiUGFnZS5oIgotI2luY2x1ZGUgIkZvY3VzQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIlBsYXRm
b3JtTW91c2VFdmVudC5oIgogI2lmIE9TKFdJTkRPV1MpICYmIEVOQUJMRShORVRTQ0FQRV9QTFVH
SU5fQVBJKQogI2luY2x1ZGUgIlBsdWdpbk1lc3NhZ2VUaHJvdHRsZXJXaW4uaCIKICNlbmRpZgor
I2luY2x1ZGUgIlBsdWdpbkRlbGF5ZWREZXN0cnVjdGlvbi5oIgogI2luY2x1ZGUgIlBsdWdpblBh
Y2thZ2UuaCIKICNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKICNpbmNsdWRlICJTY3JpcHRDb250
cm9sbGVyLmgiCkBAIC0yNTgsNiArMjU5LDggQEAgUGx1Z2luVmlldzo6flBsdWdpblZpZXcoKQog
ewogICAgIExPRyhQbHVnaW5zLCAiUGx1Z2luVmlldzo6flBsdWdpblZpZXcoKSIpOwogCisgICAg
UGx1Z2luRGVsYXllZERlc3RydWN0aW9uOjp1bnJlZ2lzdGVyUGx1Z2luVmlldygqdGhpcyk7CisK
ICAgICByZW1vdmVGcm9tVW5zdGFydGVkTGlzdElmTmVjZXNzYXJ5KCk7CiAKICAgICBzdG9wKCk7
CkBAIC00MjMsNyArNDI2LDcgQEAgdm9pZCBQbHVnaW5WaWV3OjpwZXJmb3JtUmVxdWVzdChQbHVn
aW5SZXF1ZXN0KiByZXF1ZXN0KQogICAgICAgICAvLyBpZiB0aGlzIGlzIG5vdCBhIHRhcmdldGVk
IHJlcXVlc3QsIGNyZWF0ZSBhIHN0cmVhbSBmb3IgaXQuIG90aGVyd2lzZSwKICAgICAgICAgLy8g
anVzdCBwYXNzIGl0IG9mZiB0byB0aGUgbG9hZGVyCiAgICAgICAgIGlmICh0YXJnZXRGcmFtZU5h
bWUuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICBSZWZQdHI8UGx1Z2luU3RyZWFtPiBzdHJlYW0g
PSBQbHVnaW5TdHJlYW06OmNyZWF0ZSh0aGlzLCBtX3BhcmVudEZyYW1lLCByZXF1ZXN0LT5mcmFt
ZUxvYWRSZXF1ZXN0KCkucmVzb3VyY2VSZXF1ZXN0KCksIHJlcXVlc3QtPnNlbmROb3RpZmljYXRp
b24oKSwgcmVxdWVzdC0+bm90aWZ5RGF0YSgpLCBwbHVnaW4oKS0+cGx1Z2luRnVuY3MoKSwgaW5z
dGFuY2UoKSwgbV9wbHVnaW4tPnF1aXJrcygpKTsKKyAgICAgICAgICAgIFJlZlB0cjxQbHVnaW5T
dHJlYW0+IHN0cmVhbSA9IFBsdWdpblN0cmVhbTo6Y3JlYXRlKHRoaXMsIG1fcGFyZW50RnJhbWUu
Z2V0KCksIHJlcXVlc3QtPmZyYW1lTG9hZFJlcXVlc3QoKS5yZXNvdXJjZVJlcXVlc3QoKSwgcmVx
dWVzdC0+c2VuZE5vdGlmaWNhdGlvbigpLCByZXF1ZXN0LT5ub3RpZnlEYXRhKCksIHBsdWdpbigp
LT5wbHVnaW5GdW5jcygpLCBpbnN0YW5jZSgpLCBtX3BsdWdpbi0+cXVpcmtzKCkpOwogICAgICAg
ICAgICAgbV9zdHJlYW1zLmFkZChzdHJlYW0pOwogICAgICAgICAgICAgc3RyZWFtLT5zdGFydCgp
OwogICAgICAgICB9IGVsc2UgewpAQCAtNDYxLDcgKzQ2NCw3IEBAIHZvaWQgUGx1Z2luVmlldzo6
cGVyZm9ybVJlcXVlc3QoUGx1Z2luUmVxdWVzdCogcmVxdWVzdCkKICAgICAgICAgaWYgKGdldFN0
cmluZyhwYXJlbnRGcmFtZS0+c2NyaXB0KCksIHJlc3VsdCwgcmVzdWx0U3RyaW5nKSkKICAgICAg
ICAgICAgIGNzdHIgPSByZXN1bHRTdHJpbmcudXRmOCgpOwogCi0gICAgICAgIFJlZlB0cjxQbHVn
aW5TdHJlYW0+IHN0cmVhbSA9IFBsdWdpblN0cmVhbTo6Y3JlYXRlKHRoaXMsIG1fcGFyZW50RnJh
bWUsIHJlcXVlc3QtPmZyYW1lTG9hZFJlcXVlc3QoKS5yZXNvdXJjZVJlcXVlc3QoKSwgcmVxdWVz
dC0+c2VuZE5vdGlmaWNhdGlvbigpLCByZXF1ZXN0LT5ub3RpZnlEYXRhKCksIHBsdWdpbigpLT5w
bHVnaW5GdW5jcygpLCBpbnN0YW5jZSgpLCBtX3BsdWdpbi0+cXVpcmtzKCkpOworICAgICAgICBS
ZWZQdHI8UGx1Z2luU3RyZWFtPiBzdHJlYW0gPSBQbHVnaW5TdHJlYW06OmNyZWF0ZSh0aGlzLCBt
X3BhcmVudEZyYW1lLmdldCgpLCByZXF1ZXN0LT5mcmFtZUxvYWRSZXF1ZXN0KCkucmVzb3VyY2VS
ZXF1ZXN0KCksIHJlcXVlc3QtPnNlbmROb3RpZmljYXRpb24oKSwgcmVxdWVzdC0+bm90aWZ5RGF0
YSgpLCBwbHVnaW4oKS0+cGx1Z2luRnVuY3MoKSwgaW5zdGFuY2UoKSwgbV9wbHVnaW4tPnF1aXJr
cygpKTsKICAgICAgICAgbV9zdHJlYW1zLmFkZChzdHJlYW0pOwogICAgICAgICBzdHJlYW0tPnNl
bmRKYXZhU2NyaXB0U3RyZWFtKHJlcXVlc3RVUkwsIGNzdHIpOwogICAgIH0KQEAgLTYwMCw3ICs2
MDMsNyBAQCBOUEVycm9yIFBsdWdpblZpZXc6OmRlc3Ryb3lTdHJlYW0oTlBTdHJlYW0qIHN0cmVh
bSwgTlBSZWFzb24gcmVhc29uKQogdm9pZCBQbHVnaW5WaWV3OjpzdGF0dXMoY29uc3QgY2hhciog
bWVzc2FnZSkKIHsKICAgICBpZiAoUGFnZSogcGFnZSA9IG1fcGFyZW50RnJhbWUtPnBhZ2UoKSkK
LSAgICAgICAgcGFnZS0+Y2hyb21lKCktPnNldFN0YXR1c2JhclRleHQobV9wYXJlbnRGcmFtZSwg
U3RyaW5nKG1lc3NhZ2UpKTsKKyAgICAgICAgcGFnZS0+Y2hyb21lKCktPnNldFN0YXR1c2JhclRl
eHQobV9wYXJlbnRGcmFtZS5nZXQoKSwgU3RyaW5nKG1lc3NhZ2UpKTsKIH0KIAogTlBFcnJvciBQ
bHVnaW5WaWV3OjpzZXRWYWx1ZShOUFBWYXJpYWJsZSB2YXJpYWJsZSwgdm9pZCogdmFsdWUpCkBA
IC04MzUsNiArODM4LDcgQEAgUGx1Z2luVmlldzo6UGx1Z2luVmlldyhGcmFtZSogcGFyZW50RnJh
bWUsIGNvbnN0IEludFNpemUmIHNpemUsIFBsdWdpblBhY2thZ2UqIHAKICAgICAsIG1faXNKYXZh
U2NyaXB0UGF1c2VkKGZhbHNlKQogICAgICwgbV9pc0hhbHRlZChmYWxzZSkKICAgICAsIG1faGFz
QmVlbkhhbHRlZChmYWxzZSkKKyAgICAsIG1fbmVlZHNEZWxheWVkRGVzdHJveShmYWxzZSkKIHsK
ICAgICBpZiAoIW1fcGx1Z2luKSB7CiAgICAgICAgIG1fc3RhdHVzID0gUGx1Z2luU3RhdHVzQ2Fu
Tm90RmluZFBsdWdpbjsKQEAgLTg0NSw2ICs4NDksOCBAQCBQbHVnaW5WaWV3OjpQbHVnaW5WaWV3
KEZyYW1lKiBwYXJlbnRGcmFtZSwgY29uc3QgSW50U2l6ZSYgc2l6ZSwgUGx1Z2luUGFja2FnZSog
cAogICAgIG1faW5zdGFuY2UtPm5kYXRhID0gdGhpczsKICAgICBtX2luc3RhbmNlLT5wZGF0YSA9
IDA7CiAKKyAgICBQbHVnaW5EZWxheWVkRGVzdHJ1Y3Rpb246OnJlZ2lzdGVyUGx1Z2luVmlldygq
dGhpcyk7CisKICAgICBzZXRQYXJhbWV0ZXJzKHBhcmFtTmFtZXMsIHBhcmFtVmFsdWVzKTsKIAog
ICAgIG1lbXNldCgmbV9ucFdpbmRvdywgMCwgc2l6ZW9mKG1fbnBXaW5kb3cpKTsKQEAgLTg3MSw3
ICs4NzcsNyBAQCB2b2lkIFBsdWdpblZpZXc6OmRpZFJlY2VpdmVSZXNwb25zZShjb25zdCBSZXNv
dXJjZVJlc3BvbnNlJiByZXNwb25zZSkKICAgICBBU1NFUlQobV9sb2FkTWFudWFsbHkpOwogICAg
IEFTU0VSVCghbV9tYW51YWxTdHJlYW0pOwogCi0gICAgbV9tYW51YWxTdHJlYW0gPSBQbHVnaW5T
dHJlYW06OmNyZWF0ZSh0aGlzLCBtX3BhcmVudEZyYW1lLCBtX3BhcmVudEZyYW1lLT5sb2FkZXIo
KS0+YWN0aXZlRG9jdW1lbnRMb2FkZXIoKS0+cmVxdWVzdCgpLCBmYWxzZSwgMCwgcGx1Z2luKCkt
PnBsdWdpbkZ1bmNzKCksIGluc3RhbmNlKCksIG1fcGx1Z2luLT5xdWlya3MoKSk7CisgICAgbV9t
YW51YWxTdHJlYW0gPSBQbHVnaW5TdHJlYW06OmNyZWF0ZSh0aGlzLCBtX3BhcmVudEZyYW1lLmdl
dCgpLCBtX3BhcmVudEZyYW1lLT5sb2FkZXIoKS0+YWN0aXZlRG9jdW1lbnRMb2FkZXIoKS0+cmVx
dWVzdCgpLCBmYWxzZSwgMCwgcGx1Z2luKCktPnBsdWdpbkZ1bmNzKCksIGluc3RhbmNlKCksIG1f
cGx1Z2luLT5xdWlya3MoKSk7CiAgICAgbV9tYW51YWxTdHJlYW0tPnNldExvYWRNYW51YWxseSh0
cnVlKTsKIAogICAgIG1fbWFudWFsU3RyZWFtLT5kaWRSZWNlaXZlUmVzcG9uc2UoMCwgcmVzcG9u
c2UpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcuaCBiL1dlYkNvcmUv
cGx1Z2lucy9QbHVnaW5WaWV3LmgKaW5kZXggMGRkNWUwYi4uZTY1NDQ2NCAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcuaAorKysgYi9XZWJDb3JlL3BsdWdpbnMvUGx1Z2lu
Vmlldy5oCkBAIC0xNzksNyArMTc5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAg
IHZpcnR1YWwgYm9vbCBpc1BsdWdpblZpZXcoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAKLSAg
ICAgICAgRnJhbWUqIHBhcmVudEZyYW1lKCkgY29uc3QgeyByZXR1cm4gbV9wYXJlbnRGcmFtZTsg
fQorICAgICAgICBGcmFtZSogcGFyZW50RnJhbWUoKSBjb25zdCB7IHJldHVybiBtX3BhcmVudEZy
YW1lLmdldCgpOyB9CiAKICAgICAgICAgdm9pZCBmb2N1c1BsdWdpbkVsZW1lbnQoKTsKIApAQCAt
MjEzLDYgKzIxMyw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICBib29sIHN0YXJ0
KCk7CiAKKyAgICAgICAgdm9pZCBzZXROZWVkc0RlbGF5ZWREZXN0cm95KGJvb2wgYikgeyBtX25l
ZWRzRGVsYXllZERlc3Ryb3kgPSBiOyB9CisKICAgICBwcml2YXRlOgogICAgICAgICBQbHVnaW5W
aWV3KEZyYW1lKiBwYXJlbnRGcmFtZSwgY29uc3QgSW50U2l6ZSYsIFBsdWdpblBhY2thZ2UqLCBF
bGVtZW50KiwgY29uc3QgS1VSTCYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwYXJhbU5hbWVzLCBj
b25zdCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1WYWx1ZXMsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUs
IGJvb2wgbG9hZE1hbnVhbGx5KTsKIApAQCAtMjM4LDcgKzI0MCw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICAgICAgc3RhdGljIEJPT0wgV0lOQVBJIGhvb2tlZEVuZFBhaW50KEhXTkQsIGNv
bnN0IFBBSU5UU1RSVUNUKik7CiAjZW5kaWYKIAotICAgICAgICBGcmFtZSogbV9wYXJlbnRGcmFt
ZTsKKyAgICAgICAgUmVmUHRyPEZyYW1lPiBtX3BhcmVudEZyYW1lOwogICAgICAgICBSZWZQdHI8
UGx1Z2luUGFja2FnZT4gbV9wbHVnaW47CiAgICAgICAgIEVsZW1lbnQqIG1fZWxlbWVudDsKICAg
ICAgICAgYm9vbCBtX2lzU3RhcnRlZDsKQEAgLTM2Myw2ICszNjUsOCBAQCBwcml2YXRlOgogICAg
ICAgICBib29sIG1faXNIYWx0ZWQ7CiAgICAgICAgIGJvb2wgbV9oYXNCZWVuSGFsdGVkOwogCisg
ICAgICAgIGJvb2wgbV9uZWVkc0RlbGF5ZWREZXN0cm95OworCiAgICAgICAgIHN0YXRpYyBQbHVn
aW5WaWV3KiBzX2N1cnJlbnRQbHVnaW5WaWV3OwogICAgIH07CiAKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvcGx1Z2lucy93aW4vUGx1Z2luVmlld1dpbi5jcHAgYi9XZWJDb3JlL3BsdWdpbnMvd2luL1Bs
dWdpblZpZXdXaW4uY3BwCmluZGV4IDJhZGU2NjMuLjFhMTFhNjcgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvcGx1Z2lucy93aW4vUGx1Z2luVmlld1dpbi5jcHAKKysrIGIvV2ViQ29yZS9wbHVnaW5zL3dp
bi9QbHVnaW5WaWV3V2luLmNwcApAQCAtNzM2LDYgKzczNiwyNyBAQCB2b2lkIFBsdWdpblZpZXc6
OmhhbmRsZU1vdXNlRXZlbnQoTW91c2VFdmVudCogZXZlbnQpCiAjZW5kaWYKIH0KIAorY2xhc3Mg
UGx1Z2luRGVsYXllZERlc3Ryb3llciB7CitwdWJsaWM6CisgICAgc3RhdGljIHZvaWQgZGVsYXlE
ZXN0cm95KFBhc3NSZWZQdHI8UGx1Z2luVmlldz4gcGx1Z2luKSB7IG5ldyBQbHVnaW5EZWxheWVk
RGVzdHJveWVyKHBsdWdpbik7IH0KKworcHJpdmF0ZToKKyAgICBQbHVnaW5EZWxheWVkRGVzdHJv
eWVyKFBhc3NSZWZQdHI8UGx1Z2luVmlldz4gcGx1Z2luKQorICAgICAgICA6IG1fcGx1Z2luKHBs
dWdpbikKKyAgICAgICAgLCBtX3RpbWVyKHRoaXMsICZQbHVnaW5EZWxheWVkRGVzdHJveWVyOjpk
ZXN0cm95VGltZXJGaXJlZCkKKyAgICB7CisgICAgICAgIG1fdGltZXIuc3RhcnRPbmVTaG90KDAp
OworICAgIH0KKworICAgIHZvaWQgZGVzdHJveVRpbWVyRmlyZWQoVGltZXI8UGx1Z2luRGVsYXll
ZERlc3Ryb3llcj4qKQorICAgIHsKKyAgICAgICAgZGVsZXRlIHRoaXM7CisgICAgfQorCisgICAg
UmVmUHRyPFBsdWdpblZpZXc+IG1fcGx1Z2luOworICAgIFRpbWVyPFBsdWdpbkRlbGF5ZWREZXN0
cm95ZXI+IG1fdGltZXI7Cit9OworCiB2b2lkIFBsdWdpblZpZXc6OnNldFBhcmVudChTY3JvbGxW
aWV3KiBwYXJlbnQpCiB7CiAgICAgV2lkZ2V0OjpzZXRQYXJlbnQocGFyZW50KTsKQEAgLTc1Miw2
ICs3NzMsOSBAQCB2b2lkIFBsdWdpblZpZXc6OnNldFBhcmVudChTY3JvbGxWaWV3KiBwYXJlbnQp
CiAgICAgaWYgKHBhcmVudCkKICAgICAgICAgaW5pdCgpOwogICAgIGVsc2UgeworICAgICAgICBp
ZiAobV9uZWVkc0RlbGF5ZWREZXN0cm95KQorICAgICAgICAgICAgUGx1Z2luRGVsYXllZERlc3Ry
b3llcjo6ZGVsYXlEZXN0cm95KHRoaXMpOworCiAgICAgICAgIGlmICghcGxhdGZvcm1QbHVnaW5X
aWRnZXQoKSkKICAgICAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMv
Q2hhbmdlTG9nIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCmluZGV4IDk0NTQ2MmMuLjdmOTM4NjUg
MTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZworKysgYi9XZWJLaXRUb29scy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMC0wMi0wNSAgSm9uIEhvbmV5Y3V0dCAgPGpob25l
eWN1dHRAYXBwbGUuY29tPgorCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83NDM2ODc1PiBDcmFz
aCBpbiBGbGFzaCB3aGVuIHZpc2l0aW5nCisgICAgICAgIGh0dHA6Ly93d3cuY2N0di5jb20vZGVm
YXVsdC5zaHRtbCAoV0VSIElEIDgxOTI5ODIwMCkgW3dhdHNvbiAyNTAyMjYwXQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUv
d2luL1Rlc3ROZXRzY2FwZVBsdWdpbi9tYWluLmNwcDoKKyAgICAgICAgKGV4ZWN1dGVTY3JpcHQp
OgorICAgICAgICBNb3ZlZCB0byBhbiBlYXJsaWVyIHBvaW50IGluIHRoZSBmaWxlLgorICAgICAg
ICAoTlBQX05ldyk6CisgICAgICAgIElmIHRoZSBwbHVnLWluIGhhcyBhbiBvbkRlc3Ryb3kgYXR0
cmlidXRlLCBzdG9yZSBpdHMgdmFsdWUuCisgICAgICAgIChOUFBfRGVzdHJveSk6CisgICAgICAg
IElmIHRoZSBwbHVnLWluIGhhcyBjb2RlIHRvIHJ1biBvbiBkZXN0cnVjdGlvbiwgcnVuIGl0IGFu
ZCBmcmVlIGl0LgorCiAyMDEwLTAxLTI4ICBKb24gSG9uZXljdXR0ICA8amhvbmV5Y3V0dEBhcHBs
ZS5jb20+CiAKICAgICAgICAgTVNBQTogQ3Jhc2ggd2hlbiBwb3N0aW5nIGEgbm90aWZpY2F0aW9u
IGZvciBhIGRldGFjaGVkIG9iamVjdApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRl
clRyZWUvd2luL1Rlc3ROZXRzY2FwZVBsdWdpbi9tYWluLmNwcCBiL1dlYktpdFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL3dpbi9UZXN0TmV0c2NhcGVQbHVnaW4vbWFpbi5jcHAKaW5kZXggODJiMWQ0ZC4u
NjU4MWIwNCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL1Rlc3RO
ZXRzY2FwZVBsdWdpbi9tYWluLmNwcAorKysgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS93
aW4vVGVzdE5ldHNjYXBlUGx1Z2luL21haW4uY3BwCkBAIC03MSw2ICs3MSwxOSBAQCBOUEVycm9y
IF9fc3RkY2FsbCBOUF9TaHV0ZG93bigpCiAgICAgcmV0dXJuIE5QRVJSX05PX0VSUk9SOwogfQog
CitzdGF0aWMgdm9pZCBleGVjdXRlU2NyaXB0KGNvbnN0IFBsdWdpbk9iamVjdCogb2JqLCBjb25z
dCBjaGFyKiBzY3JpcHQpCit7CisgICAgTlBPYmplY3QgKndpbmRvd1NjcmlwdE9iamVjdDsKKyAg
ICBicm93c2VyLT5nZXR2YWx1ZShvYmotPm5wcCwgTlBOVldpbmRvd05QT2JqZWN0LCAmd2luZG93
U2NyaXB0T2JqZWN0KTsKKworICAgIE5QU3RyaW5nIG5wU2NyaXB0OworICAgIG5wU2NyaXB0LlVU
RjhDaGFyYWN0ZXJzID0gc2NyaXB0OworICAgIG5wU2NyaXB0LlVURjhMZW5ndGggPSBzdHJsZW4o
c2NyaXB0KTsKKworICAgIE5QVmFyaWFudCBicm93c2VyUmVzdWx0OworICAgIGJyb3dzZXItPmV2
YWx1YXRlKG9iai0+bnBwLCB3aW5kb3dTY3JpcHRPYmplY3QsICZucFNjcmlwdCwgJmJyb3dzZXJS
ZXN1bHQpOworICAgIGJyb3dzZXItPnJlbGVhc2V2YXJpYW50dmFsdWUoJmJyb3dzZXJSZXN1bHQp
OworfQogCiBOUEVycm9yIE5QUF9OZXcoTlBNSU1FVHlwZSBwbHVnaW5UeXBlLCBOUFAgaW5zdGFu
Y2UsIHVpbnQxNiBtb2RlLCBpbnQxNiBhcmdjLCBjaGFyICphcmduW10sIGNoYXIgKmFyZ3ZbXSwg
TlBTYXZlZERhdGEgKnNhdmVkKQogewpAQCAtODQsNiArOTcsOCBAQCBOUEVycm9yIE5QUF9OZXco
TlBNSU1FVHlwZSBwbHVnaW5UeXBlLCBOUFAgaW5zdGFuY2UsIHVpbnQxNiBtb2RlLCBpbnQxNiBh
cmdjLCBjaAogICAgICAgICAgICAgICAgIG9iai0+b25TdHJlYW1EZXN0cm95ID0gX3N0cmR1cChh
cmd2W2ldKTsKICAgICAgICAgICAgIGVsc2UgaWYgKF9zdHJpY21wKGFyZ25baV0sICJvblVSTE5v
dGlmeSIpID09IDAgJiYgIW9iai0+b25VUkxOb3RpZnkpCiAgICAgICAgICAgICAgICAgb2JqLT5v
blVSTE5vdGlmeSA9IF9zdHJkdXAoYXJndltpXSk7CisgICAgICAgICAgICBlbHNlIGlmIChfc3Ry
aWNtcChhcmduW2ldLCAib25EZXN0cm95IikgPT0gMCAmJiAhb2JqLT5vbkRlc3Ryb3kpCisgICAg
ICAgICAgICAgICAgb2JqLT5vbkRlc3Ryb3kgPSBfc3RyZHVwKGFyZ3ZbaV0pOwogICAgICAgICAg
ICAgZWxzZSBpZiAoX3N0cmljbXAoYXJnbltpXSwgImxvZ1NyYyIpID09IDApIHsKICAgICAgICAg
ICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGFyZ2M7IGkrKykKICAgICAgICAgICAgICAgICAg
ICAgaWYgKF9zdHJpY21wKGFyZ25baV0sICJzcmMiKSA9PSAwKQpAQCAtMTEzLDYgKzEyOCwxMSBA
QCBOUEVycm9yIE5QUF9EZXN0cm95KE5QUCBpbnN0YW5jZSwgTlBTYXZlZERhdGEgKipzYXZlKQog
ICAgICAgICBpZiAob2JqLT5vblN0cmVhbURlc3Ryb3kpCiAgICAgICAgICAgICBmcmVlKG9iai0+
b25TdHJlYW1EZXN0cm95KTsKIAorICAgICAgICBpZiAob2JqLT5vbkRlc3Ryb3kpIHsKKyAgICAg
ICAgICAgIGV4ZWN1dGVTY3JpcHQob2JqLCBvYmotPm9uRGVzdHJveSk7CisgICAgICAgICAgICBm
cmVlKG9iai0+b25EZXN0cm95KTsKKyAgICAgICAgfQorCiAgICAgICAgIGlmIChvYmotPmxvZ0Rl
c3Ryb3kpCiAgICAgICAgICAgICBwcmludGYoIlBMVUdJTjogTlBQX0Rlc3Ryb3lcbiIpOwogCkBA
IC0xMzUsMjAgKzE1NSw2IEBAIE5QRXJyb3IgTlBQX1NldFdpbmRvdyhOUFAgaW5zdGFuY2UsIE5Q
V2luZG93ICp3aW5kb3cpCiAgICAgcmV0dXJuIE5QRVJSX05PX0VSUk9SOwogfQogCi1zdGF0aWMg
dm9pZCBleGVjdXRlU2NyaXB0KGNvbnN0IFBsdWdpbk9iamVjdCogb2JqLCBjb25zdCBjaGFyKiBz
Y3JpcHQpCi17Ci0gICAgTlBPYmplY3QgKndpbmRvd1NjcmlwdE9iamVjdDsKLSAgICBicm93c2Vy
LT5nZXR2YWx1ZShvYmotPm5wcCwgTlBOVldpbmRvd05QT2JqZWN0LCAmd2luZG93U2NyaXB0T2Jq
ZWN0KTsKLQotICAgIE5QU3RyaW5nIG5wU2NyaXB0OwotICAgIG5wU2NyaXB0LlVURjhDaGFyYWN0
ZXJzID0gc2NyaXB0OwotICAgIG5wU2NyaXB0LlVURjhMZW5ndGggPSBzdHJsZW4oc2NyaXB0KTsK
LQotICAgIE5QVmFyaWFudCBicm93c2VyUmVzdWx0OwotICAgIGJyb3dzZXItPmV2YWx1YXRlKG9i
ai0+bnBwLCB3aW5kb3dTY3JpcHRPYmplY3QsICZucFNjcmlwdCwgJmJyb3dzZXJSZXN1bHQpOwot
ICAgIGJyb3dzZXItPnJlbGVhc2V2YXJpYW50dmFsdWUoJmJyb3dzZXJSZXN1bHQpOwotfQotCiBO
UEVycm9yIE5QUF9OZXdTdHJlYW0oTlBQIGluc3RhbmNlLCBOUE1JTUVUeXBlIHR5cGUsIE5QU3Ry
ZWFtICpzdHJlYW0sIE5QQm9vbCBzZWVrYWJsZSwgdWludDE2ICpzdHlwZSkKIHsKICAgICBQbHVn
aW5PYmplY3QqIG9iaiA9IChQbHVnaW5PYmplY3QqKWluc3RhbmNlLT5wZGF0YTsKLS0gCjEuNi41
LjIuMTQzLmc4Y2M2MgoK
</data>
<flag name="commit-queue"
          id="30938"
          type_id="3"
          status="-"
          setter="jhoneycutt"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>48292</attachid>
            <date>2010-02-06 12:51:46 -0800</date>
            <delta_ts>2010-02-06 22:19:07 -0800</delta_ts>
            <desc>patch v2</desc>
            <filename>0001--rdar-problem-7436875-Crash-in-Flash-when-visitin.patch</filename>
            <type>text/plain</type>
            <size>31090</size>
            <attacher name="Jon Honeycutt">jhoneycutt</attacher>
            
              <data encoding="base64">RnJvbSA5MjM4OTZiY2UzMjVhOWZmNWZjNmFhY2Q1MmUxYjlmNmFhNmVjNzkxIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb24gSG9uZXljdXR0IDxqaG9uZXljdXR0QGFwcGxlLmNvbT4K
RGF0ZTogU2F0LCA2IEZlYiAyMDEwIDE0OjM5OjQ1IC0wNjAwClN1YmplY3Q6IFtQQVRDSF0gPHJk
YXI6Ly9wcm9ibGVtLzc0MzY4NzU+IENyYXNoIGluIEZsYXNoIHdoZW4gdmlzaXRpbmcKIGh0dHA6
Ly93d3cuY2N0di5jb20vZGVmYXVsdC5zaHRtbCAoV0VSIElEIDgxOTI5ODIwMCkgW3dhdHNvbiAy
NTAyMjYwXQoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpXZWJDb3JlOgoKVGVzdDogcGxh
dGZvcm0vd2luL3BsdWdpbnMvcGx1Z2luLWRlbGF5ZWQtZGVzdHJveS5odG1sCgoqIFdlYkNvcmUu
dmNwcm9qL1dlYkNvcmUudmNwcm9qOgpBZGQgbmV3IGZpbGVzIHRvIHByb2plY3QuCgoqIGJyaWRn
ZS9OUF9qc29iamVjdC5jcHA6CihfTlBOX0V2YWx1YXRlKToKQmVmb3JlIGV2YWx1YXRpbmcgdGhl
IHNjcmlwdCwgc2V0IHRoZSBwbHVnLWluIGFzIG5lZWRpbmcgYW4KYXN5bmNocm9ub3VzIGRlc3Ry
dWN0aW9uLiBBZnRlciwgdW5zZXQgaXQuCgoqIHBsdWdpbnMvUGx1Z2luRGVsYXllZERlc3RydWN0
aW9uLmNwcDogQWRkZWQuCihXZWJDb3JlOjpQbHVnaW5EZWxheWVkRGVzdHJ1Y3Rpb246OnJlZ2lz
dGVyUGx1Z2luVmlldyk6CkFkZCB0aGUgUGx1Z2luVmlldyB0byB0aGUgc2V0LgooV2ViQ29yZTo6
UGx1Z2luRGVsYXllZERlc3RydWN0aW9uOjp1bnJlZ2lzdGVyUGx1Z2luVmlldyk6ClJlbW92ZSB0
aGUgdmlldyBmcm9tIHRoZSBzZXQuCihXZWJDb3JlOjpQbHVnaW5EZWxheWVkRGVzdHJ1Y3Rpb246
OnNldE5lZWRzRGVsYXllZERlc3Ryb3kpOgpGaW5kIHRoZSB2aWV3IGluIHRoZSBzZXQuIElmIGl0
IG5lZWRzIGRlbGF5ZWQgZGVzdHJveSwgYW5kIHRoZSBlbnRyeQpjb3VudCBpcyAxLCBjYWxsIHRo
ZSB2aWV3J3Mgc2V0TmVlZHNEZWxheWVkRGVzdHJveS4gSWYgd2UncmUgYmFja2luZwpvdXQgb2Yg
dGhlIGZ1bmN0aW9uLCBhbmQgd2UgcmVhY2ggdGhlIGxhc3QgY2FsbCwgdW5zZXQgdGhlIHZpZXcg
YXMKbmVlZGluZyBkZWxheWVkIGRlc3RydWN0aW9uLgoKKiBwbHVnaW5zL1BsdWdpbkRlbGF5ZWRE
ZXN0cnVjdGlvbi5oOiBBZGRlZC4KCiogcGx1Z2lucy9QbHVnaW5WaWV3LmNwcDoKKFdlYkNvcmU6
OlBsdWdpblZpZXc6On5QbHVnaW5WaWV3KToKVW5yZWdpc3RlciB0aGUgdmlldy4KKFdlYkNvcmU6
OlBsdWdpblZpZXc6OnBlcmZvcm1SZXF1ZXN0KToKVGhlIHBhcmVudCBGcmFtZSBpcyBub3cgYSBS
ZWZQdHI7IHVzZSAuZ2V0KCkuCihXZWJDb3JlOjpQbHVnaW5WaWV3OjpzdGF0dXMpOgpEaXR0by4K
KFdlYkNvcmU6OlBsdWdpblZpZXc6OmRpZFJlY2VpdmVSZXNwb25zZSk6CkRpdHRvLgooV2ViQ29y
ZTo6UGx1Z2luVmlldzo6UGx1Z2luVmlldyk6CkluaXRpYWxpemUgbV9uZWVkc0RlbGF5ZWREZXN0
cm95LiBSZWdpc3RlciB0aGUgUGx1Z2luVmlldy4KCiogcGx1Z2lucy9QbHVnaW5WaWV3Lmg6CkFk
ZGVkIG1fbmVlZHNEZWxheWVkRGVzdHJveS4gTWFkZSBtX3BhcmVudEZyYW1lIGEgUmVmUHRyIHNv
IHRoYXQKdGhlIEZyYW1lIHJlbWFpbnMgdmFsaWQgaWYgd2UgYXJlIGRlc3Ryb3llZCBhc3luY2hy
b25vdXNseS4KKFdlYkNvcmU6OlBsdWdpblZpZXc6OnBhcmVudEZyYW1lKToKVXNlIC5nZXQoKS4K
KFdlYkNvcmU6OlBsdWdpblZpZXc6OnNldE5lZWRzRGVsYXllZERlc3Ryb3kpOgpTZXQgbV9uZWVk
c0RlbGF5ZWREZXN0cm95LgoKKiBwbHVnaW5zL3dpbi9QbHVnaW5WaWV3V2luLmNwcDoKKFdlYkNv
cmU6OlBsdWdpbkRlbGF5ZWREZXN0cm95ZXI6OmRlbGF5RGVzdHJveSk6CkNyZWF0ZSBhIG5ldyBQ
bHVnaW5EZWxheWVkRGVzdHJveWVyLgooV2ViQ29yZTo6UGx1Z2luRGVsYXllZERlc3Ryb3llcjo6
UGx1Z2luRGVsYXllZERlc3Ryb3llcik6ClN0YXJ0IGEgdGltZXIgdG8gZGVzdHJveSB0aGUgUGx1
Z2luVmlldy4KKFdlYkNvcmU6OlBsdWdpbkRlbGF5ZWREZXN0cm95ZXI6OmRlc3Ryb3lUaW1lckZp
cmVkKToKRGVsZXRlIHRoaXMsIGRlc3Ryb3lpbmcgYSByZWZlcmVuY2UgdG8gdGhlIFBsdWdpblZp
ZXcuCihXZWJDb3JlOjpQbHVnaW5WaWV3OjpzZXRQYXJlbnQpOgpJZiBtX25lZWRzRGVsYXllZERl
c3Ryb3kgaXMgc2V0LCBjYWxsClBsdWdpbkRlbGF5ZWREZXN0cm95ZXI6OmRlbGF5RGVzdHJveSgp
LgoKV2ViS2l0VG9vbHM6CgoqIER1bXBSZW5kZXJUcmVlL3dpbi9UZXN0TmV0c2NhcGVQbHVnaW4v
bWFpbi5jcHA6CihleGVjdXRlU2NyaXB0KToKTW92ZWQgdG8gYW4gZWFybGllciBwb2ludCBpbiB0
aGUgZmlsZS4KKE5QUF9OZXcpOgpJZiB0aGUgcGx1Zy1pbiBoYXMgYW4gb25EZXN0cm95IGF0dHJp
YnV0ZSwgc3RvcmUgaXRzIHZhbHVlLgooTlBQX0Rlc3Ryb3kpOgpJZiB0aGUgcGx1Zy1pbiBoYXMg
Y29kZSB0byBydW4gb24gZGVzdHJ1Y3Rpb24sIHJ1biBpdCBhbmQgZnJlZSBpdC4KCkxheW91dFRl
c3RzOgoKKiBwbGF0Zm9ybS93aW4vcGx1Z2lucy9wbHVnaW4tZGVsYXllZC1kZXN0cm95LWV4cGVj
dGVkLnR4dDogQWRkZWQuCiogcGxhdGZvcm0vd2luL3BsdWdpbnMvcGx1Z2luLWRlbGF5ZWQtZGVz
dHJveS5odG1sOiBBZGRlZC4KLS0tCiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB8ICAgMTAgKysrCiAuLi4vcGx1Z2lucy9wbHVnaW4tZGVsYXllZC1k
ZXN0cm95LWV4cGVjdGVkLnR4dCAgICB8ICAgIDMgKwogLi4uL3dpbi9wbHVnaW5zL3BsdWdpbi1k
ZWxheWVkLWRlc3Ryb3kuaHRtbCAgICAgICAgfCAgIDMxICsrKysrKysrKwogV2ViQ29yZS9DaGFu
Z2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDYxICsrKysrKysrKysr
KysrKysrKwogV2ViQ29yZS9HTlVtYWtlZmlsZS5hbSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfCAgICAyICsKIFdlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogICAgICAg
ICAgICAgIHwgICAxMCArKystCiBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiAgICAgICAgICB8ICAgIDggKysrCiBXZWJDb3JlL2JyaWRnZS9OUF9qc29iamVjdC5jcHAg
ICAgICAgICAgICAgICAgICAgICB8ICAgIDkgKystCiBXZWJDb3JlL3BsdWdpbnMvUGx1Z2luRGVs
YXllZERlc3RydWN0aW9uLmNwcCAgICAgICB8ICAgNjUgKysrKysrKysrKysrKysrKysrKysKIFdl
YkNvcmUvcGx1Z2lucy9QbHVnaW5EZWxheWVkRGVzdHJ1Y3Rpb24uaCAgICAgICAgIHwgICA0NiAr
KysrKysrKysrKysrKwogV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcuY3BwICAgICAgICAgICAg
ICAgICAgICAgfCAgIDE2ICsrKy0tCiBXZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5oICAgICAg
ICAgICAgICAgICAgICAgICB8ICAgIDggKystCiBXZWJDb3JlL3BsdWdpbnMvd2luL1BsdWdpblZp
ZXdXaW4uY3BwICAgICAgICAgICAgICB8ICAgMjQgKysrKysrKwogV2ViS2l0VG9vbHMvQ2hhbmdl
TG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE1ICsrKysrCiAuLi4vRHVtcFJl
bmRlclRyZWUvd2luL1Rlc3ROZXRzY2FwZVBsdWdpbi9tYWluLmNwcCB8ICAgMzQgKysrKysrLS0t
LQogMTUgZmlsZXMgY2hhbmdlZCwgMzE4IGluc2VydGlvbnMoKyksIDI0IGRlbGV0aW9ucygtKQog
Y3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9wbHVnaW5zL3BsdWdp
bi1kZWxheWVkLWRlc3Ryb3ktZXhwZWN0ZWQudHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0
VGVzdHMvcGxhdGZvcm0vd2luL3BsdWdpbnMvcGx1Z2luLWRlbGF5ZWQtZGVzdHJveS5odG1sCiBj
cmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9wbHVnaW5zL1BsdWdpbkRlbGF5ZWREZXN0cnVjdGlv
bi5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJDb3JlL3BsdWdpbnMvUGx1Z2luRGVsYXllZERl
c3RydWN0aW9uLmgKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggNWYyNzIzOS4uZmNiZmFkNiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEz
IEBACisyMDEwLTAyLTA1ICBKb24gSG9uZXljdXR0ICA8amhvbmV5Y3V0dEBhcHBsZS5jb20+CisK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc0MzY4NzU+IENyYXNoIGluIEZsYXNoIHdoZW4gdmlz
aXRpbmcKKyAgICAgICAgaHR0cDovL3d3dy5jY3R2LmNvbS9kZWZhdWx0LnNodG1sIChXRVIgSUQg
ODE5Mjk4MjAwKSBbd2F0c29uIDI1MDIyNjBdCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vcGx1Z2lucy9wbHVnaW4tZGVsYXll
ZC1kZXN0cm95LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vd2luL3Bs
dWdpbnMvcGx1Z2luLWRlbGF5ZWQtZGVzdHJveS5odG1sOiBBZGRlZC4KKwogMjAxMC0wMi0wNSAg
U2hpbmljaGlybyBIYW1hamkgIDxoYW1hamlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IEd1c3Rhdm8gTm9yb25oYSBTaWx2YS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL3dpbi9wbHVnaW5zL3BsdWdpbi1kZWxheWVkLWRlc3Ryb3ktZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL3BsdWdpbnMvcGx1Z2luLWRlbGF5ZWQtZGVzdHJveS1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjU0NzlmOQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9wbHVnaW5zL3BsdWdp
bi1kZWxheWVkLWRlc3Ryb3ktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorVGhlIHNob3Vs
ZCBiZSBwcmludGVkIGJlZm9yZSBkZXN0cm95LgorUGx1Zy1pbiBkZXN0cm95ZWQuCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9wbHVnaW5zL3BsdWdpbi1kZWxheWVkLWRl
c3Ryb3kuaHRtbCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9wbHVnaW5zL3BsdWdpbi1kZWxh
eWVkLWRlc3Ryb3kuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NGMz
ZDFmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL3BsdWdpbnMv
cGx1Z2luLWRlbGF5ZWQtZGVzdHJveS5odG1sCkBAIC0wLDAgKzEsMzEgQEAKKzxodG1sPgorPGJv
ZHk+CisgICAgPHByZSBpZD0iY29uc29sZSI+PC9wcmU+CisgICAgPGRpdiBpZD0ib3V0ZXIiPgor
ICAgICAgICA8ZW1iZWQgaWQ9InBsZyIgdHlwZT0iYXBwbGljYXRpb24veC13ZWJraXQtdGVzdC1u
ZXRzY2FwZSIgb25EZXN0cm95PSJwbHVnaW5EZXN0cm95ZWQoKSI+PC9lbWJlZD4KKyAgICA8L2Rp
dj4KKyAgICA8c2NyaXB0PgorICAgICAgICBmdW5jdGlvbiBsb2cobWVzc2FnZSkKKyAgICAgICAg
eworICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5hcHBlbmRD
aGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShtZXNzYWdlICsgIlxuIikpOworICAgICAgICB9
CisKKyAgICAgICAgZnVuY3Rpb24gcGx1Z2luRGVzdHJveWVkKCkKKyAgICAgICAgeworICAgICAg
ICAgICAgbG9nKCJQbHVnLWluIGRlc3Ryb3llZC4iKQorICAgICAgICAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
d2FpdFVudGlsRG9uZSgpOworICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFz
VGV4dCgpOworICAgICAgICB9CisKKyAgICAgICAgdmFyIHBsdWdpbiA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJwbGciKTsKKworICAgICAgICBwbHVnaW4udGVzdEV2YWx1YXRlKCJ3aW5kb3cu
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ291dGVyJykuaW5uZXJIVE1MID0gJyc7Iik7CisKKyAg
ICAgICAgbG9nKCJUaGUgc2hvdWxkIGJlIHByaW50ZWQgYmVmb3JlIGRlc3Ryb3kuIik7CisgICAg
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxv
ZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDhmMjA1MDkuLmJhZjg4NmIgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjQg
QEAKKzIwMTAtMDItMDUgIEpvbiBIb25leWN1dHQgIDxqaG9uZXljdXR0QGFwcGxlLmNvbT4KKwor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzQzNjg3NT4gQ3Jhc2ggaW4gRmxhc2ggd2hlbiB2aXNp
dGluZworICAgICAgICBodHRwOi8vd3d3LmNjdHYuY29tL2RlZmF1bHQuc2h0bWwgKFdFUiBJRCA4
MTkyOTgyMDApIFt3YXRzb24gMjUwMjI2MF0KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBUZXN0OiBwbGF0Zm9ybS93aW4vcGx1Z2lucy9wbHVnaW4tZGVs
YXllZC1kZXN0cm95Lmh0bWwKKworICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNw
cm9qOgorICAgICAgICBBZGQgbmV3IGZpbGVzIHRvIHByb2plY3QuCisKKyAgICAgICAgKiBicmlk
Z2UvTlBfanNvYmplY3QuY3BwOgorICAgICAgICAoX05QTl9FdmFsdWF0ZSk6CisgICAgICAgIEJl
Zm9yZSBldmFsdWF0aW5nIHRoZSBzY3JpcHQsIHNldCB0aGUgcGx1Zy1pbiBhcyBuZWVkaW5nIGFu
CisgICAgICAgIGFzeW5jaHJvbm91cyBkZXN0cnVjdGlvbi4gQWZ0ZXIsIHVuc2V0IGl0LgorCisg
ICAgICAgICogcGx1Z2lucy9QbHVnaW5EZWxheWVkRGVzdHJ1Y3Rpb24uY3BwOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlBsdWdpbkRlbGF5ZWREZXN0cnVjdGlvbjo6cmVnaXN0ZXJQbHVnaW5W
aWV3KToKKyAgICAgICAgQWRkIHRoZSBQbHVnaW5WaWV3IHRvIHRoZSBzZXQuCisgICAgICAgIChX
ZWJDb3JlOjpQbHVnaW5EZWxheWVkRGVzdHJ1Y3Rpb246OnVucmVnaXN0ZXJQbHVnaW5WaWV3KToK
KyAgICAgICAgUmVtb3ZlIHRoZSB2aWV3IGZyb20gdGhlIHNldC4KKyAgICAgICAgKFdlYkNvcmU6
OlBsdWdpbkRlbGF5ZWREZXN0cnVjdGlvbjo6c2V0TmVlZHNEZWxheWVkRGVzdHJveSk6CisgICAg
ICAgIEZpbmQgdGhlIHZpZXcgaW4gdGhlIHNldC4gSWYgaXQgbmVlZHMgZGVsYXllZCBkZXN0cm95
LCBhbmQgdGhlIGVudHJ5CisgICAgICAgIGNvdW50IGlzIDEsIGNhbGwgdGhlIHZpZXcncyBzZXRO
ZWVkc0RlbGF5ZWREZXN0cm95LiBJZiB3ZSdyZSBiYWNraW5nCisgICAgICAgIG91dCBvZiB0aGUg
ZnVuY3Rpb24sIGFuZCB3ZSByZWFjaCB0aGUgbGFzdCBjYWxsLCB1bnNldCB0aGUgdmlldyBhcwor
ICAgICAgICBuZWVkaW5nIGRlbGF5ZWQgZGVzdHJ1Y3Rpb24uCisKKyAgICAgICAgKiBwbHVnaW5z
L1BsdWdpbkRlbGF5ZWREZXN0cnVjdGlvbi5oOiBBZGRlZC4KKworICAgICAgICAqIHBsdWdpbnMv
UGx1Z2luVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3Ojp+UGx1Z2luVmll
dyk6CisgICAgICAgIFVucmVnaXN0ZXIgdGhlIHZpZXcuCisgICAgICAgIChXZWJDb3JlOjpQbHVn
aW5WaWV3OjpwZXJmb3JtUmVxdWVzdCk6CisgICAgICAgIFRoZSBwYXJlbnQgRnJhbWUgaXMgbm93
IGEgUmVmUHRyOyB1c2UgLmdldCgpLgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6c3Rh
dHVzKToKKyAgICAgICAgRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpkaWRS
ZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlBsdWdp
blZpZXc6OlBsdWdpblZpZXcpOgorICAgICAgICBJbml0aWFsaXplIG1fbmVlZHNEZWxheWVkRGVz
dHJveS4gUmVnaXN0ZXIgdGhlIFBsdWdpblZpZXcuCisKKyAgICAgICAgKiBwbHVnaW5zL1BsdWdp
blZpZXcuaDoKKyAgICAgICAgQWRkZWQgbV9uZWVkc0RlbGF5ZWREZXN0cm95LiBNYWRlIG1fcGFy
ZW50RnJhbWUgYSBSZWZQdHIgc28gdGhhdAorICAgICAgICB0aGUgRnJhbWUgcmVtYWlucyB2YWxp
ZCBpZiB3ZSBhcmUgZGVzdHJveWVkIGFzeW5jaHJvbm91c2x5LgorICAgICAgICAoV2ViQ29yZTo6
UGx1Z2luVmlldzo6cGFyZW50RnJhbWUpOgorICAgICAgICBVc2UgLmdldCgpLgorICAgICAgICAo
V2ViQ29yZTo6UGx1Z2luVmlldzo6c2V0TmVlZHNEZWxheWVkRGVzdHJveSk6CisgICAgICAgIFNl
dCBtX25lZWRzRGVsYXllZERlc3Ryb3kuCisKKyAgICAgICAgKiBwbHVnaW5zL3dpbi9QbHVnaW5W
aWV3V2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpbkRlbGF5ZWREZXN0cm95ZXI6OmRl
bGF5RGVzdHJveSk6CisgICAgICAgIENyZWF0ZSBhIG5ldyBQbHVnaW5EZWxheWVkRGVzdHJveWVy
LgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luRGVsYXllZERlc3Ryb3llcjo6UGx1Z2luRGVsYXll
ZERlc3Ryb3llcik6CisgICAgICAgIFN0YXJ0IGEgdGltZXIgdG8gZGVzdHJveSB0aGUgUGx1Z2lu
Vmlldy4KKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpbkRlbGF5ZWREZXN0cm95ZXI6OmRlc3Ryb3lU
aW1lckZpcmVkKToKKyAgICAgICAgRGVsZXRlIHRoaXMsIGRlc3Ryb3lpbmcgYSByZWZlcmVuY2Ug
dG8gdGhlIFBsdWdpblZpZXcuCisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpzZXRQYXJl
bnQpOgorICAgICAgICBJZiBtX25lZWRzRGVsYXllZERlc3Ryb3kgaXMgc2V0LCBjYWxsCisgICAg
ICAgIFBsdWdpbkRlbGF5ZWREZXN0cm95ZXI6OmRlbGF5RGVzdHJveSgpLgorCiAyMDEwLTAyLTA1
ICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgRGFuIEJlcm5zdGVpbi4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0gYi9X
ZWJDb3JlL0dOVW1ha2VmaWxlLmFtCmluZGV4IGNhZTEzZTAuLmNiYjBiOTcgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KKysrIGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQpAQCAt
MTcxOCw2ICsxNzE4LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlXZWJDb3JlL3BsdWdpbnMv
UGx1Z2luRGF0YWJhc2VDbGllbnQuaCBcCiAJV2ViQ29yZS9wbHVnaW5zL1BsdWdpbkRlYnVnLmNw
cCBcCiAJV2ViQ29yZS9wbHVnaW5zL1BsdWdpbkRlYnVnLmggXAorCVdlYkNvcmUvcGx1Z2lucy9Q
bHVnaW5EZWxheWVkRGVzdHJ1Y3Rpb24uY3BwIFwKKwlXZWJDb3JlL3BsdWdpbnMvUGx1Z2luRGVs
YXllZERlc3RydWN0aW9uLmggXAogCVdlYkNvcmUvcGx1Z2lucy9QbHVnaW5JbmZvU3RvcmUuY3Bw
IFwKIAlXZWJDb3JlL3BsdWdpbnMvUGx1Z2luSW5mb1N0b3JlLmggXAogCVdlYkNvcmUvcGx1Z2lu
cy9QbHVnaW5NYWluVGhyZWFkU2NoZWR1bGVyLmNwcCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJD
b3JlLnZjcHJvagppbmRleCA4YmNjYTgzLi44YTNlZjRkIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ov
V2ViQ29yZS52Y3Byb2oKQEAgLTEsNCArMSw0IEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29k
aW5nPSJ3aW5kb3dzLTEyNTEiPz4NCis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ3aW5k
b3dzLTEyNTIiPz4NCiA8VmlzdWFsU3R1ZGlvUHJvamVjdA0KIAlQcm9qZWN0VHlwZT0iVmlzdWFs
IEMrKyINCiAJVmVyc2lvbj0iOC4wMCINCkBAIC00MDY2MSw2ICs0MDY2MSwxNCBAQAogCQkJCT4N
CiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCisgCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGx1Z2luc1xQ
bHVnaW5EZWxheWVkRGVzdHJ1Y3Rpb24uY3BwIg0KKyAJCQkJPg0KKyAJCQk8L0ZpbGU+DQorIAkJ
CTxGaWxlDQorIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsdWdpbnNcUGx1Z2luRGVsYXllZERlc3Ry
dWN0aW9uLmgiDQorIAkJCQk+DQorIAkJCTwvRmlsZT4NCisgCQkJPEZpbGUNCiAJCQkJUmVsYXRp
dmVQYXRoPSIuLlxwbHVnaW5zXFBsdWdpbkluZm9TdG9yZS5jcHAiDQogCQkJCT4NCiAJCQk8L0Zp
bGU+DQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAyMDhm
MmIxLi4xMmJiNGI4IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtMTI2MSw2ICsxMjYxLDggQEAKIAkJNzU3OTNFRDMwRDBDRTg1QjAwN0ZDMEFDIC8qIERP
TU1lc3NhZ2VFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNzU3OTNFRDAwRDBDRTg1QjAwN0ZDMEFDIC8qIERPTU1lc3NhZ2VFdmVudC5oICovOyB9
OwogCQk3NTc5M0VENDBEMENFODVCMDA3RkMwQUMgLyogRE9NTWVzc2FnZUV2ZW50Lm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU3OTNFRDEwRDBDRTg1
QjAwN0ZDMEFDIC8qIERPTU1lc3NhZ2VFdmVudC5tbSAqLzsgfTsKIAkJNzU3OTNFRDUwRDBDRTg1
QjAwN0ZDMEFDIC8qIERPTU1lc3NhZ2VFdmVudEludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTc5M0VEMjBEMENFODVCMDA3RkMwQUMgLyog
RE9NTWVzc2FnZUV2ZW50SW50ZXJuYWwuaCAqLzsgfTsKKwkJNzY2MDE3QjIxMTFERjZCMDAwODhF
NEY3IC8qIFBsdWdpbkRlbGF5ZWREZXN0cnVjdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NjYwMTdCMDExMURGNkIwMDA4OEU0RjcgLyogUGx1
Z2luRGVsYXllZERlc3RydWN0aW9uLmNwcCAqLzsgfTsKKwkJNzY2MDE3QjMxMTFERjZCMDAwODhF
NEY3IC8qIFBsdWdpbkRlbGF5ZWREZXN0cnVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzY2MDE3QjExMTFERjZCMDAwODhFNEY3IC8qIFBsdWdp
bkRlbGF5ZWREZXN0cnVjdGlvbi5oICovOyB9OwogCQk3NjkzQkFEMjEwNkMyRENBMDA3QjA4MjMg
LyogSGFsdGFibGVQbHVnaW4uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDc2OTNCQUNFMTA2QzJEQ0EwMDdCMDgyMyAvKiBIYWx0YWJsZVBsdWdpbi5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTc2OTNCQUQz
MTA2QzJEQ0EwMDdCMDgyMyAvKiBQbHVnaW5IYWx0ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzY5M0JBQ0YxMDZDMkRDQTAwN0IwODIzIC8qIFBs
dWdpbkhhbHRlci5jcHAgKi87IH07CiAJCTc2OTNCQUQ0MTA2QzJEQ0EwMDdCMDgyMyAvKiBQbHVn
aW5IYWx0ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDc2OTNCQUQwMTA2QzJEQ0EwMDdCMDgyMyAvKiBQbHVnaW5IYWx0ZXIuaCAqLzsgfTsKQEAgLTY2
NjksNiArNjY3MSw4IEBACiAJCTc1NzkzRUQwMEQwQ0U4NUIwMDdGQzBBQyAvKiBET01NZXNzYWdl
RXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTU1lc3NhZ2VFdmVu
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3NTc5M0VEMTBEMENFODVCMDA3RkMw
QUMgLyogRE9NTWVzc2FnZUV2ZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IERPTU1lc3NhZ2VFdmVudC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNzU3OTNFRDIwRDBDRTg1QjAwN0ZDMEFDIC8qIERPTU1lc3NhZ2VFdmVudEludGVybmFsLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01NZXNzYWdlRXZlbnRJbnRlcm5h
bC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NjYwMTdCMDExMURGNkIwMDA4OEU0
RjcgLyogUGx1Z2luRGVsYXllZERlc3RydWN0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFBsdWdpbkRlbGF5ZWREZXN0cnVjdGlvbi5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTc2NjAxN0IxMTExREY2QjAwMDg4RTRGNyAvKiBQbHVnaW5EZWxh
eWVkRGVzdHJ1Y3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGx1Z2lu
RGVsYXllZERlc3RydWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc2OTNC
QUNFMTA2QzJEQ0EwMDdCMDgyMyAvKiBIYWx0YWJsZVBsdWdpbi5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBIYWx0YWJsZVBsdWdpbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk3NjkzQkFDRjEwNkMyRENBMDA3QjA4MjMgLyogUGx1Z2luSGFsdGVyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBsdWdpbkhhbHRlci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc2OTNCQUQwMTA2QzJEQ0EwMDdCMDgyMyAvKiBQbHVn
aW5IYWx0ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGx1Z2luSGFsdGVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMTIwOCw2ICsxMTIxMiw4IEBACiAJ
CQkJQTlDNkU0RjEwRDc0NUU0ODAwNjQ0MkU5IC8qIFBsdWdpbkRhdGEuY3BwICovLAogCQkJCUE5
QzZFNEYyMEQ3NDVFNDgwMDY0NDJFOSAvKiBQbHVnaW5EYXRhLmggKi8sCiAJCQkJQTlDNkU0RjUw
RDc0NUU2MTAwNjQ0MkU5IC8qIFBsdWdpbkRhdGFNYWMubW0gKi8sCisJCQkJNzY2MDE3QjAxMTFE
RjZCMDAwODhFNEY3IC8qIFBsdWdpbkRlbGF5ZWREZXN0cnVjdGlvbi5jcHAgKi8sCisJCQkJNzY2
MDE3QjExMTFERjZCMDAwODhFNEY3IC8qIFBsdWdpbkRlbGF5ZWREZXN0cnVjdGlvbi5oICovLAog
CQkJCTVEQ0Y4MzZDMEQ1OTE1OTgwMDk1M0JDNiAvKiBQbHVnaW5JbmZvU3RvcmUuaCAqLywKIAkJ
CQkxQURBMTQwRTBFMUFFNUQ5MDAwMjNFRTUgLyogUGx1Z2luTWFpblRocmVhZFNjaGVkdWxlci5j
cHAgKi8sCiAJCQkJMUFEQTE0MEYwRTFBRTVEOTAwMDIzRUU1IC8qIFBsdWdpbk1haW5UaHJlYWRT
Y2hlZHVsZXIuaCAqLywKQEAgLTE4NTA1LDYgKzE4NTExLDcgQEAKIAkJCQlCNzFGRTZERjExMDkx
Q0IzMDBEQUVGNzcgLyogUHJpbnRDb250ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQk5RjcyMzA0
RjExMTg0QjQxMDBBRDAxMjYgLyogU2NyaXB0UHJvZmlsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
OUY3MjMwNTExMTE4NEI0MTAwQUQwMTI2IC8qIFNjcmlwdFByb2ZpbGVyLmggaW4gSGVhZGVycyAq
LywKKwkJCQk3NjYwMTdCMzExMURGNkIwMDA4OEU0RjcgLyogUGx1Z2luRGVsYXllZERlc3RydWN0
aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rw
cm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTIwNjgzLDYgKzIwNjkwLDcgQEAKIAkJCQk4NEQwQzQw
NDExMTVGMUQ0MDAxOEFBMzQgLyogQWZmaW5lVHJhbnNmb3JtLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUI3NzZENDNEMTEwNDUyNzUwMEJFQjBFQyAvKiBQcmludENvbnRleHQuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJOUY3MjMwNTAxMTE4NEI0MTAwQUQwMTI2IC8qIFNjcmlwdFByb2ZpbGVyLmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCTc2NjAxN0IyMTExREY2QjAwMDg4RTRGNyAvKiBQbHVnaW5E
ZWxheWVkRGVzdHJ1Y3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZv
ckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2JyaWRnZS9OUF9qc29iamVjdC5jcHAgYi9XZWJDb3JlL2JyaWRnZS9OUF9qc29iamVjdC5jcHAK
aW5kZXggYTMwYjZkNy4uNjdlN2NmNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9icmlkZ2UvTlBfanNv
YmplY3QuY3BwCisrKyBiL1dlYkNvcmUvYnJpZGdlL05QX2pzb2JqZWN0LmNwcApAQCAtMzAsNiAr
MzAsNyBAQAogI2luY2x1ZGUgIk5QX2pzb2JqZWN0LmgiCiAKICNpbmNsdWRlICJQbGF0Zm9ybVN0
cmluZy5oIgorI2luY2x1ZGUgIlBsdWdpbkRlbGF5ZWREZXN0cnVjdGlvbi5oIgogI2luY2x1ZGUg
IlN0cmluZ1NvdXJjZVByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiY191dGlsaXR5LmgiCiAjaW5jbHVk
ZSAiY19pbnN0YW5jZS5oIgpAQCAtMTkwLDcgKzE5MSw3IEBAIGJvb2wgX05QTl9JbnZva2UoTlBQ
IG5wcCwgTlBPYmplY3QqIG8sIE5QSWRlbnRpZmllciBtZXRob2ROYW1lLCBjb25zdCBOUFZhcmlh
bnQqCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgX05QTl9FdmFsdWF0ZShOUFAsIE5QT2Jq
ZWN0KiBvLCBOUFN0cmluZyogcywgTlBWYXJpYW50KiB2YXJpYW50KQorYm9vbCBfTlBOX0V2YWx1
YXRlKE5QUCBpbnN0YW5jZSwgTlBPYmplY3QqIG8sIE5QU3RyaW5nKiBzLCBOUFZhcmlhbnQqIHZh
cmlhbnQpCiB7CiAgICAgaWYgKG8tPl9jbGFzcyA9PSBOUFNjcmlwdE9iamVjdENsYXNzKSB7CiAg
ICAgICAgIEphdmFTY3JpcHRPYmplY3QqIG9iaiA9IHJlaW50ZXJwcmV0X2Nhc3Q8SmF2YVNjcmlw
dE9iamVjdCo+KG8pOyAKQEAgLTE5OSw2ICsyMDAsOCBAQCBib29sIF9OUE5fRXZhbHVhdGUoTlBQ
LCBOUE9iamVjdCogbywgTlBTdHJpbmcqIHMsIE5QVmFyaWFudCogdmFyaWFudCkKICAgICAgICAg
aWYgKCFyb290T2JqZWN0IHx8ICFyb290T2JqZWN0LT5pc1ZhbGlkKCkpCiAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKKyAgICAgICAgUGx1Z2luRGVsYXllZERlc3RydWN0aW9uOjpzZXROZWVk
c0RlbGF5ZWREZXN0cm95KGluc3RhbmNlLCB0cnVlKTsKKwogICAgICAgICBFeGVjU3RhdGUqIGV4
ZWMgPSByb290T2JqZWN0LT5nbG9iYWxPYmplY3QoKS0+Z2xvYmFsRXhlYygpOwogICAgICAgICBK
U0xvY2sgbG9jayhTaWxlbmNlQXNzZXJ0aW9uc09ubHkpOwogICAgICAgICBTdHJpbmcgc2NyaXB0
U3RyaW5nID0gY29udmVydE5QU3RyaW5nVG9VVEYxNihzKTsKQEAgLTIwNyw3ICsyMTAsOSBAQCBi
b29sIF9OUE5fRXZhbHVhdGUoTlBQLCBOUE9iamVjdCogbywgTlBTdHJpbmcqIHMsIE5QVmFyaWFu
dCogdmFyaWFudCkKICAgICAgICAgQ29tcGxldGlvbiBjb21wbGV0aW9uID0gSlNDOjpldmFsdWF0
ZShnbG9iYWxPYmplY3QtPmdsb2JhbEV4ZWMoKSwgZ2xvYmFsT2JqZWN0LT5nbG9iYWxTY29wZUNo
YWluKCksIG1ha2VTb3VyY2Uoc2NyaXB0U3RyaW5nKSwgSlNDOjpKU1ZhbHVlKCkpOwogICAgICAg
ICBnbG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKS0+dGltZW91dENoZWNrZXIuc3RvcCgpOwogICAg
ICAgICBDb21wbFR5cGUgdHlwZSA9IGNvbXBsZXRpb24uY29tcGxUeXBlKCk7Ci0gICAgICAgIAor
CisgICAgICAgIFBsdWdpbkRlbGF5ZWREZXN0cnVjdGlvbjo6c2V0TmVlZHNEZWxheWVkRGVzdHJv
eShpbnN0YW5jZSwgZmFsc2UpOworCiAgICAgICAgIEpTVmFsdWUgcmVzdWx0OwogICAgICAgICBp
ZiAodHlwZSA9PSBOb3JtYWwpIHsKICAgICAgICAgICAgIHJlc3VsdCA9IGNvbXBsZXRpb24udmFs
dWUoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5EZWxheWVkRGVzdHJ1Y3Rp
b24uY3BwIGIvV2ViQ29yZS9wbHVnaW5zL1BsdWdpbkRlbGF5ZWREZXN0cnVjdGlvbi5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWYxZjlhMQotLS0gL2Rldi9udWxsCisr
KyBiL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5EZWxheWVkRGVzdHJ1Y3Rpb24uY3BwCkBAIC0wLDAg
KzEsNjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUgSW5jLiBBbGwgUmlnaHRz
IFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBsdWdpbkRlbGF5ZWREZXN0cnVjdGlvbi5o
IgorCisjaW5jbHVkZSAiUGx1Z2luVmlldy5oIgorCit1c2luZyBuYW1lc3BhY2Ugc3RkOworCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK3R5cGVkZWYgSGFzaE1hcDxOUFAsIHBhaXI8UGx1Z2luVmll
dyosIGludD4gPiBJbnN0YW5jZU1hcDsKKworc3RhdGljIEluc3RhbmNlTWFwIGluc3RhbmNlTWFw
KCkKK3sKKyAgICBzdGF0aWMgSW5zdGFuY2VNYXAmIG1hcCA9ICpuZXcgSW5zdGFuY2VNYXA7Cisg
ICAgcmV0dXJuIG1hcDsKK30KKwordm9pZCBQbHVnaW5EZWxheWVkRGVzdHJ1Y3Rpb246OnJlZ2lz
dGVyUGx1Z2luVmlldyhQbHVnaW5WaWV3JiB2aWV3KQoreworICAgIGluc3RhbmNlTWFwKCkuYWRk
KHZpZXcuaW5zdGFuY2UoKSwgbWFrZV9wYWlyKCZ2aWV3LCAwKSk7Cit9CisKK3ZvaWQgUGx1Z2lu
RGVsYXllZERlc3RydWN0aW9uOjp1bnJlZ2lzdGVyUGx1Z2luVmlldyhQbHVnaW5WaWV3JiB2aWV3
KQoreworICAgIGluc3RhbmNlTWFwKCkucmVtb3ZlKHZpZXcuaW5zdGFuY2UoKSk7Cit9CisKK3Zv
aWQgUGx1Z2luRGVsYXllZERlc3RydWN0aW9uOjpzZXROZWVkc0RlbGF5ZWREZXN0cm95KE5QUCBp
bnN0YW5jZSwgYm9vbCBuZWVkc0RlbGF5ZWREZXN0cm95KQoreworICAgIEluc3RhbmNlTWFwOjpp
dGVyYXRvciBpdCA9IGluc3RhbmNlTWFwKCkuZmluZChpbnN0YW5jZSk7CisgICAgaWYgKGl0ID09
IGluc3RhbmNlTWFwKCkuZW5kKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChuZWVkc0Rl
bGF5ZWREZXN0cm95ICYmICsrKGl0LT5zZWNvbmQuc2Vjb25kKSA9PSAxKQorICAgICAgICBpdC0+
c2Vjb25kLmZpcnN0LT5zZXROZWVkc0RlbGF5ZWREZXN0cm95KHRydWUpOworICAgIGVsc2UgaWYg
KCFuZWVkc0RlbGF5ZWREZXN0cm95ICYmIC0tKGl0LT5zZWNvbmQuc2Vjb25kKSA9PSAwKQorICAg
ICAgICBpdC0+c2Vjb25kLmZpcnN0LT5zZXROZWVkc0RlbGF5ZWREZXN0cm95KGZhbHNlKTsKK30K
KworfTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5EZWxheWVkRGVzdHJ1Y3Rp
b24uaCBiL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5EZWxheWVkRGVzdHJ1Y3Rpb24uaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wY2FmYjdmCi0tLSAvZGV2L251bGwKKysrIGIv
V2ViQ29yZS9wbHVnaW5zL1BsdWdpbkRlbGF5ZWREZXN0cnVjdGlvbi5oCkBAIC0wLDAgKzEsNDYg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRl
ZiBQbHVnaW5EZWxheWVkRGVzdHJ1Y3Rpb25faAorI2RlZmluZSBQbHVnaW5EZWxheWVkRGVzdHJ1
Y3Rpb25faAorCisjaW5jbHVkZSAibnBydW50aW1lX2ludGVybmFsLmgiCisjaW5jbHVkZSA8d3Rm
L0hhc2hNYXAuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBQbHVnaW5WaWV3Owor
CitjbGFzcyBQbHVnaW5EZWxheWVkRGVzdHJ1Y3Rpb24gOiBwdWJsaWMgTm9uY29weWFibGUgewor
cHVibGljOgorICAgIHN0YXRpYyB2b2lkIHJlZ2lzdGVyUGx1Z2luVmlldyhQbHVnaW5WaWV3Jik7
CisgICAgc3RhdGljIHZvaWQgdW5yZWdpc3RlclBsdWdpblZpZXcoUGx1Z2luVmlldyYpOworCisg
ICAgc3RhdGljIHZvaWQgc2V0TmVlZHNEZWxheWVkRGVzdHJveShOUFAsIGJvb2wpOworfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gUGx1Z2luRGVsYXllZERlc3RydWN0
aW9uX2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmNwcCBiL1dlYkNv
cmUvcGx1Z2lucy9QbHVnaW5WaWV3LmNwcAppbmRleCAzZmY0YzgyLi4xODFkMWU0IDEwMDY0NAot
LS0gYS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5jcHAKKysrIGIvV2ViQ29yZS9wbHVnaW5z
L1BsdWdpblZpZXcuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIK
ICNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKKyNpbmNs
dWRlICJGb2N1c0NvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgogI2luY2x1
ZGUgIkZyYW1lVHJlZS5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCkBAIC00NiwxMSArNDcsMTEgQEAK
ICNpbmNsdWRlICJNb3VzZUV2ZW50LmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNp
bmNsdWRlICJQYWdlLmgiCi0jaW5jbHVkZSAiRm9jdXNDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAi
UGxhdGZvcm1Nb3VzZUV2ZW50LmgiCiAjaWYgT1MoV0lORE9XUykgJiYgRU5BQkxFKE5FVFNDQVBF
X1BMVUdJTl9BUEkpCiAjaW5jbHVkZSAiUGx1Z2luTWVzc2FnZVRocm90dGxlcldpbi5oIgogI2Vu
ZGlmCisjaW5jbHVkZSAiUGx1Z2luRGVsYXllZERlc3RydWN0aW9uLmgiCiAjaW5jbHVkZSAiUGx1
Z2luUGFja2FnZS5oIgogI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgogI2luY2x1ZGUgIlNjcmlw
dENvbnRyb2xsZXIuaCIKQEAgLTI1OCw2ICsyNTksOCBAQCBQbHVnaW5WaWV3Ojp+UGx1Z2luVmll
dygpCiB7CiAgICAgTE9HKFBsdWdpbnMsICJQbHVnaW5WaWV3Ojp+UGx1Z2luVmlldygpIik7CiAK
KyAgICBQbHVnaW5EZWxheWVkRGVzdHJ1Y3Rpb246OnVucmVnaXN0ZXJQbHVnaW5WaWV3KCp0aGlz
KTsKKwogICAgIHJlbW92ZUZyb21VbnN0YXJ0ZWRMaXN0SWZOZWNlc3NhcnkoKTsKIAogICAgIHN0
b3AoKTsKQEAgLTQyMyw3ICs0MjYsNyBAQCB2b2lkIFBsdWdpblZpZXc6OnBlcmZvcm1SZXF1ZXN0
KFBsdWdpblJlcXVlc3QqIHJlcXVlc3QpCiAgICAgICAgIC8vIGlmIHRoaXMgaXMgbm90IGEgdGFy
Z2V0ZWQgcmVxdWVzdCwgY3JlYXRlIGEgc3RyZWFtIGZvciBpdC4gb3RoZXJ3aXNlLAogICAgICAg
ICAvLyBqdXN0IHBhc3MgaXQgb2ZmIHRvIHRoZSBsb2FkZXIKICAgICAgICAgaWYgKHRhcmdldEZy
YW1lTmFtZS5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgIFJlZlB0cjxQbHVnaW5TdHJlYW0+IHN0
cmVhbSA9IFBsdWdpblN0cmVhbTo6Y3JlYXRlKHRoaXMsIG1fcGFyZW50RnJhbWUsIHJlcXVlc3Qt
PmZyYW1lTG9hZFJlcXVlc3QoKS5yZXNvdXJjZVJlcXVlc3QoKSwgcmVxdWVzdC0+c2VuZE5vdGlm
aWNhdGlvbigpLCByZXF1ZXN0LT5ub3RpZnlEYXRhKCksIHBsdWdpbigpLT5wbHVnaW5GdW5jcygp
LCBpbnN0YW5jZSgpLCBtX3BsdWdpbi0+cXVpcmtzKCkpOworICAgICAgICAgICAgUmVmUHRyPFBs
dWdpblN0cmVhbT4gc3RyZWFtID0gUGx1Z2luU3RyZWFtOjpjcmVhdGUodGhpcywgbV9wYXJlbnRG
cmFtZS5nZXQoKSwgcmVxdWVzdC0+ZnJhbWVMb2FkUmVxdWVzdCgpLnJlc291cmNlUmVxdWVzdCgp
LCByZXF1ZXN0LT5zZW5kTm90aWZpY2F0aW9uKCksIHJlcXVlc3QtPm5vdGlmeURhdGEoKSwgcGx1
Z2luKCktPnBsdWdpbkZ1bmNzKCksIGluc3RhbmNlKCksIG1fcGx1Z2luLT5xdWlya3MoKSk7CiAg
ICAgICAgICAgICBtX3N0cmVhbXMuYWRkKHN0cmVhbSk7CiAgICAgICAgICAgICBzdHJlYW0tPnN0
YXJ0KCk7CiAgICAgICAgIH0gZWxzZSB7CkBAIC00NjEsNyArNDY0LDcgQEAgdm9pZCBQbHVnaW5W
aWV3OjpwZXJmb3JtUmVxdWVzdChQbHVnaW5SZXF1ZXN0KiByZXF1ZXN0KQogICAgICAgICBpZiAo
Z2V0U3RyaW5nKHBhcmVudEZyYW1lLT5zY3JpcHQoKSwgcmVzdWx0LCByZXN1bHRTdHJpbmcpKQog
ICAgICAgICAgICAgY3N0ciA9IHJlc3VsdFN0cmluZy51dGY4KCk7CiAKLSAgICAgICAgUmVmUHRy
PFBsdWdpblN0cmVhbT4gc3RyZWFtID0gUGx1Z2luU3RyZWFtOjpjcmVhdGUodGhpcywgbV9wYXJl
bnRGcmFtZSwgcmVxdWVzdC0+ZnJhbWVMb2FkUmVxdWVzdCgpLnJlc291cmNlUmVxdWVzdCgpLCBy
ZXF1ZXN0LT5zZW5kTm90aWZpY2F0aW9uKCksIHJlcXVlc3QtPm5vdGlmeURhdGEoKSwgcGx1Z2lu
KCktPnBsdWdpbkZ1bmNzKCksIGluc3RhbmNlKCksIG1fcGx1Z2luLT5xdWlya3MoKSk7CisgICAg
ICAgIFJlZlB0cjxQbHVnaW5TdHJlYW0+IHN0cmVhbSA9IFBsdWdpblN0cmVhbTo6Y3JlYXRlKHRo
aXMsIG1fcGFyZW50RnJhbWUuZ2V0KCksIHJlcXVlc3QtPmZyYW1lTG9hZFJlcXVlc3QoKS5yZXNv
dXJjZVJlcXVlc3QoKSwgcmVxdWVzdC0+c2VuZE5vdGlmaWNhdGlvbigpLCByZXF1ZXN0LT5ub3Rp
ZnlEYXRhKCksIHBsdWdpbigpLT5wbHVnaW5GdW5jcygpLCBpbnN0YW5jZSgpLCBtX3BsdWdpbi0+
cXVpcmtzKCkpOwogICAgICAgICBtX3N0cmVhbXMuYWRkKHN0cmVhbSk7CiAgICAgICAgIHN0cmVh
bS0+c2VuZEphdmFTY3JpcHRTdHJlYW0ocmVxdWVzdFVSTCwgY3N0cik7CiAgICAgfQpAQCAtNjAw
LDcgKzYwMyw3IEBAIE5QRXJyb3IgUGx1Z2luVmlldzo6ZGVzdHJveVN0cmVhbShOUFN0cmVhbSog
c3RyZWFtLCBOUFJlYXNvbiByZWFzb24pCiB2b2lkIFBsdWdpblZpZXc6OnN0YXR1cyhjb25zdCBj
aGFyKiBtZXNzYWdlKQogewogICAgIGlmIChQYWdlKiBwYWdlID0gbV9wYXJlbnRGcmFtZS0+cGFn
ZSgpKQotICAgICAgICBwYWdlLT5jaHJvbWUoKS0+c2V0U3RhdHVzYmFyVGV4dChtX3BhcmVudEZy
YW1lLCBTdHJpbmcobWVzc2FnZSkpOworICAgICAgICBwYWdlLT5jaHJvbWUoKS0+c2V0U3RhdHVz
YmFyVGV4dChtX3BhcmVudEZyYW1lLmdldCgpLCBTdHJpbmcobWVzc2FnZSkpOwogfQogCiBOUEVy
cm9yIFBsdWdpblZpZXc6OnNldFZhbHVlKE5QUFZhcmlhYmxlIHZhcmlhYmxlLCB2b2lkKiB2YWx1
ZSkKQEAgLTgzNSw2ICs4MzgsNyBAQCBQbHVnaW5WaWV3OjpQbHVnaW5WaWV3KEZyYW1lKiBwYXJl
bnRGcmFtZSwgY29uc3QgSW50U2l6ZSYgc2l6ZSwgUGx1Z2luUGFja2FnZSogcAogICAgICwgbV9p
c0phdmFTY3JpcHRQYXVzZWQoZmFsc2UpCiAgICAgLCBtX2lzSGFsdGVkKGZhbHNlKQogICAgICwg
bV9oYXNCZWVuSGFsdGVkKGZhbHNlKQorICAgICwgbV9uZWVkc0RlbGF5ZWREZXN0cm95KGZhbHNl
KQogewogICAgIGlmICghbV9wbHVnaW4pIHsKICAgICAgICAgbV9zdGF0dXMgPSBQbHVnaW5TdGF0
dXNDYW5Ob3RGaW5kUGx1Z2luOwpAQCAtODQ1LDYgKzg0OSw4IEBAIFBsdWdpblZpZXc6OlBsdWdp
blZpZXcoRnJhbWUqIHBhcmVudEZyYW1lLCBjb25zdCBJbnRTaXplJiBzaXplLCBQbHVnaW5QYWNr
YWdlKiBwCiAgICAgbV9pbnN0YW5jZS0+bmRhdGEgPSB0aGlzOwogICAgIG1faW5zdGFuY2UtPnBk
YXRhID0gMDsKIAorICAgIFBsdWdpbkRlbGF5ZWREZXN0cnVjdGlvbjo6cmVnaXN0ZXJQbHVnaW5W
aWV3KCp0aGlzKTsKKwogICAgIHNldFBhcmFtZXRlcnMocGFyYW1OYW1lcywgcGFyYW1WYWx1ZXMp
OwogCiAgICAgbWVtc2V0KCZtX25wV2luZG93LCAwLCBzaXplb2YobV9ucFdpbmRvdykpOwpAQCAt
ODcxLDcgKzg3Nyw3IEBAIHZvaWQgUGx1Z2luVmlldzo6ZGlkUmVjZWl2ZVJlc3BvbnNlKGNvbnN0
IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQogICAgIEFTU0VSVChtX2xvYWRNYW51YWxseSk7
CiAgICAgQVNTRVJUKCFtX21hbnVhbFN0cmVhbSk7CiAKLSAgICBtX21hbnVhbFN0cmVhbSA9IFBs
dWdpblN0cmVhbTo6Y3JlYXRlKHRoaXMsIG1fcGFyZW50RnJhbWUsIG1fcGFyZW50RnJhbWUtPmxv
YWRlcigpLT5hY3RpdmVEb2N1bWVudExvYWRlcigpLT5yZXF1ZXN0KCksIGZhbHNlLCAwLCBwbHVn
aW4oKS0+cGx1Z2luRnVuY3MoKSwgaW5zdGFuY2UoKSwgbV9wbHVnaW4tPnF1aXJrcygpKTsKKyAg
ICBtX21hbnVhbFN0cmVhbSA9IFBsdWdpblN0cmVhbTo6Y3JlYXRlKHRoaXMsIG1fcGFyZW50RnJh
bWUuZ2V0KCksIG1fcGFyZW50RnJhbWUtPmxvYWRlcigpLT5hY3RpdmVEb2N1bWVudExvYWRlcigp
LT5yZXF1ZXN0KCksIGZhbHNlLCAwLCBwbHVnaW4oKS0+cGx1Z2luRnVuY3MoKSwgaW5zdGFuY2Uo
KSwgbV9wbHVnaW4tPnF1aXJrcygpKTsKICAgICBtX21hbnVhbFN0cmVhbS0+c2V0TG9hZE1hbnVh
bGx5KHRydWUpOwogCiAgICAgbV9tYW51YWxTdHJlYW0tPmRpZFJlY2VpdmVSZXNwb25zZSgwLCBy
ZXNwb25zZSk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5oIGIvV2Vi
Q29yZS9wbHVnaW5zL1BsdWdpblZpZXcuaAppbmRleCBhYzYwZmQ0Li43YWYwZDBjIDEwMDY0NAot
LS0gYS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5oCisrKyBiL1dlYkNvcmUvcGx1Z2lucy9Q
bHVnaW5WaWV3LmgKQEAgLTE3OSw3ICsxNzksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAg
ICAgICAgdmlydHVhbCBib29sIGlzUGx1Z2luVmlldygpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0K
IAotICAgICAgICBGcmFtZSogcGFyZW50RnJhbWUoKSBjb25zdCB7IHJldHVybiBtX3BhcmVudEZy
YW1lOyB9CisgICAgICAgIEZyYW1lKiBwYXJlbnRGcmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGFy
ZW50RnJhbWUuZ2V0KCk7IH0KIAogICAgICAgICB2b2lkIGZvY3VzUGx1Z2luRWxlbWVudCgpOwog
CkBAIC0yMTMsNiArMjEzLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIGJvb2wg
c3RhcnQoKTsKIAorICAgICAgICB2b2lkIHNldE5lZWRzRGVsYXllZERlc3Ryb3koYm9vbCBiKSB7
IG1fbmVlZHNEZWxheWVkRGVzdHJveSA9IGI7IH0KKwogICAgIHByaXZhdGU6CiAgICAgICAgIFBs
dWdpblZpZXcoRnJhbWUqIHBhcmVudEZyYW1lLCBjb25zdCBJbnRTaXplJiwgUGx1Z2luUGFja2Fn
ZSosIEVsZW1lbnQqLCBjb25zdCBLVVJMJiwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhcmFtTmFt
ZXMsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwYXJhbVZhbHVlcywgY29uc3QgU3RyaW5nJiBtaW1l
VHlwZSwgYm9vbCBsb2FkTWFudWFsbHkpOwogCkBAIC0yMzgsNyArMjQwLDcgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogICAgICAgICBzdGF0aWMgQk9PTCBXSU5BUEkgaG9va2VkRW5kUGFpbnQoSFdO
RCwgY29uc3QgUEFJTlRTVFJVQ1QqKTsKICNlbmRpZgogCi0gICAgICAgIEZyYW1lKiBtX3BhcmVu
dEZyYW1lOworICAgICAgICBSZWZQdHI8RnJhbWU+IG1fcGFyZW50RnJhbWU7CiAgICAgICAgIFJl
ZlB0cjxQbHVnaW5QYWNrYWdlPiBtX3BsdWdpbjsKICAgICAgICAgRWxlbWVudCogbV9lbGVtZW50
OwogICAgICAgICBib29sIG1faXNTdGFydGVkOwpAQCAtMzYzLDYgKzM2NSw4IEBAIHByaXZhdGU6
CiAgICAgICAgIGJvb2wgbV9pc0hhbHRlZDsKICAgICAgICAgYm9vbCBtX2hhc0JlZW5IYWx0ZWQ7
CiAKKyAgICAgICAgYm9vbCBtX25lZWRzRGVsYXllZERlc3Ryb3k7CisKICAgICAgICAgc3RhdGlj
IFBsdWdpblZpZXcqIHNfY3VycmVudFBsdWdpblZpZXc7CiAgICAgfTsKIApkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9wbHVnaW5zL3dpbi9QbHVnaW5WaWV3V2luLmNwcCBiL1dlYkNvcmUvcGx1Z2lucy93
aW4vUGx1Z2luVmlld1dpbi5jcHAKaW5kZXggMmFkZTY2My4uMWExMWE2NyAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9wbHVnaW5zL3dpbi9QbHVnaW5WaWV3V2luLmNwcAorKysgYi9XZWJDb3JlL3BsdWdp
bnMvd2luL1BsdWdpblZpZXdXaW4uY3BwCkBAIC03MzYsNiArNzM2LDI3IEBAIHZvaWQgUGx1Z2lu
Vmlldzo6aGFuZGxlTW91c2VFdmVudChNb3VzZUV2ZW50KiBldmVudCkKICNlbmRpZgogfQogCitj
bGFzcyBQbHVnaW5EZWxheWVkRGVzdHJveWVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgdm9pZCBk
ZWxheURlc3Ryb3koUGFzc1JlZlB0cjxQbHVnaW5WaWV3PiBwbHVnaW4pIHsgbmV3IFBsdWdpbkRl
bGF5ZWREZXN0cm95ZXIocGx1Z2luKTsgfQorCitwcml2YXRlOgorICAgIFBsdWdpbkRlbGF5ZWRE
ZXN0cm95ZXIoUGFzc1JlZlB0cjxQbHVnaW5WaWV3PiBwbHVnaW4pCisgICAgICAgIDogbV9wbHVn
aW4ocGx1Z2luKQorICAgICAgICAsIG1fdGltZXIodGhpcywgJlBsdWdpbkRlbGF5ZWREZXN0cm95
ZXI6OmRlc3Ryb3lUaW1lckZpcmVkKQorICAgIHsKKyAgICAgICAgbV90aW1lci5zdGFydE9uZVNo
b3QoMCk7CisgICAgfQorCisgICAgdm9pZCBkZXN0cm95VGltZXJGaXJlZChUaW1lcjxQbHVnaW5E
ZWxheWVkRGVzdHJveWVyPiopCisgICAgeworICAgICAgICBkZWxldGUgdGhpczsKKyAgICB9CisK
KyAgICBSZWZQdHI8UGx1Z2luVmlldz4gbV9wbHVnaW47CisgICAgVGltZXI8UGx1Z2luRGVsYXll
ZERlc3Ryb3llcj4gbV90aW1lcjsKK307CisKIHZvaWQgUGx1Z2luVmlldzo6c2V0UGFyZW50KFNj
cm9sbFZpZXcqIHBhcmVudCkKIHsKICAgICBXaWRnZXQ6OnNldFBhcmVudChwYXJlbnQpOwpAQCAt
NzUyLDYgKzc3Myw5IEBAIHZvaWQgUGx1Z2luVmlldzo6c2V0UGFyZW50KFNjcm9sbFZpZXcqIHBh
cmVudCkKICAgICBpZiAocGFyZW50KQogICAgICAgICBpbml0KCk7CiAgICAgZWxzZSB7CisgICAg
ICAgIGlmIChtX25lZWRzRGVsYXllZERlc3Ryb3kpCisgICAgICAgICAgICBQbHVnaW5EZWxheWVk
RGVzdHJveWVyOjpkZWxheURlc3Ryb3kodGhpcyk7CisKICAgICAgICAgaWYgKCFwbGF0Zm9ybVBs
dWdpbldpZGdldCgpKQogICAgICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9XZWJLaXRU
b29scy9DaGFuZ2VMb2cgYi9XZWJLaXRUb29scy9DaGFuZ2VMb2cKaW5kZXggMDM1Mzg0Ni4uOTAx
ZDY4NiAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCisrKyBiL1dlYktpdFRvb2xz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEwLTAyLTA1ICBKb24gSG9uZXljdXR0ICA8
amhvbmV5Y3V0dEBhcHBsZS5jb20+CisKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc0MzY4NzU+
IENyYXNoIGluIEZsYXNoIHdoZW4gdmlzaXRpbmcKKyAgICAgICAgaHR0cDovL3d3dy5jY3R2LmNv
bS9kZWZhdWx0LnNodG1sIChXRVIgSUQgODE5Mjk4MjAwKSBbd2F0c29uIDI1MDIyNjBdCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBEdW1wUmVuZGVy
VHJlZS93aW4vVGVzdE5ldHNjYXBlUGx1Z2luL21haW4uY3BwOgorICAgICAgICAoZXhlY3V0ZVNj
cmlwdCk6CisgICAgICAgIE1vdmVkIHRvIGFuIGVhcmxpZXIgcG9pbnQgaW4gdGhlIGZpbGUuCisg
ICAgICAgIChOUFBfTmV3KToKKyAgICAgICAgSWYgdGhlIHBsdWctaW4gaGFzIGFuIG9uRGVzdHJv
eSBhdHRyaWJ1dGUsIHN0b3JlIGl0cyB2YWx1ZS4KKyAgICAgICAgKE5QUF9EZXN0cm95KToKKyAg
ICAgICAgSWYgdGhlIHBsdWctaW4gaGFzIGNvZGUgdG8gcnVuIG9uIGRlc3RydWN0aW9uLCBydW4g
aXQgYW5kIGZyZWUgaXQuCisKIDIwMTAtMDItMDUgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBh
cHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgT2xpdmVyIEh1bnQuCmRpZmYgLS1naXQg
YS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vVGVzdE5ldHNjYXBlUGx1Z2luL21haW4u
Y3BwIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL1Rlc3ROZXRzY2FwZVBsdWdpbi9t
YWluLmNwcAppbmRleCA4MmIxZDRkLi42NTgxYjA0IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9E
dW1wUmVuZGVyVHJlZS93aW4vVGVzdE5ldHNjYXBlUGx1Z2luL21haW4uY3BwCisrKyBiL1dlYktp
dFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9UZXN0TmV0c2NhcGVQbHVnaW4vbWFpbi5jcHAKQEAg
LTcxLDYgKzcxLDE5IEBAIE5QRXJyb3IgX19zdGRjYWxsIE5QX1NodXRkb3duKCkKICAgICByZXR1
cm4gTlBFUlJfTk9fRVJST1I7CiB9CiAKK3N0YXRpYyB2b2lkIGV4ZWN1dGVTY3JpcHQoY29uc3Qg
UGx1Z2luT2JqZWN0KiBvYmosIGNvbnN0IGNoYXIqIHNjcmlwdCkKK3sKKyAgICBOUE9iamVjdCAq
d2luZG93U2NyaXB0T2JqZWN0OworICAgIGJyb3dzZXItPmdldHZhbHVlKG9iai0+bnBwLCBOUE5W
V2luZG93TlBPYmplY3QsICZ3aW5kb3dTY3JpcHRPYmplY3QpOworCisgICAgTlBTdHJpbmcgbnBT
Y3JpcHQ7CisgICAgbnBTY3JpcHQuVVRGOENoYXJhY3RlcnMgPSBzY3JpcHQ7CisgICAgbnBTY3Jp
cHQuVVRGOExlbmd0aCA9IHN0cmxlbihzY3JpcHQpOworCisgICAgTlBWYXJpYW50IGJyb3dzZXJS
ZXN1bHQ7CisgICAgYnJvd3Nlci0+ZXZhbHVhdGUob2JqLT5ucHAsIHdpbmRvd1NjcmlwdE9iamVj
dCwgJm5wU2NyaXB0LCAmYnJvd3NlclJlc3VsdCk7CisgICAgYnJvd3Nlci0+cmVsZWFzZXZhcmlh
bnR2YWx1ZSgmYnJvd3NlclJlc3VsdCk7Cit9CiAKIE5QRXJyb3IgTlBQX05ldyhOUE1JTUVUeXBl
IHBsdWdpblR5cGUsIE5QUCBpbnN0YW5jZSwgdWludDE2IG1vZGUsIGludDE2IGFyZ2MsIGNoYXIg
KmFyZ25bXSwgY2hhciAqYXJndltdLCBOUFNhdmVkRGF0YSAqc2F2ZWQpCiB7CkBAIC04NCw2ICs5
Nyw4IEBAIE5QRXJyb3IgTlBQX05ldyhOUE1JTUVUeXBlIHBsdWdpblR5cGUsIE5QUCBpbnN0YW5j
ZSwgdWludDE2IG1vZGUsIGludDE2IGFyZ2MsIGNoCiAgICAgICAgICAgICAgICAgb2JqLT5vblN0
cmVhbURlc3Ryb3kgPSBfc3RyZHVwKGFyZ3ZbaV0pOwogICAgICAgICAgICAgZWxzZSBpZiAoX3N0
cmljbXAoYXJnbltpXSwgIm9uVVJMTm90aWZ5IikgPT0gMCAmJiAhb2JqLT5vblVSTE5vdGlmeSkK
ICAgICAgICAgICAgICAgICBvYmotPm9uVVJMTm90aWZ5ID0gX3N0cmR1cChhcmd2W2ldKTsKKyAg
ICAgICAgICAgIGVsc2UgaWYgKF9zdHJpY21wKGFyZ25baV0sICJvbkRlc3Ryb3kiKSA9PSAwICYm
ICFvYmotPm9uRGVzdHJveSkKKyAgICAgICAgICAgICAgICBvYmotPm9uRGVzdHJveSA9IF9zdHJk
dXAoYXJndltpXSk7CiAgICAgICAgICAgICBlbHNlIGlmIChfc3RyaWNtcChhcmduW2ldLCAibG9n
U3JjIikgPT0gMCkgewogICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgYXJnYzsg
aSsrKQogICAgICAgICAgICAgICAgICAgICBpZiAoX3N0cmljbXAoYXJnbltpXSwgInNyYyIpID09
IDApCkBAIC0xMTMsNiArMTI4LDExIEBAIE5QRXJyb3IgTlBQX0Rlc3Ryb3koTlBQIGluc3RhbmNl
LCBOUFNhdmVkRGF0YSAqKnNhdmUpCiAgICAgICAgIGlmIChvYmotPm9uU3RyZWFtRGVzdHJveSkK
ICAgICAgICAgICAgIGZyZWUob2JqLT5vblN0cmVhbURlc3Ryb3kpOwogCisgICAgICAgIGlmIChv
YmotPm9uRGVzdHJveSkgeworICAgICAgICAgICAgZXhlY3V0ZVNjcmlwdChvYmosIG9iai0+b25E
ZXN0cm95KTsKKyAgICAgICAgICAgIGZyZWUob2JqLT5vbkRlc3Ryb3kpOworICAgICAgICB9CisK
ICAgICAgICAgaWYgKG9iai0+bG9nRGVzdHJveSkKICAgICAgICAgICAgIHByaW50ZigiUExVR0lO
OiBOUFBfRGVzdHJveVxuIik7CiAKQEAgLTEzNSwyMCArMTU1LDYgQEAgTlBFcnJvciBOUFBfU2V0
V2luZG93KE5QUCBpbnN0YW5jZSwgTlBXaW5kb3cgKndpbmRvdykKICAgICByZXR1cm4gTlBFUlJf
Tk9fRVJST1I7CiB9CiAKLXN0YXRpYyB2b2lkIGV4ZWN1dGVTY3JpcHQoY29uc3QgUGx1Z2luT2Jq
ZWN0KiBvYmosIGNvbnN0IGNoYXIqIHNjcmlwdCkKLXsKLSAgICBOUE9iamVjdCAqd2luZG93U2Ny
aXB0T2JqZWN0OwotICAgIGJyb3dzZXItPmdldHZhbHVlKG9iai0+bnBwLCBOUE5WV2luZG93TlBP
YmplY3QsICZ3aW5kb3dTY3JpcHRPYmplY3QpOwotCi0gICAgTlBTdHJpbmcgbnBTY3JpcHQ7Ci0g
ICAgbnBTY3JpcHQuVVRGOENoYXJhY3RlcnMgPSBzY3JpcHQ7Ci0gICAgbnBTY3JpcHQuVVRGOExl
bmd0aCA9IHN0cmxlbihzY3JpcHQpOwotCi0gICAgTlBWYXJpYW50IGJyb3dzZXJSZXN1bHQ7Ci0g
ICAgYnJvd3Nlci0+ZXZhbHVhdGUob2JqLT5ucHAsIHdpbmRvd1NjcmlwdE9iamVjdCwgJm5wU2Ny
aXB0LCAmYnJvd3NlclJlc3VsdCk7Ci0gICAgYnJvd3Nlci0+cmVsZWFzZXZhcmlhbnR2YWx1ZSgm
YnJvd3NlclJlc3VsdCk7Ci19Ci0KIE5QRXJyb3IgTlBQX05ld1N0cmVhbShOUFAgaW5zdGFuY2Us
IE5QTUlNRVR5cGUgdHlwZSwgTlBTdHJlYW0gKnN0cmVhbSwgTlBCb29sIHNlZWthYmxlLCB1aW50
MTYgKnN0eXBlKQogewogICAgIFBsdWdpbk9iamVjdCogb2JqID0gKFBsdWdpbk9iamVjdCopaW5z
dGFuY2UtPnBkYXRhOwotLSAKMS42LjIKCg==
</data>
<flag name="commit-queue"
          id="30949"
          type_id="3"
          status="-"
          setter="jhoneycutt"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>48303</attachid>
            <date>2010-02-06 22:19:07 -0800</date>
            <delta_ts>2010-02-08 16:36:23 -0800</delta_ts>
            <desc>patch v3</desc>
            <filename>0001--rdar-problem-7436875-Crash-in-Flash-when-visitin.patch</filename>
            <type>text/plain</type>
            <size>34770</size>
            <attacher name="Jon Honeycutt">jhoneycutt</attacher>
            
              <data encoding="base64">RnJvbSBjYWZmYTJlM2JhNTliMDA4NDMzZTNiNjJmNGJkOWZiNTI1ZTI3OTAxIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb24gSG9uZXljdXR0IDxqaG9uZXljdXR0QGFwcGxlLmNvbT4K
RGF0ZTogU2F0LCA2IEZlYiAyMDEwIDE0OjM5OjQ1IC0wNjAwClN1YmplY3Q6IFtQQVRDSF0gPHJk
YXI6Ly9wcm9ibGVtLzc0MzY4NzU+IENyYXNoIGluIEZsYXNoIHdoZW4gdmlzaXRpbmcKIGh0dHA6
Ly93d3cuY2N0di5jb20vZGVmYXVsdC5zaHRtbCAoV0VSIElEIDgxOTI5ODIwMCkgW3dhdHNvbiAy
NTAyMjYwXQoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpXZWJDb3JlOgoKVGVzdDogcGxh
dGZvcm0vd2luL3BsdWdpbnMvcGx1Z2luLWRlbGF5ZWQtZGVzdHJveS5odG1sCgoqIFdlYkNvcmUu
cHJvOgpBZGQgbmV3IGZpbGVzIHRvIHByb2plY3QuCgoqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUu
dmNwcm9qOgpEaXR0by4KCiogYnJpZGdlL05QX2pzb2JqZWN0LmNwcDoKKF9OUE5fRXZhbHVhdGUp
OgpCZWZvcmUgZXZhbHVhdGluZyB0aGUgc2NyaXB0LCBzZXQgdGhlIHBsdWctaW4gYXMgbmVlZGlu
ZyBhbgphc3luY2hyb25vdXMgZGVzdHJ1Y3Rpb24uIEFmdGVyLCB1bnNldCBpdC4KCiogcGx1Z2lu
cy9QbHVnaW5EZWxheWVkRGVzdHJ1Y3Rpb24uY3BwOiBBZGRlZC4KKFdlYkNvcmU6OlBsdWdpbkRl
bGF5ZWREZXN0cnVjdGlvbjo6cmVnaXN0ZXJQbHVnaW5WaWV3KToKQWRkIHRoZSBQbHVnaW5WaWV3
IHRvIHRoZSBzZXQuCihXZWJDb3JlOjpQbHVnaW5EZWxheWVkRGVzdHJ1Y3Rpb246OnVucmVnaXN0
ZXJQbHVnaW5WaWV3KToKUmVtb3ZlIHRoZSB2aWV3IGZyb20gdGhlIHNldC4KKFdlYkNvcmU6OlBs
dWdpbkRlbGF5ZWREZXN0cnVjdGlvbjo6c2V0TmVlZHNEZWxheWVkRGVzdHJveSk6CkZpbmQgdGhl
IHZpZXcgaW4gdGhlIHNldC4gSWYgaXQgbmVlZHMgZGVsYXllZCBkZXN0cm95LCBhbmQgdGhlIGVu
dHJ5CmNvdW50IGlzIDEsIGNhbGwgdGhlIHZpZXcncyBzZXROZWVkc0RlbGF5ZWREZXN0cm95LiBJ
ZiB3ZSdyZSBiYWNraW5nCm91dCBvZiB0aGUgZnVuY3Rpb24sIGFuZCB3ZSByZWFjaCB0aGUgbGFz
dCBjYWxsLCB1bnNldCB0aGUgdmlldyBhcwpuZWVkaW5nIGRlbGF5ZWQgZGVzdHJ1Y3Rpb24uCgoq
IHBsdWdpbnMvUGx1Z2luRGVsYXllZERlc3RydWN0aW9uLmg6IEFkZGVkLgoKKiBwbHVnaW5zL1Bs
dWdpblZpZXcuY3BwOgooV2ViQ29yZTo6UGx1Z2luVmlldzo6flBsdWdpblZpZXcpOgpVbnJlZ2lz
dGVyIHRoZSB2aWV3LgooV2ViQ29yZTo6UGx1Z2luVmlldzo6cGVyZm9ybVJlcXVlc3QpOgpUaGUg
cGFyZW50IEZyYW1lIGlzIG5vdyBhIFJlZlB0cjsgdXNlIC5nZXQoKS4KKFdlYkNvcmU6OlBsdWdp
blZpZXc6OnN0YXR1cyk6CkRpdHRvLgooV2ViQ29yZTo6UGx1Z2luVmlldzo6ZGlkUmVjZWl2ZVJl
c3BvbnNlKToKRGl0dG8uCihXZWJDb3JlOjpQbHVnaW5WaWV3OjpQbHVnaW5WaWV3KToKSW5pdGlh
bGl6ZSBtX25lZWRzRGVsYXllZERlc3Ryb3kuIFJlZ2lzdGVyIHRoZSBQbHVnaW5WaWV3LgoKKiBw
bHVnaW5zL1BsdWdpblZpZXcuaDoKQWRkZWQgbV9uZWVkc0RlbGF5ZWREZXN0cm95LiBNYWRlIG1f
cGFyZW50RnJhbWUgYSBSZWZQdHIgc28gdGhhdAp0aGUgRnJhbWUgcmVtYWlucyB2YWxpZCBpZiB3
ZSBhcmUgZGVzdHJveWVkIGFzeW5jaHJvbm91c2x5LgooV2ViQ29yZTo6UGx1Z2luVmlldzo6cGFy
ZW50RnJhbWUpOgpVc2UgLmdldCgpLgooV2ViQ29yZTo6UGx1Z2luVmlldzo6c2V0TmVlZHNEZWxh
eWVkRGVzdHJveSk6ClNldCBtX25lZWRzRGVsYXllZERlc3Ryb3kuCgoqIHBsdWdpbnMvZ3RrL1Bs
dWdpblZpZXdHdGsuY3BwOgooV2ViQ29yZTo6UGx1Z2luVmlldzo6dXBkYXRlUGx1Z2luV2lkZ2V0
KToKVXNlIC5nZXQoKS4KKFdlYkNvcmU6OlBsdWdpblZpZXc6OmhhbmRsZUtleWJvYXJkRXZlbnQp
OgpVc2UgLmdldCgpLgooV2ViQ29yZTo6UGx1Z2luVmlldzo6aGFuZGxlTW91c2VFdmVudCk6ClVz
ZSAuZ2V0KCkuCgoqIHBsdWdpbnMvd2luL1BsdWdpblZpZXdXaW4uY3BwOgooV2ViQ29yZTo6UGx1
Z2luRGVsYXllZERlc3Ryb3llcjo6ZGVsYXlEZXN0cm95KToKQ3JlYXRlIGEgbmV3IFBsdWdpbkRl
bGF5ZWREZXN0cm95ZXIuCihXZWJDb3JlOjpQbHVnaW5EZWxheWVkRGVzdHJveWVyOjpQbHVnaW5E
ZWxheWVkRGVzdHJveWVyKToKU3RhcnQgYSB0aW1lciB0byBkZXN0cm95IHRoZSBQbHVnaW5WaWV3
LgooV2ViQ29yZTo6UGx1Z2luRGVsYXllZERlc3Ryb3llcjo6ZGVzdHJveVRpbWVyRmlyZWQpOgpE
ZWxldGUgdGhpcywgZGVzdHJveWluZyBhIHJlZmVyZW5jZSB0byB0aGUgUGx1Z2luVmlldy4KKFdl
YkNvcmU6OlBsdWdpblZpZXc6OnNldFBhcmVudCk6CklmIG1fbmVlZHNEZWxheWVkRGVzdHJveSBp
cyBzZXQsIGNhbGwKUGx1Z2luRGVsYXllZERlc3Ryb3llcjo6ZGVsYXlEZXN0cm95KCkuCgpXZWJL
aXRUb29sczoKCiogRHVtcFJlbmRlclRyZWUvd2luL1Rlc3ROZXRzY2FwZVBsdWdpbi9tYWluLmNw
cDoKKGV4ZWN1dGVTY3JpcHQpOgpNb3ZlZCB0byBhbiBlYXJsaWVyIHBvaW50IGluIHRoZSBmaWxl
LgooTlBQX05ldyk6CklmIHRoZSBwbHVnLWluIGhhcyBhbiBvbkRlc3Ryb3kgYXR0cmlidXRlLCBz
dG9yZSBpdHMgdmFsdWUuCihOUFBfRGVzdHJveSk6CklmIHRoZSBwbHVnLWluIGhhcyBjb2RlIHRv
IHJ1biBvbiBkZXN0cnVjdGlvbiwgcnVuIGl0IGFuZCBmcmVlIGl0LgoKTGF5b3V0VGVzdHM6Cgoq
IHBsYXRmb3JtL3dpbi9wbHVnaW5zL3BsdWdpbi1kZWxheWVkLWRlc3Ryb3ktZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKiBwbGF0Zm9ybS93aW4vcGx1Z2lucy9wbHVnaW4tZGVsYXllZC1kZXN0cm95Lmh0
bWw6IEFkZGVkLgotLS0KIExheW91dFRlc3RzL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHwgICAxMCArKysKIC4uLi9wbHVnaW5zL3BsdWdpbi1kZWxheWVkLWRlc3Ryb3kt
ZXhwZWN0ZWQudHh0ICAgIHwgICAgMyArCiAuLi4vd2luL3BsdWdpbnMvcGx1Z2luLWRlbGF5ZWQt
ZGVzdHJveS5odG1sICAgICAgICB8ICAgMzEgKysrKysrKysrCiBXZWJDb3JlL0NoYW5nZUxvZyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNzIgKysrKysrKysrKysrKysrKysr
KysKIFdlYkNvcmUvR05VbWFrZWZpbGUuYW0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg
ICAgMiArCiBXZWJDb3JlL1dlYkNvcmUucHJvICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB8ICAgIDIgKwogV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiAgICAgICAg
ICAgICAgfCAgIDEwICsrKy0KIFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qICAgICAgICAgIHwgICAgOCArKwogV2ViQ29yZS9icmlkZ2UvTlBfanNvYmplY3QuY3BwICAg
ICAgICAgICAgICAgICAgICAgfCAgICA5ICsrLQogV2ViQ29yZS9wbHVnaW5zL1BsdWdpbkRlbGF5
ZWREZXN0cnVjdGlvbi5jcHAgICAgICAgfCAgIDY1ICsrKysrKysrKysrKysrKysrKwogV2ViQ29y
ZS9wbHVnaW5zL1BsdWdpbkRlbGF5ZWREZXN0cnVjdGlvbi5oICAgICAgICAgfCAgIDQ2ICsrKysr
KysrKysrKysKIFdlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmNwcCAgICAgICAgICAgICAgICAg
ICAgIHwgICAxNiArKystLQogV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcuaCAgICAgICAgICAg
ICAgICAgICAgICAgfCAgICA4ICsrLQogV2ViQ29yZS9wbHVnaW5zL2d0ay9QbHVnaW5WaWV3R3Rr
LmNwcCAgICAgICAgICAgICAgfCAgIDEwICsrLS0KIFdlYkNvcmUvcGx1Z2lucy93aW4vUGx1Z2lu
Vmlld1dpbi5jcHAgICAgICAgICAgICAgIHwgICAyNCArKysrKysrCiBXZWJLaXRUb29scy9DaGFu
Z2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTUgKysrKwogLi4uL0R1bXBS
ZW5kZXJUcmVlL3dpbi9UZXN0TmV0c2NhcGVQbHVnaW4vbWFpbi5jcHAgfCAgIDM0ICsrKysrKy0t
LS0KIDE3IGZpbGVzIGNoYW5nZWQsIDMzNiBpbnNlcnRpb25zKCspLCAyOSBkZWxldGlvbnMoLSkK
IGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vcGx1Z2lucy9wbHVn
aW4tZGVsYXllZC1kZXN0cm95LWV4cGVjdGVkLnR4dAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91
dFRlc3RzL3BsYXRmb3JtL3dpbi9wbHVnaW5zL3BsdWdpbi1kZWxheWVkLWRlc3Ryb3kuaHRtbAog
Y3JlYXRlIG1vZGUgMTAwNjQ0IFdlYkNvcmUvcGx1Z2lucy9QbHVnaW5EZWxheWVkRGVzdHJ1Y3Rp
b24uY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9wbHVnaW5zL1BsdWdpbkRlbGF5ZWRE
ZXN0cnVjdGlvbi5oCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDVmMjcyMzkuLmZjYmZhZDYgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
MyBAQAorMjAxMC0wMi0wNSAgSm9uIEhvbmV5Y3V0dCAgPGpob25leWN1dHRAYXBwbGUuY29tPgor
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83NDM2ODc1PiBDcmFzaCBpbiBGbGFzaCB3aGVuIHZp
c2l0aW5nCisgICAgICAgIGh0dHA6Ly93d3cuY2N0di5jb20vZGVmYXVsdC5zaHRtbCAoV0VSIElE
IDgxOTI5ODIwMCkgW3dhdHNvbiAyNTAyMjYwXQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vd2luL3BsdWdpbnMvcGx1Z2luLWRlbGF5
ZWQtZGVzdHJveS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9w
bHVnaW5zL3BsdWdpbi1kZWxheWVkLWRlc3Ryb3kuaHRtbDogQWRkZWQuCisKIDIwMTAtMDItMDUg
IFNoaW5pY2hpcm8gSGFtYWppICA8aGFtYWppQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBHdXN0YXZvIE5vcm9uaGEgU2lsdmEuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS93aW4vcGx1Z2lucy9wbHVnaW4tZGVsYXllZC1kZXN0cm95LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9wbHVnaW5zL3BsdWdpbi1kZWxheWVkLWRlc3Ryb3kt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY1NDc5ZjkK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vcGx1Z2lucy9wbHVn
aW4tZGVsYXllZC1kZXN0cm95LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKK1RoZSBzaG91
bGQgYmUgcHJpbnRlZCBiZWZvcmUgZGVzdHJveS4KK1BsdWctaW4gZGVzdHJveWVkLgorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vcGx1Z2lucy9wbHVnaW4tZGVsYXllZC1k
ZXN0cm95Lmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vcGx1Z2lucy9wbHVnaW4tZGVs
YXllZC1kZXN0cm95Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzRj
M2QxZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9wbHVnaW5z
L3BsdWdpbi1kZWxheWVkLWRlc3Ryb3kuaHRtbApAQCAtMCwwICsxLDMxIEBACis8aHRtbD4KKzxi
b2R5PgorICAgIDxwcmUgaWQ9ImNvbnNvbGUiPjwvcHJlPgorICAgIDxkaXYgaWQ9Im91dGVyIj4K
KyAgICAgICAgPGVtYmVkIGlkPSJwbGciIHR5cGU9ImFwcGxpY2F0aW9uL3gtd2Via2l0LXRlc3Qt
bmV0c2NhcGUiIG9uRGVzdHJveT0icGx1Z2luRGVzdHJveWVkKCkiPjwvZW1iZWQ+CisgICAgPC9k
aXY+CisgICAgPHNjcmlwdD4KKyAgICAgICAgZnVuY3Rpb24gbG9nKG1lc3NhZ2UpCisgICAgICAg
IHsKKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuYXBwZW5k
Q2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobWVzc2FnZSArICJcbiIpKTsKKyAgICAgICAg
fQorCisgICAgICAgIGZ1bmN0aW9uIHBsdWdpbkRlc3Ryb3llZCgpCisgICAgICAgIHsKKyAgICAg
ICAgICAgIGxvZygiUGx1Zy1pbiBkZXN0cm95ZWQuIikKKyAgICAgICAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICh3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVy
LndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBB
c1RleHQoKTsKKyAgICAgICAgfQorCisgICAgICAgIHZhciBwbHVnaW4gPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgicGxnIik7CisKKyAgICAgICAgcGx1Z2luLnRlc3RFdmFsdWF0ZSgid2luZG93
LmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdvdXRlcicpLmlubmVySFRNTCA9ICcnOyIpOworCisg
ICAgICAgIGxvZygiVGhlIHNob3VsZCBiZSBwcmludGVkIGJlZm9yZSBkZXN0cm95LiIpOworICAg
IDwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VM
b2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA4ZjIwNTA5Li41OTZjODJjIDEwMDY0NAotLS0g
YS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc1
IEBACisyMDEwLTAyLTA1ICBKb24gSG9uZXljdXR0ICA8amhvbmV5Y3V0dEBhcHBsZS5jb20+CisK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc0MzY4NzU+IENyYXNoIGluIEZsYXNoIHdoZW4gdmlz
aXRpbmcKKyAgICAgICAgaHR0cDovL3d3dy5jY3R2LmNvbS9kZWZhdWx0LnNodG1sIChXRVIgSUQg
ODE5Mjk4MjAwKSBbd2F0c29uIDI1MDIyNjBdCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVGVzdDogcGxhdGZvcm0vd2luL3BsdWdpbnMvcGx1Z2luLWRl
bGF5ZWQtZGVzdHJveS5odG1sCisKKyAgICAgICAgKiBXZWJDb3JlLnBybzoKKyAgICAgICAgQWRk
IG5ldyBmaWxlcyB0byBwcm9qZWN0LgorCisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29y
ZS52Y3Byb2o6CisgICAgICAgIERpdHRvLgorCisgICAgICAgICogYnJpZGdlL05QX2pzb2JqZWN0
LmNwcDoKKyAgICAgICAgKF9OUE5fRXZhbHVhdGUpOgorICAgICAgICBCZWZvcmUgZXZhbHVhdGlu
ZyB0aGUgc2NyaXB0LCBzZXQgdGhlIHBsdWctaW4gYXMgbmVlZGluZyBhbgorICAgICAgICBhc3lu
Y2hyb25vdXMgZGVzdHJ1Y3Rpb24uIEFmdGVyLCB1bnNldCBpdC4KKworICAgICAgICAqIHBsdWdp
bnMvUGx1Z2luRGVsYXllZERlc3RydWN0aW9uLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpQbHVnaW5EZWxheWVkRGVzdHJ1Y3Rpb246OnJlZ2lzdGVyUGx1Z2luVmlldyk6CisgICAgICAg
IEFkZCB0aGUgUGx1Z2luVmlldyB0byB0aGUgc2V0LgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2lu
RGVsYXllZERlc3RydWN0aW9uOjp1bnJlZ2lzdGVyUGx1Z2luVmlldyk6CisgICAgICAgIFJlbW92
ZSB0aGUgdmlldyBmcm9tIHRoZSBzZXQuCisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5EZWxheWVk
RGVzdHJ1Y3Rpb246OnNldE5lZWRzRGVsYXllZERlc3Ryb3kpOgorICAgICAgICBGaW5kIHRoZSB2
aWV3IGluIHRoZSBzZXQuIElmIGl0IG5lZWRzIGRlbGF5ZWQgZGVzdHJveSwgYW5kIHRoZSBlbnRy
eQorICAgICAgICBjb3VudCBpcyAxLCBjYWxsIHRoZSB2aWV3J3Mgc2V0TmVlZHNEZWxheWVkRGVz
dHJveS4gSWYgd2UncmUgYmFja2luZworICAgICAgICBvdXQgb2YgdGhlIGZ1bmN0aW9uLCBhbmQg
d2UgcmVhY2ggdGhlIGxhc3QgY2FsbCwgdW5zZXQgdGhlIHZpZXcgYXMKKyAgICAgICAgbmVlZGlu
ZyBkZWxheWVkIGRlc3RydWN0aW9uLgorCisgICAgICAgICogcGx1Z2lucy9QbHVnaW5EZWxheWVk
RGVzdHJ1Y3Rpb24uaDogQWRkZWQuCisKKyAgICAgICAgKiBwbHVnaW5zL1BsdWdpblZpZXcuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6flBsdWdpblZpZXcpOgorICAgICAgICBV
bnJlZ2lzdGVyIHRoZSB2aWV3LgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6cGVyZm9y
bVJlcXVlc3QpOgorICAgICAgICBUaGUgcGFyZW50IEZyYW1lIGlzIG5vdyBhIFJlZlB0cjsgdXNl
IC5nZXQoKS4KKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OnN0YXR1cyk6CisgICAgICAg
IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6ZGlkUmVjZWl2ZVJlc3BvbnNl
KToKKyAgICAgICAgRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpQbHVnaW5W
aWV3KToKKyAgICAgICAgSW5pdGlhbGl6ZSBtX25lZWRzRGVsYXllZERlc3Ryb3kuIFJlZ2lzdGVy
IHRoZSBQbHVnaW5WaWV3LgorCisgICAgICAgICogcGx1Z2lucy9QbHVnaW5WaWV3Lmg6CisgICAg
ICAgIEFkZGVkIG1fbmVlZHNEZWxheWVkRGVzdHJveS4gTWFkZSBtX3BhcmVudEZyYW1lIGEgUmVm
UHRyIHNvIHRoYXQKKyAgICAgICAgdGhlIEZyYW1lIHJlbWFpbnMgdmFsaWQgaWYgd2UgYXJlIGRl
c3Ryb3llZCBhc3luY2hyb25vdXNseS4KKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OnBh
cmVudEZyYW1lKToKKyAgICAgICAgVXNlIC5nZXQoKS4KKyAgICAgICAgKFdlYkNvcmU6OlBsdWdp
blZpZXc6OnNldE5lZWRzRGVsYXllZERlc3Ryb3kpOgorICAgICAgICBTZXQgbV9uZWVkc0RlbGF5
ZWREZXN0cm95LgorCisgICAgICAgICogcGx1Z2lucy9ndGsvUGx1Z2luVmlld0d0ay5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3Ojp1cGRhdGVQbHVnaW5XaWRnZXQpOgorICAgICAg
ICBVc2UgLmdldCgpLgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6aGFuZGxlS2V5Ym9h
cmRFdmVudCk6CisgICAgICAgIFVzZSAuZ2V0KCkuCisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5W
aWV3OjpoYW5kbGVNb3VzZUV2ZW50KToKKyAgICAgICAgVXNlIC5nZXQoKS4KKworICAgICAgICAq
IHBsdWdpbnMvd2luL1BsdWdpblZpZXdXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2lu
RGVsYXllZERlc3Ryb3llcjo6ZGVsYXlEZXN0cm95KToKKyAgICAgICAgQ3JlYXRlIGEgbmV3IFBs
dWdpbkRlbGF5ZWREZXN0cm95ZXIuCisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5EZWxheWVkRGVz
dHJveWVyOjpQbHVnaW5EZWxheWVkRGVzdHJveWVyKToKKyAgICAgICAgU3RhcnQgYSB0aW1lciB0
byBkZXN0cm95IHRoZSBQbHVnaW5WaWV3LgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luRGVsYXll
ZERlc3Ryb3llcjo6ZGVzdHJveVRpbWVyRmlyZWQpOgorICAgICAgICBEZWxldGUgdGhpcywgZGVz
dHJveWluZyBhIHJlZmVyZW5jZSB0byB0aGUgUGx1Z2luVmlldy4KKyAgICAgICAgKFdlYkNvcmU6
OlBsdWdpblZpZXc6OnNldFBhcmVudCk6CisgICAgICAgIElmIG1fbmVlZHNEZWxheWVkRGVzdHJv
eSBpcyBzZXQsIGNhbGwKKyAgICAgICAgUGx1Z2luRGVsYXllZERlc3Ryb3llcjo6ZGVsYXlEZXN0
cm95KCkuCisKIDIwMTAtMDItMDUgIEdlb2ZmcmV5IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4K
IAogICAgICAgICBSZXZpZXdlZCBieSBEYW4gQmVybnN0ZWluLgpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5hbSBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KaW5kZXggY2FlMTNlMC4u
Y2JiMGI5NyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQorKysgYi9XZWJDb3Jl
L0dOVW1ha2VmaWxlLmFtCkBAIC0xNzE4LDYgKzE3MTgsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0g
XAogCVdlYkNvcmUvcGx1Z2lucy9QbHVnaW5EYXRhYmFzZUNsaWVudC5oIFwKIAlXZWJDb3JlL3Bs
dWdpbnMvUGx1Z2luRGVidWcuY3BwIFwKIAlXZWJDb3JlL3BsdWdpbnMvUGx1Z2luRGVidWcuaCBc
CisJV2ViQ29yZS9wbHVnaW5zL1BsdWdpbkRlbGF5ZWREZXN0cnVjdGlvbi5jcHAgXAorCVdlYkNv
cmUvcGx1Z2lucy9QbHVnaW5EZWxheWVkRGVzdHJ1Y3Rpb24uaCBcCiAJV2ViQ29yZS9wbHVnaW5z
L1BsdWdpbkluZm9TdG9yZS5jcHAgXAogCVdlYkNvcmUvcGx1Z2lucy9QbHVnaW5JbmZvU3RvcmUu
aCBcCiAJV2ViQ29yZS9wbHVnaW5zL1BsdWdpbk1haW5UaHJlYWRTY2hlZHVsZXIuY3BwIFwKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4
IDRkMmM1OTcuLmMyNzU0ZGEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIv
V2ViQ29yZS9XZWJDb3JlLnBybwpAQCAtNzYwLDYgKzc2MCw3IEBAIFNPVVJDRVMgKz0gXAogICAg
IHBsdWdpbnMvUGx1Z2luRGF0YS5jcHAgXAogICAgIHBsdWdpbnMvUGx1Z2luQXJyYXkuY3BwIFwK
ICAgICBwbHVnaW5zL1BsdWdpbi5jcHAgXAorICAgIHBsdWdpbnMvUGx1Z2luRGVsYXllZERlc3Ry
dWN0aW9uLmNwcCBcCiAgICAgcGx1Z2lucy9QbHVnaW5NYWluVGhyZWFkU2NoZWR1bGVyLmNwcCBc
CiAgICAgcGx1Z2lucy9NaW1lVHlwZS5jcHAgXAogICAgIHBsdWdpbnMvTWltZVR5cGVBcnJheS5j
cHAgXApAQCAtMTU4MSw2ICsxNTgyLDcgQEAgSEVBREVSUyArPSBcCiAgICAgcGx1Z2lucy9QbHVn
aW5EYXRhYmFzZS5oIFwKICAgICBwbHVnaW5zL1BsdWdpbkRhdGEuaCBcCiAgICAgcGx1Z2lucy9Q
bHVnaW5EZWJ1Zy5oIFwKKyAgICBwbHVnaW5zL1BsdWdpbkRlbGF5ZWREZXN0cnVjdGlvbi5oIFwK
ICAgICBwbHVnaW5zL1BsdWdpbi5oIFwKICAgICBwbHVnaW5zL1BsdWdpbkluZm9TdG9yZS5oIFwK
ICAgICBwbHVnaW5zL1BsdWdpbk1haW5UaHJlYWRTY2hlZHVsZXIuaCBcCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnZj
cHJvai9XZWJDb3JlLnZjcHJvagppbmRleCA4YmNjYTgzLi44YTNlZjRkIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1dlYkNvcmUvV2ViQ29y
ZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTEsNCArMSw0IEBACi08P3htbCB2ZXJzaW9uPSIx
LjAiIGVuY29kaW5nPSJ3aW5kb3dzLTEyNTEiPz4NCis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29k
aW5nPSJ3aW5kb3dzLTEyNTIiPz4NCiA8VmlzdWFsU3R1ZGlvUHJvamVjdA0KIAlQcm9qZWN0VHlw
ZT0iVmlzdWFsIEMrKyINCiAJVmVyc2lvbj0iOC4wMCINCkBAIC00MDY2MSw2ICs0MDY2MSwxNCBA
QAogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCisgCQkJCVJlbGF0aXZlUGF0aD0iLi5c
cGx1Z2luc1xQbHVnaW5EZWxheWVkRGVzdHJ1Y3Rpb24uY3BwIg0KKyAJCQkJPg0KKyAJCQk8L0Zp
bGU+DQorIAkJCTxGaWxlDQorIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsdWdpbnNcUGx1Z2luRGVs
YXllZERlc3RydWN0aW9uLmgiDQorIAkJCQk+DQorIAkJCTwvRmlsZT4NCisgCQkJPEZpbGUNCiAJ
CQkJUmVsYXRpdmVQYXRoPSIuLlxwbHVnaW5zXFBsdWdpbkluZm9TdG9yZS5jcHAiDQogCQkJCT4N
CiAJCQk8L0ZpbGU+DQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2ogYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCAyMDhmMmIxLi4xMmJiNGI4IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagpAQCAtMTI2MSw2ICsxMjYxLDggQEAKIAkJNzU3OTNFRDMwRDBDRTg1QjAwN0ZD
MEFDIC8qIERPTU1lc3NhZ2VFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNzU3OTNFRDAwRDBDRTg1QjAwN0ZDMEFDIC8qIERPTU1lc3NhZ2VFdmVu
dC5oICovOyB9OwogCQk3NTc5M0VENDBEMENFODVCMDA3RkMwQUMgLyogRE9NTWVzc2FnZUV2ZW50
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU3OTNF
RDEwRDBDRTg1QjAwN0ZDMEFDIC8qIERPTU1lc3NhZ2VFdmVudC5tbSAqLzsgfTsKIAkJNzU3OTNF
RDUwRDBDRTg1QjAwN0ZDMEFDIC8qIERPTU1lc3NhZ2VFdmVudEludGVybmFsLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTc5M0VEMjBEMENFODVCMDA3
RkMwQUMgLyogRE9NTWVzc2FnZUV2ZW50SW50ZXJuYWwuaCAqLzsgfTsKKwkJNzY2MDE3QjIxMTFE
RjZCMDAwODhFNEY3IC8qIFBsdWdpbkRlbGF5ZWREZXN0cnVjdGlvbi5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NjYwMTdCMDExMURGNkIwMDA4OEU0
RjcgLyogUGx1Z2luRGVsYXllZERlc3RydWN0aW9uLmNwcCAqLzsgfTsKKwkJNzY2MDE3QjMxMTFE
RjZCMDAwODhFNEY3IC8qIFBsdWdpbkRlbGF5ZWREZXN0cnVjdGlvbi5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzY2MDE3QjExMTFERjZCMDAwODhFNEY3
IC8qIFBsdWdpbkRlbGF5ZWREZXN0cnVjdGlvbi5oICovOyB9OwogCQk3NjkzQkFEMjEwNkMyRENB
MDA3QjA4MjMgLyogSGFsdGFibGVQbHVnaW4uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDc2OTNCQUNFMTA2QzJEQ0EwMDdCMDgyMyAvKiBIYWx0YWJsZVBs
dWdpbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTc2OTNCQUQzMTA2QzJEQ0EwMDdCMDgyMyAvKiBQbHVnaW5IYWx0ZXIuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzY5M0JBQ0YxMDZDMkRDQTAwN0Iw
ODIzIC8qIFBsdWdpbkhhbHRlci5jcHAgKi87IH07CiAJCTc2OTNCQUQ0MTA2QzJEQ0EwMDdCMDgy
MyAvKiBQbHVnaW5IYWx0ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDc2OTNCQUQwMTA2QzJEQ0EwMDdCMDgyMyAvKiBQbHVnaW5IYWx0ZXIuaCAqLzsg
fTsKQEAgLTY2NjksNiArNjY3MSw4IEBACiAJCTc1NzkzRUQwMEQwQ0U4NUIwMDdGQzBBQyAvKiBE
T01NZXNzYWdlRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTU1l
c3NhZ2VFdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3NTc5M0VEMTBEMENF
ODVCMDA3RkMwQUMgLyogRE9NTWVzc2FnZUV2ZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IERPTU1lc3NhZ2VFdmVudC5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNzU3OTNFRDIwRDBDRTg1QjAwN0ZDMEFDIC8qIERPTU1lc3NhZ2VFdmVudElu
dGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01NZXNzYWdlRXZl
bnRJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NjYwMTdCMDExMURG
NkIwMDA4OEU0RjcgLyogUGx1Z2luRGVsYXllZERlc3RydWN0aW9uLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBsdWdpbkRlbGF5ZWREZXN0cnVjdGlvbi5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTc2NjAxN0IxMTExREY2QjAwMDg4RTRGNyAvKiBQ
bHVnaW5EZWxheWVkRGVzdHJ1Y3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUGx1Z2luRGVsYXllZERlc3RydWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTc2OTNCQUNFMTA2QzJEQ0EwMDdCMDgyMyAvKiBIYWx0YWJsZVBsdWdpbi5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBIYWx0YWJsZVBsdWdpbi5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk3NjkzQkFDRjEwNkMyRENBMDA3QjA4MjMgLyogUGx1Z2luSGFsdGVy
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBsdWdpbkhhbHRlci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc2OTNCQUQwMTA2QzJEQ0EwMDdCMDgy
MyAvKiBQbHVnaW5IYWx0ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGx1
Z2luSGFsdGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMTIwOCw2ICsxMTIx
Miw4IEBACiAJCQkJQTlDNkU0RjEwRDc0NUU0ODAwNjQ0MkU5IC8qIFBsdWdpbkRhdGEuY3BwICov
LAogCQkJCUE5QzZFNEYyMEQ3NDVFNDgwMDY0NDJFOSAvKiBQbHVnaW5EYXRhLmggKi8sCiAJCQkJ
QTlDNkU0RjUwRDc0NUU2MTAwNjQ0MkU5IC8qIFBsdWdpbkRhdGFNYWMubW0gKi8sCisJCQkJNzY2
MDE3QjAxMTFERjZCMDAwODhFNEY3IC8qIFBsdWdpbkRlbGF5ZWREZXN0cnVjdGlvbi5jcHAgKi8s
CisJCQkJNzY2MDE3QjExMTFERjZCMDAwODhFNEY3IC8qIFBsdWdpbkRlbGF5ZWREZXN0cnVjdGlv
bi5oICovLAogCQkJCTVEQ0Y4MzZDMEQ1OTE1OTgwMDk1M0JDNiAvKiBQbHVnaW5JbmZvU3RvcmUu
aCAqLywKIAkJCQkxQURBMTQwRTBFMUFFNUQ5MDAwMjNFRTUgLyogUGx1Z2luTWFpblRocmVhZFNj
aGVkdWxlci5jcHAgKi8sCiAJCQkJMUFEQTE0MEYwRTFBRTVEOTAwMDIzRUU1IC8qIFBsdWdpbk1h
aW5UaHJlYWRTY2hlZHVsZXIuaCAqLywKQEAgLTE4NTA1LDYgKzE4NTExLDcgQEAKIAkJCQlCNzFG
RTZERjExMDkxQ0IzMDBEQUVGNzcgLyogUHJpbnRDb250ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJ
CQk5RjcyMzA0RjExMTg0QjQxMDBBRDAxMjYgLyogU2NyaXB0UHJvZmlsZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJOUY3MjMwNTExMTE4NEI0MTAwQUQwMTI2IC8qIFNjcmlwdFByb2ZpbGVyLmggaW4g
SGVhZGVycyAqLywKKwkJCQk3NjYwMTdCMzExMURGNkIwMDA4OEU0RjcgLyogUGx1Z2luRGVsYXll
ZERlc3RydWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95
bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTIwNjgzLDYgKzIwNjkwLDcgQEAKIAkJ
CQk4NEQwQzQwNDExMTVGMUQ0MDAxOEFBMzQgLyogQWZmaW5lVHJhbnNmb3JtLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUI3NzZENDNEMTEwNDUyNzUwMEJFQjBFQyAvKiBQcmludENvbnRleHQuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJOUY3MjMwNTAxMTE4NEI0MTAwQUQwMTI2IC8qIFNjcmlwdFBy
b2ZpbGVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTc2NjAxN0IyMTExREY2QjAwMDg4RTRGNyAv
KiBQbHVnaW5EZWxheWVkRGVzdHJ1Y3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJ
cnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQg
YS9XZWJDb3JlL2JyaWRnZS9OUF9qc29iamVjdC5jcHAgYi9XZWJDb3JlL2JyaWRnZS9OUF9qc29i
amVjdC5jcHAKaW5kZXggYTMwYjZkNy4uNjdlN2NmNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9icmlk
Z2UvTlBfanNvYmplY3QuY3BwCisrKyBiL1dlYkNvcmUvYnJpZGdlL05QX2pzb2JqZWN0LmNwcApA
QCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIk5QX2pzb2JqZWN0LmgiCiAKICNpbmNsdWRlICJQ
bGF0Zm9ybVN0cmluZy5oIgorI2luY2x1ZGUgIlBsdWdpbkRlbGF5ZWREZXN0cnVjdGlvbi5oIgog
I2luY2x1ZGUgIlN0cmluZ1NvdXJjZVByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiY191dGlsaXR5Lmgi
CiAjaW5jbHVkZSAiY19pbnN0YW5jZS5oIgpAQCAtMTkwLDcgKzE5MSw3IEBAIGJvb2wgX05QTl9J
bnZva2UoTlBQIG5wcCwgTlBPYmplY3QqIG8sIE5QSWRlbnRpZmllciBtZXRob2ROYW1lLCBjb25z
dCBOUFZhcmlhbnQqCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgX05QTl9FdmFsdWF0ZShO
UFAsIE5QT2JqZWN0KiBvLCBOUFN0cmluZyogcywgTlBWYXJpYW50KiB2YXJpYW50KQorYm9vbCBf
TlBOX0V2YWx1YXRlKE5QUCBpbnN0YW5jZSwgTlBPYmplY3QqIG8sIE5QU3RyaW5nKiBzLCBOUFZh
cmlhbnQqIHZhcmlhbnQpCiB7CiAgICAgaWYgKG8tPl9jbGFzcyA9PSBOUFNjcmlwdE9iamVjdENs
YXNzKSB7CiAgICAgICAgIEphdmFTY3JpcHRPYmplY3QqIG9iaiA9IHJlaW50ZXJwcmV0X2Nhc3Q8
SmF2YVNjcmlwdE9iamVjdCo+KG8pOyAKQEAgLTE5OSw2ICsyMDAsOCBAQCBib29sIF9OUE5fRXZh
bHVhdGUoTlBQLCBOUE9iamVjdCogbywgTlBTdHJpbmcqIHMsIE5QVmFyaWFudCogdmFyaWFudCkK
ICAgICAgICAgaWYgKCFyb290T2JqZWN0IHx8ICFyb290T2JqZWN0LT5pc1ZhbGlkKCkpCiAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyAgICAgICAgUGx1Z2luRGVsYXllZERlc3RydWN0aW9u
OjpzZXROZWVkc0RlbGF5ZWREZXN0cm95KGluc3RhbmNlLCB0cnVlKTsKKwogICAgICAgICBFeGVj
U3RhdGUqIGV4ZWMgPSByb290T2JqZWN0LT5nbG9iYWxPYmplY3QoKS0+Z2xvYmFsRXhlYygpOwog
ICAgICAgICBKU0xvY2sgbG9jayhTaWxlbmNlQXNzZXJ0aW9uc09ubHkpOwogICAgICAgICBTdHJp
bmcgc2NyaXB0U3RyaW5nID0gY29udmVydE5QU3RyaW5nVG9VVEYxNihzKTsKQEAgLTIwNyw3ICsy
MTAsOSBAQCBib29sIF9OUE5fRXZhbHVhdGUoTlBQLCBOUE9iamVjdCogbywgTlBTdHJpbmcqIHMs
IE5QVmFyaWFudCogdmFyaWFudCkKICAgICAgICAgQ29tcGxldGlvbiBjb21wbGV0aW9uID0gSlND
OjpldmFsdWF0ZShnbG9iYWxPYmplY3QtPmdsb2JhbEV4ZWMoKSwgZ2xvYmFsT2JqZWN0LT5nbG9i
YWxTY29wZUNoYWluKCksIG1ha2VTb3VyY2Uoc2NyaXB0U3RyaW5nKSwgSlNDOjpKU1ZhbHVlKCkp
OwogICAgICAgICBnbG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKS0+dGltZW91dENoZWNrZXIuc3Rv
cCgpOwogICAgICAgICBDb21wbFR5cGUgdHlwZSA9IGNvbXBsZXRpb24uY29tcGxUeXBlKCk7Ci0g
ICAgICAgIAorCisgICAgICAgIFBsdWdpbkRlbGF5ZWREZXN0cnVjdGlvbjo6c2V0TmVlZHNEZWxh
eWVkRGVzdHJveShpbnN0YW5jZSwgZmFsc2UpOworCiAgICAgICAgIEpTVmFsdWUgcmVzdWx0Owog
ICAgICAgICBpZiAodHlwZSA9PSBOb3JtYWwpIHsKICAgICAgICAgICAgIHJlc3VsdCA9IGNvbXBs
ZXRpb24udmFsdWUoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5EZWxheWVk
RGVzdHJ1Y3Rpb24uY3BwIGIvV2ViQ29yZS9wbHVnaW5zL1BsdWdpbkRlbGF5ZWREZXN0cnVjdGlv
bi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWYxZjlhMQotLS0gL2Rl
di9udWxsCisrKyBiL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5EZWxheWVkRGVzdHJ1Y3Rpb24uY3Bw
CkBAIC0wLDAgKzEsNjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUgSW5jLiBB
bGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4g
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBsdWdpbkRlbGF5ZWREZXN0
cnVjdGlvbi5oIgorCisjaW5jbHVkZSAiUGx1Z2luVmlldy5oIgorCit1c2luZyBuYW1lc3BhY2Ug
c3RkOworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3R5cGVkZWYgSGFzaE1hcDxOUFAsIHBhaXI8
UGx1Z2luVmlldyosIGludD4gPiBJbnN0YW5jZU1hcDsKKworc3RhdGljIEluc3RhbmNlTWFwIGlu
c3RhbmNlTWFwKCkKK3sKKyAgICBzdGF0aWMgSW5zdGFuY2VNYXAmIG1hcCA9ICpuZXcgSW5zdGFu
Y2VNYXA7CisgICAgcmV0dXJuIG1hcDsKK30KKwordm9pZCBQbHVnaW5EZWxheWVkRGVzdHJ1Y3Rp
b246OnJlZ2lzdGVyUGx1Z2luVmlldyhQbHVnaW5WaWV3JiB2aWV3KQoreworICAgIGluc3RhbmNl
TWFwKCkuYWRkKHZpZXcuaW5zdGFuY2UoKSwgbWFrZV9wYWlyKCZ2aWV3LCAwKSk7Cit9CisKK3Zv
aWQgUGx1Z2luRGVsYXllZERlc3RydWN0aW9uOjp1bnJlZ2lzdGVyUGx1Z2luVmlldyhQbHVnaW5W
aWV3JiB2aWV3KQoreworICAgIGluc3RhbmNlTWFwKCkucmVtb3ZlKHZpZXcuaW5zdGFuY2UoKSk7
Cit9CisKK3ZvaWQgUGx1Z2luRGVsYXllZERlc3RydWN0aW9uOjpzZXROZWVkc0RlbGF5ZWREZXN0
cm95KE5QUCBpbnN0YW5jZSwgYm9vbCBuZWVkc0RlbGF5ZWREZXN0cm95KQoreworICAgIEluc3Rh
bmNlTWFwOjppdGVyYXRvciBpdCA9IGluc3RhbmNlTWFwKCkuZmluZChpbnN0YW5jZSk7CisgICAg
aWYgKGl0ID09IGluc3RhbmNlTWFwKCkuZW5kKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGlm
IChuZWVkc0RlbGF5ZWREZXN0cm95ICYmICsrKGl0LT5zZWNvbmQuc2Vjb25kKSA9PSAxKQorICAg
ICAgICBpdC0+c2Vjb25kLmZpcnN0LT5zZXROZWVkc0RlbGF5ZWREZXN0cm95KHRydWUpOworICAg
IGVsc2UgaWYgKCFuZWVkc0RlbGF5ZWREZXN0cm95ICYmIC0tKGl0LT5zZWNvbmQuc2Vjb25kKSA9
PSAwKQorICAgICAgICBpdC0+c2Vjb25kLmZpcnN0LT5zZXROZWVkc0RlbGF5ZWREZXN0cm95KGZh
bHNlKTsKK30KKworfTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5EZWxheWVk
RGVzdHJ1Y3Rpb24uaCBiL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5EZWxheWVkRGVzdHJ1Y3Rpb24u
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wY2FmYjdmCi0tLSAvZGV2L251
bGwKKysrIGIvV2ViQ29yZS9wbHVnaW5zL1BsdWdpbkRlbGF5ZWREZXN0cnVjdGlvbi5oCkBAIC0w
LDAgKzEsNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgUmln
aHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8K
KworI2lmbmRlZiBQbHVnaW5EZWxheWVkRGVzdHJ1Y3Rpb25faAorI2RlZmluZSBQbHVnaW5EZWxh
eWVkRGVzdHJ1Y3Rpb25faAorCisjaW5jbHVkZSAibnBydW50aW1lX2ludGVybmFsLmgiCisjaW5j
bHVkZSA8d3RmL0hhc2hNYXAuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBQbHVn
aW5WaWV3OworCitjbGFzcyBQbHVnaW5EZWxheWVkRGVzdHJ1Y3Rpb24gOiBwdWJsaWMgTm9uY29w
eWFibGUgeworcHVibGljOgorICAgIHN0YXRpYyB2b2lkIHJlZ2lzdGVyUGx1Z2luVmlldyhQbHVn
aW5WaWV3Jik7CisgICAgc3RhdGljIHZvaWQgdW5yZWdpc3RlclBsdWdpblZpZXcoUGx1Z2luVmll
dyYpOworCisgICAgc3RhdGljIHZvaWQgc2V0TmVlZHNEZWxheWVkRGVzdHJveShOUFAsIGJvb2wp
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gUGx1Z2luRGVsYXll
ZERlc3RydWN0aW9uX2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmNw
cCBiL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmNwcAppbmRleCAzZmY0YzgyLi4xODFkMWU0
IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5jcHAKKysrIGIvV2ViQ29y
ZS9wbHVnaW5zL1BsdWdpblZpZXcuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiRG9j
dW1lbnQuaCIKICNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgogI2luY2x1ZGUgIkVsZW1lbnQu
aCIKKyNpbmNsdWRlICJGb2N1c0NvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5o
IgogI2luY2x1ZGUgIkZyYW1lVHJlZS5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCkBAIC00NiwxMSAr
NDcsMTEgQEAKICNpbmNsdWRlICJNb3VzZUV2ZW50LmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50
ZWQuaCIKICNpbmNsdWRlICJQYWdlLmgiCi0jaW5jbHVkZSAiRm9jdXNDb250cm9sbGVyLmgiCiAj
aW5jbHVkZSAiUGxhdGZvcm1Nb3VzZUV2ZW50LmgiCiAjaWYgT1MoV0lORE9XUykgJiYgRU5BQkxF
KE5FVFNDQVBFX1BMVUdJTl9BUEkpCiAjaW5jbHVkZSAiUGx1Z2luTWVzc2FnZVRocm90dGxlcldp
bi5oIgogI2VuZGlmCisjaW5jbHVkZSAiUGx1Z2luRGVsYXllZERlc3RydWN0aW9uLmgiCiAjaW5j
bHVkZSAiUGx1Z2luUGFja2FnZS5oIgogI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgogI2luY2x1
ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKQEAgLTI1OCw2ICsyNTksOCBAQCBQbHVnaW5WaWV3Ojp+
UGx1Z2luVmlldygpCiB7CiAgICAgTE9HKFBsdWdpbnMsICJQbHVnaW5WaWV3Ojp+UGx1Z2luVmll
dygpIik7CiAKKyAgICBQbHVnaW5EZWxheWVkRGVzdHJ1Y3Rpb246OnVucmVnaXN0ZXJQbHVnaW5W
aWV3KCp0aGlzKTsKKwogICAgIHJlbW92ZUZyb21VbnN0YXJ0ZWRMaXN0SWZOZWNlc3NhcnkoKTsK
IAogICAgIHN0b3AoKTsKQEAgLTQyMyw3ICs0MjYsNyBAQCB2b2lkIFBsdWdpblZpZXc6OnBlcmZv
cm1SZXF1ZXN0KFBsdWdpblJlcXVlc3QqIHJlcXVlc3QpCiAgICAgICAgIC8vIGlmIHRoaXMgaXMg
bm90IGEgdGFyZ2V0ZWQgcmVxdWVzdCwgY3JlYXRlIGEgc3RyZWFtIGZvciBpdC4gb3RoZXJ3aXNl
LAogICAgICAgICAvLyBqdXN0IHBhc3MgaXQgb2ZmIHRvIHRoZSBsb2FkZXIKICAgICAgICAgaWYg
KHRhcmdldEZyYW1lTmFtZS5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgIFJlZlB0cjxQbHVnaW5T
dHJlYW0+IHN0cmVhbSA9IFBsdWdpblN0cmVhbTo6Y3JlYXRlKHRoaXMsIG1fcGFyZW50RnJhbWUs
IHJlcXVlc3QtPmZyYW1lTG9hZFJlcXVlc3QoKS5yZXNvdXJjZVJlcXVlc3QoKSwgcmVxdWVzdC0+
c2VuZE5vdGlmaWNhdGlvbigpLCByZXF1ZXN0LT5ub3RpZnlEYXRhKCksIHBsdWdpbigpLT5wbHVn
aW5GdW5jcygpLCBpbnN0YW5jZSgpLCBtX3BsdWdpbi0+cXVpcmtzKCkpOworICAgICAgICAgICAg
UmVmUHRyPFBsdWdpblN0cmVhbT4gc3RyZWFtID0gUGx1Z2luU3RyZWFtOjpjcmVhdGUodGhpcywg
bV9wYXJlbnRGcmFtZS5nZXQoKSwgcmVxdWVzdC0+ZnJhbWVMb2FkUmVxdWVzdCgpLnJlc291cmNl
UmVxdWVzdCgpLCByZXF1ZXN0LT5zZW5kTm90aWZpY2F0aW9uKCksIHJlcXVlc3QtPm5vdGlmeURh
dGEoKSwgcGx1Z2luKCktPnBsdWdpbkZ1bmNzKCksIGluc3RhbmNlKCksIG1fcGx1Z2luLT5xdWly
a3MoKSk7CiAgICAgICAgICAgICBtX3N0cmVhbXMuYWRkKHN0cmVhbSk7CiAgICAgICAgICAgICBz
dHJlYW0tPnN0YXJ0KCk7CiAgICAgICAgIH0gZWxzZSB7CkBAIC00NjEsNyArNDY0LDcgQEAgdm9p
ZCBQbHVnaW5WaWV3OjpwZXJmb3JtUmVxdWVzdChQbHVnaW5SZXF1ZXN0KiByZXF1ZXN0KQogICAg
ICAgICBpZiAoZ2V0U3RyaW5nKHBhcmVudEZyYW1lLT5zY3JpcHQoKSwgcmVzdWx0LCByZXN1bHRT
dHJpbmcpKQogICAgICAgICAgICAgY3N0ciA9IHJlc3VsdFN0cmluZy51dGY4KCk7CiAKLSAgICAg
ICAgUmVmUHRyPFBsdWdpblN0cmVhbT4gc3RyZWFtID0gUGx1Z2luU3RyZWFtOjpjcmVhdGUodGhp
cywgbV9wYXJlbnRGcmFtZSwgcmVxdWVzdC0+ZnJhbWVMb2FkUmVxdWVzdCgpLnJlc291cmNlUmVx
dWVzdCgpLCByZXF1ZXN0LT5zZW5kTm90aWZpY2F0aW9uKCksIHJlcXVlc3QtPm5vdGlmeURhdGEo
KSwgcGx1Z2luKCktPnBsdWdpbkZ1bmNzKCksIGluc3RhbmNlKCksIG1fcGx1Z2luLT5xdWlya3Mo
KSk7CisgICAgICAgIFJlZlB0cjxQbHVnaW5TdHJlYW0+IHN0cmVhbSA9IFBsdWdpblN0cmVhbTo6
Y3JlYXRlKHRoaXMsIG1fcGFyZW50RnJhbWUuZ2V0KCksIHJlcXVlc3QtPmZyYW1lTG9hZFJlcXVl
c3QoKS5yZXNvdXJjZVJlcXVlc3QoKSwgcmVxdWVzdC0+c2VuZE5vdGlmaWNhdGlvbigpLCByZXF1
ZXN0LT5ub3RpZnlEYXRhKCksIHBsdWdpbigpLT5wbHVnaW5GdW5jcygpLCBpbnN0YW5jZSgpLCBt
X3BsdWdpbi0+cXVpcmtzKCkpOwogICAgICAgICBtX3N0cmVhbXMuYWRkKHN0cmVhbSk7CiAgICAg
ICAgIHN0cmVhbS0+c2VuZEphdmFTY3JpcHRTdHJlYW0ocmVxdWVzdFVSTCwgY3N0cik7CiAgICAg
fQpAQCAtNjAwLDcgKzYwMyw3IEBAIE5QRXJyb3IgUGx1Z2luVmlldzo6ZGVzdHJveVN0cmVhbShO
UFN0cmVhbSogc3RyZWFtLCBOUFJlYXNvbiByZWFzb24pCiB2b2lkIFBsdWdpblZpZXc6OnN0YXR1
cyhjb25zdCBjaGFyKiBtZXNzYWdlKQogewogICAgIGlmIChQYWdlKiBwYWdlID0gbV9wYXJlbnRG
cmFtZS0+cGFnZSgpKQotICAgICAgICBwYWdlLT5jaHJvbWUoKS0+c2V0U3RhdHVzYmFyVGV4dCht
X3BhcmVudEZyYW1lLCBTdHJpbmcobWVzc2FnZSkpOworICAgICAgICBwYWdlLT5jaHJvbWUoKS0+
c2V0U3RhdHVzYmFyVGV4dChtX3BhcmVudEZyYW1lLmdldCgpLCBTdHJpbmcobWVzc2FnZSkpOwog
fQogCiBOUEVycm9yIFBsdWdpblZpZXc6OnNldFZhbHVlKE5QUFZhcmlhYmxlIHZhcmlhYmxlLCB2
b2lkKiB2YWx1ZSkKQEAgLTgzNSw2ICs4MzgsNyBAQCBQbHVnaW5WaWV3OjpQbHVnaW5WaWV3KEZy
YW1lKiBwYXJlbnRGcmFtZSwgY29uc3QgSW50U2l6ZSYgc2l6ZSwgUGx1Z2luUGFja2FnZSogcAog
ICAgICwgbV9pc0phdmFTY3JpcHRQYXVzZWQoZmFsc2UpCiAgICAgLCBtX2lzSGFsdGVkKGZhbHNl
KQogICAgICwgbV9oYXNCZWVuSGFsdGVkKGZhbHNlKQorICAgICwgbV9uZWVkc0RlbGF5ZWREZXN0
cm95KGZhbHNlKQogewogICAgIGlmICghbV9wbHVnaW4pIHsKICAgICAgICAgbV9zdGF0dXMgPSBQ
bHVnaW5TdGF0dXNDYW5Ob3RGaW5kUGx1Z2luOwpAQCAtODQ1LDYgKzg0OSw4IEBAIFBsdWdpblZp
ZXc6OlBsdWdpblZpZXcoRnJhbWUqIHBhcmVudEZyYW1lLCBjb25zdCBJbnRTaXplJiBzaXplLCBQ
bHVnaW5QYWNrYWdlKiBwCiAgICAgbV9pbnN0YW5jZS0+bmRhdGEgPSB0aGlzOwogICAgIG1faW5z
dGFuY2UtPnBkYXRhID0gMDsKIAorICAgIFBsdWdpbkRlbGF5ZWREZXN0cnVjdGlvbjo6cmVnaXN0
ZXJQbHVnaW5WaWV3KCp0aGlzKTsKKwogICAgIHNldFBhcmFtZXRlcnMocGFyYW1OYW1lcywgcGFy
YW1WYWx1ZXMpOwogCiAgICAgbWVtc2V0KCZtX25wV2luZG93LCAwLCBzaXplb2YobV9ucFdpbmRv
dykpOwpAQCAtODcxLDcgKzg3Nyw3IEBAIHZvaWQgUGx1Z2luVmlldzo6ZGlkUmVjZWl2ZVJlc3Bv
bnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQogICAgIEFTU0VSVChtX2xvYWRN
YW51YWxseSk7CiAgICAgQVNTRVJUKCFtX21hbnVhbFN0cmVhbSk7CiAKLSAgICBtX21hbnVhbFN0
cmVhbSA9IFBsdWdpblN0cmVhbTo6Y3JlYXRlKHRoaXMsIG1fcGFyZW50RnJhbWUsIG1fcGFyZW50
RnJhbWUtPmxvYWRlcigpLT5hY3RpdmVEb2N1bWVudExvYWRlcigpLT5yZXF1ZXN0KCksIGZhbHNl
LCAwLCBwbHVnaW4oKS0+cGx1Z2luRnVuY3MoKSwgaW5zdGFuY2UoKSwgbV9wbHVnaW4tPnF1aXJr
cygpKTsKKyAgICBtX21hbnVhbFN0cmVhbSA9IFBsdWdpblN0cmVhbTo6Y3JlYXRlKHRoaXMsIG1f
cGFyZW50RnJhbWUuZ2V0KCksIG1fcGFyZW50RnJhbWUtPmxvYWRlcigpLT5hY3RpdmVEb2N1bWVu
dExvYWRlcigpLT5yZXF1ZXN0KCksIGZhbHNlLCAwLCBwbHVnaW4oKS0+cGx1Z2luRnVuY3MoKSwg
aW5zdGFuY2UoKSwgbV9wbHVnaW4tPnF1aXJrcygpKTsKICAgICBtX21hbnVhbFN0cmVhbS0+c2V0
TG9hZE1hbnVhbGx5KHRydWUpOwogCiAgICAgbV9tYW51YWxTdHJlYW0tPmRpZFJlY2VpdmVSZXNw
b25zZSgwLCByZXNwb25zZSk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmll
dy5oIGIvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcuaAppbmRleCBhYzYwZmQ0Li43YWYwZDBj
IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5oCisrKyBiL1dlYkNvcmUv
cGx1Z2lucy9QbHVnaW5WaWV3LmgKQEAgLTE3OSw3ICsxNzksNyBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKICAgICAgICAgdmlydHVhbCBib29sIGlzUGx1Z2luVmlldygpIGNvbnN0IHsgcmV0dXJu
IHRydWU7IH0KIAotICAgICAgICBGcmFtZSogcGFyZW50RnJhbWUoKSBjb25zdCB7IHJldHVybiBt
X3BhcmVudEZyYW1lOyB9CisgICAgICAgIEZyYW1lKiBwYXJlbnRGcmFtZSgpIGNvbnN0IHsgcmV0
dXJuIG1fcGFyZW50RnJhbWUuZ2V0KCk7IH0KIAogICAgICAgICB2b2lkIGZvY3VzUGx1Z2luRWxl
bWVudCgpOwogCkBAIC0yMTMsNiArMjEzLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAg
ICAgIGJvb2wgc3RhcnQoKTsKIAorICAgICAgICB2b2lkIHNldE5lZWRzRGVsYXllZERlc3Ryb3ko
Ym9vbCBiKSB7IG1fbmVlZHNEZWxheWVkRGVzdHJveSA9IGI7IH0KKwogICAgIHByaXZhdGU6CiAg
ICAgICAgIFBsdWdpblZpZXcoRnJhbWUqIHBhcmVudEZyYW1lLCBjb25zdCBJbnRTaXplJiwgUGx1
Z2luUGFja2FnZSosIEVsZW1lbnQqLCBjb25zdCBLVVJMJiwgY29uc3QgVmVjdG9yPFN0cmluZz4m
IHBhcmFtTmFtZXMsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwYXJhbVZhbHVlcywgY29uc3QgU3Ry
aW5nJiBtaW1lVHlwZSwgYm9vbCBsb2FkTWFudWFsbHkpOwogCkBAIC0yMzgsNyArMjQwLDcgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBzdGF0aWMgQk9PTCBXSU5BUEkgaG9va2VkRW5k
UGFpbnQoSFdORCwgY29uc3QgUEFJTlRTVFJVQ1QqKTsKICNlbmRpZgogCi0gICAgICAgIEZyYW1l
KiBtX3BhcmVudEZyYW1lOworICAgICAgICBSZWZQdHI8RnJhbWU+IG1fcGFyZW50RnJhbWU7CiAg
ICAgICAgIFJlZlB0cjxQbHVnaW5QYWNrYWdlPiBtX3BsdWdpbjsKICAgICAgICAgRWxlbWVudCog
bV9lbGVtZW50OwogICAgICAgICBib29sIG1faXNTdGFydGVkOwpAQCAtMzYzLDYgKzM2NSw4IEBA
IHByaXZhdGU6CiAgICAgICAgIGJvb2wgbV9pc0hhbHRlZDsKICAgICAgICAgYm9vbCBtX2hhc0Jl
ZW5IYWx0ZWQ7CiAKKyAgICAgICAgYm9vbCBtX25lZWRzRGVsYXllZERlc3Ryb3k7CisKICAgICAg
ICAgc3RhdGljIFBsdWdpblZpZXcqIHNfY3VycmVudFBsdWdpblZpZXc7CiAgICAgfTsKIApkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9wbHVnaW5zL2d0ay9QbHVnaW5WaWV3R3RrLmNwcCBiL1dlYkNvcmUv
cGx1Z2lucy9ndGsvUGx1Z2luVmlld0d0ay5jcHAKaW5kZXggOGY0YjJkNS4uNmQ5OTJmYiAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9wbHVnaW5zL2d0ay9QbHVnaW5WaWV3R3RrLmNwcAorKysgYi9XZWJD
b3JlL3BsdWdpbnMvZ3RrL1BsdWdpblZpZXdHdGsuY3BwCkBAIC0xMzcsNyArMTM3LDcgQEAgdm9p
ZCBQbHVnaW5WaWV3Ojp1cGRhdGVQbHVnaW5XaWRnZXQoKQogICAgICAgICBpZiAobV9kcmF3YWJs
ZSkKICAgICAgICAgICAgIFhGcmVlUGl4bWFwKEdES19ESVNQTEFZKCksIG1fZHJhd2FibGUpOwog
Ci0gICAgICAgIG1fZHJhd2FibGUgPSBYQ3JlYXRlUGl4bWFwKEdES19ESVNQTEFZKCksIGdldFJv
b3RXaW5kb3cobV9wYXJlbnRGcmFtZSksCisgICAgICAgIG1fZHJhd2FibGUgPSBYQ3JlYXRlUGl4
bWFwKEdES19ESVNQTEFZKCksIGdldFJvb3RXaW5kb3cobV9wYXJlbnRGcmFtZS5nZXQoKSksCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fd2luZG93UmVjdC53aWR0aCgpLCBt
X3dpbmRvd1JlY3QuaGVpZ2h0KCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICgoTlBTZXRXaW5kb3dDYWxsYmFja1N0cnVjdCopbV9ucFdpbmRvdy53c19pbmZvKS0+ZGVwdGgp
OwogICAgICAgICBYU3luYyhHREtfRElTUExBWSgpLCBGYWxzZSk7IC8vIG1ha2Ugc3VyZSB0aGF0
IHRoZSBzZXJ2ZXIga25vd3MgYWJvdXQgdGhlIERyYXdhYmxlCkBAIC0zMTksNyArMzE5LDcgQEAg
dm9pZCBQbHVnaW5WaWV3OjpoYW5kbGVLZXlib2FyZEV2ZW50KEtleWJvYXJkRXZlbnQqIGV2ZW50
KQogICAgIEdka0V2ZW50S2V5KiBnZGtFdmVudCA9IGV2ZW50LT5rZXlFdmVudCgpLT5nZGtFdmVu
dEtleSgpOwogCiAgICAgeEV2ZW50LnR5cGUgPSAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVz
KCkua2V5ZG93bkV2ZW50KSA/IDIgOiAzOyAvLyBLZXlQcmVzcy9SZWxlYXNlIGdldCB1bnNldCBz
b21ld2hlcmUKLSAgICB4RXZlbnQueGtleS5yb290ID0gZ2V0Um9vdFdpbmRvdyhtX3BhcmVudEZy
YW1lKTsKKyAgICB4RXZlbnQueGtleS5yb290ID0gZ2V0Um9vdFdpbmRvdyhtX3BhcmVudEZyYW1l
LmdldCgpKTsKICAgICB4RXZlbnQueGtleS5zdWJ3aW5kb3cgPSAwOyAvLyB3ZSBoYXZlIG5vIGNo
aWxkIHdpbmRvdwogICAgIHhFdmVudC54a2V5LnRpbWUgPSBldmVudC0+dGltZVN0YW1wKCk7CiAg
ICAgeEV2ZW50LnhrZXkuc3RhdGUgPSBnZGtFdmVudC0+c3RhdGU7IC8vIEdka01vZGlmaWVyVHlw
ZSBtaXJyb3JzIHhsaWIgc3RhdGUgbWFza3MKQEAgLTQ0NSwxMSArNDQ1LDExIEBAIHZvaWQgUGx1
Z2luVmlldzo6aGFuZGxlTW91c2VFdmVudChNb3VzZUV2ZW50KiBldmVudCkKICAgICBJbnRQb2lu
dCBwb3N0Wm9vbVBvcyA9IHJvdW5kZWRJbnRQb2ludChtX2VsZW1lbnQtPnJlbmRlcmVyKCktPmFi
c29sdXRlVG9Mb2NhbChldmVudC0+YWJzb2x1dGVMb2NhdGlvbigpKSk7CiAKICAgICBpZiAoZXZl
bnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkubW91c2Vkb3duRXZlbnQgfHwgZXZlbnQtPnR5cGUo
KSA9PSBldmVudE5hbWVzKCkubW91c2V1cEV2ZW50KQotICAgICAgICBzZXRYQnV0dG9uRXZlbnRT
cGVjaWZpY0ZpZWxkcygmeEV2ZW50LCBldmVudCwgcG9zdFpvb21Qb3MsIG1fcGFyZW50RnJhbWUp
OworICAgICAgICBzZXRYQnV0dG9uRXZlbnRTcGVjaWZpY0ZpZWxkcygmeEV2ZW50LCBldmVudCwg
cG9zdFpvb21Qb3MsIG1fcGFyZW50RnJhbWUuZ2V0KCkpOwogICAgIGVsc2UgaWYgKGV2ZW50LT50
eXBlKCkgPT0gZXZlbnROYW1lcygpLm1vdXNlbW92ZUV2ZW50KQotICAgICAgICBzZXRYTW90aW9u
RXZlbnRTcGVjaWZpY0ZpZWxkcygmeEV2ZW50LCBldmVudCwgcG9zdFpvb21Qb3MsIG1fcGFyZW50
RnJhbWUpOworICAgICAgICBzZXRYTW90aW9uRXZlbnRTcGVjaWZpY0ZpZWxkcygmeEV2ZW50LCBl
dmVudCwgcG9zdFpvb21Qb3MsIG1fcGFyZW50RnJhbWUuZ2V0KCkpOwogICAgIGVsc2UgaWYgKGV2
ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLm1vdXNlb3V0RXZlbnQgfHwgZXZlbnQtPnR5cGUo
KSA9PSBldmVudE5hbWVzKCkubW91c2VvdmVyRXZlbnQpCi0gICAgICAgIHNldFhDcm9zc2luZ0V2
ZW50U3BlY2lmaWNGaWVsZHMoJnhFdmVudCwgZXZlbnQsIHBvc3Rab29tUG9zLCBtX3BhcmVudEZy
YW1lKTsKKyAgICAgICAgc2V0WENyb3NzaW5nRXZlbnRTcGVjaWZpY0ZpZWxkcygmeEV2ZW50LCBl
dmVudCwgcG9zdFpvb21Qb3MsIG1fcGFyZW50RnJhbWUuZ2V0KCkpOwogICAgIGVsc2UKICAgICAg
ICAgcmV0dXJuOwogI2VuZGlmCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvd2luL1BsdWdp
blZpZXdXaW4uY3BwIGIvV2ViQ29yZS9wbHVnaW5zL3dpbi9QbHVnaW5WaWV3V2luLmNwcAppbmRl
eCAyYWRlNjYzLi4xYTExYTY3IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsdWdpbnMvd2luL1BsdWdp
blZpZXdXaW4uY3BwCisrKyBiL1dlYkNvcmUvcGx1Z2lucy93aW4vUGx1Z2luVmlld1dpbi5jcHAK
QEAgLTczNiw2ICs3MzYsMjcgQEAgdm9pZCBQbHVnaW5WaWV3OjpoYW5kbGVNb3VzZUV2ZW50KE1v
dXNlRXZlbnQqIGV2ZW50KQogI2VuZGlmCiB9CiAKK2NsYXNzIFBsdWdpbkRlbGF5ZWREZXN0cm95
ZXIgeworcHVibGljOgorICAgIHN0YXRpYyB2b2lkIGRlbGF5RGVzdHJveShQYXNzUmVmUHRyPFBs
dWdpblZpZXc+IHBsdWdpbikgeyBuZXcgUGx1Z2luRGVsYXllZERlc3Ryb3llcihwbHVnaW4pOyB9
CisKK3ByaXZhdGU6CisgICAgUGx1Z2luRGVsYXllZERlc3Ryb3llcihQYXNzUmVmUHRyPFBsdWdp
blZpZXc+IHBsdWdpbikKKyAgICAgICAgOiBtX3BsdWdpbihwbHVnaW4pCisgICAgICAgICwgbV90
aW1lcih0aGlzLCAmUGx1Z2luRGVsYXllZERlc3Ryb3llcjo6ZGVzdHJveVRpbWVyRmlyZWQpCisg
ICAgeworICAgICAgICBtX3RpbWVyLnN0YXJ0T25lU2hvdCgwKTsKKyAgICB9CisKKyAgICB2b2lk
IGRlc3Ryb3lUaW1lckZpcmVkKFRpbWVyPFBsdWdpbkRlbGF5ZWREZXN0cm95ZXI+KikKKyAgICB7
CisgICAgICAgIGRlbGV0ZSB0aGlzOworICAgIH0KKworICAgIFJlZlB0cjxQbHVnaW5WaWV3PiBt
X3BsdWdpbjsKKyAgICBUaW1lcjxQbHVnaW5EZWxheWVkRGVzdHJveWVyPiBtX3RpbWVyOworfTsK
Kwogdm9pZCBQbHVnaW5WaWV3OjpzZXRQYXJlbnQoU2Nyb2xsVmlldyogcGFyZW50KQogewogICAg
IFdpZGdldDo6c2V0UGFyZW50KHBhcmVudCk7CkBAIC03NTIsNiArNzczLDkgQEAgdm9pZCBQbHVn
aW5WaWV3OjpzZXRQYXJlbnQoU2Nyb2xsVmlldyogcGFyZW50KQogICAgIGlmIChwYXJlbnQpCiAg
ICAgICAgIGluaXQoKTsKICAgICBlbHNlIHsKKyAgICAgICAgaWYgKG1fbmVlZHNEZWxheWVkRGVz
dHJveSkKKyAgICAgICAgICAgIFBsdWdpbkRlbGF5ZWREZXN0cm95ZXI6OmRlbGF5RGVzdHJveSh0
aGlzKTsKKwogICAgICAgICBpZiAoIXBsYXRmb3JtUGx1Z2luV2lkZ2V0KCkpCiAgICAgICAgICAg
ICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRv
b2xzL0NoYW5nZUxvZwppbmRleCAwMzUzODQ2Li45MDFkNjg2IDEwMDY0NAotLS0gYS9XZWJLaXRU
b29scy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTgg
QEAKKzIwMTAtMDItMDUgIEpvbiBIb25leWN1dHQgIDxqaG9uZXljdXR0QGFwcGxlLmNvbT4KKwor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzQzNjg3NT4gQ3Jhc2ggaW4gRmxhc2ggd2hlbiB2aXNp
dGluZworICAgICAgICBodHRwOi8vd3d3LmNjdHYuY29tL2RlZmF1bHQuc2h0bWwgKFdFUiBJRCA4
MTkyOTgyMDApIFt3YXRzb24gMjUwMjI2MF0KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3dpbi9UZXN0TmV0c2NhcGVQbHVn
aW4vbWFpbi5jcHA6CisgICAgICAgIChleGVjdXRlU2NyaXB0KToKKyAgICAgICAgTW92ZWQgdG8g
YW4gZWFybGllciBwb2ludCBpbiB0aGUgZmlsZS4KKyAgICAgICAgKE5QUF9OZXcpOgorICAgICAg
ICBJZiB0aGUgcGx1Zy1pbiBoYXMgYW4gb25EZXN0cm95IGF0dHJpYnV0ZSwgc3RvcmUgaXRzIHZh
bHVlLgorICAgICAgICAoTlBQX0Rlc3Ryb3kpOgorICAgICAgICBJZiB0aGUgcGx1Zy1pbiBoYXMg
Y29kZSB0byBydW4gb24gZGVzdHJ1Y3Rpb24sIHJ1biBpdCBhbmQgZnJlZSBpdC4KKwogMjAxMC0w
Mi0wNSAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBPbGl2ZXIgSHVudC4KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJU
cmVlL3dpbi9UZXN0TmV0c2NhcGVQbHVnaW4vbWFpbi5jcHAgYi9XZWJLaXRUb29scy9EdW1wUmVu
ZGVyVHJlZS93aW4vVGVzdE5ldHNjYXBlUGx1Z2luL21haW4uY3BwCmluZGV4IDgyYjFkNGQuLjY1
ODFiMDQgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9UZXN0TmV0
c2NhcGVQbHVnaW4vbWFpbi5jcHAKKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvd2lu
L1Rlc3ROZXRzY2FwZVBsdWdpbi9tYWluLmNwcApAQCAtNzEsNiArNzEsMTkgQEAgTlBFcnJvciBf
X3N0ZGNhbGwgTlBfU2h1dGRvd24oKQogICAgIHJldHVybiBOUEVSUl9OT19FUlJPUjsKIH0KIAor
c3RhdGljIHZvaWQgZXhlY3V0ZVNjcmlwdChjb25zdCBQbHVnaW5PYmplY3QqIG9iaiwgY29uc3Qg
Y2hhciogc2NyaXB0KQoreworICAgIE5QT2JqZWN0ICp3aW5kb3dTY3JpcHRPYmplY3Q7CisgICAg
YnJvd3Nlci0+Z2V0dmFsdWUob2JqLT5ucHAsIE5QTlZXaW5kb3dOUE9iamVjdCwgJndpbmRvd1Nj
cmlwdE9iamVjdCk7CisKKyAgICBOUFN0cmluZyBucFNjcmlwdDsKKyAgICBucFNjcmlwdC5VVEY4
Q2hhcmFjdGVycyA9IHNjcmlwdDsKKyAgICBucFNjcmlwdC5VVEY4TGVuZ3RoID0gc3RybGVuKHNj
cmlwdCk7CisKKyAgICBOUFZhcmlhbnQgYnJvd3NlclJlc3VsdDsKKyAgICBicm93c2VyLT5ldmFs
dWF0ZShvYmotPm5wcCwgd2luZG93U2NyaXB0T2JqZWN0LCAmbnBTY3JpcHQsICZicm93c2VyUmVz
dWx0KTsKKyAgICBicm93c2VyLT5yZWxlYXNldmFyaWFudHZhbHVlKCZicm93c2VyUmVzdWx0KTsK
K30KIAogTlBFcnJvciBOUFBfTmV3KE5QTUlNRVR5cGUgcGx1Z2luVHlwZSwgTlBQIGluc3RhbmNl
LCB1aW50MTYgbW9kZSwgaW50MTYgYXJnYywgY2hhciAqYXJnbltdLCBjaGFyICphcmd2W10sIE5Q
U2F2ZWREYXRhICpzYXZlZCkKIHsKQEAgLTg0LDYgKzk3LDggQEAgTlBFcnJvciBOUFBfTmV3KE5Q
TUlNRVR5cGUgcGx1Z2luVHlwZSwgTlBQIGluc3RhbmNlLCB1aW50MTYgbW9kZSwgaW50MTYgYXJn
YywgY2gKICAgICAgICAgICAgICAgICBvYmotPm9uU3RyZWFtRGVzdHJveSA9IF9zdHJkdXAoYXJn
dltpXSk7CiAgICAgICAgICAgICBlbHNlIGlmIChfc3RyaWNtcChhcmduW2ldLCAib25VUkxOb3Rp
ZnkiKSA9PSAwICYmICFvYmotPm9uVVJMTm90aWZ5KQogICAgICAgICAgICAgICAgIG9iai0+b25V
UkxOb3RpZnkgPSBfc3RyZHVwKGFyZ3ZbaV0pOworICAgICAgICAgICAgZWxzZSBpZiAoX3N0cmlj
bXAoYXJnbltpXSwgIm9uRGVzdHJveSIpID09IDAgJiYgIW9iai0+b25EZXN0cm95KQorICAgICAg
ICAgICAgICAgIG9iai0+b25EZXN0cm95ID0gX3N0cmR1cChhcmd2W2ldKTsKICAgICAgICAgICAg
IGVsc2UgaWYgKF9zdHJpY21wKGFyZ25baV0sICJsb2dTcmMiKSA9PSAwKSB7CiAgICAgICAgICAg
ICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBhcmdjOyBpKyspCiAgICAgICAgICAgICAgICAgICAg
IGlmIChfc3RyaWNtcChhcmduW2ldLCAic3JjIikgPT0gMCkKQEAgLTExMyw2ICsxMjgsMTEgQEAg
TlBFcnJvciBOUFBfRGVzdHJveShOUFAgaW5zdGFuY2UsIE5QU2F2ZWREYXRhICoqc2F2ZSkKICAg
ICAgICAgaWYgKG9iai0+b25TdHJlYW1EZXN0cm95KQogICAgICAgICAgICAgZnJlZShvYmotPm9u
U3RyZWFtRGVzdHJveSk7CiAKKyAgICAgICAgaWYgKG9iai0+b25EZXN0cm95KSB7CisgICAgICAg
ICAgICBleGVjdXRlU2NyaXB0KG9iaiwgb2JqLT5vbkRlc3Ryb3kpOworICAgICAgICAgICAgZnJl
ZShvYmotPm9uRGVzdHJveSk7CisgICAgICAgIH0KKwogICAgICAgICBpZiAob2JqLT5sb2dEZXN0
cm95KQogICAgICAgICAgICAgcHJpbnRmKCJQTFVHSU46IE5QUF9EZXN0cm95XG4iKTsKIApAQCAt
MTM1LDIwICsxNTUsNiBAQCBOUEVycm9yIE5QUF9TZXRXaW5kb3coTlBQIGluc3RhbmNlLCBOUFdp
bmRvdyAqd2luZG93KQogICAgIHJldHVybiBOUEVSUl9OT19FUlJPUjsKIH0KIAotc3RhdGljIHZv
aWQgZXhlY3V0ZVNjcmlwdChjb25zdCBQbHVnaW5PYmplY3QqIG9iaiwgY29uc3QgY2hhciogc2Ny
aXB0KQotewotICAgIE5QT2JqZWN0ICp3aW5kb3dTY3JpcHRPYmplY3Q7Ci0gICAgYnJvd3Nlci0+
Z2V0dmFsdWUob2JqLT5ucHAsIE5QTlZXaW5kb3dOUE9iamVjdCwgJndpbmRvd1NjcmlwdE9iamVj
dCk7Ci0KLSAgICBOUFN0cmluZyBucFNjcmlwdDsKLSAgICBucFNjcmlwdC5VVEY4Q2hhcmFjdGVy
cyA9IHNjcmlwdDsKLSAgICBucFNjcmlwdC5VVEY4TGVuZ3RoID0gc3RybGVuKHNjcmlwdCk7Ci0K
LSAgICBOUFZhcmlhbnQgYnJvd3NlclJlc3VsdDsKLSAgICBicm93c2VyLT5ldmFsdWF0ZShvYmot
Pm5wcCwgd2luZG93U2NyaXB0T2JqZWN0LCAmbnBTY3JpcHQsICZicm93c2VyUmVzdWx0KTsKLSAg
ICBicm93c2VyLT5yZWxlYXNldmFyaWFudHZhbHVlKCZicm93c2VyUmVzdWx0KTsKLX0KLQogTlBF
cnJvciBOUFBfTmV3U3RyZWFtKE5QUCBpbnN0YW5jZSwgTlBNSU1FVHlwZSB0eXBlLCBOUFN0cmVh
bSAqc3RyZWFtLCBOUEJvb2wgc2Vla2FibGUsIHVpbnQxNiAqc3R5cGUpCiB7CiAgICAgUGx1Z2lu
T2JqZWN0KiBvYmogPSAoUGx1Z2luT2JqZWN0KilpbnN0YW5jZS0+cGRhdGE7Ci0tIAoxLjYuMgoK
</data>
<flag name="review"
          id="30963"
          type_id="1"
          status="-"
          setter="darin"
    />
    <flag name="commit-queue"
          id="30964"
          type_id="3"
          status="-"
          setter="jhoneycutt"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>48376</attachid>
            <date>2010-02-08 16:36:23 -0800</date>
            <delta_ts>2010-02-08 20:59:02 -0800</delta_ts>
            <desc>patch v4</desc>
            <filename>0001-rdar-problem-7436875-Crash-in-Flash-when-visiting.patch</filename>
            <type>text/plain</type>
            <size>20779</size>
            <attacher name="Jon Honeycutt">jhoneycutt</attacher>
            
              <data encoding="base64">RnJvbSBmODNlNzk5MzJiY2Q5N2EyZjhlZTcwYThmZWRlZDc3YTE1NjBiY2RjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb24gSG9uZXljdXR0IDxqaG9uZXljdXR0QGFwcGxlLmNvbT4K
RGF0ZTogTW9uLCA4IEZlYiAyMDEwIDE1OjU1OjU0IC0wODAwClN1YmplY3Q6IFtQQVRDSF0gPHJk
YXI6Ly9wcm9ibGVtLzc0MzY4NzU+IENyYXNoIGluIEZsYXNoIHdoZW4gdmlzaXRpbmcKIGh0dHA6
Ly93d3cuY2N0di5jb20vZGVmYXVsdC5zaHRtbCAoV0VSIElEIDgxOTI5ODIwMCkgW3dhdHNvbiAy
NTAyMjYwXQoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpXZWJDb3JlOgoKVGVzdDogcGxh
dGZvcm0vd2luL3BsdWdpbnMvcGx1Z2luLWRlbGF5ZWQtZGVzdHJveS5odG1sCgoqIGJyaWRnZS9O
UF9qc29iamVjdC5jcHA6CihfTlBOX0V2YWx1YXRlKToKSWYgRmxhc2ggY2FsbHMgdGhpcyB0byBl
dmFsdWF0ZSBhIHNjcmlwdCB0aGF0IGRlc3Ryb3lzIHRoZSBQbHVnaW5WaWV3LAp3ZSBjcmFzaCB3
aGVuIHJldHVybmluZyB0byBGbGFzaCBjb2RlLiBCZWZvcmUgZXZhbHVhdGluZyB0aGUgc2NyaXB0
LApjYWxsIFBsdWdpblZpZXc6OmtlZXBBbGl2ZSgpIHRvIGhvbGQgYSByZWYgdG8gdGhpcyBpbnN0
YW5jZSAoYW5kIHJlbGVhc2UKaXQgYXN5bmNocm9ub3VzbHkpLgoKKiBwbHVnaW5zL1BsdWdpblZp
ZXcuY3BwOgooV2ViQ29yZTo6aW5zdGFuY2VNYXApOgpSZXR1cm4gYSBtYXAgZnJvbSB0aGUgTlBQ
IHRvIHRoZSBQbHVnaW5WaWV3LgooV2ViQ29yZTo6UGx1Z2luVmlldzo6flBsdWdpblZpZXcpOgpB
c3NlcnQgdGhhdCB0aGUga2VlcCBhbGl2ZSB0aW1lciBpcyBub3QgcnVubmluZzsgcmVtb3ZlIG91
cnNlbHZlcyBmcm9tCnRoZSBpbnN0YW5jZSBtYXAuCihXZWJDb3JlOjpQbHVnaW5WaWV3OjpwZXJm
b3JtUmVxdWVzdCk6ClRoZSBwYXJlbnQgRnJhbWUgaXMgbm93IGEgUmVmUHRyOyB1c2UgLmdldCgp
LgooV2ViQ29yZTo6UGx1Z2luVmlldzo6c3RhdHVzKToKRGl0dG8uCihXZWJDb3JlOjpQbHVnaW5W
aWV3OjpkaWRSZWNlaXZlUmVzcG9uc2UpOgpEaXR0by4KKFdlYkNvcmU6OlBsdWdpblZpZXc6OlBs
dWdpblZpZXcpOgpBZGQgdGhlIHZpZXcgdG8gdGhlIGluc3RhbmNlIG1hcC4KKFdlYkNvcmU6OlBs
dWdpblZpZXc6OmxpZmVTdXBwb3J0VGltZXJGaXJlZCk6CkRlcmVmIHRoZSBQbHVnaW5WaWV3Lgoo
V2ViQ29yZTo6UGx1Z2luVmlldzo6a2VlcEFsaXZlKToKUmVmIHRoZSBQbHVnaW5WaWV3LCB0aGVu
IHN0YXJ0IGEgdGltZSB0byByZWxlYXNlIHRoZSByZWZlcmVuY2UKYXN5bmNocm9ub3VzbHkuCihX
ZWJDb3JlOjpQbHVnaW5WaWV3OjprZWVwQWxpdmUpOgpGaW5kIHRoZSBQbHVnaW5WaWV3IGluIHRo
ZSBtYXAsIGFuZCBjYWxsIGl0cyBrZWVwQWxpdmUoKSBmdW5jdGlvbi4KCiogcGx1Z2lucy9QbHVn
aW5WaWV3Lmg6Ck1hZGUgbV9wYXJlbnRGcmFtZSBhIFJlZlB0ciwgc28gdGhhdCBpdCB3aWxsIHJl
bWFpbiB2YWxpZCB3aGVuIHRoZQprZWVwIGFsaXZlIHRpbWVyIGZpcmVzLgooV2ViQ29yZTo6UGx1
Z2luVmlldzo6cGFyZW50RnJhbWUpOgpVc2UgLmdldCgpLgoKKiBwbHVnaW5zL2d0ay9QbHVnaW5W
aWV3R3RrLmNwcDoKKFdlYkNvcmU6OlBsdWdpblZpZXc6OnVwZGF0ZVBsdWdpbldpZGdldCk6ClVz
ZSAuZ2V0KCkuCihXZWJDb3JlOjpQbHVnaW5WaWV3OjpoYW5kbGVLZXlib2FyZEV2ZW50KToKVXNl
IC5nZXQoKS4KKFdlYkNvcmU6OlBsdWdpblZpZXc6OmhhbmRsZU1vdXNlRXZlbnQpOgpVc2UgLmdl
dCgpLgoKV2ViS2l0VG9vbHM6CgoqIER1bXBSZW5kZXJUcmVlL3dpbi9UZXN0TmV0c2NhcGVQbHVn
aW4vbWFpbi5jcHA6CihleGVjdXRlU2NyaXB0KToKTW92ZWQgdG8gYW4gZWFybGllciBwb2ludCBp
biB0aGUgZmlsZS4KKE5QUF9OZXcpOgpJZiB0aGUgcGx1Zy1pbiBoYXMgYW4gb25EZXN0cm95IGF0
dHJpYnV0ZSwgc3RvcmUgaXRzIHZhbHVlLgooTlBQX0Rlc3Ryb3kpOgpJZiB0aGUgcGx1Zy1pbiBo
YXMgY29kZSB0byBydW4gb24gZGVzdHJ1Y3Rpb24sIHJ1biBpdCBhbmQgZnJlZSBpdC4KCkxheW91
dFRlc3RzOgoKKiBwbGF0Zm9ybS93aW4vcGx1Z2lucy9wbHVnaW4tZGVsYXllZC1kZXN0cm95LWV4
cGVjdGVkLnR4dDogQWRkZWQuCiogcGxhdGZvcm0vd2luL3BsdWdpbnMvcGx1Z2luLWRlbGF5ZWQt
ZGVzdHJveS5odG1sOiBBZGRlZC4KLS0tCiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB8ICAgMTAgKysrKwogLi4uL3BsdWdpbnMvcGx1Z2luLWRlbGF5
ZWQtZGVzdHJveS1leHBlY3RlZC50eHQgICAgfCAgICAzICsKIC4uLi93aW4vcGx1Z2lucy9wbHVn
aW4tZGVsYXllZC1kZXN0cm95Lmh0bWwgICAgICAgIHwgICAzMSArKysrKysrKysrKysKIFdlYkNv
cmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA1MiArKysr
KysrKysrKysrKysrKysrKwogV2ViQ29yZS9icmlkZ2UvTlBfanNvYmplY3QuY3BwICAgICAgICAg
ICAgICAgICAgICAgfCAgICA3ICsrLQogV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcuY3BwICAg
ICAgICAgICAgICAgICAgICAgfCAgIDQ2ICsrKysrKysrKysrKysrKystLQogV2ViQ29yZS9wbHVn
aW5zL1BsdWdpblZpZXcuaCAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEwICsrKy0KIFdlYkNv
cmUvcGx1Z2lucy9ndGsvUGx1Z2luVmlld0d0ay5jcHAgICAgICAgICAgICAgIHwgICAxMCArKy0t
CiBXZWJLaXRUb29scy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAg
MTUgKysrKysrCiAuLi4vRHVtcFJlbmRlclRyZWUvd2luL1Rlc3ROZXRzY2FwZVBsdWdpbi9tYWlu
LmNwcCB8ICAgMzQgKysrKysrKystLS0tLQogMTAgZmlsZXMgY2hhbmdlZCwgMTkyIGluc2VydGlv
bnMoKyksIDI2IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL3Bs
YXRmb3JtL3dpbi9wbHVnaW5zL3BsdWdpbi1kZWxheWVkLWRlc3Ryb3ktZXhwZWN0ZWQudHh0CiBj
cmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL3BsdWdpbnMvcGx1Z2lu
LWRlbGF5ZWQtZGVzdHJveS5odG1sCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDVmMjcyMzkuLjY5Yjg1NDcgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxMyBAQAorMjAxMC0wMi0wOCAgSm9uIEhvbmV5Y3V0dCAgPGpob25leWN1dHRAYXBw
bGUuY29tPgorCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83NDM2ODc1PiBDcmFzaCBpbiBGbGFz
aCB3aGVuIHZpc2l0aW5nCisgICAgICAgIGh0dHA6Ly93d3cuY2N0di5jb20vZGVmYXVsdC5zaHRt
bCAoV0VSIElEIDgxOTI5ODIwMCkgW3dhdHNvbiAyNTAyMjYwXQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vd2luL3BsdWdpbnMvcGx1
Z2luLWRlbGF5ZWQtZGVzdHJveS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRm
b3JtL3dpbi9wbHVnaW5zL3BsdWdpbi1kZWxheWVkLWRlc3Ryb3kuaHRtbDogQWRkZWQuCisKIDIw
MTAtMDItMDUgIFNoaW5pY2hpcm8gSGFtYWppICA8aGFtYWppQGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBHdXN0YXZvIE5vcm9uaGEgU2lsdmEuCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS93aW4vcGx1Z2lucy9wbHVnaW4tZGVsYXllZC1kZXN0cm95LWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9wbHVnaW5zL3BsdWdpbi1kZWxheWVk
LWRlc3Ryb3ktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LmY1NDc5ZjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vcGx1
Z2lucy9wbHVnaW4tZGVsYXllZC1kZXN0cm95LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAK
K1RoZSBzaG91bGQgYmUgcHJpbnRlZCBiZWZvcmUgZGVzdHJveS4KK1BsdWctaW4gZGVzdHJveWVk
LgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vcGx1Z2lucy9wbHVnaW4t
ZGVsYXllZC1kZXN0cm95Lmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vcGx1Z2lucy9w
bHVnaW4tZGVsYXllZC1kZXN0cm95Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uNzRjM2QxZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dp
bi9wbHVnaW5zL3BsdWdpbi1kZWxheWVkLWRlc3Ryb3kuaHRtbApAQCAtMCwwICsxLDMxIEBACis8
aHRtbD4KKzxib2R5PgorICAgIDxwcmUgaWQ9ImNvbnNvbGUiPjwvcHJlPgorICAgIDxkaXYgaWQ9
Im91dGVyIj4KKyAgICAgICAgPGVtYmVkIGlkPSJwbGciIHR5cGU9ImFwcGxpY2F0aW9uL3gtd2Vi
a2l0LXRlc3QtbmV0c2NhcGUiIG9uRGVzdHJveT0icGx1Z2luRGVzdHJveWVkKCkiPjwvZW1iZWQ+
CisgICAgPC9kaXY+CisgICAgPHNjcmlwdD4KKyAgICAgICAgZnVuY3Rpb24gbG9nKG1lc3NhZ2Up
CisgICAgICAgIHsKKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xl
IikuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobWVzc2FnZSArICJcbiIpKTsK
KyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIHBsdWdpbkRlc3Ryb3llZCgpCisgICAgICAg
IHsKKyAgICAgICAgICAgIGxvZygiUGx1Zy1pbiBkZXN0cm95ZWQuIikKKyAgICAgICAgICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgfQorCisgICAgICAgIGlm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgICAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9s
bGVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgfQorCisgICAgICAgIHZhciBwbHVnaW4gPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgicGxnIik7CisKKyAgICAgICAgcGx1Z2luLnRlc3RFdmFsdWF0
ZSgid2luZG93LmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdvdXRlcicpLmlubmVySFRNTCA9ICcn
OyIpOworCisgICAgICAgIGxvZygiVGhlIHNob3VsZCBiZSBwcmludGVkIGJlZm9yZSBkZXN0cm95
LiIpOworICAgIDwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA4ZjIwNTA5Li5hODcwZjNjIDEw
MDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDU1IEBACisyMDEwLTAyLTA4ICBKb24gSG9uZXljdXR0ICA8amhvbmV5Y3V0dEBhcHBs
ZS5jb20+CisKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc0MzY4NzU+IENyYXNoIGluIEZsYXNo
IHdoZW4gdmlzaXRpbmcKKyAgICAgICAgaHR0cDovL3d3dy5jY3R2LmNvbS9kZWZhdWx0LnNodG1s
IChXRVIgSUQgODE5Mjk4MjAwKSBbd2F0c29uIDI1MDIyNjBdCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogcGxhdGZvcm0vd2luL3BsdWdpbnMv
cGx1Z2luLWRlbGF5ZWQtZGVzdHJveS5odG1sCisKKyAgICAgICAgKiBicmlkZ2UvTlBfanNvYmpl
Y3QuY3BwOgorICAgICAgICAoX05QTl9FdmFsdWF0ZSk6CisgICAgICAgIElmIEZsYXNoIGNhbGxz
IHRoaXMgdG8gZXZhbHVhdGUgYSBzY3JpcHQgdGhhdCBkZXN0cm95cyB0aGUgUGx1Z2luVmlldywK
KyAgICAgICAgd2UgY3Jhc2ggd2hlbiByZXR1cm5pbmcgdG8gRmxhc2ggY29kZS4gQmVmb3JlIGV2
YWx1YXRpbmcgdGhlIHNjcmlwdCwKKyAgICAgICAgY2FsbCBQbHVnaW5WaWV3OjprZWVwQWxpdmUo
KSB0byBob2xkIGEgcmVmIHRvIHRoaXMgaW5zdGFuY2UgKGFuZCByZWxlYXNlCisgICAgICAgIGl0
IGFzeW5jaHJvbm91c2x5KS4KKworICAgICAgICAqIHBsdWdpbnMvUGx1Z2luVmlldy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjppbnN0YW5jZU1hcCk6CisgICAgICAgIFJldHVybiBhIG1hcCBmcm9t
IHRoZSBOUFAgdG8gdGhlIFBsdWdpblZpZXcuCisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3
Ojp+UGx1Z2luVmlldyk6CisgICAgICAgIEFzc2VydCB0aGF0IHRoZSBrZWVwIGFsaXZlIHRpbWVy
IGlzIG5vdCBydW5uaW5nOyByZW1vdmUgb3Vyc2VsdmVzIGZyb20KKyAgICAgICAgdGhlIGluc3Rh
bmNlIG1hcC4KKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OnBlcmZvcm1SZXF1ZXN0KToK
KyAgICAgICAgVGhlIHBhcmVudCBGcmFtZSBpcyBub3cgYSBSZWZQdHI7IHVzZSAuZ2V0KCkuCisg
ICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpzdGF0dXMpOgorICAgICAgICBEaXR0by4KKyAg
ICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OmRpZFJlY2VpdmVSZXNwb25zZSk6CisgICAgICAg
IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6UGx1Z2luVmlldyk6CisgICAg
ICAgIEFkZCB0aGUgdmlldyB0byB0aGUgaW5zdGFuY2UgbWFwLgorICAgICAgICAoV2ViQ29yZTo6
UGx1Z2luVmlldzo6bGlmZVN1cHBvcnRUaW1lckZpcmVkKToKKyAgICAgICAgRGVyZWYgdGhlIFBs
dWdpblZpZXcuCisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjprZWVwQWxpdmUpOgorICAg
ICAgICBSZWYgdGhlIFBsdWdpblZpZXcsIHRoZW4gc3RhcnQgYSB0aW1lIHRvIHJlbGVhc2UgdGhl
IHJlZmVyZW5jZQorICAgICAgICBhc3luY2hyb25vdXNseS4KKyAgICAgICAgKFdlYkNvcmU6OlBs
dWdpblZpZXc6OmtlZXBBbGl2ZSk6CisgICAgICAgIEZpbmQgdGhlIFBsdWdpblZpZXcgaW4gdGhl
IG1hcCwgYW5kIGNhbGwgaXRzIGtlZXBBbGl2ZSgpIGZ1bmN0aW9uLgorCisgICAgICAgICogcGx1
Z2lucy9QbHVnaW5WaWV3Lmg6CisgICAgICAgIE1hZGUgbV9wYXJlbnRGcmFtZSBhIFJlZlB0ciwg
c28gdGhhdCBpdCB3aWxsIHJlbWFpbiB2YWxpZCB3aGVuIHRoZQorICAgICAgICBrZWVwIGFsaXZl
IHRpbWVyIGZpcmVzLgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6cGFyZW50RnJhbWUp
OgorICAgICAgICBVc2UgLmdldCgpLgorCisgICAgICAgICogcGx1Z2lucy9ndGsvUGx1Z2luVmll
d0d0ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3Ojp1cGRhdGVQbHVnaW5XaWRn
ZXQpOgorICAgICAgICBVc2UgLmdldCgpLgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6
aGFuZGxlS2V5Ym9hcmRFdmVudCk6CisgICAgICAgIFVzZSAuZ2V0KCkuCisgICAgICAgIChXZWJD
b3JlOjpQbHVnaW5WaWV3OjpoYW5kbGVNb3VzZUV2ZW50KToKKyAgICAgICAgVXNlIC5nZXQoKS4K
KwogMjAxMC0wMi0wNSAgR2VvZmZyZXkgR2FyZW4gIDxnZ2FyZW5AYXBwbGUuY29tPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IERhbiBCZXJuc3RlaW4uCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JyaWRn
ZS9OUF9qc29iamVjdC5jcHAgYi9XZWJDb3JlL2JyaWRnZS9OUF9qc29iamVjdC5jcHAKaW5kZXgg
YTMwYjZkNy4uMDYyYTAwOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9icmlkZ2UvTlBfanNvYmplY3Qu
Y3BwCisrKyBiL1dlYkNvcmUvYnJpZGdlL05QX2pzb2JqZWN0LmNwcApAQCAtMzAsNiArMzAsNyBA
QAogI2luY2x1ZGUgIk5QX2pzb2JqZWN0LmgiCiAKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5o
IgorI2luY2x1ZGUgIlBsdWdpblZpZXcuaCIKICNpbmNsdWRlICJTdHJpbmdTb3VyY2VQcm92aWRl
ci5oIgogI2luY2x1ZGUgImNfdXRpbGl0eS5oIgogI2luY2x1ZGUgImNfaW5zdGFuY2UuaCIKQEAg
LTE5MCw3ICsxOTEsNyBAQCBib29sIF9OUE5fSW52b2tlKE5QUCBucHAsIE5QT2JqZWN0KiBvLCBO
UElkZW50aWZpZXIgbWV0aG9kTmFtZSwgY29uc3QgTlBWYXJpYW50KgogICAgIHJldHVybiB0cnVl
OwogfQogCi1ib29sIF9OUE5fRXZhbHVhdGUoTlBQLCBOUE9iamVjdCogbywgTlBTdHJpbmcqIHMs
IE5QVmFyaWFudCogdmFyaWFudCkKK2Jvb2wgX05QTl9FdmFsdWF0ZShOUFAgaW5zdGFuY2UsIE5Q
T2JqZWN0KiBvLCBOUFN0cmluZyogcywgTlBWYXJpYW50KiB2YXJpYW50KQogewogICAgIGlmIChv
LT5fY2xhc3MgPT0gTlBTY3JpcHRPYmplY3RDbGFzcykgewogICAgICAgICBKYXZhU2NyaXB0T2Jq
ZWN0KiBvYmogPSByZWludGVycHJldF9jYXN0PEphdmFTY3JpcHRPYmplY3QqPihvKTsgCkBAIC0x
OTksNiArMjAwLDEwIEBAIGJvb2wgX05QTl9FdmFsdWF0ZShOUFAsIE5QT2JqZWN0KiBvLCBOUFN0
cmluZyogcywgTlBWYXJpYW50KiB2YXJpYW50KQogICAgICAgICBpZiAoIXJvb3RPYmplY3QgfHwg
IXJvb3RPYmplY3QtPmlzVmFsaWQoKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAorICAg
ICAgICAvLyBUaGVyZSBpcyBhIGNyYXNoIGluIEZsYXNoIHdoZW4gZXZhbHVhdGluZyBhIHNjcmlw
dCB0aGF0IGRlc3Ryb3lzIHRoZQorICAgICAgICAvLyBQbHVnaW5WaWV3LCBzbyB3ZSBkZXN0cm95
IGlzIGFzeW5jaHJvbm91c2x5LgorICAgICAgICBQbHVnaW5WaWV3OjprZWVwQWxpdmUoaW5zdGFu
Y2UpOworCiAgICAgICAgIEV4ZWNTdGF0ZSogZXhlYyA9IHJvb3RPYmplY3QtPmdsb2JhbE9iamVj
dCgpLT5nbG9iYWxFeGVjKCk7CiAgICAgICAgIEpTTG9jayBsb2NrKFNpbGVuY2VBc3NlcnRpb25z
T25seSk7CiAgICAgICAgIFN0cmluZyBzY3JpcHRTdHJpbmcgPSBjb252ZXJ0TlBTdHJpbmdUb1VU
RjE2KHMpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcuY3BwIGIvV2Vi
Q29yZS9wbHVnaW5zL1BsdWdpblZpZXcuY3BwCmluZGV4IDNmZjRjODIuLjllMWQ0NTQgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmNwcAorKysgYi9XZWJDb3JlL3BsdWdp
bnMvUGx1Z2luVmlldy5jcHAKQEAgLTg2LDYgKzg2LDE0IEBAIHVzaW5nIG5hbWVzcGFjZSBIVE1M
TmFtZXM7CiAKIHN0YXRpYyBpbnQgc19jYWxsaW5nUGx1Z2luOwogCit0eXBlZGVmIEhhc2hNYXA8
TlBQLCBQbHVnaW5WaWV3Kj4gSW5zdGFuY2VNYXA7CisKK3N0YXRpYyBJbnN0YW5jZU1hcCYgaW5z
dGFuY2VNYXAoKQoreworICAgIHN0YXRpYyBJbnN0YW5jZU1hcCYgbWFwID0gKm5ldyBJbnN0YW5j
ZU1hcDsKKyAgICByZXR1cm4gbWFwOworfQorCiBzdGF0aWMgU3RyaW5nIHNjcmlwdFN0cmluZ0lm
SmF2YVNjcmlwdFVSTChjb25zdCBLVVJMJiB1cmwpCiB7CiAgICAgaWYgKCFwcm90b2NvbElzSmF2
YVNjcmlwdCh1cmwpKQpAQCAtMjU4LDYgKzI2NiwxMCBAQCBQbHVnaW5WaWV3Ojp+UGx1Z2luVmll
dygpCiB7CiAgICAgTE9HKFBsdWdpbnMsICJQbHVnaW5WaWV3Ojp+UGx1Z2luVmlldygpIik7CiAK
KyAgICBBU1NFUlQoIW1fbGlmZVN1cHBvcnRUaW1lci5pc0FjdGl2ZSgpKTsKKworICAgIGluc3Rh
bmNlTWFwKCkucmVtb3ZlKG1faW5zdGFuY2UpOworCiAgICAgcmVtb3ZlRnJvbVVuc3RhcnRlZExp
c3RJZk5lY2Vzc2FyeSgpOwogCiAgICAgc3RvcCgpOwpAQCAtNDIzLDcgKzQzNSw3IEBAIHZvaWQg
UGx1Z2luVmlldzo6cGVyZm9ybVJlcXVlc3QoUGx1Z2luUmVxdWVzdCogcmVxdWVzdCkKICAgICAg
ICAgLy8gaWYgdGhpcyBpcyBub3QgYSB0YXJnZXRlZCByZXF1ZXN0LCBjcmVhdGUgYSBzdHJlYW0g
Zm9yIGl0LiBvdGhlcndpc2UsCiAgICAgICAgIC8vIGp1c3QgcGFzcyBpdCBvZmYgdG8gdGhlIGxv
YWRlcgogICAgICAgICBpZiAodGFyZ2V0RnJhbWVOYW1lLmlzRW1wdHkoKSkgewotICAgICAgICAg
ICAgUmVmUHRyPFBsdWdpblN0cmVhbT4gc3RyZWFtID0gUGx1Z2luU3RyZWFtOjpjcmVhdGUodGhp
cywgbV9wYXJlbnRGcmFtZSwgcmVxdWVzdC0+ZnJhbWVMb2FkUmVxdWVzdCgpLnJlc291cmNlUmVx
dWVzdCgpLCByZXF1ZXN0LT5zZW5kTm90aWZpY2F0aW9uKCksIHJlcXVlc3QtPm5vdGlmeURhdGEo
KSwgcGx1Z2luKCktPnBsdWdpbkZ1bmNzKCksIGluc3RhbmNlKCksIG1fcGx1Z2luLT5xdWlya3Mo
KSk7CisgICAgICAgICAgICBSZWZQdHI8UGx1Z2luU3RyZWFtPiBzdHJlYW0gPSBQbHVnaW5TdHJl
YW06OmNyZWF0ZSh0aGlzLCBtX3BhcmVudEZyYW1lLmdldCgpLCByZXF1ZXN0LT5mcmFtZUxvYWRS
ZXF1ZXN0KCkucmVzb3VyY2VSZXF1ZXN0KCksIHJlcXVlc3QtPnNlbmROb3RpZmljYXRpb24oKSwg
cmVxdWVzdC0+bm90aWZ5RGF0YSgpLCBwbHVnaW4oKS0+cGx1Z2luRnVuY3MoKSwgaW5zdGFuY2Uo
KSwgbV9wbHVnaW4tPnF1aXJrcygpKTsKICAgICAgICAgICAgIG1fc3RyZWFtcy5hZGQoc3RyZWFt
KTsKICAgICAgICAgICAgIHN0cmVhbS0+c3RhcnQoKTsKICAgICAgICAgfSBlbHNlIHsKQEAgLTQ2
MSw3ICs0NzMsNyBAQCB2b2lkIFBsdWdpblZpZXc6OnBlcmZvcm1SZXF1ZXN0KFBsdWdpblJlcXVl
c3QqIHJlcXVlc3QpCiAgICAgICAgIGlmIChnZXRTdHJpbmcocGFyZW50RnJhbWUtPnNjcmlwdCgp
LCByZXN1bHQsIHJlc3VsdFN0cmluZykpCiAgICAgICAgICAgICBjc3RyID0gcmVzdWx0U3RyaW5n
LnV0ZjgoKTsKIAotICAgICAgICBSZWZQdHI8UGx1Z2luU3RyZWFtPiBzdHJlYW0gPSBQbHVnaW5T
dHJlYW06OmNyZWF0ZSh0aGlzLCBtX3BhcmVudEZyYW1lLCByZXF1ZXN0LT5mcmFtZUxvYWRSZXF1
ZXN0KCkucmVzb3VyY2VSZXF1ZXN0KCksIHJlcXVlc3QtPnNlbmROb3RpZmljYXRpb24oKSwgcmVx
dWVzdC0+bm90aWZ5RGF0YSgpLCBwbHVnaW4oKS0+cGx1Z2luRnVuY3MoKSwgaW5zdGFuY2UoKSwg
bV9wbHVnaW4tPnF1aXJrcygpKTsKKyAgICAgICAgUmVmUHRyPFBsdWdpblN0cmVhbT4gc3RyZWFt
ID0gUGx1Z2luU3RyZWFtOjpjcmVhdGUodGhpcywgbV9wYXJlbnRGcmFtZS5nZXQoKSwgcmVxdWVz
dC0+ZnJhbWVMb2FkUmVxdWVzdCgpLnJlc291cmNlUmVxdWVzdCgpLCByZXF1ZXN0LT5zZW5kTm90
aWZpY2F0aW9uKCksIHJlcXVlc3QtPm5vdGlmeURhdGEoKSwgcGx1Z2luKCktPnBsdWdpbkZ1bmNz
KCksIGluc3RhbmNlKCksIG1fcGx1Z2luLT5xdWlya3MoKSk7CiAgICAgICAgIG1fc3RyZWFtcy5h
ZGQoc3RyZWFtKTsKICAgICAgICAgc3RyZWFtLT5zZW5kSmF2YVNjcmlwdFN0cmVhbShyZXF1ZXN0
VVJMLCBjc3RyKTsKICAgICB9CkBAIC02MDAsNyArNjEyLDcgQEAgTlBFcnJvciBQbHVnaW5WaWV3
OjpkZXN0cm95U3RyZWFtKE5QU3RyZWFtKiBzdHJlYW0sIE5QUmVhc29uIHJlYXNvbikKIHZvaWQg
UGx1Z2luVmlldzo6c3RhdHVzKGNvbnN0IGNoYXIqIG1lc3NhZ2UpCiB7CiAgICAgaWYgKFBhZ2Uq
IHBhZ2UgPSBtX3BhcmVudEZyYW1lLT5wYWdlKCkpCi0gICAgICAgIHBhZ2UtPmNocm9tZSgpLT5z
ZXRTdGF0dXNiYXJUZXh0KG1fcGFyZW50RnJhbWUsIFN0cmluZyhtZXNzYWdlKSk7CisgICAgICAg
IHBhZ2UtPmNocm9tZSgpLT5zZXRTdGF0dXNiYXJUZXh0KG1fcGFyZW50RnJhbWUuZ2V0KCksIFN0
cmluZyhtZXNzYWdlKSk7CiB9CiAKIE5QRXJyb3IgUGx1Z2luVmlldzo6c2V0VmFsdWUoTlBQVmFy
aWFibGUgdmFyaWFibGUsIHZvaWQqIHZhbHVlKQpAQCAtNzkyLDYgKzgwNCw3IEBAIFBsdWdpblZp
ZXc6OlBsdWdpblZpZXcoRnJhbWUqIHBhcmVudEZyYW1lLCBjb25zdCBJbnRTaXplJiBzaXplLCBQ
bHVnaW5QYWNrYWdlKiBwCiAgICAgLCBtX3JlcXVlc3RUaW1lcih0aGlzLCAmUGx1Z2luVmlldzo6
cmVxdWVzdFRpbWVyRmlyZWQpCiAgICAgLCBtX2ludmFsaWRhdGVUaW1lcih0aGlzLCAmUGx1Z2lu
Vmlldzo6aW52YWxpZGF0ZVRpbWVyRmlyZWQpCiAgICAgLCBtX3BvcFBvcHVwc1N0YXRlVGltZXIo
dGhpcywgJlBsdWdpblZpZXc6OnBvcFBvcHVwc1N0YXRlVGltZXJGaXJlZCkKKyAgICAsIG1fbGlm
ZVN1cHBvcnRUaW1lcih0aGlzLCAmUGx1Z2luVmlldzo6bGlmZVN1cHBvcnRUaW1lckZpcmVkKQog
ICAgICwgbV9tb2RlKGxvYWRNYW51YWxseSA/IE5QX0ZVTEwgOiBOUF9FTUJFRCkKICAgICAsIG1f
cGFyYW1OYW1lcygwKQogICAgICwgbV9wYXJhbVZhbHVlcygwKQpAQCAtODQ1LDYgKzg1OCw4IEBA
IFBsdWdpblZpZXc6OlBsdWdpblZpZXcoRnJhbWUqIHBhcmVudEZyYW1lLCBjb25zdCBJbnRTaXpl
JiBzaXplLCBQbHVnaW5QYWNrYWdlKiBwCiAgICAgbV9pbnN0YW5jZS0+bmRhdGEgPSB0aGlzOwog
ICAgIG1faW5zdGFuY2UtPnBkYXRhID0gMDsKIAorICAgIGluc3RhbmNlTWFwKCkuYWRkKG1faW5z
dGFuY2UsIHRoaXMpOworCiAgICAgc2V0UGFyYW1ldGVycyhwYXJhbU5hbWVzLCBwYXJhbVZhbHVl
cyk7CiAKICAgICBtZW1zZXQoJm1fbnBXaW5kb3csIDAsIHNpemVvZihtX25wV2luZG93KSk7CkBA
IC04NzEsNyArODg2LDcgQEAgdm9pZCBQbHVnaW5WaWV3OjpkaWRSZWNlaXZlUmVzcG9uc2UoY29u
c3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCiAgICAgQVNTRVJUKG1fbG9hZE1hbnVhbGx5
KTsKICAgICBBU1NFUlQoIW1fbWFudWFsU3RyZWFtKTsKIAotICAgIG1fbWFudWFsU3RyZWFtID0g
UGx1Z2luU3RyZWFtOjpjcmVhdGUodGhpcywgbV9wYXJlbnRGcmFtZSwgbV9wYXJlbnRGcmFtZS0+
bG9hZGVyKCktPmFjdGl2ZURvY3VtZW50TG9hZGVyKCktPnJlcXVlc3QoKSwgZmFsc2UsIDAsIHBs
dWdpbigpLT5wbHVnaW5GdW5jcygpLCBpbnN0YW5jZSgpLCBtX3BsdWdpbi0+cXVpcmtzKCkpOwor
ICAgIG1fbWFudWFsU3RyZWFtID0gUGx1Z2luU3RyZWFtOjpjcmVhdGUodGhpcywgbV9wYXJlbnRG
cmFtZS5nZXQoKSwgbV9wYXJlbnRGcmFtZS0+bG9hZGVyKCktPmFjdGl2ZURvY3VtZW50TG9hZGVy
KCktPnJlcXVlc3QoKSwgZmFsc2UsIDAsIHBsdWdpbigpLT5wbHVnaW5GdW5jcygpLCBpbnN0YW5j
ZSgpLCBtX3BsdWdpbi0+cXVpcmtzKCkpOwogICAgIG1fbWFudWFsU3RyZWFtLT5zZXRMb2FkTWFu
dWFsbHkodHJ1ZSk7CiAKICAgICBtX21hbnVhbFN0cmVhbS0+ZGlkUmVjZWl2ZVJlc3BvbnNlKDAs
IHJlc3BvbnNlKTsKQEAgLTEyNDksNCArMTI2NCwyNyBAQCBTdHJpbmcgUGx1Z2luVmlldzo6cGx1
Z2luTmFtZSgpIGNvbnN0CiAgICAgcmV0dXJuIG1fcGx1Z2luLT5uYW1lKCk7CiB9CiAKK3ZvaWQg
UGx1Z2luVmlldzo6bGlmZVN1cHBvcnRUaW1lckZpcmVkKFRpbWVyPFBsdWdpblZpZXc+KikKK3sK
KyAgICBkZXJlZigpOworfQorCit2b2lkIFBsdWdpblZpZXc6OmtlZXBBbGl2ZSgpCit7CisgICAg
aWYgKG1fbGlmZVN1cHBvcnRUaW1lci5pc0FjdGl2ZSgpKQorICAgICAgICByZXR1cm47CisKKyAg
ICByZWYoKTsKKyAgICBtX2xpZmVTdXBwb3J0VGltZXIuc3RhcnRPbmVTaG90KDApOworfQorCit2
b2lkIFBsdWdpblZpZXc6OmtlZXBBbGl2ZShOUFAgaW5zdGFuY2UpCit7CisgICAgUGx1Z2luVmll
dyogdmlldyA9IGluc3RhbmNlTWFwKCkuZ2V0KGluc3RhbmNlKTsKKyAgICBpZiAoIXZpZXcpCisg
ICAgICAgIHJldHVybjsKKworICAgIHZpZXctPmtlZXBBbGl2ZSgpOworfQorCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5oIGIv
V2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcuaAppbmRleCBhYzYwZmQ0Li5iYjA2ZjE0IDEwMDY0
NAotLS0gYS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5oCisrKyBiL1dlYkNvcmUvcGx1Z2lu
cy9QbHVnaW5WaWV3LmgKQEAgLTE3OSw3ICsxNzksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
ICAgICAgICAgdmlydHVhbCBib29sIGlzUGx1Z2luVmlldygpIGNvbnN0IHsgcmV0dXJuIHRydWU7
IH0KIAotICAgICAgICBGcmFtZSogcGFyZW50RnJhbWUoKSBjb25zdCB7IHJldHVybiBtX3BhcmVu
dEZyYW1lOyB9CisgICAgICAgIEZyYW1lKiBwYXJlbnRGcmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1f
cGFyZW50RnJhbWUuZ2V0KCk7IH0KIAogICAgICAgICB2b2lkIGZvY3VzUGx1Z2luRWxlbWVudCgp
OwogCkBAIC0yMTMsNiArMjEzLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIGJv
b2wgc3RhcnQoKTsKIAorICAgICAgICBzdGF0aWMgdm9pZCBrZWVwQWxpdmUoTlBQKTsKKyAgICAg
ICAgdm9pZCBrZWVwQWxpdmUoKTsKKwogICAgIHByaXZhdGU6CiAgICAgICAgIFBsdWdpblZpZXco
RnJhbWUqIHBhcmVudEZyYW1lLCBjb25zdCBJbnRTaXplJiwgUGx1Z2luUGFja2FnZSosIEVsZW1l
bnQqLCBjb25zdCBLVVJMJiwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhcmFtTmFtZXMsIGNvbnN0
IFZlY3RvcjxTdHJpbmc+JiBwYXJhbVZhbHVlcywgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgYm9v
bCBsb2FkTWFudWFsbHkpOwogCkBAIC0yMzgsNyArMjQxLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogICAgICAgICBzdGF0aWMgQk9PTCBXSU5BUEkgaG9va2VkRW5kUGFpbnQoSFdORCwgY29uc3Qg
UEFJTlRTVFJVQ1QqKTsKICNlbmRpZgogCi0gICAgICAgIEZyYW1lKiBtX3BhcmVudEZyYW1lOwor
ICAgICAgICBSZWZQdHI8RnJhbWU+IG1fcGFyZW50RnJhbWU7CiAgICAgICAgIFJlZlB0cjxQbHVn
aW5QYWNrYWdlPiBtX3BsdWdpbjsKICAgICAgICAgRWxlbWVudCogbV9lbGVtZW50OwogICAgICAg
ICBib29sIG1faXNTdGFydGVkOwpAQCAtMjU3LDYgKzI2MCw5IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICAgICAgdm9pZCBwb3BQb3B1cHNTdGF0ZVRpbWVyRmlyZWQoVGltZXI8UGx1Z2luVmll
dz4qKTsKICAgICAgICAgVGltZXI8UGx1Z2luVmlldz4gbV9wb3BQb3B1cHNTdGF0ZVRpbWVyOwog
CisgICAgICAgIHZvaWQgbGlmZVN1cHBvcnRUaW1lckZpcmVkKFRpbWVyPFBsdWdpblZpZXc+Kik7
CisgICAgICAgIFRpbWVyPFBsdWdpblZpZXc+IG1fbGlmZVN1cHBvcnRUaW1lcjsKKwogI2lmbmRl
ZiBOUF9OT19DQVJCT04KICAgICAgICAgYm9vbCBkaXNwYXRjaE5QRXZlbnQoTlBFdmVudCYpOwog
I2VuZGlmCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvZ3RrL1BsdWdpblZpZXdHdGsuY3Bw
IGIvV2ViQ29yZS9wbHVnaW5zL2d0ay9QbHVnaW5WaWV3R3RrLmNwcAppbmRleCA4ZjRiMmQ1Li42
ZDk5MmZiIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsdWdpbnMvZ3RrL1BsdWdpblZpZXdHdGsuY3Bw
CisrKyBiL1dlYkNvcmUvcGx1Z2lucy9ndGsvUGx1Z2luVmlld0d0ay5jcHAKQEAgLTEzNyw3ICsx
MzcsNyBAQCB2b2lkIFBsdWdpblZpZXc6OnVwZGF0ZVBsdWdpbldpZGdldCgpCiAgICAgICAgIGlm
IChtX2RyYXdhYmxlKQogICAgICAgICAgICAgWEZyZWVQaXhtYXAoR0RLX0RJU1BMQVkoKSwgbV9k
cmF3YWJsZSk7CiAKLSAgICAgICAgbV9kcmF3YWJsZSA9IFhDcmVhdGVQaXhtYXAoR0RLX0RJU1BM
QVkoKSwgZ2V0Um9vdFdpbmRvdyhtX3BhcmVudEZyYW1lKSwKKyAgICAgICAgbV9kcmF3YWJsZSA9
IFhDcmVhdGVQaXhtYXAoR0RLX0RJU1BMQVkoKSwgZ2V0Um9vdFdpbmRvdyhtX3BhcmVudEZyYW1l
LmdldCgpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV93aW5kb3dSZWN0
LndpZHRoKCksIG1fd2luZG93UmVjdC5oZWlnaHQoKSwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKChOUFNldFdpbmRvd0NhbGxiYWNrU3RydWN0KiltX25wV2luZG93LndzX2lu
Zm8pLT5kZXB0aCk7CiAgICAgICAgIFhTeW5jKEdES19ESVNQTEFZKCksIEZhbHNlKTsgLy8gbWFr
ZSBzdXJlIHRoYXQgdGhlIHNlcnZlciBrbm93cyBhYm91dCB0aGUgRHJhd2FibGUKQEAgLTMxOSw3
ICszMTksNyBAQCB2b2lkIFBsdWdpblZpZXc6OmhhbmRsZUtleWJvYXJkRXZlbnQoS2V5Ym9hcmRF
dmVudCogZXZlbnQpCiAgICAgR2RrRXZlbnRLZXkqIGdka0V2ZW50ID0gZXZlbnQtPmtleUV2ZW50
KCktPmdka0V2ZW50S2V5KCk7CiAKICAgICB4RXZlbnQudHlwZSA9IChldmVudC0+dHlwZSgpID09
IGV2ZW50TmFtZXMoKS5rZXlkb3duRXZlbnQpID8gMiA6IDM7IC8vIEtleVByZXNzL1JlbGVhc2Ug
Z2V0IHVuc2V0IHNvbWV3aGVyZQotICAgIHhFdmVudC54a2V5LnJvb3QgPSBnZXRSb290V2luZG93
KG1fcGFyZW50RnJhbWUpOworICAgIHhFdmVudC54a2V5LnJvb3QgPSBnZXRSb290V2luZG93KG1f
cGFyZW50RnJhbWUuZ2V0KCkpOwogICAgIHhFdmVudC54a2V5LnN1YndpbmRvdyA9IDA7IC8vIHdl
IGhhdmUgbm8gY2hpbGQgd2luZG93CiAgICAgeEV2ZW50LnhrZXkudGltZSA9IGV2ZW50LT50aW1l
U3RhbXAoKTsKICAgICB4RXZlbnQueGtleS5zdGF0ZSA9IGdka0V2ZW50LT5zdGF0ZTsgLy8gR2Rr
TW9kaWZpZXJUeXBlIG1pcnJvcnMgeGxpYiBzdGF0ZSBtYXNrcwpAQCAtNDQ1LDExICs0NDUsMTEg
QEAgdm9pZCBQbHVnaW5WaWV3OjpoYW5kbGVNb3VzZUV2ZW50KE1vdXNlRXZlbnQqIGV2ZW50KQog
ICAgIEludFBvaW50IHBvc3Rab29tUG9zID0gcm91bmRlZEludFBvaW50KG1fZWxlbWVudC0+cmVu
ZGVyZXIoKS0+YWJzb2x1dGVUb0xvY2FsKGV2ZW50LT5hYnNvbHV0ZUxvY2F0aW9uKCkpKTsKIAog
ICAgIGlmIChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5tb3VzZWRvd25FdmVudCB8fCBl
dmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5tb3VzZXVwRXZlbnQpCi0gICAgICAgIHNldFhC
dXR0b25FdmVudFNwZWNpZmljRmllbGRzKCZ4RXZlbnQsIGV2ZW50LCBwb3N0Wm9vbVBvcywgbV9w
YXJlbnRGcmFtZSk7CisgICAgICAgIHNldFhCdXR0b25FdmVudFNwZWNpZmljRmllbGRzKCZ4RXZl
bnQsIGV2ZW50LCBwb3N0Wm9vbVBvcywgbV9wYXJlbnRGcmFtZS5nZXQoKSk7CiAgICAgZWxzZSBp
ZiAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkubW91c2Vtb3ZlRXZlbnQpCi0gICAgICAg
IHNldFhNb3Rpb25FdmVudFNwZWNpZmljRmllbGRzKCZ4RXZlbnQsIGV2ZW50LCBwb3N0Wm9vbVBv
cywgbV9wYXJlbnRGcmFtZSk7CisgICAgICAgIHNldFhNb3Rpb25FdmVudFNwZWNpZmljRmllbGRz
KCZ4RXZlbnQsIGV2ZW50LCBwb3N0Wm9vbVBvcywgbV9wYXJlbnRGcmFtZS5nZXQoKSk7CiAgICAg
ZWxzZSBpZiAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkubW91c2VvdXRFdmVudCB8fCBl
dmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5tb3VzZW92ZXJFdmVudCkKLSAgICAgICAgc2V0
WENyb3NzaW5nRXZlbnRTcGVjaWZpY0ZpZWxkcygmeEV2ZW50LCBldmVudCwgcG9zdFpvb21Qb3Ms
IG1fcGFyZW50RnJhbWUpOworICAgICAgICBzZXRYQ3Jvc3NpbmdFdmVudFNwZWNpZmljRmllbGRz
KCZ4RXZlbnQsIGV2ZW50LCBwb3N0Wm9vbVBvcywgbV9wYXJlbnRGcmFtZS5nZXQoKSk7CiAgICAg
ZWxzZQogICAgICAgICByZXR1cm47CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0No
YW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxvZwppbmRleCAwMzUzODQ2Li4wZTE5M2UwIDEw
MDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTAtMDItMDggIEpvbiBIb25leWN1dHQgIDxqaG9uZXlj
dXR0QGFwcGxlLmNvbT4KKworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzQzNjg3NT4gQ3Jhc2gg
aW4gRmxhc2ggd2hlbiB2aXNpdGluZworICAgICAgICBodHRwOi8vd3d3LmNjdHYuY29tL2RlZmF1
bHQuc2h0bWwgKFdFUiBJRCA4MTkyOTgyMDApIFt3YXRzb24gMjUwMjI2MF0KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3dp
bi9UZXN0TmV0c2NhcGVQbHVnaW4vbWFpbi5jcHA6CisgICAgICAgIChleGVjdXRlU2NyaXB0KToK
KyAgICAgICAgTW92ZWQgdG8gYW4gZWFybGllciBwb2ludCBpbiB0aGUgZmlsZS4KKyAgICAgICAg
KE5QUF9OZXcpOgorICAgICAgICBJZiB0aGUgcGx1Zy1pbiBoYXMgYW4gb25EZXN0cm95IGF0dHJp
YnV0ZSwgc3RvcmUgaXRzIHZhbHVlLgorICAgICAgICAoTlBQX0Rlc3Ryb3kpOgorICAgICAgICBJ
ZiB0aGUgcGx1Zy1pbiBoYXMgY29kZSB0byBydW4gb24gZGVzdHJ1Y3Rpb24sIHJ1biBpdCBhbmQg
ZnJlZSBpdC4KKwogMjAxMC0wMi0wNSAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNv
bT4KIAogICAgICAgICBSZXZpZXdlZCBieSBPbGl2ZXIgSHVudC4KZGlmZiAtLWdpdCBhL1dlYktp
dFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9UZXN0TmV0c2NhcGVQbHVnaW4vbWFpbi5jcHAgYi9X
ZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vVGVzdE5ldHNjYXBlUGx1Z2luL21haW4uY3Bw
CmluZGV4IDgyYjFkNGQuLjY1ODFiMDQgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBSZW5k
ZXJUcmVlL3dpbi9UZXN0TmV0c2NhcGVQbHVnaW4vbWFpbi5jcHAKKysrIGIvV2ViS2l0VG9vbHMv
RHVtcFJlbmRlclRyZWUvd2luL1Rlc3ROZXRzY2FwZVBsdWdpbi9tYWluLmNwcApAQCAtNzEsNiAr
NzEsMTkgQEAgTlBFcnJvciBfX3N0ZGNhbGwgTlBfU2h1dGRvd24oKQogICAgIHJldHVybiBOUEVS
Ul9OT19FUlJPUjsKIH0KIAorc3RhdGljIHZvaWQgZXhlY3V0ZVNjcmlwdChjb25zdCBQbHVnaW5P
YmplY3QqIG9iaiwgY29uc3QgY2hhciogc2NyaXB0KQoreworICAgIE5QT2JqZWN0ICp3aW5kb3dT
Y3JpcHRPYmplY3Q7CisgICAgYnJvd3Nlci0+Z2V0dmFsdWUob2JqLT5ucHAsIE5QTlZXaW5kb3dO
UE9iamVjdCwgJndpbmRvd1NjcmlwdE9iamVjdCk7CisKKyAgICBOUFN0cmluZyBucFNjcmlwdDsK
KyAgICBucFNjcmlwdC5VVEY4Q2hhcmFjdGVycyA9IHNjcmlwdDsKKyAgICBucFNjcmlwdC5VVEY4
TGVuZ3RoID0gc3RybGVuKHNjcmlwdCk7CisKKyAgICBOUFZhcmlhbnQgYnJvd3NlclJlc3VsdDsK
KyAgICBicm93c2VyLT5ldmFsdWF0ZShvYmotPm5wcCwgd2luZG93U2NyaXB0T2JqZWN0LCAmbnBT
Y3JpcHQsICZicm93c2VyUmVzdWx0KTsKKyAgICBicm93c2VyLT5yZWxlYXNldmFyaWFudHZhbHVl
KCZicm93c2VyUmVzdWx0KTsKK30KIAogTlBFcnJvciBOUFBfTmV3KE5QTUlNRVR5cGUgcGx1Z2lu
VHlwZSwgTlBQIGluc3RhbmNlLCB1aW50MTYgbW9kZSwgaW50MTYgYXJnYywgY2hhciAqYXJnbltd
LCBjaGFyICphcmd2W10sIE5QU2F2ZWREYXRhICpzYXZlZCkKIHsKQEAgLTg0LDYgKzk3LDggQEAg
TlBFcnJvciBOUFBfTmV3KE5QTUlNRVR5cGUgcGx1Z2luVHlwZSwgTlBQIGluc3RhbmNlLCB1aW50
MTYgbW9kZSwgaW50MTYgYXJnYywgY2gKICAgICAgICAgICAgICAgICBvYmotPm9uU3RyZWFtRGVz
dHJveSA9IF9zdHJkdXAoYXJndltpXSk7CiAgICAgICAgICAgICBlbHNlIGlmIChfc3RyaWNtcChh
cmduW2ldLCAib25VUkxOb3RpZnkiKSA9PSAwICYmICFvYmotPm9uVVJMTm90aWZ5KQogICAgICAg
ICAgICAgICAgIG9iai0+b25VUkxOb3RpZnkgPSBfc3RyZHVwKGFyZ3ZbaV0pOworICAgICAgICAg
ICAgZWxzZSBpZiAoX3N0cmljbXAoYXJnbltpXSwgIm9uRGVzdHJveSIpID09IDAgJiYgIW9iai0+
b25EZXN0cm95KQorICAgICAgICAgICAgICAgIG9iai0+b25EZXN0cm95ID0gX3N0cmR1cChhcmd2
W2ldKTsKICAgICAgICAgICAgIGVsc2UgaWYgKF9zdHJpY21wKGFyZ25baV0sICJsb2dTcmMiKSA9
PSAwKSB7CiAgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBhcmdjOyBpKyspCiAg
ICAgICAgICAgICAgICAgICAgIGlmIChfc3RyaWNtcChhcmduW2ldLCAic3JjIikgPT0gMCkKQEAg
LTExMyw2ICsxMjgsMTEgQEAgTlBFcnJvciBOUFBfRGVzdHJveShOUFAgaW5zdGFuY2UsIE5QU2F2
ZWREYXRhICoqc2F2ZSkKICAgICAgICAgaWYgKG9iai0+b25TdHJlYW1EZXN0cm95KQogICAgICAg
ICAgICAgZnJlZShvYmotPm9uU3RyZWFtRGVzdHJveSk7CiAKKyAgICAgICAgaWYgKG9iai0+b25E
ZXN0cm95KSB7CisgICAgICAgICAgICBleGVjdXRlU2NyaXB0KG9iaiwgb2JqLT5vbkRlc3Ryb3kp
OworICAgICAgICAgICAgZnJlZShvYmotPm9uRGVzdHJveSk7CisgICAgICAgIH0KKwogICAgICAg
ICBpZiAob2JqLT5sb2dEZXN0cm95KQogICAgICAgICAgICAgcHJpbnRmKCJQTFVHSU46IE5QUF9E
ZXN0cm95XG4iKTsKIApAQCAtMTM1LDIwICsxNTUsNiBAQCBOUEVycm9yIE5QUF9TZXRXaW5kb3co
TlBQIGluc3RhbmNlLCBOUFdpbmRvdyAqd2luZG93KQogICAgIHJldHVybiBOUEVSUl9OT19FUlJP
UjsKIH0KIAotc3RhdGljIHZvaWQgZXhlY3V0ZVNjcmlwdChjb25zdCBQbHVnaW5PYmplY3QqIG9i
aiwgY29uc3QgY2hhciogc2NyaXB0KQotewotICAgIE5QT2JqZWN0ICp3aW5kb3dTY3JpcHRPYmpl
Y3Q7Ci0gICAgYnJvd3Nlci0+Z2V0dmFsdWUob2JqLT5ucHAsIE5QTlZXaW5kb3dOUE9iamVjdCwg
JndpbmRvd1NjcmlwdE9iamVjdCk7Ci0KLSAgICBOUFN0cmluZyBucFNjcmlwdDsKLSAgICBucFNj
cmlwdC5VVEY4Q2hhcmFjdGVycyA9IHNjcmlwdDsKLSAgICBucFNjcmlwdC5VVEY4TGVuZ3RoID0g
c3RybGVuKHNjcmlwdCk7Ci0KLSAgICBOUFZhcmlhbnQgYnJvd3NlclJlc3VsdDsKLSAgICBicm93
c2VyLT5ldmFsdWF0ZShvYmotPm5wcCwgd2luZG93U2NyaXB0T2JqZWN0LCAmbnBTY3JpcHQsICZi
cm93c2VyUmVzdWx0KTsKLSAgICBicm93c2VyLT5yZWxlYXNldmFyaWFudHZhbHVlKCZicm93c2Vy
UmVzdWx0KTsKLX0KLQogTlBFcnJvciBOUFBfTmV3U3RyZWFtKE5QUCBpbnN0YW5jZSwgTlBNSU1F
VHlwZSB0eXBlLCBOUFN0cmVhbSAqc3RyZWFtLCBOUEJvb2wgc2Vla2FibGUsIHVpbnQxNiAqc3R5
cGUpCiB7CiAgICAgUGx1Z2luT2JqZWN0KiBvYmogPSAoUGx1Z2luT2JqZWN0KilpbnN0YW5jZS0+
cGRhdGE7Ci0tIAoxLjYuNS4yLjE0My5nOGNjNjIKCg==
</data>
<flag name="commit-queue"
          id="31047"
          type_id="3"
          status="-"
          setter="jhoneycutt"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>48391</attachid>
            <date>2010-02-08 20:59:02 -0800</date>
            <delta_ts>2010-02-09 09:48:06 -0800</delta_ts>
            <desc>patch v5</desc>
            <filename>0001-rdar-problem-7436875-Crash-in-Flash-when-visiting.patch</filename>
            <type>text/plain</type>
            <size>21330</size>
            <attacher name="Jon Honeycutt">jhoneycutt</attacher>
            
              <data encoding="base64">RnJvbSA4NGY5YmEyZjczOWQ4YTU4MmI4ODUwNzVlNjFkN2FlMzU3ZWY0YTg4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb24gSG9uZXljdXR0IDxqaG9uZXljdXR0QGFwcGxlLmNvbT4K
RGF0ZTogTW9uLCA4IEZlYiAyMDEwIDE1OjU1OjU0IC0wODAwClN1YmplY3Q6IFtQQVRDSF0gPHJk
YXI6Ly9wcm9ibGVtLzc0MzY4NzU+IENyYXNoIGluIEZsYXNoIHdoZW4gdmlzaXRpbmcKIGh0dHA6
Ly93d3cuY2N0di5jb20vZGVmYXVsdC5zaHRtbCAoV0VSIElEIDgxOTI5ODIwMCkgW3dhdHNvbiAy
NTAyMjYwXQoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpXZWJDb3JlOgoKVGVzdDogcGxh
dGZvcm0vd2luL3BsdWdpbnMvcGx1Z2luLWRlbGF5ZWQtZGVzdHJveS5odG1sCgoqIGJyaWRnZS9O
UF9qc29iamVjdC5jcHA6CihfTlBOX0V2YWx1YXRlKToKSWYgRmxhc2ggY2FsbHMgdGhpcyB0byBl
dmFsdWF0ZSBhIHNjcmlwdCB0aGF0IGRlc3Ryb3lzIHRoZSBQbHVnaW5WaWV3LAp3ZSBjcmFzaCB3
aGVuIHJldHVybmluZyB0byBGbGFzaCBjb2RlLiBCZWZvcmUgZXZhbHVhdGluZyB0aGUgc2NyaXB0
LApjYWxsIFBsdWdpblZpZXc6OmtlZXBBbGl2ZSgpIHRvIGhvbGQgYSByZWYgdG8gdGhpcyBpbnN0
YW5jZSAoYW5kIHJlbGVhc2UKaXQgYXN5bmNocm9ub3VzbHkpLgoKKiBwbHVnaW5zL1BsdWdpblZp
ZXcuY3BwOgooV2ViQ29yZTo6aW5zdGFuY2VNYXApOgpSZXR1cm4gYSBtYXAgZnJvbSB0aGUgTlBQ
IHRvIHRoZSBQbHVnaW5WaWV3LgooV2ViQ29yZTo6UGx1Z2luVmlldzo6flBsdWdpblZpZXcpOgpB
c3NlcnQgdGhhdCB0aGUga2VlcCBhbGl2ZSB0aW1lciBpcyBub3QgcnVubmluZzsgcmVtb3ZlIG91
cnNlbHZlcyBmcm9tCnRoZSBpbnN0YW5jZSBtYXAuCihXZWJDb3JlOjpQbHVnaW5WaWV3OjpwZXJm
b3JtUmVxdWVzdCk6ClRoZSBwYXJlbnQgRnJhbWUgaXMgbm93IGEgUmVmUHRyOyB1c2UgLmdldCgp
LgooV2ViQ29yZTo6UGx1Z2luVmlldzo6c3RhdHVzKToKRGl0dG8uCihXZWJDb3JlOjpQbHVnaW5W
aWV3OjpkaWRSZWNlaXZlUmVzcG9uc2UpOgpEaXR0by4KKFdlYkNvcmU6OlBsdWdpblZpZXc6OlBs
dWdpblZpZXcpOgpBZGQgdGhlIHZpZXcgdG8gdGhlIGluc3RhbmNlIG1hcC4KKFdlYkNvcmU6OlBs
dWdpblZpZXc6OmxpZmVTdXBwb3J0VGltZXJGaXJlZCk6CkRlcmVmIHRoZSBQbHVnaW5WaWV3Lgoo
V2ViQ29yZTo6UGx1Z2luVmlldzo6a2VlcEFsaXZlKToKUmVmIHRoZSBQbHVnaW5WaWV3LCB0aGVu
IHN0YXJ0IGEgdGltZSB0byByZWxlYXNlIHRoZSByZWZlcmVuY2UKYXN5bmNocm9ub3VzbHkuCihX
ZWJDb3JlOjpQbHVnaW5WaWV3OjprZWVwQWxpdmUpOgpGaW5kIHRoZSBQbHVnaW5WaWV3IGluIHRo
ZSBtYXAsIGFuZCBjYWxsIGl0cyBrZWVwQWxpdmUoKSBmdW5jdGlvbi4KCiogcGx1Z2lucy9QbHVn
aW5WaWV3Lmg6Ck1hZGUgbV9wYXJlbnRGcmFtZSBhIFJlZlB0ciwgc28gdGhhdCBpdCB3aWxsIHJl
bWFpbiB2YWxpZCB3aGVuIHRoZQprZWVwIGFsaXZlIHRpbWVyIGZpcmVzLgooV2ViQ29yZTo6UGx1
Z2luVmlldzo6cGFyZW50RnJhbWUpOgpVc2UgLmdldCgpLgoKKiBwbHVnaW5zL2d0ay9QbHVnaW5W
aWV3R3RrLmNwcDoKKFdlYkNvcmU6OlBsdWdpblZpZXc6OnVwZGF0ZVBsdWdpbldpZGdldCk6ClVz
ZSAuZ2V0KCkuCihXZWJDb3JlOjpQbHVnaW5WaWV3OjpoYW5kbGVLZXlib2FyZEV2ZW50KToKVXNl
IC5nZXQoKS4KKFdlYkNvcmU6OlBsdWdpblZpZXc6OmhhbmRsZU1vdXNlRXZlbnQpOgpVc2UgLmdl
dCgpLgoKKiBwbHVnaW5zL1BsdWdpblZpZXdOb25lLmNwcDoKKFdlYkNvcmU6OlBsdWdpblZpZXc6
OmtlZXBBbGl2ZSk6ClN0dWJiZWQuCgpXZWJLaXRUb29sczoKCiogRHVtcFJlbmRlclRyZWUvd2lu
L1Rlc3ROZXRzY2FwZVBsdWdpbi9tYWluLmNwcDoKKGV4ZWN1dGVTY3JpcHQpOgpNb3ZlZCB0byBh
biBlYXJsaWVyIHBvaW50IGluIHRoZSBmaWxlLgooTlBQX05ldyk6CklmIHRoZSBwbHVnLWluIGhh
cyBhbiBvbkRlc3Ryb3kgYXR0cmlidXRlLCBzdG9yZSBpdHMgdmFsdWUuCihOUFBfRGVzdHJveSk6
CklmIHRoZSBwbHVnLWluIGhhcyBjb2RlIHRvIHJ1biBvbiBkZXN0cnVjdGlvbiwgcnVuIGl0IGFu
ZCBmcmVlIGl0LgoKTGF5b3V0VGVzdHM6CgoqIHBsYXRmb3JtL3dpbi9wbHVnaW5zL3BsdWdpbi1k
ZWxheWVkLWRlc3Ryb3ktZXhwZWN0ZWQudHh0OiBBZGRlZC4KKiBwbGF0Zm9ybS93aW4vcGx1Z2lu
cy9wbHVnaW4tZGVsYXllZC1kZXN0cm95Lmh0bWw6IEFkZGVkLgotLS0KIExheW91dFRlc3RzL0No
YW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxMCArKysrCiAuLi4vcGx1
Z2lucy9wbHVnaW4tZGVsYXllZC1kZXN0cm95LWV4cGVjdGVkLnR4dCAgICB8ICAgIDMgKwogLi4u
L3dpbi9wbHVnaW5zL3BsdWdpbi1kZWxheWVkLWRlc3Ryb3kuaHRtbCAgICAgICAgfCAgIDMxICsr
KysrKysrKysrCiBXZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB8ICAgNTYgKysrKysrKysrKysrKysrKysrKysKIFdlYkNvcmUvYnJpZGdlL05QX2pzb2Jq
ZWN0LmNwcCAgICAgICAgICAgICAgICAgICAgIHwgICAgNyArKy0KIFdlYkNvcmUvcGx1Z2lucy9Q
bHVnaW5WaWV3LmNwcCAgICAgICAgICAgICAgICAgICAgIHwgICA0NiArKysrKysrKysrKysrKyst
LQogV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcuaCAgICAgICAgICAgICAgICAgICAgICAgfCAg
IDEwICsrKy0KIFdlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3Tm9uZS5jcHAgICAgICAgICAgICAg
ICAgIHwgICAgNCArKwogV2ViQ29yZS9wbHVnaW5zL2d0ay9QbHVnaW5WaWV3R3RrLmNwcCAgICAg
ICAgICAgICAgfCAgIDEwICsrLS0KIFdlYktpdFRvb2xzL0NoYW5nZUxvZyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHwgICAxNSArKysrKwogLi4uL0R1bXBSZW5kZXJUcmVlL3dpbi9UZXN0
TmV0c2NhcGVQbHVnaW4vbWFpbi5jcHAgfCAgIDM0ICsrKysrKystLS0tLQogMTEgZmlsZXMgY2hh
bmdlZCwgMjAwIGluc2VydGlvbnMoKyksIDI2IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAw
NjQ0IExheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9wbHVnaW5zL3BsdWdpbi1kZWxheWVkLWRlc3Ry
b3ktZXhwZWN0ZWQudHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvcGxhdGZvcm0v
d2luL3BsdWdpbnMvcGx1Z2luLWRlbGF5ZWQtZGVzdHJveS5odG1sCgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDVmMjcyMzku
LjY5Yjg1NDcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMC0wMi0wOCAgSm9uIEhvbmV5Y3V0
dCAgPGpob25leWN1dHRAYXBwbGUuY29tPgorCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83NDM2
ODc1PiBDcmFzaCBpbiBGbGFzaCB3aGVuIHZpc2l0aW5nCisgICAgICAgIGh0dHA6Ly93d3cuY2N0
di5jb20vZGVmYXVsdC5zaHRtbCAoV0VSIElEIDgxOTI5ODIwMCkgW3dhdHNvbiAyNTAyMjYwXQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZv
cm0vd2luL3BsdWdpbnMvcGx1Z2luLWRlbGF5ZWQtZGVzdHJveS1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9wbHVnaW5zL3BsdWdpbi1kZWxheWVkLWRlc3Ryb3ku
aHRtbDogQWRkZWQuCisKIDIwMTAtMDItMDUgIFNoaW5pY2hpcm8gSGFtYWppICA8aGFtYWppQGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBHdXN0YXZvIE5vcm9uaGEgU2lsdmEu
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vcGx1Z2lucy9wbHVnaW4tZGVs
YXllZC1kZXN0cm95LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9wbHVn
aW5zL3BsdWdpbi1kZWxheWVkLWRlc3Ryb3ktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLmY1NDc5ZjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS93aW4vcGx1Z2lucy9wbHVnaW4tZGVsYXllZC1kZXN0cm95LWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDMgQEAKK1RoZSBzaG91bGQgYmUgcHJpbnRlZCBiZWZvcmUgZGVzdHJveS4K
K1BsdWctaW4gZGVzdHJveWVkLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93
aW4vcGx1Z2lucy9wbHVnaW4tZGVsYXllZC1kZXN0cm95Lmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS93aW4vcGx1Z2lucy9wbHVnaW4tZGVsYXllZC1kZXN0cm95Lmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzRjM2QxZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL3dpbi9wbHVnaW5zL3BsdWdpbi1kZWxheWVkLWRlc3Ryb3kuaHRtbApA
QCAtMCwwICsxLDMxIEBACis8aHRtbD4KKzxib2R5PgorICAgIDxwcmUgaWQ9ImNvbnNvbGUiPjwv
cHJlPgorICAgIDxkaXYgaWQ9Im91dGVyIj4KKyAgICAgICAgPGVtYmVkIGlkPSJwbGciIHR5cGU9
ImFwcGxpY2F0aW9uL3gtd2Via2l0LXRlc3QtbmV0c2NhcGUiIG9uRGVzdHJveT0icGx1Z2luRGVz
dHJveWVkKCkiPjwvZW1iZWQ+CisgICAgPC9kaXY+CisgICAgPHNjcmlwdD4KKyAgICAgICAgZnVu
Y3Rpb24gbG9nKG1lc3NhZ2UpCisgICAgICAgIHsKKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJjb25zb2xlIikuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUo
bWVzc2FnZSArICJcbiIpKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIHBsdWdpbkRl
c3Ryb3llZCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGxvZygiUGx1Zy1pbiBkZXN0cm95ZWQu
IikKKyAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICAg
ICAgfQorCisgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAg
ICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgICAg
IGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgfQorCisgICAgICAg
IHZhciBwbHVnaW4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGxnIik7CisKKyAgICAgICAg
cGx1Z2luLnRlc3RFdmFsdWF0ZSgid2luZG93LmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdvdXRl
cicpLmlubmVySFRNTCA9ICcnOyIpOworCisgICAgICAgIGxvZygiVGhlIHNob3VsZCBiZSBwcmlu
dGVkIGJlZm9yZSBkZXN0cm95LiIpOworICAgIDwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA4
ZjIwNTA5Li4zYzc2NTMyIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDEwLTAyLTA4ICBKb24gSG9uZXljdXR0
ICA8amhvbmV5Y3V0dEBhcHBsZS5jb20+CisKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc0MzY4
NzU+IENyYXNoIGluIEZsYXNoIHdoZW4gdmlzaXRpbmcKKyAgICAgICAgaHR0cDovL3d3dy5jY3R2
LmNvbS9kZWZhdWx0LnNodG1sIChXRVIgSUQgODE5Mjk4MjAwKSBbd2F0c29uIDI1MDIyNjBdCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogcGxh
dGZvcm0vd2luL3BsdWdpbnMvcGx1Z2luLWRlbGF5ZWQtZGVzdHJveS5odG1sCisKKyAgICAgICAg
KiBicmlkZ2UvTlBfanNvYmplY3QuY3BwOgorICAgICAgICAoX05QTl9FdmFsdWF0ZSk6CisgICAg
ICAgIElmIEZsYXNoIGNhbGxzIHRoaXMgdG8gZXZhbHVhdGUgYSBzY3JpcHQgdGhhdCBkZXN0cm95
cyB0aGUgUGx1Z2luVmlldywKKyAgICAgICAgd2UgY3Jhc2ggd2hlbiByZXR1cm5pbmcgdG8gRmxh
c2ggY29kZS4gQmVmb3JlIGV2YWx1YXRpbmcgdGhlIHNjcmlwdCwKKyAgICAgICAgY2FsbCBQbHVn
aW5WaWV3OjprZWVwQWxpdmUoKSB0byBob2xkIGEgcmVmIHRvIHRoaXMgaW5zdGFuY2UgKGFuZCBy
ZWxlYXNlCisgICAgICAgIGl0IGFzeW5jaHJvbm91c2x5KS4KKworICAgICAgICAqIHBsdWdpbnMv
UGx1Z2luVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjppbnN0YW5jZU1hcCk6CisgICAgICAg
IFJldHVybiBhIG1hcCBmcm9tIHRoZSBOUFAgdG8gdGhlIFBsdWdpblZpZXcuCisgICAgICAgIChX
ZWJDb3JlOjpQbHVnaW5WaWV3Ojp+UGx1Z2luVmlldyk6CisgICAgICAgIEFzc2VydCB0aGF0IHRo
ZSBrZWVwIGFsaXZlIHRpbWVyIGlzIG5vdCBydW5uaW5nOyByZW1vdmUgb3Vyc2VsdmVzIGZyb20K
KyAgICAgICAgdGhlIGluc3RhbmNlIG1hcC4KKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6
OnBlcmZvcm1SZXF1ZXN0KToKKyAgICAgICAgVGhlIHBhcmVudCBGcmFtZSBpcyBub3cgYSBSZWZQ
dHI7IHVzZSAuZ2V0KCkuCisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpzdGF0dXMpOgor
ICAgICAgICBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OmRpZFJlY2VpdmVS
ZXNwb25zZSk6CisgICAgICAgIERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6
UGx1Z2luVmlldyk6CisgICAgICAgIEFkZCB0aGUgdmlldyB0byB0aGUgaW5zdGFuY2UgbWFwLgor
ICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6bGlmZVN1cHBvcnRUaW1lckZpcmVkKToKKyAg
ICAgICAgRGVyZWYgdGhlIFBsdWdpblZpZXcuCisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3
OjprZWVwQWxpdmUpOgorICAgICAgICBSZWYgdGhlIFBsdWdpblZpZXcsIHRoZW4gc3RhcnQgYSB0
aW1lIHRvIHJlbGVhc2UgdGhlIHJlZmVyZW5jZQorICAgICAgICBhc3luY2hyb25vdXNseS4KKyAg
ICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OmtlZXBBbGl2ZSk6CisgICAgICAgIEZpbmQgdGhl
IFBsdWdpblZpZXcgaW4gdGhlIG1hcCwgYW5kIGNhbGwgaXRzIGtlZXBBbGl2ZSgpIGZ1bmN0aW9u
LgorCisgICAgICAgICogcGx1Z2lucy9QbHVnaW5WaWV3Lmg6CisgICAgICAgIE1hZGUgbV9wYXJl
bnRGcmFtZSBhIFJlZlB0ciwgc28gdGhhdCBpdCB3aWxsIHJlbWFpbiB2YWxpZCB3aGVuIHRoZQor
ICAgICAgICBrZWVwIGFsaXZlIHRpbWVyIGZpcmVzLgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2lu
Vmlldzo6cGFyZW50RnJhbWUpOgorICAgICAgICBVc2UgLmdldCgpLgorCisgICAgICAgICogcGx1
Z2lucy9ndGsvUGx1Z2luVmlld0d0ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3
Ojp1cGRhdGVQbHVnaW5XaWRnZXQpOgorICAgICAgICBVc2UgLmdldCgpLgorICAgICAgICAoV2Vi
Q29yZTo6UGx1Z2luVmlldzo6aGFuZGxlS2V5Ym9hcmRFdmVudCk6CisgICAgICAgIFVzZSAuZ2V0
KCkuCisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpoYW5kbGVNb3VzZUV2ZW50KToKKyAg
ICAgICAgVXNlIC5nZXQoKS4KKworICAgICAgICAqIHBsdWdpbnMvUGx1Z2luVmlld05vbmUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6a2VlcEFsaXZlKToKKyAgICAgICAgU3R1
YmJlZC4KKwogMjAxMC0wMi0wNSAgR2VvZmZyZXkgR2FyZW4gIDxnZ2FyZW5AYXBwbGUuY29tPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IERhbiBCZXJuc3RlaW4uCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2JyaWRnZS9OUF9qc29iamVjdC5jcHAgYi9XZWJDb3JlL2JyaWRnZS9OUF9qc29iamVjdC5jcHAK
aW5kZXggYTMwYjZkNy4uMDYyYTAwOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9icmlkZ2UvTlBfanNv
YmplY3QuY3BwCisrKyBiL1dlYkNvcmUvYnJpZGdlL05QX2pzb2JqZWN0LmNwcApAQCAtMzAsNiAr
MzAsNyBAQAogI2luY2x1ZGUgIk5QX2pzb2JqZWN0LmgiCiAKICNpbmNsdWRlICJQbGF0Zm9ybVN0
cmluZy5oIgorI2luY2x1ZGUgIlBsdWdpblZpZXcuaCIKICNpbmNsdWRlICJTdHJpbmdTb3VyY2VQ
cm92aWRlci5oIgogI2luY2x1ZGUgImNfdXRpbGl0eS5oIgogI2luY2x1ZGUgImNfaW5zdGFuY2Uu
aCIKQEAgLTE5MCw3ICsxOTEsNyBAQCBib29sIF9OUE5fSW52b2tlKE5QUCBucHAsIE5QT2JqZWN0
KiBvLCBOUElkZW50aWZpZXIgbWV0aG9kTmFtZSwgY29uc3QgTlBWYXJpYW50KgogICAgIHJldHVy
biB0cnVlOwogfQogCi1ib29sIF9OUE5fRXZhbHVhdGUoTlBQLCBOUE9iamVjdCogbywgTlBTdHJp
bmcqIHMsIE5QVmFyaWFudCogdmFyaWFudCkKK2Jvb2wgX05QTl9FdmFsdWF0ZShOUFAgaW5zdGFu
Y2UsIE5QT2JqZWN0KiBvLCBOUFN0cmluZyogcywgTlBWYXJpYW50KiB2YXJpYW50KQogewogICAg
IGlmIChvLT5fY2xhc3MgPT0gTlBTY3JpcHRPYmplY3RDbGFzcykgewogICAgICAgICBKYXZhU2Ny
aXB0T2JqZWN0KiBvYmogPSByZWludGVycHJldF9jYXN0PEphdmFTY3JpcHRPYmplY3QqPihvKTsg
CkBAIC0xOTksNiArMjAwLDEwIEBAIGJvb2wgX05QTl9FdmFsdWF0ZShOUFAsIE5QT2JqZWN0KiBv
LCBOUFN0cmluZyogcywgTlBWYXJpYW50KiB2YXJpYW50KQogICAgICAgICBpZiAoIXJvb3RPYmpl
Y3QgfHwgIXJvb3RPYmplY3QtPmlzVmFsaWQoKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
IAorICAgICAgICAvLyBUaGVyZSBpcyBhIGNyYXNoIGluIEZsYXNoIHdoZW4gZXZhbHVhdGluZyBh
IHNjcmlwdCB0aGF0IGRlc3Ryb3lzIHRoZQorICAgICAgICAvLyBQbHVnaW5WaWV3LCBzbyB3ZSBk
ZXN0cm95IGlzIGFzeW5jaHJvbm91c2x5LgorICAgICAgICBQbHVnaW5WaWV3OjprZWVwQWxpdmUo
aW5zdGFuY2UpOworCiAgICAgICAgIEV4ZWNTdGF0ZSogZXhlYyA9IHJvb3RPYmplY3QtPmdsb2Jh
bE9iamVjdCgpLT5nbG9iYWxFeGVjKCk7CiAgICAgICAgIEpTTG9jayBsb2NrKFNpbGVuY2VBc3Nl
cnRpb25zT25seSk7CiAgICAgICAgIFN0cmluZyBzY3JpcHRTdHJpbmcgPSBjb252ZXJ0TlBTdHJp
bmdUb1VURjE2KHMpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcuY3Bw
IGIvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcuY3BwCmluZGV4IDNmZjRjODIuLjllMWQ0NTQg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmNwcAorKysgYi9XZWJDb3Jl
L3BsdWdpbnMvUGx1Z2luVmlldy5jcHAKQEAgLTg2LDYgKzg2LDE0IEBAIHVzaW5nIG5hbWVzcGFj
ZSBIVE1MTmFtZXM7CiAKIHN0YXRpYyBpbnQgc19jYWxsaW5nUGx1Z2luOwogCit0eXBlZGVmIEhh
c2hNYXA8TlBQLCBQbHVnaW5WaWV3Kj4gSW5zdGFuY2VNYXA7CisKK3N0YXRpYyBJbnN0YW5jZU1h
cCYgaW5zdGFuY2VNYXAoKQoreworICAgIHN0YXRpYyBJbnN0YW5jZU1hcCYgbWFwID0gKm5ldyBJ
bnN0YW5jZU1hcDsKKyAgICByZXR1cm4gbWFwOworfQorCiBzdGF0aWMgU3RyaW5nIHNjcmlwdFN0
cmluZ0lmSmF2YVNjcmlwdFVSTChjb25zdCBLVVJMJiB1cmwpCiB7CiAgICAgaWYgKCFwcm90b2Nv
bElzSmF2YVNjcmlwdCh1cmwpKQpAQCAtMjU4LDYgKzI2NiwxMCBAQCBQbHVnaW5WaWV3Ojp+UGx1
Z2luVmlldygpCiB7CiAgICAgTE9HKFBsdWdpbnMsICJQbHVnaW5WaWV3Ojp+UGx1Z2luVmlldygp
Iik7CiAKKyAgICBBU1NFUlQoIW1fbGlmZVN1cHBvcnRUaW1lci5pc0FjdGl2ZSgpKTsKKworICAg
IGluc3RhbmNlTWFwKCkucmVtb3ZlKG1faW5zdGFuY2UpOworCiAgICAgcmVtb3ZlRnJvbVVuc3Rh
cnRlZExpc3RJZk5lY2Vzc2FyeSgpOwogCiAgICAgc3RvcCgpOwpAQCAtNDIzLDcgKzQzNSw3IEBA
IHZvaWQgUGx1Z2luVmlldzo6cGVyZm9ybVJlcXVlc3QoUGx1Z2luUmVxdWVzdCogcmVxdWVzdCkK
ICAgICAgICAgLy8gaWYgdGhpcyBpcyBub3QgYSB0YXJnZXRlZCByZXF1ZXN0LCBjcmVhdGUgYSBz
dHJlYW0gZm9yIGl0LiBvdGhlcndpc2UsCiAgICAgICAgIC8vIGp1c3QgcGFzcyBpdCBvZmYgdG8g
dGhlIGxvYWRlcgogICAgICAgICBpZiAodGFyZ2V0RnJhbWVOYW1lLmlzRW1wdHkoKSkgewotICAg
ICAgICAgICAgUmVmUHRyPFBsdWdpblN0cmVhbT4gc3RyZWFtID0gUGx1Z2luU3RyZWFtOjpjcmVh
dGUodGhpcywgbV9wYXJlbnRGcmFtZSwgcmVxdWVzdC0+ZnJhbWVMb2FkUmVxdWVzdCgpLnJlc291
cmNlUmVxdWVzdCgpLCByZXF1ZXN0LT5zZW5kTm90aWZpY2F0aW9uKCksIHJlcXVlc3QtPm5vdGlm
eURhdGEoKSwgcGx1Z2luKCktPnBsdWdpbkZ1bmNzKCksIGluc3RhbmNlKCksIG1fcGx1Z2luLT5x
dWlya3MoKSk7CisgICAgICAgICAgICBSZWZQdHI8UGx1Z2luU3RyZWFtPiBzdHJlYW0gPSBQbHVn
aW5TdHJlYW06OmNyZWF0ZSh0aGlzLCBtX3BhcmVudEZyYW1lLmdldCgpLCByZXF1ZXN0LT5mcmFt
ZUxvYWRSZXF1ZXN0KCkucmVzb3VyY2VSZXF1ZXN0KCksIHJlcXVlc3QtPnNlbmROb3RpZmljYXRp
b24oKSwgcmVxdWVzdC0+bm90aWZ5RGF0YSgpLCBwbHVnaW4oKS0+cGx1Z2luRnVuY3MoKSwgaW5z
dGFuY2UoKSwgbV9wbHVnaW4tPnF1aXJrcygpKTsKICAgICAgICAgICAgIG1fc3RyZWFtcy5hZGQo
c3RyZWFtKTsKICAgICAgICAgICAgIHN0cmVhbS0+c3RhcnQoKTsKICAgICAgICAgfSBlbHNlIHsK
QEAgLTQ2MSw3ICs0NzMsNyBAQCB2b2lkIFBsdWdpblZpZXc6OnBlcmZvcm1SZXF1ZXN0KFBsdWdp
blJlcXVlc3QqIHJlcXVlc3QpCiAgICAgICAgIGlmIChnZXRTdHJpbmcocGFyZW50RnJhbWUtPnNj
cmlwdCgpLCByZXN1bHQsIHJlc3VsdFN0cmluZykpCiAgICAgICAgICAgICBjc3RyID0gcmVzdWx0
U3RyaW5nLnV0ZjgoKTsKIAotICAgICAgICBSZWZQdHI8UGx1Z2luU3RyZWFtPiBzdHJlYW0gPSBQ
bHVnaW5TdHJlYW06OmNyZWF0ZSh0aGlzLCBtX3BhcmVudEZyYW1lLCByZXF1ZXN0LT5mcmFtZUxv
YWRSZXF1ZXN0KCkucmVzb3VyY2VSZXF1ZXN0KCksIHJlcXVlc3QtPnNlbmROb3RpZmljYXRpb24o
KSwgcmVxdWVzdC0+bm90aWZ5RGF0YSgpLCBwbHVnaW4oKS0+cGx1Z2luRnVuY3MoKSwgaW5zdGFu
Y2UoKSwgbV9wbHVnaW4tPnF1aXJrcygpKTsKKyAgICAgICAgUmVmUHRyPFBsdWdpblN0cmVhbT4g
c3RyZWFtID0gUGx1Z2luU3RyZWFtOjpjcmVhdGUodGhpcywgbV9wYXJlbnRGcmFtZS5nZXQoKSwg
cmVxdWVzdC0+ZnJhbWVMb2FkUmVxdWVzdCgpLnJlc291cmNlUmVxdWVzdCgpLCByZXF1ZXN0LT5z
ZW5kTm90aWZpY2F0aW9uKCksIHJlcXVlc3QtPm5vdGlmeURhdGEoKSwgcGx1Z2luKCktPnBsdWdp
bkZ1bmNzKCksIGluc3RhbmNlKCksIG1fcGx1Z2luLT5xdWlya3MoKSk7CiAgICAgICAgIG1fc3Ry
ZWFtcy5hZGQoc3RyZWFtKTsKICAgICAgICAgc3RyZWFtLT5zZW5kSmF2YVNjcmlwdFN0cmVhbShy
ZXF1ZXN0VVJMLCBjc3RyKTsKICAgICB9CkBAIC02MDAsNyArNjEyLDcgQEAgTlBFcnJvciBQbHVn
aW5WaWV3OjpkZXN0cm95U3RyZWFtKE5QU3RyZWFtKiBzdHJlYW0sIE5QUmVhc29uIHJlYXNvbikK
IHZvaWQgUGx1Z2luVmlldzo6c3RhdHVzKGNvbnN0IGNoYXIqIG1lc3NhZ2UpCiB7CiAgICAgaWYg
KFBhZ2UqIHBhZ2UgPSBtX3BhcmVudEZyYW1lLT5wYWdlKCkpCi0gICAgICAgIHBhZ2UtPmNocm9t
ZSgpLT5zZXRTdGF0dXNiYXJUZXh0KG1fcGFyZW50RnJhbWUsIFN0cmluZyhtZXNzYWdlKSk7Cisg
ICAgICAgIHBhZ2UtPmNocm9tZSgpLT5zZXRTdGF0dXNiYXJUZXh0KG1fcGFyZW50RnJhbWUuZ2V0
KCksIFN0cmluZyhtZXNzYWdlKSk7CiB9CiAKIE5QRXJyb3IgUGx1Z2luVmlldzo6c2V0VmFsdWUo
TlBQVmFyaWFibGUgdmFyaWFibGUsIHZvaWQqIHZhbHVlKQpAQCAtNzkyLDYgKzgwNCw3IEBAIFBs
dWdpblZpZXc6OlBsdWdpblZpZXcoRnJhbWUqIHBhcmVudEZyYW1lLCBjb25zdCBJbnRTaXplJiBz
aXplLCBQbHVnaW5QYWNrYWdlKiBwCiAgICAgLCBtX3JlcXVlc3RUaW1lcih0aGlzLCAmUGx1Z2lu
Vmlldzo6cmVxdWVzdFRpbWVyRmlyZWQpCiAgICAgLCBtX2ludmFsaWRhdGVUaW1lcih0aGlzLCAm
UGx1Z2luVmlldzo6aW52YWxpZGF0ZVRpbWVyRmlyZWQpCiAgICAgLCBtX3BvcFBvcHVwc1N0YXRl
VGltZXIodGhpcywgJlBsdWdpblZpZXc6OnBvcFBvcHVwc1N0YXRlVGltZXJGaXJlZCkKKyAgICAs
IG1fbGlmZVN1cHBvcnRUaW1lcih0aGlzLCAmUGx1Z2luVmlldzo6bGlmZVN1cHBvcnRUaW1lckZp
cmVkKQogICAgICwgbV9tb2RlKGxvYWRNYW51YWxseSA/IE5QX0ZVTEwgOiBOUF9FTUJFRCkKICAg
ICAsIG1fcGFyYW1OYW1lcygwKQogICAgICwgbV9wYXJhbVZhbHVlcygwKQpAQCAtODQ1LDYgKzg1
OCw4IEBAIFBsdWdpblZpZXc6OlBsdWdpblZpZXcoRnJhbWUqIHBhcmVudEZyYW1lLCBjb25zdCBJ
bnRTaXplJiBzaXplLCBQbHVnaW5QYWNrYWdlKiBwCiAgICAgbV9pbnN0YW5jZS0+bmRhdGEgPSB0
aGlzOwogICAgIG1faW5zdGFuY2UtPnBkYXRhID0gMDsKIAorICAgIGluc3RhbmNlTWFwKCkuYWRk
KG1faW5zdGFuY2UsIHRoaXMpOworCiAgICAgc2V0UGFyYW1ldGVycyhwYXJhbU5hbWVzLCBwYXJh
bVZhbHVlcyk7CiAKICAgICBtZW1zZXQoJm1fbnBXaW5kb3csIDAsIHNpemVvZihtX25wV2luZG93
KSk7CkBAIC04NzEsNyArODg2LDcgQEAgdm9pZCBQbHVnaW5WaWV3OjpkaWRSZWNlaXZlUmVzcG9u
c2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCiAgICAgQVNTRVJUKG1fbG9hZE1h
bnVhbGx5KTsKICAgICBBU1NFUlQoIW1fbWFudWFsU3RyZWFtKTsKIAotICAgIG1fbWFudWFsU3Ry
ZWFtID0gUGx1Z2luU3RyZWFtOjpjcmVhdGUodGhpcywgbV9wYXJlbnRGcmFtZSwgbV9wYXJlbnRG
cmFtZS0+bG9hZGVyKCktPmFjdGl2ZURvY3VtZW50TG9hZGVyKCktPnJlcXVlc3QoKSwgZmFsc2Us
IDAsIHBsdWdpbigpLT5wbHVnaW5GdW5jcygpLCBpbnN0YW5jZSgpLCBtX3BsdWdpbi0+cXVpcmtz
KCkpOworICAgIG1fbWFudWFsU3RyZWFtID0gUGx1Z2luU3RyZWFtOjpjcmVhdGUodGhpcywgbV9w
YXJlbnRGcmFtZS5nZXQoKSwgbV9wYXJlbnRGcmFtZS0+bG9hZGVyKCktPmFjdGl2ZURvY3VtZW50
TG9hZGVyKCktPnJlcXVlc3QoKSwgZmFsc2UsIDAsIHBsdWdpbigpLT5wbHVnaW5GdW5jcygpLCBp
bnN0YW5jZSgpLCBtX3BsdWdpbi0+cXVpcmtzKCkpOwogICAgIG1fbWFudWFsU3RyZWFtLT5zZXRM
b2FkTWFudWFsbHkodHJ1ZSk7CiAKICAgICBtX21hbnVhbFN0cmVhbS0+ZGlkUmVjZWl2ZVJlc3Bv
bnNlKDAsIHJlc3BvbnNlKTsKQEAgLTEyNDksNCArMTI2NCwyNyBAQCBTdHJpbmcgUGx1Z2luVmll
dzo6cGx1Z2luTmFtZSgpIGNvbnN0CiAgICAgcmV0dXJuIG1fcGx1Z2luLT5uYW1lKCk7CiB9CiAK
K3ZvaWQgUGx1Z2luVmlldzo6bGlmZVN1cHBvcnRUaW1lckZpcmVkKFRpbWVyPFBsdWdpblZpZXc+
KikKK3sKKyAgICBkZXJlZigpOworfQorCit2b2lkIFBsdWdpblZpZXc6OmtlZXBBbGl2ZSgpCit7
CisgICAgaWYgKG1fbGlmZVN1cHBvcnRUaW1lci5pc0FjdGl2ZSgpKQorICAgICAgICByZXR1cm47
CisKKyAgICByZWYoKTsKKyAgICBtX2xpZmVTdXBwb3J0VGltZXIuc3RhcnRPbmVTaG90KDApOwor
fQorCit2b2lkIFBsdWdpblZpZXc6OmtlZXBBbGl2ZShOUFAgaW5zdGFuY2UpCit7CisgICAgUGx1
Z2luVmlldyogdmlldyA9IGluc3RhbmNlTWFwKCkuZ2V0KGluc3RhbmNlKTsKKyAgICBpZiAoIXZp
ZXcpCisgICAgICAgIHJldHVybjsKKworICAgIHZpZXctPmtlZXBBbGl2ZSgpOworfQorCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmll
dy5oIGIvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcuaAppbmRleCBhYzYwZmQ0Li5iYjA2ZjE0
IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5oCisrKyBiL1dlYkNvcmUv
cGx1Z2lucy9QbHVnaW5WaWV3LmgKQEAgLTE3OSw3ICsxNzksNyBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKICAgICAgICAgdmlydHVhbCBib29sIGlzUGx1Z2luVmlldygpIGNvbnN0IHsgcmV0dXJu
IHRydWU7IH0KIAotICAgICAgICBGcmFtZSogcGFyZW50RnJhbWUoKSBjb25zdCB7IHJldHVybiBt
X3BhcmVudEZyYW1lOyB9CisgICAgICAgIEZyYW1lKiBwYXJlbnRGcmFtZSgpIGNvbnN0IHsgcmV0
dXJuIG1fcGFyZW50RnJhbWUuZ2V0KCk7IH0KIAogICAgICAgICB2b2lkIGZvY3VzUGx1Z2luRWxl
bWVudCgpOwogCkBAIC0yMTMsNiArMjEzLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAg
ICAgIGJvb2wgc3RhcnQoKTsKIAorICAgICAgICBzdGF0aWMgdm9pZCBrZWVwQWxpdmUoTlBQKTsK
KyAgICAgICAgdm9pZCBrZWVwQWxpdmUoKTsKKwogICAgIHByaXZhdGU6CiAgICAgICAgIFBsdWdp
blZpZXcoRnJhbWUqIHBhcmVudEZyYW1lLCBjb25zdCBJbnRTaXplJiwgUGx1Z2luUGFja2FnZSos
IEVsZW1lbnQqLCBjb25zdCBLVVJMJiwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhcmFtTmFtZXMs
IGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwYXJhbVZhbHVlcywgY29uc3QgU3RyaW5nJiBtaW1lVHlw
ZSwgYm9vbCBsb2FkTWFudWFsbHkpOwogCkBAIC0yMzgsNyArMjQxLDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgICAgICBzdGF0aWMgQk9PTCBXSU5BUEkgaG9va2VkRW5kUGFpbnQoSFdORCwg
Y29uc3QgUEFJTlRTVFJVQ1QqKTsKICNlbmRpZgogCi0gICAgICAgIEZyYW1lKiBtX3BhcmVudEZy
YW1lOworICAgICAgICBSZWZQdHI8RnJhbWU+IG1fcGFyZW50RnJhbWU7CiAgICAgICAgIFJlZlB0
cjxQbHVnaW5QYWNrYWdlPiBtX3BsdWdpbjsKICAgICAgICAgRWxlbWVudCogbV9lbGVtZW50Owog
ICAgICAgICBib29sIG1faXNTdGFydGVkOwpAQCAtMjU3LDYgKzI2MCw5IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICAgICAgdm9pZCBwb3BQb3B1cHNTdGF0ZVRpbWVyRmlyZWQoVGltZXI8UGx1
Z2luVmlldz4qKTsKICAgICAgICAgVGltZXI8UGx1Z2luVmlldz4gbV9wb3BQb3B1cHNTdGF0ZVRp
bWVyOwogCisgICAgICAgIHZvaWQgbGlmZVN1cHBvcnRUaW1lckZpcmVkKFRpbWVyPFBsdWdpblZp
ZXc+Kik7CisgICAgICAgIFRpbWVyPFBsdWdpblZpZXc+IG1fbGlmZVN1cHBvcnRUaW1lcjsKKwog
I2lmbmRlZiBOUF9OT19DQVJCT04KICAgICAgICAgYm9vbCBkaXNwYXRjaE5QRXZlbnQoTlBFdmVu
dCYpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlld05vbmUu
Y3BwIGIvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXdOb25lLmNwcAppbmRleCA3MjVhZjgyLi44
YjJmMTdhIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlld05vbmUuY3BwCisr
KyBiL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3Tm9uZS5jcHAKQEAgLTEyMCw0ICsxMjAsOCBA
QCB2b2lkIFBsdWdpblZpZXc6OnJlc3RhcnQoKQogewogfQogCit2b2lkIFBsdWdpblZpZXc6Omtl
ZXBBbGl2ZShOUFApCit7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvcGx1Z2lucy9ndGsvUGx1Z2luVmlld0d0ay5jcHAgYi9XZWJDb3JlL3BsdWdpbnMv
Z3RrL1BsdWdpblZpZXdHdGsuY3BwCmluZGV4IDhmNGIyZDUuLjZkOTkyZmIgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvcGx1Z2lucy9ndGsvUGx1Z2luVmlld0d0ay5jcHAKKysrIGIvV2ViQ29yZS9wbHVn
aW5zL2d0ay9QbHVnaW5WaWV3R3RrLmNwcApAQCAtMTM3LDcgKzEzNyw3IEBAIHZvaWQgUGx1Z2lu
Vmlldzo6dXBkYXRlUGx1Z2luV2lkZ2V0KCkKICAgICAgICAgaWYgKG1fZHJhd2FibGUpCiAgICAg
ICAgICAgICBYRnJlZVBpeG1hcChHREtfRElTUExBWSgpLCBtX2RyYXdhYmxlKTsKIAotICAgICAg
ICBtX2RyYXdhYmxlID0gWENyZWF0ZVBpeG1hcChHREtfRElTUExBWSgpLCBnZXRSb290V2luZG93
KG1fcGFyZW50RnJhbWUpLAorICAgICAgICBtX2RyYXdhYmxlID0gWENyZWF0ZVBpeG1hcChHREtf
RElTUExBWSgpLCBnZXRSb290V2luZG93KG1fcGFyZW50RnJhbWUuZ2V0KCkpLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBtX3dpbmRvd1JlY3Qud2lkdGgoKSwgbV93aW5kb3dS
ZWN0LmhlaWdodCgpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKE5QU2V0
V2luZG93Q2FsbGJhY2tTdHJ1Y3QqKW1fbnBXaW5kb3cud3NfaW5mbyktPmRlcHRoKTsKICAgICAg
ICAgWFN5bmMoR0RLX0RJU1BMQVkoKSwgRmFsc2UpOyAvLyBtYWtlIHN1cmUgdGhhdCB0aGUgc2Vy
dmVyIGtub3dzIGFib3V0IHRoZSBEcmF3YWJsZQpAQCAtMzE5LDcgKzMxOSw3IEBAIHZvaWQgUGx1
Z2luVmlldzo6aGFuZGxlS2V5Ym9hcmRFdmVudChLZXlib2FyZEV2ZW50KiBldmVudCkKICAgICBH
ZGtFdmVudEtleSogZ2RrRXZlbnQgPSBldmVudC0+a2V5RXZlbnQoKS0+Z2RrRXZlbnRLZXkoKTsK
IAogICAgIHhFdmVudC50eXBlID0gKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLmtleWRv
d25FdmVudCkgPyAyIDogMzsgLy8gS2V5UHJlc3MvUmVsZWFzZSBnZXQgdW5zZXQgc29tZXdoZXJl
Ci0gICAgeEV2ZW50LnhrZXkucm9vdCA9IGdldFJvb3RXaW5kb3cobV9wYXJlbnRGcmFtZSk7Cisg
ICAgeEV2ZW50LnhrZXkucm9vdCA9IGdldFJvb3RXaW5kb3cobV9wYXJlbnRGcmFtZS5nZXQoKSk7
CiAgICAgeEV2ZW50LnhrZXkuc3Vid2luZG93ID0gMDsgLy8gd2UgaGF2ZSBubyBjaGlsZCB3aW5k
b3cKICAgICB4RXZlbnQueGtleS50aW1lID0gZXZlbnQtPnRpbWVTdGFtcCgpOwogICAgIHhFdmVu
dC54a2V5LnN0YXRlID0gZ2RrRXZlbnQtPnN0YXRlOyAvLyBHZGtNb2RpZmllclR5cGUgbWlycm9y
cyB4bGliIHN0YXRlIG1hc2tzCkBAIC00NDUsMTEgKzQ0NSwxMSBAQCB2b2lkIFBsdWdpblZpZXc6
OmhhbmRsZU1vdXNlRXZlbnQoTW91c2VFdmVudCogZXZlbnQpCiAgICAgSW50UG9pbnQgcG9zdFpv
b21Qb3MgPSByb3VuZGVkSW50UG9pbnQobV9lbGVtZW50LT5yZW5kZXJlcigpLT5hYnNvbHV0ZVRv
TG9jYWwoZXZlbnQtPmFic29sdXRlTG9jYXRpb24oKSkpOwogCiAgICAgaWYgKGV2ZW50LT50eXBl
KCkgPT0gZXZlbnROYW1lcygpLm1vdXNlZG93bkV2ZW50IHx8IGV2ZW50LT50eXBlKCkgPT0gZXZl
bnROYW1lcygpLm1vdXNldXBFdmVudCkKLSAgICAgICAgc2V0WEJ1dHRvbkV2ZW50U3BlY2lmaWNG
aWVsZHMoJnhFdmVudCwgZXZlbnQsIHBvc3Rab29tUG9zLCBtX3BhcmVudEZyYW1lKTsKKyAgICAg
ICAgc2V0WEJ1dHRvbkV2ZW50U3BlY2lmaWNGaWVsZHMoJnhFdmVudCwgZXZlbnQsIHBvc3Rab29t
UG9zLCBtX3BhcmVudEZyYW1lLmdldCgpKTsKICAgICBlbHNlIGlmIChldmVudC0+dHlwZSgpID09
IGV2ZW50TmFtZXMoKS5tb3VzZW1vdmVFdmVudCkKLSAgICAgICAgc2V0WE1vdGlvbkV2ZW50U3Bl
Y2lmaWNGaWVsZHMoJnhFdmVudCwgZXZlbnQsIHBvc3Rab29tUG9zLCBtX3BhcmVudEZyYW1lKTsK
KyAgICAgICAgc2V0WE1vdGlvbkV2ZW50U3BlY2lmaWNGaWVsZHMoJnhFdmVudCwgZXZlbnQsIHBv
c3Rab29tUG9zLCBtX3BhcmVudEZyYW1lLmdldCgpKTsKICAgICBlbHNlIGlmIChldmVudC0+dHlw
ZSgpID09IGV2ZW50TmFtZXMoKS5tb3VzZW91dEV2ZW50IHx8IGV2ZW50LT50eXBlKCkgPT0gZXZl
bnROYW1lcygpLm1vdXNlb3ZlckV2ZW50KQotICAgICAgICBzZXRYQ3Jvc3NpbmdFdmVudFNwZWNp
ZmljRmllbGRzKCZ4RXZlbnQsIGV2ZW50LCBwb3N0Wm9vbVBvcywgbV9wYXJlbnRGcmFtZSk7Cisg
ICAgICAgIHNldFhDcm9zc2luZ0V2ZW50U3BlY2lmaWNGaWVsZHMoJnhFdmVudCwgZXZlbnQsIHBv
c3Rab29tUG9zLCBtX3BhcmVudEZyYW1lLmdldCgpKTsKICAgICBlbHNlCiAgICAgICAgIHJldHVy
bjsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nIGIvV2ViS2l0VG9v
bHMvQ2hhbmdlTG9nCmluZGV4IDAzNTM4NDYuLjBlMTkzZTAgMTAwNjQ0Ci0tLSBhL1dlYktpdFRv
b2xzL0NoYW5nZUxvZworKysgYi9XZWJLaXRUb29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBA
QAorMjAxMC0wMi0wOCAgSm9uIEhvbmV5Y3V0dCAgPGpob25leWN1dHRAYXBwbGUuY29tPgorCisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS83NDM2ODc1PiBDcmFzaCBpbiBGbGFzaCB3aGVuIHZpc2l0
aW5nCisgICAgICAgIGh0dHA6Ly93d3cuY2N0di5jb20vZGVmYXVsdC5zaHRtbCAoV0VSIElEIDgx
OTI5ODIwMCkgW3dhdHNvbiAyNTAyMjYwXQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvd2luL1Rlc3ROZXRzY2FwZVBsdWdp
bi9tYWluLmNwcDoKKyAgICAgICAgKGV4ZWN1dGVTY3JpcHQpOgorICAgICAgICBNb3ZlZCB0byBh
biBlYXJsaWVyIHBvaW50IGluIHRoZSBmaWxlLgorICAgICAgICAoTlBQX05ldyk6CisgICAgICAg
IElmIHRoZSBwbHVnLWluIGhhcyBhbiBvbkRlc3Ryb3kgYXR0cmlidXRlLCBzdG9yZSBpdHMgdmFs
dWUuCisgICAgICAgIChOUFBfRGVzdHJveSk6CisgICAgICAgIElmIHRoZSBwbHVnLWluIGhhcyBj
b2RlIHRvIHJ1biBvbiBkZXN0cnVjdGlvbiwgcnVuIGl0IGFuZCBmcmVlIGl0LgorCiAyMDEwLTAy
LTA1ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IE9saXZlciBIdW50LgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRy
ZWUvd2luL1Rlc3ROZXRzY2FwZVBsdWdpbi9tYWluLmNwcCBiL1dlYktpdFRvb2xzL0R1bXBSZW5k
ZXJUcmVlL3dpbi9UZXN0TmV0c2NhcGVQbHVnaW4vbWFpbi5jcHAKaW5kZXggODJiMWQ0ZC4uNjU4
MWIwNCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL1Rlc3ROZXRz
Y2FwZVBsdWdpbi9tYWluLmNwcAorKysgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS93aW4v
VGVzdE5ldHNjYXBlUGx1Z2luL21haW4uY3BwCkBAIC03MSw2ICs3MSwxOSBAQCBOUEVycm9yIF9f
c3RkY2FsbCBOUF9TaHV0ZG93bigpCiAgICAgcmV0dXJuIE5QRVJSX05PX0VSUk9SOwogfQogCitz
dGF0aWMgdm9pZCBleGVjdXRlU2NyaXB0KGNvbnN0IFBsdWdpbk9iamVjdCogb2JqLCBjb25zdCBj
aGFyKiBzY3JpcHQpCit7CisgICAgTlBPYmplY3QgKndpbmRvd1NjcmlwdE9iamVjdDsKKyAgICBi
cm93c2VyLT5nZXR2YWx1ZShvYmotPm5wcCwgTlBOVldpbmRvd05QT2JqZWN0LCAmd2luZG93U2Ny
aXB0T2JqZWN0KTsKKworICAgIE5QU3RyaW5nIG5wU2NyaXB0OworICAgIG5wU2NyaXB0LlVURjhD
aGFyYWN0ZXJzID0gc2NyaXB0OworICAgIG5wU2NyaXB0LlVURjhMZW5ndGggPSBzdHJsZW4oc2Ny
aXB0KTsKKworICAgIE5QVmFyaWFudCBicm93c2VyUmVzdWx0OworICAgIGJyb3dzZXItPmV2YWx1
YXRlKG9iai0+bnBwLCB3aW5kb3dTY3JpcHRPYmplY3QsICZucFNjcmlwdCwgJmJyb3dzZXJSZXN1
bHQpOworICAgIGJyb3dzZXItPnJlbGVhc2V2YXJpYW50dmFsdWUoJmJyb3dzZXJSZXN1bHQpOwor
fQogCiBOUEVycm9yIE5QUF9OZXcoTlBNSU1FVHlwZSBwbHVnaW5UeXBlLCBOUFAgaW5zdGFuY2Us
IHVpbnQxNiBtb2RlLCBpbnQxNiBhcmdjLCBjaGFyICphcmduW10sIGNoYXIgKmFyZ3ZbXSwgTlBT
YXZlZERhdGEgKnNhdmVkKQogewpAQCAtODQsNiArOTcsOCBAQCBOUEVycm9yIE5QUF9OZXcoTlBN
SU1FVHlwZSBwbHVnaW5UeXBlLCBOUFAgaW5zdGFuY2UsIHVpbnQxNiBtb2RlLCBpbnQxNiBhcmdj
LCBjaAogICAgICAgICAgICAgICAgIG9iai0+b25TdHJlYW1EZXN0cm95ID0gX3N0cmR1cChhcmd2
W2ldKTsKICAgICAgICAgICAgIGVsc2UgaWYgKF9zdHJpY21wKGFyZ25baV0sICJvblVSTE5vdGlm
eSIpID09IDAgJiYgIW9iai0+b25VUkxOb3RpZnkpCiAgICAgICAgICAgICAgICAgb2JqLT5vblVS
TE5vdGlmeSA9IF9zdHJkdXAoYXJndltpXSk7CisgICAgICAgICAgICBlbHNlIGlmIChfc3RyaWNt
cChhcmduW2ldLCAib25EZXN0cm95IikgPT0gMCAmJiAhb2JqLT5vbkRlc3Ryb3kpCisgICAgICAg
ICAgICAgICAgb2JqLT5vbkRlc3Ryb3kgPSBfc3RyZHVwKGFyZ3ZbaV0pOwogICAgICAgICAgICAg
ZWxzZSBpZiAoX3N0cmljbXAoYXJnbltpXSwgImxvZ1NyYyIpID09IDApIHsKICAgICAgICAgICAg
ICAgICBmb3IgKGludCBpID0gMDsgaSA8IGFyZ2M7IGkrKykKICAgICAgICAgICAgICAgICAgICAg
aWYgKF9zdHJpY21wKGFyZ25baV0sICJzcmMiKSA9PSAwKQpAQCAtMTEzLDYgKzEyOCwxMSBAQCBO
UEVycm9yIE5QUF9EZXN0cm95KE5QUCBpbnN0YW5jZSwgTlBTYXZlZERhdGEgKipzYXZlKQogICAg
ICAgICBpZiAob2JqLT5vblN0cmVhbURlc3Ryb3kpCiAgICAgICAgICAgICBmcmVlKG9iai0+b25T
dHJlYW1EZXN0cm95KTsKIAorICAgICAgICBpZiAob2JqLT5vbkRlc3Ryb3kpIHsKKyAgICAgICAg
ICAgIGV4ZWN1dGVTY3JpcHQob2JqLCBvYmotPm9uRGVzdHJveSk7CisgICAgICAgICAgICBmcmVl
KG9iai0+b25EZXN0cm95KTsKKyAgICAgICAgfQorCiAgICAgICAgIGlmIChvYmotPmxvZ0Rlc3Ry
b3kpCiAgICAgICAgICAgICBwcmludGYoIlBMVUdJTjogTlBQX0Rlc3Ryb3lcbiIpOwogCkBAIC0x
MzUsMjAgKzE1NSw2IEBAIE5QRXJyb3IgTlBQX1NldFdpbmRvdyhOUFAgaW5zdGFuY2UsIE5QV2lu
ZG93ICp3aW5kb3cpCiAgICAgcmV0dXJuIE5QRVJSX05PX0VSUk9SOwogfQogCi1zdGF0aWMgdm9p
ZCBleGVjdXRlU2NyaXB0KGNvbnN0IFBsdWdpbk9iamVjdCogb2JqLCBjb25zdCBjaGFyKiBzY3Jp
cHQpCi17Ci0gICAgTlBPYmplY3QgKndpbmRvd1NjcmlwdE9iamVjdDsKLSAgICBicm93c2VyLT5n
ZXR2YWx1ZShvYmotPm5wcCwgTlBOVldpbmRvd05QT2JqZWN0LCAmd2luZG93U2NyaXB0T2JqZWN0
KTsKLQotICAgIE5QU3RyaW5nIG5wU2NyaXB0OwotICAgIG5wU2NyaXB0LlVURjhDaGFyYWN0ZXJz
ID0gc2NyaXB0OwotICAgIG5wU2NyaXB0LlVURjhMZW5ndGggPSBzdHJsZW4oc2NyaXB0KTsKLQot
ICAgIE5QVmFyaWFudCBicm93c2VyUmVzdWx0OwotICAgIGJyb3dzZXItPmV2YWx1YXRlKG9iai0+
bnBwLCB3aW5kb3dTY3JpcHRPYmplY3QsICZucFNjcmlwdCwgJmJyb3dzZXJSZXN1bHQpOwotICAg
IGJyb3dzZXItPnJlbGVhc2V2YXJpYW50dmFsdWUoJmJyb3dzZXJSZXN1bHQpOwotfQotCiBOUEVy
cm9yIE5QUF9OZXdTdHJlYW0oTlBQIGluc3RhbmNlLCBOUE1JTUVUeXBlIHR5cGUsIE5QU3RyZWFt
ICpzdHJlYW0sIE5QQm9vbCBzZWVrYWJsZSwgdWludDE2ICpzdHlwZSkKIHsKICAgICBQbHVnaW5P
YmplY3QqIG9iaiA9IChQbHVnaW5PYmplY3QqKWluc3RhbmNlLT5wZGF0YTsKLS0gCjEuNi41LjIu
MTQzLmc4Y2M2MgoK
</data>
<flag name="commit-queue"
          id="31065"
          type_id="3"
          status="-"
          setter="jhoneycutt"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>48425</attachid>
            <date>2010-02-09 09:48:06 -0800</date>
            <delta_ts>2010-02-10 10:39:35 -0800</delta_ts>
            <desc>patch v6</desc>
            <filename>0001--rdar-problem-7436875-Crash-in-Flash-when-visitin.patch</filename>
            <type>text/plain</type>
            <size>25486</size>
            <attacher name="Jon Honeycutt">jhoneycutt</attacher>
            
              <data encoding="base64">RnJvbSAyN2E4ZmMyOGU3MzU2ZGRlYjYyM2U2ZTY5ZjRmMGFjMGI4ZDcyMDA1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb24gSG9uZXljdXR0IDxqaG9uZXljdXR0QGFwcGxlLmNvbT4K
RGF0ZTogVHVlLCA5IEZlYiAyMDEwIDAwOjU5OjU1IC0wNjAwClN1YmplY3Q6IFtQQVRDSF0gPHJk
YXI6Ly9wcm9ibGVtLzc0MzY4NzU+IENyYXNoIGluIEZsYXNoIHdoZW4gdmlzaXRpbmcKIGh0dHA6
Ly93d3cuY2N0di5jb20vZGVmYXVsdC5zaHRtbCAoV0VSIElEIDgxOTI5ODIwMCkgW3dhdHNvbiAy
NTAyMjYwXQoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpXZWJDb3JlOgoKVGVzdDogcGxh
dGZvcm0vd2luL3BsdWdpbnMvcGx1Z2luLWRlbGF5ZWQtZGVzdHJveS5odG1sCgoqIFdlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKQWRkIFBsdWdpblZpZXdOb25lLmNwcCB0byB0aGUg
TWFjIHByb2plY3QuCgoqIGJyaWRnZS9OUF9qc29iamVjdC5jcHA6CihfTlBOX0V2YWx1YXRlKToK
SWYgRmxhc2ggY2FsbHMgdGhpcyB0byBldmFsdWF0ZSBhIHNjcmlwdCB0aGF0IGRlc3Ryb3lzIHRo
ZSBQbHVnaW5WaWV3LAp3ZSBjcmFzaCB3aGVuIHJldHVybmluZyB0byBGbGFzaCBjb2RlLiBCZWZv
cmUgZXZhbHVhdGluZyB0aGUgc2NyaXB0LApjYWxsIFBsdWdpblZpZXc6OmtlZXBBbGl2ZSgpIHRv
IGhvbGQgYSByZWYgdG8gdGhpcyBpbnN0YW5jZSAoYW5kIHJlbGVhc2UKaXQgYXN5bmNocm9ub3Vz
bHkpLgoKKiBwbHVnaW5zL1BsdWdpblZpZXcuY3BwOgooV2ViQ29yZTo6aW5zdGFuY2VNYXApOgpS
ZXR1cm4gYSBtYXAgZnJvbSB0aGUgTlBQIHRvIHRoZSBQbHVnaW5WaWV3LgooV2ViQ29yZTo6UGx1
Z2luVmlldzo6flBsdWdpblZpZXcpOgpBc3NlcnQgdGhhdCB0aGUga2VlcCBhbGl2ZSB0aW1lciBp
cyBub3QgcnVubmluZzsgcmVtb3ZlIG91cnNlbHZlcyBmcm9tCnRoZSBpbnN0YW5jZSBtYXAuCihX
ZWJDb3JlOjpQbHVnaW5WaWV3OjpwZXJmb3JtUmVxdWVzdCk6ClRoZSBwYXJlbnQgRnJhbWUgaXMg
bm93IGEgUmVmUHRyOyB1c2UgLmdldCgpLgooV2ViQ29yZTo6UGx1Z2luVmlldzo6c3RhdHVzKToK
RGl0dG8uCihXZWJDb3JlOjpQbHVnaW5WaWV3OjpkaWRSZWNlaXZlUmVzcG9uc2UpOgpEaXR0by4K
KFdlYkNvcmU6OlBsdWdpblZpZXc6OlBsdWdpblZpZXcpOgpBZGQgdGhlIHZpZXcgdG8gdGhlIGlu
c3RhbmNlIG1hcC4KKFdlYkNvcmU6OlBsdWdpblZpZXc6OmxpZmVTdXBwb3J0VGltZXJGaXJlZCk6
CkRlcmVmIHRoZSBQbHVnaW5WaWV3LgooV2ViQ29yZTo6UGx1Z2luVmlldzo6a2VlcEFsaXZlKToK
UmVmIHRoZSBQbHVnaW5WaWV3LCB0aGVuIHN0YXJ0IGEgdGltZSB0byByZWxlYXNlIHRoZSByZWZl
cmVuY2UKYXN5bmNocm9ub3VzbHkuCihXZWJDb3JlOjpQbHVnaW5WaWV3OjprZWVwQWxpdmUpOgpG
aW5kIHRoZSBQbHVnaW5WaWV3IGluIHRoZSBtYXAsIGFuZCBjYWxsIGl0cyBrZWVwQWxpdmUoKSBm
dW5jdGlvbi4KCiogcGx1Z2lucy9QbHVnaW5WaWV3Lmg6Ck1hZGUgbV9wYXJlbnRGcmFtZSBhIFJl
ZlB0ciwgc28gdGhhdCBpdCB3aWxsIHJlbWFpbiB2YWxpZCB3aGVuIHRoZQprZWVwIGFsaXZlIHRp
bWVyIGZpcmVzLgooV2ViQ29yZTo6UGx1Z2luVmlldzo6cGFyZW50RnJhbWUpOgpVc2UgLmdldCgp
LgoKKiBwbHVnaW5zL2d0ay9QbHVnaW5WaWV3R3RrLmNwcDoKKFdlYkNvcmU6OlBsdWdpblZpZXc6
OnVwZGF0ZVBsdWdpbldpZGdldCk6ClVzZSAuZ2V0KCkuCihXZWJDb3JlOjpQbHVnaW5WaWV3Ojpo
YW5kbGVLZXlib2FyZEV2ZW50KToKVXNlIC5nZXQoKS4KKFdlYkNvcmU6OlBsdWdpblZpZXc6Omhh
bmRsZU1vdXNlRXZlbnQpOgpVc2UgLmdldCgpLgoKKiBwbHVnaW5zL1BsdWdpblZpZXdOb25lLmNw
cDoKKFdlYkNvcmU6OlBsdWdpblZpZXc6OmdldFZhbHVlU3RhdGljKToKUmVtb3ZlIHVudXNlZCBw
YXJhbWV0ZXIgbmFtZXMuCihXZWJDb3JlOjpQbHVnaW5WaWV3OjprZWVwQWxpdmUpOgpTdHViYmVk
LgoKV2ViS2l0VG9vbHM6CgoqIER1bXBSZW5kZXJUcmVlL3dpbi9UZXN0TmV0c2NhcGVQbHVnaW4v
bWFpbi5jcHA6CihleGVjdXRlU2NyaXB0KToKTW92ZWQgdG8gYW4gZWFybGllciBwb2ludCBpbiB0
aGUgZmlsZS4KKE5QUF9OZXcpOgpJZiB0aGUgcGx1Zy1pbiBoYXMgYW4gb25EZXN0cm95IGF0dHJp
YnV0ZSwgc3RvcmUgaXRzIHZhbHVlLgooTlBQX0Rlc3Ryb3kpOgpJZiB0aGUgcGx1Zy1pbiBoYXMg
Y29kZSB0byBydW4gb24gZGVzdHJ1Y3Rpb24sIHJ1biBpdCBhbmQgZnJlZSBpdC4KCkxheW91dFRl
c3RzOgoKKiBwbGF0Zm9ybS93aW4vcGx1Z2lucy9wbHVnaW4tZGVsYXllZC1kZXN0cm95LWV4cGVj
dGVkLnR4dDogQWRkZWQuCiogcGxhdGZvcm0vd2luL3BsdWdpbnMvcGx1Z2luLWRlbGF5ZWQtZGVz
dHJveS5odG1sOiBBZGRlZC4KLS0tCiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB8ICAgMTAgKysrCiAuLi4vcGx1Z2lucy9wbHVnaW4tZGVsYXllZC1k
ZXN0cm95LWV4cGVjdGVkLnR4dCAgICB8ICAgIDMgKwogLi4uL3dpbi9wbHVnaW5zL3BsdWdpbi1k
ZWxheWVkLWRlc3Ryb3kuaHRtbCAgICAgICAgfCAgIDMxICsrKysrKysrKysKIFdlYkNvcmUvQ2hh
bmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA2MSArKysrKysrKysr
KysrKysrKysrKwogV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogICAg
ICAgICAgfCAgICA0ICsKIFdlYkNvcmUvYnJpZGdlL05QX2pzb2JqZWN0LmNwcCAgICAgICAgICAg
ICAgICAgICAgIHwgICAgNyArKy0KIFdlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmNwcCAgICAg
ICAgICAgICAgICAgICAgIHwgICA0NiArKysrKysrKysrKysrLQogV2ViQ29yZS9wbHVnaW5zL1Bs
dWdpblZpZXcuaCAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEwICsrKy0KIFdlYkNvcmUvcGx1
Z2lucy9QbHVnaW5WaWV3Tm9uZS5jcHAgICAgICAgICAgICAgICAgIHwgICAgNiArKy0KIFdlYkNv
cmUvcGx1Z2lucy9ndGsvUGx1Z2luVmlld0d0ay5jcHAgICAgICAgICAgICAgIHwgICAxMCArKy0t
CiBXZWJLaXRUb29scy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAg
MTUgKysrKysKIC4uLi9EdW1wUmVuZGVyVHJlZS93aW4vVGVzdE5ldHNjYXBlUGx1Z2luL21haW4u
Y3BwIHwgICAzNCArKysrKysrLS0tLS0KIDEyIGZpbGVzIGNoYW5nZWQsIDIxMCBpbnNlcnRpb25z
KCspLCAyNyBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9wbGF0
Zm9ybS93aW4vcGx1Z2lucy9wbHVnaW4tZGVsYXllZC1kZXN0cm95LWV4cGVjdGVkLnR4dAogY3Jl
YXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9wbHVnaW5zL3BsdWdpbi1k
ZWxheWVkLWRlc3Ryb3kuaHRtbAoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA1ZjI3MjM5Li42OWI4NTQ3IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTMgQEAKKzIwMTAtMDItMDggIEpvbiBIb25leWN1dHQgIDxqaG9uZXljdXR0QGFwcGxl
LmNvbT4KKworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzQzNjg3NT4gQ3Jhc2ggaW4gRmxhc2gg
d2hlbiB2aXNpdGluZworICAgICAgICBodHRwOi8vd3d3LmNjdHYuY29tL2RlZmF1bHQuc2h0bWwg
KFdFUiBJRCA4MTkyOTgyMDApIFt3YXRzb24gMjUwMjI2MF0KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL3dpbi9wbHVnaW5zL3BsdWdp
bi1kZWxheWVkLWRlc3Ryb3ktZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS93aW4vcGx1Z2lucy9wbHVnaW4tZGVsYXllZC1kZXN0cm95Lmh0bWw6IEFkZGVkLgorCiAyMDEw
LTAyLTA1ICBTaGluaWNoaXJvIEhhbWFqaSAgPGhhbWFqaUBjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgR3VzdGF2byBOb3JvbmhhIFNpbHZhLgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vd2luL3BsdWdpbnMvcGx1Z2luLWRlbGF5ZWQtZGVzdHJveS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vcGx1Z2lucy9wbHVnaW4tZGVsYXllZC1k
ZXN0cm95LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5m
NTQ3OWY5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL3BsdWdp
bnMvcGx1Z2luLWRlbGF5ZWQtZGVzdHJveS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACitU
aGUgc2hvdWxkIGJlIHByaW50ZWQgYmVmb3JlIGRlc3Ryb3kuCitQbHVnLWluIGRlc3Ryb3llZC4K
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL3BsdWdpbnMvcGx1Z2luLWRl
bGF5ZWQtZGVzdHJveS5odG1sIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL3BsdWdpbnMvcGx1
Z2luLWRlbGF5ZWQtZGVzdHJveS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjc0YzNkMWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4v
cGx1Z2lucy9wbHVnaW4tZGVsYXllZC1kZXN0cm95Lmh0bWwKQEAgLTAsMCArMSwzMSBAQAorPGh0
bWw+Cis8Ym9keT4KKyAgICA8cHJlIGlkPSJjb25zb2xlIj48L3ByZT4KKyAgICA8ZGl2IGlkPSJv
dXRlciI+CisgICAgICAgIDxlbWJlZCBpZD0icGxnIiB0eXBlPSJhcHBsaWNhdGlvbi94LXdlYmtp
dC10ZXN0LW5ldHNjYXBlIiBvbkRlc3Ryb3k9InBsdWdpbkRlc3Ryb3llZCgpIj48L2VtYmVkPgor
ICAgIDwvZGl2PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGZ1bmN0aW9uIGxvZyhtZXNzYWdlKQor
ICAgICAgICB7CisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIp
LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKG1lc3NhZ2UgKyAiXG4iKSk7Cisg
ICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBwbHVnaW5EZXN0cm95ZWQoKQorICAgICAgICB7
CisgICAgICAgICAgICBsb2coIlBsdWctaW4gZGVzdHJveWVkLiIpCisgICAgICAgICAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgICAgICAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5kdW1wQXNUZXh0KCk7CisgICAgICAgIH0KKworICAgICAgICB2YXIgcGx1Z2luID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoInBsZyIpOworCisgICAgICAgIHBsdWdpbi50ZXN0RXZhbHVhdGUo
IndpbmRvdy5kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnb3V0ZXInKS5pbm5lckhUTUwgPSAnJzsi
KTsKKworICAgICAgICBsb2coIlRoZSBzaG91bGQgYmUgcHJpbnRlZCBiZWZvcmUgZGVzdHJveS4i
KTsKKyAgICA8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1dlYkNvcmUv
Q2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGYyMDUwOS4uMDg0Y2EwMSAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2NCBAQAorMjAxMC0wMi0wOCAgSm9uIEhvbmV5Y3V0dCAgPGpob25leWN1dHRAYXBwbGUu
Y29tPgorCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83NDM2ODc1PiBDcmFzaCBpbiBGbGFzaCB3
aGVuIHZpc2l0aW5nCisgICAgICAgIGh0dHA6Ly93d3cuY2N0di5jb20vZGVmYXVsdC5zaHRtbCAo
V0VSIElEIDgxOTI5ODIwMCkgW3dhdHNvbiAyNTAyMjYwXQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IHBsYXRmb3JtL3dpbi9wbHVnaW5zL3Bs
dWdpbi1kZWxheWVkLWRlc3Ryb3kuaHRtbAorCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOgorICAgICAgICBBZGQgUGx1Z2luVmlld05vbmUuY3BwIHRvIHRoZSBN
YWMgcHJvamVjdC4KKworICAgICAgICAqIGJyaWRnZS9OUF9qc29iamVjdC5jcHA6CisgICAgICAg
IChfTlBOX0V2YWx1YXRlKToKKyAgICAgICAgSWYgRmxhc2ggY2FsbHMgdGhpcyB0byBldmFsdWF0
ZSBhIHNjcmlwdCB0aGF0IGRlc3Ryb3lzIHRoZSBQbHVnaW5WaWV3LAorICAgICAgICB3ZSBjcmFz
aCB3aGVuIHJldHVybmluZyB0byBGbGFzaCBjb2RlLiBCZWZvcmUgZXZhbHVhdGluZyB0aGUgc2Ny
aXB0LAorICAgICAgICBjYWxsIFBsdWdpblZpZXc6OmtlZXBBbGl2ZSgpIHRvIGhvbGQgYSByZWYg
dG8gdGhpcyBpbnN0YW5jZSAoYW5kIHJlbGVhc2UKKyAgICAgICAgaXQgYXN5bmNocm9ub3VzbHkp
LgorCisgICAgICAgICogcGx1Z2lucy9QbHVnaW5WaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Omluc3RhbmNlTWFwKToKKyAgICAgICAgUmV0dXJuIGEgbWFwIGZyb20gdGhlIE5QUCB0byB0aGUg
UGx1Z2luVmlldy4KKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6On5QbHVnaW5WaWV3KToK
KyAgICAgICAgQXNzZXJ0IHRoYXQgdGhlIGtlZXAgYWxpdmUgdGltZXIgaXMgbm90IHJ1bm5pbmc7
IHJlbW92ZSBvdXJzZWx2ZXMgZnJvbQorICAgICAgICB0aGUgaW5zdGFuY2UgbWFwLgorICAgICAg
ICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6cGVyZm9ybVJlcXVlc3QpOgorICAgICAgICBUaGUgcGFy
ZW50IEZyYW1lIGlzIG5vdyBhIFJlZlB0cjsgdXNlIC5nZXQoKS4KKyAgICAgICAgKFdlYkNvcmU6
OlBsdWdpblZpZXc6OnN0YXR1cyk6CisgICAgICAgIERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6
UGx1Z2luVmlldzo6ZGlkUmVjZWl2ZVJlc3BvbnNlKToKKyAgICAgICAgRGl0dG8uCisgICAgICAg
IChXZWJDb3JlOjpQbHVnaW5WaWV3OjpQbHVnaW5WaWV3KToKKyAgICAgICAgQWRkIHRoZSB2aWV3
IHRvIHRoZSBpbnN0YW5jZSBtYXAuCisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpsaWZl
U3VwcG9ydFRpbWVyRmlyZWQpOgorICAgICAgICBEZXJlZiB0aGUgUGx1Z2luVmlldy4KKyAgICAg
ICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OmtlZXBBbGl2ZSk6CisgICAgICAgIFJlZiB0aGUgUGx1
Z2luVmlldywgdGhlbiBzdGFydCBhIHRpbWUgdG8gcmVsZWFzZSB0aGUgcmVmZXJlbmNlCisgICAg
ICAgIGFzeW5jaHJvbm91c2x5LgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6a2VlcEFs
aXZlKToKKyAgICAgICAgRmluZCB0aGUgUGx1Z2luVmlldyBpbiB0aGUgbWFwLCBhbmQgY2FsbCBp
dHMga2VlcEFsaXZlKCkgZnVuY3Rpb24uCisKKyAgICAgICAgKiBwbHVnaW5zL1BsdWdpblZpZXcu
aDoKKyAgICAgICAgTWFkZSBtX3BhcmVudEZyYW1lIGEgUmVmUHRyLCBzbyB0aGF0IGl0IHdpbGwg
cmVtYWluIHZhbGlkIHdoZW4gdGhlCisgICAgICAgIGtlZXAgYWxpdmUgdGltZXIgZmlyZXMuCisg
ICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpwYXJlbnRGcmFtZSk6CisgICAgICAgIFVzZSAu
Z2V0KCkuCisKKyAgICAgICAgKiBwbHVnaW5zL2d0ay9QbHVnaW5WaWV3R3RrLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OnVwZGF0ZVBsdWdpbldpZGdldCk6CisgICAgICAgIFVz
ZSAuZ2V0KCkuCisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpoYW5kbGVLZXlib2FyZEV2
ZW50KToKKyAgICAgICAgVXNlIC5nZXQoKS4KKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6
OmhhbmRsZU1vdXNlRXZlbnQpOgorICAgICAgICBVc2UgLmdldCgpLgorCisgICAgICAgICogcGx1
Z2lucy9QbHVnaW5WaWV3Tm9uZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3Ojpn
ZXRWYWx1ZVN0YXRpYyk6CisgICAgICAgIFJlbW92ZSB1bnVzZWQgcGFyYW1ldGVyIG5hbWVzLgor
ICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6a2VlcEFsaXZlKToKKyAgICAgICAgU3R1YmJl
ZC4KKwogMjAxMC0wMi0wNSAgR2VvZmZyZXkgR2FyZW4gIDxnZ2FyZW5AYXBwbGUuY29tPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IERhbiBCZXJuc3RlaW4uCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDIwOGYyYjEuLjM4ZjM2MjQgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMjcxLDYgKzEyNzEsNyBAQAogCQk3
NkNERDJGNTExMDNEQTY2MDA2ODA1MjEgLyogQWNjZXNzaWJpbGl0eU1lbnVMaXN0UG9wdXAuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc2Q0REMkVGMTEw
M0RBNjYwMDY4MDUyMSAvKiBBY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cC5oICovOyB9OwogCQk3
NkNERDJGNjExMDNEQTY2MDA2ODA1MjEgLyogQWNjZXNzaWJpbGl0eU1lbnVMaXN0T3B0aW9uLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc2Q0REMkYw
MTEwM0RBNjYwMDY4MDUyMSAvKiBBY2Nlc3NpYmlsaXR5TWVudUxpc3RPcHRpb24uY3BwICovOyB9
OwogCQk3NkNERDJGNzExMDNEQTY2MDA2ODA1MjEgLyogQWNjZXNzaWJpbGl0eU1lbnVMaXN0T3B0
aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NkNE
RDJGMTExMDNEQTY2MDA2ODA1MjEgLyogQWNjZXNzaWJpbGl0eU1lbnVMaXN0T3B0aW9uLmggKi87
IH07CisJCTc2RkYxNkU5MTEyMUNGQ0UwMDFENjFCNSAvKiBQbHVnaW5WaWV3Tm9uZS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NkZGMTZFODExMjFD
RkNFMDAxRDYxQjUgLyogUGx1Z2luVmlld05vbmUuY3BwICovOyB9OwogCQk3OUFDOTIxODEwOTk0
NUM4MDAyMTI2NkUgLyogSlNDb21wb3NpdGlvbkV2ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc5QUM5MjE2MTA5OTQ1QzgwMDIxMjY2RSAvKiBK
U0NvbXBvc2l0aW9uRXZlbnQuY3BwICovOyB9OwogCQk3OUFDOTIxOTEwOTk0NUM4MDAyMTI2NkUg
LyogSlNDb21wb3NpdGlvbkV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA3OUFDOTIxNzEwOTk0NUM4MDAyMTI2NkUgLyogSlNDb21wb3NpdGlvbkV2
ZW50LmggKi87IH07CiAJCTc5RjJGNUExMTA5MTkzOUEwMDBEODdDQiAvKiBDb21wb3NpdGlvbkV2
ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc5
RjJGNTlFMTA5MTkzOUEwMDBEODdDQiAvKiBDb21wb3NpdGlvbkV2ZW50LmNwcCAqLzsgfTsKQEAg
LTY2NzksNiArNjY4MCw3IEBACiAJCTc2Q0REMkVGMTEwM0RBNjYwMDY4MDUyMSAvKiBBY2Nlc3Np
YmlsaXR5TWVudUxpc3RQb3B1cC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBB
Y2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk3NkNERDJGMDExMDNEQTY2MDA2ODA1MjEgLyogQWNjZXNzaWJpbGl0eU1lbnVMaXN0T3B0aW9u
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFjY2Vzc2liaWxpdHlN
ZW51TGlzdE9wdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc2Q0REMkYx
MTEwM0RBNjYwMDY4MDUyMSAvKiBBY2Nlc3NpYmlsaXR5TWVudUxpc3RPcHRpb24uaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQWNjZXNzaWJpbGl0eU1lbnVMaXN0T3B0aW9uLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTc2RkYxNkU4MTEyMUNGQ0UwMDFENjFCNSAv
KiBQbHVnaW5WaWV3Tm9uZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBQbHVnaW5WaWV3Tm9uZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc5QUM5
MjE2MTA5OTQ1QzgwMDIxMjY2RSAvKiBKU0NvbXBvc2l0aW9uRXZlbnQuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNDb21wb3NpdGlvbkV2ZW50LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzlBQzkyMTcxMDk5NDVDODAwMjEyNjZFIC8qIEpTQ29t
cG9zaXRpb25FdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0NvbXBv
c2l0aW9uRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzlGMkY1OUUxMDkx
OTM5QTAwMEQ4N0NCIC8qIENvbXBvc2l0aW9uRXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gQ29tcG9zaXRpb25FdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC0xMTIxMSw2ICsxMTIxMyw3IEBACiAJCQkJNURDRjgzNkMwRDU5MTU5ODAw
OTUzQkM2IC8qIFBsdWdpbkluZm9TdG9yZS5oICovLAogCQkJCTFBREExNDBFMEUxQUU1RDkwMDAy
M0VFNSAvKiBQbHVnaW5NYWluVGhyZWFkU2NoZWR1bGVyLmNwcCAqLywKIAkJCQkxQURBMTQwRjBF
MUFFNUQ5MDAwMjNFRTUgLyogUGx1Z2luTWFpblRocmVhZFNjaGVkdWxlci5oICovLAorCQkJCTc2
RkYxNkU4MTEyMUNGQ0UwMDFENjFCNSAvKiBQbHVnaW5WaWV3Tm9uZS5jcHAgKi8sCiAJCQkJMEFG
REFDM0MxMEY1NDQ4QzAwRTFGM0QyIC8qIFBsdWdpbldpZGdldC5oICovLAogCQkJKTsKIAkJCXBh
dGggPSBwbHVnaW5zOwpAQCAtMjA2ODMsNiArMjA2ODYsNyBAQAogCQkJCTg0RDBDNDA0MTExNUYx
RDQwMDE4QUEzNCAvKiBBZmZpbmVUcmFuc2Zvcm0uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjc3
NkQ0M0QxMTA0NTI3NTAwQkVCMEVDIC8qIFByaW50Q29udGV4dC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk5RjcyMzA1MDExMTg0QjQxMDBBRDAxMjYgLyogU2NyaXB0UHJvZmlsZXIuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJNzZGRjE2RTkxMTIxQ0ZDRTAwMUQ2MUI1IC8qIFBsdWdpblZpZXdOb25l
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHBy
b2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9icmlkZ2UvTlBfanNvYmpl
Y3QuY3BwIGIvV2ViQ29yZS9icmlkZ2UvTlBfanNvYmplY3QuY3BwCmluZGV4IGEzMGI2ZDcuLjA2
MmEwMDggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYnJpZGdlL05QX2pzb2JqZWN0LmNwcAorKysgYi9X
ZWJDb3JlL2JyaWRnZS9OUF9qc29iamVjdC5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRl
ICJOUF9qc29iamVjdC5oIgogCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKyNpbmNsdWRl
ICJQbHVnaW5WaWV3LmgiCiAjaW5jbHVkZSAiU3RyaW5nU291cmNlUHJvdmlkZXIuaCIKICNpbmNs
dWRlICJjX3V0aWxpdHkuaCIKICNpbmNsdWRlICJjX2luc3RhbmNlLmgiCkBAIC0xOTAsNyArMTkx
LDcgQEAgYm9vbCBfTlBOX0ludm9rZShOUFAgbnBwLCBOUE9iamVjdCogbywgTlBJZGVudGlmaWVy
IG1ldGhvZE5hbWUsIGNvbnN0IE5QVmFyaWFudCoKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9v
bCBfTlBOX0V2YWx1YXRlKE5QUCwgTlBPYmplY3QqIG8sIE5QU3RyaW5nKiBzLCBOUFZhcmlhbnQq
IHZhcmlhbnQpCitib29sIF9OUE5fRXZhbHVhdGUoTlBQIGluc3RhbmNlLCBOUE9iamVjdCogbywg
TlBTdHJpbmcqIHMsIE5QVmFyaWFudCogdmFyaWFudCkKIHsKICAgICBpZiAoby0+X2NsYXNzID09
IE5QU2NyaXB0T2JqZWN0Q2xhc3MpIHsKICAgICAgICAgSmF2YVNjcmlwdE9iamVjdCogb2JqID0g
cmVpbnRlcnByZXRfY2FzdDxKYXZhU2NyaXB0T2JqZWN0Kj4obyk7IApAQCAtMTk5LDYgKzIwMCwx
MCBAQCBib29sIF9OUE5fRXZhbHVhdGUoTlBQLCBOUE9iamVjdCogbywgTlBTdHJpbmcqIHMsIE5Q
VmFyaWFudCogdmFyaWFudCkKICAgICAgICAgaWYgKCFyb290T2JqZWN0IHx8ICFyb290T2JqZWN0
LT5pc1ZhbGlkKCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyAgICAgICAgLy8gVGhl
cmUgaXMgYSBjcmFzaCBpbiBGbGFzaCB3aGVuIGV2YWx1YXRpbmcgYSBzY3JpcHQgdGhhdCBkZXN0
cm95cyB0aGUKKyAgICAgICAgLy8gUGx1Z2luVmlldywgc28gd2UgZGVzdHJveSBpcyBhc3luY2hy
b25vdXNseS4KKyAgICAgICAgUGx1Z2luVmlldzo6a2VlcEFsaXZlKGluc3RhbmNlKTsKKwogICAg
ICAgICBFeGVjU3RhdGUqIGV4ZWMgPSByb290T2JqZWN0LT5nbG9iYWxPYmplY3QoKS0+Z2xvYmFs
RXhlYygpOwogICAgICAgICBKU0xvY2sgbG9jayhTaWxlbmNlQXNzZXJ0aW9uc09ubHkpOwogICAg
ICAgICBTdHJpbmcgc2NyaXB0U3RyaW5nID0gY29udmVydE5QU3RyaW5nVG9VVEYxNihzKTsKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmNwcCBiL1dlYkNvcmUvcGx1Z2lu
cy9QbHVnaW5WaWV3LmNwcAppbmRleCAzZmY0YzgyLi45ZTFkNDU0IDEwMDY0NAotLS0gYS9XZWJD
b3JlL3BsdWdpbnMvUGx1Z2luVmlldy5jcHAKKysrIGIvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZp
ZXcuY3BwCkBAIC04Niw2ICs4NiwxNCBAQCB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCiBz
dGF0aWMgaW50IHNfY2FsbGluZ1BsdWdpbjsKIAordHlwZWRlZiBIYXNoTWFwPE5QUCwgUGx1Z2lu
Vmlldyo+IEluc3RhbmNlTWFwOworCitzdGF0aWMgSW5zdGFuY2VNYXAmIGluc3RhbmNlTWFwKCkK
K3sKKyAgICBzdGF0aWMgSW5zdGFuY2VNYXAmIG1hcCA9ICpuZXcgSW5zdGFuY2VNYXA7CisgICAg
cmV0dXJuIG1hcDsKK30KKwogc3RhdGljIFN0cmluZyBzY3JpcHRTdHJpbmdJZkphdmFTY3JpcHRV
UkwoY29uc3QgS1VSTCYgdXJsKQogewogICAgIGlmICghcHJvdG9jb2xJc0phdmFTY3JpcHQodXJs
KSkKQEAgLTI1OCw2ICsyNjYsMTAgQEAgUGx1Z2luVmlldzo6flBsdWdpblZpZXcoKQogewogICAg
IExPRyhQbHVnaW5zLCAiUGx1Z2luVmlldzo6flBsdWdpblZpZXcoKSIpOwogCisgICAgQVNTRVJU
KCFtX2xpZmVTdXBwb3J0VGltZXIuaXNBY3RpdmUoKSk7CisKKyAgICBpbnN0YW5jZU1hcCgpLnJl
bW92ZShtX2luc3RhbmNlKTsKKwogICAgIHJlbW92ZUZyb21VbnN0YXJ0ZWRMaXN0SWZOZWNlc3Nh
cnkoKTsKIAogICAgIHN0b3AoKTsKQEAgLTQyMyw3ICs0MzUsNyBAQCB2b2lkIFBsdWdpblZpZXc6
OnBlcmZvcm1SZXF1ZXN0KFBsdWdpblJlcXVlc3QqIHJlcXVlc3QpCiAgICAgICAgIC8vIGlmIHRo
aXMgaXMgbm90IGEgdGFyZ2V0ZWQgcmVxdWVzdCwgY3JlYXRlIGEgc3RyZWFtIGZvciBpdC4gb3Ro
ZXJ3aXNlLAogICAgICAgICAvLyBqdXN0IHBhc3MgaXQgb2ZmIHRvIHRoZSBsb2FkZXIKICAgICAg
ICAgaWYgKHRhcmdldEZyYW1lTmFtZS5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgIFJlZlB0cjxQ
bHVnaW5TdHJlYW0+IHN0cmVhbSA9IFBsdWdpblN0cmVhbTo6Y3JlYXRlKHRoaXMsIG1fcGFyZW50
RnJhbWUsIHJlcXVlc3QtPmZyYW1lTG9hZFJlcXVlc3QoKS5yZXNvdXJjZVJlcXVlc3QoKSwgcmVx
dWVzdC0+c2VuZE5vdGlmaWNhdGlvbigpLCByZXF1ZXN0LT5ub3RpZnlEYXRhKCksIHBsdWdpbigp
LT5wbHVnaW5GdW5jcygpLCBpbnN0YW5jZSgpLCBtX3BsdWdpbi0+cXVpcmtzKCkpOworICAgICAg
ICAgICAgUmVmUHRyPFBsdWdpblN0cmVhbT4gc3RyZWFtID0gUGx1Z2luU3RyZWFtOjpjcmVhdGUo
dGhpcywgbV9wYXJlbnRGcmFtZS5nZXQoKSwgcmVxdWVzdC0+ZnJhbWVMb2FkUmVxdWVzdCgpLnJl
c291cmNlUmVxdWVzdCgpLCByZXF1ZXN0LT5zZW5kTm90aWZpY2F0aW9uKCksIHJlcXVlc3QtPm5v
dGlmeURhdGEoKSwgcGx1Z2luKCktPnBsdWdpbkZ1bmNzKCksIGluc3RhbmNlKCksIG1fcGx1Z2lu
LT5xdWlya3MoKSk7CiAgICAgICAgICAgICBtX3N0cmVhbXMuYWRkKHN0cmVhbSk7CiAgICAgICAg
ICAgICBzdHJlYW0tPnN0YXJ0KCk7CiAgICAgICAgIH0gZWxzZSB7CkBAIC00NjEsNyArNDczLDcg
QEAgdm9pZCBQbHVnaW5WaWV3OjpwZXJmb3JtUmVxdWVzdChQbHVnaW5SZXF1ZXN0KiByZXF1ZXN0
KQogICAgICAgICBpZiAoZ2V0U3RyaW5nKHBhcmVudEZyYW1lLT5zY3JpcHQoKSwgcmVzdWx0LCBy
ZXN1bHRTdHJpbmcpKQogICAgICAgICAgICAgY3N0ciA9IHJlc3VsdFN0cmluZy51dGY4KCk7CiAK
LSAgICAgICAgUmVmUHRyPFBsdWdpblN0cmVhbT4gc3RyZWFtID0gUGx1Z2luU3RyZWFtOjpjcmVh
dGUodGhpcywgbV9wYXJlbnRGcmFtZSwgcmVxdWVzdC0+ZnJhbWVMb2FkUmVxdWVzdCgpLnJlc291
cmNlUmVxdWVzdCgpLCByZXF1ZXN0LT5zZW5kTm90aWZpY2F0aW9uKCksIHJlcXVlc3QtPm5vdGlm
eURhdGEoKSwgcGx1Z2luKCktPnBsdWdpbkZ1bmNzKCksIGluc3RhbmNlKCksIG1fcGx1Z2luLT5x
dWlya3MoKSk7CisgICAgICAgIFJlZlB0cjxQbHVnaW5TdHJlYW0+IHN0cmVhbSA9IFBsdWdpblN0
cmVhbTo6Y3JlYXRlKHRoaXMsIG1fcGFyZW50RnJhbWUuZ2V0KCksIHJlcXVlc3QtPmZyYW1lTG9h
ZFJlcXVlc3QoKS5yZXNvdXJjZVJlcXVlc3QoKSwgcmVxdWVzdC0+c2VuZE5vdGlmaWNhdGlvbigp
LCByZXF1ZXN0LT5ub3RpZnlEYXRhKCksIHBsdWdpbigpLT5wbHVnaW5GdW5jcygpLCBpbnN0YW5j
ZSgpLCBtX3BsdWdpbi0+cXVpcmtzKCkpOwogICAgICAgICBtX3N0cmVhbXMuYWRkKHN0cmVhbSk7
CiAgICAgICAgIHN0cmVhbS0+c2VuZEphdmFTY3JpcHRTdHJlYW0ocmVxdWVzdFVSTCwgY3N0cik7
CiAgICAgfQpAQCAtNjAwLDcgKzYxMiw3IEBAIE5QRXJyb3IgUGx1Z2luVmlldzo6ZGVzdHJveVN0
cmVhbShOUFN0cmVhbSogc3RyZWFtLCBOUFJlYXNvbiByZWFzb24pCiB2b2lkIFBsdWdpblZpZXc6
OnN0YXR1cyhjb25zdCBjaGFyKiBtZXNzYWdlKQogewogICAgIGlmIChQYWdlKiBwYWdlID0gbV9w
YXJlbnRGcmFtZS0+cGFnZSgpKQotICAgICAgICBwYWdlLT5jaHJvbWUoKS0+c2V0U3RhdHVzYmFy
VGV4dChtX3BhcmVudEZyYW1lLCBTdHJpbmcobWVzc2FnZSkpOworICAgICAgICBwYWdlLT5jaHJv
bWUoKS0+c2V0U3RhdHVzYmFyVGV4dChtX3BhcmVudEZyYW1lLmdldCgpLCBTdHJpbmcobWVzc2Fn
ZSkpOwogfQogCiBOUEVycm9yIFBsdWdpblZpZXc6OnNldFZhbHVlKE5QUFZhcmlhYmxlIHZhcmlh
YmxlLCB2b2lkKiB2YWx1ZSkKQEAgLTc5Miw2ICs4MDQsNyBAQCBQbHVnaW5WaWV3OjpQbHVnaW5W
aWV3KEZyYW1lKiBwYXJlbnRGcmFtZSwgY29uc3QgSW50U2l6ZSYgc2l6ZSwgUGx1Z2luUGFja2Fn
ZSogcAogICAgICwgbV9yZXF1ZXN0VGltZXIodGhpcywgJlBsdWdpblZpZXc6OnJlcXVlc3RUaW1l
ckZpcmVkKQogICAgICwgbV9pbnZhbGlkYXRlVGltZXIodGhpcywgJlBsdWdpblZpZXc6OmludmFs
aWRhdGVUaW1lckZpcmVkKQogICAgICwgbV9wb3BQb3B1cHNTdGF0ZVRpbWVyKHRoaXMsICZQbHVn
aW5WaWV3Ojpwb3BQb3B1cHNTdGF0ZVRpbWVyRmlyZWQpCisgICAgLCBtX2xpZmVTdXBwb3J0VGlt
ZXIodGhpcywgJlBsdWdpblZpZXc6OmxpZmVTdXBwb3J0VGltZXJGaXJlZCkKICAgICAsIG1fbW9k
ZShsb2FkTWFudWFsbHkgPyBOUF9GVUxMIDogTlBfRU1CRUQpCiAgICAgLCBtX3BhcmFtTmFtZXMo
MCkKICAgICAsIG1fcGFyYW1WYWx1ZXMoMCkKQEAgLTg0NSw2ICs4NTgsOCBAQCBQbHVnaW5WaWV3
OjpQbHVnaW5WaWV3KEZyYW1lKiBwYXJlbnRGcmFtZSwgY29uc3QgSW50U2l6ZSYgc2l6ZSwgUGx1
Z2luUGFja2FnZSogcAogICAgIG1faW5zdGFuY2UtPm5kYXRhID0gdGhpczsKICAgICBtX2luc3Rh
bmNlLT5wZGF0YSA9IDA7CiAKKyAgICBpbnN0YW5jZU1hcCgpLmFkZChtX2luc3RhbmNlLCB0aGlz
KTsKKwogICAgIHNldFBhcmFtZXRlcnMocGFyYW1OYW1lcywgcGFyYW1WYWx1ZXMpOwogCiAgICAg
bWVtc2V0KCZtX25wV2luZG93LCAwLCBzaXplb2YobV9ucFdpbmRvdykpOwpAQCAtODcxLDcgKzg4
Niw3IEBAIHZvaWQgUGx1Z2luVmlldzo6ZGlkUmVjZWl2ZVJlc3BvbnNlKGNvbnN0IFJlc291cmNl
UmVzcG9uc2UmIHJlc3BvbnNlKQogICAgIEFTU0VSVChtX2xvYWRNYW51YWxseSk7CiAgICAgQVNT
RVJUKCFtX21hbnVhbFN0cmVhbSk7CiAKLSAgICBtX21hbnVhbFN0cmVhbSA9IFBsdWdpblN0cmVh
bTo6Y3JlYXRlKHRoaXMsIG1fcGFyZW50RnJhbWUsIG1fcGFyZW50RnJhbWUtPmxvYWRlcigpLT5h
Y3RpdmVEb2N1bWVudExvYWRlcigpLT5yZXF1ZXN0KCksIGZhbHNlLCAwLCBwbHVnaW4oKS0+cGx1
Z2luRnVuY3MoKSwgaW5zdGFuY2UoKSwgbV9wbHVnaW4tPnF1aXJrcygpKTsKKyAgICBtX21hbnVh
bFN0cmVhbSA9IFBsdWdpblN0cmVhbTo6Y3JlYXRlKHRoaXMsIG1fcGFyZW50RnJhbWUuZ2V0KCks
IG1fcGFyZW50RnJhbWUtPmxvYWRlcigpLT5hY3RpdmVEb2N1bWVudExvYWRlcigpLT5yZXF1ZXN0
KCksIGZhbHNlLCAwLCBwbHVnaW4oKS0+cGx1Z2luRnVuY3MoKSwgaW5zdGFuY2UoKSwgbV9wbHVn
aW4tPnF1aXJrcygpKTsKICAgICBtX21hbnVhbFN0cmVhbS0+c2V0TG9hZE1hbnVhbGx5KHRydWUp
OwogCiAgICAgbV9tYW51YWxTdHJlYW0tPmRpZFJlY2VpdmVSZXNwb25zZSgwLCByZXNwb25zZSk7
CkBAIC0xMjQ5LDQgKzEyNjQsMjcgQEAgU3RyaW5nIFBsdWdpblZpZXc6OnBsdWdpbk5hbWUoKSBj
b25zdAogICAgIHJldHVybiBtX3BsdWdpbi0+bmFtZSgpOwogfQogCit2b2lkIFBsdWdpblZpZXc6
OmxpZmVTdXBwb3J0VGltZXJGaXJlZChUaW1lcjxQbHVnaW5WaWV3PiopCit7CisgICAgZGVyZWYo
KTsKK30KKwordm9pZCBQbHVnaW5WaWV3OjprZWVwQWxpdmUoKQoreworICAgIGlmIChtX2xpZmVT
dXBwb3J0VGltZXIuaXNBY3RpdmUoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgcmVmKCk7Cisg
ICAgbV9saWZlU3VwcG9ydFRpbWVyLnN0YXJ0T25lU2hvdCgwKTsKK30KKwordm9pZCBQbHVnaW5W
aWV3OjprZWVwQWxpdmUoTlBQIGluc3RhbmNlKQoreworICAgIFBsdWdpblZpZXcqIHZpZXcgPSBp
bnN0YW5jZU1hcCgpLmdldChpbnN0YW5jZSk7CisgICAgaWYgKCF2aWV3KQorICAgICAgICByZXR1
cm47CisKKyAgICB2aWV3LT5rZWVwQWxpdmUoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcuaCBiL1dlYkNvcmUvcGx1
Z2lucy9QbHVnaW5WaWV3LmgKaW5kZXggYWM2MGZkNC4uYmIwNmYxNCAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9wbHVnaW5zL1BsdWdpblZpZXcuaAorKysgYi9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmll
dy5oCkBAIC0xNzksNyArMTc5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIHZp
cnR1YWwgYm9vbCBpc1BsdWdpblZpZXcoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAKLSAgICAg
ICAgRnJhbWUqIHBhcmVudEZyYW1lKCkgY29uc3QgeyByZXR1cm4gbV9wYXJlbnRGcmFtZTsgfQor
ICAgICAgICBGcmFtZSogcGFyZW50RnJhbWUoKSBjb25zdCB7IHJldHVybiBtX3BhcmVudEZyYW1l
LmdldCgpOyB9CiAKICAgICAgICAgdm9pZCBmb2N1c1BsdWdpbkVsZW1lbnQoKTsKIApAQCAtMjEz
LDYgKzIxMyw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICBib29sIHN0YXJ0KCk7
CiAKKyAgICAgICAgc3RhdGljIHZvaWQga2VlcEFsaXZlKE5QUCk7CisgICAgICAgIHZvaWQga2Vl
cEFsaXZlKCk7CisKICAgICBwcml2YXRlOgogICAgICAgICBQbHVnaW5WaWV3KEZyYW1lKiBwYXJl
bnRGcmFtZSwgY29uc3QgSW50U2l6ZSYsIFBsdWdpblBhY2thZ2UqLCBFbGVtZW50KiwgY29uc3Qg
S1VSTCYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwYXJhbU5hbWVzLCBjb25zdCBWZWN0b3I8U3Ry
aW5nPiYgcGFyYW1WYWx1ZXMsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGJvb2wgbG9hZE1hbnVh
bGx5KTsKIApAQCAtMjM4LDcgKzI0MSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAg
c3RhdGljIEJPT0wgV0lOQVBJIGhvb2tlZEVuZFBhaW50KEhXTkQsIGNvbnN0IFBBSU5UU1RSVUNU
Kik7CiAjZW5kaWYKIAotICAgICAgICBGcmFtZSogbV9wYXJlbnRGcmFtZTsKKyAgICAgICAgUmVm
UHRyPEZyYW1lPiBtX3BhcmVudEZyYW1lOwogICAgICAgICBSZWZQdHI8UGx1Z2luUGFja2FnZT4g
bV9wbHVnaW47CiAgICAgICAgIEVsZW1lbnQqIG1fZWxlbWVudDsKICAgICAgICAgYm9vbCBtX2lz
U3RhcnRlZDsKQEAgLTI1Nyw2ICsyNjAsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAg
IHZvaWQgcG9wUG9wdXBzU3RhdGVUaW1lckZpcmVkKFRpbWVyPFBsdWdpblZpZXc+Kik7CiAgICAg
ICAgIFRpbWVyPFBsdWdpblZpZXc+IG1fcG9wUG9wdXBzU3RhdGVUaW1lcjsKIAorICAgICAgICB2
b2lkIGxpZmVTdXBwb3J0VGltZXJGaXJlZChUaW1lcjxQbHVnaW5WaWV3PiopOworICAgICAgICBU
aW1lcjxQbHVnaW5WaWV3PiBtX2xpZmVTdXBwb3J0VGltZXI7CisKICNpZm5kZWYgTlBfTk9fQ0FS
Qk9OCiAgICAgICAgIGJvb2wgZGlzcGF0Y2hOUEV2ZW50KE5QRXZlbnQmKTsKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXdOb25lLmNwcCBiL1dlYkNvcmUvcGx1
Z2lucy9QbHVnaW5WaWV3Tm9uZS5jcHAKaW5kZXggNzI1YWY4Mi4uMjgyMWFmYyAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXdOb25lLmNwcAorKysgYi9XZWJDb3JlL3BsdWdp
bnMvUGx1Z2luVmlld05vbmUuY3BwCkBAIC03Myw3ICs3Myw3IEBAIE5QRXJyb3IgUGx1Z2luVmll
dzo6Z2V0VmFsdWUoTlBOVmFyaWFibGUsIHZvaWQqKQogfQogCiAjaWYgRU5BQkxFKE5FVFNDQVBF
X1BMVUdJTl9BUEkpCi1OUEVycm9yIFBsdWdpblZpZXc6OmdldFZhbHVlU3RhdGljKE5QTlZhcmlh
YmxlIHZhcmlhYmxlLCB2b2lkKiB2YWx1ZSkKK05QRXJyb3IgUGx1Z2luVmlldzo6Z2V0VmFsdWVT
dGF0aWMoTlBOVmFyaWFibGUsIHZvaWQqKQogewogICAgIHJldHVybiAwOwogfQpAQCAtMTIwLDQg
KzEyMCw4IEBAIHZvaWQgUGx1Z2luVmlldzo6cmVzdGFydCgpCiB7CiB9CiAKK3ZvaWQgUGx1Z2lu
Vmlldzo6a2VlcEFsaXZlKE5QUCkKK3sKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9wbHVnaW5zL2d0ay9QbHVnaW5WaWV3R3RrLmNwcCBiL1dlYkNvcmUv
cGx1Z2lucy9ndGsvUGx1Z2luVmlld0d0ay5jcHAKaW5kZXggOGY0YjJkNS4uNmQ5OTJmYiAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9wbHVnaW5zL2d0ay9QbHVnaW5WaWV3R3RrLmNwcAorKysgYi9XZWJD
b3JlL3BsdWdpbnMvZ3RrL1BsdWdpblZpZXdHdGsuY3BwCkBAIC0xMzcsNyArMTM3LDcgQEAgdm9p
ZCBQbHVnaW5WaWV3Ojp1cGRhdGVQbHVnaW5XaWRnZXQoKQogICAgICAgICBpZiAobV9kcmF3YWJs
ZSkKICAgICAgICAgICAgIFhGcmVlUGl4bWFwKEdES19ESVNQTEFZKCksIG1fZHJhd2FibGUpOwog
Ci0gICAgICAgIG1fZHJhd2FibGUgPSBYQ3JlYXRlUGl4bWFwKEdES19ESVNQTEFZKCksIGdldFJv
b3RXaW5kb3cobV9wYXJlbnRGcmFtZSksCisgICAgICAgIG1fZHJhd2FibGUgPSBYQ3JlYXRlUGl4
bWFwKEdES19ESVNQTEFZKCksIGdldFJvb3RXaW5kb3cobV9wYXJlbnRGcmFtZS5nZXQoKSksCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fd2luZG93UmVjdC53aWR0aCgpLCBt
X3dpbmRvd1JlY3QuaGVpZ2h0KCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICgoTlBTZXRXaW5kb3dDYWxsYmFja1N0cnVjdCopbV9ucFdpbmRvdy53c19pbmZvKS0+ZGVwdGgp
OwogICAgICAgICBYU3luYyhHREtfRElTUExBWSgpLCBGYWxzZSk7IC8vIG1ha2Ugc3VyZSB0aGF0
IHRoZSBzZXJ2ZXIga25vd3MgYWJvdXQgdGhlIERyYXdhYmxlCkBAIC0zMTksNyArMzE5LDcgQEAg
dm9pZCBQbHVnaW5WaWV3OjpoYW5kbGVLZXlib2FyZEV2ZW50KEtleWJvYXJkRXZlbnQqIGV2ZW50
KQogICAgIEdka0V2ZW50S2V5KiBnZGtFdmVudCA9IGV2ZW50LT5rZXlFdmVudCgpLT5nZGtFdmVu
dEtleSgpOwogCiAgICAgeEV2ZW50LnR5cGUgPSAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVz
KCkua2V5ZG93bkV2ZW50KSA/IDIgOiAzOyAvLyBLZXlQcmVzcy9SZWxlYXNlIGdldCB1bnNldCBz
b21ld2hlcmUKLSAgICB4RXZlbnQueGtleS5yb290ID0gZ2V0Um9vdFdpbmRvdyhtX3BhcmVudEZy
YW1lKTsKKyAgICB4RXZlbnQueGtleS5yb290ID0gZ2V0Um9vdFdpbmRvdyhtX3BhcmVudEZyYW1l
LmdldCgpKTsKICAgICB4RXZlbnQueGtleS5zdWJ3aW5kb3cgPSAwOyAvLyB3ZSBoYXZlIG5vIGNo
aWxkIHdpbmRvdwogICAgIHhFdmVudC54a2V5LnRpbWUgPSBldmVudC0+dGltZVN0YW1wKCk7CiAg
ICAgeEV2ZW50LnhrZXkuc3RhdGUgPSBnZGtFdmVudC0+c3RhdGU7IC8vIEdka01vZGlmaWVyVHlw
ZSBtaXJyb3JzIHhsaWIgc3RhdGUgbWFza3MKQEAgLTQ0NSwxMSArNDQ1LDExIEBAIHZvaWQgUGx1
Z2luVmlldzo6aGFuZGxlTW91c2VFdmVudChNb3VzZUV2ZW50KiBldmVudCkKICAgICBJbnRQb2lu
dCBwb3N0Wm9vbVBvcyA9IHJvdW5kZWRJbnRQb2ludChtX2VsZW1lbnQtPnJlbmRlcmVyKCktPmFi
c29sdXRlVG9Mb2NhbChldmVudC0+YWJzb2x1dGVMb2NhdGlvbigpKSk7CiAKICAgICBpZiAoZXZl
bnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkubW91c2Vkb3duRXZlbnQgfHwgZXZlbnQtPnR5cGUo
KSA9PSBldmVudE5hbWVzKCkubW91c2V1cEV2ZW50KQotICAgICAgICBzZXRYQnV0dG9uRXZlbnRT
cGVjaWZpY0ZpZWxkcygmeEV2ZW50LCBldmVudCwgcG9zdFpvb21Qb3MsIG1fcGFyZW50RnJhbWUp
OworICAgICAgICBzZXRYQnV0dG9uRXZlbnRTcGVjaWZpY0ZpZWxkcygmeEV2ZW50LCBldmVudCwg
cG9zdFpvb21Qb3MsIG1fcGFyZW50RnJhbWUuZ2V0KCkpOwogICAgIGVsc2UgaWYgKGV2ZW50LT50
eXBlKCkgPT0gZXZlbnROYW1lcygpLm1vdXNlbW92ZUV2ZW50KQotICAgICAgICBzZXRYTW90aW9u
RXZlbnRTcGVjaWZpY0ZpZWxkcygmeEV2ZW50LCBldmVudCwgcG9zdFpvb21Qb3MsIG1fcGFyZW50
RnJhbWUpOworICAgICAgICBzZXRYTW90aW9uRXZlbnRTcGVjaWZpY0ZpZWxkcygmeEV2ZW50LCBl
dmVudCwgcG9zdFpvb21Qb3MsIG1fcGFyZW50RnJhbWUuZ2V0KCkpOwogICAgIGVsc2UgaWYgKGV2
ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLm1vdXNlb3V0RXZlbnQgfHwgZXZlbnQtPnR5cGUo
KSA9PSBldmVudE5hbWVzKCkubW91c2VvdmVyRXZlbnQpCi0gICAgICAgIHNldFhDcm9zc2luZ0V2
ZW50U3BlY2lmaWNGaWVsZHMoJnhFdmVudCwgZXZlbnQsIHBvc3Rab29tUG9zLCBtX3BhcmVudEZy
YW1lKTsKKyAgICAgICAgc2V0WENyb3NzaW5nRXZlbnRTcGVjaWZpY0ZpZWxkcygmeEV2ZW50LCBl
dmVudCwgcG9zdFpvb21Qb3MsIG1fcGFyZW50RnJhbWUuZ2V0KCkpOwogICAgIGVsc2UKICAgICAg
ICAgcmV0dXJuOwogI2VuZGlmCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9DaGFuZ2VMb2cgYi9X
ZWJLaXRUb29scy9DaGFuZ2VMb2cKaW5kZXggMDM1Mzg0Ni4uMGUxOTNlMCAxMDA2NDQKLS0tIGEv
V2ViS2l0VG9vbHMvQ2hhbmdlTG9nCisrKyBiL1dlYktpdFRvb2xzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE4IEBACisyMDEwLTAyLTA4ICBKb24gSG9uZXljdXR0ICA8amhvbmV5Y3V0dEBhcHBsZS5j
b20+CisKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc0MzY4NzU+IENyYXNoIGluIEZsYXNoIHdo
ZW4gdmlzaXRpbmcKKyAgICAgICAgaHR0cDovL3d3dy5jY3R2LmNvbS9kZWZhdWx0LnNodG1sIChX
RVIgSUQgODE5Mjk4MjAwKSBbd2F0c29uIDI1MDIyNjBdCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS93aW4vVGVzdE5ldHNj
YXBlUGx1Z2luL21haW4uY3BwOgorICAgICAgICAoZXhlY3V0ZVNjcmlwdCk6CisgICAgICAgIE1v
dmVkIHRvIGFuIGVhcmxpZXIgcG9pbnQgaW4gdGhlIGZpbGUuCisgICAgICAgIChOUFBfTmV3KToK
KyAgICAgICAgSWYgdGhlIHBsdWctaW4gaGFzIGFuIG9uRGVzdHJveSBhdHRyaWJ1dGUsIHN0b3Jl
IGl0cyB2YWx1ZS4KKyAgICAgICAgKE5QUF9EZXN0cm95KToKKyAgICAgICAgSWYgdGhlIHBsdWct
aW4gaGFzIGNvZGUgdG8gcnVuIG9uIGRlc3RydWN0aW9uLCBydW4gaXQgYW5kIGZyZWUgaXQuCisK
IDIwMTAtMDItMDUgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgT2xpdmVyIEh1bnQuCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1w
UmVuZGVyVHJlZS93aW4vVGVzdE5ldHNjYXBlUGx1Z2luL21haW4uY3BwIGIvV2ViS2l0VG9vbHMv
RHVtcFJlbmRlclRyZWUvd2luL1Rlc3ROZXRzY2FwZVBsdWdpbi9tYWluLmNwcAppbmRleCA4MmIx
ZDRkLi42NTgxYjA0IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS93aW4v
VGVzdE5ldHNjYXBlUGx1Z2luL21haW4uY3BwCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJU
cmVlL3dpbi9UZXN0TmV0c2NhcGVQbHVnaW4vbWFpbi5jcHAKQEAgLTcxLDYgKzcxLDE5IEBAIE5Q
RXJyb3IgX19zdGRjYWxsIE5QX1NodXRkb3duKCkKICAgICByZXR1cm4gTlBFUlJfTk9fRVJST1I7
CiB9CiAKK3N0YXRpYyB2b2lkIGV4ZWN1dGVTY3JpcHQoY29uc3QgUGx1Z2luT2JqZWN0KiBvYmos
IGNvbnN0IGNoYXIqIHNjcmlwdCkKK3sKKyAgICBOUE9iamVjdCAqd2luZG93U2NyaXB0T2JqZWN0
OworICAgIGJyb3dzZXItPmdldHZhbHVlKG9iai0+bnBwLCBOUE5WV2luZG93TlBPYmplY3QsICZ3
aW5kb3dTY3JpcHRPYmplY3QpOworCisgICAgTlBTdHJpbmcgbnBTY3JpcHQ7CisgICAgbnBTY3Jp
cHQuVVRGOENoYXJhY3RlcnMgPSBzY3JpcHQ7CisgICAgbnBTY3JpcHQuVVRGOExlbmd0aCA9IHN0
cmxlbihzY3JpcHQpOworCisgICAgTlBWYXJpYW50IGJyb3dzZXJSZXN1bHQ7CisgICAgYnJvd3Nl
ci0+ZXZhbHVhdGUob2JqLT5ucHAsIHdpbmRvd1NjcmlwdE9iamVjdCwgJm5wU2NyaXB0LCAmYnJv
d3NlclJlc3VsdCk7CisgICAgYnJvd3Nlci0+cmVsZWFzZXZhcmlhbnR2YWx1ZSgmYnJvd3NlclJl
c3VsdCk7Cit9CiAKIE5QRXJyb3IgTlBQX05ldyhOUE1JTUVUeXBlIHBsdWdpblR5cGUsIE5QUCBp
bnN0YW5jZSwgdWludDE2IG1vZGUsIGludDE2IGFyZ2MsIGNoYXIgKmFyZ25bXSwgY2hhciAqYXJn
dltdLCBOUFNhdmVkRGF0YSAqc2F2ZWQpCiB7CkBAIC04NCw2ICs5Nyw4IEBAIE5QRXJyb3IgTlBQ
X05ldyhOUE1JTUVUeXBlIHBsdWdpblR5cGUsIE5QUCBpbnN0YW5jZSwgdWludDE2IG1vZGUsIGlu
dDE2IGFyZ2MsIGNoCiAgICAgICAgICAgICAgICAgb2JqLT5vblN0cmVhbURlc3Ryb3kgPSBfc3Ry
ZHVwKGFyZ3ZbaV0pOwogICAgICAgICAgICAgZWxzZSBpZiAoX3N0cmljbXAoYXJnbltpXSwgIm9u
VVJMTm90aWZ5IikgPT0gMCAmJiAhb2JqLT5vblVSTE5vdGlmeSkKICAgICAgICAgICAgICAgICBv
YmotPm9uVVJMTm90aWZ5ID0gX3N0cmR1cChhcmd2W2ldKTsKKyAgICAgICAgICAgIGVsc2UgaWYg
KF9zdHJpY21wKGFyZ25baV0sICJvbkRlc3Ryb3kiKSA9PSAwICYmICFvYmotPm9uRGVzdHJveSkK
KyAgICAgICAgICAgICAgICBvYmotPm9uRGVzdHJveSA9IF9zdHJkdXAoYXJndltpXSk7CiAgICAg
ICAgICAgICBlbHNlIGlmIChfc3RyaWNtcChhcmduW2ldLCAibG9nU3JjIikgPT0gMCkgewogICAg
ICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgYXJnYzsgaSsrKQogICAgICAgICAgICAg
ICAgICAgICBpZiAoX3N0cmljbXAoYXJnbltpXSwgInNyYyIpID09IDApCkBAIC0xMTMsNiArMTI4
LDExIEBAIE5QRXJyb3IgTlBQX0Rlc3Ryb3koTlBQIGluc3RhbmNlLCBOUFNhdmVkRGF0YSAqKnNh
dmUpCiAgICAgICAgIGlmIChvYmotPm9uU3RyZWFtRGVzdHJveSkKICAgICAgICAgICAgIGZyZWUo
b2JqLT5vblN0cmVhbURlc3Ryb3kpOwogCisgICAgICAgIGlmIChvYmotPm9uRGVzdHJveSkgewor
ICAgICAgICAgICAgZXhlY3V0ZVNjcmlwdChvYmosIG9iai0+b25EZXN0cm95KTsKKyAgICAgICAg
ICAgIGZyZWUob2JqLT5vbkRlc3Ryb3kpOworICAgICAgICB9CisKICAgICAgICAgaWYgKG9iai0+
bG9nRGVzdHJveSkKICAgICAgICAgICAgIHByaW50ZigiUExVR0lOOiBOUFBfRGVzdHJveVxuIik7
CiAKQEAgLTEzNSwyMCArMTU1LDYgQEAgTlBFcnJvciBOUFBfU2V0V2luZG93KE5QUCBpbnN0YW5j
ZSwgTlBXaW5kb3cgKndpbmRvdykKICAgICByZXR1cm4gTlBFUlJfTk9fRVJST1I7CiB9CiAKLXN0
YXRpYyB2b2lkIGV4ZWN1dGVTY3JpcHQoY29uc3QgUGx1Z2luT2JqZWN0KiBvYmosIGNvbnN0IGNo
YXIqIHNjcmlwdCkKLXsKLSAgICBOUE9iamVjdCAqd2luZG93U2NyaXB0T2JqZWN0OwotICAgIGJy
b3dzZXItPmdldHZhbHVlKG9iai0+bnBwLCBOUE5WV2luZG93TlBPYmplY3QsICZ3aW5kb3dTY3Jp
cHRPYmplY3QpOwotCi0gICAgTlBTdHJpbmcgbnBTY3JpcHQ7Ci0gICAgbnBTY3JpcHQuVVRGOENo
YXJhY3RlcnMgPSBzY3JpcHQ7Ci0gICAgbnBTY3JpcHQuVVRGOExlbmd0aCA9IHN0cmxlbihzY3Jp
cHQpOwotCi0gICAgTlBWYXJpYW50IGJyb3dzZXJSZXN1bHQ7Ci0gICAgYnJvd3Nlci0+ZXZhbHVh
dGUob2JqLT5ucHAsIHdpbmRvd1NjcmlwdE9iamVjdCwgJm5wU2NyaXB0LCAmYnJvd3NlclJlc3Vs
dCk7Ci0gICAgYnJvd3Nlci0+cmVsZWFzZXZhcmlhbnR2YWx1ZSgmYnJvd3NlclJlc3VsdCk7Ci19
Ci0KIE5QRXJyb3IgTlBQX05ld1N0cmVhbShOUFAgaW5zdGFuY2UsIE5QTUlNRVR5cGUgdHlwZSwg
TlBTdHJlYW0gKnN0cmVhbSwgTlBCb29sIHNlZWthYmxlLCB1aW50MTYgKnN0eXBlKQogewogICAg
IFBsdWdpbk9iamVjdCogb2JqID0gKFBsdWdpbk9iamVjdCopaW5zdGFuY2UtPnBkYXRhOwotLSAK
MS42LjIKCg==
</data>
<flag name="review"
          id="31109"
          type_id="1"
          status="+"
          setter="darin"
    />
    <flag name="commit-queue"
          id="31110"
          type_id="3"
          status="-"
          setter="jhoneycutt"
    />
          </attachment>
      

    </bug>

</bugzilla>